From: Yusuke Endoh Date: 2012-11-06T23:53:59+09:00 Subject: [ruby-core:48979] Re: [ANN] ruby 2.0.0-preview1 released Hello Vit, 2012/11/6 V�t Ondruch : > 2012/11/2 Yusuke Endoh >> >> We have taken considerable care in source-level compatibility with >> 1.9. We believe all "normal" programs will work without modification. >> So, please give it a try, and report if your program does not work. > > > Does it mean that Ruby 2.0 will breaks ABI, e.g. the ABI will be 2.0.0 > instead of 1.9.1 (as it was for Ruby 1.9.3). Yes, ABI will be incompatible with 1.9.1. So, to be precise: - You can use existing "normal" Ruby scripts without modification - You can use "normal" source code of existing extenstion libraries without modification, but re-compilation is needed. Note: #6679 was introduced after preview1, which may cause a big compatibility issue, especially, for non-utf-8 users. We will estimate the impact with preview2 release. BTW: I'm thinking to change the ABI version *name*. Ruby 2.0.1 will use the same ABI version "2.0.0", which is very confusing, based on the experience of "1.9.1". I'd like to name it "2.0", but I must talk with matz. > I am just asking, since the .so > file is currently named libruby.2.0.0.so and abi-compliance-checker confirms > it (see attachment). Thank you, very interesting. The following functions (or global variables) disappered, right? We should check each if the deletion won't cause compatibility issue. Removed Symbols (25) OnigSyntaxPerl_NG [data] rb_barrier_destroy ( ... ) rb_barrier_new ( ... ) rb_barrier_release ( ... ) rb_barrier_wait ( ... ) rb_disable_interrupt ( ... ) rb_enable_interrupt ( ... ) rb_file_const ( ... ) rb_file_load_ok ( ... ) rb_float_new ( ... ) rb_gc_mark_parser ( ... ) rb_gc_mark_symbols ( ... ) rb_gc_mark_threads ( ... ) rb_infinity [data] rb_load_fail ( ... ) rb_mark_end_proc ( ... ) rb_nan [data] rb_path_end ( ... ) rb_path_last_separator ( ... ) rb_path_next ( ... ) rb_path_skip_prefix ( ... ) rb_vm_get_sourceline ( ... ) rb_vm_make_env_object ( ... ) ruby_find_basename ( ... ) ruby_find_extname ( ... ) -- Yusuke Endoh