Camelia, the Perl 6 bug

IRC log for #parrot, 2009-06-21

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:07 JC1 joined #parrot
00:17 Coke_PS3 Infinoid: can't. requires PMCs.
00:44 Theory joined #parrot
00:48 bacek_ joined #parrot
01:00 tddd joined #parrot
01:43 sviebrock joined #parrot
02:11 Andy joined #parrot
02:12 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:14 Coke I would ask in #yapc
02:14 Coke haven't seen any chatter about it in here.
02:14 sviebrock Will do, thanks!
02:15 Coke good luck
02:15 purl You'll need it.
03:20 donaldh joined #parrot
03:21 cotto joined #parrot
03:40 Whiteknight joined #parrot
03:47 s1n_yapc joined #parrot
04:11 amuck joined #parrot
04:14 iblechbot joined #parrot
04:36 Theory joined #parrot
04:38 cotto joined #parrot
04:52 cotto joined #parrot
05:11 dalek cardinal: 5261d92 | tene++ |  (2 files):
05:11 dalek cardinal: Import foreign namespaces.
05:11 dalek cardinal: Add a README.
05:11 dalek cardinal: review: http://github.com/cardinal/cardinal/commit​/5261d925c0d8eb56f330cda47f35c374752448b7
05:52 flh joined #parrot
07:20 donaldh joined #parrot
08:31 bacek_ joined #parrot
08:35 viklund_ joined #parrot
08:37 bacek_ oh hai
08:46 bacek_ msg cotto whatzup?
08:46 purl Message for cotto stored.
09:09 patspam joined #parrot
09:14 JC1 joined #parrot
09:39 flh joined #parrot
09:40 dalek parrot: r39683 | bacek++ | branches/tt761_keys_revamp/li​b/Parrot/Pmc2c/PMCEmitter.pm:
09:40 dalek parrot: [pmc2c] Slightly improve generating switch-base MULTI VTABLE optimiser.
09:40 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39683/
09:40 dalek parrot: r39684 | bacek++ | branches/tt761_keys_revamp/src/pmc/hash.pmc:
09:40 dalek parrot: [pmc] Strip "old" iterators support from Hash.
09:40 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39684/
10:24 Whiteknight joined #parrot
10:27 kj joined #parrot
10:28 Infinoid good morning
10:28 purl Here I am, brain the size of a planet, and all they say is 'Good Morning'
10:28 Whiteknight good morning
10:28 purl And good moroning to you, Whiteknight.
10:31 bacek_ good mor^W. Hey! It's late Sunday night already!
10:33 Infinoid Guess we didn't get the memo
10:38 Whiteknight holy crap! it's sunday night?
10:38 Whiteknight but it looks like sunday morning!
10:38 dalek parrot: r39685 | whiteknight++ | branches/io_cleanups/src (2 files):
10:38 dalek parrot: [io_cleanups] remove the now-unneeded does VTABLE from socket and add checks for socket type to is_closed
10:39 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39685/
10:40 Infinoid Whiteknight: If you stand on your head, the sun appears to be going down
10:40 Infinoid Ozzies are weird like that.
10:41 Whiteknight haha
10:41 bacek_ Hey! Why all of you stand on heads?
10:42 bacek_ http://img-fotki.yandex.ru/get/​8/bacek.2/0_66fa_35c797bf_orig :)
10:44 bacek_ Ah. Found it
10:44 bacek_ http://img-fotki.yandex.ru/get/​12/bacek.2/0_7ddc_1e3c5498_orig
10:44 Infinoid heh, nice
10:45 dalek parrot: r39686 | whiteknight++ | branches/io_cleanups (4 files):
10:45 dalek parrot: [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 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39686/
10:46 Whiteknight We're going to have subclassable sockets one day, and that will be awesome
10:47 bacek_ Are we going to have fastest VM? It will be even more awesome! :)
10:48 Infinoid bacek_: Patches welcome :)
10:51 Whiteknight Infinoid: minus that threading issue you had yesterday, are pipes ready to go?
10:51 Whiteknight I would love to start integrating them in this io_cleanups branch
10:57 Infinoid I can't test them, but I think so
10:58 Infinoid 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 Infinoid Feel free to apply the patch as-is, the bogus test is commented out
10:59 muixirt joined #parrot
10:59 Infinoid (that's http://nopaste.snit.ch/16980)
11:01 Infinoid 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 Infinoid The alternative would be to call the methods through PCC, which would suck.
11:05 * bacek_ tempted to add src/ops/nanoparrot.ops right now...
11:17 cotto joined #parrot
11:20 donaldh joined #parrot
11:26 dalek parrot: r39687 | bacek++ | branches/tt761_keys_revamp (4 files):
11:26 dalek parrot: [pmc] Start removing dangerous Hash.set_pointer tn favour of
11:26 dalek parrot: Hash.set_key_type.
11:26 dalek parrot: Add failing test for desired behavior.
11:26 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39687/
11:26 bacek_ Is TT#443 covers enum values among with function names?
11:34 dalek TT #780 created by bacek++: [RFC] deprecated parrot_new_pointer_hash and parrot_new_cstring_hash
11:38 Whiteknight Infinoid: okay, I have a commit coming through in a few minutes that will change a few things around regarding Handle
11:38 Whiteknight but after that I will try to add in pipes
11:46 Infinoid ok
11:47 Infinoid 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 Infinoid (should hopefully be a trivial process if it wasn't already done)
11:48 * Infinoid has somehow gotten bogged down with email all morning
11:49 * bacek_ send another mail with subject "Enlarge your something" to Infinoid
11:52 Infinoid It's fathers day.  I just wrote my dad an email
11:53 Infinoid shower, bbl
12:03 eternaleye joined #parrot
12:06 bacek__ joined #parrot
12:33 cotto joined #parrot
12:39 flh joined #parrot
12:51 masak joined #parrot
12:53 AndyA joined #parrot
13:08 MoC joined #parrot
13:10 Whiteknight joined #parrot
13:12 kid51 joined #parrot
13:16 magnachef joined #parrot
13:17 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 /
13:22 mikehh pre/post config, smolder, fulltest ALL PASS at r39684 - Ubuntu 9.04 i386
13:22 pmichaud joined #parrot
13:31 Topic for #parrotis now Parrot 1.3.0 "Andean Swift" released | http://parrot.org | Parrot VM Workshop, Pittsburgh, June 20-21:  Sunday session underway
13:32 Infinoid Do we have a Weekly Priority?
13:38 cotto make parrot more awesome
13:38 cotto hi bacek
13:42 s1n_yapc joined #parrot
13:46 * Infinoid adds --awesome, --tubular, --gnarly options (akin to ack --thbbbt)
13:46 guru joined #parrot
13:48 cotto bacek_, ping
13:56 kid51 smolder down (again)
14:03 mikecanz joined #parrot
14:03 hachi heckle heckle heckle
14:03 mikecanz heckle
14:04 magnachef_ joined #parrot
14:04 jdv79_ kid51: does that happen alot?
14:07 Whiteknight Infinoid: ping
14:07 Infinoid Whiteknight: pong
14:07 hachi ding
14:08 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?
14:08 Whiteknight because I'm stumped by it
14:08 Infinoid sure!
14:08 Whiteknight okay, it's for the io_cleanups branch
14:08 Whiteknight nopaste?
14:08 clunker3 http://pasta.test-smoke.org/ or http://paste.husk.org/ or http://nopaste.snit.ch:8001/ or http://rafb.net/paste or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/
14:08 purl well, nopaste is at http://nopaste.snit.ch/ (ask TonyC for new channels) or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at http://www.extpaste.com/ or http://paste.scsys.co.uk (for #catalyst, #dbix-class, #moose  and others) or http://gist.github.com/
14:09 nopaste "whiteknight" at 128.237.246.17 pasted "Patch for Infinoid++" (674 lines) at http://nopaste.snit.ch/16991
14:10 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
14:10 Infinoid ok, cool
14:11 Whiteknight but making that change causes parrot to segfault during the build of PGE
14:11 Whiteknight and it segfaults inside calloc
14:11 jdv79_ perhaps someone could setup another instance - all the result tarballs are available iirc
14:13 Infinoid I guess there's also taptinder
14:14 Infinoid Whiteknight: Ok, so you're corrupting memory.  Big patch
14:14 Whiteknight yeah, that's what I figured
14:14 Whiteknight but Ican't find where
14:17 * Infinoid building now
14:17 Whiteknight Infinoid++
14:17 jdv79_ Infinoid: the only issue is a central reporting point so all could fetch the latest results
14:17 skids joined #parrot
14:20 jdv79_ or just setup a smolder on a stable box and be done with it:)
14:22 Infinoid sigh, our pmc2c line number handling still isn't quite right
14:22 Infinoid cotto: pmcc does better at that, right? :)
14:22 cotto It will or I won't let it escape.
14:22 cotto I hate that about pmc2c
14:23 Infinoid Whiteknight: Does Parrot_FileHandle_destroy call Parrot_Handle_destroy?
14:23 Infinoid 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
14:24 Infinoid ...by Parrot_Handle_destroy
14:24 cotto Infinoid, he's giving a talk.  there might be some lag.
14:24 Infinoid ah, cool.
14:34 dpwalia joined #parrot
14:35 nopaste "Infinoid" at 65.18.171.17 pasted "One problem with Whiteknight's patch (valgrind output and my interpretation)" (125 lines) at http://nopaste.snit.ch/16992
14:36 Infinoid oh, nopaste didn't wrap my text.  Maybe I shoulda put that in an email
14:39 nopaste "Infinoid" at 65.18.171.17 pasted "Same thing, with wrapped text for easier reading" (134 lines) at http://nopaste.snit.ch/16993
14:58 Andy joined #parrot
14:58 jdv79 joined #parrot
15:06 Whiteknight (sorry about the delay, I was giving a talk about GC)
15:06 Whiteknight 1) FileHandle destroy does not call Handle destroy (I let the GC pick it up)
15:07 Whiteknight Okay, I see what you are saying. Handle.destroy should close the fd
15:07 kid51 joined #parrot
15:09 Whiteknight the Handle and FIleHandle are falling out of scope at the same time, and Handle is being collected before FIleHandle
15:09 Whiteknight that's quite an interesting problem
15:13 barney joined #parrot
15:13 jan joined #parrot
15:14 Infinoid it's an ordered destruction problem
15:15 Whiteknight right
15:15 Whiteknight but the problem is that we can't do inheritance if we want FileHandles to be subclassable
15:15 Infinoid oh.  why?
15:15 Whiteknight because any inherited ATTRs that arent INTVAL, FLOATVAL, STRING, or PMC can't be inherited by a PIR subclass
15:15 Whiteknight so attempting to access one will throw an exception
15:16 Infinoid this is for the piohandle attribute?
15:16 Whiteknight yes
15:16 AndyA joined #parrot
15:16 Infinoid on win32, is HANDLE an integer or pointer type?
15:16 Whiteknight I dont know, it's probably integral
15:16 Whiteknight but I dont feel like casting is the right idea
15:17 Whiteknight what if we moved the buffering logic into Handle?
15:17 Whiteknight so that it could flush itself when destroyed
15:18 Whiteknight 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
15:18 Whiteknight if FileHandle can do the buffering, then Handle can do it just as well
15:18 Infinoid Right, for FileHandle that's fine
15:18 Infinoid A better example would be SSL.
15:18 Whiteknight how so?
15:19 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 Infinoid the final block gets padded with zeroes, but Handle doesn't know about any of that
15:20 Infinoid hmm.  I don't really care if the piohandle is available to pir, to be honest
15:20 donaldh joined #parrot
15:21 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:22 Infinoid is there a way to prevent pir from trying to get the attr, and therefore not crashing?
15:23 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 Whiteknight And then FileHandle could be told to delegate to an AESHandle instead of a Handle
15:24 Infinoid hmm, ok.  but what if I want to implement SSL in pir or perl6?
15:25 Infinoid 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
15:26 Whiteknight or, SSHFileHandle->Handle
15:26 Infinoid I was thinking more like SSL->Socket->Handle, but yeah, I see your point
15:28 Infinoid It's kind of a mental shift.  It's not really subclassing at all, just swapping base classes
15:29 Whiteknight an SSHSocket could be a subclass of socket
15:29 Whiteknight and Handle would just implement a dumb write buffer
15:29 Infinoid as it should be
15:30 Infinoid But that's kind of independent of whether encapsulation or inheritance is used
15:31 Whiteknight okay, so let me move the buffering into Handle and see what kinds of errors that gives
15:32 japhb Happy Father's Day, papas!
15:32 Whiteknight yay!
15:32 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
15:33 Infinoid hmm, I guess I do have a problem with encapsulation.  It makes the "passing everything else" part more complicated
15:33 Whiteknight right
15:33 Whiteknight but then Pipe and Socket can use the logic in Handle too, so they get buffering if they want for free
15:34 Infinoid Lots of Sockets will turn that off, but not all of them, and PipeHandles will definitely want it
15:35 Infinoid Handle is the right place for it, for sure
15:35 Whiteknight okay, I'll start making that happen
15:36 Infinoid Whiteknight++
15:40 Infinoid One thing I've had my mind on a lot recently, is how to implement Select
15:41 Infinoid 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
15:41 Infinoid But before the result is useful to the user, it needs to be converted back from piohandles to PMC pointers
15:42 Infinoid So I think it needs a hash to do the reverse mapping
15:42 Infinoid But how does that work with StringHandle?
15:42 Infinoid And what if some other IO subclass doesn't use io handles?  (maybe it wraps FILE* instead)
15:43 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 parrot: r39688 | cotto++ | branches/pmc_pct (3 files):
15:43 dalek parrot: [pmcc] add stub code to read the vtable dump and write PMC::Class in nqp
15:43 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39688/
15:44 Infinoid japhb: Maybe docs/user/pir/objects.pod, or just dive right into the examples
15:47 japhb Infinoid: fair enough.\
15:47 japhb thx
15:57 iblechbot joined #parrot
16:09 MoC joined #parrot
16:14 viklund_ joined #parrot
16:14 Psyche^ joined #parrot
16:16 flh joined #parrot
16:39 Tene japhb: let me know if you have any questions.
16:41 s1n_yapc joined #parrot
16:44 jdv79 joined #parrot
16:49 s1n_yapc joined #parrot
16:51 japhb Tene: will do
16:56 japhb 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:57 Tene on which file?
16:57 Tene I always use perldoc
16:57 japhb docs/user/pir/objects.pod , for instance.
16:57 japhb perldoc eats all the examples
16:57 japhb on my system at least
16:58 Tene yes, for me too
17:06 PacoLinux joined #parrot
17:10 sviebrock joined #parrot
17:16 zhb joined #parrot
17:30 Theory joined #parrot
17:37 dalek parrot: r39689 | japhb++ | trunk/docs/user/pir/objects.pod:
17:37 dalek parrot: [docs] objects.pod: Fix semantic error in paradigm shift (that worked by luck)
17:37 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39689/
17:38 kid51 joined #parrot
17:40 jdv79 joined #parrot
17:51 dalek parrot: r39690 | coke++ | trunk/lib/Parrot/Pmc2c/PMCEmitter.pm:
17:51 dalek parrot: fix typo in comment.
17:51 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39690/
17:54 s1n_yapc joined #parrot
17:56 Theory joined #parrot
18:05 dalek parrot: r39691 | japhb++ | trunk/docs/user/pir/pmcs.pod:
18:05 dalek parrot: [docs] pmcs.pod: Clean up some confusing bits in opening sections
18:05 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39691/
18:05 japhb Hmmm, actually, this whole doc needs some cleanup.
18:06 japhb Excellent cage task for a beginner.
18:18 Whiteknight nopaste
18:18 clunker3 http://pasta.test-smoke.org/ or http://paste.husk.org/ or http://nopaste.snit.ch:8001/ or http://rafb.net/paste or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/
18:19 nopaste "Whiteknight" at 128.237.246.17 pasted "New patch for Infinoid++" (1565 lines) at http://nopaste.snit.ch/16994
18:20 Whiteknight purl msg Infinoid check out http://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.
18:34 Coke =begin / =end blocks are not normally parsed by "perldoc"
18:39 Coke Infinoid: would a minimal amount of PIR plus the tcl pmcs and tcl ops be a sufficiently small case?
18:39 Coke (or a shared screen session on feather?)
18:40 dalek TT #781 created by japhb++: [CAGE] Copyedit docs/user/pir/*
18:43 Coke can someone with a feather account help me test something?
18:44 Coke whoops, nevermind, gotta run
19:04 PacoLinux joined #parrot
19:20 donaldh joined #parrot
19:27 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 http://irclog.perlgeek.de/p​arrot/2009-04-21#i_1083550 or http://rt.perl.org/rt3/Ticket/D​isplay.html?id=39313#txn-471982
19:28 davidfetter joined #parrot
19:38 kid51 joined #parrot
19:41 dpwalia joined #parrot
19:41 * Tene discovers, yet again, that :vtable('invoke') is very broken in Parrot
19:41 Tene :(
19:41 ZeroForce joined #parrot
19:44 moritz speaking of which, did the pcc-rewire branch land already?
19:45 davidfetter ouch!
19:45 davidfetter directly on my toe
19:46 * cotto has reason to doubt davidfetter
19:47 moritz davidfetter: was it fast, at least?
19:47 Infinoid .
19:47 davidfetter well, there were some of those concertina wire things sticking out of it
19:48 Whiteknight davidfetter: are you at YAPC?
19:48 davidfetter yeah
19:48 Whiteknight where are you at?
19:49 davidfetter in my dorm room working on my slides :/
19:49 Infinoid Whiteknight: got your message, trying now
19:49 Whiteknight Infinoid++ : Awesome. You're like my code savior sometimes
19:49 davidfetter where are you?
19:50 Whiteknight davidfetter: I'm at the PVM workshop
19:50 Infinoid Whiteknight: I dunno about savior.  I'm just good at watching things break
19:50 davidfetter ah
19:50 Whiteknight and I'm good at breaking things!
19:50 davidfetter where's that?
19:50 purl that is about the level that you were asking for
19:50 Infinoid Together we fight crime
19:50 Whiteknight Newell-Simon Hall, it's impossible to find from the dorms
19:51 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
19:51 Infinoid This gives me something to do, so thanks, Whiteknight++
19:52 Infinoid 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:
19:52 Infinoid Nah, it's sunny and humid now
19:53 Whiteknight oh, that's good then
19:53 davidfetter so go out on forbes past that building-to-be, and hang a left?
19:54 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 Whiteknight and then there's a bus stop, and you turn left at the next chance after that
19:55 davidfetter ok, heading over :)
19:55 Whiteknight davidfetter++
20:03 Infinoid ooh, imcc crash
20:09 cotto tasty
20:09 Infinoid I think this I/O patch must somehow reduce the amount of I
20:23 Whiteknight I?
20:23 purl rumour has it Whiteknight is mailto:wknight8111@gmail.com or the grand master funk or http://wknight8111.blogspot.com/
20:24 Infinoid input :)
20:24 Whiteknight somewhere files just aren't being written to
20:24 Infinoid oh, hmm
20:24 Whiteknight yeah, sorry the patch is so large, but it's all necessary to make any of it work
20:24 Whiteknight so output to STDOUT works, but writing to a file doesn't
20:24 Whiteknight even though I'm certain the two are calling the same low-level functions
20:24 Infinoid awesome.  By the way, is STDOUT a file or just a handle?
20:25 Infinoid well, hmm, they will have different buffering
20:25 Whiteknight FileHandle, Ithink
20:25 Infinoid stdout should be line-based, files should be page-based
20:25 davidfetter joined #parrot
20:26 Whiteknight davidfetter: success?
20:26 purl success is, like, finding king size papers
20:26 Infinoid consoles could arguably be yet another subclass of Handle, because they don't have seek, and do have funky weird things like tcsetattr
20:26 * davidfetter off near the door :)
20:26 davidfetter i'm the bald guy in the blue shirt
20:26 Whiteknight davidfetter: look right
20:40 Whiteknight Infinoid: I sort of agree with that, but would want to here what e.g. Allison had to say before doing that
20:40 Whiteknight we can run into a trap where we subclass things too aggressively
20:42 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:43 Infinoid it was just an observation, I don't feel like going down that path right now
20:47 Whiteknight okay, well I can't find any problems with that patch yet, so I need to debug more
20:50 mikehh_ joined #parrot
21:02 Theory joined #parrot
21:03 cotto joined #parrot
21:06 magnachef_ joined #parrot
21:09 jhorwitz joined #parrot
21:09 hachi http://www.linux-mag.com/cache/7373/1.html
21:20 moritz muixirt: I was wrong earlier (wrt parrot build failure with clang)
21:20 muixirt and? :-)
21:20 moritz muixirt: the real reason is that parrot expects the presence of a crt_externs.h include file if __APPLE_CC__ is set
21:20 moritz muixirt: clang sets the latter, but doesn't provide the former.
21:21 * muixirt puzzled
21:21 muixirt what does that mean?
21:21 purl You're a nut! You're crazy in the coconut!
21:21 moritz it seems a mac specific include file
21:21 muixirt ok
21:21 moritz but parrot tests a compiler specific env variable, not an operating system dependent variable
21:22 moritz hoping that __APPLE_CC__ is only set on MacOS
21:22 moritz I think I should turn that into a parrot ticket
21:24 muixirt the reason I asked is that my try didn't work out as early as Configure.pl
21:25 muixirt something like step auto::va_ptr died during execution:
21:25 moritz Configure.pl works just fine here
21:25 muixirt and I have no clue ...
21:25 moritz which platform are you on?
21:25 muixirt linux
21:25 moritz same here.
21:26 muixirt and unsetting __APPLE_CC__ ?
21:26 moritz how?
21:27 muixirt how do i know ;-)
21:28 Infinoid Does -U__APPLE_CC__ work?
21:28 moritz --cc-flags=-U__APPLE_CC__ might be worth a try
21:29 moritz uhm, --ccflags
21:30 moritz so far it didn't die...
21:31 * moritz waits in great anticipation
21:32 moritz it got past the previous problem, and now dies of a linking error
21:34 moritz is gmp mandatory for building parrot?
21:34 Infinoid I dunno, been a while since I've tried building without it
21:34 Infinoid I guess it isn't supposed to be mandatory... there's a --without-gmp
21:35 moritz since all the linking errors so far were related to gmp, I'll try it without it now
21:35 moritz Infinoid: do you think it's a bug to assume the presence of a mac-only header file if __APPLE_CC__ is set?
21:36 moritz ie should I open a ticket?
21:36 moritz I don't know enough about those macros to judge that
21:39 moritz bah, --without-gmp seems to need a realclean
21:42 Infinoid I honestly didn't know apple's compiler could be installed on non-apple OS
21:42 Infinoid but if it's an OS header and a compiler-specific define, seems buggy indeed
21:42 moritz ok, I'll ticket it, thanks
21:43 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:46 moritz anyway, I made parrot compile with clang now
21:46 moritz only --without-gmp
21:47 Infinoid That might be worth an entry in PLATFORMS
21:47 Infinoid moritz++
21:48 japhb moritz++ # NICE!
21:49 moritz 'make tests' fails test 4 in t/op/gc
21:50 moritz everything else seems to work
21:51 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/
21:51 moritz whatever
21:53 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 #parrot
21:57 muixirt moritz, doesn't work for me :-(
21:57 moritz muixirt: and I used today's llvm+clang from svn
21:58 muixirt me too
22:08 cotto joined #parrot
22:09 dalek parrot: r39692 | moritz++ | trunk/PLATFORMS:
22:09 dalek parrot: [PLATFORMS] building on linux/amd64 with clang
22:09 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39692/
22:15 darbelo joined #parrot
22:33 rg joined #parrot
22:56 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:57 Tene japhb: docs/ops/object.pod
22:57 Tene newclass(out PMC, in PMC)
22:57 Tene Create a new Parrot-style class, with the name given in $2 as a
22:57 Tene key, namespace, or string PMC.
22:58 japhb Tene: Ah ... there's my error.  I was expecting an example, so was 'ack-grep newclass |grep ";"', and finding nothing.
22:58 japhb We seem to be overly reliant on ops documentation, which can be rather ... unenlightening.
23:02 moritz feel free to add some examples ;-)
23:03 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?
23:03 Tene Not to disagree that we have insufficient docs.
23:04 Tene I just don't understand "overly reliant on ops documentation"
23:05 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:07 japhb 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:09 japhb 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:10 japhb Relating this back to Parrot,
23:11 japhb 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.
23:12 Tene 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.
23:13 japhb 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 japhb EOL
23:14 japhb Clearly, we need to hire Dave Shreiner.  ;-)
23:15 Tene Who?
23:15 japhb Principle author/editor of the two OpenGL books I mentioned above.
23:16 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
23:19 japhb Infinoid: as time allows, sure.
23:20 donaldh joined #parrot
23:22 Infinoid Great.  docs/book/draft/ch03_pir.pod has a section named "NameSpaces, Methods, and VTABLES"
23:22 Infinoid If that sucks too, allison and/or chromatic should hear about it
23:24 japhb :-)
23:31 Eevee joined #parrot
23:31 japhb Is there a data structure dumper for Parrot?
23:31 bacek_ joined #parrot
23:31 japhb oooh, wait, Data/Dumper.pbc
23:32 japhb investigating ...
23:32 Infinoid I think runtime/parrot/library/dumper.pir is the frontend, there's a synopsis there
23:33 patspam joined #parrot
23:34 japhb Infinoid: thanks!
23:52 japhb Infinoid: seems to be working well, thanks again

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced