If Rosetta emulation is used, you will get x86_64 from 9!:56'cpu' try start jconsole with arch command like, arch -x86_64 ./jconsole
I will update the documentation, thank you for reminding. On Mon, May 30, 2022 at 9:00 AM Ian Clark <[email protected]> wrote: > Thanks, Bill. I guessed you'd have an angle on it. > > > Maybe should do the same for macos with the introduction of m1 chip. > > Yes, indeed. New Apple arm64 chips have been released in new devices this > year, with multiple processors including GPUs and ML chips. I get Apple > developer notifications and can find out more if needed. > > This is all I see on my Mac mini in j904 > > 9!:56'cpu' > > arm64 > > Needs more. Especially chip type plus whether Rosetta emulation is in use. > > > BTW: 9!:56 is undocumented in > https://code.jsoftware.com/wiki/Vocabulary/Foreigns > > On Sun, 29 May 2022 at 23:42, bill lam <[email protected]> wrote: > > > 9!:56'cpu' reports the CPU architecture. > > On Android, this information is included because there are multiple > > architectures on that platform. Maybe should do the same for macos with > the > > introduction of m1 chip. > > > > JVERSION > > Engine: j904/j64/android > > Beta-d: commercial/2022-05-22T09:17:07 > > Library: 9.04.01 > > J Android: 1.4.21/10/29 > > Platform: Android 64 (arm64-v8a) > > Installer: unknown > > InstallPath: > > /storage/emulated/0/Android/data/com.jsoftware.j.beta.android/files > > Contact: www.jsoftware.com > > > > > > > > On Mon, May 30, 2022, 5:16 AM Ian Clark <[email protected]> wrote: > > > > > > As well ask why you found it at all. > > > > > > I doubt I'd have found it at all, had not j904 crashed as soon as I > gave > > it > > > my pet startup.ijs. > > > Which just happens to run a deeply paranoid test. > > > > > > > I am surprised that ;:inv is slower than ([: ; SP,each~ ]). > > > > > > So was I… > > > > > > z=: ;:'alpha bravo charlie ' > > > > > > timex'(;:inv) z' > > > > > > 3.8e_5 > > > > > > timex'([: ; '' '',each~ ])z' > > > > > > 3.1e_5 > > > > > > JVERSION > > > > > > Engine: j904/j64/darwin > > > > > > Beta-d: commercial/2022-05-19T20:41:44 > > > > > > Library: 9.04.01 > > > > > > Qt IDE: 2.0.3/6.2.4(6.2.4) > > > > > > Platform: Darwin 64 > > > > > > Installer: J904 install > > > > > > InstallPath: /applications/j904 > > > > > > Contact: www.jsoftware.com > > > > > > > > > Even slower, in jconsole… > > > > > > > > > z=: ;:'alpha bravo charlie ' > > > timex'(;:inv)z' > > > 4.2e_5 > > > timex'([: ; '' '',each~ ])z' > > > 2.7e_5 > > > JVERSION > > > Engine: j904/j64/darwin > > > Beta-d: commercial/2022-05-19T20:41:44 > > > Library: 9.04.01 > > > Platform: Darwin 64 > > > Installer: J904 install > > > InstallPath: /applications/j904 > > > Contact: www.jsoftware.com > > > > > > > > > But the more I use it, I sense the Apple M1 chip in my Mac mini is > > > lightning-fast at moving bytes around in memory, as opposed to doing > > > significant computation – when it doesn't perform all that much better > > than > > > the Intel chip Apple has discarded. > > > > > > Maybe not that surprising when you ponder the meaning of "reduced > > > instruction set". > > > M1 is an ARM architecture. (Which JVERSION doesn't show – maybe it > > should?) > > > Unless j904_mac64.zip is compiled for ARM, then j904 will be running > > under > > > Rosetta emulation of Intel architecture. I don't know how to discover > if > > > that's happening. > > > > > > > > > On Sat, 28 May 2022 at 04:22, Henry Rich <[email protected]> wrote: > > > > > > > I am surprised that ;:inv is slower than ([: ; SP,each~ ]). That > needs > > > > looking into. But ([: ; SP,each~ ]) uses a few features I have added > > > > (append in place inside boxes, and support for ;@:(f&.>) with fewer > > > > passes over the data) which is gratifying. > > > > > > > > When would you have found the beta-d bug you found? As well ask why > > you > > > > found it at all. AFAICS no intentional change in beta-d caused the > > > > error: a bit was being cleared erroneously and somehow in beta-d the > > bit > > > > was in an address. > > > > > > > > The older I get the more I realize there is no such thing as a > working > > > > program. Even IEFBR14 had a bug. > > > > > > > > Henry Rich > > > > > > > > > > > > > > > > > > > > On 5/27/2022 10:53 PM, Ian Clark wrote: > > > > > Thanks for the ideas, Raul. Here's my grid: > > > > > > > > > > > ┌───┬───────────────┬───────────────┬───────────────┬───────────────┐ > > > > > > > > > > │ │ B(boxed) │ F(LFend) │ O(open) │ X(matrix) │ > > > > > > > > > > > ├───┼───────────────┼───────────────┼───────────────┼───────────────┤ > > > > > > > > > > │B4*│] │cuT&aLF │cuT&aSP │[: dtb each <"1│ > > > > > > > > > > > ├───┼───────────────┼───────────────┼───────────────┼───────────────┤ > > > > > > > > > > │F4*│[: ; LF,each~ ]│aLF │(SP,LF)&charsub│[: F4B B4X │ > > > > > > > > > > > ├───┼───────────────┼───────────────┼───────────────┼───────────────┤ > > > > > > > > > > │O4*│[: ; SP,each~ ]│(LF,SP)&charsub│aSP │[: O4B B4X │ > > > > > > > > > > > ├───┼───────────────┼───────────────┼───────────────┼───────────────┤ > > > > > > > > > > │X4*│> │>&(cuT&aLF) │>&(cuT&aSP) │] │ > > > > > > > > > > > └───┴───────────────┴───────────────┴───────────────┴───────────────┘ > > > > > > > > > > > > > > > SP=: ' ' NB. (which IMO ought to be in stdlib) > > > > > > > > > > cuT=: <;._2 > > > > > > > > > > aLF=: ] , LF #~ LF ~: {: NB. append LF if not there already > > > > > > > > > > aSP=: ] , SP #~ SP ~: {: NB. append ' ' if not there already > > > > > > > > > > > > > > > *Observations*: > > > > > > > > > > > > > > > I wish I'd known stdlib had cutLF, so thanks for that. > > > > > > > > > > Your use of (;:inv) is neat. > > > > > However timex tells me ([: ; SP,each~ ]) is faster on the Mac with > M1 > > > > chip, > > > > > so I'll go with that for now. > > > > > > > > > > > > > > > Providing verbs B4B, F4F… looks otiose, but simplifies the design > of > > > > > consistency tests. > > > > > > > > > > > > > > > Personally I prefer the name O4X (say) to X2O. I used to employ the > > > > latter, > > > > > but saw Roger preferring names the other way round and found it > > > > > worked better for me too. Easier to check visually: see the last > > column > > > > > above. > > > > > > > > > > Accordingly I extended Zulu (~addons/format/zulu/*) with yet > another > > > > > optional script, which defined o4x=:x2o etc. But that just made it > > even > > > > > more unwieldy. > > > > > > > > > > > > > > > This design, which I'm calling BFOX, corrects the wrong Zulu policy > > > > > regarding 'f' format by making a final LF mandatory in the new 'F' > > > > format. > > > > > This has several advantages. For a start it's what you get with: > > > > > > > > > > zuF=: noun define > > > > > > > > > > alpha > > > > > > > > > > bravo > > > > > > > > > > charlie > > > > > > > > > > ) > > > > > > > > > > In Zulu this gives 4 rows, not 3 as under the current design. > > > > > > > > > > > > > > > It seems logical to me to extend the same policy to O format, > since I > > > > mean > > > > > to implement O and F with identical code, merely switching SP <--> > > LF. > > > > > > > > > > > > > > > I want to avoid breaking existing code. So I think I'll create a > new > > > > addon: > > > > > BFOX (~addons/format/bfox.ijs --all in a single script) and > > standardize > > > > on > > > > > *4* naming. > > > > > > > > > > > > > > > Instead of a mandatory test on loading the addon, I'll also > provide a > > > > > separate test script (as addons are supposed to do), which checks > > > logical > > > > > consistency by converting via several routes back to the original, > > plus > > > > > addressing nouns with 0 or 1 "rows", plus all the other good things > > > Zulu > > > > > does. I've yet to do this, but I fancy it'll all be a lot neater, > > with > > > > > fewer edge cases to handle. > > > > > > > > > > > > > > > At least that was my plan until it struck me BFOX might make a > better > > > > > Foreign in the (3!:) range, than yet another potentially klugey > > addon. > > > > But > > > > > this is all making work for Henry…! > > > > > > > > > > > > > > > Another thought: if Zulu hadn't done its mandatory suite of tests > on > > > > > loading, when if ever would I have hit this bug in Beta-d? > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On Thu, 26 May 2022 at 17:23, Raul Miller <[email protected]> > > > wrote: > > > > > > > > > >> (I sort of ignored the empty string case, obviously - in some > cases > > > > >> these conversions would discard them. In others, it would preserve > > > > >> them. It's something of a judgement call ... somewhat analogous to > > > > >> forum choice, which I perhaps abused in my previous message.) > > > > >> > > > > >> -- > > > > >> Raul > > > > >> > > > > >> On Thu, May 26, 2022 at 12:19 PM Raul Miller < > [email protected] > > > > > > > >> wrote: > > > > >>> Here's how I think I'd tackle that "grid": > > > > >>> > > > > >>> b2f ;,&LF&.> b > > > > >>> b2o ;:inv b > > > > >>> b2x > b > > > > >>> > > > > >>> f2b cutLF f > > > > >>> f2o rplc&(LF,' ') f > > > > >>> f2x >cutLF f > > > > >>> > > > > >>> o2b cut o > > > > >>> o2f rplc&(' ',LF) o > > > > >>> o2x >cut o > > > > >>> > > > > >>> x2b <@dtb"1 x > > > > >>> x2f ;<@(,&LF)@dtb"1 x > > > > >>> x2o deb,' ',. x > > > > >>> > > > > >>> FYI, > > > > >>> > > > > >>> -- > > > > >>> Raul > > > > >>> > > > > >>> On Thu, May 26, 2022 at 11:46 AM Ian Clark < > [email protected]> > > > > >> wrote: > > > > >>>> Henry wrote: > > > > >>>>> The problem was with the form > > > > >>>> [&.>@:(<"0) 'ab' > > > > >>>> (used in x2b). > > > > >>>> > > > > >>>> x2b is defined as: > > > > >>>> [: (#~ ([: +./\. ' '&~:))&.> <"1 > > > > >>>> so I guess that was a typo. But I get the idea. > > > > >>>> > > > > >>>> So… no need for me to make any changes to 'format/zulu' just > yet. > > > > >>>> > > > > >>>> ASIDE: > > > > >>>> --but when I do, I'll throw away the entire implementation. > > > > >>>> > > > > >>>> Zulu addresses an enduring need for the J beginner wanting to > > > develop > > > > >> code > > > > >>>> for distribution. But it's deprecated for operational use. > > > > >>>> > > > > >>>> Zulu is an awful example of the edge-case 'tail' wagging the JAL > > > > 'dog'. > > > > >>>> > > > > >>>> If we ever get a *usable* addon, or a primitive (?), which > > > > >> comprehensively > > > > >>>> supports dictionaries, or even just collections of strings, > then I > > > > >> hope & > > > > >>>> pray it eats Zulu for breakfast. > > > > >>>> > > > > >>>> > > > > >>>> Zulu's aims could be met by publishing a 4x4 grid of recommended > > > > >>>> *consistent* conversions between the 4 common "strings" formats: > > > > >>>> > > > > >>>> b - boxed > > > > >>>> > > > > >>>> f - LF-separated > > > > >>>> > > > > >>>> o - open > > > > >>>> > > > > >>>> x - matrix > > > > >>>> > > > > >>>> See the lab: Strings conversion package. > > > > >>>> > > > > >>>> > > > > >>>> WHAT'S MORE: > > > > >>>> > > > > >>>> A user-facing app doing smart things with LF-separated strings > > must > > > > >> adopt a > > > > >>>> policy towards final LF, especially for handling a collection of > > > > >> substrings > > > > >>>> containing 0 or 1 members. > > > > >>>> > > > > >>>> Zulu adopts the wrong policy. And pays for it with lots of slow > > > > >> edge-case > > > > >>>> code. > > > > >>>> > > > > >>>> On Wed, 25 May 2022 at 18:24, Henry Rich <[email protected]> > > > > wrote: > > > > >>>> > > > > >>>>> Fixed for next beta. The problem was with the form > > > > >>>>> > > > > >>>>> [&.>@:(<"0) 'ab' > > > > >>>>> > > > > >>>>> (used in x2b). The <"n created virtual blocks but erroneously > > > > >> flagged > > > > >>>>> them as inplaceable. > > > > >>>>> > > > > >>>>> Workaround: replace (<"n) with (<"<"n). > > > > >>>>> > > > > >>>>> Henry Rich > > > > >>>>> > > > > >>>>> On 5/24/2022 8:25 PM, Ian Clark wrote: > > > > >>>>>> Note: Addon 'format/zulu' does not crash 903 or earlier. > > > > >>>>>> > > > > >>>>>> > > > > >>>>>> JVERSION > > > > >>>>>> > > > > >>>>>> Engine: j904/j64/darwin > > > > >>>>>> > > > > >>>>>> Beta-d: commercial/2022-05-19T20:41:44 > > > > >>>>>> > > > > >>>>>> Library: 9.04.01 > > > > >>>>>> > > > > >>>>>> Qt IDE: 2.0.3/6.2.4(6.2.4) > > > > >>>>>> > > > > >>>>>> Platform: Darwin 64 > > > > >>>>>> > > > > >>>>>> Installer: J904 install > > > > >>>>>> > > > > >>>>>> InstallPath: /applications/j904 > > > > >>>>>> > > > > >>>>>> Contact: www.jsoftware.com > > > > >>>>>> > > > > >>>>>> > > > > >>>>>> Addon 'format/zulu' is required by various addons, notably > > > > >> math/tabula. > > > > >>>>>> If loaded directly or indirectly by your ~config/startup.ijs > > > > >>>>>> > > > > >>>>>> then JQt will terminate without showing output. > > > > >>>>>> > > > > >>>>>> > > > > >>>>>> jconsole will terminate also, but gives a briefer, clearer > crash > > > > >> report: > > > > >>>>>> > > > > >>>>>> jconsole(2607,0x104ba4580) malloc: *** error for object > > > > >> 0x138091fc0: > > > > >>>>>> pointer being freed was not allocated > > > > >>>>>> > > > > >>>>>> jconsole(2607,0x104ba4580) malloc: *** set a breakpoint in > > > > >>>>>> malloc_error_break to debug > > > > >>>>>> > > > > >>>>>> zsh: abort /Applications/j904/bin/jconsole > > > > >>>>>> > > > > >>>>>> > > > > >>>>>> Saving session... > > > > >>>>>> > > > > >>>>>> ...copying shared history... > > > > >>>>>> > > > > >>>>>> ...saving history...truncating history files... > > > > >>>>>> > > > > >>>>>> ...completed. > > > > >>>>>> > > > > >>>>>> > > > > >>>>>> [Process completed] > > > > >>>>>> > > > > >>>>>> > > > > >>>>>> The crash is caused by execution of a verb: zutest_zulu_ . > > > > >>>>>> > > > > >>>>>> This verb gets executed as the final step in loading addon > > > > >> 'format/zulu' > > > > >>>>> . > > > > >>>>>> It contributes nothing to the functionality of this suite of > > > string > > > > >>>>>> utilities, but gives all the working verbs a thorough test. > > > > >>>>>> > > > > >>>>>> > > > > >>>>>> I hope to find out why it crashes before the weekend. > Meanwhile, > > > > >> here is > > > > >>>>> a > > > > >>>>>> workaround. > > > > >>>>>> > > > > >>>>>> It won't affect the operational behavior of the addon, but > it's > > > > >> like > > > > >>>>>> turning off the fire alarms. > > > > >>>>>> > > > > >>>>>> Launch either jqt or jcon (any recent version)… > > > > >>>>>> > > > > >>>>>> > > > > >>>>>> STEP 1 > > > > >>>>>> > > > > >>>>>> open'~addons/format/zulu/zutest.ijs' > > > > >>>>>> > > > > >>>>>> > > > > >>>>>> STEP 2 > > > > >>>>>> > > > > >>>>>> Comment-out lines 64-66: > > > > >>>>>> > > > > >>>>>> > > > > >>>>>> ok1=. ; 0 zutest each ;:'zu z1 z0' > > > > >>>>>> > > > > >>>>>> ok2=. ;0j1 zutest each ;:'zu z1 z0' NB. for conversions: a2* > > > > >>>>>> > > > > >>>>>> ZUTEST_z_=: ok1 , ok2 > > > > >>>>>> > > > > >>>>>> > > > > >>>>>> STEP 3 > > > > >>>>>> > > > > >>>>>> Save the updated script. > > > > >>>>>> > > > > >>>>>> > > > > >>>>>> Now you can triger the crash at will in either JQt or jcon > like > > > > >> this: > > > > >>>>>> > > > > >>>>>> load 'format/zulu' NB. should not crash now > > > > >>>>>> > > > > >>>>>> 0 zutest 'zu' NB. crashes > > > > >>>>>> > > > > >> > > ---------------------------------------------------------------------- > > > > >>>>>> 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 > > > > > > > > > > > > -- > > > > 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
