joaotavora / snooze

Common Lisp RESTful web development
207 stars 22 forks source link

Execution with errors #10

Closed wpasieka closed 6 years ago

wpasieka commented 6 years ago

Hello Joao,

I am trying to install Snooze with (ql:quickload :snooze) on the CMUCL, and it catches this error, which I can't figure out how to fix, there is something wrong with the function name.

Could You help me please.

7793 7794Illegal function name: (#:comma check-once-only-names). 7795 [Condition of type c::compiler-error] 7796 7797Restarts: 7798 0: [continue] replace form with call to ERROR. 7799 1: [abort ] Return to Top-Level. 7800 7801Debug (type H for help) 7802 7803(c::compiler-error "Illegal function name: ~S." (#:comma check-once-only-names)) 7804Source: 7805; File has been modified since compilation: 7806; target:compiler/ir1util.lisp 7807; Using form offset instead of character position. 7808(cerror (intl:gettext "replace form with call to ERROR.") 7809 'compiler-error 7810 :format-control (intl:gettext format-string) 7811 ...) 78120]

Execution of a form compiled with errors: 1921 (c::%defun '(#:comma check-once-only-names) 1922 #'(lambda (names) 1923 (block (#:comma check-once-only-names) 1924 (let ((bad-name (find-if-not #'symbolp names))) 1925 (when bad-name 1926 (error "ONCE-ONLY expected a symbol but got ~S" 1927 bad-name))))) 1928 "Check that all of the NAMES are symbols. If not, raise an error." 1929 '(defun (#:comma check-once-only-names) (names) 1930 "Check that all of the NAMES are symbols. If not, raise an error." 1931 (let ((bad-name (find-if-not #'symbolp names))) 1932 (when bad-name 1933 (error "ONCE-ONLY expected a symbol but got ~S" bad-name))))) 1934 [Condition of type kernel:simple-program-error]

Kind Regards, Adrian W. Pasieka

joaotavora commented 6 years ago

I can't reproduce this. You need to give me more information to reproduce the problem. From the look of it, it looks like a problem completely unrelated to snooze.

Can you state your operating system version, the CMUCL version and how you installed CMUCL/quicklisp?

This is what I get on Debian GNU/Linux buster/sid, with CMUCL installed via ros install cmu-bin.

$ ros run -L cmu-bin
* (ql:quickload :snooze)
<a lot of normal output>
(:SNOOZE)
wpasieka commented 6 years ago

Thank You Joao for coming back,

When I trying to this again:

1082Execution of a form compiled with errors: 1083 (c::%defun '(#:comma with-unique-names-binding-parts) 1084 #'(lambda (binding) 1085 (block (#:comma with-unique-names-binding-parts) 1086 (if (consp binding) 1087 (values (first binding) (second binding)) 1088 (values binding nil)))) 1089 "Return (values var prefix) from a WITH-UNIQUE-NAMES binding
1090form. If PREFIX is not given in the binding, NIL is returned to
1091indicate that the default should be used." 1092 '(defun (#:comma with-unique-names-binding-parts) (binding) 1093 "Return (values var prefix) from a WITH-UNIQUE-NAMES binding
1094form. If PREFIX is not given in the binding, NIL is returned to
1095indicate that the default should be used." 1096 (if (consp binding) 1097 (values (first binding) (second binding)) 1098 (values binding nil)))) 1099 [Condition of type kernel:simple-program-error]


I have build CMUCL, the version myself a couple of months ago, and it works fine:

CMU Common Lisp 21c (21C Unicode), running on ai.pressiton.com 77Loaded subsystems: 78 Unicode 1.29 with Unicode version 6.2.0 79 Python 1.1, target Intel x86/sse2 80 CLOS based on Gerd's PCL 2010/03/19 15:19:03 81 ASDF 3.3.0 82 Gray Streams Protocol Support 83 CLX X Library Telent CLX 0.7.3 + CMUCL mods, based on MIT R5.02 84 Motif toolkit and graphical debugger 1.0


I think the problem is with the "c" or % in the function name:

c::%defun '(#:comma with-unique-names-binding-parts)

as I had a similar issues, this version of CMUCL doesn't accept some letters in a function definition, in a very few packages (1 or 2) I had to modify it manually.

And I thought Your were using a different CL version, like the SBCL or CLISP, so this would lead me to thinking that this is "the letters" problems, but You run it on the CMUCL successfully, so I am confused now.

Preferably I don't like to touch someone's else work, because it creates problems with the updates, and development - so If You have any idea how to fix it from Your side , even it runs fine on Your install, this would help a lot.

Maybe these letters (symbols) cause the problem.

Kind Regards, A.

joaotavora commented 6 years ago

It's not a question of trying again. It's just there is (yet) no evidence whatsoever that the problem you are experience is related to Snooze.

c::%defun is not, that I know, a symbol in Snooze (it's most probably in CMUCL itself). And with-unique-names-binding-parts is also not a symbol in Snooze. Perhaps it's in one of its dependencies? It's impossible to tell.

So, again, you have yet to provide the evidence or the suspicion that links your problem to my software.

And without this, I can't even begin to help you. I am closing this issue until you can provide more information. Once you do, I will reopen.

  1. Do you know what a backtrace is? If you do, and you can provide, it would be most helpful.
  2. You have still not supplied the name of the operating system you are using.
  3. You have still not specified how you loaded CMUCL (i.e. what you did before trying to quickload :snooze.