So,
Somewhat random, but perhaps there is value in dumping whatever madness
I captured during this discussion on the list:
FYI,
Michael.
* Talk/Workshop: Thoughts on future core design ...
A BOF session, where developers can get together to chew over
the next big opportunities for improvement in the code-base, and catch
up with status on existing re-factorings. Several areas of work will
be highlighted, from re-using LibreOffice code, to threading and
rendering infrastructure, VCL widget lifecycle and more.
----
* Translation framework
+ move to boost' gettext compatible foo
+ multi-thread-safe, suitably licensed
+ Switching from STR_FOO_BAA -> _("baa")
+ goal: move to 'Deckard'
+ shows http://deckard.malizor.org/
+ an incremental approach:
+ smallest SRC -> .po
+ initialy bootstrapping & then ...
parallelism.
+ "string lists" bit of a pain.
+ migrating translations
+ remove all "ImageLists"
+ lists needed for packimages
+ can we tokenize gettext strings (Kendy)
+ cf. binary size.
+ concern wrt. 60Mb iOS images etc.
+ size of translated resources will double (Andras)
+ every .mo file will have en & fr eg.
+ problems with Windows installer too
* do it - when we have an in-binary size fix.
+ concern wrt. .mo etc. file size
+ should look at Blender too (Caolan)
* VCL lifecycle
+ switching to reference counted / smart-pointer
for all VCL Window sub-classes
+ first - find all stack / member created Windows.
+ Noel has a clang plugin to build list
DialogBox aBox( "Hello World" ); // must die
+ its a big - change (Caolan)
+ Lots of 'IsDead' canary checking
* dbgutil vs. normal builds (Miklos)
+ ABI compatibility issues between dbgutil and not
+ changing #if OSL_DEBUG_LEVEL > 1 -> #ifdef DBG_UTIL
+ sw/ was fixed by Bjoern already
+ would love to have 1x not 2x orthogonal bits (Bjoern)
+ not having intersection of different ifdefs
would be good.
+ single one wouldn't work (Michael Stahl)
+ debug STL bits.
+ problem is enabling debug STL to dbg-util ?
+ nice to build just a few bits with debug (Miklos)
+ fundamentally opposed to incompatiblity and useful.
+ extra OSL_DEBUG_LEVEL's > 1 - tend to dump random files
+ finds confusing SAL_DEBUG / SAL_INFO / SAL_WARN (JanM)
* Threading
+ finding, cataloging & isolating threads that
do VCL / GUI stuff.
+ not -that- many problem sites (?)
+ the ideal sol'n (Noel)
+ the UNO bits are a problem
+ heaviest problem - UNO remoting - all threaded (Sberg)
+ Junit etc.
+ concurrency here.
+ ideal to have 1x dedicated GUI thread
+ JUnit - needs re-working ? (Michael)
+ main work in core impl.
+ writer objects with UNO interfaces
+ could not depend on locking SolarMutex ...
+ use UNO appartment stuff to move ~all core
app UNO calls to that main thread
* DECL_LINK cleanup ?
+ could we use a wrapper around boost::signal (Bjoern)
+ kill them all with an easy hack ?
+ do we require linkage to a library ? (Caolan)
+ good to have a mass-conversion ? vs. wait for C++ 11 (Miklos)
+ C++11 Lambdas rock (Ptyl)
+ mechanism - prolly orthogonal to lamdas (Stephan)
+ 2x different issues.
* Switching to GL rendering (Markus)
+ a new VCL backend based on OpenGL
+ useful for wayland (killing the Linux/X rendering)
+ also critical for mobile
+ can implement a more powerful & fast rendering API
+ free gradients etc.
+ also - finishing GL canvas / drawinglayer
+ rendering scene graph directly.
+ moving co-ordinates to float
+ can we switch to OpenGL everywhere & deprecate (Michael)
+ mobile platforms, Mac + Windows: good OpenGL
+ Linux - ... horrible GL versions etc.
+ 3.2 base-line preferred
+ impacts 50% of Linux users.
+ move from OpenGL 2.1 to 3.1 is a big step
+ writing for something obsolete now
would be sad.
+ OpenGL 2.1 not so controversial.
+ No other long term solution for Linux
+ everyone moving towards GL
+ with S/W fallbacks / llvm-pipe etc.
+ native toolkit integration yet more fun with GL.
+ hoping to use UI / layout to get native widgets (Caolan)
----
There were another set of issues that we didn't really get
to that may or may not make sense.
* VCL issues
+ main-loop / priorities
* Image issues:
+ BitmapEx - in-line and/or pre-multiplied alpha [!]
+ image handling
* Others:
+ etc.
+ SfxItemPool / PoolItem - lifecycle etc.
+ add a 'hash me' function ...
+ internal hashing [!?] ...
+ kill more 'Tools' classes ?
+ Color (COL_RED) ?
+ polygons ?
* Core bits:
+ Killing the old SvStream / binary-file-format stuff ..
+ copy/paste in editeng still using it ...
+ complicates & slows down the SfxItemPool eg.
+ LibreOffice Kit
--
michael.meeks@collabora.com <><, Pseudo Engineer, itinerant idiot
Context
- LibreOffice / Future / design notes foo ... · Michael Meeks
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.