summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-compiler
AgeCommit message (Collapse)Author
2021-06-11codegen.c: refactor `readint()`Yukihiro "Matz" Matsumoto
* renamed from redundant `readint_mrb_int()` * supports only base upto 16 * no base validation (already done in parser) * no negative read (negate after read) * overflow detection using `mrb_int_{mul,add}_overflow()`
2021-05-29codegen.c: just raise the exception on broken node for assignments.Yukihiro "Matz" Matsumoto
2021-05-18parse.y: allow "command" syntax in endless method definition.Yukihiro "Matz" Matsumoto
This change allows `def hello = puts "Hello"` without parentheses. This syntax has been introduced since Ruby3.1.
2021-05-18parse.y: endless singleton method definition can omit parens.Yukihiro "Matz" Matsumoto
2021-04-16feat(CI): add the GitHub Super LinterJohn Bampton
The GitHub Super Linter is a more robust and better supported tool than the current GitHub Actions we are using. Running these checks: ERROR_ON_MISSING_EXEC_BIT: true VALIDATE_BASH: true VALIDATE_BASH_EXEC: true VALIDATE_EDITORCONFIG: true VALIDATE_MARKDOWN: true VALIDATE_SHELL_SHFMT: true VALIDATE_YAML: true https://github.com/marketplace/actions/super-linter https://github.com/github/super-linter Added the GitHub Super Linter badge to the README. Also updated the pre-commit framework and added more documentation on pre-commit. Added one more pre-commit check: check-executables-have-shebangs Added one extra check for merge conflicts to our GitHub Actions. EditorConfig and Markdown linting. Minor grammar and spelling fixes. Update linter.yml
2021-03-31codegen.c: `s->ainfo` should be zero along with `OP_ENTER(0)`.Yukihiro "Matz" Matsumoto
2021-03-31codegen.c: `yield` outside of method is now `SyntaxError`.Yukihiro "Matz" Matsumoto
2021-03-31codegen.c: remove `codegen error:` prefix from error messages.Yukihiro "Matz" Matsumoto
2021-03-31codegen.c: `ainfo` may be negative.Yukihiro "Matz" Matsumoto
When argument information is not available. So it should not happen for `yield` (error). In contrast, the error from `super` should be handled in run time (ignored).
2021-03-22codegen.c: fix integer size warnings.Yukihiro "Matz" Matsumoto
along with repeated calls of `strlen()`.
2021-03-13codegen.c: fix memory leak from `new_litbn()`.Yukihiro "Matz" Matsumoto
2021-03-12codegen.c: need to preserve `neg` info.Yukihiro "Matz" Matsumoto
2021-03-12codegen.c: avoid integer comparison of different sign.Yukihiro "Matz" Matsumoto
2021-03-12codegen.c: no integer overflow error in `codegen`; close #5376Yukihiro "Matz" Matsumoto
Add new pool value type `IREP_TT_BIGINT` and generate integer overflow error in the VM. In the future, `mruby` will support `Bignum` for integers bigger than `mrb_int` (probably using `mpz`).
2021-03-01feat: add pre-commit frameworkJohn Bampton
2021-02-24parse.y: endless_method_name should allow `==`.Yukihiro "Matz" Matsumoto
e.g. `def ==(v) = true`. The issue is reported by @shuujii
2021-02-24parse.y: upgrade endless `def` syntax.Yukihiro "Matz" Matsumoto
- prohibit defining setter method - allow endless def without parentheses
2021-02-13chore: fix missing HTTPS on linksJohn Bampton
2021-02-13chore: fix spellingJohn Bampton
Normally a single spell checker can't find all the mistakes or check all types of code. These mistakes were found by another spell checker inside my editor with a more manual sift / find.
2021-02-13parse.y: string buffer (`tokbuf`) can overflow.Yukihiro "Matz" Matsumoto
Check if `esclen` is smaller than `len` (original string length).
2021-02-03Avoid Heap Overflow in `heredoc_remove_indent`; fix #5316Yukihiro "Matz" Matsumoto
2021-02-01Allow more than 256 child `irep`; fix #5310Yukihiro "Matz" Matsumoto
We have introduced following new instructions. * `OP_LAMBDA16` * `OP_BLOCK16` * `OP_METHOD16` * `OP_EXEC16` Each instruction uses 16 bits operand for `reps` index. Since new instructions are added, `mruby/c` VM should be updated. Due to new instructions, dump format compatibility is lost, we have increased `RITE_BINARY_MAJOR_VER`. In addition, we have decreased the size of `refcnt` in `mrb_irep` from `uint32_t` to `uint16_t`, which is reasonably big enough.
2021-01-26Revert "Minimize the changes in #5277"Yukihiro "Matz" Matsumoto
This reverts commit dc51d89ac22acc60b9bfeed87115863565b74085.
2021-01-24Prohibit `r` suffix after scientific notation (e.g. `1e10`).Yukihiro "Matz" Matsumoto
As CRuby does.
2021-01-22Minimize the changes in #5277Yukihiro "Matz" Matsumoto
Instead of including `mruby/presym.h` everywhere, we provided the fallback `mruby/presym.inc` under `include/mruby` directory, and specify `-I<build-dir>/include` before `-I<top-dir>/include` in `presym.rake`. So even when someone drops `-I<build-dir>/include` in compiler options, it just compiles without failure.
2021-01-21Merge branch 'avoid-including-presym.inc-in-existing-header-files' of ↵Yukihiro "Matz" Matsumoto
https://github.com/shuujii/mruby into shuujii-avoid-including-presym.inc-in-existing-header-files
2021-01-21Fix a bug that `:_1` to cause syntax error; fix #5295Yukihiro "Matz" Matsumoto
2021-01-21Better error messages with yacc tokens.Yukihiro "Matz" Matsumoto
2021-01-15Avoid syntax error regarding colons in the expression; fix #5290Yukihiro "Matz" Matsumoto
Reported and inspired by @hasumikin; based on CRuby's `parse.y`.
2021-01-12Merge branch 'reorganize-ci' of https://github.com/dearblue/mruby into ↵Yukihiro "Matz" Matsumoto
dearblue-reorganize-ci
2021-01-11Avoid including `presym.inc` in existing header filesKOBAYASHI Shuji
Addressed an issue where existing programs linking `libmruby.a` could only be built by adding `<build-dir>/include` to compiler's include path.
2021-01-10Fix mixture of inline `int` declaration in `for` statement.Yukihiro "Matz" Matsumoto
2021-01-10Unified `target_class` and `env` of `mrb_callinfo`dearblue
If there is `env`, `env->c` means `target_class`.
2021-01-07Use `nint()` for implicit cast; ref #5260Yukihiro "Matz" Matsumoto
2021-01-06Add heredoc_push_indented helper functionSeeker
2021-01-06Fix line continuations with mixed indentation in squiggly heredocsSeeker
2021-01-06Fix build with `enable_cxx_exception`KOBAYASHI Shuji
2021-01-06Use `~0U` instead of `~0` to avoid sign comparison warnings.Yukihiro "Matz" Matsumoto
2021-01-06Merge branch 'improve-source-scanning-for-presym' of ↵Yukihiro "Matz" Matsumoto
https://github.com/shuujii/mruby into shuujii-improve-source-scanning-for-presym
2021-01-06Avoid comparing `-1` with `size_t` (unsigned); Use `~0` instead.Yukihiro "Matz" Matsumoto
2021-01-03Fix for escaped newlines in squiggly heredocsSeeker
2021-01-02Use type casting macros; ref #5246 #5247Yukihiro "Matz" Matsumoto
2020-12-31Treat tabs as 8 spaces in squiggly heredocsSeeker
2020-12-31Fix regression for squiggly heredocsSeeker
2020-12-28Fix mixed indentation and escaped tabs in squiggly heredocsSeeker
2020-12-27Fix for empty lines in squiggly heredocsSeeker
2020-12-27Fix operand types errorSeeker
2020-12-27Commit y.tab.cSeeker
2020-12-26Add support for squiggly heredocsSeeker
2020-12-24Reset paren_nest at tAREF and tASET.Yukihiro "Matz" Matsumoto