|
Parrot 2.0.0 "Inevitable" released! | parrot.org | Priorities: deprecated core PMCs and VTABLE entries | Roadmap: icanhaz.com/parrotroadmap | Latest modified TT's: icanhaz.com/parrotbugs Set by moderator on 26 January 2010. |
|||
|
00:11
tetragon joined
|
|||
| darbelo replaces conditional with API | 00:14 | ||
| cotto_work replaces darbelo with API | 00:15 | ||
|
00:16
kid51 joined
00:22
ash_ joined
|
|||
| cotto_work | darbelo, thanks for doing this work, but is it going to be in one huge commit that's hard to review? | 00:28 | |
| darbelo | Probably. | ||
| cotto_work | Is that evitable? | ||
| Whiteknight | we'll review it | 00:29 | |
| darbelo | Sure. | ||
| Right now I'm doing exploration mostly. | |||
| cotto_work | Sure. It'll just be nicer to review if it's in smaller chunks. | ||
| darbelo | I can commit it in chunks once I decide which way is the correct one. | 00:30 | |
| cotto_work | Great. Thanks. | ||
| darbelo | That will happen after I get it to build, for starters. | ||
| cotto_work | Bah. A working build is overrated. | ||
| darbelo | Also, the need for foods is overpowering me. | 00:32 | |
| cotto_work | I feel the same way about the need for not being at work. | 00:33 | |
| darbelo | I'll probably get something commit-worthy in, say, two or three hours. With a full stomach. | ||
| Whiteknight | my kill_array_pmc branch has some failures in the packfile* tests, so I'm very much looking forward to this cleanup | 00:35 | |
|
00:35
mj41_ joined,
lichtkind_ joined
|
|||
| darbelo | I can probably de-Array-ize the code too. | 00:36 | |
| What did you replace Array with in pmc_freeze.c ? | 00:37 | ||
| Coke | . | 00:42 | |
| darbelo | Coke: ping | ||
| Whiteknight | darbelo: RPA | 00:43 | |
| but it isn't straghtforward | |||
| Array returns null on shift when it's empty. RPA throws exception | 00:44 | ||
| Coke | I'm here. | ||
| darbelo | Coke: After one_make merged, we're pretty much moving into a least-common-denominator make strategy, right? | ||
|
00:45
lichtkind_ joined
|
|||
| Coke | darbelo: yes. | 00:45 | |
| darbelo | Tha means that we can kill the config step that determines your particular make? | ||
| Coke | ... but there are some things, like dummy targets, that we can do by using the make-specific variants. | ||
| darbelo: isn't that still useful to say "now run <YOUR MAKE>" ? | 00:46 | ||
| darbelo | I have two makes, both work. Why is Configure telling me which to use? | 00:47 | |
| Coke | fair enough. | ||
| darbelo | That's the point of using least common denominator. You can use any make you please. | 00:48 | |
|
00:51
dduncan joined
|
|||
| darbelo leaves | 00:51 | ||
| Be back in afew hours | |||
|
01:05
dduncan left
01:10
cconstantine joined
01:44
chromatic joined
01:46
LaVolta joined
|
|||
| dukeleto | 'ello | 01:57 | |
| cotto | 'i | ||
| Whiteknight | hello | ||
| plobsing | hi | ||
| dukeleto | so we should start planning for GSoC and stuff | 01:58 | |
| i have lots of project ideas for parrot | |||
| shall we start a wiki page? | |||
| cotto | Coke, ping | ||
| Whiteknight | we have wikipage | 01:59 | |
| trac.parrot.org/parrot/wiki/BigProjectIdeas | |||
| just very sparse | |||
| dukeleto | we may want something specific to GSoC10 | 02:01 | |
| so "small" projects on that page are GSoC-worthy? | 02:02 | ||
| also, what about non-core stuff. should that get listed there? | |||
| cotto | It depends on the student. | ||
| dukeleto | i.e. i have ideas for PL/Parrot and other HLL-related stuff | ||
| cotto | Ideally they'll talk with us some and figure out what they can handle. | ||
| dukeleto | cotto: sure. but having some high level descriptions really helps bring in students | 02:03 | |
| they come to us *after* they have seen a cool project idea, usually. rarely is it the other way around. of course, the best students break this rule | |||
| cotto | That's probably how it'll be. | 02:04 | |
| dalek | tracwiki: v24 | cotto++ | GitObjections | 02:05 | |
| tracwiki: Mark most objections as addressed. Feel free to disagree. | |||
| tracwiki: trac.parrot.org/parrot/wiki/GitObje...ction=diff | |||
| tracwiki: v10 | whiteknight++ | BigProjectIdeas | |||
| tracwiki: added NFG and updated size descriptions | |||
| tracwiki: trac.parrot.org/parrot/wiki/BigProj...ction=diff | |||
| Whiteknight | medium projects on that page are gsoc-worthy, i think | ||
| dukeleto: that's good question (re: non-core projects). PLA could use some love of that type | 02:06 | ||
| apps and libraries that target parrot are always good things | 02:07 | ||
| cotto | I'm all for having non-core Parrot-related GSoC projects. The wiki seems like the best place for it. | 02:11 | |
| Whiteknight | I am going to advertise all project ideas on my blog. from the two posts I've had so far I've already heard from 3 potential students and 2 potential new developers | 02:28 | |
| is there anybody around who can explain why TT #389 is really a necessity? | 02:30 | ||
| the ticket doesn't say, only that it is a "blocker for Rakudo" | |||
| ash_ | Whiteknight: i'd like to work on a GSoC project if your thinking of ideas, i am still in college | 02:40 | |
|
02:40
chromatic joined
02:47
hercynium joined
02:48
kid51 joined,
eternaleye joined
02:52
mikehh joined
02:59
eternaleye joined
03:01
cconstantine joined
|
|||
| Whiteknight | ash_: awesome! anything in particular catch your fancy? | 03:02 | |
| ash_ | well, anything related to dynamicsm particularly llvm stack frame builder and l1 | ||
| Whiteknight | oh, nice | 03:03 | |
| lots of projects in that area | |||
| ash_ | Whiteknight: I am working on an indedpendant study, (just started) with a professor at my college on compilers, we are basically going to go through the dragon book this semester, but my kinda on-going goal is an implemetation of nqp-rx that builds against the llvm, more to see if i can figure it out and learn how all that stuff works than anything else but we'll see how that pans out | 03:05 | |
| Whiteknight | that sounds like a really cool project | ||
| there are a whole suite of optimizations that need to be added to NQP-RX and PCT | 03:06 | ||
| ash_ | my professor liked the idea of how nqp-rx can define a mutable grammar, he's been looking into that, he hasn't currently seen a tool to do what it does | ||
| Whiteknight | adding the ability for NQP-RX to directly output bytecode is a big need | ||
|
03:06
mikehh joined
|
|||
| kid51 | ash_ Some groundwork for LLVM was laid in trac.parrot.org/parrot/ticket/1075 | 03:06 | |
| Whiteknight | ash_: I've got to sign off and head to bed now. Let's definitely talk about projects later? | 03:07 | |
| ash_ | sure, i can email you or leave a comment on your blog | ||
| Whiteknight | excellent (both of which end up in my email inbox!) | ||
| ash_ | i did see the llvm detect branch | ||
| Whiteknight | I'll talk to you later | ||
| kid51 | Am I correct in thinking that if you only have a single core on a machine, 'make -j' is of no benefit over and above 'make'? | 03:08 | |
| ash_ | i hear most people do # of cores + 1 | ||
| plobsing | kid51: there may be some benefit for IO bound steps | ||
| ash_: if you're looking to build a frame builder, feel free to ask me questions | 03:09 | ||
| ash_ | yeah, i saw your libjit one | ||
| i am not currently working on it, but maybe later, if i have spare time | |||
| i still wish libjit would compile on OS X | |||
| plobsing | I hear ya | 03:10 | |
| ash_ | i never tried the libjit-linear-scan-register-allocator version on google code, maybe i'll do that one real quick | 03:11 | |
|
03:11
mikehh joined
|
|||
| ash_ | i duno if its just me, but i feel a bit like libjit is ummm disorganized | 03:11 | |
| plobsing | ash_: It's kinda moot right now, the branch is stalled out because of GC interferance (yet again) | ||
| plobsing wishes that people would just insert more ram when their programs ran out of memeory | 03:12 | ||
| ash_ | haha | ||
| swapon! | |||
| its like a super power for operating systems | |||
|
03:16
mikehh joined
|
|||
| ash_ | didn't someone use the boehm_gc? would that affect libjit any? | 03:17 | |
| plobsing | ash_: not sure. my issues stem from the fact that if you change the size of PMCs used in tests, GC passes change location wrt surrounding code, revealing and hiding bugs | 03:18 | |
| kid51 | IIRC bacek was experimenting with Boehm GC. I think whiteknight commented on those efforts on his blog. | ||
| ash_ | wrt? i am not familiar with that abbr. | 03:19 | |
| plobsing | with respect to | ||
| too many math courses | |||
| ash_ | ah, got ya | 03:20 | |
| hmmm | |||
| so gc moved your pointer around? | |||
| plobsing | more like: I moved GC around and GC blew away someone elses pointer because they aren't respecting GC's requirements | 03:21 | |
| ash_ | ah | 03:22 | |
| plobsing | at least, that's my side of the story | ||
| ash_ | is the gc_encapsulation branch maybe helpful? (seems like gc isn't properly encapsulated) | ||
| plobsing | perhaps. I'm trying to stay away from GC (too much on my plate already) | 03:23 | |
| ash_: a good example of a bug I hit a lot is TT #1142 | |||
| ash_ *foosh sounds as things fly over my head now* | 03:24 | ||
| plobsing | yeah, these things tend to involve a lot of components all at once. | 03:27 | |
| ash_ | i'd argue i am smarter than your average bear, but most of the real issues in parrot are beyond me, so... ima just keep working on my nqp thing for now | ||
| kid51 | msg bacek Did you ever get the access to languages/ you requested in TT #894 ? | 03:32 | |
| purl | Message for bacek stored. | ||
|
03:33
mikehh joined
|
|||
| dalek | rrot: r43644 | darbelo++ | branches/pmc_freeze_with_pmcs/src/pmc/imageio.pmc: Add a do-nothing ImageIO pmc. |
03:34 | |
| cotto | "Imagio" sounds like it'd be a good name for a fancy hotel. | 03:42 | |
|
03:48
samlh joined
03:52
darbelo joined
|
|||
| darbelo thaws | 03:52 | ||
| plobsing | darbelo: are you doing a verbatim copy of src/pmc_freeze.c? | ||
| btw darbelo++ on pmc_freeze_with_pmcs branch | 03:53 | ||
| darbelo | plobsing: Not completely. | 03:56 | |
| But it starts out that way. | |||
| I did a proof of concept that replaced some conditionals with API before dinner. | 03:57 | ||
| Right now I'm doing a incremental conversion into that to simplify review. | |||
| cotto | darbelo, you might want to hold off until kill_array_pmc gets merged. It'll affect some of the freeze/thaw code. | 03:58 | |
| darbelo | I asked whiteknight about that. It's a straightforward change. | 03:59 | |
| plobsing | I ask because I have it in for 'id_list'. It is the same thing as 'seen'. They really should just be one element | ||
| cotto | ok. | ||
| darbelo | plobsing: I haven't got rid of that yet. | ||
| But I think I can make it more easily killable. | 04:01 | ||
| I also could make ->what irrelevant at the same time. | 04:02 | ||
| Let me check that. | |||
| ... | |||
| dalek | rrot: r43645 | darbelo++ | branches/pmc_freeze_with_pmcs/src/pmc/imageio.pmc: Start filling out the VTABLEs. |
04:07 | |
| darbelo | Say, what is the 'new' way to call PMC methods from C ? | 04:12 | |
| I haven't used that since before the big calling conventions redoing. | 04:13 | ||
| Parrot_pcc_invoke_method_from_c_args ? | 04:14 | ||
| cotto | sure | 04:16 | |
| kid51 must sleep | 04:20 | ||
| purl | $kid51->sleep(8 * 3600); | ||
| cotto | Is that in ms, because that's not very long. | 04:21 | |
| darbelo | And "PS->" is takes PMC and STRING, with nothing coming out, right? | 04:22 | |
|
04:35
LaVolta joined
04:36
ash__ joined
04:38
cconstantine_ joined
04:43
cconstantine_ joined
04:47
cconstantine joined
|
|||
| plobsing | woot! just finished a rewrite of tools/build/nativecall.pl in PIR. | 04:51 | |
| cotto | w00t to you sir | 04:57 | |
| plobsing++ | |||
| you could also use nqp | 04:58 | ||
| cotto hopes not to hear a headdesk | |||
| plobsing | cotto: I tried. did not enjoy. | 05:03 | |
| cotto | The learning curve can be really annoying. | 05:04 | |
| darbelo | Hm. That didn't work as expected. | ||
| cotto | You've learned something. | ||
| darbelo | That exploratory programing should be done after fixing the build. | 05:05 | |
| cotto | "explodatory" programming? | 05:12 | |
|
05:13
cconstantine joined
|
|||
| darbelo | It would have been. If I hadn't broken the build before trying :) | 05:13 | |
| plobsing | cotto: it's not really the learning curve, it's that NQP has a different market which drives the design in directions that don't work out well for me | ||
| darbelo | "Lets see if this works... It's no more broken than before! I'm sure it will work when I fix all of the other problems!" | 05:14 | |
|
05:27
cconstantine_ joined
|
|||
| cotto wonders how "r->color = add_const_str(interp, r);" ever made sense to someone | 05:27 | ||
|
05:27
cconstantine joined
|
|||
| cotto | pirc can't be ready soon enough | 05:28 | |
| dalek | rrot: r43646 | plobsing++ | trunk/tools/build/nativecall.pl: eliminate return_type_decl field in nativecall.pl |
05:31 | |
| rrot: r43647 | plobsing++ | trunk/tools/build/nativecall.pir: rewrite nativecall.pl in PIR. |
|||
| cotto | yay! We get our first chicken and egg problem! | ||
| well, another one | 05:32 | ||
| plobsing, you could check in a generated src/nci.c and make an optional target to rebuild it | |||
| plobsing | cotto: my plan is to build miniparrot with a null_nci.c and then use it to build the full parrot | 05:35 | |
| we already do that for config I beleive | |||
| the version controlled generated files is my fallback | |||
| darbelo | So, miniparrot can't do NCI? | 05:36 | |
| Not a huge loss. | |||
| cotto | Isn't nci used internally for something? | 05:37 | |
| plobsing | cotto: methods on C-based PMCs | ||
| otherwise, internally we use raw nci PMCs, which don't need the frame builder thunks | |||
| darbelo | Oh. CRAP. | ||
| ./miniparrot config_lib.pasm > runtime/parrot/include/config.fpmc | 05:38 | ||
| Method 'visit_freeze_normal' not found | |||
| current instr.: 'main' pc 1214 (config_lib.pasm:324) | |||
| darbelo facepalms. | |||
| plobsing mentioned trying to stick to VTABLEs on the wiki. they make life so much easier | |||
| darbelo | Yeah. | 05:39 | |
| I see that now. | |||
|
05:43
cconstantine_ joined
05:54
eternaleye joined
|
|||
| nopaste | "tene" at 76.27.121.193 pasted "broken lazy gather/take for pmichaud" (124 lines) at nopaste.snit.ch/19414 | 05:59 | |
| pmichaud | you're missing a pop_eh in "caught" | 06:02 | |
| should go right after the .get_results | |||
| Tene | >< | 06:03 | |
| pmichaud | (no, it probably shouldn't matter.) | ||
| other than that, your code looks to me like it ought to work | 06:04 | ||
| Tene | It does work, for the simple cases. Try calling .get twice on the returned iter, though. | 06:05 | |
| pmichaud | how are you getting the returned iter? | ||
| just a sec, I'll apply locally and see what I see | |||
| Tene | my $x = gather ... | ||
| pmichaud | have a good failing test? | 06:06 | |
| Tene | my $x = gather for 1..10 { take $_*2 }; say 'A'; say $x.get; say 'B'; say $x.get; | ||
| Oh, that fails differently than it did before... | 06:07 | ||
| pmichaud | yeah, forgetting to pop an exception handler introduces odd behaviors. | ||
| Tene | ah, because I popped the eh, yes. | 06:08 | |
| The problem is that the second time in .get, it invokes a continuation that then throws back into *the first .get* call. | |||
| pmichaud | ohhhhhhhhh crap | ||
| Tene | yeah, see? | 06:09 | |
| I had a way to deal with this before, but I don't remember it. | |||
| pmichaud | this is where we really need Parrot to fix its roll-up semantics | 06:10 | |
| Tene | I think I kinda know what we can do... lemme go explore a bit. | 06:11 | |
| pmichaud | if you just want to do an eager implementation for now, that's fine also. | 06:12 | |
| having a working gather/take is more important than a lazy one at this point | |||
| (since a lot of our builtins depend on it) | |||
| Tene | what data type should gather {}; return, then, in the new world order? | ||
| pmichaud | GatherIterator is fine for now | 06:13 | |
| Tene | oh, but just prepopulate a list that it walks over, or something? | ||
| pmichaud | oh, you mean for an eager one | ||
| you can create a Parcel with the returned values | |||
| so, Parcel | |||
| Tene | 'k | 06:14 | |
| pmichaud | basically $P0 = new ['Parcel'] | ||
| and then push the payload from each take exception onto $P0 | |||
| (note that it has to be the opcode push, not the method call) | |||
| that's..... weird | 06:16 | ||
| (looking at the results after the patch, w/pop_eh remembered) | 06:17 | ||
| Tene | I'll go do that first, and then go play stack gymnastics. | ||
| pmichaud | hmmm | ||
| continuations might not be a workable way to do this | |||
| or we might need a helper block somewhere | 06:18 | ||
| Tene | the latter is what I was going to explore. | ||
| pmichaud | I think I know what is happening--want the gory details? | ||
| cotto | Just as a sanity check, the things in a PackFile's constants table are never modified, right? | 06:20 | |
| pmichaud | afaik | ||
| oh, maybe not | |||
| I know subs get modified | |||
| cotto | I care about strings. | ||
| pmichaud | I'm not sure what all goes in the constants table | ||
| anyway, very few things in Parrot actually seem to be constant :-| | |||
| Tene: When we resume back into the block, it thinks its caller is the first get invocation | 06:21 | ||
| (and it is.) | |||
| Tene | pmichaud: Yes, exactly what I said. | ||
| Well, approximately what I said. | 06:23 | ||
| pmichaud | my best guess is to use a coroutine (yield) here. | ||
| Tene | I'll try that, too. | ||
| pmichaud | essentially, the coroutine is the wrapper | 06:24 | |
| pmichaud drafts | |||
| Tene | Ah, yes, I see. | ||
| I'll try exactly that, after I test this eager gather patch. | |||
| pmichaud | want me to draft code for it? | 06:25 | |
| actually, the coroutine is almost exactly the eager gather patch :-) | |||
| except instead of pushing into a parcel, you yield the payload back to the caller :-) | |||
| Tene | Still want me to push this eager gather commit? | 06:26 | |
| pmichaud | either push it or nopaste it | ||
| push is fine if it works :-) | |||
| then I'll make suggestions for making it lazy :) | 06:27 | ||
| Tene | Oops, forgot that the bot doesn't see ng1. | 06:31 | |
| I pushed a while ago. | |||
| pmichaud | ah | ||
| looking/working | 06:36 | ||
| (looks good so far) | |||
| Tene | Writing a coro-based sketch in PIR now. | ||
| pmichaud | same here. | ||
| I'm just going to draft, then let you steal/debug :) | |||
| nopaste | "pmichaud" at 66.25.4.52 pasted "draft of gatheriterator (for Tene++)" (102 lines) at nopaste.snit.ch/19415 | 06:43 | |
| pmichaud | I moved !GATHER out of control.pir and into GatherIterator | 06:44 | |
| Tene | Looks like what I have. I'll report back in not too long. | 06:45 | |
| pmichaud | okay, great | 06:46 | |
| Tene | Parrot seems to break when I try it with lexicals... seems capture_lex doesn't work on coroutines, or something. Works fine when I save state in the GatherIterator, though. | 06:56 | |
| oh, newclosure instead? | 07:02 | ||
| Oh, no, that doesn't help either. I'll stick with the attribute version. | 07:03 | ||
|
07:12
cconstantine joined
|
|||
| pmichaud | oh, I suspect you're right about coroutines and lexicals | 07:19 | |
| Tene | s'okay, it's working. | 07:22 | |
| I just spent 15 minutes hunting a typo. :) | 07:23 | ||
| nopaste | "tene" at 76.27.121.193 pasted "working lazy gather/take example" (21 lines) at nopaste.snit.ch/19416 | 07:27 | |
|
07:34
fperrad joined
|
|||
| pmichaud | Tene++ | 07:35 | |
|
07:35
eternaleye joined
|
|||
| nopaste | "tene" at 76.27.121.193 pasted "Another fun example" (15 lines) at nopaste.snit.ch/19417 | 07:38 | |
|
07:42
eternaleye joined
08:39
treed joined
08:46
treed joined
08:49
sri joined
08:50
treed joined
09:15
patspam joined
|
|||
| Tene | pmichaud: right now, some weird stuff happens in some cases with gather/take. I can only reproduce it when it's in a method on a class, not standalone. | 09:20 | |
| nopaste | "tene" at 76.27.121.193 pasted "Weird breaking case for pmichaud++" (21 lines) at nopaste.snit.ch/19418 | ||
|
09:52
iblechbot joined
09:55
TimToady joined
09:58
chromatic joined
10:06
cotto_w0rk joined
|
|||
| dalek | rrot: r43648 | cotto++ | trunk/src/packdump.c: [packfile] make pbc_dump output line up more nicely |
10:07 | |
|
10:10
estrabd joined
10:14
bacek_at_work joined
10:18
cotto_w0rk joined
10:21
cotto_work joined
|
|||
| dalek | rrot: r43649 | mikehh++ | trunk/MANIFEST: Re-generate MANIFEST |
10:23 | |
| rrot: r43650 | mikehh++ | trunk/tools/build/nativecall.pir: Add svn properties |
|||
| cotto | The pbc code makes me sad. I need to go to bed. | ||
| I can't believe Parrot's running on top of that mess. | 10:24 | ||
|
10:24
athomason joined
|
|||
| cotto | Actually that's not true. I can believe it. | 10:24 | |
| sleep & | |||
|
10:30
workbench joined,
estrabd joined,
TimToady joined,
hudnix joined,
jsut joined,
jjore joined,
purl joined,
Infinoid joined,
Khisanth joined,
FullMetalHarlot joined,
wagle joined,
nopaste joined,
eiro joined,
confound joined,
cxreg joined,
Ryan52 joined,
rhr joined,
zostay joined
|
|||
| dalek | rrot: r43651 | mikehh++ | trunk/tools/build/nativecall.pir: fix codetest failure - trailing spaces |
10:39 | |
|
10:43
eternaleye joined
|
|||
| mikehh | fulltest - testr FAIL - t/pmc/eval.t - Failed test: 12 - see TT #1142 | 11:05 | |
| all other tests PASS (pre/post-config, make corevm/make coretest, smoke (#32001), fulltest) at r43651 - Ubuntu 9.10 amd64 (gcc) | |||
| that should be (gcc with --optimize) | 11:06 | ||
|
11:09
purl joined
11:18
cotto joined
11:31
iblechbot joined
11:34
joeri joined
|
|||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32002), fulltest) at r43651 - Ubuntu 9.10 amd64 (g++ with --optimize) | 11:35 | |
|
11:46
cconstantine_ joined
12:15
cotto joined,
bit-man joined
12:22
LaVolta joined
|
|||
| bit-man | Hi | 12:32 | |
| purl | hi, bit-man. | ||
| bit-man | I'm trying to implement opendir et al. and have some problems | ||
| Following docs.parrot.org/parrot/latest/html/...o.pod.html I see that unlink, rmdir, and opendir must be implemented as opcodes | 12:33 | ||
| right ? | |||
| The problem is that I figured out how to implement a PMC but not an opcode | 12:34 | ||
| I mean seems that unlink and rmdir are not implemented, right ? | 12:35 | ||
| By chance ... do I have to look at the src/ops folder ? | 12:37 | ||
|
12:38
cconstantine joined
|
|||
| bit-man | anyone awake ... I'm at GMT-3 ! | 12:41 | |
| almost noon at Europe and toooo early for US | |||
|
12:51
cognominal joined
|
|||
| fperrad | bit-man, I think pdd22_io is out of date, these features are implemented in the OS PMC, see methods rm & readdir | 12:59 | |
| bit-man | So they must be implemented not as op codes but as OS PMC methods ? | 13:00 | |
| fperrad, thanks ! | 13:03 | ||
| fperrad | bitman, the method rm implements unlink & rmdir | 13:08 | |
| the method readdir implements opendir/readdir/closedir | |||
| but try trac.parrot.org/parrot/ticket/1322 | |||
| bit-man | fperrad, the problem with readdir is that just returns pathnames as strings | 13:10 | |
| fperrad, I mean all of OS PMC returns and accepts strings then there's no need to return some FileHandle PMC right | 13:11 | ||
| fperrad, Just lets play with strings | 13:12 | ||
| Am i right ? | |||
| NotFound | What kind of filehandle can rm return? | 13:13 | |
| bit-man | not rm but other methods like readdir | 13:14 | |
| fperrad | bit-man, the opcode open returns a FileHandle PMC | 13:15 | |
| NotFound | Makes more sense to me not having readdir or closedir methods, just opendir. | ||
| bit-man | fperrad, yes but open cant'be used on folders | 13:16 | |
| NotFound | Then read from and close the object returned by opendir. | ||
| bit-man | NotFound, for me too but because I was reading pdd22_io and the scenario depicted was completely different | ||
| then I thought the dir management methods were not implemented | 13:17 | ||
| or that readdir as implemented that way only for some internal usage | |||
| fperrad | OS.readdir() returns an array of pathname, it encapsulates all POSIX stuff ie. opendir/readdir/closedir | 13:18 | |
| NotFound | Which is not very consistent with the interest in lazy lists. | 13:19 | |
| bit-man | fperrad, sure and it's great but because pdd22_io was referring to opendir/reddir/closedir then I thought that an implementation according o it was needed | 13:20 | |
| NotFound, Sorry I don't understand you :-P | |||
|
13:20
kid51 joined
|
|||
| NotFound | bit-man: there is a lot of interest in lazy evaluation in perl6 and parrot. Encapsulating the directory opening/reading/closing in one operation is the opposite way. | 13:22 | |
| Just imagine a directory with 1e10 entries to see the difference. | 13:23 | ||
| bit-man | NotFound, got it | ||
| NotFound, :-) | |||
| NotFound | I've worked with directories of several hundred milliards entries in real work, BTW. | 13:24 | |
| bit-man | Then would be wise to get a single readdir that encapsulates opendir/readdir/closedir | 13:27 | |
| but that instead of returning an array returns a kind-of-iterator that only reatieves the next entry open request | 13:28 | ||
| and doesn't obtains them all and you iterate through using the Iterator PMC right ? | |||
| NotFound | Good idea. Iterating should be faster and shorter than calling methods. | 13:30 | |
| dalek | rrot: r43652 | jkeenan++ | branches/tt1393_retcon: Creating tt1393_retcon in ļæ½svn.parrot.org/parrot//branches |
13:53 | |
| rrot: r43653 | jkeenan++ | tags/tt1393_retcon-43651: Tagging trunk at r43651 so that the tt1393_retcon can later be synched to it. |
|||
| rrot: r43654 | jkeenan++ | branches/tt1393_retcon/src/pmc/retcontinuation.pmc: Deleting statement as suggested by lithos in ļæ½trac.parrot.org/parrot/ticket/1393#comment:29. |
14:09 | ||
|
14:23
hercynium joined
14:39
cconstantine joined
14:58
TonyC joined
|
|||
| mikehh | kid51: I get the same result in tt1393+retcon branch as in trunk | 15:00 | |
| tt1393_retcon branch - fulltest - testr FAIL - t/pmc/eval.t - Failed test: 12 - see TT #1142 | |||
| all other tests PASS (pre/post-config, make corevm/make coretest, test, fulltest) at r43654 - Ubuntu 9.10 amd64 (gcc with --optimize) | |||
| kid51 | mikehh Thanks for the tests. | 15:02 | |
| afk | |||
|
15:02
mikehh joined
|
|||
| mikehh | I was hoping that maybe TT #1142 might have got fixed, but unfortunately not - it only fails with gcc on amd64 - passes with g++ on amd64 and all variants on i386 | 15:02 | |
|
15:02
lichtkind joined
15:13
plobsing_ joined
15:17
PacoLinux joined
15:24
pmichaud joined,
Whiteknight joined
15:30
mikehh joined
15:35
tetragon joined,
Psyche^ joined
15:36
cognominal joined
15:44
mikehh joined
15:48
cotto joined
15:54
mikehh joined
16:06
eternaleye joined
16:09
mikehh joined
16:15
dalek left,
dalek joined
|
|||
| dalek | nxed: r378 | julian.notfound++ | trunk/winxedst1.winxed: replace literal '__eval__' with a const string |
16:25 | |
|
16:28
mikehh joined
16:50
ash_ joined
16:54
mikehh joined
16:59
theory joined
17:12
ash_ joined
17:14
ash_ left
17:18
jan joined
|
|||
| cotto | Coke, ping | 17:18 | |
|
17:19
mikehh joined
17:36
fperrad_ joined
17:43
pdcawley_ joined
17:59
davidfetter joined
18:10
mikehh joined
18:33
Whiteknight joined
|
|||
| Whiteknight | can somebody explain to me how hash freeze/thaw works? | 18:55 | |
| because looking at hash.pmc:freeze and thaw, it doesn't look like any of the values in the hash are actually serialized | |||
| and I seriously don't understand how the thaw() works there, or where those values are supposed to be coming from | 18:56 | ||
|
19:00
theory joined
|
|||
| cotto | The actual work happens in src/hash.c hash_visit. From what I remember, hash_freeze and hash_thaw are called via hash_visit via the visit VTABLE function. | 19:09 | |
| It's a mess and took me a while to figure out back when I worked on Pipp's arrays. | |||
| I think the freeze/thaw VTABLEs are called before/after visit and that visit does most of the work. Don't ask me why. | 19:10 | ||
| plobsing_ | freeze/thaw are for visiting non-recursive contents. visit is for recursing. it's to maintain some tree traversal ordering or something like that, even though we're not traversing a tree | 19:11 | |
| cotto | that makes sense | 19:12 | |
| plobsing_ | it makes less sense than I'd like. | 19:13 | |
| cotto | considerably | 19:14 | |
| mikehh | but there still seem to be problems thewre - see my latest comment (and plobsing++) on TT #1142 | ||
| Whiteknight | okay, so...how does Hash.thaw() get data from the stream into the Hash? | ||
| or is visit called for both freeze and thaw? | 19:15 | ||
| cotto | yup | ||
| Whiteknight | urg | ||
| cotto | yup | ||
| mikehh | :-} | ||
| Whiteknight | is there any reason why this is all so retarded? | 19:16 | |
| plobsing_ | Whiteknight: the values are pulled into the hash in src/hash.c:hash_thaw() | ||
| look for the VTABLE_shifts | |||
| Whiteknight | plobsing: would you mind taking a look at the kill_array_pmc branch? | 19:17 | |
| I'm getting a failure in AddrRegistry.thaw, which is just a subclass of Hash | |||
| it's failing the assertions in Hash.thaw when that gets called | 19:18 | ||
| plobsing_ | what are the key and entry types it is trying to use? | 19:22 | |
| Whiteknight | AddrRegistry uses a keytype of 3, and a value type of -92 apparently | ||
| that's according to GDB, I need to look up the actual value of that enum | |||
| plobsing_ | -92 seems pretty bogus to me | 19:23 | |
| Whiteknight | that's what GDB says for "p (int)enum_type_int" | 19:26 | |
| plobsing_ | Whiteknight: what test is failing? | 19:29 | |
| Whiteknight | all the t/pmc/packfile* tests | 19:30 | |
| packfile.t, packfileannotations, packfilesegment, etc | |||
| plobsing_ | hmmm...you probably did something that rearanges the PMCs in the image (which means you need to bump PBC_COMPAT) | 19:31 | |
| and regen the test pbcs | |||
| Whiteknight | how to regen the test bpcs? | ||
| pbcs? | |||
| plobsing_ | run tools/dev/mk_native_pbc on i386 | 19:32 | |
| Whiteknight | damnit. | ||
| Whiteknight boots up his Ubuntu/x86 VM | 19:33 | ||
| plobsing_ | alternatively, you could modify mk_native_pbc to run anywhere and fix the ensuing bugs on i386 systems that probably can't read 64 bit PBCs | 19:35 | |
|
19:37
chromatic joined
|
|||
| Whiteknight | at least I have a Linux/x86 setup where I can run this stuff now | 19:40 | |
| NotFound | mikehh: TT #1142 doesn't fail for me in amd64 | 19:49 | |
| dalek | rrot: r43655 | whiteknight++ | branches/kill_array_pmc/PBC_COMPAT: bump PBC_COMPAT on suggestion from plobsing++ |
||
| plobsing_ | NotFound: it comes and goes, but can be reliably reproduced with 'make testgcd' | 20:02 | |
|
20:06
davidfetter joined
|
|||
| dalek | rrot: r43656 | whiteknight++ | branches/kill_array_pmc/t/native_pbc (4 files): native_pbc platform updates |
20:07 | |
| Whiteknight | plobsing++ # bumping PBC_COMPAT worked. All tests pass in branch | ||
| mikehh | NotFound: it passes for me with g++ and on i386 - it only seems to fail with gcc and only if it invokes GC mark/collect (which could make it intermittant) | 20:11 | |
| chromatic | You need to disable memory randomization if you're running Linux. | 20:13 | |
| alias freezemem='sudo echo 0 > /proc/sys/kernel/randomize_va_space' | |||
| Whiteknight | purl msg bacek once the kill_array_pmc branch merges into trunk, we can update gc_encapsulate and should not have any of the current problems with it. | 20:14 | |
| purl | Message for bacek stored. | ||
| Whiteknight | parrot-linear-algebra passes all tests on branch | 20:19 | |
| I have a couple ideas in mind for performance improvements to ResizablePMCArray | 20:21 | ||
| maybe that might make a good branch in the near future | |||
| plobsing_ | Whiteknight: are those on ArrayTaskList? | ||
| Whiteknight | plobsing_: no, these are ideas I've only had recently | ||
| more exploratory than "to do" | |||
| dalek | rrot: r43657 | whiteknight++ | branches/kill_array_pmc/DEPRECATED.pod: remove notice about Array PMC from DEPRECATED.pod |
20:23 | |
| Whiteknight | that might be an issue with the pmc_freeze_with_pmcs branch too. Probably needs to bump PBC_COMPAT after adding the ImageIO PMC | 20:28 | |
| purl msg darbelo: On pmc_freeze_with_pmcs branch, I think you can bump PBC_COMPAT to fix most of your test failures | 20:30 | ||
| purl | Message for darbelo stored. | ||
| Whiteknight | actually, I'll test that right now while I have VirtualBox fired up | 20:33 | |
| purl msg darbelo: I just tested locally. bumping PBC_COMPAT fixes some tests but not all of them. Still plenty of failures in the packfile* tests | 20:46 | ||
| purl | Message for darbelo stored. | ||
|
20:55
mj41 joined
20:56
jan joined
20:58
ttbot joined
21:34
PerlJam joined
21:54
eternaleye joined
|
|||
| davidfetter | hello | 21:58 | |
| purl | salut, davidfetter. | ||
| davidfetter | is there some way to arrange for parrot not to use threads? | ||
| dalek | rrot: r43658 | mikehh++ | branches/kill_array_pmc/PBC_COMPAT: PBC_COMPAT requires a tab separated list |
22:00 | |
| mikehh | whiteknight: I get a couple of t/library test failures in make test for kill_array_pmc branch (Class 'Array' not found) in t/library/range.t and t/library/test_more.t | 22:01 | |
| davidfetter - supposed to be but aparently it still loads the threads module | 22:02 | ||
| davidfetter | hrm | ||
| davidfetter thinks threads are just generally fail | |||
| it's that paper from cal that really convinced me | |||
| www.eecs.berkeley.edu/Pubs/TechRpts...2006-1.pdf | 22:03 | ||
| Infinoid | ... is that a problem with threads, or a problem with most languages that use threads? | 22:09 | |
| pmichaud | messages | 22:11 | |
|
22:18
kid51 joined
|
|||
| mikehh | davidfetter: interesting paper - I agree with infinoid however - functional typy languages are much better than imperative ones in handling threads | 22:20 | |
| or should I say concurrency | 22:21 | ||
| davidfetter | mikehh, that paper pretty much convinces me that the whole thread concept is fundamentally broken | 22:22 | |
| mikehh | not really, just depends on how you use it - its a bit like the halting problem, in theory it's out to lunch but still we get meaningful work done | 22:24 | |
| oh and also a lot a of junk (garbage :-}) of course | 22:26 | ||
| Infinoid | I prefer to let other, smarter people than me talk about how to do concurrency well at the language level. My main problem these days is that C just isn't particularly well equipped to handle threads, and I can think of several other languages that aren't much better | 22:42 | |
| when you set out to write a threaded application from the start, you usually end up pretty well off. But I can't even imagine how many hacker hours were spent retrofitting threads into existing apps | 22:43 | ||
| to do this right, gcc would have to give me a big fat warning when I get it wrong, like, "warning: you forgot to unlock, you dork" | 22:44 | ||
| mikehh | to work with something like threads is would be better if the abstraction level was a bit higher, as with garbage collection - it should be implicit rather than explicit | 22:46 | |
| Infinoid | an __attribute__((must_be_locked_before(this_other_var))) would not be amiss, either | ||
| yes. the C threads API is very much nuts-and-bolts | |||
| NotFound | Are you calling for Ada? | ||
| mikehh | yes - we shouldn't be dealing with it directly | 22:47 | |
| go seems to have an interesting approach | |||
| NotFound | The gane? | 22:48 | |
| The game? | |||
| purl | The game is to get a mild case of HSV | ||
| mikehh | no golang.org | ||
| NotFound | code.google.com/p/go/issues/detail?id=9 | ||
|
22:50
PacoLinux joined
|
|||
| Infinoid | hah, Issue 9! It reminds me of plan 9 from outer space | 22:50 | |
| NotFound | Note that the issue is date Nov 10 and the status is still "New" | 22:51 | |
| mikehh | most of the same bunch are involved -:-} | 22:52 | |
| NotFound | Infinoid: a little late for that type of jokes, the thread is full of them X-) | ||
| mikehh: yeah, some "NotFound" for example. | 22:53 | ||
| Infinoid | NotFound: I make being late into an art form :) | ||
| NotFound | mikehh: forget it, I misunderstood | 22:55 | |
| purl | NotFound, I didn't have anything matching it, i misunderstood | ||
| dalek | nxed: r379 | julian.notfound++ | trunk/Makefile: add a 'pir' make target for future setup usage |
23:02 | |
|
23:04
theory joined
|
|||
| kid51 reads that paper | 23:09 | ||
| mikehh | kid51: I tested tt_1393_retcon on Ubuntu 9.10 i386 up to fulltest using g++ with --optimize and gcc -with --optimize - all ok | 23:10 | |
| kid51 | That's good news. | 23:11 | |
| I hope to get some reports from other interested parties, e.g., Util | |||
| dalek | nxed: r380 | julian.notfound++ | trunk/setup. (2 files): Testing setup for plumage usage |
||
| kid51 | Is there anyone on channel now who could test a branch on Win32? | 23:12 | |
| NotFound | kid51: I can, but on my old laptop not very fast | 23:14 | |
| kid51 | speed is definitely not of the essence | ||
| NotFound | Booting it... | 23:15 | |
| kid51 | Can you do a smoke on the tt_1393_retcon branch? | ||
| "... pruning a wild mass of brambles rarely yields a satisfactory hedge." Nice. | 23:17 | ||
| NotFound | kid51: checking out... | 23:20 | |
| purl | i guess checking out is so much work | ||
| kid51 | It's actually spelled: tt1393_retcon | ||
| mikehh | just on the threads issue - quoting Rob Pike | 23:22 | |
| And Go is a really good language for writing multiplex servers in, where you use these things called 'go' routines, which are | |||
| kind of like threads but lighter-weight, and some communication primitives to do the multiplexing. | |||
|
23:23
patspam joined
|
|||
| kid51 | "If [Intel is] successful, and the next generation of programmers makes more intensive use of multithreading, then the next generation of computers will become nearly unusable." | 23:26 | |
|
23:32
cconstantine joined
|
|||
| NotFound | The funny thing is that the multithread dance started at the times of OS/2 1.0 | 23:33 | |
| dngor | OS/2 was threads all the way down. | 23:34 | |
| NotFound | More or less the same as speech recognition. | ||
| dngor: yes, and almost nobody knew how to put them to good use... just like now. | 23:35 | ||
|
23:50
cconstantine joined
|
|||
| NotFound | Oh, great, I must reboot windows to finish install of some cpan module :/ | 23:57 | |