| Age | Commit message (Collapse) | Author |
|
I sometimes see Bison related problems in setting up build environments.
Therefore to remove Bison from build time dependencies, add `y.tab.c`
generated by Bison to the repository.
The reduction of dependency at build time also reduces the labor and time
for setup and installation in CI.
In addition, a path in `#line` directive is converted to a relative path so
that its path is constant regardless of development environments.
|
|
`Windows-MinGW` and `Windows-VC` also requires updates.
|
|
|
|
Do not destruct rest arguments for __send__
|
|
Formerly, `__send__(*args)` modified `args` with `Array#shift`.
This bug affects optcarrot.
This changeset avoids the array destruction by using
`args = args[1, len-1]`.
|
|
Retry `rake -m` on AppVeyor [skip travis]
|
|
The following error occurs when using `rake -m` on AppVeyor:
```
fatal error C1041: cannot open program database 'C:\projects\mruby\vc140.pdb'; if multiple CL.EXE write to the same .PDB file, please use /FS
```
Therefore, the issue is solved by not creating the PDB file. It is expected
to be somewhat faster by not generating debugging information (I don't think
debugging information is necessary for normal CI).
|
|
This reverts commit ac68c90800e5fab3ab4e00a3086101b3cbf1c379.
`rake -m` does not work for VisualC.
|
|
|
|
Adding warnings for mrb_load functions leaking RProc objects
|
|
|
|
shuujii/unify-eql-receiver-in-Hash-according-to-Ruby
Unify `eql?` receiver in `Hash` according to Ruby
|
|
### Example
```ruby
# example.rb
class A
def eql?(o)
p self.class
super
end
def hash
1
end
end
class B < A; end
h = {A.new => 1}
h[B.new]
```
#### Before this patch:
```console
$ bin/mruby example.rb
A
```
#### After this patch (same as Ruby)
```console
$ bin/mruby example.rb
B
```
|
|
|
|
|
|
Instead we added `%define parse.error verbose`.
|
|
The newer `clang` warns implicit float conversions.
|
|
Get an irep symbol if it's `OP_GETSV` or `OP_SETSV`
|
|
Update `doc/opcode.md` [ci skip]
|
|
The difference of `include/mruby/ops.h` is applied.
- OP_NOP - update semantics
- OP_GETSV - update semantics
- OP_SETSV - update semantics
- OP_GETUPVAR - update prefix
- OP_SETUPVAR - update prefix
- OP_JMPIF - update operands and semantics
- OP_JMPNOT - update operands and semantics
- OP_JMPNIL - add entry
- OP_ONERR - update semantics
- OP_POPERR - update prefix
- OP_EPOP - update prefix
- OP_SENDB - update semantics
- OP_ADD - update prefix and operands
- OP_ADDI - update operands and semantics
- OP_SUB - update prefix and operands
- OP_SUBI - update semantics
- OP_MUL - update prefix and operands
- OP_DIV - update prefix and operands
- OP_EQ - update prefix and operands
- OP_LT - update prefix and operands
- OP_LE - update prefix and operands
- OP_GT - update prefix and operands
- OP_GE - update prefix and operands
- OP_ARYDUP - add entry
- OP_INTERN - add entry
- OP_HASHCAT - add entry
- OP_ERR - update semantics
|
|
|
|
Remove byteorder constants; ref 87576b8
|
|
Fix boundary check for `OP_LOADI16`; ref fa8668c
|
|
The `FLAG_BYTEORDER_NATIVE` and `FLAG_BYTEORDER_NONATIVE` are no longer
needed.
|
|
It was making a negative integer if the highest-order bit of a 16-bit
integer was 1.
no patched:
```ruby
p 0x7fff # => 32767
p 0x8000 # => -32768
p 0xffff # => -1
p 0x10000 # => 65536
```
|
|
shuujii/fix-some-Hash-methods-are-inconsistent-with-values
Fix some `Hash` methods are inconsistent with `values`
|
|
Inconsistent when hash has duplicate key.
### Example
```ruby
# example.rb
keys = (1..3).map{[_1]}
h = keys.to_h{[_1, _1[0]]}
keys[0][0] = 2
p h.values
p h.each_value.to_a
p h
```
#### Before this patch:
```console
$ bin/mruby example.rb
[1, 2, 3]
[1, 1, 3]
{[2]=>1, [2]=>1, [3]=>3}
```
#### After this patch (same as Ruby)
```console
$ bin/mruby example.rb
[1, 2, 3]
[1, 2, 3]
{[2]=>1, [2]=>2, [3]=>3}
```
|
|
|
|
|
|
|
|
`cmpnum` function may return `nil` on error.
|
|
|
|
Since `mruby 2.0`, compiled bytecode no longer depends on the
endian of the machine.
|
|
You don't have to specify endian since `mruby 2.0`.
|
|
|
|
- Add `OP_LOADI16`
- Update keyword argument related ops (e.g. OP_KEY_P, etc.)
- Fix some wrong descriptions
|
|
Which loads 16bit integer to the register. The instruction number should
be reorder on massive instruction refactoring. The instruction is added
for `mruby/c` which had performance issue with `OP_EXT`. With this
instruction, `mruby/c` VM can just raise errors on `OP_EXT` extension
instructions.
|
|
|
|
`mrb_run` requires to push callinfo stack before calling, which is very
hard from outside of `vm.c`. So there should be virtually no correct
usage of the function, hence the cause of #4488. We removed it.
You can use `mrb_top_run(mrb, proc, self, 0)` instead of
`mrb_run(mrb, proc self)`.
|
|
|
|
|
|
Enable MRB_METHOD_T_STRUCT by default on 32bit GUN/Linux
|
|
Because we can't use the highest 2 bits of function pointers.
|
|
Avoid changing directory in `mruby-io` test
|
|
Refine `.travis.yml`
|
|
* Disable automatic update and clean up on `brew install` (install time
160 sec -> 5 sec).
* Avoid using deprecated keys.
|
|
Sorting the list of gems at build time by name
|
|
Avoid comparing pointers and integers
|
|
Makes `mrb_any_to_s()` accept an object whose class is `NULL`
|
|
|