tynet-lichat/shirakumo - IRC Chatlog
Search
15:42:49
shinmera
Well heck https://cdn.discordapp.com/attachments/714361338260095067/1115304603634913340/screenshot.png
16:14:55
Grolter
Hi again! I'm trying to compile a game which uses deploy and harmony with ccl, and I'm having some issues.
16:15:52
Grolter
There seems to be a problem in cl-mixed where there is a (defconstant ...) form that is used in the same file, and CCL doesn't seem to apply the effect at compile-time.
16:25:21
Colleen
Clhs: macro defconstant http://www.lispworks.com/documentation/HyperSpec/Body/m_defcon.htm
16:25:21
Colleen
Clhs: macro defconstant http://www.lispworks.com/documentation/HyperSpec/Body/m_defcon.htm
16:25:25
shinmera
"An implementation may choose to evaluate the value-form at compile time, load time, or both. Therefore, users must ensure that the initial-value can be evaluated at compile time (regardless of whether or not references to name appear in the file) and that it always evaluates to the same value."
16:27:01
Grolter
But it also says "However, the compile-time side effects described below only take place when defconstant appears as a top level form"...
16:28:57
shinmera
eval-when :compile-toplevel forces the evaluation at compile-time, so toplevelness doesn't matter at all.
16:48:19
Grolter
When I do (deploy:define-library cl-opengl-bindings::opengl :dont-deploy t), it is ok
16:50:02
Grolter
But when I try the same with org.shirakumo.fraf.mixed.pulse.cffi:libpulse-simple, it signals an error: Error: The value 0 is not of the expected type (OR PATHNAME STREAM STRING).
17:01:27
shinmera
it's possible ccl's cffi impl is broken and returns 0 instead of NIL somewhere, or something.
17:19:28
Grolter
But now harmony breaks with Error: :NAME is an invalid initarg to INITIALIZE-INSTANCE for #<STANDARD-CLASS ORG.SHIRAKUMO.FRAF.MIXED.PULSE:DRAIN>
17:23:23
Colleen
this week im planning to 1) get static space relocatable 2) try to have the switch at least enter the lisp entry point once that works
17:23:23
karlosz
this week im planning to 1) get static space relocatable 2) try to have the switch at least enter the lisp entry point once that works
17:24:12
Colleen
getting static space relocatable will involve removing some assumptions about how nil is treated on all backends - i got gcc farm machines for all the backends set up at this point
17:24:12
karlosz
getting static space relocatable will involve removing some assumptions about how nil is treated on all backends - i got gcc farm machines for all the backends set up at this point
18:38:16
Grolter
About harmony break: it seems that stealth-mixins might not be working well on CCL, but I'm not sure yet
20:33:34
Grolter
Ok, stealth-mixin works fine, but again there is a problem with time of the evaluation. Wrapping stealth-mixin:define-stealth-mixin in eval-always fixes that problem...
20:36:11
Grolter
I get an error "Don't know how to do conditional store to (SLOT-VALUE SERVER 'FREE-BUFFERS)", when you try to do harmony::pop* on (slot-value server 'free-buffers)
20:46:31
Grolter
Is there some way to bypass the fact that harmony uses atomics operations on SLOT-VALUE, but it is not supported?
21:21:35
Grolter
Ok, I think I was able to do it somehow, by creating a %ref struct with a single slot and using it as a container for free-buffers / free-unpackers (only on ccl)
21:24:10
Grolter
Wrapping in (eval-when (:compile-toplevel :load-toplevel :execute) ...) doesn't help, but, weirdly, (asdf:load-system :harmony :force T) does the trick (but ql:quickload doesn't work even after deleting cache fasls)
21:34:40
Grolter
Ah, no, it works after deleting cache fasls. On the other hand, stealth-mixin:add-mixin is called every time, so I don't understand what is going on
22:46:50
Grolter
There is an :after method to initialize instance in cl-mixed-pulse (defmethod initialize-instance :after ((drain drain) &key) ...), but there should be (I suppose) an &allow-other-keys there