aboutsummaryrefslogtreecommitdiff
path: root/frontend/trans.icl
AgeCommit message (Collapse)AuthorFilesLines
2000-05-31fixed fusion bug: The algorithm that derived the type for the specialised ↵martinw1-59/+100
function worked like follows: In a first phase bind type variables to their instantiation for all producers. In the second phase apply the substitution. This didn't work for consumers that are fused with multiple producers, e.g: cons :: (a->b) (b->c) a -> c prod1 :: Int -> Int prod2 :: d->e During producer-wise binding a and b were first bound to Int and Int. _Then_ b and c were bound to d and e (b was overwritten) Solution: Apply the one substitution for each producer git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@144 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-04-26changes to make compiler compatible with itselfmartinw1-51/+72
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@126 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-03-20*** empty log message ***sjakie1-45/+68
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@115 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-03-17 - making array patterns strict (strict lets were not properly handledmartinw1-16/+30
in "convertCasesOfFunctionsIntoPatterns" and "collectVariables") - new switch "SwitchUniquenessBug" in module checksupport - several bugfixes git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@114 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-03-14extended array patterns for muitidimensional arraysmartinw1-15/+17
bugfix git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@111 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-03-01bugfixesmartinw1-18/+9
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@108 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-02-21- implemented comparison between redundant definitions in icl and dcl modulesmartinw1-5/+1
(new module: comparedefimp) - implemented array patterns. Further work: arrays are in lazy context (should be strict), currently only one dimensional arrays - optimised memory usage for explicit imports git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@94 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-02-15added Boolean to FunctionKind to mark genetared functionsronny1-1/+1
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@90 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-01-19check.icl: improving bugfix that yielded revision 1.15martinw1-3/+4
trans.icl: improving sjaaks changes that yielded revision 1.17 parse.icl: bugfix: The following program led into "could not determine the type of this record" module t5 :: R1 = { f :: Int } :: R2 = { f :: Int } :: R3 = { g :: R1 } g x = { x & g.R1.f = 1 } git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@80 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-01-19bug fix (changed syntax tree)sjakie1-13/+18
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@79 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-01-13- check.icl: solved check-bug-11:martinw1-0/+4
Check Error [case_bug.icl,18,f]:"_" illegal combination of patterns f t = case t of {(a,2) -> 1; _ | False -> 2; (a,b) -> 3;}; - typesupport.icl: small typo - trans.icl: small optimisation git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@75 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-01-03compile time pattern matching only took linearity into account butmartinw1-11/+14
not whether an argument of a constructor is in normal form case [a] of { [b]->(b,b) } transformed to let b=a in (b,b) now it transfroms to (a,a) git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@71 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
1999-12-20fixing bug in module transmartinw1-2/+45
before case x of { 1->1; _ -> case C of { A -> 2 }} transformed to case x of { 1->1; _ -> neverMatchingCase } now it transforms to case x of { 1->1;} git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@68 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
1999-12-03completing Sjaak's changes in module trans caused by exchanging the ↵martinw1-28/+51
transform and convertcases phases git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@62 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
1999-12-01Several bug fixes:sjakie1-2/+2
- dictionary arguments added properly - coercion of function types git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@61 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
1999-11-29bug fixsjakie1-11/+22
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@60 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
1999-11-23change: dynamics are now converted before 'fusion'sjakie1-14/+30
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@58 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
1999-11-19added code for dealing with dynamicssjakie1-22/+34
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@57 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
1999-11-15bugfix in module transmartinw1-5/+9
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@48 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
1999-11-12bug fixesmartinw1-48/+15
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@46 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
1999-11-12vergeten, traces wegteheugenmartinw1-13/+0
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@44 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
1999-11-12bug fix in trans.iclmartinw1-17/+6
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@43 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
1999-11-08bug fix: arity of imported function was incorrectsjakie1-1/+5
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@37 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
1999-11-05fusion works now. The fusion switch in module typesupport is enabledmartinw1-554/+891
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@35 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
1999-10-18lots of changes in module trans to make fusion work.martinw1-271/+1031
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@16 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
1999-10-05Initial importronny1-0/+1172
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d