From: Alexandru P. <al...@gm...> - 2024-11-04 08:23:39
|
Hi, Meanwhile, I have > - Tuned the memory management configuration for Haiku. > On x86_64 it's possible to use mmap instead of malloc. > But on this platform, I turned off generational GC by default, > since here it provides a 20% slowdown instead of a speedup. > - Added workarounds for Haiku-specific test failures > (streams.erg, streamslong.erg). > - Added and fixed your Haiku-specific user configuration. > Tested by running (edit-file "~/foo.c") and (clhs 'setf): > The edit-file function was not returning immediately. And the > clhs function complained that the value of *browser* was of > the wrong type. > Thank you Bruno. > There are still test failures relating to sockets, but other platforms > have that too. Not sure if these failures have important effects. > > The Haiku thread about CLISP has some input from Haiku developers ( https://discuss.haiku-os.org/t/make-ansi-common-lisp-available-on-haiku-again/15780/87): "the only thing to know is you need to link to libnetwork. Other than that, it should be identical to other unix systems, and if you have any beos specific code, you should remove it." (PulkoMandy <https://discuss.haiku-os.org/u/PulkoMandy>), "It’s already linked with libnetwork (and libbsd), so leaves the old BeOS code to be updated then I presume." (Begasus <https://discuss.haiku-os.org/u/Begasus>) > Did you test these binaries? I installed the x86_64 one, and > > 1) When I start /bin/clisp, there is an error > runtime_loader: Cannot open file libsigsegv.so.2 (needed by > /boot/system/lib/clisp-2.49.93+/base/lisp.run): No such file or directory > > So I install package 'libsigsegv'. > > 2) When I start /bin/clisp, there is an error > runtime_loader: Cannot open file libunistring.so.5 (needed by > /boot/system/lib/clisp-2.49.93+/base/lisp.run): No such file or directory > > So I uninstall package 'libunistring' and reinstall the packages > 'libunistring' and 'libunistring2'. > > It seems that the binary package is missing at least these two > dependencies. > The dependencies to readline and ffcall seem to be working, on the other > hand. > > Now it's worth making new packages, I would say. > Sorry, my fail. This is my very first Haiku recipe (and first software port ever). During building I installed corresponding _devel packages, which also installed these ones. And then did not check the runtime dependencies. Of course they should be specified in the recipe. I will update the recipe ASAP. I also have some observations: 1. **features** lists *:UNIX* and *:OS-UNIX*, but does not list *:HAIKU* / *:OS-HAIKU*. The former may be OK in sense Haiku to some extent can be considered Unix-like. But it is sufficiently different from Unix to specify *:HAIKU* and / or *:OS-HAIKU*, so 3rd-party packages can make OS-specific decisions. Maybe this can be done via *cfghaiku.lisp*? I did not find any reference to **features** in *cfgunix.lisp*. 2. I see CLISP on Haiku does not support threading? I know, I am too impatient, but I believe once it will be added. Because CLISP is a CLI application, I do not expect it to be any different from Linux threads. I managed to compile the following CLISP modules (not tried them except asdf): - *asdf*, - *berkeley-db*, - *clx/mit-clx* (I doubt this one is actually useful in Haiku), - *editor*, - *gdbm*, - *libsvm*, - *pcre*, - *postgresql*, - *queens*, - *rawsock*, - *zlib*. One more package, *pari* is almost buildable. It depends on *pari.desc* file containing information about pari functions, but this file is not more delivered with pari. On the one hand, it can be re-created relatively simple (and maybe pari source contain some script about it), but on the other hand, pari CLISP package may be altered to read *src/functions* folder instead. Alexandru |