[parrot/parrot] c5e9a0: [core] Optimize utf8_substr. do not use utf8 itera...

GitHub noreply at github.com
Wed Oct 15 08:45:46 UTC 2014


  Branch: refs/heads/rurban/lexqnames-gh1095-dev
  Home:   https://github.com/parrot/parrot
  Commit: c5e9a0fa44ab5625cb04dadaf7ae8833c76c964c
      https://github.com/parrot/parrot/commit/c5e9a0fa44ab5625cb04dadaf7ae8833c76c964c
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-10-12 (Sun, 12 Oct 2014)

  Changed paths:
    M src/string/encoding/shared.c
    M src/string/encoding/unicode.h
    M src/string/encoding/utf8.c

  Log Message:
  -----------
  [core] Optimize utf8_substr. do not use utf8 iterator

Use a new utf8_offset function instead. This can be optimized
further if we can guarantee word alignment of the buffers.
Add a special utf8 vtable method for substr.
This is a hot item for perl6, see GH #1097

Do not export the Parrot_utf8skip table anymore, not used
by parrot, nqp, perl6.


  Commit: 039e5eb32eab22d398d6d6d4baf79d1c4215beca
      https://github.com/parrot/parrot/commit/039e5eb32eab22d398d6d6d4baf79d1c4215beca
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-10-12 (Sun, 12 Oct 2014)

  Changed paths:
    M t/compilers/imcc/syn/clash.t

  Log Message:
  -----------
  [test] add testcase for double-quoted lex names GH #1095

in perl6 the correctly double-quoted .lex "foo\\o", $P3 name fails to work.
see https://rt.perl.org/Public/Bug/Display.html?id=116643
this might be caused by the switch from globals to lexicals, as this statement
is now enclosed in a block.

in parrot the binary character \0 causes problems in lexnames with roundtrips.


  Commit: 0d4390fe9460c79ffda2d1142f774d4b874db443
      https://github.com/parrot/parrot/commit/0d4390fe9460c79ffda2d1142f774d4b874db443
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-10-12 (Sun, 12 Oct 2014)

  Changed paths:
    M ChangeLog
    M src/pmc/lexinfo.pmc
    M t/compilers/imcc/syn/clash.t
    M t/pmc/lexinfo.t

  Log Message:
  -----------
  [test] Added LexInfo.declare_lex_preg and more imcc/syn/clash.t tests

For GH #1095

global names do work fine, only lexicals not.
Note I do not know how to reliable get the correct target register index for
declare_lex_preg in pure pir, and how to initialize it.
Setting it crashes the ctx.


  Commit: a5bf5da8f8ee973a75d2298a7282c78981a98fc6
      https://github.com/parrot/parrot/commit/a5bf5da8f8ee973a75d2298a7282c78981a98fc6
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-10-12 (Sun, 12 Oct 2014)

  Changed paths:
    M t/compilers/imcc/syn/clash.t

  Log Message:
  -----------
  [test] add testcase for immc parser bug even with globals

