jackdaniel 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/> | offtopic --> #lispcafe
<charles`> Do you ever find a new piece of software and get sad that it isn't "made with Lisp"?
theothor` has joined #lisp
<no-defun-allowed> No, I don't really find new software :)
<no-defun-allowed> *frequently, not really
luni has quit [Quit: Connection closed]
theothor` has quit [Ping timeout: 265 seconds]
emacsomancer has quit [Ping timeout: 246 seconds]
davd33 has quit [Ping timeout: 265 seconds]
theothor` has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
frodef has quit [Read error: Connection reset by peer]
theothor` has quit [Ping timeout: 256 seconds]
andreyorst has quit [Remote host closed the connection]
mrios22 has quit [Quit: mrios22]
mrios22` has joined #lisp
pve has quit [Quit: leaving]
theothor` has joined #lisp
theothor` has quit [Ping timeout: 264 seconds]
<Xach> Josh_2: what does the code look like?
orivej has quit [Ping timeout: 265 seconds]
wsinatra has joined #lisp
gaqwas has quit [Ping timeout: 246 seconds]
<Josh_2> it was just (rectangle .. ) (set-rgb-fill .. ) (fill-path )
<Josh_2> one sec
random-nick has quit [Ping timeout: 240 seconds]
karlosz has joined #lisp
gzj has joined #lisp
<aeth> what API is that?
<aeth> anything that starts with set- that isn't an FFI wrapper probably should be a SETF instead, if that's your API
<aeth> that is, idiomatic CL doesn't really have getters and setters in the name, it just has a (setf foo) and a (foo)
<Josh_2> It's not mine, It's Xach's vector library
<aeth> ah
theothor` has joined #lisp
<Josh_2> Xach: https://plaster.tymoon.eu/view/2264#2264 this is the offending part of the code
<Josh_2> well the bottom part
<Josh_2> I can send you the entire block of code if you want
theothor` has quit [Ping timeout: 264 seconds]
<Josh_2> if I have a scale from -10 to +10 how can I translate that into a value between 70 and 670? ie 0 would be 370
<Xach> math!
<Josh_2> I thought so
<Josh_2> Any specific equation :P
<White_Flame> + the difference of the midpoint, * the difference in range
<Xach> Josh_2: you have to deal with scaling and translation
<White_Flame> well, * the ratio to expand to the new range
<Xach> i'll look at the color thingy
pranavats has quit [Ping timeout: 272 seconds]
<Josh_2> White_Flame: wah?
<White_Flame> wah what?
<Josh_2> what?
<White_Flame> consider the 2 ranges to be a midpoint and the length outward in both directions
<White_Flame> normalize to -1.0 to +1.0
<Xach> Josh_2: ah, i have it. the fill range is 0.0 to 1.0, not 256
<White_Flame> so in the first scale, -1.0 = -1.0, +1.0 = +10
<Xach> i should have a check-type in there, sorry.
<White_Flame> in the 2nd scale, -1.0 = 70, +1.0 = 670
<White_Flame> both of those scales have a single addition and single multplication
wsinatra has quit [Ping timeout: 264 seconds]
theothor` has joined #lisp
<White_Flame> if you remember your interpolation equations, it's exactly the same thing
<Josh_2> I don't
<White_Flame> you're some percent down the -10..+10 segment, and want to be the same percent down the 70..670 segment
<aeth> lerp...
<aeth> there are others, of course
euandreh has joined #lisp
<White_Flame> or just y=mx+b
<White_Flame> with x = -1 to +1
<White_Flame> and 2 equations, one where y ends up -10 to +10, and another where y ends up 70 to 670
<White_Flame> (or, x = 0 to 1, even easier)
<White_Flame> y = 20*x - 10 would be the 1st line. You can see that 20 is the range, and 0 is the midpoint
<White_Flame> it's the very basics of algebra
mindCrime has quit [Ping timeout: 264 seconds]
theothor` has quit [Ping timeout: 272 seconds]
<aeth> I'd caution against using the basics of algebra in numerical stuff because floats only approximate reals.
<aeth> alexandria:lerp already exists, though
<White_Flame> ah, cool
luni has joined #lisp
<White_Flame> well, these basics of algebra can be expressed with rationals, assuming starting from integers as pixel values
pranavats has joined #lisp
<aeth> there is quite a debate over which algebraically-equivalent way to LERP to use, which is why alexandria:lerp has a huge comment
<aeth> for a one liner
dbotton has joined #lisp
<White_Flame> but all graphical stuff that use matrices are all floats anyway
<White_Flame> and the precision is fine for the limited number of transformations that happen in most visualizations
<aeth> White_Flame: alexandria:lerp uses 1.0, not 1.0f0, so you can just use 'RATIONAL as your *read-default-float-format* before loading alexandria if you want rationals :-)
<Josh_2> There is no :thonk: emote, but that is basically my reaction
akoana has joined #lisp
<White_Flame> TIL
<aeth> This is actually fairly problematic. I didn't notice the 1.0 before. Maybe it's new.
<aeth> It means that whichever float that returns is a side effect of a compile time global variable.
<White_Flame> ah, alexandria doesn't do the scaling between 2 ranges
<White_Flame> only the forward lerp
<Josh_2> ¯\_(ツ)_/¯
<Josh_2> I appreciate your explanation White_Flame but I still dont understand
<White_Flame> Josh_2: if you have the number 3, what percent is it on the -10 to +10 scale?
<White_Flame> where 0% is -10, and 100% is +10?
<Josh_2> 65?
<White_Flame> the result of that percentage is then plugged into lerp
<White_Flame> to get that % of the way from 70 to 670
<White_Flame> and how did you calculate 65%? plug that into a function
<White_Flame> 3 out of -10 to +10, get the minimum to zero, so 13 out of 0 to +20
<White_Flame> get the maximum to 1 (or 100%), so 0.65 out of 0 to 1
u0_a61 has joined #lisp
u0_a61 is now known as Wezzzl
Wezzzl is now known as Wezl
<Xach> (funcall (range-mapper -10 10 70 670) 0) => 70.0
mrcom has quit [Ping timeout: 265 seconds]
<Xach> oops
<Xach> it was 370.0!!
<White_Flame> (defun calc-percent-of-range (val min max) (/ (- val min) (- max min)))
<White_Flame> those 2 steps encoded
<White_Flame> (though without clamping to the [0,100] percent range)
<Josh_2> Xach: thanks. White_Flame sorry I didnd't understand :( my maths skills are non existent
<White_Flame> but often with these sorts of things you don't want to clamp
<White_Flame> well, that was the minimal explanation I can think of, assuming algebra is tackled :)
<White_Flame> take my function, and put the result into alexandria:lerp with your 70-670 range
<White_Flame> or use what xach posted
luni has quit [Quit: Connection closed]
<Josh_2> I think I got to like 9/10th grade maths on Khan Academy
<White_Flame> that range-mapper returns a function that will perform the scaling for you, with clamping
<Josh_2> I messed around and missed all the foundations when I joined secondary ¯\_(ツ)_/¯
<White_Flame> well, graphics programming is chocked full of this sort of stuff
<Josh_2> fortunately I rarely do graphics programming
<White_Flame> so it really helps to take the time be able to internalize what's going on
* no-defun-allowed was thinking that Khan Academy JavaScript has a poorly named MAP function which is approximately LERP which is from Processing
theothor` has joined #lisp
<Josh_2> Xach: here is an example of the images I am using your library to generate https://imgur.com/onBuPWr.png
<Xach> Cool (?)
ralt has quit [Quit: Connection closed for inactivity]
<Josh_2> You asked me to share the pics
snits_ has quit [Ping timeout: 272 seconds]
<Xach> i appreciate it
<Josh_2> 73 lines lul
snits has joined #lisp
<Josh_2> gotta add a couple things but thats pretty much it
theothor` has quit [Ping timeout: 264 seconds]
mindCrime has joined #lisp
<White_Flame> btw, your grid lines are spanning a half-pixel on each side of a pixel boundary
<White_Flame> it would look cleaner if the lines were contained within a single pixel
<White_Flame> and you wouldn't get those white dots on the intersections either
<Josh_2> White_Flame: https://imgur.com/9CKocgV.png ?
<Josh_2> Looks better when I set the line to 2px instead of 1 and lower the opacity
<White_Flame> lines are still 2 pixels wide for some reason
<White_Flame> ah, k
PlusEffect has joined #lisp
gendl has quit [Ping timeout: 260 seconds]
mpontillo_ has quit [Ping timeout: 260 seconds]
jmercouris has quit [Ping timeout: 264 seconds]
gendl has joined #lisp
mpontillo_ has joined #lisp
theruran has quit [Ping timeout: 260 seconds]
jmercouris has joined #lisp
gabiruh has quit [Quit: ZNC 1.7.5 - https://znc.in]
gabiruh has joined #lisp
theruran has joined #lisp
theothor` has joined #lisp
dbotton has quit [Quit: This computer has gone to sleep]
mrcom has joined #lisp
theothor` has quit [Ping timeout: 264 seconds]
<pfdietz>  Ok.  I now have COVER doing coverage checkpoint and rollback.   Next step: automatic generation of minimized coverage-increasing test inputs.
pfdietz has quit [Quit: Ping timeout (120 seconds)]
jeosol has quit [Quit: Ping timeout (120 seconds)]
dbotton has joined #lisp
pfdietz has joined #lisp
jeosol has joined #lisp
mrcom has quit [Ping timeout: 265 seconds]
dbotton_ has joined #lisp
dbotton has quit [Ping timeout: 260 seconds]
edgar-rft has joined #lisp
theothor` has joined #lisp
Nilby has joined #lisp
mrios22` has quit [Remote host closed the connection]
phireh has quit [Remote host closed the connection]
theothor` has quit [Ping timeout: 246 seconds]
dbotton_ has quit [Quit: Leaving]
<PlusEffect> I'm having trouble with SBCL 2.1.x on my Lenovo IdeaPad 3 Chromebook; sb-posix compilation unit failures
karlosz has quit [Quit: karlosz]
edgar-rft has quit [Quit: Leaving]
Wezl has quit [Ping timeout: 272 seconds]
mrcom has joined #lisp
edgar-rft has joined #lisp
Inline has quit [Ping timeout: 272 seconds]
``Erik has joined #lisp
mathrick_ is now known as mathrick
theothor` has joined #lisp
mrcom has quit [Ping timeout: 265 seconds]
logand`` has joined #lisp
theothor` has quit [Ping timeout: 246 seconds]
logand` has quit [Ping timeout: 240 seconds]
PlusEffect has quit [Read error: Connection reset by peer]
wsinatra has joined #lisp
luckless_ has quit [Quit: luckless_]
theothor` has joined #lisp
wsinatra has quit [Quit: WeeChat 3.0]
Wezl has joined #lisp
theothor` has quit [Ping timeout: 264 seconds]
Josh_2 has quit [Remote host closed the connection]
pankajsg has quit [Ping timeout: 265 seconds]
luckless has joined #lisp
gzj has quit [Remote host closed the connection]
gzj has joined #lisp
theothor` has joined #lisp
Codaraxis_ has joined #lisp
theothor` has quit [Ping timeout: 246 seconds]
Codaraxis__ has quit [Ping timeout: 240 seconds]
Wezl has quit [Ping timeout: 264 seconds]
zacts has quit [Quit: leaving]
dbotton has joined #lisp
theothor` has joined #lisp
dbotton has quit [Client Quit]
zulu-inuoe has quit [Read error: Connection reset by peer]
theothor` has quit [Ping timeout: 264 seconds]
dbotton has joined #lisp
emacsomancer has joined #lisp
casual_friday has joined #lisp
dbotton has quit [Client Quit]
mmmattyx has quit [Quit: Connection closed for inactivity]
casual_friday has quit [Quit: Connection closed]
catt has joined #lisp
theothor` has joined #lisp
Alfr_ has joined #lisp
KREYREEN has quit [Remote host closed the connection]
KREYREEN has joined #lisp
<beach> Good morning everyone!
Alfr has quit [Ping timeout: 240 seconds]
<beach> francogrex: I will probably leave most platforms up to people who have access to them and who would like to see SICL run on those platforms.
<beach> jmercouris: The platforms that SBCL runs on have no impact on the SICL code generator.
theothor` has quit [Ping timeout: 264 seconds]
<beach> jmercouris: SBCL will no longer be present when the SICL binary runs.
<beach> jmercouris: And SICL does not depend on SBCL in any way whatsoever. It can use any ANSI conforming Common Lisp implementation that can also run CLOSER-MOP.
<beach> jmercouris: SICL is meant to be a clean-slate implementation, so I want my own version of the garbage collector, of generic dispatch, of the optimization techniques we have designed, etc. I don't want to depend on any other implementation.
<beach> I guess most of what I just said was already said several hours ago.
* beach should read up more before answering.
theothor` has joined #lisp
<Bike> it's more authoritative coming from you anyway.
<beach> Maybe. But y'all did a good job explaining how a compiler works.
theothor` has quit [Ping timeout: 246 seconds]
<Bike> thank you
<beach> I can't help wondering why jmercouris is interested in the subject, yet hasn't watched my presentations "Creating a Common Lisp implementation". :)
orivej has joined #lisp
<beach> phoe's description of a compiler is not quite true for Common Lisp, as I explain in those videos. A C compiler starts with an empty global environment (which is why there are all those #include things) whereas a Common Lisp compiler essentially needs a running Common Lisp system.
<beach> Er, it needs the existing global environment of a running Common Lisp system, I mean.
dbotton has joined #lisp
pilne has joined #lisp
PlusEffect has joined #lisp
dbotton has quit [Client Quit]
<PlusEffect> I think I figured out how to compile SBCL on my Chromebook! Just had to comment out some tests that were not relevant on my platform.
<aeth> A lot of general compiler stuff doesn't quite fit with CL. Especially the huge focus in most compilers on parsing.
<aeth> PlusEffect: so it fails some tests?
<no-defun-allowed> Is it?
aartaka has joined #lisp
<Bike> old "compiler theory" is mostly parsing, yeah.
<beach> Yes, most compiler books have a large part about parsing. That's why I use Muchnick's book most of the time.
<Bike> modern (since, i don't know, several decades) optimizing compilers have lots of their own theory of course
theothor` has joined #lisp
<aeth> afaik, undergrads mostly still focus on the parsers, though.
<no-defun-allowed> I thought most of the compiler complexity was in IR, and only crappy interpreter tutorials take far too long on parsing -- oh, okay.
<aeth> I didn't take a compiler class, though.
<PlusEffect> It fails stat.2 and stat.4, I think, because I'm probably using those security modules that are mentioned in the comments. The root directory appearing writable to others somehow?
<Bike> no, i mean, the actual complexity of an optimizing compiler is definitely the optimizing part, yes.
aartaka_d has joined #lisp
<no-defun-allowed> My favourite coauthor had to write a "compiler" from whatever language (call this one Foo) to JS, and it was very much Foo source -> Foo AST -> JavaScript source
<Nilby> It will be a fun day when I have to start adding #+sicl
<aeth> no-defun-allowed: An introduction to compilers, e.g. online or in a book, could be 50% or more about parsing... but obviously the optimization part is how you turn a 5 week compiler project into an infinite week compiler project.
<beach> Nilby: I'll let you know. :)
<Nilby> beach: Thanks. I appreciate your diligence.
<beach> It used to be the case that parsing was a large part of the time a compiler took, probably because not many optimizations were performed. So parsing technology became a big deal.
dbotton has joined #lisp
<no-defun-allowed> I wish they'd just provide e.g a YACC file, and get the damn thing over with, but there's also the tendency to stretch the material out by introducing one construct, then the grammar, then the evaluation rules, etc. But I'm not bored enough to rant about random stuff I read on the Internet again.
toorevitimirp has joined #lisp
orivej has quit [Ping timeout: 264 seconds]
aartaka has quit [Ping timeout: 272 seconds]
aartaka_d has quit [Ping timeout: 240 seconds]
theothor` has quit [Ping timeout: 246 seconds]
<aeth> I really don't know how any individuals get past the parser part. It's time consuming. Even Scheme-in-CL took me a while and it's Scheme. In CL.
<aeth> If I wrote a C++ compiler (in CL of course) I don't think I'd ever get past parsing
<aeth> More languages need s-expressions. Not worth the effort to do other things.
aartaka has joined #lisp
<no-defun-allowed> I was going to say that someone actually wrote 41 thousand words on writing an interpreter without an evaluator, but they had in fact written an interpreter, and it was hidden by all the crap on parsing.
<Bike> did you use a parser generator
mrcom has joined #lisp
<aeth> Bike: the parser generator was myself
<no-defun-allowed> aeth: Depending on your definition of parsing, doesn't C++ parsing range between annoying and not context free and outright undecidable? I got away with writing a few dispatch characters to fake Scheme syntax ([, ], #t and #f) though.
<Bike> there's your problem
<aeth> only 1000 lines though
<aeth> it was just hard to get the number syntax right
<Bike> you might as well be translating the scheme into assembly yourself too
<Bike> and yeah, C++ parsing is bad.
<Bike> C parsing is bad too but not as off the wall about it
<no-defun-allowed> There was a lot of bikeshedding there on writing the parser without a generator, yes.
<aeth> spaces in type names is a terrible idea
<no-defun-allowed> (deftype |Do elaborate.| () 't)
<aeth> Well, in CL it's actually fine, although the style is bad. Just |foo bar|
<no-defun-allowed> OpenCL gives you ulong (in place of unsigned long) and friends, possibly so they don't have to write unsigned long4 for the vector type.
<dbotton> Why does (merge-pathnames #P"/Users/dbotton/common-lisp/clog/static-files/" "/tutorial/tut-11.html") results in the tutorial portion of the path disappearing ie => #P"/Users/dbotton/common-lisp/clog/static-files/tut-11.html"
<dbotton> (Sorry for interrupting)
mmohammadi9812 has quit [Ping timeout: 240 seconds]
mmohammadi9812 has joined #lisp
<no-defun-allowed> merge-pathnames doesn't really join paths together, from my reading of the CLHS: "Constructs a pathname from pathname by filling in any unsupplied components with the corresponding values from default-pathname and default-version."
<no-defun-allowed> clhs merge-pathnames
<no-defun-allowed> This begs the question of what function joins paths together, but in this case, you might be better served by ASDF:SYSTEM-RELATIVE-PATHNAME.
<dbotton> Is there a way to make that work? Or should just switch to string?
mindCrime has quit [Ping timeout: 264 seconds]
<no-defun-allowed> e.g (asdf:system-relative-pathname :netfarm "bunnies.asc") on my system returns #P"/home/hayley/netfarm-projects/netfarm/Code/bunnies.asc". You could use something like (asdf:system-relative-pathname :clog "static-files/tutorial/tut-11.html") perhaps.
mmohammadi9812 has quit [Ping timeout: 256 seconds]
<dbotton> This example is within clog but most would be arbitrary places in the system
<dbotton> So don't think that would work
mindCrime has joined #lisp
mmohammadi9812 has joined #lisp
theothor` has joined #lisp
pankajsg has joined #lisp
<no-defun-allowed> Maybe UIOP:SUBPATHNAME then.
<no-defun-allowed> (uiop:subpathname "/tmp/" "aaa/bbb.ccc") ⇒ #P"/tmp/aaa/bbb.ccc"
catt has quit [Remote host closed the connection]
<no-defun-allowed> I found that by looking at the implementation of SYSTEM-RELATIVE-PATHNAME.
<dbotton> I'll take a look
<aeth> maybe this? (uiop:merge-pathnames* (make-pathname :directory `(:absolute "foo" "bar" "baz")) "whatever.html")
<aeth> you can then replace "baz" with ,tutorial
theothor` has quit [Ping timeout: 246 seconds]
<dbotton> That would mean I would have to tell users of my api to convert their path's to lists..
<no-defun-allowed> That call to MAKE-PATHNAME will return in #P"/foo/bar/baz/", which isn't really helpful in any case.
<no-defun-allowed> Oh, no, I didn't read it all.
<aeth> no-defun-allowed: well, you'd , or ,@ depending on the problem but it seems like it doesn't give the API that dbotton wants
<dbotton> subpathname sort of works, it seems would have have to remove leading / if exist
<dbotton> Which is reasonable
terpri has quit [Read error: Connection reset by peer]
terpri has joined #lisp
<no-defun-allowed> Yes, a path starting with / is an absolute pathname.
aartaka_d has joined #lisp
<aeth> It looks like subpathname might be the intended way to solve this problem
<aeth> (I mean, in UIOP's API)
<dbotton> Thank you :)
<aeth> I think I'm going to update something in some of my code that solves the problem, but not with uiop:subpathname, so probably not as robustly
<aeth> it either fixes unknown bugs, creates unknown bugs, or both
aartaka has quit [Ping timeout: 272 seconds]
Jeanne-Kamikaze has joined #lisp
Jeanne-Kamikaze has quit [Client Quit]
catt has joined #lisp
theothor` has joined #lisp
thmprover has quit [Quit: For He Was Great of Heart]
saganman has joined #lisp
<dbotton> I wouldn't have noticed it in mine if had not by chance tried merge-pathnames with a subdirectory following the file to merge on
<saganman> Morning beach and everyone
theothor` has quit [Ping timeout: 264 seconds]
PlusEffect has quit [Ping timeout: 264 seconds]
mmohammadi9812 has quit [Ping timeout: 240 seconds]
mmohammadi9812 has joined #lisp
gzj has quit [Ping timeout: 240 seconds]
theothor` has joined #lisp
dbotton has quit [Quit: This computer has gone to sleep]
theothor` has quit [Ping timeout: 264 seconds]
Bike has quit [Quit: Lost terminal]
theothor` has joined #lisp
theothor` has quit [Ping timeout: 264 seconds]
aartaka has joined #lisp
orivej has joined #lisp
aartaka_d has quit [Ping timeout: 240 seconds]
Codaraxis__ has joined #lisp
zacts has joined #lisp
Codaraxis_ has quit [Ping timeout: 264 seconds]
dbotton has joined #lisp
akoana has quit [Quit: leaving]
krid has quit [Ping timeout: 240 seconds]
r3m has joined #lisp
waleee-cl has quit [Quit: Connection closed for inactivity]
luckless has quit [Ping timeout: 268 seconds]
luckless has joined #lisp
Nikotiini has quit [Ping timeout: 272 seconds]
mmohammadi9812 has quit [Ping timeout: 264 seconds]
pfdietz has quit [Quit: Ping timeout (120 seconds)]
jeosol has quit [Quit: Ping timeout (120 seconds)]
andreyorst has joined #lisp
mmohammadi9812 has joined #lisp
Nikotiini has joined #lisp
theothor` has joined #lisp
andreyorst has quit [Ping timeout: 246 seconds]
albusp has joined #lisp
abhixec has quit [Ping timeout: 264 seconds]
albusp has quit [Client Quit]
theothor` has quit [Remote host closed the connection]
theothor` has joined #lisp
iskander has joined #lisp
iskander- has quit [Ping timeout: 260 seconds]
haom has joined #lisp
haom has quit [Client Quit]
karlosz has joined #lisp
h4ck3r9696 has joined #lisp
theothor` has quit [Ping timeout: 264 seconds]
gutter has quit [Read error: Connection reset by peer]
gutter has joined #lisp
gutter has quit [Remote host closed the connection]
iskander- has joined #lisp
iskander has quit [Ping timeout: 272 seconds]
theothor` has joined #lisp
andreyorst has joined #lisp
pfdietz has joined #lisp
andreyorst has quit [Remote host closed the connection]
andreyorst has joined #lisp
ralt has joined #lisp
elflng has quit [Ping timeout: 240 seconds]
theothor` has quit [Ping timeout: 240 seconds]
iskander has joined #lisp
iskander- has quit [Ping timeout: 240 seconds]
<ex_nihilo> /quit
ex_nihilo has quit [Quit: Leaving]
elflng has joined #lisp
theothor` has joined #lisp
elflng has quit [Ping timeout: 246 seconds]
mindCrime has quit [Excess Flood]
mindCrime has joined #lisp
pyc_ has quit [Remote host closed the connection]
pyc has joined #lisp
orivej has quit [Read error: Connection reset by peer]
orivej has joined #lisp
elflng has joined #lisp
dbotton has quit [Quit: Leaving]
shka_ has joined #lisp
gaqwas has joined #lisp
pve has joined #lisp
autosnek_ has joined #lisp
theothor` has quit [Ping timeout: 246 seconds]
autosnek_ has quit [Client Quit]
hendursaga has joined #lisp
hendursa1 has quit [Ping timeout: 268 seconds]
iskander has quit [Ping timeout: 240 seconds]
iskander- has joined #lisp
theothor` has joined #lisp
surabax has joined #lisp
galex-713 has quit [Ping timeout: 265 seconds]
theothor` has quit [Ping timeout: 264 seconds]
kini has quit [Ping timeout: 264 seconds]
krkini has joined #lisp
galex-713 has joined #lisp
toorevitimirp has quit [Remote host closed the connection]
toorevitimirp has joined #lisp
anticrisis has quit [Read error: Connection reset by peer]
theothor` has joined #lisp
theothor` has quit [Ping timeout: 240 seconds]
theothor` has joined #lisp
heisig has joined #lisp
theothor` has quit [Ping timeout: 264 seconds]
zacts has quit [Quit: leaving]
theothor` has joined #lisp
sauvin has quit [Ping timeout: 272 seconds]
uehhtnefa^ has quit []
sauvin has joined #lisp
theothor` has quit [Read error: Connection reset by peer]
theothor` has joined #lisp
theothor` has quit [Ping timeout: 265 seconds]
theothor` has joined #lisp
hnOsmium0001 has quit [Quit: Connection closed for inactivity]
theothor` has quit [Remote host closed the connection]
sauvin_ has joined #lisp
liberliver has joined #lisp
sauvin has quit [Ping timeout: 260 seconds]
sauvin_ is now known as Sauvin
<jmercouris> beach: I figured that out after explanation from everyone else :-D
<beach> Yes. Sorry for not reading up first.
<beach> jmercouris: I recommend you watch those videos though.
<beach> You seem to be interested in knowing how it is done.
Lord_of_Life has quit [Ping timeout: 240 seconds]
Lord_of_Life has joined #lisp
karlosz has quit [Quit: karlosz]
<beach> ... or not, I guess.
gzj has joined #lisp
theothornhill has joined #lisp
toorevitimirp has quit [Remote host closed the connection]
pfdietz has quit [Quit: Ping timeout (120 seconds)]
cage_ has joined #lisp
Inline has joined #lisp
vegansbane696 has quit [Quit: The Lounge - https://thelounge.chat]
mindCrime has quit [Ping timeout: 264 seconds]
davd33 has joined #lisp
davd33 has quit [Read error: Connection reset by peer]
gzj has quit [Remote host closed the connection]
andreyorst has quit [Ping timeout: 240 seconds]
skapata has joined #lisp
imode has quit [Ping timeout: 240 seconds]
theothornhill has quit [Ping timeout: 264 seconds]
vegansbane696 has joined #lisp
andreyorst has joined #lisp
glz has joined #lisp
glz has quit [Client Quit]
theothornhill has joined #lisp
ralt has quit [Quit: Connection closed for inactivity]
lotuseater has quit [Remote host closed the connection]
lotuseater has joined #lisp
orivej has quit [Ping timeout: 246 seconds]
hylisper has joined #lisp
orivej has joined #lisp
hylisper has quit [Client Quit]
liberliver has quit [Ping timeout: 240 seconds]
orivej has quit [Ping timeout: 264 seconds]
stoneglass has joined #lisp
random-nick has joined #lisp
VincentVega has joined #lisp
<VincentVega> Just got meself (gensym) to return two #:G0's nearly in a row. Thinking it has something to do with that reproducability rationale that I read about in one of the sbcl bugs. Currently working out a minimal example (which is proving to be a tad tricky), any insights would be appreciated...
<VincentVega> (or foresights)
<phoe> is it inside setf expansions?
<VincentVega> yes
<VincentVega> well, it was in a let g (gensym) at first, does it make a difference?
<VincentVega> let me read that
<phoe> not really, it's just the gensym name
gzj has joined #lisp
<VincentVega> Interesting. Can't say I really understand this bug to say for sure that this is the same one at this point, but yeah, it does look like it got the same roots. Thanks for the link.
<phoe> well, you could try going to #sbcl and post your problem, maybe also link this issue if it's related
<VincentVega> Sure, sounds like a good idea, will get this mve done now.
<phoe> don't know if it will get you anywhere, but might be worth a try
<VincentVega> yeah : )
<heisig> I recently promised I would start a collection of 'Common Lisp tweaks'. Well, here it is: https://github.com/marcoheisig/common-lisp-tweaks
<heisig> Feedback is most welcome.
<heisig> I intend to grow this list whenever I hear about a new trick on IRC, so newcomers won't have to dig through decades of IRC logs to find them.
zacts has joined #lisp
eden has joined #lisp
theothornhill has quit [Ping timeout: 256 seconds]
andreyorst has quit [Quit: andreyorst]
andreyorst has joined #lisp
gzj has quit [Remote host closed the connection]
gzj has joined #lisp
dbotton has joined #lisp
pve has quit [Ping timeout: 256 seconds]
pve has joined #lisp
perrier-jouet has quit [Quit: WeeChat 3.0]
<dbotton> Is there a way to get a clicki account? Seems like registration doesn't work
perrier-jouet has joined #lisp
ex_nihilo has joined #lisp
perrier-jouet has quit [Client Quit]
pve has quit [Ping timeout: 272 seconds]
toorevitimirp has joined #lisp
Inline has quit [Ping timeout: 272 seconds]
iskander- has quit [Ping timeout: 246 seconds]
iskander has joined #lisp
iskander- has joined #lisp
iskander has quit [Ping timeout: 260 seconds]
nij has joined #lisp
mmohammadi9812 has quit [Ping timeout: 264 seconds]
mmohammadi9812 has joined #lisp
iskander has joined #lisp
iskander- has quit [Ping timeout: 240 seconds]
<jmercouris> beach: yes, I’m interested in compiler things
<jmercouris> Which videos?
<beach> "Creating a Common Lisp implementation" from the online Lisp meeting.
<jmercouris> One thing I’ve been thinking about is that a defmethod is like a guard for a function call
<jmercouris> Which online lisp meeting? The one run by phoe?
<beach> Yes.
<jmercouris> Ok I’ll look it up
<nij> beach: thanks for the pointer
<beach> Sure.
<nij> if there's cl videos i'd like to watch
<nij> but youtube never tells me all
<beach> I would start with part 1.
<jmercouris> Part 1
<jmercouris> Ok watching now
<nij> i've added them to my download que
iskander has quit [Ping timeout: 240 seconds]
iskander- has joined #lisp
hiroaki has joined #lisp
theothornhill has joined #lisp
<phoe> oh boy it's been a while since the last meeting
<beach> Yes, loke was supposed to do one.
<phoe> I got a few offers, but none of them fully materialized yet
<beach> ... about Climaxima.
gzj has quit [Ping timeout: 240 seconds]
VincentVega has quit [Quit: Ping timeout (120 seconds)]
VincentVega has joined #lisp
<jmercouris> Well so far you’ve convinced me not to do it in C lol
<beach> That's the point. :)
enzuru has quit [Ping timeout: 240 seconds]
iskander has joined #lisp
iskander| has joined #lisp
perrier-jouet has joined #lisp
<jmercouris> I had been asking about the unique set of basic operators about a year ago i think
iskander- has quit [Ping timeout: 240 seconds]
<beach> Yes, and there is no unique set.
<jmercouris> At the time I couldn’t articulate what I was trying to describe, but that is it!
pfdietz has joined #lisp
<jmercouris> That’s rather unfortunate
<beach> The paper by Baker is good. He explains various ways of implementing Common Lisp special operators using other Common Lisp special operators, and often the other way around too.
rgherdt has joined #lisp
madage has quit [Ping timeout: 268 seconds]
<jmercouris> I’ll put that on my list
<jmercouris> One thing that I think about a lot is maybe it would have been better if the default was doubly linked lists in lisp
iskander has quit [Ping timeout: 264 seconds]
<jmercouris> I think it would improve performance for so many operations
<nij> yeah. why isn't that the default?
<beach> Instead of the existing lists?
<heisig> jmercouris: Noooo!
<beach> jmercouris: That would break almost every aspect of the semantics of large parts of Common Lisp.
<heisig> If you are smart, every operation on lists is already O(1). And singly-linked lists help create beautiful recursive programs.
<jmercouris> If you are smart?
<jmercouris> I think there are some algorithms that would be simpler to write with doubly linked lists
<jmercouris> Perhaps I am not smart enough. :-D
<beach> jmercouris: If you have (defparameter *l0* (list 'a 'b 'c ...)) then (defparameter *l1* (cons 1 *l0*)) and (defparameter *l2* (cons 2 *l0*)), would then (rest *l1*) and (rest *l2*) be EQ with doubly linked lists?
andreyorst has quit [Ping timeout: 246 seconds]
<jmercouris> Ambiguous :-D
<heisig> jmercouris: Insertion at the front is O(1). Removal from the front is O(1). All you have to do is turn the list the right way round.
<heisig> That works 95% of the time.
<jmercouris> Sometimes you want to look back without remembering stuff behind you
<jmercouris> beach: I see the problem, yes
<nij> Has anyone thought of making "notes" on discussion on #lisp, as the conversation here has been logged.
<jmercouris> We are a tribal pre writing community
<jmercouris> We store everything in the oral traditions of our elders
<nij> Namely, now we are discussing why singly-linked list is the default. Maybe there could be a way to add a summary quickly that refers to this part of conversation?
<jmercouris> You may consult with the oracle minion for answers to your deepest questions
<nij> As time goes on, we can make a referrable and usable lisp knowledge database.
theothornhill has quit [Ping timeout: 265 seconds]
<beach> nij: While there are a few subjects with recurring questions, singly-linked vs doubly-linked lists as the default in Lisp is not one of them.
<heisig> jmercouris: As for looking behind - if you only need to look a fixed number of list elements behind you, you an scan the list and keep track of the last K elements you just visited.
<jmercouris> Yeah, I know, but that require another data structure
<jmercouris> Im just brainstorming here
<jmercouris> It could and probably is a bad idea
ebrasca has joined #lisp
<jmercouris> beach: very nice video, I learned a lot
<jmercouris> It answered quite some questions I’ve had for a while
<jmercouris> Thanks for taking the time to make it
krkini has quit [Remote host closed the connection]
kini has joined #lisp
<beach> jmercouris: Sure.
<beach> Glad you liked it.
<nij> beach: yeah, but it'd be nice if we can make summaries and annotations easily..
<nij> and, as time goes on, a compilation of summaries.
Bike has joined #lisp
<beach> It's a big task, but feel free to start it if you like.
jeosol has joined #lisp
aeth has quit [Ping timeout: 272 seconds]
aeth has joined #lisp
saganman has quit [Ping timeout: 272 seconds]
aartaka has quit [Read error: Connection reset by peer]
madage has joined #lisp
villanella has joined #lisp
zacts has quit [Quit: leaving]
nij` has joined #lisp
Josh_2 has joined #lisp
nij` has quit [Client Quit]
nij` has joined #lisp
<Josh_2> When using formatter, what do I pass as the stream arg to have it output as a string?
nij has quit [Ping timeout: 240 seconds]
<phoe> nil, I guess?
<Josh_2> I tried that
<phoe> oh wait
<phoe> clhs formatter
<phoe> this binds the standard output
nij` has left #lisp [#lisp]
<phoe> so you'd need to w-o-t-s it
<Nilby> You don't pass it to formatter, you pass it when you call the result of formatter.
<Josh_2> use a stream and stream to string it?
<phoe> (with-output-to-string (s) (funcall (formatter "~A ~A") s 42 24)) ;=> "42 24"
<Xach> SBCL will translate constant format strings into formatter automagically
<Xach> (or equivalent)
<Josh_2> ah right
<pfdietz> I had a situation that looked like (format nil (if <form> <string1> <string2>) ...), which I think runs faster if the IF parts were strength reduced with calls to formatter.
gutter has joined #lisp
gutter has quit [Read error: Connection reset by peer]
toorevitimirp has quit [Remote host closed the connection]
gutter has joined #lisp
orivej has joined #lisp
Wezl has joined #lisp
pfdietz has quit [Ping timeout: 248 seconds]
Guest7312 has joined #lisp
andreyorst has joined #lisp
krid has joined #lisp
jprajzne has joined #lisp
<Posterdati> hi
<Posterdati> so cffi + gsll are broken agai under OpenBSD + SBCL :) fine!
frodef has joined #lisp
Guest7312 has quit [Quit: Leaving]
gzj has joined #lisp
ym has quit [Quit: Leaving]
gzj has quit [Ping timeout: 240 seconds]
h4ck3r9696 has left #lisp [#lisp]
abhixec has joined #lisp
stoneglass has quit [Quit: stoneglass]
<[d]> <a​gumonkey#6435> jmercouris how is the browser going
<phoe> agumonkey: where is this discord bot bridged to?
zaquest has quit [Quit: Leaving]
Wezl has quit [Ping timeout: 258 seconds]
jprajzne has quit [Quit: Leaving.]
Guest7312 has joined #lisp
rogersm has joined #lisp
Gromboli has joined #lisp
frodef has quit [Remote host closed the connection]
frodef has joined #lisp
imode has joined #lisp
frodef has quit [Remote host closed the connection]
<rogersm> Is there any portable advise implementation
<rogersm> ?
frodef has joined #lisp
<Xach> rogersm: no
<Xach> yes
<rogersm> thx
brethland has joined #lisp
brethland has quit [Client Quit]
<phoe> seems a bit more complete
ebrasca has quit [Remote host closed the connection]
aartaka has joined #lisp
zaquest has joined #lisp
bitmapper has quit [Quit: Connection closed for inactivity]
jonatack has quit [Ping timeout: 240 seconds]
VincentVega has quit [Ping timeout: 248 seconds]
jonatack has joined #lisp
Lycurgus has joined #lisp
perrier-jouet has quit [Quit: WeeChat 3.0]
<rogersm> I think first one is enough for my needs
luckless has quit [Quit: luckless]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
cods has quit [Ping timeout: 260 seconds]
cods has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
andreyorst is now known as andreyorst_
SpaceIgor2075 has joined #lisp
waleee-cl has joined #lisp
heisig has quit [Quit: Leaving]
v0|d has joined #lisp
andreyorst has joined #lisp
andreyorst_ has quit [Quit: andreyorst_]
<jmercouris> The browser is going well, please use the #nyxt channel for discussion about it :-)
hnOsmium0001 has joined #lisp
perrier-jouet has joined #lisp
cracauer has joined #lisp
luni has joined #lisp
devon has joined #lisp
rogersm has quit [Quit: Leaving...]
aartaka has quit [Read error: Connection reset by peer]
aartaka has joined #lisp
Gromboli8 has joined #lisp
Gromboli has quit [Ping timeout: 264 seconds]
Gromboli8 is now known as Gromboli
aartaka has quit [Read error: Connection reset by peer]
aartaka_d has joined #lisp
jeosol has quit [Quit: Ping timeout (120 seconds)]
orivej has quit [Ping timeout: 240 seconds]
villanella has quit [Quit: villanella]
gioyik has joined #lisp
orivej has joined #lisp
aartaka_d has quit [Ping timeout: 264 seconds]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
theothornhill has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
bjorkintosh has quit [Quit: Leaving]
nij has joined #lisp
<nij> `$ sbcl` opens an sbcl repl in terminal. What should I do to launch another repl that connects to the same running instance?
<nij> A way to virtually do this is to use swank.. but that's another layer. I hope there's a way to do it directly. (c.f. https://www.reddit.com/r/Common_Lisp/comments/4oe9me/is_it_possible_to_connect_to_a_repl/)
<nij> s/that's another layer/that requires another layer, thought standard,/
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
<phoe> hmmm
<phoe> I have no idea
<phoe> in theory there could be a sbcl-specific way that starts a socket that accepts netcat connections and spawns a new thread with a new REPL for each client
<phoe> but I don't know how to achieve that, maybe #sbcl would have a hack for that
<phoe> I'd just use swank though.
amb007 has joined #lisp
<nij> I had that, but it's very bareboned.
<nij> Lemme post it.. hold on.
<nij> The problem with this is that.. on the second instance, I don't get the full experience of a nice repo.
<nij> phoe: How about this. With the first sbcl launched in a terminal, how to connect to it from SLIME?
anticrisis has joined #lisp
abhixec has quit [Ping timeout: 264 seconds]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
<phoe> (swank:create-server :port 4005 :dont-close t)
<phoe> then M-x slime-connect
Lycurgus has quit [Quit: Exeunt]
jeosol has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
mindCrime has joined #lisp
<nij> Hmm.. ok. I cannot figure out what M-x slime-connect really does.. but guess that's the only clean way so far to do it.
<nij> I'd need a nice repl anyway at the end, so using slime/sly makes sense.
<phoe> exactly
<nij> I'm just overthinking that maybe in the future, I'd need to do this remotely.
<nij> And having emacs running by root remotely sounds like a dangerous idea.
<_death> emacs running by root?
<nij> But anyway.. I'm one more step closer to replacing my shell with a cl-repl ;D
<nij> _death: Uh, I mean, to run emacs as root.
<_death> why would you need to do that?
<nij> I have a curfew daemon that will curfew my computer usage.
<nij> It needs to be run by root.
pfdietz has joined #lisp
<nij> (curfew daemon is written in common lisp, and is supposed to be run as a cl thread)
luni has quit [Quit: Connection closed]
<nij> I might want to query the daemon or send signals to it
<nij> Does that make sense @@?
<_death> if I understand you correctly, the daemon runs as root, and the daemon would have a swank server.. emacs (the client) needs not run as root, though if it connected to a swank server running as root that would indeed be a problem
<nij> yeah..
<_death> if you run the daemon as root want to communicate with it, the protocol should likely be very constrained, so you wouldn't send lisp forms to evaluate as-is
<nij> i see
<SpaceIgor2075> Hello! Is there a way to setup clojure on windows without powershell?
<_death> so swank is not a good solution for that and you'd want to write your own mechanism
<nij> OH no :(
<phoe> SpaceIgor2075: #clojure might be better
<phoe> you wandered into a lair of Common Lisp programmers
<nij> Yeah.. if root runs sbcl with a swank port open, anyone that connects to that port has access to the repl, and in practice, the root's privileg.
<nij> SpaceIgor2075: #lisp is a channel for common-lisp. General lisp questions go to ##lisp, and clojure questions go to #clojure :)
<SpaceIgor2075> okay
attila_lendvai has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
<shinohai> The thought of Windows + Clojure sounds like better emetic than syrup of ipecac.
amb007 has joined #lisp
<nij> _death: Wait.. isn't that weird? If connecting to an sbcl repl means access to the user' (who ran it) privilege, why wouldn't connecting to a swank server require a user password?
<nij> Otherwise, openning a swank server in local network means anyone here can mess with my machine!
dbotton has quit [Quit: This computer has gone to sleep]
<_death> nij: you have a firewall for that.. and on a local network everyone trusts everyone anyway
theothornhill has quit [Ping timeout: 256 seconds]
<_death> nij: if you want to let only authorized clients connect, you can then set up an ssh tunnel, like you may do on the internet
frodef` has joined #lisp
frodef has quit [Ping timeout: 264 seconds]
rogersm has joined #lisp
Wezl has joined #lisp
TMA has quit [Ping timeout: 264 seconds]
<nij> _death: Do you mean this? 1. setup a localhost swank server. 2. let others connect to localhost via ssh?
<nij> (I'm still developing my networking knowledge from scratch.. so i might miss some basic stuff.)
TMA has joined #lisp
<phoe> bind the socket to 127.0.0.1 - this way it won't get exposed to the wider network and the only way of connecting will be local connections, e.g. a SSH tunnel
<nij> I see.
<nij> It's handy. OK.
<_death> nij: yes, and the port can be filtered so only local access is allowed.. the ssh tunnel can deal with that..
<nij> But it's still not too handy if I want to allow my running repl *PARTIALLY* to someone else.
<nij> Is there a package that does that?
<_death> nij: I wrote https://github.com/death/ssh-tunnels to help with ssh tunnels in emacs
<_death> nij: what does "partially" mean
<nij> Hmm.. I'm thinking that every commands sent from that inferior user will be first wrapped with the user's identity.
<phoe> sandboxing CL is a very hard thing to do
<nij> And then the command with the identity will be taken care separately.
<phoe> a basic assumption is that, if someone owns a REPL, they own the whole image.
<nij> MMmm what does sandboxing here means?
<phoe> only allowing a user to execute some subset of available commands
<nij> I see.
<phoe> basically allowing a possibly hostile user to access your CL image
<nij> that's not good :(
<_death> nij: there is no widespread solution.. there are things like cl-evalbot, and a real sandbox could be a virtual machine
<nij> I want my root launches a repl that can be accessed by root later.
<phoe> oh, that works
<nij> phoe: how?
<phoe> if you want to allow root to access the REPL, then root already has root permissions
<phoe> the only issue is ensuring that only root has access to it, somehow.
<nij> rephrase: I want root to open a repl at boot, which can be later accessed by root.
<nij> Is that possible?
<phoe> hmmmmm, maybe you could force swank to connect via a unix local socket that is only accessible by root
<_death> nij: I think there is also a slime pull request that sets up a connection using unix domain sockets.. but I've not looked into it
<phoe> oh yes, this
<phoe> ensure that the socket is owned by root:root and has permissions 600 - should be enough
<_death> also, slime has something with a slime-secret file that may work?
<phoe> hm
<phoe> maybe that, too
<rogersm> In general, there's not a lot of benefits with local unix sockets and some downsides
<rogersm> and why do you want root to access the REPL?
<nij> to debug, to inspect, to change local state .. etc
<nij> I just adore the idea that you are able to inspect all running instances at any time
<rogersm> the lisp image?
<nij> including scripts that are run by root
<rogersm> ah! ok
<nij> yeah..
<nij> I can get rid of systemd even with this.
<rogersm> if you need root access, that's ok
<nij> (which seems to be hard to debug)
<nij> and it will be portable.
<rogersm> if you want to get rid of systemd
<nij> cuz sbcl takes care of the mess for me
<rogersm> use a unix-like system without systemd
<nij> no that's not the only objective
<rogersm> (they work great)
<nij> rogersm: i will eventually move to guix+shepherd
<rogersm> but re-inventing the wheel is extremely difficult
<nij> but im noobie.. it will take me some time
<nij> rogersm: yeah im aware of. But that's just one of the objectives.
<rogersm> my recommendation is to start with some straightforward setup
<rogersm> easy
<rogersm> and grow from there
<_death> basically if you have a ~/.slime-secret file containing something (e.g., a uuid) only those who can read it can respond to swank's challenge
<nij> The grand goal (of mine) is still to be able to talk to any instance at any time.
<_death> correctly
<Nilby> I used to telnet to the lisp machines repl. It wouldn't let me change anything and many functions were restricted, until you authenticated as a user. There was no such thing as root.
<_death> or rather, know its contents..
<nij> I think I will try phoe's method first, namely to secure the socket swank creates.
<nij> By making sure it's at mod 600 and owned by root:root
__jrjsmrtn__ has quit [Quit: Bye !]
Wezl has quit [Ping timeout: 258 seconds]
theothornhill has joined #lisp
__jrjsmrtn__ has joined #lisp
theruran has quit [Quit: Connection closed for inactivity]
<nij> ------
<nij> Hmm.. I cannot find where the socket is created by (swank:create-server :port 2718).. any idea?
<Josh_2> How do I parse a float from a string?
<nij> (parse-float "123") => 123.0, 3
<nij> (parse-float "123.1" :start 1 :radix 5 :type 'double-float) => 13.2d0, 5
aartaka has joined #lisp
rogersm has quit [Remote host closed the connection]
rogersm has joined #lisp
<Josh_2> Thanks nij
rogersm has quit [Remote host closed the connection]
<nij> yw :-)
eden has quit [Ping timeout: 268 seconds]
SpaceIgor2075 has quit [Ping timeout: 265 seconds]
theothornhill has quit [Remote host closed the connection]
cage_ has quit [Quit: Leaving]
jdormit[m] is now known as jdormit
Wezl has joined #lisp
frodef` has quit [Ping timeout: 240 seconds]
rozenglass has quit [Remote host closed the connection]
rozenglass has joined #lisp
rozenglass has quit [Remote host closed the connection]
rozenglass has joined #lisp
rozenglass has quit [Remote host closed the connection]
akoana has joined #lisp
mindCrime has quit [Excess Flood]
mindCrime has joined #lisp
shka_ has quit [Ping timeout: 264 seconds]
jasbrg has joined #lisp
quazimodo has quit [Remote host closed the connection]
galex-713 has quit [Ping timeout: 265 seconds]
thmprover has joined #lisp
<Josh_2> How can I convert a stream to an octet array?
<phoe> convert?
<phoe> you mean read everything off it until EOF?
<phoe> if yes, then alexandria:read-stream-content-into-byte-vector
<Josh_2> pretty much yes
galex-713 has joined #lisp
enzuru has joined #lisp
ukari has joined #lisp
renzhi has joined #lisp
nij has quit [Quit: ERC (IRC client for Emacs 27.1)]
Wezl has quit [Read error: Connection reset by peer]
u0_a61 has joined #lisp
ted_wroclaw has joined #lisp
Iolo has quit [Quit: ZNC 1.7.5+deb4 - https://znc.in]
<Josh_2> I ended up using flexi-streams
Iolo has joined #lisp
Aurora_v_kosmose has quit [Remote host closed the connection]
Aurora_v_kosmose has joined #lisp
Guest7312 has quit [Quit: Leaving]
<Josh_2> is there a library around that allows me to implement something like <command> <various flags> <different options based on flags> ?
vhost- has quit [Quit: WeeChat 2.8]
<Josh_2> I can implement myself but cba
<Xach> cba?
<Josh_2> cant be asked
<Josh_2> it might actually cant be arsed :think:
vhost- has joined #lisp
<Josh_2> I will implement with a nice hash table if one does not exist already
surabax has quit [Quit: Leaving]
gioyik has quit [Quit: WeeChat 3.0]
<aeth> it definitely has to exist because it's a common problem
<aeth> (odds are it only does 80% of what you want to do, though)
<Josh_2> ha yeh
<Xach> Josh_2: wait, do you mean like a command-line command, not a lisp "command"?
adam4567 has joined #lisp
adam4567 has quit [Client Quit]
<Josh_2> lisp, basically getting a string like "compass -x 5 -y 5" that would return results higher than x 5 and y 5 etc
adam4567 has joined #lisp
<aeth> oh, not command line, then
<Xach> approximately command-line though.
<Josh_2> this is in lisp and the arguments are not sent from the command line but from a user
<Josh_2> yes basically the same
<Josh_2> from a user over the network
<Xach> Josh_2: there are one hundred thousand command-line parsing libraries. if you can split your command by whitespace, maybe some of them could help.
adam4567 has left #lisp [#lisp]
<Josh_2> well thats what I'm looking for
Nilby has quit [Ping timeout: 264 seconds]
ted_wroclaw has quit [Quit: Textual IRC Client: www.textualapp.com]
rogersm has joined #lisp
midre has quit [Ping timeout: 264 seconds]
sxmx has quit [Quit: WeeChat 2.9]
midre has joined #lisp
rogersm has quit [Ping timeout: 240 seconds]
<Xach> so many
<Xach> maybe even more than one hundred thousand
VincentVega has joined #lisp
<no-defun-allowed> Two hundred thousand even?
<phoe> every time you mention command line parsing that number increases by ten
abhixec has joined #lisp
sxmx has joined #lisp
dbotton has joined #lisp
midre has quit [Ping timeout: 272 seconds]
midre has joined #lisp
enzuru has quit [Ping timeout: 272 seconds]
theruran has joined #lisp
abhixec has quit [Ping timeout: 272 seconds]
dbotton has quit [Quit: This computer has gone to sleep]
igemnace has joined #lisp
<Gnuxie[m]> :Ugh.pdf scream:
karlosz has joined #lisp
* no-defun-allowed uploaded an image: barf-bag.jpg (51KiB) < https://matrix.org/_matrix/media/r0/download/matrix.org/SeOkMBNFDtcFGVwFlZUqnXjx/barf-bag.jpg >
<no-defun-allowed> this is so sad can we have a define-application-command
<no-defun-allowed> Er, clim:define-command rather
<no-defun-allowed> But I think Gnuxie 💜🐝 is thinking of the book cover: <https://upload.wikimedia.org/wikipedia/en/7/77/UNIX-HATERS_Handbook_cover_ISBN_1-56884-203-1.png>
gaqwas has quit [Remote host closed the connection]
gaqwas has joined #lisp
VincentVega has quit [Quit: Ping timeout (120 seconds)]
jeosol has quit [Quit: Ping timeout (120 seconds)]
attila_lendvai has quit [Ping timeout: 256 seconds]
<Gnuxie[m]> Yepp
<Xach> I have that book, and the original barf bag that came with it
<Xach> it is a treasured artifact
<no-defun-allowed> Did you ever use the bag?
<no-defun-allowed> (That makes holding onto it weirder.)
gaqwas has quit [Ping timeout: 272 seconds]
enzuru has joined #lisp
orivej has quit [Ping timeout: 264 seconds]
anticrisis_ has joined #lisp
mparlaktuna has joined #lisp
ted_wroclaw has joined #lisp
anticrisis has quit [Ping timeout: 240 seconds]
mparlaktuna has quit [Client Quit]
mparlaktuna has joined #lisp
dbotton has joined #lisp
aeth has quit [Ping timeout: 240 seconds]
rogersm has joined #lisp
aeth has joined #lisp
dbotton has left #lisp ["Leaving"]
abhixec has joined #lisp
rogersm has quit [Ping timeout: 246 seconds]
tessier_ has joined #lisp