marcrosoft has quit [Quit: Connection closed for inactivity]
lad has quit [Ping timeout: 256 seconds]
taiju has quit [Remote host closed the connection]
taiju has joined #commonlisp
CrashTestDummy2 has joined #commonlisp
CrashTestDummy has quit [Ping timeout: 256 seconds]
wilfred has joined #commonlisp
lad has joined #commonlisp
<char>
What is the expected behavior to call a function that has both &optional and &key without providing all optional but providing key?
<aeth>
you have to provide the optional first
<aeth>
ime with write-string/write-line
<char>
so basically: "don't do that"
<White_Flame>
SBCL even gives you a style warning when you define a function that way, but it's not illegal
<White_Flame>
just consider that the keywords are in the same &optional scope as your optionals, so yeah in-order fill-in
<White_Flame>
(the keyword list being one of the optional things, its contents obviously being non-positional)
<jcowan_>
†IMO use &optional *or* &key, not both. "Entweder transsubstantiation oder consubstantiation but in no case subsubstantiation." --my cousin James
<char>
thanks. I would want to, but I can't control what others do
<char>
s/would/wouldn't
<White_Flame>
just turn the optionals into more keywords
<char>
for sure
<pjb>
char: notably in CL there are 2 functions that have both optional and key arguments, and they're a known pitfall.
<pjb>
char: read-from-string
Oladon has quit [Quit: Leaving.]
<pjb>
write-string, write-line, parse-namestring and there's also a macro: with-output-to-string.
<pjb>
so make it 4 functions and 1 macro.
tyson2 has quit [Remote host closed the connection]
lad has quit [Ping timeout: 240 seconds]
prxq_ has joined #commonlisp
prxq has quit [Ping timeout: 256 seconds]
seanw has quit [Quit: leaving]
<beach>
Good morning everyone!
Oladon has joined #commonlisp
<kakuhen>
good evening
<kakuhen>
Does anyone know here if there has been an attempt to provide a common lisp interface for Audio Units or VST?
<kakuhen>
ooh this does look interesting to me; ty
selwyn has quit [Quit: Leaving]
taiju has quit [Ping timeout: 256 seconds]
char has quit [Ping timeout: 256 seconds]
seok has joined #commonlisp
CrashTestDummy3 has joined #commonlisp
taiju has joined #commonlisp
Lord_of_Life_ has joined #commonlisp
Lord_of_Life has quit [Ping timeout: 246 seconds]
CrashTestDummy2 has quit [Ping timeout: 250 seconds]
Lord_of_Life_ is now known as Lord_of_Life
gigamonkey has quit [Quit: ERC (IRC client for Emacs 27.2)]
<pjb>
kakuhen: AFAIK, not. Note that VST 3 API is a C++ API. This makes things more difficult.
gigamonkey has joined #commonlisp
<pjb>
kakuhen: also, VST is designed to make plug-ins, and it's difficult to make a plug-in in CL. You'd have to use ecl, and generate a library, and load libecl.so along.
<kakuhen>
yeah, I figured vst may be hard
<pjb>
kakuhen: clasp which integrates "natively" with C++ would be nice, but I think it lost the ability to generate libraries like ecl can.
<kakuhen>
maybe CoreAudio will be a bit simpler since it's mostly a C API
<pjb>
Indeed.
yp has joined #commonlisp
<kakuhen>
but I have a reference book on Core Audio and it's pretty complicated (for me at least)
<kakuhen>
a lot of basic data structures it uses, I dont know how you'd make the equivalents on Lisp
<kakuhen>
e.g. ring buffers
yp is now known as Guest7593
<pjb>
kakuhen: one solution would be to implement a VST module that would forward stuff on a socket, and have a CL process connected to do the job. of course, it would then be much less efficient. Perhaps going thru shared memory would be feasible.
<mfiano>
an array with a pointer or 2
<pjb>
kakuhen: I implemented a CoreMIDI interface.
frgo has quit [Read error: Connection reset by peer]
frgo_ has joined #commonlisp
sp41 has joined #commonlisp
char has joined #commonlisp
selwyn has quit [Read error: Connection reset by peer]
silasfox has quit [Ping timeout: 250 seconds]
tyson2 has quit [Remote host closed the connection]
silasfox has joined #commonlisp
Inline has quit [Quit: Leaving]
Inline has joined #commonlisp
bpanthi977 has quit [Remote host closed the connection]
selwyn has joined #commonlisp
treflip has quit [Remote host closed the connection]
silasfox has quit [Ping timeout: 272 seconds]
wheelsucker has joined #commonlisp
bpanthi977 has joined #commonlisp
silasfox has joined #commonlisp
makomo has joined #commonlisp
makomo has quit [Client Quit]
makomo has joined #commonlisp
<beach>
Here is an interesting project suggestion for someone who is not too busy: Write a "magit"-like pane for McCLIM. And presumably call it "McGIT".
<beach>
Such a pane will be a nice ingredient to have in an IDE. But it could also be used independently.
<beach>
I would think it could be attractive to non-Emacs users, for instance.
<shka>
hmm
<shka>
sounds like a good idea
<beach>
Thanks.
<shka>
you could visualize history easier then with just plaintext
<shka>
and make stuff clickable
<beach>
That too. Sort of like gitk does?
<char>
That would be valuble. magit is a killer feature
<beach>
Yes.
<beach>
Clickable, and also with context menus.
<beach>
Perfect for CLIM presentations.
<splittist>
Don't forget the fun of making people look for the Super key (:
<shka>
how one would hook in editor into that?
<beach>
This project could be done in fairly small increments, and it could be useful very soon. I mean, many people use only very basic GIT features anyway, so it would be useful to such people almost immediately.
<beach>
Editor integration might have to wait until the IDE is more developed.
<beach>
The project would include an (optional) application frame so that the entire thing could be run as an application.
prxq has joined #commonlisp
IPmonger has joined #commonlisp
derelict has joined #commonlisp
Guest63 has joined #commonlisp
IPmonger has quit [Remote host closed the connection]
IPmonger has joined #commonlisp
IPmonger has quit [Remote host closed the connection]
IPmonger has joined #commonlisp
IPmonger has quit [Client Quit]
IPmonger has joined #commonlisp
IPmonger has quit [Client Quit]
IPmonger has joined #commonlisp
IPmonger has quit [Client Quit]
IPmonger has joined #commonlisp
IPmonger has quit [Client Quit]
IPmonger has joined #commonlisp
IPmonger has quit [Remote host closed the connection]
varjag has joined #commonlisp
trocado has joined #commonlisp
duuqnd_ has quit [Remote host closed the connection]
duuqnd_ has joined #commonlisp
wheelsucker has quit [Ping timeout: 250 seconds]
waleee has quit [Ping timeout: 244 seconds]
waleee has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
stanislav has joined #commonlisp
stanislav has quit [Client Quit]
Guest63 is now known as Ashok
silasfox has quit [Ping timeout: 272 seconds]
pranavats has joined #commonlisp
Ashok is now known as gensym
gensym has left #commonlisp [#commonlisp]
<beach>
No takers on my suggested project?
<splittist>
On a summer Friday afternoon?
wheelsucker has joined #commonlisp
<beach>
Got to figure out what to do over the weekend, right?
<splittist>
clipping-regions and pixmaps
lad has joined #commonlisp
<beach>
Sure, you already have stuff to work on.
<beach>
But what about everyone else?
<splittist>
Lazy so-and-so's.
<beach>
Or they are trying desperately to debug their FFI-based project.
lisp123 has joined #commonlisp
* shka
wanted to implement the some of the missing functions for his ordered containers
<jmercouris>
anyone know of another way to interface with JS? any FFI layer out there?
<jmercouris>
and yes, I know, JS sucks, it is the worst, yes
<jmercouris>
I just want a way to interface to it from CL
Lycurgus has joined #commonlisp
<pjb>
jmercouris: you could probably load swank, and start a swank server from the main or initialization routine.
IPmonger has joined #commonlisp
<jmercouris>
pjb: are you suggesting I reimplement swank in JS?
IPmonger has quit [Client Quit]
<pjb>
No.
<Bike>
i think cl jupyter has some js stuff, let me check
<jmercouris>
Are you suggesting I start a lisp image from inside the JS main thread and listen for output from lisp?
<jmercouris>
Like a pipe or something?
<pjb>
jmercouris: just add swank as dependency in the asd, and (swank:start-server :port <some-port>) in the run, before starting hunchentoot.
<jmercouris>
I think you misunderstand
<jmercouris>
I want a nodejs program callable from Lisp code
<pjb>
Oh. Then implementing swank on nodejs could be a nice way to do it.
<pjb>
Otherwise, you can easily send requests containing lisp sexps, and evaluate them.
<pjb>
It would then be trivial to write a RSRPL where you read as exp, send a request to your web app with it, read the response and print it. loop.
<lisp123>
defgeneric & defmethod - are they independent of package namespaces (i.e. if I do a defgeneric in package xyz and a defmethod on same name in package abc - it will work?)
<yitzi>
Bike: Just to confirm. common-lisp-jupyter doesn't do anything with Javascript. There are some display commands to send Javascript to the frontend, but it is completely opaque from CLJ's perpective. All JS is handled by whatever frontend you have, i.e. notebook or lab.
<Bike>
iiiii see
<yitzi>
I have a kind of literate programming tool like cweb that can call whatever Jupyter kernel you want, but I haven't used it in a while. No JS, no user input. Just using the kernels to execute code. Kind of an example from the other end of the spectrum.
<lisp123>
I joined comp.lang.lisp and tried to delete the spam posts - it says only a "content moderator" has access to that
CrashTestDummy2 has joined #commonlisp
<lisp123>
Does that mean there is someone who can delete these posts? There's only 1 per day looks like
srhm has quit [Ping timeout: 252 seconds]
CrashTestDummy3 has quit [Ping timeout: 256 seconds]
derelict has quit [Quit: WeeChat 3.2]
srhm has joined #commonlisp
<pjb>
lisp123: that's not how nntp works.
<pjb>
lisp123: posts can be cancelled by its originator, if he made prosivions to this effect (include a key that let him cancel the article). But once the nntp servers have spread the data, it cannot be deleted. Someone will have a copy.
<pjb>
lisp123: cancelling an article doesn't mean deleting it.
<lisp123>
pjb: thanks. does that mean there's nothing we can do about the spammers?
<pjb>
mostly, yes.
<lisp123>
thats a shame
cage has quit [Remote host closed the connection]
<pjb>
Now, since there's a lot less nntp traffic, only a few servers remain. The articles could be removed or filtered in a server.
<pjb>
This is why I suggested to install a private (and centralized) nntp server.
<pjb>
With some kind of authentication to allow posting.
<lisp123>
I remember you said this before - then I googled nntp but its well over my head
<pjb>
It's a sad situation, but technically nowadays, a single server can easily serve all the nntp users.
<phantomics>
I.e. someone could publish a list of messages to block and others would subscribe to that list in some way and filter out spam in that manner
<lisp123>
i guess people need to be approved onto the mailist?
[deleted] has joined #commonlisp
<phantomics>
If you didn't like one moderator's choices of what messages to block you could subscribe to a different mod's block feed
<phantomics>
There are other nttp servers mirroring the group, like eternal-september.org
<pjb>
lisp123: so, indeed, subscribing to some server and slurping the archives (you may contact the administrator for the initial rsync if you want to mirror old news).
<lisp123>
thanks!
<pjb>
Also, some newsgroups receive "binary" data. Big messages uuencoded (or nowadays base64-encoded), notably picture files. So a lot of storage may be required if you want to allow it.
<lisp123>
phantomics: has the enternal-september.org newsgroup added authentication / blocked spammer?
<lisp123>
pjb: presuming you can disable binary data?
<phantomics>
I think they'll kick you off for spamming, they have a user account system
<phantomics>
eternal-september and a lot of other servers don't host the binary groups because of the storage required
<pjb>
lisp123: sure, 1- you can disable those newsgroups, and 2- you can filter big uuencoded/base64 encoded messages
<pjb>
lisp123: when you own the server, you can do whatever you want.
<pjb>
The fundamental problem was that nntp server form a network and you don't own all the nodes, so if a server accepts a message from a user, it gets diffused automatically to your server.
taiju has quit [Read error: Connection reset by peer]
taiju has joined #commonlisp
<lisp123>
thanks for the link
<lisp123>
pjb: . that makes sense. but i guess if you start from scratch you don't have any nodes that could cause you problems. Which I assume is what you are saying
<lisp123>
phantomics: thanks
yitzi has quit [Quit: Leaving]
[deleted] has quit [Read error: Connection reset by peer]
livoreno has joined #commonlisp
aleamb has joined #commonlisp
derwolf has joined #commonlisp
derwolf has left #commonlisp [Leaving]
lisp123 has quit [Remote host closed the connection]
derwolf has joined #commonlisp
lisp123 has joined #commonlisp
char has joined #commonlisp
lisp123 has quit [Remote host closed the connection]
lisp123 has joined #commonlisp
tyson2 has joined #commonlisp
asdf-uiop has joined #commonlisp
Lycurgus has joined #commonlisp
kevingal has quit [Remote host closed the connection]
Lycurgus has quit [Quit: Exeunt]
lisp123 has quit [Remote host closed the connection]
lisp123 has joined #commonlisp
lisp123 has quit [Ping timeout: 244 seconds]
amb007 has quit [Ping timeout: 250 seconds]
<Josh_2>
Hi
amb007 has joined #commonlisp
<phantomics>
Hi Josh_2
<Josh_2>
I am having one almighty mind blank right now
<Josh_2>
:(
char has quit [Ping timeout: 268 seconds]
thelounge27573 has joined #commonlisp
kakuhen has joined #commonlisp
kakuhen has joined #commonlisp
kakuhen has quit [Changing host]
thelounge27573 has quit [Client Quit]
hendursaga has joined #commonlisp
<phantomics>
How so, working on something?
pve has quit [Quit: leaving]
ljsilver has joined #commonlisp
char has joined #commonlisp
IAmRasputin has quit [Ping timeout: 268 seconds]
ljsilver has quit [Client Quit]
klltkr_ has joined #commonlisp
klltkr has quit [Ping timeout: 244 seconds]
<Josh_2>
Not working on it very well
killsushi has joined #commonlisp
<Josh_2>
Actually maybe my first solution is the best
<Josh_2>
a nice list
trocado has joined #commonlisp
IAmRasputin has joined #commonlisp
lisp123 has joined #commonlisp
IAmRasputin has quit [Ping timeout: 265 seconds]
Josh_2 has quit [Quit: ERC (IRC client for Emacs 27.1)]
<phantomics>
What are you writing?
lisp123 has quit [Ping timeout: 272 seconds]
srhm has quit [Ping timeout: 244 seconds]
char has quit [Ping timeout: 252 seconds]
Steeve has quit [Quit: end]
derelict has joined #commonlisp
frgo_ has quit [Remote host closed the connection]
frgo has joined #commonlisp
varjag has quit [Ping timeout: 265 seconds]
aeth_ has joined #commonlisp
aeth has quit [Ping timeout: 272 seconds]
aeth_ is now known as aeth
CrashTestDummy3 has joined #commonlisp
CrashTestDummy2 has quit [Ping timeout: 265 seconds]
<jcowan>
Perhaps writing a CL in JS would be the best approach
<aeth>
There is one, it's not very complete.
char has joined #commonlisp
amb007 has quit [Ping timeout: 265 seconds]
blihp has joined #commonlisp
amb007 has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
[deleted] has joined #commonlisp
livoreno has quit [Ping timeout: 252 seconds]
char has quit [Ping timeout: 244 seconds]
<jcowan>
Naturally. Writing a CL requires a bunch of students or very remarkable stick-to-it-iveness