You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
From a "bigger picture" perspective, I'm trying to make executable semantics have prelude functionality (#766). To try break down how I'm viewing that path:
Having a prelude means some cross-file compilation.
Making this work may involve cutting down on globals, so that state doesn't accidentally interfere cross-file. (Filed Remove executable semantics globals #769 to track this thought)
When multiple files are involved, we should really be tracking source locations as a file+line instead of a line only.
The idea would be to have Print be a function in a package that a prelude imports and aliases, and that it should be easy to add more things to the prelude.
Some of the refactoring work spins out of this. For example, when doing #721 I noticed we were accidentally printing pointer addresses instead of values, so I switched a little to cleaning that up.
Going past that, what I really want is for it to be possible to start writing the standard library. Implementing String or i32 (#767) as a class would both have their own set of dependencies to explore. I'll probably think about this more once the prelude work feels closer to done. Right now it still feels like there's a lot of work to get there.
Anyways, I'm hopeful this will help pull together some of my PRs conceptually, if I seem to be hopping around.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
From a "bigger picture" perspective, I'm trying to make executable semantics have prelude functionality (#766). To try break down how I'm viewing that path:
package
/import
syntax uses string literals.alias
syntax to support this.Print
is inserted to instead have it look closer to actual code, an update to Add string parsing and a print builtin #721.Print
be a function in a package that a prelude imports and aliases, and that it should be easy to add more things to the prelude.Some of the refactoring work spins out of this. For example, when doing #721 I noticed we were accidentally printing pointer addresses instead of values, so I switched a little to cleaning that up.
Going past that, what I really want is for it to be possible to start writing the standard library. Implementing String or i32 (#767) as a class would both have their own set of dependencies to explore. I'll probably think about this more once the prelude work feels closer to done. Right now it still feels like there's a lot of work to get there.
Anyways, I'm hopeful this will help pull together some of my PRs conceptually, if I seem to be hopping around.
Beta Was this translation helpful? Give feedback.
All reactions