jaclang 0.7.17__py3-none-any.whl → 0.7.19__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of jaclang might be problematic. Click here for more details.
- jaclang/cli/cli.py +5 -7
- jaclang/compiler/passes/ir_pass.py +2 -0
- jaclang/compiler/passes/main/import_pass.py +2 -1
- jaclang/compiler/passes/main/py_collect_dep_pass.py +8 -0
- jaclang/compiler/passes/main/pyast_gen_pass.py +25 -0
- jaclang/compiler/passes/main/registry_pass.py +4 -0
- jaclang/compiler/passes/main/tests/fixtures/pygame_mock/__init__.pyi +3 -0
- jaclang/compiler/passes/main/tests/test_import_pass.py +10 -10
- jaclang/compiler/passes/main/type_check_pass.py +4 -4
- jaclang/compiler/passes/tool/jac_formatter_pass.py +52 -32
- jaclang/compiler/passes/tool/tests/fixtures/general_format_checks/line_spacing.jac +55 -0
- jaclang/langserve/engine.py +28 -16
- jaclang/langserve/tests/fixtures/import_include_statements.jac +3 -3
- jaclang/langserve/tests/test_server.py +10 -6
- jaclang/langserve/utils.py +11 -100
- jaclang/plugin/builtin.py +8 -4
- jaclang/plugin/default.py +17 -3
- jaclang/plugin/feature.py +10 -0
- jaclang/plugin/spec.py +12 -0
- jaclang/runtimelib/importer.py +2 -0
- jaclang/runtimelib/machine.py +45 -3
- jaclang/runtimelib/memory.py +6 -6
- jaclang/settings.py +4 -0
- jaclang/tests/fixtures/bar.jac +1 -1
- jaclang/tests/fixtures/builtin_dotgen.jac +1 -0
- jaclang/tests/fixtures/foo.jac +0 -1
- jaclang/tests/fixtures/objref.jac +12 -0
- jaclang/tests/fixtures/walker_update.jac +19 -0
- jaclang/tests/test_language.py +73 -4
- {jaclang-0.7.17.dist-info → jaclang-0.7.19.dist-info}/METADATA +6 -2
- {jaclang-0.7.17.dist-info → jaclang-0.7.19.dist-info}/RECORD +33 -29
- {jaclang-0.7.17.dist-info → jaclang-0.7.19.dist-info}/WHEEL +0 -0
- {jaclang-0.7.17.dist-info → jaclang-0.7.19.dist-info}/entry_points.txt +0 -0
jaclang/plugin/builtin.py
CHANGED
|
@@ -2,11 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
-
from typing import
|
|
5
|
+
from typing import Optional
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
from jaclang.runtimelib.constructs import NodeArchitype
|
|
7
|
+
from jaclang.plugin.feature import JacFeature as Jac
|
|
8
|
+
from jaclang.runtimelib.constructs import Architype, NodeArchitype
|
|
10
9
|
|
|
11
10
|
|
|
12
11
|
def dotgen(
|
|
@@ -40,3 +39,8 @@ def dotgen(
|
|
|
40
39
|
node_limit=node_limit,
|
|
41
40
|
dot_file=dot_file,
|
|
42
41
|
)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def jid(obj: Architype) -> str:
|
|
45
|
+
"""Get the id of the object."""
|
|
46
|
+
return Jac.object_ref(obj)
|
jaclang/plugin/default.py
CHANGED
|
@@ -12,13 +12,13 @@ from collections import OrderedDict
|
|
|
12
12
|
from dataclasses import field
|
|
13
13
|
from functools import wraps
|
|
14
14
|
from typing import Any, Callable, Mapping, Optional, Sequence, Type, Union
|
|
15
|
+
from uuid import UUID
|
|
15
16
|
|
|
16
17
|
import jaclang.compiler.absyntree as ast
|
|
17
18
|
from jaclang.compiler.constant import EdgeDir, colors
|
|
18
19
|
from jaclang.compiler.passes.main.pyast_gen_pass import PyastGenPass
|
|
19
20
|
from jaclang.compiler.semtable import SemInfo, SemRegistry, SemScope
|
|
20
21
|
from jaclang.runtimelib.constructs import (
|
|
21
|
-
Anchor,
|
|
22
22
|
Architype,
|
|
23
23
|
DSFunc,
|
|
24
24
|
EdgeAnchor,
|
|
@@ -44,7 +44,6 @@ import pluggy
|
|
|
44
44
|
hookimpl = pluggy.HookimplMarker("jac")
|
|
45
45
|
|
|
46
46
|
__all__ = [
|
|
47
|
-
"Anchor",
|
|
48
47
|
"EdgeAnchor",
|
|
49
48
|
"GenericEdge",
|
|
50
49
|
"hookimpl",
|
|
@@ -72,6 +71,21 @@ class JacFeatureDefaults:
|
|
|
72
71
|
"""Get current execution context."""
|
|
73
72
|
return ExecutionContext.get()
|
|
74
73
|
|
|
74
|
+
@staticmethod
|
|
75
|
+
@hookimpl
|
|
76
|
+
def get_object(id: str) -> Architype | None:
|
|
77
|
+
if id == "root":
|
|
78
|
+
return Jac.get_context().root.architype
|
|
79
|
+
elif obj := Jac.get_context().mem.find_by_id(UUID(id)):
|
|
80
|
+
return obj.architype
|
|
81
|
+
|
|
82
|
+
return None
|
|
83
|
+
|
|
84
|
+
@staticmethod
|
|
85
|
+
@hookimpl
|
|
86
|
+
def object_ref(obj: Architype) -> str:
|
|
87
|
+
return obj.__jac__.id.hex
|
|
88
|
+
|
|
75
89
|
@staticmethod
|
|
76
90
|
@hookimpl
|
|
77
91
|
def make_architype(
|
|
@@ -903,7 +917,7 @@ class JacBuiltin:
|
|
|
903
917
|
for source, target, edge in connections:
|
|
904
918
|
dot_content += (
|
|
905
919
|
f"{visited_nodes.index(source)} -> {visited_nodes.index(target)} "
|
|
906
|
-
f' [label="{html.escape(str(edge.__jac__.architype
|
|
920
|
+
f' [label="{html.escape(str(edge.__jac__.architype))} "];\n'
|
|
907
921
|
)
|
|
908
922
|
for node_ in visited_nodes:
|
|
909
923
|
color = (
|
jaclang/plugin/feature.py
CHANGED
|
@@ -46,6 +46,16 @@ class JacFeature:
|
|
|
46
46
|
"""Get current execution context."""
|
|
47
47
|
return pm.hook.get_context()
|
|
48
48
|
|
|
49
|
+
@staticmethod
|
|
50
|
+
def get_object(id: str) -> Architype | None:
|
|
51
|
+
"""Get object given id."""
|
|
52
|
+
return pm.hook.get_object(id=id)
|
|
53
|
+
|
|
54
|
+
@staticmethod
|
|
55
|
+
def object_ref(obj: Architype) -> str:
|
|
56
|
+
"""Get object reference id."""
|
|
57
|
+
return pm.hook.object_ref(obj=obj)
|
|
58
|
+
|
|
49
59
|
@staticmethod
|
|
50
60
|
def make_architype(
|
|
51
61
|
cls: type,
|
jaclang/plugin/spec.py
CHANGED
|
@@ -48,6 +48,18 @@ class JacFeatureSpec:
|
|
|
48
48
|
"""Get current execution context."""
|
|
49
49
|
raise NotImplementedError
|
|
50
50
|
|
|
51
|
+
@staticmethod
|
|
52
|
+
@hookspec(firstresult=True)
|
|
53
|
+
def get_object(id: str) -> Architype | None:
|
|
54
|
+
"""Get object given id.."""
|
|
55
|
+
raise NotImplementedError
|
|
56
|
+
|
|
57
|
+
@staticmethod
|
|
58
|
+
@hookspec(firstresult=True)
|
|
59
|
+
def object_ref(obj: Architype) -> str:
|
|
60
|
+
"""Get object given id.."""
|
|
61
|
+
raise NotImplementedError
|
|
62
|
+
|
|
51
63
|
@staticmethod
|
|
52
64
|
@hookspec(firstresult=True)
|
|
53
65
|
def make_architype(
|
jaclang/runtimelib/importer.py
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
5
|
import importlib
|
|
6
|
+
import importlib.util
|
|
6
7
|
import os
|
|
7
8
|
import sys
|
|
8
9
|
import types
|
|
@@ -339,6 +340,7 @@ class JacImporter(Importer):
|
|
|
339
340
|
spec.full_target,
|
|
340
341
|
caller_dir=spec.caller_dir,
|
|
341
342
|
cachable=spec.cachable,
|
|
343
|
+
reload=reload if reload else False,
|
|
342
344
|
)
|
|
343
345
|
try:
|
|
344
346
|
if not codeobj:
|
jaclang/runtimelib/machine.py
CHANGED
|
@@ -6,7 +6,7 @@ import os
|
|
|
6
6
|
import sys
|
|
7
7
|
import types
|
|
8
8
|
from contextvars import ContextVar
|
|
9
|
-
from typing import Optional
|
|
9
|
+
from typing import Optional, Union
|
|
10
10
|
|
|
11
11
|
from jaclang.compiler.absyntree import Module
|
|
12
12
|
from jaclang.compiler.compile import compile_jac
|
|
@@ -55,11 +55,12 @@ class JacMachine:
|
|
|
55
55
|
full_target: str,
|
|
56
56
|
caller_dir: str,
|
|
57
57
|
cachable: bool = True,
|
|
58
|
+
reload: bool = False,
|
|
58
59
|
) -> Optional[types.CodeType]:
|
|
59
60
|
"""Retrieve bytecode from the attached JacProgram."""
|
|
60
61
|
if self.jac_program:
|
|
61
62
|
return self.jac_program.get_bytecode(
|
|
62
|
-
module_name, full_target, caller_dir, cachable
|
|
63
|
+
module_name, full_target, caller_dir, cachable, reload=reload
|
|
63
64
|
)
|
|
64
65
|
return None
|
|
65
66
|
|
|
@@ -105,6 +106,46 @@ class JacMachine:
|
|
|
105
106
|
return nodes
|
|
106
107
|
return []
|
|
107
108
|
|
|
109
|
+
def update_walker(
|
|
110
|
+
self, module_name: str, items: Optional[dict[str, Union[str, Optional[str]]]]
|
|
111
|
+
) -> tuple[types.ModuleType, ...]:
|
|
112
|
+
"""Reimport the module."""
|
|
113
|
+
from .importer import JacImporter, ImportPathSpec
|
|
114
|
+
|
|
115
|
+
if module_name in self.loaded_modules:
|
|
116
|
+
try:
|
|
117
|
+
old_module = self.loaded_modules[module_name]
|
|
118
|
+
importer = JacImporter(self)
|
|
119
|
+
spec = ImportPathSpec(
|
|
120
|
+
target=module_name,
|
|
121
|
+
base_path=self.base_path,
|
|
122
|
+
absorb=False,
|
|
123
|
+
cachable=True,
|
|
124
|
+
mdl_alias=None,
|
|
125
|
+
override_name=None,
|
|
126
|
+
lng="jac",
|
|
127
|
+
items=items,
|
|
128
|
+
)
|
|
129
|
+
import_result = importer.run_import(spec, reload=True)
|
|
130
|
+
ret_items = []
|
|
131
|
+
if items:
|
|
132
|
+
for item_name in items:
|
|
133
|
+
if hasattr(old_module, item_name):
|
|
134
|
+
new_attr = getattr(import_result.ret_mod, item_name, None)
|
|
135
|
+
if new_attr:
|
|
136
|
+
ret_items.append(new_attr)
|
|
137
|
+
setattr(
|
|
138
|
+
old_module,
|
|
139
|
+
item_name,
|
|
140
|
+
new_attr,
|
|
141
|
+
)
|
|
142
|
+
return (old_module,) if not items else tuple(ret_items)
|
|
143
|
+
except Exception as e:
|
|
144
|
+
logger.error(f"Failed to update module {module_name}: {e}")
|
|
145
|
+
else:
|
|
146
|
+
logger.warning(f"Module {module_name} not found in loaded modules.")
|
|
147
|
+
return ()
|
|
148
|
+
|
|
108
149
|
@staticmethod
|
|
109
150
|
def get(base_path: str = "") -> "JacMachine":
|
|
110
151
|
"""Get current jac machine."""
|
|
@@ -134,6 +175,7 @@ class JacProgram:
|
|
|
134
175
|
full_target: str,
|
|
135
176
|
caller_dir: str,
|
|
136
177
|
cachable: bool = True,
|
|
178
|
+
reload: bool = False,
|
|
137
179
|
) -> Optional[types.CodeType]:
|
|
138
180
|
"""Get the bytecode for a specific module."""
|
|
139
181
|
if self.mod_bundle and isinstance(self.mod_bundle, Module):
|
|
@@ -141,7 +183,7 @@ class JacProgram:
|
|
|
141
183
|
return marshal.loads(codeobj) if isinstance(codeobj, bytes) else None
|
|
142
184
|
gen_dir = os.path.join(caller_dir, Con.JAC_GEN_DIR)
|
|
143
185
|
pyc_file_path = os.path.join(gen_dir, module_name + ".jbc")
|
|
144
|
-
if cachable and os.path.exists(pyc_file_path):
|
|
186
|
+
if cachable and os.path.exists(pyc_file_path) and not reload:
|
|
145
187
|
with open(pyc_file_path, "rb") as f:
|
|
146
188
|
return marshal.load(f)
|
|
147
189
|
|
jaclang/runtimelib/memory.py
CHANGED
|
@@ -18,7 +18,7 @@ class Memory(Generic[ID, TANCH]):
|
|
|
18
18
|
"""Generic Memory Handler."""
|
|
19
19
|
|
|
20
20
|
__mem__: dict[ID, TANCH] = field(default_factory=dict)
|
|
21
|
-
__gc__: set[
|
|
21
|
+
__gc__: set[TANCH] = field(default_factory=set)
|
|
22
22
|
|
|
23
23
|
def close(self) -> None:
|
|
24
24
|
"""Close memory handler."""
|
|
@@ -62,8 +62,8 @@ class Memory(Generic[ID, TANCH]):
|
|
|
62
62
|
ids = [ids]
|
|
63
63
|
|
|
64
64
|
for id in ids:
|
|
65
|
-
self.__mem__.pop(id, None)
|
|
66
|
-
|
|
65
|
+
if anchor := self.__mem__.pop(id, None):
|
|
66
|
+
self.__gc__.add(anchor)
|
|
67
67
|
|
|
68
68
|
|
|
69
69
|
@dataclass
|
|
@@ -84,9 +84,9 @@ class ShelfStorage(Memory[UUID, Anchor]):
|
|
|
84
84
|
|
|
85
85
|
root = Jac.get_root().__jac__
|
|
86
86
|
|
|
87
|
-
for
|
|
88
|
-
self.__shelf__.pop(str(id), None)
|
|
89
|
-
self.__mem__.pop(id, None)
|
|
87
|
+
for anchor in self.__gc__:
|
|
88
|
+
self.__shelf__.pop(str(anchor.id), None)
|
|
89
|
+
self.__mem__.pop(anchor.id, None)
|
|
90
90
|
|
|
91
91
|
for d in self.__mem__.values():
|
|
92
92
|
if d.persistent and d.hash != hash(dumps(d)):
|
jaclang/settings.py
CHANGED
jaclang/tests/fixtures/bar.jac
CHANGED
|
@@ -31,6 +31,7 @@ with entry{
|
|
|
31
31
|
print(d2.count('a(val')==19,d2.count('#F5E5FF')==2 ,'Edge1' not in d2,d2.count('GenericEdge')==42);
|
|
32
32
|
print(d3.count('a(val')==6,d3.count("GenericEdge")==5,d3.count('#F5E5FF')==1);
|
|
33
33
|
print(d4.count("a(val")==25,d4.count("GenericEdge")==66,d4.count('#FFF0F')==3);
|
|
34
|
+
print(d5.count("Edge1(val=6)")==2, d5.count("GenericEdge()")==24);
|
|
34
35
|
# print(l3<l2);
|
|
35
36
|
# print(d1);
|
|
36
37
|
# print(d2);
|
jaclang/tests/fixtures/foo.jac
CHANGED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import:jac from bar { bar_walk }
|
|
2
|
+
import:py from jaclang.runtimelib.machine { JacMachine }
|
|
3
|
+
import:py os;
|
|
4
|
+
|
|
5
|
+
can update_bar_walker {
|
|
6
|
+
"Updating bar.jac with new behavior." |> print;
|
|
7
|
+
(bar_walk_new, ) = JacMachine.get().update_walker(
|
|
8
|
+
"bar",
|
|
9
|
+
items={'bar_walk': None}
|
|
10
|
+
);
|
|
11
|
+
"Running bar_walk after update..." |> print;
|
|
12
|
+
root spawn bar_walk_new();
|
|
13
|
+
print(f"bar_walk: {bar_walk_new.__dict__}");
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
with entry {
|
|
18
|
+
update_bar_walker();
|
|
19
|
+
}
|
jaclang/tests/test_language.py
CHANGED
|
@@ -39,7 +39,7 @@ class JacLanguageTests(TestCase):
|
|
|
39
39
|
sys.stdout = captured_output
|
|
40
40
|
|
|
41
41
|
# Execute the function
|
|
42
|
-
cli.run(self.fixture_abs_path("sub_abil_sep.jac"))
|
|
42
|
+
cli.run(self.fixture_abs_path("sub_abil_sep.jac"))
|
|
43
43
|
|
|
44
44
|
sys.stdout = sys.__stdout__
|
|
45
45
|
stdout_value = captured_output.getvalue()
|
|
@@ -376,7 +376,7 @@ class JacLanguageTests(TestCase):
|
|
|
376
376
|
jac_import("builtin_dotgen", base_path=self.fixture_abs_path("./"))
|
|
377
377
|
sys.stdout = sys.__stdout__
|
|
378
378
|
stdout_value = captured_output.getvalue()
|
|
379
|
-
self.assertEqual(stdout_value.count("True"),
|
|
379
|
+
self.assertEqual(stdout_value.count("True"), 16)
|
|
380
380
|
|
|
381
381
|
def test_with_contexts(self) -> None:
|
|
382
382
|
"""Test walking through edges."""
|
|
@@ -522,7 +522,7 @@ class JacLanguageTests(TestCase):
|
|
|
522
522
|
self.assertIn("can greet2(**kwargs: Any) {", output)
|
|
523
523
|
self.assertIn("squares_dict = {x: (x ** 2) for x in numbers};", output)
|
|
524
524
|
self.assertIn(
|
|
525
|
-
'\n\n@ my_decorator \n can say_hello() {\n """Say hello""" ;
|
|
525
|
+
'\n\n@ my_decorator \n can say_hello() {\n\n """Say hello""" ;', output
|
|
526
526
|
)
|
|
527
527
|
|
|
528
528
|
def test_needs_import_2(self) -> None:
|
|
@@ -568,7 +568,7 @@ class JacLanguageTests(TestCase):
|
|
|
568
568
|
py_ast.parse(f.read()), mod_path=py_out_path
|
|
569
569
|
),
|
|
570
570
|
).ir.unparse()
|
|
571
|
-
self.assertIn("class X {\n with entry {\n a_b = 67;", output)
|
|
571
|
+
self.assertIn("class X {\n with entry {\n\n a_b = 67;", output)
|
|
572
572
|
self.assertIn("br = b'Hello\\\\\\\\nWorld'", output)
|
|
573
573
|
self.assertIn("class Circle {\n can init(radius: float", output)
|
|
574
574
|
self.assertIn("<>node = 90; \n print(<>node) ;\n}\n", output)
|
|
@@ -951,3 +951,72 @@ class JacLanguageTests(TestCase):
|
|
|
951
951
|
self.assertIn("Edges in bar:\n - Edge: Link", stdout_value)
|
|
952
952
|
self.assertIn("Item value: 0", stdout_value)
|
|
953
953
|
self.assertIn("Created 5 items.", stdout_value)
|
|
954
|
+
|
|
955
|
+
def test_walker_dynamic_update(self) -> None:
|
|
956
|
+
"""Test dynamic update of a walker during runtime."""
|
|
957
|
+
session = self.fixture_abs_path("bar_walk.session")
|
|
958
|
+
bar_file_path = self.fixture_abs_path("bar.jac")
|
|
959
|
+
update_file_path = self.fixture_abs_path("walker_update.jac")
|
|
960
|
+
captured_output = io.StringIO()
|
|
961
|
+
sys.stdout = captured_output
|
|
962
|
+
cli.enter(
|
|
963
|
+
filename=bar_file_path,
|
|
964
|
+
session=session,
|
|
965
|
+
entrypoint="bar_walk",
|
|
966
|
+
args=[],
|
|
967
|
+
)
|
|
968
|
+
sys.stdout = sys.__stdout__
|
|
969
|
+
stdout_value = captured_output.getvalue()
|
|
970
|
+
expected_output = "Created 5 items."
|
|
971
|
+
self.assertIn(expected_output, stdout_value.split("\n"))
|
|
972
|
+
# Define the new behavior to be added
|
|
973
|
+
new_behavior = """
|
|
974
|
+
# New behavior added during runtime
|
|
975
|
+
can end with `root exit {
|
|
976
|
+
"bar_walk has been updated with new behavior!" |> print;
|
|
977
|
+
disengage;
|
|
978
|
+
}
|
|
979
|
+
}
|
|
980
|
+
"""
|
|
981
|
+
|
|
982
|
+
# Backup the original file content
|
|
983
|
+
with open(bar_file_path, "r") as bar_file:
|
|
984
|
+
original_content = bar_file.read()
|
|
985
|
+
|
|
986
|
+
# Update the bar.jac file with new behavior
|
|
987
|
+
with open(bar_file_path, "r+") as bar_file:
|
|
988
|
+
content = bar_file.read()
|
|
989
|
+
last_brace_index = content.rfind("}")
|
|
990
|
+
if last_brace_index != -1:
|
|
991
|
+
updated_content = content[:last_brace_index] + new_behavior
|
|
992
|
+
bar_file.seek(0)
|
|
993
|
+
bar_file.write(updated_content)
|
|
994
|
+
bar_file.truncate()
|
|
995
|
+
|
|
996
|
+
captured_output = io.StringIO()
|
|
997
|
+
sys.stdout = captured_output
|
|
998
|
+
|
|
999
|
+
try:
|
|
1000
|
+
cli.run(
|
|
1001
|
+
filename=update_file_path,
|
|
1002
|
+
)
|
|
1003
|
+
sys.stdout = sys.__stdout__
|
|
1004
|
+
stdout_value = captured_output.getvalue()
|
|
1005
|
+
expected_output = "bar_walk has been updated with new behavior!"
|
|
1006
|
+
self.assertIn(expected_output, stdout_value.split("\n"))
|
|
1007
|
+
finally:
|
|
1008
|
+
# Restore the original content of bar.jac
|
|
1009
|
+
with open(bar_file_path, "w") as bar_file:
|
|
1010
|
+
|
|
1011
|
+
bar_file.write(original_content)
|
|
1012
|
+
|
|
1013
|
+
def test_object_ref_interface(self) -> None:
|
|
1014
|
+
"""Test class method output."""
|
|
1015
|
+
captured_output = io.StringIO()
|
|
1016
|
+
sys.stdout = captured_output
|
|
1017
|
+
cli.run(self.fixture_abs_path("objref.jac"))
|
|
1018
|
+
sys.stdout = sys.__stdout__
|
|
1019
|
+
stdout_value = captured_output.getvalue().split("\n")
|
|
1020
|
+
self.assertEqual(len(stdout_value[0]), 32)
|
|
1021
|
+
self.assertEqual("MyNode(value=0)", stdout_value[1])
|
|
1022
|
+
self.assertEqual("valid: True", stdout_value[2])
|
|
@@ -1,18 +1,22 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: jaclang
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.19
|
|
4
4
|
Summary: Jac is a unique and powerful programming language that runs on top of Python, offering an unprecedented level of intelligence and intuitive understanding.
|
|
5
5
|
Home-page: https://jaseci.org
|
|
6
6
|
License: MIT
|
|
7
7
|
Keywords: jac,jaclang,jaseci,python,programming-language,machine-learning,artificial-intelligence
|
|
8
8
|
Author: Jason Mars
|
|
9
9
|
Author-email: jason@jaseci.org
|
|
10
|
+
Maintainer: Jason Mars
|
|
11
|
+
Maintainer-email: jason@jaseci.org
|
|
10
12
|
Requires-Python: >=3.11.0,<4.0.0
|
|
11
13
|
Classifier: License :: OSI Approved :: MIT License
|
|
12
14
|
Classifier: Programming Language :: Python :: 3
|
|
13
15
|
Classifier: Programming Language :: Python :: 3.11
|
|
14
16
|
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Provides-Extra: all
|
|
15
18
|
Provides-Extra: llm
|
|
19
|
+
Provides-Extra: streamlit
|
|
16
20
|
Project-URL: Documentation, https://jac-lang.org
|
|
17
21
|
Project-URL: Repository, https://github.com/Jaseci-Labs/jaclang
|
|
18
22
|
Description-Content-Type: text/markdown
|
|
@@ -40,7 +44,7 @@ This is the main source code repository for the [Jac] programming language. It c
|
|
|
40
44
|
[Documentation]: https://www.jac-lang.org//learn/guide/
|
|
41
45
|
[Contributing]: .github/CONTRIBUTING.md
|
|
42
46
|
|
|
43
|
-
## What and Why Jac?
|
|
47
|
+
## What and Why is Jac?
|
|
44
48
|
|
|
45
49
|
- **Native Superset of Python** - Jac is a native superset of python, meaning the entire python ecosystem is directly interoperable with Jac without any trickery (no interop interface needed). Like Typescript is to Javascript, or C++ is to C, Jac is to Python. (every Jac program can be ejected to pure python, and every python program can be transpiled to a Jac program)
|
|
46
50
|
|
|
@@ -2,7 +2,7 @@ jaclang/__init__.py,sha256=quKqbhKk5CQ0k798jIXMbeAKzQxD0yhOpQGSvYD6TD8,399
|
|
|
2
2
|
jaclang/cli/.gitignore,sha256=NYuons2lzuCpCdefMnztZxeSMgtPVJF6R6zSgVDOV20,27
|
|
3
3
|
jaclang/cli/__init__.py,sha256=7aaPgYddIAHBvkdv36ngbfwsimMnfGaTDcaHYMg_vf4,23
|
|
4
4
|
jaclang/cli/cli.md,sha256=4BPJGdcyvs_rXgd_DPEGjkKSGe5ureXXYaQsf-_z_LU,5939
|
|
5
|
-
jaclang/cli/cli.py,sha256=
|
|
5
|
+
jaclang/cli/cli.py,sha256=P2Hqzpb9q9uR_mbyFb8ojr3ff3oDbcP6m1G1kKWkR80,15911
|
|
6
6
|
jaclang/cli/cmdreg.py,sha256=5mhzLJnpHfc0Z22qKQgcEOICgBaC95G9gSJZ-R7GqvU,8282
|
|
7
7
|
jaclang/compiler/.gitignore,sha256=n1k2_xXTorp9PY8hhYM4psHircn-NMaFx95bSgDKopo,10
|
|
8
8
|
jaclang/compiler/__init__.py,sha256=O1GO5Hb02vRlz7OpYHinQV5lQ7YuNUV9Hgjlc3QWtZg,2780
|
|
@@ -13,20 +13,20 @@ jaclang/compiler/constant.py,sha256=gKccXK4Qf3CWuv8J1oaWrwqdP7CRIf7ndayquRx6Xgs,
|
|
|
13
13
|
jaclang/compiler/jac.lark,sha256=sUft-A-r45E1aZ6CVZa-yDrtV0VTuVB7KNk7POFf3jg,17299
|
|
14
14
|
jaclang/compiler/parser.py,sha256=xyOyP81gurd1zgKMxWYl2iTGcmOqaEDHHch8Fs91Zr0,141276
|
|
15
15
|
jaclang/compiler/passes/__init__.py,sha256=0Tw0d130ZjzA05jVcny9cf5NfLjlaM70PKqFnY4zqn4,69
|
|
16
|
-
jaclang/compiler/passes/ir_pass.py,sha256=
|
|
16
|
+
jaclang/compiler/passes/ir_pass.py,sha256=8F9YL6dUUm6gP2ZkjIuaYgX7GHwyck5MEB7LYJdAhQc,5607
|
|
17
17
|
jaclang/compiler/passes/main/__init__.py,sha256=i37vH_f6706eNvdY3UlfYO0wTjdl0HsWg7vP-pyYItY,947
|
|
18
18
|
jaclang/compiler/passes/main/access_modifier_pass.py,sha256=AuE6xgW079Bvs_K02XWVz5qJkCIuizC6t1zIiQ5s-qE,5328
|
|
19
19
|
jaclang/compiler/passes/main/def_impl_match_pass.py,sha256=yAkwLQm2NBJycJVSmG88Shq0r2GSxTH8goINDfGIHek,4583
|
|
20
20
|
jaclang/compiler/passes/main/def_use_pass.py,sha256=68Uts_v-R-9mzBXC9EfXpcBEQwqnVcpL2JD0sri88AY,9674
|
|
21
21
|
jaclang/compiler/passes/main/fuse_typeinfo_pass.py,sha256=afe2-0zsfdoP6-hUd2y2zKV_ZFtPpxxapm8q2Mkik4Y,22466
|
|
22
|
-
jaclang/compiler/passes/main/import_pass.py,sha256=
|
|
23
|
-
jaclang/compiler/passes/main/py_collect_dep_pass.py,sha256=
|
|
24
|
-
jaclang/compiler/passes/main/pyast_gen_pass.py,sha256=
|
|
22
|
+
jaclang/compiler/passes/main/import_pass.py,sha256=1n9i_hLIUGgYZebJkbKoBtXKVpQaO_eFUh2z8Chfbl0,11775
|
|
23
|
+
jaclang/compiler/passes/main/py_collect_dep_pass.py,sha256=lzMOYH8TarhkJFt0vqvZFknthZ08OjsdO7tO2u2EN40,2834
|
|
24
|
+
jaclang/compiler/passes/main/pyast_gen_pass.py,sha256=ACUhGsLq34N-Sfo96IAgkTnds9ZY6I7J6okr6rFvPpo,142105
|
|
25
25
|
jaclang/compiler/passes/main/pyast_load_pass.py,sha256=k-tf5cZVlygDg4BGBYcAznO6w0hM4-0Pdzlwr4Sw48I,94027
|
|
26
26
|
jaclang/compiler/passes/main/pybc_gen_pass.py,sha256=CjA9AqyMO3Pv_b5Hh0YI6JmCqIru2ASonO6rhrkau-M,1336
|
|
27
27
|
jaclang/compiler/passes/main/pyjac_ast_link_pass.py,sha256=1pW0uLEnhM5hCwVFAREdd_miyr3qTK0h_SJVfR_ryig,8604
|
|
28
28
|
jaclang/compiler/passes/main/pyout_pass.py,sha256=QWVB-AyVBha3OespP89LMuslRsdG2niZErwtnRPiURM,3191
|
|
29
|
-
jaclang/compiler/passes/main/registry_pass.py,sha256=
|
|
29
|
+
jaclang/compiler/passes/main/registry_pass.py,sha256=dKCfcjSenD3J-msmSd11-mCGgD0h1asX8nFdpo-eyq4,5881
|
|
30
30
|
jaclang/compiler/passes/main/schedules.py,sha256=tkTUTX8aff6pqQYtqt1h2lRbu_n7bVnAov9KmwwDxy0,1417
|
|
31
31
|
jaclang/compiler/passes/main/sub_node_tab_pass.py,sha256=25HEJGBbDlJibyW5MV4ShXQ2vmzG3LDreknV-u2nQjk,1184
|
|
32
32
|
jaclang/compiler/passes/main/sym_tab_build_pass.py,sha256=xitWPNbhKgyJmxD1rvVQltgFqCz4i5IJSOEFMpxkcw8,34892
|
|
@@ -53,6 +53,7 @@ jaclang/compiler/passes/main/tests/fixtures/incautoimpl.jac,sha256=WX54UE-AUAfnj
|
|
|
53
53
|
jaclang/compiler/passes/main/tests/fixtures/multi_def_err.jac,sha256=BxgmNUdz76gKLi6PXnLZE9rartodMgch5ydpGrd25Ec,87
|
|
54
54
|
jaclang/compiler/passes/main/tests/fixtures/py_imp_test.jac,sha256=hWAfWcavT6cUH9d-Rq35ptzVLFuH16StMp84JTsKia0,922
|
|
55
55
|
jaclang/compiler/passes/main/tests/fixtures/pygame_mock/__init__.py,sha256=zrZT2YhxNFr6CKAER5NsSosccWzP8rwmV1vUK4OYWLo,69
|
|
56
|
+
jaclang/compiler/passes/main/tests/fixtures/pygame_mock/__init__.pyi,sha256=zrZT2YhxNFr6CKAER5NsSosccWzP8rwmV1vUK4OYWLo,69
|
|
56
57
|
jaclang/compiler/passes/main/tests/fixtures/pygame_mock/color.py,sha256=pvJICEi1sv2hRU88_fekFPeotv3vFyPs57POOkPHPh8,76
|
|
57
58
|
jaclang/compiler/passes/main/tests/fixtures/pygame_mock/constants.py,sha256=1i-OHdp8rQJNN_Bv6G4Nd3mBfKAn-V0O4pyR4ewg5kA,61
|
|
58
59
|
jaclang/compiler/passes/main/tests/fixtures/pygame_mock/display.py,sha256=uzQZvyHHf4iPAodRBuBxrnwx3CpDPbMxcsGRlUB_9GY,29
|
|
@@ -60,7 +61,7 @@ jaclang/compiler/passes/main/tests/fixtures/registry.jac,sha256=1G6amtU1zIFCgq09
|
|
|
60
61
|
jaclang/compiler/passes/main/tests/fixtures/type_info.jac,sha256=64Im2L-R3YF8DEuTt29QE6mJI5PnFe3PiwcDLKa8gOE,661
|
|
61
62
|
jaclang/compiler/passes/main/tests/test_decl_def_match_pass.py,sha256=zWF2l93RjyG0AWyDXdXsMlPWYOhX46d699YqvIETRGY,1836
|
|
62
63
|
jaclang/compiler/passes/main/tests/test_def_use_pass.py,sha256=0ieyoeiDSK2m3dmVN00oJK2TdJhxWwxA1lnxT95wz0A,843
|
|
63
|
-
jaclang/compiler/passes/main/tests/test_import_pass.py,sha256=
|
|
64
|
+
jaclang/compiler/passes/main/tests/test_import_pass.py,sha256=XR0CaqdEQslYz1GXICpF3wko2PDw-tOnHfvgSWjo8TQ,5158
|
|
64
65
|
jaclang/compiler/passes/main/tests/test_pyast_build_pass.py,sha256=LIT4TP-nhtftRtY5rNySRQlim-dWMSlkfUvkhZTk4pc,1383
|
|
65
66
|
jaclang/compiler/passes/main/tests/test_pyast_gen_pass.py,sha256=6ZpLNYxblzBg6bmWSA0fikNM7nEAR9b9F18LJaO5buM,4679
|
|
66
67
|
jaclang/compiler/passes/main/tests/test_pybc_gen_pass.py,sha256=If8PE4exN5g9o1NRElNC0XdfIwJAp7M7f69rzmYRYUQ,655
|
|
@@ -69,10 +70,10 @@ jaclang/compiler/passes/main/tests/test_sub_node_pass.py,sha256=afz0Kh5xBCeNXQSI
|
|
|
69
70
|
jaclang/compiler/passes/main/tests/test_sym_tab_build_pass.py,sha256=85mUM6mYYLCrQ9AivBIbreG7CgdsJH2zrNOqdcpnwBo,730
|
|
70
71
|
jaclang/compiler/passes/main/tests/test_type_check_pass.py,sha256=v2_KmcyX1_fOpReRKM0mUnlFXKVPRvFCMR3Mw9ftytI,2265
|
|
71
72
|
jaclang/compiler/passes/main/tests/test_typeinfo_pass.py,sha256=ehC0_giLg7NwB7fR10nW5Te8mZ76qmUFxkK1bEjtmrw,129
|
|
72
|
-
jaclang/compiler/passes/main/type_check_pass.py,sha256=
|
|
73
|
+
jaclang/compiler/passes/main/type_check_pass.py,sha256=6L8yGBmZqNZuYabaJKt19mGse4x3r1YKA0Nr7LVPOtE,4276
|
|
73
74
|
jaclang/compiler/passes/tool/__init__.py,sha256=xekCOXysHIcthWm8NRmQoA1Ah1XV8vFbkfeHphJtUdc,223
|
|
74
75
|
jaclang/compiler/passes/tool/fuse_comments_pass.py,sha256=CSnuWy4gZfTcWKe0Q7LBikBgWe1zJr0QmNUkgrZ7B38,3657
|
|
75
|
-
jaclang/compiler/passes/tool/jac_formatter_pass.py,sha256=
|
|
76
|
+
jaclang/compiler/passes/tool/jac_formatter_pass.py,sha256=a9P494bKA4IKyUKTlPNrSyjubTdmZqS3e1CwX6NML3w,90550
|
|
76
77
|
jaclang/compiler/passes/tool/schedules.py,sha256=kmbsCazAMizGAdQuZpFky5BPlYlMXqNw7wOUzdi_wBo,432
|
|
77
78
|
jaclang/compiler/passes/tool/tests/__init__.py,sha256=AeOaZjA1rf6VAr0JqIit6jlcmOzW7pxGr4U1fOwgK_Y,24
|
|
78
79
|
jaclang/compiler/passes/tool/tests/fixtures/corelib.jac,sha256=RGIOyYW5eyadmOf0H-COpLPMJIIkWOFVERI5dNEM3J8,12581
|
|
@@ -92,6 +93,7 @@ jaclang/compiler/passes/tool/tests/fixtures/general_format_checks/comment_alignm
|
|
|
92
93
|
jaclang/compiler/passes/tool/tests/fixtures/general_format_checks/comments.jac,sha256=l4A_QcagIjUaN6h119yo77ohV_ixXndXPFlCMRJFpMM,346
|
|
93
94
|
jaclang/compiler/passes/tool/tests/fixtures/general_format_checks/decorator_stack.jac,sha256=FjrFBbIPL7eD2O17i5RxOLLhOCQrFHUwBMx0yGrgIJ4,544
|
|
94
95
|
jaclang/compiler/passes/tool/tests/fixtures/general_format_checks/esc_keywords.jac,sha256=EQdOQnHWF7NmM7SuQ4Y77fXUD8vkIBR7TG3G1lCGl0I,72
|
|
96
|
+
jaclang/compiler/passes/tool/tests/fixtures/general_format_checks/line_spacing.jac,sha256=7A-a4axfKFpRsEczZTJG3L195Ll1yVaX58hZvtwCZjo,1041
|
|
95
97
|
jaclang/compiler/passes/tool/tests/fixtures/general_format_checks/long_names.jac,sha256=f3ptg81A3mub7OdsVlxvX7FInEmT6Y2D55ZacQ7kZQw,734
|
|
96
98
|
jaclang/compiler/passes/tool/tests/fixtures/general_format_checks/triple_quoted_string.jac,sha256=7Ts6oE3x3x91lJIFQpdko54hrtM6vpMZDi56c5XCkmM,174
|
|
97
99
|
jaclang/compiler/passes/tool/tests/fixtures/multi_def_err.dot,sha256=muQG45ABv5xlMAnj1F0BZdr9-idH9KaZCT__P4lDHcI,1391
|
|
@@ -133,7 +135,7 @@ jaclang/compiler/tests/fixtures/stuff.jac,sha256=qOq6WOwhlprMmJpiqQudgqnr4qTd9uh
|
|
|
133
135
|
jaclang/compiler/tests/test_importer.py,sha256=glEyjV21nJaCVrDXbF5kkcZYBcCTnmWngdUBbuygAxY,2289
|
|
134
136
|
jaclang/compiler/tests/test_parser.py,sha256=Sj9Kz1FghESaPpyx_kEvScs4xvz-vgEdH8yyQJ0iB7M,4820
|
|
135
137
|
jaclang/langserve/__init__.py,sha256=3qbnivBBcLZCfmDYRMIeKkG08Lx7XQsJJg-qG8TU8yc,51
|
|
136
|
-
jaclang/langserve/engine.py,sha256=
|
|
138
|
+
jaclang/langserve/engine.py,sha256=uvm0xBpBuBmAZHcDT46y_MiT3TxYmmKUZDWHYUBsAXg,18108
|
|
137
139
|
jaclang/langserve/sem_manager.py,sha256=d5QzT9WVYarZfTg1sUF_pTfNMYb65HLz3vX839b5Jeo,14918
|
|
138
140
|
jaclang/langserve/server.py,sha256=qkWhsJLaQT2o-obIeOcPqag3B3wANzGFgW5EmC8tYYg,5445
|
|
139
141
|
jaclang/langserve/tests/__init__.py,sha256=iDM47k6c3vahaWhwxpbkdEOshbmX-Zl5x669VONjS2I,23
|
|
@@ -147,7 +149,7 @@ jaclang/langserve/tests/fixtures/circle_pure.test.jac,sha256=Ys-IoqcYqId1T-Pcz2i
|
|
|
147
149
|
jaclang/langserve/tests/fixtures/circle_pure_err.impl.jac,sha256=rsXatY9a-wZONRPJ6VOuw7Bj9R_CrJO_TEwAVXj1PjU,702
|
|
148
150
|
jaclang/langserve/tests/fixtures/circle_pure_err.jac,sha256=jQ5QX0G5khGACoY82CM-6LcOX57w4e29tHVicE2eMgw,608
|
|
149
151
|
jaclang/langserve/tests/fixtures/hello.jac,sha256=iRMKtYVCw1zLvjOQbj3q__3Manj1Di1YeDTNMEvYtBc,36
|
|
150
|
-
jaclang/langserve/tests/fixtures/import_include_statements.jac,sha256=
|
|
152
|
+
jaclang/langserve/tests/fixtures/import_include_statements.jac,sha256=4TiVpsj2Of1J67AJjZdxUQechHYVq9HlL1UDCuY9LME,300
|
|
151
153
|
jaclang/langserve/tests/fixtures/py_import.py,sha256=BvNimsRmsbJWd-JNM31oJpl52bYvSdfQ6Np3DJNt7d0,320
|
|
152
154
|
jaclang/langserve/tests/fixtures/rename.jac,sha256=VrdXiQh1xQIBWKVFT6oO4DxgEncyLRPFl87aKw5QUI8,251
|
|
153
155
|
jaclang/langserve/tests/pylsp_jsonrpc/__init__.py,sha256=bDWxRjmELPCVGy243_0kNrG7PttyZsv_eZ9JTKQrU1E,105
|
|
@@ -157,13 +159,13 @@ jaclang/langserve/tests/pylsp_jsonrpc/exceptions.py,sha256=NGHeFQawZcjoLUcgDmY3b
|
|
|
157
159
|
jaclang/langserve/tests/pylsp_jsonrpc/streams.py,sha256=R80_FvICIkrbdGmNtlemWYaxrr7-XldPgLaASnyv0W8,3332
|
|
158
160
|
jaclang/langserve/tests/session.py,sha256=3pIRoQjZnsnUWIYnO2SpK7c1PAiHMCFrrStNK2tawRM,9572
|
|
159
161
|
jaclang/langserve/tests/test_sem_tokens.py,sha256=HWNaA1CK5qxFeipmd4AAvjAbJSEW4-09hY2UHVfvtlc,9897
|
|
160
|
-
jaclang/langserve/tests/test_server.py,sha256=
|
|
161
|
-
jaclang/langserve/utils.py,sha256=
|
|
162
|
+
jaclang/langserve/tests/test_server.py,sha256=ux40mA9U8hb2UkYWZ7-G4c1kILHXreMSn08ll7Mx_uo,22910
|
|
163
|
+
jaclang/langserve/utils.py,sha256=tDsdEOtZdmJ6Xn8b0Ohwt8fRVNm5qtUC4Cub85CG3Mk,19028
|
|
162
164
|
jaclang/plugin/__init__.py,sha256=5t2krHKt_44PrCTGojzxEimxpNHYVQcn89jAiCSXE_k,165
|
|
163
|
-
jaclang/plugin/builtin.py,sha256=
|
|
164
|
-
jaclang/plugin/default.py,sha256
|
|
165
|
-
jaclang/plugin/feature.py,sha256=
|
|
166
|
-
jaclang/plugin/spec.py,sha256=
|
|
165
|
+
jaclang/plugin/builtin.py,sha256=Hj8SVcauuhzsPQJBzt8jIfHkSUAcqsKfAFyCPYdBZKA,1300
|
|
166
|
+
jaclang/plugin/default.py,sha256=oxPO7tud8VqP20BrfnDNpLPtM0kaL00s-1F70X3hvCg,31173
|
|
167
|
+
jaclang/plugin/feature.py,sha256=SgTFAjJI_SbYn2ZdUsx-b4vtYHnl_STRa5oV7AM2yX8,11603
|
|
168
|
+
jaclang/plugin/spec.py,sha256=TlNUQu51daKsmiPeFoQcXZ7HVdoYN5zGA03OAMmpVac,10362
|
|
167
169
|
jaclang/plugin/tests/__init__.py,sha256=rn_tNG8jCHWwBc_rx4yFkGc4N1GISb7aPuTFVRTvrTk,38
|
|
168
170
|
jaclang/plugin/tests/fixtures/impl_match.jac,sha256=WEhcA1GlovusITEFO2bOjYYqiiULyYGKhM17uK2GqnI,91
|
|
169
171
|
jaclang/plugin/tests/fixtures/impl_match_impl.jac,sha256=k1385r7Hdlq6mUKxEHa3VOKJUIWH08hYg2kErhbYwFM,31
|
|
@@ -177,12 +179,12 @@ jaclang/runtimelib/__init__.py,sha256=jDDYBCV82qPhmcDVk3NIvHbhng0ebSrXD3xrojg0-e
|
|
|
177
179
|
jaclang/runtimelib/architype.py,sha256=sqsrobtbHaHDYJaqbXx9iapZ3TJ92APXFzw9bSGnQ90,21659
|
|
178
180
|
jaclang/runtimelib/constructs.py,sha256=QWut5kKRaBbIelb12cpTSa_D0xDGPOoHHq4SaDetyo8,760
|
|
179
181
|
jaclang/runtimelib/context.py,sha256=gUiPZ4ZoHoz_vHjxG9kvIw4hlmx8G8lPTquGC6qJoi4,5609
|
|
180
|
-
jaclang/runtimelib/importer.py,sha256=
|
|
181
|
-
jaclang/runtimelib/machine.py,sha256=
|
|
182
|
-
jaclang/runtimelib/memory.py,sha256=
|
|
182
|
+
jaclang/runtimelib/importer.py,sha256=bJZTYXZZdoxiD5Tg8HaX7jSi4QVYEguw1WaObl1gMVc,14348
|
|
183
|
+
jaclang/runtimelib/machine.py,sha256=K3HaFNkMFQARSqG63mqHehXGEgRPMXnijSWxcvu3RUs,7248
|
|
184
|
+
jaclang/runtimelib/memory.py,sha256=GlzdN81728IsTmPLOe70HCDFE_JRHIEWlfDzfjWxn8o,5072
|
|
183
185
|
jaclang/runtimelib/test.py,sha256=HRCl3cf0uPTe58Kcx_sBUb6ow8J53rnmpFOhA7g9oAA,2851
|
|
184
186
|
jaclang/runtimelib/utils.py,sha256=P9gVE3XFhRzr745RCDXXIP391AcsL4aL_6HrXws_qa4,8155
|
|
185
|
-
jaclang/settings.py,sha256=
|
|
187
|
+
jaclang/settings.py,sha256=381YK66eXqDSnWhzTHMHfbmvwfQPEI_1yPLa0RFwzKo,3553
|
|
186
188
|
jaclang/tests/fixtures/abc.jac,sha256=HZvLz6IEt3Snlgg8Czs-N4emLjg4fT3IbTo95d3Gdww,1747
|
|
187
189
|
jaclang/tests/fixtures/access_checker.jac,sha256=UVoY7sYW-R0ms2HDA4HXQ5xJNiW0vEbY2T5CCY1avus,281
|
|
188
190
|
jaclang/tests/fixtures/access_modifier.jac,sha256=NJHXbu_N_cWpTkjJnwcHzWkEk2kroaQ8aaalVxPXAW8,2587
|
|
@@ -191,9 +193,9 @@ jaclang/tests/fixtures/assign_compr.jac,sha256=rnoujdtpjNbem4IdtBfxPahSUXl-gxNv4
|
|
|
191
193
|
jaclang/tests/fixtures/assign_compr_dup.jac,sha256=rnoujdtpjNbem4IdtBfxPahSUXl-gxNv4JFNEuUs5iM,286
|
|
192
194
|
jaclang/tests/fixtures/baddy.jac,sha256=waLlwMyW_JCE1x_SuVzRER1RBe1j3XiLTw-0NjznWpI,30
|
|
193
195
|
jaclang/tests/fixtures/baddy.test.jac,sha256=Uq-Nlf44QUAtbOfDCbc9_ceLxmo31PILDTSzAv8nJq4,33
|
|
194
|
-
jaclang/tests/fixtures/bar.jac,sha256=
|
|
196
|
+
jaclang/tests/fixtures/bar.jac,sha256=XZWOrzgMQed2R611DLfzCvWUT4a4gTYZXWRYvizMb18,782
|
|
195
197
|
jaclang/tests/fixtures/blankwithentry.jac,sha256=lnMDDKyKnldsUIx1AVCIHt47KY3gR2CZYhox8663sLM,53
|
|
196
|
-
jaclang/tests/fixtures/builtin_dotgen.jac,sha256=
|
|
198
|
+
jaclang/tests/fixtures/builtin_dotgen.jac,sha256=1CCJTSmMD1Zt_FkC-poPGyHRV3rIcst616UtYfuLIrE,1830
|
|
197
199
|
jaclang/tests/fixtures/byllmissue.jac,sha256=vAwxzbRNx5yOM3HTDSH7wafPYXU7AunBOZmgdsT2rhc,86
|
|
198
200
|
jaclang/tests/fixtures/chandra_bugs.jac,sha256=vcBjZ4P7S1PPUs-_0Stt779pus95RJTMs1x_-m0w7yY,282
|
|
199
201
|
jaclang/tests/fixtures/chandra_bugs2.jac,sha256=OZP6JOsIr8WK-joPZ54-LcbVVvtuZ5ILPdkynSSx3uU,559
|
|
@@ -222,7 +224,7 @@ jaclang/tests/fixtures/err.impl.jac,sha256=bCW5RiPOoiEiBJCcCEsPsegBTA98mqY57UYiq
|
|
|
222
224
|
jaclang/tests/fixtures/err.jac,sha256=Df-QWvUlVa2Tc3QtKXNv4VU63Xefmp_iC-BS-1VuOEI,62
|
|
223
225
|
jaclang/tests/fixtures/err2.jac,sha256=x8h69NTVMGJa_UicY-CZblLMdeH09myTeiYqNFamiK0,50
|
|
224
226
|
jaclang/tests/fixtures/err_runtime.jac,sha256=giiZvN1x_cHYWdXtghdzasxYjUp2MNOdH6Pf2H6-aGI,177
|
|
225
|
-
jaclang/tests/fixtures/foo.jac,sha256=
|
|
227
|
+
jaclang/tests/fixtures/foo.jac,sha256=53v2aODH1u73xi8B4UdxyM8Ow6C29H-se8yNwOXs0lg,1083
|
|
226
228
|
jaclang/tests/fixtures/game1.jac,sha256=oiTadkrYJRUo6ZkHUi7I54J_0GoTTtsNLhhofTlz0uY,263
|
|
227
229
|
jaclang/tests/fixtures/gendot_bubble_sort.jac,sha256=2j-SauIfPgmIe5s_pubVxRI7OGwQjL9jHMQnDG6LREk,1542
|
|
228
230
|
jaclang/tests/fixtures/guess_game.jac,sha256=S2sWoF22SY2PbadKQX45QJFtw9lvzwFvrwbG0kbutPE,856
|
|
@@ -254,6 +256,7 @@ jaclang/tests/fixtures/needs_import_2.jac,sha256=RC4aok5TCbxInmTp8OmArCt4afawPP9
|
|
|
254
256
|
jaclang/tests/fixtures/needs_import_3.jac,sha256=9ASkW82KUKDgydt8dR48XucG66n6xeLEGLwAgRgfOR8,104
|
|
255
257
|
jaclang/tests/fixtures/needs_import_dup.jac,sha256=hJab0QWdoTLuNaNhtY6zjzyGGUouRyT9uQknhP-lXXQ,315
|
|
256
258
|
jaclang/tests/fixtures/nosigself.jac,sha256=jCjNizUVOrgJwXJ_-TdOzKsq8hlhU6xuX0Mz27W92lQ,187
|
|
259
|
+
jaclang/tests/fixtures/objref.jac,sha256=u_Sc8CTbsqe0D0VI5jUEWsV36l2PH0uNukSn3LSlJPI,195
|
|
257
260
|
jaclang/tests/fixtures/pyfunc.py,sha256=Os1xnL4I4ddNkpv4Vs5aOxu95dEM0JuNIoiECyCCjJ0,163
|
|
258
261
|
jaclang/tests/fixtures/pyfunc_1.py,sha256=bDEx4oIco0CxXmy1OGwGhcYh9QTNSEIpBuwV8KZ-IFs,5304
|
|
259
262
|
jaclang/tests/fixtures/pyfunc_2.py,sha256=wnPS3t9wEElWtLekP3O5NcKI15-WKg08h4wbiijaMXo,5055
|
|
@@ -278,10 +281,11 @@ jaclang/tests/fixtures/tupleunpack.jac,sha256=AP6rbofc0VmsTNxInY6WLGRKWVY6u8ut0u
|
|
|
278
281
|
jaclang/tests/fixtures/tuplytuples.jac,sha256=6qiXn5OV_qn4cqKwROjJ1VuBAh0nbUGpp-5vtH9n_Dg,344
|
|
279
282
|
jaclang/tests/fixtures/type_info.jac,sha256=4Cw31ef5gny6IS0kLzgeSO-7ArEH1HgFFFip1BGQhZM,316
|
|
280
283
|
jaclang/tests/fixtures/walker_override.jac,sha256=Ok58ZAgxuV6aECNxYrjbbyAWSiqIbnly3N3O6cD563o,271
|
|
284
|
+
jaclang/tests/fixtures/walker_update.jac,sha256=_bN3ASAN6LpfIQFfDMRnrx2oteM-ef7OrbE91f2qvrs,463
|
|
281
285
|
jaclang/tests/fixtures/with_context.jac,sha256=cDA_4YWe5UVmQRgcpktzkZ_zsswQpV_T2Otf_rFnPy8,466
|
|
282
286
|
jaclang/tests/test_bugs.py,sha256=tBPsIlSPqZDIz4QaScNRT-WdGIdJ0uU-aRBWq1XUZ6o,555
|
|
283
287
|
jaclang/tests/test_cli.py,sha256=cqGHeL15sy34qJRZyD48Wu6rnOh1ZDHNS3pg0jOJvag,12515
|
|
284
|
-
jaclang/tests/test_language.py,sha256=
|
|
288
|
+
jaclang/tests/test_language.py,sha256=jOdA1g9icqKOUr4V7SGW5_eKEUw3jELm4I_f02CCDM4,41240
|
|
285
289
|
jaclang/tests/test_man_code.py,sha256=ZdNarlZVfT_-8Jv3FjLplHw76tsvkCuISyfX3M4qxPg,5027
|
|
286
290
|
jaclang/tests/test_reference.py,sha256=FISQpZbB8cmRoAeJOFfXUy13WVxykZjpkPSb1OTotfI,3340
|
|
287
291
|
jaclang/tests/test_settings.py,sha256=TIX5uiu8H9IpZN2__uFiclcdCpBpPpcAwtlEHyFC4kk,1999
|
|
@@ -1515,7 +1519,7 @@ jaclang/vendor/typing_extensions-4.12.2.dist-info/METADATA,sha256=BeUQIa8cnYbrjW
|
|
|
1515
1519
|
jaclang/vendor/typing_extensions-4.12.2.dist-info/RECORD,sha256=XS4fBVrPI7kaNZ56Ggl2RGa76jySWLqTzcrUpZIQTVM,418
|
|
1516
1520
|
jaclang/vendor/typing_extensions-4.12.2.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
|
|
1517
1521
|
jaclang/vendor/typing_extensions.py,sha256=gwekpyG9DVG3lxWKX4ni8u7nk3We5slG98mA9F3DJQw,134451
|
|
1518
|
-
jaclang-0.7.
|
|
1519
|
-
jaclang-0.7.
|
|
1520
|
-
jaclang-0.7.
|
|
1521
|
-
jaclang-0.7.
|
|
1522
|
+
jaclang-0.7.19.dist-info/METADATA,sha256=jajbjocbH7EiEBC5DDAdvMRBlK-Ie7v1tJucFYaApCQ,4914
|
|
1523
|
+
jaclang-0.7.19.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
|
1524
|
+
jaclang-0.7.19.dist-info/entry_points.txt,sha256=8sMi4Tvi9f8tQDN2QAXsSA2icO27zQ4GgEdph6bNEZM,49
|
|
1525
|
+
jaclang-0.7.19.dist-info/RECORD,,
|
|
File without changes
|