 11 Jul, 2014 6 commits


Julien Lopez authored

Julien Lopez authored
if cond then expr <=> if cond then expr else [] Note that in case of ambiguity the "else" statement is part of the last "if" statement: if a then if b then c else d <=> if a then (if b then c else d)

Julien Lopez authored

Kim Nguyễn authored
Only use the old typing of applications for ground types (not types with only monomorphic variables)

Kim Nguyễn authored

Giuseppe Castagna authored

 10 Jul, 2014 5 commits


Kim Nguyễn authored

Kim Nguyễn authored
Remove commented code in clean_type. Restore cleaning of variables that are in covariant position in the result type, to avoid having strange types such as: [] > [ ('b) * ]

Kim Nguyễn authored
Given a type for which each kind is i DNF : ints: \/ /\a /\v /\~b /\~w chars: \/ /\a /\v /\~b /\~w ... where a, b are atoms and v w toplevel variables, index the type by pairs of variables, for each kind, which gives a matrix of 8 lines. ... (v, w) ... (x,y) ... ints: t1 t1 chars: ... ... atoms: times: xml: arrow: record: abstract: t8 t8 let T = t1  ...  t8, we can write ((v & w)  (x & y)) & T we now try to factor according to variables (intersection of v x and w y) to have a type of the form: ('a  ...  'd) & 'e ... & (Any \ 'f) & T

Kim Nguyễn authored

Julien Lopez authored

 09 Jul, 2014 3 commits


Julien Lopez authored
cases like this: type t = ['b '@' 'a] We have a syntax error because CDuce thinks 'b ' as a string, to fix that, implicitly write: type t = [('b) '@' 'a]

Julien Lopez authored
variables in brackets. However, we can't write ';;' in strings in brackets in toplevel now: # type t = ['a];; # type t = ['a'];; # type t = ['a 'a'];; # type t = [';;'];; Characters 1011: Illegal character We still have to print a better error message.

https://git.cduce.org/cduceKim Nguyễn authored
* 'master' of https://git.cduce.org/cduce: Preliminary workaround to only substitute by any/empty variables that were introduced by the tallying. [TESTS] Progress in stdlib/list

 08 Jul, 2014 5 commits


Kim Nguyễn authored
Preliminary workaround to only substitute by any/empty variables that were introduced by the tallying.

Julien Lopez authored

Kim Nguyễn authored
precise = false returns the constraint itself as output type (which is not sound when it is a variable).

Kim Nguyễn authored
for each component (int, atoms, pairs...) we optimize the case where the component is like T1&'a  T2  T3&'a we split it into  T2  T1 &'a  T3 &'a we retrieve { 'a } as the set of top level vars in the second type we compute T2 &'a  T1 &'a  T3 &'a then remove 'a from that type and return finally : T2  ('a & (T1  T2  T3)) We special case if (T1  T2  T3) is top, then we just display T2  'a

Kim Nguyễn authored
of sequencenon_variable(toplevelvar ^ rest) with special cases when non_variable or sequence are empty and toplevelvar or rest are any (or any combination of thoses). Add the examples of the part2 paper in a test file.

 07 Jul, 2014 7 commits


Kim Nguyễn authored
not propely propagate in case the left component was a 1 element intersection or union containing an arrow) Note: we should not have been generating such types in the first place.

Kim Nguyễn authored

Kim Nguyễn authored

Kim Nguyễn authored

Kim Nguyễn authored

Kim Nguyễn authored

Kim Nguyễn authored
Fix typing of application. Apply the polymorphic code when either the function or its argument have variables.

 03 Jul, 2014 1 commit


Pietro Abate authored
This reverts commit 045a8519.

 02 Jul, 2014 2 commits


Pietro Abate authored

Pietro Abate authored

 01 Jul, 2014 5 commits


Pietro Abate authored
 delta is now kept into consideration when memoizing

Pietro Abate authored

Pietro Abate authored

Pietro Abate authored

Pietro Abate authored
Tallying and printing still broken.

 28 Jun, 2014 2 commits


Pietro Abate authored

Pietro Abate authored

 27 Jun, 2014 4 commits


Pietro Abate authored
 delta is not yet used to do anything meaningful  remove optional argument ?fresh from Var.mk (legacy not used)  print > pp,printf refactoring

Pietro Abate authored

https://git.cduce.org/cducePietro Abate authored

Pietro Abate authored
