summaryrefslogtreecommitdiffhomepage
path: root/src
AgeCommit message (Collapse)Author
2021-06-17Revert "`instance_eval` for classes and modules should behave as `class_eval`."Yukihiro "Matz" Matsumoto
This reverts commit ee3017496ba60ca418b5e54c1f8f5d8b38524a52. I misunderstood something and the new behavior was different from CRuby. The issue was reported by @dearblue, regarding #5478
2021-06-16Merge pull request #5445 from jbampton/add-codespell-pre-commit-hookYukihiro "Matz" Matsumoto
Run pre-commit with GitHub Actions
2021-06-16Run pre-commit with GitHub ActionsJohn Bampton
Running pre-commit with GitHub Actions now gives us more tests and coverage Remove duplicate GitHub Actions for merge conflicts and trailing whitespace Remove duplicate checks for markdownlint and yamllint from the GitHub Super-Linter Add new custom pre-commit hook running with a shell script to sort alphabetically and uniquify codespell.txt Add new pre-commit hook to check spelling with codespell https://github.com/codespell-project/codespell Fix spelling
2021-06-15numeric.c: restore `fmt` argument for backward compatibility.Yukihiro "Matz" Matsumoto
`mrb_float_to_str()` used to take `fmt` argument. We thought no one used the function, and OK to remove the argument. But at least `mruby-redis` gem used the function.
2021-06-12readint.c: fixed typo.Yukihiro "Matz" Matsumoto
2021-06-12Raise `TypeError` with `super` inside `instance_eval` / `class_eval`dearblue
Commit d0f60182af9114f6840d993d74f492e483302805 introduced an exception as a limitation of mruby. Subsequent CRuby-2.7 has changed its behavior to raise an exception. ref: https://github.com/ruby/ruby/commit/55b7ba368696033f2e89b77cbcd4a05dec97b139
2021-06-11readint.c: add new function `mrb_int_read`.Yukihiro "Matz" Matsumoto
Difference from `strtoul(3)`: * reads `mrb_int` based on configuration * specifies the end of the string * no sign interpretation * base 10 only
2021-06-10readflt.c: renamed from `strtod.c`Yukihiro "Matz" Matsumoto
The file provides `mrb_read_float()` renamed from `vim_strtod()`.
2021-06-08string.c: make `mrb_str_len_{inum,dbl}()` static.Yukihiro "Matz" Matsumoto
2021-06-08string.c: remove two unused functions.Yukihiro "Matz" Matsumoto
* `mrb_cstr_to_inum()` * `mrb_cstr_to_dbl()`
2021-06-08string.c: add `base>36` check to `String#to_i`.Yukihiro "Matz" Matsumoto
2021-06-05codedump.c: fix a compiler condition bug with `MRB_NO_FLOAT`.Yukihiro "Matz" Matsumoto
2021-06-02vm.c: unify `JUMP` instructions in `OP_SEND`.Yukihiro "Matz" Matsumoto
2021-06-01cdump.c: rename `dump_` prefix to `cdump` for static functions.Yukihiro "Matz" Matsumoto
2021-06-01cdump.c: separate irep dump in C feature.Yukihiro "Matz" Matsumoto
2021-05-31numeric.c: fixed a silly bug related to pointer decrement.Yukihiro "Matz" Matsumoto
2021-05-30numeric.c: introduce `mrb_int_to_cstr()` to dump `mrb_int`.Yukihiro "Matz" Matsumoto
* refactor `mrb_integer_to_str()` * refactor `mrb_str_format()`
2021-05-28backtrace.c: do not skip frames for C function calls.Yukihiro "Matz" Matsumoto
2021-05-28vm.c: skip actual `method_missing` call unless it's overridden.Yukihiro "Matz" Matsumoto
So that `mruby -e 'a'` does not print backtrace history, i.e. ``` % mruby -e 'a' -e:1: undefined method 'a' (NoMethodError) ``` Instead of ``` % mruby -e 'a' trace (most recent call last): [1] -e:1 -e:1: undefined method 'a' (NoMethodError) ```
2021-05-27kernel.c: clear `mid` for `raise` and `method_missing`Yukihiro "Matz" Matsumoto
Method names need not to be printed in backtrace history.
2021-05-27backtrace.c: do not print trace line if there's no backtrace historyYukihiro "Matz" Matsumoto
2021-05-27array.c: unify `mrb_ary_ref` and `mrb_ary_entry`Yukihiro "Matz" Matsumoto
Use only `mrb_ary_entry` hereafter.
2021-05-27array.c: check for negative shift size.Yukihiro "Matz" Matsumoto
2021-05-26fmt_fp.c: move mruby specific `mrb_float_to_str` to `numeric.c`Yukihiro "Matz" Matsumoto
2021-05-25fmt_fp.c: truncate precision to prevent buffer overflow.Yukihiro "Matz" Matsumoto
2021-05-25fmt_fp.c: use constant that depends on `mrb_float` size.Yukihiro "Matz" Matsumoto
2021-05-25fmt_fp.c: use a const int instead of a macro constant.Yukihiro "Matz" Matsumoto
2021-05-24strtod.c: new public domain implementation of `strtod`; ref #5448Yukihiro "Matz" Matsumoto
Instead of using copyrighted `strtod`, now use the public domain implementation of `strtod` by Yasuhiro Matsumoto (@mattn). The function has been renamed to `mrb_float_read()`; ref #5460 as well.
2021-05-24fmt_fp.c: exponential may be bigger than `100`.Yukihiro "Matz" Matsumoto
2021-05-24class.c: no need to create aliases if both symbols are same.Yukihiro "Matz" Matsumoto
2021-05-24class.c: add write barrier for aliases.Yukihiro "Matz" Matsumoto
2021-05-22Fix typo in `src/fmt_fp.c` [ci skip]KOBAYASHI Shuji
2021-05-22fp_fmt.c: remove `mrb_float_to_cstr()`.Yukihiro "Matz" Matsumoto
The function was intended to be a utility function for `mruby-sprintf`. The functionality was integrated into `sprintf.c`.
2021-05-22fmt_fp.c: replace with public domain float format routine; ref #5448Yukihiro "Matz" Matsumoto
The original code can be found in `https://github.com/dhylands/format-float`. Changes: - support `double` - support `#` (alt_form) modifier - small refactoring
2021-05-21fmt_fp.c: remove `fmt` argument from `mrb_float_to_str()`.Yukihiro "Matz" Matsumoto
With major refactoring to prepare removing `snprintf(3) calls.
2021-05-21numeric.h: remove 2 functions from `MRB_API`Yukihiro "Matz" Matsumoto
- `mrb_float_to_str()` - `mrb_float_to_cstr()` Both functions will be replaced to support new coming `format-float.c`.
2021-05-20Support load 64-bit integer from mrb format with MRB_32BIT and MRB_INT64KOBAYASHI Shuji
2021-05-17Global renaming regarding `integer` and `float`.Yukihiro "Matz" Matsumoto
Consistent number conversion function names: * `mrb_value` to immediate (C) value * `mrb_int()` -> `mrb_as_int()` * `mrb_to_flo()` -> `mrb_as_float()` * `mrb_value` to `mrb_value` (converted) * `mrb_to_int()' * `mrb_Integer()` - removed * `mrb_Float()` -> `mrb_to_float` Consistent function name (avoid `_flo` suffix): * `mrb_div_flo()` -> `mrb_div_float`
2021-05-17Rename `mrb_fixnum_to_str` to `mrb_integer_to_str`.Yukihiro "Matz" Matsumoto
2021-05-17Rename `mrb_flo_to_fixnum` to `mrb_float_to_integer`.Yukihiro "Matz" Matsumoto
2021-05-14range.c: implement (part of) `Range#to_a` in C.Yukihiro "Matz" Matsumoto
Mostly for performance reason.
2021-05-14range.c: refactor conditional compilation code.Yukihiro "Matz" Matsumoto
So that auto indentation works.
2021-05-14range.c: rename `RANGE_INITIALIZED_MASK` to `RANGE_INITIALIZED_FLAG`.Yukihiro "Matz" Matsumoto
2021-05-13backtrace.c: stop skipping frame with file/line information.Yukihiro "Matz" Matsumoto
Instead, copy them from the outer frame as CRuby does.
2021-05-11Remove the obsolete term `Fixnum`.Yukihiro "Matz" Matsumoto
Except for compatibility code.
2021-05-06symbol.c: add `Symbol#name` methodYukihiro "Matz" Matsumoto
`Symbol#name` is similar to `#to_s` but returns a frozen string.
2021-05-06symbol.c: rename `sym_name` to `sym_cstr`.Yukihiro "Matz" Matsumoto
2021-05-03Fix whitespace in `src/symbol.c`John Bampton
2021-05-03symbol.c: remove `id2name` reference from documents.Yukihiro "Matz" Matsumoto
2021-05-03symbol.c: remove `Symbol#id2sym`.Yukihiro "Matz" Matsumoto
In the ancient Ruby, symbols are represented by integers. In that era, to get string representation from integers, we used `Integer#id2sym` method. Later, `Symbol` was introduced, and `id2sym` was used for compatibility. Today, no one uses `id2sym` any longer. It is described in ISO 30170:2012 standard but I consider it as a mistake.