script_core 0.2.6 → 0.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ext/enterprise_script_service/libseccomp/.travis.yml +21 -7
- data/ext/enterprise_script_service/libseccomp/CHANGELOG +22 -0
- data/ext/enterprise_script_service/libseccomp/CONTRIBUTING.md +37 -26
- data/ext/enterprise_script_service/libseccomp/CREDITS +8 -0
- data/ext/enterprise_script_service/libseccomp/README.md +3 -1
- data/ext/enterprise_script_service/libseccomp/configure.ac +13 -8
- data/ext/enterprise_script_service/libseccomp/doc/Makefile.am +6 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_api_get.3 +12 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_arch_add.3 +38 -6
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_attr_set.3 +53 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_export_bpf.3 +20 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_init.3 +9 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_load.3 +32 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_merge.3 +16 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_alloc.3 +113 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_fd.3 +1 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_free.3 +1 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_id_valid.3 +1 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_receive.3 +1 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_respond.3 +1 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_rule_add.3 +64 -3
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_syscall_priority.3 +18 -3
- data/ext/enterprise_script_service/libseccomp/include/seccomp-syscalls.h +12 -0
- data/ext/enterprise_script_service/libseccomp/include/seccomp.h.in +116 -0
- data/ext/enterprise_script_service/libseccomp/src/.gitignore +2 -0
- data/ext/enterprise_script_service/libseccomp/src/Makefile.am +31 -17
- data/ext/enterprise_script_service/libseccomp/src/api.c +254 -58
- data/ext/enterprise_script_service/libseccomp/src/arch-aarch64.h +1 -9
- data/ext/enterprise_script_service/libseccomp/src/arch-arm.c +47 -2
- data/ext/enterprise_script_service/libseccomp/src/arch-arm.h +1 -9
- data/ext/enterprise_script_service/libseccomp/src/arch-gperf-generate +40 -0
- data/ext/enterprise_script_service/libseccomp/src/arch-mips.c +41 -4
- data/ext/enterprise_script_service/libseccomp/src/arch-mips.h +2 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64.c +41 -4
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64.h +3 -11
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32.c +41 -4
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32.h +2 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-parisc.h +1 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-parisc64.c +3 -3
- data/ext/enterprise_script_service/libseccomp/src/arch-parisc64.h +29 -0
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc.h +1 -9
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc64.c +606 -8
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc64.h +2 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-riscv64.c +31 -0
- data/ext/enterprise_script_service/libseccomp/src/arch-riscv64.h +22 -0
- data/ext/enterprise_script_service/libseccomp/src/arch-s390.c +171 -12
- data/ext/enterprise_script_service/libseccomp/src/arch-s390.h +1 -17
- data/ext/enterprise_script_service/libseccomp/src/arch-s390x.c +166 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-s390x.h +1 -20
- data/ext/enterprise_script_service/libseccomp/src/arch-syscall-dump.c +8 -1
- data/ext/enterprise_script_service/libseccomp/src/arch-syscall-validate +359 -143
- data/ext/enterprise_script_service/libseccomp/src/arch-x32.c +36 -2
- data/ext/enterprise_script_service/libseccomp/src/arch-x32.h +2 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-x86.c +172 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-x86.h +1 -14
- data/ext/enterprise_script_service/libseccomp/src/arch-x86_64.h +1 -9
- data/ext/enterprise_script_service/libseccomp/src/arch.c +11 -3
- data/ext/enterprise_script_service/libseccomp/src/arch.h +7 -0
- data/ext/enterprise_script_service/libseccomp/src/db.c +268 -57
- data/ext/enterprise_script_service/libseccomp/src/db.h +16 -2
- data/ext/enterprise_script_service/libseccomp/src/gen_bpf.c +503 -148
- data/ext/enterprise_script_service/libseccomp/src/gen_bpf.h +2 -1
- data/ext/enterprise_script_service/libseccomp/src/gen_pfc.c +165 -37
- data/ext/enterprise_script_service/libseccomp/src/python/libseccomp.pxd +37 -1
- data/ext/enterprise_script_service/libseccomp/src/python/seccomp.pyx +295 -5
- data/ext/enterprise_script_service/libseccomp/src/syscalls.c +56 -0
- data/ext/enterprise_script_service/libseccomp/src/syscalls.csv +470 -0
- data/ext/enterprise_script_service/libseccomp/src/syscalls.h +62 -0
- data/ext/enterprise_script_service/libseccomp/src/syscalls.perf.template +82 -0
- data/ext/enterprise_script_service/libseccomp/src/system.c +196 -16
- data/ext/enterprise_script_service/libseccomp/src/system.h +68 -13
- data/ext/enterprise_script_service/libseccomp/tests/.gitignore +9 -2
- data/ext/enterprise_script_service/libseccomp/tests/06-sim-actions.tests +1 -1
- data/ext/enterprise_script_service/libseccomp/tests/11-basic-basic_errors.c +5 -5
- data/ext/enterprise_script_service/libseccomp/tests/13-basic-attrs.c +35 -1
- data/ext/enterprise_script_service/libseccomp/tests/13-basic-attrs.py +10 -1
- data/ext/enterprise_script_service/libseccomp/tests/15-basic-resolver.c +1 -0
- data/ext/enterprise_script_service/libseccomp/tests/16-sim-arch_basic.c +12 -0
- data/ext/enterprise_script_service/libseccomp/tests/16-sim-arch_basic.py +1 -0
- data/ext/enterprise_script_service/libseccomp/tests/{18-sim-basic_whitelist.c → 18-sim-basic_allowlist.c} +0 -0
- data/ext/enterprise_script_service/libseccomp/tests/{18-sim-basic_whitelist.py → 18-sim-basic_allowlist.py} +0 -0
- data/ext/enterprise_script_service/libseccomp/tests/18-sim-basic_allowlist.tests +32 -0
- data/ext/enterprise_script_service/libseccomp/tests/23-sim-arch_all_le_basic.c +3 -0
- data/ext/enterprise_script_service/libseccomp/tests/23-sim-arch_all_le_basic.py +1 -0
- data/ext/enterprise_script_service/libseccomp/tests/30-sim-socket_syscalls.c +3 -0
- data/ext/enterprise_script_service/libseccomp/tests/30-sim-socket_syscalls.py +1 -0
- data/ext/enterprise_script_service/libseccomp/tests/30-sim-socket_syscalls.tests +33 -17
- data/ext/enterprise_script_service/libseccomp/tests/{34-sim-basic_blacklist.c → 34-sim-basic_denylist.c} +0 -0
- data/ext/enterprise_script_service/libseccomp/tests/{34-sim-basic_blacklist.py → 34-sim-basic_denylist.py} +0 -0
- data/ext/enterprise_script_service/libseccomp/tests/34-sim-basic_denylist.tests +32 -0
- data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.c +3 -0
- data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.py +1 -0
- data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.tests +25 -25
- data/ext/enterprise_script_service/libseccomp/tests/39-basic-api_level.c +24 -3
- data/ext/enterprise_script_service/libseccomp/tests/39-basic-api_level.py +16 -1
- data/ext/enterprise_script_service/libseccomp/tests/47-live-kill_process.c +3 -3
- data/ext/enterprise_script_service/libseccomp/tests/51-live-user_notification.c +112 -0
- data/ext/enterprise_script_service/libseccomp/tests/51-live-user_notification.py +60 -0
- data/ext/enterprise_script_service/libseccomp/tests/51-live-user_notification.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/53-sim-binary_tree.c +156 -0
- data/ext/enterprise_script_service/libseccomp/tests/53-sim-binary_tree.py +95 -0
- data/ext/enterprise_script_service/libseccomp/tests/53-sim-binary_tree.tests +65 -0
- data/ext/enterprise_script_service/libseccomp/tests/54-live-binary_tree.c +128 -0
- data/ext/enterprise_script_service/libseccomp/tests/54-live-binary_tree.py +95 -0
- data/ext/enterprise_script_service/libseccomp/tests/54-live-binary_tree.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/55-basic-pfc_binary_tree.c +134 -0
- data/ext/enterprise_script_service/libseccomp/tests/55-basic-pfc_binary_tree.sh +46 -0
- data/ext/enterprise_script_service/libseccomp/tests/55-basic-pfc_binary_tree.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/56-basic-iterate_syscalls.c +90 -0
- data/ext/enterprise_script_service/libseccomp/tests/56-basic-iterate_syscalls.py +65 -0
- data/ext/enterprise_script_service/libseccomp/tests/56-basic-iterate_syscalls.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/57-basic-rawsysrc.c +64 -0
- data/ext/enterprise_script_service/libseccomp/tests/57-basic-rawsysrc.py +46 -0
- data/ext/enterprise_script_service/libseccomp/tests/57-basic-rawsysrc.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/58-live-tsync_notify.c +116 -0
- data/ext/enterprise_script_service/libseccomp/tests/58-live-tsync_notify.py +61 -0
- data/ext/enterprise_script_service/libseccomp/tests/58-live-tsync_notify.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/Makefile.am +31 -10
- data/ext/enterprise_script_service/libseccomp/tests/regression +6 -3
- data/ext/enterprise_script_service/libseccomp/tests/util.c +3 -3
- data/ext/enterprise_script_service/libseccomp/tools/check-syntax +1 -1
- data/ext/enterprise_script_service/libseccomp/tools/scmp_arch_detect.c +3 -0
- data/ext/enterprise_script_service/libseccomp/tools/scmp_bpf_disasm.c +4 -2
- data/ext/enterprise_script_service/libseccomp/tools/scmp_bpf_sim.c +2 -0
- data/ext/enterprise_script_service/libseccomp/tools/util.c +14 -12
- data/ext/enterprise_script_service/libseccomp/tools/util.h +7 -0
- data/ext/enterprise_script_service/mruby/.github/workflows/codeql-analysis.yml +51 -0
- data/ext/enterprise_script_service/mruby/Doxyfile +1 -1
- data/ext/enterprise_script_service/mruby/README.md +1 -1
- data/ext/enterprise_script_service/mruby/doc/guides/debugger.md +1 -1
- data/ext/enterprise_script_service/mruby/doc/limitations.md +10 -10
- data/ext/enterprise_script_service/mruby/include/mruby.h +13 -0
- data/ext/enterprise_script_service/mruby/include/mruby/boxing_word.h +0 -1
- data/ext/enterprise_script_service/mruby/include/mruby/proc.h +13 -8
- data/ext/enterprise_script_service/mruby/include/mruby/value.h +25 -29
- data/ext/enterprise_script_service/mruby/include/mruby/version.h +3 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/src/array.c +5 -8
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +2 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c +17 -10
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/mrblib/complex.rb +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/src/complex.c +1 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-eval/src/eval.c +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-fiber/src/fiber.c +1 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-inline-struct/test/inline.c +3 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file.c +1 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file_test.c +9 -26
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/io.c +1 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-kernel-ext/src/kernel.c +6 -8
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/src/method.c +3 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +0 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-print/src/print.c +1 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/src/range.c +1 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/mrblib/rational.rb +1 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/src/sprintf.c +3 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/src/string.c +1 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-struct/src/struct.c +5 -11
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-time/src/time.c +5 -10
- data/ext/enterprise_script_service/mruby/mrblib/00class.rb +10 -0
- data/ext/enterprise_script_service/mruby/src/array.c +14 -11
- data/ext/enterprise_script_service/mruby/src/class.c +22 -21
- data/ext/enterprise_script_service/mruby/src/error.c +1 -2
- data/ext/enterprise_script_service/mruby/src/etc.c +0 -1
- data/ext/enterprise_script_service/mruby/src/gc.c +5 -5
- data/ext/enterprise_script_service/mruby/src/hash.c +8 -15
- data/ext/enterprise_script_service/mruby/src/kernel.c +4 -7
- data/ext/enterprise_script_service/mruby/src/numeric.c +28 -60
- data/ext/enterprise_script_service/mruby/src/object.c +11 -1
- data/ext/enterprise_script_service/mruby/src/proc.c +7 -8
- data/ext/enterprise_script_service/mruby/src/range.c +4 -12
- data/ext/enterprise_script_service/mruby/src/string.c +24 -21
- data/ext/enterprise_script_service/mruby/src/symbol.c +1 -2
- data/ext/enterprise_script_service/mruby/src/vm.c +28 -24
- data/ext/enterprise_script_service/mruby/test/t/kernel.rb +7 -0
- data/lib/script_core/version.rb +1 -1
- metadata +45 -21
- data/ext/enterprise_script_service/libseccomp/src/arch-aarch64-syscalls.c +0 -559
- data/ext/enterprise_script_service/libseccomp/src/arch-arm-syscalls.c +0 -570
- data/ext/enterprise_script_service/libseccomp/src/arch-mips-syscalls.c +0 -562
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64-syscalls.c +0 -562
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32-syscalls.c +0 -562
- data/ext/enterprise_script_service/libseccomp/src/arch-parisc-syscalls.c +0 -542
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc-syscalls.c +0 -559
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc64-syscalls.c +0 -559
- data/ext/enterprise_script_service/libseccomp/src/arch-s390-syscalls.c +0 -642
- data/ext/enterprise_script_service/libseccomp/src/arch-s390x-syscalls.c +0 -642
- data/ext/enterprise_script_service/libseccomp/src/arch-x32-syscalls.c +0 -558
- data/ext/enterprise_script_service/libseccomp/src/arch-x86-syscalls.c +0 -692
- data/ext/enterprise_script_service/libseccomp/src/arch-x86_64-syscalls.c +0 -559
- data/ext/enterprise_script_service/libseccomp/tests/18-sim-basic_whitelist.tests +0 -32
- data/ext/enterprise_script_service/libseccomp/tests/34-sim-basic_blacklist.tests +0 -32
|
@@ -17,7 +17,7 @@ of the Ministry of Economy, Trade and Industry of Japan.
|
|
|
17
17
|
|
|
18
18
|
## How to get mruby
|
|
19
19
|
|
|
20
|
-
The stable version 2.1.
|
|
20
|
+
The stable version 2.1.2 of mruby can be downloaded via the following URL: [https://github.com/mruby/mruby/archive/2.1.2.zip](https://github.com/mruby/mruby/archive/2.1.2.zip)
|
|
21
21
|
|
|
22
22
|
The latest development version of mruby can be downloaded via the following URL: [https://github.com/mruby/mruby/zipball/master](https://github.com/mruby/mruby/zipball/master)
|
|
23
23
|
|
|
@@ -38,7 +38,7 @@ puts [1,2,3]
|
|
|
38
38
|
3
|
|
39
39
|
```
|
|
40
40
|
|
|
41
|
-
#### mruby [2.1.
|
|
41
|
+
#### mruby [2.1.2 (2020-08-06)]
|
|
42
42
|
|
|
43
43
|
```
|
|
44
44
|
[1, 2, 3]
|
|
@@ -61,7 +61,7 @@ end
|
|
|
61
61
|
|
|
62
62
|
`ZeroDivisionError` is raised.
|
|
63
63
|
|
|
64
|
-
#### mruby [2.1.
|
|
64
|
+
#### mruby [2.1.2 (2020-08-06)]
|
|
65
65
|
|
|
66
66
|
No exception is raised.
|
|
67
67
|
|
|
@@ -89,7 +89,7 @@ p Liste.new "foobar"
|
|
|
89
89
|
|
|
90
90
|
` [] `
|
|
91
91
|
|
|
92
|
-
#### mruby [2.1.
|
|
92
|
+
#### mruby [2.1.2 (2020-08-06)]
|
|
93
93
|
|
|
94
94
|
`ArgumentError` is raised.
|
|
95
95
|
|
|
@@ -119,7 +119,7 @@ false
|
|
|
119
119
|
true
|
|
120
120
|
```
|
|
121
121
|
|
|
122
|
-
#### mruby [2.1.
|
|
122
|
+
#### mruby [2.1.2 (2020-08-06)]
|
|
123
123
|
|
|
124
124
|
```
|
|
125
125
|
true
|
|
@@ -156,7 +156,7 @@ p 'ok'
|
|
|
156
156
|
ok
|
|
157
157
|
```
|
|
158
158
|
|
|
159
|
-
#### mruby [2.1.
|
|
159
|
+
#### mruby [2.1.2 (2020-08-06)]
|
|
160
160
|
|
|
161
161
|
```
|
|
162
162
|
test.rb:8: undefined method 'test_func' (NoMethodError)
|
|
@@ -178,7 +178,7 @@ defined?(Foo)
|
|
|
178
178
|
nil
|
|
179
179
|
```
|
|
180
180
|
|
|
181
|
-
#### mruby [2.1.
|
|
181
|
+
#### mruby [2.1.2 (2020-08-06)]
|
|
182
182
|
|
|
183
183
|
`NameError` is raised.
|
|
184
184
|
|
|
@@ -195,7 +195,7 @@ alias $a $__a__
|
|
|
195
195
|
|
|
196
196
|
` nil `
|
|
197
197
|
|
|
198
|
-
#### mruby [2.1.
|
|
198
|
+
#### mruby [2.1.2 (2020-08-06)]
|
|
199
199
|
|
|
200
200
|
Syntax error
|
|
201
201
|
|
|
@@ -217,7 +217,7 @@ end
|
|
|
217
217
|
`ArgumentError` is raised.
|
|
218
218
|
The re-defined `+` operator does not accept any arguments.
|
|
219
219
|
|
|
220
|
-
#### mruby [2.1.
|
|
220
|
+
#### mruby [2.1.2 (2020-08-06)]
|
|
221
221
|
|
|
222
222
|
` 'ab' `
|
|
223
223
|
Behavior of the operator wasn't changed.
|
|
@@ -233,7 +233,7 @@ $ ruby -e 'puts Proc.new {}.binding'
|
|
|
233
233
|
#<Binding:0x00000e9deabb9950>
|
|
234
234
|
```
|
|
235
235
|
|
|
236
|
-
#### mruby [2.1.
|
|
236
|
+
#### mruby [2.1.2 (2020-08-06)]
|
|
237
237
|
|
|
238
238
|
```
|
|
239
239
|
$ ./bin/mruby -e 'puts Proc.new {}.binding'
|
|
@@ -255,7 +255,7 @@ $ ruby -e 'def m(*r,**k) p [r,k] end; m("a"=>1,:b=>2)'
|
|
|
255
255
|
[[{"a"=>1}], {:b=>2}]
|
|
256
256
|
```
|
|
257
257
|
|
|
258
|
-
#### mruby [mruby 2.1.
|
|
258
|
+
#### mruby [mruby 2.1.2]
|
|
259
259
|
|
|
260
260
|
```
|
|
261
261
|
$ ./bin/mruby -e 'def m(*r,**k) p [r,k] end; m("a"=>1,:b=>2)'
|
|
@@ -959,8 +959,21 @@ mrb_get_mid(mrb_state *mrb) /* get method symbol */
|
|
|
959
959
|
*/
|
|
960
960
|
MRB_API mrb_int mrb_get_argc(mrb_state *mrb);
|
|
961
961
|
|
|
962
|
+
/**
|
|
963
|
+
* Retrieve an array of arguments from mrb_state.
|
|
964
|
+
*
|
|
965
|
+
* Correctly handles *splat arguments.
|
|
966
|
+
*/
|
|
962
967
|
MRB_API mrb_value* mrb_get_argv(mrb_state *mrb);
|
|
963
968
|
|
|
969
|
+
/**
|
|
970
|
+
* Retrieve the first and only argument from mrb_state.
|
|
971
|
+
* Raises ArgumentError unless the number of arguments is exactly one.
|
|
972
|
+
*
|
|
973
|
+
* Correctly handles *splat arguments.
|
|
974
|
+
*/
|
|
975
|
+
MRB_API mrb_value mrb_get_arg1(mrb_state *mrb);
|
|
976
|
+
|
|
964
977
|
/* `strlen` for character string literals (use with caution or `strlen` instead)
|
|
965
978
|
Adjacent string literals are concatenated in C/C++ in translation phase 6.
|
|
966
979
|
If `lit` is not one, the compiler will report a syntax error:
|
|
@@ -137,7 +137,6 @@ MRB_API mrb_value mrb_word_boxing_float_pool(struct mrb_state*, mrb_float);
|
|
|
137
137
|
#define mrb_sclass_p(o) BOXWORD_OBJ_TYPE_P(o, SCLASS)
|
|
138
138
|
#define mrb_proc_p(o) BOXWORD_OBJ_TYPE_P(o, PROC)
|
|
139
139
|
#define mrb_range_p(o) BOXWORD_OBJ_TYPE_P(o, RANGE)
|
|
140
|
-
#define mrb_file_p(o) BOXWORD_OBJ_TYPE_P(o, FILE)
|
|
141
140
|
#define mrb_env_p(o) BOXWORD_OBJ_TYPE_P(o, ENV)
|
|
142
141
|
#define mrb_data_p(o) BOXWORD_OBJ_TYPE_P(o, DATA)
|
|
143
142
|
#define mrb_fiber_p(o) BOXWORD_OBJ_TYPE_P(o, FIBER)
|
|
@@ -22,14 +22,19 @@ struct REnv {
|
|
|
22
22
|
mrb_sym mid;
|
|
23
23
|
};
|
|
24
24
|
|
|
25
|
-
/* flags (21bits): 1(
|
|
26
|
-
#define
|
|
27
|
-
#define
|
|
28
|
-
#define
|
|
29
|
-
#define
|
|
30
|
-
#define
|
|
31
|
-
#define
|
|
32
|
-
#define
|
|
25
|
+
/* flags (21bits): 1(close):1(touched):1(heap):8(cioff/bidx):8(stack_len) */
|
|
26
|
+
#define MRB_ENV_SET_LEN(e,len) ((e)->flags = (((e)->flags & ~0xff)|((unsigned int)(len) & 0xff)))
|
|
27
|
+
#define MRB_ENV_LEN(e) ((mrb_int)((e)->flags & 0xff))
|
|
28
|
+
#define MRB_ENV_CLOSED (1<<20)
|
|
29
|
+
#define MRB_ENV_TOUCHED (1<<19)
|
|
30
|
+
#define MRB_ENV_HEAPED (1<<18)
|
|
31
|
+
#define MRB_ENV_CLOSE(e) ((e)->flags |= MRB_ENV_CLOSED)
|
|
32
|
+
#define MRB_ENV_TOUCH(e) ((e)->flags |= MRB_ENV_TOUCHED)
|
|
33
|
+
#define MRB_ENV_HEAP(e) ((e)->flags |= MRB_ENV_HEAPED)
|
|
34
|
+
#define MRB_ENV_HEAP_P(e) ((e)->flags & MRB_ENV_HEAPED)
|
|
35
|
+
#define MRB_ENV_ONSTACK_P(e) (((e)->flags & MRB_ENV_CLOSED) == 0)
|
|
36
|
+
#define MRB_ENV_BIDX(e) (((e)->flags >> 8) & 0xff)
|
|
37
|
+
#define MRB_ENV_SET_BIDX(e,idx) ((e)->flags = (((e)->flags & ~(0xff<<8))|((unsigned int)(idx) & 0xff)<<8))
|
|
33
38
|
|
|
34
39
|
void mrb_env_unshare(mrb_state*, struct REnv*);
|
|
35
40
|
|
|
@@ -103,32 +103,31 @@ static const unsigned int IEEE754_INFINITY_BITS_SINGLE = 0x7F800000;
|
|
|
103
103
|
#endif
|
|
104
104
|
|
|
105
105
|
enum mrb_vtype {
|
|
106
|
-
MRB_TT_FALSE = 0,
|
|
107
|
-
MRB_TT_TRUE,
|
|
108
|
-
MRB_TT_FLOAT,
|
|
109
|
-
MRB_TT_FIXNUM,
|
|
110
|
-
MRB_TT_SYMBOL,
|
|
111
|
-
MRB_TT_UNDEF,
|
|
112
|
-
MRB_TT_CPTR,
|
|
113
|
-
MRB_TT_FREE,
|
|
114
|
-
MRB_TT_OBJECT,
|
|
115
|
-
MRB_TT_CLASS,
|
|
116
|
-
MRB_TT_MODULE,
|
|
117
|
-
MRB_TT_ICLASS,
|
|
118
|
-
MRB_TT_SCLASS,
|
|
119
|
-
MRB_TT_PROC,
|
|
120
|
-
MRB_TT_ARRAY,
|
|
121
|
-
MRB_TT_HASH,
|
|
122
|
-
MRB_TT_STRING,
|
|
123
|
-
MRB_TT_RANGE,
|
|
124
|
-
MRB_TT_EXCEPTION,
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
MRB_TT_MAXDEFINE /* 25 */
|
|
106
|
+
MRB_TT_FALSE = 0,
|
|
107
|
+
MRB_TT_TRUE,
|
|
108
|
+
MRB_TT_FLOAT,
|
|
109
|
+
MRB_TT_FIXNUM,
|
|
110
|
+
MRB_TT_SYMBOL,
|
|
111
|
+
MRB_TT_UNDEF,
|
|
112
|
+
MRB_TT_CPTR,
|
|
113
|
+
MRB_TT_FREE,
|
|
114
|
+
MRB_TT_OBJECT,
|
|
115
|
+
MRB_TT_CLASS,
|
|
116
|
+
MRB_TT_MODULE,
|
|
117
|
+
MRB_TT_ICLASS,
|
|
118
|
+
MRB_TT_SCLASS,
|
|
119
|
+
MRB_TT_PROC,
|
|
120
|
+
MRB_TT_ARRAY,
|
|
121
|
+
MRB_TT_HASH,
|
|
122
|
+
MRB_TT_STRING,
|
|
123
|
+
MRB_TT_RANGE,
|
|
124
|
+
MRB_TT_EXCEPTION,
|
|
125
|
+
MRB_TT_ENV,
|
|
126
|
+
MRB_TT_DATA,
|
|
127
|
+
MRB_TT_FIBER,
|
|
128
|
+
MRB_TT_ISTRUCT,
|
|
129
|
+
MRB_TT_BREAK,
|
|
130
|
+
MRB_TT_MAXDEFINE
|
|
132
131
|
};
|
|
133
132
|
|
|
134
133
|
#include <mruby/object.h>
|
|
@@ -240,9 +239,6 @@ struct RCptr {
|
|
|
240
239
|
#ifndef mrb_range_p
|
|
241
240
|
#define mrb_range_p(o) (mrb_type(o) == MRB_TT_RANGE)
|
|
242
241
|
#endif
|
|
243
|
-
#ifndef mrb_file_p
|
|
244
|
-
#define mrb_file_p(o) (mrb_type(o) == MRB_TT_FILE)
|
|
245
|
-
#endif
|
|
246
242
|
#ifndef mrb_env_p
|
|
247
243
|
#define mrb_env_p(o) (mrb_type(o) == MRB_TT_ENV)
|
|
248
244
|
#endif
|
|
@@ -47,7 +47,7 @@ MRB_BEGIN_DECL
|
|
|
47
47
|
/*
|
|
48
48
|
* Tiny release version number.
|
|
49
49
|
*/
|
|
50
|
-
#define MRUBY_RELEASE_TEENY
|
|
50
|
+
#define MRUBY_RELEASE_TEENY 2
|
|
51
51
|
|
|
52
52
|
/*
|
|
53
53
|
* The mruby version.
|
|
@@ -67,12 +67,12 @@ MRB_BEGIN_DECL
|
|
|
67
67
|
/*
|
|
68
68
|
* Release month.
|
|
69
69
|
*/
|
|
70
|
-
#define MRUBY_RELEASE_MONTH
|
|
70
|
+
#define MRUBY_RELEASE_MONTH 8
|
|
71
71
|
|
|
72
72
|
/*
|
|
73
73
|
* Release day.
|
|
74
74
|
*/
|
|
75
|
-
#define MRUBY_RELEASE_DAY
|
|
75
|
+
#define MRUBY_RELEASE_DAY 6
|
|
76
76
|
|
|
77
77
|
/*
|
|
78
78
|
* Release date as a string.
|
|
@@ -28,9 +28,8 @@ static mrb_value
|
|
|
28
28
|
mrb_ary_assoc(mrb_state *mrb, mrb_value ary)
|
|
29
29
|
{
|
|
30
30
|
mrb_int i;
|
|
31
|
-
mrb_value v
|
|
32
|
-
|
|
33
|
-
mrb_get_args(mrb, "o", &k);
|
|
31
|
+
mrb_value v;
|
|
32
|
+
mrb_value k = mrb_get_arg1(mrb);
|
|
34
33
|
|
|
35
34
|
for (i = 0; i < RARRAY_LEN(ary); ++i) {
|
|
36
35
|
v = mrb_check_array_type(mrb, RARRAY_PTR(ary)[i]);
|
|
@@ -59,9 +58,8 @@ static mrb_value
|
|
|
59
58
|
mrb_ary_rassoc(mrb_state *mrb, mrb_value ary)
|
|
60
59
|
{
|
|
61
60
|
mrb_int i;
|
|
62
|
-
mrb_value v
|
|
63
|
-
|
|
64
|
-
mrb_get_args(mrb, "o", &value);
|
|
61
|
+
mrb_value v;
|
|
62
|
+
mrb_value value = mrb_get_arg1(mrb);
|
|
65
63
|
|
|
66
64
|
for (i = 0; i < RARRAY_LEN(ary); ++i) {
|
|
67
65
|
v = RARRAY_PTR(ary)[i];
|
|
@@ -140,9 +138,8 @@ mrb_ary_slice_bang(mrb_state *mrb, mrb_value self)
|
|
|
140
138
|
mrb_ary_modify(mrb, a);
|
|
141
139
|
|
|
142
140
|
if (mrb_get_argc(mrb) == 1) {
|
|
143
|
-
mrb_value index;
|
|
141
|
+
mrb_value index = mrb_get_arg1(mrb);
|
|
144
142
|
|
|
145
|
-
mrb_get_args(mrb, "o|i", &index, &len);
|
|
146
143
|
switch (mrb_type(index)) {
|
|
147
144
|
case MRB_TT_RANGE:
|
|
148
145
|
if (mrb_range_beg_len(mrb, index, &i, &len, ARY_LEN(a), TRUE) == MRB_RANGE_OK) {
|
|
@@ -649,8 +649,8 @@ main(int argc, char **argv)
|
|
|
649
649
|
/* adjust stack length of toplevel environment */
|
|
650
650
|
if (mrb->c->cibase->env) {
|
|
651
651
|
struct REnv *e = mrb->c->cibase->env;
|
|
652
|
-
if (e &&
|
|
653
|
-
|
|
652
|
+
if (e && MRB_ENV_LEN(e) < proc->body.irep->nlocals) {
|
|
653
|
+
MRB_ENV_SET_LEN(e, proc->body.irep->nlocals);
|
|
654
654
|
}
|
|
655
655
|
}
|
|
656
656
|
/* pass a proc for evaluation */
|
|
@@ -52,19 +52,26 @@ usage(const char *name)
|
|
|
52
52
|
static char *
|
|
53
53
|
get_outfilename(mrb_state *mrb, char *infile, const char *ext)
|
|
54
54
|
{
|
|
55
|
-
size_t
|
|
56
|
-
size_t extlen;
|
|
55
|
+
size_t ilen, flen, elen;
|
|
57
56
|
char *outfile;
|
|
58
|
-
char *p;
|
|
57
|
+
char *p = NULL;
|
|
59
58
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
outfile = (char*)mrb_malloc(mrb, infilelen + extlen + 1);
|
|
63
|
-
memcpy(outfile, infile, infilelen + 1);
|
|
59
|
+
ilen = strlen(infile);
|
|
60
|
+
flen = ilen;
|
|
64
61
|
if (*ext) {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
62
|
+
elen = strlen(ext);
|
|
63
|
+
if ((p = strrchr(infile, '.'))) {
|
|
64
|
+
ilen = p - infile;
|
|
65
|
+
}
|
|
66
|
+
flen += elen;
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
flen = ilen;
|
|
70
|
+
}
|
|
71
|
+
outfile = (char*)mrb_malloc(mrb, flen+1);
|
|
72
|
+
strncpy(outfile, infile, ilen+1);
|
|
73
|
+
if (p) {
|
|
74
|
+
strncpy(outfile+ilen, ext, elen+1);
|
|
68
75
|
}
|
|
69
76
|
|
|
70
77
|
return outfile;
|
|
@@ -107,7 +107,7 @@ def to_r
|
|
|
107
107
|
[Fixnum, Float].each do |cls|
|
|
108
108
|
[:+, :-, :*, :/, :==].each do |op|
|
|
109
109
|
cls.instance_eval do
|
|
110
|
-
original_operator_name = "__original_operator_#{op}_complex"
|
|
110
|
+
original_operator_name = :"__original_operator_#{op}_complex"
|
|
111
111
|
alias_method original_operator_name, op
|
|
112
112
|
define_method op do |rhs|
|
|
113
113
|
if rhs.is_a? Complex
|
|
@@ -174,7 +174,7 @@ div_pair(struct float_pair *q, struct float_pair const *a,
|
|
|
174
174
|
static mrb_value
|
|
175
175
|
complex_div(mrb_state *mrb, mrb_value self)
|
|
176
176
|
{
|
|
177
|
-
mrb_value rhs;
|
|
177
|
+
mrb_value rhs = mrb_get_arg1(mrb);
|
|
178
178
|
struct mrb_complex *a, *b;
|
|
179
179
|
struct float_pair ar, ai, br, bi;
|
|
180
180
|
struct float_pair br2, bi2;
|
|
@@ -183,7 +183,6 @@ complex_div(mrb_state *mrb, mrb_value self)
|
|
|
183
183
|
struct float_pair ai_br, ar_bi;
|
|
184
184
|
struct float_pair zr, zi;
|
|
185
185
|
|
|
186
|
-
mrb_get_args(mrb, "o", &rhs);
|
|
187
186
|
a = complex_ptr(mrb, self);
|
|
188
187
|
b = complex_ptr(mrb, rhs);
|
|
189
188
|
|
|
@@ -88,7 +88,7 @@ create_proc_from_string(mrb_state *mrb, char *s, mrb_int len, mrb_value binding,
|
|
|
88
88
|
e->mid = ci->mid;
|
|
89
89
|
e->stack = ci[1].stackent;
|
|
90
90
|
e->cxt = mrb->c;
|
|
91
|
-
|
|
91
|
+
MRB_ENV_SET_LEN(e, ci->proc->body.irep->nlocals);
|
|
92
92
|
bidx = ci->argc;
|
|
93
93
|
if (ci->argc < 0) bidx = 2;
|
|
94
94
|
else bidx += 1;
|
|
@@ -291,8 +291,7 @@ mrb_fiber_alive_p(mrb_state *mrb, mrb_value self)
|
|
|
291
291
|
static mrb_value
|
|
292
292
|
fiber_eq(mrb_state *mrb, mrb_value self)
|
|
293
293
|
{
|
|
294
|
-
mrb_value other;
|
|
295
|
-
mrb_get_args(mrb, "o", &other);
|
|
294
|
+
mrb_value other = mrb_get_arg1(mrb);
|
|
296
295
|
|
|
297
296
|
if (!mrb_fiber_p(other)) {
|
|
298
297
|
return mrb_false_value();
|
|
@@ -8,8 +8,7 @@ istruct_test_initialize(mrb_state *mrb, mrb_value self)
|
|
|
8
8
|
{
|
|
9
9
|
char *string = (char*)mrb_istruct_ptr(self);
|
|
10
10
|
mrb_int size = mrb_istruct_size();
|
|
11
|
-
mrb_value object;
|
|
12
|
-
mrb_get_args(mrb, "o", &object);
|
|
11
|
+
mrb_value object = mrb_get_arg1(mrb);
|
|
13
12
|
|
|
14
13
|
if (mrb_fixnum_p(object)) {
|
|
15
14
|
strncpy(string, "fixnum", size-1);
|
|
@@ -45,8 +44,8 @@ istruct_test_length(mrb_state *mrb, mrb_value self)
|
|
|
45
44
|
static mrb_value
|
|
46
45
|
istruct_test_test_receive(mrb_state *mrb, mrb_value self)
|
|
47
46
|
{
|
|
48
|
-
mrb_value object;
|
|
49
|
-
|
|
47
|
+
mrb_value object = mrb_get_arg1(mrb);
|
|
48
|
+
|
|
50
49
|
if (mrb_obj_class(mrb, object) != mrb_class_get(mrb, "InlineStructTest"))
|
|
51
50
|
{
|
|
52
51
|
mrb_raise(mrb, E_TYPE_ERROR, "Expected InlineStructTest");
|
|
@@ -492,10 +492,9 @@ mrb_file_truncate(mrb_state *mrb, mrb_value self)
|
|
|
492
492
|
{
|
|
493
493
|
int fd;
|
|
494
494
|
mrb_int length;
|
|
495
|
-
mrb_value lenv;
|
|
495
|
+
mrb_value lenv = mrb_get_arg1(mrb);
|
|
496
496
|
|
|
497
497
|
fd = mrb_io_fileno(mrb, self);
|
|
498
|
-
mrb_get_args(mrb, "o", &lenv);
|
|
499
498
|
length = mrb_int(mrb, lenv);
|
|
500
499
|
if (mrb_ftruncate(fd, length) != 0) {
|
|
501
500
|
mrb_raise(mrb, E_IO_ERROR, "ftruncate failed");
|
|
@@ -93,9 +93,7 @@ mrb_filetest_s_directory_p(mrb_state *mrb, mrb_value klass)
|
|
|
93
93
|
#endif
|
|
94
94
|
|
|
95
95
|
struct stat st;
|
|
96
|
-
mrb_value obj;
|
|
97
|
-
|
|
98
|
-
mrb_get_args(mrb, "o", &obj);
|
|
96
|
+
mrb_value obj = mrb_get_arg1(mrb);
|
|
99
97
|
|
|
100
98
|
if (mrb_stat(mrb, obj, &st) < 0)
|
|
101
99
|
return mrb_false_value();
|
|
@@ -124,9 +122,7 @@ mrb_filetest_s_pipe_p(mrb_state *mrb, mrb_value klass)
|
|
|
124
122
|
# endif
|
|
125
123
|
|
|
126
124
|
struct stat st;
|
|
127
|
-
mrb_value obj;
|
|
128
|
-
|
|
129
|
-
mrb_get_args(mrb, "o", &obj);
|
|
125
|
+
mrb_value obj = mrb_get_arg1(mrb);
|
|
130
126
|
|
|
131
127
|
if (mrb_stat(mrb, obj, &st) < 0)
|
|
132
128
|
return mrb_false_value();
|
|
@@ -167,9 +163,7 @@ mrb_filetest_s_symlink_p(mrb_state *mrb, mrb_value klass)
|
|
|
167
163
|
|
|
168
164
|
#ifdef S_ISLNK
|
|
169
165
|
struct stat st;
|
|
170
|
-
mrb_value obj;
|
|
171
|
-
|
|
172
|
-
mrb_get_args(mrb, "o", &obj);
|
|
166
|
+
mrb_value obj = mrb_get_arg1(mrb);
|
|
173
167
|
|
|
174
168
|
if (mrb_lstat(mrb, obj, &st) == -1)
|
|
175
169
|
return mrb_false_value();
|
|
@@ -210,9 +204,7 @@ mrb_filetest_s_socket_p(mrb_state *mrb, mrb_value klass)
|
|
|
210
204
|
|
|
211
205
|
#ifdef S_ISSOCK
|
|
212
206
|
struct stat st;
|
|
213
|
-
mrb_value obj;
|
|
214
|
-
|
|
215
|
-
mrb_get_args(mrb, "o", &obj);
|
|
207
|
+
mrb_value obj = mrb_get_arg1(mrb);
|
|
216
208
|
|
|
217
209
|
if (mrb_stat(mrb, obj, &st) < 0)
|
|
218
210
|
return mrb_false_value();
|
|
@@ -236,9 +228,8 @@ static mrb_value
|
|
|
236
228
|
mrb_filetest_s_exist_p(mrb_state *mrb, mrb_value klass)
|
|
237
229
|
{
|
|
238
230
|
struct stat st;
|
|
239
|
-
mrb_value obj;
|
|
231
|
+
mrb_value obj = mrb_get_arg1(mrb);
|
|
240
232
|
|
|
241
|
-
mrb_get_args(mrb, "o", &obj);
|
|
242
233
|
if (mrb_stat(mrb, obj, &st) < 0)
|
|
243
234
|
return mrb_false_value();
|
|
244
235
|
|
|
@@ -261,9 +252,7 @@ mrb_filetest_s_file_p(mrb_state *mrb, mrb_value klass)
|
|
|
261
252
|
#endif
|
|
262
253
|
|
|
263
254
|
struct stat st;
|
|
264
|
-
mrb_value obj;
|
|
265
|
-
|
|
266
|
-
mrb_get_args(mrb, "o", &obj);
|
|
255
|
+
mrb_value obj = mrb_get_arg1(mrb);
|
|
267
256
|
|
|
268
257
|
if (mrb_stat(mrb, obj, &st) < 0)
|
|
269
258
|
return mrb_false_value();
|
|
@@ -285,9 +274,7 @@ static mrb_value
|
|
|
285
274
|
mrb_filetest_s_zero_p(mrb_state *mrb, mrb_value klass)
|
|
286
275
|
{
|
|
287
276
|
struct stat st;
|
|
288
|
-
mrb_value obj;
|
|
289
|
-
|
|
290
|
-
mrb_get_args(mrb, "o", &obj);
|
|
277
|
+
mrb_value obj = mrb_get_arg1(mrb);
|
|
291
278
|
|
|
292
279
|
if (mrb_stat(mrb, obj, &st) < 0)
|
|
293
280
|
return mrb_false_value();
|
|
@@ -310,9 +297,7 @@ static mrb_value
|
|
|
310
297
|
mrb_filetest_s_size(mrb_state *mrb, mrb_value klass)
|
|
311
298
|
{
|
|
312
299
|
struct stat st;
|
|
313
|
-
mrb_value obj;
|
|
314
|
-
|
|
315
|
-
mrb_get_args(mrb, "o", &obj);
|
|
300
|
+
mrb_value obj = mrb_get_arg1(mrb);
|
|
316
301
|
|
|
317
302
|
if (mrb_stat(mrb, obj, &st) < 0)
|
|
318
303
|
mrb_sys_fail(mrb, "mrb_stat");
|
|
@@ -332,9 +317,7 @@ static mrb_value
|
|
|
332
317
|
mrb_filetest_s_size_p(mrb_state *mrb, mrb_value klass)
|
|
333
318
|
{
|
|
334
319
|
struct stat st;
|
|
335
|
-
mrb_value obj;
|
|
336
|
-
|
|
337
|
-
mrb_get_args(mrb, "o", &obj);
|
|
320
|
+
mrb_value obj = mrb_get_arg1(mrb);
|
|
338
321
|
|
|
339
322
|
if (mrb_stat(mrb, obj, &st) < 0)
|
|
340
323
|
return mrb_nil_value();
|