mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-01-31 19:43:32 +00:00
e963d9c8e3
Thanks to all the refactorings we now have the ability to enforce reasonable limitations on the amount of resources any individual compile or test can consume. Those limits are currently: - `-C 8` seconds of 3.1ghz CPU time - `-M 256mebibytes` of virtual memory - `-F 100megabyte` limit on file size Only one file currently needs to exceed these limits: o/$(MODE)/third_party/python/Objects/unicodeobject.o: \ QUOTA += -C16 # overrides cpu limit to 16 seconds This change introduces a new sizetol() function to LIBC_FMT for parsing byte or bit size strings with Si unit suffixes. Functions like atoi() have been rewritten too.
91 lines
2.2 KiB
Text
Executable file
91 lines
2.2 KiB
Text
Executable file
# INTEGER
|
|
2 3 + 5 = assert
|
|
3 2 + 5 = assert
|
|
5 2 - 3 = assert
|
|
2 5 - -3 = assert
|
|
81 3 / 27 = assert
|
|
81 3 // 27 = assert
|
|
2 8 ** 256 = assert
|
|
17 10 % 7 = assert
|
|
17 10 fmod 7 = assert
|
|
|
|
# FLOATING POINT
|
|
.1 .2 + .3 - abs epsilon < assert
|
|
pi sqrt pi sqrt * pi - abs epsilon < assert
|
|
3 2 / 1.5 = assert
|
|
pi pi = assert
|
|
pi cos -1 = assert
|
|
pi 2 / sin 1 = assert
|
|
81 3 / 27 = assert
|
|
inf isinf assert
|
|
inf isnormal ! assert
|
|
nan isnormal ! assert
|
|
1 0 / isnormal ! assert
|
|
0 signbit ! assert
|
|
-.5 round -1 = assert
|
|
-.5 floor -1 = assert
|
|
-.5 rint dup 0 = assert signbit assert
|
|
-.5 nearbyint dup 0 = assert signbit assert
|
|
-.5 ceil dup 0 = assert signbit assert
|
|
-.5 trunc dup 0 = assert signbit assert
|
|
0 0 / dup isnan assert signbit assert # is this right?
|
|
1 0 / dup isinf assert signbit ! assert # is this right?
|
|
nan nan != assert # is this right?
|
|
# -nan -nan != assert # is this right?
|
|
inf inf = assert # is this right?
|
|
-inf -inf = assert # is this right?
|
|
|
|
# BIT ARITHMETIC
|
|
-1 ~ 0 = assert
|
|
0 0x7fffffffffffffffffffffffffffffff - -0x7fffffffffffffffffffffffffffffff = assert
|
|
0b1010101 popcnt 4 = assert
|
|
0b1010101 0b0110101 ^ 0b1100000 = assert
|
|
0b1010101 0b0110101 | 0b1110101 = assert
|
|
0b1010101 0b0110101 & 0b0010101 = assert
|
|
0b1010101 1 >> 0b000101010 = assert
|
|
0b1010101 2 >> 0b000010101 = assert
|
|
0b1010101 1 << 0b010101010 = assert
|
|
0b1010101 2 << 0b101010100 = assert
|
|
|
|
# BOOLEAN
|
|
true assert
|
|
false ! assert
|
|
true ! ! assert
|
|
true true && assert
|
|
true false && ! assert
|
|
false true && ! assert
|
|
true false && ! assert
|
|
false true && ! assert
|
|
true true || assert
|
|
false true || assert
|
|
true false || assert
|
|
false false || ! assert
|
|
4 5 < assert
|
|
5 4 < ! assert
|
|
-5 4 < assert
|
|
5 5 < ! assert
|
|
5 5 <= assert
|
|
5 4 > assert
|
|
4 5 > ! assert
|
|
4 -5 > assert
|
|
5 5 > ! assert
|
|
5 5 >= assert
|
|
|
|
# MISC
|
|
1 abs 1 = assert
|
|
-1 abs 1 = assert
|
|
-1 1 max 1 = assert
|
|
1 -1 max 1 = assert
|
|
1 2 max 2 = assert
|
|
-1 1 min -1 = assert
|
|
1 -1 min -1 = assert
|
|
1 2 min 1 = assert
|
|
rand64 rand64 rand64 rand64 != != && assert
|
|
|
|
# HEX SIGN
|
|
-0x80000000 -2147483648 = assert
|
|
0x80000000 2147483648 = assert
|
|
0x80000001 2147483649 = assert
|
|
0xffffffff 4294967295 = assert
|
|
0x100000000 4294967296 = assert
|
|
-0x100000000 -4294967296 = assert
|