diff --git a/src/c/read.d b/src/c/read.d index 3900f2537..6b7350fb7 100644 --- a/src/c/read.d +++ b/src/c/read.d @@ -1383,8 +1383,15 @@ ecl_current_read_default_float_format(void) x = SYM_VAL(@'*read-default-float-format*'); if (x == @'single-float' || x == @'short-float') return 'F'; - if (x == @'double-float' || x == @'long-float') + if (x == @'double-float') return 'D'; + if (x == @'long-float') { +#ifdef ECL_LONG_FLOAT + return 'L'; +#else + return 'D'; +#endif + } ECL_SETQ(@'*read-default-float-format*', @'single-float'); FEerror("The value of *READ-DEFAULT-FLOAT-FORMAT*, ~S, was illegal.", 1, x); diff --git a/src/lsp/evalmacros.lsp b/src/lsp/evalmacros.lsp index 6006cb2ef..af19d3537 100644 --- a/src/lsp/evalmacros.lsp +++ b/src/lsp/evalmacros.lsp @@ -12,7 +12,7 @@ (in-package "SYSTEM") -(defmacro defun (name vl &body body &aux doc-string) +(defmacro defun (&whole whole name vl &body body &aux doc-string) "Syntax: (defun name lambda-list {decl | doc}* {form}*) Defines a global function named by NAME. The complete syntax of a lambda-list is: @@ -36,7 +36,7 @@ retrieved by (documentation 'NAME 'function)." (eval-when (:execute) (si::fset ',name ,function)) (eval-when (:load-toplevel) - (si::fset ',name ,global-function)) + ,(ext:register-with-pde whole `(si::fset ',name ,global-function))) ,@(si::expand-set-documentation name 'function doc-string) ',name)))