Yes, but do you think Ken could have read the C code and verify that that's what he intended? :-)
More power to you. On Sat, Mar 9, 2019 at 5:28 PM Henry Rich <henryhr...@gmail.com> wrote: > I think you would be pleased to see the current parser implementation. > The parsing table is transposed, so that each part of speech indicates > which lines of the parse table it matches. This fits into 8 bits, so > the information for the 4 columns of the parse table fit into a single > 32-bit word, which is what is stored on the stack. > > The search through the parsing table, formerly a time-consuming loop, is > now performed in a single C expression which expands to 13 machine > instructions with no branches. > > Henry Rich > > On 3/9/2019 7:55 PM, Roger Hui wrote: > > It is unusual to make assignment an array with an internal datatype. But > > it was all driven by the needs of the parser (see Dictionary, Section > > II.E), and the J interpreter is built around the parser. > > > > See file t.c, and search for ASGN, CASGN, and CGASGN. (The latter two in > > the value parts, instead of the 0 and 1 that I said.) > > > > > > On Sat, Mar 9, 2019 at 4:10 PM Henry Rich <henryhr...@gmail.com> wrote: > > > >> I never knew that. I was relying on the ID byte. > >> > >> I now use upper flag bits of the type to distinguish ASGN as > >> private/public, and to-name/to-noun. > >> > >> I needed to distinguish named private assignments in explicit > >> definitions, because I preallocate symbols for them in a symbol table > >> that I also preallocate, and point each reference to them to the > >> preallocated symbol to avoid the name search during execution. > >> > >> Henry Rich > >> > >> On 3/9/2019 6:59 PM, Roger Hui wrote: > >>> ASGN is an internal type; in the value part (the ravel) of a scalar > with > >>> that type, there is a 0 or 1, indicating whether is local assignment > (=.) > >>> or global assignment (=:). > >>> > >>> On Sat, Mar 9, 2019 at 2:52 PM Henry Rich <henryhr...@gmail.com> > wrote: > >>> > >>>> Aaaghh, you caught me. That was one of the first changes I made when > I > >>>> was learning the J Engine. I knew it would print wrong, but I didn't > >>>> know how to make it right, and I hoped no one would ever notice. > >>>> > >>>> I guess I have to go back and fix it, but I understand the system > better > >>>> now, so maybe I can figure out how to do it properly. > >>>> > >>>> Henry Rich > >>>> > >>>> On 3/9/2019 2:05 PM, Joey K Tuttle wrote: > >>>>> jkt@set1:~$ /usr/local/lib/j64-801/bin/jconsole > >>>>> JVERSION > >>>>> Engine: j701/2011-01-10/11:25 > >>>>> Library: 8.01.028 > >>>>> Platform: Linux 64 > >>>>> Installer: j801 install > >>>>> InstallPath: /usr/local/lib/j64-801 > >>>>> +a=.'huh' > >>>>> |domain error > >>>>> | +a=.'huh' > >>>>> > >>>>> exit 0 > >>>>> > >>>>> jkt@set1:~$ ja > >>>>> JVERSION > >>>>> Engine: j807/j64nonavx/linux > >>>>> Release-c: commercial/2019-02-24T10:44:44 > >>>>> Library: 8.07.22 > >>>>> Platform: Linux 64 > >>>>> Installer: J807 install > >>>>> InstallPath: /usr/local/lib/j64-807 > >>>>> Contact: www.jsoftware.com > >>>>> +a=.'huh' > >>>>> |domain error > >>>>> | +a=:'huh' > >>>>> > >>>>> NB. Curious -- why is =. changed to =: for error reports in > recent > >>>> versions? > >>>>> > ---------------------------------------------------------------------- > >>>>> For information about J forums see > http://www.jsoftware.com/forums.htm > >>>> --- > >>>> This email has been checked for viruses by AVG. > >>>> https://www.avg.com > >>>> > >>>> ---------------------------------------------------------------------- > >>>> 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 > > ---------------------------------------------------------------------- > > 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