Commits on Nov 19, 2012
  1. @dbussink
  2. @dbussink
  3. @dbussink

    Style improvements for VM code

    In general we prefer using C++ style casts over C ones. Also we don't
    need to cast if we already have the correct type. In a few cases we
    should use our proper as<> template for casting.
    
    In the tooling interface we also have methods for casting, so we should
    use them and not do it manually.
    
    Another thing is to make sure we initialize all properties in
    constructors.
    
    Lastly we use variable array allocation where we can instead of using
    alloca() manually. This creates much simpler and easier to understand
    code.
    dbussink committed Nov 19, 2012
  4. @dbussink

    Fix invalid memory writing in String

    We were writing outside the string space in rare cases. The problem is
    that when the original string had a capacity of 0 and the appended
    string also has size 0. This results in a new minimal capacity of 0.
    
    This means the string didn't need to be resized, but we still write a \0
    byte at the end. This means we overwrite memory of the next object in
    memory, causing corruption.
    
    This change makes sure we always increase the capacity when needed.
    
    Fixes #2030
    dbussink committed Nov 19, 2012
  5. @jc00ke

    Merge pull request #2033 from frodsan/fix_socket_new_19

    Fix Socket#new on X19.
    jc00ke committed Nov 18, 2012
  6. Add specs for Socket#new on X18

    Francesco Rodriguez committed Nov 18, 2012
  7. Fix Socket#new on X18

    This fixes the following behaviour:
    
        require 'socket'
    
        # rbx -X18
        >> Socket.new(Socket::PF_UNIX, 'SOCK_DGRAM', 0)
        TypeError: converting to int
    
        >> Socket.new(Socket::PF_UNIX, :DGRAM, 0)
        TypeError: Tried to use non-reference value 0xf266 as type Bignum (10)
    
        # ruby1.8
    
        >> Socket.new(Socket::PF_UNIX, 'SOCK_DGRAM', 0)
        => #<Socket:0x106117798>
    
        >> Socket.new(Socket::PF_UNIX, :DGRAM, 0)
        Errno::EPROTONOSUPPORT: Protocol not supported - socket(2)
    Francesco Rodriguez committed Nov 18, 2012
  8. Add specs for Socket#new on X19

    Francesco Rodriguez committed Nov 18, 2012
  9. Fix Socket#new on X19.

    Socket#new `socket_type` argument can accept a symbol
    or string that references to a `Socket::SOCK_*`
    constant.
    
        require 'socket'
    
        # Before:
    
        >> Socket.new(Socket::PF_UNIX, :DGRAM, 0)
        TypeError: Tried to use non-reference value 0x10256 as type Bignum (10)
    
        >> Socket.new(Socket::PF_UNIX, 'SOCK_DGRAM', 0)
        TypeError: converting to int
    
        # After:
    
        >> Socket.new(Socket::PF_UNIX, :DGRAM, 0)
        => #<Socket:fd 5>
    
        >> Socket.new(Socket::PF_UNIX, 'SOCK_DGRAM', 0)
        => #<Socket:fd 6>
    Francesco Rodriguez committed Nov 18, 2012
  10. @jc00ke

    Merge pull request #2031 from frodsan/add_tx18_option

    Add -tx18 and -tx20 options to bin/mspec
    jc00ke committed Nov 18, 2012
  11. Add -tx18, -tx19 and -tx20 options to the docs

    Francesco Rodriguez committed Nov 18, 2012
  12. Add -tx20 option to bin/mspec

    This allows to run the specs in 2.0 mode.
    Francesco Rodriguez committed Nov 18, 2012
  13. Add -tx18 option to bin/mspec

    This allows to run the specs in 1.8 mode if you are
    using 1.9 mode by default.
    Francesco Rodriguez committed Nov 18, 2012
Commits on Nov 18, 2012
  1. @dbussink

    Merge pull request #2027 from ikataitsev/master

    Removed duplicate NotImplementedError definition
    dbussink committed Nov 18, 2012
  2. @ikataitsev
