From a817cf0e1c9b1eda9d127fef8d2e9a6bcbbaf69d Mon Sep 17 00:00:00 2001 From: dvanhorn Date: Thu, 6 Nov 2025 15:59:01 +0000 Subject: [PATCH 1/2] crook --- iniquity-plus/parse.rkt | 2 +- knock-plus/parse.rkt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/iniquity-plus/parse.rkt b/iniquity-plus/parse.rkt index e242b4e..ec8b4d0 100644 --- a/iniquity-plus/parse.rkt +++ b/iniquity-plus/parse.rkt @@ -174,7 +174,7 @@ (list ys (cons g gs) (App g es))])])])] [(list-rest (? symbol? g) sr) (match (parse-es/acc sr fs xs ys gs) - [(list ys s es) + [(list ys gs es) (list ys (if (memq g fs) gs (cons g gs)) (App g es))])] [_ (error "parse error" s)])) diff --git a/knock-plus/parse.rkt b/knock-plus/parse.rkt index ff0c373..3b439e4 100644 --- a/knock-plus/parse.rkt +++ b/knock-plus/parse.rkt @@ -156,7 +156,7 @@ (list ys (cons g gs) (App g es))])])])] [(list-rest (? symbol? g) sr) (match (parse-es/acc sr fs xs ys gs) - [(list ys s es) + [(list ys gs es) (list ys (if (memq g fs) gs (cons g gs)) (App g es))])] [_ (error "parse error" s)])) From 75cb7df4c8991ee5ec0f4dd323afd36cd93cb0ec Mon Sep 17 00:00:00 2001 From: dvanhorn Date: Tue, 25 Nov 2025 20:58:25 +0000 Subject: [PATCH 2/2] crook --- hoax-plus/compile-ops.rkt | 4 ++-- iniquity-plus/compile-ops.rkt | 4 ++-- knock-plus/ast.rkt | 3 +++ knock-plus/compile-ops.rkt | 12 ++++++------ 4 files changed, 13 insertions(+), 10 deletions(-) diff --git a/hoax-plus/compile-ops.rkt b/hoax-plus/compile-ops.rkt index 9fe6aa8..834e5be 100644 --- a/hoax-plus/compile-ops.rkt +++ b/hoax-plus/compile-ops.rkt @@ -234,8 +234,8 @@ (Mov r9 (Mem r8 (- type-vect))) (Cmp r10 r9) (Jge 'err) - (Sar r10 1) ; convert to byte offset - (Mov (Mem r8 r10 (- 8 type-vect)) rax) + (Sar r10 1) ; convert to byte offset + (Mov (Mem r8 r10 (- 8 type-vect)) rax) (Mov rax (value->bits (void))))])) (define (type-pred mask type) diff --git a/iniquity-plus/compile-ops.rkt b/iniquity-plus/compile-ops.rkt index edcd826..e34c42b 100644 --- a/iniquity-plus/compile-ops.rkt +++ b/iniquity-plus/compile-ops.rkt @@ -222,8 +222,8 @@ (Mov r9 (Mem r8 (- type-vect))) (Cmp r10 r9) (Jge 'err) - (Sar r10 1) ; convert to byte offset - (Mov (Mem r8 r10 (- 8 type-vect)) rax) + (Sar r10 1) ; convert to byte offset + (Mov (Mem r8 r10 (- 8 type-vect)) rax) (Mov rax (value->bits (void))))])) (define (type-pred mask type) diff --git a/knock-plus/ast.rkt b/knock-plus/ast.rkt index a2964a7..b8f82eb 100644 --- a/knock-plus/ast.rkt +++ b/knock-plus/ast.rkt @@ -51,6 +51,9 @@ ;; | (Box Pat) ;; | (Cons Pat Pat) ;; | (Conj Pat Pat) +;; | (List [Listof Pat]) +;; | (Vect [Listof Pat]) +;; | (Pred Id) (struct Eof () #:prefab) (struct Lit (d) #:prefab) diff --git a/knock-plus/compile-ops.rkt b/knock-plus/compile-ops.rkt index e59d2e7..229a124 100644 --- a/knock-plus/compile-ops.rkt +++ b/knock-plus/compile-ops.rkt @@ -222,8 +222,8 @@ (Mov r9 (Mem r8 (- type-vect))) (Cmp r10 r9) (Jge 'err) - (Sar r10 1) ; convert to byte offset - (Mov (Mem r8 r10 (- 8 type-vect)) rax) + (Sar r10 1) ; convert to byte offset + (Mov (Mem r8 r10 (- 8 type-vect)) rax) (Mov rax (value->bits (void))))])) ;; OpN Natural -> Asm @@ -234,9 +234,9 @@ (compile-op-list n))] ['vector (match n - [0 (seq (Mov rax type-vect))] + [0 (seq (Lea rax (Mem 'empty type-vect)))] [n (seq (compile-op-vect n) - (Mov r9 n) + (Mov r9 (value->bits n)) (Mov (Mem rbx) r9) (Mov rax rbx) (Xor rax type-vect) @@ -246,8 +246,8 @@ (match n [0 (seq)] [n (seq (Pop r9) - (Mov (Mem rbx) 'rax) - (Mov (Mem rbx 8) 'r9) + (Mov (Mem rbx 8) rax) + (Mov (Mem rbx 0) r9) (Mov rax rbx) (Xor rax type-cons) (Add rbx 16)