Thursday, January 24, 2019

Make it all packed char

Right now packed char is strictly internal to symbol table and bindings can use it.

What does the world look like when IO manager delivers packed char tokens? All the prints and echo have to print it, but that is fine.  Every arguments on the Bus becomes a look up, no conversion. Look up the argument and its type tells us how to treat the value. Any name greater than eight chars needs a most significant packed char or namespace.

All tokens really become words, there are no quotation marks, this is strictly a functional syntax on the Bus. No real punctuation marks except the four arithmetic, file mraks and brackets. And numbers easily identified in the look up as integer, linux pass through become valid, undefined tokens.

Long filenames would go, replaced by a proliferation of named directories. All the common terms reused over and over, everyone careful with names space.  But we could have a common protocol for converting long names into sequential packs.  String functions do this, they execute by byte until a long boundary, then take chars in chunks.  We just expose that as a default syntax for long names.

What I like is that it takes us straight to a managed typing system for each and every argument found. One path, one look up, only one meaning. Make that path as short as possible.

Simpler still, IO manager an force token boundaries to long pointers. If it controlled the tokenizer. It can guarantee that:

key.l = (long) "symbolname";

Except it might have to reverse them, depending on where we put the most significant byte of a packed char. It should be easy for anyone to word align a char array, using a union works. So we get the multi-token:

toke1 toke2;  How wuld we now? Toke1 one is marked as the msb and tells us tok2 s the lsb. User will learn whee the break point lies, and set naming to look informational, placing the high byte properly in the name. This is a great way for enterprises to keep path length short for the important, and frequent calls. Could be done, as an experiment.  I would find it refreshing use plain text all the way through out.

No comments: