[#13161] hacking on the "heap" implementation in gc.c — Lloyd Hilaiel <lloyd@...>
Hi all,
Hi,
On Fri, Nov 02, 2007 at 04:09:53AM +0900, Lloyd Hilaiel wrote:
On Tue, Nov 06, 2007 at 03:15:52AM +0900, Lloyd Hilaiel wrote:
Paul Brannan wrote:
[#13182] Thinking of dropping YAML from 1.8 — Urabe Shyouhei <shyouhei@...>
Hello all.
On 11/3/07, Urabe Shyouhei <shyouhei@ruby-lang.org> wrote:
On Nov 3, 2007, at 3:47 PM, Alexey Verkhovsky wrote:
where to start ... to fix the YAML code bugs
Ujwal Reddy Malipeddi wrote:
[#13196] Subscribe to list w/o email — Trans <transfire@...>
I'm now using the ruby-core-google interface to this list, rather then
[#13198] Ruby's Standard Library could use a lead maintainer — "Gregory Brown" <gregory.t.brown@...>
Hi folks,
On Nov 4, 2007, at 11:22 AM, Gregory Brown wrote:
James Edward Gray II wrote:
On 11/4/07, M. Edward (Ed) Borasky <znmeb@cesmail.net> wrote:
[#13206] guessutf 1.0.0 released — Wolfgang Nádasi-Donner <ed.odanow@...>
Dear Ruby designers, developers, and testers!
[#13215] Auto-translating gateway between ruby-core and ruby-dev? — Charles Oliver Nutter <charles.nutter@...>
I for one feel left out of conversations on ruby-dev. Barring my
[#13221] Re: Ruby's Standard Library could use a lead maintainer — Brent Roman <brent@...>
Brent Roman schrieb:
On 11/5/07, Wolfgang N=E1dasi-Donner <ed.odanow@wonado.de> wrote:
Gregory Brown schrieb:
[#13238] performance problem in 1.9 — Paul Brannan <pbrannan@...>
Checked latest 1.9 out of svn last week to run this test.
Paul Brannan wrote:
[#13248] Re: performance problem in 1.9 — Wolfgang Nádasi-Donner <ed.odanow@...>
Is it possible that it has a relationship with my remark about identifying
[#13254] send can't call protected methods, but invoke_method can — David Flanagan <david@...>
Hi,
[#13259] Frightening retry behavior should be deprecated and removed — Charles Oliver Nutter <charles.nutter@...>
Witness:
Hi,
[#13288] Unrecovered memory leak thoughts. — "Roger Pack" <rogerpack2005@...>
So it seems from my trivial analysis that there are instances when
On 11/8/07, Roger Pack <rogerpack2005@gmail.com> wrote:
On Thu, Nov 08, 2007 at 09:13:34PM +0900, Rick DeNatale wrote:
[#13289] Proposal of a new operator for Method and Proc — Jordi <mumismo@...>
Hello, this email is long but I hope you to read it. I think it is worth it.
Jordi wrote:
On Nov 8, 2007 7:03 PM, Gonzalo Garramu=F1o <ggarra@advancedsl.com.ar> wrot=
[#13292] Leak with regexp in method with no local vars. — "Jonas Pfenniger" <zimbatm@...>
The rubyforge -> ml link seems to be down so here is the link :
Also reproducible with
2007/11/9, Ryan Davis <ryand-ruby@zenspider.com>:
[#13305] The document of random algorithm? — sishen <yedingding@...>
Hi, guys. I want to know the detailed algorithm of random number.
[#13315] primary encoding and source encoding — David Flanagan <david@...>
I've got a couple of questions about the handling of primary encoding.
Hi,
Hi,
Yukihiro Matsumoto wrote:
Hi,
Yukihiro Matsumoto wrote:
Hi,
In article <E1IqOZI-0001t7-LT@x31>,
Hi,
[#13347] http compression, zlib agnostic, for 1.9 — Hugh Sasse <hgs@...>
I have revised my http compression (gzip, deflate) patch such that
On Sat, Nov 10, 2007 at 05:28:01AM +0900, Hugh Sasse wrote:
[#13351] Keyword Arguments — Trans <transfire@...>
Peter Vanbroekhoven mentioned this to me and I have to agree. I'd
[#13362] RubyGems imported into 1.9 trunk — Eric Hodel <drbrain@...7.net>
There are a few tests breaking due to rbconfig.rb not matching what ./
On Nov 10, 2007 4:53 PM, Eric Hodel <drbrain@segment7.net> wrote:
On Nov 10, 2007, at 01:21 , Jordi wrote:
Eric,
On Nov 10, 2007, at 15:44 , David Flanagan wrote:
Eric Hodel wrote:
On Nov 11, 2007, at 22:34 , David Flanagan wrote:
[#13363] IO.read, IO#read (and similar methods) - Length Parameter Usage for Non One-Byte Encodings — Wolfgang Nádasi-Donner <ed.odanow@...>
Good morning dear Ruby folks!
[#13368] method names in 1.9 — "David A. Black" <dblack@...>
Hi --
Hi,
Hi --
Yukihiro Matsumoto wrote:
On 11/11/07, Charles Oliver Nutter <charles.nutter@sun.com> wrote:
Austin Ziegler wrote:
David Flanagan wrote:
Hi --
Quoting dblack@rubypal.com, on Mon, Nov 12, 2007 at 06:45:42AM +0900:
Hi -
On Tue, Nov 13, 2007 at 09:40:22PM +0900, David A. Black wrote:
Hi --
Summing it up:
Hi --
On Nov 12, 2007 8:42 PM, David A. Black <dblack@rubypal.com> wrote:
On 12/11/2007, David A. Black <dblack@rubypal.com> wrote:
On Sun, Nov 11, 2007 at 05:50:18PM +0900, Trans wrote:
On Nov 11, 2007 7:01 PM, Matthew Boeh <mboeh@desperance.net> wrote:
On Nov 11, 2007 5:01 AM, Matthew Boeh <mboeh@desperance.net> wrote:
[#13377] Link errors for trunk on Mac OS X — "Lyle Johnson" <fxrubyguy@...>
Apologies in advance if this is a FAQ, but I'm trying to build the
[#13448] Time#== bug? — "Berger, Daniel" <Daniel.Berger@...>
Hi,
[#13457] mingw rename — "Roger Pack" <rogerpack2005@...>
Currently for different windows' builds, the names for RUBY_PLATFORM
On Nov 12, 2007 10:13 PM, Roger Pack <rogerpack2005@gmail.com> wrote:
[#13470] trunk's parse.c fails to compile — "Laurent Sansonetti" <laurent.sansonetti@...>
Hi,
Laurent Sansonetti wrote:
Charles Oliver Nutter wrote:
[#13485] Proposal: Array#walker — Wolfgang Nádasi-Donner <ed.odanow@...>
Good morning all together!
A nicer version may be...
On Wed, 14 Nov 2007, Trans wrote:
Hugh Sasse wrote:
There is one big difference between the actual proposals and my original
[#13498] state of threads in 1.9 — Jordi <mumismo@...>
Are Threads mapped to threads on the underlying operating system in
On Nov 14, 2007, at 11:18 , Bill Kelly wrote:
On Nov 15, 2007 7:33 AM, Eric Hodel <drbrain@segment7.net> wrote:
Jordi wrote:
[#13513] Proc#hash returns different values for same body — Wolfgang Nádasi-Donner <ed.odanow@...>
Hi!
[#13528] test/unit and miniunit — Ryan Davis <ryand-ruby@...>
When is the 1.9 freeze?
On Nov 14, 2007, at 18:43 , Trans wrote:
[#13536] mswin32-vc6 segmentation fault due ruby_in_eval wrong definition — "Luis Lavena" <luislavena@...>
Summary:
Hi,
On Nov 15, 2007 12:44 PM, Nobuyoshi Nakada <nobu@ruby-lang.org> wrote:
[#13542] Iconv#iconv returning wrong object — "Dirk Traulsen" <dirk.traulsen@...>
c:\>ri Iconv#iconv
Hi,
Am 15 Nov 2007 um 21:58 hat Nobuyoshi Nakada geschrieben:
Hi,
Am 16 Nov 2007 um 17:07 hat Nobuyoshi Nakada geschrieben:
[#13564] Thoughts about Array#compact!, Array#flatten!, Array#reject!, String#strip!, String#capitalize!, String#gsub!, etc. — Wolfgang Nádasi-Donner <ed.odanow@...>
Good evening all together!
Matz has added Object.tap to Ruby 1.9 which is intended for use in
On Nov 15, 2007 8:14 PM, Wolfgang N=E1dasi-Donner <ed.odanow@wonado.de> wro=
Nikolai Weibull schrieb:
Nikolai Weibull schrieb:
Hi --
Hi --
On Nov 16, 2007 3:19 PM, David A. Black <dblack@rubypal.com> wrote:
Hi --
On Nov 16, 2007 12:40 PM, David A. Black <dblack@rubypal.com> wrote:
On Nov 16, 2007 3:40 AM, David A. Black <dblack@rubypal.com> wrote:
David A. Black wrote:
Hi --
On Nov 16, 2007 12:40 PM, David A. Black <dblack@rubypal.com> wrote:
Rick DeNatale wrote:
murphy schrieb:
Hi --
On 11/16/07, Trans <transfire@gmail.com> wrote:
On Nov 16, 2007, at 8:43 PM, Austin Ziegler wrote:
[#13600] Re: [PATCH] CGI::Session::PStore partitioned directories — Tanaka Akira <akr@...>
In article <473D827F.10909@gmail.com>,
[#13614] Suggestion for native thread tests — "Eust痃uio Rangel" <eustaquiorangel@...>
Hi!
Eust痃uio Rangel wrote:
On Nov 17, 2007 2:02 PM, Charles Oliver Nutter <charles.nutter@sun.com> wrote:
On Nov 17, 2007 2:25 PM, Eust=E1quio Rangel <eustaquiorangel@gmail.com> wro=
[#13618] segfault in ostruct with 1.8.6, where to get help? — "andrew taylor" <aktxyz@...>
Hello folks, not sure if this is the right place...
run it in gdb, see if it gives you a better backtrace (?)
[#13676] Failing to compile trunk under Ubuntu — Brian Candler <B.Candler@...>
I tried compiling trunk yesterday and today, on two different Ubuntu 6.06
[#13685] Problems with \M-x in utf-8 encoded strings — Wolfgang Nádasi-Donner <ed.odanow@...>
Hi!
At 22:01 07/11/18, Wolfgang N〓dasi-Donner wrote:
Martin Duerst schrieb:
[#13688] base64.c vs. base64.rb — Trans <transfire@...>
Hi--
[#13704] Build failure trying to use rb_define_alias on rb_mKernel — "Berger, Daniel" <Daniel.Berger@...>
Hi,
[#13709] Change in system() behaviour — Dave Thomas <dave@...>
In 1.8, system("badcmd") returned false.
[#13741] retry semantics changed — Dave Thomas <dave@...>
In 1.8, I could write:
On Nov 23, 2007 12:06 PM, Dave Thomas <dave@pragprog.com> wrote:
Hi,
Hi,
Dave Thomas wrote:
Dave Thomas wrote:
Charles Oliver Nutter wrote:
Hi,
Yukihiro Matsumoto wrote:
Hi,
Hi,
Chiming in again on this...
In article <10A28D45-97EE-47EB-B98A-1B197F30C0E9@fallingsnow.net>,
In article <6168A472-3688-4D85-AAE1-49A2F376B908@fallingsnow.net>,
[#13781] C-Core-Questions — <saladin.mundi@...>
Hi guys, sorry that I'm posting into the core mailinglist, but in the =
[#13787] Syntax error when using comment between two lines in new method chain syntax — Wolfgang Nádasi-Donner <ed.odanow@...>
Hi!
[#13792] Anyone tried -r debug on OSX? — Dave Thomas <dave@...>
It hangs for me here. I have to kill -9 to stop it.
[#13805] Socket.gethostbyname and Reverse Lookups: A Strange and Terrible Saga — "Bill Kelly" <billk@...>
(with apologies to Hunter Thompson ;)
Re: "initialize" method in 1.9 Thread gone?
Hi,
At Sat, 1 Dec 2007 04:14:33 +0900,
Florian Frank wrote in [ruby-core:13839]:
> B. Tommy Jensen wrote:
> > Does anyone know whether this is a deliberate design choice in 1.9, or
> > is it a mistake that should be corrected?
> This seems to be the same problem I reported in ruby-core:13824. ko1
> considered this to be a bug and wanted to correct it.
Accurately, they are different.
Index: proc.c
===================================================================
--- proc.c (revision 14061)
+++ proc.c (working copy)
@@ -305,7 +305,10 @@ proc_new(VALUE klass, int is_lambda)
static VALUE
-rb_proc_s_new(VALUE klass)
+rb_proc_s_new(int argc, VALUE *argv, VALUE klass)
{
- return proc_new(klass, Qfalse);
+ VALUE block = proc_new(klass, Qfalse);
+
+ rb_obj_call_init(block, argc, argv);
+ return block;
}
@@ -472,4 +475,49 @@ rb_proc_arity(VALUE proc)
}
+static rb_iseq_t *
+get_proc_iseq(VALUE self)
+{
+ rb_proc_t *proc;
+ rb_iseq_t *iseq;
+
+ GetProcPtr(self, proc);
+ iseq = proc->block.iseq;
+ if (!RUBY_VM_NORMAL_ISEQ_P(iseq))
+ rb_raise(rb_eTypeError, "(Native?) Proc has no Ruby source");
+ return iseq;
+}
+
+/*
+ * call-seq:
+ * prc.__file__ => String
+ *
+ * returns the ruby source filename containing this proc
+ * raises TypeError if this proc was not defined in ruby (i.e. native)
+ */
+
+VALUE
+rb_proc_filename(VALUE self)
+{
+ return get_proc_iseq(self)->filename;
+}
+
+/*
+ * call-seq:
+ * prc.__line__ => Fixnum
+ *
+ * returns the starting ruby source lineno of this proc or nil if none known
+ * raises TypeError if this proc was not defined in ruby (i.e. native)
+ */
+
+VALUE
+rb_proc_lineno(VALUE self)
+{
+ rb_iseq_t *iseq = get_proc_iseq(self);
+
+ if (!iseq->insn_info_table)
+ return Qnil;
+ return INT2FIX(iseq->insn_info_table[0].line_no);
+}
+
/*
* call-seq:
@@ -1258,4 +1306,55 @@ rb_obj_method_arity(VALUE obj, ID id)
}
+static rb_iseq_t *
+get_method_iseq(VALUE method)
+{
+ struct METHOD *data;
+ NODE *body;
+ rb_iseq_t *iseq;
+
+ Data_Get_Struct(method, struct METHOD, data);
+ body = data->body;
+ switch (nd_type(body)) {
+ case RUBY_VM_METHOD_NODE:
+ GetISeqPtr((VALUE)body->nd_body, iseq);
+ if (RUBY_VM_NORMAL_ISEQ_P(iseq)) break;
+ default:
+ rb_raise(rb_eTypeError, "(Native?) Method has no Ruby source");
+ }
+ return iseq;
+}
+
+/*
+ * call-seq:
+ * meth.__file__ => String
+ *
+ * returns the ruby source filename containing this method's definition
+ * raises TypeError if this method was not defined in ruby (i.e. native)
+ */
+
+static VALUE
+method_filename(VALUE method)
+{
+ return get_method_iseq(method)->filename;
+}
+
+/*
+ * call-seq:
+ * meth.__line__ => Fixnum
+ *
+ * returns the starting ruby source lineno of this method of nil if unknown
+ * raises TypeError if this method was not defined in ruby (i.e. native)
+ */
+
+static VALUE
+method_lineno(VALUE method)
+{
+ rb_iseq_t *iseq = get_method_iseq(method);
+
+ if (!iseq->insn_info_table)
+ return Qnil;
+ return INT2FIX(iseq->insn_info_table[0].line_no);
+}
+
/*
* call-seq:
@@ -1439,5 +1538,5 @@ Init_Proc(void)
rb_cProc = rb_define_class("Proc", rb_cObject);
rb_undef_alloc_func(rb_cProc);
- rb_define_singleton_method(rb_cProc, "new", rb_proc_s_new, 0);
+ rb_define_singleton_method(rb_cProc, "new", rb_proc_s_new, -1);
rb_define_method(rb_cProc, "call", proc_call, -1);
rb_define_method(rb_cProc, "[]", proc_call, -1);
@@ -1452,4 +1551,6 @@ Init_Proc(void)
rb_define_method(rb_cProc, "to_s", proc_to_s, 0);
rb_define_method(rb_cProc, "lambda?", proc_lambda_p, 0);
+ rb_define_method(rb_cProc, "__file__", rb_proc_filename, 0);
+ rb_define_method(rb_cProc, "__line__", rb_proc_lineno, 0);
/* Exceptions */
@@ -1486,4 +1587,6 @@ Init_Proc(void)
rb_define_method(rb_cMethod, "unbind", method_unbind, 0);
rb_define_method(rb_mKernel, "method", rb_obj_method, 1);
+ rb_define_method(rb_cMethod, "__file__", method_filename, 0);
+ rb_define_method(rb_cMethod, "__line__", method_lineno, 0);
/* UnboundMethod */
@@ -1501,4 +1604,6 @@ Init_Proc(void)
rb_define_method(rb_cUnboundMethod, "owner", method_owner, 0);
rb_define_method(rb_cUnboundMethod, "bind", umethod_bind, 1);
+ rb_define_method(rb_cUnboundMethod, "__file__", method_filename, 0);
+ rb_define_method(rb_cUnboundMethod, "__line__", method_lineno, 0);
/* Module#*_method */
Index: thread.c
===================================================================
--- thread.c (revision 14061)
+++ thread.c (working copy)
@@ -374,11 +374,8 @@ thread_start_func_2(rb_thread_t *th, VAL
static VALUE
-thread_create_core(VALUE klass, VALUE args, VALUE (*fn)(ANYARGS))
+thread_create_core(VALUE thval, VALUE args, VALUE (*fn)(ANYARGS))
{
rb_thread_t *th;
- VALUE thval;
- /* create thread object */
- thval = rb_thread_alloc(klass);
GetThreadPtr(thval, th);
@@ -408,7 +405,47 @@ thread_create_core(VALUE klass, VALUE ar
static VALUE
-thread_s_new(VALUE klass, VALUE args)
+thread_s_new(int argc, VALUE *argv, VALUE klass)
{
- return thread_create_core(klass, args, 0);
+ rb_thread_t *th;
+ VALUE thread = rb_thread_alloc(klass);
+ rb_obj_call_init(thread, argc, argv);
+ GetThreadPtr(thread, th);
+ if (!th->first_args) {
+ rb_raise(rb_eThreadError, "uninitialized thread - check `%s#initialize'",
+ rb_class2name(klass));
+ }
+ return thread;
+}
+
+static VALUE
+thread_start(VALUE klass, VALUE args)
+{
+ return thread_create_core(rb_thread_alloc(klass), args, 0);
+}
+
+static VALUE
+thread_initialize(VALUE thread, VALUE args)
+{
+ rb_thread_t *th;
+ if (!rb_block_given_p()) {
+ rb_raise(rb_eThreadError, "must be called with a block");
+ }
+ GetThreadPtr(thread, th);
+ if (th->first_args) {
+ VALUE rb_proc_filename(VALUE self);
+ VALUE rb_proc_lineno(VALUE self);
+ VALUE proc = th->first_proc, file, line;
+ const char *fn;
+ if (!proc || !RTEST(file = rb_proc_filename(proc))) {
+ rb_raise(rb_eThreadError, "already initialized thread");
+ }
+ fn = StringValueCStr(file);
+ if (NIL_P(line = rb_proc_lineno(proc))) {
+ rb_raise(rb_eThreadError, "already initialized thread - %s", fn);
+ }
+ rb_raise(rb_eThreadError, "already initialized thread - %s:%d",
+ fn, NUM2INT(line));
+ }
+ return thread_create_core(thread, args, 0);
}
@@ -416,5 +453,5 @@ VALUE
rb_thread_create(VALUE (*fn)(ANYARGS), void *arg)
{
- return thread_create_core(rb_cThread, (VALUE)arg, fn);
+ return thread_create_core(rb_thread_alloc(rb_cThread), (VALUE)arg, fn);
}
@@ -2987,7 +3024,7 @@ Init_Thread(void)
VALUE cThGroup;
- rb_define_singleton_method(rb_cThread, "new", thread_s_new, -2);
- rb_define_singleton_method(rb_cThread, "start", thread_s_new, -2);
- rb_define_singleton_method(rb_cThread, "fork", thread_s_new, -2);
+ rb_define_singleton_method(rb_cThread, "new", thread_s_new, -1);
+ rb_define_singleton_method(rb_cThread, "start", thread_start, -2);
+ rb_define_singleton_method(rb_cThread, "fork", thread_start, -2);
rb_define_singleton_method(rb_cThread, "main", rb_thread_s_main, 0);
rb_define_singleton_method(rb_cThread, "current", thread_s_current, 0);
@@ -3006,4 +3043,5 @@ Init_Thread(void)
#endif
+ rb_define_method(rb_cThread, "initialize", thread_initialize, -2);
rb_define_method(rb_cThread, "raise", thread_raise_m, -1);
rb_define_method(rb_cThread, "join", thread_join_m, -1);
Index: vm.c
===================================================================
--- vm.c (revision 14061)
+++ vm.c (working copy)
@@ -1665,9 +1665,12 @@ thread_alloc(VALUE klass)
{
VALUE volatile obj;
- //rb_thread_t *th = thread_recycle_struct();
- //obj = Data_Wrap_Struct(klass, rb_thread_mark, thread_free, th);
+#ifdef USE_THREAD_RECYCLE
+ rb_thread_t *th = thread_recycle_struct();
+ obj = Data_Wrap_Struct(klass, rb_thread_mark, thread_free, th);
+#else
rb_thread_t *th;
obj = Data_Make_Struct(klass, rb_thread_t,
rb_thread_mark, thread_free, th);
+#endif
return obj;
}
--
Nobu Nakada