<mfiano>
no-defun-allowed: They can, but not typically. Good game development is about balancing the work between the CPU and the GPU. Usually you start with pre-allocating large buffers up front and sending them to the gpu, then referencing them with handles on both ends. It can be beneficial to do this at runtime though for some things (called batching).
<mfiano>
I can assure you, the GC, at least on SBCL, is not the issue you need to worry about with gamedev in Lisp
GZJ0X_ has quit [Remote host closed the connection]
GZJ0X_ has joined #lisp
<no-defun-allowed>
mfiano: Okay. I know that for audio processing, you can usually preallocate, but I've had mixed signals with video games.
<mfiano>
The issue is throwing away a lot of the niceties of the language (read: CLOS), as it's more than an order of magnitude slower.
<mfiano>
(among other dynamic language problems)
random-nick has quit [Ping timeout: 256 seconds]
jibanes has quit [Ping timeout: 240 seconds]
jibanes has joined #lisp
herlocksholmes has quit [Quit: Hasta la victoria, siempre!]
<mfiano>
To give you an idea of what's possible, I can render tens of thousands of game objects per frame, where a frame is 1/60 seconds, on a single thread, which includes a ton of math and thousands of hash table lookups, and the only significant thing slowing that down is CLOS. Structs help a lot though :)
herlocksholmes has joined #lisp
herlocksholmes has quit [Client Quit]
skapata has quit [Remote host closed the connection]
jibanes has quit [Ping timeout: 265 seconds]
jibanes has joined #lisp
herlocksholmes has joined #lisp
jibanes has quit [Ping timeout: 265 seconds]
orivej has quit [Ping timeout: 260 seconds]
orivej has joined #lisp
jibanes has joined #lisp
jealousmonk has joined #lisp
Oladon has joined #lisp
jibanes has quit [Ping timeout: 265 seconds]
jibanes has joined #lisp
Lord_of_Life_ has joined #lisp
Lord_of_Life has quit [Ping timeout: 246 seconds]
akrl has quit [Read error: Connection reset by peer]
<Xach>
sorry for the line noise. network problems.
<Xach>
I just had a function that does something like (list (ldb (byte 1 index) i) (ldb (byte 1 index) j) (ldb (byte 1 index) k)) so I thought, "i am a clever fellow, i hate typing (byte 1 index) so much, i will use LET and bind it once, then reuse it."
<Xach>
(let ((spec (byte 1 index))) (list (ldb spec i) (ldb spec j) (ldb spec k))) or so
<Xach>
the latter is way way slower on sbcl!
<Xach>
i am not *too* surprised, but i am a little surprised.
<beach>
ebrasca: I am doing quite well thank you very much. The past few days, I have made great progress with the SICL bootstrapping procedure, so I am very pleased with that.
<beach>
What about yourself?
<ebrasca>
beach: I am fine , just somewhat lost wichout an concrete goal or how to make Mezzano better.
<beach>
Hmm. I see.
aeth has quit [Ping timeout: 256 seconds]
sgibber2018 has joined #lisp
aeth has joined #lisp
akrl has quit [Read error: Connection reset by peer]
akrl has joined #lisp
sgibber2018 has quit [Quit: WeeChat 2.9]
skapata has joined #lisp
shifty has joined #lisp
mange has quit [Ping timeout: 256 seconds]
jibanes has quit [Ping timeout: 272 seconds]
jibanes has joined #lisp
<lotuseater>
beach: so I now wrote a little test dispatch readmacro #? with the numarg summing to first n numbers e.g. #100? => 5050 :)
<beach>
I see. So you are fine with the signature of the dispatch function now?
<lotuseater>
yes I think so
<beach>
Excellent!
<ldbeth>
good afternnon
<beach>
Hello ldbeth.
jibanes has quit [Ping timeout: 246 seconds]
<lotuseater>
step by step climbing the mountain ^^
<fiddlerwoaroof>
ebrasca: any chance Mezzano works on arm64?
jibanes has joined #lisp
<lotuseater>
from what i saw about Mezzano it's great. but something went wrong multiple times starting in qemu after successfully compiled
<ebrasca>
fiddlerwoaroof: Last think I read about arm64 is someone is working on making it work againg. I think it have bitroted.
<fiddlerwoaroof>
lotuseater: yeah, I've had an issue where the official boot images just don't work
<lotuseater>
and if I click in the window my window manager (xmonad) freezes :D
<fiddlerwoaroof>
if i remember correctly, there's a similar issue in the bootloader project
fiddlerwoaroof has quit [Quit: Gone.]
fiddlerwoaroof has joined #lisp
<lotuseater>
fiddlerwoaroof: nice fractal picture on your github
<fiddlerwoaroof>
Thanks
jibanes has quit [Ping timeout: 272 seconds]
<lotuseater>
ah now I see your recently mentioned project cl-git. and you have lenses? :o they are a powerful tool in Haskell, but not easy in category theory
jibanes has joined #lisp
Oladon has quit [Quit: Leaving.]
zaquest has joined #lisp
FreeBird_ has joined #lisp
<fiddlerwoaroof>
lotuseater: the nice thing about lenses is that you don't have to think too hard about the theory to use them effectively
zaquest has quit [Remote host closed the connection]
<fiddlerwoaroof>
that data-lens project is sort of badly named, though
FreeBirdLjj has quit [Ping timeout: 240 seconds]
<fiddlerwoaroof>
It does have an implementation of lenses (Van Laarhoven encoding, if that means anything)
<lotuseater>
ah okay. I'm stuck between those :D
<fiddlerwoaroof>
However, it's mostly about a style of programming I've found convenient: higher-order functions that produce functions that can be composed together to build up operations piecemeal
<fiddlerwoaroof>
So, instead of some complicated loop construct, I do: (alexandria:compose (data-lens:over '1+) (data-lens:over 'parse-integer))
<fiddlerwoaroof>
(this one isn't so bad in loop, I guess)
<lotuseater>
yes i miss that opportunity sometimes
<fiddlerwoaroof>
If you have experience with Clojure, I plan to "eventually" rebuild it around transducers (maintaining backwards compatibility, because I'm opposed to the idea of breaking changes)
FreeBirdLjj has joined #lisp
FreeBird_ has quit [Ping timeout: 258 seconds]
<lotuseater>
hm not much, more with Haskell, my 2nd programming religion :)
<fiddlerwoaroof>
lotuseater: my path is sort of unusual. I got really into Haskell around '08, but learning CL cured me of most of my desires for statically checked types
<lotuseater>
I'll look it up
<lotuseater>
oh yes, mine sort of same ^^
<fiddlerwoaroof>
Transducers are basically a cool trick with continuations to enable explicit stream fusion
jibanes has quit [Ping timeout: 258 seconds]
<lotuseater>
ah continuations :) the "Mother of all Monads" ^^
<lotuseater>
okay stream fusion I never did yet
<fiddlerwoaroof>
The basic problem is that MAPCAR and REMOVE-IF-NOT and friends all cons up intermediate collections. You can replace the CONS call with a callback that every intermediate operation calls with the next element to be produced.
<lotuseater>
I wrote some query
<fiddlerwoaroof>
Then, you pass in a base operation that actually builds up a collection to the composed stack of operations
<lotuseater>
phew sounds nontrivial
<lotuseater>
so they mess up the heap very quickly with non needed constructs?
akrl has quit [Read error: Connection reset by peer]
akrl has joined #lisp
jibanes has joined #lisp
ecraven has quit [Quit: bye]
ecraven has joined #lisp
<ldbeth>
that's the whole point of beening lazy
<ldbeth>
and why iterators get handy
<lotuseater>
yees
<lotuseater>
combined with memoization it's powerful
<ldbeth>
i don't know why but I trend to get over think a lot about efficiency when write ML/Haskell
<lotuseater>
some people say liking this and lisp is kind of paradox
zcheng3 has joined #lisp
igemnace has joined #lisp
jibanes has quit [Ping timeout: 260 seconds]
jibanes has joined #lisp
Bike has quit [Quit: Lost terminal]
<fiddlerwoaroof>
lotuseater: transducers are eager and also more efficient memory-wise
<lotuseater>
ah okay
<fiddlerwoaroof>
Laziness is great, until you try to profile your code
<fiddlerwoaroof>
I think one of the most interesting things here is that the data transformation (the composed calls to MAPPING) are completely decoupled from the code that's responsible for iterating down the input sequence and from the code that's responsible for building up the result value
momozor has joined #lisp
g0d_shatter has joined #lisp
<momozor>
Hi. I'm trying to remove an element from a specific index of an adjustable array, but I'm not really sure how I could do this without removing the array fill pointer (using setf)
<beach>
momozor: What do you want to happen with the elements that follow the one you remove?
<beach>
And why do you think you need to "remove the fill pointer" whatever that may mean?
g0d_shatter has quit [Read error: Connection reset by peer]
<beach>
momozor: Hello?
<phoe>
morniiiing
<beach>
Hey phoe.
<phoe>
momozor: let's assume your array looks like #(1 2 3 4 5 6 7) and you want to remove 4 from it. do you want #(1 2 3 5 6 7) afterwards?
akrl has quit [Read error: Connection reset by peer]
akrl has joined #lisp
<phoe>
because this requires you to copy all elements followins 4 onto their new positions and is therefore O(n) in time
<phoe>
or can it look like #(1 2 3 7 5 6)? because that is O(1) so much cheaper, but does not maintain order
<momozor>
sorry for the delayed replies, was crafting the paste
<beach>
momozor: Your problem is that you are using REMOVE-IF.
<phoe>
you likely don't want a vector as your data structure then.
<beach>
momozor: It creates a new vector and very likely copies all the elements from the old one to the new one.
<momozor>
ouh
<beach>
momozor: So then, you might as well copy the elements following the one you want to remove, if order matters to you.
<beach>
momozor: If order doesn't matter to you, just move the last element to the place of the element you want to remove, and decrement the fill pointer.
<no-defun-allowed>
Perhaps a hash table keyed by ID would be more appropriate?
<beach>
That works provided the order doesn't matter.
<phoe>
what no-defun-allowed said
<beach>
momozor: Is the order between the elements important?
<beach>
momozor: If not, you have a "dictionary" data type, and implementing a dictionary using a sequence is usually a bad idea.
<beach>
momozor: Another thing is that you seem to be using lists to define each entry. It would probably be more appropriate to use a standard class with slots for ID, TITLE, etc.
<beach>
s/define/represent/
<momozor>
ah thanks..I'll try you guys suggestions. I thought vector for my purpose is quite suitable.
shifty has joined #lisp
momozor has quit [Remote host closed the connection]
<no-defun-allowed>
The time complexity of the operations for a dictionary type are probably not very good when using a vector--oh never mind.
momozor has joined #lisp
toorevitimirp has joined #lisp
akrl has quit [Read error: Connection reset by peer]
akrl has joined #lisp
ex_nihilo has joined #lisp
momozor has quit [Quit: leaving]
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #lisp
shifty has quit [Ping timeout: 264 seconds]
andreyorst has joined #lisp
FreeBirdLjj has quit [Ping timeout: 265 seconds]
akrl has quit [Read error: Connection reset by peer]
akoana has quit [Quit: leaving]
akrl has joined #lisp
hendursa1 has joined #lisp
hendursaga has quit [Ping timeout: 240 seconds]
Aurora_v_kosmose has quit [Remote host closed the connection]
Aurora_v_kosmose has joined #lisp
frgo has joined #lisp
pve has joined #lisp
Nilby has joined #lisp
surabax has joined #lisp
ogamita has joined #lisp
shka_ has joined #lisp
hugh_marera has quit [Quit: Ping timeout (120 seconds)]
oxum_ has joined #lisp
rogersm has joined #lisp
oxum has quit [Ping timeout: 256 seconds]
vaporatorius has joined #lisp
vaporatorius has quit [Changing host]
vaporatorius has joined #lisp
vaporatorius__ has quit [Ping timeout: 264 seconds]
ogamita has quit [Ping timeout: 272 seconds]
kaftejiman has joined #lisp
luckless has joined #lisp
luckless has quit [Remote host closed the connection]
rogersm has quit [Quit: Leaving...]
luckless has joined #lisp
Codaraxis_ has joined #lisp
Codaraxis__ has quit [Ping timeout: 258 seconds]
dilated_dinosaur has quit [Ping timeout: 260 seconds]
aindilis` has joined #lisp
aindilis has quit [Ping timeout: 260 seconds]
dilated_dinosaur has joined #lisp
random-nick has joined #lisp
aartaka_d has quit [Read error: Connection reset by peer]
lotuseater has quit [Remote host closed the connection]
Bike has joined #lisp
lotuseater has joined #lisp
eden has joined #lisp
cosimone has joined #lisp
the-smug-one has joined #lisp
GZJ0X_ has quit [Remote host closed the connection]
GZJ0X_ has joined #lisp
GZJ0X_ has quit [Read error: Connection reset by peer]
GZJ0X_ has joined #lisp
akrl has quit [Read error: Connection reset by peer]
akrl has joined #lisp
andreyorst has joined #lisp
GZJ0X_ has quit [Remote host closed the connection]
<Xach>
easye: i have used https://github.com/xach/zaws in the past but it may be out of date with respect to auth these days
GZJ0X_ has joined #lisp
<Xach>
It's also more of a building block for a tool than a tool
GZJ0X_ has quit [Remote host closed the connection]
GZJ0X_ has joined #lisp
GZJ0X_ has quit [Remote host closed the connection]
GZJ0X_ has joined #lisp
ogamita has quit [Remote host closed the connection]
GZJ0X_ has quit [Remote host closed the connection]
GZJ0X_ has joined #lisp
GZJ0X_ has quit [Remote host closed the connection]
akrl has quit [Read error: Connection reset by peer]
akrl has joined #lisp
EvW has quit [Ping timeout: 258 seconds]
mrios222 has joined #lisp
<mrios222>
hi, I have a question about hunchentoot. I set the content-type* variable to application/json, but the file that hunchentoot serves up is a html file -- an empty html file.
<mrios222>
should I try to restart the server to see if it gets it right the second time? How would I do that?
jibanes has quit [Ping timeout: 256 seconds]
<Xach>
mrios222: it is hard to say for sure without seeing the code
<the-smug-one>
mrios222: It sounds like you (setf *content-type*) at the top-level
<mrios222>
It's the code that is on pages 638 and 639 of Common Lisp Recipess
<Xach>
mrios222: i don't have that book :(
jibanes has joined #lisp
<Xach>
the-smug-one: normally that would error due to unbound reply
<lottaquestions>
phoe: In yoour book on page 141, in the macroexpansion of the def-condition, you return the name of the defclass'ed foo-condition. Why is this?
ldbeth has joined #lisp
<lottaquestions>
phoe: The only explanation you give for this on the same page is "In addition, we return the name of the condition from the final form, as dictated by the Common Lisp standard."
<Xach>
mrios222: so it does set the content-type properly
<lottaquestions>
phoe: Where can I find this in the standard?
<Xach>
mrios222: what do you get from (ql:where-is-system "yason")?
<lottaquestions>
minion: When phoe comes online, please ask him to look at my questions.
<minion>
yesterday
<ldbeth>
unfortunately the naive implementation of finite state automata does not work at 500,000 words scale
<Xach>
lottaquestions: I have not read the book, but if the intent is to mimic define-condition, the spec dictates that the return value of that macro is the name.
<lottaquestions>
minion: Ask phoe to checkout my questions when he next comes online
<minion>
does torturing a poor bot with things beyond its comprehension please you?
<mrios222>
xach ultralisp
<Xach>
mrios222: normally it would give a pathname
<Xach>
mrios222: i think it is possible that you have an incompatible version of yason
<mrios222>
I edited out my home path and replaced it with ~
<Xach>
sure
<Xach>
mrios222: what happens if you use the quicklisp-dist yason, version 0.7.8?
waleee-cl has joined #lisp
<mrios222>
xach how can I make sure that I use that version instead of the one I have right now?
<mrios222>
xach sorry, I am still figuring out many basic things
<Xach>
mrios222: one way is to do ql-dist::(disable (dist "ultralisp")) and restart
<lottaquestions>
Xach: Gotta head out for some hiking. But will revisit this later. I have seen similar code not targetting conditions by stylewarning in his cl-algebraic-data-type project
<Xach>
lottaquestions: DEFUN, DEFCLASS, and many other DEF-things return the name of the thing that was defined.
hendursa1 has quit [Quit: hendursa1]
<Xach>
mrios222: sure, no problem, i like to help out if i can.
hendursaga has joined #lisp
<mrios222>
xach ql-dist::(disable (dist "ultralisp") gives me the error that there are too many :s
<Xach>
mrios222: oh, sorry, that is an sbcl feature. you can also do (ql-dist:disable (ql-dist:dist "ultralisp"))
<Xach>
what lisp are you using?
<mrios222>
xach sbcl
<ldbeth>
:D
<Xach>
i think then you may have typed something diferent than i did
<mrios222>
xach I just tried the most recent command you suggested and that one went through.
<Xach>
mrios222: ok, when you restart lisp, re-try your hunchentoot code, and see what happens.
<Xach>
jackdaniel: who broke clim??
<mrios222>
xach If I'm using the repl in SLIME, how do I restart?
<mrios222>
xach slime-quit-lisp
<Xach>
mrios222: i use ,restart
<mrios222>
xach wow, it works! Thanks! You just saved me from a lot of frustration and confusion! I really appreciate it.
<mrios222>
xach It's great to see the example working :)
<Xach>
mrios222: no problem, glad to help. sorry to see that ultralisp has some kind of incompatible library.
matryoshka has joined #lisp
<mrios222>
xach Well, I've definitely learned something important about libraries and debugging potential issues with them. From now on I'll stick with the vanilla quicklisp just to be safe ;)
<lottaquestions>
Xach: I got slightly delayed. So still around. Here is an excerpt of the macroexpansion I am asking about: https://pastebin.com/qNfB3QYK
<lottaquestions>
phoe: phoe! Check out my question
<lottaquestions>
From Chapter 3 of your book
<lottaquestions>
which I am loving by the way
iskander has quit [Ping timeout: 246 seconds]
iskander- has joined #lisp
Codaraxis_ has quit [Read error: Connection reset by peer]
<Oladon>
phoe: So I asked a friend the other day, "happen to have any _good_ examples of the condition system in use?" He said "Yes" and a few days later I got your book in the mail :D
<phoe>
Oladon: :D
<phoe>
there are even more examples in the online appendix, please remember to check it out
<Oladon>
Sweet, will do. I'm enjoying it so far!
<phoe>
marcoxa: I've allowed to crosspost it to /r/Common_Lisp
<easye>
_CLCS_ is the stocking stuffer for the CONS fans in the 2020 holidays...
<Oladon>
Hehe
astronavt has quit [Quit: ...]
astronavt has joined #lisp
astronavt has quit [Remote host closed the connection]
<kenran>
I recently found the lispPackages attribute in nixpkgs, now I'm wondering whether there are working setups for CL (using SBCL) that leverage nix integration for packages yet. I wasn't able to find one googling around, but since I'm new to common lisp I might not have looked in the right places. Do you have any hints for me?
thmprover has joined #lisp
jonatack has quit [Quit: jonatack]
aindilis has joined #lisp
akrl has quit [Read error: Connection reset by peer]
<fiddlerwoaroof>
I used it extensively at my last job and fixed a couple bugs I found
<fiddlerwoaroof>
One issue with AWS APIs is that even official clients like boto don't always work as the documentation specifies
jonatack has joined #lisp
jonatack has quit [Ping timeout: 240 seconds]
jonatack has joined #lisp
eta has quit [Ping timeout: 256 seconds]
Fare has joined #lisp
amerigo has joined #lisp
eta has joined #lisp
matryoshka has quit [Read error: Connection reset by peer]
matryoshka` has joined #lisp
Jeanne-Kamikaze has joined #lisp
zulu-inuoe has joined #lisp
zcheng3 has quit [Ping timeout: 256 seconds]
jibanes has quit [Ping timeout: 260 seconds]
jibanes has joined #lisp
matryoshka` has quit [Read error: Connection reset by peer]
matryoshka has joined #lisp
ralt has quit [Quit: Connection closed for inactivity]
<thmprover>
For Emacs, is sly really that much better than slime?
<loke[m]>
thmprover: no. It's worse.
jpli has joined #lisp
<loke[m]>
Sly intentionally removed support for presentations, mainly because the author never used them. It makes it much less powerful.
<thmprover>
Ah, I see.
<thmprover>
It looks like, if I were completely new to programming and Lisp, I may want to use sly instead of slime...but that's the only case that came to mind. I wasn't sure if there was any "extra batteries" not mentioned or discussed.
hnOsmium0001 has joined #lisp
<fiddlerwoaroof>
Slime has output streams that let you stream text to an emacs buffer
<fiddlerwoaroof>
To my knowledge, this hasn't been ported to Sly
<loke[m]>
I don't see the point of sly. It's a version of slime where half the useful features are removed.
<fiddlerwoaroof>
Also, swank supports graphics in the repl
<loke[m]>
fiddlerwoaroof: yeah, that's pretty cool, although I've never used it in practice.
<loke[m]>
But you can build your own presentations to display Lisp objects.
<fiddlerwoaroof>
loke[m]: I'm curious about this presentation stuff, though: I've used the basic stuff in the repl
jpli has joined #lisp
ogamita has joined #lisp
ogamita is now known as Guest41741
Guest41741 has quit [Remote host closed the connection]
matryoshka` has joined #lisp
matryoshka has quit [Read error: Connection reset by peer]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
<loke[m]>
fiddlerwoaroof: I mainly use it to copy/paste the output as an argument to another call.
<loke[m]>
A few commands above the output of some function may have returned some class instance, and it's useful to be able paste it into the arguments to a later call)
<fiddlerwoaroof>
Ah, yeah, I use that alot
<fiddlerwoaroof>
I was thinking there was some way to define custom displays, besides PRINT-OBJECT and friends
amk has quit [Read error: Connection reset by peer]
amk has joined #lisp
ralt has joined #lisp
rogersm has quit [Quit: Leaving...]
jibanes has quit [Ping timeout: 240 seconds]
jibanes has joined #lisp
matryoshka has joined #lisp
hiroaki has quit [Ping timeout: 272 seconds]
jibanes has quit [Ping timeout: 264 seconds]
jibanes has joined #lisp
<Xach>
loke[m]: sly's trace dialog has been a real helper to me. i'm working on a threaded applicaton and the separate tracing with object persistence is very handy.
<phoe>
we need to merge them back someday
<phoe>
into something called... slyme
hiroaki has joined #lisp
catern has quit [Ping timeout: 240 seconds]
jibanes has quit [Ping timeout: 265 seconds]
jibanes has joined #lisp
catern has joined #lisp
X-Scale` has joined #lisp
eden has quit [Killed (Sigyn (Spam is off topic on freenode.))]
aartaka has joined #lisp
X-Scale has quit [Ping timeout: 264 seconds]
X-Scale` is now known as X-Scale
gproto23 has joined #lisp
aaaaaa has quit [Quit: leaving]
aartaka_d has quit [Ping timeout: 240 seconds]
gproto23 has quit [Client Quit]
eden has joined #lisp
a0 has joined #lisp
a0 has quit [Remote host closed the connection]
phantomics has quit [Read error: Connection reset by peer]
imode has joined #lisp
jibanes has quit [Ping timeout: 264 seconds]
mokulus has joined #lisp
jibanes has joined #lisp
<easye>
phoe: +1 for slyme: time to end another schism!
<ck_>
will it work on lucid emacs?
<easye>
ck_: OFC.
<easye>
slyme will work everywhere. Eventually it will replace cider for Clojure while working in VSCode, Atom, and whatever else the flavor of the month becomes.
<ck_>
I'm convinced
<_death>
ynferior modes everywhere
eta has quit [Ping timeout: 260 seconds]
lilgopher has joined #lisp
narimiran has quit [Ping timeout: 272 seconds]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
jibanes has quit [Ping timeout: 260 seconds]
eden has quit [Quit: Leaving]
jibanes has joined #lisp
eden has joined #lisp
eta has joined #lisp
varjag has joined #lisp
phantomics has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
EvW has quit [Ping timeout: 260 seconds]
igemnace has quit [Remote host closed the connection]
lilgopher has quit [Quit: Computer went to sleep.]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
andreyorst has quit [Ping timeout: 265 seconds]
skapata has quit [Remote host closed the connection]
amb007 has quit [Read error: Connection reset by peer]
marcoxa has quit [Ping timeout: 256 seconds]
amb007 has joined #lisp
lilgopher has joined #lisp
akoana has joined #lisp
EvW has joined #lisp
thmprover has quit [Ping timeout: 272 seconds]
Codaraxis has joined #lisp
zabow has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
jibanes has quit [Ping timeout: 256 seconds]
eden has quit [Ping timeout: 240 seconds]
eden has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
karlosz has quit [Quit: karlosz]
karlosz has joined #lisp
amb007 has joined #lisp
<fiddlerwoaroof>
One thing I find is that slime-scratch is often better than the slie-repl
<fiddlerwoaroof>
I personally like the ability to just tweak the code and get the output inline in the bufer
jibanes has joined #lisp
asarch has joined #lisp
eden has quit [Ping timeout: 240 seconds]
<asarch>
One very very stupid question: roughly, how many lines was the Lisp written in Lisp from back old days?
<phoe>
I don't fully understand it
<asarch>
And, does that Lisp written in Lisp still exist?
<phoe>
which Lisp do you mean? LISP 1.5?
<asarch>
As far I know, there was the first Lisp. Then, there was a Lisp written in Lisp itself
<asarch>
I guess that was long before Common Lisp
<easye>
fiddlerwoaroof: next level after slime-scratch is using org-mode to evaluate code.
jeosol has quit [Remote host closed the connection]
karlosz has quit [Quit: karlosz]
<easye>
for org-mode to use lisp eval (org-babel-do-load-languages 'org-babel-load-languages '((dot . t) (lisp . t)))
thmprover has joined #lisp
asarch has quit [Remote host closed the connection]
asarch has joined #lisp
<easye>
Then in any babel source block marked as lisp via `#+begin_src lisp` you can simply C-c C-c to run in the active SLIME repl.
zabow has quit [Ping timeout: 256 seconds]
sugarwren has joined #lisp
asarch has quit [Remote host closed the connection]
asarch has joined #lisp
<easye>
Errat: the `(dot . t)` form isn't necessary, but it is nice to bring graphviz along for the ride...
<Alfr>
asarch, you mean those twenty odd lines for an (not CL) evaluator form the LISP 1.5 Programmer's Manual?
ralt has quit [Quit: Connection closed for inactivity]
jw4 has quit [Read error: Connection reset by peer]
jw4 has joined #lisp
<Nilby>
asarch: The first Lisp was written on paper by McCarthy, only a couple of pages. The second Lisp was written in machine code by Russell, translated from the paper. From then on Lisps were written in Lisp, as you can see the core of the Lisp 1.5 code is very small.
toorevitimirp has quit [Remote host closed the connection]
<Nilby>
But some people say the first lisp was actually written by Gödel in his most famous paper.
<thmprover>
(I heard "Godel" and knew it was my time to shine)
<easye>
Which machine did Betrand Russell write the code for?
<thmprover>
Godel's paper arguably was the first instance of a compiler, since he used Godel numbers to encode logic.
<easye>
Naw, Ada had the basics of compilers a good half-century before.
<easye>
Ada Lovelace
<thmprover>
True, I forgot about that.
<thmprover>
Er, well, Russell didn't write code. Arguably the Principia should be read as source code, the reader was the "machine".
luckless has quit [Quit: luckless]
<easye>
Goedel essentially proved theoretically that the _Principia_ was an impossible project. Practically it had been abandoned a decade before.
<thmprover>
That was his first incompleteness theorem, but he used Godel numbering to prove it.
choegusung has joined #lisp
<thmprover>
It would be exciting if he used Lisp, but no :(
<easye>
The Primes are perhaps marginally more foundational than the CONS.
<thmprover>
He fruitlessly spent the remaining 18 years of his life trying to build a time machine to reach a period when Lisp could be enjoyed as freely as today.
<easye>
hah
sugarwren has quit [Quit: Leaving]
<Nilby>
Steve Russell, also write the first video game Spacewar
<thmprover>
Wouldn't multiplication be the cons?
karlosz has joined #lisp
<easye>
Once you know the CONS, you see it everywhere.
<easye>
Until you start dealing with RDF triples, and then you ain't so sure.
<easye>
Steve Russel wrote Spacewars? Wow. I remember somehow seeing it in an arcade in a pizza parlor in the DC beltway in 1978.
<easye>
By random chance. I was entranced. Vector graphics rule!
<easye>
Asteroids appeared shortly afterwards, which was definitely more ubiquitous.
<easye>
As far as I know, Spacewars was never released as in an arcade machine from what I could determine.
<easye>
So, I have no idea how I saw it in a pizza parlor. But it was definitely 1978, as I had just seen _Star Wars_.
<Nilby>
Weirdly, Steve Russell also taught a little Billy Gates how to program.
<easye>
Gee, was Steve Russell at Harvard?
<Nilby>
MIT
matryoshka has joined #lisp
<easye>
So Gates went to MIT to code? He was a Seattle new-money scion who was in Boston for Harvard where he met Ballmer. Gates never officially attended MIT from what I know.
<Nilby>
No, Russell was in Seattle after MIT.
<easye>
Was Spacewars in Lisp?
Jesin has quit [Quit: Leaving]
<easye>
Ah. So after Billy flunked out, and slunked back to the Left Coast.
<Nilby>
Spacewars was in PDP-1,8,10 assembly I think.
jonatack has quit [Ping timeout: 256 seconds]
<easye>
Yeah, that's what I remember.
entre-parenteses has joined #lisp
<deltab>
easye: I'm reading that Spacewar! (1962) inspired Space Wars, the 1977 arcade game
<Nilby>
Right.
<easye>
Ah, I didn't know Spacewar! was 1962. That makes sense.
<easye>
That arcade cabinet couldn't even hold a Soviet PDP-8 clone...
Jesin has joined #lisp
<Nilby>
I played it on a PDP-10 filling 2 rooms with a raised floor.
scymtym_ has joined #lisp
scymtym_ has quit [Remote host closed the connection]
<easye>
Although the Soviet clones of the PDP-8 and PDP-11 where definitely *different* than DEC's
<easye>
Er, wait, DEC didn't do PDPs.
matryoshka` has joined #lisp
<easye>
Oh, yes they did.
matryoshka has quit [Read error: Connection reset by peer]
scymtym has quit [Ping timeout: 256 seconds]
scymtym has joined #lisp
<Nilby>
PDP-10s ran a lot of cool stuff like the original Spacewar, Lisp, and Emacs.
<easye>
varjag: wow. Can I come see them after the pandemic is over?
<varjag>
still haven't got around to building the psu and current loop terminal adapter
<Nilby>
I love all those switches.
<varjag>
easye: it's not much to see, they are just PCBs
<varjag>
were commonly used as controllers in CNC and industrial systems
<easye>
varjag: Alright. But someday I'd like to.
<Nilby>
Of course you emulate, but it's not the same without the noise, smell, and glowy phosphor monitors.
ebrasca has quit [Remote host closed the connection]
<easye>
I once spoke to an engineer who served on Soviet Boomers (ballistic missile subs). He described the "computers" that were just mechanical pieces of wire that rotated that provided all the nuke targeting they needed. The good thing was they were resistant to EMP.
aeth has quit [Ping timeout: 265 seconds]
<easye>
That and the description of being able to throw a tarp over a Flunker interceptor in a field, come back in six-months, and it would fly just made my jaw drop.
izh_ has quit [Quit: Leaving]
aeth has joined #lisp
<easye>
For say, an F-15 it was common to have to have the entire ground crew line up to sweep the 100m around the plane for stray bolts that would otherwise get sucked into the engines and destroy it.
<varjag>
easye: this was on the very early missiles only
<varjag>
the guidance design itself copied from v-2
<Nilby>
Last time I saw people standing on the plane, sweeping with brooms, I got a little worried.
<easye>
I didn't realize that the Soviets also used V-2 stuff. Makes sense, as the Americans didn't get everyone with Operation Paperclip <https://en.wikipedia.org/wiki/Operation_Paperclip>. Without that, the US wouldn't have had any chance to match Sputnik. The Redstone was essentially a V-2.
zabow has joined #lisp
<varjag>
the first two soviet ballistic missiles, r-1 and r-2, were complete faithful copies of v-2
<easye>
But there was a lot more native talent rocket enthusiasts in Russia. It was really Sputnik that kick-started the whole "build a solid state missile in your garage" movement in the 1950-60s
<varjag>
up to r-5 they remained v-2 for the most part
bitmapper has quit [Quit: Connection closed for inactivity]
<varjag>
r-5 introduced warhead separation and was bigger
<easye>
Yeah, I think the Soviets actually overran Pennemuende, right?
<varjag>
r-7 (the predecessor of soyuz) still had some of design elements from v-2
<varjag>
i think so yes, but it was abandoned relatively early in the war
entre-parenteses has quit [Quit: ERC (IRC client for Emacs 27.1)]
<thmprover>
Lisp in small pieces is on sale for...$547.77...
entre-parenteses has joined #lisp
choegusung has quit [Quit: leaving]
<curiouscain>
Bargain!
jibanes has quit [Ping timeout: 256 seconds]
jibanes has joined #lisp
<travv0>
i'd be willing to part with my copy for $400
<easye>
_LiSP_ is a very cool text. I didn't make it through the last few chapters.
<thmprover>
Eh, looking through the preview, it's the same dialog style as "The little prover", which...well, it didn't work for me.
jibanes has quit [Ping timeout: 256 seconds]
<no-defun-allowed>
I don't remember that, but I read LiSP approximately too long ago.
jibanes has joined #lisp
<travv0>
lisp in small pieces isn't dialogue-style like the little prover/schemer
<thmprover>
Oh wait, I'm mixing up LiSP with the Little Lisper, gah
EvW has joined #lisp
<thmprover>
(Amazon recommended the Little Lisper as a consolation prize)
<easye>
_LiSP_ starts out easy, but really ramps up in difficulty towards the end.
<hendursaga>
thmprover: That's just the hard-cover though?
<easye>
But _LiSP_ definitely is one of my "Desert Island Lisp Books". No other book that I know of actually goes into such detail about implementation.
<thmprover>
henursaga: yeah, though I prefer hard-cover when possible (since paperbacks tend to get badly mangled by the ravages of time...at least, in my care)
<Nilby>
I'm offically voiding copyright on long out of print books. Cheers.
<thmprover>
easye: yeah, that's what piqued my interest.
<thmprover>
I'm trying to write a "case study" of a literate program which is a verified implementation of a Lisp interpreter...which is how LiSP came across my radar.
<srandon111>
ane, thmprover do you think common lisp has advantages over clojure these days ?
<no-defun-allowed>
What verification would you do?
<thmprover>
srandon111: Common Lisp's performance is much better than Clojure (I work with Clojure and Clojurescript for a living)
<no-defun-allowed>
The CL condition and object systems are unparalleled, and Clojure doesn't even try.
* easye
is an old dog at this point, who doesn't want to learn new Clojure tricks.
<thmprover>
no-defun-allowed: I would need to write a spec for the small Lisp fragment, then use a theorem prover to demonstrate the interpreter faithfully implements the spec. Or do it by hand.
<no-defun-allowed>
I see. What could you specify?
<thmprover>
This is just a writing experiment to see if I could write a literate program, combined with some form of "literate formal proof".
<Nilby>
srandon111: A programming language is for you to express programs, so why should it matter what other people think? If you like a language, then it's good for you.
pve has quit [Quit: leaving]
<thmprover>
no-defun-allowed: I would probably have several coupled together. A spec for an SECD machine, then a spec for compiling Lisp to the SECD machine instructions, and a third spec for the syntax & semantics of my Lisp fragment.
<thmprover>
I would then need to prove formally that "the diagram commutes" (i.e., if I had a Lisp tree-walking interpreter which faithfully adhered to the semantics of the spec, it would produce the same behavior as the SECD interpreted bytecode).
<no-defun-allowed>
Righteo.
<no-defun-allowed>
I recall that from an ACL2 tutorial. They wrote a stack machine, an interpreter for a language, and a compiler, and proved that the interpreter and stack machine did the same thing.
<thmprover>
srandon111: also the STM for Clojure, while really sophisticated, leads to bloated memory usage UNLESS you are very careful about managing memory with various coding conventions.
<thmprover>
no-defun-allowed: Fascinating! My own experiment stems from a larger project I'm working on, namely, writing a book on theorem provers for mathematicians "from scratch". I'll have to look at that ACL2 tutorial, but I'm basically working with a Blub language + Hoare triples.
<thmprover>
srandon111: in short, unless you are very diligent with your programming, CL is a friendlier language (in my mind)
<ane>
srandon111: yes, the condition system and CLOS make it easier to build large scale programs
jibanes has quit [Ping timeout: 256 seconds]
jibanes has joined #lisp
zcheng3 has quit [Ping timeout: 240 seconds]
srandon111 has quit [Quit: leaving]
* entre-parenteses
<phoe>
entre-parenteses: yes
kenran has quit [Quit: leaving]
<entre-parenteses>
Sorry, new to IRC and testing stuff out...
<phoe>
welcome to IRC then! to the channel #lisp on IRC network Freenode, to be exact
jibanes has quit [Ping timeout: 260 seconds]
<entre-parenteses>
Many thanks! Hopefully I'm not being too disruptive with my fiddling.
jibanes has joined #lisp
amerigo has quit [Quit: Connection closed for inactivity]
<thmprover>
entre-parenteses: I fear you are too polite for the internet.
lisperature has joined #lisp
<Nilby>
We do have fiddlers here.
* easye
watches Rome burn.
<entre-parenteses>
thmprover: Haha, maybe. Just don't want to break too many rules from the get-go. I'm relatively new to CL and hoping to not burn bridges (or Rome) with the community.
<entre-parenteses>
There's a lot to learn.
<phoe>
well then, welcome
<phoe>
#lisp is for general CL discussion, ##lisp is for discussion of all Lisp dialects
gaqwas has joined #lisp
gaqwas has joined #lisp
<phoe>
#lispcafe is for off-topic chat and #clschool is a place where beginners can ask questions
<phoe>
if #clschool is silent, then go to #lisp; if #lisp is occupied with elsething, go to #clschool
<phoe>
that's the summary of everything.
<Nilby>
The more Lisp you learn, the less Lisp you know.
* easye
watches phoe drop the mic,
<ane>
the more lisp, the more lisp
<phoe>
easye: wait, where do I drop the mic and how
<Nilby>
e.g. #<pathname>s
<phoe>
wait, this implies that pathnames are unreadable'
<phoe>
...oh, I see
<phoe>
touche, I enjoyed that one
<easye>
kick it on over here baby-pops, and let the old-school rule.
<phoe>
:(
* phoe
mic drops, goes to sleep
aartaka has quit [Ping timeout: 260 seconds]
Lord_Nightmare has quit [Remote host closed the connection]
Lord_Nightmare has joined #lisp
jibanes has quit [Ping timeout: 258 seconds]
jibanes has joined #lisp
lotuseater has joined #lisp
zabow has quit [Ping timeout: 265 seconds]
<lotuseater>
good evening. hope all your parentheses are balanced :)
<phoe>
(
<no-defun-allowed>
)
<phoe>
sike, I caught your nickname between the parens
* phoe
goes to sleep, it's about time.
<thmprover>
I guess that means you'll be executed :o
<no-defun-allowed>
The function COMMON-LISP:*NO-DEFUN-ALLOWED* is undefined.
jibanes has quit [Ping timeout: 256 seconds]
lisperature has quit [Remote host closed the connection]
<asarch>
In 1935/1936 Kurt Gödel wrote three notebooks on the foundations of quantum mechanics, which have now been entirely transcribed for the first time. Whereas a lot of the material is rather technical in character, many of Gödel's remarks have a philosophical background and concentrate on Leibnizian monadology as well as on vitalism. Obviously influenced by the vitalistic writings of Hans Driesch and his ‘proofs’ for the exis
<asarch>
tence of an entelechy in every living organism, Gödel briefly develops the idea of a computing machine which closely resembles Turing's groundbreaking conception. After introducing the notebooks on quantum mechanics, this article describes Gödel's vitalistic Weltbild and the ideas leading to the development of his computing machine. It investigates a notion of lawlike sequence which closely resembles Turing's concept of a computabl
<asarch>
e number and which Gödel himself calls ‘problematic’, and compares it to the opposed concept of randomness, drawing upon the notion of program-size complexity. Finally, Gödel's machine is implemented in a dialect of the Lisp programing language."
<asarch>
Oh, sorry
lilgopher has quit [Ping timeout: 264 seconds]
<asarch>
This Gödel?
<lotuseater>
asarch: his notebooks on QM are more on the logic, aren't they?
ralt has joined #lisp
<Bike>
sounds like a neat paper though.
EvW has quit [Ping timeout: 260 seconds]
<lotuseater>
oh funny: Penrose–Lucas argument "Claim that human mathematicians are not describable as formal proof systems"
<lotuseater>
<lotuseater>
the more beginning mathematical foundations for how to calculate in QM were given mostly by John von Neumann or let's say condensed
EvW has joined #lisp
jibanes has quit [Ping timeout: 246 seconds]
jibanes has joined #lisp
asarch_ has joined #lisp
asarch has quit [Ping timeout: 272 seconds]
asarch_ is now known as asarch
<asarch>
XBox + Fornite = a nightmare for your Internet connection here in México
guanohhh has joined #lisp
<lotuseater>
so how's the situation with lisp in México? :)