Re: Anyone here running a new MacBook?



tar@xxxxxxxxxxxxx (Thomas A. Russ) writes:

Duane Rettig <duane@xxxxxxxxx> writes:

I suspect that the problems with Rosetta against most native-compiling
lisps is that there are special emulation/translation needs that Rosetta
wasn't designed to handle. Likely there are problems with signal handling, and
it is also likely that Rosetta doen't recognize some of the PPC instruction
sequences that lisps use but which C, ObjC, C++, etc, don't generate.

I've seen some reports from the MCL/OpenMCL camp that one of the
problems was that Rosetta doesn't provide all of the information in
signals that they needed. Some of the information (most importantly,
the program counter (PC) register) was not at all usable. This affected
not only error handling and debugging, but also the use of signals for
other more mundane applications like EOF handling. Essentially the
signal datastructure just contained garbage for the PC and one or two
other values, thus making it impossible to run those lisps under
Rosetta.

As I said before, I didn't actually look at the Rosetta implementation -
our goal was to get native as fast as possible. But yes, if the signal
contexts didn't have the proper pc value in them, then of course all
programs that do any vectoring out from within a signal handler, or
which might examine and decode the currently trapped instructiuon,
would have trouble like this.

I would also wonder if there were issues with various read or
write-barrier tricks used for GC as well, but I don't have any
information about that. It's just my speculation.

Possibly, but signal handling issues are much more likely.

--
Duane Rettig duane@xxxxxxxxx Franz Inc. http://www.franz.com/
555 12th St., Suite 1450 http://www.555citycenter.com/
Oakland, Ca. 94607 Phone: (510) 452-2000; Fax: (510) 452-0182
.



Relevant Pages

  • Re: Anyone here running a new MacBook?
    ... Likely there are problems with signal handling, ... it is also likely that Rosetta doen't recognize some of the PPC instruction ... sequences that lisps use but which C, ObjC, C++, etc, don't generate. ... signals that they needed. ...
    (comp.lang.lisp)
  • Re: Anyone here running a new MacBook?
    ... The only lisp I know of that's available now is Franz ... I suspect that the problems with Rosetta against most native-compiling ... sequences that lisps use but which C, ObjC, C++, etc, don't generate. ... instructions for generating the signals (we still use these on linux and ...
    (comp.lang.lisp)
  • Re: trap ... 0 and exec: Bug or feature?
    ... >> I would expect the same behavior when setting a trap at ... >IIRC signals aren't passed to exec'ed processes, so a subshell, if it's ... Signal handling is preserved across a forkcall, ... And, of course, if that sub-shell invokes another sub-shell,the problems ...
    (comp.unix.shell)
  • Re: An Alternative Proposal to setup_call_cleanup/3 (maybe should be included in ISO)
    ... signal handling and determinism ... setup_call_cleanup(A, (B, (C; A, fail)), C). ... we want to mask out signals in the ... I could profit from deterministic success of B. I was thinking ...
    (comp.lang.prolog)
  • Re: what can be used in a signal handler
    ... |> have the right to use in a signal handler. ... C and POSIX's specifications of signal handling is a complete mess. ... ALL handling of ALL real signals is undefined behaviour, ... being in any way thread safe. ...
    (comp.lang.python)