From 043c916f993702ffb34442ccf9de14dcfa5464ba Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Fri, 15 Mar 2024 12:23:50 +0000 Subject: [PATCH] Stash --- .gitignore | 1 + Tupfile | 3 ++ Tuprules.tup | 2 ++ icalendar_actor.nimble | 2 +- icalendar_components.prs | 2 +- lock.json | 70 ++++++++++++++++++++++++++++++++++++ shell.nix | 7 ++-- src/icalendar_actor.nim | 16 ++++----- src/icalendar_components.nim | 10 +++--- 9 files changed, 93 insertions(+), 20 deletions(-) create mode 100644 .gitignore create mode 100644 Tupfile create mode 100644 lock.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8454dc7 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/nim.cfg diff --git a/Tupfile b/Tupfile new file mode 100644 index 0000000..b7acbb1 --- /dev/null +++ b/Tupfile @@ -0,0 +1,3 @@ +include_rules +: |> !nim_lk |> lock.json +: lock.json |> !nim_cfg |> | ./ diff --git a/Tuprules.tup b/Tuprules.tup index f902ead..704673f 100644 --- a/Tuprules.tup +++ b/Tuprules.tup @@ -1,2 +1,4 @@ include ../syndicate-nim/depends.tup +NIM = $(DIRENV) $(NIM) NIM_FLAGS += --path:$(TUP_CWD)/../syndicate-nim/src +NIM_GROUPS += $(TUP_CWD)/ diff --git a/icalendar_actor.nimble b/icalendar_actor.nimble index 12ebe15..69bbd3a 100644 --- a/icalendar_actor.nimble +++ b/icalendar_actor.nimble @@ -1,5 +1,5 @@ bin = @["icalendar_actor"] license = "Unlicense" -requires: "nim", "syndicate" srcDir = "src" version = "20230825" +requires "nim", "syndicate" diff --git a/icalendar_components.prs b/icalendar_components.prs index 7e6c7cc..b25ef31 100644 --- a/icalendar_components.prs +++ b/icalendar_components.prs @@ -7,4 +7,4 @@ Property = [@label string @parameters Parameters @type string @values any ...]. Parameters = {symbol: string ...:...}. -CalendarDataspace = . +CalendarDataspace = . diff --git a/lock.json b/lock.json new file mode 100644 index 0000000..2edbd72 --- /dev/null +++ b/lock.json @@ -0,0 +1,70 @@ +{ + "depends": [ + { + "method": "fetchzip", + "packages": [ + "bigints" + ], + "path": "/nix/store/jvrm392g8adfsgf36prgwkbyd7vh5jsw-source", + "rev": "86ea14d31eea9275e1408ca34e6bfe9c99989a96", + "sha256": "15pcpmnk1bnw3k8769rjzcpg00nahyrypwbxs88jnwr4aczp99j4", + "srcDir": "src", + "url": "https://github.com/ehmry/nim-bigints/archive/86ea14d31eea9275e1408ca34e6bfe9c99989a96.tar.gz" + }, + { + "method": "fetchzip", + "packages": [ + "hashlib" + ], + "path": "/nix/store/fav82xdbicvlk34nmcbl89zx99lr3mbs-source", + "rev": "f9455d4be988e14e3dc7933eb7cc7d7c4820b7ac", + "sha256": "1sx6j952lj98629qfgr7ds5aipyw9d6lldcnnqs205wpj4pkcjb3", + "srcDir": "", + "url": "https://github.com/ehmry/hashlib/archive/f9455d4be988e14e3dc7933eb7cc7d7c4820b7ac.tar.gz" + }, + { + "method": "fetchzip", + "packages": [ + "nimcrypto" + ], + "path": "/nix/store/jwz8pqbv6rsm8w4fjzdb37r0wzjn5hv0-source", + "rev": "d58da671799c69c0b3208b96c154e13c8b1a9e90", + "sha256": "12dm0gsy10ppga7zf7hpf4adaqjrd9b740n2w926xyazq1njf6k9", + "srcDir": "", + "url": "https://github.com/cheatfate/nimcrypto/archive/d58da671799c69c0b3208b96c154e13c8b1a9e90.tar.gz" + }, + { + "method": "fetchzip", + "packages": [ + "npeg" + ], + "path": "/nix/store/ffkxmjmigfs7zhhiiqm0iw2c34smyciy-source", + "rev": "26d62fdc40feb84c6533956dc11d5ee9ea9b6c09", + "sha256": "0xpzifjkfp49w76qmaylan8q181bs45anmp46l4bwr3lkrr7bpwh", + "srcDir": "src", + "url": "https://github.com/zevv/npeg/archive/26d62fdc40feb84c6533956dc11d5ee9ea9b6c09.tar.gz" + }, + { + "method": "fetchzip", + "packages": [ + "preserves" + ], + "path": "/nix/store/2hy124xgabz134dxj3wji7mp47fdwy3w-source", + "rev": "9ae435a83c6d5028405538af5d24a023af625b6e", + "sha256": "1k7ywcp1a53x2fpc6wc2b0qzb264dkifash0s1wcp66rw3lx15k2", + "srcDir": "src", + "url": "https://git.syndicate-lang.org/ehmry/preserves-nim/archive/9ae435a83c6d5028405538af5d24a023af625b6e.tar.gz" + }, + { + "method": "fetchzip", + "packages": [ + "syndicate" + ], + "path": "/nix/store/y9f3j4m7vmhf8gbpkvqa77jvzrc5ynlm-source", + "rev": "50a77995bcfe15e6062f54c6af0f55fba850c329", + "sha256": "1avrk86c34qg39w8vlixsksli2gwgbsf29jhlap27ffzdbj2zbal", + "srcDir": "src", + "url": "https://git.syndicate-lang.org/ehmry/syndicate-nim/archive/50a77995bcfe15e6062f54c6af0f55fba850c329.tar.gz" + } + ] +} diff --git a/shell.nix b/shell.nix index 745dd0e..a378489 100644 --- a/shell.nix +++ b/shell.nix @@ -1,5 +1,2 @@ -let - syndicate = builtins.getFlake "syndicate"; - pkgs = - import { overlays = (builtins.attrValues syndicate.overlays); }; -in pkgs.nim2Packages.syndicate_utils +{ pkgs ? import { } }: +pkgs.buildNimPackage { name = "dummy"; } diff --git a/src/icalendar_actor.nim b/src/icalendar_actor.nim index 5fe92bc..84f3e6b 100644 --- a/src/icalendar_actor.nim +++ b/src/icalendar_actor.nim @@ -23,17 +23,17 @@ proc importCalendar(location: string): Component = if result.label != "vcalendar": raise newException(ValueError, "Preserves was not a valid vcalendar @component") -proc toPreserveHook(prop: Property; E: typedesc): Preserve[E] = +proc toPreserveHook(prop: Property): Value = initRecord(prop.label, - prop.parameters.toPreserve(E), - prop.`type`.toPreserve(E), - prop.values.toPreserve(E), + prop.parameters.toPreserves, + prop.`type`.toPreserves, + prop.values.toPreserves, ) -proc toPreserveHook(comp: Component; E: typedesc): Preserve[E] = +proc toPreserveHook(comp: Component): Value = initRecord(comp.label, - comp.properties.toPreserve(E), - comp.components.toPreserve(E), + comp.properties.toPreserves, + comp.components.toPreserves, ) proc serve(turn: var Turn; url: string): Cap = @@ -54,4 +54,4 @@ runActor("icalendar_actor") do (root: Cap; turn: var Turn): during(turn, ds, ?Observe(pattern: !CalendarDataspace) ?? {0: grabLit()}) do (url: string): let cap = serve(turn, url) stderr.writeLine "serving ", url, " at ", cap - discard publish(turn, ds, initRecord("calendar", url.toPreserve(Cap), cap.toPreserve(Cap))) + discard publish(turn, ds, initRecord("calendar", url.toPreserves, cap.embed)) diff --git a/src/icalendar_components.nim b/src/icalendar_components.nim index 542c260..170c79b 100644 --- a/src/icalendar_components.nim +++ b/src/icalendar_components.nim @@ -5,22 +5,22 @@ import type CalendarDataspace* {.preservesRecord: "calendar".} = object `url`*: string - `dataspace`* {.preservesEmbedded.}: Preserve[void] + `dataspace`* {.preservesEmbedded.}: EmbeddedRef Property* {.preservesTuple.} = object `label`*: string `parameters`*: Parameters `type`*: string - `values`* {.preservesTupleTail.}: seq[Preserve[void]] + `values`* {.preservesTupleTail.}: seq[Value] Parameters* = Table[Symbol, string] - Component* {.acyclic, preservesTuple.} = ref object + Component* {.preservesTuple.} = object `label`*: string `properties`*: seq[Property] `components`*: seq[Component] proc `$`*(x: CalendarDataspace | Property | Parameters | Component): string = - `$`(toPreserve(x)) + `$`(toPreserves(x)) proc encode*(x: CalendarDataspace | Property | Parameters | Component): seq[byte] = - encode(toPreserve(x)) + encode(toPreserves(x))