Escape via unhygienic macros Phil Hofer (03 Jul 2019 23:31 UTC)
Re: Escape via unhygienic macros John Cowan (04 Jul 2019 03:59 UTC)
Re: Escape via unhygienic macros Marc Nieper-Wißkirchen (04 Jul 2019 05:57 UTC)
Re: Escape via unhygienic macros John Cowan (04 Jul 2019 17:03 UTC)
Re: Escape via unhygienic macros Phil Hofer (04 Jul 2019 19:02 UTC)
Re: Escape via unhygienic macros John Cowan (04 Jul 2019 18:55 UTC)
(missing)
Fwd: Escape via unhygienic macros Marc Nieper-Wißkirchen (08 Jul 2019 12:21 UTC)
Re: Escape via unhygienic macros Marc Nieper-Wißkirchen (08 Jul 2019 12:38 UTC)
Re: Escape via unhygienic macros John Cowan (08 Jul 2019 16:28 UTC)
Re: Escape via unhygienic macros Lassi Kortela (04 Jul 2019 19:45 UTC)
Re: Escape via unhygienic macros Lassi Kortela (04 Jul 2019 19:56 UTC)
Re: Escape via unhygienic macros John Cowan (08 Jul 2019 04:57 UTC)
Re: Escape via unhygienic macros Marc Nieper-Wißkirchen (04 Jul 2019 20:27 UTC)
Re: Escape via unhygienic macros Lassi Kortela (14 Jul 2019 15:41 UTC)
Re: Escape via unhygienic macros John Cowan (14 Jul 2019 17:59 UTC)

Re: Escape via unhygienic macros Lassi Kortela 14 Jul 2019 15:41 UTC

> But what is the purpose of this SRFI? If the purpose is to be able to
> eval untrusted code in a sandbox, then it is just dangerous to offer an
> implementation that is, most likely, not safe on most Schemes.

Possibly of interest, the new work-in-progess SICL implementation of
Common Lisp is designed to support multiple global environments. From
the FAQ (https://github.com/robert-strandh/SICL/blob/master/FAQ.text):

==================================================
First-class global environments

Question:
What are first-class global environments?

Answer:
First class global environments represent a feature whereby the system
may contain several global environments, allowing the programmer to
switch between them, for various reasons.

Question:
Why can't first-class global environments be added to an existing
Common Lisp system?

Answer:
Most existing systems access global functions using an indirection
through the symbol naming them.  This technique makes it impossible to
have different definitions of a function with a particular name in
different environments.  In SICL the "function slot" is detached from
the symbol and attached to the global environment instead.

Question:
Sandboxing is notoriously difficult in existing Common Lisp systems.
Will it be easier in SICL?

Answer:
Yes, first-class global environments allow the creation of restricted
environments so that one may, for example, disallow the evaluation of
arbitrary forms.

Question:
Will SICL be safer than existing Common Lisp systems?

Answer:
Yes, with existing systems, the entire code is always available.
Nothing prevents an external system from modifying the compiler to
install a virus, or from forking a process in the name of the
unsuspecting user.  With first-class global environments, it is
possible to isolate sensitive code so that some additional action
(password maybe) on the part of the programmer is required in order to
access or modify it.
==================================================