Re: [Firebird-devel] ICU in HEAD
08.02.2019 12:29, Alex Peshkoff via Firebird-devel wrote: - adapt search knowing existing versions numbers (see http://site.icu-project.org/download) Yes, this should be efficient. I would limit tried versions to only those which are known to work with Firebird. For example, cut off those versions that cannot be loaded from non-ANSI paths or those that contain outdated TZ information. -- WBR, SD. Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] ICU in HEAD
On 2/8/19 3:00 PM, Vlad Khorsun wrote: 08.02.2019 13:29, Alex Peshkoff via Firebird-devel wrote: On 2/8/19 12:15 PM, Vlad Khorsun wrote: 08.02.2019 10:48, Alex Peshkoff via Firebird-devel wrote: On 2/8/19 10:56 AM, Vlad Khorsun wrote: Is it time to re-think how UnicodeUtil::getConversionICU() search for ICU library ? Suggestions? The fastest way sooner of all will be storing favorite ICU verson (once detected using long process) somewhere out of databases. But may be some better idea? I see "icu_versions" parameter at fbintl.conf but it seems not used by getConversionICU(). Probably it could be used here ? Not sure is it needed or not currently (Adriano should know better) - but I dislike an idea of making .conf files firebird-writable for security reasons. I doesn't offer to write anything into .conf. I ask if we can use already present parameter. It is used by loadICU(), but not by getConversionICU() (which is called earlier, as i see) May be we can. I've thought about writing to it cause thread has my words ''storing favorite ICU verson (once detected using long process)". As solution for windows it's probably OK. Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] ICU in HEAD
On 2/8/19 12:15 PM, Vlad Khorsun wrote: 08.02.2019 10:48, Alex Peshkoff via Firebird-devel wrote: On 2/8/19 10:56 AM, Vlad Khorsun wrote: Is it time to re-think how UnicodeUtil::getConversionICU() search for ICU library ? Suggestions? The fastest way sooner of all will be storing favorite ICU verson (once detected using long process) somewhere out of databases. But may be some better idea? I see "icu_versions" parameter at fbintl.conf but it seems not used by getConversionICU(). Probably it could be used here ? Not sure is it needed or not currently (Adriano should know better) - but I dislike an idea of making .conf files firebird-writable for security reasons. Also, we could limit number of ICU versions to check: - exclude really old versions (at least with old X.Y versioning scheme, i.e. 4.8 and older) Suppose we may exclude versions missing TZ support needed for FB4. What about versioning scheme - now it depends upon build parameters and therefore in linux is distro-depended. Not good criteria IMHO :) - adapt search knowing existing versions numbers (see http://site.icu-project.org/download) Yes, this should be efficient. - guess number of future versions Ask the spirit of Vanga? ;) Getting serious we may just decrease number of future versions to analyze - anyway they will invent something making that versions not loadable with current code. Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] ICU in HEAD
On 2/8/19 2:24 PM, Dimitry Sibiryakov wrote: 08.02.2019 12:21, Alex Peshkoff via Firebird-devel wrote: The error you are getting is different, so I would guess that search loop is aborted faster in this case. Is it good idea to provide full error message? (like I did - not to make other guess) Not in this case, but here it is: creating msg.fdb SQL> can't format message 17:0 -- message file C:\Users\SD\MYDOCU~1\firebird\temp\x64\release\firebird\firebird.msg not found Could not find acceptable ICU library SQL> loading msg.sql can't format message 17:0 -- message file C:\Users\SD\MYDOCU~1\firebird\temp\x64\release\firebird\firebird.msg not found Could not find acceptable ICU library can't format message 17:120 -- message file C:\Users\SD\MYDOCU~1\firebird\temp\x64\release\firebird\firebird.msg not found Well - as for me I can with some efforts read that . As a minimum it's clear that it differs from what I get. When fully reproduced your case must say that result does not differ much: # time (echo 'exit;' | ./isql employee) Statement failed, SQLSTATE = XX000 Could not find acceptable ICU library Use CONNECT or CREATE DATABASE to specify a database real 0m0.199s user 0m0.048s sys 0m0.086s Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] ICU in HEAD
08.02.2019 12:21, Alex Peshkoff via Firebird-devel wrote: The error you are getting is different, so I would guess that search loop is aborted faster in this case. Is it good idea to provide full error message? (like I did - not to make other guess) Not in this case, but here it is: creating msg.fdb SQL> can't format message 17:0 -- message file C:\Users\SD\MYDOCU~1\firebird\temp\x64\release\firebird\firebird.msg not found Could not find acceptable ICU library SQL> loading msg.sql can't format message 17:0 -- message file C:\Users\SD\MYDOCU~1\firebird\temp\x64\release\firebird\firebird.msg not found Could not find acceptable ICU library can't format message 17:120 -- message file C:\Users\SD\MYDOCU~1\firebird\temp\x64\release\firebird\firebird.msg not found -- WBR, SD. Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] ICU in HEAD
On 2/8/19 2:01 PM, Dimitry Sibiryakov wrote: 08.02.2019 8:31, Alex Peshkoff via Firebird-devel wrote: I can't reproduce performance problem: # time (echo 'exit;' | ./isql employee) Statement failed, SQLSTATE = XX000 Could not find acceptable ICU library -Missing entrypoint u_setDataDirectory in ICU library The error you are getting is different, so I would guess that search loop is aborted faster in this case. Is it good idea to provide full error message? (like I did - not to make other guess) Also on linux other providers, which are called after Engine13 failure, may work differently and don't waste time waiting for connect to host "C", for example. I remember there was a code avoiding host names contatning single drive letter. But may be I'm missing something with windows build... Anyway - iif you suppose problems with other providers you can turn them off to avoid side effects. Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] ICU in HEAD
08.02.2019 10:15, Vlad Khorsun wrote: Also, we could limit number of ICU versions to check: - exclude really old versions (at least with old X.Y versioning scheme, i.e. 4.8 and older) - adapt search knowing existing versions numbers (see http://site.icu-project.org/download) - guess number of future versions I would also suggest to search from newest versions to oldest. But one question left: why the ICU which is in sources is considered "unacceptable"? Does it miss any functionality _required_ for build process? -- WBR, SD. Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] ICU in HEAD
08.02.2019 8:31, Alex Peshkoff via Firebird-devel wrote: I can't reproduce performance problem: # time (echo 'exit;' | ./isql employee) Statement failed, SQLSTATE = XX000 Could not find acceptable ICU library -Missing entrypoint u_setDataDirectory in ICU library The error you are getting is different, so I would guess that search loop is aborted faster in this case. Also on linux other providers, which are called after Engine13 failure, may work differently and don't waste time waiting for connect to host "C", for example. Unfortunately, MSVC 2013 Community Edition does not include a profiler, but I'll try to see what is happening with ProcessMonitor. -- WBR, SD. Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] ICU in HEAD
08.02.2019 10:48, Alex Peshkoff via Firebird-devel wrote: On 2/8/19 10:56 AM, Vlad Khorsun wrote: Is it time to re-think how UnicodeUtil::getConversionICU() search for ICU library ? Suggestions? The fastest way sooner of all will be storing favorite ICU verson (once detected using long process) somewhere out of databases. But may be some better idea? I see "icu_versions" parameter at fbintl.conf but it seems not used by getConversionICU(). Probably it could be used here ? Also, we could limit number of ICU versions to check: - exclude really old versions (at least with old X.Y versioning scheme, i.e. 4.8 and older) - adapt search knowing existing versions numbers (see http://site.icu-project.org/download) - guess number of future versions Regards, Vlad Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] ICU in HEAD
On 2/8/19 10:56 AM, Vlad Khorsun wrote: 08.02.2019 9:31, Alex Peshkoff via Firebird-devel wrote: On 2/7/19 6:14 PM, Dimitry Sibiryakov wrote: Hello, All. I somehow understand why build of current HEAD is failing with message "Could not find acceptable ICU library", but I wonder why it takes so much time to get this error? More than 15 second between running of isql and this failure on my notebook. Probably, you have too much entries in PATH I can't reproduce performance problem: > > # time (echo 'exit;' | ./isql employee) > Statement failed, SQLSTATE = XX000 > Could not find acceptable ICU library > -Missing entrypoint u_setDataDirectory in ICU library > Use CONNECT or CREATE DATABASE to specify a database > > real 0m0.204s This is too much, imo. Hope strace could show the huge number of calls made. Yes. I can show such trace on Windows, if you wish. Is it time to re-think how UnicodeUtil::getConversionICU() search for ICU library ? Suggestions? The fastest way sooner of all will be storing favorite ICU verson (once detected using long process) somewhere out of databases. But may be some better idea? Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] ICU in HEAD
08.02.2019 9:31, Alex Peshkoff via Firebird-devel wrote: On 2/7/19 6:14 PM, Dimitry Sibiryakov wrote: Hello, All. I somehow understand why build of current HEAD is failing with message "Could not find acceptable ICU library", but I wonder why it takes so much time to get this error? More than 15 second between running of isql and this failure on my notebook. Probably, you have too much entries in PATH I can't reproduce performance problem: > > # time (echo 'exit;' | ./isql employee) > Statement failed, SQLSTATE = XX000 > Could not find acceptable ICU library > -Missing entrypoint u_setDataDirectory in ICU library > Use CONNECT or CREATE DATABASE to specify a database > > real0m0.204s This is too much, imo. Hope strace could show the huge number of calls made. I can show such trace on Windows, if you wish. Is it time to re-think how UnicodeUtil::getConversionICU() search for ICU library ? Regards, Vlad PS going to update "favorite" ICU version to 6.3 Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] ICU in HEAD
On 2/7/19 6:14 PM, Dimitry Sibiryakov wrote: Hello, All. I somehow understand why build of current HEAD is failing with message "Could not find acceptable ICU library", but I wonder why it takes so much time to get this error? More than 15 second between running of isql and this failure on my notebook. I can't reproduce performance problem: # time (echo 'exit;' | ./isql employee) Statement failed, SQLSTATE = XX000 Could not find acceptable ICU library -Missing entrypoint u_setDataDirectory in ICU library Use CONNECT or CREATE DATABASE to specify a database real 0m0.204s user 0m0.051s sys 0m0.085s Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] ICU in HEAD
Have you tried to profile? :) чт, 7 февр. 2019 г. в 18:15, Dimitry Sibiryakov : > >Hello, All. > >I somehow understand why build of current HEAD is failing with message > "Could not find > acceptable ICU library", but I wonder why it takes so much time to get this > error? More > than 15 second between running of isql and this failure on my notebook. > > -- >WBR, SD. > > > Firebird-Devel mailing list, web interface at > https://lists.sourceforge.net/lists/listinfo/firebird-devel -- Roman Simakov Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel