set an environment variable
Major Section:  ACL2-BUILT-INS

(Setenv$ str val), where str and val are strings, sets the environment variable str to have value val, for subsequent read by getenv$ (see getenv$), and returns nil. Or, if this operation is not implemented for the host Common Lisp, an error will occur.

(setenv$ "FOO" "BAR")

It may be surprising that setenv$ returns nil; indeed, it neither takes nor returns the ACL2 state. The reason is that getenv$ takes responsibility for trafficking in state; it is defined in the logic using the function read-acl2-oracle, which (again, in the logic) does modify state, by popping an entry from its acl2-oracle field. getenv$.