[lisaac-Feature Requests][312218] Fast DEBUG compilation (C compiler are too slow)

lisaac-featurerequests at alioth.debian.org lisaac-featurerequests at alioth.debian.org
Fri Jan 15 11:01:41 UTC 2010


Feature Requests item #312218, was opened at 15/01/2010 11:01 by Nicolas Boulay
You can respond by visiting: 
https://alioth.debian.org/tracker/?func=detail&atid=413104&aid=312218&group_id=100200

Status: Open
Priority: 3
Submitted By: Nicolas Boulay (cyrano-guest)
Assigned to: Nobody (None)
Summary: Fast DEBUG compilation (C compiler are too slow) 


Initial Comment:
Problem :
Some developement can't avoid frequent compile especially when checking equation errors.  Currently Lisaac is pretty fast, but Gcc is not.

Few proprosed solutions :

_Automatic split on C function_
Lisaac should know how to split C files. In the general cases, the function generated by Lisaac are big, so there is few chance of interprocedural optimisation by C compiler. So each function could be in it's own C file. This enable parralel gcc compiling to speed up global compilation.

But you can't do partial C recompile because C function name are not stable. And you don't have garanties that the function tree will stay stable.

_grouping of high level prototypes_

We could add option to the lisaac compiler to create "group" of prototype which the interface will be in a C file. The compilation stay global for each group, but the interface exposed will be in a single C file. So you could have the prototype under work beside the other prototypes and do incremental compile without loosing all global optimisation. It's almost like the prototype under work is a main prototypes.

After such a compile, you will have typicaly 2 C files, one with allmost all the prototype used and one with the currently under work prototype and there dependancies. Only this last file will be generated if the other file don't changed.

_it's different than partial compile for scability issue_

I think that the scale problem is different from this one. The day where we want compile millions of Lisaac code lines and not ten thousand, a simple "window" could be apply on the code base. The global compilation will only be done on selected prototype not all the base on "vertical" cut to keep ther performance, and then the piece will be put together. The windows size could be 10 000 prototypes, after the detection of all used prototype, we find all the groupe of 10 000 prototypes starting from leaf prototype (the group could overlap !). then the global compile could be split in different thread or even computer.

It looks like finding automatically the groupe describe before.

----------------------------------------------------------------------

You can respond by visiting: 
https://alioth.debian.org/tracker/?func=detail&atid=413104&aid=312218&group_id=100200



More information about the Lisaac-devel mailing list