Basic constructor macro for ienv structures.
(make-ienv [:version <version>]
[:char+short+int+long+llong+bool-format <char+short+int+long+llong+bool-format>])
This is the usual way to construct ienv structures. It simply conses together a structure with the specified fields.
This macro generates a new ienv structure from scratch. See also change-ienv, which can "change" an existing structure, instead.
This is an ordinary
Macro:
(defmacro make-ienv (&rest args) (std::make-aggregate 'ienv args '((:version) (:char+short+int+long+llong+bool-format)) 'make-ienv nil))
Function:
(defun ienv (version char+short+int+long+llong+bool-format) (declare (xargs :guard (and (versionp version) (char+short+int+long+llong+bool-formatp char+short+int+long+llong+bool-format)))) (declare (xargs :guard (char+short+int+long+llong+bool-format-wfp char+short+int+long+llong+bool-format))) (b* ((version (mbe :logic (version-fix version) :exec version)) (char+short+int+long+llong+bool-format (mbe :logic (char+short+int+long+llong+bool-format-fix char+short+int+long+llong+bool-format) :exec char+short+int+long+llong+bool-format))) (let ((char+short+int+long+llong+bool-format (mbe :logic (if (char+short+int+long+llong+bool-format-wfp char+short+int+long+llong+bool-format) char+short+int+long+llong+bool-format (char8+short16+int16+long32+llong64+bool0-tcnt)) :exec char+short+int+long+llong+bool-format))) (list (cons 'version version) (cons 'char+short+int+long+llong+bool-format char+short+int+long+llong+bool-format)))))