akapav / js

JavaScript compiler for Common Lisp
MIT License
195 stars 35 forks source link

test.js fails for Clozure CL #11

Closed desoi closed 13 years ago

desoi commented 13 years ago
; Loading system definition from lisp-systems:CLZ-IDE;CLZ-IDE;CLZ-IDE.ASD.newest into #<Package "ASDF0">
; Registering #<SYSTEM :CLZ-IDE> as CLZ-IDE
Welcome to Clozure Common Lisp Version 1.7-dev-r14639M-trunk  (DarwinX8664)!
? (asdf-load :cl-js)
; Loading system definition from lisp-systems:CL-JS;CL-JS;CL-JS.ASD.newest into #<Package "ASDF0">
; Registering #<SYSTEM :CL-JS> as CL-JS
; Loading system definition from lisp-systems:CL-PPCRE;CL-PPCRE;CL-PPCRE.ASD.newest into #<Package "ASDF0">
; Registering #<SYSTEM :CL-PPCRE> as CL-PPCRE
; Registering #<SYSTEM :CL-PPCRE-TEST> as CL-PPCRE-TEST
; Loading system definition from lisp-systems:PARSE-JS;PARSE-JS;PARSE-JS.ASD.newest into #<Package "ASDF0">
; Registering #<SYSTEM #:PARSE-JS> as PARSE-JS
T
? (use-package :cl-js)
T
? (run-js-file #p"/cl-js/cl-js/test.js")
;Compiler warnings :
;   In an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form inside an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form inside an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form inside an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
;   In an anonymous lambda form inside an anonymous lambda form: Suspicious lambda-list: (#:|this| &OPTIONAL &REST CL-JS::EXTRA-ARGS)
> Error: Invalid memory operation.
> While executing: CL-JS::META-LOOKUP, in process Listener(6).
> Type cmd-. to abort, cmd-\ for a list of available restarts.
> Type :? for other options.
1 > :b
*(171D0780) : 0 (META-LOOKUP #<js obj> #<js obj> "y") 193
 (171D0810) : 1 (CACHE-MISS #<js obj> #<js obj> 357367667306266624) 61
 (171D0840) : 2 (FUNCALL #'#<Anonymous Function #x30200127FFCF> #<js obj>) 557
 (171D0898) : 3 (FUNCALL #'#<Anonymous Function #x3020011C432F> "test_20") 1149
 (171D0918) : 4 (FUNCALL #'#<#<STANDARD-METHOD JS-FOR-IN (CL-JS::OBJ T)>> #<js obj> #<COMPILED-LEXICAL-CLOSURE #x302001308A3F> NIL) 493
 (171D09B0) : 5 (FUNCALL #'#<Anonymous Function #x3020011C784F> #<js obj>) 701
 (171D0A08) : 6 (RUN-JS-FILE #P"/cl-js/cl-js/test.js" :COMPILE T :WRAP-PARSE-ERRORS NIL :OPTIMIZE NIL :WRAP-AS-MODULE NIL :EXTERNAL-FORMAT :DEFAULT) 357
 (171D0AC0) : 7 (CALL-CHECK-REGS RUN-JS-FILE #P"/cl-js/cl-js/test.js") 221
 (171D0AF8) : 8 (TOPLEVEL-EVAL (RUN-JS-FILE #P"/cl-js/cl-js/test.js") NIL) 701
 (171D0B98) : 9 (READ-LOOP :INPUT-STREAM #<SYNONYM-STREAM to *TERMINAL-IO* #x302000C0830D> :OUTPUT-STREAM #<SYNONYM-STREAM to *TERMINAL-IO* #x302000C081AD> :BREAK-LEVEL 0 :PROMPT-FUNCTION #<Compiled-function (:INTERNAL CCL::READ-LOOP) (Non-Global)  #x3000005829EF>) 2269
 (171D0DF0) : 10 (TOPLEVEL-LOOP) 101
 (171D0E18) : 11 (FUNCALL #'#<(:INTERNAL CCL::MAKE-MCL-LISTENER-PROCESS)>) 741
 (171D0EB8) : 12 (RUN-PROCESS-INITIAL-FORM #<COCOA-LISTENER-PROCESS Listener(6) [Active] #x302000C69BAD> (#<COMPILED-LEXICAL-CLOSURE # #x302000C6967F>)) 677
 (171D0F48) : 13 (FUNCALL #'#<(:INTERNAL (CCL::%PROCESS-PRESET-INTERNAL (PROCESS)))> #<COCOA-LISTENER-PROCESS Listener(6) [Active] #x302000C69BAD> (#<COMPILED-LEXICAL-CLOSURE # #x302000C6967F>)) 389
 (171D0F98) : 14 (FUNCALL #'#<(:INTERNAL CCL::THREAD-MAKE-STARTUP-FUNCTION)>) 301
1 > (:raw 0)
*(171D0780) : 0 (META-LOOKUP #<js obj> #<js obj> "y") 193
  0 THIS: #<js obj> ("required")
  1 CL-JS::OBJ: #<js obj> ("required")
  2 CL-JS::PROP: "y" ("required")
  3 : #S(CL-JS::CACHE :OP #<Compiled-function CL-JS::CACHE-MISS #x302000ED65BF> :PROP "y" ...) ("saved SAVE0")
  4 : CL-JS::GCACHE-LOOKUP ("saved SAVE1")
  5 : *ENV* ("saved SAVE2")
  6 CL-JS::CLS: #<js obj>
  7 CL-JS::VALS: #(0 0 0 0)
  8 #:G74718: #(#<js obj> 1 #<js obj>)
marijnh commented 13 years ago

Thanks for the report. Should be fixed by 82df33a19b0090b0348ce196e31f7b7032352a46 . I've also pushed something that shuts up the "suspicious lambda-list" warnings.

desoi commented 13 years ago

All tests pass now, but I still get a zillion warnings about suspicious lambda-list. Also a lot of these when compiling runtime.lisp.