This prevents some type annotations to be propagated to the middle-end,
but this is not really important as those only concern constants which
already provide all the usefull information about their shape.
Previous to this commit the Format API did not allow the user to flush a
formatter's internal queue without also flushing the formatter's output
stream. This was a problem for custom formatters that may have been used
in conjunction with kfprintf or ikfprintf. When the continuation was
called, the formatter's queue of operations may not have been flushed.
The only way that the user could force a queue flush was to call
pp_print_flush, forcing the user to introduce a blocking call before it
was necessary, regardless of other buffer state within the system.
Exposing the internal queue flushing operation solves this problem.
Names may be changed to protect aesthetic sensibilities.
In PR#7172, Daniel Bünzli remarks that even if an user does only "make
world install" only, intentionally not installing the native code
compiler, the configuration variables exposed through
$(ocamlc -where)/Makefile.config will be misleading as they indicate
the configuration-time prediction that this installation has a native
compiler and support native dynlink.
The -no-native-compiler switch allows to avoid this issue by
intentionally indicating at configure-time that no native compiler
shall be built. However, its current implementation forgot to also
explicitly disable native dynlinking. Changing this fixes the
Makefile.config information and has no impact on the compiler build
process (a build with ARCH=none will never hit the {all,install}opt of
dynlink/Makefile that inspect NATDYNLINK).
On regression risk: it is easy to check in ./configure that this
change only affects configuration when the -no-native-compiler option
is passed, which did not exist before (late in) 4.03+dev.