Windows: Fix 'output_value: not a binary channel' when writing the AST to stdout #57
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue: I was building the latest
ppx_deriving_yojson
on Windows, and hit this error:Defect:
ocaml-migrate-parsetree
usesoutput_value
without ensuring the channel is on binary m ode. On OSX/Linux, this is fine, because binary mode is the default. However, on Windows, we need to ensure the channel is in binary mode for either thestdout
or file case.The reason I hit this now is because
ppx_deriving_yojson
depends onppxfind
in its latest release, which depends onocaml-migrate-parsetree
.Fix: Call
set_binary_mode_out oc true
prior to using the marshalling calls. This is a no-op on OSX/Linux, but will ensure the channel is in the correct mode on Windows.cc @dra27