Also updated [GH #1095]


  Commit: a7e53f1e4b3afef505a1d20317d3043d549b59ff
      https://github.com/parrot/parrot/commit/a7e53f1e4b3afef505a1d20317d3043d549b59ff
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-10-12 (Sun, 12 Oct 2014)

  Changed paths:
    M compilers/imcc/imcc.y
    M t/compilers/imcc/syn/clash.t

  Log Message:
  -----------
  [test] just clarifying comments about the parser


  Commit: c2a1996ce5f7168f40b19654af26122b3b75ea6c
      https://github.com/parrot/parrot/commit/c2a1996ce5f7168f40b19654af26122b3b75ea6c
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-10-12 (Sun, 12 Oct 2014)

  Changed paths:
    M compilers/imcc/imcc.y
    M compilers/imcc/imcparser.c
    M compilers/imcc/imcparser.h
    M compilers/imcc/pbc.c
    M compilers/imcc/symreg.c
    M src/ops/core_ops.c
    M src/pmc/lexpad.pmc
    M t/compilers/imcc/syn/clash.t
    M t/pmc/lexinfo.t

  Log Message:
  -----------
  WIP development only: add -t8 flag, unescape in mk_const

see https://github.com/parrot/parrot/issues/1095#issuecomment-58470471


  Commit: 402fa46fddfeda9bacced80fd3c3cd710bf42da7
      https://github.com/parrot/parrot/commit/402fa46fddfeda9bacced80fd3c3cd710bf42da7
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-10-12 (Sun, 12 Oct 2014)

  Changed paths:
    M compilers/imcc/imcc.y
    M compilers/imcc/imcparser.c
    M compilers/imcc/symreg.c

  Log Message:
  -----------
  WIP mk_const and str_unescape: skip "


  Commit: 76f3f6e504d6e13b1eade23a26f32a0ab9c63503
      https://github.com/parrot/parrot/commit/76f3f6e504d6e13b1eade23a26f32a0ab9c63503
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-10-12 (Sun, 12 Oct 2014)

  Changed paths:
    M compilers/imcc/imcc.y
    M compilers/imcc/imcparser.c
    M compilers/imcc/imcparser.h
    M compilers/imcc/pbc.c
    M compilers/imcc/pbc.h
    M runtime/parrot/library/P6object.pir
    M src/string/api.c
    M t/compilers/imcc/syn/clash.t

  Log Message:
  -----------
  WIP: fixed the tests, but broke parrot

allow and handle now empty strings im imcc, fix
quoted sub names


  Commit: e4c7d6ab5686c7d53ddbe4c167856555f4d8397b
      https://github.com/parrot/parrot/commit/e4c7d6ab5686c7d53ddbe4c167856555f4d8397b
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-10-12 (Sun, 12 Oct 2014)

  Changed paths:
    M src/string/api.c

  Log Message:
  -----------
  different string escape policy now

die now with unknown escape sequences A-Za-z,
but allow quoting of special non-word chars, like
\", \[, \}


  Commit: 8c01dd8b91455200edd4fc1faed1a0f16acb302d
      https://github.com/parrot/parrot/commit/8c01dd8b91455200edd4fc1faed1a0f16acb302d
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-10-12 (Sun, 12 Oct 2014)

  Changed paths:
    M compilers/imcc/pbc.c
    M src/string/api.c

  Log Message:
  -----------
  imcc encodings: fix unicode encoded constants


  Commit: cb592b4b33be73f0d087b197bd85d3def933137d
      https://github.com/parrot/parrot/commit/cb592b4b33be73f0d087b197bd85d3def933137d
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-10-12 (Sun, 12 Oct 2014)

  Changed paths:
    M compilers/imcc/imcc.y
    M compilers/imcc/imcparser.c
    M compilers/imcc/symreg.c

  Log Message:
  -----------
  [imcc] fix .sub name last char


  Commit: 070e2c2226b0e3f9bbd33140ff9a14070f85f0a5
      https://github.com/parrot/parrot/commit/070e2c2226b0e3f9bbd33140ff9a14070f85f0a5
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-10-12 (Sun, 12 Oct 2014)

  Changed paths:
    M compilers/imcc/debug.c
    M compilers/imcc/pbc.c
    M compilers/imcc/symreg.c
    M t/op/basic.t

  Log Message:
  -----------
  [imcc] fix -d8 dump_instructions, fix double unescaping

string_from_reg may not unescape the const again. fixes t/op/basic_6.pasm
change t/op/basic_9.pasm to catch the new Unknown escape sequence \i in Parrot fl\ies


  Commit: aac490d56dfd919c388ce9a961d73f034fc5c635
      https://github.com/parrot/parrot/commit/aac490d56dfd919c388ce9a961d73f034fc5c635
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-10-12 (Sun, 12 Oct 2014)

  Changed paths:
    M src/string/api.c
    M t/compilers/imcc/syn/const.t
    M t/op/basic.t

  Log Message:
  -----------
  Add throw_illegal_escape_char, add arg to throw_illegal_escape

Harmonize Illegal escape sequence \\%c in %Ss and
Illegal escape sequence %Ss error messages.
Also allow \? \

Note that the C standard requires such "invalid" escape sequences
to be diagnosed i.e., the compiler must print an error message.


  Commit: 57f8db4d7d52c4aa9da9d27b12e61adb94b438b2
      https://github.com/parrot/parrot/commit/57f8db4d7d52c4aa9da9d27b12e61adb94b438b2
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-10-12 (Sun, 12 Oct 2014)

  Changed paths:
    M compilers/imcc/debug.h
    M compilers/imcc/imcc.y
    M compilers/imcc/pbc.c
    M compilers/imcc/symreg.c
    M include/parrot/interpreter.h

  Log Message:
  -----------
  [imcc] fix U type in sub fixup

Honor mk_const Slp, do not change S to U when called a 2nd time as S
with already stripped quotes.

Change -t8 private trace flag to -d2 proper imcc flag for mk_const tracking
Add more debugging verboseness.


  Commit: 036724ad7153c68361af1a70a62aac94cdff1d8c
      https://github.com/parrot/parrot/commit/036724ad7153c68361af1a70a62aac94cdff1d8c
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-10-12 (Sun, 12 Oct 2014)

  Changed paths:
    M compilers/imcc/optimizer.c
    M compilers/imcc/parser_util.c
    M compilers/imcc/pbc.c
    M compilers/imcc/pcc.c
    M compilers/imcc/symreg.c
    M compilers/imcc/symreg.h
    M src/string/api.c

  Log Message:
  -----------
  [imcc] the plot thickens. pass the ghash|0 to _mk_const

do not unescape binary strings containing 0


  Commit: a06ecbddedfbdcbe93e0cfba1999ef00dd019f49
      https://github.com/parrot/parrot/commit/a06ecbddedfbdcbe93e0cfba1999ef00dd019f49
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-10-12 (Sun, 12 Oct 2014)

  Changed paths:
    M compilers/imcc/imcc.y
    M compilers/imcc/pbc.c
    M compilers/imcc/symreg.c

  Log Message:
  -----------
  [imcc] 2 more -t8 leftovers over to -d2

Note that currently string_from_reg is the best place to resolve
encoded U strings, as registers store them the same way as in symreg constants.
But we should optimimze that to be more efficient, see GH #1097


  Commit: 64377e834c386aab976cdac4adf0a0851aa65c64
      https://github.com/parrot/parrot/commit/64377e834c386aab976cdac4adf0a0851aa65c64
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-10-12 (Sun, 12 Oct 2014)

  Changed paths:
    M compilers/imcc/symreg.c

  Log Message:
  -----------
  [imcc] represent constants with \0 as fixed_8:"\x00"


  Commit: 880c85ca23bbee95d311effedcfbdc9b676fe017
      https://github.com/parrot/parrot/commit/880c85ca23bbee95d311effedcfbdc9b676fe017
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-10-12 (Sun, 12 Oct 2014)

  Changed paths:
    M compilers/imcc/symreg.c

  Log Message:
  -----------
  [imcc] oops


  Commit: f81653b6f1caa0fac6b8e8d5b8477975ecb6b525
      https://github.com/parrot/parrot/commit/f81653b6f1caa0fac6b8e8d5b8477975ecb6b525
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-10-12 (Sun, 12 Oct 2014)

  Changed paths:
    M compilers/imcc/pbc.c
    M compilers/imcc/symreg.c

  Log Message:
  -----------
  [imcc] fix subid quote stripping

still a battlefield are pmc_const's
which are unquoted, unescaped possibly twice,
and then converted to pmc values.


  Commit: 3ca2dd9f0e8050240fe9167d3d8715e53b0e8eb4
      https://github.com/parrot/parrot/commit/3ca2dd9f0e8050240fe9167d3d8715e53b0e8eb4
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-10-12 (Sun, 12 Oct 2014)

  Changed paths:
    M compilers/imcc/imcc.y
    M compilers/imcc/symreg.c
    M compilers/imcc/symreg.h

  Log Message:
  -----------
  [imcc] add mk_string, unify string quote and unescape handling

Also for mk_sub_address_fromc, _mk_adress, do_loadlib, .lex, mk_const_ident.
This broke the string GC somewhow.


  Commit: ad5b0bbbc516064ef670f14a38ad430d3e57ee80
      https://github.com/parrot/parrot/commit/ad5b0bbbc516064ef670f14a38ad430d3e57ee80
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-10-12 (Sun, 12 Oct 2014)

  Changed paths:
    M compilers/imcc/symreg.c
    M compilers/imcc/symreg.h

  Log Message:
  -----------
  [imcc] fix assertion for empty _mk_const names

compiles now, just parrot2 still broken


  Commit: b1193b0553c2022314e734dcd02a9e557579a91e
      https://github.com/parrot/parrot/commit/b1193b0553c2022314e734dcd02a9e557579a91e
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-10-12 (Sun, 12 Oct 2014)

  Changed paths:
    M compilers/imcc/symreg.c

  Log Message:
  -----------
  [imcc] how to handle empty string constants in _mk_symreg?


  Commit: c2a47f7b8986357886983db7c4f334cf218dd690
      https://github.com/parrot/parrot/commit/c2a47f7b8986357886983db7c4f334cf218dd690
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-10-12 (Sun, 12 Oct 2014)

  Changed paths:
    M compilers/imcc/symreg.c

  Log Message:
  -----------
  [imcc] hack to allow NULL strings in sym hash


  Commit: b3fc7478ac54cf57740f3014ae111b6bfbfea80c
      https://github.com/parrot/parrot/commit/b3fc7478ac54cf57740f3014ae111b6bfbfea80c
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-10-12 (Sun, 12 Oct 2014)

  Changed paths:
    M compilers/imcc/symreg.c
    M src/string/api.c

  Log Message:
  -----------
  [cage] codingstd, comments


  Commit: e19de3e3cdccd666eeea101196aabf37ff363b62
      https://github.com/parrot/parrot/commit/e19de3e3cdccd666eeea101196aabf37ff363b62
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-10-12 (Sun, 12 Oct 2014)

  Changed paths:
    M compilers/imcc/imcc.y
    M compilers/imcc/imcparser.c
    M compilers/imcc/imcparser.h

  Log Message:
  -----------
  [imcc] fix imcc.y syntax error


Compare: https://github.com/parrot/parrot/compare/e057de3901d5...e19de3e3cdcc


More information about the parrot-commits mailing list