From dev-return-7987-apmail-lucenenet-dev-archive=lucenenet.apache.org@lucenenet.apache.org Tue Jan 6 16:19:48 2015 Return-Path: X-Original-To: apmail-lucenenet-dev-archive@www.apache.org Delivered-To: apmail-lucenenet-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id AA97310773 for ; Tue, 6 Jan 2015 16:19:48 +0000 (UTC) Received: (qmail 25054 invoked by uid 500); 6 Jan 2015 16:19:49 -0000 Delivered-To: apmail-lucenenet-dev-archive@lucenenet.apache.org Received: (qmail 25013 invoked by uid 500); 6 Jan 2015 16:19:49 -0000 Mailing-List: contact dev-help@lucenenet.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@lucenenet.apache.org Delivered-To: mailing list dev@lucenenet.apache.org Received: (qmail 25002 invoked by uid 99); 6 Jan 2015 16:19:47 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 06 Jan 2015 16:19:47 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of pirwin@feature23.com designates 209.85.215.52 as permitted sender) Received: from [209.85.215.52] (HELO mail-la0-f52.google.com) (209.85.215.52) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 06 Jan 2015 16:19:43 +0000 Received: by mail-la0-f52.google.com with SMTP id hs14so19991344lab.39 for ; Tue, 06 Jan 2015 08:18:37 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:content-type; bh=jKr9dx8uBa0uiSRryyTKeBvpa69+7J5a+Vx9ZIKN0Y8=; b=NnfyhRPW45eXrvypWM06LHFc/nuJyOQDOc3P8OsAdkY7tY64Ky72sdOPegZzs9+7h2 pHfdRNL9clobzjaswgX+h3k3MmXY7FsETfRIUt2aOLsvnZpgHVynG9SHQ4qudcINHx7s x2ghMa0shBVAw/Be0wt5jcVqSTAgxSjtg8ciHNZCEFht5quyGjwR2PRH32sZILggxgEP 0a1eqkhr/v/UzCp5LKVDJzd0hwukevVlCa9653eEXVtQ75Z762D5gElrj4i4VdQ5EPIt xTYLFOEy1Z9czuMWRr+NWola1JiqYSJ9raUnyACw0qsltJAc3KsEbEJIbeRxqUlTGXhz 70og== X-Gm-Message-State: ALoCoQmIo0if6rNb/VfBNDB5QODXM6TyRQslIsmEYUaZb4nyBDExT5E1XlsPntsb3c1F7FPjSsmS X-Received: by 10.112.135.99 with SMTP id pr3mr47278155lbb.61.1420561117074; Tue, 06 Jan 2015 08:18:37 -0800 (PST) MIME-Version: 1.0 Received: by 10.25.212.72 with HTTP; Tue, 6 Jan 2015 08:18:16 -0800 (PST) In-Reply-To: References: From: Paul Irwin Date: Tue, 6 Jan 2015 11:18:16 -0500 Message-ID: Subject: Re: 4.x Stories to be picked up To: "dev@lucenenet.apache.org" Content-Type: multipart/alternative; boundary=089e01182deec3ee52050bfe2849 X-Virus-Checked: Checked by ClamAV on apache.org --089e01182deec3ee52050bfe2849 Content-Type: text/plain; charset=UTF-8 Sorry about the ambiguity in my previous post. In reference to this comment: "the asm library was used to create java classes out of the bytecode. They probably did it that way because the generated types needed to be subclassed from the Expression type. We could use Reflection.Emit instead" - if possible, if we're generating dynamic types or methods at runtime, we should try to use *System.Linq.Expressions* instead of Reflection.Emit to do that. It gives you compile-time safety, whereas Reflection.Emit has no compile-time safety. Paul Irwin Lead Software Engineer feature[23] Email: pirwin@feature23.com Cell: 863-698-9294 On Tue, Jan 6, 2015 at 11:13 AM, Itamar Syn-Hershko wrote: > By Expressions we mean Lucene Expressions, see > > https://github.com/apache/lucene-solr/tree/trunk/lucene/expressions/src/java/org/apache/lucene/expressions > > Its based on Antlr, but Hakeems says they are doing some additional funky > stuff. > > What were you suggesting? > > -- > > Itamar Syn-Hershko > http://code972.com | @synhershko > Freelance Developer & Consultant > Author of RavenDB in Action > > On Tue, Jan 6, 2015 at 6:09 PM, Paul Irwin wrote: > > > As of .NET 4, it is preferable to use Expressions over Reflection.Emit > due > > to compile-time safety that helps prevent run-time errors (like crashing > > the CLR, which I've totally done with Reflection.Emit before), since .NET > > 4+ includes nearly-complete Expression support that can be used to build > > just about any function. I'd definitely prefer Expressions to > > Reflection.Emit. Or am I misunderstanding something? (Sorry, haven't been > > able to dive into the code lately, but trying to stay on top of the > > emails.) > > > > > > Paul Irwin > > Lead Software Engineer > > feature[23] > > > > Email: pirwin@feature23.com > > Cell: 863-698-9294 > > > > On Tue, Jan 6, 2015 at 8:45 AM, Itamar Syn-Hershko > > wrote: > > > > > As long as the tests are green and implementation makes sense, I'm good > > > with that. At least for this first phase. > > > > > > -- > > > > > > Itamar Syn-Hershko > > > http://code972.com | @synhershko > > > Freelance Developer & Consultant > > > Author of RavenDB in Action > > > > > > On Tue, Jan 6, 2015 at 3:41 PM, Hakeem Mohammed > > > wrote: > > > > > > > They have used the classwriter and Genadaptor to generate types from > > > > bytecode. So the design is string expressions are tokenized, > bytecodes > > > were > > > > genned from the tokenized byte arrays and then the asm library was > used > > > to > > > > create java classes out of the bytecode. They probably did it that > way > > > > because the generated types needed to be subclassed from the > Expression > > > > type. We could use Reflection.Emit instead. But do let me know if you > > > have > > > > any other ideas > > > > > > > > > > > > > > > > On Mon, Jan 5, 2015 at 11:37 PM, Itamar Syn-Hershko < > > itamar@code972.com> > > > > wrote: > > > > > > > > > It is an overkill. What did they use asm for? All you need to port > > > > > Expressions is Antlr really > > > > > > > > > > -- > > > > > > > > > > Itamar Syn-Hershko > > > > > http://code972.com | @synhershko > > > > > Freelance Developer & Consultant > > > > > Author of RavenDB in Action > > > > > > > > > > On Mon, Jan 5, 2015 at 3:08 PM, Hakeem Mohammed < > > hakeemosrc@gmail.com> > > > > > wrote: > > > > > > > > > > > Yes the Java impl is using Antlr already, but they also used the > > asm > > > > > > library. That is where I'm debating whether to use Expression > trees > > > or > > > > go > > > > > > for Roslyn. The latter looks like a bit of overkill though > > > > > > > > > > > > On Sun, Jan 4, 2015 at 11:22 AM, Itamar Syn-Hershko < > > > > itamar@code972.com> > > > > > > wrote: > > > > > > > > > > > > > Yes, the tokenizer implementations > > > > > > > > > > > > > > -- > > > > > > > > > > > > > > Itamar Syn-Hershko > > > > > > > http://code972.com | @synhershko < > https://twitter.com/synhershko > > > > > > > > > > Freelance Developer & Consultant > > > > > > > Author of RavenDB in Action > > > > > > > > > > > > > > On Sun, Jan 4, 2015 at 6:19 PM, Paul Irwin < > pirwin@feature23.com > > > > > > > > wrote: > > > > > > > > > > > > > > > Ah, I thought there was some place they were using another > > parser > > > > > > > > generator, but in the case of Antlr grammar already there, > have > > > at > > > > > it. > > > > > > > > > > > > > > > > > > > > > > > > Paul Irwin > > > > > > > > Lead Software Engineer > > > > > > > > feature[23] > > > > > > > > > > > > > > > > Email: pirwin@feature23.com > > > > > > > > Cell: 863-698-9294 > > > > > > > > > > > > > > > > On Sun, Jan 4, 2015 at 11:14 AM, Itamar Syn-Hershko < > > > > > > itamar@code972.com> > > > > > > > > wrote: > > > > > > > > > > > > > > > > > They are using Antlr for generating the Java bits there > > > anyway.. > > > > > > > > > > > > > > > > > > -- > > > > > > > > > > > > > > > > > > Itamar Syn-Hershko > > > > > > > > > http://code972.com | @synhershko < > > > https://twitter.com/synhershko > > > > > > > > > > > > > > Freelance Developer & Consultant > > > > > > > > > Author of RavenDB in Action < > http://manning.com/synhershko/> > > > > > > > > > > > > > > > > > > On Sun, Jan 4, 2015 at 6:05 PM, Paul Irwin < > > > pirwin@feature23.com > > > > > > > > > > > > wrote: > > > > > > > > > > > > > > > > > > > I'd caution against reinventing the wheel on the parsing > > > right > > > > > now. > > > > > > > It > > > > > > > > > may > > > > > > > > > > be a faster path to just convert the generated java > parsers > > > > into > > > > > C# > > > > > > > > using > > > > > > > > > > an automated tool, as I did on my earlier Lucene 4.3 > > porting > > > > so I > > > > > > can > > > > > > > > > > attest to it. I was able to validate that they parsed > > > correctly > > > > > and > > > > > > > > even > > > > > > > > > > used that ported code in a production app. Rewriting a > > parser > > > > may > > > > > > not > > > > > > > > be > > > > > > > > > > the best use of time right now -- although I can > certainly > > > see > > > > > the > > > > > > > > value > > > > > > > > > in > > > > > > > > > > doing so later on. > > > > > > > > > > > > > > > > > > > > You can use my little utility to convert the syntax of > > entire > > > > > files > > > > > > > at > > > > > > > > > > once: https://github.com/paulirwin/javatocsharp > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Paul Irwin > > > > > > > > > > Lead Software Engineer > > > > > > > > > > feature[23] > > > > > > > > > > > > > > > > > > > > Email: pirwin@feature23.com > > > > > > > > > > Cell: 863-698-9294 > > > > > > > > > > > > > > > > > > > > On Sat, Jan 3, 2015 at 6:27 PM, Hakeem Mohammed < > > > > > > > hakeemosrc@gmail.com> > > > > > > > > > > wrote: > > > > > > > > > > > > > > > > > > > > > Thanks Itamar and Laimonas. I appreciate the details > and > > > glad > > > > > to > > > > > > > help > > > > > > > > > . I > > > > > > > > > > > got started on Expressions and half way there. I'm > using > > > > Antlr > > > > > > 4.3 > > > > > > > > for > > > > > > > > > > the > > > > > > > > > > > parsing. Please let me know if that is what y'all were > > > > planning > > > > > > to > > > > > > > > use > > > > > > > > > > > anyway. I'll get to the index tests in core after that > > > > > > > > > > > > > > > > > > > > > > On Sat, Jan 3, 2015 at 1:52 PM, Itamar Syn-Hershko < > > > > > > > > itamar@code972.com > > > > > > > > > > > > > > > > > > > > > wrote: > > > > > > > > > > > > > > > > > > > > > > > Hi Hakeem, welcome on board! > > > > > > > > > > > > > > > > > > > > > > > > Laimonas's response is spot on, let us know if you > have > > > any > > > > > > > further > > > > > > > > > > > > questions. > > > > > > > > > > > > > > > > > > > > > > > > I personally don't have any preference - once we get > > to 0 > > > > > test > > > > > > > > > failures > > > > > > > > > > > in > > > > > > > > > > > > the core we will concentrate on finishing porting the > > > rest > > > > of > > > > > > the > > > > > > > > > > > > sub-projects (Analysis.Common, Codecs, Suggest) with > > all > > > > > their > > > > > > > > tests, > > > > > > > > > > and > > > > > > > > > > > > then porting more sub-projects. > > > > > > > > > > > > > > > > > > > > > > > > So I guess pick whatever you think you'd enjoy most, > > just > > > > > make > > > > > > > sure > > > > > > > > > to > > > > > > > > > > > keep > > > > > > > > > > > > us in the loop! > > > > > > > > > > > > > > > > > > > > > > > > Cheers, > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > > > > > > > > > > > > > > > > > > Itamar Syn-Hershko > > > > > > > > > > > > http://code972.com | @synhershko < > > > > > > https://twitter.com/synhershko > > > > > > > > > > > > > > > > > > > > Freelance Developer & Consultant > > > > > > > > > > > > Author of RavenDB in Action < > > > > http://manning.com/synhershko/> > > > > > > > > > > > > > > > > > > > > > > > > On Sat, Jan 3, 2015 at 7:33 PM, Hakeem Mohammed < > > > > > > > > > hakeemosrc@gmail.com> > > > > > > > > > > > > wrote: > > > > > > > > > > > > > > > > > > > > > > > > > Hello, > > > > > > > > > > > > > > > > > > > > > > > > > > I just joined this group and looking to offer some > > help > > > > in > > > > > > > > updating > > > > > > > > > > > > Lucene > > > > > > > > > > > > > to 4.8. I briefly skimmed thru but could not find > any > > > > items > > > > > > > > related > > > > > > > > > > to > > > > > > > > > > > > the > > > > > > > > > > > > > 4.x work. I'd very much appreciate it if someone > can > > > let > > > > me > > > > > > > know > > > > > > > > > the > > > > > > > > > > > > > process for picking up items to work on. I spent a > > > couple > > > > > > weeks > > > > > > > > > > > updating > > > > > > > > > > > > an > > > > > > > > > > > > > outdated branch of Lucene, so trying to avoid that > > > > mistake > > > > > > > again > > > > > > > > :) > > > > > > > > > > > > > > > > > > > > > > > > > > Thanks! > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > --089e01182deec3ee52050bfe2849--