Commit Graph
84 Commits
Author SHA1 Message Date
petrbalvin 3ffae35a20 feat: add the Document edit pipeline with comment-preserving write
Test / test (push) Successful in 1m35s
Assisted-by: GLM 5.3 Flash
2026-09-22 01:22:46 +02:00
petrbalvin a7a942a8e1 feat: add Statements, the top-level statement iterator
Test / test (push) Successful in 1m36s
Assisted-by: GLM 5.3 Flash
2026-09-22 01:12:04 +02:00
petrbalvin d92bb56853 refactor: rename the encoder layout options
Test / test (push) Successful in 1m35s
Assisted-by: GLM 5.3 Flash
2026-09-22 01:09:00 +02:00
petrbalvin bef1d3fbd9 test: add FuzzMarshal, golden messages, synctest cancellation and cross smoke
Test / test (push) Successful in 1m31s
Assisted-by: GLM 5.3 Flash
2026-09-22 01:03:27 +02:00
petrbalvin 3e741e7790 feat(cmd): add version, plain json, struct inference and schema modes
Test / test (push) Successful in 1m35s
Assisted-by: GLM 5.3 Flash
2026-09-22 00:55:02 +02:00
petrbalvin d18935ebc2 feat: add field comments, local time zone decoding and in-value cancellation
Test / test (push) Successful in 1m32s
Assisted-by: GLM 5.3 Flash
2026-09-22 00:44:23 +02:00
petrbalvin 71bd82a7a5 feat: add ParseAs and NewSchema generics
Test / test (push) Successful in 1m38s
Assisted-by: GLM 5.3 Flash
2026-09-22 00:36:10 +02:00
petrbalvin b02471c09a refactor: unify the error paths in one Path type
Test / test (push) Canceled after 1m31s
Assisted-by: GLM 5.3 Flash
2026-09-22 00:34:48 +02:00
petrbalvin a8a2fcf8c3 feat: add the inline tag and json-style omitempty
Test / test (push) Successful in 1m30s
Assisted-by: GLM 5.3 Flash
2026-09-22 00:28:52 +02:00
petrbalvin 13ac6dd521 test: pin the embedded map and map merge rules
Test / test (push) Successful in 1m34s
Assisted-by: GLM 5.3 Flash
2026-09-22 00:23:41 +02:00
petrbalvin 10391a090f feat: bound the encoder walk and add UnmarshalWithOptions
Test / test (push) Successful in 1m34s
Assisted-by: GLM 5.3 Flash
2026-09-22 00:21:46 +02:00
petrbalvin eaa69dc6f6 feat: add OrderedMap, the table that keeps its key order
Test / test (push) Successful in 1m30s
Assisted-by: GLM 5.3 Flash
2026-09-22 00:15:17 +02:00
petrbalvin aefff80a28 style: gofmt the decode tests
Test / test (push) Successful in 1m29s
Assisted-by: GLM 5.3 Flash
2026-09-22 00:04:49 +02:00
petrbalvin 0ba145ba0c feat: add the required tag option and UnmarshalerContext
Test / test (push) Canceled after 39s
Assisted-by: GLM 5.3 Flash
2026-09-22 00:04:16 +02:00
petrbalvin 2e5dfc54c9 feat: decode arrays into [N]T and add MarshalAppend
Test / test (push) Successful in 2m31s
Assisted-by: GLM 5.3 Flash
2026-09-21 23:58:23 +02:00
petrbalvin 10d49fbe60 feat: carry the byte offset and column in SyntaxError
Test / test (push) Canceled after 2m28s
Assisted-by: GLM 5.3 Flash
2026-09-21 23:55:58 +02:00
petrbalvin 3cc168f39a feat: add ParseFile and Valid
Test / test (push) Successful in 2m33s
Assisted-by: GLM 5.3 Flash
2026-09-21 23:51:58 +02:00
petrbalvin ce0c1ebd9d feat: add Decoder.UseNumber and the Number type
Test / test (push) Successful in 1m52s
Assisted-by: GLM 5.3 Flash
2026-09-21 23:49:39 +02:00
petrbalvin 582222738b perf(encode): emit in place, pool the buffer and cache interface flags
Test / test (push) Successful in 1m29s
2026-09-20 22:15:38 +02:00
petrbalvin 3a4bd74bf0 perf(decode): resolve interfaces through cached type flags 2026-09-20 22:15:23 +02:00
petrbalvin b4d564c682 perf(parse): cut allocations and validate UTF-8 in the scan 2026-09-20 22:15:10 +02:00
petrbalvin adf189aa2c perf(datetime): scan the token shape and render in one pass 2026-09-20 22:15:10 +02:00
petrbalvin 7596754180 test(bench): measure the long document on the typed decode and marshal paths 2026-09-20 22:15:10 +02:00
petrbalvin 72f8b21ac4 feat: parse into a Document that keeps order and comments
Test / test (push) Successful in 1m34s
Assisted-by: DeepSeek V4.1 Flash
2026-09-20 10:40:57 +02:00
petrbalvin a6e3e3fe31 feat: add OffsetDateTime, nesting limits and uniform Marshaler dispatch
Test / test (push) Successful in 2m18s
Assisted-by: DeepSeek V4.1 Flash
2026-09-19 19:36:24 +02:00
petrbalvin b695b69768 docs(api): use an inline table sample that really breaks
Test / test (push) Successful in 1m33s
Assisted-by: DeepSeek V4.1 Flash
2026-09-19 12:18:57 +02:00
petrbalvin 959eaba4b0 feat(encode): add the InlineTables option
Assisted-by: DeepSeek V4.1 Flash
2026-09-19 12:18:30 +02:00
petrbalvin 8f85bb68fa feat(encode): write the TOML 1.1 output form
Assisted-by: DeepSeek V4.1 Flash
2026-09-19 12:18:18 +02:00
petrbalvin bccaf087c8 feat(cmd): add the encoder mode to the toml-test adapter
Test / test (push) Successful in 1m33s
Assisted-by: DeepSeek V4.1 Flash
2026-09-19 11:38:19 +02:00
petrbalvin 0149a5b4d1 docs(encoder): correct the multi-line string claim
Assisted-by: DeepSeek V4.1 Flash
2026-09-19 11:38:17 +02:00
petrbalvin 815141440e feat: honour TextMarshaler and TextUnmarshaler by default
Test / test (push) Successful in 1m35s
Assisted-by: DeepSeek V4.1 Flash
2026-09-19 02:41:09 +02:00
petrbalvin 9023784da3 fix(decode): decode into a defined string or bool type
Assisted-by: DeepSeek V4.1 Flash
2026-09-19 02:40:51 +02:00
petrbalvin 942c4b1489 docs(security): list the newest release as supported
Test / test (push) Successful in 1m33s
Assisted-by: DeepSeek V4.1 Flash
2026-09-19 02:24:24 +02:00
petrbalvin 8f0eae6604 docs: drop the TOML 1.0 compatibility promise
Assisted-by: DeepSeek V4.1 Flash
2026-09-19 02:24:24 +02:00
petrbalvin 1c7329aeea build: move the module path to /v2
Test / test (push) Successful in 1m32s
Assisted-by: GLM 5.3 Flash
2026-09-19 00:14:39 +02:00
petrbalvin ad6c32d0c6 chore: prepare release v1.1.0
Test / test (push) Successful in 1m32s
Release / gates (push) Successful in 1m21s
Release / release (push) Successful in 52s
Assisted-by: GLM 5.3 Flash
2026-09-18 01:10:08 +02:00
petrbalvin 17574a0d15 docs: add the benchmarking document
Test / test (push) Canceled after 1m19s
Assisted-by: GLM 5.3 Flash
2026-09-18 00:20:42 +02:00
petrbalvin 8aa2b1b9c0 docs(api): name the newline a literal string may carry
Assisted-by: GLM 5.3 Flash
2026-09-18 00:20:42 +02:00
petrbalvin 6a043e2824 docs(architecture): scope the no-caching claim to the parser
Assisted-by: GLM 5.3 Flash
2026-09-18 00:20:31 +02:00
petrbalvin 81033bb27c docs(api): document the TOML 1.1 acceptance
Assisted-by: GLM 5.3 Flash
2026-09-18 00:20:31 +02:00
petrbalvin dfd5d240d2 docs(changelog): drop the stale toml-test run mode
Assisted-by: GLM 5.3 Flash
2026-09-18 00:20:31 +02:00
petrbalvin 78946578d1 docs(development): correct the release pipeline gates
Assisted-by: GLM 5.3 Flash
2026-09-18 00:20:31 +02:00
petrbalvin d365729b37 style(changelog): order the development fixed entries by component
Test / test (push) Successful in 1m34s
Assisted-by: GLM 5.3
2026-09-17 23:12:24 +02:00
petrbalvin 53102d70e6 perf(number): skip the rebuild for tokens without underscores
Assisted-by: GLM 5.3
2026-09-17 23:12:00 +02:00
petrbalvin f1a757ec5c perf(parser): scan the input as bytes instead of runes
Assisted-by: GLM 5.3
2026-09-17 23:11:50 +02:00
petrbalvin 3c8ac859c0 fix(decode): report the smallest unknown field deterministically
Assisted-by: GLM 5.3
2026-09-17 23:11:38 +02:00
petrbalvin 4def1b3e8b fix(encode): reject a nil MarshalTOML result
Assisted-by: GLM 5.3
2026-09-17 23:11:10 +02:00
petrbalvin d5327568fb fix(encode): keep a []any of tables in the value-array form
Assisted-by: GLM 5.3
2026-09-17 23:10:35 +02:00
petrbalvin c485aab227 fix(decode): overflow-check uint and float32 destinations
Assisted-by: GLM 5.3
2026-09-17 23:10:24 +02:00
petrbalvin 30b28fe7fc fix(encode): emit one key when two fields resolve to one name
Assisted-by: GLM 5.3
2026-09-17 23:08:42 +02:00
petrbalvin aaea68efc9 perf(decode): cache struct schemas per type
Assisted-by: GLM 5.3
2026-09-17 23:08:14 +02:00
petrbalvin a8d69d90d5 fix(decode): terminate the schema walk on a self-embedded pointer struct
Assisted-by: GLM 5.3
2026-09-17 23:07:53 +02:00
petrbalvin bb238c98c3 fix(decode): let the later field win an equal-depth name clash
Assisted-by: GLM 5.3
2026-09-17 23:07:27 +02:00
petrbalvin 54c6032a9a fix(encode): propagate invalid UTF-8 key errors from headers and inline tables
Assisted-by: GLM 5.3
2026-09-17 23:06:59 +02:00
petrbalvin ec0d7a0023 fix(encode): fall back from the literal multiline form when unsafe
Assisted-by: GLM 5.3
2026-09-17 23:06:25 +02:00
petrbalvin feef4fe9ea style(encode): reword the negative-zero rationale comments
Assisted-by: GLM 5.3
2026-09-17 23:05:41 +02:00
petrbalvin 3c1f65038b test(number): cover zero-prefixable exponent digits
Assisted-by: GLM 5.3
2026-09-17 23:05:27 +02:00
petrbalvin 830f840f44 fix(parser): reset dotted-key and array records per array-of-tables element
Assisted-by: GLM 5.3
2026-09-17 23:05:06 +02:00
petrbalvin 696f117c22 fix(parser): reject an array-of-tables header extending a frozen inline table
Assisted-by: GLM 5.3
2026-09-17 23:04:49 +02:00
petrbalvin d2fc31d260 feat: support TOML 1.1
Test / test (push) Successful in 1m32s
Assisted-by: GLM 5.3 Flash
2026-09-17 22:06:26 +02:00
petrbalvin 18f1cd51e9 build: upgrade the compliance suite to toml-test v2.2.0
Test / test (push) Successful in 1m42s
Assisted-by: GLM 5.3 Flash
2026-09-17 21:30:41 +02:00
petrbalvin 3cd538fad6 fix: reject an out-of-range date-time offset
Assisted-by: GLM 5.3 Flash
2026-09-17 21:30:34 +02:00
petrbalvin e19a6f35f1 fix: reject a float exponent without digits
Assisted-by: GLM 5.3 Flash
2026-09-17 21:29:07 +02:00
petrbalvin 5a270d0879 feat: add the -validate mode to interpres-decode
Assisted-by: GLM 5.3 Flash
2026-09-17 21:23:29 +02:00
petrbalvin 3f41266710 feat: typed decode and encode errors with the key path
Assisted-by: GLM 5.3 Flash
2026-09-17 21:20:47 +02:00
petrbalvin 1e3198c8b6 docs: add the contributor terms with the CLA
Test / test (push) Successful in 1m58s
Assisted-by: GLM 5.3 Flash
2026-09-17 20:27:13 +02:00
petrbalvin cdb42de561 ci: record the verified cancel-in-progress behaviour
Test / test (push) Successful in 1m24s
Assisted-by: GLM 5.3 Flash
2026-09-17 20:16:49 +02:00
petrbalvin 0f6d81fe3e ci: second trigger of the cancel-in-progress experiment
Test / test (push) Successful in 1m32s
Assisted-by: GLM 5.3 Flash
2026-09-17 20:12:02 +02:00
petrbalvin 274b8a488c ci: drive the cancel-in-progress experiment
Test / test (push) Canceled after 0s
Assisted-by: GLM 5.3 Flash
2026-09-17 20:12:00 +02:00
petrbalvin b061c97a81 ci: experiment with cancel-in-progress on the test pipeline
Test / test (push) Successful in 1m33s
Assisted-by: GLM 5.3 Flash
2026-09-17 20:08:37 +02:00
petrbalvin fc50e3c49a fix: decode untagged embedded structs and maps inline
Test / test (push) Successful in 1m26s
Assisted-by: GLM 5.3 Flash
2026-09-17 20:05:50 +02:00
petrbalvin 93c36cf376 feat: honour the omitzero and omitempty tag options on encode
Assisted-by: GLM 5.3 Flash
2026-09-17 19:57:23 +02:00
petrbalvin 58e7dfb1d0 test: add parse, marshal and decode benchmarks
Assisted-by: GLM 5.3 Flash
2026-09-17 19:54:27 +02:00
petrbalvin 510cfb5182 test: add the FuzzParse fuzz target
Assisted-by: GLM 5.3 Flash
2026-09-17 19:52:45 +02:00
petrbalvin 3ac0b1e301 fix: encode mixed arrays with inline table elements
Assisted-by: GLM 5.3 Flash
2026-09-17 19:49:50 +02:00
petrbalvin 2737a5ac87 build: bump the go directive to 1.27.1
Assisted-by: GLM 5.3 Flash
2026-09-17 19:41:22 +02:00
petrbalvin 744c0eb58f chore: prepare release v1.0.0
Test / test (push) Successful in 1m27s
Release / gates (push) Successful in 1m19s
Release / release (push) Successful in 44s
Assisted-by: GLM 5.3 Flash
2026-08-20 08:30:00 +02:00
petrbalvin d12da6181d docs: document set and changelog
Assisted-by: GLM 5.3 Flash
2026-08-19 18:44:00 +02:00
petrbalvin 8266dd6450 ci: hand-written test, race and release pipelines
Assisted-by: GLM 5.3 Flash
2026-08-19 16:08:00 +02:00
petrbalvin ceccb754fe build: canonical justfile
Assisted-by: GLM 5.3 Flash
2026-08-19 14:31:00 +02:00
petrbalvin 8bf44f0e34 feat: usage example
Assisted-by: GLM 5.3 Flash
2026-08-19 13:05:00 +02:00
petrbalvin 1cf99ab7a4 feat: toml-test adapter command
Assisted-by: GLM 5.3 Flash
2026-08-19 11:23:00 +02:00
petrbalvin c4ed84282c feat: TOML 1.0 parser and encoder
Assisted-by: GLM 5.3 Flash
2026-08-19 09:47:00 +02:00
petrbalvin 5354dd034f chore: initialise repository
Assisted-by: GLM 5.3 Flash
2026-08-19 08:12:00 +02:00