Camelia, the Perl 6 bug

IRC log for #parrot, 2010-01-18

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:24 cconstantine joined #parrot
00:29 dalek winxed: r363 | julian.notfound++ | trunk/examples/jsonread.winxed:
00:29 dalek winxed: fix example jsonread
00:29 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=363
00:33 dalek winxed: r364 | julian.notfound++ | trunk/winxedst0.cpp:
00:33 dalek winxed: stage 0: add predef ord, optimize mul for integer literals
00:33 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=364
00:38 dalek winxed: r365 | julian.notfound++ | trunk/winxedst1.winxed:
00:38 dalek winxed: stage 1: predefs compreg and load_language, optimize mul for integer literals,
00:38 dalek winxed: some cleaning
00:38 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=365
00:38 dalek winxed: r366 | julian.notfound++ | trunk/examples/xlibtest.winxed:
00:38 dalek winxed: improve xlib example
00:38 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=366
00:55 abqar joined #parrot
01:05 bacek joined #parrot
01:11 dalek rakudo/master: 726b83a | (Solomon Foster)++ |  (3 files):
01:11 dalek rakudo/master: Get master working with Parrot HEAD.  Patch from Vasily Chekalkin.
01:11 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/7​26b83a44af45a2d532191a2d272834bb909e5c7
01:28 cconstantine joined #parrot
02:07 slavorg joined #parrot
02:14 amuck joined #parrot
02:14 kid51 joined #parrot
02:15 kid51 jeez, has it been quiet here this week/month/weeks since last release!
02:17 GeJ blame it on global warming. It's way too hot to do anything productive.
02:18 kid51 Actually, in most of NA and Europe we've been freezing our cojones off!
02:18 kid51 Those few of us who started with any cojones ;-)
02:20 GeJ A coworker of mine just returned from one month in France. Boy was he happy to be back.
02:23 GeJ Weather forecast anounces that it'll be ~80�F tonight. That's the annoying part.
02:24 GeJ I don't mind a hot day, but I like my nights cool.
02:28 GeJ Parrot's next release is scheduled for this week, right?
02:39 kid51 Yes, this tuesday
02:39 kid51 Crude measure of (in)activity:  2009-11-15 to 2009-12-14:  450 commits to trunk -- but only 194 to date since then
02:40 kid51 GeJ?  Do you know anything about PMC stuff like PARROT_ASSERT?
02:41 GeJ I'm totally igorant on the subject. Sorry.
02:41 kid51 Anybody on channel who can comment on http://trac.parrot.org/par​rot/ticket/1382#comment:3 ?
02:46 kid51 GeJ:  Have you been submitting smoke reports?  On BSD?
02:47 GeJ yup, I did a couple of them last week.
02:47 kid51 Bravo!  Was that FreeBSD?
02:48 GeJ Although, I suspect I'm not the only one. After I submitted two of them I went to the web interface only to discover that the last 3 smoke tests were on FreeBSD.
02:48 abqar joined #parrot
02:49 GeJ Also, I'm starting to scratch my head to update parrot for the next release. And eventually creat a rakudo port.
03:00 plobsing_ kid51: those assertions check that the pointers are aligned to a 2**n char boundary (required on some obscure platform I'm sure). on the one hand, parrot doesn't check this elsewhere; on the other, UnManagedStruct is the closest users come to directly managing pointers, so extra checks might be good.
03:05 kid51 plobsing_:  Assuming that the point is to get rid of PARROT_PTR_ALIGNMENT (and enable us to get rid of config step auto::alignptrs), what would be the safest way to rewrite lines 188 and 202 in src/pmc/unmanagedstruct.pmc
03:05 kid51 ?
03:06 plobsing_ well, I'm not certain of the specific requirements, but I would guess that the required alignment is platform-specific
03:06 kid51 i.e., as an alternative to simply deleting those lines (which appears to cause no harm in that branch), what would you do?
03:07 plobsing_ to get the information required for that check, you'd have to probe the platform for minimum pointer alignment (which is what auto::alignptrs does AFAICT)
03:08 plobsing_ we could say: if you run a platform that breaks if you access pointers that aren't aligned and you break it using UnManagedStruct, that's your fault
03:08 plobsing_ in a way, UnManagedStruct is part of the escape hatch of the VM abstraction
03:08 kid51 What's the significance of this part of those lines:  (PTR2INTVAL(p)
03:08 kid51 PTR2INTVAL(p)
03:09 plobsing_ thats a cast from pointer to integer, in a very (overly maybe?) general, safe way.
03:09 kid51 ok.  Now, what's PARROT_ASSERT
03:09 plobsing_ abstraction over assert()
03:10 kid51 Is assert() a C function?
03:10 plobsing_ yes. panics if its argument isn't true
03:19 kid51 May I paraphrase you in the TT?  Am seeking comments from all knowledgable sources.
03:20 plobsing_ sure. I don't know when I became a knowledgable source though.
03:26 kid51 Thanks.
03:26 * kid51 must sleep
03:26 purl $kid51->sleep(8 * 3600);
03:42 mtk joined #parrot
03:42 mtk left #parrot
03:53 bacek joined #parrot
03:56 GeJ G'Day bacek
04:05 sjn joined #parrot
04:07 abqar joined #parrot
04:13 GeJ Whiteknight ?
04:13 purl Whiteknight is mailto:wknight8111@gmail.com or the grand master funk or http://wknight8111.blogspot.com/
05:25 cognominal joined #parrot
05:38 Essobi joined #parrot
05:47 chromatic joined #parrot
05:59 bacek joined #parrot
07:17 uniejo joined #parrot
07:42 iblechbot joined #parrot
08:32 fperrad joined #parrot
09:19 davidfetter joined #parrot
09:25 AndyA joined #parrot
09:42 AndyA_ joined #parrot
09:45 AndyA_ joined #parrot
09:52 AndyA joined #parrot
10:14 gaz joined #parrot
10:33 bacek joined #parrot
10:33 payload left #parrot
10:39 payload joined #parrot
10:54 cognominal joined #parrot
11:41 bluescreen joined #parrot
11:44 bluescreen joined #parrot
11:54 payload joined #parrot
11:59 cconstantine joined #parrot
12:14 payload joined #parrot
12:25 cconstantine joined #parrot
12:25 cognominal joined #parrot
12:30 ruoso joined #parrot
12:43 payload joined #parrot
12:51 mariano__ joined #parrot
13:32 mariano__ joined #parrot
13:43 tetragon joined #parrot
14:45 davidfetter joined #parrot
14:59 PacoLinux joined #parrot
15:06 iblechbot joined #parrot
15:08 Andy joined #parrot
15:08 Andy joined #parrot
15:11 plobsing joined #parrot
15:33 pmichaud joined #parrot
15:34 pmichaud joined #parrot
15:42 payload joined #parrot
15:50 Psyche^ joined #parrot
16:16 ash_ joined #parrot
16:16 darbelo joined #parrot
16:50 jsut joined #parrot
16:59 plobsing joined #parrot
17:05 NotFound joined #parrot
17:11 whiteknight joined #parrot
17:26 plobsing joined #parrot
17:38 smash joined #parrot
17:38 smash hello everyone
17:40 cotto_w0rk hi smash
17:51 whiteknight hello smash, cotto_w0rk
17:51 davidfetter olá smash
18:04 theory joined #parrot
18:04 chromatic joined #parrot
18:04 confound joined #parrot
18:06 confound joined #parrot
18:16 confound joined #parrot
18:41 joeri joined #parrot
18:41 gaz joined #parrot
18:55 confound joined #parrot
18:57 ash_ joined #parrot
18:58 ash_ joined #parrot
18:58 confound joined #parrot
19:40 redbrain joined #parrot
19:43 Zak joined #parrot
19:59 canhope joined #parrot
20:03 ash_ joined #parrot
20:31 AndyA joined #parrot
20:33 payload joined #parrot
20:33 payload joined #parrot
20:40 jan joined #parrot
20:46 cognominal joined #parrot
20:47 cognominal joined #parrot
20:48 plobsing joined #parrot
20:58 GeJ Good morning everyone!
21:00 GeJ dammit!
21:03 cotto_w0rk good morning to you too
21:03 cotto_w0rk ;)
21:05 mariano__ joined #parrot
21:14 GeJ Hiya cotto.
21:14 GeJ It's just I wanted to catch whiteknight and he left before I had the chance to ping him.
21:14 cotto_w0rk It's so quiet.  I'm tempted to break the build just to generate some noise.
21:19 cotto_w0rk maybe after the release is cut
21:36 Andy joined #parrot
21:40 cognominal joined #parrot
21:46 AndyA joined #parrot
21:50 smash joined #parrot
21:50 smash hello everyone
21:50 everyone hello smash
21:50 darbelo ;)
21:56 Andy_ joined #parrot
21:59 patspam joined #parrot
22:20 Whiteknight joined #parrot
22:21 Whiteknight how we doing for the release?
22:22 plobsing joined #parrot
22:22 darbelo OpenBSD is failing t/pmc/io.t test #22
22:23 darbelo But only in 'make test' prove doesn't show it.
22:28 Whiteknight urg
22:29 darbelo backtrace at http://nopaste.snit.ch/19292
22:32 darbelo I dislike backtraces that end with a call to memmove()
22:33 Whiteknight when did yeah, srsly
22:35 darbelo But then OpenBSD's utterly paranoid memory management means I get more of those than everyone else.
22:35 darbelo And, I think... I fixed it?
22:37 darbelo Whiteknight: http://nopaste.snit.ch/19293
22:37 darbelo Does that make sense to you?
22:40 Whiteknight reasonable
22:40 purl reasonable is definitely not sungo.
22:40 Whiteknight I would need more time to really evaluate it
22:43 darbelo The surrounding code points to that. (fetch _next, memmove() to _start, increment _ext?) But I find it odd that such and odd bug would only surface now.
22:48 darbelo And all other memmoves()s are done on buffer_next...
23:06 darbelo Aha! Parrot_io_flush_buffer() does a Parrot_io_set_buffer_next() to the right place.
23:06 darbelo I still wonder why this is only coming up now, however.
23:07 plobsing darbelo: how many people are currently using Parrot for heavy IO?
23:07 plobsing that might explain how this bug went undetected
23:08 darbelo I'm not doing heavy IO eoither, and it hasn't bit me before.
23:11 plobsing what baffles me is how buffer_start comes out of sync with where the filehandle's buffer is.
23:14 darbelo Yeah, in particular as Parrot_io_flush_buffer() sets buffer_next (which works) to be tha same as buffer_start (which explodes)
23:16 darbelo *something* makes the pointer stored in the PMC change. But I can't find what it is.
23:17 plobsing could you step through with gdb?
23:17 plobsing it's 100 lines, but most of it is conditionals that won't get taken
23:18 darbelo Not really, it only gets triggered on 'make test'. I can't make it happen out of the test harness.
23:19 plobsing can't you run parrot with the same flags?
23:19 darbelo AFAICT I have.
23:19 plobsing darbelo: are you running the test suite in parallel? sometimes thread pressure has caused some tests to fail for me (though those were mostly threading-related)
23:20 darbelo nopes, just plain ol' "make test"
23:22 darbelo Hmm, gimmie a sec. I have an idea.
23:22 kid51 joined #parrot
23:24 * kid51 reads backscroll
23:26 kid51 darbelo:  the behavior you were describing in t/pmc/io.t on OpenBSD earlier sounds a lot like the "happens during make test but not prove" behavior we saw in the early stages of this ticket:  http://trac.parrot.org/parrot/ticket/1393
23:27 kid51 What happens if you run:  perl t/harness --gc-debug t/pmc/io.t ?
23:28 darbelo kid51: works fine.
23:31 kid51 That's with or without your patch in http://nopaste.snit.ch/19293 ?
23:31 darbelo both :)
23:32 kid51 Hmm, scratch that hypothesis :-(
23:33 plobsing what does --running-make-test do?
23:34 darbelo makes the test fail for me, apparently.
23:35 darbelo http://nopaste.snit.ch/19294
23:39 darbelo But it doesn't happen on every run. That was throwing me off.
23:40 darbelo Which means that my fix was wrong.
23:40 darbelo It's the buffer that's pointing into never-never land.
23:41 darbelo My guess is that the string pool is getting compacted from under us.
23:41 plobsing yay! more gc "fun"
23:41 darbelo The io functions like to play with raw pointer into strings.
23:42 plobsing darbelo: run the test with '-R gcdebug'
23:42 nopaste "kid51" at 70.85.31.226 pasted "Instances of running-make-test and running_make_test" (10 lines) at http://nopaste.snit.ch/19295
23:44 nopaste "kid51" at 70.85.31.226 pasted "Instances of running-make-test and running_make_test" (10 lines) at http://nopaste.snit.ch/19296
23:44 preflex joined #parrot
23:45 kid51 What I'm unclear about is this line in t/harness:  $ENV{RUNNING_MAKE_TEST} = $longopts->{running_make_test};
23:46 kid51 I don't know what setting that environmental variable does.
23:47 plobsing kid51: yeah, I don't see any effect it should be having on TAP::Harness
23:47 kid51 And I doubt this inline comment in config/gen/makefiles/root.in:  # The --running-make-test argument is currently used by long-running tests to disable GC_DEBUG.
23:48 plobsing remove it and see what breaks (post-2.0)
23:50 kid51 Googling RUNNING_MAKE_TEST only brings up Parrot links -- many of them by me!
23:50 kid51 So it doesn't appear to have anything intrinsically to do with 'make'.
23:51 * kid51 will create branch to explore this
23:55 cconstantine joined #parrot

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

Parrot | source cross referenced