Commit Graph

1558 Commits

Author SHA1 Message Date
胡剑波
e8dd38d0d6 Fix throwing exception when duplicate shared strings occur. 2020-08-25 15:08:20 +08:00
Thomas Fussell
3c7122a78c
Merge pull request #490 from 50ty/patch-2
Fix XLNT_INCLUDE_INSTALL_DIR
2020-08-20 14:59:22 -04:00
Stefan Rommel
cdb50bbd6b
Fix XLNT_INCLUDE_INSTALL_DIR
Otherwise, XLNT_INCLUDE_INSTALL_DIR is not set correctly and find_package(Xlnt) results to an error:
 ```
CMake Error at /usr/lib64/cmake/xlnt/XlntConfig.cmake:23 (message):
  File or directory include referenced by variable XLNT_INCLUDE_DIR does not
  exist !
Call Stack (most recent call first):
  /usr/lib64/cmake/xlnt/XlntConfig.cmake:41 (set_and_check)
  CMakeLists.txt:4 (find_package)
```
The content of the line 41 of /usr/lib64/cmake/xlnt/XlntConfig.cmake is: `set_and_check(XLNT_INCLUDE_DIR "include")`. 

I'm using the Arch Linux user repository package https://aur.archlinux.org/packages/xlnt/.
The used build manual is described here: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=xlnt.
2020-07-16 21:29:06 +02:00
Thomas Fussell
8d2a8e161b
Merge pull request #467 from Crzyrndm/experimental/serialisation
locale aware double->string conversions
2020-06-08 19:40:08 -04:00
JCrawfy
06801f7d36 derp, need typename too 2020-04-26 15:54:49 +12:00
JCrawfy
6c5a5a5dae and same issue with is_convertible 2020-04-26 15:49:05 +12:00
JCrawfy
f1042c5119 enable_if_t isn't a thing in C++11 2020-04-26 15:47:53 +12:00
JCrawfy
504fed3585 another missing header 2020-04-26 15:40:56 +12:00
JCrawfy
9d9d5de511 add missing include 2020-04-26 15:27:51 +12:00
JCrawfy
556d3358e9 fix bad commit 2020-04-26 14:53:15 +12:00
JCrawfy
d30e705f83 fix most (all?) the places where string<->double conversions are performed
strod / stod / to_string and all related friends are dependant on current locale for how they format a number
2020-04-25 14:00:58 +12:00
JCrawfy
dfb8f1518e Revert "redo serialisation by using a sorted vector instead of a lookup for each possible row/column combination"
This reverts commit 63484f8b8f.
2020-04-25 11:15:23 +12:00
JCrawfy
63484f8b8f redo serialisation by using a sorted vector instead of a lookup for each possible row/column combination
Not tested, definitely not as correct as previous implementation
2020-04-25 11:00:39 +12:00
JCrawfy
9136d21845 move the simplified cell_reference and cell structs out to a header
the standard xlnt::cell and xlnt::cell_reference have plenty of extra functionality that just slows things down during (de)serialisation
These intermediate structs can be used to minimise overhead before transforming to the final type
2020-04-25 11:00:39 +12:00
JCrawfy
1069c17fbe fixup comment in parser 2020-04-25 11:00:39 +12:00
JCrawfy
e8e29e9c18 resolve some warnings (unintialised variables), remove warning suppression 2020-04-25 11:00:39 +12:00
Thomas Fussell
d1d9553d4e
Merge pull request #454 from Tectu/master
Remove superfluous semicolon
2020-03-25 14:16:20 -04:00
Joel Bodenmann
4e0333ac91 Remove superfluous semicolon 2020-03-25 13:16:02 +01:00
Thomas Fussell
568ac85346
release v1.5.0 2020-03-21 15:19:37 -04:00
Thomas Fussell
05fb0ceaf6
revert version bump 2020-03-21 15:18:59 -04:00
Thomas Fussell
80b94549a7
edit version bump path 2020-03-21 15:16:20 -04:00
Thomas Fussell
7c0d64248c
move release files to root for now 2020-03-21 15:15:32 -04:00
Thomas Fussell
b118d8f1f2
bump version to 1.5.0 2020-03-21 15:13:22 -04:00
Thomas Fussell
7e1e8cb1a1
release v1.5.0 2020-03-21 14:58:12 -04:00
Thomas Fussell
c3a1f1da95
fix release name 2020-03-21 14:57:06 -04:00
Thomas Fussell
0f178e46c8
fix release title 2020-03-21 14:52:26 -04:00
Thomas Fussell
138fb967bc
improve consistency with previous releases 2020-03-21 14:49:58 -04:00
Thomas Fussell
0a2a618663
Merge pull request #452 from tfussell/automate-releases
Automate releases
2020-03-21 14:40:49 -04:00
Thomas Fussell
a07c8c0c10
flesh out package.json [ci skip] 2020-03-21 14:39:22 -04:00
Thomas Fussell
8e451f24e3
empty commit [ci skip] 2020-03-21 14:36:57 -04:00
Thomas Fussell
92577d6cac
update github deploy token 2020-03-21 14:36:45 -04:00
Thomas Fussell
5602edbd2d
add packaging and release deployment workflow 2020-03-21 14:25:39 -04:00
Thomas Fussell
9a18cd9fcd
disable npm 2020-03-21 11:02:03 -04:00
Thomas Fussell
252dd76616
initial implementation 2020-03-21 10:59:00 -04:00
Thomas Fussell
2f5934f60e
Merge pull request #447 from Crzyrndm/feature/benchmark
microbenchmarks for double<->string conversion, serialisation improvements
2020-03-20 18:02:37 -04:00
Thomas Fussell
6c52e52487
Merge pull request #451 from amiremohamadi/fix-cell-reference-parsing
fix cell reference parsing
2020-03-20 16:16:40 -04:00
amiremohamadi
3af9567946 fix-bug: set absolute flags correctly 2020-03-20 23:08:27 +03:30
amiremohamadi
33a56b3a04 add more tests for absolute and relative column, row forms 2020-03-20 23:06:58 +03:30
JCrawfy
f4d00acb9f resolve warnings 2020-03-02 13:32:39 +13:00
JCrawfy
e8cb8d9bc6 fix compiler error 2020-03-01 23:23:20 +13:00
JCrawfy
0ea054026f speedup worksheet::calculate dimension by only looping the cell map once 2020-03-01 23:20:44 +13:00
JCrawfy
c418c13010 remove a double lookup in the cell map during serialisation 2020-03-01 23:18:13 +13:00
JCrawfy
932fc4596f remove declarations of copy/assignment operators that only do default work
user defined copy operators suppress compiler creation of move operations, and not having all of copy/move/dtor
defined (rule of 0/5) is suspicious. Also happens to be very slightly slower
2020-03-01 23:16:57 +13:00
JCrawfy
39f498f401 use the new faster serialisation everywhere in xlsx_producer 2020-03-01 22:01:53 +13:00
JCrawfy
ee593c2673 bug fixes, move the faster serialisation into the numeric header
serialisation ends up roughly 2x improvement going from sstream to snprintf

