Return-Path: Delivered-To: apmail-harmony-dev-archive@www.apache.org Received: (qmail 64360 invoked from network); 14 Apr 2008 04:26:50 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 14 Apr 2008 04:26:50 -0000 Received: (qmail 73831 invoked by uid 500); 14 Apr 2008 04:26:49 -0000 Delivered-To: apmail-harmony-dev-archive@harmony.apache.org Received: (qmail 73795 invoked by uid 500); 14 Apr 2008 04:26:49 -0000 Mailing-List: contact dev-help@harmony.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@harmony.apache.org Delivered-To: mailing list dev@harmony.apache.org Received: (qmail 73786 invoked by uid 99); 14 Apr 2008 04:26:49 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 13 Apr 2008 21:26:49 -0700 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of alexei.fedotov@gmail.com designates 66.249.92.173 as permitted sender) Received: from [66.249.92.173] (HELO ug-out-1314.google.com) (66.249.92.173) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 14 Apr 2008 04:26:07 +0000 Received: by ug-out-1314.google.com with SMTP id u40so388909ugc.3 for ; Sun, 13 Apr 2008 21:26:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; bh=3cdMJwz/N5DDfWwAmPNcDTXTRC5loWnNPkkBUJ3CHNI=; b=eAsUqimLKBg2r7L31qeLP5gP1Hsu1tEqYiXlSRX4lPJY4cPGpDqTZbgD97hVHaiNgT9/Kk5iMVO3lIHtGf/WmIXkjmZaYZMivz9SfKwPO/l+2wuJFpqt+Rv7m4MAJ0aV+a37n4bv+bprC4doqP5lRSyhozlHWMOzOg6UhNPhbY0= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=mvcsynT0qoQteYasKMVK31JAivvQ6EXY44fChv1o74BikzPpXBUJg8iBxX5T3tsxmBtB1x6pI7Oyq3lnFV2izAmhA1fCfrqKgvlqH31DvJuZazFeyEwGfzocNgTlZNJXOh2TZdfenHwqLHjIH3ot4wpWa4C70EZP0KG4JAeFWmo= Received: by 10.67.96.18 with SMTP id y18mr3309398ugl.69.1208147178497; Sun, 13 Apr 2008 21:26:18 -0700 (PDT) Received: by 10.67.21.8 with HTTP; Sun, 13 Apr 2008 21:26:18 -0700 (PDT) Message-ID: Date: Mon, 14 Apr 2008 08:26:18 +0400 From: "Alexei Fedotov" To: dev@harmony.apache.org Subject: Re: [general] icu or apr-iconv, which coding library is better? In-Reply-To: <3b3f27c60804131939k381c403fg5ec084b667c094f3@mail.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <3b3f27c60804121330v4a30a1f9rf7662e017bc9c975@mail.gmail.com> <3b3f27c60804131939k381c403fg5ec084b667c094f3@mail.gmail.com> X-Virus-Checked: Checked by ClamAV on apache.org Hello Nathan, Thanks for your tough questions. 1. I'm sorry for using "red herring". I honestly believe that having two charset coding libraries is overkill and a good reason to throw one of them away. 2. Here is a JNI specification [1]. Please, check a table below JNI_CreateJavaVM description. It describes how VM logging is initialized. This was not implemented in DRLVM, and is implemented in [2]. 3. A big chunk of removed functionality is logging into separate files. To my perception, this is not a frequent use case. The original reason why original DRLVM engineers attached log4cxx to my original C/C++ DRLVM logger was our attempt to achieve "Apache synergy". 4. You asked for an anecdotal proof of the fact why smaller executables may run faster. I have just invented one: smaller executables better fit into a processor cache, produce less cache misses and hence decrease a bus load. For a particular case this should be measured, and I don't have solid data yet. 5. There is one more argument which actually forced me to start thinking into this direction: my shmmap component (a hybrid of shm and mmap) was originally developed as a part of aprutil (because it is based on apr_shm and apr_mmap). We already have four porting libraries: port, portlib, apr and aprutil in Harmony. Removing one which is not tightly coupled with other parts make it easier for people like me to decide where it is natural to place our hand-made components. More questions? Suggestions? [1] http://java.sun.com/j2se/1.5.0/docs/guide/jni/spec/invocation.html [2] https://issues.apache.org/jira/browse/HARMONY-5692 On Mon, Apr 14, 2008 at 6:39 AM, Nathan Beyer wrote: > On Sun, Apr 13, 2008 at 4:17 AM, Alexei Fedotov > > wrote: > > > Hello Nathan, > > Thanks for questions. > > > > There are many other places where charset (en/de)coders are used, but > > we use icu4c there. > > I know, but your original post made it sound like this was the big > reason for accepting this patch, but charset codec usage was a red > herring - I really don't like it when people use such tactics. Focus > on the real issue, please. > > > > > HARMONY-5692 is a replacement of log4cxx with > > custom logger and removing dependent aprutil and apr-iconv which are > > not used any longer after this replacement. > > * The replacement decreases > > windows_x86_msvc_debug/deploy/jdk/jre/bin/default/harmonyvm.dll size > > from 4079616 to 2961408. This would probably improve a startup time. > > Any proof, even anecdotal to this claim? > > > > * The custom logger requires less lines of code than a log4cxx > > wrapper, hence, is easier to maintain. > > * By specification VM logging should be done using provided > > vfprintf. C++ logger adds two layers of conversion. vfprintf layer wan > > not implemented, and implementing it would increase a number of > > wrappers for log4cxx. > > Can you point to this bit of the specification? I don't understand the > last bit of what you're claiming. There's a wrapper that doesn't > exist, but needs to? > > > > > > Please, let me know if these arguments are enough for log4cxx being removed. > > No, they aren't for me. The original DRLVM engineers used log4xx for a > reason, what functionality are we giving up? > > > > > > > Note, apr itself remains, and it is pretty good piece of code to my > > perception. I do not intend to invent pools or OS call wrappers. We > > throw away the staff guys from apr does not allow to put into their > > main module. :-) > > Thanks. > > > > > > > > > > On Sun, Apr 13, 2008 at 12:30 AM, Nathan Beyer wrote: > > > Huh? This post doesn't sound like anything in HARMONY-5692. We need > > > clear somethings up first. > > > > > > 1. apr-iconv is in the build as a dependency of log4cxx > > > 2. there is no use of apr-iconv for charset encoding/decoding > > > 3. HARMONY-5692, AFAIU is replacement of log4cxx with custom logger > > > implementation to reduce the build time > > > > > > What's the value of replacing log4cxx with a custom logger? Reducing > > > the build time isn't enough for me - there have to be other ways to > > > accomplish that without sub-system replacement. > > > > > > -Nathan > > > > > > > > > > > > On Fri, Apr 11, 2008 at 10:37 PM, Alexei Fedotov > > > wrote: > > > > Hello, > > > > > > > > One may notice that both icu and apr-iconv are currently used to build > > > > Harmony HDK. Both libraries address charset encoding and decoding. > > > > Should we keep both of them or try to use the only one? > > > > > > > > HARMONY-5692 [1] contains one possible "compilable" answer to this > > > > question and related reasoning. Alexey Varlamov and Tim suggested > > > > discussing the matters on dev@ list, so I created this thread on the > > > > subject. You are welcome to share your opinion about the libraries > > > > Harmony depends on, the patch from [2], my arguments defending the > > > > patch, and further directions here. > > > > > > > > -- > > > > With best regards, > > > > Alexei > > > > > > > > [1] https://issues.apache.org/jira/browse/HARMONY-5692 > > > > > > > > > > > > > > > -- > > With best regards, > > Alexei > > > -- With best regards, Alexei