Parrot 2.3.0 will be released at 2020-04-20 10:00 UTC | parrot.org/ | Channel log: irclog.perlgeek.de/parrot/today | Priority: documentation sprint and pre-release testing for 2.3, fix line number annotations | Review and vote GSoC applications
Set by moderator on 17 April 2010.
bacek ~~ 00:01
Good morning, humans
chromatic, any objections for my patch in trac.parrot.org/parrot/ticket/1513 ? 00:07
nopaste "chromatic" at 192.168.1.3 pasted "mikehh: patch for t/src/extend.t" (61 lines) at nopaste.snit.ch/20292
chromatic bacek, apply away. 00:08
bacek chromatic, ok
done 00:13
dalek TT #1513 closed by bacek++: Test::Builder formats TODO tests wrong/poorly 00:16
TT #1513: trac.parrot.org/parrot/ticket/1513
00:20 allison joined
mikehh bacek: it still needs some casting with g++ 4.4.3, but better to work with 00:25
bacek mikehh, erm? 00:26
dalek rrot: r45769 | bacek++ | trunk (2 files):
Improve Test::Builder TODO reporting. Closes TT#1513
mikehh sorry - got the wrong rev 00:27
bacek mikehh, :) 00:28
00:33 kurahaupo joined 00:34 jan_ joined
nopaste "bacek" at 192.168.1.3 pasted "chromatic, what about this patch for Test::Builder?" (53 lines) at nopaste.snit.ch/20293 00:34
bacek (+ documentation for "done_testing" of course) 00:35
chromatic I'm open to the idea. 00:36
I'd like to see the documentation before I commit to it, but I've meant to add done_testing() for a while.
mikehh bacek: ok that works - shall I commit it or you? 00:39
bacek mikehh, erm... Commit what?
chromatic mikehh, are you talking about the nopaste I gave for the g++ build? 00:40
mikehh chromatic: yes - getting confused in my old age :-} 00:41
chromatic If you have it working, commit away.
mikehh ok will do 00:42
dalek rrot: r45770 | bacek++ | trunk/t/library/test_builder_tester.t:
Update test for Test::Builder
nopaste "bacek" at 192.168.1.3 pasted "chromatic, I just copy-paste description from p5 Test::More :)" (98 lines) at nopaste.snit.ch/20294 00:44
chromatic I can't think of the question I want to ask. 00:45
In the meantime, do you know a good way to convince Parrot to dump PIR/PBC with the line numbers it thinks it has? 00:46
bacek chromatic, hmm... No from top of my head. But I can look at it. 00:49
chromatic If I had that, I could fix the line number reporting problems. 00:50
Given pc and interp->code->debugs, the trace core could do something similar to Parrot_Sub_get_line_from_pc. 00:54
Or it could be a flag to pbc_dump. 00:55
I don't care much either way.
mikehh chromatic: your solution was much more elegant than the one I got working 00:56
dalek rrot: r45771 | mikehh++ | trunk/t/src/extend.t:
fix g++ failures in t/src/extend.t - patch due to chromatic++
00:58
bacek chromatic, src/sub.c, line 246 01:00
Looks like line numbering is totally wrong. Or I misunderstand what's going on.
Whiteknight it is not common for bacek to misunderstand what is going on 01:01
bacek You bloody humans so hard to understand
chromatic That line looks right to me, not that line numbering is right or clear or designed.
Whiteknight bacek: let me rewrite that for you: 01:02
-(it is common for bacek to -(understand what is going on))
bacek Whiteknight, much better! 01:03
nopaste "chromatic" at 192.168.1.3 pasted "bacek: quick hack to dump line number from pbc_dump" (59 lines) at nopaste.snit.ch/20295 01:10
chromatic A little cleanup would make that nicer. Maybe we add a new flag to pbc_dump to emit only ops and their line numbers. 01:11
bacek chromatic, yeah. I'm working in same direction.
chromatic If we fork and rewrite disas_dump for only that output, I think we have what I need. 01:12
nopaste "bacek" at 192.168.1.3 pasted "chromatic, your patch + lookup for debug segment via name" (65 lines) at nopaste.snit.ch/20296 01:15
chromatic Looks better. 01:16
bacek ship it!
chromatic, pbc_dump fail epically on dynops... 01:22
mikehh t/examples/tutorial.t - Failed test: 34 01:23
all other tests PASS (pre/post-config, make corevm/make coretest, smoke (#33258), fulltest) at r45771 - Ubuntu 10.04 beta amd64 (g++ with --optimize)
it doesn't look like a proper failure - changed wording
bacek mikehh, it's probably related to my changes to Test::More. 01:24
mikehh looking now 01:25
nopaste "bacek" at 192.168.1.3 pasted "chromatic, first garbage line is "rakudo_dynop_setup"..." (9 lines) at nopaste.snit.ch/20297
chromatic Is that garbage or Unicode spewed to the terminal? 01:26
bacek chromatic, it's garbage. 01:27
because "perl6_ops" isn't loaded 01:28
chromatic That makes sense.
bacek and disas_dump deref it
chromatic We need to check that the op's number is within the range of ops pbc_dump understands. 01:29
bacek It will help. But will not solve problem 01:31
We do need information about op length...
01:31 sorear joined
chromatic True. 01:31
For now we can bail out when we encounter that situation, but we may need to load dynops in that case. 01:32
bacek trac.parrot.org/parrot/ticket/1557
chromatic Is the problem not that the PBC is large, but that it contains dynops? 01:33
bacek I think so
chromatic Makes sense to me.
chromatic wanders off to find dinner 01:36
cotto seen dukeleto 01:42
purl dukeleto was last seen on #parrot 22 hours, 31 minutes and 31 seconds ago, saying: wonders how easy it is to just make the damn editor replace // with /*
Ryan52 woah, a whole 10 years until the next parrot release!?! 01:48
Ryan52 thinks an op should fix the date in the /topic
dalek rrot: r45772 | mikehh++ | trunk/t/examples/tutorial.t:
fix failing t/examples/tutorial.t test - wording changed
01:49
moderator Parrot 2.3.0 will be released at 2010-04-20 10:00 UTC | parrot.org/ | Channel log: irclog.perlgeek.de/parrot/today | Priority: documentation sprint and pre-release testing for 2.3, fix line number annotations | Review and vote GSoC applications 01:50
bacek Ryan52++ :) 01:50
software is hard... 01:51
afk # shopping
sorear (backlogging) Would someone please remind me what the point of always writing packfiles in native endian is? 01:54
bacek sorear, trac.parrot.org/parrot/ticket/451#comment:2 01:58
sorear ah, a half-implemented optimization 02:02
I love those
cotto You're in the right place. 02:04
02:10 rbuels joined 02:17 jsut joined
dukeleto cotto: pong 02:21
02:23 Spreadsheet_ joined
Spreadsheet_ Hello 02:24
How does Parrot compare against the JVM and .NET?
sorear I don't think it does 02:25
Spreadsheet_ What do you mean?
Any articles?
Parrot seems interesting but I want to know its advantages (if there are any) over .NET and JVM 02:26
sorear JVM and CLR are much more mature systems, any direct comparison between them and Parrot will be extremely one-sider
it's a question of scope. Parrot wants to minimize the mismatches between various languages and the VM API 02:27
Spreadsheet_ I see 02:28
Ok, so say I have a Parrot string (?) in say, Python, and a native Python string 02:29
Is there any difference?
I know that there is a difference between a Jython string and a Java string
But what about Parrot strings?
mikehh we are currently looking to move to immutable strings 02:33
cotto dukeleto, see privmsg
Spreadsheet_ I mean can you index it?
Can you add a parrot integer with a language integer? 02:34
02:35 eternaleye joined, janus joined
Spreadsheet_ The website says "Parrot is designed with the needs of dynamically typed languages (such as Perl and Python) in mind, and should be able to run programs written in these languages more efficiently than VMs developed with static languages in mind (JVM, .NET)." 02:37
mikehh that is the intention
cotto There's a missing "eventually" there. We should fix it. 02:38
Spreadsheet_ I think Java 7 is adding dynamic language support :O
cotto but that and HLL interop are the goals
02:39 Mokurai joined
sorear support is a very gradual thing 02:39
a long time ago this guy named Turing showed that all programming environments can support all others
JVM 7 is trying to support dynamic languages /better/, but it's still foremost a Java VM 02:40
mikehh only if they are Turing Complete :-}
sorear Parrot is based on the philosophy that, by aiming to support all dynamic languages from day 1, we can do a better job than the late-adopters
Spreadsheet_ I see 02:41
mikehh it is also register based rather than stack based
purl okay, mikehh.
cotto it?
purl i guess it is essentially, the same action (a process which was doing stuff is now done; yes it was termed, but that is not the important bit). or possible that parrot+rtems goes under RTEMS, i think. i think bubaflub applied to both orgs, but i would have to verify or register based rather than stack based
cotto forget it
purl cotto: I forgot it
cotto silly bot
purl *giggle*
sorear (natural language infobots)-- 02:42
!learn add is the one true way
cotto purl, make me a sandwich
purl cotto: huh?
sorear registers versus stacks is a moot point in 2010
all mature VMs are based on various forms of dynamic translation 02:43
so the input syntax is mostly irrelevant
bacek purl, sudo make me a sandwich 02:53
purl bacek: huh?
03:01 Spreadsheet_ left
dukeleto my talk about blizkost was accepted to yapc::na 03:25
03:27 leprevost joined
sorear yay 03:36
kurahaupo Purl belatedly waves its magic wand, and Cotto turns into a sandwich 03:53
purl kurahaupo: huh?
05:00 rurban_ joined 05:25 theory joined 06:05 fperrad joined 06:07 fperrad_ joined 06:27 chromatic joined 07:13 AzureStone joined
dalek rrot: r45773 | chromatic++ | trunk/src/runcore/trace.c:
[runcores] Tidied tracing runcore; no functional changes.
07:34
rrot: r45774 | chromatic++ | trunk (2 files):
[pbc_dump] Tidied code; no functional changes.
rrot: r45775 | chromatic++ | trunk/src/pbc_dump.c:
[pbc_dump] Added experimental support for dumping PBC with line numbers only;
a: 9146508 | fperrad++ | t/lua-TestMore:
update submodule lua-TestMore
07:53
08:00 iblechbot joined 08:15 theory joined 08:18 rt7 joined
bacek ~~ 08:26
sorear what command was that meant for? 08:27
vi?
purl vi is an editor! or 6 in roman numerals or "When I wasn't playing rogue at university, I was hacking on code, for which I used a popular rogue-variant called vi." -TomC or quick notes www.wadhome.org/vi.html or Swedish for "we" or Very Intuitive or rulez or french word for 'oui' or the center of evil (literally) or not vim even if everyone wants you to think that
bacek sorear, it's just wave :) 08:34
08:48 hicx174 joined
sorear Why does Parrot use the "Do you have more?" iterator model? 08:59
Didn't we learn our lesson with Pascal's Eof?
bacek sorear, erm. What's wrong with current iterators? 09:01
sorear bacek: VTABLE_get_bool 09:09
bacek sorear, and?
sorear when you have a lazy stream, like say, keyboard input, you don't know if there's a next element 09:10
instead, you have to allow 'get next' to fail
perl 5 uses the 'get next can fail' iterator model
parrot uses the 'iterators know if they have a next' iterator model 09:11
I'm currently jumping through hoops to resolve this
bacek sorear, you can implement other iterator for your pmc. 09:14
sorear How? 09:15
bacek if you have P5Foo PMC you can create P5FooIterator PMC with different semantic. 09:17
Parrot's Iterator PMC doesn't enforce any semantic btw. 09:18
Everything implemented in various inherited classes.
e.g. ArrayIterator, HashIterator, etc.
And even in many parrot's iterators you can use "get next can fail". They will just throw exception you can catch and handle. 09:19
sorear ok, I am now completely lost 09:21
are you saying that I can't make any assumptions about what VTABLE_iter returns?
how is it possible for foreach-loops to be implemented without a coherent notion of iterators? 09:22
nopaste "bacek" at 192.168.1.3 pasted "iterators without get_bool" (22 lines) at nopaste.snit.ch/20298 09:23
sorear nqp's foreach loop uses the get_bool / shift API
so any stdio-style iterator I use will be incompatible with nqp
bacek sorear, you have to know what kind of aggregate you iterate over. 09:24
see nopaste.
sorear ...
isn't that contrary to the entire point of PMCs?
bacek "that"?
purl "that" is implied. thoth probably has the exact usage rule.
sorear allowing people to write polymorphic code?
bacek yes
sorear but I can't write polymorphic code to iterate over arrays if the semantics of iterators are undefined 09:25
bacek But if you try to iterate over for example ManagedStruct you'll get exception.
If you'll try to get "key" from ArrayIterator.shift you'll get exception. 09:26
etc
sorear see also docs/book/pir/ch04_variables.pod +1269
which specifies common behavior for all iterators contrary to your example
bacek it's just another example. 09:28
both of them correct
sorear how does inter-hll calling work in a world where PMCs have no common interface? 09:32
bacek heh... 09:35
It's a big question. 09:36
sorear shall I take the initiative to forcefully standardize PMC interfaces?
bacek We _do_ have common interface. We _don't_ have common semantic for all PMC.
sorear nobody else seems to be doing it
bacek sorear, what if my FooHLL implemented String PMC with different semantic from Parrot's String PMC? And you try to use Foo String PMC in Bar HLL? 09:37
HLL _can_ change anything. 09:38
sorear I think we need to distinguish containery PMCs from valuey PMCs 09:41
bacek What about String PMC? 09:44
We can iterate over it. But it's a value.
sorear languages needing to override vtable operations on values is a problem 09:49
I'm not sure what the solution is 09:50
sorear is running a thought experiment on using dynops / MMD for this
09:56 bacek joined
bacek speaking of which... 09:57
purl speaking of which... is there a date set yet?
bacek msg chromatic Any objections to deprecate auto-vivification of nested aggregates?
purl Message for chromatic stored.
bacek msg allison Any objections to deprecate auto-vivification of nested aggregates?
purl Message for allison stored.
moritz bacek: ask some HLL developers too :-) 09:58
bacek moritz, afair there is some workaround in rakudo about parrot's auto-vivification. 09:59
but anyway
msg moritz Any objections to deprecate auto-vivification of nested aggregates?
purl Message for moritz stored.
bacek :)
szabgab hey everyone, you might have seen on the mailing list, I am trying to get Parrot on Android 10:00
pls upvote my request here: code.google.com/p/android-scripting...ail?id=296
bacek szabgab, just port it! Ask NotFound how he did it for Nokia N900
szabgab I don't have the brain power or the tuits for that 10:01
but I could submit the request :-)
moritz bacek: if rakudo needs it, I have objections
bacek moritz, no, rakudo doesn't Keys to access nested aggregates afaik. 10:02
doesn't use
moritz bacek: I'm not competent enough to judge if it might want to do so in future 10:03
after all autovivification is mostly NYI in rakudo
bacek moritz, Perl6 doesn't auto-vivify. Or I misremember it? 10:04
e.g. my %hash; %hash<foo>;
moritz bacek: it autovivifies if used as rvalue
my %h; %h<foo><bar> # does not 10:05
sorear bacek: Your question is void.
moritz my %h; %h<foo><bar> = 3; # does
sorear bacek: Nested aggregates are deprecated.
bacek sorear, ah! Thanks.
moritz, oh... Why?
sorear The entire key system is supposed to disappear Real Soon Now
bacek sorear, I put a lot of effort to remove current Keys. 10:06
moritz bacek: because it's saner than Perl 5 10:09
bacek moritz, hang on. It's lvalue, not rvalue. This definitely saner than Perl 5 :) 10:12
sorear so... what does my %h; %h<foo><bar> do
exception?
purl well, exception is A reasonable response to an unreasonable situation.
moritz sorear: return Any()
bacek not Mu???
sorear moritz: Any has a postcircumfix({ })?
moritz sorear: only the type object
bacek: nope, the default for almost everything is Any now 10:13
bacek moritz, sigh... Perl6 development is way too fast for my old chips...
sorear vtables have a certain broken-by-design feeling about them 10:15
operator semantics should be bound by the running HLL, not by the HLL the LHS came from 10:16
it's all the same as long as the environment is homogenous
moritz sorear: they have a certain no-better-idea-what-else-to-do-to-solve-the-problem feeling to me
10:16 lucian joined
sorear notes that Perl 6 does not actually use add/etc vtables 10:17
in rakudo, $a + $b means infix:<+>($a, $b) 10:20
infix:<+> is a global MultiSub
what if we got rid of VTABLE_add et al in favor of MMD dynops
python could define a pythonic_add dynop which would multi dispatch on the roles of the arguments 10:21
bacek sorear, ops aren't MMD. 10:23
subs are
sorear I know
I'm imagining things
ops could get (staticly defined) MMD support 10:24
this would still avoid most of the nasty iffery in perl5, but bind semantics to the running bytecode
I'll run with this idea for a bit, see if I come up with anything
bacek bad idea. 10:25
Why duplicate MMD for ops?
sorear because making a full sub call for every + is just wrong 10:26
bacek with MMD "cost" of op will be same as "cost" of Sub. 10:32
dalek rrot: r45776 | bacek++ | branches/immutable_strings_part2:
Second part of immutable strings - remove deprecated ops
10:34
sorear bacek: I dispute this. 10:40
"cost" of Sub involves activation frames, parameter unpacking, etc
static MMD is just sugar for ifs
pattern matching compilers have been around for decades
sorear doesn't have citation pile handy but wants to say Augustsson 88 10:41
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#33265), fulltest) at r45776 - Ubuntu 10.04 beta amd64 (gcc with --optimize) 11:02
dalek rrot: r45777 | bacek++ | branches/immutable_strings_part2/src/ops (3 files):
Remove banch of deprecated string ops
11:23
rrot: r45778 | bacek++ | branches/immutable_strings_part2/runtime/parrot/library/parrotlib.pir:
Update parrotlib.pir to not use removed ops.
rrot: r45779 | bacek++ | branches/immutable_strings_part2/runtime/parrot/library/Test/More.pir:
Update Test::More to not use removed ops.
rrot: r45780 | bacek++ | branches/immutable_strings_part2/runtime/parrot/library/PGE/Dumper.pir:
Update PGE::Dumper.
rrot: r45781 | bacek++ | branches/immutable_strings_part2/runtime/parrot/library/Getopt/Obj.pir:
Update Getopt::Obj
rrot: r45782 | bacek++ | branches/immutable_strings_part2/runtime/parrot/library/Test (4 files):
Update Test::More to avoid in-place string ops
rrot: r45783 | bacek++ | branches/immutable_strings_part2/compilers/pct/src/PCT (2 files):
Update PCT compiler to avoid in-place string ops
rrot: r45784 | bacek++ | branches/immutable_strings_part2/compilers/pge/PGE (5 files):
Update PGE compiler to avoid in-place string ops
rrot: r45785 | bacek++ | branches/immutable_strings_part2/PBC_COMPAT:
Bump PBC_COMPAT
11:35 allison joined
dalek kudo: 83650e0 | moritz++ | (2 files):
first shot at Date
11:48
11:54 Whiteknight joined 11:57 clinton joined 12:04 joeri joined 12:06 kid51 joined 12:08 khairul joined
dalek kudo: 5ab1c03 | moritz++ | src/core/Date.pm:
actually add Date.pm, moritz--
12:11
12:53 lucian joined 13:00 rurban_ joined
allison msg bacek deprecating auto-vivification of nested aggregates is an excellent idea 13:19
purl Message for bacek stored.
allison reports successful build and run of Parrot packages on Debian and Ubuntu
13:24 iblechbot joined 14:03 khairul joined 14:27 jan joined 14:40 tetragon joined 15:15 theory joined 15:32 mikehh joined
dalek rrot: r45786 | fperrad++ | trunk (3 files):
[TAP] handle shebang
16:06
kudo: 842d2b0 | pmichaud++ | docs/spectest-progress.csv:
spectest-progress.csv update: 391 files, 30643 (79.4% of 38606) pass, 2 fail

