in reply to Re: Interactive Emacs/Perl environment
in thread Interactive Emacs/Perl environment

Hm... To be honest, I've only tested this on Emacs CVS on Mac OS 10.2. Can you:
(load-library "epl") (load-library "perl") (setq epl-debugging t)
then "perl-eval-expression"? If not, then it's a problem with EPL, and unfortunately, its code quite complex (state machine, cookie system for garbage collection, etc) and I'm not familiar with it. If you can send me the dump, I'll try to figure out what's going on, but no guarantees.

Replies are listed 'Best First'.
Re: Re: Re: Interactive Emacs/Perl environment
by eserte (Deacon) on Mar 31, 2004 at 17:28 UTC
    (load-library "epl") (load-library "perl") (setq epl-debugging t) (perl-eval-expression "2+2")
    returns the following output (these are the relevant lines, I think):
    Debugger entered--Lisp error: (wrong-type-argument sequencep t) signal(wrong-type-argument (sequencep t)) (condition-case err (epl-loop) (error (epl-destroy) (signal ... ...) +)) (let* ((process-connection-type nil) (out ...) (epl-interp ...)) (co +ndition-case err (epl-loop) (error ... ...)) (epl-interp-set-status ( +quote ready)) epl-interp) perl-interpreter-new() (setq perl-interpreter (perl-interpreter-new)) (if perl-interpreter (epl-check) (setq perl-interpreter (perl-interp +reter-new))) epl-init() (epl-eval (epl-init) nil context "do { package main; " string " }") perl-eval("2+2" scalar-context)
      Ack. So somewhere in epl-loop, we're trying to treat 't as a sequence, but the condition-case in perl-interpreter-new is hiding where. If you can remove the condition-case and try again, you might get something more informative. Alternatively, you can instrument epl-loop by going to it and typing \C-u \C-\M-x, then step through to see where the bogosity occurs. Unfortunately, the function's sort of large, so I can't see where the error is :(.