|
Parrot 2.5.0 Released! | parrot.org | Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | GSOC Students: trac.parrot.org/parrot/wiki/GSoCersStartHere | Priorities: merge gc_massacre, remove deprecated items, close tickets. Set by moderator on 15 June 2010. |
|||
|
00:00
ash_ joined
|
|||
| whiteknight | purl link is <reply>I think Link is a pretty cool guy. eh kills Ganon and doesnt afraid of anything | 00:01 | |
| purl | OK, whiteknight. | ||
| cotto_work | link? | 00:04 | |
| purl | I think Link is a pretty cool guy. eh kills Ganon and doesnt afraid of anything | ||
| bacek | aloha, humans | 00:12 | |
| cotto_work | HELO BACEK | ||
| bacek | ELHO cotto_work | ||
| seen pmichaud | 00:13 | ||
| purl | pmichaud was last seen on #parrot 2 hours, 48 minutes and 15 seconds ago, saying: afk for a bit -- brb | ||
| bacek | msg pmichaud What is "the best way" of implementing pir's ".include" in nqp? | ||
| purl | Message for pmichaud stored. | ||
| whiteknight | good morning bacek | ||
| bacek | good localtime(), whiteknight | 00:14 | |
| Any luck with gc_massacre pdd update? | |||
| whiteknight | bacek: I was working on it and got sidetracked | 00:15 | |
| bacek | whiteknight, slacker! :) | ||
|
00:15
Themeruta joined
00:17
tetragon joined
|
|||
| whiteknight | bacek: I will work on it now | 00:17 | |
| bacek | whiteknight, ok :) | ||
| whiteknight | bacek: I'm probably going to need input from you. You know more about the current architecture than I do | 00:18 | |
| bacek | whiteknight, it's almost same as on wiki | ||
| chromatic | I'm still confused why sweep-free won't work. | 00:19 | |
|
00:20
snarkyboojum joined
|
|||
| chromatic | At some point we do have to do a full collection, but we should be able to get by with smaller collections. | 00:21 | |
| bacek | chromatic, we need GenGC for it. | 00:24 | |
| chromatic | Why? | 00:25 | |
| I can (eventually) write some pseudocode if that helps. | 00:27 | ||
| bacek | List-manipulation adds a lot of overhead. | 00:28 | |
| afaiu | |||
| chromatic | Suppose we use a bitmap instead. | ||
| bacek | and after marking objects we have to sweep dead and paint live | 00:29 | |
| which is iteration over all allocated objects. | |||
| chromatic | We don't though, that's my point. | 00:30 | |
| Sweep-free can work like copying *even if we don't copy*. | |||
| dalek | rrot: r47692 | NotFound++ | trunk/t/pmc/arrayiterator.t: more shift out of bounds tests |
00:32 | |
| bacek | "copying" implies iteration over whole set. | 00:33 | |
| chromatic | It doesn't have to. | ||
| All we need is a mechanism to identify live objects in such a way that we don't have to iterate over all objects *themselves* to find dead ones. | |||
| Imagine we have 100 objects allocated. | 00:34 | ||
| We have a bitmap with 100 slots. | |||
| We mark all live objects by lighting up their slots in the bitmap. | |||
| We have to iterate the *bitmap* to find dead objects, but we don't have to iterate all of the memory space. | |||
| In one sense, that's iterating the whole set, but it's a lot friendlier to cache lines. | 00:36 | ||
| bacek | Agreed. But. | 00:39 | |
| purl | agreed. but is there something easier? | ||
| bacek | Linked list implementation is much simpler to turn into incremental version. | ||
| and generational version. | |||
| And with generational version we will win much more speed. | |||
| Especially because live/dead rate is something like 1/100. | 00:40 | ||
| (For young generation) | |||
| chromatic | Probably true. | ||
| bacek | it is true... | ||
| chromatic | How do we get from where we are into incremental/generational? | 00:41 | |
| bacek | For generational - "VTABLE override" as per research.microsoft.com/en-us/um/peo.../index.htm | 00:42 | |
| But we still need more sane triggering of GC than number of allocated objects... | 00:43 | ||
| chromatic | How would we trigger it? | ||
| bacek | Something like jvm hotspot's policy of allocated and used memory? | 00:44 | |
| We now can cap used memory to any arbitrary size | |||
| chromatic | We get rid of arenas? | 00:45 | |
| A pool contains lists of objects of the same size? | |||
| bacek | yes | 00:46 | |
| chromatic | Allocating a new object means a pointer bump in the free heap, unless there's already an object of the right size on the free list for a pool? | 00:47 | |
| bacek | s/of the right size/ | 00:48 | |
| s/of the right size// | |||
| chromatic | Allocating a new object means a pointer bump in the free heap, unless there's already an object on the free list of the appropriate pool? | 00:49 | |
| bacek | correct | ||
| chromatic | I'm down. | ||
| bacek | ? | ||
| It's same pool as PMC_Allocator. | 00:50 | ||
| But we track all allocated objects inside GC. | |||
| chromatic | I like the idea. | ||
| That makes allocations much cheaper. | |||
| bacek | It is how it's implemented | 00:51 | |
| already | |||
| chromatic | That means we can run the GC when we run out of space in the allocated free heap. | 00:52 | |
| bacek | it how current GC works. Almost. | ||
| chromatic | What do we need to change now? | 00:54 | |
| bacek | In gc_massacre? | 00:55 | |
| chromatic | Yes. | ||
|
00:56
JimmyZ joined
|
|||
| bacek | gc_ms2.c, line 641 | 00:56 | |
| line 754 | |||
| java.sun.com/j2se/1.5.0/docs/guide/...omics.html | 00:58 | ||
|
00:59
tcurtis joined
|
|||
| dalek | parrot: 3c8bbed | dukeleto++ | html/ (4 files): Make a better stub website, still needs docs |
01:01 | |
| bacek | afk - bbl | 01:02 | |
| dalek | rrot: r47693 | NotFound++ | trunk/src/pmc/arrayiterator.pmc: some cleanup in ArrayIterator, no functional changes |
01:05 | |
|
01:11
TiMBuS joined
|
|||
| dalek | parrot: cfe1bd3 | dukeleto++ | html/community.html: Add a link to the github repo on the website |
01:24 | |
| r: e0d37e1 | bacek++ | (2 files): Handle .local declarations |
01:27 | ||
| r: 09aa2c7 | bacek++ | (2 files): Handle redeclaration of variables |
|||
| r: e58e7c6 | bacek++ | (4 files): Handle .const declarations |
|||
| r: f6637c4 | bacek++ | src/PIR/ (2 files): Handle more constants. Fix creating numbered registers |
|||
|
01:48
eternaleye joined
|
|||
| whiteknight | bacek: ping | 01:54 | |
| dalek | rrot: r47694 | whiteknight++ | branches/gc_massacre/docs/pdds/pdd09_gc.pod: [gc] Begin updating PDD09 for some of the recent changes we've made to that subsystem. Try and turn this document from less of a tutorial into more of a design document. Try to be more core-agnostic, don't assume that the only core we have is a tricolor MS. In fact, don't presume that we even have that. |
||
| rrot: r47695 | tcurtis++ | branches/gsoc_past_optimization (5 files): Tests for :global, :p, and :pos args to PAST::Node.match. Rewrite its implementation in NQP to be trivial. |
|||
| whiteknight | purl msg bacek I think we can change allocate_pmc_header to take a size argument for the PMC attributes structure. We can save an indirect call to allocate_pmc_attributes, and maybe allocate the two together from the fixed-size pool for cache friendlyness. | 02:04 | |
| purl | Message for bacek stored. | ||
| whiteknight | and now off to sleep. That's where I'm a viking | 02:05 | |
| chromatic | I like that idea. | 02:06 | |
| NotFound_b | I think morphing chokes with it. | 02:07 | |
| With the last part. | 02:08 | ||
| dukeleto | This is good motivation for GPG-signing and sha1sums: seclists.org/fulldisclosure/2010/Jun/277 | ||
| chromatic | Hm, morphing does. | 02:10 | |
| dalek | rrot: r47696 | whiteknight++ | branches/gc_massacre/docs/pdds/pdd09_gc.pod: [gc] more rework on PDD09. Specifically, try to include some docs about the new GC_Subsystem structure. Some function pointers I don't quite understand yet, so I left docs for those blank |
02:11 | |
| rrot: r47697 | NotFound++ | trunk/src/pmc/resizablepmcarray.pmc: refactor RPA shift and unshift operations to extract common parts, no functional changes |
|||
| rrot: r47698 | tcurtis++ | branches/gsoc_past_optimization/docs/pct/pattern (5 files): Please codetest. Also fix a copy-paste fail in past_pattern_constant.pod. |
|||
| chromatic | Unless 1) we go from larger to smaller or equal (unlikely) or 2) in that case, we allocate new storage of the right size and set a flag to say "Free the allocated memory" | ||
| NotFound_b | A bit complex, but doable. | 02:13 | |
| chromatic | Morph is rare enough that we still win. auto_attrs memory management is 3-5% of runtime. | 02:14 | |
| Usually closer to 3%. | |||
| NotFound_b | Ah, yes, the flag must be set for manual_attrs | 02:15 | |
|
02:25
plobsing joined,
atrodo joined
03:07
janus joined
|
|||
| cotto | dukeleto, that's what made me think about it. | 03:17 | |
|
03:38
atrodo joined
03:42
atrodo joined
03:44
atrodo joined
03:46
atrodo joined
04:08
atrodo joined
04:09
atrodo_ joined
04:24
atrodo joined
04:30
atrodo joined
|
|||
| kthakore | atrodo: fix your irc man | 04:54 | |
| ./win 6 | |||
| dalek | rrot: r47699 | tcurtis++ | branches/gsoc_past_optimization (6 files): Add PAST::Pattern::Any. |
04:56 | |
| kthakore | tcurtis: are you at YAPC ? | 04:58 | |
| cotto | kthakore, fix your win man ;) | 05:06 | |
| tcurtis | kthakore: No. | 05:12 | |
|
05:45
hercynium joined
05:49
eternaleye joined
06:00
TonyC joined
|
|||
| cotto | bacek, ping | 06:23 | |
| msg bacek It looks like src/POST/Value.pm is missing from PIRATE | 06:40 | ||
| purl | Message for bacek stored. | ||
| bacek | cotto, thanks! | 06:54 | |
| cotto | np | 06:58 | |
| builds now | |||
| bacek++ | |||
| dalek | r: 73394f8 | bacek++ | src/POST/Value.pm: Added POST::Value. cotto++ for reminder. |
07:00 | |
|
07:04
fperrad joined
07:36
janus joined
|
|||
| dalek | r: fd422aa | bacek++ | src/POST/Compiler.pm: Refactor POST::Compiler to support POST::Value.to_pbc |
08:15 | |
|
08:47
jsut joined
|
|||
| cotto | bacek, should I be able to run t/01-parse/01-subs.t with parrot-nqp? It's a bit explodey atm. | 08:47 | |
| bacek | cotto, let me check | ||
| 1..7 | 08:48 | ||
| All test successful | |||
| purl duct tapes sawn off shotgun to foot | |||
| cotto | no local changes? | ||
| maybe I need a newer nqp | 08:49 | ||
| bacek | cotto, not it this files | ||
| nopaste with errors? | |||
| cotto | sure | ||
| nopaste | "cotto" at 192.168.1.3 pasted "PIRATE is SAD" (39 lines) at nopaste.snit.ch/21384 | 08:52 | |
| bacek | cotto, erm... | 08:53 | |
| cotto, which version of parrot? | 08:54 | ||
| cotto | wfm with a more recent parrot | ||
| bacek | error message is totally misleading... | 08:55 | |
| cotto | nice. all tests run by setup.pir test pass now | ||
| dalek | r: e48b10f | bacek++ | src/P (2 files): Small cleanups |
||
| bacek | cotto, it's kind of expected :) | 08:56 | |
| cotto | Yeah. It should be something more like "Hey stupid, your installed Parrot is way too old." | ||
| or perhaps the Rude English translation thereof | 08:57 | ||
| bacek | make_hello_pbc.pir is broken in trunk. | ||
| ~/src/parrot (master)$ ./parrot examples/pir/make_hello_pbc.pir | 08:58 | ||
| Could not find sub hello | |||
| same error in PIRATE... | |||
| cotto | on another topic, do you have any thoughts on GPG signed release tarballs? | 09:00 | |
| bacek | we should sign them. | 09:01 | |
| Or at least provide sha1 sum of tgz files. | |||
| cotto | a better-than-md5 checksum is a bare minimum | 09:02 | |
| dalek | rrot: r47700 | bacek++ | trunk/examples/pir/make_hello_pbc.pir: Change fixup type in make_hello_pbc example. |
||
| purl | dalek: that doesn't look right | ||
| cotto | purl doesn't look right | ||
| purl | cotto: sorry... | ||
| bacek | I prefer debian way - sign "Packages" file which contains hashsums of files. | ||
| Especially if we are going to ship external packages (PLA, etc) | 09:03 | ||
| cotto | That sounds like a good idea, though I should have been asleep an hour or two ago. | 09:06 | |
| dalek | r: 8ee6076 | bacek++ | t/ (2 files): Move test post helper functions into t/post.nqp |
||
| bacek | cotto, go to bed than! | 09:08 | |
| cotto | That also sounds like a good idea. | ||
| I'll get a bisect started on make_hello_world and let that run while I sleeeeeeep | 09:09 | ||
| svn-- | 09:13 | ||
| sleep++ | |||
| 'night | |||
| NotFound | What's the reason for that change in fixup number? If we stop using a fixup type we can just stop using it, no need to renumber others. | 09:50 | |
| dalek | rrot: r47701 | NotFound++ | trunk/t/pmc/stringhandle.t: more StringHandle tests |
09:51 | |
| NotFound | Well, I suppose is too late to undo that change. | 09:53 | |
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#34491), fulltest) at r47700 - Ubuntu 10.04 amd64 (g++) | ||
| bacek | NotFound, are you talking about make_hello_pbc? | 09:54 | |
| NotFound | bacek: yes, but referring to the pbc change that caused it. | 09:55 | |
| bacek | NotFound, I'm not sure when and why it was changed... | 09:56 | |
| NotFound | bacek: PBC_COMPAT 6.20 | ||
| bacek | I prefer to remove unused code. | 09:57 | |
| So I agree with removal of fixup_label. | 09:58 | ||
| But I'm totally disagree with implicit enum values. | |||
| If enums are explicitly numbered it's much easy to keep backward compatibility. | |||
| NotFound | bacek: remove unused code, yes. Change PBC compat to gain nothing, fully disagree. | 10:00 | |
| '1' is not magical in any sense. | |||
| bacek | "explicit enum numbering" | 10:01 | |
| NotFound | If we have just one type, having it labeled '2' doesn't harm anyone. | ||
| bacek | If enum_fixup_sub had explicit value before removal of fixup_label PBC_COMPAT will be intact. | ||
| It's too late to change it back. | 10:02 | ||
| But we can set it to 1 now | |||
| I would like to see augment to coding standard which will ban implicit enum values. | |||
| NotFound | bacek: the way to write the enum is an implementation detail. Surely it can send a signal to some people, but others just change it without a second look. | ||
| bacek | I'm slightly disagree. | 10:03 | |
| If we had enum { fixup_none = 0; fixup_label = 1; fixup_sub = 2 } than fixup_label can be just removed | 10:04 | ||
| NotFound | bacek: I can scan the repository for examples, but is a boring task. | ||
| bacek | (And statement in coding standard "You don't renumber enums. Nevar") | ||
| It should be codetest task. | 10:05 | ||
| NotFound | bacek: I don't disagree with that proposal, just think is not enough. | ||
| bacek | Of course it's not... | 10:06 | |
| NotFound | In fact, I'm going to do it. | ||
| bacek | NotFound++ # make parrot better step-by-step | 10:07 | |
| mikehh | bacek: pir/pirate tests ok | 10:09 | |
| bacek | mikehh, there is just not enough tests :) | ||
| mikehh looks to add some tests | 10:10 | ||
| actually there are still tests to add all over the place :-} | 10:11 | ||
| bacek | mikehh, I think many tests from t/compilers/imcc/syn/ can be easily copied across | ||
| NotFound | mikehh: look at my recent changes. Most of it are adding tests. | 10:12 | |
| We still can easily break lots of things without failing a single test. That's bad. | 10:14 | ||
| bacek | NotFound, indeed... And TapTinder's coverage is really helpful. | 10:20 | |
| NotFound | Yeah | ||
| bacek | Speaking of which... | ||
| purl | Speaking of which... is there a date set yet? | ||
| dalek | r: 0885bcc | bacek++ | (3 files): Add stub for POST::Call node |
||
| r: caa4a9d | bacek++ | t/ (2 files): Add first tests for PCC calls POSTing |
|||
| r: 7fa5c0f | bacek++ | src/PIR/Actions.pm: Handle simple pcc call |
|||
| r: d2800d2 | bacek++ | (2 files): Handle simple params in POST::Call |
|||
| bacek | mj41_, where is my dependant projects in TapTinder? :) | 10:21 | |
| mikehh | NotFound++ | 10:23 | |
| bacek: is there an equivalent of make clean/make realclean with PIRATE or is it just not needed? | 10:31 | ||
| bacek | mikehh, parrot setup.pir clean | ||
| mikehh | 'k - just didn't see it in the source | 10:32 | |
| bacek | mikehh, it's part of distutils by fperrad++ | 10:33 | |
| dalek | r: 9963b06 | bacek++ | TODO: Add more TODO items. |
10:37 | |
| rrot: r47702 | NotFound++ | trunk/include/parrot/packfile.h: use explicit numbers for enum_fixup values, put together enums for important pbc magic numbers and add some comments with the rationale |
10:40 | ||
| rrot: r47703 | NotFound++ | trunk/t/pmc/stringhandle.t: codingstd: trailing space |
|||
| rrot: r47704 | NotFound++ | trunk/include/parrot/namespace.h: update headerizing |
10:56 | ||
|
10:57
TiMBuS joined
10:59
mikehh_ joined
|
|||
| NotFound | VTABLE_substr seems to be used only once in the repository, and is generated code for the Object PMC. What's the point of having it? | 11:00 | |
|
11:01
whiteknight joined
|
|||
| darbelo | The String PMC doesn't use it? | 11:01 | |
| NotFound | darbelo: The String PMC implements it. | 11:02 | |
| But no one *uses* it. | |||
| darbelo | Ah, I misunderstood, then. I have no idea why we would want that VTABLE, really. | 11:03 | |
| NotFound | And not surprisingly, it has zero coverage. | ||
| darbelo gasps in unsurprise. | 11:04 | ||
| NotFound | Ticketed. | 11:09 | |
| purl: coverage? | 11:10 | ||
| purl | somebody said coverage was cv.perl6.cz | ||
| NotFound | purl: coverage is also tapir2.ro.vutbr.cz/cover/cover-results/ | ||
| purl | okay, NotFound. | ||
| NotFound | purl: coverage? | 11:11 | |
| purl | somebody said coverage was cv.perl6.cz or tapir2.ro.vutbr.cz/cover/cover-results/ | ||
| mikehh | opbots, names | 11:12 | |
|
11:17
clinton joined
|
|||
| bacek | msg tcurtis take a look at search.cpan.org/dist/Perl6-Pod/ | 11:17 | |
| purl | Message for tcurtis stored. | ||
| dalek | TT #1682 created by NotFound++: VTABLE_substr is never used | 11:19 | |
| TT #1682: trac.parrot.org/parrot/ticket/1682 | |||
| whiteknight | I didn't even know that there was a VTABLE_substr | 11:26 | |
| you learn something new and disappointing every day | |||
| dalek | rrot: r47705 | darbelo++ | branches/gsoc_nfg (4 files): Improve iterator handling a bit more, add a support function and provisionally de-const a pointer. |
11:29 | |
| r: fdacfa9 | bacek++ | (2 files): Add validation of used registers in PCC call |
11:34 | ||
| r: f1e9b72 | bacek++ | (2 files): Handle returns from PCC calls in POST |
|||
| r: d089723 | bacek++ | src/POST/Value.pm: Add POST::Value.flags to be used in PCC call. |
|||
| r: 8a67fa8 | bacek++ | (2 files): Handle multiple returns from PCC call |
|||
| NotFound | There is a VTABLE slice? I don't see it in vtables.h but there is one in the Hash PMC. | 11:37 | |
| whiteknight | yeah, that's a disappointment too | 11:39 | |
| NotFound | Parrot_ex_throw_from_c_args(interp, NULL, 1, "this is broken - see slice.pmc"); ---- See WHAT? | 11:40 | |
| dalek | rrot: r47706 | darbelo++ | branches/gsoc_nfg/src/string (2 files): Add some function docs and ASSERT_ARGS() |
11:45 | |
| darbelo | That is from the damm stone age. | 11:46 | |
| dalek | rrot: r47707 | darbelo++ | failed to fetch changeset: Sync with trunk |
12:02 | |
| whiteknight | deprecating and removing VTABLE_slice would be nice too | 12:10 | |
| NotFound | whiteknight: Deprecating something that doesn't exist? :o | ||
| whiteknight | oh, did we get rid of it already? | ||
| I can't remember | |||
| NotFound | It existed only in the source of hash.pmc, but the pmc processing ignore it. | 12:11 | |
| "existed", I've deleted it right now. | |||
| Better way to improve coverage: delete unused code. | 12:16 | ||
| mikehh | whiteknight: BTW liked your blog post on locks etc. | 12:17 | |
|
12:18
mmcleric joined
|
|||
| dalek | rrot: r47708 | NotFound++ | trunk/src/pmc/hash.pmc: there is no such thing as a VTABLE slice |
12:19 | |
| rrot: r47709 | NotFound++ | trunk (2 files): kill unused and unuseful function key_new_pmc |
|||
| r: a69c981 | bacek++ | (2 files): Get rid of PAST nodes. Broke couple of tests |
12:27 | ||
| r: c0ad9a5 | bacek++ | src/PIR/Actions.pm: Fix type-of register in POST::Value initialization |
12:38 | ||
| kthakore | atrodo: hi! so you are goin the gaming in perl talk at YAPC ? | 12:40 | |
| dalek | TT #1683 created by NotFound++: Key clone and set_pmc are broken | 12:42 | |
| TT #1683: trac.parrot.org/parrot/ticket/1683 | |||
| rrot: r47710 | NotFound++ | trunk (3 files): kill unuseful function key_set_pmc and replaces its usage in key.pmc with an exception with an updated message, TT #1683 |
12:51 | ||
|
13:02
ambs joined
|
|||
| dalek | r: 9763ef4 | bacek++ | t/post/call.txt: Add test for PCC call by register. |
13:03 | |
| r: 1bd7346 | bacek++ | src/POST/Call.pm: Add POST.Call.invocant |
|||
| r: b6c0cc0 | bacek++ | src/PIR/ (2 files): Handle all cases of 'short' pcc calls in POST |
|||
| whiteknight | mikehh: thanks! | 13:05 | |
| dalek | r: 45d7658 | bacek++ | t/post/call.txt: Add more tests. |
13:09 | |
|
13:27
atrodo_ joined
|
|||
| atrodo | kthakore> Yea, I'm currently set to attend the gaming talk. | 13:33 | |
| And sorry about all the joins/reconnects, I was playing with App::Bondage last night. Neat program, even if the documentation is a bit obtuse | 13:34 | ||
| kthakore | atrodo: no prorblem | ||
| atrodo: the documentation for SDL_perl? | |||
| atrodo | No, for App::Bondage | ||
| kthakore | atrodo: Will you be taking videos or know anyone who does? | 13:35 | |
| atrodo: I work ok SDL perl and this is the first YAPC talk about our work. | |||
| atrodo: we don't know the guy but we want a video | 13:36 | ||
| atrodo | I'm not sure about videos. I know I won't be, but I heard talk on #yapc about some talks being videoed | ||
| dalek | TT #1684 created by bacek++: examples/pir/*.t aren't executed during make fulltest. | 13:47 | |
| TT #1684: trac.parrot.org/parrot/ticket/1684 | |||
|
13:51
khairul_ joined
13:52
lucian joined
14:33
mmcleric left
14:36
mmcleric joined
14:45
snarkyboojum joined
|
|||
| dalek | rrot: r47711 | NotFound++ | trunk/t/pmc/stringhandle.t: test StringHanlde get_fd method |
14:45 | |
|
14:45
mmcleric joined
|
|||
| dalek | rrot: r47712 | whiteknight++ | branches/gc_massacre/docs/pdds/pdd09_gc.pod: [gc] small tweaks to PDD09 |
15:01 | |
|
15:12
theory joined
|
|||
| dalek | rrot: r47713 | khairul++ | branches/gsoc_instrument (4 files): fleshed out instrumentop.pmc. |
15:18 | |
| cosimo | hi all, | 15:31 | |
| I'm trying to use parrot's JSON library from Perl6 with no success so far | |||
| can someone help me? pastebin.org/343753 | |||
| moritz | then use the pure Perl 6 JSON library :-) | ||
| cosimo | moritz: :) | 15:32 | |
| but where's the fun, then? | |||
| :) | |||
| moritz | using the parrot variant isn't going to be easy | ||
| rakudo uses data types that parrot isn't aware of | |||
| for example ObjectRef PMCs | 15:33 | ||
| cosimo | my goal is to understand how to call Parrot library functions | ||
| but it seems there's always something in my way that I don't understand | |||
| moritz | I know that feeling very well | 15:34 | |
| cosimo | first the find_method('signature') and now this damn Null PMC in invoke() | ||
| for Digest/MD5.pbc I could get the "function PMC" with no problems except the find_method('signature') error | 15:36 | ||
| for JSON.pbc, that for my eyes is exactly the same thing, I can't even seem to get a valid PMC in the first palce | |||
|
15:38
tetragon joined
15:56
snarkyboojum joined
|
|||
| moritz | is there an autoflush property or so in parrot's IO? | 16:05 | |
| I grepped for -i auto.*flush, without success | 16:06 | ||
| dalek | rrot: r47714 | NotFound++ | trunk (2 files): implement ByteBuffer set_integer_native vtable to do explicit resize and add some tests for it |
16:07 | |
| rrot: r47715 | khairul++ | failed to fetch changeset: sync with trunk |
16:24 | ||
| kthakore | oh hi moritz | 16:25 | |
| moritz: did you try clear? | 16:26 | ||
| $P0.'flush'() | |||
| moritz: docs.parrot.org/parrot/devel/html/d...o.pod.html | |||
| moritz | kthakore: thanks | ||
| kthakore | moritz: yay! I helped some one | ||
| kthakore goes for his rewards cake | |||
| moritz: perl6 SDL is taking time btw. I remember you asked me about it | 16:27 | ||
| moritz | kthakore: you might be confusing me with somebody else (or I might be confusing me with soembody else :-) | ||
| kthakore | moritz: ha | ||
| moritz: remember I told you I wnated to use grammers in perl6 | 16:28 | ||
| moritz: for games | |||
| moritz: and how SDL is a library to provide multimedia for games | |||
| moritz | was that more than a month ago? | ||
| kthakore | moritz: and you asked me when is it coming to perl6 and I said July-ish | ||
| moritz: yeah | |||
| moritz | ah | ||
| no wonder I forgot about it :-) | 16:29 | ||
| kthakore | moritz: well it will be longer since parrot ppl broke my code | ||
| moritz: no worries | |||
| moritz | now I remember... you're a gsoc mentor, right? | ||
| or at least potential mentor | |||
| kthakore | moritz: github.com/kthakore/parrotSDL <--- worked as of feb 25th | ||
| moritz: yeah potential | |||
| we were yonder over at #perl6 freenode | 16:30 | ||
| moritz | happens :-) | ||
| kthakore | moritz: well until someone gives me C access to perl6 or parrot it will be slow going | 16:31 | |
| moritz: as I am learning NCI/PIR as I go | |||
| moritz wonders how callbacks into parrot land and NCI work together, if at all | 16:32 | ||
| kthakore | moritz: like building on sand is my metaphor | 16:33 | |
| moritz: and I stick by it :P | |||
| moritz | :-) | ||
| kthakore | moritz: I had another rough night last night on it | ||
| moritz | but it does work in some cases? | ||
| kthakore | moritz: well it is all broken now so I am starting from scratch | 16:34 | |
| moritz: and there seems to be a bug in namespace | |||
| so ... I have no clue what I am doing | |||
| moritz: but I rarely do anyway | |||
| moritz | :-) | ||
| kthakore | perl5 and XS was like this a lot at the starting | 16:35 | |
| I just love learning new shit that breaks my brain | |||
| moritz: :) | |||
| moritz | well, those interfaces only get better when people use it, and push the developers to make it better (or make it better themselves) | ||
| kthakore | moritz: true. I hope I can generate a lot of noise in forms of tickets and emails to get it working | 16:36 | |
| moritz: if I can understand why it don't work I will try and help parrot fix them | |||
| any way gtg for food | |||
| moritz | great | ||
| ciao | |||
| kthakore | moritz: good luck with flush | ||
| moritz | thanks | 16:37 | |
| kthakore | moritz: the docs are for 2.4 btw | ||
| moritz flushes | |||
| kthakore | moritz: so maybe run the html doc gen in svn head | ||
| I don't know how though sorry | |||
| NotFound | moritz: What kind of autoflush are you looking for? Doing a flush after each write? | ||
| moritz | NotFound: yes | ||
| NotFound | I don't think we have that. | 16:38 | |
| Well, there is one way to do that: setting the handle to unbuffered, but that doesn't flush the OS handle. | 16:39 | ||
| moritz | NotFound: I'll try to do it on rakudo level | ||
| NotFound | moritz: handle.'buffer_type'('unbuffered') | 16:41 | |
|
16:41
tcurtis joined
|
|||
| dalek | kudo: f236549 | moritz++ | src/core/IO.pm: IO.autoflush |
16:49 | |
|
17:21
khairul joined
17:41
lucian_ joined
|
|||
| dalek | rrot: r47716 | NotFound++ | trunk/t/pmc/hash.t: some more tests for Hash PMC |
18:18 | |
| rrot: r47717 | NotFound++ | trunk/t/pmc/handle.t: test Handle init_pmc |
|||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#34495), fulltest) at r47715 - Ubuntu 10.04 amd64 (g++) | 18:36 | |
|
18:37
mao joined
|
|||
| mao | Hello | 18:37 | |
| what's the best scheme implementation for parrot? | |||
| and is it worse/better than, plt-scheme, for example? | |||
| Tene | There isn't a decent or useful scheme implementation for Parrot. | 18:38 | |
| moritz | I don't really know, but I'd be surprised if any was as feature-complete as plt-scheme | ||
| mao | hmm that's sad :[ | ||
| and what about partcl? | |||
| is it good? | 18:39 | ||
| Tene | I'm not sure of the maintained-status of partcl right now. I hear that it has a lot of TCL implemented, though. | ||
| moritz | let's higlight Coke, he's the main developer | 18:40 | |
|
18:41
eternaleye joined
18:44
LoganLK joined
|
|||
| mao | man parrot looks nice | 18:45 | |
| :O | |||
| is parrot better than jvm? | |||
| moritz | jvm is better for running java | 18:46 | |
| parrot is better for running Perl 6 | |||
| moritz likes Perl 6 better than java | |||
| NotFound | Java is better for coffee. | ||
| So have a cup of coffee and use Parrot. | 18:47 | ||
| mao | i like jvm for closure | ||
| but some things like tail recurssion cant be don on jvm (idk why, im not a VM expert) | 18:48 | ||
| can this thing be done on Parrot? | |||
| darbelo | Tene: Didn't you write a scheme some time ago? | 18:49 | |
| moritz | parrot natively supports tailcalls | ||
| begin CPS based and all | |||
| Tene | darbelo: That's right. I think I dropped it in the middle of implementing macros, though. | ||
| mao | cool | 18:50 | |
| moritz | but tail recursion is also something that a compiler can detect and optimize away at compile time; the underlying VM doesn't need to know about it at all | ||
| purl | okay, moritz. | ||
| Tene | I don't know what state it's in, and it has no libraries of its own, and still uses the old HLL interop stuff, so won't be able to load any other language's libraries. | ||
| github.com/tene/steme/ | |||
| it would be a great starting point for anyone wanting to work on a useful scheme, though. | |||
| darbelo | Ah. I thought it was further along than that. Maybe I have it confused with something else... | 18:51 | |
| moritz | lua maybe? | ||
| iirc lua is basically feature complete | 18:52 | ||
| Tene | no, you were probably thinking of steme. I used to talk about it a lot in here. | ||
| tcurtis | moritz: I think the reason clojure doesn't have have tailcalls(except for loop/recur and trampoline macros) is that the JVM doesn't support jumping to a function's address. | 18:55 | |
| Also, lua appears to pass all of its tests(both "parrot setup.pir test" and "parrot setup.pir spectest"). Not sure how comprehensive those test suites are, although there's 3000 tests altogether. | 18:58 | ||
| On an unrelated note, would anyone care to help me with some problems I'm having build a dynpmc with distutils? | 19:00 | ||
| moritz | tcurtis: on an unrelated note, I noticed that your optimization blog post was very cool, and still it made me feel uneasy... (more) | 19:01 | |
| tcurtis: the reason is that it uses a custom evaluation scheme for the constant folder, ie a different code path than normal execution | 19:02 | ||
| which becomes a maintenance nightmare when done for more than one operation | |||
| I know it's only a first optimization, but I'd love to see one that uses the same code path for constant folding and normal operation, just one of them done at compile time | 19:03 | ||
| (end of rant) | 19:06 | ||
| darbelo | tcurtis: What's your dynpmc problem? | 19:08 | |
| Also, for building dynpmcs with distutils you can look at decnum-dynpmcs and dbm-dynpmcs. They are two examples of the two different approaches you can take to building a dynpmcs library wrapper. | 19:11 | ||
| nopaste | "tcurtis" at 192.168.1.3 pasted "This is my error message (source is at gitorious.org/parrot-gtk/parrot-gtk )" (15 lines) at nopaste.snit.ch/21395 | 19:12 | |
| tcurtis | moritz: True. That would be desirable. I'm not sure how I could do that. Is there a PCT::Compiler method to run all the stages after some stage on something? | 19:13 | |
| s/PCT/HLL/ | 19:14 | ||
| darbelo | tcurtis: The group should be an array, not a scalar. | 19:16 | |
| Even if it has just one element. | 19:17 | ||
|
19:18
davidfetter joined
|
|||
| tcurtis | darbelo: same error. | 19:18 | |
| darbelo | Then, you should avoid making it a group. I'm not sure pmc2c can handle groups of just one PMC. | 19:19 | |
| I did that for dbm-dynpmcs. | |||
| tcurtis | For that, should the line in question be something like "%parrot_gtk<dynpmc><gtkhelper> := 'src/pmc/gtkhelper.pmc';"? Same error. That's what I had initially, I think(might have been <> instead of '', both produce the same error still). | 19:22 | |
| darbelo | Aha! | 19:24 | |
| You forgot to declare your dynpmc as 'dyn' :) | 19:25 | ||
| pmclass GTKHelper dynpmc { | |||
| Otherwise, pmc2c will generate the wrong C for a dynamic extension. | 19:26 | ||
| That's why it's looking for the pmc_*.h files in include/ | |||
| Your setup file is correct. | 19:29 | ||
| tcurtis | Thanks. | ||
| darbelo | No problem. I've done all of this beofore. | 19:34 | |
| mao | what's the best parrot tutorial for complete begginers? | ||
| darbelo | mao: Probably the PIR book. Nowadays. | 19:35 | |
| mao | the pir book | 19:36 | |
| purl | i think the pir book is www.amazon.com/dp/0977920127 | ||
|
19:36
plobsing joined
|
|||
| mao | :O | 19:36 | |
| darbelo | docs/book/pir/* in your neares parrot checkout. | ||
| moritz | tcurtis: no idea, you'd have to ask pmichaud | 19:37 | |
| darbelo | mao: It's a volunteer effort, so it might not be completely up to date in all areas, but it should be good enough to get you started. | ||
| mao | but its like | ||
| already on amazon | |||
| tcurtis | mao: From what perspective? Are you planning to write HLL compilers, code targeting a Parrot compiler, libraries for Parrot, work on the actual VM core itself, etc.? | 19:38 | |
| mao | writing a language for parrot would be nice | ||
| but i assume basic knowledge of parrot structure wont harm | |||
| so, should I do PIR book? | 19:45 | ||
| nopaste | "darbelo" at 192.168.1.3 pasted "This gets the build far enough to choke on GTK.nqp syntax errors." (26 lines) at nopaste.snit.ch/21397 | 19:46 | |
| darbelo | tcurtis: See nopaste.snit.ch/21397 | ||
| tcurtis | mao: I don't think there are any tutorials for modern PCT+NQP-rx. Looking at partcl-nqp, rakudo, or NQP-rx(the compiler for which is written with PCT and NQP-rx) is probably the only way to start learning NQP-rx and PCT. Also the S05 section of the Perl 6 Synopses(since NQP is a subset-ish of Perl 6 and has similar regexes). I haven't looked at the PIR book in a while, so I don't know whether to recommend it. | 19:47 | |
| darbelo: I'm getting there. Thanks for the help. darbelo++ | 19:48 | ||
| darbelo | And the error in GTK.nqp is a missing ';' on line 5. After that it fails in the compilation of build/GTK/Widget.pbc | 19:49 | |
| mao | tcurtis: oh man | ||
| darbelo | The opcode 'setattribute_p_s_p_p' (setattribute<4>) was not found. Check the type and number of the arguments in file 'build/GTK/Widget.pir' line 105 | ||
| mao | a lot of new words :) | ||
| tcurtis | PCT? | 19:50 | |
| purl | PCT is the Parrot Compiler Toolkit | ||
| moritz | darbelo: settattribute has only 3 args | ||
| object, attribute name and new value | |||
| return value void | 19:51 | ||
| mao | www.parrotblog.org/2008/03/targetin...ot-vm.html | ||
| what about that tutorial? | |||
| (with PIR book ofc) | |||
| moritz | mao: it's good, but out of date I fear | 19:52 | |
| tcurtis | darbelo: I've got the syntax errors fixed and it building. Now to get it actually working. :) | ||
| mao | ok thanks | ||
| i should start reading now | |||
|
19:52
hercynium joined
|
|||
| nopaste | "darbelo" at 192.168.1.3 pasted "Aw. I almost had it..." (54 lines) at nopaste.snit.ch/21399 | 19:52 | |
| darbelo | tcurtis: The nopaste get's the build to finish for me. | 19:53 | |
| s/'// | |||
| NotFound | What are you doing, a gtk wrapper for parrot? | 19:55 | |
| mao | Which should I get for emacs: parrot.el, pasm.el or pir-mode.el? | 19:56 | |
| darbelo | NotFound: That was my first guess too. | ||
| mao | oh nvm | ||
| sorry | |||
| havent noticed readme | |||
| :( | |||
|
20:01
ambs joined
|
|||
| tcurtis | Hmm... now when I do "$__helper.gtk_init()" in GTK::init, I get "Method 'gtk_init' not found for non-object". --trace shows that the thing the method is being called on is indeed a GTKHelper PMC. | 20:04 | |
| NotFound: hopefully. | |||
| purl | hopefully is lightweight. | ||
|
20:05
Psyche^ joined
|
|||
| NotFound | tcurtis: that will be great, even with just minimal functionality. | 20:05 | |
| dalek | kudo: dd6bda0 | jonathan++ | src/ (3 files): Some updates to parametric role parameter handling, bringing us in line with types to bring us more in line with STD and fixing at least one RT ticket along the way. |
20:10 | |
| purl | i guess the way is to read the docs, or the FAQ.. | ||
| ambs | purl: forget the way. | 20:11 | |
| purl | ambs: I forgot way | ||
|
20:27
Myhrlin_ joined
|
|||
| tcurtis | the way? | 20:30 | |
| purl | i guess the way is closures, prototypes and subrefs | ||
| tcurtis | way? | 20:31 | |
| ambs | some other way :) | ||
| nopaste | "tcurtis" at 192.168.1.3 pasted "darbelo: can you help me with this?" (9 lines) at nopaste.snit.ch/21400 | 20:32 | |
| dalek | kudo: 406d85f | jonathan++ | (2 files): Apply patch from cognominal++ to implement Capture.perl. |
20:33 | |
| darbelo | tcurtis: I think you need to add the '_group' suffix to your loadlib call. | 20:48 | |
| Other than that, I can't see why it shouldn't work... | 20:49 | ||
| Doing that changes the error to this: | 20:51 | ||
| nopaste | "darbelo" at 192.168.1.3 pasted "This is after adding _group to the loadlib" (6 lines) at nopaste.snit.ch/21401 | 20:52 | |
| darbelo | tcurtis: Nevermind. I had stale shared objects in my dynext/ | 20:54 | |
| I have no Idea why it fails. I blame that on my weak grasp of NQP-rx | 20:55 | ||
| tcurtis | I changed it to not use a group when I was trying to figure out the build problems earlier. --trace showed that the object the method was being called on was indeed a GTKHelper PMC. | ||
| darbelo | Yeah. I was misled by a stale _group.so file I had from my earlier debug attempt. | ||
| The use of 'non object' makes me want to blame this all on PMC proxying and general weirdnesss whe it comes to method lookups. | 20:57 | ||
|
20:59
lucian_ joined
|
|||
| darbelo | Anyway. I have to go now. I hope you find a solution. | 21:00 | |
| tcurtis | Thanks for your earlier help. | 21:01 | |
| bacek | Good morning, humans | 21:24 | |
| ambs | good night, bacek | 21:25 | |
| tcurtis | Good afternoon, bacek. | ||
|
21:26
mmcleric joined
|
|||
| ambs | next timezone_ | 21:31 | |
| ? | |||
| ;) night | 21:37 | ||
|
21:43
kid51 joined
21:47
PacoLinux joined
|
|||
| bacek | seen pmichaud | 21:48 | |
| purl | pmichaud was last seen on #parrot 1 days, 23 minutes and 50 seconds ago, saying: afk for a bit -- brb [Jun 18 21:24:47 2010] | ||
| bacek | msg pmichaud gist.github.com/445309 - foo:bar<baz>() call support in nqp. Any objections for applying it? | 21:49 | |
| purl | Message for pmichaud stored. | ||
| sorear | seen dukeleto | 22:14 | |
| purl | dukeleto was last seen on #parrot 20 hours, 6 minutes and 5 seconds ago, saying: This is good motivation for GPG-signing and sha1sums: seclists.org/fulldisclosure/2010/Jun/277 | ||
|
22:23
lucian joined
22:30
ash_ joined
|
|||
| dalek | TT #1685 created by bacek++: Fix for #389 broke examples/pir/make_hello_pbc.pir | 23:07 | |
| TT #1685: trac.parrot.org/parrot/ticket/1685 | |||
| bacek | msg cotto I bisect make_hello_pbc.pir failure... trac.parrot.org/parrot/ticket/1685 | ||
| purl | Message for cotto stored. | ||
| dalek | r: f3e2d12 | bacek++ | (3 files): Add POST::Call.calltype to use with .tailcall and .return |
23:26 | |
| r: 0afecba | bacek++ | (2 files): Implement .tailcall POSTing |
|||
| cotto | bacek, thanks | 23:30 | |
| bacek | cotto, its little bit a problem. I have no idea how it works and unlikely can fix it by myself. | 23:31 | |
| NotFound | bacek: I have the same problem with winxed-pirado | 23:32 | |
| dalek | r: fb6b5a4 | bacek++ | (3 files): Implement .return and .yield POSTing |
||
| bacek | NotFound, any luck with fixing it? | ||
| NotFound | bacek: I have no idea. | ||
| bacek | NotFound, :( | ||
|
23:33
bubaflub joined
|
|||
| NotFound | Looks like now to put a sub in a namespace some dark magic is needed. | 23:33 | |
| bacek | :nsentry | 23:34 | |
| purl | :nsentry is the pir modifier to put a method in the namespace | ||
| NotFound | As purl said. | 23:35 | |
| The black magic is whatever imcc does. | |||
| bacek | But I have :nsentry flag in make_hello_pbc... | 23:36 | |
| NotFound | Looks like imcc does some more than setting the ns_entry_name | 23:37 | |
| bacek | Yeah... It works from generated_hello.pbc. | ||
| dalek | r: a3b6aa2 | bacek++ | TODO: Add more TODO |
||
| NotFound | bacek: main, or automatic main for first sub, works. Any other sub doesn't | 23:39 | |
| bacek | NotFound, sigh... | ||
|
23:54
jan joined
|
|||
| dalek | kudo: edb8be9 | jonathan++ | (2 files): Apply first cut of handles method generator. Patch courtesy of maard++. |
23:55 | |
| kudo: 478bde3 | jonathan++ | src/ (4 files): Get handles wired up and working. Patch mostly by maard++ with a few tweaks from |
|||
| kudo: 884561f | jonathan++ | src/glue/handles.pm: Fix a thinko and whitespace. |
|||
| kudo: aa427c4 | jonathan++ | t/spectest.data: Turn on S12-attributes/delegation.t. |
|||