-
Notifications
You must be signed in to change notification settings - Fork 115
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
defmutable-rules: identifier-rules variant of defmutable #1220
Conversation
✅ Deploy Preview for elastic-ritchie-8f47f9 ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Shouldn't we rename defmutable-rules to defmutable and be done?
- All the use sites of "defmutable" assume the old API which I suspect is the API of defmutable-rules and NOT that of the current defmutable
- If the problem is telling the type inferencer about the out-of-module set! --- why not add a new kind of annotation just for that, instead of doing weird things in identifier-rules?
|
Updated, as discussed. |
and the artist formerly known as defmutable, is defmutable*
@@ -13,7 +13,7 @@ namespace: #f | |||
[["Gerbil" :: (gerbil-version-string)] | |||
["Gambit" :: (system-version-string)]]) | |||
|
|||
(defmutable build-manifest gerbil-system-manifest : :list) | |||
(defmutable* build-manifest gerbil-system-manifest : :list) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why use defmutable* rather than defmutable?
And if so, you must update std/cli/multicall.ss (as found with git grep build-manifest).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we cannot export macros from the runtime through the prelude interface, as I have explained to you.
@@ -45,7 +45,7 @@ namespace: #f | |||
=> :string | |||
(build-manifest-string gerbil-system-manifest)) | |||
|
|||
(defmutable gerbil-greeting (gerbil-system-version-string) : :string) | |||
(defmutable* gerbil-greeting (gerbil-system-version-string) : :string) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same question.
Need to update gerbil/boot-gxi.c, gerbil/interactive/init.ss.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
same reply.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You still need to update gerbil/boot-gxi.c
OK, but then you need to update the places that use the variables that used to be defmutable and are now defmutable* |
done. |
done. |
Let's have types there too. Also improves match code generation a tad. On top of #1220
We can't use it in the runtime due to the public exports, but it is probably more of what you want in userland.