Skip to content
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

IE-0013: Annotations for kit linking #13

Merged
merged 1 commit into from
Oct 11, 2022
Merged

IE-0013: Annotations for kit linking #13

merged 1 commit into from
Oct 11, 2022

Conversation

curiousdannii
Copy link
Collaborator

Summary

A simple set of annotations, in the sense of #6, so that directives in the source code for kits or in Include (- ... -) code can be marked up in ways which affect how they are linked.

@curiousdannii curiousdannii merged commit 3f933dc into main Oct 11, 2022
@curiousdannii curiousdannii deleted the ie-0013 branch October 11, 2022 02:41
@curiousdannii
Copy link
Collaborator Author

When replacing a function there should be a way to refer to the old version so that functions can be wrapped. Possibly that would make sense for constants too?

@curiousdannii curiousdannii added the formal-proposal A formal proposal that has been accepted for consideration by the core Inform team label Oct 24, 2022
@uecasm
Copy link

uecasm commented Dec 20, 2022

I don't like the idea of kits being able to hide identifiers. Part of the point of extensions and customisation is that kits are often wrong about what things are "done" and don't need further customisation. The power needs to be in the hands of the story author. Namespaces are fine, though, just not making things private.

Isn't a better solution for the originally posed problem a method to define a dependency order between kits, such that you know that kit B is trying to replace kit A's definition because it explicitly says so? Extensions do this via Include and via replacing (though the latter is quite clunky anyway); something similar could be used for the kits.

Having said that, I'm not entirely convinced the idea of using kits to get I6 code out of extensions is a good one -- unless there's a syntax for embedding a "kit" within an extension (not unlike the I6 code that's already there), you will end up with separate files that can become desynchronised and break unexpectedly because you have the wrong versions of things.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
formal-proposal A formal proposal that has been accepted for consideration by the core Inform team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants