- Feb 21, 2002
-
-
Julian Seward authored
In DsForeign.fexportEntry, track recent changes to f-x-dynamic implementation. At the same time completely rewrite this fn, since I couldn't figure out how the previous incarnation worked.
-
- Feb 19, 2002
-
-
Keith Wansbrough authored
Some thoughts on `what happens when'.
-
- Feb 18, 2002
-
-
sof authored
unused arg wibble
-
sof authored
If necessary, define THREADED_RTS and DEBUG when gen'ing rts.conf
-
sof authored
Filter out _stub.c gubbins from C_SRCS
-
sof authored
remove STUBOBJS as an (explicit) dependency to LIBRARY (+comment as to why)
-
Julian Seward authored
Fix import wibble
-
sof authored
Be clear about the lock assumptions of GarbageCollect(); it is now required to hold sched_mutex. The real reason for adding this requirement is so that when prior to scheduling finalizers and doing thread resurrection, GarbageCollect() may set the lock status of sched_mutex to the state expected by scheduleFinalizers() and resurrectThreads() (i.e., unlocked). Note: this is only an issue with pthreads. In the Win32 threading model, it's a NOP for a thread to grab a mutex it already holds.
-
Julian Seward authored
Make foreign export dynamic work in GHCi. Main changes: * Allow literal labels to propagate through the bytecode generator and eventually be linked by the runtime linker. * Minor mods to driver plumbing so that GHCi produces the relevant *_stub.[ch] files, compiles them with gcc, and loads the resulting .o's * Dereference the stable pointer in the generated C stub, rather than passing it to a Haskell-world helper. This seems simpler and removes the need to have a H-world helper, which in turn means the stub .o doesn't refer to any H-world entities. This is important because our linker can't deal with mutual recursion between BCOs and loaded objects. Still ToDo: * Make it thread/GC safe. (Sigbjorn?) * Get rid of the bits of code in DsForeign which generate the Haskell helper. I had a go but it wasn't obvious how to do it, so have deferred.
-
- Feb 17, 2002
-
-
sven.panne@aedion.de authored
Yet another config syntax error...
-
sven.panne@aedion.de authored
One #define to rule them all: Use INSTALLING, not INSTALLED for the generation of the "real" package.conf
-
sven.panne@aedion.de authored
Installing HS*_cbits.o and libHS*_cbits.a might not be such a bad idea after all... :-}
-
sven.panne@aedion.de authored
Automagically determine the flags for compiling/linking OpenGL programs at configuration time, and stuff the relevant info into OpenGL's package configuration file. This still mixes up compilation time vs. installation time, but it's much better than hardcoded flags.
-
sven.panne@aedion.de authored
Conforming to the OpenGL ABI, try a plain (non-Mesa) OpenGL first as the default
-
sven.panne@aedion.de authored
Guard against empty ALL_DIRS
-
sven.panne@aedion.de authored
Fixed TeX quoting
-
sven.panne@aedion.de authored
Ooops, forgot to commit yesterday's quoting fix for db2dvi to the other db2FOO stuff...
-
chak@cse.unsw.edu.au. authored
wibble
-
- Feb 16, 2002
-
-
sof authored
Use Foreign.free instead of destructArray (which seem to have disappeared)
-
sof authored
getPackageLibraries: replace some rather fragile string prefix matching code that broke when "HSstd" got renamed to "HSbase".
-
sven.panne@aedion.de authored
Welcome to the amazing world of shell syntax! :-) The line CATALOG_OPTION=-c $DOCBOOK_CATALOG sets the environment variable CATALOG_OPTION to "-c" and executes $DOCBOOK_CATALOG, which is probably not what was intended. Double quotes to the rescue!
-
sof authored
release sched_mutex lock while GCing
-
- Feb 15, 2002
-
-
sof authored
Extra arg to suspendThread() and resumeThread(); controls whether an external call is concurrent or not
-
sof authored
New call attribute on foreign imports, threadsafe. It indicates that a foreign import can(*) safely be called concurrently with the continued evaluation of other Haskell threads, i.e., when the foreign call is made by a Haskell thread, it won't hinder the progress of other threads. (*) - if the platform and RTS supports it, it _will be_ invoked concurrently.
-
sof authored
comments only
-
sof authored
fix bug which caused 'safe' to be identical to 'unsafe' in an FFI decl.
-
sof authored
suspendThread() comment
-
sof authored
unbreak prev. commit
-
Simon Marlow authored
Ensure that async exceptions are blocked during the raising of an async exception - we're about to block them anyway on entry to the handler, but we don't want any further exceptions being raised in the meantime.
-
Simon Marlow authored
Fix bugs in async exception raising: instead of trying to build an application of the exception handler to the exception directly, just leave a THUNK(raise,exception) on top of the CATCH_FRAME ready to trigger the next time this thread is run. This avoids two problems: the PAP we were using before wasn't really a PAP, which broke some assumptions elsewhere (c.f. PAP_ENTRY: CATCH_FRAME failure), and there was also some duplication between raiseAsync and raisezh_fast due to the fact that we were attempting to do the raising directly.
-
Julian Seward authored
For f-x-dynamic, x86, ccall: rename "a_" to "original_return_addr" so that the next luzer to look at this stuff doesn't have to spend hours figuring out what the hell "a_" is for.
-
Simon Marlow authored
Fix typo
-
Simon Peyton Jones authored
Comments only
-
Simon Peyton Jones authored
------------------------------------------------- Fix an interesting case-alternatives filtering bug ------------------------------------------------- This bug, shown up by Krasimir's ObjectIO suite, caused the simplifier to encounter a case expression like case x of { x:xs -> True; [] -> False } in a context where x could not possibly be either a (:) or []! Case expressions in the enclosing scope dealt with it... So the alternative-filtering removed all the alternatives, leaving a case expression with no branches, which GHC didn't like one little bit. The actual bug was elsewhere; it was because we should sometimes filter out the DEFAULT alternative, and we weren't doing that. To fix it, I pulled the alternative-filtering code out of Simplify and put it in SimplUtils.prepareAlts. It's nice now.
-
sof authored
drop -mwin32 filtering
-
sof authored
mingw: drop the use of -mwin32 in CC_OPTS; no longer needed
-
sof authored
Tighten up the Scheduler synchronisation story some more: - moved thread_ready_cond + the counter rts_n_waiting_tasks to Capability.c, leaving only sched_mutex as a synchro variable in Scheduler (the less stuff that inhabit Schedule.c, the better, methinks.) - upon entry to the Scheduler, a worker thread will now call Capability.yieldToReturningWorker() to check whether it needs to give up its capability. - Worker threads that are either idle or lack a capability, will now call Capability.waitForWorkCapability() and block.
-
sof authored
Use scheduleExtThread() (see 20020214 commit msg for SchedAPI.h for details)
-
sof authored
wibble
-
sof authored
Distinguish between the scheduling of a new thread from within the RTS (e.g., via forkIO, running finalizers etc) and scheduling of a thread that's created via the RtsAPI -- the latter now uses scheduleExtThread(), the rest scheduleThread(). Why the distinction? Because the former will in threaded builds create a worker OS thread, while the latter won't. (There's an added wrinkle -- main() will also use scheduleThread()).
-