Parrot 3.0.0 Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Goals: Fix ipv6-related failures | Help testing/fixing Lua on gen_gc2 branch
Set by moderator on 15 February 2011.
ttbot Parrot 4b37667f i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/18886 00:04
plobsing by the looks of that tt report, looks like someone has to rebootstrap ops. 00:08
00:09 donaldh left 00:14 vmspb left 00:15 cotto joined
cotto ~~ 00:15
00:16 cosimo joined 00:20 mj41_ joined 00:24 mj41 left, mj41_ is now known as mj41 00:28 lucian_ joined 00:29 Util left, Util joined 00:31 lucian left 00:35 hatseflats left, hatseflats joined 00:39 lucian joined 00:43 lucian_ left
dalek TT #2017 created by jkeenan++: gen_gc2 branch: t/pmc/namespace-old.t and t/pmc/resizablepmcarray.t test ... 00:45
TT #2017: trac.parrot.org/parrot/ticket/2017
rrot/gen_gc2: 6ddd127 | bacek++ | lib/Parrot/Pmc2c/PCCMETHOD.pm:
Fix previous commit with fixing PCC RETURN rewriting.
00:47
bacek_at_work whiteknight, can you pull gen_gc2 and retest it?
00:49 cosimo left 00:52 mtk left
whiteknight sure 00:55
00:55 lucian_ joined 00:58 lucian left 00:59 mtk joined 01:01 dmalcolm left
dalek TT #2018 created by bacek++: Improve pmc2c to support :manual_wb flag. 01:01
TT #2018: trac.parrot.org/parrot/ticket/2018
01:02 lucian__ joined 01:03 lucian_ left
whiteknight bacek: tests looking good so far. I've submitted a few passing smoke tests 01:06
cotto bacek_at_work, I like that solution. 01:07
01:07 lucian__ left
bacek_at_work cotto, TT #2018? 01:07
cotto yes 01:08
bacek_at_work cotto, yes. It's exactly what we discussed. 01:09
cotto that'd explain it
;)
bacek_at_work :) 01:11
nwellnhof imo we should aim for a more sytematic approach to write barriers in the long run
plobsing nwellnhof: systemic how?
nwellnhof *systematic 01:12
a macro to change PMC pointers
bacek_at_work SETATTR_foo? 01:13
It will not cover 100% of usecases
nwellnhof why not?
plobsing to be more general you could have a macro to "set this PMC pointer on behalf of this PMC"
nwellnhof yes, i proposed that on parrot-dev quite a while ago 01:14
cotto so you did 01:21
whiteknight we used to have writebarrier macros 01:28
GC_WRITE_BARRIER(interp, parent, child)
the old generational gc used intergenerational-pointer banks 01:29
nwellnhof parrot had a generational gc before? 01:30
01:33 mikehh left
whiteknight a prototype one. to my knowledge it was never completed and never worked 01:33
eventually we just ripped it out, because it didn't work and was geting increasingly bitrotten as we refactored 01:35
01:35 cotto_work left 01:41 cotto_work joined 01:56 nwellnhof left 02:07 kid51 joined
dalek rrot-test: 5ca5b3c | Whiteknight++ | tap_harness/ (2 files):
in the harness, handle the case where we have no TAP output. Displayed as 'not ok', but doesn't count as a failure
02:07
rrot-test: ddbe2e5 | Whiteknight++ | xunit/ (4 files):
xunit: remove the Standalone class. It wasn't used in the current scheme
rrot-test: f942d1c | Whiteknight++ | t/ (2 files):
t: add an example tap_harness harness and an xunit test file
02:10 kid51 is now known as kid51_at_dinner
bacek_at_work (761 - 693) / 761 * 100 02:10
aloha 8.93561103810775
dalek rrot-test: 4358d2f | Whiteknight++ | / (5 files):
fix all the failures I already introduced tonight
02:39
rrot-test: 7fc9c28 | Whiteknight++ | / (8 files):
rearrange setup. get rid of the 'common' lib, which wasn't common
rrot-test: fbe22c2 | Whiteknight++ | xunit/ (4 files):
+files
02:39 whiteknight left 03:14 kid51_at_dinner left 03:47 patspam joined 03:54 jsut joined
dalek TT #406 closed by jkeenan++: t/examples/library.t - pcre check flawed 03:57
TT #406: trac.parrot.org/parrot/ticket/406
03:59 jsut_ left 04:05 rdesfo left
dalek TT #2017 closed by bacek++: gen_gc2 branch: t/pmc/namespace-old.t and t/pmc/resizablepmcarray.t test ... 04:13
TT #2017: trac.parrot.org/parrot/ticket/2017
04:25 mikehh joined
dalek rrot/gen_gc2: 0aa7b59 | bacek++ | lib/Parrot/Pmc2c/PMC.pm:
Add vtable_method_has_manual_wb accessor
04:54
rrot/gen_gc2: 99e9649 | bacek++ | lib/Parrot/Pmc2c/PMC.pm:
Don't generate WBed vtables for :manual_wb VTABLEs
rrot/gen_gc2: 8fcbee3 | bacek++ | src/pmc/fixedintegerarray.pmc:
Mark set_foo_keyed_bar methods with :manual_wb in FIA
cotto bacek_at_work, is the "note" in t/steps/auto/gc-01.t important? 04:56
05:04 patspam left 05:07 lateau joined
dalek rrot/gen_gc2: a81c3fc | cotto++ | / (2 files):
fix (or at least silence) failing auto::gc tests, set gms as configure-time default
05:08
cotto I hope it wasn't important.
cotto github++ 05:33
05:36 arnsholt left 05:38 arnsholt joined 06:11 rurban_ joined 06:13 rurban left 06:14 rurban_ is now known as rurban
cotto I'm thinking that in m0 bytecode, there'll be a directory segment, a bytecode segment, a variables table segment and a metadata segment, possibly with several instances of the last three. 06:23
Does that make sense, and does it sound like a good idea to tie the last three (bytecode, variables table and metadata) together?
bacek_at_work cotto, I just modified original auto::gc step. "note" was already in. I think it's better to ask kid51 about importance of this test. 06:54
cotto bacek_at_work, ok 06:55
msg kid51 Could you take a look at github.com/parrot/parrot/commit/a81c3fc9b2 and make sure I'm not messing up anything important? The "note" appeared to be causing problems so I took it out, but I'm not sure what it was supposed to be doing there. 06:56
aloha OK. I'll deliver the message.
06:56 theory left
cotto bacek++ for aloha 06:57
It's nice to have a usable bot around.
especially since it doesn't do all the stupid stuff purl did
bacek_at_work cotto, do we still need yaml-fix branch? 07:07
cotto I suspect not, but I'd have to look at it. 07:10
just a sec
bacek_at_work cotto, it's your fingerprints all over the place :)
cotto You'd think I'd remember that. 07:11
It's safe to nuke and I'll do so now. 07:13
done
bacek_at_work, how big of a problem is mmd_cache causing for gen_gc? 07:14
bacek_at_work cotto, no problems at all. I already patched rakudo to handle it properly. 07:15
Just cage cleaning
cotto ok
I saw the "major" priority and wondered about it.
bacek_at_work msg whiteknight Can we kill tt389_fix branch?
aloha OK. I'll deliver the message.
bacek_at_work cotto, erm. I probably was too angry after couple of hours of debugging. 07:16
cotto totally understandable 07:19
bacek_at_work bugs.debian.org/cgi-bin/bugreport.cgi?bug=610994 07:24
cotto, we should look at this debian bug. 07:25
And I'm going home now.
cotto looks
2.9.1. Charming. 07:26
07:28 jan left
cotto bacek, how did you become aware of that bug? 07:36
moritz any objections to just adding the --mandir=/usr/share/man option in ports/debian/rules ? 07:45
cotto moritz, no, but I'd also like to make sure we have someone around who understands those files and has tuits to maintain them. 07:49
moritz only has very shallow understanding 07:50
cotto same here
nothing deeper than a post on the ksplice blog 07:51
moritz looking at the control file... huh. Package: libparrot2.9.1
cotto looks like it's generated from control.in 07:52
moritz ah, right 07:53
that makes sense
but what generates them? :/
I guess there's a doc somewhere...
dalek rrot: 4c50f6b | moritz++ | ext/nqp-rx/src/stage0/ (3 files):
[nqp-rx] import bootstrap files from fde6377648205d7e9b28bbbc09d730df8ae63978; allows <*> as the body of proto regexes
07:54
rrot: 09934c9 | moritz++ | ports/debian/rules:
change mandir in debian package; see bugs.debian.org/610994
moritz oops, I didn't mean to push 4c50f6b
cotto beats me
moritz I guess it doesn't hurt either
08:10 ShaneC joined 08:16 lucian joined 08:24 lucian left 08:25 fperrad joined 08:40 mtk left 08:46 mtk joined 09:15 ShaneC left
dalek rrot/m0-spec: c70f917 | cotto++ | docs/pdds/draft/pdd32_m0.pod:
add some thoughts on the binary format for m0
09:30
dukeleto ~~ 09:47
bacek ~~
dalek rrot/leto/embed_grant: dcea7b5 | dukeleto++ | t/src/extend_vtable.t:
Add coverage to thawfinish vtable
rrot/leto/embed_grant: f569232 | dukeleto++ | t/src/extend_vtable.t:
[t] Parrot_PMC_shift_pmc
10:08 AzureStone left, AzureStone joined
bacek cotto, I think I found next -Ofun project: extend opsc to properly parse op bodies. 10:10
Then we can use it to emit current core_ops.c.
Or Lorito
Or jitted code directly
(With help of pirate)
dalek p/match-nom: 44a0d5f | jonathan++ | src/ (2 files):
Some fixes to the exists v-table overrides. Gets us a bit further along the compile.
10:17
10:20 contingencyplan left
dalek p: 8d32128 | jonathan++ | src/cheats/hll-grammar.pir:
Gut the hll-grammar cheats, since they got incorporated into HLL::Grammar as part of the 6model changes. Just left behind one little bit which needs migrating.
10:28
bacek schani.wordpress.com/2010/12/20/sgen/ 10:36
Heh :) 2 years
dalek p: 6f1b093 | moritz++ | src/cheats/hll-grammar.pir:
can rip out even more of cheats/hll-grammar.pir
10:45
mj41 mingw32-make on WinXP throw dialog window ... miniparrot.exe .... CreateSymbolicLinkW not found in KERNEL32.dll 11:05
probably on this command tt.taptinder.org/cmdinfo/19967 11:07
oh ... on nwellnhof/unicode_dynpmcs branch tt.taptinder.org/cwm/wconf_rref/id-5 11:08
11:13 lucian joined
dalek rrot/gen_gc2: 09934c9 | moritz++ | ports/debian/rules:
change mandir in debian package; see bugs.debian.org/610994
11:25
rrot/gen_gc2: 57b0c83 | bacek++ | /:
Merge commit 'b1d3cb567dc9c82d46741506719bfe8128337a29' into gen_gc2
rrot/gen_gc2: f1af399 | bacek++ | /:
Merge commit '7db4a1f04ea21c24c3a9882e50125cc4d989fb64' into gen_gc2
rrot/gen_gc2: 74d591c | bacek++ | / (4 files):
Merge branch 'master' into gen_gc2
rrot/gen_gc2: 22e1fca | bacek++ | compilers/opsc/src/Ops/Trans/C.pm:
Bring Ops::Trans::C from master
rrot/gen_gc2: 2d0ad22 | bacek++ | compilers/opsc/ops2c.nqp:
Remove accidentally committed debug output
rrot/gen_gc2: 607b197 | bacek++ | include/parrot/list.h:
Bring include/parrot/list.h from master
p/match-nom: f10b936 | moritz++ | src/ (2 files):
vtable delete overrides
11:27
p/match-nom: a22edc2 | moritz++ | t/nqp/52-vtable.t:
more vtable tests
11:33 darbelo joined 11:36 benabik left 11:38 lucian left 11:45 bluescreen joined
bacek moritz, does nqp support attributes as rvalues? 11:50
11:50 lateau left 11:52 lucian joined
bacek moritz, nm, found it 12:08
12:19 bluescreen left
dalek rrot-test: e7e27b9 | Whiteknight++ | / (2 files):
small cleanups
12:22
rrot-test: 67faf3a | Whiteknight++ | / (9 files):
s/UnitTest/ParrotTest/, for consistency
tadzik a testing framework for Parrot? 12:24
12:26 bluescreen joined
dalek p/ctmo: b40895c | jonathan++ | src/metamodel/reprs/P6opaque.c:
Fix freeing of memory associated with type objects that happen to get GC'd.
12:40
p/ctmo: e6663bb | jonathan++ | src/NQP/Grammar.pm:
Construct meta-object at compile time.
p/ctmo: 2da9123 | jonathan++ | / (3 files):
Stub in serialization context builder, with some explanation of what it's aimed at doing.
p/ctmo: 0a16798 | jonathan++ | src/HLL/SerializationContextBuilder.pm:
Stub in various initial methods that I expect to have in the serialization context builder.
rrot: 8656264 | (Gerd Pokorra)++ | compilers/data_json/JSON.nqp:
add a JSON grammar with NQP
12:41
rrot: cc5339a | (Gerd Pokorra)++ | MANIFEST:
update manifest
12:56 lucian left
tadzik bacek: nopaste.snit.ch/32946 Rakudo spectest, gen_gc2 with --optimize 12:58
moritz tadzik, bacek: the first test failure (protoregex.t) is actually a test change, nothing to blame gen_gc2 for 12:59
tadzik first fail is some parse error, second is something matching related
yeah, I think so
nopaste.snit.ch/32947 -- the second test 13:00
moritz tries a fix for the first test 13:01
tadzik looks like .worry being .panic or something 13:03
moritz a syntax change that rakudo hasn't bothered to do 13:04
dalek rrot: 127b072 | (Gerd Pokorra)++ | tools/dev/mk_manifest_and_skip.pl:
documentation: tell that MANIFEST is to add
13:08
13:19 benabik joined 13:33 mtk left 13:38 whiteknight joined
whiteknight good morning, #parrot 13:44
tadzik good morning whiteknight
whiteknight hello tadzik, how are you today? 14:02
14:11 rurban_ joined
tadzik whiteknight: not bad. Trying to resurrect Close 14:11
whiteknight oh really? That's awesome 14:12
14:12 rurban left 14:13 rurban_ is now known as rurban
tadzik yeah, the idea is awesome :) 14:13
whiteknight been talking to Austin about it at all? 14:15
tadzik nah, but I remember dukeleto mentionind that. Maybe it'd be good to. So far, I converted the repo to git, fixed some regressions and I plan to push it to GH and ask for help, as there are too many mysterious things for me 14:16
whiteknight: github.com/tadzik/Close if you want to take a look 14:22
the problem is described inside the commit msg 14:23
tadzik mails Austin
Coke macports updated to 3.0 14:26
(may take some time to arrive, but the upgrade has been committed to the ports repo.) 14:28
whiteknight tadzik: Austin is extremely bright, and much of his software has a lot of functionality. I know Kakapo did a hell of a lot of work, some of it I still don't understand 14:31
15:03 Andy joined
tadzik hrm, is api.yaml really a valid yaml? 15:11
I checked under 2 different validators and they both raise syntax errors
darbelo Really? I thought someone had mentioned writing tests for that. 15:22
15:24 mtk joined 15:27 plobsing left
dalek rrot: 7066f3b | (Gerd Pokorra)++ | co (3 files):
add rules to build JSON_LANG with NQP
15:28
15:28 bluescreen left
ttbot Parrot 7066f3b2 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/20555 15:30
cotto_work ~~ 15:31
ttbot Parrot 7066f3b2 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/20556 15:32
cotto_work bacek: you're not talking about parsing C, are you? 15:36
ttbot Parrot 7066f3b2 darwin-thread-multi-2level make error tt.taptinder.org/cmdinfo/20579
15:39 bluescreen joined
atrodo cotto_work> Why not? What could possibly go wrong? 15:41
dalek rrot: 6bf4a8e | (Gerd Pokorra)++ | compilers/data_json/Rules.mak:
correct mistake
15:41 cognominal left
atrodo cotto_work> Then again, that's probably a noble goal for Lorito 15:41
cotto_work parsing C?
or using M0 ops to replace it?
15:42 contingencyplan joined
dalek TT #2019 created by doughera++: Set GC_DEFAULT_TYPE in config.h instead of on cc command line. 15:43
TT #2019: trac.parrot.org/parrot/ticket/2019
atrodo cotto_work> Parsing C or C-like to generate the M0 for the M1 ops
cotto_work The current goal is the opposite of that. 15:44
M0 -> C
well, a current goal
atrodo I'm just thinking, to convert the current ops to M0 could be an undertaking 15:45
15:45 plobsing joined
cotto_work atrodo: sure but much less difficult than correctly parsing C. 15:46
atrodo The parsing of C or C semantics?
benabik 'lo #parrot! 15:48
atrodo 'lo!
tadzik o/ 15:49
15:57 jan joined 15:59 dmalcolm joined
arnsholt pmichaud: I've submitted a patch to PCT at TT #2008. If you could review it, that'd be great 16:00
cotto_work seen pmichaud
aloha pmichaud was last seen in #perl6 1 mins 8 seconds ago saying "parks were quite empty".
pmichaud good morning, #parrot :=)
cotto_work welcome back, pmichaud 16:01
benabik G'morning!
pmichaud arnsholt: I don't understand why the pop_eh should be avoided/avoidable 16:02
16:03 zostay joined
arnsholt It makes my life a bit complicated in my Prolog. On backtracking (that is, invokation of a continuation) it has a tendency to hit the pop_eh a second time, which is infelicitous 16:04
16:06 lucian joined
arnsholt Doing the popping on my own was the simplest solution I could see 16:06
(A bit more context, if you know Prolog: This is the bit implementing the catch/3 structure) 16:13
pmichaud I think that in this case, perhaps you shouldn't be using the 'try' pasttype at all, and roll your own structure completely. 16:14
'try' is really intended to be a nicely encapsulated exception handler; removing the pop_eh loses that encapsulation
arnsholt Good point 16:15
pmichaud it does indicate a possible issue with Parrot's exception model though -- should a continuation also encapsulate the exception handlers in place? 16:16
(I don't know the answer to that one.)
arnsholt Good question 16:17
Also, pmichaud++ for making me think of yet another thing that is probably wrong in my HLL =)
16:17 Patterner left, Psyche^ joined, Psyche^ is now known as Patterner 16:18 theory joined
arnsholt If I backtrack into the code protected by catch/3 and it then throws an exception, it won't work right 16:18
whiteknight prolog is tricky 16:29
does nqp have a null-coalesce operator? 16:30
arnsholt I hadn't noticed? =)
s/\\?/.
jnthn whiteknight: No, though it would be handy.
whiteknight I thought I saw an // operator somewhere, but I don't see it in the nqp-rx test suite
jnthn // is defined-or, not null-or
whiteknight oh, okay. That's probably what I need in this context 16:31
and it works in nqp-rx?
jnthn believe so
It certainly isn't something that's been added. :)
cotto_work ooc, how many pir-level subs are in perl6? 16:45
dalek nxed: r807 | NotFound++ | trunk/winxedst1.winxed:
set an attribute in ForeachStatement if the loop var is being defined, not used
16:47
whiteknight yeah, looking at the nqp grammar file it does appear to be in there 16:52
cotto_work pbc_disassemble not knowing where dynop libs live just got annoying 16:54
dalek nxed: r808 | NotFound++ | trunk/winxedst1.winxed:
fix mistake from r807
16:58
jnthn cotto_work: Not sure...all of src/builtins is hand-written PIR today. Could just grep for .sub :-) 17:00
cotto_work: That's where most of them are.
cotto_work that'd be a good first approximation 17:03
ack says ~7000
jnthn whoa...really? 17:04
Just in builtins?
cotto_work ack -a '^[ ]*\\.sub' |wc -l
that's after running make
pmichaud cotto_work: from what directory? 17:07
pmichaud@orange:~/rakudo/src/builtins$ ack -a '^[ ]*\\.sub' | wc -l
261
pmichaud@orange:~/rakudo$ ack -a '^[ ]*\\.sub' src | wc -l 17:08
399
looks like 399 in all of src/
moderator Parrot 3.1.0 Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Goals: merge and extensively test gen_gc2 17:08
lucian left
mikehh forgot to do that 17:08
cotto_work pmichaud: that's from the root of a rakudo build dir. There's probably some junk there somewhere. 17:09
pmichaud cotto_work: try "make realclean" first
and you're getting all of the generated subs, likely 17:10
i.e., everything from the grammars and core.pir and the like
and if there's a parrot subdir, you might be getting all of it as well :-)
were you looking for handwritten .subs or the generated ones as well? 17:11
cotto_work pmichaud: anything in perl6.pbc
pmichaud ah. ~7000 sounds about right to me then
cotto_work probably best to run under gdb and poke around there
pmichaud every closure is a sub
and every Perl 6 Routine/Sub/Method requires an extra "setup sub" to attach its properties 17:12
Coke any github gurus here? how to rename a github repo?
pmichaud Coke: I simply pushed to a new repo
17:12 mtk left
tadzik was somebody fixing PCT tutorial a while ago? 17:12
arnsholt Coke: Repo front page > Admin 17:13
Coke arnsholt: I see no admin link. 17:14
tadzik nvm, found in git log
arnsholt Coke: Strange. Mine is top-right, a bit to the left of the watchers and forks buttons 17:16
Coke arnsholt: D'oh. probably because I am not the /owner/ 17:17
17:17 mtk joined
arnsholt That might be it =) 17:18
Coke I'm a collaborator and can do most anything, but needed to use the partcl account to see that. thanks! 17:19
... now I need to actually think if I want to bother. ;)
tadzik hrmpf. Anyone mind me making a note in a PCT tutorial that our Squaak in Episode 3 will not be runnable before completing the exercises? 17:24
Coke nope. 17:28
mikehh tadzik: don't se why you shouldn't 17:29
see
tadzik first I need to make my squaak run _after_ completing the exercises 17:31
neh, I can't type. "idenfifier" 17:32
dalek rrot: 21e8eff | tadzik++ | examples/languages/squaak/doc/tutorial_episode_3.pod:
Add a note in Squaak tutorial episode 3
17:37
17:37 bluescreen left
cotto_work 7641 subs are loaded by parrot when running ./perl6 -e '' 17:42
moritz cotto_work: it builds alll the built-in types at startups 17:43
because we can't serialize them at compile time, and deserialize at runtime yet
cotto_work moritz: Sure. There's lots that Parrot need to do to help get startup time down. 17:44
17:44 ambs joined
dalek rrot-container: 020ef55 | Whiteknight++ | / (6 files):
Initializer,InitializerArg -> action/Action and action/ActionArg. Create a new Action library to encapsulate some behaviors I am going to reuse elsewhere
17:45
rrot-container: 953b28d | Whiteknight++ | event/Event (2 files):
add two new stub files for an eventing system
rrot-container: b0cdc5c | Whiteknight++ | / (2 files):
A fix for ParrotContainer::build. Don't throw an exception if the BUILD method is not present
rrot-container: d1b4956 | Whiteknight++ | t/ (3 files):
add in a quick Parrot-Test test harness, and two stub tests for Action and ActionArg
rrot-container: 2a8d06a | Whiteknight++ | / (4 files):
add in some tests for Container
rrot-container: 8d5ae15 | Whiteknight++ | / (2 files):
the default_container method belongs in Container
rrot-container: a3bbe65 | Whiteknight++ | t/container/Container.t:
test for default_container
rrot-container: 84df207 | Whiteknight++ | / (4 files):
get events working, basic implementation
rrot-container: fe75d2b | Whiteknight++ | event/Setup.nqp:
+missing file
rrot-container: 9aab636 | Whiteknight++ | t/ (2 files):
+some basic tests for event
rrot-container: 79f7210 | Whiteknight++ | / (2 files):
simplify the way we pass data to our Actions from our Events. Args passed in raise_event are in the event as a payload. Other args from injectors are passed as parameters
rrot-container: d9e419a | Whiteknight++ | t/event/EventManager.t:
+a few tests for events
cotto_work My curiousity is because I'm thinking about bytecode.
moritz cotto_work: fwiw jnthn has started a nqp branch to do the serialization stuff
cotto_work moritz: which branch? 17:46
I guess there probably aren't so many that it'll be hard to guess.
moritz ctmo
doesn't do all too much yet 17:47
cotto_work Do you know his plan? 17:53
moritz there's a lengthy-ish comment describing his immediate plans 17:57
cotto_work wfm 18:02
tadzik I don't think the tutorial describes this: what's the :node($/) added to every PAST::*.new()? 18:03
s/added/passed/
benabik tadzik: It sets the node the PAST was generated from. Useful for error messages as it includes the source text and position.
tadzik: Not sure how it exactly gets used, but that's the purpose AFAICT 18:04
tadzik thanks benabik
18:21 lucian joined
Tene benabik is right; it's used for diagnostics and errors 18:30
Coke did parrot use the auto-import to get svn to github, or a manual process? 18:43
cotto_work It used a dukeleto-based process. 18:44
I think he used git-svn and a manual author map, plus some last minute committer username cleanups. 18:45
why? 18:46
Coke trying to convert a different project. it seems to just hang on the "getting authors" step.
(using github's automatic conversion)
cotto_work I didn't know they had an automatic process. 18:52
I guess I shouldn't be surprised though. 18:53
Coke ugh. my git has no git svn. 18:54
cotto_work you have to install git-svn separately 18:55
benabik Coke: Debian puts git-svn in it's own package so git-core doesn't have to depend on subversion
Coke: I'd imagine other distros do the same.
Coke trac.parrot.org/parrot/wiki/git-svn-tutorial - that can probably be archived.
cotto_work Coke: no reason to touch it. I might help out someone else. 18:56
Coke cotto_work: "svn.parrot.org/parrot" is a good reason to add a note. 18:57
cotto_work ah
good point
seeing that url gives me all kinds of flashbacks 18:58
mostly the bad kind though ;]
atrodo at least it's not cvs 19:01
cotto_work yes. cvs makes me appreciate svn, and I consider that to be a substantial accomplishment. 19:03
19:04 ambs left
cotto_work atrodo: any thoughts on the m0 bytecode ideas I pushed last night? 19:05
Coke svn does a lot of of stuff wrong compared to cvs, but I still prefer it.
atrodo cotto_work> I've glanced at it, but haven't really wrapped my head around it yet. Give me a minute 19:06
cotto_work atrodo: no rush
whiteknight cotto_work: link? 19:07
atrodo github.com/parrot/parrot/commit/c7...050e92f244 is the actual commit
dukeleto ~~ 19:08
cotto_work [ ... ] just means that the thing in the brackets can repeat 19:09
good morning, dukeleto
dukeleto cotto_work: howdy 19:12
tadzik hello dukeleto 19:14
dukeleto tadzik: good localtime()
cotto_work: i like your recent additions to m0
cotto_work: slowly but surely
cotto_work I'm toying with the idea of having one bytecode segment per sub, but I'm not sure if that's sane yet. 19:16
19:16 nwellnhof joined
nwellnhof ~ 19:16
atrodo cotto_work> I actually like that idea
tadzik dukeleto: is api.yaml actually a valid yaml? I tried it against two different validators today, both failed 19:17
cotto_work Lua does it, so it's workable on some level.
dukeleto tadzik: sadface. It should be. 19:18
tadzik: i had a test that used YAML.pm to parse it, but bacek_at_work changed the code to use our own YAML::Tiny to check it
tadzik: so if it isn't valid, then our YAML::Tiny is broke too
tadzik hmm
cotto_work It's "valid".
dukeleto cotto_work: i am not sure of the sanity of that either. I don't know the implications 19:19
cotto_work dukeleto: I may just have to start down that path and see where it leads.
atrodo cotto_work> what's your concerns about doing it that way? 19:20
tadzik wklej.org/id/477659/
an attempt with YAML.pm
plobsing cotto_work: bytecode segment per-sub is something I've thought about a lot.
the pro is better GCability, the cons are higher overhead (assuming bytecode segments have non-zero overhead) and dissallowing inter-sub-code-sharing (currently possible) 19:22
dalek rrot/m0-spec: 89c5d56 | (Jon Gentle)++ | docs/pdds/draft/pdd32_m0.pod:
Do a little bit of format cleaning on pdd32_m0.pod
19:23
plobsing overhead for bytecode segments currently includes opmapping table and related segment pointers.
whiteknight do we do any inter-sub code sharing? 19:24
plobsing who is we?
whiteknight we is parrot
plobsing we allow it
it won't break anything
cotto_work Nice. github dtrt when I try to browse to docs/pdd/draft/pddm0 19:25
github++
atrodo github has a not-even-close-to-0 level of magic 19:26
19:26 ambs joined
plobsing PCT likely won't generate it, and human generated code is also unlikely to do so either. Then again, neither of those are a gold standard of compiler technology. 19:26
atrodo Do any real-machine compilers use any inter-sub code sharing tricks? 19:27
cotto_work I don't think that bytecode segments need to have a lot of overhead. They can be flattened by a smart interp.
plobsing flattened? 19:28
atrodo: I think I've seen gcc do it on x86_64
cotto_work combined into a single segment
plobsing when? on load? that seems like an expensive proposition. 19:29
cotto_work load or at link-time
plobsing you'd have to merge all the related tables too
constant table, annotations table, debug segment, etc...
see the mess that is pbc_merge 19:30
being able to do it is one thing. *needing* to do it is wrong.
19:31 cognominal joined
cotto_work dealing with the segments associated is with is what strikes me as the hard part 19:31
dealing with the segments associated with a bytecode segment is what strikes me as the hard part 19:32
plobsing bytecode should be immutable. that also applies to loading of bytecode. we should be able to mmap bytecode and keep it shared.
if we need to fixup const-table references, we've lost that
dalek rrot/m0-spec: 62d864a | cotto++ | docs/pdds/draft/pdd32_m0.pod:
add mmap consideration to binary m0 format
19:37
atrodo Endianness is the biggest hurdle to being able to mmap, right? 19:39
cotto_work atrodo: if it's in the format we can have a simple tool to change it. 19:43
19:48 nwellnhof left
bacek ~~ 19:50
Good morning, humans
tadzik o/ 19:53
bacek tadzik, I fixed YAML::Tiny, thanks for notice :) 20:02
tadzik bacek: was it broken? 20:03
bacek cotto_work, I'm talking about small subset of C. Which is easy to parse.
tadzik, definitely.
tadzik bacek: so it doesn't parse api.yaml anymore?
bacek tadzik, I fixed it as well :) 20:04
tadzik :D
dalek rrot: 8b0e658 | bacek++ | runtime/parrot/library/YAML/Tiny.pm:
Fix dumping of strings: quote all "'".
rrot: f7415ad | bacek++ | api.yaml:
Fix yaml syntax.
rrot: 15f259e | bacek++ | api.yaml:
Rerun resolve_deprecated.nqp
tadzik so I can work on regexes now, cute
bacek tadzik++ # keep an eye 20:05
tadzik is nqp a preffered languages for internal things now?
cotto_work bacek: which subset?
bacek tadzik, not "officially". But it's in our repo. And it works.
tadzik so mk_language_shell should generate setup.nqp over setup.pir, or maybk it should be nqp as well? 20:06
bacek cotto_work, enough to parse current op bodies.
Tene tadzik: "should" isn't clear here at all. That might be nice though, yes.
cotto_work bacek: we might need a more precise definition, but that doesn't sound nearly as insane as parsing all of C. 20:07
bacek cotto_work, or patch ops to use "supported" syntax. Variables, function calls, if, for, return. I think it should be enough
dukeleto Tene: what are you asking about mk_language_shell ?
cotto_work bacek: that too
Tene dukeleto: I'm not.
cotto_work though it could limit what HLLs can do
Tene dukeleto: ITYM tadzik ?
bacek cotto_work, ?
cotto_work We'll want to look at how HLLs use ops and make sure we can cover their needs. 20:08
dukeleto Tene: sorry, i meant tadzik
tadzik: what are you asking about mk_language_shell ?
cotto_work I do like having a restricte subset of C though.
dukeleto can't use tab-complete this morning, evidently
bacek cotto_work, no. I'm talking about ops definitions. HLLs don't care how they are implemented.
cotto_work, same as now. 20:09
cotto_work HLLs can have dynops
bacek Ah...
cotto_work sorry. should have specified dynops
bacek Let's change deprecation policy to "If we broke it - we'll fix it for you"...
Tene I think that's a very reasonable proposal. 20:10
tadzik dukeleto: I'm asking whether 1) it should be in nqp, iirc Perl is to be abandoned as a dependency one day 2) whether the generated setup.pir should actually be setup.nqp, I think there alredy is a project having it in nqp
(oh gosh, qwerty is a pain)
Tene "If we're going to break it, we'll fix it for you first" might be a bit better, but that's bikeshedding.
bacek Tene, wfm 20:11
cotto_work I suspect we might have trouble following through with that. 20:12
It'd be more likely if we had a bot to yell at us when a hll broke.
Tene The dynops language being a restricted subset of C would certainly make migration easier.
cotto_work: We've been talking about hll smoke testing for logner than I've been involved in the project. It would be great if it finally happened. dukeleto has suggested that he might work on it someday, I think. 20:13
cotto_work yes and yes 20:14
bacek cotto_work, yes. If someone can help mj41 with TapTinder it will be awesome.
Tene I'm goign to continue to be skeptical until I actually see it, though. I've heard (and made) that proposal enough times that I'm waiting to see if it actually happens.
cotto_work it really needs someone who's got the tuits and ability to take the lead
until then we'll keep saying that we need it
dukeleto Tene: yes, it is on my short list. 20:15
bacek github.com/mj41/TapTinder/issues#issue/18 20:16
dukeleto Tene: but so are a lot of other things :)
cotto_work $P0 = dukeleto.'clone'()
Coke dukeleto: what did you use for author info on the cvs2svn commits? 20:17
tadzik oh look, GSoC mentoring problem solved
Coke (on the svn -> git conversion)
dukeleto www.google-melange.com/document/sho...1/timeline <-- GSoC 2011 timeline 20:18
Coke: what do you mean?
Coke ... I do not know how to rephrase that question.
nevermind.
20:21 plobsing left
dukeleto we are going to need lots of GSoC proposal ideas for students by mid-March 20:21
volunteers?
cotto_work We'll have some cool possibilities if M0 is ready-esque by that time. 20:25
NotFound Complete LWP with https support. 20:27
mj41 Hi. Dependency project support. My last idea is: Create/use temporary Git repository on each taptinder machine/client to store binaries after compilation for each Parrot revision.
I need these sequence: e.g. compile Parrot revision3 , compile r2, compile r1, make test on r3, complile hll1 on r3, test hll1 on r3, compile hll2 on r3, test hll2 on r3, compile hll1 on r2, test hll2 on r2, ... 20:30
So TapTinder client needs to store Parrot binary for r3, r2, r1 somehow. 20:31
NotFound Coolest project ever: write a parroteer -> english translator X-)
mj41 Is there any CI with good dependency projects support? 20:32
dukeleto mj41: what do you mean?
20:32 plobsing joined
bacek aloha, CI? 20:34
tadzik CI?
bacek aloha, CI is Continuous Integration
aloha, clock?
aloha bacek: LAX: Thu, 12:34 PST / CHI: Thu, 14:34 CST / NYC: Thu, 15:34 EST / UTC: Thu, 20:34 UTC / LON: Thu, 20:34 GMT / BER: Thu, 21:34 CET / TOK: Fri, 05:34 JST / SYD: Fri, 07:34 EST
bacek hmm 20:35
mj41 en.wikipedia.org/wiki/Continuous_integration
cotto_work aloha: bacek?
aloha cotto_work: bacek is THE MANIAC
tadzik :D
bacek bah
aloha, CI?
interesting...
aloha, ci?
aloha, ci is continuous integration
meh... It's broken 20:36
tadzik ahola?
pff
dukeleto I have been hacking on github.com/franckcuny/jitterbug, which supports CI via git for Perl 5, Parrot, Perl 6, Ruby and Makefile-based projects, currently 20:37
mj41: what do you mean by "dependency projects support" ? 20:38
mj41: I think I know, but want to make sure we are on the same page
bacek aloha, ci? 20:39
mj41 dukeleto: Something like HLL1 r3 broken on Parrot r5. 20:40
bacek aloha, ci?
aloha bacek: I have no idea.
bacek aloha, CI is Continuous Integration
aloha bacek: Okay.
bacek aloha, CI?
aloha bacek: CI is Continuous Integration
bacek good girl
cotto_work aloha: sea eye?
aloha cotto_work: Sorry, I don't know.
dukeleto mj41: yes, i can set that up now with jitterbug, just haven't had the tuits 20:41
20:41 drake1 joined
drake1 hello, 20:41
tadzik hello drake1
drake1 I was given some links to embed the parrot interpreter 20:42
hi tadzik,
and found that "pbc" might be something more interesting than byte-code files
bacek afk # $dayjob 20:43
cotto_work drake1: they're the same thing
drake1 really
so I simply read in the pbc and pass the pointer without opening a file first?
since I have some other cache file 20:44
cotto_work drake1: please don't make us guess what you're talking about.
drake1 well, I have to integrate the parrot with some other language objects 20:45
cotto_work ok
drake1 which use a few translation phases already
tadzik bacek: does api.yaml parse with YAML.pm for you?
bacek tadzik, yes. I run resolve_deprecated.nqp after fixing and it works 20:46
mj41 dukeleto: looking at jitterbug
tadzik int eresting;
jnthn char ming;
bacek tadzik, are you on master branch?
jnthn, :) 20:47
tadzik bacek: yeah, freshly pulled
drake1 cotto_work: by using a single file for everything and seeking through, to the pbc, or some other cached translation, I may save a few milli-seconds
dukeleto mj41: it integrates into github with post-receive hooks
mj41: take a look at jitterbug.sgn.cornell.edu:8090/ <-- web interface
bacek jnthn, how much effort to get support for rvalues attributes in nqp? class Foo { has $.bar }; Foo.new.bar := 42
bacek really has to go. Will backlog 20:49
jnthn bacek: That's hard. 20:51
bacek: It doesn't work in Perl 6.
mj41 dukeleto: post-receive hook is also on my todo list :-)
jnthn The one that does is Foo.new.bar = 42; 20:52
And it works because Foo.new.bar returns a container that is assignable.
nqp has no containers, and thus no assignment, and so we can't really do that. Best we can do is like Foo.new.bar(42)
tadzik how do I use command-line parameters in nqp? 20:53
mj41 dukeleto: jitterbug is simple and has more developers. TapTinder is big tt.taptinder.org/dbdoc/schema.png ... and I'm only one :-( 21:02
dukeleto mj41: they have slightly different goals and complement each other 21:07
mj41: jitterbug is good at sending emails about test suite, and is only meant to be run on a single host, there is not concept of "workers" and such 21:08
mj41: taptinder is more like buildbot 21:09
21:10 darbelo left 21:19 mtk left
bacek_at_work jnthn, what about auto-generating accessors? proto method bar($value?) { $bar := $value }; multi method bar() { $bar }; 21:20
whiteknight Kakapo had a system for automatically generating accessors like that 21:21
it's broken now, I think, but it did work fine
he had some overrides in P6protoobject that injected methods into the class
or maybe P6metaclass
mj41 dukeleto: ok. So I should continue to work on TapTinder :-) ... tomorrow ... good night. 21:22
dukeleto mj41: yes, you should :)
21:25 mtk joined
drake1 does parrot use mmap a lot, and is it easy to macro fix the code loader chain? 21:29
21:29 whiteknight left 21:30 fperrad left
drake1 some systems could use mmap, other system device link methods, to load the code. any clue how to specify the path? 21:31
probably, the best way is to bypass the Parrot_pbc_read, and use a custom method 21:35
cotto_work aloha: premature optimization? 21:37
aloha cotto_work: Dunno.
cotto_work aloha: premature optimization is the root of all evil 21:38
aloha cotto_work: Okay.
drake1 premature optimization sounds like a kid trying to fine tune a parent 21:42
atrodo cotto_work> BTW, I would be all for permanently making the M0/Lorito bytecode magic bytes be 'asdfasdf' 21:44
drake1 like in targeting commercials, which code the kid to change the shopping pattern of the parent
dalek rrot/gen_gc2: f04ebf1 | bacek++ | / (6 files):
Apply patch by doughera++ to move GC_DEFAULT to config.h. Closing #2019
21:45
rrot/gen_gc2: 1477fe9 | bacek++ | t/steps/auto/gc-01.t:
Fix auto::gc test
lucian has parrot been profiled?
bacek_at_work lucian, not comprehensively. 21:46
aloha, is parrot fast yet?
aloha bacek_at_work: I have no idea.
atrodo aloha: is parrot fast yet is isparrotfastyet.com/ 21:47
aloha atrodo: Okay.
bacek_at_work aloha, is parrot fast yet is isparrotfastyet.com
aloha bacek_at_work: ... but is parrot fast yet is isparrotfastyet.com/ ...
tadzik isparrotfastyet.com/
ah :)
bacek_at_work meh... I'm too slow. Need more coffee...
atrodo I've had all day to caffeinate, plus it's that point in the day where I don't want to actually start anything new so I'm keenly attentive to irc 21:48
bacek_at_work atrodo, it's Friday morning here :) 21:49
lucian i find optimisations without profiling information sort of silly
cotto_work lucian++
atrodo I find them an exercise for the brain
cotto_work optimization with profiling can be very effective 21:50
without profiling, it's probably an exercise in wasting time
atrodo Well, yes, but if I say that, someone will catch on
drake1 lucian: what when you know that: 3 * 4 * 9, could be reduced to the result, before the execution?
cotto_work atrodo: that would be pretty unmagical 21:52
lucian: when chromatic has the tuits he does a lot of profiling and timely optimization 21:53
NotFound drake1: You know? Then why you ask?
drake1 profiling instrumentation might as well slow down the algorithm. fill up the TLBs etc.
im just kidding. screw it
21:53 nwellnhof joined
jnthn bacek_at_work: Oh, auto-generating them is dead easy. 21:53
bacek_at_work: Just do it on meta-attribute composition. 21:54
bacek_at_work jnthn, erm. I'm not familiar with 6model (yet :)
dalek nxed: r809 | NotFound++ | trunk/winxedst1.winxed:
fix some usages of operator /
TT #2019 closed by bacek++: Set GC_DEFAULT_TYPE in config.h instead of on cc command line. 21:55
TT #2019: trac.parrot.org/parrot/ticket/2019
lucian drake1: the compiler will do that
drake1 lucian: ok
lucian nowadays it's extremely hard to predict anything about a program
bacek_at_work jnthn, is NQPAttribute.pm good starting point?
lucian short of reducing algorithmic complexity
jnthn bacek_at_work: Yes
bacek_at_work .BUILD? 21:56
jnthn bacek_at_work: If it doesn't already, it should get a compose method
bacek_at_work jnthn, no .compose in it
jnthn bacek_at_work: Yeah, I didn't add it in just yet. :)
bacek_at_work jnthn, :)
jnthn bacek_at_work: Basically, the meta-class (NQPClassHOW) should call compose on all the attributes declared in the class, during its own compose method. 21:57
bacek_at_work: And that's the point where it gets chance to do its accessor generation
In full-blown Perl 6, this is where "handles" stuff (delegators) are set up too :)
bacek_at_work: Oh! 21:58
nqpclr implements it I think
bacek_at_work: so it's probably almost copy-paste from there.
dalek nxed: r810 | NotFound++ | trunk/winxed.winxed:
some cleanup in the non installed driver
22:00
rrot/nwellnhof/unicode_dynpmcs: 17d8684 | nwellnhof++ | / (2 files):
Use CreateSymbolicLink only if supported

