Re: CLISP on Haiku

Alexandru Popa <[email protected]> Thu, 24 Oct 2024 12:06:11 +0300
Newsgroups gmane.lisp.clisp.devel
Message-ID <CAL2wRjSjj5hpD+2kTvqpxGL36m2_91eX+WGH8d23B1hqkS-hUw@mail.gmail.com>
--===============8713678793569251709==
Content-Type: multipart/alternative; boundary="000000000000046d7d062535511b"

--000000000000046d7d062535511b
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Also, I see clisp-2.50 branch in Git repository. Is CLISP 2-50 already
released or is it prepared to be released in the future? I suppose Haiku
specific code will enter in master branch, and from this branch Haiku will
prepare the package. But the version will still be clisp-2.49, right?

=D1=87=D1=82, 24 =D0=BE=D0=BA=D1=82. 2024=E2=80=AF=D0=B3. =D0=B2 10:44, Ale=
xandru Popa <[email protected]>:

> Thank you Bruno for your response.
>
> Haiku has a package manager, unlike BeOS. The available packages can be
> searched via web interface at https://depot.haiku-os.org/. The *ffcall*
> package was just added to Haiku repository for the sake of CLIPS, but is =
is
> available also for other purposes of course. The recipe for CLISP is bein=
g
> prepared these days. The discussion about it is ongoing at
> https://discuss.haiku-os.org/t/make-ansi-common-lisp-available-on-haiku-a=
gain/15780
> .
>
> I prepared *cfghaiku.lisp*. Unfortunately, I did not succeed in modifying=
 *makefile.in
