summaryrefslogtreecommitdiffhomepage
path: root/include
AgeCommit message (Collapse)Author
2018-08-01Remove `nregs` member from `mrb_callinfo`.Yukihiro "Matz" Matsumoto
This means reducing one word per a call frame.
2018-07-31Reorganize flags values for classes; fix #3975Yukihiro "Matz" Matsumoto
Renamed flag macro names as well: `MRB_FLAG_IS_FROZEN` -> `MRB_FL_OBJ_FROZEN` `MRB_FLAG_IS_PREPENDED` -> `MRB_FL_CLASS_IS_PREPENDED` `MRB_FLAG_IS_ORIGIN` -> `MRB_FL_CLASS_IS_ORIGIN` `MRB_FLAG_IS_INHERITED` -> `MRB_FL_CLASS_IS_INHERITED`
2018-07-11move declaration of mrb_irep_remove_lv from dump.h to irep.hyuri
2018-07-10add mrbc option `--remove-lv`yuri
* refactor: move `irep_remove_lv` from `mruby-bin-strip` gem to src/dump and rename to `mrb_irep_remove_lv` * add: mrbc option `--remove-lv` to remove LVAR section
2018-06-20Export mrb_utf8_from_locale() and mrb_locale_from_utf8()Kouhei Sutou
2018-06-07Export `stack_extend` function (renamed `mrb_stack_extend`); fix #3219Yukihiro "Matz" Matsumoto
This change is required to support #4038.
2018-04-28Update `OP_APOST` description; ref #4008Yukihiro "Matz" Matsumoto
2018-04-27Set the mruby-1.4.1 release date to `2018-4-27`.1.4.1Hiroshi Mimaki
2018-04-10Fix build error on Windows with MRB_BUILD_AS_DLLKouhei Sutou
Error message: C:\projects\groonga\vendor\mruby-source\include\mruby.h(1098): error C2375: 'mrb_gc_arena_save' : redefinition; different linkage [C:\projects\groonga\vendor\mruby\mruby.vcxproj] C:\projects\groonga\vendor\mruby-source\include\mruby.h(1083) : see declaration of 'mrb_gc_arena_save' C:\projects\groonga\vendor\mruby-source\include\mruby.h(1099): error C2375: 'mrb_gc_arena_restore' : redefinition; different linkage [C:\projects\groonga\vendor\mruby\mruby.vcxproj] C:\projects\groonga\vendor\mruby-source\include\mruby.h(1084) : see declaration of 'mrb_gc_arena_restore'
2018-03-16Update `mrb_get_args` reference comment; ref #3963Yukihiro "Matz" Matsumoto
2018-03-04fix && to &! in mrb_get_args()dearblue
2018-03-04add forced block arguments feature to mrb_get_argsdearblue
2018-03-02Add `mrb_fiber_alive_p` to C API.Yukihiro "Matz" Matsumoto
2018-01-25Do not use `MRB_METHOD_TABLE_INLINE` by default; fix #3924Yukihiro "Matz" Matsumoto
It was default on Linux. Abandoned for 2 reasons: * some cross-platform compiler defines `__linux__` even on bare metal environment (RTL8196 (MIPS big endian soc) for example). * some compilers do not align functions pointers so that we need to specify `-falign-functions=n` (where n>1). It's not suitable for default configuration. By our measurement, `mrbtest` consumes 400KB less memory. So if your target machine is memory tight, add the following command-line options to `GCC` (unfortunately `clang` does not support `-falign-functions`). `-falign-functions=2 -DMRB_METHOD_TABLE_INLINE`
2018-01-25Use LSB not MSB for `MRB_METHOD_TABLE_INLINE`; ref #3924Yukihiro "Matz" Matsumoto
2018-01-16Set the mruby-1.4.0 release date to `2018-1-16`.1.4.0Hiroshi Mimaki
2017-12-12Merge pull request #3882 from mattn/fix-filenameYukihiro "Matz" Matsumoto
use filename in locale
2017-12-12fix compilation errorYasuhiro Matsumoto
2017-12-12Modifying frozen objects will raise `FrozenError`.Yukihiro "Matz" Matsumoto
`FrozenError` is a subclass of `RuntimeError` which used to be raised. [Ruby2.5]
2017-12-06`mrb_method_search_vm()` should gives the defined class.Yukihiro "Matz" Matsumoto
Otherwise `super` may call a wrong method.
2017-12-05Revise MRB_METHOD_PROC macro's argumentbamchoh
I revised MRB_METHOD_PROC macro's argument fn to m.
2017-11-20Reduce the size of `struct RBreak` to reduce memory usage.Yukihiro "Matz" Matsumoto
The old size of `struct RBreak` was 56 bytes (`MRB_NO_BOXING`) and it's bigger than other object structures. That increase the size of `RVALUE` thus increase the total amount of memory consumption.
2017-11-20Add `MRB_METHOD_TABLE_INLINE` option.Yukihiro "Matz" Matsumoto
Now the method tables (in classes/modules and caches) keeps C function pointers without wrapping in `struct RProc` objects. For the sake of portability, `mrb_method_t` is represented by the struct and union, but if the most significant bit of the pointer is not used by the platform, `mrb_method_t` should be packed in `uintptr_t` to reduce memory usage. `MRB_METHOD_TABLE_INLINE` is turned on by default for linux.
2017-11-20Add `MRB_METHOD_CACHE` description to `include/mrbconf.h`Yukihiro "Matz" Matsumoto
2017-11-04Removed redundant function prototype.Yukihiro "Matz" Matsumoto
2017-11-04Merge branch 'master' of github.com:mruby/mrubyYAMAMOTO Masaya
2017-11-03Should not use `FSHARED` state for string from `irep` pools; fix #3829Yukihiro "Matz" Matsumoto
This strings in `irep` pools may be freed forcefully in `mrb_irep_free`. This commit probably fixes #3817 as well.
2017-10-31Need to mark fibers referenced from `env`; fix #3837Yukihiro "Matz" Matsumoto
The issue #3837 is a regression of #3819. I was mistakenly removed a important code to mark fibers from `env`.
2017-10-28Add parentheses to pacify a warning.Yukihiro "Matz" Matsumoto
2017-10-28Heavily refactored how lexical scope links are implemented; fix #3821Yukihiro "Matz" Matsumoto
Instead of `irep` links, we added a `upper` link to `struct RProc`. To make a space for the `upper` link, we moved `target_class` reference. If a `Proc` does not have `env`, `target_class` is saved in an `union` shared with `env` (if a `Proc` has env, you can tell it by `MRB_PROC_ENV_P()). Otherwise `target_class` is referenced from `env->c`. We removed links in `env` as well. This change removes 2 members from `mrb_irep` struct, thus saving 2 words per method/proc/block. This also fixes potential memory leaks due to the circular references caused by a link from `mrb_irep`.
2017-10-28remove `inline` from replacement `memcpy`&`memset`Yukihiro "Matz" Matsumoto
2017-10-28Remove MRB_API from `mrb_env_unshare()`Yukihiro "Matz" Matsumoto
2017-10-17Remove `mrb_vm_get_argc`; ref #3826Yukihiro "Matz" Matsumoto
2017-10-11Fix typoYAMAMOTO Masaya
2017-10-11Add MRB_WITHOUT_FLOATYAMAMOTO Masaya
2017-10-10correctly handle *splat arguments in mrb_get_argc, also add mrb_vm_get_argc ↵Tomasz Dąbrowski
and mrb_get_argv Fixes #3825
2017-10-01Add new type of shared string: `RSTR_FSHARED`.Yukihiro "Matz" Matsumoto
`RSTR_FSHARED` use frozen strings as shared body instead of `struct mrb_shared_string`. This reduces allocation from literal strings.
2017-09-29Cut links from `irep` in heaps finalization.Yukihiro "Matz" Matsumoto
2017-09-27fix: src\vm.c(438): warning C4244: '=': conversion from 'mrb_int' to 'int', ↵Tomasz Dąbrowski
possible loss of data
2017-09-27fix: src\numeric.c(1215): warning C4244: 'function': conversion from ↵Tomasz Dąbrowski
'mrb_int' to 'int', possible loss of data
2017-09-27fix: src\kernel.c(874): warning C4244: 'function': conversion from 'mrb_int' ↵Tomasz Dąbrowski
to 'int', possible loss of data
2017-09-27fix: src\hash.c(27): warning C4244: '=': conversion from 'mrb_int' to ↵Tomasz Dąbrowski
'khint_t', possible loss of data
2017-09-27fix: src\array.c(86): warning C4244: '=': conversion from 'mrb_int' to ↵Tomasz Dąbrowski
'uint32_t', possible loss of data
2017-09-27fix: mrbgems\mruby-kernel-ext\src\kernel.c(114): warning C4244: 'function': ↵Tomasz Dąbrowski
conversion from 'mrb_int' to 'int', possible loss of data
2017-09-27fix: include\mruby/gc.h(43): warning C4200: nonstandard extension used: ↵Tomasz Dąbrowski
zero-sized array in struct/union
2017-09-04Restructure `irep->outer` chain; fix #3804Yukihiro "Matz" Matsumoto
Instead of `irep -> proc` chain, we use `irep -> irep` chain to avoid GC bugs like #3804. We added `target_class` reference to `mrb_irep` struct. That means one more word consumption per `irep`.
2017-09-01Make the default integer size to be `MRB_INT64` on 64bit systems; close #3800Yukihiro "Matz" Matsumoto
Unless `MRB_NAN_BOXING` is specified.
2017-08-28Remove integer type mismatch warnings from parse.y.Yukihiro "Matz" Matsumoto
2017-08-26fix mrbgems/mruby-range-ext/src/range.c:142:71: error: use of undeclared ↵Tomasz Dąbrowski
identifier 'FLT_EPSILON'
2017-08-26Remove unused `mrb_obj_iv_ifnone()` from API.Yukihiro "Matz" Matsumoto