[#39810] 2.0 feature questionnaire — SASADA Koichi <ko1@...>

I made a questionnaire "What do you want to introduce in 2.0?" in my

59 messages 2011/10/01
[#39822] Re: 2.0 feature questionnaire — Jeremy Kemper <jeremy@...> 2011/10/02

2011/10/1 SASADA Koichi <ko1@atdot.net>:

[#39827] Re: 2.0 feature questionnaire — Yukihiro Matsumoto <matz@...> 2011/10/02

Hi,

[#40324] Re: 2.0 feature questionnaire — Charles Oliver Nutter <headius@...> 2011/10/25

2011/10/1 SASADA Koichi <ko1@atdot.net>:

[#39823] Discussion results — SASADA Koichi <ko1@...>

Hi,

34 messages 2011/10/02
[#39840] Re: Discussion results — Intransition <transfire@...> 2011/10/02

I did not have the fortune of attending the discussion, but I would

[#39844] Re: Discussion results — Yukihiro Matsumoto <matz@...> 2011/10/02

Hi,

[#39851] Re: Discussion results (here documents with indents) — "Martin J. Dürst" <duerst@...> 2011/10/03

Hello Matz,

[#39862] Re: Discussion results (here documents with indents) — Yusuke Endoh <mame@...> 2011/10/03

Hello,

[#39874] Re: Discussion results (here documents with indents) — Trans <transfire@...> 2011/10/03

On Mon, Oct 3, 2011 at 8:16 AM, Yusuke Endoh <mame@tsg.ne.jp> wrote:

[#39915] [Ruby 1.9 - Feature #5400][Open] Remove flip-flops in 2.0 — Magnus Holm <judofyr@...>

29 messages 2011/10/04

[#39957] [Ruby 1.9 - Bug #5407][Open] Cannot build ruby-1.9.3-rc1 with TDM-GCC 4.6.1 on Windows XP SP3 — Heesob Park <phasis@...>

11 messages 2011/10/05

[#39993] [Ruby 1.9 - Feature #2348] RBTree Should be Added to the Standard Library — David Graham <david.malcom.graham@...>

10 messages 2011/10/06

[#40037] [Ruby 1.9 - Bug #5422][Open] File.fnmatch != Dir.glob # {no,sets} — Suraj Kurapati <sunaku@...>

14 messages 2011/10/07

[#40073] [Ruby 1.9 - Feature #5427][Open] Not complex patch to improve `require` time (load.c) — Yura Sokolov <funny.falcon@...>

31 messages 2011/10/09

[#40090] [Ruby 1.9 - Bug #5433][Open] PTY.spawn Kernel panic on macos lion — Gamaliel Toro <argami@...>

14 messages 2011/10/10

[#40188] [Ruby 2.0 - Feature #5454] keyword arguments — Yukihiro Matsumoto <matz@...>

16 messages 2011/10/17
[#40189] Re: [Ruby 2.0 - Feature #5454] keyword arguments — Evan Phoenix <evan@...> 2011/10/17

This looks very interesting=21 Would someone be willing to translate to e=

[#40191] Re: [Ruby 2.0 - Feature #5454] keyword arguments — Yutaka Hara <yutaka.hara@...> 2011/10/18

Hi,

[#40192] Re: [Ruby 2.0 - Feature #5454] keyword arguments — Yukihiro Matsumoto <matz@...> 2011/10/18

Hi,

[#40259] Counseling — Perry Smith <pedzsan@...>

Ruby and I are back in counseling... Its always the same thing with =

21 messages 2011/10/21
[#40263] Re: Counseling — "Haase, Konstantin" <Konstantin.Haase@...> 2011/10/21

What's your $LC_CTYPE? What OS are you on?

[#40264] Re: Counseling — Gon軋lo Silva <goncalossilva@...> 2011/10/21

Hi all,

[#40266] Re: Counseling — Bill Kelly <billk@...> 2011/10/21

Gon軋lo Silva wrote:

[#40271] Can rubygems save us from "binary-compatibility hell"? — Yusuke Endoh <mame@...>

Hello, rubygems developers --

17 messages 2011/10/22

[#40290] [ruby-trunk - Feature #5474][Assigned] keyword argument — Yusuke Endoh <mame@...>

36 messages 2011/10/23
[#40298] Re: [ruby-trunk - Feature #5474][Assigned] keyword argument — Yukihiro Matsumoto <matz@...> 2011/10/24

Hi,

[#40414] Re: [ruby-trunk - Feature #5474][Assigned] keyword argument — Charles Oliver Nutter <headius@...> 2011/10/26

More refinement below. I think we're on a good path here.

[#40416] Re: [ruby-trunk - Feature #5474][Assigned] keyword argument — Yukihiro Matsumoto <matz@...> 2011/10/26

Hi,

[#40418] Re: [ruby-trunk - Feature #5474][Assigned] keyword argument — Joshua Ballanco <jballanc@...> 2011/10/26

On Wed, Oct 26, 2011 at 2:08 PM, Yukihiro Matsumoto <matz@ruby-lang.org>wrote:

[#40425] Re: [ruby-trunk - Feature #5474][Assigned] keyword argument — Yukihiro Matsumoto <matz@...> 2011/10/27

Hi,

[#40311] [ruby-trunk - Feature #5478][Open] import Set into core, add syntax — Konstantin Haase <Konstantin.Haase@...>

33 messages 2011/10/24

[#40312] [ruby-trunk - Feature #5479][Open] import StringIO into core, add String#to_io — Konstantin Haase <Konstantin.Haase@...>

9 messages 2011/10/24

[#40316] [ruby-trunk - Feature #5481][Open] Gemifying Ruby standard library — Hiroshi Nakamura <nakahiro@...>

86 messages 2011/10/24
[#40334] [ruby-trunk - Feature #5481] Gemifying Ruby standard library — Lucas Nussbaum <lucas@...> 2011/10/25

[#40322] [ruby-trunk - Feature #5482][Open] Rubinius as basis for Ruby 2.0 — Thomas Sawyer <transfire@...>

19 messages 2011/10/25

[#40356] JIT development for MRI — Carter Cheng <cartercheng@...>

Hello,

25 messages 2011/10/25
[#40390] Re: JIT development for MRI — SASADA Koichi <ko1@...> 2011/10/26

Hi,

[#40394] Re: JIT development for MRI — Carter Cheng <cartercheng@...> 2011/10/26

Dear Koichi SASADA,

[#40395] Re: JIT development for MRI — Carter Cheng <cartercheng@...> 2011/10/26

I noticed that you used context threading in YARV. Do you have some analysis

[#40417] Re: JIT development for MRI — SASADA Koichi <ko1@...> 2011/10/26

Thanks for reference.

[#40423] Re: JIT development for MRI — Carter Cheng <cartercheng@...> 2011/10/26

Thanks Koichi.

[#40412] [ruby-trunk - Bug #5486][Open] rb_stat() doesn’t respect input encoding — Nikolai Weibull <now@...>

15 messages 2011/10/26

[#40462] [ruby-trunk - Bug #5492][Open] MinGW Installation with Ruby 1.9.3rc1 Broken — Charlie Savage <cfis@...>

14 messages 2011/10/27

[#40573] [ruby-trunk - Bug #5530][Open] SEEK_SET malfunctions when used with 'append' File.open mode — "Joshua J. Drake" <ruby-lang.jdrake@...>

17 messages 2011/10/31

[#40586] [ruby-trunk - Feature #5531][Open] deep_value for dealing with nested hashes — Kyle Peyton <kylepeyton@...>

19 messages 2011/10/31

[ruby-core:39878] Re: Discussion results (here documents with indents)

From: Yusuke Endoh <mame@...>
Date: 2011-10-03 15:19:24 UTC
List: ruby-core #39878
Hello,

2011/10/4 Trans <transfire@gmail.com>:
> Yes, in fact #margin was born from the idea of %L. The downside of
> #margin is that it requires more processing overhead, where as the
> literal notation would be very fast (if it is possible to implement in
> Ruby parser).

Actually, I prefer %L, but didn't succeed to implement it.
It is difficult to determine the end of %L.
My patch requires an empty line at the end.
Though, nobu may be able to overcome the difficulty?


  $ cat t.rb
  p %L!foo
      !bar
      !b#{ ?a }z
  $ ./miniruby t.rb
  "foo\nbar\nbaz"

  $ cat t.rb
  p %L!foo
      !bar
      !b#{ ?a }z
  p 1
  $ ./miniruby t.rb
  t.rb:4: syntax error, unexpected tIDENTIFIER, expecting $end

  $ cat t.rb
  p %L!foo
      !bar
      !b#{ ?a }z

  p 1
  $ ./miniruby t.rb
  "foo\nbar\nbaz"
  1


diff --git a/parse.y b/parse.y
index 437f534..4165a09 100644
--- a/parse.y
+++ b/parse.y
@@ -5878,7 +5878,7 @@ parser_tokadd_string(struct parser_params *parser,
     } while (0)

     while ((c = nextc()) != -1) {
-	if (paren && c == paren) {
+	if (paren && c == paren && !(func & STR_FUNC_INDENT)) {
 	    ++*nest;
 	}
 	else if (c == term) {
@@ -5995,6 +5995,19 @@ parser_parse_string(struct parser_params
*parser, NODE *quote)
 	space = 1;
     }
     if (c == term && !quote->nd_nest) {
+	if (func & STR_FUNC_INDENT) {
+	    do {c = nextc();} while (c != term && ISSPACE(c));
+	    if (c != paren) {
+		lex_state = EXPR_BEG;
+		pushback(c);
+		if (!(func & STR_FUNC_REGEXP)) return tSTRING_END;
+		set_yylval_num(0);
+		return tREGEXP_END;
+	    }
+	    set_yylval_str(STR_NEW2("\n"));
+	    return tSTRING_CONTENT;
+	}
+	else {
 	if (func & STR_FUNC_QWORDS) {
 	    quote->nd_func = -1;
 	    return ' ';
@@ -6002,6 +6015,7 @@ parser_parse_string(struct parser_params
*parser, NODE *quote)
 	if (!(func & STR_FUNC_REGEXP)) return tSTRING_END;
         set_yylval_num(regx_options());
 	return tREGEXP_END;
+	}
     }
     if (space) {
 	pushback(c);
@@ -7563,9 +7577,14 @@ parser_yylex(struct parser_params *parser)
 	if (IS_BEG()) {
 	    int term;
 	    int paren;
+	    int indent;

 	    c = nextc();
 	  quotation:
+	    if (c == 'L') {
+		indent = STR_FUNC_INDENT;
+		c = nextc();
+	    }
 	    if (c == -1 || !ISALNUM(c)) {
 		term = c;
 		c = 'Q';
@@ -7587,14 +7606,18 @@ parser_yylex(struct parser_params *parser)
 	    else if (term == '{') term = '}';
 	    else if (term == '<') term = '>';
 	    else paren = 0;
+	    if (indent) {
+		paren = term;
+		term = '\n';
+	    }

 	    switch (c) {
 	      case 'Q':
-		lex_strterm = NEW_STRTERM(str_dquote, term, paren);
+		lex_strterm = NEW_STRTERM(str_dquote | indent, term, paren);
 		return tSTRING_BEG;

 	      case 'q':
-		lex_strterm = NEW_STRTERM(str_squote, term, paren);
+		lex_strterm = NEW_STRTERM(str_squote | indent, term, paren);
 		return tSTRING_BEG;

 	      case 'W':


-- 
Yusuke Endoh <mame@tsg.ne.jp>

In This Thread