f2cl issueshttps://gitlab.common-lisp.net/f2cl/f2cl/-/issues2023-07-23T02:30:05Zhttps://gitlab.common-lisp.net/f2cl/f2cl/-/issues/9Everything broken today2023-07-23T02:30:05ZZach BeaneEverything broken todayhttp://report.quicklisp.org/2023-07-22/failure-report/f2cl.html#blas
I get this:
```
;
; caught ERROR:
; READ error during COMPILE-FILE: end of file on #<SB-INT:FORM-TRACKING-STREAM for "file /home/quicklisp/quicklisp-controller/dis...http://report.quicklisp.org/2023-07-22/failure-report/f2cl.html#blas
I get this:
```
;
; caught ERROR:
; READ error during COMPILE-FILE: end of file on #<SB-INT:FORM-TRACKING-STREAM for "file /home/quicklisp/quicklisp-controller/dist/build-cache/f2cl/c5347146987ed4677a5ed0babc6e4511647a44ee/f2cl-20230722-git/src/f2cl2.l" {1004DD2E53}>(in form starting at line: 16, column: 0, position: 504)
```
This seems to break pretty much every system.Raymond ToyRaymond Toyhttps://gitlab.common-lisp.net/f2cl/f2cl/-/issues/8Probably unintentional leaking of optimization changes2023-07-16T14:10:59ZRaymond ToyProbably unintentional leaking of optimization changes[f2cl/src/f2cl2.l#L16](src/f2cl2.l#L16)
The **eval-when** when includes load evaluates the form at load time, which in this case means doing the call ** (proclaim '(optimize (speed 3) (safety 1)))** at load time. That is a bad idea, beca...[f2cl/src/f2cl2.l#L16](src/f2cl2.l#L16)
The **eval-when** when includes load evaluates the form at load time, which in this case means doing the call ** (proclaim '(optimize (speed 3) (safety 1)))** at load time. That is a bad idea, because it means that after loading this fiile, anything that doesn't explicitly sets the **optimize safety** and **speed** level will be compiled with these setting rather than the default settings.
The other sub-form in the same **eval-when** form, the call to optimize with special, should happen at load time. So the right fix is to split these to two forms:
```
(eval-when (compile) (proclaim '(optimize (speed 3) (safety 1))))
(eval-when (compile load eval)
(proclaim '(special *intrinsic-function-names* *external-function-names*
*subprog_name* *subprog-stmt-fns*
*functions-used*)))
```Raymond ToyRaymond Toyhttps://gitlab.common-lisp.net/f2cl/f2cl/-/issues/7Add CI2020-09-24T02:50:55ZRaymond ToyAdd CIWe really need to add some kind of CI to at least make sure we can compile and run all the packages. Quicklisp does this so we want to make sure quicklisp can run.
Ideally, we'd also want to verify that the packages with test programs ...We really need to add some kind of CI to at least make sure we can compile and run all the packages. Quicklisp does this so we want to make sure quicklisp can run.
Ideally, we'd also want to verify that the packages with test programs produce the correct output too.Raymond ToyRaymond Toyhttps://gitlab.common-lisp.net/f2cl/f2cl/-/issues/6f2cl miscompiles dlamrg.f from lapack.2018-11-22T18:34:49ZRaymond Toyf2cl miscompiles dlamrg.f from lapack.f2cl compiles dlamrg.f incorrectly. It thinks the array `index` is a statement function. It's just an array.
(From https://trac.common-lisp.net/f2cl/ticket/5)f2cl compiles dlamrg.f incorrectly. It thinks the array `index` is a statement function. It's just an array.
(From https://trac.common-lisp.net/f2cl/ticket/5)https://gitlab.common-lisp.net/f2cl/f2cl/-/issues/5EQUIVALENCE statements are not handled2018-11-22T18:32:17ZRaymond ToyEQUIVALENCE statements are not handledIn general Fortran `EQUIVALENCE` statements aren't handled at all by f2cl, but there are cases where f2cl should be able to convert to Lisp.
If the `EQUIVALENCE` just aliases a bunch of variables and arrays together and they are all of ...In general Fortran `EQUIVALENCE` statements aren't handled at all by f2cl, but there are cases where f2cl should be able to convert to Lisp.
If the `EQUIVALENCE` just aliases a bunch of variables and arrays together and they are all of the same basic type, f2cl should be able to create a giant array and map the variables and arrays at the appropriate locations in the array. F2cl cannot do that currently, except in some very simple cases.
(From https://trac.common-lisp.net/f2cl/ticket/4)https://gitlab.common-lisp.net/f2cl/f2cl/-/issues/4PARAMETER variables may be arranged incorrectly2018-11-22T18:30:49ZRaymond ToyPARAMETER variables may be arranged incorrectly`PARAMETER` variables may not be arranged correctly. This may require
some hand-tweaking of the output lisp file. This manifests itself
if the value of a `PARAMETER` variable is computed from the value(s)
of other `PARAMETER` variables....`PARAMETER` variables may not be arranged correctly. This may require
some hand-tweaking of the output lisp file. This manifests itself
if the value of a `PARAMETER` variable is computed from the value(s)
of other `PARAMETER` variables.
The order is not important in Fortran, but when converted, the order is important in Lisp. Sometimes f2cl gets it wrong. Reordering the `PARAMETER` variables in Fortran will usually make it work for Lisp.
(From https://trac.common-lisp.net/f2cl/ticket/3)https://gitlab.common-lisp.net/f2cl/f2cl/-/issues/3Handling of comments in the output file may not work2018-11-22T18:29:10ZRaymond ToyHandling of comments in the output file may not workIf f2cl is instructed to save comments to the output (converted) Lisp file, the result may be an invalid form in the Lisp file.
Quotes inside the (Fortran) comment can confuse f2cl when writing out the comment for Lisp.
(From https://t...If f2cl is instructed to save comments to the output (converted) Lisp file, the result may be an invalid form in the Lisp file.
Quotes inside the (Fortran) comment can confuse f2cl when writing out the comment for Lisp.
(From https://trac.common-lisp.net/f2cl/ticket/2)https://gitlab.common-lisp.net/f2cl/f2cl/-/issues/2Hollerith strings aren't handled correctly2018-11-22T18:26:13ZRaymond ToyHollerith strings aren't handled correctlyHollerith strings aren't parsed correctly by f2cl.
If you don't know what they are, then this isn't a problem. If you do, then you should convert the Hollerith string into a standard Fortran string. So
```
character*5 s
s = 4H1234...Hollerith strings aren't parsed correctly by f2cl.
If you don't know what they are, then this isn't a problem. If you do, then you should convert the Hollerith string into a standard Fortran string. So
```
character*5 s
s = 4H1234
```
should be converted by hand to
```
character*5 s
s = '1234'
```
(From https://trac.common-lisp.net/f2cl/ticket/1)https://gitlab.common-lisp.net/f2cl/f2cl/-/issues/1Does not build properly - missing files?2017-03-30T21:22:53ZZach BeaneDoes not build properly - missing files?http://report.quicklisp.org/2017-03-30/failure-report/f2cl.html has a build log of a number of systems that seem to be missing input files.
For example: Failed to find the TRUENAME of /home/quicklisp/quicklisp-controller/dist/build-cac...http://report.quicklisp.org/2017-03-30/failure-report/f2cl.html has a build log of a number of systems that seem to be missing input files.
For example: Failed to find the TRUENAME of /home/quicklisp/quicklisp-controller/dist/build-cache/f2cl/6b4add8520afe4b848041272be5d188ae228db92/f2cl-20170330-git/packages/toms/717/dv7cpy.lisp: No such file or directoryFrançois-René RideauFrançois-René Rideau