Hi Alastair, Hans and Peter (and other Hugs Mac'ers),

I've also being busy since more than one year in this port, and I'm
using my own port. The main difference is the set of routines we
use to emulate Unix system calls. Hans had to write some itself because
Symantec provides a small set of them. I'm using Metrowerks Codewarrior
and as far as I can see, the Unix emulation is more complete.

> The same problem occurs in Windows - so you should be able to use the
>  same fix: change machdep::startEdit to return FALSE if the editor
>  hasn't completed yet.

The problem in MacOS is more serious because there are no mechanismssuch as
triggering one child process with some parameters, like Unix
"exec" calls. All syncronization and communication has to be done
through AppleEvents, and it is very complicated. Can be done, but
it needs an effort which no one apparently is willing to spend in a
dying OS. And, after all, we like to program in Haskell and we don't
like all those C obscenities ;-)

> You don't need MIDI support to load Haskore - though it might be useful
>  since Haskore's main output format is MIDI!
>
> I'd guess that the problem is in the file {Hugs}/lib/hugs/Haskore.hs
> which reads:
>
>   -- This grabs all of Haskore
>
>   module Haskore(module HaskoreLoader) where
>
>   import "../Haskore/src/HaskoreLoader" as HaskoreLoader

The problem is that the path is "hard encoded", if you replace the previousline
by:
    import HaskoreLoader
and issue:
  Hugs> :set -P:lib;:lib:hugs;:lib:Haskore:src;:lib:exts
setting the path to the corresponding directories, then the
problem is solved, Haskore loads without problems. I don't know
if it works, it should.

> > >Command-. does not seem to interrupt long IO sequences.

If you use my port, Control-C works for most cases. I tryed now[1..] in Hans port,
and I have to kill the process to stop the
program.

> But maybe there's a kludge we can use in the meantime.
>
> For example, the evaluation part of Hugs calls the macro allowBreak
>  on a regular basis to test whether the evaluation has been interrupted.
> This is required to get round problems in DOS signal handling but isn't
>  needed on real operating systems so the macro can be set to nothing.
>
> On HugsForWindows (a GUI version of Hugs that runs on Windows 3.1, WIN95 and
>  Win-NT), the macro is redefined to test the event queue and dispatch any
>  pending events.
>
> Are either of these tricks applicable?

I didn't have to make any change to get Control-C work. Probably becauseUnix
interrupts are also emulated in Codewarrior.

> > >A simple editor for recalling and editing the previous command or expression
> > >would make the system much easier to use.

In the Mac you can use the mouse to cut and paste. In Metrowerks itis now even
possible to use drag and drop with the WASTE routines.
It's another thing I want to try, but I go very slow because I don't
spend too much time on it. I'm now busy updating to release 971106.

If anyone is interested in my port, it is available at
     http://www.cs.ruu.nl/people/pablo/Hugs.sit.hqx
But I did it in May this year (thus with the release available
at that time), and a bit quickly (some dirty ways to overcome
problems). I'll let you know when the current release is finished
if you are interested.

Cheers,

---------------------------------------------------------------------
Pablo R. Azero            | P.O. Box 80.089 | tel. +(31)(30) 253-4432
Dept. of Computer Science | 3508 TB Utrecht | fax. +(31)(30) 251-3791
Utrecht University        | The Netherlands | [EMAIL PROTECTED]


Reply via email to