S06-multi/syntax.rakudo 21 - use multi method to override builtin lives S06-multi/syntax.rakudo 22 - use multi method to override builtin
16:10
16:37 theory joined 16:48 Mokurai1 joined 17:03 chromatic joined 17:05 patspam joined
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#33269), fulltest) at r45786 - Ubuntu 10.04 beta i386 (gcc with --optimize) 17:16
17:18 hercynium joined
mikehh g++ fails to build - 17:18
src/runcore/trace.c: In function ā€˜STRING* trace_class_name(parrot_interp_t*, const PMC*)’:
src/runcore/trace.c:85: error: cannot convert ā€˜PMC*’ to ā€˜PMC** const’ in initialization
gcc also has a warning at the same line 17:21
src/runcore/trace.c: In function ā€˜trace_class_name’:
src/runcore/trace.c:85: warning: initialization from incompatible pointer type
17:21 Whiteknight joined
dalek rrot: r45787 | mikehh++ | trunk/src/runcore/trace.c:
fix g++ build - add cast
17:44
17:53 tetragon_ joined 18:28 iblechbot joined 19:09 allison joined 19:39 davidfetter joined 20:16 eternaleye joined
Whiteknight this is boring me. Where is everybody? How can people have more mportant thigns to do today than hack on Parrot? 20:27
20:33 chromatic joined 21:00 rurban_ joined
chromatic has four line numbering failures left with a new scheme. 21:00
GeJ Good morning everyone. 21:25
21:26 Mokurai1 joined 21:29 Mokurai2 joined 21:34 Mokurai1 joined 21:38 Mokurai1 joined 21:40 kid51 joined 21:48 Mokurai joined
NotFound For public knowledge, I declare that I have a Nokia N900 phone, not an Android powered one. 21:49
21:50 hercynium joined, Mokurai joined
mikehh chromatic: ping 21:51
chromatic pong
mikehh chromatic: do we have any tests related to the trace runcore? 21:52
chromatic Not to my knowledge.
21:53 Mokurai joined
mikehh just wondering as I changed as you suggested and ran through normal tests, but wanted to test that specifically 21:53
NotFound mikehh: There is some reason to declare something const and immediately casting away constness? 21:54
Forget it, I misread the diff 21:55
purl NotFound, I didn't have anything matching it, i misread the diff
mikehh NotFound: changed, have to commit - if we are talking about the same thing
21:58 theory joined 22:02 Mokurai1 joined
dalek rrot: r45788 | mikehh++ | trunk/src/runcore/trace.c:
modified as suggested by chromatic++
22:07
22:08 Mokurai joined 22:11 Mokurai joined
mikehh NotFound: there are some warnings (in the g++ build) related to that in src/pmc/imageio.pmc 22:12
NotFound mikehh: yes, but I didn't even took a first look to imageio 22:17
22:23 Mokurai joined 22:27 alexn_org joined
NotFound mikehh: done, was easier than expected. 22:33
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#33272), fulltest) at r45788 - Ubuntu 10.04 beta i386 (g++ with --optimize) 22:34
NotFound: thanks - will check it out
22:37 Mokurai1 joined
dalek rrot: r45789 | NotFound++ | trunk/src/pmc/imageio.pmc:
fix a few constness warnings
22:40
mikehh NotFound: interesting, would never have thought of that :-} 22:41
I was fiddling with casts and stuff - gotta get away from thinking that way 22:42
NotFound mikehh: usually the problem is too many or too few const, casting away just hides it. 22:44
22:48 cosimo joined 22:54 jrtayloriv joined 23:19 patspam joined 23:22 Whiteknight joined 23:45 kurahaupo joined
nopaste "chromatic" at 192.168.1.3 pasted "For testing: fixed line number annotations in IMCC" (7565 lines) at nopaste.snit.ch/20300 23:50
chromatic This may count as a bugfix for Rakudo, so we can consider sneaking it into 2.3. 23:51
HLL testing is welcome.
bacek_at_work chromatic, why do you need SOL token? 23:53
chromatic Hm, that's a remnant. It can go away. 23:54
Same with the INC macro. 23:57
I'm curious to hear of any PIR files where the line numbers are wrong. 23:58
I even welcome a "Hey, thank you!" from any Rakudo developers or users. 23:59