[M3devel] helo everyone - videotutorials for modula3

Mika Nystrom mika at async.caltech.edu
Thu Jun 16 08:01:26 CEST 2011


Furthermore, there might be problems with code that use postgres.

I use it myself (a lot), and I'm not sure where I got the bindings from
(they look similar but not identical to what I see in cm3).

While it is true that the UNSAFE keyword that introduces PQ.i3
could be taken as license to do all sorts of bad things, there's one
particularly bad thing that is far from obvious.  It is critical to call
Scheduler.DisableSwitching before anything that calls malloc under *some*
user threading implementations.  (I've never seen a problem on FreeBSD4,
but it causes huge problems on AMD64_LINUX.)  At the very least there
ought to be a comment about this in PQ.i3.  Does anyone use this 
interface and would care to comment?

This brings to mind Jay's idea of disabling switching whenever calling
an EXTERNAL function.  I think this is too big a sledgehammer but
something along these lines probably wouldn't be a bad idea.  Perhaps
making it the default but overridable somehow?  If it can be done in
a backward-compatible way in the pragma itself that might be best..

<*EXTERNAL*><*CLEAN*>

but hmm PM3 probably would choke on additional pragmas...

    Mika


Henning Thielemann writes:
>
>On Wed, 15 Jun 2011, felipe valdez wrote:
>
>> is there a way to bypass postgress, I mean, shouldn't this be an optional component, or is postrges deeply integrate
>d with cm3?
>
>It is not integrated by any means. It is only needed if you use postgres 
>bindings for Modula-3. It should be possible to skip configuration of the 
>postgres path.



More information about the M3devel mailing list