Parrot 4.7.0 "Hispaniolan" | parrot.org | Log: irclog/perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 27 August 2012.
dalek sella/commandline_2: cccf82d | Whiteknight++ | src/commandline/ (4 files):
[CommandLine] Fix automated help message generation
00:58
sella/commandline_2: 38bb2e5 | Whiteknight++ | src/commandline/ (5 files):
[CommandLine] Some cleanup and docs
sella/commandline_2: b0fd618 | Whiteknight++ | src/commandline/Argument (2 files):
[CommandLine] Add a few TODO notes for things I want to do next
sella/commandline_2: 11eb38f | Whiteknight++ | src/commandline/Arguments.winxed:
[CommandLine] Throw an error if we see an argumet without a definition. Handle the case of parsing -XYZ where -X, -Y and -Z are each flags
sella/commandline_2: f8a619f | Whiteknight++ | t/commandline/Arguments.t:
[CommandLine] Add tests to Argument.t for combination args and unknown args
01:01 benabik joined 01:30 MikeFair joined
MikeFair Any available that can help with comprehending what all the functions available are in the PCT? 01:33
I ran mk_language_shell script, and I managed to modify the Grammar/Actions/Runtime .pms to add my first command and modify the syntax (I cloned "say" and modified the Grammar) 01:35
Now I'd like to variable declaration and create an assignment statement but I can't seem to find any good references
for moving on past the shell
01:37 mvorl joined 03:05 benabik joined
MikeFair benabik: You open to a quick recommendation of something I'd love to see in PACT? 03:22
benabik: Somethings, like assignment and variable declaration, are expected to be in most every language 03:23
benabik: What I'd love to be able to do is have some kind of 'language family' prototypes that I can marry my language too (like 'C' for instance) in terms of what I mean 03:24
benabik MikeFair: The idea is, much like PCT, to have a generic AST. Assignment is an "assign" op with a variable and expression children. 03:26
MikeFair Maybe I'm asking too much here, but for instance my language is going to be like lots of languages, scopes, namespaces, if/for/while
right, but what I'd like to do is write my rule, but then assign the matches to the rules of another language 03:27
instead of having to push AST nodes directly
So for instance, "put 10 into x" is assignment in my language
So I think I'd like to have a rule "<PUT>" that matches "put (<EXPR>) into (<EXPR)" 03:28
benabik Well, to some extent, PACT's current (planned) scope ends at the AST level. Parsing and building the trees are the responsibility of the front end. 03:29
MikeFair And then write something like ProtoLang::C::assign($2, $1)
and put that in Grammar.pm
benabik Why is that different than `new Op($2, $1)` ?
Ooops.
new Op('assign', n2, n1) 03:30
MikeFair benabik: Well the idea is that I don't know what Parrot's list of OpCodes are, but I do know what constructs exist in a language like 'C' 03:31
benabik: For instance "struct"
benabik You'd have to look up the list of ProtoLang::C::* functions...
And the AST ops are probably not 1:1 parrot opcodes. 03:32
Instead you get things like 'assign', 'while', 'if'
MikeFair benabik: The idea is that it'd be a language I know that has sematics like that I could reuse 03:33
benabik: I'll keep working at it
benabik I'd rather target the generic language concepts.
MikeFair benabik: Right, however how do I the not-so-sophisticated at understanding compiler concepts express the behavior I want? 03:34
benabik: For instance, I really like the idea of "namespaces" that can be declared in any file to have a code block be part of that namespace 03:35
benabik PCT's AST is probably going to express namespaces and classes more directly than PCT's.
MikeFair benabik: however I'm not looking forward to learning everything I'll have learn to get that behavior
benabik s:1st/PCT/PACT
I'm picturing that the top of the AST is a namespace, which holds classes, namespaces, and subs. 03:37
In the complex case. In the simple case, you give it code which gets wrapped until it fits that.
MikeFair benabik: That sounds great! 03:38
benabik: It could be really neat if you assumed that namespaces might cross process boundaries 03:39
benabik: I might be mixing the concepts here, but I'm thinking like erlang, or some other distributed system
benabik Yeah. Parrot's not that. 03:40
MikeFair ok kids are calling
bbl
benabik sleep & 03:48
04:08 schmoo joined 05:09 mvorl joined 05:40 mvorl joined 06:42 rurban_mobile joined 07:06 brrt joined 07:17 dngor joined 08:03 rurban_mobile joined
rurban_mobile Good morning #parrot 08:03
brrt morning rurban 08:05
rurban_mobile working on win64 stat failures 08:11
brrt fun :-) 08:13
win64 specific?
08:19 Psyche^ joined, simcop2387 joined
rurban_mobile no idea yet. see Win32::UTCFileTime 08:19
mtime is wrong suddenly 08:20
perl5 and parrot stat.mtime return different values 08:21
I believe this deserves a ticket. jonathan knows about it. it makes working with file caches on windows impossible. 08:22
08:26 he_ joined 08:27 simcop2387_ joined 08:54 rurban_mobile joined 09:00 simcop2387_ joined
dalek rrot: 40d3f64 | rurban++ | / (3 files):
[GH #820] win32 stat() mtime problems

Try to use Win32::UTCFileTime, but it did not help. Compare stat mtimes to each other, not against the system-time. The tests still fail.
09:01
p/toqast: e817f40 | jonathan++ | src/how/NQPClassHOW.pm:
Fix vtable mapping handling so that it doesn't ignore mappings of handlers from attributes.
09:11
p/toqast: 884d509 | jonathan++ | src/core/NQPMu.pm:
Give NQPMu a default at_pos and at_key for type object invocants, like we have for Any in Rakudo.
rrot/native_pbc: 7fd17b9 | rurban++ | t (18 files):
re-enable native_pbc

use new t/native_pbc/testdata templates to generate pbc's, change string to use binary and utf8 encodings, update mk_native_pbc. TODO: little-endian pbc files missing, preparing a 8_le qemu image to generate them.
09:20
rrot/native_pbc: 0314d17 | rurban++ | / (15 files):
[GH #394] Revamp native_pbc: t/native_pbc/Test.pm

Simplify tests with a common t/native_pbc/Test.pm library. Delete unneeded pbc files. Update ppc32 t/native_pbc files.
TODO: endian-conversion fails
rrot/native_pbc: 5c80dcb | rurban++ | / (40 files):
refactor t/native_pbc/ test ids

Parrot::Test had the odd assumption that testing pbc can only be done for native_pbc tests, and that the tests must be of _<int>++.pbc. We pass now the filename as first arg to pbc_output_is() and check if it exists.
So we can use now readable test names.
rrot/native_pbc: c6dd10c | rurban++ | t (2 files):
mk_packfile_pbc refactor with t/native_pbc/testdata/annotations.pir
09:20 rurban_mobile joined
dalek Heuristic branch merge: pushed 164 commits to parrot/native_pbc by rurban 09:20
09:21 simcop2387 joined
dalek rrot/native_pbc: 02feb07 | rurban++ | / (40 files):
refactor t/native_pbc/ test ids

Parrot::Test had the odd assumption that testing pbc can only be done for native_pbc tests, and that the tests must be of _<int>++.pbc. We pass now the filename as first arg to pbc_output_is() and check if it exists. So we can use now readable test names.
mk_packfile_pbc refactor with t/native_pbc/testdata/annotations.pir
09:31
rrot/native_pbc: 60f0615 | rurban++ | / (50 files):
Merge remote-tracking branch 'origin/master' into native_pbc
rrot/native_pbc: c5ee7aa | rurban++ | t/native_pbc/testdata/string.p (2 files):
Merge branch 'native_pbc' of github.com:parrot/parrot into native_pbc
rrot/native_pbc: 9efc506 | rurban++ | t/native_pbc/testdata/string.p (2 files):
mv t/native_pbc/testdata/string.pir t/native_pbc/testdata/string.pasm
09:34 dngor joined 09:36 simcop2387 joined
dalek p/toqast: 39b2a95 | jonathan++ | src/NQP/Actions.pm:
Avoid the global NQPMu thing, which is a Very Bad Idea in a bootstrapping compiler. What was I thinking?!
09:50
p/toqast: b39cf30 | jonathan++ | / (10 files):
Update the stage0 to the QAST-based NQP. \\o/
10:30 rurban_mobile joined 10:31 brrt joined
dalek kudo/nom: d703632 | moritz++ | src/Perl6/Grammar.pm:
warn on obsolete use of \\ and | with sigilled parameter
10:34
p/toqast: 8c12e83 | jonathan++ | src/core/NQPMu.pm:
Eliminate call to nqp_set_nqpmu.
10:58
11:02 alin joined 11:08 rurban_mobile joined
dalek kudo/nqpqast: 54d1cf4 | jonathan++ | src/Perl6/ (6 files):
First round of PIR op fixes, plus changing some to nqp::.
11:16
11:35 rurban_mobile joined
dalek p/toqast: da99914 | jonathan++ | src/NQP/ (2 files):
Ensure --vmlibs takes effect for on-demand compiled code.
12:03
rurban_mobile I'm now pretty pissed off by the new packfile design, which broke almost everything. This thing called parrot has no future if anybody can break pbc and pessimize perl6 performance at will. 12:08
brrt .. harsh words 12:13
dalek p/toqast: 8ac7d80 | jonathan++ | src/NQP/Actions.pm:
Optimize some type lookups.
12:28
kudo/nqpqast: 2874f19 | jonathan++ | src/Perl6/Metamodel/ (5 files):
Fixes to get metamodel to compile with updated NQP.
kudo/nqpqast: 89aefb2 | jonathan++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
A couple of fixes to BOOTSTRAP, though it doesn't yet work.
12:28 rurban_mobile joined 12:39 JimmyZ joined
dalek p/toqast: 9834252 | jonathan++ | src/how/NQPClassHOW.pm:
Fix thinko that broke initialization of @ and % attributes.
12:46
sella: 2233933 | awhitworth++ | src/include/Ascii.winxed:
[Parse] Add a few TODO notes and comments for parsing helper inlines which are not unicode safe
13:10
Coke rurban: is the problem that "the packfile format changed" or that "the new format has issues" ? 13:12
dalek rrot/native_pbc: c98a878 | rurban++ | / (18 files):
Fixed pbc_header.pl, usage docs, improved version tests

Fixed pbc_header.pl to query and update pbc versioninfo in headers. Improved release manager guide to update native_pbc headers when PBC_COMPAT was not changed. Add better skip message to tests when just the Parrot version was bumped, but bc version matches. Bumped all native_pbc/*.pbc headers to 4.7.0.
13:24
13:33 rurban_mobile joined
dalek rrot/native_pbc: 0f0e291 | rurban++ | t/native_pbc/Test.pm:
native_pbc: refactor skip messages
13:37
rurban_mobile test 13:39
PacoAir_ !seen notfound 13:40
rurban_mobile Coke: The api changed and somewhere in the pbc format is now also a new version check, which was not there before. I fixed the version in the header, but still the old version is somewhere, fatal. pbc_header.pl --update-fingerprint is now useless.
And because someone disabled my native_pbc tests everything broke. not only cross-platform compat
Not speaking about the calling convention performance debacle.
See github.com/parrot/parrot/commit/c9...5a247dc738 13:41
And since I already fixed the same mistakes some years ago, the new rewrite threw it away again, it's useless to argue anymore. 13:44
Coke rurban_mobile: it's not useless. you weren't here when the rewrite was done, but you're here now. 13:56
I'm not sure if this is part of the issue, but I don't think we're at a point (even now!) where we need to worry about PBC either working across parrot versions OR across hardware platforms. 13:58
I think those are still both nice to have, but I don't think we have enough market to worry about it.
PerlJam Coke: that sounds a little like a catch-22. 13:59
Coke I think the best thing we an do is improve the technology and the performance at this point. (and if that means adding cross platform or supporting old bytecode, great, but I don't think it's a priority for any of our users.)
PerlJam: well, yes.
but it means we can decide what the right impementation is before we say "ok, we can't change this without also supporting any old verions" 14:00
assuming that this is what rurban is actually concerned about.
dalek p/toqast: 1fbf703 | jonathan++ | src/NQP/Actions.pm:
Optimize package lookups where the first part is lexical; also fixes them inside of BEGIN blocks.
14:02
p/toqast: 602bf23 | jonathan++ | src/QAST/Compiler.nqp:
Fix compilation of parameter lists with nameds and positional slurpies.
p/toqast: 017a3d3 | jonathan++ | t/nqp/37-slurpy.t:
Add a test for slurpy/named interaction.
kudo/nqpqast: 71916b5 | jonathan++ | src/Perl6/Metamodel/ (7 files):
Various bits of initialization cleanup.
14:03
kudo/nqpqast: 1b076c8 | jonathan++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
Diddle BOOTSTRAP.pm enough for it to build.
kudo/nqpqast: ebc4a05 | jonathan++ | src/Perl6/World.pm:
World needs a BUILD (can revisit after refactoring HLL::World, though).
PerlJam I dunno. Right now it seems like a communications or understanding snafu. At a guess it looks like rurban is of a mindset to set the bar high, then hurdle it. Only, after setting the bar, he's come back to find it gone. Why? Maybe because other people didn't understand or believe in the importance of it? Or maybe this particular issue fell off their radar? Or maybe the rest of the Parrot people decided the importance of this thing was eclipsed by othe 14:17
Since I apparently have my Optimism Hat on today, I think this is one of those things where a conversation between the right people could sort it out.
Coke "was their a communication problem"? almost certainly. ;) 14:18
*there
reading rurban's email, I think he's on the right track. I was just trying to make sure everyone stayed optimistic myself. :) 14:19
dalek kudo/nqpqast: bbda747 | jonathan++ | src/Perl6/World.pm:
Use 'new' to construct statix lexpad properly.
14:22
kudo/nqpqast: 59bf84e | jonathan++ | src/Perl6/Actions.pm:
Harden parameter trait handling.
14:29 mtk joined
dalek p/toqast: deeca93 | jonathan++ | src/how/Archetypes.pm:
Make sure archetypes methods don't return nulls.
14:31
14:48 dmalcolm joined
dalek kudo/nqpqast: d3af128 | jonathan++ | src/Perl6/Metamodel/B (2 files):
Last couple of null hardenings needed in order to get CORE.setting to build again.
14:50
kudo/nqpqast: e691019 | jonathan++ | src/Perl6/World.pm:
Eliminate a hack we no longer need in the code for finding the NQP module loader.
Coke rurban++, btw. 15:07
15:13 plobsing joined 15:25 JimmyZ joined 15:43 fperrad joined 16:01 brrt left
dalek kudo/nqpqast: a98bc62 | jonathan++ | src/Perl6/Metamodel/ (11 files):
Make sure we use NQP's BUILDALL in the meta-objects to avoid some differences in build protocol (can unify them later). Now this branch builds and make test all passes.
16:13
p/toqast: 851a4e0 | jonathan++ | src/QAST/Compiler.nqp:
Bump up register allocation window so it ain't far too small.
16:24 rurban_mobile joined 16:59 Patterner joined 17:12 rurban_phone joined 17:18 alester joined 17:19 rurban_phone2 joined 17:46 kurahaupo joined 18:15 schmoo joined
dalek rtcl-nqp/borked: a9fd286 | coke++ | src/init.pm:
remove references to P6object
18:29
rtcl-nqp/borked: aaf9633 | coke++ | .gitignore:
Simplify ignore rules
rtcl-nqp/borked: 26ccfbd | coke++ | / (161 files):
isolate serialization error to src/init.pm
19:16 lucian joined
moritz Coke: do you use NQP::World in partcl-nqp? 19:40
19:43 whiteknight joined
whiteknight hello parrot 19:43
did I miss #ps?
oh wait, nevermind. I missed all of tuesday 19:44
whiteknight checks the calendar to make sure it's still 2012 19:45
19:49 mvorl joined, NotFound joined
NotFound Hi 19:50
benabik ~~
whiteknight NotFound!!! 19:51
NotFound I'm back!
moritz welcome back NotFound
NotFound Thanks 19:52
whiteknight Where were you? 19:54
NotFound Holidays, then some relax time, then some coldness. Nothing serious. 19:55
whiteknight relax time is best time 19:59
NotFound Yeah 20:00
whiteknight we managed not to break winxed while you were gone 20:02
NotFound Maybe you don't tried hard enough 20:04
moritz hey, a branch was merged :-) 20:05
whiteknight a damn big branch 20:11
NotFound Wich one?
whiteknight whiteknight/io_cleanup1
threads may be going in this week or next week
NotFound Good!
PerlJam whiteknight: and then you'll be ready for the 3rd and 4th 90% :) 20:12
whiteknight heh 20:13
I'm away this weekend, so I don't want to merge threads if I'm not around to deal with the problems 20:14
dalek sella/commandline_2: fdd62c3 | awhitworth++ | src/ (3 files):
[CommandLine] Redo Arguments and ArgumentDef to option aliasing and more of the argument types supported by GetOpt::Obj. More cleanup and error detection/handling.
20:20
sella/commandline_2: 8665de0 | awhitworth++ | / (2 files):
[CommandLine] Fix Arguments.t tests to use A instead of -A for arg accesses. A few other fixes to make that test file pass. Add a new test for the new behavior of requesting an arg value which does not exist
sella/commandline_2: 982ce53 | awhitworth++ | / (2 files):
[CommandLine] Delete old tests from ProgramMode.t and replace with a few new tests (mostly stubs)
sella/commandline_2: 1babcac | awhitworth++ | s (2 files):
[Utilities] Add in a new dump_pbc program, showcasing the new Commandline setup. This utility dumps class, namespace and function information from an existing pbc file to the console.
sella/commandline_2: 07c7d41 | awhitworth++ | src/utilities/dump_pbc.winxed:
[Utilities] Add an --all option to the dump_pbc utility
sella/commandline_2: 9279d57 | awhitworth++ | src/ (3 files):
[CommandLine] Update test_all_lib to use the new CommandLine interface. This exposes some missing functionality. Add some TODO notes for later.
sella/commandline_2: 0a3f33f | awhitworth++ | src/ (2 files):
[CommandLine] Fix some on_error semantics. Differentiate between usage messages and help messages. Misc cleanups
rurban_mobile threads really looks fixed now, adougherty++ 20:27
whiteknight okay, I'm sold on it. We can merge any time people are ready. 20:30
I'm going home now, we can talk more about it tonight
dalek rrot/threads: e1d4c06 | doughera++ | src/alarm.c:
Fix alarm.c racy sleep_cond with threads

I've never really done any threads programming, so I could be quite off here, but it looks to me as if there's a race condition in src/alarm.c in the threads branch. Specifically, Parrot_alarm_init() creates a thread that checks sleep_cond before it initializes sleep_cond. (Similar remarks hold for alarm_lock.)
  rurban: This fixed the deadlock in the sleep Timer task, but there
are still race conditions. See lists.parrot.org/pipermail/parrot-d...07163.html
20:53
kudo/nqpqast: efa7916 | jonathan++ | src/Perl6/Actions.pm:
A few our => my (had no need to be our).
21:01
p: 2b1bcbb | (Elizabeth Mattijsen)++ | docs/pir2nqp.todo:
A "todo" list to get rid of unneeded "pir::" references
21:03
p/toqast: c7ae2e6 | jonathan++ | / (3 files):
Eliminate some of the now-unrequired PAST code.
21:07
21:19 perlite joined
Coke moritz: I'm trying to port partcl-nqp from parrot-nqp to nqp at the moment, so things are in flux. I'm not sure. 21:29
Coke waves from MCO.
dalek p/toqast: 8503dbe | jonathan++ | src/Q (4 files):
Eliminate rxtype pastnode.
21:35
Coke most of the nqp variants (both of them) infrastructure was done by pmichaud anyway. I did a lot of the "implement this tcl command" bits. 21:36
seen schwern 21:56
aloha schwern was last seen in #perl6 455 days 2 hours ago leaving the channel.
21:57 lucian joined
dalek p/toqast: 67fc54e | jonathan++ | src/ops/nqp.ops:
Toss an unused op.
22:07
22:07 whiteknight joined
dalek p/toqast: e10bae4 | jonathan++ | src/how/NQPClassHOW.pm:
Eliminate an unused multi-dispatch code path from a previous factoring.
22:07
p/toqast: e2dedb8 | jonathan++ | src/how/NQPClassHOW.pm:
Eliminate a bit more of the old multi code.
p/toqast: 5abcf1d | jonathan++ | src/stage0/ (9 files):
Update the bootstrap.
p/toqast: 132adc6 | jonathan++ | src/ops/nqp.ops:
Toss a bunch of unused dynops.
Coke is there a working "build a language on nqp" example? (not parrot-nqp) 22:18
whiteknight good evening, #parrot
dalek p/toqast: b8e94a8 | jonathan++ | / (4 files):
Eliminate the now-unused DispatcherSub PMC.
22:30