Commit Graph

53 Commits

Author SHA1 Message Date
Emery Hemingway 3b9c164737 Add P-Expressions reader 2024-04-26 13:17:09 +02:00
Emery Hemingway 9134fecb36 Replace #! notation with #: 2024-02-08 14:24:01 +00:00
Emery Hemingway c0a8a1a76c Merge doubles into floats 2024-02-08 14:23:47 +00:00
Emery Hemingway ba0857c32b BufferedDecoder: return Option[Value] from decode 2024-01-16 21:01:25 +02:00
Emery Hemingway d2017228fb Embed values for types with {.preservesEmbedded.} 2024-01-08 12:37:03 +02:00
Emery Hemingway 0acd369262 Option support in toPreserves and fromPreserves 2024-01-08 12:36:29 +02:00
Emery Hemingway 25d42f9498 Add toRecord sugar 2024-01-08 12:36:29 +02:00
Emery Hemingway 867d25afee Remodel Preserves[E] into Value
Using a parameterized Preserve[E] type is too much hassle. Replace
with a Value type with an embedded field of "ref RootObj".
2024-01-08 12:36:29 +02:00
Emery Hemingway c2bce1404a Add Atom type
Type for holding constant Preserves values create at compile-time.
This is a prerequisite for making embedded values "ref RootObj".
It is also requesite for making Value a ref object.
2024-01-01 17:32:52 +02:00
Emery Hemingway 60938612c5 Rename schemac compiler to preserves-schemac 2024-01-01 17:32:52 +02:00
Emery Hemingway d75191b480 Cleanup build system 2024-01-01 17:32:52 +02:00
Emery Hemingway cedf25d1c3 Split pkSignedInteger into pkRegister and pkBigInt 2024-01-01 17:32:50 +02:00
Emery Hemingway 37043a03bf Test against upstream samples 2023-12-25 10:08:10 +02:00
Emery Hemingway edece399be Support standard Preserves text encoding as well as JSON 2023-10-21 18:40:14 +01:00
Emery Hemingway a2dc5becc0 Update binary encoding to Preserves-0.990 2023-10-19 18:14:14 +01:00
Emery Hemingway 15390dd48e Suppport preservesTupleTail pragma within objects 2023-09-12 11:35:09 +02:00
Emery Hemingway 52faec6e43 Fix varint encoding and decoding 2023-08-25 19:28:48 +01:00
Emery Hemingway ec77872467 Port preserves_schema_nim to Nim-2.0.0 2023-08-16 08:33:11 +01:00
Emery Hemingway b563de9ac4 Remove threads and gcsafe where parsing is used 2023-08-16 08:33:11 +01:00
Emery Hemingway c500e99b95 Fix some decoder defects 2023-05-20 13:53:21 +01:00
Emery Hemingway adec7fd7ad Rewrite tupfiles 2022-12-11 19:21:17 -06:00
Emery Hemingway d5909e4df0 Schema: a collection of breaking changes
- Process all modules in a bundle simultanously so that it can be
   determined if imported types are recursive or take a parameter
- Different rules for deciding when an object must be a ref
- Use Preserve[void] if there is no EmbededTypeName defined
- Put embeddeded types directly into other types without a
  Preserve[E] container
2022-12-10 13:32:36 -06:00
Emery Hemingway 60c5f03637 Add preservesEmbedded pragma 2022-12-06 22:30:28 -06:00
Emery Hemingway ded072c76c More Tupfiles 2022-12-05 15:56:31 -06:00
Emery Hemingway ee2d379a65 Add Tupfiles for testing modules 2022-12-02 22:17:53 -06:00
Emery Hemingway 11661d453c Replace concat with writeText
Write to a stream rather than concatentate a string.
2022-10-30 17:26:55 -05:00
Emery Hemingway aaf5e7ce39 Remove old imports of parse module 2022-04-25 11:53:17 -05:00
Emery Hemingway 486443a098 Remove submodule 2022-02-19 10:33:16 -06:00
Emery Hemingway 7d8c3b29c2 XML conversion 2021-12-06 23:57:47 +00:00
Emery Hemingway 061898c3c2 Escaping fix in parser 2021-12-04 12:02:15 +00:00
Emery Hemingway 7cc0b050f4 Remove support for integers wider than 64 bits
I believe this was an unecessary compilication and it can be
restored later if necesary.
2021-11-12 12:25:28 +01:00
Emery Hemingway e88c238a74 Schema text parsing 2021-11-11 21:57:04 +01:00
Emery Hemingway cca512c9df mapEmbeds for Preserve[void] to Preserve[E] 2021-10-25 21:36:45 +02:00
Emery Hemingway 5250707f0e Schema: make all Preserves embeddable 2021-10-18 12:12:33 +02:00
Emery Hemingway 99201de724 Schemas: use canonical meta-schema 2021-10-17 13:26:05 +02:00
Emery Hemingway 220577c8a0 New pragmas for toPreserve and fromPreserve 2021-10-17 11:38:45 +02:00
Emery Hemingway 2dd63903f0 Remove records module
Redundant with toPreserve and fromPreserve.
2021-09-25 13:57:58 +02:00
Emery Hemingway 42a9b26458 Embeddable Preserves
Make Preserve a generic type that can embed a native Nim type.
Generate generic implementations from schemas and discard
embeddedType.
2021-09-25 13:47:05 +02:00
Emery Hemingway e6d07ba924 Revert Preserve to a concrete type
A generic type with an embedded type is too much hassle with the
type system. Add an "embedded" flag on "Preserve" to mark if a
value should be considered as embedded.
2021-09-08 11:16:40 +02:00
Emery Hemingway 9ed18c279c Release 1.0.0 2021-09-01 13:32:26 +02:00
Emery Hemingway 91bf449f6b Unlicense 2021-08-31 17:00:00 +02:00
Emery Hemingway 5ca277b8c0 Embedded types 2021-08-31 16:48:55 +02:00
Emery Hemingway 41b1328e4e Move JSON specifics to preserves/jsonhooks 2021-08-28 11:31:58 +02:00
Emery Hemingway 5aaac95ca1 Remove % operator
Use toPreserves, % is not compatible with a parameterized Preserve
type.
2021-08-28 11:25:04 +02:00
Emery Hemingway d67482fad8 Do not throw from preserveTo or fromPreserve
Return an Option or boolean value. This makes it cheap to test if
a Preserves value is convertable to a Nim type.
2021-08-27 22:35:37 +02:00
Emery Hemingway 99b0ddbb13 Textual parser 2021-08-11 13:06:16 +02:00
Emery Hemingway 713f9d00d3 Add `%` operator
Reuse the `%` operator from json module for consistency.
2021-07-09 16:56:09 +02:00
Emery Hemingway be8ad62f99 Infix operator % for constructing records 2021-07-07 12:50:57 +02:00
Emery Hemingway 24d974b91f Get RecordClass of tuple types 2021-07-01 12:48:07 +02:00
Emery Hemingway 5aa5ccbd09 Move utilities for records to a seperate module 2021-06-28 17:38:41 +02:00