l0n0lc 0.9.3__py3-none-any.whl → 0.9.5__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 CHANGED
@@ -103,7 +103,7 @@ class py2cpp编译器(ast.NodeVisitor):
103
103
  self.花括号 = 花括号(self)
104
104
  self.正在调用直接函数 = False
105
105
  self.正在构建参数 = False
106
- self.include目录 = set(['<cstdint>', '<string>'])
106
+ self.include列表 = set(['<cstdint>', '<string>'])
107
107
  self.链接库列表 = set()
108
108
  self.库目录 = set()
109
109
 
@@ -113,7 +113,10 @@ class py2cpp编译器(ast.NodeVisitor):
113
113
  self.c函数名 = f'function_{self.函数名.encode().hex()}'
114
114
  else:
115
115
  self.c函数名 = self.函数名
116
- self.文件前缀 = f'{self.函数名}_@'
116
+ 代码文件地址 = inspect.getfile(被编译的函数)
117
+ 文件名 = os.path.split(代码文件地址)[1]
118
+ 文件名hash = hashlib.blake2s(代码文件地址.encode(), digest_size=8).hexdigest()
119
+ self.文件前缀 = f'{文件名hash}_{文件名}_{self.函数名}_@'
117
120
 
118
121
  def 编译(self):
119
122
  语法树 = ast.parse(self.源代码)
@@ -121,11 +124,10 @@ class py2cpp编译器(ast.NodeVisitor):
121
124
  # 读取依赖函数
122
125
  cpps = set([f'{通用信息.工作文件夹地址}/{self.获取cpp文件名()}'])
123
126
  for b in self.依赖函数:
124
- self.include目录.add(f'"{b.获取h文件名()}"')
127
+ self.include列表.add(f'"{b.获取h文件名()}"')
125
128
  cpps.add(f'{通用信息.工作文件夹地址}/{b.获取cpp文件名()}')
126
129
 
127
130
  self.将代码保存到文件()
128
- self.c编译器.include目录列表 = list(self.include目录)
129
131
  self.c编译器.库目录列表 = list(self.库目录)
130
132
  self.c编译器.链接库 = list(self.链接库列表)
131
133
  输出路径 = f'{通用信息.工作文件夹地址}/{self.获取库文件名()}'
@@ -313,7 +315,7 @@ class py2cpp编译器(ast.NodeVisitor):
313
315
  c类型 = 通用信息.类型映射表.get(fn)
314
316
  if c类型 is not None:
315
317
  for include目录 in c类型.include目录:
316
- self.include目录.add(include目录)
318
+ self.include列表.add(include目录)
317
319
  for 链接库 in c类型.库列表:
318
320
  self.链接库列表.add(链接库)
319
321
  for 库目录 in c类型.库目录:
@@ -332,7 +334,7 @@ class py2cpp编译器(ast.NodeVisitor):
332
334
  if 映射函数 is not None:
333
335
  参数列表 = [self.获取值(arg) for arg in node.args]
334
336
  for include目录 in 映射函数.include目录:
335
- self.include目录.add(include目录)
337
+ self.include列表.add(include目录)
336
338
  for 链接库 in 映射函数.库列表:
337
339
  self.链接库列表.add(链接库)
338
340
  for 库目录 in 映射函数.库目录:
@@ -529,11 +531,11 @@ class py2cpp编译器(ast.NodeVisitor):
529
531
  if isinstance(target, ast.Name):
530
532
  if isinstance(值, dict初始化列表):
531
533
  目标 = StdUnorderedMap(值, target.id, False)
532
- self.include目录.add('<unordered_map>')
534
+ self.include列表.add('<unordered_map>')
533
535
  elif isinstance(值, list初始化列表):
534
536
  目标 = StdList(值, target.id, False)
535
537
  if 值.类型 == cpp类型.ANY:
536
- self.include目录.add('<any>')
538
+ self.include列表.add('<any>')
537
539
  else:
538
540
  目标 = c变量('auto', target.id, False)
539
541
  self.添加c代码(目标.初始化(值, c强转类型))
@@ -576,7 +578,7 @@ class py2cpp编译器(ast.NodeVisitor):
576
578
  return f'extern "C" {self.返回类型} /*{self.函数名}*/ {self.c函数名} ({参数定义文本})'
577
579
 
578
580
  def 获取includes(self):
