cmucl issueshttps://gitlab.common-lisp.net/cmucl/cmucl/-/issues2017-12-30T06:20:50Zhttps://gitlab.common-lisp.net/cmucl/cmucl/-/issues/41Report proper process status2017-12-30T06:20:50ZElias PippingReport proper process statusNow that #26 is taken care of (I tested that the behaviour is now as expected), one might want to try and make `process-status` useful.
Here's a bit of code that repeatedly sends a process to sleep and wakes it up again:
```common-lisp
...Now that #26 is taken care of (I tested that the behaviour is now as expected), one might want to try and make `process-status` useful.
Here's a bit of code that repeatedly sends a process to sleep and wakes it up again:
```common-lisp
;; CMUCL: make sure to use a version >21b (not yet released as of 2017-94-04)
;; because of https://gitlab.common-lisp.net/cmucl/cmucl/issues/26
;; ECL: make sure to use a version >16.1.3 (not yet released as of 2017-09-04)
;; because of https://gitlab.com/embeddable-common-lisp/ecl/issues/273
#+clozure (use-package :ccl)
#+sbcl (use-package :sb-ext)
#+cmu (use-package :ext)
#+mkcl (use-package :mk-ext)
#+clozure (setf (fdefinition 'process-output) #'external-process-output-stream)
#+ecl (setf (fdefinition 'process-output) #'ext:external-process-output)
(defun my-run-program (&rest rest)
#+ecl (nth-value 2 (apply #'ext:run-program rest))
#+mkcl (nth-value 1 (apply #'mk-ext:run-program rest))
#-(or ecl mkcl) (apply #'run-program rest))
(defconstant +sigstop+
#+clozure (symbol-value (read-from-string "#$SIGSTOP"))
#+cmu unix:sigstop
#+ecl ext:+sigstop+
#+sbcl (progn (require :sb-posix)
(symbol-value (find-symbol (symbol-name :sigstop)
(find-package :sb-posix))))
#-(or clozure cmu ecl sbcl) (or #+darwin 17 #-darwin 19)) ; FIXME
(defconstant +sigtstp+
#+clozure (symbol-value (read-from-string "#$SIGTSTP"))
#+cmu unix:sigtstp
#+ecl ext:+sigtstp+
#+sbcl (progn (require :sb-posix)
(symbol-value (find-symbol (symbol-name :sigtstp)
(find-package :sb-posix))))
#-(or clozure cmu ecl sbcl) (or #+darwin 18 #-darwin 20)) ; FIXME
(defconstant +sigcont+
#+clozure (symbol-value (read-from-string "#$SIGCONT"))
#+cmu unix:sigcont
#+ecl ext:+sigcont+
#+sbcl (progn (require :sb-posix)
(symbol-value (find-symbol (symbol-name :sigcont)
(find-package :sb-posix))))
#-(or clozure cmu ecl sbcl) (or #+darwin 19 #-darwin 18)) ; FIXME
(defun internal-status (process)
#+clozure (external-process-status process)
#+(or sbcl cmu) (process-status process)
#+ecl (ext:external-process-status process)
#+mkcl (mk-ext:process-status process))
(defun external-kill (pid signal)
(my-run-program "/usr/bin/env" (list "kill"
(format nil "-~a" signal)
(format nil "~a" pid))))
(defun get-pid (process)
#+clozure (ccl::external-process-pid process)
#+ecl (ext:external-process-pid process)
#+(or sbcl cmu) (process-pid process)
#+mkcl (mkcl:process-id process))
(let* ((p (my-run-program "/bin/sleep" '("5") :wait nil))
(pid (get-pid p)))
(format t "internal status: ~a (expected: running)~%" (internal-status p))
(external-kill pid +sigstop+)
(sleep 1)
(format t "internal status: ~a (expected: stopped)~%" (internal-status p))
(external-kill pid +sigcont+)
(sleep 1)
(format t "internal status: ~a (expected: running/resumed)~%" (internal-status p))
(external-kill pid +sigstop+)
(sleep 1)
(format t "internal status: ~a (expected: stopped)~%" (internal-status p))
(external-kill pid +sigcont+)
(sleep 1)
(format t "internal status: ~a (expected: running/resumed)~%" (internal-status p))
(sleep 5)
(format t "internal status: ~a (expected: exited)~%" (internal-status p)))
```
A recent git checkout (from the *develop* branch) of ECL e.g. handles this as expected:
```
internal status: RUNNING (expected: running)
internal status: STOPPED (expected: stopped)
internal status: RESUMED (expected: running/resumed)
internal status: STOPPED (expected: stopped)
internal status: RESUMED (expected: running/resumed)
internal status: EXITED (expected: exited)
```
CMUCL, meanwhile, unfortunately does not:
```
internal status: RUNNING (expected: running)
internal status: STOPPED (expected: stopped)
internal status: STOPPED (expected: running/resumed)
internal status: STOPPED (expected: stopped)
internal status: STOPPED (expected: running/resumed)
internal status: EXITED (expected: exited)
```https://gitlab.common-lisp.net/cmucl/cmucl/-/issues/42Unable to build recent master2017-09-17T06:17:06ZElias PippingUnable to build recent masterI have a working 21b binary
```
% lisp
CMU Common Lisp 21b (21B Unicode), running on <hostname>
With core: /usr/local/lib/cmucl/lib/lisp-sse2.core
Dumped on: Sun, 2016-10-09 17:00:56+02:00 on gondor.local
See <http://www.cmucl.org/> for ...I have a working 21b binary
```
% lisp
CMU Common Lisp 21b (21B Unicode), running on <hostname>
With core: /usr/local/lib/cmucl/lib/lisp-sse2.core
Dumped on: Sun, 2016-10-09 17:00:56+02:00 on gondor.local
See <http://www.cmucl.org/> for support information.
Loaded subsystems:
Unicode 1.29 with Unicode version 6.2.0
Python 1.1, target Intel x86/sse2
CLOS based on Gerd's PCL 2010/03/19 15:19:03
*
```
Compiling 21b with it (via `./bin/build.sh -C "" -o lisp`) works (until it gets to the motif/X part but I'm just ignoring that). Compiling the master branch (which is at 4312fc445efed2b1976227b79cc5d8dfb4bab47e at the time of this writing), meanwhile, does not.
The error is (on macOS):
```
target:compiler/new-assem
;; Loading #P"/Users/pipping/cmucl/darwin-2/compiler/new-assem.sse2f".
Error in function C::%%DEFCONSTANT: Constant MAX-ALIGNMENT being redefined.
[Condition of type SIMPLE-ERROR]
Restarts:
0: [CONTINUE] Go ahead and change the value.
1: Return NIL from load of "target:compiler/new-assem".
2: Return NIL from load of "target:tools/comcom".
3: [ABORT ] Return to Top-Level.
Debug (type H for help)
(C::%%DEFCONSTANT MAX-ALIGNMENT
4
NIL
#S(C::FILE-SOURCE-LOCATION
:FORM-NUMBERS 15
:PATHNAME "target:compiler/new-assem.lisp"))
Source:
; File: target:code/macros.lisp
; File has been modified since compilation:
; target:code/macros.lisp
; Using form offset instead of character position.
(CERROR (INTL:GETTEXT "Go ahead and change the value.")
(INTL:GETTEXT "Constant ~S being redefined.")
NAME)
0]
```
Bisection takes me to b63178689fa12a610910d2bff0241f8cea268213:
```
commit b63178689fa12a610910d2bff0241f8cea268213
Author: Raymond Toy <toy.raymond@gmail.com>
Date: Sun Mar 5 15:43:56 2017 -0800
Increase max-alignment from 3 to 4.
Use boot-2017-01-1.lisp to bootstrap this change You'll still have to
use the CLOBBER-IT restart when loading new-assem in the first
build. Afterwards, it should be fine.
:040000 040000 5352619ed5ce2a3cea9d5591a39c3c0d61caf5cc 18f7a3ed15534ad53179fe473ae71a1678f715ba M bin
:040000 040000 8fe86414ccfa02b492bbd2f78921ae4dcbbeed12 260a84061036411a4bdc7cac59cb82f0290c3201 M src
```
Is this expected? Should I no longer be able to do a simple build (also from 21b)? Do I need to follow the more complex building instructions now?https://gitlab.common-lisp.net/cmucl/cmucl/-/issues/43Handle SIGTSTP in run-program process-status2017-09-25T13:30:05ZRaymond ToyHandle SIGTSTP in run-program process-statusAs mentioned in https://gitlab.common-lisp.net/cmucl/cmucl/issues/41#note_3164, `SIGTSTP` is handled well in `process-status` from `run-program`. IT seems cmucl never gets a `SIGCHLD` signal when the sub-process receives a `SIGTSTP`. Cu...As mentioned in https://gitlab.common-lisp.net/cmucl/cmucl/issues/41#note_3164, `SIGTSTP` is handled well in `process-status` from `run-program`. IT seems cmucl never gets a `SIGCHLD` signal when the sub-process receives a `SIGTSTP`. Curiously, cmucl does receive the `SIGCHLD` when the sub-process receives a `SIGSTOP`.https://gitlab.common-lisp.net/cmucl/cmucl/-/issues/44Add doc strings for accessors for the process structure2017-12-30T06:20:50ZRaymond ToyAdd doc strings for accessors for the process structureThe accessors for the process structure are missing docstrings. We should add them. And update the user manual too, if they need to be updated.The accessors for the process structure are missing docstrings. We should add them. And update the user manual too, if they need to be updated.21cRaymond ToyRaymond Toyhttps://gitlab.common-lisp.net/cmucl/cmucl/-/issues/45Handling of relative paths in `ext:run-program`2017-12-30T06:20:50ZElias PippingHandling of relative paths in `ext:run-program`- Such invocations work because the executable is given as an absolute path:
```common-lisp
* (ext:run-program "/bin/ls" '("tmp") :wait t :output t)
ls_copy ls_link
#<EXTENSIONS::PROCESS 30087 :EXITED :EXIT-CODE 0 {58152ADD}>
```
- S...- Such invocations work because the executable is given as an absolute path:
```common-lisp
* (ext:run-program "/bin/ls" '("tmp") :wait t :output t)
ls_copy ls_link
#<EXTENSIONS::PROCESS 30087 :EXITED :EXIT-CODE 0 {58152ADD}>
```
- Such invocations work because the executable is a single word that can be found via lookup
```common-lisp
* (ext:run-program "ls" '("tmp") :wait t :output t)
ls_copy ls_link
#<EXTENSIONS::PROCESS 30088 :EXITED :EXIT-CODE 0 {581566DD}>
```
- Such invocations **however do not work** because they contain a relative path to an executable and (...?)
```common-lisp
* (ext:run-program "./tmp/ls_copy" '("tmp") :wait t :output t)
Error in function RUN-PROGRAM: No such program: "./tmp/ls_copy"
[Condition of type SIMPLE-ERROR]
Restarts:
0: [ABORT] Return to Top-Level.
Debug (type H for help)
(RUN-PROGRAM "./tmp/ls_copy" ("tmp/ls_copy" "tmp") :ENV NIL ...)
Source: Error finding source:
Error in function DEBUG::GET-FILE-TOP-LEVEL-FORM: Source file no longer exists:
target:code/run-program.lisp.
0] 0
*
```
This is rather odd in that cmucl appears to be the only implementation I tested to have trouble with this case.
@frideau and I had already talked about it here: https://bugs.launchpad.net/asdf/+bug/171367221cRaymond ToyRaymond Toyhttps://gitlab.common-lisp.net/cmucl/cmucl/-/issues/46Use file encoding for the arguments to `run-program`2017-09-30T21:37:14ZRaymond ToyUse file encoding for the arguments to `run-program`Currently, the `program` and all the command-line args given to `run-program` are expected to be latin1. And in fact `string-list-to-c-strvec` just lops off the high byte of the string characters.
Perhaps we should convert our utf-16 s...Currently, the `program` and all the command-line args given to `run-program` are expected to be latin1. And in fact `string-list-to-c-strvec` just lops off the high byte of the string characters.
Perhaps we should convert our utf-16 strings to utf-8 before creating the C argv vector.https://gitlab.common-lisp.net/cmucl/cmucl/-/issues/47Backquote and multiple splices2018-12-17T02:50:09ZMark CoxBackquote and multiple splicesThere is a bug in how backquote processes multiple splices.
```lisp
(read-from-string "`(,@vars ,@vars)")
=>
`((,@vars) (,@vars))
16
```
```
$ cmucl
CMU Common Lisp snapshot-2017-10 (21b Unicode), running on something
With core: /opt/...There is a bug in how backquote processes multiple splices.
```lisp
(read-from-string "`(,@vars ,@vars)")
=>
`((,@vars) (,@vars))
16
```
```
$ cmucl
CMU Common Lisp snapshot-2017-10 (21b Unicode), running on something
With core: /opt/lisps/lib/cmucl/lib/lisp-sse2.core
Dumped on: Tue, 2017-10-10 12:08:17+10:00 on gondor.local
See <http://www.cmucl.org/> for support information.
Loaded subsystems:
Unicode 1.29 with Unicode version 6.2.0
Python 1.1, target Intel x86/sse2
CLOS based on Gerd's PCL 2010/03/19 15:19:03
ASDF 3.3.0
$ uname -v
Darwin Kernel Version 16.7.0: Wed Oct 4 00:17:00 PDT 2017; root:xnu-3789.71.6~1/RELEASE_X86_64
```Snapshot 2018-02https://gitlab.common-lisp.net/cmucl/cmucl/-/issues/48Update RNG from MT19937 to xoroshiro128+2017-12-30T06:20:50ZRaymond ToyUpdate RNG from MT19937 to xoroshiro128+Update the current RNG that uses MT19937, added in Nov, 1997. The state of the art has advanced and xoroshiro128+ is an updated version of xorshift128+ that is used in the JavaScript engines of all major browsers.Update the current RNG that uses MT19937, added in Nov, 1997. The state of the art has advanced and xoroshiro128+ is an updated version of xorshift128+ that is used in the JavaScript engines of all major browsers.snapshot-2018-01Raymond ToyRaymond Toy2018-01-06https://gitlab.common-lisp.net/cmucl/cmucl/-/issues/49CLM crashes2018-12-17T02:50:09ZRaymond ToyCLM crashesUsing the 2018-01 snapshot on my linux box,
```
cmulisp
* (require :clm)
* ^C
```
Pressing Ctrl-C here should bring up motifd with a debugger window. Instead, I get
```
Invoking debugger...
Error in function UNIX::SIGSEGV-HANDLER: S...Using the 2018-01 snapshot on my linux box,
```
cmulisp
* (require :clm)
* ^C
```
Pressing Ctrl-C here should bring up motifd with a debugger window. Instead, I get
```
Invoking debugger...
Error in function UNIX::SIGSEGV-HANDLER: Segmentation Violation at #x103F4982.
[Condition of type SIMPLE-ERROR]
Restarts:
0: [CONTINUE] Return from BREAK.
1: [ABORT ] Return to Top-Level.
Debug (type H for help)
(UNIX::SIGINT-HANDLER #<unused-arg> #<unused-arg> #.(SYSTEM:INT-SAP #xF7BF264C))
Source:
; File: target:code/signal.lisp
; File has been modified since compilation:
; target:code/signal.lisp
; Using form offset instead of character position.
(DEFINE-SIGNAL-HANDLER SIGINT-HANDLER "Interrupted" BREAK)
0]
```
Not quite sure what's happening here, but this used to work.Snapshot 2018-02Raymond ToyRaymond Toyhttps://gitlab.common-lisp.net/cmucl/cmucl/-/issues/50CLX (Hemlock) fails to run2018-12-17T02:50:09ZRaymond ToyCLX (Hemlock) fails to runUsing the 2018-01 snapshot, `(require :hemlock)` and try `(ed "/tmp/foo")`. Instead of starting hemlock, I get an error:
```
There are no digits in this string: ""
[Condition of type KERNEL:SIMPLE-PARSE-ERROR]
Restarts:
0: [ABORT]...Using the 2018-01 snapshot, `(require :hemlock)` and try `(ed "/tmp/foo")`. Instead of starting hemlock, I get an error:
```
There are no digits in this string: ""
[Condition of type KERNEL:SIMPLE-PARSE-ERROR]
Restarts:
0: [ABORT] Return to Top-Level.
Debug (type H for help)
(PARSE-INTEGER "" :START 0 :END NIL :RADIX 10 :JUNK-ALLOWED NIL)
Source:
; File: target:code/reader.lisp
; File has been modified since compilation:
; target:code/reader.lisp
; Using form offset instead of character position.
(ERROR 'SIMPLE-PARSE-ERROR
:FORMAT-CONTROL _
"There are no digits in this string: ~S"
:FORMAT-ARGUMENTS (LIST STRING))
0] back
0: (PARSE-INTEGER "" :START 0 :END NIL :RADIX 10 :JUNK-ALLOWED NIL)
1: (XLIB::READ-XAUTH-ENTRY #<Stream for file "/run/user/502/gdm/Xauthority">)
2: (XLIB::GET-BEST-AUTHORIZATION "" 0 :LOCAL)
3: (XLIB:OPEN-DISPLAY ""
:DISPLAY 0
:PROTOCOL :LOCAL
:AUTHORIZATION-NAME NIL
:AUTHORIZATION-DATA NIL)
4: (OPEN-CLX-DISPLAY ":0")
5: (HEMLOCK-INTERNALS::INIT-RAW-IO ":0")
6: (C::DO-CALL #<Code Object "DEFUN ED" {6180A2E7}> 47 48 8 1 T)
7: (INTERACTIVE-EVAL (ED "/tmp/foo"))
8: (LISP::%TOP-LEVEL)
9: ((LABELS LISP::RESTART-LISP SAVE-LISP))
0]
```
I think cmucl can't parse the contents of my `.Xauthority` file, which appears to have an entry for an ipv6 address.Snapshot 2018-02https://gitlab.common-lisp.net/cmucl/cmucl/-/issues/51Method combination woes2018-02-18T15:33:40ZDidier VernaMethod combination woesIt seems that the 2018/02 snapshot of CMUCL doesn't properly handle
method combination updating in generic functions:
```
CL-USER> (define-method-combination my-min ()
((methods ()))
`(min ,@(mapcar #'(lambda (method) `(call-met...It seems that the 2018/02 snapshot of CMUCL doesn't properly handle
method combination updating in generic functions:
```
CL-USER> (define-method-combination my-min ()
((methods ()))
`(min ,@(mapcar #'(lambda (method) `(call-method ,method))
methods)))
MY-MIN
CL-USER> (define-method-combination my-max ()
((methods ()))
`(max ,@(mapcar #'(lambda (method) `(call-method ,method))
methods)))
MY-MAX
CL-USER> (defgeneric test (i) (:method-combination my-min)
(:method ((i number)) 5)
(:method ((i integer)) 6))
; Compiling LAMBDA (.PV-CELL. .NEXT-METHOD-CALL. I):
; Compiling Top-Level Form:
; Compiling LAMBDA (.PV-CELL. .NEXT-METHOD-CALL. I):
; Compiling Top-Level Form:
#<STANDARD-GENERIC-FUNCTION TEST (2) {494AF709}>
CL-USER> (test 0)
5
CL-USER> (reinitialize-instance #'test :method-combination (mop:find-method-combination #'make-instance 'my-max nil))
#<STANDARD-GENERIC-FUNCTION TEST (2) {4AB267B9}>
CL-USER> (test 0)
5
```
Here, 6 was expected, not 5, and despite the fact that the method
combination slot in the generic function object was correctly updated to
MY-MAX.
Besides, ENSURE-GENERIC-FUNCTION also seems to fail handling
method-combination changes properly:
```
(ensure-generic-function 'test :method-combination
(mop:find-method-combination #'make-instance 'my-max nil))
Type-error in KERNEL::OBJECT-NOT-LIST-ERROR-HANDLER:
#<Method-Combination MY-MAX NIL
{49C2D605}> is not of type LIST
[Condition of type TYPE-ERROR]
```https://gitlab.common-lisp.net/cmucl/cmucl/-/issues/52Compiler error in 2018-01 snapshot (x86 linux): assertion failure in IR22018-02-04T18:49:36ZPaul F. DietzCompiler error in 2018-01 snapshot (x86 linux): assertion failure in IR2`(defun c3 ()
(declare (optimize debug))
(dotimes (i 0 0) (dotimes (j 3 0) (unwind-protect 0))))`
When compiled:
`Error in function LISP::ASSERT-ERROR:
The assertion (EQ C::ENV
(C::LAMBDA-ENVIRONMENT
...`(defun c3 ()
(declare (optimize debug))
(dotimes (i 0 0) (dotimes (j 3 0) (unwind-protect 0))))`
When compiled:
`Error in function LISP::ASSERT-ERROR:
The assertion (EQ C::ENV
(C::LAMBDA-ENVIRONMENT
(C::LAMBDA-VAR-HOME C::THING))) failed.
[Condition of type SIMPLE-ERROR]
[...]
0: (LISP::ASSERT-ERROR (EQ C::ENV (C::LAMBDA-ENVIRONMENT #)) NIL NIL)
1: (C::FIND-IN-ENVIRONMENT #<C::LAMBDA-VAR #x6175A27D NAME= #:CTR-3 TYPE= #<NUMERIC-TYPE (UNSIGNED-BYTE 2)>> ..)
2: (C::IR2-CONVERT-REF #<C::REF #x61760D45 LEAF= #<C::LAMBDA-VAR #x6175A27D NAME= #:CTR-3 TYPE= #<NUMERIC-TYPE #>>> #<C::IR2-BLOCK #x6178BC2D>)
3: (C::IR2-CONVERT-BLOCK #<C::CBLOCK Start = c2 {61765A95}>)
4: (C:IR2-CONVERT #<C:COMPONENT #x617666ED NAME= "DEFUN C3">)
[...]`https://gitlab.common-lisp.net/cmucl/cmucl/-/issues/53NIL is not of type C::CLEANUP in COMPILE-FOR-EVAL2018-02-04T18:50:13ZPaul F. DietzNIL is not of type C::CLEANUP in COMPILE-FOR-EVAL`((lambda (b)
(flet ((%f1 (&key) (unwind-protect 0)))
(labels ((%f2 (y) (return-from %f2 (%f1))))
b)))
0)`
produces
`Type-error in KERNEL::OBJECT-NOT-TYPE-ERROR-HANDLER:
NIL is not of type C::CLEANUP
[Condition of...`((lambda (b)
(flet ((%f1 (&key) (unwind-protect 0)))
(labels ((%f2 (y) (return-from %f2 (%f1))))
b)))
0)`
produces
`Type-error in KERNEL::OBJECT-NOT-TYPE-ERROR-HANDLER:
NIL is not of type C::CLEANUP
[Condition of type TYPE-ERROR]
[...]
0: (C::EMIT-CLEANUPS #<C::CBLOCK Start = c47 {61171D25}> #<C::CBLOCK Start = c48 {61171865}>)
1: (C::FIND-CLEANUP-POINTS #<C:COMPONENT #x6118003D NAME= "(LAMBDA (B) (FLET # #)) 0" REANALYZE= T>)
2: (C::ENVIRONMENT-ANALYZE #<C:COMPONENT #x6118003D NAME= "(LAMBDA (B) (FLET # #)) 0" REANALYZE= T>)
3: ((FLET #:G0 C:COMPILE-FOR-EVAL))
4: (C:COMPILE-FOR-EVAL ((LAMBDA # #) 0) NIL NIL)
[...]
`https://gitlab.common-lisp.net/cmucl/cmucl/-/issues/54Assertion error in COMPILER-FOR-EVAL2018-02-04T18:50:41ZPaul F. DietzAssertion error in COMPILER-FOR-EVAL`((lambda ()
(labels ((%f1 (&key (key2 (unwind-protect 0)))
(unwind-protect (unwind-protect key2 (unwind-protect 0)))))
0)))`
produces
`Error in function LISP::ASSERT-ERROR:
The assertion (NOT
...`((lambda ()
(labels ((%f1 (&key (key2 (unwind-protect 0)))
(unwind-protect (unwind-protect key2 (unwind-protect 0)))))
0)))`
produces
`Error in function LISP::ASSERT-ERROR:
The assertion (NOT
(EQ (C::FUNCTIONAL-KIND C::LEAF)
:ESCAPE)) failed.
[...]
0: (LISP::ASSERT-ERROR (NOT (EQ # :ESCAPE)) NIL NIL)
1: (C::ANNOTATE-COMPONENT-FOR-EVAL #<C:COMPONENT #x60BD70AD NAME= "(LAMBDA NIL (LABELS # 0))" REANALYZE= T>)
2: ((FLET #:G0 C:COMPILE-FOR-EVAL))
3: (C:COMPILE-FOR-EVAL ((LAMBDA # #)) NIL NIL)
4: (C:COMPILE-FOR-EVAL 3 ((LAMBDA # #)) NIL NIL)[:EXTERNAL]
[...]
`https://gitlab.common-lisp.net/cmucl/cmucl/-/issues/55NIL is not of type C::BYTE-LAMBDA-INFO (error during compile)2018-02-04T18:51:03ZPaul F. DietzNIL is not of type C::BYTE-LAMBDA-INFO (error during compile)When compiling this from a file:
`(defun c6 ()
(declare (optimize (debug 0) (speed 0)))
(case 0 ((4 -30) (ignore-errors 0)))
nil)`
this happens
`Type-error in KERNEL::OBJECT-NOT-TYPE-ERROR-HANDLER:
NIL is not of type C::BYTE-...When compiling this from a file:
`(defun c6 ()
(declare (optimize (debug 0) (speed 0)))
(case 0 ((4 -30) (ignore-errors 0)))
nil)`
this happens
`Type-error in KERNEL::OBJECT-NOT-TYPE-ERROR-HANDLER:
NIL is not of type C::BYTE-LAMBDA-INFO
[Condition of type TYPE-ERROR]
[...]
0: (KERNEL::OBJECT-NOT-TYPE-ERROR-HANDLER "<error finding name>" #.(SYSTEM:INT-SAP #xF7C238FC) #<Alien (* SYSTEM:SYSTEM-AREA-POINTER) at #xF7C2348C> (80 16))
1: (KERNEL::INTERNAL-ERROR #.(SYSTEM:INT-SAP #xF7C2348C) #<unused-arg>)
2: ("call_into_lisp+#x74 [#x8059400] /home/dietz/cmucl-2018-01/bin/lisp")
[...]
`https://gitlab.common-lisp.net/cmucl/cmucl/-/issues/56NIL is not of type C::ENVIRONMENT in LTN-ANALYZE during file compile2018-02-04T18:51:29ZPaul F. DietzNIL is not of type C::ENVIRONMENT in LTN-ANALYZE during file compileFile compiling this function:
`(defun c7 (b)
(declare (type (integer * -1) b))
(declare (optimize debug))
(if (/= b 0)
0
(progn
(unwind-protect 0)
(unwind-protect b)
0)))
`
produces this error
...File compiling this function:
`(defun c7 (b)
(declare (type (integer * -1) b))
(declare (optimize debug))
(if (/= b 0)
0
(progn
(unwind-protect 0)
(unwind-protect b)
0)))
`
produces this error
`Type-error in KERNEL::OBJECT-NOT-TYPE-ERROR-HANDLER:
NIL is not of type C::ENVIRONMENT
[Condition of type TYPE-ERROR]
[...]
0: (C::NODE-ENVIRONMENT #<C::COMBINATION #x6128F6ED FUN= #<C::REF #x6128F6BD LEAF= #<C::GLOBAL-VAR 61286FAD>> ARGS= NIL>)
1: (C::LTN-ANALYZE-KNOWN-CALL #<C::COMBINATION #x6128F6ED FUN= #<C::REF #x6128F6BD LEAF= #<C::GLOBAL-VAR 61286FAD>> ARGS= NIL> :FAST-SAFE)
2: (C::LTN-ANALYZE #<C:COMPONENT #x61291BFD NAME= "DEFUN C7">)
3: (C::NATIVE-COMPILE-COMPONENT #<C:COMPONENT #x61291BFD NAME= "DEFUN C7">)
[...]
`https://gitlab.common-lisp.net/cmucl/cmucl/-/issues/57Incorrect value computed; SHIFTF is involved somehow2018-02-19T18:20:51ZPaul F. DietzIncorrect value computed; SHIFTF is involved somehow`(funcall
(compile nil
'(lambda (b)
(declare (optimize debug speed))
(identity
(block nil
(shiftf b :bad)))))
:good)
`
==>
`:BAD``(funcall
(compile nil
'(lambda (b)
(declare (optimize debug speed))
(identity
(block nil
(shiftf b :bad)))))
:good)
`
==>
`:BAD`https://gitlab.common-lisp.net/cmucl/cmucl/-/issues/58Bogus type error in comparison of complex number with THE form2018-12-17T02:50:09ZPaul F. DietzBogus type error in comparison of complex number with THE formCompiling this:
`(defun c9 (x) (= (the (eql 1.0d0) x) #c(1/2 1/2)))`
and evaluating `(c9 1.0d0)`
yields a type error:
`Type-error in KERNEL::OBJECT-NOT-TYPE-ERROR-HANDLER:
#C(0.5d0 0.5d0) is not of type (COMPLEX
...Compiling this:
`(defun c9 (x) (= (the (eql 1.0d0) x) #c(1/2 1/2)))`
and evaluating `(c9 1.0d0)`
yields a type error:
`Type-error in KERNEL::OBJECT-NOT-TYPE-ERROR-HANDLER:
#C(0.5d0 0.5d0) is not of type (COMPLEX
(DOUBLE-FLOAT 1.0d0 1.0d0))
[Condition of type TYPE-ERROR]`https://gitlab.common-lisp.net/cmucl/cmucl/-/issues/59Incorrect report of invalid number of arguments in function using a bounded D...2018-12-17T02:50:09ZPaul F. DietzIncorrect report of invalid number of arguments in function using a bounded DOUBLE-FLOAT type`(defun c13 (z)
(declare (type (double-float -2.0d0 0.0d0) z))
(nth-value 2 (decode-float z)))`
Compiled, it fails this way:
`(c13 -1.0d0)` ==> `Invalid number of arguments: 1``(defun c13 (z)
(declare (type (double-float -2.0d0 0.0d0) z))
(nth-value 2 (decode-float z)))`
Compiled, it fails this way:
`(c13 -1.0d0)` ==> `Invalid number of arguments: 1`Snapshot 2018-02Raymond ToyRaymond Toyhttps://gitlab.common-lisp.net/cmucl/cmucl/-/issues/60The function C::%UNARY-FROUND is undefined2018-12-17T02:50:09ZPaul F. DietzThe function C::%UNARY-FROUND is undefined`(defun c14 (x)
(fround (the (member 1.0 2.0d0) x)))`
Compile that, and we get:
`(c14 1.0)` ==> `Error in KERNEL::UNDEFINED-SYMBOL-ERROR-HANDLER: the function C::%UNARY-FROUND is undefined.``(defun c14 (x)
(fround (the (member 1.0 2.0d0) x)))`
Compile that, and we get:
`(c14 1.0)` ==> `Error in KERNEL::UNDEFINED-SYMBOL-ERROR-HANDLER: the function C::%UNARY-FROUND is undefined.`