freenode/#clasp - IRC Chatlog
Search
19:44:22
heisig
I am all in for removing the immediate-ast class. I didn't even know there is such a thing.
19:46:54
heisig
karlosz: Loop invariant hoisting is extremely important for numerical codes. Having to do this by hand is quite the pain.
19:47:34
karlosz
alright, ive already started writing it. itll be done in HIR so clasp can use it too
19:48:47
Bike
the existing loop detection seems to target strongly connected components, but i thought there was a broader condition
19:50:33
karlosz
yeah, usually whats done is a loop nest tree is done so that innermost loops can be optimized first
19:50:45
heisig
Loop optimization is probably also not a top priority at the moment. More something for the long-term wishlist.
20:19:36
Bike
also this problem is due to a complicated macro function, but only when it's compiled in part of a larger block.
20:19:52
attila_lendvai
hi! so, bclasp is basically aclasp compiling and loading a bunch more files that implement a full CL system, right?
20:23:59
karlosz
since you know at compile time whether youll have division by zero if youre constant folding...
20:27:14
karlosz
the user just defines a method on hoistable for whatever instruction they want to declare hoistable
20:32:36
attila_lendvai
Bike: and then when bclasp is being compiled by aclasp, the resulting fasl's are not loaded into the image (the way aclasp did), because it wouldn't speed up anything (aclasp remains the compiler code)? they are just linked together into an image that will be used when loading Cleavir, and then selfcompileing it into cclasp?
20:36:11
attila_lendvai
Bike: thanks for validating my assert's! I'm trying to sketch up a plan that includes the entire journey because it's too hard to hack ahead on this territory to just get going without a map
20:38:23
heisig
karlosz: That is pretty cool! That means we can finally have a fast AREF for multi-dimensional arrays (Because the index computation can be hoisted).
20:38:53
kpoeck
Is there a good reason why the calculation of *-float-positive-infinity is conditionalized with #+ieee-floating-point?
20:40:52
kpoeck
I fixed the printing error in push_base_string, so now (EXP (+ (LOG MOST-POSITIVE-SHORT-FLOAT) 100))
20:49:22
Bike
i can reproduce the bugifi have a print object method in the same block as the macro definition. what the living fuck
20:51:53
karlosz
its not able to recognize that (dotimes (i 5) (dotimes (j 7) (aref array (+ i 2) (+ j 4)))) is two different loops
20:56:01
Bike
a loop is a set of nodes all dominated by a header node, that are all successor*s of the header,and only the header has predecessors not in the set.
20:59:49
karlosz
good thing i havent signed away my rights to code to GNU yet, that means i can still upstream components to Cleavir
22:06:33
drmeister
Hello everyone - I'm at a "Foldamer" meeting at New York University - I get a few minutes to catch my breath and then I'm heading out to dinner - phew.
22:07:20
drmeister
ACTION is amazed at how many wireless networks are presented in New York when he opens his wireless pulldown menu.
22:08:37
drmeister
ACTION is glad that multiple bosons can occupy the same place at the same time - or he'd have trouble moving around.
22:19:53
drmeister
I'm really excited about this whole Cleavir thing - the more of Common Lisp that we can implement in pure Common Lisp - the less work there is getting a good implementation of Common Lisp up and running!
22:24:12
karlosz
okay, so now the (+ i 2) can get hoisted out of the inner loop in (lambda (array) (dotimes (j 7) (aref array (+ i 2) (+ j 4)))))
22:25:39
karlosz
heh! its not bad, just didnt have 30 years and tons of DARPA funding to make it good