Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions depend
Original file line number Diff line number Diff line change
Expand Up @@ -17871,21 +17871,32 @@ time.$(OBJEXT): {$(VPATH)}timev.rbinc
time.$(OBJEXT): {$(VPATH)}util.h
time.$(OBJEXT): {$(VPATH)}vm_core.h
time.$(OBJEXT): {$(VPATH)}vm_opts.h
transcode.$(OBJEXT): $(CCAN_DIR)/check_type/check_type.h
transcode.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h
transcode.$(OBJEXT): $(CCAN_DIR)/list/list.h
transcode.$(OBJEXT): $(CCAN_DIR)/str/str.h
transcode.$(OBJEXT): $(hdrdir)/ruby/ruby.h
transcode.$(OBJEXT): $(top_srcdir)/internal/array.h
transcode.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h
transcode.$(OBJEXT): $(top_srcdir)/internal/box.h
transcode.$(OBJEXT): $(top_srcdir)/internal/class.h
transcode.$(OBJEXT): $(top_srcdir)/internal/compilers.h
transcode.$(OBJEXT): $(top_srcdir)/internal/encoding.h
transcode.$(OBJEXT): $(top_srcdir)/internal/gc.h
transcode.$(OBJEXT): $(top_srcdir)/internal/imemo.h
transcode.$(OBJEXT): $(top_srcdir)/internal/inits.h
transcode.$(OBJEXT): $(top_srcdir)/internal/object.h
transcode.$(OBJEXT): $(top_srcdir)/internal/sanitizers.h
transcode.$(OBJEXT): $(top_srcdir)/internal/serial.h
transcode.$(OBJEXT): $(top_srcdir)/internal/set_table.h
transcode.$(OBJEXT): $(top_srcdir)/internal/static_assert.h
transcode.$(OBJEXT): $(top_srcdir)/internal/string.h
transcode.$(OBJEXT): $(top_srcdir)/internal/transcode.h
transcode.$(OBJEXT): $(top_srcdir)/internal/variable.h
transcode.$(OBJEXT): $(top_srcdir)/internal/vm.h
transcode.$(OBJEXT): $(top_srcdir)/internal/warnings.h
transcode.$(OBJEXT): {$(VPATH)}assert.h
transcode.$(OBJEXT): {$(VPATH)}atomic.h
transcode.$(OBJEXT): {$(VPATH)}backward/2/assume.h
transcode.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
transcode.$(OBJEXT): {$(VPATH)}backward/2/bool.h
Expand Down Expand Up @@ -18055,15 +18066,24 @@ transcode.$(OBJEXT): {$(VPATH)}internal/value_type.h
transcode.$(OBJEXT): {$(VPATH)}internal/variable.h
transcode.$(OBJEXT): {$(VPATH)}internal/warning_push.h
transcode.$(OBJEXT): {$(VPATH)}internal/xmalloc.h
transcode.$(OBJEXT): {$(VPATH)}method.h
transcode.$(OBJEXT): {$(VPATH)}missing.h
transcode.$(OBJEXT): {$(VPATH)}node.h
transcode.$(OBJEXT): {$(VPATH)}onigmo.h
transcode.$(OBJEXT): {$(VPATH)}oniguruma.h
transcode.$(OBJEXT): {$(VPATH)}ruby_assert.h
transcode.$(OBJEXT): {$(VPATH)}ruby_atomic.h
transcode.$(OBJEXT): {$(VPATH)}rubyparser.h
transcode.$(OBJEXT): {$(VPATH)}shape.h
transcode.$(OBJEXT): {$(VPATH)}st.h
transcode.$(OBJEXT): {$(VPATH)}subst.h
transcode.$(OBJEXT): {$(VPATH)}thread_$(THREAD_MODEL).h
transcode.$(OBJEXT): {$(VPATH)}thread_native.h
transcode.$(OBJEXT): {$(VPATH)}transcode.c
transcode.$(OBJEXT): {$(VPATH)}transcode_data.h
transcode.$(OBJEXT): {$(VPATH)}vm_core.h
transcode.$(OBJEXT): {$(VPATH)}vm_debug.h
transcode.$(OBJEXT): {$(VPATH)}vm_opts.h
transcode.$(OBJEXT): {$(VPATH)}vm_sync.h
util.$(OBJEXT): $(hdrdir)/ruby/ruby.h
util.$(OBJEXT): $(top_srcdir)/internal/array.h
Expand Down
80 changes: 40 additions & 40 deletions doc/language/options.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,15 +61,15 @@ nil

