summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
2020-05-11Make `off_t` handling simpler; #4872 #4939Yukihiro "Matz" Matsumoto
The newer `clang` warns implicit float conversions.
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-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-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
2020-04-28Avoid `snprintf` in `mruby-io` test; ref #4981Yukihiro "Matz" Matsumoto
2020-04-28Remove the temporary file from the `AF_UNIX` socket test; #4981Yukihiro "Matz" Matsumoto
2020-04-28Fix `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-04-28Fix `IO#readchar` to support UTF-8 char reading; fix #4712Yukihiro "Matz" Matsumoto
This fix only effective when `MRB_UTF8_STRING` is set.
2020-04-28Rename (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-04-28Fix `_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-04-28Fix `IO#sysread` to update buffer string on `EOF`; ref #4982Yukihiro "Matz" Matsumoto
2020-04-28Update `IO#ungetc` to keep `@buf` string; ref #4982Yukihiro "Matz" Matsumoto
2020-04-28Fix UTF-8 boundary check; ref #4982Yukihiro "Matz" Matsumoto