A page for the thing that is not strictness - #26
Merged
Conversation
The landing page shows a compiler refusing a program. This shows the thing after that: an effect row compiled into an import section, and a host reading it and refusing to run a module before any of its instructions do. Two functions, one line apart. Two import listings. The host's behaviour as the test it is, because a component has no `main` and there is no command to type for it. Both programs open in the playground through a share link, so the last step is somebody adding `Io.save` to the first one and watching the listing they just read about change. Nothing on the page was written for it. The programs are demo/read_only.deed and demo/read_write.deed, the listings were read out of the built modules rather than typed, and the five tests are the ones that pin all of it on every commit. The version of this page I started writing had two commands on it that do not do what they show, copied from demo/README.md, which is deed-lang/deed#783 and is fixed there. The heading of each block is the module name rather than the file name, because the comment above each function is left off here and the file is what the playground links carry. No recording yet, which is the one box on #14 still open. Co-authored-by: GitHub Copilot <copilot@github.com>
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Four of the five boxes on #14. Not closing it: there is no recording.
The landing page shows a compiler refusing a program. This shows the thing after that, which is the harder one to explain and the better argument: an effect row compiled into an import section, and a host reading it and refusing a module before any of its instructions run.
Two functions one line apart, two import listings, and the host's behaviour as the test it is. Both programs open in the playground through a share link, so the last step is somebody adding
Io.saveto the first one and watching the listing they just read about change.Nothing on it was written for it
The programs are
demo/read_only.deedanddemo/read_write.deed. The import listings were read out of the built modules rather than typed. The five test names are the ones that pin all of it on every commit.The version of this page I started writing had two commands on it that do not do what they show, copied straight out of
demo/README.md. That is deed-lang/deed#783, fixed in deed-lang/deed#784, and the section here says what actually happens instead.Each block is headed with the module name rather than the file name, because the comment above each function is left off here and the file is what the playground links carry.
Checked
Both share links open in the playground with the whole file in the editor.
tools/check.mjspasses, 59 files. No horizontal overflow. The page is in the navigation on every other page.Written with AI assistance.