Opened 3 years ago

Last modified 5 months ago

#1242 accepted defect

salt (tests): missing file: vdp.sml

Reported by: mario Owned by: iraikov
Priority: major Milestone: someday
Component: extensions Version: 4.10.x
Keywords: salt Cc:
Estimated difficulty:

Change History (6)

comment:1 Changed 3 years ago by iraikov

  • Status changed from new to accepted

comment:3 in reply to: ↑ 2 Changed 5 months ago by iraikov

This is a generated file, which is then compiled with an external compiler. The test script assumes it is run in the egg source directory and tries to access the file as "./tests/vdp.sml". It seems that this assumption is not true in the salmonella environment. Should the test script determine what directory it is being run from with (current-directory) or is there a better way to do this?

Replying to sjamaan:

Still an issue! https://salmonella-linux-x86-64.call-cc.org/chicken-4/gcc/linux/x86-64/2018/04/29/salmonella-report/test/salt.html

comment:4 Changed 5 months ago by mario

Hi Ivan. I can reproduce this issue with chicken-install -test:

$ chicken-install -test salt
retrieving ...
connecting to host "chicken.kitten-technologies.co.uk", port 80 ...
requesting "/henrietta.cgi?name=salt&mode=default&tests=yes" ...
reading response ...
HTTP/1.1 200 OK
Date: Mon, 30 Apr 2018 07:38:34 GMT
Server: Apache/2.2.31 (Unix) DAV/2 PHP/5.5.36 mod_fastcgi/2.4.6
Connection: close
Transfer-Encoding: chunked
Content-Type: text/plain
reading chunks ............
reading files ...
  ./README.md
  ./codegen.scm
  ./env.scm
  ./expr.grm
  ./parser.scm
  ./salt.meta
  ./salt.release-info
  ./salt.scm
  ./salt.setup
  ./sml-lib/
  ./sml-lib/dynamics/
  ./sml-lib/dynamics/dynamics.mlb
  ./sml-lib/dynamics/dynamics.sig
  ./sml-lib/dynamics/dynamics.sml
  ./sml-lib/findroot/
  ./sml-lib/findroot/findroot.mlb
  ./sml-lib/findroot/findroot.sml
  ./sml-lib/lininterp/
  ./sml-lib/lininterp/lininterp.mlb
  ./sml-lib/lininterp/lininterp.sml
  ./sml-lib/model/
  ./sml-lib/model/model-randmtzig.sig
  ./sml-lib/model/model.sig
  ./sml-lib/model/prelude.sml
  ./sml-lib/model/random.sml
  ./sml-lib/rk/
  ./sml-lib/rk/crk_common.h
  ./sml-lib/rk/crk.mlb
  ./sml-lib/rk/crk.sml
  ./sml-lib/rk/crktest.mlb
  ./sml-lib/rk/crklib.c
  ./sml-lib/rk/crktest.sml
  ./sml-lib/rk/crktestfun.c
  ./sml-lib/rk/rk.mlb
  ./sml-lib/rk/rk.sml
  ./sml-lib/rk/rktest.mlb
  ./sml-lib/rk/rktest.sml
  ./sml-lib/mlb-path-map
  ./sml-lib/printf/
  ./sml-lib/printf/printf.mlb
  ./sml-lib/printf/printf.sml
  ./sml-lib/prioq/
  ./sml-lib/prioq/SkewBinomialHeap.sml
  ./sml-lib/prioq/prioq.mlb
  ./sml-lib/prioq/prioq.sml
  ./sml-lib/queue/
  ./sml-lib/queue/fun-queue.mlb
  ./sml-lib/queue/fun-queue.sig
  ./sml-lib/queue/fun-queue.sml
  ./sml-lib/randmtzig/
  ./sml-lib/randmtzig/README.md
  ./sml-lib/randmtzig/LICENSE
  ./sml-lib/randmtzig/randmtzig.mlb
  ./sml-lib/randmtzig/randmtzig.sml
  ./sml-lib/randmtzig/randmtziglib.c
  ./sml-lib/state/
  ./sml-lib/state/state.mlb
  ./sml-lib/state/state.sml
  ./tests/
  ./tests/iafrefr_run.mlb
  ./tests/adex_run.mlb
  ./tests/function.scm
  ./tests/hr_run.mlb
  ./tests/iaf_run.mlb
  ./tests/izhfs_run.mlb
  ./tests/ml_run.mlb
  ./tests/model_run.sml
  ./tests/options.sml
  ./tests/pr_run.mlb
  ./tests/run.scm
  ./tests/vdp_run.mlb
  ./tests/wb_run.mlb
  ./units.scm
 salt located at /tmp/temp2021.7893/salt
