|
Parrot 4.4.0 "Banana Fanna Fo Ferret" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC Set by moderator on 15 May 2012. |
|||
| dukeleto | NotFound: does that mean you want testing on clang? | 00:09 | |
| whiteknight | blah. I hate these stupid python gdb extensions more than anything | 00:11 | |
| NotFound | dukeleto: not a bad idea | ||
| whiteknight | Every time I try to debug parrot I have to rm blib/lib/*.py* | 00:13 | |
| and that's a nuisance at best | |||
| dukeleto | whiteknight: that sounds no bueno | ||
| whiteknight: i have never run into that. exactly what happens? | |||
| whiteknight | I don't know where those stupid things get loaded, and I have no idea how to turn it off | ||
| They're a bunch of "pretty print" helpers for parrot types, which work nicely sometimes, unless you want a non-pretty look at a pmc or a string | 00:14 | ||
| and you get a python exception if the string has a "binary" encoding, or a NULL one | |||
| and in those cases I can't look at the STRING at all, pretty or not | |||
| NotFound | A debugger that fails with something unexpected kinda breaks the purpose of a debugger. | 00:25 | |
| dalek | rrot/notfound/pbc_to_exe_winxed: c7e2a4d | NotFound++ | / (3 files): update the infrastructute to build pbc_to_exe from the winxed source |
00:26 | |
| NotFound | Now it's a bit easier to test. | 00:27 | |
| dalek | rrot/whiteknight/io_cleanup1: ad75883 | Whiteknight++ | / (7 files): Several build fixes. Miniparrot now runs without issue. parrot builds. The build progresses much further until we run into a packfile-related error on a later stage |
00:33 | |
| aloha | (parrot/parrot) Issues opened : 777 (GDB pretty printers should be optional) by Whiteknight : github.com/parrot/parrot/issues/777 | 00:41 | |
|
01:02
Jashwanth joined
|
|||
| Jashwanth | dukeleto:I think I did the same thing | 01:06 | |
|
01:11
davidfetter joined
|
|||
| whiteknight | Encoding handling in FileHandle is messed up | 01:13 | |
| it stores a string name for encoding, which means on every single input operation we need to look up the encoding by name | |||
| instead of doing something sane like, say, storing the encoding pointer directly | 01:14 | ||
| this subsystem has so much fail, and I have so little time | |||
| dalek | rrot/notfound/pbc_to_exe_winxed: 03d5e8e | NotFound++ | tools/dev/pbc_to_exe.winxed: minor improvements in the converted pbc_to_exe: - define a const for the read buffer size - add a helper routine for spawnw |
01:19 | |
| rrot/whiteknight/io_cleanup1: 452cfd1 | (Bart Wiegmans)++ | CREDITS: Added myself to credits |
01:38 | ||
| rrot/whiteknight/io_cleanup1: 0d41939 | moritz++ | CREDITS: Merge pull request #775 from bdw/master Add my name |
|||
| rrot/whiteknight/io_cleanup1: 2ec5d01 | benabik++ | t/pmc/bignum.t: Fix warning in t/pmc/bignum.t for GMP 5 This code was trying to warn about GMP prior to 4.1.4, but instead was warning about any version before x.1.4. I rearranged the logic to make the intent more clear and to not warn about GMP 5+. |
|||
| rrot/whiteknight/io_cleanup1: 18d0f30 | jkeenan++ | frontend/parrot2/prt0.pir: Update copyright to 2012. |
|||
| rrot/whiteknight/io_cleanup1: d70e3d9 | Whiteknight++ | / (3 files): Merge branch 'master' into whiteknight/io_cleanup1 |
|||
| rrot/whiteknight/io_cleanup1: efdbe25 | Whiteknight++ | src/io/ (4 files): Fixes so FileHandle.readall works as expected. Use an existing helper method to read bytes into a string. Fall back to the platform encoding if one isn't set on the filehandle. Fix some parameter assertions |
|||
| rrot/whiteknight/io_cleanup1: 05df5a6 | Whiteknight++ | src/io/ (3 files): Fix a few things that were causing build problems. The build actually has regressed. Figuring out how the system used to handle all the encoding nonsense is hard. |
|||
|
02:26
alvis joined
|
|||
| dalek | p: 0631f83 | duff++ | src/PAST/NQP.pir: Add nqp::stat |
02:28 | |
| p: 0d86ce0 | duff++ | src/PAST/NQP.pir: Add nqp::does |
|||
| p: 5f23136 | duff++ | src/PAST/NQP.pir: Add nqp::find_method |
|||
| p: 831cc97 | duff++ | src/PAST/NQP.pir: Add nqp::isa |
|||
| p: a60e457 | duff++ | src/PAST/NQP.pir: Add nqp::new |
|||
| p: 4c4fa49 | duff++ | src/PAST/NQP.pir: Add nqp::open |
|||
| p: 730aea9 | duff++ | src/PAST/NQP.pir: Add nqp::find_not_cclass |
|||
| p: 07926fd | duff++ | src/PAST/NQP.pir: Add nqp::rindex |
|||
| p: 2d94351 | duff++ | src/PAST/NQP.pir: Add nqp::typeof |
|||
| p: 6ae28d9 | duff++ | src/PAST/NQP.pir: Add nqp::defined |
|||
| kudo/nom: 4aea135 | duff++ | src/ (2 files): s/pir::stat\\w+/nqp::stat/g |
|||
| kudo/nom: f4357fd | duff++ | src/ (4 files): Use nqp::does |
|||
| kudo/nom: c8d7cd9 | duff++ | src/ (8 files): Use nqp::find_method |
|||
| kudo/nom: dd145cb | duff++ | src/ (5 files): Use nqp::isa |
|||
| kudo/nom: ef161f7 | duff++ | src/ (3 files): Use nqp::open |
|||
| kudo/nom: ebd0e6c | duff++ | src/core/Str.pm: Use nqp::find_not_cclass |
|||
| kudo/nom: dbe1494 | duff++ | src/core/Cool.pm: use nqp::rindex |
|||
| kudo/nom: e4b9254 | duff++ | src/core/ (2 files): Use nqp::throw |
|||
| kudo/nom: d3c3756 | duff++ | src/core/Exception.pm: Use nqp::rethrow |
|||
| kudo/nom: 930a1a5 | duff++ | src/core/control.pm: Use nqp::sleep |
|||
| kudo/nom: 5480fcb | duff++ | src/ (12 files): Use nqp::defined |
|||
| kudo/nom: 0276a44 | duff++ | tools/build/NQP_REVISION: Bump NQP version to get new nqp:: ops |
|||
|
03:18
Jashwanth_ joined
03:44
japhb joined
|
|||
| dalek | kudo/nom: 696a71d | duff++ | docs/ (2 files): Start on release announcement for June |
04:06 | |
|
05:10
woosley left,
woosley joined
|
|||
| dalek | kudo/qrpa: 6e7868e | pmichaud++ | / (2 files): QRPA: Add init, destroy, mark, elements, unshift_pmc, and some native variants. |
05:24 | |
| kudo/qrpa: c42e429 | pmichaud++ | / (2 files): Add defined_*, exists_*, and unshift_* for native types. |
|||
| kudo/qrpa: 07ced37 | pmichaud++ | / (2 files): QRPA: Add clone, get_iter, splice. |
|||
| kudo/qrpa: f57053a | pmichaud++ | src/pmc/qrpa.pmc: Add some useful optimizations. |
|||
| kudo/nom: 50b77f3 | duff++ | src/core/Mu.pm: Give TimToady .take |
05:45 | ||
|
06:32
fperrad joined
|
|||
| dalek | p: b1fb4b3 | kboga++ | / (16 files): pir::defined to nqp::defined, pir::find_not_cclass__Iisii to nqp::findnotcclass, pir::find_method__PPs to nqp::findmethod |
06:45 | |
|
07:02
cotto joined
07:03
brrt joined
|
|||
| brrt | morning! | 07:05 | |
| aloha | (parrot/parrot) Issues opened : 778 (Move os.pmc) by bdw : github.com/parrot/parrot/issues/778 | 07:34 | |
|
07:51
woosley joined
|
|||
| brrt | oh, btw, i should probably want to merge OS and File | 07:57 | |
| brrt thinks its bad practice to have such redundancy | 07:58 | ||
|
08:02
p6eval joined
08:07
lucian joined
08:37
Khisanth joined
09:13
kjs joined
09:31
kjs_ joined
09:36
kjs_ joined
09:38
kjs joined
09:50
kjs_ joined
09:54
kjs joined
09:59
kjs_ joined
10:10
kjs_ joined,
woosley left
10:23
JimmyZ joined
|
|||
| dalek | Heuristic branch merge: pushed 20 commits to parrot by zhuomingliang | 10:31 | |
|
10:35
jashwanth joined
|
|||
| aloha | (parrot/parrot) Issues closed : 378 (Add UINTPTR type into parrot.) by bacek : github.com/parrot/parrot/issues/378, 236 (config/auto/memalign.pm is broken) by gerdr : github.com/parrot/parrot/issues/236, 232 (config/auto/sizes/test_c.in uses wrong format specifier to print sizes) by | 10:35 | |
| ..gerdr : github.com/parrot/parrot/issues/232, 642 (Configure.pl allows sizeof(INTVAL) != sizeof(void *), but parrot requires them to be equal.) by doughera : github.com/parrot/parrot/issues/642, 704 (cleanup and auto::sizes refactor) by gerdr : | |||
| ..github.com/parrot/parrot/issues/704, 631 (Add Configure.pl check for <stdint.h>) by doughera : github.com/parrot/parrot/issues/631 | |||
|
10:36
kjs joined
|
|||
| dalek | : 609fbac | kjs++ | m1_ (5 files): assign statement's lhs is of type m1_object. this is preparation for adding another parameter to gencode_obj |
10:42 | |
| brrt | hey kjs | 10:45 | |
| where are you from? | |||
| kjs | hi brrt | ||
| NL | 10:46 | ||
| hallo :-) | |||
| brrt | yes, i imagined :-) | 10:47 | |
| me, too, groningen here | |||
| kjs | i's the name that gives it away ;-) | ||
| dalek | : 1e5ea7b | kjs++ | m1_ (2 files): add a is_target flag to function. do it in code, not the data structure. easier and saves ram. |
10:48 | |
| kjs | ah i'm from there as well | ||
| brrt | quite | ||
| oh, really? | |||
| stadjer? | |||
| kjs | but i dont live there.. | 10:49 | |
| brrt | ah, i see | ||
| shame | |||
| kjs | 20 min from city | ||
| brrt | not baflo, right? :-p | ||
| kjs | come back every now and then | ||
| ha ha no | |||
| middelstum | |||
| close ;-) | 10:50 | ||
| brrt | close enough | ||
| connected to the university or something? | |||
|
10:51
travis-ci joined
|
|||
| travis-ci | [travis-ci] parrot/parrot#395 (master - e036f5b : Jimmy Zhuo): The build was fixed. | 10:51 | |
| [travis-ci] Change view : github.com/parrot/parrot/compare/a......e036f5b | |||
| [travis-ci] Build details : travis-ci.org/parrot/parrot/builds/1497453 | |||
|
10:51
travis-ci left
|
|||
| kjs | used to | 10:53 | |
| i had a supervisor there. | |||
| brrt | i see | ||
| kjs | you in rug? | 10:54 | |
| brrt | yes, biology | 10:56 | |
| kjs | ah. i did cs there | ||
| brrt | in the old building probably? | 10:57 | |
| dalek | d_parrot: e1eaa3d | (Bart Wiegmans)++ | / (4 files): Updated building on more different systems |
10:58 | |
| d_parrot: 395ced7 | (Bart Wiegmans)++ | / (8 files): Extended mod_parrot.winxed. Very unusable commit |
|||
| JimmyZ | kjs: ./m1 obj.m1 segfault | ||
| kjs | ugh | ||
| JimmyZ: thanks for testing. I knew it was too simple. | |||
| brrt: yes, but i've also been to the new one. | 10:59 | ||
| JimmyZ: have you done make clean? | 11:00 | ||
| JimmyZ: which code does it choke on? | 11:01 | ||
|
11:01
crab2313 joined
|
|||
| kjs | oh obj.m1 i see now. | 11:01 | |
| JimmyZ | 0x0804c1ab in yyget_lineno (yyscanner=0x8052a59) at m1lexer.c:2614 | 11:02 | |
| brrt leaves for lunch | |||
|
11:02
brrt left
|
|||
| kjs | did you do make clean? | 11:02 | |
| JimmyZ | kjs: yeah | ||
| kjs | works here.. | ||
| was it good before my changes today? | |||
| JimmyZ | kjs: nope | 11:03 | |
| kjs | oh ok | ||
| JimmyZ | #0 0x0804c1ab in yyget_lineno (yyscanner=0x8052a59) at m1lexer.c:2614 | ||
| #1 0x0804c7e5 in expression (comp=0xbffff0d8, type=EXPR_VARDECL) at m1_ast.c:46 | |||
| kjs | thanks. i'll have a look | 11:07 | |
| dalek | : 569f83f | kjs++ | m1_ (2 files): add a comment. do some work on object indexing. |
11:08 | |
| : 1672679 | kjs++ | / (3 files): few changes to tests. |
|||
| : df0035a | kjs++ | m1_ast.c: add a few asserts. |
11:10 | ||
| kjs | can you try again with latest change? added a few asserts. | ||
| ugh. M1 needs a test suite. | 11:11 | ||
| JimmyZ: which version of flex do you have? | 11:12 | ||
| (flex ---version) | |||
| eh, --version | |||
| JimmyZ | flex 2.5.35 | 11:13 | |
| kjs | ok that's alright then | ||
| bison --version? | |||
| JimmyZ | bison (GNU Bison) 2.5 | 11:14 | |
| kjs | ok. i have 2.3 | ||
| but wouldnt expect any problems really. i think there were some chnages to the api for making reentrant parsers. | |||
| dalek | : becb578 | jimmy++ | obj2.m0: removed obj2.m0 |
11:17 | |
| : 7f997bc | kjs++ | m1_main.c: add a check for argc in main. removes warning of unused param and also for safety. |
11:19 | ||
| : 4a39ba5 | kjs++ | m1_main.c: fix problem reported by JimmyZ++. |
11:31 | ||
| : 6a83d7f | kjs++ | m1_gencode.c: more work on arrays. may have to rethink code for assignments. |
|||
| kjs | JimmyZ: i found the problem , it's fixed now. | ||
| moritz | how fast is m0? | 11:32 | |
| JimmyZ | I think It's very fast, but goto_chunk will be slow | 11:33 | |
| kjs | moritz: cant realy check at the moment, as there's no big programs | 11:34 | |
| also the interp is implemented as a switch statement which is not the best approach | |||
| but goal is to JIT it | |||
| JimmyZ | hmm, how can m1 call a c std function? | 11:35 | |
| kjs | havent looked into that | ||
| suggestions? | |||
| you mean to implement FFI | |||
| JimmyZ | nope | ||
| native call | |||
| kjs | into a c function | 11:36 | |
| not sure how to do that yet | |||
| probably need syntax with special keyword to make it clear | |||
| JimmyZ | kjs++, it got fixed! | 11:40 | |
| kjs | yes it was fairly simple and stupid really :-) | 11:41 | |
| JimmyZ++ thanks for reporting (and testing!) | |||
| dalek | kudo/qrpa: 02b5ec6 | pmichaud++ | src/Perl6/Actions.pm: Add nqp::qlist() to obtain QRPA instead of RPA. |
11:48 | |
| kudo/qrpa: f4373c6 | pmichaud++ | src/pmc/qrpa.pmc: QRPA: Fix pointer typo in QRPA.clone. |
|||
| : cb0e034 | kjs++ | m1_ (4 files): add another stack for m1_regs. for use in code gen. |
11:53 | ||
|
12:08
whiteknight joined
|
|||
| whiteknight | good morning, #parrot | 12:10 | |
| kjs | good morning | 12:11 | |
| JimmyZ | whiteknight: good morning | 12:12 | |
| whiteknight: how about removing gci_fill_params_reduce[2] and tt389_fix branch? | 12:13 | ||
| whiteknight | JimmyZ: let me look at them first | 12:20 | |
| dalek | : 0c0f239 | kjs++ | m1_ (4 files): use regstack for passing around m1_reg objects. |
||
| Coke gets pmc whiplash. | 12:51 | ||
| dalek | kudo/qrpa: cf75879 | pmichaud++ | src/ops/perl6.ops: QRPA: Update nqp::islist to be QRPA-aware. |
12:54 | |
|
13:13
Patterner joined
|
|||
| dalek | kudo/qrpa: 725acab | pmichaud++ | / (2 files): QRPA: Add QRPA.get_number(). |
13:24 | |
| kudo/qrpa: 94483a2 | pmichaud++ | / (2 files): QRPA: Add QRPA.get_bool, get_bool and get_number tests. |
|||
|
13:25
kjs joined
|
|||
| dalek | p: bfea0f7 | duff++ | / (15 files): Use new nqp ops nqp::defined, nqp::typeof, nqp::rindex, nqp::find_not_cclass, nqp::open, nqp::new, nqp::isa, nqp::find_method, nqp::does, nqp::stat |
13:36 | |
|
13:42
isBEKaml joined
|
|||
| isBEKaml | good evening, #parrot! | 13:43 | |
|
13:47
whiteknight joined
13:49
jashwanth joined
|
|||
| tadzik | hello isBEKaml | 13:59 | |
| isBEKaml | hey, tadzik - how goes bailador? :) | ||
| tadzik | no new things, bu I have a talk accepted for FPW 2012 | 14:00 | |
| isBEKaml | that's French Perl Workshop, right? | ||
| tadzik | so I guess I'll have to write some new stuff to amuse people :) | ||
| right | |||
| isBEKaml | great, post slides soon! tadzik++ | ||
| tadzik | journeesperl.fr/fpw2012/talk/4122 | ||
| okay, expect them in July :P | 14:01 | ||
| isBEKaml | congrats! that's only a month away. :) | 14:02 | |
| tadzik | don't scare me! :P | ||
| I have an exam session to pass too | |||
| isBEKaml | Don't panic! Whatever happens, don't PANIC! | 14:03 | |
| tadzik | don't tempt me! :P | ||
| JimmyZ | just segfault | ||
| isBEKaml | :) | 14:08 | |
|
14:21
PacoAir joined
|
|||
| dalek | kudo/qrpa: eadaa34 | pmichaud++ | src/pmc/qrpa.pmc: QRPA: Restore the custom_mark_destroy flags that were in init(). Oops. |
14:25 | |
| kudo/qrpa: c5b2ca2 | jnthn++ | src/binder/types.c: Ensure the type mapper knows how to map a QRPA to Parcel. |
14:33 | ||
| nxed: 678cd52 | NotFound++ | winxedst2.winxed: encapsulate get parameter multi type |
14:36 | ||
| isBEKaml | hey, has anyone been able to compile parrot with clang? | ||
| whiteknight | clang is the browser I use | 14:37 | |
| er, compiler | 14:38 | ||
| I almost never use gcc anymore | |||
| isBEKaml | whiteknight: first, there were warnings for configure script around va_ptr and then it failed in sprintf.c in make step | 14:39 | |
| whiteknight | This is parrot master? | ||
| isBEKaml | yes | ||
| whiteknight | okay, what's the error in sprintf.c? | 14:40 | |
| isBEKaml | gist.github.com/2852607 | 14:42 | |
| whiteknight | weird. Maybe we're missing an include somewhere? | ||
| Where is PARROT_VA_TO_VAPTR defined? | |||
| isBEKaml | dunno, I'm guessing it has something to do Configure.pl skipping it. | 14:43 | |
| let me run configure.pl again | 14:44 | ||
| btw, did you have to pass special flags other than cc to that script? | |||
| perl Configure.pl --prefix=$PWD --without-icu --cc=clang # any others? | 14:46 | ||
| moritz | uhm | 14:48 | |
| don't use $PWD as your prefix | |||
| isBEKaml | moritz: so I can do "make install". nothing much in there, really. | ||
| moritz | uhm, I thought parrot's sources were in $PWD? | 14:49 | |
| I just think you can get some path clashes if you installing into the very source directory | |||
| isBEKaml | yes, so far I haven't had a problem with it. | ||
| whiteknight: yep, auto::va_ptr -> gist.github.com/2852675 | 14:52 | ||
|
14:56
not_gerd joined
|
|||
| whiteknight | isBEKaml: that's weird. I've never seen that error before | 14:57 | |
| not_gerd | isBEKaml: the va_ptr test is missing a cast | ||
| gist.github.com/2852706 | |||
| isBEKaml | not_gerd: I was just looking at that file. :) | 14:58 | |
| not_gerd: btw, #if defined... (are they all right?) | |||
| not_gerd | yes, that's fine | 14:59 | |
| isBEKaml | not_gerd: okay, I'll patch that in and see if it works. | ||
| not_gerd | isBEKaml: mind you, that diff just fixed the configure probe - the actual macro definition needs to be adjusted as well | 15:00 | |
| isBEKaml: config/gen/config_h/feature_h.in, line 67 | 15:02 | ||
| isBEKaml | not_gerd: well, it didn't fix config problem, either. :( | ||
| not_gerd | isBEKaml: can you run with --verbose-step auto::va_ptr | 15:04 | |
| sorry, --verbose-step=auto::va_ptr | 15:05 | ||
| dalek | p: 69d548e | jnthn++ | / (17 files): Toss various nqp:: ops that are too Parrot-specific. |
15:07 | |
| isBEKaml | gist.github.com/2852817 | 15:09 | |
| not_gerd: ^^ | |||
|
15:12
crab2313 joined
|
|||
| not_gerd | isBEKaml: what architecture are you on? | 15:13 | |
| isBEKaml | Linux zorander 2.6.29.6-smp #2 SMP Mon Aug 17 00:52:54 CDT 2009 i686 Pentium III (Coppermine) GenuineIntel GNU/Linux | ||
| $(uname -a) | |||
| clang version 2.9 (tags/RELEASE_29/final) | 15:14 | ||
| not_gerd | well, no wonder: that fix was for x86-64 and ppc | 15:15 | |
| which means my guess as to what was wrong was incorrect :( | |||
| isBEKaml | it works on x86_64? that's weird... | ||
| whiteknight | that may be my problem | 15:16 | |
|
15:19
jashwanth joined
|
|||
| dalek | p: 365eda1 | jnthn++ | src/HLL/Compiler.pm: Toss a method that assumes Parrot namespaces, and is unused. |
15:21 | |
| kudo/nom: abd4abf | jnthn++ | / (15 files): Eliminate some uses of nqp:: opcodes that we've outlawed. |
15:26 | ||
| whiteknight | jnthn: That's a weird commit. Aren't you moving in the opposite direction by replacing nqp:: ops with pir:: ones? | 15:28 | |
| nine | whiteknight: jnthn is not listening on this channel | 15:29 | |
| tadzik | whiteknight: it's just that some close-to-parrot opcodes are to stay as pir:: | ||
| (see backlog on #perl6) | |||
| not_gerd | isBEKaml: no idea what's wrong | 15:31 | |
| try manually compiling the test_c.in ith -DVA_TYPE_REGISTER and -DVA_TYPE_STACK and see what happens... | 15:32 | ||
| isBEKaml | not_gerd: it works with gcc, but not with clang. Where's VA_TYPE_FOO defined? | ||
| not_gerd | auto::va_ptr compiles config/auto/va_ptr/test_c.in once with -DVA_TYPE_REGISTER and once with -DVA_TYPE_STACK to determine if va_list is an array type and sets the va_ptr_type configuration value | 15:35 | |
| then, PARROT_VA_TO_VAPTR gets defined accordingly (see config/gen/config_h/feature_h.in) | |||
| isBEKaml | okay - VA_TYPE_REGISTER SEGV'd. I'll increase ulimit and try again | 15:36 | |
| VA_TYPE_STACK threw up illegal instruction. | |||
| 0x080483e5 in test0 () | 15:37 | ||
| Current language: auto; currently asm | |||
| that's with SEGV in gdb. | |||
| not_gerd | on i686, VA_TYPE_STACK should work | 15:38 | |
| the segfault with VA_TYPE_REGISTER is somewhat expected as you'll read an arbitrary value from stack and interpret it as a pointer | 15:39 | ||
| (or not; need to think about that - anyway, VA_TYPE_STACK should work on i686) | 15:40 | ||
| dalek | nxed: 3357c6a | NotFound++ | / (2 files): new syntax for declaring multi parameter types |
||
| not_gerd | isBEKaml: I've got to go, but I'll take another look at it when I get home | 15:42 | |
| not_gerd is happy that his branch got finally merged | |||
| bye, #parrot | 15:43 | ||
|
15:43
not_gerd left
|
|||
| isBEKaml | not_gerd: okay, thanks for your help. I'll post more info if I get anything. | 15:43 | |
| dalek | p: d63dec6 | pmichaud++ | / (2 files): Update notes about rejected nqp:: operations -- no functional changes. |
15:45 | |
| kudo/nom: 0f9975c | jnthn++ | src/Perl6/World.pm: Fix typo spotted by diakopter++. |
15:47 | ||
| kudo/nom: 1886ee9 | pmichaud++ | src/core/Parcel.pm: Use nqp::shift($rpa) instead of $rpa.shift. |
15:51 | ||
| isBEKaml | heh. Anyone familiar with x86 assembly? is there such a thing as a calll instruction? | 16:01 | |
| I'm going over the differences in the generated assembly between gcc and clang. | 16:02 | ||
| whiteknight | isBEKaml: I don't think I've ever heard that opcode before, but I stopped doing x86 assembly back on 16bit machines | 16:03 | |
| isBEKaml | whiteknight: exactly. that instruction appears off to me. | ||
| whiteknight: that may well be why I got SIGILL with VA_TYPE_STACK | 16:04 | ||
| dalek | kudo/nom: 6365270 | jnthn++ | src/core/operators.pm: Make let/temp cope sanely with temp'ing/let'ing the same variable twice. |
16:07 | |
|
16:12
dmalcolm joined
|
|||
| isBEKaml | For anyone that can look over assembly and spot differences, here's the generated assembly from both clang and gcc: gist.github.com/2853291 | 16:18 | |
| dalek | : 8b64e84 | kjs++ | m1_ (2 files): converting from return values to explicit stack to move around regs. |
16:19 | |
| rrot/threads: 58d737e | nine++ | src/alarm.c: Reworked timer handling to fix a race If after an alarm expires a new alarm was set to the exact same time (now) Parrot_alarm_runloop would not notice and still wait for new alarms without notifying any threads. This happened quite often on Windows because Parrot_floatval_time() gives only millisecond precision there which is an eternity for a processor. This reworked version is no longer dependent on any precision. |
16:34 | ||
| rrot/threads: 4f8359f | nine++ | include/parrot/thr_windows.h: Get Windows COND_TIMED_WAIT closer to POSIX semantics The other part of the solution to the Windows timer problem |
|||
| dukeleto | nine++ # good commit messages | 16:39 | |
| dalek | rrot/threads: aad6ae6 | nine++ | t/pmc/task.t: Activate t/pmc/timer.t on Windows since it actually passes |
16:40 | |
| nine | whiteknight: tests pass now for me on Windows :) | 16:41 | |
| whiteknight | really? Awesome | 16:43 | |
|
16:44
not_gerd joined
|
|||
| not_gerd | isBEKaml: can't reproduce your problem with clang 3.0 for cygwin | 16:45 | |
| nine | not_gerd: I think I fixes the threads stuff on Windows. Could you give the threads branch another try? | ||
| not_gerd | nine: on it | 16:46 | |
| isBEKaml | not_gerd: yeah, I figured that's a problem on clang2.9. The thing is, it runs fine with lli after generating llvm bitcode. But llc still produces that shitty assembly. | ||
| not_gerd: If that's fixed in 3.0 upwards, I'll have to upgrade my clang/llvm | 16:47 | ||
| not_gerd | well, clang 3.1 is out - why stay with 2.9 ;) | ||
| isBEKaml | not_gerd: well, I'm just lazy. :) I tried compiling 3.1 a couple of days ago, but forgot to modify headers to suit gcc. :P | 16:48 | |
| not_gerd | my WIn64-build of clang cross-compiler via cygwin works with minor issues | 16:50 | |
| some C++ stuff doesn't get linked correctly, but as I don't regularly do C++ and g++ works fine *shrugs* | 16:51 | ||
| cross-compile*d* | 16:52 | ||
| isBEKaml | not_gerd: I have noticed that too a few times. they usually go away when I give -O switches. | 16:53 | |
| not_gerd: without -O3, it segfaults. O3 on, it works. :/ | |||
| whiteknight | nine: I just got a config failure on the threads branch with mingw. | 16:55 | |
| nine | whiteknight: config failure? | 16:56 | |
|
16:56
jashwanth joined
|
|||
| not_gerd | nine: t/src/threads_io.t fails test 3 (prints not ok 3, and after returning to the shell prints a line "ok 3 - main task back") | 16:57 | |
| when running perl t/src/threads_io.t, that is | |||
| nine | not_gerd: ok, that's expected. I'm not sure if the test really is usefull anyway. It just happens to pass on Linux, so I activated it. | 16:58 | |
| dalek | : e1527b5 | kjs++ | m1_ (2 files): more converting from implicit stack to explicit stack. |
17:00 | |
| nine | Ok, gotta run. Bye | ||
| not_gerd | bye | ||
| dukeleto | "Lua's virtual machine is register-based like Perl's Parrot and Android's Dalvik." -- www.technewsworld.com/story/Flame-T...75266.html | ||
| I give them a honorary mention for trying... | 17:01 | ||
| isBEKaml | dukeleto: does that article talk about the recent flame virus? | ||
| dukeleto | isBEKaml: yeah, it is mostly about that, with a side mention of Parrot | 17:03 | |
| isBEKaml | dukeleto: Oh, I see... | 17:08 | |
| jashwanth | ~~ | ||
| whiteknight | hello jashwanth | 17:10 | |
| dukeleto | jashwanth: hola | 17:13 | |
| jashwanth: there you are! | |||
| jashwanth: i am reading your email response now | |||
| whiteknight | miniparrot segfaults for me on win64 with nine's most recent threads branch | ||
| dukeleto | jashwanth: i am confused. You still have exams? I thought they were over on wednesday | ||
| NotFound | ~~ | 17:22 | |
| Someone has tested the branch notfound/pbc_to_exe_winxed on windows? | 17:23 | ||
|
17:31
brrt joined
|
|||
| dalek | kudo/qrpa: e2a9ed3 | pmichaud++ | src/core/List.pm: Switch List.gimme to initialize $!items with QRPA. |
17:33 | |
| kudo/qrpa: 4fc8fa0 | pmichaud++ | src/core/Parcel.pm: Use nqp::shift($rpa) instead of $rpa.shift(). |
17:34 | ||
| dukeleto | NotFound: doesn't seem like it yet. Perhaps asking some of the windows rakudo devs would be useful? | 17:44 | |
|
17:46
jashwanth joined
|
|||
| dalek | p/altnfa: 32d6a49 | jnthn++ | src/QRegex/P6Regex/Actions.nqp: Start saving per-alternation NFAs. |
17:50 | |
| brrt | dukeleto, how api.yaml set up? | ||
| dalek | p/altnfa: 1aa896e | jnthn++ | src/QRegex/NFA.nqp: Split merging part of mergesubrules out into mergesubstates. |
||
| p/altnfa: 72fc431 | jnthn++ | src/QRegex/Cursor.nqp: Sketch out alternation NFA running. |
|||
| NotFound tinking about merging anyway. That way it will be surely tested ;) | 17:52 | ||
| whiteknight | notfound: I'm testing now | 17:58 | |
| brrt | hey, whiteknight :-) | ||
| whiteknight | hello brrt | ||
| brrt | i've read the comments on the pull requesr | 18:01 | |
|
18:01
contingencyplan joined
|
|||
| brrt | how is api.yaml set up, and how should i edit it? | 18:01 | |
| and, what is a 'good' load path to feed my embedded parrot interpreter | 18:02 | ||
| whiteknight | it's a YAML file, obviously. Find another entry in there and copy the formatting | ||
| dukeleto | brrt: it is just a simple way of keeping track of when user-visible stuff changes in parrot | 18:03 | |
| brrt | oh, ok | ||
| dukeleto | brrt: like a pmc <---> dynpmc, a function signature changing, etc... | ||
| brrt: we have tools that read the yaml and can look for deprecated stuff/etc. | |||
| brrt: it is basically to help people pay their "upgrade tax" when they want to use a newer version of parrot, but stuff has changed | |||
| brrt | i see, should i put it on the front or the back on the document | 18:04 | |
| dukeleto | brrt: doesn't really matter. I think stuff has been being added to the bottom | ||
| brrt | bottom will do | ||
| dukeleto | brrt: but the middle works too. If you put it somewhere in the middle, there is less of a chance of merge conflicts :) | ||
| brrt: and what exactly is your question about a load path? do you have a code example? | |||
| brrt: there is a default load path, and then you can add to it if you want | 18:05 | ||
| brrt: the default load path should be reasonable most of the time | |||
| brrt: also, the parrot community is really excited to see mod_parrot live again! Keep up the good work and don't hesitate to ask as many questions as you need | |||
| whiteknight | nevermind, I can't test here | 18:06 | |
| brrt | :-) i'm happy your all excited | ||
| no, the thing was, from mod_parrot i couldn't load 'os', or any other lib for that matter | 18:07 | ||
| whiteknight | NotFound: Sorry, I can't test it. My setup won't link and I can't figure it out | ||
| brrt | (and if i recall correctly, couldn't load the compiler, either) | ||
| dalek | kudo/qrpa: 80d406d | pmichaud++ | src/ (3 files): QRPA: Update binder to know about QRPA as well as RPA. now to spread it more widely throughout List and ListIter and see if anything breaks. |
18:10 | |
| brrt | and another thing, i want to figure out how doable it is to read the c structs from the parrot interpreter, as opposed to accessing parrot pmcs from the c layer | ||
| i believe there is an unmanagedstruct pmc? | 18:11 | ||
| that sounds usable | |||
| because if it is, i could pass a (wrapped) pointer to the function, and extract all information from within parrot, which would probably be easier | 18:13 | ||
| dalek | : ce5ec11 | kjs++ | m1_ (2 files): x[42] = 4 and x = y[42] seems to work now. kinda. |
||
|
18:14
kjs left
|
|||
| whiteknight | brrt: github.com/parrot/parrot/blob/mast...api.c#L664 | 18:14 | |
| brrt | i'm going to toy with that a bit | 18:15 | |
| whiteknight | I don't think those particular APIs are used anywhere, so if you need changes or additions let me know | ||
| dukeleto | brrt: there is a ParrotInterp PMC, i believe. But you should listen to whiteknight++ | 18:17 | |
| brrt: i am a bit more familiar with the old embed API, which I used to write PL/Parrot pl.parrot.org | |||
| whiteknight | dukeleto: hardly an API at all, just "all the functions we were exporting from libparrot" | 18:18 | |
| dukeleto | brrt: it is bitrotten now, waiting to be ported to the new embed api | ||
| brrt | oh, yay :-) | ||
| something for after the summer | |||
| dukeleto | yes, calling it an API is a dis-service to acronym API | ||
| brrt is a bit of a postgres fan | |||
| dukeleto | brrt: awesome! I had to reverse engineer the pg PL api to make PL/Parrot. | 18:19 | |
| dalek | kudo/qrpa: 2ef6948 | pmichaud++ | src/core/List (2 files): Migrate more nqp::list -> nqp::qlist for testing. |
18:20 | |
| dukeleto | brrt: when it finally started to work, it was one of the best "my god, it finally works" moments I had ever felt. Rakudo Perl 6 even worked at some point, but it moves fast and that is no longer the case. | ||
| brrt: i.e. PL/Rakudo worked. I could create perl 6 grammars in stored procedures written in rakudo | 18:21 | ||
| brrt | nice | ||
|
18:28
mtk joined
|
|||
| NotFound | Stupid idea of the day: store pbc files in blobs in a database and load modules from it. No need for a filesystem! | 18:28 | |
| You can run an absolutely chroot jailed parrot that way. | 18:30 | ||
| not_gerd | NotFound: no new failures on pbc_to_exe_winxed with MinGW-w64 | ||
| NotFound | not_gerd: That build uses resources or generated C data? | 18:31 | |
| not_gerd | NotFound: What do you mean? I just checked out the branch and did the ususal configure, make, make test | 18:34 | |
| NotFound | not_gerd: some platform generate the content of the pbc as C code, other use a windows resoure compiler to insert it in the executable. | 18:36 | |
| Look at the generated C to see what it does. | |||
| not_gerd | it generated C code, ie the C files contain `const unsigned char program_code[]` | 18:38 | |
| brrt | hey, i can't seem to call get-pmc on a parrotinterpreter instnance | ||
| dalek | p/altnfa: 51c3726 | jnthn++ | src/ops/nqp.ops: Add an op for pushing a label onto a label stack. |
||
| p/altnfa: fbb1811 | jnthn++ | src/QRegex/Cursor.nqp: Use NFA run results to push marks for possible branches onto the bstack. |
|||
| NotFound | Yeah, I think it does the other way only with msvc. | ||
| p/altnfa: c774ec8 | jnthn++ | src/QAST/Compiler.nqp: Update QAST::Compiler's alt handling to use LTM. The NQP it builds will actually parse enough to try an 'aa' ~~ /a|\\w+/ style example and get it right! However, it chokes right after a semicolon...thus failing all the tests. |
|||
| whiteknight | brrt++ | 18:41 | |
| brrt | yay, karma :-) | ||
| over at perl6, i asked the parrot question: how do i use a VTABLE method | 18:42 | ||
| or, how do i get the args from the ParrotInterpreter | |||
| whiteknight | what args? | ||
| moritz | brrt: there are usually opcodes that trigger a vtable | ||
| brrt: which one in particular are you interested in? | 18:43 | ||
| brrt | i want to know what in what path the (regular) parrot interpreter looks for its libraries | ||
| so i can make mod_parrot look in the same places | |||
| dalek | nxed: 9b4a167 | NotFound++ | winxedst (2 files): experimental syntactic sugar for var declaratios initialized with new |
18:44 | |
| brrt | so it can loadlib() a bit more succesfully than it does now | ||
| brrt | oh, wait, i see already | 18:45 | |
| whiteknight | NotFound: ooh shiney. You have an example of the new syntax? | ||
| NotFound | whiteknight: coming.... | ||
| brrt | VTABLES are a way to implement polymorphic instructions | 18:46 | |
| rather than polymorphic methods | |||
| whiteknight | brrt: Think about vtables as being the absolute lowest level of interaction with a PMC. Lower than the user or the HLL typically deals with directly | ||
| NotFound | whiteknight: the one for multi was done a few commits ago. | 18:47 | |
| dalek | nxed: 0fc94af | NotFound++ | winxedst2.winxed: use the new var initializer syntax in a bunch of places |
18:48 | |
| whiteknight | oh that's nice | 18:49 | |
| dukeleto | brrt: for some light reading on PMCs and VTABLEs, see : github.com/leto/presentations/blob...f?raw=true | 18:50 | |
| NotFound | Winxed is becoming the language with the big abuse of ':' | ||
| dukeleto | NotFound: sexy, but i can see it being confusing to new-comers. As long as it has good documentation, I like it :) | 18:51 | |
| brrt | dukeleto: thx | 18:54 | |
| NotFound | dukeleto: yeah, is a lot less javascriptish, but I think that the lack of ambiguity compensates. | ||
|
18:59
alester joined
|
|||
| not_gerd | bye, #parrot | 19:05 | |
|
19:06
not_gerd left
19:32
kjs joined
|
|||
| brrt | oh, i can find out the load path by parrot_config versiondir | 19:38 | |
| as in: parrot_config libdir . parrot_config versiondir | 19:39 | ||
| dalek | d_parrot: e2988b7 | (Bart Wiegmans)++ | / (5 files): Smallish fixes |
19:57 | |
| d_parrot: 4c9a7a5 | (Bart Wiegmans)++ | / (10 files): Merge branch 'master' of git://github.com/bdw/mod_parrot Conflicts: \tmod_parrot_run.c |
|||
| d_parrot: 7c91e30 | (Bart Wiegmans)++ | / (3 files): Some documentation and todos. This was a figuring-stuff-out day |
|||
|
19:57
brrt left
20:52
crab2313 joined
|
|||
| pmichaud | okay, I'm stumped on a PMC issue | 20:58 | |
| I'm writing a custom RPA class for NQP and Rakudo. | |||
| However, doing $P0 = $P1[$I0] on the custom RPA class seems to be about 20%-33% slower than on the built-in RPA | 20:59 | ||
| here are the relevant sources: | |||
| gist.github.com/2855120 # parrot's RPA get_pmc_keyed_int | 21:00 | ||
| gist.github.com/2855123 # my PMC's (QRPA) get_pmc_keyed_int | 21:01 | ||
| gist.github.com/2855126 # sample driver program and timings | |||
| anyone have any ideas or suggestions why QRPA is so much slower than RPA in this instance? | 21:02 | ||
|
21:02
brambles joined
21:05
perlite_ joined
|
|||
| NotFound | pmichaud: maybe is the resizing and not keyed access itself? | 21:05 | |
| pmichaud | there's no resizing taking place in the loops | ||
| I'm just looking up the same element one million times | |||
| PerlJam | pmichaud: what does PARROT_QRPA(SELF) do exactly? | 21:06 | |
| pmichaud | it returns the underlying struct holding SELF's attributes | ||
| #define PARROT_QRPA(o) ((Parrot_QRPA_attributes *) PMC_data(o)) | |||
| PerlJam | my only guess would be the "extra" dereferencing that QRPA does that RPA doesn't | 21:11 | |
| pmichaud | ..."extra dereferencing"? | ||
| PerlJam | qrpa->slots vs data[key] for instance. | ||
| Basically, I just counted -> | 21:12 | ||
| pmichaud | well, the equivalent -> comes from data = PMC_array(SELF); | ||
| in the RPA case | |||
| i.e, PMC_array(SELF is defined as | |||
| NotFound | Now that I look at it, the RPA version uses access data[key] two times, but probably the optimizer get rid of it. | ||
| pmichaud | #define PMC_array(x) ((Parrot_ResizablePMCArray_attributes *)PMC_data(x))->pmc_array | ||
| NotFound | pmichaud: have you double checked that get_pmc_keyed_int is called directly. Any pitfall in the PMC preprocessor and it may be calling get_pmc_keyed instead. | 21:17 | |
| dalek | kudo/qrpa: 138fcb2 | pmichaud++ | src/pmc/qrpa.pmc: QRPA: Try to make get_pmc_keyed_int as fast as RPA's, fail so far. |
21:18 | |
| pmichaud | NotFound: ah, that's a good point. One second. | 21:19 | |
| I commented out VTABLE get_pmc_keyed in QRPA (and it has no parent), and the z.pir test program still runs, with same difference in timing | 21:20 | ||
| so, no, get_pmc_keyed isn't being invoked here. | 21:21 | ||
| PerlJam | pmichaud: have you changed the order of the runs so that the rpa runs first? | ||
| pmichaud | PerlJam: yes, but I can do it again. | ||
| NotFound | Even better, use the same loop for both. | 21:23 | |
| pmichaud | ...same loop for both? | 21:24 | |
| you mean, as in a separate sub? | |||
| okay | |||
| NotFound | In a sub, or with a convoluted goto. | ||
| pmichaud | gist.github.com/2855224 # as a sub, and increasing N to 20000000 | 21:27 | |
| NotFound | I don't see any reason for the difference. | 21:29 | |
|
21:33
kid51 joined
|
|||
| PerlJam | pmichaud: Is the timing difference still there when you try to access an element that doesn't exist? | 21:35 | |
| pmichaud | note that QRPA is a dynpmc and RPA isn't, if that might explain anything. | 21:36 | |
| PerlJam: I can check... just a sec | |||
| rpa[$I0] = 0.612705945968628 | 21:37 | ||
| qrpa[$I0] = 0.790001153945923 | |||
| NotFound | Unless the dynpmc gets compilled with different options, there shouldn't be any difference. Is all getting a function pointer from the vtable and call it. | 21:41 | |
| pmichaud | for reference, the full code for QRPA is at github.com/rakudo/rakudo/blob/qrpa...c/qrpa.pmc | 21:42 | |
| (there may still be other unrelated bugs present; I'm currently just testing to see if I can get a speed win for Rakudo.) | |||
| NotFound | pmichaud: the only difference I can see is the order of the attributes. In FixedPMCArray, and the in Resizable, pmc_array is the second. | 21:44 | |
| Shouldn't be important, but maybe there are some wizardry. | 21:46 | ||
| pmichaud | moving it to first or second position doesn't seem to affect the timings at all | ||
| NotFound | pmichaud: there is a thing you can try: drop the local variable elems. | 21:56 | |
| pmichaud | NotFound: just use qrpa->elems in each case? | 21:58 | |
| NotFound | Is the only significant difference between the two versions. | ||
| pmichaud: yeah | |||
| Or make it const. | 21:59 | ||
| pmichaud | eliminating elems didn't change the timings | ||
| rpa[$I0] = 0.627300977706909 | |||
| qrpa[$I0] = 0.809339046478271 | |||
| aloha | (parrot/parrot) Issues reopened : 642 (Configure.pl allows sizeof(INTVAL) != sizeof(void *), but parrot requires them to be equal.) by : github.com/parrot/parrot/issues/642 | ||
| pmichaud | I'll try adding it to parrot locally as a non-dynpmc and see what happens. | ||
| NotFound | Good idea. | 22:00 | |
| pmichaud | but, that'll have to occur after dinner | ||
| NotFound | Bon appetit, | 22:01 | |
| dalek | rrot: db9fc12 | jkeenan++ | config/auto/sizes.pm: Remove unused subroutine _find_type_ge() per discussion with Gerhard R. |
22:08 | |
| pmichaud | oh! perhaps the headerizer makes a difference here somewhere? | 22:11 | |
| rpa has been headerized, qrpa hasn't (afaik) | 22:12 | ||
| NotFound | I don't think it will make any difference here. | 22:13 | |
| The functions declarations are aleady generated in the .c by the PMC processor. | 22:14 | ||
|
22:20
travis-ci joined
|
|||
| travis-ci | [travis-ci] parrot/parrot#396 (master - db9fc12 : jkeenan): The build was broken. | 22:20 | |
| [travis-ci] Change view : github.com/parrot/parrot/compare/e......db9fc12 | |||
| [travis-ci] Build details : travis-ci.org/parrot/parrot/builds/1503600 | |||
|
22:20
travis-ci left
22:35
whiteknight joined
|
|||
| dalek | p/altnfa: ddf6d6b | jnthn++ | src/NQP/Grammar.pm: eat_terminator needs sequential alternation (STD has it that way too; vaguely reassuring that we also need it now we have LTM for alternations). |
22:45 | |
| p/altnfa: bb0350f | jnthn++ | src/QAST/Compiler.nqp: Don't leave leftovers on the bstack after an alternation. |
|||
| p/altnfa: dc8561c | jnthn++ | src/QRegex/ (2 files): We sometimes accidentally lost alternation branches if we could not build an NFA for them. Make sure we don't do this. |
|||
| whiteknight | What does the QRPA type do that Parrot's built-in type doesn't do? | 22:48 | |
| pmichaud | much faster shift, unshift, and splice operations | 22:50 | |
| Parrot's shift is O(n), QRPA's is O(1) | 22:51 | ||
| and since iterators and lazy lists involve a ton of shifting, having a fast shift is fairly important | 22:52 | ||
| whiteknight | pmichaud: I'm not entirely happy with our array types, if you have algorithmic improvements to recommend I would be happy to see them integrated | 22:54 | |
| pmichaud | I considered trying to patch into FPA and RPA, but the changes would end up being a bit to radical, especially if anyone derives from those types (as Rakudo once did) | ||
| *too radical | |||
| whiteknight | I think that RPA probably needs a "radical" overhaul eventually anyway | 22:55 | |
| pmichaud | well, Parrot can certainly adopt QRPA as a core type then :) | 22:56 | |
| at least, as soon as I figure out why the $@**!$ it's slower than RPA, which currently makes no sense | |||
| whiteknight | With all we're planning to steal from NQP in the near- and mid-term, we're going to have to rename it | 22:57 | |
| not-quite-parrot | |||
| pmichaud | @family here wants to go out to a movie tonight, though, so it'll likely be late tonight or tomorrow sometime before I can finish my tests | 22:58 | |
| whiteknight | what movie? | ||
| pmichaud | Avengers | ||
| whiteknight | I saw that last friday. Very pleased | 22:59 | |
| pmichaud: We should probably touch base at some point soonish to talk about what Parrot can do better for NQP/Rakudo | 23:00 | ||
| we haven't had such a meeting in a while and I want to make sure we're moving in the right directions | |||
| pmichaud | whiteknight: going to yapc? are any parrot folks going? | 23:01 | |
| I know that particle++ is going | |||
| whiteknight | I'm not going to be at yapc, unfortunately. I wish I could | ||
|
23:01
kid51_ joined
|
|||
| pmichaud | oh, and kid51++ is speaking there | 23:01 | |
| whiteknight | oh yes, kid51++ | ||
| pmichaud | and I think allison++ is expected to be there also | 23:02 | |
| whiteknight | darn, I really wish I could make it | ||
| pmichaud | anyway, yes -- we can see about scheduling an online chat or something soon | 23:03 | |
| I'll poll the other rakudo/nqp devs and see if they have any ideas | |||
| whiteknight | We're pushing to get threading merged soonish. IO is getting a be re-do. We've also got mod_parrot as a GSOC project moving at a good clip and Rakudo support there will be something of a priority | 23:04 | |
| pmichaud | I guess we still have to do --optimize with Configure.pl? | 23:07 | |
| I thought that was defaulted already or something | |||
| whiteknight | I think so, yes | 23:08 | |
| For the common case, perhaps that should be default | |||
| pmichaud | ummmm... hmm | 23:09 | |
| gist.github.com/2855681 # test program I'm running | 23:10 | ||
| when run from the parrot repo (and with QRPA as a "built-in" PMC type in parrot/src/pmc), I get | |||
| pmichaud@kiwi:~/p6/parrot$ ./parrot z2.pir rpa[$I0] = 3.11733913421631 | |||
| qrpa[$I0] = 2.88110089302063 | 23:11 | ||
| when I run it from the rakudo repo, with QRPA as a dynpmc | |||
| I get | |||
| pmichaud@kiwi:~/p6/rakudo-qrpa$ install/bin/parrot z2.pir rpa[$I0] = 0.68439507484436 | |||
| qrpa[$I0] = 0.730257987976074 | |||
| ...I'm totally confused. | 23:12 | ||
| First, by the fact that qrpa (dynpmc) is slower than rpa | |||
| but more confused by the fact that the parrot repo version takes ~3 seconds and the one built for rakudo takes <1 sec | |||
| whiteknight | besides cache effects there shouldn't be a performance penalty for dynpmc | ||
| pmichaud | maybe I didn't rebuild parrot... checking | ||
| I agree there shouldn't be performance penalty for dynpmc, but it's pretty consistent | 23:13 | ||
| whiteknight | 'tis quite a conundrum. I'll have to stare at it for a while | ||
| pmichaud | I've got a QRPA in my local parrot repo as a builtin now that I can test. Then I'll do a QRPA dynpmc as a test also. | 23:14 | |
| so we can do a good comparison. I might create a qrpa branch in the parrot repo for the testing so others can play too. | |||
| whiteknight | Yeah, good idea. If you think it has enough utility I'm definitely in favor of having it be in core | ||
| pmichaud | okay, --optimize improved things. Now I get | 23:15 | |
| rpa[$I0] = 0.658792972564697 | |||
| qrpa[$I0] = 0.609246969223022 | |||
| so, when QRPA is a core PMC, it's faster than RPA, which is what I would expect. | |||
| we're leaving here now, so I'll try the dynpmc later tonight or tomorrow afternoon | 23:16 | ||
| whiteknight | okay, thanks | ||
| dalek | kudo/altnfa: f335c7f | jnthn++ | src/Perl6/Grammar.pm: Update a couple of places in the grammar that need || insted of |. |
23:18 | |
| kudo/altnfa: fb45990 | jnthn++ | src/Perl6/Grammar.pm: Add ident so we can LTM on it. |
|||
| NotFound | I usually build with --optimize=-O3 | 23:25 | |
| whiteknight | I build with optimizations off, so there are no surprises when debugging | 23:29 | |
| NotFound | I tend to do fprintf stderr debugging | 23:30 | |
| whiteknight | I prefer loading up GDB, not knowing what commands to use, and saying curse words | 23:35 | |
| alias gdb=rm blib/lib/*.py*; gdb | 23:40 | ||
| this is absurd | |||
| dalek | rrot/whiteknight/io_cleanup1: f9db036 | Whiteknight++ | src/io/ (7 files): Fix the way we do encodings. For read if the FileHandle doesn't have one specified, fall back to the platform default encoding. For writes we fall back to the binary encoding. This fixes some of the build errors I saw earlier, is much closer to the weird way it used to work, and gets us much further in the build |
23:44 | |
| rrot/whiteknight/io_cleanup1: f77b281 | Whiteknight++ | src/io/utilities.c: Make sure to pass the correct flags to re-refix the build |
|||
| whiteknight | my recipe for git commit messages: 3 parts description to 1 part snark | 23:46 | |
| kid51_ | whiteknight: ping | 23:49 | |
| whiteknight | pong | ||
| kid51_ | On that gdb pretty-printer stuff. | ||
| I've never used it myself, so I don't know how it manifests itself, so I don't know what you prefer. | 23:50 | ||
| whiteknight | kid51_: There are several *.py files that get copied to the blib/lib directory. I want them to not be there | ||
| kid51_ | bbial | 23:51 | |
| whiteknight | so that's the symptom and the way to test a solution: Just make sure that directory doesn't contain any *.py files | ||
| I don't know exactly how those things get loaded into gdb when I run it. | 23:54 | ||