Yes, that is what I want for development. Ср, 22 июн 2016, Henry Rich написал(а): > Wait... 'control error' is detected during preparse(). We wouldn't want to > defer that till execution, at least not by default. Would you want a > foreign to control when preparse is executed? > > Henry > > On 6/21/2016 9:17 PM, bill lam wrote: > > Thank you for the information on jtpreparse(). I notice it took a > > long time to load scripts, eg, I have a script of size about 3MB that > > took 3 to 10 second to load. If/when your work on "first > > execution" can be done, will it be possible to add another global parameter > > to defer jtpreparse() to the first execution (current behavior > > is good for development). > > > > Вт, 21 июн 2016, Henry Rich написал(а): > > > I agree with your logic, but there is a problem, which I am encountering > > > while working on something else. > > > > > > [And also FYI, a considerable amount of processing is done when a > > > definition > > > is loaded, in jtpreparse(), which maps out all the control words] > > > > > > I am working on an overhaul of symbol-table operations to (1) make > > > references to local symbols much faster; (2) avoid the overhead of > > > allocate/fill/free that currently occurs every time an explicit definition > > > is executed. > > > > > > My approach is to create a symbol table and let it hang around after > > > execution, to be used next time the definition runs. > > > > > > I wanted to create this table on first execution, just as you suggest, but > > > my problem is, How do I point to it? It's not easy to create a new data > > > structure in the JE, and the explicit definition seems to use all the > > > fields > > > except gs which I think needs to be kept at 0. > > > > > > The hs field points to a 6-box array containing the results of preparse(). > > > I can add my new symbol table there, but then I need to make sure its > > > usecounts are the same as the rest of hs, because otherwise as the verb > > > gets > > > assigned or deleted I might lose the symbol table. > > > > > > So, I have to create the symbol table at load time, the same time > > > preparse() > > > runs. There's just no way I can see to wait till the first execution. I > > > don't think the overhead is material for the local symbol table. It might > > > be a different story for preparsed parenthesized nouns. > > > > > > Henry > > > > > > On 6/21/2016 8:12 PM, bill lam wrote: > > > > IMO only small portion of code (say 20%) of a non-trival program > > > > will be actively used. The extra time needed for loading > > > > scripts that will seldom used is wasteful. Perhaps you may > > > > defer to pre-parse stage to the first execution of explicait > > > > definition. Timing benchmark is helpful here. > > > > > > > > I worry the extra space allocated that will not freed, a promise > > > > would be affect expressions that involving no nouns (other than > > > > primitive nouns a. a:) > > > > > > > > Since this is an implementation detail, not a language feature, > > > > I think it should be turn on/off by a global parameter. > > > > > > > > Пн, 20 июн 2016, Henry Rich написал(а): > > > > > It occurs to me that in explicit definitions, parenthesized > > > > > expressions that > > > > > contain only primitives could be parsed at definition time and > > > > > replaced with > > > > > a single word in the queue. This would save parsing time during > > > > > execution. > > > > > The only downside I can see is that something like (<1000 1000 $ a:) > > > > > would > > > > > tie up a lot of memory - maybe I would have to check for that. > > > > > > > > > > Any other objections? > > > > > > > > > > Henry > > > > > ---------------------------------------------------------------------- > > > > > For information about J forums see http://www.jsoftware.com/forums.htm > > > ---------------------------------------------------------------------- > > > For information about J forums see http://www.jsoftware.com/forums.htm > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm
-- regards, ==================================================== GPG key 1024D/4434BAB3 2008-08-24 gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3 gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3 ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm