[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Can't interrupt Octave, and some sugestions.

From: Joao Cardoso
Subject: Can't interrupt Octave, and some sugestions.
Date: Thu, 19 Oct 1995 06:04:08 +0100 (MET)


I can't interrupt processing in octave.

The first time I hit the DEL key, sending a SIGINT, everything goes OK;
however, the second and subsequent times, it does not work. If I am really
in trouble I must generate a core dump (CTRL-\).

I thing that this behaviour is caused by way that signals are handled in 
octave. In most octave sources the `signal' interface is used, while in
other places, `info' and `readline', `sigaction' is used, which causes
conflits. The man pages say to not mix both interfaces. Even after purging
_POSIX_SOURCE from `info' and `readline', I still have one reference to
`sigaction'... Not to speak in sigprocmask and similar...
Will this be corrected in the next release? (OK, I don't ask when will it be
issued :)

Another (related?) problem is how to put a process in the background using
octave's `system'. A SIGCHLD signal handler is not setup, I generate lots of
`defunct' process. It seems that: 
        I noticed system("emacs > /dev/tty &") does work! (Rick Niles says.)
By the way, I found that many questions asked here are already answered in 
octave's www,
A very good and usefull work! Thanks!

Still another question: How to disable the builtins? Could't first the .m files
be scanned and if none if found, only then the builtins would be called?
In this way, one could personalize some items, and eventually modify/correct
others. An example is the gnuplot `set' command. I want to use _my_ own, and
still use all my software that already uses the builtin `set'. An alias, 

A suggestion: I have lots of data files organized in subdirectories, and I have
create in .octaverc a variable called DATADIR, which 'points' to the top of
the subdirectories tree using the LOADPATH syntax. I then use:
        file = file_in_path (DATADIR,"");
        cmd = sprintf("load %s", file);
and I don't have to worry where the file actualy is.
Couldn't this be the default behaviour for load? I think it is nice...

Another question: why doesn't pause() works if octave in invoked non-
-interactively? (Exactly because this, will you answer!). I have just tried to
put a `#!/usr/local/bin/octave -q' on top of a .m file, and invoking the .m
file directly, and pause(10) didn't work.

And at last: why the name octave? (excuse my ignorance).


reply via email to

[Prev in Thread] Current Thread [Next in Thread]