Run on (4 X 3500 MHz CPU s)
CPU Caches:
  L1 Data 32K (x4)
  L1 Instruction 32K (x4)
  L2 Unified 262K (x4)
  L3 Unified 6291K (x1)
-------------------------------------------------------------------------------------------------------------
Benchmark                                                                   Time             CPU   Iterations
-------------------------------------------------------------------------------------------------------------
RandFloatStrs/double_from_string_sstream                                  968 ns          977 ns       640000
RandFloatStrs/double_from_string_strtod                                   272 ns          270 ns      2488889
RandFloatStrs/double_from_string_strtod_fixed                             272 ns          270 ns      2488889
RandFloatStrs/double_from_string_strtod_fixed_const_ref                   273 ns          270 ns      2488889
RandFloatStrs/double_from_string_std_from_chars                           193 ns          195 ns      3446154
RandFloatCommaStrs/double_from_string_strtod_fixed_comma_ref              272 ns          273 ns      2635294
RandFloatCommaStrs/double_from_string_strtod_fixed_comma_const_ref        276 ns          273 ns      2635294
RandFloats/string_from_double_sstream                                    1311 ns         1318 ns       497778
RandFloats/string_from_double_sstream_cached                             1076 ns         1050 ns       640000
RandFloats/string_from_double_snprintf                                    601 ns          600 ns      1120000
RandFloats/string_from_double_snprintf_fixed                              600 ns          600 ns      1120000
RandFloats/string_from_double_std_to_chars                                117 ns          117 ns      5600000
RandFloatsComma/string_from_double_snprintf_fixed_comma                   600 ns          600 ns      1120000
2020-03-01 22:01:14 +13:00
JCrawfy
fbbf7ae767 fix git revert error 2020-03-01 20:46:19 +13:00
JCrawfy
0915fde090 add saving to the spreadsheet-load test, fix a bug in the serialiser 2020-03-01 20:43:56 +13:00
JCrawfy
d135f35bd4 minor cleanup 2020-03-01 20:24:22 +13:00
JCrawfy
a5aca5c212 add the fixed snprintf serialiser
Run on (4 X 3500 MHz CPU s)
CPU Caches:
  L1 Data 32K (x4)
  L1 Instruction 32K (x4)
  L2 Unified 262K (x4)
  L3 Unified 6291K (x1)
