Camelia, the Perl 6 bug

IRC log for #parrot, 2010-12-27

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:00 Matt_ Can someone explain what the numbers in the left margin (in green) mean in the code coverage pages? (for a GCI task)
00:00 Matt_ http://tapir2.ro.vutbr.cz/cover/cov​er-results/2010-12/2010-12-26-f9724​90/c_cover/src-embed-strings-c.html
00:03 Coke green numbers - # of times that line of code was run.
00:04 Coke (pretty sure)
00:05 Matt_ Hmm. ok. If you look at the test here: https://github.com/parrot/parrot/​blob/master/t/src/embed/strings.t There is a call to Parrot_api_string_export_wchar yet the file coverage shows '0' in red. any ideas?
00:33 whiteknight joined #parrot
00:41 dukeleto Matt_: is that test being run?
00:42 Matt_ I think so. I wrote it for another task a while back and I remember running `make test` to test it before I learned about the `prove` command
00:43 Kapace_ can a mentor accept? http://www.google-melange.com/gci/task/show/goog​le/gci2010/parrot_perl_foundations/t129329047035
00:48 whiteknight looking...
00:48 whiteknight Kapace_: Hold on, I need to merge something else before I can accept that task
00:49 Kapace_ ok
00:50 dalek parrot/gci_fix_makefile: d5fe4fb | Yuki`N++ | config/gen/makefiles/root.in:
00:50 dalek parrot/gci_fix_makefile: Diagnose undercovered embedding library via Makefile modifications.
00:50 dalek parrot/gci_fix_makefile: review: https://github.com/parrot/parrot/commit/d5fe4fb9a5
00:50 dalek parrot: d5fe4fb | Yuki`N++ | config/gen/makefiles/root.in:
00:50 dalek parrot: Diagnose undercovered embedding library via Makefile modifications.
00:50 dalek parrot: review: https://github.com/parrot/parrot/commit/d5fe4fb9a5
00:50 dalek parrot: 035b964 | Whiteknight++ | config/gen/makefiles/root.in:
00:50 dalek parrot: Merge remote branch 'origin/gci_fix_makefile'
00:50 dalek parrot: review: https://github.com/parrot/parrot/commit/035b964c3b
00:51 Matt_ whiteknight: ^^ that change may fix why these coverage results aren
00:51 Matt_ 't accurate: http://tapir2.ro.vutbr.cz/cover/cov​er-results/2010-12/2010-12-26-f9724​90/c_cover/src-embed-strings-c.html
00:51 Matt_ it looks like Parrot_api_string_import_wchar has a coverage of 0 yet I wrote a test for it a while back
00:51 whiteknight Matt_: yeah, I suspect that will bump the numbers. that's why I want to merge and see what the new coverage numbers look like
00:51 whiteknight Matt_: yeah, this will probably bump that
00:52 Matt_ whiteknight: Keep me posted on the new numbers. I sent a claim request for: http://www.google-melange.com/gci/task/show/google​/gci2010/parrot_perl_foundations/t129336715502#c1
00:52 Yuki`N whiteknight, can you accept http://socghop.appspot.com/gci/task/show/google​/gci2010/parrot_perl_foundations/t129336706640
00:53 whiteknight Matt_: accepted. Change it to NeedsReview and I'll close it for you
00:53 whiteknight Yuki`N: let me look
00:53 Yuki`N whiteknight, that task for strings.c should be mine. :(
00:53 Yuki`N I technically increased the coverage. :P
00:53 whiteknight Yuki`N: I gave one of them to you, didn't I?
00:53 Matt_ whiteknight: I did no work on it yet. was just researching
00:53 Yuki`N Umm, only pmc.c
00:53 Yuki`N Whatever. :P
00:54 * Kapace_ should have jumped on it
00:54 Yuki`N Did you see my question about exception handlers?
00:54 Yuki`N trying to get pmc.c up to 100% but there are two concepts which I don't understand fully.
00:54 whiteknight Yuki`N: accepted. Thanks
00:54 whiteknight Matt_: oh, sorry. I got you mixed up with another one
00:55 Matt_ whiteknight: Let me know when the new coverage results are up (or how I could generate them)
00:55 Matt_ so I can work on the coverage for strings.c
00:55 whiteknight Kapace_: Accepted. Good luck
00:55 Kapace_ whiteknight: done thanks :P
00:55 whiteknight Matt_: you can run "make quickcover" from the commandline, if you have the prereqs
01:00 Yuki`N whiteknight, from before, <Yuki`N> whiteknight, how do exception handlers in C work?
01:00 Yuki`N i.e. Parrot_api_add_exception_handler
01:00 whiteknight Yuki`N: dark magic and poison
01:01 Yuki`N Oh dear.
01:01 whiteknight Yuki`N: okay, what we need to do for that is have a Sub PMC, and pass that in as the argument
01:02 Yuki`N Oh.
01:02 whiteknight Yuki`N: Comment that function (Parrot_api_add_exception_handler) out. We aren't ready for that one yet
01:02 Yuki`N Oh ok.
01:02 whiteknight testing it is going to be way too hard
01:02 Yuki`N Yeah. :/
01:02 Yuki`N How do I serialize a PMC to be deserialized?
01:02 Yuki`N Parrot_api_pmc_deserialize is the relevant function.
01:06 whiteknight Yuki`N: isn't there a Parrot_api_pmc_serialize?
01:06 Yuki`N Nope.
01:06 Yuki`N I don't think so.
01:06 Yuki`N It might be in another file...
01:07 Yuki`N Nope it's not in api.c or pmc.c
01:07 whiteknight Yuki`N: no, I'm mistaken. That's something that needs to be written
01:08 whiteknight Yuki`N: You can load in a file of an existing serialized PMC
01:08 Yuki`N Are there any serialized as a string?
01:08 Yuki`N Or is that what happens in deserialized_bytes anyway?
01:09 whiteknight after build, there should be a config.fpmc
01:09 whiteknight or install_config.fpmc
01:09 whiteknight look for a file "*.fpmc"
01:09 whiteknight that's a serialized ("frozen") PMC
01:09 Yuki`N Oh ok.
01:09 Khisanth left #parrot
01:09 Yuki`N install_config.fpmc exists.
01:09 whiteknight runtime/parrot/include/config.fpmc
01:10 Yuki`N Oh
01:10 Yuki`N also t/tools/install/testlib/install_config.fpmc
01:10 whiteknight That file gets written out to a C file in src/config.c
01:10 whiteknight Yuki`N: right, so there are options
01:10 whiteknight that config PMC should be a hash, and should have a few standard keys
01:11 Yuki`N Those look binary though.
01:11 whiteknight at the commandline, type "./parrot_config --dump" to see a list of all the keys and their values
01:11 whiteknight yeah, it is binary. That's what a frozen PMC is
01:11 Yuki`N Oh, then why is there a deserialize and a deserialize_bytes?
01:16 Matt_ whiteknight: I installed Devel::Cover using the CPAN shell but its not finding it "Please install Devel::Cover"
01:17 Matt_ Did perl -MCPAN -e 'shell' followed by 'install Devel::Cover'
01:17 kennym left #parrot
01:19 whiteknight Matt_: you may need to reconfigure
01:20 whiteknight Yuki`N: _deserialize reads a .fpmc file. _deserialize_bytes reads in a C byte array
01:20 Yuki`N Oh, so I don't even have to worry about reading the file in the C test code?
01:25 fbrito left #parrot
01:26 dukeleto ~~
01:30 Yuki`N dukeleto, can you add me another pmc.c task, similar to http://socghop.appspot.com/gci/task/show/google​/gci2010/parrot_perl_foundations/t129336706640?
01:30 Yuki`N I got the coverage up to 95%
01:32 davidfetter joined #parrot
01:33 Kapace_ frozen PMCs remind me of pickled python objects
01:34 whiteknight I'm not familiar with pickled python objects
01:35 Kapace_ whiteknight: they're just like frozen PMCs :P
01:35 whiteknight oh, now I know what they are?
01:36 dalek parrot: dbc7745 | dukeleto++ | t/pmc/key.t:
01:36 dalek parrot: [t] Increase code coverage of Key PMC, a GCI task by David Czech
01:36 dalek parrot: review: https://github.com/parrot/parrot/commit/dbc7745934
01:36 Kapace_ no kharma :(
01:36 plobsing left #parrot
01:37 dukeleto whiteknight: pickle is a synonym for freeze in some other circles (like python)
01:37 dukeleto Kapace_: are you David Czech?
01:37 plobsing joined #parrot
01:37 Kapace_ dukeleto: yes.
01:38 dukeleto Kapace_: i didn't know!
01:38 dukeleto Kapace_: are you in CREDITS yet?
01:38 dukeleto karma Kapace_
01:38 aloha Kapace_ has karma of 0.
01:38 dukeleto karma Kapace
01:38 aloha Kapace has karma of 3.
01:38 dukeleto Kapace++
01:38 Kapace_ yes i think so
01:39 dukeleto Kapace_: no, you are not in there
01:39 dukeleto Kapace_: create a patch that adds yourself, and I will apply it
01:39 dukeleto Yuki`N: awesome!
01:41 dukeleto melange is crapping out
01:41 Kapace_ hmm, I remember seeing cotto add me somewhere...
01:44 Yuki`N Stupid melange. :P
01:44 whiteknight aloha coverage?
01:44 aloha whiteknight: coverage is http://cv.perl6.cz or http://tapir2.ro.vutbr.cz/cover/cover-results/
01:45 Kapace_ dukeleto: https://github.com/parrot/parrot/commit/042dcefde7
01:46 Yuki`N Wow I just connected my USB externals into my Linux VM because all the windows tools pale in comparison to gparted.
01:46 Yuki`N In compatibility, at keast.
01:46 Yuki`N *loeast
01:46 Yuki`N Paragon was unwilling to move my ext4 partitions.
01:49 dukeleto Kapace_: which branch is that in? doesn't seem to be in my CREDITS on master
01:50 Kapace_ yeah, can't see it here either, wierd..
01:50 Kapace_ "cotto pushed to lorito "
01:50 Kapace_ I guess its in the lorito branch?
01:52 dukeleto Kapace_: he accidently put it on the wrong branch. I will fix it
01:53 dalek parrot: 4e7f3b3 | cotto++ | CREDITS:
01:53 dalek parrot: add kapace to CREDITS
01:53 dalek parrot: review: https://github.com/parrot/parrot/commit/4e7f3b34d1
01:54 Matt_ whiteknight: I'm getting errors like 'no source src/gc/src/gc/system.c found for src/gc/system.c.gcov' when running `make cover` and I only get coverage results for ~7 files (all headers too)
01:55 whiteknight Matt_: weird
02:00 Yuki`N dukeleto, I guess adding that second task can wait. In the meantime can you accept my claim? http://socghop.appspot.com/gci/task/show/google​/gci2010/parrot_perl_foundations/t129329019671
02:02 Yuki`N Also whiteknight, I ended up not being able to understand how I can use the plain `deserialize', I submitted a pull request with the one test I did add though. https://github.com/parrot/parrot/pull/45
02:04 Kapace_ is it just me or does t/src/embed/api.t not exist? http://socghop.appspot.com/gci/task/show/google​/gci2010/parrot_perl_foundations/t129336697097
02:05 Yuki`N It's t/src/embed.t
02:05 Kapace_ ah, thanks
02:05 dukeleto Yuki`N: done
02:06 dalek parrot: 00259d7 | Whiteknight++ | / (2 files):
02:06 dalek parrot: Merge branch 'master' of github.com:parrot/parrot
02:06 dalek parrot: review: https://github.com/parrot/parrot/commit/00259d7d14
02:06 Yuki`N dukeleto, thanks.
02:06 Yuki`N How does PObj_constant_TEST work?
02:08 kennym joined #parrot
02:08 whiteknight Yuki`N: include/parrot/pobj.h
02:08 Yuki`N Rather, how is an object set "constant"?
02:08 Yuki`N K.
02:08 whiteknight PMCs have a flags field, which contains a number of bit flags
02:09 whiteknight there'a a macro PObj_constant_SET to set the flag, and PObj_constant_CLEAR to unset it
02:09 Yuki`N Can I do so from PIR?
02:10 whiteknight ...I don't think so
02:10 whiteknight What are you trying to test?
02:11 Khisanth joined #parrot
02:11 whiteknight I suspect Parrot_secret_snprintf is dead code
02:15 Yuki`N whiteknight, I'm trying to expand the Hash PMC coverage.
02:15 whiteknight ok
02:15 Yuki`N And there's a lot of instances which check using a non-constant key in a constant hash or something.
02:15 whiteknight oh, that code is all stupid
02:16 Kapace_ This task looks interesting, but I have no clue how to serialize PMCs. http://socghop.appspot.com/gci/task/show/google​/gci2010/parrot_perl_foundations/t129341406031
02:17 whiteknight Kapace_: there are functions for it. The API doesn't really do any logic, the API only exposes it
02:17 kennym left #parrot
02:17 Kapace_ ok, then Ill give it a shot
02:17 whiteknight Kapace++
02:18 Yuki`N whiteknight, I wonder if getting rid of it will do anything. `-`
02:19 whiteknight Yuki`N: maybe. It's something the GC guys have been talking about removing
02:19 Yuki`N Because of all that (questionably useless) code I'm not quite sure if I can manage a 10% increase, hm.
02:19 whiteknight Kapace_: Look at the freeze opcode. src/ops/core.ops or src/ops/pmc.ops (I don't remember where)
02:20 whiteknight Kapace_: Also, most of the functions for this are in src/packfile/object_serialization.c
02:20 Yuki`N There's a lot of entry_type_must_be_pmc conditionals that are easy to test for though, so maybe...
02:20 whiteknight Yuki`N: Do your best. If 10% is impossible
02:21 Kapace_ whiteknight: awesomem, thanks
02:23 whiteknight awesomem indeed
02:23 Yuki`N If there are VTABLE functions that aren't used in any OPCODE can I cut them out?
02:26 Yuki`N defined_keyed_str is one such function; the opcodes only take PMC and Integer keys.
02:26 Yuki`N Rather, INTKEY and KEY values.
02:32 whiteknight Yuki`N: No, we can't take out ops
02:32 whiteknight or VTABLEs
02:32 whiteknight If you think something is not being used you can open a ticket to have it removed eventuall,
02:40 * whiteknight is signing off for the night. Later
02:42 whiteknight left #parrot
02:50 Kapace_ how can I run a test under a debugger? (can't do gdb perl t/mytest.t because perl isn't crashing)
02:52 dalek parrot/encapsulate-main: 2d0b46e | plobsing++ | compilers/opsc/ops2c.nqp:
02:52 dalek parrot/encapsulate-main: workaround nqp-rx not generating :main for ops2c
02:52 dalek parrot/encapsulate-main: review: https://github.com/parrot/parrot/commit/2d0b46ea18
02:52 dalek parrot/encapsulate-main: 0ff4ddd | plobsing++ | frontend/pbc_merge/main.c:
02:52 dalek parrot/encapsulate-main: bytecode segment needs to be created first for unknown reasons
02:52 dalek parrot/encapsulate-main: review: https://github.com/parrot/parrot/commit/0ff4ddd764
02:52 dalek parrot/encapsulate-main: 3c0cc0d | plobsing++ | t/ (65 files):
02:52 dalek parrot/encapsulate-main: use explicit :main in coretest
02:52 dalek parrot/encapsulate-main: review: https://github.com/parrot/parrot/commit/3c0cc0d750
02:55 Yuki`N Kapace_, you can't debug PIR tests at all.
02:55 danielmarth left #parrot
02:56 Kapace_ no, its a C test
02:57 plobsing Kapace_: extract the crashing PIR into a test file
02:57 plobsing or the crashing C as is the case
02:58 plobsing then compile/run just the extracted bit
02:59 Yuki`N Yeah.
03:00 Yuki`N When you run prove t/test.t, it should extract each c segment into its own file.
03:05 Kapace_ ok
03:13 Matt_ plobsing: I'm having some issues running `make quickcover` on Ubuntu
03:14 Matt_ Getting errors like: 'no source src/gc/src/gc/gc_inf.c found for src/gc/gc_inf.c.gcov'
03:14 Matt_ shouldn't the first just be 'src/gc/gc_inf.c'
03:14 Matt_ looks like the paths are corrupted?
03:14 Matt_ *first path
03:29 fbrito joined #parrot
03:29 plobsing Matt_: sorry, I know little about the config/make system (and I try to stay that way). I know even less about the coverage code. All I know is that it works on my end
03:31 nwellnhof Matt_: I get the same errors here
03:32 Matt_ plobsing: Can you generate the current coverage report for the latest master branch. I need to see the coverage for embed/string.c
03:33 contingencyplan left #parrot
03:48 nopaste "plobsing" at 192.168.1.3 pasted "src/embed/strings.c.gcov" (225 lines) at http://nopaste.snit.ch/27498
03:48 plobsing Matt_: ^^^
03:49 nwellnhof plobsing: what's your gcc version?
03:50 plobsing gcc version 4.5.1 20101125 (prerelease) (GCC)
03:50 khisanth_ joined #parrot
03:50 nwellnhof the way gcov is used in the makefile seems broken to me.
03:51 nwellnhof the gcov docs say: "gcov should be run with the current directory the same as that when you invoked the compiler. Otherwise it will not be able to locate the source files."
03:51 nwellnhof currently, we chdir in the subdirectories. and that's why i get error messages.
03:52 Yuki`N It works for me as well, :/
03:52 plobsing like I said before, I neither know nor care to know about such issues.
03:52 nwellnhof Yuki: what's your gcc version?
03:53 Yuki`N Hold on, starting my vm.
03:53 Khisanth left #parrot
03:53 Yuki`N gcc (GCC) 4.5.1 20100924 (Red Hat 4.5.1-4)
03:53 Yuki`N So same as plobsing.
03:53 khisanth__ joined #parrot
03:54 Yuki`N aloha, coverage?
03:54 aloha Yuki`N: coverage is http://cv.perl6.cz or http://tapir2.ro.vutbr.cz/cover/cover-results/
03:54 Yuki`N Matt_, http://tapir2.ro.vutbr.cz/cover/cover-res​ults/2010-12/2010-12-27-00259d7/c_cover/ has the latest coverage results.
03:54 nwellnhof i have gcc 4.4 here.
03:54 Yuki`N Maybe that's why.
03:59 khisanth_ left #parrot
04:00 Matt_ Yuki`N: thanks!
04:00 Yuki`N np.
04:03 khisanth__ left #parrot
04:03 nwellnhof Matt: what's your gcc version?
04:05 Matt_ 4.4.5
04:16 nwellnhof seems to be related to gcc 4.4
04:23 Yuki`N left #parrot
04:42 Matt_ left #parrot
04:46 Coke left #parrot
04:47 dalek parrot/encapsulate-main: ac1c768 | plobsing++ | / (10 files):
04:47 dalek parrot/encapsulate-main: use explicit main in make tests
04:47 dalek parrot/encapsulate-main: review: https://github.com/parrot/parrot/commit/ac1c768be5
04:54 fbrito hm, it seems that "make quickcover" was not included in "make help"
05:29 nwellnhof left #parrot
05:35 rurban_ joined #parrot
05:37 rurban left #parrot
05:37 rurban_ is now known as rurban
06:01 cotto ~~
06:01 cotto mikehh, ping
06:01 cotto seen mikehh
06:01 aloha mikehh was last seen in msg 5 hours 55 mins ago <private message>.
06:04 cotto dukeleto, ping
06:07 fbrito cotto hello :)
06:08 cotto hi fbrito
06:09 fbrito just wanted to say hi, hehehe :P. I have to go now :(
06:09 fbrito good night
06:10 cotto 'night
06:10 fbrito left #parrot
06:18 cotto mikehh, unping
06:19 cotto plobsing, ping
06:20 cotto plobsing, unping
06:21 cotto a later commit answered my question
06:25 davidfetter left #parrot
06:32 rfw joined #parrot
06:43 cotto it looks like Rakudo's broken atm.  What happened to concat_s_s?
06:44 Kapace_ hmm, how do I test the net api_pmc_serialize(), check a frozen string against a hardcoded pbc?
06:46 cotto I don't think you should care about the frozen representation.  If it can be frozen and thawed, that's a fairly good indicator that it's working.
06:46 dalek tracwiki: v26 | cotto++ | ParrotDeprecations
06:46 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Parro​tDeprecations?version=26&amp;action=diff
06:46 Kapace_ but there is no api_pmc_thaw function :|
06:47 cotto We should probably have one.  You've found a hole.
06:47 cotto you can msg whiteknight about it or make a note in the gci task
06:48 Kapace_ maybe the task should have been to make api_pmc_serialize and api_pmc_unserialize
06:54 cotto msg plobsing #1604 (no implicit :main subs) is properly documented.  You're fine to merge as soon as the HLLs and libraries are ready.
06:54 aloha OK. I'll deliver the message.
06:57 theory left #parrot
07:02 dalek tracwiki: v10 | cotto++ | ParrotDeprecationsFor3.0
07:02 dalek tracwiki: http://trac.parrot.org/parrot/wiki/ParrotDe​precationsFor3.0?version=10&amp;action=diff
07:02 dalek tracwiki: v27 | cotto++ | ParrotDeprecations
07:02 dalek tracwiki: fix anchor for "no implicit :main subs"
07:03 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Parro​tDeprecations?version=27&amp;action=diff
07:07 Khisanth joined #parrot
07:17 Khisanth left #parrot
08:36 dalek parrot/html_cleanup: 6cbc51a | mikehh++ | tools/docs/make_html_docs.pl:
08:36 dalek parrot/html_cleanup: [html_cleanup] add use strict (implied with 5.12), printf -> print
08:36 dalek parrot/html_cleanup: review: https://github.com/parrot/parrot/commit/6cbc51a5ec
09:30 kennym joined #parrot
09:43 rfw left #parrot
10:26 bacek left #parrot
10:44 Khisanth joined #parrot
10:57 Khisanth left #parrot
10:57 contingencyplan joined #parrot
11:23 Khisanth joined #parrot
11:36 khisanth_ joined #parrot
11:36 Khisanth left #parrot
11:37 khisanth_ is now known as Khisanth
11:37 whiteknight joined #parrot
11:41 whiteknight good morning, #parrot
12:07 contingencyplan left #parrot
12:09 bluescreen left #parrot
12:11 danielmarth joined #parrot
12:15 fbrito joined #parrot
12:19 bluescreen joined #parrot
12:31 Coke joined #parrot
13:03 fbrito Hm, I am having problems finding out how to test "get_pmc_keyed_str" on  MultiSub PMC :s
13:05 whiteknight let me look
13:05 Khisanth left #parrot
13:05 whiteknight fbrito: okay it finds a particular sub by signature
13:06 whiteknight So create two subs that take different arguments in the same :multi, then you can look up by signature
13:07 whiteknight fbrito: does that make sense?
13:10 fbrito yes, it does. on t/pmc/multisub.t there are already some subs available. but from where should I look up by signature?
13:10 whiteknight fbrito: so if you have a sub with .param num and .param int, it has a call signature NI
13:11 whiteknight fbrito: you need to get the multisub instance
13:11 whiteknight so if you have multiple subs with the same name, you can look up in the current namespace by that name to get the multisub
13:12 whiteknight and once you have the multisub, you can lookup individual subs in it by signature
13:13 whiteknight brb
13:13 fbrito hm, interesting :)
13:13 fbrito thank you
13:21 Coke left #parrot
13:26 bluescreen left #parrot
13:27 Coke joined #parrot
13:35 fbrito hm, I got the multisub with "get_global", but now I don't know how to lookup individual subs in it by signature.
13:35 rurban_ joined #parrot
13:36 Khisanth joined #parrot
13:37 rurban left #parrot
13:38 rurban_ is now known as rurban
13:42 khisanth_ joined #parrot
13:45 Khisanth left #parrot
13:51 fbrito ok, no success writing tests for multisub :(
13:52 fbrito will try again later :D
13:52 khisanth_ left #parrot
14:01 khisanth_ joined #parrot
14:04 whiteknight left #parrot
14:19 khisanth_ left #parrot
14:23 Coke left #parrot
14:25 Coke joined #parrot
14:43 dukeleto fbrito: wazzup?
14:43 fbrito hello :D
14:44 dukeleto fbrito: how is the multisub task coming along?
14:45 fbrito I had to stop for a while... anyway, I still don't know how to test "get_pmc_keyed_str"
14:45 fbrito whiteknight gave me some help, but I still can't figure out how to lookup individual subs in a multisub by it signature.
14:47 dukeleto fbrito: what code have you tried?
14:47 Coke I don't know if you can lookup subs by signature in a multisub- pretty sure you can iterate over them numerically, though.
14:47 Coke (and then inspect the signature of the sub you got that way)
14:48 dukeleto fbrito: if $P1 is a multisub, and you want to get the sub with a signature of "NI" then it would be $P1["NI"] (in theory, Coke++ could be right)
14:48 JimmyZ joined #parrot
14:48 dukeleto fbrito: what code have you tried? which errors do you get?
14:48 dukeleto Coke: mornin'
14:49 fbrito I am using "get_global $P0, "foo"" to get the multisub. is that ok?
14:50 dukeleto fbrito: seems reasonable
14:50 fbrito t/pmc/multisub.t already provide some multisubs, like ".sub foo :multi(string)" and ".sub foo :multi(int)"
14:50 Coke make sure that that get_global is returning your multisub - ($S0 = typeof $P0; say $S0)
14:51 Coke s/your/a/, that is
14:51 Coke dukeleto: hio
14:51 fbrito yes, it is returning a MultiSub
14:52 Khisanth joined #parrot
14:53 khisanth_ joined #parrot
14:53 fbrito .sub foo :multi(Integer, String). the signature for this would be "IS". right?
14:53 bluescreen joined #parrot
14:56 fbrito get_global $P0, "foo"; $P1 = $P0["IS"] raises "Null PMC access in get_pmc()"
14:59 Khisanth left #parrot
15:01 Coke fbrito: ... that really sounds like $P0 is null, which would mean the get_global didn't return anything.
15:01 fbrito but typeof returns MultiSub
15:01 Coke (unless the NPE comes when trying to use $P1 later...
15:02 jan left #parrot
15:02 Coke It's hard to debug 2 line code fragments.
15:02 Coke what line causes the NPE?
15:04 fbrito http://pastie.org/1408677
15:05 fbrito those "foo" subs were in t/pmc/multisub.t. I only wrote the test_set_pmc_keyed
15:06 fbrito changing line 3 to $P1 = $P0["IS"] will raise the following exception:
15:07 fbrito http://pastie.org/1408681
15:07 khisanth_ left #parrot
15:07 fbrito (ahaha, I should have pasted the entire file. line 79 in exception is line 3 in my first pastie)
15:09 dukeleto fbrito: perhaps you can raise the coverage of Multisub in a different way? What do you have the coverage up to now?
15:10 Coke ah, it IS failing on the $P0["IS"] line. smells like a bug in pmc_get_keyed_str VTABLE in multisub.
15:11 fbrito dukeleto: everything, except "get_pmc_keyed", "get_pmc_keyed_str" and "get_iter"
15:11 Coke can probably golf that down to a very small bug report.
15:13 fbrito ah, I have to run quickcover again. "get_pmc_keyed" is probably already covered
15:13 nopaste "Coke" at 192.168.1.3 pasted "bug in MultiSub's get_pmc_keyed_str vtable (courtesy fbrito++)" (12 lines) at http://nopaste.snit.ch/27503
15:14 Coke fbrito: that snippet should not be generating a NPE IMO.
15:15 Coke You should probably open a trac for that.
15:15 dukeleto fbrito: you probably found a bug!
15:16 dukeleto fbrito: that is the point of these coverage tasks. If no bugs are found, they wouldn't be as useful
15:16 dukeleto fbrito: nice work!
15:17 fbrito :D
15:19 Coke yah, the comments on those are suspicious.
15:19 danielmarth left #parrot
15:20 fbrito ah, and "make quickcover" is not being showed in "make help"
15:21 dukeleto fbrito: quickcover is very new. someone forgot to add it to that. If you want to do it, I will apply it
15:21 Coke easy fix. momentito.
15:21 Coke ... or that works.
15:21 dukeleto or Coke++ will do it
15:21 dukeleto darn!
15:21 Coke I'll do it. ;)
15:21 fbrito ahha
15:21 * dukeleto steps away
15:24 dalek parrot: 1e16125 | Coke++ | config/gen/makefiles/root.in:
15:24 dalek parrot: add a note about "quickcover" to "make help"
15:24 dalek parrot: fbrito++
15:24 dalek parrot: review: https://github.com/parrot/parrot/commit/1e161251a1
15:26 fbrito ok, so I still need to test either "get_pmc_keyed", "get_pmc_keyed_str" or "get_iter"
15:29 mtk joined #parrot
15:30 mtk left #parrot
15:31 mtk joined #parrot
15:31 dukeleto fbrito: try get_iter first
15:32 fbrito yes. I could raise successfully the invalid arg type exception
15:33 fperrad joined #parrot
15:35 fbrito btw, I have noticed that some exceptions ends with new lines ("\n") while some of them don't
15:35 dukeleto fbrito: oy vey. That is probably a bug as well
15:36 dukeleto fbrito: although, you shoudn't create tests that depend on the stringified error of an exception
15:36 dukeleto fbrito: it is better to check that the correction exception type was thrown
15:36 dukeleto fbrito: but some of our tests check the string representation. we need to fix those
15:37 fbrito hm
15:47 fbrito yes :). increased testing coverage from 30% to 62.5%. I will open a pull request after rewriting the exceptions tests
15:48 Coke fbrito++
15:49 Coke dukeleto: regarding the html_cleanup requiring 5.12 - because when I wrote it I was lazy. Much in the same way that checkdepend had a bunch of external deps.
15:49 Coke I figured we'd get it working first, then update it later if we had to. (also, it's only ever used by "make html", so even if THAT required 5.12, I wasn't too worried)
15:50 fbrito going to lunch. brb
15:50 mtk left #parrot
15:51 Coke ... looks like docs.parrot.org is stuck at 2.9.1 ?
15:51 Coke (thought it was newer than that.)
15:52 moritz .oO( didn't you know that we only updated it for supported releases? *SCNR* )
15:54 Coke aloha: msg dukeleto - I think moritz just volunteered to get an account on parrotvm.osuosl.org so he can update docs.parrot.org for releases!
15:54 aloha Coke: OK. I'll deliver the message.
15:54 dukeleto Coke: i already updated it to not use 5.12
15:54 mtk joined #parrot
15:55 dukeleto moritz++
15:56 Coke dukeleto: I'll udpate it for 2.10.0, 2.10.1, and 2.11.0 (sheesh)
15:56 dukeleto Coke: danke!
15:57 mtk left #parrot
15:58 whiteknight joined #parrot
15:58 mtk joined #parrot
15:58 mtk left #parrot
15:58 Coke these people have accounts on docs.parrot.org :
15:58 Coke actown  allison  coke  cotto  jeff  jhorwitz  particle  rspier  russell_h
15:58 whiteknight fbrito: $P1 = $P0[signature]
15:58 mtk joined #parrot
15:59 Coke please make sure that you and whiteknight at least get accounts on that box (just ask OSUOSL for privs)
16:00 dukeleto Coke: how do I get an account?
16:01 Coke (just ask OSUOSL for privs)
16:01 Coke open a ticket with them for an account.
16:04 hercynium joined #parrot
16:04 dukeleto Coke: hokey dokey
16:11 plobsing cotto++ # TT #1704 deprecation work
16:12 dalek parrot: adc6e98 | Coke++ | docs/project/release_manager_guide.pod:
16:12 dalek parrot: update to reflect reality.
16:12 dalek parrot: review: https://github.com/parrot/parrot/commit/adc6e98bce
16:13 Coke docs.parrot.org updated - devel/latest now point to 2.11.0, stable/supported still point to 2.9.1
16:14 Coke 2.10.0, 2.10.1 both exist, but you have to go to them directly to see them. You might need to add a trivial ?foo to avoid server side caching of 2.9.1 as latest until the cache clears.
16:14 theory joined #parrot
16:16 Matt_ joined #parrot
16:17 dukeleto Coke: thanks!
16:21 Coke dukeleto: ayup.
16:22 fbrito dukeleto: I forgot how I should test exceptions on their type instead of on their stringified error :s
16:25 fbrito ah, I found an example. nevermind :)
16:38 dukeleto fbrito: awesome! I can code review for you, if you want
16:38 dukeleto fbrito: which example did you find?
16:40 fbrito I found something on another test file, but it is way too verbosity (haha, don't know if I can use this word in this way)
16:41 fbrito http://pastie.org/1408882
16:41 fbrito both are passing
16:42 fbrito (.exception_is is a macro that I copied from somewhere else)
16:44 fbrito it doesn't look very nice, but I can't find a better way to test exceptions on their type
16:53 JimmyZ left #parrot
16:55 Coke We have a platform build dependency issue.
16:55 Coke (minor, but causes checkdepend.t to fail based on which platform you build on.)
16:59 Coke (darwin's sysmem.c didn't include the parrot header file. But it looks like it should, so this is an easy fix.)
17:02 whiteknight left #parrot
17:05 dalek parrot: 792d048 | Coke++ | config/gen/platform/darwin/sysmem.c:
17:05 dalek parrot: Add missing #include
17:05 dalek parrot: review: https://github.com/parrot/parrot/commit/792d048050
17:05 dalek parrot: 5f7ddd9 | Coke++ | / (3 files):
17:05 dalek parrot: move build dependencies test to t/src
17:05 Coke aloha, msg mikehh I moved checkdepend
17:05 dalek parrot:
17:05 aloha Coke: OK. I'll deliver the message.
17:05 dalek parrot: This is a compromise - really is a coding standards test, but requires
17:05 dalek parrot: a full build, so put it in t/src with the feature tests.
17:05 dalek parrot:
17:05 dalek parrot: mikehh++ for the suggestion
17:05 dalek parrot: review: https://github.com/parrot/parrot/commit/5f7ddd9c95
17:06 dukeleto fbrito: "it is way too verbose" is how you would say it, but I understood you :)
17:07 dukeleto fbrito: yeah, i am going to add a new function to test_more.pir to make testing exception types easy
17:11 whiteknight joined #parrot
17:11 fbrito dukeleto: I have just opened a pull request with my work
17:13 cotto msg bacek Can you add a deprecation notice for concat_s_s?
17:13 aloha OK. I'll deliver the message.
17:15 Matt_ Just submitted a pull request: https://github.com/parrot/parrot/pull/47
17:15 Coke cotto: isn't that covered by an existing ticket?
17:16 Coke t/src/embed.t (Wstat: 0 Tests: 15 Failed: 0) TODO passed:   3
17:16 cotto Coke, it also needs to be listed under ParrotDeprecations
17:16 dukeleto Matt_: link for your task?
17:16 dukeleto fbrito: task link?
17:17 Matt_ http://www.google-melange.com/gci/task/show/goog​le/gci2010/parrot_perl_foundations/t129336715502
17:17 fbrito and mine is http://www.google-melange.com/gci/t​ask/show/google/gci2010/parrot_perl​_foundations/t129329233048#ws4001
17:17 dukeleto Matt_: i just saw it in the pull request :)
17:18 dukeleto Matt_: task accepted!
17:18 dukeleto fbrito: task accepted!
17:18 dukeleto now both of you find new tasks :)
17:19 Matt_ thanks!!
17:19 Matt_ done: http://www.google-melange.com/gci/task/show/goog​le/gci2010/parrot_perl_foundations/t129336697097
17:19 Matt_ :)
17:20 dukeleto Matt_: accepted
17:20 cotto dukeleto, have you reviewed and pulled both their code?
17:20 dukeleto cotto: i reviewed it, but have not merged it
17:20 cotto er, requests
17:21 cotto should I?
17:21 dukeleto cotto: i don't want to block them, since they can only have 1 task at a time
17:21 dukeleto cotto: go for it!
17:21 fbrito Matt_: wow, you are fast :D
17:21 dukeleto cotto: i plan to add a new function to test_more.pir to make it easy to test exception types
17:21 Matt_ fbrito: There are people that have 140 points thats like impossible lol
17:22 cotto rfw's pretty close to that
17:23 dukeleto Matt_: well, students that are in the top 10 all get the same thing, so having the highest score doesn't matter too much
17:23 dukeleto Matt_: but being in the top 10 does :)
17:23 Coke aloha, msg whiteknight t/src/embed.t (Wstat: 0 Tests: 15 Failed: 0) TODO passed:   3
17:23 aloha Coke: OK. I'll deliver the message.
17:24 dukeleto Kapace_: you are close to being in the top 10! Let me know if you need tasks
17:24 whiteknight Coke: I'll look at it
17:24 cotto reviewing multisub changes now
17:25 fbrito we still have almost 2 weeks left
17:26 fbrito GCI is going to end at the same day that I am going to write tests to go to university :)
17:27 dukeleto fbrito: wow! which uni are you applying to?
17:27 fbrito I am applying to computer science on a local university (here in my city, in Brazil)
17:29 fbrito I also did a research on universities on USA, but they are really expensive :S. Usually U$ 55k~/year
17:29 dukeleto fbrito: yes, US universities are very expensive. But you could probably get many grants/scholarships
17:30 dukeleto fbrito: putting "top 10 in gci" should get you into most computer science departments
17:30 Matt_ I wanna get into MIT when I apply next year
17:30 dukeleto fbrito: you should apply for scholarships and grants. You will get them.
17:31 dukeleto Matt_: that sounds awesome! I am sure GCI will help greatly with that. If you need a letter of recommendation, let me know.
17:31 whiteknight Matt_: what do you want to major in?
17:31 dukeleto fbrito: same goes for you
17:31 Matt_ whiteknight: computer science lol
17:31 dukeleto Matt_: don't overlook other kinds of math and engineering that still have lots of computer science in them
17:32 dukeleto Matt_: CS is usually very theoretical
17:32 fbrito I am also really interested in Statistics
17:32 dukeleto Mathematicians consider CS a subfield of math, so the CS people are always competing to look cool in from of the mathematicians.
17:32 dukeleto s/from of/front of/
17:33 cotto there's an xkcd about that
17:33 dukeleto fbrito: i started as a CS major but then I got bored with what they were teaching, so I switched to math
17:34 dukeleto fbrito: you are so advanced in CS, that you will probably not learn much in the first 1 or 2 years of a CS program, unless they are smart enough to let you skip stuff
17:34 davidfetter joined #parrot
17:34 Matt_ dukeleto: thats true. I took AP computer science this year and didn't open the text book once
17:34 cotto If you know what recursion is and how to program, you're generally ahead of the curve.
17:35 dukeleto cotto: how are those code reviews? i saw a few small issues, but nothing big enough that I wouldn't merge
17:35 cotto so far so good.  I just need to minimize xchat so I stop distracting myself
17:37 cotto some code could be clearer by using is_ok, but that's fairly minot
17:39 tadzik 50% of my student-friends didn't pass the programming classes in the 1st semester
17:39 fbrito :o
17:40 dalek parrot: b7f65df | fbrito++ | tools/dev/github_post_receive.pl:
17:40 dalek parrot: Add diff changes email sent from GitHub hook
17:40 dalek parrot: review: https://github.com/parrot/parrot/commit/b7f65dfab5
17:40 dalek parrot: c047623 | fbrito++ | tools/dev/github_post_receive.pl:
17:40 dalek parrot: Add auth token verification to GitHub hook
17:40 dalek parrot: review: https://github.com/parrot/parrot/commit/c047623209
17:40 dalek parrot: 72c3eef | cotto++ | /:
17:40 dalek parrot: Merge branch 'fbrito-gci-hook'
17:40 dalek parrot: review: https://github.com/parrot/parrot/commit/72c3eefb47
17:40 Coke Something like "Computer & Systems Engineering" is an option (it was theoretically half comp sci, half electrical engineering. Practically, it was more like 20/80).
17:40 dukeleto woot! That hook will make many people happy.
17:41 dukeleto CS usually has a very large drop-out rate the first year.
17:41 cotto tadzik, that's typical.  It's hard to understand recursion at first.
17:41 dukeleto Many people think a computer science degree involves learning to use Excel.
17:41 tadzik cotto: recursion was easier for them than pointers and memory allocation
17:41 cotto dukeleto, now we just need to host it somewhere where it can be used.
17:42 Coke left #parrot
17:42 tadzik hrm
17:42 cotto tadzik, those too
17:42 dukeleto cotto: i suggest an OSUOSL server, or feather
17:42 dukeleto cotto: OSUOSL servers are much more reliable, in terms of uptime
17:42 tadzik I'm sitting them doing nothing, and GCI students make me ashamed of the fact. Are there any non-GCI things a newcomer can do?
17:43 dukeleto tadzik: yes!
17:43 dukeleto tadzik: what is your interest? What do you want to learn about?
17:43 tadzik dukeleto: I got quite interested in Lorito, but I can't find myself over there
17:44 dukeleto tadzik: lorito is still in the very early stages. There will be more soon.
17:44 dukeleto tadzik: are you familiar with nqp-rx and PGE?
17:44 dukeleto tadzik: many of our HLL's are still using PGE. We need to change some of them to nqp-rx, like Cardinal.
17:44 dukeleto tadzik: does that sound fun?
17:44 dukeleto tadzik: https://github.com/parrot/cardinal
17:44 dukeleto tadzik: Cardinal is Ruby on Parrot
17:45 dalek parrot: bba4c1c | (Matt Rajca)++ | t/src/embed/strings.t:
17:45 dalek parrot: Increased test coverage for embed/strings.c
17:45 dalek parrot:
17:45 dalek parrot: Signed-off-by: Christoph Otto <christoph_git@mksig.org>
17:45 dalek parrot: review: https://github.com/parrot/parrot/commit/bba4c1ccbc
17:45 dukeleto tadzik: or maybe convert https://github.com/parrot/ecmascript
17:46 davidfetter mmm...ecmascript :)
17:46 Coke joined #parrot
17:46 dukeleto davidfetter: howdy
17:47 davidfetter how goes, dukeleto ?
17:47 cotto Matt_, do you want dalek to credit you by your github username?
17:47 Coke *&#^@$ internet.
17:47 cotto wb Coke
17:47 Matt_ cotto: thats fine
17:49 dukeleto davidfetter: enjoying a foggy portland morning
17:50 * davidfetter also enjoying morning. caffeinating atm
17:51 davidfetter dukeleto, atm, how would i load pir 1st and other pir-based languages later? i.e. is it possible right now, or does it need extra machinery?
17:51 davidfetter PLs*
17:52 dalek parrot: fa08721 | cotto++ | CREDITS:
17:52 dalek parrot: add mattrajca++ to CREDITS
17:52 dalek parrot: review: https://github.com/parrot/parrot/commit/fa087212fe
17:52 dalek parrot: 9ab69a6 | cotto++ | CREDITS:
17:52 dalek parrot: remove trailing space, expand description
17:52 dalek parrot: review: https://github.com/parrot/parrot/commit/9ab69a64dc
17:53 dukeleto davidfetter: PIR is loaded first in PL/Parrot currently
17:53 dukeleto davidfetter: it must be loaded first, because PIR is needed to properly load PL/Perl6
17:53 dukeleto davidfetter: what do you mean by "later" ?
17:58 davidfetter let's imagine i'm packaging the PLs separately
17:59 davidfetter PL/PIR, PL/Rakudo, PL/Cardinal, etc., etc.
17:59 davidfetter i'd like to ship PL/PIR as its own package. similar with languages that depend on it
17:59 davidfetter ...with dependency info, of course
18:00 tadzik dukeleto: sounds like fun indeed :) Pardon my absence, got a suprise kernel picnic
18:05 tadzik dukeleto: I don't know much about Ruby, but I should be able to fix the parser
18:05 davidfetter dukeleto, anyhow, that's the end goal. the question is, what extra machinery, if any, would such a system need to have?
18:16 dukeleto tadzik: sounds awesome! let me know if you need guidance
18:17 dukeleto davidfetter: we would need to split stuff out of plparrot.c and things would need to link against plparrot.o
18:17 dukeleto davidfetter: i've planned that for a long time, but haven't gotten around to it
18:17 dukeleto davidfetter: do you want to start a document for what things need to be refactored in PL/Parrot?
18:17 davidfetter sure :)
18:17 dukeleto davidfetter: maybe a github issue that is a milestone?
18:17 dukeleto davidfetter: or on the wiki
18:18 dukeleto davidfetter: a place for you to ask questions and i can answer them, and build up a plan of attack
18:18 davidfetter k
18:18 davidfetter um, which wiki?
18:21 dukeleto davidfetter: plparrot wiki on github
18:21 dukeleto davidfetter: create a new wiki page, something like "The Great PL/Parrot Refactoring" or something else grandiose
18:21 davidfetter heh
18:21 davidfetter ok :)
18:22 davidfetter i'm wondering whether pg also needs new machinery. it's not clear how a language would "depend on" another atm
18:22 davidfetter a PL*
18:23 dukeleto davidfetter: well, for now, the PL could attempt to load PL/PIR from PL/PGSQL and if there is an error, throw an exception
18:24 davidfetter checking if it were already loaded first, i presume
18:24 davidfetter hrm. where do i put code in so CREATE LANGUAGE executes it?
18:25 dukeleto davidfetter: plparrot_secure.pir if it is PIR
18:25 dukeleto davidfetter: if you need C, you need to fiddle in plparrot.c
18:27 davidfetter dukeleto, hrm. here's the effect i want. unsure how i'd do it. when something calls CREATE LANGUAGE PL/Perl6U, i'd like it to check for the existence of PL/PIRU and bail out if it doesn't find it.
18:27 davidfetter i think there should also be an entry in pg_depend so some well-meaning soul can't drop PL/PIRU without first dropping everything that depends on it
18:28 davidfetter ...which basically means all the checks i have in mind look like SQL to me
18:29 dukeleto davidfetter: yep
18:29 dukeleto davidfetter: put that in the wiki (about what happens when someone calls create language)
18:29 davidfetter ok :)
18:29 dukeleto davidfetter: currently, PL/Perl6 is loaded from C
18:30 dukeleto davidfetter: just after PL/PIR
18:30 davidfetter um, there's nothing on the github wiki
18:35 dukeleto davidfetter: yeah, i know. let's fix that :)
18:35 davidfetter fixing...
18:37 davidfetter https://github.com/leto/plparrot/wiki/T​he-Great-PL-Parrot-Refactoring-Project
18:37 dukeleto davidfetter: very nice!
18:38 * davidfetter thinks DROP LANGUAGE...CASCADE can have some pretty serious foot-gunnery in it
18:38 davidfetter then again, so can every DROP...CASCADE operation :P
18:46 Kapace_ dukeleto: very yes, as many parrot tasks as possible, please!
18:50 Myhrlin clear
18:50 Myhrlin woops sorry
18:51 dukeleto Kapace_: do you have one to work on now?
18:51 dukeleto Kapace_: i will add more code coverage tasks
18:52 tadzik .sub '_not' :vtable('logical_not') :method -- why is that wrong, and how should it be?
18:52 Kapace_ dukeleto: yes I'm still working on the serialize function
18:58 dukeleto tadzik: not sure
18:59 tadzik dukeleto: that's one of the why's of briken cardinal: error:imcc:'logical_not' is not a vtable, but was used with :vtable.
18:59 dukeleto tadzik: ah. the name probably changed or something stupid
18:59 Kapace_ how can i get the length of a Parrot_String?
19:00 dukeleto tadzik: src/vtable.tbl
19:00 dukeleto Kapace_: from which language? C or PIR?
19:01 Kapace_ dukeleto: C
19:02 dukeleto tadzik: there is a 'neg' vtable, but i can't tell if it is negate or negative
19:02 Kapace_ Parrot_str_length maybe
19:03 dukeleto Kapace_: perldoc src/string/api.c
19:06 simcop2387_ joined #parrot
19:06 tadzik dukeleto: found this neg, I have a new problem now. Method 'stdhandle' not found for invocant of class 'ParrotInterpreter'
19:07 dukeleto tadzik: yep, that was changed to get_stdhandle, i think
19:07 dukeleto tadzik: there is a deprecation wiki page for it
19:07 simcop2387 left #parrot
19:07 simcop2387_ is now known as simcop2387
19:11 [hercynium] joined #parrot
19:12 [hercynium] left #parrot
19:13 [hercynium] joined #parrot
19:13 Coke left #parrot
19:14 tadzik http://wklej.org/id/445598/ -- how do I diagnose this?
19:15 Kapace_ very carefully :P
19:15 tadzik :)
19:15 tadzik if only it'd give me a line or something
19:15 * dukeleto looks
19:16 dukeleto tadzik: try parrot -v
19:16 hercynium left #parrot
19:16 [hercynium] is now known as hercynium
19:16 tadzik now that's verbose
19:16 tadzik http://wklej.org/id/445602/
19:16 dukeleto tadzik: somewhere, an exception handler doesn't exists where it should
19:17 dukeleto tadzik: might need to use gdb or parrot -D
19:17 dukeleto tadzik: -D can take many different flags to give debug info
19:17 dukeleto tadzik: but adding some 'say' lines to see which code is triggering that could work too
19:17 tadzik I tried to compile just Hello world, but the debug info didn't get any easier
19:18 dukeleto tadzik: yeah, 'parrot -v' isn't as useful as -D with the right flags
19:19 Kapace_ http://www.google-melange.com/gci/task/show/goog​le/gci2010/parrot_perl_foundations/t129341406031
19:21 tadzik trace looks informative, but I don't know what to look for: http://wklej.org/id/445609/
19:24 tadzik that's an alike-breaking helloworld: http://wklej.org/id/445613/
19:25 dukeleto tadzik: the die is dying within a die
19:25 dukeleto Kapace_: can you submit a pull request?
19:25 tadzik that's what it looked like
19:26 Kapace_ dukeleto: ok
19:26 dukeleto Kapace_: thanks! it makes it easier to keep track of it
19:27 Kapace_ dukeleto: https://github.com/parrot/parrot/pull/48
19:27 Psyche^ joined #parrot
19:28 Patterner left #parrot
19:28 Psyche^ is now known as Patterner
19:29 dukeleto Kapace_: sweet!
19:30 Coke joined #parrot
19:33 dukeleto Kapace_: can you change your comments from // to /* ... */ ?
19:33 dukeleto Kapace_: some C compiler don't understand //
19:33 dukeleto Kapace_: and the test will fail
19:34 Kapace_ ok
19:34 Kapace_ actually, I should just remove those commented lines
19:34 dukeleto Kapace_: sounds good
19:36 Coke removal of concat_s_s requires a patch to rakudo.
19:38 Coke moritz: ping
19:40 dukeleto Kapace_: task accepted
19:41 fbrito what does "sweep 1" means?
19:41 dukeleto fbrito: makes the garbage collector do stuff
19:41 dukeleto fbrito: i.e. free memory and other nefarious things
19:42 Kapace_ dukeleto: thanks :)
19:42 sorear it re-enables the sweeper, which is or used to be controlled independantly from the marer
19:42 fbrito I am writing a test to cover VTABLE destroy() and I saw in other tests that they usually do "null $P0; sweep 1"
19:42 fbrito dukeleto: ahh, makes sense. thank you :)
19:42 Coke dukeleto: it /might/ make the GC do stuff, yes?
19:43 dukeleto Coke: yes. it tell the GC to do something, and depending on whether it feels like it, the GC will do it
19:43 hercynium left #parrot
19:44 Coke so slow to build rakudo. :|
20:02 rfw joined #parrot
20:09 tadzik could someone patch cardinal with this: http://wklej.org/id/445679/ and help me inspect this die issue?
20:10 dukeleto tadzik: you probably have a commit bit to cardinal. do you have a bit to parrot.git on github?
20:11 tadzik dukeleto: I don't think so. But I'm w/o a browser atm anyway.
20:12 dukeleto tadzik: gotcha. i can patch it
20:12 tadzik I can set up a git server on my machine though
20:13 tadzik dukeleto: putting say as the first instruction in a main sub doesn't make it say it anyway, so loading the hll must be the one failing
20:14 dukeleto tadzik: there is stuff that has :load or :init that is happening before main
20:15 tadzik a new thing learned
20:16 tadzik load_bytecode "cardinal.pbc" is the thing that fails
20:17 dukeleto tadzik: ah, that is progress
20:17 dukeleto tadzik: look at the pir that generates that pbc. that is where the error is
20:17 tadzik ran with --target=PAST even 2+2 fails
20:20 dukeleto tadzik: what generates cardinal.pbc?
20:21 dukeleto looks like we don't have the github post commit hooks in cardinal to notify us of commits
20:21 * dukeleto attempts to fix
20:22 tadzik dukeleto: cardinal.pir I believe. I've added say at the beginning of every sub in there, none gets executed
20:22 dukeleto tadzik: what happens if you run "parrot cardinal.pir" ?
20:22 dukeleto tadzik: i committed your patch to cardinal
20:23 tadzik dukeleto: nihil novi: ***FATAL ERROR: Exception thrown while dying from previous unhandled Exception
20:23 dalek cardinal: cfaad5d | dukeleto++ | README:
20:23 dalek cardinal: Add some info to the README and test a post-commit hook
20:23 dalek cardinal: review: https://github.com/parrot/​cardinal/commit/cfaad5dfe7
20:24 dukeleto tadzik: where-ever there is a die in cardinal.pir, push an exception handler just before it. see what happens
20:24 tadzik dukeleto: there is none
20:25 dukeleto tadzik: what about a 'throw' ?
20:25 tadzik dukeleto: now that I have a browser I see that I don't have a commit bit to cardinal
20:25 tadzik dukeleto: neither
20:25 dukeleto tadzik: hmm.
20:25 tadzik but there are many .includes
20:26 dukeleto tadzik: see where that error is thrown from Parrot internals, and try to see what is happening
20:26 tadzik I'll look there
20:26 rfw hm what's the point of the continuation METHOD in the Continuation PMC
20:26 dukeleto tadzik: you might want to read what has been deprecated in the last year, and see if anything stands out
20:26 dukeleto rfw: to continue?
20:26 rfw it returns the continuation PMC of this Continuation... but isn't this continuation PMC already a continuation PMC
20:27 dukeleto rfw: what does "git blame" say about those lines?
20:27 dukeleto rfw: they are probably very old
20:27 sjn left #parrot
20:27 dukeleto rfw: back when parrot developers had to fight dinosaurs to eat
20:27 rfw heh
20:28 rfw leopold toetsch and vasily chekalkin
20:28 dukeleto release the hounds!
20:28 sorear Leo and bacek
20:28 dukeleto bacek_at_work: why does the Continuation PMC have a continuation method? For any good reason?
20:28 dukeleto rfw: leo is no longer involved in Parrot, but we can still blame bacek
20:28 rfw lol
20:32 tadzik ha, it's in src/builtins/globals.pir
20:32 Coke one potential way to update old projects like this is to get it working with the version of parrot it was last known to work with, then update parrot to the next supported version and see if it works there...
20:33 whiteknight left #parrot
20:33 Coke how do I do the equivalent of "prove -v path/to/foo.rakudo"
20:33 Coke whoops.
20:34 tadzik found it
20:34 tadzik $P6 = interp.'stdout_handle'(.PIO_STDOUT_FILENO) is the line that fails
20:34 tadzik is there anything wrong with it?
20:35 * TimToady refrains from making a joke about P6 not recognizing 'stdout'
20:36 * dukeleto laughs anyway
20:36 * tadzik read that as "stout"
20:36 dukeleto tadzik: perhaps the constant name has changed?
20:36 tadzik hmm, may be
20:36 dukeleto tadzik: is there anything on the deprecation wiki page?
20:37 tadzik #define PIO_STDOUT_FILENO 1
20:37 tadzik in parrot/include/parrot/io.h
20:37 tadzik so looks ok
20:39 dukeleto tadzik: perhaps the method name changed? is it 'set_stdout_handle' by any chance ?
20:40 tadzik nope, method not found then
20:40 tadzik so the problem is not in finding methods it seems
20:40 sorear you're looking for a getstdhandle or something
20:40 rfw wha, no pmc files were covered when making cover
20:40 rfw goddammit what
20:41 dukeleto rfw: make fullcover ?
20:41 rfw dukeleto: shouldn't need to do that
20:41 dukeleto rfw: you got bugs!
20:41 rfw i see src/pmc in QUICKCOVER_DIRS
20:41 sorear tadzik: try changing it to $P6 = interp.'stdout_handle'()
20:41 tadzik METHOD stdout_handle(PMC *newhandle :optional) is in parrot/src/pmc/parrotinterpreter.pmc
20:42 * dukeleto imagines a "You've Got Bugs" announcement in the AOL voice
20:42 tadzik sorear: bingo!
20:42 tadzik now I wonder why is that
20:48 rfw urk
20:48 rfw no gcno files are being generated
20:48 rfw for /src/pmc
20:50 Coke anything in parrot change in the last week or so that would change the handling of an exit exception?
20:50 contingencyplan joined #parrot
20:53 tadzik no return in nqp?
20:53 tadzik or rather: there used to be one, but not anymore?
20:53 Coke I think there is, yes.
20:54 tadzik Could not find sub return
20:54 tadzik current instr.: 'cardinal;cardinal;Grammar;Actions;is_a_sub'Could not find sub return
20:54 Coke partcl's been using it for some time.
20:55 tadzik but now as I look at nqp-rx tests there is no return used in sub.t
20:55 Coke why does a simple "exit 5" in parrot generate output?
20:55 tadzik ah, there is return.t
20:56 moritz Coke: pong
20:56 Coke moritz: ETOOLONGAGO.
20:56 rfw could someone run make cover on master HEAD for me and see if anything is generated for src/pmc
20:56 tadzik might that be cardinal using PGE rather than nqp-rx?
20:57 Tene yes
20:58 tadzik even though it's compiled using parrot-nqp anyway?
20:58 tadzik oh, no, it works now. return 1 > return(1)
20:59 tadzik so cardinal works and can run its tests
20:59 tadzik which fail, but the first step is taken
20:59 dukeleto tadzik++
21:00 tadzik now there is Null PMC access in get_bool() :)
21:00 rfw 86.60% coverage in continuation pmc now
21:00 rfw yay
21:00 rfw that continuation method is still really weird
21:04 tadzik now that's funny, ;
21:04 tadzik ./installable_cardinal < sanity-small.t works, without the < it fails horribly
21:04 tadzik maybe it's time to make it use nqp
21:05 tadzik rather than PGE
21:05 Tene tadzik: very long past time, actually.
21:05 Coke (parrot emitting warnings on exit) behavior changed since 2.9.1, I'll try to bisect.
21:05 Tene tadzik: I started on it once, at least a year ago, probably more.
21:05 tadzik mhm
21:06 rfw https://github.com/parrot/parrot/pull/49 submitted a pull request
21:07 dukeleto rfw: task link?
21:07 rfw http://www.google-melange.com/gci/task/show/goog​le/gci2010/parrot_perl_foundations/t129329259889
21:08 dukeleto rfw: accepted
21:08 rfw thanks
21:10 dukeleto rfw: keep going!
21:10 moritz how long is GCI going?
21:10 rfw of course :D
21:10 rfw moritz: until jan 10
21:10 moritz cool
21:10 moritz rfw++
21:10 rfw 2 points away from jumpyshoes
21:11 sorear who wants to keep going after jan10?
21:12 dukeleto sorear: perhaps Parrot should run our own contest. good idea.
21:12 rfw do you get a parrot for every task
21:14 tadzik dukeleto: what would be the workflow for moving cardinal to nqp-rx? Slowly transforming the code would do, or the best way is to create a new language and slowly copy chunks of code inspecting them on the fly?
21:15 jan joined #parrot
21:15 Tene tadzik: IMO, you want to first get all the tests passing with the current grammar.
21:15 dukeleto tadzik: not sure. it is a good question.
21:16 dukeleto tadzik: but I would listen to Tene++
21:16 Tene Then you want to try parsing with nqp-rx instead, and then just work on fixing errors until it works again.
21:17 tadzik well, I feel quite confused in this situation. A code ran in the repl works. Exactly the same code executed from the file fails horribly
21:17 rfw "Bring test coverage for src/misc.c up to 100%" -> would i just need to make a t/src/misc.t that tests Parrot_vsnprintf with size_t of 0 and Parrot_secret_snprintf?
21:18 Tene tadzik: then it's not dealing with opening and reading files correctly, or something like that.  That should be an independent error that's pretty straightforward to track down.
21:18 Tene Those two code paths are mostly the same.
21:18 rfw or do these actually get called somewhere
21:18 tadzik http://wklej.org/id/445749/
21:20 tadzik ha
21:20 tadzik that might be the removal of this constant
21:21 tadzik and now it can work only on stdin
21:21 Tene what constant?
21:21 tadzik Tene: PIO_STDOUT_FILENO
21:21 Coke I wouldn't necessarily recommend getting the first version working again first.
21:21 tadzik 2141      @sorear | tadzik: try changing it to $P6 = interp.'stdout_handle'()
21:21 Coke It wouldn't have helped at all with old partcl, but the change between the 2 versions was pretty drastic.
21:21 tadzik it was try changing it to $P6 = interp.'stdout_handle'(.PIO_STDOUT_FILENO)
21:22 tadzik s/try changing it to//
21:22 sorear tadzik: that line of code is bogus, it redirects stdout to an Integer PMC
21:22 bacek joined #parrot
21:22 tadzik mhm
21:23 Tene Coke: cardinal is rather more standard, and replacing the parser should be a pretty isolated operation, not involving much non-parser change.
21:32 sorear bacek: hi
21:35 rurban_ joined #parrot
21:35 bluescreen left #parrot
21:37 rurban left #parrot
21:37 rurban_ is now known as rurban
21:39 Coke jeez, got 5 "git bisect skip"s in a row.
21:39 Coke (and counting...)
21:42 tadzik cardinal gets a NULL PMC access while calling $P1 = $P0.'command_line'(args_str), $P0 being a `compreg 'cardinal'`
21:44 tadzik what can go wrong there?
21:52 rfw what the hell
21:54 Coke is $P0 a null PMC?
21:55 tadzik how can I tell?
21:56 fperrad left #parrot
22:00 Coke run it through parrot -t1, or insert code to check. "if_null $P0, label_to_indicate_error"
22:01 whiteknight joined #parrot
22:02 rfw hey whiteknight
22:03 whiteknight hello rfw
22:03 rfw could you approve http://www.google-melange.com/gci/task/show/goog​le/gci2010/parrot_perl_foundations/t129341582405
22:04 rfw also i can't seem to get coverage working
22:04 tadzik Coke: not null
22:04 rfw the coverage report on the parrot thing says misc.c has 87% coverage
22:04 Matt_ rfw: Do you mean generating coverage reports?
22:04 rfw but locally it reports i have 29.6%
22:04 Matt_ I had issues with that yesteday
22:05 rfw Matt_: no, i just have weird statistics
22:05 rfw Matt_: well, also that it doesn't like to generate src/pmc coverage reports
22:05 whiteknight rfw: let me look
22:06 whiteknight rfw: accepted
22:07 rfw thanks
22:07 Coke tadzik: in that case, I'd check the backtrace to see where the NPE is coming from.
22:07 rfw whiteknight: i added a t/src/misc.t test but cover seems to be ignoring it completely
22:07 Coke if it doesn't tell you, then I'd run it through parrot -t4 to narrow it down, then add a "trace 1" to that sub to see where it's going south.
22:07 rfw ... and there some more
22:07 rfw then*
22:08 whiteknight rfw: are there other files in that folder that are included by the test suite?
22:08 rfw um i don't think so
22:10 dalek parrot: e132190 | mikehh++ | tools/dev/github_post_receive.pl:
22:10 dalek parrot: fix perlcritic failure - Found platform-specific perl shebang line
22:10 dalek parrot: review: https://github.com/parrot/parrot/commit/e1321901d6
22:11 Matt_ whiteknight: I'm about to starting adding tests for embed/api.c and I need to test functions like Parrot_api_set_compiler. Should I ultimately run a bytecode file after setting all of the different options during the test?
22:11 rfw whiteknight: https://github.com/rofflwaffls/​parrot/blob/master/t/src/misc.t
22:12 whiteknight Matt_: No, I don't think you have to. A "compiler" is just a PMC. You can make it any PMC, even something that isn't a compiler
22:12 whiteknight Matt_: So in one test, you can create something like a STring PMC with a unique message, call _set_compiler with it, then use _get_compiler with it to verify you get the same thing back
22:12 Matt_ whiteknight: Thanks! I also need to test functions like Parrot_api_add_dynext_search_path. same answer?
22:13 whiteknight Matt_: That one is hard, because we have a function to add a search path, but not a function to examine the list of search paths
22:13 Matt_ whiteknight: Yeah. I noticed many of the settings have 'setter' functions but no corresponding 'getter's
22:14 rfw whiteknight: could you try running cover with that misc.t test?
22:15 rfw i'm not sure what's wrong here
22:21 fbrito rfw: hello :D
22:21 rfw hi fbrito
22:22 rfw actually fbrito
22:22 rfw pm
22:25 tadzik if $lex && ~lookup_class($lex) eq 'Sub' { return 1; } – that's generating this NULL PMC access
22:26 tadzik may it be stringifying? lookup_class() result?
22:29 tadzik it still looks insane to me that the cause for the compiler failing only when reading from file may live somewhere in the actions file
22:51 whiteknight left #parrot
22:53 Coke so far have had to bisect skip 14 commits trying to bisect. :P
22:57 Tene left #parrot
23:03 tadzik dukeleto: any ideas?
23:07 mikehh Coke: checkdepent does not check frontend/parrot/main.c amongst others
23:08 Yuki`N joined #parrot
23:10 mikehh which btw does not build with g++
23:21 rfw rep g
23:21 rfw !rep g
23:21 rfw bah how does that work again
23:22 Coke mikehh: it only checks src/ and compilers/ - feel free to fix that.
23:23 rfw whwhere did you go
23:23 Coke actually, I can.
23:23 rfw oh, that's where he went
23:23 Coke grippingly, I am in the middle of a bisect.
23:23 Coke i'll get it tonight if no one else does.
23:25 * Coke ponders pushing a more stringent "do not break master" policy. :P
23:28 Coke (up to /20/ skips...)
23:29 whiteknight joined #parrot
23:30 rfw hey whiteknight
23:30 whiteknight hello
23:30 whiteknight sorry I'm moving slow. sick toddler here
23:30 rfw ah
23:31 rfw could you try making cover after adding the test https://github.com/rofflwaffls/​parrot/blob/master/t/src/misc.t (when you can)?
23:31 rfw mine is being weird
23:35 whiteknight make realclean && reconfigure?
23:35 rfw i did
23:35 rfw i'm only getting ~30% coverage
23:35 whiteknight ok
23:35 rfw and none of it is part of the tests i added
23:36 cognominal left #parrot
23:39 gg411 joined #parrot
23:39 gg411 left #parrot
23:40 mikehh whiteknight: git status reports untracked files - 3 files -> src/embed/*.o and 6 -> t/src/embed/pmc_?.c
23:41 dalek parrot/nwellnhof/make_cover: b5c1717 | nwellnhof++ | config/ (3 files):
23:41 dalek parrot/nwellnhof/make_cover: Fixes to the make cover targets
23:41 dalek parrot/nwellnhof/make_cover:
23:41 dalek parrot/nwellnhof/make_cover: - Run gcov from build dir to make it find and include the source code
23:41 dalek parrot/nwellnhof/make_cover: - Make HTML report generated with Devel::Cover optional
23:41 dalek parrot/nwellnhof/make_cover: - Work around Debian bug #535755
23:41 dalek parrot/nwellnhof/make_cover: - Pass -no-gcov to cover, we run gcov and gcov2perl ourselves
23:41 dalek parrot/nwellnhof/make_cover: - Set default database for quickcover to cover_db
23:41 dalek parrot/nwellnhof/make_cover: - Make quickcover run 'make test_core' to improve coverage
23:41 dalek parrot/nwellnhof/make_cover: - Use the same source directories for quickcover
23:41 dalek parrot/nwellnhof/make_cover: review: https://github.com/parrot/parrot/commit/b5c171779f
23:43 Tene joined #parrot
23:44 gg411 joined #parrot
23:44 rfw whiteknight: any luck? D:
23:46 whiteknight rfw: not done yet
23:46 rfw ah okay
23:47 mikehh bunch of examples_tests fail with error:imcc:The opcode 'concat_s_sc' (concat<2>) was not found. Check the type and number of the arguments
23:47 mikehh what is the replacement?
23:48 Matt_ whiteknight: How would you recommend testing functions like Parrot_api_set_stdhandles(Parrot_PMC interp_pmc, Parrot_Int in, Parrot_Int out, Parrot_Int err)   they don't have corresponding getters to make sure the internal state was actually set
23:48 mikehh and error:imcc:The opcode 'concat_s_s' (concat<2>) was not found. Check the type and number of the arguments
23:55 cotto left #parrot
23:57 whiteknight Matt_: That's a good question.
23:57 whiteknight Matt_: is that function used anywhere?
23:59 Matt_ whiteknight: Nope, just grep'ed
23:59 whiteknight Matt_: Looking at the function signature for it, I suspect that function is ill-conceived. Comment it out for now

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced