Han,

FYI, this has now been fixed in r14727.
        Igor

Igor Peshansky/Watson/i...@ibmus wrote on 07/02/2010 12:47:12 AM:

> Han,
> 
> This indeed looks like a bug in the C++ implementation of 
> String.compareTo().
> Please open a JIRA and we'll fix this.  Thanks for the report.
>         Igor
> 
> Han Dong <saviola7...@gmail.com> wrote on 07/01/2010 09:38:43 PM:
> 
> > Hi,
> > 
> > Sorry for the late response and thanks for helping me.
> > 
> > The generated C++ code is as follows:
> > 
> > #include <Test.h>
> > 
> > 
> > #include "Test.inc"
> > 
> > void Test::_instance_init() {
> >     _I_("Doing initialisation for class: Test");
> > 
> > }
> > 
> > 
> > //#line 8 "/home/han6/Test.x10": x10.ast.X10MethodDecl_c
> > #include <x10/lang/Runtime.h>
> > #include <x10aux/bootstrap.h>
> > extern "C" { int main(int ac, char **av) { return
> > x10aux::template_main<x10::lang::Runtime,Test>(ac,av); } }
> > 
> > void 
> Test::main(x10aux::ref<x10::lang::Rail<x10aux::ref<x10::lang::String> >
> > > args) {
> > 
> >     //#line 11 "/home/han6/Test.x10": x10.ast.X10LocalDecl_c
> >     x10aux::ref<x10::lang::String> s1 = 
x10::lang::String::Lit("aaaa");
> > 
> >     //#line 12 "/home/han6/Test.x10": x10.ast.X10LocalDecl_c
> >     x10aux::ref<x10::lang::String> s2 = x10::lang::String::Lit("zz");
> > 
> >     //#line 14 "/home/han6/Test.x10": polyglot.ast.Eval_c
> > 
> > x10aux::nullCheck(x10::io::Console::FMGL(OUT__get)())->x10::io::
> > Printer::println(
> >       x10aux::class_cast_unchecked<x10aux::ref<x10::lang::Any>
> > >(((s1)->compareTo(s2) <= 0)));
> > 
> >     //#line 15 "/home/han6/Test.x10": polyglot.ast.Eval_c
> > 
> > x10aux::nullCheck(x10::io::Console::FMGL(OUT__get)())->x10::io::
> > Printer::println(
> >       x10aux::class_cast_unchecked<x10aux::ref<x10::lang::Any>
> > >((s1)->compareTo(s2)));
> > }
> > 
> > //#line 7 "/home/han6/Test.x10": x10.ast.X10ConstructorDecl_c
> > void Test::_constructor() {
> >     this->x10::lang::Object::_constructor();
> > 
> > }
> > x10aux::ref<Test> Test::_make() {
> >     x10aux::ref<Test> this_ = new (x10aux::alloc<Test>()) Test();
> >     this_->_constructor();
> >     return this_;
> > }
> > 
> > 
> > const x10aux::serialization_id_t Test::_serialization_id =
> > 
> > x10aux::DeserializationDispatcher::addDeserializer(Test::
> > _deserializer<x10::lang::Object>);
> > 
> > void Test::_serialize_body(x10aux::serialization_buffer& buf) {
> >     x10::lang::Object::_serialize_body(buf);
> > 
> > }
> > 
> > void Test::_deserialize_body(x10aux::deserialization_buffer& buf) {
> >     x10::lang::Object::_deserialize_body(buf);
> > 
> > }
> > 
> > x10aux::RuntimeType Test::rtt;
> > void Test::_initRTT() {
> >     if (rtt.initStageOne(&rtt)) return;
> >     const x10aux::RuntimeType* parents[1] = {
> > x10aux::getRTT<x10::lang::Object>()};
> >     rtt.initStageTwo("Test", 1, parents, 0, NULL, NULL);
> > }
> > 
> > 
> > Thanks,
> > 
> > Han Dong
> > h...@umbc.edu
> > University of Maryland '10
> > 
> > On Wed, Jun 23, 2010 at 7:46 PM, Yoav Zibin <yoav.zi...@gmail.com> 
> wrote:
> > 
> > > Please email the generated C++ code,
> > > e.g.,
> > >
> > >
> > >    //#line 197 "C:\cygwin\home\Yoav\test\Hello.x10": 
> x10.ast.X10LocalDecl_c
> > >    x10aux::ref<x10::lang::String> s1 = 
x10::lang::String::Lit("aaaa");
> > >
> > >    //#line 198 "C:\cygwin\home\Yoav\test\Hello.x10": 
> x10.ast.X10LocalDecl_c
> > >    x10aux::ref<x10::lang::String> s2 = x10::lang::String::Lit("zz");
> > >
> > >    //#line 200 "C:\cygwin\home\Yoav\test\Hello.x10": 
> polyglot.ast.Eval_c
> > >
> > >
> > > x10aux::nullCheck(x10::io::Console::FMGL(OUT__get)())->x10::io::
> > Printer::println(
> > >      x10aux::class_cast_unchecked<x10aux::ref<x10::lang::Any>
> > > >(((s1)->compareTo(s2) <= 0)));
> > >
> > >    //#line 201 "C:\cygwin\home\Yoav\test\Hello.x10": 
> polyglot.ast.Eval_c
> > >
> > >
> > > x10aux::nullCheck(x10::io::Console::FMGL(OUT__get)())->x10::io::
> > Printer::println(
> > >      x10aux::class_cast_unchecked<x10aux::ref<x10::lang::Any>
> > > >((s1)->compareTo(s2)));
> > >
> > >
> > >
> > 
> > > On Wed, Jun 23, 2010 at 7:26 PM, Han Dong <saviola7...@gmail.com> 
> wrote:
> > >
> > > > This is the code i'm running:
> > > >
> > > > import x10.io.Console;
> > > > import x10.io.*;
> > > > import x10.lang.*;
> > > > import x10.util.*;
> > > >
> > > > public class Test
> > > > {
> > > >   public static def main(args:Rail[String])
> > > >    {
> > > >      var s1:String = "aaaa";
> > > >      var s2:String = "zz";
> > > >
> > > >      Console.OUT.println((s1 <= s2));
> > > >      Console.OUT.println(s1.compareTo(s2));
> > > >   }
> > > > }
> > > >
> > > > Seems the system has an issue with compiling Java backend, so I 
was 
> not
> > > > able
> > > > to test it on that. What version of x10 are you running? If your 
> code
> > > gives
> > > > back the correct answer, then it probably could be issues with the 

