Sunday, January 20, 2019

Rules rules

The  good news is that the compiler will provide the short instruction sequence to map a char * into a long packed char, there is no real cost, in that direction.  But the compiler cannot do the reverse,recover the old char * after the fact. Thus, anything originating from the console loop wil always be char * when text, unless treated as long in the prevailing syntax.  The console loop has to assume source persistence, the syntax engines preserve source pointers to modifies strings, after the fact.

Thus the default, anything coming from console loop cannot repack char * into an equivalent long of the first eight chars, not without a mode switch.  This is part of the final episode, how do we specify macro manipulation at the output of console loop.  It is one rule in that regard, destinations will not destroy char *. Te corollary is that subsystems that bind with packed char key values will use a separate binding entry point, found on  discovery at load time.

So, macros and reformatting of Bus format on output is user specified.  The default l being no alteration to any char * in an argument position on a linux command. By default, all linux  arguments may be both, original source pointers into code and a key value, that is the new simplification I found is not the default mode.

Symbol table still use packed char for look up, that is entirely internal to a snippet, its front  end table if there for its own use, by default the console loop will no pack keys from char *, like in default it performs n macro expansion n linux args.

At any given point at the entries, a char * back to source can become the value in a look up, making it possible to have the reverse path.

Why not the bash method. Because we have the bash engine that does that and console loop will default to bash mode when required, properly. In that mode, the bash engine gets exclusive control of the command line, with tokenizing under reconfigurable control. So bash, and any other syntax engine, can take nested control of the command line output.  One syntax engine can invoke another, Default does that.

Console loop makes no attempt to define macro expansion rules on the bus. The common maps help, for example, the console loop knows what a common scalar format looks like, it can actually deliver the command line as a scalar.  But scalar string is not the default string format on the Bus. The default format is XString, a string with one dimension of symmetry, a single position.  That is what is preserved when pulled from the fifo, relative position. IO manager deals with XYString because it got stuck with default command line edits.  In default, console loop should assume a single user console window. But almost all applications get to a rectangle, sooner or later.

No comments: