Commit Graph

1200 Commits

Author SHA1 Message Date
K. Lange
0ae051b65d Rewrite Exceptions using typechecking method macros 2022-07-03 23:20:21 +09:00
K. Lange
f86887b40a Elide : for zero-length Exception.__str__() 2022-07-03 23:20:00 +09:00
K. Lange
de0af11361 KeyError should repr instead of print because Python does that 2022-07-03 21:20:55 +09:00
K. Lange
8b6952dd04 Include module name when printing exception name 2022-07-03 21:20:36 +09:00
K. Lange
f38a451f19 Attach and build upon partial tracebacks
If an exception is raised within a 'try', attach a traceback only up
until that 'try'. If a re-raised exception has a traceback already,
attach the new traceback "above" the existing one.
2022-07-03 20:39:07 +09:00
K. Lange
85ad910f23 Attach __cause__, __context__ to exceptions; support 'raise ... from ...' 2022-07-03 19:50:00 +09:00
K. Lange
2d2691710c Exceptions with no argument should not set it to 'None' 2022-07-03 19:38:04 +09:00
K. Lange
3167888187 Restore frame pointer correctly on exit due to inner exception 2022-07-03 18:45:07 +09:00
K. Lange
1d828addc0 Bail early if _eq raises an exception 2022-07-03 18:44:47 +09:00
K. Lange
33946d8675 Break early from exceptions in more list functions 2022-07-03 18:17:41 +09:00
K. Lange
9f2791f580 Describe 'END_FINALLY' handler sentinel in printValueSafe 2022-07-03 18:16:15 +09:00
K. Lange
6512720b7a Revert accidental inclusion of debug prints when print() encounters an exception 2022-07-03 16:23:14 +09:00
K. Lange
e33a37a731 Cleanup complex argument parsing 2022-07-03 16:11:23 +09:00
K. Lange
abd90ccd3d Fixup, complete tuple comparisons 2022-07-03 11:18:11 +09:00
K. Lange
150a37f210 NotImplemented == NotImplemented 2022-07-03 11:14:19 +09:00
K. Lange
e39628bae1 When returning with an uncaught exception in an inner call, set the stack appropriately 2022-07-03 07:59:10 +09:00
K. Lange
2e15653e11 Add some tuple comparators 2022-07-03 07:25:33 +09:00
K. Lange
0b7988c9aa Ensure list.sort doesn't run more comparators with an active exception 2022-07-03 07:10:32 +09:00
K. Lange
ed9b522697 Use absolute stack offset when exiting from a native call 2022-07-03 07:09:48 +09:00
K. Lange
2000161d34 Trim trailing whitespace in string-to-int/long conversions 2022-06-29 14:55:46 +09:00
K. Lange
a354c4a2c1 Fixup int(str) which should default to base 10, and throw exceptions 2022-06-29 14:47:48 +09:00
K. Lange
0d28885009 Fix that one old test to not go through float() 2022-06-29 13:55:21 +09:00
K. Lange
e7ca71ec96 Support more special methods in doc generation 2022-06-29 13:53:31 +09:00
K. Lange
d968a91cc7 Cleanup missed setlice/delslice refs 2022-06-29 13:15:46 +09:00
K. Lange
563a2b117e Update version suffix to -beta 2022-06-29 13:08:14 +09:00
K. Lange
fa452d606f Cleanup macros for BIND_TRIPLET 2022-06-29 09:51:57 +09:00
K. Lange
4c5a584769 highlight 'long' as a type in rline 2022-06-29 09:47:46 +09:00
K. Lange
fd7bc2a79c Internal long inspection methods 2022-06-29 09:46:41 +09:00
K. Lange
8c6273c803 long.__abs__ 2022-06-29 09:45:52 +09:00
K. Lange
c5fa5cf490 Fix __pow__ loop order, missing scratch reg 2022-06-29 09:27:40 +09:00
K. Lange
5da27081fc (-1) ** 0 is in fact 1 2022-06-29 08:33:40 +09:00
K. Lange
468fb09f5e Implement __pow__ for integers using method described by HAC 14.79, as CPython does 2022-06-29 07:52:11 +09:00
K. Lange
978f09a32a Add set.__xor__ 2022-06-28 21:42:11 +09:00
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