Compare commits
1
Commits
main
..
1d584c7946
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1d584c7946 |
+1
-9
@@ -8,12 +8,4 @@
|
||||
. ((eval
|
||||
. (progn (defun apply-cabal-fmt-h ()
|
||||
(haskell-mode-buffer-apply-command "cabal-fmt"))
|
||||
(add-hook 'before-save-hook #'apply-cabal-fmt-h nil t)))))
|
||||
(scheme-mode
|
||||
. ((eval . (dolist (s '(kappa κ prim))
|
||||
(put s 'scheme-indent-function 1)))))
|
||||
(nil
|
||||
. ((eval
|
||||
. (progn (defun display-ansi ()
|
||||
(interactive)
|
||||
(ansi-color-apply-on-region (point-min) (point-max))))))))
|
||||
(add-hook 'before-save-hook #'apply-cabal-fmt-h nil t))))))
|
||||
|
||||
@@ -1,3 +1 @@
|
||||
use flake
|
||||
watch_file gyehoek.cabal cabal.project
|
||||
PATH_add $(dirname $(cabal list-bin gyehoek))
|
||||
|
||||
+1
-2
@@ -8,5 +8,4 @@ dist-newstyle
|
||||
*.tix
|
||||
.direnv
|
||||
result
|
||||
play/
|
||||
trace.html
|
||||
play/
|
||||
@@ -1,10 +1,5 @@
|
||||
packages: *.cabal
|
||||
tests: True
|
||||
-- required for doctest-parallel
|
||||
write-ghc-environment-files: always
|
||||
|
||||
-- https://github.com/martijnbastiaan/doctest-parallel/pull/66
|
||||
allow-older: Cabal:process
|
||||
|
||||
source-repository-package
|
||||
type: git
|
||||
|
||||
@@ -132,34 +132,3 @@ multiple ~env-ref~ calls could probably be replaced with a primitive that loads
|
||||
$code)
|
||||
1))))
|
||||
#+end_src
|
||||
|
||||
** example
|
||||
|
||||
#+begin_src scheme
|
||||
(λ (n m ktail)
|
||||
(letrec ((f (λ (x ktail-0) (+ x n ktail-0)))
|
||||
(g (λ (y ktail-1) (+ y g ktail-1))))
|
||||
(prim (cons f g) ktail)))
|
||||
#+end_src
|
||||
|
||||
#+begin_src scheme
|
||||
(λ (n m ktail)
|
||||
(letrec ((f-code (λ (x ktail-0)
|
||||
(prim (env-get 2)
|
||||
(κ (n)
|
||||
(+ x n ktail-0)))))
|
||||
(g-code (λ (y ktail-1)
|
||||
(prim (env-get 3)
|
||||
(κ (m)
|
||||
(+ y m ktail-1))))))
|
||||
(letrec ((with-closure-code
|
||||
(κ (f g)
|
||||
(prim (get-env 0)
|
||||
(κ (ktail)
|
||||
(prim cons f g ktail))))))
|
||||
(prim (make-shared-closure (with-closure-code)
|
||||
ktail)
|
||||
(κ (with-closure)
|
||||
(prim (make-shared-closure (f-code g-code) n m)
|
||||
with-closure))))))
|
||||
#+end_src
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
#+title: on libraries
|
||||
|
||||
* libraries and the file system
|
||||
|
||||
R⁷RS leaves it unspecified how exactly libraries correspond to files:
|
||||
|
||||
#+begin_quote
|
||||
Programs and libraries are typically stored in files, although in some implementations they can be entered interactively into a running Scheme system. Other paradigms are possible. Implementations which store libraries in files should document the mapping from the name of a library to its location in the file system.
|
||||
#+end_quote
|
||||
|
||||
thus the implementation of ~define-library~ is open to much interpretation. we could possibly define libraries as first-class objects, or deal with them statically. the former case is appealing to me, as it could massively simplify interactive use.
|
||||
|
||||
* semantics of declaration order
|
||||
|
||||
mercifully, R⁷RS is similarly ambiguous when it comes to the significance of declaration order. the authors note explicitly example two equally acceptable approaches:
|
||||
|
||||
#+begin_quote
|
||||
One possible implementation of libraries is as follows: _After all cond-expand library declarations are expanded, a new environment is constructed for the library consisting of all imported bindings._ The expressions from all begin, include and include-ci library declarations are expanded in that environment in the order in which they occur in the library. _Alternatively, cond-expand and import declarations may be processed in left to right order interspersed with the processing of other declarations_, with the environment growing as imported bindings are added to it by each import declaration.
|
||||
#+end_quote
|
||||
@@ -1,100 +0,0 @@
|
||||
* rationale?
|
||||
|
||||
previously, the VM's stack was used for storing local variables across blocks; a Scheme procedure was split into several low-level routines (one for the procedure itself and one for each continuation), and the stack was used as a communication channel for these separate routines. in contrast, registers were local to each routine. this aligns with Wasm's model of functions pretty well, with Wasm /locals/ acting as the VM's /registers/, and a global mutable stack serving as fallback.
|
||||
|
||||
this worked quite well until it became time to implement ~call/cc~.
|
||||
|
||||
we are considering making the following alterations to the VM:
|
||||
- explicitly segment the stack into frames.
|
||||
- passing procedures and return addresses on the stack.
|
||||
- new instructions:
|
||||
+ ~(tail-call /n/)~
|
||||
+ ~(call /n/)~
|
||||
+ ~(load /r/ /n/)~
|
||||
+ ~(return /n/)~
|
||||
|
||||
* scratchpad
|
||||
|
||||
#+begin_src scheme
|
||||
(letrec ((fac (λ (n)
|
||||
(if (zero? n)
|
||||
1
|
||||
(* n (fac (- n 1)))))))
|
||||
(fac 3))
|
||||
#+end_src
|
||||
|
||||
#+begin_src scheme
|
||||
(λ (ktail0)
|
||||
(letrec ((fac
|
||||
(λ (n ktail1)
|
||||
(zero?
|
||||
n
|
||||
(κ (x0)
|
||||
(if x0
|
||||
(continue ktail1 1)
|
||||
(- n 1
|
||||
(κ (x1)
|
||||
(fac x1
|
||||
(κ (x2)
|
||||
(* n x2 ktail1)))))))))))
|
||||
(fac 3)))
|
||||
#+end_src
|
||||
|
||||
#+begin_example
|
||||
n ktail1
|
||||
| |
|
||||
| | x0
|
||||
| | |
|
||||
| | ^
|
||||
| |
|
||||
| | x1
|
||||
| | |
|
||||
| | ^
|
||||
| |
|
||||
| | x2
|
||||
| | |
|
||||
^ ^ ^
|
||||
#+end_example
|
||||
|
||||
#+begin_src scheme
|
||||
(define $fac-c0
|
||||
(pop! %x0 0) ; [ x0 $fac-c0 n $fac ktail1 ]
|
||||
(if %x0 ; [ $fac-c0 n $fac ktail1 ]
|
||||
;; every variable but `ktail1' is dead so we pop them all.
|
||||
;; this probably means that `if' should take two continuations
|
||||
;; rather than two blocks.
|
||||
(then (push! 1) ; [ $fac-c0 n $fac ktail1 ]
|
||||
(return 1)) ; [ 1 $fac-c0 n $fac ktail1 ]
|
||||
(else (load %n 1) ; [ $fac-c0 n $fac ktail1 ]
|
||||
(prim %x1 (- %n 1)) ; [ $fac-c0 n $fac ktail1 ]
|
||||
(push! $fac-c1) ; [ $fac-c0 n $fac ktail1 ]
|
||||
(push! $fac) ; [ $fac-c1 $fac-c0 n $fac ktail1 ]
|
||||
(push! %x1) ; [ $fac $fac-c1 $fac-c0 n $fac ktail1 ]
|
||||
(call 1) ; [ x1 $fac $fac-c1 $fac-c0 n $fac ktail1 ]
|
||||
)))
|
||||
|
||||
(define $fac-c1
|
||||
(pop! %x2) ; [ x2 $fac-c1 $fac-c0 n $fac ktail1 ]
|
||||
(load %n 3) ; [ $fac-c1 $fac-c0 n $fac ktail1 ]
|
||||
(prim %x3 (* %n %x2))
|
||||
(push! %x3) ; [ $fac-c1 $fac-c0 n $fac ktail1 ]
|
||||
(return 1) ; [ x3 $fac-c1 $fac-c0 n $fac ktail1 ]
|
||||
)
|
||||
|
||||
(define $fac
|
||||
(load %ktail1 2) ; [ n $fac ktail1 ]
|
||||
(load %n 0) ; [ n $fac ktail1 ]
|
||||
(push! $fac-c0) ; [ n $fac ktail1 ]
|
||||
(push! $zero?) ; [ $fac-c0 n $fac ktail1 ]
|
||||
(push! %n) ; [ $zero? $fac-c0 n $fac ktail1 ]
|
||||
(call 1) ; [ n $zero? $fac-c0 n $fac ktail1 ]
|
||||
)
|
||||
|
||||
(define $start
|
||||
(push! $fac) ; [ $start ktail0 ]
|
||||
(push! 3) ; [ $fac $start ktail0 ]
|
||||
(tail-call 1) ; [ 3 $fac $start ktail0 ]
|
||||
;; ↑ `tail-call' knows how to dispose of the caller's stack frame.
|
||||
)
|
||||
#+end_src
|
||||
|
||||
@@ -20,13 +20,12 @@
|
||||
overlays = [
|
||||
haskellNix.overlay
|
||||
(final: prev: {
|
||||
gyehoek-wasm-runtime = final.callPackage ./wasm-runtime {
|
||||
gyehoek-runtime = final.callPackage ./runtime {
|
||||
crane-lib = inputs.crane.mkLib final;
|
||||
};
|
||||
gyehoek = final.haskell-nix.project' {
|
||||
src = ./.;
|
||||
compiler-nix-name = "ghc912";
|
||||
configureArgs = "-f-doctest";
|
||||
modules = [({ pkgs, lib, ...}: {
|
||||
packages.gyehoek.components.tests.test.preCheck =
|
||||
let
|
||||
@@ -34,16 +33,14 @@
|
||||
pkgs.git # tasty uses git diff
|
||||
];
|
||||
in ''
|
||||
export GYEHOEK_WASM_RUNTIME=${
|
||||
lib.getExe final.gyehoek-wasm-runtime
|
||||
}
|
||||
export GYEHOEK_RUNTIME=${lib.getExe final.gyehoek-runtime}
|
||||
export PATH=${lib.makeBinPath bin}:$PATH
|
||||
'';
|
||||
})];
|
||||
shell = {
|
||||
withHoogle = true;
|
||||
inputsFrom = [
|
||||
final.gyehoek-wasm-runtime
|
||||
final.gyehoek-runtime
|
||||
];
|
||||
tools = {
|
||||
cabal = {};
|
||||
@@ -55,7 +52,7 @@
|
||||
nodejs
|
||||
wasm-tools
|
||||
wac-cli
|
||||
gauche
|
||||
guile
|
||||
rust-analyzer
|
||||
wasmtime
|
||||
# bashInteractive is necessary to work around an
|
||||
@@ -94,7 +91,7 @@
|
||||
hf.packages.${system} // lib.fix (packages: {
|
||||
gyehoek = hf.packages.${system}."gyehoek:exe:gyehoek";
|
||||
default = packages.gyehoek;
|
||||
inherit (pkgs) gyehoek-wasm-runtime;
|
||||
inherit (pkgs) gyehoek-runtime;
|
||||
}));
|
||||
|
||||
devShells = each-system
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
(begin 123 456) ; => 456
|
||||
@@ -1,2 +0,0 @@
|
||||
ret > ExitSuccess
|
||||
out > #t
|
||||
@@ -1,12 +0,0 @@
|
||||
(letrec ((iter (λ (n f)
|
||||
(if (zero? n)
|
||||
#f
|
||||
(begin (f n)
|
||||
(iter (- n 1) f))))))
|
||||
(call/cc
|
||||
(λ (k)
|
||||
(iter 10 (λ (n)
|
||||
;; i don't feel like implementing (= n 5) right now lmfao
|
||||
(if (zero? (- n 5))
|
||||
(k #t)
|
||||
#f))))))
|
||||
@@ -1,2 +0,0 @@
|
||||
ret > ExitSuccess
|
||||
out > #t
|
||||
@@ -1,4 +0,0 @@
|
||||
(call/cc
|
||||
(λ (k)
|
||||
(begin (k #t)
|
||||
#f)))
|
||||
@@ -1,2 +0,0 @@
|
||||
ret > ExitSuccess
|
||||
out > #t
|
||||
@@ -1,5 +0,0 @@
|
||||
;; confer ../callcc-early-exit-4
|
||||
(letrec ((app (λ (f x)
|
||||
(begin (f x)
|
||||
#f))))
|
||||
(call/cc (λ (k) (app k #t))))
|
||||
@@ -1,2 +0,0 @@
|
||||
ret > ExitSuccess
|
||||
out > #t
|
||||
@@ -1,5 +0,0 @@
|
||||
;; confer ../callcc-early-exit-3
|
||||
(letrec ((app (λ (f x)
|
||||
(begin (f x)
|
||||
#f))))
|
||||
(call/cc (λ (k) (app (λ (x) (k x)) #t))))
|
||||
@@ -1,2 +0,0 @@
|
||||
ret > ExitSuccess
|
||||
out > #t
|
||||
@@ -1,4 +0,0 @@
|
||||
(call/cc
|
||||
(λ (k)
|
||||
(begin ((λ () (k #t)))
|
||||
#f)))
|
||||
@@ -1,2 +0,0 @@
|
||||
ret > ExitSuccess
|
||||
out > 12
|
||||
@@ -1,4 +0,0 @@
|
||||
(* 2 (call/cc
|
||||
(λ (k)
|
||||
(begin (k 6)
|
||||
3))))
|
||||
@@ -1,2 +0,0 @@
|
||||
ret > ExitSuccess
|
||||
out > 456
|
||||
@@ -1,2 +0,0 @@
|
||||
ret > ExitSuccess
|
||||
out > 155
|
||||
@@ -1,10 +0,0 @@
|
||||
(letrec ((factorial (λ (n)
|
||||
(if (zero? n)
|
||||
1
|
||||
(* n (factorial (- n 1)))))))
|
||||
(letrec ((sum-of-factorials
|
||||
(λ (n)
|
||||
(if (zero? n)
|
||||
0
|
||||
(+ (factorial n) (sum-of-factorials (- n 1)))))))
|
||||
(+ 2 (sum-of-factorials 5))))
|
||||
@@ -1,2 +0,0 @@
|
||||
ret > ExitSuccess
|
||||
out > (6 . 7)
|
||||
@@ -1 +0,0 @@
|
||||
(cons 6 7)
|
||||
@@ -1,2 +0,0 @@
|
||||
ret > ExitSuccess
|
||||
out > (456 . 123)
|
||||
@@ -1,2 +0,0 @@
|
||||
(let ((p (cons 123 456)))
|
||||
(cons (cdr p) (car p)))
|
||||
@@ -1,2 +1,2 @@
|
||||
ret > ExitSuccess
|
||||
out > 2432902008176640000
|
||||
out > 720
|
||||
|
||||
@@ -2,4 +2,4 @@
|
||||
(if (zero? n)
|
||||
1
|
||||
(* n (fac (- n 1)))))))
|
||||
(fac 20))
|
||||
(fac 6))
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
ret > ExitSuccess
|
||||
out > 123
|
||||
@@ -1 +0,0 @@
|
||||
123
|
||||
@@ -1,2 +0,0 @@
|
||||
ret > ExitSuccess
|
||||
out > (0 . (1 . (4 . (9 . (16 . ())))))
|
||||
@@ -1,7 +0,0 @@
|
||||
(letrec ((my-map (λ (f l)
|
||||
(if (pair? l)
|
||||
(cons (f (car l))
|
||||
(my-map f (cdr l)))
|
||||
(list)))))
|
||||
(my-map (λ (x) (* x x))
|
||||
(list 0 1 2 3 4)))
|
||||
@@ -1,4 +0,0 @@
|
||||
[0;31m([0m[0;95;1;3mbegin[0m
|
||||
책을
|
||||
더
|
||||
먹으세요~![0;31m)[0m
|
||||
@@ -1,4 +0,0 @@
|
||||
[0;31m([0m[0;95;1;3mbegin[0m
|
||||
책을
|
||||
더
|
||||
먹으세요~![0;31m)[0m
|
||||
@@ -1,5 +0,0 @@
|
||||
[0;31m([0m[0;95;1;3mlambda[0m
|
||||
[0;33m([0m어간
|
||||
어미[0;33m)[0m
|
||||
[0;33m([0mdisplay
|
||||
꾸깃[0;33m)[0m[0;31m)[0m
|
||||
@@ -1,2 +0,0 @@
|
||||
[0;31m([0m[0;95;1;3mlambda[0m [0;33m([0m어간 어미[0;33m)[0m
|
||||
[0;33m([0mdisplay 꾸깃[0;33m)[0m[0;31m)[0m
|
||||
@@ -1 +0,0 @@
|
||||
[0;31m([0m[0;31m)[0m
|
||||
@@ -1 +0,0 @@
|
||||
[0;31m([0m[0;33m([0m[0;32m([0m[0;34m([0m[0;35m([0m[0;35m)[0m[0;34m)[0m[0;32m)[0m[0;33m)[0m[0;31m)[0m
|
||||
@@ -1,4 +0,0 @@
|
||||
[0;31m([0m가
|
||||
나
|
||||
다
|
||||
라[0;31m)[0m
|
||||
@@ -1 +0,0 @@
|
||||
[0;31m([0m가 나 다 라[0;31m)[0m
|
||||
@@ -1,37 +0,0 @@
|
||||
[ MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/bool/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 1
|
||||
}
|
||||
)
|
||||
} :< SimpleF ( SimpleBoolean True )
|
||||
, MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/bool/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 4
|
||||
}
|
||||
)
|
||||
} :< SimpleF ( SimpleBoolean True )
|
||||
, MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/bool/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 10
|
||||
}
|
||||
)
|
||||
} :< SimpleF ( SimpleBoolean False )
|
||||
, MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/bool/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 13
|
||||
}
|
||||
)
|
||||
} :< SimpleF ( SimpleBoolean False )
|
||||
]
|
||||
@@ -1,4 +0,0 @@
|
||||
#;(a datum comment can
|
||||
span multiple lines)
|
||||
|
||||
(but it ends here)
|
||||
@@ -1,33 +0,0 @@
|
||||
[ MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/decimal/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 1
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleNumber 45.0 )
|
||||
, MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/decimal/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 4
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleNumber 5667.0 )
|
||||
, MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/decimal/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 10
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleNumber
|
||||
( -123.0 )
|
||||
)
|
||||
]
|
||||
@@ -1,57 +0,0 @@
|
||||
[ MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/list-dot-flat/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 1
|
||||
}
|
||||
)
|
||||
} :< CompoundF
|
||||
( DotListF
|
||||
(
|
||||
( MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/list-dot-flat/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 2
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol "가" )
|
||||
) :|
|
||||
[ MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/list-dot-flat/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 5
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol "나" )
|
||||
, MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/list-dot-flat/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 8
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol "다" )
|
||||
]
|
||||
)
|
||||
( MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/list-dot-flat/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 13
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol "라" )
|
||||
)
|
||||
)
|
||||
]
|
||||
@@ -1,83 +0,0 @@
|
||||
[ MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/list-flat/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 1
|
||||
}
|
||||
)
|
||||
} :< CompoundF
|
||||
( ListF StyleData
|
||||
[ MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/list-flat/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 2
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol "가" )
|
||||
, MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/list-flat/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 5
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol "나" )
|
||||
, MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/list-flat/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 8
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol "다" )
|
||||
, MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/list-flat/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 11
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol "라" )
|
||||
, MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/list-flat/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 14
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleNumber 1.0 )
|
||||
, MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/list-flat/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 16
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleNumber 2.0 )
|
||||
, MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/list-flat/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 18
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleNumber 3.0 )
|
||||
]
|
||||
)
|
||||
]
|
||||
@@ -1,136 +0,0 @@
|
||||
[ MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/list/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 1
|
||||
}
|
||||
)
|
||||
} :< CompoundF
|
||||
( DotListF
|
||||
(
|
||||
( MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/list/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 2
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol "a" )
|
||||
) :|
|
||||
[ MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/list/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 4
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol "b" )
|
||||
, MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/list/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 6
|
||||
}
|
||||
)
|
||||
} :< CompoundF
|
||||
( ListF StyleData
|
||||
[ MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/list/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 7
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol "c" )
|
||||
, MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/list/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 9
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol "d" )
|
||||
]
|
||||
)
|
||||
]
|
||||
)
|
||||
( MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/list/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 14
|
||||
}
|
||||
)
|
||||
} :< CompoundF
|
||||
( ListF StyleData
|
||||
[ MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/list/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 15
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol "가" )
|
||||
, MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/list/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 18
|
||||
}
|
||||
)
|
||||
} :< CompoundF
|
||||
( DotListF
|
||||
(
|
||||
( MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/list/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 19
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol "나" )
|
||||
) :| []
|
||||
)
|
||||
( MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/list/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 24
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol "다" )
|
||||
)
|
||||
)
|
||||
, MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/list/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 28
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol "라" )
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
@@ -1,10 +0,0 @@
|
||||
[ MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/meta-expression/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 1
|
||||
}
|
||||
)
|
||||
} :< MetaF "aHaskellVariable + abc * 2"
|
||||
]
|
||||
@@ -1 +0,0 @@
|
||||
#{aHaskellVariable + abc * 2}
|
||||
@@ -1,2 +0,0 @@
|
||||
##{case 123 of { 123 -> blah
|
||||
; xyz -> flah }}
|
||||
@@ -1,10 +0,0 @@
|
||||
[ MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/meta-splice-expression/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 1
|
||||
}
|
||||
)
|
||||
} :< MetaSpliceF "takeWhile (\x -> even x) aHaskellList"
|
||||
]
|
||||
@@ -1 +0,0 @@
|
||||
##{takeWhile (\x -> even x) aHaskellList}
|
||||
@@ -1,10 +0,0 @@
|
||||
[ MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/meta-splice-variable/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 1
|
||||
}
|
||||
)
|
||||
} :< MetaSpliceF "aHaskellList"
|
||||
]
|
||||
@@ -1 +0,0 @@
|
||||
##{aHaskellList}
|
||||
@@ -1,10 +0,0 @@
|
||||
[ MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/meta-variable/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 1
|
||||
}
|
||||
)
|
||||
} :< MetaF "aHaskellVariable"
|
||||
]
|
||||
@@ -1 +0,0 @@
|
||||
#{aHaskellVariable}
|
||||
@@ -1,61 +0,0 @@
|
||||
[ MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/peculiar-identifier-dot/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 1
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol "..." )
|
||||
, MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/peculiar-identifier-dot/source.scm"
|
||||
, sourceLine = Pos 2
|
||||
, sourceColumn = Pos 1
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol ".." )
|
||||
, MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/peculiar-identifier-dot/source.scm"
|
||||
, sourceLine = Pos 3
|
||||
, sourceColumn = Pos 1
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol ".abc" )
|
||||
, MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/peculiar-identifier-dot/source.scm"
|
||||
, sourceLine = Pos 4
|
||||
, sourceColumn = Pos 1
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol "....abcc" )
|
||||
, MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/peculiar-identifier-dot/source.scm"
|
||||
, sourceLine = Pos 5
|
||||
, sourceColumn = Pos 1
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol ".++-" )
|
||||
, MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/peculiar-identifier-dot/source.scm"
|
||||
, sourceLine = Pos 6
|
||||
, sourceColumn = Pos 1
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol ".-" )
|
||||
]
|
||||
@@ -1,6 +0,0 @@
|
||||
...
|
||||
..
|
||||
.abc
|
||||
....abcc
|
||||
.++-
|
||||
.-
|
||||
@@ -1,71 +0,0 @@
|
||||
[ MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/peculiar-identifier-sign/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 1
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol "+" )
|
||||
, MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/peculiar-identifier-sign/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 3
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol "-" )
|
||||
, MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/peculiar-identifier-sign/source.scm"
|
||||
, sourceLine = Pos 3
|
||||
, sourceColumn = Pos 1
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol "+." )
|
||||
, MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/peculiar-identifier-sign/source.scm"
|
||||
, sourceLine = Pos 3
|
||||
, sourceColumn = Pos 4
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol "+.." )
|
||||
, MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/peculiar-identifier-sign/source.scm"
|
||||
, sourceLine = Pos 3
|
||||
, sourceColumn = Pos 8
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol "-." )
|
||||
, MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/peculiar-identifier-sign/source.scm"
|
||||
, sourceLine = Pos 3
|
||||
, sourceColumn = Pos 11
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol "-...abc" )
|
||||
, MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/peculiar-identifier-sign/source.scm"
|
||||
, sourceLine = Pos 3
|
||||
, sourceColumn = Pos 19
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol "-abc.." )
|
||||
]
|
||||
@@ -1,3 +0,0 @@
|
||||
+ -
|
||||
|
||||
+. +.. -. -...abc -abc..
|
||||
@@ -1,11 +0,0 @@
|
||||
[ MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/string/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 1
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleString "가나다라" )
|
||||
]
|
||||
@@ -1,53 +0,0 @@
|
||||
[ MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/typical-identifier-token/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 1
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol "abc" )
|
||||
, MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/typical-identifier-token/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 4
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleString "xyz" )
|
||||
, MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/typical-identifier-token/source.scm"
|
||||
, sourceLine = Pos 2
|
||||
, sourceColumn = Pos 1
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol "수학" )
|
||||
, MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/typical-identifier-token/source.scm"
|
||||
, sourceLine = Pos 2
|
||||
, sourceColumn = Pos 5
|
||||
}
|
||||
)
|
||||
} :< CompoundF
|
||||
( ListF StyleData
|
||||
[ MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/typical-identifier-token/source.scm"
|
||||
, sourceLine = Pos 2
|
||||
, sourceColumn = Pos 6
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol "數學" )
|
||||
]
|
||||
)
|
||||
]
|
||||
@@ -1,2 +0,0 @@
|
||||
abc"xyz"
|
||||
수학(數學)
|
||||
@@ -1,91 +0,0 @@
|
||||
[ MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/typical-identifier/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 1
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol "abc" )
|
||||
, MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/typical-identifier/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 5
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol "bala-hwa$" )
|
||||
, MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/typical-identifier/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 15
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol "x!!!" )
|
||||
, MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/typical-identifier/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 20
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol "z" )
|
||||
, MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/typical-identifier/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 22
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol "z123" )
|
||||
, MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/typical-identifier/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 27
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol "나는너무졸리다" )
|
||||
, MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/typical-identifier/source.scm"
|
||||
, sourceLine = Pos 1
|
||||
, sourceColumn = Pos 42
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol "學" )
|
||||
, MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/typical-identifier/source.scm"
|
||||
, sourceLine = Pos 3
|
||||
, sourceColumn = Pos 1
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol "車室." )
|
||||
, MkAnn
|
||||
{ position = Just
|
||||
( SourcePos
|
||||
{ sourceName = "golden/read/typical-identifier/source.scm"
|
||||
, sourceLine = Pos 5
|
||||
, sourceColumn = Pos 1
|
||||
}
|
||||
)
|
||||
} :< SimpleF
|
||||
( SimpleSymbol "三個女人一臺戲。" )
|
||||
]
|
||||
@@ -1,5 +0,0 @@
|
||||
abc bala-hwa$ x!!! z z123 나는너무졸리다 學
|
||||
|
||||
車室.
|
||||
|
||||
三個女人一臺戲。
|
||||
@@ -0,0 +1,9 @@
|
||||
[ Fix
|
||||
( SimpleF ( Boolean True ) )
|
||||
, Fix
|
||||
( SimpleF ( Boolean True ) )
|
||||
, Fix
|
||||
( SimpleF ( Boolean False ) )
|
||||
, Fix
|
||||
( SimpleF ( Boolean False ) )
|
||||
]
|
||||
@@ -0,0 +1,15 @@
|
||||
[ Fix
|
||||
( SimpleF
|
||||
( Number 45.0 )
|
||||
)
|
||||
, Fix
|
||||
( SimpleF
|
||||
( Number 5667.0 )
|
||||
)
|
||||
, Fix
|
||||
( SimpleF
|
||||
( Number
|
||||
( -123.0 )
|
||||
)
|
||||
)
|
||||
]
|
||||
@@ -0,0 +1,25 @@
|
||||
[ Fix
|
||||
( CompoundF
|
||||
( DotListF
|
||||
( Fix
|
||||
( SimpleF
|
||||
( Symbol "가" )
|
||||
) :|
|
||||
[ Fix
|
||||
( SimpleF
|
||||
( Symbol "나" )
|
||||
)
|
||||
, Fix
|
||||
( SimpleF
|
||||
( Symbol "다" )
|
||||
)
|
||||
]
|
||||
)
|
||||
( Fix
|
||||
( SimpleF
|
||||
( Symbol "라" )
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
@@ -0,0 +1,35 @@
|
||||
[ Fix
|
||||
( CompoundF
|
||||
( ListF
|
||||
[ Fix
|
||||
( SimpleF
|
||||
( Symbol "가" )
|
||||
)
|
||||
, Fix
|
||||
( SimpleF
|
||||
( Symbol "나" )
|
||||
)
|
||||
, Fix
|
||||
( SimpleF
|
||||
( Symbol "다" )
|
||||
)
|
||||
, Fix
|
||||
( SimpleF
|
||||
( Symbol "라" )
|
||||
)
|
||||
, Fix
|
||||
( SimpleF
|
||||
( Number 1.0 )
|
||||
)
|
||||
, Fix
|
||||
( SimpleF
|
||||
( Number 2.0 )
|
||||
)
|
||||
, Fix
|
||||
( SimpleF
|
||||
( Number 3.0 )
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
]
|
||||
@@ -0,0 +1,60 @@
|
||||
[ Fix
|
||||
( CompoundF
|
||||
( DotListF
|
||||
( Fix
|
||||
( SimpleF
|
||||
( Symbol "a" )
|
||||
) :|
|
||||
[ Fix
|
||||
( SimpleF
|
||||
( Symbol "b" )
|
||||
)
|
||||
, Fix
|
||||
( CompoundF
|
||||
( ListF
|
||||
[ Fix
|
||||
( SimpleF
|
||||
( Symbol "c" )
|
||||
)
|
||||
, Fix
|
||||
( SimpleF
|
||||
( Symbol "d" )
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
]
|
||||
)
|
||||
( Fix
|
||||
( CompoundF
|
||||
( ListF
|
||||
[ Fix
|
||||
( SimpleF
|
||||
( Symbol "가" )
|
||||
)
|
||||
, Fix
|
||||
( CompoundF
|
||||
( DotListF
|
||||
( Fix
|
||||
( SimpleF
|
||||
( Symbol "나" )
|
||||
) :| []
|
||||
)
|
||||
( Fix
|
||||
( SimpleF
|
||||
( Symbol "다" )
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
, Fix
|
||||
( SimpleF
|
||||
( Symbol "라" )
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
@@ -0,0 +1,9 @@
|
||||
[ Fix
|
||||
( SimpleF
|
||||
( Symbol "+" )
|
||||
)
|
||||
, Fix
|
||||
( SimpleF
|
||||
( Symbol "-" )
|
||||
)
|
||||
]
|
||||
@@ -0,0 +1 @@
|
||||
+ -
|
||||
@@ -0,0 +1,5 @@
|
||||
[ Fix
|
||||
( SimpleF
|
||||
( String "가나다라" )
|
||||
)
|
||||
]
|
||||
@@ -0,0 +1,37 @@
|
||||
[ Fix
|
||||
( SimpleF
|
||||
( Symbol "abc" )
|
||||
)
|
||||
, Fix
|
||||
( SimpleF
|
||||
( Symbol "balahwa$" )
|
||||
)
|
||||
, Fix
|
||||
( SimpleF
|
||||
( Symbol "x!!!" )
|
||||
)
|
||||
, Fix
|
||||
( SimpleF
|
||||
( Symbol "z" )
|
||||
)
|
||||
, Fix
|
||||
( SimpleF
|
||||
( Symbol "z123" )
|
||||
)
|
||||
, Fix
|
||||
( SimpleF
|
||||
( Symbol "나는너무졸리다" )
|
||||
)
|
||||
, Fix
|
||||
( SimpleF
|
||||
( Symbol "學" )
|
||||
)
|
||||
, Fix
|
||||
( SimpleF
|
||||
( Symbol "車室." )
|
||||
)
|
||||
, Fix
|
||||
( SimpleF
|
||||
( Symbol "三個女人一臺戲。" )
|
||||
)
|
||||
]
|
||||
@@ -0,0 +1,5 @@
|
||||
abc balahwa$ x!!! z z123 나는너무졸리다 學
|
||||
|
||||
車室.
|
||||
|
||||
三個女人一臺戲。
|
||||
+11
-45
@@ -13,11 +13,6 @@ build-type: Simple
|
||||
-- extra-doc-files: CHANGELOG.md
|
||||
-- extra-source-files:
|
||||
|
||||
flag doctest
|
||||
description: enable the doctest suite
|
||||
default: True
|
||||
manual: True
|
||||
|
||||
common ghcstuffs-dev
|
||||
ghc-options:
|
||||
-Wno-unused-matches -Wno-missing-signatures -Wno-typed-holes
|
||||
@@ -26,7 +21,6 @@ common ghcstuffs
|
||||
ghc-options:
|
||||
-Wall -fdefer-type-errors -fno-show-valid-hole-fits
|
||||
-fdefer-out-of-scope-variables -threaded
|
||||
-Wno-name-shadowing -Wno-partial-type-signatures
|
||||
|
||||
default-extensions:
|
||||
BlockArguments
|
||||
@@ -55,37 +49,32 @@ executable gyehoek
|
||||
library
|
||||
import: ghcstuffs, ghcstuffs-dev
|
||||
ghc-options: -fplugin=Effectful.Plugin
|
||||
-- build-tool-depends: retrie:retrie
|
||||
|
||||
-- cabal-fmt: expand src
|
||||
exposed-modules:
|
||||
Gyehoek.CPS.Close
|
||||
Gyehoek.CPS.Convert
|
||||
Gyehoek.CPS.Eval
|
||||
Gyehoek.CPS.Hoist
|
||||
Gyehoek.CPS.Lower
|
||||
Gyehoek.CPS.Stackify
|
||||
Gyehoek.CPS.Syntax
|
||||
Gyehoek.Driver
|
||||
Gyehoek.GenSym
|
||||
Gyehoek.Jalmot
|
||||
Gyehoek.Language
|
||||
Gyehoek.Language.Common
|
||||
Gyehoek.Lift1
|
||||
Gyehoek.Options
|
||||
Gyehoek.Prelude
|
||||
Gyehoek.Scheme.Expand
|
||||
Gyehoek.Scheme.Expand.Old
|
||||
Gyehoek.Scheme.Syntax
|
||||
Gyehoek.Sexp
|
||||
Gyehoek.Sexp.Grammar
|
||||
Gyehoek.Sexp.Grammar.Base
|
||||
Gyehoek.Sexp.Print
|
||||
Gyehoek.Sexp.QQ
|
||||
Gyehoek.Sexp.Read
|
||||
Gyehoek.Sexp.Syntax
|
||||
Gyehoek.Stack.Syntax
|
||||
Gyehoek.Stack.VM
|
||||
Gyehoek.Wasm
|
||||
|
||||
build-depends:
|
||||
, base ^>=4.21.2.0
|
||||
, base ^>=4.21.2.0
|
||||
, binary
|
||||
, bytestring
|
||||
, comonad
|
||||
@@ -102,29 +91,23 @@ library
|
||||
, hashable
|
||||
, invertible-grammar
|
||||
, lens
|
||||
, lucid
|
||||
, megaparsec
|
||||
, mtl
|
||||
, optparse-applicative
|
||||
, ordered-containers
|
||||
, pretty-simple
|
||||
, prettyprinter
|
||||
, prettyprinter-ansi-terminal
|
||||
, prettyprinter-lucid
|
||||
, process
|
||||
, recursion-schemes
|
||||
, scientific
|
||||
, semialign
|
||||
, sexp-grammar
|
||||
, string-interpolate
|
||||
, tardis
|
||||
, template-haskell
|
||||
, text
|
||||
, text-short
|
||||
, these
|
||||
, typed-process
|
||||
, unordered-containers
|
||||
, vector
|
||||
, witherable
|
||||
|
||||
hs-source-dirs: src
|
||||
default-language: GHC2024
|
||||
@@ -139,12 +122,12 @@ test-suite test
|
||||
-- cabal-fmt: expand test -Main
|
||||
other-modules:
|
||||
Gyehoek.Test.CPS.Eval
|
||||
Gyehoek.Test.CPS.Stackify
|
||||
Gyehoek.Test.CPS.Syntax
|
||||
Gyehoek.Test.Golden
|
||||
Gyehoek.Test.Scheme.Syntax
|
||||
Gyehoek.Test.Sexp.Print
|
||||
Gyehoek.Test.Sexp.QQ
|
||||
Gyehoek.Test.Sexp.Read
|
||||
Gyehoek.TestUtil
|
||||
Gyehoek.Test.Sexp
|
||||
Gyehoek.Test.Stack.VM
|
||||
Root
|
||||
|
||||
build-depends:
|
||||
@@ -158,6 +141,7 @@ test-suite test
|
||||
, lens
|
||||
, pretty-simple
|
||||
, process-extras
|
||||
, sexp-grammar
|
||||
, tasty
|
||||
, tasty-expected-failure
|
||||
, tasty-hunit
|
||||
@@ -165,21 +149,3 @@ test-suite test
|
||||
, text
|
||||
|
||||
default-language: GHC2024
|
||||
|
||||
-- https://github.com/martijnbastiaan/doctest-parallel/pull/66
|
||||
test-suite doctest
|
||||
import: ghcstuffs, ghcstuffs-dev
|
||||
type: exitcode-stdio-1.0
|
||||
hs-source-dirs: test
|
||||
build-depends:
|
||||
, base
|
||||
, gyehoek
|
||||
|
||||
default-extensions: CPP
|
||||
main-is: doctest.hs
|
||||
|
||||
if flag(doctest)
|
||||
build-depends: doctest-parallel >=0.1
|
||||
|
||||
else
|
||||
cpp-options: -DGYEHOEK_NO_DOCTEST
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
(define-syntax if-not
|
||||
(syntax-rules ()
|
||||
((_ c t f) (if (not c) t f))
|
||||
((_ c t) (if (not c) t))))
|
||||
|
||||
(write (macroexpand-1 '(if-not #t 123 456)))
|
||||
|
||||
(define (main)
|
||||
(let loop ((datum (read)))
|
||||
(unless (eof-object? datum)
|
||||
())))
|
||||
+1
-1
@@ -663,7 +663,7 @@ dependencies = [
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "gyehoek-wasm-runtime"
|
||||
name = "gyehoek-runtime"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"clap",
|
||||
@@ -1,5 +1,5 @@
|
||||
[package]
|
||||
name = "gyehoek-wasm-runtime"
|
||||
name = "gyehoek-runtime"
|
||||
version = "0.1.0"
|
||||
edition = "2024"
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
}:
|
||||
|
||||
crane-lib.buildPackage (lib.fix (finalAttrs: {
|
||||
pname = "gyehoek-wasm-runtime";
|
||||
pname = "gyehoek-runtime";
|
||||
version = "0.1.0";
|
||||
src = ./.;
|
||||
# cargoLock = ./Cargo.lock;
|
||||
doCheck = true;
|
||||
meta.mainProgram = "gyehoek-wasm-runtime";
|
||||
meta.mainProgram = "gyehoek-runtime";
|
||||
}))
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user