Mythryl >
possibly taken from the mailing list, though I have no reference so this might be from a private email
TODO: Mythryl refers to this as “naming values” for reasons I don’t understand yet.
The point here is that when in C you write something like
int success = 12;
you are pretty definitely allocating a word of physical memory and storing a value into it. If you do this at file scope, you’re allocating a word of global memory; if you do this inside the lexical scope of a function, you’re allocating a word of storage in the stackframe. This is part of the “in C you can feel the bits between your toes” aspect of C, part of what makes it a great low-level language.
In Mythryl, on the other hand, when you write something like
success = 12;
you can’t realistically assume anything about what is going to happen at runtime. All that you are realling doing is telling the compiler “ok, now ‘success’ is a new name for ’12′”. It will dutifully enter that into its compiletime symbol table and expand all references to ‘success’ into 12 before starting serious optimization. But it is pretty unlikely that when it is done compiling there will be any identifiable word of memory anywhere that corresponds to ‘success’.
That is why I prefer to say that all we are doing with a
statement like
success = 12;
is “naming a value”, not “allocating a word”.
To further clarify the distinction, notice that in C we are always allowed to ask the compiler where in memory it stored ‘success’ by writing
int* success_pointer = &success;
whereas in Mythryl we are not allowed to ask any such question because we’re trying to be high-level and divorce ourselves from low-level details.

ported from offline notes – the date is wrong