freenode/#clasp - IRC Chatlog
Search
16:12:13
drmeister
And we can include as much Common Lisp as we want because the interpreter can load Common Lisp code and make the functions and macros available.
16:12:48
drmeister
It gets really bogged down in CLOS - so as long as we don't use CLOS inside of translate-simple/branch-instruction.
16:13:28
drmeister
But the interpreter can call into llvm without loading any Common Lisp code. That's built into the C++ executable.
16:21:18
drmeister
the clasp interpreter running the generated code - maybe 15 min (this is the biggest unknown).
16:24:13
drmeister
So - on my laptop thats 10+15+15+15 -> ~1 hour, where less than half the time is compiling Common Lisp code and the rest of the time is C++ and LLVM linking.
16:26:03
drmeister
We are never going to get this down to 5 minutes. C++ and LLVM become the bottlenecks.
16:27:44
drmeister
Bike: I hit this while building bclasp: datum: TYPE-ERROR (:DATUM #S(STANDARD-GENERIC-FUNCTION GENERIC-FUNCTION-NAME #slots[14]) :EXPECTED-TYPE FUNCTION)
16:33:23
drmeister
What I've been doing the last couple of days should have fixed that - investigating...
16:36:29
drmeister
Those are the range of stamps for Function_O. FuncallableInstance_O is 264 This is what FUNCTIONP should reduce to in 'boehm'
16:37:31
drmeister
Don't worry - I'm sure things are fine. I've been doing a lot of messing around the past couple of days before I settled on FuncallableInstance_O inheriting from Function_O - I'm on it.
17:03:32
drmeister
generic-functions are being allocated as Instance_O and not FuncallableInstance_O
17:38:38
Bike
i'm gonna start on path replication, but i think it will be easier if i can get values of constant hir data. do you think it would be reasonable to add a 'value' slot to load-time-value-input, and have generate-ast evaluate the form and put the result in that slot, when read-only-p is true?
17:42:52
beach
I think I have said this before, but constant folding might not be universally good (for all values, I mean).
18:32:23
Kevslinger
drmeister: when I run the test-nglview notebook and get to (defparameter *r* (trivial-http:http-get *u*)), [where *u* is "http://files.rcsb.org/view/4HB1.cif"], I get an error of type: END-OF-FILE. Do you know what I can do to fix that?
18:36:14
drmeister
https://github.com/clasp-developers/cl-jupyter/blob/master/nglview/adaptor.lisp#L91
18:37:00
drmeister
Shinmera: I don't think there is a good reason anymore - I can't remember why we were using trivial-http
18:37:23
Shinmera
drmeister: drakma uses flexi-streams which uses gray-streams, maybe because of that.
18:38:39
drmeister
Kevslinger: What Shinmera is describing are other quicklisp systems that handle the http protocol.
18:39:15
drmeister
(ql:quickload "dexador") or (ql:quickload "drakma") are probably how you load them.
18:40:00
drmeister
I don't have problems using quicklisp dependencies - they get automatically compiled into the docker image
18:59:01
drmeister
I have these C++ classes called CREATOR's - they do the business of ALLOCATE-INSTANCE but for all C++ objects.
18:59:21
drmeister
For some reason I didn't make them funcallable. I'm going to make them inherit from Function_O.
18:59:48
drmeister
Then we can go (funcall (core:creator (find-class 'whatever))) and get a C++ constructed object
20:10:16
drmeister
I found the problem I was having. I was allocating a FuncallableInstance_O but installing the header-value for Instance_O
21:00:14
drmeister
I compile-file compile-time.lisp and the worst thing that happens is I get a warning.
21:02:44
drmeister
I'm going to create 'sbcl-workbench.lisp' in the clasp/src/lisp/kernel/cleavir/ directory to start working on loading clasp-cleavir into sbcl to test this idea of using sbcl to build clasp
21:05:50
Bike
alright. i've only used cleavir in sbcl in small doses so i've probably missed plenty of things (like the unrecognized declaration, for example)
21:07:50
drmeister
Why does this cause ASDF a problem? "CC-GENERATE-AST is a nickname for the package CLASP-CLEAVIR-GENERATE-AST"?
21:59:41
drmeister
cclasp builds but it fails when building either asdf or serve-event because of a type error.
22:00:22
drmeister
The type error is: (ERROR 'TYPE-ERROR ':DATUM #<PRETTY-STREAM > ':EXPECTED-TYPE (AND (AND (OR STREAM (MEMBER T NIL)))) )
22:05:47
drmeister
The class precedence list of #<The STANDARD-CLASS CORE::PRETTY-STREAM> --> (#<The STANDARD-CLASS CORE::PRETTY-STREAM> #<The STANDARD-CLASS GRAY:FUNDAMENTAL-CHARACTER-OUTPUT-STREAM> #<The STANDARD-CLASS GRAY::FUNDAMENTAL-OUTPUT-STREAM> #<The STANDARD-CLASS GRAY::FUNDAMENTAL-CHARACTER-STREAM> #<The STANDARD-CLASS GRAY::FUNDAMENTAL-STREAM> #<The STANDARD-CLASS STANDARD-OBJECT> #<The BUILT-IN-CLASS STREAM> #<The
22:15:16
drmeister
But TYPEQ won't work on this because the #<PRETTY-STREAM> is not a built in class - it's a CLOS class.
22:15:21
drmeister
It's from here: https://github.com/drmeister/clasp/blob/dev-func/src/lisp/kernel/lsp/pprint.lsp#L933
22:17:49
drmeister
::notify Bike See the comments above: https://irclog.tymoon.eu/freenode/clasp?around=1500933581#1500933581
22:31:05
drmeister
I've switched into dev-func2 and Creator_O inherits from Function_O - I'm running the static analyzer with that
22:31:38
Colleen
Bike: drmeister said 13 minutes, 49 seconds ago: See the comments above: https://irclog.tymoon.eu/freenode/clasp?around=1500933581#1500933581
22:32:46
Bike
and, i kind of expected anything in the primitive types to actually correspond to the CL type.
23:50:26
drmeister
Tomorrow creators will inherit from Function_O but otherwise you should have what you need now for typeq
0:27:27
Bike
gray::fundamental-output-stream and so on are lisp classes that are not in the type map, right?
0:28:24
Bike
i'm not totally clear on what's in the map. i expected that any CL types would actually correspond to the CL type.
0:33:43
drmeister
Things in the type map are classes defined in C++. There is a list of them. *all-cxx-classes* or some such
0:51:36
Bike
standard-object or instance or whatever just has one header or stamp or thing, right? to determine a typep you have to look at the object's class.