Commit Graph

231 Commits

Author SHA1 Message Date
Padraic Fanning
0ea56025ec Replace master with main
Fixes #3067
2021-09-15 17:54:54 -04:00
Jeong YunWon
64f7599de7 Merge pull request #2980 from HyeockJinKim/debug_value
Raise syntax error when saving a value to __debug__.
2021-09-06 01:58:36 +09:00
HyeockJinKim
85ec817b73 remove unnecessary mut in compiler.rs 2021-09-05 17:50:08 +09:00
HyeockJinKim
e5137fd25f Raise syntax error when saving a value to __debug__. 2021-08-27 23:48:14 +09:00
Jeong YunWon
93b91bab2d Compiler::qualified_name as vec 2021-08-27 23:45:47 +09:00
Jeong YunWon
390005f9a8 clean up Compiler::create_qualified_name 2021-08-27 23:29:34 +09:00
Lee Dogeon
abdfe3222b Fix __repr__, __qualname__ (#2977) 2021-08-27 17:07:10 +03:00
Nikita Sobolev
ba74a9a239 Fixes typos in all other files 2021-08-22 12:42:13 +09:00
snowapril
38237c30d3 compiler: add is_global() check at top of errors
add `!symbol.is_global()` condition check before entrying global symbol
errors

This change will decrease hot path cost.

Signed-off-by: snowapril <sinjihng@gmail.com>
2021-08-18 00:35:14 +09:00
snowapril
13bbefdd4e compiler: impl syntax error detect for global kind
This commit fixes `test_global_parap_err_first` test in
[test_syntax.py](https://github.com/RustPython/RustPython/blob/master/Lib/test/test_syntax.py#L678) and implement the other syntax errors detection as cpython 3.8 provided for global symbol.

Below syntax error conditions are added.
* name {} is parameter and global
```python
>>>>> def test(a):
.....   global a
.....
SyntaxError: name 'a' is parameter and global at line 2 column 2
        global a
```
* annotated name {} can't be global
```python
>>>>> def test():
.....   a: int
.....   global a
.....
SyntaxError: annotated name 'a' can't be global at line 3 column 2
        global a
```
* name {} is assigned to before global description
```python
>>>>> a = 100
>>>>> def test():
.....   a = 10
.....   global a
.....
SyntaxError: name 'a' is assigned to before global declaration at line 3 column 2
        global a
```
* name {} is used prior to global declaration
```python
>>>>> a = 10
>>>>> def test():
.....   print(a)
.....   global a
.....
SyntaxError: name 'a' is used prior to global declaration at line 3 column 2
        global a
```

Signed-off-by: snowapril <sinjihng@gmail.com>
2021-08-17 21:14:13 +09:00
Jeong YunWon
ff4efd0f60 Fix unnessessary borrow 2021-07-30 02:32:16 +09:00
Padraic Fanning
c86c7a1cfb Fix manual_flatten Clippy warning 2021-05-07 16:57:38 -04:00
Noah
763c18d8aa Merge pull request #2544 from RustPython/coolreader18/misc-fixes
Misc fixes related to IPython
2021-04-14 15:14:54 -05:00
Noah
4129f0c5c0 Fix async for compilation 2021-04-11 17:38:44 -05:00
Noah
0a4141c778 Add an ast optimizer 2021-04-05 09:46:30 -05:00
Noah
605a353bc0 Merge pull request #2518 from RustPython/get-method-opt
Add optimized method lookup to avoid creating intermediate method objects
2021-03-27 15:05:04 -05:00
Noah
25ecd7c38b Upgrade dependencies 2021-03-25 08:06:56 -05:00
Noah
54ab9cb54a Add LoadMethod and CallMethod* opcodes 2021-03-15 09:45:07 -05:00
Noah
322aba324f Impl Eq+Hash for ConstantData, make CodeInfo.constants an IndexSet 2021-03-11 09:58:25 -06:00
Noah
86f907ec0d Fix SetupAsyncWith stack level handling 2021-02-20 21:04:30 -06:00
Noah
afefd163a6 Merge pull request #2438 from RustPython/coolreader18/compile_call-classdef
Handle splat args in bases/kwargs for __build_class__
2021-02-16 17:57:26 -06:00
Noah
1d18398c66 Handle splat args in bases/kwargs for __build_class__ 2021-02-15 21:39:43 -06:00
Padraic Fanning
0d7570391e Run rustfmt 2021-02-12 16:23:06 -05:00
Noah
d940e17bf1 Implement name mangling 2021-01-26 09:59:16 -06:00
Noah
bcf58d9091 Misc fixes 2021-01-14 12:37:37 -06:00
Noah
a00135c65a Update the compiler to use the new asdl ast types 2021-01-14 12:37:37 -06:00
Noah
b8aabb7bb7 Implement asdl in the ast and parser 2021-01-14 12:37:37 -06:00
Noah
56c225c748 Use ahash/phf in parser 2021-01-08 17:09:09 -06:00
Noah
688880c540 Use ahash in the compiler 2021-01-08 17:00:23 -06:00
Noah
559123c617 Don't push something on the stack when starting a generator 2020-12-23 17:40:33 -06:00
Noah
2123df6017 Don't keep a separate blockorder vec 2020-12-21 18:49:00 -06:00
Noah
8f536b986d Use boxvec for frame.stack 2020-12-21 18:48:56 -06:00
Noah
32a1dd60be Have a block-based IR for compiling, calculate max stack size 2020-12-21 18:47:58 -06:00
Noah
a5d45124fd Update other stuff to use the root of rustpython_bytecode 2020-12-19 14:59:07 -06:00
Noah
1be79c93b0 Make Instruction only 8 bytes 2020-12-14 15:55:47 -06:00
Noah
e87144e2c5 Add flags to the MakeFunction instruction 2020-12-14 14:35:17 -06:00
Noah
9c895c268a Add label_arg{,_mut} methods 2020-12-14 14:25:20 -06:00
Noah
f93934f0c6 Make Continue have the target it's continuing to 2020-12-14 14:25:19 -06:00
Noah
3280a1655a Optimize the size of Instruction 2020-12-14 14:25:19 -06:00
Noah
43860902e6 Import ConstantData in compile.rs 2020-12-14 14:25:19 -06:00
Noah
34bb5f0d7a Apply review suggestions 2020-12-05 16:36:38 -06:00
Noah
22e76f1a67 Use a boxed slice for codeobject fields 2020-12-05 16:36:37 -06:00
Noah
7c58f4a0c8 Fast locals part 3 2020-12-05 16:36:35 -06:00
Noah
92b8e59158 Fast locals part 2 2020-12-05 16:36:00 -06:00
Noah
97029af713 Fast locals part 1 2020-12-05 16:36:00 -06:00
Noah
479610f3cb Move compiler snapshots 2020-12-05 16:36:00 -06:00
Noah
085a9d4f5e Don't use a wildcard to prevent future mistakes 2020-11-24 11:57:14 -06:00
Noah
6082049cab Remove the need for a label_map in CodeObject 2020-11-23 14:41:56 -06:00
Noah
2f232ecbe3 Implement string interning for variable names 2020-11-09 15:51:57 -06:00
Noah
4528f17210 compiler/porcelain wrapper 2020-11-07 15:43:23 -06:00