freenode/#lisp - IRC Chatlog
Search
17:15:21
mfiano
Soon to be much more actually, once my changes go in which I am now probably going to hold off on pushing.
17:17:25
phoe
mfiano: https://github.com/quicklisp/quicklisp-projects/issues/1671#issuecomment-485894805
17:19:09
phoe
actually, now I am curious how many Quicklisp projects define something in the internal packages
17:20:19
mfiano
Because that could surely cause future additions not to build, and it wouldn't be the redefining package's problem.
17:20:52
Xach
mfiano: each project is loaded in isolation. it would be interesting to load in combination.
17:21:35
_death
seen in a commit message from 2018-01-26: "I've decided to banish hu.dwim libraries because hu.dwim.asdf redefines SB-KERNEL:LINE-LENGTH and ASDF internals. It may not cause an immediate problem, but is not something I want to depend on."
17:24:06
mfiano
"please hide your comments on the SBCL bug, and i'll also hide mine, to keep that bug on topic."
17:50:46
mfiano
In other news, I'm sort of excited to be starting a 6 month CL contract this week :)
17:57:20
phoe
Xach: I think you or someone else actually posted some code that checked how many packages have conflicting nicknames
17:57:58
phoe
We could modify that code in order to query how many systems define something in the implementation-internal packages.
18:07:00
PuercoPop
mfiano: was going to suggest lifting the help system from lispkit. It renders the 'keymaps' to HTML using djula on the fly. Anyway best of luck working with CL for 💰!
18:07:43
Xach
phoe: i have code called qlmapper that makes it a little easier to load each quicklisp project
18:26:13
phoe
actually the question is, do we as a Quicklisp-centered community now need to spend time to actually curate the code inside the most used and popularâ„¢ QL-included systems
18:26:49
phoe
basically, do we need someone to look over the systems and their code and keep on watching them as they change and so on and bla bla bla
18:28:46
sjl
If I ever win the startup lottery and end up with enough money to not have to work, I'd love to maintain a quicklisp dist called SlowLisp that only contained code/changes I'd audited/reviewed.
18:29:43
pjb
sjl: this is what Elon Musk said. Then instead of 1 startup, he started 4 of them! Now he has 4 times more work! (Space X, Tesla, Boring, and the brain-computer neural interface company).
18:31:16
phoe
sjl: my question is, is there currently a demand for such a thing? A curated/reviewed/whatever Quicklisp dist? If yes, how much monetary support is it able to generate in order for someone to be able to regularly devote time to it?
18:31:54
phoe
It'll likely depend on who is doing the maintainership of that dist; it'll need to be a trusted enough someone, so their own name/nickname is a quality brand of sorts.
18:32:15
phoe
oni-on-ion: of course it's not, no one has the time to look at all the Lisp code inside it
18:33:40
phoe
dlowe: quicklisp itself isn't what I'm talking about here; quicklisp itself doesn't do anything with curating code
18:33:41
sjl
dlowe: is there a way to subscribe? I think I donated to quicklisp at some point but if there's an easy way to subscribe I should just do that.
18:34:28
phoe
the thing we describe here is on a level above that - before it's distributed, there's a step of actually understanding wtf the code is doing and how it's structured and whether it breaks something or not, and so on, and so on
18:34:44
sjl
Oh there's a recurring option on https://www.quicklisp.org/donations.html now. Perfect.
18:35:13
phoe
so donating to quicklisp isn't equivalent to donating to such a project, unless quicklisp itself decides to tip in - but that would be quicklisp's decision to make if such a thing ever happens
18:36:25
phoe
do we conduct some sorta survey then? if yes, what sort of questions do we put in there and who would we appoint as the to-be-curators?
18:37:31
oni-on-ion
as it could/should be automated at some point, type inference (if that is the right terms) would help a lot
18:38:11
phoe
and does the person in question agree, and have the means and time and will to actually devote a part of their time to spend on working on such a reviewed dist, bla bla bla
18:40:10
PuercoPop
phoe: more than curation, better tools for 'independent coordination' may help the community the most. Having an aggregate of all the open issues/PRs for the repositories in Quicklisp? (Maybe gamified with Karma but I don't like its effect of people) It would be easier to figure out how to help or help reviewing other Prs
18:43:03
_death
if I depend on a library/implementation, I review the changes to it already, at least skimming each new commit.. but then this wasn't the case in any company I worked for..
18:44:30
oni-on-ion
also there is responsibility if it is a human person, "oh sorry guys i must have overlooked that...
18:49:00
_death
every now and then when I decide to update things, I have a git-fetch-all command that fetches commits for all third-party repos, and I review and merge the commits (or rebase, if I maintain a patch queue).. it can take an hour or so
19:11:19
PuercoPop
phoe: covering GitHub and Gitlab should cover most of them. 80% is more than enough
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.