Skip to content

Commit be9b5a9

Browse files
committed
update for purescript-python 0.1.2
1 parent 11947af commit be9b5a9

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

purescripto/purescript_loader.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,25 @@
77
from purescripto.rts import META_ENV, RTS_TEMPLATE
88
import marshal
99
import zipfile
10+
import ast
1011
import io
11-
import sys
12+
1213

1314
class LoadPureScriptImplCode(LoaderForBetterLife[CodeType]):
1415
def source_to_prog(self, src: bytes, path: Path) -> CodeType:
15-
sys.setrecursionlimit(3000)
1616
filename = str(path.absolute())
1717
if path.name.endswith(".raw.py"):
18-
meta_code = compile(src, filename, "eval")
18+
expr = ast.Expression(ast.parse(src).body[0].value)
19+
src_path, meta_code = compile(expr, filename, "eval")
1920
sexpr = eval(meta_code, META_ENV)
2021
else:
2122
assert path.name.endswith(".zip.py")
2223
zip = zipfile.ZipFile(filename)
24+
src_path = zip.read("srcpath").decode('utf8')
2325
file = io.StringIO(zip.read("source").decode("utf8"))
2426
sexpr = load_topdown(file, META_ENV)
2527

26-
code = module_code(sexpr, name=self.qualified_name + "$", filename=filename)
28+
code = module_code(sexpr, name=self.qualified_name + "$", filename=src_path)
2729
return code
2830

2931
def load_program(self, b: bytes) -> CodeType:
@@ -33,7 +35,7 @@ def dump_program(self, prog: CodeType) -> bytes:
3335
return marshal.dumps(prog)
3436

3537
def suffix(self) -> Union[str, Tuple[str, ...]]:
36-
return ".raw.py", ".zip.py"
38+
return ".zip.py", ".raw.py"
3739

3840

3941
def LoadPureScript(file: str, name: str):

0 commit comments

Comments
 (0)