Camelia, the Perl 6 bug

IRC log for #parrot, 2008-12-17

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 r33997 | particle++ | trunk:
00:00 dalek : [RELEASE] PLATFORMS updates for strawberry and msvc -- all tests successful
00:00 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33997
00:00 jonathan purl, november?
00:00 purl i guess november is at http://www.november-wiki.org/ or http://use.perl.org/~masak/journal/37212
00:00 Whiteknight okay, do we have any more commits or updates outstanding?
00:01 jonathan Oh! I get I know what's wrong...
00:02 chromatic I have a quick PDD edit, and I'm trying to fix the Darwin segfault.
00:02 Whiteknight okay, I'll wait till after Simpsons
00:03 eric256 night all
00:03 eric256 left #parrot
00:03 lathos No DBDI in November yet then?
00:06 dalek r33998 | chromatic++ | trunk:
00:06 dalek : [PDD] Updated link to IBM's decimal arithmetic library (thanks to Geraud for
00:06 dalek : finding its new location).
00:06 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33998
00:06 chromatic Ha, that page links to our PDD.
00:08 Whiteknight I wonder if the book should even mention the wonders of our Asynchronous IO system if we're not even planning to have it until 2.0
00:08 jonathan moritz: Still about?
00:09 AndyA joined #parrot
00:11 Whiteknight okay...now anybody have any changes to commit?
00:12 dalek r33999 | tewk++ | trunk:
00:12 dalek : [js] NEWS
00:12 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33999
00:12 chromatic Still working on that segfault.
00:12 Whiteknight ...answers my question
00:12 chromatic Will update news.
00:12 chromatic ... and can't reproduce the segfault on Linux.
00:22 dalek r34000 | chromatic++ | trunk:
00:22 dalek : [distro] Updated NEWS.
00:22 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=34000
00:24 chromatic We'll call this good for now.
00:24 chromatic I'm set.
00:25 dalek r34001 | chromatic++ | trunk:
00:25 dalek : [t] Marked RT #60926 known-failing IMCC macro test as TODO on Darwin platforms.
00:25 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=34001
00:27 dalek r34002 | jonathan++ | rakudoreg:
00:27 dalek : [rakudo] This patch is an attempt to fix the issue with November; expect I'll back this out and do it a better way if it does fix it.
00:27 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=34002
00:28 Whiteknight okay, any other stoppers?
00:28 leto joined #parrot
00:29 chromatic I'm good.
00:29 particle +1
00:29 purl 1
00:32 Whiteknight IT HAS BEGUN!
00:32 dalek r34003 | Whiteknight++ | RELEASE_0_8_2:
00:32 dalek : Starting release 0.8.2
00:32 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=34003
00:32 Tene Quick, break the build!
00:33 Whiteknight neener neener, I've already got the branch set up
00:35 idemal joined #parrot
00:36 Tene I can commit to a branch.
00:36 cotto +1
00:36 purl 1
00:36 * jonathan handcuffs Tene
00:36 * Tene types with his toes.
00:36 cotto tene++
00:38 Tene Okay, the next big thing I need to remember to work on is preventing exceptions thrown from an exception handler from being caught by that handler.
00:38 Tene I'm pretty sure I know how ot do it, too.
00:38 Tene but, maybe when I get home.
00:40 chromatic That should fix some things.
00:43 cotto and now to fix 6 Coverity defects with one swell foop...
00:44 dalek r34004 | cotto++ | trunk:
00:44 dalek : [imcc] removed unused (and probably buggy) multi_keyed function
00:44 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=34004
00:47 pmichaud hello all
00:47 purl It's a crazy world, but hello to you too!
00:50 jonathan w/b pm
00:58 * Whiteknight is getting cramps in his fingers
01:01 GeJ moritz: still here?
01:01 purl rumour has it here is just defining a default value. It's just parameter syntax, but types, not variables
01:09 Whiteknight purl forget here
01:09 purl Whiteknight, I didn't have anything matching here
01:09 Whiteknight here?
01:09 Whiteknight still here?
01:10 Whiteknight here??
01:10 Whiteknight ...stupid bo...
01:10 Whiteknight or bot
01:11 pmichaud someone might've removed it via /msg
01:11 idemal joined #parrot
01:13 TiMBuS is there a pasttype that checks if a pmc is null?
01:13 jonathan no, but there may be a :pirop
01:14 TiMBuS ill take a look at the pirop list then
01:14 jonathan ifnull I think is the op name.
01:14 pmichaud isnull
01:14 pmichaud ifnull is "branch if null"
01:14 jonathan Ah, yes.
01:15 TiMBuS oh ok, thanks :>
01:15 pmichaud :pirop('isnull') works.
01:16 TiMBuS i figured it was about time i had a better error message than 'null pmc access in name()'
01:16 pmichaud yeah, change it to "General Protection Fault"
01:18 jonathan No, no, it's called an Illegal Operation now! ;-)
01:18 TiMBuS i was thinking something even more ambiguous, like 'something went wrong' :p
01:18 pmichaud "boom"
01:18 TiMBuS haha
01:18 pmichaud "oops occured in name()"
01:18 TiMBuS an ascii version of the mac error bomb
01:19 pmichaud "parrot had a boo-boo"
01:32 dalek r34005 | Whiteknight++ | RELEASE_0_8_2:
01:32 dalek : Updating things for release
01:32 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=34005
01:37 yjh joined #parrot
01:38 GeJ no mention of the SQLite binding?
01:38 * GeJ re-reads
01:40 lathos I'm currently playing with it a bit in my private repository, so I'm happy for it not to be announced quite yet.
01:41 GeJ oh, ok.
01:41 lathos I'd like to see another set of bindings there (a) so it's really DBDI and not SQLite, and (b) to check that things are abstracted correctly.
01:43 lathos Also I'm not sure whether or not to rewrite it using NCI.pm
01:43 Limbic_Region joined #parrot
02:02 Whiteknight make fulltest takes forever!
02:02 chromatic Not if you have an infinite number of parallel universes.
02:02 Whiteknight hold on, I might have them in the closet
02:02 Whiteknight ...nope
02:02 jonathan chromatic: Aren't we making assumptions about countability of infinities here?
02:02 lathos Can you use EC2 as a simulation?
02:03 chromatic You don't have to count them, just dispatch to them.
02:04 Whiteknight on the bright side, it's a really simple dispatch algorithm
02:05 Whiteknight ...if you have lazy lists anyway
02:05 tetragon joined #parrot
02:08 lathos "It also assumes that destroying the universe is O(n) in operation."
02:09 dalek r34006 | Whiteknight++ | RELEASE_0_8_2:
02:09 dalek : release 0.8.2
02:09 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=34006
02:10 Whiteknight chromatic, you still here?
02:11 chromatic Yes.
02:11 Whiteknight can you upload the tarball to cpan?
02:11 chromatic Sure.  Have a URL?
02:12 Whiteknight no, email?
02:12 lathos Whiteknight++
02:12 chromatic Email's likely very slow.
02:12 chromatic Did you do the FTP upload to parrot.org?
02:13 Whiteknight oh no, I missed that step
02:13 * Whiteknight is a doofus
02:13 Whiteknight back in a bit!
02:13 chromatic It's a new step.
02:13 MariachiElf joined #parrot
02:14 LimbicRegion joined #parrot
02:14 Whiteknight how do I do it? I can't find it in the release guide?
02:15 jonathan In that case you're not a ddoofus... :-)
02:15 Whiteknight you say that as if being a doofus is a bad thing
02:16 chromatic It's under 8.b.
02:16 LR joined #parrot
02:17 Whiteknight haha, my print out is old
02:20 Whiteknight urg, I don't have a login at ftp-osl.osuosl.org
02:20 chromatic particle, ping
02:20 * Whiteknight hates ssh
02:23 pmichaud particle @ seattle.pm
02:42 lathos Yay Christmas parrot
02:45 Topic for #parrotis now Parrot 0.8.2 Feliz Loro Released | http://parrot.org | 45 TT | 538 RT
02:48 Whiteknight urg, perlfoundation wiki appears to be down
02:48 Whiteknight or, it's giving an error for me
02:58 Whiteknight my trac password isn't working
03:01 Whiteknight ENOLOGIN
03:05 Whiteknight okay, that part of the checklist just isn't getting done tonight
03:06 particle1 joined #parrot
03:06 particle1 ESOMEONEBOTHEREDME
03:06 chromatic EFGHIJKLMNOP
03:06 particle1 WHAT!?!?! i'm righting a lightning talk. it got drunk and fell over.
03:07 Whiteknight particle, I need to upload the greaseball to the ftp doodad, and the trac thingy is borked
03:07 Whiteknight after you're done righting it, you could write it perhaps
03:08 Whiteknight :)
03:10 particle1 ok, it's sftp
03:11 kid51 joined #parrot
03:12 particle1 ...and it doesn't like my password(s)
03:12 particle1 argh. somebody wake the allison.
03:13 chromatic ENOALLISON
03:13 Whiteknight where does she live?
03:13 particle1 she's somewhere on the left coast
03:14 chromatic In theory.
03:14 purl in theory is probably my pants or it's too dark to read or somewhat intrusive to David Wheeler or RAILS DEFECTOR! BREAK OUT THE SANDY LUBE!
03:14 Whiteknight left coast and already asleep? Isn't it about 7 over there?
03:14 particle1 i don't think i can get a hold of lance or the other osuosl folks atm
03:14 Whiteknight so it's all on hold till tomorrow. w0t
03:14 Whiteknight or w00t
03:15 particle1 is it headed to cpan?
03:15 tetragon joined #parrot
03:15 chromatic It needs a URL first.
03:16 Whiteknight Well, I'm heading to bed now. I will try things again in the early morning
03:17 particle1 Whiteknight++
03:17 Whiteknight thanks! Goodnight gentlement
03:17 Whiteknight ETOOPIDFINGERS
03:24 dalek r34007 | tewk++ | trunk:
03:24 dalek : [subid] remove backwards compat lookup via sub name
03:24 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=34007
03:36 Hadi joined #parrot
03:36 Hadi left #parrot
03:36 tewk pmichaud: ping
03:36 pmichaud pong.
03:38 tewk pmichaud: I'm trying to make methods and vtables not be in the namespace by default
03:38 tewk I'm getting a bulding PGE error, wondered if you could give be some ideas
03:38 tewk nopastes coming.
03:39 pmichaud I'm not too surprised that PGE might give an error
03:39 tewk right, I just want some help pointing me in the right direction.
03:40 nopaste "tewk" at 155.97.237.62 pasted "error_message" (13 lines) at http://nopaste.snit.ch/14982
03:40 nopaste "tewk" at 155.97.237.62 pasted "code_changes.diff" (31 lines) at http://nopaste.snit.ch/14983
03:43 pmichaud easiest would be to have PGE generate :nsentry on the subs so that they do go into the namespace, yes?
03:45 tewk don't we want subs without nsentry to go into the namespace with the sub name?
03:45 dalek r34008 | cotto++ | trunk:
03:45 dalek : [string] Add a (fixed) per-interp hash seed and remove the seed arg from string_hash().
03:45 dalek : This patch removes the possibility of causing strange failures by calling string_hash with a strange seed.
03:45 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=34008
03:45 pmichaud all of the subs that PGE generates are :method
03:45 pmichaud which means they don't go into the namespace by default
03:46 pmichaud :nsentry( )  would put them back there, which is fine.
03:46 tewk they yes they should have :"nsentry
03:46 nopaste "pmichaud" at 72.181.176.220 pasted "patch for PGE :nsentry" (22 lines) at http://nopaste.snit.ch/14984
03:46 tewk :nsentry will default to use the sub name as
03:46 pmichaud try that patch.  It passes all of the PGE tests
03:46 pmichaud (I didn't try other tests)
03:47 pmichaud See if that gets you farther on the build (it should)
03:47 tewk thanks
03:47 pmichaud trac.parrot.org is giving me "Internal Server Error"
03:48 dalek r34009 | jkeenan++ | trunk:
03:48 dalek : Remove configuration probe for asynchronous input/output per architect's instruction in RT 57920.  Remove associated test file and reference to auto::aio in list of configuration steps, dummy files used in testing, etc.
03:48 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=34009
04:08 chromatic That bit about the theme song by Brian Eno was my idea.
04:08 chromatic Just so you don't blame anyone else.
04:12 vaidyagi joined #parrot
04:16 Zaba_ joined #parrot
04:28 Andy joined #parrot
04:29 dalek r34010 | pmichaud++ | trunk:
04:29 dalek : [rakudo]:  Clean up stringification of mappings.
04:29 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=34010
04:31 dalek r34011 | pmichaud++ | trunk:
04:31 dalek : [rakudo]:  Add .pred and .succ methods for Int/Str/Num (RT #61420)
04:31 dalek : * Patch courtesy Eric Hodges <eric.hodges@gmail.com>
04:31 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=34011
05:00 apeiron joined #parrot
05:02 cotto r34008 requires a make clean
05:25 Andy joined #parrot
05:31 Alias joined #parrot
05:45 allison Whiteknight: ping
05:46 * Alias starts build run for Vanilla Alpha 3
05:46 Alias Hopefully this time I'll have something that doesn't suck
05:47 allison purl: the theme song by Brian Eno is chromatic's idea
05:47 purl OK, allison.
05:49 Alias Has todays release process kicked off yet?
05:50 GeJ Alias: release has been completed already.
05:50 Alias aha, I didn't see that
05:50 * Alias grabs
05:50 GeJ only problem seems to be distribution-related.
05:50 GeJ some parrot.org ftp credentials if I grokked it correctly.
05:51 Alias ftp://ftp.parrot.org/pub/pa​rrot/releases/devel/0.8.2/
05:51 Alias Empty :(
05:51 allison I was just looking for the tarball to put up on parrot.org, but can't find Whiteknight
05:51 GeJ I think that's why Whiteknight ans particle were looking after allison.
05:52 GeJ or is it looking "for"
05:52 GeJ I'll vote for "for"
05:52 allison looks like Whiteknight is gone for the evening
05:53 GeJ .o0(I knew I should have paid attention during english class)
05:53 tewk allison: I think he went to bed, 1:00 on the east cost
05:53 allison did he give a copy of the tarball to anyone else? perhaps to whoever was going to do the CPAN upload?
05:53 Alias (Interesting definition of "release") :)
05:54 GeJ sending via mail was mentioned.
05:54 tewk He talked about emailing it to chromatic, or particle?
05:54 tewk Not sure that he did it though
05:54 chromatic I was going to upload it to PAUSE from the parrot.org URL.
05:55 chromatic There's no reason someone else can't make the tarball.
05:55 Alias I was going to ask that...
05:55 Alias Where's the script for generation the release tarball...
05:55 Alias generating
05:56 allison sure, just sync to the tag and rerun make release
05:57 allison chromatic: was that a volunteer? or shall I do it?
05:57 chromatic I can do it in an hour or so, if necessary.
05:57 chromatic I don't have parrot.org access.
05:57 allison you will momentarily
05:58 allison hmmm... I don't have your pgp key, checking a public server
05:59 allison chromatic: goodness, you have 4 of them, all to the same email address. which one do you actually use these days?
06:11 chromatic Uh, good question.
06:11 purl Yeah, it is. I'm stumped.
06:11 chromatic I can give you my ssh public key.
06:11 chromatic I don't remember my PGP/GPG key.
06:13 chromatic Alias, did you see my note about the PARROT_RUNTIME environment variable?  You should be able to set the path there.
06:13 Alias I saw it, it's a bit clunky and I'd rather wait for a more robust option
06:13 Alias For now, I'll just build parrot in the install location I want
06:14 Alias I'll switch to whatever your new path management solution is in Jan
06:14 chromatic I'll think about ways to make pbc_to_exe respect install locations.  I think I can make that work trivially.
06:14 Alias It would be nice if we could make something work at minimum as nice as Perl 5
06:15 chromatic I can add an -I flag to the executables generated by pbc_to_exe.
06:15 Alias Hard-coded paths embedded inside libs and exes more or less rules out doing relocation or Portable stuff
06:15 chromatic True.
06:15 chromatic But we have backwards compatibility with Perl 4 to consider, so we can't change too much.
06:15 Alias Perl 5 has fixed the embedded part, it just didn't fix the Config stuff
06:16 Alias Wait, what?
06:16 purl Wait, is, like, that counting penguins
06:16 chromatic You furriners, you always forget that America invented sarcasm.
06:16 Alias I could parse it as sarcasm either, since Perl 5 already fixed this and Perl 6 is currently worse :)
06:16 Alias And I wasn't around for Perl 4 :)
06:17 Alias Gah, bug, restarting build again :(
06:26 szabgab parrot is dead, padre rulez, let me bring the facts: https://www.ohloh.net/p/compare?metric=Activ​ity&amp;project_0=Padre&amp;project_1=Parrot especially the statisticans among us
06:27 cotto I guess it's time to switch projects.
06:28 cotto join #padre
06:32 Alias In parrot's defense, in Padre we commit every single line changed separately
06:36 cotto Is there an advantage to that approach?
06:37 szabgab sure, we have higher commit count on Ohloh :-)
06:38 Alias Some interesting numbers in these graphs
06:39 Alias https://www.ohloh.net/languages/compare?commit​=Update&amp;l0=-1&amp;l1=perl&amp;l2=python&am​p;l3=ruby&amp;l4=-1&amp;measure=contributors
06:40 Alias 500 Python developers appearing in the space of 3 months...
06:43 dalek r34012 | allison++ | cc_restart:
06:43 dalek : [calling_conventions] Adding enum flags for invocant arguments. (Causes no test failures.)
06:43 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=34012
06:44 Hinrik I'm not sure I grok this... https://www.ohloh.net/languages/compare?m​easure=contributors&amp;percent=&amp;l0=c​ncpp&amp;l1=c&amp;l2=cpp&amp;l3=-1&amp;l4​=-1&amp;l5=-1&amp;l6=-1&amp;commit=Update
06:44 Theory joined #parrot
06:44 Hinrik ah, never mind
06:45 szabgab Hinrik: in just means that C is dying
06:46 szabgab unless of course you happen to use C..
06:51 Khisanth C and C/C++ is the same color ...
07:04 chromatic Hm, we now have an xconf directory.
07:13 moritz re
07:16 chromatic Ahh, Drupal.  You'd think a CMS would be able to publish HTML correctly.
07:17 allison chromatic: I believe we had this conversation last month :)
07:19 chromatic I would think that publishing HTML is a core competence of a web publishing platform.
07:19 chromatic Frankly, if they're surprised at how anchor tags work in 2008, some 17 years after the invention of HTML, perhaps these people should find another hobby.
07:48 ffwonko joined #parrot
07:50 cotto chromatic, I'd appreciate it if you could take a look at TT #59 when you have a chance.
07:54 chromatic Hm, that's odd.
07:55 allison For those eagerly waiting in the wings, chromatic regenerated the tarball and it's now available on http://www.parrot.org/release/current
07:55 cotto Yes it is.
07:56 chromatic I wonder if the free list is corrupt somehow.
07:58 GeJ allison: can this url be used for distros as official source? Or is CPAN the prefered way?
07:59 allison GeJ: this is the official link for current and future releases, CPAN is going away next month
08:00 GeJ Ok, I'll try to update the FreeBSD port tomorrow.
08:01 GeJ there's still this proble I encountered when parrot is built by root.
08:01 iblechbot joined #parrot
08:04 dalek r34013 | allison++ | cc_restart:
08:04 dalek : [calling_conventions] Process an optional invocant argument when building the
08:04 dalek : CallSignature object. (Causes no test failures.)
08:04 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=34013
08:05 allison GeJ: is the FreeBSD port in the official ports tree for FreeBSD yet?
08:09 allison GeJ: Randi Harper from FreeBSD was talking to me about getting it in last month
08:16 moritz purl: msg jonathan rakudoreg seems to break November pretty badly, the exact failure mode depends on the order in which the classes are precompiled. For example if I compile Novemeber.pm first, it dies with "Attempt to inherit from non-existent parent class"
08:16 purl Message for jonathan stored.
08:20 Hadi joined #parrot
08:21 Hadi left #parrot
08:26 chromatic cotto, I wonder if the comment at src/hash.c:836 is significant.
08:28 chromatic cotto, adding bucket->value = NULL; on line 1272 seems useful too.
08:29 lathos Urgh. Why does it?
08:29 cotto first, it looks like it could be
08:29 cotto second, nothing's getting deleted in the example
08:30 chromatic I'm paranoid is why.
08:30 cotto Some parts of Parrot breed paranoia.
08:31 chromatic IMCC, keys, hashes, GC....
08:32 kj joined #parrot
08:36 chromatic Hm, I wonder... bucket->next?
08:41 chromatic The bucket->next handling in parrot_hash_put looks wrong to me.
08:41 elmex joined #parrot
08:42 GeJ allison: there's already a port for parrot in the FreeBSD tree (0.8.0 actually) but there seem to be a few issues with it :
08:44 GeJ allison: for some reason, the port must be built by a non-root user (which makes it a no-no for the FreeBSD build cluster to make it a precompiled package)
08:44 GeJ and second, I'm not quite sure which languages are installed (if any) and how.
08:46 GeJ regarding the non-root user thingy on my machine, building parrot as root makes it break several tests that run just fine otherwise.
08:48 masak joined #parrot
08:53 GeJ hej masak
08:53 masak GeJ: hej GeJ
08:53 masak no release yet?
08:54 masak I thought I'd miss it by going to sleep.
08:54 cotto the release has happened
08:54 masak ah, but not the release email?
08:54 chromatic Apparently not.
08:55 masak looking forward to it.
08:55 cotto I've already gotten it.
08:55 cotto (the email)
08:55 masak ah, there it is!
08:56 masak it's gone out to parrot-dev, but not (it seems to me) to perl6-compiler
08:56 iblechbot joined #parrot
08:56 cotto isn't perl6-compiler being deprecated?
08:56 moritz no
08:56 moritz perl6-internals is
08:56 masak p6c is alive and well
08:57 masak actually, I just subscribed to parrot-dev the other day
08:57 cotto nm.  I was thinking of perl6-internals.
08:57 masak I get most of my info from p6c and p6l
08:58 chromatic cotto, print out the pointer for each bucket in sanity_check.
08:59 chromatic hash->bs+12: key and value are null (0x81234f8)
08:59 chromatic hash->bs+13: '�' =>  (null) (0x8123504)
08:59 chromatic hash->bs+14: key and value are null (0x8123510)
09:00 chromatic Hm, no, that's not it.
09:03 cotto looks disappointingly normal
09:04 chromatic Yes it does.
09:04 purl if you say so...
09:25 masak still no release email to p6c. must have gotten stuck somewhere.
09:25 moritz masak: sometimes my emails to p6l need hours
09:26 chromatic It's this line:         hash->bi[hashval & hash->mask] = bucket;
09:28 cotto That's where the goofiness is exposed, but why does it occasionally break?
09:28 cotto makes sense that it'd involve the mask, since different keys cause different behaviors
09:30 chromatic Maybe the bs/bi allocation is wrong.
09:30 chromatic lines 34 and 35
09:32 chromatic If I change the N_BUCKETS macro to return n, everything's fine.
09:32 cotto I just did and found that
09:32 cotto veeery suspicious
09:33 chromatic I can't see how HASH_ALLOC_SIZE ever worked.
09:33 cotto I also note that MAXFULL_PERCENT seems to be an imaginary constant.
09:34 chromatic Do we have #WISHFUL_THINKING defined somewhere around here?
09:35 chromatic Why allocate fewer buckets than we have available slots?
09:35 vaidyagi joined #parrot
09:35 chromatic Especially when using a bucket system?
09:36 cotto It looks like the hash is expanded before it's possible for every bucket to be non-empty, but that doesn't mean anything about which buckets will be needed.
09:38 chromatic All tests pass by making N_BUCKETS an identity macro.
09:39 chromatic I must sleep now though.
09:40 cotto chromatic++
09:41 cotto that also lets OrderedHash pass with a seed that previously caused it to fail
10:04 masak joined #parrot
10:12 ffwonko joined #parrot
10:13 ChrisDavaz joined #parrot
10:38 dalek r34014 | kjs++ | trunk:
10:38 dalek : [t] Remove all tests with slicing syntax. This are 22 (this is half of the tests in the file!) tests from t/pmc/iterator.t.
10:38 dalek : + the [a,b] variant will be removed
10:38 dalek : + the [a..b] variant will be removed
10:38 dalek : + the [..b] variant will be removed
10:38 dalek : + the [a..] variant will be removed.
10:38 dalek : IMCC grammar updates follow later.
10:38 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=34014
10:41 masak joined #parrot
10:42 Hadi joined #parrot
10:43 jonathan morning all
10:43 purl afternoon, jonathan
10:43 masak jonathan: morning.
10:43 jonathan hi masak
10:44 kj good morning
10:46 kj left #parrot
10:47 kj joined #parrot
10:50 dalek r34015 | kjs++ | trunk:
10:50 dalek : [imcc] remove ".." from IMCCs lexer. This token is only used for slicing syntax, which is deprecated. This patch makes it impossible to use slicing syntax using '..'. The parser still needs to be cleaned up for this, as well as to disallow the [a,b], as the ',' token cannot be removed (as it's used in other parser rules as well).
10:50 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=34015
10:52 bacek joined #parrot
11:03 jonathan So...what holdeth the RT queue...
11:09 dalek r34016 | kjs++ | trunk:
11:09 dalek : [t] Remove a test that checks for not-allowing slice syntax in namespaces.
11:09 dalek : The test checks that [a,b] will emit the proper error message. As the [a,b] syntax is deprecated and will be removed shortly, the test is no longer necessary.
11:09 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=34016
11:17 jonathan perl6: class A { my $a = method { say self.WHAT }; method x {self.$a() } }; A.new.x
11:17 polyglotbot OUTPUT[A␤]
11:18 jonathan Oh, that was the one that does work...
11:19 bacek joined #parrot
11:19 dalek r34017 | kjs++ | trunk:
11:19 dalek : [t] minor changes to test that remove tests for [a,b] syntax in orderedhash.t
11:19 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=34017
11:38 dalek r34018 | jonathan++ | trunk:
11:38 dalek : [rakudo] Make sure we give correct error message when multiple dispatch ties on a bunch of candidates all with non-matching constraints.
11:38 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=34018
12:09 clunker3 joined #parrot
12:10 ruoso joined #parrot
12:11 purl joined #parrot
12:13 dalek r34019 | jonathan++ | trunk:
12:13 dalek : [rakudo] Fix a test for multi-dispatch that didn't create classes the Perl 6 way to do so.
12:13 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=34019
12:15 TiMBuS joined #parrot
12:15 gaz joined #parrot
12:19 * bacek requesting logo for Rakudo...
12:19 donaldh joined #parrot
12:39 masak bacek: is it urgent?
12:40 bacek masak: no... But we really need good one
12:40 masak aye, we do.
12:41 masak I sometimes spend a few minutes thinking about what would be a good logo.
12:44 dalek r34020 | jonathan++ | trunk:
12:44 dalek : [rakudo] Add Callable role, make Code do it and make sure parameters with the & sigil require it.
12:44 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=34020
12:45 jonathan Two masakbugs down!
12:46 masak jonathan++
12:46 masak keep crushing those masakbugs.
12:48 tewk pmichaud: so pir :methods won't be in a namespace by default, so I'm assuming any !EXPORT ed methods should be marked with :nsentry right
12:49 jonathan tewk: I think EXPORT takes them and inserts them into the ns.
12:49 jonathan Oh, I see what you mean - we could maybe get rid of !EXPORT...
12:50 tewk Yeah but it takes them from a namespace and they won't be there anymore.
12:50 jonathan Oh.
12:50 jonathan That could cause some...issues.
12:50 jonathan I'll leave pmichaud to answer what he wants to do on this.
12:50 tewk Unless marked with :nsentry
12:51 jonathan *nod*
12:51 tewk Yeah I'm attempting to fix rakudo, but I wanted to make sure I'm doing the right thing before I get to deep.
12:51 jonathan Yeah, I see what you're getting at.
12:51 jonathan I'm not sure if they are meant to appear in the namespace they are declared in.
12:52 jonathan In which case I guess we'd want to look 'em up by subid. But that'll be quite a bit more code.
12:52 jonathan We may settle for making them nsentry for now, until we have a Perl 6 prelude, and 'is export' can do the required thing and we don't have to care about the code being concise. :-)
12:52 jonathan Anyway, will let pm make the final call.
12:54 tetragon joined #parrot
12:54 pmichaud yes, !EXPORTed methods also belong in the namespace.
12:55 peters joined #parrot
12:55 pmichaud (i.e., they need :nsentry)
12:55 peters Hi folks
12:55 jonathan pmichaud: But in the namespace of the class that declared them?
12:55 pmichaud yes.
12:55 jonathan OK.
12:55 jonathan I wasn't sure about that.
12:55 pmichaud for now it's okay.  It may even be "forever".
12:55 jonathan OK
12:55 pmichaud otherwise, I'm not sure how one will do   &Foo::method
12:57 pmichaud (or even if such a thing is possible)
12:57 pmichaud but the ones that are marked "!EXPORT" are methods that are also callable as subs, so they definitely belong in the namespace :-)
12:58 * tewk gets out his :nsentry pen and goes to work.
12:58 jonathan Yes, I'm not sure if Foo::method should work
12:58 jonathan erm, &Foo::method
12:58 pmichaud (in the larger view -- those are the methods that have the "is export" trait, so they're definitely exported as subs.)
12:58 jonathan I know you can do $x.Foo::bar(...)
12:58 jonathan But that may be handled differently.
12:59 jonathan (As in, looking at superclass stuff.)
13:00 pmichaud yes, I suspect it will be.
13:01 jonathan Gah...Parrot's Object clone doesn't appear to clone attributes.
13:02 pmichaud not by default.
13:02 pmichaud there's a !CLONEATTR method I created for that.
13:02 jonathan Oh, cunning.
13:02 pmichaud (in Object.pir)
13:02 pmichaud I think Range uses it.
13:03 jonathan Heh. What if I wanna clone every attr? :-)
13:03 jonathan Hmm. In fact it's accidental that Object doesn't clone the attributes.
13:03 jonathan When I implemented it, I did
13:03 jonathan cloned_guts->attrib_store = VTABLE_clone(INTERP, obj->attrib_store);
13:03 jonathan Thinking that ResizablePMCArray cloned its contents too.
13:04 pmichaud it does not.
13:04 pmichaud I even filed a ticket about that.  :-)
13:04 jonathan Indeed.
13:04 pmichaud then I retracted the ticket :-)
13:04 jonathan OK, so where on earth to put the fix... :-)
13:04 jonathan I'm happy enough ResizablePMCArray doesn't clone its contents.
13:04 pmichaud please don't make ResizablePMC... right
13:04 jonathan Object OTOH.
13:04 pmichaud that would cause some issues right now.
13:04 tewk [06:03:07] t/pmc/perl6multisub-type........1/13 Null PMC access in invoke()
13:04 tewk current instr.: 'role' pc 246 (t/pmc/perl6multisub-type.t:84)
13:04 tewk called from Sub 'main' pc 49 (t/pmc/perl6multisub-type.t:28)
13:04 tewk help
13:04 pmichaud it's okay with me if Object clones its attributes
13:05 jonathan tewk: Are you working in trunk, and at svn head?
13:05 Whiteknight joined #parrot
13:05 jonathan pmichaud: Well, it's what I originally intended it to.
13:05 tewk Yes, but I've got :nsentry patches.
13:06 jonathan tewk: And it didn't fail before them?
13:06 jonathan I just had to fix that test because it didn't do Perl6-ish enough classes.
13:06 tewk I'm assuming not, I didn't check. checking.
13:06 jonathan tewk: See if you get any failures elsewhere.
13:06 jonathan Like, in the multi spectests.
13:06 pmichaud I wonder if changing Object.clone will change anything else (more)
13:06 Hadi left #parrot
13:06 pmichaud i.e., I wonder if I wrote any code assuming that Object.clone didn't clone its attributes.
13:07 pmichaud (e.g., in PGE)
13:07 jonathan CLONEATTR? ;-)
13:07 jonathan Yeah
13:07 tewk I'm at r34004
13:07 jonathan "I meant it to do X originally" doesn't mean everyone else.
13:07 pmichaud anyway, maybe try it and see what breaks... ?
13:07 pmichaud but automatically cloning the attributes is somewhat what I would expect.
13:07 jonathan Yeah.
13:07 jonathan It makes writing clone method for Object rather easier too ;-)
13:11 peters rakudo: grammar Foo::Bar { token foo { 'foo' } }; say('foo' ~~ /^<Foo::Bar::foo>$/);
13:11 Whiteknight Yay! Trac is letting me log in this morning!
13:11 polyglotbot OUTPUT[get_string() not implemented in class 'ResizableStringArray'␤current instr.: 'parrot;PGE;Match;new' pc 176 (compilers/pge/PGE/Match.pir:115)␤called from Sub '' pc 416 (EVAL_13:177)␤called from Sub '_block34' pc 291 (EVAL_13:126)␤called from Sub 'parrot;Code;ACCEPTS' pc 6730
13:11 polyglotbot ..(src/classes/Code.pir:65)␤called from Sub '_block11' pc 38 (EVAL_...
13:11 peters Looks like I found a issue using grammar namespace, s/Foo::// and it works
13:11 jonathan peters: I think there's a patch in RT to help with that, I just didn't get to reviewing/applying it yet.
13:12 jonathan pmichaud: We make it through the build...running Parrot tests now.
13:12 pmichaud yes, Chris Dolan sent a patch, I believe.
13:12 jonathan Yes.
13:12 peters jonathan: ok =)
13:15 jonathan pmichaud: Ah. We now fail range.t in sanity...
13:15 jonathan And at least copy.t in Parrot tests.
13:15 jonathan Oh, wait, maybe I did it wrong.
13:16 pmichaud anyway, this is something I noticed -- Hash does a deep-clone, ResizablePMCArray doesn't.  :-)
13:16 jonathan Ah.
13:16 pmichaud that actually turns out to be the right semantics for Perl 6, so I'm not complaining.  :-)
13:16 jonathan Maybe that's why I expected ResizalbePMCArray to...
13:17 pmichaud afk for a bit
13:22 jonathan Ah...that looks better.
13:30 tewk jonathan: at -r34020 now still have error. Almost all my errors have to do with a missing :nsentry, I just don't know where with this one.
13:31 jonathan tewk: OK. I'd be intereted to know if there are problems with any of the other multi dispatch tests.
13:31 jonathan tewk: As in, the ones in make spectest
13:31 tewk yes, but I fixed them
13:31 jonathan If not, this failure may well be bogus.
13:31 tewk wait looking for role_1 definition
13:32 jonathan tewk: perl6multisub-type.t, right?
13:33 jonathan Which test fails?
13:33 jonathan We do a $P1 = find_global 'role_1'
13:33 jonathan But that's not marked :method, so it should get an ns entry under role_1?
13:33 tewk right
13:34 jonathan Is that what's failing?
13:34 tewk adding ok() to the intermediaries so I can find out.
13:34 jonathan Sure.
13:35 tewk well that doesn't quite work, have to do isnull first
13:36 pmichaud find_global deprecated, fwiw.
13:37 jonathan pmichaud: Do we override clone anywhere?
13:37 jonathan Say, on Int?
13:37 pmichaud we do on Range
13:37 pmichaud we do not on the others, afaik
13:38 pmichaud I don't know if cloning would affect Protoobject
13:39 pmichaud it appears that Range is the only rakudo class that overrides clone.
13:39 jonathan ok
13:39 * jonathan wonders why it ain't seeming to work
13:42 dalek r34021 | Whiteknight++ | trunk:
13:42 dalek : [Release 0.8.2] Update trunk from release branch for 0.8.2
13:42 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=34021
13:45 nopaste "tewk" at 155.97.237.62 pasted "trace of perl6multisub-type.t" (45 lines) at http://nopaste.snit.ch/14985
13:51 jonathan tewk: What's on line 95 in your version?
13:52 tewk .sub 'role_2'
13:52 jonathan Hmm.
13:52 jonathan That doesn't make a lot of sense. :-S
13:52 tewk before I added debug statements
13:55 Andy joined #parrot
13:57 jonathan tewk: Will look more in a moment - trying to work out what on earth is going on with this clone thing...
13:57 dalek r34022 | pmichaud++ | trunk:
13:57 dalek : [rakudo]: spectest-progress.csv update: 250 files, 5170 passing, 0 failing
13:57 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=34022
13:57 pmichaud ....I bet we can break 5200 today.  :-)
13:59 jonathan pmichaud: This is nuts. I wrote in Perl6Object a clone method as simple as $P0 = clone self
14:00 jonathan ...and it doesn't appear to call Object.pmc's clone method :-S
14:00 jonathan As in, clone vtable
14:00 pmichaud a vtable function, or 'clone'?
14:00 pmichaud ah, right.
14:00 pmichaud did you put   $P0 = clone self   into the vtable function?
14:00 pmichaud wouldn't that be... recursive?
14:00 jonathan no
14:01 pmichaud okay.
14:01 jonathan normal method
14:01 jonathan .namespace ['Perl6Object']
14:01 jonathan .sub 'clone' :method
14:01 jonathan say "P6O-Clone" $P0 = clone self
14:01 jonathan say "P6O-Clone-End" .return ($P0)
14:01 jonathan .end
14:01 jonathan with the missing line breaks...
14:01 pmichaud oh, and then you're calling it with   .clone
14:01 jonathan $object.clone()
14:01 jonathan Yes
14:01 pmichaud and it doesn't get called?
14:01 jonathan Oh, that gets called.
14:02 jonathan But I put a printf into Object.pmc's clone VTABLE method to see it gets called and it doesn't print.
14:02 jonathan I get the P6O-Clone and P6O-Clone-End but nothing from the clone vtable meth..
14:02 jonathan Hmm.
14:03 * jonathan whips out a C debugger
14:03 pmichaud I can't think of any reason why it shouldn't be called.
14:06 jonathan pmichaud: OH NO!
14:06 jonathan Parrot_ObjectRef_clone
14:06 jonathan GETATTR_ObjectRef_value(interp, pmc, value);
14:06 jonathan copy = pmc_new_init(interp, pmc->vtable->base_type, value);
14:06 jonathan return copy;
14:06 jonathan *that's* why
14:07 jonathan Why did we set it up to just clone the ObjectRef and not the underlying thingy it refers to?
14:07 jonathan Is there a reason?
14:07 jonathan Oh
14:07 jonathan It was probably so the copy op did the Right Thing maybe...
14:07 pmichaud cloning an ObjectRef should _not_ clone its underlying thing.
14:07 pmichaud References are objects too.
14:08 jonathan Right.
14:08 pmichaud inside of the 'clone' method, you have to make sure it's not an ObjectRef
14:08 jonathan Well, just deref if it is?
14:08 pmichaud sure, that works.
14:08 jonathan OK.
14:08 jonathan Phew. I thought I was going nuts for a momnet.
14:09 pmichaud (assuming deref works.  I've had some interesting stuff there.)
14:10 jonathan Phew.
14:10 jonathan Now to remove the loads of debug code...
14:11 pmichaud it might be nice if method dispatch to an objectref could dispatch to the underlying value instead of the objectref itself.
14:11 pmichaud I don't know if that's workable, though.
14:12 jonathan Probably easy to sneak it when I'm re-doing the dispatching stuff next month.
14:16 jonathan pmichaud: I did test Parrot, Rakudo, PGE and NQP with this clone patch.
14:16 jonathan Anything else?
14:16 purl i guess Anything else is tp's flinching or anticipating.
14:16 masak purl: forget anything else
14:16 purl masak: I forgot anything else
14:16 pmichaud not that I can think of.  If that was the original intended semantic, there's reason to go ahead and put it in.
14:16 jonathan *nod*
14:16 pmichaud if it breaks anything, blame me.  :-)
14:17 jonathan Nice!
14:17 masak purl: november?
14:17 purl rumour has it november is at http://www.november-wiki.org/ or http://use.perl.org/~masak/journal/37212
14:17 jonathan Can I adopt this is a general principle?
14:17 masak purl: jimmy?
14:17 purl jimmy is, like, translating some docs to chinese
14:17 masak purl: jimmy is also allegedly a sloth
14:17 purl okay, masak.
14:17 pmichaud jonathan: sure.
14:17 jonathan Awesome!
14:17 purl awesome is probably http://awesome.naquadah.org/ or not as awesome as xmonad
14:17 * jonathan breaks lots of stuff and blames pmichaud
14:18 masak purl: forget awesome
14:18 purl masak: I forgot awesome
14:18 jonathan masak: Is there an idiots guide to running November?
14:18 jonathan The Perl 6 version?
14:18 purl the perl 6 version is actually cleaner
14:18 masak jonathan: closest thing is the README, I think
14:18 jonathan OK
14:18 masak purl: forget the perl 6 version
14:18 purl masak: I forgot perl 6 version
14:18 pete joined #parrot
14:18 masak jonathan: I should probably blog about that too
14:19 jonathan It's probably easiest to just get it and try and work out what is up with it in my branch.
14:19 dalek r34023 | Whiteknight++ | trunk:
14:19 dalek : [Docs] update release manager guide with a little bit more info about FTP uploads
14:19 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=34023
14:20 gryphon joined #parrot
14:29 dalek r34024 | Whiteknight++ | RELEASE_0_8_2:
14:29 dalek : Deleting release branch
14:29 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=34024
14:29 tewk jonathan: so its invoking Perl6MultiSub on a instance of C1
14:29 jonathan tewk: Yes.
14:30 nopaste "tewk" at 155.97.237.62 pasted "gdb backtrace" (25 lines) at http://nopaste.snit.ch/14987
14:30 jonathan Oh, it segvs?
14:31 tewk well it tries to invoke on the NULL pmc which throws an exception,
14:31 jonathan Yeah
14:31 tewk I'm breaking on exit.
14:31 jonathan Hmm.
14:31 jonathan Is this the _only_ test that breaks?
14:32 jonathan Because what these tests do from PIR is basically try and fake up how the call would look in Perl 6.
14:33 PerlJam good morning #parrot
14:33 jonathan afternoon, PerlJam
14:34 PerlJam good awake-time to you jonathan  :-)
14:37 jonathan Whee. 5 more tests unfudged
14:37 dalek r34025 | jonathan++ | trunk:
14:37 dalek : [core] I intended that the Object PMC's clone method would clone the attributes. Turns out, ResizablePMCArray doesn't clone its elements, so that wasn't happening. So, this does the cloning in Object's clone vtable method. Tested with various things and nothing breaks.
14:37 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=34025
14:37 dalek r34026 | jonathan++ | trunk:
14:37 dalek : [rakudo] First cut of the clone method (argumentless version).
14:37 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=34026
14:38 jonathan tewk: In other words, if all of make spectest passes, and all the other sanity tests, then I maybe wouldn't worry too much about this one - I can debug and clean it up.
14:39 tewk well it kills make test, I'll comment it out and try going forward.
14:39 tewk :q
14:39 masak a vi user! :)
14:40 moritz those aren't all that sparsely distributed :)
14:40 masak I know that.
14:40 * jonathan is a windows user and just thought it was a sticking out tongue with a piercing smiley
14:40 masak I'm one, too.
14:40 masak jonathan: there's vim on Windows, too, I'm sure.
14:40 PerlJam jonathan: we won't hold it against you.
14:41 tewk make test passes.
14:41 tewk spectest running
14:41 jonathan Fail. We have no tests for cloning while changing attrs.
14:42 pmichaud jonathan: we don't need to fix it right away, but the version of 'clone' in Object.pir gets the vtable backwards
14:42 tewk Null PMC access in invoke()
14:42 tewk current instr.: 'postcircumfix:{ }' pc 1610 (src/classes/Associative.pir:74)
14:43 tewk booom
14:43 masak booom! :D
14:43 masak sorry, old habit.
14:43 pmichaud tewk:  Associative.pir:29 needs :nsentry
14:44 pmichaud or, more likely :subid
14:44 jonathan pmichaud: Backwards?
14:44 purl Backwards is factoid
14:44 pmichaud the Object vtable for clone should call the 'clone' method, not vice-versa
14:45 pmichaud (yes, I realize this makes things tricky)
14:45 jonathan erm
14:45 jonathan if we do that...
14:45 jonathan Yeah.
14:45 pmichaud but using    $P0 = clone obj      in PIR should use obj's 'clone' method if it exists.
14:45 jonathan I think we'll not fix this one right away. :-)
14:45 pmichaud same as how   $S0 = obj    should use obj's 'Str' method if it exists.
14:46 pmichaud (this is where Parrot vtables make us turn things inside-out a bit.)
14:46 jonathan *nod*
14:47 pmichaud however
14:48 pmichaud since there are a few places in the code that use the "clone" op instead of calling .clone, we're likely to run into some issues anyway.
14:49 pmichaud I'm still trying to decide exactly where the "opcode versus method" approach to doing things falls in Rakudo.
14:49 pmichaud if we want to have cross-HLL capabilities, we really need to use opcodes and not method calls.
14:49 jonathan Yes.
14:49 pmichaud but in order for that to work, we really need to be able to access parent-class vtable operations
14:50 pmichaud i.e., to be able to define new vtable operations in terms of the parent-class vtable operations
14:50 jonathan I don't think there's an easy way to do that right now.
14:50 pmichaud Coke's trick works for subclasses of PMCs
14:50 jonathan Yes.
14:50 pmichaud I don't know that we have a way to do it for things that need to access Object's vtable functions, though.
14:50 pmichaud (such as 'clone')
14:51 jonathan *nod*
14:51 pmichaud maybe add a note to the 'clone' method saying that it's inside-out for now, so people won't replicate that meme?
14:52 jonathan Can do.
14:54 jonathan pmichaud: When we move into our own repo, do you expect we'll track Parrot head, or try and track monthly releases?
14:54 jonathan (In the beginning, not long term.)
14:55 pmichaud through at least March, we'll track head.
14:55 pmichaud I suspect we'll track head through July.
14:56 pmichaud I think that Rakudo will need enough intimate changes in Parrot for a while that we'll have to continue to track head, as opposed to a monthly release.
14:56 jonathan Yes, I think so too.
14:57 masak as soon as Rakudo and Parrot are decoupled, we will have twice as many revision numbers to care about when tracking bugs.
14:58 jonathan It's one of those things we need to do, but that I don't look forward to.
14:58 masak aye.
14:58 pmichaud I do not expect to refer to things by revision numbers.
14:58 pmichaud I expressed my opposition to them at PDS.  I prefer month releases.
14:58 masak also, where will Rakudo development take place? #rakudo?
14:58 pmichaud i.e., "Jan 2009 release" instead of "0.9.0"
14:59 jonathan Pleae not a third IRC channel.
14:59 pmichaud rakudo will continue in #parrot and #perl6
14:59 jonathan #perl6 and #parrot are enough :-)
14:59 masak indeed.
14:59 pmichaud there's no need for its own chan.
15:00 pmichaud we'll continue to discuss parrot-related items here, and perl6-related items on #perl6, and if there's a bit of cross talk or overlap it's no big deal.
15:00 moritz actually there are already some discussions spread out between #perl6 and #parrot, doing that with three channels would be insane
15:00 pmichaud right
15:00 pmichaud to the extent that things start to not fit in #parrot we'll just do them in #perl6
15:01 pmichaud (release numbers), so, when referring to Parrot releases I'll continue to say, e.g., "May 2009" release instead of "1.x".
15:02 pmichaud what is likely to be a bit trickier is repository revision numbers :-)
15:02 tewk perls Test::* need a zentest like module
15:03 tewk anyone every used zentest on ruby?
15:03 pmichaud afk for a bit
15:06 dalek r34027 | Whiteknight++ | trunk:
15:06 dalek : [compilers/bcg] Remove unused compilers/bcg/ as per TT#33
15:06 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=34027
15:16 PerlJam If either repo moves to git, there won't be "revision numbers" per se any more.  :-)
15:20 masak mm, git.
15:27 xiaoyafeng joined #parrot
15:29 pmichaud I'm thinking rakudo might move to git.
15:29 dalek r34028 | jonathan++ | trunk:
15:29 dalek : [rakudo] Generate private accessor methods for attributes.
15:29 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=34028
15:29 pmichaud (back just for a second... gone again)
15:29 dalek r34029 | jonathan++ | trunk:
15:29 dalek : [rakudo] Implement version of clone that takes named parameters and sets attributes.
15:29 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=34029
15:29 Theory joined #parrot
15:30 jonathan Things people most mistook for the messiah in 2008: (1) Obama. (2) git.
15:30 rdice joined #parrot
15:30 pmichaud ...private accessors exist?
15:30 jonathan pmichaud: I've read and re-read that bit of the synopsis and concluded that they do seem to.
15:31 pmichaud so then Foo{ ... }   just uses the private accessors?
15:31 pmichaud (which would be very cool)
15:31 pmichaud (from a compiler standpoint)
15:31 pmichaud oops, gotta go
15:31 pmichaud bbl
15:32 jonathan pmichaud: Well, the spec also says it's non-virtual.
15:32 jonathan (e.g. a submethod)
15:32 jonathan Maybe.
15:32 jonathan The bit that sold it for me was
15:32 jonathan "Outside the class you must use the public . form, or rely on a method call (which can be a private method call, but only for trusted classes)."
15:32 jonathan You can't do a private method call if there's no private method.
15:34 jimmy joined #parrot
15:35 jimmy jimmy?
15:35 purl i think jimmy is translating some docs to chinese. or allegedly a sloth
15:35 gaurav joined #parrot
15:56 pjcj joined #parrot
15:59 Whiteknight purl?
15:59 purl Whiteknight?
15:59 Whiteknight Whiteknight?
15:59 purl it has been said that Whiteknight is updating the book. It talks about .pragma fastcall, pushing and popping arguments onto the user stack, etc
16:00 Whiteknight purl forget Whiteknight
16:00 purl Whiteknight: I forgot whiteknight
16:00 masak purl: masak?
16:00 purl i heard masak was _not_ my best friend! or the cause of much confusion for purl or my worst nemesis or the anti-purl or out to get you or greatly tired of purl
16:00 moritz :-)
16:00 masak damn straight.
16:00 purl kick ass!
16:00 moritz moritz?
16:00 purl rumour has it moritz is Moritz Lenz, mailto:moritz@faui2k3.org
16:00 Whiteknight purl: purl?
16:00 purl i am a she.
16:04 dalek r34030 | jonathan++ | trunk:
16:04 dalek : [rakudo] Fix indirect calls on private methoeds.
16:04 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=34030
16:07 PerlJam Whiteknight++
16:09 jonathan Can someone on a non-Windows platform with a recentish Rakudo do ./perl6 -e 'print "hi"; my $a = =$*IN'
16:09 jonathan And see if it prints hi before asking for input?
16:09 jonathan It does on Win32, so I think the bug has been fixed, but would like to hear from someone on $other_os
16:10 * moritz tries...
16:10 purl tries are magical things that are especially good at finding prefixes of strings.
16:10 PerlJam jonathan: aye.
16:10 masak it prints "hi" before asking for input here on Linux.
16:11 jonathan Great.
16:11 jonathan Then it's fixed.
16:11 moritz another closed ticket :)
16:11 moritz didn't masak open that one? :-)
16:11 masak aye. :)
16:11 moritz works for me too
16:11 jonathan OK, that's an easy ticket.
16:11 masak if you insist on closing my tickets, then I guess I'll have to figure out new ones. :)
16:12 moritz should I start questioning my sanity if I remember ticket <-> requestor relations even if I never fully read the ticket? :-)
16:12 PerlJam moritz: you're a fairly active perlmonk ... could you announce the new parrot release there?
16:12 moritz PerlJam: if Whiteknight doesn't want to do it himself, I can
16:13 PerlJam Hmm.  It's not on perlbuzz either.
16:13 PerlJam Someone shoudl write a little "announce" script that gets run as the last step of the release :)
16:14 masak that's actually a good idea.
16:14 masak even if the script mostly delegates to humans.
16:14 PerlJam of course it's a good idea, otherwise I wouldn't have said it :)
16:14 Whiteknight I looked a perlmonks, couldn't find a place to submit a story
16:14 masak PerlJam: of course. :)
16:14 moritz Whiteknight: http://www.perlmonks.org/?node=Perl%20News scroll to them bottom of the page
16:15 moritz the "Add a piece of Perl News" has very bad contrast in the standard css :(
16:15 masak security through obscurity? :)
16:16 pmichaud jonathan: (#61356)   okay, here's one that has been in the back of my mind lately:    { my $x;  class Foo { method a() { say $x; } }; $x = 3;  Foo.a(); }
16:16 pmichaud I don't have any good ideas for solving that one.
16:16 moritz masak: obscurity through carelessness
16:17 jonathan pmichaud: Should print 3?
16:17 pmichaud according to the spec, yes.
16:17 pmichaud But when do we close over the class?
16:17 pmichaud or the method?
16:17 purl i heard the method was a good start
16:18 masak purl: forget the method
16:18 purl masak: I forgot method
16:18 jonathan The :init :load block for the class should probably close over the methods, and that in turn should be closed over at the start of the opening {, no?
16:18 jonathan s/opening {/outer block/
16:18 pmichaud except that at the time we process class (BEGIN), we haven't finished compiling its outer scope yet.
16:18 pmichaud so there's no $x or :outer that we can reasonably attach to.
16:19 jonathan We're not *really* doing them at BEGIN time yet, but yes, when we start doing that, it will hurt.
16:19 pmichaud right.
16:19 pmichaud again, just a longer-term thought, not something I want to fix today.
16:19 pmichaud but it's going to affect any classes that expect to access their outer scopes.
16:19 jonathan I would be happy saying, you shouldn't be messing with lexicals declared in a not-yet-finished-compiling scope.
16:20 jonathan Whether the spec would let us get away with that, I'm not sure.
16:20 pmichaud me neither.
16:20 pmichaud oh well, we'll figure it out when we get there.
16:20 jonathan We can come back and set_outer later on.
16:20 pmichaud yes, but we'd also have to re-capture the method
16:21 jonathan The method or just the class block?
16:21 pmichaud the method
16:21 pmichaud set_outer is a static thing, but setting an outer context is dynamic.
16:22 pmichaud i.e., 'set_outer' currently works on subs, not contexts.
16:22 pmichaud although perhaps it could work on the sub's current context as well.  That might fix it.
16:22 galf joined #parrot
16:23 pmichaud i.e., when we set_outer on the block for class Foo, we end up changing its nested block's notion of what their outer contexts are
16:23 jonathan If it knocks out the sub's current context, does the sub not have to then go and relocate an outer context on its next invocation?
16:23 jonathan Oops
16:23 jonathan I mean if the sub's current context's outer context pointer
16:23 jonathan Oh, but that wouldn't follow down the chain to the methods. Hmm.
16:24 pmichaud well, it would if we set it on the context
16:24 pmichaud (more)
16:24 pmichaud when we compile Foo, its block gets invoked
16:24 pmichaud that creates a context
16:24 pmichaud and method a closes over that context
16:25 jonathan Aha.
16:25 pmichaud i.e., method a's outer_ctx points to Foo's context
16:25 jonathan So if we set that context's outer...we should be OK?
16:25 pmichaud but at compilation time, Foo's context doesn't have an outer context
16:25 jonathan *nod*
16:25 pmichaud so yes, we might be OK in that case.
16:25 jonathan That'd may fly.
16:26 pmichaud okay, I think that's a workable strategy for now, when we get to that point.
16:26 jonathan If we have to make lexicals in an outer block available while that block is still in a half-compiled state, that's just nasty though.
16:27 jonathan We'd have to do nasty faked-up-context-that-we-make-real-later style stuff in that case.
16:27 pmichaud I'll deal with that when I get there.  We may have some "special lexicals" or special mechanisms for binding lexicals to things that were already compiled.
16:27 jonathan I think we've got much more common things to be working on for now.
16:28 pmichaud correct.
16:28 jonathan But fixing whatever was wrong with :load :init and :outter together would let us run that example.
16:28 jonathan Until we switch to really compiling classes at compile time.
16:28 jonathan Which I think we can comfortably put off for a while.
16:28 pmichaud I'm wondering if the :load :init bug is fixed already -- haven't tried it recently.
16:29 jonathan Ah.
16:29 pmichaud I don't think I've tried it since the lexicals merge.
16:29 jonathan Is it not a PCT thingy that checks if you've got the two in combination and drops the otuer?
16:29 pmichaud currently, yes.
16:29 pmichaud although I think I also did a test that determined it was just :init (or just :load) that was the issue.
16:29 jonathan I guess it's easy to coomment that bit out and quickly see if it works.
16:30 * jonathan wonders where it'd be
16:31 masak purl: infinite regress is <reply>see infinite loop
16:31 purl OK, masak.
16:31 pmichaud compilers/src/POST/Compiler.pir
16:31 masak purl: infinite loop is <reply>see infinite regress
16:31 purl ...but infinite loop is perl -e'{redo}' or the name of the street the apple campus is built on...
16:32 masak purl: no, infinite loop is <reply>see infinite regress
16:32 purl okay, masak.
16:32 pmichaud jonathan: I think I took that workaround out already.
16:32 jonathan pmichaud: Ah.
16:32 pmichaud which tells me that the bug is gone.
16:33 jonathan Ah.
16:33 jonathan my $x = 42; class A { method x { say $x } }; A.new.x # still prints nothing
16:33 pmichaud there may still be some :outer issues with classes, even if they aren't :load :init ones
16:34 pmichaud the class block still gets invoked before its outer block.
16:34 pmichaud so the $x that is in class A isn't referring to the $x that we just started.
16:35 pmichaud what you just wrote is the same as
16:35 pmichaud { my $x = 42; class A { method x { say $x } }; A.new.x }
16:35 pmichaud and the class block gets executed before the outer block.
16:35 jonathan Ah.
16:36 pmichaud which means it's bound to an "autoclosed $x", which isn't the same $x we get upon invoking the outer block.
16:36 workbench joined #parrot
16:36 jonathan Hmmm. Yes.
16:36 pmichaud otoh, I highly recommend using   our $x  in this case and avoiding the issue for a while.  :-P
16:37 jonathan ;-)
16:37 jonathan Is this in the realm of, stuff that'll be a real pain to fix?
16:37 pmichaud yes.
16:37 jonathan If so, I'm going to leave it.
16:37 pmichaud or, at least, the realm of stuff that if we fix it now will cause us pains with the other stuff we really ought to fix first
16:37 jonathan OK, we leave it.
16:37 pmichaud it should wait.
16:38 pmichaud on another topic...
16:38 pmichaud :-)
16:38 jonathan Does anyone have any opinions on http://rt.perl.org/rt3/Tic​ket/Display.html?id=57722
16:39 jonathan It looks sane to me.
16:40 pmichaud istr there was some discussion that ticket engendered
16:40 pmichaud but if it applies and passes the test, I'm okay with it for now.
16:41 jonathan The discussion isn't on the ticket.
16:41 jonathan Well, we're only going to be as wrong as Pugs and elf and Perl 5. ;-)
16:41 pmichaud right, I think it was on p6l somewhere, contemporary with the ticket.
16:42 pmichaud so yes, if it applies and passes the test, I'm okay with it.
16:42 pmichaud hmmm, I need lunch.  I can feel energy levels draining quickly.
16:46 pmichaud are we just waiting back from November about the rakudoreg branch?
16:46 pmichaud (ack, mangled that sentence, I did.)
16:46 pmichaud is the rakudoreg branch just waiting on November confirmation?
16:50 jonathan November is broken in the branch. :-(
16:50 jonathan I probably need to get November and try it myself.
16:50 jonathan And debug from there.
16:50 masak jonathan: good idea.
16:50 purl masak: Good Idea: Cleaning up litter. Bad Idea: Cleaning up kitty litter.
16:50 jonathan Unless someone can get me a small test case.
16:51 jonathan Which would be wonderful, but maybe hard.
16:52 masak jonathan: sorry, I haven't been following the discussion. what's broken, where, how?
16:53 masak (this might sound strange, but I don't currently have November either)
16:53 pmichaud okay.  I'm doing lunch -- then back to work on :load :init issues I guess.
16:53 Whiteknight ditto, lunchtime
16:53 jonathan masak: I have a branch called rakudoreg
16:54 jonathan It implements type registration and gets rid of the ucfirst typename hack, amongst other things.
16:54 jonathan It also makes use happen at compile time - we can't not now - but does it in a way that doesn't cause the previous problems that we had with that and November.
16:55 jonathan We pass all spectests, including some new use/class ones, and I did some checks on pre-compiled modules with classes and they work.
16:55 jonathan So I'm not sure what in November breaks.
16:55 masak jonathan: how do you know that it breaks?
16:55 jonathan I asked somebody to check it with the branch and they++ (I forget who) said it was.
16:55 masak jonathan: it all sounds to me like there is at least one spectest missing :)
16:56 masak might have been ihrd.
16:56 masak ok, I'll see if I can do the same, then.
16:57 jonathan Ah, it was moritz
16:57 jonathan moritz++
16:57 jonathan Anyway, if you can reproduce, that'd be nice to have confirmation.
16:57 jonathan If you can narrow it down, that's even better.
16:57 Coke (#parrot is enough) not for those of us that don't care so much about rakudo guts, but we'll get by, I suppose. =-)
16:58 jonathan Coke: My hacking on Rakudo guts today has already resulted in one fix to Parrot. This isn't unusual.
16:58 jonathan They're at least somewhat related. :-)
16:58 * Coke skips the remainder of the review.
16:59 masak jonathan: I'm on it. will get back to you once I reach a result of some sort.
16:59 jonathan masak: That's wonderful, thanks for helping.
17:01 dalek r34031 | jonathan++ | trunk:
17:01 dalek : [rakudo] Make substr handle being given a negative start and length. Patch courtesy of Ronald Schmidt <ronaldxs@software-path.com>.
17:01 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=34031
17:02 Coke jonathan: (fixing parrot) that's certainly appreciated. And I'm trying to be much more good natured about the grumbling than we used to get in here. =-)
17:03 * Coke retreats.
17:05 jonathan Tene/pmichaud: Do we have CATCH blocks to the point that we can close http://rt.perl.org/rt3/Tic​ket/Display.html?id=58016 - if not, maybe is good to update the ticket with a what's left.
17:06 * jonathan hopes he didn't irk Coke
17:08 jonathan pmichaud: Another possible closable for you go cast your eyes over - http://rt.perl.org/rt3/Tic​ket/Display.html?id=60732
17:08 * jonathan wants to try and keep the queue clean
17:13 masak jonathan: aye, I get a Null PMC access when compiling CGI.pm -- maybe you knew this already.
17:14 masak what's worse, since Parrot crashes while compiling, there's a partially-written CGI.pir left in the directory...
17:14 masak ...and it creates other errors when make is run a second time.
17:14 * masak investigates the first error
17:14 jonathan Ouch.
17:14 jonathan masak: How much does CGI.pm depend on?
17:15 masak jonathan: checking.
17:15 masak it depends on URI.pm
17:15 masak ...which has no deps.
17:15 masak so the error, whatever it is, concerns those two files.
17:16 masak I'll play around a bit with comments and see what I come up with.
17:16 jonathan Aha, OK.
17:16 jonathan So you're saying we can reproduce it with just two files?
17:16 masak that is what I'm saying, Billy.
17:17 masak oh -- wait.
17:17 jonathan OK, that's much more handlable than the whole of November. :-)
17:17 masak URI.pm does have a dependency, URI/Grammar.pm
17:17 masak but that one has no deps, honest.
17:17 jonathan Screw you too, gaz...
17:17 masak :)
17:18 masak resuming playing-around-with-comments.
17:18 jonathan masak: Thanks, much appreciated.
17:19 masak np. I want to fix this as much as you do. :)
17:19 masak stability and features are good for both our enterprises.
17:20 masak partial insight #1: if I comment out the URI deps from CGI, the latter compiles.
17:21 masak ...and so do URI and URI::Grammar. wtf?
17:22 masak there is also another problem in Dispatcher, it seems.
17:22 Tene jonathan: 58016 should be closable.
17:23 jonathan Tene: OK, thanks.
17:23 jonathan Will close it - we can open more specific tickets for any more specific issues.
17:23 Tene pmichaud: what would you think of adding a pasttype to PAST::Ops for throwing an exception?  Message as first child, severity as second child, type as third child?
17:24 jonathan Tene++ # CATCH blocks
17:25 * Tene is going to try to do real work at $realjob today, so won't be around much (hopefully).
17:29 chromatic joined #parrot
17:34 masak jonathan: http://gist.github.com/37140
17:35 jonathan masak: That reproduces it?
17:35 masak aye.
17:35 jonathan masak: Excellent!
17:35 * purl plays air guitar
17:36 jonathan Out of curiostiy does changing grammar URI::Grammar {
17:36 jonathan to instead be class URI::Grammar {
17:36 jonathan help?
17:36 purl #perl is not a help channel, and I'm not a help bot.  If you want Perl help, try #perl-help or #metallica. or (see the 'help channel' factoid as well)
17:36 masak jonathan: hold on.
17:36 jonathan I've got a good idea what this might be if so.
17:36 masak jonathan: doesn't help.
17:36 jonathan Ah, OK.
17:37 masak good hunting.
17:37 jonathan Thanks for such a concise example, I'll be able to work it from here.
17:37 jonathan masak++
17:37 masak np
17:37 moritz when I merge ticket A into ticket B, why do I presever A's title and not B's?
17:38 moritz RT--
17:39 moritz I didn't say "assimilate B" (modulo Bork jokes)
17:39 chromatic He would have made a good Supreme Court justice.
17:40 * jonathan does some work on smartmatch
17:43 * moritz restarts feather's apache
17:43 * masak orders pizza
17:45 Lorn_ joined #parrot
17:49 * pmichaud comments for no specific reason.
17:50 jonathan pmichaud: You asked about ACCEPTS on Match the other day
17:50 jonathan I just spotted
17:50 jonathan Match                       Capture
17:50 jonathan In the equivalence table.
17:50 jonathan If you didn't already see that.
17:51 apeiron_ joined #parrot
17:53 pmichaud I hadn't seen that particular entry, no.  However, TimToady and I discussed the potential for Match ~~ Capture when captures were first being formulated, so it's not surprising to me.
17:54 pmichaud I've basically been doing things as Match isa Capture ever since then
17:54 pmichaud Tene:  ('throw' as pasttype)  -- if we really decide we need it, then yes.  At least in Rakudo, most throw operations appear to be handled by specific subs for the purpose, so they're just :pasttype('call') nodes.
17:55 pmichaud Until then I tend to continue to work from the "don't add until there's a clear use case" position for PCT
17:56 tomyan left #parrot
17:57 particle jonathan: Things people most mistook for the messiah in 2008: (1) Obama. (2) git.
17:57 particle jonathan++
18:07 peters joined #parrot
18:07 leto joined #parrot
18:11 pmichaud so, anything specific I need to be working on today?
18:12 jhorwitz joined #parrot
18:13 jonathan pmichaud: parameters? ;-)
18:13 pmichaud jonathan: still want me to wait for the rakudoreg merge?  ;-)
18:13 jonathan I don't need them especially though.
18:13 Andy joined #parrot
18:13 jonathan Oh, yes...that's a good point.
18:13 jonathan OK, loadinit ;-)
18:13 jonathan masak++ has got me a small testcase.
18:14 pmichaud yes, I'll work on :loadinit.  I need to doodle some stuff here on paper to get that worked out, though.
18:15 moritz jonathan: is it in the test suite?
18:15 jonathan moritz: Not yet.
18:15 jonathan moritz: http://gist.github.com/37140
18:15 jonathan If you want to testize it.
18:16 jonathan Otherwise I will when I look into it.
18:22 masak I still haven't checked if it matters whether the modules are in different files.
18:23 tewk I didn't loose it over Obama, but git fits my work model better than centralized source control.
18:23 jonathan masak: They weren't in different files in this case?
18:23 masak yes, just as you got them
18:24 masak but I don't know if that's essential.
18:24 jonathan masak: Then I think that it _should_ fail.
18:24 masak please explain.
18:24 jonathan S?? says that you can only use a class keyword without a block once time in a file.
18:25 masak ah. well, modulo that.
18:25 jonathan Also, I'm not sure if you're in the same file, you would then do "use".
18:25 jonathan I thought use was spec'd to go load a file?
18:25 masak jonathan: modulo that, too.
18:25 jonathan OK.
18:26 masak I'm thinking: does the error remain if I put all the classes in the same file (with appropriate changes)?
18:26 jonathan Hang on though, you have all of these in separate files, right?
18:26 jonathan Oh, I see!
18:26 masak my guess is "no"
18:26 mberends joined #parrot
18:26 jonathan Sorry, I completely misunderstood your point.
18:26 masak I have a feeling this has to do with (1) attributes and (2) use
18:26 masak but I'll go and be empirical for a while. brb.
18:26 jonathan I'm quite sure it's to do with use, and it may appear in the attributes case because of the typed attribute.
18:27 jonathan has URI ...
18:29 masak jonathan: everything works when I put all three classes in one file.
18:30 masak jonathan: I get a _different_ error when I combine CGI and URI into one file, and keep URI::Grammar separate
18:30 masak but we'll handle that later, if needed.
18:32 jonathan masak: OK, interesting to know.
18:32 jonathan It's cerainly to do with use.
18:32 dngor joined #parrot
18:32 jonathan Don't feel a need to hunt further unless you're enjoying it - you've got it down to a much smaller test case already than I had hoped for. :-)
18:35 masak jonathan: I'm not hunting anymore. I'm eating pizza. :)
18:35 jonathan masak: I'm planning to do similar shortly. :-)
18:35 masak (that said, I'm curious.)
18:35 moritz hunting is hard, let's eat pizza!
18:38 davidfetter joined #parrot
18:38 leto joined #parrot
18:39 * jonathan seems to have a working ACCEPTS for arrays.
18:39 jonathan Including dwimming on *.
18:39 * jonathan looks for tests
18:40 moritz t/spec/S03-operators/smartmatch.t, "smartmatching lists"
18:41 jonathan yeah
18:41 jonathan We don't have any yet for the dwimmy stuff, I odn't think
18:41 jonathan But I can add that.
18:43 masak jonathan++
18:48 * jonathan unfudges 2, adds 11 new and makes spectest
18:49 jonathan In the meantime, it's my turn to go for pizza.
18:49 workbench joined #parrot
18:55 masak pizza++
18:58 pmichaud okay, I figured out MAIN and init load stuff.
18:59 pmichaud it's shockingly easy once we get the right formulation.
18:59 moritz that's always a good sign ;)
19:00 pmichaud I'll implement it locally, but won't commit until we know where rakudoreg is headed.
19:00 PerlJam moritz: I thought it was a sign of normality.   "Now that I know how to do X, X is really easy"   ;-)
19:04 masak maybe good signs are normal.
19:05 moritz maybe normal signs are good.
19:08 moritz jonathan: the assign.t failure in rakudoreg worries me a bit - did you look into it?
19:22 pmichaud assign.t failing in rakudoreg?
19:22 moritz aye
19:22 pmichaud I'll look.
19:22 moritz Null PMC access in get_string()
19:22 moritz after test 153
19:22 pmichaud those are usually quick to fix.
19:22 pmichaud (have to rebuild branch...)
19:23 pmichaud what's the description for test 153?
19:23 masak pmichaud: it's skipped, so it's hard to tell.
19:24 nopaste joined #parrot
19:24 pmichaud okaay, I'll just run it.
19:24 masak pmichaud: line 468 and on contain the error.
19:26 masak pmichaud: my @z = ($a = W, W);
19:26 masak it's that one.
19:26 masak W is a sub defined just above in the file.
19:27 pmichaud maybe we need to define a dummy 'want' function.
19:27 AndyA joined #parrot
19:27 pmichaud let it just return undef.
19:27 moritz pmichaud: or a failed eval() would just have to return something that doesn't make everything bail out
19:27 pmichaud that too.
19:27 masak yes, that'd be even better.
19:28 moritz that would fix another ticket I opened roughly a week ago
19:31 pmichaud testing...
19:31 purl i think testing is Don't use #perl for testing! or experiri vovere est or make tests pass for existing features, fail for unimplemented features and skip for wishlist features
19:31 pmichaud yes, that fixes it.
19:32 pmichaud let me clean up eval a bit.
19:34 jonathan moritz: I have a local patch to fudge the assign.t failures.
19:34 pmichaud cleaning eval also fixes it, though.
19:34 pmichaud and it needs to be done :-)
19:34 jonathan OK, that's fine too.
19:34 jonathan Please don't throw in a dummy want function.
19:35 pmichaud why not?
19:35 pmichaud if it returns a failure, that's probably okay.
19:35 jonathan It'll only confuse people into thinking it should work, ratehr than getting a "sub not found".
19:35 pmichaud if the failure says "want not implemented", that's even better.
19:35 jonathan Unless it's the kind of failure that explodes with "want not found".
19:35 jonathan OK, that's alright.
19:35 jonathan As long as it doesn't silently look like it should be working.
19:36 nopaste "peters" at 83.183.129.106 pasted "a few grammar tests" (35 lines) at http://nopaste.snit.ch/14997
19:36 masak peters: hiya.
19:36 peters Hej masak
19:37 moritz peters: should I add that to the test suite?
19:38 peters sure =)
19:38 * peters hopes they are correct
19:40 moritz they are, if we assume that is() does string comparison
19:40 peters =)
19:41 moritz but I can easily change them to dtrt in any case
19:42 particle i'm sure /^<...>^/ isn't correct
19:43 masak though it looks nice. :)
19:43 masak sort of like an Asian crab smiley.
19:43 peters oops, meant ^<..>$
19:43 moritz particle: why not?
19:44 pmichaud ^<...>^  tests that <...> is zero-width :-P
19:44 moritz ;)
19:44 masak good to know when the first p6 obfu contest takes place.
19:44 pmichaud r34039 fixes assign.t for me in rakudoreg
19:44 peters moritz: want me to fix a nopaste?
19:45 jonathan pmichaud: You comitted it into rakudoreg?
19:45 pmichaud yes.
19:45 jonathan OK, great.
19:45 moritz pmichaud: I just commited a fixed version into the pugs repo
19:45 moritz s/pmichaud/peters/
19:46 peters thanks
19:47 DietCoke joined #parrot
19:47 Coke commented out code is not boss.
19:48 nopaste joined #parrot
19:48 cotto chromatic, should I change N_BUCKETS or did you want to dig into that more?
19:48 kj Coke: I take it you refer to my commented-out code ?
19:48 Coke ah, there you are. =-)
19:48 kj ... still working on that
19:48 Coke Yup.
19:48 Coke hokay
19:48 kj I'm 99.99999999% sure it's ok, but still testing with a fresh check out
19:49 kj will remove it shortly
19:51 kj Coke: is there an RSS feed for commits? I'm looking at parrotvm.org/svn/parrot, but thelink to rss is broken
19:53 moritz http://svn.perl.org/rss/log/parrot.rss
19:53 moritz purl, parrot svn rss is http://svn.perl.org/rss/log/parrot.rss
19:53 purl OK, moritz.
19:53 cotto moritz, you should put that on the wiki.
19:54 kj moritz: thanks!
19:55 pmichaud my desktop keyboard just died :-(
19:55 pmichaud (and mouse, too)
19:55 * chromatic will be a few minutes late
19:56 peters moritz: http://nopaste.snit.ch/14998
19:56 moritz cotto: any suggetion on which page?
19:56 cotto WhereIsIt
19:56 moritz peters: do you have a commit bit for the pugs repo?
19:57 peters moritz: nope
19:57 kj moritz: I'd say on developers?
19:57 moritz peters: we should change that. Just /msg me your desired nick name and your email address, and you can get one in a few minutes
19:57 moritz WhereIsIt is good
19:57 Whiteknight is dalek busted?
19:58 Whiteknight I've committed a few things, and he hasn't mentioned any of them
19:58 cotto dalek--
19:58 jonathan Hmm, nor my last few commits.
19:58 jonathan I WANT MY KARMA!!!
19:58 jonathan ;-)
19:59 Whiteknight jonathan++
19:59 cotto karma++
19:59 masak jonathan-- # greed :P
19:59 pmichaud jonathan++ # on loan for 0.00-0.25 % interest
19:59 cotto karma karma
19:59 purl karma has karma of 58
19:59 PerlJam jonathan--  (you didn't say which kind of karma)
19:59 Whiteknight That's escrowed karma, I'll take it back when dalek comes back
20:00 Whiteknight volatile int jonathans_karma; ...
20:00 jonathan ...well that was all a bit of a no-op...
20:00 masak jonathan: be glad for that :)
20:00 jonathan masak: Be glad I'm closing 2 of your tickets. ;-)
20:00 pmichaud except for the side effect that we all now you to be a greedy karma person.  :-)
20:00 masak jonathan: I am, look: \o/
20:00 pmichaud *now know
20:00 pmichaud grrr
20:00 jonathan Like that's news...why else do you think I commit so much?
20:00 * pmichaud blames his non-functioning keyboard.
20:01 TimToady phone?
20:01 purl phone is always interrupting
20:01 pmichaud phone
20:05 masak purl: forget phone
20:05 purl masak, I didn't have anything matching phone
20:05 masak purl: liar.
20:05 purl No, purl is lying!!
20:06 moritz I've added a section "Source Code" to https://trac.parrot.org/parrot/wiki/WhereIsIt now
20:06 pmichaud it looks like my usb ports on my desktop died.  :-(
20:07 jonathan :-(
20:07 pmichaud that does make troubleshooting difficult :-(
20:07 jonathan Reboot doesn't fix it?
20:07 pmichaud no.
20:07 jonathan Oh, wait, you don't run windows...
20:07 pmichaud I think it's hardware failure.
20:07 jonathan Ouch. USB port failure implies m/b fail.
20:07 pmichaud correct.
20:07 jonathan Which is one of the most annoying things to have to replace. :-(
20:08 cotto moritz++
20:09 PerlJam pm: it's so cold that the solder shrank.  Just warm it up a bit  :)
20:10 cotto Does Parrot have a way to get entropy from the system?
20:11 jonathan (whispering so masak can't here) Rakudo RT is down to 163 tickets.
20:11 masak someone say anything? I thought I heard something...
20:11 jonathan Nothing at all!
20:11 purl well, nothing at all is in core. or what stupid sexy flanders says
20:12 masak purl: every day, you make less and less sense.
20:12 purl masak: huh?
20:14 cotto masak, not a simpsons fan?
20:14 Coke flanders?
20:14 purl flanders is dead. So is Swann. More's the pitty.
20:14 Coke simpsons?
20:14 purl simpsons is, like, http://xrl.us/2doe
20:14 masak cotto: I know who Flanders is, but I fail to see the connection with what purl said.
20:15 chromatic He had a field.
20:15 Coke forget simpsons
20:15 purl Coke: I forgot simpsons
20:15 * Coke has missed the perl6 meeting again.
20:17 pmichaud Coke:  you haven't _missed_ it completely.
20:19 iblechbot joined #parrot
20:21 Coke willen have on missed it.
20:24 * Coke has nothing perl6ian to report.
20:26 chromatic willen haven
20:26 * Coke did try to find a web reference to the grammar, but was stymied.
20:27 Coke chromatic++
20:29 Whiteknight dalek--
20:30 Tene I wondered why nobody had been committing.
20:33 cotto chromatic, should I change N_BUCKETS or did you want to dig into that more?
20:33 gryphon joined #parrot
20:34 * Coke asks again if we should investigate a hash library.
20:34 Coke perhaps mhash?
20:34 jonathan Didn't google have a super-low-overhead hash?
20:34 jonathan It's another option maybe.
20:35 Coke http://goog-sparsehash.sourceforge.net/ ?
20:35 Coke er, http://code.google.com/p/google-sparsehash/
20:35 jonathan "An extremely memory-efficient hash_map implementation, with only 2 bits/entry overhead."
20:35 jonathan Sounds like it.
20:35 purl Sounds like it. is it also delicious?
20:35 Coke looks like that's C++
20:36 jonathan Oh, is it C++... :-(
20:37 jonathan Damm. Well, maybe useful for ideas, but not good if we want something we cna Just Use.
20:37 Coke I just want something we can use.
20:37 GeJ Good morning everyone
20:42 Coke jonathan: created a TT for it.
20:42 Coke TT?
20:42 purl TT is (: Template Toolkit)
20:42 Coke TT is also Trac Ticket
20:42 purl okay, Coke.
20:44 * pmichaud starts to investigate what has happened to his desktop :-(
20:44 chromatic Weasels.
20:44 purl weasels are *expensive*
20:44 chromatic cotto, go ahead.
20:45 pmichaud actually, probably rabbits in this neighborhood.  Or maybe mice.
20:45 chromatic I've been thinking today that we should cut out all of the really smart really fast we know this has to be super optimized clever parts of hash.c and make a simple hash and only then profile it and worry about speed.
20:46 chromatic The fact that the bucket allocation code is impenetrable and, as far as I know, could never work correctly in all cases damns it even slightly.
20:47 pmichaud I would not be adverse to that.
20:47 Coke chromatic: is it worth doing that rather than just dumping the whole thing if we can go with a portable-enough library?
20:47 pmichaud the fact that the various "-g bugs" all seem to involve keys and key lookups makes me wonder if it's hash related.
20:47 mberends chromatic: "premature optimization is the root of all evil" C.A.R. Hoare, and D. Knuth
20:47 Coke I would really like us to not reinvent so many wheels.
20:47 pmichaud that would be consistent with what I've observed, anyway.
20:47 chromatic Coke --> Allison
20:48 Coke chromatic: if 3rd party library is problematic, undoing undocumented speed hacks++.
20:48 chromatic I'd love to dump a lot of that code and absorb a license-compatible file or two, but I've never managed to convince her of that.
20:49 chromatic pmichaud, you may have missed last night how I said that keys are one of my top four least favorite parts of Parrot's source code.
20:49 allison absorbing files from other projects is a world of pain
20:49 Coke we just don't have enough cycles to do everything ourselves.
20:49 particle cerberus is a car whore
20:49 allison making certain external libraries a build requirement, though is fine
20:49 chromatic Cerberus is still Pope.
20:49 allison we already do it with ICU
20:49 chromatic That's 'cuz you can't just drop ICU into your source tree.
20:50 Coke ... we tried that. it kind of worked.
20:50 allison (we just need an intelligent default for cases where the library isn't available)
20:50 Coke I'd rather depend on a library than not.
20:50 particle icu isn't a requirement
20:50 particle it's optional
20:50 Coke particle: it is if you want to do anything serious with unicode.
20:50 Coke which we claim to support.
20:50 allison particle: right, external libraries always need a fallback
20:50 NotFound Are we inventing the optional requirement? ;)
20:50 Coke it's not required for "one wing" parrot.
20:51 Coke clipped. =-)
20:51 particle let's call it the american parrot.
20:51 particle brooklyn parrot? they exist.
20:51 Coke allison: when is the library not available?
20:51 Coke (for, say, a 3rd party library that we know compiles on all our platforms)
20:51 Coke s/platforms/core platforms/
20:52 Coke any time we have to roll our own default, we might as well just ditch the 3rd party library entirely.
20:52 chromatic o/~ It's the American Way o/~
20:53 NotFound The default for no icu is that a lot of things doesn't work. I don't think this will be a reasonable default for hashes.
20:54 Coke NotFound: true.
20:54 chromatic Hashes may be tricky though, because we do a lot of things with them; sometimes their keys or values need marking during GC.
20:55 allison Coke: that is what we decided before, but there still could be value in using an external library
20:55 Coke I think it would probably increase our support burden if we had our version and an external library.
20:56 Coke but, again, if we assume that we have a library that works on all our core platforms (which I mentioned in the ticket), we don't need a fallback. Do we?
20:56 Coke (and if so, why?)
20:57 NotFound We can put a linear search as fallback, as a subtle motivation to install the library ;)
20:58 tewk NotFound: for small hashes that may be faster :)
20:58 chromatic I'm not sure we don't have a linear search in some cases now.
20:58 allison Coke: it depends on the library, and how many platforms it's supported on
20:58 NotFound tewk: ugh, that defeats the purpose
20:59 PerlJam are we assuming compatible licensing for these hypothetical 3rd party libs?
20:59 allison Coke: the big three we're targeting for 1.0 is not enough
20:59 Coke allison: why not?
20:59 chromatic Because the world is not enough!
20:59 kj sounds like another James Bond movie
20:59 allison Coke: because people need a sane way of porting Parrot to other platforms, and telling them "you have to reimplement the hashing algorithm" isn't an option
21:00 chromatic Yeah, but telling people "We have an amazing virtual machine with wonderful features" and having them say "You don't know how to write a hash; WTF?" is kind of embarrassing.
21:00 Coke We only have so many resources available to us: we already didn't meet all the goals for the first post-PDS release. I'm not sure that having us write more code is a viable option.
21:01 allison we're talking in hypotheticals here
21:01 Whiteknight How much work is it going to reasonably take to write a good hashing algorithm?
21:01 allison put together a list of available external hash libraries and we can evaluate which will or won't work
21:01 chromatic Depends if you're a mathemetician.
21:01 allison and what the cost/benefit trade off for each is
21:01 Coke allison: I'm trying to find out if it's even worth it. Sounds like not.
21:01 Whiteknight howabout mathemagician?
21:01 chromatic No; they always trigger division by zero exceptions.
21:01 allison Coke: oh, it's absolutely worth investigating
21:02 Coke that's certainly not the impression I was getting. =-)
21:02 Lorn joined #parrot
21:02 allison I'm outlining the parameters of what we would need from an external library, not shooting the idea down
21:03 Coke If we always need to write a fallback, it's not worth pursuing, IMO.
21:03 kj I don't think the amount of code is the only concern; it's what kind of code. A hashing algorithm shouldn't be too hard?
21:03 chromatic At the very least, anyone who's done basic research into hash algorithms can look at ours and say "Don't you know that your bucket count should be a prime number, and definitely not a power of two?"
21:03 PerlJam Coke: getting something working and correct that will be replaced later makes it not worth it?
21:03 chromatic ... which suddenly clarifies N_BUCKETS, even though it's used consistently wrong.
21:04 allison a very simple hashing algorithm is a fine fallback, but not what we'd want to use most of the time
21:04 tewk a secure hashing algorithm is non trivial
21:04 Whiteknight if we had a good general hashing API, we could write any number of ever em-bettering backends for it
21:04 jonathan That's a completely different thing.
21:04 Coke I think my point is either misunderstood or disagreed with.
21:04 jonathan (secure hashing...)
21:04 NotFound If we want to have something working and correct without much effort, maybe the linear search is not such a bad idea.
21:05 allison Coke: possibly both, it's true that I don't see the problem
21:05 Coke PerlJam: what?
21:05 kj linear search is in fact not that bad. I did some experiments, and I had to add like 2000 strings (or was it 15000? either case, big number) to my symbol tables before hashtables started to be faster
21:06 chromatic Or an ordered heap....
21:06 Whiteknight i have to go. later
21:06 chromatic But you have to account for the comparison overhead.
21:06 NotFound kj: c strings, parrot strings, or both?
21:06 chromatic And the fact that our hashes are polymorphic.
21:06 kj NotFound: i was doing C strings
21:06 PerlJam Coke: it sounded like you think it's not worth investigating other mechanisms if they are going to be replaced at some point.
21:07 allison linear search is a perfectly reasonable fallback, ordered heap may be more complex than needed but may work
21:07 kj I was really quite dissappointed.
21:07 PerlJam I'm only paying about 40% attention, so if I'm wrong just ignore me :)
21:07 jonathan kj: That suggests our hashing may be rather broken... :-S
21:08 jonathan Or at least inefficient.
21:08 tewk jonathan: I ment in DDOS senarios, bad hash algorithms can lead to long runtimes.
21:08 jonathan Ah, OK.
21:08 jonathan I thought you meant like, SHA-1
21:09 kj jonathan: it was PIRCs hashing algorithm, which I stole from IMCC. Yes, it may be bad, but it could be easily fixed (very local code)
21:09 jonathan kj: Ah, OK, I thought you were using Parrot hashes.
21:09 jonathan It may be worth a benchmark on those against arrays.
21:09 jonathan We use hashes all over the place, though.
21:10 jonathan I expect we're quite sensitive to hash performance.
21:10 pmichaud I'm sensitive to hash bugs, for sure.  :-)
21:10 PerlJam too bad we don't have any profiling tools   ;)
21:11 pmichaud (cleaning the motherboard with compressed air seems to have restored my usb ports.  Well, at least the keyboard.  And I haven't plugged in any other usb devices.)
21:11 chromatic Some 5% of runtime for "Hello, world!" in PIR hits hash code.
21:12 pmichaud (so, at least it doesn't appear that I need a new motherboard yet.)
21:12 jonathan compressed air FTW
21:12 allison PerlJam: I think Coke meant that if we spend the effort on implementing a hashing algorithm for a fallback, then it seems a waste to also spend it on linking in an external one
21:12 chromatic Hm, and some 8% of runtime in the Rakduo building benchmark hits hashes.
21:12 NotFound Motherboards are like humans, sometimes they just need some fresh air.
21:13 chromatic Wait, no.  Closer to 16%.
21:13 jonathan Wow.
21:13 chromatic Maybe 18%.
21:13 kj can't we just use the hashing algorithm in the Dragon book?
21:13 jonathan Is that the time we spend insice the hash code?
21:13 allison PerlJam: but, I suspect there's a huge difference in effort between maintaining a fully optimized hash algorithm, and maintaining a light simple one as a fallback
21:13 kj that was written by the Experts :-)
21:14 Coke partcl is closer to 25%, IIRC.
21:14 PerlJam kj: Knuth didn't write the dragon book  ;)
21:14 PerlJam allison: right.
21:14 purl i heard right. was there any chance you could get the fixes into branch?
21:14 chromatic Let's figure a rule of thumb for 20% of time in the hash code.
21:14 Coke PerlJam: given our new release driven psyche, yes, I want to minimize the amount of time spent coding things that don't get us 1.0
21:14 kj PerlJam: right, but it was either Aho, Sethi or Ullman, all of which I trust to be smart enough
21:14 allison chromatic: which makes it a big target for a speedup
21:14 Coke (including experimental code)
21:14 pmichaud PGE heavily depends on hashes.
21:14 chromatic Fixing the N_BUCKETS fiasco might help.
21:15 pmichaud so do named arguments.
21:15 pmichaud so anything doing parsing and/or method calls ends up doing a lot of hash work.
21:15 * Coke wonders where his partcl commit messages are.
21:15 chromatic If we can get a prime number (or at least a non-power-of-two number) of keys per hash, that might help.
21:15 PerlJam what's wrong with using Perl 5's algorithm?
21:16 chromatic This is pretty close.
21:16 Coke kj++ #  deprecation updates
21:17 kj Coke++ # setting a Good Example
21:17 Coke can someone do partcl a favor and test http://code.google.com/p/partcl/wiki/PartclSource "For users" ?
21:17 pmichaud rakudo:  say 'pmichaud', '++', ' # trying to keep ahead of jonathan++';
21:17 Coke after that, 'make test' should mostly work in partcl.
21:17 polyglotbot OUTPUT[pmichaud++ # trying to keep ahead of jonathan++␤]
21:17 * PerlJam changes INITIAL_BUCKETS to 37 in his copy of parrot  :)
21:18 allison Coke: (re: 1.0) that's fair, and really I have doubts whether we'll find an external library that's flexible enough to fit our use case (though I'd love it if that were proven wrong)
21:18 particle who's the perl 5 hash king?
21:18 Coke *fffffffp* whaaaat?
21:19 jonathan pmichaud: I'm getting sleepy now, use it to your advantage!
21:19 moritz does the hash king do hashing? *SCNR*
21:19 pmichaud jonathan: what's the story on rakudoreg?  Do I need to still hold off on other stuff, or do it in a separate branch?
21:19 NotFound Coke: svn: URL 'http://partcl.googlecode.com​/svn/trunk/branches/stable' doesn't exist
21:19 * Coke sees that extjs has changed their licensing starting with 2.1 to something too invasive and talks to his boss about buying a commercial license.
21:19 Coke NotFound: ... s/\/trunk//
21:19 Coke fixing the wiki.
21:20 jonathan pmichaud: I will look at the bug with the November stuff tomorrow.
21:20 jonathan masak++ got it down to a small test case
21:20 pmichaud okay.  Much of the stuff I'm wanting to do kinda blocks on that.  :-(
21:20 jonathan So it's either (a) going to be easy to find and fix or (b) mean I've screwed up something bad.
21:20 jonathan Ah.
21:20 pmichaud where's the test case...maybe I can take a crack at it?
21:20 jonathan Are you expecting conflicts?
21:20 pmichaud well, if I'm changing loadinit stuff... maybe.
21:20 Coke NotFound++ #wiki updated.
21:21 pmichaud or if I'm working on parameters... likely.
21:21 jonathan OK.
21:21 jonathan Let me make a cup of tea, and then let's look at the november bug.
21:21 jonathan erm, bug that breaks november ;-)
21:21 jonathan First step is sync branch with what's in trunk.
21:21 Coke allison: regarding the stable branch on tcl, I'll probably just rm the branch and recreate it whenever a new release that works with trunk HEAD comes out.
21:22 Coke (rather than do any serious merging between the two.)
21:22 NotFound Coke: builds find with parrot trunk
21:22 NotFound s/find/fine
21:22 pmichaud I don't have svn 1.5, so you might need to do the sync step.
21:22 moritz pmichaud: http://gist.github.com/37140
21:22 Coke NotFound: it will fail at runtime.
21:22 allison Coke: seems sensible
21:22 Coke (as it tries to use ParrotIO)
21:22 jonathan pmichaud: Just starting it now.
21:22 Coke NotFound: try "make test" ...
21:22 jonathan The bug...oh, mortiz' link :-)
21:23 Coke (partcl's trunk should run, mostly, against parrot's trunk.)
21:23 moritz Coke: tried the instructions on the wiki...
21:23 moritz svn: URL 'http://partcl.googlecode.com​/svn/trunk/branches/stable' doesn't exist
21:23 NotFound Coke: lots of fails...
21:23 Coke moritz: please refresh. that was reported at about 4 minutes ago.
21:23 Coke NotFound: didn't I just say that?
21:24 Coke (against trunk I expect everything to fail. that's why the instructures say to try against parrot 0.8.1
21:24 NotFound Coke: just confirming ;)
21:24 Coke er, "instructions"
21:24 Coke NotFound++
21:24 moritz Coke: ok, works
21:25 Coke moritz: does "make test" work in languges/tcl after that?
21:26 moritz Coke: that's still running
21:26 Coke any failures yet?
21:26 Coke (if not, it's probably fine.)
21:26 moritz t/cmd_lsort...................... Dubious, test returned 1 (wstat 256, 0x100) All 22 subtests passed
21:27 moritz attempt to access code outside of current code segment
21:27 Coke yup.
21:27 pmichaud okay, trying moritz's example in rakudoreg, I currently get
21:27 pmichaud Null PMC access in getprop()
21:27 pmichaud current instr.: 'anon' pc 108 (EVAL_16:49)
21:27 pmichaud called from Sub 'parrot;Perl6;Grammar;typename' pc 94550 (src/gen_grammar.pir:28963)
21:27 pmichaud does that sound right?
21:28 Coke moritz++
21:28 Coke moritz++
21:28 moritz Coke: apart from that, everything fine
21:28 Coke moritz: I just updated http://code.google.com/p/partcl/wiki/TestingPartc to mention that.
21:28 jonathan pmichaud: I think that's consistent.
21:28 pmichaud okay.  I'm not doing anything pre-compiled yet, just running CGI.pm straight from source.
21:29 jonathan pmichaud: OK.
21:29 jonathan Apparently pre-compiled sometimes worked.
21:29 pmichaud why 'getprop'?
21:29 pmichaud afair, actions.pm doesn't actually use getprop for anything.
21:30 jonathan It's not in an action.
21:30 jonathan OK, just done sync'ing
21:30 jonathan Getting a clean build.
21:30 pmichaud oh, you're right, it's in the grammar.
21:31 pmichaud I think that should go in an action.
21:32 jonathan What should?
21:32 purl A perfect world should never need "should".
21:32 pmichaud the <?{{ ... }}>  assertion
21:32 jonathan It affects the match.
21:32 pmichaud that's okay, we can make that happen.
21:33 jonathan Let's try and fix the bug. We can refactor later.
21:33 pmichaud I'm not a big fan of "refactor later" -- that's how we end up in these messes in a lot of cases.
21:33 Coke I recommend we remove compilers/imcc/Changelog
21:33 Coke (it's a holdover from when imcc wasn't core.)
21:33 pmichaud that said, we can figure out the bug, yes.
21:33 kj Coke: +1
21:33 purl 1
21:33 Coke kj: I'm heading out. feel free to grab some karma. =-)
21:34 Coke ->
21:34 jonathan I don't see what moving the code to an action, even if there's an easy way to do it, would achieve.
21:34 kj Coke: oki
21:34 jonathan (I am curious how you do it though.)
21:35 pmichaud right now we're taking something that should be   <?{ $c.is_type(...) }>   and turning it into a huge amount of PIR code.
21:35 PacoLinux Coke: make test seems to hang for me in : t/cmd_break....................1/4
21:35 pmichaud the grammar should not be so long.
21:36 pmichaud anyway
21:36 pmichaud $P0 = getprop 'enum', $P0
21:36 pmichaud is that the getprop that's giving us an issue?
21:36 jonathan I think it's the only one in there.
21:37 pmichaud $P0 gets set by the 'class' opcode.  I didn't think there was an official 'class' opcode.
21:37 * jonathan wants to clear these tests up and have us just checking for does Abstraction eventually.
21:37 NotFound Coke: fine with 0.8.1, just the cmd_lsort fail.
21:37 jonathan pmichaud: There is, it maps to get_class vtable.
21:37 pmichaud I've been using typeof
21:38 PacoLinux Coke: i'm testing with trunk, not 0.8.1, sorry ..
21:38 jonathan Does that return a PMC?
21:38 jonathan I thought it only gave string and int back...
21:38 pmichaud yes.
21:38 pmichaud $P0 = typeof $P1    # gets class of $P1
21:38 jonathan Oh.
21:38 pmichaud obviously 'class' is somehow returning PMCNULL, though
21:40 jonathan Ah.
21:40 jonathan You know, it doesn't complain here.
21:40 jonathan svn up
21:40 pmichaud okay, trying again after svn up.
21:40 jonathan I think the grammar namespacing stuff (which Chris Dolan's patch fixed) might have been putting stuff int he wrong place.
21:41 pmichaud yes, that would make sense.
21:41 jonathan oh, argh!
21:41 jonathan I ran the wrong thing!
21:41 jonathan Ignore that.
21:42 pmichaud I still needed the svn up.
21:42 jonathan Well, svn up anyway so we're debugging the same code.
21:42 pmichaud realclean and rebuild now.
21:42 jonathan I did one, yes.
21:42 pmichaud (realcleaning and rebuilding now)
21:42 jonathan Just in case.
21:42 purl Break glass, retrieve shotgun.
21:43 pmichaud looks like 'class' and 'typeof' do the same thing.
21:43 pmichaud (checked while waiting for rebuild :-)
21:43 jonathan heh
21:43 jonathan Typical. :-)
21:44 pmichaud I think allison once said that 'class' was going away, so use 'typeof' instead.
21:44 jonathan OK
21:44 pmichaud but I'm not sure about that.  We can add it to our "deprecation?" list.
21:44 jonathan I didn't know typeof handed back a PMC too.
21:44 allison jonathan: that was a new addition
21:44 jonathan Well, it'd make sense to have one opcode that does it, not two doing the same thing. :-)
21:44 jonathan allison: Ah, OK.
21:45 jonathan I'm happy to see class deprecated if typeof lets us get the class.
21:45 jonathan pmichaud: Changing has URI $.uri; to has $.uri clears it up
21:46 pmichaud jonathan: so, do we just tell november to not type-qualify their attributes?
21:46 jonathan No
21:46 jonathan That sucks. :-)
21:46 pmichaud it wouldn't bother me, if it meant we could merge.
21:46 jonathan Also commenting out use URI::Grammar; in the other file helps.
21:46 jonathan (One change or the other.)
21:47 tewk long_running_branches--
21:47 pmichaud okay, still building
21:47 pmichaud so far this branch is pretty short
21:47 pmichaud like, 24 hours, I think.  :-)
21:47 tewk shorter the better :)
21:48 pmichaud (Trac)  maybe someone with some Trac-fu could fix https://trac.parrot.org/parrot/report/3 so that tickets not related to any milestone don't appear in the output?
21:48 pmichaud or at the bottom?  it seems weird that they are at the top, when asking for "active tickets by milestone"
21:48 jonathan pmichaud: OK, big clue.
21:49 jonathan pmichaud: If URI.pm is
21:49 jonathan class URI;
21:49 jonathan use URI::Grammar;
21:49 pmichaud after svn up, rebuild, I still get the 'getprop' error.
21:49 jonathan It fails. If, however, it is
21:49 jonathan use URI::Grammar;
21:49 jonathan class URI;
21:49 jonathan Then it works.
21:50 pmichaud well, the second version isn't valid Perl 6, I don't think.
21:50 jonathan Oh?
21:50 jonathan Ah, becuase it needs to be the first statement in the file...
21:50 pmichaud correct.
21:50 pmichaud See the beginning of S11.
21:51 pmichaud (we don't check for that at the moment.)
21:51 pmichaud yes, I still get the same error message
21:51 pmichaud Null PMC access in getprop
21:52 jonathan thinking...
21:52 purl http://www.terrybisson.com/meat.html
21:52 pmichaud oddly, -t1 doesn't show that getprop instruction.
21:54 jonathan pmichaud: Got an idea it's to do with the cleanup stuff.
21:54 jonathan Let me try a couple of things.
21:54 chromatic cotto, I'm not sure N_BUCKETS is wrong anymore.
21:54 pmichaud we decided yesterday that we didn't need the cleanup stuff, yes?
21:54 pmichaud or that "we shouldn't need" it
21:55 jonathan Yes
21:55 jonathan The latter.
21:55 purl or batter or letter or butter
21:55 pmichaud where is the cleanup stuff?
21:55 pmichaud nm, found it
21:57 jonathan pmichaud: See esp the bit in use_statement
21:57 jonathan Which I fear may be guilty.
21:59 pmichaud I really would prefer to eliminate @?UNDER_CONSTRUCTION
21:59 jonathan comment out line 121 to see what happens without it
22:00 jonathan If we can fix that, we can probably do away with it.
22:00 pmichaud what should I expect to see (while I'm waiting for compile to finish)
22:01 jonathan oh, uh, comment out the whole loop
22:01 jonathan :-)
22:01 jonathan Otherwise you sit in an infinite loop
22:01 pmichaud I did comment out the loop.
22:01 jonathan Guess who forgot.
22:01 jonathan ;-)
22:01 pmichaud when trying to run CGI.pm, I get Null PMC access in isa()
22:01 pmichaud is that what I should see?
22:01 masak that sounds like the second error I found.
22:02 masak the one I never discussed with jonathan.
22:02 jonathan That isn't exactly what I was getting before - I saw stuff going on in protoobject.
22:02 pmichaud nopasting backtrace
22:03 jonathan pmichaud: If we're going to debug the problem that makes us need the cleanup at the moment, I suggest a smaller example.
22:03 jonathan class A { }; A.new
22:03 jonathan That will do it.
22:03 nopaste "pmichaud" at 72.181.176.220 pasted "backtrace after commenting out @UNDER_CONSTRUCTION" (46 lines) at http://nopaste.snit.ch/15002
22:03 pmichaud yes, that's much easier.
22:04 cotto chromatic, how so?
22:05 jonathan pmichaud: Yes. Note it's curious where it occurs in the PIR.
22:05 jonathan There isn't an isa instruction there
22:05 pmichaud how do you know?
22:05 jonathan Add --target=pir
22:06 jonathan Line 5 of that is capture_lex
22:06 jonathan get_hll_global $P26, ["A"], "_block25"
22:06 jonathan capture_lex $P26
22:06 pmichaud capture_lex calls VTABLE_isa
22:06 chromatic cotto, it creates only 3/4 as many Buckets as there are slots in the Bucket array.
22:06 cotto right
22:06 jonathan I'm guessing that us installing an A at compile time, messes up somehow the creation of the nested namespace.
22:07 chromatic The problem is that OrderedHash's clone thinks that there are as many buckets as the value of hash->mask, which isn't true.
22:07 jonathan Of course, if we do it afterwards (for the proto) it works and we can have both. :-S
22:07 chromatic hash->mask represents the offset for the slots in the Bucket array.
22:07 chromatic If you use that as the offset for the Buckets themselves, you'll walk into the Bucket array 3/4 of the way through.
22:07 pmichaud I thought I had tested that installing an A didn't mess up later namespaces.
22:07 pmichaud let me check.
22:07 chromatic That's why the 13th bucket always gets weirdness in it.
22:08 cotto that makes sense
22:08 chromatic OrderedHash's clone thus does the wrong thing.
22:08 masak the 13th bucket. good name for a band.
22:09 nopaste "pmichaud" at 72.181.176.220 pasted "namespace management with protos" (17 lines) at http://nopaste.snit.ch/15003
22:10 jonathan pmichaud: Hmm. So it's not that simple.
22:10 pmichaud it may actually be simpler -- I just don't think that's it.  :-)
22:11 Theory joined #parrot
22:11 cotto So the fix would be to make OrderedHash only use <= 3/4*hash->mask+1 buckets (i.e. 1/2*hash->mask+1)?
22:12 chromatic Yeah, something like that.
22:12 purl yeah, something like that is what I'd do as well
22:12 jonathan pmichaud: It is something to do with what we leave behind in the ns though
22:12 cotto I'll see if that works.
22:12 chromatic for (i = 0; i <= ((hash->mask - 1) * 3 / 4); i++) {
22:13 pmichaud okay, I'll try another test.
22:13 pmichaud just a sec.
22:13 jonathan If you take the PIR that --target=pir spits out, save it to a file, and run that file, it works.
22:14 nopaste "pmichaud" at 72.181.176.220 pasted "namespace management with protos, #2" (20 lines) at http://nopaste.snit.ch/15004
22:15 jonathan pmichaud: Hmm
22:15 jonathan What about if you put an UnderConstructionProto in the NS first?
22:15 jonathan Rather than a new class?
22:16 pmichaud I agree that for some reason the @UNDER_CONSTRUCTION is cleaning it up.
22:16 chromatic cotto, all tests pass for me.
22:16 pmichaud but here's the thing...
22:16 pmichaud by the time you clean up @UNDER_CONSTRUCTION, shouldn't the construction proto already be gone anyway?
22:16 pmichaud I mean, wouldn't it have already been replaced by the protoobject for A?
22:16 jonathan No, because at that point we have not yet run the code that makes the proto-object.
22:16 cotto I don't like how that makes OrderedHash depend on Hash's internals, but it seems to solve the problem.
22:16 jonathan We run that as we're leaving the parser
22:17 pmichaud which parser?  the nested one?
22:17 jonathan Well, the nested one should only clean up the UnderConstructionProtos that it created.
22:17 chromatic OH jumped that shark years ago.
22:17 jonathan My suspicion is that it was maybe being overzealous.
22:18 cotto Yeah, it did.
22:18 cotto too many broken windows already
22:18 pmichaud okay.  Here's what I'd like to propose, which you're welcome to veto.
22:18 chromatic We should pull some of this code into src/hash.c someday.
22:19 pmichaud Earlier today I figured out how main, load, and init should work.
22:19 chromatic Did you have a failing test case which this fixes?
22:19 pmichaud It's *much* cleaner than what we're doing now.
22:19 pmichaud I suspect the problem we're seeing has to do with the convoluted way we're handling main/load/init now.
22:19 jonathan It may well be an ordering problem, or some other effect of that, yes.
22:19 cotto The clone fix makes a test pass which failed otherwise, but also passed when N_BUCKETS was an identity macro.
22:19 jonathan You pondering doing your changes/cleanups in this branch too?
22:19 cotto I think that means yes.
22:19 pmichaud I'd like to go ahead and fix main/load/init tonight.  I can do it in a branch, or in trunk, your preference.
22:20 pmichaud I'd rather do it separate from this branch.
22:20 jonathan Is there any reason not to do it in...ah, ok
22:20 chromatic Which test was that?
22:20 jonathan It would avoid conflicts.
22:20 pmichaud because otherwise I don't know if it's this branch or my changes that are causing things to fail.
22:20 cotto the clone test in OrderedHash
22:20 jonathan True.
22:20 cotto t/pmc/orderedhash.t
22:20 pmichaud then I'd like to see if we can re-generate the type checking from that new branch.
22:20 jonathan I don't think there would be that much merge conflicts.
22:21 pmichaud it didn't take too long to get typechecking to work in the first place, and we know where the pitfalls are likely to be.
22:21 chromatic I didn't have any failures there.  Interesting.
22:21 cotto (it failed when the hash seed was 3794, although it worked fine with 3793)
22:21 pmichaud but then at least we'll know that it's not an ordering issue.
22:21 jonathan True.
22:21 cotto It seemed to be the only test that couldn't deal with a fixed random hash seed.
22:22 pmichaud I'll also draft a version of what I think the "is this a type" code should look like, to get rid of the long assertion.
22:22 pmichaud (it won't go in an action method.)
22:22 pmichaud (well, it might, but it'll be very obvious how it works.)
22:22 jonathan Essentially, moving what's there now to something we call from the grammar rule instead?
22:22 pmichaud yes.
22:22 jonathan OK, that's fine.
22:23 jonathan If you set about trying to shorten it down to the .does(Abstraction) test I want it to end up being on the thing that's in the NS, that'll probably make the branch take a while longer. :-)
22:23 pmichaud then once load/init/main are fixed up, let's look at 'use' again.
22:23 chromatic How do I file a new TT from email?
22:24 Tene I don't think you can yet.
22:24 pmichaud I'm thinking a lot of things will clear up.
22:24 pmichaud and this would happen tonight, literally.
22:24 chromatic Gah.
22:24 Whiteknight joined #parrot
22:24 pmichaud so that you could pick it back up again tomorrow.
22:24 jonathan (The point was to get the type registry in and clear up things in a bunch of smaller refactors, as I review them, make them work in the nested case, and so forth.)
22:25 Theory joined #parrot
22:25 jonathan I didn't want a long drawn out branch, and I did want to get type registry stuff in early, so we can get plenty of feedback before the next release.
22:25 pmichaud I'm still thinking it can happen in the next day or two.
22:25 pmichaud I don't want long-drawn-out either.
22:25 pmichaud but I think type registery depends on use, and use depends on load/init/main.
22:26 jonathan OK, what I suggest.
22:26 chromatic cotto++
22:26 jonathan Go ahead and do the init load stuff and put it into trunk
22:26 jonathan Then we'll fix up use in trunk, which may well just be uncommenting the two lines.
22:26 jonathan Then when we know we have those two working, *then* the type registry can go in.
22:27 pmichaud this sounds good.
22:27 pmichaud one modification
22:27 jonathan Since use is only one small part of the diff from branch to trunk
22:27 pmichaud I'm going to start init load in a branch
22:27 pmichaud but I expect it to be a short branch, and I expect I'll be able to merge to trunk.
22:27 pmichaud but if I run into difficulties, we'll leave it in a branch and re-think from there.
22:27 jonathan When I said put it into trunk I didn't mean "don't work on it in a branch first".
22:27 pmichaud okay.
22:27 pmichaud then we're in agreement.
22:27 jonathan I just meant, let's try and merge it into trunk before doing the next step.
22:28 pmichaud excellent.
22:28 pmichaud I expect I will have load/init/main fixed in a few hours.
22:28 jonathan OK, great.
22:28 masak pmichaud++
22:28 jonathan At least it eliminates one possible factor.
22:28 pmichaud yes
22:28 jonathan And it'll be likely easier to debug once you've done that if it doesn't fix the problem.
22:28 pmichaud and makes what else we have to do much easier to figure out.
22:29 pmichaud okay, that's the plan.  thanks.
22:29 chromatic Where'd our announce bot go?
22:29 pmichaud I'm _sooooo_ glad I'm not spending the night troubleshooting hardware on my desktop.  :-|
22:30 Tene pmichaud: anything you want me to work on?
22:30 jonathan chromatic: It's still on the channel, just not saying anything.
22:30 jonathan Is the RSS feed or whatever it gets its data from working?
22:31 pmichaud Tene:  iwbni the various control traits were in a single rule instead of separate   begin_statement end_statement catch_statement control_statement  rules
22:32 pmichaud but let me check STD.pm on taht
22:32 pmichaud yes
22:33 pmichaud maybe that's not so useful... but at some point we should be able to do    $<sym>=[BEGIN|END|CATCH|CONTROL|...]   (or some subset of those) and not have a separate rule/method for each.
22:33 pmichaud especially if the PAST generated for some subset of them is essentially the same except for one or two attributes.
22:34 * Tene nods.
22:34 pmichaud (I'm thinking that CATCH and CONTROL are pretty similar at this point)
22:34 pmichaud (I suspect NEXT/REDO/LAST will be also)
22:34 pmichaud avoiding the separate rules will keep the parsing speed up a bit.
22:36 pmichaud a good cleanup task in general (for anyone who wants to do a patch) would be to find the instances of
22:36 pmichaud $P0 = new 'Failure'
22:36 pmichaud and replace them with
22:36 pmichaud $P0 = 'undef'()
22:37 pmichaud in the various builtins and classes
22:37 cotto We need dalek back.
22:37 cotto (and active)
22:39 Limbic_Region joined #parrot
22:40 Tene srsly
22:40 Tene Who runs dalek?  They deserve praise.
22:40 cotto the rss feed is working fine
22:40 jonathan pmichaud: There's a ticket in RT that says to replace new 'Failure' with '!FAIL'() IIRC.
22:40 pmichaud there are two cases.
22:40 jonathan :-)
22:41 pmichaud to signal an error of some sort, use '!FAIL'
22:41 pmichaud to return an undef, we should be using 'undef'
22:41 pmichaud (some places simply create a Failure object)
22:41 pmichaud !FAIL is preferable when it's appropriate, yes.
22:42 pmichaud I just happened to run across a couple while doing other cleanups this week.
22:42 pmichaud there might not be many more left.
22:42 jonathan I purposefully didn't do the ticket as it looked like an easy entry point for somebody wanting to get into Rakudo.
22:43 jonathan But have been trying to not put nay more cases in to convert too. ;-)
22:44 pmichaud yes, same here.
22:44 pmichaud okay, I need to take a break for a bit.  will bbiaw
22:44 pmichaud (to fix load/init/main)
22:44 jonathan ok
22:52 cotto seen Infinoid
22:52 clunker3 Infinoid was last seen on #parrot 3 months, 23 days, 7 hours, 7 minutes and 41 seconds ago, saying: now all we need is an opengl-based configurator :)
22:52 purl Infinoid was last seen on purl 21 hours, 50 minutes and 47 seconds ago, saying: <private message>
22:52 Infinoid I didn't do it!
22:58 cotto Infinoid, are you dalek's babysitter?
23:06 Infinoid `n
23:06 Infinoid diakopter: I think that's you
23:06 cotto seen diakopter
23:06 clunker3 diakopter was last seen on #parrot 6 months, 7 days, 18 hours, 11 minutes and 35 seconds ago, saying: as in, "that meme went down the googlehole"
23:06 purl diakopter was last seen on #parrot 41 days, 8 hours, 45 minutes and 56 seconds ago, saying: although the Ruby one is comparable.  [Nov  6 14:20:33 2008]
23:06 cotto that's no good
23:06 * Infinoid logs into feather to take a look
23:06 Limbic_Region cotto - I have his email address(es) if needed
23:07 cotto That'd be good.  dalek has stopped working.
23:07 Limbic_Region just a second (or a few)
23:07 cotto thanks
23:08 Infinoid I'm taking a look now, if it's something simple I'll fix it
23:08 Limbic_Region diakopter@gmail.com
23:08 Limbic_Region he prefers not to publicly use email addresses with his real name
23:08 Limbic_Region but if you don't get a response there - let me know and I can send something on
23:09 Infinoid it runs from supervise; killing it should reset it.  lets try that first
23:09 dalek joined #parrot
23:09 Theory joined #parrot
23:09 Infinoid ok.  now, commit something :)
23:10 jonathan rakudo day can haz report http://use.perl.org/~Jonath​anWorthington/journal/38113
23:11 * cotto hopes for an easy codingstd violation to fix
23:12 cotto found one
23:13 cotto committed
23:13 purl The chicken is involved, but the pig is *committed*.
23:13 moritz purl, forget committed
23:13 purl moritz: I forgot committed
23:13 cotto now I want bacon
23:15 bacek_ joined #parrot
23:17 chromatic I wanted chocolate.
23:17 chromatic Now I want a bacon truffle.
23:18 moritz t/op/string_cclass                      (Wstat: 256 Tests: 11 Failed: 1) Failed test:  7
23:20 masak jonathan++ # $newdog = $olddog.clone(:trick);
23:21 cotto That doesn't address the didactic issues.
23:23 chromatic Hash-wise?
23:26 cotto message to diakopter sent
23:26 purl Message for to stored.
23:26 cotto purl--
23:26 purl cotto: sorry...
23:27 cotto botsnack
23:27 purl :)
23:33 to hello
23:33 to hrm, shouldn't purl have told me I have messages?
23:33 to heh, there were two messages
23:37 Infinoid dalek's not working because the rss feed is not returning any data
23:37 Infinoid infinoid@feather:~$ wget http://www.parrotvm.org/svn/parrot/rss
23:38 Infinoid HTTP request sent, awaiting response... No data received.
23:46 cotto http://svn.perl.org/rss/log/parrot.rss works, although fixing parrotvm.org will probably fix dalek too
23:47 yjh joined #parrot
23:47 Whiteknight has anybody made any opcode changes? I'm getting an error about "set_s_s_ki" not found
23:47 Whiteknight oh never mind, there's a trac ticket for it already
23:54 Infinoid cotto: dalek relies on some local hacks to add a special field to the rss, so it can get the branch name.  (that's because the list of changed files aren't included in the rss data)
23:54 Infinoid so other than not having branch names, changing the URL will probably get things working
23:55 jonathan Does parrotvm.org not run on feather too?
23:55 Infinoid it does
23:56 Infinoid the SVN::Web installation on feather has been half-broken for a while now.
23:56 Infinoid although... it looks like it should be possible to parse the list of changed files from perl.org rss's description fields, and generate the branch name from that

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

Parrot | source cross referenced