[#25272] [Feature #2032] Change the license to "GPLv2+ or Ruby's original". — Yui NARUSE <redmine@...>

Feature #2032: Change the license to "GPLv2+ or Ruby's original".

51 messages 2009/09/02
[#25368] [Feature #2032] Change the license to "GPLv2+ or Ruby's original". — Kazuhiko Shiozaki <redmine@...> 2009/09/04

Issue #2032 has been updated by Kazuhiko Shiozaki.

[#25461] Re: [Feature #2032] Change the license to "GPLv2+ or Ruby's original". — Gregory Brown <gregory.t.brown@...> 2009/09/07

On Fri, Sep 4, 2009 at 1:10 PM, Kazuhiko Shiozaki<redmine@ruby-lang.org> wrote:

[#25463] Re: [Feature #2032] Change the license to "GPLv2+ or Ruby's original". — Yukihiro Matsumoto <matz@...> 2009/09/08

Hi,

[#30610] [Feature #2032] Change the license to "GPLv2+ or Ruby's original". — Shyouhei Urabe <redmine@...> 2010/06/06

Issue #2032 has been updated by Shyouhei Urabe.

[#30611] Re: [Feature #2032] Change the license to "GPLv2+ or Ruby's original". — Yusuke ENDOH <mame@...> 2010/06/06

Hi,

[#30614] Re: [Feature #2032] Change the license to "GPLv2+ or Ruby's original". — Urabe Shyouhei <shyouhei@...> 2010/06/06

> To avoid enbugging a new bug, we must choose the another solutions.

[#30616] Re: [Feature #2032] Change the license to "GPLv2+ or Ruby's original". — Yusuke ENDOH <mame@...> 2010/06/06

2010/6/6 Urabe Shyouhei <shyouhei@ruby-lang.org>:

[#30652] Re: [Feature #2032] Change the license to "GPLv2+ or Ruby's original". — Urabe Shyouhei <shyouhei@...> 2010/06/08

(2010/06/06 20:27), Yusuke ENDOH wrote:

[#25285] [Feature #2033] Move Core Development to Git — Run Paint Run Run <redmine@...>

Feature #2033: Move Core Development to Git

75 messages 2009/09/02
[#25290] [Feature #2033] Move Core Development to Git — Yui NARUSE <redmine@...> 2009/09/02

Issue #2033 has been updated by Yui NARUSE.

[#25297] Re: [Feature #2033] Move Core Development to Git — Jon <jon.forums@...> 2009/09/02

> Some commiter of Ruby live on Windows.

[#25342] Re: [Feature #2033] Move Core Development to Git — Urabe Shyouhei <shyouhei@...> 2009/09/03

Jon wrote:

[#25343] Re: [Feature #2033] Move Core Development to Git — Michal Suchanek <hramrach@...> 2009/09/03

2009/9/4 Urabe Shyouhei <shyouhei@ruby-lang.org>:

[#25345] Re: [Feature #2033] Move Core Development to Git — Urabe Shyouhei <shyouhei@...> 2009/09/03

Michal Suchanek wrote:

[#25299] Re: [Feature #2033] Move Core Development to Git — Eric Hodel <drbrain@...7.net> 2009/09/02

On Sep 2, 2009, at 11:19, Run Paint Run Run wrote:

[#25306] [Feature #2034] Consider the ICU Library for Improving and Expanding Unicode Support — Run Paint Run Run <redmine@...>

Feature #2034: Consider the ICU Library for Improving and Expanding Unicode Support

16 messages 2009/09/03

[#25394] Unmaintained code (Was: Move Core Development to Git) — Eric Hodel <drbrain@...7.net>

On Sep 4, 2009, at 02:16, Urabe Shyouhei wrote:

10 messages 2009/09/05

[#25420] [Bug #2054] Onigurma Isn't Documented — Run Paint Run Run <redmine@...>

Bug #2054: Onigurma Isn't Documented

17 messages 2009/09/05

[#25442] turning off indentation warnings — Aaron Patterson <aaron@...>

Is there a way in 1.9 to turn off only indentation warnings? I like

19 messages 2009/09/06
[#25510] Re: turning off indentation warnings — Nobuyoshi Nakada <nobu@...> 2009/09/10

Hi,

[#25511] [Bug #2079] win32ole's OLEGEN does not create all classes needed when a TLB has more than one class defined — Bruno Antunes <redmine@...>

Bug #2079: win32ole's OLEGEN does not create all classes needed when a TLB has more than one class defined

18 messages 2009/09/10

[#25644] [Bug #2121] mathn/rational destroys Fixnum#/, Fixnum#quo and Bignum#/, Bignum#quo — Charles Nutter <redmine@...>

Bug #2121: mathn/rational destroys Fixnum#/, Fixnum#quo and Bignum#/, Bignum#quo

12 messages 2009/09/19

[#25709] [Bug #2131] f(not x) => syntax error — "James M. Lawrence" <redmine@...>

Bug #2131: f(not x) => syntax error

16 messages 2009/09/22

[#25769] A challenge: Enumerator#next in JRuby — Charles Oliver Nutter <headius@...>

I have a challenge for anyone who wants to discuss, propose

25 messages 2009/09/25
[#25782] Re: A challenge: Enumerator#next in JRuby — Tanaka Akira <akr@...> 2009/09/26

In article <f04d2210909251312q46bd51c0teacc4b0a8c417f0c@mail.gmail.com>,

[#25820] [Feature #2152] Split functionality of Float#inspect and Float#to_s — Roger Pack <redmine@...>

Feature #2152: Split functionality of Float#inspect and Float#to_s

32 messages 2009/09/28

[#25853] [Bug #2160] JSON can't parse input where top-level object is a string — caleb clausen <redmine@...>

Bug #2160: JSON can't parse input where top-level object is a string

11 messages 2009/09/29

[ruby-core:25725] Re: turning off indentation warnings

From: Ryan Davis <ryand-ruby@...>
Date: 2009-09-23 02:49:45 UTC
List: ruby-core #25725
On Sep 10, 2009, at 06:39 , Nobuyoshi Nakada wrote:

> Hi,
>
> At Mon, 7 Sep 2009 07:53:27 +0900,
> Aaron Patterson wrote in [ruby-core:25442]:
>> Is there a way in 1.9 to turn off only indentation warnings?  I like
>> to keep warnings turned on, but indentation warnings don't make sense
>> when the output is generated, like with racc.
>
> Currently, nothing.  How about magic comments?

I like this. It allows us to generate code that can bypass these  
warnings w/o too much extra work.

I've looked into adding a global variable. I think it looks better,  
but it requires modifying the parser to evaluate SOME expressions at  
parse time and I think that is a can of worms we don't want to open.

I do have some feedback inline below:

> Index: parse.y
> ===================================================================
> --- parse.y	(revision 24824)
> +++ parse.y	(working copy)
> @@ -244,4 +244,5 @@ struct parser_params {
>
>     token_info *parser_token_info;
> +    int parser_token_info_enabled;
> #else
>     /* Ripper only */
> @@ -587,4 +588,7 @@ static void ripper_compile_error(struct
> static void token_info_push(struct parser_params*, const char *token);
> static void token_info_pop(struct parser_params*, const char *token);
> +#else
> +#define token_info_push(parser, token) /* nothing */
> +#define token_info_pop(parser, token) /* nothing */
> #endif
> %}
> @@ -2970,7 +2974,5 @@ primary_value	: primary
> k_begin		: keyword_begin
> 		    {
> -#ifndef RIPPER
> -			if (RTEST(ruby_verbose)) token_info_push(parser, "begin");
> -#endif
> +			token_info_push(parser, "begin");
> 		    }
> 		;
> @@ -2978,7 +2980,5 @@ k_begin		: keyword_begin
> k_if		: keyword_if
> 		    {
> -#ifndef RIPPER
> -			if (RTEST(ruby_verbose)) token_info_push(parser, "if");
> -#endif
> +			token_info_push(parser, "if");
> 		    }
> 		;
> @@ -2986,7 +2986,5 @@ k_if		: keyword_if
> k_unless	: keyword_unless
> 		    {
> -#ifndef RIPPER
> -			if (RTEST(ruby_verbose)) token_info_push(parser, "unless");
> -#endif
> +			token_info_push(parser, "unless");
> 		    }
> 		;
> @@ -2994,7 +2992,5 @@ k_unless	: keyword_unless
> k_while		: keyword_while
> 		    {
> -#ifndef RIPPER
> -			if (RTEST(ruby_verbose)) token_info_push(parser, "while");
> -#endif
> +			token_info_push(parser, "while");
> 		    }
> 		;
> @@ -3002,7 +2998,5 @@ k_while		: keyword_while
> k_until		: keyword_until
> 		    {
> -#ifndef RIPPER
> -			if (RTEST(ruby_verbose)) token_info_push(parser, "until");
> -#endif
> +			token_info_push(parser, "until");
> 		    }
> 		;
> @@ -3010,7 +3004,5 @@ k_until		: keyword_until
> k_case		: keyword_case
> 		    {
> -#ifndef RIPPER
> -			if (RTEST(ruby_verbose)) token_info_push(parser, "case");
> -#endif
> +			token_info_push(parser, "case");
> 		    }
> 		;
> @@ -3018,7 +3010,5 @@ k_case		: keyword_case
> k_for		: keyword_for
> 		    {
> -#ifndef RIPPER
> -			if (RTEST(ruby_verbose)) token_info_push(parser, "for");
> -#endif
> +			token_info_push(parser, "for");
> 		    }
> 		;
> @@ -3026,7 +3016,5 @@ k_for		: keyword_for
> k_class		: keyword_class
> 		    {
> -#ifndef RIPPER
> -			if (RTEST(ruby_verbose)) token_info_push(parser, "class");
> -#endif
> +			token_info_push(parser, "class");
> 		    }
> 		;
> @@ -3034,7 +3022,5 @@ k_class		: keyword_class
> k_module	: keyword_module
> 		    {
> -#ifndef RIPPER
> -			if (RTEST(ruby_verbose)) token_info_push(parser, "module");
> -#endif
> +			token_info_push(parser, "module");
> 		    }
> 		;
> @@ -3042,7 +3028,5 @@ k_module	: keyword_module
> k_def		: keyword_def
> 		    {
> -#ifndef RIPPER
> -			if (RTEST(ruby_verbose)) token_info_push(parser, "def");
> -#endif
> +			token_info_push(parser, "def");
> 		    }
> 		;
> @@ -3050,7 +3034,5 @@ k_def		: keyword_def
> k_end		: keyword_end
> 		    {
> -#ifndef RIPPER
> -			if (RTEST(ruby_verbose)) token_info_pop(parser, "end");  /* POP */
> -#endif
> +			token_info_pop(parser, "end");  /* POP */
> 		    }
> 		;

I like this a lot. It makes it a lot more readable.

That last comment is completely unnecessary.

> @@ -4826,5 +4808,5 @@ token_info_push(struct parser_params *pa
>     token_info *ptinfo;
>
> -    if (compile_for_eval) return;
> +    if (!parser->parser_token_info_enabled) return;
>     ptinfo = ALLOC(token_info);
>     ptinfo->token = token;
> @@ -4855,7 +4837,9 @@ token_info_pop(struct parser_params *par
> 	goto finish;
>     }
> -    rb_compile_warning(ruby_sourcefile, linenum,
> -               "mismatched indentations at '%s' with '%s' at %d",
> -	       token, ptinfo->token, ptinfo->linenum);
> +    if (parser->parser_token_info_enabled) {
> +	rb_compile_warn(ruby_sourcefile, linenum,
> +			"mismatched indentations at '%s' with '%s' at %d",
> +			token, ptinfo->token, ptinfo->linenum);
> +    }
>
>   finish:
> @@ -4998,4 +4982,7 @@ yycompile0(VALUE arg, int tracing)
>     parser_prepare(parser);
>     deferred_nodes = 0;
> +#ifndef RIPPER
> +    parser->parser_token_info_enabled = !compile_for_eval && RTEST 
> (ruby_verbose);
> +#endif
>     n = yyparse((void*)parser);
>     ruby_debug_lines = 0;
> @@ -6123,4 +6110,28 @@ magic_comment_encoding(struct parser_par
> }
>
> +static void
> +set_boolean(struct parser_params *parser, int *p, const char *val)
> +{
> +    if (strcasecmp(val, "enable") == 0 ||
> +	strcasecmp(val, "yes") == 0 ||
> +	strcasecmp(val, "true") == 0) {
> +	*p = 1;
> +    }
> +    else if (strcasecmp(val, "disable") == 0 ||
> +	strcasecmp(val, "no") == 0 ||
> +	strcasecmp(val, "false") == 0) {
> +	*p = 0;
> +    }
> +    else {
> +	rb_compile_warning(ruby_sourcefile, ruby_sourceline, "invalid  
> boolean %s", val);
> +    }
> +}

Is this really necessary? I'd rather stick to ruby values and remove  
enable/yes/disable/no.

Also, it is only being used once, so why bother abstracting it? Matz  
is (rightfully) against using magic comments, so why enable them  
further?

> +
> +static void
> +parser_set_token_info(struct parser_params *parser, const char  
> *name, const char *val)
> +{
> +    set_boolean(parser, &parser->parser_token_info_enabled, val);
> +}
> +
> struct magic_comment {
>     const char *name;
> @@ -6132,4 +6143,5 @@ static const struct magic_comment magic_
>     {"coding", magic_comment_encoding, parser_encode_length},
>     {"encoding", magic_comment_encoding, parser_encode_length},
> +    {"warn-indent", parser_set_token_info},
> };
> #endif
> @@ -6178,9 +6190,15 @@ parser_magic_comment(struct parser_param
> 	: ((_s) = STR_NEW((_p), (_n))))
>
> -    if (len <= 7) return Qfalse;
> -    if (!(beg = magic_comment_marker(str, len))) return Qfalse;
> -    if (!(end = magic_comment_marker(beg, str + len - beg))) return  
> Qfalse;
> -    str = beg;
> -    len = end - beg - 3;
> +    if (*str == '%') {
> +	str++;
> +	len--;
> +    }
> +    else {
> +	if (len <= 7) return Qfalse;
> +	if (!(beg = magic_comment_marker(str, len))) return Qfalse;
> +	if (!(end = magic_comment_marker(beg, str + len - beg))) return  
> Qfalse;
> +	str = beg;
> +	len = end - beg - 3;
> +    }

What is this change? I don't get the '%' part. It could use a comment  
for clarification because it isn't obvious in this area.


In This Thread