|
Parrot 3.0.0 Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Goals: Fix ipv6-related failures Set by moderator on 10 February 2011. |
|||
| plobsing | my naive statistics would suggest we use something like a Normal CDF centered around the GC threshold for triggering the collection. did I mention I don't know much stats? | 00:05 | |
|
00:14
vmspb left
|
|||
| nwellnhof | why not simply run a GC with a certain probability? | 00:21 | |
| Tene | nwellnhof: what's the probability that will be best for all possible programs? | ||
| nwellnhof | for debugging the best probability would be 1, but that's too slow. | 00:22 | |
| bacek_at_work | (158.26 - 88.26) / 158.26 * 100 | 00:25 | |
| aloha | 44.2310122583091 | ||
| nwellnhof | the problem with a random approach is to reproduce failures. we'd need a random seed that's dumped somehow in case of errors. | 00:26 | |
| plobsing | you're already in a "looking for errors" mode. dumping that seed to stderr, or creating a file in $CWD isn't too much of a stretch | 00:28 | |
| nwellnhof | and dump the hash seed as well | 00:30 | |
|
00:35
kid51 is now known as kid51_at_dinner
|
|||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#9598) fulltest) at 3_0_0-941-g8601021 - Ubuntu 10.10 i386 (g++-4.5) | 00:42 | |
| cotto_work: dukeleto: there is a Community section in NEWS - I think the GCI info for parrot can go there | 00:43 | ||
|
01:02
cotto joined
|
|||
| cotto | ~~ | 01:05 | |
|
01:07
cognominal joined,
nwellnhof left
|
|||
| mikehh | hey cotto | 01:09 | |
| cotto | hi mikehh | 01:19 | |
|
01:19
cotto left
01:28
dmalcolm left
01:30
cotto joined
01:32
Themeruta joined
01:33
NotFound left
|
|||
| bacek_at_work | (1671 - 1243) / 1671 * 100 | 01:38 | |
| aloha | 25.6134051466188 | ||
| bacek_at_work | (1725 - 1271) / 1725 * 100 | 01:41 | |
| aloha | 26.3188405797101 | ||
| bacek_at_work | (33 - 20) / 33 * 100 | 01:46 | |
| aloha | 39.3939393939394 | ||
| bacek_at_work | 0.48 * 545 | 01:47 | |
| aloha | 261.6 | ||
|
01:48
rdesfo left
|
|||
| bacek_at_work | 261 / 1271 * 100 | 01:49 | |
| aloha | 20.5350118017309 | ||
| bacek_at_work | nice. 20% of rakudo spectest spent in startup... | ||
|
01:51
kid51_at_dinner left
02:05
contingencyplan joined,
contingencyplan left,
contingencyplan joined
|
|||
| whiteknight | what are those numbers? | 02:15 | |
| plobsing | bacek_at_work: how much is that different before/after? | 02:18 | |
| also how much of rakudo spectest is spent parsing? or is that part of startup? | 02:19 | ||
| cotto | bacek_at_work, ping | 02:44 | |
| bacek_at_work | plobsing, 0.48 is rakudo startup time. It's not dominated by GC | 02:45 | |
| cotto, pong | |||
| plobsing, /usr/bin/time ./perl6 -e '' | |||
| cotto | bacek_at_work, what if after the 3.1 release we merged in gen_gc, but made gc_ms2 the default in 3.2 and 3.3 unless Parrot was configured to use gen_gc? | 02:46 | |
| bacek_at_work | cotto, how HLL's can use it than? There is no way (afaik) to switch GC | ||
| alternative - made it compile time selectable. Via Configure.pl | 02:47 | ||
| cotto | that's what I was thinking | ||
| bacek_at_work | wfm | ||
| cotto | ok | ||
| I'll bring it up at #ps and see if anyone can think of something better, but I'm glad it satisfies your concerns. | 02:48 | ||
| plobsing | I also think Configure.pl-time is the best option. The costs required to make gen_gc work would otherwise be applied to ms2 equally. | 02:54 | |
|
02:55
whiteknight left
|
|||
| dalek | rrot/gen_gc2: 36211cc | bacek++ | include/parrot/settings.h: Wrap defining of PARROT_GC_DEFAULT_TYPE under ifndef to make it overridable |
03:14 | |
| rrot/gen_gc2: 5f22a84 | bacek++ | include/parrot/gc_api.h: Remove TMS GC. It doesn't exist anymore. GC MS2 is TriColour. |
|||
| rrot/gen_gc2: ad15628 | bacek++ | src/gc/api.c: Rework initialization of GC |
|||
| bacek_at_work | cotto, Configure.pl --ccflags="-DPARROT_GC_DEFAULT_TYE=MS2" should work now. | 03:15 | |
| afk | |||
| cotto | bacek, thanks | 03:16 | |
| plobsing | ah. if we're just setting default, in stead of availability, it might be better to put that as a flag on pbc2c | 03:18 | |
| or exe or whatever that's called | |||
|
03:33
hudnix left
03:35
hudnix joined
|
|||
| cotto | plobsing, do you have an estimation of how much overhead having a pluggable gc costs us? | 03:43 | |
| plobsing | not off the top of my head. chromatic mentioned some numbers at one point. I think it was between 5 and 10 percent (of what I do not know). | 03:51 | |
| but the cost I am refering to is the dissabled optimizations currently required to make gen_gc work | 03:52 | ||
| cotto | That sounds like what I remember. | ||
|
04:04
bacek joined
|
|||
| bacek | ~~ | 04:13 | |
| dukeleto | ~~ | 04:17 | |
| cotto | has anyone trolled #ps for news items? | 04:21 | |
| dukeleto | cotto: i haven't | 04:22 | |
| cotto: but i will add GCI to community now | |||
|
04:27
drake1 joined
|
|||
| drake1 | hello | 04:28 | |
| how far is the i/o system of parrot? | |||
| the one compatible with stdio | 04:29 | ||
| cotto | drake1, what would you like to do? | 04:33 | |
| dalek | rrot: f180827 | cotto++ | NEWS: bulk up NEWS a little |
||
| drake1 | to fwrite and fread, fopen and fclose | ||
| and fseek | |||
| bacek | drake1, it's all implemented. | 04:34 | |
| drake1 | in rakudo too? | ||
| bacek | drake1, of course. | 04:36 | |
| dukeleto | drake1: yep, all that is well-tested and implemented | ||
| drake1: but asynchronous I/O is not there yet | |||
| drake1 | by the way, is list context simmd optimized? -bacek: where are the documentation / example files? | 04:37 | |
| dukeleto: meaning concurrent freads aren't possible? | 04:38 | ||
| bacek | drake1, for rakudo? In Perl6 spec. For parrot - best example is t/pmc/filehandle.t | ||
| drake1 | for rakudo, yes | ||
| thanks | |||
| dukeleto | drake1: src/io/*.c | 04:39 | |
| bacek | dukeleto, wrong answer :). src/pmc/filehandle.pmc | ||
| dalek | rrot: 483f6ec | dukeleto++ | NEWS: [doc] Beef up NEWS |
||
| drake1 | i only want to know the: open, close, print, <> equivalents | ||
| dukeleto | drake1: our object (PMC) api is in filehandle.pmc, but OS-specific stuff is in src/io/*.c | 04:40 | |
| drake1 | use filehandle; ok | ||
| bacek | drake1, check perlcabal.org/syn | ||
| dukeleto | drake1: in which language? From C, PIR, NQP, Perl 6 ? | ||
| bacek | S32 IO | ||
| dukeleto | drake1: what are you trying to do? | ||
| dukeleto added some beef stew to NEWS | 04:41 | ||
| drake1 | dukelto: some parallel redirection | ||
| the language is uinspecified | 04:42 | ||
| unspecified* | |||
| the stream itself is plain ascii | 04:44 | ||
| bacek | drake1, still not clear in which language you are trying to implement it :) | 04:45 | |
| drake1 | in perl6 | ||
| dukeleto | drake1: we can help you with implementing it in Rakudo Perl 6, but you may also want to ask these questions on #perl6 on freenode | 04:47 | |
| drake1: are you wanting to do this in Rakudo? | |||
| drake1: Rakudo is Perl 6 on Parrot | |||
| drake1: but there are other Perl 6 implementations | |||
| drake1 | dukeleto: how is the SSE support in Rakudo? | 04:48 | |
| dukeleto | drake1: Rakudo doesn't know about SSE | 04:49 | |
| dalek | rrot/gen_gc2: ecd3869 | bacek++ | config/gen/makefiles/root.in: Inline alloc_resources compilation. It's always required anyway. |
||
| rrot/gen_gc2: e0a4faf | bacek++ | / (4 files): Change auto::gc step to do something useful: actually switch GC in compile time |
|||
| drake1 | but perl is the qualified language | ||
| dukeleto | drake1: there is no custom ASM in Parrot, so that is essentially up to the compiler, as far as I know | ||
| drake1 | the C compiler? | 04:50 | |
| dukeleto | drake1: yes | ||
| drake1 | (C isn't qualified) | ||
| plobsing wonders if Lorito should try to make SSE/CUDA/etc easier (not specify API, just make it possible) | |||
| dukeleto | drake1: Parrot strives for portability, so we don't generally do asm | ||
| plobsing: not a bad idea | 04:51 | ||
| plobsing: CUDA is very interesting | |||
| plobsing: i think we can get at it through NCI to an already existing C library | |||
| drake1 | dukelto: like C is a lot more compatible | ||
| dukeleto | drake1: oh, don't we know it. | ||
| drake1 | dukelto: yes, sure | ||
| should be easy to redirect some calls | 04:52 | ||
| dalek | rrot/gen_gc2: ef3e968 | bacek++ | config/auto/gc.pm: Set gc_flag to empty string to use "default" GC. |
||
| plobsing | drake1: if you want full SSE support from something already implemented, look at parrot-linear-algebra. it uses BLAS (an optimized linear algebra package). | ||
| cotto | plobsing, it's interesting to think about how we could make that possible. | ||
| plobsing | cotto: exactly. I'm not sure we can, but we should think about that. | 04:53 | |
| drake1 | plobsing: perfect | ||
| dukeleto | plobsing: i think it just comes down to having good FFI/NCI support from M0 | ||
| drake1 | I was thinking that ( a * b, a * c, a * d) in perl could utilize the whole set of ALUs | 04:54 | |
| dukeleto | drake1: what is your interest in Parrot? are you doing scientific computing stuff? | 04:55 | |
| plobsing | drake1: what are you doing that has the ALU as the bottleneck? | ||
| drake1 | dukelto: just how good you do | 04:56 | |
| plobsing: matrix operations in regular perl | |||
| bacek | msg whiteknight (numbers) It was timing of "make spectest" and "./ops2c --core" on master vs gen_gc2. | ||
| aloha | OK. I'll deliver the message. | ||
| cotto | Trying to find submission deadlines for conferences makes me crabby. | 04:57 | |
| dukeleto | drake1: what are you using? Math::MatrixReal ? | ||
| plobsing | Perl typically uses too much memory to worry about such things. Perl 6 allows for implementations to get close enough to worry about things like that in special cases, but none of the implementations are there yet. | ||
| dukeleto | cotto: which confs? | ||
| cotto | Linuxfest NW in this case. | ||
| dukeleto | cotto: i think we should build a system that notifies everyone | ||
| drake1 | dukeleto: just regular list context | ||
| dukeleto | drake1: have you tried Math::GSL::Matrix ? | 04:58 | |
| drake1 | no | ||
| dukeleto | drake1: search.cpan.org/dist/Math-GSL/lib/M.../Matrix.pm | 04:59 | |
| plobsing | in my opinion, we'll likely see a P6DL. far easier to swap out complicated hot paths to native code than to build an optimizer that handles the general case as well as existing C compilers. | ||
| drake1 | im more curious about the core object | ||
| dukeleto | drake1: it is a wrapper to the GNU Scientific Library, which is C | ||
| drake1 | ok | ||
| dukeleto | drake1: matrix math will be much faster for large matrices, and memory use will be much less | ||
| drake1 | than regular perl? | 05:00 | |
| dukeleto | drake1: yes. | ||
| drake1: i wrote Math::GSL :) | |||
| drake1 | i code yacc, and could probably come up with something faster | ||
| dukeleto | drake1: i would like to hook up Parrot to GSL sometime soon, but haven't found the tuits | 05:01 | |
| drake1 | for math only | ||
| ok... does rakudo specify a binary interface too? | |||
| bacek | .oO( Where is our branching guide? ) |
05:02 | |
| cotto | docs/project/git_workflow.pod? | ||
| dukeleto | github.com/parrot/parrot/blob/mast...rkflow.pod | 05:03 | |
| bacek: that links to our branch merge guide | |||
| drake1: what do you mean by "binary interface" ? can you make rakudo binaries? | |||
| drake1: the answer to that is "yes" and they are called fakecutables | 05:04 | ||
| drake1: because they just embed parrot bytecode into a C array | |||
| drake1 | dukeleto: like how to link in some binary objects | ||
| dukeleto: and call from within rakudo - | |||
| dukeleto | drake1: such as calling functions from C librarys? | ||
| plobsing | drake1: check out NativeCall (Zavolaj) | ||
| drake1 | yes | ||
| thanks | 05:05 | ||
| plobsing | it is a million times more awesome than XS | ||
| dukeleto | drake1: it is called NCI (Native Call Interface), we use libffi for that stuff, if it is on the system | ||
| bacek | dukeleto, I don't like "username/foo" naming. It implies Bus Number equals to 1 | ||
| drake1 | dukeleto: from the parrot site? | ||
| cotto | It does encourage the idea that a person owns a branch. | ||
| plobsing | I agree with bacek on the username naming. | ||
| dukeleto | bacek: you don't have to follow it. It is a suggestion, but I like it for say "this is my personal branch", but then I invite people to hack on it | ||
| plobsing | cotto: that's equivalent to saying it implies ONE person owns a branch. which is a stones throw away from discouraging collaboration. | 05:06 | |
| dukeleto | i like the fact that *just by the branch name*, i know who created it and who the likely goto person is for it | ||
| yes, we moved to git to discourage collaboration... | |||
| cotto | plobsing, I'm agreeing with you. | 05:07 | |
| plobsing | dukeleto: well, if I don't have to share my commits with anyone else (because I can keep them local), why should I? ;) | ||
| dukeleto | but, for instance, i want everyone to hack on the 'lorito' branch, so i didn't call it 'leto/lorito' | ||
| Tene | dukeleto: you could also check the commit log to find out who to contact about a branch | ||
| dukeleto | Tene: yes. That takes time and effort. | ||
| drake1 | (might be the zavo* branch) | 05:08 | |
| Tene | 'k | ||
| bacek | dukeleto, lets rephrase git_workflow than. To something like "Name your branch as username/foo if it's your little playground for some crazy ideas. Name is just foo if you want more attention" | 05:09 | |
| dukeleto | bacek: if you are volunteering to change it, then i am +1 ;) | ||
| bacek | dukeleto, no problems. In which one of my first three languages? | 05:10 | |
| plobsing | drake1: github.com/jnthn/zavolaj | ||
| bacek | :) | ||
| drake1 | thanks | ||
| plobsing | drake1: you can probably also get it through whatever rakudo is calling their package system these days. ask on #perl6@freenode for details. | 05:11 | |
| cotto | bacek, very rude Russian. That way most of us won't know. | ||
| You can even say that it's very polite Russian and trick us. | |||
| drake1 | plobsing: ok | ||
| bacek | cotto, it will bring almost same flame was as of README.ru. "No-no-no. This is not rude enough. You should use more shits and fucks" | 05:13 | |
| s/was/war/ | |||
| (216 - 141) /216 * 100 | 05:14 | ||
| aloha | 34.7222222222222 | ||
| bacek | aloha, aloha? | ||
| aloha | bacek: aloha is simple Bot::BasicBot::Pluggable hosted on github.com/bacek/aloha | ||
| plobsing | aloha, ahola? | 05:15 | |
| aloha | plobsing: No clue. Sorry. | ||
| cotto | aloha, git workflow is github.com/parrot/parrot/blob/mast...rkflow.pod | 05:16 | |
| aloha | cotto: Okay. | ||
| plobsing | aloha: ahola is ahola/kecab/moc.buhtig//:sptth no detsoh elbaggulP::toBcisaB::toB elpmis | ||
| aloha | plobsing: Okay. | ||
| plobsing | :D | ||
| bacek | LOL :) | ||
| dukeleto | aloha, git workflow ? | 05:17 | |
| aloha | dukeleto: No clue. Sorry. | ||
| dukeleto | sad little bot | ||
| plobsing | aloha, ahola? | 05:18 | |
| aloha | plobsing: ahola is ahola/kecab/moc.buhtig//:sptth no detsoh elbaggulP::toBcisaB::toB elpmis | ||
| plobsing | only remembers useless information | ||
| bacek should add trimming of questions | |||
| cotto | aloha, git workflow? | ||
| aloha | cotto: git workflow is github.com/parrot/parrot/blob/mast...rkflow.pod | ||
| cotto | space | ||
| dukeleto | ah, the space before the ? | ||
| that is a bug that needs fixin' | |||
| bacek | msg bacek_at_work Don't forget to fix trimming of questions in aloha. | ||
| aloha | OK. I'll deliver the message. | ||
| bacek | dukeleto, feel free to fix it :) | 05:20 | |
| dukeleto, github.com/bacek/aloha/blob/master...Infobot.pm | |||
| drake1 | what hashes do rakudo use? | 05:21 | |
| err parrot | |||
| bacek | drake1, NIH implementation | ||
| drake1 | hmm | ||
| ok | |||
| just wrote on in asm for standard directory trees :-) | 05:22 | ||
| dukeleto | bacek: your delegation powers are useless against me! | ||
| msg bacek_at_work please fix infobot whitespace trimming : github.com/bacek/aloha/blob/master...Infobot.pm (The Beer is in the mail) | 05:23 | ||
| aloha | OK. I'll deliver the message. | ||
| cotto | The National Institute of Health has an excellent hash implementation. | ||
| bacek | dukeleto, congratulations! You just volunteered to fix aloha! :) | ||
| drake1 | the specific hash of choice | ||
| dukeleto | bacek: do i have a commit bit? | 05:24 | |
| bacek | cotto, they probably just fix consequences of using it | ||
| cotto | That's the CDC. | ||
| bacek | dukeleto, yes. For a long-long time. Like 5 minutes already. | ||
| drake1 | how many extern libs do parrot need? | 05:25 | |
| plobsing | drake1: need? or can use to provide more functionality (that most people want)? | 05:26 | |
| drake1 | the stdio range of libc? | ||
| plobsing: in the minimal case | 05:27 | ||
| plobsing | drake1: (simplification) Parrot targets POSIX (of which stdio is a part) | ||
| drake1 | oh. that's not much | 05:28 | |
| plobsing | of course, you'll probably want libicu (fairly sure Rakudo *requires* this) and libffi. | ||
| drake1 | just wrote the new fopen man: www.gangsterfreak.com/fopen.c | ||
| cotto | What was wrong with the old one? | 05:30 | |
| drake1 | the macro tokens were wicked and the stream implementation unspecified | 05:32 | |
| dukeleto | bacek: who wrote this code? ;) | ||
| bacek | dukeleto, Infobot.pm? Not me. I just copied it from Bot::BasicBot | ||
| plobsing | drake1: 'F.open'??? | 05:33 | |
| dukeleto | bacek: i read the source and I have decided to let someone else figure that ou | ||
| out, rather | |||
| drake1 | plobsing: with pronounciation keys | ||
| dukeleto | drake1: parrot needs at least perl 5.8, make and a decent C compiler, and then detects everyting else and enables features if your system supports them | 05:34 | |
| bacek | dukeleto, line 93 | ||
| dukeleto | drake1: perl is just for the build system | ||
| bacek | just chomp $body | ||
| drake1 | dukeleto: alright. can you share a list of extern references? | ||
| dukeleto | bacek: why would that work? | 05:35 | |
| drake1: what do you mean? I don't quite get your question | |||
| bacek: feel free to fix it, my brain is in other places | |||
| cotto | drake1, the README should document that | ||
| If not, let us know and we'll fix it. | |||
| drake1 | dukeleto: like a list of undefined symbold before the system link ie. ( nm $(OBJ) | grep '[[:space:]]U[[:space:]] | 05:36 | |
| plobsing | drake1: build it and check | 05:39 | |
| drake1 | i also try the README | ||
| plobsing: yeah | |||
| plobsing | drake1: might also want to ldd to get an overview | 05:40 | |
| drake1 | nm accounts for that too | 05:41 | |
| cotto | What kind of segments will M0 bytecode need? | 05:55 | |
| dalek | rrot/gen_gc2_smart_ops2c: 01bcdf1 | bacek++ | / (2 files): Add Op.need_write_barrier. Alos switch test to use Parrot's Test::More instead of NQP builtin |
05:58 | |
| rrot/gen_gc2_smart_ops2c: bb45335 | bacek++ | t/compilers/opsc/03-past.t: Add failing test for setting need_write_barrier. |
|||
| rrot/gen_gc2_smart_ops2c: 0dcf6ef | bacek++ | compilers/opsc/src/Ops/Op.pm: Implement Ops::Op.need_write_barrier |
|||
| rrot/gen_gc2_smart_ops2c: 29ff1a6 | bacek++ | / (2 files): Insert Write Barrier into op when needed |
|||
| rrot/gen_gc2_smart_ops2c: e6865f0 | bacek++ | compilers/opsc/src/Ops/Compiler/Actions.pm: Fix missing comma |
06:06 | ||
|
06:09
rurban_ joined
|
|||
| bacek | meh... semicolon | 06:09 | |
| drake1 | pretty sad the new convention is that read and write are the standard in out functions. does parrot use fwrite and fread instead? | 06:10 | |
|
06:12
rurban left
|
|||
| plobsing | new? don't they predate their f- counterparts? | 06:12 | |
|
06:12
rurban_ is now known as rurban
|
|||
| drake1 | no | 06:12 | |
| they are the original | |||
| from C implementations | |||
| my implementation does a #define read(fd,buf,size) fread(buf,1,size,_fp+fd) alike POSIX read write | 06:15 | ||
| plobsing | your implementation? are you writting an OS? | 06:16 | |
| drake1 | no. that's long ago | ||
| just the read / write POSIX functions | 06:17 | ||
| only linux they seem to be the parent functions which slow down the entire stream capability | 06:18 | ||
| s/only/on | |||
| plobsing | what evidence do you have of this? | 06:20 | |
| drake1 | and what kind of parent would not allow the stream to consist of cache line compatible atomic items? | ||
| plobsing: several C books | |||
| sorear | the standard in out functions are fread and fwrite | 06:26 | |
| plobsing | somehow I find it hard to beleive that basing fread() on read() (which is little more than a wrapper for a syscall) makes it slower. the most costly thing in read() is the syscall. | ||
| drake1 | yes | ||
| sorear | if you don't beleive me, try to find "write" in flash-gordon.me.uk/ansi.c.txt | 06:27 | |
| also, go find any Intel manual and look at the timings for INT | |||
| system calls are expensive, so there is userspace code which batches requests | 06:28 | ||
| mindlessly replacing fread with read will make your code a LOT slower | |||
| in addition to making it not work on non-Unix platforms | 06:29 | ||
| plobsing | well yes. but basing fread() on read() does not inherently make it slower. | ||
| drake1 | but muc worse for asynchronous interleaved streams | 06:30 | |
| much | |||
| sorear | You are not being very understandable. | 06:31 | |
| plobsing | read() means "I'm know how to handle buffering (or lack thereof) myself." If you fail to do so, that's your own damned fault. There is nothing fundamentally superior about fread(). | ||
| other than the portability aluded to above | 06:32 | ||
| drake1 | suppose you have two process, each producing items of size s; non interleaved packing would require only one atomic item to be sent at a time, which slows down the transmission plan | 06:33 | |
| plobsing | OK you've lost me. You'll have to elaborate. For example, why do you go out of your way to define variable s and then never mention it again? | 06:39 | |
| drake1 | since it's the object size argument | ||
| plobsing | OK, and that matters how? | ||
| drake1 | it's the whole basis for an object oriented protocol | 06:40 | |
| plobsing | OK, then there is a lot of implicit subtext which you are not making clear. at no point prior to this were you talking OO. | 06:41 | |
| drake1 | implementation defined of course | ||
| no POSIX requirement | 06:42 | ||
| only telling it's the only true parent for an objected oriented platform | 06:47 | ||
| sorear | What's your preferred language? | 06:48 | |
| drake1 | english | ||
| for code | |||
| and drawings | 06:49 | ||
| then translated by obscure m4 tokens to assembly or C | 06:50 | ||
| sorear | I mean natural languages. | ||
| plobsing | fread() is merely implemented in terms of whatever platform primitives are available for that functionality. there is nothing magical about it. nothing (besides complexity and reinventing the wheel) stops anyone from implementing different code that accomplishes the same effect. | 06:51 | |
| drake1 | sorear: that depends | ||
| bacek | aloha, 216 / 2 | ||
| aloha | bacek: 108 | ||
| bacek | 134 - 108 | ||
| aloha | 26 | ||
| sorear | drake1: your English argument skills are making a very bad impression | ||
| cotto | +1 | 06:52 | |
| bacek | hmm... I have to shave another 26 seconds from compiling rakudo's core.pm to make GMS twice faster than MS2 | ||
| cotto | bacek, sounds like a fun game | ||
| KaeseEs | bacek: what do you think the low hanging fruit wrt. speeding up gms is? | 06:53 | |
| bacek | cotto, indeed :) | ||
| KaeseEs, I already captured few of them | |||
|
06:53
contingencyplan left
|
|||
| KaeseEs | well, the remaining fruit :v | 06:53 | |
| drake1 | soear: you mean you don't likw the answers? | 06:54 | |
| dalek | rrot/gen_gc2_smart_ops2c: ffc751c | bacek++ | src/ops/core_ops.c: Rebootstrap ops |
||
| sorear | drake1: no, I mean I can't tell what you're trying to say. | ||
| rrot/gen_gc2_smart_ops2c: b760e35 | bacek++ | include/parrot/context.h: Re-enable direct access to registers. We have write barriers inside ops now |
|||
| rrot/gen_gc2_smart_ops2c: 9e325f8 | bacek++ | src/call/context_accessors.c: Remove Write Barrier from pcc_set_pc. We don't change anything GC related in it. |
|||
| rrot/gen_gc2_smart_ops2c: 039db7d | bacek++ | src/call/context_accessors.c: Remove WB from set_constants. We are not marking them in CallContext.mark anyway. |
|||
| rrot/gen_gc2_smart_ops2c: a861ec0 | bacek++ | include/parrot/context.h: Reenable direct access to CallContext to get stuff out in optimized builds. Didn't test debug build and it can be broken |
|||
| plobsing | drake1: more like we're (or at least I'm) having trouble understanding the answers. | ||
| bacek | plobsing, you'll be happy after my latest commit to gen_gc2_smart_ops2c :) | 06:55 | |
| plobsing | bacek: I saw that. Very happy indeed. | ||
| nopaste | "bacek" at 192.168.1.3 pasted "plobsing++ test for md5sum" (10 lines) at nopaste.snit.ch/32179 | 06:56 | |
| drake1 | was that a sharp bang? | ||
| plobsing | bacek: and there was much rejoicing | 06:57 | |
| cotto | bacek++ | ||
| bacek | 124 seconds for core.pm | 06:59 | |
| 16 seconds to go... | |||
| hmm. | |||
| cotto | ! | 07:00 | |
| bacek | KaeseEs, low-hanging fruit for GenGC is profiling. Any benchmark will be helpful | ||
| KaeseEs | ah-ha | 07:01 | |
| bacek | yay... segfault... | 07:04 | |
|
07:05
cosimo_ left
|
|||
| drake1 | however, the POSIX read write has hole support, which could transmit in variable size, it still doesn't grid the in/out. | 07:08 | |
| plobsing | bacek: looks like your new ops2c WB code only handles cases where inout arg is last | 07:09 | |
| convention has most comming first | 07:10 | ||
| bacek | no | ||
| t/compilers/opsc/03-past.t | |||
| last 3 tests | |||
| plobsing | Parrot_add_p_p_p() (in ffc75) needs WB but doesn't have one. that could explain the segfault. | 07:11 | |
| bacek | yes. | ||
| but... | |||
| How I can miss it?... | 07:12 | ||
| plobsing++ | 07:13 | ||
| dalek | rrot/gen_gc2_smart_ops2c: 4148c46 | bacek++ | / (2 files): Fix calculating write barriers for ops. plobsing++ |
07:20 | |
| plobsing | and your segfault? | 07:21 | |
| dalek | rrot/gen_gc2_smart_ops2c: 77b7aba | bacek++ | src/ops/core_ops.c: Rebootstrap ops |
07:22 | |
| bacek | rebuilding with rebootstrapped ops | ||
| drake1 | i think i want to embed some parrot machine in a webserver, where do i start? | 07:30 | |
| bacek | drake1, google mod_parrot | ||
| drake1 | ok. thanks | ||
| bacek | or read include/parrot/ember.h | ||
| embed.h | |||
| drake1 | nice | 07:31 | |
| bacek | plobsing, md5 test up from 1.02 to 1.10 seconds. Still faster than maser with 1.20 | ||
| cotto | It's been a while since mod_parrot worked. If you go that route, prepare for some hacking. | ||
| drake1 | and -lparrot in $(LDFLAGS) ? | 07:32 | |
| mod_parrot is apache, right? | |||
| cotto | yes | ||
| drake1 | i have some other system | ||
| cotto | it's for apache | ||
| bacek | plobsing, any ideas where to get more speed? | ||
| cotto | then prepare for more hacking | ||
| drake1 | for complete parrot integration with document objects etc. rather than plain files | 07:33 | |
| bacek lost 3 second on "core.pm benchmark"... :-/ | 07:34 | ||
| (216 - 127) /216 * 100 | 07:35 | ||
| aloha | 41.2037037037037 | ||
| cotto | drake1, the dom is a client-side thing. are you talking about parrot on the server or in the browser? | 07:37 | |
| drake1 | yes | ||
| in this server | |||
| where the document object model is implemented in another format | 07:38 | ||
| one object could be written in rakudo and executed server size, another one could wait to be executed on the client side... that model | 07:41 | ||
| s/size/side | |||
|
07:42
theory left
|
|||
| bacek | 126 - 108 | 07:44 | |
| aloha | 18 | ||
| drake1 | parrot runs without pthreads, right? | 07:46 | |
|
07:47
mtk left
|
|||
| drake1 | stupid question | 07:51 | |
|
07:53
mtk joined
08:05
fperrad joined
08:21
lucian joined
08:22
lucian left
|
|||
| bacek | oookey. 2 seconds. 16 to go. | 08:36 | |
| dalek | rrot/gen_gc2_smart_ops2c: af2e687 | bacek++ | src/gc/fixed_allocator. (2 files): Add accessors to PoolAllocator memory boundaries |
||
| rrot/gen_gc2_smart_ops2c: 8862fbb | bacek++ | src/gc/gc_private.h: Add accessors to get memory boundaries from GC Subsystem. |
|||
| rrot/gen_gc2_smart_ops2c: 8801f0c | bacek++ | src/gc/system.c: Pass interp to boundaries-getting functions |
|||
| rrot/gen_gc2_smart_ops2c: 199dfb3 | bacek++ | src/gc/system.c: Integrate with GC_Sys to get memory boundaries. |
|||
| rrot/gen_gc2_smart_ops2c: a6bc49b | bacek++ | src/gc/gc_gms.c: Expose memory boundaries from GMS |
|||
| bacek | 0.70 * 544 | 08:37 | |
| aloha | 380.8 | ||
| bacek | 1983 - 0.70 * 544 | ||
| aloha | 1602.2 | 08:38 | |
| bacek | 2758 - 0.70 * 544 | ||
| aloha | 2377.2 | ||
| bacek | (2377 - 1602) / 2377 * 100 | ||
| aloha | 32.6041228439209 | ||
| bacek | (216 - 126) /216 * 100 | 08:56 | |
| aloha | 41.6666666666667 | ||
| bacek out of ideas how to make GenGC faster... | 08:59 | ||
| drake1 | *action* moves a page pointer | 09:01 | |
| dalek | Heuristic branch merge: pushed 18 commits to parrot/gen_gc2 by bacek | 09:07 | |
| Heuristic branch merge: pushed 27 commits to parrot/gen_gc2 by bacek | 09:46 | ||
|
09:46
arnsholt left
09:48
fperrad left
09:49
fperrad joined
|
|||
| bacek | fperrad, ping | 09:55 | |
|
09:56
p6eval left,
p6eval joined
|
|||
| drake1 | how much larger is a perl6 image with eval capability? | 09:57 | |
| moritz | there's one with eval? | ||
| fperrad | pong, bacek | ||
| bacek | drake1, about 14M afaik | ||
| drake1 | ok | ||
| bacek | fperrad, can you test Lua on gen_gc2 branch? I tested it on my box, but want confirmation that I didn't brake it | 09:58 | |
| fperrad, and does Lua have any "standard" benchmarks? So we can test Lua-on-parrot vs Lua-on-Lua? | 09:59 | ||
| tadzik | there is a spectest | 10:00 | |
| fperrad | bacek, ok I'll do a test with gen_gc2 | 10:02 | |
| bacek | fperrad, I suspect lua will need few write barriers | 10:04 | |
| most likely in lua_function.pmc | |||
| But I don't understand code in it at all.. :( | |||
| hmm. Not luafunction.pmc. | 10:05 | ||
| luatable.pmc I think | 10:06 | ||
| drake1 | if you always want to use a /usr/bin translator - in a separate process - how to adjust the framework? | 10:09 | |
| for eval | 10:10 | ||
| fperrad | bacek, have you seen github.com/fperrad/lua/tree/master/t/shootout | ||
| bacek | fperrad, looking | 10:11 | |
| fperrad, yes. It was what I'm looking for! Great, thanks. | 10:12 | ||
| drake1 | that's a perl6 question | 10:15 | |
| tadzik | drake1: I don't understand the question | 10:16 | |
| fperrad | bacek, have you seen nopaste.snit.ch/30777 : a tentative of rewrite LuaFunction without multi inheritance | 10:17 | |
| drake1 | if you don't want the translator ( from x to parrot ) embedded in the same process image | ||
| bacek | fperrad, yes. But it's not related to GenGC. | 10:18 | |
| fperrad, anyway, I don't think it's worthwhile to put any effort to rewrite it without multiple inheritance for now. | |||
| fperrad, I hope we'll have 6model incorporated into parrot core. And than properly reimplement multiple inheritance based on it. | 10:19 | ||
| fperrad, luaio is failing. Looks like due error string change. | 10:29 | ||
| # file.rm: stat failed: No such file or directory | |||
| # doesn't match '^file.rm: No such file or directory' | |||
| meh.... | 10:31 | ||
| libos.t | |||
| fperrad | bacek, try: | 10:32 | |
| $ ./setup.pir update | |||
| bacek | fperrad, ah, ok | 10:33 | |
| drake1 | eval `env_pop time`, might be to dirty | ||
| at least the girls insist in perl | 10:34 | ||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#9646) fulltest) at 3_0_0-943-g483f6ec - Ubuntu 10.10 i386 (g++-4.5) | 10:35 | |
| gonna start cutting the release | |||
| Please do not commit to master in the interim | |||
| bacek | mikehh++ # Hooray! | ||
| moritz | ++mikehh | 10:36 | |
| tadzik | read that as: "Hooray! I'll be permitted to merge gen_gc2 soon!" :) | ||
| bacek | tadzik, it will not be enabled by default. | 10:37 | |
| jnthn | bacek: I suspect in Rakudo's --gen-parrot we'll configure Parrot with gen_gc by default | ||
| mikehh | gonna call it Budgerigar - a small Australian parrot - also known as Budgie | ||
| tadzik | wouldn't it? I thought that would be the one enabled by default, with a possible fallback to gc_ms2 | ||
| bacek | jnthn, it's doable now :) | ||
| tadzik, "Deprecation Policy" | 10:38 | ||
| tadzik | ah, misread the email | ||
| bacek | fperrad, Lua test passed with parrot's debug build. Will retest with optimized. | ||
| tadzik | The default for | ||
| non-release builds would be the generational gc, | |||
| bacek | tadzik, yes. | 10:39 | |
| tadzik | bleh | 10:40 | |
| bacek | fperrad, why t/shootout is disabled? | 10:42 | |
| fperrad, t/libregex segfaulted... Sigh. | 10:43 | ||
| fperrad | bacek, t/shootout is disabled because some tests consumes all the memory | 10:46 | |
| bacek | fperrad, ouch... | ||
| fperrad, we need some GC expert. | |||
| OH, WAIT | 10:47 | ||
| :) | |||
| fperrad | bacek, only LuaTable PMC uses mem_allocate, | ||
| the critical section in rehash() is protected by Parrot_block/unblock_GC_mark | |||
| bacek | fperrad, we need PARROT_GC_WRITE_BARRIER to play nicely with GenGC. | 10:48 | |
| drake1 | capital aid slash cops, call for the junk; might solve the gc | ||
| bacek | fperrad, ok. I can reliably crash luaregex.t. We'll look at it tomorrow. | 10:51 | |
| fperrad | bacek, ok, good night | 10:52 | |
| bacek | fperrad, night | 10:53 | |
| fperrad, can I have commit bit to Lua? | 10:57 | ||
| fperrad | bacek, done | 11:00 | |
| bacek | fperrad, thanks | ||
| nopaste | "bacek" at 192.168.1.3 pasted "prove t/shoutout.t" (32 lines) at nopaste.snit.ch/32247 | 11:01 | |
| bacek | fperrad, looks like it works. Freaking slow however... | 11:02 | |
| dalek | a: ef33938 | bacek++ | t/shootout.t: Specify 'binary' encoding for loaded files. Fix loading of mandelbrot test data. |
11:07 | |
| drake1 | might be too hard to look at the surface, instead of through everything | 11:09 | |
| moderator | Parrot 3.0.0 Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Goals: Fix ipv6-related failures | Help testing/fixing Lua on gen_gc2 branch | 11:16 | |
| mikehh | ok - anyone know how to handle git_describe | 11:22 | |
| moritz | waht about it? | ||
| mikehh | how do you update it to 3.1.0 rather than 3.0.0 | ||
| moritz | have you tagged the release yet? | 11:23 | |
| after you did, and reconfigure parrot, it should be fixed automatically | |||
| drake1 | i give up. it's all to complicated. good luck guys. take care | ||
|
11:23
drake1 left
|
|||
| mikehh | 'k thanks moritz | 11:24 | |
| moritz | was drake1 a conversation bot? | ||
| reading some of the last lines ... I got the impression it was too bizarre to be produced by a human :-) | 11:25 | ||
| tadzik | (: | 11:29 | |
|
11:37
arnsholt joined
11:51
bacek left
|
|||
| dalek | rrot: 154ab50 | mikehh++ | / (3 files): increment version number to 3.1.0 |
12:58 | |
| rrot: 72ed55c | mikehh++ | docs/p (2 files): change history and release docs |
|||
| rrot: e524519 | mikehh++ | / (3 files): update NEWS, CREDITS and ChangeLog |
|||
| rrot: 59be83a | mikehh++ | / (2 files): update core ops |
|||
| ttbot | Parrot 72ed55c9 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/12982 | 13:00 | |
| Parrot e524519c i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/12981 | |||
| Parrot e524519c i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/13006 | |||
| Parrot e524519c i386-freebsd-64int make error tt.taptinder.org/cmdinfo/13029 | 13:04 | ||
|
13:13
darbelo joined
13:14
nwellnhof joined
|
|||
| nwellnhof | ~ | 13:14 | |
|
13:17
Coke left,
Coke joined
|
|||
| mikehh | phew taptinder had me worried there - it's ok now | 13:19 | |
| pk - you can commit away | 13:20 | ||
| ok | |||
|
13:40
whiteknight joined
|
|||
| dalek | rrot-test: f2e185c | Whiteknight++ | tap_harness/ (3 files): several fixes/rewrites |
13:45 | |
| rrot-test: 0735120 | Whiteknight++ | tap_harness/ (6 files): rename files for consistency |
|||
| rrot-test: 770d2e4 | Whiteknight++ | / (4 files): fixes so the tap harness lib builds and runs |
|||
| rrot-test: 13c88ab | Whiteknight++ | .gitignore: tap_harness temporaries in .gitignore |
|||
| rrot-test: 0cbc0bf | Whiteknight++ | tap_harness/ (2 files): +support for PIR test files |
|||
| rrot-test: 2a19b9e | Whiteknight++ | tap_harness/ (3 files): change the way we handle max filename length. Add in an option to spawn subcommands for the tests, instead of compiling and executing them in-place. A few other changes. |
|||
| rrot-test: 0f2d38c | Whiteknight++ | tap_harness/Harness.nqp: Add a function to insert a new test loader. Give access to load in tests to a new loader by name. Cleanup initialization code. After we run, immediately reset the harness to be able to run more tests. showing test results clears the output, otherwise we aggregate subsequent runs |
|||
| rrot-test: 85ad970 | Whiteknight++ | tap_harness/ (3 files): calculate max_file_name at once after the fact. Fix the way we load files from a dir, and add in the option to recurse directories |
|||
| rrot-test: 95543c0 | Whiteknight++ | tap_harness/Loader.nqp: refactor test to see whether a file is a valid test file. Now we can subclass just that portion |
|||
| rrot-test: 6c20b48 | Whiteknight++ | tap_harness/Harness.nqp: refactor test to see whether a file is a valid test file. Now we can subclass just that portion |
|||
| rrot-test: 8d3f65e | Whiteknight++ | tap_harness/Harness.nqp: add option to specify line length |
|||
| rrot-test: c056875 | Whiteknight++ | / (3 files): refactor some of the console outputting stuff to a separate class |
|||
| rrot-test: 681b1fd | Whiteknight++ | tap_harness/Output.nqp: add the outputter file |
|||
| whiteknight | ... | ||
| ...where's the rest of it? damnit dalek | |||
| Coke notes his taptinder client is sitting idle. | 13:47 | ||
| dalek | rrot-linear-algebra: 1ae0670 | Whiteknight++ | setup.nqp: fix PLA setup.nqp to not use nqp-setting. This avoids the method conflicts we were seeing, and allows us to submit smoke reports again |
13:48 | |
| whiteknight | and there it is | ||
| good morning, #parrot | |||
| Coke | tt.taptinder.org/buildstatus/parrot/master/4 | 13:49 | |
| did those get reported here? (the c++ build failures?) | |||
| (wow, my client machine has been busy.) | 13:50 | ||
| (oh, they were errors in main job also...) | 13:51 | ||
| mikehh | how do you get the files to ftp-osl.osuosl.org - I ssh'ed in and tried using the scp as in the Release Manager guide and it asks for a password | 13:52 | |
| moritz | somebody needs to give you an account, I think | 13:53 | |
| mikehh | I got one I think - it allowed me to get in using ssh using parrot as user name | ||
| moritz | then use the same for scp | 13:54 | |
| mikehh | it called up my keyring to get in | ||
| moritz | scp parrot-3.1.0.tar.gz parrot@host:/path/to/store | ||
| mikehh | but scp asks for a password which I don't have | 13:55 | |
| moritz | even if you use the same username as for ssh? | ||
| mikehh | aye | ||
| moritz | that's weird then | ||
| because scp uses ssh under the hood | 13:56 | ||
| mikehh | let me try again | ||
| Coke | if you can ssh in with no password, you should be able to scp also, no problem. | ||
|
14:00
lucian joined
|
|||
| Coke | msg bacek gen_gc2 branch fails more partcl tests than master. | 14:02 | |
| aloha | OK. I'll deliver the message. | ||
| Coke | (a lot more) | 14:04 | |
| msg bacek t/cmd_if.t segfaults. t/cmd_expr.t has a parsefail somewhere. (this is in partcl-nqp) | |||
| aloha | OK. I'll deliver the message. | ||
| mikehh | Coke: nope - as soon as I use scp is asks for a password. when I ssh in it goes to my Ubuntu keyring, but it does not for scp, just asks for password | 14:08 | |
|
14:09
rurban_ joined
|
|||
| moritz | mikehh: try sftp | 14:10 | |
|
14:11
rurban left
14:12
rurban_ is now known as rurban
14:14
plobsing left
|
|||
| whiteknight | in NQP, if I have two methods foo(*@args) and foo(@args), will MMD correctly dispatch between them? | 14:22 | |
| PerlJam doubts it | 14:23 | ||
| (but then I don't really know :) | |||
| moritz | does NQP even have multi dispatch? | 14:24 | |
| arnsholt | If it's NQP-rx, it won't work | 14:25 | |
| whiteknight | okay | ||
| I wont try it, then | |||
| arnsholt | A sub in -rx just generates a PIR .sub, and last time I checked Parrot's :multi stuff wasn't exposed either | ||
| (Although that last might have changed) | |||
| mikehh | moritz: thanks, that seems to work | 14:26 | |
| moritz | hm, at least multi subs seem to be implemented | ||
| Coke | I thought nqp-rx had multi, yes. | 14:33 | |
| ugh. partcl-old was never updated to deal with CodeString going away. | |||
| whiteknight | ouch | 14:34 | |
|
14:34
M_o_C joined
|
|||
| jnthn | whiteknight: In new NQP, I could implement that arity handling. | 14:43 | |
| whiteknight: Didn't yet. But it's very possible. | |||
| PerlJam | jnthn: are you teasing him? :) | ||
| jnthn | Would I? ;-) | 14:44 | |
| cotto | ~~ | 14:54 | |
| whiteknight, how do you feel about my idea of making the default gc a configure-time option? | 14:55 | ||
| mikehh | hi cotto | 14:56 | |
| cotto | good morning, mikehh | 14:57 | |
| moritz | to me that sounds like overkill | ||
| how long is it going to be maintained? | |||
| cotto | 3.3 according to our policy | ||
|
14:57
bluescreen joined
|
|||
| mikehh | ok Release is progressing - files uploaded, downloaded and sha256sum ok | 14:57 | |
| for some reason I could not get in with shh/scp - I used sftp which was ok | 14:59 | ||
| nwellnhof | maybe access is limited to sftp? | ||
|
14:59
plobsing joined
|
|||
| mikehh | ssh was ok but scp failed (asked for password) | 14:59 | |
| ok now to do the announcements | 15:00 | ||
| cotto | mikehh, that's wacky but I'm glad you got around it. | 15:01 | |
| Coke | can you rename a repository on github? | 15:04 | |
| or do you fork-then-delete? | |||
| cotto works | |||
|
15:04
Andy joined
|
|||
| whiteknight | msg cotto I'm less unhappy about that. I am still very frustrated to be in this kind of position, however. The temporary fix doesn't address the larger issue | 15:08 | |
| aloha | OK. I'll deliver the message. | ||
|
15:10
M_o_C left
15:19
rdesfo joined
|
|||
| cotto_work | ~~ | 15:23 | |
|
15:30
M_o_C joined
|
|||
| whiteknight | cotto_work: I just msg'd you under "cotto" | 15:30 | |
| cotto_work | No worries. I backscroll and blink on cotto. | 15:31 | |
|
15:31
M_o_C left
|
|||
| moritz | Coke: renamng works | 15:32 | |
| though all references to the old one will stop working | |||
|
15:35
sri left
|
|||
| cotto_work | whiteknight: how would you articulate the larger issue? | 15:35 | |
|
15:35
Themeruta is now known as NotFound
15:39
sri joined
|
|||
| plobsing | msg bacek the largest problem I can see from the md5sum test is now that FixedIntegerArray getting unecessary (AKAICT) WBs. It isn't exactly a dominating cost. Perhaps, if we find a case where this would make a significant difference, a manual_wb flag in pmc2c would help. | 15:41 | |
| aloha | OK. I'll deliver the message. | ||
|
15:41
sri left
15:42
sri joined
15:51
bluescreen left
|
|||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#9675) fulltest) at 3_1_0 - Ubuntu 10.10 i386 (g++-4.5) | 15:54 | |
| git_describe just says RELEASE_3_1_0 is that right? I suppose no commits after the tag | 15:55 | ||
| cotto_work | If it's the release, that sounds accurate. | 15:56 | |
| mikehh | The test was on the devel version | ||
| anyway I have to go to a doctor's appointment - will complete the announcements etc when I get back | 15:57 | ||
| cotto_work | wfm | ||
| mikehh | still haven't figgured out a decent quote yet | 15:58 | |
| moritz | mikehh++ # release | ||
| mikehh | my tuits are all gone :-} | 15:59 | |
|
15:59
contingencyplan joined
|
|||
| cotto_work | mikehh: don't let that hold up the release. | 15:59 | |
|
16:02
plobsing left
|
|||
| whiteknight | mikehh: you don't need a quote or anything fancy | 16:07 | |
|
16:08
benabik joined
|
|||
| whiteknight | does NQP-rx have constructors that I can pass arguments to? | 16:08 | |
| benabik | Good morning, #parrot | 16:09 | |
| cotto_work | hio benabik | 16:11 | |
| whiteknight | looking at the code for P6protoobject, I'm guessing the answer is "no" | 16:15 | |
| cotto_work | That's what I'd guess from looking at the nqp-rx test suite. | 16:16 | |
| jnthn | Pretty sure the ansewr is no. | ||
| *answer | |||
|
16:17
plobsing joined,
Patterner left
16:18
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
| whiteknight | what is the Perl6ism for constructors, CREATE? | 16:19 | |
| it seems like that would be trivially easy to add to P6protoobject | |||
| jnthn | CREATE isn't for constructors | ||
| whiteknight | so what is for constructors? | ||
| jnthn | It's just for the actual allocation of the object | ||
| Depends. Either BUILD or a custom new. moritz++ has an excellent blog post on those. | 16:20 | ||
| I'm looking at putting some of that into new nqp, but you could probably backport it. | |||
| cotto_work | whiteknight: you could look at what opsc does. | ||
| jnthn | I've mostly been structuring things in such a way that when there's a new that does the Right Thing, it'll be easy to just delete my special one. | 16:21 | |
| And rely on the default one | |||
| whiteknight | do you happen to have a link to moritz' blog? or that post in particular? | 16:24 | |
| jnthn | whiteknight: perlgeek.de/blog-en/perl-6/ is the blog | 16:26 | |
| hmm, struggling to find the post... | 16:27 | ||
| whiteknight: aha | |||
| perlgeek.de/blog-en/perl-6/object-c...ation.html | |||
| arnsholt | My solution to the custom constructor problem in nqp-rx was just a class method that did it for me, FWIW | 16:29 | |
| jnthn | When I started writing ClassHOW yesterday I got to the point of "gah, I really need to fix construction" :) | 16:30 | |
| arnsholt | Cool. When do you think would be a good time to move from old nqp to new nqp, BTW? | 16:35 | |
| Now? | |||
|
16:37
theory joined
|
|||
| jnthn | arnsholt: Depends. It's obviously got a lot of code in it that's newer and thus less mature than that in nqp-rx, and is still being quite actively developed in some areas. On the other hand, if you're interesting in implementing a language with OO features, things are much nicer in nqp since you've got all the meta-programming bits to hand. | 16:39 | |
| arnsholt: There's much more in common than is different though. You may well find that your nqp-rx code just works already without changes in nqp. For grammars and action classes this will be the common case. | 16:40 | ||
| And if it doesn't work, I'll be curious to hear about it. :) | 16:41 | ||
| arnsholt | I'll certainly do that | 16:42 | |
| jnthn | I expect a lot of kinks to be ironed out in the next 1-2 weeks as I start re-working Rakudo to run on top of it all :) | 16:43 | |
| arnsholt | Of course, I don't need much in the way of OO (Prolog may be many things, but OO ain't one of them) but I would like to check out the new and shiny NQP | ||
| jnthn | *nod* | ||
| Should be some memory improvements too, fwiw. There'll be even more in the pipeline. | |||
| Cursor is already rather lighter, for example. | 16:44 | ||
| arnsholt | That is something I want, OTOH | 16:45 | |
| jnthn | :) | ||
| arnsholt | In my testsuite, I suspect that parsing the code takes up more than it needs to | ||
| It's also possible I could improve the grammar as well, mind | 16:46 | ||
| jnthn | Cursors are malloc-free now, and entail anything from 1 to 3 garbage collectable objects less. | ||
| Match objects are in for a similar treatment when I get around to it. | |||
| Or somebody else gets around to it, if I'm lucky. :) | |||
| arnsholt | Kewl | ||
|
16:58
lucian left
17:03
benabik left
17:05
lucian joined
17:07
ttbot left,
rdesfo left,
ttbot joined
17:16
nwellnhof left,
plobsing left
17:17
dmalcolm joined
17:20
lucian left
17:22
lucian joined
17:23
ambs joined
|
|||
| dukeleto | ~~ | 17:25 | |
|
17:33
lucian_ joined
17:36
bacek joined
17:37
lucian left
17:53
bacek left
|
|||
| dalek | TT #2014 created by doughera++: t/tools/mk_language_shell.t might use an old installed parrot | 17:55 | |
| TT #2014: trac.parrot.org/parrot/ticket/2014 | |||
|
18:04
dmalcolm left
|
|||
| Coke sees that his taptinder is tinding. | 18:12 | ||
| cotto_work | mikehh: ping | 18:13 | |
|
18:13
bacek joined
|
|||
| dalek | rrot: 968cc50 | cotto++ | NEWS: add Daniel Kang to list of gci students in NEWS |
18:15 | |
| cotto_work | msg mikehh One of the gci students was missed in NEWS. I added him. | ||
| aloha | OK. I'll deliver the message. | ||
| Coke | ... isn't the release already cut? | 18:21 | |
| cotto_work | It's in process. | ||
| Coke | k. | 18:26 | |
|
18:26
plobsing joined
|
|||
| dukeleto | ~~ | 18:38 | |
| cotto_work: the list of GCI students in the NEWS were grand prize winners | 18:39 | ||
| cotto_work: i don't think Kang got the grand prize, but he was a parrot student? | |||
| dalek | website: mikehh++ | Parrot 3.1.0 "Budgerigar" Released! | 18:43 | |
| website: www.parrot.org/news/2011/Parrot-3.1.0 | |||
| cotto_work | dukeleto: he's on the list in that blog post and he contributed as jumpyshoes | ||
| at #7 | |||
| github.com/parrot/parrot/commit/6c1531e4 | 18:44 | ||
| whiteknight | mikehh++ | 18:45 | |
| dukeleto | cotto_work: works for me | 18:46 | |
| cotto_work: nice catch | |||
| is the release tagged yet? | |||
| mikehh | cotto - I already released the files to the site and just hadn't announced | ||
| cotto_work | too late for the release announcement, though | ||
| dukeleto | cotto_work: we can edit the release announcement | 18:47 | |
| cotto_work: at least our blog post about it | |||
| mikehh: have you sent out release announcement emails? | |||
| cotto_work | mikehh: can you update the email announcement? | ||
| mikehh | I am about to | ||
| cotto_work | great | ||
| mikehh | I had to go to the doc, bunch of vampires, they took my blud | 18:48 | |
| whiteknight | BLUD! | 18:50 | |
| cotto_work | release seems to be out. Let's break some stuff. | 18:51 | |
| dukeleto | cotto_work: are you updating the blog post re: student name? | 18:52 | |
| cotto_work | or maybe wait until mikehh says so | ||
| dukeleto: I can | |||
| mikehh | I am doing it now | 18:54 | |
| cotto_work | done | ||
|
18:54
gerd joined
|
|||
| cotto_work | mikehh: ^ | 18:54 | |
| dukeleto | typo in our release announcement: allow implementation of try .. catch construcs in C extensions. | 19:02 | |
| "construcs" | |||
| A repository for a new NQP version which has a new object model is | 19:03 | ||
| created at github.com/perl6/nqp | |||
| the tense is a bit wonky in that sentence | |||
|
19:03
jan joined
|
|||
| mikehh | dukeleto: just copied it from NEWS :-} | 19:04 | |
| dukeleto | mikehh: yes, NEWS needs to be spell/grammar checked :) | 19:08 | |
| mikehh | who all do I send the email to - parrot-dev@lists.parrot.org, parrot-users@lists.parrot.org, but what are the addresses of the other lists - perl6-language, perl6-announce, perl5-porters | 19:09 | |
| dukeleto: never got around to that ;-{ | |||
| dukeleto | mikehh: that list should be in the release manager guide somewhere | 19:10 | |
| cotto_work | mikehh: it's important | ||
| dukeleto | mikehh: if it isn't, please add | ||
| mikehh | I am sure I had them somewhere but can't find them | ||
| dukeleto: just the lists, not their addresses | |||
| let me send it to parrot, I can send to the others later | 19:13 | ||
| gerd | it is: ...@perl.org | 19:15 | |
| whiteknight | mikehh: is this your first release? | ||
| ...of parrot? | |||
| cotto_work | second, apparently | ||
| mikehh | I submitted that from a different computer, and I don't have all the backups from that one | 19:23 | |
| ok - how do you set the release to be the one you download | 19:24 | ||
| PerlJam | mikehh: you mean the tarball? | 19:26 | |
| (or zip file) | |||
| mikehh | if I go to downloads, on parrot.org, click on downloads, developer release and it is pointing to 3.0.0 | 19:27 | |
| whiteknight | a drupal admin might need to change that | ||
| cotto_work | I can fix that. | ||
| jnthn | mikehh++ # quote win | ||
| mikehh | jnthn: ;-} | ||
|
19:28
dmalcolm joined
|
|||
| cotto_work | done | 19:29 | |
| mikehh | cotto_work: can you also upload the latest make html files | ||
| cotto_work | mikehh: sure. Do you have a tarball somewhere? | 19:30 | |
| mikehh | just run make html in the latest #parrot and replace them on docs.parrot.org | 19:31 | |
| dukeleto | we need to automate some of that stuff | 19:34 | |
| mikehh | dukeleto: I'll look into it | 19:35 | |
| got to work with kid51 to sort out removing make docs and more gtml cleanup | |||
| html | 19:36 | ||
| cotto_work | done | ||
| dukeleto: +1. it's annoying and pretty amenable to scripting | 19:37 | ||
|
19:41
nwellnhof joined
|
|||
| nwellnhof | ~ | 19:41 | |
| mikehh | bah, just noticed another error in the announcement - subversion is mentioned - the perils of copy pasting. fixing | ||
| Coke | cotto_work: did you update docs.parrot.org ? | 19:43 | |
| (someone keeps changing one of the symlinks that doesn't need to be changed. | 19:45 | ||
| oh, it was cotto, since everyone is forced to login. ;) | |||
|
19:45
darbelo left
|
|||
| Coke | cotto_work: latest should always point to devel. | 19:48 | |
| msg cotto_work: latest should always point to devel on docs.parrot.org | |||
| aloha | OK. I'll deliver the message. | ||
| atrodo | dukeleto> ping | 19:50 | |
| cotto_work | ~~ | 19:59 | |
|
20:00
benabik joined
20:01
zby_home joined
|
|||
| cotto_work | Coke: ok | 20:01 | |
| dukeleto | atrodo: pong | ||
| atrodo | dukeleto> Do you know what the state of security is in parrot? | 20:02 | |
| dukeleto> After I pinged you, i wondered why i thought you would know that | |||
| dukeleto | atrodo: it is very poor | 20:03 | |
| atrodo | dukeleto> That's what I was afraid of | ||
| dukeleto | atrodo: i do know about it, because PL/Parrot needs various security features that Parrot doesn't currently have | ||
| cotto_work | e.g.? | 20:04 | |
| atrodo | dukeleto> Ah, yes, that's why I was thinking you would know | ||
| dukeleto | Disabling groups of opcodes, not requiring the 1st ever created interp to be passed to Parrot_new to create more interps, disabling loading of bytecode, many things | 20:05 | |
| NotFound | dukeleto: what's the problem with Parrot_new ? | ||
| dukeleto | Being able to say "this PIR can create network connections, but it can't have filesystem access" | 20:06 | |
| NotFound: you have to pass the 1st ever created interp to it to create more interps | |||
| NotFound: i have trusted and untrusted interps in PL/Parrot, but they mingle and that is bad for security | |||
| NotFound | dukeleto: that's a feature, not a problem ;) | ||
| dukeleto | NotFound: no, it is not a security feature, it is a security problem waiting to happen | ||
| each interp should know nothing about any other interp, unless you want it to | 20:07 | ||
| NotFound | dukeleto: so the problem is that you want completely separated interpreters? | 20:08 | |
| mj41 | msg bacek gen_gc2 is online, see tt.taptinder.org/ ... will look on ttbot tomorrow | 20:09 | |
| aloha | OK. I'll deliver the message. | ||
| cotto_work | It'll probably be merged tomorrow. | 20:10 | |
| dukeleto | NotFound: yes. | 20:16 | |
| MERGE BABY MERGE | |||
| NotFound | dukeleto: I think there are several internals that must be changed to be able to do that. | 20:17 | |
| dukeleto | NotFound: yep. | ||
| mikehh | #ps in 10 | 20:20 | |
|
20:20
tcurtis joined
20:38
donaldh joined
|
|||
| Coke | interpreters should have a hierarchy of parent interps. | 20:39 | |
| (back to the main interp) | |||
| dukeleto | Coke: no. | 20:42 | |
| Coke | fine. "should be able to" | 20:44 | |
| dukeleto | Coke: sure. | 20:45 | |
| Coke | but if you want to create a new interp, it seems reasonable that you have to pass in the original interp at least once. | ||
| dukeleto | Coke: the security professional in me screams bloody murder at the implications of that | ||
| Coke: i am fine with it being optional, such that passing in old interps reuses some junk and provides memory savings, but there should be a way to create totally standalone interps | 20:46 | ||
| cotto_work | dukeleto: +1 | ||
| Coke | that might be a problem with our /implementation/, but I don't think it's a problem with child interpreters per se. | 20:54 | |
| whiteknight | it is certainly a problem with our current implementation | 20:55 | |
| Coke hurls: www.tcl.tk/man/tcl8.5/TclCmd/interp.htm for what tcl needs for support. | 20:56 | ||
| whiteknight | and by "our current implementation", I mean "our current threads system implementation | ||
| '" | |||
| atrodo | So if we rip out threads, problem solved? | ||
| whiteknight | basically...yes | 20:57 | |
| that's one of the big reasons why I wanted to rip them out | |||
| but no, having a system which barely works for even trivial toy programs and causes other serious design problems is better than not having it | |||
|
21:00
perlite left
21:01
perlite joined
21:05
vmspb joined
21:23
benabik left
21:24
benabik joined
21:25
Andy left
|
|||
| Tene | whiteknight: I'm the only person that I've actually seen object to ripping out threads, so i can't speak for anyone else, but I can speak for myself. | 21:30 | |
| dalek | p/match-nom: 6314c26 | moritz++ | src/Regex/Match.pir: first shot at moving Regex::Match to 6model. Does not even compile yet |
||
| p/match-nom: a5a8a85 | moritz++ | src/Regex/Match.pir: fix stupid thinko |
|||
| p/match-nom: a66d699 | moritz++ | src/Regex/Cursor.pir: fix new_match |
|||
|
21:31
benabik_ joined,
whiteknight left
|
|||
| Tene | whiteknight: I don't have a clear, well-supported reason to keep the current threads impl. My hesitation is a vague discomfort with feeling like we're "moving backwards", and a vague fear that ripping it out would make adding a good threads system somehow less likely to happen, or more difficult, etc. | 21:31 | |
| Oh, ENOWHITEKNIGHT | 21:32 | ||
| aloha: msg whiteknight I don't have a clear, well-supported reason to keep the current threads impl. My hesitation is a vague discomfort with feeling like we're "moving backwards", and a vague fear that ripping it out would make adding a good threads system somehow less likely to happen, or more difficult, etc. I don't feel confident that I'd actually know if that's the case. If you can reassure me about these points, I'd support ... | 21:33 | ||
| aloha | Tene: OK. I'll deliver the message. | ||
| Tene | ... ripping out threads. | ||
| bah, close enough | |||
|
21:35
benabik left,
benabik_ is now known as benabik,
ambs left
|
|||
| cotto_work | msg cotto You should look at PyCon for your conf todo list. | 21:39 | |
| aloha | OK. I'll deliver the message. | ||
| dalek | p/match-nom: b863609 | moritz++ | src/Regex/Cursor.pir: remove 3-arg setattribute from Regex::Cursor.MATCH |
21:40 | |
|
21:42
donaldh left
21:43
fperrad left
21:50
donaldh joined
|
|||
| dalek | p/match-nom: edbb70c | moritz++ | src/Regex/Cursor.pir: get rid of some boxing |
22:05 | |
| rrot: ce8e12d | cotto++ | api.yaml: remove "fast-tracked" from api.yaml. A better solution was found at #ps |
|||
| rrot: 5cc4b35 | cotto++ | api.yaml: deprecations are eligible in 3.4, not 3.3 |
22:06 | ||
|
22:06
KaeseEs left
22:09
rurban_ joined
|
|||
| tadzik | is there anyone interested in bringing Close back to life? | 22:10 | |
| nwellnhof | Tene: the current thread implementation simply doesn't work and has a bus number of zero, so i don't see why we should keep it. from what i've seen it suffers from the same problems than perl5 threads. what i'd like to see is a shared everything approach that leaves as much as possible to HLLs. | 22:11 | |
| lucian_ | tadzik: i'm sort of interested in someone else doing that :) | ||
| nwellnhof: so to use those threads for each HLL to build their own? | |||
| benabik | What is Close? | ||
|
22:12
rurban left
|
|||
| tadzik | benabik: a C-like lang for Parrot | 22:12 | |
| close? | |||
| aloha: close? | |||
| aloha | tadzik: No clue. Sorry. | ||
|
22:12
rurban_ is now known as rurban
|
|||
| cotto_work | tadzik: It's not C, but it's close. | 22:12 | |
| dukeleto | tadzik: yes, i would try to help | ||
| tadzik | aloha: close is code.google.com/p/close/ | ||
| aloha | tadzik: Okay. | ||
|
22:12
KaeseEs joined
|
|||
| tadzik | close? | 22:12 | |
| cotto_work | er, benabik | ||
| dukeleto | tadzik: was that Austin_Hastings HLL? | ||
| cotto_work | yup | ||
| dukeleto | we should check on Austin Hastings. I haven't seen him around for a long time. | ||
| lucian_ | tadzik: i would certainly want to help testing it for building pynie | ||
| tadzik | I don't remember, I was a toddler back then :) | 22:13 | |
| nwellnhof | lucian_: imo parrot should provide some synchronization primitives and leave the rest to HLLs. | ||
| lucian_ | nwellnhof: that does sound ideal, yes | ||
| tadzik | dukeleto: I hope I can bring it back to "it compiles" stage, but I'm afraid I'll be lacking some compiler kata to make it usable | ||
| benabik | Sounds interesting, but grad school is using most of my tuits. | 22:14 | |
| lucian_ | nwellnhof: although many languages have share-nothing micro-threads, which could be built on top | ||
| nwellnhof | HLLs are probably very different in that regard, so it doesn't make sense to go for a one-size-fits-all solution. | 22:15 | |
| mikehh must sleep, check for anything else later | |||
| lucian_ | nwellnhof: i'm not sure, but of course that's secondary. thread & sync primitives are vital to do much else | 22:16 | |
| nwellnhof | but cloning interpreters is definitely the wrong idea, imo | 22:17 | |
| lucian_ | nwellnhof: probably, yes | 22:18 | |
| dukeleto | tadzik: as always, ask peeps on parrot-dev or in here when you hit a wall, and we will unhit your head on the wall, if we can | 22:20 | |
| tadzik | dukeleto: so what about this web interface? | 22:21 | |
| dukeleto | tadzik: make it happen :) | ||
| tadzik: something that says "give me the URL to your git project" and then run something that checks for deprecations in the code and then gives a summary of what to do | 22:22 | ||
| tadzik: something like an HTML validator for HTML | |||
| tadzik: except it says "you are using dep'ed feature X, here is a link to the wiki page that explains what to do" | |||
| www.parrot.org/files/parrot_cla.pdf is a 404 | 22:23 | ||
| not good. | |||
| cotto_work | dukeleto: there's a different and much wackier link that works. | 22:24 | |
| dalek | p/match-nom: 205e5e1 | jonathan++ | src/Regex/Match.pir: A little more unboxing. :-) |
||
| tadzik | whoa, whoa | ||
| nwellnhof | dukeleto: that deprecation checker sounds a bit ambitious | ||
| tadzik | first, the deprecations need to define something that can be checked against a code: a regex, or something | 22:25 | |
| nwellnhof | i don't think we can offer much more than a regex | ||
|
22:25
donaldh left
|
|||
| dukeleto | something is better than nothing | 22:26 | |
| tadzik | so asuumint we do, we need to fill our api.yaml with regexes, then we can think bout a validator | ||
| ...stupid lag | |||
| cotto_work | dukeleto: links on www.parrot.org/foundation fixed | ||
| not sure what changed | |||
| dukeleto | tadzik: sure, you can start by adding a regex field to api.yaml | ||
| cotto_work: thanks, it might have been from drupal upgrades that OSUOSL did | |||
| cotto_work | likely as anything | 22:27 | |
| nwellnhof | dukeleto, tadzik: the regex would have to be per language. like .pir or .c | ||
| tadzik | yeah | ||
| dukeleto | nwellnhof, tadzik : each regex could say which file extensions it applies to | 22:28 | |
| nwellnhof | but that should work for simple cases | ||
| dukeleto gets his nom on | |||
| tadzik | so like "regex" : { "pir" : "foobar", "c" : "foo_bar(" } | ||
| cotto_work | >nothing | ||
| tadzik | s/json/yaml/ | ||
| plobsing | and then there are less straightforward deprecations for which no regex exists | 22:32 | |
| cotto_work | like write barriers | 22:33 | |
| plobsing | that's a good example | ||
| I wouldn't be surprised if detecting that was equivalent to the halting problem | |||
| cotto_work | You might be able to use something like CIL, but good luck. | ||
| nwellnhof | but a regex works for a typical case like C funtion "foo" or PIR construct "bar" is deprecated | 22:34 | |
| cotto_work | sure | ||
| it's a good starting point | 22:35 | ||
| The impossibility of a perfect solution doesn't excuse us from finding a minimally imperfect one. | 22:36 | ||
|
22:39
lucian_ left
22:40
lucian joined,
kid51 joined
22:43
zby_home left
22:47
donaldh joined
|
|||
| dalek | p/match-nom: 6db30e4 | moritz++ | src/ (2 files): add hacky NQPCapture |
22:47 | |
| Tene | nwellnhof: Your comment doesn't actually address what I was saying there. | 23:05 | |
|
23:07
benabik_ joined
|
|||
| nwellnhof | Tene: yeah, i was mostly braindumping | 23:07 | |
| dalek | p/match-nom: 866ea1f | jonathan++ | src/pmc/rakudoobject.pmc: Make a few more v-tables overridable (e.g. ones that NQPCapture needs to override). Gets us a bit further with Match on 6model. |
23:08 | |
| Tene | nwellnhof: I thought so, just checking that I wasn't misunderstanding. | 23:09 | |
|
23:10
kid51 left
|
|||
| dukeleto | ~~ | 23:12 | |
| cotto_work | dukeleto: I'm thinking about M0's binary format. Would we need any segments other than directory, bytecode, variables table (constants in current pbc) and metadata? | 23:15 | |
| dukeleto | cotto_work: i can't really say right now, but that sounds reasonable | 23:16 | |
|
23:17
benabik left,
benabik_ is now known as benabik
23:28
jsut_ joined
|
|||
| dalek | p/match-nom: a484ca8 | jonathan++ | src/Regex/Match.pir: Fix up some attribute accesses in Match to be done the 6model way. |
23:30 | |
|
23:33
jsut left
23:35
nwellnhof left,
plobsing left
23:46
donaldh left
|
|||
| jnthn | Hmm. Does $P0[2] = $P1 always call the set_pmc_keyed and never set_pmc_keyed_int? | 23:51 | |
| cotto_work | jnthn: set_pmc_keyed_int is only called when it's explicitly dispatched from set_pmc_keyed | 23:52 | |
| jnthn | eww | ||
| cotto_work | yeah | ||
| jnthn | wtf. :/ | ||
| Somehow, if you get that key, then stringify it and try to print that string it gives...a segfault. | 23:53 | ||
| Coke wishes he had someone at ubuntu he could complain to about stuff. ;) | |||
| jnthn | Keys don't tend to leak into PIR-land. Apart from I just managed to do so and...explosion. | ||
| jnthn wonders if Object.pmc has a workaround for this... | 23:54 | ||
| cotto_work: ooc, do you expect the current behavior to change? | 23:55 | ||
| cotto_work | jnthn: possibly with the move to PIRATE, but definitely not before then. | 23:56 | |
| cotto_work decommutes | |||
| jnthn immediately gets suspicious that we may have been storing positional things in captures by stringifying the integer key or some such... | 23:57 | ||
| Since Capture.pmc doesn't do any re-dispatch in set_pmc_keyed | |||