summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
2020-05-11Merge pull request #4998 from dearblue/special-varsYukihiro "Matz" Matsumoto
Get an irep symbol if it's `OP_GETSV` or `OP_SETSV`
2020-05-11Merge pull request #4999 from dearblue/opcode-docYukihiro "Matz" Matsumoto
Update `doc/opcode.md` [ci skip]
2020-05-10Update `doc/opcode.md` [ci skip]dearblue
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
2020-05-10Get an irep symbol if it's `OP_GETSV` or `OP_SETSV`dearblue
2020-05-09Merge pull request #4997 from dearblue/byteorderYukihiro "Matz" Matsumoto
Remove byteorder constants; ref 87576b8
2020-05-09Merge pull request #4996 from dearblue/loadi16Yukihiro "Matz" Matsumoto
Fix boundary check for `OP_LOADI16`; ref fa8668c
2020-05-09Remove byteorder constants; ref 87576b8dearblue
The `FLAG_BYTEORDER_NATIVE` and `FLAG_BYTEORDER_NONATIVE` are no longer needed.
2020-05-09Fix boundary check for `OP_LOADI16`; ref fa8668cdearblue
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 ```
2020-05-09Merge pull request #4995 from ↵Yukihiro "Matz" Matsumoto
shuujii/fix-some-Hash-methods-are-inconsistent-with-values Fix some `Hash` methods are inconsistent with `values`
2020-05-09Fix some `Hash` methods are inconsistent with `values`KOBAYASHI Shuji
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} ```
2020-05-07Update `doc/opcode.md` for operand signs. [ci skip]Yukihiro "Matz" Matsumoto
2020-05-07Remove unnecessary `sprintf` test that fails since 91368c1.Yukihiro "Matz" Matsumoto
2020-05-07Update `README.md` to address old `bison` problem on macOS.Yukihiro "Matz" Matsumoto
2020-05-07Should not use `assert` with expressions with side-effect; ref #49812.1.1-rc2Yukihiro "Matz" Matsumoto
`assert()` can be completely removed when `NDEBUG` is set.
2020-05-07Fixed wrong condition in #4981.Yukihiro "Matz" Matsumoto
2020-05-07Add `#include <string.h>` on all platforms for `strncpy`; #4981Yukihiro "Matz" Matsumoto
2020-05-07Remove unused local variable if `MRB_UTF8_STRING` is not set.Yukihiro "Matz" Matsumoto
Ref #4982 #4983
2020-05-07Avoid `snprintf` in `mruby-io` test; ref #4981Yukihiro "Matz" Matsumoto
2020-05-07Remove the temporary file from the `AF_UNIX` socket test; #4981Yukihiro "Matz" Matsumoto
2020-05-07Fix `IO#readchar` to return broken UTF-8 rather than `EOF` error.Yukihiro "Matz" Matsumoto
The behavior is different from CRuby, but we believe this is a right behavior for mruby, which only supports either ASCII or UTF-8 exclusively; fix #4983, ref #4982 ``` $ printf '\xe3\x81' | ruby -e 'p STDIN.readchar' "\xE3\x81" ``` ``` $ printf '\xe3\x81' | mruby -e 'p STDIN.readchar' "\xE3" ```
2020-05-07Fix `IO#readchar` to support UTF-8 char reading; fix #4712Yukihiro "Matz" Matsumoto
This fix only effective when `MRB_UTF8_STRING` is set.
2020-05-07Rename (and expose) UTF-8 related functions; ref #4712Yukihiro "Matz" Matsumoto
- mrb_utf8len() - returns the size of a UTF-8 char (in bytes) - mrb_utf8_strlen() - returns the length of a UTF-8 string (in char)
2020-05-07Update `cmpnum` document.Yukihiro "Matz" Matsumoto
`cmpnum` function may return `nil` on error.
2020-05-07Avoid `mrb_funcall` if `MRB_UFT8_STRING` is not set.Yukihiro "Matz" Matsumoto
2020-05-07Remove endian information/flags from compiled binary format.Yukihiro "Matz" Matsumoto
Since `mruby 2.0`, compiled bytecode no longer depends on the endian of the machine.
2020-05-07Remove `-e/-E` options from `mrbc`.Yukihiro "Matz" Matsumoto
You don't have to specify endian since `mruby 2.0`.
2020-05-07Update compiled binary format version for `OP_LOADI16`.Yukihiro "Matz" Matsumoto
2020-05-07Update `doc/opcode.md` to reflect the latest bytecode.Yukihiro "Matz" Matsumoto
- Add `OP_LOADI16` - Update keyword argument related ops (e.g. OP_KEY_P, etc.) - Fix some wrong descriptions
2020-05-07Add a new instruction `OP_LOADI16`.Yukihiro "Matz" Matsumoto
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.
2020-05-07Fix wrong line number before comment line; fix #4993Yukihiro "Matz" Matsumoto
2020-05-07Remove `mrb_run` from `MRB_API`; #4488Yukihiro "Matz" Matsumoto
`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)`.
2020-05-07Add assertion as originally intended; ref #4986Yukihiro "Matz" Matsumoto
2020-05-07Update `doc/guides/compile.md` to note the `bison` failure on Mac.Yukihiro "Matz" Matsumoto
2020-05-05Merge pull request #4990 from komainu8/enable-method-t-struct-on-32bit-linuxYukihiro "Matz" Matsumoto
Enable MRB_METHOD_T_STRUCT by default on 32bit GUN/Linux
2020-05-04Enable MRB_METHOD_T_STRUCT by default on 32bit GUN/LinuxHorimoto Yasuhiro
Because we can't use the highest 2 bits of function pointers.
2020-05-01Fix `_read_buf` to be more efficient; fix #4982Yukihiro "Matz" Matsumoto
The bug was introduced by #4712. The `getc' problem resurrected. It should be addressed soon.
2020-05-01Fix `IO#sysread` to update buffer string on `EOF`; ref #4982Yukihiro "Matz" Matsumoto
2020-05-01Update `IO#ungetc` to keep `@buf` string; ref #4982Yukihiro "Matz" Matsumoto
2020-05-01Fix UTF-8 boundary check; ref #4982Yukihiro "Matz" Matsumoto
2020-05-01Fix typo and include locationUchio Kondo
2020-05-01Skip socket check on windowsUchio Kondo
2020-05-01Follow C90 styleUchio Kondo
2020-05-01Test mruby-io in tmpdir when AF_UNIX cannot be created on cwdUchio Kondo
2020-04-30Merge pull request #4987 from shuujii/avoid-changing-directory-in-mruby-io-testYukihiro "Matz" Matsumoto
Avoid changing directory in `mruby-io` test
2020-04-30Merge pull request #4988 from shuujii/refine-.travis.ymlYukihiro "Matz" Matsumoto
Refine `.travis.yml`
2020-04-30Refine `.travis.yml`KOBAYASHI Shuji
* Disable automatic update and clean up on `brew install` (install time 160 sec -> 5 sec). * Avoid using deprecated keys.
2020-04-30Merge pull request #4984 from dearblue/break-to_sYukihiro "Matz" Matsumoto
Sorting the list of gems at build time by name
2020-04-29Merge pull request #4986 from dearblue/assert-ioYukihiro "Matz" Matsumoto
Avoid comparing pointers and integers
2020-04-29Merge pull request #4985 from dearblue/print-gemsYukihiro "Matz" Matsumoto
Makes `mrb_any_to_s()` accept an object whose class is `NULL`
2020-04-29Avoid changing directory in `mruby-io` testKOBAYASHI Shuji