See a remarkable encoding of trees using arrays in 'High Productivity, High-Performance, Parallel-by-Construction Tree Manipulation with APL' with Aaron Hsu.
@Stormwind Hm, yeah, that works in 13.0 but not in 14.1. (I don't have 14.0 installed at the moment.) I'll email John Daintree about it and get back to you.
@Adám, ya. Atm i survive, though having quite a few different versions out there. I can anytime update to the http server my lastest ver, and the user gets it down regardless of his version. Ie. the http provides and image, then the local .exe finds the difference between itself and the image, and creates an optimised (targeted) .bin, that subsequently gets invoked at each startup. Fast as lightning, and covers all situations. EXCEPT
@Adám, i do have a thought... about http-downloading a "base exe based on APL 16"... and then loccally, during the file write to disk, re-bake it with the dongle number. Ie. dl a data file, modd it, and save locally as .exe.
Will raise an antivirus alert ...
* and rename old stormwind.exe to stormwind.exe.1.old
Actully, @Adám:
The new .exe must start in a generic state, then grab a new s/n from somewhere, and save itself. I wonder it v. 16 can do that?
On Windows at least an application running is locking its own .exe file and all statically linked .dll files. This prevents an application from updating itself directly, at leads if it desires to prevent a re-boot (if re-boot is OK the app can pass in the MOVEFILE_DELAY_UNTIL_REBOOT flag to MoveF...
@Adám "Renaming of a running i.e. locked dll/exe is not a problem under windows"?
Hmmmm. And 36 upvotes.
@Adám i don't get this: "On Windows at least an application running is locking its own .exe file and all statically linked .dll files. This prevents an application from updating itself directly, at leads if it desires to prevent a re-boot (if re-boot is OK the app can pass in the MOVEFILE_DELAY_UNTIL_REBOOT flag to MoveFileEx and is free to 'overwrite' it's own .exe, as is delayed anyway).
This is why typically applications don't check for updates on their own .exe, but they start up a shim that checks for updates and then launches the 'real' application