1. 08 Aug, 2001 17 commits
    • simonmar's avatar
      [project @ 2001-08-08 14:14:08 by simonmar] · f3d40a6e
      simonmar authored
      Flag tweaks: +RTS -c now means "enable compaction all the time"
      (previously there was no way to do this *and* run without a maximum
      heap size).
      The heuristics for determining the generation sizes are also slightly
      better now.
    • sewardj's avatar
      [project @ 2001-08-08 14:11:58 by sewardj] · 5df78042
      sewardj authored
      Use the bytecode generator's monad to keep track of the malloc'd blocks
      created for each BCO.  Eventually use this info to generate a finaliser
      which is tied to the real, linked BCO
    • simonmar's avatar
      [project @ 2001-08-08 13:45:02 by simonmar] · dfebb20f
      simonmar authored
    • simonmar's avatar
      [project @ 2001-08-08 13:44:13 by simonmar] · 93eab3e9
      simonmar authored
      oops, forgot to thread the link and global_link fields of a large
      TSO.  Fixes a potential crash with the compacting collector.
    • simonmar's avatar
      [project @ 2001-08-08 13:31:05 by simonmar] · f9843fcd
      simonmar authored
      update expected output
    • simonmar's avatar
      [project @ 2001-08-08 13:22:27 by simonmar] · f1581541
      simonmar authored
      lib specifications aren't allowed any more
      [ merge into new test suite ]
    • qrczak's avatar
      [project @ 2001-08-08 13:21:04 by qrczak] · 35900d2e
      qrczak authored
      Remove -H80M options introduced a week ago.
    • simonmar's avatar
      [project @ 2001-08-08 13:19:34 by simonmar] · 13df0a28
      simonmar authored
      Change some section ids so they aren't as likely to clash with the User Guide.
    • simonmar's avatar
      [project @ 2001-08-08 13:19:07 by simonmar] · 14d65c3f
      simonmar authored
      - Rearrange the FFI documentation: put it all in chapter 8.
      - Add a section "Using the FFI with GHC", and add some information about
        the stub files generated by GHC for foreign export dynamic.
    • rrt's avatar
      [project @ 2001-08-08 12:27:37 by rrt] · da582343
      rrt authored
      Instead of copying the assemblies we need to this directory, write an
      app.exe.config file for each program we run.
    • sewardj's avatar
      [project @ 2001-08-08 12:06:28 by sewardj] · 4bb1b965
      sewardj authored
      Remove the last use of unsavouryPerformIO in this module.  What a lot
      of hassle.  Gimme a Von Neumann machine any day.
    • simonmar's avatar
      [project @ 2001-08-08 11:27:17 by simonmar] · 5a9bbffa
      simonmar authored
      oops, don't set the -M size to the -H size if -M is zero (i.e. turned
      off).  Should fix the breakage encountered by last night's nightly build.
    • sewardj's avatar
      [project @ 2001-08-08 11:11:06 by sewardj] · 6d7e8b17
      sewardj authored
      "Greetings, earthlings.  Take us to your mutable variables."
      Build the bytecode generator's monad on top of IO, and as a result get
      rid of various unsafePerformIOs.
    • simonmar's avatar
      [project @ 2001-08-08 10:50:36 by simonmar] · 52c07834
      simonmar authored
      Had a brainwave on the way to work this morning, and realised that the
      garbage collector can handle "pinned objects" as long as they don't
      contain any pointers.
      This is absolutely ideal for doing temporary allocation in the FFI,
      because what we really want to do is allocate a pinned ByteArray and
      let the GC clean it up later.  So this set of changes adds the
      required framework.
      There are two new primops:
       newPinnedByteArray# :: Int# -> State# s -> (# State# s, MutByteArr# s #)
       byteArrayContents#  :: ByteArr# -> Addr#
      obviously byteArrayContents# is highly unsafe.
      Allocating a pinned ByteArr# isn't the default, because a pinned
      ByteArr# will hold an entire block (currently 4k) live until it is
      garbage collected (that doesn't mean each pinned ByteArr# requires
      4k of storage, just that if a block contains a single live pinned
      ByteArray, the whole block must be retained).
    • simonmar's avatar
      [project @ 2001-08-08 10:36:59 by simonmar] · 1cc01ada
      simonmar authored
      update expected output
    • chak's avatar
      [project @ 2001-08-08 09:48:58 by chak] · c737f0f3
      chak authored
      As discussed at HIM in Cambridge, the GHC Commentary is now located in the
      main repository.  The idea is that any developer who wants to share his wisdom
      with the world-at-large can alter the document.  Obviously, it would be nice
      to keep the structure and style of the document as I have written it so far
      (admittedly not terribly much).  In particular, please add links to the files
      in CVS where appropriate.  Moreover, I have now included a version number in
      the title, which should be pumped whenever there are substantial changes;
      check the file index.html.
      I am planing to set up a cron job that updates the version of the Commentary
      on my Web page with the CVS version every night (this is also the version
      linked from GHC's documentation page).
    • simonmar's avatar
      [project @ 2001-08-08 08:44:47 by simonmar] · 110a35dc
      simonmar authored
      Nuke the "Compilation had errors" message again.
  2. 07 Aug, 2001 23 commits
    • ken's avatar
      [project @ 2001-08-07 20:10:30 by ken] · ebd10acf
      ken authored
      Back up previous change, which was not really a fix of any bug, let alone
      the bug it seemed to have fixed.
    • ken's avatar
      [project @ 2001-08-07 20:08:37 by ken] · eb204c28
      ken authored
      Change the number of threads to spawn in this test from 1000000 to 10000000,
      to (more likely) trigger the Alpha StgRun() bug that I just fixed.
    • ken's avatar
      [project @ 2001-08-07 20:06:41 by ken] · 9bab7a0e
      ken authored
      Fixed (I hope, and have reason to believe) mysterious segfaulting problem
      on the Alpha.
      The problem (I hope, and have reason to believe) was that, during a few
      instructions, the register saving/restoring code in StgRun() places data
      below the current SP value.  (I.e., it should first reserve stack space,
      then put data in said space, rather than first put data in, then reserve
      the space.)
         "The SP value might be used by the hardware when raising exceptions and
          asynchronous interrupts. It must be assumed that the contents of the stack
          below the current SP value and within the stack for the current thread are
          continually and unpredictably modified, as specified in the _Alpha
          Architecture Reference Manual_, and as a result of asynchronous software
         -- Compaq Computer Corporation, Houston. Tru64 UNIX Calling Standard for
            Alpha Systems, 5.1 edition, August 2000, section 3.2.1.  http://www.
    • ken's avatar
      [project @ 2001-08-07 19:34:01 by ken] · 1e402dba
      ken authored
      Fix 32-bit assumptions in debugging fprintf's.
    • ken's avatar
      [project @ 2001-08-07 19:33:33 by ken] · 565a4494
      ken authored
      For now, let mkMarshalCode_wrk = undefined for non-i386 architectures.
    • sewardj's avatar
      [project @ 2001-08-07 17:07:11 by sewardj] · 59f79a33
      sewardj authored
      Rewrite the machinery for pushing args to CCalls so that it can
      suitably mangle those :: ForeignObj# and ByteArray# and PtrArray#.
    • ken's avatar
      [project @ 2001-08-07 17:05:35 by ken] · 653f8397
      ken authored
      Allow (and ignore, i.e., strip away) "-optc" prefix in command-line options.
      This is for mkdependC-ing and compiling C code under ghc/rts, where we
      use ghc-inplace as CC and give -optc-Dxxx options in CC_OPTS.  We used to
      generate inaccurate (insufficient) dependencies.
    • dsyme's avatar
      [project @ 2001-08-07 14:45:43 by dsyme] · eb5e27c3
      dsyme authored
      This is the implementation of many of the GHC primitive operations and types for the .NET CLR port of GHC.
    • simonmar's avatar
      [project @ 2001-08-07 11:13:46 by simonmar] · f0bd52ec
      simonmar authored
      Make this compile with newer GHCs.
    • simonmar's avatar
      [project @ 2001-08-07 11:08:36 by simonmar] · f7edc878
      simonmar authored
      - describe NOTINLINE as a synonym for NOINLINE
      - describe the general form of a pragma
      - mention that case is irrelevant in the first word of a pragma
      - mention that unrecognised pragmas are silently ignored
    • simonmar's avatar
      [project @ 2001-08-07 10:54:01 by simonmar] · 4a950d42
      simonmar authored
      Back out the ExitException change; it's already taken into account by
      Sigbjorn: I'm not sure what was going on with your Win32 build, but it
      looks like it was a bug somewhere else.
    • simonmar's avatar
      [project @ 2001-08-07 10:49:49 by simonmar] · 8553e558
      simonmar authored
      (forced commit)
      Note that the previous commit also fixed the bug reported by Ken Shan
      yesterday, namely that the conc004.hs test was failing.
    • simonmar's avatar
      [project @ 2001-08-07 10:46:57 by simonmar] · f5f6286f
      simonmar authored
      Note that you need to give the same -package options to ghc -M as you
      would for normal compilation.  Also clarify the meaning of the
      (historically named) --include-prelude option.
    • simonmar's avatar
      [project @ 2001-08-07 10:37:04 by simonmar] · 8bca021a
      simonmar authored
      (forced commit, the last one had the wrong message)
      Make RTS flags given on the command line override those from the
      GHCRTS environment variable.
    • simonmar's avatar
      [project @ 2001-08-07 10:36:13 by simonmar] · e6820543
      simonmar authored
      Move RtsFlags.h into ghc/includes, so it's available in a binary
      installation.  RtsFlags.h was repository-copied behind the scenes to
      keep the revision history.
    • simonmar's avatar
      [project @ 2001-08-07 10:11:05 by simonmar] · b36887cd
      simonmar authored
      Move RtsFlags.h into ghc/includes, so it's available in a binary
      installation.  RtsFlags.h was repository-copied behind the scenes to
      keep the revision history.
    • simonmar's avatar
      [project @ 2001-08-07 09:59:18 by simonmar] · aa5c1268
      simonmar authored
      markup wibbles
    • simonmar's avatar
      [project @ 2001-08-07 09:58:39 by simonmar] · 7c435dc1
      simonmar authored
      Document the GHCRTS env. var.
    • simonmar's avatar
      [project @ 2001-08-07 09:58:15 by simonmar] · 8e77f6a0
      simonmar authored
      markup wibbles
    • simonmar's avatar
      [project @ 2001-08-07 09:57:52 by simonmar] · 82b0b975
      simonmar authored
      mark up wibbles (don't people try to format the documentation before
      checking in changes?)
    • sewardj's avatar
      [project @ 2001-08-07 09:30:00 by sewardj] · 2c4f7329
      sewardj authored
      x86: remember to pop the floating-point stack when moving float/double
      results back to the Haskell stack.  Viz, use fstps/fstpl, not fsts/fstl.
    • simonmar's avatar
      [project @ 2001-08-07 09:20:52 by simonmar] · 433cdcad
      simonmar authored
      - Allow RTS options to be given using the GHCRTS environment variable.
      - Fix the heap size calculation to take into account all generations.
        It's more conservative than it used to be, but now it is less likely
        that the maximum heap size will be exceeded.
      - Compacting collection is turned on automatically when residency
        reaches 30% of the maximum heap size, tunable with +RTS -c<n>.
        +RTS -c turns off compaction altogether.
      - The maximum heap size is off by default.  NOTE: this also means no
        compaction by default.  It is recommended that people enable a maximum
        heap size for their system using the GHCRTS environment var; eg:
    • sewardj's avatar
      [project @ 2001-08-07 09:16:15 by sewardj] · 0632467a
      sewardj authored
      This buffer is for notes you don't want to save, and for Lisp evaluation.
      If you want to create a file, visit that file with C-x C-f,
      then enter the text in that file's own buffer.
      Interpreter FFI improvements:
      * Support f-i dynamic.
      * Correctly handle fns which don't return anything.
      * Support x86 stdcall call-conv.
      Clean-up of FFI-related code in ByteCodeGen.lhs.