> On Oct. 23, 2013, 2:40 p.m., Chusslove Illich wrote:
> > I can only say that whatever is the proper fix here, it is fine with me.
> > Since non-installed headers are being used, maybe ki18n is using KJS in a
> > way which became deprecated somewhere along the way? If so, I've nothing
> > against fixing that instead.
> >
> 
> Aleix Pol Gonzalez wrote:
>     Well the thing is that ki18n was using private API (since it was in the 
> same module, kdelibs).
>     
>     Aurélien: what about installing these headers in a private/ directory?
> 
> Chusslove Illich wrote:
>     If I recall, when implementing that I mimicked what khtml was doing.
>     And apparently is still doing.
>
> 
> Aleix Pol Gonzalez wrote:
>     khtml is in kdelibs as well, nobody has tried to build it standalone just 
> yet, I guess.
> 
> Chusslove Illich wrote:
>     Right, but, how is then KJS supposed to be used in a different way? Are
>     these private headers really private, or actually necessary to use KJS as 
> a
>     JS interpreter in random client code?
>
> 
> Aurélien Gâteau wrote:
>     The ideal solution would be for ktranscript to only use public headers, 
> but I assume there is no way to do so (I haven't taken the time to study 
> ktranscript enough to understand what it does), Chusslove, it would be 
> awesome if you could have a look at it.
>     
>     If it is definitely not possible, then I am going to update my changes to 
> install to a private/ directory, like Aleix suggests.
> 
> Aurélien Gâteau wrote:
>     Actually, the even more ideal solution would be for ktranscript to use 
> QtScript instead of KJS. In the future we will have more and more 
> applications developed with QtQuick, so they will already link to QtScript, 
> loading another JavaScript interpreter sounds wasteful to me. Do you think 
> this is doable? I would be quite interested in helping making it happen.
> 
> Aurélien Gâteau wrote:
>     Mmm, actually I am wrong, QtScript is provided for Qt 4.x compatibility, 
> QtQuick uses the QJS* classes from QtQML, so this is what we should be using.
> 
> Kevin Ottens wrote:
>     I would definitely welcome such a port... I remember asking ktranscript 
> to be ported away from KJS. Would also make ki18n tier 1.
> 
> Aurélien Gâteau wrote:
>     I started diving into this today. No change for now, but I wrote some 
> unit tests for ktranscript, so that a qjs port can be evaluated. Patchset is 
> here: http://agateau.com/tmp/ki18n-qjs.patch but it's missing loads of tests 
> for now. Chusslove: would you be interested in extending the test coverage?
> 
> Chusslove Illich wrote:
>     Yes, I most certainly would be interested in extending the test coverage.
>     But I intended to do it "full-range", that is starting from test PO files
>     (which are already there), once I get to it. And first I need to document 
> it
>     better :) Currently all there is is this wiki page:
>     http://techbase.kde.org/Localization/Concepts/Transcript
>     
>     As for the port away from KJS, I have to state again that I see no value 
> in
>     that. Having ki18n be tier 1 is of no use: if someone is so tight on
>     dependencies that using a tier 2 framework is a problem, then ki18n is the
>     first thing to dump in favor of built-in Qt translation system, tier 1 or
>     not. Note that ki18n also brings into play all the Gettext tools, as 
> opposed
>     to self-contained Qt translation tools. The only possible advantage of 
> ki18n
>     in tier 1 is that it can be used by tier 2 frameworks, of which there is 
> not
>     much by my estimate (and between tier 1 and tier 3, I also fail to see the
>     reason for existence of tier 2).
>
> 
> Aurélien Gâteau wrote:
>     There is value in both full-range tests and tests exercising smaller 
> parts of the code as well IMO.
>     
>     Thanks for the link, I am going to look at it.
>     
>     Regarding the port to QJSEngine, I see the following advantages to it:
>     - It solves the build issue I have been trying to fix with this request: 
> no need for uninstalled headers anymore.
>     - The code is going to be simpler: from what I read of QJSEngine and KJS, 
> exposing an object using QJSEngine is simpler than with KJS: no need for 
> lookup tables or things like that, just a QObject with slots.
>     - I expect QJSEngine to be better maintained than KJS, given that it is 
> the backbone of QtQuick.
>     - Having ki18n in tier1 would make it more attractive to Qt developers 
> since it brings superior translation support. Right now the cost of dragging 
> in a separate JavaScript interpreter, can be perceived as a burden especially 
> for QtQuick developers.

Yes, it's not only about the tiers (it's just a nice side-effect). But it's 
clear that at that point ktranscript is built on top of something huge and 
unmaintained. It'd be safer built on top of something with proper maintenance 
if possible.


- Kevin


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/113402/#review42222
-----------------------------------------------------------


On Oct. 23, 2013, 2:30 p.m., Aurélien Gâteau wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/113402/
> -----------------------------------------------------------
> 
> (Updated Oct. 23, 2013, 2:30 p.m.)
> 
> 
> Review request for KDE Frameworks.
> 
> 
> Repository: kdelibs
> 
> 
> Description
> -------
> 
> KI18n depends on KJS to build the ktranscript plugin. This plugin requires an 
> internal KJS Perl script as well as headers which were not installed.
> 
> This is a 3-commit patches, which does the following:
> 
> 1. Install kjs headers
> 
> 2. Install wtf headers, using wtf/ and kjs/ in include directives (because 
> some kjs headers includes wtf headers)
> 
> 3. Fix KI18n:
> - Format top-level CMakeLists.txt according to CMake template
> - Duplicate KJS create_hash_table script
> - Add call to find_package(KJS)
> 
> Individual patches available from 
> http://agateau.com/tmp/ki18n-standalone.patch
> 
> 
> Diffs
> -----
> 
>   superbuild/CMakeLists.txt 5cdec94 
>   tier1/kjs/src/CMakeLists.txt 8629716 
>   tier1/kjs/src/kjs/CMakeLists.txt 9523e89 
>   tier1/kjs/src/wtf/CMakeLists.txt 83b4417 
>   tier1/kjs/src/wtf/FastMalloc.h 29a72a5 
>   tier1/kjs/src/wtf/HashCountedSet.h be3c387 
>   tier1/kjs/src/wtf/HashFunctions.h f665447 
>   tier1/kjs/src/wtf/HashMap.h ba2971c 
>   tier1/kjs/src/wtf/HashSet.h e84b349 
>   tier1/kjs/src/wtf/HashTable.h 0b2c22c 
>   tier1/kjs/src/wtf/HashTable.cpp e08d09a 
>   tier1/kjs/src/wtf/HashTraits.h 4d01726 
>   tier1/kjs/src/wtf/ListRefPtr.h 0a704d8 
>   tier1/kjs/src/wtf/OwnArrayPtr.h 3b77871 
>   tier1/kjs/src/wtf/OwnPtr.h 188a1dc 
>   tier1/kjs/src/wtf/PassRefPtr.h 25b9906 
>   tier1/kjs/src/wtf/RefPtr.h 493ab05 
>   tier1/kjs/src/wtf/Vector.h 9b0f38a 
>   tier1/kjs/src/wtf/VectorTraits.h 31ae028 
>   tier2/ki18n/CMakeLists.txt 4cc8e30 
>   tier2/ki18n/src/CMakeLists.txt 7f8259b4 
>   tier2/ki18n/src/create_hash_table PRE-CREATION 
> 
> Diff: http://git.reviewboard.kde.org/r/113402/diff/
> 
> 
> Testing
> -------
> 
> Builds within kdelibs and standalone.
> 
> 
> Thanks,
> 
> Aurélien Gâteau
> 
>

_______________________________________________
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel

Reply via email to