|
#parrot Parrot 2.2.0 "Like Clockwork" Released! | parrot.org/ | Channel log: irclog.perlgeek.de/parrot/today | Priority: documentation sprint and pre-release testing for 2.3, fix line number annotations | Review and vote GSoC applications Set by moderator on 13 April 2010. |
|||
| cotto_work looks for a guy named "Tod" to mock. | 00:00 | ||
| with gzip, perl6.pbc goes from 22M to 1.1M. | 00:06 | ||
| plobsing | yeah, 464k with lzma | ||
| 660k with bzip2 | 00:07 | ||
| I haven't played with the options | |||
| PBC - optimized for compression :p | 00:08 | ||
| nopaste | "cotto_work" at 192.168.1.3 pasted "comparison of runcores in compiling tools/dev/pprof2cg.nqp" (8 lines) at nopaste.snit.ch/20265 | 00:11 | |
| chromatic | Switch? | 00:12 | |
| purl | Switch is evil. | ||
| cotto_work | plobsing: we could throw some more long string of 0 in there. | ||
| chromatic: running now | |||
| chromatic | Fast is 4.553% faster than slow. | 00:13 | |
| plobsing | isn't cgp supposed to be an optimized variant of cgoto? | ||
| chromatic | If I could make fast pass all of its tests properly.... | ||
|
00:13
snarkyboojum joined
|
|||
| cotto_work | The validity of that task as a representation of performance is an open question. | 00:14 | |
| Whiteknight | chromatic: fast core doesn't pass tests? | ||
| I thought rakudo was using it for default | |||
| chromatic | Some of the annotations tests are TODO for that core. | 00:15 | |
| Whiteknight | instruction counts don't take into consideration pipeline pairings, or relative instruction costs | ||
| nopaste | "cotto_work" at 192.168.1.3 pasted "same as previous but with switch" (10 lines) at nopaste.snit.ch/20266 | 00:16 | |
| chromatic | Wow, I would have expected switch to perform better. | ||
| cotto_work | That's without --optimize\\ | ||
| sorear | switch is cgoto + range checking in nearly every C compiler | 00:17 | |
| opcode range checking, I mean | |||
| cgoto will just segfault if it gets an out of range opcode | |||
| chromatic | I'm not convinced C compilers will reliably optimize a switch statement with that many cases. | 00:18 | |
| Whiteknight | yeah, i doubt it | ||
| sorear | what do you mean by "optimize a switch statement" | ||
| plobsing | there should be a pragma that tells the compiler "Hey, I'm making an op dispatcher" | ||
| chromatic | Then again, I'm not convinced VS can reliably optimize a switch statement with more than four cases. | ||
| Whiteknight | sorear is right too: best it could be optimized is into a linear dispatch table, like a cgoto | ||
| particle | preliminary gsoc slot count for tpf: 10 | ||
| chromatic | Perl 5 is borrowing optimizations from parrot: www.mail-archive.com/perl5-changes@...23468.html | 00:19 | |
| Whiteknight | cotto, how many Parrot instructions in that program | ||
| chromatic, we have optimizations? | |||
| :) | 00:20 | ||
| cotto_work | Whiteknight: not sure. I'm just testing the time to compile and spit\\ out pir. | ||
| chromatic | I could revert several dozen commits and show you, yes. | ||
| plobsing | pbc_disassemble perl6.pbc => SEGFAULT | ||
| cotto_work | plobsing, that's not entirely surprising. pbc_disassemble has bugs non-tiny pbc files. | 00:21 | |
| plobsing | is it even worth opening a ticket? | ||
| chromatic | Not if you can fix it right now. | ||
| plobsing | not bloody likely | ||
| cotto_work | nm. I'm thinking of pbc_dump. | 00:22 | |
| chromatic | Ticket away! | ||
| nopaste | "cotto_work" at 192.168.1.3 pasted "now with --optimize" (15 lines) at nopaste.snit.ch/20267 | 00:25 | |
|
00:26
snarkyboojum joined
|
|||
| chromatic | Much better. | 00:27 | |
| purl | i heard much better was to design each table in isolation with the table name providing context | ||
| chromatic | Fast is 1.927% faster than slow. | 00:28 | |
| cotto_work | Assuming this is representative of performance (which is a potentially big assumption), things look bad for cgp. | 00:29 | |
| Whiteknight | kill it with fire | ||
| cotto_work | and switch and slow | ||
| deprecations first, then fire | |||
| It'll be really nice to rip some of that code out. | 00:30 | ||
| chromatic | cg, cgp, and switch can go away as far as I'm concerned. | ||
| Whiteknight | +1 | ||
| purl | 1 | ||
| cotto_work | but more testing should be done first, especially with Rakudo and Partcl-nqp | ||
| chromatic | Switching to fast will be a little more difficult, but we can get that done too. | ||
| cotto_work | What's tricky about fast? It's the simplest possible runcore. | 00:31 | |
| Whiteknight | purl +1 is <reply>-2 | ||
| purl | ...but +1 is <reply>-1... | ||
| chromatic | Sometimes it doesn't update pc appropriately. | ||
| sorear | why are you counting instructions? | ||
|
00:31
Mokurai1 joined
|
|||
| sorear | and not something physically meaningful like milliseconds? | 00:31 | |
| chromatic | Because counting milliseconds is silly and not meaningful. | 00:32 | |
| cotto_work | there's a comment in runops_fast_core that can safely go away | ||
| sorear | milliseconds are the only thing I care about | ||
| I don't lose patience by the billion instructions | |||
| I lose patience by the million milliseconds | |||
| chromatic | You can't compare milliseconds accurately. | ||
| sorear | are you secretly a computer program? | 00:33 | |
| cotto_work | milliseconds are harder to test | ||
| chromatic | If your profiles rely on a clock, your profiles are not accurate, and they don't count. | ||
| cotto_work | time-based testing is fine. It just requires more statistical forethought than instruction counts. | 00:34 | |
| chromatic | Time-based testing isn't fine, because it's unscientific. It's not repeatable. | ||
| Whiteknight | well, on a single core, non-threaded embedded system with IO interrupts turned off and a fixed crystal freqency, a clock benchmark is fine | ||
| sorear | Instruction count benchmarking is fine on MIPS | ||
| chromatic | .... depending on the accuracy of your clock, perhaps Whiteknight is right. | 00:35 | |
| sorear | a single-scalar architecture where all instructions run in one clock cycle | ||
| with no cache | |||
| cotto_work | valgrind can simulate cache but I agree that it's a more abstract measurement than milliseconds | 00:36 | |
| sorear | also, science has involved margins of error for centuries | ||
| cotto_work | . o O (Look at me, still talking when there's science to do.) | ||
| chromatic | Okay, hands up everyone profiling Parrot on a single core embedded system with no interrupts and no multitasking. | 00:37 | |
| No hands? | |||
| None? | |||
| purl | i guess None is :/ | ||
| chromatic | Thought not. | ||
| Now complain all you like about how the real world blah blah clock cycles blah blah accurate blah blah, but look me in the eye and tell me that reducing the number of instructions executed by a repeatably measurable and verifiable amount hasn't made Parrot and Rakudo run faster. | 00:38 | ||
| Because I can tell you that a parallel run of coretest takes between 22 and 39 seconds on my development box. | 00:39 | ||
| ... and any science which can deal with almost a factor of two margin of error had better be a social science or climatology, because nothing else will take it seriously. | |||
| sorear | chromatic: Why are you talking about seconds? You just said they don't matter. | ||
| plobsing runs off to build a custom test box to fit specifications | 00:40 | ||
| sorear | When you measure instruction counts, you have a factor of 400 factor of error. That's the difference between SYSENTER and INC in the i386 system programmer's manual | ||
| I would rather have a factor of 2 error than a factor of 400. | |||
| Also, the central limit theorem will reduce the factor of 2 as low as I want, but won't affect the 400 (since the error isn't independant between runs). | 00:41 | ||
| cotto_work | sorear: where does 400 come from? | ||
| plobsing | sorear: I seriously doubt the difference in instruction counts comes from any "heavy" instructions such as sysenter | ||
| sorear | cotto_work: the Intel Pentium 4 System Programmer's Manual | ||
| I'm misremembering the values, I'm sure | |||
| plobsing: CALL is also a heavy instruction, although less so, and fast uses it in spades | 00:42 | ||
| plobsing | fair enough | ||
| cotto_work | Ah. You're saying that instructions take different amounts of time. | ||
| sorear | I don't know exactly how heavy CALL is. | 00:43 | |
| Neither does Intel - it depends on too many factors. | |||
| time(1), however, does know | |||
| chromatic | Too bad time(1) isn't repeatable. | ||
| cotto_work | a margin of error doesn't preclude repeatability | 00:44 | |
| chromatic | A margin of error affected by local Ethernet traffic does. | 00:45 | |
| I can run Callgrind on a Parrot program a thousand times and get *the same number*. | |||
| cotto_work | +/- a little | ||
| chromatic | If I run time(1) on that same Parrot program, I can ameliorate my margin of error and get a stochastic likelihood that the eventual number I can come up with is probably within my margin of error. | 00:46 | |
| Which am I going to pick? | |||
| sorear | If I'm measuring the gravitational forces on oil drops, I don't get exactly repeatable results because every time a truck drives by, my numbers change infinitesemally | ||
| You've basically just asserted physics isn't science | |||
| chromatic: You're going to pick callgrind. We, however, will stick with time and averaging over hundreds of runs. Neither number is useless. | 00:47 | ||
| chromatic | That's probably why physicists don't use Newtonian physics for things that are too big or too small for Newtonian physics to apply. | ||
| cotto_work | valgrind is very precise, simple to run and gives a rough indicator of performance. milliseconds vary significantly and require many runs with statistical analysis but give an accurate indicator of performance. | 00:49 | |
| Whiteknight | children, stop fighting or you get the hose | 00:53 | |
| cotto_work sings kumbayaa | 00:54 | ||
| dalek | TT #1557 created by plobsing++: pbc_disassemble fails on large PBCs | 00:56 | |
| TT #1557: trac.parrot.org/parrot/ticket/1557 | |||
|
01:04
abqar joined
|
|||
| nopaste | "plobsing" at 192.168.1.3 pasted "compact strings in packfiles slightly" (99 lines) at nopaste.snit.ch/20268 | 01:32 | |
| plobsing | probably a little close to the release for that eh? | 01:33 | |
| cotto | normal release, no. supported release, probably yes | 01:40 | |
| sorear | what makes a release "supported?" | 01:41 | |
|
01:41
AndyA_ joined
|
|||
| cotto | sorear, docs/project/support_policy.pod | 01:45 | |
|
01:47
kid51 joined
|
|||
| sorear | thanks | 01:51 | |
| plobsing | I guess it waits till patch tuesday | 01:54 | |
| kid51 | Yes, I think this is Gerd's first time at bat as release manager, so we don't want to overburden him. | 01:55 | |
| which reminds me, I should start doing make fulltest | |||
| Coke | msg allison I will probably not get to the trac report tonight, apologies. | 01:58 | |
| purl | Message for allison stored. | ||
| cotto | More patches won't put any extra burden on gerd. We just want to focus on documentation and testing. | 02:00 | |
| actually, it'd depend on how confident you are in the patch. | 02:01 | ||
| plobsing | I'm 95% on it. Its pretty simple, but this is software. | 02:02 | |
| cotto | If you want to apply it, better sooner than later. | ||
| Coke | parrot docbugs is xrl.us/bhg2p8 [trac.parrot.org] | 02:06 | |
| dalek | rrot: r45647 | plobsing++ | trunk/src/packfile/pf_items.c: use the same opcode for both charset number and pobj flags for strings in packfiles |
02:22 | |
| GeJ | exit | ||
| cotto exits | |||
| plobsing | #parrot: you have suspended jobs. | ||
| GeJ | Ah, dammit. bad focus when closing a window. | 02:23 | |
| Sorry about that. | |||
| sorear | at least you didn't do 'su' | ||
| (I've seen this happen) | |||
|
02:28
tetragon joined
|
|||
| GeJ | sorear: hum, I believe I may have typed my password here at least a couple of time before. | 02:29 | |
| cotto | hunter2 | 02:30 | |
| dalek | rrot: r45648 | coke++ | trunk/src/packfile/pf_items.c: eliminate trailing whitespace |
02:39 | |
| rrot: r45649 | gerd++ | trunk/NEWS: some news added |
|||
| cotto | plobsing, did you run make test before that commit? | 02:41 | |
| I'm seeing some packfile-related test failures. | |||
| plobsing | I did. The test pbcs need to be regenerated. | ||
| I just commited that. | 02:42 | ||
| kid51 | exit | ||
| make fulltest PASS linux/i386 r 45649 | 02:43 | ||
| plobsing | wha? are you sure? the native pbcs were broken in that rev. | 02:44 | |
| kid51 | Uh-oh: getting lots of failures on Darwin/PPC | 02:45 | |
| All in the t/pmc/packfile*.t tests | |||
| cotto | there you go | ||
| plobsing | thats more like it | 02:46 | |
| update to r45650. that should fix it. | |||
|
02:48
janus joined
|
|||
| kid51 | Let's see: that was my first build of Parrot using Perl 5.12.0 | 02:48 | |
| Correction: those failures were on Linux/i386 | 02:49 | ||
|
02:50
hercynium joined
|
|||
| kid51 | Yes that looks better | 02:50 | |
| dalek | rrot: r45650 | plobsing++ | trunk/t/native_pbc (4 files): mk_native_pbc |
02:56 | |
| rrot: r45651 | plobsing++ | trunk/config/gen/config_pm/config_pir.in: describe new structure of config hash |
|||
| TT #1474 closed by plobsing++: runtime/parrot/library/config.pir refers to long dead "None" PMC. | 02:58 | ||
| TT #1474: trac.parrot.org/parrot/ticket/1474 | |||
| TT #1536 closed by coke++: Remove History and Maintainer sections from PDD's (mostly drafts) | 02:59 | ||
| TT #1536: trac.parrot.org/parrot/ticket/1536 | |||
| Coke | msg gerd - pretty sure that the 3 month deprecation cycle was already announced in our last stable release, and stringnull ain't new. | ||
| purl | Message for gerd stored. | ||
|
03:00
snarkyboojum joined
|
|||
| Coke | Invalid charset number '1825' specified | 03:05 | |
| (getting that trying to run anything in rakudo... | |||
| plobsing | really? coretest is working fine for me | 03:07 | |
| dalek | rrot: r45652 | coke++ | trunk/docs/pdds (30 files): PDD cleanup (TT #1536); Remove maintainer, changes sections. podular cleanups. Update copyrights on edited files. |
03:13 | |
| cotto | Coke, I saw something like that. It disappeared after I ran make without -j | 03:18 | |
|
03:23
jsut_ joined
|
|||
| tcurtis | What are PAST::Control nodes for? | 03:54 | |
| sorear | I would imagine they're like COPs, but that's a completely wild guess | 03:55 | |
|
03:57
khairul joined
|
|||
| sorear | no | 03:59 | |
| PAST::Control nodes do not appear to be used for anything at all | 04:00 | ||
| ah, Rakudo uses them | 04:02 | ||
| see src/Perl6/Actions.pm | |||
| in particular when implementing given/when | |||
| it's not a loop, but it needs to catch break | |||
| tcurtis | Thanks. | 04:09 | |
| sorear++ | 04:10 | ||
|
04:11
Andy joined
|
|||
| Andy | hey plobsing | 04:12 | |
| purl | plobsing is part of our sanity injection framework or probably canadian or mailto:plobsing@gmail.com | ||
| plobsing | j0 | 04:15 | |
| s/j/y/ | |||
| dalek | rrot: r45653 | petdance++ | trunk (2 files): correct an incorrect annotation |
04:23 | |
| Andy | hey plobsing | 04:28 | |
| purl | plobsing is part of our sanity injection framework or probably canadian or mailto:plobsing@gmail.com | ||
| Andy | we want to change any checks of NULLness of STRINGs to STRING_IS_NULL, right? | 04:29 | |
| plobsing | Andy: in general yes. There are places, especially in the string system proper where this doesn't make sense. | 04:30 | |
| but most systems have no excuse for breaking this encapsulation | 04:36 | ||
| sorear | if strings are supposed to act like a primitive type, why do we have a null string at all? | ||
| there's no null int or null num, we just use the additive identity (0, 0.0) | 04:37 | ||
| maybe S variables should always point to valid strings, and be initialized to "" | |||
| plobsing | what encoding is that in/ | 04:38 | |
| ? | |||
| sorear | all of them | ||
| the empty string has the same representation in every real-world character encoding I know of | 04:39 | ||
| plobsing | true, but, based on my understanding of how strings work in Parrot, the encoding flag on that string (and there can be only one encoding for a string) can cause other strings to get promoted when they interact | 04:40 | |
| dalek | rrot: r45654 | petdance++ | trunk/src/spf_render.c: updated annotation |
||
| plobsing | I am not totally against the concept of "no null strings". But I don't totally buy the "strings are a value type" paradigm either. | 04:41 | |
| I'm just trying to make what we have now work. Whether what we have is a good idea, I'll leave to someone with more vision than myself. | 04:43 | ||
| sorear | my argument is that void strings aren't sufficiently interesting to justify the current trichotomy (STRINGNULL, NULL, "") | ||
| plobsing | sorear: dichotomy. the official line is that STRINGNULL and NULL are equivalent strings in parrot's eyes | 04:44 | |
| # define STRING_IS_NULL(s) ((s) == STRINGNULL || (s) == NULL) | 04:45 | ||
| sorear | "" probably should be handled as special for promotions; if someone says $a = ""; for (@input) { $a .= $_; } they probably didn't mean to coerce the entire file into UTF-8 or whatever the default encoding of literals in $HLL is | ||
| "" is the denotational identity of .; for it to not be so operationally violates the PoLS | 04:46 | ||
| plobsing: ah | |||
|
04:47
snarkyboojum joined
|
|||
| plobsing | sorear: my PoLS would involve never seeing denotational identities :p | 04:50 | |
| ttbot | Parrot trunk/ r45656 i386-linux-thread-multi make error tt.taptinder.org/file/cmdout/263791.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) | 05:21 | |
| dalek | rrot: r45655 | petdance++ | trunk/src/packfile.c: use the new STRING_IS_NULL macro |
05:31 | |
| rrot: r45656 | petdance++ | trunk/src (2 files): use the new STRING_IS_NULL macro. Consting and function annotations. |
|||
|
05:52
eternaleye joined
|
|||
| cotto | Bah. All our fancy function annotations make Coccinelle sad. | 06:02 | |
|
06:07
uniejo joined
06:58
iblechbot joined
|
|||
| dalek | kudo: aae95f4 | moritz++ | t/spectest.data: we pass sort.t, quester++ |
07:25 | |
| cotto | There's a lot of code that matches /if \\(s\\)/ | 07:37 | |
| If someone's up for wrestling with Coccinelle, this would be a great application for it. | |||
| otoh, it's yet another thing that acts kinda like a C compiler | 07:41 | ||
| dalek | rrot: r45657 | dukeleto++ | trunk/docs/pdds/draft/pdd10_embedding.pod: [cage] Fix signature docs for Parrot_compile_string in PDD10 |
07:42 | |
| ttbot | Parrot trunk/ r45657 i386-linux-thread-multi make error tt.taptinder.org/file/cmdout/263982.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) | 07:43 | |
| cotto | all better | 07:45 | |
| cotto kicks dalek gently | 07:50 | ||
| dalek | rrot: r45658 | cotto++ | trunk/src/call/args.c: [call] run headerizer, fix build, more cowbell, etc |
07:59 | |
| cotto | I've lost much faith in the speed of nqp-rx's regex matching capabilities. | 08:04 | |
| moritz | speed? are you kidding? | 08:08 | |
| since nqp-rx doen't yet implement :: it's not so easy to fail early in some rules | |||
|
08:14
chromatic joined
|
|||
| moritz | Coke: why did you change TT #389 from "bug" to "deprecated"? And what exactly does that mean? | 08:17 | |
| dalek | rrot: r45659 | gerd++ | trunk/RESPONSIBLE_PARTIES: add myself for Fedora |
08:18 | |
|
08:22
mikehh joined
|
|||
| chromatic | PBCs are ~4.5% smaller now. | 08:33 | |
| moritz | chromatic: I've just received complaints about the rendering of the Perl 6 book | 08:35 | |
| chromatic: it seems that B<...> outlining doesn't work in =begin programlisting blocks | 08:36 | ||
| ie the B<...> are left verbatim in the code | |||
| chromatic | We had that working at one point. I'll ask allison about it. | 08:37 | |
| sorear | I'd prefer you didn't think about them as complaints | 08:56 | |
| LTA, sure, but perfectly readable | 08:57 | ||
| moritz | sorear: I don't mean "complaints" negatively in any way | 09:03 | |
| to me it's more like "bug report" :-) | 09:04 | ||
| and since I mostly look at the POD, and nearly never at the tex or pdf, those are valuable | 09:05 | ||
| cotto | 1-4/128 | 09:34 | |
| purl | 0.96875 | ||
| cotto | yay for being faster | 09:39 | |
| chromatic | What's faster? | 09:40 | |
| purl | *whutcchhh* *whutcchhh* or Citius, Altius, Fortius! or the wrong goal | ||
| cotto | it'll be even nicer when switching to a hand-rolled parser actually slows nqp-rx code down | ||
| parsing profiles | |||
| it's down to "reasonable" now | |||
| about 4s for t/pmc/fixedpmcarray.t | 09:41 | ||
| chromatic | Is the recursive descent of NQP painful? The lack of cut? Missing LTM? | ||
| dalek | rrot: r45660 | cotto++ | trunk/runtime/parrot/library/ProfTest (3 files): [proftest] switch from grammar to manual string mangling |
09:42 | |
| cotto | It don't know. It looked like more of a "use a different tool" problem than a "tune the existing code" issue. | ||
| cotto | time for sleep | 09:43 | |
| chromatic | Indeed. | ||
| bacek | aloha | 09:48 | |
| dalek | rrot: r45661 | cotto++ | trunk/runtime/parrot/library/ProfTest/PIRProfile.nqp: [proftest] fix some escaped debugging code |
09:58 | |
| chromatic | The PF_fetch_* functions in src/packfile/pf_items.c might not need to use function pointers; the underlying fetch functions are static and easy to inline a few bytes of asm. | 10:07 | |
| You hate to see branch prediction hurt there. | 10:08 | ||
|
10:24
aukjan joined
10:42
clinton joined
|
|||
| dalek | rrot: r45662 | bacek++ | branches/immutable_strings_part1/src/string/charset/ascii.c: Remove unused static function |
10:48 | |
| allison | Score! all tests passing with TT #389 fixed | 10:50 | |
| bacek | ship it! | 10:57 | |
|
12:01
whiteknight joined
12:06
bluescreen joined
|
|||
| whiteknight | good morning, #parrot | 12:09 | |
| dalek | rrot: r45663 | allison++ | trunk/runtime/parrot/library/TAP/Parser.pir: [cage] Preparing for deprecation change, methods are only stored in the |
||
| rrot: r45664 | allison++ | trunk/compilers/pge/PGE (2 files): [pge] Preparing for deprecation change, methods are only stored in the |
12:26 | ||
| purl | i already had it that way, dalek. | ||
| rrot: r45665 | allison++ | trunk/t (8 files): [tests] Preparing for deprecation change, methods are only stored in the |
|||
| purl | i already had it that way, dalek. | ||
|
13:00
ruoso joined
13:04
smash joined
|
|||
| smash | hello everyone | 13:04 | |
|
13:05
aukjan joined
|
|||
| whiteknight | hello smash | 13:11 | |
| allison | moritz: you have to set the $new->codes_in_verbatim(1); option on the parser object | 13:16 | |
|
13:16
Andy joined
|
|||
| allison | moritz/chromatic: the version of Pod::PseudoPod::HTML I have for the Parrot Dev Guide sets it automatically in the core module | 13:17 | |
| moritz/chromatic: digging further, it's in the released version of Pod::PseudoPod too | 13:19 | ||
| moritz | allison++ | ||
| allison | moritz: but note that standard Pod does *not* parse format tags like B<...> in verbatim code blocks | ||
| moritz | allison: I know | 13:20 | |
| allison | ok | ||
| moritz | I picked it up from an editoral patch by chromatic++ | ||
| allison | I don't know what version of the parser the Perl 6 book was generated on, though | ||
| moritz: okay, cool | 13:21 | ||
| moritz | ii libpod-pseudop 0.15-1 A framework for parsing PseudoPod | ||
| is what I use | |||
| allison | moritz: hmmm.. what distro? | ||
| purl | somebody said distro was HTML::Tree | ||
| moritz | allison: debian... but probably a self-made module | ||
| allison | 0.16 is the latest, but it's just a couple weeks old | 13:22 | |
| moritz | if I read the changelog correctly, it's not worth upgrading for removed tests :-) | ||
| allison | moritz: and, looks like the option was enabled there too | 13:23 | |
| moritz: aye, no point | |||
| moritz: it was just a release to silence the CPAN failures | |||
| moritz: (by "there" 3 lines ago, I meant "in 0.15 too") | 13:24 | ||
|
13:24
atrodo joined
|
|||
| moritz | good | 13:24 | |
|
13:26
payload joined
|
|||
| moritz | seems to work... at least the generated .tex doesn't contain B< anymore | 13:27 | |
| there are still some layout issues, but I assume you have much better tex templates anyway | 13:29 | ||
| (for example the tables have borders, except the title rows, which only have borders on the bottom/right, but not on the top/left) | 13:30 | ||
|
13:32
rhr joined
|
|||
| Coke | moritz: it's called "deprecation" now. basically, a change in behavior that needs to occur that will break backward compatibility. | 13:34 | |
| particle | tar zxf foo.tgz # tar: You must specify one ef the '-Acdtrux' options | ||
| huh? | |||
| is x no longer x? | |||
| moritz | particle: try tar -xzf foo.tgz | ||
| Coke | particle: tar -zxf foo.tgz | ||
| (I thought you needed the -_ | 13:35 | ||
| moritz | Coke: depends on the tar | ||
| I think GNU tar doesn't need it | |||
| but others are a bit more picky | |||
| particle | this is centos, doesn't like - | 13:36 | |
| ah... interesting.... | |||
|
13:36
payload1 joined
|
|||
| particle | the full line is: su - minicpan -c tar zxf foo.tgz | 13:36 | |
|
13:37
patspam joined
|
|||
| particle | even if i do 'su - minicpan -c -- tar -xzf foo.tgz' i get su: invalid option -- x | 13:37 | |
| su is seeing the -xzf | |||
| i've got to put quotes around the -c arg, i guess | 13:38 | ||
| moritz | allison: another complaint about Pod::PseudoPod: it translates double quotes differently in verbatim blocks and C<...> constructs | 13:39 | |
|
13:40
payload joined
|
|||
| moritz | which is rather annoying when you talk about interpolation semantics | 13:40 | |
| example: moritz.faui2k3.org/tmp/book.pdf page 8 (a bit above the Excercises) | |||
|
13:41
tetragon joined
|
|||
| allison | moritz: that's not Pod::PseudoPod, that's LaTeX doing that | 13:41 | |
| moritz | oh, and B<...> now gets translated into \\textbf{...} inside programlisting blocks, but \\begin{verbatim}...\\end{verbatim} doesn't process that... do I need fancyvrb or so? | 13:42 | |
| allison: ugh | |||
| allison | moritz: latex again | ||
| moritz: if you do the HTML output it comes out right | 13:43 | ||
| moritz | so Pod::PseudoPod::LaTeX isn't supposed to emit "working" latex output? :/ | ||
| or does it require a special latex prelude? | 13:44 | ||
| smash | excelent the build system for the perl6 book | 13:45 | |
|
13:54
bubaflub joined
13:57
payload1 joined
14:04
ruoso joined
|
|||
| allison | moritz: it should be valid LaTeX, but so far I haven't found a way to get LaTeX to handle formatting codes inside verbatim blocks | 14:05 | |
|
14:06
ash_ joined
|
|||
| allison | moritz: if you run across the magic incantation, pass it along and I'll make sure it gets into the module | 14:06 | |
| moritz | allison: I'll look into it - I dimly recall that fancyvrb can do such things | ||
| ash_ | whiteknight: have you seen macruby much? I only mention it because its the exact kind of thing i would like to do with parrot, concerning the llvm that is for my GSoC project. | 14:08 | |
|
14:10
particle1 joined
14:11
Andy joined
|
|||
| whiteknight | ash_: no, not familiar with macruby at al | 14:11 | |
| all | |||
| links or info? | |||
| ash_ | www.macruby.org/blog/index.html talks about it a good bit, what i would like to do | 14:12 | |
| its ruby, the same core as the mainline of ruby, but they replaced the vm with the llvm, added a few things, and made a bridge to objective-c, (that doesn't use libffi, it compiles down to a real C call instead of libffi so its faster) | 14:13 | ||
| it comes with a AOT compiler, macrubyc, that will take a ruby file and convert it to a native binary using the llvm, it can also make dynamic libraries too | 14:14 | ||
| whiteknight | ash_: An AOT compiler is a feature that I would love to have in Parrot eventually | ||
| ash_ | that was one of the things i'd like to do with parrot, instead of dumping bytecode, actually using the llvm to build a native executable, granted its only for parrot installs with the llvm, but still | 14:15 | |
| dalek | rrot: r45666 | allison++ | trunk (2 files): [cage] Associate named macros with sub compilation flags that are already used, |
14:16 | |
| whiteknight | ash_: Yeah, but you could package up the executable and libparrot into an installer, and distribute that to people who don't have parrot already | ||
|
14:16
payload joined
|
|||
| ash_ | yeah, theres a lot of stuff you can do | 14:17 | |
| in nq-nqp i am finally getting to code generation, i have some basic ability to call functions and make new objects | 14:20 | ||
| whiteknight: if your on linux, you can still build macruby if you want to see it work, it just won't have all the cocoa stuff | 14:22 | ||
| it works on linux, and windows (via cygwin) | |||
| whiteknight | I can check it out later today when I get home | ||
| Coke wonders if there's anyone else he can sucker into working on partcl. =-) | 14:24 | ||
| ash_ | how is partcl coming along? | 14:26 | |
| allison | ooookey, I'm not committting the TT #389 fix before 2.3, because even NQP-rx depends on the old broken behavior | 14:27 | |
| I can fix PGE, but NQP-rx is generating broken code | 14:28 | ||
| Coke | slowly. had gotten to a point with partcl that it was running the tcl test suite and passing a large fraction. but it was harder and harder to add new features. switched to a version written in NQP-rx, which makes writing things a lot easier, but involves a lot of recoding. | ||
| allison | (I can even fix the broken generated code in the Parrot repository, but the problem is external) | ||
| Coke | (fixing nqp-rx) - if we can get a few moments of pmichaud's time, we might be able to make that happen. | 14:29 | |
| (and there are multiple commiters on nqp-rx) | |||
| moritz | if somebody needs commit access to nqp-rx, that can also be organized | ||
| allison | it'll be a small fix | ||
| just adding :nsentry to a template for generated code | 14:30 | ||
| he can go back and remove it later if he wants to make the more sweeping changes to avoid pulling methods out of the namespace | 14:31 | ||
| dalek | rrot: r45667 | allison++ | trunk/runtime/parrot/library/TAP/Parser.pir: [cage] No need to repeat the sub name in :nsentry. |
14:32 | |
| rrot: r45668 | allison++ | trunk/runtime/parrot/library/pcore.pir: [cage] Some tests were relying on the get_lexenv method being available from |
|||
| purl | the namespace is the internal namespace for things like $c->forward and template paths, anyway or hll:X::Y, but yes. | ||
| rrot: r45669 | allison++ | trunk/runtime/parrot/library/P6object.pir: [cage] Preparing for deprecation change, methods are only stored in the |
|||
|
14:32
theory joined
|
|||
| purl | i already had it that way, dalek. | ||
| rrot: r45670 | allison++ | trunk/runtime/parrot/library/Stream/Base.pir: [cage] Preparing for deprecation change, methods are only stored in the |
|||
| purl | i already had it that way, dalek. | ||
| smash | where can i send patches for the perl6 book ? | 14:34 | |
| moritz | smash: good question... maybe perl6-compiler@perl.org for now | 14:35 | |
| smash: if you have just small changes, you can commit them directly if you want... just tell me your github ID | |||
| smash | moritz: just some typo fixes | 14:37 | |
| moritz | smash: the commit them directly | ||
|
14:38
fperrad joined
|
|||
| Coke | moritz: just have him fork and pull request? | 14:39 | |
| (oh, typos, envermind. ) | |||
| moritz | Coke: just have him commit directly... I don't see why not :-) | 14:40 | |
| whiteknight | what is a pull request? | ||
| purl | i guess a pull request is just a message | ||
| whiteknight | thanks purl | ||
| Coke | "i have committed things to a fork of your project. you should look at them." | ||
| whiteknight | ah, that makes more sense | ||
| Coke | except that github (kind of) makes it easy to do. | ||
| moritz | it also add those commits to a fork queue, where you can apply patches with a single click | 14:41 | |
| Coke | whiteknight: github.com/guides/pull-requests | ||
| smash | moritz: sure i can commit them directly, my githud id is 'smashz' | ||
| moritz | smash: and you have commit access now. Welcome! | 14:43 | |
| smash | moritz: ok, thank you | ||
| Coke | whiteknight: github.com/blog/270-the-fork-queue | 14:45 | |
|
14:48
fperrad_ joined
14:54
ash_ joined
14:55
davidfetter joined
14:57
snarkyboojum joined
|
|||
| cotto | Are the repeat VTABLE functions and ops valuable? They strike me as something that could easily go on the deprecation pile. | 14:58 | |
| whiteknight | cotto: which ones? | ||
| purl | which ones are b0rked | ||
| whiteknight | purl forget which ones | ||
| purl | whiteknight: I forgot which ones | ||
| cotto | repeat | 15:00 | |
| cotto heads to wrok | 15:03 | ||
| davidfetter | mmm...wrokz | 15:08 | |
|
15:11
ash_ joined
|
|||
| Coke | repeat just lets you turn "X" into "XXX", yes? | 15:12 | |
| I need that for [string], but do I think it needs to be a vtable? probably not. | 15:13 | ||
| S26? | |||
| purl | rumour has it S26 is perlcabal.org/syn/S26.html | ||
| dalek | rrot: r45671 | fperrad++ | trunk/runtime/parrot/library/TAP (2 files): [TAP] minor refactor |
15:22 | |
|
15:28
cotto_work joined
|
|||
| Coke | smash: "its most simple form' was corect | 15:41 | |
| "correct". =-) | |||
| moritz | smash++ # for the other fixes :-) | ||
| smash | ups, sorry | 15:43 | |
| my bad, fixing it | |||
|
15:44
plobsing joined
|
|||
| smash | reverted, sorry again, my bad # smash-- | 15:45 | |
| moritz | no problem, the other fixes are good | 15:46 | |
| Coke | NBD. | ||
| what moritz said. =-)( | |||
| er, =-) | |||
|
15:52
clinton joined
15:59
theory_ joined
|
|||
| Coke | ~/I've got a theory, it's a demon. A dancing demon! Something isn't right there. /~ | 16:00 | |
| theory dances | |||
| moritz tries to dance, tumbles. Not a good dancer | 16:01 | ||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#33187), fulltest) at r45671 - Ubuntu 10.04 beta i386 (g++ with --optimize) | 16:04 | |
|
16:20
joeri joined
16:25
allison joined
16:29
bubaflub joined
16:32
brrant joined
|
|||
| dalek | tracwiki: v6 | Jack++ | FreezeThawTasklist | 16:33 | |
| tracwiki: trac.parrot.org/parrot/wiki/FreezeT...ction=diff | |||
| tracwiki: v3 | Jack++ | ExceptionRefactor | |||
| tracwiki: trac.parrot.org/parrot/wiki/Excepti...ction=diff | |||
| bubaflub | Jack--, Jack-- | 16:34 | |
| i've undone the spam that Jack put on the wiki. can someone with permissions delete his account and update trac.parrot.org/parrot/wiki/TracSpammers? | 16:36 | ||
|
16:38
iblechbot joined
|
|||
| particle | removed jack's account | 16:39 | |
| crap, don't have jack's email, sigh | |||
|
17:17
GodFather joined
|
|||
| GodFather | newbe trying to get squaak to work 9 step episode seems out of date | 17:22 | |
|
17:26
ruoso joined
17:35
whiteknight joined
17:50
hercynium joined
|
|||
| Coke | We should restrict wiki editing access to developers. | 17:58 | |
| doing so now. | |||
| I am also tempted to remove "ticket_append" for authenticated. | 18:00 | ||
| purl | okay, Coke. | ||
|
18:01
plobsing joined
|
|||
| darbelo | purl: Coke? | 18:01 | |
| purl | i think Coke is Will Coleda <mailto:will@coleda.com> or perpetually annoyed. or magical ticket robot or (if Diet), something that turns into formaldehyde in my blood. or getting those data_json issues in Coke's build. or tempted to remove "ticket_append" for authenticated. | ||
| Coke | done. | 18:02 | |
| email sent to list. | |||
| I wonder if having a captcha for account creation would help. | |||
| darbelo didn't know purl knew how to parse 'I am also...' | |||
| Coke: It won't hurt... | 18:03 | ||
|
18:04
GodFather joined
|
|||
| allison | With the makefile changes of a few months ago, how does one rebuild the IMCC pregenerated files? | 18:07 | |
| particle | is it no longer perl Configure.pl --maintainer? | 18:10 | |
| particle forgets the option himself | |||
| Coke | yes it is. | 18:13 | |
| that is unchanged. | |||
| allison | particle: --maintainer enables lex and yacc in the makefile | ||
| particle: that's working | |||
| Ah! that's better. I modified the files again, in case make got confused when I rebuilt without --maintainer | 18:19 | ||
| Coke | I am tempted to fix that process so we can leave the files checked in but can avoid all the dummy targets. | 18:20 | |
| allison | Coke: marvelous idea | 18:21 | |
|
18:26
chromatic joined
|
|||
| particle | trac.parrot.org/parrot/ticket/1542 is a blocker for blizkost *, can we mark that on the ticket, or add it to some list of priority tickets? | 18:26 | |
| should i simply update priority? i don't know how the tickets are triaged these days | |||
| Coke | particle: ticket triage is not really done. | 18:28 | |
| add the language to the ticket, set it to blocker. that's all you can do. | |||
| Why are they using NQP, and not NQP-rx? | |||
| And if they want to use NQP, I think they need to preload something else. Austin just fixed this bug for me in partcl-nqp. | 18:29 | ||
|
18:34
GodFather joined
|
|||
| Coke | allison: I don't see where to edit the list of languages for the dropdown in the tickets. | 18:36 | |
| allison | Coke: it's on the server | ||
| Coke: in the trac configuration file | |||
| (some things can be edited through the admin interface, but for some reason those can't) | 18:37 | ||
| Coke: /var/lib/trac/sites/parrot/conf/trac.ini | 18:39 | ||
| Coke: lang.options | 18:40 | ||
| Coke | on the server was enough. =-) updated. particle, you can set it for that ticket now. | ||
| particle | danke shoen mein fruend | 18:43 | |
| Coke | particle: why is 1542 not a rakudo bug? | 18:46 | |
|
18:56
Tene_ joined,
mikehh joined
18:59
GodFather joined
|
|||
| Coke | particle: I have no clue what's going on in 1542. | 18:59 | |
| if RT #65994 worked, it would be much easier to diagnose. | 19:00 | ||
|
19:09
davidfetter joined
|
|||
| cotto_work | allison: could SUB_COMP_FLAG_MASK be made less magical? | 19:27 | |
| dalek | rrot: r45672 | allison++ | trunk/compilers/pge/PGE/Exp.pir: [pge] Slightly cleaner handling of :nsentry, the sub named doesn't need to be |
19:30 | |
| rrot: r45673 | allison++ | trunk/include/parrot/sub.h: [cage] Modify the mask for sub compilation flags so it allows nsentry and |
|||
| allison | cotto: sure | ||
| cotto: I could use an | on the relevant flags instead | 19:31 | ||
| cotto_work | It's pretty opaque as-is. | ||
| allison | cotto: agreed | 19:32 | |
| cotto: I ended up resorting to perl to calculate what the new value should be | |||
|
19:32
Austin joined
|
|||
| chromatic | Can you | together several SUB_FLAG(n)s? | 19:35 | |
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#33196), fulltest) at r45671 - Ubuntu 10.04 beta i386 (gcc with --optimize) | 19:36 | |
| allison | chromatic: better to use the named flags, since it's clearer | ||
| sorear | Coke: I filed it on the Parrot tracker because I thought it was unlikely that a purely Rakudo bug would cause load_language to inject code into the wrong namespace | ||
| Coke: I don't understand the issue well enough to be at all sure of this, though | |||
| chromatic | Named flags are better if the compiler supports them there, yes. | 19:37 | |
| allison | chromatic: i.e. SUB_COMP_FLAG_METHOD | SUB_COMP_FLAG_VTABLE | SUB_COMP_FLAG_NSENTRY | ||
| cotto_work wonders about a "no magic numbers" codingstd test | |||
| allison | chromatic: if the compiler supports SUB_FLAG, it should support SUB_COMP_FLAG_* | 19:38 | |
| chromatic | At that point in the struct declaration? | 19:39 | |
| allison | cotto: I just got rid of a bunch of them. It wasn't documented anywhere that P_METHOD in imcc and SUB_COMP_FLAG_METHOD in subs were the same magical constant | ||
|
19:39
GodFather joined
|
|||
| allison | cotto: so reordering one set of apparently unrelated constants would have thrown off the whole system | 19:40 | |
|
19:40
ruoso joined
|
|||
| allison | chromatic: we're already defining entries in the enum by previous entries in the enum | 19:41 | |
| chromatic: so the only uncertain part is whether it'll handle | in the enum definition | |||
| chromatic: (which would be true whether we used SUB_FLAG or SUB_COMP_FLAG_* | |||
| cotto_work | I'm tempted to look at the C standard or K&R to see what should happen, but we know how standards work. | 19:42 | |
| wfm on gcc | 19:43 | ||
| Austin | cotto_work: That's defined behavior. | 19:45 | |
| Things that have to do with parsing are generally much more specified than things having to do with platform behavior. | 19:46 | ||
| Coke | sorear: I'm sorry, where's load language in that ticket? | 19:54 | |
| (I see load_bytecode) | |||
|
19:56
mikehh joined
19:59
bluescreen joined
|
|||
| TimToady | phone | 20:00 | |
|
20:00
theory joined
|
|||
| Coke | crap! be there shortly. | 20:01 | |
| allison, you about? | 20:12 | ||
| (this is the second week that every sounded like they were talking underwater. I dropped out.) | |||
| chromatic | Ditto. | ||
| Except for dropping out. | 20:13 | ||
| cotto_work | charming language rant: www.xent.com/pipermail/fork/Week-of...54578.html | 20:15 | |
| allison | Coke: I'm here | ||
| sorear | Coke: At the time I filed that ticket I was not aware load_language existed. I have since tested using it and it results in exactly the same error. I suppose I should add this fact to the ticket. | 20:16 | |
|
20:16
payload joined
|
|||
| Coke | sorear: I tried to debug it, but I have no idea what perl6 is doing in the VM before we get to the load_bytecode. | 20:16 | |
| also, why are you using NQP and not nqp-rx? | |||
| allison | Coke: oreilly "upgraded" their phone system a couple weeks ago | ||
| Coke | chromatic: pm'd you some notes. | 20:17 | |
| chromatic | Thanks. | ||
| cotto_work | 0x00000c06 == SUB_COMP_FLAG_VTABLE | SUB_COMP_FLAG_METHOD | SUB_COMP_FLAG_PF_INIT | SUB_COMP_FLAG_NSENTRY if someone wants to remove a magic number in include/parrot/sub.h | 20:27 | |
| sorear | Coke: my copy of 'nqp' actually is nqp-rx | ||
| Coke: right, there are probably at least two bugs here - Perl6 is doing something wrong with the VM, and Parrot is handling it wrongly | 20:29 | ||
| but I'm not sufficiently up to speed on the namespace mechanism to debug it | |||
| parrot-nqp is nqp-rx nowadays | 20:30 | ||
| c.f. Rakudo-NG uses parrot-nqp in the makefile | |||
| allison | cotto: got the fix ready to commit (got distracted by the phone) | 20:31 | |
| cotto_work | Yay for less magic! | 20:33 | |
|
20:34
ash_ joined
|
|||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#33197), fulltest) at r45673 - Ubuntu 10.04 beta amd64 (gcc with --optimize) | 20:36 | |
|
20:38
jan joined
|
|||
| dalek | rrot: r45674 | allison++ | trunk/include/parrot/sub.h: [cage] Build the flag mask from the values we want to pass through, rather than |
20:40 | |
| allison | actually, I can go ahead and add the NSENTRY flag in IMCC now... since it doesn't change any deep behavior | 20:43 | |
| (it's just NameSpace PMC that can't change yet) | 20:44 | ||
| chromatic | Suggestion: a cleanup sprint on the NameSpace PMC. | 20:45 | |
| allison | chromatic: very much so | ||
| chromatic | I can't think of a messier PMC. | 20:46 | |
| allison | it's horrifying to think how many developer hours we could have saved on TT #389 if the code was well maintained | ||
| chromatic | Maybe we need src/namespace/*.c | ||
| allison | src/global.c certainly needs to die | ||
| chromatic | ... but I think the real problem is that the existing VTABLE interface isn't appropriate for the operations we need to perform on NameSpaces. | ||
| allison | it could be split into several files | 20:47 | |
| chromatic: well, we shouldn't be packing all that behavior into set_pmc_keyed_str | |||
| it should be a separate function | |||
| that just happens to be called from the namespace PMC | |||
|
20:48
jan joined
|
|||
| chromatic | <field color="green">If we had a system built on a metaprotocol, we could have add_method, add_function, add_string, add_variable, etc methods on a NameSpace class and have avoided all of this.</field> | 20:49 | |
| allison | Yah, it's mainly IMCC that forces the stupidity on the system now | ||
| chromatic | Not entirely. | 20:50 | |
| IMCC provides plenty of design and implementation stupid. | |||
|
20:50
cotto_work joined
|
|||
| allison | it starts with lovely rich information on whether a thing is a method, sub, etc, crams it all down into a struct with flags, then unpacks it to decide if the thing is a method, sub, etc | 20:50 | |
| chromatic | ... but having to fit everything through the tiny little round hole of set_pmc_keyed_str means IMCC has to stuff a lot of information that it already knows into flags on Sub PMCs, and NameSpace has to extract all of that... yeah, exactly. | 20:51 | |
| But that's because of set_pmc_keyed_str being way, way too generic for these operations. | |||
| Coke | sorear: languages/nqp is nqp-rx!? I don't think so. | ||
| sorear: you're loading languages/nqp/nqp.pbc - that's old school NQP, I think. | |||
| chromatic | Isn't ext/nqp-rx NQP-rx? | ||
| allison | chromatic: aye, but the reason for that is so that people can use the hash interface on the namespace PMC | ||
| chromatic | P is for Parrot and Prematuregeneralization. | 20:52 | |
|
20:52
jan joined
|
|||
| Coke | chromatic: yes, ext/nqp-rx is NQP-rx. but that isn't installed in to languages, I don't think. | 20:52 | |
| allison | chromatic: but it's perfectly possible (down the road) to say "If you use a namespace like a hash, it acts like a hash, no fancy tricks with methods, vtable overrides, etc" | 20:53 | |
| "It'll just stuff the thing you give it into the namespace" | |||
| chromatic | As long as we have something more specific to do smart things, and we don't use a NameSpace as the way of adding methods to a class before we have that class, I can live with that. | 20:54 | |
| allison | there are smarter ways to cache methods before the class exists | 20:55 | |
| chromatic | We should do them then. | 20:56 | |
| allison | yah | ||
| not today, though | |||
| Austin | Please keep in mind that being able to inject methods by adding them to a namesapce is a pretty useful feature. It's how Kakapo works. | 20:57 | |
| (Conversely, if there's a good way to take over a class/namespace entirely, I could do that, too.) | |||
| dalek | rrot: r45675 | allison++ | trunk/compilers/imcc (3 files): [imcc] A two line change to the parser to set an NSENTRY flag for the :nsentry |
||
| chromatic | The ultimate problem is that Parrot inherited way too much from Perl 5 symbol tables, where there was no good reason to do so. | 20:58 | |
| allison | Austin: that's what 'add_method' is for | ||
| Austin: You'll still have the ability to do the same method addition, we're just talking about eliminating one of the interfaces to the feature | |||
| chromatic: agreed | 21:00 | ||
| ash_ | is there a git repo that's synced with parrot's trunk? | 21:11 | |
| cotto_work | github.com/leto/parrot | 21:12 | |
| parrot git? | |||
| purl | hmmm... parrot git is repo.or.cz/w/parrot.git or github.com/leto/parrot | ||
| ash_ | is there a difference between the repo.or.cz and the github? or is it just extra duplication? | ||
| cotto_work | dukeleto takes care of the github repo and syncs it regularly. I don't know about the repo.or.cz one. | 21:13 | |
| Coke | repo.or.cz? | 21:14 | |
| purl | repo.or.cz is quite good, and I know the admin | ||
| Coke | ... yes, but WHO IS IT. =-) | ||
| stupid purl. | |||
| ash_ | kk, well, i think i am going to fork dukeleto's so i can start looking into details on the stack frame, i was thinking of starting a fork | 21:15 | |
| bacek | Good morning | ||
| purl | Good Morning Mr Rogers | ||
| cotto_work | hi bacek | ||
| bacek | aloha cotto | ||
| Coke | bacek: did you see I reverted one of your commits? | 21:16 | |
| bacek always depressed that tab-completion doesn't work for "aloha" | |||
| Coke, yes. | |||
| Coke | bacek: hokay. | ||
| aloha | all better | ||
| bacek | aloha, aloha! | ||
| Coke | aloha: aloha. | ||
| bacek | Coke, my commit was definitely correct but it's too close to release to clean all side-effects. | 21:17 | |
| tewk | t/pmc/packfileannotations.t .... 1/17 unimplemented key type | 21:20 | |
| Coke | bacek: it changes functionality. | ||
| so, correct or not, it needs a deprecation warning, if nothing else. | 21:21 | ||
| cotto_work | now's the time for those | ||
| bacek | Coke, i fixed existing check for NULL. | ||
| Coke | and broke rakudo. | ||
| so it's not just that the error message changed. | 21:22 | ||
| cotto_work | btw, there's a lot of code that still assumes a null string is NULL instead of STRINGNULL. | ||
| bacek | Coke, Nope. OTOH I found TT#1207. So, probably proper fix was to remove incorrect check all together. | 21:23 | |
| dalek | rrot: r45676 | bacek++ | trunk/DEPRECATED.pod: Remove already implemented items from DEPRECATION.pod |
21:30 | |
| rrot: r45677 | bacek++ | trunk/DEPRECATED.pod: Add TT#1207 into deprecation. |
|||
|
21:39
TiMBuS joined
|
|||
| cotto_work wonders how Parrot will do with gcc 4.5.0 | 21:42 | ||
| plobsing wonders how much gcc 4.5.0 -flto will help | 21:43 | ||
| cotto_work | What does that do? | 21:44 | |
| plobsing | link time optimization. | ||
| dumps GIMPLE as bytecode into the object files and then cross-optimizes when linking | |||
|
21:47
darbelo joined
21:53
theory joined
|
|||
| ash_ | clang does link time optimizations too | 21:55 | |
| plobsing | ash_: true, but why use a different compiler when I have my trusty gcc that I know and love-hate | 21:56 | |
| ash_ | hehe, true | ||
| gcc 4.5 has a plugin system now, have you seen dragon egg? | 21:57 | ||
| dragonegg.llvm.org/ it's a plugin for gcc 4.5, that replaces the code gen components with the llvm, so you don't have to have llvm-gcc or llvm-g++ anymore if you want to use the gcc as your frontend and use clang as your back end | 21:58 | ||
| s/clang/llvm/ | |||
| plobsing | ash_: cool - now I can use llvm with mature ada and fortran compilers! | 21:59 | |
| ash_ | lol yup | ||
| now if there was some way to make parrot compile directly to GIMPLE or llvm-ir... | 22:00 | ||
|
22:02
kurahaupo joined
|
|||
| plobsing | ash_: opcode introspection + GCC/LLVM PIR bindings would make that possible | 22:06 | |
| both of those are herculean tasks though | |||
| darbelo | Maybe a P[AO]ST->GIMPLE translator | 22:07 | |
| That's just one herculan task ;) | |||
| cotto_work | That'd actually be kinda awesome. | ||
| ash_ | (thats my GSoC :P) | 22:08 | |
| cotto_work | though I thought GIMPLE was kept intentionally unstable to prevent that kind of usage | ||
| ash_ | well, llvm-ir is what i plan on working with | ||
| ash_ doesn't know a whole lot about GIMPLE | |||
| plobsing looked at GCC internals once. took a week to recover my vision | 22:09 | ||
| darbelo | Ftagn! | 22:10 | |
| Ph'nglui mglw'nafh Cthulhu GCC wgah'nagl fhtagn! | 22:11 | ||
| ash_ | oh great destroyer, make it quick | 22:13 | |
|
22:14
hercynium joined
|
|||
| plobsing | ash_: for the libffi component of your GSoC, you might find the hooks I added recently useful: NCI_FB_CB, NCI_FB_UD | 22:18 | |
| ash_ | k, i'll look into those | ||
| i found an interesting thing in the macruby blog, they used libffi for their bridge to obj-c in version 0.4, but in version 0.5 they switch to llvm constructing real C style calls at runtime, which were (they said) 3-4 times faster | 22:19 | ||
| but that requires llvm support, but if its faster, i think it would be cool to have (assuming you have support for it) | 22:20 | ||
| plobsing | ash_: IIRC, thats because they were static thunks - 1 thunk per function as opposed to 1 thunk per signature. | ||
| that might take some re-architecting of our NCI system | |||
| but when we move native pmc methods away from using nci.pmc, our loading of thunks can become eager if need be | 22:21 | ||
| ash_ | ah, just repeating what i read, i don't know much about how its actually implemented | ||
| plobsing | *probably | ||
| darbelo | ash_: You might also want to look at kid51's detect_llvm branch. | 22:22 | |
| plobsing | ash_: also, I'm not terribly concerned about the efficiency of the thunks. If you're calling into and out of native that often, you're doing it wrong. | ||
| ash_ | yeah, i saw that, that will make adding configuration options a lot easier | ||
| darbelo | it's ~6 months old, so it might need some updating. | 22:23 | |
| ash_ | yeah, but its a head start, also plobsing did his work with libjit and made parts of the stack frame pluggable if i remember correctly | ||
| pluggable might not be right, a configuration option | 22:24 | ||
| darbelo | (pluggable everything)++ | ||
| plobsing | ash_: libjit wasn't pluggable at all. it was binary, frame builder or no. which I hated because I realized it wouldn't scale beyond 1 option. | ||
| ash_ | ah | 22:25 | |
| plobsing | I don't think parrot's configure system is set up to handle multiple mutually exclusive options for the same purpose | ||
| I would love to be proved wrong on that | |||
| darbelo | It probably involves adding a runstep, but sounds doable to me. | 22:26 | |
| We already do it for compiler ;) | |||
| ash_ | so, during configuration you'd have to check for two options, if 1's set, do X actions, if other is set do Y, if both, error, if neither, use built in stack frame? | ||
| plobsing | working with parrot's configure system was the part of libjit framebuidler I enjoyed the least | ||
| which is why I'm trying to make things runtime pluggable, side-stepping my issues | 22:27 | ||
| hence the hooks | |||
| ash_ | which do you think would be best? | 22:28 | |
| should i try to make the stack frame completely pluggable? | |||
| plobsing | ash_: what do you mean? | 22:31 | |
| ash_ | would you rather i make the stack frame pluggable? or a configuration option? (if i do the GSoC stuff) | ||
|
22:32
bacek_ joined
|
|||
| plobsing | Do the easier thing first - configuration option. | 22:33 | |
| If it doesn't move too much stuff around (and hopefully it won't, nci should be fairly isolated), it can easily be addapted later. | |||
| darbelo | I also have a hard time cooking up a sane use case for mixing and mantching frame-builders at runtime. | 22:34 | |
| plobsing | darbelo: it makes plugging them at configure time easy - just stuff it into global init | ||
| it also reduces the work required to make a new one (in my eyes), because you don't have to mess around with parrot configure. | 22:35 | ||
| and you can conceivably develop it out of repo as a separate library | |||
| darbelo | Okay. The last point sold me. | 22:36 | |
| Downloading and installing a third-party frame-builder without recompilling parrot is a desirable feature. | 22:37 | ||
| Not that I expect a big boom for *that* market, mind you. | 22:38 | ||
| plobsing | darbelo: I'm not entirely sure that is the case. I thought so initially but then I considered the "use strict; use warnings" boilerplate in perl 5. | ||
| consider having "use nci-llvm;" at the top of every one of your programs | |||
| I'm 50/50 on it. But from a dev perspective, anything that lets us independantly develop something better and then drop it in is a good thing IMHO. | 22:39 | ||
| darbelo | I'm not following you. Who would put that there and why? | 22:40 | |
| plobsing | if you need to use NCI for your program, you just expect it to be there. | ||
| you don't care how it got there, you don't want to think about it | |||
| darbelo | Yes, and NCI should try to allways work the same, no matter what's under the covers. | 22:41 | |
| Oh, wait you mean that just installing a new framebuilder won't disable the old one? | 22:42 | ||
| plobsing | also consider the headache to bindings library authors. "which nci module do I load?". Although I suppose you could have nci.pir that decided that for you. | ||
| darbelo: no. you have to load it into the interpreter for it to replace. | |||
| darbelo | That can be made an option to the parrot executable, not something that PIR would have to care about. | 22:43 | |
| I'm thinking of a model similar to the one bacek's using for his bohem_gc work. | 22:44 | ||
| plobsing | darbelo: options to the parrot executable are a bad idea - how do I specify them to ./perl6 or ./parrot-nqp? | ||
|
22:44
Whiteknight joined
|
|||
| darbelo | Damm fakecutables. | 22:45 | |
| plobsing | damn OSs that don't support shebang | ||
| cotto_work | sounds like a fakecutable issue | ||
| darbelo | Using an env var feels dirty here. | 22:46 | |
| ash_ | i think its fine doing a configuration option... personally, i'd rather just configure at compile time and forget about it | ||
| darbelo | ash_: Sure, take away the bikeshed before it's painted. See if we care ;) | ||
| ash_ | lol, in that case, lets statically link all libraries into rakudo, so then you can't change anything! | 22:47 | |
| cotto_work | It'd be nice to make fakecutables support Parrot cli args. | 22:50 | |
| Coke | cotto_work: IMO, not worth it. | ||
| if you want to invoke your parrot with very specific options, you can already do that. | 22:51 | ||
| cotto_work | yeah but I'm thinking of making life easier for HLL users. | ||
| plobsing | Coke: being able to specify hash seed to rakduo would have made at least one bug I've dealt with easier to diagnose | 22:52 | |
| Coke | plobsing: you can do that. parrot <options> perl6.pbc | ||
| plobsing | that's what I wound up doing. | ||
| but it took me 5 minutes to figure out I had to do that | 22:53 | ||
| Coke | given how much time I've spent chasing things in parrot, that doesn't seem unreasonable. =-) | 22:54 | |
| a doc fix somewhere in rakudo might be nice. I'll see about adding one. | |||
| s/fix/upgrade/ | |||
| cotto_work | The trick is to properly separate Parrot options from HLL compiler options. | ||
| ash_ | you could configure parrot from ENV vars? | 22:55 | |
| maybe? | |||
| purl | Maybe not. | ||
| cotto_work | ash_: what do you mean? Parrot can read the environment (and I use that in the profiling runcore). | ||
| there's no existing equivalence between CLI options and env vars though | 22:56 | ||
| plobsing | If we could somehow use an HLL to process all options (using a default interpreter, spawning a differently configured one), HLLs could parse their own flags and pass things along to parrot | ||
| ash_ | instead of flags on the fakeecutable use env values | ||
| darbelo | --parrot-options this-one,that-one,other-one=thisvalue is a mouthful to type out, but is pretty collision free. | ||
| cotto_work | I'm not much of a fan of them as-is, but that's a potential option | ||
| darbelo | I dislike env var for the fact that I might want to run different HLLs with different options. | 22:58 | |
| And having one var for each HLL is just too much. | |||
| ash_ | darbelo: you could have a hierarchy, PARROT_VAR as the fallback; RAKUDO_VAR for a specific executable | 23:02 | |
| thats probably to complicated though, no need to do that many complicated things | |||
| Coke | do we install manpages? | 23:03 | |
| davidfetter | Coke++ | 23:04 | |
| Coke | I don't see any. | ||
| ah well. | |||
| ash_ | manpages are useful i find... | 23:05 | |
| darbelo | I'm guessing that would require pod2man, which I lack. | ||
| plobsing | docs lie. RTFS. | ||
| ash_ | lol | 23:06 | |
| cotto_work | But the source is OCaml. | ||
| ash_ | (i find haskell to be very hard to read...) | ||
| darbelo | I just print the source, set it on fire, and keep inhaling the fumes until it's all reveled to me in a shamanic vision. | 23:07 | |
|
23:08
Mokurai joined
|
|||
| Whiteknight | darbelo++ | 23:11 | |
|
23:15
bacek_ left
23:16
bacek_ joined
|
|||
| bacek | msg chromatic I'm going to put immutable string aside. I can't understand Rakudo's signature binding at all... | 23:17 | |
| purl | Message for chromatic stored. | ||
| Coke | darbelo: rakudo/docs/running.pod updated. | 23:18 | |
| bacek | msg chromatic OTOH, if you can create good (fsvo) benchmark test for compact_pool it will be helpful. | ||
| purl | Message for chromatic stored. | ||
| dalek | kudo: 2ec0e4e | Coke++ | docs/running.pod: Add docs on specifying parrot options. |
||
| darbelo | Coke: Huh? | 23:19 | |
| ash_ | Whiteknight: apparently, the new versions of macruby are OS X only, the first few releases worked on linux, but not anymore | 23:20 | |
| Coke | er, plobsing. | ||
| darbelo | Ah. | ||
| plobsing | Coke++ | ||
| Whiteknight | ash_: ok | 23:22 | |
| plobsing | ash_: any idea why that is? | ||
| ash_ | autozone, and grand central dispatch mostly, i think | 23:23 | |
| bacek | what the heck it "t/tools/install/testlib"? | 23:24 | |
| ash_ | AutoZone is a generationaly mutli-threaded GC system (its built into the ObjC runtime) macruby uses it, so they could remove the GIL ruby has | 23:25 | |
|
23:25
allison joined
|
|||
| ash_ | AutoZone is open source, but i don't think its been ported anywhere else | 23:26 | |
| grand central dispatch is also open source, but again, i don't think its been ported anywhere other than OS X (might be wrong about this one) | |||
| cotto_work | baest: "This is Parrot, version 0.9.1" Looks obvious to me. ; | 23:27 | |
| ) | |||
|
23:27
ruoso joined
|
|||
| dalek | rtcl-nqp: 91668b4 | Coke++ | src/Partcl/ (2 files): Add support for ${name} variables. |
23:27 | |
| plobsing | cotto_work: I thought that too until I peaked into DEPRECATED.pod and noticed my recent changes there | ||
| dalek | rtcl-nqp: 20fc1e0 | Coke++ | (2 files): disable the hard parts of this test and TODO what needs it. |
||
| rtcl-nqp: 783d48f | Coke++ | docs/todo.pod: some of these todos are done. fix a syntax error. |
|||
| rtcl-nqp: fd74fd9 | Coke++ | (3 files): Add simplistic TclArray |
|||
| rtcl-nqp: 4b11aab | Coke++ | src/Partcl/commands/main.pm: relocated helper sub |
|||
| Coke | win 2 | 23:28 | |
| dalek | cnum-dynpmcs: r198 | darbelo++ | trunk/src/pmc/dec (3 files): Change PObj_active_destroy_SET() to PObj_custom_destroy_SET(). |
23:36 | |
| purl | dalek: that doesn't look right | ||
| darbelo | It probably shows how many users I have that I never got a bug report about the library being 100% borked ;) | 23:41 | |
| cotto_work | Woohoo. bacek++ | 23:43 | |
| sorear | It's still borked. Active destruction can't be used with dynpmcs. | 23:44 | |
| darbelo | sorear: But not a 100% ! | ||
| Now it passes tests and all. | |||
| Also notice that two of the changes are in commented out, right abobe a statement to that fact. | 23:45 | ||