checking platform for `salt' ...
checking dependencies for `salt' ...
install order:
("salt")
installing salt:0.24 ...
changing current directory to /tmp/temp2021.7893/salt
  '/home/mario/local/chicken-4.13.0/bin/csi' -bnq -setup-mode -e "(require-library setup-api)" -e "(import setup-api)" -e "(setup-error-handling)" -e "(extension-name-and-version '(\"salt\" \"0.24\"))" 'salt.setup'
make: making expr.grm.scm
  '/home/mario/local/chicken-4.13.0/bin/csi' -s expr.grm
make: making salt.so
  '/home/mario/local/chicken-4.13.0/bin/csc' -feature compiling-extension -setup-mode    -O -d2 -S -s -I /home/mario/local/chicken-4.13.0/lib/chicken/8 salt.scm -j salt
make: making salt.import.so
  '/home/mario/local/chicken-4.13.0/bin/csc' -feature compiling-extension -setup-mode    -O -d2 -S -s salt.import.scm
make: made expr.grm.scm
make: made salt.so
make: made salt.import.so
  cp -r 'salt.so' '/home/mario/local/chicken-4.13.0/lib/chicken/8/salt.so'
  chmod a+r '/home/mario/local/chicken-4.13.0/lib/chicken/8/salt.so'
  cp -r 'salt.import.so' '/home/mario/local/chicken-4.13.0/lib/chicken/8/salt.import.so'
  chmod a+r '/home/mario/local/chicken-4.13.0/lib/chicken/8/salt.import.so'
  chmod a+r '/home/mario/local/chicken-4.13.0/lib/chicken/8/salt.setup-info'
  cp -r 'sml-lib/mlb-path-map' '/home/mario/local/chicken-4.13.0/share/chicken/salt/sml-lib/mlb-path-map'
  cp -r 'sml-lib/rk/rk.sml' '/home/mario/local/chicken-4.13.0/share/chicken/salt/sml-lib/rk/rk.sml'
  cp -r 'sml-lib/rk/rk.mlb' '/home/mario/local/chicken-4.13.0/share/chicken/salt/sml-lib/rk/rk.mlb'
  cp -r 'sml-lib/rk/crk.sml' '/home/mario/local/chicken-4.13.0/share/chicken/salt/sml-lib/rk/crk.sml'
  cp -r 'sml-lib/rk/crk.mlb' '/home/mario/local/chicken-4.13.0/share/chicken/salt/sml-lib/rk/crk.mlb'
  cp -r 'sml-lib/rk/crklib.c' '/home/mario/local/chicken-4.13.0/share/chicken/salt/sml-lib/rk/crklib.c'
  cp -r 'sml-lib/rk/crk_common.h' '/home/mario/local/chicken-4.13.0/share/chicken/salt/sml-lib/rk/crk_common.h'
  cp -r 'sml-lib/dynamics/dynamics.sig' '/home/mario/local/chicken-4.13.0/share/chicken/salt/sml-lib/dynamics/dynamics.sig'
  cp -r 'sml-lib/dynamics/dynamics.sml' '/home/mario/local/chicken-4.13.0/share/chicken/salt/sml-lib/dynamics/dynamics.sml'
  cp -r 'sml-lib/dynamics/dynamics.mlb' '/home/mario/local/chicken-4.13.0/share/chicken/salt/sml-lib/dynamics/dynamics.mlb'
  cp -r 'sml-lib/queue/fun-queue.sig' '/home/mario/local/chicken-4.13.0/share/chicken/salt/sml-lib/queue/fun-queue.sig'
  cp -r 'sml-lib/queue/fun-queue.sml' '/home/mario/local/chicken-4.13.0/share/chicken/salt/sml-lib/queue/fun-queue.sml'
  cp -r 'sml-lib/queue/fun-queue.mlb' '/home/mario/local/chicken-4.13.0/share/chicken/salt/sml-lib/queue/fun-queue.mlb'
  cp -r 'sml-lib/prioq/SkewBinomialHeap.sml' '/home/mario/local/chicken-4.13.0/share/chicken/salt/sml-lib/prioq/SkewBinomialHeap.sml'
  cp -r 'sml-lib/prioq/prioq.sml' '/home/mario/local/chicken-4.13.0/share/chicken/salt/sml-lib/prioq/prioq.sml'
  cp -r 'sml-lib/prioq/prioq.mlb' '/home/mario/local/chicken-4.13.0/share/chicken/salt/sml-lib/prioq/prioq.mlb'
  cp -r 'sml-lib/lininterp/lininterp.sml' '/home/mario/local/chicken-4.13.0/share/chicken/salt/sml-lib/lininterp/lininterp.sml'
  cp -r 'sml-lib/lininterp/lininterp.mlb' '/home/mario/local/chicken-4.13.0/share/chicken/salt/sml-lib/lininterp/lininterp.mlb'
  cp -r 'sml-lib/randmtzig/randmtzig.sml' '/home/mario/local/chicken-4.13.0/share/chicken/salt/sml-lib/randmtzig/randmtzig.sml'
  cp -r 'sml-lib/randmtzig/randmtziglib.c' '/home/mario/local/chicken-4.13.0/share/chicken/salt/sml-lib/randmtzig/randmtziglib.c'
  cp -r 'sml-lib/randmtzig/randmtzig.mlb' '/home/mario/local/chicken-4.13.0/share/chicken/salt/sml-lib/randmtzig/randmtzig.mlb'
  cp -r 'sml-lib/findroot/findroot.sml' '/home/mario/local/chicken-4.13.0/share/chicken/salt/sml-lib/findroot/findroot.sml'
  cp -r 'sml-lib/findroot/findroot.mlb' '/home/mario/local/chicken-4.13.0/share/chicken/salt/sml-lib/findroot/findroot.mlb'
  cp -r 'sml-lib/printf/printf.sml' '/home/mario/local/chicken-4.13.0/share/chicken/salt/sml-lib/printf/printf.sml'
  cp -r 'sml-lib/printf/printf.mlb' '/home/mario/local/chicken-4.13.0/share/chicken/salt/sml-lib/printf/printf.mlb'
  cp -r 'sml-lib/state/state.sml' '/home/mario/local/chicken-4.13.0/share/chicken/salt/sml-lib/state/state.sml'
  cp -r 'sml-lib/state/state.mlb' '/home/mario/local/chicken-4.13.0/share/chicken/salt/sml-lib/state/state.mlb'
  cp -r 'sml-lib/model/model.sig' '/home/mario/local/chicken-4.13.0/share/chicken/salt/sml-lib/model/model.sig'
  cp -r 'sml-lib/model/model-randmtzig.sig' '/home/mario/local/chicken-4.13.0/share/chicken/salt/sml-lib/model/model-randmtzig.sig'
  cp -r 'sml-lib/model/prelude.sml' '/home/mario/local/chicken-4.13.0/share/chicken/salt/sml-lib/model/prelude.sml'
  cp -r 'sml-lib/model/random.sml' '/home/mario/local/chicken-4.13.0/share/chicken/salt/sml-lib/model/random.sml'
  '/home/mario/local/chicken-4.13.0/bin/csi' -s run.scm salt 0.24
