libera/#commonlisp - IRC Chatlog
Search
18:07:50
gendl
Yes modern mode needs to be a separate image because built in CL official symbols are all literally in lowercase. That's the ansi violation.
18:11:00
gendl
mathrick: cause :invert still reads mixed-case symbols in a case-preserving way, right?
18:13:30
mathrick
Bike: oh, because LOAD-TIME-VALUE will be evaluated if the compiler is active, but loaded from saved value otherwise?
18:14:23
mathrick
yeah, I was looking at the spec the other day, but it's one of the corners of the language I really don't understand well
18:15:52
Bike
like, you can do (defun inc () (incf (car (load-time-value (list 0))))) to make a counter - each call will increment
18:20:33
mathrick
are there any other literals than '(...) that are easy to modify in a spec-violating way? I don't use any array literals that I'm aware of, and no string modification that I know of either
18:21:25
mathrick
I reviewed all the instances of '(...) I could find, and as I thought, they were all in a read-only context because I've learnt my lesson about only using literals when I know what will happen to them back when I started using CL
18:32:57
mathrick
that's conceivable, but what makes me suspicious is that the thing that reliably makes it break for me is cl-openal + cffi:with-foreign-ptr + Verbose, but Shinmera's code also uses that AFAIK
18:34:55
mathrick
hmmm, I do have a custom Trivia pattern that works around the fact that '(foo 42) matches (name (&rest args)), but I don't think it could result in anything being modified
18:38:41
mathrick
at this point, I just want to find a reasonably small repro case I could submit for smarter people than me to look at, and also a workaround so I can move forward and work on what I'm actually trying to do
18:49:14
Shinmera
an openal backend for cl-mixed is on the todo, but I don't need it, because I already interface directly with the operating system APIs, which the other wrappers like openal ultimately do, too, anyway
18:50:52
mathrick
Shinmera: I've used OpenAL enough now to be able to say that it's an extremely poorly-designed API and if you have wrappers already, using it would be a step back, at least for plain output
18:51:39
mathrick
there's *some* merit to using OpenAL for 3D spatialised audio, but it's just a really bad design
18:51:50
Josh_2
::notify lips123mob BKNR doesn't properly handle :initform when modifying class definitions
18:52:24
Shinmera
libmixed has its own spatial audio system, though I think it's bugged at the moment.
18:52:44
Shinmera
Will get to fixing and polishing that whenever I get to preprod for Next Game Project(tm)
20:03:47
jcowan
I suppose you could emulate modern mode with a package modern-cl whose contents are symbols named "car", "cdr", etc and have their definitions copied over.
20:09:05
aeth
no library does (symbol-name '#:foo) because it's longer even though it's more correct
22:28:02
pjb
Josh_2: nope. Packages only have symbols. That said, method combinations are named with symbols.
22:28:28
Josh_2
If I define a method combination in X and :use X in Y will my method combination be found?
22:29:21
pjb
But you can also refer the method combination with a qualified symbol: x::my-method-combin