I have been struggling for the past weeks trying to find out what would be
the most useful way to interpret type declarations in ECL... without much
success. It is for this reason that I have finally decided to follow other
people's practices and import SBCL's policy on type declarations.
If I understood things correctly, the idea is the following:
- SBCL tries to infer the type of all expressions (ECL too). In particular,
the type of a variable is also inferred based on the assignments and the
code flow.
- A type declaration for a variable is considered an annotation such that
every assignment to that variable is checked to have at least that type --
note that the compiler might have inferred a different, more specific type
anyway.
I am experimenting with this model right now. It is useful in the sense
that at low optimization settings things remain the same, while at high
settings some additional type checking is performed -- and in ECL's case it
led to the discovery of some incorrect type declarations at execution time.
It also has the advantage that type declarations can then be blindly
trusted even at high safety settings, due to the checks which are emitted
by the compiler.
Feedback is welcome,
Juanjo
--
Instituto de FĂsica Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)
http://juanjose.garciaripoll.googlepages.com
------------------------------------------------------------------------------
Write once. Port to many.
Get the SDK and tools to simplify cross-platform app development. Create
new or port existing apps to sell to consumers worldwide. Explore the
Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join
http://p.sf.net/sfu/intel-appdev
_______________________________________________
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list