Parrot 6.8.0 "Little Lorikeet" | parrot.org/ | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 17 September 2014.
01:40 FROGGS_ joined 02:10 kid51_ joined 04:03 MikeFair joined 06:40 rurban joined 06:51 FROGGS joined 07:35 FROGGS joined
FROGGS rurban: are there any flags that will trigger to show the <<mk_const '"foo\\\\o"'>> ? 07:44
rurban: when I fiddle with imcc.y, do I have to 'make' a special incantation to get my changes built? 07:53
I just did a 'make install' and recompiled nqp and rakudo, but it has no effect whatsoever
so probably 'make clean && make reconfig && make install' might do? 07:57
rurban I added a special trace flag 8 for this, private branch so far 08:04
FROGGS how do I enable the tracing using that flag?
rurban for imcc.y changes, yes, you have to add —maintainer (so that bison will process the .y)
FROGGS I'm on rurban/lexqnames-gh1095 08:05
ohh
rurban I'll push my branch (heavy in work)
FROGGS good to know
so, make -maintainer install? 08:06
or is it a configure option
ahh, found it
dalek rrot/rurban/lexqnames-gh1095-dev: e866659 | rurban++ | / (9 files):
WIP development only: add -t8 flag, unescape in mk_const

see github.com/parrot/parrot/issues/10...t-58470471
rurban I only have an old bison on my laptop, so we cannot use the 3 generated files from this branch later. 08:07
much easier is to test with t/compilers/imcc/syn/clash_14.pir and 15
I'll have to add more encodings there, but for now the errors are obvious enough. 08:08
FROGGS okay 08:09
During configuration the following steps failed: 08:10
07: inter::lex
08: inter::yacc
does that mean I have to install these first?
rurban you have a bad or no bison and flex
FROGGS k
rurban all normal bison/flex versions should work even very old ones 08:11
FROGGS okay, it seems to continue now
rurban we also have the problem that aliases for encoding names for strings are not resolved. they are taken literally. e.g. UTF-8:"str" vs utf8:str" are different strings 08:16
'str' and "str" are also different constants, but turn out to use the same registers later
there's also a lot of unnecessary temporary string copying going on, with the system malloc/free, not GC. 08:19
FROGGS yeah, that was my understanding yesterday too
and also, nqp does quite a bit just to emit such a ".lex foo"... 08:20
rurban my idea is to store encoded strings with the encoding flag (maybe after the \\0), not the name as prefix
FROGGS so there is (unnecessary) overhead on both ends
rurban yes. at least nqp is consistent with ' vs " quotes, as long as you remember that some " are double unescaped, some not. ' sounds best to me 08:21
but I'll have it fixed soon
and all this ' and " overhead is also annoying. very early parrot did not need quotes for most names. so it did not need to copy temp. strings around. and escaping rules were also easier 08:23
but then someone added the '' requirement for names, which also looks awful.
08:35 rurban1 joined 08:45 rurban joined
FROGGS rurban: how do I enable that tracing using the tracing flag 8 ? 08:53
I can't build your branch :/ 08:55
./miniparrot -Iruntime/parrot/include config_lib.pir > runtime/parrot/include/config.fpmc
Segmentation fault (core dumped)
ohh, 'name' is NULL 09:00
s/name/$2/ in imcc.y line 1260 09:01
rurban oh yes, I just created that with my parrot_old
-t9
FROGGS to the parrot binary? 09:02
rurban ./parrot_old -Iruntime/parrot/include config_lib.pir > runtime/parrot/include/config.fpmc
m -s parrot_old && gdb --args ./parrot_old -t9 t/compilers/imcc/syn/clash_14.pir 09:03
config.fpmc fails with a encode:"string" assertion 09:04
dalek rrot/rurban/lexqnames-gh1095-dev: ba19f99 | rurban++ | compilers/imcc/ (3 files):
WIP mk_const and str_unescape: skip "
09:28
rurban I work now with miniparrot, which doesn't crash 09:29
FROGGS ohh, cool 09:31
rurban found the first bug foo\\0 => fooo in Parrot_str_unescape 09:35
Parrot_str_unescape_string just skips the \\\\ for o 09:38
dalek rrot/rurban/lexqnames-gh1095-dev: e0e9f17 | rurban++ | / (8 files):
WIP: fixed the tests, but broke parrot

allow and handle now empty strings im imcc, fix quoted sub names
11:03
11:16 kid51 joined
dalek rrot/rurban/lexqnames-gh1095-dev: 940ede1 | rurban++ | src/string/api.c:
different string escape policy now

die now with unknown escape sequences A-Za-z, but allow quoting of special non-word chars, like
  \\", \\[, \\}
11:53
rurban hmm, we test for \\w and \\\\w in the testsuite 12:26
12:38 FROGGS joined 12:58 FROGGS joined
dalek rrot/rurban/lexqnames-gh1095-dev: 761b245 | rurban++ | / (2 files):
imcc encodings: fix unicode encoded constants
13:14
13:14 rurban joined 14:31 FROGGS joined 16:13 FROGGS joined 22:29 Psyche^ joined 22:35 kid51 joined