See also:

- {Option -a}[rdoc-ref:@a-3A+Split+Input+Lines+into+Fields]:
- {Option -a}[rdoc-ref:@-a+Split+Input+Lines+into+Fields]:
Split input lines into fields.
- {Option -F}[rdoc-ref:@F-3A+Set+Input+Field+Separator]:
- {Option -F}[rdoc-ref:@-F+Set+Input+Field+Separator]:
Set input field separator.
- {Option -l}[rdoc-ref:@l-3A+Set+Output+Record+Separator-3B+Chop+Lines]:
- {Option -l}[rdoc-ref:@-l+Set+Output+Record+Separator+Chop+Lines]:
Set output record separator; chop lines.
- {Option -n}[rdoc-ref:@n-3A+Run+Program+in+gets+Loop]:
- {Option -n}[rdoc-ref:@-n+Run+Program+in+gets+Loop]:
Run program in `gets` loop.
- {Option -p}[rdoc-ref:@p-3A+-n-2C+with+Printing]:
- {Option -p}[rdoc-ref:@-p+-n+with+Printing]:
`-n`, with printing.

### `-a`: Split Input Lines into Fields
Expand All @@ -91,15 +91,15 @@ and the default field separator is `$;`.

See also:

- {Option -0}[rdoc-ref:@0-3A+Set+-24-2F+-28Input+Record+Separator-29]:
- {Option -0}[rdoc-ref:@-0+Set++Input+Record+Separator]:
Set `$/` (input record separator).
- {Option -F}[rdoc-ref:@F-3A+Set+Input+Field+Separator]:
- {Option -F}[rdoc-ref:@-F+Set+Input+Field+Separator]:
Set input field separator.
- {Option -l}[rdoc-ref:@l-3A+Set+Output+Record+Separator-3B+Chop+Lines]:
- {Option -l}[rdoc-ref:@-l+Set+Output+Record+Separator+Chop+Lines]:
Set output record separator; chop lines.
- {Option -n}[rdoc-ref:@n-3A+Run+Program+in+gets+Loop]:
- {Option -n}[rdoc-ref:@-n+Run+Program+in+gets+Loop]:
Run program in `gets` loop.
- {Option -p}[rdoc-ref:@p-3A+-n-2C+with+Printing]:
- {Option -p}[rdoc-ref:@-p+-n+with+Printing]:
`-n`, with printing.

### `-c`: Check Syntax
Expand Down Expand Up @@ -186,9 +186,9 @@ Whitespace between the option and its argument may be omitted.

See also:

