unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [PATCH] gnu: lispf4 fixes.
@ 2016-10-04 22:33 ng0
  2016-10-04 22:33 ` [PATCH 1/2] gnu: lispf4: Remove prebuilt binaries ng0
                   ` (3 more replies)
  0 siblings, 4 replies; 12+ messages in thread
From: ng0 @ 2016-10-04 22:33 UTC (permalink / raw)
  To: guix-devel

  [PATCH 1/2] gnu: lispf4: Remove prebuilt binaries.

This patch can be applied, it is finished.

  [PATCH 2/2] gnu: lispf4: Fix the searchpath for SYSATOMS.

This patch requires further input.. The way Ricardo described this
it could be the solution to the SYSATOMS problems (bug #22732) if
someone can write functional C.
If this does not fixes it in the end, I would consider the little
help upstream wants to provide in fixing this and just drop lispf4.
https://github.com/blakemcbride/LISPF4/issues/1

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH 1/2] gnu: lispf4: Remove prebuilt binaries.
  2016-10-04 22:33 [PATCH] gnu: lispf4 fixes ng0
@ 2016-10-04 22:33 ` ng0
  2016-10-04 22:33 ` [PATCH 2/2] gnu: lispf4: Fix the searchpath for SYSATOMS ng0
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 12+ messages in thread
From: ng0 @ 2016-10-04 22:33 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/lisp.scm (lispf4)[source]: Remove prebuilt binaries.
---
 gnu/packages/lisp.scm | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 439433a..7836d48 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -457,7 +457,13 @@ interface.")
                 (file-name (string-append name "-" version "-checkout"))
                 (sha256
                  (base32
-                  "18k8kfn30za637y4bfbm9x3vv4psa3q8f7bi9h4h0qlb8rz8m92c"))))
+                  "18k8kfn30za637y4bfbm9x3vv4psa3q8f7bi9h4h0qlb8rz8m92c"))
+                ;; Strip the sources of the prebuild binaries.
+                (modules '((guix build utils)))
+                (snippet '(begin
+                            (delete-file-recursively "Windows")
+                            (delete-file-recursively "Linux")
+                            (delete-file-recursively "Mac")))))
       (build-system gnu-build-system)
       ;; 80 MB appended Documentation -> output:doc
       (outputs '("out" "doc"))
-- 
2.10.0

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 2/2] gnu: lispf4: Fix the searchpath for SYSATOMS.
  2016-10-04 22:33 [PATCH] gnu: lispf4 fixes ng0
  2016-10-04 22:33 ` [PATCH 1/2] gnu: lispf4: Remove prebuilt binaries ng0
@ 2016-10-04 22:33 ` ng0
  2016-10-05  7:08   ` Ricardo Wurmus
  2016-10-05  9:27 ` [PATCH] gnu: lispf4 fixes ng0
  2016-10-05  9:31 ` [PATCH] gnu: lispf4: Fix reference to SYSATOMS ng0
  3 siblings, 1 reply; 12+ messages in thread
From: ng0 @ 2016-10-04 22:33 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/lisp.scm (lispf4)[arguments]: Fix the searchpath for SYSATOMS.
---
 gnu/packages/lisp.scm | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 7836d48..d66fb8b 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -474,8 +474,20 @@ interface.")
          #:phases
          (modify-phases %standard-phases
            (delete 'configure)
+           (add-before 'build 'fix-searchpath
+             (lambda _
+               (substitute* "Lispf42.f"
+                 (("NAME='SYSATOMS'")
+                  (string-append "NAME='" (assoc-ref %outputs "out")
+                                 "/bin/SYSATOMS'")))
+               (substitute* "lispf42.c"
+                 (("SYSATOMS")
+                  (string-append (assoc-ref %outputs "out") "/bin/SYSATOMS"))
+                 ;;(("8+1") "72+8+1"))))
+                 (("c_b98_st") "c_b98")
+                 (("c_b98.val") ""))))
            (replace 'install
-            (lambda* (#:key outputs #:allow-other-keys)
+             (lambda* (#:key outputs #:allow-other-keys)
               (let* ((out (assoc-ref outputs "out"))
                      (bin (string-append out "/bin"))
                      (doc (string-append (assoc-ref outputs "doc")
-- 
2.10.0

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH 2/2] gnu: lispf4: Fix the searchpath for SYSATOMS.
  2016-10-04 22:33 ` [PATCH 2/2] gnu: lispf4: Fix the searchpath for SYSATOMS ng0
@ 2016-10-05  7:08   ` Ricardo Wurmus
  2016-10-05  8:54     ` ng0
  0 siblings, 1 reply; 12+ messages in thread