579
- include代码列表 = [f'#include {目录}' for 目录 in sorted(self.include目录)]
581
+ include代码列表 = [f'#include {目录}' for 目录 in sorted(self.include列表)]
580
582
  return '\n'.join(include代码列表)
581
583
 
582
584
  def 获取h代码(self):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: l0n0lc
3
- Version: 0.9.3
3
+ Version: 0.9.5
4
4
  Summary: 一个将python函数翻译为c++函数并运行的jit编译器
5
5
  Classifier: Programming Language :: Python :: 3
6
6
  Requires-Python: >=3.10
@@ -235,25 +235,25 @@ vv: 1
235
235
  ```bash
236
236
  ls -al ./l0n0lcoutput
237
237
  total 136
238
- drwxr-xr-x 2 root root 4096 Sep 18 02:00 .
239
- drwxrwxrwx 11 1000 1000 4096 Sep 18 02:00 ..
240
- -rw-r--r-- 1 root root 1779 Sep 18 02:00 jit_all_ops_@7801528c3d61baf7.cpp
241
- -rw-r--r-- 1 root root 167 Sep 18 02:00 jit_all_ops_@7801528c3d61baf7.h
242
- -rwxr-xr-x 1 root root 23520 Sep 18 02:00 jit_all_ops_@7801528c3d61baf7.so
243
- -rw-r--r-- 1 root root 1499 Sep 18 02:00 test_add_@469de6acaaabc570.cpp
244
- -rw-r--r-- 1 root root 302 Sep 18 02:00 test_add_@469de6acaaabc570.h
245
- -rwxr-xr-x 1 root root 40216 Sep 18 02:00 test_add_@469de6acaaabc570.so
246
- -rw-r--r-- 1 root root 123 Sep 18 02:00 test_other_fn_@75fdd928ab58a8e3.cpp
247
- -rw-r--r-- 1 root root 106 Sep 18 02:00 test_other_fn_@75fdd928ab58a8e3.h
248
- -rwxr-xr-x 1 root root 15616 Sep 18 02:00 test_other_fn_@75fdd928ab58a8e3.so
249
- -rw-r--r-- 1 root root 187 Sep 18 02:00 test编译的函数_@3bf4501e0408a243.cpp
250
- -rw-r--r-- 1 root root 164 Sep 18 02:00 test编译的函数_@3bf4501e0408a243.h
251
- -rwxr-xr-x 1 root root 15656 Sep 18 02:00 test编译的函数_@3bf4501e0408a243.so
238
+ drwxr-xr-x 2 root root 4096 Sep 27 02:07 .
239
+ drwxrwxrwx 11 1000 1000 4096 Sep 27 02:07 ..
240
+ -rw-r--r-- 1 root root 1811 Sep 27 02:07 c31f68e99ed4ce3c_hello_world.py_jit_all_ops_@7801528c3d61baf7.cpp
241
+ -rw-r--r-- 1 root root 167 Sep 27 02:07 c31f68e99ed4ce3c_hello_world.py_jit_all_ops_@7801528c3d61baf7.h
242
+ -rwxr-xr-x 1 root root 23584 Sep 27 02:07 c31f68e99ed4ce3c_hello_world.py_jit_all_ops_@7801528c3d61baf7.so
243
+ -rw-r--r-- 1 root root 1531 Sep 27 02:07 c31f68e99ed4ce3c_hello_world.py_test_add_@469de6acaaabc570.cpp
244
+ -rw-r--r-- 1 root root 398 Sep 27 02:07 c31f68e99ed4ce3c_hello_world.py_test_add_@469de6acaaabc570.h
245
+ -rwxr-xr-x 1 root root 40408 Sep 27 02:07 c31f68e99ed4ce3c_hello_world.py_test_add_@469de6acaaabc570.so
246
+ -rw-r--r-- 1 root root 155 Sep 27 02:07 c31f68e99ed4ce3c_hello_world.py_test_other_fn_@75fdd928ab58a8e3.cpp
247
+ -rw-r--r-- 1 root root 106 Sep 27 02:07 c31f68e99ed4ce3c_hello_world.py_test_other_fn_@75fdd928ab58a8e3.h
248
+ -rwxr-xr-x 1 root root 15648 Sep 27 02:07 c31f68e99ed4ce3c_hello_world.py_test_other_fn_@75fdd928ab58a8e3.so
249
+ -rw-r--r-- 1 root root 219 Sep 27 02:07 c31f68e99ed4ce3c_hello_world.py_test编译的函数_@3bf4501e0408a243.cpp
250
+ -rw-r--r-- 1 root root 164 Sep 27 02:07 c31f68e99ed4ce3c_hello_world.py_test编译的函数_@3bf4501e0408a243.h
251
+ -rwxr-xr-x 1 root root 15688 Sep 27 02:07 c31f68e99ed4ce3c_hello_world.py_test编译的函数_@3bf4501e0408a243.so
252
252
 
253
253
  ```