> x10 on
> > > > the system.
> > > >
> > > > Thanks,
> > > >
> > > > Han Dong
> > > > h...@umbc.edu
> > > > University of Maryland '10
> > > >
> > > > On Wed, Jun 23, 2010 at 6:34 PM, Yoav Zibin <yoav.zi...@gmail.com>
> > > wrote:
> > > >
> > > > > according to the output (false and -2) then you're probably 
using 
> these
> > > > > strings:
> > > > >
> > > > > var s1:String = "aaaa";
> > > > > var s2:String = "aa";
> > > > >
> > > > > and not:
> > > > > var s1:String = "aaaa";
> > > > > var s2:String = "zz";
> > > > >
> > > > > please double check.
> > > > >
> > > > >
> > > > > On Wed, Jun 23, 2010 at 6:29 PM, Yoav Zibin 
<yoav.zi...@gmail.com>
> > > > wrote:
> > > > >
> > > > > > It works for me both in Java and in C++.
> > > > > > Can you send your test file?
> > > > > >
> > > > > >
> > > > > > y...@yoavlaptop ~/test
> > > > > > $ x10c Hello.x10
> > > > > >
> > > > > > y...@yoavlaptop ~/test
> > > > > > $ x10 Hello
> > > > > > true
> > > > > > -25
> > > > > >
> > > > > > y...@yoavlaptop ~/test
> > > > > > $ x10c++ Hello.x10
> > > > > >
> > > > > > y...@yoavlaptop ~/test
> > > > > > $ x10 Hello
> > > > > > true
> > > > > > -25
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > On Wed, Jun 23, 2010 at 5:39 PM, Han Dong 
> <saviola7...@gmail.com>
> > > > wrote:
> > > > > >
> > > > > >> Hi all,
> > > > > >>
> > > > > >> I have a question regarding the String compareTo function and 

> the
> > > "<="
> > > > > >> function in x10. I have this test code:
> > > > > >>
> > > > > >> var s1:String = "aaaa";
> > > > > >> var s2:String = "zz";
> > > > > >>
> > > > > >> Console.OUT.println((s1 <= s2));
> > > > > >> Console.OUT.println(s1.compareTo(s2));
> > > > > >>
> > > > > >> which gave me these outputs:
> > > > > >>
> > > > > >> : false
> > > > > >> : 2
> > > > > >>
> > > > > >> For the first comparison test utilizing the "<=" function, it 

> states
> > > > in
> > > > > >> the
> > > > > >> API that it compares if the first string is before the second 

> string
> > > > in
> > > > > >> dictionary order, however the output is 'false' which means 
> "aaaa"
> > > is
> > > > > not
> > > > > >> before "zz"?
> > > > > >>
> > > > > >> For the second comparison test utilizing the "compareTo" 
> function,
> > > > since
> > > > > >> it
> > > > > >> gave an output of positive 2, this means that s1 follows s2.
> > > However,
> > > > in
> > > > > >> my
> > > > > >> past experiences with compareTo functions, it should be 
giving 
> me a
> > > > > >> negative
> > > > > >> integer since "aaaa" should be before "zz"?
> > > > > >>
> > > > > >> I am running this code on my school's intel nehalem blades, 
it 
> has
> > > > > >> x10-2.0.3
> > > > > >> on them. Compiling, i use:
> > > > > >>
> > > > > >> x10-2.0.3/bin/x10c++ test.x10
> > > > > >> mpiexec -n 1 ./a.out
> > > > > >>
> > > > > >>
> > > > > >> Thanks,
> > > > > >>
> > > > > >> Han Dong
> > > > > >> h...@umbc.edu
> > > > > >> University of Maryland '10
-- 
Igor Peshansky  (note the spelling change!)
IBM T.J. Watson Research Center
X10: Parallel Productivity and Performance (http://x10-lang.org/)
XJ: No More Pain for XML's Gain (http://www.research.ibm.com/xj/)
"I hear and I forget.  I see and I remember.  I do and I understand" -- 
Confucius


------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
X10-users mailing list
X10-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/x10-users

Reply via email to