Modules

Check

moduleSource

Available on macOS, Linux, Windows

#import "Check";

A build plugin that catches mistakes common in code ported from C: fixed arrays used as pointers, and small integers added without a cast.

Turn it on from the command line with +Check, or add get_plugin's result to a workspace yourself. Pass -no_check_bindings to skip the binding checks.

Example↗
plugin := get_plugin();
assert(plugin.message != null);

This one is only checked to compile, not run.

Module parameters#

CHECK_BINDINGS := true
Checks each #elsewhere procedure against the library that provides it.

Procedures#

General#

Returns the checking plugin. Every call returns the same object, with only its message procedure set; set workspace before forwarding messages to it.

plugin := get_plugin();
assert(plugin == get_plugin());
↗

This one is only checked to compile, not run.

Check bindings#

Porting check#

Types#

:: struct
skip_modules: := false
check_treatment_of_arrays_as_pointers_in_procedure_calls: := true
check_treatment_of_arrays_as_pointers_in_assignments: := true
check_intermediate_cast_to_int_when_adding_small_integers: := true

Constants#