Send Beginners mailing list submissions to
[email protected]
To subscribe or unsubscribe via the World Wide Web, visit
http://www.haskell.org/mailman/listinfo/beginners
or, via email, send a message with subject or body 'help' to
[email protected]
You can reach the person managing the list at
[email protected]
When replying, please edit your Subject line so it is more specific
than "Re: Contents of Beginners digest..."
Today's Topics:
1. Re: Issue installing reactive-banana-5.0.0.1 (Heinrich Apfelmus)
2. Signals and external bindings... (Mike Meyer)
3. Re: Signals and external bindings... (Brandon Allbery)
4. Re: Signals and external bindings... (Mike Meyer)
5. Re: Signals and external bindings... (Brandon Allbery)
----------------------------------------------------------------------
Message: 1
Date: Wed, 02 May 2012 15:25:05 +0200
From: Heinrich Apfelmus <[email protected]>
Subject: Re: [Haskell-beginners] Issue installing
reactive-banana-5.0.0.1
To: [email protected]
Message-ID: <[email protected]>
Content-Type: text/plain; charset=UTF-8; format=flowed
Miguel Negrao wrote:
>
> cabal install regex-base parsec-3.1.1 MissingH --reinstall
> --constraint='mtl == 2.1?
>
> With this command it installs correctly, I can now run all the
> examples. All seem to work fine except CRUD that crashed at some
> point.
Great!
By the way, the crash is fixed in the development version of wxHaskell
https://github.com/jodonoghue/wxHaskell
>>> No, you have to create timers yourself. It's not very difficult,
>>> though, you can just create a wxWidget and listen to its command
>>> event.
>
> Is any generality lost because of this or are the approaches
> equivalent ?
Once you have a timer, you can make a behavior
time :: Behavior t Time
that indicates the current time and thus allows you to write functions
that depend on the current clock time, just like in Conal's papers.
In other words, the approaches are largely equivalent.
The thing is just that different GUI or audio frameworks tend to have
different implementations of timers and reactive-banana can't decide
which one is more appropriate. For instance, Henning Thielemann uses
ALSA-timers in his reactive-balsa package
http://hackage.haskell.org/package/reactive-balsa-0.0
At some point, I intend to offer some common time-related functionality
(for example as in the Wave.hs example) for different backends.
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
------------------------------
Message: 2
Date: Wed, 2 May 2012 13:00:41 -0400
From: Mike Meyer <[email protected]>
Subject: [Haskell-beginners] Signals and external bindings...
To: [email protected]
Message-ID: <[email protected]>
Content-Type: text/plain; charset=US-ASCII
I've just finished a QAD project in Python, and expect them to ask
me to build the production version of the same project. I'd like to
switch to Haskell, but (again, for those who noticed) have some
questions I'd like answered.
One problem I ran into is that I use Unix signals to control the
various processes. In CPython, this causes a problem with extension
code because the python signal handler at the C level just note the
signal, then wait to run the Python "signal handler" the next time the
interpreter. Since my extensions are doing the heavy lifting, they
often run for long periods (by which I mean 10s of minutes). Meaning
the signal is ignored for long periods.
Since I expect to such extensions (the wrappers are available) and
want to leave the control mechanisms in place, I'd like to know if I'm
going to have similar problems in Haskell.
Thanks,
<mike
--
Mike Meyer <[email protected]> http://www.mired.org/
Independent Software developer/SCM consultant, email for more information.
O< ascii ribbon campaign - stop html mail - www.asciiribbon.org
------------------------------
Message: 3
Date: Wed, 2 May 2012 13:46:39 -0400
From: Brandon Allbery <[email protected]>
Subject: Re: [Haskell-beginners] Signals and external bindings...
To: Mike Meyer <[email protected]>
Cc: [email protected]
Message-ID:
<CAKFCL4WCi41x=anogdenfymzyxkhhfuvyi00-qwj8e3+-r-...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"
On Wed, May 2, 2012 at 1:00 PM, Mike Meyer <[email protected]> wrote:
> One problem I ran into is that I use Unix signals to control the
> various processes. In CPython, this causes a problem with extension
> code because the python signal handler at the C level just note the
> signal, then wait to run the Python "signal handler" the next time the
> interpreter. Since my extensions are doing the heavy lifting, they
> often run for long periods (by which I mean 10s of minutes). Meaning
> the signal is ignored for long periods.
>
> Since I expect to such extensions (the wrappers are available) and
> want to leave the control mechanisms in place, I'd like to know if I'm
> going to have similar problems in Haskell.
>
Yes, and in pretty much any other language that requires its own runtime as
well. Cross-runtime borders are *always* a problem for signals and various
resources that may need to be cleaned up.
You can use wrappers which save the old signal handlers and install new
ones which clean up after your plugins and return. Doing so, and thereby
learning the hard way what "clean up after your plugins" entails (unless
you were very careful designing and writing them in the first place), will
teach you why nobody tries to automatically handle it for you. (In the
general case, your plugin has to track *everything* so it can unwind (or
commit, as appropriate) memory and resource allocations on signal.)
--
brandon s allbery [email protected]
wandering unix systems administrator (available) (412) 475-9364 vm/sms
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://www.haskell.org/pipermail/beginners/attachments/20120502/ed398b48/attachment-0001.htm>
------------------------------
Message: 4
Date: Wed, 2 May 2012 14:29:17 -0400
From: Mike Meyer <[email protected]>
Subject: Re: [Haskell-beginners] Signals and external bindings...
To: [email protected] <[email protected]>
Message-ID: <[email protected]>
Content-Type: text/plain; charset=US-ASCII
On Wed, 2 May 2012 13:46:39 -0400
Brandon Allbery <[email protected]> wrote:
> On Wed, May 2, 2012 at 1:00 PM, Mike Meyer <[email protected]> wrote:
> You can use wrappers which save the old signal handlers and install new
> ones which clean up after your plugins and return. Doing so, and thereby
> learning the hard way what "clean up after your plugins" entails (unless
> you were very careful designing and writing them in the first place), will
> teach you why nobody tries to automatically handle it for you. (In the
> general case, your plugin has to track *everything* so it can unwind (or
> commit, as appropriate) memory and resource allocations on signal.)
So unless I'm using something like Qt which can catch the signals and
run it's own code to call back to my code and then shut itself down,
I'm pretty much SOL.
Thanks,
<mike
--
Mike Meyer <[email protected]> http://www.mired.org/
Independent Software developer/SCM consultant, email for more information.
O< ascii ribbon campaign - stop html mail - www.asciiribbon.org
------------------------------
Message: 5
Date: Wed, 2 May 2012 17:35:05 -0400
From: Brandon Allbery <[email protected]>
Subject: Re: [Haskell-beginners] Signals and external bindings...
To: Mike Meyer <[email protected]>
Cc: "[email protected]" <[email protected]>
Message-ID:
<CAKFCL4UcV7x0fS6e_2-+=ketqf6j294qyspkubdv+uokgs3...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"
On Wed, May 2, 2012 at 2:29 PM, Mike Meyer <[email protected]> wrote:
> On Wed, 2 May 2012 13:46:39 -0400
> Brandon Allbery <[email protected]> wrote:
>
> > On Wed, May 2, 2012 at 1:00 PM, Mike Meyer <[email protected]> wrote:
> > You can use wrappers which save the old signal handlers and install new
> > ones which clean up after your plugins and return. Doing so, and thereby
> > learning the hard way what "clean up after your plugins" entails (unless
> > you were very careful designing and writing them in the first place),
> will
> > teach you why nobody tries to automatically handle it for you. (In the
>
> So unless I'm using something like Qt which can catch the signals and
> run it's own code to call back to my code and then shut itself down,
> I'm pretty much SOL.
Pretty much. And Qt only makes it a little easier; I think there are ways
to do that with Haskell as well, but it doesn't necessarily earn you much
aside from confusion if something goes wrong because of all the boundary
crossings.
--
brandon s allbery [email protected]
wandering unix systems administrator (available) (412) 475-9364 vm/sms
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://www.haskell.org/pipermail/beginners/attachments/20120502/2a09b1a1/attachment-0001.htm>
------------------------------
_______________________________________________
Beginners mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/beginners
End of Beginners Digest, Vol 47, Issue 2
****************************************