Coming late because of no internet.

The proposal is for a new noun type that contains a verb but not an AR, as
the current gerund does, right?
You can't unbox it, because that would produce an illegal result.

This is mainly a performance improvement, right?  The AR is not an internal
representation, and has to be reparsed to internal form.  The new form
would be faster, especially in low-rank explicit verbs.

I think it would be best if it is a new atomic type, which would address
the problem of how to test the type.

Basically, the new type would be to verbs as symbols are to literal lists.
It would be allowed as input to the structural verbs such as # $, and to ':
and = .  A new fill type would have to be defined.  The new type would be
created by a new adverb (perhaps foreign) that converts verbs/gerunds to
boxedverbs.

In the original proposal there was no way to see the contents of a boxed
verb.  I think this would be a crippling deficiency for practical use, but
as modified here the new type can be displayed.

I like this idea, which fits in with some other ideas I have about
preparsing explicit definitions.

But, I see it as almost entirely a performance improvement.  I am loath to
implement performance improvements unless I know the effort is worthwhile.
I will repeat here my request for performance-critical benchmarks that I
can analyze.  I have thought that converting ARs to verbs would be an
issue, but I have never seen it show up in any traces I have looked at.

In the absence of others' benchmarks, I use my own, and they show that the
performance of boxed nouns, especially usecount twiddling, is still
dominant.  I think usecounts and inplace operations on boxed nouns is what
needs working on next.

Henry Rich




On Thu, Aug 3, 2017 at 8:57 AM, Marshall Lochbaum <mwlochb...@gmail.com>
wrote:

