Age | Commit message (Collapse) | Author | Files | Lines |
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@184 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@183 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@182 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@181 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@180 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@179 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@178 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
#! 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
|
|
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
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@175 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@174 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@173 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@172 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
and the other producers
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@171 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
:: T :== Int
f = { T | f1 = blub }
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@170 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@169 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@167 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@166 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
"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
|
|
Peter's bug removed
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@164 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@163 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
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
|
|
that are overloaded
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@161 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
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
|
|
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
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@158 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
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
|
|
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
|
|
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
|
|
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
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@153 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@152 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@151 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
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
|
|
that are imported
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@149 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@148 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@147 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@146 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
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
|
|
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
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@143 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
#! (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
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@141 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@140 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@139 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
did not recognise a dynamic.
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@138 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@137 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@136 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
funny constructors in algebraic typedefs
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@135 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
this into account)
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@134 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|