Parrot 2.5.0 Released! | parrot.org | Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | GSOC Students: trac.parrot.org/parrot/wiki/GSoCersStartHere | Priorities: merge gc_massacre, remove deprecated items, add deprecation notices for 2.6, close tickets.
Set by moderator on 25 June 2010.
01:04 rurban joined
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#34744), fulltest) at r48016 - Ubuntu 10.04 amd64 (gcc) 01:17
01:48 kid51 joined
kid51 GeJ: It was approximately 24 degrees F hotter in NYC today than in your tropical paradise! 01:49
GeJ Hi Jim. Winter here... although, I'd take any winter where you can go outside with a t-shirt better than the ones on the US' east coast. :) 01:51
kid51 We're in a stretch that will be at least 5 days of 95+F weather.
Today was a holiday -- but I long to go back to work tomorrow for the airconditioning ;-) 01:52
GeJ a holiday?
purl i think a holiday is good (you brit) or in my head
kid51 Independence Day: 4th of July as on a Sunday; hence July 5 as holiday 01:53
Checking out New Caledonia weather sites .... Why is NC not independent yet?
GeJ Well, still undecided yet. Referendum coming up in 4 years about that. 01:56
I think people don't want to have an independance like it happened in Vanuatu. 01:57
02:29 Andy joined
GeJ clock? 02:29
purl GeJ: LAX: Mon 7:29pm PDT / CHI: Mon 9:29pm CDT / NYC: Mon 10:29pm EDT / LON: Tue 3:29am BST / BER: Tue 4:29am CEST / IND: Tue 7:59am IST / TOK: Tue 11:29am JST / SYD: Tue 12:29pm EST /
02:30 theory joined 02:44 khairul joined
mikehh rakudo (22d0c39) builds on parrot r48012 - make test PASS, spectest_smolder -> #34746 (pugs r31554) FAIL - Ubuntu 10.04 i386 (gcc with --optimize) 03:06
t/spec/S32-num/rat.rakudo - Failed test: 798
23 TODO PASSes in 5 files
03:19 janus joined 03:29 contingencyplan joined 03:41 jsut joined 03:53 kthakore joined 05:14 cotto joined
cotto ~~ 05:17
seen khairul
purl khairul was last seen on #parrot 6 days, 9 hours, 15 minutes and 0 seconds ago, saying: not yet. fighting my event handling currently. [Jun 29 20:02:28 2010]
dalek kudo: 08e5b03 | pmichaud++ | src/core/ (2 files):
Move postcircumfix:<[ ]> into Any.
05:21
kudo: 577a146 | pmichaud++ | src/core/Any-list.pm:
Add first version of Any.at-pos, handling the defined case.
kudo: 06f2d7c | pmichaud++ | src/ (2 files):
Add array autovivification.
kudo: f07a656 | pmichaud++ | src/core/Array.pm:
Add WHENCE-based autoviv to Array.
kudo: 04a918d | pmichaud++ | src/core/ (3 files):
Move postcircumfix:<{ }> into Any. Add hash autovivification.
05:24 fperrad joined 05:37 khairul joined
khairul cotto: ping 05:39
05:45 TiMBuS joined
cotto khairul, pong 05:45
Sorry I wasn't around earlier today. My trip home was more scenic than I had expected. 05:46
khairul oh its alright, i took a longer nap.
shall we start then?
cotto Do you mind meeting tomorrow? I don't have much brainpower left tonight.
khairul ah, sure, its fine
cotto thanks 05:47
khairul np
cotto is the same time as normal ok for you?
khairul later would be safer, say about 2 hours later.
cotto wfm 05:48
khairul alright then.
cotto we'll talk then.
BTW, my brother had some comments on your code.
His assessment: "What the hell is this?"
It'd probably be more helpful if he could write code. ;) 05:49
khairul yep, i have that feeling too sometimes.
05:57 plobsing joined 06:11 uniejo joined 06:17 he_ joined 06:28 jsut_ joined 07:30 tcurtis joined 08:30 hanekomu_9 joined 09:01 rurban_ joined 09:03 clinton joined 09:34 JimmyZ joined 11:24 contingencyplan joined 12:13 bluescreen joined 12:21 jsut joined 12:28 ruoso joined 12:47 lucian joined
mikehh opbots, names 12:59
13:10 gbacon joined 14:01 bubaflub joined 14:11 uniejo joined
mikehh I think dalek is dead 14:11
14:21 plobsing joined 14:24 Mokurai joined
ash_ plobsing: hi 14:36
purl what's up, ash_.
plobsing ash_: hi. sorry I've not been available lately. 14:37
how goes it?
ash_ thats fine, i figured out my 32 bit issues
plobsing oh?
ash_ for libffi
before, i kinda assumed a void* was big enough to hold a FLOATVAL but thats not true for 32 bit, ore if FLOATVAL is a long double 14:38
that also would be bad if INTVAL was a long long in 32 bit, which that is larger than void*
so, i re-wrote part of it to add up the sizes of each memory location I need individually, its working now, but now i got a new error i didn't have before, still trying to figure that one out 14:39
plobsing oic. I would use a union which makes the compiler calculate the size of the object and also aligns everything correctly. 14:40
ash_ right now, i allocate the number of args of void pointers, then i cycle through the args and allocate memory for each one individually 14:41
github.com/ashgti/parrot/blob/eb6e4...c.in#L1093
i need to change those mallocs to be parrot allocations, but its working now, so i am happy about that 14:43
plobsing that'll work too. you might run into issues with allocator pressure, but we can deal with that if it becomes an issue. 14:44
ash_ my one failure is with V (which is an opaque pointer), doing null $P0 then reading the value of $P0 in a C call (like nci_vp) has a value, which is odd 14:45
specifcially, test 67 of the t/pmc/nci.t is failing on both 32 and 64 bit systems, i haven't figured it all out yet 14:46
14:49 patspam joined
bubaflub ash_: i don't know if this will help, but a lot of that information (floatval size and what not) is calculated during the configuration run by config/auto/sizes.pm 14:51
and then stored in the global config hash
ash_ bubaflub: yeah, i am using those defines in places
its also in include/parrot/config.h
i have been thinking, as a proof of concept for the llvm runcore, i might for now try to (instead of doing it completely in C) just start with a few example parrot files, output their pasm, and write a little translator to translate that into llvm-ir code, then compile that with the lli, to sorta proof of concept that the llvm can act as a run-core 14:52
plobsing that would be a good idea, but imcc generates broken pasm for some features. notably subroutine and method invocations. 14:54
maybe that's not an issue as it is a PoC 14:55
just be sure to sanity check the pasm
ash_ is there a way i can run the pasm to verify its correctness? 14:57
plobsing sure - ./parrot file.pasm
ash_ well, i mean, i know how to run it, but i guess a like lint op or something
plobsing most (probably all) of the induced failures are fatal
s/failures/breakage/ 14:58
so you likely won't be able to run files which got broken
ash_ got ya 14:59
Coke ./parrot -o /dev/null foo.pasm
that will compile the pasm to bytecode, and then throw it away. (basically a -c) 15:00
ash_ got ya, so that can tell if you have any errors (hopefully)
can i dump the bytecode? or is pasm the lowest you can do with -o and such tools 15:01
Coke pbc_dump
purl pbc_dump is probably not a great help
Coke of course, then you don't want to do -o /dev/null first. =-)
ash_ thanks, i'll look at that
plobsing purl: LIES! 15:02
purl I didn't change anything!
plobsing pbc_disassemble is nifty too 15:03
ash_ wow, thats useful
that gives me the exact names of the ops that are going to be invokes
that will make my life easier
plobsing ash_: you might consider using the output of one of those tools in stead of the pasm. I find them to be more reliable 15:04
ash_ yeah, i think i will
Coke yah. only use them on the pasm if you're working with pasm to begin with.
ash_ they give me more of what i need too
Coke if you're starting with PIR, there is pretty much no point in doing -o pasm.
ash_ knowing to call set_i_ic is better than knowing to call set and figuring out the rest from the ops 15:05
it also lists a constant table, so i will know which constants to give the llvm directly from that file 15:06
i think i could get a proof of concept of the llvm working a lot faster from the ./pbc_disassemble than pasm (or pir) 15:07
plobsing afk # late for work
15:16 lucian_ joined 16:09 theory joined 16:15 Khisanth joined 16:18 davidfetter joined
cotto_work ~~ 16:21
mikehh opbots, believe dalek 16:28
slavorg But I already believe dalek
slavorgn Ok
cotto_work dalek doesn't really know what to do with ops 16:29
mikehh I thinnk he's dead 16:30
cotto_work dalek, are you alive? 16:31
Coke yay web 2.N : search.dilbert.com/search?w=parrot&...6&y=26 16:58
17:00 hanekomu_9 joined
cotto_work I'm holding out for web 3.11 for workgroups. 17:01
17:01 rurban_ joined
NotFound cotto_work: surely will be renamed to 'social groups' 17:02
17:09 tcurtis joined 17:17 hanekomu_ joined, hanekom__ joined 17:19 dalek left, dalek joined
sorear somebody called for a dalek reboot? 17:19
17:19 haneko___ joined 17:20 Khisanth joined 17:21 gbacon joined
moritz aye 17:25
17:28 patspam joined
ash_ how do you compare 2 strings in pir? 18:00
tcurtis ash_: iseq should test for equality. 18:02
ash_ $I0 = iseq $S0, 'Foo' #? 18:03
cotto_work cmp_str
ash_ whats the difference between iseq and cmp_str?
cotto_work we also appear to have [lt|le|gt|ge|eq|ne]_str
time for a cull
moritz cmp_str jumps to a label if the test was successful, iirc
18:03 wknight8111_ joined
moritz whereas iseq returns 0 or 1 18:04
cotto_work what he said
ash_ ah, jumping to a label saves me a line of code i guess
tcurtis No. cmp_str returns -1 for less-than, 0 for equal, 1 for greater tan.
eq jumps.
ash_ how about eq_str? 18:05
cotto_work src/ops/cmp.ops has inline docs
tcurtis That's for comparing PMCs as strings. It jumps.
cotto_work looks like it uses some VTABLE functions I didn't know we had. 18:06
wknight8111_ which ones?
cotto_work is_equal_string
wknight8111_ hmm...new to me
ash_ most of the vtable entries other than get_pointer, set_pointer are new to me :P 18:07
18:08 eternaleye joined 18:11 lucian joined 18:12 Mokurai joined
cotto_work tcurtis: ooc how far off would a more complex optimization such as loop unrolling be? 18:12
wknight8111_ I suspect all the tools are there now to make such optimizations. The problem is identifying the correct tree patterns and replacing them in such a way as to not change the semantics of the program too porly 18:14
cotto_work also, tcurtis++ for the docs. I have it on my todo list to review them.
18:16 bkuhn joined
cotto_work wknight8111_, yes. Checking that the loop body can be safely unrolled is important. 18:16
tcurtis cotto_work: Are you asking when it'll be possible to do or when I'll do it for PIRATE?
cotto_work just when it's possible
I'd be a little surprised if it were on your todo list. 18:17
at least before the end of gsoc
particle cotto_work: got your msg, but i was out backpacking, hope your meeting resolved itself :) 18:18
cotto_work particle: it did
tcurtis It depends on how the HLL compiler in question implements subs. I noticed Sunday that NQP-rx at least puts the definitions of subs into the viviself block of the var of the name. Which I hadn't implemented traversing because I hadn't realized how necessary it would be. So, if that's the case, not yet, but it's my highest priority right now. 18:19
Otherwise, immediately.
I'm currently going to just traverse certain attributes because otherwise I have to modify the API to handle cycle-detection. If it turns out that any useful-to-traverse attributes can contain cycles, I'll have to implement cycle-detection anyway, but if not, it'll work out better this way. 18:21
18:25 jsut_ joined
tcurtis Also, cotto_work, I didn't write updated docs for everything yet. I'm waiting to do that for Tree::Transformer largely because I have some plans for changing it a bit sometime soon(e.g., make it not derive from Tree::Walker. 18:26
cotto_work np. I'll read what's there.
tcurtis I also haven't yet written docs for the individual PAST::Pattern and POST::Pattern classes because it will basically consist of "Go look at the PAST::Node and POST::Node subclasses." 18:28
18:34 fperrad joined
tcurtis pmichaud: ping 18:37
ash_ how does pbc byte code inflate constants? 18:45
cotto_work inflate? 18:46
purl rumour has it inflate is to turn it into an object, not into another string or relationships
cotto_work Heh. purl is helpful.
ash_ like, ./pbc_disassemble lists the constants
for example: PMC_CONST(0): 'ParrotInterpreter'
is one that is almost always in a pbc 18:47
but how does that get turned into an actual value?
dalek nxed: r536 | NotFound++ | trunk/winxedst0.cpp:
fix predef ord with two args in stage 0
ash_ parrot/include/packfile.h looks promising 18:50
dalek nxed: r537 | NotFound++ | trunk/winxedst1.winxed:
evaluate at compile time predef ord with two args in stage 1
18:52
18:54 ruoso joined
arnsholt Is there an opcode to get the list of keys in a Hash? 18:59
cotto_work you can iterate over it
wknight8111_ arnsholt: but no, no opcode that I am aware of 19:01
there could easily be a method on Hash PMC to get that, if there isn't already
arnsholt I grepped for keys and found nothing 19:03
Same for PDD08
Iterating it is then
19:07 pjcj joined
ash_ so... no clues on how pbc constants are made into stuff accessible by the runtime? 19:08
wknight8111_ ash_: what do you mean?
ash_ pbc's have constants that they use to in the bytecode instructions, if you do ./pbc_dump something.pbc it will list them 19:09
19:09 khairul joined
ash_ they are normally listed as PFC_[STRING|NUM|PMC|INT] 19:09
dalek kudo: e2f3019 | pmichaud++ | src/builtins/assign.pir:
Change "Cannot assign to ..." to "Cannot modify ...". TimToady++
19:11
purl dalek: that doesn't look right
kudo: 2b2f69c | pmichaud++ | docs/ROADMAP:
Update ROADMAP with completed closures/autoviv items.
kudo: 24e05c2 | moritz++ | src/core/Cool-str.pm:
avoid type constraints in sub form of split()
19:17
kudo: 8aff115 | moritz++ | (2 files):
fix split() with zero-width matches; also run two more test files
19:21 LoganLK joined 19:27 jdv79 left 19:31 chromatic joined
chromatic I won't make #ps, but I'm pasting my report. 19:31
msg bacek +1 for tcurtis to merge to trunk whenever he's comfortable with the current state 19:32
purl Message for bacek stored.
chromatic msg tcurtis +1 for you to merge to trunk when you reach a point where you're comfortable
purl Message for tcurtis stored.
cotto_work oh yeah. It's Tuesday.
wknight8111_ is tcurtis getting to a merge-back point in his project? 19:34
arnsholt What kind of signature should the delete opcode have (for use from NQP) 19:38
I've tried a vpp and vps, but it doesn't like either of them 19:39
wknight8111_ delete? I would assume delete__PP
moritz arnsholt: maybe it returns a PMC?
PPP? 19:40
purl PPP is Public Private Partnership or perverted perl poetry or Point to Point Protocol or pianississimo or Pretty, Pretty Please or pretty polly parrot or purchasing power parity or Potter Puppet Pals or the IATA code for Whitsunday Coast Airport, inexplicably
arnsholt It's delete(invar PMC, in KEY) according to ops/pmc.ops
My code is pir::delete(%hash, $key), so __pp means it gets one too much arity 19:41
tcurtis wknight8111_: bacek wants it either merged soon or moved into an external repo and put in ext/ for pirate. If it's merged before 2.6, I would like it marked experimental because there are still some changes that should probably be made to the API. 19:42
wknight8111_ does nqp do something like __PK? 19:43
chromatic Experimental is fine.
tcurtis Okay. I'll bring it up at #ps, then.
arnsholt wknight8111_: Looks like K means the same as P
wknight8111_ tcurtis: I'm highly in favor of mergeback. There are a lot of uses for that tool, even if some changes are made still to the API 19:44
arnsholt: it definitel does, which is why delete__PP should work
tcurtis chromatic: By the way, do you agree with my plan to implement traversal of only certain attributes for now and only implement cycle-detecting traversal of all attributes if it turns out that a potentially-cyclical attribute needs to be traversed? 19:47
chromatic Yes, do the minimum necessary now to get what you need working and elaborate only if we need it. 19:48
wknight8111_ Parrot still could use a generalized cycle-detection mechanism 19:49
these tree optimizations are far from the only system that could make use of it 19:50
20:04 hercynium joined
ash_ ping: dukeleto 20:08
purl well, dukeleto is mentoring a few peeps. can't remember everyone. sure.
GeJ Bonjour everyone.
tcurtis Hi, GeJ. 20:09
cotto_work dukeleto: are you sending anything to parrot-dev as a reminder about impending midterms? 20:14
tcurtis Wow. #ps is unusually report-light this week. 20:19
cotto_work not anymore 20:21
sorear chromatic: Was there no sixperl on 6/23?
20:22 eternaleye_ joined 20:30 Andy_ joined 20:32 allison joined 20:33 patspam joined
cotto_work #ps in 0 20:33
moderator Parrot 2.5.0 Released! | parrot.org | Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | GSOC Students: trac.parrot.org/parrot/wiki/GSoCersStartHere | Priorities: review experimental features for promotion or removal, fix 'make html'. 20:44
dalek kudo: bbacb74 | util++ | docs/announce/2010.07:
Add release announcement for 2010-07; preliminary version
20:45
particle coke: i'm currently writing a pod2html converter for openefs
Coke particle: ... that isn't just a subclass of Pod::Simple::X?HTML ? 20:46
I'm keeping that part. I'm just trying to rip out all the Parrot::Dist* stuff that has gotten bundled in with it.
particle it's mainly using pod::simple::htmlbatch
ok
moderator Parrot 2.5.0 Released! | parrot.org | Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | GSOC Students: trac.parrot.org/parrot/wiki/GSoCersStartHere | Priorities: review experimental features for promotion or removal, fix 'make html', pre-release testing. 20:49
20:57 autarch joined, autarch left
dalek p-rx: 60e0c27 | moritz++ | src/Regex/P6Regex/Actions.pm:
make subrule_alias a method, so that subclasses can reuse it easily
20:58
p-rx: 04f7885 | moritz++ | src/stage0/ (3 files):
update bootstrap files to get latest setting and subrule_alias updates
21:03
ash_ can anyone explain how pbc constants get inflated when you run a pbc? 21:14
tcurtis ash_: Are they thawed?
ash_ i am talking about when you do "parrot ./something.pbc" in the command line 21:15
"pbc_dump ./something.pbc" will list the constants, but i haven't figured out how they turn into useable objects to the runtime
NotFound ash_: there is a constant table, and opcodes that uses constant takes an index on that table. 21:18
ash_ but is there a C function you have to call to load the table? 21:19
dalek rrot: r48017 | Chandon++ | branches/gsoc_threads (7 files):
[gsoc_threads] Now with less segfaults.
NotFound ash_: you can use the packfile PMCs. 21:20
ash_ what if you want to do it before the parrot interp has even started? (in C)
NotFound ash_: the you need a lot of work. 21:22
s/the/then
ash_: see examples/tools/pbc_checker.cpp for example.
ash_ NotFound++ cool, i'll read over that and see if i have more questions 21:23
21:35 lucian_ joined
dalek rrot: r48018 | Chandon++ | branches/gsoc_threads (19 files):
[gsoc_threads] Merge from trunk.
21:36
cotto_work looks forward to allison's Lorito post to parrot-dev 21:37
atrodo I do too. I've been thinking on how I would do Lorito in my spare time lately 21:45
hmmm, fascinating, that sentence is awkward. 21:46
22:03 chromatic joined
bacek ~~ 22:15
cotto_work hio bacek
bacek aloha, cotto_work
GeJ Heya bacek, cotto. 22:16
bacek G'Day, GeJ 22:19
bacek missed #ps...
mikehh me too 22:20
bacek and have to go to $work early.
mikehh aloha bacek
cotto_work It's tough when you have a choice between sleeping until a reasonable time and going to #ps
bacek aloha, mikehh
sorear chromatic: Was there no call on 6/23? 22:21
chromatic No call due to YAPC. 22:22
sorear aha.
dalek TT #1703 created by bacek++: IMCC doesn't generate get_params op for argless subs. 22:34
TT #1703: trac.parrot.org/parrot/ticket/1703
22:35 Mokurai joined, Mokurai1 joined
chromatic Any ticket which starts "IMCC doesn't..." I merely shake my head sadly. 22:35
NotFound bacek: I think there is already one or more tickets for that. 22:36
darbelo We special-case subs with no params for reasons I'm forgetting right now. 22:37
The other ticket is about that. IIRC.
NotFound And hasn't be fixed because of 'main' issues.
darbelo Well, we could make the :main marker more magical, if that's the only use. 22:40
NotFound darbelo: the problem is mainly with implicit main.
darbelo I'd like to think we have better reasons for this :)
NotFound darbelo: I'd like it, but I don't know the spell to make my desires real ;) 22:41
darbelo I keep forgetting we do the implicit main thing. 22:42
I wonder if we should stop doing it.
chromatic Remove the special case? Sounds good. 22:43
NotFound We can require that any sub used as main should take a .param string args :optional 22:44
chromatic That would work.
NotFound errr... :flat, I think 22:45
darbelo We'd still need a deprecation, but it doesn't sound very traumatic.
NotFound If we declare the deprecation, we can start fixing examples and tests- 22:46
pasm test can be tricky, though. 22:47
tcurtis chromatic, bacek: it seemed like opinion at #ps was in favor of me moving my GSoC to an external project that might eventually be put in ext/. I'll work on that once I've got traversal of attributes that should be traversed implemented. 22:48
Now, I'm off for a social engagement. I'll be back on later tonight, however. 22:50
chromatic Isn't :flat caller side? :slurpy right? 22:56
Tene right
23:27 Andy joined 23:28 szabgab_ joined 23:37 s1n joined
dalek kudo: 55acd1d | pmichaud++ | src/ (2 files):
Fix [op] reduction for single argument lists. While we're at it, perform the
23:40
tracwiki: v12 | mikehh++ | BuildWarnings 23:52
tracwiki: trac.parrot.org/parrot/wiki/BuildWa...ction=diff
23:55 Psyche^ joined