-------------------------------------------------------------------------------------------------------------
Benchmark                                                                   Time             CPU   Iterations
-------------------------------------------------------------------------------------------------------------
RandFloatStrs/double_from_string_sstream                                  969 ns          977 ns       640000
RandFloatStrs/double_from_string_strtod                                   274 ns          270 ns      2488889
RandFloatStrs/double_from_string_strtod_fixed                             273 ns          273 ns      2635294
RandFloatStrs/double_from_string_strtod_fixed_const_ref                   274 ns          276 ns      2488889
RandFloatStrs/double_from_string_std_from_chars                           193 ns          193 ns      3733333
RandFloatCommaStrs/double_from_string_strtod_fixed_comma_ref              273 ns          267 ns      2635294
RandFloatCommaStrs/double_from_string_strtod_fixed_comma_const_ref        273 ns          273 ns      2635294
RandFloats/string_from_double_sstream                                    1323 ns         1311 ns       560000
RandFloats/string_from_double_sstream_cached                             1074 ns         1074 ns       640000
RandFloats/string_from_double_snprintf                                    519 ns          516 ns      1000000
RandFloats/string_from_double_snprintf_fixed                              517 ns          516 ns      1000000
RandFloats/string_from_double_std_to_chars                                118 ns          117 ns      5600000
RandFloatsComma/string_from_double_snprintf_fixed_comma                   520 ns          516 ns      1120000
2020-02-29 23:10:38 +13:00
JCrawfy
7ba36b5e73 fix dumb bug in input randomiser, add basic double->string benchmarks
* input randomiser was feeding a constant value previously, now actually randomising
* start to_string with the current method (sstream), an faster more correct version (sstream_cached), snprintf, and std::to_chars
** NOTE: only std::to_chars and sstream_cached are correct in the face of locales

Run on (4 X 3500 MHz CPU s)
CPU Caches:
  L1 Data 32K (x4)
  L1 Instruction 32K (x4)
  L2 Unified 262K (x4)
  L3 Unified 6291K (x1)
-------------------------------------------------------------------------------------------------------------
Benchmark                                                                   Time             CPU   Iterations
-------------------------------------------------------------------------------------------------------------
RandFloatStrs/double_from_string_sstream                                 1012 ns         1001 ns       640000
RandFloatStrs/double_from_string_strtod                                   276 ns          276 ns      2488889
RandFloatStrs/double_from_string_strtod_fixed                             312 ns          308 ns      2133333
RandFloatStrs/double_from_string_strtod_fixed_const_ref                   307 ns          300 ns      2240000
RandFloatStrs/double_from_string_std_from_chars                           194 ns          188 ns      3733333
RandFloatCommaStrs/double_from_string_strtod_fixed_comma_ref              315 ns          314 ns      2240000
RandFloatCommaStrs/double_from_string_strtod_fixed_comma_const_ref        306 ns          305 ns      2357895
RandFloats/string_from_double_sstream                                    1372 ns         1381 ns       497778
RandFloats/string_from_double_sstream_cached                             1136 ns         1123 ns       640000
RandFloats/string_from_double_snprintf                                    536 ns          516 ns      1000000
RandFloats/string_from_double_std_to_chars                                116 ns          115 ns      6400000
2020-02-29 22:59:25 +13:00