Mеmоrу

Mеmоrу (or Remember, uniсоdе-free), is created by user:iddi01, inspired by the fact that to-do lists sometimes contain "Remember x" entries for very important stuff, and sometimes you need to add more entries to Remember that entry, eventually causing an infinite loop.
An interesting thing about Mеmоrу is the pseudo-random abilities triggered by broken programs.
== Execution ==
The interpreter Remembered the first entry of a to-do list, and following it, Remembering more each time. The interpreter only knows XOR logic, so if being prompted for a second time to Remember something, it forgets it! Each cycle, it executes everything it Remembered from execution of the last cycle. If the state of the Memory had not been changed from the last cycle, it checks its Memory.
If the whole list is Remembered, execution is Forgot. Otherwise, the uniсоdе value of individual numbers of Forgotten list entries is output in top-down order, and a new entry is added on the lowest positive unoccupied number and is Remembered. If only one entry is Forgotten, the new entry is "Remember: x" where x is the number of the Forgotten entry, otherwise it is "Remember everything above". Then it continues the normal execution sequence. Speaking of which, these are the only allowed (case sensitive) entries in the list:
 Remember: x
Where x is the number of the entry that will be Remembered. Note that two entries can have the same number, allowing the execution to fork, and the entries does not necessarily need to be in numerical order.
 Remember everything above
Self-explanatory, but Remember that Remembering is a XOR operation.
 Remember everything below
 Occupy: x
Marks the number x as occupied, preventing it to appear in entry additions.
 Do nothing
Input should be added to the end of the program with each character being an entry with the number being the uniсоdе value of the character and the operation being Do nothing. That doesn't mean "Do nothing" can't be added into a program.
Trying to add anything else to the list will place a horrible scene into your Memory if the interpreter is working correctly. (and this is serious!)
Example of a complete list entry:
 32. Do nothing
Entries must be separated by lines.
== Ехаmрlеѕ ==
=== Pseudo-randomly output uniсоdе ===
This should be taken as an error, for being the most common outcome of a broken program. But the following is a one-line program that does it:
 0. Remember: 1
=== Infinite loop without output ===
This is also a demonstration of same-number entries.
 0. Remember: 0
 0. Remember: 0
This works on all extensions with an even number of entries, but odd-numbered ones instead loops with output.
=== Hello World ===
Trying to output a given string at an arbitrary point of execution is however very difficult.
 0. Do nothing
 72. Do nothing
 101. Do nothing
 108. Do nothing
 108. Do nothing
 111. Do nothing
 44. Do nothing
 32. Do nothing
 87. Do nothing
 111. Do nothing
 114. Do nothing
 108. Do nothing
 100. Do nothing
 33. Do nothing
=== Cat program ===
The null program is a cat program, similarly to Fuеuе.
To make a true cat program (avoid losing the first character of input):
 0. Do nothing
To make a true null program:
 0. Remember everything below
=== Truth machine ===
This outputs uniсоdе if the input is 0, so it's not a true truth machine.
 2. Remember: 3
 3. Remember: 49
 3. Occupy: 0
 3. Remember: 48
 48. Remember: 1
 49. Remember: 0
=== Anything else is extremely difficult to make. ===
== The interpreter, in Python ==
#program input and parsing
program = [input("Program (interrupt to exit): ")]
try:
 while True:
 program += [input()]
except KeyboardInterrupt:
 occupied = set()
 memory = []
 oldmem = []
 indexes = {}
 for line in range(len(program)):
 ind = program[line].index('. ')
 no_ = int(program[line][:ind])
 occupied.update({no_})
 memory.append(0)
 oldmem.append(0)
 indexes[no_] = [line] if no_ not in indexes else indexes[no_] + [line] 
 program[line] = program[line][ind+2:]
 if ': ' in program[line]:
 ind = program[line].index(': ')
 comm = program[line][:ind]
 program[line] = int(program[line][ind+2:])
 else:
 comm = program[line]
 program[line] = (no_, comm, program[line])
 memory[0] = 1
 #main program 
 forgot = 1
 while forgot:
 while True:
 newmem = memory[:]
 for index in range(len(program)):
 if memory[index] and not oldmem[index]:
 oldmem[index] = 1
 line = program[index]
 if line[1] == "Remember":
 try:
 for ind in indexes[line[2]]:
 newmem[ind] ^= 1
 oldmem[ind] = 0
 except KeyError:
 newmem[index] = 0
 elif line[1] == "Remember everything above":
 for ind in range(index):
 newmem[ind] ^= 1
 oldmem[ind] = 0
 elif line[1] == "Remember everything below": 
 for ind in range(index+1, len(memory)):
 newmem[ind] ^= 1
 oldmem[ind] = 0
 elif line[1] == "Occupy":
 occupied.update({line[2]})
 elif line[1] == "Do nothing":
 "DO NOTHING! i said do nothing! why do you force me to add something here?!"
 else: 
#
 import sys
 import time
 sys.stderr.write("Unknown command, use Do nothing to do nothing. ████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████" + "█" * 40251)
 sys.stdout.close()
 sys.stderr.close()
 time.sleep(180)
 print("now look, you have broke Python.")
 if newmem == memory:
 break
 else:
 memory = newmem
 forgot = set()
 for m in range(len(program)):
 if not memory[m]:
 no_ = program[m][0]
 forgot.update({no_})
 print(chr(no_), end="")
 if forgot:
 no_ = 0
 while no_ in occupied:
 no_ += 1
 if len(forgot) == 1:
 program.append((no_, "Remember", forgot.pop()))
 forgot = 1
 else:
 program.append((no_, "Remember everything above"))
 occupied.update({no_})
 indexes[no_] = [len(program) - 1]
 memory.append(1)
 oldmem.append(0)
Category:Languages
Category:Implemented
Category:2024
Category:Pseudonatural
Category:Thematic
Category:Unknown computational class
Category:Self-modifying