1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
The Ruby Programming Language [mirror]
Find a file
matz 70bbad3cfd * array.c: replace rb_protect_inspect() and rb_inspecting_p() by
rb_exec_recursive() in eval.c.

* eval.c (rb_exec_recursive): new function.

* array.c (rb_ary_join): use rb_exec_recursive().

* array.c (rb_ary_inspect, rb_ary_hash): ditto.

* file.c (rb_file_join): ditto.

* hash.c (rb_hash_inspect, rb_hash_to_s, rb_hash_hash): ditto.

* io.c (rb_io_puts): ditto.

* object.c (rb_obj_inspect): ditto

* struct.c (rb_struct_inspect): ditto.

* lib/set.rb (SortedSet::setup): a hack to shut up warning.
  [ruby-talk:132866]

* lib/time.rb (Time::strptime): add new function.  inspired by
  [ruby-talk:132815].

* lib/parsedate.rb (ParseDate::strptime): ditto.

* regparse.c: move st_*_strend() functions from st.c.  fixed some
  potential memory leaks.

* exception error messages updated.  [ruby-core:04497]

* ext/socket/socket.c (Init_socket): add bunch of Socket
  constants.  Patch from Sam Roberts <sroberts@uniserve.com>.
  [ruby-core:04409]

* array.c (rb_ary_s_create): no need for negative argc check.
  [ruby-core:04463]

* array.c (rb_ary_unshift_m): ditto.

* lib/xmlrpc/parser.rb (XMLRPC::FaultException): make it subclass
  of StandardError class, not Exception class.  [ruby-core:04429]

* parse.y (fcall_gen): lvar(arg) will be evaluated as
  lvar.call(arg) when lvar is a defined local variable. [new]

* object.c (rb_class_initialize): call inherited method before
  calling initializing block.

* eval.c (rb_thread_start_1): initialize newly pushed frame.

* lib/open3.rb (Open3::popen3): $? should not be EXIT_FAILURE.
  fixed: [ruby-core:04444]

* eval.c (is_defined): NODE_IASGN is an assignment.

* ext/readline/readline.c (Readline.readline): use rl_outstream
  and rl_instream.  [ruby-dev:25699]

* ext/etc/etc.c (Init_etc): sGroup needs HAVE_ST_GR_PASSWD check
  [ruby-dev:25675]

* misc/ruby-mode.el: [ruby-core:04415]

* lib/rdoc/generators/html_generator.rb: [ruby-core:04412]

* lib/rdoc/generators/ri_generator.rb: ditto.

* struct.c (make_struct): fixed: [ruby-core:04402]

* ext/curses/curses.c (window_color_set): [ruby-core:04393]

* ext/socket/socket.c (Init_socket): SO_REUSEPORT added.
  [ruby-talk:130092]

* object.c: [ruby-doc:818]

* parse.y (open_args): fix too verbose warnings for the space
  before argument parentheses.  [ruby-dev:25492]

* parse.y (parser_yylex): ditto.

* parse.y (parser_yylex): the first expression in the parentheses
  should not be a command.  [ruby-dev:25492]

* lib/irb/context.rb (IRB::Context::initialize): [ruby-core:04330]

* object.c (Init_Object): remove Object#type.  [ruby-core:04335]

* st.c (st_foreach): report success/failure by return value.
  [ruby-Bugs-1396]

* parse.y: forgot to initialize parser struct.  [ruby-dev:25492]

* parse.y (parser_yylex): no tLABEL on EXPR_BEG.
  [ruby-talk:127711]

* document updates - [ruby-core:04296], [ruby-core:04301],
  [ruby-core:04302], [ruby-core:04307]

* dir.c (rb_push_glob): should work for NUL delimited patterns.

* dir.c (rb_glob2): should aware of offset in the pattern.

* string.c (rb_str_new4): should propagate taintedness.

* env.h: rename member names in struct FRAME; last_func -> callee,
  orig_func -> this_func, last_class -> this_class.

* struct.c (rb_struct_set): use original method name, not callee
  name, to retrieve member slot.  [ruby-core:04268]

* time.c (time_strftime): protect from format modification from GC
  finalizers.

* object.c (Init_Object): remove rb_obj_id_obsolete()

