freenode/#clasp - IRC Chatlog
Search
0:22:05
drmeister
And here... https://github.com/drmeister/cando/blob/dev/src/lisp/leap/topology.lisp#L1309
0:24:01
Bike
here's the issue. defconstant twice is only defined if the values are eql. if the values are eql there's no problem.
0:24:28
Bike
but the string at compile time will be different from the string reconstructed by a fasl, so they won't be eql.
0:24:48
Bike
previously clasp would let you redefine constants to anything if you hit another defconstant.
0:25:48
drmeister
Which does (ql:quickload "build-cando") and the build-cando.asd looks like this...
0:27:34
drmeister
What do you recommend? Is it a bug in the defconstant implementation or something else?
0:27:50
Bike
it's not a bug. i just made defconstant strict, and cando was relying on undefined behavior.
0:28:32
drmeister
Got it - that's ok - if I'm abusing DEFCONSTANT then I have no problem changing the code so that I'm not.
0:29:18
Bike
okay, so here's an example of what i did when this came up in clasp itself https://github.com/drmeister/clasp/blob/dev/src/lisp/kernel/lsp/mislib.lsp#L180
0:29:40
Bike
means it'll ignore constant redefinitions as long as the new value is equalp to the old one
0:33:56
attila_lendvai
constantness as an intention has useful information for the reader of the code (that includes you 2 weeks down the road), so it's worth keeping
0:35:44
drmeister
Bike: No problem - I didn't internalize the spec on DEFCONSTANT and wrote bad code.
1:26:33
attila_lendvai
Bike: re your utf-8 change: it scatters the setting from one place to eight or so places, which violates the OAOO rule, which in turn tends to bite you down the road. if you don't want sbcl internals to be touched (not that sb-impl::*default-external-format* ever changed in the last several years), then I'll try to come up with something else. unfortunately sbcl doesn't seem to have a public way to change the default from lis
1:29:45
Bike
but mostly i wanted it to work since i didn't want to bother contemplating why i was getting the revised error
1:31:28
attila_lendvai
Bike: well, the whole scraper invocation line is sbcl specific, and will remain so due to the other command line args. cl-launch can abstract that away for some extra dependencies... but I'd just add whatever lisp we support for bootstrapping.
1:31:50
Bike
yeah, i'm not that concerned, just think it's worth mentioning. if sbcl exports something i don't mind using it.
2:13:46
drmeister
I searched for s/defconstant[^"]*"/ and changed them all to defvar - now cando compiles file - thanks!
3:40:43
Bike
what's supposed to happen is, if the constant is already defined, it just redefines it to itself, which is no problem