1. 16 Apr, 2021 1 commit
    • John Bampton's avatar
      feat(CI): add the GitHub Super Linter · 9d32d440
      John Bampton authored
      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
      9d32d440
  2. 15 Apr, 2021 2 commits
  3. 13 Apr, 2021 4 commits
  4. 12 Apr, 2021 5 commits
  5. 10 Apr, 2021 7 commits
  6. 09 Apr, 2021 2 commits
  7. 07 Apr, 2021 6 commits
  8. 06 Apr, 2021 8 commits
  9. 05 Apr, 2021 1 commit
  10. 04 Apr, 2021 2 commits
  11. 03 Apr, 2021 2 commits
    • dearblue's avatar
      Reorganize `mcall()` in `mruby-method`. · 4c196dcd
      dearblue authored
      Use `mrb_exec_irep()`. If possible, re-entry into the VM will be suppressed.
      
      Note that due to the effect of being a tail-call, the backtrace of `Method#call` will be lost, and it will look as if the target method was called directly.
      
      This change fixes the problem of infinite loops when redefining methods that make block calls using `mruby-method`.
      
      ```console
      % bin/mruby -e 'mm = method(:proc); define_method(:proc, ->(*a, &b) { mm.call(*a, &b) }); p proc { 1 }'
      trace (most recent call last):
              [257] -e:1
              [256] -e:1:in proc
              [255] -e:1:in proc
              ...SNIP...
              [1] -e:1:in proc
      -e:1:in proc: stack level too deep (SystemStackError)
      ```
      4c196dcd
    • dearblue's avatar
      Make `mrb_exec_irep()` allow non-VM to enter. · dd34ac64
      dearblue authored
      Change the old `mrb_exec_irep()` as-is to static `mrb_exec_irep_vm()`.
      Extract the VM entry part from the old `exec_irep()` in `mruby-eval/src/eval.c` and make it the core of the new `mrb_exec_irep()`.
      dd34ac64