aboutsummaryrefslogtreecommitdiff
path: root/frontend
AgeCommit message (Collapse)AuthorFilesLines
2013-04-10allow =: again for generic functions without argumentsjohnvg1-5/+1
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2233 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2013-04-09optimize fusion, reduce memory used of fusion (from iTask branch):johnvg5-316/+1167
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,johnvg18-840/+2601
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-05update derive class for deriving generic functions in class context (from ↵johnvg3-9/+26
iTask branch) git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2226 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2013-04-05add derive class for deriving generic functions in class context (from iTask ↵johnvg12-97/+383
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 GCFjohnvg7-205/+200
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)johnvg4-24/+46
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2223 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2013-04-04renumber functions after checking imported modules (from iTask branch)johnvg6-394/+509
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2222 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2013-04-04add type constraints in dynamic typesjohnvg8-103/+191
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2221 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2013-04-03remove more small differences in module typereify with the iTask branchjohnvg3-42/+42
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2220 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2013-04-03remove some small differences in module typereify with the iTask branchjohnvg2-33/+33
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2219 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2013-04-02add type constraints in constructors and function arguments with universal ↵johnvg28-372/+1283
quantifier (from iTask branch) git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2218 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2013-03-26in function adjust_type_code, add alternative for TCE_Selector,johnvg1-1/+6
fix name of type function git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2217 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
2013-03-25fix freshCopy of TFA var (cv :@: types), (cv :@: types) was not copied in ↵johnvg1-9/+7
this case git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2212 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2013-03-18use DirectorySeparator from CoclSystemDependent instead of '\\'johnvg1-1/+2
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2202 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2013-02-07Add function to ti_new_functions immediately when ti_recursion_introduced is ↵johnvg1-14/+14
set, because the new functions in ti_new_functions must be in the right order. - git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2199 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-12-03in function curryGenericArgType1 use TA_Multi while arguments have TA_Multi ↵johnvg1-0/+4
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
2012-10-24in the generic representation use RECORD instead of OBJECT and CONS for records,johnvg6-421/+478
change GenericInfo git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2191 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-10-16report a parse error if a strictness annotation or uniqueness attribute is ↵johnvg1-36/+60
used at the end of type or constructor arguments, for example: f :: Int ! -> Int or :: T = C Int * git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2189 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-10-08use path returned by fopenInSearchPaths to create the .tcl file name for ↵johnvg2-4/+3
openTclFile git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2185 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-10-08search and open file before calling wantModulejohnvg6-43/+62
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2184 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-09-21add hierarchical modulesjohnvg3-79/+65
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2177 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-08-24pass fun_info.fi_properties of the consumer to function determineProducer,johnvg1-31/+31
instead of only the FI_IsMacroFun bit, this will be used in future versions, for example to recognize generic functions git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2162 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-08-16don't copy unmodified types in addPropagationAttributesToAType to reduce ↵johnvg3-51/+107
memory usage git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2160 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-08-16don't copy unmodified types in replaceIntegers to reduce memory usagejohnvg1-37/+53
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2158 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-08-16optimize local function new_inequality in determine_attribute_of_cons,johnvg1-8/+11
(the inequality is often already present) git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2156 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-08-16optimize function get_markjohnvg1-6/+10
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2154 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-08-15fix coercibility check of instance of classes with a . before a ↵johnvg1-4/+4
(constructor) class variable git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2152 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-08-14rename extendable to extensiblejohnvg8-25/+25
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)johnvg18-155/+425
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2149 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-08-09remove VI_Expression pointer values after copying a case alternative in the ↵johnvg1-1/+2
fusion algorithm git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2148 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-08-09remove several forwarding pointers in the fusion algorithmjohnvg1-15/+46
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2146 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-08-08optimize coercionsToAttrEnv functionjohnvg1-9/+22
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2144 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-08-08build the whole st_attr_vars list in function generateFunction, instead of ↵johnvg1-2/+12
building it lazily git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2142 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-08-08replace function NewAttrVarId by NewAttrVar, improve caching of uniqueness ↵johnvg3-23/+28
attribute variable identifiers git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2140 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-08-08make field aci_linearity_of_patterns of record ActiveCaseInfo strictjohnvg3-9/+20
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 usagejohnvg4-34/+57
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.johnvg2-64/+104
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-06move computation of n_args_before_producer and n_producer_args in function ↵johnvg1-74/+70
generateFunction to local function n_args_before_producer_and_n_producer_args git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2132 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-08-02add pattern match test using =: in expressions,johnvg18-145/+556
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-07-27replace function trySimpleExpressionT that parses either a pattern or an ↵johnvg1-122/+145
expression by functions trySimplePatternT and trySimpleExpressionT git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2126 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-07-27add functions wantPattern and wantExpressionjohnvg1-19/+40
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2124 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-07-27rename some functions in the parser,johnvg1-86/+79
use Pattern instead of LhsExpression and Expression instead of RhsExpression git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2122 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-07-24=: cannot be used anymore for variable definitionsjohnvg1-18/+23
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2120 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-07-16optimize consumer analysis of cases,johnvg1-192/+337
don't create a list of arrays with variable references for each case alternative, instead allocate a few arrays and reuse these, unify and combine the reference counts after each alternative, optimize functions unify_counts and combine_counts, don't sort the case alternatives twice git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2118 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-07-12fix fusion of functions thats only permute the argumentsjohnvg1-157/+116
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2116 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-07-09bug fix: set aci_opt_unfolder to No for a case if extra argument are added ↵johnvg1-10/+24
to the case expression, because the case expression is not identical to the consumer anymore after adding arguments, don't fold in local function possiblyFoldOuterCase if aci_opt_unfolder is No git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2114 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-07-09add function make_consumer_application,johnvg1-57/+20
remove some unused local variables and functions, replace field tfi_geni by tfi_n_args_before_producer and tfi_n_producer_args git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2112 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
2012-07-09compute class_types using a comprehension instead of a fold with some unused ↵johnvg1-17/+4
values git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2110 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d