Emery Hemingway
21bf1cd4d0
preserves_schema_nim: remove type parameterization
2024-01-06 22:19:16 +02:00
Emery Hemingway
c89e6b5d3d
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-06 22:19:16 +02:00
Emery Hemingway
6e0834316f
Fix code-gen for embedded literals
2023-10-26 15:32:35 +01:00
Emery Hemingway
71acd4c951
Regenerate schema
2023-10-26 15:29:28 +01:00
Emery Hemingway
57f9984007
preserves_schema_nim: add acyclic pragmas
2023-08-16 08:33:11 +01:00
Emery Hemingway
ec77872467
Port preserves_schema_nim to Nim-2.0.0
2023-08-16 08:33:11 +01:00
Emery Hemingway
c087294b23
schema: sort dictionary fields by key
...
Size of the value is a compelling alternative but cannot be
inferred at code generation time.
2023-06-11 21:35:28 +01:00
Emery Hemingway
96879da08c
schema: do not deref atomic types
2023-06-07 11:59:50 +01:00
Emery Hemingway
0e3824fc5d
schema: import std/sets when neccessary
2023-06-07 11:00:24 +01:00
Emery Hemingway
03876850e5
schema: use Preserve[E] for records without literal labels
2023-05-17 09:12:08 +01:00
Emery Hemingway
b3f40347e8
Regenerate schema module
2023-05-16 23:06:52 +01:00
Emery Hemingway
eeef9860cf
schema: don't override $ proc for Preserves[E] types
2023-05-14 22:55:27 +01:00
Emery Hemingway
b9d8275624
schema: emit "tuple[]" for literal object fields
2023-05-04 10:55:09 +01:00
Emery Hemingway
cd2dde6d71
preserves_schema_nim: use field0,1,..N for anonymous fields
2023-05-03 16:03:43 +01:00
Emery Hemingway
67b470078c
Revert "preserves_schema_nim: declare literal fields as void"
...
This reverts commit 30c330cecf
.
2023-04-30 09:57:45 +01:00
Emery Hemingway
30c330cecf
preserves_schema_nim: declare literal fields as void
2023-04-28 23:58:48 +01:00
Emery Hemingway
1a0cb2be5c
Cleanup preserves_schema_nim
2023-04-01 12:33:28 -05:00
Emery Hemingway
8ff65486ff
preserves_schema_nim: use "E" as a default emebedding ident
2023-03-01 20:58:17 -06:00
Emery Hemingway
075627709f
preserves_schema_nim: recursively search dicts for embedding
2023-03-01 20:58:17 -06:00
Emery Hemingway
a130079162
preserves_schema_nim: code formatting
2023-03-01 12:50:33 -06:00
Emery Hemingway
3a6dfc0349
preserves_schema_nim: be more careful about type parameters
2023-03-01 12:49:21 -06:00
Emery Hemingway
10682883a4
preserves_schema_nim: detect schema self references
...
Do not add a schema module as an import to itself when a
definition refers to a type with a qualified module name that is
the same as the schema the definition occurs in.
2023-03-01 12:49:21 -06:00
Emery Hemingway
70655a959b
preserves_schema_nim: emit Perserve type for And composites
2023-03-01 12:49:18 -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
8c0af37694
Use set[T] rather than HashSet[T] for enum sets
2022-08-30 11:45:22 -05:00
Emery Hemingway
895a8695d2
Use BiggestInt in generated code
2022-07-09 08:08:11 -05:00
Emery Hemingway
a3c55238f5
Generate `data` fields for anonymous patterns
2022-03-19 09:13:23 -05:00
Emery Hemingway
3924e48deb
Distinct Symbol strings
...
More type buracracy makes schema conversion less lossy.
2022-02-20 09:23:49 -06:00
Emery Hemingway
486443a098
Remove submodule
2022-02-19 10:33:16 -06:00
Emery Hemingway
8a85ff5d52
Make enums generated for alt-types pure
2021-12-04 11:44:18 +00:00
Emery Hemingway
e88c238a74
Schema text parsing
2021-11-11 21:57:04 +01:00
Emery Hemingway
1dc7991761
Schemas: use int rather than BiggestInt
...
Produce ints for integers in schemas. If int is too small then
the generated code can be hand-edited.
2021-11-03 19:18:07 +01:00
Emery Hemingway
cbf27a0ee0
schema: fix missing literals in tuples
2021-10-25 21:36:45 +02:00
Emery Hemingway
ba45f80087
schema: embedded type required for toPreserve inside `$`
2021-10-25 21:36:45 +02:00
Emery Hemingway
b6275a241b
Schema: do not overload `$` or encode for Preserve types
2021-10-20 13:59:48 +02:00
Emery Hemingway
5250707f0e
Schema: make all Preserves embeddable
2021-10-18 12:12:33 +02:00
Emery Hemingway
171502f1d2
Schemas: seperate procs for unembeddables
2021-10-18 12:12:33 +02:00
Emery Hemingway
99201de724
Schemas: use canonical meta-schema
2021-10-17 13:26:05 +02:00