Commits on Apr 8, 2010
  1. Fixes the bug that impossible case trf removes too many cases. Turns …

    …out that the meta-tags in the AST where substituted, while the meta-tags in the HPT table remained the same. The meta-tags in the HPT table are now also updated.
    ajploeg committed Apr 8, 2010
  2. Introduces frames on the heap and meta-closures. Both work!

    Major Changes:
    Modifications to Grin and Silly AbsSyn to incoperate meta-closures.
    Introduces a new Grin transformation: IntroMeta which introduces meta-closures by converting F-tags this is done just after the NumberIdents Grin trf.
    Grin trf InlineEA produces code for the new M (Meta) tags
    Grin trfs SplitFetch and LowerGrin (locally) replace variables which might be used by meta-closures so they are followed by a new transformation: SubstMeta which globally replaces variables use in meta-closures.
    Silly trf EmbedVars is heavily altered: 
    	- put frames on the heap instead of stack space
            - translates the new variable offsets used in meta-closures to actual offsets
    Apperantly the LowerGrin transformation in combination with meta-closures messes up the HPT table, because a subsequent ImpossibleCase transformation will remove to 
    many cases causing the program to crash. For this reason the last ImpossibleCase trf is currently disabled. Fixing this is the next thing to do....
    The program crashes as soon as the Boehm garbage collector tries to collect. This is because frames are now on the heap and are not specified as a root-set. 
    This will not be fixed, instead I will make the whole thing work with the new GC.
    ajploeg committed Apr 8, 2010
Commits on Mar 30, 2010
Commits on Mar 29, 2010
Commits on Mar 26, 2010
  1. Fix of incorrect lexical interpretation of operator symbol <.> as a q…

    …ualified > from module <. Scanning was ok, but scanned qualification structure was not propagated and later incorrectly re-interpreted. It is now directly propagated.
    atzedijkstra committed Mar 26, 2010
Commits on Mar 25, 2010
  1. - fixed incorrect parsing of quantifiers in front of data constructor

    - added (makefile) support for .hsc files inside libraries. Ghc's hsc2hs is used to translate these files.
    WARNING: rerun ./configure
    atzedijkstra committed Mar 25, 2010
Commits on Mar 24, 2010
  1. fix for library .a archive build failure when only some modules need …

    …recompile and update in the library. This was caused by module names in the archive not being unique, so an update would replace a wrong module. Fixed by making the module names in the archive unique by using their full hierarchical names in flattened form (i.e. A.B.C -> A_B_C.o).
    atzedijkstra committed Mar 24, 2010
Commits on Mar 23, 2010
  1. - fixed 2 bugs introduced when experimenting with order of Core trans…

    - made gcc invocation with -O2 dependent on uhc -O2 flag
    - library is now build by default with -O2
    atzedijkstra committed Mar 23, 2010
Commits on Mar 22, 2010
  1. - cleaning up unnecessary makefile+build defs after change of interna…

    …l package structure
    - jazy backend works, fixed jar building and bug introduced by changing name (HsName) structure
    WARNING: rerun ./configure
    atzedijkstra committed Mar 22, 2010
Commits on Mar 21, 2010
  1. - Use of tar in build system now dependent on ./configure check.

    - Fix of use of install for MacOSX (and other BSD install variants).
    WARNING: rerun ./configure
    atzedijkstra committed Mar 21, 2010
  2. Restructured the package directory hierarchy.

    Warning: guaranteed not to work with the Java backend.
    Warning: rerun ./configure.
    kosmikus committed Mar 21, 2010
Commits on Mar 19, 2010
  1. Removed install location from "setup install" commands, to restore

    compatibility with the latest darcs-version of Cabal.
    kosmikus committed Mar 19, 2010
Commits on Mar 10, 2010
  1. New option --gen-locreg=1 generates local variables in global registe…

    …rs, which are only saved on the stack when needed over al Call.
    Fixed an issue in LLVM generation: llvm insists on having "return void" at the end of a void function.
    Changed -O2 into -O1 when calling gcc from within uhc, because gcc -O2 cannot handle very large functions (which occurs when we put all code in the main function).
    JeroenFokker committed Mar 10, 2010
Commits on Mar 8, 2010
  1. - Removal of ForceEval functionality (used long time ago to do deep e…

    …valuation, for finding memory leak). Currently it is enough to declare datastructures strict and use an occasional `seq`.
    - Restructure of HsName to better accomodate derived names and to better be able to determine how/why an identifier was introduced in Core/Grin code. An internal HsName API is introduced to 'uniqify' names. For the major part of the compiler this API is now used, except for HPT related renamings.
    - As a consequence of this uniqification scheme the pretty printing and parsing of such names are no longer eachothers inverse. Reading/writing of GRIN intermediate files therefore is done binary, except for the ones produced for debugging. The same holds for Core files, but there is not yet an implementation of Binary for Core.
    - A first rudimentary type structure for Grin, to be able to deal with the Node/Pointer invariant. Only AST, no functionality.
      still untested:
      - jazy backend
    WARNING: make clean
    atzedijkstra committed Mar 8, 2010
