Summary

checked inline procedures should not call intern

Metadata

Description

As found by Felix, inline safe procedures like `C_i_char_equalp` call `C_i_check_char_2` which requires a call to `intern0` to provide error reporting, sometimes more than once, even when there's no error.

This is highly inefficient and should be done differently. A quick fix would be to pass `C_SCHEME_FALSE` (or use the non-`_2` version like `C_i_check_char`) but perhaps it's better to have C versions of the checking predicates that can call intern0 on a C string in case of error.

Changes and comments

[2022-05-19 11:50:52 UTC] felix changed status from new to accepted

[2022-05-19 11:50:52 UTC] felix set owner to felix

[2022-05-20 11:43:47 UTC] sjamaan changed status from accepted to closed

[2022-05-20 11:43:47 UTC] sjamaan set resolution to fixed

[2022-05-20 11:43:47 UTC] sjamaan wrote:

Fixed with 2d1f3dbdb2a57cf01c6720648ad7cc5e8bc27d7c