|
Parrot 2.10.1 Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Long live Git! github.com/parrot/parrot | git clone git://github.com/parrot/parrot.git Set by moderator on 18 November 2010. |
|||
|
00:02
nwellnhof left
|
|||
| whiteknight | bluescreen: I just pushed some changes. miniparrot doesn't segfault anymore, but it doesn't work either. Some debugging to do | 00:06 | |
| bluescreen | let me pull that | 00:27 | |
| will git pull bring the latest changes in embed_api branch? | 00:29 | ||
| whiteknight | in my fork, yes | 00:31 | |
| bluescreen | you still using your fork, I thought you'll jump to the main parrot repo | 00:35 | |
| cotto | ~~ | ||
| whiteknight | hah, silly me. I was not calling Parrot_runcode() in Parrot_api_run_bytecode | 00:37 | |
| of course nothing will run if I don't include the command | 00:39 | ||
| bluescreen: I just pushed a fix | 00:41 | ||
|
00:41
kid51 left
|
|||
| whiteknight | miniparrot builds and runs fine. parrot.exe fails on some linker error | 00:41 | |
| bluescreen | getting really closer | 00:42 | |
| whiteknight | actually, wait. parrot.exe does build | ||
| I didn't tell the build to go any further | |||
| yep. parrot executable builds and runs fine | 00:44 | ||
| What I didn't get fixed yet is adding in the library search paths from the config hash, since I need to do the library paths in two stages now | 00:45 | ||
| so the build is failing later, because it can't find files | |||
|
00:45
bluescreen left
|
|||
| whiteknight | ...and there's a segfault in Parrot_exit | 00:45 | |
| blah | |||
|
00:46
bluescreen joined,
bluescreen left
00:47
bluescreen joined,
bluescreen left,
bluescreen joined
00:49
bluescreen left,
bluescreen joined
01:00
dmalcolm left
01:04
davidfetter joined
|
|||
| bluescreen | whiteknight: by any chance, did you miss checking in src/pmc.c? | 01:16 | |
| whiteknight | ah, I may have | ||
| pushed | 01:17 | ||
| bluescreen | I wish i had same support for other software ... :D | ||
| whiteknight | what other software? | 01:19 | |
| bluescreen | every single one of them... | 01:20 | |
| whiteknight | :) | ||
| bluescreen | stupid gcc interprets a ";" as a line of code and throw the "mixed code-declaration error" | 01:22 | |
| whiteknight | damnit | 01:23 | |
| bluescreen | yeah, the EMBED_API_CALLIN has an extra ; | ||
| whiteknight | really? weird | ||
| bluescreen | i mean the macro is ok | 01:24 | |
| but since it ends with "{" | |||
| and in the code you add an "..CALLIN(....);" it endup being {; | |||
| and that is sufficient to make compiler croak about it | |||
| whiteknight | stupid gcc | ||
| blah, I dont build with gcc so I didn't see that error | 01:25 | ||
| bluescreen | parrot does build .. and seems to be running | ||
| llvm? | |||
| whiteknight | llvm? | 01:26 | |
| bluescreen | i meant what compiler are you using? | ||
| whiteknight | clang | 01:27 | |
| bluescreen | thats part of llvm project | ||
|
01:28
kid51 joined
|
|||
| whiteknight | right | 01:28 | |
| plobsing | anyone remember when we got rid of the cgoto core? | 01:31 | |
| kid51 | plobsing: Trac search for 'cgoto core' suggests this: trac.parrot.org/parrot/changeset/45949 | 01:33 | |
| cotto | looks right to me | 01:34 | |
| plobsing | kid51++ | ||
| davidfetter | dukeleto, ping | 02:02 | |
| dukeleto | davidfetter: pooooong | 02:03 | |
| davidfetter | dukeleto, so let's imagine i want to do something super crazy like add on a new PL. said PL need not take arguments, and could live with needing to return exactly one specific data type like int4 | 02:08 | |
| what do i need to do? | |||
|
02:09
whiteknight left
|
|||
| dukeleto | davidfetter: read the source of PL/Parrot | 02:14 | |
| davidfetter , suitably chastened, Rs TFS | 02:20 | ||
| dukeleto | it is a fine, fine source. | 02:32 | |
|
02:36
rurban_ joined
02:39
rurban left,
rurban_ is now known as rurban
02:41
jjore left
02:42
Andy left,
jjore joined
03:11
Andy joined
|
|||
| dalek | rrot: 3e86e42 | jkeenan++ | / (42 files): Merge branch 'master' of git@github.com:parrot/parrot |
03:23 | |
| rrot: 9509f35 | jkeenan++ | / (2 files): Use cc_run_capture() instead of cc_run() to capture error output. Correct |
|||
| dukeleto | Microsoft just got another 882 patents out of the Novell buyout: www.readwriteweb.com/enterprise/201...chmate.php | 03:26 | |
| davidfetter | aloha, seen gerd | 03:30 | |
| aloha | davidfetter: gerd was last seen in #parrot 5 days 2 hours ago joining the channel. | ||
| davidfetter | hrm | ||
|
03:31
kid51 left
|
|||
| dukeleto | davidfetter: he is pretty active by email | 03:42 | |
|
03:42
bluescreen left
|
|||
| davidfetter | k | 03:45 | |
| davidfetter thinking that some QA step, probably at the Fedora project, didn't go quite right | |||
| dukeleto | davidfetter: nope | 03:47 | |
| davidfetter: which Rakudo is the fedora package using? | |||
| davidfetter | nope, i'm wrong about my QA hypothesis, or nope, it didn't go quite right? | 03:48 | |
| dukeleto | davidfetter: is it using Rakudo Star? | ||
| davidfetter: nope, you are correct that someone attempted to mate with a chicken | |||
| davidfetter | perl6 --version | ||
| This is Rakudo Perl 6, version 2010.09 built on parrot 2.8.0 | |||
| Copyright 2008-2010, The Perl Foundation | |||
| rpm -qf $(which perl6) | |||
| rakudo-star-0.0.2010.09_2.8.0-1.fc14.i686 | 03:49 | ||
| dukeleto | davidfetter: too new for current PL/Parrot | ||
| davidfetter | something should have noticed that :( | ||
| dukeleto | davidfetter: i am not sure the last version that worked, but i would bump it back a release of rakudo star and see if it works | ||
| davidfetter: my test suite did | |||
| davidfetter: evidentally their QA process didn't run the test suite | |||
| davidfetter | i'm sure it wasn't an issue on your end | ||
| dukeleto | davidfetter: probably because it requires postgres to be installed | 03:50 | |
| davidfetter | and? | ||
| dukeleto | davidfetter: it could be, but i know that my test suite pegs a cpu and coredump postgres with newer Rakudos | ||
| davidfetter: so obviously someone didn't run it | |||
| davidfetter | yeah, that's about what happned here | ||
| happened* | |||
| it crashes the backend. doesn't crash the postmaster, though | 03:51 | ||
| dukeleto | davidfetter: if you can provide me with debug info, like exactly what code is making that happen, perhaps i can fix it | ||
| davidfetter: nothing in PL/parrot should crash a postmaster | |||
| davidfetter | CREATE OR REPLACE FUNCTION test_fibonacci_plperl6(integer) RETURNS int LANGUAGE plperl6 AS $$ | ||
| (*@_) { | |||
| my $limit = @_[0]; | |||
| [+] (1, 1, *+* ... $limit) | |||
| } | |||
| $$; | |||
| dukeleto | davidfetter: PL/s can't crash the postmaster | ||
| davidfetter: unless they try *really* hard :) | |||
| davidfetter | i bet untrusted ones can ;) | ||
| dukeleto | davidfetter: i understand that tests makes the bug happen. But I need to know what happens when it is actually run | 03:52 | |
| davidfetter | for example, by sending SIGKILL to something | ||
| no, i wasn't running the tests | |||
| i ran that by itself | |||
| dukeleto | davidfetter: i imagine PL/Parrot is returning something invalid to Postgres, and then postgres starts eating rocks | ||
| davidfetter: i actually don't know if the bug is in Parrot or Rakudo, but PL/PIR is not effected. Only PL/Perl6 | 03:53 | ||
| davidfetter: i assumem Rakudo changed something, since they change a lot faster than Parrot | |||
| davidfetter | something buggered up QA for fair | 03:54 | |
| dukeleto | davidfetter: do you get a coredump? | 03:55 | |
| davidfetter: a backtrace might be helpful | |||
| davidfetter | hrm. where would a core dump appear? and if they're not set to appear, how would i arrange it so they do? | 03:56 | |
| dukeleto | davidfetter: in $PGDATA | 03:57 | |
| davidfetter: ulimit -c unlimited, before you start postgres | |||
| davidfetter: or restart after you have done the ulimit | |||
| davidfetter | just -c? no further arguments? | 03:58 | |
| dukeleto | "ulimit -c unlimited" | 04:01 | |
| davidfetter waits for the command to blow up the backend | 04:03 | ||
| dukeleto | davidfetter: yeah, it seems to take a bit | ||
| davidfetter | hrm. i'm not seeing a core dump. what would it be called? | ||
| dukeleto | it might not coredump | 04:06 | |
| davidfetter: are you sure your postgres was started after you did the ulimit? | |||
| davidfetter | yep | 04:07 | |
| fetter:postgres:~/data ulimit | |||
| unlimited | |||
| fetter:postgres:~/data pg_ctl restart | |||
| waiting for server to shut down.... done | |||
| server stopped | |||
| server starting | |||
| ok, if it doesn't dump core, what's the next thing to try? | 04:09 | ||
| dukeleto | sadface. | 04:24 | |
| davidfetter: yeah, it doesn't coredump on my machine either :) But now you know how to allow for coredumps. Very useful. | 04:25 | ||
| davidfetter: add debugging statements to plparrot.c and figure out exactly which line is causing the the CPU-pegging | |||
| davidfetter: with that info, i can probably figure out what is wrong | |||
| davidfetter: there is a debug() macro that does an elog() | |||
| davidfetter | k | 04:26 | |
| dukeleto | davidfetter: use that | ||
| davidfetter kinda needs to work on tomorrows preso, which isn't this :/ | |||
| it's on trees in SQL | |||
| dukeleto | "Until the dolphin flies and parrots live at sea..." -- Stevie Wonder, "As" | 04:28 | |
| davidfetter: you asked questions, I answer them. | 04:29 | ||
| davidfetter: don't ask me questions you don't want answers to ;) | |||
| davidfetter | and i appreciate, as always, your patience with my pointy-haired ignorance | ||
| dukeleto | davidfetter: is there a tree datatype in pg now? | ||
| davidfetter | depends what you mean. there's XML, but i'm not talking about that | 04:30 | |
| there are recursive Common Table Expressions (think query-time views). i'm talking about those | 04:31 | ||
| dukeleto | davidfetter: when you say "tree" i think of a directed acyclic graph (DAG), is that what you are talking about? | 04:32 | |
| davidfetter: i have no clue what a "query-time view" is | |||
| davidfetter | yes | ||
| WITH RECURSIVE t(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM t WHERE i < 10)SELECT * FROM t; | 04:33 | ||
| that's a CTE :) | |||
| a recursive one, even | |||
| dukeleto | spiffy. | 04:43 | |
| dalek | TT #1822 closed by dukeleto++: get_bool VTABLE not defined on a SockAddr | 05:01 | |
| TT #1822: trac.parrot.org/parrot/ticket/1822 | |||
| bacek_at_work | seen tcurtis | 05:51 | |
| aloha | tcurtis was last seen in #parrot 4 days 2 hours ago joining the channel. | ||
| bacek_at_work | msg tcurtis what's required to merge gsoc_past_optimizations? | ||
| aloha | OK. I'll deliver the message. | ||
| dukeleto | bacek_at_work: yes, i would like to see that happen | 05:52 | |
| dalek | rrot: 7592f8a | petdance++ | src/gc/fixed_allocator.c: Removed unused pointer *ret |
06:01 | |
| bacek_at_work | better to ask for excuse... | 06:14 | |
|
06:15
stilgar joined
|
|||
| dalek | rrot/gsoc_past_optimization: 4f3a3ac | dukeleto++ | t/pmc/boolean.t: [pmc] Add tests for converting Boolean PMC to a numeric, which should bring the coverage up to 100% |
06:18 | |
| rrot/gsoc_past_optimization: 9d32b3d | dukeleto++ | t/pmc/socket.t: [t] Add a test for cloning a Socket PMC |
|||
| rrot/gsoc_past_optimization: 3dc37d9 | dukeleto++ | t/pmc/socket.t: [t] Add a test for cloning a Socket PMC |
|||
| rrot/gsoc_past_optimization: ddf075a | dukeleto++ | / (2 files): [t] More tests for Socket PMCs, including one TODO test for cloning a Socket |
|||
| rrot/gsoc_past_optimization: 44b7807 | dukeleto++ | / (2 files): [t] More tests for Socket PMCs, including one TODO test for cloning a Socket |
|||
| rrot/gsoc_past_optimization: 3d6ced4 | dukeleto++ | t/pmc/socket.t: [t] Add tests for creating TCP and UDP sockets |
|||
| rrot/gsoc_past_optimization: 5f984d6 | dukeleto++ | t/pmc/socket.t: [t] Add tests for creating TCP and UDP sockets |
|||
| rrot/gsoc_past_optimization: 815fc78 | (James E Keenan (Jim))++ | / (3 files): Merge tt1810_missing_step_tests branch into trunk. Only report missing step tests when --test or --test=build is used. |
|||
| rrot/gsoc_past_optimization: d389c87 | (James E Keenan (Jim))++ | / (3 files): Merge tt1810_missing_step_tests branch into trunk. Only report missing step tests when --test or --test=build is used. |
06:19 | ||
| rrot/gsoc_past_optimization: a751cfd | dukeleto++ | t/pmc/socket.t: [t] Add some tests for closing Sockets |
|||
| rrot/gsoc_past_optimization: d0336b1 | dukeleto++ | t/pmc/socket.t: [t] Add some tests for closing Sockets |
|||
| rrot/gsoc_past_optimization: 614d420 | dukeleto++ | NEWS: [doc] Give NEWS some love |
|||
| rrot/gsoc_past_optimization: db72897 | dukeleto++ | NEWS: [doc] Give NEWS some love |
|||
| rrot/gsoc_past_optimization: 00f1f32 | dukeleto++ | t/pmc/socket.t: [t] Add tests for creating raw TCP and UDP sockets |
|||
| rrot/gsoc_past_optimization: 5ec1ea6 | dukeleto++ | t/pmc/socket.t: [t] Add tests for creating raw TCP and UDP sockets |
|||
| rrot/gsoc_past_optimization: c66d320 | dukeleto++ | t/pmc/socket.t: [t] Add tests for creating IPv6 sockets |
|||
| rrot/gsoc_past_optimization: eee6dd7 | dukeleto++ | t/pmc/socket.t: [t] Add tests for creating IPv6 sockets |
|||
| rrot/gsoc_past_optimization: 124b6fa | dukeleto++ | t/pmc/sockaddr.t: [t] Add a TODO test for get_bool on a SockAddr PMC |
|||
| rrot/gsoc_past_optimization: 2e8a58b | dukeleto++ | t/pmc/sockaddr.t: [t] Add a TODO test for get_bool on a SockAddr PMC |
|||
| rrot/gsoc_past_optimization: 0c9fde4 | dukeleto++ | docs/pdds/pdd22_io.pod: [pdd] Fix a fib in PDD22 about get_bool on a Socket |
|||
| rrot/gsoc_past_optimization: e7c797c | dukeleto++ | docs/pdds/pdd22_io.pod: [pdd] Fix a fib in PDD22 about get_bool on a Socket |
|||
| rrot/gsoc_past_optimization: df768c6 | cotto++ | NEWS: [NEWS] add PCore improvements to the news |
|||
| rrot/gsoc_past_optimization: 04dc999 | cotto++ | NEWS: [NEWS] add PCore improvements to the news |
|||
| rrot/gsoc_past_optimization: 435f5f6 | dukeleto++ | t/tools/mk_language_shell.t: [t] Improve diagnostic messages in tests for mk_language_shell.t |
|||
| rrot/gsoc_past_optimization: a3b8187 | dukeleto++ | t/tools/mk_language_shell.t: [t] Improve diagnostic messages in tests for mk_language_shell.t |
|||
| rrot/gsoc_past_optimization: 1ff59b4 | dukeleto++ | config/gen/makefiles/root.in: [t][TT#1823] Always create src/install_config.o, so that mk_language_shell and create_language can be used without installing Parrot |
|||
| rrot/gsoc_past_optimization: e3eb6f9 | dukeleto++ | config/gen/makefiles/root.in: [t][TT#1823] Always create src/install_config.o, so that mk_language_shell and create_language can be used without installing Parrot |
|||
| rrot/gsoc_past_optimization: 75fde0d | dukeleto++ | NEWS: [doc] Add note to NEWS about scripts no longer requiring an installed parrot |
|||
| rrot/gsoc_past_optimization: 78eb90e | dukeleto++ | NEWS: [doc] Add note to NEWS about scripts no longer requiring an installed parrot |
06:20 | ||
| rrot/gsoc_past_optimization: 9275498 | nwellnhof++ | / (17 files): [t] Convert most unicode:"" string literals to utf8:"" |
|||
| rrot/gsoc_past_optimization: ebc3c2c | nwellnhof++ | / (17 files): [t] Convert most unicode:"" string literals to utf8:"" |
|||
| rrot/gsoc_past_optimization: d4e2ec8 | nwellnhof++ | src/ (2 files): [src] Show string encoding in pbc_dump and pbc_disassemble |
|||
| parrot/gsoc_past_optimization: 675d90b | nwellnhof++ | src/ (2 files): | |||
| parrot/gsoc_past_optimization: [src] Show string encoding in pbc_dump and pbc_disassemble | |||
|
06:20
dalek left
|
|||
| cotto | we ought to get that bot looked at | 06:24 | |
| sorear | some "bacek@bacek.com" guy just sent a 0.5 MB commit packet to dalek | 06:28 | |
| I don't blame dalek for displaying what it's given | |||
|
06:29
pmichaud_ left
06:33
silug left
06:34
pmichaud joined
06:39
dalek joined
|
|||
| cotto | Who is this mysterious "bacek@bacek.com" character? I guess it will remain a mystery. | 06:40 | |
| plobsing | at least he didn't get any karma before dalek died | ||
| precious precious karma | 06:41 | ||
| dalek | rrot: 12740ed | petdance++ | src/pmc/boolean.pmc: consting two local vars |
06:51 | |
| bacek | bah! | 06:56 | |
| dukeleto | bacek: did you merge master into gsoc_past_optimization ? | 07:01 | |
| bacek | dukeleto, yes. It was only 2 conflicts. | ||
| dukeleto, guess in which files? | 07:02 | ||
|
07:07
bacek_ joined
|
|||
| cotto | bacek, any time you have a question, "PIRATE" is the magic word to get a +1 from me. | 07:08 | |
| It doesn't even have to be related to Parrot. | 07:09 | ||
| You could ask for a PIRATE beer and I'd probably try to find you one. | 07:11 | ||
| pmichaud, ping | 07:12 | ||
|
07:12
bacek left
07:15
baest left,
bacek_ is now known as bacek
07:19
zby__ joined
07:21
zby_ left
|
|||
| bacek | cotto, I reviewed diff with master. gsoc_past_optimization is pretty much self-contained and doesn't affect other parrot's systems. | 07:24 | |
| cotto | bacek, that's not surprising. | ||
| dalek | rrot/gsoc_past_optimization: 7592f8a | petdance++ | src/gc/fixed_allocator.c: Removed unused pointer *ret |
07:25 | |
| rrot/gsoc_past_optimization: 12740ed | petdance++ | src/pmc/boolean.pmc: consting two local vars |
|||
| rrot/gsoc_past_optimization: 71b19e4 | bacek++ | / (19 files): Merge branch 'master' of github.com:parrot/parrot |
|||
| rrot/gsoc_past_optimization: c6834a7 | bacek++ | / (33 files): Merge branch 'master' into gsoc_past_optimization |
|||
| rrot/gsoc_past_optimization: 0f2da8e | bacek++ | MANIFEST.SKIP: Regenerate MANIFEST.* |
|||
| bacek | More merging with master :) | ||
| cotto | excellent | 07:26 | |
| bacek | cotto, can you bring tomorrow to #ps? I probably will not attend. Early meeting at $work | 07:27 | |
| cotto | bacek, bring what? | ||
| bacek | ah. question of merging past_optimization | 07:28 | |
| My brainz are filing after 6 hours of meetings. | |||
| cotto | sure | ||
| msg cotto_work ask about merging past_optimization at #ps | |||
| aloha | OK. I'll deliver the message. | ||
| bacek | sigh. | 07:38 | |
| msg plobsing What happened to PackfileFixupTable? | 07:39 | ||
| aloha | OK. I'll deliver the message. | ||
| plobsing | bacek: fixup tables no longer exist | 07:40 | |
| bacek | plobsing, nice. Can you update examples/pir/make_hello_pbc.pir? | ||
| plobsing | not to the point where it works. packfile pmcs aren't working ATM. | 07:41 | |
| bacek | plobsing, how so? They were working not a long time ago. | 07:42 | |
| plobsing | dynop mapping broke them. I'm pretty sure they haven't been fixed since | ||
| bacek | ooookey. | ||
| So, we don't need FixupTable/FixupEntry anymore? | 07:43 | ||
| plobsing | nope | ||
| bacek | Just add Sub to PackfileConstants will work? | ||
| plobsing | yep | 07:44 | |
| all constants are equals now | |||
| bacek | Excellent! | ||
| plobsing++ # removing dark magick | |||
| Erm. And freezing on Interpet as first thing gone as well? | 07:45 | ||
| plobsing | yes. just did that one in last week. | ||
| don't do it now, it'll throw exceptions at you | 07:46 | ||
| bacek | I've got this exception. | ||
| cotto | bacek, my opmap_pmcs branch attempts to update the PMCs to use/generate an op map, but I'm currently stuck on debugging. | 07:51 | |
| You could hard-code a fixed op map, though that'd be pretty magical. | |||
| examples/pir/make_hello_pbc.pir in opmap_aware_pmcs shows the pir-level interface I'm aiming toward | 07:54 | ||
| bacek | cotto, I mostly done updating make_hello_pbc. Just got segfaults on running generated pbc. | 08:01 | |
| Ok. We do need PackfileBytecode PMC now. | 08:04 | ||
| plobsing | yes, bytecode has a structured header now | ||
| bacek | plobsing, yes. I can see it. | 08:05 | |
| plobsing | to keep track of the op mapping, and after the interp-freeze changes, to keep track of non-dynop .loadlibs as well | ||
| bacek | plobsing, can you update docs/pdds/pdd13_bytecode.pod to reflect changes in ConstTable and Bytecode please? | 08:07 | |
| cotto | I'm off to bed. | 08:08 | |
| 'night | |||
| plobsing | I can try. those things are terribly out of date and unreliable. | ||
|
08:16
theory left
08:19
fperrad joined
|
|||
| dalek | tracwiki: v4 | plobsing++ | PlobsingTaskList | 08:30 | |
| tracwiki: trac.parrot.org/parrot/wiki/Plobsin...ction=diff | |||
|
08:41
bacek left,
bacek joined
|
|||
| bacek | msg cotto You misunderstand Packfile*.get_pointer. It shouldn't pack by itself. It should just create PackFile_ByteCode. | 08:49 | |
| aloha | OK. I'll deliver the message. | ||
|
08:51
contingencyplan left
08:55
slavorgn left
|
|||
| dalek | a: ca69c2d | plobsing++ | lua/PASTGrammar.tg: use PGE;Util;line_number in place of CodeString.lineof |
08:57 | |
| a: e81ed49 | plobsing++ | lua/lib/luaregex.pir: update to upstream PGE;Expr changes PGE;Expr now uses StringBuilder in stead of CodeString |
|||
| a: 6394a0e | plobsing++ | lua/lib/luaregex.pir: update for upstream Perl6Regex changes StringBuilder is now used in stead of CodeString |
|||
|
09:30
bacek left
10:02
bacek joined
|
|||
| bacek | msg cotto opmap_aware_pmcs doesn't worth finishing with current PackFile_* vs Packfile PMC approach. Better to focus on "GCable Packfiles" and get rid of all PackFile_* stuff all together. | 10:10 | |
| aloha | OK. I'll deliver the message. | ||
|
10:37
rurban_ joined
10:39
rurban left,
rurban_ is now known as rurban
10:49
bacek left
|
|||
| dalek | TT #1864 created by bacek++: [RFC] Change coding standard to avoid 2 space outdent. | 10:56 | |
| TT #1864: trac.parrot.org/parrot/ticket/1864 | |||
|
11:02
bacek joined
11:21
Patterner left
|
|||
| dalek | TT #1859 closed by jkeenan++: 'make realclean' fails to remove release tarballs | 12:01 | |
| TT #1859: trac.parrot.org/parrot/ticket/1859 | |||
|
12:33
ambs joined
12:42
bacek left
|
|||
| Coke would reject 1859 as wontfix. | 12:59 | ||
| Coke is too slow, however. | 13:00 | ||
| moritz | if one wants a really thorough realclean, git clean -xdff exists :-) | 13:01 | |
|
13:03
kid51 joined
|
|||
| Coke | seems like "make gitclean" for that would be helpful. | 13:07 | |
| isn't there an make "svn<foo>" target? | |||
|
13:11
darbelo joined
13:14
kid51 left
13:16
darbelo left
13:17
whiteknight joined
13:30
jan left,
bluescreen joined
13:32
jan joined
|
|||
| whiteknight | good morning, #parrot | 13:35 | |
|
13:37
darbelo joined
|
|||
| dalek | TT #1865 created by ronaldws++: Allow more windows environments with git to work correctly with build ... | 13:38 | |
| TT #1865: trac.parrot.org/parrot/ticket/1865 | |||
|
13:42
darbelo left,
darbelo joined
|
|||
| bluescreen | good morning | 13:49 | |
| tadzik | good morning | 13:50 | |
|
13:51
contingencyplan joined
|
|||
| Coke | ~~ | 13:52 | |
| darbelo | o/ | 13:55 | |
| whiteknight | bluescreen: I think I have the library paths issue fixed this morning, but I need time to test it more and to push it | ||
| good morning, tadzik and Coke | |||
| bluescreen | very good, after that we should be ready to run make test | 13:58 | |
| whiteknight: I've tried the query for Trac i sent you yesterday in a local SQLite db and worked, so I'm thinking that there must be a limitation in custom queries | 14:00 | ||
| whiteknight | bluescreen: yeah, that's possible. I am not very familiar with Trac's DB or queries | 14:05 | |
| bluescreen | neither do I... I'm going to install a local copy a do more tests | ||
| dalek | TT #548 closed by whiteknight++: Error handling in socket system | 14:10 | |
| TT #548: trac.parrot.org/parrot/ticket/548 | |||
|
14:11
ambs left
|
|||
| whiteknight | we are now down below 50 open RFC tickets | 14:14 | |
| bluescreen | are you personally reviewing each one of them? | 14:16 | |
| whiteknight | sort of | 14:17 | |
| I'm looking at the ones whose titles look like things I can manage | |||
|
14:18
dngor left
|
|||
| dalek | TT #1866 created by jimmy++: Build parrot failed with PANIC on windows XP 32bit with strawberry perl | 14:27 | |
| TT #1866: trac.parrot.org/parrot/ticket/1866 | |||
|
14:29
bluescreen left,
bluescreen joined
|
|||
| whiteknight has a LOT of questions to ask at #ps | 14:32 | ||
| I may have to save some of them for next week | |||
| atrodo | Ooooh, exciting | ||
|
14:33
bluescreen left,
bluescreen joined
|
|||
| whiteknight | I really want to get DEPRECATED.pod cut in half in terms of size and number of entries by 3.0 | 14:34 | |
| much of that work is evaluating several items marked "experimental" | |||
|
14:40
bluescreen left,
bluescreen joined
14:42
Andy left,
bluescreen left,
bluescreen joined
14:44
bluescreen left
|
|||
| Coke | (closing tickets because no one commented on them)-- | 14:58 | |
| (closing tickets because they are invalid/not relevant)++ | 14:59 | ||
| NotFound | Coke: if no one comment on Request For Comments, the it's irrelevant. | 15:00 | |
| s/the/then | |||
| sjn | (complex topics that can't be described in one word but still deserve a karma readjustment)-- | ||
| szbalint | I close tickets all the time because of lack of response. But that's for issues I can't reproduce and the reporter has disappeared and I suspect it's a PEBKAC issue. | 15:01 | |
| sjn | warnocks dilemma: the bugtracker edition | ||
| szbalint | sjn++ | 15:02 | |
| (I usually allow a couple of months for response though) | |||
| moritz would love a "silently close this ticket if no comment added within $n weeks/months" function in RT | 15:04 | ||
| sjn would rather see a "warning: this bug needs some attention" mail after some weeks | 15:05 | ||
| moritz | the two are not mutually exclusive :-) | ||
| sjn | (e.g. "hey, maybe you should raise this issue on the mailing list and other fora?) | ||
| " | |||
| NotFound | "Maybe you should do whatever you want, given that no one cares" | 15:06 | |
| Coke | NotFound: I think RFCs in general need to be decided upon. "Allison was Busy" is not a good reason to drop a request on the floor. | 15:07 | |
|
15:08
dngor joined
|
|||
| NotFound | Coke: after several months, even the author doesn't know what the issue is/was. | 15:09 | |
| whiteknight | Keeping around a huge muddy list of open tickets simply because they haven't been addressed yet isn't really good either | 15:10 | |
| the list of open tickets, especially tickets without owners, is unmanagably large. People can't find tickets that need to be addressed | |||
| RFCs that attract no comments in several months and are not pressing issues are just taking up space | 15:11 | ||
| Coke | Throwing things on the floor because we are bad at managing tickets is not a good plan. | ||
| NotFound | BTW I don't think a ticket is a good place to put recommendations for reading papers or evaulating libraries. | ||
| whiteknight | Keeping things off the floor forever when they have questionable value and no interest is not a good plan either | ||
| Notfound: that's probably true too | 15:12 | ||
| Coke | if a ticket is rejectable, reject it. | ||
| atrodo | What you need is a bigger floor... | ||
| whiteknight | I have been | ||
| Coke | if a ticket is OLD, triage it. | ||
| whiteknight | many old tickets are rejectable | ||
| Coke | OLD NEQ REJECTABLE | ||
| moritz | if a ticket is too vague to be closable, request clarification | ||
| Coke | yes. I am arguing that old is not a sufficient condition. | ||
| moritz | if no clarification comes, reject | ||
| Coke: agreed | |||
| whiteknight | old is not sufficient, but in many cases it plays a very large part | 15:13 | |
| NotFound | Die, old ticket, die! | ||
| Coke | disagree. | ||
| dalek | nxed: r687 | NotFound++ | trunk/winxedst1.winxed: simplify a bit and improve generated code in operator * |
15:15 | |
|
15:15
dmalcolm joined,
bluescreen joined
15:21
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
| dalek | nxed: r688 | NotFound++ | trunk/winxedst1.winxed: method Emit.emitmul |
15:26 | |
|
15:38
PerlJam left,
PerlJam joined
15:39
bluescreen left
|
|||
| dalek | p-rx/nomnom: 60d7e50 | (Solomon Foster)++ | src/HLL/Compiler.pm: Break HLL::Compiler away from PCT::HLLCompiler. |
15:40 | |
| p-rx/nomnom: e18ba58 | (Solomon Foster)++ | src/NQP/Compiler.pir: Try to fix code to use the new @!cmdoptions, but apparently the original code was broken and so the fix does nothing useful. |
|||
|
15:45
bluescreen joined
|
|||
| dalek | TT #1450 closed by whiteknight++: Improve handling of experimental features | 15:48 | |
| TT #1450: trac.parrot.org/parrot/ticket/1450 | |||
|
15:49
bluescreen left
15:52
bluescreen joined
15:55
bluescreen left
15:58
bluescreen joined
16:00
bluescreen left
16:07
bluescreen joined
16:08
theory joined,
Andy joined
|
|||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#1284) fulltest) at 12740ed - Ubuntu 10.10 i386 (g++-4.5) | 16:11 | |
| Andy | anyone heard of goanna? | 16:12 | |
|
16:12
bluescreen left
|
|||
| whiteknight | Andy: never heard of him | 16:16 | |
| Andy | It's a static analysis tool. | 16:20 | |
| Someone on mongodb is using it | |||
| and you know how I love the static analysis tools. | |||
| whiteknight | Andy: if it's worthwhile, we could get some other devs involved. you be interested in running some tests? | 16:25 | |
| if the tool turns out to be worth using, it should be easy to sell it to the other parrot devs | 16:26 | ||
| Andy | I always am. | ||
| Turns out it's commercial. | |||
| whiteknight | oh | ||
| Andy | At one point we had Klocwork and Coverity doing scans for us. | ||
| but haven't heard from them in forever. | |||
| whiteknight | no, me either | 16:27 | |
| I don't know who was in charge of that | |||
| Coke | I would ping chromatic & particle about Coverity | ||
| Klocwork rings no bells except for a sly cooper soundalike. | 16:28 | ||
| whiteknight | msg cotto I accepted a student for one of the GCI tasks you are mentoring. I was hoping I could become the mentor myself but it assigned it to you. Anyway...you might want to go look at whatever I signed you up for :) | 16:30 | |
| aloha | OK. I'll deliver the message. | ||
| NotFound | whiteknight: TT #85: I don't think that the ability to set the current HLL from embedding is something desirable. | ||
| Andy | Coke: I pinged both Coverity and Klocwork myself. | ||
| and heard nothing back. | |||
| NotFound | In fact, I think the "current HLL" concept is wrong. | 16:31 | |
| Coke | Do you have a ticket open with what you think the /right/ HLL concept is? | 16:32 | |
| NotFound | A context, a Sub has an associated HLL... but the interpreter hasn't. | ||
| Coke: we have a repository with it. | 16:35 | ||
| In fact, there is no current_HLL member in the interpreter right now. | 16:38 | ||
| whiteknight | NotFound: We can work out the details later, but we do need a way to interact with HLLs from embedded code | 16:42 | |
| NotFound | whiteknight: surely messing with whatever the current context is using is not a good way. | ||
| whiteknight | no, you're right about that | 16:45 | |
| but when we are doing symbol lookups, we need to be able to specify the HLL as part of the lookup path | |||
| we need to be able to create an HLL and insert things into it | |||
| NotFound | whiteknight: yeah, I only disagree with the "current" part. | 16:46 | |
| whiteknight | okay, forget I said that word. I take it back | ||
|
16:49
jsut_ joined
|
|||
| dalek | TT #149 closed by whiteknight++: Add capability for trying different library names to DBDI::SQLite3 | 16:53 | |
| TT #149: trac.parrot.org/parrot/ticket/149 | |||
|
16:54
jsut left
16:56
plobsing left,
slavorgn joined
17:07
hercynium joined
17:30
Andy left
|
|||
| dukeleto | 'ello | 17:33 | |
| cotto | hi dukeleto | 17:34 | |
| is portland shut down too? | |||
| whiteknight | portland shut down? | 17:35 | |
| allison | it's certainly snowy | ||
| but I don't know if it's going to stick | 17:36 | ||
| I hear it's 3.5 inches in Seattle? schools closed? | |||
| here in portland it looks more like .5 inches, and a soggy half inch at that | |||
| cotto | allison, some snow, lots of ice. Officials are telling people to stay home. | 17:37 | |
| allison | cotto: my son is thrilled at no school today :) | ||
| cotto | My prius and I are inclined to agree. | ||
| allison | cotto: personally I'm just hoping the black ice clears before I drive up on thursday :) | 17:38 | |
| cotto too | |||
| dukeleto | cotto: nah, just a tiny bit of snow on the ground | ||
| cotto | It's a good day for Parrot hacking. | 17:39 | |
| whiteknight | it's always a good day for parrot hacking | ||
| atrodo | Wow, and it's a beautiful fall day here in Ohio | ||
| whiteknight | atrodo: whereabouts in Ohio? | 17:40 | |
| atrodo | whiteknight> Cincinnati | ||
| whiteknight | oh nice | ||
| Coke | awesome here in albany. 50s, only a bit of rain earlier. | ||
| whiteknight | It's in the 50s here which is nice except some of my coworkers insist on keeping their windows open | 17:41 | |
| atrodo | 50s is a good temperature for outdoors, really bad for indoors | 17:42 | |
|
17:44
macroz joined
|
|||
| NotFound | Pesky Farenheit... | 17:46 | |
| cotto | bacek_at_work, ping | 17:55 | |
| aloha, clock? | |||
| aloha | cotto: cotto: LAX: Tue, 09:55 PST / CHI: Tue, 11:55 CST / NYC: Tue, 12:55 EST / UTC: Tue, 17:55 UTC / LON: Tue, 17:55 GMT / BER: Tue, 18:55 CET / TOK: Wed, 02:55 JST / SYD: Wed, 04:55 EST | ||
|
18:23
lucian joined
18:37
rurban_ joined
18:39
rurban left,
rurban_ is now known as rurban
18:53
bacek joined
|
|||
| dukeleto is back | 18:56 | ||
| atrodo: very cool benchmarking stuff. Tool::Bench has it's first user! | 18:57 | ||
| atrodo: i am very excited | |||
| atrodo: i haven't looked at the code yet | |||
| atrodo: ;) | |||
| atrodo | dukeleto> Not a whole lot to it at this point. Half of the example script got "recycled" | ||
| cotto | atrodo, that's very environmentally friendly of you | 18:59 | |
| atrodo | cotto> Hey, every bit helps | ||
| Coke | is there a way to tell a git clone to lose any local commits and just be a fresh clone again? | ||
| atrodo | dukeleto> It actually works out pretty well. The idea for submissions is to submit JSON | 19:00 | |
| whiteknight | Coke: git reset --hard? | 19:01 | |
| dukeleto | whiteknight: no | 19:05 | |
| whiteknight | git reset --goddamnit? | ||
| dukeleto | whiteknight: but maybe. Not recommened "git reset --hard" unless you know exactly what is up. That command can delete uncommitted changes | ||
| Coke: you have local commits and want to reset to what origin has? | |||
| dukeleto can't type today, evidently | 19:06 | ||
| s/Not recommened/Don't recommend/ | |||
| Coke: do a "git fetch" to make sure you have the latest copy of origin | |||
| Coke: make sure you have no uncommitted files in your directory, then you can "git reset --hard origin/master" | 19:08 | ||
| Coke: but if you have uncommitted files, there are other ways, that are more commands, but safer | |||
| Coke | dukeleto: in that case, doing a fresh clone is probably just easier. Danke. | 19:09 | |
| dukeleto | Coke: you can do "git branch -m master old_master" to rename the master branch. Then do a "git checkout -b master origin/master" | ||
| Coke: up to you. The more you learn the less work you will have for yourself in the future. | |||
|
19:18
Coke left,
Coke joined
19:25
dngor_ joined
|
|||
| cotto | bacek_at_work, ping | 19:26 | |
|
19:29
dngor left
|
|||
| cotto | aloha, clock? | 19:29 | |
| aloha | cotto: cotto: LAX: Tue, 11:29 PST / CHI: Tue, 13:29 CST / NYC: Tue, 14:29 EST / UTC: Tue, 19:29 UTC / LON: Tue, 19:29 GMT / BER: Tue, 20:29 CET / TOK: Wed, 04:29 JST / SYD: Wed, 06:29 EST | ||
|
19:31
tcurtis joined
|
|||
| whiteknight | Do we have a cafepress store, or an equivalent? | 19:32 | |
| I know the rakudo folks do | |||
| dukeleto | whiteknight: not that I know of | 19:34 | |
| cotto | #ps in 56 | ||
| bacek | good morning, humans | 19:36 | |
|
19:36
dngor_ is now known as dngor
|
|||
| bacek | cotto, pong | 19:36 | |
| Coke | I thought we did ages ago. | ||
| probably a link to it buried in the old parrotcode svn web site source. | |||
| whiteknight | we should have one | 19:37 | |
| Coke: where does one get their hands on that source? | |||
| bacek++ | 19:38 | ||
| In fact, I think you should get one karma for every % performance improvement on Rakudo | |||
| bacek | whiteknight, :) | 19:39 | |
| Util | bacek++ # Whoohoo! | ||
| cotto | bacek, could you clarify what you think the packfile PMCs should look like? | ||
| bacek | there is some brokage of rakudo according to moritz++... I couldn't reproduce them. | ||
| whiteknight | yeah, but is it breaking *fast*? | ||
| Coke | whiteknight: I'm not sure it even exists anymore. it would hark back to the days when parrotcode.org and dev.perl.org/perl6/ were the primary websites. | ||
| whiteknight | :) | ||
| cotto | I'm not sure if you're thinking the same thing as plobsing (thin wrappers around structs) or the opposite (totally PMC-based). | 19:40 | |
| Coke | I'm trying to find the old svn url. | ||
| bacek | cotto, currently Packfile PMCs recreate PackFile_* structs for pack. | ||
| cotto | Sure. | ||
| whiteknight | tcurtis++ | ||
| bacek | cotto, I'm thinking in opposite direction - get rid of PackFile_* structs and use only PMCs. | 19:41 | |
| cotto | Ah, so the opposite of plobsing's recommendation then. | ||
| whiteknight | cotto, bacek: The embedding API isn't going to use PackFile structs. It will only use PMCs. At the moment I am using an UnManagedStruct PMC with a pointer to a PackFile, but I feel like that's stupid | ||
| Coke | whiteknight: yah, looks like it's long gone. | ||
| whiteknight | Coke: okay, that's what I figured | 19:42 | |
| bacek | cotto, with this approach we violate DRY principle. Especially for ByteCode op mapping. | ||
| moritz | bacek: somebody else has reproduced it on amd64 too | 19:43 | |
| bacek | moritz, ok. I'll try again. | ||
| whiteknight | Has anybody seen this: www.amazon.com/Register-Based-Virtu...1155681894 | 19:44 | |
| bacek | moritz, I suspect that branch revealed some oddness inside parrot. | ||
| PerlJam | whiteknight: now *that* looks like vaporware to me. | 19:45 | |
|
19:47
nwellnhof joined
|
|||
| whiteknight | I think I may set up a store soon. Anybody have any preferences? Cafepress? The Rakudo folks seem to be using Zazzle | 19:47 | |
| cotto | bacek, have you thought about how we'd get from where we are now with the PackFile_* structs to a fully PMC-based packfile implementation? | ||
| and what about speed? | 19:48 | ||
| bacek | cotto, just start it, do it, finish it. | ||
| speed will be same. We can still extract valuable raw data (e.g. constants) for use in hot-path. | |||
| Util | rakudo.de/ says: Rakudo and Perl 6 T-shirts are available from spreadshirt, Cafepress and Zazzle. | 19:49 | |
| cotto | There's some charm in that approach, though it'll mean a lot of refactoring. | ||
| bacek, one thing that worries me is that with the current state of the packfile PMCs, we can't make such a change incrementally | 19:50 | ||
| bacek | cotto, nope. It's quite similar to moving Context from ref-counts to PMCs. Whole lot at once. | 19:51 | |
| whiteknight | Util: Oh, I didn't know they had multiple stores | 19:52 | |
| cotto | Having a singe packfile implementation would be very nice. | ||
| whiteknight | I'm looking at printfection.com now. It looks like they have a lot more merchandise options than other places do | ||
| cotto | doing it all at once, not so much | ||
| whiteknight | a single packfile implementation would be very nice, yes | 19:53 | |
| we wouldn't really do it all at once. First step would be to encapsulate what we have properly. After that, we replace the internals | |||
| same as happens with GC | |||
|
19:55
plobsing joined
|
|||
| cotto | speaking of packfiles... | 19:55 | |
| plobsing | ~~ | ||
| cotto | hi plobsing | ||
| bacek | cotto, actually we can do it incrementally. | 19:56 | |
| cotto | bacek, yes. I was just thinking about the mechanics of how that'd work. | ||
| bacek | 1. Change parrot guts to work with Packfile PMCs in run-time. | ||
| 2. Implement .unpack | 19:57 | ||
| 3. Implement .pack | |||
| 4. Switch imcc to PMC version. | |||
| Improving/changing PMCs on each step if required. | |||
| plobsing | if we implement the Packfile PMCs to have the same contents as the PackFile structs do now, the conversion is almost trivial. | 19:58 | |
| after that we can iterate | |||
| bacek | plobsing, they were almost same when I implemented them. | 19:59 | |
| plobsing | they've got PMC aggregates internally. that's not good (eg: for fast constant lookup) | ||
| Util | whiteknight: regarding that book, see this warning about the publisher : www.chrisrand.com/blog/index.php/20...ment-15970 | ||
| whiteknight | Util: ah, I've heard of companies doing things like that before | 20:02 | |
| very interesting | |||
| bacek | plobsing, ConstantTable? We can implement .get_pointer for F*A and extract raw data for fast lookups. | 20:03 | |
| Util | at 52 pages, it is probably just printouts of all the wikipedia articles listed on the group page: en.wikipedia.org/wiki/Category:Regi...l_machines | 20:04 | |
| bacek | or change ConstantTable to not use R*A internally. | ||
| plobsing | I see the use of aggregates within aggregates to approximate datastructures as a perl-ism that doesn't necessarily translate well to C | 20:05 | |
| bacek | plobsing, agreed. But we can change it :) | 20:06 | |
| And we are moving away from C anyway. | |||
| (May be not in this case) | |||
| plobsing | actually, PBC pack/unpack and PMC freeze/thaw are (in my view) some of the first things we should move over to Lorito to prove viability | 20:07 | |
| (once Lorito can emit static C) | |||
| dalek | nxed: r689 | NotFound++ | trunk/winxedst (2 files): allow multiple declarations in int, float and string statements |
20:08 | |
| plobsing | freeze/thaw at least can very easily be done in an HLL (see my deepclone github project done primarily in winxed) | ||
| whiteknight | is it performant? | 20:09 | |
| bacek | for pack/unpack we need only "FixedIntSizeArray" PMC. | ||
| plobsing | performant? I've never benchmarked it. I don't imagine its much slower than a C implementation. the freeze/thaw logic is pretty dumb (a good thing in my view), it mostly just dispatches to PMCs. | 20:11 | |
| GeJ | Bonjour everybody. | ||
| Util | Hi, GeJ | ||
| whiteknight | hello GeJ | 20:12 | |
| plobsing | bacek: for pack/unpack we want FixedIntSizeMmaped, so we don't have to copy large arrays around. | ||
| NotFound | winxed users don't do benchmarks. They already know it's fast ;) | ||
| whiteknight | :) | ||
| bacek | plobsing, we do copy now. | ||
| whiteknight | NotFound: what does Winxed output, pir or pbc? | ||
| NotFound | whiteknight: pir | 20:13 | |
| whiteknight | damn | ||
| plobsing | bacek: orly? file:line ref? | ||
| NotFound | whiteknight: pbc is a too moving target. | ||
| whiteknight | Notfound: is Winxed installable now? Can we get it through plumage? | 20:14 | |
| bacek | plobsing, pbc_merge_loadpbc | ||
| NotFound | whiteknight: yes, but some command line options are missing in the installed fakecutable. | ||
| whiteknight | okay | ||
| NotFound | The advantage is that you don't need a C++ compiler. | 20:15 | |
| bacek | plobsing, Parrot_pbc_read | ||
| whiteknight | NotFound: yes, a big advantage | ||
| plobsing | it shouldn't be too hard to add a packfile/pbc backend to winxed once packfile pmcs become more usable | ||
| whiteknight | that's what I'm hoping | 20:17 | |
| NotFound | I'm slowly encapsulating more details in the Emit class, in order to do that easily. | ||
| plobsing | bacek: OK, fair enough. | ||
| but until then, using opcode_t* isn't too bad | |||
| bacek | plobsing, anyway, it's just small details. We can implement FixedSizeIntArray with optional mmaped data for read. | ||
| whiteknight | somebody was working on an MMapped byte array data type | 20:18 | |
| bacek | plobsing, I mostly speak about PF_fetch_opcode. | ||
| NotFound | whiteknight: I'm just thinking about it, nothing written yet. | ||
| bacek | and other PF_fetch_* functions which should be supported by magical FSIA PMC | ||
| whiteknight | ah, okay. My memory has too many people and projects in it | ||
| plobsing | bacek: as far as I'm concerned, that's already almost a vtable interface: fetch_opcode is shift_integer | 20:19 | |
| its already mostly encapsulated | |||
| bacek | plobsing, agreed. Let's do it! :) | ||
| darbelo | JFDI++ | 20:20 | |
| mikehh | #ps in 10 | ||
| plobsing | patience. we need static C first. else how will we load the loader? | ||
| bacek | FSIA.init($buf_pointer, $int_size, $is_mmaped) as star | ||
| "static C"? | |||
| plobsing | as in not runtime at all | ||
| NotFound | Maybe better inheritance than options. | ||
| cotto | generated C | ||
| bacek | I'm not talking about .pack/.unpack implemented in Lorito. | 20:21 | |
| plobsing | ok, I'm lost then | ||
| bacek | I'm talking about "pure PMC" based implementation. | ||
| Than we can swap "hand-crafted C" with "Lorito-generated C" | |||
| In bright future. | 20:22 | ||
| plobsing | horse--cart v-> | 20:23 | |
| bacek | For now - just 2 new PMCs: FSIA and FSAIiterator (modulo better name) | ||
| plobsing | bacek: not terribly interested in encapsulating this further. we already need to break encapsulation for performant bytecode execution. | 20:24 | |
| bacek | plobsing, just .get_pointer to get raw C array to use during execution. | 20:25 | |
| plobsing | what I'm saying is that the interface maps naturally to a vtable interface if and when we choose to move it (which will likely happen in Lorito) | ||
| bacek | Or I missed something? | ||
| plobsing | it isn't really useful before that (except to increase the verbosity of hand-crafted C) | ||
| bacek | it is useful. I do want PIRATE working. | 20:26 | |
| plobsing | you don't need that for pirate. or rather, I don't think you should be using that to make pirate work. | ||
| bacek | 1. I need Packfile PMCs functional (again) | 20:27 | |
| darbelo | plobsing: PIRATE needs to emit PBC from PIR, that neds the Packfile PMCs. | ||
| bacek | 2. Implementing PackfileByteCode* PMCs with current approach is waste of time | ||
| plobsing | agree on both points. nothing prevents simply wrapping PMCs around our existing structs. | 20:28 | |
| bacek | 3. Switch parrot guts to use Packfile PMCs will kill 2 birds with one stone. | ||
| cotto | bacek, how does this sound: | ||
| 1 - rip out current packfile PMCs | |||
| 2 - split packfile functions into separate files | |||
| 3 - modify packfile functions into a pmc-like interface using PMCs wherever possible | |||
| 4 - rewrite packfile code into PMCs | |||
| darbelo | 0 - put a deprecation notice. | 20:29 | |
| bacek | cotto, current packfile functions already in OO style. | 20:30 | |
| cotto | orly | ||
| whiteknight | #ps | ||
| plobsing | darbelo: PackFile PMCs are experimental | ||
| cotto | yes, they are | ||
| kinda | |||
| Util | cotto: and so we end up with no direct C access to packfiles. Is that aspect acceptable? | ||
| plobsing | also PackFile PMCs are internal-implementation-details and should be free to change whenever | ||
| using PMCs to implement our internals is a very different thing from providing an interface | 20:31 | ||
| bacek | plobsing, we did it with CallContext already. It's doable. | 20:32 | |
| plobsing | agreed. I think CallContext is a great example. it's basically a struct wrapped in a PMC | 20:33 | |
| NotFound | Util: you can access from C via public API. | ||
| plobsing | and the public C API shouldn't be exposing struct guts anyways | ||
| bacek | plobsing, indeed | 20:34 | |
| cotto | bye bacek | 20:39 | |
|
20:41
stilgar left
20:47
janus left
20:48
tcurtis left
21:07
bacek left
21:13
macroz left
21:24
stilgar joined
|
|||
| dalek | tracwiki: v5 | plobsing++ | PlobsingTaskList | 21:29 | |
| tracwiki: trac.parrot.org/parrot/wiki/Plobsin...ction=diff | |||
| TT #1867 created by plobsing++: RFC: optional fakecutable preamble | |||
| TT #1867: trac.parrot.org/parrot/ticket/1867 | |||
|
21:32
whiteknight left
|
|||
| plobsing | cotto: do you have a couple of minutes to discus lorito op dispatch? | 21:33 | |
| cotto | sure | 21:34 | |
|
21:34
kid51 joined
|
|||
| cotto | I have a large number of minutes thanks to Bellevue being shut down by snow. | 21:34 | |
| plobsing | the paper on efficient interpreters piqued my interest. | 21:35 | |
|
21:35
davidfetter left
|
|||
| kid51 | Whiteknight's Nov 20 email about the Summit may not have gotten complete distribution; it appears gmane didn't pick it up. | 21:35 | |
| cotto | I loved how the practical conclusion was about 5 words long. | ||
|
21:36
kid51 left
|
|||
| darbelo | IIRC some of the techniques in that paper were unlikely to benefit parrot in it current state. | 21:36 | |
| plobsing | I ran some profiling tests. parrot currently is not dominated by op dispatch, but lorito will most likely change that | ||
| mikehh | cotto, plobsing : which paper? | ||
| cotto | plobsing, agreed | ||
| darbelo | mikehh: 'The structure of efficient interpreters' | 21:37 | |
| cotto | citeseerx.ist.psu.edu/viewdoc/downl...p;type=pdf | ||
| pdf download | |||
| plobsing | a simple "count up to hugeint" benchmark runs 33% faster on cgoto than fast core (both from parrot 2.3.0) | ||
| the branch mispredict is essentially zero in cgoto and 100% in cgp and fast | |||
| cotto | whiteknight's idea of aggregate ops is basically what the paper suggested as one of the methods of improving such an interpreter. | 21:38 | |
| plobsing | that requires a jit | 21:39 | |
| we will *always* have some interpret stage | |||
| the faster we interpret, the faster we can find hotspots/traces to jit and/or op-sequences to fuse | 21:40 | ||
| not to mention, parrot still needs to be performant without a jit | |||
| darbelo | We'll also still need a c89 compliant fallback core, for people without a sufficiently advanced compiler. | 21:41 | |
| cotto | darbelo, yes. I expect that the output from that core will be how we bootstrap. | ||
| or at least C-something | |||
| plobsing | I have some thoughts on changes on the approach we previously had with the alternate op-dispatch strategy runcores | 21:42 | |
| mikehh | yeah, but what is the difference if we use more advanced features of the compiler | ||
| plobsing | 1) even msvc optimizes tailcalls. we can make each op tailcall the next op, which gives essentially the same assembly as cgoto. | 21:43 | |
| mikehh | like ok if you gotta use c89, do this, but for the rest of us do something else | ||
| cotto | mikehh, that's possible | ||
| atrodo enjoys when lorito gets talked about | 21:44 | ||
| darbelo | mikehh: That is the approach the old runcores took. cgoto was gcc-only. | ||
| plobsing | 2) choosing between op-dispatch strategies is not something users should do. we should choose the best strategy we can support for the platform in configuration and make *all* of our runcores use that dispatch strategy | ||
| cotto | we could even have compiler-specific C, as long as there's a generic version too | ||
| plobsing | specifically, if parrot is compiled for cgoto, slow core, profiling core, and tracing core should also be cgoto | ||
| darbelo | I like that, but we should be careful about buying more permutations than we can fool people into maintaining. | 21:45 | |
| plobsing | this way, we don't need multiple sets of ops for different cores | ||
| darbelo | I worry about the potential for "This makes test foo fail on $OBSCURE_PLATFORM when we use $VENDOR_COMPILER version X.Y.Z" | 21:48 | |
| plobsing | a tailcall core, even on a compiler that doesn't do TCO would be better than fast core. chicken scheme does exactly this (cheney on the m.t.a.). | 21:49 | |
| cotto | plobsing, interesting idea. | ||
| plobsing | not sure how often we'd be longjmping and how costly that would be | 21:50 | |
|
21:52
darbelo left
|
|||
| plobsing | darbelo: because we set prefered op-dispatch strategy based on platform in configure, we can always fudge obscure platforms. | 21:52 | |
| aloha, msg darbelo because we set preferred op-dispatch strategy based on platform in configure, we can always fudge obscure platforms (until someone cares enough to give them some love/speed) | 21:53 | ||
| aloha | plobsing: OK. I'll deliver the message. | ||
|
21:53
stilgar left
|
|||
| sorear | in environments that follow the Itanium[sic] C++ ABI, longjmp entails an exception unwind and is much slower than just returning from each frame | 21:54 | |
| plobsing | c++ can be slow. I don't care | 21:55 | |
| sorear | longjmp is part of the C library, though | ||
| if you have any C++ apps installed, you need a C++ aware libc | |||
| and a C++ aware libc needs a longjmp that can call destructors | 21:56 | ||
| plobsing | the thing is, longjmp is amortized of many, many ops, each of which can have it's own split tail, which means each can be branch predicted separately | ||
| NotFound | sorear: but the spec don't require anything about his speed. | ||
| plobsing | I'm not trying to save on ret instructions. I'm trying to save on mispredicted call *rax instructions. | 21:57 | |
| if you have perfect tco, you don't even need to longjmp. it basically boils down to "crappy compiler is crappy" | 21:58 | ||
| sorear | ok | ||
| how do you know if the compiler is bad? | |||
| plobsing | profile | ||
| sorear | install a sigsegv handler and RLIMIT_STAC? | ||
| plobsing | test in configure. | 21:59 | |
| fudge based on platform | |||
| there's plenty of strategies | |||
|
22:06
fperrad left
|
|||
| cotto | plobsing, how would load_language 'PIR' be run without pir? | 22:12 | |
| plobsing | its an op | ||
| it has nothing to do with PIR (besides loading it) | |||
| you can do it from NQP which emits PBC directly | 22:13 | ||
| or any other PBC generator | |||
| sorear | if you use parrot-pir, you get PIR autoloaded | ||
| if you use parrot-pir and tell it to save PBC, you need to write the op | 22:14 | ||
| cotto | ok | ||
| plobsing | yes. pir gets an hll executable just like everybody else | ||
| dalek | TT #1868 created by plobsing++: RFC: deprecate PIR | 22:17 | |
| TT #1868: trac.parrot.org/parrot/ticket/1868 | |||
| plobsing decommutes | 22:22 | ||
|
22:22
plobsing left
|
|||
| NotFound | Note that some features of load_bytecode sould be deprecated before doing that. | 22:24 | |
|
22:25
TonyC left,
nopaste left
|
|||
| sorear | NotFound: What should "ch".chars be? (/me is trying again to grok perl6 CharLingua) | 22:30 | |
| NotFound | sorear: If I remember well, .chars is the char length. | 22:33 | |
| Didn't we have an eval bot? | 22:34 | ||
| perl6:say("ch"); | |||
| try.rakudo.org/ | 22:36 | ||
| say("ch".chars); | |||
| 2 | |||
| Yeah, .chars is the char length and .bytes is the byte length. | 22:37 | ||
| Util | If the string was non-ascii, .bytes could be larger than .chars. | 22:38 | |
| The eval bot is in the freenode/#perl6 channel | 22:39 | ||
| NotFound | We should add some encoding were chars may be large than bytes, just to annoy some pople. | 22:40 | |
| ascii binary packed as 8 chars in 7 bytes, for example | 22:41 | ||
| Util | Hmmm. I wonder what .chars does for composed chars, like spanish vowels with ~ , that can actually be composed of two different characters | ||
| NotFound | Util: in most usages is one codepoint. | 22:44 | |
| Util | Certainly *most*, but *all*? | ||
| NotFound | If using composition, I think it will depend on using grapheme normalization or not. | 22:45 | |
| Util | Oh, I see. We were coming at the same joke from two different angles. | ||
|
22:45
plobsing joined
|
|||
| Util | So you want, say, Mime-64 as an encoding :) | 22:46 | |
| NotFound | Util: yeah, it can be useful as a counter-example against over simplifications. | 22:47 | |
| But maybe it will have some speed impact in string manipulations. | 22:49 | ||
|
23:00
davidfetter joined
23:06
nopaste joined
23:07
TonyC joined
23:19
davidfetter left
|
|||
| cotto | allison, ping | 23:41 | |
| dukeleto | hola | 23:47 | |
| allison | cotto: pong | 23:48 | |
| cotto | allison, do you have any thoughts on what criteria should be used to decide what goes into Parrot and what should be external? | 23:51 | |
| dukeleto | cotto: the important stuff goes in core. The optional stuff doesn't. Very easy ;) | 23:52 | |
| cotto | So Rakudo isn't important. Got it. | ||
| allison | cotto: there's not a single easy answer, but a balance of many contributing factors | 23:53 | |
| cotto | Sure. If there were an easy answer, I'm sure it'd be part of our tribal knowledge by now. | 23:54 | |
| allison | cotto: for rakudo, it was mainly two things, copyright ownership (which should be perl foundation), and pace of development (not a good fit for parrot's deprecation cycles) | ||
| cotto: same for NQP | |||
| another concern is parrot's install footprint | 23:55 | ||
| which is already too large | |||
| the flip side of that, is that we don't have an easy way to install parrot modules yet | |||
| quite a few things we currently ship in the tarball would be better off external, if it wasn't a pain to install them | 23:56 | ||
| the bare minimum that has to be in the base tarball is "any code required to compile the core interpreter" (be it static or dynamic) | |||
| the next layer is "any tools required to build a language" | 23:57 | ||
| which is not every possible set of tools to use in building a language | 23:58 | ||
|
23:58
TypeNameHere_ joined
|
|||
| allison | but, it needs to be possible to build a language on parrot with a default install | 23:58 | |
| I should rephrase that: it needs to be possible to *run* a language on parrot with a default install | |||
| there may be additional tools that developers have to install to build the language | 23:59 | ||
| cotto | but if they're using the standard toolchain, "build" also applies | ||