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