Camelia, the Perl 6 bug

IRC log for #parrot, 2010-05-11

Parrot | source cross referenced

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

All times shown according to UTC.

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

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

Parrot | source cross referenced