- {Option --external-encoding}[options_md.html#label--external-encoding-3A+Set+Default+External+Encoding]:
- {Option --external-encoding}[rdoc-ref:@--external+encoding+Set+Default+External+Encoding]:
Set default external encoding.
- {Option --internal-encoding}[options_md.html#label--internal-encoding-3A+Set+Default+Internal+Encoding]:
- {Option --internal-encoding}[rdoc-ref:@--internal+encoding+Set+Default+Internal+Encoding]:
Set default internal encoding.

Option `--encoding` is an alias for option `-E`.
Expand Down Expand Up @@ -221,15 +221,15 @@ The argument must immediately follow the option

See also:

- {Option -0}[rdoc-ref:@0-3A+Set+-24-2F+-28Input+Record+Separator-29]:
- {Option -0}[rdoc-ref:@-0+Set++Input+Record+Separator]:
Set `$/` (input record separator).
- {Option -a}[rdoc-ref:@a-3A+Split+Input+Lines+into+Fields]:
- {Option -a}[rdoc-ref:@-a+Split+Input+Lines+into+Fields]:
Split input lines into fields.
- {Option -l}[rdoc-ref:@l-3A+Set+Output+Record+Separator-3B+Chop+Lines]:
- {Option -l}[rdoc-ref:@-l+Set+Output+Record+Separator+Chop+Lines]:
Set output record separator; chop lines.
- {Option -n}[rdoc-ref:@n-3A+Run+Program+in+gets+Loop]:
- {Option -n}[rdoc-ref:@-n+Run+Program+in+gets+Loop]:
Run program in `gets` loop.
- {Option -p}[rdoc-ref:@p-3A+-n-2C+with+Printing]:
- {Option -p}[rdoc-ref:@-p+-n+with+Printing]:
`-n`, with printing.

### `-h`: Print Short Help Message
Expand Down Expand Up @@ -307,15 +307,15 @@ $ ruby -ln -e 'p $_' desiderata.txt

See also:

- {Option -0}[rdoc-ref:@0-3A+Set+-24-2F+-28Input+Record+Separator-29]:
- {Option -0}[rdoc-ref:@-0+Set++Input+Record+Separator]:
Set `$/` (input record separator).
- {Option -a}[rdoc-ref:@a-3A+Split+Input+Lines+into+Fields]:
- {Option -a}[rdoc-ref:@-a+Split+Input+Lines+into+Fields]:
Split input lines into fields.
- {Option -F}[rdoc-ref:@F-3A+Set+Input+Field+Separator]:
- {Option -F}[rdoc-ref:@-F+Set+Input+Field+Separator]:
Set input field separator.
- {Option -n}[rdoc-ref:@n-3A+Run+Program+in+gets+Loop]:
- {Option -n}[rdoc-ref:@-n+Run+Program+in+gets+Loop]:
Run program in `gets` loop.
- {Option -p}[rdoc-ref:@p-3A+-n-2C+with+Printing]:
- {Option -p}[rdoc-ref:@-p+-n+with+Printing]:
`-n`, with printing.

### `-n`: Run Program in `gets` Loop
Expand All @@ -341,15 +341,15 @@ be on good terms with all persons.

See also:

- {Option -0}[rdoc-ref:@0-3A+Set+-24-2F+-28Input+Record+Separator-29]:
- {Option -0}[rdoc-ref:@-0+Set++Input+Record+Separator]:
Set `$/` (input record separator).
- {Option -a}[rdoc-ref:@a-3A+Split+Input+Lines+into+Fields]:
- {Option -a}[rdoc-ref:@-a+Split+Input+Lines+into+Fields]:
Split input lines into fields.
- {Option -F}[rdoc-ref:@F-3A+Set+Input+Field+Separator]:
- {Option -F}[rdoc-ref:@-F+Set+Input+Field+Separator]:
Set input field separator.
- {Option -l}[rdoc-ref:@l-3A+Set+Output+Record+Separator-3B+Chop+Lines]:
- {Option -l}[rdoc-ref:@-l+Set+Output+Record+Separator+Chop+Lines]:
Set output record separator; chop lines.
- {Option -p}[rdoc-ref:@p-3A+-n-2C+with+Printing]:
- {Option -p}[rdoc-ref:@-p+-n+with+Printing]:
`-n`, with printing.

### `-p`: `-n`, with Printing
Expand All @@ -370,15 +370,15 @@ be on good terms with all persons.

See also:

- {Option -0}[rdoc-ref:@0-3A+Set+-24-2F+-28Input+Record+Separator-29]:
- {Option -0}[rdoc-ref:@-0+Set++Input+Record+Separator]:
Set `$/` (input record separator).
- {Option -a}[rdoc-ref:@a-3A+Split+Input+Lines+into+Fields]:
- {Option -a}[rdoc-ref:@-a+Split+Input+Lines+into+Fields]:
Split input lines into fields.
- {Option -F}[rdoc-ref:@F-3A+Set+Input+Field+Separator]:
- {Option -F}[rdoc-ref:@-F+Set+Input+Field+Separator]:
Set input field separator.
- {Option -l}[rdoc-ref:@l-3A+Set+Output+Record+Separator-3B+Chop+Lines]:
- {Option -l}[rdoc-ref:@-l+Set+Output+Record+Separator+Chop+Lines]:
Set output record separator; chop lines.
- {Option -n}[rdoc-ref:@n-3A+Run+Program+in+gets+Loop]:
- {Option -n}[rdoc-ref:@-n+Run+Program+in+gets+Loop]:
Run program in `gets` loop.

### `-r`: Require Library
Expand Down Expand Up @@ -427,7 +427,7 @@ $ ruby -s t.rb -foo=baz -bar=bat
```

The option may not be used with
{option -e}[rdoc-ref:@e-3A+Execute+Given+Ruby+Code]
{option -e}[rdoc-ref:@-e+Execute+Given+Ruby+Code]

### `-S`: Search Directories in `ENV['PATH']`

Expand Down Expand Up @@ -595,7 +595,7 @@ The supported features:
- `frozen-string-literal`: Freeze all string literals (default: disabled).
- `jit`: JIT compiler (default: disabled).

See also {option --enable}[options_md.html#label--enable-3A+Enable+Features].
See also {option --enable}[rdoc-ref:@--enable+Enable+Features].

### `--dump`: Dump Items

Expand All @@ -606,15 +606,15 @@ Some of the argument values cause the command to behave as if a different
option was given:

- `--dump=copyright`:
Same as {option \-\-copyright}[options_md.html#label--copyright-3A+Print+Ruby+Copyright].
Same as {option \-\-copyright}[rdoc-ref:@--copyright+Print+Ruby+Copyright].
- `--dump=help`:
Same as {option \-\-help}[options_md.html#label--help-3A+Print+Help+Message].
Same as {option \-\-help}[rdoc-ref:@--help+Print+Help+Message].
- `--dump=syntax`:
Same as {option -c}[rdoc-ref:@c-3A+Check+Syntax].
Same as {option -c}[rdoc-ref:@-c+Check+Syntax].
- `--dump=usage`:
Same as {option -h}[rdoc-ref:@h-3A+Print+Short+Help+Message].
Same as {option -h}[rdoc-ref:@-h+Print+Short+Help+Message].
- `--dump=version`:
Same as {option \-\-version}[options_md.html#label--version-3A+Print+Ruby+Version].
Same as {option \-\-version}[rdoc-ref:@--version+Print+Ruby+Version].

For other argument values and examples,
see {Option --dump}[option_dump_md.html].
Expand All @@ -629,7 +629,7 @@ ruby --enable=gems,rubyopt t.rb
```

For the features,
see {option --disable}[options_md.html#label--disable-3A+Disable+Features].
see {option --disable}[rdoc-ref:@--disable+Disable+Features].

### `--encoding`: Alias for `-E`.

Expand Down
2 changes: 1 addition & 1 deletion eval_jump.c
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ exec_end_procs_chain(struct end_proc_data *volatile *procs, VALUE *errp)
while ((link = *procs) != 0) {
*procs = link->next;
endproc = *link;
xfree(link);
SIZED_FREE(link);
(*endproc.func) (endproc.data);
*errp = errinfo;
}
Expand Down
25 changes: 0 additions & 25 deletions internal/gc.h
Original file line number Diff line number Diff line change
Expand Up @@ -198,9 +198,6 @@ RUBY_ATTR_MALLOC void *rb_xcalloc_mul_add(size_t, size_t, size_t);
void *rb_xrealloc_mul_add(const void *, size_t, size_t, size_t);
RUBY_ATTR_MALLOC void *rb_xmalloc_mul_add_mul(size_t, size_t, size_t, size_t);
RUBY_ATTR_MALLOC void *rb_xcalloc_mul_add_mul(size_t, size_t, size_t, size_t);
static inline void *ruby_sized_xrealloc_inlined(void *ptr, size_t new_size, size_t old_size) RUBY_ATTR_RETURNS_NONNULL RUBY_ATTR_ALLOC_SIZE((2));
static inline void *ruby_sized_xrealloc2_inlined(void *ptr, size_t new_count, size_t elemsiz, size_t old_count) RUBY_ATTR_RETURNS_NONNULL RUBY_ATTR_ALLOC_SIZE((2, 3));
static inline void ruby_sized_xfree_inlined(void *ptr, size_t size);
void rb_gc_obj_id_moved(VALUE obj);
void rb_gc_register_pinning_obj(VALUE obj);

Expand Down Expand Up @@ -290,24 +287,6 @@ void rb_gc_writebarrier_remember(VALUE obj);
const char *rb_obj_info(VALUE obj);
void ruby_annotate_mmap(const void *addr, unsigned long size, const char *name);

static inline void *
ruby_sized_xrealloc_inlined(void *ptr, size_t new_size, size_t old_size)
{
return ruby_sized_xrealloc(ptr, new_size, old_size);
}

static inline void *
ruby_sized_xrealloc2_inlined(void *ptr, size_t new_count, size_t elemsiz, size_t old_count)
{
return ruby_sized_xrealloc2(ptr, new_count, elemsiz, old_count);
}

static inline void
ruby_sized_xfree_inlined(void *ptr, size_t size)
{
ruby_sized_xfree(ptr, size);
}

# define SIZED_REALLOC_N(v, T, m, n) \
((v) = (T *)ruby_sized_xrealloc2((void *)(v), (m), sizeof(T), (n)))

Expand All @@ -320,10 +299,6 @@ ruby_sized_realloc_n(void *ptr, size_t new_count, size_t element_size, size_t ol
return ruby_sized_xrealloc2(ptr, new_count, element_size, old_count);
}

#define ruby_sized_xrealloc ruby_sized_xrealloc_inlined
#define ruby_sized_xrealloc2 ruby_sized_xrealloc2_inlined
#define ruby_sized_xfree ruby_sized_xfree_inlined

void rb_gc_verify_shareable(VALUE);
bool rb_gc_checking_shareable(void);

Expand Down
2 changes: 1 addition & 1 deletion thread_none.c
Original file line number Diff line number Diff line change
Expand Up @@ -336,7 +336,7 @@ rb_thread_prevent_fork(void *(*func)(void *), void *data)
}

void
rb_thread_malloc_stack_set(rb_thread_t *th, void *stack)
rb_thread_malloc_stack_set(rb_thread_t *th, void *stack, size_t stack_size)
{
// no-op
}
Expand Down
17 changes: 9 additions & 8 deletions thread_pthread.c
Original file line number Diff line number Diff line change
Expand Up @@ -1822,8 +1822,8 @@ native_thread_destroy_atfork(struct rb_native_thread *nt)
*/

RB_ALTSTACK_FREE(nt->altstack);
ruby_xfree(nt->nt_context);
ruby_xfree(nt);
SIZED_FREE(nt->nt_context);
SIZED_FREE(nt);
}
}

