Releases: deed-lang/deed
Releases · deed-lang/deed
Release list
v0.1.0
What's Changed
- Add repository scaffolding and design documents by @onatozmenn in #3
- Lexer, structured diagnostics and the Cargo workspace by @onatozmenn in #5
- Parser and AST by @onatozmenn in #7
- Name resolution by @onatozmenn in #9
- Type checking by @onatozmenn in #11
- Effect and capability checking by @onatozmenn in #13
- A
vowbinary by @onatozmenn in #15 - Assignment, restricted to handler state by @onatozmenn in #17
- An interpreter, and
vow testby @onatozmenn in #19 Resultbelongs in the language by @onatozmenn in #21- Patterns for
okanderrby @onatozmenn in #23 - The worked example modelled something that cannot exist by @onatozmenn in #25
- Bind the returned value in
ensuresby @onatozmenn in #27 - Property tests generated from contracts by @onatozmenn in #29
- Capabilities that can actually do something by @onatozmenn in #31
- A Dir that cannot be escaped by @onatozmenn in #33
- vow fmt, so P4 is enforced rather than described by @onatozmenn in #35
- Modules that are actually loaded by @onatozmenn in #38
- Types that survive crossing a module boundary by @onatozmenn in #39
- Running code that lives in another module by @onatozmenn in #41
- Effects that cross a module boundary by @onatozmenn in #43
- vow fix, so P7 is a thing a machine does by @onatozmenn in #45
- Measure P9, and fix the quadratic it found by @onatozmenn in #47
- Prove refinements from facts, not just from literals by @onatozmenn in #49
- Read a callee's contract at the call site, so proofs compose by @onatozmenn in #51
- Close the hole a closure opened in the effect row by @onatozmenn in #53
- Make
Divergereal, and stop unbounded recursion killing the process by @onatozmenn in #55 - Join strings, and stop pretending records can be ordered by @onatozmenn in #57
- Make the Guarded tier actually guard by @onatozmenn in #59
- Give a handler operation the types its effect declared by @onatozmenn in #61
- Find the rest of the unknowns on purpose by @onatozmenn in #63
- Carry a function's effect row across the module boundary by @onatozmenn in #65
- Hold the relationship between two names, not just their ranges by @onatozmenn in #67
- Let a promise about an argument reach the call site by @onatozmenn in #69
- Tell a
Resultapart from the number inside it by @onatozmenn in #71 - Count a name more than once by @onatozmenn in #73
- Say when it was the arithmetic that defeated a proof by @onatozmenn in #75
- Let a function value cross a boundary when it promises nothing by @onatozmenn in #77
- Delete what nothing calls by @onatozmenn in #79
- Say what the compiler does now, not what it used to by @onatozmenn in #81
- Write down the security claims and put the conventions where they are read by @onatozmenn in #83
- feat: let a program hold more than one of something by @onatozmenn in #85
- feat: get from text to a number and back by @onatozmenn in #87
- docs: write a program somebody would want, and say what it could not do by @onatozmenn in #89
- feat: let an editor ask the compiler what it found by @onatozmenn in #92
- feat: let the editor ask about one place rather than the whole file by @onatozmenn in #94
- feat: let a program write a file, and nothing else by @onatozmenn in #96
- feat: let the server see the other files in the workspace by @onatozmenn in #98
- feat: follow an imported name to the file that declares it by @onatozmenn in #100
- feat: decide what a loop looks like, and make it a fold by @onatozmenn in #101
- feat: let a program be told something when it starts by @onatozmenn in #103
- feat: list every use of a name, wherever it is by @onatozmenn in #106
- feat: let a function type say what it may perform by @onatozmenn in #107
- feat: add trim, the one text operation the language cannot express by @onatozmenn in #109
- feat: rename a name everywhere it is written by @onatozmenn in #111
- feat: generic functions, matched rather than unified by @onatozmenn in #113
- feat: generic records and choices, so Option is declared rather than built in by @onatozmenn in #115
- feat: row variables, so one map serves every callback by @onatozmenn in #117
- feat: a module's name says where it lives by @onatozmenn in #119
- feat: completion, the last thing missing from the language server by @onatozmenn in #121
- measure: what the edit loop costs, before caching anything in it by @onatozmenn in #123
- feat: listing a directory, which is a different amount of authority from reading one by @onatozmenn in #125
- fix: overflow is an error, so a value that exists is inside Int by @onatozmenn in #127
- todo.vow can mark a task done, and
stateis a name again by @onatozmenn in #129 - A function value keeps its row wherever it came from by @onatozmenn in #131
- The run holds the program to the rows it declared by @onatozmenn in #133
- Installing a handler costs what the handler performs by @onatozmenn in #135
- The runtime row check covers handler operations by @onatozmenn in #137
- A row variable in two parameters means the union by @onatozmenn in #139
- todo.vow can say which task when two have the same title by @onatozmenn in #141
- How long something is is a name the prover knows by @onatozmenn in #143
- A precondition is read where the call was written by @onatozmenn in #145
- A
forsays where in the list it is by @onatozmenn in #148 - A
Dircan delete, and deleting is its own authority by @onatozmenn in #150 - Creating a directory is not authority creation by @onatozmenn in #152
- A test can say that a contract turns something down by @onatozmenn in #154
- A struct literal with no fields can be told from a block by @onatozmenn in #156
- Everything the generator can build now shrinks by @onatozmenn in #158
- Say what
vow fixcan actually apply by @onatozmenn in #160 vow fixwrites the row a diagnostic asked for by @onatozmenn in #161- An expression ends at the end of a line by @onatozmenn in #163
- A statement whose value nobody reads says so by @onatozmenn in #165
- A let nobody reads says so by @onatozmenn in #167
- The editor offers the patch a diagnostic carries by @onatozmenn in #169
- vow fix takes out an import nothing uses by @onatozmenn in #171
- A refinement about a length can be proven by @onatozmenn in #173
- The two warnings about something going nowhere carry a fix by @onatozmenn in #175
- A refinement over a list is about the predicate by @onatozmenn in #177
- The editor can see what a file declares by @onatozmenn in #179
- Io.epoch reads the machine's clock by @onatozmenn in #181
- A for can stop early by @onatozmenn in https:...