parrot.org/ - clean up those smolders for the release!
Set by moderator on 20 October 2008.
GeJ Good morning all 00:02
00:09 AndyA joined 00:11 Hinrik joined 00:37 kid51 joined
kid51 magnachef_ ping 00:37
magnachef_ pong 00:41
01:10 Andy joined 01:23 stockwellb joined
stockwellb Gents, is there PIR sugar for $P1 = subclass $P0, "Foo"? 01:24
strike that, I'm confusing the new keyword as in new 'Class' with newclass 'Foo'. I see my error. 01:28
01:37 kid51 joined
bacek_ msg masak 'if (Bool::True&Bool::False) { say "foo" } else { say "bar" }' - root of almost all problems with Junctions... 01:56
purl Message for masak stored.
bacek_ purl: good girl
purl thanks bacek_ :)
01:58 particle1 joined 01:59 magnachef joined 02:05 Andy joined 02:07 bacek joined
dalek r32324 | Whiteknight++ | calling_conventions: 02:59
: [calling_conventions] fix some conflicts, add some small changes that I made last week and never committed (go me!) and make it so it compiles.
diff: www.parrotvm.org/svn/parrot/revision?rev=32324
Coke Whiteknight: ping 03:05
Whiteknight coke: pong 03:07
Coke: double-pong 03:09
speak now or forever hold your peace. It's getting to be my bedtime 03:17
Okay, I'm off now. talk to you later 03:19
03:28 Ontolog joined 03:49 Psyche^ joined
stockwellb I'm trying to pass as a string both the namespace and function name into get_global. I can't figure out the correct syntax. Help? 03:56
chromatic Use a key instead for the namespace. 03:59
$P0 = get_global [ 'some'; 'namespace'; 'keyed' ], 'my fun global name'
stockwellb right that works, but lets say get global is in a sub that I call with different namespaces. How then do I construct the key? 04:00
chromatic You can split a string into an array or push into the array or look up the namespace some other way. 04:01
stockwellb I'm sorry if I'm coming off dumb as a stump, but I want to call the sub get_global from within a sub that has a parameter for both the namespace and sub within said namespace. I can hard code the namespace and it works. I don't get how to soft code it. 04:04
chromatic How do you know what the namespace will be though? 04:06
You need to transform that parameter into a Key (which is a real pain, because we're not good at Keys) or a ResizableStringArray.
stockwellb I've 3 includes, each within it's own namespace
nopaste "stockwellb" at 70.160.222.145 pasted "get_global parameters?" (44 lines) at nopaste.snit.ch/14453 04:09
stockwellb could you look at the sub build_role?
I really meant to add a please in there. Grandma would not be happy with me. 04:10
chromatic That looks reasonable to me. 04:12
stockwellb as a string ns doesn't work.
your saying I need to convert it to a ResizableStringArray and then pass it to get_global? 04:13
chromatic Yeah, there's no get_global STRING PMC
You might use find_global instead though.
I can never remember which one is the Right One and which one is the Old One To Delete.
stockwellb Ok, I'll look up find_global. 04:14
chromatic There is a find_global PMC STRING STRING, which I think would do what you need.
perldoc src/ops/var.ops
stockwellb thanks for the pointer, and for looking at my pathetic code. Just tyring to learn.
chromatic It's not pathetic. The difference between those two opcodes is genuinely confusing. 04:15
tewk_ I have to go read the opcode source everytime I want to use namespace functions. 04:16
chromatic We should finally remove the one we don't want to use anymore (get_global, I believe). 04:17
04:18 dmknopp left
stockwellb I'm just trying to play with composition and yet still write good code. First came the .include, next logical necessity was .namespace. Then came how do deal with namespaces. Learning ontop of learnin ontop of ... 04:18
04:19 MariachiElf joined
chromatic Hm, we have some _global_ opcodes in DEPRECATED.pod listed as post 0.5.0. 04:19
Post-dinner, I might just remove them.
stockwellb bingo! find global has STR, STR! 04:20
chromatic stockwellb, it looks like those are deprecated too. 04:21
Mind if I suggest get_hll_global?
... except there's no get_hll_global PMC STR STR
Grr.
Forget I said that. Use find_global.
purl chromatic, I didn't have anything matching i said that. use find_global
stockwellb I know, I just saw that.
chromatic Tewk, if I forget to complain about this in #ps tomorrow, will you complain as my proxy? 04:22
tewk_ Yep, adding to my report 04:23
chromatic Thanks.
MariachiElf Are the Squaak tutorials supposed to work still? 04:32
I'm having trouble making "Say" do anything
print("Textgoeshere") works....
stockwellb chromatic, I split the parameter ns and pass it to get_hll_global. Nice.
chromatic Glad to help. 04:34
stockwellb chromatic, while I have your attention, might I ask you one more question, this time regarding your article on roles. 04:35
chromatic Sure, feel free. 04:37
stockwellb In that article you said, regarding what a role is, that it's a named set of capabilities, with optional default behavior. I don't quite get the optional part. Keep in mind I'm a noob, but in PIR if a role doesn't get a method assigned to it, it doesn't seem to have much capability. I don't understand the *optional* concept here. 04:40
chromatic Sometimes just a name is enough. 04:42
Consider a Serializable role.
stockwellb Damn if that wasn't a Zen Koan!
chromatic That role implies that you can freeze and thaw an entity into a bytestream. 04:43
It's not easy to have a default implementation, but you can say "Anything that *does* the Serializable role must provide its own freeze and thaw methods."
Alternately, you could provide default implementations which throw an exception when called, but that's runtime behavior, not composition time behavior. 04:44
stockwellb I see a label indicating capability. I wasn't looking at it that way.
chromatic It's a named unit of behavior. You draw a circle around methods and attributes and say "Even if this set of behaviors and data isn't enough to be a class on its own, I can name it". 04:45
MariachiElf chromatic: I'm sure I'm talking way out of turn here, but for a default implementation -- assuming there aren't better candidates -- EXI (Efficient XML Interchange) -- which if you're not familiar is a standardized binary translation of XML that seems to get very good results 04:46
chromatic Then you refer to objects and classes in terms of those bundles of behavior.
MariachiElf, that's a possibility, but the default implementation can't know what's public data and what's private data and what's implementation-specific (cache?) data.
Use the default serialization for a User object and you may ship hashed passwords over the wire, and that's not a great idea. 04:47
MariachiElf chromatic: I guess I just figured it'd all end up in some XML model and dumped -- I'm assuming you're saying not everything needs to be written out
stockwellb I get your bundles of behavior, I think I was stuck just looking at the role without methods thinking it had no use and not thinking that it could help to understand other methods that the class might impliment and how one might expect them to behave. 04:48
chromatic <zen type="more">the nature of serialized data depends on the purpose of serialization</zen>
stockwellb, that's the part most people don't get at first.
stockwellb I feel so enlightened, thank sensei. 04:49
chromatic It's a type system which works just fine with class-based or prototype object systems but which allows for finer-grained code-reuse than a single class.
stockwellb s/thank/thank you
chromatic In return, please file bugs when our documentation is incomplete, unclear, or wrong :) 04:50
stockwellb I've run into problems in c# with code reuse. Things that I needed but didn't seem to belong in the class.
I shall do as the sensei commands! 04:51
MariachiElf chromatic: It seems that another name for Role could be "Interface"
stockwellb From a c# perspective, I don't see that. Interfaces seem more contractual and don't really help with code reuse like a role can. 04:52
chromatic It could, but then people think of Java interfaces, which are broken in important ways.
stockwellb The second I started to grok the trait/role I imediately wished that I could have used it on some c# projects I've done. 04:53
chromatic <zen type="full">you can build a traditional inheritance-based type system with a role-based system, but not vice versa</zen> 04:54
MariachiElf chromatic: This touches on another thought I've been grappling with as it relate to code reuse -- versioning of the "bundles of behavior" 04:55
stockwellb My carriage is about to turn into a pumpkin. Chromatic, thank you for taking some time to help me with PIR. I'm very thankful that you would take the time to help such a newcommer.
chromatic You're welcome. It's the only way we make more experts to help more newcomers. 04:56
MariachiElf is heartened at being a newcomer.
04:56 johbar_ joined
stockwellb Well goodnight all. 04:57
MariachiElf Anyone have a moment to tell me if: say "Squaak!" is supposed to work out of the box 05:03
for the Squaak language and Tutorials?
chromatic Dunno; kj should know. 05:06
particle1 or jonathan may be able to take a look. 05:07
MariachiElf I'm guessing not
the factorial.sq example runs fine
Just not the "say" command from the tutorial
I also had a problem where it was trying to run over 100,000/29 tests 05:09
chromatic That's clearly wrong. 05:10
MariachiElf pastebin.com/m65f459c4 05:11
I did a ^C to stop it -- I let it go once and it just ran off to infinity 05:12
This is SVN checked out this afternoon
(afternoon in Los Angeles (PST))
chromatic There's the problem! You can't trust LA. 05:14
MariachiElf :) 05:15
davidfetter o/` nobody walks in LA o/` 05:45
anybody going to yapc::china?
MariachiElf davidfetter: While that's true -- it sometimes feels like it would be faster if I did ;) 06:09
davidfetter had a gig in burbank awhile back 06:11
walked everywhere--couldn't afford a rental car for what they were paying :P 06:12
06:28 Theory joined
GeJ That was quite a long nommin' 07:15
chromatic The cat wanted some attention. Then the other cat wanted some attention. 07:16
GeJ I feel you. I suffer from the same feline conspiracy. 07:17
07:26 uniejo joined 07:53 Zaba joined 08:48 Ademan joined 09:03 tomyan joined 09:20 barney joined
jonathan hi all 10:14
moritz hi jonathan ;) 10:15
jonathan gets a latest buid and hits the RT queue 10:16
10:20 kj joined
jonathan Ooh - I see test fails in spectest_regression. 10:42
moritz related to junctions? 10:49
jonathan t\\spec\\S03-junctions\\boolean-context.raku 38 1 38 10:50
t\\spec\\S03-junctions\\misc.rakudo 76 3 19 63 65
t\\spec\\S29-list\\pick.rakudo 15 1 15
moritz probably related to masak reverting a commit yesterday 10:52
and he didn't revert the corresponding commit in the pugs repo 10:53
jonathan Ouch! Segfault... 10:54
moritz jonathan: this one: perlcabal.org/svn/pugs/revision/?rev=22855
if you revert it, all these junction tests should pass again 10:55
moritz doesn't have a checkout here ;(
jonathan ah, ok
thanks
Hmm. Turns out that calling into the PIR compiler while inside a :load :init sub segfaults. 11:14
Or at least, that's how it looks... :-S
kj jonathan: I'm not sure, but I may know why that is 11:18
I know that things go wrong with :immediate subs
jonathan Suggestions welcome, I've not come up with anything good yet... 11:19
kj I think I posted a bug or todo about this some time ago. The culprit is in compilers/imcc/pbc.c
jonathan Yup, that's where we segfault.
kj there's file-global structure called globals, which keeps pointers to bytecode segements
jonathan In verify_signature
Ah.
kj not sure about that..
jonathan Well, it may well be because we end up looking at an incorrect segment. 11:20
kj but if IMCC is compiling, it uses the structure; if another nested compilation is done, it'll overwrite these fields
it may be some different problem in your case, though.
jonathan It sounds likely - :laod subs are done while we're still inside IMCC.
kj yes I think so... I kinda forgot what they all mean 11:21
anyway; solution would be to put the struct inside the IMCC_INFO thingy 11:25
jonathan It appears that, maybe, just moving the code that does the fixups to after we've cleaned up IMCC's mess, so we aren't trying to use that bit of it recursively, also helps. 11:28
It fixes my problem - doing a make test on Parrot to see if there's anything bad that comes up. 11:29
kj you moved the code? 11:30
ah if that works, that's great :-)
jonathan We'll see...
No new test failures in Parrot. 11:34
kj nopaste? 11:35
clunker3 pasta.test-smoke.org/ or paste.husk.org/ or nopaste.snit.ch:8001/ or rafb.net/paste or poundperl.pastebin.com/ or paste.scsys.co.uk/
purl nopaste is at nopaste.snit.ch/ (ask TonyC for new channels) or rafb.net/paste or poundperl.pastebin.com/ or paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at www.extpaste.com/
nopaste "kjs" at 193.1.104.8 pasted ":immedate load_bytecode" (11 lines) at nopaste.snit.ch/14457 11:36
kj jonathan: if you have a spare minute, can you test whether the nopasted snippets work?
jonathan kj: Hmm. That one doesn't appear to work... 11:37
Did it work before?
kj no, it didn't 11:38
should be in 2 file, eh
*2 files
but I was just curious; I guess that's a different issue then. 11:39
jonathan It's the same but different.
We're hitting the same problem - that IMCC isn't properly re-entrant. We're crashing in the same place.
But unfortunately, we call into IMCC again much deeper this time. 11:40
kj well, I'm working on the long-term solution :-)
jonathan That is, it ain't in a place that I can just move it to after we're done with the current IMCC run.
Yes. :-)
Have you got it to emit code yet?
kj I see. But I think movign the data into IMCC_INFO would fix it.
but that's quite a hack; that would cost at least a full day to fix it. 11:41
jonathan I'm struggling to see exactly what it is that needs moving.
Yeah. I think it would take quite a while to do.
kj the struct globals I think
jonathan I don't really fancy trying it.
If I'm going to spend a day hacking on fixing PIR compilation, I'd rather spend the day on pirc... 11:42
kj who would :-)
jonathan :-)
dalek r32325 | jonathan++ | trunk: 11:49
: [imcc] If in a :load :init sub we called back into IMCC to compile some more bytecode, we got a segfault. This patch just does the calling of those after we've done some clean-up of the IMCC used to compile the :load :init sub. Doesn't cause any new failures in Parrot test suite, nor Rakudo, so hopefully it's fine.
diff: www.parrotvm.org/svn/parrot/revision?rev=32325
r32326 | jonathan++ | trunk: 11:52
: [rakudo] A change a while back got us compiling modules right away during compile time. Unfortunately, that broke PIR module usage. Reverting the change would have meant we couldn't use classes from other modules, though. With this workaround - just doing the load of the module earlier on - we get both to work. In the long run, I expect we will need to emit 'has this module been loaded yet' style code into $?INIT, so we can load it at compile time, but if w
diff: www.parrotvm.org/svn/parrot/revision?rev=32326
12:06 iblechbot joined
dalek r32327 | jonathan++ | trunk: 12:19
: [rakudo] Make recursive use statements not lead to an infinite recursion. Patch from RT#60160 and courtesy of Chris Dolan <chris@chrisdolan.net>.
diff: www.parrotvm.org/svn/parrot/revision?rev=32327
jonathan moritz: Know if there are any tests where we have an array on the LHS of a smatchmatch against a regex? Or if I add some, should they be in the regex tests or the smartmatch tests? 12:38
moritz: Actually, have added a new test file, didn't see a good place in anything existing. 12:45
dalek r32328 | jonathan++ | trunk: 12:58
: [rakudo] Make smart-matching an array or hash against a regex do what is specified in S03.
diff: www.parrotvm.org/svn/parrot/revision?rev=32328
tewk_ kj: should heredoc even build anymore 13:23
kj tewk_: no not really. Just make pirc should do the trick 13:29
but editing the pirc.in file is a pain for me; my editor will change tabs into spaces, so I havent gone through the trouble of fixing that.
tewk_ I'll have a cleanedup pirc.in for you in a few minutes 13:30
kj if you know how to fix the @libparrot@ variable for windows, that'd be great ^-^ 13:31
dalek r32329 | jonathan++ | trunk:
: [rakudo] Fix enums with a single value.
diff: www.parrotvm.org/svn/parrot/revision?rev=32329
r32330 | jonathan++ | trunk:
: [rakudo] Add spectest for anonymous enums to spectest_regression.
kj I'm always linking manually when developing..
dalek diff: www.parrotvm.org/svn/parrot/revision?rev=32330
jonathan slovak class time, back in a bit 13:33
13:35 grim_fandango joined
tewk_ kj: is macroparser used standalone anymore either? 13:36
nopaste "tewk" at 155.97.237.62 pasted "pirc.in.diff" (94 lines) at nopaste.snit.ch/14458 13:45
kj tewk_: both the heredoc scanner and the macro preprocessor are now all intergrated into pirc; heredoc spec is still a separate flex file, but all sources can now be found in compilers/pirc/new 13:47
I'm not ready yet to delete the old directoryes (/macro, /heredoc), but in future they'll go.
szabgab anyone here have tried the Parrot plugin of Padre? 13:49
kj tewk_: all commands to do the actual compilation (invocation of the compiler) seem to be gone in that nopaste.. 13:58
Hinrik tirania.org/blog/archive/2008/Nov-03.html # does parrot allow something like this? 14:00
14:01 Ontolog joined
PerlJam Hinrik: The idea is for it to allow things just like that 14:03
Hinrik cool
PerlJam but someone has to write it. That's not out-of-the-box functionality right now :) 14:05
14:10 gryphon joined 14:38 Debolaz joined
pmichaud Good morning 14:43
particle1 hi there
tewk_ kj: yep it uses the default rule for .c files, does it work in windows? 14:45
kj: do you use windows
kj nopaste your windows link line and I'll try to get it to work 14:47
kj tewk_: Yes I'm on windows; I use the following to link, but when running pirc, I need to have libparrot.dll in compilers/pirc (I usually just copy it from ../.. -- parrot's root dir.) (more) 14:49
link /nodefaultlib /out:pirc.exe *.obj kernel32.lib msvcrt.lib ..\\..\\libparrot.lib 14:50
in case your IRC client does smileys: /out: pirc.exe
particle kj: perhaps you should be building from parrot root, like imcc 14:51
kj obviously, requiring the libparrot.dll in compilers/pirc directory is not desirable, but I take it that can be solved later on
particle: yes maybe that would be an option; would the executable be located in parrot root dir then as well?
particle you can put the executable wherever you want it 14:52
kj long term, I'd like to say nmake pirc from root dir, so that it uses pirc as the pir compiler, not imcc
so in the transition phase that I had in mind, you can build parrot with either imcc or pirc 14:53
particle you can make it a configure-time selection, defaulting to imcc
14:53 jhorwitz joined
kj that'd be nice yes. But pirc's not ready for that yet; don't want to present the option at this point; too much issues to fix. 14:54
particle do you have a TODO list? 14:55
kj I have XXX scattered all over the source code...
good idea, though. I had thought about filing RT tickets, but i don't want to clutter the rt too much 14:56
particle for an idea, you can see svn.pugscode.org/pugs/t/TASKS 14:57
or rakudo's ROADMAP 14:58
tewk_ kj: does the makefile patch work on windows?
kj tewk_: gimme a few min.
tewk_ no problem I'm just curious. 14:59
dalek r32331 | tewk++ | trunk: 15:05
: [pirc] fix pod error
diff: www.parrotvm.org/svn/parrot/revision?rev=32331
nopaste "tewk" at 155.97.237.62 pasted "pirc.rev2.diff" (130 lines) at nopaste.snit.ch/14459 15:09
tewk_ kj that patch makes make test work as well as running prove in compilers/pirc 15:10
kj tewk_: I have little experience in actually applying .patch files; but I think it worked. Linking however didn't work;
cannot open file new\\main.obj
so I might have messed up while patching 15:11
tewk_ kj: does new\\main.obj exist?
kj nope
tewk_ I haven't done anything to fix windows linking yet. (in the patch)
kj and I see the line is missing in pirc.in, now 15:12
i'm adding and remaking makefile
particle i'm checking a slightly modified patch, too
tewk_ I stuck new/main in $(OBJS)
mainly because new/main.c was in SOURCES 15:13
I'll fire up my windows vm :( and do my own testing :)
kj thanks a bunch :-) I kind of copied snippets of makefiles from other files, not understanding the standard parrot makefile stuff.. 15:14
particle grr, i can't regenerate the makefile for some reason 15:17
jonathan is back 15:20
jonathan waves a pmichaud 15:21
s/a/at/ ! 15:22
Tene waves particle back at jonathan. 15:25
15:32 magnachef joined 15:40 davidfetter joined
Coke has voted 15:43
moritz ok, if I don't like the result I can blame Coke ;) 15:44
tewk_ voted at 7:00am MST this morning 15:45
particle voted days ago as he's a permanent absentee
tewk_ I got there at 6:55 am, there were about 15 people ahead of me in line, I was out by 7:15, but the line was getting longer. 15:46
pmichaud voted last week.
jonathan feels left out 15:47
pmichaud although we just went by our polling place, and the lines aren't very long.
jhorwitz was in an out
pmichaud jonathan: did you feel left out of the past eight years? ;-)
particle :)
jonathan If you set the namespace on a block, does it want an array, or a :: joined string? 15:49
Or can it handle either?
pmichaud array, I think.
jonathan And Perl6::Compiler.parse_name($name) is supposed to return an array from parsing a name?
pmichaud yes.
jonathan wonders why on earth he's ending up getting .namespace [ '1' ] emitted...
nopaste "particle" at 98.232.28.49 pasted "rakudo: isa patch leads to spectest failures" (1280 lines) at nopaste.snit.ch/14462 15:50
pmichaud (all compilers do that, per pdd21)
jonathan It seems like not overly much changed while I was away, in that I seem to still understand everything I've come accross so far today. :_) 15:51
pmichaud no, I haven't accomplished much lately.
lots of distractions around here. :-(
particle me neither
jonathan :-(
particle lots of rabbit holes for me
jonathan Buy something to catch the rabbits. 15:52
jonathan lends particle a dog
pmichaud the big change I'd like to see us make is to get the value/container types working. I've been a little reluctant to do that because it would break so much existing code (espec param passing)
and I'm actually glad I waited, since the grammar for parameters changed somewhat last week. 15:53
(in STD.pm)
jonathan We've got a reasonable number of tests to help us know just how much we've broken.
But yes, it'll be a lot of work.
pmichaud particle: do you get the spectest failures for .isa if you just change one or two .isa's? 15:54
particle no, it depends on which i change
pmichaud okay, that sounds like the .isa method itself is working, then.
particle in fact, there's one that if i change, Test.pm doesn't compile
sub build_call($args) {
if $args.WHAT() ne 'Op' || $args.name() ne 'infix:,' {
if i change that WHAT to isa, Test.pm fails to compile to pir 15:55
jonathan Ah. I get an array back that just has a single element with 1 in it. 15:56
particle tewk: the patch fails, because the object files are not in the new/ directory 15:59
tewk_ particle: using the default rules that is where they should be. The old rules method built to compilers/pirc. 16:00
tewk_ trying to get a patch.exe for windows
particle you don't need patch 16:02
jonathan OH DUH
jonathan was being stupid
particle just try adding new/pirparser$(O): new/pirparser.c new/pirparser.h
then make new/pirparser.obj
i mean new\\pirparser.obj 16:03
pmichaud particle: I'm working on .isa -- just a bit 16:04
btw, is parrotsketch in 2h30 ?
particle time?
purl time is 16:04:55 2008 and (did you mean "clock"?) or flowing like a river
particle yes, 2:25 16:05
pmichaud (daylight savings time hits this week)
although I have little to report.
jonathan pmichaud: Is the latest proposal you had on container stuff somewhere? 16:06
jonathan wants to read through it again
nopaste "tewk" at 155.97.237.62 pasted "particle, did you get this" (9 lines) at nopaste.snit.ch/14464
pmichaud www.pmichaud.com/perl6 (somewhere there)
www.pmichaud.com/perl6/references.txt 16:07
particle tewk: yes, i'm committing a fix now
tewk: see 32332
dalek r32332 | particle++ | trunk: 16:08
: [config] need to convert slashies on windows
diff: www.parrotvm.org/svn/parrot/revision?rev=32332
jonathan pmichaud: Thanks. Will give it another read-through. 16:09
Maybe we can hack on this stuff a bit at/around the summit.
pmichaud I was kinda hoping we'd get to it before then :-)
depends on your schedule a bit, though.
jonathan Well, we can try that too.
The summit is really not that far away.
I guess we're going to do a branch? 16:10
particle i can probably help, too
jonathan And then try for the major changes.
particle especially in a branch
jonathan And then triag.
particle e
jonathan 2.71828183 16:11
pmichaud: Are you planning to get this out of the way before starting on the protoregexen? 16:12
pmichaud jonathan: yes. 16:15
jonathan OK. Let's dig in soon then! :-) 16:16
jonathan doesn't want to block protoregexes.
pmichaud: Really, we can start on it whenever you wish. 16:20
I've got a bunch of bonus Rakudo days I guess, because I was away for a month.
pmichaud today isn't very good for me, but tomorrow-fri should be good. 16:21
jonathan OK. Friday is the Twin City perl workshop...
Well, one day/city of it. :-)
pmichaud okay, so tomorrow and thu
I'm also wanting to get lexicals taken care of
that's already in a branch
jonathan I should probably do @OTHER tomorrow. How about Thursday?
pmichaud okay, thursday it is. 16:22
jonathan Great.
16:23 Theory joined, braceta joined, UltraDM joined 16:27 UltraDM joined
Coke ... is that @SIGNIFICANT_OTHER? ^_^ 16:31
jonathan Coke: No, @OTHER_JOBS. :-(
dalek r32333 | jonathan++ | trunk:
: [rakudo] Fix handling of classes with Name::Spaces::Like::This, so their methods end up in the correct namespace. Also add a test for it to spectest_regression.
diff: www.parrotvm.org/svn/parrot/revision?rev=32333
jonathan @SIGNIFICANT_OTHER.elems # 0 :-(
16:44 barney joined 16:49 Andy joined
Hinrik a polyamorist, eh? 16:49
moritz jonathan++ # many bug fixes today 16:50
particle is very curious to see if jonathan's patch fixes his import problems... 16:52
pmichaud 15:54 <particle> if $args.WHAT() ne 'Op' || $args.name() ne 'infix:,' { 16:54
when changing that to .isa, did you remember to negate the test? 16:55
particle hee, probably not!
lemme check
jonathan particle: Got a ticket for them? 16:57
dalek r32334 | jonathan++ | trunk:
: [rakudo] Add two more spectests we pass or pass some of for OO to spectest_regression.
nopaste "pmichaud" at 76.183.97.54 pasted "this does get through compiling Test.pm for me" (39 lines) at nopaste.snit.ch/14466
dalek diff: www.parrotvm.org/svn/parrot/revision?rev=32334
pmichaud ...and so far it seems to be running spectests okay.
particle jonathan: we renamed spectest_regression to spectest btw 16:59
pmichaud spectest_regression still works, but 'make spectest' just runs the regression suite for now 17:00
jonathan Oh 17:01
That'll save me some typing. :-)
moritz make sp<tab> ;)
17:02 davidfetter joined
jonathan moritz: Doesn't work on Win32 / nmake. :-( 17:02
Though I do sometimes try it by accident.
17:02 rurban joined 17:05 hercynium joined
particle pmichaud, it totally looks like stupidity on my part by ignoring 'ne' when converting to isa. 17:05
pmichaud++ i'll test and commit soon
pmichaud okay
lunchtime here. parrotsketch is in 85 -- I may be a few minutes late.
jonathan pmichaud: I'm looking over the ticket 57400
oh, you're going
dalek r32335 | jonathan++ | trunk: 17:06
: [rakudo] Add a missing sanity check when doing roles, so we can produce a good error message rather than an odd unhelpful one.
diff: www.parrotvm.org/svn/parrot/revision?rev=32335
pmichaud I can look at 57400 -- just a sec
jonathan OK, it's the %*ENV.
pmichaud I suspect it's in the Env PMC type
17:06 rurban_ joined
jonathan Yeah. 17:06
I was pondering if we should copy it to a Perl6Hash, but then remembered modifictions to it need to affect the environment... 17:07
pmichaud correct
my %s = %ENV will be fixed as part of list assignment, undoubtedly.
for the methods, we could just add them to the Env namespace for now.
although those will likely be fixed as a result of fixing .iterator 17:08
jonathan Hmm
Maybe best to wait until the list assignment changes are done?
pmichaud that'd be my guess. We'll ultimately end up using some sort of tied hash, I suspect. 17:09
jonathan Since assignment semantics will be changing too.
Right, that's what I was thinking.
17:09 sjansen joined
pmichaud so, something that ends up wrapping the Env PMC to look more like a Hash. 17:09
jonathan OK, will leave it for after assignment changes. 17:10
Putting a note on the ticket to say so.
pmichaud jonathan++
okay, lunch. back in approx 80
jonathan enjoy 17:11
dalek r32336 | particle++ | trunk: 17:24
: [PCT] add 'isa' method to PCT::Node, which retrieves the current class's metaclass and calls its 'isa' method
diff: www.parrotvm.org/svn/parrot/revision?rev=32336
r32337 | particle++ | trunk: 17:34
: [pirc] metadata update
diff: www.parrotvm.org/svn/parrot/revision?rev=32337
17:39 johbar joined
particle crap, found a segfault 17:51
..\\..\\parrot perl6.pbc t\\spec\\S12-class\\declaration-order.t
jonathan oh? 17:52
purl oh is there a standard rule that defines a number of estimated man-hours per ticket?
jonathan That was passing for me here...
17:52 cognominal joined
jonathan I stuck it into the spectests like really recently. 17:52
Today. 17:53
particle it could be my local changes
im' attaching to process now to debug
jonathan particle: Oh, hmm 17:56
It actually segfaults here - but only under the harness. 17:57
particle that's not what i'm seeing
purl seeing is believing
particle the difference could be my changes, though
but -G doesn't help
jonathan C:\\Consulting\\parrot\\trunk\\languages\\perl6>..\\..\\parrot perl6.pbc t\\spec\\S12-cla
ss\\declaration-order.t
1..2
ok 1 - base before derived: lives
ok 2 - derived before base: dies
particle c:\\Users\\particle\\dev\\parrot\\trunk\\languages\\perl6>echo %ERRORLEVEL% 17:58
-1073741819
purl -1073741819
17:58 ruoso joined
jonathan C:\\Consulting\\parrot\\trunk\\languages\\perl6>echo %ERRORLEVEL% 17:58
-1073741819
purl -1073741819
jonathan Ah.
particle see
jonathan So it complets and *then* segfaults (silently here).
:-(
particle yep
the harness recognizes the non-zero return and reports failure 17:59
jonathan yeah
particle the shell doesn't care
jonathan Right. Hmm.
Am deep in something else at the moment, but will run it under a debugger and see where we segv later.
Or feel free to do that if you're not in the middle of something else. 18:00
particle i'm busy, but will also queue it
dalek r32338 | tewk++ | trunk: 18:02
: [pirc] Makefile for windows
diff: www.parrotvm.org/svn/parrot/revision?rev=32338
kj tewk++ # Makefile for windows works great 18:07
dalek r32339 | tewk++ | trunk:
: [pirc] Makefile tab fix for non windows platforms
diff: www.parrotvm.org/svn/parrot/revision?rev=32339
tewk_ kj: it should link for you now. You will still have to copy dll.
kj it links well, yes 18:08
tewk_ linking is broken on non windows, but I will fix it.
kj ok, great. thanks a lot!
tewk_ maybe this evening
18:09 masak joined 18:15 chromatic joined 18:21 Wknight8111 joined 18:23 purl joined
chromatic #ps in 7 18:24
I'll try not to be late.
particle jonathan, i'm committing the .isa refactor now. can you do a sanity build/spectest? 18:25
sjn \\o 18:26
Wknight8111 doesn't #ps respect daylight savings time?
jhorwitz tewk_: ping
particle parrotsketch?
purl well, parrotsketch is a status meeting for parrot core committers held every Tuesday at 18:30 UTC in #parrotsketch
moritz Wknight8111: #ps is defined in terms of UTC
tewk_ jhorwitz: yes
Wknight8111 has to go update his google calendar now...
particle there is no daylight savings time in utc
jhorwitz tewk_: setting nci_info members as constant strings appears makes mod_parrot segfault (r32203 )
s/appears// 18:27
sjn was thinking of having a try at fixing Rakudo tests at the Oslo.pm meeting tomorrow
any ideas on how to make that work well? :)
dalek r32340 | particle++ | trunk:
: [rakudo] refactor action methods to use PCT::Node's 'isa' method
diff: www.parrotvm.org/svn/parrot/revision?rev=32340
r32341 | kjs++ | trunk:
: [pirc] more PASM grammar bits refactored. 18:28
diff: www.parrotvm.org/svn/parrot/revision?rev=32341
jhorwitz i'll open a bug for it
tewk_ jhorwitz: not setting them as constant strings makes everything segfault ie pge, building parrot.
jhorwitz hm.
chromatic You need more COW... uh, bell.
jhorwitz nci_info->pcc_params_signature ends up as an uninitialized string 18:29
chromatic That problem. Yeah, that's a tricky one.
jhorwitz chromatic: is there a ticket already open for that? 18:30
tewk_ jhorwitz: short-term comment tools/build/nativecall.pl:308 to disable jitted NCI
jhorwitz i can do that. :)
tewk_ afk: 15 minutes 18:31
purl i heard 15 minutes was kind of tough :)
pmichaud #ps in -1
chromatic I don't see a ticket for it.
jhorwitz i can submit one
jonathan particle: I've got a vaguely scary patch here that I'm working on/testing - can happily check after I've got that done.
davidfetter who's going to yapc::beijing?
particle thanks, jonathan, i'm building on win32 and linux atm
chromatic My theory is that the JIT STRING conversion needs a Parrot_make_COW_reference. 18:32
bacek purl: ps
purl ps is postscript or process status or see "parrotsketch"
bacek purl: parrotsketch
purl it has been said that parrotsketch is a status meeting for parrot core committers held every Tuesday at 18:30 UTC in #parrotsketch
moritz congratulations Wknight8111! 18:34
Wknight8111 thanks! 18:35
davidfetter figures congratulations are in order, and guesses it might be nuptials
kj Wknight8111: you got married?
Wknight8111 I did, last saturday 18:36
pmichaud yes, congrats Wknight8111. May you be as happy in your marriage as I am in mine. :-)
kj congratulations!
purl congratulations! are you joel?
chromatic WINDMILLS DO NOT WORK THAT WAY, purl
purl chromatic: excuse me?
Wknight8111 she puts up with my particular brand of bullshit, and I can't ask for more then that )
jhorwitz my favorite morbo line... 18:37
chromatic Just don't tell her the generic brand is just as effective, and far cheaper. They don't spend as much on marketing.
18:43 magnachef joined 18:46 MariachiElf joined
moritz particle: I get a backtrace from t/spec/S12-class/declaration-order.t 18:48
ok 2 - derived before base: dies
src/inter_call.c:390: failed assertion 'PObj_is_PMC_TEST(sig_pmc)'
particle: probably related to your last commit, it was fine before 18:49
allison did we have a time change?
particle moritz: it's related to a patch jonathan committed earlier today
allison daylight savings time?
purl well, daylight savings time is a scam to make me fuck with Eggplant's sleep schedule more than necessary. or an invention of Sir Sandford Flemming or really daylight nuisance time or yaccv
particle moritz: it was segfaulting on windows only before my commit 18:50
moritz particle: ok, then I'll hilight jonathan ;)
particle allison: yes, we had a time change
it's 18:50UTC atm
allison particle: blech
Wknight8111 that's what I said! 18:51
well, paraphrasing
purl hmmm... paraphrasing is saying the same thing, differently.
particle paraphrasing is also differently saying the same thing
purl okay, particle.
jhorwitz chromatic fyi: RT #60338 for the NCI segfault 18:52
chromatic Thanks!
masak purl: paraphrasing is also saying the same thing in another way 18:54
purl okay, masak.
Coke ps? 18:56
purl ps is, like, postscript or process status or see "parrotsketch"
Coke time?
purl i heard time was 18:56:03 2008 and (did you mean "clock"?) or flowing like a river
Coke bah
masak clock?
purl masak: LAX: Tue 10:56am PST / CHI: Tue 12:56pm CST / NYC: Tue 1:56pm EST / LON: Tue 6:56pm GMT / BER: Tue 7:56pm CET / IND: Wed 12:26am IST / TOK: Wed 3:56am JST / SYD: Wed 5:56am EST /
masak bacek: re 'root of almost all problems': yes, but is it fixable? 18:59
PerlJam ovid joins parrot? cool.
jhorwitz tewk_: your short-term fix worked
bacek masak: in progress
masak bacek: great news. 19:00
pmichaud why is that a problem?
bacek rakudo: if (Bool::True&Bool::False) { say "foo" } else { say "bar" } 19:01
pmichaud why is that a problem?
polyglotbot No output (you need to produce output to STDOUT)
pmichaud oh, you mean the fact that it doesn't work. Yes, this is because Junctions are not collapsing properly in boolean context, I suspect.
bacek pmichaud: Junctions missed 'get_bool'. My patch from #60168 broke November 19:02
pmichaud: indeed. I'm making patch for this AT
s/AT/ATM/
pmichaud Junctions should define a .true, and we need to fix .true in Object to do the right thing.
chromatic I tried that a while ago.
pmichaud as a temporary workaround I'm willing to allow a get_bool on Junction directly
masak pmichaud: I was very surprised the other day when I noticed that November died in an impossible branch of an if statement. 19:03
bacek pmichaud: ok
chromatic <governor type="roman" location="judea">What IS truth?</governor>
masak Pilate, the first postmodernist
jhorwitz allison: i probably missed this a while back, but is pdd22 up to date or do you have other draft docs for IO?
particle <president name="clinton">it depends on what the meaning of the word "is" is</president> 19:04
pmichaud Perl 6 keeps redefining "is".
TimToady smile when you say that 19:05
allison jhorwitz? pdd22 is up-to-date
diakopter pmichaud: Perl 6 redefines the definer. and the definist!
allison s/?/:/
jhorwitz excellent.
pmichaud Perl 6 is proof that the act of observing something affects the observation itself. 19:06
jonathan is isn't just a call to trait_auxiliary:is now?
:-)
moritz is() is also a sub
purl okay, moritz.
jhorwitz in soviet perl 6, code writes you!
kj first it write a 5-year plan :-)
diakopter and takes 10 years to write the 5-year plan. 19:07
nopaste "bacek" at 123.243.38.218 pasted "Junction collapsing to boolean function. For pmichaud/masak to review." (42 lines) at nopaste.snit.ch/14467
kj that sounds like a bootstrapping problem, kinda
masak bacek: busy right now with other things, but I'll have a look later. 19:08
pmichaud bacek: that code totally confuses me.
why "junction with maximum 2 elements"?
bacek pmichaud: it's invoked from 'prefix:?'
pmichaud prefix:? should probably just invoke the get_bool vtable, as it already does. 19:09
bacek VTABLE_get_bool just calls 'prefix:?'
pmichaud $I0 = istrue $P0
bacek oh
dalek r32342 | jonathan++ | trunk:
: [rakudo] Fixes and enhancements to does and but. We can now handle having a PMC rather than an object type on the LHS, so doing but or does on a string now works.
diff: www.parrotvm.org/svn/parrot/revision?rev=32342
jonathan HEALTH WARNING: Looking at the C part of the last patch may cuase blindness.
bacek pmichaud: in Juctions 'prefix:?' invokes dispatcher. 19:10
particle say ?('0' but Bool::True)
pmichaud bacek: I think that's probably wrong.
bacek: or at least not the factoring that we should have.
particle prefix:? should collapse the junction, no?
pmichaud not directly.
bacek particle: it should. 19:11
moritz .true should collapse the junction, I think
pmichaud prefix:? should ask a junction for its boolean value, and evaluating a junction in boolean context collapses the junction.
allison heads to airport
pmichaud what moritz said.
particle ok, yes, that's .true.
moritz actually .Bool and .true and prefix:<?> should boil down to the same thing in the end 19:12
pmichaud ...except that we can't really call .true on a Junction.
bacek pmichaud: why?
pmichaud at least, not using the standard method dispatch. (Unless this has changed again since July.)
jonathan Was it decided that this would call .true on everything in the junction and return a junction of return values?
pmichaud method calls on Junctions are autothreaded. 19:13
moritz pmichaud: why not? I think there should be methods (like .perl) that work directly on the junction, not on the values
pmichaud moritz: this was a discussion I had with TimToady at the oscon hackathon. I don't know that it was ever resolved.
but I do recall that methods on junctions autothreaded.
moritz well, .perl certainly does not. 19:14
pmichaud as I said, I'm not sure that was resolved.
PerlJam Sounds like another funny sort of "scope" that needs some syntax
particle we spoke about using the VAR() macro for that
but i don't think it was resolved, either
moritz maybe it's one of the things that should be settled by the implementations
pmichaud one can easily argue that $junc.perl should return a junction of strings and not a single string.
PerlJam It's more of that container/value dichotomy. 19:15
jonathan Checking the method name and deciding what to do per implementation sounds a tad costly, though.
er, per invocation.
masak chromatic: do you have any suggestions re [perl #60178]? it feels suboptimal to have to manually downgrade a file on every svn up; I'm getting test failures, and fear that I will perhaps soon not be able to compile at all
PerlJam listens to a guy mixing concrete in the hallway outside his office. 19:16
pmichaud PerlJam: what are you doing outside of a concrete mixer's office? ;-)
jonathan And, well, just odd. And another magic list of stuff to remember.
chromatic No idea. That's a baffling problem, masak. 19:17
jonathan steps out of Perl 6 design.
chromatic All I did was shuffle some code around.
masak chromatic: yes, I can see it's not a big commit.
pmichaud masak: have you tried a completely fresh checkout?
sometimes make realclean doesn't.
masak pmichaud: no, I must admit I haven't. 19:18
masak tries that.
pmichaud I suggest that.
especially since there were also some opcode changes around the same time. Those can also lead to oddities in the dependencies.
chromatic make realclean should have fixed any of those. 19:19
pmichaud I've had cases (not recently) where make realclean wasn't as thorough as it should be. And since we just did a number of fixes to "make opsrenumber", I highly suspect that.
19:19 mberends joined
pmichaud (because the times when I had trouble with make realclean and building in the past had to do with ops renumbering) 19:20
anyway, it's something I definitely recommend trying.
masak this is the most reassuring news I've heard so far.
masak is in mid-checkout
bacek rm *; git checkout master
fastest way to obtain clean checkout ;)
rm -rf 19:21
jonathan /*
;-)
pmichaud I'll post a message to p6l about .perl on junctions. 19:22
jonathan hands pmichaud an opener for the can of worms 19:23
particle yeah, that's probably the best place for timtoady to ignore it.
jhorwitz chuckles 19:24
masak pmichaud: nope, clean checkout didn't fix the problem. :/ 19:25
pmichaud darn. Well, we know it's definitely in the code somewhere, or in your system's configuration.
masak my system compiles every other program just fine, thank you. :)
moritz there were multiple reports about parrot being broken on OS X 19:26
particle try compiling ";$"
moritz so I guess it's not a masak specific problem ;)
masak I've been hoping to show conclusively that it isn't.
particle: sorry, compiling how/what? 19:27
particle </snark>
MariachiElf chuckles at the concept that every other program is only 50%
masak some obscure bash joke I'm not getting? 19:28
MariachiElf more like "all the odd numbered programs" every other program 19:29
all the even numbered compiles don't work
masak groans 19:30
have mercy on me, I'm not a native speaker :)
s/e s/e English s/
dalek r32343 | kjs++ | trunk:
: [pirc] remove some old code, add some comments and some minor layout stuff.
diff: www.parrotvm.org/svn/parrot/revision?rev=32343
pmichaud masak: I'm missing it also, whatever it is.
masak pmichaud: I got it now, but it's not worth the trouble :P 19:31
pmichaud okay, good. I'll go back to composing my p6l message. :-)
MariachiElf masak: You're speaking is fine it's my joke that should have been put to death before I said anything
particle the even jokes are better here
pmichaud oh, I get it now. <groan>
masak told ya.
19:33 Wknight8111 left
jonathan ooh! I should not forget to eat... 19:33
bbiab
MariachiElf oh -- anyone here able to comment on the PCT Tutorial? I'm having a couple minor problems 19:34
The first is that make test in the languages/squaak seems to go on for infinity 19:35
pmichaud MariachiElf: I suspect the tutorial needs some updating because of recent changes to PCT.
MariachiElf The second is that "say" doesn't seem to be valid
nopaste "chromatic" at 69.64.234.10 pasted "masak: MMD patch (possible fix)" (62 lines) at nopaste.snit.ch/14470 19:37
chromatic masak, try that please.
GeJ Good morning all. 19:39
masak chromatic: will do. 19:40
particle jonathan: do you want a letter of invitation for pds2008? 19:41
19:41 gryphon joined 19:44 jan joined
nopaste "masak" at 130.238.45.242 pasted "chromatic: make errors" (6 lines) at nopaste.snit.ch/14471 19:44
chromatic + if (sub->vtable->base_type == enum_class_NCI) 19:46
+ multi_sig = PMC_pmc_val(sub);
change 'sub' to 'pmc'. Sorry.
purl chromatic: that doesn't look right
masak chromatic: np. trying again.
chromatic: 's working! 19:49
wohoo! 19:50
chromatic PGE builds/ 19:51
?
masak I can only assume it does, since make is running tests now.
it never got this far before.
chromatic That's a good sign. Let me know how the tests do, and if that works, I'll check it in.
masak oki. they look good so far.
Result: PASS 19:54
dalek r32344 | moritz++ | trunk:
: [codingstd] various fixes
diff: www.parrotvm.org/svn/parrot/revision?rev=32344
masak chromatic: all tests a-pass. 19:55
pmichaud chromatic++ masak++
moritz indeed
masak chromatic++
moritz masak: now you can tackle the junction/tests problem ;)
masak I just followed instructions. :)
moritz: indeed, that's next on my list.
moritz masak: and you bugged people to give you instructions ;) 19:56
masak moritz: only in cases of C code :)
masak borrowed K&R today
but C is still not my forte
pmichaud keeping on top of a bug is often as important as fixing it. 19:57
masak if you can find a good formal sounding title, I'd be very happy to be 'the guy who keeps on top of bugs, nagging other people about them' :) 19:58
pmichaud "bug wrangler" 19:59
Debolaz ponders an ubuntu repository for parrot.
masak pmichaud: I like it.
moritz "bug bugger"
masak haha
moritz: wouldn't want to be called a "bugger" actually :P
dalek r32345 | kjs++ | trunk:
: [pirc] fix a bug in the parser code; $S0 = print segfaulted, instead of printing an error message saying that's not allowed.
diff: www.parrotvm.org/svn/parrot/revision?rev=32345
masak associations both to Orson Scott Card's "Ender's Game" and Terry Pratchett's "The Hedgehog Cannot Be Buggered At All" 20:00
dalek r32346 | coke++ | trunk: 20:03
: [t] remove comment pointing to missing file.
diff: www.parrotvm.org/svn/parrot/revision?rev=32346
jonathan particle: I don't expect I need it for entering the US, if that's what it's for?
particle yep
jonathan: also, i'm looking at importation now, and notice you've pushed 'use' to INIT time 20:04
looks like i'll have to move my imports there too
jonathan particle: Well, in pre-compiled modules, I think we need to. 20:05
particle: Not having anything at startup time broke pre-compiled modules.
In reality, I think we need to do this at compile time when we encounter the use statement. But then have something in the generated code too that says "OK, is this loaded yet?" and loads it if not. 20:06
kj jonathan: I had requested for a letter. You won't actually *need* one, but it might make things easier,when the guy is inspecting your passport, asking what's your business in the us, and then having a cup of coffee, just to annoy you. (That's my previous experience, anyway :-) )
jonathan particle: Is it just a PDF that I print myself? 20:07
It won't do any harm to have it, I guess, though as kj points out, may make it faster through interrogation.
particle yes, i need your address, dob, and passport #
you can privmsg me, or email jerry.gay@parrot.org 20:08
kj jonathan: I had requested for a letter. You won't actually *need* one, but it might make things easier,when the guy is inspecting your passport, asking what's your business in the us, and then having a cup of coffee, just to annoy you. (That's my previous experience, anyway :-) )
ehm, whoops
particle purl, be mojo jojo
purl particle: sorry...
particle be mojo jojo
purl Excuse me sir, but can you direct me to the location of where I can locate some eggs for I would like to purchase them so that I can take them home with me and I can eat them today.... And maybe tomorrow.
dalek r32347 | chromatic++ | trunk: 20:14
: [MMD] Reverted incorrect part of r32189, the refactoring of multi_sig caching
: out of mmd_dispatch(). As reported by Carl Mļæ½sak in RT #60178, this broke the
: build on Mac OS X.
diff: www.parrotvm.org/svn/parrot/revision?rev=32347
masak that dalek over there can't spell my name right. 20:15
one baffles at the lack of UTF-8 awareness at this late date (2008!)
moritz masak: uhm, I can read that just fine
masak hm, maybe it's my decoding settings then. 20:16
moritz no, probably mine ;)
the irclogs got it wrong
so it's probably latin-1
masak yes, I know it is. it's scrambled that way :)
pmichaud afk, kid pickup
chromatic research.microsoft.com/~simonpj/pap.../index.htm 20:17
dalek r32348 | coke++ | trunk: 20:18
: [cage] remove unneeded .pragma
diff: www.parrotvm.org/svn/parrot/revision?rev=32348
nopaste "particle" at 98.232.28.49 pasted "jonathan: this is my previous importation patch, needs major refactoring now (takes place inside use_statement). note PAST::Compiler.compile()" (78 lines) at nopaste.snit.ch/14472 20:20
bacek which op call 'get_bool' method? 20:22
jonathan particle: OK. We can probably still do that too - I need to check. I just wanted to unbreak what turning use into compile time originally did while keeping modules with classes in them working.
I mean, obviously, we *must* do it at compile time in the end.
particle yep
jonathan We didn't originally, then I switched us to doing so, and there was fallout, so I moved it to $?INIT, which is later than we were doing it but earlier than we did before (we used to emit something to compile the module at runtime). 20:23
I think that if you just compile it now, you may find that the checks we already have mean it's actually done already. 20:24
erm, what...
purl erm, what is the problem?
jonathan I think if you just compile it now, the checks we have already may mean that it won't get loaded again. I'm just not 100% sure (didn't check yet).
particle yeah, we need better tests for that 20:25
bacek found istrue
jonathan I fear that what you're written would fail for pre-compiled stuff. 20:26
I mean, if the file doing the importing is pre-compiled.
particle yes, it will. needs heavy refactor :)
jonathan :( 20:27
particle i need to grab the namespace object for (e.g. Used::Module::EXPORT::DEFAULT) and iterate over it
bind the symbols to the current block as i go 20:28
jonathan If you factor some of what you wrote there out into a subroutine
particle well, for now bind to current namespace, because we can't bind to current block
jonathan And pass it the namespace
Then you could just look those up in the code you generated for the pre-compiled case.
And then call the sub.
So you could share much of the implementation between the two ways.
If I understand it correctly. 20:29
particle well, i probably shouldn't be walking the past at all
jonathan oh, hmm... 20:30
But yes, I fear it'll want a refactor.
I've nothing against a first cut that doesn't work with pre-compiled modules yet, so long as it doesn't break what already does work with them. 20:31
particle i want it for Test.pm
however, it looks like Test.pm is going away anyway
bacek masak: around?
particle now that plan ok is etc are in STD
masak bacek: aye. 20:32
jonathan oh? I didn't know about that change.
bacek I've send revised patch via RT
particle we're sticking the test functions in the core
chromatic It was in the minutes last month.
masak bacek: sounds good. I'll look at it, but let pmichaud++ have the final say on whether to apply it. 20:33
nopaste "bacek" at 123.243.38.218 pasted "Revised Junction patch" (515 lines) at nopaste.snit.ch/14473 20:34
bacek wow. 515 lines
jonathan chromatic: I thought I'd read them but I musta missed that.
bacek masak: btw, 'succ'/'pred' handling should be slightly different. AFAIU we always should call 'pop_eh'. 20:35
masak bacek: ok. 20:36
nopaste "bacek" at 123.243.38.218 pasted "Adding pop_eh patch." (20 lines) at nopaste.snit.ch/14474 20:37
masak bacek: do send it to RT as well, please.
bacek masak: check with pmichaud is it correct approach.
afk # waking up kids, breakfast, etc 20:38
masak bacek: will do. thanks for the patches. 20:42
dalek r32349 | kjs++ | trunk: 20:51
: [pirc] reimplement local label fixup. This is much better than the previous hack. Needs to be completed for all branching instructions.
diff: www.parrotvm.org/svn/parrot/revision?rev=32349
jonathan Harsh! 21:01
Coke chromatic: if we remove .pragma n_operators... should we just remove all of .pragma? 21:03
Coke will post that ont he ticket.
chromatic Are there other .praga bits? 21:04
Coke I didn't see any. 21:05
I think n_operators is the only valid .pragma.
if you try ".pragma barf", the error message also backs me up. 21:06
pmichaud "num_equal" should be "num_true" 21:07
21:07 PacoLinux joined
pmichaud also, it would be better if the logic was short-circuiting. 21:07
bacek pmichaud: can you check nopaste.snit.ch/14474 please? 21:22
pmichaud 14474 looks okay to me, especially since it's all temporary anyway :-) 21:23
bacek why it's 'temporary'??? 21:24
pmichaud because that's not how increment/decrement should be implemented. 21:25
jonathan pmichaud: Is rt.perl.org/rt3/Ticket/Display.html?id=58770 actually correct?
I think it is - that we should return undef there, but just wanted to check your take on it.
bacek pmichaud: and how it should be implemented?
masak pmichaud: I'll commit 14474, then.
pmichaud I commented on it when it was first committed
jonathan: bare return should ultimately return an empty capture 21:26
bacek pmichaud: ah. ok.
pmichaud bacek: I'm looking for my email or rt post
jonathan pmichaud: Ah, OK. Which is classed as defined?
Or is that unspec'd?
pmichaud jonathan: it's either an empty capture or an Object
jonathan I guess it's false in boolean context...
pmichaud if an Object, then it's undefined.
jonathan Heh.
OK, so it needs a post to p6l to clarify? 21:27
pmichaud I suggest scanning the #perl6 logs and re-checking the synopses
I think it may have been clarified already
or, just check on #perl6, I bet they can answer quickly.
dalek r32350 | masak++ | trunk: 21:28
: [rakudo] pop_eh patch on succ/pred by Vasily Chekalkin (bacek++)
diff: www.parrotvm.org/svn/parrot/revision?rev=32350
pmichaud bacek: rt.perl.org/rt3/Ticket/Display.html...txn-486960 21:30
bacek pmichaud: Adding 'increment' to Object means hacking parrot's internal Object? 21:32
pmichaud bacek: not at all, we just define the increment vtable function in Perl6Object
bacek pmichaud: ok 21:33
bacek looking at r27929
pmichaud however, one can avoid the vtable function altogether by implementing .succ and .pred on Int and Num, and then writing prefix:<++> in terms of always using succ and pred 21:34
or, use mmd to solve it
that might be better anyway.
using find_method is definitely not the approach I want to use here. 21:35
21:37 MariachiElf joined
jonathan pmichaud: From S06: "The return function preserves its argument list as a Capture object," 21:39
So that seems to mean it's an empty capture. 21:40
bacek pmichaud: got it. I'll try to implement mmd based 'succ'/'pred'
afk # $self->move($kids=>school)
masak bacek++
bacek holy... @kid=>school. ;) 21:41
jonathan How do you specify in irssi which server you want to connect to #perl6 on? :-) 21:45
moritz jonathan: /join -freenode #perl6
jonathan: after a /connect irc.freenode.org of course
21:46 stockwellb joined
jonathan OK, hope that does it! 21:46
stockwellb I'm looking for a little guidance on role collision, aliasing and exclusion. I looked at the tests for composition and I just don't get it. Anyone know of any other places that might have some examples? 21:47
jonathan stockwellb: I know a bit about that stuff. What do you need to know?
moritz jonathan: in parrot? or in Perl 6?
stockwellb PIR, sorry. 21:48
jonathan moritz: Will, I implemented both, so... :-)
moritz hehe ;)
jonathan The tests plus The Spec should be the best source of info. 21:49
stockwellb I'm really trying to get off the ground here with composition. I've got some trivial code that I'm playing with. I've created a conflict and I'd like to resolve it.
jonathan OK.
stockwellb My puzzle starts with the tests.
for instance... 21:50
$P1.'add_role'($P0, 'exclude_method' => $P3)
this is in composition_6.pir 21:51
I don't understand the use of the ResixableStringArray?
jonathan This gives a list of methods that are in the role to not compose. 21:52
So if you have two roles both brining in a method of the same name and you want to pick which of them you want the role from
Then you just pass an array with that method name in it to one of them - the one you want to exclude from. 21:53
As in, the one to ignore the method from.
stockwellb alright, now what if these roles are in a class and the class has a method with the same name.
precedence? 21:54
purl i think precedence is precedence.
jonathan That is by default a conflict.
Now, in Perl 6, we actually don't want it to conflict. We want the class one to always win.
So we get a list of the methods in the class and exclude based upon that.
stockwellb I only found 'exclude_method' in the test. Where in the docs are these named parameters located and what others might there be. 21:55
jonathan That's functionality based upon the primitives though, not out-of-the-box.
stockwellb I've seen no examples of iterating through a classes methods. Let me guess, in the tests :) 21:56
jonathan Also alias for bringing them in renamed. And resolve, which you specify on the class rather than when doing a role. This final one is what we use in Rakudo, in fact.
In PDD15, see Role Conflict Resolution.
This section defines/explains all three of them.
stockwellb It seems its the PDD's that I keep forgetting to look in. I'm sorry. One day I'll get it. 21:57
jonathan Use inspect to get at a list of the methods. Well, actually a hash of them.
:-)
np
stockwellb Thanks jonathan, I'm off to read PDD15. 21:58
jonathan OK, hope that helps, feel free to ask if you've any more questions. 22:00
stockwellb Jonathan: I do have a another quick question. 22:05
jonathan Sure 22:06
stockwellb PDD15 has the named parameters as resolve, exclude and alias; yet the test file uses exclude_method?
is it alias_method and resolve_method? 22:07
jonathan Oh, yes.
I think we have to rename them so we could do the same with attributes.
Argh. PDD needs patching, then I think. Are there not tests for alias_method? 22:08
stockwellb there is a test fro alias_method, I just had not gotten to it yet. 22:09
jonathan OK.
stockwellb Although I get a chuckle out of the role of burninator?! 22:10
jonathan ;-) 22:11
stockwellb and BURNINATION
very strange analogies.
22:15 Whiteknight joined 22:17 Zaba_ joined
jonathan stockwellb: If you really want the source, www.homestarrunner.com/sbemail58.html 22:18
chromatic Be careful with that. 22:19
I showed it to my attorney a while back, and now everyone in her office thinks she's crazy.
masak I can't imagine why. 22:24
dalek r32351 | kjs++ | trunk: 22:26
: [pirc] fix label handling for all instructions + store label names + offset, so that we can switch between output (name, or offset). Output choice is yet to be implemented.
diff: www.parrotvm.org/svn/parrot/revision?rev=32351
stockwellb Burninating the country side... 22:32
Ok, chromatic composition_10.pir is way more funny now. 22:33
22:39 grim_fandango_ joined
Coke szabgab? 22:46
purl hmmm... szabgab is a box hater
moritz szabgab is also working on Padre 22:47
purl okay, moritz.
masak hate those boxes.
Coke msg szabgab I just installed Padre 0.14 the other day. did cpan> install Padre again today to get 0.15. make test failed on SMUELLER/File-ShareDir-PAR-0.02.tar.gz and SZABGAB/Padre-0.15.tar.gz
purl Message for szabgab stored.
jonathan my $x; $x -= 3; # Multiple dispatch failure 22:51
jonathan wonders if we should be specifying some MMD cases on Undef. 22:52
moritz I think the consensus was that my $x; should store an Object proto in $x, not an Undef.
jonathan Ok 22:53
masak yes. "Object is the new Undef."
jonathan Yes. But still need to write those multi variants somewhere, anyway. 22:54
> my $x; say $x.WHAT;
Failure
masak FAIL.
jonathan Did it make it into the spec somehwere that it should be Object? 22:55
22:55 Limbic_Region joined
moritz I think it was a #parrot consensus, not a #perl6 one ;) 23:00
jonathan Ah. :-)
OK. I think that means it can't just be the Object proto we stick in there, though.
moritz can't remeber exactly 23:01
jonathan Otherwise a my $x; $x -= 3; does something in place, and thus would end up changing the Object proto, which is wrong.
I think I'll leave this one for another day.
masak jonathan: ISTR there were also problems with my $x; $x ~= 'OH HAI';
jonathan Yes, it's the same issue I think. 23:03
I think we can deal with it when doing the other container/value refactors that are starting soon.
23:05 particle left
jonathan decides to call it a day 23:06
moritz jonathan: (for reference) irclog.perlgeek.de/parrot/2008-10-01#i_595800 23:07
jonathan OK, good. :-) 23:08
TimToady the Object proto is not the $x container, so I don't see a problem with $x = Object - 3 offhand 23:16
(assuming warning suppression based on -=) 23:17
jonathan TimToady: I was thinking more $x = Object; $x -= 3; 23:18
TimToady no difference
jonathan TimToady: This only matters though perhaps if we actually compile it down to the Parrot -=, which wants to do it in place.
TimToady $x is both an lvalue and an rvalue
chromatic $x is Japanese? 23:19
jonathan OK, does that imply that $x = Object makes a clone of the Object proto-object?
TimToady Parrot is confused :)
jonathan Or does $x -= 3 really just mean "$x = $x - 3" here?
What about $x++?
TimToady no, $x is the lvalue, and Object is only the rvalue
purl okay, TimToady.
TimToady the rvalue is used readonly 23:20
well, it's only read
if parrot can't keep lvalues and rvalues straight it's got problems... 23:21
jonathan Report: www.rakudo.org/2008/11/my-first-day...akudo.html 23:26
jonathan needs sleep
23:27 particle joined 23:34 bacek_ joined
Limbic_Region what is the best target for rakudo testing - fulltest, spectest, ? 23:36
chromatic spectest_regression, I believe.
Limbic_Region salamat po 23:37
oh, and does anyone know of a perl implementation of an algorithm to find the LCSS of 3 or more strings using DP or otherwise? 23:38
dalek r32352 | kjs++ | trunk: 23:44
: [pirc] fix reg.alloc.optimization problem with multi-line statements.
diff: www.parrotvm.org/svn/parrot/revision?rev=32352
chromatic kj "Writing a register allocator is easy!" 23:45
particle Limbic_Region: spectest_regression is also now spelled spectest 23:48
purl okay, particle.