Commits on Nov 23, 2010
Commits on Sep 10, 2009
  1. For posterity, tagged revision 1522, the version of the EHC that has …

    tomlokhorst committed Sep 10, 2009
    …a compiling CLR backend, originally released March 19th, 2009. This is a pre UHC 1.0.0 version of the code.
    This backend was developed by Jeroen Leeuwestein and Tom Lokhorst in early 2009 as part of the Advanced Compiler Construction course.
    To assemble and run CLR code, Mono or .NET needs to be installed. Specific details of the CLR backend can be found in chapter 8 of the technical documentation.
    Install prerequisites:
        $ cd extlibs/cil/
        $ tar xzf language-cil-0.1.0.tar.gz
        $ cd language-cil-0.1.0
        $ cabal install
    Compile EHC as follows:
        $ ./configure --enable-clr
        $ make 8/ehc
    Run test as follows:
       $ cd test/clr/1-add/
       $ ../../../install/8/bin/ehc -tclr Test.hs
       $ ilasm2
       $ mono Test.exe
       Int 42
Commits on Mar 19, 2009
  1. Forgotten files...

    tomlokhorst committed Mar 19, 2009
  2. Added CLR backend to generate .il files to be assembled and run on .N…

    tomlokhorst committed Mar 19, 2009
    …ET or Mono.
    Backend can be enabled by running: ./configure --enable-clr
    Backend can be used by running: install/8/bin/ehc -tclr Main.hs
    Read EHC technical manual for more information.
Commits on Mar 16, 2009
  1. - Libraries: IO preliminaries

    atzedijkstra committed Mar 16, 2009
    - Fix for polarity inference being too restrictive
    - Jazy backend works for major part of regression test examples
    - Some refactoring for info about types known by the compiler (builtin stuff)
    WARNING: modifications to the IO monad breaks the HPT analysis!!
Commits on Mar 12, 2009
  1. change in annotations in Core to allow distinguishing between binding…

    atzedijkstra committed Mar 12, 2009
    …s for lambda's and CAFS, thus avoiding double work further in the compile pipeline
Commits on Mar 11, 2009
  1. - Libraries + compiler support for Int8 .. Int64, Word, Word8 .. Word64.

    atzedijkstra committed Mar 11, 2009
    - Bytecode machine needed extra instructions because tagging and sign interpretation did not go well together.
      Did work well until now because only one interpretation was used, signed int.
      Now also unsigned (and perhaps later float (32 bits) in 64 bits word); unpacking needs to know about sign extending.
      Most of the code is very similar for all Int/Word variants, so the boilerplate code is generated via cpp macros.
    Todo   : test on 64bits platform
    Warning: rerun ./configure
Commits on Mar 9, 2009
  1. Silly: replaced Shortcut transformation by InlineExpr and ElimUnused,…

    JeroenFokker committed Mar 9, 2009
    … thus fixing an issue that arose in the Sieve example. Now also removes the declaration of dead variables.
    Grin.SingleCase transformation can now be done earlier, thanks to some modifications downstream.
    Grin.ApplyUnited is a new transformation that inlines an Apply of a known function (analogous to Grin.EvalStored, that inlines an Eval of a known thunk).
    Grin.SpecConst is a new transformation that specializes functions that are called with constant parameters. It is not used yet though, since it still has to be be performed iteratively.
Commits on Mar 6, 2009
  1. Fix for bug in reading import lists where the order of going through …

    atzedijkstra committed Mar 6, 2009
    …the list of to be compiled modules mattered.
    If a module would be imported via an import list earlier then from the commandline list the absolute path part would be lost,
    import searching would then be unable to determine where to find the module in the file system.
    Solution is to propagate and use the abolute filepath part of the module from which the import list arose, using this as part of the search path.
    (Thanks to Jeroen Leeuwestein for finding the distinguishing test situation)
  2. - new library modules

    atzedijkstra committed Mar 6, 2009
    - check on FFI import calling convention, depends on target
    - FFI target independent calling convention 'prim' for primitives
    - improved propagation of source text ranges to error messages
    - renamed test/nofib to make place for full nofib
Commits on Mar 4, 2009
  1. - new library modules: Data.Monoid, Data.Typeable (partially compiles…

    atzedijkstra committed Mar 4, 2009
    …, non functional)
    - required fixes:
      - newtype + normal datatype pattern match combi generated faulty code
      - use of polarity by fitsIn, for invariant type constructors (like Endo in Monoid)
    Todo: further check out Data.Typeable, make test cases for additional modules
    Warning: rerun ./configure
