Hello, I have an issue when compiling: The Dataflow+ fail and "remove" a part of the code: Unfortunatly I did not success to make a testcase.... Issue is probably coming by the fact that several things are coming and used in several modules. For information, it is working in 4.3a.
I have originaly something like: ====================== (let* (((get-key (lambda (obj) (let* ((key (obj :get-key)) (stuff (%hashtable :get key))) (if stuff stuff "unknown")))) (something that pass get-key in argument) =================== -Note that "stuff" is a lambda After Dataflow it becomes: ================== (get-key (obj) (let ((key (funcall obj obj :get-key))) (let ((stuff (funcall %hashtable %hashtable :get key))) (let () (if stuff stuff "unknown"))))) ================== After the Dataflow+ it becomes: ================== Top of file: ----- ;; &get-key ;; procedure-el x obj -> obj ;; [static side-effect: #t occ: 1 rm: now loc: #{location src/pvtsc_rdb.scm 46059 973} user?: #t removable: now] (define (&get-key env obj) (let ((%hashtable (procedure-el-ref env 0))) (labels ((get-key (obj) (let ((key (funcall obj obj :get-key-pvtsc))) (let ((stuff (funcall %hashtable %hashtable :get key))) (let () (if stuff stuff "unknown")))))) (get-key obj)))) In the "normal code": ------- (let ((get-key (make-el-procedure 1))) (begin (begin (procedure-el-set! get-key 0 %hashtable)) ================== Do you have any advice on how I can debug this ??? Best regards, Pierre-Francois