phoe changed the topic of #commonlisp to: Common Lisp, the #1=(programmable . #1#) programming language | Wiki: <https://www.cliki.net> | IRC Logs: <https://irclog.tymoon.eu/libera/%23commonlisp> | Cookbook: <https://lispcookbook.github.io/cl-cookbook> | Pastebin: <https://plaster.tymoon.eu/>
random-nick has quit [Ping timeout: 256 seconds]
attila_lendvai has quit [Ping timeout: 240 seconds]
jeosol has joined #commonlisp
occ has joined #commonlisp
<AeroNotix> beach: has there been any work done on closos?
kevingal_ has quit [Read error: Connection reset by peer]
<moon-child> AeroNotix: current work has focused on SICL; expect nothing to happen until that is bootstrapped
<AeroNotix> ok
<AeroNotix> assuming SICL will be the CL on which closos is implemented?
waleee has quit [Ping timeout: 250 seconds]
<moon-child> yes
waleee has joined #commonlisp
mfiano has quit [Quit: WeeChat 3.4]
cjb has quit [Quit: rcirc on GNU Emacs 29.0.50]
mfiano has joined #commonlisp
cjb has joined #commonlisp
Brucio-61 has quit [Ping timeout: 240 seconds]
scymtym has quit [Ping timeout: 245 seconds]
perrierjouet has quit [Quit: WeeChat 3.4]
triffid has joined #commonlisp
m5zs7k has quit [Ping timeout: 256 seconds]
waleee has quit [Ping timeout: 260 seconds]
morganw has quit [Remote host closed the connection]
sloanr has joined #commonlisp
OlCe has quit [Ping timeout: 256 seconds]
ec has quit [Remote host closed the connection]
Bike has quit [Quit: Lost terminal]
Bike has joined #commonlisp
occ has quit [Ping timeout: 256 seconds]
occ has joined #commonlisp
scymtym has joined #commonlisp
patrice has quit [Quit: Leaving]
cjb has quit [Quit: rcirc on GNU Emacs 29.0.50]
s-liao has joined #commonlisp
Catie has quit [Quit: going home]
lisp123 has joined #commonlisp
logand`` has joined #commonlisp
logand` has quit [Ping timeout: 240 seconds]
masinter has quit [Ping timeout: 256 seconds]
lisp123 has quit [Ping timeout: 256 seconds]
cjb has joined #commonlisp
neominimum has quit [Ping timeout: 256 seconds]
alanz has quit [Ping timeout: 250 seconds]
neominimum has joined #commonlisp
alanz has joined #commonlisp
antonv has joined #commonlisp
<antonv> is it possible to programmatically find out whether asdf:test-op is defined for a given ASDF system?
razetime has joined #commonlisp
hhdave has quit [Ping timeout: 240 seconds]
Noisytoot has quit [Ping timeout: 250 seconds]
hhdave has joined #commonlisp
masinter has joined #commonlisp
Noisytoot has joined #commonlisp
tyson2 has joined #commonlisp
aartaka has quit [Ping timeout: 256 seconds]
aartaka has joined #commonlisp
akoana has joined #commonlisp
occ has quit [Ping timeout: 256 seconds]
occ has joined #commonlisp
occ has quit [Ping timeout: 256 seconds]
antonv has quit [Ping timeout: 256 seconds]
Guest74 has joined #commonlisp
m5zs7k has joined #commonlisp
NotThatRPG has quit [Quit: Textual IRC Client: www.textualapp.com]
<etimmons> minion: memo for antonv: Probably (compute-applicable-methods #'asdf:perform (list (asdf:make-operation 'asdf:test-op) (asdf:find-system "foo")))
<minion> Remembered. I'll tell antonv when he/she/it next speaks.
terrorjack has quit [Quit: The Lounge - https://thelounge.chat]
terrorjack has joined #commonlisp
ecraven has quit [Ping timeout: 240 seconds]
ecraven has joined #commonlisp
alvaro121 has joined #commonlisp
alvaro121_ has quit [Ping timeout: 240 seconds]
lisp123 has joined #commonlisp
<beach> Good morning everyone!
lisp123 has quit [Ping timeout: 240 seconds]
AeroNotix has quit [Quit: WeeChat 3.4]
<beach> AeroNotix: CLOSOS requires (among other things) first-class global environments, so SICL is currently the only alternative for its Common Lisp implementation.
cjb has quit [Quit: rcirc on GNU Emacs 29.0.50]
<masinter> ls
<moon-child> pwd
unyu has quit [Quit: WeeChat 3.4]
jealousmonk has quit [Remote host closed the connection]
unyu has joined #commonlisp
s-liao has quit [Ping timeout: 256 seconds]
akoana has quit [Quit: leaving]
mfiano has quit [Quit: WeeChat 3.4]
mfiano has joined #commonlisp
[w] has quit [Quit: nyaa~]
lisp123 has joined #commonlisp
semz_ has joined #commonlisp
lisp123 has quit [Ping timeout: 240 seconds]
semz has quit [Ping timeout: 256 seconds]
Bike has quit [Quit: Connection closed]
unyu has quit [Quit: brb]
s-liao has joined #commonlisp
occ has joined #commonlisp
wacki has joined #commonlisp
More_flat has joined #commonlisp
More_flat has quit [Quit: Leaving]
tyson2 has quit [Remote host closed the connection]
alvaro121_ has joined #commonlisp
alvaro121 has quit [Ping timeout: 256 seconds]
dec0d3r has quit [Quit: Leaving]
aartaka has quit [Ping timeout: 250 seconds]
mon_aaraj has quit [Ping timeout: 256 seconds]
mon_aaraj has joined #commonlisp
aartaka has joined #commonlisp
wyrd has quit [Remote host closed the connection]
artchad has joined #commonlisp
anticomputer_ has joined #commonlisp
sloanr has quit [Ping timeout: 260 seconds]
anticomputer has quit [Ping timeout: 276 seconds]
mon_aaraj has quit [Ping timeout: 256 seconds]
cosimone has joined #commonlisp
wyrd has joined #commonlisp
Oddity has joined #commonlisp
Jing has joined #commonlisp
Cymew has joined #commonlisp
lisp123 has joined #commonlisp
mon_aaraj has joined #commonlisp
lisp123 has quit [Ping timeout: 252 seconds]
masinter has quit [Ping timeout: 256 seconds]
pillton has joined #commonlisp
artchad has quit [Read error: Connection reset by peer]
Krystof has quit [Ping timeout: 256 seconds]
mon_aaraj has quit [Ping timeout: 252 seconds]
mon_aaraj has joined #commonlisp
karlosz has joined #commonlisp
cosimone has quit [Remote host closed the connection]
lottaquestions_ has quit [Remote host closed the connection]
cosimone has joined #commonlisp
lottaquestions_ has joined #commonlisp
karlosz has quit [Client Quit]
gaqwas has joined #commonlisp
szkl has quit [Quit: Connection closed for inactivity]
shka has joined #commonlisp
<qhong> is there a lock free queue?
<moon-child> hmm, I don't know if there is one for cl, but https://liblfds.org/ could make a port
s-liao has quit [Quit: Client closed]
<qhong> idk if ffi overhead will be smaller than just use a lock
<moon-child> hence 'port'
<moon-child> I didn't mean to suggest using ffi
anticomputer_ has quit [Remote host closed the connection]
anticomputer has joined #commonlisp
Guest74 has quit [Quit: Ping timeout (120 seconds)]
aeth has quit [Ping timeout: 240 seconds]
Jing has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<flip214> lock-free means using atomic operations and retries, which will affect the CPU-buses nearly the same as using locks, so there might not be that much advantage
<flip214> https://lwn.net/Articles/590243/ might be a good idea for multiple CPUs in multiple sockets, ie. when the communication overhead goes up
aeth has joined #commonlisp
pve has joined #commonlisp
amb007 has quit [Ping timeout: 240 seconds]
amb007 has joined #commonlisp
lisp123 has joined #commonlisp
MajorBiscuit has joined #commonlisp
<qhong> flip214: interesting, this looks promising, probably good to make a user-space mutex library
<qhong> flip214: dedicated lock free data structure are still useful because they can avoid contention itself in many cases (different processor work on different part of the data structure). Now I think about it, ppl usually call them lock free, but one can probably do those dedicated data structures using just locks
lisp123 has quit [Ping timeout: 260 seconds]
<qhong> but anyway, I just want to grab some existing working library and don't feel like writing one myself
perrierjouet has joined #commonlisp
gaqwas has quit [Ping timeout: 256 seconds]
mixfix41 has quit [Ping timeout: 256 seconds]
<flip214> qhong: look at LPARALLEL or, if sbcl-specific is okay, sb-thread has queues as well
<bollu> what's the common lisp equivalent of `set(xs)` in python?
<jackdaniel> why do you assume that people know what is set(xs) in python?
<bollu> jackdaniel fair point. it builds a set of elements from the sequence `xs`. In this case, let's suppose `xs` is a list for simplicity.
<jackdaniel> list may be treated as a set, there are some built-in operators in common lisp that work on lists as if they were sets (like union or intersection)
<bollu> jackdaniel I see. I wanted to remove duplicates
<beach> clhs remove-duplicates
<jackdaniel> (defun set (sequence) (remove-duplicates sequence))
<phoe> ;; (shadow 'set)
<jackdaniel> right
<jackdaniel> or: (union sequence sequence)
rain3 has joined #commonlisp
<moon-child> a 'set' in python is assumed to have linear lookup time, which a list does not
aartaka has quit [Ping timeout: 256 seconds]
<moon-child> moreover, semantically, a list with duplicate items functions as a perfectly good set
<qhong> flip214: ha, the package is :sb-concurrency. Thanks! I didn’t expect to find them as sbcl built-ins. The algorithm is a bit old (2004) but should be better than nothing
<jdz> moon-child: Did you mean "constant", not "linear"?
<moon-child> err, yeah
<moon-child> (well, might be log idk)
<flip214> moon-child: then use (ale:alist-to-hash-table (mapcar #'cons seq seq))
<flip214> sorry, alexandria:alist-to-hash-table.... <tab> doesn't autocomplete here ;/
<bollu> I imagine remove-duplicates in O(n^2)?
<jdz> bollu: How big are your "sets"?
<moon-child> flip214: I would rather (mapcar #'cons seq '#1=(t . #1#))
<flip214> bollu: no, not necessarily. an implementation can use a hash-table for improved lookup times.
<beach> bollu: It cold be O(n) if the test is one that fits a hash table.
<bollu> jdz I'm creating set to uniqify a large corpus to create the vocabulary
<bollu> so n is quite large :)
<jackdaniel> if the implementation uses a hash table then it is O(n)
<bollu> jackdaniel right.
<moon-child> jackdaniel: beach just said that :)
<jackdaniel> I'm a slow sleep-deprived typer
<jackdaniel> yes he did
* moon-child also sleep-deprived, should probably go to sleep now buuuuut
aartaka has joined #commonlisp
<flip214> bollu: but if you don't read your data into a list but a hash-table directly, you might still save some CPU
<bollu> oh, right, I'm in the haskell mindset where I imagine that there's one implementation that needs to use the lowest common denominator available, which is to say, equality. But I imagine in the case of CL, the implementation can specialize in the case where the list is hashable?
<jackdaniel> do you mean "where the set is represented as a hashtable"?
<bollu> yes, that's what I meant
ante_ has joined #commonlisp
ogamita has joined #commonlisp
occ has quit [Read error: Connection reset by peer]
semz_ has quit [Ping timeout: 250 seconds]
kathe has joined #commonlisp
azimut has quit [Remote host closed the connection]
azimut has joined #commonlisp
semz has joined #commonlisp
<kathe> beach: is your license for second-climacs similar to bsd-like licenses?
<kathe> beach: while it seems familiar, there's something regarding "copyrights" that seems different.
s-liao has joined #commonlisp
OlCe has joined #commonlisp
notzmv has quit [Ping timeout: 240 seconds]
<beach> I assume so, since it is in a file named LICENSE-BSD.
<kathe> beach: i'm taking this off-channel. writing you a direct private email.
<kathe> beach: hope you won't get pissed off.
<kathe> beach: i'm definitely impressed with "sicl" as well as "second-climacs".
<beach> Thanks.
notzmv has joined #commonlisp
foxfromabyss has joined #commonlisp
<foxfromabyss> How do I inspect a system to know what the package name is? I feel like the package i am trying to import has a different name than the system (and no alias to the system name)
<foxfromabyss> Specifically this package https://github.com/mdbergmann/cl-gserver
<foxfromabyss> *this system
<beach> foxfromabyss: There can be several packages in a system.
<beach> Or, rather, a system, when loaded, can create several packages, and their names are unrelated to the system.
<beach> You just have to inspect the code and look for DEFPACKAGE forms, hoping the packages are defined that way.
<phoe> and for DEFINE-PACKAGE
<phoe> although it seems only the former is used here
<beach> and make-package in that case.
<beach> clhs make-package
<foxfromabyss> I see, thanks a lot :)
<foxfromabyss> first time seeing system name != package name
ante_ has quit [Quit: Konversation terminated!]
ante_ has joined #commonlisp
ante_ has quit [Client Quit]
<phoe> you'll see that much more often as you dig into Lisp code
<phoe> in some cases (very simple systems, package-inferred systems) package names are string-equal to system names
Cymew has quit [Ping timeout: 256 seconds]
<phoe> in others (some one-package-per-file systems, some more complex systems) you will get multiple packages per system
<phoe> (I have not seen many situations where you have multiple systems operating on a single package though)
<foxfromabyss> interesting.. that makes sense, thanks!
Guest4441 has joined #commonlisp
OlCe has quit [Ping timeout: 240 seconds]
lisp123 has joined #commonlisp
<beach> phoe: That would be the typical library situation. The library defines a package and client code uses symbols from that package.
<phoe> beach: the client code usually defines its own packages in addition though
<beach> Sure.
<moon-child> depends on how you qualify 'operating on'
<phoe> I thought more like a situation where the total number of defined packages is smaller than the total number of defined systems
pillton has quit [Remote host closed the connection]
<beach> Ah, that's different. Sure.
<phoe> and usually this is because operating inside a package that you haven't defined yourself violates modularity
lisp123 has quit [Ping timeout: 256 seconds]
<phoe> like, I could have implemented all of https://github.com/phoe/quicklisp-quackload/blob/master/quicklisp-quackload.lisp inside package QUICKLISP
<phoe> but that would be very bad style
<phoe> instead I do all the work in my own package and only hack a single symbol into package QUICKLISP - which still is bad style, but much less of a danger when it comes to clobbering some existing definitions
treflip has joined #commonlisp
<phoe> if I operated in the same package, I would need to worry that there is no class named QUICKLISP:QUACK-STREAM and no function named QUICKLISP:WRITE-QUACK - probably very unlikely in this concrete case, but hey, it's possbile in the general case
<phoe> and this danger only grows and grows the more stuff you define
<phoe> but yeah, Common Lisp makes it possible to easily patch other people's code, and you'd better know what you're doing if you decide to do that
taiju has quit [Ping timeout: 250 seconds]
Lord_of_Life has quit [Ping timeout: 250 seconds]
OlCe` has joined #commonlisp
Lord_of_Life has joined #commonlisp
OlCe` has quit [Remote host closed the connection]
OlCe has joined #commonlisp
amb007 has quit [Ping timeout: 252 seconds]
amb007 has joined #commonlisp
Brucio-61 has joined #commonlisp
artchad has joined #commonlisp
rain3 has quit [Ping timeout: 240 seconds]
rain3 has joined #commonlisp
nature has joined #commonlisp
Krystof has joined #commonlisp
kathe has quit [Quit: Leaving]
unyu has joined #commonlisp
unyu has quit [Client Quit]
sheb_ has quit [Quit: Leaving]
Jing has joined #commonlisp
attila_lendvai has joined #commonlisp
random-nick has joined #commonlisp
kathe has joined #commonlisp
<foxfromabyss> does `list` "snapshot"(copy?) current values of the variables it encapsulates, instead of just containing a reference?
<phoe> LIST is like any other function
<foxfromabyss> i.e. `(let ((x 5) (y (list x) (print x) (setf x 6) (print (first y))` would output `5` and then `5` again?
<foxfromabyss> what do you mean by "like any other function"? :)
<phoe> when a function is called, its arguments are evaluated
<phoe> then the function is called with these values
<foxfromabyss> i am mostly referring to "copy value" vs "copy reference"
<foxfromabyss> i see
<phoe> it doesn't matter if it's LIST or not
<phoe> oh, that thing
<phoe> beach calls this "uniform reference semantics"
<foxfromabyss> yeye
<phoe> Lisp is call-by-value everywhere, except the values that are copied around are references
<phoe> so there is no clear mapping to e.g. C++ semantics
<phoe> Wikipedia calls it "call by sharing"
<phoe> and it also notes that the term is not in wide use and is complicated
<foxfromabyss> guessed as much :P
<foxfromabyss> i see.
<foxfromabyss> does this mean that there's no clean way to backpropagate a change in a variable to the change in the list somewhere?
<phoe> you cannot mutate a lexical variable from outside the scope it is defined in
<phoe> ;; the only exception is a closure
<phoe> this also means that assignment operators like SETF need to be macros
<phoe> rather than functions
<foxfromabyss> gotcha :)
<foxfromabyss> still not 100% sure, what should be a macro and what a function tbh
<phoe> everything should be a function
<phoe> with the exception of things that cannot or should not be a function
<foxfromabyss> a clever take!
<phoe> where "cannot" means because they cannot implement the necessary semantics otherwise
<phoe> and where "should not" means because the result would be syntactically ugly or complex
igemnace has quit [Ping timeout: 256 seconds]
<foxfromabyss> gotcha gotcha :) thanks a lot!
<beach> It is amazing to me how languages with exceedingly complicated semantics have been allowed to brainwash many generations of developers. Lisp semantics was simple from the start and still is.
<moon-child> phoe: I don't think (with-open-file '(...) (lambda (fp) ...)) is ugly per se, when compared with (with-open-file (fp ...) ...)
<moon-child> however it is still a meaningful abstraction, and notably it is a syntactic one
<phoe> moon-child: what is '(...) ?
taiju has joined #commonlisp
taiju has quit [Remote host closed the connection]
<moon-child> e.g. "something.txt" :direction :input
<phoe> oh, so the argument list
<phoe> the main issue is that it needs to be evaluated and consed
<phoe> there's a slightly better approach for WITH macros
<moon-child> not if it's a literal
<moon-child> which it was there--hence the quote
<phoe> there's a slightly better approach for WITH macros - (call-with-open-file thunk #p"something.txt" :direction :output ...)
OlCe has quit [Ping timeout: 256 seconds]
aartaka has quit [Ping timeout: 256 seconds]
<phoe> this way (defun call-with-open-file (thunk pathname &rest args &key direction ...) ...) can use &key
<moon-child> ah sure
<phoe> and many WITH macros are actually implemented as a thin layer over a matching CALL-WITH function where the macro body goes into a lambda body
<moon-child> (though--if you're just gonna apply OPEN to the result, you don't actually wanna parse the key args. This came up recently)
<phoe> yes, you can just (apply #'open pathname args) :D
<phoe> hence my &rest args up there
<phoe> the &key direction ... is there for slime syntax hints and such
lisp123 has joined #commonlisp
aartaka has joined #commonlisp
igemnace has joined #commonlisp
silasfox has joined #commonlisp
mixfix41 has joined #commonlisp
lisp123 has quit [Ping timeout: 250 seconds]
tyson2 has joined #commonlisp
s-liao has quit [Ping timeout: 256 seconds]
unyu has joined #commonlisp
Bike has joined #commonlisp
OlCe has joined #commonlisp
silasfox has quit [Quit: WeeChat 3.4]
rain3 has quit [Ping timeout: 240 seconds]
Cymew has joined #commonlisp
kathe has quit [Quit: Leaving]
silasfox has joined #commonlisp
taiju has joined #commonlisp
occ has joined #commonlisp
rain3 has joined #commonlisp
OlCe has quit [Ping timeout: 256 seconds]
pranavats has left #commonlisp [Error from remote client]
s-liao has joined #commonlisp
pranavats has joined #commonlisp
foxfromabyss has quit [Ping timeout: 256 seconds]
OlCe has joined #commonlisp
OlCe has quit [Ping timeout: 250 seconds]
lisp123 has joined #commonlisp
<lagash> beach: what "mainstream" language would you say has the ugliest semantics?
<beach> lagash: There are many recent languages I haven't studied, so I don't know about those, but C++ definitely comes to mind.
lisp123 has quit [Ping timeout: 240 seconds]
s-liao has quit [Quit: Client closed]
<lagash> I was going to guess C++, yeah *shudders*
<beach> They kind of didn't have a choice though.
<beach> Once you decide that you don't want automatic memory management, pretty much all the other semantic decisions follow.
tyson2 has quit [Remote host closed the connection]
mon_aaraj has quit [Ping timeout: 256 seconds]
attila_lendvai has quit [Ping timeout: 256 seconds]
Rue has quit [Quit: WeeChat 3.4]
Guest74 has joined #commonlisp
kathe has joined #commonlisp
santiagopim has quit [Remote host closed the connection]
silasfox has quit [Ping timeout: 250 seconds]
silasfox has joined #commonlisp
lisp123 has joined #commonlisp
jealousmonk has joined #commonlisp
wyrd has quit [Remote host closed the connection]
<Guest74> If I'm waiting for events from the kernel, what function do I use to detect if there's any bytes waiting?  LISTEN seems to imply it's for character streams.
OlCe has joined #commonlisp
<Xach> Guest74: there is not a standard function in CL for that.
<Bike> if you're "waiting on events from the kernel" you're presumably using some library, right? it probably has polling systems
<Guest74> hmm, well, that's a bummer.
<Xach> I think there are a handful of libraries that may offer some compatibility layer for doing that.
<Xach> When I needed it (a long time ago) I wrote some sb-alien for epoll functions, it was a very small amount of code.
<Guest74> bike: no, just using cl.
<Xach> If I were doing it today I'd spend some time looking for a library.
<Bike> CL doesn't have a concept of kernels or events. what are you doing?
<Guest74> I heard some talk about epoll, select that I didn't pay attention to.  Is there something that people have landed on?  I know some people here have worked on eventing systems.
<Guest74> bike: getting events from the linux kernel.
wyrd has joined #commonlisp
<Guest74> i.e. reading from /dev/input/eventN
<Xach> I remember liking the description of https://github.com/markcox80/basic-binary-ipc - I think I'd start there if starting today. There are other options I'm sure.
<Bike> through a file. okay.
OlCe has quit [Ping timeout: 250 seconds]
Cymew has quit [Ping timeout: 240 seconds]
<Guest74> I figure go with the basics and see if there's any trouble before being forced into some ffi ugliness.
<Xach> There is no built-in way to do it. Implementations may or may not provide it as an extension. They are doing the ffi ugliness so you don't have to.
lisp123 has quit [Remote host closed the connection]
<Guest74> basic-binary-ipc doesn't seem to work on /dev
<Guest74> xach: I'd rather use what an implementation has implemented than use an outside foreign library.
AeroNotix has joined #commonlisp
yewscion has joined #commonlisp
<AeroNotix> stupid "benchmark" but proves the theory
<AeroNotix> ffi bindings to io_uring for CL
<AeroNotix>
<kathe> beach: why did you choose bsd-license for "sicl"?
<kathe> beach: i've got nothing against it. just curious.
<phoe> AeroNotix: nice
<AeroNotix> next is to make it all nice n lispy
foxfromabyss has joined #commonlisp
<beach> kathe: I did not choose a GPL derivative because it is not well adapted to language processors. The choice between BSD, MIT and similar ones was a tossup.
<kathe> beach: got it. thanks.
waleee has joined #commonlisp
<White_Flame> also consider that while gcc is GPL, the runtime library portion of it had to have an exception for it. That situation gets even weirder in image-based languages
<beach> Yeah.
<AeroNotix> everything should just be public domain
<beach> And, as much as I am saddened by it, many people don't like GPL derivatives, and that includes Lispers. I do plan to use GPL for applications like Clovetree (Gsharp v2).
aartaka has quit [Ping timeout: 256 seconds]
<White_Flame> lots of people are looking for "commercial use verboten" licenses nowadays, and that's very underserved
<beach> AeroNotix: That's version 1, yes. But version 2 is planned, but stalled because I am very busy.
aartaka has joined #commonlisp
<AeroNotix> yeah I get that that is version 1
<beach> White_Flame: I have nothing against commercial use of my stuff. I would mind very much if my stuff were incorporated in some non-free larger system.
<beach> But again, it gets very complicated with language processors, and, as you pointed out, even more so with image--based languages.
<White_Flame> then you should probably use AGPL as everything turns into "services" where backend non-free use would not violate the GPL
<White_Flame> (for stuff like gsharp)
<beach> I'll consider that when it becomes urgent.
<beach> AeroNotix: Since I wrote Gsharp, the technology for displaying music material has vastly improved and I no longer need all the font stuff I had to create at the time. Plus, I made a few design mistakes that I want to fix.
<Guest74> We're currently seeing a lot of problems with large corporations with lots of revenue using free software developers as their unpaid workers.  I don't see the point in supporting people who don't contribute to the community.l
<beach> AeroNotix: The other thing is that display resolution has improved a lot, making some of the anti-aliasing compromises I did no longer required.
<phoe> no need to anti-alias anymore because the screen resolution got so good, eh
<beach> Pretty much, yes.
<White_Flame> please no :(
<beach> I will do *some*, but not all the tricks I had to play with Gsharp.
<White_Flame> that'd be a per-display tuning if you know it's high dpi
<beach> By the time I am done with Clovetree, all displays will be high resolution. :)
<White_Flame> all _new_ displays maybe
<White_Flame> but stilll, I'm on 27" 4k, and good AA is still important
<beach> All old ones will have broken, or become so energy inefficient that they should be replaced anyway.
frgo has joined #commonlisp
<beach> White_Flame: I still plan to do gray-scale anti-aliasing, but for Gsharp, I had to limit the possible staff sizes so that there would be an integer number of scan lines between two staff lines always.
<beach> Many such decisions are no longer required.
<White_Flame> eh, that would still be quite noticeable
<beach> Also, I was limited by X11 not having transparency, so I had to create lots of combined fonts rather than just drawing things on top of others.
<Guest74> If you do that then you run into the Word problem, where what you display is not what comes out printed.  Which would seem detrimental to music layout.
<beach> I could not draw a filled notehead above another filled notehead, because they would overlap and the result was incorrect.
<White_Flame> hmm, a C natural and D double-flat in the same chord? https://gsharp.common-lisp.dev/clusters.png
tyson2 has joined #commonlisp
kathe has quit [Quit: Leaving]
<White_Flame> does that just mean 2 fingers on 1 key? ;)
<beach> Guest74: That's not a bit problem with music, because it is possible to move things horizontally by half a pixel without it being noticed.
<White_Flame> yeah, it's the regularity of the staff lines that would be most noticeable if they were distributed unevenly across pixel rows
<White_Flame> the horizontal not as much
<beach> White_Flame: That screenshot just illustrates layout of alterations.
<White_Flame> I know, just a funny chord
<beach> Sure.
<White_Flame> oh and I guess the 2nd one has E sharp and F natural, too
<White_Flame> can't not point it out ;)
<beach> Thanks. :)
<beach> s/bit problem/big problem/
lisp123 has joined #commonlisp
<beach> So one restriction was that the space between two staff lines had to be an even number of pixels when the staff line thickness is an odd number of pixels (say 1), so that noteheads on a staff line and noteheads between staff lines looked the same. Stuff like that is no longer necessary because of automatic anti-aliasing, and the use of alpha channels.
<beach> But I agree that it might be good to have staff lines be an integer number of pixels thick and also aligned to the pixel grid.
<Guest74> are you planning on using a glyph atlas from the render extension?  Or some higher level abstraction?
<beach> I am using McCLIM, so we have backends that can use the render extension of X11.
<beach> But I believe we do our own rendering.
<beach> To squeeze as much material possible into a screen at the time, I had to have a font with only 6 pixels between two adjacent staff lines. That might be exaggerated today, and it introduced all those constraints on the fonts.
<White_Flame> re staff lines, if the thickness of the lines gets >2px, then you can probably just free place & antialias them
<beach> There is a new standard for music fonts with lots of information on how glyphs fit together, and there is a new free font that is very complete and that respects that standard.
<beach> White_Flame: Yeah, that sounds right.
<beach> But not less.
<beach> One thing I want to keep from Gsharp and that many existing score editors do wrong is to enforce the duration of bars. Some classical music does not respect this restriction in the notation, and it is horribly inconvenient during editing.
<beach> So Gsharp does not enforce any such duration.
<beach> It makes editing *much* more convenient.
<beach> Hmm, that came out wrong.
ec has joined #commonlisp
<beach> Existing score editors enforce, and that's a bad idea. Gsharp does not enforce and it makes editing much easier.
<Guest74> it's been a long time since I used one, but i remember some having problems with multiple time changes as well.
<beach> I can imagine.
lisp123 has quit [Remote host closed the connection]
<beach> Oh, and the reference I used for layout is by Ross. Now there is a much more complete book entitled "Behind bars".
<beach> So there are now lots and lots of algorithms and heuristics to implement. :)
scymtym has quit [Remote host closed the connection]
OlCe has joined #commonlisp
<beach> And the new name is "Clovetree", because it contains "Cl", and it fits with the tradition: Rosegarden, LilyPond.
waleee has quit [Quit: WeeChat 3.4]
razetime has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
waleee has joined #commonlisp
Brucio-61 has quit [Ping timeout: 256 seconds]
Rue has joined #commonlisp
masinter has joined #commonlisp
<cosimone> hello, i have a question: just how close is the hyperspec to the cl standard? i seem to recall having read somewhere that it was generated directly from the standard, but i could be mistaken
<beach> It was generated from the dpANS.
<beach> Which we have been told has only cosmetic differences with the standard.
<beach> But, the translation to HTML introduced mistakes.
<beach> Actually, maybe he got dispensation and could use the final standard?
<beach> I forget now. scymtym will know.
<beach> Shinmera: Forgot to tell you. We both plan to go to ELS, barring COVID-related problems of course.
<beach> cosimone: scymtym did a presentation for the online Lisp meeting about it recently. You should be able to find the video online.
scymtym has joined #commonlisp
z3t0 has quit [Read error: Connection reset by peer]
<Shinmera> beach: great!
<cosimone> beach: oh, that's good to know, i'll try looking for it
<phoe> Is it possible for an implementation to have only arrays that are actually adjustable?
<beach> Yes.
<cosimone> scymtym: thanks, downloading right now
<phoe> beach: thanks
<beach> Sure. The phrasing of the standard is a bit strange.
<beach> ... it is easy to (incorrectly) turn the implication arrow around.
ogamita has quit [Read error: Connection reset by peer]
nature has quit [Ping timeout: 256 seconds]
lisp123 has joined #commonlisp
unyu has quit [Ping timeout: 240 seconds]
unyu has joined #commonlisp
lisp123 has quit [Ping timeout: 256 seconds]
cage has joined #commonlisp
attila_lendvai has joined #commonlisp
sloanr has joined #commonlisp
Guest4441 has quit [Ping timeout: 256 seconds]
nature has joined #commonlisp
Jing has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Brucio-61 has joined #commonlisp
Guest74 has quit [Quit: Connection closed]
mon_aaraj has joined #commonlisp
alejandrozf has joined #commonlisp
ns12 has quit [Quit: bye]
ns12 has joined #commonlisp
Catie has joined #commonlisp
mon_aaraj has quit [Ping timeout: 240 seconds]
mon_aaraj has joined #commonlisp
mon_aaraj has quit [Ping timeout: 240 seconds]
amb007 has quit [Ping timeout: 260 seconds]
mon_aaraj has joined #commonlisp
MajorBiscuit has quit [Ping timeout: 256 seconds]
OlCe has quit [Ping timeout: 245 seconds]
* phoe gets bitten by (subseq '(1 2 3 . 4) 0 3) being illegal
rain3 has quit [Ping timeout: 250 seconds]
cosimone has quit [Remote host closed the connection]
<AeroNotix> straz miejska en route
Brucio-61 has quit [Quit: Testing]
* phoe runs
amb007 has joined #commonlisp
aeth has quit [Ping timeout: 252 seconds]
aartaka has quit [Ping timeout: 256 seconds]
aeth has joined #commonlisp
treflip has quit [Quit: good night]
aartaka has joined #commonlisp
Guest4434 has joined #commonlisp
Brucio-61 has joined #commonlisp
Oladon has joined #commonlisp
foxfromabyss has quit [Quit: Client closed]
lisp123 has joined #commonlisp
lisp123 has quit [Ping timeout: 256 seconds]
Brucio-61 has quit [Ping timeout: 240 seconds]
mon_aaraj has quit [Ping timeout: 256 seconds]
mon_aaraj has joined #commonlisp
cosimone has joined #commonlisp
IPmonger has joined #commonlisp
IPmonger has quit [Remote host closed the connection]
Guest4434 has quit [Ping timeout: 256 seconds]
Noisytoot has quit [Ping timeout: 256 seconds]
amb007 has quit [Ping timeout: 250 seconds]
amb007 has joined #commonlisp
Noisytoot has joined #commonlisp
kpoeck has joined #commonlisp
triffid has quit [Remote host closed the connection]
sjl has joined #commonlisp
shka has quit [Remote host closed the connection]
cage has quit [Quit: rcirc on GNU Emacs 27.1]
shka has joined #commonlisp
lisp123 has joined #commonlisp
mon_aaraj has quit [Ping timeout: 240 seconds]
mon_aaraj has joined #commonlisp
lisp123 has quit [Ping timeout: 260 seconds]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
attila_lendvai has quit [Ping timeout: 240 seconds]
wyrd has quit [Remote host closed the connection]
wyrd has joined #commonlisp
mon_aaraj has quit [Ping timeout: 250 seconds]
mon_aaraj has joined #commonlisp
Oladon has quit [Quit: Leaving.]
Oladon has joined #commonlisp
yewscion has quit [Ping timeout: 250 seconds]
gaqwas has joined #commonlisp
mon_aaraj has quit [Ping timeout: 256 seconds]
mon_aaraj has joined #commonlisp
scymtym has quit [Remote host closed the connection]
gaqwas has quit [Remote host closed the connection]
adlai has joined #commonlisp
wacki has quit [Quit: Leaving.]
mon_aaraj has quit [Ping timeout: 256 seconds]
mon_aaraj has joined #commonlisp
kpoeck has quit [Quit: Client closed]
Rue has quit [Ping timeout: 250 seconds]
artchad has quit [Read error: Connection reset by peer]
Rue has joined #commonlisp
alejandrozf has quit [Remote host closed the connection]
<jcowan> I didn't know there were Usenet flamewars over Chicken
<jcowan> oops ww
scymtym has joined #commonlisp
aartaka has quit [Ping timeout: 250 seconds]
logand`` has quit [Read error: Connection reset by peer]
Guest74 has joined #commonlisp
cosimone has quit [Quit: ERC (IRC client for Emacs 27.1)]
sjl has quit [Quit: WeeChat 2.2-dev]
mepy has joined #commonlisp
yewscion has joined #commonlisp
Oddity has quit [Ping timeout: 256 seconds]
lisp123 has joined #commonlisp
Oladon has quit [Quit: Leaving.]
lisp123 has quit [Ping timeout: 256 seconds]
<jcowan> Wurst is better, and Weisswurst is best.
OlCe has joined #commonlisp
waleee has quit [Ping timeout: 240 seconds]
nature has quit [Ping timeout: 256 seconds]
waleee has joined #commonlisp
pve has quit [Quit: leaving]
Oddity has joined #commonlisp
* moon-child wants to hear more about these usenet flamewars
waleee has quit [Ping timeout: 240 seconds]
shka has quit [Ping timeout: 260 seconds]
waleee has joined #commonlisp
occ has quit [Ping timeout: 250 seconds]
pranavats has left #commonlisp [Error from remote client]
hashfuncd0d has joined #commonlisp
hashfuncd0d has left #commonlisp [ERC (IRC client for Emacs 25.2.2)]
Oladon has joined #commonlisp
iamFIREcracker has joined #commonlisp
iamFIREc1 has quit [Ping timeout: 256 seconds]
ec has quit [Ping timeout: 276 seconds]
Oddity has quit [Ping timeout: 256 seconds]
hashfuncd0d has joined #commonlisp
hashfuncd0d has quit [Client Quit]
hashfuncd0d has joined #commonlisp
<hashfuncd0d> I'm trying to poke around and learn but evaluating the form `(sb-disassem::fun-code #'cons)` gives me the error "The function SB-DISASSEM::FUN-CODE is undefined."
<moon-child> try just (disassemble #'cons)?
<hashfuncd0d> moon-child: i need to use `sb-disassem::fun-code` in this situation
yewscion has quit [Ping timeout: 256 seconds]
<AeroNotix> hashfuncd0d: you can't because it doesn't exist
<AeroNotix> there is sb-disassem::fun-code-header
<AeroNotix> hashfuncd0d: why do you "need" to use a non-existent function?
<hashfuncd0d> AeroNotix: oh my word... emacs was suggesting the function `sb-disassem::fun-code` because i typed it in earler. `sb-disassem::fun-code-header` works, but i'm not sure if it will do
<AeroNotix> hashfuncd0d: I still don't get why disassemble isn't suitable
<AeroNotix> hashfuncd0d: this is sort of the entire reason you shouldn't rely on a system's internal symbols
<AeroNotix> that code is now on the internet _and wrong_
<AeroNotix> the worst kind of thing you can do
<AeroNotix> go on the internet and be wrong
<AeroNotix> tsk tsk