Parrot 0.6.3 "Beautiful Parrot" Released | parrotcode.org/ | 5/649/88 new/open/stalled tix | logged in irclog.perlgeek.de/parrot/today
Set by moderator on 26 June 2008.
00:02 bacek_ joined
bacek_ morning everyone 00:02
davidfetter oi 00:07
rurban hi
purl hi, rurban.
Whiteknight finally got his copy of "Perl 6 and Parrot Essentials"
rurban Something worth to read?
davidfetter wonders whether the Whiteknight's talking backwards 00:08
rurban Aren't the docs and srcs better?
pmichaud P6PE is fairly out of date :-)
rurban rakudo?
purl rakudo is probably The Way of The Camel or in languages/perl6 (svn.perl.org/parrot/trunk/languages/perl6) or use.perl.org/~pmichaud/journal/35400 or rakudo.org or Part of this balanced breakfast!
00:09 AndyA joined 00:12 kid51 joined 00:24 rurban left 00:25 Ademan joined
Whiteknight yes, the book is fairly out of date, but I got it for 1.90$ on amazon 00:31
so i figured, what the hell
00:35 ruoso joined
kid51 Do you know how someone registers at smolder? smolder.plusthree.com/app/public_pr..._reports/8 00:36
00:42 AndyA joined
DietCoke I'm tempted to get a copy and make allison sign it. 00:59
dalek r28974 | jkeenan++ | trunk:
: [configure] Merge autoicu branch into trunk.
: (rt.perl.org/rt3/Ticket/Display.html?id=43334). Extensive refactoring
DietCoke and then sell it on ebay or something.
dalek : of auto::icu, but no reduction in functionality. Add 5 test files. Drop
: references to nonexistent '--icudatadir' option in documentation in two
: locations.
diff: www.parrotvm.org/svn/parrot/revision?rev=28974
cotto_work particle, ping
dalek r28975 | jkeenan++ | autoicu:
: Branch has been merged into trunk and is no longer needed at HEAD.
diff: www.parrotvm.org/svn/parrot/revision?rev=28975
tetragon Hrm, how would one sell the autoicu branch on ebay, anyway... 01:00
dalek r28976 | jkeenan++ | autoicu-28734: 01:01
: Branch to which tag corresponded has been deleted; tag no longer needed.
diff: www.parrotvm.org/svn/parrot/revision?rev=28976
davidfetter cotto_work, i'm looking for ways to make postgres more welcoming to windows developers. anybody i can ask about this in detail where you work?
cotto_work let me look into that 01:02
I'll ask around.
davidfetter cotto_work, thanks :) 01:03
Whiteknight DietCoke, did you read my question from earlier?
01:06 Andy joined
DietCoke no. 01:16
email works best for that. 01:20
Whiteknight I'll email you the question then 01:31
DietCoke well I'm _here_ now. =-)
(just if you don't see me answer.)
dalek r28977 | chromatic++ | trunk: 01:43
: [parrot-config] Turned parrot-config into a fakecutable; this allows programs
: to query Parrot's configuration. See RT #32365.
diff: www.parrotvm.org/svn/parrot/revision?rev=28977
stupidbot Error calling said() for rt: Malformed RT response received from rt.perl.org/rt3/
Whiteknight DietCoke, should we create a branch for the "vtable functions have self" stuff? 01:53
it's going to require a number of changes to tests and stuff too
pmichaud if it needs a lot of changes, it's probably wrong.
what sorts of changes are you thinking will be needed (to tests?) 01:54
Whiteknight yes, tests mostly
have to monkey around in IMCC too, and I would rather not do that in trunk
pmichaud the only tests that should be affected would be those using :vtable, right? 01:55
Whiteknight yeah, there were tests in t/pmc/namespace and t/pmc/parrotobject
pmichaud and any subs that have :vtable and :method shouldn't be affected at all
DietCoke branches are cheap.
Basically, if you have to ask, yes. =-) 01:56
Whiteknight Okay, I'll make one up later and we can monkey around in it 01:59
DietCoke apparently picked a bad point to branch off the no_builtin_methods branch, as he got the json testing failures. 02:00
pmichaud when that happens to me I just drop the old branch and start a new one :-)
"branches are cheap" :-)
afk # rummikub 02:01
02:01 Theory joined
dalek r28978 | chromatic++ | trunk: 02:08
: [tools] Removed outdated and bitrotted pbc2c.pl; it doesn't run anymore, and no
: one has touched it in any substantive way since 2005.
diff: www.parrotvm.org/svn/parrot/revision?rev=28978
02:08 magnachef joined 02:26 Eevee joined
dalek r28979 | coke++ | no_builtin_methods: 02:33
:
: Make the find_builtin function always fail.
: Remove the tests that actually check the builtins.
: Only failures are some leftovers from trunk, and some floating point
: differences that our builtin version of say had from print: now that
: we're basically using print, they match up, so we can probably just
: revert those particular failing tests. (and rip out the rest of
: the builtin checker.)
diff: www.parrotvm.org/svn/parrot/revision?rev=28979
02:49 confound_ joined
dalek r28980 | jkeenan++ | autojit: 02:59
: [configure] Refactor some code from within runstep() into
: _check_jitcapability() and _handle_asm(). Move hard-coded jit path to data
: point in auto::jit object.
diff: www.parrotvm.org/svn/parrot/revision?rev=28980
r28981 | coke++ | trunk: 03:12
: pass the codingstd tests
diff: www.parrotvm.org/svn/parrot/revision?rev=28981
DietCoke anyone else having connectivity problems to feather/? 03:18
pmichaud not me. 03:20
at least, if you're reading this then I'm not :-)
Tene I am. 03:22
However, I'm having connectivity problems to everywhere.
DietCoke Hurm. I switched computers on my home network, and it seems fine now. I blame windows, apparently. 03:23
Tene Internet service gets turned on at my house on the 8th. I'm steeeeeealing.
dalek r28982 | coke++ | no_builtin_methods: 03:28
: Merge from trunk up to r28981
: (Mainly to fix all the failing tests that weren't my fault!)
diff: www.parrotvm.org/svn/parrot/revision?rev=28982
cotto_home what's the status of make cover? 03:32
dalek r28983 | pmichaud++ | rakvar:
: Creating branch to fix rakudo variable handling.
diff: www.parrotvm.org/svn/parrot/revision?rev=28983
r28984 | coke++ | no_builtin_methods: 03:45
: Change the expected output of "say <float>" to match print's precision.
diff: www.parrotvm.org/svn/parrot/revision?rev=28984
r28985 | coke++ | no_builtin_methods: 03:57
: use the sqrt method directly instead of relying on auto-dispatch.
diff: www.parrotvm.org/svn/parrot/revision?rev=28985
r28986 | coke++ | no_builtin_methods: 04:11
: Use explicit method calls instead of the implicit ones that are going away.
diff: www.parrotvm.org/svn/parrot/revision?rev=28986
r28987 | coke++ | no_builtin_methods: 04:13
: use explicit method calls instead of relying on auto-dispatch.
diff: www.parrotvm.org/svn/parrot/revision?rev=28987
r28988 | coke++ | no_builtin_methods: 04:19
: remove trailing space
diff: www.parrotvm.org/svn/parrot/revision?rev=28988
r28989 | coke++ | no_builtin_methods:
: Disable more checks for builtins. All tests still pass.
diff: www.parrotvm.org/svn/parrot/revision?rev=28989
r28990 | coke++ | trunk: 04:27
: [build]
: Fix 'make -j'; If you use $(PARROT) in your build step, you should depend
: on it.
diff: www.parrotvm.org/svn/parrot/revision?rev=28990
04:32 masak joined
dalek r28991 | pmichaud++ | trunk: 04:44
: [rakudo]:
: * Clean up placeholder variable actions.
diff: www.parrotvm.org/svn/parrot/revision?rev=28991
r28992 | pmichaud++ | trunk: 05:04
: [rakudo]: change 'process_contextualizer' to 'contextualizer_name'
diff: www.parrotvm.org/svn/parrot/revision?rev=28992
r28993 | chromatic++ | trunk: 05:07
: [PMC] Added splice vtable entry to FixedPMCArray (see RT #34394).
diff: www.parrotvm.org/svn/parrot/revision?rev=28993
05:22 natacha29 joined
dalek r28994 | chromatic++ | trunk: 05:27
: [PMC] Re-added hash and PMC Hash headers mistakenly deleted in r28900, so as to
: allow C++ builds to compile and prevent C builds from warning (NotFound, RT
: #56534).
diff: www.parrotvm.org/svn/parrot/revision?rev=28994
r28995 | pmichaud++ | trunk:
: [rakudo]: methods should be .blocktype('method') instead of using pirflags
diff: www.parrotvm.org/svn/parrot/revision?rev=28995
r28996 | coke++ | no_builtin_methods:
: Eliminate all traces of "builtins"
diff: www.parrotvm.org/svn/parrot/revision?rev=28996
05:30 Psyche^ joined
cotto_home would it be appropriate to add an HLL to COVER_DIRS in the code that generates Parrot's Makefile? 06:03
dalek r28997 | chromatic++ | trunk: 06:09
: [PMC] Re-added hash and PMC Hash headers mistakenly deleted in r28900, so as to
: allow C++ builds to compile and prevent C builds from warning (NotFound, RT
: #56534).
diff: www.parrotvm.org/svn/parrot/revision?rev=28997
06:10 particle joined 06:14 Ademan joined
dalek r28998 | chromatic++ | trunk: 06:26
: [src] Tidied some code; no functional changes.
diff: www.parrotvm.org/svn/parrot/revision?rev=28998
06:51 TimToady joined, diakopter joined, allison joined, cotto-work joined 07:15 magnachef joined 07:41 Ademan joined 08:13 KVirker joined, KVirker left 08:22 stupidbot joined 08:33 bacek joined
dalek r28999 | fperrad++ | trunk: 08:37
: [install] pipp
diff: www.parrotvm.org/svn/parrot/revision?rev=28999
r29000 | fperrad++ | trunk: 08:42
: [smoke] add pipp
: - remove plumhead
: - remove trailing space
: - add Perl coda
diff: www.parrotvm.org/svn/parrot/revision?rev=29000
r29001 | fperrad++ | trunk: 09:38
: [Pipp] recursive count is not implemented
diff: www.parrotvm.org/svn/parrot/revision?rev=29001
r29002 | fperrad++ | trunk: 09:40
: [Pipp] complete ctype
diff: www.parrotvm.org/svn/parrot/revision?rev=29002
09:41 stupidbot joined 09:46 MeGaMiC joined 09:52 bacek joined 09:57 bacek joined
bacek evening everyone 09:57
moritz good localtime() bacek ;) 09:58
bacek moritz: :) 09:59
rt #56214 10:06
stupidbot Error calling said() for rt: Malformed RT response received from rt.perl.org/rt3/
bacek stupid bot...
I've disable this function for now...
message pmichaud index2.diff from RT#56214 waiting for your opinion 10:07
purl?
spinclad s/message/msg/ maybe? 10:13
purl, messages? 10:14
ENOPURL
10:15 barney joined 10:18 rurban joined
rurban Shouldn't contain the languages/*/Makefile a install target? I'd need it for the examples and docs 10:18
10:36 kj joined, vhold joined
barney They probably should have an 'install' target. But nobody bothered yet. 10:36
dalek r29003 | bernhard++ | trunk: 10:40
: [Pipp]
: Add a TODO test for contants.
diff: www.parrotvm.org/svn/parrot/revision?rev=29003
10:42 Whiteknight joined 10:48 davidfetter joined 11:07 contingencyplan joined 11:08 kid51 joined 11:16 contingencyplan joined 11:19 rdice joined
rurban cygwin needs to add an import lib. How does mingw does that? 11:19
in root.in I'd need just to add something like after LIBPARRTO_SHARED LD : #CONDITIONED_LINE(win32):\t----out-implib libparrot.dll.a \\ 11:20
The problem is just the ldflags line in pkgconfig and config_lib.pasm. -lparrot 11:21
linking to a dll alone works fine, but this would need to change those two settings. Generating the import lib seems to be easier.
All assumed from a packaged version via reallyinstall. 11:22
dalek r29004 | bernhard++ | trunk: 11:25
: [Pipp]
: Implement define() and constant().
diff: www.parrotvm.org/svn/parrot/revision?rev=29004
rurban BTW: does #CONDITIONED_LINE(win32) contain cygwin also? 11:26
nope. 11:27
kid51 barney: There was a message posted to list requesting that commit messages contain more than just the subsystem -- that they include some description as well. (Some problem with a git tool.)
barney rurban you can ask ./parrot_config win32 11:28
kdi51: do you mean int the first line of the message ? 11:30
moritz that's what the git tools expect, yes
rurban barney: I only got cygchkdll for cygwin. good enough.
barney I see 11:36
11:49 tetragon joined
kid51 barney: Yes. See a post by G Broadwell in past day. (Just passing the message along; I have no preference, myself.) 11:52
kid51 only started to indicate a subsystem in commit messages in the past few days :-) 11:54
tetragon kid51: At some point in the near future, I'll be temporarily unable to do any PPC testing. (near future is defined as when Apple can ship an LCD panel to Toronto without damaging it)
kid51 Thanks for the update. I've been nudging people who participated in buildfest at YAPC to try out all your patches, but am experiencing the herding cats problem. 11:55
dalek r29005 | bernhard++ | trunk: 11:57
: [Pipp PHC] Add support for constants.
diff: www.parrotvm.org/svn/parrot/revision?rev=29005
tetragon I'm half-tempted to check the boxes at the Apple store for Xcode and do 10.5 Intel testing there 11:58
moritz bacek: are you around? 12:00
bacek moritz: little bit
for.t?
moritz bacek: with your latest index() patch, will the returned failure be a StrPos? 12:01
bacek not yet.
actually I thinks that StrPos is redundant... (Int|Failure) junction is enough for any use-cases... 12:02
perl6: my Int $a = 0; say defined $a;
polyglotbot OUTPUT[1␤]
barney is going to enjoy the sun at the Isar
moritz bacek: only as long as we don't implement character levels 12:03
barney: Munich?
bacek so, for index() we need something like my $p = $b.index(foo); if defined $p ...
barney Yes
moritz bacek: I'm going to apply your patch and extend the tests a bit 12:08
dalek r29006 | moritz++ | trunk: 12:12
: [rakudo] implement Str.index, patch curtesy by bacek++ (Vasily Chekalkin)
diff: www.parrotvm.org/svn/parrot/revision?rev=29006
r29007 | moritz++ | trunk: 12:18
: [rakudo] add S29-str/index.t to spectest_regression.
: bacek++ for implementing
diff: www.parrotvm.org/svn/parrot/revision?rev=29007
12:30 skv joined
dalek r29008 | pmichaud++ | trunk: 12:45
: [rakudo]: coding stds in src/classes/Str.pir .
diff: www.parrotvm.org/svn/parrot/revision?rev=29008
12:46 rdice joined
moritz parrot doesn't seem to implement complex log() function 12:48
pmichaud it's possible. 12:49
moritz I tried to cargo-cult a log(Complex) impelementation in the same way that exp() is done, and it still returns 0 always 12:50
oh wait, it does seem to be implemented 12:51
and it seems to be correct (at least from a glance at the src/pmc/complex.pmc file) 12:53
pmichaud nopaste diff ?
nopaste "moritz" at 89.13.212.252 pasted "complex log() and log10() for rakudo - not working" (53 lines) at nopaste.snit.ch/13453 12:54
pmichaud log10 doesn't appear to be implemented in complex.pmc 12:56
moritz yes, but if parrot is clever enough it just dispatches to log(x)/log(10) 12:57
pmichaud I don't think parrot is that clever
moritz that would explain whay log10 doesn't work, but what about log()?
btw I fear the complex log10 tests are a bit wrong ;) 12:58
... not anymore ;) 13:02
pmichaud what test file?
moritz spec/S29-num/log.t 13:03
nopaste "pmichaud" at 76.183.97.54 pasted "log on complex seems to work" (14 lines) at nopaste.snit.ch/13454 13:06
pmichaud log10 fails 13:07
nopaste "pmichaud" at 76.183.97.54 pasted "log10 fails" (15 lines) at nopaste.snit.ch/13455
pmichaud I'm not sure why your patch doesn't work, unless it's due to Parrot MMD somehow.
DietCoke is ln an opcode or a method dispatch? 13:09
(method dispatch is going away)
pmichaud it's a pseudo-opcode that does method dispatch
DietCoke: do you plan to replace it with a real opcode, or eliminate it entirely?
DietCoke nothing in core was using it. in the no_builtin_methods branch, it's just gone. I can add opcodes for anything that was a builtin for which an opcode is needed. 13:10
but I didn't want to bother adding opcodes for things that weren't used.
pmichaud adding an opcode might be tricky
and I'd be initially against that approach 13:11
DietCoke as am I. Good. switch to explicit methods. =-)
(may be why the log10 isn't working, that may not be in the list in src/builtin.c on trunk.
pmichaud log10 isn't implemented in complex.pmc
DietCoke ah. (yah, it's in the list, so that'd do it.) 13:12
so far, the only opcodes I added were the 4 say variants.
pmichaud if we write an opcode for 'ln', we also have to do opcodes for
"abs", "neg", "not", "fact", "sqrt", "ceil", "floor"
"acos", "asec", "asin",
"atan", "cos", "cosh", "exp", "ln", "log10", "log2", "sec",
"sech", "sin", "sinh", "tan", "tanh", "fact"
DietCoke yup. note that I think most of those already have _n_n variants.
pmichaud and that seems like a horribly lot of opcodes to generate if they're just going to be turned into method calls
DietCoke I'll all for dropping them, no arguments here. 13:13
pmichaud okay
DietCoke I was only considering it on the off chance you were going to ask for them.
pmichaud right now I'm on a "get rid of unneeded opcodes" bias
DietCoke You can switch over to the method syntax now.
(if you want, you can try out the branch and see what breaks in perl6 there. 13:14
(this whole thing, btw, is just to help me kill the getclass opcode. =-) 13:15
pmichaud I'm trying to focus on $_ handling today
I was going to do it yesterday but family events kept me from really getting into it
moritz: instead of a = ln a 13:16
try
a = a.'ln'()
that switches it from being an opcode to a method call
13:17 Whiteknight joined
moritz pmichaud: no luck here 13:18
pmichaud hrm
I suspect mmd issues then
moritz pmichaud: but focus on $_ first, that's much more important atm ;)
pmichaud I agree
DietCoke has about a dozen checkouts of parrot on feather. Oy. 13:20
dalek r29009 | coke++ | no_builtin_methods: 13:24
: Remove targets related to src/builtin.c
: Add in some -j protection from trunk.
diff: www.parrotvm.org/svn/parrot/revision?rev=29009 13:25
DietCoke what generates this line in src/gen_builtins.pir for perl6: .sub 'exp' :multi(Complex) 13:29
moritz DietCoke: that's from src/classes/Complex.pir
gen_builtins.pir seems to be the concatenation of src/classes/* and src/builtins/* 13:30
13:32 rurban joined
DietCoke ok. with a small change to Complex, all internal tests pass. checking the regression tests... 13:32
nopaste "coke" at 65.91.151.194 pasted "Use explicit method syntax..." (22 lines) at nopaste.snit.ch/13456 13:33
dalek r29010 | pmichaud++ | trunk:
: [rakudo]: spectest-progress update: 83 files, 1365 passing tests
diff: www.parrotvm.org/svn/parrot/revision?rev=29010
DietCoke (though looking at that, I'm wondering why I passed the argument in one case, and not the other.
presumably I'll find out if something fails in the regression. =-)
pmichaud should _not_ be passing the argument, I suspect. 13:34
DietCoke eh, these methods are wierd, at least on the base float.
pmichaud we aren't calling the methods on the base float, though.
rakudo's floating point sqrt currently uses sqrt_n_n 13:35
DietCoke ok. are these getting called on the root Complex object?
pmichaud probably not 13:36
looks like it's a subclass of Complex
DietCoke ok. with that small patch, no problems with assuming any other builtins. 13:40
pmichaud excellent. DietCoke++ 13:41
Coke++
DietCoke so, just figure out which PMC is actually getting those invoked to figure out if you need to pass it. if it's like Complex in core, you don't need 'em.
pmichaud (just to get all the karmas in the right slots :-)
Float requires that it be passed?
that's.....odd
and perhaps even wrong.
DietCoke ah, no. I was confusing it with the string methods. 13:42
pmichaud okay
DietCoke (some of which require you pass IN a string to work on.)
(even though, clearly, you've already got one.)
pmichaud okay, I'm going to focus on $_ for a while, so I might not answer unrelated questions :-) 13:43
I might not even make any snide remarks :-)
moritz snide remarks = sneaky side remarks? ;-) 13:44
pmichaud <no remark here>
13:47 rdice joined
particle $_ 13:49
moritz particle: implicit remark? ;-) 13:51
pmichaud .that_would_be_this
moritz pmichaud: you lost ;)
pmichaud I said *might*
besides, $_ is clearly on topic :-)
particle i'm just encouraging conversation about the current topic 13:52
dalek r29011 | pmichaud++ | rakvar: 13:57
: drop branch to re-sync it with trunk
diff: www.parrotvm.org/svn/parrot/revision?rev=29011
r29012 | pmichaud++ | rakvar: 13:58
: Recreate branch from trunk
diff: www.parrotvm.org/svn/parrot/revision?rev=29012
14:00 rjbs left 14:16 confound joined 14:18 gmansi joined 14:40 Ontolog joined
dalek r29013 | fperrad++ | trunk: 14:41
: [Pipp] file_get_contents & readfile
diff: www.parrotvm.org/svn/parrot/revision?rev=29013
Ontolog oh cool I'm logged publicly? 14:42
pmichaud irclog.perlgeek.de/parrot/today 14:43
moritz and irclog.perlgeek.de/perl6/today for #perl6 14:45
dalek r29014 | Whiteknight++ | gsoc_pdd09: 14:53
: [gsoc_pdd09] changes to header allocators. Better separation between aggregate and non-aggregate types
diff: www.parrotvm.org/svn/parrot/revision?rev=29014
r29015 | Whiteknight++ | gsoc_pdd09: 15:00
: [gsoc_pdd09] updating to trunk r29014
diff: www.parrotvm.org/svn/parrot/revision?rev=29015
rurban I've prepared now a patch which renames pdb to parrot_pdb - conflicts with existing pdb binaries. (python, ...) 15:08
DietCoke feather going down shortly. 15:12
moritz hard disk failure
DietCoke save early save oftne. 15:13
moritz commit often. (wait, that doesn't help if the svn repo is on feather... ;-)
Whiteknight is the repo mirrored anywhere? 15:23
Infinoid I didn't think the svn repo was on feather 15:26
DietCoke ours isn't, no. 15:27
particle pugs repo is on feather 15:28
so, no spectest updates for a while
i hope moritz can deal with that :)
moritz particle: I'm writing the "how to add tests" howto, it'll take some time to finish before I want to commit it ;) 15:29
cotto_home moritz, are you putting something about make cover in there to see what still needs to be tested? 15:30
moritz cotto_home: Perl 6 spectest, not parrot tests :/ 15:31
cotto_home gotcha
particle unless cotto_home has developed a coverage testing engine for perl 6... 15:34
cotto_home no such luck 15:38
15:48 cjfields joined 16:01 james joined, rob joined 16:03 jan joined 16:06 wolverian joined 16:08 dalek joined 16:09 leo joined, polyglotbot joined 16:11 pmichaud joined, PerlJam joined 16:12 rob left 16:13 Whiteknight joined
DietCoke how can I easily do a diff of "stuff I've changed on branch foo as compared to trunk". do a reverse merge then an svn diff of my work dir? 16:13
16:14 Ontolog joined
particle you wanna diff against head, or base? 16:16
DietCoke welp, I was thinking base originally,but since it would have to be applied against head... I'll just do it this way. =-)
16:16 Juerd joined
particle okie, that'll work 16:16
DietCoke hurm. annoying. I want -all the changes on that branch-, but I still have to specify start/end revisions. 16:17
particle svn log --stop-on-copy 16:18
that'll get you the rev number for branch creation 16:19
DietCoke I can get it, it's just annoying that svn merge isn't doing that -for- me. =-) 16:20
DietCoke tells himself "this is still better than CVS." =-)
moritz DietCoke: that's one of the many reason why SVN sucks
16:20 james left
dalek r29018 | Whiteknight++ | vtable_self: 16:21
: Creating branch to work giving vtable functions the self keyword
diff: www.parrotvm.org/svn/parrot/revision?rev=29018
DietCoke hurm. now the merge seems to be picking up things it shouldn't.
in a check out of trunk, I was running:
svn merge -r28930:HEAD svn.perl.org/parrot/branches/no_bu...n_methods/ .
where 28929 is the revision that created the branch.
moritz: in this case, most of the suck could be handled by a small wrapper script. 16:22
moritz DietCoke: or by native support for branches ;)
16:23 Casan joined 16:24 sjansen joined
particle DietCoke: then why didn't you use 28929 in the merge? 16:25
16:26 Ademan joined, jonathan joined
particle see docs/project/committer_guide.pod 16:26
16:27 magnachef joined
dalek r29019 | Whiteknight++ | vtable_self: 16:27
: [vtable_has_self] uploading initial patch to IMCC grammar. Modification to one test for desired behavior.
diff: www.parrotvm.org/svn/parrot/revision?rev=29019
16:34 Theory joined 16:35 barney joined 16:38 Theory joined
DietCoke particle: doesn't seem to impact the update in the merge of wrong stuff. 16:40
U runtime/parrot/library/CGI/QueryHash.pir
(If that was ever changed on branch, it was only because i merged changes from trunk.)
japhb Thank you, kid51 and moritz, for speaking up on behalf of git tools in the wee hours today.
DietCoke: I think you're beginning to see why adherents to other source controls say that SVN merge is insane .... 16:41
rurban I'm ready now with my cygwin perl package and will update the Bug#56544 with the final install_files.pl patch. 16:42
16:42 DietCoke left
particle rurban++ 16:43
rurban we will see how useful the layout will be. I just put all the languages with the exe's and the docs and examples into one big parrot-languages package
just parrot-perl6 is seperate. I didn't like it to be named as in fedora: "parrot-rakudo" 16:44
dalek r29020 | pmichaud++ | rakvar: 16:46
: [rakudo] implicit part 1
: * Eliminate incorrect declarations from statement_block
: * Add declare_implicit_var to allow controlled addition of implicit vars 16:47
diff: www.parrotvm.org/svn/parrot/revision?rev=29020
r29021 | bernhard++ | trunk: 17:01
: [Pipp PHC] Fiddle with the SEA-rule. Pass hello_11.php.
diff: www.parrotvm.org/svn/parrot/revision?rev=29021
17:09 tco joined
dalek r29022 | pmichaud++ | rakvar: 17:16
: [rakudo]: implicit vars #2
: * Eliminate __MAYBE_NEED_TOPIC_FIXUP
diff: www.parrotvm.org/svn/parrot/revision?rev=29022
r29023 | pmichaud++ | rakvar: 17:19
: [rakudo]: implicit vars #3
: * Anything that parses with a signature goes into $?BLOCK_SIGNATURED,
: even if the signature is empty or non-existent
diff: www.parrotvm.org/svn/parrot/revision?rev=29023
17:19 desertmax joined
dalek r29024 | bernhard++ | trunk: 17:21
: [Pipp PCT] Use correct sub for string concatenation.
: Pass two more test cases in hello.t
diff: www.parrotvm.org/svn/parrot/revision?rev=29024
r29025 | pmichaud++ | rakvar: 17:31
: [rakudo]: implicit vars #4
: * Change routine_def to initialize $_, $/, $! to be scalars
: * $! and $/ in pblocks default to OUTER::<$!> or OUTER::<$/>
diff: www.parrotvm.org/svn/parrot/revision?rev=29025
r29026 | bernhard++ | trunk: 17:36
: [Pipp PCT] use correct subs for string comparison.
: Pass some more TODO tests.
diff: www.parrotvm.org/svn/parrot/revision?rev=29026
particle pmichaud: how do you specify unlimited outer? i suggest either 0 or '*' 17:50
0 would allow max to stay an int
pmichaud it's strictly internal at this point 18:00
it will either be MAX_INT or -1, though
because 0 will be used to indicate "search caller's scope"
particle i thought 1 was caller's scope 18:09
hrmm
pmichaud 1 is caller's outer scope 18:10
particle yeah, took another read to see that
pmichaud I don't have the params in yet for it (because don't want to add them if I don't need them), but the idea will be that !OUTER can specify the min and max depths
particle ## start with caller's outer scope (i.e., outer depth is 2)
.local int depth
depth = 2
pmichaud with default of both being 1
particle that's a confusing comment 18:11
18:11 peepsalot joined
pmichaud the current scope is inside of !OUTER 18:11
depth 1 is the caller's scope
depth 2 is the caller's outer scope
particle yes, i see that. 18:14
however, the api comment refers to caller's immediate outer scope as 1
pmichaud ...api comment?
oh, right 18:15
particle C<max> parameter specifies the maximum outer to search -- the default value of 1 will search the caller's immediate outer scope and no farther.
so you have a magic number of 1 inside the sub
18:15 slightlyoff joined
particle you add to depth 18:15
pmichaud when I do '!OUTER'('$foo', 3) it means that I want to search up to 3 outer scopes from the current one
which means I search up to 4 outer scopes from within !OUTER
18:15 slightlyoff left
pmichaud I can change depth to read depth = min+1 18:16
particle yes, that's what i'd like :)
also, does it make sense to rename BLOCK_SIGNATURED to ROUTINE? the first isn't a very clear name, but i'm not certain the second is precise 18:17
pmichaud not every signatured block is a Routine
for example, -> $a { ... } has a signature but isn't a routine
particle yeah, that's what i was thinking :(
18:18 cjfields left
particle and POINTY_OR_ROUTINE is ugly too 18:18
pmichaud and what I'm really getting at is that a PAST::Block has already been started, because we parsed a signature
as opposed to creating a new PAST::Block at this point (e.g., for a bare curly)
dalek r29027 | pmichaud++ | rakvar: 18:19
: [rakudo]: implicit vars #5
: * Change comment and definition of depth in !OUTER, per particle++
diff: www.parrotvm.org/svn/parrot/revision?rev=29027
particle thanks, pmichaud++ 18:21
Tene Hmm... I should push this stuff up before I forget about it. 18:23
dalek r29028 | tene++ | trunk: 18:26
: [lolcode]
: * Store params in $?BLOCK symtable.
: * Store subs in $?BLOCK symtable.
: * Start building a parse tree for expressions at compile time.
: * Minor PCT typo fix.
diff: www.parrotvm.org/svn/parrot/revision?rev=29028
Tene pmichaud: I was looking into examining the lexical environment to find vars and subs that the compiler doesn't know about for lolcode, and I realized that in normal cases, the compiler is already running in the same environment that the compiled code will run in, so I can just do normal lookups instead of passing something in, afaict. Can you confirm or deny that this is a sane plan? 18:28
rurban I cannot see jesse. I cannot mail to parrotbug@parrotcode.org from seamonkey my latest cygwin realinstall fixes. Not with attachments and not without. 18:30
Should I just send them to the -porters list instead? 18:31
NotFound Tene: looks not sane to me, that way the code will no work same way when running a generated pbc. 18:32
moritz rurban: yes
pmichaud Tene: it depends on the structure of the compiler
cotto-work particle, ping
pmichaud However, in some cases it is reasonable for the compiler to look at the existing environment for hints 18:33
for example, things like eval() can do that
cotto-work the meeting is cancelled 18:34
I'm really sorry to do that, but one Anandeep is sick and needs to be there
particle cotto-work: ack! oh, well 18:36
then i can start my vacation earlier
Tene >
> Thanks.
>
> -Daniel
>
> ________________________________
>
> From: Stephen Weeks [mailto:sweeks@gurulabs.com]
> Sent: Wed 7/2/2008 11:14 PM
> To: Daniel Lyman
> Subject: Re: RE : [Fwd: RE: fooru kernel module problem in GL250]
>
18:36 Tene left
Whiteknight ...? 18:37
NotFound Wrong paste target?
moritz seems like ;)
18:38 Tene joined
dalek r29029 | Whiteknight++ | vtable_self: 18:38
: [vtable_has_self] added some comments around to help me find my way through this IMCC mess.
diff: www.parrotvm.org/svn/parrot/revision?rev=29029
Tene fail. 18:39
moritz Whiteknight++ # gsoc_pdd09 branch builds cleanly 18:41
Tene moritz: does it run, though? I thought he said it didn't run yet.
Whiteknight it builds!?! 18:42
I mean, it didn't last time I checked
moritz Tene: it doesn't, "make test" segfaults on PGE.pbc
Whiteknight okay, that's more like it. That's it's been doing for me
moritz Whiteknight: I just updated, 'make realclean; perl Configure.pl && make -j 2', and it compiled ;)
Whiteknight what platform are you guys one?
s/one/on/ 18:43
moritz Debian (32 bit i386)
Whiteknight holy crap, same as me
Whiteknight has to go try it again now
moritz from a cross-platform development POV it's a boring platform 18:44
because all the platform dependent failures happen on other OSses ;)
NotFound moritz: or at least, we do don't know if the problems we have are platform dependant, we fix anyway. 18:46
Whiteknight moritz, you're saying that it compiled all the way through? did it build PGE.pbc? 18:49
dalek r29030 | pmichaud++ | rakvar:
: [rakudo]: implicit vars #6
: Make subroutines to handle implicit vars in immediate blocks (e.g., 'if')
: and in function blocks (e.g., 'for').
diff: www.parrotvm.org/svn/parrot/revision?rev=29030
moritz Whiteknight: I think that the last output from 'make' was not an error
Whiteknight: then I did a "make test", and it complained about PGE.pbc 18:50
Whiteknight I'm double-checking now. but if it works then it's a miracle
moritz trying again to confirm
no error message in the last few lines, but 'make' had an exit status of 2 18:51
Whiteknight yeah, the -j hides the failure on PGE.pb
scroll up a bit and you can see the segfault 18:52
moritz tries again without -j2 and without ccache
particle pmichaud: this refactor and enhancement is looking really good so far 18:58
moritz pmichaud: when you're done with your branch the autounfudge tool will really help ;-)
particle moritz: svn diff exists on windows, can you use that instead of diff? 18:59
moritz particle: don't think so, the files are not under version control
Auzon You can get GNU diff for Win32.
moritz particle: (unless you find a way to hijack svn diff for arbitrary files)
dalek r29031 | bernhard++ | trunk: 19:01
: [Pipp PCT] Start to use optok parsing.
diff: www.parrotvm.org/svn/parrot/revision?rev=29031
particle i have diff on win32, but it's hard to make that a requirement 19:03
moritz particle: is it worse than requiring Algorithm::Diff and a custom workaround? 19:05
particle yes, it's worse 19:06
cpan requirements are better than non-cpan
from my pov. don't know how patrick feels
moritz ok, I'll see if I can find some tuits to work around it 19:07
particle write a diff util in rakudo
:)
19:08 DietCoke joined
NotFound Or in lolcode. 19:08
DietCoke tries to summon dietcoke
Tene lolcode doesn't have IO yet. 19:09
NotFound Even better ;)
DietCoke tries to summon dietcoke, one more time. 19:11
PerlJam What's Pipp? Is that the new name for plumhead? 19:12
Tene Yes.
PerlJam cool
rurban moritz: I got now enough tuits to send email to parrotbug :) 19:13
cotto-work pipp is <reply>Pipp is Parrot's PHP
rurban moritz: problem was the missing -- bla --- bla markers
cotto-work purl, pipp is <reply>Pipp is Parrot's PHP
purl-- 19:14
rurban I have to package the new clisp-2.46 now, and come then back to parrot. I believe some there are still some dynlib problems with wrong dll names for cygwin. 19:16
particle heads for the rain forest. happy fourth! & 19:18
cotto-work take pictures! 19:19
dalek r29032 | fperrad++ | trunk:
: [Pipp] add PMC PhpResource
diff: www.parrotvm.org/svn/parrot/revision?rev=29032
r29033 | bernhard++ | trunk:
: [Pipp PCT] Add bitwise ops to optok parsing.
: However readded tests are still TODO.
diff: www.parrotvm.org/svn/parrot/revision?rev=29033
cotto-work barney, does fperrad know that I've got an out-of-tree phparray implementation? 19:25
I'd hate for there to be duplication on something like that 19:26
barney cotto: I don't know. Maybe we should do a #pippsketch 19:27
cotto-work getting him to hang out on #parrot would be sufficient 19:28
barney That's right. 19:29
cotto-work do you know why he doesn't? His English seemed fine over email.
barney Probably simply personal taste 19:31
PerlJam cotto-work: why out-of-tree? :) 19:32
cotto-work there's no accounting for taste
I wrote some of it during working hours and need to get the legal dep't to clear it before I can commit
PerlJam oh.
cotto-work yeah 19:33
barney is calling it a day
19:48 iblechbot joined
Whiteknight Is there a way to determine whether a given PMC has an overridden Invoke vtable method? 19:51
or, whether it's invoke vtable is defined in PIR?
Tene Hmm... I wonder if I committed something I shouldn't have committed. 19:53
pmichaud ...now to see how much of spectest_regression is broken with my changes. 19:54
dalek r29034 | tene++ | trunk: 19:59
: [lolcode]
: * Oops, left some debug statements in. Remove them.
diff: www.parrotvm.org/svn/parrot/revision?rev=29034
Whiteknight will the find_method vtable function find a vtable method if it exists, or will it only find methods? 20:04
pmichaud it only finds methods 20:05
Whiteknight is there something I can do to look up a vtable method then, given it's name?
pmichaud vtable methods aren't callable directly from pir, unless they're indicated via :method or are otherwise treated as a sub 20:06
Tene What is the consequence of running load_bytecode on the same pbc multiple times?
pmichaud tene: if it's the same pathname each time, only the first load occurs. Later ones are short-circuited.
Tene Fantastic.
Whiteknight okay, I think i'm thinking about the wrong problem
pmichaud parrot doesn't distinguish between 'foo.pir' and 'foo.pbc' (those would each be loaded) 20:07
and likely 'path/to/foo.pbc' and 'foo.pbc' would cause a double-load also
we had some discussion years ago about embedding a uuid into the .pbc files to detect it based on the file..... but that didn't happen
Whiteknight: if I define a vtable method in PIR as .sub 'foo' :method :vtable('get_boolean') 20:08
then I can only get to it as a method by using $P0.'foo'
er
then I can only get to it as a method by using $P0.'foo'() --- i.e., find_method will only find the 'foo' entry
nopaste "tene" at 67.137.148.11 pasted "handle :lang in eval()" (47 lines) at nopaste.snit.ch/13457
Whiteknight pmichaud, I'm trying to fix invokations of the type $P0(), which calls the invoke vtable method
pmichaud Whiteknight: yes, I remember those being somewhat broken. :-| 20:09
Tene That's a bit hackish, but it works until we actually have a registry solution of some sort.
pmichaud ...but I thought they were fixed now. at least when I tested it a couple of months ago it seemed to do what I wanted
Whiteknight I think IMCC generates a callmethod opcode for that, and I think I can implement the solution directly in the opcode itself if I can figure out what I need
it probably works now, I'm trying to implement a patch where :vtable functions have the "self" keyword 20:10
pmichaud ....why would $P0() generate a callmethod opcode? that seems....wrong
Whiteknight maybe it generates an invoke opcode, I'm having trouble reading this IMCC source
pmichaud invoke opcode would be correct, yes.
Whiteknight either way, I'll figure it out
pmichaud Whiteknight++ 20:11
pmichaud gets a stunned look
<stunned look>....spectest_regression passed with my changes on the first attempt.</stunned> 20:12
Tene Nice.
Whiteknight pmichaud++
pmichaud that's.... scary.
Tene pmichaud: does it pass *more* tests, though?
pmichaud good scary, but still scary.
20:12 rurban_ joined
pmichaud Tene: if I remove a few 'skip' markers it might :-) 20:12
PerlJam pm: clearly your changes weren't broad and sweeping enough :)
pmichaud I guess not. 20:13
I guess I need broader and sweepier changes.
Tene pmichaud: will you have tuits to look at that eval patch for me? 20:15
20:15 allison joined
Tene Seems to work fine with lolcode, but cardinal gives me some weird errors I need to look at. 20:16
pmichaud what if the name of the compiler doesn't match the name of the pbc?
perhaps rakudo should have a registry of :lang values, at least short-term. 20:17
Tene That's too architectural for me to propose. 20:18
Whiteknight philosophical question: Instead of treating the "self" of a method as just the first in a list of arguments, could we create an interp->arg_self field and pass it in there separately? 20:19
Tene tcl gives me 'Null PMC access in find_method' and cardinal gives me "push_pmc() not implemented in class 'Sub'"
Tene tries lua 20:20
pmichaud I really like the fact that self is the first argument
it fits well for Rakudo and PGE
dalek r29035 | moritz++ | trunk:
: [rakudo] added S03-operators/arith.t to spectest_regression. Auzon++
diff: www.parrotvm.org/svn/parrot/revision?rev=29035
r29036 | fperrad++ | trunk:
: [Pipp] fopen, fclose & fpassthru
diff: www.parrotvm.org/svn/parrot/revision?rev=29036
Whiteknight okay
Tene lua gives me "Unknown PMC type to thaw 0" 20:22
Whiteknight okay, let me ask from a different angle. If I overwrite the invoke vtable of the Sub pmc, what does that look like internally? How does parrot know whether to call the PIR method or the C method? 20:23
Tene APL works, except for encoding issues.
pmichaud I don't think you can overwrite 'invoke' of the Sub pmc, except via a subclass of Sub
that's like saying "how can I overwrite the get_integer vtable of the Integer pmc" 20:24
Whiteknight oh, I see what you are saying, so you cant have both a PIR and a C version of the same vtable method in the same class? That makes a little bit more sense
pmichaud I'm not even sure it's possible to overwrite a vtable method of a PMC class 20:25
(from PIR)
...but if you can, then it would seem to replace any existing vtable method for that PMC class 20:26
Whiteknight okay, so that's only possible for PIR-defined classes and subclasses?
pmichaud I think so. I'm not the architect, but that's my expectation.
20:27 AndyA joined
Whiteknight okay, so would you know if, at the C level, that there is a way to determine whether a particular vtable method is defined in C or PIR? 20:27
Tene Ooo... I get "continuation jumping runloops" trying to eval php from rakudo.
pmichaud Tene: I suspect that :lang on eval may need to wait on pdd25cx, then 20:28
if not for rakudo (and others) to start using .HLL
Whiteknight: I'm sure there's a way to find out if a vtable method is defined in C or PIR, but it seems like one shouldn't need to check that
Whiteknight pmichaud, you would think so. PIR-defined vtable methods need to be passed the "self" argument, whereas C-defined versions already have it 20:29
"invoke methods" 20:30
pmichaud ...but wouldn't this be the same code that is already handling :method flags?
Whiteknight no. $P0() calls the invoke opcode, not the callmethod one 20:31
pmichaud let me put it another way
currently if I do
.sub 'foo' :method :vtable('get_boolean')
and then later do
$I0 = istrue $P0
then my 'foo' method gets invoked, and self is properly set to $P0 20:32
note that there's no "callmethod" opcode here.
so _something_ is already handling this.
Whiteknight okay, I think I'm explaining it wrong
I'm talking about the "invoke" vtable method only, not get_boolean or any others
if I have ".sub invoke :vtable", without the :method, the invoke function should have a "self" argument 20:33
pmichaud ...but if you wrote ".sub invoke :vtable :method" it would work, right?
Whiteknight probably, yes
pmichaud that's what I mean "it's the same code that is already handling :method flags"
we just want it to happen for :vtable even when :method isn't present.
i.e., ":method" is in some sense redundant here --- every :vtable effectively implies :method 20:34
Whiteknight exactly. But IMCC can't determine whether "$P0()" calls a custom vtable override, however
pmichaud I don't think IMCC is what should be determining that.
that seems like it's part of the vm itself
Whiteknight But IMCC sets up the code to pass the arguments, including the "self" argument 20:35
pmichaud ohhhhhhhh
Whiteknight so, based on syntax, if I call "foo.bar()" IMCC passes "foo" as the first argument to "bar"
pmichaud this gets back to my point earlier
$I0 = istrue $P0
Whiteknight but If I call "$P0()" It won't pass $P0 as the first argument to it's invoke vtable
pmichaud IMCC doesn't have to know that $P0 is to be the first argument to 'foo' -- something else is doing that.
same goes for $P0() 20:36
IMCC shouldn't be responsible for passing the additional argument
Whiteknight Right, which is why I'm trying to find a more appropriate place to do it
pmichaud instead, the invoke opcode needs to be smart enough to say "oh, I'm going to a PIR vtable method, so pass the thing being invoked as its first argument."
Whiteknight Exactly, and if the invoke vtable method is a PIR function, we need to pass the invoked object as the "self" parameter first 20:37
currently, this is not happening, unless we do :method too
pmichaud and if .sub 'invoke' :vtable :method already works, then the 'invoke' opcode already has the logic for doing that
(otherwise it wouldn't work.) 20:38
Whiteknight let me test quickly that it actually does work as I am expecting...
pmichaud yes, it's entirely possible that it doesn't work.
Whiteknight no, it doesnt work
nopaste? 20:39
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/
pmichaud okay, so it's the invoke opcode that likely needs work
but IMCC should always generate the same code for $P0() (since IMCC can't know what $P0 is)
Whiteknight right, that's the conclusion I'm slowly arriving at
Yeah, I spent a lot of time reading through IMCC before I realized that
pmichaud ....actually, it's not even the opcode that needs to do it 20:41
it's the invoke vtable method that needs to do it
just a sec 20:42
Whiteknight rafb.net/p/nCAxGE45.html
this shows you what I'm trying to do, basically 20:44
i have the basics up and running in branches/vtable_has_self
pmichaud I get "invoke() not implemented in class 'Foo'" 20:45
ah, missing a namespace
nopaste "tene" at 67.137.148.11 pasted "parrot dies on loading perl6.pbc and cardinal.pbc" (8 lines) at nopaste.snit.ch/13459
pmichaud okay, now I get "too few arguments"
so :method doesn't help here 20:46
Whiteknight right, it's attempting to slurp up "self" as the first argument, but a self was never passed
in C, it's always called self->vtable->invoke(interp, self, next_addr), so it has the self. 20:47
pmichaud I think the culprit is src/pmc/object.pmc:528-529
it could also be the invoke vtable method in Sub 20:48
Whiteknight is "object.pmc" a top-level class?
pmichaud yes.
it's the base class for all PIR-class objects
Whiteknight I've been hunting for this kind of thing all day 20:49
and you find it in like 30 seconds
pmichaud I have a few years advantage in parrot
also, I was recently in the invoke code when trying to figure out the lexical issues a couple of weeks ago :-)
Whiteknight so if I push on another argument in that place you pointed out, you think that will solve (or approximately solve) my problem? 20:50
20:50 AndyA joined
pmichaud I'm not sure. I'm thinking maybe not. 20:50
Whiteknight well, I'm going to try it anyway
pmichaud there's got to be another step involved here somewhere
Whiteknight why do you say that?
pmichaud I'm trying to figure out how the 'istrue' opcode manages to set 'self' 20:51
istrue just becomes a call to the get_bool vtable method
and somehow that vtable method manages to set self when calling a PIR-based method
Whiteknight does is_true have self in trunk? 20:52
pmichaud lost me there.
Whiteknight IMCC currently doesnt parse the keyword "self" unless the :method tag is on a sub
pmichaud right, I mean when :method is present it works somehow 20:53
and I don't mean from the IMCC perspective
Whiteknight okay
pmichaud I mean from the vtable activation perspective
somehow when the get_boolean vtable method is activated, it manages to pass the PMC as the first argument to the corresponding PIR sub 20:54
(which IMCC then picks up as :self because of the :method flag)
er, s/:self/self/
Whiteknight so the question is, how does istrue pass that first argument?
pmichaud more precisely, how does get_boolean do it.
(or get_integer, or get_pmc_indexed_keyed, or any of the other vtable methods besides 'invoke') 20:55
the 'invoke' vtable method seems to be the only one that isn't passing a first argument as 'self'
Whiteknight I think it's because of the way IMCC parses it 20:57
pmichaud nononononono
you're too fixated on IMCC, I think :-)
Whiteknight That has to be a component of if
pmichaud (easy to do :-)
Whiteknight or, problems in IMCC lead to workarounds elsewhere
pmichaud all that IMCC needs to do is recognize that when :vtable is present that it needs to recognize self 20:58
in the same way that it does for :method
but that doesn't change at all the way the vtable methods are *invoked*
Whiteknight well, it does that now in my branch
pmichaud because IMCC doesn't invoke vtable methods
in particular, IMCC has no control over what arguments are sent to vtable methods -- all it does is say what to do with them when they're received
Whiteknight I think I see your point 20:59
so then it does come down to a problem with the invoke vtable method not passing it's "self" correctly
pmichaud correct
do we have an example of an 'invoke' vtable method written in PIR that works? 21:00
(either with or without :method?)
Whiteknight well, no.
pmichaud well, there ya go. :-)
Whiteknight all current tests are written using the "vtable doesnt have self" rule, so all the tests for it break when we add it because there aren't enough arguments floating around
pmichaud getting IMCC to recognize :self with :vtable is probably a separate issue from getting the invoke vtable method to properly pass self.
...they are? 21:01
whoa
pmichaud checks
Whiteknight Yeah, t/pmc/parrotobject.t has about 3 or 4 tests that die when we enable "self" parsing
t/pmc/namespace.t has one also
pmichaud oh, but that's not "all current tests" 21:02
most of the tests in t/ for :vtable have :method also, which means that they recognize 'self'
ack ':vtable' t
Tene pmichaud: is it that .HLL works fine but isn't used by most HLLs, or is .HLL not fully implemented? 21:03
Whiteknight Most are testing the "init" vtable, all the ones testing the invoke vtable without :method fail
pmichaud Tene: it's that PCT isn't HLL aware yet, and we have to work out the symbol export/import issues
Tene Hmm. Okay. 21:04
pmichaud Whiteknight: I think the first goal should be to get :vtable to be able to pass the present set of tests (that are currently passing) without requiring :method
Tene So now I need to learn about .HLL
pmichaud Tene: in particular, when a language adds .HLL, then all of its symbols appear in a namespace separate from other HLLs 21:05
Whiteknight pmichaud, that's what I'm working on now. But without proper "self" passing, all the tests don't get enough arguments.
pmichaud Whiteknight: right, so it's just a matter of getting imcc to recognize that :vtable should cause self
but those tests that aren't currently passing (such as invoke :vtable) probably won't start passing because of that
Whiteknight I have that done already. IMCC recognizes self in :vtables in my branch
but allowing the keyword isn't the same as making sure a value gets passed for it 21:06
Tene pmichaud: would making PCT be .HLL-aware be a pretty significant redesign of PCT, or just a modification?
21:06 AndyA joined
pmichaud Tene: significant -- I'll explain in a second 21:06
Tene can wait. :)
pmichaud Whiteknight: I think we're in pretty close agreement (more)
I'm saying that having :vtable work without :method for the existing tests that pass is worth committing. 21:07
I'm also saying that getting self to work on those vtable methods where it's not presently working is probably a separate bug/issue
in other words
if I can write
.sub 'foo' :vtable('get_boolean') # note, no :method 21:08
and have the istrue opcode dtrt and that 'foo' has a self symbol locally defined, then that's really what the original ticket was trying to address
Whiteknight ok
I don't like committing things that break tests though!
pmichaud which tests break? 21:09
I guess that's the part I don't quite understand.
moritz pmichaud: how's your rakvar branch going?
dalek r29037 | moritz++ | trunk:
: [rakudo] add S04-statements/repeat.t to spectest_regression
diff: www.parrotvm.org/svn/parrot/revision?rev=29037
Whiteknight t/pmc/parrotobject.t and t/pmc/namespace.t
pmichaud moritz: very well. All of the spectest_regression tests still pass.
Whiteknight: ohhhhhhhhhhhh
i get it, i get it
I can help there I think, just s ec
moritz pmichaud: Woot!
pmichaud moritz: yes, I'm a little taken aback and surprised. I've had to double-check to make sure I'm not accidentally running spectest_regression from trunk :-) 21:10
moritz: once I get .implicit_invocant working I'll merge back to trunk.
moritz pmichaud++ 21:11
pmichaud Whiteknight: for the :vtable test in t/pmc/namespace.t, I will argue that the test itself is incorrect. It should require a string parameter.
Whiteknight yes, I've modified that one in my branch already. It's the ones in t/pmc/parrotobject.t that are eluding me
pmichaud okay, let me look at those. 21:12
...what ticket started this whole mess again? ;_) 21:13
21:13 clunker3__ joined
Whiteknight #47674 21:14
pmichaud okay 21:15
I think allison sent you down a false trail in trying to look at expand_pcc_sub_call 21:16
I could be wrong about that, but that's my guess 21:17
Whiteknight yes, it was a bit of a false trail. It looked enticing, but it just wasn't correct 21:18
21:23 teknomunk joined
pmichaud sorry, got interrupted here 21:36
Whiteknight I think I have it mostly figured out, I can't determine how to push a new argument onto the argument list, however 21:37
pmichaud vtable arguments are fixed
Whiteknight no, I mean the arguments passed to the PIR vtable method 21:38
pmichaud oh, that. yeah, I don't know how that happens either.
anyway, I think we're well beyond the edge of my knowledge now -- hope I didn't throw you onto any more false trails
Whiteknight looking at the seg_args and get_params opcodes, I still can't figure out how
it's okay, I think I'm going to have to send Allison an email about it
pmichaud Tene: (HLL) Parrot has a number of HLL namespaces 21:39
right now PCT and PGE both live in the 'parrot' HLL namespace
(and that's where they're likely to remain)
Tene listens.
pmichaud but things like rakudo and tcl and lolcode and the like should really live in their own namespaces
Tene Right.
pmichaud which means that when we got to look up a symbol like PAST::Op, we have to either (1) know to go look for it in the 'parrot' HLL namespace, because that's where PCT lives, or (2) import the PCT symbols into the current HLL namespace 21:40
s/got/go/
same for PGE and P6object
in fact, with P6object, when we go to create a new class, we want the protoobjects for that new class to be created in the caller's HLL namespace, not in P6object's 21:41
as well as any methods that get created or imported
for the choice between (1) and (2) above, currently I'm thinking the best option will be to import the PCT symbols into the current HLL namespace 21:42
but I'd like to have a way of doing that which doesn't require each HLL to specify all of the symbols that ought to be imported 21:43
bacek morning everyone 21:44
Tene nods.
pmichaud I'm planning to create a branch to get rakudo into its own HLL -- that might actually be a good task for as soon as I get the lexicals worked out 21:45
at the same time we could play with getting other languages into their own HLL as well (and do it in the same branch)
Tene pmichaud: is there currently a way to get the caller's HLL namespace?
pmichaud I suspect via getinterp there may be. It's one of those things I need to look at. 21:48
if you wanted to figure that out it'd be a big help :-)
although it wouldn't surprise me if Tcl already does it :-P
(Tcl being the best example of using .HLL that we have to date)
Tene $P0 = getinterp 21:49
ns = $P0['namespace'; 1]
in tcl
Let's see what's in there.
pmichaud does that get namespace or hll namespace?
we really want/need the hll namespace
_alternatively_ 21:50
we could pass the hllnamespace to p6object
and it would just store it there.
Tene Oh, true.
That might be nice as an option anyway.
pmichaud yes.
but somehow I still think it's useful if p6object is hll aware
Tene Looks like no. 21:55
NotFound Someone has at hand some pir that fails because of gc problem? 21:57
Tene pmichaud: getinterp['namespace'].get_name()[0] ha sit 22:03
s/ha sit/has it/ 22:04
pmichaud Tene++ 22:10
afk for a while # going out for dinner
Tene However, that's the *current* namespace, not of the caller. 22:11
Tene finds of caller
getinterp['namespace';1].get_name()[0] has caller's 22:13
bacek nopaste? 22:14
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/
nopaste "bacek" at 202.7.166.165 pasted "infix:xx= implementation for moritz/pmichaud (S03-operators/repeat.t is #pure after this patch)" (22 lines) at nopaste.snit.ch/13461 22:16
bacek afk # $dayjob->accept($self) 22:17
22:21 Ademan joined
moritz that patch leads us to the question: should we implement all those combined infix + asignment operators manually, or should we wait for another big refactor and generated them automatically? 22:21
22:49 silug joined
moritz temporarily retires to his bed 22:49
Tene go home now. 22:51
23:03 slightlyoff joined 23:04 slightlyoff left 23:10 rdice joined 23:24 tetragon joined 23:27 AndyA joined
pmichaud (implement combined ops): I think for ops that we have specific (and likely used) tests for, we can go ahead and generate the manually. But I wouldn't make any special effort to generate them all, as eventually they'll be done automagically. 23:36
23:52 bacek_ joined
japhb pmichaud: Will the automatic generation for op/assign just create "A = A op B"? If so, that's an efficiency problem. Nice as a fallback, but not what I'd want for the standard set .... 23:57