summaryrefslogtreecommitdiffstats
path: root/generic/tclExecute.c
Commit message (Collapse)AuthorAgeFilesLines
* Merge 8.6jan.nijtmans2019-05-291-3/+3
|\
| * Merge 8.5jan.nijtmans2019-05-291-3/+3
| |\
| | * Update some libtommath functions to the latest trunk versions. Small step ↵jan.nijtmans2019-05-291-153/+36
| | | | | | | | | | | | | | | forward in the upgrade to (upcoming) libtommath 1.2. Advantage: simplify Tcl code accessing those functions.
| * | end-of-line spacingjan.nijtmans2019-05-241-2/+2
| |\ \ | | |/
| * | Minor compiler warningjan.nijtmans2019-05-091-0/+2
| |\ \ | | |/
| | * back-ported branch sebres-8-6-timerate (new command "timerate" for 8.5)sebres2017-05-161-94/+134
| | |\
| | * | [04e26c02c0] Remove useless condition that raises warnings.dgp2017-04-271-6/+2
| | | |
* | | | Compilation for [dict getwithdefault].dkf2019-04-181-39/+69
| | | |
* | | | Style corrections and warning eliminationdkf2019-04-181-1/+1
| | | |
* | | | Merge 8.6jan.nijtmans2019-04-111-10/+6
|\ \ \ \ | |/ / /
| * | | Only use special mp_sqrt() code when double format/tommath format are ↵jan.nijtmans2019-04-111-12/+8
| | | | | | | | | | | | | | | | | | | | | | | | exactly what's expected. Otherwise, use original always-working tommath code. Simplify overflow check in bignum expononent code, not using bignums where it's not necessary. Don't overallocate bignums when using wideint's only.
| * | | Fix gcc warning on 32-bit platformsjan.nijtmans2019-04-021-0/+4
| | | |
| * | | integrate sebres-8-6-tommath-1-1 - cherry-picking of several optimizations ↵sebres2019-04-011-282/+187
| |\ \ \ | | | | | | | | | | | | | | | and simplifications of 8.7 (tommath 1.1), well-arranged branching of long/wide/bignum base and exponent cases, test-cases extended to cover all this branches and edge cases.
| | * | | code reviewsebres2019-02-041-4/+6
| | | | |
| | * | | cherry pick of [238bd4d2c053540c]..[31dd092df4b57fdb]: More simplifications ↵sebres2019-02-041-150/+178
| | | | | | | | | | | | | | | | | | | | in tclExecute.c (INST_EXPON), much more and well-arranged branching of long/wide/bignum base and exponent cases, test-cases extended to cover all this branches and edge cases.
| | * | | partial cherry pick of [e8e92eb381d689ab]: One more libtommath function, ↵sebres2019-02-041-10/+1
| | | | | | | | | | | | | | | | | | | | mp_tc_div_2d, which simplifies code.
| | * | | partial cherry pick of [c5c83014d6]: Many simplifications in tclExecute.c, ↵sebres2019-02-041-121/+5
| | | | | | | | | | | | | | | | | | | | now that libtommath provides new functions mp_tc_and, mp_tc_or and mp_tc_xor
* | | | | Merge 8.6jan.nijtmans2019-03-271-1/+5
|\ \ \ \ \ | |/ / / /
| * | | | Document maximum value for right argument of '**' operator. jan.nijtmans2019-03-271-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | Adapt test-cases to test for exactly one more than this maximum value. Make sure that the maximum is the same for DIGIT_BIT > 28. Change macro's for mp_iseven()/mp_isodd() so they don't depend on value of DIGIT_BIT any more.
| * | | | Eliminate all usage of mp_iszero/mp_iseven/mp_isodd/mp_isneg from ↵jan.nijtmans2019-03-251-4/+4
| | | | | | | | | | | | | | | | | | | | libtommath: In the upcoming new version those will become real functions, causing possible binary incompatibility. This change makes Tcl independant from libtommath's changes.
| * | | | Backport [bd94500678e837d7] from 8.7, preventing endless loops in UTF-8 ↵jan.nijtmans2019-03-021-1/+1
| |/ / / | | | | | | | | | | | | conversions when handling surrogates. Only effective when compiling with -DTCL_UTF_MAX=4|6 (default: 3). Meant for benefit of Androwish.
* | | | Additional protection for ridiculously big exponents, in case libtommath is ↵jan.nijtmans2019-03-261-1/+1
| | | | | | | | | | | | | | | | compiled with DIGIT_BIT=60 in stead of 28.
* | | | enlarge a few small buffers, which could overflow using Unicode characters > ↵jan.nijtmans2019-03-181-1/+1
| | | | | | | | | | | | | | | | /UFFFF. Eliminate some end-of-line spacing
* | | | Eliminate usage of mp_isneg(), just check bignum->sign directly (as ↵jan.nijtmans2019-03-151-15/+15
| | | | | | | | | | | | | | | | | | | | libtommath itself does) Make TclInitBugnumFromLong() a static function in stubtable only, as it isn't used by Tcl anymore.
* | | | More use of TclHasIntRep() macro. Add vfs build director to fossil ignore-globjan.nijtmans2019-03-011-5/+5
| | | |
* | | | Fix [bd94500678e837d7]: SEGFAULT by conversion of unicode (out of BMP) to ↵jan.nijtmans2019-02-271-3/+3
|\ \ \ \ | | | | | | | | | | | | | | | byte-array
| * | | | Finish complete fix, all corner-cases correct now. Also spurious UTF-8 ↵jan.nijtmans2019-02-251-2/+2
| | | | | | | | | | | | | | | | | | | | testcase failure (as seen on travis) fixed now.
| * | | | Minor optimizationsjan.nijtmans2019-02-191-2/+2
| | | | |
* | | | | New internal macro TclHasIntRep() to re-encapsulate the typePtr field.dgp2019-02-251-3/+3
|/ / / /
* | | | optimize WidePwrSmallExpon (exponent is <= 16), this will huge decrease ↵sebres2019-02-041-2/+2
| | | | | | | | | | | | | | | | assembled code on x86 (113 vs 220 instructions)
* | | | New internal macro TclFetchIntRep, which is faster than Tcl_FetchIntRep. jan.nijtmans2019-01-281-5/+5
| | | | | | | | | | | | But ... don't use this function when the result is only compared to NULL: that's just overkill.
* | | | More simplifications in tclExecute.c (INST_EXPON), much more and ↵sebres2019-01-251-110/+115
| | | | | | | | | | | | | | | | well-arranged branching of wide/bignum base and exponent cases, test-cases extended to cover all this branches and edge cases.
* | | | One more libtommath function, mp_tc_div_2d, which simplifies code. Some more ↵jan.nijtmans2019-01-221-15/+6
| | | | | | | | | | | | | | | | code readability improvements.
* | | | Many simplifications in tclExecute.c, now that libtommath provides new ↵jan.nijtmans2019-01-221-146/+10
| | | | | | | | | | | | | | | | functions mp_tc_and, mp_tc_or and mp_tc_xor
* | | | More TIP #502 optimizations and improvements, preparing further for the road ↵jan.nijtmans2019-01-161-24/+7
| | | | | | | | | | | | | | | | | | | | | | | | to Tcl 9. No longer use INT_MAX for TCL_INDEX_AFTER, because INT_MAX can be a normal index in Tcl 9. TclGetIntForIndex now clips between -1 and INT_MAX. In Tcl 9 size_t will be used for the index data type.
* | | | merge 8.6, conflicts resolved in win/Makefile.in (fixed auto-path and load ↵sebres2019-01-141-1/+1
|\ \ \ \ | |/ / / | | | | | | | | tcltests for ROOT_DIR/tests)
| * | | minor optimization: check length instead of content - don't touch other ↵sebres2019-01-141-1/+1
| | | | | | | | | | | | | | | | memory (so potentially fewer cpu-cache washout's)
* | | | Merge 8.6jan.nijtmans2019-01-131-2/+2
|\ \ \ \ | |/ / /
| * | | Slightly simpler test for empty string, still covering all cases. Also ↵jan.nijtmans2019-01-131-1/+1
| | | | | | | | | | | | | | | | prepare testpurebytesobj for strings >2G
| * | | Fix crash reported by reported by François Vogel related to: ↵jan.nijtmans2019-01-111-1/+1
| | | | | | | | | | | | | | | | [cc1e91552c0ca1817292d951f8c694b28c2b2251|cc1e91552c]
* | | | merge 8.6 (regression bug-[cc1e91552c], etc)sebres2019-01-091-2/+6
|\ \ \ \ | |/ / /
| * | | closes [cc1e91552c]: fixes lrange instruction on empty list, return original ↵sebres2019-01-081-2/+6
| | | | | | | | | | | | | | | | list only if it is canonical (otherwise new list object)
* | | | merge 8.6 (resolved warnings)sebres2018-12-281-1/+1
|\ \ \ \ | |/ / /
| * | | resolve warnings: array subscript -1 is below array bounds of 'void *[1]' ↵sebres2018-12-281-1/+1
| | | | | | | | | | | | | | | | [-Warray-bounds] if compiled with newest gcc
* | | | merge 8.7dgp2018-10-181-67/+61
|\ \ \ \
| * \ \ \ TIP #502 implementation: Index value reform.jan.nijtmans2018-10-121-1/+1
| |\ \ \ \
| | * \ \ \ Merge 8.7jan.nijtmans2018-09-271-4/+1
| | |\ \ \ \
| | * \ \ \ \ merge 8.7dgp2018-09-251-20/+26
| | |\ \ \ \ \
| | * \ \ \ \ \ merge 8.7dgp2018-05-111-80/+10
| | |\ \ \ \ \ \
| | * \ \ \ \ \ \ merge 8.7dgp2018-04-241-15/+11
| | |\ \ \ \ \ \ \