Parrot 1.3.0 "Andean Swift" released | parrot.org | Parrot VM Workshop, Pittsburgh, June 20-21
Set by moderator on 16 June 2009.
00:07 JC1 joined
Coke_PS3 Infinoid: can't. requires PMCs. 00:17
00:44 Theory joined 00:48 bacek_ joined 01:00 tddd joined 01:43 sviebrock joined 02:11 Andy joined
sviebrock Hey, does anyone know how I can get an Andrew WebISO login for CMU wireless? Couldn't make it to the workshop today. 02:12
Coke I would ask in #yapc 02:14
haven't seen any chatter about it in here.
sviebrock Will do, thanks!
Coke good luck 02:15
purl You'll need it.
03:20 donaldh joined 03:21 cotto joined 03:40 Whiteknight joined 03:47 s1n_yapc joined 04:11 amuck joined 04:14 iblechbot joined 04:36 Theory joined 04:38 cotto joined 04:52 cotto joined
dalek rdinal: 5261d92 | tene++ | (2 files):
Import foreign namespaces.
05:11
05:52 flh joined 07:20 donaldh joined 08:31 bacek_ joined 08:35 viklund_ joined
bacek_ oh hai 08:37
msg cotto whatzup? 08:46
purl Message for cotto stored.
09:09 patspam joined 09:14 JC1 joined 09:39 flh joined
dalek rrot: r39683 | bacek++ | branches/tt761_keys_revamp/lib/Parrot/Pmc2c/PMCEmitter.pm:
[pmc2c] Slightly improve generating switch-base MULTI VTABLE optimiser.
09:40
rrot: r39684 | bacek++ | branches/tt761_keys_revamp/src/pmc/hash.pmc:
[pmc] Strip "old" iterators support from Hash.
10:24 Whiteknight joined 10:27 kj joined
Infinoid good morning 10:28
purl Here I am, brain the size of a planet, and all they say is 'Good Morning'
Whiteknight good morning
purl And good moroning to you, Whiteknight.
bacek_ good mor^W. Hey! It's late Sunday night already! 10:31
Infinoid Guess we didn't get the memo 10:33
Whiteknight holy crap! it's sunday night? 10:38
but it looks like sunday morning!
dalek rrot: r39685 | whiteknight++ | branches/io_cleanups/src (2 files):
[io_cleanups] remove the now-unneeded does VTABLE from socket and add checks for socket type to is_closed
Infinoid Whiteknight: If you stand on your head, the sun appears to be going down 10:40
Ozzies are weird like that.
Whiteknight haha 10:41
bacek_ Hey! Why all of you stand on heads?
img-fotki.yandex.ru/get/8/bacek.2/0...797bf_orig :) 10:42
Ah. Found it 10:44
img-fotki.yandex.ru/get/12/bacek.2/...c5498_orig
Infinoid heh, nice
dalek rrot: r39686 | whiteknight++ | branches/io_cleanups (4 files):
[io_rewiring] change Parrot_io_socket_is_closed to take an interp argument, and use GETATTR to access the os_handle (for future subclassability)
10:45
Whiteknight We're going to have subclassable sockets one day, and that will be awesome 10:46
bacek_ Are we going to have fastest VM? It will be even more awesome! :) 10:47
Infinoid bacek_: Patches welcome :) 10:48
Whiteknight Infinoid: minus that threading issue you had yesterday, are pipes ready to go? 10:51
I would love to start integrating them in this io_cleanups branch
Infinoid I can't test them, but I think so 10:57
There isn't really much to them. You create them, you do I/O on them, no seek, no bind, no connect, they're pretty generic I/O handles 10:58
Feel free to apply the patch as-is, the bogus test is commented out
10:59 muixirt joined
Infinoid (that's nopaste.snit.ch/16980) 10:59
If you're accessing them from C, as long as you're creating them yourself you can probably access the reader and writer attrs directly 11:01
The alternative would be to call the methods through PCC, which would suck.
bacek_ tempted to add src/ops/nanoparrot.ops right now... 11:05
11:17 cotto joined 11:20 donaldh joined
dalek rrot: r39687 | bacek++ | branches/tt761_keys_revamp (4 files):
[pmc] Start removing dangerous Hash.set_pointer tn favour of

Add failing test for desired behavior.
11:26
bacek_ Is TT#443 covers enum values among with function names?
dalek TT #780 created by bacek++: [RFC] deprecated parrot_new_pointer_hash and parrot_new_cstring_hash 11:34
Whiteknight Infinoid: okay, I have a commit coming through in a few minutes that will change a few things around regarding Handle 11:38
but after that I will try to add in pipes
Infinoid ok 11:46
because of the threading nonsense, I haven't actually checked whether basic reads and writes on PipeHandles work yet. I had intended to move those from FileHandle to Handle but I dunno if that's actually been done yet 11:47
(should hopefully be a trivial process if it wasn't already done)
Infinoid has somehow gotten bogged down with email all morning 11:48
bacek_ send another mail with subject "Enlarge your something" to Infinoid 11:49
Infinoid It's fathers day. I just wrote my dad an email 11:52
shower, bbl 11:53
12:03 eternaleye joined 12:06 bacek__ joined 12:33 cotto joined 12:39 flh joined 12:51 masak joined 12:53 AndyA joined 13:08 MoC joined 13:10 Whiteknight joined 13:12 kid51 joined 13:16 magnachef joined
bacek_ clock? 13:17
purl bacek_: LAX: Sun 6:17am PDT / CHI: Sun 8:17am CDT / NYC: Sun 9:17am EDT / LON: Sun 2:17pm BST / BER: Sun 3:17pm CEST / IND: Sun 6:47pm IST / TOK: Sun 10:17pm JST / SYD: Sun 11:17pm EST /
mikehh pre/post config, smolder, fulltest ALL PASS at r39684 - Ubuntu 9.04 i386 13:22
13:22 pmichaud joined
moderator Parrot 1.3.0 "Andean Swift" released | parrot.org | Parrot VM Workshop, Pittsburgh, June 20-21: Sunday session underway 13:31
Infinoid Do we have a Weekly Priority? 13:32
cotto make parrot more awesome 13:38
hi bacek
13:42 s1n_yapc joined
Infinoid adds --awesome, --tubular, --gnarly options (akin to ack --thbbbt) 13:46
13:46 guru joined
cotto bacek_, ping 13:48
kid51 smolder down (again) 13:56
14:03 mikecanz joined
hachi heckle heckle heckle 14:03
mikecanz heckle
14:04 magnachef_ joined
jdv79_ kid51: does that happen alot? 14:04
Whiteknight Infinoid: ping 14:07
Infinoid Whiteknight: pong
hachi ding
Infinoid jdv79_: a fair amount 14:08
Whiteknight Infinoid: I've got a doosy of a patch I'm working on that segfaults in a very very weird way. Interested in looking at it?
because I'm stumped by it
Infinoid sure!
Whiteknight okay, it's for the io_cleanups branch
nopaste?
clunker3 pasta.test-smoke.org/ or paste.husk.org/ or nopaste.snit.ch:8001/ or rafb.net/paste or poundperl.pastebin.com/ or paste.scsys.co.uk/
purl well, nopaste is at nopaste.snit.ch/ (ask TonyC for new channels) or poundperl.pastebin.com/ or paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at www.extpaste.com/ or paste.scsys.co.uk (for #catalyst, #dbix-class, #moose and others) or gist.github.com/
nopaste "whiteknight" at 128.237.246.17 pasted "Patch for Infinoid++" (674 lines) at nopaste.snit.ch/16991 14:09
Whiteknight basically, I changed Handle to be an encapsulation around PIOHANDLE, and added accessor functions for it 14:10
Infinoid doing io_cleanups checkout through cellphone
ok, cool
Whiteknight but making that change causes parrot to segfault during the build of PGE 14:11
and it segfaults inside calloc
jdv79_ perhaps someone could setup another instance - all the result tarballs are available iirc
Infinoid I guess there's also taptinder 14:13
Whiteknight: Ok, so you're corrupting memory. Big patch 14:14
Whiteknight yeah, that's what I figured
but Ican't find where
Infinoid building now 14:17
Whiteknight Infinoid++
jdv79_ Infinoid: the only issue is a central reporting point so all could fetch the latest results
14:17 skids joined
jdv79_ or just setup a smolder on a stable box and be done with it:) 14:20
Infinoid sigh, our pmc2c line number handling still isn't quite right 14:22
cotto: pmcc does better at that, right? :)
cotto It will or I won't let it escape.
I hate that about pmc2c
Infinoid Whiteknight: Does Parrot_FileHandle_destroy call Parrot_Handle_destroy? 14:23
Because I'm seeing problems with Parrot_io_get_os_handle being called (indirectly) from Parrot_FileHandle_destroy, yet the buffer it's reading has already been freed
...by Parrot_Handle_destroy 14:24
cotto Infinoid, he's giving a talk. there might be some lag.
Infinoid ah, cool.
14:34 dpwalia joined
nopaste "Infinoid" at 65.18.171.17 pasted "One problem with Whiteknight's patch (valgrind output and my interpretation)" (125 lines) at nopaste.snit.ch/16992 14:35
Infinoid oh, nopaste didn't wrap my text. Maybe I shoulda put that in an email 14:36
nopaste "Infinoid" at 65.18.171.17 pasted "Same thing, with wrapped text for easier reading" (134 lines) at nopaste.snit.ch/16993 14:39
14:58 Andy joined, jdv79 joined
Whiteknight (sorry about the delay, I was giving a talk about GC) 15:06
1) FileHandle destroy does not call Handle destroy (I let the GC pick it up)
Okay, I see what you are saying. Handle.destroy should close the fd 15:07
15:07 kid51 joined
Whiteknight the Handle and FIleHandle are falling out of scope at the same time, and Handle is being collected before FIleHandle 15:09
that's quite an interesting problem
15:13 barney joined, jan joined
Infinoid it's an ordered destruction problem 15:14
Whiteknight right 15:15
but the problem is that we can't do inheritance if we want FileHandles to be subclassable
Infinoid oh. why?
Whiteknight because any inherited ATTRs that arent INTVAL, FLOATVAL, STRING, or PMC can't be inherited by a PIR subclass
so attempting to access one will throw an exception
Infinoid this is for the piohandle attribute? 15:16
Whiteknight yes
15:16 AndyA joined
Infinoid on win32, is HANDLE an integer or pointer type? 15:16
Whiteknight I dont know, it's probably integral
but I dont feel like casting is the right idea
what if we moved the buffering logic into Handle? 15:17
so that it could flush itself when destroyed
has the benefit of moving most of the remaining non-inheritable ATTRs out of FileHandle making it closer to being inheritable 15:18
Infinoid that seems reasonable, though I can imagine cases where Handle wouldn't have enough info to do a really good job of that
Whiteknight if FileHandle can do the buffering, then Handle can do it just as well
Infinoid Right, for FileHandle that's fine
A better example would be SSL.
Whiteknight how so?
Infinoid If you're using a block cipher like AES or 3DES, which needs input in chunks of 64 bits, it will need to buffer some data (up to 7 bytes) at that layer 15:19
the final block gets padded with zeroes, but Handle doesn't know about any of that
hmm. I don't really care if the piohandle is available to pir, to be honest 15:20
15:20 donaldh joined
Infinoid the fileno() method can return an INTVAL either way, even if that's just a value to plug into a lookup table to get the real info 15:21
is there a way to prevent pir from trying to get the attr, and therefore not crashing? 15:22
Whiteknight In the long term it's reasonable to have a different back-end PMC, like an AESHandle that takes care of encryption on the way out 15:23
And then FileHandle could be told to delegate to an AESHandle instead of a Handle
Infinoid hmm, ok. but what if I want to implement SSL in pir or perl6? 15:24
for that kind of subclass, I need *my* flush function to be called on destruction 15:25
Whiteknight think about FileHandle->Handle, being replaced with FileHandle->SSHEncryptor->Handle
or, SSHFileHandle->Handle 15:26
Infinoid I was thinking more like SSL->Socket->Handle, but yeah, I see your point
It's kind of a mental shift. It's not really subclassing at all, just swapping base classes 15:28
Whiteknight an SSHSocket could be a subclass of socket 15:29
and Handle would just implement a dumb write buffer
Infinoid as it should be
But that's kind of independent of whether encapsulation or inheritance is used 15:30
Whiteknight okay, so let me move the buffering into Handle and see what kinds of errors that gives 15:31
japhb Happy Father's Day, papas! 15:32
Whiteknight yay!
Infinoid Whiteknight: That seems fair. In this case, FileHandle is really sort of an empty shell that implements seeking, and passes everything else to Handle
hmm, I guess I do have a problem with encapsulation. It makes the "passing everything else" part more complicated 15:33
Whiteknight right
but then Pipe and Socket can use the logic in Handle too, so they get buffering if they want for free
Infinoid Lots of Sockets will turn that off, but not all of them, and PipeHandles will definitely want it 15:34
Handle is the right place for it, for sure 15:35
Whiteknight okay, I'll start making that happen
Infinoid Whiteknight++ 15:36
One thing I've had my mind on a lot recently, is how to implement Select 15:40
The basic concept is simple; you hand a bundle of io handles (a bitfield, really) to the OS and say "return when one of these has new data for me" 15:41
cotto bacek, reping
Infinoid But before the result is useful to the user, it needs to be converted back from piohandles to PMC pointers
So I think it needs a hash to do the reverse mapping 15:42
But how does that work with StringHandle?
And what if some other IO subclass doesn't use io handles? (maybe it wraps FILE* instead)
japhb What's the current best place to start reading on how to write an OO Class in PIR? I want to write a fast class for doing 4x4 matrix math, so that HLLs can use it and get the speed boost of a PIR implementation rather than take the full HLL hit. 15:43
dalek rrot: r39688 | cotto++ | branches/pmc_pct (3 files):
[pmcc] add stub code to read the vtable dump and write PMC::Class in nqp
Infinoid japhb: Maybe docs/user/pir/objects.pod, or just dive right into the examples 15:44
japhb Infinoid: fair enough.\\ 15:47
thx
15:57 iblechbot joined 16:09 MoC joined 16:14 viklund_ joined, Psyche^ joined 16:16 flh joined
Tene japhb: let me know if you have any questions. 16:39
16:41 s1n_yapc joined 16:44 jdv79 joined 16:49 s1n_yapc joined
japhb Tene: will do 16:51
What is the correct POD translator to use for viewing the Parrot docs? I usually just read the raw POD directly, but on a lark I tried 'perldoc' on it, and some stuff got mangled .... 16:56
Tene on which file? 16:57
I always use perldoc
japhb docs/user/pir/objects.pod , for instance.
perldoc eats all the examples
on my system at least
Tene yes, for me too 16:58
17:06 PacoLinux joined 17:10 sviebrock joined 17:16 zhb joined 17:30 Theory joined
dalek rrot: r39689 | japhb++ | trunk/docs/user/pir/objects.pod:
[docs] objects.pod: Fix semantic error in paradigm shift (that worked by luck)
17:37
17:38 kid51 joined 17:40 jdv79 joined
dalek rrot: r39690 | coke++ | trunk/lib/Parrot/Pmc2c/PMCEmitter.pm:
fix typo in comment.
17:51
17:54 s1n_yapc joined 17:56 Theory joined
dalek rrot: r39691 | japhb++ | trunk/docs/user/pir/pmcs.pod:
[docs] pmcs.pod: Clean up some confusing bits in opening sections
18:05
japhb Hmmm, actually, this whole doc needs some cleanup.
Excellent cage task for a beginner. 18:06
Whiteknight nopaste 18:18
clunker3 pasta.test-smoke.org/ or paste.husk.org/ or nopaste.snit.ch:8001/ or rafb.net/paste or poundperl.pastebin.com/ or paste.scsys.co.uk/
nopaste "Whiteknight" at 128.237.246.17 pasted "New patch for Infinoid++" (1565 lines) at nopaste.snit.ch/16994 18:19
Whiteknight purl msg Infinoid check out nopaste.snit.ch/16994 when you get a chance. this moves the buffering into Handle. Fixes the last problem with ordered destruction, creates a new problem building JSON 18:20
purl Message for infinoid stored.
Coke =begin / =end blocks are not normally parsed by "perldoc" 18:34
Infinoid: would a minimal amount of PIR plus the tcl pmcs and tcl ops be a sufficiently small case? 18:39
(or a shared screen session on feather?)
dalek TT #781 created by japhb++: [CAGE] Copyedit docs/user/pir/* 18:40
Coke can someone with a feather account help me test something? 18:43
whoops, nevermind, gotta run 18:44
19:04 PacoLinux joined 19:20 donaldh joined
cotto L1? 19:27
purl L1 is a hypothetical language that would be used to implement PMCs and PIR-visible ops so that they could all be easily jitted. or irclog.perlgeek.de/parrot/2009-04-21#i_1083550 or rt.perl.org/rt3/Ticket/Display.html...txn-471982
19:28 davidfetter joined 19:38 kid51 joined 19:41 dpwalia joined
Tene discovers, yet again, that :vtable('invoke') is very broken in Parrot 19:41
:(
19:41 ZeroForce joined
moritz speaking of which, did the pcc-rewire branch land already? 19:44
davidfetter ouch! 19:45
directly on my toe
cotto has reason to doubt davidfetter 19:46
moritz davidfetter: was it fast, at least? 19:47
Infinoid .
davidfetter well, there were some of those concertina wire things sticking out of it
Whiteknight davidfetter: are you at YAPC? 19:48
davidfetter yeah
Whiteknight where are you at?
davidfetter in my dorm room working on my slides :/ 19:49
Infinoid Whiteknight: got your message, trying now
Whiteknight Infinoid++ : Awesome. You're like my code savior sometimes
davidfetter where are you?
Whiteknight davidfetter: I'm at the PVM workshop 19:50
Infinoid Whiteknight: I dunno about savior. I'm just good at watching things break
davidfetter ah
Whiteknight and I'm good at breaking things!
davidfetter where's that?
purl that is about the level that you were asking for
Infinoid Together we fight crime
Whiteknight Newell-Simon Hall, it's impossible to find from the dorms
davidfetter :/ 19:51
Whiteknight Infinoid: I haven't even had a chance to really debug this yet because I've been busy at the conferrence
Infinoid This gives me something to do, so thanks, Whiteknight++
I just got back from shopping, and am trying to forget that I have cookies and apple pie 19:52
Whiteknight is the weather still lousy out there:
Infinoid Nah, it's sunny and humid now
Whiteknight oh, that's good then 19:53
davidfetter so go out on forbes past that building-to-be, and hang a left?
Whiteknight yeah, you go past the construction. There's a place where there's a fence and you have to walk on the road because there is no sidewal 19:54
and then there's a bus stop, and you turn left at the next chance after that
davidfetter ok, heading over :) 19:55
Whiteknight davidfetter++
Infinoid ooh, imcc crash 20:03
cotto tasty 20:09
Infinoid I think this I/O patch must somehow reduce the amount of I
Whiteknight I? 20:23
purl rumour has it Whiteknight is mailto:wknight8111@gmail.com or the grand master funk or wknight8111.blogspot.com/
Infinoid input :) 20:24
Whiteknight somewhere files just aren't being written to
Infinoid oh, hmm
Whiteknight yeah, sorry the patch is so large, but it's all necessary to make any of it work
so output to STDOUT works, but writing to a file doesn't
even though I'm certain the two are calling the same low-level functions
Infinoid awesome. By the way, is STDOUT a file or just a handle?
well, hmm, they will have different buffering 20:25
Whiteknight FileHandle, Ithink
Infinoid stdout should be line-based, files should be page-based
20:25 davidfetter joined
Whiteknight davidfetter: success? 20:26
purl success is, like, finding king size papers
Infinoid consoles could arguably be yet another subclass of Handle, because they don't have seek, and do have funky weird things like tcsetattr
davidfetter off near the door :)
i'm the bald guy in the blue shirt
Whiteknight davidfetter: look right
Infinoid: I sort of agree with that, but would want to here what e.g. Allison had to say before doing that 20:40
we can run into a trap where we subclass things too aggressively
Infinoid well, in this case, just using Handle directly is better than using FileHandle; I don't really look forward to supporting those funky weird (and nonportable) tcsetattr things anyway 20:42
it was just an observation, I don't feel like going down that path right now 20:43
Whiteknight okay, well I can't find any problems with that patch yet, so I need to debug more 20:47
20:50 mikehh_ joined 21:02 Theory joined 21:03 cotto joined 21:06 magnachef_ joined 21:09 jhorwitz joined
hachi www.linux-mag.com/cache/7373/1.html 21:09
moritz muixirt: I was wrong earlier (wrt parrot build failure with clang) 21:20
muixirt and? :-)
moritz muixirt: the real reason is that parrot expects the presence of a crt_externs.h include file if __APPLE_CC__ is set
muixirt: clang sets the latter, but doesn't provide the former.
muixirt puzzled 21:21
what does that mean?
purl You're a nut! You're crazy in the coconut!
moritz it seems a mac specific include file
muixirt ok
moritz but parrot tests a compiler specific env variable, not an operating system dependent variable
hoping that __APPLE_CC__ is only set on MacOS 21:22
I think I should turn that into a parrot ticket
muixirt the reason I asked is that my try didn't work out as early as Configure.pl 21:24
something like step auto::va_ptr died during execution: 21:25
moritz Configure.pl works just fine here
muixirt and I have no clue ...
moritz which platform are you on?
muixirt linux
moritz same here.
muixirt and unsetting __APPLE_CC__ ? 21:26
moritz how?
muixirt how do i know ;-) 21:27
Infinoid Does -U__APPLE_CC__ work? 21:28
moritz --cc-flags=-U__APPLE_CC__ might be worth a try
uhm, --ccflags 21:29
so far it didn't die... 21:30
moritz waits in great anticipation 21:31
it got past the previous problem, and now dies of a linking error 21:32
is gmp mandatory for building parrot? 21:34
Infinoid I dunno, been a while since I've tried building without it
I guess it isn't supposed to be mandatory... there's a --without-gmp
moritz since all the linking errors so far were related to gmp, I'll try it without it now 21:35
Infinoid: do you think it's a bug to assume the presence of a mac-only header file if __APPLE_CC__ is set?
ie should I open a ticket? 21:36
I don't know enough about those macros to judge that
bah, --without-gmp seems to need a realclean 21:39
Infinoid I honestly didn't know apple's compiler could be installed on non-apple OS 21:42
but if it's an OS header and a compiler-specific define, seems buggy indeed
moritz ok, I'll ticket it, thanks
japhb Infinoid: clang isn't Mac-specific. It, like WebKit, was an existing project that they have put effort in to for their own needs. 21:43
moritz anyway, I made parrot compile with clang now 21:46
only --without-gmp
Infinoid That might be worth an entry in PLATFORMS 21:47
moritz++
japhb moritz++ # NICE! 21:48
moritz 'make tests' fails test 4 in t/op/gc 21:49
everything else seems to work 21:50
dalek TT #782 created by moritz++: src/pmc/env.t confuses compiler specific and platform specific macros 21:51
moritz that should have been s/platform/OS/
whatever
muixirt moritz, what were the exact options for Configure.pl? 21:53
moritz muixirt: --cc=$path/to/clang --ccflags=-U__APPLE_CC__ --without-gmp
21:56 magnachef joined
muixirt moritz, doesn't work for me :-( 21:57
moritz muixirt: and I used today's llvm+clang from svn
muixirt me too 21:58
22:08 cotto joined
dalek rrot: r39692 | moritz++ | trunk/PLATFORMS:
[PLATFORMS] building on linux/amd64 with clang
22:09
22:15 darbelo joined 22:33 rg joined
japhb Is creation of PIR classes in heirarchical namespaces documented anywhere? My guess to use "Foo = newclass ['Foo';'Bar';'Baz']" seemed to work, but I don't see it documented. If it's not, I'll create a TT to do so. 22:56
Tene japhb: docs/ops/object.pod 22:57
newclass(out PMC, in PMC)
Create a new Parrot-style class, with the name given in $2 as a
key, namespace, or string PMC.
japhb Tene: Ah ... there's my error. I was expecting an example, so was 'ack-grep newclass |grep ";"', and finding nothing. 22:58
We seem to be overly reliant on ops documentation, which can be rather ... unenlightening.
moritz feel free to add some examples ;-) 23:02
japhb moritz: I'm still in the process of trying to create them. :-) 23:03
Tene Where else would you expect to find the details of how to use the 'newclass' opcode?
Not to disagree that we have insufficient docs.
I just don't understand "overly reliant on ops documentation" 23:04
japhb Tene: Well, for example, the intro doc docs/user/pir/objects.pod that you pointed me to, and the PDD docs/pdds/pdd15_objects.pod . 23:05
Ops docs tend to be extremely terse, little more than lookup tables to remind experienced users about allowed argument types and such. On the other end, docs/user is very user friendly, but covers very little ground. And the PDDs are somewhere in the middle. 23:07
I guess I am more used to the style of (for instance) the OpenGL Programming Guide and OpenGL Reference Manual. The former has a tutorial covering most of the API to moderate depth, while the latter is a complete reference with, with not only function arguments and overviews, but full details on how various operations affect system state, what errors can occur, default values, etc. 23:09
Relating this back to Parrot, 23:10
I think the tutorials need to be more complete (and stylistically updated to modern usage; some of them recommend techniques that have long been out of vogue), and go beyond completely trivial cases. 23:11
Tene Okay, I understand now.
Yes, I agree. 23:12
japhb The reference documentation, the PDDs and Op docs, need to provide more of the information that a user needs in one place, rather than having to keep the interaction between many different docs in their head in order to understand how something can be used in real code.
For instance, it took me several readings of the namespace PDD to understand it in a way that I could actually get work done and expect to interoperate with other people's code. 23:13
EOL
Clearly, we need to hire Dave Shreiner. ;-) 23:14
Tene Who? 23:15
japhb Principle author/editor of the two OpenGL books I mentioned above.
Infinoid japhb: We have a parrot book in the works, your feedback would be useful to that effort 23:16
japhb I don't know from personal experience, but sometimes I get the idea he's the Jon Postel of the OpenGL world
Infinoid: as time allows, sure. 23:19
23:20 donaldh joined
Infinoid Great. docs/book/draft/ch03_pir.pod has a section named "NameSpaces, Methods, and VTABLES" 23:22
If that sucks too, allison and/or chromatic should hear about it
japhb :-) 23:24
23:31 Eevee joined
japhb Is there a data structure dumper for Parrot? 23:31
23:31 bacek_ joined
japhb oooh, wait, Data/Dumper.pbc 23:31
investigating ... 23:32
Infinoid I think runtime/parrot/library/dumper.pir is the frontend, there's a synopsis there
23:33 patspam joined
japhb Infinoid: thanks! 23:34
Infinoid: seems to be working well, thanks again 23:52