You did. I retract these objections.

That said, given the extreme pervasiveness and quirky nature of this
new error, I think we should get a new, unique error message. (There's
plenty of precedent for that - for example, "index error" is a
specialized error when an index is not in the domain of a verb that
uses indices.)

Then again, bill lam's suggestion (of making gerunds a new noun type)
seems also worth thinking about. I'm not sure this is a good idea (as
it would break existing code which constructs gerunds), but it's good
to think through potential problem cases and useful cases.

Thanks,

-- 
Raul

On Thu, Aug 3, 2017 at 7:05 AM, Marshall Lochbaum <mwlochb...@gmail.com> wrote:
> I stated in my post that any verb which would unbox a boxed verb should
> instead domain error. This is essentially the same thing that explicit
> verbs do when their last line has a non-noun result. Failure to do this
> would already be a bug, which makes the bugs mentioned in (2)
> irrelevant--the incorrect behavior should be stopped at the source.
>
> Marshall
>
> On Thu, Aug 03, 2017 at 05:14:35AM -0400, Raul Miller wrote:
>> Some notes:
>>
>> (1) This suggests that it would be legal for a verb result to be a
>> verb (because unbox is a verb and the proposal is that it produce verb
>> results).
>>
>> (2) Currently, we get crashes in some contexts where this behavior has
>> been allowed to leak into the interpreter.
>>
>> (3) By making the leak "official" we introduce new potential "leaky
>> abstraction" issues, which suggest that in some cases it may become
>> legal for a verb to be an argument to a verb. For example, consider
>> verbs like ;L:0 or ,~&.> or whatever with boxed arguments where some
>> or all of the boxes "contain verbs".
>>
>> There may be other issues?
>>
>> Thanks,
>>
>> --
>> Raul
>>
>>
>>
>>
>> On Thu, Aug 3, 2017 at 3: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
> ----------------------------------------------------------------------
> 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