|
Parrot 2.5.0 Released! | parrot.org | Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | GSOC Students: trac.parrot.org/parrot/wiki/GSoCersStartHere | Priorities: merge gc_massacre, remove deprecated items, add deprecation notices for 2.6, close tickets. Set by moderator on 22 June 2010. |
|||
| bacek_at_work | (nqp mmd) It's not a bug. | 00:00 | |
| Inside nqp all variables are "scalar" (or "objects"). | 00:02 | ||
| kthakore | so any chance of close TT#812? | 00:03 | |
| how do I see my waiting message? | |||
| whiteknight | bacek_at_work: what do you mean? How can it not be a bug? | ||
| kthakore | purl: message | ||
| purl | Perhaps you mean "messages", or "message nickname blah blah", or "messages help", or.. eh, just forget it. | ||
| kthakore | purl: messages help | 00:04 | |
| purl | To leave a message, say in channel or privmsg purl "msg <nickname> MESSAGE FOR J00". To read your messages, privmsg purl "messages". To erase your messages, privmsg purl "messages erase". or Delivery Not Guaranteed! | ||
| whiteknight | msg <nickname> MESSAGE FR J00 | ||
| purl | Sorry, I've never seen <nickname> before. | ||
| kthakore | Coke: ping I got your messages | 00:05 | |
| bacek_at_work | whiteknight, $foo variables are "untyped" | ||
| kthakore | AHHH | ||
| fine | |||
| trac? | |||
| purl | trac is a web-based software project management and bug/issue tracking system emphasizing ease of use and low ceremony. It provides an interface to the Subversion revision control systems, integrated Wiki and convenient report facilities. projects.edgewall.com/trac/ or Python, SQLite and ClearSilver or killing killtrac or a bug-tracking tool or at trac.parrot.org/parrot/ or slow or REALLY slow | ||
| kthakore | whiteknight: so any chance of gett my patch on TT#812 accepted? | 00:07 | |
| bacek_at_work | kthakore, I can apply it tonight (if no one beets me) | 00:09 | |
| whiteknight | let bacek_at_work do it, I don't know enough about that code | ||
| bacek_at_work | whiteknight, it's pretty simple patch to remove redundant method. | ||
| kthakore | yay! patch #2 | 00:10 | |
|
00:14
tcurtis joined
|
|||
| tcurtis | moritz: I'm not getting your error on 47813, and my internet is to spotty to checkout r47802. Can you try 47813 and let me know if it it fixes the problem? | 00:18 | |
| cotto_work | yet another point in favor of git | 00:19 | |
| not that it needs them ;) | 00:20 | ||
| tcurtis | svn-- | 00:21 | |
| tcurtis finally was able to create the ticket. | 00:23 | ||
| dalek | TT #1690 created by tcurtis++: Overriding one signature of a multi-method in a subclass prevents access ... | 00:24 | |
| TT #1690: trac.parrot.org/parrot/ticket/1690 | |||
| mikehh | cotto_work: BTW the test pass on pir/PIRATE (no backtrace) on parrot r47813 - Ubuntu 10.04 amd64 (g++ with --optimize) | 00:27 | |
| cotto_work | That reinforces the likely x86-specificity of the bug. | 00:28 | |
| sorear | karma svn | 00:29 | |
| purl | svn has karma of -59 | ||
| cotto_work | not enough digits | ||
| davidfetter | karma davidfetter | 00:31 | |
| purl | davidfetter has karma of 8 | ||
| davidfetter | hrm | ||
| davidfetter wonders how he got that | |||
| cotto_work | You probably did a thing at some point in the past. | ||
| sorear | are you a committer? | 00:34 | |
| davidfetter pretty sure that's vacuously true | |||
| sorear | karma c | ||
| purl | c has karma of 8670 | ||
| sorear | karma g | ||
| purl | g has karma of 1267 | ||
| davidfetter | well, i'm a committer on the pl/parrot project | ||
| sorear | does dalek track it? | ||
| davidfetter | could well | ||
| darbelo | sorear: Yes. | ||
| sorear | that's why. | ||
| davidfetter | so when's the switch to git happening for parrot? | ||
| darbelo | davidfetter: Later :) | 00:35 | |
| sorear | last I heard, right after the great GSoC merge | ||
| davidfetter | all the cool projects are moving to git if they haven't already | ||
| tcurtis | davidfetter: probably at some point after we get a git/trac test site set up. | ||
| darbelo | "As soon as we can reasonably convince ourselves it won't go horribly wrong." :) | 00:36 | |
| cotto_work | There's a limited site up now. | 00:37 | |
| tcurtis | cotto_work: link? | ||
| purl | I think Link is a pretty cool guy. eh kills Ganon and doesnt afraid of anything | ||
| cotto_work | It's just for source code. | ||
| lemme dig | |||
| davidfetter gets his parrots from dukeleto's github repo | |||
| (and fedora yum) | |||
| cotto_work | trac.parrot.org/parrottest | 00:38 | |
|
00:41
Coke joined
|
|||
| cotto_work | That should be from dukeleto's git clone of parrot on github | 00:42 | |
| davidfetter | [ot] my graph theory's a little weak. given that nodes - edges == 1 => directed graph is a tree, is there a similarly easy formula to show that a directed graph is a forest? | 00:43 | |
| sorear | not just from the totals | 00:45 | |
| davidfetter | how about if you know how many "root" nodes there are, i.e. nodes with indegree 0? | 00:46 | |
| ash_ | is the tree directory or undirected? | 00:50 | |
| davidfetter | directed | 00:51 | |
| it's times like this when i wish i'd majored in, or at least taken a course in, CS :P | 00:52 | ||
|
00:53
abqar joined
00:54
abqar_ joined
00:56
plobsing joined
|
|||
| ash_ | hehe, i have some books on this if you really want me to check | 01:00 | |
| davidfetter | if it's an easy thing to check, that'd be awesome | 01:01 | |
| ash_ | why do you need to see if its a forest? just curious (checking my algorithms book for a definition of forest) | 01:03 | |
| mikehh | rakudo (7e3ddca) builds on parrot r47813 - make test PASS, spectest_smolder -> #34569 (pugs r31442) FAIL - Ubuntu 10.04 amd64 (g++ with --optimize) | ||
| t/spec/integration/advent2009-day20.rakudo - Failed test: 18 | |||
| 19 TODO PASSes in 6 files | |||
| The test PASSes when I ran it separately | |||
| davidfetter | well, i don't want just a DAG | 01:04 | |
| imagine you're storing posts from a mailing list thread | |||
| well, from a mailing list | |||
| which generally takes the form of threads, each of which is a tree | 01:05 | ||
| so the whole batch of relationships is a forest | |||
| but i'd like to make sure that that's actually so :) | |||
| NotFound | davidfetter: the definition already ensures it. | 01:06 | |
| davidfetter | um, the db doesn't, and that's where i'm storing the relationships | 01:07 | |
| imagine you have a table called nodes. it's easy to check by foreign key that edges has only nodes in it | |||
| and slightly trickier, but still pretty easy, to ensure that edges has only direction for any given pair of nodes | 01:08 | ||
| but i want to make sure that nothing can get inserted, updated or deleted in the edges table in such a way as to make it not be a forest | |||
| so i'm looking for a criterion the db can apply | 01:09 | ||
| NotFound | If any message can have only one parent, I think you just need to check the absence of cycles. | ||
| davidfetter | a->b->c, a->d->c <-- DAG, but not tree | 01:10 | |
| NotFound | But c has two paents. | 01:11 | |
| davidfetter | "message only has one parent" is actually kinda time-consuming to enforce | ||
| NotFound | Is the way messages are linked. | 01:12 | |
| davidfetter | messages are just an example. i'm trying to solve a more general problem | ||
| NotFound | Then choose a more general example ;) | 01:13 | |
| davidfetter | ok, given a directed graph where i know the number of nodes with indegree 0, the total # of nodes, and the total # of edges, can i use just that information to determine whether the DG is a forest? | 01:14 | |
| mikehh | davidfetter: en.wikipedia.org/wiki/Kruskal%27s_algorithm | 01:16 | |
| NotFound | davidfetter: I think is not enough information. | ||
| davidfetter | ok. how about if i know what all the edges are? | 01:17 | |
| mikehh, so if kruskal's algo finds a minimum spanning forest that's not the original graph, i can say it's not a forest? | 01:19 | ||
| btw, this is all done in SQL :) | |||
| NotFound | davidfetter: The natural way is evaluate the connected componentes and check all are trees. | 01:20 | |
| But I don't know is such evaluation can be quickly done in sql. | 01:21 | ||
| davidfetter | that's the beauty of CTEs (common table expressions) a.k.a. recursive SQL :) | ||
| with those babies, SQL is turing-complete :) | 01:22 | ||
| NotFound | Well, I'm not fluent in sql nor in graph tehory, so I'll better go sleep. | ||
| davidfetter | g'night, NotFound | 01:23 | |
| mikehh | davidfetter: thers a bit more discussion on www.cs.auckland.ac.nz/software/AlgAnim/mst.html | 01:38 | |
| ash_ | ping plobsing | 01:40 | |
| mikehh | davidfetter: trying to remember all this stuff, haven't worked on it for a while | 01:41 | |
| plobsing | ash_: hi | 01:52 | |
| ash_ | I ran into an issue with the tests, but i am cleaning it up right now, if the size of a variable wasn't the same as a pointer, it would segfault, but I should have that done soon, but I also wanted to talk to you about the llvm stuff I was planning on working on | 01:53 | |
| i think i miss wrote my GSoC proposal because i thought the stack frame was something else | 01:54 | ||
| after talking in here about it, i think what I should of said for my GSoC proposal was I wanted to make a new runcore that uses the llvm to unroll the runloop and then does all the llvm optimization passes over that | |||
| plobsing | I suspected you meant something different when talking about an optimizing stack frame builder (optimizing NCI stack frames is almost useless) | 01:56 | |
| ash_ | yeah | ||
| plobsing | but a full runcore is pretty huge | ||
| ash_ | i was equating the stack frame to the runloop i think in my head for what aver reason | ||
| yeah... but thats really what I was hoping to work on, I wanted to see what you thought i should do to move forward from here | 01:57 | ||
| thats why in the spring I did that independent study on compilers and started making my own nqp compiler that uses the llvm as a backend, so i could get some experience with compilers and with the llvm | |||
| plobsing | I think that something like that (a jitting/threading whatsit) is a really good thing to have, so I'm all for it. However the degree of difficulty I'd put on it is much higher. | 01:58 | |
| ash_ | yea, thats one of the reason i was at first confused when people thought my GSoC would be to short | 01:59 | |
| but now i see i have been mis-communicating the whole time | |||
| plobsing | I say, go for it, but I'd also like the libffi stuff to be rock solid. | ||
| ash_ | yeah, i am still trying to finish that up | 02:00 | |
| i want it to be good too, but i just realized that i think there was a misunderstanding about what wanted to do with the other part of m GSoC | |||
| s/m/my/ | 02:01 | ||
| plobsing | we'll need to come up with a less confusing name for it | 02:04 | |
| ash_ | yeah... after I get all of the tests done for the libffi work | 02:05 | |
| i just changed my memory allocation strategy so it allocates memory based off of the size of the objects its supposed to pass, so, for example (short a, long b); only allocates memory (sizeof(short) + sizeof(long)) and does the appriopriate pointer math to move the variables around, but right now I am having a stupid moment and my pointers aren't working out, but i should have that fixed soon | 02:07 | ||
| plobsing | are your pointers aligned? that could cause problems | 02:08 | |
| ash_ | github.com/ashgti/parrot/blob/gsoc_...c.in#L1102 seems to be off | 02:11 | |
| if i print the value (like i do on the next line) translation_pointers[i] points to a chunk of code, like it should, but values + value_offset does not | 02:12 | ||
| explaining it helps me think about were the problem might be | |||
| plobsing | um... arity is parrot side last I checked. 'J' doesn't contribute to arity. | 02:16 | |
| ash_ | yeah | ||
| i subtract it out | |||
| well, that depends on the call, but in most cases J is ignored | |||
| (hence the j_offset variable, so i can keep track of if a J was used) | 02:17 | ||
| and if for whatever reason 2 J's are used | |||
| plobsing | oic | ||
| ash_ | some calls though have the signature (for instance) "PJt", so in that case, when I call Parrot_pcc_fill_params_from_c_args i don't include J as an arg | 02:18 | |
| plobsing | wait. why are you using memcpy for copying one value? | ||
| ash_ | but I add it in when I call the NCI function | ||
|
02:18
Coke joined
|
|||
| dalek | rtcl-nqp: a6a25c1 | Coke++ | src/Partcl/commands/main.pm: fix return value of set on an array |
02:18 | |
| rtcl-nqp: 58a3154 | Coke++ | src/Partcl/commands/array.pm: implement [array set] & [array get]. |
|||
| rtcl-nqp: 0ae5973 | Coke++ | t/cmd_array.t: untodo passing tests. |
|||
| rtcl-nqp: 9cde88d | Coke++ | (4 files): Support basic $array(key) syntax, untodo tests. |
|||
| ash_ | because you cant assign a value to an arbitrary memory location? (but you can memcpy to an arbitrary memory location) | 02:19 | |
| plobsing | you can cast the memory to the appropriate pointer type and assign | ||
| ash_ | true.. let me try that | 02:20 | |
| hmmm, its still off for some reason | 02:22 | ||
| i am sure there are places in my code where I could simplify or do things better... | 02:26 | ||
| hmm ill look into this more in the morning, my girlfriend wants me to hang out tonight | 02:30 | ||
| thanks for looking at it plobsing++ | |||
| night & | |||
|
02:41
janus joined
02:47
jhelwig_ joined,
atrodo joined
02:48
atrodo joined
02:49
atrodo joined
|
|||
| dalek | rtcl-nqp: 2018690 | Coke++ | (2 files): add [array names] |
02:52 | |
|
02:56
TiMBuS joined
03:04
Coke joined
|
|||
| dalek | rtcl-nqp: 9128ec7 | Coke++ | (2 files): handle [array names] with no pattern. |
03:09 | |
| ttbot | Parrot trunk/ r47820 i386-linux-thread-multi make error tt.taptinder.org/file/cmdout/352747.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) | 03:19 | |
| dalek | rtcl-nqp: f9937b5 | Coke++ | (2 files): [array unset] |
03:21 | |
| ttbot | Parrot trunk/ r47821 i386-linux-thread-multi make error tt.taptinder.org/file/cmdout/352775.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) | 03:22 | |
| dalek | rrot: r47814 | chromatic++ | trunk/src/hash.c: [hash] Hoisted constants in hash_thaw(). |
03:24 | |
| rrot: r47815 | chromatic++ | trunk/src/hash.c: [hash] Reduced hash thawing costs. optimization. |
|||
| purl | hmmm... optimization is the mother of all fuckups. or "1) it's an IO problem, 2) it's an IO problem, 3) it's an IO problem" or for those who don't have enough hardware or something people often obsess about pointlessly or see Rules of Optimization or "Premature optimization is the root of all evil" | ||
| rrot: r47816 | chromatic++ | trunk/src/pmc/hashiterator.pmc: [PMC] Sped up HashIterator's shift_string VTABLE. speeds up the Rakudo startup benchmark by ~6.23%, and should help Rakudo run time and anything else which performs Class introspection. |
|||
| rrot: r47817 | chromatic++ | trunk/src/pmc/object.pmc: [PMC] Tidied Object PMC; no functional changes. |
|||
| rrot: r47818 | chromatic++ | trunk/src/pmc/pmcproxy.pmc: [PMC] Removed duplicate code from PMCProxy. |
|||
| rrot: r47819 | chromatic++ | trunk/src/pmc/object.pmc: [PMC] Optimized isa VTABLE for Object PMC. Figure that one out. |
|||
| rrot: r47820 | chromatic++ | trunk/src/pmc/class.pmc: [PMC] Added a cache to speed up Class's isa_pmc. now has a cache of Classes it is and isn't. This only works if the Class is already instantiated, for obvious "don't pull the rug out from under me" reasons. The result is a 1.5% performance improvement on the Rakudo startup benchmark. |
|||
| purl | It seems faster | ||
| rrot: r47821 | chromatic++ | trunk (3 files): [src] Optimized Class inspect_str hash cloning. parrot_hash_clone_pruneable() function; Class's inspect_str VTABLE now uses this instead of cloning the hash manually. The function may need a better name, and we may consider exporting it. This optimization improves Rakudo startup by 3.557% and should improve all object reflection similarly. |
|||
|
03:37
jhelwig joined
03:47
LoganLK joined
|
|||
| ttbot | Parrot trunk/ r47822 i386-linux-thread-multi make error tt.taptinder.org/file/cmdout/352942.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) | 03:52 | |
| dalek | rrot: r47822 | mikehh++ | trunk/src/hash.c: fix codetest failure - add missing docs |
03:57 | |
| rrot: r47823 | bacek++ | trunk/src/pmc/class.pmc: Re-run headerizer |
|||
| kudo: f34e780 | pmichaud++ | src/binder/bind.c: Refactor "is copy" binding to avoid extra objectrefs and VTABLE_clone. |
04:09 | ||
| bacek_at_work | pmichaud, ping. | 04:32 | |
| dukeleto | 'ello | 04:33 | |
| bacek_at_work | msg pmichaud in NQP RPA.delete should use pir::delete__vQp, not pir::delete__vQi. | 04:35 | |
| purl | Message for pmichaud stored. | ||
| dukeleto | incoming | 04:37 | |
| purl | duck! | ||
| dalek | parrot: 8c00aa8 | dukeleto++ | plparrot.c: Add some more meat to the plperl6_func_handler skeleton |
04:43 | |
| parrot: 68311bc | dukeleto++ | plparrot.c: Get rid of SPI for now |
|||
| parrot: 1a3efda | dukeleto++ | plparrot.c: Add more meat to plperl6_func_handler |
|||
| parrot: 63ac82d | dukeleto++ | plparrot.c: Add code to wrap PL/Perl6 procedures |
|||
| parrot: dc6ad7d | dukeleto++ | plparrot.c: Attempt to compile perl6 source |
|||
| parrot: 3ea00ac | dukeleto++ | (3 files): Start the code which will wrap Perl 6 procedures and call them from PIR |
|||
| parrot: b1855fb | dukeleto++ | (3 files): Closer to getting Perl 6 code running |
|||
| parrot: c8ae516 | dukeleto++ | plparrot.c: Actually run Perl 6 code |
|||
| parrot: bfef901 | dukeleto++ | plperl6.pir: Dump the return value with dumper.pbc |
|||
| parrot: e0ad2f9 | dukeleto++ | plparrot.c: Get rid of magic constants |
|||
| parrot: 409644c | dukeleto++ | (3 files): Create Perl 6 wrapper code from PIR, not C |
|||
| parrot: dc93d09 | dukeleto++ | t/sql/test.sql: Add a test for floats in PL/Perl6 |
|||
| parrot: 69c39b5 | dukeleto++ | (2 files): Only define HAS_PERL6 if PERL6PBC is defined |
|||
| parrot: 3058930 | dukeleto++ | (4 files): Give PL/Perl6 tests their own home |
|||
| parrot: ab6a764 | dukeleto++ | (2 files): Properly define HAS_PERL6 |
|||
| parrot: 5893254 | dukeleto++ | (9 files): Merge branch 'plperl6' |
|||
| rrot: r47824 | mikehh++ | trunk/src/pmc/class.pmc: add cast(s) to get g++ to build |
04:47 | ||
| rrot: r47825 | mikehh++ | trunk/src/pmc/object.pmc: remove const(s) to get g++ to build |
|||
|
05:19
simcop238 joined
|
|||
| cotto | ~~ | 05:21 | |
|
05:25
simcop2387 joined
05:26
LoganLK joined
|
|||
| dalek | rrot: r47826 | plobsing++ | branches/dynop_mapping (11 files): handle op_info |
05:36 | |
|
05:38
Coke joined,
simcop2387 joined
05:43
simcop238 joined
05:55
simcop2387 joined
06:04
simcop238 joined
|
|||
| bacek_at_work | cotto, ~~ | 06:16 | |
|
06:17
simcop2387 joined
|
|||
| cotto | I am smartly matched. | 06:17 | |
| bacek_at_work | cotto, :) | ||
| cotto, speaking of pirates - tweetphoto.com/28970505 | |||
| afk # Friday beers | |||
| cotto | that's great | 06:18 | |
| pirate is also tweetphoto.com/28970505 | |||
| purl | okay, cotto. | ||
| moritz | purl: msg tcurtis with r47826 all tests pass again, thanks. Will try to actually use the pattern matcher soon | 06:27 | |
| purl | Message for tcurtis stored. | ||
| cotto | bacek, I don't think the dynamic hello world test in t/pbc/call.txt *should* work. Under imcc it throws an exception. | 06:30 | |
| moritz | does nqp-rx support inheritance via 'class Foo is Bar::Baz { }'? | 06:35 | |
| cotto | sure | ||
| moritz | thanks | ||
| then something else is borked | |||
|
06:37
tcurtis joined
06:38
ilbot2 joined
|
|||
| moderator | Parrot 2.5.0 Released! | parrot.org | Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | GSOC Students: trac.parrot.org/parrot/wiki/GSoCersStartHere | Priorities: merge gc_massacre, remove deprecated items, add deprecation notices for 2.6, close tickets. | ||
| dalek | rrot: r47827 | darbelo++ | branches/gsoc_nfg (2 files): Work out the last iterator issues causing the creation of dynamic graphemes for valid Unicode compositions. |
06:58 | |
| rrot: r47828 | tcurtis++ | branches/gsoc_past_optimization (15 files): Create Tree::Walker base class for ::Walker classes. |
|||
| moritz | tcurtis: turns out the tests now pass, I just have a local problem related to get_root_global not finding P6metaclass - which sometimes manifests in my code, and sometimes in your code, depending on compilation order | 07:01 | |
| tcurtis | moritz: What revision? | 07:05 | |
| purl | revision is 0, unless it's an svn co, then it's whatever svn reports | ||
| moritz | tcurtis: 47826 | ||
| bbl | 07:06 | ||
| tcurtis | moritz: I'm going to go to bed soon, and I probably won't be on again until tomorrow evening, but msg me if there are any further problems or you have any questions. | 07:07 | |
|
07:10
eternaleye joined
|
|||
| dalek | rrot: r47829 | darbelo++ | branches/gsoc_nfg (3 files): Add some null table handling to grapheme_table_capacity and use that to simplify the iterator code a bit. |
07:14 | |
|
07:17
arnsholt joined
|
|||
| dalek | rrot: r47830 | darbelo++ | branches/gsoc_nfg/src/string/encoding/nfg.c: Localize a variable. |
07:30 | |
| moritz | ok, general question | 07:37 | |
| purl | general question is the Perl Cookbook a good choice for someone's (who's still basically a beginner) second perl book? | ||
| moritz | which file do I have to load (.include or loadlib or load_bytecode or whatever) to get acccess to P6Metaclass? | 07:38 | |
| plobsing | moritz: probably P6object | 07:55 | |
| moritz | plobsing: thanks, just found it | 07:56 | |
| what about HLL::Compiler? | |||
| I'm kinda randomly loading PCT and NQP related stuff in the hope it'll work at some point :( | 07:57 | ||
| cotto | what's nqp's quote_EXPR ? | ||
| moritz | cotto: it's a method for parsing quoted strings | ||
| (iirc) | 07:58 | ||
| cotto | wfm | ||
| plobsing | moritz: are you looking for 'PCT/HLLCompiler.pbc' ? | 07:59 | |
|
07:59
arnsholt joined
|
|||
| moritz | plobsing: probably... trying... | 08:00 | |
| still doesn't work :( | 08:03 | ||
| I'll paste some code... | |||
| dalek | rrot: r47831 | NotFound++ | trunk/src/pmc/default.pmc: Don't use a name that conflicts in some platform and you don't need to protect it |
||
| nopaste | "moritz" at 192.168.1.3 pasted "This dies with "Parent is not a class"" (16 lines) at nopaste.snit.ch/21571 | ||
| moritz | that's generated PIR from my attempt to use tcurtis' optimization framework in rakudo | 08:04 | |
| actually the line number points to a few lines above the class to new_class, but I don't believe it | 08:05 | ||
| it points to the load_bytecode "PAST/Pattern.pbc", but if I comment out that line, it still dies with the same error | 08:06 | ||
| that's the nqp source: github.com/rakudo/rakudo/blob/optim...timizer.pm | 08:07 | ||
| plobsing | moritz: load_bytecode 'nqp-rx.pbc' seems to do it | 08:12 | |
| cotto | parallel testing in distutils would be really nice | 08:13 | |
| That'd be a great test case for the threading gsoc project. | |||
| ash's iirc | |||
| plobsing | nope. ash_ is NCI. he was talking about a different kind of threading today. | 08:14 | |
| moritz | Chandon was doing threads, iirc | ||
| cotto | idrc then | 08:15 | |
|
08:18
JimmyZ joined
|
|||
| cotto | clock? | 08:25 | |
| purl | cotto: LAX: Fri 1:25am PDT / CHI: Fri 3:25am CDT / NYC: Fri 4:25am EDT / LON: Fri 9:25am BST / BER: Fri 10:25am CEST / IND: Fri 1:55pm IST / TOK: Fri 5:25pm JST / SYD: Fri 6:25pm EST / | ||
| cotto | msg bacek I suspect a POST::String class with an encoding and charset will be a good idea. Thoughts? | 08:33 | |
| purl | Message for bacek stored. | ||
| dalek | r: fe13df5 | cotto++ | (3 files): add charset/encoding parsing and tests for string literals |
08:35 | |
| r: f95e32f | cotto++ | src/PIR/Grammar.pm: remove trailing spaces and make vim highlighting nicer |
|||
| r: eb31699 | cotto++ | src/PIR/Grammar.pm: delete todo comment |
|||
|
08:40
arnsholt joined
|
|||
| plobsing | dynop_mapping now builds without failing. maybe tommorrow I'll be able to extinguish all the little problems. | 08:43 | |
| this is taking longer than expected | |||
|
08:46
simcop238 joined
|
|||
| cotto | that's still good progress | 08:51 | |
| dalek | rrot: r47832 | plobsing++ | branches/dynop_mapping/src (2 files): fixup pbc_merge to remap ops properly |
08:52 | |
|
09:10
fperrad joined
09:36
bacek_mobile joined
|
|||
| bacek_mobile | cotto, post::string is really good idea | 09:37 | |
|
10:25
lucian joined
11:29
Coke joined
11:31
khairul joined
12:14
fperrad joined
12:54
bluescreen joined
13:00
whiteknight joined
13:21
JimmyZ joined
|
|||
| kthakore | bacek_at_work: so did it get accepted TT812 ? | 13:30 | |
|
13:34
ambs joined
13:38
plobsing joined
|
|||
| whiteknight | good morning, #parrot | 13:45 | |
| atrodo | good morning | 13:46 | |
| purl | Lies! | ||
| Coke | atrodo: ~~ | 13:49 | |
| atrodo | I need an irc lesson, what does ~~ indicate? | 13:50 | |
| arnsholt | Is there a practical way to splice RPAs? | 13:58 | |
| (Or at least just insert an element in the middle of it) | |||
| ambs | atrodo: Coke waved :) | 13:59 | |
| whiteknight | arnsholt: Not that I am aware of. RPAs are implemented as raw C arrays internally, not linked lists | 14:01 | |
| so there are no good semantics for insert or remove from the middle | |||
|
14:01
bubaflub joined
|
|||
| arnsholt | Ah, right | 14:02 | |
| I'll just implement my sets the easy way then =) | 14:03 | ||
| atrodo | ambs++ # Thanks. I was never sure | 14:04 | |
|
14:10
gbacon joined
14:18
lucian_ joined
14:28
ambs joined
|
|||
| dalek | rrot: r47833 | tcurtis++ | branches/gsoc_past_optimization/t/library/pastwalker.t: Remove debugging says. |
14:36 | |
|
14:37
Coke joined
|
|||
| whiteknight | arnsholt: what is the easy way? It is probably worthwhile for us to write a new PMC type with insert/remove semantics | 14:56 | |
| I could start prototyping such a beast in Parrot-Data-Structures if you want | |||
| Andy | Server is back up, now crnaking thru a make test on GCC 4.6 | 14:57 | |
| And I'm being the PARROT_ annotation police. | 14:58 | ||
| "You there! You could be flagged as PARROT_CONST_FUNCTION!" | |||
| whiteknight | tcurtis: If only we had some kind of mechanism that would automatically remove debugging statements from the source code... | 15:13 | |
| Coke | coke waved and then fell asleep, aparently. | 15:15 | |
|
15:15
JimmyZ joined
|
|||
| ambs | :) | 15:15 | |
| dalek | rrot: r47834 | petdance++ | trunk/src/nci_test.c: test functions need annotations, too, because they are testing |
15:25 | |
| rrot: r47835 | petdance++ | trunk/compilers/opsc/src/Ops/Trans/C.pm: normalize C headers to match the rest of the codebase |
|||
|
15:27
jsut joined
|
|||
| kthakore | ambs: hi! | 15:36 | |
| oops | |||
| atrodo: hi | |||
| atrodo | Hi! | ||
| ambs | kthakore: hellows | ||
| kthakore | ambs: hi | 15:39 | |
| purl | what's up, kthakore. | ||
| kthakore | atrodo: oh hai | ||
| particle | kthakore: i'm amazed you managed to distract ambs from the brazil-portugal hame | ||
| *game | |||
| ambs | particle: hehehe | ||
| it isn't going anywhere | |||
| darbelo | It hasn't been a very exiting game, all told. | ||
| particle | i think they don't mind if each other advance | 15:40 | |
| ...live to fight another day. | |||
| atrodo | kthakore> Hi again! | ||
| particle | yep, they took out fabiano. | 15:42 | |
|
16:10
patspam joined
16:11
theory joined
|
|||
| arnsholt | whiteknight: The easy way would be an array and looping over the entire thing before inserting | 16:24 | |
| (To check if the element is already present) | 16:25 | ||
| whiteknight | arnsholt: easy for you. hard for the CPU | ||
| arnsholt | Yeah. Which is why I wondered if it was possible to splice RPAs =) | 16:26 | |
| But yeah, actually writing a Set PMC might be a good idea | 16:27 | ||
| Good opportunity to learn how to write 'em too =) | 16:28 | ||
| whiteknight | yeah | ||
| dalek | rrot: r47836 | mikehh++ | trunk/src/nci_test.c: add C function documentation |
16:30 | |
|
16:44
fperrad joined
|
|||
| fperrad | purl ? | 16:48 | |
| purl | yes, fperrad? | ||
|
17:09
gbacon joined
17:12
davidfetter joined
17:19
treed joined
|
|||
| cotto_work | ~~ | 17:25 | |
|
17:31
chromatic joined
|
|||
| whiteknight | chromatic: nice work with the object optimizations | 17:36 | |
| chromatic | Thanks. There are a few more available. | 17:37 | |
| isa_pmc could be smarter and simpler. | |||
| Another fun one is parrot_hash_clone; that could be a couple of well-placed memcpy instructions instead of manual iteration. | 17:38 | ||
| Shallow clones are trivial, and detecting deep clones is fairly easy. | |||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#34577), fulltest) at r47836 - Ubuntu 10.04 amd64 (g++) | 17:39 | |
| chromatic | I didn't have the brainpower to get it right on the airplane, and I'd done enough C for the day. Anyone willing to poke at it a bit should get a ~2.5% Rakudo improvement with ~30 minutes of work. | 17:40 | |
| cotto_work | chromatic, I gather from kid51 that Lorito barely came up at the Parrot/Rakudo BOF. Does that mean that Lorito is a lower priority or just that there were more pressing issues that those present wanted to discuss? | 17:43 | |
| chromatic | The latter. | 17:44 | |
| I have three pages of notes on Lorito from the flight over -- in particular, one way security can work. | |||
| cotto_work | Great. | 17:45 | |
| ash_ | how complicated are the runcores? | ||
| cotto_work | If you don't need preprocessing for the .ops files, they're not bad. | ||
| whiteknight | chromatic: I thought we were moving to using all shallow clones for core PMC types | 17:46 | |
| ash_: in general, not too complicated | |||
| well, they don't need to be | |||
| a runcore is essentially a function that takes a pointer to bytecode and loops over it | |||
| cotto_work | If you want to do something silly like profiling, it ups the complexity a bit. | ||
| whiteknight | ash_: Look at trac.parrot.org/parrot/browser/trun...re/cores.c | 17:47 | |
| the functions runops_slow_core and runops_fast_core are the basics, and are very informative | |||
| lookup the definition of DO_OPs if you're trying to go cross-eyed | 17:48 | ||
| chromatic | whiteknight, maybe so... but even still, parrot_hash_clone does more work than it needs to. | ||
| whiteknight | chromatic: no doubt | ||
| ash_ | are runcore's pluggable? or do they have to be present at compile time? | 17:49 | |
| chromatic | Half an hour, tops, for a moderately decent C programmer willing to unravel it. | ||
| whiteknight | ash_: not pluggable, though if somebody put in the elbow grease they could be | ||
| cotto_work | There's a little work remaining to make them fully pluggable. | ||
| whiteknight | ash_: but if you build it in, you can select it at runtime | 17:50 | |
| chromatic: Hey! I'm a moderately decent C programmer! | |||
| chromatic | Go for it. | ||
| whiteknight | chromatic: looking at this, I don't see any obvious places where we can drop in a memcpy | 17:57 | |
| ...unless we want individual buckets to be shared across multiple hashes | 17:58 | ||
|
17:58
LoganLK joined
|
|||
| whiteknight | there are plenty of other simplifications Ithink we can make, however | 17:58 | |
|
17:58
rblackwe joined
|
|||
| chromatic | No reason to have all of those parrot_hash_put calls. | 17:59 | |
| whiteknight | right, I'll definitely get rid of that | ||
| chromatic | Presizing makes sense too. | 18:00 | |
| whiteknight | yeah, the whole thing is going to get simplified. My point was I don't think memcpy is the tool to use | ||
| chromatic | Not with the next pointers, no. | 18:01 | |
| whiteknight | There is a hell of a lot of cleanup needed in hash.c and hash.h. I may just create a branch | 18:04 | |
| I wonder if anybody can explain to me the logic behind N_BUCKETS and HASH_ALLOC_SIZE macros | 18:05 | ||
| chromatic | I *think* it's a desire to expand by doubling the hash size, but I'm not sure. | ||
| I've always heard (The Practice of Programming?) that you want an odd number like 17 for the modulus when picking the bucket. | 18:06 | ||
| whiteknight | actually, it looks like it's attempting to combine allocations for the pointer array and the initial buckets for each point in the array | ||
| although...not quite | |||
| chromatic | It does initially. | 18:07 | |
| whiteknight | I can't figure out why N_BUCKETS in (n - n/4) | ||
| dalek | rrot: r47837 | whiteknight++ | trunk/docs/project/release_manager_guide.pod: [docs] add empty spaces on the calendar for releases between now and 3.0 |
18:09 | |
| whiteknight | whatever, I'll trace through this more when I get home | 18:11 | |
|
18:14
gbacon joined
|
|||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#34578), fulltest) at r47836 - Ubuntu 10.04 amd64 (gcc with --optimize) | 18:16 | |
| cotto_work | bacek, ping | 18:19 | |
| mikehh | whiteknight: I might give RM a try | 18:22 | |
| whiteknight | RM? | ||
| purl | it has been said that RM is a powerful compression tool, that also provides unbreakable encryption or one-way compression or the ultimate in lossy compression protocols or reliable messaging and sadly real media or good for opening large SVGs | ||
| moritz | rm is also release manager | ||
| purl | okay, moritz. | ||
| dalek | kudo: 4e6cce6 | (Patrick Abi Salloum)++ | src/core/operators.pm: Various series fixes: * generators that involve geometric sign change work (we pass an extra TODO) * use Numeric instead of Num so that Rats also work Signed-off-by: Moritz Lenz <moritz@faui2k3.org> |
||
| mikehh | as in Release Manager | ||
| whiteknight | mikehh: Oh, awesome! What month do you want? | ||
| mikehh | whiteknight: whatever | 18:23 | |
| purl | whatever is trying to write to this should not, and I worked up the entire chain of ensure_class_loaded | ||
| mikehh | whiteknight: could try for August | ||
| whiteknight | mikehh: done and done | 18:24 | |
| bubaflub | whiteknight: just got your message. i've been lurking for a bit. i'd love to contribute to PLA if you have somewhere you want me to start, lemme know. | 18:25 | |
| whiteknight | bubaflub: Anywhere is good. I'm pushing for a release following Parrot 2.6.0. so adding new features and increasing test coverage are top priorities | ||
| bubaflub | okey dokey, i'll take a look at the code sometime today / tonight | 18:26 | |
| and see what i can hack on | |||
| whiteknight | adding examples for how to use PLA from various languages (winxed, rakudo, partcl) would be nice too | ||
| awesome! Let me know if you want a commit bit and I'll hook you up | |||
| bubaflub | i'm bubaflub on github if that helps at all | 18:27 | |
|
18:30
ambs joined
|
|||
| chromatic | moritz, if you or anyone else has a chance, Parrot has some nice optimizations that appear to help Rakudo. | 18:32 | |
| moritz | chromatic: I'll bump PARROT_REVISION and see what happens :-) | ||
| or better I'll time a spectest run first | 18:33 | ||
| cotto_work | chromatic, what sets off your "this could use some optimization" trigger? | ||
| chromatic | I'm not sure I understand the question. | 18:35 | |
| cotto_work | How do you pick a chunk of code to optimize? | 18:37 | |
| chromatic | I pick a likely benchmark, profile it, then look at the KCachegrind visualization. | 18:38 | |
| Anything that creates lots of GCables is a target. | |||
| Anything with a lot of inclusive time is a target. | |||
| Anything with a lot of self time is a big target. | |||
| Then I walk up and down the call graph to understand particular paths. | 18:39 | ||
| kthakore | hi chromatic can you accept my patch at TT 812 ? | 18:40 | |
| chromatic | You don't see the changes that make things worse or that have no effect. | ||
| kthakore | chromatic: pretty please? | ||
| cotto_work gets it | 18:41 | ||
| dalek | rrot: r47838 | whiteknight++ | trunk/docs/project/release_manager_guide.pod: [docs] mikehh++ has August |
||
| chromatic | testing now, kthakore. | 18:43 | |
| cotto_work | dig + elbow grease + keep what helps | ||
| kthakore | chromatic: yay! | ||
| chromatic: wow! you get grease for you elbow? | |||
| oops | |||
| chromatic | It's a combination of insight, experience, tools, and persistence. | 18:44 | |
| kthakore | chromatic: oh rlly? we could use some of that in SDL ... but I am a dumb ass | ||
| chromatic: all I have is hindsight, vigour, blind faith and ignorance | 18:45 | ||
| chromatic | You can trade that for the others, but it's not a quick transaction. | ||
| kthakore | yeah | ||
| meh ... w/e I still got direct pixel access to surface pixels working!!! | 18:46 | ||
| :) I am so freaking proud of that | |||
| sjn looks at www.youtube.com/watch?v=tz-Bb-D6teE (60 minute talk with Steve Yegge, at Stanford titled "Dynamic Languages Strike Back") | 18:47 | ||
| kthakore | sjn: cool | ||
| moritz | sjn: a bit ranty, but quite nice :-) | 18:48 | |
| sjn | kinda neat, yes :) | 18:49 | |
| sjn is completely blank when it comes to JITs and optimizing, but listening to the rant gave me another good feeling about Parrot :) | 18:50 | ||
| dalek | rrot: r47839 | chromatic++ | trunk/compilers/pct/src/PAST/Node.pir: [PCT] Removed unnecessary passthrough method. Thakore). |
18:58 | |
| kthakore | yay! | 18:59 | |
| kthakore dances to 2nd patch jubiliance | 19:00 | ||
| chromatic: thanks man | |||
| chromatic | Thanks for the patch. | ||
| particle | kthakore++ | ||
| kthakore | np | ||
| it was a simple one | |||
| so simple even I could od it | 19:01 | ||
| all I had to do was delete! yay! | |||
| dalek | TT #812 closed by chromatic++: PCT - PAST::Op::lvalue() is redundant | 19:06 | |
| TT #812: trac.parrot.org/parrot/ticket/812 | |||
| mikehh | rakudo (4e6cce6) builds on parrot r47836 - make test PASS, spectest_smolder -> #34580 (pugs r31446) PASS - Ubuntu 10.04 amd64 (gcc with --optimize) | 19:12 | |
| 19 TODO PASSes in 6 files | |||
|
19:17
bubaflub joined
|
|||
| mikehh | pir/PIRATE build ok, test PASS - t/01-parse/05-assign.t - TODO passed: 10 | 19:23 | |
|
19:23
mikehh joined
|
|||
| mikehh | partcl-nqp: make ok / test PASS | 19:25 | |
| winxed - make ok test/test1/test2 all PASS | 19:39 | ||
| cotto_work | If anyone with a PIRATE commit bits wants some easy karma, the string tests in t/01-parse/05-assign.t should be moved to t/parse/string.txt | 19:46 | |
| whiteknight | NotFound: ping | 19:47 | |
|
19:47
jsut_ joined
20:18
mariano__ joined
|
|||
| rblackwe | In Damian's Rakudo class at YAPC and he just showed multiple dispatch on MAIN. that is just coolio! | 20:18 | |
| particle | go american continent! | 20:21 | |
| all seven teams advance. | 20:22 | ||
| moritz | rblackwe: I'm amazed it works | ||
| particle | *continents | ||
| moritz | rblackwe: know how we cheat in that case :-) | ||
| particle | rblackwe: that's how we roll :) | ||
| rblackwe | moritz: to rephrase he showed it will be possible did not say if it worked right now. | ||
| particle | it will work soon, as i finish my hague grant | 20:23 | |
| it's working now, kinda | |||
| moritz | rblackwe: what currently works is that if only one candidate matches, it is picked up | ||
| rblackwe | particle++ | ||
| moritz | rblackwe: what doesn't work is that the best match is always called | ||
| actually it will be pretty trivial to get right once &multi.cando is fixed | 20:24 | ||
| chromatic: r47839 didn't make rakudo's spectest run measurable faster | 20:31 | ||
| chromatic | What are you comparing? | 20:33 | |
| moritz | time perl tool/test_summary.pl | ||
| r47835 and r47839 | 20:34 | ||
| chromatic | Start with r47808. | ||
| moritz | the latter is actually a bit slower, but that might be due to the noise (other prorgrams running in parallel) | ||
| dalek | rtcl-nqp: c46b635 | Coke++ | (2 files): fix [array set] to coerce @list to a list. |
20:35 | |
| rtcl-nqp: 16baa4d | Coke++ | (2 files): the list passed array set has to have an even # of elements. |
|||
| rtcl-nqp: 14e5902 | Coke++ | (2 files): validate that [array set] is called on an array. |
|||
| atrodo | I wanted to take a second and say thanks to all the parrot people at yapc for letting me hang out and listen in | 20:37 | |
|
20:40
mariano__ joined
|
|||
| chromatic | You're always welcome. | 20:41 | |
| particle | atrodo: i'm glad you could join us and looking forward to more of your input | 20:43 | |
| atrodo | I hope I can give more input in the future. Parrot's starting to grow on me | 20:51 | |
|
20:54
ambs joined
21:00
whiteknight joined
|
|||
| kthakore | atrodo: you were listening! | 21:01 | |
| atrodo: who gave you permission? | |||
| atrodo | kthakore> huh? | 21:08 | |
| kthakore | atrodo: what? | 21:09 | |
| atrodo: say it louder I can't hear you here | 21:10 | ||
| kthakore might be silly | |||
| cotto_work | more than likely | ||
|
21:28
mikehh joined
|
|||
| Andy | I'd love to see evidence to support (or disprove) my theory that merely committing something to a repository increases the quality of the code, because people are more likely to update it. | 21:51 | |
| In other words, that churn improves quality. | |||
| chromatic | I see your theory and raise you Dan's theory from early Parrot. | 21:53 | |
| atrodo | What was Dan's theory? | ||
| chromatic | Committing suboptimal code might encourage other people to contribute because they wanted to improve it. | ||
| Andy | All brontosauruses are thin at one end, much MUCH thicker in the middle, | ||
| and then thin again at the far end. That is the theory that I have and | |||
| which is mine, and what it is too. | |||
| cotto_work | I'm sure it'd work fine for small bits of code. | 21:54 | |
| it's pretty easy to replace a bubble sort function with something better. | |||
| chromatic | I think if it works, it works because it provides small, self-contained projects for interested novices to perform in isolation. | ||
| cotto_work | yes | 21:55 | |
| imcc? not so much | |||
| barring the appearance of a magical coding robot | |||
| atrodo | I agree. There's a critical mass that the theory breaks apart | ||
| chromatic | Relying on interested novices to read patches or the source code specifically to *find* places for those tasks seems like the weak part of that theory. | ||
| atrodo | Oh, magical robot! I knew I forgot to grab something before I left yapc | 21:56 | |
| kthakore | BAH! how do you guys maintain you modules man | ||
| I am sitting behind a mountain of things to doc and update | |||
| kthakore cries | |||
| oh btw | 22:01 | ||
| Coke: I saw your message | |||
| Coke: how do we add the tests and SDL code into trunk? | |||
| chromatic | whiteknight, you could even walk src_hash->bi (the bucket store itself, not the linked lists), copy across the values, then fix up the next pointers with a little bit of math. | 22:08 | |
| whiteknight | that's what I | ||
| chromatic | That's a simple loop, cache friendly, no function calls, no realloc, and a lot friendly. | ||
| whiteknight | m planning | ||
| chromatic | Maybe I mean src_hash->bs | ||
| Whichever one is the dumb array of HashBuckets, and not the place where we use hash->mask to index into a linked list. | 22:09 | ||
| whiteknight | I don't know a hell of a lot about this hash implementation, so It's going to take me some reading before I really get cracking | 22:10 | |
| dalek | rrot: r47840 | petdance++ | trunk/compilers/imcc/pbc.c: removed unused var |
22:15 | |
| rrot: r47841 | whiteknight++ | branches/hash_faster: creating a branch to do some optimizing and general cleanup in the hash implementation |
|||
| chromatic | Wow, S03-operators/series.t is a pig. | 22:18 | |
|
22:19
Themeruta joined
|
|||
| NotFound_gf | whiteknight: pong | 22:19 | |
| cotto_work | What'd be the right way to handle a string with specified encoding and/or charset in PIRATE? Would it work to treat the parsed string contents as a bunch of bytes and use a ByteBuffer? | ||
| whiteknight | NotFound: what does ${} syntax in winxed do? | ||
| NotFound_gf | whiteknight: pir ops | ||
| whiteknight | ah, okay. That's what I thought | 22:20 | |
| also, how do you load a dynpmc lib in winxed? | |||
| NotFound_gf | whiteknight: I haven't tested with dynpmc, only with dynops, but using extern at global scope should do. | 22:21 | |
| whiteknight | ok | 22:22 | |
| I'll have to look through the examples | |||
| cotto_work | btw, whiteknight++ for the OpLib PMC. It's pretty essential for PIRATE. | ||
| whiteknight | cotto_work: I'm glad people are using it! I figured it would come in handy | 22:23 | |
| NotFound_gf | whiteknight: using extern 'libname'; | ||
|
22:23
ash_ joined
|
|||
| whiteknight | would it kill people to give these things human-readable and human-understandable names? | 22:31 | |
| Tene | which things? | ||
| whiteknight | wtf is hash->bi? how is it different from hash->bs? I shouldn't have to read so much code to figure out what these things are | ||
| cotto_work | I'll give you a cookie if you fix them. | 22:32 | |
| Those names are a pretty effective impediment to understanding the code. | 22:33 | ||
| Tene | ouch | 22:34 | |
| which code is this? hash.pmc? | |||
| cotto_work | src/hash.c iirc | 22:35 | |
| Tene | ah | ||
| bi is bucket index, I think | 22:36 | ||
| cotto_work | bs is base | ||
| but the code wins an award for not being very clear | 22:37 | ||
|
22:44
tcurtis joined
|
|||
| dalek | rrot: r47842 | whiteknight++ | branches/hash_faster/include/parrot/hash.h: [hash] small cleanup. Remove/rework comments for clarity and modernity |
22:48 | |
| whiteknight | The code is remarkably unclear. And that could be forgiven if it were massively optimized | 22:51 | |
| it ain't | 22:52 | ||
| fields in the hash structure are considered internal opaque things, right? so I can rename them at will without running afoul of the deprecation policy? | 22:53 | ||
| chromatic | Yes please. | 22:54 | |
| What's the word for premature optimization that isn't even optimization? | |||
| Oh, right. C. | |||
| cotto_work | +1 to please do | 23:00 | |
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#34584), fulltest) at r47841 - Ubuntu 10.04 i385 (gcc) | 23:02 | |
| t/op/exit.t - TODO passed: 6 in testf | |||
| i386 - better take a break - starting to make idiot mistakes | 23:03 | ||
| dalek | rrot: r47843 | tcurtis++ | branches/gsoc_past_optimization/runtime/parrot/library/PAST/Walker.nqp: Remove another debugging output statement. |
23:05 | |
| bacek | aloha, humans | 23:07 | |
|
23:10
lucian joined
|
|||
| cotto_work | hi bacek | 23:12 | |
| bacek | aloha, cotto_work | ||
|
23:21
kid51 joined
|
|||
| chromatic | bacek, do you have a Rakudo checkout? | 23:22 | |
| bacek | chromatic, yes. | ||
| chromatic | src/binder/bind.c around line 500. | 23:23 | |
| bacek | substr? | ||
| purl | substr is perldoc -f substr is handy but overlooked far too often or good for a simple literal match, when you don't need the hammer of regex -- it's also something that lets you substitute parts of a string with something else.. like deleting bits of it or substr EXPR, OFFSET or substr EXPR, OFFSET, LEN or substr EXPR, OFFSET, LEN, REPLACEMENT or slower as it means modifying the string | ||
| chromatic | I've hoisted a couple of string_from_literal() calls into constant strings. | ||
| The substr and equals calls are fairly inefficient; creating a garbage STRING header just to say "Is this substring in the other string at the start?" | 23:24 | ||
| bacek | yeah... | ||
| chromatic | I'm trying to come up with a decent Parrot_str_* API to perform this operation more efficiently. | ||
| whiteknight | It's remarkable how much memory-management logic these hashes reproduce from the GC | ||
| not that it's a bad thing, slab-style allocation of buckets helps cache locality, but it is still a hell of a lot of duplication | 23:25 | ||
| bacek | call to str_byte_length looks suspicious | ||
| chromatic | I'm not aware of any particular bugs in here, but I'm looking at the possibility for providing another Parrot_str_* function to reduce the work done here. | 23:26 | |
| bacek | str_find_index == 0 for sigil? == 1 for twigil? | 23:27 | |
| Iterating over identifier should be faster than substr | |||
| chromatic | It looks like the code creates three to five garbage STRINGs for each named parameter in every call. | 23:28 | |
| Churn, baby, churn. | |||
| kid51 | seen darbelo? | 23:36 | |
| purl | darbelo was last seen on #parrot 7 hours, 57 minutes and 4 seconds ago, saying: It hasn't been a very exiting game, all told. | ||
| kid51 | msg darbelo You will need to document C functions in src/string/grapheme.c so that t/codingstd/c_function_docs.t passes. | 23:37 | |
| purl | Message for darbelo stored. | ||
| dalek | rrot: r47844 | tcurtis++ | branches/gsoc_past_optimization/runtime/parrot/library/PAST/Walker.nqp: Remove unnecessary multi specialization for PAST::Walker. |
||
| kid51 | msg darbelo That's in gsoc_nfg branch. | 23:38 | |
| purl | Message for darbelo stored. | ||
| cotto_work | s/so that t\\/codingstd\\/c_function_docs.t passes/so that people can understand the code more easily./ | 23:45 | |
| bacek | cotto_work, ~/src/nqp-rx (master)$ ./nqp -e 'my $a:=1; $a := $a * $_ for <1 2 3>; say($a)' | 23:47 | |
| 6 | |||
| :) | |||
| cotto_work | nice | ||
| bacek | did you ask for "postfix" for? | ||
| cotto_work | btw, I don't think that one of the call tests *should* pass. | ||
| bacek | which one? | ||
| cotto_work | I asked about for/if | ||
| bacek | "if" should work. | 23:48 | |
| cotto_work | Hello, World (dynamic) | ||
| bacek | ~/src/nqp-rx (master)$ ./nqp -e 'say("hi") if 42 == 42' | ||
| hi | |||
| cotto_work, yes. Wrong test. | 23:49 | ||
| dalek | p-rx: caa5ba5 | bacek++ | (3 files): Implement expression for modifier |
||
| cotto_work | I'm not sure why it'd cause a segfault on x86 and work fine on x64, but it shouldn't be there and probably falls under "don't do that". | 23:50 | |
|
23:53
Psyche^ joined
|
|||
| dalek | rrot: r47845 | jkeenan++ | branches/gsoc_nfg/src/string/encoding/nfg.c: [codingstd] Eliminate trailing whitespace it; correct POD formatting error. |
23:54 | |
| cotto_work | bacek, do you know if it'll be safe to take the data that PIRATE parses out of a string literal with an explicit encoding/charset and stick it into a ByteBuffer for later stringification? | ||
| It's great that these recently-written PMCs are proving to be so useful to PIRATE. | 23:55 | ||
| bacek | cotto_work, it will probably require some hacking of quote_EXPR. But it's good idea. | ||
| cotto_work | Should I rely on that and assume that the fixes will happen at a lower level than PIRATE or will that need some changes in PIRATE too? | 23:56 | |
| bacek | cotto_work, no idea atm. Sorry. | 23:57 | |
| cotto_work | pmichaud, ping | ||