Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Comparing changes

Choose two branches to see what's changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
base fork: funkygao/MacRuby
head fork: MacRuby/MacRuby
Checking mergeability… Don't worry, you can still create the pull request.
Commits on May 23, 2012
@macrotis macrotis Replace MRI Struct attribute accessors with IMP-wrapped blocks, givin…
…g each attr_accessor its own implementation in Objective-C
@macrotis macrotis Update master to 69434c9 a8382a2
@macrotis macrotis Clean up additions to struct.c to match MacRuby coding guidelines 0625753
Commits on May 25, 2012
@macrotis macrotis Use plblockimp to provide imp_implementationWithBlock() for OS X 10.6…
… compatiblility
@macrotis macrotis Clean up files auto-generated for plblockimp trampolines in rake clean 78a1270
@macrotis macrotis Move plblockimp license information to LEGAL 3043e29
Commits on May 26, 2012
@macrotis macrotis Pass block environments to pl_imp_implementationWithBlock() directly …
…instead of copying to heap
Commits on May 28, 2012
@Watson1978 Watson1978 update rdoc's test to v3.5.3 a0f7c50
Commits on May 30, 2012
@macrotis macrotis Follow MacRuby style guidelines with stack-passing blocks in struct.c 3c06b54
Commits on May 31, 2012
@ferrous26 ferrous26 Make macri parse all relevant source files (GH-85)

This fix causes the Pointer class to show up in macri. However, it shows up without methods,
so more investigation is still required into what is missing.
@ferrous26 ferrous26 Bump version to 0.13
Given the likelihood (and timing) of needing a release for Mountain Lion,
I do not think we should jump to 1.0 just yet. @lrz can have the honour of
bumping the version to 1.0.
honour of @lrz to perform.
@ferrous26 ferrous26 Merge pull request #91 from macrotis/struct-use-block-attr-accessors
Use blocks for attribute accessors in Struct to facilitate proper aliasing behavior
Commits on Jun 04, 2012
@Watson1978 Watson1978 update copyright in BSDL b096375
@Watson1978 Watson1978 update link to issue tracker, and update path to sample directory b06ac56
Commits on Jun 05, 2012
@Watson1978 Watson1978 fix the buffer allocation in zstream_expand_buffer_into() since rb_bs…
…tr_new() does not allocate buffer to store the binary strings
Commits on Jun 07, 2012
@Watson1978 Watson1978 improve the performance of String#length with multi-byte character st…

* before
                user     system      total        real
ascii       0.000000   0.000000   0.000000 (  0.002556)
utf8        2.340000   0.000000   2.340000 (  2.344955)
utf8 (dup)  3.580000   0.640000   4.220000 (  3.584336)

* after
                user     system      total        real
ascii       0.000000   0.000000   0.000000 (  0.002540)
utf8        0.010000   0.000000   0.010000 (  0.003444)
utf8 (dup)  0.600000   0.780000   1.380000 (  1.324915)

Test Script
# -*- coding: utf-8 -*-
require 'benchmark'

str_ascii = "abcdefghij" * 100000
str_utf8 = "あいうえお" * 100000 do |x| "ascii" do
    1000.times do
  end "utf8" do
    1000.times do
  end "utf8 (dup)" do
    1000.times do

@Watson1978 Watson1978 use sel_getName() to retrive selector name ff86331
@ferrous26 ferrous26 Do not futz with framework versions during deployment [GH-101]
We are receiving reports that apps are being rejected from the app store
now because of the file organization of MacRuby.framework when embedded
into applications.

