|
Parrot 2.4.0 "Sulfur Crest" Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | GSOC Students: trac.parrot.org/parrot/wiki/GSoCersStartHere Set by moderator on 18 May 2010. |
|||
| chromatic | Anything allocated anew after GC starts has to start on @live_objects then, right? | 00:00 | |
| bacek | grey_objects | 00:01 | |
| we have to remark them | |||
| my $a; (start_gc); my @b = ($a); | |||
| chromatic | I see. | 00:02 | |
| bacek | Or may be I'm too pessimistic and $a will be marked anyway. | ||
| but for my @a; (start_gc); @a.push(PMC.new); we have to remark @a | |||
| chromatic | If $a is reachable from a register, it will be. If it's reachable from C, then tracing system areas should. | 00:03 | |
| bacek | especially is @a.push() executed in C | ||
| s/is/if/ | |||
| chromatic | I'm curious to see this 1.01 byte O(log n) insertion skiplist. | 00:05 | |
| bacek | Me too. | 00:06 | |
| But it's kids day today. | 00:07 | ||
| chromatic | That explains all of the meowing over here. | ||
| bacek | I'll (hopefully) start hacking tomorrow. | ||
| :) | |||
| See you! | |||
| chromatic | Let me know what you want me to work on. | 00:08 | |
| bacek | There is still "grey" area in my design about strings. | ||
| May be we should split string allocator into separate class. | 00:09 | ||
| chromatic | Do we need buffer compacting anymore? | ||
| bacek | Yes. | ||
| bacek definitely have to go | 00:10 | ||
|
00:18
tetragon joined
00:19
shockwave joined
|
|||
| shockwave | Howdy. | 00:19 | |
| What's the process to convert a string to lower/upper case? | |||
| whiteknight | is there a tolower/toupper opcode? | 00:25 | |
| Tene | you might check rakudo's Str.uc method | 00:26 | |
| dalek | kudo: d42fd31 | jonathan++ | src/Perl6/Actions.pm: The whatever currying was a little too liberal; after some labour I came up with |
00:27 | |
| shockwave | whiteknight: Thanks for the hint. I kept looking here: | ||
| docs.parrot.org/parrot/latest/html/...s.pod.html | |||
| But forgot to look at the opcodes. | |||
| There is one. | |||
| whiteknight: Thanks | 00:28 | ||
| whiteknight | nice | ||
|
00:30
bubaflub_ joined
|
|||
| whiteknight | bacek++ | 00:36 | |
| purl msg bacek those code outlines for GC are extremely helpful. I should hae done that kind of layot a long time ago | 00:37 | ||
| purl | Message for bacek stored. | ||
| whiteknight | chromatic++ # links to llvm videos | 00:38 | |
|
00:39
ian_ joined
00:40
plobsing joined
|
|||
| plobsing | ping cotto_work | 01:07 | |
|
01:17
jsut_ joined
|
|||
| dalek | kudo: a4dc280 | jonathan++ | src/Perl6/Grammar.pm: Get our comment parsing more STD-ish by introducing the comment protoregex, and |
01:22 | |
|
01:33
kid51 joined
|
|||
| dalek | p-rx: 3c60bf4 | jonathan++ | src/Regex/P6Regex/Actions.pm: Fix a panic call, so we actually panic with the useful error message. |
01:36 | |
| whiteknight | panic? EVERYBODY PANIC? | ||
| plobsing | everybody panic? | 01:37 | |
| purl | i heard everybody panic was web.archive.org/web/20070216080911/.../panic.gif | ||
| whiteknight | jonathan's commit message was all about fixing panics | ||
| plobsing | does distutils have a good way of compiling non-dynpmc, non-dynop parrot extensions? | 01:38 | |
| whiteknight | plobsing: what kinds of extensions are those/ | 01:39 | |
| ? | |||
| plobsing | C | ||
| whiteknight | no, I mean what kinds of stuff does the extension do? | 01:40 | |
| plobsing | break parrot encapsulation so I can avoid writting a dynpmc | ||
| whiteknight | where is the extension going to hook in? | 01:41 | |
| plobsing | I'm going to load the functions via NCI | ||
| whiteknight | or are you just writing the functions and going to call in with NCI? | ||
| okay | |||
| I don't know if distutils supports that | |||
| plobsing | I suppose I could convert them to ops, but it really doesn't seem worth it. | 01:42 | |
| whiteknight | meh, I'm sure distutils either does support it or can be made to do so easily | ||
| plobsing | example: pmc_get_meta(PARROT_INTERP, PMC *obj) { return PMC_metadata(obj) } | ||
| whiteknight | once you have the routines to invoke the compiler with the correct flags, thats 90% of the work | ||
| the damn smolder server timeouts are shittacular | 01:45 | ||
| plobsing | I don't see any pre-built functionality. I guess I'll have to roll my own out of the very nifty building blocks distutils provides | 01:46 | |
| who do I talk to about adding stuff to distutils? yes, I have a commit bit, but I'm hopping someone out there has a coherent vision for this thing | |||
| sorear | fperrad, I presume | 01:47 | |
| whiteknight | fperrad | ||
|
01:47
gbacon joined
|
|||
| plobsing | seen fperrad | 01:47 | |
| purl | fperrad was last seen on purl 4 days, 18 hours, 17 minutes and 44 seconds ago, saying: <private message> [May 24 07:29:27 2010] | ||
| whiteknight | what would even be the difference between a dynpmc and any other .so? | 01:48 | |
| let me look at the code and see what my stupid fingers and fuck up | |||
| plobsing | none really. but it looks as though distutils hasn't consolidated compiling the C files from dynops and dynpmcs | 01:49 | |
| whiteknight | no, I guess not. but I can copy+paste as well as the next guy | 01:52 | |
| plobsing | IIRC, I rolled my own C extension building for one of the early iterations of libjit_fb. | ||
| I'll try and steal that. | |||
| and then point at it for a feature request | 01:53 | ||
| whiteknight | parrot_config cc_flags should give you everything you need | 01:54 | |
| parrot_config ccflags | 01:55 | ||
| gcc $(parrot_config ccflags) -o myfile.o myfile.c | |||
| gcc $(parrot_config ccflags) $(parrot_config ccwarn) -o myfile.o myfile.c if you want all the warnings | 01:58 | ||
|
01:58
eternaleye joined
|
|||
| kid51 | make test, make buildtools_tests, make codetest PASS sat 47097 | 01:58 | |
| plobsing | ccflags are relatively easy. I've found the linker to be my main opponent lately (witness how many times I've accidentally broken the windows build) | ||
| whiteknight | ah, my old nemesis: the linker | 01:59 | |
| I've got a finger for whoever designed the interface to that piece | 02:00 | ||
| bubaflub | a big thumbs up, whiteknight? | 02:01 | |
| whiteknight | I just try to blindly copy whatever commandline the makefile uses | ||
| bubaflub: no, different finger. | |||
| not nearly so positive | |||
| bubaflub | hahahah | ||
| i know, just goading you | |||
| whiteknight | :) | ||
| plobsing | afk # need potatoes | ||
| whiteknight | PO-TA-TOES | ||
| bubaflub | you know, boil em, mash em | 02:02 | |
| whiteknight | haha | ||
| plobsing: parrot_config libparrot_soname, inst_libparrot_linkflags, and maybe link_dynamic | 02:06 | ||
|
02:22
jimk joined
02:26
ian_ left
02:36
janus joined
02:41
shockwave joined
|
|||
| shockwave | Howdy. | 02:41 | |
| I'm looking at: docs.parrot.org/parrot/latest/html/...g.ops.html | |||
| But it doesn't jump out at me... | |||
| How can I convert an int to a string? | |||
| Wow, can it really be this easy: $I0 = 5; $S0 = $I0; | 02:44 | ||
| That's cool! | |||
| ok, thanks. | 02:45 | ||
|
02:45
shockwave left
|
|||
| dalek | rrot: r47099 | tcurtis++ | branches/gsoc_past_optimization/t/library/pasttransformerdynamic.t: Add test for changing node types with PAST::Transformer::Dynamic. |
04:03 | |
|
04:24
mikehh joined
|
|||
| dukeleto | 'ello | 04:31 | |
| plobsing | hiya duke! | 04:36 | |
|
04:49
TiMBuS joined
|
|||
| davidfetter wonders how much spice is going for per key these days | 04:58 | ||
| dukeleto, any insights? | |||
| sorear | per key? | 04:59 | |
| davidfetter | kilogram | ||
| purl | kilogram is more than a pound, right? And 161 kph = 100 mph, right? | ||
| sorear | oh | ||
| sorear thought SPICE = an open source circuit simulator and key = license key, was confused | |||
| davidfetter | heh | 05:00 | |
| plobsing | dukeleto: regarding your PL/Parrot errors, your code sample lacks '.loadlib "io_ops"' | ||
| so I'm somewhat surprised it compiled at all. | |||
| davidfetter | plobsing++ for helping track this down :) | 05:01 | |
| plobsing | I did lead the push that caused it in the first place. I feel at least somewhat responsible. | ||
| davidfetter | heh | 05:03 | |
| plobsing | of course ops_massacre is probably desirable to PL/Parrot. open opcode is now much harder to get at, easier to deny access to. | 05:08 | |
| davidfetter | :) | 05:22 | |
| mikehh | make corevm/make coretest FAILs - see: nopaste.snit.ch/20672 (same failures) | 05:34 | |
| all other tests PASS (pre/post-config, smoke (#34116), fulltest) at r47099 - Ubuntu 10.04 i386 (g++) | |||
| t/op/exit.t - TODO passed: 6 in testf | |||
| plobsing | mikehh: what exactly is failing there? is it the "./parrot pbc_to_exe.pbc pbc_to_exe.pbc"? | 05:38 | |
| nopaste | "plobsing" at 192.168.1.3 pasted "[PATCH] mikehh, maybe this will resolve the issue" (20 lines) at nopaste.snit.ch/20704 | 05:41 | |
| mikehh | plobsing: seems to be imcc syntax errors | 05:42 | |
| eg first error - error:imcc:syntax error, unexpected PREG, expecting '(' ('$P2') in file 't/op/arithmetics_pmc.t' line 352 | 05:43 | ||
| plobsing | that is not what the nopaste you just pasted shows | 05:44 | |
| mikehh | the nopaste was the summary results | 05:46 | |
| plobsing | from what I see in the nopaste (triple checked), it doesn't even begin testing. it is a build failure ("make: *** [pbc_to_exe] Error 1") | 05:47 | |
| mikehh | bear in mind that the tests fail make corevm/make coretest as soon as I run make and then make test the tests pass | ||
| plobsing | sounds like more .loadlib silent failure induced bugs | 05:48 | |
| whu? I ran clean => corevm => coretest and everything worked | |||
| mikehh | let me redo that and I will nmopaste some of failing tests | 05:49 | |
| plobsing | likely one of the dynops libs isn't being cleaned on make clean, lulling me into a false sense of security | 05:51 | |
| mikehh | did you run before or after your patch? | 05:52 | |
| I usually run make realclean | 05:53 | ||
| plobsing | after, but patch shouldn't fix things if they are as you described | ||
| corevm/coretest passed for me after svnclobber. | |||
| cotto | plobsing, pong | 05:54 | |
| plobsing | I was wondering if those failures you were having persisted. It appears they do. | 05:55 | |
| found my problem: installed parrot | |||
| cotto | you mean the parallel build failures? | 05:56 | |
| plobsing | yes | ||
| cotto | I'm still seeing those occasionally. | ||
| The best way to test for them is just to run mj reconfig && mj && ... a bunch, so I don't do it too often. | 05:57 | ||
| If you think you have a fix, I'll be glad to verify. | |||
| plobsing | cotto: nope, no idea. your nopaste indicates a failure in pbc_to_exe compilation, which doesn't depend on any ops, so I'm not sure what's going on. | 05:58 | |
| in fact, pbc_to_exe has very few deps | |||
| cotto | Yeah. that's why I nopasted instead of trying to fix it myself. | ||
| nopaste | "mikehh" at 192.168.1.3 pasted "prove of first test failure - make corevm/make coretest" (15 lines) at nopaste.snit.ch/20705 | 06:08 | |
| "mikehh" at 192.168.1.3 pasted "prove of second test failure in make corevm/make coretest" (16 lines) at nopaste.snit.ch/20706 | 06:12 | ||
| dalek | rrot: r47100 | plobsing++ | trunk (2 files): fix t/op/arithmetics_pmc.t after ops_massacre |
06:15 | |
| rrot: r47101 | plobsing++ | trunk (2 files): add tests removed in r47100 to dynops testing |
|||
| nopaste | "mikehh" at 192.168.1.3 pasted "prove of next two failures in make corevm/make coretest" (46 lines) at nopaste.snit.ch/20707 | 06:28 | |
|
06:31
eternaleye joined
|
|||
| mikehh | plobsing: there are two more, slightly longer, do you want them | 06:31 | |
| plobsing | mikehh: no thanks. I can now reproduce the problem. Thank you for your assistance. | 06:32 | |
| mikehh | nearly commited your patch, let me clean up | 06:33 | |
| plobsing | not worthwhile | 06:34 | |
| didn't address the right thing because I was confused as to the problem at the time | |||
|
06:50
mikehh joined
|
|||
| dalek | rrot: r47102 | plobsing++ | trunk (3 files): move bitwise String PMC tests over to dynops testing (outside of coretest) |
07:05 | |
| rrot: r47103 | plobsing++ | trunk/t (2 files): move transcendental testing on Complex PMC to dynops testing |
|||
| chromatic | blog.mozilla.com/tglek/2010/04/07/i...d-startup/ | 07:09 | |
| plobsing | chromatic: are you posting that as relevant for Parrot's internal layout or PBC layout? | 07:12 | |
|
07:12
fperrad joined
07:13
bacek joined
07:15
dolmen joined
07:17
preflex joined
|
|||
| dalek | rrot: r47104 | fperrad++ | trunk (2 files): [distutils] fix end of setup() |
07:21 | |
| rrot: r47105 | plobsing++ | trunk (3 files): move dynops dependant test out of coretest |
|||
| rrot: r47106 | fperrad++ | trunk/runtime/parrot/library (2 files): [distutils] workaround TT #1663 |
|||
| cotto | Some of those Mozilla hackers are pretty insane about finding performance improvements. | 07:22 | |
| chromatic | Internal layout. I wonder if we can improve startup time with something like that. | 07:23 | |
| dalek | kudo: 5940b25 | moritz++ | docs/ChangeLog: [docs] update ChangeLog |
07:28 | |
|
07:54
fperrad_ joined
|
|||
| dalek | p-rx: 3ce1fa3 | moritz++ | src/stage0/ (3 files): update stage0 files |
08:03 | |
| rrot: r47107 | moritz++ | trunk/ext/nqp-rx/src/stage0 (4 files): [nqp] update stage0 files |
08:12 | ||
|
08:28
JimmyZ joined
08:39
clinton joined
09:14
seatek joined
09:42
somebody_ joined
09:53
jsut joined
10:07
gbacon joined
10:21
whiteknight joined
|
|||
| whiteknight | ggod morning, #parrot | 10:25 | |
| dalek | kudo: 250adbb | pmichaud++ | (5 files): Initial fixes towards enabling Rakudo-specific Match objects. getting Match ~~ Positional to work (see src/core/Match.pm for details). |
10:37 | |
| kudo: 3ac2d94 | moritz++ | (5 files): Merge remote branch 'origin/mob_pm' |
|||
| kudo: f58bca2 | moritz++ | build/ (2 files): remove some setting left-overs from alpha |
|||
| kudo: f743dca | moritz++ | build/gen_ (2 files): [build] remove two fossile Perl scripts |
|||
|
10:44
lucian joined
|
|||
| dalek | kudo: bbb336a | moritz++ | src/core/Match.pm: make Match.list and Match.hash return Perl 6 objects |
11:24 | |
|
11:32
fperrad_ joined
|
|||
| whiteknight | I see my email about ns_func_cleanup branch has been read, and filed away, by mr. Warnock | 11:53 | |
| under the assumption that somebody would mentioned any objections, my email is assumed to have complete support and agreement from the community :) | 11:54 | ||
|
11:59
fperrad joined
|
|||
| dalek | rrot: r47108 | whiteknight++ | branches/oo_func_cleanup: creating a branch to cleanup the <s>garbage</s>code in src/oo.c |
12:05 | |
| rrot: r47109 | khairul++ | failed to fetch changeset: Sync with trunk |
|||
|
12:06
fperrad_ joined
12:21
cognominal joined
12:23
dolmen joined
12:26
Themeruta joined
12:47
joeri joined
|
|||
| NotFound_gf thinks about reverting the conversion to dynops unless someone design a quickly doable way of sane dynop loading. | 12:47 | ||
|
13:00
JimmyZ joined
|
|||
| whiteknight | the block starting at src/oo.c:189 makes absolutely no sense | 13:02 | |
| NameSpace.get_pmc_keyed_int returns a vtable Sub | 13:03 | ||
| And then from there I have no idea how Parrot_get_namespace_keyed is supposed to work on a Sub (which is probably PMCNULL) in most cases | 13:05 | ||
| the more I look at this, the more I suspect this function only works by accident | 13:06 | ||
| NotFound_gf | whiteknight: some days I think that about the full parrot codebase. | 13:08 | |
| Today, for example. | 13:09 | ||
| whiteknight | NotFound_gf: no, there are several parts of it that make some sense. This absolutely does not | 13:10 | |
| Probably why this function has never been succesfully refactored, because it doesn't do what it claims to do, and then is broken on top of it | |||
| anyway, it's time to go. I'll fight with this nonsense later | 13:13 | ||
|
13:17
Hunger joined
|
|||
| darbelo starts thinking about adding some more dynops. | 13:28 | ||
|
13:33
hudnix joined
|
|||
| dalek | website: smash++ | call for Parrot foundation members applications | 13:37 | |
| website: www.parrot.org/news/call-parrot-fou...plications | |||
|
13:41
jsut_ joined
|
|||
| JimmyZ | 7,14 Oh hai | 14:18 | |
| 7,14 Oh hai | 14:20 | ||
| darbelo | o/ | 14:23 | |
|
14:42
Themeruta joined
|
|||
| dalek | kudo: 9085183 | jonathan++ | src/Perl6/Actions.pm: Tweak some name canonicalization/non-canonicalization bits for R[R[-]] style |
14:48 | |
| kudo: f2896c3 | jonathan++ | src/ (2 files): Rename notresults to negate, to be in line with S03. |
|||
| kudo: 8c14284 | moritz++ | src/core/Match.pm: [Match] .caps and .chunks |
|||
|
14:52
tetragon joined
|
|||
| dalek | kudo: ffb9a36 | pmichaud++ | build/Makefile.in: YOU_ARE_HERE wants to be last in the core setting (jnthn++). |
14:54 | |
|
15:28
patspam joined
|
|||
| dalek | kudo: c491a18 | pmichaud++ | src/core/operators.pm: Enable &prefix:<?> to work on foreign objects. |
15:35 | |
|
16:39
tcurtis joined
16:40
contingencyplan joined
|
|||
| dalek | rrot: r47110 | darbelo++ | branches/gsoc_nfg/src/string (3 files): Separate the grapheme-related definitions from other Unicode data. |
16:46 | |
| rrot: r47111 | darbelo++ | branches/gsoc_nfg/MANIFEST: Upate MANIFEST. |
|||
| rrot: r47112 | darbelo++ | branches/gsoc_nfg/src/string/grapheme.h: [CAGE] Add svn props. |
|||
| rrot: r47113 | jonathan++ | trunk/compilers/pct/src/PCT/HLLCompiler.pir: [pct] Allow compilers to implement a .backtrace method to produce their own format of backtrace to print in the event of an uncaught exception. If not, we just fall back to Parrot's own handling. |
17:19 | ||
| rrot: r47114 | tcurtis++ | branches/gsoc_past_optimization/t/library/pasttransformerdynamic.t: Fix changing node type test. |
|||
|
17:30
mariano joined
17:43
_shockwave joined
|
|||
| _shockwave | purl paste | 17:44 | |
| purl | somebody said paste was (see: nopaste) or like glue but a little safer to sniff. or nopaste.snit.ch:8001/ or scsys.co.uk:8001/ anywhere shadowpaste is or mmm, sticky paste or You there! Eating the paste. or <see> 2 girls, 1 paste or App::Nopaste or toxic for bots and humans | ||
| dukeleto | msg plobsing io_ops did not fix the problem | ||
| purl | Message for plobsing stored. | ||
| dukeleto | no, going to yapc::na 2010 is qw(jhannah rbuels cfedde apeiron dha nacmac dhoss mst chargrill kyriel triddle DrForr coke packy kolibrie colomon jasonmay arcanez dylan doy ology waltman autarch pmichaud atrodo) | 17:45 | |
| purl | okay, dukeleto. | ||
| _shockwave | Hello. | 17:47 | |
| dukeleto | shockwave: howdy | 17:48 | |
| shockwave | I had some code that used to work in 2.3 -- I just updated and it broke. I know where IMCC says it's broken, but I'm not sure why. | ||
| nopaste.snit.ch/20723?ln=on | |||
| Line 32 | |||
| I just updated from Trunk like 5 mins ago. | |||
| dukeleto | shockwave: bxors became a dynop | 17:49 | |
| shockwave: you will need .loadlib "bit_ops", i think | |||
| moritz | .loadlib 'bit_ops' or so | ||
| shockwave | I don't understand the difference. Is there a place that talks about what a dynop means? | ||
| dalek | parrot: 47b805f | dukeleto++ | ROADMAP: Cleanup the ROADMAP |
17:50 | |
| parrot: 30b49fc | dukeleto++ | Makefile: Always regenerate plparrot.h when compiling |
|||
| parrot: 71434f3 | dukeleto++ | Makefile: Regenerate headers when compiling |
|||
| parrot: 6da6549 | dukeleto++ | plparrot (2 files): Load io_ops, since many ops became dynops recently |
|||
| dukeleto | shockwave: yes, dynop = dynamically loadable opcode | ||
| moritz | shockwave: it's like a module that, when loaded, provides some new opcodes | ||
| shockwave | Oh, a 'dynop' is just something that has to be loaded. | ||
| moritz: yeah, you beat me to my guess :) | |||
| dukeleto | shockwave: dynop is like loading a perl 5 module that overrides builtin functions | ||
| moritz tries hard not beat people | |||
| dukeleto | shockwave: except certain non-core parrot opcodes were made dynops, so unless you load the dynop, they don't exist | 17:51 | |
| shockwave | In the docs page, is there a way to tell if something is a dynop, and if so, from where to load it... or is it generally a try/fail/ask kinda thing? | 17:52 | |
| moritz | shockwave: the deprecation document that comes with parrot 2.3 should list those that were planned to be (re)moved | ||
| shockwave | moritz. ok | 17:53 | |
| dukeleto | shockwave: there should be a nice doc that explains where they all are | ||
| shockwave: if there isn't, please make one :) | |||
| shockwave | I also see a bit.ops at the top the page. | ||
| Hopefully, there is a correlation between the location and that filename. | |||
| On more question, if you guys don't mind: What's the speed inpact on making things dynops, as opposed to built-in? | 17:54 | ||
| dukeleto | shockwave: en.wikibooks.org/wiki/Parrot_Virtua..._Libraries (slightly outdated but still useful) | ||
| moritz | shockwave: I generally search for an op in parrot's t/ directory, and see what .loadlib line the files include :-) | ||
| dukeleto | shockwave: foo.ops => .loadlib "foo_ops", i think | 17:55 | |
| shockwave: the .ops file is the source of what you .loadlib, if that makes sense | |||
| shockwave | Yep. Thanks alot, guys. I appreciate the thorough help. | 17:56 | |
|
18:05
particle joined
|
|||
| shockwave | Hey, guys. Thanks for the help, again. | 18:06 | |
| The program is running fine again. | |||
| But, now I'm wondering. Where are these libraries located? | |||
| When I distribute the application, is having libparrot enough? | |||
| dukeleto | shockwave: they are installed with an installed parrot | 18:07 | |
| shockwave | dukeleto: So, when I distribute my app using parrot... I'll be distributing other .dlls besides libparrot.dll? | ||
| dukeleto | Would any PaFo members like to nominate me for the PaFo board? I think I have coke++ as my first nomination, need one more. | ||
| shockwave: good question, not sure | 18:08 | ||
|
18:09
japhb joined
|
|||
| shockwave | Ok. I see something at runtime/parrot/dynext which is full of DLLs matching some of the names I just used. My guess that's it. | 18:09 | |
| dalek | kudo: 46e2b53 | jonathan++ | build/PARROT_REVISION: Bump to latest Parrot to get a fix and an improvement. |
18:12 | |
| kudo: 6afdfbd | jonathan++ | src/metamodel/RoleToRoleApplier.nqp: Stringify methods to get the name rather than .name them; we do that in other |
|||
| cotto | dukeleto, yes | 18:13 | |
|
18:19
jsut joined
|
|||
| dalek | kudo: 9de1eba | moritz++ | src/builtins/ (2 files): use Perl 6 arrays in Match objects |
18:24 | |
|
18:28
shockwave left
|
|||
| dukeleto | cotto++ | 18:33 | |
|
18:39
plobsing joined
|
|||
| dalek | kudo: 401d2d0 | moritz++ | src/core/Match.pm: remove workarounds in Match.caps |
18:41 | |
| kudo: 418e795 | moritz++ | src/core/Match.pm: remove an outdated comment in Match.pm |
18:59 | ||
|
19:10
joeri joined
|
|||
| dalek | p-rx: 416e5b4 | moritz++ | (2 files): match objects should never have negative .chars, even if the match fails |
19:19 | |
|
19:21
whiteknight joined
|
|||
| darbelo resists the urge to completely break strings. | 19:26 | ||
| cotto | You're normally so enthusiastic about that sort of thing. | 19:28 | |
| darbelo | Yeah, but I'd rather get the grapheme tables working first. | 19:29 | |
| Once I get that out of the way... parrot_string_t is going to get pruned. | 19:31 | ||
| dalek | rrot: r47115 | tcurtis++ | branches/gsoc_past_optimization (2 files): Fix issue in pastcompare and add test for deleting nodes with PAST::Transformer::Dynamic. |
19:32 | |
| darbelo | I think I can make that two (maybe three) pointers smaller. | 19:35 | |
|
19:38
Andy joined
|
|||
| dalek | rrot: r47116 | darbelo++ | branches/gsoc_nfg/src/string/encoding/nfg.c: Try to pre-normalize incoming strings as much as possible. |
19:48 | |
| cotto | ops2c is quite a bit faster after the ops cull | 19:49 | |
| plobsing++ | |||
| plobsing | heh. you're probably the only person happy about that right now | ||
| cotto | You're just uncovering existing problems. | 19:50 | |
| better sooner than later | |||
|
20:11
LoganLK joined
20:21
particle joined
|
|||
| dalek | kudo: c0bcaf0 | moritz++ | t/spectest.data: run another S05 spectest file |
20:27 | |
| kudo: e6dfd1d | moritz++ | (2 files): implement smartmatching of arrays and hashes against regexes; add a few more |
|||
|
20:37
whiteknight joined
|
|||
| tcurtis | pmichaud: I'm about to leave the house, so I won't be able to read your response to this until a while later. First: a question, would it be acceptable if I included a summary of our conversation from Thursday in my next blog post? | 20:42 | |
| pmichaud: Second: concerning the idea of PCT-like grammars for PAST optimizations, a key difference is that with optimization, your input is already structured in such a way that some transformations will be valid regardless of where in the tree they're performed, so long as they are operating on a subtree with certain characteristics. | |||
| pmichaud: So, unlike grammars where you have a top-level rule that builds upon other rules that match portions of the desired result, you have a number of generally independent(though possibly sometimes affected in effectiveness by order ran) rules. | |||
| pmichaud: Optimization "grammars" being similar in basic structure to PCT grammars is still appealing, but "grammar" might not be the best name. What do you think? | |||
| dalek | kudo: f514389 | moritz++ | t/spectest.data: re-enable 4 test files |
20:44 | |
| whiteknight | interp->HLL_namespace is a hash, not a namespace | 21:02 | |
| and interp->class_hash is a namespace, not a hash | 21:03 | ||
| I love this code with all my heart | |||
|
21:08
mariano joined
|
|||
| cotto | Not that it invalidates your point, but interp->HLL_namespace looks more like an rpa | 21:08 | |
| whiteknight | oh, right. sorry. HLL_namespace is an RPA | 21:09 | |
| what is also boggling my mind is that code is using a namespace PMC as a key to look up a namespace in a namespace | |||
| like, you can't use a Key or an RSA for the purpose? | 21:10 | ||
| cotto | seriously? | ||
| purl | is that for real? | ||
| whiteknight | check out src/oo.c, the block starting around line 206 | 21:11 | |
| cotto | not that I'm very surprised, but wow | ||
| whiteknight | I took out the special case "this is a hack" code, and the first type that came through there and threw an exception was NameSpace | ||
| and that lovely bit of magic is happening inside pbc_to_exe.pir | 21:12 | ||
| dalek | kudo: 5c62b61 | moritz++ | (2 files): implement Match.perl; fix Match.ast to return Any if not set (not Undef) |
21:25 | |
|
21:25
chromatic joined
|
|||
| chromatic | Anyone want to remove some 35-40% of opcodes without losing any features? | 21:26 | |
| cotto | What's the catch? | ||
| purl | the catch is the new laptop comes with a metal rod in the side that pops out. You set the CPU speed by adjusting a metallic slider on the rod. | ||
| chromatic | Step one: make all register numbers in PBC signed. | ||
| Step two: make all references to constants (INTVAL, STRING, NUM, PMC) negative offsets in the constant tables. | 21:27 | ||
| Step three: update the register access macros to check for negative register indices and look in the constant tables. | |||
| Step four: remove all _ic, _pc, _nc, _sc opcodes. | |||
| Step five: look, the ops fit better in the icache! | |||
| sorear | But you pay for it with bigger register access code and more conditional branches. | 21:28 | |
| plobsing | chromatic: that's why I want to add constant unfolding to IMCC | ||
| chromatic | Constant unfolding? | 21:29 | |
| plobsing | add_i_ic_ic becomes set_i_ic set_i_ic add_i_i_i | 21:30 | |
| opposite of constant folding | |||
| note that your proposal doesn't quite fit with the fact that intval constants are currently inlined in bytecode | |||
| although I think it is a good way forward | 21:31 | ||
| sorear | How about subtyping? If IMCC sees an ic value, but the only instruction variant is p, it automatically generates coercion code | 21:33 | |
| plobsing | sorear: that is the exact *opposite* of the direction we want IMCC to go. IMCC should become *less* smart | ||
| sorear | It's worse than constant unfolding? | 21:34 | |
| plobsing | it is somewhat equivalent except it now has to deal with HLL mappings | ||
| sorear | ah, yes | 21:35 | |
| plobsing | also what happens when an HLL mapped Integer addition calls low-level INTVAL addition with constants? infinite recursion. | ||
| whiteknight | --no-line-directives doesn't appear to be having any effect when I pass it to Configure.pl | 21:36 | |
| plobsing | auto-coercing in non-obvious places is unintuitive | ||
| whiteknight | ...which is really really screwing up my debugging | ||
| plobsing | I am currently working on getting dynext's to play nice together in PBC, but if you'd like I could switch over and work on getting the unfolding working. Then it would be a SMOP to get opsc to not emit constant variants of all but a select few, specially marked ops. | 21:45 | |
| cotto | dynexts are probably more important atm | 21:46 | |
| nothing's on fire because we have too many constant variant ops | |||
| plobsing considers adding an hcf_ic op to prove cotto wrong | 21:47 | ||
| cotto | We used to have an hcf op. I was sad to see it go. | ||
| plobsing | resurect it as a dynop! | ||
| sorear | cotto: what did it do? | 21:49 | |
|
21:51
bubaflub joined
|
|||
| cotto digs | 21:51 | ||
| It called abort(). | 21:54 | ||
| and it was a dynop | 21:55 | ||
| trac.parrot.org/parrot/ticket/790 | |||
| dalek | kudo: 9581e6a | moritz++ | src/core/Match.pm: fix Match.caps again; I have no idea why it's a fix, but it is. Weird. |
22:00 | |
| sorear | cotto: trac.parrot.org/parrot/changeset/28001 | 22:01 | |
| plobsing | an advantage of constant unfolding over magical negative registers are constant indices: it makes the meaning of ops simpler for anything that analyses PBC (JIT, dumper, pbc_to_pbc optimizer, etc) | 22:02 | |
| chromatic | I'm not sure about it. | 22:04 | |
| I'd like to see benchmarks and example code. | |||
| plobsing | Not sure about it being simpler or not sure about whether it is worthwhile? | 22:05 | |
| chromatic | Both. | 22:06 | |
| Simpler is easier to believe. | |||
| plobsing | the first I think I can demonstrate right now. the second will take some work. | 22:07 | |
| chromatic | One lesson from Perl 5 is that the more ops you dispatch, the slower your program goes. | ||
| There's no linear correspondence, but there's a strong correlation. | |||
| plobsing | I'll agree with that. And for hot ops, I think it would be a good idea to have constant variants | 22:08 | |
| but making every op handle both const and non-const arguments adds complexity to the behaviour of each op | |||
| this complexity shows up not only in the code for running the op, but also in all code that analyses ops, which must now check for negative arguments in analysing what the ops mean | 22:09 | ||
| chromatic | Are you suggesting that we should make only a few ops handle constants? | 22:12 | |
| plobsing | yes. | ||
| chromatic | That seems workable. | ||
| whiteknight | this src/oo.c code is basically intractable | 22:22 | |
| trying to fix this, I've seen almost every exception in the book, segfaults, and now miniparrot hangs | 22:26 | ||
| this code is so stupid, and everything in the world relies on the stupidity in extremely weird ways | 22:32 | ||
| forget it, dinner time | 22:34 | ||
| purl | whiteknight, I didn't have anything matching it, dinner time | ||
|
22:39
jrtayloriv joined
|
|||
| jrtayloriv | 6 | 22:40 | |
| jrtayloriv oops! ... joins #perl6 as he initially intended | |||
|
23:00
Psyche^ joined
23:24
davidfetter joined
|
|||
| dalek | rrot: r47117 | jonathan++ | trunk/src/ops (2 files): [core] First step towards trying to get some better annotations returned by .backtrace(). We rely on the context's ->current_pc pointer to know a context's current code location but never actually update it (unless we're in the profiling core) other that at sub entry. Makes some sense, since it'd cost us to do it every op. Doing it before an invoke, however, is enough to ensure that we know the callsite location, which is a big improvement to the back |
23:40 | |
|
23:48
lucian_ joined
|
|||