tizoc/shen-scheme

prolog? macro expansion issue

NHALX opened this issue · 3 comments

NHALX commented

(macroexpand [prolog? [is X [function *]]])

Should produce the following, but it crashes instead (Exception in condition-irritants: # is not a condition of type &irritants)


[let NPP [shen.start-new-prolog-process] 
  [let X [shen.newpv NPP] 
    [unify X [shen.deref 
              [lambda V1435 [lambda V1436 [* V1435 V1436]]] NPP] NPP 
              [freeze true]]]]

tizoc commented

This is the same as #6, if you use the version from master you shouldn't see this kind of exception (the one that says Exception in condition-irritants: # is not a condition of type &irritants) anymore.

It still doesn't work in master (with a different exception), but it doesn't work in my copy of Shen/SBCL either:

Shen, copyright (C) 2010-2015 Mark Tarver
www.shenlanguage.org, Shen 20.1
running under Common Lisp, implementation: SBCL
port 2.2 ported by Mark Tarver


(0-) (macroexpand [prolog? [is X [function *]]])

; in: DEFUN shen.f1370
;     #'(LAMBDA ((|shen.deref| V1371 |ProcessN|))
;         #'(LAMBDA ((|shen.deref| V1372 |ProcessN|))
;             (|shen.multiply| (|shen.deref| V1371 '|ProcessN|)
;                              (|shen.deref| V1372 '|ProcessN|))))
; 
; caught ERROR:
;   Required argument is not a symbol: (shen.deref V1371 ProcessN)
; 
; compilation unit finished
;   caught 1 ERROR condition
[shen.f1370 [shen.start-new-prolog-process] [freeze true]]

Which port are you using to make that work? Is that Shen Professional?

NHALX commented

Yeah, it was on Shen Pro v12, SBCL, port 2.1.

tizoc commented

@NHALX ok, the issue is in the Kernel, something that was obviously fixed in Shen Professional but not in the BSD version. Will open an issue in the kernel repository so that I don't forget and closing this issue.