freenode/#lisp - IRC Chatlog
Search
13:34:19
katco
ha! i was also looking at keras because it was suggested that it was good for learning ML
13:59:14
phoe
random news: the CCL binaries with bootstrapped package-local nicknames are now available at CCL's github releases page
15:17:04
saravia
hello, nice to meet you, but, how to install cl-utilities?, please help me and sorry for my bad english
15:18:03
jackdaniel
when you have quicklisp in place, just type in repl (ql:quickload 'cl-utilities)
15:21:57
beach
You could do that, but you need to install Quicklisp first, and you need to load it into your process before you can type the form that jackdaniel showed you.
15:22:43
beach
saravia: But if you are going to work with Common Lisp, we highly recommend you use the Common Lisp system through SLIME.
15:26:13
beach
Your window manager doesn't matter. SLIME is a module for Emacs. It will provide a much better development environment than you can get by using only the terminal.
15:30:42
saravia
ow i see what the RELP is open inside sblc next to run (ql:add-to-init-file) command, no?
15:59:08
PuercoPope
saravia: It is a good idea to run SLIME/SLY with StumpWM. It makes it easier to configure it on the fly as well as debugging any issue you may encounter
16:44:24
mfiano
Fair enough. Since this is such a low level library that is depended on by quite a few pieces of software, and I discovered a bug that breaks the REPL, I guess I'll just be more careful about the dependencies I use.
16:45:09
mfiano
phoe: Where do you see an author here? https://gist.github.com/mfiano/70cf49cd216e8fa170cfd64f8595c5ac
16:46:50
mfiano
I don't know how to fix it. Apparently there is a KLUDGE that is to fix SLIME, but breaks Sly. It explicitly redefines an unexported function in SBCL
16:54:17
scymtym
attila has been responsive in the past when contacted via email. http://dwim.hu has the email address
16:54:32
phoe
and it seems like https://bugs.launchpad.net/sbcl/+bug/501075 is the original bug and this is an ugly hack that attempts to fix it
16:58:33
mfiano
Well my attempts to contact attila in the past regarding alexandria have went unsuccessful, so I might just have to rework my stack to rid myself of this mess
17:01:22
phoe
I've commented on https://bugs.launchpad.net/sbcl/+bug/501075 with all the information I have right now.
17:03:29
phoe
It's not like this code shouldn't be on quicklisp, it's more like ugly hacks like these spread very quickly and can go unnoticed
17:09:20
mfiano
Actually my utility library depends on arrow-macros, and that in turn is used by all of my software, some of which is used by lots of things such as pngload/opticl/mezanno
17:11:40
mfiano
Actually my pngload changes aren't in the latest dist yet actually, so that might not be true just yet.
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.