* defs/dtrace.d: new file. defined a dtrace provider "ruby".
* include/ruby/ruby.h (LIKELY): moved from vm.c.
(UNLIKELY): ditto.
(OBJSETUP): probe "object-create".
(RUBY_EVENT_RESCUE): new event.
* vm_exec.c (DEBUG_ENTER_INSN): embeded a probe insn-entry into it.
(DEBUG_END_INSN): insn-return.
* vm.c (LIKELY): moved into ruby.h.
(UNLIKELY): ditto.
(Init_BareVM): embeded a probe "raise" into it.
* variable.c (rb_class2name_without_alloc): new utility function.
* tool/rbinstall.rb (install?(:ext, :arch, :'ext-arch')): installs
dtrace.d if necessary.
* thread_pthread.c (add_signal_thread_list): probe "raise".
(rb_thread_create_timer_thread): ditto.
* thread.c (rb_thread_schedule_rec): probes "thread-enter" and
"thread-leave",
(thread_start_func_2): ditto.
(thread_cleanup_func): probe "thread-term"
* lib/mkmf.rb: supports dtrace postprocessor on making an extension.
* iseq.c (rb_vm_insn_name): new utility function.
(rb_vm_insn_len): ditto.
* insns.def (hook): probes "method-etnry", "method-return", "line",
and "rescue".
* compile.c (iseq_compile_each): adds a trace op for "rescue" probe.
* gc.c (garbage_collect): probes "gc-begin" and "gc-end".
(obj_free): probe "object-free"
(garbage_collect_with_gvl): probe "raise"
(negative_size_allocation_error): ditto.
(rb_memerror): ditto.
* eval.c (rb_rescue2): probe "rescue"
(rb_longjmp): probe "raise"
* ext/probe/probe.c: new extension for application defined probes.
* ext/probe/extconf.rb: ditto.
* configure.in (--with-tracing-model): new option to choose a tracing
mechanism.
(DTRACE): new substitution. name of dtrace(1).
(RUBY_TRACING_MODEL): new substitution.
(DTRACE_OBJ): ditto.
(MINIDTRACE_OBJ): ditto.
(GOLFDTRACE_OBJ): ditto.
(LIBRUBY_DTRACE_OBJ): ditto.
(RUBY_DTRACE_POSTPROCESS): new macro. checks whether the dtrace on
the system needs postprocessing.
(RUBY_DTRACE_BSD_BROKEN): new macro. checks whether the dtrace
supports USDT.
* Makefile.in:
(DTRACE): new variable. name of dtrace(1).
(TRACING_MODEL): new variable. name of the chosen tracing mechanism.
(DTRACE_OBJ): same as the one in configure.in.
(MINIDTRACE_OBJ): ditto.
(GOLFDTRACE_OBJ): ditto.
(LIBRUBY_DTRACE_OBJ): ditto.
(CPPOUTFILE): new substitution. necessary for generating dtrace.d
(trace_none.h): new target for TRACING_MODEL=none
(RUBY_H_INCLUDES): appended a header for tracing.
(distclean-local): also removes preprocessed version of dtrace.d
($(LIBRUBY_A)): needs $(LIBRUBY_DTRACE_OBJ) if dtrace needs
postprocessing.
($(PROGRAM)): ditto.
(golf): ditto.
(miniruby): ditto.
($(arch_hdrdir)/ruby/dtrace.d): new target. preprocessed verson
of defs/dtrace.d. generated if necessary.
($(arch_hdrdir)/ruby/trace_dtrace.h): new target.
definition of probes.
($(LIBRUBY_DTRACE_OBJ)): new target. generated if dtrace needs
postprocessing.
($(DTRACE_OBJ)): ditto.
($(MINIDTRACE_OBJ)): ditto.
($(GOLFDTRACE_OBJ)): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26235 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
ruby without current libraries.
* common.mk (rdoc): use XRUBY.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25438 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.in (INSTALLDOC): enable if rdoc or doxygen are enabled.
* common.mk (docs): target to make documents.
* Makefile.in, win32/Makefile.sub (install-{all,nodoc}): trigger
by $(INSTALLDOC) from install.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24956 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
remove rules to generate name2ctype.kwd from
UnicodeData.txt and Scripts.txt.
if you want to generate, use tool/enc-unicode.rb.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24678 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/enc-unicode.rb: added for generate name2ctype.kwd.
contributed by Run Paint Run Run [ruby-core:24775]
use like following:
ruby19 tool/enc-unicode.rb enc/unicode/UnicodeData.txt \
enc/unicode/Scripts.txt > enc/unicode/name2ctype.kwd
* enc/unicode.c (CodeRanges): move definitions to name2ctype.h.
* enc/unicode/name2ctype.h.blt, enc/unicode/name2ctype.kwd,
enc/unicode/name2ctype.src: updated to v5.1.
* enc/unicode/UnicodeData.txt, enc/unicode/Scripts.txt: added v5.1.
* Makefile.in: add rule to generate name2ctype.kwd from
UnicodeData.txt and Scripts.txt.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24651 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
result of diff and turns -e option off, because *BSD make passes
it by default.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24644 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
c.f. [ruby-core:23519].
(--with-ridir): new configure option.
* tool/instruby.rb (:doc, :rdoc): uses $ridir instead of
a fixed path.
* lib/rdoc/ri/paths.rb: follows $ridir.
* Makefile.in: removes RIDATADIR which is no longer used.
* bcc32/Makefile.sub: generates the 'ridir' entry for RbConfig.
removes RIDATADIR which is no longer used.
* win32/Makefile.sub: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23554 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
program base name. [ruby-dev:38241]
* configure.in (--with-soname): base name of shared library.
[ruby-dev:38290]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23368 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.in (Makefile): works even if RUBY_INSTALL_NAME
contains macro.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23150 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
(node_name.inc, known_errors.inc): unified from Makefile.in and
win32/Makefile.sub.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22647 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
building exts with miniruby, to get rid of overwriting running
program. [ruby-core:22339]
* Makefile.in, win32/Makefile.sub (RUNCMD, MKMAIN_CMD): macros to
run script file.
* ext/extmk.rb (parse_args): added --command-output option which
creates script file to make main program.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22592 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
universal binary. replaced --enable-fat-binary option which
didn't work actually.
* configure.in (RUBY_FUNC_ATTRIBUTE): added conditional test.
* configure.in (ac_cv_type_getgroups): decalared because getgroups()
fills rest of the buffer with garbages on Rosetta.
* configure.in (alloca): defines only for powerpc, but always
create empty object to suppress ld warning.
* configure.in (LIBRUBY_DLDFLAGS): set compatibility version with
TEENY.
* configure.in (CFLAGS, LDFLAGS): separates ARCH_FLAG.
* configure.in (arch): renamed to "universal" from "fat".
* Makefile.in (ARCH_FLAG): added.
* include/ruby/defines.h (WORDS_BIGENDIAN): uses
AC_APPLE_UNIVERSAL_BUILD.
* missing/alloca.c (alloca): defines only if C_ALLOCA is defined.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22106 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
EPERM on cygwin and mingw.
* Makefile.in ($(LIBRUBY_SO)): use wildcard option of objcopy.
* configure.in (DLDFLAGS): do not export all symbols.
* cygwin/GNUmakefile.in (RUBYDEF): rejects symbols prefixex with
Init_.
* win32/mkexports.rb (Exports::Mingw): includes all symbols except for
prefixed with Init_ as well as mswin32.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21685 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
definition from common.mk to {Makefile.in,win32/Makefile.sub}.
[ruby-dev:37678]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21284 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
known_errors.inc, miniprelude.c, newline.c): move rules from common.mk
to {Makefile.in,win32/Makefile.sub) for nmake.
[ruby-core:20993]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21280 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Doxygen.
Intorduces C-level API reference generation with Doxygen.
* tool/file2lastrev.rb: wrapper script that abstracts subversion
and git-svn.
* tool/strip-rdoc.rb: filter for preventing doxygen from processing
rdoc comments.
* configure.in: (Doxyfile): Doxyfile is generated together with
Makefile.
(PACKAGE): configuration $(PACKAGE) is necessary for $(docdir).
* instruby.rb: adds a new install target 'capi'
* common.mk (capi): new target that generates C API documents with
Doxygen.
(install-capi): new target.
(pre-install-capi): ditto.
(do-install-capi): ditto.
(post-install-capi): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20919 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
input files for code generators into defs/ directory.
* Makefile.in (lex.c): followed keywords and lex.c.src.
* common.mk (parser.o): followed keywords.
(INSNS): followed opt_*.def
* tools/instruction.rb: followed opt_*.def.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19844 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (enc.mk, prelude.c): not depend on $(RBCONFIG) on mswin32
to get of compiling twice each time.
* win32/Makefile.sub (prelude.c): not depend on $(PREP).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16668 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
rid of depending PREP with nmake.
* common.mk (encs): depends on libruby.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16637 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (up): target to update from the repository.
* Makefile.in, {win,bcc}32/Makefile.sub (IFCHANGE): tool to update a
file if changed.
* tool/ifchange: for unixen.
* win32/ifchange.bat: some fix
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15234 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
removing rule of ext/ripper/y.output from common.mk to Makefiles
that depend on platforms.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14926 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
compiled output file name explicitly.
* enc/Makefile.in, enc/depend: now makes compiler to put generated
files under directories corresnponding to the each source.
enc/trans supported.
* enc/make_encmake.rb: evaluates depend file before Makefile.in so
that the former can influence to CONFIG.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14573 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (.y.c): not discard the old target until successfully
created.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14194 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
bison with sed. [ruby-dev:32204]
* ruby.c (proc_options): use yydebug in cmdline_options.
* ruby.c (process_options): set yydebug flag of parser.
* parse.y (yydebug): moved into struct parser_params.
* parse.y (rb_parser_get_yydebug, rb_parser_set_yydebug): parser
generic methods.
* */Makefile.sub (parse.c): moved to common.mk.
* tool/ytab.sed: comment out yydebug definition, and substitute
yyerror with parser_yyerror.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13908 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lex.c.src: copied from keywords. This is the source of lex.c.blt.
* Makefile.in (lex.c): use lex.c.blt if keywords is same as lex.c.src.
* win32/Makefile.sub (lex.c): re-introduce copy rule.
* bcc32/Makefile.sub (lex.c): ditto.
* wince/Makefile.sub (lex.c): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13906 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
(MINIOBJS): set to dln.o if dmydln.o is not used.
* Makefile.in (miniruby): use MINIOBJS instead of MINIDLNOBJS.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13894 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Makefile.in (miniruby): use DLNOBJS and COMMONOBJS instead of
MINIOBJS and OBJS to avoid linking both dmydln.o and dln.o.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13888 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Although this may cause non-updated lex.c,
svn co may generate keywords newer than lex.c especially on
a file system which can record fractional mtime such as XFS.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13878 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk: generate ext_prelude.c by prelude.rb and gem_prelude.rb.
ruby (not miniruby) is linked with ext_prelude.o instead of prelude.o.
* inits.c (rb_call_inits): don't call Init_prelude.
* ruby.c: support --disable-gems option.
(ruby_init_gems): new function to define Gem::Enable and
invoke Init_prelude.
(process_options): call ruby_init_gems just after
ruby_init_loadpath.
* tool/compile_prelude.rb: support multiple files.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13865 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
use instruby.rb to install extensions instead of ext/extmk.rb.
* instruby.rb: store installed list into the file.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10943 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* mkconfig.rb, ext/extmk.rb, lib/mkmf.rb, win32/mkexports.rb: suppress
warnings with $VERBOSE.
* win32/resource.rb: only file which has more than one icon is DLL.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10891 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* main.c (always_gc): dllimport is required for VC to import a DLL
symbol. fixed: [ruby-dev:28051]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9714 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
macro definitions.
* bcc32/Makefile.sub: LIBRUBY_SO should use DLDOBJS, not EXTOBJS.
* {win32,wince}/Makefile.sub: separate config.h for compiler versions.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8902 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* array.c (rb_ary_update): a[n,m]=nil no longer works as element
deletion.
* enum.c (enum_sort_by): protect continuation jump in.
[ruby-dev:24642]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7145 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
doesn't work for object files on VC.
* */Makefile.sub (config.h): need SIZEOF_TIME_T now.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6113 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
separate files under directories due to directory separator.
* */Makefile.sub (MKFILES): common.mk and */Makefile.sub should not be
removed.
* win32/Makefile.sub, wince/Makefile.sub: $* cannot appear in explicit
rules.
* cygwin/GNUmakefile.in: some mingw stuffs were missed.
* lib/mkmf.rb (create_makefile): Borland make wrongly removes braces
from command lines.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6001 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
runruby.rb: run rdoc, test and so on with compiled extension
libraries. [ruby-dev:22688]
* ext/extmk.rb, lib/mkmf.rb: make extension libraries in separated
directory, similar to the actual directory structure.
* lib/fileutils.rb (FileUtils.copy_file): use the mode of the original
file to create new file.
* lib/rdoc/ri/ri_paths.rb (RI::Paths::SYSDIR): get rid of unexpected
influence by envirionment variable.
* bcc32/configure.bat, win32/configure.bat: add install-doc options.
* win32/win32.c, win32/win32.h (rb_w32_fstat): fix Borland C runtime
bug which returns wrong mode. [ruby-dev:22846]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5659 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
rdoc documentation, you need to run configure with
--enable-install-doc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5419 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
String#[] if more than one arguments are specified.
* lib/delegate.rb: avoid using common instance name as "@obj".
* lib/cgi.rb (CGI::QueryExtension::Value): Value is no longer
subclass of String, but DelegateClass(String).
* ext/curses/extconf.rb: restore function check for init_color.
[ruby-list:38905]
* Makefile.in: need to specify $(MAINLIBS) for the miniruby
generation rule.
* configure.in: better FreeBSD -lc_r support.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5206 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
pthread is used.
* marshal.c (w_extended): singleton methods should not be checked
when dumping via marshal_dump() or _dump(). [ruby-talk:85909]
* file.c (getcwdofdrv): avoid using getcwd() directly, use
my_getcwd() instead.
* merged NeXT, OpenStep, Rhapsody ports patch from Eric Sunshine
<sunshine@sunshineco.com>. [ruby-core:01596]
* marshal.c (w_object): LINK check earlier than anything else,
i.e. do not dump TYPE_IVAR for already dumped objects.
(ruby-bugs PR#1220)
* eval.c (rb_eval): call "inherited" only when a new class is
generated; not on reopening.
* eval.c (eval): prepend error position in evaluating string to
* configure.in: revived NextStep, OpenStep, and Rhapsody ports which
had become unbuildable; enhanced --enable-fat-binary option so that
it accepts a list of desired architectures (rather than assuming a
fixed list), or defaults to a platform-appropriate list if user does
not provide an explicit list; made the default list of architectures
for MAB (fat binary) more comprehensive; now uses -fno-common even
when building the interpreter (in addition to using it for
extensions), thus allowing the interpreter to be embedded into a
plugin module of an external project (in addition to allowing
embedding directly into an application); added checks for
<netinet/in_systm.h> (needed by `socket' extension) and getcwd(); now
ensures that -I/usr/local/include is employed when extensions'
extconf.rb scripts invoke have_header() since extension checks on
NextStep and OpenStep will fail without it if the desired resource
resides in the /usr/local tree; fixed formatting of --help message.
* Makefile.in: $(LIBRUBY_A) rule now deletes the archive before
invoking $(AR) since `ar' on Apple/NeXT can not "update" MAB archives
(see configure's --enable-fat-binary option); added rule for new
missing/getcwd.c.
* defines.h: fixed endian handling during MAB build (see configure's
--enable-fat-binary option) to ensure that all portions of the
project see the correct WORDS_BIGENDIAN value (some extension modules
were getting the wrong endian setting); added missing constants
GETPGRP_VOID, WNOHANG, WUNTRACED, X_OK, and type pid_t for NextStep
and OpenStep; removed unnecessary and problematic HAVE_SYS_WAIT_H
define in NeXT section.
* dir.c: do not allow NAMLEN() macro to trust dirent::d_namlen on
NextStep since, on some installations, this value always resolves
uselessly to zero.
* dln.c: added error reporting to NextStep extension loader since the
previous behavior of failing silently was not useful; now ensures
that NSLINKMODULE_OPTION_BINDNOW compatibility constant is defined
for OpenStep and Rhapsody; no longer includes <mach-o/dyld.h> twice
on Rhapsody since this header lacks multiple-include protection,
which resulted in "redefinition" compilation errors.
* main.c: also create hard reference to objc_msgSend() on NeXT
platforms (in addition to Apple platforms).
* lib/mkmf.rb: now exports XCFLAGS from configure script to extension
makefiles so that extensions can be built MAB (see configure's
--enable-fat-binary option); also utilize XCFLAGS in cc_command()
(but not cpp_command() because MAB flags are incompatible with
direct invocation of `cpp').
* ext/curses/extconf.rb: now additionally checks for presence of these
curses functions which are not present on NextStep or Openstep:
bkgd(), bkgdset(), color(), curs(), getbkgd(), init(), scrl(), set(),
setscrreg(), wattroff(), wattron(), wattrset(), wbkgd(), wbkgdset(),
wscrl(), wsetscrreg()
* ext/curses/curses.c: added appropriate #ifdef's for additional set of
curses functions now checked by extconf.rb; fixed curses_bkgd() and
window_bkgd() to correctly return boolean result rather than numeric
result; fixed window_getbkgd() to correctly signal an error by
returning nil rather than -1.
* ext/etc/etc.c: setup_passwd() and setup_group() now check for null
pointers before invoking rb_tainted_str_new2() upon fields extracted
from `struct passwd' and `struct group' since null pointers in some
fields are common on NextStep/OpenStep (especially so for the
`pw_comment' field) and rb_tainted_str_new2() throws an exception
when it receives a null pointer.
* ext/pty/pty.c: include "util.h" for strdup()/ruby_strdup() for
platforms such as NextStep and OpenStep which lack strdup().
* ext/socket/getaddrinfo.c: cast first argument of getservbyname(),
gethostbyaddr(), and gethostbyname() from (const char*) to non-const
(char*) for older platforms such as NextStep and OpenStep.
* ext/socket/socket.c: include "util.h" for strdup()/ruby_strdup() for
platforms such as NextStep and OpenStep which lack strdup(); include
<netinet/in_systm.h> if present for NextStep and OpenStep; cast first
argument of gethostbyaddr() and getservbyname() from (const char*) to
non-const (char*) for older platforms.
* ext/syslog/syslog.c: include "util.h" for strdup()/ruby_strdup() for
platforms such as NextStep and OpenStep which lack strdup().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5002 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
setgrent, getgrent, endgrent.
* ext/socket/socket.c (sock_s_gethostbyname): do not reverse lookup.
* Makefile.in: copy lex.c from $(srcdir) if it's not the current
directory. [ruby-dev:21437]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4640 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Makefile.in (fake.rb): set ALT_SEPARATOR to the default value.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3568 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
bcc32/Makefile.sub: Replace the complicated MFLAGS/MAKEFLAGS
parser with something plain and comprehensible. This fixes a
bug where make flags were wrongly reordered and the resulted
command line often did not make sense especially when BSD make
is used with extra arguments given. Tested with FreeBSD and
Linux by me and mswin32, bccwin32 and mingw by usa.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3408 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
mdoc. Provide a new option --with-mantype={doc|man} in case the
check does not work as expected.
* Makefile.in (MANTYPE): Define MANTYPE and pass it to
instruby.rb.
* instruby.rb: Convert mdoc manpages to man for systems which
nroff(1) does not grok mdoc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3377 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.in (LIBRUBYARG_STATIC, LIBRUBYARG_SHARED): linker
argument to link static/shared library respectively.
* Makefile.in (LIBRUBYARG_STATIC, LIBRUBYARG_SHARED): added.
* bcc32/Makefile.sub, win32/Makefile.sub: ditto.
* instruby.rb (LIBRUBY_A): install to libdir.
* lib/mkmf.rb (link_command): link static library of ruby, or
try_run fails unless LIBRUBY_SO is installed. [ruby-dev:18646]
* eval.c (call_trace_func): toplevel caller was missing.
[ruby-dev:18754]
* eval.c (proc_to_s): adjust created line number.
* parse.y (primary, do_block, brace_block): adjust line number of
block to beginning line, instead of the first statement inside
the block.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3042 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
win32/Makefile.sub: Introduce better command line syntax
(--make/--make-flags/--extstatic) to extmk.rb and instruby.rb.
Previously such command as 'make -j3 install' with pmake doesn't
fail. Formerly extmk.rb was receiving "make -j 3 -j 3" via the
command line arguments and just ended up recognizing the first
"3" as destdir. [with help of usa]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3022 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* eval.c (set_method_visibility): should have clear cache forq
updated visibility.
* numeric.c (flo_to_s): default format precision to be "%.16g".
* util.c (ruby_strtod): use own strtod(3) implementation to avoid
locale hell. Due to this change "0xff".to_f no longer returns 255.0
* eval.c (avalue_to_yvalue): new function to distinguish yvalue
(no-arg == Qundef) from svalue (no-arg == Qnil).
* eval.c (rb_yield_0): use avalue_to_yvalue().
* eval.c (assign): warn if val == Qundef where it means rhs is
void (e.g. yield without value or call without argument).
* parse.y (value_expr): need not to warn for WHILE and UNTIL,
since they can have return value (via valued break).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2457 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
also be detected.
* eval.c (rb_eval_cmd): cbase should not be NULL; it should be
either ruby_wrapper or Object.
* enum.c (enum_each_with_index): should return self.
* process.c (proc_setpgrp): should return value for non-void function.
* process.c (proc_getpgid): should raise exception if getpgid() return -1.
* string.c (rb_str_ljust): should return a duplicated string.
* string.c (rb_str_rjust): ditto.
* string.c (rb_str_center): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2172 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
lastline and lastmatch in the thread struct for later restore.
* eval.c (rb_thread_save_context): restore lastline and lastmatch.
* numeric.c (flo_to_s): should handle negative float value.
* class.c (rb_include_module): should check whole ancestors to
avoid duplicate module inclusion.
* string.c (trnext): should check backslash before updating "now"
position.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1746 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.in: get --enable-shared to work on MacOS X.
* Makefile.in: make $(LIBRUBY_SO) depend on miniruby properly.
Now `make -jN' should work without a problem.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1360 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.in: Link libc_r against the ruby executable on
FreeBSD, which is the first attempt to work around a certain
problem regarding pthread on FreeBSD. It should make ruby/libruby
happy when it loads an extention to a library compiled and linked
with -pthread. Note, however, that libruby is _not_ linked with
libc_r so as not to mess up pthread unfriendly stuff including
apache+mod_ruby and vim6+ruby_interp.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1297 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* gc.c (rb_gc_call_finalizer_at_exit): clear klass member of
terminating object.
* eval.c (rb_call): raise exception for terminated object.
* bignum.c (bigdivrem): t2 might be too big for signed long; do
not use rb_int2big(), but rb_uint2big().
* error.c (rb_load_fail): new func to report LoadError.
* ruby.c (load_file): use rb_load_fail.
* eval.c (ruby_finalize): should enclosed by PUSH_TAG/POP_TAG.
* gc.c (rb_gc_mark): link 2 of NODE_IFUNC should not be explicitly
marked. it may contain non object pointer.
* re.c (reg_s_last_match): Regexp::last_match(nth) returns nth
substring of the match (alternative for $& and $<digit>).
* eval.c (rb_mod_define_method): wrong comparison for blocks.
* gc.c (id2ref): should handle Symbol too.
* gc.c (id2ref): should print original ptr value
* eval.c (rb_iterate): NODE_CFUNC does not protect its data
(nd_tval), so create new node NODE_IFUNC for iteration C
function.
* eval.c (rb_yield_0): use NODE_IFUNC.
* gc.c (rb_gc_mark): support NODE_IFUNC.
* gc.c (mem_error): prohibit recursive mem_error().
(ruby-bugs-ja:PR#36)
* eval.c (rb_thread_fd_writable): should not switch context if
rb_thread_critical is set.
* eval.c (rb_thread_wait_fd): ditto.
* eval.c (rb_thread_wait_for): ditto.
* eval.c (rb_thread_select): ditto.
* eval.c (rb_thread_join): join during critical section causes
deadlock.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1090 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
which included commits to RCS files with non-trunk default branches.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@373 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
which included commits to RCS files with non-trunk default branches.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12 b2dd03c8-39d4-4d8f-98ff-823fe69b080e