aboutsummaryrefslogtreecommitdiff
path: root/frontend
AgeCommit message (Collapse)AuthorFilesLines
2000-07-10Improved compatibility with Maarten's Theorem Prover Sourcesclean6-53/+141
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@184 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-07-10optimised consequence checking for explicit importsmartinw3-448/+421
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@183 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-04labels global function names without ";n" extensionclean3-4/+3
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@181 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-07-03removing trace statementmartinw1-1/+1
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@180 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-07-03no messageclean4-10/+83
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@179 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-07-03no messageclean4-9/+3
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@178 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-06-21solving the problem of strict aliases. Now a strict aliasmartinw6-58/+99
#! x = y will be transformed into #! x = _dummyForStrictAlias y while checking. The new predefined symbol _dummyForStrictAlias has the type of the identity function. This application will be removed in the backend conversion phase. In this case x and y will simply get the same sequence number (see module backendpreprocess). Then the binding can be ignored. git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@177 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-06-21bugfix: not only STE_Imported appears in dcls_explicit (and dcls_import?) butmartinw1-15/+19
also STE_Macro. This showed up after a list comprehenshion that matched on STE_Imported was transformed into a function with that pattern git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@176 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-06-20reduce memory allocationclean7-61/+246
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@175 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-06-20no messageclean1-1/+2
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@174 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-06-20re-adding dead versionmartinw1-0/+1015
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@173 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-06-20no messageclean1-1015/+0
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@172 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-16added error message "not a record constructor", e.g. in the following case:martinw1-0/+3
:: T :== Int f = { T | f1 = blub } git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@170 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-06-16accepting JVG's changesmartinw2-25/+1
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@169 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-06-16small changes to reduce memory allocationclean6-16/+69
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@167 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-06-16fix another bug in boolean cases that may failclean1-30/+16
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@166 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-06-15MW once added a macro called "SwitchUniquenessBug", Sjaak also added a macromartinw4-8/+2
"PA_BUG" for the same purpose. MW removes his macro _untertaenig_ in favour of Sjaaks version git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@165 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-06-15update of dictionary typessjakie7-101/+131
Peter's bug removed git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@164 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-06-14correcting tiny change of previous revisionmartinw1-2/+1
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@163 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-06-14bugfix: the compiler was unable to deal with macros that called a localmartinw1-2/+7
function that had the same name as the macro: ////////// module t5 import t6 Start = f f ///////// definition module t6 f x :== f x where f x = x ///////// caused an abort git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@162 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-14optimisation: compareDefImp now only compares those definitions that aremartinw3-16/+35
really redundant, but not those which are added automatically by the compiler to the icl module git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@160 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-06-14tiny change to make compiler compilable by itself (2.0 parser works eithermartinw1-1/+2
with our without layout rule, but not with both) git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@159 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-06-13fixed bug in boolean case expressions of which first alt may failclean1-2/+13
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@158 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, ↵martinw3-65/+69
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-09Added preprocessor directives, so that one and the same source can bemartinw5-24/+56
compiled with Clean 1.3 and Clean 2.0 git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@155 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-06-09predef.icl: StdDynamics has become StdDynamicmartijnv2-1/+6
postparse.icl: Propagation continues with dynamic expression instead of halting git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@154 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-06-08JVG: changed mapSt function into macroclean2-1/+33
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@153 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-06-06coercions added though not completemartijnv3-41/+58
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@152 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-06-06see previous revisionmartinw1-3/+1
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@151 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-06-06added simple hacky preprocessor facility. The following sourcemartinw2-12/+48
module t /*2.0 from m import :: T(C1) 0.2*/ //1.3 from m import T, C1 //3.1 will be transformed into module t /***/ from m import :: T(C1) /***/ /*1.3 from m import T, C1 3.1*/ before scanning. In this way we achieve that the upper source can be compiled with the 2.0 compiler as well as with the 1.3 compiler The comments _must_ begin the line (no leading whitespaces are allowed). git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@150 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-06-05enabled higher order function elimination also for functions (producers)martinw4-134/+195
that are imported git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@149 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-06-05removed ---> applicationmartijnv1-1/+1
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@148 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-05-31readableizing error messagesmartinw6-18/+28
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@147 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-05-31setting defaultPrio to 9 according to bug report from Ronnymartinw1-1/+1
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@146 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-05-31Added just a comment (beginning with "XXX") that indicates a change that has ↵martinw1-0/+1
to be made to solve the following bug: f # x = undef #! y = x | True = 2 = y After checking this will be like f # x = undef | True = 2 = x To really solve this bug we have to invent something new, because aliases like (#! y = x) are _not_ allowed. We could either introduce a dummy identity function: f # x = undef #! y = dummy_id x | True = 2 = y or we could introduce constructs like f # x = undef #! y | True = 2 = y git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@145 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-05-30fixed bugs; partially implemented type dependent functionsmartijnv7-138/+367
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@143 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-05-26bugfix: The following letmartinw1-1/+2
#! (a, b) = f was originally translated into #! _x = f #! a = _x.0 #! b = _x.1 which is wrong. Now a an b are in a lazy context git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@142 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-05-22improved dynamicssjakie4-35/+85
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@141 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-05-17accepting changesmartinw1-2/+0
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@140 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-05-17bugfixmartinw1-5/+12
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@139 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-05-16bugfix in transform.icl (line 1306): the reference count in collectVariablesmartijnv1-0/+5
did not recognise a dynamic. git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@138 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-05-11bug fix (uniqueness attributes)sjakie1-3/+13
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@137 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-05-11bug fix in macrossjakie1-3/+18
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@136 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-05-11fixed basic types in dynamics andpieter1-16/+27
funny constructors in algebraic typedefs git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@135 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2000-05-03made order of local definitions the same as in icl module (compareDefImp takesmartinw1-1/+1
this into account) git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@134 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d