Camelia, the Perl 6 bug

IRC log for #parrot, 2010-08-10

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:00 kid51 In the other TT, I want to do refactoring on headerizer.pl.  But that's second in the queue.
00:02 kid51 sorear:  Melvin Smith was a Parrot contributor back in ancient times, like 2002.  Somehow his personal copyright notice got stuck on many files in IMCC -- which poses licensing problems.  Cf. http://trac.parrot.org/parrot/ticket/304
00:02 Austin Whiteknight: Merged and pushed. It doesn't work now. I don't know if the merge caused it, or if it's a timing problem.
00:02 whiteknight either way, anything is good
00:02 Austin gitorious kakapo master
00:04 wagle joined #parrot
00:08 Austin WTF? How did all that get commented out?
00:09 whiteknight ?
00:09 Austin kakapo_top.pir_tmpl is suddenly all commented.
00:09 Austin That's why some stuff isn't working
00:10 whiteknight ...I may have done tht
00:10 whiteknight that
00:11 Paul_the_Greek Question about .loadlib: None of the tests that do a .loadlib can find the specified file.
00:11 Austin What file?
00:11 Paul_the_Greek Is there something I missed doing?
00:12 Paul_the_Greek sys_ops, bit_ops, debug_ops, etc.
00:12 Austin What os?
00:12 Paul_the_Greek Windows XP.
00:12 dalek kakapo: 70e7a3e | austin++ |  (27 files):
00:12 dalek kakapo: Paying the taxes on invisible methods and a bunch of other idiotic changes in 2.3-2.6.
00:12 dalek kakapo: Signed-off-by: Austin Hastings <Austin_Hastings@Yahoo.com>
00:12 dalek kakapo: review: http://gitorious.org/kakapo/kakapo/commit​/70e7a3ee5ffc9ae5ee3f7442f1a86fc118f21bc8
00:12 dalek kakapo: 56c7fac | austin++ | :
00:12 dalek kakapo: review: http://gitorious.org/kakapo/kakapo/commit​/56c7fac64c40fa46c0219fb59f73b93014d3c5e0
00:12 Austin Look in $PARROT/config_lib.pir, check the value of the [build_dir] setting.
00:13 Paul_the_Greek It points to my top-level build directory.
00:14 Austin Well, I'm out of ideas.
00:14 Austin Are you running the tests from that dir?
00:14 Paul_the_Greek Tests without a .loadlib work fine.
00:14 Paul_the_Greek Yes.
00:15 Paul_the_Greek The weird thing is that the .loadlib specifies, say, sys_ops, but the file is called sys.ops.
00:15 Austin Yea
00:15 Austin But the dll is sys_ops.dll
00:15 Paul_the_Greek I have no such file.
00:16 cotto_work .ops files are postprocessed into C
00:16 Paul_the_Greek I have no ops DLLs at all.
00:16 aloha joined #parrot
00:17 Paul_the_Greek I have no bit.c, either. Hmm.
00:17 Paul_the_Greek Perhaps I should remake my system.
00:20 Austin look in $PARROT/runtime/parrot/dyn*
00:21 Paul_the_Greek Remaking produced the files. Now let me try the test.
00:21 Paul_the_Greek Much better.
00:22 Paul_the_Greek And my new test works so much better. Thanks, Austin.
00:26 Austin Whiteknight: Another push, this one makes the bootstrap test run
00:30 tcurtis pmichaud: ping
00:34 dalek parrot: r48373 | mikehh++ | branches/tt1726_pmc_pod/t/codingstd/pmc_docs.t:
00:34 dalek parrot: fix codetest failure - trailing spaces
00:34 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48373/
00:40 Chandon Good job Parrot. Somehow you just managed to deadlock signaling a condition variable.
00:48 Paul_the_Greek It appears that I need GMP to get bigints.
00:49 mikehh Paul_the_Greek: yes
00:49 mikehh Paul_the_Greek: what platform etc are you working on?
00:49 Paul_the_Greek Windows XP
00:53 Paul_the_Greek Does this look good? http://cs.nyu.edu/exact/core/gmp/
00:54 mikehh Paul_the_Greek: afraid I can't help there, I have been mostly working on Ubuntu distros for the last couple of years
00:54 Paul_the_Greek I'll check around.
00:55 mikehh Paul_the_Greek: that looks ok though
00:56 Paul_the_Greek I'll deal with it tomorrow. Take care, folks.
01:11 Austin Whiteknight: Beware of occurrences of Array::new in the code. These can be replaced by either [ ... ] for simple cases (no splat), or by calls to R*A.new( ... ) for cases with splats. Note that 'splat' in this case is spelled |@foo
01:11 Austin or |<a b c>
01:14 dngor_ joined #parrot
01:17 cotto ~
01:24 dalek parrot: r48374 | Chandon++ | branches/gsoc_threads (18 files):
01:25 plobsing joined #parrot
01:25 dalek parrot: [gsoc_threads] Just need a couple less explosions...
01:25 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48374/
01:26 mj41_ joined #parrot
01:26 baest joined #parrot
01:27 workbench joined #parrot
01:27 Austin_Hastings joined #parrot
01:27 dmagnus_ joined #parrot
01:28 dalek joined #parrot
01:28 wagle joined #parrot
01:31 dalek kakapo: d4fd7b0 | austin++ | :
01:31 dalek kakapo: review: http://gitorious.org/kakapo/kakapo/commit​/d4fd7b0f4f323188ab98220d705d340a84371ee5
01:35 dalek joined #parrot
01:35 dmagnus__ joined #parrot
01:35 Austin_Hastings joined #parrot
01:37 s1n joined #parrot
01:37 Austin joined #parrot
01:38 rurban_ joined #parrot
01:38 sjn joined #parrot
01:38 dmagnus_ joined #parrot
01:38 dalek joined #parrot
01:39 ascent joined #parrot
01:39 mikehh_ joined #parrot
01:39 ttbot joined #parrot
01:40 preflex joined #parrot
01:42 Austin_Hastings joined #parrot
01:43 kid51_at_dinner What are the HTML tags you use when you want to have some inline characters rendered in a monospace font?
01:44 GeJ kid51: <pre> ... </pre>
01:44 kid51 Will <code> work as well?
01:44 Austin_Hastings also <tt>
01:44 kid51 (this is inline, not whole paragraph)
01:45 slavorg joined #parrot
01:49 kid51 Well, at least on chromatic's blogs, none of those 3 work properly.  Only <pre> changes the font ... but it imposes a paragraph.
02:00 mikehh opbots, names
02:00 dalek parrot: r48375 | jkeenan++ | failed to fetch changeset:
02:01 dalek parrot: [codingstd] Merge tt1726_pmc_pod branch into trunk.  Adds new file t/codingstd/pmc_docs.t to flag functions lacking documentation in .pmc files.
02:01 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48375/
02:01 dalek parrot: r48376 | jkeenan++ | branches/tt1726_pmc_pod:
02:01 dalek parrot: Branch has been merged into trunk and is no longer needed at HEAD.
02:01 purl i already had it that way, dalek.
02:01 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48376/
02:01 dalek parrot: r48377 | jkeenan++ | tags/tt1726_pmc_pod-48342:
02:01 dalek parrot: Branch corresponding to tag has been merged into trunk; tag may be deleted.
02:01 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48377/
02:01 davidfetter joined #parrot
02:02 Austin kid51: http://www.w3schools.com/tags/tag_font_style.asp
02:02 GeJ kid51: an alternative would be to encapsulate your code inside a <span> et specify a style for it.
02:02 Austin But beware of style sheets that might override the formatting
02:12 mikehh joined #parrot
02:17 kid51 GeJ:  Thanks, but that's too much work for a simple blog response:  http://tinyurl.com/28qg9o5
02:19 kid51 Austin: Thanks for link.  But perhaps the problem is that that blog's software only supports a limited number of HTML tags.
02:21 Austin Seems like it
02:21 purl somebody said Seems like it was creating a conflict somewhere, which then creates a requires condition
02:24 * kid51 must sleep
02:24 purl $kid51->sleep(8 * 3600);
02:31 * cotto must sleep
02:31 purl Sleep is for the weak.
02:31 cotto much better
03:18 mikehh All tests PASS (pre/post-config, make corevm/make coretest, test, fulltest) at r48377 - Ubuntu 10.04 i386 (g++)
03:18 mikehh t/op/exit.t - TODO passed:   6 in testf
03:25 darbelo mikehh: Do you, by any chance, test on non-x86 (and non-amd64) arches?
03:32 riddochc joined #parrot
03:32 janus joined #parrot
03:33 darbelo purl, msg bacek From some eyeball-and-wallclock testing it looks like the unshared buffers branch make the rakudo build go slower and eat more memory. My guess is heavy 'substr' use in PCT, but I'm not sure how to properly account for that.
03:33 purl Message for bacek stored.
03:34 cotto wasn't that the expected result?
03:36 sorear darbelo: have you optimized compact_pool yet?
03:37 riddochc I've been reading up on how to implement a new language targeting parrot. I just wanted to drop by and thank the people who have put so much work into the documentation. It's good stuff.
03:37 sorear Haha.
03:37 sorear Great timing there.
03:38 cotto riddochc, thanks for the feedback.  You can blame tcurtis for the shape of the squaak tutorial.  He did most of the work to get it up-to-date for the 2.6 release.
03:38 sorear About two weeks ago.
03:39 sorear Actually the documentation has been improved a lot in the last couple months
03:41 riddochc Nice.  Maybe I'm crazy, but I'm really liking Clojure, except for the Java parts. ;)
03:42 tcurtis riddochc: If there's anything wrong with or that could be improved in the Squaak tutorial, please let me know.
03:42 riddochc I'm seriously thinking about Clojure for parrot.  Maybe I'd call it 'pleajure'.  I'll let you know, tcurtis. That's specifically what I've been looking at.
03:45 riddochc Actually, I doubt I'll have the time or energy to do it.  But it's a fun idea, anyway, and an excuse to see what's new with parrot.
03:46 tcurtis riddochc: I feel obligated to warn you that Parrot's threading/concurrency support is rather lacklustre. Although one of the GSoC students has been working on it, so maybe that will change soon.
03:48 riddochc tcurtis: Good to know.  Oh, well.  Perhaps it's a good idea in the long-term.
03:50 GeJ joined #parrot
03:51 mikehh darbelo: I only have x-86 hardware at present, and can only test on that
03:54 mikehh darbelo: I also had problems installing a a VM so need to reboot to test on another distro etc, so I stick to various versions of Ubuntu (usually the latest)
03:58 darbelo mikehh: Not a problem, I asked out of curiosity, mostly. I know we have testers on various OSes, but I don't really what variety we have on the hardware front.
04:00 darbelo sorear: Not yet, really. The only 'optimization' I've done to the gc is remove the flag checking and twiddling.
04:01 darbelo The compact_pool logic is still as... sub-optimal as it is on trunk.
04:02 TiMBuS joined #parrot
04:03 mikehh darbelo: darbelo: TapTinder does some nice testing - http://tt.taptinder.org/
04:04 mikehh bah getting too late for me, my typing is getting erratic
04:04 darbelo sorear: But I'm not sure that acounts for most of the runtime penalty, really. Or the memory, for that matter.
04:06 darbelo mikehh: Yeah, but that's still mostly x86 and x86-64 AFAICT.
04:07 sorear darbelo: AFAIU, the only real reason to bother with unsharing strings is compact_pool improvements
04:07 mikehh darbelo: I know kid51++ has an older Mac (pre x86) that he test on and AndyA++ does some solaris testing
04:07 riddochc It's getting pretty hard to find hardware that isn't x86, x86-64, and ARM these days.
04:09 darbelo It depends on your environment. In some places, SPARC boxes are still pretty common.
04:11 sorear riddochc: it's getting pretty easy to get *very* good emulators these days
04:12 darbelo And there's those chinese mips64 laptops I can't remember the name of right now.
04:13 Austin Loongson
04:16 mikehh I have some $work scheduled later in the year on a new IBM Power 780, maybe I can con^W, suggest that we can test parrot on that
04:17 darbelo Austin++ # Yep, those.
04:17 riddochc sorear: that's true, the emulators are decent.
04:19 mikehh has anyone done any parrot testing on ARM?
04:19 riddochc certainly good enough for testing Parrot.
04:19 darbelo mikehh: To my knowledge, we don't have anyone *building* on ARM on a regular basis.
04:21 darbelo It worked at some point, and it probably still does.
04:21 darbelo But we don't have regular testers, so we don't know for sure.
04:22 riddochc Aren't a lot of the phones out there these days running ARM?
04:23 sorear Yes, but most phones don't have access to the several trillion Hz-seconds required to build Parrot
04:24 darbelo And, parrot doesn't do cross-builds at the moment.
04:25 riddochc That's unfortunate.  Though understandable - cross compiling is tricky stuff.
04:25 darbelo Enabling cross-development was a big part of the parrot-on-RTEMS GSoC, but I don't know how far along that is.
04:25 sorear Especially when the build system involves running tools written in PIR
04:26 darbelo That can be solved by judicious use of a host-side parrot.
04:27 plobsing we would have to distinguish between $(HOST_PARROT) and $(TARGET_PARROT) in the makefile. we don't do that ATM.
04:29 riddochc Well, I know some people who specialize in cross-builds, but they don't really have a lot of copious free time to help out with parrot, sadly.
04:29 mikehh We still have problems relating to a built parrot and installed parrot
04:30 darbelo And since we're asking for ponies, our build could be made smarter about some of the bootsrap steps too.
04:30 riddochc Ouch.
04:30 mikehh darbelo: very much so
04:31 sorear riddochc: Fortunately, we have someone being payed to do this thankless job.
04:31 dalek kakapo: da37fc8 | austin++ |  (5 files):
04:31 dalek kakapo: Fixed accidental delete of Parrot:: namespace sub exports
04:31 dalek kakapo: review: http://gitorious.org/kakapo/kakapo/commit​/da37fc85746bdf001ff1a82836c4af31b67f0624
04:32 mikehh anyway gotta go, it's 5:30 am here and I seriously need a nap
04:33 darbelo sorear: Well, we have some student's getting paid to do *some* thankless jobs. I don't know of anyone outside of the GSoC getting paid to hack on parrot.
04:35 riddochc fwiw, I think the parrot and perl 6 projects have managed to avoid the biggest problem in the industry - being in too much of a hurry to do anything well.  I know you've gotten a lot of flack for the timelines of the projects, but I think you're better off doing it this way.
04:36 riddochc I've had enough of barely-working software getting shipped too early.  So, cheers to parrot and perl 6.
04:40 riddochc Have fun, everyone.  I'm off for now.
04:40 riddochc left #parrot
04:54 dalek parrot: r48378 | plobsing++ | branches/dynop_mapping/src/pmc (2 files):
04:54 dalek parrot: rework OpLib and Opcode to fit new model better.
04:54 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48378/
04:54 dalek parrot: r48379 | plobsing++ | branches/dynop_mapping/t/pmc/pmc.t:
04:54 dalek parrot: fix test - OpLib now requires an initializer
04:54 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48379/
05:25 Austin msg whiteknight Just pushed some fixes that get the UnitTest library passing bootstrap. Replaced all method with our-method, which is probably stupid in the long run.
05:25 purl Message for whiteknight stored.
05:27 dalek kakapo: 0075f45 | austin++ |  (108 files):
05:27 dalek kakapo: Got Testcase's working (bootstrap). Replaced all methods with our-method
05:27 dalek kakapo: review: http://gitorious.org/kakapo/kakapo/commit​/0075f4526752796a4478cc635157c994f4092415
05:45 Austin msg whiteknight prove -r --ext=nqp -e parrot-nqp t/bootstrap # this works for me - all bootstraps pass.
05:45 purl Message for whiteknight stored.
05:51 dalek kakapo: a46ea16 | austin++ |  (3 files):
05:51 dalek kakapo: Got all bootstrap tests working (String::isa)
05:51 dalek kakapo: review: http://gitorious.org/kakapo/kakapo/commit​/a46ea1697c029ceb618a89628f894362cc3c6f66
05:54 Andy Thanks moritz++ http://perlbuzz.com/2010/08/im-g​lad-to-hear-rakudo-is-slow.html
06:05 dalek parrot: r48380 | plobsing++ | branches/dynop_mapping (3 files):
06:05 dalek parrot: check for core_ops (doesn't occur as a loaded dynoplib).
06:05 dalek parrot: also update core ops to report library name as "core_ops" in stead of "core"
06:05 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48380/
06:21 uniejo joined #parrot
06:21 dalek TT #1735 created by plobsing++: Pmc2c line numbering confuses gdb
06:21 dalek TT #1735: http://trac.parrot.org/parrot/ticket/1735
06:30 jsut_ joined #parrot
06:36 LoganLK joined #parrot
07:14 dalek parrot: r48381 | plobsing++ | branches/dynop_mapping/src/pmc/oplib.pmc:
07:14 dalek parrot: include appropriate header for fetching core_ops lib
07:14 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48381/
07:30 dalek parrot: r48382 | plobsing++ | branches/dynop_mapping/t/pmc/oplib.t:
07:30 dalek parrot: update oplib tests to use initializer
07:30 dalek parrot: TODO: decide how Opcode comparisons work
07:31 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48382/
07:54 Casan joined #parrot
08:45 arnsholt joined #parrot
08:46 arnsholt_ joined #parrot
08:50 AndyA joined #parrot
09:27 bacek joined #parrot
09:35 aloha joined #parrot
09:37 rurban_ joined #parrot
09:41 cognominal joined #parrot
10:16 clinton joined #parrot
10:23 AndyA joined #parrot
10:42 dalek kakapo: 9bac5a4 | austin++ |  (2 files):
10:42 dalek kakapo: Checkpoint. Trying to get FileSystem up. DepQ may not be running
10:42 dalek kakapo: review: http://gitorious.org/kakapo/kakapo/commit​/9bac5a48eeca8686286b106ec2c087a0a6239675
10:42 dalek kakapo: 5f2617b | austin++ | src/ (24 files):
10:42 dalek kakapo: Got UnitTest library restored, at least somewhat. Reverted damage to Matchers
10:42 dalek kakapo: review: http://gitorious.org/kakapo/kakapo/commit​/5f2617bbe1e45a36696d0d4244a215c004bef5bc
10:55 GeJ_ joined #parrot
11:07 GeJ joined #parrot
11:07 luben_work joined #parrot
11:11 lucian joined #parrot
11:14 slavorgn joined #parrot
11:45 wagle joined #parrot
11:46 rurban_work joined #parrot
11:50 whiteknight joined #parrot
11:59 clinton joined #parrot
12:09 rurban_work left #parrot
12:15 kid51 joined #parrot
12:41 lucian_ joined #parrot
12:44 lucian__ joined #parrot
13:01 Coke riddochc++\
13:02 Coke riddochc++ #even
13:04 Andy joined #parrot
13:09 Coke is TT#1735's bug that the line number needs to be fixed?
13:09 Coke (because there's already a ticket for that.
13:10 Coke ... that I cannot find. ah well.
13:16 Andy Oh sure, Coke. Make ME do the modeline development.
13:16 Andy Do we have an existing .t that would be good to check for it in?
13:18 bluescreen joined #parrot
13:24 Coke codingstd/*coda*.t
13:24 Coke which has a check for existing ones.
13:24 Coke but I'd make it a patch, because it's going to cause "make codetest" to fail.
13:41 bluescreen joined #parrot
13:48 plobsing joined #parrot
13:52 bluescreen ~prod support
14:03 jdv79 i hadn't realized how much nqp had progressed since last i looked.  nice work.
14:04 bubaflub joined #parrot
14:07 ruoso joined #parrot
14:25 Paul_the_Greek joined #parrot
14:25 Paul_the_Greek Hello everyone.
14:25 Paul_the_Greek Does anyone have an idea which file has to be where in order for configure to decide I have GMP installed?
14:27 moritz typically the GMP development files
14:27 moritz ie headers
14:28 Paul_the_Greek So gmp.h has to be somewhere? Do you know where?
14:28 moritz where the compiler can find it.
14:29 Paul_the_Greek And a .dll somewhere, I presume (I'm on Windows).
14:29 moritz it's /usr/include/gmp.h for me
14:29 Paul_the_Greek I would think putting it somewhere in the MinGW tree would do the trick.
14:30 moritz Paul_the_Greek: write the simplest program you can think of that uses GMP. Try to compile it. If it works, your installation is fine
14:30 moritz or maybe use an example program from the gmp documentation
14:30 Paul_the_Greek Configure doesn't see it. I'll keep futzing.
14:31 moritz if you want to burn your time, sure go ahead fuztzin
14:32 Paul_the_Greek Trying to figure out how to compile a program is exactly as difficult as trying to figure out where Configure wants it.
14:32 Paul_the_Greek That's because I have absolutely no idea where to put the GMP files.
14:33 moritz IME that's not the case. If you try to compile stuff, the compiler actually says what's missing
14:33 moritz whereas configure.pl just says "no."
14:33 moritz though maybe with verbose output...
14:35 Paul_the_Greek It's installed with Strawberry Perl, too, but that doesn't help.
14:40 Paul_the_Greek I'll try what you suggest, but I don't know why I couldn't compile a program if the .h file is in include and the .dll file is in bin.
14:41 Coke the test configure runs is to add -lgmp to the compile options and try to run a c program.
14:41 moritz that's what the compiler is going to tell you :-)
14:42 Coke there's no check for any libs or executables. just "does this program compile and generate the output I expect."
14:42 Coke Paul_the_Greek: are you adding the lib to the command line for the compiler?
14:44 Paul_the_Greek Sorry, I haven't tried to compile a standalone program using GMP. I will do that. I just thought someone would know where to install GMP on Windows.
14:50 Coke I'd ask jnthn or particle.
14:51 Coke but If this was unix, I'd just install it, and it's either in the right spot, or I'd have to tell parrot where it was when I configured.
14:54 mikehh joined #parrot
14:55 Paul_the_Greek I can't find a Windows installer, only a gzipped file.
14:59 Paul_the_Greek Okay, compiling with -l has no problem with the include, but then complains about entry points. That makes sense.
15:03 Paul_the_Greek When I use the -lgmp option, what file is it going to look for?
15:05 theory joined #parrot
15:05 Andy Coke: Or I can both update codingstd/*coda*.t AND update the codas.
15:06 Coke Andy: that would be ideal, yes.
15:06 Coke I was trying to provide smaller work-chunks.
15:06 Coke Andy++
15:06 Andy I DO NOT NEED SMALL WORK CHUNKS
15:10 dafrito haha <3
15:11 mikehh Hey Andy, you see we have this small problem with parrot, it is called Garbage Collection, gc foir short, and if you are looking for a smallish chunk of work ....
15:11 Andy mikehh: I NEED WORK CHUNKS THAT I AM SUFFICIENTLY SMART ENOUGH TO HANDLE.
15:12 mikehh Andy: ah well it was worth a try :-}
15:15 Paul_the_Greek Can you tell me what the -lgmp option does and what file it looks for? There is no documentation on -l from gcc --help --verbose.
15:17 Coke -l<library>
15:17 atrodo it tells gcc to link to the gmp library, which under unix would be libgmp.a (pretty sure)
15:17 Coke http://gcc.gnu.org/onlinedocs/gc​c/Link-Options.html#Link-Options
15:18 Paul_the_Greek When I installed GMP on Windows, I got libgmp-3.dll and libgmp.la
15:20 Paul_the_Greek Oh, that documentation helps, perhaps. Thanks Coke. No such option display with gcc --help --verbose.
15:22 atrodo the key is that those two files should be found in ld's library path.  You can try a "export LDFLAGS=<path>" before you configure
15:23 Coke atrodo: he's on windows.
15:24 atrodo hehe, i saw mingw and went the extra mile to assume bash.  I would assume mingw checks env variables as well
15:29 Paul_the_Greek Success!
15:29 purl well, success is finding king size papers
15:30 Paul_the_Greek That was much harder than it needed to be.
15:30 Paul_the_Greek Thanks, folks.
16:19 mikehh All tests PASS (pre/post-config, make corevm/make coretest, test, fulltest) at r48382 - Ubuntu 10.04 amd64 (gcc with --optimize)
16:22 theory joined #parrot
16:27 robin-gvx joined #parrot
16:55 cotto_work ~~
16:55 atrodo hey cotto_work
16:55 purl cotto_work is, like, always at work or cotto's employed alter ego
16:55 atrodo it makes it so difficult to actually say hello to someone sometimes
16:56 cotto_work you mean purl?
16:57 atrodo Yep
17:10 Paul_the_Greek Well, that was lovely, but it's GMP 4.1, which is worthless.
17:10 Paul_the_Greek No chance anyone here runs on Windows, is there?
17:22 bubaflub_ joined #parrot
17:37 rurban_ joined #parrot
17:56 Coke Hello, Reini.
17:57 theory_ joined #parrot
18:00 dalek rakudo: 22a11d0 | moritz++ |  (22 files):
18:00 dalek rakudo: Merge branch 'master' into match-call
18:00 dalek rakudo: Conflicts:
18:00 dalek rakudo:   src/core/Match.pm
18:00 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​2a11d0616187bdd46b49981ab584406e751341e
18:00 dalek rakudo: 77d4761 | moritz++ | src/core/Match.pm:
18:00 dalek rakudo: fix wrongly resolved merge conflict
18:00 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​7d47614ac6ce0c5b61d3d60f390a6b0a3df487b
18:00 dalek rakudo: 9412433 | moritz++ | src/ (3 files):
18:00 dalek rakudo: !~~ now topicalizes too
18:00 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​4124334809eba4e6c733ae5d8a3d708ed7741c4
18:00 dalek rakudo: 87c82c2 | moritz++ | src/ (4 files):
18:00 dalek rakudo: Merge branch 'match-call'
18:00 dalek rakudo: This turns m// into an immediate call, makes Match.ACCEPTS return self, and
18:00 dalek rakudo: sets the topic for negated smartmatch (!~~)
18:00 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​7c82c2c833223dd6d413cd5c92dda2cae306425
18:08 bubaflub joined #parrot
18:13 Paul_the_Greek joined #parrot
18:30 robin-gvx joined #parrot
18:33 cotto_work #ps in 118
18:35 dalek rakudo: fcf4f36 | moritz++ |  (3 files):
18:35 dalek rakudo: adverbs for m//
18:35 dalek rakudo: Also update ChangeLog
18:35 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​cf4f368cfc62cfd85dcfc499c52880dc966cb1d
18:39 luben_work left #parrot
18:39 Chandon joined #parrot
19:27 smash joined #parrot
19:27 smash hello everyone
19:28 moritz smash!
19:34 lucian joined #parrot
19:36 theory joined #parrot
19:38 mikehh joined #parrot
19:40 tcurtis joined #parrot
19:58 Austin pmichaud++ #'multi' works in nqpr
19:58 Austin x
20:00 dalek kakapo: b9c38b8 | austin++ |  (4 files):
20:00 dalek kakapo: Got FileSystem working with multi methods (pmichaud++)
20:00 dalek kakapo: review: http://gitorious.org/kakapo/kakapo/commit​/b9c38b8f41a8f87660e9ed3f4e3bd70d45797235
20:01 cotto_work It's nice to have multis in nqp
20:07 dalek parrot: r48383 | Chandon++ | failed to fetch changeset:
20:07 dalek parrot: [gsoc_threads] Merge from trunk.
20:07 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48383/
20:20 smash nominations for next parrot foundation board of directors are up, as soon my e-mail hits parrot-members
20:21 chromatic joined #parrot
20:25 theory joined #parrot
20:26 AndyA joined #parrot
20:30 mikehh #ps time
20:32 AndyA_ joined #parrot
20:40 GeJ Bonjour everyone.
20:40 chromatic aloha
20:41 Coke ho.
20:41 tcurtis Hello.
20:43 cotto_work mro?
20:43 purl mro is the Digital sitecode for Marlboro, MA or Method Resolution Order or http://www.python.org/2.3/mro.html or one solution to the 'Diamond Problem' at http://en.wikipedia.org/wiki/Diamond_problem or Method Resolution Order or a pragma, see the 5.10 docs for details
20:43 cotto_work Paul_the_Greek: ^
20:43 chromatic When you dispatch a method, which class's variant of that method gets called
20:44 Coke MMDRO!
20:45 Topic for #parrotis now Parrot 2.6.0 | parrot.org Log:  irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | merge html_cleanup (talk to Coke), merge gc_* branches, fix/replace/optimize hashing
20:46 darbelo chromatic: In my case: (0) Point at the area where we need to dig. (1) Explain what we need to do (2) Give a 'easy' way to determine success of the task. (3) Prod periodically.
20:47 darbelo (iv) Make me stop talking on the wrong chanel.
20:56 Coke msg bacek I'll buy you a beer if you finish gc_massacre!
20:56 purl Message for bacek stored.
21:03 whiteknight joined #parrot
21:12 cotto_work Shipping might be pricey.
21:12 chromatic seen plobsing
21:12 purl plobsing was last seen on #parrot 16 hours, 45 minutes and 9 seconds ago, saying: we would have to distinguish between $(HOST_PARROT) and $(TARGET_PARROT) in the makefile. we don't do that ATM.
21:13 whiteknight hash_allocator branch is a priority?
21:13 dalek parrot: r48384 | darbelo++ | branches/unshared_buffers/s​rc/string/encoding/utf8.c:
21:14 dalek parrot: Make utf8 not depend on str_new.
21:14 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48384/
21:14 dalek parrot: r48385 | darbelo++ | branches/unshared_buffers/s​rc/string/encoding/utf16.c:
21:14 dalek parrot: Make utf16 not depend on str_new.
21:14 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48385/
21:14 dalek parrot: r48386 | darbelo++ | branches/unshared_buffers/s​rc/string/encoding/ucs2.c:
21:14 dalek parrot: Make ucs2 not depend on str_new.
21:14 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48386/
21:14 dalek parrot: r48387 | darbelo++ | branches/unshared_buffers/s​rc/string/encoding/ucs4.c:
21:14 dalek parrot: Make ucs4 not depend on str_new.
21:14 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48387/
21:14 dalek parrot: r48388 | darbelo++ | branches/unshared_buffers/src/string/encoding (5 files):
21:14 dalek parrot: Add smarter handling of constant and external strings.
21:14 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48388/
21:17 * smash & brb
21:22 luben joined #parrot
21:22 Util Paul_the_Greek: where did you find 4.1.3 binaries?
21:27 luben hello guys
21:28 Paul_the_Greek Util: http://cs.nyu.edu/exact/core/gmp/
21:30 cotto_work hi luben
21:30 luben I have seen that hash table rework is a high priority task. I was looking at he hash.c code and have a pretty good understanding of ist internal logic
21:31 luben I have some quick optimizations that could get us around 3-4%
21:32 cotto_work luben: by all means, nopaste a patch or file a ticket
21:32 luben but the current code is ok as it is
21:33 luben I have some design questions
21:33 dukeleto luben: that sounds awesome, maybe you can create a svn/git branch for that work
21:34 luben if we want to gradually redesign the hash logic, this optimisations will be reverted (that depends on the new design))
21:35 whiteknight luben: what kind of redesign are you thinking?
21:35 luben Also I would like to talk about the overall principles
21:36 Paul_the_Greek I'm interested in listening in on the hash issues.
21:36 luben but I am not quite sure that it will not break parrot in other parts
21:36 dukeleto luben: that is what our test suite is for :)
21:36 luben that poke with the hash internals
21:37 Util Paul_the_Greek: Any reason not to jump ahead to GMP 5.0.1?
21:37 * dukeleto is surprised to hear that GMP 5.x is out
21:37 Paul_the_Greek I don't think so. The BigInt tests check for >= 4.1.4
21:37 luben so, first, one quick question: I have seen that hash_table struct has a pointer to its container
21:38 luben and on each update it checks if the container is defined as constant and refuse the operation in such a case
21:39 chromatic Seems backwards, doesn't it?
21:39 luben It is used in such a manner by OrderedHash.pmc and Namespace.pmc
21:40 luben My logic is that enforcing the policy of the container is work of the container, not the underleing data structure
21:40 chromatic Agreed.
21:41 dukeleto bubaflub: things proceeding? stuck on anything?
21:41 bubaflub dukeleto: yeah, i'm actually hacking on it as we speak
21:41 dukeleto bubaflub: goodly :)
21:41 bubaflub dukeleto: just a bummer knowing that i won't make my original target
21:41 NotFound luben: killing that pointer to the container will be good.
21:42 dukeleto bubaflub: it happens. don't think about that, and let's see if we can get out-of-dir compiling working, that is a big step in the right direction
21:42 luben the fast optimisations: we could remake hash_mark_keys,hash_mark_values and hash_mark_both to walk lineary the buckets
21:42 bubaflub dukeleto: i still want to finish what i set out to do, but it just might take a while
21:43 luben and we destinguish occupied buckets by key!=NULL
21:43 chromatic luben, I think that only works if the bucketlist/freelist are linear.
21:43 luben yes. but most of the time they are (if we do not have a lot of deletes)
21:44 bacek joined #parrot
21:44 dukeleto bubaflub: that is what everyone wants. Let's try to get something tangible by the hard-pencil date, and then we can work on this a bit more leisurely :)
21:44 luben hash buckets are allokated lineary from the top to the tail
21:44 cotto_work bubaflub: whiteknight didn't get his original gsoc target either.  Don't worry too much about it.
21:44 bubaflub dukeleto: indeed.  the first half is tangible - i've got the secret sauce to do a minimum libparrot for cross-compiling.
21:45 aloha joined #parrot
21:45 dukeleto bubaflub: you will pass as long as everyone thinks you tried your best. We all know you are dealing with some hairy internals across two very different projects, which ain't easy.
21:45 luben As I said that I am not so sure about long term viability of this aproach
21:46 luben The other idea i have is a little more complex
21:46 mikehh Paul_the_Greek: http://gmplib.org/
21:46 luben it is not local optimisation, but a whole (gradual) rework of the hash data structure
21:47 bubaflub dukeleto: well, the good news is i'm unstuck from that problem i reported on tuesday.
21:47 Paul_the_Greek mikehh: They have no binaries for Windows. Not sure they have binaries at all.
21:47 bubaflub dukeleto: Configure.pl now will handle making the dir's necessary in the build directory.  Now, gotta hack the Makefile to reference the source dir where appropriate
21:47 chromatic Reworking the whole hash seems reasonable.
21:47 mikehh Paul_the_Greek: just the source
21:47 luben My curiousity was provoked by 75% rule that was removed by chromatic
21:48 * smash back
21:48 luben because there is such a rule in hash tables design
21:48 Paul_the_Greek Yes, but it can't be built on Windows. At least not that I can figure.
21:49 luben but this is not our case (we use separate chaining with pre-allocated space)
21:49 chromatic The rule as I understood it was "Reallocate when you're 80% full"
21:49 bubaflub joined #parrot
21:49 mikehh Paul_the_Greek: maybe you should install Ubuntu 10.04 LTS, it can be installed within Windows if you like
21:49 luben yes, not it does not concern separate chaining hash implementations
21:50 luben s/yes, not/yes/
21:50 Paul_the_Greek mikehh: Ouch. I'm a Windows guy. Anyway, we have to get binaries for our users, no?
21:50 luben And I nave a rather radical idea
21:51 luben in the situation now we have the same size of hash buckets and hash_indexes
21:51 mikehh Paul_the_Greek: I know saome of the rakudo developers use Windows, jnthn for example, you could check with him maybe
21:52 Paul_the_Greek mikehh: I will check.
21:52 * tcurtis needs to get around to figuring out how to get Parrot's configure to recognize his libgmp installation at some point.
21:53 luben indexes store a pointer to a bucket: i = hash(key)%N = index[i] = *bucket
21:53 luben could we eleminate the entire hash indexes and address directly the buckets
21:53 chromatic Makes sense.
21:54 dukeleto tcurtis: you may need to add some directories to LD_LIBRARY_PATH if you installed libgmp in a non-standard place
21:54 luben we will have a 2/3 of our size
21:55 luben and my profiling the previous 2-3 days have shown that the size of the data structures is primal factor to hash table performance
21:55 luben example: just adding additional field in bucket struc could lower the performance with 5-6%
21:56 chromatic Rakudo creates some 44,000 hashes to start up.
21:56 Paul_the_Greek Wow.
21:56 luben yes, I have seen in the callgring/cachegrind profiles... it's huge
21:57 luben my concerns are:
21:57 luben there are some other pieces of parrot that seem to poke with current hash_indexes:
21:58 luben OrderedHash and args.c
21:58 luben (probably for performance reasons)
21:58 chromatic Right.
21:59 luben if we eleminate indexes they could use straight addressing and have the same benefit
22:00 chromatic I'm all for this.
22:00 Paul_the_Greek So there is a block of buckets and then also a vector of indexes into them?
22:00 luben if we make such a elemination, we have something that is known as "coalesced hashing" or "coalesced chaining"
22:00 luben here is quick overview http://en.wikipedia.org/wiki/Coalesced_hashing
22:01 Paul_the_Greek I believe Lua uses coalesced hashing.
22:01 luben it is very efficent memory-wise, with very fast inserts and lookups
22:02 luben but with slower deletes
22:02 luben and more complex expanding algorythm
22:02 Paul_the_Greek I implemented a coalesced hash table for a language I was working on. You can take a look at it if it would be of any help.
22:03 luben I have some prototypes
22:03 luben just to get the idea
22:03 Paul_the_Greek It also moves an entry that is not in its home position if a new entry comes along with that home position.
22:04 luben but my understanding is thet we should gradually morph our hash in the desired type
22:04 chromatic If we can get rid of container before the 2.7 release, we should see modest performance and memory improvements.
22:05 Paul_the_Greek luben: How can I send you a small chunk of text, the description of my hash table?
22:05 cotto_work Paul_the_Greek: nopaste
22:05 Paul_the_Greek nopaste?
22:05 purl nopaste is http://nopaste.snit.ch (works with the script in $_PARROT/tools/dev/nopaste.pl) or http://paste.scsys.co.uk or http://www.extpaste.com or http://gist.github.com or App::Nopaste or http://codepeek.com/paste/ or (: pastebot)
22:06 luben actually it is not a lot of work: just mouve i check and exception raise from hash.c to corresponding PMCs
22:06 chromatic Sounds easy to do.
22:07 luben yes, it is used only in src/pmc/orderedhash.pmc and src/dynpmc/dynlexpad.pmc
22:09 luben also, if we move now to liner scan in mark functions, they will work as is without indexes
22:09 chromatic Can you make two patches for those?
22:09 luben a could send a patch tommorow
22:09 luben yes
22:10 luben I have done it and revered, just to explore other routes
22:13 chromatic Thanks!
22:13 bubaflub dukeleto: i've confirmed that my changes work; all that remains for out of directory building is fixing the Makefile to point to the source dir explicitly.  i'll be working on it a bit tonight.
22:14 luben after elimination of bucket indexes (this will gain us some performance) we could gain more performace if we need it (compromising memory)
22:14 luben with allocation of overflow area
22:16 luben elemination bucket indexes will speed the hash put/get functions because we will have one less indirection
22:16 luben and will reduce the memory size
22:17 luben I will send the patch for mark functions in an hour
22:20 luben Also 1 question: full hash revamp is not planned for 2.7 release
22:20 chromatic Right.
22:20 dalek parrot: r48389 | darbelo++ | failed to fetch changeset:
22:20 dalek parrot: Sync with trunk.
22:20 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48389/
22:21 luben ok:) because I am plannong a 2 week vacation from next monday
22:23 tcurtis What's the proper way to make a PAST::Val produce a Float rather than an Integer? :returns<Float> doesn't appear to work.
22:40 bacek joined #parrot
22:40 aloha joined #parrot
22:44 luben ok, here is a patch for linear scanning of the buckets on gc_mark : http://pastebin.com/m6KAsbw5
22:46 luben it gives me a moderate improvement in rakudo startup benchmark: from 690ms to 660ms
22:48 luben by my calculation it improvement of 4%
22:49 chromatic Let me use Callgrind.
22:50 luben my benchmark is : $time parrot --hash-seed=D3C21BCF466DA1 ../rakudo/perl6.pbc -e ''
22:52 dukeleto luben: are you doing multiple runs or is that % improvement from a single run?
22:52 luben we should consider also CPU cache misses, not only instructions executed
22:52 luben yes, it is not from a single run
22:52 chromatic I'll run Cachegrind too.
22:53 luben first run is discarded because of the disk IO
22:53 luben then I make 10 runs
22:54 luben and discard the extremes
22:54 dukeleto luben: sounds great, just checking :)
22:54 dalek parrot: r48390 | chromatic++ | trunk/src/call/args.c:
22:54 dalek parrot: [PCC] Tidied code; no functional changes.
22:54 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48390/
22:54 dalek parrot: r48391 | chromatic++ | trunk/src/pmc/hash.pmc:
22:54 dalek parrot: [PMC] Reordered some Hash code for clarity.
22:54 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48391/
22:54 luben and make an average of the rest
22:54 luben chromatic, I use this: valgrind --tool=callgrind --cache-sim=yes --branch-sim=yes
22:55 luben valgrind Release 3.5.0
22:55 chromatic I haven't used --cache-sim, good idea.
22:55 luben and than analyze data in kcachegrind
22:56 luben this simulates an avarage CPU cache
22:57 luben you could set as an options the exact parameters of the CPU cache hierarhy, but I hope that they have picked a reasonable defaults
22:57 jsut_ joined #parrot
22:59 Paul_the_Greek How would I contact a Rakudo person named jnthn?
22:59 luben jnthn?
22:59 purl i think jnthn is giving a lecture at the uni friday afternoon i think
22:59 cotto_work ping him here or ping jonathan in #perl6 in freenode
23:00 tcurtis cotto_work, Paul_the_Greek: I'm fairly certain jnthn is jnthn both here and in #perl6.
23:00 Paul_the_Greek join #perl6
23:00 Paul_the_Greek Oops.
23:00 cotto_work for some reason I thought otherwise
23:00 cotto_work my mistake
23:01 chromatic So far that patch looks like an improvement, luben.
23:02 Paul_the_Greek When you guys leave a message for someone here, where does it show up?
23:03 chromatic msg Paul_the_Greek Here's how purl works.  Respond to me in channel.
23:03 purl Message for paul_the_greek stored.
23:03 dalek plparrot: e9bcd4a | (Jonathan "Duke" Leto)++ | html/docs.html:
23:03 dalek plparrot: Link to the PGCon website, which has the presentation and audio
23:03 dalek plparrot: review: http://github.com/leto/plparrot/commit/e​9bcd4a3337b8c56d7ababb3bdbb0007e689a803
23:06 chromatic luben, it's an improvement here of modest performance (0.657% on Callgrind, about that for Cachegrind).
23:06 aloha joined #parrot
23:13 luben it is possible, my calculation was based on wall clock (64bit linux)
23:13 lucian joined #parrot
23:14 dukeleto luben: yeah, wall clock isn't very useful for benchmarking purposes, since it is a function of the load of the machine
23:16 luben there is no other load
23:16 luben or not considerable load
23:19 Austin Paul_the_Greek: say something
23:19 purl something
23:19 Paul_the_Greek Hey ho!
23:19 Austin And purl says, "You have a message!"
23:20 Util Paul_the_Greek: Did you try to build GMP with MinGW+MSYS, or just plain MinGW ?
23:20 Austin Then you say, "purl, messages"
23:20 Paul_the_Greek Plain MinGW. Except I couldn't convince myself that the makefile would even work on Windows.
23:21 Paul_the_Greek I must admit I didn't try too hard.
23:23 mikehh Paul_the_Greek: you can try a ping, as in name: ping, which may gender a response, or otherwise msg
23:23 Austin engender or generate
23:24 Austin (or produce or yield or elicit)
23:24 mikehh I think I meant to say render :-}
23:24 Austin You didn't, really.
23:25 Austin Yes! That worked.
23:26 hercynium joined #parrot
23:26 mikehh Austin: early hours of the mornin' for me at present :-}
23:26 Austin :-)
23:27 Austin clock
23:27 Austin clock?
23:27 purl Austin: LAX: Tue 4:27pm PDT / CHI: Tue 6:27pm CDT / NYC: Tue 7:27pm EDT / LON: Wed 12:27am BST / BER: Wed 1:27am CEST / IND: Wed 4:57am IST / TOK: Wed 8:27am JST / SYD: Wed 9:27am EST /
23:28 * mikehh am on BST
23:28 Austin Yoiks
23:29 * mikehh at least so they tell me
23:29 Austin We are EUROPEANS!  You may take our currency, but you'll never take our ... TIME ZONES!!!
23:31 mikehh you colonials don't seem to appreciate these things ...
23:32 Austin Heh. Don't point the finger at us. Did you see the Sovie^W Cissi^W Russians are talking about legislating away about 2/3ds of theirs?
23:33 Austin (Admittedly, we only use two...)
23:35 mikehh right, like when I was in Hawaii , that time...
23:36 luben chromatic, it is a step in the direction of eleminating hash_index and the code is more simple, but it assumes certain properties of the bucket allocation (linear from the top)
23:36 * chromatic found a 4.383% performance improvement in Parrot startup.
23:36 Austin Yeah, they don't even use clocks, I think.
23:37 Austin But all the ones they do have are set to Pacific time, so they know when the next planeload of tourists is taking off..
23:38 Austin Ahh, multi-methods. You were doing so well until I tried to actually CALL you...
23:40 luben I think cachegrind defaults are very conservative (something like P3). now I am running some passes to compare the default with the cache hierarchy of current CPUs
23:47 sorear chromatic: Do you feel TODO is a failing test?
23:47 chromatic I only TODO expected failures.
23:48 chromatic For example, an unimplemented feature I want to test anyway gets a TODO.
23:48 sorear Also, what do you recommend we do about the 2 hour Perl 6 testsuite, it's driving me up the wall
23:49 chromatic NQP-rx profiling and optimization.
23:50 Paul_the_Greek Take care, folks.
23:53 chromatic My intuition says that there are a handful of hotspots there that need optimization at the PIR/PCT level, not the Parrot level.
23:53 chromatic (Setting aside the fact that improving Parrot hashing, register allocation, and GC performance will improve Rakudo dramatically.)
23:54 ruoso joined #parrot
23:55 chromatic Rakudo's runtime isn't super speedy, but something in the parsing stage has the feel of an algorithmic problem.
23:55 ttbot Parrot trunk/ r48393 i386-linux-thread-multi make error http://tt.taptinder.org/file/cmdout/365428.txt ( http://tt.taptinder.org//bui​ldstatus/pr-Parrot/rp-trunk/ )
23:59 Psyche^ joined #parrot

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

Parrot | source cross referenced