From: Ricardo Wurmus @ 2016-10-05  7:08 UTC (permalink / raw)
  To: ng0; +Cc: guix-devel


ng0 <ngillmann@runbox.com> writes:

> * gnu/packages/lisp.scm (lispf4)[arguments]: Fix the searchpath for SYSATOMS.
> ---
>  gnu/packages/lisp.scm | 14 +++++++++++++-
>  1 file changed, 13 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
> index 7836d48..d66fb8b 100644
> --- a/gnu/packages/lisp.scm
> +++ b/gnu/packages/lisp.scm
> @@ -474,8 +474,20 @@ interface.")
>           #:phases
>           (modify-phases %standard-phases
>             (delete 'configure)
> +           (add-before 'build 'fix-searchpath
> +             (lambda _
> +               (substitute* "Lispf42.f"
> +                 (("NAME='SYSATOMS'")
> +                  (string-append "NAME='" (assoc-ref %outputs "out")
> +                                 "/bin/SYSATOMS'")))
> +               (substitute* "lispf42.c"
> +                 (("SYSATOMS")
> +                  (string-append (assoc-ref %outputs "out") "/bin/SYSATOMS"))
> +                 ;;(("8+1") "72+8+1"))))
> +                 (("c_b98_st") "c_b98")
> +                 (("c_b98.val") ""))))
>             (replace 'install
> -            (lambda* (#:key outputs #:allow-other-keys)
> +             (lambda* (#:key outputs #:allow-other-keys)
>                (let* ((out (assoc-ref outputs "out"))
>                       (bin (string-append out "/bin"))
>                       (doc (string-append (assoc-ref outputs "doc")


Here’s an alternative:

           (add-before 'build 'fix-reference-to-SYSATOMS
             (lambda* (#:key outputs #:allow-other-keys)
               (substitute* "lispf42.c"
                 (("#define c_b98.*")
                  (string-append "#define c_b98 \""
                                 (assoc-ref outputs "out")
                                 "/bin/SYSATOMS\"\n")))
               #t))

This won’t work, however, because during the build phase the lispf4
executable is called to run a script.  At that point SYSATOMS only
exists in the current directory.  So with the above phase the build
would fail.

A hack to solve this would be to first install “SYSATOMS” to the target
directory and then build.

BTW: I think “SYSATOMS” and the “BASIC.IMG” should not be installed to
“bin” because they are not executables.  Instead they should go to
“$out/share/lispf4”.  This would also require you to change the code
that loads “BASIC.IMG” (I think it won’t work right now for the same
reasons as why you get the error relating to “SYSATOMS”.)

You also don’t seem to be installing “LISPF4.IMG”, which seems to be
required as well.

I should also note that after looking at the code I no longer consider
“lispf42.c” to be source code.  It’s unreadable because it’s the
automatically produced output of a fortran-to-C converter, only slightly
modified :-/

~~ Ricardo

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 2/2] gnu: lispf4: Fix the searchpath for SYSATOMS.
  2016-10-05  7:08   ` Ricardo Wurmus
@ 2016-10-05  8:54     ` ng0
  2016-10-05  9:17       ` ng0
  0 siblings, 1 reply; 12+ messages in thread
From: ng0 @ 2016-10-05  8:54 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

Hi,

thanks for trying to help with this.

Ricardo Wurmus <rekado@elephly.net> writes:

> ng0 <ngillmann@runbox.com> writes:
>
>> * gnu/packages/lisp.scm (lispf4)[arguments]: Fix the searchpath for SYSATOMS.
>> ---
>>  gnu/packages/lisp.scm | 14 +++++++++++++-
>>  1 file changed, 13 insertions(+), 1 deletion(-)
>>
>> diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
>> index 7836d48..d66fb8b 100644
>> --- a/gnu/packages/lisp.scm
>> +++ b/gnu/packages/lisp.scm
>> @@ -474,8 +474,20 @@ interface.")
>>           #:phases
>>           (modify-phases %standard-phases
>>             (delete 'configure)
>> +           (add-before 'build 'fix-searchpath
>> +             (lambda _
>> +               (substitute* "Lispf42.f"
>> +                 (("NAME='SYSATOMS'")
>> +                  (string-append "NAME='" (assoc-ref %outputs "out")
>> +                                 "/bin/SYSATOMS'")))
>> +               (substitute* "lispf42.c"
>> +                 (("SYSATOMS")
>> +                  (string-append (assoc-ref %outputs "out") "/bin/SYSATOMS"))
>> +                 ;;(("8+1") "72+8+1"))))
>> +                 (("c_b98_st") "c_b98")
>> +                 (("c_b98.val") ""))))
>>             (replace 'install
>> -            (lambda* (#:key outputs #:allow-other-keys)
>> +             (lambda* (#:key outputs #:allow-other-keys)
>>                (let* ((out (assoc-ref outputs "out"))
>>                       (bin (string-append out "/bin"))
>>                       (doc (string-append (assoc-ref outputs "doc")
>
>
> Here’s an alternative:
>
>            (add-before 'build 'fix-reference-to-SYSATOMS
>              (lambda* (#:key outputs #:allow-other-keys)
>                (substitute* "lispf42.c"
>                  (("#define c_b98.*")
>                   (string-append "#define c_b98 \""
>                                  (assoc-ref outputs "out")
>                                  "/bin/SYSATOMS\"\n")))
>                #t))

Thanks, I'll try this in combination with the proposed move, but if I
don't succeed with it today I will start working on my priority tasks
and do this in november or whenever I get the chance.

> This won’t work, however, because during the build phase the lispf4
> executable is called to run a script.  At that point SYSATOMS only
> exists in the current directory.  So with the above phase the build
> would fail.
>
> A hack to solve this would be to first install “SYSATOMS” to the target
> directory and then build.

Right, I have seen the complains of the script pointing to that
directory.

> BTW: I think “SYSATOMS” and the “BASIC.IMG” should not be installed to
> “bin” because they are not executables.  Instead they should go to
> “$out/share/lispf4”.  This would also require you to change the code
> that loads “BASIC.IMG” (I think it won’t work right now for the same
> reasons as why you get the error relating to “SYSATOMS”.)
>
> You also don’t seem to be installing “LISPF4.IMG”, which seems to be
> required as well.

I think it's different.. I think I should have installed BARE.IMG,
BASIC.IMG and SYSATOMS. LISP4.img is generated nowhere. If it's in the
original source, the f2c running author did a strange job.

> I should also note that after looking at the code I no longer consider
> “lispf42.c” to be source code.  It’s unreadable because it’s the
> automatically produced output of a fortran-to-C converter, only slightly
> modified :-/

A while ago I forked this with the intention to clean it up some
day.. Could take a long time, if at all. I find the fortran easier to
read. Is there any reason why just using the fortran source would not
work for us? I might have packaged gforth, but I know little about
fortran compiling, compability etc.
I missed a free software licensed interlisp implementation.. this lispf4
differed from what I needed for my purposes, which would've been
SIEMENS-INTERLISP, but I found no other interlisp at that time.
Differed in the way that SIEMENS-INTERLISP gives you the ability to
close every open parens with >, as a super-paren.. that's just one
difference of many.
(PLUS 2 4 (TIMES 80 9 (MINUS 2 300 >
In case anyone is curious: "Christian-M. Hamann - Einführung in das
Programmieren in LISP", published in Berlin 1985 also states New York so
there's a chance for a translation somewhere.

I'm open to suggestions other than writing my own interlisp (which would
be very nice, but I'm at least 2 years busy on another front :) )... It
will probably lead to writing my own interlisp.

> ~~ Ricardo
>
>

-- 

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 2/2] gnu: lispf4: Fix the searchpath for SYSATOMS.
  2016-10-05  8:54     ` ng0
@ 2016-10-05  9:17       ` ng0
  2016-10-05 11:22         ` Ricardo Wurmus
  0 siblings, 1 reply; 12+ messages in thread
From: ng0 @ 2016-10-05  9:17 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

ng0 <ngillmann@runbox.com> writes:

> Hi,
>
> thanks for trying to help with this.
>
> Ricardo Wurmus <rekado@elephly.net> writes:
>
>> ng0 <ngillmann@runbox.com> writes:
>>
>>> * gnu/packages/lisp.scm (lispf4)[arguments]: Fix the searchpath for SYSATOMS.
>>> ---
>>>  gnu/packages/lisp.scm | 14 +++++++++++++-
>>>  1 file changed, 13 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
>>> index 7836d48..d66fb8b 100644
>>> --- a/gnu/packages/lisp.scm
>>> +++ b/gnu/packages/lisp.scm
>>> @@ -474,8 +474,20 @@ interface.")
>>>           #:phases
>>>           (modify-phases %standard-phases
>>>             (delete 'configure)
>>> +           (add-before 'build 'fix-searchpath
>>> +             (lambda _
>>> +               (substitute* "Lispf42.f"
>>> +                 (("NAME='SYSATOMS'")
>>> +                  (string-append "NAME='" (assoc-ref %outputs "out")
>>> +                                 "/bin/SYSATOMS'")))
>>> +               (substitute* "lispf42.c"
>>> +                 (("SYSATOMS")
>>> +                  (string-append (assoc-ref %outputs "out") "/bin/SYSATOMS"))
>>> +                 ;;(("8+1") "72+8+1"))))
>>> +                 (("c_b98_st") "c_b98")
>>> +                 (("c_b98.val") ""))))
>>>             (replace 'install
>>> -            (lambda* (#:key outputs #:allow-other-keys)
>>> +             (lambda* (#:key outputs #:allow-other-keys)
>>>                (let* ((out (assoc-ref outputs "out"))
>>>                       (bin (string-append out "/bin"))
>>>                       (doc (string-append (assoc-ref outputs "doc")
>>
>>
>> Here’s an alternative:
>>
>>            (add-before 'build 'fix-reference-to-SYSATOMS
>>              (lambda* (#:key outputs #:allow-other-keys)
>>                (substitute* "lispf42.c"
>>                  (("#define c_b98.*")
>>                   (string-append "#define c_b98 \""
>>                                  (assoc-ref outputs "out")
>>                                  "/bin/SYSATOMS\"\n")))
>>                #t))
>
> Thanks, I'll try this in combination with the proposed move, but if I
> don't succeed with it today I will start working on my priority tasks
> and do this in november or whenever I get the chance.
>
>> This won’t work, however, because during the build phase the lispf4
>> executable is called to run a script.  At that point SYSATOMS only
>> exists in the current directory.  So with the above phase the build
>> would fail.
>>
>> A hack to solve this would be to first install “SYSATOMS” to the target
>> directory and then build.

And this fixes at least running it :) New patch incoming soon. This
depends on the one which deletes the bundles, can you apply that when
you do the one which will I will send in later?

> Right, I have seen the complains of the script pointing to that
> directory.
>
>> BTW: I think “SYSATOMS” and the “BASIC.IMG” should not be installed to
>> “bin” because they are not executables.  Instead they should go to
>> “$out/share/lispf4”.  This would also require you to change the code
>> that loads “BASIC.IMG” (I think it won’t work right now for the same
>> reasons as why you get the error relating to “SYSATOMS”.)
>>
>> You also don’t seem to be installing “LISPF4.IMG”, which seems to be
>> required as well.
>
> I think it's different.. I think I should have installed BARE.IMG,
> BASIC.IMG and SYSATOMS. LISP4.img is generated nowhere. If it's in the
> original source, the f2c running author did a strange job.
>
>> I should also note that after looking at the code I no longer consider
>> “lispf42.c” to be source code.  It’s unreadable because it’s the
>> automatically produced output of a fortran-to-C converter, only slightly
>> modified :-/
>
> A while ago I forked this with the intention to clean it up some
> day.. Could take a long time, if at all. I find the fortran easier to
> read. Is there any reason why just using the fortran source would not
> work for us? I might have packaged gforth, but I know little about
> fortran compiling, compability etc.
> I missed a free software licensed interlisp implementation.. this lispf4
> differed from what I needed for my purposes, which would've been
> SIEMENS-INTERLISP, but I found no other interlisp at that time.
> Differed in the way that SIEMENS-INTERLISP gives you the ability to
> close every open parens with >, as a super-paren.. that's just one
> difference of many.
> (PLUS 2 4 (TIMES 80 9 (MINUS 2 300 >
> In case anyone is curious: "Christian-M. Hamann - Einführung in das
> Programmieren in LISP", published in Berlin 1985 also states New York so
> there's a chance for a translation somewhere.
>
> I'm open to suggestions other than writing my own interlisp (which would
> be very nice, but I'm at least 2 years busy on another front :) )... It
> will probably lead to writing my own interlisp.
>
>> ~~ Ricardo
>>
>>
>
> -- 
>
>

-- 

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] gnu: lispf4 fixes.
  2016-10-04 22:33 [PATCH] gnu: lispf4 fixes ng0
  2016-10-04 22:33 ` [PATCH 1/2] gnu: lispf4: Remove prebuilt binaries ng0
  2016-10-04 22:33 ` [PATCH 2/2] gnu: lispf4: Fix the searchpath for SYSATOMS ng0
@ 2016-10-05  9:27 ` ng0
  2016-10-05 10:07   ` ng0
  2016-10-05  9:31 ` [PATCH] gnu: lispf4: Fix reference to SYSATOMS ng0
  3 siblings, 1 reply; 12+ messages in thread
From: ng0 @ 2016-10-05  9:27 UTC (permalink / raw)
  To: guix-devel

ng0 <ngillmann@runbox.com> writes:

>   [PATCH 1/2] gnu: lispf4: Remove prebuilt binaries.
>
> This patch can be applied, it is finished.
>
>   [PATCH 2/2] gnu: lispf4: Fix the searchpath for SYSATOMS.

PATCH 2/2 is now: Fix the reference to SYSATOMS, incoming in this thread
soon.

> This patch requires further input.. The way Ricardo described this
> it could be the solution to the SYSATOMS problems (bug #22732) if
> someone can write functional C.
> If this does not fixes it in the end, I would consider the little
> help upstream wants to provide in fixing this and just drop lispf4.
> https://github.com/blakemcbride/LISPF4/issues/1
>
>

-- 

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH] gnu: lispf4: Fix reference to SYSATOMS.
  2016-10-04 22:33 [PATCH] gnu: lispf4 fixes ng0
                   ` (2 preceding siblings ...)
  2016-10-05  9:27 ` [PATCH] gnu: lispf4 fixes ng0
@ 2016-10-05  9:31 ` ng0
  3 siblings, 0 replies; 12+ messages in thread
From: ng0 @ 2016-10-05  9:31 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/lisp.scm (lispf4)[arguments]: Fix reference to SYSATOMS.

This is a solution to and closes #22732.
---
 gnu/packages/lisp.scm | 31 +++++++++++++++++++++----------
 1 file changed, 21 insertions(+), 10 deletions(-)

diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 7836d48..04fea72 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -473,18 +473,29 @@ interface.")
          #:tests? #f ; No 'check phase
          #:phases
          (modify-phases %standard-phases
+           ;; TODO: SYSATOMS, BASIC.IMG should not be installed into $out/bin:
+           ;; https://lists.gnu.org/archive/html/guix-devel/2016-10/msg00213.html
            (delete 'configure)
+           (add-before 'build 'fix-reference-to-SYSATOMS
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (bin (string-append out "/bin")))
+                 (substitute* "lispf42.c"
+                   (("#define c_b98.*")
+                    (string-append "#define c_b98 \""
+                                   bin "/SYSATOMS\"\n")))
+                 (install-file "SYSATOMS" bin)
+                 #t)))
            (replace 'install
-            (lambda* (#:key outputs #:allow-other-keys)
-              (let* ((out (assoc-ref outputs "out"))
-                     (bin (string-append out "/bin"))
-                     (doc (string-append (assoc-ref outputs "doc")
-                                         "/share/doc/lispf4")))
-                (install-file "lispf4" bin)
-                (install-file "SYSATOMS" bin)
-                (install-file "BASIC.IMG" bin)
-                (copy-recursively "Documentation" doc))
-                #t)))))
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (bin (string-append out "/bin"))
+                      (doc (string-append (assoc-ref outputs "doc")
+                                          "/share/doc/lispf4")))
+                 (install-file "lispf4" bin)
+                 (install-file "BASIC.IMG" bin)
+                 (copy-recursively "Documentation" doc))
+               #t)))))
       (synopsis "InterLisp interpreter")
       (description
        "LISPF4 is an InterLisp interpreter written in FORTRAN by Mats Nordstrom
-- 
2.10.1

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH] gnu: lispf4 fixes.
  2016-10-05  9:27 ` [PATCH] gnu: lispf4 fixes ng0
@ 2016-10-05 10:07   ` ng0
  2016-10-05 10:18     ` ng0
  0 siblings, 1 reply; 12+ messages in thread
From: ng0 @ 2016-10-05 10:07 UTC (permalink / raw)
  To: guix-devel

ng0 <ngillmann@runbox.com> writes:

> ng0 <ngillmann@runbox.com> writes:
>
>>   [PATCH 1/2] gnu: lispf4: Remove prebuilt binaries.
>>
>> This patch can be applied, it is finished.
>>
>>   [PATCH 2/2] gnu: lispf4: Fix the searchpath for SYSATOMS.
>
> PATCH 2/2 is now: Fix the reference to SYSATOMS, incoming in this thread
> soon.
>
>> This patch requires further input.. The way Ricardo described this
>> it could be the solution to the SYSATOMS problems (bug #22732) if
>> someone can write functional C.
>> If this does not fixes it in the end, I would consider the little
>> help upstream wants to provide in fixing this and just drop lispf4.
>> https://github.com/blakemcbride/LISPF4/issues/1
>>
>>
>
> -- 
>
>

Furthermore I think I will re-read the Documentation of how blake
mcbride ported lispf4 and decide to remove the 'ported' and / or the
name or specify it in a more clear way. If Blake McBride added nothing,
it would be reasonable by the quality of messed up code f2c produced to
just write

description: LISPF4 is an InterLisp interpreter written in FORTRAN by
Mats Nordstrom, it supports much of the InterLisp Standard.


...while I'm not yet clear about Interlisp vs Interlisp-D, two different
families often thrown into just Interlisp.

Furthermore I will adjust the homepage (terrible mistake with the ".git"
at the end, it's annoying.

And when this is done and I understand more and have more time to
dedicate to historic archiving purposes, I will start working on my own
interlisp (this could take a while until I can start). Or I find a
better, cleaner, free implementation of interlisp available.. so far I
just found interlisp and interlisp-d ones on archiving sites which we
will not be possible to run or package or both of them.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] gnu: lispf4 fixes.
  2016-10-05 10:07   ` ng0
@ 2016-10-05 10:18     ` ng0
  0 siblings, 0 replies; 12+ messages in thread
From: ng0 @ 2016-10-05 10:18 UTC (permalink / raw)
  To: guix-devel

ng0 <ngillmann@runbox.com> writes:

> ng0 <ngillmann@runbox.com> writes:
>
>> ng0 <ngillmann@runbox.com> writes:
>>
>>>   [PATCH 1/2] gnu: lispf4: Remove prebuilt binaries.
>>>
>>> This patch can be applied, it is finished.
>>>
>>>   [PATCH 2/2] gnu: lispf4: Fix the searchpath for SYSATOMS.
>>
>> PATCH 2/2 is now: Fix the reference to SYSATOMS, incoming in this thread
>> soon.
>>
>>> This patch requires further input.. The way Ricardo described this
>>> it could be the solution to the SYSATOMS problems (bug #22732) if
>>> someone can write functional C.
>>> If this does not fixes it in the end, I would consider the little
>>> help upstream wants to provide in fixing this and just drop lispf4.
>>> https://github.com/blakemcbride/LISPF4/issues/1
>>>
>>>
>>
>> -- 
>>
>>
>
> Furthermore I think I will re-read the Documentation of how blake
> mcbride ported lispf4 and decide to remove the 'ported' and / or the
> name or specify it in a more clear way. If Blake McBride added nothing,
> it would be reasonable by the quality of messed up code f2c produced to
> just write
>
> description: LISPF4 is an InterLisp interpreter written in FORTRAN by
> Mats Nordstrom, it supports much of the InterLisp Standard.
>

But when you read
https://github.com/blakemcbride/LISPF4/tree/master/Documentation
you see that what has been done was (quoting here):

The conversion steps I performed are as follows:

1.  Convert the system to C and got it running via the F2C program.

2.  Replace the Fortran calls to equivalent C calls to get rid of the
need for the Fortran support library.

3.  Enabled the use of command line arguments to control startup
options.

4.  Changed memory usage to allow runtime capacity specifications.

5.  Changed some code to make it a little more portable.  (The system
should be highly portable in general though.)

Since I have modified the converted C code you should not attempt to
go from the Fortran code to C without loosing all of my changes.
The Fortran code as-is will not run with F2C without a few tweaks.

The system successfully builds on 32 and 64 bit machines.  You may
need to make some adjustments in f2c.h



so the description should at least reflect that McBride did some changes.
> ...while I'm not yet clear about Interlisp vs Interlisp-D, two different
> families often thrown into just Interlisp.
>
> Furthermore I will adjust the homepage (terrible mistake with the ".git"
> at the end, it's annoying.
>
> And when this is done and I understand more and have more time to
> dedicate to historic archiving purposes, I will start working on my own
> interlisp (this could take a while until I can start). Or I find a
> better, cleaner, free implementation of interlisp available.. so far I
> just found interlisp and interlisp-d ones on archiving sites which we
> will not be possible to run or package or both of them.
>
>

-- 

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 2/2] gnu: lispf4: Fix the searchpath for SYSATOMS.
  2016-10-05  9:17       ` ng0
@ 2016-10-05 11:22         ` Ricardo Wurmus
  2016-10-05 12:15           ` ng0
  0 siblings, 1 reply; 12+ messages in thread
From: Ricardo Wurmus @ 2016-10-05 11:22 UTC (permalink / raw)
  To: ng0; +Cc: guix-devel


ng0 <ngillmann@runbox.com> writes:

> ng0 <ngillmann@runbox.com> writes:
>
>> Hi,
>>
>> thanks for trying to help with this.
>>
>> Ricardo Wurmus <rekado@elephly.net> writes:
>>
>>> ng0 <ngillmann@runbox.com> writes:
>>>
>>>> * gnu/packages/lisp.scm (lispf4)[arguments]: Fix the searchpath for SYSATOMS.
>>>> ---
>>>>  gnu/packages/lisp.scm | 14 +++++++++++++-
>>>>  1 file changed, 13 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
>>>> index 7836d48..d66fb8b 100644
>>>> --- a/gnu/packages/lisp.scm
>>>> +++ b/gnu/packages/lisp.scm
>>>> @@ -474,8 +474,20 @@ interface.")
>>>>           #:phases
>>>>           (modify-phases %standard-phases
>>>>             (delete 'configure)
>>>> +           (add-before 'build 'fix-searchpath
>>>> +             (lambda _
>>>> +               (substitute* "Lispf42.f"
>>>> +                 (("NAME='SYSATOMS'")
>>>> +                  (string-append "NAME='" (assoc-ref %outputs "out")
>>>> +                                 "/bin/SYSATOMS'")))
>>>> +               (substitute* "lispf42.c"
>>>> +                 (("SYSATOMS")
>>>> +                  (string-append (assoc-ref %outputs "out") "/bin/SYSATOMS"))
>>>> +                 ;;(("8+1") "72+8+1"))))
>>>> +                 (("c_b98_st") "c_b98")
>>>> +                 (("c_b98.val") ""))))
>>>>             (replace 'install
>>>> -            (lambda* (#:key outputs #:allow-other-keys)
>>>> +             (lambda* (#:key outputs #:allow-other-keys)
>>>>                (let* ((out (assoc-ref outputs "out"))
>>>>                       (bin (string-append out "/bin"))
>>>>                       (doc (string-append (assoc-ref outputs "doc")
>>>
>>>
>>> Here’s an alternative:
>>>
>>>            (add-before 'build 'fix-reference-to-SYSATOMS
>>>              (lambda* (#:key outputs #:allow-other-keys)
>>>                (substitute* "lispf42.c"
>>>                  (("#define c_b98.*")
>>>                   (string-append "#define c_b98 \""
>>>                                  (assoc-ref outputs "out")
>>>                                  "/bin/SYSATOMS\"\n")))
>>>                #t))
>>
>> Thanks, I'll try this in combination with the proposed move, but if I
>> don't succeed with it today I will start working on my priority tasks
>> and do this in november or whenever I get the chance.
>>
>>> This won’t work, however, because during the build phase the lispf4
>>> executable is called to run a script.  At that point SYSATOMS only
>>> exists in the current directory.  So with the above phase the build
>>> would fail.
>>>
>>> A hack to solve this would be to first install “SYSATOMS” to the target
>>> directory and then build.
>
> And this fixes at least running it :) New patch incoming soon. This
> depends on the one which deletes the bundles, can you apply that when
> you do the one which will I will send in later?

Yes, but have you actually tried using it?  I have and while useless
stuff like “(LIST 1 2 3)” works, creating own definitions does not.

Here’s an example from the manual:

~~~~~~~~~~~~~~~~~~~~~~~~~~
_(DE KAR(X) ((SUBR . CAR) X]
--- Undefined function  
APPLY
DE
--- Reset   
_
~~~~~~~~~~~~~~~~~~~~~~~~~~

Installing BASIC.IMG to $out/bin has no effect.  The thing behaves the
same when the image is not installed at all.

Currently, this package cannot be used and I don’t want to have
a continuous stream of patches to develop the package in master.  Please
test this thoroughly on your own and then submit a new patch to fix all
the problems.

Another thing I noticed is that this package comes with a full
reference of Interlisp, which seems unrelated to this particular
implementation.  The reference is a whole book and it is not clear under
what license it is released.

I’m currently tempted to remove the package because in its current state
it isn’t usable and there doesn’t seem to be anyone using it to have
noticed that it’s broken.  That’s somewhat unsatisfying.

~~ Ricardo

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 2/2] gnu: lispf4: Fix the searchpath for SYSATOMS.
  2016-10-05 11:22         ` Ricardo Wurmus
@ 2016-10-05 12:15           ` ng0
  0 siblings, 0 replies; 12+ messages in thread
From: ng0 @ 2016-10-05 12:15 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

Ricardo Wurmus <rekado@elephly.net> writes:

> ng0 <ngillmann@runbox.com> writes:
>
>> ng0 <ngillmann@runbox.com> writes:
>>
>>> Hi,
>>>
>>> thanks for trying to help with this.
>>>
>>> Ricardo Wurmus <rekado@elephly.net> writes:
>>>
>>>> ng0 <ngillmann@runbox.com> writes:
>>>>
>>>>> * gnu/packages/lisp.scm (lispf4)[arguments]: Fix the searchpath for SYSATOMS.
>>>>> ---
>>>>>  gnu/packages/lisp.scm | 14 +++++++++++++-
>>>>>  1 file changed, 13 insertions(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
>>>>> index 7836d48..d66fb8b 100644
>>>>> --- a/gnu/packages/lisp.scm
>>>>> +++ b/gnu/packages/lisp.scm
>>>>> @@ -474,8 +474,20 @@ interface.")
>>>>>           #:phases
>>>>>           (modify-phases %standard-phases
>>>>>             (delete 'configure)
>>>>> +           (add-before 'build 'fix-searchpath
>>>>> +             (lambda _
>>>>> +               (substitute* "Lispf42.f"
>>>>> +                 (("NAME='SYSATOMS'")
>>>>> +                  (string-append "NAME='" (assoc-ref %outputs "out")
>>>>> +                                 "/bin/SYSATOMS'")))
>>>>> +               (substitute* "lispf42.c"
>>>>> +                 (("SYSATOMS")
>>>>> +                  (string-append (assoc-ref %outputs "out") "/bin/SYSATOMS"))
>>>>> +                 ;;(("8+1") "72+8+1"))))
>>>>> +                 (("c_b98_st") "c_b98")
>>>>> +                 (("c_b98.val") ""))))
>>>>>             (replace 'install
>>>>> -            (lambda* (#:key outputs #:allow-other-keys)
>>>>> +             (lambda* (#:key outputs #:allow-other-keys)
>>>>>                (let* ((out (assoc-ref outputs "out"))
>>>>>                       (bin (string-append out "/bin"))
>>>>>                       (doc (string-append (assoc-ref outputs "doc")
>>>>
>>>>
>>>> Here’s an alternative:
>>>>
>>>>            (add-before 'build 'fix-reference-to-SYSATOMS
>>>>              (lambda* (#:key outputs #:allow-other-keys)
>>>>                (substitute* "lispf42.c"
>>>>                  (("#define c_b98.*")
>>>>                   (string-append "#define c_b98 \""
>>>>                                  (assoc-ref outputs "out")
>>>>                                  "/bin/SYSATOMS\"\n")))
>>>>                #t))
>>>
>>> Thanks, I'll try this in combination with the proposed move, but if I
>>> don't succeed with it today I will start working on my priority tasks
>>> and do this in november or whenever I get the chance.
>>>
>>>> This won’t work, however, because during the build phase the lispf4
>>>> executable is called to run a script.  At that point SYSATOMS only
>>>> exists in the current directory.  So with the above phase the build
>>>> would fail.
>>>>
>>>> A hack to solve this would be to first install “SYSATOMS” to the target
>>>> directory and then build.
>>
>> And this fixes at least running it :) New patch incoming soon. This
>> depends on the one which deletes the bundles, can you apply that when
>> you do the one which will I will send in later?
>
> Yes, but have you actually tried using it?  I have and while useless
> stuff like “(LIST 1 2 3)” works, creating own definitions does not.
>
> Here’s an example from the manual:
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~
> _(DE KAR(X) ((SUBR . CAR) X]
> --- Undefined function  
> APPLY
> DE
> --- Reset   
> _
> ~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> Installing BASIC.IMG to $out/bin has no effect.  The thing behaves the
> same when the image is not installed at all.

Hm. Okay, I will look into this as soon as I can dedicate time to it.

> Currently, this package cannot be used and I don’t want to have
> a continuous stream of patches to develop the package in master.  Please
> test this thoroughly on your own and then submit a new patch to fix all
> the problems.

Ok

> Another thing I noticed is that this package comes with a full
> reference of Interlisp, which seems unrelated to this particular
> implementation.  The reference is a whole book and it is not clear under
> what license it is released.
>
> I’m currently tempted to remove the package because in its current state
> it isn’t usable and there doesn’t seem to be anyone using it to have
> noticed that it’s broken.  That’s somewhat unsatisfying.
>
> ~~ Ricardo
>
>

I fully agree, please remove it.
I will re-add it as soon as I have a working copy, stripped off the
bloat it currently carries and solving the non-functional state.
Maybe it's even easier to re-implement in Guile what SIEMENS-INTERLISP
did back then, and drop any work on this completely... For now I'll move
this back to my long work-in-progress bench.

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2016-10-05 12:15 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-10-04 22:33 [PATCH] gnu: lispf4 fixes ng0
2016-10-04 22:33 ` [PATCH 1/2] gnu: lispf4: Remove prebuilt binaries ng0
2016-10-04 22:33 ` [PATCH 2/2] gnu: lispf4: Fix the searchpath for SYSATOMS ng0
2016-10-05  7:08   ` Ricardo Wurmus
2016-10-05  8:54     ` ng0
2016-10-05  9:17       ` ng0
2016-10-05 11:22         ` Ricardo Wurmus
2016-10-05 12:15           ` ng0
2016-10-05  9:27 ` [PATCH] gnu: lispf4 fixes ng0
2016-10-05 10:07   ` ng0
2016-10-05 10:18     ` ng0
2016-10-05  9:31 ` [PATCH] gnu: lispf4: Fix reference to SYSATOMS ng0

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).