www.parrot.org | Parrot 1.6.0 "half-pie" released: PCC branch hackathon all $localtime Saturday | Testing priorities: the new PCC branch
Set by moderator on 29 September 2009.
darbelo japhb: I'll get on building metadata for decnum-dynpmcs. That one passes all tests. 00:01
00:01 jsut_ joined
Whiteknight okay, ctx->call_signature is not initialized 00:01
allison: ping
japhb darbelo++ 00:02
00:08 rhr joined
darbelo japhb: decnum-dynpmcs just runs "parrot Configure.pir" How should I classify it's configure step? 00:11
japhb darbelo, I need to add another configure type, then. :-) 00:13
hold on a sec
mikehh All tests PASS (pre/post-config, smoke (#28339), fulltest) at r41567 - Ubuntu 9.04 amd64 00:16
japhb darbelo, OK try that.
new type is 'parrot_configure'
darbelo that was fast. 00:17
Configuring decnum-dynpmcs ... 00:18
Coke kicks off a partcl spec test run to see what's what.
darbelo ### FAILED!
japhb darbelo, I try. ;-) 00:19
darbelo, failed why?
darbelo We need better diagnostic information.
japhb Right now I'm depending on the diagnostics of the commands it runs. 00:20
("Simplest thing that could possibly work")
darbelo Oh, I know, parrot's not on my $PATH
japhb darbelo, ah
though, hmm
It should have found it from the bindir
darbelo I'll put it there. no worries.
cconstantine How would I go about loading a .pir file in NQP and calling a sub? 00:23
darbelo japhb: How do I tell plumage to spit out the command it's running at every step? 00:24
japhb Right now, you don't. But I can add that. 00:25
Tene cconstantine: the easy way, or the right way?
cconstantine right, back to this :)
I want to say the right way, but I want it to be easy? 00:26
Tene cconstantine: you can load_bytecode() it
or do:
cconstantine it looks like I can do {{ PIR }}
Tene Q:PIR { load_language 'parrot'; \\n $P0 = compreg 'parrot' \\n $P0.'import'('Foo::Bar') }
oslt 00:27
and that will look for Foo/Bar.pir in the relevant search path
load it
and import subs from .namespace [ 'Foo' ; 'Bar' ]
(think of exports in Perl libraries)
cconstantine awesome
Tene That *should* have a simple version in NQP, and I'm working on the best way to add that tonight. 00:28
cconstantine isn't familiar with perl libraries or any other exports than C
cool
Tene cconstantine: well, as long as the namespace of the file matche sits filename, which it should or you're doing it wrong, it will work perfectly.
cconstantine awesome
mikehh partcl r745 builds on parrot r41567 - make test PASS (smolder #28342) - ubuntu 9.04 amd64 00:29
Tene lemme know how it goes
AFK for about an hour.
Coke mikehh++ thanks.
00:29 rhr joined
japhb ERG. NQP's failure to handle slurpy and flattening causes me pain. 00:31
darbelo japhb: I found your problem. too many slashes. 00:32
japhb darbelo, oh?
darbelo my $parrot := fscat(%VM<config><bindir>, 'parrot');
+ say($parrot);
Configuring decnum-dynpmcs ... 00:33
//h/o/m/e///d/a/r/b/e/l/o///p/a/r/r/o/t///i/n/s/t/d/i/r///b/i/n/parrot
japhb WTF?!?
darbelo My sentiment exactly.
japhb How the *heck* did that happen?
Commit your JSON so far, plz, I want to pull it and debug from my end too. 00:34
mikehh rakudo (c8181aa) builds on parrot r41567 - make test / make spectest_smolder (up to r28509 -> #28343) PASS - Ubuntu 9.04 amd64 00:36
darbelo pushed it.
00:39 msmatsko joined
Coke (*@#&$#@ another segfault. 00:43
Whiteknight don't even start 00:45
darbelo japhb: something's woknky on fscat
00:46 msmatsko joined
darbelo It wants a pmc but I'm pretty sure we're passing it a string. 00:47
Which I think is getting autoboxed into a String PMC which then has each 'part' (character) joined to the next one with a '/' 00:48
Coke Whiteknight: hey, I'm just sitting over here trying to build (failed) and run my spectest (segfault) 00:49
mikehh decnum_dynpmcs r187 builds on parrot r41567 - make test PASS - Ubuntu 9.04 amd64
japhb darbelo, sorry, multitasking 00:51
Yeah, I see it now
00:52 rhr joined
dukeleto wouldn't it be nice if 'parrot --version' included an svn rev ? 00:52
darbelo dukeleto: not if we switch to git ;)
dukeleto darbelo: i will convert the code to use git, *if* and *when* we move to git :) That is at least 6 months away 00:53
Coke dukeleto: `parrot_config revision`
since wherever there's a parrot there's a parrot_config...
japhb darbelo, yep, I think you're right
dalek rtcl: r746 | coke++ | wiki/SpecTestStatus.wiki:
dict.test is now segfaulting (again).
00:54
dukeleto Coke: i want it in the output of --version, but thanks, I didn't know about that
darbelo japhb: how do I make a "String array" nqp? 00:55
nm I figured it out. 00:56
japhb darbelo, what did you do? 00:57
Whiteknight darbelo broke it 00:59
darbelo nope, darbelo fixed it! 01:00
Whiteknight darbelo fixed it! 01:01
darbelo japhb: nopaste.snit.ch/18132
It want's an array. I gave it an array.
japhb I've got a better fix. :-) 01:02
mikehh dukeleto: rakudo c8181aad2670fb74f7aaa1c905205e34e83101bd on parrot r41567
darbelo japhb: You are no fun. 01:03
;)
japhb heh
testing ...
holy cow, couple of tests much?
darbelo They came with the library :) 01:04
japhb 'Successful.'
darbelo 'sides. What's the point of a numeric library you can't trust? 01:05
japhb True .... 01:06
Whiteknight I think they call that a "random number generator" 01:07
darbelo Push your fix?
Whiteknight and the less you can trust it, the better it is
japhb darbelo, just going through now
try again
On my box, decnum-dynpmcs is the first project Plumage successfully installs! W00t! 01:08
darbelo There's an as_array()?
I didn't know that. 01:09
(dumb build procedures)++
japhb: SHIP IT!
japhb Inasmuch as it is uploaded to the repo, I have. ;-) 01:10
darbelo Okay, you are now distributing my one parrot project. I can call my part of this done ;) 01:11
plumage: the decnum-dynpmcs distribution mechanism ;) 01:12
We should make a push for partcl, lua and rakudo now. 01:17
Once we get the 'big languages' we can start promoting this to parrot devs. 01:18
japhb darbelo: heh, heh, and yup, respectively. :-) 01:19
darbelo make changes, run a quick "plumage test partcl" and find out if Coke is going to yell at you ;) 01:20
japhb Of course, it's a little ... thin ... on error handling and the like.
heh
nice thought!
For example, I haven't dealt with the case if already having a git clone of a project, and pulling instead of trying to clone again (which is doomed to fail) 01:21
darbelo people have been talking about testing languages for ages, now plumage is here they're out of excuses!
japhb But that will come.
heh
Still, I'm really happy with getting at least one project working, even though there's still a LONG way to go on this.
AFK for a while, dinner 01:22
darbelo is going to catch some Z's
See y'all later.
01:22 darbelo left
mikehh me too 01:22
bbl
01:29 rhr joined 01:31 hudnix joined 01:36 allison joined 01:40 rhr joined
jdv79 what is plumage and what does it have to do with testing? 01:42
01:43 solarion joined
Whiteknight plumage is the "module ecosystem" for Parrot 01:46
roughly equivalent to Perl5's CPAN
01:48 allison joined
jdv79 oh, i vaguely remember now. cool. i didn't know there was movement on it. 01:50
Whiteknight yeah, the last few days it's been picking up quickly 01:52
msmatsko Has any decision been made on the JIT yet? 02:00
dukeleto msmatsko: which decision ? 02:07
purl which decision is, like, that
dukeleto purl, forget which decision 02:08
purl dukeleto: I forgot which decision
msmatsko There was talk of using LLVM or some other VM. I was wondering if any decisions had been made.
dukeleto msmatsko: the old JIT has been killled, the new JIT will most probably be LLVM, but I don't know that it is set in stone yet
msmatsko OK. Thanks. 02:09
dukeleto msmatsko: trac.parrot.org/parrot/wiki/JITRewrite has lots of relevant info 02:10
msg darbelo you were missing a single letter in your debugger patch to make it work :) 02:12
purl Message for darbelo stored.
msmatsko Thanks. What is Lorito? From what I could tell it looks like a another VM that was previously called L1. 02:13
dukeleto msmatsko: wknight8111.blogspot.com/2009/06/l1...w-faq.html 02:15
shorten dukeleto's url is at xrl.us/bfpcqj
msmatsko Thanks. That will work. 02:17
dalek rrot: r41568 | dukeleto++ | trunk/src/debug.c:
[cage] Get rid of ->strstart in the parrot debugger, darbelo++
dukeleto msmatsko: this may interest you trac.parrot.org/parrot/ticket/1075 02:28
msmatsko Thanks. Also, I'm reading Whiteknight's blog, and am wondering what Lorito (L1) is going to buy us that LLVM won't? 02:29
02:35 janus joined 02:36 kid51 joined
dalek TT #1077 created by dukeleto++: Decide fate of dump_string() in the parrot debugger 02:37
dukeleto msmatsko: i don't quite know. great question for whiteknight and chromatic
kid51 msg Whiteknight I'll discuss TT #1075 with you the next time when we're on IRC simultaneously. 02:38
purl Message for whiteknight stored.
dukeleto msmatsko: i think lorito gives us a more optimizable low-level representation of opcodes, but I am not sure why LLVM doesn't do that. I don't quite understand the difference between Lorito+llvm and how they interact 02:40
msmatsko I'll buy that. I'm kind of confused too. It almost seems that Lortio would be a JIT-of-your-choice-wrapper. 02:42
kid51 Question: the channel topic says testing priority for the week is "the new PCC branch" ...
... however, we currently have *3* different branches whose names begin with pcc. Which one is it? 02:43
pcc_arg_unify/
pcc_arg_unify_2_0/
pcc_reapply/
kid51 searched thru text of Tuesday #parrotsketch and did not find clarification. 02:46
If someone knows the answer, please msg me so I can start smoldering in the morning. Better still, fine-tune the topic. 02:49
kid51 must sleep
purl $kid51->sleep(8 * 3600);
dukeleto msg kid51 pcc_reapply 02:52
purl Message for kid51 stored.
02:55 rg joined
moderator www.parrot.org | Parrot 1.6.0 "half-pie" released: PCC branch hackathon all $localtime Saturday | Testing priorities: pcc_reapply branch 02:56
dalek rrot: r41569 | dukeleto++ | trunk/docs/debugger.pod:
[TT #592][docs] Add docs about assigning to registers in docs/debugger.pod
03:07
03:12 kurahaupo joined
dukeleto kurahaupo: still looking for parrot tests to hack on ? 03:22
dalek rrot: r41570 | dukeleto++ | trunk (2 files):
[t][tools] Allow assigning to lowercase register names in parrot_debugger, since printing lowercase register names is allowed
03:23
rrot: r41571 | dukeleto++ | trunk/docs/debugger.pod:
[TT #592][docs] Clarify docs about the case sensitivity of the debugger
03:33
jdv79 iirc, L1 is not about jit, it would make it easier/possible. 03:50
the page on the wiki is pretty good 03:51
japhb use.perl.org/~geoffrey/journal/39697 # Parrot Plumage Day 7 04:26
Tene japhb: tonight isn't working out so well for me... did you still need a try() function? 04:40
05:07 chromatic joined
japhb Tene: doesn't need to happen tonight. 05:18
No worries. :-?)
er
:-)
Tene japhb: how do I make a closure in nqp? 05:23
Can I?
If not, this try function is less useful than I originally planned. :P 05:24
05:30 Zak joined
nopaste "tene" at 12.190.38.210 pasted "try() example in nqp for japhb++" (11 lines) at nopaste.snit.ch/18135 05:31
Tene japhb: I got it working, committed it, and nopasted an example... it's not ideal, but it works.
I can't find a better closure syntax that works in nqp.
05:40 kjeldahl_ joined
cotto who was that guy in here earlier asking how he could help? 05:43
kurahaupo, ping 05:44
msg kurahaupo If you want a good task, replace ->strstart with proper use of the STRING API. See r41485 for a good example. Don't forget to free the C strings. 05:49
purl Message for kurahaupo stored.
cotto msg kurahaupo The idea behind eliminating strstart is that it breaks encapsulation and makes code depend on the STRING subsystem's implementation details. 06:08
purl Message for kurahaupo stored.
dukeleto cotto++ for mentoring 06:12
06:23 uniejo joined
dukeleto darn, i seem to have written a test that puts parrot into an infinite loop 06:23
cotto if I can't write code, i can at least make someone else do it
japhb Tene, thank you! We'll do something better eventually, but for now that will at least allow me to deal with exceptions from libraries. 06:29
dalek TT #1078 created by dukeleto++: Parrot goes into infinite loop when attempting to test exceptions with ... 06:32
rrot: r41572 | dukeleto++ | trunk/t/pmc (2 files):
[t] Convert an exception test to PIR
06:51
06:56 barney joined 07:08 payload joined 07:09 iblechbot joined 07:15 Austin_away joined
dukeleto how does docs.parrot.org/parrot/latest/html/index.html get generated? 07:15
i want to put a link to docs/debugger.html on there 07:16
07:26 fperrad joined
mikehh All tests PASS (pre/post-config, smoke (#28339), fulltest) at r41567 - Ubuntu 9.04 amd64 07:28
All tests PASS (pre/post-config, smoke (#28354), fulltest) at r41572 - Ubuntu 9.04 amd64 07:47
partcl r745 builds on parrot r41572 - make test PASS (smolder #28356) - ubuntu 9.04 amd64 07:48
rakudo (c8181aa) builds on parrot r41572 - make test / make spectest_smolder (up to r28513 -> #28357) PASS - Ubuntu 9.04 amd64 07:51
08:01 athomason joined
moritz dukeleto: maybe you remember implementing complex roots in PIR for Rakudo... the version now in the setting is a bit shorter: github.com/rakudo/rakudo/commit/515...bca448e326 :-) 08:06
shorten moritz's url is at xrl.us/bfpdv4
dukeleto moritz: wowzers 08:09
moritz: i would be interested in the performance difference
moritz: but that is amazingly concise
moritz: does it pass all the tests? it doesn't seem to have as much error handling, but perhaps that is hidden in the multi-ness of it 08:10
moritz dukeleto: actually it's not quite the same, one Inf and one NaN test fail 08:11
dukeleto moritz: those darn edge cases
moritz: i remember implementing roots() fondly since that is how I learned PIR and what got me interested in Parrot 08:12
moritz return self if self ~~ Inf|NaN; or so might do 08:13
dukeleto moritz: that is basically what the PIR version did 08:14
mikehh decnum_dynpmcs r187 builds on parrot r41572- make test PASS - Ubuntu 9.04 amd64 08:17
dukeleto: I think it is generated by make html - I am not sure how it gets to docs/parrot.org 08:22
dalek tracwiki: v15 | chromatic++ | JITRewrite 08:26
tracwiki: trac.parrot.org/parrot/wiki/JITRew...ction=diff
shorten dalek's url is at xrl.us/bfpdxw
Austin_away Well, *that's* not incredibly irritating. 08:54
08:55 mokurai left
dalek TT #1079 created by Austin_Hastings++: Chaining operator ':=' is ignored in NQP 08:56
09:01 riffraff joined 09:59 patspam joined 10:07 eiro_ joined 10:19 slavorgn joined 10:36 einstein joined 10:44 bacek joined
bacek o hai 10:44
10:47 payload joined 10:49 uniejo joined, riffraff joined 10:51 quek joined
allison whiteknight: pong (from a long time ago) 11:19
bacek in the galaxy far far away 11:21
Did I scared chromatic? 11:24
einstein when entering a null into the does operator then it gives a segfault $I1 = does NULL, 'array' 11:31
what should it do? throw an exception or just return 0? 11:32
11:39 masak joined 11:55 iblechbot joined
dalek rtcl: r747 | coke++ | wiki/SpecTestStatus.wiki:
YA segfault.
11:56
12:09 payload joined 12:10 cconstantine joined
dalek TT #1080 created by coke++: segfault in Parrot_HashIteratorKey_get_string 12:11
TT #412 closed by mikehh++: Failure of set_integer_keyed_str on linux AMD64
TT #1081 created by coke++: segfault in Parrot_HashIteratorKey_get_string
12:12 cconstantine_ joined, kid51 joined, bacek joined
Coke msg dukeleto index.html is generated from "make html" in a checkout. 12:13
purl Message for dukeleto stored.
nopaste "kid51" at 70.85.31.226 pasted "pcc_reapply branch: 'make' failure at r41568 on linux/i386" (504 lines) at nopaste.snit.ch/18137
Coke kid51: perhaps you still need 'make corevm' 12:14
ISTR earlier versions of this branch didn't fully build, and therefore allison was doing a minimal build/test cycle and needed to fix those before doing the whole thing. 12:15
I think 'make corevm coretest' would do it.
Coke points at his 2 new segfaults. You guys are killing me. =-)
bacek unpacking rocket launcher and pointing it to Coke 12:16
dalek rtcl: r748 | coke++ | trunk/docs/spectest- (2 files):
Lost 2 spec tests to segfaults.
12:17
Coke bacek; they're both in parrot_hashiteratorkey_get_string, so I figured it was you. 12:20
bacek Coke: it's... impossible. 12:21
12:21 bluescreen joined 12:23 ruoso joined
bacek Coke: (reading backtrace) I suspect that make realclean should help 12:24
kid51 Coke: Got same build failure at same revision on Darwin/PPC. Have to go to $job now. But why would make corevm work if 'make' would not? 12:25
(post in channel ; I'll read it later today)
mikehh kid51: I get exactly the same error on Ubuntu 9.04 amd64 12:27
Coke msg kid because all builds more than corevm? 12:30
purl Sorry, I've never seen kid before.
Coke msg kid51 because all builds more than corevm? if you're having trouble /running/ parrot, e.g., you don't want to try to build all the pir libraries.
purl Message for kid51 stored.
Coke bacek; I always realclean. 12:31
bacek: try again. =-)
bacek Coke: you have to wait for proper phase of Moon?
Coke bacek: I run with --optimize, also, in case that's helpful.
bacek Coke: it is.
==== set-old-9.5 FAILED 12:34
Segmentation fault
purl (Core dumped)
bacek Coke: this one?
purl this one is bugged too now
Coke bacek;thats one of the 2 of them, yes. 12:40
coke parrot build is make -j3 realclean; perl Configure.pl --optimize --ccflags=-g --maintainer ; make -j3; make install-dev 12:41
purl, no this one is <reply>that one?
purl coke: bugger all, i dunno
Coke purl, no this one is <reply>that one\\?
purl coke: wish i knew
12:42 AndyA joined
Coke purl, you suck. 12:42
purl orz
Coke orz?
purl i think orz is a posture emoticon
bacek Coke: it's failing on non-optimised build as wee
well
Coke bacek: maybe you should realclean.
:P
bacek I DID IT
Coke I was, as they say in jersey, "busting your eggs." 12:43
(or perhaps that's just nyc)
bacek I wonder how you managed to get HIK with NULL pointers... 12:44
12:44 whiteknight joined
whiteknight good morning, Parrot 12:45
Coke I bet this is related to the pmc keys.
fperrad Coke, on Partcl, since r475, tools/rev.pl is useless
bacek Coke: hmmm. It's possible. 12:46
Coke fperrad: working for me in 745 on svn.
and in 742 on a git-svn checkout. 12:47
(and since the last 3 commits are all doc related...)
12:47 patspam joined
Coke git-svn also works in 478. 12:48
er, 748.
fperrad Coke, yes r745
Coke fperrad: yes. it's working here. do you mean useless=broken or useless=superfluous?
bacek Coke: oh... Do you use OrderedHash in partcl? 12:49
Coke bacek;no. orderedhash should be nuked from orbit.
but I use hash subclasses.
(like TclDict)
fperrad Coke, superfluous, the code of tools/rev.pl is now included in Configure.pl
bacek Coke: Ah!
Coke bacek - please tell me you didn't include an enum_class_Hash somewhere. :| 12:50
fperrad: ah.
fperrad: I have: 7:- PARTCL_REV := $(shell $(PERL) tools/rev.pl) 12:51
... so the configure step seems to using the script...
so I'm confused. =-)
bacek Coke: erm. Nope. But there is some shenanigans with inherited attributes.
Coke alright, that's forgivable. =-) 12:52
bacek: theres a good testing target. for every pmc, test both the core pmc and subclasses of that pmc.
bacek Coke: care to create TODO ticket? 12:54
fperrad Coke, tools/rev.pl is used by tools/spec_info.pl, so forget my message 13:01
dalek rrot: r41573 | pmichaud++ | branches/pct-rx/compilers/pct/src/Regex/Match.pir:
[pct-rx]: Add first implementation of Regex::Match .
13:03
13:05 ruoso joined
Coke bacek: trac.parrot.org/parrot/ticket/1082 13:09
bacek Coke: MORE???
purl MORE is, like, more is less. or Masters of Reverse Engineering. They cracked CSS :) or see "again" or see "yet again" or legendary outlining software put out 15 years ago by Symantec who has since lost the source code. or software that makes people still run Mac OS 8 just so they can use it
dalek TT #1082 created by coke++: test subclasses of core PMCS 13:10
Coke bacek; ? 13:12
bacek;no, that's your testing ticket.
bacek Coke: I don't understand who can create HashIteratorKey apart from HashIterator and OrderedHashIterator...
And both of them set pointers into proper value straight after creating new objects... 13:13
Coke bacek; subclasses ?
bacek Coke: nope.
Coke I can iterate over my subclasses of hash, so perhaps I don't understand.
bacek Coke: you can. But it will use parrot's HashIterator. 13:14
Coke ok.
bacek; btw, did you get buyin from someone on allowing arbitrary PMC keys? 13:20
bacek Coke: what do you exactly mean? 13:21
Coke that's a pretty big change. Just wondering if someone had requested it or if you verified the plan with someone before doing it.
(it was you that committed it, right?) 13:22
bacek It was me.
But looks like no one else working on hashes. So I just consult with myself and resolved old outstanding ticket. 13:23
Austin_away How does arbitrary PMC hashing work? 13:25
Austin Does it stringify first, or use address, or what? 13:26
bacek Austin: default behaviour - stringify. But there is VTABLE_hashvalue to calculate... erm... hashvalue 13:27
Austin Coke: If a sub declares no lexicals, and is not compiled with :lex, what lexpad does it have?
13:27 quek left
Austin Bacek: So hash does what? 13:27
check for does-hashvalue, else call string? 13:28
check for string, else check for does-hashvalue?
bacek No, Default.hashvalue do stringification
Austin Aha!
So since nobody does hashvalue, default new behavior is same as it is now? 13:29
*since nobody does hashvalue (yet)
bacek Austin: pretty much same 13:31
Austin Perfect.
purl perfect is the enemy of good enough.
Austin Okay. Good enough.
FYI, bacek, I used "get_addr" on the subs to make a hash key. :) 13:33
(From my question of yesterday)
bacek Austin: I hope it will not work soon. Just after implementing compacting GC :)
dalek rrot: r41574 | bacek++ | trunk/src/pmc (3 files):
[core][cage] Implement HashIteratorKey.set_pointer_keyed_int to find contract breakage
rrot: r41575 | bacek++ | trunk/src/pmc/hashiteratorkey.pmc:
[core] Wallpapering problems reported in TT#1080 and ##T1081.

places in parrot set proper pointer right after creating new HashIteratorKey. So, real problem is still hiding somewhere.
Austin Of course it will work.
It's a cache. If the sub moves, I'll do another lookup.
bacek Austin: ok. In this case - it will :)
Austin But why would a sub move?
particle compacting garbage collector 13:35
13:36 paddy joined
bacek Coke: you can try latest trunk... It works on my box. But please, don't close tickets yet. 13:38
Coke rebuilding...
bacek : might want to replace those XXX's with the actual ticket number, since we have one. 13:39
bacek Coke: good idea 13:40
purl bacek: Good Idea: Tossing a penny into a fountain to make a wish. Bad Idea: Tossing your cousin Penny into a fountain to make a wish.
bacek annoying girl...
Austin gives purl a smooch. 13:41
She's simple, but nice.
dalek rrot: r41576 | bacek++ | trunk/src/pmc/hashiteratorkey.pmc:
[cage] Replace generic XXX with real ticket numbers. Coke++
13:42
bacek Austin: try "botsnack" :)
purl :)
Austin botsnack
purl :)
Coke purl, scooby snack 13:44
purl Rank roo, Coke!
bacek Ok. $bedtime. It was very long day. 13:45
Austin Good night, bacek.
bacek Austin: G'Night 13:46
Coke bacek: thanks for the wallpaper. =-)
bacek Coke: does it works?
14:05 iblechbot joined
Coke bacek; on dict.test 14:12
and set-old.
purl set-old is the one I was checking
Coke no clue if i'm passing the same amount, but the segfault is gone.
14:14 bluescreen joined 14:16 theory joined
dalek rrot: r41577 | pmichaud++ | branches/pct-rx (4 files):
[pct-rx]:

  * Add initial versions of .peek
  * Update PCT makefile
