Parrot 0.8.2 "Feliz Loro" Released www.parrot.org/news/2008/Parrot-0.8.2
Set by moderator on 23 December 2008.
Limbic_Region AFK & 00:00
TimToady S11:114 assumes that a proto is autogenerated if one isn't explicitly supplied, fwiw 00:02
mostly based on the fact that pugs autogenerated a proto as needed
I'm not sure why Audrey wanted it, offhand, but it seemed reasonable 00:03
for one, it means you never have to ask yourself "Is there a proto?" 00:04
jonathan I don't really understand the mechanism though.
multi foo(Int $x) { 1 }
multi foo(Num $x) { 2 }
What is the generated proto here?
TimToady and probably as a locus for hanging knowledge pertaining to a particular lexical scope
probably just Any $x 00:05
jonathan OK
TimToady dunno exactly how pugs did it...
jonathan multi bar($a) { 1 }; multi bar($a, $b) { 2 } # and here?
Well, that's my problem. I don't know how to do it, and I've yet to see a way that makes intuitive sense to me. 00:06
Or think up a way.
Or whatever. :-)
TimToady I'm pretty good at the whatever part though...
mugwump maybe the proto is a junction ? 00:07
TimToady or a multisig? hmm
proto bar ($a) | ($a,$b) {...} is legal syntax
but it's not a corner I've dabble in much 00:08
*dabbled
jonathan I only really understand the role of protos as: 00:09
1) Fallbacks if the candidates can't decide.
2) Writing of one enforces multi on all subs of the same name in scope.
00:09 AndyA joined
jonathan 3) Factoring out traits. 00:09
I don't quite get the auto-generation side. 00:10
TimToady the initial motivation was primarily to allow mapping of named arguments to positional parameters
jonathan That makes sense to me.
TimToady in the above :a(42) can always go to first positional
jonathan But I hadn't really thought about auto-generating them from the possible candidates. 00:11
mugwump to me protos are all about enforcing constraints
TimToady maybe there's some way of doing it lazily by introspection of existing multis 00:12
jonathan mugwump: In what sense?
mugwump well, if I write a function and I want to be sure that an argument has a particular type/role, then I put it in the proto
jonathan TimToady: I'd appreciate some fleshing out of this in the spec, or at least some examples of what an auto-generated proto is expected to do.
TimToady I'll try to glare some at the pugs code and see what the motivation was 00:13
jonathan mugwump: So types specified in a proto are to be carried onto the appropriate parameters in multis?
mugwump hands TimToady the 3D glasses
TimToady though it might be Sufficiently Advanced
jonathan mugwump: And if so, how is this done? By name? By position? 00:14
mugwump jonathan, if the proto isn't defined as multi, then perhaps
if any declaration follows that disagrees then it's a redefinition 00:15
s/that//
er, s/that/ = "" ;)
jonathan What is a proto defined as multi? 00:16
multi and proto are mutually exclusive plurality declarators, I thought?
mugwump are we talking about forward declaration of functions?
I thought that's what a proto was
TimToady multi and proto are exclusive declaraitons
jonathan mugwump: Are you not thinking of installing a stub? 00:17
mugwump right, yes
perl5 calls function definitions prototypes doesn't it.. 00:18
jonathan sub foo() { ... } # the ... is literally there
mugwump not sub foo(); ?
jonathan I thought this was how you did prototypes/stubs.
I don't think that parses.
TimToady it shouldn't
hmm, ends up backtracking and parsing as a listop which is a bit bogus 00:19
at least it says "Unknown routines: sub called at 1" 00:20
but should probably have a specific check for that p5ism in any case 00:21
mugwump C-ism, perhaps
TimToady we're not trying to make things any harder for recovering p5 programmers than they need to be... 00:22
mugwump heh :)
TimToady if that *did* mean something in p6, it would mean the rest of the block was the body of the function, like 'package Foo;'
in fact, if we allowed that, one could maybe say "return sub;" to return the rest of the block as a closure :) 00:23
I do not construe this as a feature, necessarily... 00:24
mugwump that would make for some excellent golfing though 00:25
would 'return' be necessary, even? :> 00:26
00:27 Theory joined
TimToady well, if you're golfing it, there's ->; 00:30
mugwump true..
lathos Oh my. 00:31
TimToady you'll note that STD doesn't allow this currently :)
lathos Recursive tail calls with "goto ->" ?
TimToady well, we don't support goto a routine in p6, per se 00:32
00:35 tetragon joined
TimToady so it'd have to be something like .callsame for ->; 00:36
or .callwith to avoid passing the old args to a routine expecting no args 00:39
01:17 japhb joined 01:35 jimmy joined 01:37 Fayland joined 02:03 petdance joined 02:04 TiMBuS joined
pmichaud particle: ping 02:22
02:40 ChrisDavaz joined 02:47 Fayland joined
GeJ would anyone object to moving Pod::Simple and Pod::Escapes to the latest version available on CPAN? It seems to solve several issues I have while `make html`ing 02:47
02:52 jimmy joined 02:57 jimmy joined
Infinoid GeJ: sounds reasonable to me 03:04
03:05 ChrisDavaz joined, galf joined 03:06 jimmy joined 03:20 ChrisDavaz joined 03:24 kid51 joined
kid51 Tonight I called 'make html' for the first time. It worked, but I don't understand how. 03:25
It translates to: 'make -C docs html' and then '/usr/local/bin/perl -I../lib ../tools/docs/write_docs.pl --silent'. 03:26
But the string 'write_docs' can't be found in the Makefile.
So how does 'make' know to invoke write_docs.pl?
pmichaud kid51: it's in docs/Makefile 03:27
kid51 O
pmichaud "docs" in the root Makefile calls docs.dummy, which in turn does "$(MAKE) docs"
which ends up being the "make -C docs html" command you see above. The -C means that we change to the docs/ directory before attempting "make html" 03:28
kid51 Ah. Thx. I never had to pay much attention to the -C switch previously.
pmichaud You're welcome. :-) 03:29
kid51 Of course, what I want to do is not to create a tree of .html files in ./docs/html, as this script does, but to get them visible on my web server -- or, better still, parrot.org. 03:30
GeJ wonders why he's the only one seeing segfaults during `make html` 03:31
pmichaud GeJ: Perhaps you're the only person wearing the "sooper-dooper segfault seeing eyeglasses"? ;-) 03:34
GeJ: beyond that, I don't know.
kid51 Too much tropical sunlight ;-)
dalek r35087 | allison++ | trunk/src/pmc: 03:35
: [cage] Fix improper PMCNULL handling in default 'isa_pmc'.
review: www.parrotvm.org/svn/parrot/revision?rev=35087
kid51 Hmm, I see that the only reason why we have to have Pod::Simple and Pod::Escapes in our distro at all is that they were not Perl core until 5.9.
Infinoid GeJ: let me guess, perl 5.10? 03:37
GeJ nope. 5.8.8
Infinoid ok, hmm.
03:39 mdiep joined
mdiep are test failures expected? 03:39
pmichaud mdiep: in Parrot? 03:40
mdiep err.... wait. I'm not even at TOT. I'm using 0.8.1
pmichaud: yes, parrot
Infinoid no, we don't fail tests here, you want that other channel
pmichaud mdiep: what platform?
mdiep OS X 10.5 Intel 03:41
Infinoid mdiep: what tests?
purl You fail.
pmichaud and you're running 0.8.1?
Infinoid thanks, purl
purl no worries Infinoid
mdiep pmichaud: yes
purl: forget OS X 10.5 Intel
purl mdiep, I didn't have anything matching os x 10.5 intel
Infinoid purl, forget what tests?
purl Infinoid, I didn't have anything matching what tests
mdiep t/pmc/freeze, t/dynpmc/digest, t/dynpmc/dynlexpad, t/dynpmc/foo, t/dynpmc/rational, t/dynpmc/rotest, t/dynpmc/subproxy, t/dynoplibs/dan, t/library/mime_base64 03:42
kid51 re t/pmc/freeze.t: trac.parrot.org/parrot/ticket/116 intermittently 03:43
As for the rest, I would note that we're at 0.8.2 -- and well beyond that in HEAD. 03:44
03:44 schobes joined
kid51 Last 3 Smolder reports for Darwin i386 are all 100% passing (though there are some TODOs that are really Darwin-only problems). 03:46
GeJ is there a MANIFEST check? 03:50
Ah, tools/dev/manicheck.pl seems to do the job. 03:54
kid51 And to update MANIFEST: tools/dev/mk_manifest_and_skip.pl 04:00
kid51 must sleep 04:01
purl $kid51->sleep(8 * 3600);
04:02 elmex_ joined
GeJ TT#134 if there's any taker. 04:10
04:37 pdcawley joined 04:44 tetragon joined 04:52 schobes left 04:53 Fayland joined
tewk Tene or pmichaud: I need basic PCT help. 04:53
Tene tewk: yes? 04:55
tewk Tene: did you look at my no paste from last night? 04:56
Tene kinda
tewk nopaste.snit.ch/15212
Tene: basically it generates the code to create an object twice, because I call a method on the object twice. 04:57
I only want one object, I just want to call the set method on the object twice. 04:58
I also want the object to be returned from the list of statements,
cardinal or rakudo has to do something like this, looking for an example
Tene can you show me some PIR like what you want to generate? 05:00
tewk Yep, one second
dalek r35088 | coke++ | trunk: 05:01
: Add a release to this item.
review: www.parrotvm.org/svn/parrot/revision?rev=35088
nopaste "tewk" at 155.97.237.62 pasted "tene: want to generate this" (9 lines) at nopaste.snit.ch/15229 05:02
Tene Past::Op.new(:whatever('bind'), Past::Var.new(:scope('register'), :name('omg')), Past::Callmethod(Past::Var(package))))))))))))) 05:04
like that
then pass a PAST::Var.new(:scope('register'), :name('omg'))
tewk sounds right, I'll give it a try, 05:05
Tene see how you first need to save it somewhere with a bind op?
tewk thanks
Tene That's just an approximate sketch, but should send you in the right direction.
tewk Tene++
Yep I knew what I wanted to do I just didn't know how to get there. 05:06
Tene I hoped I'd have a response to my loadlib issue so I could work on it tonight. 05:07
05:20 masak joined 05:26 MariachiElf joined 05:30 japhb joined 05:31 DietCoke joined 05:32 Andy joined
Infinoid incoming bcanno branch merge. 05:34
Andy: should ARGIN imply const?
Andy i'd like it to 05:35
dalek r35089 | infinoid++ | trunk (16 files):
: Merge changes from bcanno branch back into trunk.
review: www.parrotvm.org/svn/parrot/revision?rev=35089
Andy but it can't at this point
dalek r35090 | infinoid++ | trunk (2 files):
: [core] Fix a warning from mismatched constness.
review: www.parrotvm.org/svn/parrot/revision?rev=35090
Infinoid I'm curious why?
dalek r35091 | infinoid++ | trunk (7 files):
: [cage] Fix up some codetest failures.
review: www.parrotvm.org/svn/parrot/revision?rev=35091
r35092 | coke++ | trunk/languages/ecmascript/t/js_pt (5 files): 05:39
: [cage] pass t/distro/file_metadata.t
review: www.parrotvm.org/svn/parrot/revision?rev=35092
jimmy Infinoid:ping 05:41
Infinoid hi jimmy
dalek r35093 | coke++ | trunk/tools/util:
: another file_metadata.t fixup
review: www.parrotvm.org/svn/parrot/revision?rev=35093
jimmy nopaste
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/
jimmy Infinoid:ping?
nopaste?
purl i guess nopaste is at nopaste.snit.ch/ (ask TonyC for new channels) or rafb.net/paste or poundperl.pastebin.com/ or paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at www.extpaste.com/ or paste.scsys.co.uk (for #catalyst, #dbix-class, #moose and others)
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/
Infinoid re-hi jimmy 05:42
nopaste "jimmy" at 220.231.152.66 pasted "a patch or parrot for Infinoid" (31 lines) at nopaste.snit.ch/15230
jimmy can you take a look at it? 05:43
Infinoid applied and testing now 05:44
it looks good
jimmy hehe, did you receive my message before? 05:47
Infinoid yeah. did you receive my reply?
jimmy no 05:48
Infinoid I asked which ISO warnings you were seeing; I don't see any here.
jimmy and I did get the message from irclog
and I did not get the message from irclog
Infinoid I sent it to purl in privmsg.
jimmy the C90 warning.
Infinoid where?
jimmy we discussed before 05:49
Infinoid I don't see any of those when building... I was hoping we had fixed them all.
jimmy ISO C90 forbids mixed declarations and code
Infinoid if there's another one you are seeing, we should fix that too
where does that warning occur?
jimmy did you forget we discussed before?
Infinoid no, I know we discussed it before. but I fixed them all! 05:50
so I am asking where you are seeing such a warning.
jimmy irclog.perlgeek.de/parrot/2009-01-04#i_803839 05:51
jimmy's patch tries to strip out the unused variable in the case where the asserts are disabled (by defining NDEBUG). but it results in lots of "src/string.c:3058: warning: ISO C90 forbids mixed declarations and code" warnings
Infinoid yes, we already fixed that 05:52
what I am asking now is if you are still seeing any ISO C90 warnings? and if so, where.
jimmy ah ,where is the codes?
Infinoid your most recent message to me seemed to indicate that you were still getting this warning when you built parrot 05:53
maybe I misunderstood you
jimmy my patch tries to strip out the unused variable in the case where the asserts are disabled (by defining NDEBUG).
so define it as none like _MSC_VER 05:54
Infinoid yes, that works
when you build parrot, do you see any ISO C90 warnings?
jimmy none 05:55
Infinoid great. so I misunderstood what you said earlier
jimmy because there no semicolon
Infinoid and everything is working well now
jimmy the semicolon caused the ' ISO C90 forbids mixed declarations and code ' warning
i think i misunderstood you too just now. 05:56
I got the message now. bug purl does not clear the old messages. 05:58
dalek r35094 | infinoid++ | trunk/include/parrot: 06:01
: commit c86951f2c1b747fb50b14b1c2516aa551d24163f
Infinoid you need to type "messages erase" for that
dalek : Apply patch from jimmy++ to disable ASSERT_ARGS() when NDEBUG is defined.
review: www.parrotvm.org/svn/parrot/revision?rev=35094
r35095 | infinoid++ | trunk/src/ops:
: [cage] Fix another constness warning.
review: www.parrotvm.org/svn/parrot/revision?rev=35095
Infinoid stgit-- # didn't strip the commit line from my log message 06:02
dalek r35096 | coke++ | trunk/runtime/parrot/library/Test:
: avoid some [DEPRECATED] opcodes.
review: www.parrotvm.org/svn/parrot/revision?rev=35096
jimmy Infinoid: thanks, I should erase the messages. 06:03
06:03 mdiep joined
jimmy Infinoid: why is there 'commit c86951f2c1b747fb50b14b1c2516aa551d24163f'? we are using git now? 06:03
Infinoid jimmy: I exported and reimported the patch using stgit, and it didn't parse the file back in correctly 06:04
parrot doesn't use git yet, but I use git locally
jimmy meeting
Infinoid ok, I've inflicted enough damage for one day. goodnight all 06:05
jimmy good night 06:07
cotto GeJ++ 06:08
jimmy purl: messages erase 06:10
purl jimmy: i'm not following you...
Coke wonders if a realclean is needed after the bcanno mergeback. 06:17
apparently. 06:23
dalek r35097 | coke++ | trunk (7 files): 06:27
: remove [DEPRECATED] find_global_p_p_s opcode
review: www.parrotvm.org/svn/parrot/revision?rev=35097
masak always does a realclean 06:38
I figure "what's the harm?"
tests 22, 25, 35 and 38 in t/spec/S05-substitution/subst.rakudo came out 'TODO passed'. I guess that's a good thing. 07:02
GeJ cotto: thanks, but what for? 07:06
cotto your very special FreeBSD system 07:10
It makes me happy every time I see some bug that only manifests itself on your machine,
GeJ Well, I'm happy that my cursed box make you happy. 07:12
Personnaly, I wish I wasn't *so* special. L:)
cotto If it didn't break for you, it'd break for someone else later. 07:13
07:14 mberends joined
GeJ Well, that's a double edged sword. On the one hand I may discover nasty bug before anyone else, on the other hand, when I'm the only one who can reproduce it, it's hard for others to debug and fix it. 07:16
07:24 jan joined
dalek r35098 | coke++ | trunk (12 files): 07:29
: Avoid the [DEPRECATED] find_global_p_s opcode
review: www.parrotvm.org/svn/parrot/revision?rev=35098
Coke I see a bunch of find_global in languages/ that need updating. 07:30
cotto find find_global (globally) 07:33
Coke if the bcanno branch is merged back, it can be removed. 07:39
Coke ratchets TEST_JOBS up too high. 07:40
dalek r35099 | coke++ | trunk (3 files):
: Remove [DEPRECATED] opcode: find_global_p_s
review: www.parrotvm.org/svn/parrot/revision?rev=35099 07:41
r35100 | coke++ | trunk (12 files): 07:57
: Remove [DEPRECATED] opcode store_global_s_p
review: www.parrotvm.org/svn/parrot/revision?rev=35100
07:57 allison joined
Coke allison: ping 07:57
allison Coke: hi
vat's up? 07:58
Coke the 3^W2 store_global opcodes refer to C level functions which nothing else does.
e.g. Parrot_store_global_cur
chromatic Axe 'em.
allison yeah, they've been deprecated for a *long* time 07:59
we don't do globals that way any more
Coke well, the opcodes were, but not specifically the c. just checking.
allison good to check 08:00
dalek r35101 | coke++ | trunk (3 files): 08:07
: This function was only used by an opcode that no longer exists.
review: www.parrotvm.org/svn/parrot/revision?rev=35101
Coke ... now I hear KITT. 08:08
I suppose sleep might be an option. 08:09
jimmy Andy: ping 08:13
Andy aw man I'm about to go to bed
what' up
dalek r35102 | allison++ | branches/cc_restart/src: 08:14
: [calling_conventions] Adding handling for PMC parameters marked as the invocant
: in PCC signatures.
review: www.parrotvm.org/svn/parrot/revision?rev=35102
jimmy not important. I think we could discuss it tomorrow 08:15
good night.
08:22 TiMBuS joined
dalek r35103 | allison++ | branches/cc_restart/src: 08:42
: [calling_conventions] Add handling for invocants when generating an MMD
: type_tuple from a CallSignature object.
review: www.parrotvm.org/svn/parrot/revision?rev=35103
09:01 tomyan joined
Coke ZOMG TOO MUCH COFFEE 09:25
dalek r35104 | allison++ | branches/cc_restart/src: 09:33
: [calling_conventions] Add a new function for invoking a method using the PCC
: and CallSignature objects. Currently unused.
review: www.parrotvm.org/svn/parrot/revision?rev=35104
r35105 | allison++ | branches/cc_restart/include/parrot: 09:37
: [calling_conventions] Headerizer changes for new and renamed pcc_invoke functions.
review: www.parrotvm.org/svn/parrot/revision?rev=35105
09:41 iblechbot joined 09:42 donaldh joined 09:56 alvar joined
dalek r35106 | cotto++ | trunk/docs/book: 10:00
: [book] typo fix noticed by Christian Sturm (RT #62014)
review: www.parrotvm.org/svn/parrot/revision?rev=35106
10:08 desertmax joined 10:22 purl joined
dalek r35107 | jquelin++ | trunk/languages/befunge (7 files): 10:37
: moved all pasm files to pir
review: www.parrotvm.org/svn/parrot/revision?rev=35107
r35108 | jquelin++ | trunk/languages/befunge (3 files): 10:39
: update vi meta information
review: www.parrotvm.org/svn/parrot/revision?rev=35108
r35109 | cotto++ | trunk (2 files): 10:41
: [hash] make clone and freeze iterate by internal order rather than bucket order
: this fixes TT #116 and causes no new test failures
review: www.parrotvm.org/svn/parrot/revision?rev=35109
10:45 gaz joined
GeJ cotto++ 10:52
cotto I hope there's not too much more stuff like this that'll be exposed by hash seed randomization. 10:54
dalek r35110 | jquelin++ | trunk/languages/befunge (2 files): 10:58
: starting implementation in debug
review: www.parrotvm.org/svn/parrot/revision?rev=35110
cotto sleep!
GeJ good night cotto 11:00
11:03 kj joined
dalek r35111 | kjs++ | trunk: 11:06
: [MANIFEST] Fix manifest after removal of files. Attention committers!
: D: languages/befunge/io.pasm
: D: languages/befunge/stack.pasm. 11:07
: Committers, please regenerate MANIFEST using perl tools/dev/mk_manifest_and_skip.pl script after removing and adding files.
review: www.parrotvm.org/svn/parrot/revision?rev=35111
r35112 | jquelin++ | trunk/languages/befunge (2 files): 11:15
: begin of printing status in debug mode
review: www.parrotvm.org/svn/parrot/revision?rev=35112
r35113 | rurban++ | branches: 11:26
: Creating forth branch for ongoing 'make install' work, at trunk r35106.
review: www.parrotvm.org/svn/parrot/revision?rev=35113
jonathan hi all 11:50
kj hi jonathan 11:53
donaldh hi, where does the coding std live? 11:54
kj docs/pdds/pdd07 11:59
donaldh kj: thanks 12:00
jonathan Infinoid++ # merge
kj mm weird. the linker can't seem to find the new annotation stuff; pirc has link errors 12:01
jonathan kj: Hmm. Do you link aginst libparrot?
kj yes
I rebuilt parrot
jonathan I didn't PARROT_EXPORT them.
If you need 'em, we'll have to.
kj oooh ok
I thought of that, but imcc needs them too... 12:02
jonathan I'm trying not to introduce more exports that we don't need. ;-)
kj ok
jonathan imcc won't build for you?
It did for me on Linux and Windows.
dalek r35114 | jquelin++ | trunk/languages/befunge (2 files):
: using global to store the status
review: www.parrotvm.org/svn/parrot/revision?rev=35114
kj imcc builds fine, but I thought, if imcc can find it, why can't pirc? 12:03
donaldh kj: imcc is inside libparrot, but presumably pirc isn't ?
kj but imcc is part of parrot executable, of course.. that explains
jonathan Because all of that is bundled into libparrot?
kj yes probably so. In order to make IMCC pluggable that needs to be changed anyway, in the future
donaldh pdd07_codingstd doesn't mention anything about automatic variable initialization 12:08
Is there a convention?
kj I think that' sjust common sense ;-)
donaldh It's just that valgrind is reporting uninitialized accesses during trace_system_stack which I think is caused by uninitialized automatics. 12:10
It means that random data gets followed when checking for PMCs on the stack. 12:11
during gc 12:12
jonathan Isn't that inherent in conservative GC?
donaldh It might be possible to ignore, since the data needs to point inside the arena and needs to be correctly aligned before any marking happens. 12:13
But my test program regularly falls over in there and I am still chasing the root cause. 12:14
dalek r35115 | jquelin++ | trunk/languages/befunge: 12:16
: debug output: direction and flags
review: www.parrotvm.org/svn/parrot/revision?rev=35115
r35116 | jquelin++ | trunk/languages/befunge: 12:18
: simplifying coords & current char output
review: www.parrotvm.org/svn/parrot/revision?rev=35116
r35117 | jquelin++ | trunk/languages/befunge: 12:25
: dumping stack on debug
review: www.parrotvm.org/svn/parrot/revision?rev=35117
12:35 Lorn joined 12:41 kid51 joined
donaldh Is there a way to dump the contents of a PMC from gdb? 12:42
sjn jonathan: about NPW talks, would it be possible/sensible with a talk (or several) that prepare people in some obvious way for the hackathon the weekend after the conference? 12:46
dalek r35118 | jquelin++ | trunk/languages/befunge: 12:49
: beginning interaction work
review: www.parrotvm.org/svn/parrot/revision?rev=35118
12:51 Wknight8111 joined
jonathan sjn: Could be worth considering, yes. 12:53
sjn: Probably a discussion that pmichaud should be part of too.
Assume he is going to make it, which I think is his intention.
*assuming
dalek r35119 | jquelin++ | trunk/languages/befunge: 12:54
: debug help implemented
review: www.parrotvm.org/svn/parrot/revision?rev=35119
r35120 | jkeenan++ | trunk (11 files): 13:10
: Applying patch submitted by Geraud Continsouzas in trac.parrot.org/parrot/ticket/135 (plus one small fix to CREDITS).
review: www.parrotvm.org/svn/parrot/revision?rev=35120
sjn jonathan: anyone else who should be in on it? 13:11
jonathan Depends on, if any people from other Perl 6 related projects besides Rakudo intend to come along too. 13:12
Like, maybe some of the November guys. 13:13
e.g. masak
masak wakes up with a start
hunh?
oh, yes, I intent to come.
s/nt/nd/
:2ns
masak aborts attempts to write correctly 13:14
I also plan to give a talk about November, and perhaps a lightning talk too
tewk needs and example of iterating over a capture as if it was an array 13:15
for $/ {
doesn't seem to work.
masak tewk: does 'given $/' work? 13:16
jonathan masak: OK, great. Will you come to the hackathon too?
tewk NQP here, not rakudo, does NQP have given? cause then I want to switch on type :)
masak jonathan: sure.
jonathan masak: Cool. Would be quite nice to get more people hacking on November. 13:17
masak tewk: oh. no, don't think so.
jonathan tewk: No.
masak jonathan: indeed.
tewk get_iter() not implemented in class 'Capture'
jonathan tewk: try for @($/) { ... } maybe
or for $/.list() { ... }
jonathan takes the couple of positive comments on the extra annotations stuff and the lack of complaints from @other as permission, and gets cracking. 13:19
13:20 Andy joined
tewk jonathan: they both compile, but the loop body doesn't execute, so I guess they return an empty array, hmm 13:21
jonathan tewk: You're sure there are elements?
tewk at this point I just want to dump $/ children in the order they were parsed.
_dumper($/) suggests so, nopast coming 13:22
nopaste "tewk" at 155.97.237.62 pasted "$/ dump" (475 lines) at nopaste.snit.ch/15231 13:24
13:25 mj41 joined
jonathan tewk: It has positional captures though (e.g. (foo))? 13:26
The hash would hold the named ones...
tewk I want the children in the order they were parsed, do I need to change my grammar? 13:30
jonathan Can you give me an example of the bit of grammar in question? 13:31
nopaste "tewk" at 155.97.237.62 pasted "tewk struggles with PCT" (26 lines) at nopaste.snit.ch/15233 13:35
jonathan tewk: Ah. I think named and positional captures don't overlap. 13:37
Maybe try
'[' <elision>? <element_list>? [',' <elision>]? ']'
oops
13:37 tomyan joined
jonathan '[' (<elision>)? ((<element_list>)? [',' (<elision>)]? ']' 13:38
But there'll be other ways I guess.
(Like, <elision> should be a list.)
And you can know, if it only has one element, whether it was before or after element_list by checking the .from IIRC. 13:39
tewk yeah, but I don't want to have to check .from. 13:40
I guess I misunderstood matches/captures, I though you could treat them as an array or a hash 13:41
pmichaud good morning
nopaste "tewk" at 155.97.237.62 pasted "$/ dump" (475 lines) at nopaste.snit.ch/15234 13:43
tewk opps,
jonathan morning, pmichaud 13:44
Did you jinx your hacking time last night?
pmichaud looks like it. 13:47
jonathan :-(
pmichaud ended up spending time with wifey 13:48
jonathan That's important/good too. :-)
I didn't do much after you'd gone.
Wknight8111 (time with wifey)++
jonathan Am doing some more annotations stuff.
Wknight8111 my wife didn't even come home last night :( 13:49
pmichaud that's good.
jonathan (not having wifey)-- # :-(
pmichaud (doing annotations stuff == good)
jonathan Aye.
Nobody responded to my suggestions with hate, so...in they go.
pmichaud oh, I'll review quickly if you're looking for some hate :-) :-)
jonathan Review my last patch to rvar last night - you'll find some there. ;-) 13:50
pmichaud I think I already reviewed it.
jonathan Hate?
pmichaud the ones I saw looked okay. But I'll check again.
purl HATE! I HATE YOU, AND YOUR MOTHER TOO!!
jonathan ...wow...
pmichaud oh, there's more patches to rvar... looking. 13:51
Wknight8111 purl needs some anger management techniques...or alcohol
purl Wknight8111: huh?
Wknight8111 although it is a little early for alcohol
pmichaud oh no, I had already reviewed this via the web diffs.
so yes, the rvar stuff looks great.
masak purl: why the sudden hate? 13:52
purl i haven't a clue, masak
Wknight8111 although it?
purl although it is more "perlish" to use "unless". or good with ginger ale, absent the cucumber.
jonathan pmichaud: OK, great. Maybe I'll dare to do a little more rvar stuff. ;-)
pmichaud for bytecode annotations... (reading message now)
wouldn't $?FILE and $?LINE end up being compile-time constants? 13:53
as opposed to using an opcode?
I could see $CALLER:: versions perhaps wanting to be an opcode, though, assuming any such thing exists.
jonathan pmichaud: We could do them that way too, yes. 13:54
pmichaud: I do think it would be useful to be able to say "what annotations are currently in effect", though.
pmichaud definitely.
jonathan But you just blew away my immediate use case. :-| 13:55
pmichaud if it's easy to add annotations op, then probably worth adding.
jonathan It's trivial - it just took me 10 minutes.
pmichaud don't we really want/need the annotations op anyway for things like 'die'? 13:56
and warn?
purl rumour has it warn is print debugging info or might be wrong
pmichaud anyway, I have no complaints about the annotations stuff you propose. 13:57
sorry, still no hate here for you. I'm sure you hate that. :-P
jonathan pmichaud: No, because you can do exception.'annotations'() in the common case 13:58
pmichaud okay. 13:59
jonathan If you meant, what annotations were in effect where we threw
dalek r35121 | fperrad++ | trunk/languages/m4/src:
: [m4]
: - fix deprecated opcodes : store/find_global
review: www.parrotvm.org/svn/parrot/revision?rev=35121
pmichaud I'm kind of wondering if we might want them in order to build the exception before throwing it.
jonathan Perhaps. 14:00
Well, we'll have the option.
OK, annotations op and tests done...make test, then ci. :-) 14:02
PerlJam good morning #parrot
jonathan Then .backtrace for exception
Then we just need pmichaud to do Cursor ;-)
(After rvar... :-))
tewk pmichaud: got a second for some PCT questions? 14:06
dalek r35122 | pmichaud++ | trunk/languages/perl6/docs:
: [rakudo]: spectest-progress.csv update: 279 files, 6171 passing, 0 failing
review: www.parrotvm.org/svn/parrot/revision?rev=35122
pmichaud tewk: sure. 14:07
nopaste "tewk" at 155.97.237.62 pasted "can I do this without bind?" (33 lines) at nopaste.snit.ch/15236 14:10
masak are user-defined operators on the Rakudo roadmap?
pmichaud tewk: eventually you'll be able to do it without bind, but not yet. 14:11
tewk: are you simply wanting to eliminate the extra set instruction?
masak: yes, they're on the roadmap (which I _really_ need to update)
dalek r35123 | jonathan++ | trunk (4 files): 14:12
: [core] Implement and test annotations opcode, for getting the current set of annotations in force or a particular annotation.
review: www.parrotvm.org/svn/parrot/revision?rev=35123
tewk yeah, bind was not the first thing that came to mind when I tried to write the PCT initially.
so it was a struggle. 14:13
pmichaud eventually I expect one to be able to do
PAST::Var.new( :scope('register'), :viviself( $past ) )
14:13 jimmy joined
pmichaud and then re-use that PAST::Var node multiple times after that 14:13
jonathan Folks: that last ci I just did will probably want a realclean. 14:14
jimmy hello Infinoid
pmichaud but in order for that to work, PCT needs to be able to remember "oh, I've already done the viviself part" when it encounters the node on the 2nd and subsequent evaluations
jonathan pmichaud: Will that not require control flow analysis?
pmichaud jonathan: PCT is going to take a naive approach 14:15
jimmy masak: ę™šäøŠå„½
pmichaud if what you're doing is more complex than what PCT can do on its own, then you'll have to manage it more carefully yourself.
the "I've already done the viviself part" is going to be handled by having each Block keep track of what registers it's already handled.
jonathan OK. 14:16
Infinoid hi jimmy
pmichaud That's also going to be used to allow PCT to avoid doing extra "find_lex" lookups for things that we know haven't been rebound.
tewk pmichaud: yeah I wanted a PAST:Op.return_register() or something.
jimmy Infinoid: good morning, I got a doubt. 14:17
tewk or PAST:Op.return_register_as_PAST_VAR();
pmichaud tewk: I think PAST::Var.new( :scope('register'), :viviself($past) ) works well enough :-) 14:18
if it doesn't, then maybe
PAST::Op.new( $past, :pasttype('register') )
jimmy why we define ASSERT_ARGS(a) as none when _MSC_VER
pmichaud but it still feels more like a ::Var node to me.
Wknight8111 because MSVC doesn't support the magic in that macro 14:19
jimmy what magic?
purl Sam sat on the ground and put his head in his hands. `I wish I had never come here, and I don't want to see no more magic,' he said, and fell silent.
Wknight8111 or doesn't support it without complaining
i dont know anything about it really, just repeating what I've heard
jimmy Infinoid: Is it __attribute__unused__ ? 14:20
Infinoid jimmy: because MSVC has no __attribute__unused__, and it results in a TON of warnings on that platform. 14:21
jimmy If we removed __attribute__unused__ ,does MSVC work well? 14:22
Infinoid no.
14:22 Wknight8111 joined
jimmy why? 14:22
Infinoid __attribute__unused__ is defined to nothing on MSVC, so in effect, we're already doing that
look at include/parrot/compiler.h 14:23
jonathan pmichaud: Which of ctx_to and ctx_from is the one that I want to look at in order to get the context the continuation goes to when invoked? I'm guessing/hoping ctx_to?
Infinoid HASATTRIBUTE_UNUSED is not defined on MSVC.
pmichaud ctx_to is the context that you will be in if the continuation is invoked.
jonathan OK, good.
jimmy so what is the problem on MSVC? 14:24
dalek r35124 | infinoid++ | trunk (11 files): 14:25
: Apply patch from GeJ++ in TT134, update the Pod modules bundled with parrot.
review: www.parrotvm.org/svn/parrot/revision?rev=35124
Infinoid jimmy: nopaste.snit.ch/15203 14:26
dalek r35125 | infinoid++ | trunk/include/parrot:
: [cage] Commit the latest updates from "make headerizer".
review: www.parrotvm.org/svn/parrot/revision?rev=35125
Infinoid jimmy: the problem is that MSVC doesn't have anything equivalent to gcc's __attribute__((unused)), so we can't disable those warnings. 14:27
jimmy should we add UNUSED(__ASSERT_ARGS_CHECK)?
Infinoid jimmy: that will result in an ISO C90 warning 14:28
include/parrot/compiler.h:114:#define UNUSED(a) if (0) (void)(a);
or do you mean, add it later on in the function? 14:29
jimmy #define ASSERT_ARGS_do_panic __attribute__unused__ int _ASSERT_ARGS_CHECK = 0; UNUSED(_ASSERT_ARGS_CHECK)
this just my thought 14:30
Infinoid yeah, I had considered that. but it will make ISO C90 warnings on both MSVC and GCC (on MSVC it's actually an error) if the function has any other variables declared after the ASSERT_ARGS() line
jimmy or add it later on in the function. but it is not maintainability. 14:31
14:31 gryphon joined
Infinoid indeed, the result seems pretty ugly to me 14:31
which is why we chose to just disable it on MSVC for now
jimmy if we add UNUSED(_ASSERT_ARGS_CHECK) at the bottom of all functions, it is ugly too. I think. 14:32
Infinoid hah. and will sometimes result in "code unreachable" warnings, if there was a return statement
jimmy or after var declaration 14:33
but it is ugly too. :( 14:34
Infinoid yeah. and harder to do correctly with s///
it's strange, but I was actually wishing parrot was written in XS, so that we could automatically insert these things in a preprocessor phase
any time I find myself wishing for XS, something is *seriously* wrong.
Wknight8111 you wish something was written in XS?
that's...terrible 14:35
jimmy XS?
jimmy don't know what it is.
Infinoid see, I killed purl with that
Wknight8111 XS is the dirty, disgusting C overlay that's used to write Perl 5 modules
Infinoid indeed. the one good thing about XS is that it can insert this kind of thing into functions without changing the input source
but it's not a serious suggestion.
anyway, we should be able to do *exactly* this kind of thing in pmc2c and ops2c, which I'm looking forward to 14:36
jimmy Is there any schedule to move #define ASSERT_ARGS_Parrot_set_global from .h files to .c files? 14:37
Coke_zzz (early for alcohol) it's 5 o'clock somewhere. (esp. if you're on IRC)
Infinoid jimmy: "schedule"? nah, it's a cage cleaner task, I don't think it should effect the release schedule
far better is to just do it. :)
jimmy I think there is a solution to avoid ' warning C4189: '_ASSERT_ARGS_CHECK' : local variable is ini 14:38
tialized but not referenced'
but we can't reach it. 14:39
Infinoid well, I am certainly interested in finding a better solution
so if you find one, please let me know
disabling the entire platform isn't exactly the cleanest solution I could imagine 14:40
jimmy I am trying,just like the C90 waring.
Infinoid jimmy++
jimmy as before, a known solution is to remove the warning from MSVC source codes. 14:41
Wknight8111 Coke, you need to get off IRC and get some sleep 14:42
Infinoid jimmy: of course, the MSVC source code isn't quite as available as the gcc source code is...
there's also a #pragma to disable the warning entirely, which is a cleaner way to achieve that goal
but the warning is still useful, we want to catch the non-_ASSERT_ARGS_CHECK cases 14:43
jimmy yes.
Infinoid so the trouble seems to be finding a non-global way to disable the warning 14:44
jimmy ah, I remember it.
#paragma
Wknight8111 /join #pragma 14:45
jimmy The patch I uploaded is ugly too. because of confusion. 14:46
Wknight8111 ugly patches are beautiful on the inside 14:47
jimmy Wknight8111: the issue is that there is no perfect ways. 14:49
Wknight8111 oh, I know there is no good solution! That's why I'm not dealing with it
:)
jimmy :) 14:50
jimmy goes to sleep now. good night. 14:51
Wknight8111 wants to go to sleep now too
but /me is at work, and sleeping at work is frowned upon
jimmy Wknight8111++ 14:52
Coke jonathan: ping
jonathan Coke: pong
Coke do we really need annotations_p_s ? 14:53
is annotations followed by a hash lookup too much?
jonathan Coke: I pondered that...
It was a kinda "completeness" thing.
But we don't strictly _need_ it.
We don't strictly need the string variant at all.
I was more matching precedent. 14:54
Coke I will expect pmichaud to argue for its removal (too many opcodes)
jonathan e.g. ops like insepect
Which I believe will take an s or sc
PerlJam Coke: at some point, I think it might be interesting to generate a list of the ops that rakudo (and other languages) actually use and compare that with the ops we have to see which ops don't get used at all or are used infrequently. 14:56
Wknight8111 like x86, it will probably turn out that most of our opcodes aren't actually used by any of our HLL compilers 14:57
PerlJam Wknight8111: perhaps.
I don't know. Which is why real data helps :) 14:58
pmichaud PerlJam: that's one of my tasks for this month's milestone -- to come up with a list of opcodes that we really don't use. 15:01
jonathan pmichaud: Agree with getting rid of annotations_p_s and just have the sc variant? 15:02
It'll be one less to review. ;-)
pmichaud (annotations_p_s) It somewhat depends on where the whole "clone for readonly behavior" notion ends up
(more)
let's take inspect_str on Class as an example 15:03
right now $P0 = inspect class, 'attributes' is scheduled to return a shallow-clone of the attributes hash
however, that shallow clone is only one deep, so it's possible for me to modify the metadata keys for any particular attribute
PerlJam on the parrot roadmap, what happens to those items with a status of "missed" exactly? According to the legend they need rescheduling. When does that happen? 15:04
Wknight8111 I thought allison was talking about handling metadata differently?
pmichaud so, perhaps inspect class, 'attributes' should do cloning two levels deep
Wknight8111: I'm getting to that, unless there's a message I didn't see yet.
Wknight8111 ok 15:05
pmichaud (note that what I'm describing for inspect_str here applies to the 'attributes' method on the Class PMC as well)
in other words, when I ask a Class for a list of its attributes, I get back a hash that contains cloned hashes of each attribute's metadata 15:06
this prevents me from using inspect to modify the metadata
now then, the "one-at-a-time" interface is going to be set_attribute 15:07
i.e., if I want to inspect a single attribute's metadata, I use getattribute on the class to do it
$P0 = getattribute class, "$!xyz" # retrieve metadata for $!xyz attribute
the idea being that we can intercept getattribute to do various special-purpose things and/or filters if needed 15:09
jonathan *nod*
Which all makes sense, but my original question was about annotations_p_s, not inspect_p_s. ;-)
pmichaud however, we probably don't want the caller to be able to manipulate *that* returned hash to change an attribute's metadata, so it should probably be a shallow clone of the attribute's metadata hash
(I'm getting to annotations_p_s)
jonathan Ah, OK.
pmichaud so, let's look at what using the getattribute interface involves 15:10
if we don't know the list of attributes already, we have to call 'attributes'() to get it
that involves creating n+1 new hashes, where <n> is the number of attributes
jonathan I'd sooner $P0 = inspect 'attributes' but allison somehow seems to think that's wrong.
But anyway... 15:11
pmichaud they end up being the same.
jonathan *nod*
pmichaud then, supposedly, we iterate through the list of attributes we got back, and use getattributes on each one so we can make use of the typed interface
but of course that involves making <n> more new hashes, which are re-creations of what we got back from inspect
so there's little point in using the getattribute interface once we've done inspect. 15:12
jonathan Yes. 15:13
pmichaud the time when the getattribute interface would be useful is when we want to fetch attribute metadata for a specific attribute (that we already know)
jonathan Yes.
pmichaud this would allow us to create only one shallow-copy hash
but I don't know how common that will be.
so, coming around to annotations 15:14
if you're returning hashes of information, my question would be "are we protecting them by making clones"?
also "are we more likely to ask for the entire set of annotations, or for just a known set of annotations"? 15:15
jonathan pmichaud: We don't _have_ anything to clone.
annotations are stored very compactly until we ask for them.
We produce a hash on demand that is not linked in any way to the underlying data. 15:16
pmichaud okay, so that eliminates my first question.
jonathan In the second case, if we don't know what the annotations are, then we have to get the hash to know what is available, in which case we have the annotation anyway. 15:17
So you'd not use the variant that takes a non-constant string to look it up. Youd' already have it.
If you know you just want, say, 'line', on the other hand, then you already know it's there.
erm, that sentence was badly worded... 15:18
pmichaud what if the annotation I want to look up is coming from another function?
(also badly worded)
what if I'm actually building the name of the annotation to be looked up dynamically?
I could probably put it more generally this way: I'm not too concerned about eliminating e.g. _s versus _sc variants 15:19
jonathan If there's a use case where we'd do that, the annotation_p_s would be useful.
Otherwise you'd have to get the hash and look up in that.
It's a question of, is that something we'll do often enough it's worth an op.
I don't think it hurts much to have one.
But then, for every 100 times we say "yeah, one more op is OK", we end up with 100 more ops. :-) 15:20
pmichaud in general if we have _s, _i, or _n arguments to an op, then I prefer to see the _sc, _ic, and _nc variants available also where it makes any sort of sense.
(and vice versa)
jonathan Same.
So you're saying leave both in?
pmichaud I think so, yes.
jonathan OK. 15:21
That's a noop for me then. :-)
pmichaud the only question for me would've been "do we need the ability to look up a single annotation by string or string constant?", which I think is "yes" 15:22
PerlJam when would the _sc variant not make sense if we have an _s already (for instance) ?
jonathan If the op modified the input. 15:23
pmichaud PerlJam: I can't think of any off the top of my head. But the opcode set's irregularities can cause fits for PCT (which is why we have an opcode table at the beginning of PAST::Compiler, and funny signature syntaxes to indicate what types of arguments each opcode could potentially accept)
jonathan Not sure if we have any cases of that for string.
PerlJam jonathan: good point though. Aside from that, maybe it's just me, but I tend to get annoyed when I have to say $S0 = "str"; foo $S0 instead of just foo "str" 15:25
tewk pmichaud: I did you see my conversation with jonathan about getting all the children of a match as an ordered array? 15:27
dalek r35126 | coke++ | trunk (7 files): 15:29
: remove [DEPRECATED] opcode store_global_p_s_p
review: www.parrotvm.org/svn/parrot/revision?rev=35126
15:29 mj41_ joined
jonathan Woo, custom backtraces. 15:34
in baz line 1 (baz.pm)
in bar line 5 (foo.p6)
in foo line 2 (foo.p6)
(Sadly, not from Rakudo, just my test script.) 15:35
tewk jonathan: so how much work will it be to add annotations to PCT?
jonathan tewk: pmichaud needs to do a refactor in PGE to give us line numbers easily available first. 15:37
tewk: After that, hopefully not much work. 15:38
masak jonathan: I really, really like that backtrace. 15:39
jonathan Coming to a Rakudo near you hopefully soon. :-)
Coke jonathan: can we see your test script? 15:40
jonathan++
jonathan Coke: No 'cus I just realized the output is wrong. :-P 15:44
But easy fix... Anyway, here it is...
nopaste "jonathan" at 85.216.157.73 pasted "test file that gave the output I pasted" (64 lines) at nopaste.snit.ch/15237 15:45
jonathan Things you discover when writing tests...bugs. ;-)
Top line of output shoulda been "in baz line 2 (baz.pm)" - fixed now 15:48
15:52 jhorwitz joined
masak "LOL HALP I HAZ A FAIL" :P 15:53
dalek r35127 | coke++ | trunk (3 files): 15:54
: remove Parrot_store_global_k, only used by a long-[DEPRECATED] and now removed opcode
review: www.parrotvm.org/svn/parrot/revision?rev=35127
15:58 davidfetter joined
dalek r35128 | jonathan++ | trunk/docs/pdds: 16:01
: [pdd] Remove unimplemented notes for annotations method on Exception, and add documentation for backtrace method.
review: www.parrotvm.org/svn/parrot/revision?rev=35128
r35129 | jonathan++ | trunk (2 files): 16:02
: [core] Implement backtrace method on Exception class, and add some tests for it.
review: www.parrotvm.org/svn/parrot/revision?rev=35129
jonathan masak: OH YOU DOZ? 16:04
OK, is that enough to mark annotations as "landed", I wonder? 16:05
masak jonathan: no, I just found that string literal in your paste.
jonathan: if all tests pass, and the backtraces look beautiful, what's there to hesitate about? 16:06
jonathan masak: I knows. ;-)
Well, the stuff is there to make the backtrces look beautiful.
(A language can make them look however it wishes - that's the point.) 16:07
Oh, what is the "bytecode testing framework" thingy I'm meant to be doing?
pmichaud jonathan: I think you can likely mark bytecode annotations as landed. 16:14
you can also resolve a couple of RT tickets.
jhorwitz jonathan++
tewk jonathan++ 16:15
so how much of a pain is the PGE refactor that is needed for annotations? 16:16
jonathan pmichaud: OK. I don't know what the thing that has been written next to it is about.
pmichaud jonathan: I don't know either. I didn't write that. :-)
jonathan wonders who did 16:17
pmichaud I suspect it might be something kjs needs for pirc.
tewk the interface between parrot and imcc needs to be pluggable.
pmichaud i.e., a set of bytecode tests to verify that bytecode generators (imcc, pirc) are producing the correct output.
or, a pluggable bytecode generator interface, as tewk suggests. 16:18
my guess is:
Infinoid jonathan: oh, should I remove branches/bcanno/ now? (I got so caught up with testing the patch in trunk, I forgot all about it.)
pmichaud (1) particle combined "bytecode annotations" and "bytecode testing framework" into a single item
jonathan Infinoid: I was going to, but you may.
pmichaud (2) your name was placed on that item because you're doing bytecode annotations
dalek r35130 | infinoid++ | branches: 16:19
: Remove old bcanno branch; it's been merged into trunk.
review: www.parrotvm.org/svn/parrot/revision?rev=35130
jonathan I've separated them back out and marked bytecode annotations as landed. 16:20
pmichaud excellent. 16:21
jonathan++
Infinoid is "bytecode testing" just the fact that t/native_pbc has been skipping tests since forever?
(I really don't know, its just a guess.) 16:22
jonathan Infinoid: That's another viable guess.
OK, I see no Trac tickets about bytecdoe anno stuff. Let me peek at RT. 16:25
pmichaud it's more about line numbers
in pir source
jonathan Ah, metadata in bytecode can be closed :-) 16:27
dalek r35131 | infinoid++ | trunk (6 files): 16:28
: [cage] A batch of file_metadata.t fixes.
review: www.parrotvm.org/svn/parrot/revision?rev=35131
Infinoid one drawback of using git all the time is the lack of metadata testing. 16:29
jonathan And other one found/closed. 16:36
Was rt.perl.org/rt3/Ticket/Display.html?id=47930 not already done? 16:41
Meh, I has no delete privs on RT. Somebody delete rt.perl.org/rt3/Ticket/Display.html?id=62042 16:50
pmichaud: You planning more work on rvar today? 16:54
Coke jonathan: spam goes in the spam queue. moved. 16:55
jonathan Coke: Thanks.
pmichaud jonathan: yes -- I just wanted to get my responses to allison about class identification, since she was good enough to put effort into it quickly. 16:56
those are now sent, so I'm back to rvar.
(and I just had lunch :-)
dalek r35132 | rurban++ | branches/pdd30install_stage4 (4 files): 16:59
: RT#39742 installed parrot conflicts with dev parrot:
: - move -L/usr/lib in ldflags behind -lparrot
: - link directly to dll in build_dir, get rid of cygchkdll
: - fix wrong implib in ext/SQLite3/Makefile.in
: M ext/SQLite3/Makefile.in
: M MANIFEST
: M config/init/defaults.pm
: M config/gen/makefiles/root.in
review: www.parrotvm.org/svn/parrot/revision?rev=35132
pmichaud any particular rvar piece you want me to address first? I was going to restore grammar/regex/token/rule
jonathan Those are fine with me. 17:00
pmichaud: Any chance of a sync-up with trunk before you dig in? 17:01
pmichaud: Or is that too hard?
pmichaud you mean sync trunk into the branch?
jonathan You hate doing that. :-) 17:02
pmichaud well, I can do it the way I normally do it.
I don't mind doing it.
it's probably a good place/time for us to do it, yes.
jonathan OK, my real issue: do we know what tests we are failing because of the branch, and because of lagging behind fixes in drunk?
er, trunk
<- totally sober
pmichaud there aren't many lagging issues.
jonathan OK, if there aren't then I'm not so concerned.
pmichaud there hasn't been much change to rakudo outside of the rvar branch. 17:03
jonathan OK.
I just didn't want to be chasing down test failures, that aren't because of the branch.
particle there's just the one failing parrot test on win32 that i fixed in trunk 17:04
pmichaud agreed, I don't think there are any many.
jonathan Our spectest.data is out of date.
pmichaud that's okay if spectest.data is out of date.
jonathan Due to moving stuff around in the Pugs repo.
pmichaud oh.
did a lot of stuff move?
particle you can sync that one file
pmichaud if so, then maybe we do need to sync with trunk.
jonathan Note sure
Missing test file: t\\spec\\S29-list\\map_empty_list.t
Missing test file: t\\spec\\S29-list\\map_flattening.t
Missing test file: t\\spec\\S29-list\\map_topic.t
I get those at least.
pmichaud yes, we should resync spectest.data then. In that case we'll get some unpack failures. 17:05
(because unpack did go in)
I'll go ahead and manage a sync
only takes about 10-15 minutes, normally.
and it is a good point to do that.
particle it's seriously easy with svn 1.5, i could do it for you
pmichaud it's seriously easy the way I do it, too. :-)
particle or, you can recreate the branch, your style
could you keep the branch name the same? 17:06
jonathan pmichaud: OK, go for it. :-)
pmichaud do I need to keep the branch name the same?
jonathan Doesn't matter to me.
particle it's easier for us, we just wait and do svn up
pmichaud oooh, I woudln't trust that.
particle it works.
pmichaud even if I move the existing branch somewhere?
that would seem.... odd. 17:07
jonathan Please let's not try and be too clever. :-)
pmichaud right, I'm trying to not be too clever here.
particle you'll delete and recreate the branch
ok, whatever.
jonathan pmichaud: Go ahead and do it the way that makes sense. :-)
(to you ;-))
dalek r35133 | pmichaud++ | branches: 17:08
: New branch for sync rvar with trunk.
review: www.parrotvm.org/svn/parrot/revision?rev=35133
particle pmichaud: i want to create a 'testable' make target for rakudo, that compiles perl6, updates t/spec, and compiles Test.pir 17:13
good/bad/ugly?
then i can say make testable && tools/test_summary.pl
dalek r35134 | pmichaud++ | branches/rvar2 (20 files):
: Second step of new branch from rvar+trunk.
review: www.parrotvm.org/svn/parrot/revision?rev=35134
pmichaud (rvar2 branch should now be ready -- I haven't tested it yet for problems but we can do that in parallel) 17:14
particle or make testable localtest
pmichaud well, localtest shouldn't imply updating t/spec
oh, you mean to do both.
okay.
particle ok, great 17:15
pmichaud wait a sec-- checking.
particle localtest does update t/spec, but doesn't make Test.pir
odd.
pmichaud it should -- that's probably left over.
i.e., I didn't update it then.
particle should localtest update t/spec? 17:16
pmichaud I'd prefer that it didn't.
particle consider it done
pmichaud it doesn't now.
particle localtest: all t/spec t/localtest.data
pmichaud the t/spec target just does a checkout, it doesn't update
particle it *does*
ah 17:17
pmichaud if t/spec already exists it's a no-op.
particle ok, nm
17:17 Andy joined
pmichaud maybe we should have spectest_checkout and spectest_update targets 17:17
particle yep, i'll do that first 17:18
pmichaud keep in mind that I only want a checkout to be performed if t/spec doesn't already exist. 17:19
jonathan builds rvar2
dalek r35135 | particle++ | trunk/languages/perl6/config/makefiles:
: [rakudo] fix typos in makefile template
review: www.parrotvm.org/svn/parrot/revision?rev=35135
pmichaud argggh, "make test" broken in rakudo trunk 17:20
we might need a re-re sync. 17:21
need to fix trunk first.
jonathan pmichaud: Do you get 17:23
t\\pmc\\perl6multisub-arity.......error:imcc:The opcode 'find_global_p_sc' (find_g
lobal<2>) was not found. Check the type and number of the arguments
pmichaud jonathan: yes. find_global is deprecated and got removed in trunk. 17:24
fixed in trunk, now fixing in branch.
dalek r35136 | pmichaud++ | trunk/languages/perl6/t/pmc (3 files):
: [rakudo]: Change find_global -> get_global.
review: www.parrotvm.org/svn/parrot/revision?rev=35136
r35137 | jquelin++ | trunk/languages/befunge: 17:25
: off-by-one error: each line is 80 columns long
review: www.parrotvm.org/svn/parrot/revision?rev=35137
pmichaud jonathan: fixed in r35138. 17:26
dalek r35138 | pmichaud++ | branches/rvar2/languages/perl6/t/pmc (3 files):
: [rakudo]: find_global -> get_global (in rvar2 branch)
review: www.parrotvm.org/svn/parrot/revision?rev=35138
jonathan pmichaud: Great. 17:27
dalek r35139 | jquelin++ | trunk/languages/befunge:
: and the playfield is 25 lines long, not 23
review: www.parrotvm.org/svn/parrot/revision?rev=35139
pmichaud runs spectest on rvar2. 17:29
dalek r35140 | particle++ | trunk/languages/perl6/config/makefiles: 17:30
: [rakudo] refactor makefile template to create spectest_checkout and spectest_update targets; fix logic errors
review: www.parrotvm.org/svn/parrot/revision?rev=35140
r35141 | jquelin++ | trunk/languages/befunge:
: simplify padding
review: www.parrotvm.org/svn/parrot/revision?rev=35141 17:31
jonathan also 17:32
Coke some languages may experience a momentary discomfort. 17:33
dalek r35142 | jquelin++ | trunk/languages/befunge: 17:34
: removing trailing \\n while reading program
review: www.parrotvm.org/svn/parrot/revision?rev=35142
r35143 | jquelin++ | trunk/languages/befunge: 17:36
: dumping the playfield now working
review: www.parrotvm.org/svn/parrot/revision?rev=35143
Coke anyone familiar with imcc guts about? 17:37
17:37 rurban joined
tewk Coke: what would you like to know? 17:38
Coke safe to remove the references to find_/store_ global in optimize.c ?
should we replace them with references to every other global variant?
(the first part is pretty much "yes", since those are nearly gone right now.)
dalek r35144 | particle++ | trunk/languages/perl6/config/makefiles: 17:39
: [rakudo] add 'testable' make target to create perl6 executable, compile the test library, and update the official test suite
review: www.parrotvm.org/svn/parrot/revision?rev=35144
r35145 | jquelin++ | trunk/languages/befunge:
: "next" implemented
review: www.parrotvm.org/svn/parrot/revision?rev=35145
allison Coke: yes
Coke: if access to the global is important to the code, then replace it with the the modern version of the call 17:40
Coke that's my question. I have no idea if it's important to replace 17:41
tewk The code is #ifdef'ed, I would be suprised if it is used or works. 17:42
Coke I'll remove the existing references, though.
(ifdef'd) ah. missed that.
tewk its trying to do loop optimizations, we have added a lot of instructions that probably aren't safe and aren
t detected in that code,
The #ifdef maybe turned on, but I doubt it.
Coke tewk: ah, no the define is actually set to 0 above that. 17:43
so even if someone defined it, it's always off.
allison: I'm just going to rip that define and any commented out code out, ok?
tewk +1 17:44
allison Coke: yes, please do :)
jonathan has a finished make spectest run in the branch, time to start hacking
dalek r35146 | jquelin++ | trunk/languages/befunge: 17:50
: _debug__check_breakpoints() completed
review: www.parrotvm.org/svn/parrot/revision?rev=35146
17:51 kj joined
dalek r35147 | jonathan++ | branches/rvar2/languages/perl6/src/parser: 17:51
: [rakudo] Delete now-unused subroutine from actions.pm (we've got all of the functionality that it contained re-implemented).
review: www.parrotvm.org/svn/parrot/revision?rev=35147
r35148 | Whiteknight++ | trunk/docs/book: 17:54
: [Book] Add some basics about exceptions, handlers, and annotations.
review: www.parrotvm.org/svn/parrot/revision?rev=35148
r35149 | rurban++ | trunk/t/pmc: 17:55
: Fix TT#121. Extend coke's r35098 to cygwin also.
review: www.parrotvm.org/svn/parrot/revision?rev=35149
r35150 | jquelin++ | trunk/languages/befunge: 17:59
: starting tick() implemention
review: www.parrotvm.org/svn/parrot/revision?rev=35150
pmichaud jonathan++ # eliminating no-longer-needed-subs
18:01 chromatic joined 18:02 mberends joined
dalek r35151 | jquelin++ | trunk/languages/befunge: 18:04
: migrated tabs to 4 spaces
review: www.parrotvm.org/svn/parrot/revision?rev=35151
r35152 | jquelin++ | trunk/languages/befunge (2 files): 18:05
: go west implemented
review: www.parrotvm.org/svn/parrot/revision?rev=35152
rurban allison: I need you to update all my tickets they were rejected as I have to consider how to go on. I posted a summary of your review work at trac.parrot.org/parrot/wiki/Pdd30I...llTasklist
...all my tickets why they were rejected... 18:06
dalek r35153 | particle++ | trunk/languages/perl6/config/makefiles:
: [rakudo] rearrange makefile for maintainability
review: www.parrotvm.org/svn/parrot/revision?rev=35153
r35154 | jonathan++ | branches/rvar2/languages/perl6/src/parser: 18:11
: [rakudo] Make 'has $x' style declarations work correctly again. This gets us compiling and passing some of S12-class/attributes.t.
review: www.parrotvm.org/svn/parrot/revision?rev=35154
pmichaud I thought I had "has $x" working already.
dalek r35155 | jquelin++ | trunk/languages/befunge:
: pc moving implemented at end of tick
review: www.parrotvm.org/svn/parrot/revision?rev=35155
pmichaud in particular, I thought I was already passing S12-class/attributes.t .
or was this due to the mmd changes? 18:12
jonathan: ping
jonathan pmichaud: hi
We didn't even compile it. 18:13
pmichaud I thought 'has' was working already. Was this due to the mmd changes?
jonathan Don't think so.
dalek r35156 | jquelin++ | trunk/languages/befunge (2 files):
: instruction > implemented
jonathan Attributes did generally work.
dalek review: www.parrotvm.org/svn/parrot/revision?rev=35156
jonathan But the 'has $x' form not so.
Half of what it needed was there.
pmichaud yes, I'm certain I did that.
jonathan Half was missing.
pmichaud what half was missing?
jonathan See the patch but basically, it wasn't registering both symbols or using $!x as the underlying name at declaration time. 18:14
allison rurban: okay, reviewing patch list now. Will integrate the comments I sent you in email into the tickets.
pmichaud yes, it was.
at least, I'm pretty sure it was.
let me check my copy.
jonathan I read all of scoped and couldn't see anywhere it did it.
Plus it wsa failing the test.
pmichaud it shouldn't be hacking the name.
dalek r35157 | jquelin++ | trunk/languages/befunge (2 files):
: instruction v implemented
review: www.parrotvm.org/svn/parrot/revision?rev=35157
pmichaud yes, it was being stored as $!x 18:15
jonathan Hmm.
dalek r35158 | jquelin++ | trunk/languages/befunge (2 files): 18:16
: instruction ^ implemented
review: www.parrotvm.org/svn/parrot/revision?rev=35158
jonathan S12-class/attributes.t wouldn't compile before the patch I just put in. Afterwards it would. So something is amiss...
pmichaud okay, let me see what's going on.
the code that is generated is 18:17
jonathan Oh
!meta_keyword does the name fixup, it seems...
pmichaud that's right.
jonathan Ah.
*but*
You need to register both names with $block.symbol(...)
pmichaud okay. 18:18
that part makes sense.
let me look at it again.
18:18 gmansi joined
jonathan But if we're going to do that, Iwe need to handle the name stuff in the action. So we may as well not do it in guts.pir. 18:18
OK, will leave it for you to review.
pmichaud using substr is bad, because some attributes might not have a sigil 18:19
e.g., my &!x;
er has &!x;
jonathan Ah.
Yes.
I was trying to avoid looking down the parse tree.
pmichaud correct, I don't want to look down the parse tree
because it might be a signature
or a variable_declarator
and I don't want to be testing those cases... etc etc 18:20
jonathan pmichaud: On the &!x - I think what's in guts.pir is vulnerable too.
Agree.
dalek r35159 | jquelin++ | trunk/languages/befunge (2 files):
: instuction " implemented (toggle string mode)
pmichaud yes, but I know I can easily fix it there. :-)
dalek review: www.parrotvm.org/svn/parrot/revision?rev=35159
pmichaud I decided not to worry too much about the & sigil overall, but I wanted to make sure I only had to worry about it in one place.
jonathan I'm sure I can fix it as easily in NQP as I can in PIR. ;-)
pmichaud it's the "one place" issue I was thinking of. 18:21
jonathan OK
Thing is we still need to register both names in the block, so we still need to be able to work out what they are.
dalek r35160 | jquelin++ | trunk/languages/befunge:
: replaced tabs by 4 spaces
review: www.parrotvm.org/svn/parrot/revision?rev=35160
pmichaud agreed, I'm just thinking where/how exactly I want to do that.
jonathan A "fixup_attribute_name" kinda sub that both the action and elsewhere can call would maybe work? 18:22
pmichaud there's not really an "elsewhere"
there's two places, but they really do different things.
jonathan So why are we worrying about doing it in one place? :-)
Ah, OK.
pmichaud I'm inclined to agree with doing it in actions.pm -- just trying to decide how/if I want to avoid the substr 18:23
jonathan Could we always set $var<sigil> and $var<namewithoutsigil>?
pmichaud I thought about $var<ident>, yes.
jonathan Back when we manufacture the PAST::Var in the first place?
Yes, ident is the word I couldn't think of. :-)
pmichaud let's go with what you have now. Take the name-adjusting code out of guts.pir. 18:25
thanks.
we'll fix the sigil up later, but in actions.pm. 18:26
there's a possibility I'll start keeping sigils on the var names.
dalek r35161 | jquelin++ | trunk/languages/befunge (2 files):
: string mode implemented (push char)
pmichaud (not likely yet, but a possibility.)
dalek review: www.parrotvm.org/svn/parrot/revision?rev=35161
pmichaud ....why did the block need both names, again? 18:27
oh, never mind. I know why.
jonathan Because you can refer to $...right.
:-)
pmichaud well, you can, but we'd have to be sure to put a :scope attribute on every variable with a ! twigil 18:28
i.e., every PAST::Var with a ! twigil gets a :scope('attribute'), leaving the non-! version to be looked up in the symbol table.
but we still might want to do some compile-time checking for the !-twigil form, so entering it in the symbol table is good.
so we still go with what you have now. :-) 18:29
jonathan The thing is that we need two entires to keep PAST::Compiler happy - otherwise it says "huh, what's $!x" etc.
pmichaud you don't need to keep PAST::Compiler happy if every $!x node has :scope('attribute')
chromatic It's one less than $3ven
pmichaud PAST::Compiler only looks in the symbol table for PAST::Var nodes lacking :scope attributes.
jonathan Ah, yes.
pmichaud (which is all of them at the moment) 18:30
jonathan *nod*
dalek r35162 | jonathan++ | branches/rvar2/languages/perl6/src/builtins:
: [rakudo] Remove now-unused twigil handling code - it's done in actions.pm now.
pmichaud anyway, we'll make two entries for now.
dalek review: www.parrotvm.org/svn/parrot/revision?rev=35162
jonathan OK, and cleaned up that other bit.
pmichaud but there's always the option of going back to one if we decide we need it.
jonathan OK
Gah. You stop a test failing to compile, but have it failing some of its subtests, and the failing subtests count goes up! 18:31
dalek r35163 | jquelin++ | trunk/languages/befunge (2 files):
: handling trampoline mode
review: www.parrotvm.org/svn/parrot/revision?rev=35163
pmichaud I was almost certain I had that test passing already.
jonathan (Because of course, it didn't know how many tests there were before.)
pmichaud tries locally. 18:32
yes, I'm positive it was running at one point. 18:33
(now that I look at it)
ah yes, your fix messes up the $.x forms. 18:35
er, $x forms
dalek r35164 | jquelin++ | trunk/languages/befunge: 18:36
: converting tabs to spaces
review: www.parrotvm.org/svn/parrot/revision?rev=35164
pmichaud the code in guts.pir was doing more than just adding '!', it was also converting '.' to '!'
and the reason for doing it in guts.pir was that at one point I was playing with adding the accessor methods from guts.pir instead of actions.pm 18:37
(which I might still want to do)
oh! I know what I want.
jonathan leaves it to pmichaud and takes on something else.
Wknight8111 jquelin++ has been doing a lot of work on befunge today! 18:38
dalek r35165 | allison++ | branches/cc_restart/src:
: [calling_conventions] Make an exception for method calls, not to use runops.
review: www.parrotvm.org/svn/parrot/revision?rev=35165
r35166 | jquelin++ | trunk/languages/befunge (2 files): 18:39
: instructions 0-9 implemented (push number)
review: www.parrotvm.org/svn/parrot/revision?rev=35166
jq Wknight8111: eh, i heard that befunge language was in the worst shape of implementation... 18:40
so it hurted my pride, i had to do sthg :-)
Wknight8111 excellent! I'm glad to see it
it's a very cool language 18:41
moritz we should hurt jq's pride more often ;-)
jonathan moritz: I was thinking the same, but didn't want to say it. ;-)
moritz "I bet nobody can implement $feature right now" 18:42
jq i did not touch it since 2002... 18:43
jonathan wasn't even involved with Parrot in 2002!
jq that's a long time, no wonder it was such in a bad shape wrt current parrot
moritz I didn't even do perl in 2002 ;-) 18:44
jq jonathan: uh, i *think* befunge was the first language implemented on top of parrot
(or at least one of the first)
moritz: hmm, i will stick to current feature set wrt befunge on parrot
jonathan jq: How hard has it been to update it?
Wknight8111 so does the befunge compiler actually work now? Can I write stuff in it?
jq hmm, quite a bit. but mostly due to 2 reasons: 18:45
- i had to get up to speed once again
- i'm moving from pasm to pir
and using subs and higher-level stuff than what i've been using till now
moritz make: *** No rule to make target `befunge.pasm', needed by `befunge.pbc'. Stop. 18:46
18:46 purl joined
jq (i used only I, S, P and N regs, and made sure that I5 had this semantics throughout the program) 18:46
Wknight8111: not yet
at least, it doesn't crash anymore
Wknight8111 oh, that's too bad 18:47
allison: That last commit wasn't something I had in the original cc branch. I was using runops for methods to
jq the direction changing, string mode, and number pushing is working
Wknight8111 too*
jq the debug mode too
Wknight8111 jq: that's quite an impressive start!
Infinoid jq++ 18:49
jq: there are some interesting possibilities with parrot's language interoperability and the befunge "library" semantics
jq Infinoid: such as? 18:50
Infinoid jq: befunge code calling functions in perl6, tcl, ruby etc
jq oh, yes.
Infinoid: note that i implemented the official "PERL" semantics in L::B :-) 18:51
Infinoid ooo
jq & 18:53
Coke hey, outlook, can you stop reformatting my svn commit emails? thanks. :p 18:54
dalek r35167 | pmichaud++ | branches/rvar2/languages/perl6/src (2 files):
: [rakudo]: More "has $x" cleanups (jonathan++)
: * I may want to refactor this yet again a bit, but this is relatively
: clean and works for now.
review: www.parrotvm.org/svn/parrot/revision?rev=35167
Coke (I also wish gmail's app-sharing email dealt with fixed width messages better.) 18:55
just to share the grump.
pmichaud jonathan: the theory behind handling the sigils in guts.pir is that eventually we may want to automatically create the accessor methods there (instead of actions.pm) 18:58
Ideally I think that we should create the accessor methods as part of !meta_compose 18:59
(so that we don't create them if they're defined elsewhere.)
s/sigils/twigils # three lines up 19:00
jonathan That's a good point. We don't handle people coming up with their own ones yet.
pmichaud I had it working that way for a bit, but it was a little too dynamic for me
so I went ahead and stuck the accessors back into actions.pm for now. But they might move back into guts if we can figure out a good way to do that.
okay, back to grammars. 19:03
jonathan Woo. My patch for constraints almost removes as many lines as it adds.
pmichaud :-)
that's been my experience with the refactor overall :-)
jonathan May be able to clean it up more still.
pmichaud actions.pm is still under 2700 lines.
and there's still a fair bit we can probably cut out. 19:04
jonathan Where were we at before? 4000ish?
pmichaud 4500ish
oh wait, no, 4000ish
I am planning to redo enums, too, but that might be post-merge.
jonathan Guess it hinges on how much they have to change to be able to merge. 19:05
pmichaud yes.
chromatic I like how the time it takes to compile actions.pm has remained mostly constant, despite its growth over the past eight months. 19:06
jonathan It'll come down after the merge, by a decent bit, I expect.
Though of course with still plenty of room for improvement. :-)
But yes, shows the performance gains Parrot has made. 19:07
pmichaud: Interesting. We fail S04-declarator/my.t but I think the test is dubious. 19:09
my $test = "value should still be set for arg, even if there's a later my"; 19:10
sub foo2 (*%p) {
is(%p<a>, 'b', $test);
my %p;
}
foo2(a => 'b');
pmichaud jonathan: yes, I ended up skipping my.t and multi.t for now.
I wanted to get clarification from p6l on that.
jonathan multi.t where?
pmichaud The failure is due to the "redeclaration" detection I put in for variables; we can turn that off again in order to merge to trunk. 19:11
er, multiple.t
S04-declarations/multiple.t
jonathan But I suspect the redifinition test is right, and the test is wrong here.
You'd have to write maybe proto %p or something. 19:12
pmichaud I'm guessing that in order to be able to do "my %p" in that case we need a 'proto' somewhere.
right.
anyway, I'm okay with skipping the test for now.
(i.e,. #?rakudo skip)
then we can leave the redefinition code in place.
multiple.t has similar issues, iirc -- there need to be some protos.
Also, I don't know if our $x; our $x; should produce a redefinition error.
errand, be back in a while. 19:14
jonathan ok 19:16
Coke AHHHHHAAAH.
dalek r35168 | jonathan++ | branches/rvar2/languages/perl6/src/parser (2 files):
: [rakudo] First cut at getting constraint types working in signatures again. Still much to do, but and probably some cleanups of the sub that I have brought back into use again too.
review: www.parrotvm.org/svn/parrot/revision?rev=35168
Coke (this code has been commented out since r5334
and it's all nicely annotated with seatbelts, even though it was never invoked. ah, the wasted cycles. 19:17
Wknight8111 what code?
purl i guess code is message mapping => usually pulled straight from the RFC
Coke imcc/optimizer.c 19:18
(515 lines of code removed. running 'make test' now.) 19:21
chromatic Run Rakudo's tests too. 19:23
Wknight8111 purl Parrot? 19:35
purl Parrot is, like, our teacher, our mother, our secret lover or the reason Dan started or the reason Dan left or pretty onionish:) or www.youtube.com/watch?v=4vuW6tQ0218...re=related
Wknight8111 purl C? 19:36
purl C is probably for cookie, and it's good enough for you.
dalek r35169 | jonathan++ | branches/rvar2/languages/perl6/src (2 files): 19:38
: [rakudo] Restore a bunch of type stuff, which in turn corrects a bunch of multi things. This is, mostly, just copy/pasted back into the branch from trunk; it was hard enough to get right once. :-)
review: www.parrotvm.org/svn/parrot/revision?rev=35169
r35170 | coke++ | trunk (3 files): 19:39
: remove some optimizer code which has been #ifdef'd out since r5334 (2004-02-21)
review: www.parrotvm.org/svn/parrot/revision?rev=35170
19:42 Ademan_ joined
pmichaud back 19:45
dalek r35171 | jonathan++ | branches/rvar2/languages/perl6 (2 files): 19:49
: [rakudo] Pop in a Regex class, so we don't epic fail on S06-multi/type-based.t.
review: www.parrotvm.org/svn/parrot/revision?rev=35171
r35172 | coke++ | trunk (2 files): 19:51
: [pheme] allow pheme to easily regen its makefile
review: www.parrotvm.org/svn/parrot/revision?rev=35172
pmichaud jonathan: to make sure I understand the code correctly -- we pass in all constraints (type or otherwise) in to add_param, and then it segregates them out into type + constraint properties?
jonathan pmichaud: Got multi and single dispatch on types mostly straightened out.
pmichaud: Yes.
pmichaud what happens for normal variable declarations -- i.e., non-params?
jonathan pmichaud: Because it's not quite so easy as it first looks, and one thing might end up being both a constraint and a type.
We'll still want a junction there. That's my next thing to review.
pmichaud oh, but a simple junction is sufficient, yes? 19:52
jonathan pmichaud: I should clarify. The one thing might lead us to a type and stay as a constraint.
pmichaud because we're not doing matching.
jonathan A simple junction is fine for straightforward type checking in the "can we assign to this" sense.
It doesn't cut it for multiple dispatch though.
pmichaud ah, excellent. It should be pretty close to "just works" then.
fwiw, that's why I had 'type' original as an 'all' junction instead of 'list' 19:53
jonathan Ah, I need to check what the signature binder does in the single dispatch case.
pmichaud: Is what that produces actually used outside of signatures?
pmichaud in some sense I'm not comfortable with them being segregated.
jonathan checks
pmichaud: They need to be.
pmichaud no, I mean in the sense of partitioned. 19:54
jonathan Wait, what are we talking about now?
pmichaud I'd almost prefer to have one property for "all constraints" and a separate property for "things needed for multidispatch"
and it's okay if there's some duplication.
Coke hurm. pheme is borked with recent removals of some opcodes. I tried udpating, but am now getting test failures. hurm. 19:55
pmichaud yes, the type checks were intended to be used for all variable constraints, not just params.
that's why they were 'and' junctions.
cotto irclog?
purl irclog is irclog.perlgeek.de/parrot/today or see also: infrared clogs
jonathan pmichaud: Ah.
Damm.
OK, I'll switch it back to being one.
pmichaud but let's talk params first
jonathan And .values them
pmichaud .eigenstates
jonathan ? 19:56
Is that the new .values?
pmichaud .values gets autothreaded over the junction (or should, or will)
e.g., if we have a junction of lists
or a junction of hashes
jonathan Have we switched to .eigenstates in Rakudo?
pmichaud yes, for quite a while now.
jonathan perl6: say (1 | 2).eigenstates
polyglotbot OUTPUT[Method 'eigenstates' not found for invocant of class 'Junction'␤current instr.: '_block14' pc 76 (EVAL_13:41)␤called from Sub '!UNIT_START' pc 16311 (src/builtins/guts.pir:327)␤called from Sub 'parrot;PCT;HLLCompiler;eval' pc 950 (src/PCT/HLLCompiler.pir:527)␤called from Sub
..'parrot;PCT;HLLCompiler;evalfiles' pc 1275 (src/PCT/HLLCompiler....
pmichaud hmmm. 19:57
jonathan perl6: say (1 | 2).values
polyglotbot OUTPUT[Method 'values' not found for invocant of class 'Junction'␤current instr.: '_block14' pc 76 (EVAL_13:41)␤called from Sub '!UNIT_START' pc 16311 (src/builtins/guts.pir:327)␤called from Sub 'parrot;PCT;HLLCompiler;eval' pc 950 (src/PCT/HLLCompiler.pir:527)␤called from Sub
..'parrot;PCT;HLLCompiler;evalfiles' pc 1275 (src/PCT/HLLCompiler.pir:6...
jonathan :-|
pmichaud oh, it's a private method at the moment.
!eigenstates
jonathan OK
I didn't realize that rule was used for as much - I shoulda checked. 19:58
pmichaud anyway -- for params do you see an issue if the types used for mmd were simply references to things in the constraints
?
I'd like to keep it so assignment only has to check one thing.
jonathan Ah, I see what you're getting at now. 19:59
We need to set thigns on the container.
pmichaud correct.
jonathan Which we did separately before.
Aha.
pmichaud for both params and variables.
jonathan Right.
Now I see your point.
pmichaud I'd like that to be "common", and "mmd" be the special case.
jonathan Yup, with you.
Now we just gotta know, what to call them. :-)
pmichaud I don't mind if we move the assignment trait to something other than 'type' 20:00
to be consistent with synopses, it should almost be "vtype" (for value type)
phone
(and yes, itype/type/vtype may all refactor at some point, but having them separate for now is convenient)
cotto pmichaud, would it be a good cage task to go through tests and change $P0 = new 'Foo' to $P0 = new ['Foo'] ? 20:01
pmichaud cotto: yes, I think so. 20:02
cotto In the last #ps you said the old syntax was highly discouraged. Is there any place where it's needed, or should it be put on the road to deprecation? 20:03
(#ps on Dec 30, not yesterday) 20:04
20:05 register joined
pmichaud I'd prefer that it be on the road to deprecation. 20:07
dalek r35173 | jonathan++ | branches/rvar2/languages/perl6/src (3 files): 20:11
: [rakudo] Leave type being the full set of type constraints we must obey, and store the separated out ones under different lists for MMD.
jonathan pmichaud: Done what you suggested - for ease, left type having the meaning you gave it before.
dalek review: www.parrotvm.org/svn/parrot/revision?rev=35173
diakopter aren't we all, though [on the road to deprecation]? ;) the more the merrier.
Coke what was <entrytype> ?
pmichaud jonathan: that's fine.
Coke hurm. doesn't matter what it was, as that value was never used. 20:14
jonathan pmichaud: OK, I need nom. 20:15
pmichaud: But that gets subtypes muchly restored.
20:26 mberends joined
particle seems BASIC stands for parrot's red-headed stepchild 20:33
20:42 reezer joined
reezer hi 20:42
purl niihau, reezer.
reezer Configure doesn't find my libraries. I tried it with both prefix and LD_LIBRARY_PATH 20:43
perl is also installed in the same prefix 20:45
purl okay, reezer.
Coke particle: I thought that was tcl! 20:47
pmichaud back from phone
reezer and icu in the same prefix is found 20:48
but gmp, readline, gdbm, pcre aren't
cotto perl? 20:50
purl perl is the glue that binds the Galaxy together or like an onion. It stinks and makes you cry. or teacher, mother, secret lover or not a four letter word or free as in necklace. or written in C :P or installed in the same prefix
Wknight8111 purl? 20:51
purl Wknight8111?
Wknight8111 what purl?
purl well, i am a she. or captain obvious or so corny sometimes
Wknight8111 purl purl is creepy
purl ...but purl is a she. or captain obvious or so corny sometimes...
Wknight8111 damnit
Wknight8111 shakes his fist and curses purl
20:51 petdance joined
cotto purl is also creepy 20:51
purl okay, cotto.
Wknight8111 purl purl? 20:52
purl i am a she. or captain obvious or so corny sometimes or creepy
Wknight8111 thanks cotto
purl is also a he
purl okay, Wknight8111.
Wknight8111 :)
purl purl? 20:53
purl i am probably a she. or captain obvious or so corny sometimes or creepy or a he
reezer any ideas? ;) 20:54
20:54 mberends joined
diakopter purl is also is also is also is also 20:55
purl okay, diakopter.
diakopter purl purl? 20:56
purl i guess i am a she. or captain obvious or so corny sometimes or creepy or a he or is also is also is also
20:58 donaldh joined
GeJ Good morning everyone 20:59
Wknight8111 good morning GeJ
...and goodnight!
GeJ Good nitght Wknight8111 21:00
jonathan reezer: What platform are you on? 21:04
pmichaud: Back from nom.
pmichaud working on regexes and grammars now (with lots of interruptions) 21:09
particle should we remove pcre?
nevermind, i don't want to know. 21:10
pmichaud some languages (e.g., pipp) are likely to want pcre.
jonathan pmichaud: OK, great - that should get us back a some more tests.
pmichaud I'm hoping it gets us back nearly all of S05.
I'm running a spectest now. 21:11
oops, forgot to restore the $0 syntax... testing again. 21:25
reezer jonathan: DragonFly BSD (using pkgsrc) 21:31
jonathan reezer: Ah. 'fraid I know little about BSD. 21:39
pmichaud: integration\\man-or-boy.t may be an easy fix - looks related to the & sigil stuff. 21:40
dalek r35174 | pmichaud++ | branches/rvar2/languages/perl6/src/parser (2 files):
: [rakudo]: Update regex/token/rule implementation a bit, restore $<> $n
review: www.parrotvm.org/svn/parrot/revision?rev=35174
pmichaud I'm getting interruptions here again :-( so I'll pick it up again this evening.
reezer jonathan: parrot works well, but I can't get Configure.pl to look in /usr/pkg/(lib)
pmichaud (wife & kids do that, alas)
but yes, it's probably related to sigil stuff. 21:41
sjn pmichaud: I suggested to jonathan that the talks at NPW could be used as a "lead-in" or introduction to the hackathon right after the conference; what do you think of that idea? 21:44
reezer bye 21:46
jonathan pmichaud: Won back at least another 13 by fixing infix:does. 21:50
dalek r35175 | jonathan++ | branches/rvar2/languages/perl6/src/builtins: 21:51
: [rakudo] Fix up infix:does for the way we're now doing roles, plus harden it a little bit. May well have to change again in the face of parametric roles, but fine for now.
review: www.parrotvm.org/svn/parrot/revision?rev=35175
r35176 | jonathan++ | branches/rvar2/languages/perl6/src/builtins (2 files): 21:59
: [rakudo] Little re-work of roles, rip out much of the last patch and do it differently. This way fixes up another test too.
review: www.parrotvm.org/svn/parrot/revision?rev=35176
r35177 | jonathan++ | branches/rvar2/languages/perl6/src/parser: 22:15
: [rakudo] Earlier speculation that we may always want to make things with a ! twigil have attribute scope turned out to be right: we need to do this so we can handle attributes declared in roles (at least, until we get to the point where we can have the roles available at compile time for introspection).
review: www.parrotvm.org/svn/parrot/revision?rev=35177
r35178 | jonathan++ | branches/rvar2/languages/perl6/src/builtins: 22:21
: [rakudo] Mostly fix composition of attributes from roles (case where slot can be shared because of compatible types still broken).
review: www.parrotvm.org/svn/parrot/revision?rev=35178
22:26 Whiteknight joined
dalek r35179 | jonathan++ | branches/rvar2/src/pmc: 22:41
: [core] Roles need shallow copying fix for inspect_str that pmichaud++ did for classes.
review: www.parrotvm.org/svn/parrot/revision?rev=35179
r35180 | jonathan++ | branches/rvar2/languages/perl6/src/builtins: 22:42
: [rakudo] s/values/!eigenstates/
review: www.parrotvm.org/svn/parrot/revision?rev=35180
22:47 Limbic_Region joined 22:48 TiMBuS joined
dalek r35181 | jonathan++ | branches/rvar2/languages/perl6/src/builtins: 22:55
: [rakudo] Since we lie about naming of classes, we need to look up the class we're extending via its proto-object in !meta_create when we have is also. This gets us through initialization and we now pass most of S12-class/open.t - until the last test, where our lies catch up with us and we go and stick methods in the wrong namespace. Would need to look at trunk to see how on earth this was resolved there...
review: www.parrotvm.org/svn/parrot/revision?rev=35181
jonathan pmichaud: That's all from me today. All roles tests pass again. Most subtype ones do. S12 ones are generally in better shape - we get to run them all now, just test fails rather than epic fails. 23:02
S06 and S12 tests are the main areas still needing attention. 23:03
23:11 pdcawley joined 23:36 LimbicRegion joined 23:57 ruoso joined