simonmar [Tue, 2 Nov 1999 17:19:17 +0000 (17:19 +0000)]
[project @ 1999-11-02 17:19:15 by simonmar]
Time the shutdown code as well as the initialisation code. This
figure is sometimes significant for SMP, because the tasks are all
killed by a signal (at the moment) and it might take a while for the
signal to be delivered.
simonmar [Tue, 2 Nov 1999 17:17:47 +0000 (17:17 +0000)]
[project @ 1999-11-02 17:17:47 by simonmar]
Fix CAF_BLACKHOLE and BLACKHOLE_BQ entry code for SMP case (it was
going into a busy locking state through comparing against the wrong
info pointer)
simonmar [Tue, 2 Nov 1999 17:08:28 +0000 (17:08 +0000)]
[project @ 1999-11-02 17:08:28 by simonmar]
Remove accidental wibble that made it in with the last commit
simonmar [Tue, 2 Nov 1999 17:04:28 +0000 (17:04 +0000)]
[project @ 1999-11-02 17:04:28 by simonmar]
make the prototypes of suspendThread and resumeThread available to the RTS.
simonmar [Tue, 2 Nov 1999 15:06:05 +0000 (15:06 +0000)]
[project @ 1999-11-02 15:05:38 by simonmar]
This commit adds in the current state of our SMP support. Notably,
this allows the new way 's' to be built, providing support for running
multiple Haskell threads simultaneously on top of any pthreads
implementation, the idea being to take advantage of commodity SMP
boxes.
Don't expect to get much of a speedup yet; due to the excessive
locking required to synchronise access to mutable heap objects, you'll
see a slowdown in most cases, even on a UP machine. The best I've
seen is a 1.6-1.7 speedup on an example that did no locking (two
optimised nfibs in parallel).
- new RTS -N flag specifies how many pthreads to start.
- new driver -smp flag, tells the driver to use way 's'.
- new compiler -fsmp option (not for user comsumption)
tells the compiler not to generate direct jumps to
thunk entry code.
- largely rewritten scheduler
- _ccall_GC is now done by handing back a "token" to the
RTS before executing the ccall; it should now be possible
to execute blocking ccalls in the current thread while
allowing the RTS to continue running Haskell threads as
normal.
- you can only call thread-safe C libraries from a way 's'
build, of course.
Pthread support is still incomplete, and weird things (including
deadlocks) are likely to happen.
sof [Tue, 2 Nov 1999 13:58:57 +0000 (13:58 +0000)]
[project @ 1999-11-02 13:58:57 by sof]
expected output
simonmar [Tue, 2 Nov 1999 11:57:16 +0000 (11:57 +0000)]
[project @ 1999-11-02 11:57:15 by simonmar]
Add simple "raw" style callback example (i.e. not using the FFI). Just
for testing _ccall_GC really.
sof [Tue, 2 Nov 1999 11:55:02 +0000 (11:55 +0000)]
[project @ 1999-11-02 11:55:02 by sof]
Simple example of callback'ery in action
sof [Tue, 2 Nov 1999 11:25:42 +0000 (11:25 +0000)]
[project @ 1999-11-02 11:25:42 by sof]
updated with expected-output files
simonpj [Tue, 2 Nov 1999 10:31:54 +0000 (10:31 +0000)]
[project @ 1999-11-02 10:31:54 by simonpj]
Fix bug in instance Dynamic (Either a b)
sewardj [Mon, 1 Nov 1999 18:19:41 +0000 (18:19 +0000)]
[project @ 1999-11-01 18:19:39 by sewardj]
Computation of max-stack-use during BCO generation was completely bogus.
Fix it. Also, add a i_STK_CHECK_big insn with 16-bit opcode.
sewardj [Mon, 1 Nov 1999 18:17:45 +0000 (18:17 +0000)]
[project @ 1999-11-01 18:17:45 by sewardj]
Correctly evacuate BCOs on the large object list. Was causing
okeefe_neural to fail.
simonpj [Mon, 1 Nov 1999 17:10:57 +0000 (17:10 +0000)]
[project @ 1999-11-01 17:09:54 by simonpj]
A regrettably-gigantic commit that puts in place what Simon PJ
has been up to for the last month or so, on and off.
The basic idea was to restore unfoldings to *occurrences* of
variables without introducing a space leak. I wanted to make
sure things improved relative to 4.04, and that proved depressingly
hard. On the way I discovered several quite serious bugs in the
simplifier.
Here's a summary of what's gone on.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* No commas between for-alls in RULES. This makes the for-alls have
the same syntax as in types.
* Arrange that simplConArgs works in one less pass than before.
This exposed a bug: a bogus call to completeBeta.
* Add a top-level flag in CoreUnfolding, used in callSiteInline
* Extend w/w to use etaExpandArity, so it does eta/coerce expansion
* Implement inline phases. The meaning of the inline pragmas is
described in CoreUnfold.lhs. You can say things like
{#- INLINE 2 build #-}
to mean "inline build in phase 2"
* Don't float anything out of an INLINE.
Don't float things to top level unless they also escape a value lambda.
[see comments with SetLevels.lvlMFE
Without at least one of these changes, I found that
{-# INLINE concat #-}
concat = __inline (/\a -> foldr (++) [])
was getting floated to
concat = __inline( /\a -> lvl a )
lvl = ...inlined version of foldr...
Subsequently I found that not floating constants out of an INLINE
gave really bad code like
__inline (let x = e in \y -> ...)
so I now let things float out of INLINE
* Implement the "reverse-mapping" idea for CSE; actually it turned out to be easier
to implement it in SetLevels, and may benefit full laziness too.
* It's a good idea to inline inRange. Consider
index (l,h) i = case inRange (l,h) i of
True -> l+i
False -> error
inRange itself isn't strict in h, but if it't inlined then 'index'
*does* become strict in h. Interesting!
* Big change to the way unfoldings and occurrence info is propagated in the simplifier
The plan is described in Subst.lhs with the Subst type
Occurrence info is now in a separate IdInfo field than user pragmas
* I found that
(coerce T (coerce S (\x.e))) y
didn't simplify in one round. First we get to
(\x.e) y
and only then do the beta. Solution: cancel the coerces in the continuation
* Amazingly, CoreUnfold wasn't counting the cost of a function an application.
* Disable rules in initial simplifier run. Otherwise full laziness
doesn't get a chance to lift out a MFE before a rule (e.g. fusion)
zaps it. queens is a case in point
* Improve float-out stuff significantly. The big change is that if we have
\x -> ... /\a -> ...let p = ..a.. in let q = ...p...
where p's rhs doesn't x, we abstract a from p, so that we can get p past x.
(We did that before.) But we also substitute (p a) for p in q, and then
we can do the same thing for q. (We didn't do that, so q got stuck.)
This is much better. It involves doing a substitution "as we go" in SetLevels,
though.
simonpj [Mon, 1 Nov 1999 16:07:56 +0000 (16:07 +0000)]
[project @ 1999-11-01 16:07:48 by simonpj]
fromInt stuff and other wibbles
simonpj [Mon, 1 Nov 1999 16:06:35 +0000 (16:06 +0000)]
[project @ 1999-11-01 16:06:34 by simonpj]
Minor tweaks to intro, and description of RULES
sof [Mon, 1 Nov 1999 14:20:18 +0000 (14:20 +0000)]
[project @ 1999-11-01 14:20:18 by sof]
ppr change that should have been included with prev absCSyn/ commit
sewardj [Mon, 1 Nov 1999 12:12:58 +0000 (12:12 +0000)]
[project @ 1999-11-01 12:12:58 by sewardj]
Increase NUM_TEXT to 100000 so okeefe_neural will parse.
sewardj [Mon, 1 Nov 1999 11:07:07 +0000 (11:07 +0000)]
[project @ 1999-11-01 11:07:07 by sewardj]
Nuke #if OVERLOADED_CONSTANTS, since H98 requires it by default.
sewardj [Mon, 1 Nov 1999 11:01:13 +0000 (11:01 +0000)]
[project @ 1999-11-01 11:01:11 by sewardj]
Fix codegen bug causing cg028.hs to fail. namePmDouble was not bound
to anything, which caused translations of patterns containing doubles
to contain NILs. Also bound namePmInteger since it didn't seem to be
bound to anything.
sof [Mon, 1 Nov 1999 10:16:43 +0000 (10:16 +0000)]
[project @ 1999-11-01 10:16:43 by sof]
updated
sof [Mon, 1 Nov 1999 10:16:03 +0000 (10:16 +0000)]
[project @ 1999-11-01 10:16:03 by sof]
formatRealFloat: Fixed some e==0 confusion in the default case for FFExponent
andy [Mon, 1 Nov 1999 04:17:38 +0000 (04:17 +0000)]
[project @ 1999-11-01 04:17:37 by andy]
wibble in derive.c
Changing stdout's buffering. fflush in the program does not flush
the dll's private buffer space on Win32.
andy [Mon, 1 Nov 1999 02:41:04 +0000 (02:41 +0000)]
[project @ 1999-11-01 02:41:04 by andy]
Adding commands to generate the std H98 libs for STG Hugs.
andy [Mon, 1 Nov 1999 02:38:33 +0000 (02:38 +0000)]
[project @ 1999-11-01 02:38:31 by andy]
minor tweaks to do with H98 (like sequence => sequence_, etc)
Removing the lib/*hs standard libs to make way for the automatically
generated ones.
andy [Mon, 1 Nov 1999 02:04:31 +0000 (02:04 +0000)]
[project @ 1999-11-01 02:04:31 by andy]
Changing to use the new IO primitives.
Addr is no longer a synonym of Int.
andy [Mon, 1 Nov 1999 01:16:18 +0000 (01:16 +0000)]
[project @ 1999-11-01 01:16:18 by andy]
Adding type signature to main.
sof [Sun, 31 Oct 1999 15:35:32 +0000 (15:35 +0000)]
[project @ 1999-10-31 15:35:32 by sof]
To workaround gcc/egcs bugs re: handling of non-toplevel "extern" decls,
lift them out to the top. i.e., extend mechanism by which "typedefs"
are lifted out to the toplevel (for the same reasons) to also encompass
"extern"s.
Note: the default is not to emit an "extern" decl for every _ccall_,
as this runs the chance of (trivially) conflicting with header file
includes. So, to enable, use -optC-femit-extern-decls.
sewardj [Fri, 29 Oct 1999 14:34:25 +0000 (14:34 +0000)]
[project @ 1999-10-29 14:34:25 by sewardj]
#include wibble
sewardj [Fri, 29 Oct 1999 14:33:57 +0000 (14:33 +0000)]
[project @ 1999-10-29 14:33:57 by sewardj]
portability wibble
sewardj [Fri, 29 Oct 1999 14:18:21 +0000 (14:18 +0000)]
[project @ 1999-10-29 14:18:20 by sewardj]
Minor efficiency improvements to Prelude I/O functions.
sof [Fri, 29 Oct 1999 14:01:53 +0000 (14:01 +0000)]
[project @ 1999-10-29 14:01:53 by sof]
Pure Win32 builds doesn't support non-blocking IO
sof [Fri, 29 Oct 1999 13:59:52 +0000 (13:59 +0000)]
[project @ 1999-10-29 13:59:52 by sof]
wibble
sof [Fri, 29 Oct 1999 13:57:53 +0000 (13:57 +0000)]
[project @ 1999-10-29 13:55:40 by sof]
attach version info
sof [Fri, 29 Oct 1999 13:54:42 +0000 (13:54 +0000)]
[project @ 1999-10-29 13:54:42 by sof]
s/TargetPlatform/TARGETPLATFORM/g
sof [Fri, 29 Oct 1999 13:53:37 +0000 (13:53 +0000)]
[project @ 1999-10-29 13:53:37 by sof]
Support for baking version info into the gen'ed Prelude DLL
sof [Fri, 29 Oct 1999 13:52:30 +0000 (13:52 +0000)]
[project @ 1999-10-29 13:52:30 by sof]
cbits/ is now also built in a DLL way, if needs be.
sof [Fri, 29 Oct 1999 13:50:16 +0000 (13:50 +0000)]
[project @ 1999-10-29 13:50:16 by sof]
INSTALL_* tweaks
sewardj [Fri, 29 Oct 1999 13:41:29 +0000 (13:41 +0000)]
[project @ 1999-10-29 13:41:23 by sewardj]
Make foreign import and thus the Prelude work on cygwin.
sewardj [Fri, 29 Oct 1999 11:41:12 +0000 (11:41 +0000)]
[project @ 1999-10-29 11:41:04 by sewardj]
Basic #ifdeffery to make StgHugs compile out of the box on cygwin.
andy [Fri, 29 Oct 1999 01:16:50 +0000 (01:16 +0000)]
[project @ 1999-10-29 01:16:48 by andy]
Adding in the modified versions of the Standard Haskell 98 libraries.
These should compile under both Hugs and GHC.
use the flags -D__HUGS__ -DUSE_REPORT_PRELUDE to extract the Hugs src.
andy [Fri, 29 Oct 1999 00:53:25 +0000 (00:53 +0000)]
[project @ 1999-10-29 00:53:25 by andy]
Fixing bug with derived Read/Show of labeled fields.
(showField and readField were undefined).
andy [Thu, 28 Oct 1999 22:37:27 +0000 (22:37 +0000)]
[project @ 1999-10-28 22:37:27 by andy]
Wibble in printing of type contexts.
sof [Thu, 28 Oct 1999 18:11:05 +0000 (18:11 +0000)]
[project @ 1999-10-28 18:11:05 by sof]
When generating C stubs, honour -osuf <x> option
sof [Thu, 28 Oct 1999 16:41:39 +0000 (16:41 +0000)]
[project @ 1999-10-28 16:41:39 by sof]
More {-# OPTIONS .. #-} tweaks: handle -#include "..." (where
'handle' == 'ignore'.)
sewardj [Thu, 28 Oct 1999 14:32:08 +0000 (14:32 +0000)]
[project @ 1999-10-28 14:32:06 by sewardj]
Make platform-specific dynamic loaders add ".so", ".dll" etc to
library names, so that f-i decls can be written without them.
Modify Prelude accordingly.
Remove unused functionality in dynamic.c and make err msgs a bit
better.
sof [Thu, 28 Oct 1999 08:21:15 +0000 (08:21 +0000)]
[project @ 1999-10-28 08:21:15 by sof]
Don't warn user of unrecognised options when processing
{-# OPTIONS .. #-} pragmas.
simonpj [Thu, 28 Oct 1999 07:53:13 +0000 (07:53 +0000)]
[project @ 1999-10-28 07:53:13 by simonpj]
More RULES documentation
simonmar [Wed, 27 Oct 1999 15:29:37 +0000 (15:29 +0000)]
[project @ 1999-10-27 15:29:37 by simonmar]
Use C-style comments instead of assembler comments - the '#' confuses
cpp when mkdependC'ing.
sof [Wed, 27 Oct 1999 14:05:27 +0000 (14:05 +0000)]
[project @ 1999-10-27 14:05:27 by sof]
Support for "{-# OPTIONS <opts> #-}" in headers of (de-litted)
source files. Currently, only -syslib <foo> and "-fglasgow-exts"
settings are picked up from within <opts>.
Mildly tested; give it a twirl.
sewardj [Wed, 27 Oct 1999 11:57:32 +0000 (11:57 +0000)]
[project @ 1999-10-27 11:57:32 by sewardj]
remove debug printing -- wibble
sewardj [Wed, 27 Oct 1999 11:55:51 +0000 (11:55 +0000)]
[project @ 1999-10-27 11:55:51 by sewardj]
Dot-ify local labels.
sewardj [Wed, 27 Oct 1999 11:11:11 +0000 (11:11 +0000)]
[project @ 1999-10-27 11:11:11 by sewardj]
universal_call_c_x86_stdcall: assume *I* have been ccall'd, not
stdcall'd, so don't clear my own args on return.
simonmar [Wed, 27 Oct 1999 09:58:36 +0000 (09:58 +0000)]
[project @ 1999-10-27 09:58:36 by simonmar]
reduce block size to 4k
simonmar [Wed, 27 Oct 1999 09:57:48 +0000 (09:57 +0000)]
[project @ 1999-10-27 09:57:48 by simonmar]
small cleanup; reduce amount of conditionally-compiled stuff
simonmar [Wed, 27 Oct 1999 09:45:50 +0000 (09:45 +0000)]
[project @ 1999-10-27 09:45:49 by simonmar]
Add way 's', for SMP/PThreads
simonmar [Wed, 27 Oct 1999 09:43:25 +0000 (09:43 +0000)]
[project @ 1999-10-27 09:43:25 by simonmar]
Junk removal
simonmar [Wed, 27 Oct 1999 08:54:16 +0000 (08:54 +0000)]
[project @ 1999-10-27 08:54:16 by simonmar]
Fix crashes in re_search. Several other functions in this file need
fixing too.
sewardj [Tue, 26 Oct 1999 17:27:54 +0000 (17:27 +0000)]
[project @ 1999-10-26 17:27:25 by sewardj]
Add foreign import/export implementations for x86 stdcall convention.
Make parser notice calling conventions on f-i and f-x declarations,
check they are supported on the platform Hugs is compiled on. Pass
them all the way through the code generator to the interpreter.
Allow f-i/f-x decls to omit the calling convention, in which case
ccall is used. Remove calling convention from all such decls
in the Prelude so it will work on any platform.
sewardj [Tue, 26 Oct 1999 17:15:39 +0000 (17:15 +0000)]
[project @ 1999-10-26 17:15:39 by sewardj]
markStablePtrTable: correctly handle case when one stable ptr refers
to an indirection to an item referred to directly by a second
stable ptr (I think!).
sof [Tue, 26 Oct 1999 09:34:09 +0000 (09:34 +0000)]
[project @ 1999-10-26 09:34:09 by sof]
wibble
sof [Tue, 26 Oct 1999 08:41:54 +0000 (08:41 +0000)]
[project @ 1999-10-26 08:41:54 by sof]
Foreign imports that use ByteArrays now need to be marked as being 'unsafe.'
simonmar [Tue, 26 Oct 1999 08:30:31 +0000 (08:30 +0000)]
[project @ 1999-10-26 08:30:31 by simonmar]
Fix documentation installing in a binary dist.
sof [Mon, 25 Oct 1999 13:21:16 +0000 (13:21 +0000)]
[project @ 1999-10-25 13:20:57 by sof]
FFI wibble:
* disallow the use of {Mutable}ByteArrays in 'safe' foreign imports.
* ensure that ForeignObjs live across a _ccall_GC_.
andy [Mon, 25 Oct 1999 05:19:22 +0000 (05:19 +0000)]
[project @ 1999-10-25 05:19:22 by andy]
Adding a axiomatic testing framework library to help test Hugs and GHC
libraries.
Here is the example for the test of concat.
test_concat = testRules "concat" [
do (xss :: [[ALPHA]]) <- var "xss"
concat xss <==> foldr (++) [] xss
]
xss here ranges over various rendering of list of list,
including bottom and lists containing bottom.
<==> uses a small piece of compiler/interpreter specifics to
allow testing for
error "" ... <==> ... error "" ===> Pass
sewardj [Fri, 22 Oct 1999 15:58:26 +0000 (15:58 +0000)]
[project @ 1999-10-22 15:58:21 by sewardj]
* Completion of foreign import and foreign export for x86 ccall
convention. f-i's and f-x's can pass and return
Char Int Word Addr StablePtr Float and Double.
* Significant cleanups and infrastructure improvements.
Characterise functions by (instruction set, calling convention)
pair where necessary, since that's what counts.
Moved foreign export code into rts/ForeignCall.c.
Should now be in a good position to implement x86 stdcall
convention.
sewardj [Fri, 22 Oct 1999 10:00:19 +0000 (10:00 +0000)]
[project @ 1999-10-22 10:00:19 by sewardj]
wibble
sewardj [Fri, 22 Oct 1999 09:59:34 +0000 (09:59 +0000)]
[project @ 1999-10-22 09:59:28 by sewardj]
Cleanup of the foreign import code. Also allow StablePtrs
to be passed back and forth.
sof [Fri, 22 Oct 1999 08:47:39 +0000 (08:47 +0000)]
[project @ 1999-10-22 08:47:39 by sof]
made writeErrString__ f.i. unsafe
sof [Fri, 22 Oct 1999 08:40:25 +0000 (08:40 +0000)]
[project @ 1999-10-22 08:40:25 by sof]
Dotted the i's
simonmar [Thu, 21 Oct 1999 09:18:02 +0000 (09:18 +0000)]
[project @ 1999-10-21 09:18:02 by simonmar]
Add some missing ticky macros.
simonmar [Thu, 21 Oct 1999 08:23:56 +0000 (08:23 +0000)]
[project @ 1999-10-21 08:23:56 by simonmar]
Eliminate those annoying "unexpected lazy BHing required" messages
during ticky-ticky profiling.
simonmar [Wed, 20 Oct 1999 10:14:47 +0000 (10:14 +0000)]
[project @ 1999-10-20 10:14:47 by simonmar]
Micro-optimisation: don't need to test for an empty queue in a
BLACKHOLE_BQ, now that we're distinguishing BLACKHOLE and
BLACKHOLE_BQ. Shortens the update code by a couple of instructions.
sof [Wed, 20 Oct 1999 10:08:33 +0000 (10:08 +0000)]
[project @ 1999-10-20 10:08:33 by sof]
Back out prev. commit which POSIXified getClockTime() - non-POSIX calls
really are superior (better resolution.)
andy [Wed, 20 Oct 1999 02:16:05 +0000 (02:16 +0000)]
[project @ 1999-10-20 02:15:56 by andy]
Adding final diffs between Hugs98 (Jan99) and Hugs98 (Sep99)
manually to STG Hugs.
andy [Tue, 19 Oct 1999 23:52:02 +0000 (23:52 +0000)]
[project @ 1999-10-19 23:51:57 by andy]
Adding a generic version of universal call that
only works for specific argument patterns.
It allows ports to work on the Hugs Prelude immeduately,
even if univeral_call_c_<os/specific> is not ported.
Also, commented out (longstanding?) bug with incorrect call
to setCurrModule.
simonmar [Tue, 19 Oct 1999 15:41:18 +0000 (15:41 +0000)]
[project @ 1999-10-19 15:41:18 by simonmar]
use PUSH_ON_RUN_QUEUE macro instead of (slightly less efficient)
inline version.
simonmar [Tue, 19 Oct 1999 15:39:08 +0000 (15:39 +0000)]
[project @ 1999-10-19 15:39:08 by simonmar]
ASSERT that the tso link field is empty before pushing it on the end
of a queue.
sewardj [Tue, 19 Oct 1999 15:11:31 +0000 (15:11 +0000)]
[project @ 1999-10-19 15:11:31 by sewardj]
Increase default cutoff limit from 16 to 60. nofib/real/anna
won't compile even with this value set to 50. Presumably the
same problem afflicts Hugs98-Sept98 ?
sewardj [Tue, 19 Oct 1999 15:09:40 +0000 (15:09 +0000)]
[project @ 1999-10-19 15:09:40 by sewardj]
Remove debugging export of ST(..), which causes failures in nofib.
sewardj [Tue, 19 Oct 1999 12:11:05 +0000 (12:11 +0000)]
[project @ 1999-10-19 12:11:05 by sewardj]
Wibble.
sewardj [Tue, 19 Oct 1999 12:05:27 +0000 (12:05 +0000)]
[project @ 1999-10-19 12:05:27 by sewardj]
Make typeVarsIn non-static since interface.c needs to see it.
sewardj [Tue, 19 Oct 1999 11:41:35 +0000 (11:41 +0000)]
[project @ 1999-10-19 11:41:35 by sewardj]
Change CFunDescriptor to match new foreign import implementation.
sewardj [Tue, 19 Oct 1999 11:03:39 +0000 (11:03 +0000)]
[project @ 1999-10-19 11:01:24 by sewardj]
Reimplement back-end for foreign import (calling out).
Return to a cleaned-up version of Alastair's callfun.S,
wherein an architecture and calling-convention specific
piece of assembly code is used to construct arguments and
then call the specified function, under the direction of
a type descriptor string.
Defined an interface to this function (universal_call_c)
which I hope will work regardless of 32-or-64 bitness,
endianness and calling convention.
Current implementation is for x86-linux only.
sof [Mon, 18 Oct 1999 11:49:47 +0000 (11:49 +0000)]
[project @ 1999-10-18 11:49:47 by sof]
* Time.CalendarTime.ctMonth's type should be Month (was Int.)
* fixed Time.addToClockTime - the original implementation was
completely wrong (thanks to George Russell for indirectly
reporting the bug.)
* Added the non-std Time.noTimeDiff, handy when you want to do
calendar calculations, e.g.,
ct <- getClockTime
print (toUTCTime (addToClockTime noTimeDiff{tdMonth=1} ct))
* many 'foreign import' decls were not marked as unsafe, even though they
were passing out MutableByteArray and ByteArray vals. Fixed.
kglynn [Mon, 18 Oct 1999 11:44:20 +0000 (11:44 +0000)]
[project @ 1999-10-18 11:44:20 by kglynn]
The fix to ignore error() cases when doing CPR analysis exposed a
problem with the Void type. A function that always constructs a void
result was converted to w/w, but the worker was producing an unboxed
tuple with 0 components. Not good.
Fixed so that constructing a void gives CPR value Top. This is OK
because we won't really be constructing a void each time, we will be
returning a pointer to a shared void cell.
andy [Sat, 16 Oct 1999 02:17:32 +0000 (02:17 +0000)]
[project @ 1999-10-16 02:17:25 by andy]
Adding diffs between Hugs98 (Jan99) and Hugs98 (Sep99)
manually to STG Hugs.
Brings in large change to typechecking sub-system.
andy [Fri, 15 Oct 1999 23:52:01 +0000 (23:52 +0000)]
[project @ 1999-10-15 23:52:00 by andy]
Adding diffs between Hugs98 (Jan99) and Hugs98 (Sep99)
manually to STG Hugs.
These are the changes to input.c, with minor tweeks to
connect.h and parser.y to make this work.
andy [Fri, 15 Oct 1999 22:35:05 +0000 (22:35 +0000)]
[project @ 1999-10-15 22:35:04 by andy]
Adding diffs between Hugs98 (Jan99) and Hugs98 (Sep99) manually to STG Hugs.
andy [Fri, 15 Oct 1999 21:41:05 +0000 (21:41 +0000)]
[project @ 1999-10-15 21:40:49 by andy]
Updating all copyright messages to the same as Hugs98.
andy [Fri, 15 Oct 1999 19:11:55 +0000 (19:11 +0000)]
[project @ 1999-10-15 19:11:54 by andy]
Changing order of check for use of DLL for dynamic linking.
(Under cygwin, we still want to use DLL's).
sewardj [Fri, 15 Oct 1999 11:03:10 +0000 (11:03 +0000)]
[project @ 1999-10-15 11:02:06 by sewardj]
Added basic support for foreign export dynamic.
Many aspects of it are still broken:
* Only supports x86-linux.
* The range of allowable types is small: Char Int Float Double
Addr and Word.
* Adjustor thunks are never freed.
* Returning Doubles or Floats doesn't work at all.
I expect to fix some of these shortly. foreign import also
needs redoing, so it can accept any number of arguments of
any type.
Also:
* Fixed setRtsFlags in Evaluator.c to make it endian-independent.
* Fixed raisePrim in Evaluator.c so things like division by zero,
array index errors, etc, throw an exception instead of
terminating StgHugs. raisePrim is renamed makeErrorCall.
simonmar [Fri, 15 Oct 1999 09:50:22 +0000 (09:50 +0000)]
[project @ 1999-10-15 09:50:22 by simonmar]
Add macros for two-register call/return convention, for experimentation.
simonmar [Fri, 15 Oct 1999 08:56:46 +0000 (08:56 +0000)]
[project @ 1999-10-15 08:56:46 by simonmar]
set $(HC) to the inplace ghc driver script.
simonpj [Thu, 14 Oct 1999 13:44:55 +0000 (13:44 +0000)]
[project @ 1999-10-14 13:44:55 by simonpj]
Swap ticky column order
simonmar [Thu, 14 Oct 1999 13:33:19 +0000 (13:33 +0000)]
[project @ 1999-10-14 13:33:19 by simonmar]
Allow unboxed tuples with zero components in unfoldings, CPR seems to
generate them occasionally (perhaps it shouldn't - there is very
little difference between returning () and (# #)).
simonmar [Thu, 14 Oct 1999 13:12:22 +0000 (13:12 +0000)]
[project @ 1999-10-14 13:12:22 by simonmar]
oops: unbreak non-ticky compiles
simonpj [Thu, 14 Oct 1999 07:23:10 +0000 (07:23 +0000)]
[project @ 1999-10-14 07:23:10 by simonpj]
Add a test for scoped type variables
simonmar [Wed, 13 Oct 1999 16:39:24 +0000 (16:39 +0000)]
[project @ 1999-10-13 16:39:10 by simonmar]
Crude allocation-counting extension to ticky-ticky profiling.
Allocations are counted against the closest lexically enclosing
function closure, so you need to map the output back to the STG code.
simonmar [Wed, 13 Oct 1999 10:43:15 +0000 (10:43 +0000)]
[project @ 1999-10-13 10:43:15 by simonmar]
typo
simonmar [Wed, 13 Oct 1999 10:13:15 +0000 (10:13 +0000)]
[project @ 1999-10-13 10:09:03 by simonmar]
#ifdefs for bootstrapping