>
> Below a patch implementing some more markers and putting one in a better
> place. I'm currently revising Francois Maltey's new axiom-mode, which relies
> on the markers.
>
> I noticed a few things:
>
> 1) currently, iohook is called unconditionally. It might be nice to be able
> to
> turn it off for HyperDoc examples.
>
Hmm, the idea is to have _all_ conditional logic inside iohook. I am
not sure if it is hard to detect when code is run from HyperDoc, but
hook should be able to use the some method as other parts of code.
BTW. I just noticed that setting output format to say TeX also affect
HyperDoc examples.
> 3) Is it possible to display a HyperDoc page with a FriCAS command? If so,
> I'd
> try to make the type information clickable in emacs, and make HyperDoc show
> the page when the user clicks on it. That would be a very useful feature,
> I
> think.
>
Currently HyperDoc is the active party: HyperDoc requests a page and
AXIOMsys delivers. Doing things the other way (which currently
happens in few places) leads to nasty race conditions.
> #a=0 =>
> + ioHook("startPrompt")
> PRINC(MKPROMPT())
> + ioHook("endOfPrompt")
> intloopReadConsole('"", n)
> $DALYMODE and intloopPrefix?('"(",a) =>
> intnplisp(a)
> + ioHook("startPrompt")
> PRINC(MKPROMPT())
> + ioHook("endOfPrompt")
> intloopReadConsole('"",n)
We should probably make a function:
printPrompt() ==
ioHook("startPrompt")
PRINC(MKPROMPT())
ioHook("endOfPrompt")
and call it in all apropriate places
>
> - ioHook("endOfOutput")
> intSetNeedToSignalSessionManager()
Why do you remove this hook? IIRC this hook is the only way to
be sure that output is complete -- you may get error almost everywhere
during evaluation and printing and errror handler will skip rest
of printout and return to toplevel.
> Index: src/interp/msgdb.boot
> ===================================================================
> --- src/interp/msgdb.boot (Revision 364)
> +++ src/interp/msgdb.boot (Arbeitskopie)
> @@ -458,13 +458,13 @@
> spadThrow()
>
> queryUserKeyedMsg(key,args) ==
> - ioHook("startQueryUser")
> -- display message and return reply
> conStream := DEFIOSTREAM ('((DEVICE . CONSOLE) (MODE . INPUT)))
> sayKeyedMsg(key,args)
> + ioHook("startQueryUser")
> ans := read_-line conStream
> + ioHook("endOfQueryUser")
> SHUT conStream
> - ioHook("endOfQueryUser")
> ans
I am affraid both placements of hooks make sense here: you clearly
indicate when AXIOMsys waits for user input, but previous placement
indicated which part of AXIOMsys output deals with the question.
In particular an interface may wish to automatically answer a
question or possibly present questions in separate querry box.
Do do this the inteface need to know what is the question.
--
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
-~----------~----~----~----~------~----~------~--~---