Parrot 2.11.0 Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Onward and upward with Google Code-In | Please test all nwellnhof/* branches | Merge html_cleanup
Set by moderator on 24 December 2010.
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
tapir2.ro.vutbr.cz/cover/cover-resu...ngs-c.html
Coke green numbers - # of times that line of code was run. 00:03
(pretty sure) 00:04
Matt_ Hmm. ok. If you look at the test here: github.com/parrot/parrot/blob/mast.../strings.t There is a call to Parrot_api_string_export_wchar yet the file coverage shows '0' in red. any ideas? 00:05
00:33 whiteknight joined
dukeleto Matt_: is that test being run? 00:41
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:42
Kapace_ can a mentor accept? www.google-melange.com/gci/task/sho...9329047035 00:43
whiteknight looking... 00:48
Kapace_: Hold on, I need to merge something else before I can accept that task
Kapace_ ok 00:49
dalek rrot/gci_fix_makefile: d5fe4fb | Yuki`N++ | config/gen/makefiles/root.in:
Diagnose undercovered embedding library via Makefile modifications.
00:50
rrot: d5fe4fb | Yuki`N++ | config/gen/makefiles/root.in:
Diagnose undercovered embedding library via Makefile modifications.
rrot: 035b964 | Whiteknight++ | config/gen/makefiles/root.in:
Merge remote branch 'origin/gci_fix_makefile'
Matt_ whiteknight: ^^ that change may fix why these coverage results aren 00:51
't accurate: tapir2.ro.vutbr.cz/cover/cover-resu...ngs-c.html
it looks like Parrot_api_string_import_wchar has a coverage of 0 yet I wrote a test for it a while back
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
Matt_: yeah, this will probably bump that
Matt_ whiteknight: Keep me posted on the new numbers. I sent a claim request for: www.google-melange.com/gci/task/sho...6715502#c1 00:52
Yuki`N whiteknight, can you accept socghop.appspot.com/gci/task/show/g...9336706640
whiteknight Matt_: accepted. Change it to NeedsReview and I'll close it for you 00:53
Yuki`N: let me look
Yuki`N whiteknight, that task for strings.c should be mine. :(
I technically increased the coverage. :P
whiteknight Yuki`N: I gave one of them to you, didn't I?
Matt_ whiteknight: I did no work on it yet. was just researching
Yuki`N Umm, only pmc.c
Whatever. :P
Kapace_ should have jumped on it 00:54
Yuki`N Did you see my question about exception handlers?
trying to get pmc.c up to 100% but there are two concepts which I don't understand fully.
whiteknight Yuki`N: accepted. Thanks
Matt_: oh, sorry. I got you mixed up with another one
Matt_ whiteknight: Let me know when the new coverage results are up (or how I could generate them) 00:55
so I can work on the coverage for strings.c
whiteknight Kapace_: Accepted. Good luck
Kapace_ whiteknight: done thanks :P
whiteknight Matt_: you can run "make quickcover" from the commandline, if you have the prereqs
Yuki`N whiteknight, from before, <Yuki`N> whiteknight, how do exception handlers in C work? 01:00
i.e. Parrot_api_add_exception_handler
whiteknight Yuki`N: dark magic and poison
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
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
Yuki`N Oh ok.
whiteknight testing it is going to be way too hard
Yuki`N Yeah. :/
How do I serialize a PMC to be deserialized?
Parrot_api_pmc_deserialize is the relevant function.
whiteknight Yuki`N: isn't there a Parrot_api_pmc_serialize? 01:06
Yuki`N Nope.
I don't think so.
It might be in another file...
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
Yuki`N: You can load in a file of an existing serialized PMC 01:08
Yuki`N Are there any serialized as a string?
Or is that what happens in deserialized_bytes anyway?
whiteknight after build, there should be a config.fpmc 01:09
or install_config.fpmc
look for a file "*.fpmc"
that's a serialized ("frozen") PMC
Yuki`N Oh ok.
01:09 Khisanth left
Yuki`N install_config.fpmc exists. 01:09
whiteknight runtime/parrot/include/config.fpmc
Yuki`N Oh 01:10
also t/tools/install/testlib/install_config.fpmc
whiteknight That file gets written out to a C file in src/config.c
Yuki`N: right, so there are options
that config PMC should be a hash, and should have a few standard keys
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
yeah, it is binary. That's what a frozen PMC is
Yuki`N Oh, then why is there a deserialize and a deserialize_bytes?
Matt_ whiteknight: I installed Devel::Cover using the CPAN shell but its not finding it "Please install Devel::Cover" 01:16
Did perl -MCPAN -e 'shell' followed by 'install Devel::Cover' 01:17
01:17 kennym left
whiteknight Matt_: you may need to reconfigure 01:19
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
dukeleto ~~ 01:26
Yuki`N dukeleto, can you add me another pmc.c task, similar to socghop.appspot.com/gci/task/show/g...336706640? 01:30
I got the coverage up to 95%
01:32 davidfetter joined
Kapace_ frozen PMCs remind me of pickled python objects 01:33
whiteknight I'm not familiar with pickled python objects 01:34
Kapace_ whiteknight: they're just like frozen PMCs :P 01:35
whiteknight oh, now I know what they are?
dalek rrot: dbc7745 | dukeleto++ | t/pmc/key.t:
[t] Increase code coverage of Key PMC, a GCI task by David Czech
01:36
Kapace_ no kharma :(
01:36 plobsing left
dukeleto whiteknight: pickle is a synonym for freeze in some other circles (like python) 01:37
Kapace_: are you David Czech?
01:37 plobsing joined
Kapace_ dukeleto: yes. 01:37
dukeleto Kapace_: i didn't know! 01:38
Kapace_: are you in CREDITS yet?
karma Kapace_
aloha Kapace_ has karma of 0.
dukeleto karma Kapace
aloha Kapace has karma of 3.
dukeleto Kapace++
Kapace_ yes i think so
dukeleto Kapace_: no, you are not in there 01:39
Kapace_: create a patch that adds yourself, and I will apply it
Yuki`N: awesome!
melange is crapping out 01:41
Kapace_ hmm, I remember seeing cotto add me somewhere...
Yuki`N Stupid melange. :P 01:44
whiteknight aloha coverage?
aloha whiteknight: coverage is cv.perl6.cz or tapir2.ro.vutbr.cz/cover/cover-results/
Kapace_ dukeleto: github.com/parrot/parrot/commit/042dcefde7 01:45
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
In compatibility, at keast.
*loeast
Paragon was unwilling to move my ext4 partitions.
dukeleto Kapace_: which branch is that in? doesn't seem to be in my CREDITS on master 01:49
Kapace_ yeah, can't see it here either, wierd.. 01:50
"cotto pushed to lorito "
I guess its in the lorito branch?
dukeleto Kapace_: he accidently put it on the wrong branch. I will fix it 01:52
dalek rrot: 4e7f3b3 | cotto++ | CREDITS:
add kapace to CREDITS
01:53
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:54
whiteknight Matt_: weird 01:55
Yuki`N dukeleto, I guess adding that second task can wait. In the meantime can you accept my claim? socghop.appspot.com/gci/task/show/g...9329019671 02:00
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. github.com/parrot/parrot/pull/45 02:02
Kapace_ is it just me or does t/src/embed/api.t not exist? socghop.appspot.com/gci/task/show/g...9336697097 02:04
Yuki`N It's t/src/embed.t 02:05
Kapace_ ah, thanks
dukeleto Yuki`N: done
dalek rrot: 00259d7 | Whiteknight++ | / (2 files):
Merge branch 'master' of github.com:parrot/parrot
02:06
Yuki`N dukeleto, thanks.
How does PObj_constant_TEST work?
02:08 kennym joined
whiteknight Yuki`N: include/parrot/pobj.h 02:08
Yuki`N Rather, how is an object set "constant"?
K.
whiteknight PMCs have a flags field, which contains a number of bit flags
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?
whiteknight ...I don't think so 02:10
What are you trying to test?
02:11 Khisanth joined
whiteknight I suspect Parrot_secret_snprintf is dead code 02:11
Yuki`N whiteknight, I'm trying to expand the Hash PMC coverage. 02:15
whiteknight ok
Yuki`N And there's a lot of instances which check using a non-constant key in a constant hash or something.
whiteknight oh, that code is all stupid
Kapace_ This task looks interesting, but I have no clue how to serialize PMCs. socghop.appspot.com/gci/task/show/g...9341406031 02:16
whiteknight Kapace_: there are functions for it. The API doesn't really do any logic, the API only exposes it 02:17
02:17 kennym left
Kapace_ ok, then Ill give it a shot 02:17
whiteknight Kapace++
Yuki`N whiteknight, I wonder if getting rid of it will do anything. `-` 02:18
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.
whiteknight Kapace_: Look at the freeze opcode. src/ops/core.ops or src/ops/pmc.ops (I don't remember where)
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...
whiteknight Yuki`N: Do your best. If 10% is impossible
Kapace_ whiteknight: awesomem, thanks 02:21
whiteknight awesomem indeed 02:23
Yuki`N If there are VTABLE functions that aren't used in any OPCODE can I cut them out?
defined_keyed_str is one such function; the opcodes only take PMC and Integer keys. 02:26
Rather, INTKEY and KEY values.
whiteknight Yuki`N: No, we can't take out ops 02:32
or VTABLEs
If you think something is not being used you can open a ticket to have it removed eventuall,
whiteknight is signing off for the night. Later 02:40
02:42 whiteknight left
Kapace_ how can I run a test under a debugger? (can't do gdb perl t/mytest.t because perl isn't crashing) 02:50
dalek rrot/encapsulate-main: 2d0b46e | plobsing++ | compilers/opsc/ops2c.nqp:
workaround nqp-rx not generating :main for ops2c
02:52
rrot/encapsulate-main: 0ff4ddd | plobsing++ | frontend/pbc_merge/main.c:
bytecode segment needs to be created first for unknown reasons
rrot/encapsulate-main: 3c0cc0d | plobsing++ | t/ (65 files):
use explicit :main in coretest
Yuki`N Kapace_, you can't debug PIR tests at all. 02:55
02:55 danielmarth left
Kapace_ no, its a C test 02:56
plobsing Kapace_: extract the crashing PIR into a test file 02:57
or the crashing C as is the case
then compile/run just the extracted bit 02:58
Yuki`N Yeah. 02:59
When you run prove t/test.t, it should extract each c segment into its own file. 03:00
Kapace_ ok 03:05
Matt_ plobsing: I'm having some issues running `make quickcover` on Ubuntu 03:13
Getting errors like: 'no source src/gc/src/gc/gc_inf.c found for src/gc/gc_inf.c.gcov' 03:14
shouldn't the first just be 'src/gc/gc_inf.c'
looks like the paths are corrupted?
*first path
03:29 fbrito joined
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:29
nwellnhof Matt_: I get the same errors here 03:31
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:32
03:33 contingencyplan left
nopaste "plobsing" at 192.168.1.3 pasted "src/embed/strings.c.gcov" (225 lines) at nopaste.snit.ch/27498 03:48
plobsing Matt_: ^^^
nwellnhof plobsing: what's your gcc version? 03:49
plobsing gcc version 4.5.1 20101125 (prerelease) (GCC) 03:50
03:50 khisanth_ joined
nwellnhof the way gcov is used in the makefile seems broken to me. 03:50
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
currently, we chdir in the subdirectories. and that's why i get error messages.
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.
nwellnhof Yuki: what's your gcc version?
Yuki`N Hold on, starting my vm. 03:53
03:53 Khisanth left
Yuki`N gcc (GCC) 4.5.1 20100924 (Red Hat 4.5.1-4) 03:53
So same as plobsing.
03:53 khisanth__ joined
Yuki`N aloha, coverage? 03:54
aloha Yuki`N: coverage is cv.perl6.cz or tapir2.ro.vutbr.cz/cover/cover-results/
Yuki`N Matt_, tapir2.ro.vutbr.cz/cover/cover-resu...7/c_cover/ has the latest coverage results.
nwellnhof i have gcc 4.4 here.
Yuki`N Maybe that's why.
03:59 khisanth_ left
Matt_ Yuki`N: thanks! 04:00
Yuki`N np.
04:03 khisanth__ left
nwellnhof Matt: what's your gcc version? 04:03
Matt_ 4.4.5 04:05
nwellnhof seems to be related to gcc 4.4 04:16
04:23 Yuki`N left 04:42 Matt_ left 04:46 Coke left
dalek rrot/encapsulate-main: ac1c768 | plobsing++ | / (10 files):
use explicit main in make tests
04:47
fbrito hm, it seems that "make quickcover" was not included in "make help" 04:54
05:29 nwellnhof left 05:35 rurban_ joined 05:37 rurban left, rurban_ is now known as rurban
cotto ~~ 06:01
mikehh, ping
seen mikehh
aloha mikehh was last seen in msg 5 hours 55 mins ago <private message>.
cotto dukeleto, ping 06:04
fbrito cotto hello :) 06:07
cotto hi fbrito 06:08
fbrito just wanted to say hi, hehehe :P. I have to go now :( 06:09
good night
cotto 'night 06:10
06:10 fbrito left
cotto mikehh, unping 06:18
plobsing, ping 06:19
plobsing, unping 06:20
a later commit answered my question 06:21
06:25 davidfetter left 06:32 rfw joined
cotto it looks like Rakudo's broken atm. What happened to concat_s_s? 06:43
Kapace_ hmm, how do I test the net api_pmc_serialize(), check a frozen string against a hardcoded pbc? 06:44
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
tracwiki: trac.parrot.org/parrot/wiki/ParrotD...ction=diff
Kapace_ but there is no api_pmc_thaw function :|
cotto We should probably have one. You've found a hole. 06:47
you can msg whiteknight about it or make a note in the gci task
Kapace_ maybe the task should have been to make api_pmc_serialize and api_pmc_unserialize 06:48
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
dalek tracwiki: v10 | cotto++ | ParrotDeprecationsFor3.0 07:02
tracwiki: trac.parrot.org/parrot/wiki/ParrotD...ction=diff
tracwiki: v27 | cotto++ | ParrotDeprecations
tracwiki: fix anchor for "no implicit :main subs"
tracwiki: trac.parrot.org/parrot/wiki/ParrotD...ction=diff 07:03
07:07 Khisanth joined 07:17 Khisanth left
dalek rrot/html_cleanup: 6cbc51a | mikehh++ | tools/docs/make_html_docs.pl:
[html_cleanup] add use strict (implied with 5.12), printf -> print
08:36
09:30 kennym joined 09:43 rfw left 10:26 bacek left 10:44 Khisanth joined 10:57 Khisanth left, contingencyplan joined 11:23 Khisanth joined 11:36 khisanth_ joined, Khisanth left 11:37 khisanth_ is now known as Khisanth, whiteknight joined
whiteknight good morning, #parrot 11:41
12:07 contingencyplan left 12:09 bluescreen left 12:11 danielmarth joined 12:15 fbrito joined 12:19 bluescreen joined 12:31 Coke joined
fbrito Hm, I am having problems finding out how to test "get_pmc_keyed_str" on MultiSub PMC :s 13:03
whiteknight let me look 13:05
13:05 Khisanth left
whiteknight fbrito: okay it finds a particular sub by signature 13:05
So create two subs that take different arguments in the same :multi, then you can look up by signature 13:06
fbrito: does that make sense? 13:07
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
fbrito: you need to get the multisub instance 13:11
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
and once you have the multisub, you can lookup individual subs in it by signature 13:12
brb 13:13
fbrito hm, interesting :)
thank you
13:21 Coke left 13:26 bluescreen left 13:27 Coke joined
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
13:35 rurban_ joined 13:36 Khisanth joined 13:37 rurban left 13:38 rurban_ is now known as rurban 13:42 khisanth_ joined 13:45 Khisanth left
fbrito ok, no success writing tests for multisub :( 13:51
will try again later :D 13:52
13:52 khisanth_ left 14:01 khisanth_ joined 14:04 whiteknight left 14:19 khisanth_ left 14:23 Coke left 14:25 Coke joined
dukeleto fbrito: wazzup? 14:43
fbrito hello :D
dukeleto fbrito: how is the multisub task coming along? 14:44
fbrito I had to stop for a while... anyway, I still don't know how to test "get_pmc_keyed_str" 14:45
whiteknight gave me some help, but I still can't figure out how to lookup individual subs in a multisub by it signature.
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.
(and then inspect the signature of the sub you got that way)
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
14:48 JimmyZ joined
dukeleto fbrito: what code have you tried? which errors do you get? 14:48
Coke: mornin'
fbrito I am using "get_global $P0, "foo"" to get the multisub. is that ok? 14:49
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)"
Coke make sure that that get_global is returning your multisub - ($S0 = typeof $P0; say $S0)
s/your/a/, that is 14:51
dukeleto: hio
fbrito yes, it is returning a MultiSub
14:52 Khisanth joined 14:53 khisanth_ joined
fbrito .sub foo :multi(Integer, String). the signature for this would be "IS". right? 14:53
14:53 bluescreen joined
fbrito get_global $P0, "foo"; $P1 = $P0["IS"] raises "Null PMC access in get_pmc()" 14:56
14:59 Khisanth left
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
Coke (unless the NPE comes when trying to use $P1 later...
15:02 jan left
Coke It's hard to debug 2 line code fragments. 15:02
what line causes the NPE?
fbrito pastie.org/1408677 15:04
those "foo" subs were in t/pmc/multisub.t. I only wrote the test_set_pmc_keyed 15:05
changing line 3 to $P1 = $P0["IS"] will raise the following exception: 15:06
pastie.org/1408681 15:07
15:07 khisanth_ left
fbrito (ahaha, I should have pasted the entire file. line 79 in exception is line 3 in my first pastie) 15:07
dukeleto fbrito: perhaps you can raise the coverage of Multisub in a different way? What do you have the coverage up to now? 15:09
Coke ah, it IS failing on the $P0["IS"] line. smells like a bug in pmc_get_keyed_str VTABLE in multisub. 15:10
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.
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 nopaste.snit.ch/27503
Coke fbrito: that snippet should not be generating a NPE IMO. 15:14
You should probably open a trac for that. 15:15
dukeleto fbrito: you probably found a bug!
fbrito: that is the point of these coverage tasks. If no bugs are found, they wouldn't be as useful 15:16
fbrito: nice work!
fbrito :D 15:17
Coke yah, the comments on those are suspicious. 15:19
15:19 danielmarth left
fbrito ah, and "make quickcover" is not being showed in "make help" 15:20
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.
... or that works.
dukeleto or Coke++ will do it
darn!
Coke I'll do it. ;)
fbrito ahha
dukeleto steps away
dalek rrot: 1e16125 | Coke++ | config/gen/makefiles/root.in:
add a note about "quickcover" to "make help"
15:24
fbrito ok, so I still need to test either "get_pmc_keyed", "get_pmc_keyed_str" or "get_iter" 15:26
15:29 mtk joined 15:30 mtk left 15:31 mtk joined
dukeleto fbrito: try get_iter first 15:31
fbrito yes. I could raise successfully the invalid arg type exception 15:32
15:33 fperrad joined
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
fbrito: although, you shoudn't create tests that depend on the stringified error of an exception 15:36
fbrito: it is better to check that the correction exception type was thrown
fbrito: but some of our tests check the string representation. we need to fix those
fbrito hm 15:37
yes :). increased testing coverage from 30% to 62.5%. I will open a pull request after rewriting the exceptions tests 15:47
Coke fbrito++ 15:48
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
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)
fbrito going to lunch. brb 15:50
15:50 mtk left
Coke ... looks like docs.parrot.org is stuck at 2.9.1 ? 15:51
(thought it was newer than that.)
moritz
.oO( didn't you know that we only updated it for supported releases? *SCNR* )
15:52
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.
dukeleto Coke: i already updated it to not use 5.12
15:54 mtk joined
dukeleto moritz++ 15:55
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 15:58 whiteknight joined, mtk joined, mtk left
Coke these people have accounts on docs.parrot.org : 15:58
actown allison coke cotto jeff jhorwitz particle rspier russell_h
whiteknight fbrito: $P1 = $P0[signature]
15:58 mtk joined
Coke please make sure that you and whiteknight at least get accounts on that box (just ask OSUOSL for privs) 15:59
dukeleto Coke: how do I get an account? 16:00
Coke (just ask OSUOSL for privs) 16:01
open a ticket with them for an account.
16:04 hercynium joined
dukeleto Coke: hokey dokey 16:04
plobsing cotto++ # TT #1704 deprecation work 16:11
dalek rrot: adc6e98 | Coke++ | docs/project/release_manager_guide.pod:
update to reflect reality.
16:12
Coke docs.parrot.org updated - devel/latest now point to 2.11.0, stable/supported still point to 2.9.1 16:13
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
16:14 theory joined 16:16 Matt_ joined
dukeleto Coke: thanks! 16:17
Coke dukeleto: ayup. 16:21
fbrito dukeleto: I forgot how I should test exceptions on their type instead of on their stringified error :s 16:22
ah, I found an example. nevermind :) 16:25
dukeleto fbrito: awesome! I can code review for you, if you want 16:38
fbrito: which example did you find?
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:40
pastie.org/1408882 16:41
both are passing
(.exception_is is a macro that I copied from somewhere else) 16:42
it doesn't look very nice, but I can't find a better way to test exceptions on their type 16:44
16:53 JimmyZ left
Coke We have a platform build dependency issue. 16:55
(minor, but causes checkdepend.t to fail based on which platform you build on.)
(darwin's sysmem.c didn't include the parrot header file. But it looks like it should, so this is an easy fix.) 16:59
17:02 whiteknight left
dalek rrot: 792d048 | Coke++ | config/gen/platform/darwin/sysmem.c:
Add missing #include
17:05
rrot: 5f7ddd9 | Coke++ | / (3 files):
move build dependencies test to t/src

This is a compromise - really is a coding standards test, but requires a full build, so put it in t/src with the feature tests.
  mikehh++ for the suggestion
Coke aloha, msg mikehh I moved checkdepend
aloha Coke: OK. I'll deliver the message.
dukeleto fbrito: "it is way too verbose" is how you would say it, but I understood you :) 17:06
fbrito: yeah, i am going to add a new function to test_more.pir to make testing exception types easy 17:07
17:11 whiteknight joined
fbrito dukeleto: I have just opened a pull request with my work 17:11
cotto msg bacek Can you add a deprecation notice for concat_s_s? 17:13
aloha OK. I'll deliver the message.
Matt_ Just submitted a pull request: github.com/parrot/parrot/pull/47 17:15
Coke cotto: isn't that covered by an existing ticket?
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
dukeleto Matt_: link for your task?
fbrito: task link?
Matt_ www.google-melange.com/gci/task/sho...9336715502 17:17
fbrito and mine is www.google-melange.com/gci/task/sho...048#ws4001
dukeleto Matt_: i just saw it in the pull request :)
Matt_: task accepted! 17:18
fbrito: task accepted!
now both of you find new tasks :)
Matt_ thanks!! 17:19
done: www.google-melange.com/gci/task/sho...9336697097
:)
dukeleto Matt_: accepted 17:20
cotto dukeleto, have you reviewed and pulled both their code?
dukeleto cotto: i reviewed it, but have not merged it
cotto er, requests
should I? 17:21
dukeleto cotto: i don't want to block them, since they can only have 1 task at a time
cotto: go for it!
fbrito Matt_: wow, you are fast :D
dukeleto cotto: i plan to add a new function to test_more.pir to make it easy to test exception types
Matt_ fbrito: There are people that have 140 points thats like impossible lol
cotto rfw's pretty close to that 17:22
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
Matt_: but being in the top 10 does :)
Coke aloha, msg whiteknight t/src/embed.t (Wstat: 0 Tests: 15 Failed: 0) TODO passed: 3
aloha Coke: OK. I'll deliver the message.
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
cotto reviewing multisub changes now
fbrito we still have almost 2 weeks left 17:25
GCI is going to end at the same day that I am going to write tests to go to university :) 17:26
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)
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
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
dukeleto fbrito: you should apply for scholarships and grants. You will get them.
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?
dukeleto fbrito: same goes for you
Matt_ whiteknight: computer science lol
dukeleto Matt_: don't overlook other kinds of math and engineering that still have lots of computer science in them
Matt_: CS is usually very theoretical 17:32
fbrito I am also really interested in Statistics
dukeleto Mathematicians consider CS a subfield of math, so the CS people are always competing to look cool in from of the mathematicians.
s/from of/front of/
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
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
17:34 davidfetter joined
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.
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
some code could be clearer by using is_ok, but that's fairly minot 17:37
tadzik 50% of my student-friends didn't pass the programming classes in the 1st semester 17:39
fbrito :o
dalek rrot: b7f65df | fbrito++ | tools/dev/github_post_receive.pl:
Add diff changes email sent from GitHub hook
17:40
rrot: c047623 | fbrito++ | tools/dev/github_post_receive.pl:
Add auth token verification to GitHub hook
rrot: 72c3eef | cotto++ | /:
Merge branch 'fbrito-gci-hook'
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).
dukeleto woot! That hook will make many people happy.
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.
dukeleto Many people think a computer science degree involves learning to use Excel.
tadzik cotto: recursion was easier for them than pointers and memory allocation
cotto dukeleto, now we just need to host it somewhere where it can be used.
17:42 Coke left
tadzik hrm 17:42
cotto tadzik, those too
dukeleto cotto: i suggest an OSUOSL server, or feather
cotto: OSUOSL servers are much more reliable, in terms of uptime
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?
dukeleto tadzik: yes! 17:43
tadzik: what is your interest? What do you want to learn about?
tadzik dukeleto: I got quite interested in Lorito, but I can't find myself over there
dukeleto tadzik: lorito is still in the very early stages. There will be more soon. 17:44
tadzik: are you familiar with nqp-rx and PGE?
tadzik: many of our HLL's are still using PGE. We need to change some of them to nqp-rx, like Cardinal.
tadzik: does that sound fun?
tadzik: github.com/parrot/cardinal
tadzik: Cardinal is Ruby on Parrot
dalek rrot: bba4c1c | (Matt Rajca)++ | t/src/embed/strings.t:
Increased test coverage for embed/strings.c

Signed-off-by: Christoph Otto <christoph_git@mksig.org>
17:45
dukeleto tadzik: or maybe convert github.com/parrot/ecmascript
davidfetter mmm...ecmascript :) 17:46
17:46 Coke joined
dukeleto davidfetter: howdy 17:46
davidfetter how goes, dukeleto ? 17:47
cotto Matt_, do you want dalek to credit you by your github username?
Coke *&#^@$ internet.
cotto wb Coke
Matt_ cotto: thats fine
dukeleto davidfetter: enjoying a foggy portland morning 17:49
davidfetter also enjoying morning. caffeinating atm 17:50
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
PLs*
dalek rrot: fa08721 | cotto++ | CREDITS:
add mattrajca++ to CREDITS
17:52
rrot: 9ab69a6 | cotto++ | CREDITS:
remove trailing space, expand description
dukeleto davidfetter: PIR is loaded first in PL/Parrot currently 17:53
davidfetter: it must be loaded first, because PIR is needed to properly load PL/Perl6
davidfetter: what do you mean by "later" ?
davidfetter let's imagine i'm packaging the PLs separately 17:58
PL/PIR, PL/Rakudo, PL/Cardinal, etc., etc. 17:59
i'd like to ship PL/PIR as its own package. similar with languages that depend on it
...with dependency info, of course
tadzik dukeleto: sounds like fun indeed :) Pardon my absence, got a suprise kernel picnic 18:00
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?
dukeleto tadzik: sounds awesome! let me know if you need guidance 18:16
davidfetter: we would need to split stuff out of plparrot.c and things would need to link against plparrot.o 18:17
davidfetter: i've planned that for a long time, but haven't gotten around to it
davidfetter: do you want to start a document for what things need to be refactored in PL/Parrot?
davidfetter sure :)
dukeleto davidfetter: maybe a github issue that is a milestone?
davidfetter: or on the wiki
davidfetter: a place for you to ask questions and i can answer them, and build up a plan of attack 18:18
davidfetter k
um, which wiki?
dukeleto davidfetter: plparrot wiki on github 18:21
davidfetter: create a new wiki page, something like "The Great PL/Parrot Refactoring" or something else grandiose
davidfetter heh
ok :)
i'm wondering whether pg also needs new machinery. it's not clear how a language would "depend on" another atm 18:22
a PL*
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:23
davidfetter checking if it were already loaded first, i presume 18:24
hrm. where do i put code in so CREATE LANGUAGE executes it?
dukeleto davidfetter: plparrot_secure.pir if it is PIR 18:25
davidfetter: if you need C, you need to fiddle in plparrot.c
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
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
...which basically means all the checks i have in mind look like SQL to me 18:28
dukeleto davidfetter: yep 18:29
davidfetter: put that in the wiki (about what happens when someone calls create language)
davidfetter ok :)
dukeleto davidfetter: currently, PL/Perl6 is loaded from C
davidfetter: just after PL/PIR 18:30
davidfetter um, there's nothing on the github wiki
dukeleto davidfetter: yeah, i know. let's fix that :) 18:35
davidfetter fixing...
github.com/leto/plparrot/wiki/The-...ng-Project 18:37
dukeleto davidfetter: very nice!
davidfetter thinks DROP LANGUAGE...CASCADE can have some pretty serious foot-gunnery in it 18:38
then again, so can every DROP...CASCADE operation :P
Kapace_ dukeleto: very yes, as many parrot tasks as possible, please! 18:46
Myhrlin clear 18:50
woops sorry
dukeleto Kapace_: do you have one to work on now? 18:51
Kapace_: i will add more code coverage tasks
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
dukeleto tadzik: not sure 18:58
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
Kapace_ how can i get the length of a Parrot_String?
dukeleto tadzik: src/vtable.tbl 19:00
Kapace_: from which language? C or PIR?
Kapace_ dukeleto: C 19:01
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
dukeleto Kapace_: perldoc src/string/api.c 19:03
19:06 simcop2387_ joined
tadzik dukeleto: found this neg, I have a new problem now. Method 'stdhandle' not found for invocant of class 'ParrotInterpreter' 19:06
dukeleto tadzik: yep, that was changed to get_stdhandle, i think 19:07
tadzik: there is a deprecation wiki page for it
19:07 simcop2387 left, simcop2387_ is now known as simcop2387 19:11 [hercynium] joined 19:12 [hercynium] left 19:13 [hercynium] joined, Coke left
tadzik wklej.org/id/445598/ -- how do I diagnose this? 19:14
Kapace_ very carefully :P 19:15
tadzik :)
if only it'd give me a line or something
dukeleto looks
tadzik: try parrot -v 19:16
19:16 hercynium left, [hercynium] is now known as hercynium
tadzik now that's verbose 19:16
wklej.org/id/445602/
dukeleto tadzik: somewhere, an exception handler doesn't exists where it should
tadzik: might need to use gdb or parrot -D 19:17
tadzik: -D can take many different flags to give debug info
tadzik: but adding some 'say' lines to see which code is triggering that could work too
tadzik I tried to compile just Hello world, but the debug info didn't get any easier
dukeleto tadzik: yeah, 'parrot -v' isn't as useful as -D with the right flags 19:18
Kapace_ www.google-melange.com/gci/task/sho...9341406031 19:19
tadzik trace looks informative, but I don't know what to look for: wklej.org/id/445609/ 19:21
that's an alike-breaking helloworld: wklej.org/id/445613/ 19:24
dukeleto tadzik: the die is dying within a die 19:25
Kapace_: can you submit a pull request?
tadzik that's what it looked like
Kapace_ dukeleto: ok 19:26
dukeleto Kapace_: thanks! it makes it easier to keep track of it
Kapace_ dukeleto: github.com/parrot/parrot/pull/48 19:27
19:27 Psyche^ joined 19:28 Patterner left, Psyche^ is now known as Patterner
dukeleto Kapace_: sweet! 19:29
19:30 Coke joined
dukeleto Kapace_: can you change your comments from // to /* ... */ ? 19:33
Kapace_: some C compiler don't understand //
Kapace_: and the test will fail
Kapace_ ok 19:34
actually, I should just remove those commented lines
dukeleto Kapace_: sounds good
Coke removal of concat_s_s requires a patch to rakudo. 19:36
moritz: ping 19:38
dukeleto Kapace_: task accepted 19:40
fbrito what does "sweep 1" means? 19:41
dukeleto fbrito: makes the garbage collector do stuff
fbrito: i.e. free memory and other nefarious things
Kapace_ dukeleto: thanks :) 19:42
sorear it re-enables the sweeper, which is or used to be controlled independantly from the marer
fbrito I am writing a test to cover VTABLE destroy() and I saw in other tests that they usually do "null $P0; sweep 1"
dukeleto: ahh, makes sense. thank you :)
Coke dukeleto: it /might/ make the GC do stuff, yes?
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
19:43 hercynium left
Coke so slow to build rakudo. :| 19:44
20:02 rfw joined
tadzik could someone patch cardinal with this: wklej.org/id/445679/ and help me inspect this die issue? 20:09
dukeleto tadzik: you probably have a commit bit to cardinal. do you have a bit to parrot.git on github? 20:10
tadzik dukeleto: I don't think so. But I'm w/o a browser atm anyway. 20:11
dukeleto tadzik: gotcha. i can patch it 20:12
tadzik I can set up a git server on my machine though
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:13
dukeleto tadzik: there is stuff that has :load or :init that is happening before main 20:14
tadzik a new thing learned 20:15
load_bytecode "cardinal.pbc" is the thing that fails 20:16
dukeleto tadzik: ah, that is progress 20:17
tadzik: look at the pir that generates that pbc. that is where the error is
tadzik ran with --target=PAST even 2+2 fails
dukeleto tadzik: what generates cardinal.pbc? 20:20
looks like we don't have the github post commit hooks in cardinal to notify us of commits 20:21
dukeleto attempts to fix
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" ?
tadzik: i committed your patch to cardinal
tadzik dukeleto: nihil novi: ***FATAL ERROR: Exception thrown while dying from previous unhandled Exception 20:23
dalek rdinal: cfaad5d | dukeleto++ | README:
Add some info to the README and test a post-commit hook
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
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
dukeleto: neither
dukeleto tadzik: hmm.
tadzik but there are many .includes
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
rfw hm what's the point of the continuation METHOD in the Continuation PMC
dukeleto tadzik: you might want to read what has been deprecated in the last year, and see if anything stands out
rfw: to continue?
rfw it returns the continuation PMC of this Continuation... but isn't this continuation PMC already a continuation PMC
dukeleto rfw: what does "git blame" say about those lines? 20:27
rfw: they are probably very old
20:27 sjn left
dukeleto rfw: back when parrot developers had to fight dinosaurs to eat 20:27
rfw heh
leopold toetsch and vasily chekalkin 20:28
dukeleto release the hounds!
sorear Leo and bacek
dukeleto bacek_at_work: why does the Continuation PMC have a continuation method? For any good reason?
rfw: leo is no longer involved in Parrot, but we can still blame bacek
rfw lol
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
Coke how do I do the equivalent of "prove -v path/to/foo.rakudo" 20:33
whoops.
tadzik found it 20:34
$P6 = interp.'stdout_handle'(.PIO_STDOUT_FILENO) is the line that fails
is there anything wrong with it?
TimToady refrains from making a joke about P6 not recognizing 'stdout' 20:35
dukeleto laughs anyway 20:36
tadzik read that as "stout"
dukeleto tadzik: perhaps the constant name has changed?
tadzik hmm, may be
dukeleto tadzik: is there anything on the deprecation wiki page?
tadzik #define PIO_STDOUT_FILENO 1 20:37
in parrot/include/parrot/io.h
so looks ok
dukeleto tadzik: perhaps the method name changed? is it 'set_stdout_handle' by any chance ? 20:39
tadzik nope, method not found then 20:40
so the problem is not in finding methods it seems
sorear you're looking for a getstdhandle or something
rfw wha, no pmc files were covered when making cover
goddammit what
dukeleto rfw: make fullcover ? 20:41
rfw dukeleto: shouldn't need to do that
dukeleto rfw: you got bugs!
rfw i see src/pmc in QUICKCOVER_DIRS
sorear tadzik: try changing it to $P6 = interp.'stdout_handle'()
tadzik METHOD stdout_handle(PMC *newhandle :optional) is in parrot/src/pmc/parrotinterpreter.pmc
dukeleto imagines a "You've Got Bugs" announcement in the AOL voice 20:42
tadzik sorear: bingo!
now I wonder why is that
rfw urk 20:48
no gcno files are being generated
for /src/pmc
Coke anything in parrot change in the last week or so that would change the handling of an exit exception? 20:50
20:50 contingencyplan joined
tadzik no return in nqp? 20:53
or rather: there used to be one, but not anymore?
Coke I think there is, yes.
tadzik Could not find sub return 20:54
current instr.: 'cardinal;cardinal;Grammar;Actions;is_a_sub'Could not find sub return
Coke partcl's been using it for some time.
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?
tadzik ah, there is return.t
moritz Coke: pong 20:56
Coke moritz: ETOOLONGAGO.
rfw could someone run make cover on master HEAD for me and see if anything is generated for src/pmc
tadzik might that be cardinal using PGE rather than nqp-rx?
Tene yes 20:57
tadzik even though it's compiled using parrot-nqp anyway? 20:58
oh, no, it works now. return 1 > return(1)
so cardinal works and can run its tests 20:59
which fail, but the first step is taken
dukeleto tadzik++
tadzik now there is Null PMC access in get_bool() :) 21:00
rfw 86.60% coverage in continuation pmc now
yay
that continuation method is still really weird
tadzik now that's funny, ; 21:04
./installable_cardinal < sanity-small.t works, without the < it fails horribly
maybe it's time to make it use nqp
rather than PGE 21:05
Tene tadzik: very long past time, actually.
Coke (parrot emitting warnings on exit) behavior changed since 2.9.1, I'll try to bisect.
Tene tadzik: I started on it once, at least a year ago, probably more.
tadzik mhm
rfw github.com/parrot/parrot/pull/49 submitted a pull request 21:06
dukeleto rfw: task link? 21:07
rfw www.google-melange.com/gci/task/sho...9329259889
dukeleto rfw: accepted 21:08
rfw thanks
dukeleto rfw: keep going! 21:10
moritz how long is GCI going?
rfw of course :D
moritz: until jan 10
moritz cool
rfw++
rfw 2 points away from jumpyshoes
sorear who wants to keep going after jan10? 21:11
dukeleto sorear: perhaps Parrot should run our own contest. good idea. 21:12
rfw do you get a parrot for every task
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:14
21:15 jan joined
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.
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.
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?
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
Those two code paths are mostly the same.
rfw or do these actually get called somewhere
tadzik wklej.org/id/445749/
ha 21:20
that might be the removal of this constant
and now it can work only on stdin 21:21
Tene what constant?
tadzik Tene: PIO_STDOUT_FILENO
Coke I wouldn't necessarily recommend getting the first version working again first.
tadzik 2141 @sorear | tadzik: try changing it to $P6 = interp.'stdout_handle'()
Coke It wouldn't have helped at all with old partcl, but the change between the 2 versions was pretty drastic.
tadzik it was try changing it to $P6 = interp.'stdout_handle'(.PIO_STDOUT_FILENO)
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
tadzik mhm 21:22
Tene Coke: cardinal is rather more standard, and replacing the parser should be a pretty isolated operation, not involving much non-parser change. 21:23
sorear bacek: hi 21:32
21:35 rurban_ joined, bluescreen left 21:37 rurban left, rurban_ is now known as rurban
Coke jeez, got 5 "git bisect skip"s in a row. 21:39
(and counting...)
tadzik cardinal gets a NULL PMC access while calling $P1 = $P0.'command_line'(args_str), $P0 being a `compreg 'cardinal'` 21:42
what can go wrong there? 21:44
rfw what the hell 21:52
Coke is $P0 a null PMC? 21:54
tadzik how can I tell? 21:55
21:56 fperrad left
Coke run it through parrot -t1, or insert code to check. "if_null $P0, label_to_indicate_error" 22:00
22:01 whiteknight joined
rfw hey whiteknight 22:02
whiteknight hello rfw 22:03
rfw could you approve www.google-melange.com/gci/task/sho...9341582405
also i can't seem to get coverage working 22:04
tadzik Coke: not null
rfw the coverage report on the parrot thing says misc.c has 87% coverage
Matt_ rfw: Do you mean generating coverage reports?
rfw but locally it reports i have 29.6%
Matt_ I had issues with that yesteday
rfw Matt_: no, i just have weird statistics 22:05
Matt_: well, also that it doesn't like to generate src/pmc coverage reports
whiteknight rfw: let me look
rfw: accepted 22:06
rfw thanks 22:07
Coke tadzik: in that case, I'd check the backtrace to see where the NPE is coming from.
rfw whiteknight: i added a t/src/misc.t test but cover seems to be ignoring it completely
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.
rfw ... and there some more
then*
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
dalek rrot: e132190 | mikehh++ | tools/dev/github_post_receive.pl:
fix perlcritic failure - Found platform-specific perl shebang line
22:10
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: github.com/rofflwaffls/parrot/blob...src/misc.t
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
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
Matt_ whiteknight: Thanks! I also need to test functions like Parrot_api_add_dynext_search_path. same answer?
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
rfw whiteknight: could you try running cover with that misc.t test? 22:14
i'm not sure what's wrong here 22:15
fbrito rfw: hello :D 22:21
rfw hi fbrito
actually fbrito 22:22
pm
tadzik if $lex && ~lookup_class($lex) eq 'Sub' { return 1; } – that's generating this NULL PMC access 22:25
may it be stringifying? lookup_class() result? 22:26
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:29
22:51 whiteknight left
Coke so far have had to bisect skip 14 commits trying to bisect. :P 22:53
22:57 Tene left
tadzik dukeleto: any ideas? 23:03
mikehh Coke: checkdepent does not check frontend/parrot/main.c amongst others 23:07
23:08 Yuki`N joined
mikehh which btw does not build with g++ 23:10
rfw rep g 23:21
!rep g
bah how does that work again
Coke mikehh: it only checks src/ and compilers/ - feel free to fix that. 23:22
rfw whwhere did you go 23:23
Coke actually, I can.
rfw oh, that's where he went
Coke grippingly, I am in the middle of a bisect.
i'll get it tonight if no one else does.
Coke ponders pushing a more stringent "do not break master" policy. :P 23:25
(up to /20/ skips...) 23:28
23:29 whiteknight joined
rfw hey whiteknight 23:30
whiteknight hello
sorry I'm moving slow. sick toddler here
rfw ah
could you try making cover after adding the test github.com/rofflwaffls/parrot/blob...src/misc.t (when you can)? 23:31
mine is being weird
whiteknight make realclean && reconfigure? 23:35
rfw i did
i'm only getting ~30% coverage
whiteknight ok
rfw and none of it is part of the tests i added
23:36 cognominal left 23:39 gg411 joined, gg411 left
mikehh whiteknight: git status reports untracked files - 3 files -> src/embed/*.o and 6 -> t/src/embed/pmc_?.c 23:40
dalek rrot/nwellnhof/make_cover: b5c1717 | nwellnhof++ | config/ (3 files):
Fixes to the make cover targets

  - Run gcov from build dir to make it find and include the source code
  - Make HTML report generated with Devel::Cover optional
  - Work around Debian bug #535755
  - Pass -no-gcov to cover, we run gcov and gcov2perl ourselves
  - Set default database for quickcover to cover_db
  - Make quickcover run 'make test_core' to improve coverage
  - Use the same source directories for quickcover
23:41
23:43 Tene joined 23:44 gg411 joined
rfw whiteknight: any luck? D: 23:44
whiteknight rfw: not done yet 23:46
rfw ah okay
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
what is the replacement?
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
whiteknight Matt_: That's a good question. 23:57
Matt_: is that function used anywhere?
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