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.
00:02 kid51 joined 00:05 shockwave joined
shockwave Hi. How many bits is a Parrot (pir) int? 00:06
bacek shockwave, system dependant... 00:07
it's typedef for long
(At least on my box)
kid51 see, perhaps, config/auto/sizes.pm
darbelo It can be set at Configure time. So, as many as you want it to be? 00:08
dalek r: eb565e5 | bacek++ | (2 files):
Implement .tailcall PBC generating
tcurtis I believe there has been some speculation that disparities between the size of INTVAL and the size of pointers may cause problems for Parrot. I don't recall whether that turned out to actually be the case, though. 00:09
darbelo Some code in parrot code probably assumes that INTVALs are big enough to hold a pointer. 00:11
That can cause all sorts of breakage if you make your intvals too small.
tcurtis So, as many as you want it to be, but not as few as you want it to be, necessarily. 00:12
shockwave I looked at config/auto/sizes.pm, but it's too much for me.
I think on my box they're 32 bits.
darbelo On a 32bit box, that's the most likely option. 00:13
shockwave I'm on a 64bit box, though.
When I do:
$I10000001 = 9999999999
$I50000001 = add $I10000001, 1
I get:
darbelo You should grep config_lib.pir for intvalsize if you want to make sure.
shockwave -2147483647 00:14
purl -2147483647
00:14 japhb joined
darbelo Or query it from PIR, if you need that information in your programs. 00:14
On OpenBSD amd64, I have set $P0["intvalsize"], "8"
shockwave I'm on Windows 7, 64bits. 00:15
But, 32bits should be ok for me.
I just wanted to know about limits and things.
(It doesn't seem to overflow) 00:16
oh
Duh, it does.
darbelo shockwave: gcc or msvc?
shockwave msvc
add 9999999999, 1 == -2147483647 00:17
That's overflow
I suck.
darbelo Are you sure it's not compiling a 32-bit executable? Parrot trusts the settings of the perl used to run Configure.pl
If you run a 32-bit perl you'll end up with a 32-bit parrot. 00:18
tcurtis shockwave: look in include/parrot/config.h for typedef SOMETHING Parrot_Int;
shockwave: INTVAL is a typedef for Parrot_Int, so that'll tell you what your build of Parrot has for INTVAl. 00:20
darbelo You can also check the "iv" value in config_lib.pir for that.
On my box it looks like set $P0["iv"], "long" 00:21
tcurtis couldn't remember where to look to see the value for the "iv" and went to the header.
shockwave darbello: Oh, that makes sense.
I do have a 32bit perl.
I couldn't get the 64bit version working on my PC for some reason.
So I just say, 'fuck it, I'll use the 32bit version". 00:22
s/say/said
darbelo shockwave: To be fair, you are probably bettor off like that ;) We don't have any 64-bit windows testers.
shockwave :)
I'll live with the 32bit version.
darbelo I think whiteknight once managed to build and test parrot for 64 bit windows, but it involved some Configure overrides to get it working. 00:23
tcurtis will be a 64-bit Windows tester if he ever gets around to doing any coding on his Windows install. 00:24
darbelo Hah! Found the enty in PLATFORMS
shockwave I'll get acquainted of how parrot treats overflow when setting ints, add, etc. That's what I'm mostly concerned with. In the future (like next year), I'll pay around with the 64bit version.
darbelo win64-amd64-msvc_9.0 8 N N ? ? Y*1 N ? 20090720
Remarks:
*1 64-bit MSVC uses 32-bit int and long values. For 64-bit use --ccflags="-GS- -MD" --intval="long long" --opcode="long long"
shockwave As always, thanks guys. 00:25
tcurtis Of course, I'm unlikely to do that until I can convince the Boot Camp driver disk that came with my computer that yes, my model of macbook is new enough for Boot Camp, as opposed to Apple having include the disk as a free frisbee. 00:27
shockwave: We're always glad to be helpful. 00:28
s/include/included/
darbelo wonders where his collection of old AOL frisbees ended up... 00:30
dalek r: 7201b8c | bacek++ | src/POST/Compiler.pm:
Replace pir::die with self.panic. Fix methodcalls with no args.
00:31
tcurtis bacek, I've gotten all the binary math ones constant-folded. I suppose I'll go ahead and fold the unary math ops before working on bitwise ops. 00:47
bacek tcurtis++ # Hooray! 00:52
mikehh pir/PIRATE (7201b8c) - build ok / test PASS - parrot at r47953 - Ubuntu 10.04 amd64 (gcc with --optimize) 00:54
dalek rrot: r47969 | Chandon++ | branches/gsoc_threads/src (2 files):
[gsoc_threads] Remove dead timers code from the scheduler.
01:00
01:29 dalek left, dalek joined 01:47 plobsing joined
dalek rtcl-nqp: 7f26a12 | Coke++ | (3 files):
both t/*_namespace.t test run to completion.
01:51
rtcl-nqp: 5a4ae42 | Coke++ | (2 files):
avoid TAP parser errors in cmd_proc.
rtcl-nqp: 17d6439 | Coke++ | build/Makefile.in:
no need to special case test files anymore.
01:59 eternaleye joined
Coke tcurtis: pong 02:35
02:35 janus joined
tcurtis Coke: can you update the docs at docs.parrot.org? They're rather out of date. Or are they only updated on supported releases? 02:37
Coke the release manager needs to do it. 02:38
which is what I said the last time someone asked. =-)
also, as a backup, allison & particle (at least) also have privs. 02:39
... but since it's been weeks, yah, I'll do it.
tcurtis Coke++, thanks. I keep going to docs.parrot.org/parrot/latest/html/ops.html and forgetting about the ops that have been moved to dynops. 02:42
Coke you can 'make html' locally, btw. 02:48
tcurtis I do when I remember that docs.parrot.org isn't up-to-date. 02:51
dalek TT #1700 created by bacek++: OpLib caching doesn't survive after initializing of parrot trace. 02:55
TT #1700: trac.parrot.org/parrot/ticket/1700
Coke docs.parrot.org/parrot/latest/html/? is now up to date. 02:56
(sans ? will update after the cache expires.)
02:57 TiMBuS joined 03:23 bacek_mobile joined
bacek_mobile Coke, can you create ticket about outdated ops2c documentation link? 03:24
04:22 shockwave joined 04:23 shockwave left 05:58 jsut joined
tcurtis Yay! No more arithmetic ops left unfolded! 07:05
plobsing tcurtis: how are you handling the folding of ops that may throw exceptions? 07:39
tcurtis plobsing: ....I'm not, yet. 07:40
plobsing example: div
tcurtis s/No more arithmetic ops left unfolded!/No more arithmetic ops left unfolded! But PIRATE may die if you try to divide by zero..../ 07:41
plobsing: How does IMCC handle it?
plobsing it unfolds it
in otherwords it becomes (set $temp, $const1; div $const2, $temp) 07:42
I'd actually be tempted to say thats the better option unless optimization is enabled. POLS.
tcurtis POLS? 07:43
purl POLS is, like, Principle of Least Surprise
plobsing you asked for a div op? you get a div op.
tcurtis: regarding your previous question about IMCC and dynop folding... either the dynop is loaded and it is safe, or it isn't and it will raise an error that propagates outwards to become a parse error. 07:48
but, bigger picture, the list of ops that can be constant folded is hardcoded ATM. I'd like to see that become a flag on the ops. 07:50
ideally we would have no hardcoded lists of ops for anything
tcurtis is trying to decide whether he should rewrite the way .transform works so that returning multiple nodes to replace the one works(even though that wouldn't make sense for most kinds of nodes), or to simply return an array or something and run a final pass at the end that does the appropriate thing(especially since when transforming PAST, this problem doesn't really come up).
dalek rrot: r47970 | plobsing++ | branches/dynop_mapping/src (2 files):
eliminate creation of duplicate debug statements in pbc_merge
07:51
tcurtis plobsing: well, I was more concerned about if you loaded a different dynop with the same name. But then again, IMCC knows at compile time what dynoplibs will be loaded anyway, so it's not really a problem, I suppose.
plobsing if you name a different dynop the same name but different semantics as a core-lib dynop, you're asking for it 07:52
tcurtis True enough. 08:02
09:09 lucian joined 09:51 fperrad joined
bacek aloha, humans 10:50
msg tcurtis Good work! We do need ability to handle list of nodes from transform function. E.g. "if const, label" can return any("goto label", ()). add_i_n should be rewritten as "$Ntmp = $1; add_n_n $Ntmp, $2", etc, etc. It's just another generalization :) 10:53
purl Message for tcurtis stored.
bacek msg tcurtis We can disable folding of div/mod ops. There is div_i_ic_ic version (same for mod and numval versions) 10:54
purl Message for tcurtis stored.
11:22 lucian_ joined 11:39 mmcleric joined 12:06 khairul joined 12:13 kid51 joined 12:15 clinton joined
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#34700), fulltest) at r47970 - Ubuntu 10.04 amd64 (g++ with --optimize) 12:33
12:38 ambs joined
mikehh pir/PIRATE (7201b8c) - build ok / test PASS - parrot at r47970 - Ubuntu 10.04 amd64 (g++ with --optimize) 12:39
dalek r: 69b85d3 | bacek++ | t/ (2 files):
Start adding (failing) tests for Sub modifiers
12:40
r: 5d3e1f3 | bacek++ | src/POST/Sub.pm:
Rename POST::Sub.init into .is_init to avoid conflict with PCT::Node.init.
r: 4c9ddc9 | bacek++ | src/PIR/Actions.pm:
Change logic of :main sub selection to more grokable.
purl dalek: that doesn't look right
r: 8eb00b1 | bacek++ | (2 files):
Set Subs flags. Requires parrot 47950+
bacek mikehh, you tested "ancient" pirate :) 12:41
mikehh bacek: yeah - I tried a checkout on post-optimizations - what do I need to do 12:46
dalek rrot: r47971 | khairul++ | branches/gsoc_instrument (3 files):
Added test for Instrument::EventDispatcher
12:47
bacek mikehh, I think parrot's gsoc_optimizations branch.
speaking of which...
purl well, speaking of which... is there a date set yet?
mikehh bacek: will look at that, meanwhile will test your up-to-date bit :-} 12:48
bacek msg chromatic I would like tcurtis branch merged into trunk sooner than later. It's required for pirate. Or we can move it into separate repo and use as external project. 12:49
purl Message for chromatic stored.
bacek msg tcurtis I asked chromatic about "I would like tcurtis branch merged into trunk sooner than later. It's required for pirate. Or we can move it into separate repo and use as external project." 12:50
purl Message for tcurtis stored.
12:51 pmichaud joined
bacek pmichaud, aloha 12:52
pmichaud bacek: aloha 12:53
mikehh bacek: getting some test failures now :-{
bacek pmichaud, can you convert github/parrot to "organization"?
mikehh, erm... Let me re-check local version.
pmichaud bacek: will do sometime soon, yes. I want to read more about it :) 12:54
bacek pmichaud, fair enough :)
mikehh, t/02-post?
mikehh bacek: yeah 12:55
bacek mikehh, sigh... String comparison of POST is way too fragile... 12:57
12:57 hanekomu_9 joined
bacek msg tcurtis I've got (crazy) idea - use your Tree::Pattern to test PIRATE's POST/Parse trees instead of string comparison. Is it doable? 12:58
purl Message for tcurtis stored.
hanekomu_9 ".local string", assigning to it, then declaring the same var as .const produces a bus error. gist.github.com/462553 - is this a known issue? 13:00
not assigning to the .local string doesn't produce an error
bacek hanekomu_9, ouch. Can you create ticket for it? 13:04
purl, trac?
purl trac is a web-based software project management and bug/issue tracking system emphasizing ease of use and low ceremony. It provides an interface to the Subversion revision control systems, integrated Wiki and convenient report facilities. projects.edgewall.com/trac/ or Python, SQLite and ClearSilver or killing killtrac or a bug-tracking tool or at trac.parrot.org/parrot/ or slow or REALLY slow
bacek trac.parrot.org/parrot/ 13:05
purl i guess trac.parrot.org/parrot/ is back on line.
hanekomu_9 done: trac.parrot.org/parrot/ticket/1701 13:09
but
dalek r: e8a6652 | bacek++ | t/post/ (5 files):
Fix POST test failures. mikehh++
hanekomu_9 the formatting is off
bacek hanekomu_9++ # thanks! 13:10
I fixed formatting.
hanekomu_9 thanks 13:11
mikehh bacek: ok that works 13:13
pir/PIRATE (e8a6652) - build ok / test PASS - parrot at r47970 - Ubuntu 10.04 amd64 (g++ with --optimize) 13:14
dalek TT #1701 created by hanekomu++: .const string of a .local string that's been assigned to -> bus error 13:20
TT #1701: trac.parrot.org/parrot/ticket/1701
bacek msg fperrad Can you bring some light on how to build dynops with distutils? 13:25
purl Message for fperrad stored.
dalek rrot: r47972 | jonathan++ | trunk/runtime/parrot/library/P6object.pir:
[p6object] Fix a bug so that Foo.HOW.WHAT returns the proto-object for the metaclass as it should, not Foo.
13:37
fperrad ping bacek 13:51
bacek fperrad, pong
fperrad bacek, as example for dynops, see github.com/fperrad/wmlscript/blob/m.../setup.pir 13:52
bacek fperrad, thanks!
Yay! 13:54
It builds. 13:55
purl now run the tests!
dalek rrot: r47973 | mikehh++ | branches/gsoc_past_optimization/MANIFEST:
re-generate MANIFEST
rrot: r47974 | mikehh++ | branches/gsoc_past_optimization/docs/user/library (5 files):
set svn properties
14:02 TonyC joined 14:09 nopaste joined 14:11 JimmyZ joined
dalek rrot: r47975 | mikehh++ | branches/gsoc_past_optimization/docs/user/library/PCT/Pattern.pod:
fix codetest failure - linelength
14:11
rrot: r47976 | mikehh++ | branches/gsoc_past_optimization/docs/user/library/Tree/Pattern.pod:
fix codetest failure - linelength
rtcl-nqp: 65f1889 | Coke++ | (2 files):
Austin-ize [info] subcommands, cleaning up arg handling.
14:15
rrot: r47977 | mikehh++ | branches/gsoc_past_optimization/docs/user/library/Tree/Pattern (2 files):
fix codetest failure - linelength
14:28
rrot: r47978 | mikehh++ | branches/gsoc_past_optimization/docs/user/library/Tree/Walker.pod:
fix codetest failure - linelength
rtcl-nqp: d6a32b8 | Coke++ | (2 files):
[switch] fix -- processing;
14:38
kudo: ffe80d7 | jonathan++ | src/ (2 files):
Re-implement is default trait for multis.
14:51
kudo: 5954d61 | jonathan++ | t/spectest.data:
Turn on S12-methods/default-trait.t. This means that S12 is no longer the
kudo: 9551482 | jonathan++ | src/ (2 files):
First cut of starting to get 'is hidden' do work again. Not a complete
purl i heard implementation was a bit mental.
kudo: f509251 | jonathan++ | src/metamodel/ClassHOW.pir:
Rip out old hidden implementation.
kudo: e5540ec | jonathan++ | src/ (2 files):
Get hides working again.
kudo: bb68aed | jonathan++ | src/cheats/parrot/P6metaclass.pir:
Take a couple of steps towards mix-ins to metaclass instances being less broken
kudo: 039780e | jonathan++ | (3 files):
Bump PARROT_REVISION up to latest for .WHAT.HOW fix. Tidy up various places

have same interface for P6metaclass in that sense.
kudo: d27eb3c | jonathan++ | src/metamodel/RoleToInstanceApplier.nqp:
One fix to RoleToInstanceApplier to bring us a step closer to mixing into
rrot: r47979 | mikehh++ | branches/gsoc_past_optimization/MANIFEST.generated:
resort MANIFEST.generated (and remove tabs)
15:00
Coke Austin++ 15:03
JimmyZ rakudo: say { 'hi', 'wo'; }(); # and crazy too, sorry this one 15:14
oh
15:20 Mokurai joined
mikehh gsoc_past_optimization branch - All tests PASS (pre/post-config/ make corevm/make coretest, test, fulltest) at r47979 - Ubuntu 10.04 amd64 (g++) 15:21
15:25 tcurtis joined 15:27 eternaleye joined 15:28 cotto joined
cotto ~~ 15:28
15:30 theory joined 15:35 TonyC joined 15:36 joeri joined 15:37 nopaste joined 15:42 fperrad joined
hanekomu_9 parrot hates me. 15:48
the simple coroutine example from docs.parrot.org/parrot/latest/html/...s.pod.html - the one that calls yield() three times - doesn't work 15:49
it says "Cannot resume dead coroutine" after the 4th call to MyCoro()
I'm probably doing something wrong since I assume that at least the examples from the docs will work. 15:50
mikehh hanekomu_9: not necessarily - unfortunately the docs are not as up to date as we would like 15:54
let me check it out
hanekomu_9 thanks 16:01
mikehh hanekomu_9: It's not you - get the same 16:06
hanekomu_9 hm
ok thank
s
16:07 fperrad joined 16:11 JimmyZ joined
mikehh hanekomu_9: not sure about the example - the .yield works fine, but it does not restart after the return (don't know if it should?) 16:13
hanekomu_9 yes, that's what I meant
i guess it should - as a user of the subroutine I don't care whether I've been yielded to or returned
16:19 shockwave joined
shockwave Hi 16:19
purl hey, shockwave.
shockwave I was looking in the docs section but couldn't find anything related to it. Is there a doc describing the overflow/underflow behavior of pir? 16:20
mikehh hanekomu_9: according to the docs - it should restart - it becomes dead after the return, and so the next call should restart it. 16:27
hanekomu_9: do you want to file a ticket
16:27 shockwave left
hanekomu_9 ok 16:27
dalek TT #1702 created by hanekomu++: Cannot resume dead coroutine 16:41
TT #1702: trac.parrot.org/parrot/ticket/1702
16:57 JimmyZ joined 17:11 eternaleye_ joined 17:46 mmcleric joined 18:01 GodFather joined 18:30 kid51 joined 18:37 fperrad joined 20:06 LoganLK joined 20:08 dukeleto joined 20:15 dalek joined 20:24 plobsing joined 20:30 dalek joined 21:33 lucian joined
Coke holy crap, someone fixed trac.parrot.org/parrot/ticket/1131 ? 22:22
mikehh rakudo (d27eb3c) builds on parrot r47979 - make test PASS, spectest_smolder -> #34709 (pugs r31539) FAIL - Ubuntu 10.04 amd64 (g++ with --optimize) 22:39
t/spec/S32-num/rat.rakudo - Failed test: 798
18 TODO PASSes in 4 files
partcl-nqp (d6a32b8) - make ok, make test FAIL - t/cmd_incr.t - Failed test: 12 (t/cmd_expr.t - TODO passed: 287) - parrot at r47979 - Ubuntu 10.04 amd64 (g++ with --optimize) 22:47
Coke mikehh: that incr test fails about once every 10 times. 22:50
pretty sure it's a LTM bug triggered by hash key ordering. 22:51
dalek rtcl: bda790d | Coke++ | t/cmd_lsort.t:
underlying parrot issue fixed.
mikehh Coke: yeah - I ran the tests again and it passed - let me update and try again 22:54
dalek TT #1131 closed by coke++: segfault in Parrot_assign_p_p after merge of pcc branch. 22:59
TT #1131: trac.parrot.org/parrot/ticket/1131
mikehh partcl-nqp (d6a32b8) - make ok, make test PASS (t/cmd_expr.t - TODO passed: 287) - Files=62, Tests=1264 - parrot at r47979 - Ubuntu 10.04 amd64 (g++ with --optimize) 23:09
partcl (bda790d) - make ok, make test PASS - Files=74, Tests=1382 - parrot at r47979 - Ubuntu 10.04 amd64 (g++ with --optimize) 23:10
pir/PIRATE (e8a6652) - build ok / test PASS - parrot at r47979 - Ubuntu 10.04 amd64 (g++ with --optimize) 23:13
winxed r532 - make ok, make test/test1/test2 PASS - parrot at r47979 - Ubuntu 10.04 amd64 (g++ with --optimize) 23:17
23:32 joeri joined 23:54 Psyche^ joined