Commit Graph

1399 Commits

Author SHA1 Message Date
K. Lange
d9398f1eff Use string builder for repl results 2024-03-05 14:38:33 +09:00
K. Lange
9d5c9200e8 Simplify some container __repr__ implementations with %R 2024-03-05 14:38:12 +09:00
K. Lange
3e8bb098ff Raise exception if __repr__ returns non-str in pushStringBuilderFormat 2024-03-05 14:21:49 +09:00
K. Lange
6c41c32949 Implement naive powersort 2024-03-05 12:44:01 +09:00
K. Lange
62822051a9 Account for overlongjump tables in size of codeobject 2024-03-05 08:36:35 +09:00
K. Lange
4bd5988e31 Rearrange class compilation for cleaner line number mappings 2024-03-04 21:40:43 +09:00
K. Lange
5949a4998e Add PUSH_BUILD_CLASS opcode 2024-03-04 12:55:15 +09:00
K. Lange
dae53fadc4 Remove extraneous jump from tail of if without else 2024-03-04 09:58:16 +09:00
K. Lange
b1d3b7e697 Handle jump targets of over-long jumps 2024-03-04 09:51:54 +09:00
K. Lange
0bd12bdf0a Support overly-long jumps with new instruction 2024-03-03 22:18:15 +09:00
K. Lange
272d503055 Use scratch space while swapping instead of push/pop 2024-03-03 22:17:21 +09:00
K. Lange
f33cc7cac2 Has this always been wrong? 2024-03-03 22:16:03 +09:00
K. Lange
864cda1bed Cache jump targets in a hash/set 2024-03-03 22:10:07 +09:00
K. Lange
1928fa6b0c Compute line numbers through binary search, not linear scan 2024-03-03 12:11:42 +09:00
K. Lange
e801ca642e Implement list.sort with a 3-way quicksort
This is a temporary measure until a better (stable) sort is implemented,
like Timsort or powersort.
2024-03-02 21:31:49 +09:00
K. Lange
edbf322a6f Clean up sorted(), reversed(); pass kwargs to list.sort for sorted() 2024-03-02 21:30:09 +09:00
K. Lange
ea55152aac Fix two instances of OBJECT_VAL called on non-object 2024-03-02 12:37:33 +09:00
K. Lange
158f660695 Fix a few uses of legacy hasKw checks 2024-03-02 12:30:55 +09:00
K. Lange
294bd0376b Move some special method names to the special method name table 2024-03-02 12:20:58 +09:00
K. Lange
0918776d00 Don't use FLUSH when switching modes in rline 2024-03-01 20:36:37 +09:00
K. Lange
47500c833f Add rudimentary locale module 2024-03-01 10:12:54 +09:00
K. Lange
837e389b4c Bump alpha number 2024-03-01 07:48:10 +09:00
K. Lange
1fadea3027 Implement float.as_integer_ratio 2024-02-29 13:19:08 +09:00
K. Lange
b9332b2578 Implement long.__pow__ for negative exponents 2024-02-29 13:00:19 +09:00
K. Lange
f6c1bfac59 Add some test cases for printing and parsing floats 2024-02-29 10:42:35 +09:00
K. Lange
ed34101ba3 Finish up overflow handling and expand comments 2024-02-29 10:35:12 +09:00
K. Lange
21f0828424 Fix bug in krk_long_medium for negative widths 2024-02-29 10:08:03 +09:00
K. Lange
191515bbc3 Support exponential notation in lexer 2024-02-29 00:29:59 +09:00
K. Lange
34a6e30769 Use new float parser instead of strtod 2024-02-29 00:29:22 +09:00
K. Lange
ce6ddec02d Add simple float parser 2024-02-29 00:26:44 +09:00
K. Lange
cfe34614da Hopefully more correct rounding in long.__truediv__? 2024-02-28 20:56:26 +09:00
K. Lange
55debe7570 Fast long shifts 2024-02-28 19:13:12 +09:00
K. Lange
a36f6e00eb Remove unused 'exact' parameter. 2024-02-28 18:01:57 +09:00
K. Lange
1cdd9dfb1b Fix repr display of trailing zero 2024-02-28 17:58:27 +09:00
K. Lange
7ed0cd6823 Improve final construction of decimal strings 2024-02-28 17:39:47 +09:00
K. Lange
f80b5430f8 Support field width, some alignment for float.__format__ 2024-02-28 09:29:26 +09:00
K. Lange
4a2e736594 Use 10^52, as that makes more sense. 2024-02-28 07:24:27 +09:00
K. Lange
27b2d584ab Also cache 10^31 2024-02-27 19:42:43 +09:00
K. Lange
4e97099bd6 Implement float → string conversion 2024-02-27 19:37:23 +09:00
K. Lange
9ad85010bf Fix leak of tmp values in long.__truediv__ 2024-02-27 19:31:13 +09:00
K. Lange
53c08adec9 Similarly, krk_tableAdjustCapacity can use identity 2024-02-27 19:26:51 +09:00
K. Lange
1ebff2c5e5 Only check identity when populating string table 2024-02-27 19:19:11 +09:00
K. Lange
f75adeb2ca Implement long.__truediv__ through actual long division 2024-02-27 07:48:15 +09:00
K. Lange
1c75adaa51 rline should only set LC_CTYPE, and only if needed 2024-02-27 07:46:56 +09:00
K. Lange
0c8cb94b6a Quick hack for rline to not have locales break float parsing 2024-02-25 22:23:56 +09:00
K. Lange
f1d7bdaa5a Accept floats in things that use krk_long_to_int 2024-02-24 21:31:39 +09:00
K. Lange
32bd212a49 Need sys/types.h for ssize_t 2024-02-15 18:49:28 +09:00
K. Lange
2c0ab9a3e9 Fix another potential case of writing to the wrong stack 2024-02-15 17:54:50 +09:00
K. Lange
d920ff7f54 Fix leaked KrkLong in rshift_z 2024-02-15 17:49:38 +09:00
K. Lange
c179b7f4b4 Fix potential references to bad stacks due to ordering of array indexing 2024-02-15 17:48:00 +09:00