Commit Graph

600 Commits

Author SHA1 Message Date
Tony Garnock-Jones 83d15a838e Remove mostly-useless Domain methods 2021-07-03 23:10:43 +02:00
Tony Garnock-Jones 0fb1ef4efd Repair error in schema include 2021-07-03 16:27:50 +02:00
Tony Garnock-Jones c04447d62a Fixes & tweaks wrt Domain/Embedded/Embeddable 2021-07-03 09:00:05 +02:00
Tony Garnock-Jones c7b252ca9d More TryFrom<&SignedInteger> implementations 2021-07-03 08:59:22 +02:00
Tony Garnock-Jones 6143ddc93d NestedValue new() method for easy wrapping 2021-07-03 08:59:03 +02:00
Tony Garnock-Jones c70035b044 Avoid name clash 2021-07-02 16:24:16 +02:00
Tony Garnock-Jones 297d1d39eb Domain -> Embedded/Embeddable 2021-07-02 08:00:37 +02:00
Tony Garnock-Jones 8b7baec26b PreDomain 2021-07-02 07:49:13 +02:00
Tony Garnock-Jones 23943f8b14 ModuleContextMode::TargetIOValue, ModuleContextMode::TargetAny 2021-07-02 07:48:52 +02:00
Tony Garnock-Jones 8cafcbcaf1 Bump rust versions for release 2021-06-30 16:19:27 +02:00
Tony Garnock-Jones 70990d2371 Better names for literal constants 2021-06-30 16:07:49 +02:00
Tony Garnock-Jones 7c4cf38110 snake_case for module names 2021-06-30 15:55:42 +02:00
Tony Garnock-Jones 569563a564 Better error handling; use domains correctly 2021-06-30 15:50:50 +02:00
Tony Garnock-Jones aea230b056 Switch back to parsing/unparsing from IOValue 2021-06-30 15:18:20 +02:00
Tony Garnock-Jones 00759673ce Arc at ref boundaries 2021-06-30 15:06:28 +02:00
Tony Garnock-Jones 5b9c4d29f6 impl Domain for Arc<D: Domain> 2021-06-30 15:05:57 +02:00
Tony Garnock-Jones 17d8d076ec make test target 2021-06-30 15:05:44 +02:00
Tony Garnock-Jones e882d5a4df Aftershocks of Float/Double changes 2021-06-30 10:14:29 +02:00
Tony Garnock-Jones fc8709706c Cleanups; make as_float etc return Float, add as_f32 etc 2021-06-30 10:10:38 +02:00
Tony Garnock-Jones 3156180601 IOValue -> _Any = ArcValue<_Ptr> 2021-06-30 09:53:32 +02:00
Tony Garnock-Jones f1d403a6a7 Fallible from_preserves 2021-06-30 09:52:16 +02:00
Tony Garnock-Jones d69787e5ee Module aliases and embedded pointer types 2021-06-29 23:19:22 +02:00
Tony Garnock-Jones c3bc678a46 Better compiler API 2021-06-29 22:32:35 +02:00
Tony Garnock-Jones dd9e190bed More metadata 2021-06-29 20:31:28 +02:00
Tony Garnock-Jones 01e8e2c279 Include both a path and a version 2021-06-29 20:30:21 +02:00
Tony Garnock-Jones e4392ea2d5 Bump rust preserves version 2021-06-29 20:27:11 +02:00
Tony Garnock-Jones aa1c983acc Unparsers 2021-06-29 16:54:29 +02:00
Tony Garnock-Jones 5c2d12971d Better idioms 2021-06-28 22:38:30 +02:00
Tony Garnock-Jones 9c4be54be1 Bootstrap Rust preserves-schema 2021-06-28 22:25:41 +02:00
Tony Garnock-Jones 7546ba29ad Avoid quite a bit of boxing 2021-06-28 17:26:41 +02:00
Tony Garnock-Jones c7dbbdc178 Small fixes 2021-06-28 17:08:44 +02:00
Tony Garnock-Jones 4144a90b9d Initial commit (several days' worth) 2021-06-28 16:35:45 +02:00
Tony Garnock-Jones 60d1be41a3 Rename NamedSimplePattern_ -> Binding 2021-06-25 10:25:26 +02:00
Tony Garnock-Jones fdb43f6292 Constrain names/identifiers in schemas to be lowest-common-denominator. 2021-06-25 09:45:07 +02:00
Tony Garnock-Jones da513a249e Allow void to be `->preserve`able 2021-06-17 15:26:43 +02:00
Tony Garnock-Jones f808e37e89 Fix very stupid mistake in order.rkt 2021-06-16 21:36:09 +02:00
Tony Garnock-Jones f12343e723 Add missing *->preserve coercions during unparsing 2021-06-10 10:01:04 +02:00
Tony Garnock-Jones 0d4d1e738c Coerce integers to floats/doubles during unparse 2021-06-09 20:02:06 +02:00
Tony Garnock-Jones feb6361029 I forgot embedded! 2021-06-08 16:15:53 +02:00
Tony Garnock-Jones 27002dfe7f Always use wrapper struct 2021-06-08 15:50:29 +02:00
Tony Garnock-Jones e5b6c46169 Time reader self-test 2021-06-08 15:34:33 +02:00
Tony Garnock-Jones 6cecf64df5 Move toward being user-facing rather than plugin-facing 2021-06-08 15:34:25 +02:00
Tony Garnock-Jones 7acf7c5b40 Generic-method based unparsing; prelude to generic pattern-formation 2021-06-08 15:26:32 +02:00
Tony Garnock-Jones 0bcb4e64ec Add struct ty-field for better structure in ty-records 2021-06-08 09:56:04 +02:00
Tony Garnock-Jones 30bcc1a50b Fix embedded (un)parsing to rely on the reader 2021-06-08 09:27:03 +02:00
Tony Garnock-Jones a4d61017d8 Repair error wrt `float` struct test 2021-06-08 09:26:35 +02:00
Tony Garnock-Jones ade9b0a0f1 map-embeddeds 2021-06-08 09:26:10 +02:00
Tony Garnock-Jones f93d329f48 Small optimization 2021-06-08 09:25:52 +02:00
Tony Garnock-Jones c05180c492 Some tool docs; improve help message of preserves-tool 2021-06-04 17:47:16 +02:00
Tony Garnock-Jones 139f4ff08b Accept parameters in #lang preserves-schema lines 2021-06-03 23:23:22 +02:00
Tony Garnock-Jones 53bd5a1a7e Escape schema names with ? instead of $ 2021-06-02 12:35:56 +02:00
Tony Garnock-Jones b968f77ff6 Provide fold-Schema-definitions and map-Schema-definitions 2021-06-02 12:35:33 +02:00
Tony Garnock-Jones bd68786f1c Schema compiler plugins 2021-06-02 06:56:44 +02:00
Tony Garnock-Jones 64696ac184 Publish
- @preserves/core@0.17.0
 - @preserves/schema@0.16.0
2021-06-01 16:54:23 +02:00
Tony Garnock-Jones 7683a64a5b Repair Racket schema reader 2021-06-01 16:53:21 +02:00
Tony Garnock-Jones 498c63ef67 Repair embedded reading; and preserve annotations in generic embedded values 2021-06-01 16:46:23 +02:00
Tony Garnock-Jones 9014a0ffb8 Publish
- @preserves/schema@0.15.0
2021-06-01 16:10:51 +02:00
Tony Garnock-Jones 8d96743d53 Redo schema embedded value patterns to use embedded syntax and an interface schema 2021-06-01 16:10:04 +02:00
Tony Garnock-Jones b23acdaf5a Default to text output from preserves-tool 2021-06-01 15:37:45 +02:00
Tony Garnock-Jones 947b816a57 Improve error-handling in Racket schema reader 2021-05-28 20:06:46 +02:00
Tony Garnock-Jones b69c3a0894 Avoid name clashes with :parse-embedded and :embedded->preserves 2021-05-28 10:33:28 +02:00
Tony Garnock-Jones d7bf235813 Avoid use of void so much 2021-05-27 09:54:11 +02:00
Tony Garnock-Jones ab12c6535f Simpler embedded parsing/unparsing 2021-05-27 09:53:55 +02:00
Tony Garnock-Jones 534018e3a4 batch-compile 2021-05-27 09:52:58 +02:00
Tony Garnock-Jones 264c4b9d2e Repair integer parsing 2021-05-27 00:28:42 +02:00
Tony Garnock-Jones 87e816306d Better import failure error reporting 2021-05-26 23:27:55 +02:00
Tony Garnock-Jones 5470497aa2 Update gen/schema.rkt 2021-05-26 23:16:49 +02:00
Tony Garnock-Jones f90544d807 Code generator tool; handle module references and embeddeds 2021-05-26 23:15:49 +02:00
Tony Garnock-Jones cb88c587b6 Include a copy of samples.pr so that tests run OK on the buildserver 2021-05-26 21:11:45 +02:00
Tony Garnock-Jones e6efd03be7 Introduce explicit embedded wrapper 2021-05-26 21:09:06 +02:00
Tony Garnock-Jones 90ce0a544d The Racket preserves package needs a local copy of schema.prs for the package-builder to work. Use a git hook to keep it in sync with the master copy 2021-05-26 14:27:03 +02:00
Tony Garnock-Jones 7ab12108e4 Inline reader module; add port->preserves 2021-05-26 13:56:37 +02:00
Tony Garnock-Jones e4f7219dc6 Publish
- @preserves/schema@0.14.1
2021-05-25 20:15:18 +02:00
Tony Garnock-Jones 98e2511fe1 #lang preserves-schema 2021-05-25 20:14:10 +02:00
Tony Garnock-Jones 460529e1c7 Clean up language wrt invertibility/"bijection" 2021-05-25 20:13:02 +02:00
Tony Garnock-Jones 52bc77c9d7 Publish
- @preserves/schema@0.14.0
2021-05-25 11:08:27 +02:00
Tony Garnock-Jones 49efc76580 Racket Preserves Schema reader implementation 2021-05-25 11:07:37 +02:00
Tony Garnock-Jones a24a5b19f5 Regenerate metaschema 2021-05-25 11:06:40 +02:00
Tony Garnock-Jones eeb84ad669 Sort emitted entries; add throwing parser variant 2021-05-25 11:06:30 +02:00
Tony Garnock-Jones 6c9071fd88 Optionally omit commas when writing preserves 2021-05-25 11:05:16 +02:00
Tony Garnock-Jones 8b2aa0fb87 preserve=? 2021-05-25 11:05:03 +02:00
Tony Garnock-Jones 5c644624c4 detect-preserve-syntax, file->preserves 2021-05-25 11:04:51 +02:00
Tony Garnock-Jones 163e338ce5 Name is already always supplied, no need to add it 2021-05-25 11:04:29 +02:00
Tony Garnock-Jones 4ed8fd2c92 Add "annotations" procedure 2021-05-25 11:02:36 +02:00
Tony Garnock-Jones 669d1b480d Name is already always supplied, no need to add it 2021-05-25 11:01:55 +02:00
Tony Garnock-Jones 7d06c7dce0 Repair dict "named" generation 2021-05-25 10:49:35 +02:00
Tony Garnock-Jones bdd699ae9f Deterministic hash ordering for Racket CompoundPattern-dict 2021-05-24 17:46:50 +02:00
Tony Garnock-Jones 33a80533fa Checker for Racket 2021-05-24 12:47:44 +02:00
Tony Garnock-Jones 1ca796e6aa Publish
- @preserves/schema@0.13.0
2021-05-24 12:05:44 +02:00
Tony Garnock-Jones 4914c8cd68 Move type/gentype back into compiler where it belongs 2021-05-24 12:05:02 +02:00
Tony Garnock-Jones 46d76dfca7 Redo bijection checking without using gentype 2021-05-24 12:03:04 +02:00
Tony Garnock-Jones 0db223ede8 More tests, and variant label duplicate check 2021-05-24 11:53:25 +02:00
Tony Garnock-Jones 52be118dc7 A few more tests 2021-05-24 11:32:29 +02:00
Tony Garnock-Jones a1fdddcf7b Simple tests; more exports 2021-05-24 11:27:46 +02:00
Tony Garnock-Jones e594d22d09 Publish
- @preserves/core@0.16.0
 - @preserves/schema@0.12.0
2021-05-24 10:40:50 +02:00
Tony Garnock-Jones aaee62044c Lerna for convenient package collection scripting 2021-05-24 10:39:23 +02:00
Tony Garnock-Jones 9bdfc4c3ab Split compute from report 2021-05-24 10:16:00 +02:00
Tony Garnock-Jones c4bfc0eefc Follow improvements through Racket schema impl 2021-05-24 10:10:13 +02:00
Tony Garnock-Jones 2559a4713f Much improved refactoring/repair of metaschema 2021-05-24 00:15:31 +02:00
Tony Garnock-Jones 1d6956fa55 Move gen-schema.rkt to gen/schema.rkt 2021-05-22 15:52:12 +02:00
Tony Garnock-Jones 9e6743abdc Autogenerate predicate for unions 2021-05-22 15:50:54 +02:00
Tony Garnock-Jones 43b776eb7f Switch to manipulating parsed form of metaschema 2021-05-22 15:47:13 +02:00
Tony Garnock-Jones ebab3fafc5 gen-schema.rkt (initial rendering) 2021-05-22 15:43:29 +02:00
Tony Garnock-Jones 49cba14b4f Initial work on preserves-schema for Racket 2021-05-21 21:44:05 +02:00
Tony Garnock-Jones 1654ad4c80 Repair error reporting 2021-05-21 17:33:29 +02:00
Tony Garnock-Jones 2ddedc7673 v0.11.2 2021-05-21 17:28:48 +02:00
Tony Garnock-Jones dbd6c3cf53 Repair checker 2021-05-21 17:28:18 +02:00
Tony Garnock-Jones 2bde06f509 Add omitted checkBinding call 2021-05-21 16:14:58 +02:00
Tony Garnock-Jones 0f1ea4aa20 Further simplification 2021-05-21 16:01:04 +02:00
Tony Garnock-Jones 46ab6d90ec v0.11.1 2021-05-21 15:56:21 +02:00
Tony Garnock-Jones b5b4effeac Simplify unconverter generation even further 2021-05-21 15:56:01 +02:00
Tony Garnock-Jones 20b676df27 Move insufficient-information checking to read-time 2021-05-21 15:49:06 +02:00
Tony Garnock-Jones ecdb314366 Require at least two branches in "&" and "/" 2021-05-21 11:20:25 +02:00
Tony Garnock-Jones 7253d1507e v0.9.0 2021-05-20 22:36:07 +02:00
Tony Garnock-Jones 10380e451a Simplify schemas by allowing at most one of "&" or "/" in a definition 2021-05-20 22:34:20 +02:00
Tony Garnock-Jones 436b14e2fe v0.8.1 2021-05-17 15:13:08 +02:00
Tony Garnock-Jones cefc029f70 Repair egregious error in schema compiler 2021-05-17 15:12:39 +02:00
Tony Garnock-Jones e4a2503899 The Great Renaming: Pointer -> Embedded 2021-05-17 14:54:06 +02:00
Tony Garnock-Jones 6fc41ead6f v0.7.0 2021-04-25 10:44:36 +02:00
Tony Garnock-Jones 8e068fbdbf v0.14.0 2021-04-25 10:43:52 +02:00
Tony Garnock-Jones 8442718f96 Fix module cycles (largely by splitting PointerType in two) 2021-04-25 10:42:21 +02:00
Tony Garnock-Jones 854a2bc41c v0.6.0 2021-04-25 00:17:57 +02:00
Tony Garnock-Jones 638f8e026e v0.13.0 2021-04-25 00:16:38 +02:00
Tony Garnock-Jones 2d0e6255bd Embed pointer values into Values 2021-04-25 00:09:33 +02:00
Tony Garnock-Jones 58d2bf6f3a Make undeclared pointer type `any` instead of `never`, and take advantage of new explicit pointer wrappers 2021-04-24 23:49:37 +02:00
Tony Garnock-Jones e5965fde83 Rename DefaultPointer -> GenericPointer 2021-04-24 22:01:16 +02:00
Tony Garnock-Jones 8c783dbc7d Explicit wrapper for Pointers 2021-04-24 21:59:52 +02:00
Tony Garnock-Jones aef970dc2d v0.5.1 2021-04-22 20:55:48 +02:00
Tony Garnock-Jones 8895d2b6a4 Fix rollup 2021-04-22 20:55:26 +02:00
Tony Garnock-Jones be6537f6d4 v0.5.0 2021-04-22 20:54:51 +02:00
Tony Garnock-Jones c54a17162d Bump dep 2021-04-22 20:54:28 +02:00
Tony Garnock-Jones 63cf5d1cf2 v0.12.0 2021-04-22 20:53:12 +02:00
Tony Garnock-Jones 9f9514a7e6 Handle pointer type nesting properly 2021-04-22 20:51:48 +02:00
Tony Garnock-Jones 825d208198 Introduce Cargo workspace in prep for schema 2021-04-19 22:28:59 +02:00
Tony Garnock-Jones b4d7af4322 v0.4.0 2021-04-01 22:02:46 +02:00
Tony Garnock-Jones e763174846 Bump 2021-04-01 22:02:27 +02:00
Tony Garnock-Jones e1e7904a87 v0.11.0 2021-04-01 22:02:08 +02:00
Tony Garnock-Jones 545e1bb6de Switch from yargs to commander 2021-04-01 21:57:49 +02:00
Tony Garnock-Jones 3ad56a5275 Enhance preserves-schemac to emit bundles 2021-04-01 21:12:11 +02:00
Tony Garnock-Jones 55fab35073 Schema Bundles 2021-04-01 20:31:08 +02:00
Tony Garnock-Jones 121bcc7a53 Refactor schema schema 2021-03-23 19:40:06 +01:00
Tony Garnock-Jones 94f6959ac8 Named instead of positional ctor args 2021-03-23 16:59:44 +01:00
Tony Garnock-Jones d64bb82c22 Fix preserves-schemac 2021-03-23 16:37:35 +01:00
Tony Garnock-Jones c23cbcc60c Fix error reporting; handle unit like record 2021-03-23 12:16:16 +01:00
Tony Garnock-Jones e187fb83b4 Regenerate to avoid warnings 2021-03-23 12:09:16 +01:00
Tony Garnock-Jones 4434f712b6 Fix fromPtr; avoid warnings 2021-03-23 12:08:58 +01:00
Tony Garnock-Jones d91924c72b Regenerate 2021-03-23 11:37:22 +01:00
Tony Garnock-Jones 7d8453a806 Unconverter 2021-03-23 11:36:55 +01:00
Tony Garnock-Jones 1d73289345 First attempt at a merge() utility 2021-03-23 11:36:11 +01:00
Tony Garnock-Jones 4ded3a484c Excise old decoder 2021-03-22 14:43:40 +01:00
Tony Garnock-Jones 87dda48083 Use $ instead of _ in tokens 2021-03-22 12:29:27 +01:00
Tony Garnock-Jones 4814790d8e Cut over to new representation 2021-03-22 12:13:34 +01:00
Tony Garnock-Jones 0304c2631b genctor.ts 2021-03-21 22:02:34 +01:00
Tony Garnock-Jones 889d38bbb8 Fix types. 2021-03-19 23:42:43 +01:00
Tony Garnock-Jones 0970898065 Prepare for removing base environment: special support for any 2021-03-19 20:54:05 +01:00
Tony Garnock-Jones 1c07573178 Refactor type.ts 2021-03-18 22:51:00 +01:00
Tony Garnock-Jones c8b752a73b Refactor withCapture 2021-03-18 22:41:27 +01:00
Tony Garnock-Jones d372977023 Add Capture support; repair (redo) converter accordingly 2021-03-18 22:33:37 +01:00
Tony Garnock-Jones 084f54f869 Work on converter; split up compiler 2021-03-18 14:02:47 +01:00
Tony Garnock-Jones 98558b81f0 Full stack traces 2021-03-18 11:14:31 +01:00
Tony Garnock-Jones 5d2ee85b36 More general variant 2021-03-17 20:23:55 +01:00
Tony Garnock-Jones 3463cd4a65 Further schema schema fixes 2021-03-17 20:01:26 +01:00
Tony Garnock-Jones 5f71239130 Further refine schema schema 2021-03-17 19:17:19 +01:00
Tony Garnock-Jones 376e83acd0 Allow naming of `and` branches 2021-03-17 16:25:29 +01:00
Tony Garnock-Jones 306c7c2cae Support writing to stdout 2021-03-17 16:14:45 +01:00
Tony Garnock-Jones bacf310648 Refactor compiler before new approach 2021-03-17 15:59:46 +01:00
Tony Garnock-Jones 98346c61d5 More preparation for alternate compilation approach 2021-03-17 14:36:44 +01:00
Tony Garnock-Jones ca42ffe832 isCompound 2021-03-17 14:24:41 +01:00
Tony Garnock-Jones 05c7343983 Rename and export asLatin1 2021-03-17 12:56:49 +01:00
Tony Garnock-Jones e6f99ae2e1 Prepare for alternative compiler output 2021-03-17 12:38:11 +01:00
Tony Garnock-Jones b9019d03f1 Tighten schema definition to permit simpler codegen 2021-03-17 12:20:50 +01:00
Tony Garnock-Jones 178f528bf0 Rearrange Dictionary type parameters for improved Record type inference 2021-03-17 12:20:06 +01:00
Tony Garnock-Jones 8f2da8f8db A more... pragmatic DefaultPointer 2021-03-17 10:21:48 +01:00
Tony Garnock-Jones 12121128a6 Remove unused interpreter.ts 2021-03-17 10:00:06 +01:00
Tony Garnock-Jones 425e7dd5cb Rename samples.txt -> samples.pr 2021-03-17 09:08:07 +01:00
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