this simple function always segfaults - at least on linux amd64
The function eul-safe-eval evaluates input string and always outputs a string, either result of evaluation or error message. The function with "`" input segfaults regardless if interpreted or compiled. Whole session follows:
$ ecl ECL (Embeddable Common-Lisp) 16.0.0 (git:UNKNOWN) Copyright (C) 1984 Taiichi Yuasa and Masami Hagiya Copyright (C) 1993 Giuseppe Attardi Copyright (C) 2000 Juan J. Garcia-Ripoll Copyright (C) 2015 Daniel Kochmanski ECL is free software, and you are welcome to redistribute it under certain conditions; see file 'Copyright' for details. Type :h for Help. Top level in: #<process TOP-LEVEL>. >> (defun eul-safe-eval (str) (let ((parsed (multiple-value-list(IGNORE-ERRORS (read-from-string str))))) (if (typep (cadr parsed) 'INTEGER) (let ((result (multiple-value-list(IGNORE-ERRORS (EVAL (car parsed)))))) (if (eql (cdr result) nil) (write-to-string(car result)) (concatenate 'string "Evaluation error: " (write-to-string (cadr result))))) (concatenate 'string "Malformed expression: " (write-to-string(cadr parsed))) ))) EUL-SAFE-EVAL >> (eul-safe-eval "`") Debugger received error of type: SEGMENTATION-VIOLATION Detected access to an invalid or protected memory address. Error flushed.