* eval.c (rb_mod_define_method): incomplete subclass check.
  [ruby-dev:25464]

* gc.c (rb_data_object_alloc): klass may be NULL.
  [ruby-list:40498]

* bignum.c (rb_big_rand): should return positive random number.
  [ruby-dev:25401]

* bignum.c (rb_big_rand): do not use rb_big_modulo to generate
  random bignums.  [ruby-dev:25396]

* variable.c (rb_autoload): [ruby-dev:25373]

* eval.c (svalue_to_avalue): [ruby-dev:25366]

* string.c (rb_str_justify): [ruby-dev:25367]

* io.c (rb_f_select): [ruby-dev:25312]

* ext/socket/socket.c (sock_s_getservbyport): [ruby-talk:124072]

* struct.c (make_struct): [ruby-dev:25249]

* dir.c (dir_open_dir): new function.  [ruby-dev:25242]

* io.c (rb_f_open): add type check for return value from to_open.

* lib/pstore.rb (PStore#transaction): Use the empty content when a
  file is not found.  [ruby-dev:24561]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8068 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-03-04 06:47:45 +00:00
bcc32 * common.mk: add {pre,post}-install targets. 2005-03-03 09:44:33 +00:00
bin ri now merges the documentation if it finds the same class in multiple places 2004-08-30 14:22:26 +00:00
cygwin * common.mk: add {pre,post}-install targets. 2005-03-03 09:44:33 +00:00
djgpp * configure.in: better DJGPP support. add GNUmakefile. 2003-01-01 09:26:45 +00:00
doc * lib/generator.rb: A new library which converts an internal 2003-10-14 20:14:20 +00:00
ext * array.c: replace rb_protect_inspect() and rb_inspecting_p() by 2005-03-04 06:47:45 +00:00
lib * array.c: replace rb_protect_inspect() and rb_inspecting_p() by 2005-03-04 06:47:45 +00:00
misc * array.c: replace rb_protect_inspect() and rb_inspecting_p() by 2005-03-04 06:47:45 +00:00
missing * missing/os2.c, missing/x68.c: typo fix. pointed out by greentea. 2004-02-21 02:12:21 +00:00
sample * array.c: replace rb_protect_inspect() and rb_inspecting_p() by 2005-03-04 06:47:45 +00:00
test * array.c: replace rb_protect_inspect() and rb_inspecting_p() by 2005-03-04 06:47:45 +00:00
vms config.h_in has been renamed to config.h 2003-12-26 01:39:25 +00:00
win32 * {bcc32,win32,wince}/Makefile.sub (config.h): check if affected 2005-03-03 09:38:40 +00:00
wince * {bcc32,win32,wince}/Makefile.sub (config.h): check if affected 2005-03-03 09:38:40 +00:00
x68
.cvsignore * error.c (Init_Exception): remove Exception#to_str. [Ruby2] 2004-04-05 15:55:09 +00:00
.document Support "require" as variable name in RDoc 2004-10-10 03:35:51 +00:00
array.c * array.c: replace rb_protect_inspect() and rb_inspecting_p() by 2005-03-04 06:47:45 +00:00
ascii.c This commit was generated by cvs2svn to compensate for changes in r7843, 2005-01-28 15:02:36 +00:00
bignum.c * array.c: replace rb_protect_inspect() and rb_inspecting_p() by 2005-03-04 06:47:45 +00:00
ChangeLog * array.c: replace rb_protect_inspect() and rb_inspecting_p() by 2005-03-04 06:47:45 +00:00
class.c * array.c: replace rb_protect_inspect() and rb_inspecting_p() by 2005-03-04 06:47:45 +00:00
common.mk * array.c: replace rb_protect_inspect() and rb_inspecting_p() by 2005-03-04 06:47:45 +00:00
compar.c Remove explicit NIL_P() checks since rb_cmpint() does it again in the exactly same manner. 2004-06-22 06:30:41 +00:00
config.guess * eval.c (THREAD_ALLOC): th->thread should be initialized to NULL. 2004-07-17 02:23:52 +00:00
config.sub * config.guess, config.sub: Update to a more recent version as of 2004-06-09 06:10:59 +00:00
configure.in * configure.in, lib/mkmf.rb: use simple commands if available. 2005-02-22 14:52:59 +00:00
COPYING
COPYING.ja
defines.h * defines.h: include <net/socket.h> to get fd_set definition in BeOS. 2004-04-14 02:03:41 +00:00
dir.c * array.c: replace rb_protect_inspect() and rb_inspecting_p() by 2005-03-04 06:47:45 +00:00
dln.c * dln.c: typo fix. 2005-02-07 04:00:58 +00:00
dln.h Updated Copyrights of Matz to 2003. 2003-01-16 07:34:03 +00:00
dmyext.c
enum.c * eval.c (rb_eval): NODE_XSTR should pass copy of literal string. 2004-10-30 06:56:18 +00:00
env.h * array.c: replace rb_protect_inspect() and rb_inspecting_p() by 2005-03-04 06:47:45 +00:00
error.c * array.c: replace rb_protect_inspect() and rb_inspecting_p() by 2005-03-04 06:47:45 +00:00
euc_jp.c This commit was generated by cvs2svn to compensate for changes in r8021, 2005-02-23 12:41:49 +00:00
eval.c * array.c: replace rb_protect_inspect() and rb_inspecting_p() by 2005-03-04 06:47:45 +00:00
file.c * array.c: replace rb_protect_inspect() and rb_inspecting_p() by 2005-03-04 06:47:45 +00:00
gc.c * array.c: replace rb_protect_inspect() and rb_inspecting_p() by 2005-03-04 06:47:45 +00:00
GPL
hash.c * array.c: replace rb_protect_inspect() and rb_inspecting_p() by 2005-03-04 06:47:45 +00:00
inits.c Add boot_classes to rdoc parsing, fix a couple of bugs 2003-12-19 03:58:57 +00:00
install-sh
instruby.rb * common.mk: add {pre,post}-install targets. 2005-03-03 09:44:33 +00:00
intern.h * array.c: replace rb_protect_inspect() and rb_inspecting_p() by 2005-03-04 06:47:45 +00:00
io.c * array.c: replace rb_protect_inspect() and rb_inspecting_p() by 2005-03-04 06:47:45 +00:00
keywords * keywords, parse.y: separate EXPR_VALUE from EXPR_BEG. 2005-02-08 13:39:47 +00:00
LEGAL remove oniggnu.h (GNU regex API). 2005-02-26 08:05:06 +00:00
lex.c * keywords, parse.y: separate EXPR_VALUE from EXPR_BEG. 2005-02-08 13:39:47 +00:00
LGPL
main.c Fix indentation in time.c 2004-06-23 12:59:01 +00:00
Makefile.in * Makefile.in, configure.in: made EXTOUT configurable. 2005-01-31 15:19:27 +00:00
marshal.c * array.c: replace rb_protect_inspect() and rb_inspecting_p() by 2005-03-04 06:47:45 +00:00
math.c * eval.c (cvar_cbase): class variables cause SEGV in 2004-09-03 17:41:27 +00:00
mdoc2man.rb * mdoc2man.rb: Properly put nested braces, parentheses and angles. 2003-01-20 12:10:40 +00:00
missing.h * configure.in (ac_cv_func_setitimer): moved from defines.h 2003-12-22 08:23:55 +00:00
mkconfig.rb * configure.in, lib/mkmf.rb: use simple commands if available. 2005-02-22 14:52:59 +00:00
node.h * eval.c (rb_eval): [EXPERIMENTAL] NODE_LAMBDA implemented. 2005-03-02 03:21:31 +00:00
numeric.c * array.c: replace rb_protect_inspect() and rb_inspecting_p() by 2005-03-04 06:47:45 +00:00
object.c * array.c: replace rb_protect_inspect() and rb_inspecting_p() by 2005-03-04 06:47:45 +00:00
oniguruma.h * ascii.c, euc_jp.c, oniggnu.h, oniguruma.h, regcomp.c, regenc.c, regenc.h, regerror.c, regexec.c, regint.h, regparse.c, regparse.h, sjis.c, utf8.c: imported Oni Guruma 3.7.0. 2005-02-23 12:47:23 +00:00
pack.c * array.c: replace rb_protect_inspect() and rb_inspecting_p() by 2005-03-04 06:47:45 +00:00
parse.y * array.c: replace rb_protect_inspect() and rb_inspecting_p() by 2005-03-04 06:47:45 +00:00
prec.c * array.c, enum.c, eval.c, file.c, io.c, numeric.c, object.c, prec.c, 2004-04-14 04:06:52 +00:00
process.c * array.c: replace rb_protect_inspect() and rb_inspecting_p() by 2005-03-04 06:47:45 +00:00
random.c * random.c (rand_init): suppress warning. 2005-02-12 06:07:47 +00:00
range.c * array.c: replace rb_protect_inspect() and rb_inspecting_p() by 2005-03-04 06:47:45 +00:00
re.c remove oniggnu.h (GNU regex API). 2005-02-26 08:05:06 +00:00
re.h * configure.in, bcc32/Makefile.sub, win32/Makefile.sub: define 2003-03-04 14:12:19 +00:00
README
README.EXT * README.EXT (Example): extconf.rb is indispensable now. 2004-11-10 03:31:55 +00:00
README.EXT.ja * README.EXT, README.EXT.ja: remove MANIFEST stuff. 2004-11-01 10:41:08 +00:00
README.ja
regcomp.c regcomp.c: uninitialized member (backrefed_status) was used. 2005-03-01 12:23:17 +00:00
regenc.c This commit was generated by cvs2svn to compensate for changes in r8021, 2005-02-23 12:41:49 +00:00
regenc.h This commit was generated by cvs2svn to compensate for changes in r8021, 2005-02-23 12:41:49 +00:00
regerror.c This commit was generated by cvs2svn to compensate for changes in r8021, 2005-02-23 12:41:49 +00:00
regex.h remove oniggnu.h (GNU regex API). 2005-02-26 08:05:06 +00:00
regexec.c * ascii.c, euc_jp.c, oniggnu.h, oniguruma.h, regcomp.c, regenc.c, regenc.h, regerror.c, regexec.c, regint.h, regparse.c, regparse.h, sjis.c, utf8.c: imported Oni Guruma 3.7.0. 2005-02-23 12:47:23 +00:00
regint.h * array.c: replace rb_protect_inspect() and rb_inspecting_p() by 2005-03-04 06:47:45 +00:00
regparse.c * array.c: replace rb_protect_inspect() and rb_inspecting_p() by 2005-03-04 06:47:45 +00:00
regparse.h * ascii.c, euc_jp.c, oniggnu.h, oniguruma.h, regcomp.c, regenc.c, regenc.h, regerror.c, regexec.c, regint.h, regparse.c, regparse.h, sjis.c, utf8.c: imported Oni Guruma 3.7.0. 2005-02-23 12:47:23 +00:00
ruby.1 * ruby.1: add -width option to .Bl for old groff. 2004-03-21 12:08:02 +00:00
ruby.c * array.c: replace rb_protect_inspect() and rb_inspecting_p() by 2005-03-04 06:47:45 +00:00
ruby.h * eval.c (ruby_native_thread_kill): call pthread_kill() to send a 2005-03-02 08:11:28 +00:00
rubyio.h * io.c (io_getc): flush rb_stdout before read fro stdin, which is 2005-02-07 14:18:41 +00:00
rubysig.h * rubysig.h: <errno.h> is needed to use errno which may be a macro. 2004-01-09 02:52:19 +00:00
rubytest.rb * rubytest.rb: do nothing while cross-compiling, return status in 2004-04-15 10:57:16 +00:00
runruby.rb * runruby.rb: prepend LIBRUBY_SO to LD_PRELOAD as well as rubytest.rb. 2004-12-07 18:26:46 +00:00
signal.c * array.c: replace rb_protect_inspect() and rb_inspecting_p() by 2005-03-04 06:47:45 +00:00
sjis.c This commit was generated by cvs2svn to compensate for changes in r8021, 2005-02-23 12:41:49 +00:00
sprintf.c * array.c: replace rb_protect_inspect() and rb_inspecting_p() by 2005-03-04 06:47:45 +00:00
st.c * array.c: replace rb_protect_inspect() and rb_inspecting_p() by 2005-03-04 06:47:45 +00:00
st.h * array.c: replace rb_protect_inspect() and rb_inspecting_p() by 2005-03-04 06:47:45 +00:00
string.c * array.c: replace rb_protect_inspect() and rb_inspecting_p() by 2005-03-04 06:47:45 +00:00
struct.c * array.c: replace rb_protect_inspect() and rb_inspecting_p() by 2005-03-04 06:47:45 +00:00
time.c * array.c: replace rb_protect_inspect() and rb_inspecting_p() by 2005-03-04 06:47:45 +00:00
ToDo * error.c (Init_Exception): remove Exception#to_str. [Ruby2] 2004-04-05 15:55:09 +00:00
utf8.c * ascii.c, euc_jp.c, oniggnu.h, oniguruma.h, regcomp.c, regenc.c, regenc.h, regerror.c, regexec.c, regint.h, regparse.c, regparse.h, sjis.c, utf8.c: imported Oni Guruma 3.7.0. 2005-02-23 12:47:23 +00:00
util.c * enum.c (enum_sort_by): do not use qsort directly. use 2004-09-21 03:08:33 +00:00
util.h * enum.c (enum_sort_by): do not use qsort directly. use 2004-09-21 03:08:33 +00:00
variable.c * array.c: replace rb_protect_inspect() and rb_inspecting_p() by 2005-03-04 06:47:45 +00:00
version.c * version.c (ruby_show_copyright): obtain copyright year from 2004-03-25 12:01:41 +00:00
version.h * 2005-03-04 2005-03-04 00:16:09 +00:00

* What's Ruby

Ruby is the interpreted scripting language for quick and
easy object-oriented programming.  It has many features to
process text files and to do system management tasks (as in
Perl).  It is simple, straight-forward, and extensible.


* Features of Ruby

  + Simple Syntax
  + *Normal* Object-Oriented features(ex. class, method calls)
  + *Advanced* Object-Oriented features(ex. Mix-in, Singleton-method)
  + Operator Overloading
  + Exception Handling
  + Iterators and Closures
  + Garbage Collection
  + Dynamic Loading of Object files(on some architecture)
  + Highly Portable(works on many UNIX machines, and on DOS,
    Windows, Mac, BeOS etc.)


* How to get Ruby

The Ruby distribution can be found on:

  ftp://ftp.ruby-lang.org/pub/ruby/

You can get it by anonymous CVS.  How to check out is:

  $ cvs -d :pserver:anonymous@cvs.ruby-lang.org:/src login
  (Logging in to anonymous@cvs.ruby-lang.org)
  CVS password: anonymous
  $ cvs -z4 -d :pserver:anonymous@cvs.ruby-lang.org:/src checkout ruby


* Ruby home-page

The URL of the Ruby home-page is:

   http://www.ruby-lang.org/


* Mailing list

There is a mailing list to talk about Ruby.
To subscribe this list, please send the following phrase

	subscribe YourFirstName YourFamilyName
e.g.
        subscribe Joseph Smith

in the mail body (not subject) to the address <ruby-talk-ctl@ruby-lang.org>.


* How to compile and install

This is what you need to do to compile and install Ruby:

  1. If ./configure does not exist or is older than configure.in,
     run autoconf to (re)generate configure.

  2. Run ./configure, which will generate config.h and Makefile.

  3. Edit defines.h if you need.  Probably this step will not need.

  4. Remove comment mark(#) before the module names from ext/Setup (or
     add module names if not present), if you want to link modules
     statically.

     If you don't want to compile non static extension modules
     (probably on architectures which does not allow dynamic loading),
     remove comment mark from the line "#option nodynamic" in
     ext/Setup.

  5. Run make.

  6. Optionally, run 'make test' to check whether the compiled Ruby
     interpreter works well.  If you see the message "test succeeded",
     your ruby works as it should (hopefully).

  7. Run 'make install'

     You may have to be a super user to install ruby.

If you fail to compile ruby, please send the detailed error report with
the error log and machine/OS type, to help others.


* Copying

See the file COPYING.


* The Author

Feel free to send comments and bug reports to the author.  Here is the 
author's latest mail address:

  matz@netlab.jp

-------------------------------------------------------
created at: Thu Aug  3 11:57:36 JST 1995
Local variables:
mode: indented-text
end: