fl0l0u
e03042ec19
Update print.c
...
Strings not containing a newline are not printed synchronously
ex. bin/mruby -e '["a", "b", "c", "\n", "d", "e", "f", "\n"].each {|e| print e ; usleep 200000}'
2017-09-02 18:26:50 +02:00
Christopher Aue
35deaae776
Tested LocalJumpErrors caused by break in a proc
2017-08-30 12:25:55 +02:00
Yukihiro "Matz" Matsumoto
1260d3b68a
Add `__ENCODING__' support.
...
`__ENCODING__' returns the current encoding name (string), unlike
CRuby that returns the encoding object.
2017-08-28 22:42:06 +09:00
Yukihiro "Matz" Matsumoto
f1fa5bf1c6
Remove integer type mismatch warnings from parse.y.
2017-08-28 22:31:02 +09:00
Christopher Aue
c956e17c02
Replaced Array#each with while loop for performance reasons
...
Example benchmark:
$ time build/bench/bin/mruby -e "Array.new(2_000_000){ |i| i }.index{ |i| i == 1_999_999 }"
Before:
real 0m0.934s
user 0m0.922s
sys 0m0.003s
After:
real 0m0.590s
user 0m0.583s
sys 0m0.007s
2017-08-26 15:57:25 +02:00
Christopher Aue
6c9013e22b
Removed unneeded block check in Array#uniq
2017-08-26 15:57:25 +02:00
Christopher Aue
f3fb43c729
Reimplemented Array#flatten with #flatten!
2017-08-26 15:57:25 +02:00
Tomasz Dąbrowski
17c249780f
fix String#% %d test with MRB_INT16 set
2017-08-25 14:36:05 +02:00
Christopher Aue
3366894a40
Fixed register windows of OP_SENDs generated by NODE_{DREGX,REGX}; ref #3783
2017-08-23 18:16:05 +02:00
Christopher Aue
84d8ecc1d7
Fixed register windows of OP_SENDs generated by NODE_OP_ASGN; ref #3783
2017-08-23 18:15:44 +02:00
Christopher Aue
4aca9ef98e
Refactored code around generation of OP_SEND in NODE_OP_ASGN
2017-08-23 18:15:38 +02:00
Christopher Aue
1221f7676e
Fixed register windows of OP_SENDs generated by NODE_{FOR,SYMBOLS}; ref #3783
2017-08-23 18:15:27 +02:00
Christopher Aue
c040c8d92b
Tested register windows of OP_SENDs generated by NODE_{RESCUE,HASH,ALIAS}; ref #3783
2017-08-23 18:15:08 +02:00
Christopher Aue
c6596cf26a
Fixed register windows of OP_SENDs generated by NODE_{SCALL,CASE,YIELD,UNDEF}; ref #3783
2017-08-23 18:12:35 +02:00
Yukihiro "Matz" Matsumoto
0d865a77d5
c (mrbc_context) may be NULL; fix #3787
2017-08-22 09:47:10 +09:00
Yukihiro "Matz" Matsumoto
834523945e
Replace stack pop() by push_n(2); pop_n(3); fix #3783
...
To calculate correct register windows size. The fix was suggested
by Christopher Aue.
2017-08-19 11:56:04 +09:00
Yukihiro "Matz" Matsumoto
f1767fd079
Separate mrb_str_buf_new and mrb_str_new_capa.
...
`mrb_str_buf_new` is an old function that ensures capacity size of
`MRB_STR_BUF_MIN_SIZE` minimum. Usually one need to use
`mrb_str_new_capa` instead.
2017-08-18 22:17:48 +09:00
Yukihiro "Matz" Matsumoto
198c898817
Rename mrb_str_concat2 to mrb_str_concat_m.
...
According to the naming convention a function that implements
a method should be suffixed by `_m`.
2017-08-18 22:17:47 +09:00
Clayton Smith
5dc688fb12
Check whether internal khash is initialized in Hash#compact!
2017-08-17 12:13:41 -04:00
Yukihiro "Matz" Matsumoto
8bf492f127
Reduce integer type mismatch warnings in VC.
2017-08-12 09:35:35 +09:00
Yukihiro "Matz" Matsumoto
d077a5f0a6
scan_hex may be used to parse both unicode and hex escape.
...
The error checks for both usage should be separated; ref #3774
2017-08-11 14:25:02 +09:00
Yukihiro "Matz" Matsumoto
56d4e41d76
Fixed a wrong condition in scan_hex; fix #3774
2017-08-11 14:14:30 +09:00
Yukihiro "Matz" Matsumoto
1d781da8a6
Should not include float.h here.
2017-08-11 13:52:01 +09:00
Yukihiro "Matz" Matsumoto
ef0b239704
Remove unnecessary inline function ary_elt.
...
And the function does not conform the naming convention anyway.
2017-08-11 12:57:37 +09:00
Yukihiro "Matz" Matsumoto
68470bef86
Check method existence in `to_enum'; ref #3773
2017-08-11 09:21:09 +09:00
Yukihiro "Matz" Matsumoto
9826ca54f2
VM stack may be reallocated during mrb_hash_get; fix #3771
2017-08-10 08:21:43 +09:00
Christopher Aue
2fadddcd20
Replaced tabs with spaces
2017-08-09 21:56:27 +02:00
Yukihiro "Matz" Matsumoto
6c61a60609
Implement Hash#compact! in C; ref #3769
2017-08-09 21:20:50 +09:00
vvakame
4d46f366ac
add method(compact, compact!) and test of Hash to mruby-hash-ext
2017-08-09 19:18:02 +09:00
Yukihiro "Matz" Matsumoto
8f62957888
Support break within rescue clauses; fix #3767 ref #3721
2017-08-09 12:25:20 +09:00
Yukihiro "Matz" Matsumoto
36dbfd9bda
Change return type of scan_oct from int to int32_t.
2017-08-05 01:06:36 +09:00
Yukihiro "Matz" Matsumoto
e86c252a99
Left shift of signed integers is undefined behavior in C; fix #3762
2017-08-05 01:06:36 +09:00
Hiroshi Mimaki
7bdc709da0
Fixed a invalid source path name on mruby debugger.
2017-08-04 17:25:03 +09:00
Yukihiro "Matz" Matsumoto
da24af34b9
Better class name management.
...
The change removes several internal instance variables used by
class name management. The variables `__classid__` and `__classpath__`
are no longer available. `__outer__` is used only for unnamed outer
classes/modules (and will be removed after they are named).
[Important note]
Along with this change we removed several public functions.
- mrb_class_outer_module()
- mrb_class_sym()
We believe no one have used those functions, but if you do, please
ask us for the workaround.
2017-08-01 22:25:49 +09:00
Christopher Aue
3359b86ec7
Improved speed of enumeration methods
2017-07-30 13:19:31 +02:00
Christopher Aue
a3bfd735a0
Added Array#bsearch_index
2017-07-28 23:51:49 +02:00
Christopher Aue
451574f142
Refactored Array#bsearch
2017-07-28 23:51:40 +02:00
Christopher Aue
8a6ce74b4d
Tested Array#bsearch more thoroughly
2017-07-28 17:15:35 +02:00
Yukihiro "Matz" Matsumoto
f26d00d9e8
Embed small size array elements in the heap.
...
It reduces the memory consumption and sometimes improve the
performance as well. For example, the consumed memory size
of `bench/bm_ao_render.rb` is reduced from 1.2GB to 1GB, and
its total execution time become 18.795 sec from 22.229 sec.
2017-07-27 16:13:06 +09:00
Yukihiro "Matz" Matsumoto
7b8d784040
Reimplement sort method to reduce array copying.
2017-07-25 14:42:38 +09:00
Yukihiro "Matz" Matsumoto
7f9e333647
Should not update @objs from mruby-bin-mruby mrbgem.rake; fix #3751
2017-07-24 16:53:20 +09:00
Yukihiro "Matz" Matsumoto
1fc9a3019d
Initialize potentially uninitialized local variable.
2017-07-24 16:46:27 +09:00
Yukihiro "Matz" Matsumoto
25a0a6b038
Need to patch OP_GETUPVAR and OP_SETUPVAR; fix #3732
2017-07-20 22:47:20 +09:00
Yukihiro "Matz" Matsumoto
ca2cfc6fe9
Merge pull request #3746 from christopheraue/mod_singleton_class_p
...
Implemented Module#singleton_class?
2017-07-19 09:08:11 +09:00
Christopher Aue
468cc34c93
Fixed Module#to_s and #name for #const_set modules
2017-07-18 22:55:37 +02:00
Christopher Aue
dd52b88101
implemented Module#singleton_class?
2017-07-18 20:47:05 +02:00
Christopher Aue
2730231e50
added tests for #3736
2017-07-16 22:34:23 +02:00
Yukihiro "Matz" Matsumoto
515a093213
Add Hash#transform_keys! and Hash#transform_values.
2017-07-15 08:51:35 +09:00
Yukihiro "Matz" Matsumoto
d7fef24a95
Use keys.each instead of unstable each_keys.
2017-07-15 08:50:52 +09:00
Yukihiro "Matz" Matsumoto
460d628490
Remove duplication in mruby-hash-ext test.
2017-07-14 16:10:26 +09:00