jackdaniel changed the topic of #commonlisp to: Common Lisp, the #1=(programmable . #1#) programming language | Wiki: <https://www.cliki.net> | IRC Logs: <https://irclog.tymoon.eu/libera/%23commonlisp> | Cookbook: <https://lispcookbook.github.io/cl-cookbook> | Pastebin: <https://plaster.tymoon.eu/>
samedi has joined #commonlisp
prokhor__ has quit [Ping timeout: 252 seconds]
pve has quit [Quit: leaving]
pawa2 has quit [Quit: leaving]
shka has quit [Ping timeout: 248 seconds]
masinter has quit [Ping timeout: 268 seconds]
Lycurgus has joined #commonlisp
Lycurgus has quit [Changing host]
Lycurgus has joined #commonlisp
KvL has quit [Quit: ZNC 1.8.2+deb2build5 - https://znc.in]
random-nick has quit [Ping timeout: 260 seconds]
Lord_of_Life has quit [Ping timeout: 246 seconds]
Lord_of_Life_ has joined #commonlisp
Lord_of_Life_ is now known as Lord_of_Life
samedi has quit [Remote host closed the connection]
random-jellyfish has quit [Quit: Client closed]
waleee has quit [Ping timeout: 246 seconds]
istewart has joined #commonlisp
KvL has joined #commonlisp
terrorjack has quit [Quit: The Lounge - https://thelounge.chat]
terrorjack has joined #commonlisp
hineios6 has joined #commonlisp
hineios has quit [Ping timeout: 260 seconds]
hineios6 is now known as hineios
luis has quit [Quit: The Lounge - https://thelounge.chat]
luis has joined #commonlisp
marsia has quit [Ping timeout: 255 seconds]
marsia has joined #commonlisp
beach` has joined #commonlisp
beach has quit [Ping timeout: 260 seconds]
marsia has quit [Ping timeout: 248 seconds]
marsia has joined #commonlisp
beach` is now known as beach
rtoy has joined #commonlisp
azimut has quit [Remote host closed the connection]
azimut has joined #commonlisp
_paul0 has joined #commonlisp
paul0 has quit [Remote host closed the connection]
tyson2 has quit [Remote host closed the connection]
masinter has joined #commonlisp
azimut has quit [Ping timeout: 255 seconds]
istewart has quit [Quit: Konversation terminated!]
marsia has quit [Ping timeout: 252 seconds]
aartaka has joined #commonlisp
marsia has joined #commonlisp
elderK has joined #commonlisp
<elderK> Hey guys!
marsia has quit [Ping timeout: 255 seconds]
aartaka has quit [Ping timeout: 246 seconds]
aartaka has joined #commonlisp
<hirez> hey everyone curious about bit shifting. I looked in the hyperspec and I didnt see a way to perform a logical shift. I see ash but I do not need to concern myself with the sign bit - I am dealing with ASCII integers.
<hirez> Is there an existing function in CL (sbcl) to do this?
<beach> Hello elderK.
<beach> Hello hirez.
<hirez> hi beach
<beach> hirez: What is an ASCII integer?
<hirez> mm 'A' = 0x41, B = 0x42, etc
<beach> hirez: There is no "sign bit" in Common Lisp. A non-negative integer is considered to start with an infinite number of 0s and a negative one with an infinite number of 1s.
<elderK> hirez: I remember doing some work a few years back where I did a lot of shifting and stuff. I can't remember exactly what I did but keep in mind, integers for the most part are arbitrarily sized. You can use fixnums which like, restrict the range but generally, the sign bit is "infinitely far away."
<hirez> oh interesting that is unique
<hirez> no wonder only ash exists
<beach> hirez: Unique, perhaps, but also the only system that gives the right answer.
<beach> hirez: It is sad that most programming languages still get it wrong.
<hirez> elaborate. I've never heard it be called wrong to have logical vs. arithmetic
<beach> I meant the idea of having fixed-size numbers.
<hirez> oh I see, yeah I suppose my C brain things of integers as a certain size
<beach> Try adding 1 to the maximum integer in C.
<hirez> jinx
marsia has joined #commonlisp
<hirez> I guess that gives me more questions haha. If you have an infinite integer what method might be used to "box" it to a certain size. Surely a computer has no way to represent such things.
<beach> So in C, x + 1 > x is not necessarily true.
<beach> hirez: Infinity is just a way it is presented to the user, using the interface functions.
<elderK> hirez: I have the same problem. I'm coming from C/C++ and finding it hard to think differently :)
<beach> hirez: In practice, most implementations have an efficient implementation of FIXNUMs, that don't require boxing.
<elderK> beach: How do you make use of those fixnums?
<hirez> ah FIXNUM, ok. So, in CL if I ash a negative I can't magically make it positive?
<hirez> if so that's very nice.
<beach> hirez: You can negate it, sure: (- x)
<beach> elderK: Me? Only for optimization purposes. Normally, you won't care. The system does the right thing.
<hirez> The more I program common lisp the more I realize that it wasn't invented it was discovered.
<elderK> Cool :) I was wondering how much we need to care about efficiency when building in CL. I've been tinkering on and off over the past week and (stupidly) keep comparing things to C in my mind.
<elderK> How does CLOS compare in speed compared to using classes and stuff in C++? Is it within the same ballpark? Granted, it's not a fair comparison as CLOS is much more powerful.
<beach> hirez: Or, you can consider it the result of a few centuries of experience of the creators. As opposed to languages that are invented by a single insufficiently-trained person with little experience.
<hirez> beach: as a professional software developer you're preaching to the choir
<beach> hirez: Is that a misplaced modifier? If not, thank you for your good opinion about me. :)
<hirez> oh no just an expression indicating I totally agree
<hirez> so yes, good opinion :P
<beach> I am just remarking on your grammar error. :)
<hirez> loool true, I did as little as I could to skirt through english
<hirez> the GRE english portion was the worst for me :(
<beach> elderK: By CLOS, I assume you mean "generic functions". Most current systems use a derivative of PCL which was designed at a time when a memory operation and a register operation had roughly the same cost.
<beach> elderK: So I invented a new algorithm for generic dispatch that is used in SICL (which is still not finished) and in Clasp.
<beach> elderK: So the answer to your question is "It depends". Current versions of free Common Lisp implementations have some performance penalty in generic functions.
<beach> elderK: But there are very little intrinsic penalty in a system that uses modern compilation techniques.
<beach> s/are/is/
<elderK> Cool :) Will you be writing a paper about your technique? I'd love to learn about it.
<elderK> I've been reading through AMOP. It's been very interesting.
<beach> The paper has been written and published. Let me find a link for you...
<elderK> Awesome! Thank you!
<beach> elderK: It's the "fast generic functions" paper in this list: http://metamodular.com/SICL/
<ixelp> SICL documents
<beach> Yes, AMOP is a great book.
<beach> Not so well written, but the subject is great.
<elderK> Thank you, beach. I get the feeling I won't truly appreciate AMOP until I've been playing in CL for quite some time. For now, I've just been trying to rewrite TinyCLOS from Scheme, in CL, to make sure I understand how it works. I'm not really sure how to ramp up in CL other than just play :
<beach> I see.
<elderK> Are there any materials in particular that'd you'd recommend people read or study? Anything that you felt particularly useful to you as you grew experience in Lisp?
<beach> hirez: You are in good company. Once, one of my students asked me for advice, and he said "Having no publications, what do you suggest?", and I answered something like "Oh, but I do have lots of publications!". I am not sure he understood.
<hirez> haha it took me a couple reads to not implicitly ignore the comma
<beach> elderK: I am probably not the right person to ask. I have known Lisp for a long time (way before Common Lisp), and I can't point to any particular material. Most of what I have read in the past has added incremental knowledge. Like "On Lisp", "Lisp in Small Pieces", "The Anatomy of Lisp", "AMOP", etc.
<elderK> No problem :) Thank you for answering my questions.
<beach> Pleasure.
<hirez> Also thank you for answering my question. I've got some reading to do.
<beach> Sure.
<beach> elderK: Speaking of CLOS, as part of the SICL project, we have started to extract modules into separate, implementation-independent modules. We have started thinking about how to do that for CLOS, using modern implementation techniques. But we haven't had time to think very hard.
<beach> elderK: Perhaps you would like to do something like that?
<elderK> That would be interesting. You mean separating the high-level, portable stuff from the low-level specifics about how stuff like generic dispatch actually happens. Say, to optimize implementation for one or another architecture?
<beach> elderK: The thing is that AMOP assumes that CLOS is "bolted on" to a CLtL1 Common Lisp implementation, but my paper on removing metastability problems at bootstrapping time shows how a CLOS implementation much nicer and much simpler than PCL can be created.
<elderK> Definitely going to read your papers! It must be hard to optimize CLOS and still maintain the existing MOP interfaces.
<beach> elderK: As it turns out, generic dispatch can be done differently for different generic functions, so my technique can be included even for systems that otherwise use the PCL technique.
<elderK> Nice :) Switch strategy based on what's really needed for whatever generic.
<beach> Yes, there are a lot of details that must be taken care of to make things fast. The good thing about a separate repository is that there is then only one place to improve.
<beach> SICL CLOS has the right structure I think, but there are still optimizations that I haven't implemented yet.
<elderK> Sounds like there's going to be a lot of interesting developments in the coming future :)
<beach> Only if more people get involved. :)
<beach> My remaining life expectancy is less than 20 years, and there is more work to be done than that time allows. :)
aartaka has quit [Ping timeout: 268 seconds]
<beach> I shouldn't complain. Many people have already done lots of work. And we are trying to get more people excited about these projects.
<elderK> Gosh, I feel like it'd take me at least that long to really get any good at CL :P
aartaka has joined #commonlisp
<beach> Well, then, I hope you have a few more years after that at your disposal. :)
<elderK> Heh. Me too :)
<beach> It doesn't help that we are also trying to create an IDE for Common Lisp. *sigh*!
<elderK> Can I also learn about this IDE on your homepage? I'd be interested in seeing it.
<hirez> That has been a big desire of mine for a while. Emacs is great and all, but an IDE that was like LispWorks or something would be really cool.
<elderK> I've spent the past couple weeks also gaining familiarity with Emacs. It's been hard, after using Vim for a decade: It's proving worthwhile though, just for Slime alone. Still, it'd be pretty awesome if there were another, nicer, environment for working with Lisp.
<beach> elderK: I don't think we have anything complete written down. But we have several modules already, like Eclector, Clouseau, the CLIM listener, and I am working on Second Climacs.
<beach> hirez: I know exactly what you mean.
<elderK> hirez: I've never played with LispWorks although I have been itching to try out "Portable Genera."
<beach> elderK: SLIME (or perhaps Sly) is the best we have, but it is not good enough.
rgherdt has joined #commonlisp
<elderK> I'm not sure what value Genera would have other than just for fun.
<hirez> Its different certainly. I believe you can download a trial of it. It's not worth the $1500+ USD price tag but it is an instructive experience.
<elderK> I guess I'll try out the trial: I've seen their hobbyist version. Too limited and too steep for me.
<beach> elderK: That's another project (*sigh*): http://metamodular.com/closos.pdf
<elderK> :) I know what I'll be reading tonight :)
<beach> Heh!
<elderK> I was thinking while watching a Genera video: With a system that was so easily altered, where everything could be changed: How would you handle security?
<elderK> What would stop someone just popping open an inspector and bypassing login screens? Sure, you could make it such that parts of the system could not be modified but still: It would make for interesting problems.
<beach> elderK: You wouldn't. That's why I started specifying Closos that tries to solve those problems.
<beach> Closos has first-class global environments that are design to improve security.
<hirez> The idea of hot patching vulnerabilities is sexy though
<beach> hirez: Yes, but a password should be required at least.
<elderK> Aye :) I'll have to read your paper before I can discuss more.
<elderK> Have you guys heard of "object capability systems"?
<beach> I think so, yes.
<elderK> I read about them years ago and thought that capability-based security was pretty awesome. I haven't really got to play with any of that in day-to-day hacking but the ideas wowed me.
* beach has to go do some house chores.
<elderK> NP. It's time for me to head to bed :)
<elderK> Have a great day/night, guys!
masinter has quit [Ping timeout: 246 seconds]
kevingal has quit [Ping timeout: 246 seconds]
mrcom_ has quit [Ping timeout: 255 seconds]
mrcom has joined #commonlisp
masinter has joined #commonlisp
aartaka has quit [Ping timeout: 246 seconds]
aartaka has joined #commonlisp
emanuele6 has quit [Ping timeout: 255 seconds]
Lycurgus has quit [Ping timeout: 246 seconds]
pranavats has left #commonlisp [Disconnected: Hibernating too long]
admich has joined #commonlisp
emanuele6 has joined #commonlisp
aartaka has quit [Ping timeout: 255 seconds]
pranavats has joined #commonlisp
aartaka has joined #commonlisp
aartaka has quit [Ping timeout: 260 seconds]
random-jellyfish has joined #commonlisp
aartaka has joined #commonlisp
bjorkintosh has quit [Ping timeout: 246 seconds]
Inline has joined #commonlisp
Guest63 has joined #commonlisp
aartaka has quit [Ping timeout: 252 seconds]
aartaka has joined #commonlisp
<Guest63> Oh your fine personalities and good looks, cast your eye upon my humble
<Guest63> question here https://plaster.tymoon.eu/view/3672#3672, please!
quoosp has joined #commonlisp
<Shinmera> Try #clschool
attila_lendvai has joined #commonlisp
aartaka has quit [Ping timeout: 248 seconds]
aartaka has joined #commonlisp
pawa2 has joined #commonlisp
random-jellyfish has quit [Quit: Client closed]
quoosp has quit [Ping timeout: 252 seconds]
aartaka has quit [Ping timeout: 255 seconds]
aartaka has joined #commonlisp
pve has joined #commonlisp
shka has joined #commonlisp
elderK has quit [Quit: Connection closed for inactivity]
attila_lendvai has quit [Ping timeout: 252 seconds]
masinter has quit [Ping timeout: 255 seconds]
rgherdt_ has joined #commonlisp
rgherdt has quit [Ping timeout: 252 seconds]
Guest63 has quit [Ping timeout: 260 seconds]
chipxxx has joined #commonlisp
chip_x has quit [Ping timeout: 260 seconds]
Guest63 has joined #commonlisp
chip__ has joined #commonlisp
chipxxx has quit [Ping timeout: 246 seconds]
chipxxx has joined #commonlisp
chip__ has quit [Remote host closed the connection]
emanuele6 has left #commonlisp [WeeChat 3.8]
random-nick has joined #commonlisp
zxcvz has joined #commonlisp
jmdaemon has quit [Ping timeout: 246 seconds]
aartaka has quit [Ping timeout: 246 seconds]
zxcvz has quit [Client Quit]
inline__ has joined #commonlisp
Inline has quit [Ping timeout: 255 seconds]
<MetaYan> SBCL 2.3.2 released. Yieehaa!
chip_x has joined #commonlisp
chipxxx has quit [Ping timeout: 248 seconds]
prokhor has joined #commonlisp
Lycurgus has joined #commonlisp
Lycurgus has quit [Changing host]
Lycurgus has joined #commonlisp
karlosz has joined #commonlisp
chrcav has quit [Ping timeout: 252 seconds]
karlosz has quit [Client Quit]
_cymew_ has joined #commonlisp
chrcav has joined #commonlisp
X-Scale has joined #commonlisp
Lycurgus has quit [Quit: Exeunt: personae.ai-integration.biz]
pjb is now known as Guest4735
pjb has joined #commonlisp
Guest4735 has quit [Ping timeout: 246 seconds]
_cymew_ has quit [Ping timeout: 252 seconds]
X-Scale has quit [Quit: Client closed]
igemnace has joined #commonlisp
samedi has joined #commonlisp
pawa2 has quit [Ping timeout: 255 seconds]
chip__ has joined #commonlisp
chip_x has quit [Ping timeout: 255 seconds]
samedi has quit [Quit: Leaving]
karlosz has joined #commonlisp
masinter has joined #commonlisp
inline__ has quit [Quit: Leaving]
azimut has joined #commonlisp
_cymew_ has joined #commonlisp
KvL has quit [Quit: ZNC 1.8.2+deb2build5 - https://znc.in]
waleee has joined #commonlisp
KvL has joined #commonlisp
tyson2 has joined #commonlisp
Demosthenex has quit [Ping timeout: 246 seconds]
chip__ has quit [Remote host closed the connection]
chip__ has joined #commonlisp
Demosthenex has joined #commonlisp
_cymew_ has quit [Ping timeout: 246 seconds]
_cymew_ has joined #commonlisp
taichi has joined #commonlisp
mariari has quit [Ping timeout: 246 seconds]
taichi is now known as mariari
glaucon has joined #commonlisp
waleee has quit [Ping timeout: 246 seconds]
random-jellyfish has joined #commonlisp
jonatack has quit [Ping timeout: 268 seconds]
_cymew_ has quit [Ping timeout: 268 seconds]
Algernon69 has joined #commonlisp
chipxxx has joined #commonlisp
chip__ has quit [Ping timeout: 248 seconds]
igemnace has quit [Remote host closed the connection]
_cymew_ has joined #commonlisp
pranavats has left #commonlisp [Error from remote client]
pranavats has joined #commonlisp
eddof13 has joined #commonlisp
eddof13 has quit [Remote host closed the connection]
amoroso has joined #commonlisp
earl-ducaine has joined #commonlisp
glaucon has quit [Quit: Leaving.]
cage has joined #commonlisp
Guest63 has quit [Quit: Ping timeout (120 seconds)]
eddof13 has joined #commonlisp
<NotThatRPG> Guest63: ping?
_cymew_ has quit [Ping timeout: 265 seconds]
<jackdaniel> timeout
glaucon has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
Algernon69 has quit [Ping timeout: 264 seconds]
Guest63 has joined #commonlisp
attila_lendvai has joined #commonlisp
bjorkintosh has joined #commonlisp
bjorkintosh has joined #commonlisp
bjorkintosh has quit [Changing host]
kevingal has joined #commonlisp
_paul0 is now known as paul0
paul0 has joined #commonlisp
paul0 has quit [Changing host]
samedi has joined #commonlisp
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
eddof13 has joined #commonlisp
amoroso has quit [Quit: Client closed]
amoroso has joined #commonlisp
random-jellyfish has quit [Quit: Client closed]
waleee has joined #commonlisp
tyson2 has joined #commonlisp
jmdaemon has joined #commonlisp
rogersm has joined #commonlisp
glaucon has quit [Quit: Leaving.]
admich` has joined #commonlisp
admich has quit [Ping timeout: 255 seconds]
sweatshirt has joined #commonlisp
glaucon has joined #commonlisp
Inline has joined #commonlisp
_cymew_ has joined #commonlisp
<jcowan> A language without global variables and with lexical scope is an object capability system, according to the rule:
<jcowan> "Closures are poor man's objects, but then objects are poor man's closures, too."
<jcowan> The capabilities of a closure are the values of the variables closed over.
masinter has quit [Ping timeout: 268 seconds]
masinter has joined #commonlisp
_cymew_ has quit [Ping timeout: 268 seconds]
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
eddof13 has joined #commonlisp
amoroso has quit [Quit: Client closed]
Guest63 has quit [Quit: Client closed]
_cymew_ has joined #commonlisp
kevingal has quit [Ping timeout: 248 seconds]
theesm has quit [Ping timeout: 255 seconds]
theesm has joined #commonlisp
karlosz has quit [Quit: karlosz]
_cymew_ has quit [Quit: Konversation terminated!]
waleee has quit [Ping timeout: 246 seconds]
_cymew_ has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
<jeosol> Good morning all!
admich` has quit [Quit: ERC 5.4 (IRC client for GNU Emacs 28.2)]
jmbr has joined #commonlisp
jmbr has quit [Quit: ERC 5.4.1 (IRC client for GNU Emacs 30.0.50)]
jmbr has joined #commonlisp
jmbr has quit [Changing host]
jmbr has joined #commonlisp
<jeosol> what is the best way of handling and dealing with errors in my setup: I have several workflows that each compose of sub-workflows. finally, I'd chain the workflows together to run the whole computation. Often times things blow up in a sub-workflow and setup isn't the best in tracking things down. To give some context: workflow a: (progn (step-a1)
<jeosol> (step-a2) ...(step-a?)), workflow b: (progn (step-b1) (step-b2) (step-b?), and so on. Then I do sometime like (progn (workflow-a) (workflow-b) ...(workflow-c))
<jeosol> Of course each of the sub-workflows can be fairly complex (with many calls). And running this on the server to debug errors, not fun at all :-).
cosimone has joined #commonlisp
glaucon has quit [Read error: Connection reset by peer]
kevingal has joined #commonlisp
triffid has quit [Ping timeout: 255 seconds]
triffid has joined #commonlisp
tyson2 has joined #commonlisp
waleee has joined #commonlisp
attila_lendvai has quit [Ping timeout: 246 seconds]
kenran has joined #commonlisp
istewart has joined #commonlisp
pmwals09 has joined #commonlisp
waleee has quit [Ping timeout: 255 seconds]
cage has quit [Quit: rcirc on GNU Emacs 28.2]
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
eddof13 has joined #commonlisp
shka has quit [Ping timeout: 268 seconds]
waleee has joined #commonlisp
jmbr has quit [Quit: ERC 5.4.1 (IRC client for GNU Emacs 30.0.50)]
rwxrwxrwx has joined #commonlisp
epony has joined #commonlisp
pmwals09 has quit [Remote host closed the connection]
poselyqualityles has joined #commonlisp
chip_x has joined #commonlisp
chipxxx has quit [Ping timeout: 246 seconds]
son0p has quit [Ping timeout: 255 seconds]
ttree has joined #commonlisp
istewart has quit [Quit: Konversation terminated!]
chipxxx has joined #commonlisp
chip_x has quit [Ping timeout: 252 seconds]
tyson2 has quit [Remote host closed the connection]
rgherdt_ has quit [Remote host closed the connection]
_cymew_ has quit [Ping timeout: 248 seconds]
<jackdaniel> some progress with new McCLIM text gadgets (in video a pointer selection in action): http://turtleware.eu/static/paste/0401baaf91f711955d7c0489064985dae0859f5c-selection.webm
<_death> cool.. does it also work in the interactor pane?
<jackdaniel> it is planned to
<_death> great :)
<jackdaniel> the first pass will replace text-field and editor-pane gadgets, then I'll move to input-editing streams (interactor pane is one)
<jackdaniel> or, to be precise, interactor pane uses the input editing stream for its input
waleee has quit [Ping timeout: 264 seconds]
kenran has quit [Remote host closed the connection]
cosimone has quit [Ping timeout: 246 seconds]
epony has quit [Remote host closed the connection]
epony has joined #commonlisp
random-jellyfish has joined #commonlisp
<random-jellyfish> does "The Idiot's Guide to Special Variables and Lexical Closures" still apply today?
kagevf has quit [Remote host closed the connection]
waleee has joined #commonlisp
occ has quit [Ping timeout: 260 seconds]
waleee has quit [Ping timeout: 252 seconds]
<pjb> random-jellyfish: nothing changed in the standard, and no new standard were issued, so it should.
<pjb> this is not #python!
pranavats has left #commonlisp [Error from remote client]
<random-jellyfish> pjb when is it necessary to use (declare (special var)) ?
<pjb> very rarely: when you want to have a temporary, not global dynamic variable.
<pjb> (defun g () (declare (special var)) var) (defun f () (let ((var 42)) (declare (special var)) (g))) (f) #| --> 42 |#
<random-jellyfish> and if var wasn't declared special in f what would happen?
<random-jellyfish> actually I can copy paste and try in repl, silly me
<pjb> Then it would be a lexical variable, and in G it would be an undefined variable. So it wouldn't work.
<random-jellyfish> I see
<random-jellyfish> it is indeed of little practical value in most cases
<pjb> global dynamic variables (defined with defvar or defparameter) are used normally, with the advantage of being easily accessible for debugging.
Inline has quit [Remote host closed the connection]
Inline has joined #commonlisp
masinter has quit [Ping timeout: 268 seconds]
son0p has joined #commonlisp
pawa2 has joined #commonlisp
masinter has joined #commonlisp
cdegroot_ has joined #commonlisp
cdegroot has quit [Ping timeout: 268 seconds]
inline__ has joined #commonlisp
Inline has quit [Ping timeout: 265 seconds]