summaryrefslogtreecommitdiffhomepage
path: root/include
AgeCommit message (Collapse)Author
2019-05-18Rename `struct RIstruct` to `struct RIStruct`.Yukihiro "Matz" Matsumoto
2019-05-17(Proof of Concept) mruby tuning profiles [ci skip]dearblue
Not only mruby, it is one of the difficult things to adjust the performance vs. memory efficiency of the software. If the approximate target device is divided and the adjustment value for it is prepared by default, it is a good indicator to do fine adjustment. This PR divides into four profiles. ***Caution: There is no basis for the definitions in the patch.*** - `MRB_CONSTRAINED_BASELINE_PROFILE` - for microprocessors. Reduce memory consumption. - `MRB_BASELINE_PROFILE` - Default value of mruby. - `MRB_MAIN_PROFILE` - For desktop computers. Assume that a huge amount of RAM, 10 MiB or more, is on board. - `MRB_HIGH_PROFILE` - for servers. Assume that mruby VM has a long life. As you can see the profile name has been ~~stolen~~ imitated from H.264.
2019-05-17Make unused functions private.Yukihiro "Matz" Matsumoto
* mrb_fixnum_plus() * mrb_fixnum_minus() * mrb_fixnum_mul()
2019-05-17Remove unused `mrb_num_div()` function.Yukihiro "Matz" Matsumoto
2019-05-17Use `mrb_float` instead of `double` in `FIXABLE_FLOAT`.Yukihiro "Matz" Matsumoto
2019-05-16Set maximum string (and symbol) size to 65534 (`UINT16_MAX-1`).Yukihiro "Matz" Matsumoto
The previous value (`UINT16_MAX`) was too long for symbols, so it raises an exception after the length check.
2019-05-15Initial suffix supportUkrainskiy Sergey
2019-05-15Merge pull request #4400 from ↵Yukihiro "Matz" Matsumoto
shuujii/fix-name-assignment-to-frozen-anonymous-class-module Fix name assignment to frozen anonymous class/module
2019-05-02Fixed include specifier format for `mruby/common.h`.Yukihiro "Matz" Matsumoto
2019-04-27Update document for `MRB_USE_CUSTOM_RO_DATA_P`dearblue
2019-04-27Update document for any configurationsdearblue
- (Modify) `MRB_INT16` - (Add) `MRB_INT32` - (Modify) `MRB_INT64` - (Add) `MRB_USE_ETEXT_EDATA` - (Add) `MRB_NO_INIT_ARRAY_START - (Add) `MRB_WITHOUT_FLOAT` - (Add) `MRB_METHOD_CACHE` - (Add) `MRB_METHOD_CACHE_SIZE` - (Add) `MRB_METHOD_TABLE_INLINE - (Add) `MRB_ENABLE_ALL_SYMBOLS`
2019-04-26Add customized `mrb_ro_data_p()`dearblue
User definable `mrb_ro_data_p()` functions are available by defining `MRB_USE_CUSTOM_RO_DATA_P`. (Limitation) It can not be defined as an inline function.
2019-04-24Add mruby binary loader functions from buffer memorydearblue
Add new functions (with `MRB_API`): - `mrb_read_irep_buf()` - `mrb_load_irep_buf()` - `mrb_load_irep_buf_cxt()`
2019-04-24Reorganize defines related to `MRB_INLINE`; ref #4391Yukihiro "Matz" Matsumoto
2019-04-24Remove unnecessary `mrb_regexp_check()` and related functions.Yukihiro "Matz" Matsumoto
2019-04-23Fix name assignment to frozen anonymous class/moduleKOBAYASHI Shuji
Fix the following issues: A = Class.new.freeze #=> FrozenError Module.new::B = Class.new.freeze #=> FrozenError String::B = Module.new.freeze #=> FrozenError
2019-04-22Merge pull request #4391 from dearblue/inlinesYukihiro "Matz" Matsumoto
Change modifier to `MRB_INLINE` from `static inline`
2019-04-20Expand `BOXWORD_SET_VALUE()` macro in `include/mruby/boxing_word.h`KOBAYASHI Shuji
In `SET_OBJ_VALUE()`, branch isn't removed because `switch` condition isn't constant expression.
2019-04-19Add `mrb_true_p()` and `mrb_false_p()` macro functionsdearblue
2019-04-19Change modifier to `MRB_INLINE` from `static inline`dearblue
2019-04-16Avoid potential zero size array declaration; fix #4382KOBAYASHI Shuji
2019-04-10Remove `MRB_API` from `mrb_instance_new`.Yukihiro "Matz" Matsumoto
2019-04-10Merge pull request #4367 from shuujii/extract-frozen-checking-to-functionYukihiro "Matz" Matsumoto
Extract frozen checking to function
2019-04-09Extract frozen checking to functionKOBAYASHI Shuji
2019-04-08Remove unneeded function prototypesKOBAYASHI Shuji
2019-04-05Merge pull request #4357 from mruby/stableYukihiro "Matz" Matsumoto
Update version and release date. `mruby 2.0.1 (2019-4-4)`
2019-04-04Use `mrb_proc_arity` instead of `Proc#arity` call in `Method#arity`KOBAYASHI Shuji
2019-04-04Update version and release date.2.0.1Hiroshi Mimaki
`mruby 2.0.1 (2019-4-4)`
2019-04-02Pad leading zero to month and day in `MRUBY_RELEASE_DATE`KOBAYASHI Shuji
For Ruby compatibility.
2019-04-01Avoid keeping pointers from `mrb_sym2name_len()`; fix #4342Yukihiro "Matz" Matsumoto
The addresses for packed inline symbols reference `mrb->symbuf` that could be overridden by the later call of `mrb_sym2name_len`. Since file names in call stack information are kept as symbols, keeping the address in the C structures could cause problems like #4342. This changes small incompatible changes in function prototypes: * `mrb_parser_get_filename`: return value changed to `mrb_sym`. * `mrb_debug_get_filename`: add `mrb_state*` as a first argument. * `mrb_debug_get_line`: ditto. I believe above functions are almost internal, and no third-party mrbgem use them.
2019-03-29va_list is defined in stdarg.h.Tomoyuki Sahara
fixes build on OpenBSD.
2019-03-26Fix missing `MRB_API` prefix for functions below; clse #4267Yukihiro "Matz" Matsumoto
Functions to add prototypes to headers: * mrb_ary_splice() * mrb_notimplement() * mrb_vformat() * mrb_cstr_to_dbl() * mrb_cstr_to_inum() Functions to be made `static` (`MRB_API` was not needed): * mrb_mod_module_function() * mrb_obj_hash() * mrb_str_len_to_inum() Functions to remove `MRB_API` from definitions (referenced from within `libmruby`): * mrb_mod_cv_defined() * mrb_mod_cv_get() * mrb_f_send()
2019-03-14Fix constant name validationKOBAYASHI Shuji
`X!` etc are invalid constant name.
2019-02-17Merge pull request #4279 from dearblue/fix-inline-packed-symbolsYukihiro "Matz" Matsumoto
Fix destroyed "inline packed symbols" on 32 bit mode with `MRB_WORD_BOXING`
2019-02-17Fix typosyui-knk
2019-02-16Fix to defined `MRB_SYMBOL_BITSIZE` and `MRB_SYMBOL_MAX` always; ref #4077dearblue
2019-02-12Disable `Symbol.all_symbols`.Yukihiro "Matz" Matsumoto
2019-02-12Implement inline packed symbols.Yukihiro "Matz" Matsumoto
Small symbols with all alphanumeric characters (<5) are packed in 32bit symbol integer a la base64. This means those small symbols are not listed in `Symbol.all_symbols`.
2019-02-06Implement symbol hash table to boost `find_symbol`.Yukihiro "Matz" Matsumoto
In 4174e02, we removed the symbol hash table from `mrb_state` but `find_symbol` was too slow with linear search. My performance estimation was wrong. So we implemented a new compact hash table for symbols.
2019-02-06Remove symbol hash table from `mrb_state` structure.Yukihiro "Matz" Matsumoto
Use linear search instead. Number of symbols is usually small (<1K), so we don't need performance boost from hash tables. In our benchmark measurement, hash tables consumes 790KB for `build/full-debug/mrbtest`.
2019-02-04Fix `Symbol#size` for multi-byte characters with `MRB_UTF8_STRING`KOBAYASHI Shuji
Before: p :あ.size #=> 3 After: p :あ.size #=> 1
2019-01-20Fix memory leak `sval` when out of memory in `Data_Wrap_Struct()`dearblue
2019-01-08Update compiled binary format version; ref #4219Yukihiro "Matz" Matsumoto
2019-01-08Update `OP_APOST` description (typo fixed).Yukihiro "Matz" Matsumoto
2019-01-03range: Refactor range.h/range.cKOBAYASHI Shuji
Functions order, name, linkage and so on.
2019-01-01range: Embed edges in RRange on boxing environment.KOBAYASHI Shuji
[Breaking changes] Developers must use following APIs for accessing attributes of RRange because RRange structure depends on boxing setting. - mrb_range_beg - mrb_range_end - mrb_range_excl_p
2018-12-23Suppress __STDC_VERSION__ warns for C++dearblue
2018-12-22Fix MRB_ENDIAN_BIG is always defined, if byte order macro is not defineddearblue
2018-12-21Simplify `MRB_ENDIAN_BIG` macro definition; ref #4190Yukihiro "Matz" Matsumoto
`cpp` does not raise error on undefined macro access in condition.
2018-12-21Define `MRB_ENDIAN_BIG` automatically; ref #4190Yukihiro "Matz" Matsumoto
You had to define this macro on big endian platforms, but it is very error-prone. So define the macro automatically if possible.