Граф коммитов

68 Коммитов

Автор SHA1 Сообщение Дата
nobu db02621bfb * load.c (load_unlock): update loading table at once.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34292 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-01-13 08:23:43 +00:00
nobu 50c1985555 * load.c (load_unlock): release loading barrier and then remove it
from loading_table if it is not in-use.  [Bug #5754]
* thread.c (rb_barrier_release, rb_barrier_destroy): return
  whether any other threads are waiting on it.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34039 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-12-14 03:20:02 +00:00
nobu f2fff83e96 * load.c (load_lock): delete the loading barrier if it has been
destroyed.
* thread.c (rb_barrier_wait): return nil for recursive lock
  instead of false, to distinguish it from destroyed barrier.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34036 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-12-14 01:20:11 +00:00
nobu ab6c8910f4 * load.c (load_unlock): all threads requiring one file should
share same loading barrier, so it must be kept alive while those
  are waiting on it.  [ruby-core:41618] [Bug #5754]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34027 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-12-13 07:13:31 +00:00
nobu 2e16e8a60e * load.c (rb_feature_p): lazy assigned load_path searched in
loading_table were not expanded, but all features, pushed to
  loading table, are expanded.  a patch by Yura Sokolov
  <funny.falcon AT gmail.com> in [ruby-core:41545]. [Bug #5727]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34013 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-12-12 08:26:54 +00:00
drbrain a14e13b23b * load.c (rb_f_require): Improve documentation of Kernel#require.
[Ruby 1.9 - Bug #5210]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33027 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-23 06:26:11 +00:00
nobu 8603c5934a * eval_error.c (rb_print_undef_str): new function to raise
NameError for undefined method.
* load.c (rb_mod_autoload_p), object.c (rb_mod_const_get),
  variable.c (rb_f_untrace_var, set_const_visibility), vm_method.c
  (rb_mod_{remove,undef,alias}_method, set_method_visibility):
  remove inadvertent symbol creation.  based on the first patch by
  Jeremy Evans at [ruby-core:38447].  [Feature #5089]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32686 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-26 16:05:35 +00:00
mrkn 564fb6a795 * load.c (rb_f_autoload): prevent to autoload for singleton
classes.  fixes [Bug #4886] [ruby-dev:43816]
* bootstraptest/test_autoload.rb: add tests for the above change.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32489 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-10 06:32:06 +00:00
akr 5ed8c08aa0 * eval.c, hash.c, load.c, proc.c, range.c, thread.c, time.c: don't
declare internal functions.

* internal.h, vm_core.h: declare internal functions.

* array.c: include internal.h.

* common.mk: update dependency for array.o.




git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32165 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-18 08:26:19 +00:00
akr e7996eb3cc * internal.h: declare internal functions here.
* node.h: declare NODE dependent internal functions here.

* iseq.h: declare rb_iseq_t dependent internal functions here.

* vm_core.h: declare rb_thread_t dependent internal functions here.

* bignum.c, class.c, compile.c, complex.c, cont.c, dir.c, encoding.c,
  enumerator.c, error.c, eval.c, file.c, gc.c, hash.c, inits.c, io.c,
  iseq.c, load.c, marshal.c, math.c, numeric.c, object.c, parse.y,
  proc.c, process.c, range.c, rational.c, re.c, ruby.c, string.c,
  thread.c, time.c, transcode.c, variable.c, vm.c,
  tool/compile_prelude.rb: don't declare internal functions declared
  in above headers.  include above headers if required.

  Note that rb_thread_mark() was declared as
  void rb_thread_mark(rb_thread_t *th) in cont.c but defined as
  void rb_thread_mark(void *ptr) in vm.c.  Now it is declared as
  the later in internal.h.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32156 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-17 22:43:38 +00:00
tarui 9ce69e7cef * load.c (loaded_feature_path): cut nonsence loop execution to fix
performance bug.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31875 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-31 21:56:01 +00:00
nahi 27ddbc5972 * include/ruby/defines.h (CASEFOLD_FILESYSTEM): Revert r30508. See #4255.
Now __APPLE__ is not CASEFOLD_FILESYSTEM again.

* load.c (loaded_feature_path, rb_feature_p, load_lock): Revert r30508. 
  See #4255. Make $LOADED_FEATURES scanning case-sensitive again.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31692 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-22 12:52:18 +00:00
nobu bf794afbf9 * load.c (rb_get_expanded_load_path): always expand load paths.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30789 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-02-05 01:09:39 +00:00
nobu dd55661f56 * include/ruby/defines.h (CASEFOLD_FILESYSTEM): HFS+ is case
insensitive.
* load.c (loaded_feature_path, rb_feature_p, load_lock): on a
  case-insensitive filesystem, loaded features search should
  ignore case.  [ruby-core:34297]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30508 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-01-10 13:46:47 +00:00
nobu 1aff775d39 * load.c (rb_f_require_relative): don't omit return type.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30343 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-12-25 03:48:57 +00:00
drbrain d0830a222c Document require_relative
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30342 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-12-25 02:07:13 +00:00
akr 0316582ebc * load.c: parenthesize macro arguments.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30242 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-12-18 05:43:01 +00:00
nobu 097d58a594 * load.c (ruby_init_ext): export for golfers.
* vm_core.h (rb_iseq_eval, rb_iseq_compile_with_option): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29180 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-09-04 01:41:04 +00:00
nobu b9432e7630 * load.c (rb_provide_feature): clarify error message for frozen
$LOADED_FEATURES.  based on a patch from Run Paint Run Run at
  [ruby-core:31913].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29135 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-08-29 03:51:39 +00:00
nobu 946a037e30 * load.c (load_failed): should honor encoding. [ruby-core:31915]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29133 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-08-29 03:20:04 +00:00
naruse 72fa4d34c0 * ruby.c: add prototype of rb_realpath_internal.
* load.c: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28358 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-06-18 01:16:13 +00:00
mame 2db572514c * load.c (rb_load_internal): remove call to rb_realpath_internal
within rb_load_internal which caused big performance degradation.
  Instead, call rb_realpath_internal in the caller of
  rb_load_internal.  [ruby-dev:41502] [ruby-dev:41610]

* vm.c (rb_vm_call_cfunc): ditto.

* eval_intern.h (rb_vm_call_cfunc): ditto.

* ruby.c (process_options): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28351 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-06-17 14:32:20 +00:00
nobu 7336f32c3b * load.c (ruby_init_ext): statically linked extensions have no
real path.  [ruby-dev:41526]

* vm.c (rb_vm_call_cfunc): add filepath argument.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28147 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-06-03 09:58:32 +00:00
mame 208a51ffa3 * load.c (load_failed): use more accurate error message.
[ruby-core:23851]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28089 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-30 09:27:24 +00:00
marcandre c1ecff1b1e * hash.c: Documentation: change => in call-seq to ->.
* enum.c: Documentation: whitespace fix for r27865

* error.c: ditto

* file.c: ditto

* io.c: ditto

* load.c: ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27869 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-17 21:31:22 +00:00
marcandre 7729de4d91 * array.c: Documentation: change => in call-seq to ->.
Harmonize "#=>" in examples. [ruby-core:30206]

* bignum.c: ditto

* class.c: ditto

* compar.c: ditto

* cont.c: ditto

* dir.c: ditto

* encoding.c: ditto

* enum.c: ditto

* enumerator.c: ditto

* error.c: ditto

* eval.c: ditto

* file.c: ditto

* gc.c: ditto

* io.c: ditto

* load.c: ditto

* marshal.c: ditto

* math.c: ditto

* numeric.c: ditto

* object.c: ditto

* pack.c: ditto

* proc.c: ditto

* process.c: ditto

* random.c: ditto

* range.c: ditto

* re.c: ditto

* ruby.c: ditto

* signal.c: ditto

* sprintf.c: ditto

* string.c: ditto

* struct.c: ditto

* thread.c: ditto

* time.c: ditto

* transcode.c: ditto

* variable.c: ditto

* vm_eval.c: ditto

* vm_method.c: ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27865 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-17 21:07:33 +00:00
nobu 38af94c6ab * file.c (rb_file_dirname): split from rb_file_s_dirname.
* load.c (rb_f_require_relative): use absolute path instead of
  expanded path.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27111 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-30 09:26:09 +00:00
mame 6ff75042db * compile.c, iseq.c, ruby.c, vm.c, vm_core.h, vm_eval.c: add absolute
path field into rb_iseq_t.  The field contains a string representing
  a path to corresponding source file. or nil when the iseq is created
  from -e, stdin, eval, etc.  This field is used for require_relative.
  [ruby-dev:40004]

* load.c (rb_f_require_relative): add C implementation of
  require_relative.

* prelude.rb (require_relative): get rid of Ruby implementation of
  require_relative.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26959 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-16 17:40:00 +00:00
shugo 06fa07662b * load.c (rb_get_expanded_load_path): expand paths if any item in $:
is not a string.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26904 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-13 02:16:20 +00:00
shugo d9fe7ef492 * load.c (rb_get_expanded_load_path): does not expand paths if all
the items in $: are absolute paths.  [ruby-core:28113]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26902 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-13 01:34:38 +00:00
nobu 37e11f3cce * dln.c (translit_separator): moved back from load.c again.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26747 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-24 02:52:08 +00:00
marcandre 089494fcd1 * load.c (Kernel#autoload?, Module#autoload?): added doc [ruby-core:19983]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25066 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-23 19:45:37 +00:00
nobu 31a6d50863 * load.c (rb_feature_provided): fixed for autoloading extension
library without suffix.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24817 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-09 06:46:31 +00:00
nobu ec490ab2c4 * load.c (rb_feature_provided): suppressed warnings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24577 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-18 11:18:25 +00:00
nobu e07cb859cc * suppressed shorten-64-to-32 warnings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24195 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-18 08:05:32 +00:00
nobu ff1b8b7593 * file.c (rb_find_file_ext, rb_find_file): no needs to expand
paths with tilde twice.

* load.c (rb_f_load): load the given path directly if not found in
  load_path.

* load.c (search_required): search file in specified safe level.

* load.c (rb_require_safe): path to load is already searched in
  search_required().


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23828 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-06-23 07:05:04 +00:00
mame 5d30ddec17 * load.c (Init_load): $: must be readonly. [ruby-dev:38690]
* ruby.c (ruby_prog_init): $-W must be readonly.  [ruby-dev:38691]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23809 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-06-21 13:35:41 +00:00
matz bb7a1e8d5e * load.c (rb_f_require): RDoc updated. a patch from Run Paint Run
Run in [ruby-core:23833].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23724 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-06-17 07:59:26 +00:00
nobu 3bfa955a8c * load.c (load_lock): show backtrace at circular require.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23681 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-06-13 06:03:44 +00:00
nobu b26e4cbb22 * load.c (rb_provide): assumes us-ascii only.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23680 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-06-13 06:00:45 +00:00
nobu 7d8ae4129e * load.c (rb_require_safe): FilePathValue() implies rb_str_new4().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23679 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-06-13 05:59:01 +00:00
nobu 087ecdf5ed * load.c (rb_mod_autoload): try conversion to path like as
require.  [ruby-core:23834]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23678 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-06-13 05:57:41 +00:00
nobu 12d2c8ba41 stripped trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22552 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-22 14:23:33 +00:00
nobu f35308b3ef * eval_intern.h (translit_char): moved from ruby.c.
* load.c (load_ext): transliterates file separators and back if
  needed.

* symbian/setup (DLN_NEEDS_ALT_SEPARATOR): defined.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22437 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-19 06:11:41 +00:00
nobu 0f9422ef23 * load.c (load_lock): warn for circular require. [ruby-core:20794],
[ruby-core:20797]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21993 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-03 02:25:42 +00:00
nobu fa4f685ef7 * load.c (rb_require_safe): raises when the path to be loaded is
tainted.  [ruby-dev:37843]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21917 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-31 10:07:49 +00:00
shugo 1a89baadd3 * load.c (rb_feature_provided): should not calculate len by pointer
subtraction because feature may be a expanded path.
  [ruby-core:21267]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21875 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-29 07:32:07 +00:00
ko1 cf23d0f0f0 * vm.c: add a prefix "rb_" to exposed functions
vm_get_ruby_level_next_cfp(), rb_vm_make_env_object(),
  vm_stack_to_heap(), vm_make_proc(), vm_invoke_proc(),
  vm_get_sourceline(), vm_cref(), vm_localjump_error(),
  vm_make_jump_tag_but_local_jump(), vm_jump_tag_but_local_jump().
  This changes may affect only core because most of renamed functions
  require a pointer of not-exposed struct such as rb_thread_t or NODE.
  In short, they are core functions.
* cont.c, eval.c, eval_intern.h, load.c, proc.c, thread.c,
  vm_core.h, vm_dump.c, vm_eval.c, vm_exec.c, vm_insnhelper.c:
  ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21659 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-19 02:38:11 +00:00
usa 6a613ba2e4 * ruby.c (set_arg0): use strlcpy() instead of strncpy().
* load.c (rb_feature_p): ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20771 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-16 02:37:45 +00:00
nobu d7f67b4970 * load.c (rb_feature_p): load path must be expanded.
[ruby-dev:37388]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20655 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-12 02:00:55 +00:00