Should fix build on Windows XP
22:05
22:06 wknight-phone joined
ttbot Parrot 17d8684f MSWin32-x86-multi-thread make error tt.taptinder.org/cmdinfo/21049 22:08
dalek rrot/nwellnhof/unicode_dynpmcs: 0c6398c | nwellnhof++ | src/platform/win32/file.c:
Remove bogus ASSERT_ARGS
22:10
22:11 rurban_ joined
bacek_at_work jnthn, where is nqpclr hosted? Just branch in nqp? 22:12
jnthn bacek_at_work: no, separate repo
bacek_at_work: I think github.com/jnthn/6model/blob/maste...Setting.pm has the stuff in to copy
bacek_at_work: See around line 809, and 604. 22:13
22:13 rurban left 22:14 rurban_ is now known as rurban
bacek_at_work jnthn, thanks! Looks like I even can understand it :) 22:14
jnthn bacek_at_work: :)
jnthn should do a talk "Writing a simple class implementation in 20 minutes" at some conference :) 22:15
drake1 in parrot, i bet you can't group related functions, to share the same cache lines? 22:16
22:16 wknight-phone left
bacek_at_work jnthn, Is it something like this? .compose($obj) { $obj.HOW.add_multi_method($obj, $!name, sub { ... } } 22:16
jnthn, where sub { ... } is either accessor or mutator 22:17
jnthn bacek_at_work: If you want to add it as a multi method, you'd need to add a proto explicitly too
bacek_at_work: It's probably eaiser to take the one sub with an optional parameter route.
bacek_at_work jnthn, ok.
jnthn, sub($value?) { $!foo := $value if pir::defined($value); $!foo } 22:18
jnthn That'd work.
bacek_at_work jnthn, erm... How I can "generate" "$!foo" in .compose? 22:19
jnthn, without eval
jnthn pir::getattribute(self, $obj.WHAT, '$!foo') will do it for the get 22:20
And setattribute for the setting, and $value goes in the last arg
bacek_at_work Should we port nqp::bind_attr and nqp::get_attr?
jnthn bacek_at_work: the whole nqp:: meachanism should be ported at some point. 22:21
bacek_at_work: Want to check with pm how he thinks it should be factored though.
bacek_at_work jnthn, ok
jnthn bacek_at_work: nqp::foo will often map to pir::foo, but will also be mapped appropriately for other backends.
pir:: # Parrot specific 22:22
nqp:: # abstraction layer, mapped at compile time though, so no extra runtime cost
p6eval nqp: OUTPUT«Confused at line 1, near ": # abstra"␤current instr.: 'parrot;HLL;Grammar;panic' pc 17541 (gen/hllgrammar-grammar.pir:4828)␤»
jnthn oops :)
bacek_at_work jnthn, :) Yes, that's why I want to use nqp:: instead of pir::.
jnthn bacek_at_work: *nod*
bacek_at_work: I want to add the nqp:: mapping soon :) 22:23
I think it'll map to a PAST::Op with :pasttype('nqpop')
And PAST::Compiler does the mapping.
bacek_at_work jnthn, looks like a workable soultion
jnthn bacek_at_work: Worked out OK in nqpclr. :) 22:24
drake1 great language for everything. might as well pay off a few patches.
bye
22:24 drake1 left
jnthn bacek_at_work: I saw you took the PAST/PAST::Compiler issue in the nqp issues. What's your rough plan for that? 22:25
bacek_at_work jnthn, 1. Copy it from nqp_pct branch; 2. Hack-hack-hack; 3. ...; 4. Profit! 22:27
jnthn bacek_at_work: \\o/ 22:29
22:32 ambs left
bacek_at_work jnthn, actually I asked about attributes because of PAST moving :) 22:42
jnthn bacek_at_work: Oh! :D 22:51
22:52 vmspb joined 22:54 donaldh joined, plobsing left
bacek_at_work jnthn, I just want to avoid such scaffolding - github.com/parrot/parrot/blob/nqp_...T/Value.pm 22:59
jnthn bacek_at_work: agree totally 23:00
bacek_at_work: The delegation all the time gets costly.
bacek_at_work jnthn, I don't care about cost much. But I'm too lazy to type in all this stuff :)
jnthn lol :)
cotto_work bacek++ 23:01
use lazy; 23:02
Is there a way to have a nice M0 op size with 4-argument ops and (mostly?) aligned access? 23:08
23:20 plobsing joined 23:24 dolmen joined
bacek_at_work jnthn, "P6opaque attributes NYFI 1". After adding for @!attributes { $_.compose($obj) } to NQPClassHow... 23:26
jnthn bacek_at_work: Ouch...
bacek_at_work: That tends to boil down to "you passed an invalid class handle"
bacek_at_work: Are you only adding the attributes if has $.foo was used? 23:27
bacek_at_work jnthn, I didn't change NQPAttribute yet :)
jnthn bacek_at_work: Oh... 23:28
bacek_at_work I just added empty stub to it
method compose($obj) {}
jnthn *nod*
bacek_at_work Do I have to add it to some other knowhow?
jnthn No 23:29
That error tends to occur when one tries to access an attribute that doesn't exist.
(Didn't get the attribute name typo detection stuff in yet.)
bacek_at_work hmmm
jnthn bacek_at_work: Oh! 23:30
Yeah, attribute doesn't exist :)
it's %!attributes in the Parrot version of NQPClassHOW
bacek_at_work meh!
found it :)
jnthn I should fix that up at some point as the ordering kinda matters...
But anyway, that's probably the issue :) 23:31
bacek_at_work Why ClassHOW.attributes want $obj as argument?
and :$local 23:32
jnthn bacek_at_work: Methods in a meta-class always want the object they're operating on as an argument. As you may be doing prototype OO and have a singleton meta-class. 23:33
The :$local means "just the attributes in this class".
It would be optional really.
*should 23:34
bacek_at_work jnthn, ok. I asked because args aren't used
jnthn And then gives list of all lot up the MRO
No, $obj will often not be used in a class-based OO implementation.
It's the type object, fwiw.
23:34 donaldh left
jnthn It can be handy to have in various cases. 23:34
Role application uses it to instantiate parametric roles, for example. 23:35
bacek_at_work ok
23:42 whiteknight joined 23:50 vmspb left 23:55 pjcj left