Parrot 0.9.0 "From Outer Space" Released | parrot.org/
Set by moderator on 21 January 2009.
Whiteknight kj, for PIR calls, IMCC does do that 00:01
check compilers/imcc/pcc.c:390 for the code
I know that spot off the top of my head, becuase I'm doing work there
kj mm ok. well that's good anyway.
00:03 Theory joined 00:09 AndyA joined
dalek r35875 | coke++ | trunk/t/pmc: 00:16
: add reference to ticket
review: www.parrotvm.org/svn/parrot/revision?rev=35875
Coke chromatic: we have to skip that test or fail every test after that test. 00:17
NotFound: if something is broken, and we have a dated release, what do you suggest we do? 00:18
chromatic: segfaults in PIR-only test files are more dangerous than in perl-based ones with separate invocations of parrot for each test. 00:19
NotFound Coke: at least comment the skip is inserted because of that
chromatic Yeah, they need ticket numbers at the very least. 00:20
NotFound I'm testing an striped down version of the test with can_handle that works and Whiteknight version that fails, and don't see any significant difference :? 00:22
Other than the minor that one works and the other segfault, that is ;) 00:23
Coke post them both? 00:24
NotFound I'm tired and maybe I'm confusing all. Will take a better look tomorrow. Sorry for the rants. 00:26
00:27 tetragon joined
Whiteknight kj: I would really like to re-do that whole invocant-passing mechanism 00:28
it's not extensible, and doesn't work in all cases 00:29
kj Whiteknight: if you mean to re-do it in the PIR compiler, I've already done 00:31
but it doesn't work
purl It's a Y2K error! Panic! Sue!
kj it might have to do with something else, though
i suspect execution starts at the wrong sub in the generated bytecode, but dunno how to check/fix 00:32
Whiteknight particle++ 00:36
kj time to sleep. goodnight. 00:38
00:39 Theory joined
Whiteknight I am really looking forward to redoiing all the calling conventions nonsense 00:39
chromatic Better start eatin', kid.
Whiteknight chromatic: I'm thinking about creating an op "getself" or "getinvocant" or something like that that returns a PMC reference to interp->current_object 00:40
Tene purl: msg pmichaud I'd love to work or help work on PCT docs. If you could mail me about that soon, I can start on it.
purl Message for pmichaud stored.
Whiteknight use that to pass invocants around instead of passing them in the packfile stream
that would make invoke overrides work 00:41
Tene purl: msg pmichaud or ast docs, or pdds, or whatever. Feel free to assign anything to me.
purl Message for pmichaud stored. 00:42
chromatic $P0 = getinterp
$P1 = $P0.'current_invocant'
Whiteknight chromatic, that seems like an awfully roundabout way to do it 00:54
plus, you have to break the PIR-C barrier every time you call a method
I'm talking about switching over to use such an opcode for all methods and vtable calls, instead of passing the invocant as the first parameter as we do now 00:55
and if we do that, we should optimize such a common case
Tene, I'm interested in the PCT docs too, but I mostly need to update the PCT chapters in the docs/book/ 00:57
so any information you get from that will help me
particle whiteknight: what if 'current_invocant' and others are exposed via the hash interface, so you can use vtable functions instead of method calls? 01:01
Whiteknight particle, that may work too, but seems like a workaround when we can get the value directly 01:02
particle eg.g $P1 = $P0['current_invocant']
yes, but then you have a new opcode to deal with
Coke if we provide informaiton in a hash, just use the hash.
otherwise we'll have an opcode for every key of the hash.
Whiteknight right, but one new op would be faster then a keyed VTABLE lookup
Coke Whiteknight: I demand an op to get the recursion limit. =-)
particle worry about faster later. 01:03
GeJ Out of curiosity, what is wrong with the calling conventions?
Coke they're slow?
particle they're slow
Whiteknight GeJ: What isn't wrong with them
01:03 LimbicRegion joined
Coke no, slow mostly covers it. 01:03
Whiteknight they're a mish-mash of several different conventions, each that do mostly the same thing in slightly different ways from different places
chromatic They also don't support all of the features desired in HLLs.
Whiteknight basically, they're b0rked from the bottom-up 01:04
chromatic Whiteknight, it's not easy to invoke opcodes from methods and vtable entries written in C.
Whiteknight chromatic, in C we can just access interp->current_invocant directly. The opcode would just be a thin accessor to that data value 01:05
chromatic Why does it need to be an opcode? 01:06
01:06 LimbicRegion joined
Whiteknight I only suggest opcode because that's the fastest, faster then a vtable invocation, or a method invocation 01:06
actually, the method invocation wouldn't work at all, because making the method call would overwrite the current invocant, so that's out 01:07
chromatic Not if we moved current_invocant into the context struct.
Coke chromatic: what language does it not work for?
Whiteknight no, you're right about that. IT's already in the context struct, but it's mostly used to store nested values
chromatic Coke, pmichaud wants to have named-only parameters that never get filled from positional parameters. 01:08
GeJ thinks he'll stick to Perl-to-PIR conversions for now... until he gets some serious tuits on what's under the hood.
Whiteknight I started working on the :lookahead parameter type, but didn't complete it
but eventually we're going to have it 01:10
urg, with all the tickets and test failures surrounding atan, I say we just rip that damn opcode out 01:20
now if Perl 6 has an atan operator, maybe we should keep it, but I doubt that 01:21
I can only imagine what that hell-ugly operator would look like: !>+*<><
'prefix:!>+*<><'
Coke atan should be a method on Float 01:32
cotto I'd appreciate anyone who could look my reply to #48014 and tell me there's a better way to do that. 01:33
jonathan cotto: How much do we actually use multiple inheritance in PMCs? 01:42
cotto not at all in core, but some HLLs do 01:43
01:43 particle1 joined
cotto definitely Tcl and Lua 01:43
jonathan Hmm. 01:46
We can't just ban it then. :-|
cotto yeah 01:47
I really hate to pessimize the common case to enable the uncommon case. 01:49
01:50 Tene joined
jonathan cotto: Same. 01:54
jonathan -> sleep 01:58
02:25 kid51 joined
cotto Whiteknight, did you intentionally reply only to me? 02:28
Whiteknight um...probably not? 02:32
it doesn't really matter though
02:36 cognominal joined 02:37 ask joined 02:47 ask_ joined 03:21 Fayland joined 03:41 ask joined 04:03 particle joined 04:05 ask joined 04:21 tetragon joined 04:59 bacek joined 05:06 petdance joined 05:35 ask joined 06:06 mberends joined
cotto it's quiet 06:49
purl yeah... TOO quiet...
06:50 Tene joined 07:10 alvar joined 07:12 Theory joined 07:27 ask joined 07:29 bacek joined
moritz Rakudo's t/spec/S12-role/namespaced.t recurses from infix:eq 07:29
08:40 ask joined 09:04 Casan joined
lu_zero wakes up 09:08
09:13 masak joined 09:16 MariachiElf joined 09:22 barney joined 09:45 barney joined
lu_zero moritz I cannot find your ticket about optimization and 64bit 09:50
moritz lu_zero: did you look in RT?
lu_zero ahh 10:02
I was looking in trac
moritz it was opened just before the migration 10:03
lu_zero (btw, trac hand't changed that much, I'd keep rt...)
I could reliably have parrot fail when building with distcc but works correctly (apparently) w/out 10:04
10:10 iblechbot joined
lu_zero Kevin Tew is around? 10:17
moritz seen tewk 10:18
purl tewk was last seen on #parrot 2 days, 15 hours, 33 minutes and 36 seconds ago, saying: :q [Jan 19 18:44:35 2009]
lu_zero ^^; 10:21
10:21 barney joined
dalek bernhard.schmalhofer@gmx.de | Pipp: 10:22
link: www.perlfoundation.org/parrot/index.cgi?pipp
r35876 | bernhard++ | trunk/languages/pipp/docs: 10:27
: [Pipp] Add two links WRT extensions
review: www.parrotvm.org/svn/parrot/revision?rev=35876
tewk lu_zero: pong 10:29
10:37 TiMBuS joined 10:43 kj joined
dalek r35877 | cotto++ | trunk/src: 10:48
: [codingstd] add space after comma
review: www.parrotvm.org/svn/parrot/revision?rev=35877
masak btw, how did that Rakudo release tarball thing work out? 10:50
10:51 tomyan joined
moritz masak: chromatic++ uploaded a fixed version as 0.9.0 to parrot.org, and as 0.9.0.1 to cpan.org 10:51
masak sounds good.
moritz I'd prefer it if were 0.9.0.1 on both, because now two different 0.9.0 float around 10:52
masak true. 10:55
but the difference is only one line of code, no?
moritz yes
no
the difference is working vs. non-working 10:56
masak :)
dalek r35878 | jonathan++ | trunk/languages/perl6 (2 files): 11:04
: [rakudo] Remove unused @?PACKAGE and $?NS (we init the first and never use it, then use the second but never init it, thus I guess it was useless).
review: www.parrotvm.org/svn/parrot/revision?rev=35878
11:12 TiMBuS joined 11:30 mberends joined
cotto barney, ping 11:36
barney cotto: pong 11:48
cotto what were you asking about on the list? 11:49
were you unclear about what the $got_attrs_from checks check? 11:50
barney I was wondering whether a 'child' could add an ATTR to the list of ATTR inherited from the 'parent' 11:51
cotto a child's ATTRs are a superset of the parent's 11:53
is that what you mean?
or are you asking if a child can modify a parent? (it can't) 11:55
dalek r35879 | jonathan++ | trunk/languages/perl6/src (2 files):
: [rakudo] What's installed in the namespace for a role should probably act like a proto-object a bit more; this makes it stringify in the same kinda way.
review: www.parrotvm.org/svn/parrot/revision?rev=35879
barney Ok. the check is that a pmc inherits ATTRs only from one of it's possibly many parents 12:02
cotto yup.
barney So it can't inherit 'AttrA' from parent 'A' and 'AttrB' from parent 'B' 12:04
cotto nope. 12:05
dalek r35880 | bernhard++ | trunk/compilers/imcc:
: [codingstd] linelenght.t
review: www.parrotvm.org/svn/parrot/revision?rev=35880
r35881 | bernhard++ | trunk/languages/perl6/src/classes:
: [codingstd] trailing_space.t
review: www.parrotvm.org/svn/parrot/revision?rev=35881
r35882 | bernhard++ | trunk/compilers/imcc: 12:06
: [C] give free the memory for 'name'
review: www.parrotvm.org/svn/parrot/revision?rev=35882
barney k 12:07
cotto I get the impression that it'll be possible to do so at some indeterminate point in Parrot's future, but not for now. 12:08
lu_zero tewk hi 12:24
I'd like to know more about cardinal and if it could be provided already within an experimentally packaged parrot 12:25
I had a friend nagging me about it and got curious as well
brb 12:26
dalek r35883 | rurban++ | trunk:
:
: [cage] Update README_cygwin.pod
: - Added a new PROBLEMS section.
: - Removed parrot-languages.
review: www.parrotvm.org/svn/parrot/revision?rev=35883
moritz isn't Tene our cardinal hacker?
jonathan Tene is our hacker of many good things. 12:27
moritz I know, but he's the only one (apart from dmknopp) from whom I've seen commits to cardinal
jonathan aye 12:28
kj I did some cardinal stuff, about 1 year ago or so 12:57
dalek r35884 | jonathan++ | trunk/languages/perl6 (4 files): 13:01
: [rakudo] Improve support for nested packages; gets the issues in various RT tickets resolved.
review: www.parrotvm.org/svn/parrot/revision?rev=35884
r35885 | bernhard++ | trunk/languages/pipp/docs: 13:12
: [Pipp] PARROT_VARIANT is no longer used, update PARROT_HOME to new
: (local) dir
review: www.parrotvm.org/svn/parrot/revision?rev=35885
r35886 | bernhard++ | trunk/languages/pipp:
: [Pipp] Call '_dumper' in ['parrot'], not in the current namespace
review: www.parrotvm.org/svn/parrot/revision?rev=35886
r35887 | bernhard++ | trunk/languages/pipp:
: [Pipp] remove debug output
review: www.parrotvm.org/svn/parrot/revision?rev=35887
r35888 | bernhard++ | trunk/languages/pipp:
: [Pipp] determine the PHP source fn in parse_arguments()
review: www.parrotvm.org/svn/parrot/revision?rev=35888
coke_z jonathan,cotto: (multiple inheritance of PMCS) Tcl is using that behavior, but only as a convenience 13:15
Coke perhaps this would be a good time for me to move to a tclscalar. 13:18
cotto can't help but think of Coach Z when he sees coke_z 13:21
Coke, would TclScalar try any multiple inheritance shenanigans?
also, Tcl's current shenanigans pose no problems to the patch I posted to the list. Just remove the explicit fv ATTRs and you're good to go. 13:26
and some other changes relating to TclObject not having a fv ATTR 13:33
13:39 mberends joined
Coke would you like commit bits to partcl? 13:40
cotto: tclscalar would have string/int/float/list/dict attributes and morph itself between them. 13:41
rather than relying on parrot's morph.
so if someone asks me for my list value, then prints me, then my list value again, I'm not changing several times. 13:42
cotto if you mean ATTRs, then there might be an issue
Coke I mean attributes. 13:43
(I'd write it in PIR, not C)
cotto shiny
fewer segfaults that way 13:44
Coke perhaps slower, but I've given up on speed. :| 13:45
cotto The speed of Parrot discourages me.
Coke I am unable to add certain features to partcl at this point because of speed issues. 13:48
(of course, there may be more efficient ways to do it, but still.)
cotto I'm hopeful that the speed is an artifact of Parrot's relative instability, and that some serious optimization is in store once it becomes more settled. 13:49
PerlJam guten Tag #parrot 13:54
13:59 tomyan joined
Infinoid ohai PerlJam 14:01
lu_zero is mostly back 14:05
cotto in spite of my best efforts, I appear to have become nocturnal 14:08
night
barney Arrgh 35/1490 tests successful for Pipp with PHP testsuite 14:14
PerlJam barney: hey, it's a start! 14:15
(unless you previously passed more tests, then it's a regression :)
barney Previously I passed less tests, but the test suit ran faster 14:17
PerlJam barney: is the php test suite in the pipp repository? 14:30
Coke has a mailman question. :| 14:37
Coke converts it into a regular expression question. 14:40
barney Perljam: It's from the standard PHP53, see docs/testing.pod
a small benchmark: gist.github.com/50555 14:41
Coke barney: so even with no HLL stuff, parrot is still more than 10 times slower than perl and php? 14:50
kj even with an optimized build? 14:53
14:53 Whiteknight joined
barney a plain 'perl Configure.pl' under Linux 14:55
kj but comparing an uncompared build is not fair testing... it's a huge difference
Coke is called out on his perl6 commnit. 14:58
Whiteknight OH SNAP NOW IT'S ON! 14:59
...so do we have like a dance-off now? because that's what happens in the movies apparently
Coke what does this syntax mean: my $num = (1..50).pick[0]; 15:00
does that take one result from pick and then use [0] to return the one element? (that you'd have gotten if you had just done (1..50).pick ?
masak Coke: well, 15:01
.pick returns a list
(which is unfortunate, but currently as specced)
there has been talk about letting .pick return a Capture instead, ISTR. 15:02
15:07 gryphon joined
barney rebuilding with --optimize 15:07
15:08 particle joined
kj mmm, a lolcode var test fails 15:12
barney benchmark with optimized build: gist.github.com/50555 15:28
kj that's not a very nice sight.. 15:31
barney better look at long-running benchmarks, and consider startup time separately 15:35
NotFound What are you benchmarking for? repeat operator or io?
barney This was from a test in the PHP testsuite, on which Pipp had hung up 15:38
NotFound BTW I don't see what the dest parameter in string_repeat is supposed to be. All usages in the repo pass NULL. 15:39
And it seems to not be updated when num of repeats is 0. I suppose this is a bug, but as along as is never used it cannot be tested. 15:42
dalek r35889 | bernhard++ | trunk/languages/pipp/docs:
: [Pipp] two comment in testing.pod
review: www.parrotvm.org/svn/parrot/revision?rev=35889
15:42 Casan joined
NotFound Going to create a ticket for this thing. 15:43
15:48 samlh joined
dalek r35890 | rurban++ | trunk/t/pmc: 16:00
: [test] Fix cygwin os hardlink test.
: - add cygwin to list of unsupported platforms for hardlink-to-file test
: - add a hardlink-to-directory test which requires root permissions.
review: www.parrotvm.org/svn/parrot/revision?rev=35890
16:03 ron joined 16:05 gaz joined 16:08 Theory joined 16:30 ron left
dalek r35891 | pmichaud++ | trunk/languages/perl6/docs: 16:39
: [rakudo]: spectest-progress.csv update: 294 files, 6500 passing, 11 failing
: Failure summary:
: S12-role/namespaced.t aborted 3 test(s)
: integration/99problems-21-to-30.rakudo aborted 8 test(s)
review: www.parrotvm.org/svn/parrot/revision?rev=35891
16:41 rg joined 16:45 particle1 joined
dalek r35892 | Whiteknight++ | trunk/docs/book: 16:48
: [Book] a few clarifications on the section about PIR register usage.
review: www.parrotvm.org/svn/parrot/revision?rev=35892
Coke before I remove Range.pick, it looks like someone fixed my mess. 16:52
shall I remove it?
Whiteknight In perl 6, do methods have "self" or "this"? 16:53
PerlJam yes, self 16:54
Whiteknight Thanks PerlJam. Is it "self" or "$self"?
PerlJam just self last time I checked :)
though you can change the name with a pragma (don't know if anyone has implemented that yet though) 16:55
Whiteknight ok, thanks! 16:57
mberends Whiteknight: it's "self", unless you declare a method parameter "$self:", afaik
PerlJam oh, yeah, I forgot that you can mention the name of the invocant in the signature if you want it in a variable. 16:58
NotFound Oh, my, now we don't have warnings about unused parameters because ASSERT_ARGS uses them. 17:04
17:04 Tene joined
Infinoid hrm. 17:05
how long until we can skip all this gcc nonsense and just compile parrot using languages/c99 ?
Tene moritz: yes, I wrote most of cardinal. 17:08
17:08 sjn joined
Infinoid NotFound: do you still get unused warnings during optimized builds? 17:09
NotFound Infinoid: I suppose not, but is nonsensical to have to do an optimized build to get basic warnings 17:10
Infinoid I agree. But I don't know what to do about it.
Patches welcome...
purl That's swahili for "Put up or shut up."
NotFound I know what to do, but a lot of people don't agree 17:11
Infinoid what do you think we should do?
NotFound Kill the non-null thing
Infinoid the attribute? 17:12
purl well, the attribute is called before that.
NotFound Yes.
Infinoid My vote was for that too. Correctness before speed.
But since that doesn't seem to be an option... the remaining problem is that we can't get both nullness checking and unused warnings in the same build 17:13
Is it worth making it a configuration option?
or a special build target, like "make splint" is
17:15 AndyA joined
NotFound I don't like the idea of adding more special cases and code complexity 17:16
Infinoid Anyway, I don't think throwing out the non-null thing necessarily solves the unused warnings problem, because it doesn't necessarily make ASSERT_ARGS() obsolete. You'd have to explicitly say "We're not going to care about the nullness contract any more" and get rid of the ARG*_NULLOK macros, and NULLOK_INTERP...
NotFound We have more tha enough of that.
Infinoid The nonnull attribute was our first attempt at enforcing that. ASSERT_ARGS is the second one. 17:17
But getting rid of the first attempted fix doesn't make the problem go away... 17:18
Anyway, I'm not married to ASSERT_ARGS by any means. The fixes it found are useful and we should keep those, but the seatbelt itself doesn't necessarily need to be run by everyone all the time, especially if it gets in the way of other seatbelts. 17:20
NotFound I think there is no automatic solution with current compilers.
Coke removed range.pick locally; t/spec/S12-role/namespaced.t is still failing.
I vote for making a special compile target. 17:21
s/compile/configure/. we already have a --cage option to configure.pl; we could certainly extend taht.
any rakudo folks about? 17:22
NotFound "\\x{299}" malformed utf8 string? WTF?
moritz "wtf" is a good description 17:29
since \\x{229} is above 0xFF, it can't mean a byte representation
in which case it doesn't even make sense to talk about utf-8 17:30
NotFound But is not a byte, is a codepoint.
moritz yeah, but a codepoint is not utf-8
and it's not mal-formed utf-8 either
NotFound A codepoint is what the pir pdd says it is
moritz not the standard unicode terminology? 17:31
NotFound I mean, pir says that \\x{} is a codepoint
17:31 mberends joined
moritz and there's some piece of software that tries to decode[sic] it as utf-8 17:32
NotFound "You can include a particular Unicode character as either a literal sequence of bytes, or as an escape sequence" 17:34
I was thinking that the implementation was already updated to reflect that, it looks that is not yet. 17:35
17:36 AndyA joined 17:41 hercynium joined
dalek r35893 | coke++ | trunk/languages/perl6/src/classes: 17:48
: Revert add of Range.pick; while the no argument version here does better for
: the simple case of (1..10000000).pick; it fails to handle other variants, causing
: spec test regressions.
review: www.parrotvm.org/svn/parrot/revision?rev=35893
GeJ Good morning everyone
Coke GeJ: GOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOD MORNING! 17:49
rakudo: (1..10000000000).pick.say
polyglotbot OUTPUT[687969638␤]
Coke will try again in 5m.
rakudo: (1..2).pick(3).say
polyglotbot OUTPUT[too many arguments passed (3) - 1 params expected␤current instr.: 'parrot;Range;pick' pc 7662 (src/classes/Range.pir:81)␤called from Sub '_block14' pc 102 (EVAL_17:47)␤called from Sub '!UNIT_START' pc 18200 (src/builtins/guts.pir:321)␤called from Sub 'parrot;PCT;HLLCompiler;eval' pc 950 17:50
..(src/PCT/HLLCompiler.pir:527)␤called from Sub 'parro...
17:52 mberends joined
Coke rakudo: (1..2).pick(3).say 17:52
polyglotbot OUTPUT[too many arguments passed (3) - 1 params expected␤current instr.: 'parrot;Range;pick' pc 7662 (src/classes/Range.pir:81)␤called from Sub '_block14' pc 102 (EVAL_17:47)␤called from Sub '!UNIT_START' pc 18200 (src/builtins/guts.pir:321)␤called from Sub 'parrot;PCT;HLLCompiler;eval' pc 950
..(src/PCT/HLLCompiler.pir:527)␤called from Sub 'parro...
Coke polyglotbot: help
polyglotbot Coke: Usage:
..<(lua.past|ruby.paste|lolcode.pir|php.past|pynie.pir|smalltalk.past|cardinal.parse|pheme.pir|smalltalk.parse|python.paste|cardinal.pir|php.paste|bc.paste|pynie|pheme.paste|punie|pipp|squaak.pir|tcl|ruby.past|befunge.pir|squaak.parse|lua.paste|bf|cardinal.past|bc.pir|rakudo.parse|punie.past|pheme.
..parse|APL.parse|squaak.paste|APL.paste|chitchat.past|bc.parse|abc.paste|befunge.parse|befunge|befunge.paste|tcl.paste|python|bc.past|pipp.paste|php.pir|squaak.past|pynie.past|tcl.pir|rakudo.paste|pynie.paste|perl6.pir|smalltalk.paste|php.parse|tcl.past|pipp.past|lua|pynie.parse|python.parse|lua.p
..ir|bf.parse|perl6.parse|php|lolcode.paste|chitchat|abc.parse|bf.paste|python.past|bf.pir|chitchat.paste|lua.parse|cardinal.paste|rakudo|APL|pheme|APL.past|punie.parse|bf.past|abc.past|APL.pir|perl6.past|ruby.parse|abc|partcl.past|tcl.parse|pipp.parse|perl6.paste|smalltalk.pir|smalltalk|partcl.pas
..te|punie.pir|befunge.past|partcl.pir|lolcode.past|bc|rakudo.past|partcl|ruby.pir|squaak|punie.paste|lolcode.parse|python.pir|perl6|cardinal|ruby|rakudo.pir|partcl.parse|pipp.pir|pheme.past|lolcode|chitchat.parse|chitchat.pir|abc.pir): $perl6_program> 17:53
Coke that's not entirely helpful. =-)
tcl.pir: puts hi
nopaste "polyglotbot" at 193.200.132.146 pasted "tcl pir" (4 lines) at nopaste.snit.ch/15392
Infinoid what should it say?
PerlJam It should be quieter
Coke that volume of output should be available via a private message. knowing when the last build was would also be helpful. 17:54
PerlJam or msg the help
purl Message for the stored.
PerlJam yeah.
purl: you're not smart enough.
purl PerlJam: excuse me?
Coke (also, tcl doesn't support the normal PCT options; not sure if that's easy enough to remove.)
Infinoid you mean, like the .pir bit?
sub help { 17:55
return "Usage: <$regex \\$perl6_program>";
}
dalek r35894 | julianalbo++ | trunk/examples/pir:
: pirric: use readline_interactive
review: www.parrotvm.org/svn/parrot/revision?rev=35894
Infinoid I have a feeling that was a lot more straight forward when it was first written.
17:55 tomyan left
Coke Infinoid: yes. those are invoked by passing --target=foo options; tcl doesn't support those. 17:56
(and won't unless it switches to pct and gets them for free)
might be better to say "here are the languages I support" "here are the modes you can request". 17:57
Infinoid ok. the regex is built by a couple of nested loops, but I think enumerating every possibility is pretty useless anyway
exactly.
Coke Infinoid++
rakudo: (1..2).pick(4).say
polyglotbot OUTPUT[too many arguments passed (3) - 1 params expected␤current instr.: 'parrot;Range;pick' pc 7662 (src/classes/Range.pir:81)␤called from Sub '_block14' pc 102 (EVAL_17:47)␤called from Sub '!UNIT_START' pc 18200 (src/builtins/guts.pir:321)␤called from Sub 'parrot;PCT;HLLCompiler;eval' pc 950
..(src/PCT/HLLCompiler.pir:527)␤called from Sub 'parro...
Infinoid I haven't done anything... and I'm not likely to in the near future (have to do $realjob stuff first)
Coke gives up. =-) 17:58
17:58 spinclad joined
Tene Coke: feel free to patch it. 17:58
Coke: I can give you access to feather3 17:59
Coke sure. 18:00
is it stored in an svn repository somewhere?
Infinoid no. keep backups. 18:01
Tene No.
Just in my home directory.
Feel free to set that up, too, or anything else you want. 18:02
ssh coke@feather3.perl6.nl
password is 'omgcoke'. pls change it.
Coke done. 18:07
Tene Go wild. Change anything you like. The only thing in my home directory are the parrot build dirs, the rebuild script infinoid wrote which is run from cron, and the bot. 18:10
Coke if I change something, how do I make it take effect? 18:11
I presume I have to kill the bot and restart it?
Infinoid yeah. and disown it so it won't quit when you close your ssh session 18:12
Tene Infinoid changed that recently, I think.
Oh, nm.
Infinoid Tene: I just killed yours and ran it by hand...
Coke disown?
purl disown is correct.
Coke purl, forget disown 18:13
purl Coke: I forgot disown
Tene Right, you were just asking about how I did it.
Infinoid same question Coke is asking now :)
Tene Coke: background it and then run 'disown'
Coke which disown => nada.
Tene it's a shell builtin 18:14
Infinoid says "that background process isn't my child any more" 18:16
moritz is that similar to running it with nohup in the first place? 18:17
Tene moritz: yes
Coke Tene: I'm locked out of that dir. 18:20
Tene ohright 18:21
you have sudo access
sudo su - tene
and enter your password 18:22
18:27 jhorwitz joined
Coke polyglotbot:help 18:33
polyglotbot: help
perl6: 'hi'.say
18:34 polyglotbot joined
Coke perl6: 'hi'.say 18:34
polyglotbot OUTPUT[hi␤]
Coke polyglotbot: help
polyglotbot Coke: To execute code, your send should begin with the name of a language, a colon,
..then the code to execute. Your code must generate output. You can optionally
..modify the language with a period and a target; e.g. "perl6.past: 'hi'.say"
..Note: Not all languages support all targets.
..
..Languages: { abc APL befunge bf cardinal chitchat lolcode lua partcl perl6 pheme pipp punie pynie squaak tcl rakudo ruby smalltalk bc php python }
..Targets: { parse past pir paste }
moritz that's... still verbose
18:35 mberends joined 18:36 polyglotbot joined
Coke polyglotbot: help 18:36
polyglotbot Coke: To execute code, your send should begin with the name of a language, a colon, then the code to execute. Your code must generate output. You can optionally modify the language with a period and a target; e.g. perl6.past: 'hi'.say Note: Not all languages support all targets.
..Languages: abc APL befunge bf cardinal chitchat lolcode lua partcl perl6 pheme pipp punie pynie squaak tcl rakudo ruby smalltalk bc php python
..Targets: { parse past pir paste }
Coke yes, but now it's legible. Suggestions welcome.
moritz write it into a query? 18:37
Coke ?
moritz make polyglotbot answer you in a query?
Coke you mean a question?
or is query some IRC thing?
moritz query is the same as /msg 18:38
Coke that involves learning more about this than I care to. =-)
moritz or "private message"
a well, it was only a suggestions ;-)
Coke tcl: puts {still there, doofusbot?} 18:39
polyglotbot OUTPUT[still there, doofusbot?␤]
Coke there, I've disconnected, that's running under nohup
Tene coke++ 18:43
Coke perl6: (1..20).pick(*)
polyglotbot RESULT[[6, 5, 19, 1, 4, 9, 17, 16, 7, 8, 14, 13, 10, 20, 15, 12, 2, 11, 18, 3]]
Coke when did pgb start not needing print statements? 18:44
perl6.pir (1..20).pick(*)
Whiteknight pick on a range has to be an eager evaluation, right?
Coke perl6.pir: (1..20).pick(*)
nopaste "polyglotbot" at 193.200.132.146 pasted "perl6 pir" (60 lines) at nopaste.snit.ch/15393 18:45
Coke Whiteknight: yes. I had tried to fix that, but only did so for the simple case and broke everything else.
Whiteknight I wonder what happens when you do a pick on an infinite range? 18:46
18:48 ask joined
moritz Whiteknight: hopefully a very friendly run-time error is issued (rather than looping forever) 18:57
Whiteknight yeah, that's what I was thinking 18:58
moritz I expect .pick to call .elems on self, and check for Infinity 18:59
pmichaud I expect .pick to be defined on Any 19:02
and for Range to use that. 19:03
(yes, it can then call .elems and the like)
it should also probably be lazy :-)
moritz it should, but to pick fairly it has to consider all elements nonetheless 19:04
pmichaud yes, so it does need an idea of the number of elements.
and special handling of Inf. But more than ranges can be Inf. :-) 19:05
moritz so should (1..10).pick(*, :repl) generate an infinite stream?
pmichaud sure, why not?
moritz likes the idea
the * as first arg means something different in non-repl mode
pmichaud anyway, the reason why .pick doesn't currently work on Range is that we need to do a postcircumfix:<[ ]> for Range. 19:06
19:06 particle joined
particle When selecting with replacement the specified number of picks are provided. In this case C<*> would provide an infinite list of random picks from C<@values>: 19:06
@byte = (0,1).pick(8, :repl);
for (1..20).pick(*, :repl) -> $die_roll { ... }
moritz wow, sometimes the good features are already specced ;-) 19:07
particle who wants to visit me?
www.southwest.com/landing/seattle50...0000090120
shorten particle's url is at xrl.us/bedf3j
mberends ...but [- Select Departure City -] at SouthWest has no European cities :( 19:11
pmichaud mmmm, I fly SWA all the time.
I'm actually just a few miles away from their corporate hq :-)
yup, $134 round trip. 19:13
mberends ah, pmichaud: is it a big ask to examine the rvar2 merge (r35311) for damage to $*ERR ? RT#62540.
pmichaud mberends: I need to finish my lunch -- maybe later today? 19:14
yes, I'll take a look, though.
mberends later this week is plenty good, thanx
19:15 rob joined
rob whilst playing around with PCT i keep getting "Method 'item' not found for invocant of class 'ResizablePMCArray" from my gen_actions.pir 19:16
any idea how to go about debugging this?
particle method item is called when you do $()
pmichaud that usually means that you're using $() on something that is an array instead of a Match object.
rob ah! thanks :) 19:17
pmichaud in particular, if you have
rule foo { <bar>? }
then remember that $<bar> is an array .
particle ayep. common pitfall.
pmichaud so you'd have to do $( $<bar>[0] ) instead of just $( $<bar>) )
(er, ignore that last paren.)
rob thanks 19:22
particle looks like i can now convert "NaN" to its numeric representation, and i'm working on sprintf now to go the other way
we may have portable NaN/Inf soon!
Whiteknight particle++ 19:23
particle src/spf_render.c:740
excellent. now, to find the time to fix that up...
Whiteknight found some time under the couch 19:32
particle C89++ # limits.h and float.h are your friends 19:33
rob whilst using PCT, I am getting a run time error "Could not find non-existent sub Capture[.." from HLLCompiler;eval ? 19:48
any ideas, it doesn't seem to have got to the parsing stage? 19:49
19:52 lu_zero joined
lu_zero hi 19:53
rob don't worry, fixed it :) 19:54
mberends lu_zero: hi, is there an lu_six_point_two in your family? and a mainframe in the back yard? 19:58
lu_zero mberends theheh, no =) 20:00
tewk ping
NotFound I've managed to load perl6, compreg it and call the compile method on the compiler object. How can i execute the result? 20:08
particle $P0() 20:09
NotFound There is not a named method equivalent?
particle invoke $P0 20:10
don't know if that's also a method, but the op or pir sugar should do
NotFound The eval pmc has not any method 20:14
20:28 On2 joined 20:30 chromatic joined
nopaste "coke" at 65.91.151.194 pasted "wtf" (11 lines) at nopaste.snit.ch/15395 20:30
20:31 DietCoke joined
DietCoke wonders if his nopaste rings any bells. 20:31
Coke I did just delete a key in the hash before it was cloned. 20:32
nopaste "NotFound" at 213.96.228.50 pasted "perl6 from pirric" (4 lines) at nopaste.snit.ch/15396 20:33
NotFound Talk about language interoperability ;)
particle nice work, notfound++ 20:34
NotFound Still uncommited some changes, works only for me.
Infinoid Coke: can you get a backtrace for that? 20:38
a simple testcase would also work.
it looks like a C function was called with a null pointer which shouldn't have been, and ASSERT_ARGS caught it. 20:41
nopaste "coke" at 72.228.52.192 pasted "backtrace" (69 lines) at nopaste.snit.ch/15397 20:44
Coke er, that's 2 backtraces.
the one we care about is near the bottom.
Infinoid the other one is TT #193, right? :) 20:45
Coke prolly
guessing that parrot_hash_clone should have some defense against null keys. 20:46
(if delete is going to leave them lying about.)
Infinoid I think delete probably shouldn't.
Coke I was unable to get a smaller example to fail in the same way.
Infinoid: I'm not sure it can't leave them lying around. (parrot_hash_delete) 20:47
this is breaking a tcl spec test, btw. 20:48
dalek r35895 | julianalbo++ | trunk (3 files):
: pirric: add capability to register HLLs and invoke code compiled with them, and example of perl6 usage
review: www.parrotvm.org/svn/parrot/revision?rev=35895
nopaste "Infinoid" at 96.238.213.50 pasted "Simple test case demonstrating the key assertion failure" (12 lines) at nopaste.snit.ch/15398 20:49
Coke Infinoid: no clue why yours fails and mine didn't, but thanks. =-) 20:50
Infinoid Guess I'm just pathological by nature.
Some days it seems like every button I press breaks something :) 20:51
chromatic Hey, 6500 passing Rakudo tests. Very nice. 20:54
NotFound chromatic: try my latest interlanguage nightmare 20:55
chromatic I saw that. Very nice.
Infinoid Coke: I'm running the obvious workaround through "make test" now... 20:56
Coke Infinoid: trac.parrot.org/parrot/ticket/211 20:57
if you have a patch, I can test it for partcl.
nopaste "infinoid" at 96.238.213.50 pasted "patch -p1 me" (20 lines) at nopaste.snit.ch/15399
NotFound rakudo has 'return'? 21:04
Infinoid uck. t/pmc/hash.t is written in pir, which means if I add my test case there and it regresses, it will crash instead of just failing one test 21:05
chromatic Maybe we need t/tests_that_suck.t written in Perl 5. 21:07
Infinoid or maybe ASSERT_ARGS needs to throw exceptions instead of triggering SIGABRT 21:09
NotFound Looks like return does not work outside of a sub 21:10
Coke Infinoid: (regresses in a PIR file) we just had this discussion. :|
Infinoid ah, I must have missed it. 21:11
Coke exception handler subclassing segfaults, so the test is commetned out.
21:20 pdcawley joined, Casan joined
Coke Infinoid: how'd 'make test' end up? 21:23
(btw, if it regresses and the entire .t file files, that's a pretty good "FIX ME" note.)
Coke wonders if fperrard got 0.9.0 instead of 0.9.0 21:25
Infinoid Coke: it's working fine here 21:26
how does tcl spectest look?
(I'm running through rakudo spectest_regression at the moment)
21:27 particle1 joined
Coke Infinoid: looks good here. 21:35
(well, not the spectest entirely, because that'd take 5 hours to run.)
(but I can no longer reproduce it with the tcl sample code.)
Infinoid Coke: committing 21:37
dalek r35896 | infinoid++ | trunk (2 files): 21:38
: [hash] Don't clone null hash keys. This fixes TT #211.
Coke rant: you'd think that googlecode and googlegroups could coordinate so I don't have to whitelist commit messages.
dalek : Also add the test case from TT #211 to t/pmc/hash.t.
review: www.parrotvm.org/svn/parrot/revision?rev=35896
Coke Infinoid++
Coke is rerunning the file that spec test was in to see if it works now. 21:39
particle1 can anyone tell me if rakudo compiles with ftp://ftp.parrot.org/pub/parrot/releases/devel/0.9.0/parrot-0.9.0.tar.gz
shorten particle1's url is at xrl.us/bedb83
chromatic I can. 21:40
It does.
purl stays quiet
chromatic ... unless someone else with access to ftp.parrot.org overwrote that tarball with one where it didn't. 21:41
GeJ seconded. 21:42
particle1 gratz. 21:43
PerlJam just for grins I downloaded the tarball and am making parrot + perl6
Infinoid as much as I hate the details of how ASSERT_ARGS is implemented, I love how it's finding bugs like Coke's. 21:45
chromatic Ditto. 21:46
PerlJam looks like it builds fine.
21:52 contingencyplan joined
particle1 notfound? 22:08
22:09 Whiteknight joined
NotFound particle1: yes? 22:12
particle1 julian albo, correct?
NotFound Aye 22:13
particle1 purl, NotFound is julian albo
purl OK, particle1.
particle i noticed config/gen/platform/generic/platform_limits.h
did you author that, or just touch it up? you're listed in $Id$
NotFound My secret identity revealed ;)
particle: I do it, but the thing needs more research 22:14
particle that's where i come in :)
i'm working with float.h for nan/inf stuff
noticed generic/platform_limits, but nothing similar for float 22:15
we *may* need it for cross-compiling, but currently nothing uses platform_limits.h
NotFound I failed to found a completely portable way to check limits when there is no limit.h available
particle limits.h is C89
it should *always* be available 22:16
so i'm wondering if my assumption about *always* is wrong.
NotFound particle: I have the same opinion, but our overlords says we must tolerate his absence.
particle i'd like to see where that was said, and by whom. mailing list? irc? do you recall? 22:17
NotFound irc or mailing list, I'm not sure
The idea was to use it to prevent overflows in integer operators. 22:18
particle sure 22:21
i don't want to walk down the path toward creating platform_stdio.h 22:23
i'm going to skip the generic/ stuff for now, just to get this working on core platforms and worry about portability later 22:24
22:29 kj joined 22:31 donaldh joined
kj any objection if I let pbc_disassemble print the contents of the constant table? 22:32
particle no 22:33
Whiteknight kj+
kj++
kj it's a first draft but works for strings and numbers. how to print PMCs, i have yet to find out
22:38 tewk_ joined
kj mmm, let's use the print instruction :-) 22:40
that didn't work though. 22:45
dalek r35897 | kjs++ | trunk/src: 22:46
: [core] let pbc_disassemble dump the contents of the const-table first, so that you know what's meant if you read PMC_CONST(n). Not sure how to print a PMC, though.
review: www.parrotvm.org/svn/parrot/revision?rev=35897
22:51 TiMBuS joined
kj too bad that PMCs have the option of *not* implementing get_string 22:52
particle how about get_repr
kj I'll try 22:53
I was just planning to check, using "can"
eh, not sure if that's an option
nope, 'Sub' doesn't implement that 22:54
particle what would you like to see there? 22:55
name, subid, etc, but not body?
should be easy enough to implement
kj yes, I know. Thing is, just calling get_string or, invoking Parrot_print_p on the PMC won't be safe for *all* PMCs 22:56
as soon as a PMC doesn't implement a stringification method, then it won't work.
particle right. i think all pmc's should implement get_repr, then, or use default's get_repr
kj default throws an exceptioin 22:57
particle yes, because it's currently optional
22:57 viklund joined
kj "not implemented" 22:57
maybe the safest way is to print the name of the class
viklund does anyone here now anything about getting mod_parrot running?
particle in key form?
jhorwitz does
viklund ahh, that's his irc-handle... 22:58
jhorwitz: I want to get november running under mod_perl6, but I seem to have a problem with mod_parrot...
the error I get is "couldn't find file 'P6object.pbc'" 22:59
@seen jhorwitz 23:00
moritz seen jhorwitz 23:01
purl jhorwitz was last seen on #parrot 2 days, 23 hours, 57 minutes and 0 seconds ago, saying: ok i'll try that out. [Jan 19 23:04:01 2009]
dalek r35898 | moritz++ | trunk/languages/perl6/t: 23:05
: [rakudo] add tests for RT #62260 (outer lexicals in END) to t/spectest.data
review: www.parrotvm.org/svn/parrot/revision?rev=35898
moritz rakudo: class A { has @.b = <1 2 3 4>; method c { @.b[*-1] }; say A.new.c 23:06
polyglotbot OUTPUT[Unable to parse block; couldn't find final '}' at line 1, near ""␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤called from Sub 'parrot;Perl6;Grammar;block' pc 29774 (src/gen_grammar.pir:2481)␤called from Sub 'parrot;Perl6;Grammar;package_def' pc
..83497 (src/gen_grammar.pir:22944)␤called from Sub 'p...
moritz rakudo: class A { has @.b = <1 2 3 4>; method c { @.b[*-1] } }; say A.new.c
polyglotbot OUTPUT[4␤]
moritz jonathan++
viklund jhorwitz: nevermind, solved it 23:07
mberends moritz: that's the [*-1] I didn't have a few weeks ago. nice! 23:11
moritz mberends: that's why I ++'ed jonathan ;)
kj how can I get the name of any PMC class? 23:13
mberends moritz++ jonathan++ . unfortunately some other errors prevent my code using latest Rakudo today, but it will surely come soon. danke!
kj ah Parrot_oo_get_class 23:15
mberends moritz, I know you spent some time in Scotland. I'm working in Dumfries next week, have you been there? 23:20
moritz mberends: no, just passed there once, I think 23:22
mberends make'ing spectest of r35898 on linux-amd64 23:23
dalek r35899 | fperrad++ | trunk (20 files):
: [configure] apply patch from TT #119
: Many libraries are only used by PMC or via NCI.
: So, don't put them in @libs@, we don't need them to link parrot executable & shared lib.
review: www.parrotvm.org/svn/parrot/revision?rev=35899
moritz is making a git clone of parrot 23:24
since I already have a complete svn mirror, it's not such a big deal 23:25
it still takes ages 23:26
hope it's done when I wake up tomorrow ;-)
mberends those new electrons are pretty quick, but the hard drives make them dizzy 23:28
moritz mumbles something incomprehensible about special relativity and scalar gauge fields 23:29
cognominal and magnetism is not yet used to get perpendicular on disks :) 23:30
mberends finds most things non-newtonian incomprehensible
moritz cognominal: they will, in 3 to 5 years (estimated, of course) 23:31
mberends: they *are* incomprensible. Nearly nobody claims to understand quantum mechanics
with relativity it's different, that's easier to visualize
mberends is relativity the only possible explanation for michelson-morley? 23:33
rg just filed a new ticket TT #212
Infinoid quantum mechanics is just an implementation detail.
moritz mberends: no, but the other explanations are even more insane ;-) 23:34
mberends so you don't have to be mad to work here, but it helps
moritz Infinoid: the open source community usually cares a lot about those details ;-) 23:35
GeJ is there an ETA for the repo-switch ?
Infinoid moritz: if the implementation doesn't match the design, where do I submit bug reports?
cognominal universe implementation has not been open sourced, it takes big nut crakers like the LHC to reverse-engineer it. 23:36
Infinoid there are some *serious* action-at-a-distance problems with the current implementation. 23:37
moritz Infinoid: if that address were known, it would have been spammed and closed by now ;-)
nonlocality--
dalek r35900 | kjs++ | trunk/src:
: [core] print certain types of PMC constants in the constant table. These are common, and very useful, especially the signature arrays for the PCC.
review: www.parrotvm.org/svn/parrot/revision?rev=35900
Infinoid not to mention the lack of documentation 23:38
moritz illiterate programming
mberends <opinion>LHC will prove to be too small, but will produce enough justification to build a bigger one. etc, recursively</opinion> 23:40
Infinoid eventually we'll have a track around the equator, and then that one won't be big enough, and we'll have to find a bigger planet
mberends heh 23:41
rg nah, why constrain yourself with a planet. just build it around the sun. free energy source included ;) 23:44
davidfetter type 3 civilization ftw
Infinoid space is a good place for those things, anyway. 23:45
23:48 particle1 joined
mberends r35898 linux-amd64 spectest: All successful, 1421 subtests skipped. Files=295, Tests=8254 ! 23:50
mberends needs sleep. g'night #parrot! 23:51
chromatic Why would anyone pass a NULL hash into parrot_hash_size?
GeJ "just for the fun of it" suddenly doesn't look like the universal answer 23:52
chromatic That answer's not working for me at the moment anyway.
cotto chromatic, does that happen anywhere? 23:53
(I'm not entirely sure I want to know.)
chromatic The API allows it.
Let me finish tidying the file and fixing up its documentation and I'll fix that. 23:54
Someone (Hi, cotto!) should fix src/hash.c not to use out parameters when it creates hashes.
That will make PMCs somewhat saner.
If you want real fun, read parrot_hash_get_idx. 23:55
Encapsulation? NO THANK YOU! 23:56
cotto chromatic, you mean that any functions that create new hashes return them? Sounds revolutionary. 23:57
chromatic We're blazing new ground here. 23:59
Eventually we may be able to get rid of the PMC union val.
NotFound Someone has taken a loook at TT #210 ?
cotto I just need a +1 on that patch and it'll be a smop.