Any remaining issues and questions?
Can we move forward to include these patches?
- Qian
On 6/5/24 18:46, Qian Yun wrote:
On 6/2/24 08:29, Qian Yun wrote:
On 6/2/24 02:24, Waldek Hebisch wrote:
It seems that all discovered issues are resolved now. It is not
clear to me it is worth splitting disscusion into separate threads.
Concerning splitting patches, I think it would be natural to
commit chages to HyperDoc program and graphics as one piece (assuming
they are compatible with current way of building book) and changes
to FriCAS book and src/doc Makefile as another piece.
I think the HyperDoc patch is relatively independent and should
commit separately, after all it solves Greg's problem.
As for the "file truncation problem", or let's rephrase it as
"sman in pipe problem". (I just noticed it is mentioned in the
"doc/fricas.1" man page.) One thing I'm still not very sure:
what's the purpose of "wait_for_client_read" in "sread"?
In which context is it useful? I'm inclined to remove it.
To answer my own question: we should remove "wait_for_client_read".
This function is intended for the scenario "client closes connection
and tries to connect again." But for Unix domain socket,
they can't be closed unexpectedly, unlike TCP connection over Internet.
And since the reconnection needs to exchange PID and 'purpose',
but there's no code to handle this logic on the client side.
So when "fricas_read" returns 0, it means the other end of the
unix domain socket is closed, and we should prepare for proper shutdown.
Another thing that I'm more certain: since in session.c
we use "session_socket_mask" instead of "socket_mask",
"sread" ("get_int" etc) can have unexpected side effects,
I need to take a deeper look to see if there's a better solution.
In session.c, we should pay extra attention when the socket peer
closes, I think these cases are already considered.
A final problem is, should "sman" restart "viewman" if it exits?
(https://github.com/fricas/fricas/pull/101)
If "viewman" exits normally, "sman" should not restart it,
otherwise "sman" (and the whole session) will not quit to terminal.
I modify "sman" to check for the return status of its subprocesses,
and do not restart a child process if it exits successfully.
Branch rebased and updated. Please review and test.
https://github.com/oldk1331/fricas/tree/new-ps-book
- Qian
--
You received this message because you are subscribed to the Google Groups "FriCAS -
computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to fricas-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/fricas-devel/ba0c8e36-2f45-4ecf-839b-806734f91535%40gmail.com.