Commit Graph

1017 Commits

Author SHA1 Message Date
K. Lange
edc86e2d21 Rudimentary float operations for longs; definitely more inaccurate than they could be 2022-06-28 13:23:49 +09:00
K. Lange
c670dd6e0e Addition long (and int) functions, as per Python 2022-06-28 13:23:30 +09:00
K. Lange
107919024b Collect a bunch of digits into a uint64_t first... 2022-06-28 07:48:10 +09:00
K. Lange
21cd0c8fbe typo'd condition for converting negatives 2022-06-27 21:41:54 +09:00
K. Lange
f61922d155 long type 2022-06-27 20:40:24 +09:00
K. Lange
635dd442ba Add method fallbacks for oct,hex,bin,abs,float; move int methods to class 2022-06-21 13:42:12 +09:00
K. Lange
82292d08b5 Optimize 'while True' and 'while 1' at a parse level 2022-06-20 08:46:30 +09:00
K. Lange
5e464b3d67 Upvalue closing only needs to happen once in CLOSE_MANY 2022-06-09 08:05:23 +09:00
K. Lange
4b021181bd Bind a few new dynamic properties for code objects 2022-06-08 20:55:45 +09:00
K. Lange
2314a4ee6e Rudimentary % formatter for strings 2022-06-04 23:27:51 +09:00
K. Lange
0e51103d26 __call__ must be one of these, let's skip the extra jumps and switch... 2022-06-04 20:44:58 +09:00
K. Lange
92c0d09999 Implement dict.__ior__ 2022-06-04 20:28:20 +09:00
K. Lange
7d3df0d650 Cache binary operator methods, support inplace variants 2022-06-04 20:25:54 +09:00
K. Lange
ed31f1e314 Try some minor optimizations to function calls 2022-06-04 20:23:44 +09:00
K. Lange
3721ebc97c shift-and-compare is probably better than mask & compare 2022-06-04 20:20:43 +09:00
K. Lange
248f54a8f2 Pull out attributeUnpack to a separate function because I may want to just get rid of it 2022-06-04 16:06:16 +09:00
K. Lange
cdcfb63f41 New '__options__' psuedo-module with compile-time changes 2022-06-04 15:59:24 +09:00
K. Lange
b2846c13ce (bench) python fasttimer should check for exceptions 2022-06-04 15:34:47 +09:00
K. Lange
cd25ada161 Less obtuse list.append() benchmark 2022-06-04 12:13:38 +09:00
K. Lange
75e0ec9e54 Fix up some syntax errors 2022-06-04 06:51:34 +09:00
K. Lange
3bfa32ac83 Print ^s for the whole width of a faulting symbol in a syntax error, looks cooler 2022-06-03 21:35:58 +09:00
K. Lange
4fd68ec5d1 Simplify rewinding infix operators 2022-06-03 16:52:48 +09:00
K. Lange
5f3a2b4747 Expose __args__ directly on codeobject 2022-06-03 16:19:36 +09:00
K. Lange
b4349303e9 Add more keywords to the stdlib highlighter 2022-06-03 13:45:12 +09:00
K. Lange
5a79f27b83 Fix incorrect OP_CLOSURE instruction size returned by dis.examine 2022-06-03 13:07:49 +09:00
K. Lange
9c25e200b8 Take the line number from the previously parsed token when build synthetics 2022-06-03 10:44:58 +09:00
K. Lange
bce994318c (meta) upgrade github codeql workflow 2022-06-02 20:11:34 +09:00
K. Lange
48f9d34a9b Tests for bound method edge cases 2022-06-02 14:34:40 +09:00
K. Lange
2e7bf54d9a Bound methods can be bound to non-function callables 2022-06-02 14:34:40 +09:00
K. Lange
55849aa4f0 Fix edgecases around expanded calls to bound callables when no stack space is available 2022-06-02 14:34:40 +09:00
K. Lange
3bc8d72895 Take best-of-ten in most benchmarks, add inner_loop benchmarks 2022-06-02 08:01:55 +09:00
K. Lange
1ee63c15f6 Use a flag to mark classes not subclassable
A KrkInstance should always have a valid and correct allocSize
available from its class object, which for non-subclassable classes
like the ones representing stack values should be the size of a
normal instance, so that we can safely treat it as an instance
until it can get garbage collected when it is allocated before
the call to __init__ that replaces it with the right kind of
object (or raises an exception).
2022-05-31 18:41:00 +09:00
K. Lange
098b3168f3 prevent functions, codeobjects from being initialized; methods can be 2022-05-31 18:17:28 +09:00
K. Lange
fa2b2c053b Merge flags 2022-05-31 17:31:35 +09:00
K. Lange
c785b2580e kuroko.inspect_value() shows KrkValue byte representation 2022-05-31 16:11:41 +09:00
K. Lange
b3c693eae5 Disallow subclassing of some core types that are not subclasses of Instance 2022-05-31 07:34:19 +09:00
K. Lange
3f0522dd98 Change getsizeof calculations; stack-only values have 0 size 2022-05-31 07:34:00 +09:00
K. Lange
2437e73c82 Bad malloc size in putenv? 2022-05-31 07:02:21 +09:00
K. Lange
f16083a1a6 Pack object type/flags/hash better
This is much a more major ABI break than the other things I've
been doing, but also a much bigger win.
2022-05-31 06:55:54 +09:00
K. Lange
bbfe948b86 Lambda should be able to accept *args and **kwargs 2022-05-30 17:46:24 +09:00
K. Lange
65f7ae3f22 Simplify cached method things; don't expose the enum in headers 2022-05-30 13:47:27 +09:00
K. Lange
a41410dcd9 Stick 'subclasses' before method cache
While were in here breaking ABIs, this makes a lot more sense.
2022-05-30 08:56:56 +09:00
K. Lange
bbf378efe2 Reorder arguments to callNativeOnStack for better fallthrough to native call 2022-05-29 20:00:41 +09:00
K. Lange
d18b08ea46 Native function args should be const 2022-05-29 18:39:46 +09:00
K. Lange
8ade3af008 Support dir() with no arguments; returns globals only 2022-05-28 17:56:53 +09:00
K. Lange
ae10f81387 Start calling this 1.3 2022-05-28 17:33:35 +09:00
K. Lange
285f7cd496 Fix up path search ordering to be more like CPython; implement __main__.krk 2022-05-28 17:31:43 +09:00
K. Lange
a4e2b5c881 Relative imports 2022-05-28 15:41:47 +09:00
K. Lange
3645047051 Same for None 2022-05-28 11:45:38 +09:00
K. Lange
f14ca90792 Avoid NotImplemented.__hash__ resolving to object.__hash__ and segfaulting 2022-05-28 11:38:59 +09:00