"Parrot 0.6.4 "St. Vincent Amazon" Released | parrotcode.org/ | 15/648/80 new/open/stalled tix | logged in irclog.perlgeek.de/parrot/today".
Set by moderator on 15 July 2008.
00:09 AndyA joined
kid51 Does anyone know what I'm supposed to do if t/codingstd/perlcritic.t flags a file for having a 'TODO' comment? 00:24
# Flag comment 'TODO' found at lib/Parrot/Harness/Smoke.pm line 100
# Flag comment 'TODO' found at lib/Parrot/Harness/Smoke.pm line 108 00:25
Infinoid I think those usually end up being converted to tickets 00:29
Whiteknight Yeah, create a ticket for them, and replace the "TODO" with the rt# of the ticket 00:32
kid51 Yeah, but I can't commit Michael Peters' patches for Smolder because one of the files is itself failing perlcritic.t
Whiteknight nice
kid51 So it looks like I'll first have to commit the file -- even though it will cause a test failure. 00:33
Whiteknight do that. People will find a solution for it
maybe post a ticket to the mailing list alerting people
dalek r29571 | jkeenan++ | trunk: 00:34
: Eliminate trailing whitespace.
diff: www.parrotvm.org/svn/parrot/revision?rev=29571
r29572 | jkeenan++ | trunk: 00:37
: Committing Michael Peters' most recent patches for Smolder testing
: (rt.perl.org/rt3/Ticket/Display.html?id=55954). NOTE:
: lib/Parrot/Harness/Smoke.pm is failing perlcritic.t policy re comments with
: 'TODO' -- a failure I found out by running make smolder_test itself!
diff: www.parrotvm.org/svn/parrot/revision?rev=29572
r29573 | Whiteknight++ | gsoc_pdd09: 00:47
: [gsoc_pdd09] Cut out sweep code for now, works better without it. Fix merge error in MANIFEST
diff: www.parrotvm.org/svn/parrot/revision?rev=29573
kid51 Whiteknight: okay, I posted to rt.perl.org/rt3/Ticket/Display.html?id=55954 00:50
... and the files are committed.
Whiteknight good and good
dalek r29574 | Whiteknight++ | gsoc_pdd09: 01:06
: [gsoc_pdd09] Reintroduce short-circuiting to pobject lives by creating a new list for marked objects. Also, a few unrelated minor changes.
diff: www.parrotvm.org/svn/parrot/revision?rev=29574
nopaste "kid51" at 68.237.13.124 pasted "RT 56948: try this patch: make realclean;perl Configure.pl --test=configure" (311 lines) at nopaste.snit.ch/13610 02:10
02:30 Zaba_ joined
cotto_home NotFound++ #I didn't know real_exception was smart enough to do that. 02:33
particle, apparently you underestimated real_exception. 02:38
Is E_SystemError one of those deprecated errors? 02:43
Whiteknight cotto_home, what are you talking about? What cool stuff does real_exception do? 02:44
dalek r29575 | Whiteknight++ | gsoc_pdd09:
: [gsoc_pdd09] Lots of changes:
: * Headerizer updated all my function defs
: * Add ARGMOD places to shut headerizer up
: * Removed unused state from the GC
: * Remove code to sweep pools that shouldn't be swept
: * Added post-sweep cleanup
diff: www.parrotvm.org/svn/parrot/revision?rev=29575
cotto_home Whiteknight, format strings that can use Parrot STRINGs. 02:45
Whiteknight oh really? cool
cotto_home real_exception(interp, NULL, E_SystemError, "%Ss", errmsg_pstring)
02:48 Zaba joined
cotto_home It's funny because I was looking at that function earlier but still missed the ... 02:48
s1n if a spectest is failing but shouldn't be, and it's in the spectest_regression.dat, should it be marked as SKIP? 02:55
bacek s1n: skip or todo 03:10
s1n bacek: which would be better? 03:11
bacek: the tests that i'm adding should probably be passing, but i'm guessing there's a bug that's preventing it 03:12
bacek s1n: depends. If it a bug in rakudo: todo, if something not implemented: skip
then todo, AFAIK
s1n it's a new test in range, but it looks like some of it isn't working, it's hard to say whether it's a bug or hasn't been implemented 03:13
the test is currently being fudged, so i'd have to dig in a figure out
bacek which file? 03:14
purl i guess which file is that error in
s1n S02-builtin_data_types/range.t
well, there's no p6eval bot in here 03:15
bacek #?rakudo skip 'infinite ranges not implemented'
?
s1n no, i'm adding some new tests
bacek can you provide sample test?
s1n yeah, try out 5..1 or 'd'..'a' 03:16
if you want, i can pastebot the tests if needed
03:17 Zaba joined
s1n (i.e. use the p6eval bot in #perl and try that out, compare it to 1..5 or 'a'..'d') 03:17
cotto_home polyglotbot knows rakudo 03:23
bacek cotto_home: as 'perl6' :)
03:34 baest joined 03:51 TiMBuS joined
Tene s1n: yes there is 03:59
perl6: say 'hi s1n' 04:00
polyglotbot OUTPUT[hi s1n␤]
04:06 s1n joined
TimToady s1n: it *is* specced, S03:2641 04:15
04:22 Zaba_ joined
cotto_home I've gotten 14 copies of NotFound's response to RT#46681. 04:28
05:08 grim_fandango joined 05:34 wolverian joined, leo_ joined 05:43 Psyche^ joined 05:48 Ademan joined 06:06 tuxdna joined
cotto_home gah! I got another two. 06:15
Who's in charge of rt.perl.org?
TonyC perlbug-admin@perl.org (which is Robrt, I think) 06:20
Sartak I hack on RT, maybe I can help you with something? 06:21
06:24 Debolaz joined
NotFound cotto_home: I send only one, I promise X-) 06:26
And in the ticket in RT there is no dupes. 06:29
Sartak: he'e receiving duplicates of my message to RT#46681 06:30
Sartak oh 06:31
NotFound Is a good message, but one copy must be enough for anything X-) 06:32
Sartak :) 06:33
I don't see anything wrong on the ticket display page. might be config? anyway, yeah, you'll have to ask Robrt
06:35 uniejo joined 06:38 Psyche^ joined 06:47 iblechbot joined 06:50 Zaba joined 06:56 barney joined 07:03 zostay joined 07:08 s1n joined 07:09 particle joined 07:10 jcm joined 07:13 rhr_ joined 07:16 TimToady_ joined, cxreg2 joined 07:17 _shane_ joined, Infinoid joined, magnachef_away joined 07:19 jjore2 joined, cotto_home joined, japhb joined, gmansi joined 07:20 cj joined, rlb3 joined 07:21 hachi joined, nopaste joined 07:28 Ademan joined 07:37 jan joined
dalek r29576 | moritz++ | trunk: 07:55
: [rakudo] added S04-statements/do.t to spectest_regression, Auzon++
: +14 pass, +9 todo/skip tests
diff: www.parrotvm.org/svn/parrot/revision?rev=29576
07:58 masak joined
barney Is --gc-debug still needed for running the tests ? 07:58
moritz which tests? 07:59
purl which tests are you looking at? I can review and make a ruling or kick to p6c/p6l
moritz purl: foget which tests
purl moritz: excuse me?
moritz purl: forget which tests
purl moritz: I forgot which tests
barney In the root Makefile: EXTRA_TEST_ARGS
08:00 s1n joined
dalek r29577 | bernhard++ | trunk: 08:10
: [docs] Mention the two new exportable subs collect_test_environment_data() and send_archive_to_smolder() in POD.
diff: www.parrotvm.org/svn/parrot/revision?rev=29577
barney make smolder_test looks fine 08:11
08:13 Zaba_ joined
dalek r29578 | bernhard++ | trunk: 08:17
: [build] Mention target 'smolder_test' in 'make help'.
diff: www.parrotvm.org/svn/parrot/revision?rev=29578
08:18 Zaba joined 08:22 skv joined
barney is spending the weekend in www.tittling.de/index.phtml Hey, are they using embedded Perl ? 08:29
09:09 Nebster joined
jonathan morning all 09:21
purl morning, jonathan
Nebster morning
moritz mornin'
masak morning 09:37
what are the src/ops/perl6_ops*.bundle files that keep being generated in my rakudo source tree? 09:43
could they be svn:ignored? 09:45
jonathan masak: That folder holds some dynops for Perl 6, but I don't know what a .bundle file is - I don't get them on Win32.
moritz doesn't get them either 09:47
masak ok, PIR question: seems I can't do `print PIO, $P0`, what should I do instead if I want to print the Str in $P0? 09:51
jonathan PIO is a ParrotIO object? 09:52
PIO.print($P0) perhaps?
moritz leaves for the weekend 09:53
bye bye, and happy hacking
jonathan bye moritz, have a good weekend
masak bye. moritz
jonathan: on line 42 in src/classes/IO.pir, PIO is used
I'm trying to do the same with printf 09:54
ah, and that was the error! I had forgotten to declare PIO
jonathan Ah! 09:56
masak hm, even after implementing it, I get "Could not find non-existent sub printf"
what governs whether a sub is globally visible? 09:57
I want it to be as visible as print and say
jonathan Put it in .namespace []? 09:58
Same as print and say are declared in io.pir
masak hm, I don't see it
jonathan src/builints/io.pir? 09:59
masak ah
jonathan Tssk. P6Object doesn't handle anonymous classes.
masak ah, so src/classes/IO.pir is when I have an actual IO object, while src/builtins/io.pir is for the object-less calls? 10:00
it works! 10:02
this was instructive :)
_and_ low-hanging fruit
masak sends patch
10:02 tuxdna joined
jonathan masak: Yes, pretty much 10:09
Nice! :-)
masak after perl 6 goes mainstream, I can point to 'printf' in people's code and say, "you know... I implemented that" :P 10:12
jonathan :-) 10:14
...and then get blamed for the bugs! ;-)
jonathan will keep quiet to avoid blame. :-)
masak haha
dalek r29579 | jonathan++ | trunk: 10:31
: [p6object] Support registration of anonymous classes. Add a few tests. Also eliminate an unused .local in the test file.
diff: www.parrotvm.org/svn/parrot/revision?rev=29579
10:57 Whiteknight joined 11:02 ruoso joined 11:43 NordQ joined 12:06 iblechbot joined
dalek r29580 | jonathan++ | trunk: 12:23
: [rakudo] Implement anonymous classes.
diff: www.parrotvm.org/svn/parrot/revision?rev=29580
pmichaud trunk isn't building for me 12:27
pmichaud tries a fresh checkout
jonathan pmichaud: I did a fresh checkout this morning (just out of habbit of normally doing so before starting a day's hacking). 12:29
And it built.
pmichaud my system is hanging in a Configure.pl step 12:30
jonathan Early fail!
pmichaud Determining whether there is socklen_t.................................yes.
Determining if your C library has setenv / unsetenv...................both.
Determining if your platform supports AIO...
purl i already had it that way, pmichaud.
jonathan Hmm.
pmichaud and it just sits there.
it could be my box -- I did an upgrade a couple of days ago. OTOH, it built just fine yesterday, so that's not likely to be the problem. 12:31
pmichaud bisects
12:31 slavorgn joined
masak jonathan: "anonymous grammars not supported" -- is that temporary or according to spec? 12:32
jonathan svn log shows last change to aio.pm was "r24769 | jkeenan | 2008-01-12 02:22:59 +0100 (Sat, 12 Jan 2008) | 1 line"
pmichaud masak: temporary
purl well, temporary is evil. filesort is evil.
masak purl: forget temporary 12:33
purl masak: I forgot temporary
pmichaud it appears to be something on my system
I had some difficulty booting this morning as well, so perhaps my desktop is acting up.
jonathan masak: the spec doesn't say either way
masak maybe it should
pmichaud since the spec doesn't say the presumption is that grammars may be anonymous
(since classes may be anonymous) 12:34
jonathan Since classes may be and grammars are class-ish?
Right.
masak however, not having anon modules seems a wise choice, for some reason
jonathan It was my guess too, but I didn't want to go implemnet it only to find it wasn't spec'd.
Or wasn't menat to be.
pmichaud well, in terms of Parrot we'll want to implement anonymous grammars with an internally generated unique name 12:35
probably the same for anonymous classes, too.
jonathan We may. For now, I've gotten away with that.
But it won't be a hard change to make.
pmichaud we'll want the internally generated name so we can add regexes into the grammar :-)
jonathan Yes. 12:36
pmichaud otherwise we don't have a .namespace to attach the methods to
jonathan Well, we don't for anonymous classes. We just call .add_method on the class.
But that may be tricky to do with calling into PGE etc.
pmichaud I'm not sure I'll be able to do that with PGE.... right.
jonathan OK, I should go eat something quickly for lunch...then I guess there's various bits to discuss. 12:37
pmichaud I might not be good for discussion this morning -- I woke up with a huge headache 12:38
we can try, though. :-)
jonathan Ah.
We can leave it for a bit if you like.
pmichaud well, I won't be around much at this time until next Thursday 12:39
(travel, oscon)
jonathan I menat a bit later into today. ;-)
pmichaud okay, that should work.
jonathan OK 12:40
pmichaud and of course I have to troubleshoot why Parrot won't even build on my system now :-(
jonathan :-(
pmichaud since yesterday I've had this sense like one of the planets moved into the wrong astrological sign or something :-|
also I can write up lexicals now that S04 has been updated. 12:41
S04 has made it incredibly easy, if I'm reading it correctly (only browsed it briefly yesterday)
jonathan I saw that it had been updated; skimmed it but couldn't concentrate well at the time. 12:44
pmichaud yes. it looks very sane to me (I don't know if it's theoretically correct according to how the lisp world sees things, but it's implementable according to how the Parrot world sees it :-) 12:45
jonathan OK, good. :-)
pmichaud and we don't need to maintain lists of inner subs
jonathan Phew.
pmichaud and we can probably eliminate the Closure.pmc altogether
jonathan That felt pretty uncomfortable...
Hmm. 12:46
OK, will be interested to read. :-)
And help implement.
OK, going to grab a snack...
NordQ jonathan: Hi 13:09
I think in Revision r28723 www.parrotvm.org/svn/parrot/revision?rev=28723 is a bug
in file compilers/imcc/imcc.y SUB_INSTANCE_OF has been changed instead of SUB_LEXID 13:10
nopaste "NordQ" at 89.223.24.77 pasted "Patch for r28723" (24 lines) at nopaste.snit.ch/13612
masak NordQ++ 13:11
13:14 Ademan joined
jonathan is back 13:17
NordQ: It looks like as well as, rather than instead of. But, hmm. 13:19
oh, hmm...one was to the generated file...
jonathanfail 13:22
pmichaud: Any luck with your build? 13:25
dalek r29581 | jonathan++ | trunk: 13:26
: [core] Correct imcc.y; I managed to make a proper mess there. Spotted by NordQ++.
diff: www.parrotvm.org/svn/parrot/revision?rev=29581
13:27 particle joined 13:29 wknight-work joined 13:32 wknight-work joined
NordQ Without the third parameter 'S' - error: too few arguments to function 'mk_const' 13:39
13:40 wknight-work_ joined
jonathan Ah, yes. 13:40
jonathan spent quite some time once trying to get a working and correct version of flex and bison to run on Win32, and failed... 13:41
dalek r29582 | jonathan++ | trunk: 13:49
: [rakudo] role_name goes away, since we want to parse a signature in a role definition, and an expression when it's used with does. This should somewhat simplify things when we implement parametric roles. Note role_name is also gone in STD.pm (though getting to what it has now would take a larger refactor).
diff: www.parrotvm.org/svn/parrot/revision?rev=29582
r29583 | jonathan++ | trunk:
: [core] Fix to my previous fix to imcc.y, again spotted by NordQ++.
diff: www.parrotvm.org/svn/parrot/revision?rev=29583
13:57 grim_fandango joined
jonathan pmichaud: ping 13:59
14:00 pjcj joined 14:15 Andy joined 14:16 paco joined
dalek r29584 | julianalbo++ | trunk: 14:23
: avoid access to string internals in default.pmc
diff: www.parrotvm.org/svn/parrot/revision?rev=29584
14:24 radhios joined 14:25 davidfetter joined
dalek r29585 | jonathan++ | trunk: 14:28
: [rakudo] Implement .^ (call on metaclass) syntax, with passing the invocant in as a first argument to the metaclass method, as specified in S12.
diff: www.parrotvm.org/svn/parrot/revision?rev=29585
masak how do I run rakudo against the Perl 6 test suite? 14:37
ah, just re-found make spectest
jonathan make spectest_regression is those we expect to pass, and make spectest runs the lot. 14:38
masak any way to get HTML output?
makes it easier to get an overview
NotFound masak: put <html> before and </html> after X-)
Tene echo '<p>'; make spectest_regression ; echo '</p>' 14:39
masak :P
Tene Aw, NotFound beat me.
NotFound++
masak I was thinking more like `make smoke`
Pugs has it.
pmichaud jonathan: pong 14:40
Tene pmichaud: got a minute for a Best Practices question?
pmichaud Tene: sure. 14:41
(I'm a little distracted at the moment, though -- looks like I have a failing hard drive on my system that I'm trying to diagnose and/or get the data off quickly.)
Tene In ruby, a bareword can either be a variable or a call to a nullary function.
Would it be better design to write a rule to check if a name has been defined as a function in the parsing stage, or parse it as "either a variable or a function call" and do the lookup in actions.pm? 14:42
pmichaud if it doesn't change the parse (and it sounds to me as though it doesn't), then actions.pm is better 14:43
Tene Okay. Thanks.
pmichaud it's certainly easier at this stage :-)
Tene Also, actions.pm is about 10X easier.
YEah.
jonathan pmichaud: I'm ready for whatever question you had yesterday, whenever you are. :-) Also, one from me... 14:44
pmichaud jonathan: I'm not going to be ready for my question today, I don't think. I wasn't expecting HDD failure (on top of other stuff I have to do today)
but my underlying question is -- how much do we lose if I disable the :immediate stuff that is present now?
(not necessarily permanently) 14:45
jonathan Very little.
pmichaud okay. I may choose to do that for this next week, with the understanding that we'll resolve it very quickly thereafter.
it will happen in a branch first
and I'll check with you about it.
your question?
jonathan Since I've backed off working on signatures now until we discuss that further, really the only thing you lose is, "is this a block/sub/method".
Which isn't a big deal. And being able to get at soemthing with .signature isn't a big deal until we resolve how we're doing them, and only then do I really need to think about it, for doing MMD. 14:46
pmichaud yes. I'm keeping MMD (and its timelines) on my radar and in my planning. 14:47
jonathan Question was - if I want to stick in some of the meta-methods (.methods, .attributes, .parents), should these be going into P6Object?
meta-methods = methods on the metaclass, sorry
pmichaud very good question.
jonathan I don't want to start throwing more in there and making it more Perl 6-specific, without knowing how Perl 6-ish you want it to be.
pmichaud if they're fairly "generic", then yes. If we depend on them to have very specific P6 semantics, then it may be a case-by-case basis
also note that P6object is going to get a major refactor soon 14:48
jonathan Same goes for the .WHERE method..
pmichaud since PMCProxy was fixed
jonathan (which is trivial to write and another thing to tick off the list)
pmichaud do we still need the .WHENCE stuff that is in p6object, or is that being handled (better) in Object.pir now?
jonathan WHENCE stuff happens in a couple of places 14:49
But I think you're talking about the keyed access 14:50
pmichaud I'd prefer that WHENCE not be in P6object
jonathan That is on the proto-object.
If you can provide a way add methods to the proto-object in Object.pir, then it needn't be in P6Object.
pmichaud I don't mind if Object.pir adds methods to P6proto :-) 14:51
so let me rephrase
jonathan I think at the moment, the only way to add stuff to the metaclass and protoobject class is to do it in P6Object.
pmichaud actually, this answer your question.
Tene pmichaud: Any ideas about where I could get an object representing the lexical environment, or does that not exist yet, as far as you know?
14:51 Ademan joined
pmichaud There is no problem if HLLs add methods into P6object, P6protoobject, or P6metaclass 14:51
jonathan Tene: I think interpinfo lets you get the current sub, from which you can get the current lexpad.
pmichaud however, I'd prefer that they do it from the HLL source code instead of modifying P6object.pir directly 14:52
in other words
purl in other words is "object" the top of the heirarchy, or the bottom?
jonathan purl: forget in other words
purl jonathan: I forgot in other words
pmichaud for .WHENCE, I'd like to see it physically be coded in src/classes/Object.pir, but it can have .namespace ['P6protoobject'] to get it to be added to the P6protoobject class
as opposed to having the code in runtime/parrot/library/P6object.pir 14:53
make sense?
same goes for .methods, .attributes, .parents for now 14:54
jonathan OK, if that will work, then it works fine for me.
pmichaud I don't see a problem with having those in P6metaclass, but let's keep the code for it in Rakudo sources for the time being. If they look generic enough we'll migrate them into P6object.pir
(Tene - longish answer to your question coming up)
jonathan You want me to look at getting WHENCE moved over into Rakudo too? 14:55
pmichaud please
jonathan OK
pmichaud and yes, it works just fine -- it's easy to add methods to existing classes (even PMCs) by just using .namespace ['Foo'] and then defining new methods
for a while I was adding methods into String, Float, Integer, ResizablePMCArray, etc. that way
that will be a big help to me for the weekend 14:56
and helps keep P6object "thinner"
jonathan OK, sounds good.
pmichaud Tene: (lexicals) -- one can get at lexpads by using getinterp 14:57
$P0 = getinterp; $P1 = $P0['lexpad';1] # $P1 has caller's lexpad
-however- 14:58
it's not currently possible to query the lexpad for things like "what symbols are defined"
IMO, Parrot's LexPad PMC should be subclassed from Hash. Currently it is not -- it has a Hash as a member
(I suspect this is a holdover from when PMCs were fixed structures.) 14:59
Tene To lookup symbols at compile-time in lolcode, I had to create a sub in pir to wrap the find_name opcode and the class opcode. 15:00
pmichaud ...but that won't find lexicals, will it?
or do you dynamically create the sub, or otherwise use set_outer, or ...? 15:01
15:01 ruoso joined
Tene I maintain a @?BLOCK like in rakudo, but if a symbol can't be found there, I go look for it with find_name 15:02
pmichaud but find_name doesn't search the lexpads of callers
so I'm not sure how a wrapper sub would be able to use find_name to find lexicals 15:03
Tene I haven't been looking up lexicals.
pmichaud okay. :-)
Tene I've needed to look up functions defined with .sub
pmichaud okay, find_name does that just fine. :-) 15:04
Tene However, you're right, that won't work in the general case.
Huh.
I can get all of that information by poking around in lexpads, though? 15:05
pmichaud poking, yes. iterating, no.
particle well, unless you write your own iterator
or, one is written for the default LexPad PMC
pmichaud which I think would be a mistake. LexPad should be a Hash
there's not an iterator for the LexPad PMC -- I've tried
particle is there a ticket on that? 15:06
pmichaud yes
(looking it up)
particle good
jonathan pmichaud: Would implementing get_iter on LexPad help?
pmichaud I think redesigning LexPad to be isa Hash would be better.
particle either would help, one is better
pmichaud it's not just iter, but also exists, get_*_keyed, set_*_keyed, and all of the other Hash methods 15:07
so, we either redefine them all in LexPad, or we just make LexPad to be isa Hash :-)
jonathan pmichaud: It already has VTABLE INTVAL exists_keyed_str(STRING *name) {
VTABLE PMC *get_pmc_keyed_str(STRING *name) {
pmichaud yes, I know it has it already.
How about defined?
purl defined() is a function that returns a Boolean value telling whether EXPR has a value other than the undefined value `undef'. If EXPR is not present, `$_' will be checked.
pmichaud I'm simply saying that we have a lot of vtable methods on Hash that seems to me to be silly to duplicate (or forward) in LexPad 15:08
jonathan Yeah, agree.
Just looking at how hard it'd be to change...
Or, why it wasn't done that way in the first place. 15:09
pmichaud because we didn't have the ability to extend PMCs
i.e., it was pre-pdd17
LexPad needs a pointer to its context, and there wasn't a place to put it in the Hash PMC structure
(I'm guessing about that)
so, LexPad became a new PMC, with a pmc_ext that contained a Hash
and then some selected vtable methods that delegate to the Hash 15:10
Tene Can't we just say: has $lexicals handles Hash; ?
;)
jonathan Er, hmm...
jonathan is confused
In lexpad
PMC * const info = PMC_pmc_val(SELF);
Hash * const hash = (Hash *)PMC_struct_val(info);
And
METHOD get_lexinfo() {
PMC *lexinfo = PMC_pmc_val(SELF);
RETURN(PMC *lexinfo);
}
pmichaud (I'm speculating on a bit of this -- I only briefly scanned the code last week while trying to figure out other lexical issues) 15:11
jonathan The hash is in lexinfo?
pmichaud no, lexinfo is a structure that describes the entries in the lexpad
the lexpad itself has a hash that has all of the entries
Zaba lexinfo? lexpad? heh
pmichaud lexinfo is the structure that describes the lexical names defined in a given .sub 15:12
jonathan OK
pmichaud it's a static, compile-time thingy
jonathan I thought so
NotFound There is also a lexluthor?
pmichaud lexpad is the "activation record" for the lexicals -- one per sub invocation
jonathan OK, I get it... 15:13
pmichaud lexpads apparently want pointers to the associated context, pointers to the lexinfo structure, and a hash to hold the individual values
also, the POD lies in lexpad.pmc 15:14
=item C<void set_pmc_keyed_str(STRING *name, PMC *value)>
Set the lexical with the given name to value. If the lexical name
doesn't exist, it is created.
is incorrect -- what it currently does is throw a "Lexical %s not found" exception.
so we're not able to dynamically add lexicals into a LexPad (which I wanted to do for something in PGE but then discovered I couldn't, so PGE still does its own internal lexicals management) 15:15
and store_lex (incorrectly) relies on this particular feature for the time being. 15:16
er, "incorrectly imho"
jonathan pmichaud: My understanding, from reading the code, is that lexinfo has a hash mapping names to register numbers. And lexpad uses that to see which register numbers to use, in the current context. A lexpad doesn't have a hash per invocation of the sub, it seems there is just one hash for the sub in lexinfo. 15:19
pmichaud every sub invocation creates a new lexpad instance 15:20
jonathan Yes
But that doesn't mean a new hash per invocation.
pmichaud every lexpad has one hash
jonathan They all refer to the lexinfo, which has the hash.
pmichaud every sub invocation creates a lexpad
jonathan I'm not disagreeing with that.
pmichaud I mean there is a hash per invocation of the sub, not that a single lexpad object contains them all 15:21
15:21 GarulfoUnix joined
jonathan That doesn't fit with the code as I understand it, nor the PDD. 15:21
pmichaud just a sec
jonathan Sure
GarulfoUnix Hi everyone
purl Howdy, GarulfoUnix, you fantastic person you.
jonathan GarulfoUnix: Hi
purl privet, jonathan.
jonathan Bots... 15:22
15:22 gryphon__ joined
GarulfoUnix someone uses Parrot on Ubuntu linux distribution ? 15:22
NotFound GarulfoUnix: me, for example.
TimToady_ me too, nowadays 15:23
GarulfoUnix NotFound, ok. Did you installed Parrot by using some packages or did you installed it by the source codes ?
TimToady_ source
NotFound GarulfoUnix: source, with svn.
pmichaud jonathan: okay, I'll phrase it this way, then 15:24
GarulfoUnix Ok. Do you know if there are Parrot packages for Ubuntu ?
Zaba why do you want one, it's being developed so quickly
particle there are debian packages somewhere, but they're always out of date 15:25
NotFound GarulfoUnix: you can try alioth.debian.org/projects/pkg-parrot/
GarulfoUnix perhaps there are development package of Parrot for Ubuntu Zaba
pmichaud actually, I'll ask a question -- what creates/initializes the 'info' (PMC_pmc_val(SELF)) field in a LexPad ?
GarulfoUnix i don't know, i'm discovering Parrot.
particle he's not asking you :)
GarulfoUnix thank you NotFound
TimToady_ compiling from source will be relatively painless 15:26
unless you're running Ubuntu on a Cray or something :)
wknight-work GarulfoUnix, at this point the best option is to download the source and compile it\\
jonathan VTABLE void init_pmc(PMC *lexinfo) {
PMC_pmc_val(SELF) = lexinfo;
}
So it gets passed the lexinfo PMC for the sub.
wknight-work things are changing so rapidly, it's hard to get a good package for any platform set up
GarulfoUnix NotFound, are you french ?
pmichaud and it just takes a reference to it? 15:27
okay, I'm confused.
NotFound GarulfoUnix: a little to the south.
GarulfoUnix NotFound, do you know speak french ?
particle always reads "wknight" as "weeknight"
NotFound GarulfoUnix: highschool level
GarulfoUnix NotFound, ok. 15:28
by the way, are there any french here ?
Zaba I used to learn french.. I learned it for 5 years.. then changed to learning german.. and I don't remember a single bit
pmichaud ohhhhhhhhhhhhhhhhhhhhhhhhhhhhh
jonathan pmichaud: See sub.pmc around line 290.
pmichaud never mind, okay, I get it
jonathan :-)
wknight-work partcile, that's not a bad interpretation. Somebody once asked me if "Whiteknight" was a reference to the KKK
(it's not)
particle heh
masak does this work for anyone else? ./perl6 -e 'my $var = 0; say nothing while $var++ < 3' 15:29
GarulfoUnix Zaba, changed to learn german ? >_<
:-)
pmichaud there's not a hash mapping symbols to PMCs, there's a hash mapping symbols to register numbers
in the context
jonathan pmichaud: Right.
masak on my box it gives 'Could not find non-existent sub while'
a strange error
NotFound But my english is not even highschool and all those people understand me X-)
(At times)
jonathan pmichaud: I stared at it for a while before realizing that too. :-)
GarulfoUnix NotFound, where are you from ? 15:30
NotFound Spain.
GarulfoUnix ho nice
i live in france lol.
what's your job NotFound ? 15:31
pmichaud okay. If that's the case, I take back what I was saying about LexPad isa Hash
and we need a way to iterate over the entries
jonathan OK. But we do want a way to iterate over the lexinfo, I guess?
masak oops, I meant ./perl6 -e 'my $var = 0; nothing while $var++ < 3'
pmichaud and creating something like %MY is going to be tricky.
masak but the error is the same
jonathan pmichaud: Does %MY let you create new lexicals?
pmichaud I'm just thinking about things like .kv, .pairs, etc. 15:32
TimToady_ it's not supposed to
but %COMPILING should let you
pmichaud we can iterate over the lexinfo, but we can't index the iterator to get to the correct item
TimToady_ where %COMPILING is the current %MY-in-construction
pmichaud it would need a separate lookup. Not a big deal -- just something to keep in mind.
jonathan pmichaud: Yeah. I think it's do-able, but it's an extra lookup. And the values of the hash are pretty useless. 15:33
pmichaud S02 says: You may not use any lexically scoped symbol table, either by name or by reference, to add symbols to a lexical scope that is done compiling. (We reserve the right to relax this if it turns out to be useful though.)
(just confirming what TimToady said) 15:34
TimToady btw, anon grammars are not only allowed, but necessary, and already in use in STD 15:36
pmichaud I can't find a ticket for being able to iterate a LexPad. I know that I wrote a message about it to parrot-porters last November or December, when we were looking at all of the eval stuff.
TimToady but as pmichaud alluded to, implemented by name generation currently because Perl 5 doesn't support anon packages very well
but basically "Everything is an object" means that everything is essentially anonymous, unless you have a ref somewhere 15:37
dalek r29586 | jonathan++ | trunk:
: [rakudo] Move WHENCE related things that were in P6Object.pir into the Rakudo source tree (Object.pir).
diff: www.parrotvm.org/svn/parrot/revision?rev=29586
TimToady it's just that some refs are more equal than others 15:38
pmichaud TimToady: BTW, my initial read of S04 lexical/cloning looks like you made it easy to implement. Thanks.
I'll have a followup question to p6l (answering my earlier email, and verifying with another example) 15:39
jonathan pmichaud: r29586 should give you a few less lines to worry about in your refactor. :-)
pmichaud jonathan++ 15:40
YAY
TimToady it does seem to me that the lexical scope does need to keep track of its inner closures somehow 15:41
but maybe the lazy implementation can do it at point of use
jonathan pmichaud: OK, next question about P6Object.pir. :-) Since $foo.^isa(Bar) is really $foo.HOW.isa($foo, Bar) after recent S12 clarifications, should P6metaclass now be fixed up to follow that way too? 15:42
TimToady will need some state to indicate whether a particular closure has been cloned yet
pmichaud jonathan: yes.
jonathan: I was going to do those, but if you want to do it then feel free
jonathan pmichaud: Was that going to be the bulk of the refactor? 15:43
jonathan is trying to work out how trivial it will or won't be
pmichaud no
the refactor is changing the structure a bit and eliminating the %metaclass table.
jonathan Ah, OK. 15:44
To avoid memory leaks.
pmichaud yes, and also to better support anonymous classes, and other things
and to fix up PMCProxy mapping
but fixing .HOW.isa and the like shouldn't be difficult, and shouldn't impact the refactor
jonathan OK 15:45
Basically it's just getting the object passed in, rather than using "parrotclass = self.'get_parrotclass'(x)", as far as I can see.
oh, no
duh
:-)
Oh, yes 15:46
jonathan wishes his brain worked today
dalek r29587 | julianalbo++ | trunk:
: put pdb renaming in NEWS
diff: www.parrotvm.org/svn/parrot/revision?rev=29587
particle isn't sure why pdb renaming didn't go through a deprecation cycle 15:53
NotFound particle: nobody mentioned that, and looks that nobody was using it. 15:56
15:58 peepsalot joined
jonathan saw "a 1-line patch that fixes nothing" and took a moment to realize it meant the "nothing" function... 15:59
NotFound Is a shame that we don't have a "anything" function. 16:00
pmichaud <tao>when we have patches that fix nothing, then everything is done.</tao>
jonathan will apply the patch
pmichaud +1 16:01
purl 1
particle nothing takes no arguments
dalek r29588 | jonathan++ | trunk:
: [rakudo] Make multi-methods vaguely work (in as far as subs work, anyway).
diff: www.parrotvm.org/svn/parrot/revision?rev=29588
Zaba what's the nothing function? 16:02
jonathan Zaba: It's the function that does...nothing.
TimToady now to figure out how to parse "don't do anything" 16:03
pmichaud in other environment's we'd call it "NOP"
and we wouldn't put an apostrophe in "environments" (bleah)
TimToady Ada called it "null"
jonathan You can think of it as a no-op, but with the overhead of Parrot's calling machinary to do it. :-)
pmichaud okay, it's a "fat no-op"
NotFound I hope is not here only to be able to write "nothing compares 2 U" in perl poetry.
pmichaud nothing cmp 2*$u
jonathan With a postfix U and an infix compares, you could easily make nothing compares 2U parse pretty easily. :-) 16:05
pmichaud okay, I've now convinced myself that my hardware is failing somewhere. Ick.
masak huh, make spectest_regression reports t/spec/S12-class/annonymous.t as missing, even though it isn't
pmichaud masak: might need to do an 'svn up' on t/spec
masak the file is there
pmichaud 2 n's, perhaps? 16:06
Zaba jonathan, what is it for?
pmichaud annonymous.t versus anonymous.t ?
masak pmichaud: ah, indeed
Zaba jonathan, and if it does nothing, what's there to fix? >_>
pmichaud Zaba: it was parsing as a listop instead of a 0-ary
NotFound Zaba: maybe it was doing something.
pmichaud okay, I've convinced myself that either a hard drive or disk controller is failing somewhere 16:07
I'm hoping for the hard drive.
So, off to the store for a new one.
(and lunch)
bbl
jonathan Zaba: I'm sure someone will find a creative use... :-) 16:08
masak jonathan: thanks for fixing nothing :)
dalek r29589 | jonathan++ | trunk:
: [rakudo] Fix nothing. Patch courtesy of Carl Masak <cmasak@gmail.com>. masak++
jonathan annonymous - yes, oops, typo.
dalek diff: www.parrotvm.org/svn/parrot/revision?rev=29589
jonathan masak: You fixed nothing, I just applied the fix for nothing. 16:09
masak jonathan: I guess we both fixed nothing.
jonathan looks forward to writing in his Rakudo day report that he fixed nothing today.
NotFound But you are no hired personnel, so you don't have money for nothing.
Zaba jonathan, for poems! 16:10
of course..
masak in rakudo, nothing now runs twice as fast as before!
Zaba nice. 16:11
masak or at least more correctly
16:11 Theory joined
Zaba even though it sounds kinda silly.. 16:11
masak well, nothing was fun. see you around. 16:12
particle nothing is parsed and executed correctly in rakudo now 16:14
TimToady is nothing sacred?
NotFound Paradoxically good!
Zaba nothing is awesome 16:15
does nothing do anything?
why'd it be slow
TimToady if I say "rand while $x++ < 3" am I leaving nothing to chance?
Zaba does spectest_regression now run faster after nothing is fixed? 16:16
16:16 sjansen joined
TimToady I hope I broke spectest_regression when I fixed quoting.t to not use q:q 16:19
Zaba: in theory, Perl 6 does nothing well 16:21
Zaba kekeke
tewk Uhggg, I have a STRING* getting reused :( 16:35
GarulfoUnix hum i've got a question, Pugs interpreter is more complete than Parrot ?
TimToady more or less yes, depending on how you define it 16:36
16:42 gryphon__ joined
dalek r29590 | jonathan++ | trunk: 16:47
: [rakudo] [p6object] Make isa and can in the metaclass take the object to test as a first parameter, as specified in recent-ish S12 updates.
diff: www.parrotvm.org/svn/parrot/revision?rev=29590
jonathan our Num multi Control::Basic::sleep ( Num $for = Inf ) 16:50
TimToady: I'm guessing that is menat to return the number of seconds slept for?
16:55 silug joined
TimToady yes, though not all OSes provide it conveniently.. 16:56
but then, most OSes don't give you subsecond sleep via sleep() either
jonathan TimToady: For now is it OK to return the value that was passed in?
That feels a tad useless, though... :-) 16:57
japhb Anybody else seeing massive numbers of copies of two RT ticket responses (one about a segfault, and the other about strerror_r and real_exception)? 17:05
dalek r29591 | jonathan++ | trunk: 17:06
: [rakudo] Implement .WHERE.
diff: www.parrotvm.org/svn/parrot/revision?rev=29591
17:08 davidfetter joined
NotFound japhb: cotto_home talked about that this morning (CET) 17:09
japhb NotFound: oh, I see that now. It had almost scrolled out of my buffers. 17:11
NotFound around 6:00 GMT, I think. 17:12
TimToady jonathan: if parrot is to work cross-platform it will have to figure out how to measure subsecond times anywhere 17:13
btw, nothing is going away 17:14
jonathan Noo! Thing of all the Perl 6 poetry that will now be harder... 17:17
wknight-work For a platform that doesnt support it, subsecond sleep times should be rounded 17:18
Tene eval('nothing', :lang<perl6_with_nothing>)
wknight-work at least, that's what I would do if I were in charge
TimToady I don't think parrot is going to *fit* onto any machine that doesn't understand subsecond timers... 17:20
just whacked on S29, so now nothing is further from the truth 17:28
17:28 jhorwitz joined
tewk If I add a STRING ATTR to a PMC do I need to write a custom mark routine? 17:30
wknight-work I would, yes 17:31
Tene It's gotten to the point where I think someone's talking about lolcode whenever I see people using ALL CAPS for a few words. 17:33
wknight-work i can haz all caps?
Infinoid caps lock is cruise control for AWESOME
Tene Yes, but you still need to steer. 17:34
TimToady that's a bunch of bull 17:35
.oO(was it something I said?)
17:46
Infinoid no, it was nothing... 17:49
18:03 sjansen joined 18:10 cjfields joined 18:14 zostay joined 18:55 Zaba joined
nopaste "DietCoke" at 72.228.52.192 pasted "Can someone test this on something where dirsep != '/' ?" (43 lines) at nopaste.snit.ch/13621 18:56
18:57 DietCoke joined
DietCoke anyone on windows can test that patch for me? 19:00
NotFound Looks like almost nothing use Windows in the world X-) 19:02
19:03 Whiteknight joined
dalek r29592 | coke++ | trunk: 19:03
: [test] minor update to Smoke.pm that happens to also pass all the codingstd
: tests. Courtesy Michael Peters via RT #55954.
diff: www.parrotvm.org/svn/parrot/revision?rev=29592
DietCoke I have a windows box at home for parrot hacking, but was hoping someone could do a quick test for me so I could commit that patch now.
tewk Basic Jitted NCI stubs are working 19:08
Trying to find a vararg NCI call, which I don't support yet. 19:16
19:19 purl joined
dalek r29593 | coke++ | trunk: 19:19
: [codingstd] Simplify the way we generate the list of codingstd tests in order
: to make it easier to see what is getting skipped
diff: www.parrotvm.org/svn/parrot/revision?rev=29593
tewk Cool failing tests t/pmc/nci.t 19:21
wknight-work my computer at home is the worst 19:33
last thing I did before I left the house this morning was put it on standby
and it's been logging in and out of here all day
NotFound wknight-work: Wake on lan? 19:34
wknight-work i dont think so, at least, it's not a setting I ever selected
the mouse is really sensitive, and any slight breeze registers and wakes it up 19:35
NotFound I have had at the work some pc that randomly started up, until someone disabled the feature on them.
wknight-work I guess i'll have to look into that then 19:38
19:38 uniejo joined 19:39 Zaba_ joined 20:03 Zaba joined 20:17 {-} joined 20:20 teknomunk joined 20:36 Zaba joined 20:48 Zaba_ joined 20:49 donaldh joined
jonathan pmichaud: I'm back and around again, FTI. 21:00
*FYI
dalek r29594 | chromatic++ | trunk: 21:07
: [Rakudo] Fixed a POD error in Object.
diff: www.parrotvm.org/svn/parrot/revision?rev=29594
21:08 Zaba joined 21:18 Whiteknight joined
dalek r29595 | Whiteknight++ | gsoc_pdd09: 21:19
: [gsoc_pdd09] update to trunk r29594
diff: www.parrotvm.org/svn/parrot/revision?rev=29595
r29596 | chromatic++ | trunk: 21:24
: [PMC] Tided code in OrderedHash PMC.
diff: www.parrotvm.org/svn/parrot/revision?rev=29596
r29597 | chromatic++ | trunk: 21:26
: [src] Added three separate functions for hash marking, so that mark_hash() can
: check whether to mark some combination of keys and values once, not for each
: hash bucket. An optimizing compiler should inline them, but they may need the
: PARROT_INLINE hint.
diff: www.parrotvm.org/svn/parrot/revision?rev=29597
cjfields jonathan: here? 21:44
purl here are the symbols I've got for DynaLoader, tell me if I'm missing a bunch? pastebin.com/m22a98b14
cjfields ..bots...
purl, forget here
purl cjfields: I forgot here
jonathan cjfields: ano, som 21:45
cjfields: oops. Yes, I am.
cjfields an interesting thing came up when I was implementing .match 21:46
jonathan Oh?
purl Oh are you near redmond?
cjfields pmichaud indicated that .ACCEPTS should probably call .match instead of 21:47
jonathan purl, forget oh
purl jonathan: I forgot oh
cjfields doing the match itself
jonathan pmichaud is usually right, on S05 things. :-)
$str.match(/pat/); 21:48
cjfields yes he is :)
jonathan That makes it appear as a method on string.
So presumably ACCEPTS on a Regex is something like:
topic = 'prefix:~'(topic) # stringify it 21:49
topic.match(self) # or some such
cjfields the latter
purl the latter are much better at full on universe suppression
jonathan narrowly avoids kicking purl
cjfields pets purl 21:50
anyhoo...
.match would return a Match object but wouldn't set $/
jonathan cjfields: I think maybe stringify the topic first to make sure it's a string, so you have the match method.
OK.
cjfields However, a weird thing is happening; the PGE::Match is getting mapped to a Str for some reason 21:51
jonathan So you set $/ to be what .match returned, I guess, and then use prefix:? on the match object to get a true/false value to return, at a guess...
Oh.
Hmm.
cjfields www.nntp.perl.org/group/perl.perl6....g2084.html
jonathan wonders if it's getting auto-boxed somewhere. 21:52
21:52 paco joined
cjfields feeling noob'y at this point 21:52
I have .ACCEPTS getting the PGE::Match from .match, however 21:53
jonathan cjfields: Looking at the code, I don't see anything obviously wrong...
cjfields (and $/ is set correctly)
yes, I can't see anything either
jonathan OK 21:54
Let me just put a small patch I have locally in...
Then I'll try your match method and see if I can trace it.
dalek r29598 | jonathan++ | trunk: 21:55
: [rakudo] Implement WHICH in object. We now need to override it in the various value types, and then we can implement ===.
diff: www.parrotvm.org/svn/parrot/revision?rev=29598
cjfields okay. I'll have to check backlog to see how things go (going home). Thanks! jonathan++
jonathan OK, will see what I can do.
cjfields no big hurry; if needed we can start a ticket. It may be a mapping issue (in which case maybe pmichaud's HLL work could help). 21:57
22:02 Limbic_Region joined
jonathan Bizzare... 22:12
my $x = "foo"; say ($x.match(/o+/)).WHAT; # Match
Ah! Found it. 22:14
dalek r29599 | coke++ | trunk: 22:17
: [tcl] Move some spec tests from 'explode' to 'merely fail'
diff: www.parrotvm.org/svn/parrot/revision?rev=29599
22:17 kid51 joined
jonathan cjfields: When you're back - found it and wrote to the list. 22:18
'tis a bit suble, and I'm not sure what the fix is. 22:19
dalek r29600 | coke++ | trunk: 22:33
: [tcl] convert _tcl;__boolean to _tcl;toBoolean
: for code.google.com/p/partcl/issues/detail?id=58 22:34
diff: www.parrotvm.org/svn/parrot/revision?rev=29600
r29601 | jkeenan++ | trunk: 22:51
: Add a preposition to one 'die' message.
diff: www.parrotvm.org/svn/parrot/revision?rev=29601
jonathan Report: use.perl.org/~JonathanWorthington/journal/36958 23:02
dalek r29602 | coke++ | trunk: 23:26
: [tcl] pass a test in spec test's "dict.test"
diff: www.parrotvm.org/svn/parrot/revision?rev=29602
23:28 peepsalot joined
dalek r29603 | coke++ | trunk: 23:28
: [tcl] This VTABLE was silently dropped by the pmc2c compiler (RT #39313)
: allow it to be built.
diff: www.parrotvm.org/svn/parrot/revision?rev=29603
jonathan sleeps 23:41
23:44 Zaba_ joined