summaryrefslogtreecommitdiffhomepage
path: root/doc
AgeCommit message (Collapse)Author
2021-01-26Add `doc/symbols.md`. [ci skip]Yukihiro "Matz" Matsumoto
To describe how to use symbols, especially preallocated symbols from C.
2021-01-25Add description for `mruby-config` in `compile.md`. [ci skip]Yukihiro "Matz" Matsumoto
For easier compiling and linking of the application embedding `mruby`
2021-01-23Fixed typo; ref #5296Yukihiro "Matz" Matsumoto
2021-01-23Fix typoYevhen Viktorov
2020-12-19refactor: fix case of GitHub and fix missing HTTPS on linkJohn Bampton
- changed `github` to `GitHub`
2020-12-19refactor: remove trailing whitespaceJohn Bampton
2020-12-19feat(CI): add a GitHub Action to lint the MarkdownJohn Bampton
Run on pull request only Using https://www.npmjs.com/package/markdownlint-cli Lint Markdown for rules: - MD009/no-trailing-spaces - MD012/no-multiple-blanks - MD022/blanks-around-headings - MD031/blanks-around-fences - MD032/blanks-around-lists
2020-12-19🔒 Fix missing HTTPS on linksJohn Bampton
2020-12-19🔒 Fix missing HTTPS on linksJohn Bampton
2020-12-13Fix spellingJohn Bampton
2020-12-05Update "Configuration Options Changed" in `doc/mruby3.md` [ci skip]KOBAYASHI Shuji
2020-11-26Create presym files for each build targetKOBAYASHI Shuji
Previously, presym files were always created in `build/{presym,presym.inc}`. However, this constraint is inconvenient because it is common to use multiple build configurations and build targets in a single mruby tree. Therefore, change to create presym file for each build target.
2020-11-26Make `OP_JMP*` operand address to be relative.Yukihiro "Matz" Matsumoto
Jump target address is `operand (16bit)` + `address of next instruction`. In addition, `ilen` was made `uint32_t` so that `iseq` length limitation of 65536 is removed. Only jump target address should be within signed 16bit (-32768 .. 32767).
2020-11-25Fix C source compilation with `MRB_USE_ALL_SYMBOLS`; ref #5187KOBAYASHI Shuji
However, compiling by `mrbc` fails with another issue (#5116).
2020-11-25Remove no longer used `MRB_IV_SEGMENT_SIZE; close #5188 [ci skip]Yukihiro "Matz" Matsumoto
2020-11-22Remove `mrb_str_buf_new()` and `MRB_STR_BUF_MIN_SIZE`; close #5171Yukihiro "Matz" Matsumoto
2020-11-22Add brief explanation about `bin/mruby`; ref #5157 [ci skip]dearblue
2020-11-21Rename `MRB_{ENABLE,DISABLE}_` to `MRB_{USE,NO}_`; close #5163KOBAYASHI Shuji
| Previous Name | New Name | |------------------------------|-------------------------| | MRB_ENABLE_ALL_SYMBOLS | MRB_USE_ALL_SYMBOLS | | MRB_ENABLE_SYMBOLL_ALL | MRB_USE_ALL_SYMBOLS | | MRB_ENABLE_CXX_ABI | MRB_USE_CXX_ABI | | MRB_ENABLE_CXX_EXCEPTION | MRB_USE_CXX_EXCEPTION | | MRB_ENABLE_DEBUG_HOOK | MRB_USE_DEBUG_HOOK | | MRB_DISABLE_DIRECT_THREADING | MRB_NO_DIRECT_THREADING | | MRB_DISABLE_STDIO | MRB_NO_STDIO | | ENABLE_LINENOISE | MRB_USE_LINENOISE | | ENABLE_READLINE | MRB_USE_READLINE | | DISABLE_MIRB_UNDERSCORE | MRB_NO_MIRB_UNDERSCORE | | DISABLE_GEMS | MRB_NO_GEMS | * `MRB_ENABLE_SYMBOLL_ALL` seems to be a typo, so it is fixed. * `MRB_` prefix is added to those without. * The previous names can also be used for compatibility.
2020-11-04Update `mruby3.md` about new instructions.Yukihiro "Matz" Matsumoto
2020-11-02Search gem from `MRUBY_ROOT` if build config is in `build_config`.Yukihiro "Matz" Matsumoto
2020-11-02Replace `R-assignment` by `single-line pattern matching`.Yukihiro "Matz" Matsumoto
Since `R-assignment` in CRuby is abandoned. Single-line pattern matching in `mruby` only matches single local variable at the moment. Currently it works as a right assignment to a local variable. It will be enhanced in the future.
2020-11-02Update the build description in `mruby3.md`.Yukihiro "Matz" Matsumoto
2020-11-02Fix parallel buildKOBAYASHI Shuji
When `rake -m` and so on are used to build in parallel, building may be started before presym files are generated. Then, for example, the following error occurs and this issue is fixed. ```console In file included from /Users/shuujii/mruby/mruby/include/mruby.h:92: /mruby/mruby/include/mruby/presym.h:16:10: fatal error: '../build/presym.inc' file not found #include <../build/presym.inc> ^~~~~~~~~~~~~~~~~~~~~ ```
2020-10-29Fix typo in `doc/guides/compile.md` [ci skip]KOBAYASHI Shuji
2020-10-29Move `build_config.rb` -> `build_config/default.rb`; ref #5098Yukihiro "Matz" Matsumoto
In addition, update the documents referring `build_config.rb` which is no longer used. The new `build_config.rb` describes the new configuration structure in the comment.
2020-10-19Revert `MRUBY_TARGET` mechanism; ref #5096KOBAYASHI Shuji
* In explanation of mruby, the expression `build_config.rb` is frequently used including official documents, so I think that it will not make sense if the file is no longer used. * The `MRUBY_TARGET` mechanism seems to have little improvement, so I don't think it should be changed to avoid unnecessary confusion. * `MRUBY_TARGET` and `MRuby.targets` represent somewhat different things, so using the same term "target" is a bit confusing. The mechanism that can be written short when using a file under `build_config` (renamed from `target`) directory remains (`build_config/${MRUBY_CONFIG}.rb` is used if the path specified in `MRUBY_CONFIG` doesn't exist).
2020-10-16Typo fixed; ref #5095Yukihiro "Matz" Matsumoto
Thanks to @YunzheZJU
2020-10-12Use Markdown section marker `#`; ref #5084 [ci skip]Yukihiro "Matz" Matsumoto
The fix was proposed by @dearblue
2020-10-12Explain `MRB_USE_MALLOC_TRIM`; ref #5069Yukihiro "Matz" Matsumoto
2020-10-12Make division by zero cause `ZeroDivisionError`.Yukihiro "Matz" Matsumoto
As described in ISO 15.2.30.
2020-10-12Integrate `Fixnum` class into `Integer` classdearblue
* The `Fixnum` constant is now an alias for the `Integer` class. * Remove `struct mrb_state::fixnum_class` member. If necessary, use `struct mrb_state::integer_class` instead.
2020-10-12Update `mruby3.md`.Yukihiro "Matz" Matsumoto
2020-10-12Rename float configuration option names.Yukihiro "Matz" Matsumoto
- `MRB_WITHOUT_FLOAT` => `MRB_NO_FLOAT` - `MRB_USE_FLOAT` => `MRB_USE_FLOAT32` The former is to use `USE_XXX` naming convention. The latter is to make sure `float` is 32bit float and not floating point number in general.
2020-10-12Allow `MRUBY_CONFIG` to specify target file out of source tree.Yukihiro "Matz" Matsumoto
2020-10-12Add a new document named `mruby3.md`.Yukihiro "Matz" Matsumoto
That describes the changes in `mruby3`.
2020-10-12Rename `MRB_METHOD_T_STRUCT` to `MRB_USE_METHOD_T_STRUCT`.Yukihiro "Matz" Matsumoto
It's the first change of renaming configuration options to `MRB_XXX` to `MRB_USE_XXX` or `MRB_NO_XXX`.
2020-10-12Rename `OP_JUW` instruction to `OP_JMPUW`.Yukihiro "Matz" Matsumoto
2020-10-12Replace global jump with catch handler implementationdearblue
When a global jump occurs, look at the catch handler table to determine where to jump. In that case, `pc` already shows the following instruction, but since the table shows `begin_offset ... end_offset`, the comparison is done with `begin_offset < pc && pc <= end_offset`. If there is a corresponding handler, move `pc` to `handler.target_offset` and continue running the VM. When a global jump across `ensure` is made by `return`, `break`, `next`, `redo` and `retry`, the extended `RBreak` object saves and restores the C-level execution position. This extended `RBreak` can have tag information, which makes it a pseudo coroutine (the "tag" mimics CRuby). The implementation of pseudo coroutines by `RBreak` is summarized by `CHECKPOINT_RESTORE ... CHECKPOINT_MAIN ... CHECKPOINT_END` and `throw_tagged_break` / `unwind_ensure` macros. The restart of processing is branched by `RBREAK_TAG_FOREACH(DISPATCH_CHECKPOINTS)`. - Not only `rescue` blocks but also `ensure` blocks are now sandwiched between `OP_EXCEPT` and `OP_RAISEIF`. - Remove the function `ecall()`. It is no longer necessary to re-enter the VM to perform an "ensure block". This will resolves #1888. - Added instruction `OP_JUW` (Jump while UnWind). It jumps unconditionally like `OP_JMP`, but searches the catch handler table and executes the ensure block. Since it searches the catch handler table, it is much heavier than `OP_JMP`.
2020-10-12Removed push/pop instructions for rescue/ensuredearblue
`OP_PUSHERR`, `OP_POPERR`, `OP_EPUSH` and `OP_EPOP` are removed.
2020-10-12Extended `OP_EXCEPT` and `OP_RAISE` (`OP_RAISEIF`) instructionsdearblue
- `OP_EXCEPT` checks if `mrb->exc` is `NULL`, `MRB_TT_EXCEPTION` or `MRB_TT_BREAK`. If `mrb->exc` is `NULL`, it will be replaced with `nil`. - If `OP_RAISE` is `nil`, it does nothing and the immediately following instruction is executed (like `OP_NOP`). Also, in case of `RBreak` object, it moves to the processing for `break`. With this change, the instruction name is changed from `OP_RAISE` to `OP_RAISEIF`.
2020-10-12Enable method cache by default.Yukihiro "Matz" Matsumoto
Introduced `MRB_NO_METHOD_CACHE` which is inverse of `MRB_METHOD_CACHE` that should be enabled intestinally. In addition, the default cache is made bigger (128 -> 256).
2020-10-12Update opcode reference and comment.Yukihiro "Matz" Matsumoto
- no OP_EXT_ anymore - OP_LOADI16 in right position
2020-10-12Remove `OP_EXT[123]` from operands.Yukihiro "Matz" Matsumoto
2020-10-12Update the build instruction.Yukihiro "Matz" Matsumoto
2020-10-12Small updates on documents:Yukihiro "Matz" Matsumoto
- README.md - CONTRIBUTING.md - doc/limitations.md
2020-08-06Update release date.2.1.2Hiroshi Mimaki
2020-07-01Update version to `2.1.2`. (mruby 2.1.2 RC)2.1.2-rcHiroshi Mimaki
2020-06-05Merge master.Hiroshi Mimaki
2020-06-04Update release date.2.1.1Hiroshi Mimaki
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