mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Merge pull request #6139 from jbampton/fix-prettier-hook
Fix `pre-commit` failure from `prettier`
This commit is contained in:
@@ -4,6 +4,8 @@
|
||||
extends: default
|
||||
|
||||
rules:
|
||||
comments:
|
||||
min-spaces-from-content: 1
|
||||
document-start: disable
|
||||
line-length: disable
|
||||
truthy: false
|
||||
|
||||
@@ -11,12 +11,12 @@ jobs:
|
||||
- name: Build Fuzzers
|
||||
uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
|
||||
with:
|
||||
oss-fuzz-project-name: 'mruby'
|
||||
oss-fuzz-project-name: "mruby"
|
||||
dry-run: false
|
||||
- name: Run Fuzzers
|
||||
uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
|
||||
with:
|
||||
oss-fuzz-project-name: 'mruby'
|
||||
oss-fuzz-project-name: "mruby"
|
||||
fuzz-seconds: 600
|
||||
dry-run: false
|
||||
- name: Upload Crash
|
||||
|
||||
@@ -9,8 +9,8 @@ permissions:
|
||||
jobs:
|
||||
build:
|
||||
permissions:
|
||||
contents: read # for actions/checkout to fetch code
|
||||
statuses: write # for github/super-linter/slim to mark status of each linter run
|
||||
contents: read # for actions/checkout to fetch code
|
||||
statuses: write # for github/super-linter/slim to mark status of each linter run
|
||||
name: Lint Code Base
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
||||
@@ -31,5 +31,6 @@ compile_commands.json
|
||||
compile_flags.txt
|
||||
cscope.files
|
||||
cscope.out
|
||||
node_modules
|
||||
tags
|
||||
!Gemfile.lock
|
||||
|
||||
@@ -54,6 +54,7 @@ repos:
|
||||
rev: v4.0.0-alpha.8
|
||||
hooks:
|
||||
- id: prettier
|
||||
exclude: ^doc/internal/opcode\.md$
|
||||
- repo: https://github.com/igorshubovych/markdownlint-cli
|
||||
rev: v0.38.0
|
||||
hooks:
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"bracketSpacing": false
|
||||
}
|
||||
+1
-1
@@ -11,7 +11,7 @@ We consider the following issues as vulnerabilities:
|
||||
- Remote code execution
|
||||
- Crash caused by a valid Ruby script
|
||||
|
||||
We *don't* consider the following issues as vulnerabilities:
|
||||
We _don't_ consider the following issues as vulnerabilities:
|
||||
|
||||
- Runtime C undefined behavior (including integer overflow)
|
||||
- Crash caused by misused API
|
||||
|
||||
@@ -34,7 +34,7 @@ MRuby::CrossBuild.new("dreamcast") do |conf|
|
||||
cc.defines << %w(_arch_sub_pristine)
|
||||
end
|
||||
|
||||
# C++ compiler
|
||||
# C++ compiler
|
||||
conf.cxx do |cxx|
|
||||
cxx.command = conf.cc.command.dup
|
||||
cxx.include_paths = conf.cc.include_paths.dup
|
||||
|
||||
@@ -80,7 +80,7 @@ conf.toolchain :clang
|
||||
#### Visual Studio 2010, 2012 and 2013
|
||||
|
||||
Toolchain configuration for Visual Studio on Windows. If you use the
|
||||
[Visual Studio Command Prompt](https://msdn.microsoft.com/en-us/library/ms229859\(v=vs.110\).aspx),
|
||||
[Visual Studio Command Prompt](<https://msdn.microsoft.com/en-us/library/ms229859(v=vs.110).aspx>),
|
||||
you normally do not have to specify this manually, since it gets automatically detected by our build process.
|
||||
|
||||
```ruby
|
||||
@@ -460,7 +460,7 @@ compile for `i386` a directory called `i386` is created under the
|
||||
build directory.
|
||||
|
||||
The cross compilation workflow starts in the same way as the normal
|
||||
compilation by compiling all *native* libraries and binaries, except
|
||||
compilation by compiling all _native_ libraries and binaries, except
|
||||
for we don't have `host/mrbc` directory (`host` directory itself works
|
||||
as placeholder for `mrbc`). Afterwards the cross compilation process
|
||||
proceeds like this:
|
||||
|
||||
@@ -62,7 +62,7 @@ $ mrdb sample.rb
|
||||
You can execute the shell commands listed below:
|
||||
|
||||
| command | description |
|
||||
|:----------------:|:--------------------------------------------------------------------------|
|
||||
| :--------------: | :------------------------------------------------------------------------ |
|
||||
| run | execute programs |
|
||||
| step | execute stepping |
|
||||
| continue | execute continuing program |
|
||||
@@ -83,7 +83,7 @@ You can debug the mruby binary files.
|
||||
#### 2.2.2.1 Debugging the binary files
|
||||
|
||||
- notice
|
||||
To debug mruby binary files, you need to compile mruby files with option `-g`.
|
||||
To debug mruby binary files, you need to compile mruby files with option `-g`.
|
||||
|
||||
```bash
|
||||
$ mrbc -g sample.rb
|
||||
|
||||
@@ -4,7 +4,7 @@ _This is an English translation of [Matz's blog post][matz blog post]
|
||||
written in Japanese._
|
||||
_Some parts are updated to reflect recent changes._
|
||||
|
||||
[matz blog post]: <https://www.rubyist.net/~matz/20130731.html>
|
||||
[matz blog post]: https://www.rubyist.net/~matz/20130731.html
|
||||
|
||||
When you are extending mruby using C language, you may encounter
|
||||
mysterious "arena overflow error" or memory leak or very slow
|
||||
|
||||
+6
-6
@@ -51,8 +51,8 @@ for example:
|
||||
To retrieve compiler options used to build `mruby`, you can use `mruby-config`
|
||||
command with following options:
|
||||
|
||||
- `--cc` compiler name
|
||||
- `--cflags` options passed to compiler
|
||||
- `--cc` compiler name
|
||||
- `--cflags` options passed to compiler
|
||||
|
||||
```console
|
||||
$ mruby-config --cflags
|
||||
@@ -66,10 +66,10 @@ compatible to mruby configuration.
|
||||
|
||||
To retrieve linker options, you can use `mruby-config` with following options:
|
||||
|
||||
- `--ld` linker name
|
||||
- `--ldflags` options passed to linker
|
||||
- `--ldflags-before-libs` options passed to linker before linked libraries
|
||||
- `--libs` linked libraries
|
||||
- `--ld` linker name
|
||||
- `--ldflags` options passed to linker
|
||||
- `--ldflags-before-libs` options passed to linker before linked libraries
|
||||
- `--libs` linked libraries
|
||||
|
||||
```console
|
||||
$ mruby-config --ldflags
|
||||
|
||||
@@ -25,7 +25,7 @@ MRuby::Build.new do |conf|
|
||||
end
|
||||
```
|
||||
|
||||
***NOTE***
|
||||
**_NOTE_**
|
||||
|
||||
- Use common definitions (`conf.defines`) instead of per-compiler definitions (e.g., `conf.cc.defines`) unless there is a special reason not to.
|
||||
- It is now deprecated to edit the `include/mruby/mrbconf.h` file or give it directly as a compiler flag, as was the case before.
|
||||
@@ -123,7 +123,7 @@ end
|
||||
|
||||
- Defines value is `1024`.
|
||||
- Specifies number of `RBasic` per each heap page.
|
||||
- To calculate the number of bytes per heap page, it is "(size of management data per heap page) + (size per object) * `MRB_HEAP_PAGE_SIZE`".
|
||||
- To calculate the number of bytes per heap page, it is "(size of management data per heap page) + (size per object) \* `MRB_HEAP_PAGE_SIZE`".
|
||||
In mruby 3.1.0, the "size of management data per heap page" is 6 words, also "size per object" is 6 words.
|
||||
For a 32-bit CPU, `(6 * 4) + (6 * 4) * MRB_HEAP_PAGE_SIZE` gives the bytes of size per heap page.
|
||||
Conversely, for example, to keep the size per heap page to 4 Ki bytes,
|
||||
@@ -135,7 +135,7 @@ end
|
||||
|
||||
- Default value is `4`.
|
||||
- If you're allocating data types that requires alignment more than default value define the
|
||||
largest value of required alignment.
|
||||
largest value of required alignment.
|
||||
|
||||
`POOL_PAGE_SIZE`
|
||||
|
||||
@@ -149,7 +149,7 @@ largest value of required alignment.
|
||||
|
||||
- If defined enables fixed size `mrb_state` atexit stack.
|
||||
- Raises `RuntimeError` when `mrb_state_atexit` call count to same `mrb_state` exceeds
|
||||
`MRB_FIXED_STATE_ATEXIT_STACK_SIZE`'s value.
|
||||
`MRB_FIXED_STATE_ATEXIT_STACK_SIZE`'s value.
|
||||
|
||||
`MRB_FIXED_STATE_ATEXIT_STACK_SIZE`
|
||||
|
||||
|
||||
@@ -248,7 +248,7 @@ Version requirement supports following operators:
|
||||
- '<=': is equal or lesser
|
||||
- '~>': is equal or greater and is lesser than the next major version
|
||||
- example 1: '~> 2.2.2' means '>= 2.2.2' and '< 2.3.0'
|
||||
- example 2: '~> 2.2' means '>= 2.2.0' and '< 3.0.0'
|
||||
- example 2: '~> 2.2' means '>= 2.2.0' and '< 3.0.0'
|
||||
|
||||
When more than one version requirements is passed, the dependency must satisfy all of it.
|
||||
|
||||
@@ -395,8 +395,8 @@ override existing classes or add new ones in this way. Put all Ruby files
|
||||
into the `mrblib` directory and all C files into the `src` directory.
|
||||
|
||||
mruby codes under `mrblib` directory would be executed after gem init C
|
||||
function is called. Make sure *mruby script* depends on *C code* and
|
||||
*C code* doesn't depend on *mruby script*.
|
||||
function is called. Make sure _mruby script_ depends on _C code_ and
|
||||
_C code_ doesn't depend on _mruby script_.
|
||||
|
||||
### Pre-Conditions
|
||||
|
||||
|
||||
@@ -57,13 +57,13 @@ To save RAM, `mruby` can use compile-time allocation of some symbols. You can
|
||||
use following macros to get preallocated symbols by including `mruby/presym.h`
|
||||
header.
|
||||
|
||||
- `MRB_SYM(xor)` //=> xor (Word characters)
|
||||
- `MRB_SYM_B(xor)` //=> xor! (Method with Bang)
|
||||
- `MRB_SYM_Q(xor)` //=> xor? (Method with Question mark)
|
||||
- `MRB_SYM_E(xor)` //=> xor= (Method with Equal)
|
||||
- `MRB_CVSYM(xor)` //=> @@xor (Class Variable)
|
||||
- `MRB_IVSYM(xor)` //=> @xor (Instance Variable)
|
||||
- `MRB_OPSYM(xor)` //=> ^ (Operator)
|
||||
- `MRB_SYM(xor)` //=> xor (Word characters)
|
||||
- `MRB_SYM_B(xor)` //=> xor! (Method with Bang)
|
||||
- `MRB_SYM_Q(xor)` //=> xor? (Method with Question mark)
|
||||
- `MRB_SYM_E(xor)` //=> xor= (Method with Equal)
|
||||
- `MRB_CVSYM(xor)` //=> @@xor (Class Variable)
|
||||
- `MRB_IVSYM(xor)` //=> @xor (Instance Variable)
|
||||
- `MRB_OPSYM(xor)` //=> ^ (Operator)
|
||||
|
||||
For `MRB_OPSYM()`, specify the names corresponding to operators (see
|
||||
`MRuby::Presym::OPERATORS` in `lib/mruby/presym.rb` for the names that
|
||||
|
||||
@@ -15,7 +15,7 @@ Some values (called immediate values, e.g. integers, booleans, symbols, etc.) ar
|
||||
The Word boxing packing bit patterns are like following:
|
||||
|
||||
| Types | Bit Pattern |
|
||||
|--------|---------------------------------------|
|
||||
| ------ | ------------------------------------- |
|
||||
| object | `xxxxxxxx xxxxxxxx xxxxxxxx xxxxx000` |
|
||||
| fixnum | `xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxx1` |
|
||||
| nil | `00000000 00000000 00000000 00000000` |
|
||||
@@ -34,7 +34,7 @@ NaN boxing packs the Ruby data in a floating-point numbers, which represent NaN
|
||||
The NaN boxing packing bit patterns are like following:
|
||||
|
||||
| Types | Bit Pattern |
|
||||
|--------|---------------------------------------------------------------------------|
|
||||
| ------ | ------------------------------------------------------------------------- |
|
||||
| float | `SEEEEEEE EEEEFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF` |
|
||||
| +/-inf | `S1111111 11110000 00000000 00000000 00000000 00000000 00000000 00000000` |
|
||||
| nan | `01111111 11111000 00000000 00000000 00000000 00000000 00000000 00000000` |
|
||||
|
||||
+5
-4
@@ -42,10 +42,10 @@ We have ported some new syntax from CRuby.
|
||||
## Renamed for consistency
|
||||
|
||||
Some configuration macro names are changed for consistency (use `MRB_USE_XXX`
|
||||
or `MRB_NO_XXX`).
|
||||
or `MRB_NO_XXX`).
|
||||
|
||||
| mruby2 | mruby3 |
|
||||
|--------------------------------|---------------------------|
|
||||
| mruby2 | mruby3 |
|
||||
| ------------------------------ | ------------------------- |
|
||||
| `MRB_ENABLE_ALL_SYMBOLS` | `MRB_USE_ALL_SYMBOLS` |
|
||||
| `MRB_ENABLE_CXX_ABI` | `MRB_USE_CXX_ABI` |
|
||||
| `MRB_ENABLE_CXX_EXCEPTION` | `MRB_USE_CXX_EXCEPTION` |
|
||||
@@ -149,7 +149,8 @@ No more operand extension
|
||||
|
||||
## Changed Instructions
|
||||
|
||||
Jump addresses used to be specified by absolute offset from the start of `iseq`. Now they are relative offset from the address of the next instruction.
|
||||
Jump addresses used to be specified by absolute offset from the start of `iseq`. Now they are relative offset from the
|
||||
address of the next instruction.
|
||||
|
||||
## `Random` now use `xoshiro128++`.
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
version: '3.8'
|
||||
version: "3.8"
|
||||
services:
|
||||
test:
|
||||
build:
|
||||
|
||||
@@ -73,18 +73,18 @@ MS-DOS 286 C compiler (see credits above)
|
||||
|
||||
1. fgmp is considerably slower than gmp
|
||||
2. fgmp does not implement the following:
|
||||
all mpq_*
|
||||
internal mpn_* functions
|
||||
mpz_perfect_square_p
|
||||
mpz_inp_raw, mpz_out_raw
|
||||
mp_set_memory_functions, mpz_out_str, mpz_inp_str
|
||||
- all mpq\_\*
|
||||
- internal mpn\_\* functions
|
||||
- mpz_perfect_square_p
|
||||
- mpz_inp_raw, mpz_out_raw
|
||||
- mp_set_memory_functions, mpz_out_str, mpz_inp_str
|
||||
3. fgmp implements the following in addition to the routines in GNU gmp.
|
||||
`int mpz_jacobi(MP_INT *a, MP_INT *b)`
|
||||
- finds the jacobi symbol (a/b)
|
||||
`int mpz_jacobi(MP_INT *a, MP_INT *b)`
|
||||
- finds the jacobi symbol (a/b)
|
||||
4. mpz_sizeinbase often overestimates the exact value
|
||||
|
||||
5. To convert your gmp based program to fgmp (subject to the
|
||||
above)
|
||||
above)
|
||||
|
||||
- recompile your source. Make sure to include the gmp.h file included
|
||||
with fgmp rather than that included with gmp. (The point is to recompile
|
||||
|
||||
@@ -17,7 +17,7 @@ Add the line below to your build configuration.
|
||||
- <https://doc.ruby-lang.org/ja/1.9.3/class/IO.html>
|
||||
|
||||
| method | mruby-io | memo |
|
||||
|----------------------------|----------|----------|
|
||||
| -------------------------- | -------- | -------- |
|
||||
| IO.binread | | |
|
||||
| IO.binwrite | | |
|
||||
| IO.copy_stream | | |
|
||||
@@ -102,7 +102,7 @@ Add the line below to your build configuration.
|
||||
- <https://doc.ruby-lang.org/ja/1.9.3/class/File.html>
|
||||
|
||||
| method | mruby-io | memo |
|
||||
|-----------------------------|----------|----------|
|
||||
| --------------------------- | -------- | -------- |
|
||||
| File.absolute_path | | |
|
||||
| File.atime | | |
|
||||
| File.basename | o | |
|
||||
|
||||
Reference in New Issue
Block a user