cvs commit: hugs98/libraries/Hugs ConcBase.hs Exception.hs IOExts.hs Prelude.hs hugs98/src connect.h iomonad.c hugs98/tests/rts primexc.hs

Sigbjorn Finne sof@galois.com
Fri, 31 Jan 2003 08:44:49 -0800


 "Ross Paterson" <ross@soi.city.ac.uk> writes:
>
> On Thu, Jan 30, 2003 at 06:15:38PM -0800, Sigbjorn Finne wrote:
> > if we ignore the issue of raising exceptions from within extension DLLs,
>
> There's no way for them to raise exceptions, is there?
>

Not via the HugsAPI, but the continuation is just sitting there on
the stack, so there are no guarantees, but I'm not aware of any
code that makes use of it.

> > there's a way for old and new DLLs to co-exist:
> > In modules with a 'needPrim_hugs' declaration with a value
> > of 4 or below, the interpreter simply decrements by one the
> > arity of 'primitive's with IO results. Hacky, but it'll do the job.
>
> How can we distinguish IO and pure primitives?
>

By looking at the type of a 'primitive' declaration. I'm assuming that
modules which use FFI declarations are few (and fresh) and that their
DLLs can simply be regenerated.

I've got this implemented here, so if you set IOArity back to 1 again,
I'll commit the changes.

thx
--sigbjorn