Parrot 3.6.0 "Pájaros del Caribe" released | parrot.org | Log: irclog.perlgeek.de/parrot/today | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 23 July 2011.
00:05 kid51 left 00:07 dmalcolm left 00:25 theory joined 00:35 jsut_ joined 00:40 jsut left 00:49 theory left 00:53 kid51 joined 00:57 soh_cah_toa joined 01:14 bacek_at_work left 01:16 aloha left
soh_cah_toa is there a way i can preserve a numbers base in pir? say i have $I0 = 0o755. when i print $I0 i get 493 instead, it's decimal representation. pretty much, i want to print an octal number 01:23
01:25 bacek_at_work joined 01:26 aloha joined 01:43 RobertLJ joined 01:44 Kulag left, Kulag joined
whiteknight sprintf("%o") ? 01:46
soh_cah_toa looks 01:47
01:49 whiteknight left 02:01 Kulag left 02:02 Kulag joined 02:13 soh_cah_toa left 02:15 Drossel joined 02:17 Kulag left
dalek rrot: 358549e | jkeenan++ | Configure.pl:
Remove import of Data::Dumper.
02:20
02:26 kid51 left 02:42 woosley joined, RobertLJ1 joined 02:47 RobertLJ left, preflex joined 02:51 preflex_ left
dalek kudo/nom: 5bfd327 | Coke++ | t/spectest.data:
track more test error status, reclaim some files.
02:52
02:59 soh_cah_toa joined 03:05 woosley1 joined 03:07 woosley left 03:08 RobertLJ1 left 03:11 woosley1 left 03:16 woosley joined 04:02 dalek left 04:03 dalek joined
cotto ~~ 04:14
04:17 davidfetter joined
dalek rrot: 62e830a | soh_cah_toa++ | runtime/parrot/library/osutils.pir:
Added :named('verbose') argument to chmod() in osutils.pir.
04:18
rrot: 171eb16 | soh_cah_toa++ | runtime/parrot/library/osutils.pir:
Added perldoc for the install() function in osutils.pir.
plobsing ~~ 04:46
msg whiteknight great work on the :tag business so far. I think we can do better than a linear scan of string equality test over all tag-sub pairs. 05:25
aloha OK. I'll deliver the message.
05:26 soh_cah_toa left
plobsing msg whiteknight we could reduce the number of entries to be scanned by either mandating a single entry per tag (internal, not necessarily as exposed by PIR) or by using a 2-level index 05:27
aloha OK. I'll deliver the message.
plobsing msg whiteknight we could improve O(n) performance to O(log(n)) by sorting (at compile time) and using a binary search 05:28
aloha OK. I'll deliver the message.
05:31 woosley1 joined 05:33 woosley left 06:07 Drossel left, Kulag joined 06:14 Drossel joined, Kulag left 06:30 Drossel left, Kulag joined 06:31 fperrad joined
dalek kudo/nom: 6383a6d | jonathan++ | src/core/IO.pm:
Implement &prompt.
06:35
06:36 daniel-s joined 06:39 TiMBuS left 06:59 AzureSto_ joined 07:01 AzureStone left 07:13 mj41 joined 07:16 TiMBuS joined 07:46 davidfetter left
dalek rrot/m0-prototype: 7b03c58 | cotto++ | / (2 files):
add a basic metadata test + assembler support (test fails)
08:59
rrot/m0-prototype: 1eb0f8c | cotto++ | src/m0/perl5/m0_assembler.pl:
fix metadata segment generation, all tests pass again
kudo/nom: 09c8fab | moritz++ | src/core/ (3 files):
add :D constraints to invocants of Str/Int/Num methods
09:24
09:51 woosley1 left
dalek p: f68aa56 | moritz++ | src/6model/reprs/P6opaque.c:
[P6opaque] guard against unboxing type object, a common-ish cause for segfaults in rakudo/nom
09:55
10:39 daniel-s left 10:46 preflex_ joined 10:50 preflex left 10:52 ambs joined 11:09 contingencyplan left 11:44 daniel-s joined
atrodo =~ 11:51
11:59 particle1 joined 12:03 whiteknight joined, particle left
whiteknight good morning, #parrot 12:05
msg plobsing the :tag search only does linear string comparions until we find the index of the target string. It's unique since IMCC de-dups at compile time. After we find the index, it's an integer comparison. A compile-time sort and binary search would be a big improvement, yes 12:09
aloha OK. I'll deliver the message.
12:12 mikehh left
dalek kudo/nom: c2307d4 | moritz++ | / (8 files):
routines that unbox to native types or access attributes need :D in their signature.

