Ported update_pch.sh to Python with improved performance
and features. The new script is invoked from the same
update_pch.sh which calls it for each library in
parallel, although it can be invoked directly.
The ported script (update_pch) updates all PCH files
in ~15 seconds where the old script took ~4500 seconds.
In addition, the new script supports 3-tiered headers
(system, module, and local) and is very flexible to
support other improvement. It has a per-library
optimal configuration settings that can be updated
using another new scripts (update_pch_autotune.sh)
which finds optimal per-PCH settings.
PCH files have been generated using the new scripts
which builds significantly faster (2-3x, depending
on module and configuration) and the intermediate
binaries are noticably smaller (by several GBs).
The new script stamps each generated PCH file with
the command that generated it to make it trivial
for users to update them, and also adds the command
to invoke another script (update_pch_bisect) that
helps find missing headers or conflicting headers
that may break the build after updating the PCH.
Finally update_pch has built-in unit-tests for
makefile parsing and other core functionality.
Change-Id: Ib933b50e50374d7e2e7e3e95ba8799b0cc8a27fa
Reviewed-on: https://gerrit.libreoffice.org/19965
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Found by: berend dot cornelius at germany dot sun dot com
Patch by: Pathangi Janardhanan Jatinshravan <JATINSHR001 at e dot ntu dot edu dot sg>
Review by: Damjan Jovanovic
(cherry picked from commit 519770a2b47d4bb95a7616cedcc1582ae83ab205)
Change-Id: I61c9eacd285c8335925f1569b64bb2d600caf545
StarBasic tries to emulate truncation of files opened for writing
by deleting them before opening them (if they exist). However there
are exclusion to the truncation behaviour when the file is opened
in append mode or is a binary file. Another exclusion - that was
missing with disasterous consequences - is that the file should
not be truncated when opened in random access mode.
(cherry picked from commit 72b2f07ccac7578ef36fc2b92dcba49abe397ebc)
Change-Id: Ic0053039ce5fd67ad42bf5332ae301d83f1a158d
- preserve backward compatibility
- nDebugFlag is stored but not used when loaded
- Flag nDebugFlag set the top bit to 1
- stores the multiplier of sal_Int16 limit to reach nStart
- in load, test this flag bit
- rebuild correct nStart
- new B_CURVERSION file format for binary storage macro
- unit test for big modules
Reviewed-on: https://gerrit.libreoffice.org/18926
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
(cherry picked from commit db17079fcff6f9a068c499b17f2501cc4c82d10b)
Change-Id: Iaa037982d828fef7195615e6eda546b7199a4fe8
- improvements to the plugin to find more method calls
- improvements to python script to remove more false+
- fix the FORCE_COMPILE_ALL build flag to include code in
the $WORKDIR
Change-Id: I4d6015dcb9b9d60c26f0bcee8abad807177a7836
Reviewed-on: https://gerrit.libreoffice.org/19064
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
...4b4a7c0d87eb580272aba0777c9021789025bdc0 "Revert a fix that can never have
worked in the first place?"---which presumably did work after all, as Noel
thankfully pointed out to me,
<http://lists.freedesktop.org/archives/libreoffice/2015-September/070193.html>
"Re: [Libreoffice-commits] core.git: basic/source 'Revert a fix that can never
have worked in the first place?'"
Change-Id: I411bfaacbfebf50589290c6a3040d0300c256439
clang-analyzer-deadcode.DeadStores finds that conditionally assigning
eTok = SYMBOL
inside the "if( SbiTokenizer::IsKws( eTok ) )" block is useless, as the directly
following
if( DoParametersFollow( pParser, eCurExpr, eTok = eNextTok ) )
will unconditionally assign into eTok again, without intermediate use of the old
eTok value.
Now, the conditional "eTok = SYMBOL" assignment was added as
5d98ed5c6a4afc0a7943318c510e56aef8c45193 "INTEGRATION: CWS ab12fixes: #118234#
SbiExpression::Term(): Allow Input as symbol for action option compatible,"
while the unconditional "eTok = eNextTok" assignment had followed that block
ever since c25ec0608a167bcf1d891043f02273761c351701 "initial import."
The referenced "#118234#" was a Sun-internal bug and is no longer available, but
it does very much look as if this alleged bugfix never worked in the first
place. So revert the code back to what it looked before
5d98ed5c6a4afc0a7943318c510e56aef8c45193, for now.
Change-Id: I1fe1178d2c5b0c0372da32b8dd0f2dfbdb22a1ae