% wknight8111 has joined #parrot % iblechbot has joined #parrot % skids has left skids!~bri@c-71-233-204-100.hsd1.ma.comcast.net % skids has joined #parrot % wknight8111 has left wknight8111!~nobody@c-71-230-33-251.hsd1.pa.comcast.net % IllvilJa has left IllvilJa!~jilves@emea-netcache1.oracle.co.uk % markus_ has joined #parrot % markus has left markus!~markus@91-113-25-124.adsl.highway.telekom.at % IllvilJa has joined #parrot % cosimo has joined #parrot % kj has joined #parrot % mj41 has left mj41!chatzilla@pc-jurosz.ro.vutbr.cz % ambs has joined #parrot % markus_ has left markus_!~markus@91-113-23-64.adsl.highway.telekom.at % markus_ has joined #parrot % ambs has left ambs!~ambs@siglab.di.uminho.pt % ambs has joined #parrot r26975 | fperrad++ | trunk: : [RELEASE] : update LANGUAGES_STATUS.pod from languages-smoke results diff: http://www.parrotvm.org/svn/parrot/revision?rev=26975 % Senaka has joined #parrot today is tuesday, right ;) clock purl clock 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 / Coke: ping r26976 | fperrad++ | trunk: : [RELEASE] : update LANGUAGES_STATUS.pod from manual tests diff: http://www.parrotvm.org/svn/parrot/revision?rev=26976 invoke() not implemented in class 'Undef' any hints on where to search Senaka: you're calling a method on an undefined value? moritz: ok or perhaps undef as a function pointer? just a wild guess, though moritz: t/pmc/nci.t tests fail due to this reason is it possible to debug a test? moritz: ok this test should load a library and do C calls ain't it? what's the library if so? and what the sources in concern? any ideas? * purl burps library_name = 'libnci_test' from the source of the test (I'm not familiar with it, though) aha... ok these came with the C++ build I think we need some extern "C" in place is C++ build supported? or is that one of the design goals? supposed to be supported... as some compilers are C++ in the normal build ita doesn't fail no I found the file nci_test.c it doesn't have the extern "C" parts will have them in place moritz: do you knw how to run a single set of tests? perl t/pmc/nci.t cool not all that shines is magic ;-) mortz: done Senaka++ * moritz always that that you were some greek or roman philosopher, but I think that was 'Seneka' :) well not bad that got 56 tests to pass :) more than 1/3 through % Senaka has left #parrot % lichtkind has joined #parrot % skids has left skids!~bri@c-71-233-204-100.hsd1.ma.comcast.net * Coke yawns who is fperrad? and is (s)he on #parrot? that's francois perrad, maintainer of lua he's not here usually *lua on parrot, that is anybody on Win32 who has a little time to spare? i'm about to go afk, but what's your issue? * rotty wants to get rid of petite for bootstrapping in favor of chicken scheme kj: can you download and install chicken? http://www.call-with-current-continuation.org/ well, like i said, have to go in a minute ok. thanks anyway sorry can't help you right now np % Senaka has joined #parrot % Senaka has left #parrot % tetragon has left tetragon!~seneca@216.126.67.44 % rdice has joined #parrot % rdice has left rdice!~richard_d@CPE001217e365c7-CM00159a01d44c.cpe.net.cable.rogers.com % wknight8111 has joined #parrot % TonyC has left TonyC!~tony@202-154-105-237.people.net.au % nopaste has left nopaste!~opaste@202-154-105-237.people.net.au r26977 | fperrad++ | trunk: : [PLATFORM] : update for mingw gcc3.4.2 diff: http://www.parrotvm.org/svn/parrot/revision?rev=26977 % TonyC has joined #parrot % nopaste has joined #parrot % skids has joined #parrot % gryphon has joined #parrot r26978 | coke++ | trunk: : [tcl] : Remove (now) unecessary vtable override. Probably obsoleted by improvements : to the object system. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26978 * Coke waits for that commit to complete. % ambs has left ambs!~ambs@siglab.di.uminho.pt % rdice has joined #parrot r26979 | coke++ | trunk: : [tcl] : Remove (now) unecessary vtable overrides. Probably obsoleted by improvements : to the object system. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26979 % Andy has joined #parrot % davidfetter has left davidfetter!~davidfett@start.fetter.org % uniejo has left uniejo!~uniejo@langebro.adapt.dk how do I dump the parrot configuration? lib/Parrot/Config/Generated.pm There's a way to get at it from PIR if you need that. no, I just expected that parrot -V dumped it like perl -V does I don't know if it is reasonnable expectation, though % sjansen has joined #parrot % cjfields has joined #parrot % DarkWolf84 has joined #parrot I'm out for PS today. $dayjob conflicts. (report pasted) coke++ # for the macport every time Tuesday rolls around, I start wondering if I actually did anything useful % ambs has joined #parrot Thankfully, the macport thing hit shortly after the last ps, so I could count it for this week. :| % Theory has joined #parrot cognominal: took more perserverance than any technical skill whatsoever. % markus__ has joined #parrot % markus_ has left markus_!~markus@91-113-23-64.adsl.highway.telekom.at and some keen insight on the Parrot::Manifest issue % rblackwe has left rblackwe!rblackwe@where.is.allmydata.net ENONSEQUITOR? TUR? oh, RT #52680 was a bizarre piece of fallout from macports uh, s/52680/52712/ my brain is off today. I should stop typing. about to get the hash() composer function. The hash composer as a syntactical device will be way more difficult onece the hash() composer done, I will get back on immc.l I prefer to add features than to chase marginal errors % davidfetter has joined #parrot % markus__ is now known as markus % cjfields has left cjfields!~cjfields@cjfields.life.uiuc.edu % particl1 has joined #parrot % particle has left particle!~particle@c-24-19-3-148.hsd1.mn.comcast.net % particle has joined #parrot % particle has changed the topic of #parrot to: #parrot Parrot 0.6.1 release happens today | http://parrotcode.org % Theory has left Theory!~Theory@c-24-21-175-208.hsd1.or.comcast.net % kj has left kj!~IceChat7@ip565fd420.direct-adsl.nl hey all. anything i should know about the release before i get things started? let us know if anything breaks % particle has left particle!~JGay@205.172.16.72 % particle has joined #parrot don't break anything ;) :P % davidfetter has left davidfetter!~chatzilla@start.fetter.org particle: the planets are in good alignment for a release :) r26980 | particle++ | trunk: : [RELEASE] prep for 0.6.1 release diff: http://www.parrotvm.org/svn/parrot/revision?rev=26980 oh, gimme a freakin' break! somebody broke the make release target on windows. can somebody do a fresh co of r26980, run "make release 0.6.1", and make the tar.gz file available for me? one moment er... "make release VERSION=0.6.1" doing it now 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 thanks, folks! % liona29 has joined #parrot particle: https://squawk.glines.org/parrot-0.6.1.tar.gz % liona29 has left liona29!~liona29@d033.dhcp212-198-248.noos.fr and http://moritz.faui2k3.org/tmp/parrot-0.6.1.tar.gz once the upload finishes which should be 2 mintues (testing on linux/amd64) and testing on linux/32bit (Pentium M) % lichtkind has left lichtkind!~chatzilla@d90-134-11-204.cust.tele2.de testing on win32, and running. Infinoid++ moritz++ cya in ~30m 11163 OK from 11163 tests (100.00% ok) no doing the configure tests s/no/now/ All tests successful, 12 tests and 3 subtests skipped. All tests successful, 22 tests and 573 subtests skipped. Files=549, Tests=11164, 350 wallclock secs (178.07 cusr + 58.93 csys = 237.00 CPU) 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 « » (now testing win32/mingw/strawberry) Infinoid: do you have a system with just strawberry and one with just mingw and another with both? no, I am using the mingw that was packaged with strawberry okay, Infinoid. purl, I? rumour has it Infinoid is using the mingw that was packaged with strawberry smart bot. * purl adjusts her glasses and points at her Ph.D. 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) purl, I? well, ambs is Alberto Simoes, one of the organizers of YAPC::EU::2005 and available at mailto:ambs@cpan.org maybe it was strawberry+cygwin mingw works reasonably well. its cygwin that always seems to be broken (both have mingw) ah, that was probably it. hmm, I think cygwin's gcc is totally different from mingw * Infinoid <-- mingw32-make -j4 NotFound: hace diez minutos ha salido la version, la ha sacado particle, evidentemente solo esta en svn % cjfields has joined #parrot upp, sorry, this is for oher channel parrot should support any language :) 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? (in a languages-test-diff make rule, for example) Infinoid: pugs' smoke generates a yaml file, and there's a diff utilty for these yaml thingies as well do we have a test library in Parrot? in util/yaml-diff.pl interesting there are a few failures on mingw dunno if any are new. t/op/arithmetics, t/op/sprintf, t/op/time, t/pmc/complex, t/pmc/float % rblackwe has joined #parrot Infinoid: those were failing for me on cygwin last week % barney has joined #parrot suppose I should grab a copy of 0.6.0 and see whether they failed there I mean, they were failing on strawberry for me last week. I never quite got cygwin to smoke. oh, ok purl, I? you are the person currently maintaining svnbotl purl, svnbotl? svnbotl is a bit labil today, it committed suicide twice today ;) I am the person currently maintaining dalek no, svnbotl is dead. Long live dalek! okay, Infinoid. no, I am the person currently maintaining dalek okay, diakopter. brilliant bot purl, I? i heard Infinoid was using the mingw that was packaged with strawberry no, I am Mark Glines okay, Infinoid. purl, I? i don't know, rotty no, I am Andreas Rottmann update: still running fulltest, going to breakfast, may be a bit late for #parrotsketch & % smashz has joined #parrot % smashz is now known as smash hello everyone rotty: Could you make a patch for NEWS, wrt work on Eclectus ? smash is alive!!! ambs: hey hello smash, you fantastic person you! barney: yep barney: why is EclectusVector extending ResizablePMCArray -- Scheme vectors are fixed-size (still no word on the license issue... :/) "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 % Senaka has joined #parrot rotty: Probably some cut & paste effect. I used to look at the PAST generated for Rakudo. 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... % chromatic has joined #parrot #ps time (sorry, long commute to the office today) "Infinoid" at 96.238.213.50 pasted "0.6.1-pre "make test" failures on mingw" (116 lines) at http://nopaste.snit.ch/12698 We have to fix that floating point math sometime... but how? do we have a spec we can point at? As far as I know, our spec is "0.0 can be negative in Parrot". The rest is up to the platform. chromatic++ well, that platform doesn't like it Yeah, some of the *BSDs do too. Some of the files in src/platform/math.c, or something like that, do something smart here. Not that I'm waving my arms furiously. Infinoid: macport... no, that's a different macport issue. pmichaud: still interest in adding rakudo to that dumb benchmarking ? soz? smash: yes... I was thinking about writing the p6 versions pmichaud: i started that already smash++ # for benchmarks pmichaud: but i got stuck, gimme 1 sec did you see my note on list about showing results in relative instead of absolute terms? pmichaud: yeap, didn't have time to get to that yet rotty: did you read ' Getting Commit Privileges' in submissions.pod ? particle: see scrollback for a couple of nopasted failure reports % Theory has joined #parrot seen kj kj was last seen on #parrot 6 hours and 46 minutes ago, saying: sorry can't help you right now Infinoid: thanks, looking. i have my own, too. * particle has some alternate core test failures Which ones? that's hard to determine, but i'm working on it * particle hates fulltest testr fails: t/pmc/eval.t 5 1280 17 5 8-10 12-13 t/pmc/orderedhash.t 1 256 28 1 9 testS passes todo: t/op/debuginfo.t 2 1 8 % cjfields has left cjfields!~cjfields@cjfields.life.uiuc.edu What's -r 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 --run-pbc * particle thinks it's time to switch the makefile to use --runcore= Maybe in a couple of hours. Isn't that the same as -b? * 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=:" -b --bounds-checks|--slow-core pmichaud: debugging p6 code it's not an easy task :) -r --run-pbc -R --runcore CORE smash: yes, I know. Which part is giving you difficulty at the moment? Which platform, particle? msvc. i'll nopaste pmichaud: afk 1 sec.. dinner,brb smash eats quickly lol "particle" at 205.172.16.72 pasted "parrot 0.6.1 tarball fulltest output with msvc" (5637 lines) at http://nopaste.snit.ch/12699 Those Eval tests bug me a lot. you're not alone I'm rebuilding (tried to build with g++, badly) to look at them. Everything's fine for me. Grr. i don't mind letting them fail, honestly. we're not regularly testing the alternate runcores during the month so it's hard to debug/fix on release day Did you 'make realclean'? i unpacked the tarball in a new dir you can use https://squawk.glines.org/parrot-0.6.1.tar.gz It'd certainly be nice to figure out where they started to fail. how 'bout this. i release as-is, then i'll d/l tags/RELEASE_0_6_0 and run testr Works for me. * smash back r26981 | particle++ | RELEASE_0_6_1: : [RELEASE] tagged 0.6.1 from trunk barney: yes, but I don't have done the steps listed there yet (besides the patches thing, probably ;)) diff: http://www.parrotvm.org/svn/parrot/revision?rev=26981 barney: waht do you think about requiring chicken and a C compiler on Win32? r26982 | particle++ | trunk: : [docs] we don't use ssl with svn diff: http://www.parrotvm.org/svn/parrot/revision?rev=26982 ./bawk IWBNI pause used bitcard or openid rotty: there is no obligation to support Win32, especially as we want to bootstrap in the future barney: I just wondered, since fperrad has checked in a patch that again uses petite on Windows We could ask fperrad if he is willing to keep on testing Win32, check what is easy for him particle: uh, yes we do. % Andy has left Andy!~AndyL@host3130.follett.com we do what? (re: ssl/svn) that didn't work for me it works for me the tarball I made from you was from an https: checkout :) s/from/for/ maybe it was an auth failure I use https: for all of my checkouts ok. i use http the line in that file wasn't an svn co, but a copy. it should work either way: I thought that robrt preferred https. guess it doesn't matter. (why? Iunno) I think svn needs to be built with libneon for https to work if you use http:, your password transmits in the clear i'll revert, then r26983 | bernhard++ | trunk: : Add E-mail of François Perrad in CREDITS. : (Should be OK, as it's on his website as well) diff: http://www.parrotvm.org/svn/parrot/revision?rev=26983 * barney used https as well * Coke is in a perl conversation where someone drops chromatic's name as a "trophy coder'" "I know that guy!" Trophy coder? you win a chromatic! in context, it was who you'd hire if you wanted the cachet of having a big name perl coder on staff. But my name is all lowercase. 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. =-) so I am a tier two perl celebrity, apparently. B-list. I don't think I'm even on the list. hahahahaha LOLCON 5 reached. purl, you funny. Coke: sorry... * smash slaps purl o/` Hit me baby, one more time o/` pmichaud: can i use "my $i = shift;" in rakudo ? rotty: I send fperrad a mail, asking about chicken barney: cool, thanks smash, in preference to signature-declared parameters? i can use those too particle: looking at the tailed daemon logfile, pause didn't like your https: URL * Infinoid moves it to the http: directory. ah. thanks chromatic: sub foo($i) { ... } ? (done) i was just gonna complain about that smash: no, there's no @_ smash: yes, use sub foo($i) { ... } that's the perl6-ish way of stating it * smash nods particle: only one 't/codingstd/trailing_space.t' test failing for tags/RELEASE_0_6_1 (on linux x86) It's Tcl; no one cares. r26984 | chromatic++ | trunk: : [Tcl] Removed trailing space. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26984 bah. I ran the c_* tests on the pmc updates I did. I enabled some Vim feature that makes tabs and trailing spaces visible. eclipse has a button for that too. It rules. Add a file for PARTICLEFile successfully copied to '/home/ftp/incoming/parrot-0.6.1.tar.gz' 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. now, for announcements where can I find the list of milestone tasks? perlfoundation.org somewhere There's a milestones page on the Parrot wiki on TPF site. ROADMAP has a link. % cognominal has left cognominal!~cognomina@82.67.232.89 r26985 | particle++ | trunk: : [docs] apparently we do use ssl diff: http://www.parrotvm.org/svn/parrot/revision?rev=26985 r26986 | bernhard++ | trunk: : #52932: [PATCH] Eclectus: Use SRFI-9 records : Courtesy of rotty. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26986 http://www.perlfoundation.org/parrot/index.cgi?development_dashboard is funny Infinoid's url is at http://xrl.us/bcyyz Infinoid: milestones @ http://www.perlfoundation.org/parrot/index.cgi?milestones sorry sorry sorry...completely forgot about parrotsketch tonight! r26987 | bernhard++ | trunk: : #52934: [PATCH] Eclectus: Support Chicken Scheme : Courtesy of rotty. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26987 jonathan: it's okay, we just decided to assign you ownership of all outstanding RT tickets :-P Haven't done much in the last week anyway....just random Rakudo bits. Erm... pmichaud: @ARGV exists ? all 316512 of them smash: @*ARGS smash: thanks I know our RT queue is big, but... :-) Or is that the number of oustanding sentences of Perl 6 synopses that we have to implement in Rakudo? ;-) particle++ # release pmichaud: cool, thks so I guess I should talk to the individual milestone assignees about obtaining a subtask or 5 pmichaud, why the *, btw? r26988 | bernhard++ | trunk: : Let svn ignore t/compilers/pct/*.pbc diff: http://www.parrotvm.org/svn/parrot/revision?rev=26988 ambs: Globals have a * secondary sigil. ambs: * indicates a global var $a # local $a $*a # global $a ok, thanks :) % cotto_work has left cotto_work!~cotto@tide534.microsoft.com Perl 6 will be a new language :) $!a # attribute named a :-) And many, many more. $:)a # happy variable named a $?a # compiler-hint variable named 'a' $+a # $a in a caller's context (if declared as 'is context') etc. argh particle: They promised never to do tertiary sigils. Thankfully. kill Larry, fast! :) They lie. but can we have multi-char sigils? ;-) Please don't suggest that on p6l... forget dynamic typing, that's so five minutes ago. let's go for dynamic feeling! particle, I didn't have anything matching dynamic typing, that's so five minutes ago. let's go for dynamic feeling $:(a # this variable doesn't contain what i expect % markus has left markus!~markus@91-113-16-56.adsl.highway.telekom.at forget $:(a diakopter, I didn't have anything matching $:(a $:-P # variable that spits upon your code Thanks to named placeholder params, we actually DO have $:O and $:P anyone happen to have an md5 checksum of the 0.6.1 release? I SO want to implement those now. or even $:D, @:P Just so I can blog about them on rakudo.org. And use them in lots of example code. pmichaud: can i use return in subs ? and even $=D >:| "Perl 6 supprots smiley oriented programming" smash: ooo, return doesn't quite work yet. But it does return the last value of the sub (er, the value of the last statement in the sub) pmichaud: that can work return is high on my list of things to do next sub sing($:O) { ... } we can't implement return yet, says allison % cotto_work has joined #parrot por que no? need some parrot enhancements first to exceptions ... ok. I can write one that we then change later, yes? I presume that means tcl will have to change how it's implementing it, then. (not that there's anything wrong with that.) pmichaud: if you can get it working with what we have, yes coke: yep, more target practice I think there's enough there, as long as throw works pmichaud: I'd be happy to point you at the tcl code for dealing with it. not even $i++ !? $i++ ought to work Perl 6? Perl 6 is the spec, rakudo and pugs are two of the implementations. % particle has changed the topic of #parrot to: #parrot Parrot 0.6.1 "Bird of Paradise" Released | http://parrotcode.org coke: feel free to update the website particle++ # release pmichaud: roger particle: ok, but only if you give me an md5sum of the tarball. =-) % barney has left barney!~bernhard@dslb-084-058-181-251.pools.arcor-ip.net isn't there a way to get parrot to generate one? I use the 'md5sum' binary, typically. but I figured you had the .tgz lying about. C:\usr\local\parrot\release>parrot examples\library\md5sum.pir ..\parrot-0.6.1.tar.gz 3ae5a5aab989acba8d7be4191986eb67 ..\parrot-0.6.1.tar.gz particle, that might take about five minutes to parrot to compute O:-) took notime damn >D :D excellent. now just have to wait for the tarball on capn. tr/ap/pa/ how much time is left before the 0.6.1 release? rotty:it's out there. oh er, it's been *cut*. it will take some small time to be on cpan. * Infinoid runs cpan.glines.org's "sync" script by hand well, no eclectus news then it can be news for next release :-) in the meantime, http://www.glines.org/parrot-0.6.1.tar.gz is the same file, right? Infinoid: err.. that file's md5sum is not the particle pasted :-D s/not the/not the same/ Infinoid: yes really? hrmm hmm ok, well i'm not sure sanity check on: http://www.parrotcode.org/news/2008/Parrot-0.6.1.html i untarred Infinoid's, then retarred it and ran md5sum (md5 sum) don't assume the parrot version matches 'md5sum'. ah, probably different usernames in the resulting tar then i'm not sure if Infinoid's url or my file went to cpan I will just download it myself and regen it for the port listing. purl: nopaste ? 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 particle: do you have a one line blurb about this release you'd like to see on the front page? (ala the one for 0.6.0) coke: looks good to me that should be the blurb... "looks good to me." :-) "smash" at 82.154.73.214 pasted "calculate prime numbers in perl6" (31 lines) at http://nopaste.snit.ch/12700 pmichaud: there it is.. but it's not fair, lacking return not fair to rakudo or not fair to the others? not fair to rakudo just put the second part in an else() clause ohhhh, I see why the others have an implied break * smash nods % cjfields has joined #parrot i'll change the others to have the same behaviour while ($i < $n && $n % $i) hmm website updated. will update the /release/devel link once someone tells me that it's hit cpan. (yes, this means that if you try to download 0.6.1 right now, it gives you 0.6.0) pmichaud: that would mean one more comparision for each cycle in the while statement.. it's the same number of comparisons overall while ($i < $n && $n % $i) { $i++; } $res = $i < $n; I am tempted to build the perl6 faux-executable and install it with the latest macport. yay, nay? Yay. great. now to figure out how to do that. for that matter, the $i < $n test isn't really needed if we trust our ints wait.. it's givin' the wrong result "pmichaud" at 76.183.97.54 pasted "very short is_prime for rakudo" (5 lines) at http://nopaste.snit.ch/12701 oops, that last line should be $i == $n ok, it's working now you only need to check for numbers < sqrt($n), no? probably... but I'm also trying to remain _somewhat_ faithful to the original benchmark if the other benchmarks use sqrt($n), then this one should :-) yeap no other uses sqrt the are dumb and stupid (programs) s/the/they/ * particle thinks it's better to benchmark a smarter program ...closer to real-world performance particle, not always, as some languages make it easier to be smarter than others pm: (just passing through) with the extra punctuation, that looks more like perl 5 than perl 6 :) pj: heh "I didn't design the language, I just implement it." lol pmichaud++ particle: what if a particular implementation takes a qhile to compute sqrt($n)? Then you're benchmarking something else entirely. s/q/w/ I think KISS works well :) and with that.... I'm gone * PerlJam & then you've got one poorly optimized compiler "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 bah hit 'enter' instead of backspace. oh well. afk # gardening oh, wait, that one won't work. never mind change $i == $n to be $i >= $x pmichaud: that doesn't look right :-) purl: yes, that was my point. pmichaud: what? good night sleep well too % ambs has left ambs!~ambs@255.92.54.77.rev.vodafone.pt c_indent.t seems buggy 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) c_indent cares about blank lines? it shouldn't, but something seems to have confused it this time did the patch apply cleanly? yes, the patch doesn't actually touch line 1049, it just wraps the whole file in an extern "C" {} s/lines/spaces/ ?? oops, yes. % gryphon has left gryphon!~gryphon@dsl-209-221-185-54.zipcon.net I'm not really surprised that 'extern "C" {' would bump the indentation... maybe g++ needs a more specific fix for this file % cjfields has left cjfields!~cjfields@cjfields.life.uiuc.edu we can set a coding std that extern C doesn't bump indentation... but i'm not sure that's the right answer % skids has left skids!bri@charon.clarku.edu % rdice has left rdice!~richard_d@CPE0014bfafbbd5-CM0011e6ecf48a.cpe.net.cable.rogers.com 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 particle: extern "C" is needed well two ways to do that curly brace around all Can we slap "extern C" in the PARROT_API macro for C++ compilers? or write it per method or something chromatic: +1 if it works but there is an issue like this 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? is PARROT_API there for all methods? yep is it just methods, or variables too? extern "C" makes it like C basically the compiler wont mangle them so it'll be built using C linkage is it just methods, or variables too? rather C linkage -> ability to link to C no, PARROT_API is just for externally visible C subs okay, particle. methods PARROT_API is on all externally visible symbols. not all subs pmichaud: don't think rakudo is ready for benchmarking yet :-D smash: do the benchmarks include compiletime? chromatic: OK... where can we prepare the switch? i'll give it a try smash: why not? See config/gen/config_h/config_h.in particle: nope pmichaud: taking to long :-) too long to run? or too long to create the benchmarks? to run it's possible, yes. :-) and yes, are the benchmarks including compile time costs? for rakudo that ought to be constant w.r.t. input size i just run ../../parrot perl6.pbc script.p6 chromatic: lets hope it works. Building... :) smash: have an example? example ? i'm running that script to calculate prime numbers (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 :-) can I see a copy of the script you're running so I can try it on my machine? of course but it's pretty much the one we were seeing earlier "smash" at 82.154.73.214 pasted "calculate prime numbers in perl6" (19 lines) at http://nopaste.snit.ch/12703 chromatic: nope that fails #define PARROT_API @sym_import@ extern "C" BTW benchmarks - please do _no_ benchmarking w/o an --optimize'd parrot build - thx and afk again any other thoughts? infinoid: ping Senaka: I'm trying to work out the right set of patches to get my build along to the same point you're at leo: hiya, thks for the tip Infinoid: I did mail them smash: welcome & greetings to .pt yeah, finding and applying :) leo: is that just adding "--optimize" to Configure.pl ? last time it was so, yes --optimized iirc --optimize according to --help ok, let me build with optimize too unoptimized build has far too many asserts an what else to be useful ... for benchmarking of course * smash nods. Senaka: which email has the patch for src/builtin.c? i don't think that needed patching * pmichaud rebuilds parrot, rakudo infinoid: no patch "Infinoid" at 96.238.213.50 pasted "src/builtin.c build error with g++" (4 lines) at http://nopaste.snit.ch/12704 you didn't see that one? if not, it must be something specific to my system smash: what's a good test input size for primes? another benchmarking hint: turn off any powersaving slowdown features on your OS leo: You in Vienna these days? pmichaud: i used something like `seq 10000 10000 90000` but that can take a bit yep jonathan: hi btw I'm coming to live in Bratislava for the summer. infinoid: confirmation, i don't see such hmm. So I'm sure I'll be dropping by Vienna now and then. :-) that makes it hard for me to follow along... jonathan: I heard of that - see ya at next vienna.pm social soon I get a similar error in another file: src/debug.c:1517: error: declaration of 'int PDB_unescape(char*)' throws different exceptions cflags? cflags is, like, generated before config.h, but needs it Aye, I'm sure I'll be coming for those. :-) pmichaud: `seq 10000 10000 90000` <-- when running pir/perl, never even finish a 10000 run on rakudo yet at last social 3 slovakian folks did participate smash: I might want to take a look at the generated code then. 1000 run takes 6 seconds on my box Infinoid: what are your CFLAGS? or slovakian inhabitants to be more precise ;) "Infinoid" at 96.238.213.50 pasted "CFLAGS" (1 line) at http://nopaste.snit.ch/12705 smash: 2000 run takes 26 seconds on my box hmm, let me split that into multiple lines pmichaud: let met do 1 run for 2000 here.. 1 sec "Infinoid" at 96.238.213.50 pasted "CFLAGS" (7 lines) at http://nopaste.snit.ch/12706 echo CFLAGS? what does it show? echo $CFALGS i guess s/CFALGS/CFLAGS/ nothing... its a Makefile variable, not a shell variable smash: 3000 --> 68 secs * particle heads out to enjoy the tropics particle: enjoy! particle++ # release Infinoid: I have these "-g -E -dD" oh, jeepers * leo too particle++ # release every assignment in rakudo is now calling !TYPECHECKEDASSIGN, even if it's not needed *that* will certainly slow things down pmichaud: 2000, 21.16 seconds Indeed; need to move that stuff into assign vtable override. * Senaka wonders whether CFLAGS is the issue 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? or is type-checking such that we have to dynamically check every variable, even those that aren't explicitly typed? For lexicals, yes. Well, hmm are the type checks memoized? Original plan, before the "move to assign" plan, was to just have an "untyped" entry in the block symbol info for that symbol. And if it was untyped, don't bother emitting the call to type-check it. * Coke tries to remember how to do a merge. 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. Or rather, if that attribute has a value. If it comes back null, no checking is needed, go and copy. What we *really* want are lowercase types, for performance. my int $x # maps down to I register not really (more) even if "my int $x" maps to I registers for performance, we still lose it all in autoboxing to the operators (more) and whether we have 'my int' or not, a simple "my $x" still needs to be reasonably fast. We needn't autobox to the operators; MMD with signature of int (not in quotes) won't cause that. does the new mmd proposal support it? ;-) The trick is avoiding doing excessive lexical lookups. I don't see a way to avoid the lexical lookups, because of OUTER and CALLER Oh, there are situations where we *have* to do them, for sure. but we don't know when we don't, do we? (I'm glad. this is starting to sound like conversations I had with mdiep on some other HLL. =-) (maybe if we get real Scalar types we can avoid the extra lexical lookups) If the variable was declared in the current lexical scope, then we know what PMC register it lives in. except if a called sub rebinds it Sure, across calls we can't do this. so when do we not have a call? Rarely. exactly *sigh* Optimization. Hard. so I don't think avoiding lexical lookups is our answer yet (but again, having a real Scalar type might mean we can avoid it :-) 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" That can still bet re-bound. s/bet/be/ In a call. it can still be re-bound, yes, but then we're rebinding the PMC and not the lexical oh, wait, maybe not hrm. _anyway_ sub foo { $CALLER::a := ... }; my $a = ...; foo() # after here $a was rebound I've thought a bit about optimizations and determined that at-the-moment we don't have a lot of room for them :-( or I'm just not imaginative enough for them 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. But I haven't got far enough to working out if/when/how it would work. and no OUTERs Right. The set of conditoins is *very* specific. But on the other hand, might match a lot of code. yes, I've thought a bit about that also. We also have to watch the mapping of $_ 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. oh, I know that $_ is wrong I did some hack for $/. it should be a contextual var so is $/ and $! OK. That will happily make my $/ hack go away when those are done then. Any progress on the roadmap for Rakduo as of yet? Not trying to hurry you, just curious. I'm wanting to have it for tomorrow-ish trying to decide if it belongs on the wiki or in the repo It's hackable/tweakable by interested parties in either, though repo has a bit more control over who can tweak it. I'm not too worried about controlling it OK, then it could really be in either. To me, in the repo makes some sense. There's already a ROADMAP in there now, IIRC. well, I was thinking perhaps it belongs in ROADMAP (or, really, is just an updated ROADMAP) and perhaps it goes in docs/ % iblechbot has left iblechbot!~iblechbot@ppp-62-216-199-214.dynamic.mnet-online.de we'll do repo to begin with, then. I prefer editing in vi(m) to SocialText anyway :-) 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 because that will _really_ slow things down Yeah, agree. The assign approach does make it harder for me to do the opt I had planned on. I'll try and get that in shortly. 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 Sure, copy isn't hookable in any cross-language way though. there's too much overloading and overlap of functionality between 'assign' and 'set' set $P0, 5 really should be assign $P0, 5 Well, assign's default implementation is to call set, IIRC. That is, at a vtable level. right. Unfortunately the various *array types overload it to mean something else anybody knowing some code that does more complex things in get_string() ? (PMC code, that is) Class PMC afk for a bit. chromatic: was that an answer to my question? pmichaud: https://www.socialtext.net/open/index.cgi?wikrad_screencast % davidfetter has joined #parrot particle: just downloaded parrot-0.6.1.tar.gz from cpan what's with the "unauthorized release" ? Yes, rotty. and what is the correct md5sum on the file !? :-D % Senaka has left #parrot 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. i'm off.. catch you all later 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. For one, we know that there are no flattening or slurpy args, because they are never going to result in the same signatures. Exactly. % smash has left smash!~smash@gil.di.uminho.pt That could be even cheaper than introspecting the sub. Probably so. What do I pass to Configure to build and link with g++? 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 Do it. My guess is at least 30%. chromatic: --cc=g++ --link=g++ Thanks. I'm testing the extern thing. from a Perl 6 perspective, it's likely to be moot, though well, not completely moot, but moot enough the signature checking, pmichaud? yes sub foo( $x, $y) { ... } foo(:y(1), :x(2)); g++ needs other patches, too. RT #52874 at least, maybe one or two more. % skids has joined #parrot pmichaud: You'd have to have declared them :$x, :$y for that? jonathan: no from S06, "Required parameters" $comparison = numcmp(2,7); $comparison = numcmp(x=>2, y=>7); $comparison = numcmp(y=>7, x=>2); where numcmp is sub numcmp ($x, $y) { return $x <=> $y } % Limbic_Region has joined #parrot afk, dinner bon apetit chromatic: I did: total_calls++; if (src_signature == dest_signature) opt_calls++; opt_calls is 1527223, total calls is 1555251 That's over 30%. It's over 98%. Now I feel like my test data must be wrong or something. :-) It's not surprising. I expected it to be a lot more than 30%, but not quite this high. chromatic: what file is that? i guess file that is getting created is perl6_group.dll ? rotty, jonathan's talking about src/inter_call.c purl, forget file that Infinoid: I forgot file that chromatic: no, i meant "Class PMC" rotty: src/pmc/class.pmc jonathan: thanks I was going to sleep, but I now I'll just lay dreaming about optimizatin... oh, damm total_calls++; if (src_signature == dest_signature && !PMC_IS_NULL(src_signature)) opt_calls++; Gives...0. That's odd. Are you sure these are constants? Or at least they're singleton constants? Hang on... Hang on... is, like, also % nopaste has left nopaste!~opaste@202-154-105-237.people.net.au % TonyC has left TonyC!~tony@202-154-105-237.people.net.au OK, what I shoulda done was move it after to call to Parrot_init_arg_indexes_and_sig_pmc Then we get opt_calls = 363411, which is only 23%. That seems more sensible. Yeah. 98% rang alarm bells. OK, that may still be worth optimising. If we can avoid creating PMCs in that case, so much the better. I keep wondering if we could improve things by doing something more Capture-like although I guess it doesn't help with register args % tetragon has joined #parrot sushi & % nopaste has joined #parrot % cognominal has joined #parrot % TonyC has joined #parrot chromatic: Got a maybe-optimization that makes it through make...smoking now. % cognominal has left cognominal!~cognomina@m34.net81-67-172.noos.fr % lathos has left lathos!~simon@morison.arjam.net % silug has left silug!~steve@ppp-70-225-32-179.dsl.covlil.ameritech.net r26989 | coke++ | type_ids: : Merge changes from trunk -r:26762:26988 to type_ids branch. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26989 % sjansen has left sjansen!~sjansen@hq-nat2.gurulabs.com % davidfetter has left davidfetter!~chatzilla@start.fetter.org r26990 | coke++ | type_ids: : Remove usage of integer types. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26990 % silug has joined #parrot r26991 | coke++ | type_ids: : Update all usages of ".const .foo" to ".const 'foo'" diff: http://www.parrotvm.org/svn/parrot/revision?rev=26991 % silug has left silug!~steve@ppp-70-225-32-179.dsl.covlil.ameritech.net % kid51 has joined #parrot Why is http://search.cpan.org/~particle/parrot-0.6.1/ labelled an UNAUTHORIZED RELEASE? same reason it usually is, no doubt, module permissions. ... a fact which means that when you search for Parrot, 0.6.0 still comes up first in search results. This kept us from using 0.6.1 at Parrot build fest in NYC tonight. What do we have to do to make it authorized? you couldn't just download the latest version? ... the same thing we always have to do. this is not an uncommon occurrence. I just don't remember off the top of my head. If 0.6.1 had been cleanly available, we could have had everybody work on the same version. docs/project/pause_guide.pod Is particle not a member of PARROTRE? We probably added modules that need permissions. http://www.parrotcode.org/release/devel has been updated to point to 0.6.1 I don't want to suggest that this is a big problem. It just so happens that both release day and perlsemny fall on the 3rd Tuesday of the month. And when people started to come in to the meeting and go to our home page, they saw announcements that said that 0.6.1 was already out -- when in fact there was no way for José Average User to get it yet. kid51: there is usually a small delay between the announcement and it even hitting CPAN. (which is separate from this issue.) I understand. I guess I'm more accustomed to the situation where the release goes out late Tuesday evening/early Wed morning -- so that most people are not aware of these little gaps. r26992 | jkeenan++ | trunk: : Add a semicolon to evade failure to detect Perl::Critic. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26992 % Theory has left Theory!~Theory@c-24-21-175-208.hsd1.mn.comcast.net r26993 | jkeenan++ | trunk: : Additional test file (misnamed). diff: http://www.parrotvm.org/svn/parrot/revision?rev=26993 r26994 | jkeenan++ | trunk: : New test file -- now correctly named. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26994 r26995 | jkeenan++ | trunk: : Modifying test files for auto::macports. Deleting one misnamed file." diff: http://www.parrotvm.org/svn/parrot/revision?rev=26995 r26996 | jkeenan++ | trunk: : Correct references to file name inside file. Correct POD description of file's purpose. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26996 % cognominal has joined #parrot % guru has joined #parrot r26997 | jkeenan++ | trunk: : Additional test file for auto::macports. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26997 r26998 | jkeenan++ | trunk: : Fix bug in auto::macports identified at Perl Seminar NY build fest by Jim : Anderson: case where there is no /opt/local/ directory yet. Add 3 additional : test files to exercise this case. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26998 % kid51 is now known as kid51_afk Three test files to exercise a single case? r26999 | rgrjr++ | trunk: : * examples/pir/hanoi.pir: : + Check size, other tweaks. Patch courtesy of Senaka Fernando. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26999 % guru has left guru!~guru@bas3-toronto02-1279612858.dsl.bell.ca % Limbic_Region has left Limbic_Region!~Limbic_Re@c-68-49-236-220.hsd1.md.comcast.net % teknomunk_ has left teknomunk_!~teknomunk@ubuntubob.residential.okstate.edu % wknight8111 has left wknight8111!~nobody@c-71-230-33-251.hsd1.pa.comcast.net % teknomunk has joined #parrot % kakashi_ has joined #parrot % AndyA has left AndyA!~andy@82.152.157.85 % kid51_afk has left kid51_afk!~jkeen@68.237.17.46 % AndyA has joined #parrot % silug has joined #parrot % silug has left silug!~steve@ppp-70-225-32-179.dsl.covlil.ameritech.net % tetragon has left tetragon!~seneca@69-196-138-185.dsl.teksavvy.com % kakashi_ has left kakashi_!~kakashise@mnit.ac.in % tetragon has joined #parrot % jjore is now known as zz_jjore % zz_jjore is now known as jjore NQP question: Can I bind portions of $/ with $ := $bar ? Does that work as if $bar had been matched? % Psyche^ has joined #parrot % Patterner has left Patterner!~Psyche@e177228155.adsl.alicedsl.de % Psyche^ is now known as Patterner r27000 | duff++ | trunk: : [rakudo] conditional modifier + loop modifier diff: http://www.parrotvm.org/svn/parrot/revision?rev=27000 % silug has joined #parrot % Senaka has joined #parrot % Senaka has left #parrot % chromatic has left chromatic!~chromatic@sub17-30.member.dsl-only.net % uniejo has joined #parrot