Hello Jospeh,

I have already dug the issue and when looking at expansion results it is CLEAR 
that the problem comes from the expansion phase that suppress my code – please 
look at my first mail that explain this –
I do not succeed to make a simple testcase showing the issue.
So my question is how I can debug ON MY SIDE the way Bigloo is doing dataflow 
optimization.

The work of today (after patching bigloo) shows:

light?: (make-fx-procedure &get-key,#{approx _} 1 1) ...  may be X and T (local)

It may be X and T because of this :
        lost?: #f
        X-T?: #t
        arity: 2
        import: local
Its seems that combination leads to my issue

Anyone can help to explain me what it means?

Best regards,
Pierre-Francois




From: Joseph Donaldson [mailto:donaldso...@yahoo.com]
Sent: Monday, March 12, 2018 7:32 PM
To: bigloo@inria.fr; Ollagnon, Pierre-Francois 
<pierre-francois_ollag...@mentor.com>
Subject: Re: RE: [bigloo] Dataflow+ debuging

Hello, Pierre-Francois,

The runtime time error suggests the possibility of memory corruption. The 
scenario I am envisioning is the following. The get-key binding is initially 
correctly, but at some point in the execution flow, it is being corrupted, 
eventually being reported as the error you are seeing in pvt-maker:dump. I have 
seen similar errors before, and they were generally caused by c code that I was 
interfacing with; the c code erroneously overwrote memory it should not have. 
Do you happen to be interfacing with c as a part of your project? The memory 
layout of a program is sensitive to not only changes in your code (such as the 
addition of a print statement) but also to what optimizations are used. This 
could explain why the code works when data-flow is disabled or when a print 
statement is added.

If your program does not interface with c, compiling for the JVM backend may 
help you diagnose the underlying issue. The runtime errors provided by the JVM 
backend are different and sometimes can point you in the direction of the 
underlying problem.

It would be great if you could provide the problematic code or, even better, a 
small example demonstrating the issue. I know this is not always possible, but 
it is very hard to provide assistance without such information.


Best Regards,
Joseph Donaldson

Reply via email to