Idan Dor
1e985e26da
Fixed issue MRO computation in RustPython doesn't seem to implement C3 correctly #1659 .
...
To my surprise the C3 algorithm was implemented, however I have found a few problems which cause it to appear like it isn't:
- Bad mro usage in super: starting from the current class mro instead of the original class at the index of the current class. This leads to skipping classes gotten from multiple inheritance.
- A minor error in mro c3 implementation - not keeping local precedence ordering.
- The mro c3 implementation also allowed duplicate base classes. (Not from the issue but I noticed this anyway).
To allow the fix in new class creation I added an optional vm argument.
This allows the class creation to correctly throw type errors at mro errors.
Due to classes being necessary to vm creation in the first place, this argument is optional (and should only be skipped during initial type creation) and if there is an error here, it will panic instead of returning it.
2020-02-14 15:08:47 +02:00
Jeong YunWon
8d7be94b03
PyBool
2020-02-07 11:56:31 +09:00
Aviv Palivoda
2633f9f844
Add struct.calcsize
2020-02-06 21:21:44 +02:00
Jeong YunWon
67f072dbff
Merge pull request #1749 from youknowone/_vm
...
Remove `_vm` parameter when it is not required
2020-02-06 20:33:43 +09:00
Jeong YunWon
92cb58b163
Remove _vm parameter - remove unused functions
2020-02-06 18:54:37 +09:00
Jeong YunWon
6ddb690e09
Remove _vm parameter when it is not required
2020-02-06 11:07:51 +09:00
Jeong YunWon
844b6395ce
Fix SyntaxError initial value
2020-02-06 10:39:52 +09:00
Jeong YunWon
c0b235ed66
cleanup property and get descriptor codes
2020-02-06 03:56:40 +09:00
Jeong YunWon
58744df1d5
Revert 08e66b5002
...
which is not required anymore
2020-02-06 03:56:40 +09:00
Jeong YunWon
facabfee1a
Remove PropertyBuilder and add new_getset
2020-02-06 03:45:19 +09:00
Jeong YunWon
0aee78de18
pyproperty generates PyGetSet instead of PyProperty
2020-02-06 03:42:05 +09:00
Jeong YunWon
23381b9937
compatiibility for CPytthon descr_check
2020-02-06 03:42:01 +09:00
Jeong YunWon
226a2a6cb9
VM polymorphism for getter and setter
2020-02-06 03:36:05 +09:00
Jeong YunWon
d1f9cb4e58
PySetResult and IntoPySetResult
2020-02-06 03:33:34 +09:00
Jeong YunWon
ca557788c8
&self support for getter/setter
2020-02-06 01:47:53 +09:00
Jeong YunWon
c3d5f6c145
IntoPyGetterFunc, IntoPySetterFunc
2020-02-06 01:46:00 +09:00
Jeong YunWon
9f5cd17f2b
Add getset_descriptor
2020-02-06 01:23:39 +09:00
Jeong YunWon
7d0d313aa5
&str::to_string -> &str::to_owned for variables
2020-02-05 22:55:34 +09:00
Jeong YunWon
1bac582921
&str::to_string -> &str::to_owned for literals
2020-02-05 22:55:33 +09:00
Noah
c435ba05ab
Merge pull request #1731 from RustPython/feature/implement-random
...
Implement _random.Random
2020-02-05 07:39:27 -06:00
Noah
3595f4e1a4
Merge pull request #1730 from youknowone/type-error
...
Fix type() error message and BaseException.__str__
2020-02-03 19:28:25 -06:00
Noah
e46d38e6ea
Merge pull request #1733 from youknowone/py-base-object
...
PyBaseObject
2020-02-03 19:15:35 -06:00
Noah
9abb258849
Fix clippy warnings
2020-02-03 18:38:19 -06:00
Noah
a762bf89d9
Move gen_res53 to mersenne.rs
2020-02-03 18:27:35 -06:00
Noah
a20b6bfaaa
Implement _random using the MT19937 algorithm
2020-02-03 18:21:51 -06:00
malkoG
8a3fb408dc
Implement random module
2020-02-03 18:21:37 -06:00
Jeong YunWon
1c2b01f894
parse_number can raise error about length
2020-02-01 21:29:01 +09:00
Jeong YunWon
3e56b3f284
PyBaseObject
2020-02-01 16:56:12 +09:00
Aviv Palivoda
9c12b95cf4
Support timeout in Popen.communicate
2020-02-01 09:54:05 +02:00
Jeong YunWon
c366c2074c
Fix type() error message and BaseException.__str__
2020-02-01 13:23:32 +09:00
Jeong YunWon
7cdaba75ab
Merge pull request #1726 from youknowone/calltype-ex
...
Fix bytecode::CallType::Ex to raise non-str type error
2020-02-01 12:32:51 +09:00
Jeong YunWon
fc0c8fd59a
Fix int.from_bytes type
2020-02-01 02:54:57 +09:00
Jeong YunWon
2a47785e6a
Fix bytecode::CallType::Ex to raise non-str type error
2020-02-01 01:12:21 +09:00
Noah
ee354baf22
Merge pull request #1687 from RustPython/coolreader18/purge-ub
...
Purge all UB from init_type_hierarchy
2020-01-30 13:41:01 -08:00
Aviv Palivoda
3fb6fb8706
Merge pull request #1718 from youknowone/macos-whence
...
cleanup unused import warning for macOS
2020-01-30 15:23:53 +02:00
Aviv Palivoda
acc47ee31c
Merge pull request #1717 from palaviv/dict_iterator-repr
...
Add repr for dict_keys, dict_values and dict_items
2020-01-30 14:45:23 +02:00
Jeong YunWon
24304a9f24
cleanup unused import warning for macOS
2020-01-30 21:14:54 +09:00
Aviv Palivoda
d1b7d658bc
Fix clippy warning
2020-01-30 13:35:01 +02:00
Aviv Palivoda
9685b77cf3
Add repr for dict_keys, dict_values and dict_items
2020-01-30 12:28:14 +02:00
Jeong YunWon
7fd92fcc71
Py_TPFLAGS_BASETYPE
2020-01-30 16:32:09 +09:00
Jeong YunWon
869645203d
cpython compatible type_new
2020-01-29 21:30:33 +09:00
Jeong YunWon
1ecc8228d9
PySlots::flags
2020-01-29 21:30:33 +09:00
Jeong YunWon
b2ba6b2013
objtype::class_*_attr into PyClassRef methods
2020-01-29 21:30:33 +09:00
Jeong YunWon
ad2d82c66f
cleanup objtype
2020-01-29 21:30:33 +09:00
coolreader18
ff97ac5133
Fix subprocess test and byte{s,array}.{,l,r}strip
2020-01-28 11:33:11 -06:00
Noah
e6a431ad22
Merge pull request #1676 from youknowone/fix-cpytest
...
Fix test_bool::test_sane_len
2020-01-27 18:24:40 -08:00
Noah
ac4af12320
Merge pull request #1700 from palaviv/github-actions
...
GitHub actions
2020-01-27 16:22:54 -08:00
Daniel Alley
4e2afe7937
Remove wtf8 dependency
2020-01-27 08:35:58 -05:00
Noah
dc98ea671e
Merge pull request #1711 from dralley/once-cell
...
Replace lazy_static! macro with once_cell
2020-01-27 05:33:27 -08:00
Daniel Alley
e5cac96511
Replace lazy_static! macro with once_cell
2020-01-27 01:05:53 -05:00