Simply retaining the original version number and referring to the
Current symlink may fix things, but if it doesn't then we'll have a lot
more work to do...
Commits on Jun 09, 2012
@ferrous26 ferrous26 Add an install task that does not install Xcode support bd66999
Commits on Jun 11, 2012
@Watson1978 Watson1978 need to allocate buffer area in zstream_expand_buffer_into() even if …
…size is less than or equal to 0
Commits on Jun 12, 2012
@Watson1978 Watson1978 remove the object from recursive_objects in RoxorVM::exec_recursive()…
… even if called function raises an exception
Commits on Jun 13, 2012
@Watson1978 Watson1978 implement rb_exec_recursive_outer() 4c6e0e1
@Watson1978 Watson1978 fix the Array#hash since its method had returned just size of array 2f8fefa
@Watson1978 Watson1978 use rb_exec_recursive_outer() instead of rb_exec_recursive() to retri…
…eve the hash value
Commits on Jun 14, 2012
@Watson1978 Watson1978 updates mspec to 1852dc783135155ce36298d50d8b18cf95a02668 7148357
@Watson1978 Watson1978 update rubyspec to 79484fbb65f9d1d225825aab85507b2ae0832caa ab260e8
@Watson1978 Watson1978 add the rubyspec's tags bb12bf0
@Watson1978 Watson1978 update the rubyspec's tags a4a8cbb
Commits on Jun 16, 2012
@Watson1978 Watson1978 update MacRuby's older Time class with CRuby 1.9.2 3d2eb7c
@Watson1978 Watson1978 update the rubyspec's tags efb8c27
@Watson1978 Watson1978 Time#hash returns the Fixnum value db03506
Commits on Jun 19, 2012
@Watson1978 Watson1978 fix the struct declarations 548a941
@Watson1978 Watson1978 add GDB trick 2dbde57
Commits on Jun 20, 2012
@Watson1978 Watson1978 [fix #104] update open3 library with CRuby 1.9 2ad819e
@Watson1978 Watson1978 update MacRuby's old process.c with CRuby 1.9.2 a9070e0
@Watson1978 Watson1978 set sync mode to write_io which is created by IO.pipe 077288b
@Watson1978 Watson1978 implement rb_close_before_exec() 6e11241
Commits on Jun 21, 2012
@Watson1978 Watson1978 update unit-test skips 58f237c
@Watson1978 Watson1978 implement Env#select! 2839b68
@Watson1978 Watson1978 implement Env#keep_if b76ccff
@Watson1978 Watson1978 ENV#[]= raises an exception if the key contains the '=' like a 'foo=' 9ce4823
Commits on Jun 22, 2012
@Watson1978 Watson1978 Complex#/ does not raise an exception when passed Float 0.0 78a3bce
@Watson1978 Watson1978 nucomp_rationalize() need a SEL argument 25480ea
@Watson1978 Watson1978 Object#instance_eval yields a reciver object to the block 1274d86
@Watson1978 Watson1978 Symbol class does not have #to_r method 1d655ab
@Watson1978 Watson1978 Symbol#clone raises a TypeError 3a8540a
@Watson1978 Watson1978 Symbol#dup raises a TypeError 3146804
Commits on Jun 23, 2012
@Watson1978 Watson1978 add a skip in where huge result is generated by failed test 2cc16aa
@Watson1978 Watson1978 implement Symbol#match 64299cd
@Watson1978 Watson1978 implement Symbol#succ c9e48eb
@Watson1978 Watson1978 Revert "Shoud use nsec in substitution for subsec. Merged with Ruby 1…
….9." Because, now MacRuby has Time#subsec method

This reverts commit 3a63f4b.
Commits on Jun 24, 2012
@Watson1978 Watson1978 raise a RuntimeError if the method is undefined by `undef' with froze…
…n class
@Watson1978 Watson1978 raise a RuntimeError if the method is defined by `def' with frozen class 43448df
@Watson1978 Watson1978 raise a RuntimeError if the method is defined by `define_method' with…
… frozen class
Commits on Jun 25, 2012
@Watson1978 Watson1978 simplify exception handling in RoxorVM::exec_recursive() 320def3
@Watson1978 Watson1978 pass a block into method which is called by rb_vm_call_super(). becau…
…se if invoke the rb_block_given_p() on its method, rb_block_given_p() can't run correctly
Commits on Jun 26, 2012
@Watson1978 Watson1978 converts the mode argument with #to_str in IO.popen c32d867
@Watson1978 Watson1978 converts the mode argument with #to_str in c1cc109
@Watson1978 Watson1978 `catch' accepts one or no argument 960fa9b
Commits on Jul 01, 2012
@Watson1978 Watson1978 should not search the private methods with rb_obj_respond_to() fa3b9df
@lrz lrz [fix #114] NSArray#reject returns the new array, not the receiver 9f33c58
Commits on Jul 02, 2012
@Watson1978 Watson1978 [fix #115] use rb_ary_dup() instead of rary_dup(), because rary_dup()…
… does not handle the NSArray object.
@Watson1978 Watson1978 [fix #116] fix the loop condition in NSArray#rindex. because loop cou…
…nter became to negative value, and `[rcv objectAtIndex:i];' raise an exception
@Watson1978 Watson1978 [fix #117] fix the NSArray#values_at when passed the Fixnum value a6148e0
@Watson1978 Watson1978 add the implementation of NSArray#sort_by! 25b095b
@Watson1978 Watson1978 [fix #118] convert from NSString to RubyString. because rb_enc_str_bu…
…f_cat() need the RubyString
@Watson1978 Watson1978 fix the NSArray#sort_by!. remove the OC2RB() which causes crash b53bcfe
@Watson1978 Watson1978 [fix #119] insert kCFNull instead of nil into result of array. 8e2d233
Commits on Jul 03, 2012
@Watson1978 Watson1978 add NSArray/NSDictionary/NSString tests 0767d10
@Watson1978 Watson1978 add the implementation of NSArray#select! a331747
@Watson1978 Watson1978 add the implementation of NSArray#keep_if 12b6f4a
@Watson1978 Watson1978 StringValueCStr() raises an exception if passed a string which contai…
…ns null byte
@Watson1978 Watson1978 add the block support with NSArray#uniq 30d0432
Commits on Jul 04, 2012
@Watson1978 Watson1978 move the implementation about #roatation from Array to NSArray, in or…
…der to use its methods with Array/NSArray
@Watson1978 Watson1978 check an NSArray object whether is mutable 76f061c
Commits on Jul 05, 2012
@Watson1978 Watson1978 add the skip into test_nsarray.rb cae1c30
@Watson1978 Watson1978 move PRI_TIMET_PREFIX definition into ruby.h 3405fc0
@Watson1978 Watson1978 NSArray#delete_if should not return a nil when does not change the re…
…ceiver object
@Watson1978 Watson1978 [fix #122] receiver object may be changed within NSArray#each block 4ea6d4b
@Watson1978 Watson1978 receiver object may be changed within NSArray#each_index block b9f969e
@Watson1978 Watson1978 [fix #123] receiver object may be changed within NSArray#rindex block 98e30aa
@Watson1978 Watson1978 receiver object may be changed within NSArray#select block d0d0cc6
@Watson1978 Watson1978 receiver object may be changed within NSArray#select! block 345184f
@Watson1978 Watson1978 NSArray size may increase d058510
@Watson1978 Watson1978 refactor 50e13ea
@Watson1978 Watson1978 fix the condition, because causes infinity loop aabbd1e
@Watson1978 Watson1978 add the NSArray tests about #122 and #123 1a4629b
@Watson1978 Watson1978 revert the condition in nsary_reverse_each() and nsary_rindex() 2c1b87d
@Watson1978 Watson1978 [fix #124] get rid of uncatchable Objective-C exception, when modify …
…receiver object in iterator block
Commits on Jul 06, 2012
@Watson1978 Watson1978 get rid of uncatchable Objective-C exception in NSDictionary#{delete_…
…if, select} which related to #124
@Watson1978 Watson1978 remove the skips in test_nsdictionary.rb 234c361
@Watson1978 Watson1978 add the implementation of NSDictionary#keep_if 13d23d3
@Watson1978 Watson1978 add the implementation of NSDictionary#select! e50c757
Commits on Jul 08, 2012
@Watson1978 Watson1978 [fix #126] does not call Pointer#to_object with the object which is c…
…reated by
Commits on Jul 09, 2012
@Watson1978 Watson1978 [fix #127] check whether passed queue is main queue.
can't check with CLASS_OF() because changed the class information of main queue by adding a method "run" to main queue
@Watson1978 Watson1978 add the spec for Dispatch::Source.timer which is related to #127 235d662
Commits on Jul 11, 2012
@Watson1978 Watson1978 use name_err_initialize() because raises an excepti…
…on if passed more than 3 arguments
@Watson1978 Watson1978 should invoke va_end() before raising an execption. aff4435
@Watson1978 Watson1978 add the implementation of Etc::Passwd#each and Etc::Group#each 7da3aa4
@Watson1978 Watson1978 fixed ASN1::Boolean encoding issue for OpenSSL 1.0.0 compatibility wrongly generated "\1\1\377" which means 'true'.

ASN1_TYPE_set of OpenSSL <= 0.9.8 treats value 0x100 as 'false' but OpenSSL >= 1.0.0 treats it as 'true'.  ruby-ossl was using 0x100 for 'false' for backward compatibility.  Just use 0x0 forthe case OpenSSL >= OpenSSL 0.9.7.
@Watson1978 Watson1978 id_aref's type is ID f61faf5
@Watson1978 Watson1978 function check of SSLv2 is executed e0250bd
@Watson1978 Watson1978 add to support for OpenSSL 1.0.0 b21b899
@Watson1978 Watson1978 fix compile error when !HAVE_X509V3_SET_NCONF b4fe1a5
@aspitz aspitz Updated ruby_deploy to make use of Gem::Specification instead of Gem.…
@Watson1978 Watson1978 Merge pull request #128 from aspitz/master
Pull request - Updated ruby_deploy
Commits on Jul 12, 2012
@Watson1978 Watson1978 rename the architecture name to i386 from invalid X86_32 3ee0698
@Watson1978 Watson1978 need write barrier for timew because it might be Bignum object 05b2ebd
Commits on Jul 13, 2012
@Watson1978 Watson1978 need write barrier for Rational's numerator/denominator in Rational#m…
Commits on Jul 15, 2012
@Watson1978 Watson1978 should check the argument a2f9d49
Commits on Jul 16, 2012
@Watson1978 Watson1978 remove the unused definition 26b5861
@Watson1978 Watson1978 suppress warning of null-conversion 2e93f6d
@Watson1978 Watson1978 suppress warning of loop empty body 9fab2ee
Commits on Jul 17, 2012
@Watson1978 Watson1978 ignore warning of return-type-c-linkage in ICU header for clang fe61733
Commits on Jul 18, 2012
@Watson1978 Watson1978 use RARRAY_LENINT() to pass the value into int type arguments f657737
@Watson1978 Watson1978 use RARRAY_LENINT() to pass the value into int type or similar width …
@Watson1978 Watson1978 NameError::message#_dump will be passed an argument by Marshal.dump 7a854cb
@Watson1978 Watson1978 Array#{rotate, rotate!} raises a TypeError if not passed an integer a…
Commits on Jul 19, 2012
@Watson1978 Watson1978 pass an argument when call the #divmod method in time_timespec() 860cb40
@Watson1978 Watson1978 add rb_vm_check_call() and use its function to check/call the method eefae4a
Commits on Jul 20, 2012
@Watson1978 Watson1978 add the skip into test_exception.rb 7fb7e14
@Watson1978 Watson1978 IO#printf returns always nil 1eb0e21
@Watson1978 Watson1978 [fix #132] rb_str_xcopy_uchars() should check whether passed object i…
…s string