<no-defun-allowed>
so back to actual lisp discussion instead of wannabe poser languages...
mathZ has joined #lisp
<no-defun-allowed>
can gen1 objects be demoted back to gen0 when gen0 references are created without too much of a performance drop?
azimut has quit [Ping timeout: 268 seconds]
<no-defun-allowed>
IMO it makes sense as old objects wouldn't be mutated much either
<AeroNotix>
no-defun-allowed: not sure if I'd agree with that last statment
<AeroNotix>
statement*
<AeroNotix>
How are your surmising that?
jack_rabbit has joined #lisp
robotoad has joined #lisp
dented42 has joined #lisp
<no-defun-allowed>
except for some operations like SETF, NCONC and DELETE, a lot of objects aren't mutated very much in my opinion
mathZ has left #lisp [#lisp]
<AeroNotix>
it doesn't explain why you think there's an inverse relationship between the age of an object and how much it is mutated
<no-defun-allowed>
i guess this means arrays and structs still are mutated a lot though
<no-defun-allowed>
honestly, it's just a guess
dented42 has quit [Client Quit]
<AeroNotix>
it's why I disagree. If an object is referenced enough to stay around a long time. Surely those references are using it in some way. Potentially just reading. If most references are reads, it's either a constant or an object that updates itself.
<AeroNotix>
Therefore, I disagree with your idea that old objects don't get mutated
<aeth>
It seems very likely to me that there could be a lot of structure objects, standard objects, and/or arrays that are full of mutation in many, maybe even most programs. And a lot of them will last a long time.
holycow has joined #lisp
<AeroNotix>
and suggest that older the object is, it is _more likely_ it is mutated
dented42 has joined #lisp
<no-defun-allowed>
fair enough
<aeth>
In fact, a well-architectured program that can get away with it *will* probably allocate early and keep it and mutate it. The alternative probably floods the program with garbage.
<no-defun-allowed>
gen1->gen0 demotion seems like a simple way to handle cross-generation references though, like the gray set in incremental mark-sweep
<aeth>
CL isn't a language built for pure FP
<AeroNotix>
aeth: where does the myth that CL is pure FP perpetuate?
<no-defun-allowed>
i know, which is why the GC designer has to do something about it
<aeth>
AeroNotix: At one point "functional" meant "functions as first class objects" rather than "behaves like Haskell" afaik
buffergn0me has joined #lisp
<AeroNotix>
well yes, I think defining FP is the first order of business :)
<no-defun-allowed>
yeah, now pure-functional languages are the ones with the "functional" name
<no-defun-allowed>
but then again: you can't process functions like you can data with haskell :P
dented42 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
_whitelogger has joined #lisp
jlarocco has quit [Ping timeout: 252 seconds]
Oladon has quit [Quit: Leaving.]
azimut has quit [Ping timeout: 244 seconds]
azimut has joined #lisp
<Fare>
AeroNotix, what's the higher order of business?
fikka has joined #lisp
<LdBeth>
#'no-defun-allowed: please have a look at Templet Haskell. With lambda calculus function process is easier and more transparent in pure fp
fikka has quit [Ping timeout: 252 seconds]
<AeroNotix>
Fare: ?
<copec>
I realize much programming (enterprise or gov.) under a software engineered paradigm is well understood ahead of the actual implementation of said program. So knowing your types and producing mathematical-functional blocks works particularly well. However, if that is what you are attempting to figure out than it is an unnecessary burden.
<AeroNotix>
copec: I honestly doubt much of today's code is written like you describe
<AeroNotix>
a lot of it is just suits with their ties done up to eleven clicking their fingers to the lighthouse family screaming code, more code
<copec>
You're probably right. I'm an amateur armchair philosopher.
fikka has joined #lisp
pacon has joined #lisp
<copec>
The Monad implies that you already understand what you are trying to understand in the act of programming. So it is not nearly as interesting as an evolving lisp program to me.
fikka has quit [Ping timeout: 272 seconds]
<aeth>
copec: If you use SBCL recompile your program with sb-ext:*derive-function-types* as T. This allows for it to spot some (but not all) type errors at compile time between files (normally it can only do it within one file or compilation-unit) at the expense of assuming that you don't change the function type in recompilation.
<aeth>
e.g. (defun foobar (x) (floor x 2)) in one file and (defun bar () (concatenate 'string (foobar 42) "hi")) in the other with that setting as T (default NIL because it violates the standard) gives me a compile time type warning (even though it's a "warning" the compilation fails)
<copec>
That's cool
<aeth>
copec: My point is that it's not an either/or thing.
<aeth>
(In fact, it's probably better when you start dynamic and later make your program concrete.)
<copec>
no, not in CL. That is my point too
<aeth>
SBCL doesn't catch everything that it should. I don't get a compilation warning with the returned number being fed into mapcar, which only wants a list
fikka has joined #lisp
dddddd has quit [Remote host closed the connection]
flazh1 has quit [Ping timeout: 272 seconds]
jlarocco has joined #lisp
fikka has quit [Ping timeout: 252 seconds]
buffergn0me has quit [Read error: Connection reset by peer]
fikka has joined #lisp
_whitelogger has joined #lisp
_whitelogger has joined #lisp
anewuser has quit [Quit: anewuser]
<beach>
Good morning everyone!
<Fare>
Hi!
<Fare>
What books or articles do you recommend about reflection?
<beach>
Fare: The log bot no longer works because participants have to be registered.
<Fare>
ouch
<beach>
Me? I can't remember any such books or articles.
<beach>
no-defun-allowed: The generational hypothesis says that objects either die young or survive for a long time. So generational collectors notice objects that have survived a certain time and promote them to an older generation where they are not considered for GC as often as the young generation.
<beach>
no-defun-allowed: It has nothing to do with mutation. So demoting an object would be a bad idea according to the hypothesis.
fikka has joined #lisp
Roy_Fokker has quit [Quit: Leaving]
omilu has joined #lisp
fikka has quit [Ping timeout: 272 seconds]
<copec>
Is that why there is a batch of really old people?
<beach>
Was that meant as a joke?
Oladon has joined #lisp
Pixel_Outlaw has quit [Quit: Leaving]
<copec>
yeah :-/
* copec
stops lurking and leaves again
housel has quit [Remote host closed the connection]
housel has joined #lisp
fikka has joined #lisp
jack_rabbit has quit [Ping timeout: 264 seconds]
fikka has quit [Ping timeout: 268 seconds]
azimut has quit [Ping timeout: 268 seconds]
Bike has quit [Quit: Lost terminal]
azimut has joined #lisp
_whitelogger has joined #lisp
fikka has quit [Ping timeout: 268 seconds]
jinkies has joined #lisp
buffergn0me has joined #lisp
<Fare>
Yow, clog is an old perl script. It even smells more like perl4 than perl5.
<Fare>
Not sure I feel like editing it to play the nickserv game :-/
zigpaw has quit [Ping timeout: 264 seconds]
holycow has quit [Quit: Lost terminal]
<no-defun-allowed>
> <@LdBeth:matrix.org> #'no-defun-allowed: please have a look at Templet Haskell. With lambda calculus function process is easier and more transparent in pure fp
<no-defun-allowed>
no.
<no-defun-allowed>
just no.
fikka has joined #lisp
<no-defun-allowed>
i suppose when marking gen1 i'll also have to include references from gen0 and vice versa
<no-defun-allowed>
which, erm, would make generations pretty useless except for maybe splitting up sweep stops so i need to rethink this
fikka has quit [Ping timeout: 268 seconds]
shifty has quit [Ping timeout: 268 seconds]
Hu0p has joined #lisp
<beach>
no-defun-allowed: Yes, collecting an older generation usually means collecting the younger generations first, or at least tracing them.
<beach>
no-defun-allowed: Also, most generational collectors allow references from older generations to younger generations, and those have to be tracked separately when a younger generation is collected.
<beach>
no-defun-allowed: The point of it all is that you can continue collecting only young generations for quite some time, simply because objects die young, so every collection will recover most of the space.
<beach>
no-defun-allowed: Typically the objects surviving a collection in the young generation are promoted.
<beach>
no-defun-allowed: If you are lucky then (or rather, if the generational hypothesis is correct for your application) only very few objects are promoted each time, so you can wait quite some time to collect older generations.
<beach>
no-defun-allowed: I recommend "The Garbage Collection Handbook" by Jones.
<no-defun-allowed>
thankyou
<no-defun-allowed>
i have a copy but i haven't gotten very far into it
fikka has joined #lisp
jinkies has quit [Quit: ERC (IRC client for Emacs 25.1.1)]
jinkies has joined #lisp
flazh1 has joined #lisp
fikka has quit [Ping timeout: 264 seconds]
fikka has joined #lisp
jinkies has quit [Ping timeout: 276 seconds]
fikka has quit [Ping timeout: 244 seconds]
<no-defun-allowed>
i guess ref counting is used cause it's not a pain in the butt to understand
<no-defun-allowed>
anyways, the GC handbook says first-class functions are part of functional languages
fikka has joined #lisp
dieggsy has quit [Read error: Connection reset by peer]
fikka has quit [Ping timeout: 252 seconds]
<p_l>
no-defun-allowed: it's kinda the core requirement for FP
fikka has joined #lisp
no-defun-allowed has quit [Ping timeout: 255 seconds]
Inline has quit [Quit: Leaving]
fikka has quit [Ping timeout: 244 seconds]
Manny8888 has quit [Ping timeout: 240 seconds]
Jachy has quit [Ping timeout: 264 seconds]
LdBeth has quit [Ping timeout: 260 seconds]
Hu0p has quit [Quit: See You Space Cowboy. . .]
theemacsshibe has joined #lisp
<theemacsshibe>
i guess i have to go back to good ol irc again
dented42 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<beach>
So if I have to click, then enter a URL, then click on forward/backward, then download then click on YES for overwrite the current one, then do it again for the other half day, and then repeat this exercise for every day of the month, I just give up.
fikka has joined #lisp
azimut has quit [Ping timeout: 244 seconds]
azimut has joined #lisp
mange has quit [Remote host closed the connection]
theemacsshibe has joined #lisp
<theemacsshibe>
matrix is still still broken
shrdlu68 has joined #lisp
azimut has quit [Ping timeout: 252 seconds]
theemacsshibe has left #lisp [#lisp]
<shka_>
good morning
azimut has joined #lisp
Oladon has quit [Quit: Leaving.]
graphene has quit [Remote host closed the connection]
<shrdlu68>
Morning shka_
graphene has joined #lisp
megalography has left #lisp [#lisp]
azimut has quit [Ping timeout: 268 seconds]
caltelt has quit [Ping timeout: 272 seconds]
azimut has joined #lisp
quipa has joined #lisp
quipa has quit [Max SendQ exceeded]
quipa has joined #lisp
quipa has quit [Read error: Connection reset by peer]
bendersteed has joined #lisp
azimut has quit [Ping timeout: 264 seconds]
astalla has joined #lisp
azimut has joined #lisp
light2yellow has joined #lisp
arbv has joined #lisp
lagagain has quit [Quit: Connection closed for inactivity]
graphene has quit [Remote host closed the connection]
graphene has joined #lisp
mingus has joined #lisp
bendersteed has quit [Remote host closed the connection]
graphene has quit [Remote host closed the connection]
azimut_ has joined #lisp
azimut has quit [Ping timeout: 252 seconds]
foom2 has joined #lisp
graphene has joined #lisp
graphene has quit [Read error: Connection reset by peer]
graphene has joined #lisp
foom has quit [Ping timeout: 264 seconds]
<jdz>
beach: you need logs by day (for how long back)?
<beach>
I have all the logs from Tunes since the beginning, but their bot stopped working a few days ago.
<beach>
18.08.08 is definitely bad. Perhaps 18.08.07 as well.
<jdz>
I'm using ZNC, and I have all the logs by day for all August.
<beach>
Oh. What's ZNC?
<jdz>
IRC bouncer, like a proxy server.
<jdz>
It's always connected, and when I connect to it I get all the messages I have not read since I last connected.
<beach>
Is there a way to download the logs from ZNC?
<jdz>
Yes, it has a log module, and the logs are stored in the file system.
foom2 has quit [Read error: Connection timed out]
<beach>
Sounds good. How do I do it?
foom2 has joined #lisp
<jdz>
You install ZNC on your server, your Linux distribution should have it as a package.
<beach>
remix2000: You should not care about tail recursion at all.
<beach>
remix2000: You should use recursion where necessary and iteration when possible.
arbv has quit [Ping timeout: 252 seconds]
<shka_>
remix2000: thing is, it looks like you need stack to pull the thing you are doing
arbv has joined #lisp
<beach>
remix2000: One reason not to care about tail recursion is that Common Lisp implementations are not required to optimize them into iteration.
<shka_>
so you are better of writing recursive function anyway
<beach>
remix2000: If it is a reasonably balanced tree, then the recursion depth should not be too bad anyway.
<_death>
remix2000: you can add another parameter that contains the "rest of the work"
<remix2000>
shka_: Why would they want to roast me? What is so bad in that code?
astalla has quit [Ping timeout: 244 seconds]
<beach>
remix2000: Using nested DEFUNs is not typical and probably not what you want.
<_death>
remix2000: aside from the inner defun, the code isn't so bad.. it's not indented property and could use a better name for the inner function
<_death>
*properly
<beach>
remix2000: I would not put a newline after "(cond".
Lycurgus has joined #lisp
<_death>
it also uses first/rest which is more suitable for dealing with lists than trees
<beach>
remix2000: And if a COND clause requires more than one line, I would put a newline after the condition, rather than in the middle of the function call.
<beach>
remix2000: In maptreeh I would not put a newline after (CONS or (COND.
stardiviner has quit [Remote host closed the connection]
<remix2000>
_death: What should it use instead of first/rest?
<beach>
CAR and CDR if the CONS cells represent tree nodes.
<beach>
Using FIRST and REST suggests that you are processing lists.
<remix2000>
Aren't those synonyms?
<beach>
Semantically, yes. But not from the point of view of communicating with the person reading your code.
<beach>
remix2000: And since you asked people to read your code, that's the point of view you are getting.
michalisko has quit [Quit: ZNC 1.6.3+deb1 - http://znc.in]
<_death>
remix2000: you could define your own names, say lhs/rhs
michalisko has joined #lisp
azimut has quit [Ping timeout: 268 seconds]
azimut has joined #lisp
fikka has quit [Ping timeout: 268 seconds]
makomo has joined #lisp
fikka has joined #lisp
m00natic has joined #lisp
fikka has quit [Ping timeout: 268 seconds]
zxcvz has joined #lisp
CrazyEddy has joined #lisp
random-nick has joined #lisp
graphene has quit [Remote host closed the connection]
graphene has joined #lisp
quipa has joined #lisp
fikka has joined #lisp
quipa has quit [Read error: Connection reset by peer]
orivej has quit [Ping timeout: 264 seconds]
remix2000 has left #lisp ["WeeChat 2.2-dev"]
SaganMan has quit [Ping timeout: 268 seconds]
nowhere_man has joined #lisp
dddddd has joined #lisp
igemnace has quit [Quit: WeeChat 2.2]
<shka_>
remix2000: what _death said makes the most sense
<shka_>
oh, you are gone
zfree has joined #lisp
<shka_>
cl-json is way to go when dealing with json files?
<shka_>
i basicly want to serialize and deserialize lisp objects, with minimal ammount of extra work on my side
<shka_>
remix2000: welcome back!
<remix2000>
Hello
edgar-rft has joined #lisp
lonjil2 has quit [Ping timeout: 252 seconds]
<shka_>
ok, so cl-json seems to not handle dot pairs
<shka_>
which kinda makes sense
<shka_>
but i wonder how can i fix that...
atgreen has joined #lisp
azimut has quit [Quit: Adios]
light2yellow has quit [Quit: light2yellow]
azimut has joined #lisp
lonjil has joined #lisp
azimut has quit [Ping timeout: 252 seconds]
azimut has joined #lisp
shrdlu68 has quit [Ping timeout: 272 seconds]
SenasOzys has quit [Ping timeout: 268 seconds]
zxcvz has quit [Quit: zxcvz]
SenasOzys has joined #lisp
fikka has quit [Ping timeout: 268 seconds]
pierpal has quit [Read error: Connection reset by peer]
Cymew has joined #lisp
bmansurov_ is now known as bmansurov
heisig has joined #lisp
mindCrime has joined #lisp
nowhere_man has quit [Ping timeout: 268 seconds]
pierpal has joined #lisp
pierpal has quit [Read error: Connection reset by peer]
pierpal has joined #lisp
k-stz has joined #lisp
fikka has joined #lisp
orivej has joined #lisp
kajo has quit [Ping timeout: 264 seconds]
LiamH has joined #lisp
Bike has joined #lisp
arduo has joined #lisp
SenasOzys has quit [Quit: Leaving]
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #lisp
mindCrime has quit [Ping timeout: 244 seconds]
pierpal has quit [Read error: Connection reset by peer]
pierpal has joined #lisp
mindCrime has joined #lisp
pierpal has quit [Ping timeout: 252 seconds]
loke has quit [Ping timeout: 268 seconds]
orivej has quit [Ping timeout: 272 seconds]
pierpal has joined #lisp
kushal has quit [Remote host closed the connection]
kushal has joined #lisp
elfmacs has joined #lisp
makomo has quit [Ping timeout: 244 seconds]
mindCrime has quit [Ping timeout: 272 seconds]
<AeroNotix>
is there a reason #'disassemble on SBCL inserts NOPs?
<flip214>
AeroNotix: alignment for loop entry points and similar reasons
<AeroNotix>
flip214: ahhh makes sense
[X-Scale] has joined #lisp
X-Scale has quit [Ping timeout: 252 seconds]
[X-Scale] is now known as X-Scale
<AeroNotix>
given a CALL/JMP in the disassembly, can I find the function at that address?
<AeroNotix>
Using SBCL
<Bike>
doesn't the disassembly put the functions in comments
<Bike>
like, their names
<flip214>
AeroNotix: compile with a higher DEBUG setting to get ^^
<Bike>
oh.
<AeroNotix>
oh okay, sorry, I'm compiling with different declaims yeah
<flip214>
AeroNotix: does your program already work flawlessly, for every input and in every case?
<flip214>
if not, why are you already optimizing things?? ;)
<AeroNotix>
flip214: please don't assume
<AeroNotix>
I'm just exploring what SBCL does with functions
<AeroNotix>
and how different lisp code is translated.
<AeroNotix>
I very much understand the premise of premature optimization
<AeroNotix>
I was interested in what SBCL does with calls like: (funcall (slot-accessor class) args)
danielxvu has quit [Remote host closed the connection]
danielxvu has joined #lisp
<AeroNotix>
i.e. I thought perhaps it would be able to compile that to a single CALL/JMP
<Shinmera>
generic functions typically don't have strict ftypes
jack_rabbit has quit [Ping timeout: 264 seconds]
<flip214>
AeroNotix: even if you see only a simple "CALL" in _your_ function, what the called function does might have quite some runtime impact.
<Shinmera>
So it'll do a check unless you make a promise about the return type
loke has joined #lisp
<flip214>
but I understand what you're looking at -- good luck, and please report any interesting results!
mindCrime has joined #lisp
<AeroNotix>
flip214: I'm just interested in how sbcl finds the function to call
Fare has joined #lisp
loke has quit [Remote host closed the connection]
dale has joined #lisp
<flip214>
AeroNotix: also look for inlined generic functions
<AeroNotix>
flip214: okay
astalla has joined #lisp
<AeroNotix>
It's not an issue now but I'm writing an emulator. The typical style to write an emulator is to have a massive switch in the inner loop to jump to handlers for opcodes. I've implemented it differently in that each instruction is an instance of some class with the "microcode" in a function on that type. The way I understand it the two approaches could behave similarly
<AeroNotix>
since if sbcl can understand that the handler is just a function at some offset, couldn't it compile to a simple jump?
<AeroNotix>
anyway, like I say, it's not important. I'm just procrastinating on actually getting the emulator finished :)
sjl__ has joined #lisp
<v0|d>
AeroNotix: local funs are like that, the others, which have entry points are compiled with type checks.
loke has joined #lisp
<v0|d>
try inlining or semi-inlining?.
<AeroNotix>
v0|d: I'll try that and see how it changes the assembly. I'm not looking for performance, just enlightenment
<Bike>
mm, the problem there is that generic functions can have methods added and removed after calls to them are compiled
<Bike>
on sbcl slot accessors have a cache so it should be pretty fast, but it probably won't be a computed goto
<Bike>
this has the advantage that you can add new instructions and so on without having to recompile your interpreter, which you may or may not care about.
<AeroNotix>
oh good point re methods being added/removed. Interesting.
<Bike>
slot accessor functions are just generic functions. you can have a gf that's a slot accessor for one class but has a whole regular defmethod body for some other specialization.
<Bike>
if you're feeling dangerous you could use mop:standard-instance-access which is the offset-into-the-object level of things, but there's a pretty good chance of explosion
flamebeard has quit []
<AeroNotix>
What's a gf?
<Bike>
generic function
<AeroNotix>
ah right, sorry
atgreen has quit [Ping timeout: 272 seconds]
shifty has quit [Ping timeout: 244 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
loke has quit [Ping timeout: 264 seconds]
<Bike>
AeroNotix: you might find https://github.com/kingcons/cl-6502/ interesting. If I'm reading correctly it uses a vector of "microcode" thunks.
Denommus has joined #lisp
pierpal has quit [Ping timeout: 244 seconds]
heisig has quit [Quit: Leaving]
FreeBirdLjj has joined #lisp
varjag has quit [Quit: ERC (IRC client for Emacs 24.5.1)]
meepdeew has joined #lisp
Fare has quit [Ping timeout: 252 seconds]
elfmacs has quit [Quit: WeeChat 2.2]
<AeroNotix>
Bike: indeed, I read that a while ago. I don't want to go too far into the code right now cause I want to develop my own ideas rather than risk "stealing" his
<shka_>
hello
orivej has joined #lisp
<shka_>
so i have issue with cl-json
<shka_>
it is neat and cool but for some reason uses way to much memory when encoding objects
<shka_>
is there some sort of magic option for circularity checks or something?
meepdeew has quit [Ping timeout: 272 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #lisp
<shka_>
or should i just switch to yason?
<shka_>
yason does not look nearly as friendly as cl-json
swflint has quit [Ping timeout: 265 seconds]
Inline has joined #lisp
warweasle_bbl is now known as warweasle
swflint has joined #lisp
Fare has joined #lisp
SenasOzys has joined #lisp
SenasOzys has quit [Remote host closed the connection]
zooey has quit [Remote host closed the connection]
zooey has joined #lisp
SenasOzys has joined #lisp
Denommus has quit [Read error: Connection reset by peer]
nopolitica has quit [Ping timeout: 252 seconds]
loke has joined #lisp
<random-nick>
did the SSL certificate for planet.lisp.org expire?
SenasOzys has quit [Remote host closed the connection]
SenasOzys has joined #lisp
Fare has quit [Ping timeout: 244 seconds]
<Lycurgus>
why do you think there ever was one?
graphene has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 252 seconds]
Fare has joined #lisp
graphene has joined #lisp
Fare has quit [Ping timeout: 272 seconds]
Fare has joined #lisp
<shka_>
jesus christ
<shka_>
yason attempts to print 320mb jason in repl buffer
<shka_>
inside emacs
nowhere_man has joined #lisp
varjag has joined #lisp
<Lycurgus>
it made you submit a 320mb file, right?
<shka_>
Lycurgus: i am not sure what happend here
<Lycurgus>
shka_, ah
nopolitica has joined #lisp
Lycurgus has quit [Quit: Exeunt]
<shka_>
i am using yason for the first time
steiner has joined #lisp
asarch has joined #lisp
varjag has quit [Quit: ERC (IRC client for Emacs 26.1)]
varjag has joined #lisp
orivej has quit [Ping timeout: 244 seconds]
shka_ has quit [Quit: WeeChat 1.9.1]
zfree has quit [Quit: zfree]
fikka has joined #lisp
Kaisyu has quit [Quit: Connection closed for inactivity]
fikka has quit [Ping timeout: 244 seconds]
Fare has quit [Ping timeout: 264 seconds]
SaganMan has joined #lisp
astalla has quit [Ping timeout: 272 seconds]
Oladon has joined #lisp
<pjb>
AeroNotix: The only reason why disassemble would insert NOPs on sbcl that I can see, would be to prevent you to know the actual offset of instructions in the function. Perhaps it would be a security measure to prevent you to exploit the code generated by sbcl compiler.
doubledup has joined #lisp
SumoSud0 has quit [Read error: Connection reset by peer]
kdas_ has joined #lisp
kushal has quit [Ping timeout: 250 seconds]
fikka has joined #lisp
SumoSud0 has joined #lisp
kdas_ is now known as kushal
dyelar has joined #lisp
phlm has joined #lisp
phlm has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 264 seconds]
tumdum has joined #lisp
fikka has joined #lisp
scymtym has quit [Ping timeout: 276 seconds]
Kevslinger has joined #lisp
shka_ has joined #lisp
Ukari has joined #lisp
m00natic has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 244 seconds]
Ukari has quit [Remote host closed the connection]
Ukari has joined #lisp
Jesin has quit [Quit: Leaving]
adlai has quit [Read error: Connection reset by peer]
adlai has joined #lisp
dmiles has quit [Read error: Connection reset by peer]
whartung has quit [Ping timeout: 260 seconds]
Jesin has joined #lisp
Ukari has quit [Remote host closed the connection]
logicmoo has joined #lisp
Ukari has joined #lisp
kamog has joined #lisp
logicmoo is now known as dmiles
pierpal has joined #lisp
Ukari has quit [Remote host closed the connection]
lonjil has quit [Ping timeout: 252 seconds]
Ukari has joined #lisp
emaczen has joined #lisp
kristof has joined #lisp
lonjil has joined #lisp
<fouric>
AeroNotix: by any chance are you writing a CHIP-8 emulator
<AeroNotix>
fouric: I think I already wrote a chip8 emulator. I'm writing a Z80 emulator.
<AeroNotix>
my issue with articles like that (and I've had one "in progress" for literally years, but more comparing how Erlang can learn from CL) is that it simply doesn't matter to non-Lispers. I find people just have to experience the benefits for themselves. You can talk about all the rad features you want until you're blue in the face but rarely will anyone actually go out and decide to use Lisp based on that
logc has joined #lisp
<AeroNotix>
I've spoke about CL to colleagues for years. I've had literally a single colleague try to pick it up
<shka_>
AeroNotix: typical
<AeroNotix>
maybe I express it poorly, but I don't feel I do. I just think the benefits don't immediately sound worth it when vocalized. They need to be experienced
<dlowe>
I think most people are unwilling to invest that kind of mental effort for uncertain gains.
<AeroNotix>
true as well yeah
logc has quit [Client Quit]
<dlowe>
I love the learning itself, so I feel that new perspectives are valuable, even if not immediately practical.
<Shinmera>
I probably would never have learned Lisp if I hadn't just had a month of free time where I just decided to get into it on a whim.
<kristof>
That's not true, because it doesn't explain why things which have no benefits or negative benefits are readily adopted. Essays do work.
<kristof>
See: Paul Graham, whatever you might think of him.
<dlowe>
kristof: it can be true without being complete
sjl__ is now known as sjl_
fikka has joined #lisp
<sjl_>
I mostly wrote this so I can link people to it when they email me asking how to learn, not really to try to convince the masses.
<dlowe>
sjl_: oh, that was you! Lemonodor fame!
<shka_>
sjl_: i like font in this article
<sjl_>
lemonodor?
<Shinmera>
Not even a mention of Portacle? I am saddened
<dlowe>
When you start up slime, one of the encouragements it gives you is "Lemonodor fame awaits!"
SenasOzys has quit [Ping timeout: 252 seconds]
<kristof>
sjl_: This is good, thank you for writing it.
<sjl>
Shinmera: I added it
<Shinmera>
Great!
<sjl_>
shka_: thanks. I honestly don't even remember what font I ended up with. for a while I was using some webfont so it'd look the same everywhere, but then I got a desire to pare things down and make the pages load as fast as possible
<shka_>
well, it looks pretty stylish!
<sjl_>
so I tried to pick a vanilla font stack that would work decently well everywhere and not butcher all the code too much
<shka_>
anyway, it looks like a fine article
<shka_>
it surely took some work to put it together
<sjl_>
removing jquery was the latest effort on the fast loading front. the final JS is to compensate for a missing feature in Hugo... I really don't want to have to write my own static site generator in CL
<shka_>
i will certainly spam it to everyone ;-)
fikka has quit [Ping timeout: 252 seconds]
<sjl_>
Yeah, though it was mostly done on airplanes because I've been flying between the east and west coasts a lot lately. 5 hours flights let you get a lot of writing done :)
<shka_>
i will add The Hamster Wheel of Backwards Incompatibility to my dictionary
doubledup has quit [Read error: Connection reset by peer]
doubledup has joined #lisp
sauvin has quit [Read error: Connection reset by peer]
kajo has joined #lisp
<dlowe>
sjl_: I do think it was really good writing and a compelling introduction.
<sjl_>
thanks
Fare has quit [Ping timeout: 272 seconds]
eschulte has joined #lisp
gravicappa has joined #lisp
DataLinkDroid has quit [Read error: Connection reset by peer]
FreeBirdLjj has quit [Remote host closed the connection]
eschulte has quit [Remote host closed the connection]
<kristof>
sjl_: In your "shaving the editor yak", you omitted that Atom has a SLIME package.
<sjl_>
I'll take a look later on after work and maybe add it in
<sjl_>
Hmm, no stack traces, inspector, compile file, find callers.... not sure it's quite up to even vlime's level, let alone slime
<sjl_>
it's a good start though!
<kristof>
You mean you'll check the package out? It works... mostly. I noticed when I select the wrong restart my repl process freezes up entirely and I have to restart.
<kristof>
Yeah, it's not perfect. But telling people that it exists is a way of improving this stuff ;)
<kristof>
sjl_: Do you know of a good guide to debugging in Lisp? You seem to be an expert in this.
SenasOzys has joined #lisp
<shka_>
kristof: there are decent tutorials on youtube
fikka has joined #lisp
<sjl_>
You mean using the slime/vlime debugger itself? I'm definitely not an expert in that. I only use probably half of its potential
<sjl_>
I never figured out how to use all the stepping stuff, for example
<oni-on-ion>
my interest in CL remains, exactly due to all the rad things you guys say about it =)
kristof has quit [Remote host closed the connection]
kristof has joined #lisp
robotoad has quit [Ping timeout: 264 seconds]
Lycurgus has joined #lisp
Lycurgus has quit [Read error: Connection timed out]
Lycurgus has joined #lisp
fikka has joined #lisp
leo_song has quit [Ping timeout: 264 seconds]
fikka has quit [Ping timeout: 252 seconds]
leo_song has joined #lisp
warex has joined #lisp
<_death>
sjl: your sbcl link needs fixin'
<sjl_>
whops
<sjl_>
thanks
Fare has quit [Ping timeout: 272 seconds]
shka_ has quit [Ping timeout: 252 seconds]
pierpal has quit [Read error: Connection reset by peer]
scymtym has joined #lisp
pierpal has joined #lisp
vlatkoB has quit [Remote host closed the connection]
<AeroNotix>
sjl_: there's a static site generator in CL I use. I'm a fan of it. Coleslaw
<sjl_>
I think any generator I choose is always gonna have at least one thing missing for me
<sjl_>
Maybe the solution is a post processing step where I mangle the generated HTML in one final step
<sjl_>
rather than try to reimplement from scratch
<AeroNotix>
fair enough. I like coleslaw cause it comes built in with a "render on git push" script
<dlowe>
browsers support xslt. I'm gonna see if I can make a purely static website/blog work sometime.
<kristof>
sjl_ what was the feature missing in Hugo that you needed?
<sjl_>
kristof: putting the table of contents at a specific place inside the article itself, not before the whole thing. I really like writing a short introduction, then showing the table of contents, then the actual article
<_death>
cool post sjl :)
<sjl_>
_death: thanks!
<sjl_>
kristof: right now I render the hugo toc like normal, hide it with CSS, and then use JS to shove it into the correct place at runtime. it's gross.
<sjl_>
I could probably whip up something with plump/lquery/whatever to postprocess that
<AeroNotix>
sjl_: coleslaw uses markdown to write the blogs themselves
<sjl_>
yeah so does hugo, I do like that
<pjb>
sjl_: if you implement it yourself, you can easily modify it to add the last one thing missing for you.
<kristof>
sjl_ Can't you use {{.TableOfContents}} ?
gravicappa has quit [Ping timeout: 264 seconds]
<pjb>
sjl_: alternatively, you can patch an existing one, but it's generally more work than to write your own.
<sjl_>
pjb: well yeah, but the hard part is that first step
<Shinmera>
sjl_: I actually use a quick lquery post-process in a few of my apps to "dynamicalise" cached pages.
<pjb>
If not work to understand it and patch it, work to make your patch acceptable to the upstream.
Lycurgus has quit [Quit: Exeunt]
<sjl_>
kristof: that tag will only work in the template, but I want to put it in middle of the markdown file itself. last time I tried, that wouldn't work
<kristof>
sjl_ Gotcha. Yeah, the alternative is to write your intro separately from the markdown file but that partially defeats the point, doesn't it
<sjl_>
yeah
warex has quit [Ping timeout: 252 seconds]
<sjl_>
pjb: I have to learn Go for my new job anyway, once I do that maybe I'll look at fixing it and contributing it upstream
asarch has quit [Quit: Leaving]
fikka has joined #lisp
quazimodo has joined #lisp
fikka has quit [Ping timeout: 244 seconds]
Roy_Fokker has joined #lisp
warex has joined #lisp
Lycurgus has joined #lisp
arduo has quit [Remote host closed the connection]
Ukari has quit [Ping timeout: 276 seconds]
papachan has joined #lisp
mindCrime has quit [Ping timeout: 244 seconds]
LiamH has quit [Quit: Leaving.]
Bike has quit [Ping timeout: 252 seconds]
Ukari has joined #lisp
doubledup has quit [Quit: Leaving]
fikka has joined #lisp
quazimodo has quit [Ping timeout: 268 seconds]
fikka has quit [Ping timeout: 244 seconds]
graphene has quit [Remote host closed the connection]
quazimodo has joined #lisp
graphene has joined #lisp
fikka has joined #lisp
dented42 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
orivej has joined #lisp
papachan has quit [Quit: WeeChat 2.2]
<stylewarning>
sjl_: nice post
robotoad has joined #lisp
dented42 has joined #lisp
<sjl_>
stylewarning: thanks!
meepdeew has joined #lisp
malbertife has joined #lisp
dented42 has quit [Ping timeout: 252 seconds]
dented42 has joined #lisp
sjl_ has quit [Ping timeout: 244 seconds]
<jasom>
sjl: FYI for the editor, note that most text editors cannot autoindent lisp code to even a mediocre standard (say vim's lisp mode as a lower bar).
<sjl>
I admit I haven't tried Atom/etc indenting. I could add a section about the lispindent program but didn't want to clutter :\
<jasom>
sjl: actually I was surprised at how few programs can even shell out to lispindent.
Kevslinger has quit [Quit: Connection closed for inactivity]
<sjl>
the ideal solution is for someone (please god not just me) to make a CL LSP server happen, then every editor magically gets indentation and formatting for free
<p_l>
I think there's one going on already
v0|d has quit [Ping timeout: 252 seconds]
<sjl>
there's https://github.com/cxxxr/cl-lsp but it has no license, so I don't want to look at the code to see how full featured it is
astalla has joined #lisp
varjag has quit [Ping timeout: 272 seconds]
malbertife has quit [Ping timeout: 252 seconds]
quazimodo has quit [Ping timeout: 264 seconds]
Mortir has joined #lisp
<Mortir>
Hey
<Mortir>
Could somebody clarify to me what the "@" symbol mean?
troydm has quit [Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset]
lavaflow has quit [Read error: No route to host]
<White_Flame>
Mortir: this is a Common Lisp channel, so you'd have to go to whatever channel that language is supported
lavaflow has joined #lisp
<stacksmith>
defn'tly not CL.
<White_Flame>
.rb = ruby?
<stacksmith>
rubout?
<Mortir>
I understand.
<Mortir>
It's clojure
<stacksmith>
If I had to guess I'd say 'value of?'
<p_l>
Mortir: #clojure might be better option, but I think @ was used to "force" the value of atom?
<Mortir>
@p_l: I'll check with them.
<stacksmith>
What's a good way to check if a symbol is a CLOS class?
<Mortir>
stacksmith: Thanks for the tip, I'll return when I discover.
<sjl>
assuming you mean "if a symbol names a CLOS class" because I don't think a symbol would ever BE a class itself
<stacksmith>
Well, yes.
<sjl>
yeah I think you want find-class then
pierpa has joined #lisp
<stacksmith>
Is that slowish? find implies a search of some sort...
<sjl>
no idea. you could look at the source and/or benchmark/profile, but it's probably implementation dependent
makomo has joined #lisp
<Mortir>
stacksmith: It's a dereference. I'm not a specialist on it but for what I searched about looks like you got it right.
<sjl>
I wouldn't assume it's slow because of the name. I can think of a couple of ways an implementation could implement it off the top of my head, and they could be fast.
graphene has quit [Read error: Connection reset by peer]
graphene has joined #lisp
<stacksmith>
sjl: thanks.
dented42 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
brettgilio has joined #lisp
nckx has quit [Quit: Updating my GNU GuixSD server — gnu.org/s/guix]
troydm has joined #lisp
stardiviner has joined #lisp
stardiviner has quit [Client Quit]
nckx has joined #lisp
sukaeto has joined #lisp
nopolitica has quit [Read error: Connection reset by peer]
specbot has quit [Disconnected by services]
specbot has joined #lisp
fikka has quit [Ping timeout: 272 seconds]
nopolitica has joined #lisp
minion has quit [Disconnected by services]
knobo has quit [Ping timeout: 268 seconds]
Roy_Fawlty has joined #lisp
meepdeew has quit [Remote host closed the connection]
Roy_Fokker has quit [Read error: Connection reset by peer]
shymega has quit [Ping timeout: 268 seconds]
shymega has joined #lisp
Fare has joined #lisp
flazh1 has quit [Ping timeout: 272 seconds]
Jesin has quit [Quit: Leaving]
flazh1 has joined #lisp
robotoad has quit [Quit: robotoad]
pjb has quit [Ping timeout: 252 seconds]
Jesin has joined #lisp
brettgilio has quit [Quit: Konversation terminated!]