Merged
Conversation
jmid
reviewed
Mar 10, 2026
Member
jmid
left a comment
There was a problem hiding this comment.
Thanks!
This is failing with
#=== ERROR while compiling parseff.0.1.0 ======================================#
# context 2.5.0 | linux/x86_64 | ocaml-base-compiler.5.4.0 | pinned(https://github.com/davesnx/parseff/releases/download/0.1.0/parseff-0.1.0.tbz)
# path ~/.opam/5.4/.opam-switch/build/parseff.0.1.0
# command ~/.opam/opam-init/hooks/sandbox.sh build dune build -p parseff -j 71 @install
# exit-code 1
# env-file ~/.opam/log/parseff-7-3f4c23.env
# output-file ~/.opam/log/parseff-7-3f4c23.out
### output ###
# File "dune", lines 9-17, characters 0-350:
# 9 | (rule
# 10 | (alias doc-markdown)
# 11 | (mode
# 12 | (promote (until-clean)))
# 13 | (deps %{workspace_root}/_doc/_markdown/parseff/README.md)
# 14 | (targets README.md)
# 15 | (action
# 16 | (system
# 17 | "printf '<!-- Please do not edit this file directly. Update README.mld instead. -->\\n\\n' > %{targets} && tail -n +2 %{workspace_root}/_doc/_markdown/parseff/README.md >> %{targets}")))
# Error: No rule found for _doc/_markdown/parseff/README.md
Contributor
Author
|
Released a new package with a lowerbound for odoc |
70c6940 to
fc5705c
Compare
Member
|
@mtelvers do you know why the opam-ci is not showing up? |
fc5705c to
00fc603
Compare
CHANGES:
Initial release of Parseff -- a direct-style parser combinator library for
OCaml 5 powered by algebraic effects.
- Direct-style parsers as plain `unit -> 'a` functions, no monadic or binding operators needed
- Algebraic effects for control flow, backtracking, and streaming input
- Typed errors via polymorphic variants with position tracking
- Built-in error variants: `` `Expected ``, `` `Unexpected_end_of_input ``, `` `Depth_limit_exceeded ``
- Automatic backtracking with `or_`, `one_of`, and `one_of_labeled`
- Primitive parsers: `consume`, `satisfy`, `char`, `match_regex`, `take_while`, `skip_while`, `fail`, `error`
- Repetition combinators: `many`, `sep_by`, `between`, `end_by`, `count`, `optional`
- Operator chains: `chainl`, `chainl1`, `chainr`, `chainr1` for expression parsing
- Look-ahead parsing and depth-limited recursion via `rec_` (default depth: 128)
- Convenience parsers: `digit`, `letter`, `alphanum`, `whitespace`, `any_char`
- Zero-copy span APIs: `take_while_span`, `sep_by_take_span` returning `{ buf; off; len }` records
- Fused operations for hot paths: `sep_by_take`, `fused_sep_take`, `skip_while_then_char`
- Streaming support via `Source.of_string`, `Source.of_channel`, `Source.of_function`
- Backtrack-across-chunk-boundary support for streaming sources
- Non-fatal diagnostics with `warn` / `warn_at`, rolled back on backtracking
- `parse_until_end` / `parse_source_until_end` runners that collect diagnostics
- Error labeling with `expect` and `one_of_labeled` for clear error messages
- Domain-safe: no global mutable state, independent parses run in parallel across OCaml 5 domains
- 2-4x faster than Angstrom and MParser on equivalent parsers
- Single runtime dependency: `re` for regex support
00fc603 to
084c560
Compare
Member
|
Two machines in the CI keep being stuck, not your problem. Thanks! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Direct-style parser combinator library for OCaml 5 powered by algebraic effects
CHANGES:
Initial release of Parseff -- a direct-style parser combinator library for
OCaml 5 powered by algebraic effects.
unit -> 'afunctions, no monadic or binding operators needed`Expected,`Unexpected_end_of_input,`Depth_limit_exceededor_,one_of, andone_of_labeledconsume,satisfy,char,match_regex,take_while,skip_while,fail,errormany,sep_by,between,end_by,count,optionalchainl,chainl1,chainr,chainr1for expression parsingrec_(default depth: 128)digit,letter,alphanum,whitespace,any_chartake_while_span,sep_by_take_spanreturning{ buf; off; len }recordssep_by_take,fused_sep_take,skip_while_then_charSource.of_string,Source.of_channel,Source.of_functionwarn/warn_at, rolled back on backtrackingparse_until_end/parse_source_until_endrunners that collect diagnosticsexpectandone_of_labeledfor clear error messagesrefor regex support