254
- ## 5. jit_all_ops_@7801528c3d61baf7.cpp
254
+ ## 5. c31f68e99ed4ce3c_hello_world.py_jit_all_ops_@7801528c3d61baf7.cpp
255
255
  ```c++
256
- #include "jit_all_ops_@7801528c3d61baf7.h"
256
+ #include "c31f68e99ed4ce3c_hello_world.py_jit_all_ops_@7801528c3d61baf7.h"
257
257
  extern "C" int64_t jit_all_ops (int64_t a, int64_t b)
258
258
  {
259
259
  auto x = 42;
@@ -348,7 +348,7 @@ extern "C" int64_t jit_all_ops (int64_t a, int64_t b)
348
348
  }
349
349
 
350
350
  ```
351
- ## 6. jit_all_ops_@7801528c3d61baf7.h
351
+ ## 6. c31f68e99ed4ce3c_hello_world.py_jit_all_ops_@7801528c3d61baf7.h
352
352
  ```c++
353
353
  #pragma once
354
354
  #include <cstdint>
@@ -358,9 +358,9 @@ extern "C" int64_t jit_all_ops (int64_t a, int64_t b)
358
358
  #include <vector>
359
359
  extern "C" int64_t jit_all_ops (int64_t a, int64_t b);
360
360
  ```
361
- ## 7. test_add_@469de6acaaabc570.cpp
361
+ ## 7. c31f68e99ed4ce3c_hello_world.py_test_add_@469de6acaaabc570.cpp
362
362
  ```c++
363
- #include "test_add_@469de6acaaabc570.h"
363
+ #include "c31f68e99ed4ce3c_hello_world.py_test_add_@469de6acaaabc570.h"
364
364
  extern "C" int64_t test_add (int64_t a, int64_t b)
365
365
  {
366
366
  if ((a > 1))
@@ -423,12 +423,12 @@ extern "C" int64_t test_add (int64_t a, int64_t b)
423
423
  }
424
424
 
425
425
  ```
426
- ## 8. test_add_@469de6acaaabc570.h
426
+ ## 8. c31f68e99ed4ce3c_hello_world.py_test_add_@469de6acaaabc570.h
427
427
  ```c++
428
428
  #pragma once
429
- #include "jit_all_ops_@7801528c3d61baf7.h"
430
- #include "test_other_fn_@75fdd928ab58a8e3.h"
431
- #include "test编译的函数_@3bf4501e0408a243.h"
429
+ #include "c31f68e99ed4ce3c_hello_world.py_jit_all_ops_@7801528c3d61baf7.h"
430
+ #include "c31f68e99ed4ce3c_hello_world.py_test_other_fn_@75fdd928ab58a8e3.h"
431
+ #include "c31f68e99ed4ce3c_hello_world.py_test编译的函数_@3bf4501e0408a243.h"
432
432
  #include <cmath>
433
433
  #include <cstdint>
434
434
  #include <iostream>
@@ -436,32 +436,32 @@ extern "C" int64_t test_add (int64_t a, int64_t b)
436
436
  #include <unordered_map>
437
437
  extern "C" int64_t test_add (int64_t a, int64_t b);
438
438
  ```
439
- ## 9. test_other_fn_@75fdd928ab58a8e3.cpp
439
+ ## 9. c31f68e99ed4ce3c_hello_world.py_test_other_fn_@75fdd928ab58a8e3.cpp
440
440
  ```c++
441
- #include "test_other_fn_@75fdd928ab58a8e3.h"
441
+ #include "c31f68e99ed4ce3c_hello_world.py_test_other_fn_@75fdd928ab58a8e3.h"
442
442
  extern "C" int64_t test_other_fn (int64_t a, int64_t b)
443
443
  {
444
444
  return (a - b);
445
445
  }
446
446
 
447
447
  ```