> Can I just point out that it's not too late to add some (documented) way
> to box verbs/adverbs/conjunctions? These could be treated as gerunds by
> everything that currently uses gerunds, and the interpreter can just
> throw an error if anything attempts to actually unbox them. They are
> much harder to confuse than the current gerunds, and will have far
> better performance.
>
> This sounds like a radical divergence from the way J works now, but I
> don't think it is in practice. Programmers would use some new
> conjunction to replace (`), and provided they don't inspect the
> structure of gerunds nothing else changes. I suppose there would need to
> be a way to check what class of object a box contains, because unboxing
> to check the type is not allowed. Gerunds would remain useful for
> programmers who want to inspect functions or build them from scratch,
> but would otherwise become obselete.
>
> Marshall
>
> On Thu, Aug 03, 2017 at 09:01:37AM +0800, Bill wrote:
> > J interpreter must know when a noun is a gerund, so is it possible to
> add a new primitive to test for gerund? Or is there already J script to
> test for gerund?
> >
> > Sent from my iPhone
> >
> > On 3 Aug, 2017, at 3:36 AM, Henry Rich <henryhr...@gmail.com> wrote:
> >
> > > I expect to make some more improvements to dyad u"n, and eventually to
> > > rewrite the monad to match the dyad.  My availability to work on this
> will
> > > be intermittent for a while.  The 8.06 code as is works, and fixes a
> > > long-standing bug reported by Martin Neitzel.
> > >
> > > I have suggested using m"n, where n is not _, to implement a cyclic
> gerund
> > > m.  If m doesn't look like a gerund, it would be treated as a simple
> noun.
> > > While this is not strictly compatible, I think it very unlikely that it
> > > would break any existing code.  I think m"n was wrongly defined and
> that
> > > this is the correct definition.  My opinion is not universally shared
> so I
> > > haven't acted on it.
> > >
> > > Henry Rich
> > >
> > > On Wed, Aug 2, 2017 at 5:03 PM, Thomas Costigliola <fo...@iocane.net>
> wrote:
> > >
> > >> You can try removing the conditional statement enclosing that line,
> but
> > >> for now I would say the patch is broken under Clang. Since the rank
> code
> > >> was completely rewritten in J805 and J806 and ":: is based on the
> J804 rank
> > >> with some unfinished updates Henry was working on, the real solution
> is to
> > >> rewrite ":: based on the new rank code. But that should wait until
> the code
> > >> is stable. Does anyone anticipate more changes?
> > >>
> > >> On a more philosophical note, ":: implements gerund left arguments
> that
> > >> apply to the items cyclically. The reason for adding a new primitive
> and
> > >> not extending ": is because it breaks using ": to define constant
> > >> functions. If someone has any ideas to make them play nicely together
> then
> > >> they can be merged into a single primitive. The issue is that there
> is no
> > >> distinction between a noun and gerund.
> > >>
> > >> Regards,
> > >> -Thomas
> > >>
> > >>
> > >> On 08/02/2017 11:52 AM, bill lam wrote:
> > >>
> > >>> Yes, I use Clang and have -Werror -Wextra in CFLAGS.
> > >>> Sometimes vs2013 is much less tolerant.
> > >>>
> > >>> Ср, 02 авг 2017, Thomas Costigliola написал(а):
> > >>>
> > >>>> That looks like Henry's code taken from cr.c at some older version.
> It
> > >>>> compiles fine for me in GCC and Visual Studio 2013. It is in the
> > >>>> implementation of "::, which seems to be working in my tests, so
> that
> > >>>> code
> > >>>> never gets hit. Are you using Clang? It's much less tolerant of
> code like
> > >>>> that.
> > >>>>
> > >>>> Regards,
> > >>>> -Thomas
> > >>>>
> > >>>> On 08/02/2017 11:21 AM, bill lam wrote:
> > >>>>
> > >>>>> When I tried to compile, but this line in best.c failed.
> > >>>>>
> > >>>>>    *((I*)0)=0;  // scaf
> > >>>>>
> > >>>>> and I can not understand its intention, access to memory
> > >>>>> address 0 should cause segfault.
> > >>>>>
> > >>>>> Вт, 01 авг 2017, Jose Mario Quintana написал(а):
> > >>>>>
> > >>>>>> A brief description of the Jx v1.0 extensions, together with
> links to a
> > >>>>>> Windows 64 bit dll, a Unix 64 bit so binaries and the patch
> > >>>>>> corresponding
> > >>>>>> to the J806 source can be found at,
> > >>>>>> http://www.2bestsystems.com/foundation/j/jx1
> > >>>>>>
> > >>>>>> Summary
> > >>>>>>
> > >>>>>> - Spelling
> > >>>>>>    - Names with unicode characters
> > >>>>>>    - Primitives
> > >>>>>>        Added     =.. =:: $:: [. ]. ]: ".. ":: `. ?: i.. O.
> > >>>>>>        Extended  ~ $.
> > >>>>>>    - Foreign
> > >>>>>>        Added     104!:5 Unnamed Execution
> > >>>>>>
> > >>>>>> - Trains
> > >>>>>>      a v    Added       (different from Jx v0)
> > >>>>>>      a a    Extended    (different from Jx v0)
> > >>>>>>      c a    Resurrected
> > >>>>>>      a c a  Resurrected
> > >>>>>>
> > >>>>>> The Jx v0 page,
> > >>>>>> http://www.2bestsystems.com/foundation/j/jx0
> > >>>>>> will be removed in the near future
> > >>>>>>
> > >>>>>> Time permitting, there will be soon a script with assertions for
> those
> > >>>>>> who
> > >>>>>> want to verify binaries targeted for other platforms and I will
> try to
> > >>>>>> illustrate the facilities in action with some scripts.
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>> On Sat, Mar 8, 2014 at 11:40 PM, Jose Mario Quintana <
> > >>>>>> jose.mario.quint...@gmail.com> wrote:
> > >>>>>>
> > >>>>>>
> > >>>>>>> The patches, a Windows 32-bit DLL, a cheatsheet, 32 and 64 bit
> Unix
> > >>>>>>> libraries are found at:
> > >>>>>>>
> > >>>>>>>
> > >>>>>>> http://www.2bestsystems.com/foundation/j/
> > >>>>>>>
> > >>>>>>>
> > >>>>>>> For more details and demonstration code, see the article in the
> > >>>>>>> Journal of
> > >>>>>>> J: http://journalofj.com/index.php/vol-2-no-2-october-2013
> (only the
> > >>>>>>> definition of the new conjunction knot (`.) has been slightly
> > >>>>>>> modified for
> > >>>>>>> the release).
> > >>>>>>>
> > >>>>>>>
> > >>>>>>>
> > >>>>>>> ------------------------------------------------------------
> > >>>>>> ----------
> > >>>>>> 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
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to