> <http://makefile.in>* to reflect Haiku specific handling. These days I
> try to extensively test CLISP on Haiku. I found *tests* and *sacla-tests*
> folders in master tarball from Git. However, I did not find a folder for
> ANSI compliance testing as per "*make check-ansi-tests*". Where can I
> find them?
>
> Additionally, what can you suggest for debugging sockets? Is there
> something OS specific in SLIME / SLY to support Haiku (never looked at
> their code)?
>
> Thank you again for your time and detailed information,
> Alexandru
>
> =D1=81=D1=80, 23 =D0=BE=D0=BA=D1=82. 2024=E2=80=AF=D0=B3. =D0=B2 17:40, B=
runo Haible <[email protected]>:
>
>> Hi,
>>
>> Alexandru Popa wrote:
>> > I installed
>> > necessary dependencies except *libffcall*, which does not (yet) exist =
in
>> > Haiku.
>>
>> GNU libffcall 2.5 builds and works out-of-the-box on Haiku (both the x86
>> and the x86_64 versions).
>>
>> > 2. Because Haiku does not have multi-user support, the user has
>> > administrative permissions. So, I issued:
>> > *export FORCE_UNSAFE_CONFIGURE=3D1*
>> > otherwise it complains about too many permissions.
>>
>> Yes, this workaround is needed.
>>
>> > 3. During configuring, it was one crash (recover-able), so I just save=
d
>> > report and continued. I will ask Haiku for help. The error was in
>> program
>> > *conftest* (during "*checking for working re_compile pattern... *"
>> onscreen
>> > message).
>>
>> This configure test (whose source code is in gnulib/m4/regex.m4) tests
>> for known regex bugs in older glibcs. Since Haiku's libc descends from
>> glibc, it's likely to have some of these bugs.
>>
>> > 4. After configuration I inspected *src/config.lisp* file and made the
>> > following changes:
>> > Because *vi* editor is not available by default, I changed:
>> > *(defparameter *editor* "vi" "The name of the editor.")*
>> > to:
>> > *(defparameter *editor* "nano" "The name of the editor.")*
>> > This is for console editor.
>>
>> Ah, Haiku has a console editor actually! I didn't know :)
>>
>> > If the GUI editor can also be considered, the
>> > "Haiku way" would be something like:
>> > *(defparameter *editor* "/boot/system/apps/Pe/Pe" "The name of the
>> > editor.")* ; Pe =3D Programmer's Editor for source code.
>> > or:
>> > *(defparameter *editor* "/boot/system/apps/StyledEdit" "The name of th=
e
>> > editor.")* ; Default text editor of Haiku.
>>
>> I would vote for Pe. If you are in Haiku land, do the Haiku way.
>>
>> > After that, I added just after:
>> > *;; (setq *browser* :firefox)*
>> > the following:
>> > *(setq *browser* "/boot/system/apps/WebPositive")* ; Firefox is not ye=
t
>> > ported to Haiku (the work is ongoing), and will probably not be offici=
al
>> > one. WebPositive is The Haiku Web Browser.
>>
>> OK.
>>
>> > 5. Building was successful and I could find *clisp* executable in *src=
*
>> > folder.
>> > - *make* - OK
>> > - *make check-tests* - 3 / 59 tests failed: *socket.erg*, *streams.erg=
*
>> and
>> > *streamslong.erg*, maybe because of missing *libffcall*.
>> > - *make check-recompile* - OK
>> > - *make install* - OK
>> > - *make distrib* - OK
>>
>> Nice!
>>
>> > On the first try, CLISP works with Terminal application under Haiku. I=
t
>> > fails to connect to *Slime* or *Sly* under *Emacs*, but this is probab=
ly
>> > the issue with Slime / Sly.
>>
>> Sockets have been a known problem with BeOS. It is possible that for the=
se
>> historical reason, they are still problematic with Haiku. I haven't look=
ed
>> in detail.
>>
>> > Can you please guide me how can I contribute to making CLISP available
>> on
>> > Haiku?
>> > For now, is there some code I can modify to not being necessary to
>> > manually change *config.lisp* after configuration?
>>
>> Step 1 is to provide source-code patches. You could provide your
>> config.lisp,
>> for inclusion in the CLISP source code as cfghaiku.lisp. One could then
>> make
>> it automatic, via a makemake.in rule.
>>
>> Then, it depends what "make available on Haiku" means. Does it have a
>> package system, like so many other OSes do? If yes, then you could submi=
t
>> libffcall and then CLISP there. Be sure to pick libffcall version 2.5
>> and CLISP git (https://gitlab.com/gnu-clisp/clisp) master branch.
>>
>> Bruno
>>
>>
>>
>>

--000000000000046d7d062535511b
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Also, I see clisp-2.50 branch in Git repository. Is CLISP =
2-50 already released or is it prepared to be released in the future? I sup=
pose Haiku specific code will enter in master branch, and from this branch =
Haiku will prepare the package. But the version will still be clisp-2.49, r=
ight?<br></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gma=
il_attr">=D1=87=D1=82, 24 =D0=BE=D0=BA=D1=82. 2024=E2=80=AF=D0=B3. =D0=B2 1=
0:44, Alexandru Popa &lt;<a href=3D"mailto:[email protected]">[email protected]=
om</a>&gt;:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px =
0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div=
 dir=3D"ltr"><div>Thank you Bruno for your response.</div><div><br></div><d=
iv>Haiku has a package manager, unlike BeOS. The available packages can be =
searched via web interface at <a href=3D"https://depot.haiku-os.org/" targe=
t=3D"_blank">https://depot.haiku-os.org/</a>. The <b>ffcall</b> package was=
 just added to Haiku repository for the sake of CLIPS, but is is available =
also for other purposes of course. The recipe for CLISP is being prepared t=
hese days. The discussion about it is ongoing at <a href=3D"https://discuss=
.haiku-os.org/t/make-ansi-common-lisp-available-on-haiku-again/15780" targe=
t=3D"_blank">https://discuss.haiku-os.org/t/make-ansi-common-lisp-available=
-on-haiku-again/15780</a>.</div><div><br></div><div>I prepared <b>cfghaiku.=
lisp</b>. Unfortunately, I did not succeed in modifying <b><a href=3D"http:=
//makefile.in" target=3D"_blank">makefile.in</a></b> to reflect Haiku speci=
fic handling. These days I try to extensively test CLISP on Haiku. I found =
<b>tests</b> and <b>sacla-tests</b> folders in master tarball from Git. How=
ever, I did not find a folder for ANSI compliance testing as per &quot;<b>m=
ake check-ansi-tests</b>&quot;. Where can I find them?</div><div><br></div>=
<div>Additionally, what can you suggest for debugging sockets? Is there som=
ething OS specific in SLIME / SLY to support Haiku (never looked at their c=
ode)?</div><div><br></div><div>Thank you again for your time and detailed i=
nformation,</div><div>Alexandru<br></div></div><br><div class=3D"gmail_quot=
e"><div dir=3D"ltr" class=3D"gmail_attr">=D1=81=D1=80, 23 =D0=BE=D0=BA=D1=
=82. 2024=E2=80=AF=D0=B3. =D0=B2 17:40, Bruno Haible &lt;<a href=3D"mailto:=
[email protected]" target=3D"_blank">[email protected]</a>&gt;:<br></div><block=
quote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1=
px solid rgb(204,204,204);padding-left:1ex">Hi,<br>
<br>
Alexandru Popa wrote:<br>
&gt; I installed<br>
&gt; necessary dependencies except *libffcall*, which does not (yet) exist =
in<br>
&gt; Haiku.<br>
<br>
GNU libffcall 2.5 builds and works out-of-the-box on Haiku (both the x86<br=
>
and the x86_64 versions).<br>
<br>
&gt; 2. Because Haiku does not have multi-user support, the user has<br>
&gt; administrative permissions. So, I issued:<br>
&gt; *export FORCE_UNSAFE_CONFIGURE=3D1*<br>
&gt; otherwise it complains about too many permissions.<br>
<br>
Yes, this workaround is needed.<br>
<br>
&gt; 3. During configuring, it was one crash (recover-able), so I just save=
d<br>
&gt; report and continued. I will ask Haiku for help. The error was in prog=
ram<br>
&gt; *conftest* (during &quot;*checking for working re_compile pattern... *=
&quot; onscreen<br>
&gt; message).<br>
<br>
This configure test (whose source code is in gnulib/m4/regex.m4) tests<br>
for known regex bugs in older glibcs. Since Haiku&#39;s libc descends from<=
br>
glibc, it&#39;s likely to have some of these bugs.<br>
<br>
&gt; 4. After configuration I inspected *src/config.lisp* file and made the=
<br>
&gt; following changes:<br>
&gt; Because *vi* editor is not available by default, I changed:<br>
&gt; *(defparameter *editor* &quot;vi&quot; &quot;The name of the editor.&q=
uot;)*<br>
&gt; to:<br>
&gt; *(defparameter *editor* &quot;nano&quot; &quot;The name of the editor.=
&quot;)*<br>
&gt; This is for console editor.<br>
<br>
Ah, Haiku has a console editor actually! I didn&#39;t know :)<br>
<br>
&gt; If the GUI editor can also be considered, the<br>
&gt; &quot;Haiku way&quot; would be something like:<br>
&gt; *(defparameter *editor* &quot;/boot/system/apps/Pe/Pe&quot; &quot;The =
name of the<br>
&gt; editor.&quot;)* ; Pe =3D Programmer&#39;s Editor for source code.<br>
&gt; or:<br>
&gt; *(defparameter *editor* &quot;/boot/system/apps/StyledEdit&quot; &quot=
;The name of the<br>
&gt; editor.&quot;)* ; Default text editor of Haiku.<br>
<br>
I would vote for Pe. If you are in Haiku land, do the Haiku way.<br>
<br>
&gt; After that, I added just after:<br>
&gt; *;; (setq *browser* :firefox)*<br>
&gt; the following:<br>
&gt; *(setq *browser* &quot;/boot/system/apps/WebPositive&quot;)* ; Firefox=
 is not yet<br>
&gt; ported to Haiku (the work is ongoing), and will probably not be offici=
al<br>
&gt; one. WebPositive is The Haiku Web Browser.<br>
<br>
OK.<br>
<br>
&gt; 5. Building was successful and I could find *clisp* executable in *src=
*<br>
&gt; folder.<br>
&gt; - *make* - OK<br>
&gt; - *make check-tests* - 3 / 59 tests failed: *socket.erg*, *streams.erg=
* and<br>
&gt; *streamslong.erg*, maybe because of missing *libffcall*.<br>
&gt; - *make check-recompile* - OK<br>
&gt; - *make install* - OK<br>
&gt; - *make distrib* - OK<br>
<br>
Nice!<br>
<br>
&gt; On the first try, CLISP works with Terminal application under Haiku. I=
t<br>
&gt; fails to connect to *Slime* or *Sly* under *Emacs*, but this is probab=
ly<br>
&gt; the issue with Slime / Sly.<br>
<br>
Sockets have been a known problem with BeOS. It is possible that for these<=
br>
historical reason, they are still problematic with Haiku. I haven&#39;t loo=
ked<br>
in detail.<br>
<br>
&gt; Can you please guide me how can I contribute to making CLISP available=
 on<br>
&gt; Haiku?<br>
&gt; For now, is there some code I can modify to not being necessary to<br>
&gt; manually change *config.lisp* after configuration?<br>
<br>
Step 1 is to provide source-code patches. You could provide your config.lis=
p,<br>
for inclusion in the CLISP source code as cfghaiku.lisp. One could then mak=
e<br>
it automatic, via a <a href=3D"http://makemake.in" rel=3D"noreferrer" targe=
t=3D"_blank">makemake.in</a> rule.<br>
<br>
Then, it depends what &quot;make available on Haiku&quot; means. Does it ha=
ve a<br>
package system, like so many other OSes do? If yes, then you could submit<b=
r>
libffcall and then CLISP there. Be sure to pick libffcall version 2.5<br>
and CLISP git (<a href=3D"https://gitlab.com/gnu-clisp/clisp" rel=3D"norefe=
rrer" target=3D"_blank">https://gitlab.com/gnu-clisp/clisp</a>) master bran=
ch.<br>
<br>
Bruno<br>
<br>
<br>
<br>
</blockquote></div>
</blockquote></div>

--000000000000046d7d062535511b--


--===============8713678793569251709==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline


--===============8713678793569251709==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
clisp-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/clisp-devel

--===============8713678793569251709==--