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