p_l changed the topic of #lisp to: Common Lisp, the #1=(programmable . #1#) programming language | <https://irclog.tymoon.eu/freenode/%23lisp> <https://irclog.whitequark.org/lisp> <http://ccl.clozure.com/irc-logs/lisp/> | ASDF 3.3.4
orivej has quit [Ping timeout: 256 seconds]
pjb has quit [Ping timeout: 265 seconds]
SGASAU` has quit [Remote host closed the connection]
SGASAU` has joined #lisp
orivej has joined #lisp
orivej has quit [Ping timeout: 272 seconds]
ldb has joined #lisp
<ldb> morning
wxie has joined #lisp
<rabuf> Evening.
<White_Flame> $FACET_OF_TIME_CUBE
parjanya has quit [Remote host closed the connection]
ldb has quit [Ping timeout: 258 seconds]
<edgar-rft> is it time to load some bytes?
ldb has joined #lisp
pjb has joined #lisp
<ldb> z
<edgar-rft> (time (ldb <bytespec> <integer>)) => morning
orivej has joined #lisp
orivej has quit [Ping timeout: 272 seconds]
lucasb has quit [Quit: Connection closed for inactivity]
ArthurSt1ong has quit [Quit: leaving]
ArthurStrong has joined #lisp
seok has joined #lisp
<seok> is there a library to draw charts?
<Josh_2> there are wrappers for gnuplot
abhixec has joined #lisp
pjb has quit [Ping timeout: 272 seconds]
bitmapper has quit [Ping timeout: 258 seconds]
smazga has joined #lisp
smazga has quit [Ping timeout: 272 seconds]
R4v3n has quit [Quit: R4v3n]
msk has quit [Read error: Connection reset by peer]
msk has joined #lisp
zaquest has quit [Read error: Connection reset by peer]
wxie has quit [Ping timeout: 260 seconds]
dev has quit [Remote host closed the connection]
pjb has joined #lisp
dyelar has quit [Quit: Leaving.]
wxie has joined #lisp
Lycurgus has joined #lisp
dddddd has quit [Ping timeout: 264 seconds]
gekkou has joined #lisp
pjb has quit [Ping timeout: 272 seconds]
wxie has quit [Ping timeout: 265 seconds]
mason has joined #lisp
monok has joined #lisp
|Pirx| has quit [Ping timeout: 258 seconds]
mono has quit [Ping timeout: 264 seconds]
ralt has quit [Quit: Connection closed for inactivity]
ldb has quit [Ping timeout: 246 seconds]
ldb has joined #lisp
ldb has quit [Ping timeout: 246 seconds]
ldb has joined #lisp
zaquest has joined #lisp
pjb has joined #lisp
<beach> Good morning everyone!
efm has joined #lisp
jesse1010 has quit [Ping timeout: 246 seconds]
EvW has joined #lisp
<seok> morning!
<seok> how do I check if a variable is a string?
<seok> (equal (type-of x) ??)
<seok> 'string doesnt work
<seok> '(simple-array character) neither
<ffwacom> (stringp x)
<seok> thank you
orivej has joined #lisp
smazga has joined #lisp
pjb has quit [Ping timeout: 265 seconds]
<beach> seok: You mean if THE VALUE OF A VARIABLE is a string?
<beach> seok: In general, if you don't have a predicate like STRINGP, the way to check it is (TYPEP <object> '<type-descriptor>) so in this case (TYPEP X 'STRING).
smazga has quit [Ping timeout: 256 seconds]
<seok> Thank you
gekkou has quit [Quit: WeeChat 2.6]
<edgar-rft> AFAIK a string string can be made variable by using a fill-pointer
<edgar-rft> * one string too many
<ffwacom> can I (use-package :blah) but assign :blah to an alias?
<ffwacom> the main issue is the package :iterate and :generators both define the #'next symbol
<ffwacom> this is in common lisp
<beach> What does it mean to assign a keyword to an alias?
<beach> You should avoid :USEing packages other than the CL package.
<ffwacom> how should I approach it?
<beach> Use explicit package prefixes.
<beach> And if the name of the package is too long, use package-local nicknames, now available in every significant implementation.
<beach> By using explicit package prefixes, your code is easier to understand, because the person reading it can immediately see what package a symbol comes from.
marusich has quit [Ping timeout: 246 seconds]
<ffwacom> that sounds fine, I'd really like the package names shorter
arbv has quit [Ping timeout: 260 seconds]
<beach> You can make it a single letter if you want, using package-local nicknames.
vutral_ has joined #lisp
vutral_ has quit [Changing host]
vutral_ has joined #lisp
<beach> ... so that i:next is the symbol in iterators, and g:next is the one from generators.
arbv has joined #lisp
<ffwacom> beach: That worked a treat, thanks
<beach> Anytime.
wxie has joined #lisp
marusich has joined #lisp
pjb has joined #lisp
ldb has quit [Ping timeout: 264 seconds]
seok has quit [Remote host closed the connection]
Bike has quit [Quit: Lost terminal]
wxie has quit [Ping timeout: 265 seconds]
ldb has joined #lisp
<White_Flame> ffwacom: there's package-local-nicknames, which is an extension that pretty much every lisp implementationhas now
<beach> I think that's what I said. No?
<White_Flame> oh, right at the end, yeah
* White_Flame skimmed too fast
ldb has quit [Ping timeout: 258 seconds]
karlosz has quit [Quit: karlosz]
karlosz has joined #lisp
moon-child has quit [Quit: ZNC 1.7.5 - https://znc.in]
moon-child has joined #lisp
gravicappa has joined #lisp
orivej has quit [Ping timeout: 256 seconds]
EvW has quit [Ping timeout: 272 seconds]
kaftejiman has joined #lisp
ech has quit [Ping timeout: 240 seconds]
narimiran has joined #lisp
abhixec has quit [Quit: leaving]
ldb has joined #lisp
srazzaque has joined #lisp
ldb has quit [Ping timeout: 272 seconds]
ayuce has quit [Remote host closed the connection]
_whitelogger has joined #lisp
ldb has joined #lisp
sauvin has joined #lisp
ldb has quit [Ping timeout: 240 seconds]
igemnace has quit [Quit: WeeChat 2.8]
ArthurStrong has quit [Ping timeout: 258 seconds]
ldb has joined #lisp
ldb has quit [Ping timeout: 260 seconds]
Lycurgus has quit [Remote host closed the connection]
narimiran has quit [Quit: leaving]
ldb has joined #lisp
akoana has quit [Quit: leaving]
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
bhartrihari has joined #lisp
ldb has quit [Ping timeout: 265 seconds]
ldb has joined #lisp
ldb has quit [Quit: leaving]
nitrix has quit [Quit: ZNC 1.7.5 - https://znc.in]
<phoe> good morning, lispers
<no-defun-allowed> Hello phoe.
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
bhartrihari has joined #lisp
karlosz has quit [Quit: karlosz]
karlosz has joined #lisp
Lycurgus has joined #lisp
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
bhartrihari has joined #lisp
shka_ has joined #lisp
<beach> Hello phoe.
<phoe> heyyyy
igemnace has joined #lisp
_jrjsmrtn has quit [Quit: Bye !]
sdumi has quit [Ping timeout: 265 seconds]
__jrjsmrtn__ has joined #lisp
Lycurgus has quit [Quit: Exeunt]
zaquest has quit [Quit: Leaving]
ralt has joined #lisp
__jrjsmrtn__ is now known as _jrjsmrtn
_jrjsmrtn is now known as jrjsmrtn
nopf has quit [Ping timeout: 260 seconds]
nopf has joined #lisp
sdumi has joined #lisp
cdegroot has quit [Ping timeout: 258 seconds]
cdegroot has joined #lisp
pve has joined #lisp
t-m3n has quit [Remote host closed the connection]
t-m3n has joined #lisp
karayan has quit [Ping timeout: 260 seconds]
sdumi has quit [Read error: Connection reset by peer]
sdumi has joined #lisp
liberliver has joined #lisp
srazzaque has quit [Ping timeout: 240 seconds]
liberliver1 has joined #lisp
liberliver has quit [Ping timeout: 272 seconds]
liberliver1 is now known as liberliver
sdumi has quit [Ping timeout: 246 seconds]
zaquest has joined #lisp
liberliver has quit [Ping timeout: 260 seconds]
hineios3 has joined #lisp
hineios3 is now known as hineios
hineios has quit [Ping timeout: 256 seconds]
Bourne has left #lisp ["rcirc on GNU Emacs 26.3"]
nightfly has quit [Ping timeout: 246 seconds]
rgherdt has joined #lisp
nightfly has joined #lisp
<beach> Do we have a collective name for the type specifier names AND, OR, EQL, MEMBER, MOD, NOT, SATISFIES, and VALUES.
<beach> ?
<beach> They are the ones that are not names of any types.
<phoe> beach:
<phoe> clhs 4.2.3
<phoe> figure 4-4
<phoe> compound-only type specifiers
<beach> Lame. :) But thanks.
<beach> I guess I can live with that.
cosimone has joined #lisp
bhartrihari has left #lisp ["Disconnected: closed"]
bhartrihari has joined #lisp
bfig has joined #lisp
bfig_ has quit [Ping timeout: 240 seconds]
pjb has quit [Ping timeout: 265 seconds]
karayan has joined #lisp
marusich has quit [Quit: Leaving]
datajerk has quit [Ping timeout: 260 seconds]
datajerk has joined #lisp
pjb has joined #lisp
<MrtnDk[m]> <beach "I guess I can live with that."> How?
<no-defun-allowed> Quite easily, that's the phrase used in the Common Lisp Hyperspec.
<beach> I'll just put "compound-only" in the name of the file in which I planned to put code for those type specifier names.
sdumi has joined #lisp
<beach> MrtnDk[m]: Are you new here? I don't recognize your nick.
<MrtnDk[m]> beach: I think so, yes.
<beach> Great! What brings you to #lisp?
<phoe> MrtnDk[m]: helloooo, welcome to #lisp
<MrtnDk[m]> phoe: Thank you! 🙂
epony has quit [Ping timeout: 258 seconds]
dale has quit [Quit: My computer has gone to sleep]
Oddity has quit [Ping timeout: 258 seconds]
epony has joined #lisp
<phoe> if we can help you in anything related to Common Lisp, just post it here
Oddity has joined #lisp
orivej has joined #lisp
anticrisis has quit [Read error: Connection reset by peer]
pjb has quit [Ping timeout: 272 seconds]
hineios has joined #lisp
smazga has joined #lisp
smazga has quit [Ping timeout: 260 seconds]
dddddd has joined #lisp
_whitelogger has joined #lisp
wxie has joined #lisp
frgo has quit [Remote host closed the connection]
pjb has joined #lisp
frgo has joined #lisp
shifty has joined #lisp
frgo has quit []
t-m3n has quit [Remote host closed the connection]
_whitelogger has joined #lisp
<lukego> Anybody have a Lisp genetic algorithms library they can recommend?
<MrtnDk[m]> <phoe "if we can help you in anything r"> I'm mostly into scheme and e-lisp. I guess E-lisp and common lisp are very similar, in some ways at least, maybe not so much in other ways. I understand that CL is more complex.
<MrtnDk[m]> Sorry.
kpoeck has joined #lisp
<MrtnDk[m]> phoe: I'm mostly into scheme and e-lisp. I guess E-lisp and common lisp are very similar, in some ways at least, maybe not so much in other ways. I understand that CL is more complex.
<phoe> hmmmmm, the two are off-topic here, since this is a Common Lisp place
<phoe> elisp most likely belongs to #emacs and scheme to #scheme and/or other channels related to the various scheme implementations
<MrtnDk[m]> I do a little in common LISP also, on my android.
<phoe> nice! I know someone else as well who does their Lisp learning on ecl on android
<phoe> also Lisp ain't LISP, no need to use all caps since it's not 1960s anymore
<MrtnDk[m]> Right .. Lisp is case-sensitive now. I didn't think about that.
<phoe> well I mean the reader still upcases everything by default
<phoe> but you know what I mean :D
<jackdaniel> technically speaking Common Lisp is LISP (unlike scheme which was designed from scratch)
random-nick has joined #lisp
<MrtnDk[m]> I kinda like Scratch, but it is not for programming, it is for fun and learning.
<MrtnDk[m]> I am doubtful that Lisp was originally implemented in Scratch though.
nika has joined #lisp
<MrtnDk[m]> (Maybe I am confusing it with something else)
<phoe> you are confusing Scratch with scratch
<phoe> again, a capitalization issue
<phoe> jackdaniel meant that scheme was designed from |scratch|, not |Scratch|
<no-defun-allowed> Time to go to #scheme and ask what operator changes the colour of the cat.
Lord_of_Life_ has joined #lisp
jonatack has quit [Ping timeout: 246 seconds]
frgo has joined #lisp
jonatack has joined #lisp
Lord_of_Life has quit [Ping timeout: 264 seconds]
Lord_of_Life_ is now known as Lord_of_Life
wxie has quit [Ping timeout: 264 seconds]
EvW has joined #lisp
karlosz has quit [Quit: karlosz]
igemnace has quit [Quit: WeeChat 2.8]
scymtym__ has joined #lisp
scymtym__ has quit [Client Quit]
scymtym has quit [Ping timeout: 256 seconds]
scymtym has joined #lisp
ech has joined #lisp
Bike has joined #lisp
hineios4 has joined #lisp
sdumi has quit [Read error: Connection reset by peer]
hineios5 has joined #lisp
sdumi has joined #lisp
hineios has quit [Ping timeout: 260 seconds]
hineios5 is now known as hineios
kpoeck has quit [Remote host closed the connection]
hineios4 has quit [Ping timeout: 260 seconds]
whiteline has quit [Remote host closed the connection]
orivej has quit [Ping timeout: 256 seconds]
whiteline has joined #lisp
orivej has joined #lisp
quazimodo has quit [Ping timeout: 246 seconds]
quazimodo has joined #lisp
_whitelogger has joined #lisp
pjb has quit [Ping timeout: 265 seconds]
bitmapper has joined #lisp
ljavorsk has joined #lisp
pjb has joined #lisp
<aeth> Emacs Lisp is essentially a historic Lisp in its design, and CL was designed to replace historic Lisps (rms disagreed, and hence we got the archaic-on-release Emacs Lisp), so that's why they're similar.
epony has quit [Ping timeout: 258 seconds]
Lord_of_Life has quit [Read error: Connection reset by peer]
Lord_of_Life has joined #lisp
<beach> Was work on Common Lisp as finished as that when RMS wrote Emacs Lisp? Where did you see this information?
ljavorsk has quit [Ping timeout: 256 seconds]
<aeth> Ah, CLtL 2 is 1990 and only the first CLtL (1984) was available in 1985. https://en.wikipedia.org/wiki/Common_Lisp_the_Language
<aeth> Still, afaik, RMS was opposed to CL's design iirc.
<aeth> It's in one of those histories of GNU (or Emacs) things online, so it would probably be pretty hard to find.
<aeth> so of course phoe found it in 6 seconds
<phoe> > of course
<phoe> I just googled for "emacs lisp common lisp rms"
<beach> I think he still is, but I doubt that it was as finished enough when he wrote Emacs Lisp.
<aeth> phoe: and that is in fact the top result on DDG as well
<aeth> phoe: Sorry, I'm used to search engines being trash these days even when I remember the exact phrases I'm trying to search
<phoe> ANSI CL did not yet exist
<phoe> CLtL1 existed, that's all
<White_Flame> afair, CL was too big/complex to implement in emacs, so RMS took a simpler route
<beach> Certainly not ANSI Common Lisp, no.
<White_Flame> at least, too big/complex for what he wanted to do
<aeth> White_Flame: well, phoe's link says that RMS opposed some elements of its design, like keyword arguments
<aeth> (since this was before CLOS existed as the thing to hate)
nicktick has quit [Ping timeout: 264 seconds]
<phoe> and he called CLtL1 "huge"
<beach> I am not sure about that. I sometimes quote the email exchange I had with him when he first released GNU Emacs. I wrote something like "It would be better to first implement a real Lisp system, and then write Emacs in it" (since I had used Multics Emacs then), and he answered something like "Sounds good. Let me know when you have implemented it.".
<beach> White_Flame: ^
<beach> I just think he wanted Emacs released as soon as possible, and it would have taken longer to write a Lisp system first."
<White_Flame> yep
McParen has joined #lisp
<aeth> But then we have this from last year: https://sourceforge.net/p/sbcl/mailman/message/36659403/
<aeth> So things might come full circle
<White_Flame> or alternatively, pull python out of sbcl and use emacs lisp underneath instead
<aeth> elisp-on-CL would be the way to go for that. There already is at least one of those attempts, but it wouldn't be hard to write a fresh one that meets GNU Emacs's expectations exactly.
* White_Flame meant sbcl-on-elisp for the other full circle direction
<aeth> Writing a smaller language on the larger language is the easier route. e.g. Scheme-on-CL is only really a few thousand lines while CL-on-Scheme is a large undertaking.
<aeth> (And the latter probably requires modifying the implementation.)
<jmercouris> what would be the advantage of having Elisp?
krid has joined #lisp
<jmercouris> None, you need the elisp environment
<jmercouris> it is not enough to have an elisp interpreter
<aeth> jmercouris: The only advantage of having elisp-on-CL in a fully GNU Emacs compliant way would be if people were actually going forward with the GNU Emacs on SBCL project which was in the mailing list a year ago
<jmercouris> I wouldn't count on it, needs more support
<jmercouris> also, too many problems with assumptions made in existing elisp code, actual reuse would be trivial
<phoe> getting elisp to run is 10% of the trouble
<phoe> the remaining 180% is reimplementing all of emacs that existing code depends on
<aeth> phoe: porting, not reimplementing
<phoe> aeth: no, reimplementing
<phoe> elisp as a language is small, but then there's buffers, windows, all the stuff that is more emacs than elisp
<phoe> reimplementing *that* is a nightmare
<jmercouris> and implementing all of its quirks
<aeth> phoe: CFFI. You port the parts that assume elisp to parts that assume CFFI.
<aeth> No, it's not an optimal solution, but it will at least give you a working program. Then you can talk about rewriting.
lemoinem is now known as Guest29374
lemoinem has joined #lisp
hineios0 has joined #lisp
Guest29374 has quit [Ping timeout: 265 seconds]
hineios has quit [Ping timeout: 260 seconds]
hineios0 is now known as hineios
gko has joined #lisp
shifty has quit [Ping timeout: 272 seconds]
shifty has joined #lisp
epony has joined #lisp
orivej has quit [Ping timeout: 272 seconds]
epony has quit [Remote host closed the connection]
epony has joined #lisp
ioa has quit [Ping timeout: 272 seconds]
ioa has joined #lisp
papachan has quit [Quit: WeeChat 2.7.1]
papachan has joined #lisp
Lycurgus has joined #lisp
rgherdt has quit [Ping timeout: 265 seconds]
orivej has joined #lisp
shifty has quit [Ping timeout: 265 seconds]
TwoNotes has joined #lisp
shifty has joined #lisp
<MrtnDk[m]> Would an Emacs with common Lisp run multithreaded?
<beach> Sure, when required.
<MrtnDk[m]> That is one of the main issues I have with Emacs. It runs so slow on multicore machines, the same problems with graphical browsers, because they only exploit a faction of the available CPU's.
<beach> The main problem with Emacs Lisp is that it is not compiled to native code, or at least it did not use to be. An implementation of Emacs in Common Lisp would make it possible to use one of the Common Lisp implementations that compile to fast native code.
<beach> Maybe they are JIT-ing these days, though.
<beach> But it is still very slow.
shifty has quit [Ping timeout: 272 seconds]
jesse1010 has joined #lisp
lucasb has joined #lisp
<aeth> Not being multithreaded is only going to be more of a problem each year. e.g. AMD's current Zen 2 desktop lineup: https://en.wikipedia.org/wiki/List_of_AMD_Ryzen_microprocessors#Zen_2_based
<aeth> 4, 6, 8, 12, 16, 24, 32, 64. Laptops are 4, 6, and 8. Intel isn't too different. Intel has a random 10-core for some reason.
bobross has joined #lisp
<TwoNotes> Maybe they just crank up the core count until the yield drops too much
<aeth> I'm not sure how much of it is elisp and how much of it is deeper built-in assumptions into Emacs, though
<aeth> So even moving to SBCL wouldn't necessarily make Emacs work multithreaded, at least the core
<beach> A Common Lisp system with a stop-the-world GC would not be to great either.
<beach> too
<TwoNotes> SLIME starts additional threads. I don't think EMACS does
<beach> There is something going on though. One can use editing commands while a process is filling up a buffer, say with compiler messages.
<phoe> beach: one can tune an incremental GC to have pauses that are tens of milliseconds long; suitable for soft real-time applications.
shymega has quit [Quit: Adiós!]
<beach> phoe: That wasn't the point of the discussion.
<phoe> oh! sorry. you mentioned stop-the-world GC.
<beach> phoe: The point was, if you want to take advantage of a large number of cores, then stopping ever thread is not so great.
<TwoNotes> Shared-nothing threads (like in Erlang) make localized GC easy.
<phoe> oh, that is correct
<beach> every
<phoe> TwoNotes: you ain't gonna get that in CL.
<TwoNotes> Yeah, I know. :(
grewal has joined #lisp
<aeth> phoe: 10s of ms sounds horrifying to me. That's a dropped frame or two with a 60 Hz monitor, which seems like it would be noticable.
<beach> aeth: Forget about video. It's a disaster for audio.
<aeth> Some higher end monitors might not give you much more than 5 ms
<beach> Plus the ear is much more sensitive than the eye.
shymega has joined #lisp
<TwoNotes> I keep getting EOF conditions raised by read-from-string. Does it have a problem wiht long strings? (Like 500 bytes)
<beach> "it"?
<TwoNotes> read-from-string
<beach> What implementation?
<phoe> TwoNotes: give an example of sorts?
<TwoNotes> I feed it a string containing an S-expression,
<TwoNotes> SBCL
<phoe> TwoNotes: paste that sexpression somewhere
<aeth> beach: What order of magnitude of time does audio work with? I'm not familiar with audio.
jfrancis has joined #lisp
<beach> aeth: I forget my calculations in the past, but I have estimated 1-2ms at most.
<TwoNotes> I will write a test case
<bobross> Could someone help me with cl+ssl? I'm unable to read from the stream and I can't understand why. It seems to hang until the connection is closed, then receives the request at that point.
<phoe> bobross: FINISH-OUTPUT
<beach> TwoNotes: Conditions are not "raised" in Common Lisp, they are "signaled".
<phoe> bobross: is the request-sending part finishing its output before it closes the connection?
<phoe> if it isn't, it might be that stream buffering kicks in.
<bobross> Not on my end. But I also tried with an external application and had the same issue (well, my "client" in Lisp signals an error...)
<phoe> TwoNotes: please do write.
<bobross> I will try finish-output
<beach> aeth: The problem is that if you use real-time audio, like for a synthesizer program, the ear is very sensitive to delays, so you can't fill the audio buffer too much. Then you need to react very fast when the buffer is about to get empty.
<phoe> yes, that part is very sensitive to delays of any kind, including GC delays
<beach> In fact, the standard Linux kernel can't handle a synthesizer program correctly. It requires special kernels options.
<bobross> https://bin.privacytools.io/?1bfac7ec8036a25c#iDiwwxT7hu3R2UZ6vaKsnna/LLtrzBQDj0IaLi8a2gg= this is the code, if someone could have a look. Trying to handle the connection in 'ssl-handler'
efm has quit [Quit: Konversation terminated!]
<phoe> bobross: yes, this should be enough
<phoe> I mean, the (finish-output tls-stream)
<phoe> if cl+ssl handles this correctly, then this will flush the buffers and send all data stored there to the server
<bobross> Right. I'm getting: "An I/O error occurred: undocumented reason (return code: 5).
<bobross> SSL error queue is empty.
<bobross> [Condition of type CL+SSL::SSL-ERROR-SYSCALL]"
<phoe> bobross: does that come from the client or the server? could you paste the stacktrace somewhere?
<bobross> As far as I can tell it comes from trivial-utf-8:read-utf-8-string. Will post stack trace, 1 moment.
<phoe> sure! (please use a pastebin)
<phoe> also, read-utf-8-string isn't a cl+ssl function... hmm
<bobross> Yea, I'm using trivial-utf-8 because the application I will use it for needs to use UTF-8 encoded messages. But really, that call could be replaced with a "read-bytes" of some sort. Not sure how to do this in CL.
ralt has quit [Quit: Connection closed for inactivity]
<phoe> that's from read-byte
<phoe> so now we know that the server is unable to read the request.
<bobross> Hmm. What's strange is that earlier I managed to read the request after closing the connection of the client (using an external application for the client)
shifty has joined #lisp
cosimone has quit [Quit: Quit.]
<Josh_2> afternoon all
<phoe> nope, I give up - I have no idea what is happening in there on the SSL side
<bobross> A side note: when using the 'bombadillo' client I can send a request with 'bombadillo gemini://127.0.0.1:61111/test', which hangs, but once I ctrl-C the request is received successfully
<bobross> Same with 'elpher' in emacs
ech has quit [Ping timeout: 246 seconds]
<phoe> hmmmm
<phoe> does the Lisp client actually establish the SSL connection correctly?
sdumi has quit [Ping timeout: 264 seconds]
<bobross> Honestly I'm not sure. I found the documentation a bit vague. But the clients I mentioned in the previous comment should setup TLS correctly.
<phoe> I wonder if there are any tests for https://github.com/jfmcbrayer/germinal
<phoe> because such tests would, well, need to implement a basic client that also use SSL
ech has joined #lisp
<bobross> I've looked at that code, and from what I can tell the primary difference is that in the handler 'cl+ssl::*ssl-global-context*' is set directly, and that 'read-line-crlf' (from cl+ssl docs) is used to read from the stream. I couldn't get the 'read-line-crlf' function to run on my end
<bobross> There are some short examples for cl+ssl here: https://github.com/cl-plus-ssl/cl-plus-ssl/blob/master/example.lisp
arduo has joined #lisp
CrazyEddy has quit [Remote host closed the connection]
shifty has quit [Ping timeout: 272 seconds]
Lycurgus has quit [Remote host closed the connection]
scymtym_ has joined #lisp
rgherdt has joined #lisp
scymtym has quit [Ping timeout: 264 seconds]
X-Scale` has joined #lisp
sdumi has joined #lisp
X-Scale has quit [Ping timeout: 264 seconds]
twelvemonkeys has quit [Ping timeout: 256 seconds]
arpunk has joined #lisp
X-Scale has joined #lisp
twelvemonkeys has joined #lisp
X-Scale` has quit [Ping timeout: 272 seconds]
krid has quit [Remote host closed the connection]
gko has quit [Ping timeout: 265 seconds]
ralt has joined #lisp
gaqwas has joined #lisp
scymtym_ has quit [Remote host closed the connection]
scymtym__ has joined #lisp
twelvemonkeys has quit [Ping timeout: 246 seconds]
twelvemonkeys has joined #lisp
EvW has quit [Ping timeout: 260 seconds]
nikita` has left #lisp [#lisp]
sdumi has quit [Ping timeout: 264 seconds]
orivej has quit [Ping timeout: 258 seconds]
sdumi has joined #lisp
scymtym__ has quit [Remote host closed the connection]
scymtym__ has joined #lisp
funnel has quit [Ping timeout: 260 seconds]
<bobross> phoe: After some fiddling the error stops when not using '(usocket:socket-close socket)' on the client, and the request can be read by looping read-byte
<phoe> bobross: oh!
lerax has quit [Ping timeout: 272 seconds]
<phoe> you are closing the socket?... one second
<phoe> still, that is weird
<phoe> looping read-bytes is a weird way of doing that
<phoe> what happens if you first close the tls-stream and then close the socket?
<bobross> Yep I agree. I would have thought you could read a "TCP message" completely with a single command?
funnel has joined #lisp
<phoe> yes, that is my thought, and it is certainly possible with non-TLS socket streams
<TwoNotes> I don't think there is a concept of a "TCP message". It is a byte stream.
lerax has joined #lisp
<phoe> I think there might be some sort of weirdness happening if you pull the carpet from under cl+ssl while it does its work - that's why I suggested first closing the tls-stream and then closing the socket stream
<bobross> Hmm what function would I use to close tls-stream
<phoe> clhs close
<phoe> same as with all streams
<phoe> (cl:close tls-stream) (usocket:socket-close socket)
orivej has joined #lisp
<bobross> Still getting the same error in that case. But from how I interpret the documentation https://common-lisp.net/project/cl-plus-ssl/ the stream should be closed automatically
<phoe> welp
<phoe> I see
<bobross> TwoNotes: so since it is a byte stream it is not possible to "read the single TCP message" without reading byte by byte and detecting the end of the message?
<phoe> bobross: more like "there's no concept of a message in TCP"
<phoe> ultimately, TCP is a stream protocol, meaning that you get a stream of bytes instead of a stream of messages
<phoe> that's different than e.g. UDP, where each packet is its own message, or SCTP, which has a concept of messages.
<bobross> Ahh I see
scymtym__ has quit [Read error: Connection reset by peer]
scymtym has joined #lisp
<bobross> Is there a function like read-sequence which stops when detecting a certain byte?
<phoe> I'm afraid not; that's where the issue of socket buffering comes in
<phoe> when working with raw TCP sockets and nonetheless doing messaging over the stream, usually you read whatever you can and then check if you can "pop" a complete message off the stream
<phoe> if you do so, you copy it from the buffer, send into the system, and flush the buffer to remove the already processed bytes
<TwoNotes> protocols built on top of TCP define their own 'message' boundaries. Some use prefix byte counts
<bobross> So what you mean is that I create in Lisp a "buffer" (e.g. array), read byte by byte, stop at some point, convert the message to e.g. string, then handle it?
<bobross> In this case the message should end with CRLF
<phoe> clhs read-line
<phoe> you're lucky
<TwoNotes> Yes. Just remember that when you start doing that, the end of your 'message' may not have yet arroived over the stream.
<TwoNotes> A TCP impolementation that delivers data to you two bytes ata time is perfectly valid.
<bobross> Right, but they are guaranteed to be in the correct order due to the protocol right?
<TwoNotes> yes
twelvemonkeys has quit [Ping timeout: 246 seconds]
<bobross> Thank you both very much. Btw I get an error when trying (read-line ...) https://bin.privacytools.io/?043fafaff2b73aab#hGRcZWXG7y/LsZvbrlBxJAr2aRkQWeOS7c8qPxjxON4=
<phoe> ...wait, cl+ssl does not implement that?
twelvemonkeys has joined #lisp
cosimone has joined #lisp
<phoe> oh, is that a binary stream or a character stream?
<bobross> (unsigned-byte 8)
<phoe> oh, so read-line won't work on it.
<phoe> ...unless you apply flexi-streams on top, welp
<bobross> I will try a similar approach to read-line-crlf in https://github.com/cl-plus-ssl/cl-plus-ssl/blob/master/example.lisp I guess
<bobross> Anyways I need to go. Thanks again for all the help!
<phoe> ...wtf, it should be a bivalent stream then
<phoe> I mean, if it is capable of reading characters from it
FreeBirdLjj has joined #lisp
<bobross> cl+ssl has flexi-streams as a dependency, but I'm not familiar with that package
<phoe> this has read-line in there
<phoe> wtf
sdumi has quit [Read error: Connection reset by peer]
sdumi has joined #lisp
amerlyq has quit [Quit: amerlyq]
twelvemonkeys has quit [Ping timeout: 260 seconds]
rpg has joined #lisp
<bobross> Seems they are using ':iso-8859-1' as the format
<phoe> what format is your data?
<bobross> I'm using '(unsigned-byte 8) since I will send UTF-8 as bytes
<phoe> ...ouch
<phoe> why not as characters?
FreeBirdLjj has quit [Ping timeout: 258 seconds]
<phoe> you could try passing :external-format '(:utf-8 :eol-style :crlf) to the created stream and use characters/strings
<bobross> I'm trying to implement a Gemini server following the protocol, which says all headers must be UTF-8
twelvemonkeys has joined #lisp
<phoe> sure, and you can let Lisp handle the conversion instead of doing it yourself
<bobross> Oh I see. I will try that later, thank you! Really need to go to walk my dog. I might drop by later.
<phoe> good luck!
<bobross> Thanks!
bobross has quit [Quit: ERC (IRC client for Emacs 27.0.90)]
<_death> lisp is full of happy little trees
hhdave_ has joined #lisp
hhdave has quit [Ping timeout: 256 seconds]
hhdave_ is now known as hhdave
ArthurStrong has joined #lisp
pjb has quit [Ping timeout: 246 seconds]
EvW has joined #lisp
TwoNotes has quit [Quit: Leaving]
rogersm has joined #lisp
Admin1 has joined #lisp
Admin1 is now known as Cuccslayer
<Cuccslayer> https://pastebin.com/6xZ4vh8u can anybody help me with this error?
<rogersm> you need to install the foreign library interface (dll)
<Cuccslayer> oh ok
<Cuccslayer> can you give me the git link?
<rogersm> check the installation part of the docs:
<Cuccslayer> oh thanks
<rogersm> On windows, .dll files should be put in one of the directories listed in the PATH environment variable.
<rogersm> and if you're interested to move from roguelikes to mud, give me a call :D
rogersm has quit [Client Quit]
cosimone has quit [Quit: Quit.]
<Cuccslayer> can i use binaries instead of dlls?
<APic> Ar not DLL-Files Binary-Files too?
<APic> +e
hhdave has quit [Quit: hhdave]
pjb has joined #lisp
hhdave has joined #lisp
Cuccslayer has quit [Quit: WeeChat 2.7]
xuxuru has joined #lisp
bobross has joined #lisp
<bobross> phoe: Reading/writing through the TLS stream seems to work using ":external-format '(:utf-8 :eol-style :crlf)" as you suggested!
EvW has quit [Ping timeout: 246 seconds]
jw4 has quit [Read error: Connection reset by peer]
jw4 has joined #lisp
hhdave has quit [Quit: hhdave]
narimiran has joined #lisp
<phoe> bobross: <3
<phoe> glad to hear it!
max3 has joined #lisp
frgo has quit [Remote host closed the connection]
<emacsomancer> for SBCL compiled binaries, what is the source of a "Can't find core file relative to ...." error?
frgo has joined #lisp
<phoe> emacsomancer: when trying to run SBCL?
<phoe> how did you install it?
<emacsomancer> no, for a lisp program compiled into a binary with SBCL
<emacsomancer> it should just be an executable at that point, no?
<phoe> depends
<Xach> emacsomancer: how did you compile it to a binary?
<phoe> it can compile into a single binary
<phoe> or it can compile into a C kernel + a heap image
<emacsomancer> http://dpaste.com/2M5H5DD + a Makefile
<max3> are there other languages that have symbols like in lisp?
<phoe> max3: C
<max3> what? how?
<phoe> okay, that was a bad answer; it has symbols, just not like in C
<phoe> they disappear after compilation.
<max3> okay but that's not the way i mean
<phoe> Ruby has them, kind of
<max3> i mean as far as manipulation of unevaluated names
<emacsomancer> where the Makefile calls `(asdf:make :volemad-cli)`
<phoe> Erlang has atoms, which are very similar
<max3> oh yea i remember that vaguely
<max3> i guess julia has some of this kind of functionality
<phoe> hmmm
<max3> "a Symbol identifying the kind of expression. A symbol is an interned string identifier (more discussion below)."
<phoe> now, which SBCL options does asdf:progam-op invoke...
max3 has quit [Remote host closed the connection]
<emacsomancer> maybe there's a better :build-operation to specify?
<phoe> emacsomancer: I use https://github.com/Shinmera/deploy
<ralt> I would suggest static-program-op
<phoe> it pops out standalone binaries for me
<emacsomancer> thanks, I'll look at static-program-op & Shinmera's deploy-op
Jeanne-Kamikaze has joined #lisp
* Xach wonders if avl-tree is a goner
<phoe> axion: ^
<axion> Xach: Oh shoot...
<axion> avl-tree _and_ doubly-linked-list have moved
<axion> I forgot to post an issue
<Xach> Where to?
<axion> We wanted all of our game algorithms in one repository/system, so there is only a single system now.
<axion> Hope this doesn't cause too much work for you
<minion> Remembered. I'll tell beach when he/she/it next speaks.
<pjb> minion: memo for beach: quicksort optimization (branchless Lomuto partitioning): https://blog.reverberate.org/2020/05/29/hoares-rebuttal-bubble-sorts-comeback.html
<Xach> axion: no worries, i'll add algae and rebuild
<axion> There was a backwards-incompatible change with all my Quicklisp releases anyway, in that I adopted reverse domain name notation for system/package names, now that PLN is widespread enough, as some of my systems and packages were rather generic and not fair to the ecosystem and Lisp image
SGASAU` has quit [Quit: ERC (IRC client for Emacs 26.3)]
nika has quit []
SGASAU has joined #lisp
* Xach files bugs for grammatech sel
frgo_ has joined #lisp
EvW has joined #lisp
frgo has quit [Ping timeout: 260 seconds]
narimiran has quit [Ping timeout: 240 seconds]
Misha_B has quit [Read error: Connection reset by peer]
rpg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
narimiran has joined #lisp
<emacsomancer> maybe related to the "can't find file relative to core..." errors, does uiop:run-program expect a full path (for a compiled binary)? [e.g. is (uiop:run-program "bash") ok, or should it be (uiop:run-program "/usr/bin/bash") ? ] - I would have assumed it would just check the relevant $PATH
tsrt^ has joined #lisp
kaftejiman_ has joined #lisp
kaftejiman has quit [Read error: Connection reset by peer]
<phoe> emacsomancer: not really relevant I think
<phoe> it should use the PATH
<phoe> wait a second though - could you paste the full error along with the stacktrace anywhere?
<emacsomancer> phoe: I'm getting reports from someone else, so this is all I have currently: http://dpaste.com/0PNDSZ8
<phoe> that's a pre-Lisp error
<emacsomancer> (I'm still wondering if asdf:progam-op shouldn't be sufficient - e.g. next browser (which is relatively complex with a number of moving pieces) builds everything with asdf:progam-op)
<phoe> SBCL cannot find the heap image
<phoe> how was this application installed?
<emacsomancer> but shouldn't the heap image be built into the binary?
<phoe> it should, I think, yes
<phoe> no idea why it doesn't find it
<emacsomancer> yeah, I don't understand
<phoe> do you have this binary anywhere on your system? can you try running it?
<emacsomancer> when I build and run on my own system, they run find, no matter where I run them from
<phoe> try running it inside a VM?
<ralt> Looks like you're running asdf:image-op rather than program-op somehow
gaqwas has quit [Remote host closed the connection]
<emacsomancer> ralt: ah, maybe that's it
<phoe> but how? the linked ASDF file has program-op in it
<emacsomancer> but the sb-core-compression definition has image-op
<phoe> woop
<phoe> no idea how that interacts
ajb` has joined #lisp
<emacsomancer> neither do I
liberliver has joined #lisp
hiroaki has quit [Ping timeout: 256 seconds]
_whitelogger has joined #lisp
jw4 has quit [Read error: Connection reset by peer]
jw4 has joined #lisp
Krystof has joined #lisp
hiroaki has joined #lisp
karayan has quit [Remote host closed the connection]
pjb has quit [Ping timeout: 272 seconds]
whiteline has quit [Remote host closed the connection]
whiteline has joined #lisp
hiroaki has quit [Ping timeout: 265 seconds]
jesse1010 has quit [Ping timeout: 246 seconds]
karayan has joined #lisp
gaqwas has joined #lisp
liberliver has quit [Ping timeout: 260 seconds]
pjb has joined #lisp
narimiran has quit [Ping timeout: 258 seconds]
zooey has quit [Remote host closed the connection]
zooey has joined #lisp
karlosz has joined #lisp
dale has joined #lisp
karlosz has quit [Client Quit]
hhdave has joined #lisp
hhdave has quit [Client Quit]
<bobross> phoe: Another update... Successfully managed to load a file with an external Gemini client now :D
karlosz has joined #lisp
anticrisis has joined #lisp
whiteline has quit [Remote host closed the connection]
whiteline has joined #lisp
whiteline has quit [Remote host closed the connection]
whiteline has joined #lisp
<_death> hmmm.. define-modify-macro in the clhs takes a parameter named "function" which is a symbol.. but I don't see anything saying it should be the name of a function.. since it shows an equivalency I claim it should work with names of other kinds of operators as well, say (define-modify-macro andf (&rest args) and) .. apparently the message introducing d-f-m ( http://cl-su-ai.lisp.se/msg05411.html ) uses that name and it's just been kept
<_death> as-is.. I don't yet understand the define-setf-expander ("define-setf-method") example there btw..
kaftejiman_ has quit [Remote host closed the connection]
ArthurSt1ong has joined #lisp
<Bike> you wouldn't get short circuit evaluation
<phoe> bobross: <3
<phoe> please keep me updated
<phoe> I am curious about gemini development in CL
<bobross> Will do! I am planning to make the source code available when I feel it's in a good state... Will let you know at that point
ArthurStrong has quit [Ping timeout: 264 seconds]
dale has quit [Quit: dale]
bfig has quit [Read error: Connection reset by peer]
dale has joined #lisp
bfig has joined #lisp
hhdave has joined #lisp
<Bike> _death: the define-setf-method thing seems to be defining a destructurer. like (let (x y) (setf (cons x y) (list 1 2 3)) (values x y)) => 1, (2 3)
andrei-n has joined #lisp
bobross has quit [Quit: ERC (IRC client for Emacs 27.0.90)]
<_death> that makes sense.. but what functionality does get-destructuring-backquote-setf-method give (as opposed to get-setf-method/expansion) .. maybe it's more like (setf `(,x ,y) ...) ?
pfdietz has joined #lisp
<pfdietz> Xach: I will deal with that finalize-inheritance problem in sel within the next couple of days. It's problematic.
<Bike> _death: at the time this was written, did get-setf-expansion even exist?
kamil19 has joined #lisp
<_death> Bike: I guess it was still not exposed.. it's a good question whether get-destructuring-backquote-setf-method is actually get-setf-expansion
kamil19 has left #lisp [#lisp]
<_death> a few days later the example was replaced with LDB and that uses get-setf-method-1
<_death> apparently there was get-setf-method-multiple-value as well..
mathrick has quit [Ping timeout: 272 seconds]
anticrisis has quit [Read error: Connection reset by peer]
Jesin has quit [Quit: Leaving]
Jesin has joined #lisp
akoana has joined #lisp
gravicappa has quit [Ping timeout: 246 seconds]
random-nick has quit [Ping timeout: 246 seconds]
xuxuru has quit [Quit: xuxuru]
hhdave has quit [Quit: hhdave]
lemoinem has quit [Ping timeout: 265 seconds]
liberliver has joined #lisp
shka_ has quit [Ping timeout: 265 seconds]
lessandro` has joined #lisp
<lessandro`> Hi there
random-nick has joined #lisp
<lessandro`> Is there a way to see the previous messages in this channel?
<scymtym> lessandro`: the channel topic has links to multiple websites with logs. one is https://irclog.tymoon.eu/freenode/%23lisp
andrei-n has quit [Quit: Leaving]
<pve> hi, is something like #\Newlin|e| allowed syntax? (it works on sbcl and gives #\Newline)
McParen has left #lisp [#lisp]
<phoe> clhs #\
<phoe> "When the token x is more than one character long, the x must have the syntax of a symbol with no embedded package markers. In this case, the sharpsign backslash notation parses as the character whose name is (string-upcase x)"
<phoe> Yes, it is allowed
<pve> thank you, was just curious
<phoe> but, hmmmmm...
<pve> #\|Newline| doesn't work though
<pve> it gives precedence to #\| i think
<phoe> that is an interesting question
<phoe> |Newline| is valid notation of a symbol with no embedded package markers
<phoe> but, let's read this a big more
<phoe> bit*
Codaraxis has quit [Quit: Leaving]
<phoe> ...nope, not going there tonight
<phoe> too sleepy
<pfdietz> #\N|ewline| maybe? :)
<phoe> oh right, if I understand correctly, then the \ in #\Newline is re-interpreted as a single escape
<phoe> #\N\e\w\l\i\n\e works
<pve> neat!
frgo_ has quit [Remote host closed the connection]
frgo has joined #lisp
kamid has quit [Quit: WeeChat 2.7.1]
frgo has quit [Remote host closed the connection]
frgo has joined #lisp
pve has quit [Quit: leaving]
shifty has joined #lisp
gekkou has joined #lisp
pierpa has joined #lisp
lessandro` has quit [Remote host closed the connection]
sirmacik has left #lisp [#lisp]
Lord_of_Life_ has joined #lisp
Lord_of_Life has quit [Ping timeout: 256 seconds]
Lord_of_Life_ is now known as Lord_of_Life
liberliver has quit [Ping timeout: 265 seconds]
gekkou has quit [Quit: WeeChat 2.6]
karswell_ has joined #lisp
rgherdt has quit [Ping timeout: 240 seconds]
ajb` has quit [Remote host closed the connection]
karswell_ is now known as karswell
ArthurSt1ong has quit [Quit: leaving]
ArthurStrong has joined #lisp
arduo has quit [Ping timeout: 260 seconds]
Guest4 has quit [Quit: Connection closed]
random-nick has quit [Ping timeout: 265 seconds]
kamid has joined #lisp
lucasb has quit [Quit: Connection closed for inactivity]
hineios4 has joined #lisp
hineios has quit [Ping timeout: 265 seconds]
hineios4 is now known as hineios
random-nick has joined #lisp
mathrick has joined #lisp