Summary

Separate library into safe and unsafe parts

Metadata

Description

Many internal primitives in library.scm are compiled in safe mode, but are not strictly required to be safe. For normal primitives we want argument-count checking, etc., but since safeness declarations can only be scoped globally, all low-level interal procedures are compiled in safe mode as well, preventing possible optimizations by the compiler.

I suggest having two files, library.scm and library-u.scm (for example), one compiled safe, the other unsafe. It should be possible to easily move definitions from one to the other, so that it can be done on a case-by-case basis.

Changes and comments

[2020-01-24 21:34:22 UTC] felix set difficulty to medium

[2020-01-24 21:34:22 UTC] felix changed milestone from someday to 5.3

[2021-04-12 13:24:40 UTC] sjamaan changed milestone from 5.3 to 5.4

[2021-04-12 13:24:40 UTC] sjamaan wrote:

Might be handled once we implement #1611. Anyway, not for 5.3

[2023-03-11 13:58:35 UTC] felix changed status from new to closed

[2023-03-11 13:58:35 UTC] felix set resolution to wontfix

[2023-03-11 13:58:35 UTC] felix wrote:

Too broad, just adds complexity and the gain is unclear.