448
- ## 10. test_other_fn_@75fdd928ab58a8e3.h
448
+ ## 10. c31f68e99ed4ce3c_hello_world.py_test_other_fn_@75fdd928ab58a8e3.h
449
449
  ```c++
450
450
  #pragma once
451
451
  #include <cstdint>
452
452
  #include <string>
453
453
  extern "C" int64_t test_other_fn (int64_t a, int64_t b);
454
454
  ```
455
- ## 11. test编译的函数_@3bf4501e0408a243.cpp
455
+ ## 11. c31f68e99ed4ce3c_hello_world.py_test编译的函数_@3bf4501e0408a243.cpp
456
456
  ```c++
457
- #include "test编译的函数_@3bf4501e0408a243.h"
457
+ #include "c31f68e99ed4ce3c_hello_world.py_test编译的函数_@3bf4501e0408a243.h"
458
458
  extern "C" int64_t /*test编译的函数*/ function_74657374e7bc96e8af91e79a84e587bde695b0 (int64_t a, int64_t b)
459
459
  {
460
460
  return (a * b);
461
461
  }
462
462
 
463
463
  ```
464
- ## 12. test编译的函数_@3bf4501e0408a243.h
464
+ ## 12. c31f68e99ed4ce3c_hello_world.py_test编译的函数_@3bf4501e0408a243.h
465
465
  ```c++
466
466
  #pragma once
467
467
  #include <cstdint>
@@ -2,11 +2,11 @@ l0n0lc/StdList.py,sha256=0NTIpaRrNHaCiLrRbEVob21pZHa8S8rfaBRALPT-tD0,889
2
2
  l0n0lc/StdMap.py,sha256=997LCvP0ewNciabbmGHVL2eUgMakHBsR3c5HQmOwC_E,666
3
3
  l0n0lc/__init__.py,sha256=fUC6TMeN_fEL7HDazrBEdoWOQkXi5uSGZb7LZj6juog,137
4
4
  l0n0lc/c基础处理.py,sha256=GrCPZpLsyfQD8XZQhOCb5y8v9NCZ6bU4C_xfJGx-pvQ,5723
5
- l0n0lc/jit.py,sha256=78OtYwz5GHdeVAU_m6MRyKG53ElE9TTeuQ9ZyuRb_QU,25771
5
+ l0n0lc/jit.py,sha256=eYgc3XHSisZO4FUdyP3kXfJZRXdgaF0HVZut_ncm7_4,25946
6
6
  l0n0lc/编译.py,sha256=Ty4gPDHAB1jn8LgnE4w3R06bOAEeYr8iwqahYf6QeHI,2154
7
7
  l0n0lc/通用.py,sha256=RkqP9cMhKhl2h4YxOpAWFFftIPXLZTYMyOOD1PuB59M,4630
8
- l0n0lc-0.9.3.dist-info/licenses/LICENSE,sha256=1L-MAjulZ3kpbYwsJtlXpDVITRxykna2Ecg_521YfkA,1093
9
- l0n0lc-0.9.3.dist-info/METADATA,sha256=BAPktGzCmMJ2imiv9HPMe71udjcNYyzP9nFugzygXUc,10130
10
- l0n0lc-0.9.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
11
- l0n0lc-0.9.3.dist-info/top_level.txt,sha256=Q21D_eEY_-xgRUPwATGp9YDKSBO4w_7MI2MYxQI1aT4,7
12
- l0n0lc-0.9.3.dist-info/RECORD,,
8
+ l0n0lc-0.9.5.dist-info/licenses/LICENSE,sha256=1L-MAjulZ3kpbYwsJtlXpDVITRxykna2Ecg_521YfkA,1093
9
+ l0n0lc-0.9.5.dist-info/METADATA,sha256=oavi7kZlYONyd1qEiGCSn08XgCQz4H5b8G_GxQQKsfg,10994
10
+ l0n0lc-0.9.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
11
+ l0n0lc-0.9.5.dist-info/top_level.txt,sha256=Q21D_eEY_-xgRUPwATGp9YDKSBO4w_7MI2MYxQI1aT4,7
12
+ l0n0lc-0.9.5.dist-info/RECORD,,
File without changes