cleanup TODO.md a little

This commit is contained in:
2025-09-29 11:59:57 -07:00
parent f3a5e9012c
commit bab25f8dce
2 changed files with 8 additions and 8 deletions

12
TODO.md
View File

@@ -111,7 +111,6 @@
- [x] Add icit to Lam - [x] Add icit to Lam
- [ ] add jump to definition magic to vscode extension - [ ] add jump to definition magic to vscode extension
- [x] Working for top level, we may want a proper REPL or LSP (and FC ranges?) before we do others - [x] Working for top level, we may want a proper REPL or LSP (and FC ranges?) before we do others
- [x] TCO? Probably needed in browser, since v8 doesn't do it. bun and JavaScriptCore do support it.
- [x] deconstructing `let` (and do arrows) - [x] deconstructing `let` (and do arrows)
- [x] Fix string printing to be js instead of weird Idris strings - [x] Fix string printing to be js instead of weird Idris strings
- [x] make $ special - [x] make $ special
@@ -123,7 +122,6 @@
- [x] if / then / else sugar - [x] if / then / else sugar
- [x] `data Foo = A | B` sugar - [x] `data Foo = A | B` sugar
- [x] records - [x] records
- [ ] record sugar? (detailed above)
- [x] where - [x] where
- [x] add namespaces - [x] add namespaces
- [x] magic nat? - [x] magic nat?
@@ -131,9 +129,10 @@
- Idris needs help with the case tree to keep code size down, do it in stages, one dcon at a time. - Idris needs help with the case tree to keep code size down, do it in stages, one dcon at a time.
- I'm not sure it can go a few steps deep and have a default hanging off the side, so we may need to put the default case in another function ourselves. - I'm not sure it can go a few steps deep and have a default hanging off the side, so we may need to put the default case in another function ourselves.
- [x] Strategy to avoid three copies of `Prelude.newt` in this source tree - [x] Strategy to avoid three copies of `Prelude.newt` in this source tree
- [ ] `mapM` needs inference help when scrutinee (see Day2.newt) - [x] `mapM` needs inference help when scrutinee (see Day2.newt)
- Meta hasn't been solved yet. It's Normal, but maybe our delayed solving of Auto plays into it. Idris will peek at LHS of CaseAlts to guess the type if it doesn't have one. - Meta hasn't been solved yet. It's Normal, but maybe our delayed solving of Auto plays into it. Idris will peek at LHS of CaseAlts to guess the type if it doesn't have one.
- [ ] Can't skip an auto. We need `{{_}}` to be auto or have a `%search` syntax. - Probably fixed by trying to solve auto immediately
- [x] Can't skip an auto. We need `{{_}}` to be auto or have a `%search` syntax.
- [x] add filenames to FC - [x] add filenames to FC
- [ ] Add full ranges to FC - [ ] Add full ranges to FC
- [x] maybe use backtick for javascript so we don't highlight strings as JS - [x] maybe use backtick for javascript so we don't highlight strings as JS
@@ -232,11 +231,12 @@
- [ ] LSP - [ ] LSP
- [x] don't match forced constructors at runtime - [x] don't match forced constructors at runtime
- I think we got this by not switching for single cases - I think we got this by not switching for single cases
- [ ] magic nat (codegen as number with appropriate pattern matching) - [x] magic nat (codegen as number with appropriate pattern matching)
- [ ] magic tuple? (codegen as array) - [ ] magic tuple? (codegen as array)
- [ ] magic newtype? (drop them in codegen) - [ ] magic newtype? (drop them in codegen)
- [x] vscode: syntax highlighting for String - [x] vscode: syntax highlighting for String
- [ ] add `pop` or variant of `pfunc` that maps to an operator, giving the js operator and precedence on RHS - [ ] add `pop` or variant of `pfunc` that maps to an operator, giving the js operator and precedence on RHS
- This has now been hard-coded in codegen, but a syntax or something would be better.
- [ ] consider moving caselet, etc. desugaring out of the parser - [ ] consider moving caselet, etc. desugaring out of the parser
- [ ] pattern matching lambda - [ ] pattern matching lambda
- I kept wanting this in AoC and use it a lot in the newt code - I kept wanting this in AoC and use it a lot in the newt code
@@ -245,7 +245,7 @@
### Parsing ### Parsing
- [ ] consider allowing σ etc in identifiers - [x] consider allowing σ etc in identifiers
- Probably need to merge oper / ident first and sort out mixfix in parsing - Probably need to merge oper / ident first and sort out mixfix in parsing
- The mixfix parsing can handle this now, need to update lexing. - The mixfix parsing can handle this now, need to update lexing.
- [ ] Parse error not ideal for `\x y z b=> b` (points to lambda) - [ ] Parse error not ideal for `\x y z b=> b` (points to lambda)

View File

@@ -37,7 +37,7 @@ parseColor line = case split line " " of
-- FIXME implicit isn't being solved in time here. -- FIXME implicit isn't being solved in time here.
parseDraw : String -> Either String Draw parseDraw : String -> Either String Draw
parseDraw line = parseDraw line =
case mapM {Either String} parseColor $ split line ", " of case mapM parseColor $ split line ", " of
Right parts => Right $ foldl maxd (0,0,0) parts Right parts => Right $ foldl maxd (0,0,0) parts
Left err => Left err Left err => Left err
@@ -47,7 +47,7 @@ parseGame line =
| _ => Left $ "No colon in " ++ line in | _ => Left $ "No colon in " ++ line in
let ("Game" :: ns :: Nil) = split a " " let ("Game" :: ns :: Nil) = split a " "
| _ => Left $ "No Game" in | _ => Left $ "No Game" in
let (Right parts) = mapM {Either String} parseDraw $ split b "; " let (Right parts) = mapM parseDraw $ split b "; "
| Left err => Left err in | Left err => Left err in
Right $ MkGame (toInt ns) parts Right $ MkGame (toInt ns) parts