Parrot 3.6.0 "P�jaros del Caribe" released | parrot.org | Log: irclog.perlgeek.de/parrot/today | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 5 August 2011.
kid51 fixes a Makefile dependency in that branch 00:00
kid51 runs make test
whiteknight I hate debugging these regex-related test failures
it's so hard to see why something doesn't match, especially if its a big string to match 00:01
00:01 bubaflub joined
nopaste "kid51" at 192.168.1.3 pasted "First, we have to fix uninitialized value warnings" (83 lines) at nopaste.snit.ch/68765 00:03
00:05 bluescreen joined
soh_cah_toa kid51: alright, that does look nicer. i want to get these tests passing first then i'll apply that patch 00:05
dalek rrot/soh-cah-toa/hbdb: ac2fefa | Whiteknight++ | / (2 files):
Fix second test, it's a whitespace issue that we need to get around
00:06
00:06 PacoLinux_ joined
whiteknight is there a way to tell the regex to ignore whitespace? 00:09
nopaste "kid51" at 192.168.1.3 pasted "Use a block rather than a sub. Start new debugger in each block. Fix Makefile dependency. Use Makefile variables." (86 lines) at nopaste.snit.ch/68766
soh_cah_toa whiteknight: the /i modifier 00:10
agh, no
not that
kid51 No, that's for case-insensitivity
soh_cah_toa the /x modifier
kid51 the /x enables you to put whitespace into a regex for readability 00:11
soh_cah_toa yeah
kid51 it doesn't pertain to the whitespace in the string being matched
Are you using /s for multiline matching?
soh_cah_toa whiteknight: ignore whitespace in the regex or the string to match against? 00:12
kid51 soh_cah_toa: if you can apply 68766, then we can all be working from the same starting point 00:13
soh_cah_toa sure
whiteknight we need to ignore whitespace in the string 00:19
because line 2 is coming out as "2\\t", not "2" 00:20
same with line 10
soh_cah_toa ah, that's different
whiteknight unfortunately, my editor removes trailing whitespace when I save a file, so it's very hard for me to fix that one 00:24
dalek rrot/soh-cah-toa/hbdb: 1d4e6db | soh_cah_toa++ | / (2 files):
Applied patch from kid51++ so all tests pass.
00:26
soh_cah_toa kid51: wow, that fixed it
i forgot that entering a command also enters 'quit' so having a global instance of hbdb won't work but one local to each block does 00:27
cotto_work soh_cah_toa: I'm not sure why you'd want an implicit quit. 00:28
soh_cah_toa b/c eof causes crash
cotto_work Eventually you'll want to test running more than one command. 00:29
00:29 Kulag joined
soh_cah_toa yeah but then all the output will be there 00:29
from every command
cotto_work how so?
soh_cah_toa typing 'help' then test will pass but then typing 'list' won't b/c it will have output from 'help' *and* 'list' 00:30
cotto_work what about typing one command, getting the output, typing another command, getting the new output, etc
soh_cah_toa i don't know if IPC::Open3 can let me do that 00:31
cotto_work I'd be surprised. I'll play with it tonight.
soh_cah_toa ok
cotto_work (be surprised if it couldn't)
soh_cah_toa at least they pass for now 00:32
cotto_work that's valuable
soh_cah_toa now i can get some more done and then start designing watchpoints
which i'm clueless about :\\
00:41 Kulag joined
dalek kudo/nom: 40aa6d5 | Coke++ | t/spectest.data:
run more tests, track failure modes.
00:56
01:03 GodFather joined 01:04 Kulag joined 01:07 jsut joined
kid51_at_dinner soh_cah_toa: Since the copyright line will change over time, this line: 01:10
Copyright \\(C\\) 2001-2011, Parrot Foundation
... is too restrictive
kid51 next if $input_text =~ m|Copyright \\(C\\) 2001-2011, Parrot Foundation\\.|; 01:11
probably something like m|Copyright.*?Parrot Foundation\\.| would suffice
Uh-oh, build failure 01:12
cotto_work kid51: he'll fix it by next year. ;)
kid51 my mistake 01:13
whiteknight actually, it's a cultural fix, not a technical one. Let's just dissolve the copyright 01:17
dalek rrot/soh-cah-toa/hbdb: c9bf066 | jkeenan++ | config/gen/makefiles/root.in:
Correct incorrect variable substitution.
kid51 Wait a minute; I'm still getting test failures. 01:20
smolder.parrot.org/app/projects/rep...ails/20414 01:21
I thought soh_cah_toa said he got all tests to pass
dalek kudo/nom: 0b11319 | Coke++ | t/spectest.data:
track failure mode
01:22
kid51 My branch is up-to-date, but still failing tests 2 and 3
nopaste "kid51" at 192.168.1.3 pasted "Still failing tests 2 and 3 in t/tools/hbdb/cmds.t." (75 lines) at nopaste.snit.ch/68813 01:23
01:32 woosley joined 01:34 contingencyplan joined
dalek lrskate: 10b3251 | tcurtis++ | / (3 files):
Add failing test for eliminating epsilon transitions.
01:48
lrskate: 6b6e6c9 | tcurtis++ | t/eliminate-epsilon-transitions.t:
Fix test bug.
lrskate: 079bb38 | tcurtis++ | src/LALR/Generator/EliminateEpsilonTransitions.winxed:
Implement epsilon transition elimination.
lrskate: cabdaea | tcurtis++ | src/LALR/Generator.winxed:
Make LALR.Generator.generate do epsilon transition elimination early.
lrskate: 7d5f406 | tcurtis++ | src/LALR/ (2 files):
Add pushing states.
nopaste "kid51" at 192.168.1.3 pasted "Get closer by sampling the expected output of help command." (78 lines) at nopaste.snit.ch/68820 01:54
kid51 msg soh_cah_toa: For reasons I don't yet understand, your testing methods are not picking up the first line of expected output. Paste 68820 shows how you can sample the expected output -- but the 'header' line (i.e., the first line) is not yet being seen. 01:56
aloha OK. I'll deliver the message.
02:17 PacoLinux_ joined
cotto ~~ 02:29
dalek rrot: 061f5b0 | jkeenan++ | config/gen/makefiles/root.in:
The Makefile variable representing parrot-prove should have a more accurate name, so as not to suggest that it is representing Perl 5's prove.
02:34
kid51 cotto: In hbdb branch, for 'make hbdb_tests' you probably want Perl 5's prove rather than parrot-prove. The tests are in Perl 5. And parrot-prove is only built by 'make world', not by plain 'make'. 02:36
I stumbled there, which is what led me to most recent commit in master. 02:37
cotto kid51, yes 02:40
02:44 rdesfo joined, theory joined
dalek rrot/soh-cah-toa/hbdb: 3c76608 | cotto++ | config/gen/makefiles/root.in:
fix hbdb_tests
02:46
02:56 jevin joined, rdesfo joined, rdesfo left 03:28 Kulag joined 03:38 Kulag joined 04:16 daniel-s joined
dalek kudo/nom: 5e2c0fb | moritz++ | src/core/ (4 files):
Merge pull request #35 from kboga/multi-Numeric

make .Numeric methods multis with defined invocant
04:44
kudo/nom: 2bbc998 | moritz++ | src/core/List.pm:
Merge pull request #38 from ruz/nom-list-rotate

List.rotate
04:49
dukeleto moritz: so rakudo is using pull requests now? I remember the days when only squashed+emailed patches were required ;) 04:58
moritz dukeleto: well, if that's what people submit, I'm happy to apply them :-) 05:02
dukeleto: our official policy is still to submit to rt though 05:03
dukeleto moritz: well, at least you are sane :) 05:04
moritz: i find using RT to be like chewing sandpaper
moritz I've seen worse 05:05
at least one can reply by email
05:05 SHODAN joined
dukeleto trac-- is just as sandy 05:06
05:07 theory joined
moritz dukeleto: if it weren't for some access control decisions, I'd love to have the tickets stored in the repo somehow 05:10
dalek kudo/nom: 69b7e56 | moritz++ | t/spectest.data:
three more passing test files
05:14
05:43 mj41 joined
dalek rrot/m0-prototype: 02c3abe | nbrown++ | src/m0/c/m0_mob.c:
initialize chunk->next to NULL and set interp->last if there is only one chunk
05:53
rrot/m0-prototype: 4d5be65 | nbrown++ | src/m0/c/include/m0_ops.h:
Add set_byte, get_byte, set_word and get_word to the M0_OPS enum
rrot/m0-prototype: 04a055e | nbrown++ | src/m0/c/m0_mob.c:
Add string constant loading to parse_mob_constants_segment
rrot/m0-prototype: b2bf853 | dukeleto++ | src/m0/c/ (2 files):
Merge pull request #150 from nbrown/m0-prototype-c-hello-world

