Parrot 3.2.0 released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Parrot is accepted for GSoC 2011! Student application deadline is Apr 8 | Goals: Get more GSoC ideas on wiki; close tickets; stable 3.2 release; assess status of roadmap goals for 3/15 meeting.
Set by moderator on 18 March 2011.
00:09 mj41 left 00:12 lucian left 00:49 lucian joined 01:17 Coke joined 01:38 soh_cah_toa joined
soh_cah_toa hey guys, back again. been looking at upcoming events with parrot and saw something about a parrotsketch meeting. what is parrotsketch? 01:40
whiteknight parrotsketch is a weekly meeting we have in the #parrotsketch channel 01:44
it's like a design and planning meeting
you're welcome to come and watch. If you get involved with hacking, you can post reports about what you're working on, and get involved in the discussions 01:45
soh_cah_toa oh okay. yeah, i think i'll stop by. 01:48
whiteknight awesome 01:49
soh_cah_toa i thought the "sketch" meant it was for the graphics and art side of parrot so i wasn't sure if it was really something for me
atrodo soh_cah_toa: It's a reference to the monty python parrot sketch 01:51
dalek rrot: c30d88c | bacek++ | / (2 files):
Forcefully inline Pointer_Array manipulation functions.

It gives another 2% of speed improvements on building Rakudo's core.pm.
01:52
rrot: 85e4ffe | bacek++ | src/pmc/packfiledirectory.pmc:
Create PackfileBytecodeSegment instead of RawSegment when we actually unpack bytecode.
rrot: b600dfe | bacek++ | src/pmc/opcode.pmc:
Add OpCode.get_number to simplify usage from nqp.
soh_cah_toa oh alright. sorry, never really got into the monty python thing. i know, i know... :)
ttbot Parrot c30d88cb i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/56543 01:54
Parrot c30d88cb i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/56553
dalek rrot: 2b896f5 | bacek++ | include/parrot/pointer_array.h:
Fix debug builds.
01:56
soh_cah_toa so let me see if i understand this correctly...the rakudo compiler is written in nqp which itself is a subset of perl 6? 01:57
ttbot Parrot b600dfe5 i386-freebsd-64int make error tt.taptinder.org/cmdinfo/56606
01:59 kid51 joined
kid51 w/ soh_cah_toa 01:59
soh_cah_toa why did parrot need nqp in the first place, though? what does nqp have that perl 5 doesn't? 02:01
i mean, if nqp is "almost-perl6", then why not further develop that?
cotto it's less painful to use a subset of Perl 6 that compiles down to PIR to implement much of Rakudo than to use PIR directly 02:04
soh_cah_toa intersting...so you developed a language for the sole purpose of developing another language 02:08
cotto mostly pmichaud
whiteknight nqp is specifically designed to be a small language with a minimal runtime 02:09
it's perfect for writing the guts of a compiler
ttbot Parrot 2b896f55 MSWin32-x86-multi-thread make error tt.taptinder.org/cmdinfo/56666 02:10
cotto pmichaud.com/sandbox/nqp.txt describes its future, if you're interested 02:11
dalek sella/harness_refactor: 2228daf | Whiteknight++ | s (5 files):
merge TestCollection and Results into a single TestRun model type. Refactor the way we keep track of tests by status
02:15
sella/harness_refactor: 1e84168 | Whiteknight++ | / (3 files):
fix error reporting so we get actual lists of failed files again
sella/harness_refactor: 2b6c89b | Whiteknight++ | src/tap_harness/ (3 files):
rename/remove files to reflect reality
sella/harness_refactor: a14b95d | Whiteknight++ | s (3 files):
remove a lot of unnecessary accessor methods.
sella/harness_refactor: f1b0328 | Whiteknight++ | src/tap_harness/ (2 files):
small cleanups and docs
soh_cah_toa since nqp compiles into pir, i would imagine that compiling perl 6 code would be much very effecient
02:16 whiteknight left
cotto there are several reasons why it's more expensive than it ought to be 02:16
soh_cah_toa really? i would've thought the opposite 02:17
02:17 woosley joined
nopaste "kid51" at 192.168.1.3 pasted "t/pmc/packfilerawsegment.t: new failures: linux/i386" (20 lines) at nopaste.snit.ch/38231 02:21
kid51 That FAIL emerged somewhere after f83909e 02:23
ttbot Parrot 2b896f55 MSWin32-x86-multi-thread make error tt.taptinder.org/cmdinfo/56722 02:32
02:39 kurahaupo left 02:40 kurahaupo joined 02:43 kid51 left 02:45 ShaneC joined
dalek rrot: 5f1b1a4 | mikehh++ | include/parrot/pointer_array.h:
fix codetest failures - pod syntax, c_function docs and add ASSERT_ARGS
02:54
ttbot Parrot 5f1b1a40 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/56763 02:56
Parrot 5f1b1a40 i386-freebsd-64int make error tt.taptinder.org/cmdinfo/56776 02:57
03:03 lucian left 03:06 soh_cah_toa left
dalek rrot: 323edb2 | bacek++ | src/pmc/packfilerawsegment.pmc:
Add more get_*_keyed_* accessors to PackfileRawSegment.
03:12
rrot: 20e18aa | bacek++ | src/pmc/packfilebytecodesegment.pmc:
Inherit PackfileBytecodeSegment from RawSegment.
ttbot Parrot 5f1b1a40 MSWin32-x86-multi-thread make error tt.taptinder.org/cmdinfo/56791
Parrot 20e18aab i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/56817 03:13
Parrot 20e18aab i386-freebsd-64int make error tt.taptinder.org/cmdinfo/56834 03:14
Parrot 323edb2f MSWin32-x86-multi-thread make error tt.taptinder.org/cmdinfo/56837 03:15
Parrot 323edb2f darwin-thread-multi-2level make error tt.taptinder.org/cmdinfo/56827
dalek rrot: c35de5d | mikehh++ | include/parrot/pointer_array.h:
add define for ASSERT_ARGS
03:19
cotto mikehh, that should be handled by headerizer 03:24
mikehh cotto: tried that 03:28
problem is that it seems to be in the header file rather than the .c file - maybe? 03:29
or that it is defined before the Headerizer info in the file? 03:34
ttbot Parrot c35de5dd MSWin32-x86-multi-thread make error tt.taptinder.org/cmdinfo/56936
Parrot c35de5dd MSWin32-x86-multi-thread make error tt.taptinder.org/cmdinfo/56950 03:40
dalek rrot: 3964642 | bacek++ | include/parrot/pointer_array.h:
Remove "inline" keyword. Looks like VisualStudio can't grok it.
03:43
mikehh bacek: yeah saw that - C:\\usr\\TapTinder-tt1\\client-data\\Parrot-default-temp\\include\\parrot/pointer_array.h(110) : error C2054: expected '(' to follow 'inline' 03:44
bacek mikehh, yes. VS isn't smartest kid on the block. 03:45
mikehh bacek: :-}
cotto bacek, is there any reason to have functions in header files instead of src/pointer_array.c? 03:46
bacek cotto, for inlining purpose.
they will be static in each .c file. And will be inlined by any reasonable compiler. 03:47
mikehh which MS don't seem to like anyway
bacek 2% of performance improvements on "code.pm test"
tewk MS VS uses __inline 03:53
cotto don't we have PARROT_INLINE dtrt/ 03:54
?
tewk Most projects #define INLINE to inline or __inline depending on platorm.
bacek looks like we have PARROT_INLINE 03:56
dalek rrot: f8a423b | bacek++ | include/parrot/pointer_array.h:
Use PARROT_INLINE. tewk++ for notice.
03:57
cotto not heavily used though
bacek win32 build should be fine again.
cotto, if you are bored. Extending PackfileOpMap to support lookup ops-by-id will be really helpful. At least for "crazy jit prototype" 03:58
afk # rl
cotto I thought it did that already. 03:59
guess not 04:00
bacek it was other way around 04:01
pushing Op into OpMap with auto-generated mapping
I need set_pmc_keyed_int to lookup Op from loaded PBC.
really afk now
dalek rrot: 58c4c87 | mikehh++ | include/parrot/pointer_array.h:
fix codetest failures - c function docs
04:16
04:29 jsut_ joined 04:34 jsut left 04:55 woosley left 06:40 Eduardow joined 06:59 theory left 07:29 jimmy joined 07:30 jimmy left 07:47 alin joined
dalek rrot: 0c4badb | bacek++ | t/pmc/packfileopmap.t:
Update test to explicitly skip test when no math_ops lib available.
08:24
rrot: 0720b34 | bacek++ | / (2 files):
Implement lookup of ops by mapped id in PackfileOpMap
09:04 mj41 joined
dalek umage: e661a25 | fperrad++ | src/lib/Plumage/NQPUtil.nqp:
fix after github.com/parrot/parrot/commit/80b...9ca1dda56f
09:10
09:16 fperrad joined 09:21 mj41_nb joined 09:25 mj41 left, alin left 09:26 alin joined 09:42 bacek left 09:49 alin left 09:52 bacek joined 09:54 alin joined 09:57 mj41_nb left 09:58 mj41 joined 10:13 contingencyplan joined 10:20 janus` is now known as janus 10:34 contingencyplan left 10:50 whiteknight joined
whiteknight good morning, #parrot 10:54
10:54 JimmyZ joined
dalek rrot: f7e97d3 | bacek++ | src/pmc/packfileopmap.pmc:
Add get_pmc_keyed_int as synonym for .get_string_keyed_int to simplify usage from nqp.
10:57
rrot: 6bd28a1 | bacek++ | src/pmc/packfilebytecodesegment.pmc:
Partially recreate BytecodeSegment PMC from PackFile_ByteCode.

This PMC is asking for refactor to expose PackFile_ByteCode in more sane way.
11:10 JimmyZ left
dalek rrot/jit_prototype: ac9b1ac | bacek++ | / (8 files):
Merge branch 'master' into jit_prototype
11:11
rrot/jit_prototype: eaa106e | bacek++ | / (5 files):
Merge branch 'master' into jit_prototype
11:12 giwi joined
dalek rrot/jit_prototype: 25d17b9 | bacek++ | t/jit/ (6 files):
Add test data
11:18
rrot/jit_prototype: 1e3d95b | bacek++ | t/jit/test.t:
Generate PBC on fly.
rrot/jit_prototype: 4b5ecec | bacek++ | t/jit/jitted.ops:
Small subset of 'jitted' ops
11:44 woosley joined 12:26 samwho joined 12:27 samwho left 12:35 kid51 joined 12:36 kid51 left 12:51 lucian joined
dalek rrot/jit_prototype: 8176fb7 | bacek++ | compilers/opsc/src/Ops/Op.pm:
Add Ops::Op.normalized_args accessor.
12:59
rrot/jit_prototype: 9a1c739 | bacek++ | compilers/opsc/src/Ops/Trans/C.pm:
Stylish rewrite bit of code-generation.
rrot/jit_prototype: 938d5d7 | bacek++ | compilers/opsc/src/Ops/Trans/C.pm:
Remove unused defines.
rrot/jit_prototype: 82fba92 | bacek++ | t/jit/test.t:
Add more debug output to "test".
rrot/jit_prototype: 854e4ac | bacek++ | compilers/opsc/src/Ops/Op.pm:
Update docs.
rrot/jit_prototype: 1a8551a | bacek++ | compilers/opsc/src/Ops/ (2 files):
Pass whole %context into Op.source to simplify passing additional stuff for Op::Trans
rrot/jit_prototype: caa51cd | bacek++ | compilers/opsc/src/Ops/ (3 files):
Pass %context to Trans from Op
13:07 cogno joined
dalek rrot/jit_prototype: 60c8c62 | bacek++ | compilers/opsc/ (4 files):
Add stub for Ops::Trans::JIT
13:09
13:11 mj41 left 13:13 giwi left 13:20 zby_home joined 13:21 giwi joined 13:23 cogno left, cogno joined 13:35 cogno left
dalek rrot/jit_prototype: ec9b285 | bacek++ | src/pmc/packfile (2 files):
Merge branch 'master' into jit_prototype
13:50
rrot/jit_prototype: f020810 | bacek++ | compilers/opsc/src/Ops/Trans/JIT.pm:
Add few register accessors.
rrot/jit_prototype: 88d4cd3 | bacek++ | t/jit/test.t:
Kind of prototype of generated op bodies within current bytecode
rrot/jit_prototype: 920516c | bacek++ | t/jit/data/03.pir:
Extend test
14:11 jsut joined 14:16 jsut_ left 14:25 Eduardow left
dalek rrot/jit_prototype: a44bfe5 | bacek++ | compilers/opsc/src/Ops/Op.pm:
Don't override ctx<level> if provided.
14:32
rrot/jit_prototype: a31e86f | bacek++ | / (2 files):
Pregenerate 'BasicBlock' for each opcode and replace 'goto offset' with 'goto label' to reflect future semantic of jitted Sub
14:50 ambs joined 15:03 woosley left 15:18 alin left 15:34 alin joined
dalek sella/harness_refactor: 3186125 | Whiteknight++ | s (2 files):
add missing file and update setup.winxed
15:38
sella/harness_refactor: 0c4d1ed | Whiteknight++ | s (6 files):
move a file back to where it belongs. fix the build. Fix some bugs. Cleanup Loader
sella/harness_refactor: 0670323 | Whiteknight++ | / (8 files):
TestRun objects now have their own factory, and are created separately from the harness. View keeps track of all runs. Update the harness to show what the new logic looks like
15:39 Eduardow joined 15:41 theory joined
dalek rrot: ee2785c | mikehh++ | src/pmc/packfilebytecodesegment.pmc:
fix codetest failure - line length
15:47
16:02 plobsing left, plobsing joined 16:05 Eduardow left
dukeleto #~~ 16:07
16:12 Hackbinary joined 16:13 giwi left 16:15 giwi joined 16:25 Eduardow joined
dukeleto Eduardow: howdy 16:27
msg bacek some of the code on your blog gets obscured by the column on the right side 16:30
aloha OK. I'll deliver the message.
16:43 alin left
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#12712) fulltest) at 3_2_0-32-gee2785c - Ubuntu 10.10 i386 (g++-4.5) 16:46
16:50 rurban joined
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#12716) fulltest) at 3_2_0-32-gee2785c - Ubuntu 10.10 i386 (g++-4.5 --optimize --gc-gms) 17:33
18:02 Andy_ joined
dalek nxed: r871 | NotFound++ | trunk/winxedst1.winxed:
operator -= used with string is a syntax error, not an internal error
18:26
18:34 ShaneC left
mikehh rakudo (25e5bd0) - builds on parrot (3_2_0-32-gee2785c) - make test, make spectest_smolder[(#12721), roast (15c1b74)] PASS - Ubuntu 10.10 i386 (g++-4.5 --optimize --gc-gms) 18:34
27,631 ok, 0 failed, 606 todo, 1,799 skipped and 0 unexpectedly succeeded
18:42 Patterner left, ShaneC joined
mikehh winxed (r871) - make all/test/test1/test2 all ok - on parrot (3_2_0-32-gee2785c) - Ubuntu 10.10 i386 (g++-4.5 --optimize --gc-gms) 18:45
18:47 Psyche^ joined, Psyche^ is now known as Patterner
dukeleto i wonder how many slots parrot should ask for in GSoC... 19:22
19:41 contingencyplan joined
Tene all the slots! 19:50
mikehh Tene: :-} 19:51
dukeleto I ACCIDENTALLY .... ALL THE SLOTS! 19:57
dukeleto finished parrot's org app for gsoc 2011 19:58
we need to setup the feed URL still
Coke skips review. 20:24
whiteknight dukeleto: I think we want at least 6 slots 20:36
that seems like the kind of number we fill most years
although we have heard from several prospective students already. We may run hotter this year 20:37
lucian is thinking of applying to other orgs as well for good measure
whiteknight lucian: why, you worried we won't accept you? 20:39
lucian whiteknight: yeah :)
whiteknight lucian: if we liked you any more, we'd be sending flowers and chocolates
lucian heh
whiteknight lucian: and if you can deliver all or most of a working python compiler, we will easily cross that threshold 20:40
PREPARE TO BE CREEPED OUT
lucian NOOOOOOOO! www.youtube.com/watch?v=S2N8eTx8LbE 20:41
20:42 Andy_ left
lucian whiteknight: minecraft's awesome anyway, even with the creepers 20:46
cotto ~~ 20:50
20:50 lucian_ joined
lucian_ hates his ISP 20:50
20:52 kid51 joined
whiteknight I haven't played the "real" minecraft. I only ever played the free alpha 20:52
it was a cool time
cotto I feel like I'd get bored after a while and use (or write, then use) an API to generate stuff for me. 20:53
lucian_ whiteknight: i bought the beta, i felt it was worth it
cotto: that's part of the fun. you can actually implement logic gates with redstone 20:54
cotto lucian_, sure. I've seen the cpu
20:54 lucian left
lucian_ and there are a lot of custom maps "scripted" with redstone like that 20:54
20:54 lucian_ is now known as lucian
cotto I feel like I'm not a full nerd until I've implemented a CPU in something that wasn't designed to support implementing a CPU. 20:55
lucian cotto: custard!
cotto marble tracks would be pretty amazing
lucian also, i find these guys www.youtube.com/show?p=M-_uPjfjVzc&s=1 amusing 20:56
cotto I'm not sure about a custard-based cpu. It'd be delicious, but that's not necessarily a desirable characteristic of a processor. 20:57
dalek tracwiki: v78 | cotto++ | ParrotQuotes
tracwiki: our only problem is that we love our students too much
tracwiki: trac.parrot.org/parrot/wiki/ParrotQ...ction=diff
lucian :)) 20:58
tadzik (: 20:59
cotto (:)
cotto gets stuck in an infinite loop trying to parse that 21:00
lucian cotto: gotcha! you could flush stdout if that were true 21:02
*couldn't
cotto I perform async i/o
lucian approves 21:03
cotto melange is getting a new ui 21:04
tadzik nice
like cpan.org
lucian hates melange a little
cotto me too, but it does a pretty good job given its developers' lack of resources 21:06
cotto got schooled about how it's developed during gci
21:14 alin joined 21:18 perlite_ joined
kid51 Is there any branch that needs a smolder right now? 21:20
21:20 robertpeters joined 21:21 perlite left, perlite_ is now known as perlite 21:22 robertpeters is now known as robertpeters_WLS
lucian kid51: it's old photoshopcontest.com/images/fullsiz...730610.jpg 21:22
cotto *groan* 21:25
lucian it wasn't very funny at all, i know
i just always think of very literal thing when "smolder" is mentioned 21:26
21:27 zby_home left
lucian "smouldering parrot" is a very powerful and disturbing mental image 21:27
kid51 lucian: While you were joking, I just got a report done on bacek's opsc_llvm branch 21:29
21:29 alin left
kid51 I look forward to smoke-testing some of your code ... someday ;-) 21:29
lucian kid51: i'll make sure to insulate accordingly 21:30
kid51 msg bacek opsc_llvm branch PASS on linux/i386 at commit 1d4307c913215aeeea43ee2d8a248261bccf77f5
aloha OK. I'll deliver the message.
lucian kid51: btw, you should have plenty opportunity if i get into gsoc this year 21:31
kid51 I look forward to that ... but you needn't wait for that to start!
lucian kid51: yes i do, i don't really have time right now :) 21:32
bacek Good morning, humans 21:33
kid51, which version of llvm did you use?
(for opsc_llvm branch testing)
cotto good morning, bacek 21:34
kid51 bacek: Same as previously reported (but I'll have to wait for the next branch to finish smoking to look that up)
Not the most recent, in any event
bacek kid51, ok, thanks
cotto, aloha slacker 21:35
cotto bacek, do you have any thoughts on the M0 concept of function handles?
bacek cotto, nope. I was pretty much focused on other things.
cotto, actually... If LLVM JIT will fly we can almost kill Lorito. 21:36
cotto basically it's an opaque thingy whose internals depend on the M0 implementation, but that stores the information needed to make (and return from) an ffi call.
orly?
bacek afk # breakfast
lucian bacek: you mean keep the 1k parrot ops and compile them with clang? 21:37
21:38 alin joined
bacek lucian, s/clang/opsc/ 21:44
lucian bacek: right, i forgot ops are written in a weird language
bacek lucian, which we can already parse (almost fully) 21:45
21:45 fperrad left
kid51 msg whiteknight smolder.parrot.org/app/projects/rep...ils/12735; whiteknight/imcc_compreg_pmc branch has failures in 3 tests; linux/i386 HEAD 21:46
aloha OK. I'll deliver the message.
whiteknight kid51: yeah, we're still working on those
kid51 k
21:46 he left
bacek cotto, yes. Lorito consists (mostly) of two parts: "semantically parse ops/pmcs" and "emit jittable M0 from parsed ops/pmcs". 21:48
kid51 bacek: $ /usr/bin/llvm-config --version says: 2.2
bacek kid51, it's strange. Do you have llvm-2.7 installed? 21:49
kid51 No. I just took whatever debian had available.
21:49 soh_cah_toa joined
kid51 IIRC, a couple of weeks back I was NOT passing with that version. 21:49
so this is an improvement.
21:49 he joined
bacek cotto, we now parse ops. If we replace M0 with LLVM than we done - Parrot is JITtable. 21:50
kid51, looks like a bug in LLVM bindings. I have explicit loading of libLLVM-2.7.so inside code.
soh_cah_toa whiteknight: so i've been thinking about the gsoc debugger project and i'm curious: would i have to use any assembly?
bacek afk # $dayjob 21:51
whiteknight soh_cah_toa: what do you mean, assembly language?
lucian bacek: i'm very curious of the results you get with llvm
it sounds a bit like a pasting jit
cotto bacek, jittable is one thing, but we also want to avoid the c/pir boundary
soh_cah_toa yeah. i mean, how else would i be able to read the registers and stuff
or would the debugger look at parrot's virtual registers and memory? 21:52
bacek cotto, M0 will not help with it. 21:53
cotto Not at first, but it will once we start writing core code in an M0 overlay langauge. 21:54
21:54 alin left
cotto *language 21:54
soh_cah_toa for instance, if the programmer using the debugger wanted to see the current state of the internal registers, would the values come from eax or $N1 for example? 21:56
21:56 alin joined
whiteknight soh_cah_toa: only Parrot's virtual registers. There would be no assembly involved 21:57
soh_cah_toa ok, i thought so
whiteknight soh_cah_toa: the lowest you would need to do is C. Depending on how you planned the project, you could do a little C and mostly higher-level stuff, or you could do mostly C and only a little higher-level stuf
soh_cah_toa yeah, i figured mostly c 21:58
lucian i'd guess gdb/valgrind can deal with C-level debugging
soh_cah_toa at what stage would the debugger be examing code? say the programmer wanted to debug a python program, would the debugger be examing the python code or the pir that it compiles to? 21:59
cotto they're pretty good
soh_cah_toa lucian: yeah, i was planning on looking at the source code for gdb soon 22:00
lucian soh_cah_toa: again, i'd say there already are tools for debugging python code
soh_cah_toa: so perhaps pir/pbc-level debugging
soh_cah_toa ok
lucian don't trust what i say too much, though
kid51 msg bacek If you want '99-example.t' in opsc_llvm branch to get tested as part of 'make test', don't put it in subdirectory t/library/llvm/. It won't get tested there. Just put it in t/library/. 22:01
aloha OK. I'll deliver the message.
soh_cah_toa haha. well, i'll take all the help and advice i can get
this is my first open source project so i'm inclined to listen to any of your guys advice 22:02
i've worked on my own for several years but this would be my first time working with a group of developers as a team 22:03
22:04 alin left
kid51 soh_cah_toa: Speaking about "working with a group of developers as a team" ... In the coming month, we will be forming teams to work on roadmap goals for our July supported release. 22:05
soh_cah_toa: so, when you start seeing discussion about that here or in parrot-dev list, put your name forward! 22:06
soh_cah_toa of course
kid51 Those teams will be more tightly focused than "the Parrot project as a whole" and will enable you to work with our leading developers. 22:07
soh_cah_toa is that seperate from gsoc or are the gsoc projects a part of the roadmap for the new release?
kid51 It's distinct from GSOC.
We have begun (slowly) to make teams working on roadmap goals part of our standard operating procedure. 22:08
soh_cah_toa okay
so the new release would be done before gsoc work starts then?
kid51 But we really want GSOC projects to result in code that we can merge into master by the end of the summer.
soh_cah_toa: Actually, we release every month, on the 3rd Tuesday. 22:09
We have "supported releases" in Jan Apr Jul Oct -- quarterly.
soh_cah_toa marks calendar
kid51 Next supported release is 3.3, Tues Apr 19.
We have quarterly online Parrot Developer Summits, the second weekend after each quarterly supported release 22:10
22:10 ambs left
kid51 Hence, next PDS is weekend of Apr 30 - May 1. 22:10
soh_cah_toa that would be great. it would give me more time and experience with parrot development before gsoc
kid51 At that PDS, we will set Roadmap Goals for 3.6 supported release in mid-July 22:11
... and form teams to implement those goals.
soh_cah_toa okay. is the pds in this irc channel?
kid51 So, hopefully, the Roadmap Goals we set for 3.6 will, at least, be consistent with GSOC projects.
Our meetings are held in #parrotsketch.
Weekly meeting Tuesday at 2030 UTC 22:12
soh_cah_toa oh okay. yeah, i saw that on the calendar and asked about it last night
kid51 Quarterly PDS is held on a weekend. Exact day/time rotates to accommodate people in different parts of globe
dalek rrot/opsc_llvm: ff6ba19 | (luben karavelov)++ | t/library/llvm/03-constant.t:
more test for generating constants
rrot/opsc_llvm: aa6f121 | (luben karavelov)++ | / (2 files):
Flesh out LLVM::Constant
whiteknight soh_cah_toa: the best bet is to work at the PBC level. We have annotation metadata in our PBC that typically includes file name and line number information for the HLL
soh_cah_toa: so if you build a debugger that works at the PBC level, it can be used transparently with Perl6 code, Python code, Ruby code, etc 22:13
soh_cah_toa alright then 22:16
kid51 afk 22:17
soh_cah_toa are there any other resource besides docs/parrotbyte.pod where i can learn more about parrot bytecode? google mentions something about pdd 13 but i get a 404 error
lucian whiteknight: with the caveat that it's likely to not be really nice for either of them
whiteknight lucian: I see no reason why not
lucian s/it's likely not to/it's not likely/
whiteknight lucian: especially if the project was a debugger framework, which could be subclassed to provide per-HLL behaviors 22:18
lucian whiteknight: debuggers often know language-specific things that aren't necessarily mapped onto pbc
whiteknight: then yeah, possible
soh_cah_toa true but wouldn't it be best to implent what is common to all parrot supported languages first (pbc) and then worry about language-specific constructs? 22:19
whiteknight right, that's my idea
soh_cah_toa okay
as i've been reading the parrot documentation, i see that a lot of it realies heavily on pmc's. from what i've been able to gather, are pmc's kind of like parrot's implementation of structures/objects? 22:22
cotto soh_cah_toa, something like that 22:24
they're the abstract data types that get to do most of the interesting work
soh_cah_toa alright, that's what it thought 22:26
at what level do they exist? in pdd17 it says that they're delcared with the "pmclass" keyword. is this pir, pasm, or pbc? 22:30
cotto soh_cah_toa, there are C pmcs and pir-level pmcs
whiteknight soh_cah_toa: take a look at the .pmc files in src/pmc
they're defined in C, but the C is heavily preprocessed
22:31 PacoLinux left
whiteknight soh_cah_toa: build Parrot from source. Then look at, for instance, src/pmc/string.pmc and the generated src/pmc/string.c 22:31
soh_cah_toa yeah, i compiled parrot a few days ago. so would a string pmc for perl be different or the same as a string pmc for python? 22:33
whiteknight soh_cah_toa: depends. We offer a basic String type, but HLLs can subclass that if they want custom behavior 22:34
or, they could replace it entirely
Parrot has a concept of "HLL Mappings". You set up a map, and when you are in your HLL, your mapped type is always used instead of the native types
soh_cah_toa alright, i think i'm starting to understand this a little better 22:35
whiteknight so if you're running partcl, Parrot will always use TclString instead of String
soh_cah_toa okay
so a string in a hll will actually be an abstract datatype (pmc) at a lower level (pir). interesting... 22:37
whiteknight well, there are two different things. There are STRING* structures, which are low-level strings, and then there are String PMCs, which contain a STRING and have methods and stuff 22:38
so one is a low-level type, the other is an object wrapper
STRING * is not subclassable. String PMC is 22:39
soh_cah_toa yeah
i like that idea. it adds more functionality and flexibility to regular datatypes 22:40
whiteknight PMCs are nice because they all have a common interface called the VTABLE 22:41
every single PMC type, no matter what, implements the same interface
so you can tell any PMC "give me a STRING of you", or "give me an integer value from you" 22:42
or "Tell me what type you are"
even HLL mapped versions, user-defined Objects, etc
soh_cah_toa right
22:43 lucian left
soh_cah_toa VTABLE is just like a dispatch table, right? an array of function pointers called depending on what the programmer is requested of an object 22:44
whiteknight exactly
take a look at src/vtable.tbl for a list of all vtables in the system
The list is needlessly bloated, as far as I am concerned, but that's what we have
that file is parsed to generate code in src/vtable.c, include/parrot/vtable.h, etc 22:45
soh_cah_toa okay
man, i am loving all this documentation. i was worried that i wouldn't be able to learn the internals of parrot before gsoc but just within one weekend i think i've learned a lot 22:46
whiteknight yeah, it's surprisingly easy to learn the fundamentals
soh_cah_toa i also like how everything's in pod format 22:47
whiteknight that's a holdover from our perl roots 22:48
soh_cah_toa let's me use pod2html so that i can print everything out and read anywhere i need it
whiteknight I think we have most of it online 22:50
docs.parrot.org
yes 22:51
soh_cah_toa yeah, most of it's the same
cotto updating docs.parrot.org is part of the release process
soh_cah_toa that's good 22:52
you guys are very thorough. i like it
cotto I'm glad you're finding it easy to get started. 22:53
whiteknight yes, that is quite a good thing
cotto You'll undoubtedly find dark undocumented corners as you progress. We have a lot of them.
soh_cah_toa that's inevitable though 22:54
bacek_at_work ~~ 22:57
cotto bacek_at_work, ~~
bacek_at_work cotto, aloha 23:00
23:06 rurban_ joined 23:08 rurban left, rurban_ is now known as rurban
dalek rrot/m0-spec: 50d13ca | cotto++ | docs/pdds/draft/pdd32_m0.pod:
change interface for function handles
23:09
rrot/m0-spec: fdcc556 | cotto++ | docs/pdds/draft/pdd32_m0.pod:
decide how types will work, expand the example
rrot/m0-spec: 8f02e93 | cotto++ | docs/pdds/draft/pdd32_m0.pod:
don't assume that thunks are the only mechanism for ffi calls
rrot/m0-spec: c3c1e4e | cotto++ | docs/pdds/draft/pdd32_m0.pod:
finish initial proposal for ffi
rrot/opsc_llvm: 1c76a45 | bacek++ | runtime/parrot/library/LLVM/Constant.pm:
Use bit of static typing in LLVM bindings.
23:16
soh_cah_toa whiteknight: you mentioned a few days ago that the current debugger is very buggy. is there a way i can find a list of bug reports?
that way i can have some sort of starting point 23:17
Coke bug reports: trac.parrot.org/ -> View Tickets
but the debugger is, IME, not reported against, because no one expects it to work.
soh_cah_toa wow. it's that bad, huh? 23:18
23:20 kid51 left 23:21 petdance joined
cotto heh. github's yelling at me about pod errors 23:23
I love the future.
dalek rrot/m0-spec: 90d40d3 | cotto++ | docs/pdds/draft/pdd32_m0.pod:
fix pod
23:25
whiteknight soh_cah_toa: yeah, it just completely doesn't work. 23:45
soh_cah_toa i'm going through the source code now. seeing what i can do with it 23:46
whiteknight what the current debugger does now, if I am remembering correctly, is sets up a second debugger interpreter object, then relies on a series of built-in events to do debuggery things 23:54
the problem is that many of those built-in events have since disappeared
a
As I mentioned the other day, the best way forward is with Parrot-Instrument. That adds in all the features you would need 23:55
the problem is making Parrot-Instrument work, which it does't quite