Camelia, the Perl 6 bug

IRC log for #parrot, 2008-04-15

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:00 dalek joined #parrot
00:11 dalek joined #parrot
00:18 dalek joined #parrot
00:22 cjfields joined #parrot
00:44 Khisanth joined #parrot
00:46 dalek joined #parrot
00:48 guru joined #parrot
00:49 dalek joined #parrot
00:56 dalek joined #parrot
01:16 gryphon joined #parrot
02:09 contingencyplan joined #parrot
02:11 dalek Jim Keenan | RFP: Parrot Needs Better Smoke Reports:
02:11 dalek link: http://www.perlfoundation.org/parrot/index​.cgi?rfp_parrot_needs_better_smoke_reports
02:11 shorten dalek's url is at http://xrl.us/bfeof
02:53 particle joined #parrot
03:23 Andy joined #parrot
03:31 AndyA joined #parrot
03:41 tetragon joined #parrot
04:28 davidfetter joined #parrot
04:34 Ademan joined #parrot
04:42 skids joined #parrot
04:49 iblechbot joined #parrot
04:55 Psyche^ joined #parrot
05:03 Infinoid not enough hours in the day.  goodnight all
05:26 iblechbot_ joined #parrot
06:11 uniejo joined #parrot
06:39 markus joined #parrot
07:09 wknight8111 joined #parrot
07:09 iblechbot joined #parrot
07:38 skids joined #parrot
08:04 markus_ joined #parrot
08:18 IllvilJa joined #parrot
08:23 cosimo joined #parrot
08:38 kj joined #parrot
09:00 ambs joined #parrot
09:01 markus_ joined #parrot
09:08 ambs joined #parrot
09:15 dalek r26975 | fperrad++ | trunk:
09:15 dalek : [RELEASE]
09:15 dalek : update LANGUAGES_STATUS.pod from languages-smoke results
09:15 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26975
09:15 Senaka joined #parrot
09:16 moritz today is tuesday, right ;)
09:16 Senaka clock
09:16 Senaka purl clock
09:16 purl Senaka: LAX: Tue 2:16am PDT / CHI: Tue 4:16am CDT / NYC: Tue 5:16am EDT / LON: Tue 10:16am BST / BER: Tue 11:16am CEST / IND: Tue 2:46pm IST / TOK: Tue 6:16pm JST / SYD: Tue 7:16pm EST /
09:17 Senaka Coke: ping
09:28 dalek r26976 | fperrad++ | trunk:
09:28 dalek : [RELEASE]
09:28 dalek : update LANGUAGES_STATUS.pod from manual tests
09:28 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26976
09:28 Senaka invoke() not implemented in class 'Undef'
09:28 Senaka any hints on where to search
09:28 moritz Senaka: you're calling a method on an undefined value?
09:29 Senaka moritz: ok
09:29 moritz or perhaps undef as a function pointer?
09:29 moritz just a wild guess, though
09:29 Senaka moritz: t/pmc/nci.t tests fail
09:29 Senaka due to this reason
09:30 Senaka is it possible to debug a test?
09:31 Senaka moritz: ok this test should load a library and do C calls ain't it?
09:32 Senaka what's the library if so? and what the sources in concern?
09:32 Senaka any ideas?
09:32 * purl burps
09:32 moritz library_name = 'libnci_test'
09:32 moritz from the source of the test
09:32 moritz (I'm not familiar with it, though)
09:33 Senaka aha... ok these came with the C++ build
09:33 Senaka I think we need some extern "C" in place
09:34 moritz is C++ build supported? or is that one of the design goals?
09:35 Senaka supposed to be supported... as some compilers are C++
09:35 moritz in the normal build ita doesn't fail
09:35 Senaka no
09:35 Senaka I found the file
09:35 Senaka nci_test.c
09:36 Senaka it doesn't have the extern "C" parts
09:36 Senaka will have them in place
09:39 Senaka moritz: do you knw how to run a single set of tests?
09:39 moritz perl t/pmc/nci.t
09:39 Senaka cool
09:40 moritz not all that shines is magic ;-)
09:45 Senaka mortz: done
09:46 moritz Senaka++
09:47 * moritz always that that you were some greek or roman philosopher, but I think that was 'Seneka'
09:47 Senaka :)
09:48 Senaka well not bad that got 56 tests to pass
09:48 Senaka :)
09:48 Senaka more than 1/3 through
11:39 Senaka left #parrot
11:41 lichtkind joined #parrot
11:55 * Coke yawns
11:59 rotty who is fperrad? and is (s)he on #parrot?
11:59 kj that's francois perrad, maintainer of lua
12:00 kj he's not here usually
12:00 kj *lua on parrot, that is
12:01 rotty anybody on Win32 who has a little time to spare?
12:01 kj i'm about to go afk, but what's your issue?
12:02 * rotty wants to get rid of petite for bootstrapping in favor of chicken scheme
12:03 rotty kj: can you download and install chicken? http://www.call-with-current-continuation.org/
12:04 kj well, like i said, have to go in a minute
12:05 rotty ok. thanks anyway
12:05 kj sorry can't help you right now
12:06 rotty np
12:15 Senaka joined #parrot
12:22 Senaka left #parrot
12:40 rdice joined #parrot
12:55 wknight8111 joined #parrot
13:14 dalek r26977 | fperrad++ | trunk:
13:14 dalek : [PLATFORM]
13:14 dalek : update for mingw gcc3.4.2
13:14 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26977
13:16 TonyC joined #parrot
13:17 nopaste joined #parrot
13:17 skids joined #parrot
13:24 gryphon joined #parrot
13:28 dalek r26978 | coke++ | trunk:
13:28 dalek : [tcl]
13:28 dalek : Remove (now) unecessary vtable override. Probably obsoleted by improvements
13:28 dalek : to the object system.
13:28 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26978
13:29 * Coke waits for that commit to complete.
13:35 rdice joined #parrot
13:36 dalek r26979 | coke++ | trunk:
13:36 dalek : [tcl]
13:36 dalek : Remove (now) unecessary vtable overrides. Probably obsoleted by improvements
13:36 dalek : to the object system.
13:37 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26979
14:03 Andy joined #parrot
15:09 cognominal how do I dump the parrot configuration?
15:10 Infinoid lib/Parrot/Config/Generated.pm
15:14 Coke There's a way to get at it from PIR if you need that.
15:16 cognominal no, I just expected that   parrot -V  dumped it like perl -V does
15:16 cognominal I don't know if it is reasonnable expectation, though
15:23 sjansen joined #parrot
15:23 cjfields joined #parrot
15:27 DarkWolf84 joined #parrot
15:40 Coke I'm out for PS today. $dayjob conflicts.
15:44 Coke (report pasted)
15:47 cognominal coke++ # for the macport
15:49 Infinoid every time Tuesday rolls around, I start wondering if I actually did anything useful
15:56 ambs joined #parrot
16:02 Coke Thankfully, the macport thing hit shortly after the last ps, so I could count it for this week. :|
16:03 Theory joined #parrot
16:04 Coke cognominal: took more perserverance than any technical skill whatsoever.
16:05 markus__ joined #parrot
16:07 Infinoid and some keen insight on the Parrot::Manifest issue
16:10 Coke ENONSEQUITOR?
16:11 cognominal TUR?
16:12 Infinoid oh, RT #52680 was a bizarre piece of fallout from macports
16:12 Infinoid uh, s/52680/52712/
16:12 Infinoid my brain is off today.  I should stop typing.
16:17 cognominal about to get the hash() composer function. The hash composer as a syntactical device will be way more difficult
16:22 cognominal onece the hash() composer done, I will get back on immc.l
16:23 cognominal I prefer to add features than to chase marginal errors
16:26 davidfetter joined #parrot
16:32 particl1 joined #parrot
16:36 particle joined #parrot
16:38 Topic for #parrotis now #parrot Parrot 0.6.1 release happens today | http://parrotcode.org
16:50 particle hey all. anything i should know about the release before i get things started?
16:58 Infinoid let us know if anything breaks
16:59 particle joined #parrot
17:00 moritz don't break anything ;)
17:03 particle :P
17:13 PerlJam particle: the planets are in good alignment for a release  :)
17:15 dalek r26980 | particle++ | trunk:
17:15 dalek : [RELEASE] prep for 0.6.1 release
17:15 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26980
17:17 particle oh, gimme a freakin' break! somebody broke the make release target on windows.
17:18 particle can somebody do a fresh co of r26980, run "make release 0.6.1", and make the tar.gz file available for me?
17:18 Infinoid one moment
17:18 particle er... "make release VERSION=0.6.1"
17:19 moritz doing it now
17:19 particle i'm gonna go for a run, so you've got 30m or so. you could even untar it somewhere else and check it for me
17:19 particle thanks, folks!
17:20 liona29 joined #parrot
17:22 Infinoid particle: https://squawk.glines.org/parrot-0.6.1.tar.gz
17:23 moritz and  http://moritz.faui2k3.org/tmp/parrot-0.6.1.tar.gz once the upload finishes
17:23 moritz which should be 2 mintues
17:23 Infinoid (testing on linux/amd64)
17:24 moritz and testing on linux/32bit (Pentium M)
17:27 particle testing on win32, and running. Infinoid++ moritz++
17:28 particle cya in ~30m
17:28 moritz 11163 OK from 11163 tests (100.00% ok)
17:28 moritz no doing the configure tests
17:28 moritz s/no/now/
17:28 moritz All tests successful, 12 tests and 3 subtests skipped.
17:31 Infinoid All tests successful, 22 tests and 573 subtests skipped.
17:31 Infinoid Files=549, Tests=11164, 350 wallclock secs (178.07 cusr + 58.93 csys = 237.00 CPU)
17:31 paco Parrot 0.6.1   r26980  15 Apr 2008 17:25 Tue  -D40 --gc-debug  4.62 min  99.99 % ok  11186:  11185,  1,  252,  594,  0  «  »
17:34 Infinoid (now testing win32/mingw/strawberry)
17:38 PerlJam Infinoid: do you have a system with just strawberry and one with just mingw and another with both?
17:39 Infinoid no, I am using the mingw that was packaged with strawberry
17:39 purl okay, Infinoid.
17:39 Infinoid purl, I?
17:39 purl rumour has it Infinoid is using the mingw that was packaged with strawberry
17:39 Infinoid smart bot.
17:39 * purl adjusts her glasses and points at her Ph.D.
17:39 PerlJam I seem to recall that parrot didn't play well with mingw in some fashion, but I haven't looked in a while (or nailed down what the exact configuration was)
17:40 ambs purl, I?
17:40 purl well, ambs is Alberto Simoes, one of the organizers of YAPC::EU::2005 and available at mailto:ambs@cpan.org
17:40 PerlJam maybe it was strawberry+cygwin
17:40 Infinoid mingw works reasonably well.  its cygwin that always seems to be broken
17:40 PerlJam (both have mingw)
17:40 PerlJam ah, that was probably it.
17:40 Infinoid hmm, I think cygwin's gcc is totally different from mingw
17:41 * Infinoid <-- mingw32-make -j4
17:45 paco NotFound: hace diez minutos ha salido la version, la ha sacado particle, evidentemente solo esta en svn
17:46 cjfields joined #parrot
17:46 paco upp, sorry, this is for oher channel
17:53 cognominal parrot should support any language :)
17:56 Infinoid one problem with languages-test is, I never know which failures are new.  Maybe it should save the previous output to a logfile and run "diff -u" on it?
17:56 Infinoid (in a languages-test-diff make rule, for example)
17:57 moritz Infinoid: pugs' smoke generates a yaml file, and there's a diff utilty for these yaml thingies as well
17:57 cognominal do we have a test library in Parrot?
17:57 moritz in util/yaml-diff.pl
17:58 Infinoid interesting
17:58 Infinoid there are a few failures on mingw
17:58 Infinoid dunno if any are new.
18:00 Infinoid t/op/arithmetics, t/op/sprintf, t/op/time, t/pmc/complex, t/pmc/float
18:02 rblackwe joined #parrot
18:02 diakopter Infinoid: those were failing for me on cygwin last week
18:03 barney joined #parrot
18:03 Infinoid suppose I should grab a copy of 0.6.0 and see whether they failed there
18:03 diakopter I mean, they were failing on strawberry for me last week.  I never quite got cygwin to smoke.
18:04 Infinoid oh, ok
18:05 diakopter purl, I?
18:05 purl you are the person currently maintaining svnbotl
18:05 Infinoid purl, svnbotl?
18:05 purl svnbotl is a bit labil today, it committed suicide twice today ;)
18:05 diakopter I am the person currently maintaining dalek
18:05 Infinoid no, svnbotl is dead.  Long live dalek!
18:05 purl okay, Infinoid.
18:06 diakopter no, I am the person currently maintaining dalek
18:06 purl okay, diakopter.
18:06 diakopter brilliant bot
18:06 Infinoid purl, I?
18:06 purl i heard Infinoid was using the mingw that was packaged with strawberry
18:06 Infinoid no, I am Mark Glines <mark@glines.org>
18:06 purl okay, Infinoid.
18:07 rotty purl, I?
18:07 purl i don't know, rotty
18:07 rotty no, I am Andreas Rottmann <a.rottmann@gmx.at>
18:07 particle update: still running fulltest, going to breakfast, may be a bit late for #parrotsketch &
18:15 smashz joined #parrot
18:15 smash hello everyone
18:18 barney rotty: Could you make a patch for NEWS, wrt work on Eclectus ?
18:20 ambs smash is alive!!!
18:20 smash ambs: hey
18:22 Infinoid hello smash, you fantastic person you!
18:22 rotty barney: yep
18:23 rotty barney: why is EclectusVector extending ResizablePMCArray -- Scheme vectors are fixed-size
18:24 rotty (still no word on the license issue... :/)
18:24 nopaste "Infinoid" at 96.238.213.50 pasted "0.6.1-pre "languages-test" failures on linux/amd64" (77 lines) at http://nopaste.snit.ch/12697
18:25 Senaka joined #parrot
18:26 barney rotty: Probably some cut & paste effect. I used to look at the PAST generated for Rakudo.
18:30 rotty hmm, would chicken+riaxpander (or some other syntax-rules provider) be a suitable requirement for bootstrapping eclectus on Windows? There is a binary package of chicken for Windows, but to install any egg (like riaxpander) a C compiler is needed -- but that's required anyway for parrot, so I don't see a problem here...
18:31 chromatic joined #parrot
18:32 chromatic #ps time (sorry, long commute to the office today)
18:32 nopaste "Infinoid" at 96.238.213.50 pasted "0.6.1-pre "make test" failures on mingw" (116 lines) at http://nopaste.snit.ch/12698
18:33 chromatic We have to fix that floating point math sometime... but how?
18:34 Infinoid do we have a spec we can point at?
18:35 chromatic As far as I know, our spec is "0.0 can be negative in Parrot".
18:35 chromatic The rest is up to the platform.
18:36 Coke chromatic++
18:36 Infinoid well, that platform doesn't like it
18:37 chromatic Yeah, some of the *BSDs do too.
18:37 chromatic Some of the files in src/platform/math.c, or something like that, do something smart here.
18:37 chromatic Not that I'm waving my arms furiously.
18:38 Coke Infinoid: macport... no, that's a different macport issue.
18:39 smash pmichaud: still interest in adding rakudo to that dumb benchmarking ?
18:40 Coke soz?
18:40 pmichaud smash: yes... I was thinking about writing the p6 versions
18:40 smash pmichaud: i started that already
18:40 ambs smash++ # for benchmarks
18:40 smash pmichaud: but i got stuck, gimme 1 sec
18:41 pmichaud did you see my note on list about showing results in relative instead of absolute terms?
18:41 smash pmichaud: yeap, didn't have time to get to that yet
18:47 barney rotty: did you read ' Getting Commit Privileges' in submissions.pod ?
18:47 Infinoid particle: see scrollback for a couple of nopasted failure reports
18:49 Theory joined #parrot
18:51 cotto_work seen kj
18:51 purl kj was last seen on #parrot 6 hours and 46 minutes ago, saying: sorry can't help you right now
18:57 particle Infinoid: thanks, looking. i have my own, too.
18:57 * particle has some alternate core test failures
18:58 chromatic Which ones?
18:58 particle that's hard to determine, but i'm working on it
18:58 * particle hates fulltest
19:00 particle testr fails:
19:00 particle t/pmc/eval.t           5  1280    17    5  8-10 12-13
19:00 particle t/pmc/orderedhash.t    1   256    28    1  9
19:00 particle testS passes todo:
19:00 particle t/op/debuginfo.t                2    1  8
19:02 chromatic What's -r
19:02 purl well, -r is recurse, -u unified, -N ?? or the boot flag to reconfigure solaris /dev and /devices or "remote" for pkg_add or to run parrot with parrot byte code or a double edge sword or for keyboard cripples
19:03 Infinoid --run-pbc
19:03 * particle thinks it's time to switch the makefile to use --runcore=
19:04 chromatic Maybe in a couple of hours.
19:04 chromatic Isn't that the same as -b?
19:05 * Infinoid is dreaming about running the runcore testsuite in parallel, piping the output of each through a perl script that prefixes each line with "runcore=<char>:"
19:05 particle -b --bounds-checks|--slow-core
19:05 smash pmichaud: debugging p6 code it's not an easy task  :)
19:05 particle -r --run-pbc
19:05 particle -R --runcore CORE
19:06 pmichaud smash:  yes, I know.  Which part is giving you difficulty at the moment?
19:06 chromatic Which platform, particle?
19:06 particle msvc. i'll nopaste
19:06 smash pmichaud: afk 1 sec.. dinner,brb
19:06 particle smash eats quickly
19:08 ambs lol
19:09 nopaste "particle" at 205.172.16.72 pasted "parrot 0.6.1 tarball fulltest output with msvc" (5637 lines) at http://nopaste.snit.ch/12699
19:12 chromatic Those Eval tests bug me a lot.
19:13 particle you're not alone
19:13 chromatic I'm rebuilding (tried to build with g++, badly) to look at them.
19:14 chromatic Everything's fine for me.
19:14 chromatic Grr.
19:14 particle i don't mind letting them fail, honestly. we're not regularly testing the alternate runcores during the month
19:14 particle so it's hard to debug/fix on release day
19:14 chromatic Did you 'make realclean'?
19:15 particle i unpacked the tarball in a new dir
19:15 particle you can use https://squawk.glines.org/parrot-0.6.1.tar.gz
19:16 chromatic It'd certainly be nice to figure out where they started to fail.
19:16 particle how 'bout this. i release as-is, then i'll d/l tags/RELEASE_0_6_0 and run testr
19:17 chromatic Works for me.
19:20 * smash back
19:20 dalek r26981 | particle++ | RELEASE_0_6_1:
19:20 dalek : [RELEASE] tagged 0.6.1 from trunk
19:20 rotty barney: yes, but I don't have done the steps listed there yet (besides the patches thing, probably ;))
19:20 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26981
19:21 rotty barney: waht do you think about requiring chicken and a C compiler on Win32?
19:21 dalek r26982 | particle++ | trunk:
19:21 dalek : [docs] we don't use ssl with svn
19:21 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26982
19:21 Infinoid ./bawk
19:24 particle IWBNI pause used bitcard or openid
19:26 barney rotty: there is no obligation to support Win32, especially as we want to bootstrap in the future
19:27 rotty barney: I just wondered, since fperrad has checked in a patch that again uses petite on Windows
19:27 barney We could ask fperrad if he is willing to keep on testing Win32, check what is easy for him
19:28 Coke particle: uh, yes we do.
19:28 particle we do what?
19:28 Coke (re: ssl/svn)
19:28 particle that didn't work for me
19:28 Infinoid it works for me
19:28 Infinoid the tarball I made from you was from an https: checkout :)
19:28 Infinoid s/from/for/
19:29 particle maybe it was an auth failure
19:29 pmichaud I use https: for all of my checkouts
19:29 particle ok. i use http
19:29 Coke the line in that file wasn't an svn co, but a copy. <shrug> it should work either way: I thought that robrt preferred https.
19:29 particle guess it doesn't matter.
19:29 Coke (why? Iunno)
19:29 Infinoid I think svn needs to be built with libneon for https to work
19:29 pmichaud if you use http:, your password transmits in the clear
19:30 particle i'll revert, then
19:31 dalek r26983 | bernhard++ | trunk:
19:31 dalek : Add E-mail of Fran�ois Perrad in CREDITS.
19:31 dalek : (Should be OK, as it's on his website as well)
19:31 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26983
19:31 * barney used https as well
19:31 * Coke is in a perl conversation where someone drops chromatic's name as a "trophy coder'"
19:32 Coke "I know that guy!"
19:32 chromatic Trophy coder?
19:33 Infinoid you win a chromatic!
19:33 Coke in context, it was who you'd hire if you wanted the cachet of having a big name perl coder on staff.
19:33 chromatic But my name is all lowercase.
19:34 Coke someone mocked the idea of COKE or ROODE as trophy coders, and the guy suggested that since he couldn't get DCONWAY or CHROMATIC.... (apologies on the caps. =-)
19:34 Coke so I am a tier two perl celebrity, apparently.
19:35 Coke B-list.
19:35 Infinoid I don't think I'm even on the list.
19:35 smash hahahahaha
19:35 purl LOLCON 5 reached.
19:35 Coke purl, you funny.
19:35 purl Coke: sorry...
19:35 * smash slaps purl
19:35 purl o/` Hit me baby, one more time o/`
19:36 smash pmichaud: can i use "my $i = shift;" in rakudo ?
19:36 barney rotty: I send fperrad a mail, asking about chicken
19:36 rotty barney: cool, thanks
19:37 chromatic smash, in preference to signature-declared parameters?
19:37 smash i can use those too
19:37 Infinoid particle: looking at the tailed daemon logfile, pause didn't like your https: URL
19:37 * Infinoid moves it to the http: directory.
19:38 particle ah. thanks
19:38 smash chromatic: sub foo($i) { ... } ?
19:38 Infinoid (done)
19:38 particle i was just gonna complain about that
19:38 pmichaud smash:  no, there's no @_
19:38 pmichaud smash:  yes, use   sub foo($i) { ... }
19:38 pmichaud that's the perl6-ish way of stating it
19:38 * smash nods
19:39 smash particle: only one 't/codingstd/trailing_space.t' test failing for tags/RELEASE_0_6_1 (on linux x86)
19:42 chromatic It's Tcl; no one cares.
19:43 dalek r26984 | chromatic++ | trunk:
19:43 dalek : [Tcl] Removed trailing space.
19:43 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26984
19:43 Coke bah. I ran the c_* tests on the pmc updates I did.
19:44 chromatic I enabled some Vim feature that makes tabs and trailing spaces visible.
19:44 Infinoid eclipse has a button for that too.  It rules.
19:45 particle Add a file for PARTICLEFile successfully copied to '/home/ftp/incoming/parrot-0.6.1.tar.gz'
19:47 Infinoid I'm still a couple of days behind on email, but I got to go party at NASA between races, so the long weekend was sooo worth it.
19:49 particle now, for announcements
19:49 Infinoid where can I find the list of milestone tasks?
19:49 particle perlfoundation.org somewhere
19:50 chromatic There's a milestones page on the Parrot wiki on TPF site.
19:51 Coke ROADMAP has a link.
19:51 dalek r26985 | particle++ | trunk:
19:51 dalek : [docs] apparently we do use ssl
19:51 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26985
19:51 dalek r26986 | bernhard++ | trunk:
19:52 dalek : #52932: [PATCH] Eclectus: Use SRFI-9 records
19:52 dalek : Courtesy of rotty.
19:52 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26986
19:52 Infinoid http://www.perlfoundation.org/parr​ot/index.cgi?development_dashboard is funny
19:52 shorten Infinoid's url is at http://xrl.us/bcyyz
19:54 smash Infinoid: milestones @ http://www.perlfoundation.org​/parrot/index.cgi?milestones
19:55 jonathan sorry sorry sorry...completely forgot about parrotsketch tonight!
19:56 dalek r26987 | bernhard++ | trunk:
19:56 dalek : #52934: [PATCH] Eclectus: Support Chicken Scheme
19:56 dalek : Courtesy of rotty.
19:56 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26987
19:56 pmichaud jonathan: it's okay, we just decided to assign you ownership of all outstanding RT tickets :-P
19:56 jonathan Haven't done much in the last week anyway....just random Rakudo bits.
19:56 jonathan Erm...
19:57 smash pmichaud: @ARGV exists ?
19:57 Infinoid all 316512 of them
19:57 pmichaud smash:  @*ARGS
19:57 Infinoid smash: thanks
19:57 jonathan I know our RT queue is big, but... :-)
19:57 jonathan Or is that the number of oustanding sentences of Perl 6 synopses that we have to implement in Rakudo? ;-)
19:57 jonathan particle++ # release
19:58 smash pmichaud: cool, thks
19:59 Infinoid so I guess I should talk to the individual milestone assignees about obtaining a subtask or 5
20:00 ambs pmichaud, why the *, btw?
20:00 dalek r26988 | bernhard++ | trunk:
20:00 dalek : Let svn ignore t/compilers/pct/*.pbc
20:00 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26988
20:00 jonathan ambs: Globals have a * secondary sigil.
20:00 pmichaud ambs:  * indicates a global var
20:00 pmichaud $a   # local $a
20:00 pmichaud $*a    # global $a
20:00 ambs ok, thanks :)
20:01 ambs Perl 6 will be a new language :)
20:01 jonathan $!a # attribute named a :-)
20:01 jonathan And many, many more.
20:01 particle $:)a # happy variable named a
20:01 pmichaud $?a  # compiler-hint variable named 'a'
20:02 pmichaud $+a   #  $a in a caller's context (if declared as 'is context')
20:02 pmichaud etc.
20:02 ambs argh
20:02 jonathan particle: They promised never to do tertiary sigils. Thankfully.
20:02 ambs kill Larry, fast! :)
20:03 particle They lie.
20:03 pmichaud but can we have multi-char sigils?  ;-)
20:03 jonathan Please don't suggest that on p6l...
20:03 particle forget dynamic typing, that's so five minutes ago. let's go for dynamic feeling!
20:03 purl particle, I didn't have anything matching dynamic typing, that's so five minutes ago. let's go for dynamic feeling
20:03 particle $:(a # this variable doesn't contain what i expect
20:04 diakopter forget $:(a
20:04 purl diakopter, I didn't have anything matching $:(a
20:04 pmichaud $:-P   # variable that spits upon your code
20:04 jonathan Thanks to named placeholder params, we actually DO have $:O
20:05 pmichaud and $:P
20:05 Coke anyone happen to have an md5 checksum of the 0.6.1 release?
20:05 jonathan I SO want to implement those now.
20:05 pmichaud or even $:D, @:P
20:05 jonathan Just so I can blog about them on rakudo.org.
20:05 jonathan And use them in lots of example code.
20:05 smash pmichaud: can i use return in subs ?
20:05 pmichaud and even  $=D
20:05 Coke >:|
20:05 jonathan "Perl 6 supprots smiley oriented programming"
20:06 pmichaud smash:  ooo, return doesn't quite work yet.  But it does return the last value of the sub
20:06 pmichaud (er, the value of the last statement in the sub)
20:06 smash pmichaud: that can work
20:06 pmichaud return is high on my list of things to do next
20:06 particle sub sing($:O) { ... }
20:07 particle we can't implement return yet, says allison
20:07 cotto_work joined #parrot
20:07 Coke por que no?
20:07 particle need some parrot enhancements first to exceptions
20:07 Coke ... ok.
20:08 pmichaud I can write one that we then change later, yes?
20:08 Coke I presume that means tcl will have to change how it's implementing it, then.
20:08 Coke (not that there's anything wrong with that.)
20:08 particle pmichaud: if you can get it working with what we have, yes
20:08 particle coke: yep, more target practice
20:08 pmichaud I think there's enough there, as long as throw works
20:08 Coke pmichaud: I'd be happy to point you at the tcl code for dealing with it.
20:09 smash not even $i++ !?
20:09 pmichaud $i++ ought to work
20:09 diakopter Perl 6?
20:09 purl Perl 6 is the spec, rakudo and pugs are two of the implementations.
20:09 Topic for #parrotis now #parrot Parrot 0.6.1 "Bird of Paradise" Released | http://parrotcode.org
20:09 particle coke: feel free to update the website
20:10 smash particle++ # release
20:10 smash pmichaud: roger
20:11 Coke particle: ok, but only if you give me an md5sum of the tarball. =-)
20:11 particle isn't there a way to get parrot to generate one?
20:12 Coke I use the 'md5sum' binary, typically. but I figured you had the .tgz lying about.
20:12 particle C:\usr\local\parrot\release>parrot examples\library\md5sum.pir ..\parrot-0.6.1.tar.gz
20:12 particle 3ae5a5aab989acba8d7be4191986eb67        ..\parrot-0.6.1.tar.gz
20:12 ambs particle, that might take about five minutes to parrot to compute O:-)
20:13 particle took notime
20:13 ambs damn
20:13 ambs >D
20:13 ambs :D
20:13 Coke excellent. now just have to wait for the tarball on capn.
20:14 ambs tr/ap/pa/
20:17 rotty how much time is left before the 0.6.1 release?
20:19 Coke rotty:it's out there.
20:19 rotty oh
20:19 Coke er, it's been *cut*. it will take some small time to be on cpan.
20:19 * Infinoid runs cpan.glines.org's "sync" script by hand
20:19 rotty well, no eclectus news then
20:20 pmichaud it can be news for next release :-)
20:20 Infinoid in the meantime, http://www.glines.org/parrot-0.6.1.tar.gz is the same file, right?
20:22 smash Infinoid: err.. that file's md5sum is not the particle pasted  :-D
20:22 smash s/not the/not the same/
20:22 particle Infinoid: yes
20:23 particle really?
20:23 particle hrmm
20:23 Infinoid hmm
20:23 particle ok, well i'm not sure
20:23 Coke sanity check on: http://www.parrotcode.org/n​ews/2008/Parrot-0.6.1.html
20:23 particle i untarred Infinoid's, then retarred it and ran md5sum
20:23 Coke (md5 sum) don't assume the parrot version matches 'md5sum'.
20:23 Infinoid ah, probably different usernames in the resulting tar then
20:23 particle i'm not sure if Infinoid's url or my file went to cpan
20:24 Coke I will just download it myself and regen it for the port listing.
20:24 smash purl: nopaste ?
20:24 purl nopaste is at http://nopaste.snit.ch/ (ask TonyC for new channels) or http://rafb.net/paste or http://paste.husk.org/ or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/ or don't bother me while I'm eating
20:24 Coke particle: do you have a one line blurb about this release you'd like to see on the front page?
20:24 Coke (ala the one for 0.6.0)
20:24 particle coke: looks good to me
20:25 pmichaud that should be the blurb... "looks good to me."   :-)
20:25 nopaste "smash" at 82.154.73.214 pasted "calculate prime numbers in perl6" (31 lines) at http://nopaste.snit.ch/12700
20:25 smash pmichaud: there it is.. but it's not fair, lacking return
20:26 pmichaud not fair to rakudo or not fair to the others?
20:26 smash not fair to rakudo
20:26 pmichaud just put the second part in an else() clause
20:26 pmichaud ohhhh, I see why
20:27 pmichaud the others have an implied break
20:27 * smash nods
20:27 cjfields joined #parrot
20:27 smash i'll change the others to have the same behaviour
20:27 pmichaud while ($i < $n && $n % $i)
20:28 smash hmm
20:28 Coke website updated. will update the /release/devel link once someone tells me that it's hit cpan.
20:28 Coke (yes, this means that if you try to download 0.6.1 right now, it gives you 0.6.0)
20:29 smash pmichaud: that would mean one more comparision for each cycle in the while statement..
20:29 pmichaud it's the same number of comparisons overall
20:29 pmichaud while ($i < $n && $n % $i) { $i++; }
20:30 pmichaud $res = $i < $n;
20:30 Coke I am tempted to build the perl6 faux-executable and install it with the latest macport. yay, nay?
20:30 chromatic Yay.
20:30 Coke great. now to figure out how to do that.
20:30 pmichaud for that matter, the $i < $n test isn't really needed if we trust our ints
20:33 smash wait.. it's givin' the wrong result
20:33 nopaste "pmichaud" at 76.183.97.54 pasted "very short is_prime for rakudo" (5 lines) at http://nopaste.snit.ch/12701
20:35 pmichaud oops, that last line should be
20:35 pmichaud $i == $n
20:35 smash ok, it's working now
20:37 particle you only need to check for numbers < sqrt($n), no?
20:37 pmichaud probably... but I'm also trying to remain _somewhat_ faithful to the original benchmark
20:37 pmichaud if the other benchmarks use sqrt($n), then this one should :-)
20:37 smash yeap
20:37 smash no other uses sqrt
20:38 smash the are dumb and stupid (programs)
20:38 smash s/the/they/
20:38 * particle thinks it's better to benchmark a smarter program
20:38 particle ...closer to real-world performance
20:39 ambs particle, not always, as some languages make it easier to be smarter than others
20:39 PerlJam pm: (just passing through)  with the extra punctuation, that looks more like perl 5 than perl 6  :)
20:39 pmichaud pj: heh
20:39 pmichaud "I didn't design the language, I just implement it."
20:39 ambs lol
20:39 ambs pmichaud++
20:40 PerlJam particle: what if a particular implementation takes a qhile to compute sqrt($n)?  Then you're benchmarking something else entirely.
20:40 PerlJam s/q/w/
20:40 PerlJam I think KISS works well :)
20:41 PerlJam and with that.... I'm gone
20:41 * PerlJam &
20:41 particle then you've got one poorly optimized compiler
20:42 nopaste "pmichaud" at 76.183.97.54 pasted "faster but still short very short is_prime for rakudo" (6 lines) at http://nopaste.snit.ch/12702
20:42 pmichaud bah
20:42 pmichaud hit 'enter' instead of backspace.  oh well.
20:42 pmichaud afk # gardening
20:43 pmichaud oh, wait, that one won't work.  never mind
20:43 pmichaud change $i == $n to be $i >= $x
20:43 purl pmichaud: that doesn't look right
20:43 pmichaud :-)
20:43 pmichaud purl: yes, that was my point.
20:43 purl pmichaud: what?
21:17 ambs good night
21:17 purl sleep well too
21:22 Infinoid c_indent.t seems buggy
21:22 Infinoid I applied Senaka's patch from RT #52916, and now its complaining because line 1049 does not have 4 blank lines (which will cause trailing_space.t to fail)
21:23 Coke c_indent cares about blank lines?
21:24 Infinoid it shouldn't, but something seems to have confused it this time
21:24 Coke did the patch apply cleanly?
21:24 Infinoid yes, the patch doesn't actually touch line 1049, it just wraps the whole file in an extern "C" {}
21:24 particle s/lines/spaces/ ??
21:25 Infinoid oops, yes.
21:26 Infinoid I'm not really surprised that 'extern "C" {' would bump the indentation... maybe g++ needs a more specific fix for this file
21:28 particle we can set a coding std that extern C doesn't bump indentation... but i'm not sure that's the right answer
21:30 Infinoid its a pretty weird failure.  sounds like library opening fails without extern "C", but I'm not really sure wrapping the file in that is the only way to fix this
21:30 Senaka particle: extern "C" is needed
21:30 Senaka well two ways to do that
21:31 Senaka curly brace around all
21:31 chromatic Can we slap "extern C" in the PARROT_API macro for C++ compilers?
21:31 Senaka or write it per method or something
21:31 Senaka chromatic: +1 if it works
21:31 Senaka but there is an issue like this
21:32 Infinoid Senaka: if I had to guess, the symbols exported by that object are subjected to C++-obfuscation, and thus, the caller can't find the symbol names it wants, right?
21:32 Senaka is PARROT_API there for all methods?
21:32 Senaka yep
21:32 Infinoid is it just methods, or variables too?
21:32 Senaka extern "C" makes it like C
21:32 Senaka basically the compiler wont mangle them
21:32 Senaka so it'll be built using C linkage
21:33 Infinoid is it just methods, or variables too?
21:33 Senaka rather C linkage -> ability to link to C
21:33 particle no, PARROT_API is just for externally visible C subs
21:33 purl okay, particle.
21:33 Senaka methods
21:33 chromatic PARROT_API is on all externally visible symbols.
21:33 particle not all subs
21:33 smash pmichaud: don't think rakudo is ready for benchmarking yet  :-D
21:33 particle smash: do the benchmarks include compiletime?
21:34 Senaka chromatic: OK... where can we prepare the switch?
21:34 Senaka i'll give it a try
21:34 pmichaud smash: why not?
21:34 chromatic See config/gen/config_h/config_h.in
21:35 smash particle: nope
21:35 smash pmichaud: taking to long  :-)
21:35 pmichaud too long to run?
21:35 pmichaud or too long to create the benchmarks?
21:35 smash to run
21:35 pmichaud it's possible, yes.  :-)
21:36 pmichaud and yes, are the benchmarks including compile time costs?
21:36 pmichaud for rakudo that ought to be constant w.r.t. input size
21:36 smash i just run ../../parrot perl6.pbc script.p6
21:36 Senaka chromatic: lets hope it works. Building... :)
21:37 pmichaud smash:  have an example?
21:37 smash example ? i'm running that script to calculate prime numbers
21:37 pmichaud (I don't disagree with you that rakudo might not be ready for benchmarking... still, I'm interested to know the results, even if we don't report them yet :-)
21:38 pmichaud can I see a copy of the script you're running so I can try it on my machine?
21:38 smash of course
21:38 smash but it's pretty much the one we were seeing earlier
21:39 nopaste "smash" at 82.154.73.214 pasted "calculate prime numbers in perl6" (19 lines) at http://nopaste.snit.ch/12703
21:40 Senaka chromatic: nope that fails
21:41 Senaka #define PARROT_API @sym_import@ extern "C"
21:41 leo BTW benchmarks - please do _no_ benchmarking w/o an --optimize'd parrot build - thx
21:41 leo and afk again
21:41 Senaka any other thoughts?
21:41 Senaka infinoid: ping
21:42 Infinoid Senaka: I'm trying to work out the right set of patches to get my build along to the same point you're at
21:42 smash leo: hiya, thks for the tip
21:43 Senaka Infinoid: I did mail them
21:43 leo smash: welcome & greetings to .pt
21:43 Infinoid yeah, finding and applying :)
21:43 pmichaud leo:  is that just adding "--optimize" to Configure.pl ?
21:44 leo last time it was so, yes
21:44 particle --optimized iirc
21:44 pmichaud --optimize according to --help
21:44 smash ok, let me build with optimize too
21:45 leo unoptimized build has far too many asserts an what else to be useful
21:46 leo ... for benchmarking of course
21:46 * smash nods.
21:46 Infinoid Senaka: which email has the patch for src/builtin.c?
21:47 Senaka i don't think that needed patching
21:47 * pmichaud rebuilds parrot, rakudo
21:47 Senaka infinoid: no patch
21:47 nopaste "Infinoid" at 96.238.213.50 pasted "src/builtin.c build error with g++" (4 lines) at http://nopaste.snit.ch/12704
21:48 Infinoid you didn't see that one?  if not, it must be something specific to my system
21:48 pmichaud smash:  what's a good test input size for primes?
21:48 leo another benchmarking hint: turn off any powersaving slowdown features on your OS
21:49 jonathan leo: You in Vienna these days?
21:49 smash pmichaud: i used something like `seq 10000 10000 90000` but that can take a bit
21:49 leo yep
21:49 leo jonathan: hi btw
21:49 jonathan I'm coming to live in Bratislava for the summer.
21:49 Senaka infinoid: confirmation, i don't see such
21:49 Infinoid hmm.
21:49 jonathan So I'm sure I'll be dropping by Vienna now and then. :-)
21:49 Infinoid that makes it hard for me to follow along...
21:50 leo jonathan: I heard of that - see ya at next vienna.pm social soon
21:50 Infinoid I get a similar error in another file:  src/debug.c:1517: error: declaration of 'int PDB_unescape(char*)' throws different exceptions
21:50 Senaka cflags?
21:50 purl cflags is, like, generated before config.h, but needs it
21:50 jonathan Aye, I'm sure I'll be coming for those. :-)
21:51 smash pmichaud: `seq 10000 10000 90000` <-- when running pir/perl, never even finish a 10000 run on rakudo yet
21:51 leo at last social 3 slovakian folks did participate
21:52 pmichaud smash:  I might want to take a look at the generated code then.  1000 run takes 6 seconds on my box
21:52 Senaka Infinoid: what are your CFLAGS?
21:53 leo or slovakian inhabitants to be more precise ;)
21:53 nopaste "Infinoid" at 96.238.213.50 pasted "CFLAGS" (1 line) at http://nopaste.snit.ch/12705
21:53 pmichaud smash:  2000 run takes 26 seconds on my box
21:53 Infinoid hmm, let me split that into multiple lines
21:53 smash pmichaud: let met do 1 run for 2000 here.. 1 sec
21:53 nopaste "Infinoid" at 96.238.213.50 pasted "CFLAGS" (7 lines) at http://nopaste.snit.ch/12706
21:54 Senaka echo CFLAGS?
21:54 Senaka what does it show?
21:54 Senaka echo $CFALGS i guess
21:55 Senaka s/CFALGS/CFLAGS/
21:55 Infinoid nothing... its a Makefile variable, not a shell variable
21:55 pmichaud smash:  3000 --> 68 secs
21:55 * particle heads out to enjoy the tropics
21:56 pmichaud particle: enjoy!
21:56 pmichaud particle++ # release
21:56 Senaka Infinoid: I have these "-g -E -dD"
21:56 pmichaud oh, jeepers
21:56 * leo too  particle++ # release
21:56 pmichaud every assignment in rakudo is now calling !TYPECHECKEDASSIGN, even if it's not needed
21:57 pmichaud *that* will certainly slow things down
21:57 smash pmichaud: 2000, 21.16 seconds
21:57 jonathan Indeed; need to move that stuff into assign vtable override.
21:58 * Senaka wonders whether CFLAGS is the issue
21:58 pmichaud jonathan: well, even then it's going to eat up a lot of time.  Is there a way to compile-time determine that we don't need type-checked assign?
21:58 pmichaud or is type-checking such that we have to dynamically check every variable, even those that aren't explicitly typed?
21:58 jonathan For lexicals, yes.
21:58 jonathan Well, hmm
21:58 moritz are the type checks memoized?
21:59 jonathan Original plan, before the "move to assign" plan, was to just have an "untyped" entry in the block symbol info for that symbol.
22:00 jonathan And if it was untyped, don't bother emitting the call to type-check it.
22:00 * Coke tries to remember how to do a merge.
22:00 jonathan However, moving it to assign, it's tricker to do that. But the check will boil down to checking if there is a %!properties attribute.
22:00 jonathan Or rather, if that attribute has a value.
22:01 jonathan If it comes back null, no checking is needed, go and copy.
22:01 jonathan What we *really* want are lowercase types, for performance.
22:01 jonathan my int $x # maps down to I register
22:02 pmichaud not really (more)
22:02 pmichaud even if "my int $x" maps to I registers for performance, we still lose it all in autoboxing to the operators
22:02 pmichaud (more)
22:02 pmichaud and whether we have 'my int' or not, a simple "my $x"  still needs to be reasonably fast.
22:03 jonathan We needn't autobox to the operators; MMD with signature of int (not in quotes) won't cause that.
22:04 pmichaud does the new mmd proposal support it?  ;-)
22:04 jonathan The trick is avoiding doing excessive lexical lookups.
22:04 pmichaud I don't see a way to avoid the lexical lookups, because of OUTER and CALLER
22:04 jonathan Oh, there are situations where we *have* to do them, for sure.
22:04 pmichaud but we don't know when we don't, do we?
22:05 Coke (I'm glad. this is starting to sound like conversations I had with mdiep on some other HLL. =-)
22:05 pmichaud (maybe if we get real Scalar types we can avoid the extra lexical lookups)
22:05 jonathan If the variable was declared in the current lexical scope, then we know what PMC register it lives in.
22:05 pmichaud except if a called sub rebinds it
22:05 jonathan Sure, across calls we can't do this.
22:06 pmichaud so when do we not have a call?
22:06 jonathan Rarely.
22:06 pmichaud exactly
22:06 jonathan *sigh*
22:07 jonathan Optimization. Hard.
22:07 pmichaud so I don't think avoiding lexical lookups is our answer yet
22:07 pmichaud (but again, having a real Scalar type might mean we can avoid it :-)
22:08 pmichaud anyway, PCT is going to have a flag on it that says "it's okay to re-use the PMC register from a previous lookup"
22:08 jonathan That can still bet re-bound.
22:08 jonathan s/bet/be/
22:08 jonathan In a call.
22:08 pmichaud it can still be re-bound, yes, but then we're rebinding the PMC and not the lexical
22:09 pmichaud oh, wait, maybe not
22:09 pmichaud hrm.
22:09 pmichaud _anyway_
22:09 jonathan sub foo { $CALLER::a := ... }; my $a = ...; foo() # after here $a was rebound
22:10 pmichaud I've thought a bit about optimizations and determined that at-the-moment we don't have a lot of room for them :-(
22:10 pmichaud or I'm just not imaginative enough for them
22:11 jonathan I've pondered them now and then. I pondered a scope-lifting one at one point (if you have no conflicting lexical names you might be able to flatten things a bit...), so loops needn't result in a call per iteration.
22:11 jonathan But I haven't got far enough to working out if/when/how it would work.
22:11 pmichaud and no OUTERs
22:11 jonathan Right.
22:11 jonathan The set of conditoins is *very* specific.
22:11 jonathan But on the other hand, might match a lot of code.
22:11 pmichaud yes, I've thought a bit about that also.  We also have to watch the mapping of $_
22:12 jonathan Yeah. But I fear that's something that generally needs a review in Rakudo - I'm not convinced it's right, or at least I'm certainly not convinced a lot of what I've done is right.
22:12 pmichaud oh, I know that $_ is wrong
22:12 jonathan I did some hack for $/.
22:12 pmichaud it should be a contextual var
22:12 pmichaud so is $/
22:12 pmichaud and $!
22:13 jonathan OK. That will happily make my $/ hack go away when those are done then.
22:13 jonathan Any progress on the roadmap for Rakduo as of yet? Not trying to hurry you, just curious.
22:14 pmichaud I'm wanting to have it for tomorrow-ish
22:14 pmichaud trying to decide if it belongs on the wiki or in the repo
22:15 jonathan It's hackable/tweakable by interested parties in either, though repo has a bit more control over who can tweak it.
22:15 pmichaud I'm not too worried about controlling it
22:16 jonathan OK, then it could really be in either.
22:16 jonathan To me, in the repo makes some sense. There's already a ROADMAP in there now, IIRC.
22:16 pmichaud well, I was thinking perhaps it belongs in ROADMAP (or, really, is just an updated ROADMAP)
22:16 pmichaud and perhaps it goes in docs/
22:17 pmichaud we'll do repo to begin with, then.
22:17 pmichaud I prefer editing in vi(m) to SocialText anyway :-)
22:18 pmichaud for assign, I think that perhaps we should hold off on the assign opcode for a bit, then -- we may need a rethink.  I would like to get it so that we aren't generating a bunch of extra calls for untyped assignments
22:18 pmichaud because that will _really_ slow things down
22:18 jonathan Yeah, agree.
22:19 jonathan The assign approach does make it harder for me to do the opt I had planned on.
22:19 jonathan I'll try and get that in shortly.
22:19 pmichaud I also don't like that Rakudo would use 'assign' where we tend to tell other languages that they'll want to do copy.  Parrot's existing 'assign' opcode is really b0rken (in design) afaict
22:20 jonathan Sure, copy isn't hookable in any cross-language way though.
22:20 pmichaud there's too much overloading and overlap of functionality between 'assign' and 'set'
22:20 pmichaud set $P0, 5    really should be   assign $P0, 5
22:20 jonathan Well, assign's default implementation is to call set, IIRC.
22:21 jonathan That is, at a vtable level.
22:21 pmichaud right.  Unfortunately the various *array types overload it to mean something else
22:22 rotty anybody knowing some code that does more complex things in get_string() ?
22:22 rotty (PMC code, that is)
22:22 chromatic Class PMC
22:24 pmichaud afk for a bit.
22:24 rotty chromatic: was that an answer to my question?
22:24 konobi pmichaud: https://www.socialtext.net/ope​n/index.cgi?wikrad_screencast
22:24 davidfetter joined #parrot
22:24 smash particle: just downloaded parrot-0.6.1.tar.gz from cpan
22:25 smash what's with the "unauthorized release" ?
22:25 smash and what is the correct md5sum on the file !?  :-D
22:25 chromatic Yes, rotty.
22:27 Senaka left #parrot
22:28 Infinoid footnote on the earlier c++ discussion: g++ 4.2.3 fails but 4.1.2 succeeds, and we're thinking its the fault of one of the patches Gentoo applied to my 4.2.3.
22:28 smash i'm off.. catch you all later
22:28 jonathan chromatic: For calling optimization: it occurred to me that if the caller and callee have the exact same signature, then they will both end up referencing the same FixedPMCArray constant specifying the signature. And we can detect that case and do something optimal.
22:28 jonathan For one, we know that there are no flattening or slurpy args, because they are never going to result in the same signatures.
22:28 chromatic Exactly.
22:29 jonathan That could be even cheaper than introspecting the sub.
22:29 chromatic Probably so.
22:30 chromatic What do I pass to Configure to build and link with g++?
22:30 jonathan I'm tempted to stick a counter in my local codebase here to see how often that is the case in, say, the process of compiling actions.pm
22:30 chromatic Do it.
22:30 chromatic My guess is at least 30%.
22:31 Infinoid chromatic: --cc=g++ --link=g++
22:31 chromatic Thanks.  I'm testing the extern thing.
22:31 pmichaud from a Perl 6 perspective, it's likely to be moot, though
22:31 pmichaud well, not completely moot, but moot enough
22:31 chromatic the signature checking, pmichaud?
22:32 pmichaud yes
22:33 pmichaud sub foo( $x, $y) { ... }      foo(:y(1), :x(2));
22:33 Infinoid g++ needs other patches, too.  RT #52874 at least, maybe one or two more.
22:34 skids joined #parrot
22:34 jonathan pmichaud: You'd have to have declared them :$x, :$y for that?
22:34 pmichaud jonathan: no
22:35 pmichaud from S06, "Required parameters"
22:35 pmichaud $comparison = numcmp(2,7);
22:35 pmichaud $comparison = numcmp(x=>2, y=>7);
22:35 pmichaud $comparison = numcmp(y=>7, x=>2);
22:35 pmichaud where numcmp is
22:35 pmichaud sub numcmp ($x, $y) { return $x <=> $y }
22:37 Limbic_Region joined #parrot
22:37 pmichaud afk, dinner
22:37 davidfetter bon apetit
22:41 jonathan chromatic: I did:
22:41 jonathan total_calls++;
22:41 jonathan if (src_signature == dest_signature)
22:41 jonathan opt_calls++;
22:41 jonathan opt_calls is 1527223, total calls is 1555251
22:41 chromatic That's over 30%.
22:42 jonathan It's over 98%.
22:42 jonathan Now I feel like my test data must be wrong or something.
22:42 jonathan :-)
22:42 chromatic It's not surprising.
22:43 jonathan I expected it to be a lot more than 30%, but not quite this high.
22:43 rotty chromatic: what file is that?
22:43 purl i guess file that is getting created is perl6_group.dll ?
22:43 chromatic rotty, jonathan's talking about src/inter_call.c
22:43 Infinoid purl, forget file that
22:43 purl Infinoid: I forgot file that
22:44 rotty chromatic: no, i meant "Class PMC"
22:44 jonathan rotty: src/pmc/class.pmc
22:45 rotty jonathan: thanks
22:45 jonathan I was going to sleep, but I now I'll just lay dreaming about optimizatin...
22:46 jonathan oh, damm
22:46 jonathan total_calls++;
22:46 jonathan if (src_signature == dest_signature && !PMC_IS_NULL(src_signature))
22:46 jonathan opt_calls++;
22:46 jonathan Gives...0.
22:47 jonathan That's odd.
22:49 chromatic Are you sure these are constants?
22:49 chromatic Or at least they're singleton constants?
22:50 jonathan Hang on...
22:50 purl Hang on... is, like, also
22:52 jonathan OK, what I shoulda done was move it after to call to Parrot_init_arg_indexes_and_sig_pmc
22:52 jonathan Then we get opt_calls = 363411, which is only 23%.
22:53 chromatic That seems more sensible.
22:53 jonathan Yeah.
22:53 jonathan 98% rang alarm bells.
22:53 jonathan OK, that may still be worth optimising.
22:55 chromatic If we can avoid creating PMCs in that case, so much the better.
22:55 pmichaud I keep wondering if we could improve things by doing something more Capture-like
22:56 pmichaud although I guess it doesn't help with register args
22:58 tetragon joined #parrot
22:59 Infinoid sushi &
23:00 nopaste joined #parrot
23:05 cognominal joined #parrot
23:20 TonyC joined #parrot
23:28 jonathan chromatic: Got a maybe-optimization that makes it through make...smoking now.

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

Parrot | source cross referenced