Age | Commit message (Collapse) | Author |
|
This header-only library is accurate in decimal representation of
doubles; provides API that allows to create custom representation
- so it's possible to use custom decimal separators and grouping.
This allows to unify all corner cases: integers, numbers close to
DBL_MAX, up-rounding to the next decade.
Note that Dragonbox creates the shortest decimal representation
of the number, that is unambiguously convertible back to the same
number; thus it may hide trailing digits that are unneeded for
such conversion.
The functional changes are minimal, and beneficial:
1. Rounding numbers close to DBL_MAX now takes into account the
bEraseTrailingDecZeros argument, as it should, allowing to have
"1.8E+308" for rounding DBL_MAX to 2 decimals without trailing
zeroes, instead of previous "1.80E+308".
2. Incorrect rounding is fixed in some cases, e.g. 9.9999999999999929
rounded to 10 previously using rtl_math_DecimalPlaces_Max.
3. Representing the number in the shortest way may change display
of some printed numbers. E.g., 5th greatest double is represented
as "1.797693134862315E+308" instead of a bit longer, but giving
the same double on roundtrip, "1.7976931348623149E+308". This would
generally look better for some numbers similar to the famous 0.1,
where users would likely expect more "round" representation where
it's unambiguous (but we still truncate to 15 significant decimals
anyway - so there's no point in pretending to provide exact digits
for actual binary representation).
These are reflected in the unit tests affected by the change.
Change-Id: I05e20274a30eec499593ee3e9ec070e1269232a2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129948
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
Drop Build prefix and settle on Lib and Exe prefixes. Also add a
note about the "else" part of the condition and fix offenders.
While at it, define COND_LIB_SAL_TEXTENC to be used by sal to
prevent diverting coditions in build and cxx code.
Change-Id: I944587ca1ccbe46b765d1a631a7214c8126fe951
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128136
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Improve robustness by testing explicitly; instead of assuming based on
the OS, test first the libc and then test for libexecinfo.
The assumption was wrong for FreeBSD (included since 2017) and for
musl-based systems (not in libc).
Also, remove INCLUDE_BACKTRACE and clean up a bit.
Ref: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=220271
Change-Id: Ib4b7fd4fe2cdf5f76babe47a21bd2990fcf42649
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127538
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
... by adding and using gb_CondSalTextEncodingLibrary.
Change-Id: I04e8f56bde6296477d449f1c447e8133cdf86e6e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126788
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Change-Id: Idfca786ecc7251e08525bd5b45936143727c43d3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126731
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
That flag is only supported by clang-cl, not by MSVC, and
c7c9f3f57a2feae5d3bc3c47104786883ed09e44 "use clang-cl's -Zc:dllexportInlines-
for clang-cl builds" apparently naively assumed that it would work to build LO
with clang-cl and that flag without actually trying it out, and
1040228c356d75c5228cde4d6103f9b446848e4b "My clang-cl build does not work with
-Zc:dllexportInlines-" effectively disabled it completely.
The way to avoid unresolved external symbols during linking of URE libraries
(see the 1040228c356d75c5228cde4d6103f9b446848e4b commit message) is apparently
to also build libraries that the URE libraries depend on with the flag, hence
the change from gb_Library_set_is_ure_library to
gb_Library_set_is_ure_library_or_dependency. For now, I only marked those
additional libraries (unoil and xmlreader) that actually caused issues when
linking the URE libraries.
Change-Id: I3a85c73246250981cd86b7ee41f87b41f393a4b1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126012
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
Tested-by: Jenkins
|
|
This is clang-cl's equivalent of -fvisibility-inlines-hidden,
and it seems to be also sort of the equivalent of MSVC's
-Zc:inline. So it saves build time and disk space.
Clang docs say that this is binary compatible in only one
direction, so our public C++ code shouldn't be using this,
as external C++ code could try to use exported inlines
that are no longer there.
Change-Id: Ie6217808f8ee4a15344183abfc65038e1558d1b0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122352
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
They compute the same thing, only zlib can do it four bytes at once.
Since crc32() is used when loading documents, with larger documents
this is a difference than can be measured (not much, but a couple
percent of loading time). And we already depend on zlib anyway.
Change-Id: I65c5a1f050af717a5a2d6e334e216d42c4e4dbbb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110651
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
Change-Id: I36df8be817d0f0cb75efa00b0b523f379f67d1d1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110126
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
_CRT_NON_CONFORMING_SWPRINTFS is unconditionally defined in
solenv/gbuild/platform/com_MSC_defs.mk, anyway
Change-Id: I43eabc460dfe3ec9e86ec255f0b100eb22166864
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101696
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Size of buffer on stack is 256 characters. Logging function usage
in make check, of >1 100 000 invocations, the longest string was
80 characters, average being 4.6 characters. So heap allocation
is unlikely in scenarios with intensive function usage.
Several existing unit tests had to be fixed. Usually, the change
is either minimal or getting closer to what Excel returns (for
Calc tests). But in case of AMORDEGRC, I had to change rate value
passed to the function from 0.3 to 0.31. It's because the closest
double value for 0.3 is 0.29999999999999999, which is a bit less
than 0.3; multiplied by 1.5, this gives 0.44999999999999996, and
then rounding the result of multiplication of the latter by cost
gave the result 1 less than before, when 0.3 was imported as
0.30000000000000004. Now the function returns a value 1 less than
Excel for that set of arguments. I don't see how to fix that.
Having rate slightly different gives consistent result between
Calc and Excel.
Change-Id: Icae5ce374fe0c31a1aa10cee815e65ef0014f382
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89422
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
Change-Id: I7b3a22584bb2e4d501f509ffcd80929feed23a4c
Reviewed-on: https://gerrit.libreoffice.org/79360
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
After 1928ced074260d2d40345bdf4c96767abb99bb4f "Blind fix for Android", tb24
still fails with
> Linking obj/local/armeabi-v7a/liblo-native-code.so
> /home/android/lo/master-android-arm/instdir/program/libsofficeapp.a(sofficemain.o):sofficemain.cxx:function soffice_main: error: undefined reference to ´sal_detail_initialize´
> clang++: error: linker command failed with exit code 1 (use -v to see invocation)
Lets see if including sal/osl/unx/salinit.cxx in ANDROID/iOS builds works (even
if the contents is not normally used there, including it should be harmless).
Change-Id: Ifa38af8f5217a17d3ac74851b46bdb3b50cd4efd
Reviewed-on: https://gerrit.libreoffice.org/78325
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
...that involves adding a second, one-off special meaning to the existing
sal_detail_initialize function. This at least gets rid of the
"osl_getExecutableFile contains 'soffice' substring" guesswork (and of the
osl_systemPathGetFileNameOrLastDirectoryPart call there, which is what I'm
actually after, for a different change to come).
Change-Id: I4dd6eef1fd0411bf66943ffea415876c92d08526
Reviewed-on: https://gerrit.libreoffice.org/78291
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Building against libstdc++ effectively always requires -pthread anyway (as
various standard C++ headers require it, see the comment added to
solenv/gbuild/platform/unxgcc.mk), so many explicit uses of -pthread/-lpthread
can be removed.
Doing a (partial) test build on Linux with Clang -stdlib=libc++ suggests that
libc++ indeed doesn't need -pthread as libstdc++ does.
The remaining uses of -pthread/-lpthread are mostly in configure.ac for the
various BSDs (which somebody else might want to clean up now), and related to
external projects. I tried to be careful to remove -pthread/-lpthread from
makefiles only when C++ object files are involved (so -pthread will now be
included on the link command line by default).
Change-Id: I936e082839cb9a434bd273ce5a1f187a4245dfa1
Reviewed-on: https://gerrit.libreoffice.org/71291
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
We don't need the dynamic load complexity for these now with baseline
Windows version being Windows 7 SP1. Stuff used only for compatibility
with older versions was dumped.
Change-Id: I810f271796cfd875cfa18a3081c9ad444fe57b3e
Reviewed-on: https://gerrit.libreoffice.org/70321
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
This gets rid of the horrible hack in gbuild.mk to accomodate the
case-incorrect iOS platform makefiles that cannot be renamed without
upsetting git on file systems that sadly lack the case sensitivity
feature.
Keep the macro defined to IOS though.
Change-Id: I1022bfef4900da00e75fc1ccce786b20f8673234
Reviewed-on: https://gerrit.libreoffice.org/62705
Tested-by: Jenkins
Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
Reviewed-by: Tor Lillqvist <tml@collabora.com>
Tested-by: Tor Lillqvist <tml@collabora.com>
|
|
...with new configuration option --enable-cipher-openssl-backend
rtl/cipher.h (which is part of the stable URE interface) offers functionality to
en-/decrypt data with Blowfish in ECB, CBC, and streaming CFB mode, and with RC4
(aka ARCFOUR; which is a stream cipher). LO itself only uses Blowfish CFB and
RC4, so only those are wired to OpenSSL for now, for simplicity. Using Blowfish
ECB and CBC, or Blowfish CFB in DirectionBoth mode would cause failures for now
(cf. sal/qa/rtl/cipher/rtl_cipher.cxx); the assumption is that no external code
actually makes use of this functionality.
Using NSS instead of OpenSSL could be an alternative, but there appears to be no
support in NSS for Blowfish in streaming CFB mode, only CKM_BLOWFISH_CBC for
CBC mode.
Change-Id: I0bc042961539ed46844c96cb1c808209578528a0
Reviewed-on: https://gerrit.libreoffice.org/59428
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
ever since commit bc6a5d8e79e7d0e7d75ac107aa8e6aa275e434e9
Date: Wed Nov 15 16:52:44 2017 +0530
Disable custom allocator
which makes FORCE_SYSALLOC redundant
which makes SYS_ALLOC redundant
Change-Id: I42e1d651473e7601e2280d9fb0662c89808c88f6
Reviewed-on: https://gerrit.libreoffice.org/58263
Tested-by: Jenkins
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
|
|
LibreOffice uses its low-level API to look up files inside the app
bundle thousands of times, all the time, and especially when starting
something. Both when the process starts, and when a specific aspects
of the application starts (like after typing a first character into a
Writer document in a session). Having all those, too, go through this
alias (bookmark) resolve dance is just insane. There won't be any
aliases (bookmarks) there.
This shaves almost a second from the delay after typing the first
character into a Writer document in a session. There is still a
noticeable delay left, though, likely mostly caused by Python
(Lightproof) initialisation slowness. (It's cross-platform.)
I would say that it is a bit questionable whether the
macxp_resolveAlias() functionality is worth it at all, even.
Change-Id: I2461141c6b58738befd0db4902eb25e63b788b79
|
|
https://www.gnu.org/software/make/manual/html_node/Text-Functions.html
Change-Id: Ifb1d92cd9c7b59360d296026f01aa54ed83ed9c3
Reviewed-on: https://gerrit.libreoffice.org/52604
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
Also, order them alphabetically.
Change-Id: I144331d71455c1c794d300f9a4f4e2e21fcd5e1b
|
|
Change-Id: I99ec6176c0876b948e35880f02d54905d26e7280
|
|
* Obviously VCL wiring is missing, but most components do build.
Change-Id: Ie853ada1423a8f4c2b647be59cd47a7730c42978
Reviewed-on: https://gerrit.libreoffice.org/50293
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
|
|
When it was originally added to --with-alloc (tcmalloc:
f63ffaf3667e218be3538e84e6becc18d5de4334,
54efc5ed83890f0a1166ece3b1e4942bb7922ff7,
0abd71b44144220d2aeec58601929fd0cd1914d6
708b6d4246de915ac960c7b90ee8bb2d966c7d17 "INTEGRATION: CWS configure14: #i59160#
allow usage of tcmalloc and system-malloc"; jemalloc:
826a90d68a4dc458585c6d2e647bec17971e9193 "configure25: #i111045# jemalloc"), the
old build system's solenv/inc/unxlng*.mk added corresponding -l switches to
linker command lines, but it appears that was never carried over into the new
build system.
And even if the AC_CHECL_LIB calls in configure.ac prior to
e612f026de6ca1153c57fb10f0fa75725425a301 "Ensure AC_CHECK_LIB/AC_SEARCH_LIBS do
not poison LIBS" would have extended LIBS with the correpsonding -l switches,
there appears to be no mechanism in the new build system that would have
depended on letting that have any effect on which alloc lib to link against.
So the only remaining effect of --with-alloc={tcmalloc,jemalloc} is to set
FORCE_SYSALLOC in Library_sal.mk, same as --with-alloc=system does. So whoever
still uses the former configure switches should just switch to the latter.
(Also adapt the documentation of --with-alloc to reality, "internal" instead of
"oo".)
Change-Id: Iac0e302c5f9602daf5f8452a0fc1887dc55ee27b
Reviewed-on: https://gerrit.libreoffice.org/47178
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
https://github.com/google/oss-fuzz/issues/671
Change-Id: Ic22f279fa8ef477540afdfa06a22138c9e3a8270
Reviewed-on: https://gerrit.libreoffice.org/38793
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Uwinapi is discontinued.
Change-Id: I063b4d0d8fab2d60de168e960a63b8181158ac01
Reviewed-on: https://gerrit.libreoffice.org/23198
Reviewed-by: David Ostrovsky <david@ostrovsky.org>
Tested-by: David Ostrovsky <david@ostrovsky.org>
|
|
Change-Id: I55f8bedd9b578053413b5e3404010301d01b7961
Reviewed-on: https://gerrit.libreoffice.org/34861
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
...and fix any ensuing errors/warnings, but no further C++'ification. Not sure
whether any parts of dllentry.c would need to be extern "C", so leaving that one
alone for now.
TODO: Put definition of _CRT_RAND_S into bin/update_pch, so it doesn't get
removed again from sal/inc/pch/precompiled_sal.hxx. (For the surrounding #ifndef
see 244d22a3d27b303d44f59296a19dc4cb31fd429d "Work around -Werror,-Wunused-macros
with clang-cl".)
Change-Id: I2ada3717845eb0be0c559465d68e00e3a7720156
Reviewed-on: https://gerrit.libreoffice.org/34860
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Tested-by: Stephan Bergmann <sbergman@redhat.com>
|
|
pt#2
Change-Id: I5cc280613879786bd723019d630edb5a920419b9
|
|
Change-Id: I6b97345c9d927d1ae1d89f85611c2b5de7b5f0d4
|
|
Change-Id: Icb368b676199038bf8588b42ef50a2796468d185
Reviewed-on: https://gerrit.libreoffice.org/32228
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: If2191161e82fc1e05b1442ae4b3b729cc1b8994d
Reviewed-on: https://gerrit.libreoffice.org/32038
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Currently LFS_CFLAGS are only used in a handful of libraries but there's
no obvious reason why it can't just be set everywhere.
Also set it in windows.mk, i have no idea if it's needed for MinGW
(certainly not for MSVC).
Change-Id: I5f62e3011c2089abbf5539fc54c7ff10e07b1599
|
|
remove <boost/noncopyable.hpp> in pch and
remove boost from makefile if it was the only boost entry.
Change-Id: Icb945ae59c137571f4f63807601738eea5c3e831
Reviewed-on: https://gerrit.libreoffice.org/24061
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
|
|
Change-Id: Iff331a48fadc23da8b24f9ca3a841000313a03dd
Reviewed-on: https://gerrit.libreoffice.org/23477
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: I2fdbc2ac10f483eee154bdf69479ba217a91ef7f
Reviewed-on: https://gerrit.libreoffice.org/19605
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Michael Meeks <michael.meeks@collabora.com>
|
|
Change-Id: I4a4a7c4a1596837c2f221d856228d7d26482ede3
|
|
use /dev/urandom on unixes
and
rand_s() on windows
Change-Id: Iccd6e01706f16d82f23cda0f0a410953c32fbc02
Reviewed-on: https://gerrit.libreoffice.org/15473
Reviewed-by: Michael Stahl <mstahl@redhat.com>
Tested-by: Michael Stahl <mstahl@redhat.com>
|
|
...in certain Windows build environments (whatever it is exactly that causes
some Windows builds to fail with "error C3861: 'InetPtonW': identifier not
found" while others succeed). Unclear what the original reason was for setting
_WIN32_WINNT here, but removing it hopefully does not break anything.
Change-Id: I83222ad010d428cf2b9c447760ea47381552d04a
|
|
This was unused since the earlier cleanup.
Change-Id: Ia56641c4242037a0ce501e43939b8dc862499f0e
|
|
The ../../../program/ links in the URE jar Class-Paths are a temporary kludge
(and juh.jar had lacked adaption for Mac OS X).
Change-Id: I2542d8a582866485dd61c05df3fc6b4b39a8403d
|
|
Change-Id: I1d7f47b81e558a071a6beb52999d0bca185f02d5
|
|
Change-Id: Ifaf971d77f11cef207706989bba11dbe2028ca79
|
|
Change-Id: I90ca3ddbc2e1d4b830ec6e536e36e924ee14416a
|
|
Change-Id: If0f0e40964f7dc107e14753da49df5cdc77732be
|
|
Change-Id: I4629a01a67dd57d5915403a89da90e98b5184503
|
|
(At least some glibc make FD_ISSET happen to be of type bool in C++, that's why
we explicitly cast it to bool instead of comparing != 0 to avoid
loplugin:implicitboolconversion; cf.
<https://sourceware.org/ml/libc-help/2014-11/msg00018.html> "Type of FD_ISSET
happens to be bool in C++.")
Change-Id: I6da67620067392f5866d053b074198413da814b1
|
|
Change-Id: I6d9f43a18e13cb291cb678b6faeeed7c0ec9de1a
|
|
Change-Id: I0c9659379e6120c0bf01b6436d3127b83ad01af1
|