Alexander Solovets wrote:
> 
> Hello, again.
> 
> As I wrote earlier I am working on Fricas interface to TeXmacs. And I
> am curious about whether there is some guideline about how to develop
> different parts of Fricas?
> 
> The first task I want to implement is cmd switch `--texmacs' that
> would allow to call *fricas* script directly without tm_*. Searching
> for a place where command-line switches are parsed I found src/sman
> and it seems that it is some kind of client that establishes session
> to Axiom kernel. Am I right? If I am, will it be right way to add a
> line about `--texmacs` there? Also I should send `)lisp (setf $|
> ioHook|) ......` to interpreter in order to make proper prompt
> according to TeXmacs communication standard. Is there a way to do it
> properly?
> 
> Also I need to kill start-up banner. Neither '--quit' nor '--silent'
> works.
> 

1) sman is a manager program that establishes session.  Current
setup is somewhat bizzare -- input-output flow is below:

                                          < sman2 <--
       pty                socket         /           \ pty
 clef <----> spadclient <-------> session <---------> AXIOMsys
                                     ^      socket    /
                                     |               / socket
                                     V              /
                                  other programs-- /


All text output from AXIOMsys is sent to (second copy of)
sman via pty.  sman resends the output via socket to session.
session forward the output to right destination.  Basically,
session works as input-output multiplexer for AXIOMsys
(session uses notifications sent by AXIOMsys via socket to decide
who should get the output).  There is asymetry: most commands go
to AXIOMsys via socket from session, but some directly from
other programs.

Note: Other processes include hyperdoc browser and view manager.
The processes tree begins from first copy of sman (ommited from
the picture), which is also responsible for restarting processes
which died.

2) sman is right place to add option (if you need one).  Adding
option is easy: set variable inside 'process_arguments' and
test in 'main'.  The main thing is implementing the action (what
the option should do).  For this you need to find good place
to connect to AXIOMsys IO.  I think you should connect to
session -- current design assumes that IO flows trough session
(I want to simplify things in future but there is very good chance
that session will stay).

3) Concerning banner: AXIOMsys current does not look at options
at all -- some options are handled by Lisp, some are ignored.
Few messages are printed unconditionally, the banner itself
is printed depending on a variable which is initially true
but may be changed by user init file.  One possibility is
to supress banner (and other messages) in the interface.
Or if needed I can add appropriate option (since ATM AXIOMsys
does not handle options at all it is easier to use enviroment
variable, but with a bit of extra work it may be a command
line switch).

-- 
                              Waldek Hebisch
[email protected] 

-- 
You received this message because you are subscribed to the Google Groups 
"FriCAS - computer algebra system" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/fricas-devel?hl=en.

Reply via email to