Age | Commit message (Collapse) | Author | Files | Lines |
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2424 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
generics1 module
to the list of all type attributes
(not adding these type attributes caused a type error),
this also happens for function types that are specified by the programmer,
the universally quantified type variables are however not added to the list of all type variables
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2334 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
allow integers and strings as consumer for generic functions (to optimize use of generic info).
use PR_CurriedFunction instead of PR_Curried for local macro functions that are good producers.
check the arity of the function to be generated already in determineProducer,
if too large, don't yield a producer which will be rejected later,
to allow optimization of producers in subsequent arguments.
optimize trivial function calls (with arguments) before optimizing arguments,
treat constant function as trivial function.
if a function call has two identical arguments,
generate a specialized function that shares these parameters.
specialize functions with zero arity constructor arguments,
if the function is a generic function, or the constructor is a generic constructor.
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2232 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
add generic case definitions in definition modules for the types used to make the generic representation,
in generic case definitions in definition modules specify what generic info and dependencies are used
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2227 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
iTask branch)
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2226 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
branch)
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2225 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2224 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2223 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2222 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
attribute,
instead of only for first argument
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2192 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
change GenericInfo
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2191 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2149 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
add constructors PE_Matches and IsConstructor in module syntax
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2130 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2017 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2012 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
add instance member types in definition modules
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1932 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1930 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1928 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1889 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
constructors with only type variable arguments occurring at most once,
these types can be optimized if they occur as an argument or result,
or as an argument of such a type, of a generic function (and a generic
variable is used by the type)
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1886 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
call instance functions for OBJECT, CONS and FIELD directly, with generic info
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1881 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
first all main instances are build, then all shorthand instances,
shorthand instances directly call the main instance (SK_Function instead of SK_Generic),
call toGeneric.. and fromGeneric.. functions directly if possible, instead of iso..
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1877 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1874 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1867 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
because OBJECT, CONS and FIELD have this kind and are the only types using generic info
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1855 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
call exported generic instances directly
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1838 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
in genericsupport
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1790 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1785 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
existential or universal quantifier
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1784 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
add bimap instances for standard generic types to compiler
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1764 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1763 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1762 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
change toGenericFrom and fromGenericto to fromGeneric and toGeneric
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1761 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1760 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1759 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
used and may cause the compiler to crash if generic definitions and
instances occur on a cycle of definition modules
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1702 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
can crash because arguments can be incorrectly analyzed as unused
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1693 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1685 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1684 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1665 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1648 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1627 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1603 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1567 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1561 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1538 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1534 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|
|
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1368 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
|