summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
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
2020-04-29Avoid comparing pointers and integersdearblue
2020-04-29Makes `mrb_any_to_s()` accept an object whose class is `NULL`dearblue
When using `mrb_any_to_s()` for debugging purposes, giving an object whose class is `NULL` no longer causes a SIGSEGV and no crash. This is achieved by making `mrb_class_name()` and `mrb_str_cat_cstr()` null safe.
2020-04-29Sorting the list of gems at build time by namedearblue
Printing them in sorted order makes it easier to find the desired gem. But it has come to completely ignore the dependency.
2020-04-28Should not use `assert` with expressions with side-effect; ref #4981Yukihiro "Matz" Matsumoto
`assert()` can be completely removed when `NDEBUG` is set.
2020-04-28Fixed wrong condition in #4981.Yukihiro "Matz" Matsumoto
2020-04-28Add `#include <string.h>` on all platforms for `strncpy`; #4981Yukihiro "Matz" Matsumoto
2020-04-28Remove unused local variable if `MRB_UTF8_STRING` is not set.Yukihiro "Matz" Matsumoto
Ref #4982 #4983