aboutsummaryrefslogtreecommitdiff
path: root/frontend/trans.icl
AgeCommit message (Collapse)AuthorFilesLines
2001-08-27Universally quantified types addedsjakie1-0/+5
Bug fix in reference marking git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@675 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2001-06-29cleaning upmartinw1-41/+4
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@512 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2001-06-22boolean for explicit cases (cases that are specified by the programmer)ronny1-0/+3
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@494 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2001-06-11Bug fix with array updates. Removed redundant code. Adjusted unification ↵sjakie1-6/+9
algorithm. git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@478 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2001-05-30in 'transform' of trans.icl also transform expressions in selections of an ↵johnvg1-0/+17
Update node git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@439 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2001-05-30added alternatives to function 'transform' for ↵johnvg1-1/+21
Update,RecordUpdate,TupleSelect and MatchExpr git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@436 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2001-05-11moving all switch macros to new module "compilerSwitches"martinw1-1/+2
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@423 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2001-05-08moved ImportedFunctions from convertcases to transronny1-0/+1
(it's now together with ImportedConstructors) git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@396 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2001-04-20bugfix concerning dictionaries that contain let expressionsmartinw1-18/+18
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@365 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2001-03-28uniqueness support is added to genericsalimarin1-6/+0
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@346 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2001-03-27unfold all macros and local functions in macrosjohnvg1-5/+7
changed Declaration type fixed crash when macro appears only in dcl module added make with caching in 'main' use BoxedIdent in hashtable git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@344 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2001-03-23fixing several bugsmartinw1-27/+41
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@338 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2001-03-20Sjaak: fixed inheritance bugs and strictness attributessjakie1-48/+58
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@335 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2001-03-15*** empty log message ***martinw1-44/+108
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@333 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2001-03-02bugfix for specialisationsmartinw1-34/+64
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@316 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2001-02-13delaying "determineTypesOfInstances" and "checkSpecialsOfInstances" aftermartinw1-21/+18
checking of a whole dcl module component --> now cyclic module dependencies should work git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@294 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2001-01-19uniqueness unification for types of functions that are generatedmartinw1-452/+632
during the transformation phase git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@292 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-10-23renumber icl function and macro indices when unfoldingjohnvg1-19/+20
dcl macros in icl functions and macros removed expanded macros from groups (s.c.components) git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@259 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-10-04-added position information for let bindings for better error messagesmartinw1-69/+115
-bugfix: some SK_LocalMacroFun patterns were missing -bugfix: newly generated functions were placed into wrong components -bugfix: functions were wrongly specialized git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@246 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-09-27making compiler self compatiblemartinw1-41/+69
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@237 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-09-26removing stuff that once dealt with dynamicsmartinw1-49/+14
bugfix: now dictionaries are deforested correctly again git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@230 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-09-22fixed bug in type unificationmartinw1-6/+10
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@223 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-09-20improving bufix from revision 1.39martinw1-8/+3
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@217 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-09-13fixed following bug:martinw1-13/+12
:: Record = {x :: !Int, y :: Int} Start = { x = undef, y = 2}.y has been tranformed into Start = 2 git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@213 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-08-18dynamic type bug fixed; changes to support theorem provermartijnv1-4/+22
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@206 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-08-16restoring revision 1.35, revision 1.36 was unintendedmartinw1-190/+2
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@205 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-08-16ConsVariables were not handled correctly within improved type error messagesmartinw1-1/+189
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@204 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-08-10added position information to case defaults to improve type error messagesmartinw1-1/+2
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@201 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-08-04bugfix: types that were associated with case and let expressions were notmartinw1-29/+30
specialized correctly during fusion git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@198 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-07-10Restore correct versionclean1-75/+8
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@182 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-07-03no messageclean1-8/+75
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@179 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-06-16now the same type unification algorithm is used for inlining dictionariesmartinw1-75/+8
and the other producers git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@171 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-06-14now higher order function elimination works also for imported functionsmartinw1-14/+13
that are overloaded git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@161 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-06-13bugfix: the type unification algorithm used to generate types for new ↵martinw1-97/+121
functions could not deal with synonym types properly. git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@157 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-06-09bugfix in trans. utilites: renaming of mapSt into map_st was necessary, ↵martinw1-57/+61
otherwise the compiler would not be able to compile itself. git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@156 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-06-05enabled higher order function elimination also for functions (producers)martinw1-126/+185
that are imported git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@149 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
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