I wrote a simple LaTeX package [1,2] for exporting code snippets to validate them in an external tool and to import the resulting inferred types and error messages back into the document.
Someone contacted me about supporting Poly/ML as an external tool. To do that properly, I need to resolve three issues :
1. Suppress the "Poly/ML 5.7 Release" banner on startup while still showing the inferred types (-q seems to suppress both).
2. Import a source file without showing the inferred types (PolyML.use seems always to show them).
3. Have Poly/ML terminate with a non-zero return code when an error is found (after printing the error message).
Is it already possible to do such things?
If not, would it be reasonable and worthwhile to add them?
Tim.
[1]: http://www.ctan.org/pkg/checklistings [2]: https://github.com/tbrk/checklistings
On 09/11/2017 08:47, Timothy Bourke wrote:
I wrote a simple LaTeX package [1,2] for exporting code snippets to validate them in an external tool and to import the resulting inferred types and error messages back into the document.
Someone contacted me about supporting Poly/ML as an external tool. To do that properly, I need to resolve three issues :
- Suppress the "Poly/ML 5.7 Release" banner on startup while still
showing the inferred types (-q seems to suppress both).
You need "-q" to suppress the banner but then use PolyML.print_depth to control printing.
- Import a source file without showing the inferred types (PolyML.use
seems always to show them).
Again, use PolyML.print_depth before and after you call PolyML.use.
- Have Poly/ML terminate with a non-zero return code when an error is
found (after printing the error message).
Use --error-exit. This causes a non-zero return code on any exception including errors detected by the compiler.
Is it already possible to do such things?
If not, would it be reasonable and worthwhile to add them?
Tim.
Hope that answers your questions.
David
* David Matthews [2017-11-09 13:55 +0000]:
On 09/11/2017 08:47, Timothy Bourke wrote:
- Suppress the "Poly/ML 5.7 Release" banner on startup while still
showing the inferred types (-q seems to suppress both).
You need "-q" to suppress the banner but then use PolyML.print_depth to control printing.
OK.
- Import a source file without showing the inferred types
(PolyML.use seems always to show them).
Again, use PolyML.print_depth before and after you call PolyML.use.
When I call PolyML.print_depth 0 (before a use), I see
val it = (): unit
which is not ideal, but not really a problem either since I can do all the uses at the very beginning.
- Have Poly/ML terminate with a non-zero return code when an error
is found (after printing the error message).
Use --error-exit. This causes a non-zero return code on any exception including errors detected by the compiler.
OK. I'm sorry for not seeing that before.
Hope that answers your questions.
Perfectly. Thank you!
Tim.