Commits on Mar 5, 2010
  1. - added pragmas, for now only for LANGUAGE pragmas, and for that only…

    … NoImplicitPrelude, others are ignored and treated as comment.
    WARNING: requires uulib 0.9.12
    atzedijkstra committed Mar 5, 2010
  2. Finished refactoring of Silly processing:

    * Documentation on stack layout
    * Simplified syntax
      - merged Jump statement into Call statement
      - merged Yield statement into Return statement
      - no more need for tailJumps filed in Function
      - no more need for BasePointer register
    * New options
      - --gen-own is now a Bool: True=use own stack, False=use C stack
      - --gen-rvs: True=return values via stack, False=return values in dedicated array
      - --gen-link: True=generate a dynamic link on stack, False=omit static link
    JeroenFokker committed Mar 5, 2010
  3. No commit message

    JeroenFokker committed Mar 5, 2010
Commits on Mar 3, 2010
  1. - Changed location of C level libraries for packages, they now reside…

    … in their package directory. This is relevant for the 'bc' and 'jazy' backend. The option --pkg-build-libdir used when building libraries has been removed, the value specified by --odir is now used instead.
    - Removed dumping of top of stack for variant 99, did make regression testing for variant 99 unhandy because TOS value differs for different runs.
    - Work (unfinished) on propagating implementation info between modules. This was already partly done, but now more transformations and translations contribute to it. In particular, for the bytecode backend, each call now refers correctly to the C level function info datastructure of the (possibly in a different module) called function. This used to be just a string instead, but now more info is required, in particular whether the function accepts an explicit stacktrace. The RTS must be able to find this info when throwing an exception.
    atzedijkstra committed Mar 3, 2010
Commits on Mar 1, 2010
  1. More refactoring of the Silly transformations.

    The Silly language is changed: the rather obscure "Smart" statement is removed in favor of a more intuitive "Yield" statement. This makes that all stack allocation decisions are isolated in a single file now (EmbedVars), where we can now experiment with other allocation mechanisms.
    JeroenFokker committed Mar 1, 2010
  2. Fix in predicate proving: unproven predicates at a certain point of s…

    …cope are moved to an outer scope to be proven there. However, their scope was not updated accordingly which led their to be later inserted dictionarly related code to become lost. This only did occur in a combination of 2 different nested scopes, each with their own set of unproven predicates.
    atzedijkstra committed Mar 1, 2010
Commits on Feb 26, 2010
  1. Repaired "optOwn=0" option: this uses the C mechanisms for locals, pa…

    …rameters and functions calls, whereas the default optOwn=3 option operates on a simulated stack.
    Changed prelude definitions of iterate' and foldl', as the definition introduced in rev.1628 breaks the Grin invariant.
    JeroenFokker committed Feb 26, 2010
Commits on Feb 25, 2010
  1. Rebuild of libraries normally is triggered when the compiler changes.…

    … When such a rebuild is not necessary the triggering can be prevented with option --no-hi-check.
    atzedijkstra committed Feb 25, 2010
Commits on Feb 24, 2010
  1. left debug building on

    atzedijkstra committed Feb 24, 2010
  2. - Rewrite of set of Core transformations to a functional style, not i…

    …nvolving global compilerdriver state. This is both a cleanup and a step towards making more parts of the compilerdriver not run in the IO monad.
    - Work on improving stacktraces because of lack of proper runtime debugging tools to find a stack/heap overflow bug triggered by imag/paraffins from the nofib testsuite. Most code is in its place, but unfinished. Similar to explicit stack traces as available in GHC. Optionally turned on by --target-variant=debug.
    - Option -O0 now generates working code; some required transformations were omitted.
    atzedijkstra committed Feb 24, 2010
Commits on Feb 22, 2010
Commits on Feb 19, 2010
  1. fixed issue where import failed of .hs file when also a suffixless fi…

    …le with the same prefix existed
    atzedijkstra committed Feb 19, 2010
Commits on Feb 18, 2010
  1. moved Monoid.hs out of frozen ghc library set to remove a unicode cha…

    …r about which ghc's hGetContents did complain for ghv 6.12 & MacOSX 10.6
    atzedijkstra committed Feb 18, 2010
Commits on Feb 17, 2010