[Ecls-list] Type propagator and "bogus" existing code
Gabriel Dos Reis
gdr at integrable-solutions.net
Sat Jun 19 15:49:06 UTC 2010
On Sat, Jun 19, 2010 at 10:44 AM, Juan Jose Garcia-Ripoll
<juanjose.garciaripoll at googlemail.com> wrote:
> On Sat, Jun 19, 2010 at 5:27 PM, Gabriel Dos Reis
> <gdr at integrable-solutions.net> wrote:
>> On Sat, Jun 19, 2010 at 10:21 AM, Juan Jose Garcia-Ripoll
>> <juanjose.garciaripoll at googlemail.com> wrote:
>> >> The compiler can infer that FOO inside the branch must have type
>> >> STRING.
>> > Doing this is not as easy as it sounds. Inferring types from conditional
>> > expressions and branches is not only difficult, but it may also be
>> > impossible when predicates are combined.
>> What about:
>> (1) do the inference per basic blocks
>> (2) if combining types from two branches is impossible to check
>> issue a runtime check (based on compilation policy, debug, speed,
>> and issue a note
> This might work if we represented the code as a graph, but from my previous
> email you will understand that this is not the case.
Sorry, I just got your other email -- and I sent the one you're
replying to before.
Many thanks for the explanation.
> An IF statement sees
> the condition as an expression, with no type information about other
> expressions or variables being propagated.
Yes, you are right.
> Anyway, I think I will settle for a simple style warning. The disadvantage
> is that this will mask real problems, such as real type errors, but given
> Common Lisp's semantics and the code out there, nothing else seems sensible.
That sounds reasonable to me.
More information about the ecl-devel