l0n0lc 0.8.1__py3-none-any.whl → 0.8.3__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.
- l0n0lc/jit.py +12 -0
- {l0n0lc-0.8.1.dist-info → l0n0lc-0.8.3.dist-info}/METADATA +51 -48
- {l0n0lc-0.8.1.dist-info → l0n0lc-0.8.3.dist-info}/RECORD +6 -6
- {l0n0lc-0.8.1.dist-info → l0n0lc-0.8.3.dist-info}/WHEEL +0 -0
- {l0n0lc-0.8.1.dist-info → l0n0lc-0.8.3.dist-info}/licenses/LICENSE +0 -0
- {l0n0lc-0.8.1.dist-info → l0n0lc-0.8.3.dist-info}/top_level.txt +0 -0
l0n0lc/jit.py
CHANGED
@@ -71,6 +71,16 @@ class c函数调用:
|
|
71
71
|
return f'{self.函数名}({self.参数字符串})'
|
72
72
|
|
73
73
|
|
74
|
+
class c布尔:
|
75
|
+
def __init__(self, v) -> None:
|
76
|
+
self.v = v
|
77
|
+
|
78
|
+
def __str__(self) -> str:
|
79
|
+
if self.v:
|
80
|
+
return 'true'
|
81
|
+
return 'false'
|
82
|
+
|
83
|
+
|
74
84
|
class py2cpp编译器(ast.NodeVisitor):
|
75
85
|
def __init__(self, 被编译的函数: Callable, c编译器) -> None:
|
76
86
|
self.被编译的函数 = 被编译的函数
|
@@ -158,6 +168,8 @@ class py2cpp编译器(ast.NodeVisitor):
|
|
158
168
|
|
159
169
|
def 获取值(self, value):
|
160
170
|
if isinstance(value, ast.Constant):
|
171
|
+
if isinstance(value.value, bool):
|
172
|
+
return c布尔(value.value)
|
161
173
|
return value.value
|
162
174
|
|
163
175
|
if isinstance(value, ast.Name):
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: l0n0lc
|
3
|
-
Version: 0.8.
|
3
|
+
Version: 0.8.3
|
4
4
|
Summary: 一个将python函数翻译为c++函数并运行的jit编译器
|
5
5
|
Classifier: Programming Language :: Python :: 3
|
6
6
|
Requires-Python: >=3.10
|
@@ -14,48 +14,7 @@ Dynamic: license-file
|
|
14
14
|
```
|
15
15
|
pip install l0n0lc
|
16
16
|
```
|
17
|
-
## 2.
|
18
|
-
```
|
19
|
-
uv run tests/hello_world.py
|
20
|
-
# 输入: b'1\n2\n100\n101\n'
|
21
|
-
```
|
22
|
-
```bash
|
23
|
-
输出map:
|
24
|
-
c 3
|
25
|
-
a 1
|
26
|
-
b 2
|
27
|
-
输出list:
|
28
|
-
0 134
|
29
|
-
1 3
|
30
|
-
2 2
|
31
|
-
Hello World 13 3
|
32
|
-
test_other_fn 10
|
33
|
-
test编译的函数 39
|
34
|
-
请输入>>>输入的 1 小于等于100
|
35
|
-
请输入>>>输入的 2 小于等于100
|
36
|
-
请输入>>>输入的 100 小于等于100
|
37
|
-
请输入>>>结果: 241
|
38
|
-
|
39
|
-
```
|
40
|
-
|
41
|
-
## 3. 查看输出文件
|
42
|
-
```bash
|
43
|
-
ls -al ./l0n0lcoutput
|
44
|
-
total 96
|
45
|
-
drwxr-xr-x 2 root root 4096 Sep 12 01:42 .
|
46
|
-
drwxrwxrwx 11 1000 1000 4096 Sep 12 01:14 ..
|
47
|
-
-rw-r--r-- 1 root root 1233 Sep 12 01:42 test_add_@3ecbfe0013e83ebc.cpp
|
48
|
-
-rw-r--r-- 1 root root 246 Sep 12 01:42 test_add_@3ecbfe0013e83ebc.h
|
49
|
-
-rwxr-xr-x 1 root root 29904 Sep 12 01:42 test_add_@3ecbfe0013e83ebc.so
|
50
|
-
-rw-r--r-- 1 root root 121 Sep 12 01:42 test_other_fn_@75fdd928ab58a8e3.cpp
|
51
|
-
-rw-r--r-- 1 root root 93 Sep 12 01:42 test_other_fn_@75fdd928ab58a8e3.h
|
52
|
-
-rwxr-xr-x 1 root root 15616 Sep 12 01:42 test_other_fn_@75fdd928ab58a8e3.so
|
53
|
-
-rw-r--r-- 1 root root 185 Sep 12 01:14 test编译的函数_@3bf4501e0408a243.cpp
|
54
|
-
-rw-r--r-- 1 root root 151 Sep 12 01:14 test编译的函数_@3bf4501e0408a243.h
|
55
|
-
-rwxr-xr-x 1 root root 15656 Sep 12 01:14 test编译的函数_@3bf4501e0408a243.so
|
56
|
-
|
57
|
-
```
|
58
|
-
## 4. hello_world.py
|
17
|
+
## 2. hello_world.py
|
59
18
|
```python
|
60
19
|
import l0n0lc as lc
|
61
20
|
import math
|
@@ -121,7 +80,8 @@ def test_add(a: int, b: int) -> int:
|
|
121
80
|
print('test_other_fn', test_other_fn(a, b))
|
122
81
|
print('test编译的函数', test编译的函数(a, b))
|
123
82
|
v = 0
|
124
|
-
|
83
|
+
vv = True
|
84
|
+
while (vv):
|
125
85
|
py_cin(v)
|
126
86
|
if v > 100:
|
127
87
|
break
|
@@ -133,9 +93,51 @@ def test_add(a: int, b: int) -> int:
|
|
133
93
|
print('结果:', test_add(1, 3))
|
134
94
|
|
135
95
|
```
|
136
|
-
|
96
|
+
|
97
|
+
## 3. 运行hello_world.py
|
98
|
+
```
|
99
|
+
uv run tests/hello_world.py
|
100
|
+
# 输入: b'1\n2\n100\n101\n'
|
101
|
+
```
|
102
|
+
```bash
|
103
|
+
输出map:
|
104
|
+
c 3
|
105
|
+
a 1
|
106
|
+
b 2
|
107
|
+
输出list:
|
108
|
+
0 134
|
109
|
+
1 3
|
110
|
+
2 2
|
111
|
+
Hello World 13 3
|
112
|
+
test_other_fn 10
|
113
|
+
test编译的函数 39
|
114
|
+
请输入>>>输入的 1 小于等于100
|
115
|
+
请输入>>>输入的 2 小于等于100
|
116
|
+
请输入>>>输入的 100 小于等于100
|
117
|
+
请输入>>>结果: 241
|
118
|
+
|
119
|
+
```
|
120
|
+
|
121
|
+
## 4. 查看输出文件
|
122
|
+
```bash
|
123
|
+
ls -al ./l0n0lcoutput
|
124
|
+
total 96
|
125
|
+
drwxr-xr-x 2 root root 4096 Sep 16 01:38 .
|
126
|
+
drwxrwxrwx 11 1000 1000 4096 Sep 16 01:36 ..
|
127
|
+
-rw-r--r-- 1 root root 1252 Sep 16 01:38 test_add_@05ade4b088e9b383.cpp
|
128
|
+
-rw-r--r-- 1 root root 246 Sep 16 01:38 test_add_@05ade4b088e9b383.h
|
129
|
+
-rwxr-xr-x 1 root root 29904 Sep 16 01:38 test_add_@05ade4b088e9b383.so
|
130
|
+
-rw-r--r-- 1 root root 121 Sep 16 01:38 test_other_fn_@75fdd928ab58a8e3.cpp
|
131
|
+
-rw-r--r-- 1 root root 93 Sep 16 01:38 test_other_fn_@75fdd928ab58a8e3.h
|
132
|
+
-rwxr-xr-x 1 root root 15616 Sep 16 01:38 test_other_fn_@75fdd928ab58a8e3.so
|
133
|
+
-rw-r--r-- 1 root root 185 Sep 16 01:36 test编译的函数_@3bf4501e0408a243.cpp
|
134
|
+
-rw-r--r-- 1 root root 151 Sep 16 01:36 test编译的函数_@3bf4501e0408a243.h
|
135
|
+
-rwxr-xr-x 1 root root 15656 Sep 16 01:36 test编译的函数_@3bf4501e0408a243.so
|
136
|
+
|
137
|
+
```
|
138
|
+
## 5. test_add_@05ade4b088e9b383.cpp
|
137
139
|
```c++
|
138
|
-
#include "test_add_@
|
140
|
+
#include "test_add_@05ade4b088e9b383.h"
|
139
141
|
extern "C" int64_t test_add (int64_t a, int64_t b)
|
140
142
|
{
|
141
143
|
if ((a > 1))
|
@@ -174,7 +176,8 @@ extern "C" int64_t test_add (int64_t a, int64_t b)
|
|
174
176
|
std::cout<< u8"test_other_fn" << " "<< test_other_fn(a,b) << " "<< std::endl;
|
175
177
|
std::cout<< u8"test编译的函数" << " "<< function_74657374e7bc96e8af91e79a84e587bde695b0(a,b) << " "<< std::endl;
|
176
178
|
auto v = 0;
|
177
|
-
|
179
|
+
auto vv = true;
|
180
|
+
while (vv)
|
178
181
|
{
|
179
182
|
std::cout << u8"请输入>>>"; std::cin >> v;
|
180
183
|
if ((v > 100))
|
@@ -192,7 +195,7 @@ extern "C" int64_t test_add (int64_t a, int64_t b)
|
|
192
195
|
}
|
193
196
|
|
194
197
|
```
|
195
|
-
## 6. test_add_@
|
198
|
+
## 6. test_add_@05ade4b088e9b383.h
|
196
199
|
```c++
|
197
200
|
#include "test_other_fn_@75fdd928ab58a8e3.h"
|
198
201
|
#include "test编译的函数_@3bf4501e0408a243.h"
|
@@ -2,11 +2,11 @@ l0n0lc/StdList.py,sha256=fA6sWAfW2JgDUhQDK2Hlx_PPuSdLwTcCTk5aha4zA-Q,863
|
|
2
2
|
l0n0lc/StdMap.py,sha256=TIVKqhT078cjLIM0Zlq-TwGFSy-KwOyJe00BLFPVxr8,735
|
3
3
|
l0n0lc/__init__.py,sha256=fUC6TMeN_fEL7HDazrBEdoWOQkXi5uSGZb7LZj6juog,137
|
4
4
|
l0n0lc/c基础处理.py,sha256=FMauoVx4-33JXl4OLpUl1D6NCkLjk6yBH7do9WnT0Wg,5671
|
5
|
-
l0n0lc/jit.py,sha256=
|
5
|
+
l0n0lc/jit.py,sha256=FBGvpIeRINR2QaI4sB6fnsHjAAurHTqk9cJBOzQ_4nk,23936
|
6
6
|
l0n0lc/编译.py,sha256=Ty4gPDHAB1jn8LgnE4w3R06bOAEeYr8iwqahYf6QeHI,2154
|
7
7
|
l0n0lc/通用.py,sha256=O_Y4bbW1WzHCJkibxAy9WGACv-aEZJLG-fEeVBcAbBQ,3649
|
8
|
-
l0n0lc-0.8.
|
9
|
-
l0n0lc-0.8.
|
10
|
-
l0n0lc-0.8.
|
11
|
-
l0n0lc-0.8.
|
12
|
-
l0n0lc-0.8.
|
8
|
+
l0n0lc-0.8.3.dist-info/licenses/LICENSE,sha256=1L-MAjulZ3kpbYwsJtlXpDVITRxykna2Ecg_521YfkA,1093
|
9
|
+
l0n0lc-0.8.3.dist-info/METADATA,sha256=e0DJP_v-J92RjhpLItzAeV_qAzcvEtxHEHBQqEwFbjo,5547
|
10
|
+
l0n0lc-0.8.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
11
|
+
l0n0lc-0.8.3.dist-info/top_level.txt,sha256=Q21D_eEY_-xgRUPwATGp9YDKSBO4w_7MI2MYxQI1aT4,7
|
12
|
+
l0n0lc-0.8.3.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|