summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
2020-07-24Avoid using FPU with `mruby-os-memsize`; ref #5032dearblue
And, in the calculation of the instance variable size, the fraction was always rounded down because of division of integers, so fix it. At the same time, test items that are no longer passed due to this change are deleted.
2020-07-24Support without `mruby-method` for `mruby-os-memsize`; ref #5032dearblue
2020-07-24Add NUL terminator to string object size calculation; ref #5032dearblue
2020-07-23`ObjectSpace.count_objects` to support `MRB_TT_ISTRUCT`; #5046Yukihiro "Matz" Matsumoto
2020-07-23Fix a bug with `ht_index` called with `size==0`; fix #5046Yukihiro "Matz" Matsumoto
It happens when a hash made empty calls `rehash`.
2020-07-22Fix `puts` to print newline with empty strings; ref b184772Yukihiro "Matz" Matsumoto
2020-07-22Use more `mrb_field_write_barrier` for instance variables.Yukihiro "Matz" Matsumoto
2020-07-22Use more local variables.Yukihiro "Matz" Matsumoto
To make debugging easy, and to improve the performance little bit.
2020-07-22Move `gray_list` update from `gc_mark_children`.Yukihiro "Matz" Matsumoto
The responsibility moved to caller to avoid confusion. Currently the function is called from only 2 places, so it is relatively easy to ensure not to update `gray_list` in the caller. But the assumption may change in the future.
2020-07-22Avoid using `mrb_ary_modify` from the internal function.Yukihiro "Matz" Matsumoto
`mrb_ary_modify` calls `mrb_write_barrier`, so can cause the same problem of the past `push`. It is provided for use-level API.
2020-07-22Use `mrb_field_write_barrier` instead of `mrb_write_barrier` for `push`.Yukihiro "Matz" Matsumoto
When the array is very big, the simpler `mrb_write_barrier` causes calling `gc_mark_children` for big arrays repeatedly. That would hinder performance very badly.
2020-07-22Define `Array#to_a` to avoid unnecessary loops.Yukihiro "Matz" Matsumoto
2020-07-22Small comment fix in `mrblib/array.c`.Yukihiro "Matz" Matsumoto
2020-07-22Skip unnecessary `mark_context` if `mrb->c == mrb->root_c`.Yukihiro "Matz" Matsumoto
2020-07-22Fixed garbled characters; ref #5041dearblue
2020-07-21Remove unnecessory methods in `mruby-objectspace`; ref #5041dearblue
The `ObjectSpace#memsize_of` and `ObjectSpace#memsize_of_all` in `mruby-objectspace` ware migrated to `mruby-os-memsize` mrbgem.
2020-07-21Fix the VM stack handling bug in 'mrb_yield_with_class()`; fix #5042Yukihiro "Matz" Matsumoto
2020-07-20Implement `Kernel#print` and `Kernel#puts` in C.Yukihiro "Matz" Matsumoto
2020-07-20Merge pull request #5041 from RoryO/extract-memsize-to-gemYukihiro "Matz" Matsumoto
Extract memsize to gem
2020-07-19Adding to authorsRory OConnell
2020-07-19Separate `memsize_of` and `memsize_of_all` to a separate gem; #5040Rory OConnell
Those methods are originally CRuby specific. Co-authored-by: Yukihiro "Matz" Matsumoto <[email protected]>
2020-07-20Remove some tests from `mruby-objectspace` gem; #5040Yukihiro "Matz" Matsumoto
Those tests succeeds only on some configuration.
2020-07-20Avoid accessing `obj.tt` of `mrb_value`; #5040Yukihiro "Matz" Matsumoto
The old code compiles only on `MRB_NO_BOXING`.
2020-07-20Replace 0 by `MRB_EACH_OBJ_OK`; #5040Yukihiro "Matz" Matsumoto
2020-07-19Skip `MRB_TT_FREE` and `MRB_TT_BREAK` in `each_object`.Yukihiro "Matz" Matsumoto
2020-07-19Reorder members of `struct os_each_object_data` to stop warnings.Yukihiro "Matz" Matsumoto
`mrb_value` may or may not be struct according to configuration.
2020-07-19Should have updated the arg spec for `memsize_of`&`memsize_of_all`; #5040Yukihiro "Matz" Matsumoto
2020-07-19Use `c` specifier for `mrb_get_args`.Yukihiro "Matz" Matsumoto
2020-07-19Add new specifier `c` to `mrb_get_args`.Yukihiro "Matz" Matsumoto
`C` retrieves a `mrb_value` that refers a class/module. `c` retrieves a `struct RClass*` pointer to a class/module.
2020-07-19Fix `memsize_of_all` to count all objects if no argument given; #5040Yukihiro "Matz" Matsumoto
2020-07-19Fix `memsize_of_all` to count memory of subclass instances; #5040Yukihiro "Matz" Matsumoto
`ObjectSpace.memsize_of_all` takes a class and count memory size of all instances of the class and its subclasses (if any).
2020-07-19Merge pull request #5040 from RoryO/add-memsize-of-allYukihiro "Matz" Matsumoto
Add ObjectSpace.memsize_of_all
2020-07-18Avoid singleton classes with mrb_class_realRory O'Connell
2020-07-17Adding memsize_of_all docRory OConnell
2020-07-17Add ObjectSpace.memsize_of_allRory OConnell
2020-07-17Use `proc->env` to check `block_given?` if possible; fix #5039Yukihiro "Matz" Matsumoto
This bug has been there since mruby 1.4.0 (2018-04).
2020-07-17Fix indent of compiler conditions; #5032Yukihiro "Matz" Matsumoto
2020-07-17Fix `memsize_of` to count method table size; #5032Yukihiro "Matz" Matsumoto
Also avoid `mrb_funcall` to minimize VM recursion.
2020-07-17Fix `memsize_of` Fibers; #5032Yukihiro "Matz" Matsumoto
Memory size of a Fiber is calculated by stack size only in CRuby.
2020-07-17Add `const` to `irep` pointer in `os_memsize_of_irep`; #5032Yukihiro "Matz" Matsumoto
2020-07-17Remove recursive `memsize_of`; #5032Yukihiro "Matz" Matsumoto
This is enhancement from CRuby's `memsize_of`. We need to change the CRuby first for the enhancement.
2020-07-17Remove `MRB_TT_DATA` calculation of `memsize_of`; #5032Yukihiro "Matz" Matsumoto
2020-07-17Use `mrb_test` instead of `mrb_obj_eq`; #5032Yukihiro "Matz" Matsumoto
2020-07-17Fix `memsize_of` for fiber objects; #5032Yukihiro "Matz" Matsumoto
2020-07-17Fix `memsize_of` for string objects; #5032Yukihiro "Matz" Matsumoto
2020-07-17Merge pull request #5038 from dearblue/bidxYukihiro "Matz" Matsumoto
Fixed shift width for `MRB_ENV_SET_BIDX()`
2020-07-17Merge pull request #5032 from RoryO/add-objspace-memsize-ofYukihiro "Matz" Matsumoto
Add ObjectSpace.memsize_of
2020-07-16Fixed shift width for `MRB_ENV_SET_BIDX()`dearblue
ref c07f24cd1 and close #5035
2020-07-15mrb_ prefix conventionRory O'Connell
2020-07-14Clarify memsize_of documentationRory O'Connell