Also bump NQP_REVISION to get error checking when unboxing type objects
12:27
12:28 fperrad left 12:35 preflex joined 12:40 preflex_ left
dalek kudo/nom: c087c52 | moritz++ | src/core/ (4 files):
fix syntax error in previous commit, moritz--
12:45
kudo/nom: f3d1b8f | kboga++ | src/core/terms.pm:
Implemented @*INC.
12:55
kudo/nom: 496ec52 | kboga++ | src/core/terms.pm:
Implement $*PID.
kudo/nom: 2708593 | kboga++ | src/core/terms.pm:
Implement $*VM and clean up @*INC.
kudo/nom: eba4254 | kboga++ | src/core/terms.pm:
Implement $*OS and $*OSVER.

Note: they get their info from $*VM<config> instead of the sysinfo dynop like master.
kudo/nom: fde5bfd | kboga++ | src/core/terms.pm:
Implement $*EXECUTABLE_NAME.
kudo/nom: 241faa2 | moritz++ | src/core/terms.pm:
Merge pull request #30 from kboga/special-vars

Special vars
13:00 bluescreen joined 13:18 bubaflub joined
dalek R: 336feda | (Jay Emerson)++ | README.pod:
Updated requirements
13:19
R: 41fc921 | (Jay Emerson)++ | benchmark3.nqr:
Oops... not for the repository
13:21
bubaflub ~ 13:30
13:37 benabik joined
benabik ~~ 13:41
whiteknight hello benabik, bubaflub
benabik o/ whiteknight! How's things?
bubaflub morning whiteknight.
13:44 fperrad joined
whiteknight benabik: Good enough. You? 13:54
benabik whiteknight: Pretty good, although I really need a new power cord for my laptop… The insulation is dissolving. 13:55
whiteknight benabik: I ran into that same exact problem last weekend. The insulation wore out at one point, and the wires inside started to fray 13:56
I pulled out my soldering iron, some patch wire, electrical tape and some cable ties, and fixed it
it's extremely ghetto, but it works
benabik whiteknight: I coated the break in electrical tape and it's now splitting open further down.
whiteknight ouch
I'd say go to radioshack and get some shrink tube, but it's hard to find a radioshack anymore 13:57
much less one that carries more than phones and a small assortment of stereo equipment
benabik There are several around here. I'm poking Apple with a stick. I may still be in warrantee.
Actually, not only do I know of a RadioShack around here that still carries electronics parts, but there's an entire store dedicated to them downtown. 13:59
atrodo I was surprised the other week when I actually went into a shack at the mall. They had actual electronic parts 14:01
whiteknight It's like the mythical atlantis! 14:04
minus the men of greatness and superior intelligence
atrodo I know! I thought they got rid of those YEARS ago
14:47 benabik left 14:48 pjcj left 14:49 pjcj joined 14:50 JimmyZ joined
dalek kudo/nom: 7cc1567 | moritz++ | t/spectest.data:
3 more passing test files
15:07
kudo/nom: c22bfbd | moritz++ | src/core/Enumeration.pm:
make $enumValue.Int less awkward
15:19 daniel-s left 15:41 soh_cah_toa joined
soh_cah_toa ~~ 15:42
15:42 AzureStone joined 15:45 Kulag left, AzureSto_ left, RobertLJ joined 15:48 mj41 left 15:49 soh_cah_toa left 15:54 JimmyZ left 15:55 soh_cah_toa joined
dalek rrot: f7f182e | soh_cah_toa++ | t/library/osutils.t:
Added tests for file_exists() to t/library/osutils.t.
15:58
soh_cah_toa does t/library/osutils.t fail for anybody else b/c of 2 tests in test_newer()? 16:00
whiteknight Let me fire up my VM and try it 16:03
dalek kudo/nom: 00ad1de | moritz++ | src/core/Hash.pm:
implement basic Hash.delete
16:13
kudo/nom: 6eabc3a | moritz++ | src/core/Str.pm:
remove workaround, now that we have Hash.delete
16:13 NotFound joined
whiteknight soh_cah_toa: t/library/osutils.t passes on my system 16:17
I jsut did a git pull and rebuild
soh_cah_toa hmm...
dalek rrot: 5ae62b7 | soh_cah_toa++ | t/library/osutils.t:
Added test for slurp() to t/library/osutils.t.
soh_cah_toa oh yeah, i think rebuilding would fix that b/c it compares the pbc file against the pir file and i just edited it w/o rebuilding 16:18
16:20 mj41 joined 16:22 bluescreen left, dmalcolm joined 16:24 Kulag joined
soh_cah_toa whiteknight: what do you think i should do for testing system()? it's a super simple test except there can't be any output (b/c it's interpreted as a TAP token) and that's fine 16:26
whiteknight: i was using `test -e t/library/osutils.t` since there's no output but i don't want it to fail on win32 platforms. should i do something like "if Env['MSWin32'] do one test else do another"?
whiteknight that's a very good question. I don't know what to do about system() 16:30
16:32 soh_cah_toa left, dodathome joined 16:34 jay joined
dalek R: 1e4897e | (Jay Emerson)++ | VERSION:
Updated version for today's work
16:42
16:43 soh_cah_toa joined 16:47 rdesfo joined
dukeleto NotFound: winxed.org is still empty. 16:49
cotto ~~
16:57 rdesfo left 17:00 soh_cah_toa left
whiteknight hello dukeleto, cotto 17:00
NotFound dukeleto: I know
jay On docs.parrot.org/parrot/latest/html/...e.pod.html there are references to "CHP-7-TABLE-3Table 7-3 shows the escape sequences for rules." 17:09
I don't see the tables, though. 17:10
Are they basically PERL metacharacters and escape sequences? E.g. try perlish code and hope for the best?
17:11 soh_cah_toa joined
dukeleto NotFound: i have been telling people about winxed and pointing them there. That sucks. 17:11
NotFound: do you want to just moved winxed.org to be a github repo, so we can use github pages and all parrot devs can update the site?
jay: they are perlish, yes 17:13
jay [a-zA-Z][\\w\\.]* is then "start with an alpha character, followed by as many word (alphanumeric plus _) or dot characters as you want?" 17:16
dukeleto jay: looks to be that way 17:17
jay I love Perl. Or used to... I've been distracted.
dukeleto jay: indeed. I do Perl for my $dayjob :) 17:18
jay Hmmm... I'm trying to customize by identifier: 17:19
token identifier {
<!keyword> [a-zA-Z][\\w\\.]*
}
It says, "Confused at line 187, near "token iden" 17:20
I'm confused, too. !-) No biggie, but if it were something obvious I'd like to permit . in identifiers rather than use the stock <ident>
soh_cah_toa jay: p6 character classes need <> around the brackets i.e. <[a-z]> 17:21
jay Ah... perl5 vs perl6 then... I'll try that.
and .. instead of - for character ranges? 17:22
soh_cah_toa yes
<[a..z]>
jay compiled. Thanks, I'll test it.
soh_cah_toa does not like that new syntax at all 17:23
NotFound dukeleto: I've located the guy, I hope the site be alive again in few hours. 17:26
dalek rrot: 7b9fa19 | soh_cah_toa++ | t/library/osutils.t:
Added tests for mkpath() and rmtree() to t/library/osutils.t.
17:28 bluescreen joined
jay soh_cah_toa: I'm not quite there.... the trailing * doesn't seem to be quite right for "as many of [\\w\\.] that I want. Hint? I have: <[a..zA..Z]><[\\w\\.]>* 17:29
dukeleto jay: you may want that * inside the <>'s
jay Tried that and it didn't compile. 17:30
I found a perl6 example (googled) that indicates my usage might be right: <[A-Z]><[a-z]>+ for something like a name, for example. 17:31
dukeleto NotFound++
jay Ok, <[a..zA..Z]><[a..zA..Z.]>* seems to work.... the \\w may not be what it claims, or else something else subtle is going on. 17:34
PerlJam jay: I'm not sure if <[ ]> supports the character class shortcuts. The trailing * should be fine (it still means "zero or more of the previous atom")
jay PerlJam: yes, I think I agree based on this little test. 17:35
soh_cah_toa jay: i'm guessing this is for identifier names, right?
jay Yup.
soh_cah_toa well, wouldn't you want a limit on the length of identifiers? using * won't do that 17:36
unless r doesn't have a limit, i don't know
jay If there is a limit, I've never hit it. I'm too lazy to actually use long names. However, the point is taken.
Ah, now I need to change the method.... what does the ~ mean here: my $name := ~$<ident>; 17:40
17:40 particle1 left
soh_cah_toa forces string context 17:40
17:41 theory joined
jay Would <!keyword> $<myident>=<[a..zA..Z]><[a..zA..Z_.]>* then give the name "myident" for use in the corresponding action? 17:42
soh_cah_toa hmm... 17:43
jay Er, no. Sorry, let me struggle with this for a bit.
17:44 theory_ joined
cotto_work ~~ 17:46
PerlJam jay: it would, but it might not contain what you think it should :) 17:47
17:48 theory left, theory_ is now known as theory
PerlJam jay: might you want $<myident>=[<[a..zA..Z]>[\\w|'.']*] ? 17:49
jay Hmm.... I might have found a way, just a sec. 17:50
17:50 contingencyplan joined
jay Ok, Here we go: 17:50
token identifier {
<!keyword> <myident>
}
token myident {
PerlJam... unlss you think your suggestion might have a performance benefit?
17:51 particle joined
PerlJam maybe slightly, but I wouldn't worry about it. 17:51
jay I'm happy enough to have the blasted thing working, I'm not worried about it at all. Thanks PerlJam++ soh_cah_toa++ DukeLeto++ 17:52
soh_cah_toa jay: have you seen the spec where it says that identifiers can't begin w/ a digit nor underscore nor a period followed by a digit? 17:53
cran.r-project.org/doc/manuals/R-la...dentifiers
jay Haven't seen the spec, but I'm trying to be consistent with that, yes.
I think my rule is ok on that front. In fact, a leading . is allowed in R, and it creates a "hidden" variable of some sort. not recommended, but I just tested it. 17:54
Ah, I see, can't be .9ab but could be .ab, yes. 17:55
soh_cah_toa b/c i'm trying to make a regex for you for that but i seem to forget negation in p6
jay Right -- and I forgot the digits. So I have a little more work to do.
PerlJam jay: and you're definitely correct to use a subrule when the rules for identifiers are so complicated. 17:56
jay Back to Parrot: I'd like to create a function named which.max(). This is a legal R function name, but apparently not in PIR/NQP/Winxed. Any advice?
PerlJam, Thanks, I agree, easier to read.
soh_cah_toa oh, that's just a function, not a method call? 17:57
soh_cah_toa doesn't know if r is object-oriented
moritz token identifier { \\. <alpha> \\w* } 17:58
jay Erm... I think of it as a function... I have a working runtime function (written in winxed) whichmax that works fine, I just want it to be which.max instead.
moritz something like that?
PerlJam jay: Where does your R implementation live?
jay github.com/NQRCore/NQR
moritz: not an identifier issue I think. This is a Winxed/NQR/PIR naming issue... I just want to expose a Runtime function to the R user and need to get around the function name limition (apparently) of Winxed, in this case. 17:59
dalek R: 3a2270f | (Jay Emerson)++ | src/nqr (4 files):
New identifier, working on more runtimes
18:00
jay Glance at github.com/NQRCore/NQR/blob/master...ime.winxed and you'll see the function which.max that is the issue... if I get rid of the . it works fine.
This may be a non-trivial issue... perhaps I need to maintain a list of exposed user-functions that map to internal functions, or something like that. 18:02
dukeleto just found a way to coredump parrot with 2 lines of PASM
PerlJam dukeleto: That's an aweseome achievement to unlock! :)
moritz jay: in PIR, function names are arbitrary (always quoted in '') 18:03
jay Ok... so I could move these to PIR. Anybody know a clever fix in Winxed? 18:04
18:05 RobertLJ left, soh_cah_toa left
PerlJam jay: I don't know about "clever" but you could add a dispatch table as you suggested to only be used when it can't find the function via normal means 18:05
(I assume winxed has exception mechanisms) 18:06
jay Ok. So I have good instincts and I'll leave it on the back burner for now. !_) Bigger fish to fry, thanks PerlJam.
18:06 soh_cah_toa joined 18:08 benabik joined
PerlJam jay: you could also make a PIR layer that dispatches only the dotted names to winxed with some regular name-mangling (the down side would be that the mangled names would also be available in your runtime) 18:09
(but if winxed has some sort of namespace support, you can mitigate the damage) 18:10
jay How about this: a modification of the trick used to get around array: 18:11
$P0 = find_lex 'array'
set_global '!array', $P0
whiteknight dukeleto: I really wish people weren't using PASM. I'm starting to think we should disallow it from use completely
benabik whiteknight: People are still using PASM? 18:12
jay Uh oh. Am I causing trouble?
whiteknight jay: no, you're fine
dukeleto just reported a ticket where we can segfault in two lines of pasm 18:13
18:13 theory left
whiteknight the reason is because PASM is T3H SUX 18:13
dukeleto trac.parrot.org/parrot/ticket/2165
our TT bot is slow
18:13 mj41 left
atrodo well that's an embarrassing bug 18:14
whiteknight it's not a bug really
PASM is too low level for humans to be writing things in
atrodo One could argue the same thing about memory management. 18:15
whiteknight if you make poorly formatted input at such a low level, and use the fast core which turns off bounds checking, you get poorly formed output
atrodo Aye, but we should never segfault.
whiteknight I don't see why not
I mean, at the PIR level we shouldn't. No 18:16
at the PASM level, all bets are off. If you're going to play with fire, we won't pretend we can prevent the burns
dalek TT #2165 created by dukeleto++: Coredumping Parrot with only 2 lines of PASM for fun and profit
TT #2165: trac.parrot.org/parrot/ticket/2165
whiteknight The solution here is to either use the slow core, or to disallow pasm as a valid input format
atrodo Which won't work, because you can always hand craft a pbc to do the exact same thing 18:17
whiteknight atrodo: And I can always hand-craft a machine code binary to segfault or worse without parrot
atrodo But the container of that program, the OS, doesn't crash because of it 18:18
whiteknight I don't see any reasonable way to guarantee at the Parrot level that this cannot happen 18:20
dukeleto whiteknight: what does the slow core do on that input?
whiteknight dukeleto: the slow core is the fast core, but it performs bounds-checking. I think it would throw an exception if we tried to go out of bounds
I don't think there is any possible way to prevent this in all cases 18:22
atrodo: with NCI functionality, any user can force a segfault at any time 18:23
get handle to some function, pass a NULL pointer to that function. Repeat
atrodo Another way to think about it. Can you cause a segfault with a malformed class in JVM or .Net?
whiteknight atrodo: I would be extremely surprised if you could not
18:24 jsut joined
jnthn__ You can segfault the CLR by doing NCI-ish stuff. :) 18:24
jnthn__ did it :)
atrodo Ya, once you leave the sandbox, I assume you can do anything to it. I'm talking about while you're inside the sandbox
whiteknight atrodo: If you are at the level of a malformed assembly file, I'm sure you could segfault it 18:26
atrodo I would be surprised
That's a huge security issue
jnthn__ Doubt a malfomred assmebly will segfault it. 18:27
Since it does bytecode verification
benabik I think JVM and CLR do verification on the bytecode...
jnthn__ It can statically know what would be out of bounds.
whiteknight That's the only way around it that I can see: lots of bytecode verification on load
plobsing atrodo: how does being able to segfault the process with arbitrary code equate to a security problem? 18:28
whiteknight I just can't think of any ways which would be full-proof
dukeleto just sent github a pull request to detect Parrot-ish stuff : github.com/github/linguist/pull/58
plobsing you already have arbitrary code execution. you've won already.
dalek R: f3f755d | (Jay Emerson)++ | src/nqr (3 files):
Solved the dot (.) problem with which.max
18:29 jsut_ left
whiteknight The immediate problem is that users can type in bad pasm by accident. The solution I see to that problem is to disallow pasm 18:32
We could make a lot of ugliness in IMCC go away pretty quick with that policy 18:33
and if M0 is coming around the mountain quickly enough, nobody would mourn the loss
benabik I see value in PASM. I'd really like a textual format for PBC that we can assemble from and disassemble to. That said, I don't think the current PASM is that. 18:34
whiteknight it's not, it never has been, and it never will be.
clearly, nobody here is going to put in the necessary energy. PASM hasn't been touched in years
benabik whiteknight: It's one of the things on my Parrot wishlist... 18:35
whiteknight And eventually, PBCs won't even be in that format, so PASM will become just another compatibility nightmare during the M0 transition
benabik: PIR is almost the same thing, except PIR actually lets you do most things you need. If you can disassemble to PASM, you can disassemble to PIR 18:36
benabik whiteknight: Really? Can you write a 1:1 map of opcodes to PIR without IMCC trying to mangle it into something subtly different?
whiteknight it may do some optimizations, and translations of some ops, but I think that's the same for both PIR and PASM modes 18:37
so in short, if you write out the low-level ops by hand, I don't think the PIR would be any more mangled than the PASM would be
what kills you isn't the op mangling, it's the things like compile-time directives which aren't ops at all and are very hard to trace 18:38
benabik I'd like a 0% mangling assembly language. 18:39
whiteknight that isn't PASM
benabik No, it's what I'd like PASM to be. :-D
I can call it something else.
plobsing that language needs a good way to represent object graphs (that's what PBC in the end). neither PIR nor PASM have that.
whiteknight plobsing: what do you mean? 18:40
plobsing right now, both PIR and PASM assume we want only specify a collection of subs. that's not really what we want 18:41
dalek kudo/nom: 56e2229 | jonathan++ | src/core/traits.pm:
Make $x is readonly work on parameters.
kudo/nom: 49ede3c | jonathan++ | src/binder/multidispatch.c:
Missing decontainerize in junctional argument check in the multi-dispatcher. Gets us further with the junction tests.
kudo/nom: 1aa1163 | jonathan++ | src/core/Numeric.pm:
Remove an optimization that busts +SomeEnumValue.
whiteknight plobsing: ah, you're talking about constant tables 18:42
plobsing we want to specify collections of objects - classes, namespaces, methods, subs, keys, etc...
benabik plobsing++
whiteknight I've always looked at the constants table as what should be the central item in a pbc
18:43 Kulag left, Kulag joined
plobsing I think the constant table is a big part of what PBC is, or should be. 18:43
but our textual representations are sorely lacking when it comes to providing access to it 18:44
whiteknight yes, very much so
plobsing :anon :immediate? not nearly enough.
whiteknight it's not a bad start though, and it is sorely underused and underapprciated 18:45
plobsing it doesn't round-trip
18:45 dodathome left
whiteknight and the performance is lousy, and the safety and reentrancy of the implementation is lousy 18:45
so what would the alternative look like? We've kicked around ideas to add object literals to PIR for a long time, and nobody ever jumped on it 18:47
not that we ever had a compelling design to jump on
dalek kudo/nom: b420e0d | moritz++ | src/core/Hash.pm:
fix typo in Hash.pm, mls++
whiteknight With vtable overrides and other garbage like that, I can't think of any real way for any syntax to be round-trip arbitrarily anyway 18:48
unless the result after a disassemble was allowed to be human-unreadable gibberish 18:49
plobsing I created a branch a while ago with a textual serialization format. Not entirely human-readable, but 100% equivalent to the binary 18:50
whiteknight is that branch still around?
plobsing yes. it is called pasm-serializer IIRC 18:51
whiteknight I'll have to stare vacantly at it
hmm.. this is actually very interesting 18:54
plobsing also, TT #1644 is tracking it 18:55
18:56 bubaflub_ joined
plobsing has some example outputs 18:56
18:56 bubaflub left, bubaflub_ is now known as bubaflub
whiteknight so what would we need next, an assembler to put it back into .pbc format? 18:56
and how does it handle opcodes? I don't see any special-purpose code for that
moritz why do we need object literals for that? can't we just have a .sub that is executed at the time when the .pbc is created, and serialize its result?
plobsing it doesn't. it only handles objects. 18:57
so we'd need other parts
a top-level that split sections appart, and other tools to handle the other sections
whiteknight moritz:can't disassemble it, no round-trip fidelity
dukeleto whiteknight: "Round-Trip Fidelity" sounds like the name of bad movie... 18:58
whiteknight :)
plobsing: so something like an LEX file, with delimited regions for constants, subs, etc?
plobsing whiteknight: yes, something like that could work 18:59
well, subs don't get a delimited region, code does
subs live in the object section 19:00
19:02 simcop2387_ joined 19:04 simcop2387 left, simcop2387_ is now known as simcop2387 19:10 preflex_ joined
whiteknight how do you have a sub object without specifying it's bytecode contents? 19:10
just a "to be continued" marker somewhere?
plobsing the way sub objects exist in-memory and in-bytecode: they simply have integer indices which are taken to mean into the associated bytecode segment 19:11
19:12 preflex left
plobsing like I said, it isn't exactly human-readable. it may be parrot-core-dev-readable though. half of us are robots anyways. 19:14
19:14 dodathome joined 19:19 lucian joined
whiteknight so pasm-serializer is not intended to replace something like IMCC, or pbc_dump? 19:27
moritz: again, it's not round-trip safe 19:28
oh shoot, sorry.
my scrollbar was in the wrong place 19:29
moritz no problem
plobsing whiteknight: not on its own
moritz I'm not convinced by that argument, but disassembling is a good reason 19:30
plobsing but it can be part of a larger solution that acts as a replacement
whiteknight If we commit ourselves that PIR/PASM are not the ultimate, best possible textual pbc format, we need to start seriously considering some alternatives 19:31
and I can't imagine anybody making the argument that PIR is the best possible language for it's particular place in the stack 19:32
plobsing moritz: round-tripping is important if for no other reason that being able to prove that the disassembly is capable of fully representing the binary
dalek kudo/nom: 19c000b | moritz++ | t/spectest.data:
run two more test files
19:33
whiteknight if that pasm serializer PMC were a dynpmc, we could move it into master more quickly 19:36
dalek R: 66c2ae5 | (Jay Emerson)++ | src/nqr/Grammar.pm:
Updated notes on grammar changes
19:37
plobsing whiteknight: do you have any tests for the :tag functionality yet? 19:40
NotFound winxed.org/ is back! 19:41
19:42 bluescreen left
whiteknight plobsing: no .t files, no. Just a long series of "test1.pir" files in my working directory 19:48
I'll turn them into tests soonish
plobsing: thanks for the feedback on that, by the way. A sort/bsearch would be a nice addition to id
I was thinking today that we could replace :main as well with the same kind of mechanism. PackfileView.main_sub() could get the list of all subs flagged :tag("main") and pop the last one off the list 19:50
or the first, whatever semantic we want
19:52 RobertLJ1 joined
plobsing whiteknight: I'm halfway through coding up the sort/bsearch. I'd really like to know that I'm not screwing anything up. 19:52
whiteknight I'll commit some tests tonight. It's pretty straight-forward 19:54
get a packfileview, pfv.'subs_by_flag'("my flag") to get an array of Subs, execute the subs to see that all the ones you want trigger as you expect
19:57 bluescreen joined
whiteknight do a bsearch on the array. When you find an index matching the Sub you want, look to the left and to the right to get all the entries with the same string index 19:59
19:59 theory joined
whiteknight if we really want to replace :load and :init, we need to make sure we get the ordering the same, but that's a detail 19:59
actually, I don't know. Do we make ordering guarantees about those flags? 20:00
plobsing they are ordered now, but I'm fairly sure that isn't documented 20:01
whiteknight When we do the deprecation for those things, we'll make explicit note that ordering, if any, won't be preserved
lucian is an idiot 20:02
dalek kudo/nom: 118befb | pmichaud++ | src/core/Hash.pm:
Make sure that Hash.STORE doesn't consume the thing it's storing.
whiteknight lucian: having troubles?
NotFound msg dukeleto winxed.org is back and the most recent version restored 20:04
aloha OK. I'll deliver the message.
lucian whiteknight: i managed to lose data
that is, a couple of commits. i forgot to push before wiping my laptop and selling it 20:05
whiteknight ouch
lucian i did use osx's time machine to backup the entire hard drive, which is likely to be the reason i forgot to push
whiteknight oh, so you have that backup somewhere? 20:06
lucian but i can't follow directory hard links on anything other than osx
so until i find an osx machine, those bits are unreachable
whiteknight is it anything you can reproduce from memory? 20:08
20:11 NotFound left 20:15 NotFound joined 20:16 theory left, theory joined 20:17 theory left
lucian whiteknight: possibly, it was monday's work mostly 20:18
whiteknight I can't be too much help because I don't have a mac 20:21
20:26 whiteknight left 20:40 dodathome left 20:41 theory joined
dalek kudo/nom: 29058a9 | jonathan++ | src/Perl6/Actions.pm:
&?ROUTINE
21:09
kudo/nom: 1c335ac | jonathan++ | src/core/Routine.pm:
Support Routine.assuming as well as master did (some day we may want to do some magic with generating an updated signature and some such, but that's teh tricky).
kudo/nom: 5161c8b | jonathan++ | t/spectest.data:
Two more passing test files.
rrot/whiteknight/imcc_tag: 440f18f | plobsing++ | compilers/imcc/pbc.c:
[codingstd] c_arg_assert
21:19
rrot/whiteknight/imcc_tag: cb07909 | plobsing++ | compilers/imcc/pbc.c:
[codingstd] linelength
rrot/whiteknight/imcc_tag: 28b69a4 | plobsing++ | compilers/imcc/ (2 files):
[codingstd] c_function_docs
rrot/whiteknight/imcc_tag: 7835cd1 | plobsing++ | / (6 files):
use a proper struct to manage the format of the tag_map
rrot/whiteknight/imcc_tag: 4cf23c5 | plobsing++ | / (3 files):
store tags as a sorted pairs list
rrot/whiteknight/imcc_tag: ffe846f | plobsing++ | src/packfile/api.c:
use binary search to determine range of tag map containing querried tag entries
21:20 bluescreen left 21:21 RobertLJ1 left 21:25 ambs left 21:44 Psyche^ joined
dalek kudo/nom: b0a7bcd | jonathan++ | t/spectest.data:
One more passing test file.
21:48
kudo/nom: d9d0d00 | pmichaud++ | src/core/IO.pm:
Fix filetest operators for non-existent files.
21:49 Patterner left, Psyche^ is now known as Patterner 21:50 bubaflub left 21:54 lucian left 21:59 jay left
dalek lrskate: 39438d0 | tcurtis++ | src/LALR/Generator/ (3 files):
Add several things I've been working on but forgot to commit.
22:00
lrskate: e262efb | tcurtis++ | src/LALR/Generator.winxed:
Add another.
lrskate: a1e93a6 | tcurtis++ | setup.winxed:
Update setup.winxed.
kudo/nom: c2794a4 | jonathan++ | src/core/Routine.pm:
Routine.candidates
22:05
kudo/nom: 333a91f | jonathan++ | t/spectest.data:
Run S06-multi/syntax.t.
22:14 theory left
dalek kudo/nom: 764d2f9 | jonathan++ | src/core/traits.pm:
A couple more trait handlers (though nothing yet answers them).
22:40
kudo/nom: 075104d | jonathan++ | t/spectest.data:
Two more passing test files.
22:45 theory joined
dalek kudo/nom: 9246ce6 | jonathan++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
Add logic to attribute meta-object so it may be explicitly marked readonly, and able to default itself to rw if it wasn't marked readonly.
22:50
kudo/nom: 0ca6dad | jonathan++ | src/Perl6/Metamodel/ (2 files):
Implement rw handling for types in AttributeContainer role; also factor attribute composition into that role to take a little more bulk out of ClassHOW.
kudo/nom: caf5d1a | jonathan++ | t/spectest.data:
Run S12-class/rw.t.
23:00 bubaflub joined
bubaflub ~ 23:02
23:02 jay joined 23:08 davidfetter joined, theory left 23:10 kid51 joined
dukeleto aloha, clock? 23:25
aloha dukeleto: LAX: Thu, 16:25 PDT / CHI: Thu, 18:25 CDT / NYC: Thu, 19:25 EDT / UTC: Thu, 23:25 UTC / LON: Fri, 00:25 BST / BER: Fri, 01:25 CEST / TOK: Fri, 08:25 JST / SYD: Fri, 09:25 EST
23:26 NotFound left, NotFound joined 23:27 GodFather joined
dalek website: soh_cah_toa++ | HBDB Closed for Construction, Please Use Detour 23:38
website: www.parrot.org/content/hbdb-closed-...use-detour
kudo/nom: b05b391 | jonathan++ | LHF.markdown:
Update LHF; remove a dupe entry...nice as minmax op would be, it only needs to be listed once. :-)
23:48
kudo/nom: 5d31774 | jonathan++ | src/ (3 files):
Allow state declarator and pass along a flag to the lexpad when something is state scoped.
kudo/nom: 24c07b6 | jonathan++ | src/Perl6/Grammar.pm:
Re-enable state scope declarator, in preparation for restoring state var functionality.
kudo/nom: 2d89f4a | jonathan++ | src/Perl6/Actions.pm:
Need action method for state scope declarator also.
23:51 whiteknight joined
cotto_work hio whiteknight 23:51
whiteknight hey cotto_work 23:52
pg parrot 23:56
damnit
23:58 dmalcolm left