aboutsummaryrefslogtreecommitdiff
path: root/frontend/syntax.dcl
AgeCommit message (Collapse)AuthorFilesLines
2016-06-10add Expression to CP_SymbArg and rename as CP_SymbArgAndExpression,johnvg1-1/+1
print expression in error message in cannot_unify git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2732 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2016-06-06set FI_HasTypeCodes in fi_properties if a function contains type codes andjohnvg1-0/+2
should be converted in module convertDynamics, instead of storing a list with one nilPtr in fi_dynamics, remove unnecessary Let expressions with unused variables by initializing with VI_NotUsed instead of VI_Empty git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2724 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2015-12-02allow # and | in \ expressionsjohnvg1-1/+1
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2671 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2014-09-26remove unused constructor TQV of :: type_io.icljohnvg1-2/+0
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2424 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2013-12-13in derived dynamic types, add uniqueness to algebraic types that are always ↵johnvg1-1/+1
unique (the type definition has a * on the left), add Bool to GTT_Constructor to indicate uniqueness, generate TCE_UnqType in TypeCode for unique GTT_Constructor's, this uniqueness property should be propagated, but this is not implemented yet git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2336 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2013-06-03remove unused Bool of PE_Let contructorjohnvg1-1/+1
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2249 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2013-04-09optimize fusion, reduce memory used of fusion (from iTask branch):johnvg1-0/+9
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
2013-04-08add generic function dependencies for generic function definitions,johnvg1-22/+49
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
2013-04-05add derive class for deriving generic functions in class context (from iTask ↵johnvg1-0/+3
branch) git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2225 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2013-04-05change type GenericCaseDef, add types GenericCaseFunctions and GCFjohnvg1-8/+15
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2224 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2013-04-04add type StringPos (from iTask branch)johnvg1-0/+6
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2223 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2013-04-04add type constraints in dynamic typesjohnvg1-2/+3
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2221 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2013-04-02add type constraints in constructors and function arguments with universal ↵johnvg1-3/+35
quantifier (from iTask branch) git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2218 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2013-03-26remove unused constructor VI_Refjohnvg1-1/+0
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2215 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-10-24in the generic representation use RECORD instead of OBJECT and CONS for records,johnvg1-5/+7
change GenericInfo git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2191 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-08-14rename extendable to extensiblejohnvg1-2/+2
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2150 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-08-14add extendable algebraic data types (merged from iTask branch)johnvg1-9/+15
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2149 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-08-08make field aci_linearity_of_patterns of record ActiveCaseInfo strictjohnvg1-1/+1
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2138 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-08-07use an unboxed tail strict list for cc_linear_bits to reduce memory usagejohnvg1-1/+1
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2136 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-08-07fix fusion of a function that is both the consumer and the producer.johnvg1-2/+2
before copying the producer, the type variables are modified to use the type of the producer when updating the types in cases and lets, otherwise a polymorphic type may be specialized, possibly causing a type error later git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2134 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-08-02add pattern match test using =: in expressions,johnvg1-2/+4
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
2012-05-03in error message for incorrect field type print name of field instead of ↵johnvg1-1/+2
argument number of record git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2065 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-03-23fix implicit qualified import of a module of which no (qualified) symbol is usedjohnvg1-1/+5
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2050 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2011-11-10move type TypeCodeVariableInfo to module syntax, remove type ↵johnvg1-7/+6
DynamicValueAliasInfo, adjust imports git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2027 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2011-11-09add module expand_types containing some functions from module trans and ↵johnvg1-1/+2
module typesupport git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2025 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2011-11-04remove differences in layout between the compiler and the iTask compilerjohnvg1-10/+11
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1990 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2011-08-18remove unused constructor PE_Field of type ParsedExprjohnvg1-1/+0
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1960 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2011-04-21use strictness annotations in instance member types,johnvg1-9/+20
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
2011-04-18add instance declarations with a qualified class namejohnvg1-4/+8
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1928 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2011-04-15git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1926 ↵johnvg1-5/+12
1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2011-04-15remove field icl_copied_from_dcl from type IclModulejohnvg1-17/+2
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1923 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2011-04-14use type FunSpecials instead of Specials for specials of functionsjohnvg1-5/+11
(to have fewer differences with the haskell frontend branch) git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1921 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2011-04-14replace field dcl_macro_conversions by dcl_has_macro_conversions of type ↵johnvg1-1/+1
DclModule (to have fewer differences with the haskell frontend branch), the conversion table for macros is not used after checking git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1919 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2011-04-08fix type checking of existential type variables that are used by a dynamic ↵johnvg1-4/+2
expression, but do not occur in the type of a dynamic pattern. TempQDV is used for existential type variables in a dynamic pattern. git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1911 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2011-04-04use type ImportQualified instead of Bool for fields import_qualified and ↵johnvg1-1/+3
ei_qualified git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1899 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2011-04-04Remove type argument from_symbol of type Import, it was always type ↵johnvg1-5/+5
ImportDeclaration git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1897 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2011-03-31use type Component instead of Group in the fusion modules: partition, ↵johnvg1-1/+4
classify and trans, because function pointers for generated functions are stored in the Component, they can be found without searching the new functions list git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1895 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2011-03-22recognize non generic variables in is_bimap_idjohnvg1-1/+1
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1889 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2011-03-21optimize adapters for generic functions using algebraic types which havejohnvg1-3/+4
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
2011-03-21remove unused field td_context from type TypeDefjohnvg1-4/+3
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1884 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2011-03-17pass generic info only to instances for OBJECT, CONS and FIELD,johnvg1-1/+9
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
2011-03-04remove shorthand and iso functions from generic ranges,johnvg1-2/+4
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
2011-02-24git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1858 ↵johnvg1-11/+9
1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2011-02-11use ClassInstanceMember array for ins_members instead of DefinedSymbol array,johnvg1-1/+7
call exported generic instances directly git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1838 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2010-02-09unfold curried producers that are also normal producers if the producerjohnvg1-0/+2
is used in a curried application of a case expression, to prevent case's with applications that are be optimized. Whether the producer is treated as a curried or normal producer is determined during unfolding, PR_CurriedProducer is used to mark producers for which this is allowed. git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1781 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2010-02-05add optimizations for generic bimap,johnvg1-4/+5
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
2009-07-29fix bug that may occur if a let variable is used in another let in an ↵johnvg1-2/+3
alternative of a case and is also used in another alternative, these lets were not added to the list of lets closed by cases, now they are, and the let will be reopened in the other alternative git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1751 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2009-07-28mark strict vars with VI_StrictLetVar, transform case of such a varjohnvg1-1/+1
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1745 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2009-07-28create new fv_info_ptr's for strict lets in distributeLets, because otherwisejohnvg1-12/+3
backendpreprocess may number variables incorrectly, causing a crash in backend.dll, renamed VI_CaseVar to VI_CaseOrStrictLetVar git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1744 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2009-02-25add explicit import of generic functionsjohnvg1-2/+3
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1728 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d