Commits on Nov 17, 2012
  1. @dbussink

    Merge pull request #2014 from frodsan/fix_socket_constants

    Fix Socket#socketpair on X19.
    dbussink committed Nov 17, 2012
Commits on Nov 16, 2012
  1. Add spec for Socket#socketpair on X18

    Francesco Rodriguez committed Nov 16, 2012
  2. @dbussink

    Merge pull request #2021 from kachick/improve/modify_visibility_of_St…

    …ruct-_attrs
    
    Modify visibility of Struct#_attrs, "public" to "private"
    dbussink committed Nov 16, 2012
  3. @dbussink

    Merge pull request #2020 from kachick/improve/modify_some_coding_in_S…

    …truct
    
    Improve some code in Struct
    dbussink committed Nov 16, 2012
  4. @dbussink

    Merge pull request #2019 from kachick/fix/adjust_definition_places_of…

    …_some_methods_in_Kernel-common
    
    Adjust definition places of some methods in Kernel-common
    dbussink committed Nov 16, 2012
  5. @kachick

    Modify visibility of Struct#_attrs, "public" to "private"

    This is a private method.
    Because accessing inner data structures.
    kachick committed Nov 16, 2012
  6. @kachick

    Use Struct#_attrs in Struct#initialize

    For get consistency of coding in Struct.
    kachick committed Nov 16, 2012
  7. @kachick

    Improve Struct.#members

    * Adjust definition place of Struct.#members
    * Improve converting type for own version
    
    Before
    ------
    struct.rb: define
    struct18.rb: none
    struct19.rb: define
    
    After
    -----
    struct.rb: define
    struct18.rb: none
    struct19.rb: none
    
    Thanks for the pointing out.
    ----------------------------
    * kachick#3 (comment)
    * kachick@bbe2d55
    * kachick@4774b58
    kachick committed Nov 16, 2012
  8. @kachick
  9. @kachick

    Remove disused definition of ConstantScope#const_defined?

    Before
    ------
    constant_scope.rb: define
    constant_scope18.rb: define
    constant_scope19.rb: define
    
    After
    -----
    constant_scope.rb: none
    constant_scope18.rb: define
    constant_scope19.rb: define
    kachick committed Nov 16, 2012
  10. @kachick

    Adjust definition place of Enumerator#initialize

    Before
    -------
    enumerator.rb: define
    enumerator18.rb: none
    enumerator19.rb: define
    
    After
    -----
    enumerator.rb: none
    enumerator18.rb: define
    enumerator19.rb: define
    kachick committed Nov 16, 2012
  11. @dbussink

    Make inline policies configurable

    Fixes #1947
    dbussink committed Nov 16, 2012
Commits on Nov 15, 2012
  1. @dbussink

    Allow for jitting aliased methods

    We can simply use the original executable if we encounter an alias.
    dbussink committed Nov 15, 2012
  2. @dbussink

    Don't emit code for creating a block if not necessary

    When we inline blocks succesfully in the JIT, we don't need to emit code
    to create this block on the stack. This is only necessary when we either
    fail to inline, or when emitting the uncommon case in the jit.
    
    This implements a better version of the behavior removed in
    897570e because that was buggy. This
    implementation handles more cases and also doesn't suffer from the bug
    present in that implementation.
    dbussink committed Nov 15, 2012
  3. @dbussink

    Merge pull request #2017 from ryoqun/rational-complex-tags

    Remove old tags for Rational and Complex specs
    dbussink committed Nov 15, 2012
  4. @ryoqun

    Remove old tags for Rational and Complex specs

    The following commit moved some Rational and Complex specs. But didn't
    update spec tags. Just remove them bacause it's now passing:
      1779c73 Rational()/Complex() should be Kernel specs
    ryoqun committed Nov 10, 2012
Commits on Nov 14, 2012
  1. @dbussink

    Merge pull request #2008 from jmstacey/documentation_update_dev_build

    Document how to Build Rubinius for debugging purposes
    dbussink committed Nov 14, 2012
  2. @jmstacey
  3. @jc00ke