Confirmed users
764
edits
m (→Dependencies) |
(→Status: Info on the size of the ICU libraries, linking) |
||
Line 36: | Line 36: | ||
* ICU's license is the [http://source.icu-project.org/repos/icu/icu/trunk/license.html ICU License], which is the MIT license with additional clauses about documentation and promotion. I'm pretty sure it's compatible with our tri-license, but I'm no lawyer... | * ICU's license is the [http://source.icu-project.org/repos/icu/icu/trunk/license.html ICU License], which is the MIT license with additional clauses about documentation and promotion. I'm pretty sure it's compatible with our tri-license, but I'm no lawyer... | ||
* ICU is designed to be modular. Here's a picture showing [http://userguide.icu-project.org/design#TOC-API-Dependencies API dependencies]. We need "BreakIterator", which is inside "Common library", which depends on the "Data library." There are many compilation options that allow you to pick only the pieces you need. ([http://source.icu-project.org/repos/icu/icu/trunk/readme.html 1], [http://userguide.icu-project.org/packaging 2], [http://icu-project.org/repos/icu/icuhtml/trunk/design/modularization/icu_modularization_overview.html 3].) I haven't investigated them yet, but the important point is that we don't need all of ICU to support i18n tokenization. | * ICU is designed to be modular. Here's a picture showing [http://userguide.icu-project.org/design#TOC-API-Dependencies API dependencies]. We need "BreakIterator", which is inside "Common library", which depends on the "Data library." There are many compilation options that allow you to pick only the pieces you need. ([http://source.icu-project.org/repos/icu/icu/trunk/readme.html 1], [http://userguide.icu-project.org/packaging 2], [http://icu-project.org/repos/icu/icuhtml/trunk/design/modularization/icu_modularization_overview.html 3].) I haven't investigated them yet, but the important point is that we don't need all of ICU to support i18n tokenization. | ||
* I was able to build our SQLite with ICU support. I'm building and linking against an ICU build outside of our tree, because I don't want to focus on the grunt work of building and linking inside the tree and build system right now. I assume doing so is not technically impossible... | * I was able to build our SQLite with ICU support. I'm building and linking against an ICU build outside of our tree, because I don't want to focus on the grunt work of building and linking inside the tree and build system right now. I assume doing so is not technically impossible... | ||
* Contrary to the API dependency picture I linked to above, I had to link against three ICU libraries: common library, data library, and i18n library. Since I built using default options, I presume I built more than I needed, including the i18n lib, or perhaps I misunderstood the tokenizer dependencies. More investigation needed. It built as a collection of shared libraries: the common library is 1.3 MiB, the data library is 16 MiB, and the i18n library is 1.9 MiB. The size of our SQLite library is not changed, since it links dynamically against these ICU libraries. Again, this is all by default, since I haven't yet played with compile and link options. | |||
* Next I would like to do some tests to determine its potential for improving awesomebar searches. | * Next I would like to do some tests to determine its potential for improving awesomebar searches. | ||