|
#parrot Parrot 2.2.0 "Like Clockwork" Released! | parrot.org/ | Channel log: irclog.perlgeek.de/parrot/today | Priority: fix line number annotations | Finish GSoC applications Set by moderator on 6 April 2010. |
|||
|
00:00
ruoso joined
|
|||
| cotto | build looks good | 00:00 | |
| well, noisy but not broken | |||
| dalek | rrot: r45489 | gerd++ | trunk (3 files): Initial work to generate a PDF file as Parrot book from POD files. The first version has only two chapters from two POD files. It works not on Windows because it use "sed". |
00:06 | |
| rrot: r45490 | gerd++ | trunk/MANIFEST: Update MANIFEST to hold new files |
|||
| cotto | Hmmm. Some tests fail. | 00:16 | |
| plobsing | yeah, looks like a bunch of places are depending on null strings being NULL | 00:18 | |
| cotto | I'm pretty sure that's a bug now. | ||
| sounds like it'll be annoying to fix though | 00:19 | ||
| plobsing | I already fixed t/op/globals.t | ||
| cotto | It'd be a good idea to see how some HLLs do with that change. | 00:26 | |
| plobsing | hmmm... good point | ||
| I'll start a branch | |||
|
00:30
khairul joined
00:43
kid51 joined
|
|||
| dalek | rrot: r45491 | plobsing++ | branches/stringnull: creating branch to make STRINGNULL the null string representation in PIR |
00:55 | |
|
01:07
snarkyboojum joined
01:08
snarkyboojum left
|
|||
| cognominal | cognominal pasted "I added the missing pair syntaxes in nqp" at paste.lisp.org/display/97593 | 01:13 | |
|
01:17
GodFather joined,
Andy joined
|
|||
| dalek | rrot: r45492 | plobsing++ | branches/stringnull/src (3 files): make null $Sx set $Sx to stringnull |
01:29 | |
| Whiteknight | plobsing: I think chromatic is going to be very happy with this! | 01:31 | |
| dalek | rrot: r45493 | petdance++ | trunk (2 files): fixing consting on args. Localized some vars. |
01:46 | |
| rrot: r45494 | plobsing++ | branches/stringnull/src/hash.c: make hash keys respect stringnull as null |
|||
| cotto | plobsing, lwn.net/Articles/315686/ might be of interest if you'll need to change a large amount of code. | 01:50 | |
| "Coccinelle is a tool to automatically analyze and rewrite C code." | |||
| plobsing | cotto: sounds cool, but I've already got fulltest passing (ignoring distro tests currently failing in trunk) | 01:52 | |
| cotto | That doesn't mean you've found all the code that needs patching. ;) | ||
| but good jorb | |||
|
01:57
hercynium joined
01:59
kid51 joined
|
|||
| dalek | rrot: r45495 | plobsing++ | trunk (3 files): correct PDF book tools wrt distro_test |
02:02 | |
|
02:03
bubaflub joined
|
|||
| Whiteknight | dukeleto: ping | 02:16 | |
| cotto: that coccinelle thing looks awesome | 02:24 | ||
| cotto | Yeah. It'd take some of the sting out of making big changes to lots of parts of Parrot. | 02:29 | |
|
02:30
mikehh joined
|
|||
| cotto | and if you want an excuse for some ocaml hacking, there it is | 02:33 | |
|
03:02
ash_ joined
|
|||
| dalek | rrot: r45496 | petdance++ | trunk (2 files): updating annotations |
03:07 | |
| kid51 | Coccinelle (23 August 1931ļæ½9 October 2006) was a French transsexual actress and entertainer. Hers was the first widely publicized sexual reassignment case | 03:11 | |
| Andy | Hooray for today's fun non-sequitur! | 03:13 | |
| dalek | rrot: r45497 | petdance++ | trunk/include/parrot/embed.h: removed function declarations for functions that no longer exist |
03:24 | |
| rrot: r45498 | petdance++ | trunk/include/parrot/gc_api.h: removed function declaration which is already in another file, properly headerized |
|||
| cotto | Yeah. That's not the one I'm interested in. | 03:29 | |
|
03:38
janus joined
|
|||
| dalek | rrot: r45499 | petdance++ | trunk/src/scheduler.c: consting |
04:14 | |
| ttbot | Parrot trunk/ r45500 MSWin32-x86-multi-thread make error tt.taptinder.org/file/cmdout/258074.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) | 04:26 | |
| dalek | rrot: r45500 | petdance++ | trunk (4 files): removed duplicated function declarations from interpreter.h. Pointed source files at runcore_api.h if they needed one of the removed declarations |
04:30 | |
|
04:38
jsut_ joined
04:52
eternaleye joined
|
|||
| Andy | Any windows folks who can help me with this? | 05:02 | |
| I've got builds only failing on windows | |||
| ttbot | Parrot trunk/ r45501 MSWin32-x86-multi-thread make error tt.taptinder.org/file/cmdout/258144.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) | 05:03 | |
| dalek | rrot: r45501 | petdance++ | trunk (5 files): more funcation annotations |
05:05 | |
| Andy | never mind, function wasnt' tagged as PARROT_EXPORT | 05:10 | |
| cotto | What'd be the best place for pir-level line number tests? | 05:18 | |
|
05:20
chromatic joined
|
|||
| dalek | rrot: r45502 | petdance++ | trunk (2 files): dynop_register has to be PARROT_EXPORT. |
05:21 | |
| rrot: r45503 | petdance++ | trunk/include/parrot/io.h: removing unused macros and function declarations |
|||
| rrot: r45504 | petdance++ | trunk/src/spf_render.c: consting |
05:38 | ||
| Andy | ok bed time | 05:46 | |
| purl | well, bed time is probably a good idea | ||
| sorear | hmm. chromatic's updates make me want to time a rakudobuild | 06:02 | |
| chromatic | Around 2:30 for me now, with a parallel build. | 06:03 | |
|
06:13
fperrad joined
|
|||
| dukeleto | 'ello | 06:14 | |
| bubaflub | ello dukeleto. burning the midnight oil? | 06:15 | |
| sorear | chromatic: What do you mean by coalescing constant strings being a "huge memory win"? | 06:16 | |
| How big is huge? | |||
| Are there 100MB of constant strings being created.... somewhere? | 06:17 | ||
| Austin | sorear: The PCT stuff makes *lots* of copies of tokens and matching substrings. | 06:18 | |
| ... blah blah ... := PAST::NodeOfSomeKind.new( :node( ~ $/ ) ... ) | |||
| chromatic | I profiled loading Perl 6's all PBC, and 90% of the strings were duplicates. | 06:19 | |
| sorear | chromatic: yeah, but how many strings are there? 50k? | 06:21 | |
| chromatic | Let me check. | ||
| plobsing | chromatic: can you explain what is involved in Fix freeze/thaw of complex PMCs? | 06:22 | |
| chromatic | Looks like 327,566 strings get thawed from PBC to run "Hello, world!" in Perl 6. | ||
| plobsing, pmichaud knows better, but freezing something like a CallSignature PMC which contains other PMCs, or a hash or something. Sometimes that's not reliable. I don't know of a good test case. | 06:23 | ||
| Perhaps Jonathan or someone else in #perl6 knows what they need more. | |||
|
06:24
fperrad_ joined
|
|||
| Austin | sorear: Std.pm is 121k, with 22k words. | 06:27 | |
| plobsing | chromatic: regarding using a HoS for config, I've got Hash freeze/thaw working for more types including String => String, now the only blocker is a representation for Undef | 06:28 | |
| chromatic | The more relevant question is "How many unique words are there in the generated PIR?" | ||
| I saw that, that looks very good. | |||
| plobsing | when I got 'null $Sx' more or less working, I saw a 1/6 reduction in size on the fpmc | 06:29 | |
| chromatic | I wonder if that'd work on other PBCs. | 06:36 | |
| dukeleto | i am learning how to abuse parrot strings | ||
| i am using Parrot_str_to_cstring to get a C string representation of a Parrot_String, but I want to return that to Postgres. do i just need to make a copy of the value of the string and then call Parrot_str_free_cstring on the original ? | 06:39 | ||
| or is it more complicated? | |||
| chromatic | *Something* has to free the return value of Parrot_str_free_cstring(). Parrot won't do it for you automatically. | 06:41 | |
| sorear | str_to_cstring just returns a malloc-ish allocated value | 06:42 | |
| blizkost mixes it freely with mem_sys_free | |||
| (blizkost probably needs to be fixed here, but it works fine for now) | |||
| chromatic: Aha, so string uniqing is not so much a runtime memory issue as a startup time issue. | 06:43 | ||
|
06:43
allison joined
|
|||
| allison | dukeleto: how do I view the full text of a soc proposal? | 06:46 | |
| chromatic | Yes and no; the fewer strings allocated overall the fewer the GC has to trace/sweep. | ||
| dukeleto | strcpy segfaults when I try to copy the string that str_to_string gives me | 06:47 | |
| chromatic | Besides that, if Parrot's already interned one of those strings, anything that tries to allocate one of them at runtime won't do anything other than look it up in the cache. | ||
| dukeleto | allison: you should be able to login at socghop.appspot.com/ | ||
| allison | dukeleto: yah, done that | ||
| dukeleto: but it only shows me a spreadsheet of titles and proposers | |||
| dukeleto: no descriptions | 06:48 | ||
| dukeleto | allison: i am looking at it now | ||
| chromatic | Maybe you're not a registered mentor, allison? For some reason I'm not either. | 06:49 | |
| dukeleto | allison: it used to work that clicking on the row brought you to the full proposal | 06:50 | |
| chromatic: you should be a registered mentor | |||
| chromatic | I signed up, but then someone sent me a new registration and I wandered off and closed my browser eventually so I have no idea. | ||
| allison | dukeleto: (I also can't vote or add myself as a mentor to a proposal) | ||
| dukeleto | i think melange is hosed right now | 06:51 | |
| i can't seem to click on any rows of the admin pages | |||
| i think the overload of the student deadline today probably has it hosed | |||
| allison | chromatic: I know I'm registered as a mentor, because the menu gives me the option to "Resign as Mentor" | ||
| dukeleto: that makes sense, I'll try again later | 06:52 | ||
| dukeleto | allison: if the problem persists, let me know | ||
| allison | dukeleto: (some of the students email their proposals to parrot-dev, but not all) | ||
| dukeleto: will do, thanks | |||
| dukeleto | allison: yes. i think we got at least 5 or 6 parrot proposals | 06:53 | |
| cotto | Wow. wtg melange | ||
| We have 7 Parrot-specific proposals. | |||
| dukeleto | i am asking about it in #gsoc on freenode | 06:54 | |
| cotto | Yeah. This is a bad time for Melange to be stupid. | 06:55 | |
| chromatic | Maybe Ken Mauer wrote it. | ||
| dukeleto | evidently this is a known bug in melange | 06:58 | |
| cotto | I'd hope some would notice it. | 06:59 | |
| dukeleto | evidently the direct link can be URL-hacked | ||
| hopefully they will fix it soon. i doubt it is a priority though | 07:01 | ||
| back to my abuse of Parrot strings | |||
| trying to returns strings from Parrot back to Postgres has left a lot of core files on my filesystem | 07:02 | ||
| should I be using _COW functions? | |||
| chromatic | That depends on how you're returning them and what you're doing with them. | 07:03 | |
| dukeleto | chromatic: github.com/leto/plparrot/commit/4a0...783e17dbca | 07:05 | |
| chromatic | You shouldn't need the strcpy. | 07:06 | |
| dukeleto | chromatic: i didn't think so. it was a last ditch. | ||
| chromatic: but i just realized i defined copy incorrectly | 07:07 | ||
| chromatic: it segfaults in a memcpy deep in postgres core if I don't strcpy | |||
| chromatic | That I can't explain. It's just a malloced string. | 07:08 | |
| dukeleto | chromatic: what do I do about free'ing the cstring ? | 07:10 | |
| chromatic: i need to return a copy of it to Postgres, which never "returns" | 07:11 | ||
| chromatic: none of that stuff seems to have tests | 07:12 | ||
| chromatic | Something has to free that string. If you strcpy() a string and send it to Postgres, Postgres has to free it too. | ||
| dukeleto | hmmm. i guess i need to see how the other PL's do this | 07:15 | |
| chromatic | Parrot_str_to_cstring() returns a malloced, NULL-terminated C string. There's nothing special about that. | 07:17 | |
| dukeleto | PL/Perl uses SvPV(x, PL_na) and then returns that to Postgres, without free'ing | 07:18 | |
| chromatic | SvPV returns a pointer to an allocated string. | 07:19 | |
| sorear | SvPV returns a pointer directly into the Perl5 allocated string object | ||
| chromatic | No copy there. | ||
| sorear | it will become invalid if the string is modified in any way that could lengthen it or add non-8-bit characters | ||
|
07:20
szabgabx joined
|
|||
| sorear | possibly relevant: all perl5 scalars which are dual-use become dualvars. $x = 2; print $x; # $x now has a valid string pointer, which is every bit as authoritative as the integer value | 07:21 | |
| dukeleto | i think there is some PG magic sausage that I am not cooking correctly | 07:22 | |
| chromatic | Does print really set POK? do_print() checks IOK. | 07:23 | |
| Devel::Peek says otherwise. | 07:24 | ||
| sorear | "$x" then | 07:26 | |
| I was looking for the simplest example of a stringifying function | |||
| dukeleto | i think the parrot side of things is OK, and I am wading through a mucky swamp of Postgres right now. Not out of the woods yet | 07:27 | |
| chromatic | I just wrote a section on coercions for Modern Perl, and I hoped I had the automatic dualvars stuff right. | 07:28 | |
| sorear | rakudo build finished in 16m real 13m user | 07:35 | |
|
08:19
tcurtis joined
08:37
snarkyboojum joined
09:04
JimmyZ joined
09:10
jrtayloriv joined
09:19
lucian joined
09:41
payload joined
09:43
payload1 joined,
payload joined
09:44
payload1 joined
|
|||
| dalek | rrot: r45505 | mikehh++ | trunk/tools/docs/filename_and_chapter.pl: fix perlcritic failures - shebang line, use strict/warnings, add coda and remove hard tabs |
09:52 | |
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#33098), fulltest) at r45506 - Ubuntu 10.04 beta amd64 (gcc with --optimize) | 10:05 | |
| dalek | rrot: r45506 | mikehh++ | trunk/tools/docs/book-to-latex.pl: fix perlcritic failures - shebang line, add use warnings, add coda |
10:09 | |
|
10:35
Whiteknight joined
|
|||
| Whiteknight | good morning, #parrot | 10:53 | |
|
12:08
payload joined,
Coke joined
12:10
kid51 joined
|
|||
| kid51 | What is this "melange" everybody is talking about? | 12:11 | |
| bacek | kid51, "spice" from Herbert's Dune? :) | 12:17 | |
| Whiteknight | kid51: the web interface software for the google SOC program | ||
|
12:50
kid51 joined
|
|||
| kid51 thinks a script at github.com just crashed his computer | 12:51 | ||
|
13:21
payload joined
|
|||
| bacek | msg chromatic If you can take care about str_replace/str_append on immutable string branch it will be very helpful. I'm cleaning charset/encodings atm. | 13:35 | |
| purl | Message for chromatic stored. | ||
|
13:36
payload joined
|
|||
| dalek | rrot: r45507 | bacek++ | branches/immutable_strings_part1/src/string/api.c: Add helper clone_string function |
13:41 | |
| rrot: r45508 | bacek++ | branches/immutable_strings_part1 (2 files): Merge str_chopn_inplace with str_chopn |
|||
| rrot: r45509 | bacek++ | branches/immutable_strings_part1 (5 files): Remove inplace versions of case-changing functions |
13:42 | ||
| rrot: r45510 | bacek++ | branches/immutable_strings_part1/src/string/api.c: Remove redundant calls to make_writeable. It's freshly allocated STRING with enough storage. |
|||
| rrot: r45511 | bacek++ | branches/immutable_strings_part1 (2 files): Make clone_string public. It will be useful in charset/encoding |
|||
| rrot: r45512 | bacek++ | branches/immutable_strings_part1/src/library.c: Remove redundant usage of Parrot_str_copy |
|||
| bacek | msg chromtic Also, all function documentation require some love. | 13:44 | |
| purl | Sorry, I've never seen chromtic before. | ||
|
13:51
szabgabx joined
13:54
Andy joined
|
|||
| dalek | rrot: r45513 | bacek++ | branches/immutable_strings_part1/src/string/encoding (2 files): Don't update string inplace in encoding manipulations |
13:58 | |
| rrot: r45514 | bacek++ | branches/immutable_strings_part1/src/string/charset (6 files): Don't update string inplace in charset manipulations |
|||
| rrot: r45515 | bacek++ | branches/immutable_strings_part1 (6 files): Remove inplace version of charset/encoding functions |
|||
| rrot: r45516 | bacek++ | branches/immutable_strings_part1/src/string/charset (2 files): Rerun headerizer |
|||
|
14:01
ash_ joined
|
|||
| ash_ | neat blog post on the llvm blog.llvm.org/2010/04/intro-to-llvm...oject.html | 14:20 | |
|
14:28
tetragon joined
14:44
ash_ joined
14:45
mj41_ joined
14:46
particle1 joined
|
|||
| dalek | rrot: r45520 | bacek++ | branches/immutable_strings_part1/src/string/encoding/ucs2.c: Remove ucs2 inplace functions. |
14:47 | |
| rrot: r45521 | bacek++ | branches/immutable_strings_part1/src/string/encoding/utf16.c: Remove utf16 inplace functions |
|||
| rrot: r45522 | bacek++ | branches/immutable_strings_part1/src/string/encoding/utf8.c: Update utf8.to_encoding. Remove inplace functions. |
|||
| rrot: r45523 | bacek++ | branches/immutable_strings_part1/src/string/encoding/ucs2.c: Update ucs2.get_codepoints. |
|||
| rrot: r45524 | bacek++ | branches/immutable_strings_part1/src/string/api.c: Add WARN_UNUSED_RESULT to str_replace. |
|||
| rrot: r45525 | bacek++ | branches/immutable_strings_part1/src/string/api.c: Initial reimplementation of str_replace |
|||
| rrot: r45526 | bacek++ | branches/immutable_strings_part1/src/string/api.c: Update str_append to allocate new string. |
14:48 | ||
| rrot: r45527 | bacek++ | branches/immutable_strings_part1/src/string/encoding/utf16.c: Allocate result early in utf16.to_encoding. |
|||
| rrot: r45528 | bacek++ | branches/immutable_strings_part1/src/string/api.c: Properly clone string (including charset/encoding). |
|||
| rrot: r45529 | bacek++ | branches/immutable_strings_part1/src/string/api.c: Copy original string fields into dest in str_replace. |
|||
|
14:49
mikehh joined
14:50
betterwosld joined
14:53
PerlJam joined,
patspam joined
14:54
magnachef joined
14:55
TimToady joined
14:56
s1n joined,
Mokurai joined
14:58
NotFound joined
15:01
knewt joined
|
|||
| dalek | rrot: r45530 | bacek++ | branches/immutable_strings_part1/src/string/api.c: Fix typo - copy memory into dest, not src. |
15:20 | |
| rrot: r45531 | bacek++ | branches/immutable_strings_part1/t/op/string.t: Remove useless test. |
|||
|
15:37
clinton joined,
purl joined,
solarion_ joined,
confound joined,
Coke joined,
eternaleye joined,
silug joined,
rbuels joined,
Austin joined,
cotto_work joined,
dngor joined,
bacek joined,
cosimo joined,
wagle joined,
PacoLinux joined,
GeJ joined,
estrabd joined,
treed joined,
Infinoid joined,
Tene joined,
bacek_at_work joined,
baest joined,
sri joined,
nopaste joined,
Hunger joined,
he joined,
dukeleto joined,
TiMBuS joined,
slavorgn joined,
athomason joined,
eiro_ joined,
sorear joined
|
|||
| bacek | opbots trust sorear | 15:50 | |
| slavorg | Ok | ||
| slavorgn | Ok | ||
| darbelo | trust no one. | 15:51 | |
| dalek | rrot: r45532 | bacek++ | branches/immutable_strings_part1 (2 files): Resurrect str_copy |
15:53 | |
| rrot: r45533 | bacek++ | branches/immutable_strings_part1/src/string (5 files): Use Parrot_str_copy in case of sharing buffer |
|||
| rrot: r45534 | bacek++ | branches/immutable_strings_part1/src/ops/set.ops: Clone string in op clone. |
|||
|
16:09
theory joined
|
|||
| dalek | rrot: r45535 | bacek++ | branches/immutable_strings_part1/src/ops/string.ops: HACK to enable Test::More to run |
16:09 | |
|
16:09
Whiteknight joined
|
|||
| darbelo | That... didn't go well for coretest. | 16:18 | |
| We need to explain to our strings that when they don't have a buffer faking it is a bad idea. | 16:19 | ||
| Whiteknight | our strings are too stupid to explain things to them | 16:21 | |
| darbelo | I know some very didactic uses of a hacksaw. | 16:22 | |
|
16:25
tcurtis joined
|
|||
| Whiteknight | good afternoon, tcurtis | 16:26 | |
| tcurtis | Good afternoon. | 16:27 | |
| Whiteknight | tcurtis: where do you go to school? | 16:28 | |
| tcurtis | My high school? Camden Central High School in Camden, TN. University? starting at the University of Chicago this fall. | 16:30 | |
| Whiteknight | nice | 16:31 | |
| I read camden and I thought you were near me | 16:34 | ||
| but, no such luck | 16:35 | ||
| darbelo | Say, how many proposals did TFP get in the end? | 16:43 | |
| tcurtis | Afraid not, Whiteknight. | 16:44 | |
| allison | darbelo: looks like 23 | ||
| Whiteknight | darbelo, 24 | ||
| allison | darbelo: but we won't know how many we'll be funded for until next week | 16:45 | |
| darbelo: usually around 8 | |||
| Whiteknight | some of the best propoals were for parrot, I think | 16:46 | |
| allison | Whiteknight: agreed | ||
| Whiteknight: but, we're only 7 of the total proposals | 16:47 | ||
| Whiteknight | true | ||
| it will be heartbreaking if we have to say no to some of these | |||
| cotto | Are we planning on having PaFo as a separate org next year? | ||
| darbelo | It's good to hear that parrot has the best proposals, but kind of sad for the rest of the perl community. | ||
| cotto | There are some good-looking perl and Rakudo proposals too. | 16:48 | |
| s/perl/perl 5/ | |||
| Whiteknight | allison: two students submitted two proposals, so we really only have 5 | 16:49 | |
| darbelo | OTOH, I can see how it'd be difficult to think of something that isn't already in the CPAN ;) | 16:50 | |
|
16:50
TiMBuS joined
|
|||
| Whiteknight | ...and traitor darbelo could get acceptd by another org | 16:50 | |
| :) | |||
| darbelo | My prefference is on this one, if it makes you feel better. | 16:51 | |
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#33104), fulltest) at r45535 - Ubuntu 10.04 beta i386 (gcc with --optimize) | 16:53 | |
|
16:54
chromatic joined
|
|||
| ash_ | Whiteknight: in my nq-nqp i got scopes working and some basic object support, so i'll be trying to implement code generation next for basic ops (like + - * /) | 16:55 | |
| Whiteknight | ash_: no | 16:56 | |
| ... | |||
| ash_ | ? | ||
| Whiteknight | ash_: nice | ||
| (my brain is retarded today) | |||
| dalek | rrot: r45536 | mikehh++ | trunk/src/pmc/hash.pmc: add some casts to get src/pmc/hash.pmc to build with g++ |
17:15 | |
|
17:15
Andy joined
|
|||
| dalek | rrot: r45537 | darbelo++ | trunk/src/gc/alloc_resources.c: Remove some dead code that was previously wrapped in '#if 0' |
17:31 | |
| tcurtis | cotto: should I answer your questions here on IRC or in a comment on my proposal? | 17:32 | |
|
17:34
Andy joined
17:39
ash_ joined
17:46
Andy joined
|
|||
| dalek | rrot: r45538 | mikehh++ | trunk/src/pmc/hash.pmc: last commit made line length too long |
17:48 | |
| darbelo | Whiteknight: ping | 17:53 | |
| tcurtis | cotto: I went ahead and answered in a comment on my proposal. | 18:00 | |
| Whiteknight | darbelo: pong | 18:02 | |
| tcurtis++ | |||
| darbelo | Whiteknight: Do you know why is the STRING structure a superset of the Buffer one? | 18:03 | |
| chromatic | Uniformity of treatment in the GC, I thought. | 18:05 | |
| Whiteknight | darbelo: everything gets cast to a Buffer in the GC, so we can access the flags pointer | ||
| cotto | tcurtis, that's the best idea | ||
| It's nice that proposals are clickable again. | 18:06 | ||
| darbelo | Ok. Then strings that lack a backing buffer shouldn't fake one, right? | 18:07 | |
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#33107), fulltest) at r45538 - Ubuntu 10.04 beta i386 (g++ with --optimize) | ||
| chromatic | Right. | 18:10 | |
| darbelo | That might require some work. I just made external strings set their _bufstart pointyer to NULL and a number of places went kaboom. | 18:13 | |
| Biggest one was freeze/thaw, since it assumed that casting a STRING into a Buffer was a valid conversion strategy. | 18:15 | ||
|
18:18
iblechbot joined
18:19
tcurtis left,
tcurtis joined
|
|||
| tcurtis | Coke: just noticed the message(mostly because I didn't know how to check it). That's a good point. On a related note, a PAST optimization framework should probably include a way to disable expensive optimizations for eval()(although TCO should probably always be applied) and similar situations where the time saved by the optimizations might be less than the time spent applying them. | 18:29 | |
| chromatic | Agreed. | ||
| Whiteknight | tcurtis: have you seen the optimization system used by LLVM? | ||
| each optimization stage is an object, and they get added in explicitly | 18:30 | ||
| tcurtis | I haven't personally used it, but I have looked at it a little and was planning to look at it more thoroughly for inspiration. | ||
| darbelo | Whiteknight: We already have a way to insert arbitrary stages into the souce->PAST->POST->PIR translation. | 18:32 | |
| tcurtis | darbelo: more info on this, please? | 18:33 | |
| darbelo | The POD in HHLCompiler has a good explanation fo the basic idea. | 18:35 | |
| chromatic | There's something in HLLCompiler that lets you register... that. | ||
| darbelo | addstage() IIRC. | ||
| chromatic | That sounds right. | 18:36 | |
| darbelo | What we don't have is good library for handling PAST trees and transforming them. | 18:38 | |
| ash_ | tcurtis: have you read the dragon book? chapters 6, 8, and 9 would probably be useful for your project, they talk about some nice things that would be worth implementing at the PAST level (things like dead code elimination, constant propagation, etc.) | 18:39 | |
| chromatic | The library and its API is the most important part. | ||
| tcurtis | ash_: I haven't yet, but if my proposal gets funded, I plan to use some of the initial money to buy some relevant books. The dragon book would probably be a pretty good choice for that. | 18:46 | |
| Transforming PASTs will be the main focus of the project, but setting up a standard way to choose your optimizations with PCT compilers(from the command line, for example) would also be useful, since unlike LLVM's optimizations, it's working in the middle of the compilation process rather than at the end. | 18:56 | ||
| So you can't just run opt on your bytecode like you can with LLVM. | 18:58 | ||
| Whiteknight | I'm looking forward to this project | 18:59 | |
| chromatic | Oh, there's no reason we can't make it possible to optimize and rewrite a PBC. | ||
| tcurtis | There isn't a way to decompile from PBC to PAST, though, is there? | 19:00 | |
| chromatic | Not currently. | ||
| ash_ | you could have different levels of optimization for different intermediate representations | 19:01 | |
| Whiteknight | let's start with optimizing PAST | 19:02 | |
| and then we can shoot for optimizing all sorts of other things | |||
| chromatic | Sure, I'm suggesting not to rule out anything useful in the future, design-wise. | ||
| ash_ | is there a point in the PCT where objects become statically typed? | 19:04 | |
| Whiteknight | no | 19:05 | |
| ash_ | ah, well, never mind then | ||
| Whiteknight | it's dynamicly-typed all the way down | 19:06 | |
| darbelo | ... until you reach turtles. | ||
| Whiteknight | :) | 19:07 | |
| tcurtis | I wasn't ruling out PBC optimizations; just pointing out that one can't optimize PBC with PAST optimizations unless we develop a decompiler from PBC back up to PAST. | ||
| chromatic | Or a PAST-compliant interface to PBC. | 19:08 | |
| dalek | rrot: r45539 | fperrad++ | trunk/tools/dev/pbc_to_exe.pir: [win32] remove an unneeded slash/backslash conversion |
19:09 | |
| tcurtis | Wouldn't that essentially still involve creating a PAST from a PBC? | 19:11 | |
| chromatic | It depends on which stages you want to optimize. | 19:13 | |
|
19:20
kid51 joined
19:24
lucian joined
|
|||
| dalek | kapo: 904c0d0 | austin++ | (3 files): Added Type Matcher, with some tests. |
19:34 | |
|
19:45
Mokurai1 joined
21:38
bacek_ joined
|
|||
| bacek | ~~ | 21:40 | |
| clock? | 21:41 | ||
| purl | bacek: LAX: Sat 2:41pm PDT / CHI: Sat 4:41pm CDT / NYC: Sat 5:41pm EDT / LON: Sat 10:41pm BST / BER: Sat 11:41pm CEST / IND: Sun 3:11am IST / TOK: Sun 6:41am JST / SYD: Sun 7:41am EST / | ||
| bacek | Morning... | 21:46 | |
|
21:47
allison joined
|
|||
| Whiteknight | good morning bacek! | 21:52 | |
| dalek | rrot: r45540 | allison++ | trunk (2 files): [cage] Add tests for sub objects and how they're stored in the namespace. |
||
| rrot: r45541 | allison++ | trunk/t/pmc/namespace-subs.t: [cage] Add coding standard file attributes to new test file. |
|||
| bacek | Whiteknight, aloha | ||
| Whiteknight | later in the day than most of my mornings | ||
|
22:03
yjh joined
|
|||
| bacek | seen chromatic | 22:09 | |
| purl | chromatic was last seen on #parrot 2 hours, 55 minutes and 48 seconds ago, saying: It depends on which stages you want to optimize. | ||
|
22:17
joeri joined
|
|||
| chromatic | I'm here, briefly. | 22:22 | |
| bacek | chromatic, any objections about removing 2-args ops? | 22:28 | |
| chromatic | I'm not sure we have to. I want to look at them first. | 22:29 | |
| bacek | set $S0, $S1; chopn $S0, 1; is($S0, $S1) | ||
| (This is outline of one of the tests in t/op/string.t) | 22:30 | ||
| After chopn $S0 will be different from $S1 | |||
| But inplace semantic (and trunk as well) requires to update $S1 | 22:31 | ||
|
22:32
kid51 joined
|
|||
| chromatic | Hm, good point. | 22:32 | |
| I don't think we have to remove those ops, but that semantic can't stay. | 22:37 | ||
| bacek | It will be very confusing from developer POV... | 22:39 | |
| (And we are missing opportunity to reduce number of ops :) | |||
| chromatic | Eventually they do have to go. I think we can avoid doing that right now though. | ||
| In other words, don't borrow trouble from the future. | 22:40 | ||
| ... unless it's too much work to make them behave. | |||
| I want to get Parrot compiling and passing most tests first, though. | |||
| But first, I must decommute. | 22:41 | ||
| bacek | chromatic, it will be much easy to remove them and fix places where they were used. | 22:43 | |
| (comparing to find all places and fix code to new semantic) | |||
|
22:50
snarkyboojum joined
22:53
nopaste joined,
TonyC joined
23:31
payload joined
23:34
payload1 joined
|
|||
| dalek | rrot: r45542 | bacek++ | branches/immutable_strings_part1/include/parrot/charset.h: Made case-changing function to return string. |
23:46 | |
| rrot: r45543 | bacek++ | branches/immutable_strings_part1/src/string/charset/ascii.c: Update ascii charset case-changing functions to return new string. |
|||
| rrot: r45544 | bacek++ | branches/immutable_strings_part1/src/string/charset/binary.c: Update binary charset case-changing functions. |
|||
| nopaste | "bacek" at 58.107.108.21 pasted "coretest result on immutable_string branch" (49 lines) at nopaste.snit.ch/20236 | 23:47 | |
| bacek | msg chromatic take a look at nopaste.snit.ch/20236 | 23:48 | |
| purl | Message for chromatic stored. | ||
| kid51 | Do those test results indicate progress? | 23:51 | |
| bacek | kid51, yes. At least it compiles and able to pass quite few of tests :) | 23:54 | |
| kid51 | good news! | 23:58 | |
| time to get out of the house. | |||