#(ast #(variable u165 label=x value=#(constant number = -0.25 #(unit unitless [Unity] 1.0)) history=#t dim=#(quantity Unity))
     #(variable u166 label=y value=#(constant number = 1.0 #(unit unitless [Unity] 1.0)) history=#t dim=#(quantity Unity))
     #(equation #(deriv #(free x)) = (signal.call #(function #(free -) (<#(var-def a) . <#(var-def b) . #<null-formal>>>) = (signal.call signal.sub (#(var-def a) . (#(var-def b) . #<null-arg>)))) ((signal.call #(function #(free *) (<#(var-def a) . <#(var-def b) . #<null-formal>>>) = (signal.call signal.mul (#(var-def a) . (#(var-def b) . #<null-arg>)))) ((signal.call #(function #(free -) (<#(var-def a) . <#(var-def b) . #<null-formal>>>) = (signal.call signal.sub (#(var-def a) . (#(var-def b) . #<null-arg>)))) (#(constant number = 1.0 #(unit unitless [Unity] 1.0)) . ((signal.call #(function #(free pow) (<#(var-def a) . <#(var-def b) . #<null-formal>>>) = (signal.call signal.pow (#(var-def a) . (#(var-def b) . #<null-arg>)))) (#(free y) . (#(constant number = 2.0 #(unit unitless [Unity] 1.0)) . #<null-arg>))) . #<null-arg>))) . (#(free x) . #<null-arg>))) . (#(free y) . #<null-arg>))))
     #(equation #(deriv #(free y)) = #(free x)))

