Commit Graph

27 Commits

Author SHA1 Message Date
crumb
36a17d092b rc (#13)
* update readme

* Literal -> Lit, LitE -> Lit

* commentary

* infer

* hindley milner inference :D

* comments and better type errors

* type IsString + test unification error

* infer nonrec let binds

infer nonrec let binds

* small

* LitE -> Lit

* LitE -> Lit

* TyInt -> TyCon "Int#"

* parse type sigs; program type sigs

* parse types

* parse programs (with types :D)

* parse programs (with type sigs :D)

* Name = Text

Name = Text

* RlpcError

* i'm on an airplane rn, my eyelids grow heavy, and i forgot my medication. should this be my final commit (of the week): gootbye

* kinda sorta typechecking

* back and medicated!

* errorful (it's not good)

* type-checked quasiquoters

* fix hm tests

* Compiler.JustRun

* lex \ instead of \\

* grammar reference

* 4:00 AM psychopath code

* oh boy am i going to hate this code in 12 hours

* application and lits

appl

* something

* goofy

* Show1 instances

* fixation fufilled - back to work!

* works

* labels

* infix decl

* expr fixups

* where

* cool

* aaaaa

* decls fix

* finally in a decent state

* replace uses of many+satisfy with takeWhileP

* layout

layouts

oh my layouts

* i did not realise my fs is case insensitive

* tysigs

* add version bounds

* grammar reference

* 4:00 AM psychopath code

* oh boy am i going to hate this code in 12 hours

* application and lits

appl

* something

* goofy

* Show1 instances

* fixation fufilled - back to work!

* works

* labels

* infix decl

* expr fixups

* where

* cool

* aaaaa

* decls fix

* finally in a decent state

* replace uses of many+satisfy with takeWhileP

* layout

layouts

oh my layouts

* i did not realise my fs is case insensitive

* tysigs

* its fine

* threaded lexer

* decent starting point

* man this sucks

* aagh

* okay layouts kinda

* kitten i'll be honest mommy's about to kill herself

* see previous commit and scale back the part where i'm joking

* version bounds

* we're so back

* fixy

* cool

* FIX REAL

* oh my god

* works

* now we're fucking GETTING SOMEWHERE

* i really need to learn git proper

* infix exprs

* remove debug flags

* renamerlp

* rename rlp

* compiles (kill me)

man

* RlpcError -> IsRlpcError

* when the "Test suite rlp-test: PASS" hits

i'm like atlas and the world is writing two lines of code

* errorful parser

* errorful parser

small

* msgenvelope

* errors!

* allow uppercase sc names in preperation for Rlp2Core

* letrec

* infer letrec expressions

* minor docs

* checklist

* minor docs

* stable enough for a demo hey?

* small fixups

* new tag syntax; preparing for Core patterns

new tag syntax; preparing for data names

* temporary pragma system

* resolve named data in case exprs

* named constr tests

* nearing release :3

* minor changes

putting this on hold; implementing TTG first

* some

* oh my god guys!!! `Located` is a lax semimonoidal endofunctor on the category Hask!!!

![abstractionjak](https://media.discordapp.net/attachments/1101767463579951154/1200248978642567168/3877820-20SoyBooru.png?ex=65c57df8&is=65b308f8&hm=67da3acb61861cab6156df014b397d78fb8815fa163f2e992474d545beb668ba&=&format=webp&quality=lossless&width=880&height=868)

* it's also a comonad. lol.

* idk

* show

* abandon ship

* at long last

more

no more undefineds

* i should've made a lisp man this sucks

* let layout

* ttg boilerplate

* fixup! ttg boilerplate

* fixup! ttg boilerplate

* organisation and cleaning

organisation and tidying

* error messages

* driver progress

* formatting

* *R functions

* -ddump-ast

* debug tags

* -ddump-eval

* core driver

* XRec fix

* rlp2core base

* ccoool

* something

* rlp TH

* sc

* expandableAlt

* expandableAlt

* fix layout_let

* parse case exprs

* case unrolling

* rose

* her light cuts deep time and time again

('her' of course referring to the field of computer science)

* tidying

* NameSupply effect

* tidy

* fix incomplete byTag

* desugar

* WIP associate postproc

corecursive

* sigh i'm gonna have to nuke the ast again in a month

* remove old files

* remove old files

* fix top-level layout

* define datatags

* diagram

* diagram

* Update README.md

* ppr debug flags

ddump-parsed

* ppr typesigs

* ppr datatags

* remove unnecessary comment

* tidying

* .hs -> .cr

update examples

* fix evil parser bug (it was a fucking typo)

* fix evil lexer bug (it was actually quite subtle unlike prev.)

* examples

* examples

* letrec + typechecking core

* Update README.md

* Rlp2Core: simple let binds

* Rlp2Core: pattern let binds

* small core fixes

* update examples

* formatting

* typed coreExpr quoter

* typechecking things

* lt

* decent state!

* constants for bool tags

* print# gm primitive

* bind VarP after pats

* fix: tag nested data names

* gte gm prim

* more nightmare GM fixes

* QuickSort example works i'm gonig to cry

* remove debug code

* remove debug tracers

* ready?

* update readme

* remove bad, incorrct, outdated docs

---------

Co-authored-by: crumbtoo <crumb@disroot.org>
2024-02-13 13:22:23 -07:00
crumbtoo
5ea629a439 real tests! 2023-12-14 12:59:31 -07:00
crumbtoo
a65ae0bd52 rlp syntax
gonna work on typechecking now lol.......
2023-12-12 13:50:07 -07:00
crumbtoo
238729cf1e core2core 2023-12-11 14:18:48 -07:00
crumbtoo
e477891bc3 cleanup 2023-12-08 14:55:30 -07:00
crumbtoo
f728b91a8a add annotation param to Expr
nightmare breaking changes. never listening to the "i'll do it later if i REALLY need it" part of my brain again.

add annotation param to Expr
2023-12-08 09:49:03 -07:00
crumbtoo
43454fa2e0 tests 2023-12-04 18:43:06 -07:00
crumbtoo
cb6321fbf8 -Wall; no warnings 2023-12-04 14:50:50 -07:00
crumbtoo
089afa0ea1 TIM -> TI 2023-11-30 14:08:19 -07:00
crumbtoo
066f883178 docs and gm pretty printer 2023-11-29 17:23:41 -07:00
crumbtoo
bb9e0a9cc9 begin gm 2023-11-28 16:45:02 -07:00
crumbtoo
7f6813beb5 tidy things up 2023-11-27 17:29:00 -07:00
crumbtoo
0b72bc8f11 temporarily remove layout support
the core language doesn't need it. let's just keep the core simple for now while i focus on more important things
2023-11-24 14:13:20 -07:00
crumbtoo
ac6c0b7457 shitty temp frontend 2023-11-22 21:53:36 -07:00
crumbtoo
d65ac970b1 quasiquoters 2023-11-21 18:15:05 -07:00
crumbtoo
878e92395a more correct lexer 2023-11-21 17:59:11 -07:00
crumbtoo
ac55a1908c unproductive day i fear 2023-11-16 19:11:01 -07:00
crumbtoo
c39a843660 core quasiquoter 2023-11-15 17:38:08 -07:00
crumbtoo
86b1538d3d reexport submodule 2023-11-15 10:12:35 -07:00
crumbtoo
9bc0512410 better stats
measurements are imperfect, and will be VERY off once a gc is implemented. using micro-lens.
2023-11-14 22:07:28 -07:00
crumbtoo
23c324fea2 TI -> TIM
formatting
2023-11-14 11:06:41 -07:00
crumbtoo
0f641c2c34 augh. (negation kinda? still no?) 2023-11-13 19:08:16 -07:00
crumbtoo
708e611799 pretty printer
uses ISeq, as described in 'Implementing Functional Languages'. going to try using a style similar to ShowS instead.
2023-11-09 14:55:03 -07:00
crumbtoo
4c8eba0b41 template instantiation 2023-11-09 13:31:16 -07:00
crumbtoo
e94f8a0ee7 Data.Heap 2023-11-09 09:08:58 -07:00
crumbtoo
2e76a54585 can't do this! killing myself tonight ‼️ here's three lines of code i spent four hours on 2023-11-08 19:21:12 -07:00
crumbtoo
2504f91572 haskell my beloved 2023-11-08 12:41:46 -07:00