|
Parrot 2.3.0 Released | parrot.org/ | Channel log: irclog.perlgeek.de/parrot/today | Priority: apply deprecations, merge branches, testexceptions_refactor branch | GSoC students, please read trac.parrot.org/parrot/wiki/GSoCersStartHere Set by moderator on 6 May 2010. |
|||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#33762), fulltest) at r46481 - Ubuntu 10.04 i386 (g++) | 00:05 | |
| t/pmc/packfile.t - TODO passed: 34 in make coretest, smoke, testb, testf and testr | |||
| t/op/exit.t - TODO passed: 6 in testf | |||
| dalek | rrot: r46482 | NotFound++ | trunk (2 files): workaround and test for TT #1593 |
00:30 | |
| NotFound_b | mikehh: my fault, thanks. | 00:38 | |
|
00:55
abqar joined
01:04
plobsing joined
|
|||
| dalek | rrot: r46483 | NotFound++ | trunk (2 files): avoid pointless repetition of comments and blank lines in generated code for the Object PMC |
01:20 | |
| bacek_at_work | NotFound_b, i've got feelings that you put hard-tabs in r46483. | 01:35 | |
|
02:02
Mokurai1 joined
02:35
janus joined
|
|||
| cotto | bacek_at_work, ping | 02:54 | |
| bacek_at_work | cotto, pong | 02:55 | |
| cotto | bacek_at_work, is a dynamic op the opposite of a core op or do dynamic core ops exist? | ||
| plobsing | arg! my tests for TT #126 fail because prints to stderr on error in stead of throwing | ||
| do we have a ticket for that? | |||
| bacek_at_work | cotto, I'm not aware about "dynamic core ops" | ||
| cotto | ok. I'll dig some. | 02:56 | |
| I notice that the dynops in src/dynoplibs don | |||
| 't use PARROT_IN_EXTENSION | 02:57 | ||
| bacek_at_work | yes, but they are just dynpops shipped with parrot | ||
| dynops | |||
| cotto | Mmmm. dynpop. | ||
| bacek_at_work | :) | 02:59 | |
| plobsing | hmmm... TT #1610 seems to fit the bill. todoing tests. | 03:00 | |
|
03:01
plobsing joined
03:15
szabgab joined
|
|||
| bluescreen | hey guys, I've newbie question | 03:27 | |
| sorear | purl, ask to ask? | 03:28 | |
| purl | Don't ask to ask or ask if there are any users of X around, people often don't respond to that because they've used X but maybe not the same features as you. Instead, skip straight to your question + pastebot link and if somebody knows they'll probably try and help | ||
| sorear | go ahead. | ||
| bluescreen | thanks | ||
| I've a sub defined like | |||
| .sub '!call_method' | |||
| .param pmc reciever | |||
| .param string method_name | |||
| .param pmc arguments :slurpy | |||
| plobsing | arg. teh pasting! it burns! | 03:29 | |
| (please use nopaste) | |||
| bluescreen | and calling it like $P18 = "!call_method"(self, "getstring") | ||
| damn! sorry | |||
| sorear | for only four lines? | ||
| plobsing | pasted code. | ||
| purl | rumour has it pasted code is confusing!!..give me some time to understand it | ||
|
03:29
snarkyboojum joined
|
|||
| sorear | my kick-point is seven... | 03:29 | |
| bluescreen | well, will keep that in mind! | 03:30 | |
| now its done | |||
| sorear | anyway | ||
| you said you have a question | |||
| bluescreen | when i execute that I got an error stating that it specs two or more parameters | ||
| sorear | what is it | ||
| purl | it's it! | ||
| sorear | How many did it say you passed? | ||
| bluescreen | 1 | ||
| i guess its because first parameter is a pmc | 03:31 | ||
|
03:31
szabgab joined
|
|||
| bluescreen | and its being sent as an array | 03:31 | |
| dalek | rrot: r46484 | plobsing++ | trunk (4 files): [IMCC] dissallow non-string entries in '.namespace' statements testing pending TT #1610 |
||
| sorear | no, that makes no sense. | ||
| can you nopaste the *complete* code? | 03:32 | ||
| bluescreen | this is exactly what i've got: " too few positional arguments: 1 passed, 2 (or more) expected " | ||
| sorear | my you-left-out-an-important-bit alarms are going off | ||
| bluescreen | sure | ||
| by the way thanks | |||
| hold on | |||
|
03:33
rurban joined
|
|||
| bluescreen | is it nopaste.pl? | 03:35 | |
| www.nopaste.pl/q5s | |||
| plobsing | nopaste? | 03:36 | |
| purl | nopaste is nopaste.snit.ch (works with the script in $_PARROT/tools/dev/nopaste.pl) or paste.scsys.co.uk or www.extpaste.com or gist.github.com or App::Nopaste or codepeek.com/paste/ or (: pastebot) | ||
| sorear | nopaste: url? | ||
| nopaste, url? | |||
| bluescreen: No wonder it doesn't work, you're missing a .end | 03:37 | ||
| bluescreen | i didn't put the whole thing, I know you told me too, but that would include all the generated pir and that's a lot | 03:38 | |
| dalek | TT #162 closed by plobsing++: Parrot segfaults if specifying a non-sensical namespace | ||
| TT #162: trac.parrot.org/parrot/ticket/162 | |||
| bluescreen | anyway i forgot to mention that if i change the order put the string first and then the pmc parameter it works ok | 03:39 | |
| sorear | really I have no way to help you without a small working example | ||
| do you want me to try to come up with one on my own? | |||
| bluescreen | lol... you probably have better things to do | 03:40 | |
| don't worry i thought this was something obvious i was missing | |||
| I'll try to come up with a non-working example that i can put in nopaste | 03:41 | ||
|
03:42
LoganLK joined
|
|||
| sorear | $P0 = find_method then $P0() is wrong anyway | 03:42 | |
| bluescreen | what's wrong about it? | ||
| sorear | it can be better written receiver.method_name() | 03:44 | |
| pastie.org/954839 ? | 03:46 | ||
| (non crashing complete example) | |||
| bluescreen | what's the best way to debug these kind of things | 03:47 | |
| dalek | rrot: r46485 | plobsing++ | trunk/compilers/imcc (4 files): [IMCC] more dead code |
03:48 | |
| sorear | bluescreen: come up with a minimal example | 03:49 | |
| in the process of minimizing, you'll find the answer yourself 90% of the time | |||
| if not... run traces | |||
| bluescreen | that's true, parrot_debugger :? | ||
| sorear | compile to bytecode then disassemble, for instance, to see what IMCC did | ||
| to my knowledge parrot_debugger is nonfunctional | |||
| bluescreen | cause when building the parser, sometimes i screw up the grammars and end up doing lots of "say" | 03:50 | |
| to understand where ball dropped | 03:51 | ||
| sorear | sounds like you need to get a parrot expert on your team | ||
| what language are you working on? | |||
| bluescreen | i'm trying to create one on my own | 03:52 | |
| this is a one team person trying to hack some parrot | |||
| I bought the premise that almost anybody can do it | |||
| sorear | so, in your code, why was arguments simply being ignored? | 03:54 | |
| plobsing | sorear: IMCC's disassemble is pretty weak ATM. For example it disassembles method calls wrongly. It's on my (rapidly growing) todo list. | ||
| sorear | plobsing: what about pbc_disassemble's? | ||
| bluescreen | coz it isn't any near to usable | ||
| sorear | That doesn't make sense. | 03:55 | |
| purl | I think you mean "I don't understand" | ||
| sorear | What are you trying to say? | ||
| bluescreen | I'm in the process of creating, the way I'm doing it is putting something trying it out, and so on | 03:56 | |
| so far I was calling method with not parameters, and my next step was to start passing some of those | |||
| sorear | This would explain the "not enough parameters" error. | 03:57 | |
| plobsing | sorear: hmmm... you're right! I forgot about that nifty gem. | ||
| sorear | plobsing: How do I access IMCC's disassembler? | ||
| plobsing | ./parrot -o x.pasm x.pbc # ought to do it | ||
| sorear | How does that differ from ./parrot -o x.pbc x.pir #? | 03:58 | |
| Does parrot multi dispatch on file extensions? | |||
| plobsing | sorear: yes. | ||
| bluescreen | anyway, thanks guys I really appreciate your help | ||
| sorear | Honestly? You sound quite frustrated and unhappy. | ||
| bluescreen | honestly... i didn't pay anywhere for 24x7 support | 03:59 | |
| and I got it for free | |||
| who can ask for anything more? | |||
| and its fun too trying to hack something as cool as parrot! | 04:00 | ||
| plobsing | hmmm... IMCC output of pasm appears to only work on pir inputs. added to bug queue | 04:01 | |
|
04:02
LoganLK joined
|
|||
| tcurtis | plobsing: IMCC output of pasm works for pir inputs? Since when? | 04:05 | |
|
04:06
JimmyZ joined
|
|||
| plobsing | fsvo "works" | 04:10 | |
|
04:19
snarkyboojum joined
|
|||
| dalek | rrot: r46486 | plobsing++ | trunk/compilers/imcc/sets.c: [IMCC] eliminate some direct uses of stderr |
04:21 | |
|
04:31
tcurtis joined
|
|||
| sorear | Direct uses of stderr? sounds lovely. | 04:36 | |
| plobsing | sorear: it causes TT #1610. also doing things like writting directly to stderr and calling exit(1) are considered quite rude by embedders. | ||
| dalek | rrot: r46487 | cotto++ | branches/ops_pct (6 files): [opsc] make ops2c act more like ops2c.pl |
04:37 | |
| rrot: r46488 | plobsing++ | trunk/compilers/imcc (7 files): [IMCC] remove IMC_TRACE, a poor man's gdb |
|||
| NotFound | bacek_at_work: I don't see any hard tab :? | 05:07 | |
|
05:13
arnsholt joined
|
|||
| cotto | t/codingstd/tabs.t will find them if they're there | 05:14 | |
| clock? | |||
| purl | cotto: LAX: Mon 10:14pm PDT / CHI: Tue 12:14am CDT / NYC: Tue 1:14am EDT / LON: Tue 6:14am BST / BER: Tue 7:14am CEST / IND: Tue 10:44am IST / TOK: Tue 2:14pm JST / SYD: Tue 3:14pm EST / | ||
|
05:18
iblechbot joined
05:19
TiMBuS joined
|
|||
| dalek | rrot: r46489 | cotto++ | branches/ops_pct/compilers/opsc (2 files): [opsc] make ops2c.nqp work with dynops too |
05:26 | |
| bacek_at_work | cotto, SHIP IT! | 05:52 | |
| cotto | now I get to figure out how to tell make "yes, I do actually want circular dependencies" | ||
| "please don't drop them" | |||
| bacek_at_work | Why do you need circular deps? | 05:57 | |
| cotto | opsc depends on nqp-rx, nqp-rx depends on parrot, parrot depends on ops, ops depend on opsc | 05:58 | |
| Hmmm. | |||
| dalek | rrot: r46490 | cotto++ | branches/ops_pct (4 files): [opsc] switch to ops2c.nqp as the default op builder |
05:59 | |
| cotto | halifax? | ||
| purl | hmmm... halifax is in Nova Scotia, which is in Canada, which is on Earth, which is in Canada. | ||
|
06:00
rurban_ joined
06:01
snarkyboojum joined
|
|||
| bacek_at_work | cotto, split stage0/stage1 ? | 06:01 | |
| cotto | Feel free to take a shot at it. We humans occasionally need to sleep. | 06:05 | |
| night | |||
| sorear | Hmm. | 06:06 | |
| If we kill IMCC, there'll be an interesting bootstrap problem. | |||
| Every time we bump PBC_VERSION, we'll need to *somehow* get PIRC compiled again... | 06:07 | ||
| (PIRC is in NQP-rx right?) | |||
| cotto | pirc is C | 06:08 | |
| We'll eventually want a nqp-based pir compiler but that's a ways off. | 06:09 | ||
| By that time we should be compiling to Lorito behind the scenes. Since part of the goal of Lorito is that we can translate it to C, all we have to do is check in the generated C code. | 06:10 | ||
|
06:14
japhb joined
06:16
uniejo joined,
viklund joined
|
|||
| sorear | What is PIRC's advantage over IMCC, then? | 06:16 | |
| Is there a way to switch branches without looking up the full repository URL? | 06:18 | ||
| JimmyZ | Currently IMCC has very little set of algorithmic optimisations such as "Constant Folding", "Dead Code Elimination", etc. They are very coupled to IMCC and not quite useful. | 06:21 | |
| cotto | JimmyZ, is this patch worth applying or should I just drop it: | 06:23 | |
| nopaste | "cotto" at 192.168.1.3 pasted "allow non-ascii characters in config values" (16 lines) at nopaste.snit.ch/20524 | ||
| JimmyZ | cotto: It's not worth, at least now. maybe in the future. | 06:25 | |
| cotto | Do you have a working build? | ||
| I thought this issue was preventing that? | |||
| s/?/./ | |||
| JimmyZ | cotto: I can't build parrot by adding unicode: to there | ||
| cotto | Can you get closer or is the problem somewhere else? | 06:26 | |
| JimmyZ | cotto: I think the best way for me is removing 'if (!CHARSET_VALIDATE(interp, result))' from string/api.c | 06:28 | |
| without that, parrot works very well | 06:29 | ||
| plobsing | JimmyZ: why can't you build parrot by adding "unicode:"? syntax error? | ||
| cotto | I'd ask the list about that. it doesn't sound like a correct fix | ||
| JimmyZ | plobsing: TT #888 | ||
| cotto: yeah, though it works for me. | 06:30 | ||
| otherwise I can't get parrot built | |||
| cotto: TT #326, I can build parrot before some time, see TT #326 | 06:32 | ||
| cotto really needs to go to bed. I'll see about fixing that later. | |||
| night | |||
| JimmyZ | thanks. good night | 06:33 | |
| dalek | rrot: r46491 | plobsing++ | trunk/compilers/imcc (5 files): [IMCC] consolidate root-level error handling into one place |
06:48 | |
| plobsing | JimmyZ: I applied cotto's patch and followed the steps in TT #888, no build failures | ||
| JimmyZ | plobsing: that's a CJK problem | 06:49 | |
| plobsing: If you temp path cantains CJK, that's the problem | 06:50 | ||
| plobsing | JimmyZ: I used the *exact* path from the TT | 06:51 | |
| I do see some interesting test failures. but it builds and mostly runs fine (just a couple perl tests trying to make temp directories fail hard) | 06:52 | ||
| JimmyZ | plobsing: Do you build parrot without cotto's patch too? | ||
| plobsing | yes | ||
| no | |||
| sry | |||
| misread | |||
| oh wait, yes I did. it failed at miniparrot | |||
| JimmyZ | what's error meassge? | 06:53 | |
| plobsing | Malformed string | ||
| JimmyZ | ah | ||
| plobsing | hmmm... is this a CJK+Windows issue? I'm on linux. | 06:55 | |
|
06:56
JimmyZ_ joined
|
|||
| JimmyZ_ | plobsing: then I think you runs in the problem of TT #326 | 06:56 | |
| plobsing | yeah, IIRC, linux is UTF-8 not UTF-16, so wchar doesn't exist | 06:57 | |
| JimmyZ_ | It's not UTF-16 | 06:58 | |
| plobsing: I am on Windows, but I don't think it's a +Windows issue | 07:00 | ||
| this is a CJK issue | |||
| plobsing | JimmyZ_: all I'm saying is, cotto's patch gets me a little further along in the build. not perfect, but better IMHO. | 07:01 | |
| JimmyZ | plobsing: thanks, I will try it tonight again | ||
| moritz | plobsing: linux is "everything that doesn't contain a null byte" in paths | 07:02 | |
| UTF-8 is just a convention | |||
|
07:02
simcop238 joined
|
|||
| sorear | don't most actual chinese linux installs use other encodings for paths? | 07:04 | |
| as opposed to en_US.UTF8 systems with Chinese paths loaded | |||
| moritz has no experience with Chinese linux systems | 07:05 | ||
| sorear neither | |||
| JimmyZ | sorear: most chinese use chinese for paths. | 07:06 | |
| sorear: they don't care about encodings, it depends on what system they are using. | 07:07 | ||
| sorear | they don't, but we do | 07:08 | |
| since we need to somehow second-guess the encoding | |||
| moritz | so what's /usr/bin in Chinese? | ||
| sorear | unless we want to tell them that their temp path is ƤewĆe | ||
|
07:09
aukjan joined
|
|||
| dalek | kudo: 53fda34 | sorear++ | (3 files): Enable support for --stagestats in Rakudo Makefile system to pass --stagestats to Rakudo when compiling the setting and Test.pm in --makefile-timing builds. Signed-off-by: Moritz Lenz <moritz@faui2k3.org> |
07:10 | |
| JimmyZ | well, on windows, I think encoding is GBK | 07:11 | |
| and linux, most are UTF | |||
| and gb2312 or Big5 | |||
| moritz: chinese path usually is user defiend path, not system path. | 07:12 | ||
| dalek | kudo: efbcce6 | plobsing++ | src/pmc/p6opaque.pmc: De-dup item_str in p6opaque.pmc Closes RT #74996 Signed-off-by: Moritz Lenz <moritz@faui2k3.org> |
07:16 | |
|
07:22
fperrad joined
|
|||
| plobsing | anyone know yacc? does it make sense to bail in yyerror or is that bad? | 07:29 | |
| sorear | the traditional thing to do in yyerror is fprintf & exit | ||
| plobsing | I see. so longjmp ing isn't unreasonable. | 07:30 | |
| sorear | actually I seem to be wrong | 07:31 | |
| no. | |||
| yyerror is supposed to be for error *reporting* | 07:32 | ||
| after yyerror returns, yacc will free its temporary data structures and return 1 from yyparse | |||
| if you don't want to leak memory, don't longjmp out of yyerror | |||
| plobsing | OK. | ||
| sorear | instead, store the error somewhere, return, and throw the exception after yyparse returns | ||
| (it's also possible to do error recovery procedures in yacc, so that the remainder of the input will be checked for additional errors) | 07:33 | ||
| dalek | rrot: r46492 | fperrad++ | trunk/tools/dev/mk_language_shell.pl: [languages] fix generated setup.pir when no SVN revision (ie. Parrot built from tarball) |
07:37 | |
| moritz | seen chromatic | 08:16 | |
| purl | chromatic was last seen on #parrot 4 days, 3 hours, 39 minutes and 56 seconds ago, saying: Looks reasonable. [May 7 04:36:25 2010] | ||
| dalek | kudo: d47ce57 | jimmy++ | src/builtins/Str.pir: use replace instead of substr |
08:20 | |
| kudo: 75b3762 | rurban++ | build/Makefile.in: Install man page |
|||
|
08:21
JimmyZ_ joined
08:58
iblechbot joined
|
|||
| dalek | kudo: 8236cef | snarkyboojum++ | docs/running.pod: Document valid --target= command line options |
09:11 | |
|
09:13
gaz joined
|
|||
| bacek | moritz, aloha. There is a typo in "Week 2" post: make t/spec/S05-grammar/parse_and_parsefile.t should be .rakudo | 09:14 | |
| moritz | bacek: nope, 'make' wants the .t file | 09:15 | |
| bacek | o hai, btw. | ||
| moritz | and generates the .rakudo file | ||
| bacek | moritz, erm... Why? | ||
| moritz | oh hai bacekrobot | ||
| because it means you can type 'make $testfile' without knowing if $testfile contains fudges or not | 09:16 | ||
| bacek | ah. makes sense | 09:17 | |
|
09:44
rurban joined
|
|||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#33769), fulltest) at r46492 - Ubuntu 10.04 i386 (g++) | 09:54 | |
| t/pmc/packfile.t - TODO passed: 34 in make coretest, smoke, testb, testf and testr | |||
| t/op/exit.t - TODO passed: 6 in testf | |||
| bacek | mikehh, aloha. If you are bored can you jump on ops_pct branch? (ignore codetest failures in .pl/.pm files for now :) | 09:58 | |
| dalek | rrot: r46493 | bacek++ | branches/ops_pct/config/gen/makefiles/root.in: Use hardtabs in config/gen/makefiles/root.in - we are generating Makefile for it and do need them |
10:04 | |
| mikehh | bacek: don't know about bored, but will have a look anyway, never got around to fixin' that nqp test stuff :-{ | 10:05 | |
| rrot: r46494 | bacek++ | branches/ops_pct/config/gen/makefiles/root.in: Separate ops_bootstrap target to rebuild ops using opsc. |
|||
| rrot: r46495 | bacek++ | branches/ops_pct (2 files): Commit self-hosted core_ops.c/core_ops.h!!! |
|||
| rrot: r46496 | bacek++ | branches/ops_pct/compilers/opsc/TODO: Update TODO. |
|||
| mikehh | bacek: will give it a go, after some rakudo tests | 10:07 | |
| moritz | rakudo is very much broken on current parrot | 10:08 | |
| because it emits .lex '$' for anonymous variables and parameters | |||
| and parrot doesn't like more than one of those | |||
| mikehh | moritz: had to apply a patch to get it to build with g++ - I nopasted this months ago, but no one has applied it - a simple cast (void *) at line 174 of src/pmc/p6lowlevelsig.pmc | 10:22 | |
| moritz | mikehh: when nobody applies a patch pasted on IRC, please send it to rakudobug@perl.org with [PATCH] in the subject | 10:23 | |
| anyway, testing that now | |||
| bacek | msg cotto Hooray! Ship it! | 10:25 | |
| purl | Message for cotto stored. | ||
| dalek | kudo: 9f1395c | moritz++ | src/pmc/p6lowlevelsig.pmc: fix build with g++, patch courtesy of mikehh |
10:32 | |
| rrot: r46497 | bacek++ | branches/ops_pct (2 files): Update makefile dependencies. Remove duplicates ops_boostrap target in favour of boostrap-ops |
10:37 | ||
| nopaste | "mikehh" at 192.168.1.3 pasted "rakudo make spectest summary" (33 lines) at nopaste.snit.ch/20526 | 11:00 | |
| mikehh | moritz: I was going to run make spectest_smolder but you said it was broken - not too bad - some TODO passes otherwise | 11:01 | |
|
11:09
iblechbot joined
|
|||
| dalek | rrot: r46498 | bacek++ | branches/ops_pct/lib/Parrot/Distribution.pm: Add nqp-rx into exemptions from Parrot::Distribution |
11:10 | |
| rrot: r46499 | bacek++ | branches/ops_pct/lib/Parrot/Test/Pod.pm: Skip nqp or v6 files in Parrot::Test::Pod. |
|||
| rrot: r46500 | bacek++ | branches/ops_pct/compilers/opsc/src/Ops/Compiler/Actions.pm: Add nqp shebang to make codetest happy |
|||
| rrot: r46501 | bacek++ | branches/ops_pct/compilers/opsc/Rules.mak: Add dependance from ops2c.nqp to opsc.pbc to rebuild opsc for boostrap-ops target. |
|||
| rrot: r46502 | bacek++ | branches/ops_pct/ext/nqp-rx/src/gen/settings.pm: Add #! nqp shebang |
|||
|
11:14
gpw joined
|
|||
| bacek | mikehh, I've made codetest happy at r46503 in ops_pct :) | 11:17 | |
| mikehh | bacek: we just have to get perlcritic to avoid those nqp files | 11:21 | |
| bacek | mikehh, I don't have perlcritic installed. But I think Andy can help with it :) | 11:22 | |
| mikehh | we probably need some sort of shebang line test there | 11:24 | |
| maybe have an nqp_critic :-} | |||
| bacek | v6_critic actually :) | 11:25 | |
| dalek | rrot: r46503 | bacek++ | branches/ops_pct/lib/Parrot/Test/Pod.pm: Skip compilers/opsc from pod_syntax check. It's written in nqp. |
11:27 | |
| mikehh | perlcritic fails 9 tests - all nqp files out of 650 tests run - takes ages | ||
| moritz wonders if it's possible to write NQP in a way that makes perlcritic not complain :-) | 11:28 | ||
| bacek | moritz, time to write some v6-specific Perl::Critic policies! | 11:30 | |
| moritz | you need a parser first | 11:31 | |
| bacek | "parser"? We have plenty of them! | 11:32 | |
| E.g. viv :) | |||
| moritz | yes, viv exists | ||
| bacek | So... | 11:34 | |
| Write viv->PPI conversion, implement Perl::Critic policies, ... , Profit! | |||
|
11:34
aukjan joined
|
|||
| moritz | I'm reminded of a region in spain that wanted to do some advertisment to attract more tourists | 11:35 | |
| mikehh | bacek: getting build errors in src/ops/core_ops.c with g++ - let me try gcc | ||
| moritz | its slogan was "Murcia exists!" | ||
| bacek | moritz, "Murcia exists"? | 11:36 | |
| moritz | viv exists! | ||
| bacek | Indeed :) | ||
| moritz | (Murcia is the name of that region) | ||
|
11:44
kurahaupo joined
11:55
jsut_ joined
11:56
whiteknight joined
|
|||
| whiteknight | good morning, #parrot | 12:03 | |
| bacek | whiteknight, aloha | 12:04 | |
| whiteknight | bacek: it's strange that the stringbuilder branch doesn't have higher performance. What's the reason for that? | ||
| are we just not using StringBuilder correctly throughout? | |||
| bacek | whiteknight, I didn't check it... | ||
| mikehh | bacek: apart from perlcritic, fulltest passes - Ubuntu 10.04 i386 (gcc) | 12:05 | |
| bacek | mikehh, excellent. Now you can test c++ build :) (I've made some changes to make c++ happy) | 12:06 | |
| mikehh | bacek: 'k on it | 12:07 | |
| bacek | mikehh, thanks! | ||
|
12:08
bluescreen joined
12:13
jsut joined
|
|||
| dalek | rrot: r46504 | bacek++ | branches/ops_pct/compilers/opsc/src/Ops (2 files): Reorder generated bits to make c++ happy |
12:15 | |
| rrot: r46505 | bacek++ | branches/ops_pct/src/ops/core_ops.c: Regenerate core_ops.[ch] files |
|||
|
12:19
ruoso joined
|
|||
| bacek | msg Coke can you retest codestring performance after my latest commit? | 12:21 | |
| purl | Message for coke stored. | ||
|
12:25
fperrad joined
|
|||
| mikehh | bacek: again apart from perlcritic, fulltest passes at r46505 - Ubuntu 10.04 i386 (g++) | 12:28 | |
| some TODOs pass with i386 - t/pmc/packfile.t - TODO passed: 34 in make coretest, test, testb, testf and testr and t/op/exit.t - TODO passed: 6 in testf - I don't think they pass on amd64 | 12:30 | ||
| let me see what I can work out with perlcritic | 12:31 | ||
| dalek | rrot: r46506 | bacek++ | branches/codestring/src/pmc/codestring.pmc: Optimize CodeString.lineof to not create duplicated string. |
12:32 | |
| bacek | mikehh, thanks! | ||
|
12:32
fperrad_ joined
|
|||
| moritz | build rakudo on latest codestring: real 3m35.475s, user 4m10.134s | 12:39 | |
| will now try trunk | |||
| bacek | it should be other way around... | 12:42 | |
| Coke | (disassemble) - trace is better than converting to pasm. ./parrot -t1 foo.pir | 12:43 | |
| nopaste | "mikehh" at 192.168.1.3 pasted "ops_pct branch - files not removed by make realclean and not under version control" (12 lines) at nopaste.snit.ch/20527 | 12:44 | |
| moritz | trunk: real 2m55.634s, user 3m22.378s | ||
| bacek | moritz, sigh... | 12:45 | |
| Coke | I think trunk got faster when we weren't looking. =-) | 12:47 | |
| moritz: thank you for testing that, as I don't have a good "benchmarking" platform. | |||
| moritz | it did | 12:48 | |
| Coke: I'll now also run the spectests in comparison | |||
| building isn't the only cost of interested | |||
| Coke | oh, hang on. | ||
| purl | hang on. is this actually "session is still there but user has been deleted" ? | ||
| Coke | I wonder if, with bacek's r46505, if we can avoid sorear's nqp-rx branch. | 12:49 | |
| bacek | mikehh, thanks. I'll try to fix it tomorrow (if noone beats me) | ||
| mikehh | maybe plobsing++ work on imcc | ||
| Coke | (which takes a String copy at some point.) | ||
| mikehh | bacek: do those files need to be removed by make clean/realclean? | 12:51 | |
| bacek | mikehh, yes | ||
| mikehh, you can look at src/dynoplibs/Rules.mak for general idea | 12:52 | ||
| mikehh | 'k will have a look as well as perlcritic | ||
| bacek | ok | ||
| mikehh | but have to go and see the dentist :-{ - bbl | ||
| Coke | blah. | 12:53 | |
| dalek | rrot: r46507 | bacek++ | branches/codestring/src/pmc/stringbuilder.pmc: Fix DRY violation in StringBuilder.set_pmc |
13:04 | |
| Coke | bacek: wasn't the RY way we had it faster? | 13:07 | |
| bacek | Nope. | 13:08 | |
| Coke | (direct ATTR access instead of calling another vtable?) | ||
| bacek | You can replace it with STATICSELF and than compiler will optimize it | ||
|
13:13
ruoso joined
|
|||
| dalek | rrot: r46508 | bacek++ | branches/codestring/src/pmc/stringbuilder.pmc: Use STATICSELF when calling other VTABLEs in StringBuilder. It's much faster. |
13:22 | |
| bacek | Coke, can you close TT#1626? | ||
|
13:24
atrodo joined
13:28
aukjan joined
|
|||
| Coke | sure. | 13:32 | |
| dalek | TT #1626 closed by coke++: Re: [parrot-tickets] Newbie reporting doc inconsistency | ||
| TT #1626: trac.parrot.org/parrot/ticket/1626 | |||
| rrot: r46509 | coke++ | trunk (2 files): When generating PMC c files, take advantage of -Iinclude/pmc in build. |
13:40 | ||
|
13:51
plobsing joined,
clinton joined
14:06
bubaflub joined
|
|||
| mikehh | well that was fun - got another appointment though :-{ | 14:19 | |
| let me look at codestring branch | 14:20 | ||
| dalek | rrot: r46510 | coke++ | trunk (2 files): fixup some dependencies -- checkdepend++ |
14:30 | |
| rrot: r46511 | plobsing++ | trunk/src/pmc/object.pmc: add dummy freeze() method to Object.pmc to hide the automatically generated one which is *wrong* |
|||
| rrot: r46512 | mikehh++ | branches/codestring/src/pmc/codestring.pmc: fix codetest failure - trailing whitespace |
|||
|
14:35
JimmyZ joined
|
|||
| JimmyZ | message cotto with your patch I got 'Malformed UTF-8 string', without your patch, I got 'Malformed string' | 14:36 | |
| purl | Message for cotto stored. | ||
|
14:37
snarkyboojum_ joined
|
|||
| cotto | bacek++ | 14:38 | |
| JimmyZ | good morning, cotto | ||
| cotto | hi JimmyZ | ||
| so that patch doesn't help anything. | 14:39 | ||
| JimmyZ | maybe | ||
| cotto | It does allow a non-ascii temp path on my box but I wonder if there's a more general fix that's needed. | 14:40 | |
| JimmyZ | I think the file is saved as ascii. | 14:41 | |
| but I can't changed it to UTF-8, seems IMCC doesn't support it | |||
|
14:42
JimmyZ joined
|
|||
| cotto | JimmyZ, you might ask darbelo. His gsoc project concerns unicode. | 14:42 | |
| JimmyZ | thanks. will do | 14:43 | |
| cotto | I can only point and look confused. | ||
| ;) | 14:44 | ||
| JimmyZ | CJK usually is a issue to non-CJK developer | ||
| err. an | 14:45 | ||
| mikehh | codestring branch - fulltest passes at r46512 - Ubuntu 10.04 i386 (g++) (same TODOs pass as on trunk with i386) | ||
| cotto wonders if he could find and install a Chinese version of windows at work. | 14:46 | ||
| dalek | rrot: r46513 | cotto++ | branches/ops_pct/config/gen/makefiles/root.in: [opsc] remoe bootstrap-ops-test now that ops are opsc-generated by default |
14:47 | |
| Coke | . o O (only one more recursive makefile in regular build...) | 14:48 | |
| plobsing | cotto: I wonder if the environment variable we read from is encoded in non-UTF-8 unicode (and if the configuring perl knows about it) | 14:50 | |
| maybe we can re-encode | |||
| Coke | plobsing: don't nopaste your report in parrotsketch - just post it. | ||
| why do we care what the /encoding/ of a dir in an env var is. can't we just treat it as a binary and let the OS figure it out? | 14:51 | ||
| cotto | +1 to no nopaste (especially since nopastes expire after a couple days) | 14:54 | |
|
14:56
ash_ joined
|
|||
| Coke | I'll just not-no-paste it for ya. =-) | 14:57 | |
| NotFound | In windows you can read env vars as utf16, and then recode to whatever wanted, | 14:58 | |
| But if we do that, we should do the same with directory related functions. | 14:59 | ||
|
15:00
Andy joined
|
|||
| Coke | Andy: trying out freemind for a new project at work. | 15:03 | |
| NotFound | JimmyZ: imcc supports utf8, but you must encode any non ascii codepoint as \\x{hexvalue}, otherwise the result may be unexpected. | ||
| Andy | Cool. | ||
| And it's XML so easily Subversionable | |||
| dalek | rrot: r46514 | cotto++ | branches/ops_pct (98 files): sync branch with trunk, regenerate ops |
15:04 | |
|
15:06
khairul joined
15:13
Mokurai1 joined
|
|||
| Coke | someone who is bored might want to troll through #perl6 logs for "parrot is broken", throw all those into a wiki, and insure that we eventually address them all. (with tickets if necessary). | 15:13 | |
| *bored, excited, whichever. | 15:19 | ||
| mikehh | ops_pct branch - t/postconfigure/05-trace.t - Failed test: 7 in post-config/make test | 15:20 | |
| dalek | rrot: r46515 | mikehh++ | branches/ops_pct/MANIFEST: re-generate MANIFEST |
||
| rrot: r46516 | jimmy++ | trunk/src/string/charset (3 files): calculate string length before loop, it avoids calculating string length very loop. |
|||
| JimmyZ | err. every loop | 15:21 | |
| cotto_work | mikehh, thank | 15:30 | |
| several thanks, even | |||
| Odd. t/distro/file_metadata.t was failing on a bunch of files in ops_pct at home but here it's happy. | 15:33 | ||
| svn-- | |||
| mikehh | cotto_work: opsc-clean from compilers/opsc/Rules.mak needs to be invoked in the make clean/realclean target | 15:34 | |
| cotto_work | Agreed. Can you add it? | 15:35 | |
| mikehh | also ext/nqp-rx/src/gen/settings.pir needs to be cleaned | ||
| cotto_work: not sure but having a look | 15:37 | ||
|
15:41
JimmyZ joined
|
|||
| mikehh | ok that works, but where do I put ext/nqp-rx/src/gen/settings.pir for cleaning | 15:43 | |
| Coke | don't have a separate -clean target. have a list of files to remove. | 15:51 | |
| please. | |||
| dalek | rrot: r46517 | coke++ | trunk (3 files): checkdepend++ src/dynoplibs, fix the deps, don't generate extra includes |
15:53 | |
|
15:53
snarkyboojum_ joined
|
|||
| cotto_work | Coke: you should make an analogous commit to r46517 in ops_pct. Just look for callcontext in compilers/opsc/src/Ops/Trans/C.pm | 15:54 | |
| Coke | cotto_work: I will attempt to remember to do that. | 15:56 | |
| dalek | kudo: ed24098 | moritz++ | t/spectest.data: enable test file for Grammar.parse, bubaflub++ |
15:58 | |
| Coke wonders where r46518 email went. | 16:02 | ||
| cotto_work | NOM. | 16:03 | |
| Coke | dalek? | 16:07 | |
| purl | dalek is probably #parrot's spammy little rss bot or (see: dalek plugins) | ||
| mikehh | he sometimes takes a while | 16:09 | |
| dalek | rrot: r46518 | coke++ | trunk (2 files): checkdepend++ src/ops && fix the deps |
16:10 | |
| rrot: r46519 | mikehh++ | branches/ops_pct/config/gen/makefiles/root.in: fix up clean target |
|||
| mikehh | there you go only 13 minutes | 16:11 | |
| not sure if the clean of ext/nqp-rx/src/gen/settings.pir is in exactly the right place | 16:13 | ||
| Coke | mikehh: close enough. | 16:14 | |
|
16:16
theory joined
|
|||
| mikehh | need to set the svn:ignore properties if I can remember how I did it last time - I know there are some problems with it as in multi-lines | 16:17 | |
| probably need to regen MANIFEST.SKIP after | |||
| Coke | and .gitignore | 16:19 | |
| purl | .gitignore is getting in the way | ||
| Coke | no, .gitignore is regenerated with a script from tools/dev | ||
| purl | okay, Coke. | ||
| Coke | I am thinking we should just fold the .gitignore gen into mk_mani* since it's already using MANIFEST.SKIP as its source. | 16:20 | |
| ... though it's probably not worth if with an impending git switch. | |||
| moritz | was that a (reluctant) thumbs-up from allison on parrot-dev? | 16:21 | |
| mikehh | how imminent are we talking about? | 16:22 | |
| serious planning was specified for any switch | |||
| cotto_work | We'll talk about how imminent this #ps. | 16:23 | |
| Coke | planning required. | ||
| mikehh | about 4 hours right? | 16:24 | |
| Coke | we need a "commiter's guide" and a plan for what to do on the server side, at a minimum. | ||
| parrotsketch? | |||
| purl | parrotsketch is a status meeting for parrot core committers held every Tuesday at 20:30 UTC in #parrotsketch | ||
| Coke | clock? | ||
| purl | Coke: LAX: Tue 9:24am PDT / CHI: Tue 11:24am CDT / NYC: Tue 12:24pm EDT / LON: Tue 5:24pm BST / BER: Tue 6:24pm CEST / IND: Tue 9:54pm IST / TOK: Wed 1:24am JST / SYD: Wed 2:24am EST / | ||
| darbelo | ISTR chromatic mentioned something about 'Not before Rakudo Star' | ||
| moritz | which sounds kinda sensible | 16:25 | |
| Coke | absolutely. can't hurt to have the plan before then. | ||
| cotto_work | bacek, ops2c.nqp et al need to be installed. | ||
| Coke | "oh, it hoits! it HOITS!" | ||
| mikehh | ha svn help ps says svn:ignore - A newline separated list of file glob patterns to ignore. | 16:26 | |
| why on earth does it have to be newline separated? | 16:27 | ||
|
16:28
bakkdoor joined
|
|||
| mikehh | I remember having a lot of problems with that | 16:28 | |
| darbelo | Newlines are a reneweable resource. | ||
| Like solar power or kittens. | 16:29 | ||
| Coke | mikehh: why not just use 'svn pe svn:ignore' ? | 16:30 | |
| mikehh | hi darbelo, hows the NFG stuff goin' - how about TimToady's ideas there | 16:31 | |
| Coke | throws it into your editor. boom, no shell trouble. | ||
| darbelo | mikehh: It... goes. I'm reading the source to our strings and sleep with pdd28 under my pillow. | 16:32 | |
| Not ready to start coding yet. I have a mostly-done blog post about it coming today. | 16:33 | ||
| mikehh | Coke: I have done it that way before IIRC now, but that was quite a while ago - last time I tried I had serious shell trouble | 16:34 | |
| darbelo: look forward to seeing it | |||
|
16:58
davidfetter joined
17:03
PacoLinux joined
17:12
ash__ joined
|
|||
| cotto_work | dynop HLLs? | 17:13 | |
| sorear | dynop HLLs? | 17:14 | |
| cotto_work | dynop HLLs is Rakudo | 17:16 | |
| dynop HLLs? | |||
| purl | dynop HLLs is Rakudo | ||
| cotto_work | HLLs that use dynamic ops | ||
| darbelo | Lua doesn't? Or am I thinking of dynpmcs? | ||
| cotto_work | i.e. ones that will need to be updated to use opsc between the ops_pct merge and the next deprecation point. | ||
|
17:16
joeri joined
|
|||
| cotto_work | Nope. Lua has dynpmcs but no dynops. | 17:19 | |
| Rakudo's the only HLL I've found. | 17:20 | ||
| darbelo | partcl, but I think that's already broken by now. | ||
| partcl-nqp is the future. | 17:21 | ||
| cotto_work | That's the assumption I'm going on. | ||
| If it builds I don't mind testing it though. | 17:22 | ||
| darbelo | Last I checked it built, but had some big test failures. But that was a long time ago. | 17:23 | |
| cotto_work | Coke, should partcl be moved to the inactive section of the Languages wiki page? My impression was that no further development will happen there. | ||
|
17:28
lucian joined
|
|||
| dukeleto | 'ello | 17:30 | |
| cotto_work | #ps in 2:59 | 17:31 | |
| ' | |||
|
17:38
baest joined
17:40
rurban_ joined
17:42
Tene joined
17:44
patspam joined
18:06
cognominal joined
|
|||
| darbelo goes afk. | 18:16 | ||
| dalek | website: darbelo++ | Encodings, charsets and how NFG fits in there. | ||
| website: www.parrot.org/content/encodings-ch...fits-there | |||
| rrot: r46520 | mikehh++ | branches/ops_pct (5 files): set some svn:ignore properties |
18:20 | ||
| rrot: r46521 | mikehh++ | branches/ops_pct/MANIFEST.SKIP: re-generate MANIFEST.SKIP |
|||
| rrot: r46522 | mikehh++ | branches/ops_pct/.gitignore: re-generate .gitignore |
|||
| moritz | darbelo++ good blog post | 18:24 | |
|
18:26
iblechbot joined
|
|||
| cotto_work | khairul: do you want to chat now? | 18:26 | |
|
18:26
kjeldahl joined
|
|||
| cotto_work | clock? | 18:26 | |
| purl | cotto_work: LAX: Tue 11:26am PDT / CHI: Tue 1:26pm CDT / NYC: Tue 2:26pm EDT / LON: Tue 7:26pm BST / BER: Tue 8:26pm CEST / IND: Tue 11:56pm IST / TOK: Wed 3:26am JST / SYD: Wed 4:26am EST / | ||
|
18:27
fperrad joined
|
|||
| cotto_work | probably asleep | 18:27 | |
| Coke | cotto_work: no, partcl will get bugfixed. just no new features. | 18:30 | |
|
18:32
ruoso joined
|
|||
| Coke | what's wrong with this: | 18:34 | |
| value = Parrot_str_concat(interp, value, Parrot_str_new(interp, c, length), 0); | |||
| ... crap. nevermind. | 18:35 | ||
| khairul | cotto_work: ping, i'll send a priv msg. | 18:39 | |
| darbelo | moritz: Thanks, about 70% of it was written under the influence of Boling Brain Syndrome, so the sanity check is appreciated. | 18:42 | |
| Eh, Boiling. | |||
| mikehh | darbelo: good post | 18:44 | |
| moritz | darbelo: I knew the difference between encoding and charset before, and what you wrote sounds sane | 18:45 | |
| darbelo | Glad I didn't get it wrong ;) I was aiming to explain it to people for whom character set == character encoding. | 18:48 | |
| moritz | sadly some very popural places get that wrong | 18:49 | |
| for example in HTTP headers | |||
| you write Content-Type: text/html; charset=utf-8 | 18:50 | ||
| where it should really be encoding= | |||
| but they didn't want to confuse it with transfer encoding | |||
| darbelo | But they also do charset=iso-8859-1 which is arguably correct :) | 18:51 | |
| Coke | whee. ok. now partcl builds, but segfaults. | ||
| nopaste | "coke" at 192.168.1.3 pasted "imageio segf?" (12 lines) at nopaste.snit.ch/20529 | 18:52 | |
| moritz | darbelo: yes, but only by chance | 18:53 | |
| Coke | pushed compiling but segfaulting partcl (pre-npq-rx) | 18:55 | |
| dalek | rtcl: 1ccfa9c | Coke++ | (20 files): Compile against parrot trunk. |
18:58 | |
| mikehh | essentially the character set is the set of characters available and the encoding is how the character set is stored in memory or on various media | 18:59 | |
|
19:00
Psyche^ joined
19:09
plobsing_work joined
|
|||
| cotto_work | it's kinda funny. if you look at a graph of when commits happen to to Parrot, the largest number happen right around #ps. | 19:11 | |
|
19:11
smash joined
|
|||
| smash | hello everyone | 19:11 | |
| mikehh | ops_pct branch: apart from the nine nqp files in compilers/opsc/src fasiling perlcritic, pre/post config, make corevm/make coretest. test, fulltest PASS, some TODOs pass bit same as trunk on i386 - Ubuntu 10.04 i386 (g++) | 19:12 | |
| cotto_work | good news there | 19:13 | |
| mikehh | I thought of using the shebang line as a filter, but at the moment two of the older files do not have one, looking at trunk there is no consistancy in shebang lines | 19:14 | |
| cotto_work | That doesn't mean it needs to stay that way. | 19:16 | |
|
19:17
fperrad joined
19:29
fperrad joined
19:30
Casan joined
|
|||
| mikehh need to take, get something to eat etc, be back for #ps | 19:30 | ||
| mikehh missed a break there | 19:31 | ||
| darbelo | cotto_work: maybe #ps is a psychological 'deadline': it makes you rush off and finish stuff so you can report it as done. | 19:38 | |
| cotto_work | That's likely what's happening. | ||
| I'm more motivated to get stuff done so I have something to post in #ps. | 19:39 | ||
| GeJ | Good morning everyone | 19:53 | |
|
20:00
chromatic joined
|
|||
| cotto_work | #ps in 25 | 20:05 | |
|
20:06
ash_ joined
20:08
tcurtis joined
|
|||
| bubaflub | if i wanted to get bindings to the GMP library in parrot, do i use NCI? | 20:09 | |
| s/do/would/ | 20:10 | ||
| moritz | you could also write a dynpmc in C that wraps GMP | 20:11 | |
| plobsing_work | bubaflub: in order of increasing complexity, you could: a) export NCI functions raw b) make fake objects out of ManagedStructs c) create C-based PMCs | 20:13 | |
| bubaflub | i would only need a subset of the functions available in the library to start | ||
| but would want it to be extensible if i ever need some of the other stuff | 20:14 | ||
| plobsing_work: what are the benefits to option c) ? | 20:15 | ||
| plobsing_work | it's how most people do it these days. I would really like to see us shift towards option b. | ||
| most apis are vaguely OO-ish | |||
| tools that scanned C for struct and function prototypes would probably go a long way towards making that easier. Does SWIG do that well? | 20:17 | ||
| cotto_work | +1 to b | 20:18 | |
| Less C code is generally a good thing. | |||
| darbelo | bubaflub: I'd go for NCI, GMP doesn't look very amenable to PMC-ification. | 20:19 | |
| Even if out BigInt and BigNum PMCs are based on GMP. | |||
| s/out/our/ | 20:20 | ||
| Tene | plobsing_work: That was tewk's plan with ncigen, but it never got far enough. | ||
|
20:21
allison joined
|
|||
| plobsing_work | I'd really like to see such a tool, because it would allow us to expose more of parrot core without a ton of C-based PMCs (at least in theory) | 20:23 | |
| cotto_work | It turns out that parsing C is hard. | 20:25 | |
| smash | C does it :) | ||
| cotto_work | You'd think so. | ||
| chromatic | C appears to do it. | 20:26 | |
| cotto_work | Only C can parse C. | ||
|
20:28
gpw joined
|
|||
| Util | Inline::Struct has a Parse::RecDescent grammar to parse C structs. | 20:34 | |
| also, (from StackOverflow), "One trick is to let GCC do the parsing for you and read in GCC's parse tree using a CPAN module named GCC::TranslationUnit" | 20:36 | ||
| Convert::Binary::C is a preprocessor and parser for C type definitions. | 20:39 | ||
| C::DynaLib is a Perl 5 module for calling C functions. | 20:40 | ||
| END_BRAINDUMP | |||
| tcurtis | What's the difference between dynpmcs and other pmcs? | 20:43 | |
| chromatic | dynpmcs go into their own .so files. | ||
| NotFound | tcurtis: "dyn" | ||
| tcurtis | Thanks. | 20:45 | |
| Coke | NotFound: *thwap* | 20:50 | |
| dalek | tracwiki: v37 | cotto++ | BranchDescriptions | 20:52 | |
| tracwiki: trac.parrot.org/parrot/wiki/BranchD...ction=diff | |||
| chromatic | Anyone going to YAPC::NA and looking for a dorm roommate, by the way? | 21:01 | |
|
21:05
fperrad joined
|
|||
| Coke | chromatic: I think I've got a roomie. | 21:09 | |
| rebooting... | 21:10 | ||
| purl | rebooting is always the first solution | ||
| Tene | Oh, I could reasonably go to that this year. I need to think about that. | 21:12 | |
| chromatic: Very possibly. | |||
| bacek | Good morning, humans | 21:34 | |
| cotto_work | 1001010101101010101, bacek | 21:35 | |
| bacek | aloha cotto_work | ||
| mikehh | hi bacek | 21:36 | |
| cotto_work | bacek, do you know how to make opsc installable? | 21:37 | |
| bacek | cotto_work, no idea... Maybe Coke can help | ||
| cotto_work | ok. I'll dig around when I have some tuits. | ||
| Fortunately there are only a couple files that'll need to be installed. | 21:38 | ||
| maybe just one if ops2c.nqp turns into a fakecutable | |||
| darbelo | Hmm. Has anyone considered using 'setup.pir' files for the 'core extensions' in parrot? | 21:39 | |
| cotto_work | core extensions? | ||
| you mean src/dynoplibs and src/dynpmc ? | |||
| darbelo | Mostly, yeah. | ||
| cotto_work | There's some charm in that idea but it'd also mean having them be a special case in the build system. | 21:40 | |
| darbelo | The JSON compiler too. | ||
| dynpmcs kind of already are ;) | 21:41 | ||
|
21:41
Whiteknight joined
|
|||
| darbelo | Unless someone wants to make the deps more granular and autogenerate the makefile. | 21:42 | |
| I think it's less effort to the setup.pir approach. | |||
| Coke | darbelo: I am really not interested in switching those at this time. | ||
| I'd like to get something like 'make depend' in place. | 21:43 | ||
| the deps /are/ fine grained, at least compared to the previous recursive make situation. | |||
| and... another reboot. aigh. | 21:44 | ||
| darbelo | Coke: I defer to you, oh grand master of dep-tracking. | 21:45 | |
|
21:45
brooksbp joined
|
|||
| darbelo | allison: ping | 22:01 | |
| allison | darbelo: pong | ||
| Coke | msg dukeleto - i volunteered you for the first bullet at trac.parrot.org/parrot/wiki/GitMigration | 22:02 | |
| purl | Message for dukeleto stored. | ||
| darbelo | For NFG, have you given any thiught as to what would be a good data structure to use as our grapheme table? | ||
| allison | darbelo: the keys are codepoints | 22:04 | |
| darbelo: so it could be hash-like, but that's generally quite expensive | |||
| darbelo: something array-like would be good | 22:05 | ||
| darbelo | The expense of hashes was my biggest concern, yes. | ||
| allison | darbelo: it doesn't have to be a resizable structure, since we can scan the string first, find all the combinations we'll need to change to NFG and allocate the right size | 22:06 | |
| darbelo | But something array-like is likely to become expensive for the reverse lookup. ("Have I seen this composition before?") | ||
| allison | hashes would need double entries to handle that | 22:07 | |
| or, two separate hashes | 22:08 | ||
| darbelo | Maybe a hash and an array? | ||
| allison | that could be workable | ||
| hanging two separate hashes off our strings will quickly lose the speed advantages | |||
| Coke | I have a concern about how NFG storage will interact with freeze/thaw of bytecode. | ||
| mikehh | what about a hash-type function into an array optimized for most commonly used codepoints | ||
| Coke | you basically have to recalc every time you dynload something with strings, yes? | 22:09 | |
| allison | Coke: the strings would either have to be flattened out before freezing, or frozen with the NFG table intact | ||
| Coke | but if you freeze the NFG table, you then have to merge it with your live in memory one on load, eys? | ||
| mikehh | maybe using something like gperf to set it up | 22:10 | |
| allison | Coke: oh, no, each string has it's own NFG table | ||
| it's a local customization | |||
| not global | |||
| darbelo | Coke: Initially at least, I'll be giving each string a ... what allison said ;) | ||
| Coke | oh, per string. was thinking per interpreter. | ||
| nevermind, carry on. | |||
| darbelo | We will have to merge grapheme tables on concatenation, though. | 22:11 | |
| allison | Coke: yeah, that was important, for exactly the kinds of reasons you just raised | ||
| darbelo: yes | |||
| but, the tables will generally be quite small | |||
| darbelo | Yeah, I expect so. | 22:12 | |
| Coke | must away. laters.\\ | ||
| mikehh | unless you have very long strings in CJK or something | ||
| darbelo | mikehh: We only allocate codepoints for stuff not on the unicode plane. CJK is covered there. | 22:13 | |
| darbelo feels he has a subject for his next blog post. | |||
| mikehh | just composition for negative codepoints? | ||
| allison | mikehh: mainly for combining characters | 22:14 | |
| mikehh | yes | 22:15 | |
| darbelo | The thing is that we operate on 'graphemes' a single written symbol. If there is a Unicode char for that we use it. If not we allocate one at runtime. | ||
| mikehh | or I see said the blind man to his deaf and dumb daughter :-} - actually I do | ||
| allison | darbelo: we can play around with faster access data structures | 22:16 | |
| darbelo | mikehh: 'LATIN CAPITAL LETTER N WITH TILDE' is a composed character ('LATIN CAPITAL LETTER N' + 'COMBINING TILDE') that unicode already handles perfectly well. | 22:17 | |
| mikehh | the one I liked was the I with the double dot in cyrillic | 22:18 | |
| darbelo | So, we don't need a new codepoint. If I wanted to put a german umlaut on top of the letter 'n' then I'd be in trouble. | ||
| bacek | mikehh, Ń! | ||
| darbelo | for 'LATIN CAPITAL LETTER N' + 'COMBINING DIAERESIS' I'd need to allocate a new (dynamic) codepoint. | 22:20 | |
| And yes, I submitted this proposal just so I could insert 'Spinal Tap' references into the parrot codebase :) | 22:21 | ||
| allison | :) | 22:23 | |
| darbelo | Back to the hacking part: How about starting with an array and then adding a hash if reverse lookups are too expensive? | 22:25 | |
| I think that should head off any premature optimization I could regret later. | 22:27 | ||
| bacek | darbelo, I doubt that you'll need hash. It's very unlikely to have more than NFG-specific graphemes. | 22:28 | |
| darbelo | bacek: In theory, combining character sequences can be arbitrarily long. I'm looking for a (prematurely optimum?) way to say "Oh, I know you! You are codepoint -5. There you go." | 22:30 | |
|
22:32
Hunger joined
|
|||
| darbelo | But it's probably just a premature complication at this point ;) | 22:34 | |
| allison: My other concern is where to store the grapheme table. Adding is to the string structure is way too expensive, but the other places I've come up with are kind of hackish. | 22:36 | ||
| allison | it's one added pointer to the string structure, not too expensive | ||
| and, could be used for other things | |||
| bacek | Coke, cat you test trunk vs codestring@r46523 on rakudo build time? I've got very promising results on my box, but want some "independent" confirmation. | 22:37 | |
| allison | that is, it could be generic, like "data" in the pmc structure | ||
| so it's not just for nfg strings | |||
| darbelo | allison: We create an awful lot of string headers. | ||
| allison | yes, we doo | 22:38 | |
| do | |||
| darbelo | An extra pointer could be enough to push the rakudo build over the .5G limit again. | ||
| Specially in 64 bits. String headers are twice as bit there. | 22:39 | ||
| Eh, twice as big. | |||
| NotFound | Don't forget that we still don't save encoding in the .pbc, that's one more opcode for frozen string. | ||
| allison | another alternative is to make NFG strings a pmc | 22:40 | |
| that would make it easier to incorporate the hash and array behaviour into the string | 22:41 | ||
| the key is to gain speed on NFG strings | 22:42 | ||
| darbelo | Hmm. It sounds convenient, but I am kind of attached to the Idea of making it available on regular strings... | 22:43 | |
| I do like the 'data' pointer idea. Sounds like that could be turned into a profit, rather than a cost. | |||
| theory sees "NFG" and starts creating names to fit. | 22:44 | ||
| allison | darbelo: I'm in favor of trying the added pointer on the string struct and considering the PMC option if that proves to be a performance burden in general | 22:46 | |
| darbelo | Added pointer it is. Worst case: chromatic has to optimize in the future :) | 22:48 | |
| allison | best case, nfg makes back the performance loss, or even improves on it | 22:49 | |
| darbelo hopes. | |||
| allison | variable-width encodings are high cost for PGE/NQP-rx | 22:50 | |
| darbelo | Or any other kind of regex matching really. | 22:51 | |
| cotto_work | bacek: should the rakudo build be timed with an optimized or unoptimized parrot? | 22:55 | |
| bacek | cotto_work, I'm usually check optimized builds. | 22:56 | |
| darbelo | If it's the same on both sides, does it matter? | ||
| bacek | darbelo, it does. We can have more PARROT_ASSERT on one of the sides due different codepath | 22:57 | |
|
22:57
Psyche^ joined
|
|||
| cotto_work | optimized makes more sense because that's what expect Rakudo to be using | 22:58 | |
| darbelo | I keep forgetting about the assertions. | ||
| Coke | bacek: you just won't let this branch die! (awesome. will test later this evening) | 23:02 | |
| bacek | Coke, nope. I just want to make Rakudo faster :) | 23:03 | |
| Coke | So say we all. | ||
| ... did feather's DNS entry vanish? | 23:09 | ||
| cotto_work | I see no significant difference between codestring and trunk for Rakudo build times. I need to verify that I'm actually using different parrots. | 23:13 | |
| is there an easy way to do that? | |||
|
23:15
ruoso joined
23:21
cognominal joined
23:22
kurahaupo joined
|
|||
| cotto_work | Gah. I was using the --gen-parrot parrot, not the installed one | 23:24 | |
| mikehh | bacek: how do you test the codestring branch using which rakudo? | 23:28 | |
| cotto_work | build and install the codestring branch, build rakudo using the installed parrot | 23:36 | |
| It looks like codestring is meaningfully faster | |||
| ~4:00 for trunk, ~3:26 for codestring | 23:37 | ||
| non-parallel build | |||
| which would be serial, I guess | |||
| for a parallel build: ~3:29 with trunk, ~2:55 with codestring | 23:49 | ||
| I'd call that a worthwhile improvement. | |||
| darbelo | SHIP IT! | 23:50 | |
| cotto_work | bacek++ | 23:51 | |
| coke++ | |||
| bacek_at_work | ~~ | 23:53 | |
| Hooray! :) | |||
| cotto_work | ~~~ | ||
| I'm confident that there's an improvement but feel free to verify. | 23:54 | ||
| bacek_at_work | I've got similar numbers on my box. That's why I asked to verify them :) | 23:56 | |
| cotto_work | awesomesause | 23:57 | |