diff --git a/_web_server/server/playground-server.scm b/_web_server/server/playground-server.scm index ee47771..c218e63 100755 --- a/_web_server/server/playground-server.scm +++ b/_web_server/server/playground-server.scm @@ -303,8 +303,8 @@ (with-output-to-file command-file (lambda () - (println "~a" verilog-file) (println "~a" metatop-file) + (println "~a" verilog-file) (println "+define+TESTBENCH") (println "+timescale+1ps/1ps")))) work-dir)) @@ -504,7 +504,7 @@ ;;; (define (make-page-handler host root index-file work-base stor-base - max-code-size + max-code-size sanitize iverilog-wrap vvp-wrap verilator-wrap verilator-sim-wrap verilator-build-jobs) @@ -629,7 +629,7 @@ (make-response (exec-sim 'iverilog - (sanitize-verilog code) + (if sanitize (sanitize-verilog code) code) work-base TOP-MODULE #:metatop iverilog-metatop @@ -646,7 +646,7 @@ (make-response (exec-sim 'verilator - (sanitize-verilog code) + (if sanitize (sanitize-verilog code) code) work-base TOP-MODULE #:verilator-wrap verilator-wrap @@ -716,6 +716,7 @@ (-> " --verilator-sim-wrap PATH Verilator simulation executable wrapper.") (-> " --verilator-build-jobs N Verilator parallel build.") (-> " --max-len LEN Set maximum code size in symbols. Default: 0 (infinite)") + (-> " --dont-sanitize Do not sanitize verilog code (dangerous)") (-> " --work-base PATH Set work base path. Default: ./") (-> " --stor-base PATH Set snippets storage path. Default: ./") (-> " --log-level LEVEL Set log level from 0 (quiet) to 10 (verbose). Default: 1./") @@ -743,6 +744,7 @@ '(("verilator-sim-wrap") required) '(("verilator-build-jobs") required) '(("max-len") required) + '(("dont-sanitize") none) '(("work-base") required) '(("stor-base") required) '(("log-level") required) @@ -758,6 +760,7 @@ (verilator-sim-wrap (string-trim-if-string (option-get opts "verilator-sim-wrap"))) (verilator-build-jobs (string->number (string-trim (or (option-get opts "verilator-build-jobs") "0")))) (max-code-size (string->number (string-trim (or (option-get opts "max-len") "0")))) + (sanitize (not (option-get opts "dont-sanitize"))) (work-base (string-trim (or (option-get opts "work-base") "./"))) (stor-base (string-trim (or (option-get opts "stor-base") "./"))) (log-level (string->number (string-trim (or (option-get opts "log-level") "1"))))) @@ -782,6 +785,7 @@ (logger LOG-INFO "verilator simulator wrapper: '~a'" verilator-sim-wrap) (logger LOG-INFO "verilator build jobs: ~a" verilator-build-jobs) (logger LOG-INFO "Max code size: ~a" max-code-size) + (logger LOG-INFO "Sanitize code: ~a" sanitize) (logger LOG-INFO "Work base path: '~a'" work-base) (logger LOG-INFO "Storage base path: '~a'" stor-base) (logger LOG-INFO "Log level: '~a'" log-level) @@ -789,7 +793,7 @@ (run-server (make-page-handler host root INDEX-FILE work-base stor-base - max-code-size + max-code-size sanitize iverilog-wrap vvp-wrap verilator-wrap verilator-sim-wrap verilator-build-jobs) 'http `(#:host ,addr #:port ,port)))))))