Thread moved to beta. Determining when in line processing is okay can get very difficult, depending on how extensive one wants to be. J already does checking on compatibility of arguments before it begins actual execution on data. When the assigned name is an argument in the execution in line processing can give a significant performance boost. When only one primitive is involved determining if in line processing is okay should not be too difficult. But when multiple primitives are in the expression it can get difficult. All the cases presented as failures have involved multiple primitives in the expression. Perhaps limiting in line processing to single primitive expressions at first, especially for primitives not rank 0, then extend later.
9!:53 can take 0, 1 and 2 . Do 1 and 2 give different levels of aggressiveness of in line checking? If not then maybe 1 could provide "safe" in line processing and 2 could extend in line to the questionable cases. On Tue, Oct 4, 2016 at 6:34 PM, Xiao-Yong Jin <[email protected]> wrote: > > > On Oct 4, 2016, at 2:01 PM, Louis de Forcrand <[email protected]> wrote: > > > > Maybe add a third setting to 9!:53 which copies a at the start of a > tacit verb involving in place operations? > > This is a good compromise between speed and sensible intuition. > I guess a memcpy only when in-place-operation is detected wouldn't be > slower in general than previous non-in-place operations. > This could certainly be the default option. > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
