Slow clsql compilation

"Marko Kocić" <[email protected]> Tue, 22 Aug 2006 15:32:04 +0200
Newsgroups gmane.lisp.steel-bank.devel,gmane.lisp.clsql.devel
Message-ID <[email protected]>
Hi all,
I included both mailing list cause I'm not sure where the problem is.

When trying to do (asdf:oos 'asdf:load-op :clsql) of clsql-3.6.6 using
sbcl-0.9.15-44 on windows -xp it takes verry long time to compile. It
seems that problem is in oodml.lisp file which takes 12min to compile.
Clisp compiles it instantly.

I remember that sbcl compilation was fast with previous versions of
sbcl and clsql, but cannot check them right now.

Does it happen on linux too?

Here's the compilation log:
; file: c:\lisp\lib\clsql-3.6.6\sql\oodml.lisp
; in: DEFMETHOD UPDATE-SLOT-FROM-DB (STANDARD-DB-OBJECT T T)
;     (FORMAT NIL CLSQL-SYS::SLOT-READER CLSQL-SYS::VALUE)
;
; note: unable to
;   optimize
; due to type uncertainty:
;   The second argument is a STRING, not a SIMPLE-STRING.

;     (APPLY CLSQL-SYS::SLOT-READER (LIST CLSQL-SYS::VALUE))
; --> MULTIPLE-VALUE-CALL
; ==>
;   (SB-KERNEL:%COERCE-CALLABLE-TO-FUN CLSQL-SYS::SLOT-READER)
;
; note: unable to
;   optimize away possible call to FDEFINITION at runtime
; due to type uncertainty:
;   The first argument is a (OR FUNCTION SYMBOL), not a FUNCTION.

; compiling (DEFMETHOD KEY-VALUE-FROM-DB ...)
; file: c:\lisp\lib\clsql-3.6.6\sql\oodml.lisp
; in: DEFMETHOD KEY-VALUE-FROM-DB (T T T)
;     (FORMAT NIL CLSQL-SYS::SLOT-READER CLSQL-SYS::VALUE)
;
; note: unable to
;   optimize
; due to type uncertainty:
;   The second argument is a STRING, not a SIMPLE-STRING.

;     (APPLY CLSQL-SYS::SLOT-READER (LIST CLSQL-SYS::VALUE))
; --> MULTIPLE-VALUE-CALL
; ==>
;   (SB-KERNEL:%COERCE-CALLABLE-TO-FUN CLSQL-SYS::SLOT-READER)
;
; note: unable to
;   optimize away possible call to FDEFINITION at runtime
; due to type uncertainty:
;   The first argument is a (OR FUNCTION SYMBOL), not a FUNCTION.

; compiling (DEFUN DB-VALUE-FROM-SLOT ...)
; compiling (DEFUN CHECK-SLOT-TYPE ...)
; compiling (DEFMETHOD GET-SLOT-VALUES-FROM-VIEW ...)
; compiling (DEFMETHOD UPDATE-RECORD-FROM-SLOT ...)
; compiling (DEFMETHOD UPDATE-RECORD-FROM-SLOTS ...)
; compiling (DEFMETHOD UPDATE-RECORDS-FROM-INSTANCE ...)
; compiling (DEFMETHOD DELETE-INSTANCE-RECORDS ...)
; compiling (DEFMETHOD UPDATE-INSTANCE-FROM-RECORDS ...)
; compiling (DEFMETHOD UPDATE-SLOT-FROM-RECORD ...)
; compiling (DEFMETHOD UPDATE-SLOT-WITH-NULL ...)
; compiling (DEFVAR +NO-SLOT-VALUE+ ...)
; compiling (DEFSQL SQL-SLOT-VALUE ...)
; compiling (DEFSQL SQL-VIEW-CLASS ...)
; compiling (DEFMETHOD DATABASE-GET-TYPE-SPECIFIER ...)
; compiling (DEFMETHOD DATABASE-GET-TYPE-SPECIFIER ...)
; compiling (DEFTYPE TINYINT ...)
; compiling (DEFMETHOD DATABASE-GET-TYPE-SPECIFIER ...)
; compiling (DEFTYPE SMALLINT ...)
; compiling (DEFMETHOD DATABASE-GET-TYPE-SPECIFIER ...)
; compiling (DEFTYPE MEDIUMINT ...)
; compiling (DEFMETHOD DATABASE-GET-TYPE-SPECIFIER ...)
; compiling (DEFTYPE BIGINT ...)
; compiling (DEFMETHOD DATABASE-GET-TYPE-SPECIFIER ...)
; compiling (DEFTYPE VARCHAR ...)
; compiling (DEFMETHOD DATABASE-GET-TYPE-SPECIFIER ...)
; compiling (DEFMETHOD DATABASE-GET-TYPE-SPECIFIER ...)
; compiling (DEFTYPE UNIVERSAL-TIME ...)
; compiling (DEFMETHOD DATABASE-GET-TYPE-SPECIFIER ...)
; compiling (DEFMETHOD DATABASE-GET-TYPE-SPECIFIER ...)
; compiling (DEFMETHOD DATABASE-GET-TYPE-SPECIFIER ...)
; compiling (DEFMETHOD DATABASE-GET-TYPE-SPECIFIER ...)
; compiling (DEFMETHOD DATABASE-GET-TYPE-SPECIFIER ...)
; compiling (DEFMETHOD DATABASE-GET-TYPE-SPECIFIER ...)
; compiling (DEFMETHOD DATABASE-GET-TYPE-SPECIFIER ...)
; compiling (DEFTYPE GENERALIZED-BOOLEAN ...)
; compiling (DEFMETHOD DATABASE-GET-TYPE-SPECIFIER ...)
; compiling (DEFMETHOD DATABASE-GET-TYPE-SPECIFIER ...)
; compiling (DEFMETHOD DATABASE-GET-TYPE-SPECIFIER ...)
; compiling (DEFMETHOD DATABASE-GET-TYPE-SPECIFIER ...)
; compiling (DEFMETHOD DATABASE-OUTPUT-SQL-AS-TYPE ...)
; compiling (DEFMETHOD DATABASE-OUTPUT-SQL-AS-TYPE ...)
; compiling (DEFMETHOD DATABASE-OUTPUT-SQL-AS-TYPE ...)
; compiling (DEFMETHOD DATABASE-OUTPUT-SQL-AS-TYPE ...)
; compiling (DEFMETHOD DATABASE-OUTPUT-SQL-AS-TYPE ...)
; compiling (DEFMETHOD DATABASE-OUTPUT-SQL-AS-TYPE ...)
; compiling (DEFMETHOD DATABASE-OUTPUT-SQL-AS-TYPE ...)
; compiling (DEFMETHOD DATABASE-OUTPUT-SQL-AS-TYPE ...)
; compiling (DEFMETHOD DATABASE-OUTPUT-SQL-AS-TYPE ...)
; compiling (DEFMETHOD DATABASE-OUTPUT-SQL-AS-TYPE ...)
; compiling (DEFMETHOD DATABASE-OUTPUT-SQL-AS-TYPE ...)
; compiling (DEFMETHOD READ-SQL-VALUE ...)
; compiling (DEFMETHOD READ-SQL-VALUE ...)
; compiling (DEFMETHOD READ-SQL-VALUE ...)
; compiling (DEFMETHOD READ-SQL-VALUE ...)
; compiling (DEFMETHOD READ-SQL-VALUE ...)
; compiling (DEFMETHOD READ-SQL-VALUE ...)
; compiling (DEFMETHOD READ-SQL-VALUE ...)
; compiling (DEFMETHOD READ-SQL-VALUE ...)
; compiling (DEFMETHOD READ-SQL-VALUE ...)
; compiling (DEFMETHOD READ-SQL-VALUE ...)
; compiling (DEFMETHOD READ-SQL-VALUE ...)
; compiling (DEFMETHOD READ-SQL-VALUE ...)
; compiling (DEFMETHOD READ-SQL-VALUE ...)
; compiling (DEFMETHOD READ-SQL-VALUE ...)
; compiling (DEFMETHOD READ-SQL-VALUE ...)
; compiling (DEFMETHOD READ-SQL-VALUE ...)
; compiling (DEFMETHOD READ-SQL-VALUE ...)
; compiling (DEFUN FAULT-JOIN-TARGET-SLOT ...)
; compiling (DEFVAR *DEFAULT-UPDATE-OBJECTS-MAX-LEN* ...)
; compiling (DEFUN UPDATE-OBJECTS-JOINS ...)
; compiling (DEFUN FAULT-JOIN-SLOT-RAW ...)
; compiling (DEFUN FAULT-JOIN-SLOT ...)
; compiling (DEFUN JOIN-QUALIFIER ...)
; compiling (DEFUN BUILD-OBJECTS ...)
; compiling (DEFUN FIND-ALL ...)
; compiling (DEFMETHOD INSTANCE-REFRESHED ...)
; compiling (DEFVAR *DEFAULT-CACHING* ...)
; compiling (DEFUN SELECT ...)
; compiling (DEFUN COMPUTE-RECORDS-CACHE-KEY ...)
; compiling (DEFUN RECORDS-CACHE-RESULTS ...)
; compiling (DEFUN (SETF RECORDS-CACHE-RESULTS) ...)
; compiling (DEFUN WRITE-INSTANCE-TO-STREAM ...)
; compiling (DEFUN READ-INSTANCE-FROM-STREAM ...)

; c:\lisp\cache\.fasls\sbcl-win32-x86-0.9.15.44\lisp\lib\clsql-3.6.6\sql\oodml.fasl
written
; compilation finished in 0:12:23

Thanks,
Marko

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642