Open alanjds opened 6 years ago
Comment by trotterdylan Saturday Jan 21, 2017 at 16:08 GMT
This is cool. I can think of a couple different options for integrating this off the top of my head:
The nice thing about 2. is that we could do something similar for the __builtin__
module so that we could implement some builtins in Python as has been discussed in some PRs.
The downside is that the code generator gets more complicated and it needs to hardcode a small set of imports that it will pull from sys.modules and not import the associated Go package.
Comment by S-YOU Sunday Jan 22, 2017 at 05:01 GMT
I guess with 1.
, we cannot use that feature internally, like in third_party modules, unless manually importing it.
Comment by trotterdylan Sunday Jan 22, 2017 at 21:42 GMT
I was thinking the code would run before any other Python code, so it should work for third_party modules. But 1. does seem a lot more hacky 2.
There are a couple parts of 2. that would need to be implemented:
a. Special casing some modules in the compiler so that they're pulled directly from sys.modules but no corresponding Go package is imported
b. Supporting a code generation mode where the module's Code object is called something different and grumpy API calls are not prefixed with πg.
I'm still not convinced this is the best approach (there may be others we haven't thought of) but it does seem doable.