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
K. Lange
e9702ad37e
Account for increased table sizes in getsizeof
2024-02-15 17:36:05 +09:00
K. Lange
539f217714
Only scan used entries when iterating over dicts
2024-02-15 17:22:41 +09:00
K. Lange
8acf7a9113
Make tables (dicts, methods/fields) ordered
2024-02-15 17:22:11 +09:00
K. Lange
93b5fce168
dict should do power-of-two calculation when preallocating space
2024-02-15 12:01:12 +09:00
K. Lange
2fd88b8219
krk_findEntry should not be exposed
2024-02-15 12:00:31 +09:00
K. Lange
fbf1b09514
Fix missing spaces in tools/compile
2024-02-12 12:05:26 +09:00
K. Lange
22e550ee67
Fixup bounds for negative values
2024-01-15 19:36:37 +09:00
K. Lange
049c58c40c
Build strings from longs before formatting them
2024-01-15 19:27:08 +09:00
K. Lange
99dfc12a67
_ format specifier should be 3 digits for decimal, 4 for others
2024-01-15 19:25:51 +09:00
K. Lange
6e8aa9bee6
Don't pass around w as a KrkLong
...
We only shifting up to size_t bits anyway; expose the internal
size_t-based shifting, use that in these functions, and stop
allocating additional KrkLongs for the `w` values.
Since we only do this a few times and the values were very small,
this has minimal impact but does simplify the code a bit.
2024-01-13 16:57:07 +09:00