libera/commonlisp - IRC Chatlog
Search
16:29:31
hexology
beach: i have thought about doing some kind of lisp irc client. i have other projects going on so i figured i would wait for ircv3 to stabilize
16:32:56
hexology
a matrix client library might be a good idea too, but apparently it's a complicated and under-documented protocol, and you'd need to also writ bindings to their olm crypto library
16:34:47
Guest74
hexology: are you thinking of writing a completely new library? As far as I see v3 is just extensions building ontop of everything else and wouldn't prevent starting anything.
16:36:50
Guest74
procrastination is why I'm here! It's somehow easier to wait here hoping someone else will deal with it than reading through rfcs and fixing someone elses code.
16:36:53
loke[m]
However, I would like to build a layer in between so more than one protocol could be supported.
16:37:05
hexology
beach: learning the details of the irc protocol and making material contributions to an old established library is a big project
16:37:38
loke[m]
I think out of the protocols one could do that with, IRC is probably one of the easiest, given how simple the protocol is.
16:38:34
loke[m]
hexology: Not right now. But I'm trying to build the application in such a way that it will be possible to break it out into an abstraction layer.
16:38:49
hexology
you might want to look into https://shirakumo.github.io/maiden/ which i found on cliki
16:39:46
hexology
i don't like attempting to design "abstraction" without understanding what i'm abstracting over. but if i do end up getting my hands dirty w/ irc and matrix i would be happy to contribute whatever i learn
16:48:21
Guest74
welp, here's a question that just requires an opinion so maybe I can get some answers.
16:49:35
Guest74
Has to do with app/widget layouts. I'm currently have it so that you can specify different layouts at different sizes. which can ballon quite a bit.
16:51:56
Guest74
maybe you want some of the layouts to be resolution independent. So wondering if I should just scrap keeping layouts stored under resolutions? Though then I'm not sure how to handle css conversions of resolution dependent layouts.
17:18:36
opcode
If I write a binary search on a list, given that they're linked cons cells under the hood, will a binary search be O(n) instead of O(log n)?
17:20:19
Bike
opcode: it's certainly at least O(n) worst case since you might have to traverse to the end of the list.
17:21:06
opcode
That was my fear. But for a 1D list I can just coerce to a vector and get log n complexity, correct?
17:22:25
Guest74
fitzim: that's interesting. I wonder what the reasoning was behind writing another irc backend and not using cl-irc?
17:29:06
Guest74
welp, any thoughts on UI, ui definition, themes, theme compatability, wants/needs in a window/desktop manager?etc... before I go back to writing a UI/wm/task/desktop manager nobody will use?
17:29:56
pjb
opcode: if you do binary search on a list, you need O(nlogn) accesses to the nodes, but since you need O(n) to access a node, that's O(n²logn) !
17:30:52
pjb
opcode: the tree can be stored using cons cells, or using vector, it doesn't matter, as long as accessing a child is O(1).
17:33:54
pjb
note that to insert a node in a tree, it's better to use cons cells (or other independent node structures) than a (sorted) vector, since inserting a node in a tree is O(1) (+ O(nlogn) to find where it must be inserted), while inserting an element in a sorted vector is O(n) (+ O(nlogn) to find where to insert it).
17:39:05
anothersame
especially to share the code with others. But there is also clpm which might be good...
17:39:15
fitzsim
Guest74: it's small and has many dependencies on Mezzano, so it would probably have been more work to integrate cl-irc
17:42:20
Guest74
Only the gui client part uses mez stuff. The rest just duplicates most of the work from cl-irc, though seems less complete. I'm mainly wondering if they found other deficiencies in cl-irc that I haven't encountered yet.
17:42:46
random-nick
anothersame: there's ultralisp, which is an automatically updating dist for the quicklisp client https://ultralisp.org/
17:42:50
Guest74
and apparently you can connect to libera without tls on 6667 even though it's not mentionned anywhere on their site.
17:45:05
random-nick
anothersame: it's important to distinguish package manager and package repository, though
17:47:57
anothersame
ultralisp is a repo, and qlot is a utility which integrates with quicklisp to have project local dependencies (and allows to download from other places)
17:49:29
anothersame
etimmons: given that you had a "rely on existing libraries" approach, why didn't you make clpm integrate with qlot?
17:52:11
etimmons
It was a combination of bugs in qlot, disagreeing with some fundamental qlot choices, and my desired future directions.
17:53:39
etimmons
A major bug I remember is that qlot reached way too far into ASDF internals and broke on ASDF upgrades for me.
17:56:00
etimmons
I also really don't like the snapshot based approach to QL-based distributions. So the biggest future direction issue for me is that I really want to have some project index that respects and advertises ASDF system version numbers (and some other features), and easily makes all versions available for download
17:56:38
etimmons
qlot is so closely tied to Quicklisp (and uses the QL client under the hood) that I didn't think that was possible to do with qlot
18:08:56
lotuseater
and don't throw at each other package and system definitions, that are two different things
18:09:16
Guest74
I'd think version dependencies are hard in any package manager, regardless of language.
18:12:13
etimmons
johnjay: My personal suspicion is it's largely down to CL existing well before "modern" packaging approaches and the CL community being pretty small. QL works for most people, most of the time and that's great! But it also means there's not a lot of people clamoring for something new.
18:12:58
etimmons
There are some technical challenges as well, especially given how extensible ASDF is, but those are solvable.
18:15:26
etimmons
Guest74: Versioned dependencies are fairly easy (to specify at least). Where it gets complicated is if people keep breaking compatibility. The more that happens, the smaller and smaller the set of releases that satisfy all constraints becomes.
18:15:51
etimmons
So I think snaps are largely down to devs not caring about things like backward compatibility
18:16:32
semz
That seems to be significantly less of a problem in CL than in other languages. Maybe it's the stability of the language that causes devs to care about it more.
18:17:21
Guest74
well if anybody has any thoughts on the UI stuff I asked about, or thoughts on dividing up clx into a buffer protocol, wm stuff, and reducing it to just the x11 protocol, and maybe making it more asynchronous, I'll check the logs. (makes it easier to implement some extensions)
18:23:44
johnjay
i got an error but went into the lispbuilder folder for cocoahelper and typed make. now the error is gone. but no graphics when i start it lol.
18:32:45
lotuseater
and CCL was originally (1984-1987) Coral Common Lisp, then renamed MACL (Macintosh Allegro Common Lisp) and so on
18:47:58
lotuseater
iirc there was one episode where they used the adjective "coral" as a modern youth slang for "cool"
19:13:27
johnjay
this is probably a tedious question but what's the main difference between CCL and SBCL?
19:14:53
lotuseater
yes they differ in some things which are let open to the implementation by the ANSI standard
19:18:42
johnjay
yeah i was messing around iwth it but i couldn't tell if it was managing common lisp installs separately or if it was a package manager/selector
19:22:36
hexology
however it also supports "scripts", so you can distribute your application as a roswell script in addition to quicklisp or whatever else