elaborate is done
#(equation-set
  (definitions=
    ((var412 . #(constant number = -0.25 #(unit unitless [Unity] 1.0)))
     (var413 . #(constant number = 1.0 #(unit unitless [Unity] 1.0)))))
  (discrete-definitions= ())
  (parameters= ())
  (fields= ())
  (externals= ())
  (externalevs= ())
  (equations=
    ((#(deriv #(variable var412 label=x value=#(constant number = -0.25 #(unit unitless [Unity] 1.0)) history=#t dim=#(quantity Unity)))
      (signal.call
        #(function #(free -) (<#(var-def a) . <#(var-def b) . #<null-formal>>>) = (signal.call signal.sub (#(var-def a) . (#(var-def b) . #<null-arg>))))
        ((signal.call #(function #(free *) (<#(var-def a) . <#(var-def b) . #<null-formal>>>) = (signal.call signal.mul (#(var-def a) . (#(var-def b) . #<null-arg>)))) ((signal.call #(function #(free -) (<#(var-def a) . <#(var-def b) . #<null-formal>>>) = (signal.call signal.sub (#(var-def a) . (#(var-def b) . #<null-arg>)))) (#(constant number = 1.0 #(unit unitless [Unity] 1.0)) . ((signal.call #(function #(free pow) (<#(var-def a) . <#(var-def b) . #<null-formal>>>) = (signal.call signal.pow (#(var-def a) . (#(var-def b) . #<null-arg>)))) (#(variable var413 label=y value=#(constant number = 1.0 #(unit unitless [Unity] 1.0)) history=#t dim=#(quantity Unity)) . (#(constant number = 2.0 #(unit unitless [Unity] 1.0)) . #<null-arg>))) . #<null-arg>))) . (#(variable var412 label=x value=#(constant number = -0.25 #(unit unitless [Unity] 1.0)) history=#t dim=#(quantity Unity)) . #<null-arg>))) . (#(variable var413 label=y value=#(constant number = 1.0 #(unit unitless [Unity] 1.0)) history=#t dim=#(quantity Unity)) . #<null-arg>))))
     (#(deriv #(variable var413 label=y value=#(constant number = 1.0 #(unit unitless [Unity] 1.0)) history=#t dim=#(quantity Unity)))
      #(variable var412 label=x value=#(constant number = -0.25 #(unit unitless [Unity] 1.0)) history=#t dim=#(quantity Unity)))))
  (functions= ())
  (conditions= ())
  (pos-responses= ())
  (neg-responses= ())
  (nodemap= #<env>)
  (regimemap= #<env>))

#(simruntime
  (cindexmap= #<env>)
  (dindexmap= #<env>)
  (evindexmap= #<env>)
  (extindexmap= #<env>)
  (extevindexmap= #<env>)
  (parameters= ())
  (fields= ())
  (defs= (#(constant number = -0.25 #(unit unitless [Unity] 1.0))
          #(constant number = 1.0 #(unit unitless [Unity] 1.0))))
  (external-defs= ())
  (externalev-defs= ())
  (externalev-links= ())
  (eqblock=
    ((setindex
       dy_out
       0
       (signal.primop
         signal.sub
         (signal.primop
           signal.mul
           (signal.primop
             signal.sub
             #(constant number = 1.0 #(unit unitless [Unity] 1.0))
             (signal.primop
               signal.pow
               (getindex y 1)
               #(constant number = 2.0 #(unit unitless [Unity] 1.0))))
           (getindex y 0))
         (getindex y 1)))
     (setindex dy_
Error: (open-output-file) cannot open file - No such file or directory: "tests/vdp.c"

	Call history:

	codegen.scm:37: ##sys#write-char-0	  
	codegen.scm:37: get-output-string	  
	codegen.scm:35: ##sys#print	  
	codegen.scm:35: ##sys#check-output-port	  
	codegen.scm:37: datatype#invoke-variant-case	  
	codegen.scm:37: open-output-string	  
	codegen.scm:37: ##sys#check-output-port	  
	codegen.scm:37: ##sys#print	  
	codegen.scm:37: ##sys#print	  
	codegen.scm:37: ##sys#write-char-0	  
	codegen.scm:37: get-output-string	  
	codegen.scm:35: ##sys#print	  
	<eval>	  [test-model/c] (make-pathname dir (string-append (->string name) ".c"))
	<eval>	  [test-model/c] (string-append (->string name) ".c")
	<eval>	  [test-model/c] (->string name)
	<eval>	  [test-model/c] (open-output-file c-path)	<--
out 1 (getindex y 0))))
  (evblock= ())
  (posresp= ())
  (negresp= ()))

((ode-n . 2)
 (cond-n . 0)
 (dsc-n . 0)
 (ext-n . 0)
 (regime-n . 0)
 (paramfun . (V:Fn () = E:Ret (V:C empty_real_initial)))
 (fieldfun . (V:Fn () = E:Ret (V:C empty_real_initial)))
 (initfun
   .
   (V:Fn (p fld) = E:Ret (V:Fn (y_out) = E:Begin ((E:Set (V:Var y_out) 1 (V:C 1.0)) (E:Set (V:Var y_out) 0 (V:C -0.25)) E:Ret (V:Var y_out)))))
 (dinitfun . (V:C NONE))
 (rhsfun
   .
   (V:Fn ((double . t) ((%pointer double) . y) ((%pointer double) . dy_out) ((%pointer (%pointer void)) . clos)) = E:Let ( (B:Val (p %pointer double) = (V:Sub (V:Var clos) 0) B:Val (fld %pointer double) = (V:Sub (V:Var clos) 1) B:Val (ext %pointer double) = (V:Sub (V:Var clos) 2) B:Val (extev %pointer double) = (V:Sub (V:Var clos) 3)) ) E:Begin ((E:Set (V:Var dy_out) 1 (V:Sub (V:Var y) 0)) (E:Set (V:Var dy_out) 0 (V:Op signal.sub ((V:Op signal.mul ((V:Op signal.sub ((V:C 1.0) (V:Op signal.pow ((V:Sub (V:Var y) 1) (V:C 2.0))))) (V:Sub (V:Var y) 0))) (V:Sub (V:Var y) 1)))))))
 (stepfun
   .
   (V:Op make_stepper ((V:Fn (clos) = E:Let ( () ) E:Ret (V:Fn (t y dy_out) = E:Begin ((E:Set (V:Var dy_out) 1 (V:Sub (V:Var y) 0)) (E:Set (V:Var dy_out) 0 (V:Op signal.sub ((V:Op signal.mul ((V:Op signal.sub ((V:C 1.0) (V:Op signal.pow ((V:Sub (V:Var y) 1) (V:C 2.0))))) (V:Sub (V:Var y) 0))) (V:Sub (V:Var y) 1)))) E:Ret (V:Var dy_out)))))))
 (odefun
   .
   (V:Fn (p fld) = E:Ret (V:Op ContStepper ((V:Fn (ext extev h abstol reltol x y yout) = E:Ret (V:Op stepfun ((V:Rcon ((p . (V:Var p)) (fld . (V:Var fld)) (ext . (V:Var ext)) (extev . (V:Var extev)))) (V:Var h) (V:Var abstol) (V:Var reltol) (V:Var x) (V:Var y) (V:Var yout))))))))
 (initcondfun . (V:C NONE))
 (initextfun
   .
   (V:Fn (p fld) = E:Ret (V:Op make_ext ((V:C 0) (V:Fn (ext_out) = E:Begin (E:Ret (V:Var ext_out)))))))
 (initextevfun
   .
   (V:Fn (p fld) = E:Ret (V:Op make_ext ((V:C 0) (V:Fn (extev_out) = E:Begin (E:Ret (V:Var extev_out)))))))
 (linkextevfun . (V:Fn (extev extev_out) = E:Begin (E:Ret (V:Var extev_out))))
 (condfun . (V:C NONE))
 (condrhsfun . #f)
 (posfun
   .
   (V:Op SOME ((V:Fn (p fld) = E:Ret (V:Op SResponse ((V:Fn (t y c ext extev y_out) = E:Begin ((E:Set (V:Var y_out) 1 (V:Sub (V:Var y) 1)) (E:Set (V:Var y_out) 0 (V:Sub (V:Var y) 0)) E:Ret (V:Var y_out)))))))))
 (negfun
   .
   (V:Op SOME ((V:Fn (p fld) = E:Ret (V:Op SResponse ((V:Fn (t y c ext extev y_out) = E:Begin ((E:Set (V:Var y_out) 1 (V:Sub (V:Var y) 1)) (E:Set (V:Var y_out) 0 (V:Sub (V:Var y) 0)) E:Ret (V:Var y_out)))))))))
 (dposfun . (V:C NONE))
 (initregfun . (V:C NONE))
 (regfun . (V:C NONE)))


Error: shell command terminated with nonzero exit code
17920
"'/home/mario/local/chicken-4.13.0/bin/csi' -s run.scm salt 0.24"

comment:5 Changed 5 months ago by iraikov

Hi Mario,

Thanks for your help, I have modified the test script to use the correct location for generated files, however they need to be compiled with the mlton compiler. Is it possible to install it on the salmonella system?

comment:6 Changed 5 months ago by mario

Thanks Ivan. Sure, I've installed mlton on the Linux salmonella machines.

Note: See TracTickets for help on using tickets.