Commit graph

1409 commits

Author SHA1 Message Date
Vincent Ambo
4411eea11f fix(gemma): Fix build process in Nix 2019-09-02 02:14:39 +01:00
Vincent Ambo
b43e5529f7 feat(third_party): Add missing Quicklisp packages for Gemma
Gemma depends on cl-prevalence, which isn't in the nixpkgs Quicklisp
snapshot.

This adds the package and its dependencies to the overlay.
2019-09-02 01:24:41 +01:00
Vincent Ambo
a635beabfa fix: Correct naming of variables in overlay function 2019-09-02 01:24:23 +01:00
Vincent Ambo
9622ed36a1
Merge pull request #1 from tazjin/feat/travis-builds
Add build configuration and various other repo setup chores
2019-08-29 13:10:15 +01:00
Vincent Ambo
565a00254b fix: Bump Nix in CI setup to 2.2.2
Yants does not seem to work with older versions of Nix and I have not
yet figured out why.
2019-08-29 13:06:12 +01:00
Vincent Ambo
f3c66e172c chore: Add contribution & code of conduct information 2019-08-28 15:06:43 +01:00
Vincent Ambo
10a93400f8 chore: Add Apache License 2.0 2019-08-28 15:03:17 +01:00
Vincent Ambo
d53f7f134b docs: Add build status to README 2019-08-28 15:02:39 +01:00
Vincent Ambo
0c1a6b88dd feat: Add Travis CI configuration 2019-08-28 14:55:56 +01:00
Vincent Ambo
6468845255 chore: Change file layout to match repository instead of gist 2019-08-28 14:55:53 +01:00
Vincent Ambo
34a5917981 test: Add test for pattern matching on sum types 2019-08-28 14:37:00 +01:00
Vincent Ambo
cb45536124 test: Add a test to check that all types match the 'type'-type 2019-08-28 14:37:00 +01:00
Vincent Ambo
b622bcef7d feat: Introduce composable type errors and type parameter checking
This refactoring moves the type definitions into a recursively
evaluated attribute set, which makes it possibe to refer to types in
the definitions of other types.

This functionality is used to type-check some of the type parameters
passed in to other types. This is not yet done for all higher-order
types because the evaluation semantics of Nix make it less useful for
some cases.

Further the definition of a type itself is now a stricter
representation that works for all types except typed functions, which
allows for composable error messages.
2019-08-28 14:36:58 +01:00
Vincent Ambo
f6635fec98 feat: Add rough initial version of sum types
Sum types are represented as attribute sets with a single key in them.
2019-08-28 14:36:55 +01:00
Vincent Ambo
ef4ded7b98 docs: Add defun to README 2019-08-28 14:36:50 +01:00
Vincent Ambo
5949663fcd feat: Implement support for typing functions
The defun helper takes a type signature and a function and makes a
typed version. Because we can.
2019-08-28 14:36:47 +01:00
Vincent Ambo
1da22249bd test: Add some simple tests for type-checks
Does not currently test check failures, which makes it sort of not as
useful as you'd think.
2019-08-28 14:36:43 +01:00
Vincent Ambo
08116dbf51 chore: Add Google's copyright header 2019-08-28 14:36:39 +01:00
Vincent Ambo
bc130254bc docs: Update struct screenshot in README 2019-08-28 14:36:36 +01:00
Vincent Ambo
ca0cf11ca9 feat: Improved error message for missing struct fields 2019-08-28 14:36:33 +01:00
Vincent Ambo
4ebc069a3f docs: Add enum screenshot to README 2019-08-28 14:36:29 +01:00
Vincent Ambo
661e09daac feat: Add enum support 2019-08-28 14:36:25 +01:00
Vincent Ambo
2e576e10ab refactor: Gain back a few more lines 2019-08-28 14:36:20 +01:00
Vincent Ambo
2acdbb5009 refactor: Drop back to below 100 lines :) 2019-08-28 14:36:14 +01:00
Vincent Ambo
76f9b1638c feat: Add function type
It's not currently possible to check arguments for curried functions,
but there might be something on the horizon for attribute set
functions.
2019-08-28 14:36:11 +01:00
Vincent Ambo
103e0b4d25 feat: Add derivation type 2019-08-28 14:36:08 +01:00
Vincent Ambo
cb0d07fa30 docs: Fix image links (relative is not supported in gists) 2019-08-28 14:36:00 +01:00
Vincent Ambo
199254ba7a chore: Move screenshots into the gist 2019-08-28 14:35:56 +01:00
Vincent Ambo
040b719570 feat: Support better error messages for list/attrs element checks 2019-08-28 14:35:53 +01:00
Vincent Ambo
fe33a82a07 feat: Initial check-in of type system sketch 2019-08-28 14:35:41 +01:00
Vincent Ambo
a58af3e371 feat(k8s): Configure HTTPS ingress for the blog
Uses Google-managed certificates and an Ingress resource to set up an
HTTPS load-balancer.

