Replies: 2 comments 1 reply
-
You raise a lot of interesting points that all relate to each other: Sandboxing, effects, "ABI" for interop between HVM programs. (These also relate to FFI, both in terms of having a stable interface between a native host and HVM runtime, and HVM runtime calling into native libs, but also the sandboxing/permissions related to the FFI boundary.) I've been thinking about the same things, sandboxing with fine-grained permissions would make a lot of sense for the HVM. Regarding sandboxing in functional languages:
Also interesting talk: A Taste of Roc — Richard Feldman: https://www.youtube.com/watch?v=6qzWm_eoUXM We should probably think about how to model these effects in the HVM, and how it affects the design of the FFI when calling into native/unsafe libs. (The permission to call into native libs could be coarse-grained/boolean or more fine-grained, depending on which metadata we'll have about the effects of the lib's functions, e.g. we could try to distinguish between network and file-system access across the FFI boundary..)
That's a different aspect entirely. I think it makes sense to have a manifest for version management of deps (and you'd have a manifest file anyway to specify metadata of your HVM package). Instead of having to replace a URL in N source files (and potentially overlooking some), you just have to update the version in the manifest file. Also it would be easier to override deps (e.g. temporarily using your fork that contains a fix with |
Beta Was this translation helpful? Give feedback.
-
I don't think Url for dependency management is a good idea. go use github(which is sorta like URLs) to manage dependencies and it becomes one of the points people keep criticizing it: if you fork a library, you'd have to update the imports in the source code. That wouldn't be ideal at least. |
Beta Was this translation helpful? Give feedback.
-
I just had an idea that I wanted to get written down for the HVM.
It'd be cool to have an HVM equivalent to Deno. A couple specific points from Deno that would be cool:
And a couple other ideas that would be interesting:
extern
types, but that's still doable.https://url/to/hop.hvm
before being executed.Beta Was this translation helpful? Give feedback.
All reactions