comparison src/ChangeLog @ 5769:ffc0c5a66ab1

Be lazy converting markers to integers, bytecode_{arithcompare,arithop}(). src/ChangeLog addition: 2013-12-15 Aidan Kehoe <kehoea@parhasard.net> * bytecode.c (bytecode_arithcompare): * bytecode.c (bytecode_arithop): Call promote_args_lazy () in these two functions, only converting markers to fixnums if absolutely necessary (since that is ON with large, mule buffers). * data.c (BIGNUM_CASE): * data.c (RATIO_CASE): * data.c (BIGFLOAT_CASE): * data.c (ARITHCOMPARE_MANY): Call promote_args_lazy () here too if WITH_NUMBER_TYPES is defined. We're not doing the equivalent with the non-NUMBER_TYPES code, but that's mostly fine, we are doing it in the bytecode. * number.h: * number.h (NUMBER_TYPES): * number.h (promote_args_lazy): Add this, returning LAZY_MARKER_T if both arguments are markers that point to the same buffer. tests/ChangeLog addition: 2013-12-15 Aidan Kehoe <kehoea@parhasard.net> * automated/lisp-tests.el: Test arithmetic comparisons with markers, check the type of the returned values for #'min and #'max.
author Aidan Kehoe <kehoea@parhasard.net>
date Sun, 15 Dec 2013 10:26:31 +0000
parents 3bfcdeb65578
children 72a9467f93fc
comparison
equal deleted inserted replaced
5768:3bfcdeb65578 5769:ffc0c5a66ab1
1 2013-12-15 Aidan Kehoe <kehoea@parhasard.net>
2
3 * bytecode.c (bytecode_arithcompare):
4 * bytecode.c (bytecode_arithop):
5 Call promote_args_lazy () in these two functions, only converting
6 markers to fixnums if absolutely necessary (since that is ON with
7 large, mule buffers).
8
9 * data.c (BIGNUM_CASE):
10 * data.c (RATIO_CASE):
11 * data.c (BIGFLOAT_CASE):
12 * data.c (ARITHCOMPARE_MANY):
13 Call promote_args_lazy () here too if WITH_NUMBER_TYPES is defined.
14 We're not doing the equivalent with the non-NUMBER_TYPES code, but
15 that's mostly fine, we are doing it in the bytecode.
16
17 * number.h:
18 * number.h (NUMBER_TYPES):
19 * number.h (promote_args_lazy):
20 Add this, returning LAZY_MARKER_T if both arguments are markers
21 that point to the same buffer.
22
1 2013-12-15 Aidan Kehoe <kehoea@parhasard.net> 23 2013-12-15 Aidan Kehoe <kehoea@parhasard.net>
2 24
3 * data.c (Fmax): 25 * data.c (Fmax):
4 * data.c (Fmin): 26 * data.c (Fmin):
5 When an argument is a marker or a character, and WITH_NUMBER_TYPES 27 When an argument is a marker or a character, and WITH_NUMBER_TYPES