Expand Down Expand Up @@ -2201,7 +2201,7 @@ native_thread_create_dedicated(rb_thread_t *th)
th->sched.malloc_stack = true;
rb_ec_initialize_vm_stack(th->ec, vm_stack, vm_stack_word_size);
th->sched.context_stack = vm_stack;

th->sched.context_stack_size = vm_stack_word_size;

int err = native_thread_create0(th->nt);
if (!err) {
Expand Down Expand Up @@ -2339,19 +2339,19 @@ rb_threadptr_sched_free(rb_thread_t *th)
#if USE_MN_THREADS
if (th->sched.malloc_stack) {
// has dedicated
ruby_xfree(th->sched.context_stack);
SIZED_FREE_N((VALUE *)th->sched.context_stack, th->sched.context_stack_size);
native_thread_destroy(th->nt);
}
else {
nt_free_stack(th->sched.context_stack);
// TODO: how to free nt and nt->altstack?
}

ruby_xfree(th->sched.context);
SIZED_FREE(th->sched.context);
th->sched.context = NULL;
// VM_ASSERT(th->sched.context == NULL);
#else
ruby_xfree(th->sched.context_stack);
SIZED_FREE_N((VALUE *)th->sched.context_stack, th->sched.context_stack_size);
native_thread_destroy(th->nt);
#endif

Expand Down Expand Up @@ -3447,7 +3447,7 @@ rb_internal_thread_remove_event_hook(rb_internal_thread_event_hook_t * hook)
}