Commits on Mar 2, 2009
  1. - Work on salvage of 'EHC book'. It partially builds (LaTeX errors), …

    atzedijkstra committed Mar 2, 2009
    …references to modified code have been adapted, but not checked for consistency with the story.
    - A couple of additional modules.
      Regretfully not much 'easy' modules remain, most require a lot of work: either to provide proper infrastructure (such as Typeable) to copy from GHC unchanged, or clone and adapt.
    - Java/jazy codegen: tuples + datatypes
Commits on Feb 28, 2009
  1. - Packages are prelinked

    atzedijkstra committed Feb 28, 2009
    - Added some new library modules (partly via direct copy from ghc repository)
    - Fixes to make that work:
      - Parsing + desugaring of type operator (->), needed by Control.Category.
      - Similarly type operator (,,) (and etc), needed by Control.Monad.Instances.
      - Incorrect scanning of qualified compose '.' operator
      - Incorrect polarity inference for type lambdas
      - Duplicate definitions in different modules, whilst not imported both, still would sometimes cause use of unimported definition due to incorrect filtering out of out-of-scope idents
Commits on Feb 25, 2009
  1. - adapted file searching so it propagates where it found something: p…

    atzedijkstra committed Feb 25, 2009
    …lain directory, or package directory.
      Prerequisite for properly linking prelinked packages.
Commits on Feb 24, 2009
Commits on Feb 23, 2009
  1. - Salvage of old Java stuff for use in EHC. Can be turned on with ./c…

    atzedijkstra committed Feb 23, 2009
    …onfigure --enable-java, if a java compiler (named 'javac') is available.
      Is based on old library for java laziness, called 'jazy'. For now only most of the framework is in place, only variant 8, only an Int constant can be evaluated.
      Old stuff in Core/ToJava, new version in Core/ToJazy, code generation based on Core (not grin).
Commits on Feb 20, 2009
  1. cygwin fix

    atzedijkstra committed Feb 20, 2009
  2. cygwin fix

    atzedijkstra committed Feb 20, 2009
  3. - Options like '--pkg-build=pkg' for building a package. Intended as …

    atzedijkstra committed Feb 20, 2009
    …a 'for the time being' ghc-pkg equivalent. Currently just builds a C library.
    - Fix of library linking
    - Generation of fullcore intermediate file has been removed
  4. - Removal of debug like commandline options for uhc (variant 100).

    atzedijkstra committed Feb 20, 2009
    - Intermediate files are deleted by default for uhc (variant 100), can be kept with --keep-intermediate-files
    - Made uhc (variant 100) less verbose than earlier variants.
    - Fixed broken full program analysis compilation pipeline (introduced with allowing multiple commandline modules).
Commits on Feb 19, 2009
Commits on Feb 18, 2009
  1. Further work on libraries, in particular preparation for packages and…

    atzedijkstra committed Feb 18, 2009
    … working around not-yet implemented stuff like Typeable (in order to be able to use unmodified ghc libraries).
    - introduced -c/--compile-only flag, to enable compilation without linking, for building libraries.
      WARNING: previously -c was used as an abbreviation for --code. Not so anymore!
    - the flag -P is not necessary anymore, it has been renamed to -i/--import-path to be compatible with ghc.
    - commandline can take a set of modules to compile instead of 1.
    - fixed a bug arising because of multiple commandline modules: name of file can differ from module name, which was ok for 1 module,
      but for many the dependency graph and internal admin got screwed up.
Commits on Feb 17, 2009
  1. cygwin fix

    atzedijkstra committed Feb 17, 2009
Commits on Feb 16, 2009
  1. The Report specifies that numeric constants are overloaded for the In…

    JeroenFokker committed Feb 16, 2009
    …teger class. We now specialize this when full program analysis reveals that the number occurs in an Int context.
Commits on Feb 13, 2009
  1. cygwin fix

    atzedijkstra committed Feb 13, 2009
  2. cygwin fix

    atzedijkstra committed Feb 13, 2009
  3. cygwin makefile fix

    atzedijkstra committed Feb 13, 2009
  4. cygwin makefile fix

    atzedijkstra committed Feb 13, 2009
  5. makefile fix

    atzedijkstra committed Feb 13, 2009
  6. swapped X/shared in install dir to shared/X, because of cygwin's libt…

    atzedijkstra committed Feb 13, 2009
    …ool. (sudo) make clean, rerun ./configure.