***ft_ is now known as ft
***heroux_ is now known as heroux
***sneek_ is now known as sneek
<civodul>tupi seems to be making good progress on guile-clutter! <civodul>i hope review is making progress as well, because i don't see many replies on guile-devel ;-) <wingo>well, i guess that's what happens when i left-shift -1 by a couple billion <wingo>i think it's reasonable to unbox flonums at some point in 2.2 <wingo>we'd have to add unbox-f64, box-f64, f64+, f64/, etc opcodes <wingo>and do f64 arithmetic when we can prove the type is a flonum <wingo>which is often, in inner loops anyways... <lloda>will that proof include (array-ref #f64(...) i) <wingo>good question -- it certainly should <wingo>the type of array-ref will depend on the type of the array <wingo>in the same way that the result type of + depends on its arguments <wingo>so it's a flow analysis problem *wingo has scalar replacement working in master, whee <ijp>scala replacement will take much longer <wingo>i'm close to lausanne, i can infect their water supply ***dsmith-w` is now known as dsmith-work
<wingo>,x (lambda () (let ((x (cons 'a 'b))) (set-car! x 'c) (set-car! x 'c) (car x))) <wingo>Disassembly of #<procedure 1f902c8 at <current input>:1:0 ()> at #x1f90208: <wingo> 0 (assert-nargs-ee/locals 1 0) ;; 0 args, 0 locals at (unknown file):1:0 <davexunit>wingo: so, you were able to do enough analysis to know that 'c is *always* returned from this procedure and remove all other instructions? neat. <davexunit>much improved from the disasembly on stable-2.0 <davexunit>do situations like this occur frequently in the "real world"? <ijp>stupid things happen in the real world ALL the time <ijp>wingo: what if you put the lambda inside the let? <stis>macrology can be lazy and output really stupid code <ijp>stis: but, but, the macro writers bill of rights! <davexunit>3 instructions for wingo, 22 for me on stable-2.0 <dsmith-work>ijp: What? You get what you deserve for writing macros? <ijp>dsmith-work: it was a talk given by the chez scheme author <ijp>basically arguing for a set of "rights" macro writers should expect, which roughly equal syntax-case + an optimisation pass <dsmith-work> 0 (assert-nargs-ee/locals 1 1) ;; 0 args, 1 local at (unknown file):1:3 <davexunit>dsmith-work: could very likely be work that wingo has just done at hasn't pushed yet.