if (success) {
ruby_xfree(hook);
SIZED_FREE(hook);
}
return success;
}
Expand Down Expand Up @@ -3489,10 +3489,11 @@ rb_thread_lock_native_thread(void)
}

void
rb_thread_malloc_stack_set(rb_thread_t *th, void *stack)
rb_thread_malloc_stack_set(rb_thread_t *th, void *stack, size_t stack_size)
{
th->sched.malloc_stack = true;
th->sched.context_stack = stack;
th->sched.context_stack_size = stack_size;
}

#endif /* THREAD_SYSTEM_DEPENDENT_IMPLEMENTATION */
1 change: 1 addition & 0 deletions thread_pthread.h
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ struct rb_thread_sched_item {
bool finished;
bool malloc_stack;
void *context_stack;
size_t context_stack_size;
struct coroutine_context *context;
};

Expand Down
1 change: 1 addition & 0 deletions thread_pthread_mn.c
Original file line number Diff line number Diff line change
Expand Up @@ -522,6 +522,7 @@ native_thread_create_shared(rb_thread_t *th)
th->ec->machine.stack_start = (void *)((uintptr_t)machine_stack + machine_stack_size);
th->ec->machine.stack_maxsize = machine_stack_size; // TODO
th->sched.context_stack = machine_stack;
th->sched.context_stack_size = machine_stack_size;

th->sched.context = ruby_xmalloc(sizeof(struct coroutine_context));
coroutine_initialize(th->sched.context, co_start, machine_stack, machine_stack_size);
Expand Down
2 changes: 1 addition & 1 deletion thread_win32.c
Original file line number Diff line number Diff line change
Expand Up @@ -1021,7 +1021,7 @@ rb_thread_prevent_fork(void *(*func)(void *), void *data)
}

void
rb_thread_malloc_stack_set(rb_thread_t *th, void *stack)
rb_thread_malloc_stack_set(rb_thread_t *th, void *stack, size_t stack_size)
{
// no-op
}
Expand Down
Loading