Inline has quit [Remote host closed the connection]
NotThatRPG has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
lampilelo has quit [Ping timeout: 258 seconds]
wonko-the-sane has quit [Quit: leaving]
HerlockSholmes has quit [Ping timeout: 240 seconds]
smarton has quit [Ping timeout: 240 seconds]
NotThatRPG has joined #commonlisp
NotThatRPG has quit [Client Quit]
ronald has quit [Read error: Connection reset by peer]
fosskers has joined #commonlisp
gxt has quit [Remote host closed the connection]
gxt has joined #commonlisp
ronald has joined #commonlisp
Pixel_Outlaw has quit [Remote host closed the connection]
dtman34 has quit [Quit: ZNC 1.8.2+deb3.1 - https://znc.in]
dtman34 has joined #commonlisp
szkl has joined #commonlisp
waleee has quit [Ping timeout: 248 seconds]
ronald has quit [Ping timeout: 245 seconds]
pfdietz has quit [Quit: Client closed]
fosskers has quit [Remote host closed the connection]
NotThatRPG has joined #commonlisp
NotThatRPG has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
tyson2 has quit [Remote host closed the connection]
goober has quit [Ping timeout: 246 seconds]
fosskers has joined #commonlisp
goober has joined #commonlisp
pawa2 has quit [Quit: leaving]
ronald has joined #commonlisp
habamax has quit [Ping timeout: 248 seconds]
szkl has quit [Quit: Connection closed for inactivity]
gxt has quit [Remote host closed the connection]
gxt has joined #commonlisp
montxero has quit [Quit: Client closed]
Pixel_Outlaw has joined #commonlisp
habamax has joined #commonlisp
ronald has quit [Read error: Connection reset by peer]
ronald has joined #commonlisp
azimut has quit [Ping timeout: 246 seconds]
fosskers has quit [Ping timeout: 246 seconds]
pfdietz has joined #commonlisp
habamax has quit [Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.1)]
jello_pudding has quit [Ping timeout: 248 seconds]
wonko-the-sane has joined #commonlisp
pfdietz has quit [Quit: Client closed]
szkl has joined #commonlisp
jello_pudding has joined #commonlisp
cjrf has quit [Remote host closed the connection]
lucasta_ has joined #commonlisp
markb1 has quit [Ping timeout: 246 seconds]
lucasta_ has quit [Ping timeout: 246 seconds]
dcb has quit [Quit: MSN Messenger 4.0.3]
semarie has quit [Quit: WeeChat 4.0.2]
habamax has joined #commonlisp
markb1 has joined #commonlisp
semarie has joined #commonlisp
jobhdez has joined #commonlisp
<jobhdez>
what intermediate language is being used for current common lisp compilers? such as sicl? or more established ones such as sbcl?
<beach>
For SICL, we use first ASTs then something that I call HIR which is a pretty traditional flow graph.
<beach>
HIR manipulates only Common Lisp objects. Then HIR is lowered to MIR which makes address manipulations explicit.
<beach>
But there are still no physical registers involved.
<jobhdez>
so you turn the parse tree into an ast and then how many times does this parse tree ast get transformed into other asts before you get to the graph
<jobhdez>
?
<beach>
Currently, the AST is not transformed at all, but I am about to change that and introduce more transformations at the AST level.
<beach>
So currently, all transformations are done at the HIR/MIR/LIR level.
<jobhdez>
oh ok -- very interesting. so you turn the ast into a graph. are you using three address code for the low level ast or ssa?
<jobhdez>
low level representation that is
<jobhdez>
let me ask you something im wondering and cant find online by googling. ive tried but not sure yet. is ssa basically three address code but with unique variables?
<jobhdez>
thats all?
pve has joined #commonlisp
<beach>
You can consider it to be a graph of three-address code in that most nodes have one or two inputs and one output.
<beach>
SSA is a bit strange...
<jobhdez>
why is it strange?
<beach>
Every lexical variable is assigned to once in the graph, but the strange part is the "phi" node which merges control flow.
<beach>
You can replace the phi node with an assignment on every incoming arc to it, but then you have more than one assignment to the variable in the phi node, and it is no longer SSA.
<beach>
So, to me, phi nodes are a cheap trick to avoid multiple assignments, and they also ruin the property that the order of the predecessors of a node doesn't matter. In SSA it does.
<beach>
And I have a theory (that I still need to investigate further) that very few transformations that use SSA actually depend on the core SSA property, namely that every variable is assigned to once in the graph. Instead they mostly depend on all values of a variable being preserved and can be reused.
<jobhdez>
oh ok. so ssa is not necessarily the correct approach. im aware that llvm uses this ir. so youre using three-address code i'd imagine. thats very cool. you should write a paper
shka has joined #commonlisp
<jobhdez>
maybe i should contribute to sicl
<beach>
I am about to rework the bootstrapping procedure, so you should probably wait with SICL. However, we are also extracting more modules to separate repositories, and that is something that can be contributed to.
<beach>
About papers, we published 15 or so papers from 2014.
<jobhdez>
i will keep an eye on your project. i will look for those papers. thanks. how will SICL be different than sbcl? what are your goals for the project?
<jobhdez>
so your implementing tail call optimization? not sure if sbcl has this as default
<beach>
The goal is to use more modern techniques that what is used in existing systems.
<jobhdez>
oh very cool. i'd like to contribute to your prject
<beach>
SBCL does tail-call optimization by default.
<jobhdez>
project
<beach>
We hang out in #sicl in case you want to know more.
<jobhdez>
ok ill check out the project. a modern common lisp compiler would be great. thanks for your work
<beach>
Sure.
<aeth>
it would be nice to be able to force optimized tail-calls on
<jobhdez>
beach what type of optimizations are you planning to implement?
<beach>
Pretty much all the traditional ones, but I am particularly excited about call-site optimization as document in one of the papers. I think it will make a huge difference.
<beach>
*as documented
<jobhdez>
very cool. im very excited about a new modern common lisp compiler.
<beach>
Great!
<beach>
But the compiler is just one component. Call-site optimization is not directly part of the compiler.
<beach>
Same with generic dispatch. It is an important part of the system, but not part of the compiler proper.
<jobhdez>
im not familiar with call site optimization. im going to read your paper. this actually great to be honest. i have been wanting to read about research going into the common lisp language/compiler and i have just found this with sicl. thanks. so why is call site optimization a different component? wouldnt it be part of the optimizer?
<jobhdez>
i just have an introductory understanding of compilers. i have built a few with common lisp but nothing too advanced
<beach>
The compiler generates a very simple function call. The call-site optimizer gets involved when the callee is defined or modified.
<beach>
But that's all in the paper, so I am not going to repeat the details here.
<jobhdez>
very cool. thanks. so theres no point in trying to look at the github issues right now until you solve the problem youre working on?
<beach>
Correct. A better idea is to work on some extracted module, or to extract a new one.
Pixel_Outlaw has quit [Quit: Leaving]
<jobhdez>
ok sounds good. thanks. but yeah your compiler is going to be a great addition to the community. thanks a lot
<beach>
Sure.
<beach>
jobhdez: You may also want to talk to bike in #sicl (or here). He has done some work for Clasp that is based on the SICL compiler, and he has improved many things.
<jobhdez>
ok sounds good. thanks a lot. i know hayley is big lisper as well. i see shes also a contributor to sicl
<beach>
Correct. And hayley also hangs out in #sicl.
<beach>
For example, hayley wrote the register allocator for x86 in the SICL compiler.
<hayley>
beach: Mind that a "phi" node is the more polite name for what was originally called a "phony" node.
<beach>
I didn't know that, but that seems appropriate.
<hayley>
I'm reminded of what Cliff Click once said about handling multiple outputs in the sea-of-nodes. In his compiler(s) he has "project" nodes which extract values from tuples; the reasoning is that you only need to project when a node has multiple outputs, which is uncommon.
rtypo has quit [Ping timeout: 244 seconds]
<hayley>
But you could also just have multiple outputs, as Cleavir (the compiler framework used in SICL and Clasp) does. I think a similar argument holds for the existence of phi nodes; it's more of an implementation concern than a theoretical concern.
<beach>
Sounds right.
<jobhdez>
so ssa is not the "modern" way of doing things? i remember someone criticized the dragon book second edition because it didnt cover ssa but only three address code. but im seeing thats not true
<hayley>
My toy SSA/sea-of-nodes compiler doesn't depend on "the property that the order of the predecessors of a node [matters]", by the way.
<beach>
jobhdez: Oh, SSA is modern alright. Just like Unix.
semarie has quit [Ping timeout: 248 seconds]
<beach>
jobhdez: Many techniques depend on the property that old values are preserved.
<hayley>
From my colleagues I hear that the Dragon book is mostly only good for parsing.
<beach>
jobhdez: And those techniques all claim that they need SSA. But they don't really need the fact that SSA has the static-single-assignment property.
<hayley>
I also recall that the "static few assignments" conversion pass I wrote could be made to generate SSA instead, by generating phi nodes instead of assignment instructions and locations.
<beach>
hayley: That used to be the case. But I understand new editions of the book cover more stuff.
<jobhdez>
yeah the second edition of the dragon book is better. cmu uses it for an optimizing compiler course
<jobhdez>
you can just skip the parsing part
<hayley>
beach: From memory I was not impressed by the second edition. I was wondering how to implement loop unrolling; it suggested that one turns a loop like "while P do B" into "while P do B; B; B; B" or somesuch.
<hayley>
Which I assume would be great, if you were somehow optimising on an AST.
<beach>
I see.
<beach>
jobhdez: I use Muchnick's book as an overview of techniques. But the algorithmic language he uses is really bad, so for details I go back to the source. Luckily, the book contains all the references.
dinomug has quit [Remote host closed the connection]
<hayley>
Still, I think you overstate the differences between static single assignment and your static few assignments.
<beach>
Unfortunately, most work has been done for C-like languages, so there are big holes when it comes to languages like Common Lisp.
<beach>
hayley: I have only one problem with it, namely "S.S.A" which is not essential.
<beach>
... or rather, my theory is that the fact that SSA has the S.S.A property is not essential for the work that claims to need SSA.
semarie has joined #commonlisp
rgherdt has joined #commonlisp
<jobhdez>
beach thanks a lot. ill check the book out. im also interested in compilers the lower deep learning models to x86 or something. i have a lot to study
<jobhdez>
*that
<beach>
Good luck!
LispTyro has quit [Ping timeout: 256 seconds]
LispTyro has joined #commonlisp
hayley has quit [Ping timeout: 256 seconds]
hayley has joined #commonlisp
msavoritias has joined #commonlisp
jobhdez has quit [Ping timeout: 246 seconds]
tibfulv has quit [Remote host closed the connection]
igemnace has joined #commonlisp
tibfulv has joined #commonlisp
attila_lendvai has joined #commonlisp
ronald has quit [Read error: Connection reset by peer]
attila_lendvai_ has joined #commonlisp
habamax has quit [Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.1)]
ronald has joined #commonlisp
hayley has quit [Changing host]
hayley has joined #commonlisp
attila_lendvai has quit [Ping timeout: 240 seconds]
azimut has joined #commonlisp
attila_lendvai has joined #commonlisp
msavoritias has quit [Ping timeout: 256 seconds]
attila_lendvai_ has quit [Ping timeout: 246 seconds]
mooseball has joined #commonlisp
dino_tutter has joined #commonlisp
varjag has joined #commonlisp
yitzi has quit [Ping timeout: 245 seconds]
treflip has joined #commonlisp
msavoritias has joined #commonlisp
yitzi has joined #commonlisp
donleo has joined #commonlisp
igemnace has quit [Ping timeout: 256 seconds]
_cymew_ has joined #commonlisp
_cymew_ has quit [Client Quit]
igemnace has joined #commonlisp
_cymew_ has joined #commonlisp
cosimone has joined #commonlisp
LW has joined #commonlisp
igemnace has quit [Ping timeout: 252 seconds]
Inline has joined #commonlisp
azimut has quit [Ping timeout: 246 seconds]
herjazz has joined #commonlisp
igemnace has joined #commonlisp
fosskers has joined #commonlisp
fosskers has quit [Ping timeout: 246 seconds]
bitspook has joined #commonlisp
habamax has joined #commonlisp
LW has quit [Quit: WeeChat 3.8]
mgl has joined #commonlisp
dra has joined #commonlisp
dra has joined #commonlisp
dra has quit [Changing host]
mooseball has quit [Quit: Leaving]
Cymew has joined #commonlisp
mingus has quit [Ping timeout: 250 seconds]
mgl has quit [Ping timeout: 246 seconds]
random-nick has joined #commonlisp
karlosz has joined #commonlisp
mingus has joined #commonlisp
bitspook has quit [Remote host closed the connection]
bitspook has joined #commonlisp
yitzi has quit [Remote host closed the connection]
yitzi has joined #commonlisp
ebrasca has joined #commonlisp
<ebrasca>
Hi
treflip has quit [Ping timeout: 256 seconds]
kevingal has joined #commonlisp
mgl has joined #commonlisp
azimut has joined #commonlisp
mgl has quit [Client Quit]
aartaka has quit [Ping timeout: 256 seconds]
rgherdt has quit [Ping timeout: 258 seconds]
tyson2 has joined #commonlisp
<beach>
Hello ebrasca.
rgherdt has joined #commonlisp
zxcvz has joined #commonlisp
donleo has quit [Ping timeout: 245 seconds]
wonko-the-sane has quit [Ping timeout: 246 seconds]
habamax has quit [Remote host closed the connection]
wonko-the-sane has joined #commonlisp
herjazz has quit [Quit: leaving]
mgl has joined #commonlisp
rgherdt_ has joined #commonlisp
aartaka has joined #commonlisp
rgherdt has quit [Ping timeout: 248 seconds]
szkl has quit [Quit: Connection closed for inactivity]
<mfiano>
Hi ebrasca, long time
<ebrasca>
I started to make a game in CL!
<mfiano>
Oh, that's great!
<mfiano>
Just try not to get bogged down in making another general-purpose engine that will never be finished. In the end your 'game' will just amount to a glorified screensaver :)
notzmv has quit [Ping timeout: 246 seconds]
<edgar-rft>
screensavers are the only general-purpose games that ever succeeded :-)
jello_pudding has quit [Ping timeout: 260 seconds]
rgherdt_ has quit [Ping timeout: 245 seconds]
dinomug has joined #commonlisp
jello_pudding has joined #commonlisp
rtypo has joined #commonlisp
cosimone has quit [Ping timeout: 256 seconds]
ronald has quit [Read error: Connection reset by peer]
rgherdt has joined #commonlisp
ronald has joined #commonlisp
lucasta_ has joined #commonlisp
<varjag>
something blows the stack off in our app on the newest armccl
<varjag>
invalid frames in backtrace
dinomug has quit [Remote host closed the connection]
rgherdt_ has joined #commonlisp
rgherdt has quit [Ping timeout: 248 seconds]
ebrasca has quit [Remote host closed the connection]
dcb has joined #commonlisp
karlosz has quit [Quit: karlosz]
rgherdt_ has quit [Ping timeout: 246 seconds]
aartaka has quit [Ping timeout: 244 seconds]
zxcvz has quit [Quit: zxcvz]
msavoritias has quit [Ping timeout: 246 seconds]
markb1 has quit [Ping timeout: 248 seconds]
markb1 has joined #commonlisp
donleo has joined #commonlisp
varjag has quit [Quit: ERC (IRC client for Emacs 27.1)]
msavoritias has joined #commonlisp
lucasta_ has quit [Ping timeout: 245 seconds]
shka has quit [Ping timeout: 246 seconds]
NotThatRPG has joined #commonlisp
dino_tutter has quit [Ping timeout: 246 seconds]
cosimone has joined #commonlisp
tevo has quit [Quit: Leaving.]
kevingal has quit [Ping timeout: 246 seconds]
mingus1 has joined #commonlisp
mingus has quit [Ping timeout: 256 seconds]
mingus1 is now known as mingus
fosskers has joined #commonlisp
msavoritias has quit [Ping timeout: 245 seconds]
fosskers has quit [Remote host closed the connection]
donleo has quit [Ping timeout: 245 seconds]
Cymew has quit [Ping timeout: 246 seconds]
msavoritias has joined #commonlisp
kevingal has joined #commonlisp
zxcvz has joined #commonlisp
zxcvz has quit [Client Quit]
Pixel_Outlaw has joined #commonlisp
tertek has joined #commonlisp
tertek_ has quit [Ping timeout: 246 seconds]
yitzi has quit [Remote host closed the connection]
tyson2 has quit [Remote host closed the connection]
jonatack has quit [Read error: Connection reset by peer]
jonatack has joined #commonlisp
rgherdt has joined #commonlisp
attila_lendvai has quit [Ping timeout: 244 seconds]
bitspook has quit [Remote host closed the connection]
jonatack has quit [Quit: WeeChat 3.8]
mgl has quit [Quit: Client closed]
jonatack has joined #commonlisp
tertek has quit [Ping timeout: 246 seconds]
tertek has joined #commonlisp
tyson2 has joined #commonlisp
donleo has joined #commonlisp
NotThatRPG has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
karlosz has joined #commonlisp
NotThatRPG has joined #commonlisp
dino_tutter has joined #commonlisp
thuna` has joined #commonlisp
shka has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
triffid has joined #commonlisp
cosimone has quit [Ping timeout: 246 seconds]
NotThatRPG has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
scymtym has joined #commonlisp
msavoritias has quit [Remote host closed the connection]
thonkpod has quit [Ping timeout: 248 seconds]
thonkpod has joined #commonlisp
NotThatRPG has joined #commonlisp
NotThatRPG has quit [Client Quit]
tyson2 has joined #commonlisp
tyson2 has quit [Read error: Connection reset by peer]
tyson2 has joined #commonlisp
NotThatRPG has joined #commonlisp
waleee has joined #commonlisp
NotThatRPG has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
tyson2 has quit [Remote host closed the connection]
Araone has joined #commonlisp
attila_lendvai has joined #commonlisp
kevingal has quit [Ping timeout: 245 seconds]
perrierjouet has quit [Quit: WeeChat 4.0.2]
Araone has quit [Quit: Leaving]
donleo has quit [Ping timeout: 248 seconds]
_cymew_ has quit [Ping timeout: 252 seconds]
attila_lendvai has quit [Ping timeout: 246 seconds]
pfdietz has joined #commonlisp
perrierjouet has joined #commonlisp
attila_lendvai has joined #commonlisp
perrierjouet has quit [Client Quit]
perrierjouet has joined #commonlisp
igemnace has quit [Read error: Connection reset by peer]
igemnace has joined #commonlisp
donleo has joined #commonlisp
markb1 has quit [Ping timeout: 256 seconds]
aartaka has joined #commonlisp
thuna` has quit [Remote host closed the connection]
rgherdt has quit [Quit: Leaving]
markb1 has joined #commonlisp
dino_tutter has quit [Ping timeout: 248 seconds]
pve has quit [Quit: leaving]
Oladon has joined #commonlisp
tyson2 has joined #commonlisp
NotThatRPG has joined #commonlisp
attila_lendvai has quit [Ping timeout: 246 seconds]
NotThatRPG has quit [Ping timeout: 246 seconds]
NotThatRPG has joined #commonlisp
goober has quit [Remote host closed the connection]
goober has joined #commonlisp
aartaka has quit [Ping timeout: 248 seconds]
shka has quit [Ping timeout: 248 seconds]
igemnace has quit [Remote host closed the connection]
tevo has joined #commonlisp
NotThatRPG has quit [Ping timeout: 256 seconds]
aartaka has joined #commonlisp
bilegeek has joined #commonlisp
dra has quit [Quit: Leaving]
aartaka has quit [Ping timeout: 252 seconds]
Lord_of_Life_ has joined #commonlisp
Lord_of_Life has quit [Ping timeout: 246 seconds]
habamax has joined #commonlisp
Lord_of_Life_ is now known as Lord_of_Life
donleo has quit [Ping timeout: 245 seconds]
triffid has quit [Quit: triffid]
Oladon has quit [Quit: Leaving.]
akoana has joined #commonlisp
habamax has quit [Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.1)]