|
54 | 54 | import com.oracle.graal.python.builtins.PythonBuiltins;
|
55 | 55 | import com.oracle.graal.python.builtins.objects.PNone;
|
56 | 56 | import com.oracle.graal.python.builtins.objects.function.PythonCallable;
|
| 57 | +import com.oracle.graal.python.nodes.SpecialAttributeNames; |
57 | 58 | import com.oracle.graal.python.nodes.function.PythonBuiltinNode;
|
| 59 | +import com.oracle.graal.python.runtime.PythonContext; |
| 60 | +import com.oracle.graal.python.runtime.PythonCore; |
| 61 | +import com.oracle.graal.python.runtime.PythonOptions; |
58 | 62 | import com.oracle.graal.python.runtime.exception.PythonErrorType;
|
59 | 63 | import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
|
| 64 | +import com.oracle.truffle.api.TruffleFile; |
60 | 65 | import com.oracle.truffle.api.TruffleLanguage.Env;
|
61 | 66 | import com.oracle.truffle.api.dsl.Cached;
|
62 | 67 | import com.oracle.truffle.api.dsl.Fallback;
|
@@ -84,6 +89,23 @@ protected List<com.oracle.truffle.api.dsl.NodeFactory<? extends PythonBuiltinNod
|
84 | 89 | return InteropModuleBuiltinsFactory.getFactories();
|
85 | 90 | }
|
86 | 91 |
|
| 92 | + @Override |
| 93 | + public void initialize(PythonCore core) { |
| 94 | + super.initialize(core); |
| 95 | + |
| 96 | + PythonContext context = core.getContext(); |
| 97 | + Env env = context.getEnv(); |
| 98 | + String coreHome = PythonOptions.getOption(context, PythonOptions.CoreHome); |
| 99 | + try { |
| 100 | + TruffleFile coreDir = env.getTruffleFile(coreHome); |
| 101 | + TruffleFile docDir = coreDir.resolveSibling("doc"); |
| 102 | + if (docDir.exists() || (docDir = coreDir.getParent().resolveSibling("doc")).exists()) { |
| 103 | + builtinConstants.put(SpecialAttributeNames.__DOC__, new String(docDir.resolve("INTEROP.md").readAllBytes())); |
| 104 | + } |
| 105 | + } catch (SecurityException | IOException e) { |
| 106 | + } |
| 107 | + } |
| 108 | + |
87 | 109 | @Builtin(name = "import_value", minNumOfPositionalArgs = 1, keywordArguments = {"name"})
|
88 | 110 | @GenerateNodeFactory
|
89 | 111 | public abstract static class ImportNode extends PythonBuiltinNode {
|
|
0 commit comments