Sunday, December 30, 2018

Adapting our new double to high speed namespace

I want to do with names the same that linux does with file names, a descending, subdivided set.

I write a selector methor for units of high speed table look u[:

Val  v = ./xchars/Screen/Themex; //Themex is struct * with  goodies
SetGC(mygc,Val); // Change users screen theme

Val was assigned the entry Themex, as discovered in the descending table look ups, each table look up limited to eight chars.  So names are automatically names paced by the limitation to  unsigned long, and strings, in this set up, and in chunks of eight chars.

I will use the famous technique of letting Val be anything it wants, we are only interested in the names and their classification.

What does // mean? I would imagine start at the top level console loop, while ./ means start in the local table, and .. implies the previous table which must be saved.

Once all the snippets agree to text8, then we standardize on name segmentation, by the obvious eight chars selects a descendent.  This is easy to do with the universal interface, the utility is based on rapid table look up.

Here is the neat thing about text8 symbols, use a well designed naming system and the frequent, short calls can take the shortest path to their entry point, often three steps, one to get to the shorties, and two selects one of four shorties.  These are test and jump, almost instantaneous at our time frame.

Using the selecdtors for argument expansion:

macro(a,b) {
set = ./here;  // anchors the local selector to arguments
mv set/a set/b;  // console will pipe to mv, if it needs to


// Later
macro(./xchars, ./so/xchars);  // works fine

The local anchor is set at top level to linux, as that is the only consistent user, linux and me. But if the methods are available, selectors can be typedefed  to a symbol table selector, and in this case Default can set  up a simple selector on the arguments laid out, right there in args list.  We get a great new,flexible syntax and we solve a whole bunch of problems by promulgating symbol table interfaces and universal interface formats...

Why not use the dot, like Golang?

Like this: objec1.object2.method;

Great idea.  ledt us make the leading dot free floating, set by an operator .. or ./ or //, introduce those and the top of dot can be re-assigned, floating, a pointer.  So, arguments are:
local = ./here;  // here understood.

then we have local.a and local.b picks up the arguments. We are c dudes snipper, we don't have interpreters, we like to free float the selector, re-anchor it.

Dot and slash:

Dot means, is an element, slash means is a subset of. With slash you may continue iterating on the selection obtained, with dot that is not guaranteed. The slash is a consistent iterator, in the expression. The dot adapts to the method selected.


No comments: