On 16.04.2021 00:39, Waldek Hebisch wrote:
> On Thu, Apr 15, 2021 at 05:59:54PM +0200, Ralf Hemmecke wrote:
>> I am calling an external program in a .spad file like this:
>>
>> systemCommand(cmd)$MoreSystemCommands
>>
>> where cmd is
>>
>> "system /usr/bin/zsolve-4ti2 DATA"
>>
>> When I switch on timing I get something like and call the function from
>> my .spad file, I get
>>
>> Time: 0 (IN) + 0.04 (EV) + 0.00 (OT) = 0.05 sec
>>
>> although the actual computation (via 4ti2) took actually longer than one
>> minute.
>>
>> Understandibly, the time spent in FriCAS is negligible, but is there
>> some way to tell FriCAS to show the time spent in the external computation?
> 
> ATM no.  This requires support in operationg system which in turn
> would require support in Lisp.  

According to
https://stackoverflow.com/questions/6065446/executing-a-shell-command-from-common-lisp,
"uiop:run-program" is a viable solution.
"Trivial shell" also works fine: https://common-lisp.net/project/trivial-shell/,
however, requires some installations, whereas "uiop" loads with "(require 
:asdf)".

syscmd(s) ==> systemCommand(s)$MoreSystemCommands
lisp1(s)  ==> syscmd(string(FORMAT('NIL,"lisp ~A",s)$Lisp))

Example: sleep 2 sec

lisp1 "(require :asdf)"
lisp1 "(time (uiop:run-program _"sleep 2_" :output *standard-output*))"

thus:

mysys(cmd) == lisp1(FORMAT('NIL, "(time (uiop:run-program _"~A_" _
                    :output *standard-output*))", cmd)$Lisp)


(11) -> mysys "sleep 4"
   Compiling function mysys with type String -> Void
Evaluation took:
  4.049 seconds of real time
  0.000000 seconds of total run time (0.000000 user, 0.000000 system)
  0.00% CPU
  4 forms interpreted
  12,522,875,702 processor cycles
  65,504 bytes consed

> We probably could do this using
> implementation specific features, but up to now nobody implemented
> it.
>

Would it be wortwhile at all? IMO everyone can piece together a function using
the simple lisp constructions mentioned above.




-- 
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/94acb964-33c6-182d-4175-b5556d15cef3%40gmail.com.

Reply via email to