interesting warning added by C-Keen on Thu Apr 17 15:08:51 2014
;; sign a string with a given private key file and return the result as ;; a base64 encoded string (define (ssl-sign str private-key-file . o) (let* ((algorithm (if (pair? o) (car o) 'sha1)) (cmd (sprintf "openssl dgst -sign ~A -~A" (shell-escape private-key-file) (ssl-algorithm-name algorithm)))) (receive (in out pid) (process cmd) (display str out) (flush-output out) (close-output-port out) (let ((res (base64-encode-string (read-string #f in)))) (process-wait pid) res)))) ;; triggers ;; Warning: in local unknown procedure, ;; in toplevel procedure `ssl-sign': ;; expected in `let' binding of `t24' a single result, but were given 3 results ;; The code in question is (csc -debug 2 t.scm) (set! ssl-sign (##core#lambda (str1 private-key-file2 . o3) (let ((algorithm4 (if (pair? o3) (car o3) 'sha1))) (let ((cmd5 (let ((out613 (open-output-string))) (let ((t19 (let ((out714 out613)) (let ((t15 (##sys#check-output-port out714 '#t 'sprintf))) (let ((t16 (##sys#print '"openssl dgst -sign " '#f out714))) (let ((t17 (##sys#print (shell-escape private-key-file2) '#f out714))) (let ((t18 (##sys#print '" -" '#f out714))) (##sys#print (ssl-algorithm-name algorithm4) '#f out714)))))))) (get-output-string out613))))) (let () (##sys#call-with-values (##core#lambda () (process cmd5)) (##core#lambda (in20 out21 pid22) (let ((t25 (display str1 out21))) (let ((t26 (flush-output out21))) (let ((t27 (close-output-port out21))) (let ((res23 (base64-encode-string (read-string '#f in20)))) (let ((t24 (process-wait pid22))) res23))))))))))))