This probably won't be the final version as the GKE Ingress is very
limited and can not do things like redirect URLs, which I need to
decommission the old setup.
2019-08-27 12:44:37 +01:00
Vincent Ambo
cae99692de feat(k8s): Add Google managed TLS certificates
Introduces certificates for tazj.in & www.tazj.in.
2019-08-27 12:43:55 +01:00
Vincent Ambo
593e96da60 chore(tazblog): Clean up unused dependencies 2019-08-25 23:21:26 +01:00
Vincent Ambo
1247848d76 refactor(tazblog): Implement HLint lints in all files 2019-08-25 23:07:43 +01:00
Vincent Ambo
561ed1fbbb chore(tazblog): Remove i18n features
The blog has been English only for a few years. Old entries that
survived the migration to DNS will still be accessible.
2019-08-25 22:53:38 +01:00
Vincent Ambo
094aafecdd chore(tazblog): Remove 'read more' feature 2019-08-25 20:22:57 +01:00
Vincent Ambo
6450347bf1 chore(tools): Remove ormolu from tools
The Ormolu derivation is too large to be instantiated on-demand. I've
resorted to installing this tool into my profile instead.
2019-08-25 20:17:03 +01:00
Vincent Ambo
1747df418e chore(tazblog): Format source files with ormolu
Ormolu's formatting is quite annoying (it uses a lot of unnecessary
vertical space and doesn't align elements), but I can't be bothered to
do manual formatting - especially because whatever formatting
haskell-mode in Emacs produces seems to depend on an opaque state
machine or something.
2019-08-25 20:15:53 +01:00
Vincent Ambo
2fdc872228 feat(build): Add Terraform from unstable channel 2019-08-25 17:55:08 +01:00
Vincent Ambo
155f17173b chore(gcp): Enable Cloud DNS service 2019-08-25 17:47:34 +01:00
Vincent Ambo
d3f8dd15f3 fix(gemma): Almost fix Gemma build by porting an old Elm
This pulls in an old version of Elm from NixOS 17.09 which can still
build the Elm code in Gemma.

However, the Common Lisp build is now broken in some other way.
2019-08-23 15:28:23 +01:00
Vincent Ambo
31e83b33cc chore(k8s): More tazblog replicas 2019-08-23 14:13:13 +01:00
Vincent Ambo
be074c6085 refactor(tazblog): Move blog configuration to envvars
The port and resource directory are now specified via environment
variables and a wrapper script is created by Nix that sets the
resource path and so on correctly.
2019-08-23 12:03:17 +01:00
Vincent Ambo
fb930e4db7 fix(tazblog): Remove debug trace 2019-08-23 11:42:23 +01:00
Vincent Ambo
4f88851971 fix(blog_cli): Quote JSON output for post dates 2019-08-23 11:24:03 +01:00
Vincent Ambo
57059fec2b feat(blog_cli): Add flag to set post date and serialise as date only 2019-08-23 10:57:15 +01:00
Vincent Ambo
bd47122afb chore(blog): Minor changes to integrate DNS based backend 2019-08-22 18:58:11 +01:00
Vincent Ambo
c5ef3e01b2 feat(tazblog): Implement entry fetching from DNS
Not all error cases are properly handled yet, stay tuned.
2019-08-22 18:57:49 +01:00
Vincent Ambo
f298bdd183 feat(tazblog): Add a Nix shell expression that includes GHC with deps 2019-08-21 12:17:03 +01:00
Vincent Ambo
008be5c2e1 refactor(tazblog): Directly instantiate Resolver when launching
Caching behaviour is tied to the resolver.
2019-08-21 11:07:25 +01:00