Commit Graph

375 Commits

Author SHA1 Message Date
Tony Garnock-Jones 434279ab66 For some reason, leap doesn't work with the /dev/stdout version 2021-03-16 21:30:44 +01:00
Tony Garnock-Jones 7072f19407 Small updates 2021-03-16 14:36:46 +01:00
Tony Garnock-Jones adfb1822ac Simpler schema-schema 2021-03-14 22:59:53 +01:00
Tony Garnock-Jones 14be044092 preserves-schemac 2021-03-14 22:53:13 +01:00
Tony Garnock-Jones 5393308be4 Avoid unnecessary use of asLiteral 2021-03-14 21:13:40 +01:00
Tony Garnock-Jones 5afb1469f3 Faster generated decoders 2021-03-14 21:10:47 +01:00
Tony Garnock-Jones e078a71b30 Bump version 2021-03-12 20:52:52 +01:00
Tony Garnock-Jones 47da2e5308 v0.3.1 2021-03-12 20:46:43 +01:00
Tony Garnock-Jones 5e3ae0c18b Argh, fix dep version 2021-03-12 20:45:37 +01:00
Tony Garnock-Jones d6d4e830a3 v0.3.0 2021-03-12 20:44:44 +01:00
Tony Garnock-Jones 2311dbd245 v0.10.0 2021-03-12 20:44:03 +01:00
Tony Garnock-Jones d502249c53 Repair record decoders 2021-03-12 20:42:53 +01:00
Tony Garnock-Jones 1cc0325007 Different approach to pointer codec; support custom schema-driven decode 2021-03-12 20:41:35 +01:00
Tony Garnock-Jones 4ee9f99529 Inline single-use function 2021-03-12 11:33:49 +01:00
Tony Garnock-Jones 942fb79a2e Regenerate schema 2021-03-12 11:14:39 +01:00
Tony Garnock-Jones ce947c109a Cosmetic: rename function, rearrange functions 2021-03-12 11:11:00 +01:00
Tony Garnock-Jones 2b9eddfc79 Rename value::value to value::repr, the final clippyism 2021-03-12 11:04:23 +01:00
Tony Garnock-Jones d811032ac7 Fix up almost all reported clippyisms 2021-03-12 10:59:28 +01:00
Tony Garnock-Jones bddb111f87 v0.2.1 2021-03-11 23:11:47 +01:00
Tony Garnock-Jones a1db64422c v0.9.1 2021-03-11 23:11:25 +01:00
Tony Garnock-Jones cfa0a9caa3 .npmignore is required to not omit crucial build products 2021-03-11 23:11:06 +01:00
Tony Garnock-Jones fc88612414 v0.2.0 2021-03-11 23:02:35 +01:00
Tony Garnock-Jones c75aaf4b18 Includes in schema compiler 2021-03-11 23:02:18 +01:00
Tony Garnock-Jones 55e4222d68 v0.1.1 2021-03-11 19:14:57 +01:00
Tony Garnock-Jones 9a46a22fb6 Oops - wrong dependency version 2021-03-11 19:14:48 +01:00
Tony Garnock-Jones 86fc0acc92 v0.1.0 2021-03-11 19:12:27 +01:00
Tony Garnock-Jones f531eb347d v0.9.0 2021-03-11 19:11:46 +01:00
Tony Garnock-Jones 8ec5946696 yarnrc 2021-03-11 19:11:36 +01:00
Tony Garnock-Jones d9726a6878 Fix up rollup config for CLI compiler 2021-03-11 19:05:54 +01:00
Tony Garnock-Jones 8d7e7c6d95 Pointers; improved diagnostics 2021-03-11 17:59:40 +01:00
Tony Garnock-Jones c09032f609 Regenerate schema 2021-03-11 14:43:58 +01:00
Tony Garnock-Jones c8f564aea4 Position tracking in Reader; major driver improvements in schema compiler 2021-03-11 14:43:06 +01:00
Tony Garnock-Jones 94f6f9af9d Fix rollup config for CLI tool 2021-03-11 11:01:01 +01:00
Tony Garnock-Jones d932431d83 Improve compiler driver 2021-03-11 10:56:49 +01:00
Tony Garnock-Jones ba2c7e9978 Generate as*() alongside is*() 2021-03-11 09:25:17 +01:00
Tony Garnock-Jones 87bb930020 Fix schema package.json for publish 2021-03-10 23:32:14 +01:00
Tony Garnock-Jones 929f916d1d Bump typescript version 2021-03-10 23:16:05 +01:00
Tony Garnock-Jones 932818145b Bootstrap schema schema 2021-03-10 23:15:53 +01:00
Tony Garnock-Jones 7c587f03d3 Allow tide to find the appropriate tsserver 2021-03-10 23:14:54 +01:00
Tony Garnock-Jones 036d42a73a Default to pointer type being never instead of object 2021-03-10 23:14:26 +01:00
Tony Garnock-Jones 754306aca3 Rearrange into two packages, using yarn workspaces 2021-03-10 19:24:20 +01:00
Tony Garnock-Jones 8187337187 Prepare for command-line schem compiler tool 2021-03-09 19:29:31 +01:00
Tony Garnock-Jones 447380218e More 2021-03-09 16:45:57 +01:00
Tony Garnock-Jones 62bab41bed First steps toward schema 2021-03-09 15:59:40 +01:00
Tony Garnock-Jones c27aa7579e Repair detection of "easily-printable" symbols 2021-03-08 15:31:50 +01:00
Tony Garnock-Jones dc96f74075 Text syntax reader in Javascript implementation 2021-03-05 21:16:14 +01:00
Tony Garnock-Jones a05bf0cb7a Fix canonical encoding of Set and Dictionary 2021-03-05 21:14:39 +01:00
Tony Garnock-Jones 4022b76650 Move text stuff to text.ts 2021-03-04 22:42:40 +01:00
Tony Garnock-Jones 5412f8b9d0 Optimizations for reuse of a Decoder instance 2021-03-04 11:26:11 +01:00
Tony Garnock-Jones 550224e0b1 FlexMap getOrSet and getAndDelete 2021-03-03 19:14:58 +01:00
Tony Garnock-Jones eaff7b86d8 Repair remaining cyclic dependency 2021-03-02 22:54:58 +01:00
Tony Garnock-Jones 6d2120989b Fix *almost* all cyclic dependencies in js impl 2021-03-02 22:43:10 +01:00
Tony Garnock-Jones c8c027f762 Repair javascript integer codec 2021-03-02 16:38:54 +01:00
Tony Garnock-Jones 75790f237b Bump version and deps 2021-03-02 13:42:51 +01:00
Tony Garnock-Jones 1268c4f9bd Inline definition of Record<> to uncollapse Value<T> 2021-03-01 09:19:32 +01:00
Tony Garnock-Jones 481f866ada Improvements to Typed Records 2021-02-25 23:16:05 +01:00
Tony Garnock-Jones 993689356b Typed Records 2021-02-25 22:19:35 +01:00
Tony Garnock-Jones 074fc5db98 Loosen type of constructor, to allow patterns as well as values 2021-02-25 11:33:11 +01:00
Tony Garnock-Jones c46566e5a0 mapPointers can yield non-pointers 2021-02-24 20:40:49 +01:00
Tony Garnock-Jones 055b367764 unannotate 2021-02-24 20:40:39 +01:00
Tony Garnock-Jones a19a9d50c6 Tighter types now fromJS is explicit 2021-02-22 20:03:09 +01:00
Tony Garnock-Jones 4353d5280e Be explicit about conversions fromJS() 2021-02-22 20:00:15 +01:00
Tony Garnock-Jones a69297c3ba Folds 2021-02-17 20:55:22 +01:00
Tony Garnock-Jones 407e8778a1 Split out values.ts; this makes circular dependencies worse, so I will likely pull it all back together again soon 2021-02-17 16:52:01 +01:00
Tony Garnock-Jones 83b09d9406 Improve ergonomics of Double/Single and floatValue 2021-02-17 15:34:31 +01:00
Tony Garnock-Jones 95c04bd5d5 Float.unwrap 2021-01-29 16:06:00 +01:00
Tony Garnock-Jones 1743756097 Fix parameter ordering and defaults 2021-01-29 15:35:07 +01:00
Tony Garnock-Jones 013c5f4dae Bump Rust version 2021-01-29 13:53:49 +01:00
Tony Garnock-Jones 6fd06cec98 Require that domain toing and froing be total 2021-01-29 13:42:17 +01:00
Tony Garnock-Jones 532e811894 Introduce pointers 2021-01-29 12:03:28 +01:00
Tony Garnock-Jones 6bf49874b7 Correct testwatch script 2021-01-28 08:59:02 +01:00
Tony Garnock-Jones abca13e260 Idempotent Map/Set extensions 2021-01-23 22:54:28 +01:00
Tony Garnock-Jones 0bb61d260f Adjust packaging 2021-01-23 22:54:28 +01:00
Tony Garnock-Jones a5d4098e29 Strict tsconfig 2021-01-23 22:54:28 +01:00
Tony Garnock-Jones d8a041a647 Reuse buffers during encoding, where safe to do so; in particular, during simple canonicalization 2021-01-23 22:54:28 +01:00
Tony Garnock-Jones 320215dca0 Add missing toString on Preserves Set 2021-01-23 22:54:28 +01:00
Tony Garnock-Jones b4d5334a1a Repair silly mistake 2021-01-23 22:54:28 +01:00
Tony Garnock-Jones 329cee7bd6 Much better duck typing 2021-01-23 22:54:28 +01:00
Tony Garnock-Jones 10351b5369 type: module in package.json 2021-01-23 22:54:28 +01:00
Tony Garnock-Jones 3f62d68bab union, intersect, subtract 2021-01-23 22:54:28 +01:00
Tony Garnock-Jones b0ed7e914b Better collections; package types 2021-01-23 22:54:28 +01:00
Tony Garnock-Jones 55db55b42b Ignore dist/ 2021-01-23 22:54:27 +01:00
Tony Garnock-Jones f7b7f29a3b Load index.js by default 2021-01-23 22:54:27 +01:00
Tony Garnock-Jones 98e981dccf Custom util inspectors for Set and Dictionary too 2021-01-23 22:54:27 +01:00
Tony Garnock-Jones 66cac324e0 Rollup 2021-01-23 22:54:27 +01:00
Tony Garnock-Jones 44f142d86b Update JavaScript implementation and port to TypeScript 2021-01-23 22:54:27 +01:00
Tony Garnock-Jones 2c5ed693f5 Tool works on multiple inputs now 2021-01-23 22:54:27 +01:00
Tony Garnock-Jones a1a604aee8 Update Rust implementation 2021-01-23 22:54:27 +01:00
Tony Garnock-Jones ca2276d268 Update python implementation 2021-01-23 22:54:27 +01:00
Tony Garnock-Jones 8459521db5 No more `StreamingTest`s 2021-01-23 22:54:27 +01:00
Tony Garnock-Jones 749747ca05 Remove #:read-annotations?, to ensure a consistent output format from the reader 2021-01-23 22:54:27 +01:00
Tony Garnock-Jones 77fd8e86bf Ah, of course a 0-byte integer has value 0 2021-01-23 22:54:27 +01:00
Tony Garnock-Jones 85fe7b3b07 Update Racket implementation 2021-01-23 22:54:27 +01:00
Tony Garnock-Jones 137aa308e3 Update mocha dependency 2020-10-26 14:14:54 +01:00
Tony Garnock-Jones 3c059a573c Browser doesn't have util 2020-08-05 12:47:49 +02:00
Tony Garnock-Jones 8d3146cf30 Bump Rust version 2020-07-10 17:01:21 +02:00
Tony Garnock-Jones 7cc7bd783d Adjust internal trait API 2020-07-10 16:59:54 +02:00
Tony Garnock-Jones 9f83756931 Remove decoder/encoder; undoes performance regression 2020-07-08 15:44:06 +02:00
Tony Garnock-Jones 28101cc7d1 Refactor to extract packed format from general traits. Regression in encode performance? 2020-07-08 15:44:06 +02:00
Tony Garnock-Jones 95cdd84db4 Bump rust version 2020-06-17 13:43:11 +02:00
Tony Garnock-Jones 70a305458a Avoid some copying 2020-06-17 11:01:44 +02:00
Tony Garnock-Jones 24afca5d32 Avoid expensive setup 2020-06-17 11:01:31 +02:00
Tony Garnock-Jones b1c7fe8c04 Remove unnecessary Cow 2020-06-17 09:35:09 +02:00
Tony Garnock-Jones 046a2ad999 Better varint reader 2020-06-17 04:11:27 +02:00
Tony Garnock-Jones 6cfb474a6f Avoid running the slow benchmark tests during regular testing 2020-06-17 03:05:32 +02:00
Tony Garnock-Jones 89c3171758 Autodelete benches/testdata.bin 2020-06-17 02:42:44 +02:00
Tony Garnock-Jones fefa2af730 Bump rust version 2020-06-17 02:39:31 +02:00
Tony Garnock-Jones f2910eb8d0 Slim down the common case of no annotations 2020-06-17 02:39:01 +02:00
Tony Garnock-Jones 078e8dd4e8 Benchmark large collection of small items 2020-06-17 02:33:45 +02:00
Tony Garnock-Jones e4e6622074 Switch to iter_with_large_drop 2020-06-17 00:13:56 +02:00
Tony Garnock-Jones 21cc7595ae Benchmark various readers for decoding 2020-06-16 17:57:52 +02:00
Tony Garnock-Jones e01f960ddc Benchmarks and test factorization 2020-06-16 17:46:55 +02:00
Tony Garnock-Jones 275d9e73b1 Bump version 2020-06-15 16:04:41 +02:00
Tony Garnock-Jones bffbeb2f6e Smaller Record; also, use u128/i128 when possible 2020-06-15 16:03:19 +02:00
Tony Garnock-Jones 1f4adc5ba6 Oh cool, is_none() exists 2020-06-15 09:58:49 +02:00
Tony Garnock-Jones 83b7513fae Build all targets 2020-06-15 09:57:56 +02:00
Tony Garnock-Jones b9aba35d39 New release 2020-05-29 11:08:33 +02:00
Tony Garnock-Jones eb088aa491 Experimentation with extensibility, such as it is 2020-05-29 11:08:12 +02:00
Tony Garnock-Jones 22b76cb9b6 Consume all sequence items in direct deserialization, matching deserialization from a Value 2020-05-29 11:07:55 +02:00
Tony Garnock-Jones 65b5399dbe Make CompoundBody consumption past end idempotent 2020-05-29 10:58:40 +02:00
Tony Garnock-Jones d1a5389060 Allow f32 and f64 to deserialize into each other 2020-05-29 10:58:00 +02:00
Tony Garnock-Jones c4f90ef86b Remove placeholders from spec and implementations 5/5
Update Racket implementation: remove placeholders; reject zero-length
streamed binary chunks.
2020-05-28 23:23:19 +02:00
Tony Garnock-Jones 83dce41092 Remove placeholders from spec and implementations 4/5
Update Python implementation: remove placeholders; reject zero-length
streamed binary chunks.
2020-05-28 23:23:19 +02:00
Tony Garnock-Jones 0b0709b615 Remove placeholders from spec and implementations 3/5
Update JS implementation: remove placeholders; reject zero-length
streamed binary chunks.
2020-05-28 23:23:19 +02:00
Tony Garnock-Jones b5f4c3a498 Remove placeholders from spec and implementations 2/5
Enormous refactoring in Rust implementation. Direct deserialization.
Zero-copy deserialization in some cases. Much faster.
2020-05-28 23:23:19 +02:00
Tony Garnock-Jones dfc50fcaee Simplify code (and get back up to speed! ~150kHz) by insisting on IOValue for all codec operations 2020-05-26 11:01:33 +02:00
Tony Garnock-Jones c30154e0c8 Improve (!) safety at the expense of speed: 155kHz -> 115kHz :-/ 2020-05-26 09:08:17 +02:00
Tony Garnock-Jones b122d6e2e0 copy_via able to map domains 2020-05-25 20:11:54 +02:00
Tony Garnock-Jones 2d57d0001b Even more error cleanup 2020-05-25 16:21:18 +02:00
Tony Garnock-Jones 450b73a4d2 More error cleanup 2020-05-25 16:12:41 +02:00
Tony Garnock-Jones 3f5e431717 Clean up error situation 2020-05-25 15:40:01 +02:00
Tony Garnock-Jones 1011818be6 Split out general std::io::Error wrapper 2020-05-25 15:34:17 +02:00
Tony Garnock-Jones 94058b5ec2 Simplify again by moving away from excessive internal buffering 2020-05-25 15:29:54 +02:00
Tony Garnock-Jones f07d2e6a5d Simplify and speed up decoding 2020-05-25 15:00:58 +02:00
Tony Garnock-Jones 6ad1707870 First stab at factoring out Reader trait 2020-05-25 13:42:06 +02:00
Tony Garnock-Jones 92463c37d4 Less ownership in preserves::ser::Serializer 2020-05-24 21:17:41 +02:00
Tony Garnock-Jones fdae09b44c Tweak preserves::ser API 2020-05-24 14:40:36 +02:00
Tony Garnock-Jones 67bf47a5c9 Less safe but drastically more efficient raw-value (de)serialization 2020-05-24 13:47:42 +02:00
Tony Garnock-Jones bddb4331aa Direct serialization 2020-05-23 22:33:02 +02:00
Tony Garnock-Jones d29ec9ffc4 Avoid a few small allocations when decoding 2020-05-22 10:38:34 +02:00
Tony Garnock-Jones 316a772fec Change API: as_record() now takes Option<usize> 2020-05-18 16:42:59 +02:00
Tony Garnock-Jones 2a85e53acc Repair mistaken usage of String instead of Symbol 2020-05-18 16:42:34 +02:00
Tony Garnock-Jones af7c523513 Bump versions 2020-05-13 12:58:47 +02:00
Tony Garnock-Jones 8e0ab95d82 Autodetectability of binary vs text; documented test case schema a little 2020-05-13 12:56:13 +02:00
Tony Garnock-Jones d883ad9a75 Move racket implementation one subdirectory deeper, to allow package name inference to work 2020-04-27 21:07:20 +02:00
Tony Garnock-Jones 340f77cc3c Fix Racket package deps 2020-01-17 14:12:50 +01:00
Tony Garnock-Jones 0832b94ce9 Optionally-canonicalizing binary output. 2019-10-24 14:35:34 +01:00
Tony Garnock-Jones 02c02b641f Bump rust version 2019-10-23 22:59:13 +01:00
Tony Garnock-Jones b1ca95c835 Customizable treatment of Domain during encoding 2019-10-23 22:58:36 +01:00
Tony Garnock-Jones 27fb961653 Allow embedding of domain-specific non-Preserves data within a Preserves Value 2019-10-22 22:36:01 +01:00