K. Lange
1ac8f296b2
Invalidate caches of subclass method pointers when they change in a superclass
2022-05-27 00:05:27 +09:00
K. Lange
74e064c82c
Test case for preceding fix
2022-05-24 13:33:34 +09:00
K. Lange
4a052191de
Support 'else' blocks on for and while loops
2022-05-23 09:41:12 +09:00
K. Lange
ece7da299a
Support = to print f-string expression alongside value
2022-05-23 08:42:40 +09:00
K. Lange
6613db6cd4
Implement slice objects, slice stepping
...
This is an initial implementation of slice stepping and slice objects.
The __getslice__, __setslice__, and __delslice__ methods have been removed.
Slice expressions are now turned into slice objects with the OP_SLICE instruction.
Slice objects have a start, end, and step, all of which default to None.
Slice objects are passed to __getitem__, et al., as a normal parameter.
Support for slices in list.__getitem__, str.__getitem__, and bytes.__getitem__ has
been implemented.
2022-05-03 16:49:58 +09:00
K. Lange
e24ea3d32c
Fix incorrect handling of blank and comment lines before 'else', 'except', etc.
2022-02-17 09:49:24 +09:00
K. Lange
2c158f9491
Fixup bad cast when comparing int to float
2021-12-15 17:31:15 +09:00
K. Lange
abd49b93a7
Fix 'del' on table entries not updating count
2021-12-15 17:22:52 +09:00
K. Lange
6a431e9aa3
Add a test for that
2021-12-15 15:11:27 +09:00
K. Lange
3733c996bc
Fix assignments to single complex assignment targets (trailing commas)
2021-04-23 14:15:14 +09:00
K. Lange
84765c1f4d
Update test for change in dict ordering
2021-04-14 22:32:51 +09:00
K. Lange
40836cba21
Implement Python 3 division semantics
2021-04-02 16:02:05 +09:00
K. Lange
dc361af48b
Fix incorrect binding of classmethod when called on instance of subclass
2021-04-02 12:25:07 +09:00
K. Lange
002412ecf8
Initial support for async/await
2021-03-31 19:27:13 +09:00
K. Lange
f4ea799d42
Fix generator not being popped from stack on 'yield from'
2021-03-31 19:09:06 +09:00
K. Lange
729220568e
Try swapping args to __eq__ on NotImplemented
2021-03-30 17:00:23 +09:00
K. Lange
70d5f1b2b7
Implement NotImplemented, fallback operators
...
Adds 'NOTIMPL' as a new primitive value, available from
__builtins__.NotImplemented. Adds support for inverse /
reflected overrides for binary operators. Adds opcodes
for LESS_EQUAL and GREATER_EQUAL.
2021-03-30 16:42:29 +09:00
K. Lange
006119cc1e
Support arguments to super(), support outside of classes
2021-03-30 14:18:39 +09:00
K. Lange
7a81724595
Unify more format strings
2021-03-26 12:17:14 +09:00
K. Lange
41c77de753
Implement overridable hashing and speed up property access
2021-03-25 19:49:18 +09:00
HarJIT
5c2de206b9
Codecs package ( #4 )
...
Codecs package
Co-authored-by: HarJIT <harjit@harjit.moe>
2021-03-24 04:53:02 -07:00
K Lange
2ed8e65c89
Rework KrkValue to use NaN-boxing
2021-03-24 20:49:44 +09:00
K. Lange
b5c22f77c5
Preallocate table space for krk_dict_of
2021-03-23 20:26:39 +09:00
K. Lange
6f92af28a2
Update test/day7.krk to not just be a test of list.pop
2021-03-23 12:50:04 +09:00
K. Lange
a63aef6b92
Try to make builds smaller
...
... by:
- Normalizing some exception strings.
- Putting the 'dis' module behind -DDEBUG.
2021-03-22 18:09:25 +09:00
K Lange
c68eb093e8
Fix broken stack handling in and make map,enumerate,filter object inits
2021-03-21 16:47:13 +09:00
K. Lange
a25315de92
Implement chained comparison operators
2021-03-21 12:41:54 +09:00
K. Lange
d0ea1278a6
... and update test
2021-03-21 11:31:07 +09:00
K. Lange
1a569e36f6
README changed, update the test
2021-03-20 16:09:48 +09:00
K. Lange
cb809dd0fe
'yield' as an expression with a value; 'yield from'
2021-03-20 12:07:46 +09:00
K. Lange
2d3e7ca3d3
Fix bad pop on bare except-finally
2021-03-19 11:39:49 +09:00
K. Lange
46dada92fc
Support multiple context managers in a 'with' statement
2021-03-18 21:25:19 +09:00
K. Lange
ee731257dd
Support calling exit handlers for with: statements on exception
2021-03-18 20:41:11 +09:00
K. Lange
8aed1368ea
Implement 'finally'
2021-03-18 19:52:30 +09:00
K. Lange
6c29be4dcf
Fix up multiple assignment targets so we have some hope of nesting
2021-03-16 19:28:00 +09:00
K Lange
708ba0a481
Fix up some weird stuff with parens
2021-03-13 23:37:09 +09:00
K. Lange
b09f7b1131
Multiple arbitrary assignment
2021-03-13 20:17:45 +09:00
K Lange
9ea28e77f1
Add class and module member annotations
2021-03-13 14:22:32 +09:00
K Lange
49ee777c50
Type annotations.
2021-03-11 20:44:39 +09:00
K Lange
f655ca7f61
Fix up function, object repring and add __qualname__ to functions
2021-03-11 19:05:21 +09:00
K. Lange
6b3f8de63b
Implement general __get__/__set__ descriptors
...
property objects are no longer a special case and have been simplified
old-style native properties can probably all be removed as well, but, todo
2021-03-10 20:24:12 +09:00
K. Lange
c9aa17e119
Rename __get__, __set__ to match Python's __getitem__, __setitem__ and make room for future addition of descriptors
2021-03-10 14:24:22 +09:00
K. Lange
05f7d9537a
Add tests related to recent class method changes
2021-03-09 23:00:47 +09:00
K. Lange
84b7a37fab
Remove the distinction between a class's 'fields' and 'methods' and implement actual method resolution
2021-03-09 22:35:40 +09:00
K. Lange
5dfbf8ec17
Various cleanups
2021-03-08 16:36:12 +09:00
K. Lange
1809ebf99e
Okay quite a bit was wrong with that, but now it's right
2021-03-06 18:00:14 +09:00
K. Lange
35b4032de3
Support chained 'for's in generator expressions
2021-03-06 15:32:30 +09:00
K. Lange
0f6b74ff5b
Generator expressions as direct function arguments
2021-03-06 11:19:34 +09:00
K. Lange
e97e42afc9
Replace tuple comprehensions with generator expressions
2021-03-06 11:13:49 +09:00
K. Lange
7aa4d3ce99
yield keyword; generator functions
2021-03-04 18:09:07 +09:00