freenode/#lisp - IRC Chatlog
Search
0:53:33
drmeister
Hey folks - I'm adding some optimizations to Clasp and I wanted to check my thinking.
0:54:27
drmeister
Currently Clasp's DEFMETHOD works like ECL - it walks the method lambda to determine if the method uses call-next-method or next-method-p and constructs a method function that does or doesn't have those local functions defined.
0:54:46
earl-ducaine
Lispiacs! re: defvar. I'd like to create a global special variable at run time that is ordinarially not present when the program's compiled files loaded. The easiest way is just to create a macro like so: (defmacro define-site-variable (variable value) `(defvar ,variable ,value))
0:54:50
earl-ducaine
where define-site-variable is obviously just a bit of implementation hiding of calling (defvar variable value)
0:54:54
earl-ducaine
The question: is there any reason why it wouldn't be advisable to use defvar in a non-toplevel form, given clhs' warning about compiling that code having no side-effects. (which would appear to be what I want)
0:55:47
drmeister
I think I need to store the result of that walk in the method by adding two new slots to the method class: method-calls-next-method and method-calls-next-method-p.
0:58:02
drmeister
I think I need to do this so that that I can optimize effective methods for slot accessors. If a class has an accessor with more than one method if the first method that would be called doesn't call call-next-method or next-method-p I can optimize it as a direct slot access.
1:00:20
drmeister
Another optimization is if the first method of the effective method doesn't call call-next-method/next-method-p then I can call the method function passing the arguments directly rather than passing the arguments as a list.
1:01:06
drmeister
Adding slots to the method class is kind of drastic but I think that's what needs to be done.
1:06:52
drmeister
Not like I'm waiting or anything - I'm proceeding with adding a leaf-method-p slot that is T if the method doesn't call call-next-method or next-method-p.
3:09:58
fiddlerwoaroof
You could also do something like (member :darwin *features*) if you need to do something programatically, but you should probably make sure something like trivial-features has been loaded to normalize the features list
3:14:15
jmercouris
I think it would be nice to be able to load the system without any graphical dependencies
3:15:41
Zhivago
I think it is always nice to delegate decisions like that to the user rather than to try to detect.
4:29:26
jasom
minion: memo for jmercouris the best way to use asdf and features is to use defsystem-depends-on to require any packages that might set features you need (e.g. trivial-features) and then if-feature inside your defsystem
4:29:35
jasom
minion: memo for jmercouris: the best way to use asdf and features is to use defsystem-depends-on to require any packages that might set features you need (e.g. trivial-features) and then if-feature inside your defsystem
4:37:54
asarch
When you do: (ql:quickload "quicklisp-slime-helper") and QuickLisp is doing "[package retrospectiff2]..........................", is it compiling?
9:05:07
loke
Oh here you are... Being all logcal and reasonable again. How are the rest of us going to be able to look smart? :-)
9:08:40
beach
dmiles: More to the point, if you assign to that slot in one class, it would not change in the other.
9:14:04
dmiles
well you mean in the case the subclasses allocation (on its prototype) is differnt than the superclasses's allocation?
9:14:45
beach
No, when they are the same. There will be one prototype for each class, so there would be two places to store the shared slot.
11:36:28
veckon
Do you know if there are any manuals for the 3D design/rendering software the Symbolics Graphics Divison created?
11:54:27
Cymew
Probably. Were they included in the Genera distriubution? If not, you probably need to get them from the same source as the software.
11:54:52
veckon
I don't think they were included in the Genera distribution, actually, but I am not sure
12:09:17
dmiles
ty for suggerstions .. i am making it all the way thru https://github.com/TeamSPoon/wam_common_lisp/blob/master/t/sanity-test-1.lisp#L158
12:44:25
phoe
I have a string like ":FOO :BAR :BAZ :QUUX". Is there a function that will read it as a list?
12:44:54
phoe
Like, I want something better than to define my own function that does (READ-FROM-STRING (CONCATENATE 'STRING "(" STRING ")")).