jackdaniel changed the topic of #lisp to: Common Lisp, the #1=(programmable . #1#) programming language<http://cliki.net/> logs:<https://irclog.whitequark.org/lisp,http://ccl.clozure.com/irc-logs/lisp/> | SBCL 1.4.5, CMUCL 21b, ECL 16.1.3, CCL 1.11.5, ABCL 1.5.0
kozy has joined #lisp
<Ober> is cl+j the best option for accessing jni from sbcl?
froggey has quit [Quit: Lost terminal]
<PuercoPop> Ober: wouldn't ABCL be the better option for accessing jni from Lisp?
Arcaelyx has joined #lisp
<Ober> friends don't let friends use abcl
<PuercoPop> Ober: Why?
<no-defun-allowed> o.o
* Ober wants to talk to java, not force my full program to run horribly slow.
<pjb> just say no to FFI. This includes JNI.
<no-defun-allowed> lol
<Ober> sure if you just want an introverted image with no access to the outside :P
<pjb> You can access the outside world thru sockets.
<no-defun-allowed> my programming style matches my personality
<no-defun-allowed> awfully introverted and uncomprehendible
<pjb> This is the week-end, but you can prepare for Monday: let's write Klingon programs at work!
<Ober> funny, using jni to access a star trek game
<pjb> For the record, I've already implemented points 12, 11, 9, 8, 7, 6, 4. I'm almost a beginner Klingon programmer :-)
<Ober> Santa Claus was a klingon...
<Ober> Hoh! Hoh! Hoh!
<pjb> Point 8 in particular ;-)
froggey has joined #lisp
<pjb> After that, you have to hunt after your code to kill it before it ransacks the galaxy…
<Ober> killing! killing! killing!
<pjb> (Happily, I did it before the Internet, so it didn't go too far away (but farther than I expected)).
<pjb> So in summary, make life of your coworker interesting: program like a Klingon!
<AeroNotix> point 7 had me chuckling
<pjb> You could architecture your applications like codewars.
<pjb> The good working of the program would rely on parts of the code successfully killing other parts at the right time.
<pjb> (bt:make-thread (lambda () (uiop:run-program "publish-to-appstore ~A" *myself*))) and have the test process kill the program before it can escape if it has any other bug…
jlarocco has quit [Ping timeout: 244 seconds]
regreg has joined #lisp
Oladon has joined #lisp
Kundry_Wag has joined #lisp
robotoad has quit [Quit: robotoad]
krwq has joined #lisp
pierpa has quit [Quit: Page closed]
<krwq> hey, do you perhaps know why doesn't ecl respect in-package inside of .eclrc? there seems to be noone active in #ecl
flazh1 has quit [Ping timeout: 264 seconds]
<Bike> doesn't respect?
<Bike> like you do (in-package) but it doesn't change the file the rc is loaded in?
<krwq> no, like I change package inside of rc but the package in repl is cl-user
<Bike> it probably just LOADs the file, and changes to *package* are erased after a file is loaded.
<krwq> do you know perhaps how to change package in repl then?
<krwq> in sbcl I just change in rc file
<Bike> in-package works in the repl too
<krwq> yes but I would like it to be my default
<krwq> not type it every single time by hand
<Bike> if ecl is just LOADing then i don't know of any way
<Bike> there might be an --eval flag you could use
<krwq> will try, thanks
<krwq> I just found C-c ~ by accident... pretty useful
<krwq> (slime-sync-package-and-default-directory)
dddddd has quit [Remote host closed the connection]
robotoad has joined #lisp
froggey has quit [Ping timeout: 252 seconds]
froggey has joined #lisp
flazh1 has joined #lisp
froggey has quit [Remote host closed the connection]
noobly has joined #lisp
noobly has left #lisp [#lisp]
sz0 has joined #lisp
NB0X-Matt-CA has quit [Excess Flood]
shifty has joined #lisp
NB0X-Matt-CA has joined #lisp
dented42 has joined #lisp
<drmeister> Hello lispers - how do i read a width from the argument list in format?
<drmeister> like (format t "~10a" "thing") - but I want to read the 10 from the argument list
<Bike> what do you mean read?
<Bike> oh, like the length is another argument?
<drmeister> Yes - 'v' - right?
<Bike> yeah
<drmeister> I don't like the CLHS description of format.
<drmeister> Thank you
dented42 has quit [Ping timeout: 272 seconds]
Arcaelyx has quit [Ping timeout: 264 seconds]
SenasOzys has quit [Remote host closed the connection]
Kundry_Wag has quit [Remote host closed the connection]
SenasOzys has joined #lisp
Kundry_Wag has joined #lisp
Arcaelyx has joined #lisp
ebzzry has quit [Ping timeout: 244 seconds]
Kundry_Wag has quit [Ping timeout: 252 seconds]
<drmeister> Bike: Remember when we were recently trying to run shebang scripts using sbcl - did you figure out why they stopped working?
<Bike> nope.
<drmeister> Well, all my profiling scripts stopped working - grrrrr.
jlarocco has joined #lisp
jlarocco has quit [Ping timeout: 252 seconds]
Kundry_Wag has joined #lisp
<beach> Good morning everyone!
FreeBirdLjj has joined #lisp
FreeBirdLjj has quit [Read error: Connection reset by peer]
Kundry_Wag has quit [Ping timeout: 252 seconds]
<no-defun-allowed> morning beach
FreeBirdLjj has joined #lisp
sz0 has quit [Quit: Connection closed for inactivity]
Kundry_Wag has joined #lisp
<drmeister> Does anyone use shebang scripts with sbcl?
<drmeister> This doesn't work:
<drmeister> This says it should: https://www.cliki.net/Unix%20shell%20scripting
<drmeister> So does the sbcl manual
<drmeister> SBCL 1.4.10
Bike has quit [Quit: Lost terminal]
Fare has quit [Ping timeout: 244 seconds]
vlatkoB has joined #lisp
Oladon has quit [Quit: Leaving.]
Kundry_Wag has quit [Ping timeout: 244 seconds]
Roy_Fokker has quit [Read error: Connection reset by peer]
mange has joined #lisp
<t3hyoshi> Huh, today, I learned Abuse is written in lisp.
Pixel_Outlaw has quit [Quit: Leaving]
<stylewarning> Ask me a cool Lisp question
jerme_ has joined #lisp
<beach> Sorry, can't think of any right now.
lagagain has joined #lisp
krwq has quit [Remote host closed the connection]
shifty has quit [Ping timeout: 272 seconds]
jlarocco has joined #lisp
<no-defun-allowed> stylewarning: how many cons could a conser cons if a conser could cons cons?
<no-defun-allowed> actually, remove all `er`s from that
asarch has quit [Quit: Leaving]
caltelt has quit [Ping timeout: 264 seconds]
Lycurgus has joined #lisp
rippa has joined #lisp
nika has joined #lisp
[6502] has joined #lisp
<[6502]> Hi... on CLHS description of unwind-protect it's written (second example) "If an exit occurs before completion of incf, the decf form is executed anyway, resulting in an incorrect value for *access-count*"
<[6502]> what kind of non-local exit could happen before the INCF ? (except may be if *access-count* is indeed a symbol-macro)
<trittweiler> it could be unbound
<trittweiler> there could be an interrupt
<trittweiler> it could be bound to a non-numerical value
<jackdaniel> then decf would error too
<jackdaniel> most likely reason is an interrupt indeed
<trittweiler> yes sure, just enumerating
<jackdaniel> (i.e timeout)
doubledup has joined #lisp
<trittweiler> it could be declared to have an upperbound (integer 0 100) and it has the value 100 before the incf. In that case the decf would work :)
<[6502]> for unbound or non-numerical decf should be as fine (as bad, that is)
<[6502]> what are interrupts in CL?
<trittweiler> It's usually a condition object signalled asynchroneously. Think of Ctrl-c which would signal a user-interrupt error. Or a Unix signal. These things are outside the standard, but can be relevant in praxis
<jackdaniel> your setf expansion may return error upon incf too
<jackdaniel> signal*
<stylewarning> no-defun-allowed: too many a cons
<[6502]> oh ok... i'm reading now for example about sb-ext:with-timeout
<stylewarning> no-defun-allowed: ask another
<stylewarning> The wildest question you got
<trittweiler> [6502], Yes. You usually want to avoid that one, too, precisely because the timeout will occur at a completely arbitrary point of execution. And writing code that is interrupt-safe is quite hairy and such code does not compose. Sb-sys:with-deadline is better in that it will trigger the "interrupt" at more or less well-defined places.
<t3hyoshi> Here's one for you, what's the difference between setf and setq?
<jackdaniel> t3hyoshi: easy, setq sets a symbol value, setf is almighty macro for setting anything (extensible)
<t3hyoshi> jackdaniel: Thanks!
<stylewarning> BUT WHAT ABOUT SYMBOL MACROS AND SETQ
<stylewarning> jk
<TMA> stylewarning: for what I know, the only thing is that it needs to be able to see through the symbol macro established by with-slots
[6502] has quit [Ping timeout: 252 seconds]
<stylewarning> (:
[6502] has joined #lisp
<[6502]> lisp garbage collector doesn't support the concept of finalizer (user-defined code that is executed on object memory recycling), correct?
<jackdaniel> [6502]: that depends on the implementation
Lycurgus has quit [Quit: Exeunt]
<jackdaniel> CL spec doesn't say anything about how gc should work
<jackdaniel> afaik
<Shinmera> Colleen: tell [6502] look up trivial-garbage finalize
<Shinmera> The CL spec doesn't even say anything about memory.
<jackdaniel> I have one question: if CL's reader is turing complete, does it mean that CL goes one step further with a stop problem by saying, that you can't decide whenever reading terminates? :)
<[6502]> oh ok... i was wondering about how do generator implementations can handle unwind-protect
<Shinmera> jackdaniel: Sure, especially with #.
<stylewarning> This channel gives so many misleading unhelpful answers
<jackdaniel> Shinmera: yes, that was a joke
<Shinmera> stylewarning: ?
<stylewarning> Stop just referring to normative behavior
<stylewarning> Refer to in practice implementation
<Shinmera> Implementations differ. It's perfectly fine to refer to what we at least can say about all conforming implementations.
<trittweiler> [6502], generators are usually implemented as closures. Where in your mind does unwind-protect should come into play?
<stylewarning> Bla bla bla
<[6502]> a Python generator that has a try-finally clause executes the finally code if it's garbage collected before exhaustion
<stylewarning> A new user wants to know that they can do in practice with popular implementations
<stylewarning> Not what CLHS says
<Shinmera> And we did say that, as well
<Shinmera> Now quit your bickering because it's even less productive than what you were actually complaining about
<jackdaniel> given Shinmera provided link to trivial-gc both angles were covered with answer, no?
<stylewarning> Say the most useful thing first
<Shinmera> stylewarning: Then /YOU/ say the most useful thing first.
<Shinmera> Jesus christ.
<[6502]> i personally find most bits coming out of this channel very informative
<[6502]> (except may be the last few ones :-D )
<t3hyoshi> jackdaniel's answer to setq vs setf was educational.
Lycurgus has joined #lisp
<trittweiler> [6502], See the trivial-garbage library. trivial-foo projects is a naming conventions for library that provide a portability layer across implementations. In this case, for finalizers that are run when an object is gc'd.
<jackdaniel> clearing misconceptions is an important task either (i.e there is no such thing as "lisp gc"), so clearing that first and then pointing to the solution seems like a reasonable action
<stylewarning> Shinmera: I would if I see things first I suppose
<jackdaniel> which could prevent further misconception
<stylewarning> Hugging the standard does very few people well.
<Shinmera> Lycurgus: https://irclog.tymoon.eu
<Shinmera> stylewarning: Has done me perfectly fine.
* jackdaniel steps away from drama to eat breakfast, have fun ;)
<Lycurgus> Shinmera, acknowledged, ty.
<Shinmera> Lycurgus: I believe the other loggers stopped working because the channel got set +R.
<Lycurgus> Shinmera, yest that's what I thought too.
<Lycurgus> -t
<stylewarning> Shinmera: I’m happy for you, but many folks are not like you
Lycurgus has quit [Quit: Exeunt]
<[6502]> got so much to read about... thank you guys
[6502] has quit [Quit: Page closed]
Kundry_Wag has joined #lisp
X-Scale has quit [Ping timeout: 252 seconds]
mange has quit [Read error: Connection reset by peer]
Kundry_Wag has quit [Ping timeout: 252 seconds]
<jackdaniel> I'm looking at planet lisp and what I see? bunch of C-ish code in two first posts :-)
<Shinmera> I already apologised in the post!
bendersteed has joined #lisp
<aeth> C, GLSL, VAX asm, no source, RISC V asm, and then a bunch of entires with no source until some CL half way down
Arcaelyx has quit [Ping timeout: 264 seconds]
jasmith has quit [Ping timeout: 272 seconds]
defaultxr has quit [Ping timeout: 268 seconds]
Shinmera has quit [Quit: しつれいしなければならないんです。]
Colleen has quit [Remote host closed the connection]
isoraqathedh has quit [Read error: Connection reset by peer]
Colleen has joined #lisp
jack_rabbit has quit [Ping timeout: 276 seconds]
jack_rabbit has joined #lisp
random-nick has joined #lisp
SenasOzys has quit [Ping timeout: 272 seconds]
light2yellow has joined #lisp
orivej has quit [Ping timeout: 244 seconds]
void_pointer has joined #lisp
robotoad has quit [Quit: robotoad]
idurand has joined #lisp
vaporatorius has joined #lisp
nirved has joined #lisp
Kundry_Wag has joined #lisp
Colleen has quit [Quit: Colleen]
robotoad has joined #lisp
<Lord_Nightmare> jackdaniel: don't scare off the newbies :P
nirved has quit [Ping timeout: 268 seconds]
leo_song has joined #lisp
nirved has joined #lisp
<jackdaniel> they will remember me as a bad dream ;-)
<beach> So, I am attempting to implement a primitive version of Clordane. I figured out that it is fairly easy to do function tracing in a SICL extrinsic environment, i.e., I can trace SICL functions that run inside SBCL and that are defined in a SICL first-class global environment. Breakpoints might be a small next step [no pun intended].
Shinmera has joined #lisp
Colleen has joined #lisp
gitfaf has joined #lisp
isoraqathedh has joined #lisp
Khisanth has quit [Ping timeout: 264 seconds]
orivej has joined #lisp
astalla has joined #lisp
mange has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #lisp
Kundry_Wag has quit [Ping timeout: 252 seconds]
cage_ has joined #lisp
Khisanth has joined #lisp
<beach> In Bordeaux threads, if a thread executes THREAD-YIELD, how does it start up again?
<Shinmera> Colleen: look up bordeaux-threads thread-yield
FreeBirdLjj has quit [Ping timeout: 252 seconds]
<beach> Or, rather, how does one make it start up again?
<Shinmera> I would wager it's up to the OS/implementation scheduler.
<beach> I see.
<Shinmera> yield only means that the thread decides it isn't "currently important to run"
<beach> So how does one make a tread stop? Make it hang on a lock?
<beach> I see, yes.
<Shinmera> Very often you won't get a significant pause out of it ime.
<Shinmera> You make a thread stop by exiting it. If you want to suspend a thread you can use a condition variable.
<beach> OK, thanks. I'll look into that.
<beach> I see there are no semaphores in BT, and I have had a hard time in the past to understand condition variables. I'll read up. Thanks again.
<Shinmera> Doing so is a bit involved. Something like this: https://github.com/Shinmera/simple-tasks/blob/master/runner.lisp#L106-L109
<Shinmera> Condition variables make the thread sleep until the condition variable is signalled, or until the thread is awakened for another reason (that's the unless check in the snippet)
<Shinmera> err, not signalled, but notified is the correct term
<jackdaniel> beach: bordeaux threads have semaphores for a few months now
<beach> jackdaniel: Oh, good.
<beach> Those I understand.
<beach> I should learn about condition variables as well though.
<Shinmera> The BT thread docs on trac haven't been updated in a long time :/
<beach> OK :(
<beach> Any more recent version?
FreeBirdLjj has joined #lisp
<beach> I guess not.
<jackdaniel> we've added tests which cover semaphore api
<beach> Don't worry about it. Thanks for the hints.
<jackdaniel> also interfaces have reasonable docstrings. since documentation is not boundled with the source code there is no separate document
<beach> Got it.
<no-defun-allowed> what are some ways to control the time spent on evaluating some expression?
<no-defun-allowed> i want to make a simple interpreter to decide on things for a cl-decentralise program which somehow terminates after N steps/evals have been done
<Shinmera> regular checks on some predicate
<Shinmera> or, more dangerously and less predictable: asynchronous interrupts
<no-defun-allowed> i have control over this EVAL, could i add an "eval count" and (shit i forgot the CL terms) raise/throw an error when the count gets too high?
<Shinmera> signal a condition
<Shinmera> And sure.
<no-defun-allowed> yeah, that's it thanks
<no-defun-allowed> i'd have to change evlist a bit to increment the counter, or use a (simple-vector 1) to the counter so i can refer to it
pierpal has quit [Quit: Poof]
pierpal has joined #lisp
SenasOzys has joined #lisp
SenasOzys has quit [Remote host closed the connection]
SenasOzys has joined #lisp
atgreen has joined #lisp
_whitelogger has joined #lisp
SenasOzys has joined #lisp
SenasOzys has quit [Remote host closed the connection]
SenasOzys has joined #lisp
nika has quit [Quit: Leaving...]
gitfaf has quit [Remote host closed the connection]
robotoad has quit [Quit: robotoad]
fikka has joined #lisp
robotoad has joined #lisp
SenasOzys has quit [Remote host closed the connection]
neuro_sys has joined #lisp
pierpal has quit [Quit: Poof]
SenasOzys has joined #lisp
pierpal has joined #lisp
robotoad has quit [Quit: robotoad]
<pjb> beach: I see bordeaux-threads:make-semaphore
<pjb> in ccl; does bordeaux-threads export different APIs on different implementations?
<Shinmera> No.
<Shinmera> Jackdaniel already mentioned semaphores.
froggey has joined #lisp
dddddd has joined #lisp
neuro_sys has quit [Ping timeout: 272 seconds]
orivej has joined #lisp
Arcaelyx has joined #lisp
igemnace has joined #lisp
<LdBeth> good evening
<no-defun-allowed> Hi LdBeth
SenasOzys has quit [Remote host closed the connection]
SenasOzys has joined #lisp
idurand has quit [Ping timeout: 268 seconds]
SenasOzys has quit [Remote host closed the connection]
SenasOzys has joined #lisp
atgreen has quit [Ping timeout: 244 seconds]
fikka has quit [Ping timeout: 244 seconds]
fikka has joined #lisp
orivej has quit [Ping timeout: 252 seconds]
igemnace has quit [Remote host closed the connection]
orivej has joined #lisp
nirved has quit [Read error: Connection reset by peer]
nirved_ has joined #lisp
gitfaf has joined #lisp
ebzzry has joined #lisp
gitfaf has quit [Remote host closed the connection]
Kundry_Wag has joined #lisp
shifty has joined #lisp
fikka has quit [Ping timeout: 272 seconds]
mange has quit [Ping timeout: 252 seconds]
fikka has joined #lisp
gitfaf has joined #lisp
fikka has quit [Ping timeout: 264 seconds]
gitfaf has quit [Ping timeout: 252 seconds]
fikka has joined #lisp
wiselord has joined #lisp
fikka has quit [Ping timeout: 244 seconds]
Bike has joined #lisp
Kundry_Wag has quit [Ping timeout: 244 seconds]
<beach> pjb: Thanks.
nirved_ has quit [Quit: Leaving]
v0|d has joined #lisp
kamog has joined #lisp
rann has joined #lisp
doubledup has quit [Remote host closed the connection]
doubledup has joined #lisp
light2yellow has quit [Quit: light2yellow]
doubledup has quit [Remote host closed the connection]
doubledup has joined #lisp
<beach> I don't know whether a semaphore is the right thing though. Maybe if I describe what I want to do, someone can tell me.
gitfaf has joined #lisp
<beach> It's about Clordane, a debugger running in one thread, say D, debugging an application thread, say A.
bendersteed has quit [Ping timeout: 272 seconds]
<beach> A will check certain condition for stopping and when they are met, it will inform D that it has stopped, and then stop.
<beach> D can examine the state of A in various ways, and the
<beach> and then let it continue its execution.
<beach> That's why I was thinking of a semaphore. A will WAIT on the semaphore when the conditions for stopping are met and D will SIGNAL the semaphore when it wants A to continue.
makomo has quit [Ping timeout: 244 seconds]
gitfaf_ has joined #lisp
gitfaf has quit [Ping timeout: 252 seconds]
jackdaniel has quit [Ping timeout: 268 seconds]
<pjb> beach: conditions seems to be perfectly adapted to this situation. You would just re-implement conditions with semaphores.
<pjb> The only advantage of semaphores is that they can block multiple processes, and they can count more than 1 exclusive resources.
<pjb> You could think of conditions as 1-semaphores.
zaquest has joined #lisp
<beach> I see. OK, I'll read up then. Thanks.
X-Scale has joined #lisp
jackdaniel has joined #lisp
<beach> Yes, it looks useful.
doubledup has quit [Quit: Leaving]
pierpal has quit [Remote host closed the connection]
quazimodo has joined #lisp
gitfaf_ has quit [Remote host closed the connection]
Kundry_Wag has joined #lisp
Jesin has quit [Quit: Leaving]
<beach> This is going much smoother than I had expected: http://metamodular.com/clordane-sicl-boot.png
Lycurgus has joined #lisp
<AeroNotix> beach: is Clordane a name you came up with for it?
<beach> Yes. There is an insecticide named Chlordane.
<AeroNotix> Yeah I was thinking that
<AeroNotix> seems a weird name!
<beach> For a debugger?
<beach> Come on!
<AeroNotix> Does anyone here own a proper lisp machine btw? I saw one in SF when I visited a few years ago but it wasn't running and also tucked away in a weird corner
<AeroNotix> beach: it's also hazardous to humans
<AeroNotix> it's not really an insecticide
<beach> I am pretty sure most insecticides are.
<AeroNotix> I forget the name of the most widely used one, let me look it up
<AeroNotix> but it's not at all directly hazardous to humans
<beach> It has to be possible to turn into something with "cl" in it.
<AeroNotix> pyrethoid
<beach> Otherwise, it won't be funny.
<AeroNotix> pyrethroid
<beach> So now turn that into something with "cl" in it?
<AeroNotix> beach: yeah I get kind of why you chose it. Just was interested in the naming!
<AeroNotix> haha clypermethrin !
<AeroNotix> joking
FreeBirdLjj has quit [Remote host closed the connection]
<beach> People get used to names: Chaosnet, SLIME, etc.
<AeroNotix> Clordane is quite good to be honest. I doubt many will pick up on the organic pollutant side of it
<AeroNotix> At first I thought it was a woman's name. But then I remembered :)
<AeroNotix> anyway, massively OT
<beach> The point here is that with 89 lines of code, I can already load a SICL first-class global environment into Clordane, find a function in that environment, and show the source code of the file in which that function was defined.
<AeroNotix> rad
shifty has quit [Ping timeout: 264 seconds]
froggey has quit [Quit: Lost terminal]
asarch has joined #lisp
<AeroNotix> beach: are you the SICL author btw?
Copenhagen_Bram has quit [Ping timeout: 268 seconds]
k-stz has joined #lisp
<beach> I am.
Fare has joined #lisp
Copenhagen_Bram has joined #lisp
doubledup has joined #lisp
fikka has joined #lisp
makomo has joined #lisp
fikka has quit [Ping timeout: 268 seconds]
Kundry_Wag has quit [Ping timeout: 268 seconds]
<pjb> Alternative name for clordane: Baygon. Beach Against Yellow buG Or Nasties
_whitelogger has joined #lisp
FreeBirdLjj has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
fikka has joined #lisp
FreeBirdLjj has joined #lisp
<AeroNotix> regarding my comment about CLHS being bad "documentation" (and consequently being labelled an idiot, thanks pjb). What are some genuinely decent online resources for looking up functions and their arguments/use-cases? I get by with using CLHS but for functions I rarely use, I find CLHS's examples to be very unreadable.
<AeroNotix> I have cltl in my desk drawer, mostly constantly open on the LOOP pages, but for quick lookups I want it to be online
<beach> AeroNotix: The Common Lisp HyperSpec is mainly meant for people who implement Common Lisp systems, not so much for users.
<Bike> cltl is online, isn't it?
<AeroNotix> beach: Right and that's the reason I'm an idiot, apparently
light2yellow has joined #lisp
<Bike> yeah.
Oladon has joined #lisp
fikka has quit [Ping timeout: 244 seconds]
<AeroNotix> Seems to be the same thing as my book, yeah
<AeroNotix> Bike: https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/index.html kind of "weird" the function links are labelled "nodeXXX.html" though
Roy_Fokker has joined #lisp
Roy_Fokker has quit [Client Quit]
Roy_Fokker has joined #lisp
Roy_Fokker has quit [Quit: Leaving]
Roy_Fokker has joined #lisp
<pjb> AeroNotix: the reason why you're an idiot is because when you're told that clhs is a specification, not a documentation, you keep calling it a documentation and insist on considering it as documentation.
<pjb> Just forget it, it's NOT documentation!
fikka has joined #lisp
<pjb> Now, I would say that PHP (and possibly Python too) have documentations that are mainly written (and translated!) by their users. http://php.net/docs.php Notice the "Edit" and "Bug report" buttons in the upper right corner: http://php.net/manual/en/
<pjb> You can do the same on http://cliki.net or some other wiki.
<pjb> Ie. don't keep treating clhs as documentation, set up a wikipedia, copy clhs to it, and start editing it to make it into a CL documentation!
ski has quit [Ping timeout: 252 seconds]
fikka has quit [Ping timeout: 252 seconds]
ym has joined #lisp
ski has joined #lisp
Kundry_Wag has joined #lisp
Fare has quit [Ping timeout: 252 seconds]
Fare has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #lisp
Kundry_Wag has quit [Remote host closed the connection]
FreeBirdLjj has quit [Ping timeout: 268 seconds]
<drmeister> How would I specify in Common Lisp the unicode point for a happy face?
<drmeister> (format t "~c~%" (code-char #x1f601))
<drmeister> But that doesn't work in an emacs shell.
nowhereman is now known as nowhere_man
<AeroNotix> pjb: thanks, enjoy your day
caltelt has joined #lisp
FreeBirdLjj has joined #lisp
orivej has quit [Ping timeout: 244 seconds]
<pjb> drmeister: it works: (format nil "~c" (code-char #x1f601)) #| --> "😁" |# but you need to have a font with that character.
<pjb> drmeister: have you updated your fonts since the last unicode update?
ebrasca has quit [Remote host closed the connection]
<drmeister> I'm a little more "out-there" - I'm trying to get progress bars with happy faces in jupyterlab.
<drmeister> But the unicode has to go through several levels of encoding and decoding as well as to and from JSON - it's getting messed up somewhere.
<drmeister> So I'm going to lower my expectations and be happy with asterisks for now. I have other fish to fry.
<drmeister> Thank you for the feedback though.
fikka has joined #lisp
<pjb> In emacs, you can also display pictures.
<pjb> Until the font is available.
<drmeister> I can get a white happy face to display - but not the more colorful one.
<drmeister> That's in an emacs shell.
<pjb> Not the same unicode version…
<drmeister> What's not the same unicode version?
<pjb> those characters.
<pjb> They're like sbcl, constantly making new versions. It's tiring.
<drmeister> Oh - I thought there was just one "unicode".
<pjb> So a quick hack would to substitute them.
<pjb> Nope, current version is 6 or something.
<drmeister> Not very "uni" then - is it?
<pjb> Well, there's a reason why OSes keep getting updates every days, thru the Internet.
<drmeister> It's because people don't have enough Common Lisp in their lives.
<pjb> I'm very happy with a terminal and :-) or :-(
jack_rabbit has quit [Ping timeout: 264 seconds]
<pjb> but people like to seem more hieroglyphs.
fikka has quit [Ping timeout: 268 seconds]
<drmeister> It worked out so well for the ancient Egyptians.
<pjb> Yep :-)
defaultxr has joined #lisp
<drmeister> Now they are tooling around the galaxy in their pyramid shaped space ships - and we are stuck here with our text based command line interfaces.
<PuercoPop> AeroNotix: there is a http://lispcookbook.github.io/cl-cookbook/
<AeroNotix> PuercoPop: thanks, slightly different from what I'm after.
<AeroNotix> I'm really wanting to integrate something nicely into emacs versus what's currently available.
Kundry_Wag has joined #lisp
fikka has joined #lisp
<razzy> the unicode is one good standardisation thing to remember
Kundry_Wag has quit [Remote host closed the connection]
quipa has joined #lisp
random-nick has quit [Read error: Connection reset by peer]
<oni-on-ion> is there actually klingon in there
<Bike> klingon isn't in unicode for a variety of reasons, including that it might be copyrighted
<Bike> there's a part of the private use area less formally reserved for it, though
fikka has quit [Ping timeout: 272 seconds]
<razzy> japan, china moved the emoji/hyeroglyphs thing foward in interesting way
<pjb> Perhaps the most objectionable part of it, is the use of color. It would give a much saner character list if we forbid the use of color.
random-nick has joined #lisp
Arcaelyx has quit [Ping timeout: 264 seconds]
<razzy> pjb: most of the characters are redundant anyway. given enough intelectual and communication time, people would settle on very few symbols used in general communication
gitfaf has joined #lisp
<pjb> yes, also emojis are totally void of meaning.
kamog has quit [Remote host closed the connection]
<pjb> I mean, there are scientific papers demonstrating it.
<razzy> pjb: ooooh, i very strongly disagree :D
<razzy> they are part of language as face expression
gitfaf has quit [Ping timeout: 264 seconds]
gitfaf has joined #lisp
edgar-rft has quit [Remote host closed the connection]
fikka has joined #lisp
<razzy> pjb: what conclusion did you draw from those studies?
gitfaf has quit [Ping timeout: 264 seconds]
<AeroNotix> pjb: isn't the article asserting that they have meaning but altogether different from what they were intended to have?
fikka has quit [Ping timeout: 272 seconds]
Kundry_Wag has joined #lisp
<razzy> and on different platforms(different groups of people) they have different meaning. which means they are overloaded with meaning.
random-nick has quit [Read error: Connection reset by peer]
<AeroNotix> http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0144296 pjb here's a paper proclaiming the opposite of what you were asserting, idiot.
<beach> AeroNotix: Escalation is never a good idea.
<razzy> AeroNotix, pjb, i was hoping not to see slander here.
<AeroNotix> beach: trying to be playful
<beach> Things like that are hard to communicate via IRC.
<razzy> AeroNotix: without the smile, idiot :P
<AeroNotix> razzy: my charset on this terminal doesn't have emojis :)
cage_ has quit [Remote host closed the connection]
<AeroNotix> also I despise the fact they've started being called "emojis"
<AeroNotix> are emojis distinct enough from emoticons to warrant a different name?
<razzy> AeroNotix: is :P understandable?
<AeroNotix> razzy: reasonbly
<AeroNotix> it has a de jure meaning in online text
<AeroNotix> I meant de facto
<AeroNotix> pjb: quite fitting for your position on unicode, https://xkcd.com/1726/
fikka has joined #lisp
<razzy> i consider emoji and emoticons the same
<AeroNotix> same. I just remember all of a sudden they were called "emojis" not "emoticons". Think it was even my Mum who corrected me one day.
gitfaf has joined #lisp
Kundry_Wag has quit [Remote host closed the connection]
Kundry_Wag has joined #lisp
fikka has quit [Ping timeout: 252 seconds]
gitfaf has quit [Ping timeout: 252 seconds]
random-nick has joined #lisp
Kundry_Wag has quit [Ping timeout: 268 seconds]
azimut has quit [Ping timeout: 272 seconds]
meepdeew has joined #lisp
meepdeew has quit [Read error: Connection reset by peer]
dura has joined #lisp
Kundry_Wag has joined #lisp
azimut has joined #lisp
fikka has joined #lisp
<razzy> funny shit
housel has quit [Read error: Connection reset by peer]
v0|d has quit [Ping timeout: 268 seconds]
housel has joined #lisp
fikka has quit [Ping timeout: 252 seconds]
Arcaelyx has joined #lisp
quipa has quit [Quit: Leaving]
fikka has joined #lisp
<stylewarning> Emoticons aren’t a part of UNICODE
Lycurgus has quit [Ping timeout: 252 seconds]
fikka has quit [Ping timeout: 272 seconds]
jasmith has joined #lisp
ebrasca has joined #lisp
ebrasca has quit [Remote host closed the connection]
gravicappa has joined #lisp
neuro_sys has joined #lisp
<Fare> stylewarning, ... yet
<stylewarning> (:
<Fare> stylewarning, Unicode is the name of the consortium. The name of the character catalogue is Unicode's Monster.
fikka has joined #lisp
orivej has joined #lisp
quazimodo has quit [Ping timeout: 244 seconds]
<Fare> 👾
<neuro_sys> Just started learning lisp, what's an idiomatic way to write this crude thing which happens to be my first lisp code? https://ideone.com/al6UFB
<Bike> it's s upposed to return a list of six numbers between 0 and 41?
<neuro_sys> Yes
<Bike> with no repeats?
<neuro_sys> That are unique, yes
azimut has quit [Ping timeout: 252 seconds]
fikka has quit [Ping timeout: 264 seconds]
<Bike> i suppose i would write... (loop for num = (random 42) until (= (length list) 6) unless (find num list) collect num into list)
<Bike> uh, and "finally (return list)" on the end there.
<neuro_sys> Thanks
<AeroNotix> neuro_sys: if you're just learning lisp, loop is a pretty ridiculous piece of functionality. It's like it's own sublanguage
<neuro_sys> Yeah well, it seemed like it. I am only so early into Practical Common Lisp, which seems like a pretty good book so far.
<neuro_sys> Loop constructs seemed like quite verbose and varied though.
fikka has joined #lisp
<AeroNotix> neuro_sys: I find PCL's section on LOOP probably one of it's few weaknesses to be honest. Common Lisp The Language has a good section on it.
dura has quit [Ping timeout: 264 seconds]
edgar-rft has joined #lisp
<neuro_sys> Oh thanks, it's also free, great.
<AeroNotix> yeah
<AeroNotix> neuro_sys: haha, mine lives here though: https://photos.app.goo.gl/v4qVCdxnQ8TNpG2e8
<aeth> The problem is the requirement for repeats. Otherwise you get a very simple loop. (loop for i from 0 below 6 collect (random 42))
<neuro_sys> Haha nice
fikka has quit [Ping timeout: 272 seconds]
<aeth> I'd say one of the flaws in the CL language is that if you need the functionality of (loop ... collect ...) there's no concise equivalent in the language itself. Usually you can get away with avoiding loop.
<AeroNotix> aeth: I'm honestly not a fan of it
<aeth> You could, however, take the simple loop and process it in CL afterwards
<Bike> what would a "concise" version be, exactly
random-nick has quit [Ping timeout: 268 seconds]
<Bike> since mapcar apparently doesn't count
<aeth> For this problem, the easiest solution is probably (let ((numbers (loop for i from 0 below 6 collect (random 42)))) (replace-duplicate-with-a-fresh-random numbers))
<aeth> At least, if you don't understand advanced loop
<AeroNotix> does anyone have an example of the gnarliest LOOP they've encountered?
jinkies has joined #lisp
<Bike> i've written a few with nested conditionals. it's not graet, and also slime doesn't handle it even with the special indentation package
fikka has joined #lisp
<_death> (subseq (shuffle (iota 42)) 0 6)
fikka has quit [Ping timeout: 252 seconds]
<Bike> ha.
orivej has quit [Ping timeout: 272 seconds]
<aeth> As far as duplicate replacing, you'd iterate through list and each time check to see if its tail has a duplicate of it, so MAPLIST will work. (It goes over each sublist instead of each element like MAPCAR does)
<pjb> neuro_sys: _death's solution is nice, but it may also be more costly, since shuffle will have to call random 42 times.
random-nick has joined #lisp
<aeth> This almost works, but you'd still risk having the new number be in the list, so you'd have to build up a history or something and check that. (maplist (lambda (numbers) (let ((number (car numbers))) (if (find number (cdr numbers)) (random 42) number))) numbers)
<pjb> neuro_sys: also, you have to be careful when writing shuffle, to obtain an equiprobability for all combinations.
<aeth> I'd say death's solution is much better
<_death> alexandria contains shuffle/iota
<_death> you could use reservoir sampling as well
vlatkoB has quit [Remote host closed the connection]
fikka has joined #lisp
<neuro_sys> Good to learn about alexandria
fikka has quit [Ping timeout: 264 seconds]
arbv has quit [Ping timeout: 264 seconds]
<pjb> Six times faster: https://pastebin.com/EFxiFRrJ
<pjb> ie, only shuffle what you need.
Kundry_Wag has quit [Remote host closed the connection]
ebrasca has joined #lisp
orivej has joined #lisp
froggey has joined #lisp
fikka has joined #lisp
<_death> since shuffle uses the same algorithm, maybe a :count parameter is in order
<pjb> It'd be nice, apparently.
robotoad has joined #lisp
fikka has quit [Ping timeout: 252 seconds]
azimut has joined #lisp
orivej has quit [Ping timeout: 252 seconds]
k-stz has quit [Quit: ERC (IRC client for Emacs 26.1)]
k-stz has joined #lisp
light2yellow has quit [Quit: WeeChat 2.2]
Kundry_Wag has joined #lisp
loli has quit [Quit: WeeChat 2.2]
loli has joined #lisp
Kundry_Wag has quit [Remote host closed the connection]
Arcaelyx has quit [Ping timeout: 264 seconds]
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Ping timeout: 272 seconds]
pierpa has joined #lisp
Kundry_Wag has joined #lisp
fikka has joined #lisp
loli has quit [Quit: WeeChat 2.2]
doubledup has quit [Quit: Leaving]
gravicappa has quit [Ping timeout: 264 seconds]
light2yellow has joined #lisp
Arcaelyx has joined #lisp
Kundry_Wag has quit [Remote host closed the connection]
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Ping timeout: 272 seconds]
sigjuice has joined #lisp
froggey_ has joined #lisp
Kundry_Wag has joined #lisp
froggey has quit [Disconnected by services]
froggey_ is now known as froggey
shifty has joined #lisp
anewuser has joined #lisp
Fare has quit [Ping timeout: 268 seconds]
slyrus1 has quit [Ping timeout: 268 seconds]
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
X-Scale has quit [Ping timeout: 268 seconds]
X-Scale has joined #lisp
<drmeister> Hello lispers - how do I indicate a positive float value as a type?
<Shinmera> clhs float
<Shinmera> there's a compound type specifier syntax.
<drmeister> So just (float 0.0)
<Shinmera> Yes.
emaczen has quit [Remote host closed the connection]
slyrus1 has joined #lisp
jack_rabbit has joined #lisp
<drmeister> Thank you.
light2yellow has quit [Quit: light2yellow]
<drmeister> I apologize for asking simple questions - but it could take me tens of minutes to figure out where to look and what to read. I appreciate it when people take a few moments out to toss back an answer at me.
<Shinmera> No problem.
jinkies has quit [Ping timeout: 276 seconds]
graphene has joined #lisp
<Shinmera> I may not remember anything else in my life but at least I know where to find things in the clhs
<drmeister> My neurons are all tied up remembering important addresses in the TRS-80.
<drmeister> 15360 - start of video memory!
<drmeister> I've been waiting for a long time for someone to ask that.
<AeroNotix> drmeister: what *exactly* does DAA do? :)
jack_rabbit has quit [Ping timeout: 264 seconds]
<antoszka> lol @trs-80
<drmeister> That's lost even to Google.
<AeroNotix> is there a type specifier that states the minimum/max number of bits an integer should fit into?
<Shinmera> clhs unsigned-byte
<Shinmera> That gives you a max. You can use it together with AND and NOT to form a lower bound I guess.
<AeroNotix> ok
<Shinmera> Otherwise just use INTEGER and expand the values you need.
<Shinmera> there's also signed-byte
<AeroNotix> OK will use this
<Shinmera> Though re-reading your question I'm not sure if you're asking about the maximum size that fits into an immediate?
robotoad has quit [Read error: Connection reset by peer]
robotoad_ has joined #lisp
<AeroNotix> I just want to specify the max bit size of an integer as a type specifier
<AeroNotix> I think your link solves it
<Shinmera> Alright.
<AeroNotix> trying it out now any way
<pjb> Note that on current posix systems (unsigned-byte 8) is the only binary file external format that's expected to be portable across implementations (and to the foreign posix world).
<pjb> (since posix files are sequences of bytes…
<pjb> )
[X-Scale] has joined #lisp
X-Scale has quit [Ping timeout: 244 seconds]
[X-Scale] is now known as X-Scale
random-nick has quit [Ping timeout: 264 seconds]
<AeroNotix> Are there any decent computer museums in europe? I went to the one in SF that had a bunch of cool machines like https://en.wikipedia.org/wiki/Connection_Machine and a couple Lisp ones (symbolics, but not running/displayed nicely)
<AeroNotix> the one in warsaw here has some rad iron curtain pure polish ones
<pjb> There was one in the cube in Paris.
<pjb> https://fr.wikipedia.org/wiki/Musée_de_l%27informatique_(La_Défense)
quipa has joined #lisp
<AeroNotix> ah no, it was an LMI in the California one
<AeroNotix> copyright, potato camera, AeroNotix 2018 btw!!!!!!!!
<pjb> If you dare going into this building: https://fr.wikipedia.org/wiki/Arche_de_la_Défense
<AeroNotix> god I really need to get unicode in my terminal
<pjb> Yep, now build a big cube with one led for each GPU processor, and program it to light up when each GPU processor is active.
astalla has quit [Ping timeout: 252 seconds]
<AeroNotix> I don't get the reference
Kundry_Wag has quit [Remote host closed the connection]
orivej has joined #lisp
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Ping timeout: 244 seconds]
siraben has quit [Quit: ERC (IRC client for Emacs 26.1)]
v0|d has joined #lisp
quazimodo has joined #lisp
fikka has quit [Ping timeout: 268 seconds]
Kundry_Wag has joined #lisp
eschatologist has quit [Quit: ZNC 1.6.6+deb1 - http://znc.in]
<pierpa> There's one in Pisa, I'm not sure if it is always open though
eschatologist has joined #lisp
mange has joined #lisp
<AeroNotix> cool, doing another 10k trip soon. Trying to get an idea of some decent places to stop during a lull
JeromeLon has joined #lisp
<AeroNotix> pierpa: italy has a strong computing history from what I understand
<AeroNotix> pierpa: https://www.sma.unipi.it/foto/ :(
<JeromeLon> Hi #lisp! I am trying to get started with common lisp on MacOSX. I tried to follow the instructions given on http://lisp-lang.org/learn/getting-started/ but it quickly failed. First question: was it the correct set of instructions to follow, or did I pick an old unmaintained website?
<AeroNotix> JeromeLon: which part failed?
<AeroNotix> do you have any error messages?
<pierpa> AeroNotix: not sure about this. Surely UK has been much stronger
<AeroNotix> JeromeLon: The good thing is the only mac specific thing is the call to `brew`
<AeroNotix> pierpa: Faggin
<AeroNotix> dude practically brought computers to the masses
<pierpa> ah,yes!
<JeromeLon> AeroNotix: I am guessing that installing quicklisp worked (It displayed: ==== quicklisp installed ==== To load a system, use: (ql:quickload "system-name") etc)
<pierpa> but he had to emigrate and do his work in the USA :(
<AeroNotix> pierpa: as they all did/do
<AeroNotix> JeromeLon: so where's the problem friend
<JeromeLon> AeroNotix: but "sbcl --eval '(ql:quickload :quicklisp-slime-helper)' --quit" showed: "Package QL does not exist."
<AeroNotix> JeromeLon: ah yes
<AeroNotix> did you run #'ql:add-to-init-file ?
<AeroNotix> the guide doesn't tell you to do that, weird.
<JeromeLon> AeroNotix: no, there was no such instruction. At what point should I do that? now, just after install ql?
<AeroNotix> JeromeLon: `sbcl --load /tmp/ql.lisp --eval '(ql:add-to-init-file)'`
<AeroNotix> run that, everything should work after that
<AeroNotix> reasoning: #'ql:add-to-init-file inserts some code into your ~/.sbclrc file that autoloads quicklisp functionality into every sbcl invocation
<AeroNotix> otherwise, when you run sbcl it won't have the quicklisp code loaded
<JeromeLon> AeroNotix: It still says "Package QL does not exist.". But quicklisp showed messages saying it was loaded before the error.
<JeromeLon> AeroNotix: I tried replacing ql: with quicklisp: and quicklisp-quickinstall: but they didn't work either
gector has quit [Ping timeout: 252 seconds]
<AeroNotix> JeromeLon: `cat ~/.sbclrc`, please
<JeromeLon> AeroNotix: cat: .sbclrc: No such file or directory
<AeroNotix> Anyone know where it should go on a mac?
<AeroNotix> No idea, never used a mac personally.
<AeroNotix> JeromeLon: What was the output of running (ql:add-to-init-file) ?
<no-defun-allowed> ~/.sbclrc\
<no-defun-allowed> no backslash, oops
gector has joined #lisp
<JeromeLon> AeroNotix: Sorry, I was not clear. The command you provided, which is supposed to add the line to the init file failed with the same message
<AeroNotix> JeromeLon: did /tmp/ql.lisp still exist :) ?
<JeromeLon> AeroNotix: yes.
<JeromeLon> AeroNotix: you command line shows that quicklisp is loaded, and then that ql: does not exist.
<JeromeLon> *your
<AeroNotix> JeromeLon: uhm, dunno. try without the --eval section and run (ql:add-to-init-file) yourself, then
<AeroNotix> in the repl
<pierpa> what does (pathname "~") says on macs?
<AeroNotix> good question^
<JeromeLon> #P"~"
<pierpa> hmmm
<pierpa> no joy :)
<JeromeLon> found it
<AeroNotix> pierpa: wait, no, mine does the same thing.
<AeroNotix> It probably doesn't expand
<pierpa> it depends from the implementation
<AeroNotix> ah ok
<pierpa> some expand and some don't
<AeroNotix> gotcha
<JeromeLon> AeroNotix: so, when I ran the line to install quicklisp, it showed that it was installed. But when I ran your command line, the --load was showing an extra hint that I missed: To continue with installation, evaluate: (quicklisp-quickstart:install)
Kundry_Wag has quit [Quit: Leaving...]
<pierpa> duh!
<pierpa> clhs user-homedir-pathname
azimut has quit [Ping timeout: 272 seconds]
<JeromeLon> AeroNotix: everything seems to work now. And the .sbclrc file does contain the necessary lines.
<JeromeLon> AeroNotix: Thanks for your help!
<AeroNotix> JeromeLon: glad you got it working
<AeroNotix> Enjoy programming in common lisp
emaczen has joined #lisp
loli has joined #lisp
orivej has quit [Ping timeout: 252 seconds]
asarch has quit [Quit: Leaving]
azimut has joined #lisp
housel has quit [Remote host closed the connection]
housel has joined #lisp
quazimodo has quit [Ping timeout: 252 seconds]
Kaisyu7 has quit [Remote host closed the connection]