willmichael has quit [Read error: Connection reset by peer]
willmichael has joined #lisp
<sigjuice>
beach thanks! I will check it out.
smokeink has quit [Ping timeout: 264 seconds]
Arcaelyx has joined #lisp
Pixel_Outlaw has joined #lisp
Karl_Dscc has joined #lisp
ebzzry_ has joined #lisp
epony has quit [Read error: Connection reset by peer]
Satou has joined #lisp
epony has joined #lisp
krwq has quit [Remote host closed the connection]
krwq has joined #lisp
krwq has quit [Client Quit]
krwq has joined #lisp
vlatkoB has joined #lisp
CodeOrangutan has quit [Ping timeout: 260 seconds]
Karl_Dscc has quit [Remote host closed the connection]
Tobbi has joined #lisp
milanj has quit [Quit: This computer has gone to sleep]
smurfrobot has joined #lisp
Pixel_Outlaw has quit [Remote host closed the connection]
Satou has quit [Quit: Cya soon guys!]
willmichael has quit [Ping timeout: 256 seconds]
Oladon has quit [Quit: Leaving.]
krwq has quit [Remote host closed the connection]
Satou has joined #lisp
smurfrobot has quit [Remote host closed the connection]
Satou has quit [Quit: Cya soon guys!]
ebzzry_ has quit [Ping timeout: 240 seconds]
Satou has joined #lisp
sz0 has joined #lisp
siraben has joined #lisp
Arcaelyx has quit [Ping timeout: 240 seconds]
nika has quit [Quit: Leaving...]
Arcaelyx_ has joined #lisp
Satou has quit [Quit: Cya soon guys!]
anon has joined #lisp
anon is now known as Guest26713
sword has joined #lisp
Guest26713 has left #lisp [#lisp]
safe has quit [Read error: Connection reset by peer]
<dtornabene>
good morning
<beach>
Hello dtornabene.
<siraben>
Good afternoon
<dtornabene>
hey there
macdavid313 has quit [Ping timeout: 264 seconds]
<siraben>
Has anyone created a GUI application in a Lisp?
<Shinmera>
sure
<beach>
Of course.
<siraben>
I've written some Racket, but what about cross platform?
<Shinmera>
By "platform" you mean the OS, or?
<siraben>
Yes
<Shinmera>
Sure.
<siraben>
So for me it was racket on macOS
<beach>
siraben: Racket is not Common Lisp.
<siraben>
Oh this is the Common Lisp channel lol
<beach>
siraben: This channel is dedicated to Common Lisp.
macdavid313 has joined #lisp
<siraben>
What library did you use?
<siraben>
Cello?
<Shinmera>
I used Qtools.
<beach>
I used McCLIM.
<siraben>
Any Common Lisp tools for iOS?
<Shinmera>
There's MOCL, I suppose.
<siraben>
Oh but it's proprietary
<jackdaniel>
siraben: ecl is known to work on iOS (but requires some effort to build things, and you don't have access to c compiler - only bytecodes)
<jackdaniel>
lispworks works on iOS too (propietary)
<siraben>
What are the benefits of functional programming in real world applications?
<siraben>
I use it for meta programming and theoretical interest so far
<Shinmera>
Well being able to pass functions around is pretty handy
<jackdaniel>
easier testability. CL is not particularily functional, so answers here won't be very representative with this regard
<siraben>
Recommended books?
<siraben>
I did SICP, but that uses Scheme
<siraben>
I heard of Land of Lisp
<Shinmera>
minion: tell siraben about PCL
<minion>
siraben: direct your attention towards PCL: pcl-book: "Practical Common Lisp", an introduction to Common Lisp by Peter Seibel, available at http://www.gigamonkeys.com/book/ and in dead-tree form from Apress (as of 11 April 2005).
<siraben>
Wow thanks Shinmera!
knobo4 has joined #lisp
<siraben>
What are some things that can be easily done in CL that aren't as easy in Scheme?
<beach>
Object orientation.
<siraben>
Scheme has a macro system, I heard CL's is better?
<beach>
CLOS.
<siraben>
Oh the CLOS
<Shinmera>
(let ((foo 0)) (foo foo)) :^)
<beach>
(defmethod graft ((graft graft)) graft)
<Shinmera>
Does scheme have packages these days?
<siraben>
Is SBCL still the way to go?
<siraben>
No
<siraben>
Scheme is a very minimal language
patrixl has joined #lisp
<siraben>
Well, Racket has packages and is Scheme-like
<Shinmera>
Everything I feel like doing, pretty much.
<siraben>
Production as well?
<Shinmera>
Well yea
<siraben>
What other programming languages do you know?
eponym has joined #lisp
<Shinmera>
C, C++, Java, JavaScript, Python, Bash, Rust, Haskell, and probably others that I forgot about.
Murii|osx has joined #lisp
<siraben>
Shinmera thought of learning Clojure?
makomo has joined #lisp
<Shinmera>
Thought about, sure. So far there's little incentive though.
epony has quit [Ping timeout: 264 seconds]
<Shinmera>
Or in other words, I don't see anything I care about that Clojure would offer me over CL.
<siraben>
Integration with the JVM and Java libraries?
<Shinmera>
Got ABCL for that if I cared about it.
<Shinmera>
(I don't)
<siraben>
So CL has a large package system, which means you can make web servers and so on?
<Shinmera>
Sure.
<siraben>
What are you thoughts on the Land of Lisp?
<Shinmera>
I haven't read it, but some people like it.
<patrixl>
LoL is good to get started but it won't get you far
<patrixl>
it skips over the whole topic of organizing your code in files, packages, etc and doing actual development
<patrixl>
otherwise it's a fun book to get the basics and get excited about Lisp (if you aren't already ;) )
<jach[m]1>
siraben: I'm about 100 pages from finishing LoL, I've enjoyed it but it's not very sticky. And skips over a lot I care about as an employed person in Blub. ;)
siraben has quit [Remote host closed the connection]
Mutex7 has joined #lisp
<patrixl>
well lol
siraben has joined #lisp
<patrixl>
and hey everyone, been lurking a few days, just joining in the conversation now
<siraben>
Sorry I crashed
<siraben>
emacs
<patrixl>
thought you didn't like the comments about LoL ;)
<jach[m]1>
One of the things that made me go "I wish someone had shown me this back when I had learned a little scheme and thought I knew 'lisp'" is this small series of posts:
<patrixl>
that's the one that really got me started with Lisp, good book
<patrixl>
(and got me started with emacs, too)
<siraben>
Wow Nice
<siraben>
nice*
<siraben>
Emacs was my go-to after learning Scheme, especially because paredit is just amazing when dealing with parens
<patrixl>
nice, and yeah paredit is a lifesaver
smurfrobot has quit [Ping timeout: 248 seconds]
mishoo has quit [Ping timeout: 264 seconds]
<patrixl>
after spending a month coding lisp with emacs on a personal project, I went back to my work codebase in ruby and visual studio code and pulled quite a lot of hair out in frustration haha
pilfink has quit [Quit: Quit]
random-nick has joined #lisp
shenghi has quit [Quit: WeeChat 2.0.1]
shenghi has joined #lisp
harryTrout has quit [Remote host closed the connection]
fikka has joined #lisp
harryTrout has joined #lisp
mishoo has joined #lisp
<siraben>
Omg there's been so many times when I use the Emacs keybindings outside emacs
<siraben>
Fortunately macOS allows me to use some of them
<patrixl>
yeah I was shocked when I discovered that
<siraben>
Like 'C-w' 'C-f' 'M-f' and so on
<siraben>
I didn't even notice
<siraben>
Until I tried 'C-<SPC>'
<siraben>
Or this one time I did 'C-x h'
<patrixl>
haha
<siraben>
Expecting it to select everything
<siraben>
Rip
<siraben>
I can't imagine using Windows accidentally with Emacs keybindings
<siraben>
Might break something lol
<patrixl>
you might end up accidentally installing Linux while doing that
<patrixl>
haha
<siraben>
'M-x install-linux'
<siraben>
I love that feeling of when I wish Emacs could do something, then implementing it myself.
<siraben>
How do people put up with say, Microsoft Word or even their calculators!
<patrixl>
the annoying one is Outlook for Mac, it not only breaks some the usual macOS keybindings, it also maps ctrl-C etc to the copy paste
Mutex7 has quit [Remote host closed the connection]
<aeth>
I accidentally use key bindings in Firefox all the time. It's not a big deal. Usually I just have to hit ESC to close the save page window that opens when I tried to search with C-s.
Kundry_Wag has joined #lisp
<aeth>
In the terminal, thanks to readline and its many clones, I use Emacs keybindings outside of Emacs all of the time. (The biggest difference is what C-u does, afaik.)
<siraben>
Wow thanks pjb!
damke_ has joined #lisp
<siraben>
I was shook when I used my friend's Windows machine and 'C-x C-f' didn't do what I thought it would
<pjb>
siraben: install emacs on MS-Windows, and it will do what it should.
<aeth>
If only there was a program that actually did everything, unlike Emacs, which is too tied in its buffer-oriented ways and too burdened by its terminal-first legacy.
<siraben>
aeth: terminal-first?
<aeth>
Emacs gets you a lot of the way there, until you want to browse the web, view and edit images (although you can somewhat view them), open PDFs (although you it somewhat handles PDFs), etc.
<siraben>
aeth: Emacs can open PDFs, play songs, view webpages and so on
<siraben>
aeth: Well I don't know about image editing in Emacs
<pjb>
siraben: on my systems emacs is installed before linux.
<siraben>
aeth: Use something like GIMP
<aeth>
siraben: Emacs imo fails at anything visual, which is quite a lot of things.
<aeth>
siraben: Using external non-Emacs applications means learning another set of key bindings.
<siraben>
aeth: That's certainly true
<pjb>
aeth: you can do video editing with emacs.
<aeth>
Now, if only Emacs could replace Blender.
<siraben>
aeth: I never spent as much time learning keybindings as I did with Emacs
<siraben>
Blender + Emacs Key Bindings?
<siraben>
What an idea!
smurfrobot has joined #lisp
<siraben>
'M-x render'
smurfrobot has quit [Remote host closed the connection]
<siraben>
It really doesn't make much sense to use CMD+C or C-c for copy and the same for paste
<aeth>
pjb: You can do just about everything in Emacs (at least the X11 Emacs, which has additional features over the in-terminal Emacs), but it's not the best option for anything visual imo. Web browsing, image viewing, PDF viewing, etc. I've done them all, and Emacs's model is... limiting there.
<aeth>
pjb: I hope a CL Emacs takes that into account when there's a popular/serious one out there.
<siraben>
PDF viewing (even with `pdf-tools' installed) is still pretty slow IMO
<aeth>
I think it turns PDFs into images and then uses its image viewer, which is why it's slow and limiting.
<siraben>
aeth: I wonder what it would take to make the next Emacs
Kundry_Wag has joined #lisp
<siraben>
Emacs devel. isn't slowing down, but there's a lot of holding on to old ways
<aeth>
siraben: Probably what I just said is what it would take.
<siraben>
aeth: Have you tried pdf-tools ?
<aeth>
Emacs is an app for everything, but there's a lot of things that you can't do without heavily rewriting how Emacs thinks about the world (i.e. never)
<siraben>
Or one could create an elisp to CL compiler, refactor the C code automatically and boom!
<aeth>
A good Emacs replacement in CL would essentially just be a CL app platform all in one application.
<aeth>
As soon as I saw Google I immediately knew it wasn't going to be what I was looking for because Google only uses CL when they acquire a company that uses CL (afaik).
<siraben>
Well ofc they aren't using CL
Kundry_Wag has quit [Ping timeout: 256 seconds]
<aeth>
The thing is, GNU Emacs is not a text editor. It's an integrated application platform. You're not going to replace it with a text editor. This also means that GNU Emacs itself is not a particularly good Emacs because it was never designed with web, PDF, PNG, IRC, etc., support in mind.
<siraben>
They're using Rust
<siraben>
What Xi is trying to achieve is a very fast, stable backend that's extensible
<siraben>
So I imagine the work would change from "let's rewrite Emacs" to "let's replace the core of Emacs"
<siraben>
But to allow Emacs to have a swappable "kernel" there needs to be better API documentation
random-nick has quit [Remote host closed the connection]
smurfrobot has quit [Ping timeout: 260 seconds]
harryTrout has joined #lisp
<patrixl>
gotta go, nice chatting all
patrixl has quit [Quit: ERC (IRC client for Emacs 26.0.91)]
<aeth>
siraben: In its list of 7 design decisions, the only one I agree with is the front-end/back-end separation.
CodeOrangutan has joined #lisp
random-nick has joined #lisp
<aeth>
And while high performance is a nice goal, the rise of Electron apps has shown that shipping a working product seems to be valued more than performance. Sadly.
<aeth>
Fortunately, that means you can use a lot more RAM than you used to get away with using, because you're still lightweight compared to Electron.
smokeink has joined #lisp
<siraben>
aeth: Can you link to the 7 design decisions?
<aeth>
It's in the README.md at the bottom of your link
<siraben>
aeth: I hate Electron apps
<siraben>
aeth: It's like needing to ship a full-fledged browser for something that should be tiny
<aeth>
There's a middle ground between "rush to shipment and waste all of the resources" and "carefully craft an editor that can compete with vim" (I said vim because emacs's draw isn't that it can edit text). Reasonable optimizations, etc.
<siraben>
ah yes the 7 design decisions
<aeth>
I'm actually not sure if anyone's in the middle ground these days.
<siraben>
aeth: Rip "Emacs is an excellent OS, the only thing it lacks is a decent text editor"
fikka has quit [Ping timeout: 260 seconds]
<siraben>
I think modularity is the way to go
<siraben>
aeth: Maybe because the whole mindset in developing Emacs in the first place wasn't "do one thing well" as is common in UNIX philosophy, but "let's do everything"
<siraben>
I'd like to see Common Lisp eventually succeed Elisp as the extension language
<siraben>
Because Elisp, although it's pretty good in what it does, doesn't have much value outside Emacs
<aeth>
CL's in a "mid tier" performance range, like Java, where you don't have to have a separate scripting language and core language.
<aeth>
GNU Emacs would probably be much faster if it was entirely in SBCL instead of slow elisp mixed with fast C.
<siraben>
What about executing elisp with a JIT compiler?
<siraben>
Certainty the work would be less than changing the language
<aeth>
They want to change to Guile, for some reason, even though CL isn't that different from Emacs Lisp.
<pjb>
aeth: even the terminal emacs. Nowadays emacs has plugins.
<siraben>
Packages*
Ven`` has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<siraben>
aeth: How long have you been using Emacs?
<aeth>
JITs aren't magic, though. I think they have two disadvantages: (1) RAM, (2) startup time
<aeth>
And #2 would make me hate Emacs. I don't leave it up for days at a time like some people
<siraben>
1. GC 2. Compilation?
<siraben>
Same I restart it kinda frequently
<siraben>
I wonder if and how Emacs is going to stick around for the next 10, 20, maybe 50+ years?
<aeth>
I still have ed installed on my computer. So emacs and vim aren't going anywhere.
<siraben>
How old is ed?
<pjb>
siraben: as long as we edit programs by typing them.
<siraben>
pjb: I hope program synthesis will make debugging almost automatic in the future
<pjb>
siraben: now, take your favorite OS, and activate the dictaphone function. Have fun dictating a letter. Bonus points to dictage a program (programming language of your choice!)
<siraben>
pjb: Maybe a brain-computer interface would eventually allow us to program at the speed of thought?
<pjb>
siraben: the problem is not the brain of the programmer: it's the brain of the listener.
<pjb>
The point here is that we need AI with much higher AIQ before they can understand us dictating a program.
<siraben>
The people (and the teacher teaching it) in my school's computer science course haven't heard about Lisp
<siraben>
Or even what it means to be "computable"
<siraben>
It's the basic stuff one can memorize and regurgitate
<siraben>
Programming is limited to Java
<siraben>
pjb: Have you done pair programming?
<pjb>
It occured.
<siraben>
pjb: Omg I literally can't wait to see my programming partner use Emacs
<siraben>
gg
smokeink has quit [Ping timeout: 268 seconds]
<siraben>
aeth: Are you speaking from experience?
<pjb>
Perhaps if one day siri can understand me…
<siraben>
Natural language processing is still a ways off
<siraben>
Try 'M-x doctor' to see the state of the art
<aeth>
siraben: Just look at the numbers of people enrolled in computer science departments over time.
<aeth>
(Then superimpose a graph of the NASDAQ over it.)
<siraben>
aeth: I'm considering to computer science in uni
<siraben>
Did you take/are taking computer science courses in uni?
<siraben>
My understanding is that it's full of people who /want/ to learn CS, but apparently that's not the case lol
<aeth>
In my personal experience taking classes in various subjects, the places where most of the undergraduates want to be there are the upper level courses that aren't marketable, like philosophy. (The lower level ones might fill general education requirements.)
<siraben>
Ooh philosophy
fikka has joined #lisp
<siraben>
And computer science is not one of those "I want to be here" classes?
<siraben>
Maybe it depends on the uni
<aeth>
Well, some universities probably has difficult enough computer science classes to get the same effect by the time that the upper level comp sci classes come.
<aeth>
s/has/have/
mishoo has quit [Ping timeout: 240 seconds]
<aeth>
Not like that's necessarily a good thing. Those universities probably teach a lot of useless C++ trivia.
pagnol has joined #lisp
<siraben>
That's why I'm thinking of applying to pretty good universities
<aeth>
There are probably too many variables to generalize one experience, though.
macdavid313 has quit [Ping timeout: 265 seconds]
<siraben>
Brown, MIT, CMU, places with really good CS departments
<siraben>
Is the fizzbuzz-as-an-interview-question legend really true?
shka_ has joined #lisp
<siraben>
Has anyone been asked fizzbuzz in an interview?
fikka has quit [Ping timeout: 252 seconds]
<jackdaniel>
you'd be suprised how many people get filtered by such task
<siraben>
If you have even a week of programming experience I would imagine it would be trivial, right?
<siraben>
It just seems so crazy, you have CS majors that can't write fizzbuzz.
<siraben>
jackdaniel: How many?
<Shinmera>
More than we'd like
<siraben>
Fizzbuzz can be done so easily in Lisp
<Shinmera>
An exercise a friend of mine tried to solve recently has a really elegant solution in lisp, I think: Determine whether a list is a palindrome.
<Shinmera>
Which is just (equal list (reverse list))
<siraben>
<siraben>
(define (palindrome? x)
<siraben>
(equal? x (reverse x)))
<siraben>
Yeah
<siraben>
What language did he use?
<siraben>
Even if you had to define `reverse', `equal?' it would still be easy
<Shinmera>
Sure.
<aeth>
You can mess up Fizzbuzz if you haven't used mod (or its equivalent) in a while.
<siraben>
It's % in C
<siraben>
That's true
<aeth>
You forget the API of everything after a while.
<siraben>
It's actually kinda unfair for some people
<aeth>
In this case, you'd probably reverse the conditional
<siraben>
So what other interview questions have been asked?
<Shinmera>
Everything under the sun, but hardly any of it is Lisp relevant (and thus off-topic)
<aeth>
Oh, right, I think % also has surprising precedence. Another way to mess up Fizzbuzz.
<aeth>
(And another advantage of CL.)
<siraben>
Other interview questions?
<siraben>
I heard of reversing a linked list
<siraben>
Eight queens?
<_death>
I once asked someone to define a class for representing classes (in the context of C++)
harryTrout has quit [Ping timeout: 245 seconds]
<siraben>
Oh I don't know C++
<siraben>
I just know regular C
<_death>
as for palindromes, you can go deeper ;)
<siraben>
How deep
<_death>
you can have different units compared.. may be letters, or digits, or words..
FreeBirdLjj has quit [Remote host closed the connection]
<aeth>
I wonder what the most efficient FizzBuzz solution is in SBCL (limiting it to one implementation so there's an objective, clear answer)
smurfrobot has quit [Ping timeout: 245 seconds]
<beach>
Shinmera: Around?
<beach>
Shinmera: For ELS registration, when I click on "Early regular", it says that the banquet is included, but the banquet option is also selected. Shall I deselect the option?
<asarch>
Really? Oh, I'll check it. I'm stuck on macros with the Mac story (chapter 8) :-P
fikka has quit [Ping timeout: 252 seconds]
Kundry_Wag has joined #lisp
FreeBirdLjj has joined #lisp
itruslove has quit [Remote host closed the connection]
giraffe has quit [Remote host closed the connection]
attila_lendvai has quit [Read error: Connection reset by peer]
attila_lendvai has joined #lisp
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
Kundry_Wag has quit [Ping timeout: 260 seconds]
FreeBirdLjj has quit [Ping timeout: 240 seconds]
attila_lendvai has quit [Read error: Connection reset by peer]
<_death>
only 10 more chapters then ;)
attila_lendvai has joined #lisp
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
makomo has joined #lisp
wxie has joined #lisp
<wxie>
erc-cmd-BYE
wxie has quit [Client Quit]
<_death>
useless command
fikka has joined #lisp
wxie has joined #lisp
FreeBirdLjj has joined #lisp
itruslove has joined #lisp
smokeink has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
harryTrout has joined #lisp
FreeBirdLjj has quit [Ping timeout: 256 seconds]
giraffe has joined #lisp
wxie has quit [Remote host closed the connection]
wxie has joined #lisp
fikka has joined #lisp
willmichael has quit [Ping timeout: 256 seconds]
fikka has quit [Ping timeout: 256 seconds]
willmichael has joined #lisp
<asarch>
Yeah! \o/
orivej has quit [Ping timeout: 240 seconds]
FreeBirdLjj has joined #lisp
smokeink has quit [Ping timeout: 256 seconds]
EvW has joined #lisp
fiveop has quit []
<beach>
asarch: In Common Lisp, they are called "conditions", and we "signal" conditions, whereas other languages "raise" "exceptions".
fikka has joined #lisp
FreeBirdLjj has quit [Ping timeout: 256 seconds]
wxie has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
FreeBirdLjj has joined #lisp
<Shinmera>
There are THROW and CATCH special forms in Lisp as well, but those provide a non local return mechanism, rather than anything to do with "exceptional situations"
smurfrobot has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
harryTrout has quit [Ping timeout: 252 seconds]
mishoo has joined #lisp
markong has joined #lisp
FreeBirdLjj has quit [Ping timeout: 240 seconds]
Pierpa has joined #lisp
fikka has joined #lisp
zotan has quit [Quit: ZNC 1.6.5+deb1 - http://znc.in]
fikka has quit [Ping timeout: 260 seconds]
Kundry_Wag has joined #lisp
zotan has joined #lisp
Kundry_Wag has quit [Ping timeout: 245 seconds]
willmichael has quit [Ping timeout: 260 seconds]
willmichael has joined #lisp
<dxtr>
Is it possible to simply "dump" an object with all of its contents?
<Bike>
in what format? for what purpose?
<dxtr>
the purpose? I don't know what object this is :D
<dxtr>
in what format? Whatever human-readable format, really
<Bike>
try describe
<Bike>
(describe object)
Kundry_Wag has joined #lisp
FreeBirdLjj has joined #lisp
<Pierpa>
Or INSPECT
mishoo has quit [Ping timeout: 268 seconds]
marusich has quit [Ping timeout: 245 seconds]
<beach>
dxtr: All of its contents could be very large.
marusich has joined #lisp
Kundry_Wag has quit [Ping timeout: 264 seconds]
<beach>
dxtr: The class, the class of the class, the subclasses of those classes, the generic functions that specialize on those classes, etc. etc.
fikka has joined #lisp
FreeBirdLjj has quit [Ping timeout: 260 seconds]
smurfrobot has quit [Remote host closed the connection]
pagnol has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
FreeBirdLjj has joined #lisp
marusich has quit [Ping timeout: 252 seconds]
fikka has joined #lisp
philosaur has quit [Ping timeout: 256 seconds]
pcell has joined #lisp
marusich has joined #lisp
FreeBirdLjj has quit [Ping timeout: 268 seconds]
zotan has quit [Quit: ZNC 1.6.5+deb1 - http://znc.in]
<borei>
have the same code for single-float - and it works
<borei>
without any notice
drewc has quit [Ping timeout: 240 seconds]
totom has joined #lisp
<Bike>
probably single floats are immediate while double floats are boxed
<totom>
How deep does CAR and CDR goes?
<totom>
as in function defined in language
<borei>
:Bike that is new for me
<Bike>
so when returning the value from (setf mref) it has to box the value, which is a small performance hit. probably pretty small since the input value is probably boxed anyway
<Bike>
totom: i do not understand
<borei>
what is immediate vs boxed ?
<Bike>
immediate means it can be like, stored in a register
<Bike>
double means it goes in memory somewhere
<Bike>
sbcl calls it a "pointer" here
<Bike>
it's possible that if you have the method body end with just 'value' after the setf, the note will go away
<Bike>
but i wouldn't really worry about it anyway
<totom>
Bike: For ex in ((blue pyramind)(red cube)) to get blue there is CAAR
<Bike>
oh. four deep.
pagnol_ has joined #lisp
<Bike>
there's caaaar but no caaaaar.
pagnol_ has quit [Client Quit]
<Bike>
you can do car caaaar of course.
<totom>
For like CAAAADDDDR?
fikka has joined #lisp
vlatkoB has quit [Remote host closed the connection]
<totom>
*four
<Bike>
there is no caaaaddddr
<Bike>
caar is two. caaaar is four.
<totom>
oh ok
attila_lendvai has quit [Read error: Connection reset by peer]
<totom>
the total of A and D can be used is four, right?
Ven`` has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Arcaelyx has joined #lisp
<fouric>
Shinmera: Spiffy! I'm going to try it out. Thank you!
random-nick has quit [Remote host closed the connection]
random-nick has joined #lisp
Ven`` has joined #lisp
Nouv has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
Ven`` has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
ym has joined #lisp
xuxuru has quit [Quit: xuxuru]
Kundry_Wag has joined #lisp
Pierpa has quit [Ping timeout: 260 seconds]
damke has quit [Ping timeout: 264 seconds]
fikka has joined #lisp
Kundry_Wag has quit [Ping timeout: 240 seconds]
damke has joined #lisp
mareskeg has joined #lisp
shka_ has quit [Remote host closed the connection]
shka_ has joined #lisp
mhd has quit [Ping timeout: 264 seconds]
thinkpad has quit [Ping timeout: 264 seconds]
thinkpad has joined #lisp
pilfink has joined #lisp
Nouv has quit [Remote host closed the connection]
sjl has quit [Read error: Connection reset by peer]
drewc has joined #lisp
skali has joined #lisp
<troydm>
I was wondering if there is anything more prettier than HyperSpec? because everytime I try to read it my inner sense of modern web is shuttered into small pieces
<asarch>
How do you compile a file from SBCL REPL? (compile-file "arithmetics.lisp") and (compile-file "/home/asarch/arithmetics.lisp") don't work
<Shinmera>
"don't work" is the best way to describe a problem
<asarch>
Failed to find the TRUENAME of arithmetics.lisp: No such file or directory
kfdenden[m] has quit [Quit: removing from IRC because user idle on matrix for 30+ days]
<troydm>
fouric: ohh nice, nice I wanted to create something like this 5 years ago, but lack of time didn't allowed me to
<Bike>
asarch: means the file doesn't exist
<fouric>
It's still being worked on, but I've begun to use it instead of CLHS for function/macro/special form documentation lookups, and it's very servicable.
<fouric>
troydm: If you have some extra time you should consider contributing!
kamobe has quit [Remote host closed the connection]
fikka has joined #lisp
Oladon has quit [Quit: Leaving.]
fikka has quit [Ping timeout: 256 seconds]
fikka has joined #lisp
Mutex7 has joined #lisp
damke has joined #lisp
damke_ has quit [Ping timeout: 264 seconds]
sjl has joined #lisp
jmercouris has joined #lisp
smurfrobot has quit [Remote host closed the connection]
mhitchman[m] has quit [Quit: removing from IRC because user idle on matrix for 30+ days]
smurfrobot has joined #lisp
smurfrobot has quit [Ping timeout: 260 seconds]
grumble has quit [Read error: Connection reset by peer]
<asarch>
One stupid question: can you use a compiled file with SBCL in other Common Lisp implementation, for example, CLisp?
<asarch>
And vice versa?
<Bike>
nope
<Bike>
sbcl fasls aren't even guaranteed to work in other sbcl executables
<asarch>
So, the ANSI standard doesn't include the binary file, right?
<random-nick>
well you can execute the implementation as a separate process
<Bike>
it does not
<asarch>
Why?
<Bike>
why what
<Shinmera>
Implementations are very different. CL doesn't even specify anything about memory or instruction set.
<asarch>
Oh
grumble has joined #lisp
<Shinmera>
Giving implementations freedom means they can do things in a way that works best for their particular goals.
<Shinmera>
Anything you specify is a restriction and can potentially become a hindrance.
<Shinmera>
As such the committee was very careful not to over specify things.
<asarch>
I see
<pjb>
asarch: notice that you can write a conforming compiler with a conforming loader so that you could distribute compiled code to all the CL implementations.
<asarch>
I thought there was an specification for this binary file
<pjb>
asarch: the specification for a minimal implementation is the CLHS!
<asarch>
And I was about to asking the way to use this binary file in other programming languages like C
<pjb>
ie. you can just save and load the lisp sources!
<Bike>
boy, you're ambitious
<Bike>
you realize C doesn't define a binary file format either?
<pjb>
asarch: and to use it in C, use libecl!
<asarch>
Bike, touché!
<asarch>
I was thinking last night when I was re-reading my notes (a sea of notes) about a situation when a programmer in Lisp forgot to check a value to prevent a division by zero
<asarch>
The programmer only supplied the binary file of his modules
<asarch>
And I was wondering if there is a way to override a function written in a binary file
<Bike>
you can redefine functions
<Bike>
though there's some conformity issues doing so with compilation units babble babble jargon
<Shinmera>
how the definitions are stored makes no difference
<asarch>
And I was wondering if there was a way to modify that binary file so new programmers could even get a warning message in the future:
<Bike>
usually you'd edit the source and recompile that
<asarch>
I see
<Bike>
if you don't have the source, too bad
<Shinmera>
you can load in a definition that replaces it afterwards
<asarch>
I thought it was like Smalltalk
<Bike>
smalltalk has a defined vm, right
<Bike>
or at least -80 does
<_death>
you could patch the binary but it's not portable
<asarch>
I see
<asarch>
Thank you guys
<asarch>
Thank you very much for clarify my mind :-)
<asarch>
One last question: if I (load "the-original-binary-file-from-the-programmer.fasl") and the I (load "my-source-code-with-the-corrections.lisp"), can I dump this modified environment into a file?
<Bike>
as an image, not a fasl.
<Bike>
but yes.
<asarch>
How?
<Bike>
implementation dependent (or rather it's not in the standard at all, just a common extension). images are a different concept from fasls; it's more like save/load mechanism.
Oladon has joined #lisp
<asarch>
Like a session
<asarch>
?
<Bike>
yes, exactly.
<asarch>
That's great
<asarch>
I could share my image with you so you could help me
harryTrout has joined #lisp
damke_ has joined #lisp
<Shinmera>
It's not that easy. Can't have things like threads or open files in an image.
Karl_Dscc has quit [Remote host closed the connection]
<asarch>
Oh :-(
sindan has joined #lisp
shka_ has quit [Ping timeout: 264 seconds]
<aeth>
Would it be hard to write a decompiler for popular CL implementations? I guess it wouldn't have the macros, so it would look very low-level (e.g. iteration would just be go in a tagbody), but guessing the macros could be an extra step (and if you knew the implementation, you'd at least know exactly what a built-in macro would generate)
attila_lendvai has quit [Read error: Connection reset by peer]
damke has quit [Ping timeout: 264 seconds]
<Bike>
decompilers are really hard
<Bike>
before you talk about macros it's non trivial to recognize shit like bindings
<asarch>
If I (load "the-original-binary-file-from-the-programmer.fasl"), is there any way to list the recent-loaded functions?
djuber has joined #lisp
<aeth>
I think CL makes some parts easier, though. I don't think it strips the symbols? At least for things in the global environment (it might do whatever it wants for lexical environments)
<Bike>
asarch: you should think of fasls as the name implies: "fast load". it's conceptually just an accelerated version of loading the source file.
harryTrout has quit [Ping timeout: 260 seconds]
attila_lendvai has joined #lisp
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
<Bike>
which can have arbitrary side effects for which there are no introspection
<sindan>
Is there any way to know whether getf has found the indicator it was looking for? In a place where I know what *cannot* be there, it's easy to choose a default for getf, but used as a mechanism to retrieve arbitrary objects from many places with varied data, there is no way to choose a safe default, or am I missing something?
<Shinmera>
sindan: it has a default value you can pass it
<Bike>
for the default you can use a unique object.
<Bike>
like the result of gensym, or a fresh cons.
<kamyar>
Please help me to decide to use Common Lisp for some Machine Learning microservice
orivej has joined #lisp
<sindan>
a symbol out of make-symbol would be garbage-collected at the end of the function?
<pjb>
kamyar: wouldn't a nVidia card and CUDA be better?
<pjb>
sindan: yes. just like a gensym, if it's not referenced anymore.
<kamyar>
pjb: The problem is not so complicated! We may just wanna predict a price for some e-hailing service
<sindan>
pjb: thanks
<pjb>
kamyar: CL is a general programming language, so you can use it to implement any algorithm.
mflem has joined #lisp
<pjb>
kamyar: I would certainly use it for that. However, people sometimes expect things to go faster, even if with more bugs, so they often prefer C, or hardware solutions.
<kamyar>
pjb: No! I dont use C for such problems! We have a working code in Python, which runs a bit slow and may tease customers.
<pjb>
kamyar: then CL will be an improvement, if you use ccl or sbcl.
<fouric>
Anyone have thoughts on a Python <-> CL FFI?
<kamyar>
And I guess the performance of CL would be very close to its C counterpart!
<kamyar>
Since it compiles to machine native code
<fouric>
I'm tired of people letting me that Common Lisp isn't as useful as Python because of the lack of libraries, and want to do something about it - that preferably doesn't involve re-writing all of said libraries.
<pjb>
asarch: if you intend to redefine a function, you should declare it notinline (which doesn't mean it cannot be inlined but that if it is redefined, its redefinition will be taken into account).
<pjb>
fouric: cf. els a couple of years ago.
<kamyar>
fouric: The wise choise is to write Python extension with Lisp, not vice-versa
<fouric>
kamyar: yeah, but there are several million people on the internet who aren't wise and have already written Python code
<Shinmera>
There is a python compiler for CL, so you can load python sources into CL.
<kamyar>
fouric: I didnt mean writing Python is not wise!
<stacksmith>
yup.
<kamyar>
fouric: I meant calling a faster language from within a slow one is not wise
<kamyar>
fouric: Sorry! Calling a slower language from within a fast one is not wise
<kamyar>
I am a Haskell and Python programmer, and the code in Haskell runs many times faster than Python! Sometimes 10 times faster!
<kamyar>
So calling Python from within Haskell is rarely acceptable
<kamyar>
So is Lisp
mareskeg has quit [Ping timeout: 260 seconds]
mareskeg has joined #lisp
<fouric>
kamyar: I agree with that generalization - in this case, though, the problem I'm trying to solve has to do with the availability of code in Python vs. CL, less so than application performance. Thanks anyway though :)
mareskeg has quit [Remote host closed the connection]
mareskeg has joined #lisp
<fouric>
pjb: Shinmera: thank you!
Pierpa has joined #lisp
<pjb>
kamyar: you can call a slower language from a faster one, to interpret scripts.
mareskeg has joined #lisp
<Cthulhux>
i load javascript from my cpp software as a scripting language
mareskeg has quit [Remote host closed the connection]
<fouric>
(although seriously, this looks even closer to what I wanted)
mareskeg has joined #lisp
desaulniersp_ has joined #lisp
attila_lendvai has quit [Read error: Connection reset by peer]
zmt01 has joined #lisp
spoonie has quit [Read error: Connection reset by peer]
mareskeg has quit [Remote host closed the connection]
zmt00 has quit [Read error: Connection reset by peer]
zmt01 has quit [Remote host closed the connection]
<fouric>
(thanks)
zmt00 has joined #lisp
random-nick has quit [Ping timeout: 264 seconds]
attila_lendvai has joined #lisp
mareskeg has joined #lisp
kamyar has quit [Ping timeout: 240 seconds]
mareskeg has joined #lisp
kark has joined #lisp
zaquest has quit [Remote host closed the connection]
zaquest has joined #lisp
dddddd has quit [Ping timeout: 240 seconds]
dddddd has joined #lisp
gendl has quit [Ping timeout: 240 seconds]
mareskeg has quit [Ping timeout: 248 seconds]
hjek has joined #lisp
gendl has joined #lisp
damke has joined #lisp
damke_ has joined #lisp
damke__ has quit [Ping timeout: 264 seconds]
mareskeg has joined #lisp
damke has quit [Ping timeout: 264 seconds]
mareskeg has quit [Remote host closed the connection]
mareskeg has joined #lisp
pilfink has quit [Quit: ERC (IRC client for Emacs 26.0.91)]
EvW1 has quit [Ping timeout: 256 seconds]
shenghi has quit [Quit: WeeChat 2.0.1]
shenghi has joined #lisp
python476 has quit [Read error: Connection reset by peer]
mareskeg has quit [Ping timeout: 248 seconds]
jmercouris has joined #lisp
gingerale has quit [Ping timeout: 260 seconds]
Kundry_Wag has joined #lisp
gingerale has joined #lisp
mareskeg has joined #lisp
Kundry_Wag has quit [Ping timeout: 240 seconds]
<jmercouris>
most useful python libraries are written in C and wrapped in python anyway
<jmercouris>
at least in the ml space
<jmercouris>
so there is no point in wrapping python with cl, since cffi already exists
mareskeg has quit [Ping timeout: 264 seconds]
<fouric>
I was under the impressive that only the compute-heavy bits were wrapped and there was a lot of less intensive logic stuff being done in Python
<fouric>
at least for *some* libraries
<jmercouris>
your impression is correct, sometimes
<jmercouris>
it's really lib dependent
fikka has quit [Ping timeout: 256 seconds]
<fouric>
I've heard that numpy is a thin wrapper, but haven't used it myself, so not sure :?
<jmercouris>
if you'd use numpy, you'd see that
<jmercouris>
it doesn't even look at all like idiomatic python
<jmercouris>
what a right mess, that and pandas... but they are so useful
<jmercouris>
so, it is tolerated in the python community, and even encouraged by some zealots
<jmercouris>
just to be specific, I mean pandas is not-idiomatic, I can't speak as to how much of it is not written in python
Tobbi has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<asarch>
How would I do that pjb?
<asarch>
(The function not inline)
mareskeg has joined #lisp
mareskeg has quit [Remote host closed the connection]
mareskeg has joined #lisp
mishoo has joined #lisp
<Cthulhux>
hmm.. how would i tell ningle to join the "/*" route only once instead of just recursively going there every time?
<Cthulhux>
(yes, "/*" is ugly - sorry)
mareskeg has quit [Remote host closed the connection]
mareskeg has joined #lisp
JammyHammy has joined #lisp
damke has joined #lisp
dandruff has joined #lisp
asarch has quit [Quit: Leaving]
<dandruff>
Is there an up-to-date window manager written in Scheme?
<Shinmera>
Try #scheme
mareskeg has quit [Ping timeout: 256 seconds]
<dandruff>
ok
Pierpa has quit [Ping timeout: 260 seconds]
<Shinmera>
There is one written in Common Lisp, which would be on-topic.
damke_ has quit [Ping timeout: 264 seconds]
<Cthulhux>
there are some written in common lisp, but only one relevant one (i even forgot the name of the other..)
willmichael has quit [Read error: Connection reset by peer]
damke_ has joined #lisp
willmichael has joined #lisp
nabok has quit [Read error: Connection reset by peer]
<dandruff>
Scheme is a Lisp, isn't it? Cthulhux: I'm considering Stumpwm.
<Cthulhux>
stumpwm is really nice
<Shinmera>
Scheme is not Common Lisp. See the topic.
<Cthulhux>
scheme is "a lisp"
<dandruff>
ok
<Cthulhux>
i find this channel name to be incorrect as well though ;)
damke has quit [Ping timeout: 264 seconds]
damke has joined #lisp
hifitim has joined #lisp
damke_ has quit [Ping timeout: 264 seconds]
tazjin has quit [Ping timeout: 240 seconds]
tazjin has joined #lisp
mareskeg has joined #lisp
dmiles has quit [Ping timeout: 260 seconds]
attila_lendvai has quit [Read error: Connection reset by peer]
<fouric>
For general Lisp-family questions, see ##lisp!
<whoman>
dandruff: i like EXWM
fikka has joined #lisp
attila_lendvai has joined #lisp
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
mareskeg has quit [Ping timeout: 264 seconds]
dmiles has joined #lisp
lroca has quit [Quit: lroca]
<pjb>
dandruff: you wanted ##lisp
<pjb>
##lisp is lisp in general, #lisp is specifically Common Lisp
<dandruff>
whoman: that looks really cool! I might go with that. Thanks.
<dandruff>
pjb: ok
dandruff has quit [Quit: Page closed]
<Cthulhux>
exwm could need multi-threading.
ebrasca has joined #lisp
<whoman>
it is quite cool. no problem ^_^
<ebrasca>
Hi
<whoman>
elisp has some thread stuff now, perhaps we will see this in exwm?
<Cthulhux>
"some", yes - but it lacks wide adoption
<whoman>
Cthulhux: but i am not sure as exwm never blocks for me, just emacs itself on some operations
<Cthulhux>
that's the major problem i have with emacs (yet): it blocks "on some operations".
<ebrasca>
How to refactor lees times my programs?
mareskeg has joined #lisp
dddddd has quit [Ping timeout: 256 seconds]
hifitim has quit [Ping timeout: 252 seconds]
<_death>
ebrasca: I think it has a lot to do with practice, and with how much you already know about the domain.. or, with how little you care about maintenance I guess ;)
mareskeg has quit [Ping timeout: 248 seconds]
<ebrasca>
_death: I like to maintenance , but I only think in 1 step at a time. It make with problems problesms to solve later.
dddddd has joined #lisp
hifitim has joined #lisp
hifitim has quit [Client Quit]
trocado has joined #lisp
<_death>
ebrasca: right, so first figure things out and don't care about aesthetics.. this tends to happen when you're exploring new territory
<_death>
ebrasca: but with programming experience and knowledge of the domain, you already have heuristics that guide you to a clearer description of the solution
mareskeg has joined #lisp
<_death>
and many times in lisp, the description of the problem may serve as the description of the solution, with a bit of help :)
<ebrasca>
How to deal with clusters of data in my fat32 implementation is my problem. (disk to ram and ram to disk)
marusich has quit [Ping timeout: 252 seconds]
zaquest has quit [Remote host closed the connection]
mareskeg has quit [Ping timeout: 264 seconds]
zaquest has joined #lisp
<_death>
maybe start by listing some use cases.. how and why one might use your implementation
<ebrasca>
_death: There is no other fat32 implementation in mezzano.