freenode/#lisp - IRC Chatlog
Search
19:13:18
PuercoPop
If the Fediverse would reach the code forge's it would be possible to have a more abstract implementation
19:29:26
pfdietz
It does not actually execute the defpackage forms. It can't, since in general they are in conflict. So it cheats.
19:29:54
phoe
It's going to be much harder to actually find internal symbols because of reader conditionals.
19:33:13
pfdietz
Even with its inadequacies, it finds quite a few conflicts when run on the current quicklisp dist.
19:35:01
phoe
There's a CCL fire I need to put out now though. So I'll likely take a raincheck on QL stuff.
19:36:55
pfdietz
My next project is a mutation testing framework for CL. Check the adequacy of your test suite by mutating your code and seeing if the tests catch the bugs. The key is to recognize when a mutation is not a bug.
19:37:33
pfdietz
I applied a prototype of this to some implementations of CL built ins from SBCL, and ansi-tests. New tests were needed!
19:51:26
pfdietz
phoe: here were the collisions including system packages: https://pastebin.com/gNFsBtU0
20:12:27
pfdietz
To reduce bad mutations, some sort of simplistic analysis helps. For example, is a variable unchanging once bound, or can it be assigned to?
20:14:03
pfdietz
You can let the CL compiler do this. (let ((x ...)) ...) => (let ((x' ...)) (symbol-macrolet (x '(identity x')) ...))
21:04:50
fiddlerwoaroof
PuercoPop: you could also use empty commits (e.g. git commit --allow-empty) to log issues...
21:05:07
fiddlerwoaroof
And that way, anyone with the git repository also has access to the issue tracker.
21:15:17
PuercoPop
fiddlerwoaroof: I've been trying to use git notes as a 'staging area' for the PR message
22:44:55
PuercoPop
Magit makes it easy to make them visible. Its either that or keep squashing everything into a large commit
23:14:45
phoe
The function found in the stacktrace, %LOCK-WHOSTATE-STRING, attempts to format a string, and in order to format it, it needs to prettyprint a symbol. My prettyprinting is broken, as it unnecessarily prints a package prefix, so it looks up a package, which looks up package local nicknames, which tries to grab the PLN lock, which, when there's lock contention from multiple threads, attempts to set an
23:14:51
phoe
informational message to the thread saying on which lock it is waiting, and that informational message is the value of the function %LOCK-WHOSTATE-STRING, which then gets called...
23:17:07
phoe
https://github.com/Clozure/ccl/blob/88daad4adc8d89f70d00883a9ed248a2d02f6145/lib/misc.lisp#L1483
0:54:55
pjb
phoe: in an internal function such as this, you should probably avoid format, and fall back to lower level I/O.
0:56:48
pjb
phoe: like: (progn (write-string string) (write-string " for ") (if … (write-string (symbol-name (lock-name lock)))) (write-string "@ #x") (princ (%ptr-to-int …)) (terpri))
0:57:32
pjb
or even, concatenate 'string in this case, since you want to return the string, not do I/O.
5:18:51
oni-on-ion
serious important question. can i move the colon to the right side of keywords in some way?
5:21:10
edgar-rft
you can create symbols with a colon at the end but they won't be automatically treatened as keywords anymore
5:24:19
oni-on-ion
hmm i want to hack the reader or something to get it happening. i just cant wrap my brain the other way
5:24:55
oni-on-ion
PuercoPop, my goal is to have the colon on the right side of keywords. or alternatively, to have a different character at the front instead of the colon. is this more clear ?
5:29:00
PuercoPop
oni-on-ion: I meant why would you want to do that? What is the underlying purpose?
5:29:09
beach
oni-on-ion: You can use Eclector. Then you can program the token parser to do what you want.
6:18:30
oni-on-ion
i'd rather modify sbcl itself , probably cleaner than pulling in such a beast as Eclector
6:29:58
oni-on-ion
could just coax emacs into displaying ':' into another char because unwiring my brain (from ObjC) might be counter productive. some kinds of trauma are healthy