|quazimodo||any open source compilers?|
|action||nyef doubts that open source compilers would be answering questions on IRC.|
|nyef||doubts that open source compilers would be answering questions on IRC.|
anyway, i should use correct grammar this time
does an open source compiler exist for lisp?
|quazimodo||can you please name one?|
|nyef||Just one? Okay, how about SBCL?|
|tz_||Is anyone familiar with the SBCL internals?|
|Modius||Anybody know of any web service libraries for common lisp?|
|nyef||tz_: I'm familiar with some of them, why?|
Modius: "web service libraries"?
|Modius||Something for calling into web services from CL (as a client)|
SOAP, all that
|nyef||Like an xml-rpc client?|
|pkhuong||look on c-l.net I think there's a few (XML-RPC, cl-soap)|
|tz_||nyef: I saw on the internals site on cliki about there not being an optimization for squaring bignums. It sounded like a reasonable way to get my feet wet with SBCL.|
|nyef||Hrm... I'm not familiar with the bignum code...|
|tz_||nyef: I am looking at the bignum.lisp code and saw this: (defun %bignum-length (bignum) (declare (type bignum-type bignum)) (%bignum-length bignum)) ... how does that work exactly, I grepped through the code and couldn't find another definition for bignum-length|
It'll be in src/compiler somewhere.
Yeah, src/compiler/vm-fndb.lisp and src/compiler/target/arith.lisp.
Basically, the compiler knows how to open-code a call to %bignum-length, but we still need an actual function for it in some cases, so we do what you saw.
|tz_||nyef, ok thanks. Going to read up on the vop docs some more|
|nyef||No problem. Good luck with it.|
nyef: I've got the define-vop and defknown for bignum-length, but I'm still not seeing an implementation, Code is here http://paste.lisp.org/display/39707
|smolyn||does anyone know what (lambda (sb-pcl::.arg0.)) might indicate in sbcl's profiler? is it clos slot access?|
|nyef||tz_: The define-vop -is- the implementation.|
The (:translate %bignum-length) says "consider using this VOP for this function".
smolyn: It's something to do with CLOS. Beyond that, not sure. Could be a descriminating function or something.
|kpreid||some quick grepping suggests that yes, discriminating functions|
|nyef||tz_: Ah. I see. The bignum-length VOP inherits from the get-header-data VOP.|
The code might be there, or get-header-data might inherit from something else with the code.
(The latter feels unlikely, though.)
Should be in src/compiler/target/system.lisp.
|tz_||nyef: ahh, I didn't know that was inheritance. I may write this up to help the next guy that comes along|
|kpreid||and add it to http://sbcl-internals.cliki.net/|