Starting with tag: [TAG 1.0.2 nordland@csee.ltu.se**20081209064131] [Web tweak again. nordland@csee.ltu.se**20081209103907] [Web updates nordland@csee.ltu.se**20081212125057] [Ugly hacks for building the RPM on Fedora. pj@csee.ltu.se**20081216161446] [fixed escape sequence for chars in C sydow@chalmers.se**20081221091413] [Do not inline state variables in termred. pj@csee.ltu.se**20081229134212] [Document how to use the ghci debugger on timberc. pj@csee.ltu.se**20081223162542] [Added function that refreshes the free unification variables of a Core type (scheme) nordland@csee.ltu.se**20090107192330] [Removed attempt to use local build of timberc and libTimber.a when running tests and examples (./lib is not easily kept up-to-date with current build system). Better use ./Setup.lhs configure --user for local builds instead. nordland@csee.ltu.se**20090108122609] [Fixed bug in Type2: polymorphic quantifiers not already present in the input to Type2 were not properly encoded in the generated terms. nordland@csee.ltu.se**20090108123002] [Added 32-bit Linux (Fedora) link to the distribution web page. nordland@csee.ltu.se**20090108123258] [Fixed incorrect entering of polymorphic closures in Core2Kindle nordland@csee.ltu.se**20090112095947] [Removed incorrect resetting of the 'ticked' constraint attribute which caused incomplete removal of internally generated coercion constraints in Reduce.resolve. nordland@csee.ltu.se**20090112100126] [Updated handling of ASCII escape sequences in generated C string and char literals. nordland@csee.ltu.se**20090112121910] [One more fix to the code for printing escape sequences in C. nordland@csee.ltu.se**20090112141032] [Fixed erroneous substitution pruning in Type.tiExpT' nordland@csee.ltu.se**20090112144338] [Added missing indirect dependencies on free type variables to the lambda-lifter. nordland@csee.ltu.se**20090112155500] [Fixed bug in replicate sydow@chalmers.se**20090114215322] [Added missing binding for 'return' to the Applicative Maybe instance. ***However, we have a serious underlying error detection problem here: as this example shows, an absent field binding in an instance making use of struct stuffing will not be trapped, but quite correctly become translated into a self-referencing degenerate recursive binding! This surely not what we want, so the question how and where we should add an extra check. Not yet solved... nordland@csee.ltu.se**20090113160217] [Reinstated the script ./timberc for running the latest build, but now relying on a previous proper install to provide a datadir. nordland@csee.ltu.se**20090115135305] [Implemented the static Delay rule in Termred, but then immediately restricted it to subtype coercions only. To be evaluated... nordland@csee.ltu.se**20090115150651] [Fixed bug in Type2's ability to truly generalize types, and not merely pass on the type schemes inferred by Type (1). nordland@csee.ltu.se**20090116103356] [Tweaked the monomorphism restriction so that non-function recursion is always monomorphic nordland@csee.ltu.se**20090117010411] [Fixed unexplicable slip that avoided using the special code for reducing case alternatives (no eta-reduction allowed). nordland@csee.ltu.se**20090117010809] [Added test files related to recent bug fix history. nordland@csee.ltu.se**20090117011108] [Fixed mistake in Type2's generalization code... nordland@csee.ltu.se**20090117201513] [Corrected the implementation of alpha-conversion in the presence of free unification variables. Now alpha-conversion replaces each unification variable with a fresh one (as it used to do, and as it should do now that we've switched to System F as the back-end type system). So now the parsing combinator tests work again! nordland@csee.ltu.se**20090120103255] [Separated the Monad and Applicative type classes to better align with Haskell wisdom, and updated the parsing combinator files accordingly. nordland@csee.ltu.se**20090120103915] [Removed the prefixing of "_" to the names of type variables bound in some outer scope. No need for such special treatment anymore since we only create scoped variables in Type2 and there we add (encoded) type variable binders as well. nordland@csee.ltu.se**20090120104213] [Added primitive closure names for arities 1-3. nordland@csee.ltu.se**20090120152425] [Fixed a bug in Prepare4C causing loss of dependencies between generated bindings. Embarrassingly enough, exactly the same bug was fixed in Core2Kindle a long time ago... nordland@csee.ltu.se**20090121123234] [Fixed the Kindle translation of Class, Cmd and Request types so that it works even if the saturated type expression is obtained only after a type substitution. nordland@csee.ltu.se**20090121123543] [Made the original form of a symbolic name (re)appear in the generated C code as a comment appended to the generated name. nordland@csee.ltu.se**20090121123935] [Reworked the arity-adapting pieces of Core2Kindle to work correctly even in the higher-order case. nordland@csee.ltu.se**20090123084045] [Fixed bug in the Kindle typing of Fail and Raise (two different cases depending on whether there's a Cmd context or not). nordland@csee.ltu.se**20090123095706] [Corrected mistake in normalization of Kindle types after substitution. nordland@csee.ltu.se**20090123100031] [Moved Monad instances to a more suitable position in the Prelude. nordland@csee.ltu.se**20090123100140] [Added an implementation of "The Santa Problem" to the examples collection. nordland@csee.ltu.se**20090123100259] [Fixed bug with constructor operators sydow@chalmers.se**20090123142219] [Adapted Data.Objects.Dictionary to use monadClass sydow@chalmers.se**20090123150555] [Changed how original operator names are added as comments to C code sydow@chalmers.se**20090123152155] [Fixed Syntax.type2cons sydow@chalmers.se**20090123153822] [Allowed class state types as abstract in interface sydow@chalmers.se**20090127151144] [Fixed typo in include/timber.c sydow@chalmers.se**20090127151240] [Fixed bug causing incorrect gcinfo being generated for extensions to the Msg type. nordland@csee.ltu.se**20090129185136] [Fixed bug in the placement of interrupt airholes in scanTimerQ. nordland@csee.ltu.se**20090129194149] [Removed obsolete parameter to kindle2c sydow@chalmers.se**20090130091546] [Added a better Santa problem example, now with the required synchronization at the end of each phase of common work. nordland@csee.ltu.se**20090205130958] [Extended the possibilities to use record stuffing patterns in structs that themselves are defined using stuffing syntax. nordland@csee.ltu.se**20090205131638] [Changed some defs in Prelude to use struct stuffing in a more direct way. nordland@csee.ltu.se**20090205131938] [Replaced the use of "error" by "throw" applied to a custom made Exception type. nordland@csee.ltu.se**20090205132135] [Bug fixes in record stuffing sydow@chalmers.se**20090205205404] [Wiped out the 'while' syntax. nordland@csee.ltu.se**20090211100403] [Fixed accidental reordering of mutually recursive binidings in groupBindsS. nordland@csee.ltu.se**20090318095411] [Changed name of primitive type 'PID' to 'OID' in accordance with documentation. nordland@csee.ltu.se**20090318105350] [Changed implementation of the delay rule in Termred to properly handle nested coercions. nordland@csee.ltu.se**20090318144247] [Prevent termred from dividing by zero. pj@csee.ltu.se**20090218201246] [Generalization of the zerodiv patch. nordland@csee.ltu.se**20090319062940] [Fixed race condition bug in the code for allocating new heap segments. nordland@csee.ltu.se**20090323142139] [Added missing 0-arity case when Core2Kindle finds a polymorphic identifier. nordland@csee.ltu.se**20090323155207] [Changed the monomorphism restriction so that single variable right-hand sides are allowed to be polymorphic. nordland@csee.ltu.se**20090323212924] [Printing adjustment in Syntax nordland@csee.ltu.se**20090324060430] [Tweaked the monomorphism restriction and the top-levell checking for unresolved overloading. nordland@csee.ltu.se**20090324064653] [Fixed bug in the POSIX rts leading to active threads not being properly registered in the runQ. nordland@csee.ltu.se**20090324095303] [Fixed handling of the empty switch case in Prepare4C nordland@csee.ltu.se**20090325193114] [Added "linkLibs" as a separate configuration parameter in each rts. nordland@csee.ltu.se**20090413095935] [Fixed bug in the monomorphism restriction definition. nordland@csee.ltu.se**20090414081157] [Cleaned up the translated "class" type used in main.c (extra arg is Int, not POLY). nordland@csee.ltu.se**20090414081322] [Dynamically select NCORES instead of using a hard coded value. pj@csee.ltu.se**20090412212915] [Tweaked dynamic multicore sensitivity a bit. nordland@csee.ltu.se**20090414084910] [Fixed buggy tutorial example nordland@csee.ltu.se**20090414104418] [Another tutorial example bug fix nordland@csee.ltu.se**20090414104812] [Removed superfluous file env.h nordland@csee.ltu.se**20090414105152] [Completed previous change... nordland@csee.ltu.se**20090414105603] [Cleaned up the rtsPOSIX Makefile nordland@csee.ltu.se**20090414120824] [... And updated the cabal file. nordland@csee.ltu.se**20090414121015] [rts pedantry nordland@csee.ltu.se**20090414131907] [Initial rts for ARM7 (lpc2478, Embedded Artists) nordland@csee.ltu.se**20090415222620] [Added simple (and incomplete!) test modules for the ARM target. nordland@csee.ltu.se**20090415223144] [Made the rtsARM debug routine append an \r whenever it outputs a \n. nordland@csee.ltu.se**20090416080646] [Added the missing ARM module to lib. nordland@csee.ltu.se**20090416080854] [Updated the ARM rts to use Action as the type of installable interrupt handler. nordland@csee.ltu.se**20090416080931] [Deleted 'while' from keywords listed in web documentation. nordland@csee.ltu.se**20090416081409] [Added function fromJust to Prelude. nordland@csee.ltu.se**20090416082116] [Added necessary initialization and ack of external interrupts to the ARM env glue code. nordland@csee.ltu.se**20090416092350] [Slight update to the ARM test files nordland@csee.ltu.se**20090416093038] [Corrected port address checks in ARM env. nordland@csee.ltu.se**20090416093917] [Cabal update nordland@csee.ltu.se**20090416111635] [Swapped order of Maybe constructors to match the POSIX rts. nordland@csee.ltu.se**20090416135513] [Changed ARM interrupts to general Cmd's (with empty state) in order to allow proper clearing of interrupt flags before scheduling possible actions outside the protected mode. nordland@csee.ltu.se**20090416201611] [Cleaned up test files and added important command that acknowledges unprovoced external interrupt on vecor 17. nordland@csee.ltu.se**20090416220647] [Made type syntax checks in Desugar2 generate proper error messages instead of internal errors (and added an explicit error message for illegal use of type wildcards). nordland@csee.ltu.se**20090417130713] [Fixed yet another bug in the splitting of switches into nullary/non-nullary cases in Prepare4c. nordland@csee.ltu.se**20090417140348] [Corrected allocation and time arithmetic errors in rtsARM/timer.c, and brought this file and rtsPOSIX/timer.c closer together syntactically. nordland@csee.ltu.se**20090420072551] [Added missing piece of the abort implementation to rtsARM. nordland@csee.ltu.se**20090420074253] [Removed import BitOps from ARM in order to avoid superficial build order conflicts. nordland@csee.ltu.se**20090421140953] [Moved the start-gc-test to a more proper place *before* a worker might go to sleep. A moved the gc thread into rts.c to make gc.c less posix-dependent. nordland@csee.ltu.se**20090423141645] [Reverted to a static version of the POSIX garbage collector for the ARM rts. nordland@csee.ltu.se**20090424081510] [Added missing heap overflow tests. nordland@csee.ltu.se**20090424182238] [Updatet the ARM cyclic.c to the POSIX version. Should really factor these platform independent parts out... nordland@csee.ltu.se**20090424182628] [Reorganized main.c and made the startup code set the current baseline just prior to invoking the startup method in all current targets. nordland@csee.ltu.se**20090427082708] [Cleaned up the use of "current" as both a global and a local variable, and fixed a corresponding bug in the ARM rts. nordland@csee.ltu.se**20090427084642] [Switched to using octal escape sequences in the generated C code, as well as some standard escapes, for the purpose of avoiding hexadecimal sequences of ambiguous length. nordland@csee.ltu.se**20090427103747] [Modified the rts queue handling to insert messages *after* other messages with equal deadline/baseline as the new one. Should provide a less extreme behavior in some cases. nordland@csee.ltu.se**20090429141445] [Added Pawel's tail recursion elimination to Kindlered. nordland@csee.ltu.se**20090430081028] [Removed recently added tail recursion checks that proved to be unneccessary. nordland@csee.ltu.se**20090430081247] [Minor cleanup. nordland@csee.ltu.se**20090430141323] [Added Simon's netmemread/write to the ARM Env. nordland@csee.ltu.se**20090507093054] [Web update for 1.0.3 nordland@csee.ltu.se**20090519133832] [Version -> 1.0.3 nordland@csee.ltu.se**20090519135600] [TAG 1.0.3 nordland@csee.ltu.se**20090519135906] [Updated Mac packaging files nordland@csee.ltu.se**20090519160015] [Web tweak ("coming soon"...) nordland@csee.ltu.se**20090519161708] [Changed pointer casts to use primitive type WORD instead of Int ifor the purpose of allowing pointers and Ints to be of different size. nordland@csee.ltu.se**20090526160557] [Updated version number in rtsARM/Makefile nordland@csee.ltu.se**20090526191352] [Updated web to indicate Fedora availability. nordland@csee.ltu.se**20090529070200] [Tentatively switched to new command syntax: nordland@csee.ltu.se**20090529115408 exp ::= ... | 'action' cmd | 'request' cmd | 'do' cmd | 'class' cmd_r cmd ::= cmd_r | cmd_e cmd_r ::= {c_e}* c_r cmd_e ::= {c_e}* c_r ::= 'result' exp | 'case' exp 'of' {pat '->' cmd_r}+ | 'if' exp 'then' cmd_r {'elsif' cmd_r}* 'else' cmd_r c_e ::= pat = exp | pat = 'new' exp | pat := exp | pat <- exp | exp | 'case' exp 'of' {pat -> cmd_e}+ | 'if' exp 'then' cmd_e {'elsif' cmd_e}* ['else' cmd_e] Class bodies are further restricted to disallow branching and left arrows. The implicit result of a cmd_e is (). Note especially that the form exp is missing from c_r in order to avoid syntactic ambiguity. A tail call that returns a result must now be explicitly written x <- exp result x ] [Updated test files to take advantage of new command syntax. nordland@csee.ltu.se**20090529121541] [Version number fix for rtsARM. nordland@csee.ltu.se**20090531103601] [More version number updates for rtsARM. nordland@csee.ltu.se**20090604121757] [Add a supercompiler and necessary plumbing. This does not yet work on any real programs. The supercompiler is OFF by default. pj@csee.ltu.se**20090604200305] [Lexer internals simplification nordland@csee.ltu.se**20090609161404] [Changed the parser to make statement lists right-recursive -- solves an annoying problem with empty statements embedded in other statement lists. (And statement lists can no longer begin with semicolon!) nordland@csee.ltu.se**20090609210122] [Updated tests nordland@csee.ltu.se**20090609210455] [Fixed bug in ds1T sydow@chalmers.se**20090604131409] [Changed datatype Name to use explicit field "public" in Annot sydow@chalmers.se**20090610075804] [Changed format of interface files sydow@chalmers.se**20090610101725] [Changed warning for multiple errors to explanation on error sydow@chalmers.se**20090610104113] [Minor improvement of usage of interface files sydow@chalmers.se**20090610121638] [Aligned supercompiler with Björn's recent changes. nordland@csee.ltu.se**20090611190919] [Changed to new root type and admitting external decls sydow@chalmers.se**20090618130520] [Adapted Scp.hs to previous change sydow@chalmers.se**20090618132926] [Added POSIX.external.* sydow@chalmers.se**20090618173531] [Added external toplevel names to HTML API sydow@chalmers.se**20090618194523] [Added Simon's bug fixes in rtsPOSIX sydow@chalmers.se**20090624062934] [Removed the programmer given "root" from the set of GC roots.. nordland@csee.ltu.se**20090810144818] [Fixed bug in abcSupply. nordland@csee.ltu.se**20090820144752] [Reimplemented the handling of existentially quantified struct parameters in Kindle, and made the Kindle closure type fully dynamic (no need for predefined closure structs of varying arity, although types CLOS1..CLOS3 still exist for C programming convenience). nordland@csee.ltu.se**20090825075616] [Cleaned up some debugging traces nordland@csee.ltu.se**20090826144544] [Added support for tuples of arbitrary size nordland@csee.ltu.se**20090827101020] [Moved all knowledge of the __GC__ symbols to the Kindle2Core pass. nordland@csee.ltu.se**20090827102246] [Got rid of UNITTERM/UNITTYPE internally in favor of nullary tuples. nordland@csee.ltu.se**20090827131513] [De-monadized a respectable fraction of Core2Kindle (made possible by the new representation of Kindle closures that doesn't rely on the ability to generate new type names on the fly). nordland@csee.ltu.se**20090827141942] [Moved and renamed the the definition of internal unification type variables, in preparation for their planned elimination. nordland@csee.ltu.se**20090827143426] [More renaming to single out the Core tvars. nordland@csee.ltu.se**20090827144932] [Modified forall-support to profit from tail recursion optimization sydow@chalmers.se**20090923123934] [Changed rtsPOSIX, decoupling rts from POSIX.extern.c sydow@chalmers.se**20090925061830] [Fixed bug in examples/Makefile sydow@chalmers.se**20090925072926] [Moved rtsPOSIX/POSIX.extern.* to lib sydow@chalmers.se**20090925091311] [Added instance Eq Bool. hallgren@altocumulus.org**20091005141834 Ignore-this: 112ccf32d219dbd1a0214312ce570cb ] [Changed misleading comment in MasterMind.t sydow@chalmers.se**20090925105035] [Implemented generalized forall syntax sydow@chalmers.se**20091006152044] [Introducing a separate type Pat for patterns in the front-end syntax. hallgren@altocumulus.org**20091007195622 Ignore-this: 747f2b1fe259abe0b32872224bebb473 ] [Fixed a typo hallgren@altocumulus.org**20091007200004 Ignore-this: 510b220a9a43ab223e5fbc79fb4e46fa ] [Remove PNeg hallgren@altocumulus.org**20091008081401 Ignore-this: 2d346ce924cd571412aa044ca98c43b2 Removal of constructor PNeg from type Pat and some related cleanup. ] [Added functions conP and eAp hallgren@altocumulus.org**20091009094417 Ignore-this: 69d5b5990a2c7943a7467bdf99dfa147 ] [Abstract away from type of RHSs in the pattern match compiler hallgren@altocumulus.org**20091009094643 Ignore-this: ddfc9a6efbbe21eaea05e22d6ee3656a ] [Require consistent number of constructor arguments in the pattern match compiler hallgren@altocumulus.org**20091009122346 Ignore-this: 363784e0be7c711a9697bc39a7b24215 1. To avoid the need to construct lambda abstractions in the RHS syntax, keep constructor arguments in the patterns, i.e., don't transform "C x y z -> e" into "C -> \ x y z -> e". (This transformation is currently done in Syntax2Core instead.) 2. To avoid the need to construct applications in the RHS syntax (eta expansion), require a consistent number of constructors arguments. ] [Keep case statements through to core (work in progress) hallgren@altocumulus.org**20091012090857 Ignore-this: e9eb4d9ab08b2a0e062911e06588f8d3 * Introduces newtype Stmts, allowing a more uniform treatment of types like Rhs and Alt that can contain both expressions and statements. * Eliminates a bug in instance Ids (Alt [Stmt]). This bug apparently didn't have any ill effects, but "idents (do a <- ...; ... a ...)" would include "a" in the list of free variables. * Introduces Cmd CCase in Core, but I suspect this is not the final version. * Preparations to preserve SCase through the front-end, and convert it to CCase in Core, instead of converting SCase to ECase at an early stage. ] [Abstract away from PMC primitives hallgren@altocumulus.org**20091013114136 Ignore-this: 431943e3cebbc7b721a563d8eff4c4b0 ] [Made the translation of struct patterns considerably slimmer. nordland@csee.ltu.se**20091013134509] [Conflict resolve nordland@csee.ltu.se**20091013135216] [Make room for constructor arguments in patterns in Core hallgren@altocumulus.org**20091014103046 Ignore-this: 27f218ee8c715cc9ec9bcde029ce50c5 ] [Fixed missing desugaring of subterms in forall-expressions. nordland@csee.ltu.se**20091014125841] [Common abstract syntax for pattern matching in Syntax.Exp, Syntax.Stmt, Core.Exp and Core.Cmd (work in progress) hallgren@altocumulus.org**20091014130536 Ignore-this: 6f4bb750cd6b6faaaf5c6e5e37e841ce ] [[Documentation] Preliminary classification of front-end passes hallgren@altocumulus.org**20091015103903 Ignore-this: 61bf75066c034365179052e36d902ca4 ] [Start using the new abstract syntax for pattern matching in Syntax.Exp hallgren@altocumulus.org**20091015105346 Ignore-this: 5d36ee46b86f0c0760c3e914e693b781 It is currently desugared in Syntax2Core. ] [Front-end support for the new abstract syntax for pattern matching in statements hallgren@altocumulus.org**20091015141114 Ignore-this: 2ea93b0e51d78a416754cc5457a654f7 ] [Add missing case for EForall in instance Rename Exp hallgren@altocumulus.org**20091015151138 Ignore-this: 562d5cf10288b0b0ee18cd766f5395e9 ] [Better internal error message hallgren@altocumulus.org**20091015151909 Ignore-this: 8ed45b6d8b2080351e20a6cf1b925d5e ] [Plugged a loophole in the desugaring of 'forall'. nordland@csee.ltu.se**20091015192642] [Take compiler flags from M.extern..cfg hallgren@altocumulus.org**20091016154201 Ignore-this: 723580046b003e1f3450ef477876b1b3 This is a quick fix to be able to compile modules and link programs that refer to external libraries, without having to modify the compiler configuration and reinstalling the compiler. The configuration file has the same syntax as the rts Cmd () () to World -> Class Action advertised some time ago. Note that it forces a minor change to ALL Timber programs. Typically, a POSIX program with root procedure root :: RootType root w = do env = new posix w would minimally change to root w = class env = new posix w result action but variations are possible. Note also that the type signature on root will not be necessary any more. All the programs in the examples and tests directory have been changed to the new root type; the documentation in directory web is not yet updated. ] [Added FilePath info for imported modules to chaseImps sydow@chalmers.se**20100826174629] [Full path names also for files in current directory in chaseImps sydow@chalmers.se**20100827055947] [MEGA patch, primarily adding the target "Browser" with Javascript code-generation and DOM support, but also slipping in limited depth subtyping (for Rquest and Class), some Termred improvements, and a lot of minor representation changes along the way. nordland@csee.ltu.se**20100914205614 Ignore-this: a9795b8d2c02a64264a539c0127deb0c ] [Conccrete syntax allowing explicit witnesses sydow@chalmers.se**20100913123819] [Added pre-expressions to Syntax. nordland@csee.ltu.se**20100915082945 Ignore-this: f221631192e4a26c929f8f3e54d8d29c ] [Changed the type of element children in the DOM interface from Class x to x. nordland@csee.ltu.se**20100917075649 Ignore-this: ae0c42e8e204151c507d033c24dfdbae ] [Conflict resolution sydow@chalmers.se**20100917112149] [Allowing pre-expressions (<-e and new e) in commands sydow@chalmers.se**20100917124814] [Fixed bug in revious (preexp) patch sydow@chalmers.se**20100917131227] [Fixed bug inserting bad subtype coercions in case expressions. nordland@csee.ltu.se**20100917180123 Ignore-this: 68690a8069ef254e68f986d812a81b2e ] [Removed implied dependency on DOM Element structs always being produced by the external content classes. nordland@csee.ltu.se**20100917181949 Ignore-this: 744adf1ca583d1291f89aa46c1148e64 ] [Added required calls to the knot-tying operation in the generated javascript code for recursive value bindings. nordland@csee.ltu.se**20100918071956 Ignore-this: 2c9f360159bbb78bb398dbc366cdc63e ] [Removed old hack that made desugared pattern bindings appear as if they were recursive (which made patterns binding values of primitive type stumble upon the fact that value recursion is not supported for these types). nordland@csee.ltu.se**20100921090203 Ignore-this: 9fd1c53425c87a1272e47b1eb178410 ] [Improved code generation for simple tuple projections. nordland@csee.ltu.se**20100921105044 Ignore-this: 1bda8340d0b6b995b5169e06b23e457e ] [Finally added a proper closure type to Kindle, triggered by bugs lurking everywhere in the previous encoding of closures. Also reworked the arity adaption parts of Core2Kindle, now making sure that eta-conversion does not move the points where side-effects (like object instantiations) take place. nordland@csee.ltu.se**20100926204106 Ignore-this: d35225a10ee611ef1d16b737c9552dbf ] [Ensured that the lifting of struct allocations in Prepare4C does not change the dependency order of variables. nordland@csee.ltu.se**20100927060607 Ignore-this: b25b7554eca367d3afa2b8b5d1282dc6 ] [Switched on the static delaying of selections from forward structs, irrespective of whether the selector is a coercion or not. nordland@csee.ltu.se**20100927070248 Ignore-this: da78f8401c5044981d875318de243016 ] [Also fixed Core2Kindle so that lifted bindings do not change the dependency order between variables. nordland@csee.ltu.se**20100927094642 Ignore-this: eb14a6f27d8363c8f6fbe3d89833aaaa ] [Fixed accidental mess-up of asynchronous messages in the Javascript output. nordland@csee.ltu.se**20100927133003 Ignore-this: 1bef9442ea868c7bf38d1d0a54f2f96c ] [Added primitive console output to the DOM interface. nordland@csee.ltu.se**20100927133228 Ignore-this: 91c0af017307266017b90aa5c65f1068 ] [Fixed pack-patching of cyclic function closures in the Javascript output. nordland@csee.ltu.se**20100927133314 Ignore-this: 4744895f2451a8ee311c32d195aa96ff ] [De-complicatizified the internal representation of struct terms. nordland@csee.ltu.se**20101001110847 Ignore-this: 89804e2bdb8ed4ab653b760d18ae2db0 ] [Moved desugaring of struct bindings from Rename to Desugar2 nordland@csee.ltu.se**20101001195116 Ignore-this: a2ff15f8cfbdaaad3b2e0af2e033865f ] [Switched to new abstract syntax for instance declarations. nordland@csee.ltu.se**20101001222205 Ignore-this: 350bc2270013af28368e6603d0af8a93 ] [Corrected previous change to the transformation of instance declarations, and added type specializations to instance members for the purpose of avoiding non-termination in those cases where instances are implicitely recursive. nordland@csee.ltu.se**20101003001018 Ignore-this: 66aefa66e7f622af379311f494a651e7 ] [Fixed bug in the generation and further reduction of Kindle code, that sometimes caused effects like non-termination or object creation to be wrapped inside closures and thus inadvertently delayed or repeated. nordland@csee.ltu.se**20101003210707 Ignore-this: 96410cd918f6a80a0a74ee795395a986 ] [Fixed an oversight in Prepare4C to take existentially quantified type variables (i.e., This #i types) into account when identifying potential pointer fields for the GCINFO table. nordland@csee.ltu.se**20101004135240 Ignore-this: 4467f4c36f71dcedc6e49a0c74abc418 ] [Fixed subtle bug in Core.subst that caused accidental name capture in rare cases. nordland@csee.ltu.se**20101004135817 Ignore-this: f4b1b31955193821529d279a6f1ddde6 ] [Changed Core2Kindle acknowledging that even polymorphic closure values may need arity adapting (on term level only, big lambdas must still match up to renaming). nordland@csee.ltu.se**20101005153700 Ignore-this: a7c87929cd6e5389918baee8494122eb ] [Fixed bug in Type2 generalization code. nordland@csee.ltu.se**20101006074801 Ignore-this: c16f8798f679ea6c197333a538e5af8c ] [Generalized tail recursion optimization to work on closures as well as functions, and also made the tail-recursion modulo CONS optimization applicable to more code patterns by making it possible to end the iteration by first appending a non-empty list to the mutable accumulator. nordland@csee.ltu.se**20101006115306 Ignore-this: a8be865d9efed4b39b0eff59c6b01456 ] [Fixed internal error bug caused by Termred failing to recognize that pattern-matching constructors of arity > 0 currently involve right-hand sides that must not be eta-reduced. nordland@csee.ltu.se**20101006134544 Ignore-this: e5487bf090ee45ae95ab039e898593b2 ] [Fixed bug in internal type-checking (Type2) of existentially quantified constructor patterns with qualifiers. nordland@csee.ltu.se**20101006174326 Ignore-this: f602f0c154110fd95067f0b4313d3034 ] [Added missing assignment of a GCINFO ptr to generic closure (CLOS) nodes. nordland@csee.ltu.se**20101006190050 Ignore-this: a0c4be893ae923d17d4f05905cceab0a ] [Fixed substitution on Syntax.Exp terms to work properly on the optional Ref variables of actions and requests. nordland@csee.ltu.se**20101006191843 Ignore-this: 490ea11f554b683c9344da880c286182 ] [Enabled the core of a previous fix, that mysteriously ended up being commented out in the recorded patch. .#€%€#€%???? nordland@csee.ltu.se**20101006202311 Ignore-this: 3392d64206dfbfa287d1a332fbd589b9 ] [Fixing an oversight in a previous bug-fix: type variables with a single subtype constraint are not free floating if they occur free in the environment. nordland@csee.ltu.se**20101006210719 Ignore-this: 521952494ed7be957686753fa1150e4d ] [Excluded lifting of let-bindings in arguments to the highly irregular primitive constants Fatbar, LazyAnd and LazyOr. (Note to self: these constants should really be replaced by dedicated Exp constructors.) nordland@csee.ltu.se**20101008124900 Ignore-this: e7e634f8b38c8c5f375bb2f5b2f3e986 ] [Made Termred inlining of non-simple rhs of strict variables dependent on whether expression duplication will also lead to work duplication. nordland@csee.ltu.se**20101008132238 Ignore-this: 55328910b07803d56b655ff09fc5fcd8 ] [Extended tail recursion elimination to handle procedures sydow@chalmers.se**20100920130724] [Improving tail recursion elimination for procedures sydow@chalmers.se**20101011111112] [fixed missing case in Prepare4C.isPtr sydow@chalmers.se**20101011111528] [Improved forall support functions in Prelude sydow@chalmers.se**20101011111629] [Changed test/Makefile to avoid reading Prelude.ti dozens of times sydow@chalmers.se**20101011111911] [Fixed bug in generation of gcarray for user defined types sydow@chalmers.se**20101011152001] [Enabled some further closure removals in Kindlered nordland@csee.ltu.se**20101011180029 Ignore-this: 8100813481ecc1eb29a140bfbb8ac551 ] [Tightened the accepted code size increase when inlining to just one extra node. nordland@csee.ltu.se**20101011190625 Ignore-this: 80c419b1da47bbf332d2ba75719cc21f ] [Conflict resolve (strange!!) nordland@csee.ltu.se**20101011190949 Ignore-this: 89de8f8e9a6c0f02eaf7639acfd8bdf5 ] [Fixed type mismatch in reading/writing interface files sydow@chalmers.se**20101013072523] [Added Syntax2 nordland@csee.ltu.se**20101013121004 Ignore-this: eb30307f45e1973019b3615d1270890c ] [modifications of Syntax2 sydow@chalmers.se**20101013130020] [further modifications of Syntax2 sydow@chalmers.se**20101013134352] [further Syntax2 changes sydow@chalmers.se**20101013135017] [one more Syntax2 change sydow@chalmers.se**20101013142756] [Syntax2 sydow@chalmers.se**20101013144633] [Syntax2 sydow@chalmers.se**20101013155441] [added Syntax <-> Syntax2 translations sydow@chalmers.se**20101015094603] [Fixed Kindlered bug causing som non-recursive closures being classified as tail-recursive modulo CONS. nordland@csee.ltu.se**20101018074414 Ignore-this: 7f72c464fe9b41ccb6407e035649c9b5 ] [Syntax2 tweaks nordland@csee.ltu.se**20101019070549 Ignore-this: fb4c7e7a3689c083e825c4ceb19fdc53 ] [Moved code for accepting 'elsif' and 'else' aligned under 'if' statements to the lexer (vitual SemiColons are no longer inserted if the immediate token is 'elsif' or 'else') and generalized the abstract syntax for SIf accordingly. nordland@csee.ltu.se**20101026193213 Ignore-this: 4b6ad35b8a82ddbc5b58955e89bd653d ] [Added 'send', 'deriving', '||' and '&&' as proper tokens. nordland@csee.ltu.se**20101026194231 Ignore-this: 7878a720f6b01e58bf0d43c33a5ac0d6 ] [Syntax2 updates. nordland@csee.ltu.se**20101026194732 Ignore-this: d479159bd85b7cd389468ba95ba8e385 ] [Added Syntax2 links to Main and timberc.cabal. nordland@csee.ltu.se**20101026195254 Ignore-this: d642c4189a09e7d8691ed95cfefed4b3 ] [PP cleanup. nordland@csee.ltu.se**20101026200011 Ignore-this: c11aee407ce95182fc7545c268a6a598 ] [Added Syntax2 parser (bypassed for now). nordland@csee.ltu.se**20101026203446 Ignore-this: e619df72844a18a2f96991eaa20f38dc ] [Added the proper Parser2.y file (and removed the generated .hs variant). nordland@csee.ltu.se**20101026203848 Ignore-this: 5c012688cb16814de5bf91d2fe2bd64f ] [Generalized syntax for infix constructors. nordland@csee.ltu.se**20101026204741 Ignore-this: 669f31eaef48ca27791b29fde70f53c ] [Grammar cleanup. nordland@csee.ltu.se**20101027151040 Ignore-this: 91580c374338c559f00c1c3cfcaca5f8 ] [Fixed context reduction bug (overly eager unification of higher-order type variables) and bug assigning the wrong module name to definitions extracted from instances in Desugar2 (+ some further Syntax2 adaptions). nordland@csee.ltu.se**20101111102507 Ignore-this: 61415641132c73e420bacf2e5fee99da ] [Restored the non-verbose printing of names. nordland@csee.ltu.se**20101111103512 Ignore-this: ed3b47b2b19d366896b395705f8248aa ] [Parser2 grammar improvements nordland@csee.ltu.se**20101111125938 Ignore-this: e8ffeffbd15ef6d216495991f41fce43 ] [Added more info to certain type-checking errors. nordland@csee.ltu.se**20101111130059 Ignore-this: dac6174d4a350647c46b75d38a9145ac ] [Added missing translation of 'forall .. new' in Syntax22Syntax. nordland@csee.ltu.se**20101111155447 Ignore-this: d6a74edb66ecd2fe6870e80889165d4d ] [Extended test for missing selectors to cover instance declarations as well, and made printing of the latter work even in the absence of an explicit instance name. nordland@csee.ltu.se**20101116095939 Ignore-this: 68e19d97692a7a3f252bbdf4d72ad37f ] [Removed redundant constructor tag from tuples in generated Javascript code. nordland@csee.ltu.se**20101116141257 Ignore-this: bca438a7b20f4a6b837b280f1f6d343f ] [Switched to the new Parser2 and updated libraries and tests to the new syntax. Which in short means: nordland@csee.ltu.se**20101201142858 Ignore-this: c810a813bdcc274754c003e7b204f7b4 - Structs terms can now be written using the same left-hand side patterns as in ordinary let-bindings. - Struct terms that use layout must start with the keyword 'struct' (possibly prepended by a type constructor name) - Struct terms that use explicit delimiters must use ';' as a separator instead of ',' - Derived instances are now written using the syntax "deriving instance C T" as in GHC Haskell. - Delayed actions calls must now use the syntax "after EXP send EXP", allowing only one baseline offset to be defined. - Deadline-constraints can now only be attached to action terms, not to method invocations (syntax: "before EXP action CMDS"). - The logical connectives || and && are now keywords and hardwired to precedence levels 0 and 1, respectively. - Plus some more things which are not fully implemented in later passes yet. ] [Fixed a string printing bug in the Javascript rts. nordland@csee.ltu.se**20101201144643 Ignore-this: 2ea10383410585f84a0e27b84c29020 ] [Made qualified names appear explicitly in the lexer and the new grammar, turned array indexing into built-in syntax rather than just an ordinary operator, and removed the quirky notion of "rigid" names. nordland@csee.ltu.se**20110119164507 Ignore-this: d5e9a1d89f0f83f2519e42b3eb11c8d ] [Conflict resolution sydow@chalmers.se**20101128190247] [Added Binary instance for Syntax2 sydow@chalmers.se**20101201155240] [Changed interface file format to include Syntax2 module (old .ti files now invalid); eliminated usse of Parser and Syntax from Main sydow@chalmers.se**20110120063912] [Synced recent changes by adding Binary support for PIndex, EIndex, EListUpdate and EStructUpdate constructors. Also included transparent (so far!) split of type Name into Name and NameRef. nordland@csee.ltu.se**20110124152708 Ignore-this: dda465dfe4fa5635a48203ac4798bfbe ]