about summary refs log tree commit diff
path: root/users/glittershark/achilles/src/parser/mod.rs
AgeCommit message (Collapse)AuthorFilesLines
2021-03-28 r/2356 feat(achilles): Implement a Unit typeGriffin Smith1-3/+24
Add support for a zero-sized Unit type. This requires some special at the codegen level because LLVM (unsurprisingly) only allows Void types in function return position - to make that a little easier to handle there's a new pass that strips any unit-only expressions and pulls unit-only function arguments up to new `let` bindings, so we never have to actually pass around unit values. Change-Id: I0fc18a516821f2d69172c42a6a5d246b23471e38 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2695 Reviewed-by: glittershark <grfn@gws.fyi> Tested-by: BuildkiteCI
2021-03-20 r/2294 feat(gs/achilles): Prefix top-level ascriptions with `ty`Griffin Smith1-2/+6
This makes parsing less ambiguous, which is nice (we can continue to not actually care about indentation!) and aligns nicely with `fn` for the declaration itself. Change-Id: Id48f064e2a1e01c5105297be355d0991b312b76d Reviewed-on: https://cl.tvl.fyi/c/depot/+/2615 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
2021-03-20 r/2293 feat(gs/achilles): Implement extern decls, for glibc functionsGriffin Smith1-2/+19
Implement extern decls, which codegen to LLVM as forward-declared functions, and use these as a hook into calling glibc functions. We can print to the terminal now! The integration tests can test this now. Change-Id: I70af4546b417b888ad9fbb18798db240f77f4e71 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2614 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
2021-03-15 r/2279 merge(glittershark/achilles): Subtree import at 'b93268085a'Vincent Ambo1-0/+197
Imported from https://github.com/glittershark/achilles/ git-subtree-dir: users/glittershark/achilles git-subtree-mainline: 4d193f239525954631ba9d789ca3aea9a2f4e14d git-subtree-split: b93268085aab14c80a400c299da5d04d2781098e Change-Id: I64a583b454bbe03e20358ad7808939a4cbc212ba