Change:
Isolates parallelEach doesn't work Steps to reproduce the behavior: run nix develop with then run: dyalog then in the dyalog repl type ⎕DL isolate.llEach (1 2 3) returning like its the case when using the .deb on lets say a debian host strace log reveals a lot of lines like which does not happen on a debian host when I install dyalog 19 via dpkg -i I have also tested this on a debian host that has nix installed and installed dyalog via nix instead of dpkg but I run into the same issue making me believe there is something wrong with the drv system: "x86_64-linux", multi-user?: yes, version: nix-env (Nix) 2.18.2, nixpkgs: /etc/channels/nixpkgs (I ran it against the current (1 hour ago) nixpkgs master/unstable branches) as in I pulled these 2 about 1 hour ago
I'll see what I can do about this. In the meantime, could you change the issue title to start with ?
sure
Phew, finally found it! The issue was with the class, which auto-crashed when created. I redirected its output to a file, and it turns out that because I didn't patch to require it wasn't able to load it, thus erroring out.
This is awesome, thanks for the incredibly fast response/fix time. I suspected it was something like this I initially thought that maybe some of the libraries weren't copied over since the nix expression is a little pickier than just cp *.so $out/lib but upon fixing that nothing change really. Usually knowing when to apply patchelf is quite clear as software will let you know if a library is missing so throwing ldd against it generally gives some pretty good insight. Though if you'd like sharing this information, would you mind telling me how you found out? Was it just intuition or did you use some sort of tool to debug it to come to the conclusion that this may be the issue. As i couldn't really get hold of logs making any sense when I tried it. This would be quite interesting to me as I most likely will get to fix more dyalog stuff in the future.
First of all, I somehow got my hand on the file that lists where it crashed exactly, then looked through it, found the definitions in the namespace explorer. It looked like it was supposed to start some processes and then connect to them, however they exited immediately. I was able to verify this by printing in . is an array of new objects, so I looked up the docs, and it turns out you can specify an OutFile, which specifies where a process should dump its logs (its the 5th parameter of ), so I overrode that to point to some known location. That file contained the following: In was required by the binary, so took care of it. However in they probably changed it to load dynamically using which can't be auto-detected with . I had to use with the normal binary to make it work, but I didn't know what was so I didn't do anything with it. Note: in a new binary named appeared, however I don't know where it's used, so I don't know what I should do with it. Might have to ask around for it.
thanks for taking the time to outline how you came to that conlcusion im sure that will help me in the future. Sorry for forgetting to close this its closed now
Well, the fix isn't merged yet, so I think that this issue staying open was not a problem.
oh sorry I forgot as I used the branch locally and then after many weeks I saw its still opened and somehow was under the assumption that it was merged. Sorry I skipped that

Discussion:
in stdenv.mkDerivation (finalAttrs: { pname = "dyalog"; <del> version = "19.0.48958"; </del> <ins> version = "19.0.49960"; </ins> shortVersion = lib.versions.majorMinor finalAttrs.version; src = assert !acceptLicense -> throw licenseDisclaimer; fetchurl { url = "https://download.dyalog.com/download.php?file=${finalAttrs.shortVersion}/linux_64_${finalAttrs.version}_unicode.x86_64.deb"; <del> hash = "sha256-+L9XI7Knt91sG/0E3GFSeqjD9Zs+1n72MDfvsXnr77M="; </del> <ins> hash = "sha256-WeIrwF6msiQGS6ltYWn6TN+v+aXK1cbJ1e11B6f0+2A="; </ins> }; outputs = [ "out" ] ++ lib.optional enableDocs "doc";

''; # Register some undeclared runtime dependencies to be patched in by autoPatchelfHook <ins> # Note: dyalog.rt is used internally to run child APL processes in </ins> preFixup = '' <del> patchelf ${dyalogHome}/dyalog --add-needed libncurses.so </del> <ins> for exec in "dyalog" "dyalog.rt"; do patchelf ${dyalogHome}/$exec --add-needed libncurses.so done </ins> '' + lib.optionalString htmlRendererSupport '' patchelf ${dyalogHome}/libcef.so --add-needed libudev.so --add-needed libGL.so