Parrot 2.8.0 released | parrot.org Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | close configure component tickets
Set by moderator on 12 October 2010.
whiteknight I have to go to the post office tomorrow to get the replacement hinges for my laptop. Then I have to reassemble my laptop and I should be up and running 00:34
00:34 dngor left 00:37 dngor joined
cotto dukeleto, you can use svnsync to get a local copy of a svn repo with all history 00:48
It'll take a while.
dukeleto, I have a mostly-complete copy of the svn repo. I'll get/keep it up-to-date and post a tarball for you when the time comes. 00:54
00:57 dngor left, dngor joined 01:05 dukeleto left 01:06 dukeleto joined 01:09 dngor_ joined, dngor left, dngor_ is now known as dngor
dalek rrot: r49536 | bacek++ | branches/generational_gc/src/gc/gc_ms2.c:
Add sanity check for GenGC
01:10
01:12 dngor left
cotto Whatever gripes I have about svn, its source code isn't too bad for spelunking. 01:17
Their repo is at r1022805. 01:20
whiteknight lolmillion? 01:21
01:24 silug joined
cotto I'm glad I'm not syncing that. 01:24
01:50 hudnix left 01:54 silug left 01:55 kid51 joined
kid51 joins from the PDX hackathon at Lucky Labs, Portland OR. 01:56
01:58 theory joined
Infinoid cotto: The svn revision numbers are huge because it's apache's common ASF repo. 01:58
dukeleto kid51: i am heading your way soon. 02:00
cotto That'd explain it. 02:04
kid51 dukeleto: Good. Working on the ipv6 thing (see trac.parrot.org/parrot/ticket/1824#comment:6) 02:11
02:20 davidfetter left 02:35 janus left 02:48 janus joined
dukeleto says hello from PDX Hackathon 02:51
02:58 kid51 left 02:59 dngor joined 03:00 whiteknight left 03:04 kid51 joined
dukeleto kid51: is the hackathon crazy enough for you? 03:05
cotto no relation to the hackathon on Saturday? 03:06
dukeleto cotto: other than it is a hackathon in the same exact place in the same city, no ;) 03:19
cotto phew
dukeleto cotto: this is a hackathon that grew out of one-time perl hackathons 03:20
cotto: it is now a pan-tech hacking event
cotto So it's a regular deal? Nice. 03:21
dukeleto Portland has at least about 5 hackathons these days
Yes, this event is every thursday, and there is a similar event every monday at a different Lucky Lab (in North Portland)
03:27 dngor_ joined 03:28 dngor left 03:33 jsut joined
dukeleto kid51: does the patch work when you change reuse to reuse_address ? 03:35
03:37 jsut_ left 03:45 dngor_ left
cotto dukeleto, do you think you'll have enough time to get the commit notification script done within the next week? I'd like to get the migration schedule nailed down and that's one of the remaining pieces. 03:47
dukeleto cotto: it shouldn't take long. It is written already (for different project). All i need to do is change a few variables, like the email address and project name 03:50
cotto Oh. That's way less effort than I thought it'd take.
Great.
dukeleto cotto: and add a step to get the full diff via the github commit api
cotto: by default it only gives diff stats 03:51
cotto where's the code live now?
04:00 silug joined
dukeleto cotto: github.com/solgenomics/sgn-devtools...st_receive 04:00
04:02 TimToady left 04:12 Andy left
dukeleto Help with this ticket would be greatly appreciated: trac.parrot.org/parrot/ticket/1821 04:16
04:16 rbuels joined
dukeleto rbuels: wazzzzzup 04:17
rbuels swallows his tongue, spits it back up
dukeleto: waaaaazz....up
dukeleto aloha, msg nwellnhof please look at trac.parrot.org/parrot/ticket/1821 and let me know if you know what is going wrong 04:22
aloha dukeleto: OK. I'll deliver the message.
04:28 jsut left 04:29 dngor joined
dalek rrot: r49537 | jkeenan++ | trunk (2 files):
Refactor some code into internal method to facilitate testing of all result possibilities.
04:30
kid51 dukeleto: Was working on a different config step test. Hope to get to bacek's comment soon (or maybe tomorrow). 04:31
dukeleto kid51: sounds good to me 04:39
04:44 theory left
cotto That reverse method is odd. It requires an existing String PMC to reverse an unrelated and ostensibly immutable string in-place. 04:47
bacek_at_work cotto, no. String PMC will create and store new STRING. Leaving old, immutable STRING untouched 04:51
cotto bacek_at_work, that's not what this patch does: trac.parrot.org/parrot/attachment/t...erse.patch
I wonder if it's comparing hashes as a shortcut. 04:52
dukeleto that patch is what String.reverse was previously. I just had to change charset -> pointer in the revert 04:53
cotto Yeah. Invalidating the string's hashval makes the test pass. 04:55
Yuck.
04:57 kid51 left
nopaste "cotto" at 192.168.1.3 pasted "string.reverse, now with passing test" (81 lines) at nopaste.snit.ch/24412 04:58
cotto That method needs to be deprecated.
dukeleto, which commit did you revert to get that commit? 04:59
dalek rrot: r49538 | jkeenan++ | trunk/lib/Parrot/Configure/Options/Test/Prepare.pm:
Apply patch submitted by doughera in TT #1827.
05:01
cotto er, that patch
found it 05:02
bacek_at_work cotto, patch is wrong. Really really wrong. 05:10
cotto I know.
bacek_at_work In many different ways.
1) Strings aren't sequence of bytes 05:11
cotto How about instead of reverting the removal of a broken method, we make String.reverse appear to reverse the PMC's contents in-place and pretend the old version never existed.
bacek_at_work 2) .reverse should allocate new STRING and store it
cotto You can probably think of more reasons than me, but I don't want my name anywhere near that nopaste. 05:12
3) It doesn't operate on the PMC.
bacek_at_work yes. 05:13
Basically it should be something like: STRiNG*new_str = Parrot_str_new(); iter = STRING_ITER_INIT(SELF->str); while (iter) { str_append(new_str, iter.get_and_advance() }; SELF->str = new_str; 05:15
aloha, convert 4.5 feet to cm 05:17
aloha bacek_at_work: 4.5 feet is 137.16 cm
bacek_at_work aloha, convert 4.5 in to cm
aloha bacek_at_work: 4.5 in is 11.43 cm
cotto Would this be sane? If there's an arg to the method, reverse that and set to SELF, otherwise reverse SELF. 05:20
bacek_at_work I don't think that we need .reverse(Str) 05:21
It can be easily achievable with $P0 = $S0; $P0.'reverse'() 05:22
or reverse_s_s op
Actually, String.reverse should be implemented via reverse_s_s
erm. STRING * Parrot_str_reverse(ARGIN(STRING *orig)); op reverse() { $1 = reverse $2 }; String.reverse() { SET_ATTR_str_val(Parrot_str_reverse(GET_ATTR_str_val)) } 05:24
cotto the non-existent op? 05:26
bacek_at_work "op reverse" is optional, but it doesn't cost much.
05:27 cotto left, cotto joined
cotto I'm surprised that we don't have an api function for that. 05:28
05:29 davidfetter joined
sorear bacek_at_work: when the rakudo people asked for String.reverse, they explicitly said "ASCII only is fine for now" 05:39
bacek_at_work sorear, yes, but it doesn't mean that we have to put wrong code into parrot. 05:41
sorear where else should we put it?
is a String.reverse that doesn't exist less wrong than one that gives right answers for byte8 strings? 05:42
bacek_at_work sorear, we shouldn't put it at all. It's better to write correct code from the beginning.
05:50 kid51 joined 06:00 GeJ left 06:03 slavorgn left
nopaste "cotto" at 192.168.1.3 pasted "a much less insane string.reverse implementation" (139 lines) at nopaste.snit.ch/24417 06:10
cotto bacek_at_work, how's that one look? 06:11
It's super-inefficient, but still sane. 06:12
This would be a good poster child for a cache of single-character strings. 06:13
06:18 slavorgn joined
bacek_at_work cotto, much better. Only one thing - str_concat is utterly inefficient in this case. 06:18
06:18 GeJ joined
cotto yeah. It also doesn't reverse "ē§‘ćƒ ć‚¦ć‚Ŗ" correctly. 06:21
moritz maybe build an RPA, and then join() ?
or even a fixed_string_array or so
bacek_at_work moritz, we have StringBuilder for it now :) 06:24
cotto actually, it works. I just needed to add an explicit encoding. 06:25
dukeleto backlogs
cotto Is calling a VTABLE function really going to be more efficient that concatenating a bunch of strings one at a time? 06:29
The code's a little nicer, but it seems less efficient. 06:30
dukeleto i think an implementation that works for 2.9.0 would be nice, then optimizations 06:31
cotto actually, stringbuilder won't work unless someone wants to implement unshift_string for it.
06:31 kid51 left
cotto dukeleto, I'll test, commit and then figure out a more efficient method. 06:32
I'd prefer to break our deprecation policy rather than allow the old version of the method back in. 06:33
dukeleto cotto: sweet. and I agree with reverse() acting on SELF if no string is given
dalek rrot: r49539 | jkeenan++ | trunk/lib/Parrot/Configure/Options/Test.pm:
Correct message describing results of preconfiguration tests. Add message displaying elapsed time for postconfiguration tests.
dukeleto cotto: i agree. your patches are better than the original reverse()
cotto dukeleto, if you want to review, it'll be the most recent nopaste plus an additional test. 06:34
nopaste "cotto" at 192.168.1.3 pasted "better reverse method, plus tests" (144 lines) at nopaste.snit.ch/24421 06:35
dukeleto cotto: as long as Rakudo can make good use of reverse(), we are improving parrot
cotto: looks nice. we should probably put something in NEWS too 06:38
06:41 rurban_ joined
dukeleto bacek++, cotto++ # doing stuff the right way, that actually works 06:41
06:43 rurban left, rurban_ is now known as rurban
cotto NEWS: strings can now be reversed 06:43
leading researchers proved wrong 06:44
committed 06:49
like the pig 06:53
moritz +=item C<void reverse(STRING *src)> 06:55
+
+Reverse the ascii STRING C<src> in place.
is the in-place version ASCII-only?
or is the 'ascii' just a left-over? 06:56
cotto my mistake
moritz cotto++ # string reverse 06:59
cotto Was the old version in use by Rakudo? 07:01
moritz no
or maybe in the old rakudo branch
cotto Good. I'd feel bad if anyone were using it.
moritz the current solution is horribly inefficient; I plan to use the new .reverse from parrot instead 07:03
cotto The new solution is also horribly inefficient, though perhaps less so than Rakudo's. 07:04
How heavily will it be used?
moritz (~self).split('').reverse().join;
cotto ...
moritz as heavily as people use Str.flip in Perl 6 07:05
cotto Ok. The .reverse method beats that.
moritz I'm sure it does :-)
dalek rrot: r49540 | cotto++ | trunk (4 files):
[str] provide a sane (if inefficient) C- and pir-level interface for reversing strings
07:06
rrot: r49541 | cotto++ | trunk/docs/pdds/pdd28_strings.pod:
[pdd] remove ascii-only reverse limitation from strings pdd
rrot: r49542 | cotto++ | trunk/src/pmc/string.pmc:
[pmc] fix incorrect docs in String PMC noticed by moritz++
moritz cotto: small benchmark: my $str = 'mƶpbla blubb' x 100; 07:15
$str.flip for ^10;
took real 0m14.714s on my machine 07:16
now:
real 0m0.754s
cotto sweet
moritz and startup time is 0.68s here :-)
(14.714 - 0.68) / (0.754 - 0.68) 07:17
aloha 189.648648648649
cotto I like >100x speedups.
moritz too :-)
cotto Do you think it'll be worth optimizing further? 07:18
There's room for improvement. 07:20
moritz if it's not too much work, yes
cotto I'll see what can be done. It's a nice change to make Rakudo people happy. 07:24
07:25 jsut joined
moritz my initial tests show that runtime of reverse is not linear 07:30
sorear cotto used an O(N^2) algorithm
moritz (which is not surprising, considering the immplementation)
cotto Looks like StringBuild is quite a bit more efficient. 07:53
looks like it's closer to O(n) now 07:57
moritz, how's it look now? 08:01
moritz cotto: will take a while to rebuild parrot and rakudo... I'll report when it's done 08:02
cotto np
though you'll only need to rebuild and install Parrot.
moritz doesn't the fakexecutable contain a statically linked parrot? 08:04
cotto I thought it was dynamic
yup. dynamic
moritz then it shouldn't be a problem
dalek rrot: r49543 | cotto++ | trunk/src/string/api.c:
[str] improve the performance of Parrot_str_reverse
08:07
moritz rebuilds rakudo, because he doesn't trust the results otherwise 08:10
cotto: it didn't improve. increasing the string length by a factor 5 still slows down by a factor of about 20 08:20
cotto I show a significant improvement with a pure pir microbenchmark. 08:22
moritz what string lengths do you use?
cotto I varied between 500 and 8000 chars 08:23
*3
moritz varies between 6k and 120k 08:24
cotto for a string in that range, the new version completes in a few seconds while the old version is taking a very long time 08:29
~10s vs .5s for 100x 10k char string reversal 08:32
You definitely should see a difference. Can you nopaste what you're running? 08:38
nopaste "moritz" at 192.168.1.3 pasted "string reversal benchmark (perl 6)" (6 lines) at nopaste.snit.ch/24429 08:39
moritz moritz.faui2k3.org/tmp/reverse.png 08:42
cotto I see an improvement. 08:43
moritz cotto: fwiw, I didn't compare absolute numbers, because the timings of the old benchmark were under load
cotto 18.6s before, 7.0 after
moritz so "no improvement" was not accurate - I should have said "still O(n^2)" 08:44
but it could still be some rakudo problem
cotto I'm checking to see what the pir version looks like 08:49
It's worse than linear. 09:03
dalek rrot: r49544 | mikehh++ | trunk/MANIFEST:
re-generate MANIFEST
09:09
rrot: r49545 | mikehh++ | trunk/src/string/api.c:
fix codetest failure - trailing whitespace
cotto mksig.org/img/string.repeat%20perfo...reases.png 09:12
Gah. That was the old version. 09:15
updated version with the pink line being the new version with 10x string lengths 09:23
I'm calling it mostly O(n) and going to bed. 09:35
moritz looks good
sleep well cotto++
cotto night moritz 09:36
happy hacking
go forth and reverse strings 09:37
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#607) fulltest) at r49545 - Ubuntu 10.10 amd64 (g++-4.5 with --optimize) 09:38
rakudo (79f754a) builds on parrot r49545 - make test PASS, make spectest_smolder(#608) roast (866d5ab)) FAIL - Ubuntu 10.10 amd64 (g++-4.5 with --optimize) 10:28
27,015 ok, 3 failed, 594 todo, 1,897 skipped and 0 unexpectedly succeeded
10:48 dngor left, dngor joined 11:49 contingencyplan left 12:06 he_ joined
Infinoid woo, Result: PASS on linux armel 12:36
If I were to set up daily smolders on this box, would it be more useful with or without --optimize?
moritz rakudo usually compiles parrith with --optimize 12:38
*parrot
so that's what I'd use
12:38 integral left 12:39 integral joined 13:21 tadzik joined 13:47 Andy joined 14:18 brianwisti joined 14:20 PerlPilot is now known as PerlJam 14:36 tadzik left 14:41 rurban_ joined 14:43 rurban left, rurban_ is now known as rurban 14:45 contingencyplan joined
brianwisti Does anyone know whether there's an rvm-style handler for Parrot floating around? 14:45
14:49 kid51 joined 14:53 dmalcolm joined 14:57 allison left 14:58 nwellnhof joined 15:08 tadzik joined
dalek rrot: r49546 | jkeenan++ | trunk/t/steps/auto/format-01.t:
runstep() is safely testable, so let's test its return value.
15:18
15:23 tadzik left 15:32 davidfetter left 15:33 davidfetter joined 15:34 fperrad joined 15:36 s1n joined 15:38 s1n left 15:42 tadzik joined
dalek rrot: r49547 | jkeenan++ | trunk/t/steps/auto/stat-01.t:
Provide test for successful completion of runstep().
15:49
rrot: r49548 | jkeenan++ | trunk/t/steps/auto/stat-01.t:
Convert test to more up-to-date testing procedure (Parrot::Configure::Step::Test).
kid51 seen Coke? 15:53
aloha Coke was last seen in #parrot 9 days 18 hours ago saying "though my ARGH is directed at chromatic's request for PIR.".
15:55 silug left 15:57 nwellnhof left
dukeleto good localtime() 15:57
16:02 theory joined
davidfetter 'sup dukeleto 16:03
dukeleto davidfetter: it is a cold foggy morning in PDX 16:06
16:06 jsut_ joined
davidfetter it is a mostly sunny morning here in OAK 16:07
well, i'm not actually *at* OAK
16:11 jsut left
kid51 dukeleto: What part of PDX are you in? Where I am, the sun is out! 16:15
16:15 whiteknight joined
brianwisti I think I'll try again now that it looks like more folks are up :-) Is there a rvm-style tool for handling multiple Parrot installations? 16:16
kid51 searches for 'rvm' and responds ... 16:19
dukeleto kid51: i am slightly uphill from you, in NE PDX
kid51 brianwisti: Almost certainly not (yet).
dukeleto brianwisti: i wish there was, we want something like that
brianwisti: please write one :)
brianwisti Excellent. I know what my next project will be.
dukeleto brianwisti: something like parrotbrew ?
kid51 brianwisti: Open a TT and get to work!
brianwisti googles
dukeleto brianwisti: perlbrew does that for Perl 16:20
brianwisti dukeleto: yep, pretty much
dalek rrot: r49549 | dukeleto++ | trunk/NEWS:
[doc] Update NEWS about String.reverse
dukeleto brianwisti: to get around not having a tool like that I install into the build dir, and then have build dirs lised in my PATH before other /bin dirs 16:21
brianwisti: which also means fiddling with my LD_LIBRARY_PATH to compile against
kid51 dukeleto That approach causes brain damage 16:22
brianwisti Is it kosher to create a TT and assign it to myself? 16:23
dukeleto brianwisti: go for it
kid51: yep, but let me know when have something better 16:24
cotto ~~
dukeleto after the recent change to always build install_config.o, i don't think installing into the build dir is really necessary any more. At least not to build an HLL 16:25
16:25 whiteknight left 16:32 jan joined
cotto brianwisti, ping 16:34
16:35 bacek left
brianwisti cotto: ponged 16:36
dalek rrot: r49550 | jkeenan++ | trunk (2 files):
Provide test of configuration step alternative outcomes.
16:51
17:03 theory left
dalek rrot: r49551 | jkeenan++ | trunk/t/steps/auto/llvm-01.t:
Convert test to more up-to-date testing procedure (Parrot::Configure::Step::Test).
17:06
17:15 allison joined 17:42 theory joined
brianwisti *sigh* I started writing a TT, and now it's halfway to being a README 17:45
kid51 brianwisti: So, open the TT with 1 or 2 sentences, then attach README later when complete. 17:47
17:47 theory left
kid51 afk 17:47
dalek rrot: r49552 | jkeenan++ | branches/tt1824_ipv6_configure (4 files):
Implement kurahaupo++'s patch as configuration step auto::ipv6. Add test file. Update MANIFEST.
17:53
cotto brianwisti, just make to save it to a file in case trac decides to log you out, as it occasionally does.
brianwisti cotto: I extracted the middle of my TT to a text file, then submitted the beginning and end as the actual TT. 17:54
cotto is this about parrotbrew (or whatever you want to call it)? 17:55
17:55 theory joined
cotto yes, it is 17:56
brianwisti yeah. The skeleton I made earlier this morning as called 'parrot-handler', but as it's no more than a module-starter bit and now a README, it can be called whatever.
18:00 silug joined 18:04 theory left, theory joined
dukeleto kid51: how does one get the value of HAS_IPV6 from parrot_config ? It doesn't seem to be a key in there 18:21
kid51 grep -in ipv6 lib/Parrot/Config/Generated.pm 18:22
Note: this is still in branch. 18:23
Untested anywhere except linux.
dukeleto kid51: duh. I was looking for it in trunk. 18:25
kid51: just verifying, i don't have the branch checked out right now: the ipv6 info is available from PIR, too, correct? 18:28
18:31 fperrad left 18:34 silug left 18:40 fperrad joined 18:42 particle left 18:43 pjcj left 18:50 Kulag left
kid51 dukeleto: Yes. grep -in ipv6 lib/Parrot/Config/Generated.pm config_lib.pir 18:57
19:05 kid51 left
dukeleto brianwisti: trac.parrot.org/parrot/ticket/1381 19:07
brianwisti I do like filing tickets then forgetting about them. 19:08
dukeleto brianwisti: i noticed because it was assigned to me :) 19:12
19:38 lucian_ joined 19:40 lucian left 20:02 zostay left, zostay joined 20:06 bacek joined
cotto seen paul_the_greek 20:11
aloha paul_the_greek was last seen in #parrot 16 days 22 hours ago saying "450MB for 6K lines is 75K per line.".
20:38 Kulag joined 20:39 silug joined 20:49 theory left
bacek ~~ 20:59
21:02 mikehh left 21:03 mikehh joined 21:06 dngor left 21:08 mikehh_ joined 21:10 mikehh left
dalek rrot: r49553 | bacek++ | branches/generational_gc/src/gc/gc_ms2.c:
Fix check_sanity function
21:13
rrot: r49554 | bacek++ | branches/generational_gc/src/gc/gc_ms2.c:
Add more checks for GC consistency during mark&sweep
21:18 raek joined 21:41 dngor joined 21:45 AzureStone left 21:46 AzureStone joined
dukeleto hola 21:59
cotto aloh 22:01
brianwisti yo 22:06
22:14 dmalcolm left, Andy left 22:27 fperrad left 22:31 brianwisti left 22:34 theory joined 22:40 rurban_ joined 22:42 tadzik left 22:43 rurban left, rurban_ is now known as rurban 22:45 mikehh_ is now known as mikehh
mikehh opbots, names 22:45
cotto opbots, sandwich 22:49
dukeleto aloha, sudo make me a sandwich 22:59
23:28 davidfetter left 23:45 dngor_ joined 23:46 dngor left 23:52 davidfetter joined 23:54 davidfetter left