Parrot 1.1.0 Released | parrot.org/ | 310 RTs left | Weekly Priority: Apply Patches, Fix Bugs, Close Tickets
Set by moderator on 17 May 2009.
he Hm, anyone know if rakudo is known to fail some of its spectests? 00:00
Infinoid he: Yes. There's a spectest_regression target which only runs the things it's expected to pass
he (took 2h to run..., and there are 4-5 failures)
Infinoid That's not bad, actually 00:01
hmm, I might be misunderstanding spectest/spectest_regression slightly. "make help" says spectest is the one you want, and doesn't mention spectest_regression at all 00:02
nopaste "he" at 158.38.152.119 pasted "rakudo spectest summary report on NetBSD/i386 4.0" (12 lines) at nopaste.snit.ch/16582
Infinoid copies that to freenode/#perl6 00:04
00:09 bacek_ joined
Whiteknight okay, that code doesn't even work 00:20
so now I'm stumped
00:23 tetragon joined
Infinoid is it even Class, or just Object? 00:24
I've got an instance of a pir class in gdb here 00:28
(gdb) print pmc->vtable->base_type
$2 = 52
(gdb) print pmc->vtable->pmc_class->vtable->base_type
$4 = 52
include/parrot/core_pmcs.h
64: enum_class_Object, /* 52 */
(no, I don't know why the class isn't a Class. But I think most/all actual PMC instances should be something else, so it might still be useful) 00:31
Whiteknight it's an object 00:51
specifically, I'm trying to figure out if it's an ExceptionHandler, or a PIR subclass of an ExceptionHandler 00:52
dalek rrot: r38884 | whiteknight++ | trunk/src/exceptions.c:
[core] a small partial hack-fix for TT #154. we can now use PIR-defined objects that are subclassed from ExceptionHandlers. However I'm sure that this solution is not very robust. It's just a start.
01:11
01:17 kid51 joined
moderator Parrot 1.1.0 Released | parrot.org/ | 308 RTs left | Weekly Priority: Apply Patches, Fix Bugs, Close Tickets
02:01 Theory joined 02:04 eternaleye joined 02:09 eternaleye joined
Coke Infinoid: should you be checking /base_type/ and not whatever 'actual type' is? 02:09
Infinoid No idea, I was just trying to figure out what Whiteknight was talking about 02:10
Coke ISTR there were two slots. I can't find the struct def to check, though. :P 02:11
Infinoid That may explain it 02:12
"type" is a function pointer, and I don't see anything better 02:13
Though I don't see why we couldn't have a VTABLE_IS_PIR_CLASS bit in flags. 02:14
or maybe invert that to VTABLE_IS_CORE_CLASS, so we don't cause confusion between pir and hlls 02:15
hmm, s/CORE/PMC/ # dynpmcs aren't core but they are C
dalek rrot: r38885 | coke++ | trunk/t/examples/streams.t:
[t] Pass the streams test again;
02:16
rdinal: 08f0f9f | tene++ | cardinal.pir:
Add a fetch-library method to the compiler for inter-language library loading.
02:44
02:48 janus joined 02:58 s1n joined
s1n who should i speak with concerning the CLA? Coke, particle? 02:58
02:59 wayland76 joined
wayland76 Anyone else want to test trac.parrot.org/parrot/ticket/426 ? 03:00
cotto Whiteknight++ #good and better news 03:11
s1n, what's your question? 03:12
(attempting content-based dispatch ;) 03:13
s1n cotto: i don't understand the whole 'employer' bits. i'm not even sure which question to ask, just what it is saying concerning employer/employee relations 03:15
Tene s1n: in my understanding, it's your employer saying "I assert that I don't own any code my employee contributes to Parrot" 03:17
cotto It's only relevant if you're writing code that your employer would otherwise have some claim over, i.e. contributing code written at work. (IANAL, this is my understanding) 03:18
Tene Right.
s1n so if you don't contribute code from work? 03:19
cotto It depends on local laws and the contract between you and your employer.
03:20 donaldh joined
s1n cotto: if you do this in $freetime, would i need my employer to sign one? 03:21
s/you/i/
cotto If your contract says they own what you do in your free time, yes. Otherwise, I don't think so. 03:22
Tene Wow, this is so cool. I'm really excited. A lot. 03:24
Lemme paste...
nopaste "tene" at 166.70.38.237 pasted "inter-language library loading..." (11 lines) at nopaste.snit.ch/16583
wayland76 That's cool :) 03:25
cotto That's awesome! Tene++
now if only Parrot were fast... 03:26
cotto ducks
s1n cotto: so the CLA is basically saying all ownership goes to TPF? 03:31
dalek rdinal: 107cc3f | tene++ | (3 files):
Add foreign-load function to load libraries from a foreign language.
03:33
bacek_ Wow. Tene++ 03:48
Infinoid s1n: yes, copyright on your contributions is assigned to PaFo 03:55
dalek rdinal: 0ccc552 | tene++ | (72 files):
Add support for 'include' and move Test.rb into the Test module.
Infinoid purl, CLA? 03:57
purl i think CLA is Contributor License Agreement or www.perlfoundation.org/contributor_..._agreement or www.parrot.org/foundation/legal or www.parrot.org/files/parrot_cla.pdf
04:11 petdance joined
GeJ Hi all, 04:11
allison: ping 04:12
allison GeJ: hi 04:13
GeJ Hi allison, 04:14
allison s1n/Infinoid: no, copyright is not assigned to the foundation
purl okay, allison.
allison s1n: it's licensed to the foundation, which means you own the copyright, but also give the foundation the right to include it in Parrot 04:15
GeJ FYI, you may have missed an instance of ch09_pasm.pod. I just noticed a failure when make'ing html. Looks like the source of the issue is lib/Parrot/Docs/Section/Parrot.pm line 110. 04:16
allison ah, thanks, I'll clean that up now
GeJ you're welcome.
dalek rrot: r38886 | allison++ | trunk/lib/Parrot/Docs/Section/Parrot.pm:
[book] Cleaning up a stray reference to the removed Chapter 9 on PASM.
04:21
04:44 dukeleto joined 04:55 whoppix joined
dalek rrot: r38887 | petdance++ | trunk/include/parrot (2 files):
added splint directives to not complain about the macros with no effect that are not supposed to have any effect
04:57
rrot: r38888 | petdance++ | trunk/src/string/encoding.c:
Shimmed an interpreter
05:00
rrot: r38889 | petdance++ | trunk/tools/build/c2str.pl:
adding PARROT_OBSERVER flags to generated code tables
05:07
rrot: r38890 | petdance++ | trunk (5 files):
startng to annotate functions with PARROT_OBSERVER
05:36
05:51 uniejo joined
Tene allison: if I can get a confirmed inter-HLL library loading spec from pmichaud, can I implement it in pynie? 05:56
allison Tene: yes, of course 05:57
Tene: I mean, I'll be reviewing the spec anyway 05:58
Tene nods.
I'm already suspecting that it's Not Good Enough in a few ways...
but hopefully good enough for now.
allison Tene: yeah, I expect we can get something Good Enough(TM) 05:59
Tene I'm thinking it might also need to return the actual namespace itself... to be installed appropriately.
allison you mean return the namespace directly instead of a "meta" object that contains the namespace and other info? 06:00
Tene i mean return the namespace as well as the other info
name => ..., symbols => ..., namespace => ...
allison ah, yes
I was thinking replace symbols with just the namespace
Tene use Foo:lang<python>; my Foo $x .= new();
allison there are various ways to do it
Tene Can't work with the current scheme.
allison the main thing is, getting all the wibbly bits to play well together 06:01
Tene Right.
allison Tene: aye, but there are other things already in place that won't work well with the current scheme either, so we have to change one or the other 06:02
probably we'll end up changing both a bit and meet somewhere in the middle
but, as long as it more or less works together in the end, we'll be fine
06:56 hiroyuk__ joined 07:07 masak joined 07:21 donaldh joined 07:49 whoppix joined
mikehh I am still getting failures with t/compilers/imcc/syn/regressions.t (test 14) on most cores in make -k fulltest at r38890 amd64 and i386 08:16
08:39 Ademan joined 09:09 bacek joined 09:38 bacek joined
Coke tene++ 09:40
09:58 iblechbot joined
dalek rrot: r38891 | NotFound++ | trunk/src/pmc/nci.pmc:
[core] partial fix for TT #667, examples/namespace/namespace_dump.pir dies politely instead of segfaulting
10:06
10:08 gaz joined
he_ Infinoid: found this diff still lurking in my NetBSD/alpha 4.0 tree... 10:12
nopaste "he" at 158.38.152.63 pasted "Diff for va_list not a pointer, as on NetBSD/alpha" (22 lines) at nopaste.snit.ch/16585
10:21 bacek joined
dalek rrot: r38892 | bacek++ | branches/tt504_annotations/t/pmc/packfileannotations.t:
Add (failing) tests for PackfileAnnotaions pack.
11:18
11:19 amoc joined
bacek hi there 11:20
11:20 donaldh joined
dalek rrot: r38893 | bacek++ | branches/tt504_annotations/src/pmc/packfileannotations.pmc:
Reimplement PackfileAnnotations pack.
11:24
bacek Is there C equivalent for std::numeric_limits<double>::epsilon for comparing float values? 11:48
11:49 burmas joined 11:57 particle joined 12:07 particle joined 12:15 rob joined 12:16 ruoso joined
Infinoid he_: Thanks. TT #647 says HPUX is having the same problem. As long as it doesn't cause any "make codetest" failures, I think this is low-risk enough to get in before the release, so I'll see about getting it in now 12:31
dalek rrot: r38894 | bacek++ | branches/tt504_annotations/t/pmc/packfileconstanttable.t:
[t] Add test for PackfileConstantTable.get_or_create_constant
12:33
rrot: r38895 | bacek++ | branches/tt504_annotations/t/pmc/packfileconstanttable.t:
Add tests for get_or_create_constant(FLOATVAL)
rrot: r38896 | bacek++ | branches/tt504_annotations/src/pmc/packfileconstanttable.pmc:
Implement get_or_create_constant for STRING* and FLOATVAL.
rrot: r38897 | bacek++ | branches/tt504_annotations/t/pmc/packfileannotations.t:
[t] Add PackfileAnnotations into Directory first.
rrot: r38898 | bacek++ | branches/tt504_annotations/src/pmc/packfileannotations.pmc:
Store and pack Annotation.name properly
Infinoid go bacek go! 12:34
bacek Infinoid: one commit more: kill packfileannotationkeys :) 12:36
dalek rrot: r38899 | bacek++ | branches/tt504_annotations/src/pmc/packfileannotations.pmc:
Store and pack non integer Annotations properly.
bacek Ah. Two more :)
12:40 rg joined
dalek rrot: r38900 | Infinoid++ | trunk/src/call/pcc.c:
[pcc] va_list is not always a pointer type; checking it for NULLness breaks the build on some platforms (netbsd/alpha, hpux/ia64).
12:43
rrot: r38901 | Infinoid++ | trunk/PLATFORMS:
More PLATFORMS updates from he++, the NetBSD pkgsrc maintainer.
bacek *Incoming* 12:48
bacek hides
dalek rrot: r38902 | bacek++ | branches/tt504_annotations/MANIFEST:
Remove removed files from MANIFEST.
12:53
rrot: r38903 | bacek++ | branches/tt504_annotations/src/pmc/packfileannotations.pmc:
Remove references to PackfileAnnotationKeys from PackfileAnnotations.
rrot: r38904 | bacek++ | branches/tt504_annotations/t/pmc/packfileannotations.t:
[t] Remove tests for PackfileAnnotationKeys.
rrot: r38905 | bacek++ | branches/tt504_annotations/src/pmc/packfileannotationkeys.pmc:
Remove PackfileAnnotationKeys.pmc. Finally.
12:54 gryphon joined
bacek If noone stop me I'll merge branch into trunk in next 8 hours. 12:56
Just after some nap
dalek rrot: r38906 | bacek++ | branches/tt504_annotations/PBC_COMPAT:
Bump PBC_COMPAT as required by spec.
Infinoid bacek: we're releasing tomorrow, might be better to wait until after that 13:00
bacek Ah. Ok.
Infinoid doesn't want to make tewk++'s life any harder
bacek thinking about evil merge right now :) 13:01
dalek rrot: r38907 | Infinoid++ | trunk/docs/dev/c_functions.pod:
[docs] Mention va_list in the ARGIN/ARGOUT/ARGMOD documentation, as it's not always a pointer type.
13:04
rrot: r38908 | fperrad++ | trunk/PLATFORMS:
[PLATFORM]
13:31
13:34 AndyA joined
he_ Infinoid: NetBSD/shark (arm) 4.0 parrot-current completed its selftests. 13:35
Infinoid he_: Is that little or big endian? 13:36
he_ That's little-endian. 13:37
Infinoid thanks 13:38
13:50 PacoLinux joined
dalek rrot: r38909 | coke++ | trunk/t/codingstd/c_function_docs.t:
[codingstd] these files were recently documented.
13:52
tracwiki: v5 | coke++ | CageTasklist 14:08
tracwiki: trac.parrot.org/parrot/wiki/CageTa...ction=diff
tracwiki: v6 | coke++ | CageTasklist
tracwiki: trac.parrot.org/parrot/wiki/CageTa...ction=diff
14:08 burmas left
Coke why isn't trac.parrot.org/parrot/wiki/CageTasklist showing VerifyExamples as a wiki link? 14:09
do I have to /create/ the page first? lame. 14:10
Infinoid hmm, that seems nicer than having the wiki littered with red links and (?) tags for things it mistakenly thought were links 14:11
dalek tracwiki: v7 | coke++ | CageTasklist
tracwiki: trac.parrot.org/parrot/wiki/CageTa...ction=diff
14:12 NotFound joined
NotFound hi 14:12
purl hi, NotFound.
Infinoid oi NotFound 14:13
Coke Infinoid: it's easy to tell the wiki something isn't a link.
!NotAWikiLink
but now i can't create the page AT ALL.
if I search for VerifyExamples, I have no option to create the missing page. 14:15
Infinoid I just created it, by typing it into the URL bar and hitting Edit
and now it's a link on CageTasklist 14:17
dalek tracwiki: v1 | Infinoid++ | VerifyExamples 14:18
tracwiki: Created the page for testing purposes
tracwiki: trac.parrot.org/parrot/wiki/Verify...ction=diff
Coke !?
I had no edit link there.
WTF.
Infinoid ... really?
Coke no, I'm lying. :P
Infinoid sorry, the button is "Create this page", not "Edit" 14:19
lingering permissions issue, perhaps?
Coke Yes, I don't have that button. (say, searching for VerifyExamplesNow)
I have /admin/ privs on trac. :P
Infinoid no, the button wasn't on the search page
Try trac.parrot.org/parrot/wiki/NonexistentPage, there should be a button there
So I had to hand-edit the URL, which ranks pretty low on the usability scale, but seemed to work 14:20
Coke that is NOT the page I got when i searched for VerifyExample. 14:22
(hand edit) BAH!
Infinoid yes. That page doesn't exist until you hit the create button... its a wiki 404 page
Coke thank you.
I wasn't expecting to have to hand edit the (*&#@$# url. 14:23
Infinoid There's a setting related to this in trac.ini (or whatever it is) which I asked allison to turn off a while back, because it screwed up several other things (including breaking the rss beyond usability)
So it may be that trac is better about this by default.
Coke opened a ticket. 14:26
NotFound Coke: I have a patch that makes the example namespace_dump pass the test, but I have no idea if that is an example of what to do or what to not do.
Coke NotFound: post the patch and let someone else decide?
Infinoid Coke: Ah, yes. See colloquy.info/project/wiki/CamelCase; we have ignore_missing_pages enabled
The rationale was that it barfed horribly on commit messages like trac.parrot.org/parrot/changeset/36165 14:27
NotFound Coke: ok
Infinoid well, hmm. "barf horribly" is relative.
Coke ah. so when adding links, add [wiki:CamelCase] 14:28
Infinoid Does anyone have an opinion on whether TT #665 needs a deprecation notice? If so, I should add it now. 14:32
NotFound Infinoid: I'm tempted to say that dropping undocumented features must not need deprecation cycles. However, giving the state of our code base and documentation that will be a joke. 14:35
So yes, I vote for a deprecation notice. 14:36
dalek tracwiki: v2 | coke++ | VerifyExamples 14:37
tracwiki: trac.parrot.org/parrot/wiki/Verify...ction=diff
Infinoid k, I'll mark it as a post-1.4 deprecation then 14:39
uck. this is a bug, not a feature 14:46
dalek tracwiki: v3 | coke++ | VerifyExamples 14:54
tracwiki: trac.parrot.org/parrot/wiki/Verify...ction=diff
Coke (add it now) doesn't matter, as long as it goes in for 1.4 14:59
dalek rrot: r38910 | coke++ | trunk/t/examples/pod.t:
[docs] fix typo
15:04
15:20 donaldh joined
dalek rtcl: r342 | coke++ | wiki/ParrotIssues.wiki:
Edited wiki page through web user interface.
15:41
Coke can someone upgrade the installed parrot on feather? 15:57
16:00 Theory joined 16:11 flh joined
dalek kudo: f77ad8a | tene++ | perl6.pir:
Initial implementation of the fetch-library method on the compiler.
16:11
kudo: 1639d85 | tene++ | (6 files):
Switch rakudo to register itself as a compiler for 'perl6' (lowercase)
kudo: 6b43f5d | tene++ | src/ (2 files):
Add support for loading foreign libraries.
kudo: 23faa00 | tene++ | perl6.pir:
Add the namespace to the hash returned by foreign library requests.
kudo: 26dfbab | tene++ | :
Merge branch 'hll-load-library'
16:12
pmichaud .... I see that 'Hash' is listed as eligible for deprecation in 1.5 . Is that correct?! 16:29
jonathan What?!
pmichaud It's to be changed to AssociativePMCArray 16:30
I don't mind the change, but it seems to go against the deprecation policy.
jonathan but...but...my fingers... :|
pmichaud jonathan: if ResizablePMCArray hasn't already gotten you, then I doubt AssociativePMCArray will be much worse :-P
jonathan Why do you think I left the list refactors to you? :-P 16:31
How's the isa to hasa change going, btw? 16:32
NotFound I'm going to implement: ThisIsNotThePMCYouWantToInstantiateImVerySure.pmc
jonathan NotFound: +1 ;-)
pmichaud jonathan: well, I got sidetracked last week working on operator overloading.
jonathan pmichaud: A very worthy sidetrack. :-)
pmichaud which I kind of wanted to have available to support the isa-hasa change :)
jonathan Nice.
pmichaud are you blocking on isa/hasa at the moment? 16:33
jonathan No, no.
Just curious how it was coming together.
pmichaud Just eager to see it done? ;-) (Yes, me too)
jonathan Well, eager because it's a step on the way to laziness. ;-) 16:34
pmichaud You're eager to be lazy. Hmmmmmmmm....
jonathan Rakudo release planned for Thursday? 16:35
pmichaud Absolutely. 16:36
jonathan Oh, and Parrot is tomorrow...argh.
jonathan had best tonight work on the Exception.backtrace() bug.
16:52 sekimura joined 16:53 barney joined
Coke sadly realizes that the magic "be able to build against an installed parrot" fairy will not be arriving tonight. 16:59
how close is rakudo to being able to build against an installed parrot? 17:07
any movement since parrot 1.0 ?
17:09 HG` joined
dalek rtcl: r343 | coke++ | wiki/ParrotIssues.wiki:
Edited wiki page through web user interface.
17:13
pmichaud Coke: Not a lot of movement, no. We still have issues with dynpmcs and dynops (I believe the same ones you're seeing with partcl)
Coke at this point, I'm blocking on TT#627 17:15
(I can't load any dynops files, even the ones that come with parrot, because the installed versions have the wrong linkage.)
(but only on mac, according to other reporters.)
Tene blogs.gurulabs.com/stephen/2009/05/...ading.html
Coke shorten that 17:16
purl That URL is at xrl.us/bes63o [blogs.gurulabs.com]
pmichaud time for lunch for me
bbiaw
Coke Tene: nifty. I look forward to convincing you to fixup partcl to use that. =-) 17:17
NotFound In my system, looks like is building, but slow.
17:17 bsdz_ joined
Tene Coke: I might. 17:17
NotFound Oh, you want that it runs, not just build ;) 17:18
Class 'Perl6MultiSub' not found 17:20
Coke can whoever did the annotate magic for perl6 line # errors look at:
rt.perl.org/rt3/Ticket/Display.html?id=44979 ?
moritz that was jonathan, afaict 17:21
dalek rtcl: r344 | coke++ | wiki/ParrotIssues.wiki:
Edited wiki page through web user interface.
17:23
rtcl: r345 | coke++ | wiki/ParrotIssues.wiki:
Edited wiki page through web user interface.
Coke seen tewk? 17:24
purl tewk was last seen on #parrot 7 days, 2 hours, 45 minutes and 27 seconds ago, saying: nevermind, I'm alreaddy using 8888 [May 11 14:35:31 2009]
Coke msg tewk You still on for tomorrow?
purl Message for tewk stored.
Tene He lives less than a mile from me... want me to go leave a threatening note on his front door? 17:26
NotFound Someone knows the difference between Parrot_PCCINVOKE and Parrot_pcc_invoke_method_from_c_args? 17:35
The example in TT #681 works when using the second to invoke the read method in Parrot_io_reads 17:37
dalek rrot: r38911 | coke++ | trunk/t/compilers/imcc/syn/regressions.t:
[t] TT #629 doesn't work with --runcore=cgp
17:42
Coke ... doesn't work with runcore=fast either. 17:45
pretty much doesn't work. =-) 17:52
nopaste "NotFound" at 213.96.228.50 pasted "Looks like cpointer has something to do with packfile pmc test failures?" (37 lines) at nopaste.snit.ch/16588 17:54
18:16 darbelo joined
Coke OH MY GOODNESS is benchmarks.t slow. INSANELY slow. 18:18
"why do we even run that" slow. 18:19
moritz that's why it's not in the default test target.
Coke at this speed, it shouldn't even be in fulltest. 18:20
cotto Coke, +1
Coke if it's a benchmark, surely we can run fewer iterations. I doubt we're even close at this point.
Tene shorl.com/rakydonerega -- cross-language library loading on reddit 18:23
moritz thinks that Tene's blog should be on planetsix 18:25
Tene moritz: Feel free to put it there.
moritz: I think it might have been there at one point? I'm not sure. 18:27
moritz Tene: maybe it was removed because of inactivity ;-) 18:28
Tene :) 18:29
18:35 eternaleye joined 18:39 dduncan joined
Andy I grow more in love with splint every day 18:54
but yet
I'm a little disturbed that i have to explicitly set PARROT_OBSERVER when I would think that, say, const char * would be enough to say "DOn't modify this."
Infinoid that is a bit weird 18:57
NotFound: I'm looking at your nopaste, but what does it do? 18:59
NotFound Infinoid: avoid a segfault that packfile pmc test does randomly 19:08
Well, avoided it in some tests in my machine. As long as it faults randomely, maybe it keeps failing in other cases. 19:09
Infinoid which test? 19:11
purl i guess which test is for that bit of sugar?
Infinoid I have a reliable segfault after test 5 of packfiledirectory.t which goes away when I run parrot with -G
NotFound The constants test is the one that fails most often
Infinoid hmm, ok. I only see segfaults in packfiledirectory.t, but it is crashing in constanttable code 19:12
might be the same issue
NotFound I don't think that the cpointer pmc is a sane thing.
19:14 bsdz joined
Infinoid yeah, I don't know what CPointer has to do with any of the packfile stuff 19:15
other than the fact that my bug seems to be a GC issue causing weird problems later... which doesn't prove anything.
dalek kudo: 798856d | pmichaud++ | docs/spectest-progress.csv:
spectest-progress.csv update: 390 files, 11294 passing, 0 failing
19:16
NotFound This is funny (to say the less) if I add 'say size' at lin 57 of packfileconstanttable.t, it works. Without that addition, it stops after second test. 19:17
Infinoid awesome
NotFound I wonder if tailcall has something to do with this and a lot of other bugs. 19:19
Infinoid NotFound: Does the test run reliably for you when you pass -G to parrot? 19:20
19:20 donaldh joined
jonathan NotFound: tailcall has, I belive, some issues 19:21
NotFound Infinoid: don't know how reliably, but in my current build it does.
No, changing the tailcall in packfile_common.pir has no effect 19:22
Infinoid If you can run it 100 times from a shell loop without a failure, that's reliable enough for me
pmichaud tailcall doesn't work for things that are invoked from C
in particular, don't use tailcall to return from vtable methods
jonathan Also, issues when you tailcall to a method in C. 19:23
From PIR.
See my, erm, not exactly happy comment in Rakudo's guts.pir.
NotFound Short version: never use tailcall }:)
packfile_common seems to be using the native_pbc pbc files for testing, which we're never sure if they are updated. No wonder it fails in unreasonable ways. 19:27
Infinoid They are, however, the best we have under the circumstances 19:49
NotFound Then let's abandon all hope of reliably testing the packfile pmc 19:50
Infinoid Or consider packfile pmc failures as a possible sign that we need to update the native_pbc files 19:51
Actually, once we start trying to be compatible with older versions of PBC, we will need to handle them regardless of whether they're up to date or not 19:52
NotFound When that day arrives, I'll test the pmc, then ;)
Infinoid You know, you could just update the native_pbc for your platform just to see whether that's your problem... 19:53
NotFound PackfileConstantTable extends PackfileSegment. Both have a mark vtable function. Didn't the child call his parent's one? 20:05
Infinoid It doesn't, and it either should, or should provide equivalent functionality 20:08
based on the typical usage pattern, the particular PMC being marked by PackfileSegment would have been marked anyway, but there are some edge cases that will break without it 20:09
hmm, the same can be said of PackfileAnnotations, PackfileAnnotationKeys (which is about to vanish thanks to bacek++), PackfileDirectory, PackfileFixupTable, and PackfileRawSegment 20:11
hmm. Maybe not PackfileDirectory, that would probably cause an infinite loop 20:12
NotFound Funny again, using the gcdebug runcore it does not fail. 20:22
20:30 contingencyplan_ joined 20:39 contingencyplan_ joined 20:40 contingencyplan_ joined 20:48 bacek joined 21:15 deetah joined
deetah can parrot communicate with framebuffer? 21:15
bacek good morning
purl Here I am, brain the size of a planet, and all they say is 'Good Morning'
szbalint size of a peanut maybe 21:17
purl: peanut?
purl rumour has it peanut is a pea
deetah uhm. 21:18
i'm wondering if I could put a statically linked parrot and linux kernel together and communicate with the framebuffer. 21:19
does anyone know?
Tene Sure, you could. 21:20
deetah any docs on it?
Infinoid It's just I/O, right? 21:21
deetah not with files, afaik
i'd rather stick away from the FHS 21:22
he Infiniod: another test completed: NetBSD/sgimips (mips big-endian) 5.0 parrot-current.
Infinoid he++
nopaste "bacek" at 114.73.141.182 pasted "Small fix for Packfile for Infinoid" (58 lines) at nopaste.snit.ch/16592
bacek Infinoid: can you test nopasted patch? 21:23
Infinoid deetah: I haven't used fb, but I think you'd need mmap and ioctl, and then it would work. correct?
bacek: sure, one sec
deetah Infinoid: didn't test yet. would such code be portable along linux architectures? 21:24
i mean, the bytecode
jonathan The Parrot bytecdoe is portable, yes.
deetah it's somewhat associated with the OS and it was rather a question about linux kernel
Infinoid As long as the ioctls didn't change numbers (which they don't), I don't see why not
deetah rad 21:25
Infinoid The header is linux/fb.h; the kernel tends to put arch-specific stuff in asm/.
deetah compiling uclibc already ;)
i guess it would need additional code for freebsd anyway?
Infinoid I don't know how the API differs between linux and *BSD. 21:26
deetah neither do I. testing needed
do you think it'd be a good idea to make a parrot-based OS?
Infinoid I know you mentioned that yesterday. I'm not really sure what that OS would do
deetah well, be a fast-developable desktop system 21:27
Infinoid Having a stable target for portable apps to run on is a goal of the parrot core itself
NotFound deetah: if you have a few years of free time, I think is a very good idea X-)
deetah no exact plans yet, i'll probably abandon it anyway
NotFound: why so much?
Infinoid deetah: Anyway, I think you could write a FramebufferDevice PMC (or dynpmc) which you could access from pir/HLLs, and that should work 21:28
You could do some base class magic with drawing primitives, if you wanted some kind of portability between that and X/shm
NotFound deetah: It's not easy to put complicated things in kernel, without all the support libaries of userland
And don't even talk about debugging
Infinoid NotFound: I think he's talking about an OS that runs on parrot, not embedding parrot in the linux kernel 21:29
bacek: Hey, you beat me to it. (I was going to add those tonight) 21:34
bacek Infinoid: it works? Hooray! 21:35
Infinoid bacek: It didn't break anything. I need to rebase on one of yesterday's revs though, as it doesn't crash without the patch either
Oh, awesome. It crashes after a realclean/configure/make, with or without your patch 21:36
But no, it doesn't hurt anything
bacek Ok. I'll dcommit this.
Infinoid I have a similar "doesn't hurt anything" for mark_1_seg() in src/packfile.c, but I'm waiting until after the release
bacek I have small bugfix in tt504_annotations branch waiting for release :) 21:37
dalek rrot: r38912 | bacek++ | trunk/src/pmc (4 files):
Fix mark of Packfile* PMCs. NotFound++
21:38
rrot: r38913 | NotFound++ | trunk/src/pmc/cpointer.pmc:
[pmc] no need to check sig content when sig is NULL
21:48
deetah does parrot run under uclibc? 21:49
compile* 21:50
21:52 Whiteknight joined
Infinoid deetah: I haven't tried it 21:52
If it doesn't, that's something we can fix. But committing those fixes should probably wait until after tomorrow's release 21:53
deetah that'd be insanely fast
Infinoid I don't think it will be much different from running on glibc, actually
moritz deetah: just give it a try ;-) 21:54
Infinoid Just different options. I suspect we probably have some glibcisms in our linux hints file
bacek Infinoid: try svn rebase and test packfile again. I've fixed Directory mark. 21:57
NotFound bacek: packfileconstanttable still fails for me 22:00
bacek NotFound: oh...
NotFound: at r38915? 22:01
dalek rrot: r38914 | jonathan++ | trunk/src (2 files):
[core] When an exception is thrown from C, we up until now have had no way to know where it was thrown from. (For thsoe thrown from PIR, we could look at the resume continuation). This meant that we couldn't get the annotations for the closest point of the exception being thrown for those thrown from C, which was unawesome. This adds a way, and leaves comments/ticket ref behind for how it should look when contexts become PMCs.
NotFound No, 38913
dalek rrot: r38915 | bacek++ | trunk/src/pmc/packfiledirectory.pmc:
Fix PackfileDirectory mark. Infinoid++, NotFound++
22:02
rrot: r38916 | jonathan++ | trunk/src/global.c:
[core] Allow us to hll_map MultiSub. We may need to patch up a few other places, but this seems the main one.
NotFound dalek's lack of responsiveness sometimes hurts ;)
bacek NotFound: try r38915 :)
dalek kudo: 9d2934e | jnthn++ | build/PARROT_REVISION:
Bump Rakudo up to Parrot r38916, to take advantage of the fixes to exception backtrace generation and hll_map of MultiSub.
22:03
NotFound Fails same way :( 22:04
Infinoid dalek is tracking 15-20 rss feeds, I tried to space them out a bit to keep it from pinging out
No change here either, bacek.
bacek NotFound: I'm out of ideas...
NotFound bacek: me also 22:05
Infinoid Mine is definitely GC-related, but it is quite easy to reproduce and always occurs in the same spot. If you want to try debugging it, I'm happy to give you all the details
bacek It fails after second test?
NotFound at ./src/pmc/packfileconstanttable.pmc:311 22:06
Yes, after second
Infinoid Yeah. The crash I'm seeing is different from NotFound++'s
nopaste "Infinoid" at 75.28.74.203 pasted "This crash happens for me, every time I run packfiledirectory.t." (55 lines) at nopaste.snit.ch/16593 22:07
NotFound And at my daywork on amd64 machines, fails different tests building with C++ than with C
I think there might be some wild pointer somewhere 22:08
Or maybe, an invalid size of the constant table 22:09
Infinoid In my case, the PMCs in the PackFile_ConstTable are being freed in the middle of loading them into the ConstantTable PMC's RPA 22:10
jonathan One thing I notice 22:11
Is that pmclass PackfileConstantTable extends PackfileSegment
you have a
NotFound That's interesting... Were is the loaded bytecode being marked?
jonathan VTABLE void mark()
It does 22:12
if (attrs->constants)
Parrot_gc_mark_PObj_alive(interp, (PObj *)attrs->constants);
if (attrs->types)
Parrot_gc_mark_PObj_alive(interp, (PObj *)attrs->types);
However, you also have an inherited attribute
Infinoid Yes, bacek++ added a SUPER() call in there just a little while ago
jonathan If you look at PackfileSegment's mark vtable it marks it
if (attrs->directory)
Parrot_gc_mark_PObj_alive(interp, (PObj *)attrs->directory);
~Ah, OK
I'm missing that update then.
But that was certainly wrong before.
Infinoid NotFound++ noticed it first :)
bacek jonathan: indeed.
moritz t/compilers/pct/bstest.t fails test 9 here
Infinoid Though actually, I think I see why this is crashing 22:13
NotFound And that PMC is stored in some place being marked during the load?
Infinoid In set_pointer(), PackFile_ConstTable is just a local variable; when it's doing its copy thing, lots of new PMCs are created, and the GC reenters the PackfileConstantTable PMC when it calls the mark() function, but mark() doesn't have any idea about the local variables in set_pointer() so it doesn't get marked 22:15
jonathan bacek: Notice that packfilerawsegment also inherits from packfile_segment and too is missing the SUPER() it looks like.
Infinoid Oh, wait. Shouldn't the GC know about that because it scans the stack?
jonathan Infinoid: Yes, GC scans the stack.
bacek jonathan: it already has SUPER... 22:16
jonathan erm, was
yeah, it's reloaded in my editor now :-)
Infinoid Oh well, I don't have a clue why the GC is freeing these things 22:17
Whiteknight what things? 22:21
purl rumour has it things is ok, although i was awakened by pager because i forgot to turn the development server back on
Whiteknight purl forget things 22:22
purl Whiteknight: I forgot things
Whiteknight you're damn straight you did
bacek Looks like GC collected PMCs from unpacked PBC...
Whiteknight are they being marked? 22:23
bacek I mean pure-C stuff.
PackFile_Constants
Whiteknight PackFile_Constants structures are manually-managed and are not GCd
bacek Hm..
Whiteknight but a PackFileConstants PMC is GCable 22:24
bacek But Infinoid's crash in PackfileConstTable.set_pmc_native.
Whiteknight backtrace?
purl backtrace is probably not useful or use Carp 'cluck'; BEGIN{ $SIG{__DIE__} = &confess; $SIG{__WARN__} = &cluck; } or perl -MCarp::Always
bacek C<value> is PackFile_Constant value.
Whiteknight purl forget backtrace
purl Whiteknight: I forgot backtrace
bacek <nopaste> "Infinoid" at 75.28.74.203 pasted "This crash happens for me, every time I run packfiledirectory.t." (55 lines) at nopaste.snit.ch/16593 22:25
Whiteknight purl backtrace is <reply>backtrace? no thank you. Those things are pretty invasive and unpleasant for a program
purl no problem Whiteknight
bacek set_pmc_keyed_int
NotFound Same place it crashes for me 22:26
Whiteknight where is this happening, branch?\\
NotFound trunk
Infinoid And it runs fine with parrot's -G option 22:28
So even PackFile_Constants is manually managed, something GC-related is triggering its being freed
even *if*
NotFound And with --runcore=gcdebug
Maybe something not collected is pointing to something that has been collected 22:29
Infinoid it must be 22:30
NotFound And the gcdebug core makes it be collected before doing any harm
Infinoid Ok. So, the pointer to PackFile_ConstTable is on the stack, but it isn't a PMC, so the GC will ignore it 22:31
So all the PackFile_Constants it contains are not safe
NotFound Or maybe is just that the code was written under the wrong phase of the moon %-)
Infinoid (unless they're allocated in some special way that protects them)
The PFC_PMC/PFC_KEY type constants in that PackFile_ConstTable need to be protected somehow while set_pointer is running 22:33
Hmm, could just disable GC sweep for the duration of this function
bacek Hooray! I reproduced crash
NotFound Well, I'll try to find the great spirit inspiration while dreaming
bacek And disabling GC during unpack fixed it 22:34
r38917 22:36
Infinoid Hmm, really? I put the same thing in the same function, but decided to surround *everything* 22:37
So GC is blocked before PackFile_unpack() is called
bacek Infinoid: PackFile_unpack blocks GC internally.
Infinoid ah, cool. 22:38
bacek src/packfile.c:1082
dalek rrot: r38917 | bacek++ | trunk/src/pmc/packfile.pmc:
[pmc] Disable GC during unpack Packfile.
bacek So, after PackFile_unpack we have to stop GC again.
gotta go. 22:39
purl EXCUSE ME, I HAVE TO GO WASH MY COMPUTER
Infinoid So, that fixed it here
bacek++
bacek Infinoid++ NotFound++ Whiteknight++ jonathan++ # We nailed it down!
Infinoid So realistically, *any* code which holds a pointer to a PackFile but doesn't track it during the mark pass is buggy. 22:41
I can't wait to get rid of src/packfile.c.
22:42 mikehh_ joined
Whiteknight we're getting rid of src/packfile.c? 22:46
dalek rcupinepascal: r69 | robin.ge++ | branches/oo-branch/ (5 files):
(from /branches/oo-branch/src/builtins/case.pir

   ����Modify����/branches/oo-branch/src/parser/actions.pm
   ����Modify����/branches/oo-branch/src/parser/grammar.pg
   ����Modify����/branches/oo-branch/t/12-case.t
   ����Modify����/branches/oo-branch/t/17-class.t
   * ACCEPTS no longer called on vars of same type.
  * added TapTest lib
  * renamed case builtin to std
  * added some standard functions
  * normalized type defintions slightly
22:47
22:47 mikehh__ joined
rcupinepascal: r70 | robin.ge++ | branches/oo-branch/t/12- (2 files):
(from /branches/oo-branch/t/12-case.t

   renamed to test of standard functions
Infinoid Wow, parse fail.
Whiteknight: Yeah, the C-level PackFile interface will eventually be replaced by Packfile PMCs, that's the eventual goal of the pdd13 roadmap item 22:48
Whiteknight oh nice 22:49
22:53 kid51 joined 23:17 dduncan left 23:21 donaldh joined