freenode/#shirakumo - IRC Chatlog
Search
14:42:33
mfiano
With the l-t-v trick, do I still have to be careful about values escaping the function as with DX?
14:43:21
Shinmera
they may escape, but since they're on the heap it doesn't matter as long as you know you're not gonna use them in the same place. The make-hit thing for instance obviously escapes, and I have to take care that I don't retain the instance for longer than reasonable.
14:45:20
mfiano
I basically do something liek (let ((a (make-identity-mat3)) (b (make-identity-mat3)) .... (values a b)), in a function that is called each frame for each object, and the calling function is just a boolean predicate
14:47:20
Shinmera
since the object is allocated once and sticks in the heap, and you have to modify it to actually use it, two threads doing that at the same time is obviously bad.
14:48:29
Shinmera
because the object is allocated at load time. How are you going to use it for anything good without first filling it with useful values?
14:54:17
mfiano
until one of my users reported their dumped binary's game clock months in the future
14:55:27
Shinmera
I also have this: https://github.com/Shirakumo/trial/blob/master/toolkit.lisp#L459
14:55:28
Colleen
github.com/Shirakumo/trial/... Website (HTML), Title: trial/toolkit.lisp at master · Shirakumo/trial · GitHub
14:55:57
Shinmera
And for the g-i-r-t thingy you'd use a trick like this: https://github.com/Shirakumo/trial/blob/46b56ecbab3d04b264a8313a65014fa6d1c8b204/toolkit.lisp#L551-L560
14:55:58
Colleen
github.com/Shirakumo/trial/... Website (HTML), Title: trial/toolkit.lisp at 46b56ecbab3d04b264a8313a65014fa6d1c8b204 · Shirakumo/trial · GitHub
14:56:58
Shinmera
the former inlines constant argument calls, basically, and the latter does first-call jit optimisation.
14:57:20
mfiano
shouldn't mksym be making an uninterned symbol. i didn't look at the definition of that, but couldn't it clobber stuff?
14:59:35
mfiano
i see symbol-package though, and a defun name set from the result of that, whatever it is doing with symbol-package
15:24:35
mfiano
Isn't modifying the result of load-time-value undefined behavior? CLHS says load-time-value results in a literal.
15:25:29
Shinmera
sure. an implemantation could choose to protect the memory, but there's no real reason to do so.