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

Reply via email to