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