M0 prototype c hello world
kudo/nom: e658f0d | moritz++ | / (2 files):
run type-based.t, fix an unrelated thinko
06:02
kudo/nom: f373c17 | moritz++ | t/spectest.data:
two more test files
06:15
07:08 fperrad joined 07:27 PacoLinux_ joined
dalek kudo/nom: 190f28d | moritz++ | src/core/metaops.pm:
implement chaining reduce metaop
07:32
kudo/nom: c0ac660 | moritz++ | t/spectest.data:
run reduce.t
07:37
07:47 mj41 joined 08:01 lucian joined
tadzik hello #parrots 08:07
aloha, going to YAPC::EU is also tadzik
aloha tadzik: Okay.
cotto msg soh_cah_toa I didn't get anywhere trying to make Test::HBDB amenable to testing multiple commands per session. It'll eventually be necessary, but writing more tests is the priority atm. 08:17
aloha OK. I'll deliver the message.
dalek rrot/soh-cah-toa/hbdb: 745f1c3 | jkeenan++ | / (2 files):
Add frontend/parrot_debugger/main.o to .gitignore and appropriate 'clean' target.
08:57
09:24 lucian joined 09:28 not_gerd joined
not_gerd cotto: do you have time for some questions about m0? 09:31
09:33 kid51 joined 09:37 cosimo joined 10:15 particle joined
dalek kudo/nom: c61a8d5 | moritz++ | / (2 files):
fix radcalc, generate errors with line numbers, run tests
10:29
10:48 Kulag joined 11:21 Kulag joined 11:30 not_gerd joined
dalek kudo/nom: 083287a | tadzik++ | / (2 files):
Small tunes in Pod::To::Text, sanitize newline handling, interpret package declarators correctly
11:33
11:37 lucian joined 12:02 woosley left 12:06 rdesfo joined 12:08 whiteknight joined
whiteknight good morning, #parrot 12:19
12:20 dafrito joined 12:23 woosley joined
dalek kudo/nom: 62bd6a7 | tadzik++ | src/Perl6/Grammar.pm:
Allow colonpairs to appear after Pod block declarations
12:37
kudo/nom: 77c62ce | tadzik++ | lib/Pod/To/Text.pm:
[Pod::To::Text] Generate proper output for Tables and Comments, fix output for Named blocks
atrodo =~ 12:39
whiteknight hello atrodo 12:40
12:43 SHODAN joined
bubaflub ~ 12:47
atrodo Morning whiteknight, see any good houses lately? 12:49
whiteknight atrodo: several, actually. 13:03
atrodo whiteknight> Excellent. Good to hear
whiteknight We started looking in an area which doesn't have basements, typically. 90% of the houses we had been seeing with basements had severe water, mold, and structural issues
so cutting that right out of our search criteria brings up the average quality of the houses we see dramatically 13:04
atrodo whiteknight> Ya, that's not good. Basements are good, but not when they're a liablity
whiteknight right. Good for storage and all, but I would be just as happy not to have piles of crap that needs storing
atrodo And actually, when we looked for our house several years ago, the houses without a basement were the ones that were cheaper and in worse shape 13:05
whiteknight the philadelphia area as a lot of historical roots, so it's extremely common to see houses with stone basements, stone foundations, extremely old houses, etc
atrodo But that's probably an area differance
whiteknight nicer, newer homes in the area tend to be way out of our price range 13:06
atrodo Right. The areas we looked at were build more in the middle of last century.
whiteknight overall, it was a good century for houses 13:09
13:23 bluescreen joined
bubaflub whiteknight: that's good. we moved into an old house (built late 1800s) that was completely redone in 2000 - best of both worlds 13:23
whiteknight bubaflub: oh, nice 13:29
not_gerd parrot compiles under msys (ie I've got a parrot.exe), but make fails with paste.pocoo.org/show/p6oY8KjgG7QpGSZbR8kP/ 13:34
any ideas how to fix that?
whiteknight good morning, not_gerd? 13:38
not_gerd good morning, whiteknight
whiteknight that's a strange error. is it new?
not_gerd I had to fix /config/auto/arch.pm to make it configure, so I'm guessing that Parrot hasn't been working on msys for some time 13:39
whiteknight okay 13:40
I don't have msys here, so I'm not able to test it
not_gerd I suspect the unix-style msys paths somehow mess up file lookup
line 197 which probably fails is .include "interpinfo.pasm" 13:41
whiteknight so that should be in /runtime/parrot/include/interpinfo.pasm
check out your config hash, see if that's in there for include_path, or whatever the variable is called 13:42
not_gerd how would I do that (I'm new to parrot, ie my name is _not_ Gerd Pokorra) 13:44
whiteknight okay, parrot_config --dump | grep "include" 13:45
that will probably spit out way too much information
hold on, let me look up the real name of the key
13:46 rdesfo joined
dalek kudo/nom: 67f3c06 | moritz++ | src/Perl6/Actions.pm:
improve a NYI error message
13:48
whiteknight not_gerd: try "parrot_config build_dir"
because the include path is at ${parrot_config build_dir}/runtime/parrot/include
not_gerd next problem: I can't build parrot_config.exe - see paste.pocoo.org/show/pOWf9FPwF8krKnaW4ep0/ for the errors I get 13:49
whiteknight oh wow 13:51
okay, so Parrot is *really* broken on msys
not_gerd: What are you using exactly, cygwin? 13:52
or just vanilla msys? 13:53
not_gerd vanilla msys
whiteknight and I assume you have mingw mounted normally and all? 13:54
not_gerd well, I made msys and mingw share a root directory, but yes, mingw is mounted as /mingw 13:55
but I don't see where the line that fails links against libparrot
13:55 contingencyplan joined
dalek kudo/nom: 769ae7d | tadzik++ | / (2 files):
Disallow closing delimiters indented more than opening delimiters
13:55
whiteknight What perl version does it use? 13:57
not_gerd 5.8.8 is the most recent available on Msys
was 5.6.? not so long ago 13:58
whiteknight I have msys-git here, but that's missing a lot of stuff
not_gerd I did it the other way around: installed msys first, then built msys-git from source 13:59
whiteknight ok 14:01
not_gerd is there a make target for a parrot.dll?
whiteknight I'm sure there is, I don't know if off hand 14:02
make help
not_gerd found it 14:03
whiteknight not_gerd: I have msys installed here now, though I'm still picking through configuration 14:15
not_gerd: what fix did you make to config/auto/arch.pm? 14:16
14:16 cosimo joined 14:17 davidfetter joined
not_gerd whiteknight: patch to correctly identify msys: paste.pocoo.org/show/KBJOcXsZkMa1skCwTeG6/ 14:18
are you on 64 bit hardware?
whiteknight yes
not_gerd did you use mingw-w64 or mingw32? 14:19
whiteknight mingw32 I guess 14:20
not_gerd then my patch might not work correctly depending on how exactly the build system uses the cpuarch info 14:21
your system should identify as amd64, but you'll use a 32-bit compiler 14:22
don't know if this will blow up or nor
whiteknight okay, I'll play with it 14:23
I can't even get the thing to configure. I probably won't be much help for you 14:26
not_gerd what's your perl version? 14:27
5.8.8 might not be installed by default
whiteknight it says 5.12.2 14:29
not_gerd there's no perl 5.12 for msys that I know o 14:30
should be something like "This is perl, v5.8.8 built for msys-64int"
whiteknight oh wait, it's reading a different perl install from my path
not_gerd are you within the msys shell or windows command line? 14:31
whiteknight I'm in msys
I can't find a perl binary in here 14:32
14:33 M_o_C joined
not_gerd if it's not installed, try 'mingw-get install msys-perl' 14:33
whiteknight not_gerd: Is there any particular reason you're using msys instead of something else? 14:34
dalek kudo/nom: 04a9e65 | Coke++ | t/spectest.data:
run more tests, track failure modes
14:35
not_gerd it's what I use for my own C coding 14:36
whiteknight okay
not_gerd I could probably install strawberry perl, but that would just pull in another copy of mingw 14:37
whiteknight no, you should be able to use whatever you are comfortable with 14:38
okay, I installed msys-perl and it doesn't work. When I run that, it hangs 14:39
not_gerd that's... not good ;)
whiteknight I'm starting to suspect that I will not be able to help you get parrot working here
sorry
not_gerd that's why I don't like automated build systems 14:40
when they work, it's great, but when not...
whiteknight not_gerd: I *suspect* that we're going to need to add a directory in src/platform/ for msys 14:43
not_gerd can you pocoo the contents of your src/dynpmc/os.c file? 14:44
not_gerd sure, but it's a liker error - someon'e not getting a $(ALL_PARROT_LIBS) in the makefile, I supect 14:45
whiteknight yeah, that's probably true 14:46
not_gerd os.c: paste.pocoo.org/show/Tkdm2GkwjlYjW0eYNqz8/
(the parrot_config issue, that is)
whiteknight I don't see anything obvious in the makefile 14:48
not_gerd what actually fails is make runtime/parrot/dynext/os.dll 14:50
whiteknight right 14:52
It looks to me like it's including the right arguments
14:53 p6eval joined
not_gerd it seems to only pass $(LINKARGS) where it should pass $(LINKARGS) $(ALL_PARROT_LIBS) 14:54
but I'm failing to find the actual rule within the makefile...
whiteknight I think $(ALL_PARROT_LIBS) should be part of $(LINKARGS) 14:55
src/dynpmc/Rules.in
not_gerd manually adding LINKARGS += $(ALL_PARROT_LIBS) gets me further down the line 14:56
whiteknight ok
not_gerd can't build parrot_config.exe for the same reason, though: ./parrot.exe -o pbc_to_exe.pbc tools/dev/pbc_to_exe.pir 14:57
error:imcc:No such file or directory
where is the raw config data stored? 14:58
14:59 PacoLinux_ joined
whiteknight the config hash is dumped out to a file. config.pir or something? 14:59
not_gerd config_lib.pir
whiteknight that's it 15:00
15:01 bluescreen joined
not_gerd next problem: ./parrot.exe pbc_to_exe.pbc pbc_to_exe.pbc 15:18
src/string/api.c:653: failed assertion 'encoding'
15:20 NotFound joined
NotFound Hi 15:20
whiteknight good morning, NotFound?
...that wasn't a question 15:21
15:21 dmalcolm joined
NotFound Anyway, yes 15:22
not_gerd backtrace of that failure, if someone wants to investigate: paste.pocoo.org/show/PXmxM7oR3eqXYVycJE8a/ 15:28
dalek kudo/nom: e8e3340 | tadzik++ | src/Perl6/Grammar.pm:
Fix handling colonpairs in Pod directives. Makes us fully parse S26
15:31
15:36 nbrown joined
dukeleto ~~ 15:43
tadzik ~~ 15:44
dukeleto Waking up to 19 emails in your inbox does not bode well. 15:49
bubaflub dukeleto: but think of how many times you can refinance your mortgage! 15:51
dukeleto bubaflub: spam would have been nice. Sadly, they were all $work related 15:53
bubaflub dukeleto: ah. today i told my team lead that my bug queue was getting a bit empty. he said he'd assign me a few things. check my email a few minutes later i've got 13 new emails. 15:54
dalek kudo/nom: 90e9c38 | tadzik++ | lib/Pod/To/Text.pm:
Couple of more fixes to make the output generated from S26 more pleasant to read
16:00
16:03 theory joined 16:04 rdesfo joined
cotto ~~ 16:17
dalek rrot: f3351c3 | (Dan Bolser)++ | docs/project/git_workflow.pod:
Isn't it cleaner (and also backwards compatible) to recommend:

Instead of what you have currently, which is:
   git checkout -b username/foo origin/username/foo
Sorry if I'm being ignorant, but the former was recommended to me in irc.freenode.net/#git so I thought I'd pass it along.
16:18
rrot: f3533be | cotto++ | docs/project/git_workflow.pod:
Merge pull request #151 from dbolser/patch-2

Isn't it cleaner (and also backwards compatible) to recommend:
whiteknight I get more than 19 emails most mornings 16:26
and it never bodes well 16:27
16:33 darbelo joined
not_gerd whiteknight: is there something special I need to do to get a parrot executable with debugging symbols or is that yet another side-effect of using msys? 16:47
whiteknight not_gerd: debugging symbols should be the default, I think 16:53
they get turned off if you configure with --optimize
or maybe there is another flag for it
run perl Configure.pl --help to see options
dukeleto not_gerd: perl Configure.pl --ccflags=-g 16:57
dalek kudo/nom: c33f355 | (Solomon Foster)++ | src/core/R (2 files):
Add Real.Rat with optional tolerance and optional tolerance to Rat.Rat.
17:03
17:13 cosimo joined
not_gerd dukeleto: didn't help 17:15
I only get debugging info from the dynext dlls, not parrot.exe
cotto_work ~~ 17:18
17:28 davidfetter joined 17:36 mj41 joined 17:39 lucian joined 17:46 rohit_nsit08 joined
dukeleto not_gerd: i am a unixy guy, not sure how that all works out in other OS's. Perhaps you need cppflags? 17:47
Continental just told me my confirmation number is "null". Sounds like they need some unit tests.
For peeps that want to learn about "the spidermonkey virtual machine", this seems to be the best resource: infomonkey.cdleary.com/ 17:48
17:52 darbelo_ joined
dalek kudo/nom: 7c9b08a | jonathan++ | src/Perl6/Grammar.pm:
Fix twigil parsing to be in line with STD.
17:57
18:05 rdesfo joined 18:08 zby_home joined 18:16 Eclesia joined
Eclesia hi 18:16
whiteknight hello Eclesia 18:18
Eclesia hello whiteknight
whiteknight how are you doing today? 18:19
Eclesia correct, it will be fine if I manage to progress with eria in the next hour ^^ 18:20
whiteknight Are there other things you can work on besides Archive.Zip? 18:27
I don't want you to waste another hour fighting with broken code and bad docs
Eclesia plenty other stuff. but without the module management system. it's going to be like code hacking when I want to work with more then one file 18:29
whiteknight: don't worry, I actually drop the zip for now, I use the Tar one, at least I can write .... but can't extract lol
so I'm stuck once more 18:30
dukeleto Eclesia: sounds Less Than Awesome. If you can spare some time, submit a pull request with tests for Archive.Zip that you expect to pass. That may help us make it work. 18:32
Eclesia dukeleto: trac.parrot.org/parrot/ticket/2171 trac.parrot.org/parrot/ticket/2172
just zip and unzip. I don't expect more ^^ 18:33
tar, gzip or whatever, any archive format will do 18:34
dukeleto Eclesia: i see. the issue is that Archive.* wasn't really being used by anybody before 18:44
Eclesia it looks like 18:45
dukeleto Eclesia: it is suboptimal, but can you just shell out to "unzip" so you can hack on other parts of your code while we fix that stuff?
Eclesia I didn't wait for you ^^
dukeleto Eclesia: ah, i see. you are just using tar for now. 18:49
Eclesia dukeleto: yes but tar once again does not have an 'unpack' method 18:50
whiteknight I wasn't aware that Tar was such a simplistic file format 18:58
I'm reading about it now
writing an unpack method does not look too difficult
Eclesia whiteknight: it's just concatenation mainly. 18:59
dalek kudo/nom: d441931 | (Solomon Foster)++ | src/core/Rat.pm:
Use "Real $?" for the Rat.Rat optional parameter which is ignored. jnthn++
19:00
whiteknight I thought it was a compression format. I learn something new every day 19:01
Eclesia whiteknight: is there some kind of BitStream class in parrot ? 19:05
Tene_ whiteknight: That's why you always see .tar.gz or .tzr.bz2, because the compression is done separately. That's also why gzip and bzip2 are simple data formats, because they can rely on tar to handle grabbing a whole directory tree, etc. 19:06
NotFound Note that tar was designed several decades ago. 19:08
dukeleto Eclesia: i think there is a ByteBuffer PMC
NotFound The past millenium.
Eclesia was born last millenium ... damn I'm old too 19:09
Question : I would like two constructor on my class, with different parameters. what is the correct writing ? 19:20
nopaste "Eclesia" at 192.168.1.3 pasted "two constructor, correct writing" (24 lines) at nopaste.snit.ch/69069
"whiteknight" at 192.168.1.3 pasted ":multi usage for Eclesia++" (24 lines) at nopaste.snit.ch/69070 19:21
Eclesia whiteknight: thanks 19:22
whiteknight :multi semantics are a little tricky, and probably need a redesign 19:25
but that's the basics
19:27 soh_cah_toa joined
mikehh its #ps time 19:31
19:31 darbelo joined
tcurtis ~~ 19:32
whiteknight hello tcurtis, how goes it?
dalek website: tcurtis++ | GSoC: LALR Parsing: A revised schedule
website: www.parrot.org/content/gsoc-lalr-pa...d-schedule
tcurtis whiteknight: I finally fixed all of the bugs and unimplemented tasks in the process of generating DPDAs for LR(0) grammars. 19:33
whiteknight tcurtis: awesome, that's a big step 19:41
tcurtis: What can we do to help? 19:42
Eclesia NotFound: does winxed handle properly code when we have more then one constructor ? 19:45
whiteknight Eclesia: no, Winxed doesn't currently handle Multidispatch
NotFound Eclesia: no
Eclesia whiteknight, NotFound : I don't mean creating classes with more then one constructor, just using them 19:46
cotto_work not_gerd: what timezone are you in?
NotFound Eclesia: using them should work, but I haven't tested. 19:47
tcurtis whiteknight: I'm planning to spend tonight reading about and working out how exactly to build a parse tree while parsing. 19:48
whiteknight tcurtis: I suspect it's pretty easy to do. A node for each token, and when you have enough nodes you make a production node and everything below it becomes children 19:49
but yeah, you want to get it right
tcurtis After I read the relevant chapter of "Practical Translators..." I'll probably want to talk about it to help clear up the details in my head.
whiteknight: I think that's essentially what it does, yes.
nopaste "Eclesia" at 192.168.1.3 pasted "For NotFound : constructor multi bug" (39 lines) at nopaste.snit.ch/69071 19:51
Eclesia NotFound: here is a test which is not working
perhaps I made something wrong, but I don't see anything special here 19:53
NotFound s
Eclesia is good at finding bugs lol 19:54
NotFound Eclesia: Don't know what can be the problem, I've never used muti.
Eclesia whiteknight: is there a special way to call methods which have 'multi' perhaps ? 19:55
whiteknight Eclesia: Shouldn't need to be, no
Eclesia: Oh, I know what the problem is. I forgot the invocant 19:56
you have to add an extra _ in each :multi, because they are methods
Eclesia trying 19:57
whiteknight: nice, it works :) 19:58
NotFound Now you see why there are no multi on winxed, I don't know them enough ;)
whiteknight NotFound: If I add multi support, would you be willing to merge it?
Eclesia NotFound: I'm going to use them a lot ^^
pmichaud the initial _ is for the type of the invocant
whiteknight Assuming the support isn't terrible, of course
NotFound whiteknight: yes, but declaring it experimental for a while. 20:00
whiteknight NotFound; I am planning, over time, to fix multi and other crap, but I don't know if we want to wait for Winxed
NotFound (just for my peace of spirit, that declaration doesn't mean much)
Eclesia I understand each _ if for an argument, something like (_,Integer,Float,String) but if I have a path to a pmc
how do I write it 20:01
whiteknight Eclesia: That's something I don't know
Eclesia whiteknight: I remember I already asked you about it last week, maybe someone else will know ;)
pmichaud perhaps ?
pmichaud ['Path';'To';'Class'] 20:02
whiteknight pmichaud: in the :multi() tag?
pmichaud yes.
see compilers/pct/src/PAST/Compiler.pir for some examples
whiteknight awesomeness
NotFound That will be a more work for a winxed implementation.
whiteknight no, not really. It is pretty horrible syntax. But, it's cool if it works
pmichaud .sub 'as_post' :method :multi(_, ['PAST';'Stmt']) 20:03
(from PAST::Compiler)
Eclesia pmichaud: does is properly redirect subclasses ?
whiteknight One day, object metamodel, Pop, Zoom! Straight to the Moon!
pmichaud Eclesia: if you're asking if it matches subclasses -- yes.
Eclesia nice 20:04
pmichaud i.e., ['PAST';'Stmt'] means any object of that type or a subclass
(in a :multi)
20:05 rdesfo joined
Eclesia more vicious now, if I have two methods with same name and arguments number , the first with :multi(_, ['eria';'AbstractParent']) , and the second with :multi(_, ['eria';'AChildClass']) . 20:05
which one is called if I give a AChildClass instance ? 20:06
pmichaud the second.
Eclesia hm ... I had one more, but since parrot is for dynamic types, my question does make sens ^^ 20:08
whiteknight Eclesia: Yes, it does best match
NotFound In a first look at crow.pir, it seems that the problem lies in Config/JSON 20:09
Uhhhh... no, it may be in the template file. 20:11
Eclesia pmichaud: what if I have only a single method with multi(_,Integer) and try to call it with something which is not an Integer ? will it raise an error or go in anyway ? 20:13
pmichaud Eclesia: it'll complain that there's no matching candidate, iirc.
Eclesia pmichaud: is there something similar for class properties ? like : addattribute $P0, 'value' :ensureType(Integer) ? 20:14
pmichaud Eclesia: no, not at the Parrot level. 20:15
Eclesia pmichaud: perhaps a way to reduces scopes on function, class ? to make them only useable for the current namespace for exemple ? 20:16
jnthn__ Eclesia: That's probably for the compiler to implement. 20:17
Eclesia jnthn__: I'm just trying to find out how far I can push security constraints in parrot. 20:18
pmichaud Eclesia: you can pretty much bend them to your will. 20:19
(unless "your will" is "make Parrot secure")
NotFound I've found the problem: It lies in "Pájaros"
The á acute is latin-1, not utf8 20:20
dalek kudo/nom: 3462af1 | tadzik++ | src/Perl6/Grammar.pm:
Implement DOC use
NotFound Ok, looks like it is a documentation problem: the release manager guide should recommend to check thah the tools/release/release.json file is a valid json file, in particular that any non-ascii character must be utf8. 20:24
pmichaud or, add such a test to "make test" somewhere. 20:25
(or "make doctest" or whatever)
NotFound Yes, just trying to parse it will cover most mistakes. 20:26
But the error message will nor be particularly informative.
not_gerd more errors from the msys front: paste.pocoo.org/show/qnWjMgZe2tu78NCqeBWz/ 20:29
the file in question doesn't exist, so I'm not suprised it can't be read...
NotFound config.fpmc is generated, it must be some other error before that. 20:31
not_gerd I've got a config.fpmc, but for some reason it's located in $build_dir\\runtime\\parrot\\include 20:33
20:41 darbelo_ joined
dalek kudo/nom: 1ec5883 | tadzik++ | src/Perl6/Grammar.pm:
Use a subcapture instead of a dynvar in DOC use handling, pmichaud++
20:42
nopaste "Eclesia" at 192.168.1.3 pasted "something not quit right yet" (39 lines) at nopaste.snit.ch/69114 20:44
Eclesia NotFound: do you see anything strange in this small code ?
dalek rrot: 70cca2a | NotFound++ | config/gen/config_pm/config_pir.in:
finalize an exception in config generation
20:45
NotFound not_gerd: that may fix your problem... or not.
Eclesia: I don't know if _ means 'any PMC' or 'anything' 20:47
Eclesia NotFound: it's actualy the error U
I dont understand*
looks like he is not calling the good constructor 20:48
NotFound Eclesia: sometimes the excption messages are less than awesome.
Eclesia: it may be that the multi rules give precedence to the wrong sub. They shouldn't, but... 20:49
Eclesia pmichaud: sorry to disturb you again, but could you have a quick expert look at the problem ? (in the pastebin above)
20:52 Khisanth joined
Eclesia (or anyone else) 20:54
pmichaud Eclesia: looking 21:07
Eclesia pmichaud: thanks 21:09
not_gerd NotFound: your commit didn't fix the issue, but I think I know what's happening
if $prefix/runtime isn't found, config.pir tries to read the file from the install location 21:10
pmichaud Eclesia: it works for me -- see gist.github.com/1135208
NotFound not_gerd: yes, looks like it does it that way. 21:11
Eclesia pmichaud: strange :/
pmichaud Eclesia: where does Decimal64.pir get loaded? 21:12
Eclesia pmichaud: sometime before. it is loaded as a pbc file
pmichaud I'd check to make sure it's not stale. 21:13
nopaste "Eclesia" at 192.168.1.3 pasted "pmichaud : full Decimal64.pir" (23 lines) at nopaste.snit.ch/69136 21:14
Eclesia pmichaud: I removed the .annotation in the previous file, perhaps something mess up with them ... perhaps
pmichaud Eclesia: I don't see anything wrong there, no. It's likely to be something obvious. As my gist above showed, though, the basic :multi seems to be working properly. 21:18
I doubt it has anything to do with the annotations.
although having .annotation between .sub and .param might be a problem. 21:19
Eclesia pmichaud: it is annotate ! I removed them and it worked
pmichaud yeah, it's probably where they occur that is the issue.
Normally IMCC (the PIR compiler) doesn't like having *anything* between a .sub declaration and its .param lines.
Eclesia ok, I'll fix my parser 21:20
pmichaud i.e., the first the after a .sub declaration has to be any .params. Otherwise it thinks there are no params.
NotFound annotation before param doesn't work well. plobsing added a fix some weeks ago, but the fix doesn't work for methods. 21:21
Eclesia pmichaud: just a suggestion, the compilation should have failed then
NotFound Beacuse of the way 'self' is generated
benabik Perhaps we could error out if we encounter a .param after something else in the sub? 21:22
NotFound Eclesia: Have you seen people frequently blaming imcc? Now you know why.
benabik: on the contrary, the last fixes were to allow them anywhere. 21:24
Eclesia so that's imcc . the 'famous' black sheep ^^
benabik NotFound: Except that it doesn't work for methods, apparently…
NotFound It works, but not as expected. 21:25
'method' synthetizes a .param declaration for method. The annotation makes that .param a separate param block. 21:26
s/for method/for self
benabik … Separate param block?
Eclesia hourray, made his first addition
2months after starting the project ... 21:27
NotFound benabik: as if it were a different entry point for the sub
benabik NotFound: subs can have multiple entry points?
NotFound benabik: I think the idea was to add the ability of declaring exception handlers or continuation targets with params 21:28
cotto_work not_gerd: you said you had some more M0 thoughts, though it was 0230 for me at the time. Care to share them now? 21:30
Eclesia time to go ++, NotFound, pmichaud : thanks for the help 21:31
not_gerd cotto_work: how much thought has gone into the decision to make the m0 instruction set minimal? 21:33
ease of implementation aside, I don't see much benefit in that
as I see it, there are 2 drawbacks:
cotto_work not_gerd: that's been on my mind a lot recently 21:34
not_gerd 1. bad interpreter performance (few ops --> a lot of dispatch)
2. m0 is lower-level than the target instruction-set for jitting
this means you can't generate good code without an optimizer
translating one high-level instruction to many low-level ones is easier than the other direction 21:35
cotto_work Part of it is a reaction against PIR, which has ~1100 instructions and is essentially impossible to jit. 21:36
I'm not saying that's good or bad, just that it is.
I'm realizing that M0's minimalism is a goal that needs to be examined more thoughtfully.
21:44 Psyche^ joined
not_gerd cotto_work: for comparison: nanojit has 118 ops, gnu lightning 116 21:44
cotto_work not_gerd: that's instructive 21:45
not_gerd some links: developer.mozilla.org/En/Nanojit/LIR www.gnu.org/software/lightning/manu...n-set.html demakov.com/projects/libjit-docs/libjit_8.html llvm.org/docs/LangRef.html 21:46
benabik LLVM appears to have 57, although that's mildly deceptive because most ops will handle most types.
(So the # explodes if you count each type variant separately.)
not_gerd llvm ir is a special case because it's not really designed for fast jitting, but control flow analysis
benabik True, but it's not a bad place to look for "minimal instruction set". 21:47
Well, probably not true. They list a JIT compiler as being one of the targets for IR. 21:49
not_gerd benabik: the llvm jitter comes with a lot of overhead in comparison to, say, libjit, but probably produces better code 21:50
cotto_work llvm is better at optimizing 21:52
I think libjit and gnu lightning focus more on quickly generating code
dukeleto not_gerd: i think the current "m0 philosophy" is: miniminalize the number of opcodes, then add more in if necessary. I imagine that we will add a few JIT related m0 ops when we get to that stage 21:53
not_gerd gnu lightning is basically a runtime assembler - no optimizations, no register allocator
libjit can do optimizations, even on-demand 21:54
dukeleto not_gerd: also, the JIT subsystem may be in C, like the GC. Do you know of examples of JIT's which aren't written in C/C++ ?
cotto_work dukeleto: I'm starting to question that. Minimizing the number of opcodes needs to have a solid rationale, otherwise we're just minimizing it to minimize it.
We need a set of criteria between which we can find a balance. 21:55
dukeleto cotto_work: sure. I think we are at the point where we need to "look-ahead" and see how a JIT and M0 will interact. It surely isn't obvious.
cotto_work Otherwise we can just implement a one-instruction VM and call it good.
not_gerd dukeleto: all jit compilers I know of are written in C or C++ 21:57
luajit has only the interpreter written in asm
dukeleto not_gerd: yeah, luajit is pretty crazy (and fast) in that respect
Nanojit has 128 opcodes: developer.mozilla.org/En/Nanojit/LIR 21:58
cotto_work dukeleto: several aren't used
dukeleto so I think it is safe to say that we can roughly double the number of opcodes that m0 has currently, but past that, we should find suspect
cotto_work: sure. room to grow. 21:59
cotto_work dukeleto: that still sounds like an arbitrary number
dukeleto cotto_work: 119 ops currently in use
cotto_work What's been blocking me has been that I don't want too many ops, and that's not a good goal on its own.
not_gerd re luajit - here's Mike's explanation as to why you shouldn't use C to write interpreters: article.gmane.org/gmane.comp.lang.l...eral/75426 22:00
dukeleto and reading more closely, 2 more ops are rarely uses, so that brings us to 117 "real" ops
cotto_work I've seen that.
It's a good case for learning assembly. 22:01
dukeleto I knew all that assembly hacking in college would come in handy again. 22:03
cotto_work It strikes me as more of an implementation issue though. We want M0 to have several interpreters to choose from.
dukeleto The number of ops in nanojit almost certainly evolved as performance data was collected about slow code paths, which were then broken into different opcodes.
cotto_work: why do we want to have several interpreters? explain that a bit more? 22:04
I don't think it is reasonable to assume that we will know exactly the perfect number of opcodes that M0 should have before we actually have M0 performance data.
cotto_work dukeleto: different use cases, e.g. msvc-optimized for windows, space-optimized for embedded, gcc-optimized for *nix, js for the browser
dukeleto: me neither. That's why I want to figure out a coherent set of criteria. 22:05
dukeleto cotto_work: i think i missed that memo. msvc-optimized ? gcc-optimized ?
cotto_work Some kind of yardstick is needed.
dukeleto cotto_work: i can understand having tunable params in one interp to prefer memory or performance, but multiple m0 interps? I will need more cajoling before I think that will be a good idea. 22:06
22:07 whiteknight joined
dukeleto cotto_work: i can understand multiple different kinds of JITs (like mozilla does), but multiple VM interpreters? That seems like a huge maintainence burden that even companies with hundreds of devs don't want to deal with. 22:07
not_gerd prior art for a VM with multiple interpreters: Parrot 22:08
(interpreter <--> runcore)
whiteknight good evening, #parrot 22:09
cotto_work hi whiteknight
not_gerd whiteknight: I made some progress with my msys build 22:10
whiteknight not_gerd: awesome. Do you have a github account?
cotto_work dukeleto: it's been part of the long-term plan as long as I've been thinking about M0.
not_gerd I even have a winxed.exe, but the build currently fails at src/dynoplibs/sys_ops.o
cotto_work no immediately, but once M0 stabilizes and we start to find where the bottlenecks are
*not 22:11
not_gerd whiteknight: no github account, and I currently hardcode my paths, but I can set one up when I'm ready to show something üresentable
^peresentable 22:12
cotto_work aloha: clock/
aloha: clock?
aloha cotto_work: LAX: Tue, 15:12 PDT / CHI: Tue, 17:12 CDT / NYC: Tue, 18:12 EDT / UTC: Tue, 22:12 UTC / LON: Tue, 23:12 BST / BER: Wed, 00:12 CEST / TOK: Wed, 07:12 JST / SYD: Wed, 08:12 EST
dukeleto cotto_work: i guess when i think of it as a runcore, then it makes more sense.
dalek rrot/whiteknight/multisub_cleanup: f4a6420 | Whiteknight++ | src/pmc/multisub.pmc:
Remove some unused/unimplemented cruft from MultiSub
22:13
rrot/whiteknight/multisub_cleanup: a0c9588 | Whiteknight++ | src/pmc/multisub.pmc:
Remove more unnecessary vtables. Fallback to the default.pmc has the same effect as throwing an unconditional exception, but the error messages are just a bit different
dukeleto not_gerd: i highly encourage you to get a github account. I would love to see you help us with m0, after you get your build issues sorted out
dalek rrot/whiteknight/multisub_as_hash: 82fca57 | Whiteknight++ | src/pmc/multisub.pmc:
Prototype code to play with the idea that a multisub could be a sig->sub hash instead of an RPA
22:14
cotto_work dukeleto: If M0 is essentially static and has solid test coverage, there won't be a major additional burden to maintain additional interpreters.
("static" as in unchanging)
not_gerd the problem with msys is that parrot can't deal with the unix-style virtual paths 22:16
so every time there's a hardcoded absolute path, you have a problem
dukeleto This is a nice overview of the Adobe ActionScript VM: www.adobe.com/content/dam/Adobe/en/...erview.pdf
not_gerd also, the msys hints file has last been touched January 18, 2007
dukeleto not_gerd: parrot used to have more windows devs, but a few of those haven't been active lately 22:17
not_gerd: many people would thank you if you helped us get that stuff up to the present 22:18
This page has some pretty pictures and an overview of how Spidermonkey uses nanojit: developer.mozilla.org/En/SpiderMon...racing_JIT 22:21
22:21 rdesfo joined
benabik dukeleto: all the pretty pictures are broken for me. :-( 22:24
dukeleto benabik: why? 22:25
benabik: are you using some kind of broken OS? ;)
benabik: what kind of error do you get?
benabik dukeleto: 500. It resolved itself.
dukeleto benabik: the joys of intermittent failures 22:27
benabik: i have been reading about mercurial lately. The overlapping-yet-different terminology surely makes one want to throw a dictionary at somebody. 22:28
benabik dukeleto: Overlap with themselves or overlap with git?
cotto_work English needs namespaces. 22:29
dukeleto benabik: overlapping with git 22:33
not_gerd fun fact: on msys-perl, cpan install Win32 fails with 'OS unsupported'
benabik dukeleto: IIRC, they saw some things git did and thought "we can do that", but kinda couldn't.
not_gerd I'll probably have to do something like print `cmd /c 'for \\%i in (.) do \\@echo \\%~fi'`; to get absolute paths... 22:34
dalek kudo/nom: 73ee1ee | jonathan++ | / (17 files):
Add archetypes, which provide a way for a meta-object to describe the things the types it describes can be used for, or can provide related types for. Replaces the .is_generic mechnism, and adds a few more things, including a way to ask a subtype for its underlying nominal type.
22:35
kudo/nom: 9d9f42c | jonathan++ | src/Perl6/Metamodel/SubsetHOW.pm:
Missing decontainerize.
kudo/nom: 71168e4 | jonathan++ | src/Perl6/Actions.pm:
Handle non-nominal types used in the nominal parameter type slot; start preparing for fixing generics handling in the binder a little more.
kudo/nom: c954899 | jonathan++ | t/spectest.data:
Run S12-subset/multi-dispatch.t.
22:39 kid51 joined
dalek rrot: bb0b13f | jkeenan++ | docs/ (2 files):
Merge branch 'tt2007/html_links'
22:46
soh_cah_toa whiteknight: ping 22:49
dukeleto about:memory in Firefox 5 is pretty spiffy 22:51
dalek TT #2007 closed by jkeenan++: documentation now links offsite 22:57
TT #2007: trac.parrot.org/parrot/ticket/2007
benabik dukeleto: I find chrome://memory amusing. "Bug: We seriously overcount our own memory usage" 22:58
dukeleto benabik: lulz 23:03
wiki.mozilla.org/JavaScripdt:Compi...References <- Nice collection of interesting papers
whiteknight soh_cah_toa: pong 23:07
soh_cah_toa whiteknight: i started writing up a draft spec for a debug segment 23:10
whiteknight w00t
soh_cah_toa whiteknight: take a look: gist.github.com/1133182
it's modeled mostly after dwarf 23:11
whiteknight soh_cah_toa: looks nice 23:13
kid51 soh_cah_toa: Were you able to look at my email re the tests? 23:14
soh_cah_toa ah, haven't checked it but i did see a message from aloha
it's on my other machine though, what was it about? 23:15
kid51 Umm, I think you should read the email. 23:16
Do you want me to re-send it? 23:17
soh_cah_toa i'll check it now
kid51: the 'list' test fails for you? all tests pass for me 23:19
dalek rrot/soh-cah-toa/hbdb: df3b798 | jkeenan++ | t/tools/hbdb/cmds.t:
Correct name of file in its POD.
23:20
soh_cah_toa also, why use 'no_plan' and move $bad_cmd and $err_msg outside lexical block? 23:21
kid51 1. In rapid development, you often don't know how many tests you are going to end up with. no_plan is expedient at that point in the development cycle. 23:22
soh_cah_toa ok. yeah, i forget to increment that a lot 23:23
kid51 2. They're assigned once only, but in my patch used in multiple blocks.
Side issue: When running 'make' in this branch, I have twice gotten: 23:24
PackFile_Header_validate: This Parrot cannot read bytecode files with version 11.0.
current instr.: 'parrot;PGE;Exp;__onload' pc 2975 (compilers/pge/PGE/OPTable.pir:27)
make: *** [runtime/parrot/library/PGE.pbc] Error 1
soh_cah_toa yeah, i just noticed that
do you have 3.6 installed? it doesn't work w/ it 23:25
kid51 No, I have no parrot installed.
soh_cah_toa hm 23:26
kid51 But, even if I did, your branch should probably work w/ the latest supported release.
soh_cah_toa it was forked pre 3.6
i tried merging and got a bunch of frustrating conflicts and gave up
kid51 Hmm, perhaps you should discuss with your mentor refreshing the branch, as your branch has been much more long-lived than most. 23:27
soh_cah_toa and then i think someone told me not to merge
kid51 Alright, after a make realclean and reconfigure, I can rebuild
Well, you're not ready to merge branch into master, but ...
... people other than me can tell you when you should merge master into branch. 23:28
soh_cah_toa yeah ok
kid51 duke can probably tell you when/when not to do that
soh_cah_toa ok
nopaste "kid51" at 192.168.1.3 pasted "cmds.t: 2 of 3 tests failing" (67 lines) at nopaste.snit.ch/69200 23:29
23:30 slavorg joined
soh_cah_toa odd, do you have local changes? i have all passing 23:32
kid51 $ git status
# On branch soh-cah-toa/hbdb
nothing to commit (working directory clean)
soh_cah_toa eh
cotto_work soh_cah_toa: who told you not to merge? 23:34
soh_cah_toa hmm...
i forget
cotto_work and was it because of something that was happening at the time? In general, it shouldn't be a bad idea.
no need to merge right now though. 23:35
soh_cah_toa well, i remember talking to you, duke, whiteknight, and i think kid51 was there too
cotto_work get those tests written and passing. You can merge after pencils down.
soh_cah_toa alright, no big deal
soh_cah_toa will brb 23:36
kid51 cotto_work: Feedback welcome on that email I sent today, on which I cc-ed you. 23:37
(particularly since i was working on it at 4:30 am localtime :-) ) 23:38
kid51 goes back to reading blogs
dalek kudo/nom: c5e94c1 | jonathan++ | src/ (3 files):
Pass generic nominal flag down to binder.
23:40
kudo/nom: 130bab8 | jonathan++ | src/Perl6/Grammar.pm:
Seems tadzik's last patch was a little off and managed to break the build; this unbreaks it.
kudo/nom: cb738d9 | jonathan++ | src/binder/bind.c:
Make (::T, T) style signatures work properly in the binder.