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 5 August 2011.
00:00 bluescreen joined
soh_cah_toa cotto: still can't get that test to pass. do you have any idea why it's behaving like this? 00:03
not_gerd I'm off for today, good night #parrot 00:05
cotto soh_cah_toa, looking 00:06
soh_cah_toa ok 00:07
cotto got it 00:11
soh_cah_toa :D
cotto you need to be checking ->can_read in a loop
soh_cah_toa gimme gimme gimme
cotto search.cpan.org/~gbarr/IO-1.25/lib/IO/Select.pm 00:12
Look at how the example there works.
same deal for your code
soh_cah_toa hm, i had it like that originally b/c i got the idea from that exact example but someone said it should be outside 00:14
cotto soh_cah_toa, is that enough information?
soh_cah_toa oh well, let's revert it if it works
yeah, i'll try now
cotto you also don't need to check specific handles. ->can_read(0) will return a list of all handles ready for reading. 00:15
not necessary, but nice to know. I doubt you'll be adding any more handles. ;)
soh_cah_toa you mean the `if (fileno $fh == fileno \\*HBDB_STDERR)`? 00:16
cotto yes 00:17
soh_cah_toa b/c i think that's supposed the keep $lines from containing a mix of stderr and stdout
i think
dalek kudo/wherefore-gc-bug: 396201b | tadzik++ | / (6 files):
Fix Pod::Block::Declarator ordering. Reveals an ugly GC bug
00:17 rdesfo joined
cotto That's sensible. 00:18
soh_cah_toa well look at that...it passes 00:19
finally, i can add more tests
cotto good times
soh_cah_toa indeed
cotto Before you get too far into that, let's figure out a schedule.
soh_cah_toa sure, but i actually have to run an errand real quick. can it wait like 30 minutes? 00:20
cotto sure
soh_cah_toa will brb
00:27 preflex joined 00:28 Kulag joined
soh_cah_toa cotto: actually, didn't realize it's raining so nevermind 00:34
cotto: so this week i can probably get full coverage of the features i have so far and then start working on watchpoints
00:35 preflex joined
cotto rain? wouldn't know about that. 00:36
soh_cah_toa :)
Felipe :p 00:37
cotto one week from Monday is the soft pencils down date, then another week to the hard date.
soh_cah_toa oh wow
crap
tadzik I was suprised too
cotto yeah
soh_cah_toa not good, thought i had until the end of august 00:38
cotto soh_cah_toa, you picked a really good time to get the hbdb train un-derailed
tadzik g'night Parrots 00:39
cotto 'night tadzik
soh_cah_toa, you can still get some good work done.
just be focused and let me know quickly if you get stuck 00:40
soh_cah_toa ok, i'm stuck :P
cotto where
?
soh_cah_toa well, before watchpoints i want it to appear as if you are stepping line by line but one line can generate several ops. for instance, to step from line 3 to 4 you might have to type "step, step, step, step" 00:42
cotto that's the nature of PIR
soh_cah_toa yeah
i could just run until the next annotation line change
but i also want it to work for pir 00:43
cotto Don't try too much with pir line numbers.
soh_cah_toa ok
yeah, hll's are more important
jnthn__ wonders if you can cover some of the commonest cases in PIR just by knowing the sequence of ops that some extremely common things generate 00:44
(e.g. sub or method calls)
soh_cah_toa i really want to focus on making it attractive to the p6 team. is there some switch to generate pir?
i've just been using a small hand-written pir file
cotto soh_cah_toa, --target=pir 00:45
soh_cah_toa ok
jnthn__ soh_cah_toa: --target=pir, you'll have most luck in the nom branch I suspect
For a simpler time, try nqp
soh_cah_toa jnthn__: ok
jnthn__ (new) nqp with --target=pir certainly generates code that'll run standalone with Parrot.
We had that in Rakudo's nom branch at one point, then accidentally busted it...I didn't get it fixed up again yet. Will do soon... 00:46
soh_cah_toa cotto: is it ok to include a rakudo/nqp pir generated file in the testlib directory?
cotto soh_cah_toa, why wouldn't it be? 00:47
test data can come from many sources
minimal test cases are nicer though
soh_cah_toa just making sure 00:48
ok, so then how about this: 00:49
first, i get these tests done. then update the docs to reflect new commands
second, modify step to run until next annotation change
third, start watchpoints design
if i'm lucky, i can have that by the middle of this week
preferably sooner
doing docs/tests right now too 00:50
cotto soh_cah_toa, can you put something like that on the wiki page, preferably with dates? 00:51
soh_cah_toa sure
00:53 PacoLinux__ joined
dalek kudo/nom: 31e7121 | jonathan++ | src/core/traits.pm:
Harden export trait a bit to avoid hard to find issues.
00:59
kudo/nom: d2bfaa5 | jonathan++ | t/spectest.data:
3 more tests that we can pass now Test::Util works again.
kudo/nom: ab4eacb | jonathan++ | NOMMAP.markdown:
Remove some completed entries from nommap (tadzik++ for noticing).
kudo/nom: ed3094f | jonathan++ | src/ (4 files):
Make sure we give appropriate method names to auto-generated accessors and delegation methods, so introspection works out. Also try to handle multi exporting a bit more sanely.
soh_cah_toa i just realized something. the way i want this to work is that you invoke hbdb w/ the hll source file, hbdb compiles it and operates on the resulting bytecode 01:01
but if i want to use annotations, hbdb needs to know how to invoke the hll compiler. the way it is now it just compiling pir to pbc which won't work
i can't just use the hll generated pbc b/c the debug segment does not contain some type of "source" annotation containing the original source code. the pbc knows nothing about the original source 01:02
which is kinda stupid 01:03
cotto traditional object code doesn't know anything about the C code that was used to generate it. 01:04
soh_cah_toa w/ debug data compiled in it does 01:05
that's how gdb knows the source from the executable
cotto brainfail 01:06
soh_cah_toa gsoc has that effect ;)
dalek kudo/nom: b6e553a | moritz++ | / (2 files):
trim-trailing, trim
01:10
tracwiki: v9 | soh_cah_toa++ | HBDBPlanning 01:11
tracwiki: Started schedule
tracwiki: trac.parrot.org/parrot/wiki/HBDBPla...ction=diff
soh_cah_toa needless to say, i don't see how to solve this in a logical way other than a really hacky `if (.p6) { system(perl6); } else if (.lua) { system(lua) } ...`` 01:14
which would be really ugly and...bad 01:15
cotto Don't worry too much about it.
soh_cah_toa uh, well then how do i run anything. given a p6 file, how would i compile it so it can be executed 01:16
i mean, it isn't exactly something i can just ignore 01:17
cotto long-term, no. Between now and the hard pencils down date, perhaps. 01:20
soh_cah_toa so i guess i should just make sure that the source file *and* generated bytecode are both in the cwd? load source as text for 'list' command but run bytecode? 01:22
cotto I can't think of anything better, but my brain's in a questionable state atm. 01:28
soh_cah_toa ok :\\
actually, docs/parrotbyte.pod says that there is a source code segment but that "currently there are no utilities that use this segment, even though it is mentioned in some of the early Parrot documents". does this mean that it's there and actually contains the original source but just that nothing really uses it yet or that it literally doesn't exist? 01:32
cotto curious 01:35
I don't remember having seen that before. 01:36
soh_cah_toa also, pdd13 mentions that a "default segment" can be used for storing hll source code. then i look at compilers/imcc/main.c and it reads `pf_raw->cur_cs = Parrot_pf_create_default_segments(imcc->interp, packfilepmc, source, 1);` 01:40
cotto interesting
soh_cah_toa indeed
ah man, that would be great. i'll have to ask whiteknight about this 01:41
cotto you can just poke around a pbc file with hexedit 01:42
soh_cah_toa oh yeah, good idea 01:43
cotto or you can add a printf to that bit of code to see what it's stuffing into the pbc file
soh_cah_toa also good idea 01:44
dalek kudo/nom: d601bb0 | moritz++ | / (3 files):
Cool.trim, Str.words, run words.t
01:45
kudo/nom: 5b9a992 | moritz++ | NOMMAP.markdown:
note state of Whatever-currying
kudo/nom: 30a9776 | moritz++ | src/core/Any.pm:
generalize .[Whatever] case to .[Callable]
kudo/nom: 4a50e0a | moritz++ | / (4 files):
put CallFrame back into place
rrot/tt2007/html_links: 8402064 | jkeenan++ | docs/glossary.pod:
Trimmed section on predereferencing (as long advised in POD 'for' section).
01:50
cotto soh_cah_toa, looks like that's just the filename 01:51
soh_cah_toa damn
had my hopes up :(
01:54 woosley joined
dalek rrot/soh-cah-toa/hbdb: e6f5dd4 | soh_cah_toa++ | lib/Parrot/Test/HBDB.pm:
Wrapped call to can_read() inside a while loop in Parrot::Test::HBDB. Now all tests finally pass.
02:20
rrot/soh-cah-toa/hbdb: 03d2954 | soh_cah_toa++ | docs/hbdb.pod:
Added explanation of new commands to docs/hbdb.pod. Now all commands are documentated.
rrot/soh-cah-toa/hbdb: c0f297d | soh_cah_toa++ | / (2 files):
Refactored duplicate code in Parrot::Test::HBDB into _select(). Also modified regex for 'help' test in cmds.t so that all tests pass.
02:21 rdesfo joined 02:37 daniel-s joined
dalek rrot/nqp_pct: 66ba4bb | benabik++ | compilers/pct/src/PCT/HLLCompiler.pir:
PCT::HLLCompiler - create new PAST::NewCompilers

It uses object attributes, so has to be reinitialized for each compilation.
02:40
rrot/nqp_pct: b11812c | benabik++ | compilers/pct/src/PAST/Compiler.p (2 files):
PAST::Compiler - don't add return to empty blocks

This ended up with a POST::Op(undef, :pirop<return>) in the POST tree, which confused poor POST::PBCCompiler.
rrot/nqp_pct: bb13121 | benabik++ | t/compilers/pct/newpast.t:
newpast.t - make basic_tests simpler

Test for slightly less details and do less debugging output. Also, test empty block instead of a block with value.
rrot/nqp_pct: a386a03 | benabik++ | t/compilers/pct/newpast.t:
newpast.t - Test returning a variety of values
benabik Next step: PAST::Val so I can maybe get t/compilers/pct/complete_workflow.t to also test generating bytecode. 02:42
dalek kudo/nom: ad24903 | Coke++ | t/spectest.data:
run more fudged tests/track failures
03:10
rrot/soh-cah-toa/hbdb: bfbe1a5 | soh_cah_toa++ | t/tools/hbdb/testlib/hello.pir:
Added more advanced PIR file to testlib so that new features can be tested.
04:18
rrot/soh-cah-toa/hbdb: 056078a | soh_cah_toa++ | lib/Parrot/Test/HBDB.pm:
Changed cmd_output_is() to use Test::Builder->is_eq() because is() doesn't exist. Also removed _generate_pbc() since HBDB uses PIR now.
rrot/soh-cah-toa/hbdb: 5870b16 | soh_cah_toa++ | / (2 files):
Added test for 'list' command but doesn't pass yet. Tried to filter out welcome message with a regex but it doesn't quite work.
04:21 rdesfo joined
dalek rrot/m0-spec: d02371e | cotto++ | docs/pdds/draft/pdd32_m0.pod:
add clarification about copy_mem and GC
05:28
05:48 fperrad joined
cotto aloha, clock? 05:55
aloha cotto: LAX: Sun, 22:55 PDT / CHI: Mon, 00:55 CDT / NYC: Mon, 01:55 EDT / UTC: Mon, 05:55 UTC / LON: Mon, 06:55 BST / BER: Mon, 07:55 CEST / TOK: Mon, 14:55 JST / SYD: Mon, 15:55 EST
06:36 SHODAN joined 07:12 contingencyplan joined 07:20 dodathome joined 07:58 mj41 joined 08:16 moritz joined
dalek kudo/nom: 95e209b | moritz++ | t/spectest.data:
run (heavily fudged) hyper.t
09:37
09:53 jsut joined
dalek kudo/nom: 3ea71cf | moritz++ | / (2 files):
add missing :Ds to EnumMap, start with EnumMap.ACCEPTS
10:26
11:00 lucian joined 11:01 mj41 joined
atrodo =~ 11:41
tadzik ACCEPT() 11:52
moritz is glad that REJECTS is gone 11:53
12:08 rdesfo joined 12:10 whiteknight joined 12:19 PacoLinux_ joined 12:36 ingy joined
dalek kudo/nom: 169baab | moritz++ | src/core/EnumMap.pm:
handle non-Str case of EnuMap.exists
12:39
kudo/nom: b4296cb | moritz++ | src/core/Match.pm:
Match.ACCEPTS
whiteknight good morning, #parrot 12:51
tadzik good afternoon, whiteknight
whiteknight hello tadzik, how are you doing? 12:52
tadzik good. I got a new bike today :)
how is your housing stuff?
12:53 bluescreen joined
bubaflub ~ 12:58
tadzik ~~
whiteknight tadzik: miserable. The whole deal fell through sunday morning, and now we have no house
tadzik what?
what do you mean, the deal fell? 12:59
whiteknight so we're going to go out and buy voodoo dolls shaped like the sellers and the realtor, and stick needles into them
the sellers wanted more money than the house appraised for, and we couldn't mortgage more than the appraisal value. So, with no other options, we had to walk away from it
tadzik shit 13:01
whiteknight yeah. We got the call on sunday morning, so we scrapped all our plans and went out looking at houses for the rest of the day. Actually found some good ones we might be interested in 13:02
atrodo whiteknight> I'm sorry to hear that. That's no fun at all 13:03
tadzik yeah
aloha: going to yapc::eu?
aloha tadzik: No clue. Sorry.
13:14 PacoLinux_ joined 13:34 Coke joined 13:56 contingencyplan joined 13:57 JimmyZ joined 14:17 particle joined
dalek kudo/nom: 38be712 | jonathan++ | src/Perl6/Metamodel/RoleToRoleApplier.pm:
Avoid a bunch of work when the role to role applier has an empty list of roles to apply.
14:22
kudo/nom: f2aabfa | jonathan++ | src/Perl6/Metamodel/RoleTo (2 files):
Avoid some (weird, hard to nail down) circularity issue in getting method names (we can't always do .name as NQP methods are Parrot subs, which we need to stringify...)
kudo/nom: 8fd1a35 | jonathan++ | src/core/Submethod.pm:
Add missing Submethod.pm.
kudo/nom: e0867f0 | jonathan++ | / (3 files):
Start to port over socket stuff from master. This doesn't quite work yet, but builds. Also will need to fix up packages.
14:26 lucian_ joined
dalek kudo/nom: 99f5ce9 | moritz++ | / (2 files):
first attempt to put MAIN back, tadzik++ did lot of the early work
14:47
tadzik woo, that's a hell simplier than it was 14:49
moritz++
dalek kudo/nom: 429a183 | pmichaud++ | src/core/ (3 files):
Some hyper metaop and hash updates.
15:04
15:06 lucian__ joined 15:16 rdesfo joined 15:24 mj41 joined 15:29 darbelo joined 15:34 nbrown joined
dalek kudo/nom: ac51b44 | moritz++ | src/Perl6/Actions.pm:
remove superfluous $MAIN lexical
15:41
16:13 jaffa4 joined
jaffa4 hi 16:13
where can I see what operations are supported by pir?
tadzik check out a list of opcodes on docs.parrot.org
jaffa4 In particular, how can I use exr? 16:14
In particular, how can I use xor?
tadzik that'd be docs.parrot.org/parrot/latest/html/...t.ops.html
jaffa4 | and & seems to be working too 16:15
And they are not mentioned there.
bubaflub jaffa4: what about bxor?
(bottom of that page) 16:16
whiteknight | and & are just syntax for the or and and operators
jaffa4 So I is not bitwise
So | and & are not bitwise
whiteknight oh, wait, bor and band, maybe
I don't know what they translate to
jaffa4 they are bitwise, I jsut tested them 16:18
whiteknight okay, so then it's bor and band opcodes 16:27
16:36 TiMBuS joined
jaffa4 Does anyone use parrot for anything? 16:37
tadzik yes, I use it daily :)
for developing the Perl 6 compiler
jaffa4 yes, perl 6, I forgot
I mean for real life stuff. 16:38
16:38 theory joined
lucian jaffa4: for end-user stuff? likely not 16:39
tadzik how do you define real life stuff? Parrot users are compilers implementors
lucian fwiw, i'm also writing a compiler 16:40
tadzik jay++ now writes an R compiler targetting Parrot
jaffa4 so am I.
ok, so who uses the compilers which use Parrot? 16:41
tadzik a plenty of people use Rakudo. I don't about NQR
most of them are in the early stages of development, that's true 16:42
or just not quite popular
oh, plenty of Parrot people use winxed
jaffa4 what is winxed?
tadzik a language syntactically similar to Javascript 16:43
lucian a sane parrot low-level language
tadzik winxed.org/
jaffa4 ok 16:44
how is number conversion done in pir? 16:57
whiteknight jaffa4: What kind of number conversion?
jaffa4 number to int, int to number.
cotto_work ~~ 16:58
whiteknight $I0 = $N0, $N0 = $I0, etc
jaffa4 string to int, int to string
number to string
whiteknight all the register types autoconvert between themselves
except PMCs, which you need to use the box opcode for
for string conversions, there is also an sprintf opcode for detailed formatting to string 16:59
jaffa4 but this is not ok:$I2=$I0 * $N1 17:00
whiteknight PIR is an assembly language, you have to break that up into individual operations
jaffa4 ok 17:01
whiteknight actually, wait. I think that should work
benabik o/
jaffa4 -->>> error:imcc:The opcode 'mul_i_i_n' (mul<3>) was not found. C
whiteknight okay, we must not have that variant
cotto_work seen soh_cah_toa
aloha soh_cah_toa was last seen in msg 12 hours 41 mins ago <private message>.
whiteknight I would do something like $N2 = $I0 * $N1 \\n $I2 = $N2 17:02
jaffa4 ok 17:05
17:05 rdesfo joined
dalek kudo/nom: 9ca7ef7 | moritz++ | / (3 files):
partially put back Temporal
17:12
17:29 bubaflub joined
dalek kudo/nom: ff8d46f | tadzik++ | src/Perl6/ (2 files):
Implement a default DOC INIT phaser
17:30
17:34 Coke joined
dalek kudo/nom: c49a3c9 | pmichaud++ | src/core/ (2 files):
Re-enable hyperop assignment metaops.
17:55
17:58 dmalcolm joined 18:08 bluescreen joined
dalek kudo/nom: 362dac2 | jonathan++ | src/Perl6/Grammar.pm:
Prevent scope leakage, which caused my module Foo { constant Bar = 42 } to end up declaring the constant my scoped.
18:28
kudo/nom: e76d280 | jonathan++ | src/Perl6/SymbolTable.pm:
Make a comment more accurate.
kudo/nom: 98408a8 | jonathan++ | src/core/IO/Socket/INET.pm:
Get socket IO working again, or at lesat enough for it to do a HTTP request and get the result.
18:37 soh_cah_toa joined
soh_cah_toa ~~ 18:37
tadzik hello soh_cah_toa 18:38
soh_cah_toa tadzik: hey
cotto_work hi soh_cah_toa. I'm about to grab some lunch, but let's talk about GSoC a little later in the day. 18:43
soh_cah_toa cotto_work: sure 18:44
whiteknight soh_cah_toa: I got your message 18:46
soh_cah_toa whiteknight: good
whiteknight I didn't think GDB uses source code listings inside the object file, gdm finds the source file and loads it up separately 18:47
that's why if you edit a file while you're running GDB, you'll get a warning about the source being newer than the binary
if the HLL code has a "file" annotation, you can load it separately
soh_cah_toa hm, that's an idea
well, there's a few things i've been considering 18:48
whiteknight if I do winxed -o foo.pir foo.winxed, it will contain .annotation "file", "foo.winxed"
Where you might stumble is in trying to run hbdb from a different directory, in that case the hlls really need to include full path information, not just relative path
soh_cah_toa right 18:49
whiteknight or, have some kind of command in hbdb to specify search locations
soh_cah_toa well, i'm actually sending an email to parrot-dev now. i think parrot really needs a *real* debug segment. something comparable to dwarf
i'd like to work on that post-summer w/ some people
i mean, the debug segment now is just so poor 18:50
i've been reading the dwarf specification and i think using it as a model would be very beneficial
whiteknight okay, I like that idea
you're right, the current debug segment basically only contains a mapping of pc->line_number 18:51
soh_cah_toa yeah, and it sucks big time :)
needless to say, i would love to have your help w/ that after the pencils down period 18:52
18:52 dmalcolm joined
whiteknight having that kind of information available might also help other efforts, like post-facto optimizations and tracing JIT 18:52
soh_cah_toa indeed 18:53
whiteknight also, other analysis tools
soh_cah_toa yes, profiling/benchmarks and such
whiteknight I have in mind a tool for doing complexity analysis in a language-agnostic way.
soh_cah_toa well, good. i'm glad i have you on my side ;) 18:54
whiteknight I always felt like Parrot instrument would have been such an awesome basis for this kind of work, but unfortunately it got so damn broken 18:55
soh_cah_toa yeah 18:56
whiteknight What if we had something like a CodePointer PMC, which contained a Packfile reference and a pc value, and had interface methods to retrieve information about each opcode from the packfile
and a runcore which, either for all ops or only at certain breakpoints, created a CodePointer and passed it to a callback for control and analysis? 18:57
soh_cah_toa not a bad start
whiteknight with that basis, the only thing you are limited by is the introspection methods on CodePointer, PackfileView, and related objects
soh_cah_toa right 18:58
whiteknight I had also kicked around the idea, long ago, of having runcores themselves be PMCs, with state and methods
so in PIR we could do something like interp["runcore"] = $P0 to set a new one
then $P0.break()
or $P0.step() or $P0.run()
etc 18:59
soh_cah_toa hmm...interesting
whiteknight this is just an unbounded brainstorm 19:00
soh_cah_toa one of the things that i'd need someone like you to help w/ is identifying what stages during hll compilation the debug info is generated and where it gets hll related info since i'm not that familiar w/ that 19:01
whiteknight IMCC populates the debug segment during PIR compilation, and it only really contains information about the PIR file or PIR snippet being compiled
HLLs would output .annotation directives into the PIR stream during HLL->PIR compilation
so the two are basically completely separate 19:02
soh_cah_toa yes
i think it's the hll data that should populate the debug segment though
whiteknight I don't know how we would get it there, and I'm not sure we want that anyway 19:03
the annotations segment does contain all that juicy HLL line-mapping information, and is newer and more shiney 19:04
so maybe the solution is, if possible, to skip the debug segment and read out the annotations segment directly
soh_cah_toa yeah, just (poor) line-mapping though
well, imagine a p6 user wanting to use hbdb. wouldn't it make more sense to debug his p6 file rather than the generated pir? 19:05
whiteknight yeah, that's why we do it through the annotations segment instead
however you look at it, the two are going to have different semantics. Debugging PIR with no annotations is going to be far different from debugging HLL with annotations
so we need to pick one or the other, or we need an abstraction layer that lets us handle both 19:06
soh_cah_toa hm, right
whiteknight for the purposes of your project, I suggest you stick with just .annotate and HLLs
I suspect that would be easier to do
soh_cah_toa well, i've found that even annotations are quite inaccurate and weird. let me nopaste an example 19:07
whiteknight is that because the HLL compiler is outputting bad annotations, or because the annotations are being stored/retrieved incorrectly?
soh_cah_toa the former, i think 19:08
19:08 Eclesia joined 19:09 rdesfo joined
Eclesia hi 19:09
nopaste "soh_cah_toa" at 192.168.1.3 pasted "NQP Annotations" (158 lines) at nopaste.snit.ch/68657
whiteknight hello Eclesia
soh_cah_toa notice how the order of annotations is 0, 9, 15, 21 then back 1, 3, 4, 5... 19:10
benabik soh_cah_toa: That's because it sets up the lexical structure of the subs prior to running the rest of the code. 19:11
You cannot assume that lines are run in order because the tree often gets rearranged.
soh_cah_toa so how could i do a "run to main" using annotations?
or just start at the very first line of the file 19:12
containing code, that is
whiteknight main would be the very first line of the file
*unless* there is PIR compilation involved
soh_cah_toa there's two line 1 annotations though
benabik soh_cah_toa: Only one 0. :-D
whiteknight IMCC executes certain ops as part of it's optimizations suite
benabik: if it's a function you want to catch, a good bet would be to break in the runloop when an invokecc, invoke, methodcallcc or tailcall op are executed 19:13
when one of those ops comes down the pipeline, you can check the PMC being invoked, get its name, and compare to what you are looking for 19:14
it's a little bit ugly, but very direct
alternatively, convince the HLL people to output a new "substart" annotation, or something similar
soh_cah_toa uh, what are those ops?
whiteknight those are the ops that perform invokation. invokecc and methodcallcc are the most common 19:15
of course, :main gets called by the frontend, so until I merge my new branch you can't use that for main
benabik Fun fact: NQP doesn't generate a main function… It uses :load :init for the mainline code.
whiteknight yeah, I think your best bet is to get HLL authors to output a 'sub' annotation that is in effect for the duration of any sub
soh_cah_toa benabik: yeah, was just gonna say that 19:16
whiteknight once whiteknight/frontend_parrot2 merges, it won't matter anymore
but that could still be weeks away at this rate
soh_cah_toa i'm not sure i follow, how would invokecc() or methodcallcc() (whatever those things do) indicate that this is the start of the file? 19:17
whiteknight soh_cah_toa: I thought you were talking about the start of a subn
sub
soh_cah_toa oh no
whiteknight okay, you can still do an annotation-based approach
while (!STRING_equal(interp, current_annotations["file"], "myfile.whatever")) { ... just run ... } {Oh, looks like we are in myfile.whatever!} 19:18
that is obviously a very rough approximation 19:19
soh_cah_toa but that brings me back to the problem before. how can i ignore all the lexical sub initialization and have it appear to the user that we are starting at `say('Starting at line 3');` the first thing in the hll file 19:20
whiteknight that's what I'm talking about with a new "sub" annotation
and why ignore lexical sub initialization? That's part of the runtime behavior of the program being debugged 19:21
we want to see that
benabik +1
soh_cah_toa i know, i meant have it invisible to the user
19:21 rdesfo joined
whiteknight don't make it invisible to the user 19:21
make it extra visible
double-extra visible
cotto_work blink tags?
whiteknight I was thinking <marquee> 19:22
style="font-size: x-large; color: #FF0000;"
cotto_work may need to backscroll
whiteknight soh_cah_toa: if the HLL has semantics about loading and setup and stuff, that's part of the language and can't really be ignored 19:23
ordering and details of that setup code may very well be a big part of what needs to be debugged anyway
soh_cah_toa yeah
19:24 Coke joined
whiteknight I wasn't aware of the fact that NQP doesn't use :main. That seems...wrong to me 19:24
cotto_work soh_cah_toa: don't focus too much on features you can't implement between now and the hard pencils down date. As soon as that date passes you can go nuts (though you'll be evaluated on what was done as of pencils down). 19:25
whiteknight and the more nuts you go, the more we are going to need you to work in the IMCC insanity mines
cotto_work seen notfound 19:26
aloha notfound was last seen in #parrot 23 hours 6 mins ago saying "soh_cah_toa: mmmmmm.... Apple money? ;)".
soh_cah_toa yeah i know, it just makes me upset that w/o something like a real debug segment, hbdb is just gonna rot like that old debugger. it's hardly a practical tool 19:27
and i want to fix that after gsoc
whiteknight the value of gsoc is determined in part by what we learn from it 19:29
my GSOC project was a dismal failure if you count the number of actual lines of working code it contributed to parrot master
soh_cah_toa i know. i do want people to actually use it though
whiteknight but in terms of the lessons learned, it was invaluable
we have two choices: Have something that works, or learn enough that we can make something that works 19:30
soh_cah_toa i think that latter is true in my case
whiteknight if what we learn is how to do debug segments and annotation segments correctly, that's invaluable
19:31 Coke joined
whiteknight I suspect that what we are going to end up with in the far future is a debugger written in an HLL and running on top of Parrot 19:31
soh_cah_toa yeah, i just hope it can become a real roadmap goal for parrot
whiteknight if we have an implementation of a runloop written in PIR, that's the first step in that direction, and I suspect it won't be too hard 19:32
bacek had something like that a while back, and I have a very good idea about how to do it myself
once we have that, we can directly port most of HBDB to PIR or better
And we can name it "HBDB2: Soh_cah_toa's revenge" 19:33
soh_cah_toa ew, no way am i writing a debugger in pir
ha!
whiteknight what we are going to need, in the long run for any debugger is a sane API for interacting with the debug and annotation segments of a packfile 19:35
soh_cah_toa yes
whiteknight So as you are picking your way through getting that information, start taking mental notes about what functions you wish we had
and, don't hesitate to write them yourself, or ask me to write them
because we do need them no matter what
cotto_work alternately, kidnap a gdb hacker 19:36
soh_cah_toa cotto_work: i tried a long time ago :)
whiteknight and hit him with a sock full of bytes and bad dreams
soh_cah_toa cotto_work: they're not friendly...enthusiastic...over there :(
s/friendly/very/
cotto_work soh_cah_toa: where do they hang out?
Eclesia anyone used anykind of archive pmc for read AND write succesfuly ?
soh_cah_toa cotto_work: the #gdb channel i think on freenode 19:37
cotto_work nm. can find that myself.
and my first guess would have been correct
yes
soh_cah_toa i've been going through the dwarf spec and i definitely think i can start a "this is what we need" gist 19:38
but first...
whiteknight Eclesia: not that I know of
soh_cah_toa cotto_work: did you see my message about the tests?
whiteknight Eclesia: The archive PMCs were created to help submitting smoke reports. I don't know if they were ever used much beyond that 19:39
Eclesia: We do need to maintain them better
cotto_work soh_cah_toa: I'll take a look now.
soh_cah_toa ok
cotto_work soh_cah_toa: which tests fail on your machine? I'm getting empty output for the first cmds.t test. 19:43
19:44 M_o_C joined
soh_cah_toa cotto_work: they all do but now w/ empty output. i'll nopaste 19:44
nopaste "soh_cah_toa" at 192.168.1.3 pasted "HBDB Failed Tests" (57 lines) at nopaste.snit.ch/68662 19:45
cotto_work soh_cah_toa: any unpushed changes? 19:46
soh_cah_toa nope
Eclesia rah, those pod coments are hell. how is the stupid guy who invented doc blocs with =stuff ... 19:51
whiteknight Eclesia: I agree
soh_cah_toa concurs 19:52
tadzik concurs too 19:53
it's very nice to =comment the whole big block in one go
but I implemented all these, so I may be biased :) 19:54
Eclesia it's unreadable. if someone adds demo code in a comment block, we can't make the difference between what is doc and what is reall code .
whiteknight if I could go back in time and make Parrot not rely on POD for documentation, I would 19:55
soh_cah_toa yes! thank you!
whiteknight but it's not something to cry about now. We aren't going to change thousands of lines of pod documentation for no good reason 19:56
Eclesia make a small pir parser in pir to replace old pod coment by new ones ;)
whiteknight we're kind of stuck with it
tadzik Eclesia: then you have shitty syntax hilighter
Eclesia tadzik: I don't even have a syntax hilighter ! I didn't found anything to handle any of parrot syntaxes correctly so far 19:57
tadzik really? I thought they're even shipped with parrot (for vim at least)
Eclesia best I have is javascript syntax highlighter from netbeans with winxed
tadzik I see
Eclesia vim ...
whiteknight I have a basic winxed highlighter for gtkSourceView2.0 19:58
...which I need to update
cotto_work soh_cah_toa: if I comment out the two "next if..." statements, I get 3 passing tests. 20:00
er, 2 passing tests and one failing 20:01
20:01 bluescreen joined
soh_cah_toa yeah, that's odd 20:01
i added those regexes b/c i was getting the welcome message in the output but after removing them it doesn't appear anymore 20:02
eh, whatever
tadzik Eclesia: what you're coding in? 20:03
Eclesia tadzik: my primary language is Java
tadzik oh, I mean the editor 20:04
Eclesia tadzik: netbeans mostly, nano when on a distant server
leafpad sometimes too
tadzik I see
whiteknight I've never tried leafpad. Any good? 20:06
Eclesia whiteknight: lighter then gedit. boots nearly instantly 20:07
I work with LXDE desktop ... even if I have a quad core and more memory then necessary ^^ 20:08
tadzik heh. I have 2 GBs on KDE, while Rakudo compilation needs 1.3 GBs
cotto_work rakudo feature: takes less memory than kde 20:10
tadzik no, not really :)
but I almost cannot have both chromium and Rakudo compilation running
I probably need to buy another 2GBs 20:11
the times. They are a'changin
I remember when my desktop needed 40 MBs 20:12
cotto_work and the bits weighed 5 pounds and you had to carry them through snow uphill, both ways? 20:14
tadzik no, I'm still too young for that :P 20:15
Eclesia hourray ! finally write an archive 20:19
tar ... well it's not compressed but at least it's an archove
now , how can i read it ...... 20:20
I someone knows that would help 20:22
dalek website: benabik++ | GSoC 11: Breaking Radio Silence 20:24
website: www.parrot.org/content/gsoc-11-brea...io-silence
20:32 Eclesia left 21:33 rdesfo joined 21:44 Psyche^ joined 22:01 kid51 joined 22:09 kid51 joined
kid51 ~~ 22:25
cotto_work hio kid51 22:34
Felipe aloha devs
kid51 cotto_work: Are you going to YAPC::EU? 22:41
cotto_work kid51: yup 22:44
kid51 aloha, going to YAPC::EU?
aloha kid51: Sorry, I don't know.
kid51 aloha: going to YAPC is cotto
aloha kid51: Okay.
kid51 cotto_work: Are you going to YAPC::EU?
aloha, going to YAPC::EU?
aloha kid51: I give up.
kid51 aloha, going to YAPC::EU is cotto
aloha kid51: Okay.
kid51 aloha, going to YAPC::EU?
aloha kid51: going to YAPC::EU is cotto
kid51 Anybody else?
aloha, going to YAPC::EU is also jnthn 22:46
aloha kid51: Okay.
kid51 aloha, going to YAPC::EU is also szabgab
aloha kid51: Okay.
kid51 aloha, going to YAPC::EU is also Maddingue 22:47
aloha kid51: Okay.
kid51 aloha, going to YAPC::EU is also TimToady
aloha kid51: Okay.
kid51 aloha, going to YAPC::EU is also rurban 22:48
aloha kid51: Okay.
kid51 aloha, going to YAPC::EU is also pmichaud
aloha kid51: Okay.
kid51 aloha, going to YAPC::EU?
aloha kid51: going to YAPC::EU is cotto or jnthn or szabgab or Maddingue or TimToady or rurban or pmichaud
kid51 [names taken from yapceurope.lv/ye2011/schedule/] 22:49
aloha, YAPC::EU::2011 22:50
aloha, YAPC::EU::2011?
aloha kid51: YAPC::EU::2011 is yapceurope.lv/ye2011/
kid51 nice bot
22:53 rdesfo joined
nopaste "kid51" at 192.168.1.3 pasted "Pace of GSOC blogging on parrot.org has slackened" (6 lines) at nopaste.snit.ch/68743 22:55
23:02 PacoLinux_ joined 23:10 darbelo joined 23:13 whiteknight joined
whiteknight good evening, #parrot 23:16
soh_cah_toa howdy
23:18 PacoLinux_ joined
whiteknight soh_cah_toa: okay, so let me get my mind out of the clouds for a little bit. What do you need me to do to help you reach the end of GSoC? 23:20
dalek rrot: c70c89c | jkeenan++ | lib/Parrot/Pmc2c/ (2 files):
Merge branch 'tt2167/nstore'
rrot: 8c5cac5 | jkeenan++ | MANIFEST:
Add two image files to MANIFEST.
benabik o/ whiteknight 23:21
soh_cah_toa whiteknight: well, at the moment, i'm having some problems w/ my tests. i keep getting the '(hbdb) ' prompt in the output i'm comparing and i can't figure out to get rid of it
whiteknight soh_cah_toa: okay 23:22
the soh_cah_toa/hbdb branch? Which tests particularly?
benabik: August 15th is a soft deadline, I think 23:23
soh_cah_toa s/_/-
whiteknight benabik: and you've been writing docs and tests all along, haven't you?
soh_cah_toa t/tools/hbdb/cmds.t
whiteknight soh_cah_toa: roger. On it. Over
soh_cah_toa 10-4
aloha 6
benabik whiteknight: Basically, yes. Should probably write a guide to using it.
soh_cah_toa ha! thanks aloha
whiteknight benabik: guide++ 23:24
benabik++
kid51 Write a guide with steps 1-2-3... so specific that even kid51 can understand it :-)
like docs/project/release_manager_guide.pod
hbdb for dummies 23:25
benabik My guide will probably go: "To avoid PIR, do this. These things are known not to work. CAUTION: Minefield ahead." 23:26
whiteknight just learned that gnome terminal has tabs 23:27
whiteknight has become incredibly happy about that
soh_cah_toa: okay, I see the failures 23:28
soh_cah_toa ok
whiteknight I wish these tests weren't written in perl 23:33
my incompetence is more obvious in perl 23:34
soh_cah_toa ah...
whiteknight soh_cah_toa: the readline_interactive method of the FileHandle PMC prints the prompt string to stdout 23:36
"(hbdb)"
so the prompt is ending up on stdout and being picked up by the pipe into perl
soh_cah_toa yes
plus the command entered 23:37
whiteknight right
soh_cah_toa i tried filtering it w/ a regex in _select() but it doesn't seem to help
23:39 dafrito joined
kid51 soh_cah_toa: I like lib/Parrot/Test/HBDB.pm ... 23:40
dalek rrot/soh-cah-toa/hbdb: cb91e5e | Whiteknight++ | t/tools/hbdb/cmds.t:
Fix one test, it was an issue with the expected value regex
kid51 ... but I don't so much like t/tools/hbdb/cmds.t
soh_cah_toa i know :(
kid51 Meaning, I like your perl in .pm, but not in .t 23:41
I don't see why you are making these calls to subroutines that wrap tests.
Why not call the tests directly?
whiteknight kid51: does help to keep variables neatly scoped 23:42
soh_cah_toa it limits scope and increases encapsulation. also, i figured that was convention b/c i saw it in some other test file
kid51 But it's overkill for that.
You just need blocks
Lemme show you.
whiteknight nooo!!!! 23:43
Felipe :P 23:44
nopaste "kid51" at 192.168.1.3 pasted "No need for subroutines which you only call once, when you can simply use blocks." (35 lines) at nopaste.snit.ch/68764 23:45
kid51 soh_cah_toa: Which "other test file" did you see that in? (I'll go refactor it right away! :-) ) 23:46
soh_cah_toa t/library/osutils.t 23:47
dalek kudo/nom: af72bd3 | jonathan++ | src/Perl6/ (3 files):
Start to improve and clean up package and type installation to fix some bugs and make various things work that didn't before.
23:49
kudo/nom: 1701656 | jonathan++ | src/Perl6/Actions.pm:
Simplify installation part of constant action method to re-use more SymbolTable code.
kudo/nom: 53133a7 | jonathan++ | src/Perl6/SymbolTable.pm:
Simplify install_package_symbol; it now need only concern itself with direct, not nested, installation.
kudo/nom: 6544695 | jonathan++ | src/Perl6/SymbolTable.pm:
Couple of symbol handling fixes.
kudo/nom: bf856cd | jonathan++ | src/core/IO/Socket (2 files):
Move Socket to be IO::Socket and INET to be IO::Socket::INET.
kudo/nom: 918e8c6 | jonathan++ | src/Perl6/ (2 files):
Get need in place. Sketch out import, though export is a bit too incomplete for it to really work out yet.
kudo/nom: 8863d55 | jonathan++ | t/spectest.data:
Run S12-subset/subtypes.t
Felipe benign flood
:)
soh_cah_toa will brb
dalek rrot/soh-cah-toa/hbdb: a59ebac | Whiteknight++ | lib/Parrot/Test/HBDB.pm:
Partial fix. Only read one line per loop iteration. The < > operator reads a new line each time
23:50
kid51 msg soh_cah_toa The subroutines in t/library/osutils.t (like those in many other test files) are PIR subroutines, not Perl 5 subroutines. So they're not a good model for your file. 23:52
aloha OK. I'll deliver the message.