14:21
rtcl: r749 | coke++ | wiki/SpecTestStatus.wiki:
This segfaults were fixed.
14:25
rtcl: r750 | coke++ | trunk/config/PARROT_VERSION:
Fewer segfaults here.
14:27 Psyche^ joined 14:33 clsn left
Coke (*&@#$(*&@#$(*@#&(@ 14:41
ok. now i have ANOTHER segfault.
double you tee eff.
(this one in chanio.test. bug report shortly.) 14:42
14:44 riffraff joined 14:45 davidfetter joined
dalek rrot: r41578 | pmichaud++ | branches/pct-rx (3 files):
[pct-rx]: Add 'alt_longest' node type, peeks for it.
14:46
14:48 particle joined
dalek rrot: r41579 | mikehh++ | trunk/src/pmc/hashiteratorkey.pmc:
codetest failure - no trailing whitespace
14:56
15:01 PacoLinux joined
mikehh All tests PASS (pre/post-config, smoke (#28381), fulltest) at r41579 - Ubuntu 9.04 amd64 15:07
moritz pmichaud: in r41559 you added 'pmc' to the string in the first chunk also it's already in there - was that on purpose? 15:31
+ $P0 = split ' ', 'tgt string pos int off int len int rep int cur pmc act pmc'
mikehh partcl r750 builds on parrot r41579 - make test PASS (smolder #28384) - ubuntu 9.04 amd64 16:04
rakudo (c8181aa) builds on parrot r41579 - make test / make spectest_smolder (up to r28515 -> #28385) PASS - Ubuntu 9.04 amd64 16:06
16:09 theory joined
mikehh decnum_dynpmcs r187 builds on parrot r41579- make test PASS - Ubuntu 9.04 amd64 16:15
Coke: running (and logging) partcl make specinfo 16:16
bbl
dalek rtcl: r751 | coke++ | trunk/docs/spectest- (2 files):
mark YA spec test run. Add dict and set-old back, but lose chanio.
16:23
rtcl: r752 | coke++ | wiki/SpecTestStatus.wiki:
Track failure for chanio.
16:28
cotto_work good morning 16:49
purl Here I am, brain the size of a planet, and all they say is 'Good Morning'
cotto_work purl, you lie
purl cotto_work: excuse me?
whiteknight hello cotto_work 16:50
16:53 payload joined 16:58 darbelo joined
dukeleto 'ello 17:00
cotto_work 'i
darbelo waves 17:04
17:05 mberends joined
moritz waves back 17:05
darbelo dukeleto: If dump_string is unused kill it with fire. 17:06
Every unused function we maintain is a waste of (scarce) volunteer resources.
Coke darbelo: only thing is if it's PARROT_EXPORT'd. 17:08
darbelo Yeah, well. PARROT_EXPORT := Used, but not by us. 17:09
Coke oh, it's static, that seems killable. =-)
dukeleto that is 2 votes
should I wait for another or get the axe out? 17:11
17:11 silug joined
Coke kill it, blame me? 17:11
dukeleto Coke: i like that idea, sounds good.
darbelo I'm killing it now.
dukeleto darbelo: please kill for me, kthanxbai 17:12
darbelo: reply to the email on parrot-dev if you could as well, after it is gone
dalek rrot: r41580 | darbelo++ | trunk/src/debug.c:
Kill the unused dump_string functions. Coke++
17:13
rrot: r41581 | darbelo++ | trunk/src/debug.c:
Oops. Forgot to headerize.
TT #1077 closed by darbelo++: Decide fate of dump_string() in the parrot debugger
darbelo It's dead now. 17:16
moritz that was a quick death. darbelo++
whiteknight but it went so peacefully
darbelo Dead code usually does. 17:17
coverage? 17:18
purl i guess coverage is cv.perl6.cz
darbelo That's a good place to find candidates for easy killing. 17:19
whiteknight who runs that server?
some of these files have dismal test coverage 17:20
darbelo src/events.c has 0.0% 17:21
whiteknight I don't even really know how to read these reports 17:22
darbelo If you see an all red function surrounded by green ones, you can probably kill it.
whiteknight kill it or test it 17:23
darbelo Yeah, but killing is easire :)
Coke last cover test was a month ago?
whiteknight a lot of items in interp info
Coke: today 17:24
Coke ah. be nice if the list was in reverse order.
(the different dir names are obfuscating.)
whiteknight tsq.c needs to disappear
darbelo The little number in the colored box indicates how many times that particular line was run. 17:25
Coke StringIterator seems like an easy get-to-100%. 17:26
moritz byteorder.c has a really bad coverage 17:31
is that just because of the many #ifdefs, or is it simply not tested?
darbelo #ifdefs are a factor. 17:32
17:34 theory joined
dukeleto whiteknight: the coverage reports show you how many times a line of code was called during a test run 17:35
17:35 theory joined
dukeleto whiteknight: if it has a red 0, then it has no test coverage 17:35
darbelo Say what's up with the GC_IS_MALLOC #defines?
whiteknight darbelo: GC_IS_MALLOC is old
darbelo Is is killable?
whiteknight I think it needs to disappear, I dont remember if there is a deprecation notice on it
I don't know. Post a message to the list or a ticket or something
darbelo I'm pretty sure I've never seen it defined? 17:36
And I'm looking at code that is "#ifdef GC_IS_MALLOC"ed *and* "#if 0"ed 17:37
particle we have splint to detect dead code, don't we? 17:39
dukeleto particle: where? 17:40
particle make splint
dukeleto 'cause the coverage reports are a bit annoying to plow through, if you are just looking for unused code
Coke anything with if 0 is, IMO, really questionable. 17:41
particle: there's unreachable dead code, and unused dead code. 17:42
darbelo It's "#if 0" code for a #define we don't have anymore.
Near line 215 of src/interp/inter_misc.c
Coke darbelo: that whole section can be removed. 17:43
IMO.
darbelo 'kay. I'm removing and blaming you for the breakage.
Coke If 0 usually reads to me as "some developer was testing something and wanted to be able to test it again later". but I bet those are all very old. More of a leo-era thing.
darbelo afk
Patterner Unformulately I have free time and I want to parrot stuff. What would be a good task? Any suggestions? 17:49
moritz Patterner: if nobody comes up with a better idea: write tests
tapir2.ro.vutbr.cz/cover/ has test coverage reports - all that's red needs more tests (or needs to be ripped out) 17:51
Patterner I was hoping for some programming stuff... (and yes, I know tests are important)
moritz I'm sure there are many such tasks, but I'm the wrong person to ask about that ;-)
Patterner I'll have a look at it.
dalek TT #1083 created by NotFound++: Managed cstrings to avoid the need of Parrot_str_free_cstring 17:52
17:52 joeri joined
Coke Patterner: perl? c? pir? 17:52
(other?)
17:53 szabgab joined
Patterner yes yes maybe 17:53
FORTRAN :)
Coke well, you could write fortran-on-parrot. 17:54
NotFound Real programmers can write fortran code in any language 17:55
mikehh we is supposed to be dynamic - how about cobblers
Coke Patterner: one c/perl/build test would be to allow us to pick which pir compiler we use at build time. 17:56
mikehh that's a dynamic COBOL on parrot :-} 17:57
Patterner Coke: is there a ticket for that? 17:58
Coke trying to find the first bit.
Austin Not on Parrot, they can't. 17:59
No FORTRAN without a dynamic pmc.
Coke Austin: we don't have dynamic pmcs?
Austin I don't know, Coke. But I'm pretty sure that the Fortran dynpmc didn't ship with 1.6 18:00
Coke trac.parrot.org/parrot/ticket/576
Austin: ... I can't tell if you're trying to be funny.
wouldn't the fortran hll author ship their own pmc if they needed one?
Patterner: trac.parrot.org/parrot/ticket/576 is probably a good first step. 18:01
Patterner Coke: how urgent? 18:02
Coke Patterner: not 18:03
we eventually want to switch to PIRC; but it's been on the table for years.
Patterner I'll have a look at it.
Coke (maybe only one year.) 18:04
mikehh Coke: partcl make specinfo took me 1h27m 18:12
cotto_work Patterner, a nice incremental task is to replace uses of ->strstart with Parrot_str_to_cstring/Parrot_str
_free_cstring
Patterner cotto_work: ticket number? :) 18:13
cotto_work There's a ton of strstart abuse, but even fixing a single one helps.
not sure. lemme dig
darbelo cotto_work: Watch out for #1083
That's a better approach than I was using. 18:14
mikehh Coke: "2009-09-30 17:10",750,"r41579",102,8436,3908,2221,2307,5190 18:15
dukeleto Patterner: what are your interests?
Patterner: lots of things need doing, but you will be most effective hacking on something that interests you
dalek a: 783831a | fperrad++ | t/lua-TestMore:
update submodule lua-TestMore
shorten dalek's url is at xrl.us/bfpguw
cotto_work I like the idea a lot, but I wonder if it can work since we're only gauranteed to be storing a pointer to the char*, not to the actual PMC.
Patterner dukeleto: VMs in general :) 18:16
cotto_work but avoiding the need for Parrot_str_free_cstring would be reall nice.
dukeleto Patterner: also, writing tests give you the familiarity with Parrot that you need to work on it confidently
Patterner dukeleto: which is a reason I plan to write some 18:17
dukeleto Patterner: you are going to have to specialize a little. Are you interesting in workin on PMCs, Garbage collection, IO, docs, ....
Patterner: i can give you help regarding what needs doing in our test suite
Patterner: if you see any test files with -old.t, that means we are converting those tests from Perl to PIR 18:18
Patterner dukeleto: at the moment i'm getting the overview on the whole repository.
dukeleto Patterner: sounds good
darbelo cotto_work: Also, dont forget to warn newbies about the dragons. They live in the deep dark corners of io and freeze code, and jealously guard their strstarts
cotto_work I suspect that that approach can't work when we need to return a cstring.
he'll find them soon enough
Patterner namespace and exception are old
dukeleto Patterner: basically, some Parrot subsystems are really old and don't obey an API (like using ->strstart), so we are slowing refactoring them to use a proper API 18:19
coverage?
purl i think coverage is cv.perl6.cz
dukeleto cover?
purl i think cover is not at link?
darbelo pmc_freeze coverage?
coverage?
purl coverage is cv.perl6.cz
dukeleto Patterner: if you type "make cover" you can get pretty html reports about code coverage. if you see a red 0, then that code is dead or untested
Patterner how do I know if it is dead or untested? (writing tests for dead code is probably a bad idea, right?) 18:20
cotto_work darbelo, thanks for pointing out that tt 18:21
NotFound Talking about that, can someone review TT #1083 ?
Patterner how is the state of the x86_64 JIT?
cotto_work NotFound, I'm looking at it now.
dukeleto Patterner: if you ack the parrot source and the function is not used, then it is dead
moritz Patterner: the old JIT system was ripped out because it only worked on i386. There are currently grand plans for a new system
dukeleto Patterner: although a HLL may be using it (even though they aren't supposed to) 18:22
darbelo Patterner: Anything with PARROT_EXPORT needs to stay. Everertying else is fair game if all test pass after removing.
dukeleto Patterner: there is currently no JIT, but the infrastructure for it is being working on ferociously.
NotFound dukeleto: and don't forget that it can be part of the extend/embed interface
cotto_work Patterner, don't worry about HLLs using it. If they want to break encapsulation, they get to deal with the consequences when we change our internals.
dukeleto Patterner: yes, if it has PARROT_EXPORT, then it is part of a documented API => not dead 18:23
Patterner o.k.
dukeleto cotto_work: I agree, just wanted to let him know
Patterner: if a HLL pokes into our internals, it is nice to let them know about it. sometimes it was the only workable solution at the time 18:24
cotto_work Patterner, check out docs/project for lots of useful project docs, including our support and deprecation policy.
dukeleto Patterner: you should also get a trac account as well, so that you can post patches to tickets, create tickets/etc
cotto_work time for foods
18:28 kjeldahl_ joined
dukeleto Patterner: the parrot shell might help you in your parrot learning journey leto.net/dukeleto.pl/2009/09/learni...shell.html 18:28
shorten dukeleto's url is at xrl.us/bfpgx3
Patterner dukeleto: I have one, I just have to find the password...
dukeleto Patterner: someone in here could probably reset it if you are locked out. is there a "forgot my password" feature? 18:29
Patterner: which OS/platform are you on? 18:30
Patterner linux/amd64 and darwin/ppcg4
nopaste "fperrad" at 77.192.239.44 pasted "patch for Lua Makefile" (39 lines) at nopaste.snit.ch/18140 18:31
18:34 bluescreen joined
darbelo fperrad++ # Works great here. 18:34
fperrad darbelo, try 'make smolder'
darbelo Hmm. don't have curl. 18:35
and my prove doesn't understand -f --archive --exec or --jobs 18:36
dukeleto Patterner: your darwin/ppc box is very useful for smoking parrot and other HLL's 18:37
Patterner and very slow :)
dukeleto Patterner: that is what cron jobs are for :)
Coke you should be able to reset your own pass via trac. 18:47
18:51 joeri left 18:56 kurahaupo joined
nopaste "kurahaupo" at 121.90.77.57 pasted "Patch to convert t/pmc/resizeablearray to PIR" (683 lines) at nopaste.snit.ch/18141 19:04
kurahaupo Make that "resizeableintegerarray" ... 19:05
darbelo kurahaupo: You converted all tests? Or are there leftovers? 19:06
kurahaupo Make test works... 19:08
dukeleto kurahaupo: make fulltest is good to run
kurahaupo: it runs extra code standards tests and stuff
kurahaupo (And "prove t/pmc/resizeableintegerarray.t" works too) 19:09
OK, running that now
dukeleto kurahaupo: impressive first patch! 19:10
19:11 theory joined
kurahaupo dukeleto: oops, fails some style checks. Seems I used $X = op $Y too often 19:11
nopaste "fperrad" at 77.192.239.44 pasted "Lua Smolder with LWP" (63 lines) at nopaste.snit.ch/18142
fperrad darbelo, is it good with your make ? 19:12
dukeleto kurahaupo: do you think you could refactor the tests to call individually-and-usefully named functions? see t/library/test_more.t for a good example
kurahaupo dukeleto: will do. 19:13
dukeleto kurahaupo: it helps to have each test broken down into it's own scope and have an intention-revealing name
darbelo fperrad: checking. Also installing a few perl modules so 'make smolder' works
Hm. It fails to apply on top a previous patch. 19:14
kurahaupo Just checking something: a resizeableintegerarray should NOT allow negative indeces?
dukeleto kurahaupo: i would assume so, why?
kurahaupo: you can use the throws_like function in test_more.pir to verify that code throws the correct exception for invalid code 19:15
Coke dukeleto : RIA is not necessary perlish.
darbelo fperrad: yeah, works. 19:16
kurahaupo Just wanted to make sure I'd translated the test correctly
darbelo 'cept I don't have lus in /usr/bin/ 19:17
Coke hurm. looking at the code, it looks like the intention is for it to work, but it fails for me.
darbelo s/lus/lua/
nopaste "coke" at 72.228.52.192 pasted "this dies." (13 lines) at nopaste.snit.ch/18143
cotto_work Apparently OSS hackers need to be more careful about deferring null pointers: www.internetnews.com/dev-news/artic...roving.htm 19:18
shorten cotto_work's url is at xrl.us/bfphaf
cotto_work shorten that 19:19
purl That URL is at xrl.us/bfphaj [xrl.us]
cotto_work shorten that
purl That URL is at xrl.us/bfphaj [xrl.us]
fperrad darbelo,on Smolder, I see 2 empty reports (0 test ?) from openbsd
dukeleto Coke: what do you mean by that?
kurahaupo coke: thanks.
darbelo fperrad: That was me. There's no output becouse I don't have lua reachable in my $PATH. 19:20
19:20 preflex joined
dukeleto Coke: iirc, fixedpmcarray bombs out if you ask for a negative index. 19:20
cotto_work I thought that got fixed. 19:21
recently
dukeleto cotto_work: i wrote the check. before that, parrot would coredump 19:22
cotto_work ok. so now it throws an exception instead of exploding
dukeleto cotto_work: yes 19:23
cotto_work dukeleto, was there a reason not to do the perlish thing and use that as an index from the last element? 19:24
whiteknight our code quality is definitely improving, if for no other reason then because we are deleting the worst of it 19:25
kurahaupo dukeleto: the original (pmc) code didn't check the type of the exception, only the displayed text. And I've added a couple of extra exception checks, where it was apparent that the original code just failed for producing the "wrong output" when it would have thrown an exception.
Coke cotto_work: yes. we're not perl. 19:26
given the hoops we're jumping through with shift/unshift on non-R?Arrays, I wouldn't expect anything perlish from any of our core pmcs. =-)
kurahaupo Just checking, the P6 idiom is @foo[*-$x] ? So a bald negative index actually doesn't make sense anyway 19:28
cotto_work It makes sense to me to implement that behavior, but at the same time HLLs will usually care about R*A subclasses, where they can implement dwimminess out the wazoo.
whiteknight if you weren't using the non-resizable arrays in the first place, you wouldn't need to worry about the shift/unshift garbage
whiteknight blames the victim
Coke whiteknight: I cannot repeat this enough, apparently. 19:29
whiteknight: the lack of shift doesn't bother me on PMCs /I/ create.
given that partcl's indices are not bare negative numbers, it doesn't matter to me; I always have to pre-process the index. 19:31
dukeleto kurahaupo: that sounds great 19:33
19:35 iblechbot joined 19:50 preflex joined
fperrad darbelo, it seems you run only test which don't require Test.More 19:52
looks like export LUA_PATH has no effect
kurahaupo msg cotto I'll finish working on converting test(s) to PIR before starting on string handling 19:55
purl Message for cotto stored.
dalek rrot: r41582 | rblasch++ | trunk/docs/book/pir/ch03_basic_syntax.pod:
[book] Fixed typo.
19:57
cotto_work kurahaupo, great. one thing at a time 19:59
TimToady phone 20:00
20:04 davidfetter joined
kurahaupo Some of the original tests (of ResizeableIntegerArray) used "elements" to get the size of the array; should I just use implicit integer conversion ($I0 = $P0), or is there a more "standard" way? 20:07
Austin Well, you're testing. 20:10
You should do both, until you prove what you expect.
Then whatever you like. 20:11
cotto_work kurahaupo, I'd answer that question by making sure that the integer conversions do the same thing as elements (check get_integer in src/pmc/resizableintegerarray.pmc), but I think the approach is fine.
20:13 hercynium joined
darbelo fperrad: those exports cause errors if I run them out of the Makefile 20:18
What are you using them for? Maybe I can figure out a portable alternative. 20:19
kurahaupo There doesn't appear to be an "elements" opcode in PIR ?
particle i believe it's a method on the pmc 20:20
kurahaupo OK
Will add that as a new test
particle as in $I0 = $P0.'elements'()
20:20 theory joined
treed elems? 20:20
I thought there was an opcode for it. 20:21
that turns into a vtable
particle forgets, it's been a while...
fperrad darbelo, i want set environment variables (used by lua & parrot-lua) 20:22
20:24 bacek joined
Austin =item B<elements>(out INT, invar PMC) 20:24
20:28 mokurai joined
kurahaupo treed: "elems $I1, $P0" says "error:imcc:syntax error, unexpected IREG, expecting '(' ('$I1')" 20:30
My mistake, there is an "elements" opcode after all. Maybe I just needed more sleep (it's 09:32am here now) 20:32
treed heh 20:33
nopaste "fperrad" at 77.192.239.44 pasted "patch V2 for Lua Makefile" (36 lines) at nopaste.snit.ch/18144
kurahaupo However calling an "elements" method still looks broken.
treed Where?
Rakudo? 20:34
purl rumour has it Rakudo is horribly slow too
treed That's true, purl.
purl treed: i'm not following you...
treed but Cardinal is worse :-(
NotFound There is no elements method.
kurahaupo NotFound: OK, I won't test for it then. :-) 20:35
20:39 whoppix joined 20:40 Austin_away joined
fperrad darbelo, on openbsd, use 'env' instead of 'export' 20:44
pmichaud in PIR, it's 'elements' 20:45
in Perl 6, it's .'elems' . But AFAIK none of the built-in PMCs implement an 'elems' method. 20:46
given a ResizablePMCArray, is there an easy way for me to remove any duplicate entries? ("duplicate" here means that the same PMC occurs multiple times within the RPA) 20:47
kurahaupo fperrad: "export" is a standard command within the POSIX shell, while "env" is a standard external POSIX command; does that make any difference to your context? 20:48
darbelo fperrad: the problem here is the ;; which the shell wil treat as a syntax error. 20:49
using env has the same problem.
NotFound Are you using export in a Makefile? 20:51
fperrad darbelo, the shell export needs double quoting, 20:52
the gmake export doesn't need it
Austin pmichaud: I've got Array::unique. But sadly it does what you fear, and is O(n**2)
NotFound export is semi-standard 20:54
The standard form is export name , export name=value is an extension.
fperrad NotFound, which export ? gmake one or shell one 20:55
NotFound fperrad: sh
kurahaupo fperrad: also, if you have "export foo=bar ; cmd" you can also write it as "foo=bar cmd" (note lack of ";") 20:56
Of course "bar" may need quoting
NotFound But that surely doesn't work in windows 20:57
darbelo using export in makefiles considered harmful.
fperrad currently, i want : export foo=bar && cmd 20:58
kurahaupo Using anything that modifies process context in Makefiles is bound to cause trouble because it doesn't persist between lines
NotFound No trouble then. Just doesn't work.
fperrad in openbsd.org manual, I found env but not export
kurahaupo Export is in the manual for "sh" because it's a built-in 20:59
As is the "foo=bar cmd" syntax
NotFound It hardly can work if not a builtin.
kurahaupo I mean, it's built into the shell
fperrad kurahaupo, yes like cd. So we chain commands with && 21:00
kurahaupo "env" is a separate binary that can be invoked as a command
darbelo fperrad: env is a separate prgram, so it has it's own manpage. export is ksh built in. 21:01
NotFound export modifies the environment of the current process, so using it as a called command is a nice way of losing time.
21:02 particle1 joined
darbelo fperrad: Also I was missing a submodule update. 21:08
Coke particle1: $I0 = elements $P0 is valid. 21:10
darbelo Put the varaibles into my environment by hand. smolder reports All tests successful.
Coke catches up and sees this has been covered.
pmichaud: not that I'm aware of.
I would recommend sorting and then walking through the array.
darbelo smolder.plusthree.com/app/public_pr...ails/28406 21:11
shorten darbelo's url is at xrl.us/bfphv8
Coke I could write you a PIR method you can tack on to the core PMC... (except that's not going to be supported going forward, IIRC.)
pmichaud sort... on what? 21:13
Austin get_addr 21:14
purl get_addr is deprecated anyway, going to be removed after 1.4 I think
pmichaud I think I'll just use get_addr as the keys in a hash, then.
fperrad darbelo, happy to see this report 28406
PerlJam If only PMCs had a method that returned a unique id per PMC ... :)
darbelo Yeah, that is with your Makefile patches and the LUA_* variables manually placed into my environment. 21:15
nopaste "Austin" at 98.235.55.43 pasted "get_address_of in NQP" (13 lines) at nopaste.snit.ch/18145
pmichaud right, I was hoping for something a little more sophisticated than get_addr 21:16
I'll go with get_addr for now then
Austin What are you trying to do?
PerlJam pmichaud: why are you using an RPA in the first place?
fperrad darbelo, patch nopaste.snit.ch/18140 cannot work
try patch nopaste.snit.ch/18144
PerlJam Austin: are you spreading a bad meme? Just think of all the code that will need to be changed when we get a compacting GC if everyone starts using get_addr as a unique id for their PMCs 21:18
:-)
Austin :) There was a unique id generator PMC I think, but nobody has owned up to making it a core opcode.
Coke PerlJam: you mean, if he wants uniqueness? 21:19
now that hash keys can be pmcs, that's not a terrible question. 21:20
darbelo fperrad: Sorry, *not* both patches. Just the other one. I just removed the exports.
Coke austin; if there's a pmc, why need an opcode? 21:21
PerlJam Coke: oh, that's right ... but it stringifies the PMC to get the key right?
Coke perljam;not anymore, I think.
but I could be wrong.
pmichaud yes, I'm a bit worried about that
Coke I thought it was "real" pmc key support. (or else, why bother?)
Austin perljam: No, it checks for a hashkey vtable. Default behavior for the 100% of pmcs that don't implement it is stringify.
pmichaud oh 21:22
hashkey vtable might work
Coke that seems reasonable except for the 100% implemented part.
(un)
21:22 bacek joined
cotto_work NotFound, reply to tt #1083 posted 21:23
Austin Coke: I appear to be wrong. I can't find such a pmc in my current parrot. 21:24
NotFound cotto_work: non temporary cstrings is a different problem 21:25
cotto_work Ok. For temporary cstrings, it's a great solution.
darbelo fperrad: still doesn't work if I remove the LUA_ var from the environment. But I can live with that.
Austin Coke: We'll just put 7 VTABLE hashkey() { return get_addr(); } in the default pmc for now... 21:26
pmichaud Austin: that's what worries me -- a lot of code will break if/when we do that.
Austin if/when we do that and what? 21:27
pmichaud if we add a VTABLE hashkey() to the default pmc
and if the default Hash uses it instead of stringification 21:28
Austin You're saying that adding a vtable will cause breakage? Or a hashkey vtable?
pmichaud we *really* ought to have a different PMC aggregate for PMC keys
I'm saying that a lot of code assumes that hash[$P0] = 'foo' will use the string value of $P0 as its key 21:29
Austin Mkay.
bacek Good morning
pmichaud if Hash changes so that it uses hashkey(), and the default hashkey() is changed to be get_addr, then the hash keys end up changing
and existing code that relies on the stringification behavior breaks. 21:30
Austin Well, the present default is string. I was just winding Coke up.
pmichaud there really should be two different Hash PMC types
cotto_work good morning bacek
pmichaud one that uses strings as keys, and one that uses PMC (hashkey) as keys
trying to get a single Hash to serve both purposes is going to be problematic
bacek pmichaud: why? 21:31
pmichaud bacek: for the reason I just outlined above
21:29 <pmichaud> I'm saying that a lot of code assumes that hash[$P0] = 'foo' will use the string value of $P0 as its key
bacek current VTABLE_hashvalue do stringification
pmichaud will that be true for all PMCs? 21:32
Let me give a real example.
Let's suppose I have a Match object
bacek But now we can implement Integer.hashvalue to calculate hashvalue without casting to string
pmichaud bacek: and if we do that, would hash[0] still end up being the same as hash['0'] ? 21:33
or, more to the point
if I have
$P0 = box 1; $P1 = box '1';
21:33 cconstantine joined
pmichaud are hash[$P0] and hash[$P1] the same entry? 21:33
Austin I'd expect so.
bacek hash[$P0] and hash[$P1] are same
Austin Simply because the "big 4" types behind scalars are so interchanged.
pmichaud back to my other example 21:34
nopaste "fperrad" at 77.192.239.44 pasted "Lua Makefile with export only when gmake" (15 lines) at nopaste.snit.ch/18146
pmichaud let's suppose I have a Match object
sometimes I'm interested in its string value -- i.e., I want hash[match] to use the string value of 'match' as its key
sometimes I'm interested in its identity, i.e., I want hash[match] to use its address as key
the difference isn't in match, it's in the hash being used to store it 21:35
i.e., hash-with-string-keys is common enough that it deserves to be its own type
bacek no, difference is how you calculate hashvalue.
purl okay, bacek.
Austin That's the part I have a problem with.
pmichaud bacek: how do I get a match object to have two different hashvalues?
fperrad darbelo, now I try simple thing 21:36
bacek pmichaud: with current VTABLE architecture - only by subclassing.
Austin Or stringifying first, no?
~ $match
bacek pmichaud: but anyway, switch to PMC keys is manual. Default behaviour is stringification 21:37
darbelo fperrad: Trying to modify the shell environment in makefiles is pretty much impossible to do portably.
bacek hash = new ['Hash']
hash = .Hash_key_type_PMC 21:38
pmichaud Austin: "stringifying first" would tend to mean (in a HLL sense) that I need a separate Hash that always stringifies its keys 21:39
bacek: I'm more comfortable with that approach, yes.
bacek: however it feels weird to overload hash assignment for this purpose.
I'd prefer that it be set at the point when the Hash is created
hash = new ['Hash'], ... 21:40
Austin pmichaud: The separate Hash approach fails when you've built a class hierarchy on Hash. (E.g., PCT)
Make it a method.
pmichaud method++
Austin It's not like you're going to call it a lot :)
bacek pmichaud: Hash.init_pmc isn't used (yet). So we can implement "hash = new ['Hash'], ...' 21:41
pmichaud I think method is better for now
bacek OTOH it will require more lines of code in PIR.
21:41 preflex joined
Austin bacek: Runtime is better, imo 21:41
What, 1?
bacek Austin: it is runtime.
pmichaud anyway, as long as the default behavior is switchable on a per-Hash-instance basis, I'm good with that.
bacek++ # was ahead of me a couple of steps
bacek :) 21:42
Austin $P0 = new 'Hash' ; $P0.'set_hashing_mode'('hashkey')
bacek How it differ from $P0 = .Hash_key_type_PMC?
Austin How do you do that in NQP? 21:43
bacek Q:PIR {{ ... }}?
Austin :(
bacek But I can add method for it :)
Bah!
Austin %%attrs.set_hashing_mode('hashkey');
bacek I did it already :)
Hash.set_key_type() 21:44
Austin Works.
bacek And Hash.set_value_type()
Austin And Hash.set_addr_type() ?
(for Coke)
bacek You can use Int, Str or PMC as Key. Or any of bif 4 for values. 21:45
What set_addr_type should do?
Austin Set the hash to use get_addr for the key, natch.
PerlJam ew
Austin :)
bacek I'm thinking about "set_hash_func". It's more generic
PerlJam wishes he could simultaneously concentrate on N > 3 threads of conversation 21:46
bacek You just pass closure to calculate hashvalue.
21:47 japhb left, japhb joined
PerlJam bacek: what if you Hash.set_key_type(Int) and Hash.set_hash_func(<something that doesn't take Int>) ?? Does it blow up badly? 21:47
bacek Actually 2 closures. One for "hashvalue", one for "equal". Second is optional and defaulting to "VTABLE_equals"
PerlJam: It can. Or can not. 21:48
E.g. ".sub "my_hashfunc"; .param int foo; ... .end" will just work
PerlJam bacek: and .sub 'foo'; .param string foo; ... .end will ..... what? 21:50
bacek will work? I don't see why not.
dalek a: aa61298 | fperrad++ | config/makefiles/root.in:
generate export only when gmake
21:51
shorten dalek's url is at xrl.us/bfph58
bacek PerlJam: PCC cast value to proper native type.
nopaste "bacek" at 114.73.190.35 pasted "PCC param casting" (11 lines) at nopaste.snit.ch/18147 21:52
bacek PerlJam: check nopaste. PCC DTRT
PerlJam yes. bacek++ parrot++ 21:53
bacek Anyway, time for $dayjob. See you soon! 21:55
dalek kudo: d014a99 | moritz++ | src/ (3 files):
move log10 to setting
22:00
shorten dalek's url is at xrl.us/bfph9b
dalek kudo: 2d34081 | (Solomon Foster)++ | src/setting/ (2 files):
Add Int.unpolar and Num.unpolar.
shorten dalek's url is at xrl.us/bfph9d
dalek kudo: d9cbe43 | moritz++ | src/setting/Complex.pm:
Complex.polar
shorten dalek's url is at xrl.us/bfph9f
dalek kudo: 5159c42 | moritz++ | src/setting/Complex.pm:
Complex.roots
shorten dalek's url is at xrl.us/bfpdv4
dalek kudo: cec4b04 | moritz++ | src/ (4 files):
roots() function and various partially related fixes
shorten dalek's url is at xrl.us/bfph9h
dalek kudo: 65af3ca | moritz++ | src/setting/ (2 files):
can't use 'is export' on method sin because it kills multi dispatch
shorten dalek's url is at xrl.us/bfph9j
dalek kudo: 3566baf | moritz++ | src/setting/Complex.pm:
be smarter about NaN/Inf in roots()
shorten dalek's url is at xrl.us/bfph9o
dalek kudo: 34e9a64 | moritz++ | src/setting/Complex.pm:
be smarter about Complex -> Num conversion: allow it if .im == 0
shorten dalek's url is at xrl.us/bfph9q
dalek kudo: e25aaba | moritz++ | :
Merge branch 'native-complex'

methods defined in the parrot Complex PMC would not be overridable from withing Perl 6.
  colomon++ gets much credit for working on this branch.
moritz holy shit, that was a merge commit - does dalek now report all individual commits in the branch?
shorten dalek's url is at xrl.us/bfph9u
dalek kudo: 1cd0864 | moritz++ | src/ (2 files):
move Num.ACCEPTS to the setting, and make Complex ~~ Num a bit smarter
shorten dalek's url is at xrl.us/bfph9y
darbelo moritz: dalek reports based on the RSS feed. 22:02
22:02 whiteknight joined
cotto_work hi whiteknight 22:03
whiteknight top 'o the evenin' to you, cotto_work
cotto_work clock? 22:04
purl cotto_work: LAX: Wed 3:04pm PDT / CHI: Wed 5:04pm CDT / NYC: Wed 6:04pm EDT / LON: Wed 11:04pm BST / BER: Thu 12:04am CEST / IND: Thu 3:34am IST / TOK: Thu 7:04am JST / SYD: Thu 8:04am EST /
whiteknight shut up, it's evening here 22:10
cconstantine agrees with whiteknight.
moritz evenin'o'clock 22:11
dalek kudo: ffe6481 | moritz++ | docs/ChangeLog:
[docs] ChangeLog updates
22:12
shorten dalek's url is at xrl.us/bfpia7
whiteknight is getting excited about the hackathon on saturday
I want to see everybody there, so we can kick PCC ass
cconstantine I'm trying to add a stage to my compile, and I want to generate an ast using my own types... is there a 'parrot' way of doing that? 22:13
darbelo will probably be available only in the (local) morning. 22:14
cotto_work I just realized that my mom's going to be visiting from out of town this weekend, so it looks like another weekend will be spent doing worthwhile but non-parroty things. 22:17
whiteknight cconstantine: yes, there should be
cotto_work (or most of it, at least ;)
whiteknight PCT has a way to add stages to the compilation process
cconstantine whiteknight: are there docs for that?
whiteknight cconstantine: of course there should be a way to specify the PMC type in the PAST definitions 22:18
cconstantine: probably not as many as there should be
ask pmichaud
cotto_work cconstantine, look for addstage in the PCT source
It's a nice extensible framework, but a little intimidating at first.
whiteknight a lot intimidating
it's a world-class freaking compiler generator. 22:19
cconstantine cotto_work: code == documentation?
cotto_work possibly. There's a lot of inline POD
whiteknight cconstantine: the code is well documented in most places
cconstantine better than my code tends to be :)
my code at work tends to have a ton of docs for the interfaces, and nothing for how it works 22:20
whiteknight well, that's mostly what you need
cconstantine thats what I figure
if you want to know *how* it works, the code describes that
ok, I have a test that adds stages 22:22
like, a parrot test, not one of mine :) 22:23
22:23 cotto_w0rk joined
whiteknight which test? 22:24
cconstantine parrot/t/compilers/pct/pct_hllcompiler.t 22:25
22:25 slavorg joined 22:26 particle joined
whiteknight oh nice 22:28
cconstantine loves his 'g' alias 22:30
darbelo g? 22:31
purl g is a gonzo!
cconstantine alias g='find . |grep -v -e ".git" |grep -v -e ".svn" |xargs grep'
treed just use ack? 22:32
darbelo cconstantine: You don't know about ack, do you?
szbalint ack++
cconstantine hush you!
dukeleto cconstantine: greping out .svn directories is painfully slow for large hierarchies. that is why ack rulez 22:34
Coke (winding coke up) this is not a fun game and I wish you'd stop playing.
dukeleto ack also has type=parrot for searching only parrot-like files. very useful
Austin I found it useful to define a PCT type, to ignore .pir files. 22:35
darbelo whiteknight: I can't see src/gc/gc_malloc.c built anywhere, is that right? 22:37
whiteknight darbelo: no, I think that's ripe for the pickin' 22:38
Coke (hackathon) I saw mention of this in a blog post. Should be on the calendar. 22:39
whiteknight oh, that's a good idea
we mentioned it in #ps, and on the wiki, but calendar is good too 22:40
Coke #ps isn't advertising.
assume no one reads that. and the wiki isn't good for announcment-y things.
darbelo whiteknight: 'kay. Killing...
Coke whiteknight: let me know if you need privs to modify the calendar. 22:41
whiteknight I'm sure I will
Master Coke is hording all the cool privs, it looks like 22:42
Austin Boy, I'm sure there's a "Coke hoard" joke there...
Coke more like I volunteered to do shit once and got stuck with it. 22:43
young (*&@# whippersnappers.
whiteknight?
purl i guess whiteknight is mailto:wknight8111@gmail.com or the grand master funk or wknight8111.blogspot.com/ 22:44
whiteknight on google?
Coke permission granted. 22:45
whiteknight awesome
Coke whiteknight: go to www.parrot.org; you can hit the calendar there.
dalek rrot: r41583 | darbelo++ | trunk (10 files):
Remove the old and unused 'malloc' gc.
Coke I went through and added a bunch of release dates in there; that'll need to be updated too.
cconstantine I might have to look up this 'ack' thing you speak of
Coke betterthangrep.com
ack? 22:47
purl rumour has it ack is at search.cpan.org/dist/ack/ or at petdance.com/ack/ or awesome or a grep-like tool for working-copies
Coke no, ack is betterthangrep.com or a grep-like tool for code.
purl okay, Coke.
22:47 kid51 joined
whiteknight it's definitely better then grep 22:48
darbelo japhb: ping
cconstantine I've written a better-grep for log parsing... but it's at amazon
whiteknight well it does nobody any good over there 22:49
cconstantine it does them good ;)
except I was the only one that ever used it..
and it solved a pretty specific log grepping problem, I've never needed it since 22:52
whiteknight Done 22:56
japhb darbelo, pong 23:02
nopaste "kid51" at 71.247.53.254 pasted "pcc_reapply branch: build failure on Darwin/PPC at r41583" (507 lines) at nopaste.snit.ch/18148 23:03
darbelo do you have any plans for plumage's temp directory handling? 23:04
just checking out stuff into ./ looks wrong to me.
japhb darbelo, OH, I completely agree. I was going to address that yesterday, but I ran out of brain 23:05
A few next tasks:
* checkout tree
* user config
* exception handling 23:06
darbelo we could just use a tmp/ dir and ckeckout stuff into tmp/project-name, for less directory pollution, but I think that's still half-wrong.
japhb * more projects (all of the proto projects?)
* command line options
That should be enough to carry us for a bit
23:06 zak_ joined
darbelo I'll see if I can get us fetch-build-installing partcl tonight. Tackle whatever task that leads me to. 23:08
darbelo loses focus when he doesn't have a tangible goal.
Coke partcl doesn't install. 23:09
japhb I don't blame you.
:-)
Coke good luck with that. =-)
darbelo Coke: Any particluar blockers there? What prevents you from having a "make install" target
Coke darbelo: not enough tuits. 23:10
darbelo Coke: I'll see if I have enough tuits to make that happen for you then. 23:11
Expect patches.
Coke darbelo: you want a commit bit? you can just work in a branch. 23:14
darbelo Sure, what are the rules?
Coke same as parrot. 23:15
darbelo Ok. Increase the build. Don't break the awsome.
Coke (because I was too lazy to make own rules) Also code belongs to parrot foundation, etc.
email addy to feed to googlecode?
darbelo Yeah, I'm CLAed, etc.
purl, me? 23:16
purl hmmm... darbelo is Daniel Arbelo Arrocha <mailto:arbelo@gmail.com>
darbelo That one.
purl rumour has it that one is silly to. It's an impl detail, right
Coke done.
code.google.com/p/partcl/source/checkout
darbelo Cool. I'll deface the wiki later :) 23:17
Coke finds a ticket to assign...
darbelo 60?
purl hmmm... 60 is nothing... 5 days straight seperates the men from boys... :)
Coke heh, yes.
assigned.
have fun. =-)
darbelo Looks like I will. 23:18
23:19 patspam joined
Coke docs.parrot.org updated to 1.6.0 23:21
(needs an account on parrotvm.osuosl.org to do.) 23:22
nopaste "kid51" at 70.85.31.226 pasted "pcc_reapply branch: build failure on Linux/i386 at r41583" (505 lines) at nopaste.snit.ch/18150 23:24
cconstantine whiteknight: yeah, so beside that test is there a better place to get examples of how to add a new stage? 23:25
whiteknight pmichaud 23:26
purl hmmm... pmichaud is www.pmichaud.com/ or "Patrick R. Michaud" <mailto:pmichaud@pobox.com> or in charge of toaster experiments or a friendly guy :)
whiteknight ask the source
Coke toasters?
purl toasters are cheap, man.
Coke toasters are also cylons.
purl okay, Coke.
cconstantine whiteknight: are you going to force me to solve my own problems? ;) 23:31
whiteknight force is such a strong word 23:33
and it suggests that I'm not too lazy to do something
nopaste "kid51" at 70.85.31.226 pasted "diff between recent trunk build and failed build on pcc_reapply (Linux/i386)" (317 lines) at nopaste.snit.ch/18151
cconstantine hehe 23:34
whiteknight kid51: yeah, I've been getting segfaults in miniparrot too 23:38
I had it traced back to an uninitalized context somewhere
kid51 FYI, I'm working from the SVN branch, not from anywhere on github 23:39
darbelo kid51: The SVN branch is the right place to be. github was only used to get the patch that was applied to the svn branch. 23:40
It aws an experiment by allison to see if git's merging machinery was better for the job at hand than svn's. 23:41
mikehh kid51, whiteknight - me too 23:44
jrtayloriv cconstantine, I've been looking at this today too, but I'm not sure I understand it. It looks like to create a stage 'foo' you just add a method for HLLCompiler called 'foo' that does what you want, and call $P0.addstage('foo'), ( with optional 'before'/'after' argument to set when it occurs) from your_language.pir (where $P0 holds your HLLCompiler object).
whiteknight okay
so that's a known issue. There's an uninitialized context somewhere getting up in my business
cconstantine jrtayloriv: thanks. I've been following the code trying to trace it out 23:45
jrtayloriv: I'm coming to the same conclusion, but I don't have proof yet
jrtayloriv: and I'd like to see how the stages communicate with each other 23:46
nopaste "kid51" at 70.85.31.226 pasted "Same make corevm failure on Linux, not at r41584." (504 lines) at nopaste.snit.ch/18152 23:47
mikehh I think I need to reboot - bbl 23:48
nopaste "kid51" at 70.85.31.226 pasted "diff between recent trunk build and failed build on pcc_reapply (Linux/i386) (1 warning fixed)" (315 lines) at nopaste.snit.ch/18153
kid51 laundry calls 23:50
dalek rrot: r41584 | jkeenan++ | branches/pcc_reapply/src/pmc/nci.pmc:
Fix unterminated C comment noted by warning during 'make corevm'.
jrtayloriv cconstantine, You said you are working on macro evaluation? I'd be interested in seeing what you're doing with that if you get any code written. I came to the same conclusion earlier -- needing extra stages -- for dealing with macros/quasiquoting properly ... do you have an SVN/Git/Whatever repo up? 23:52
darbelo say, do we need the old pcc branches for anything? 23:53
dukeleto probably not, it just confuses people 23:54
darbelo: but i would ask allison first
before deleting it
darbelo msg allison Do we need the old pcc branches for anything? Having three different branches with similar names can confuse people. 23:55
purl Message for allison stored.
23:56 cotto_ joined
allison darbelo: pcc_arg_unify can go, I've extracted all changes 23:59
darbelo How about _2_0?
allison darbelo: keep pcc_arg_unify_2_0 for now, since it includes some changes that didn't go into the new branch