Camelia, the Perl 6 bug

IRC log for #parrot, 2010-11-23

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:02 nwellnhof left #parrot
00:06 whiteknight bluescreen: I just pushed some changes. miniparrot doesn't segfault anymore, but it doesn't work either. Some debugging to do
00:27 bluescreen let me pull that
00:29 bluescreen will git pull bring the latest changes in embed_api branch?
00:31 whiteknight in my fork, yes
00:35 bluescreen you still using your fork, I thought you'll jump to the main parrot repo
00:35 cotto ~~
00:37 whiteknight hah, silly me. I was not calling Parrot_runcode() in Parrot_api_run_bytecode
00:39 whiteknight of course nothing will run if I don't include the command
00:41 whiteknight bluescreen: I just pushed a fix
00:41 kid51 left #parrot
00:41 whiteknight miniparrot builds and runs fine. parrot.exe fails on some linker error
00:42 bluescreen getting really closer
00:42 whiteknight actually, wait. parrot.exe does build
00:42 whiteknight I didn't tell the build to go any further
00:44 whiteknight yep. parrot executable builds and runs fine
00:45 whiteknight 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 whiteknight so the build is failing later, because it can't find files
00:45 bluescreen left #parrot
00:45 whiteknight ...and there's a segfault in Parrot_exit
00:45 whiteknight blah
00:46 bluescreen joined #parrot
00:46 bluescreen left #parrot
00:47 bluescreen joined #parrot
00:47 bluescreen left #parrot
00:47 bluescreen joined #parrot
00:49 bluescreen left #parrot
00:49 bluescreen joined #parrot
01:00 dmalcolm left #parrot
01:04 davidfetter joined #parrot
01:16 bluescreen whiteknight: by any chance, did you miss checking in src/pmc.c?
01:16 whiteknight ah, I may have
01:17 whiteknight pushed
01:17 bluescreen I wish i had same support for other software ... :D
01:19 whiteknight what other software?
01:20 bluescreen every single one of them...
01:20 whiteknight :)
01:22 bluescreen stupid gcc interprets a ";" as a line of code and throw the "mixed code-declaration error"
01:23 whiteknight damnit
01:23 bluescreen yeah, the EMBED_API_CALLIN has an extra ;
01:23 whiteknight really? weird
01:24 bluescreen i mean the macro is ok
01:24 bluescreen but since it ends with "{"
01:24 bluescreen and in the code you add an "..CALLIN(....);" it endup being {;
01:24 bluescreen and that is sufficient to make compiler croak about it
01:24 whiteknight stupid gcc
01:25 whiteknight blah, I dont build with gcc so I didn't see that error
01:25 bluescreen parrot does build .. and seems to be running
01:25 bluescreen llvm?
01:26 whiteknight llvm?
01:26 bluescreen i meant what compiler are you using?
01:27 whiteknight clang
01:27 bluescreen thats part of llvm project
01:28 kid51 joined #parrot
01:28 whiteknight right
01:31 plobsing anyone remember when we got rid of the cgoto core?
01:33 kid51 plobsing:  Trac search for 'cgoto core' suggests this:  http://trac.parrot.org/parrot/changeset/45949
01:34 cotto looks right to me
01:34 plobsing kid51++
02:02 davidfetter dukeleto, ping
02:03 dukeleto davidfetter: pooooong
02:08 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 davidfetter what do i need to do?
02:09 whiteknight left #parrot
02:14 dukeleto davidfetter: read the source of PL/Parrot
02:20 * davidfetter , suitably chastened, Rs TFS
02:32 dukeleto it is a fine, fine source.
02:36 rurban_ joined #parrot
02:39 rurban left #parrot
02:39 rurban_ is now known as rurban
02:41 jjore left #parrot
02:42 Andy left #parrot
02:42 jjore joined #parrot
03:11 Andy joined #parrot
03:23 dalek parrot: 3e86e42 | jkeenan++ | / (42 files):
03:23 dalek parrot: Merge branch 'master' of git@github.com:parrot/parrot
03:23 dalek parrot: review: https://github.com/parrot/parrot/commit/3e86e42d61
03:23 dalek parrot: 9509f35 | jkeenan++ | / (2 files):
03:23 dalek parrot: Use cc_run_capture() instead of cc_run() to capture error output.  Correct
03:23 dalek parrot: number of tests in plan.
03:23 dalek parrot: review: https://github.com/parrot/parrot/commit/9509f35806
03:26 dukeleto Microsoft just got another 882 patents out of the Novell buyout: http://www.readwriteweb.com/enterp​rise/2010/11/novell-attachmate.php
03:30 davidfetter aloha, seen gerd
03:30 aloha davidfetter: gerd was last seen in #parrot 5 days 2 hours ago joining the channel.
03:30 davidfetter hrm
03:31 kid51 left #parrot
03:42 dukeleto davidfetter: he is pretty active by email
03:42 bluescreen left #parrot
03:45 davidfetter k
03:45 * davidfetter thinking that some QA step, probably at the Fedora project, didn't go quite right
03:47 dukeleto davidfetter: nope
03:47 dukeleto davidfetter: which Rakudo is the fedora package using?
03:48 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?
03:48 dukeleto davidfetter: nope, you are correct that someone attempted to mate with a chicken
03:48 davidfetter perl6 --version
03:48 davidfetter This is Rakudo Perl 6, version 2010.09 built on parrot 2.8.0
03:48 davidfetter Copyright 2008-2010, The Perl Foundation
03:48 davidfetter rpm -qf $(which perl6)
03:49 davidfetter rakudo-star-0.0.2010.09_2.8.0-1.fc14.i686
03:49 dukeleto davidfetter: too new for current PL/Parrot
03:49 davidfetter something should have noticed that :(
03:49 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
03:49 dukeleto davidfetter: my test suite did
03:49 dukeleto davidfetter: evidentally their QA process didn't run the test suite
03:49 davidfetter i'm sure it wasn't an issue on your end
03:50 dukeleto davidfetter: probably because it requires postgres to be installed
03:50 davidfetter and?
03:50 dukeleto davidfetter: it could be, but i know that my test suite pegs a cpu and coredump postgres with newer Rakudos
03:50 dukeleto davidfetter: so obviously someone didn't run it
03:50 davidfetter yeah, that's about what happned here
03:50 davidfetter happened*
03:51 davidfetter 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
03:51 dukeleto davidfetter: nothing in PL/parrot should crash a postmaster
03:51 davidfetter CREATE OR REPLACE FUNCTION test_fibonacci_plperl6(integer) RETURNS int LANGUAGE plperl6 AS $$
03:51 davidfetter (*@_) {
03:51 davidfetter my $limit = @_[0];
03:51 davidfetter [+] (1, 1, *+* ... $limit)
03:51 davidfetter }
03:51 davidfetter $$;
03:51 dukeleto davidfetter: PL/s can't crash the postmaster
03:51 dukeleto davidfetter: unless they try *really* hard :)
03:51 davidfetter i bet untrusted ones can ;)
03:52 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
03:52 davidfetter no, i wasn't running the tests
03:52 davidfetter i ran that by itself
03:52 dukeleto davidfetter: i imagine PL/Parrot is returning something invalid to Postgres, and then postgres starts eating rocks
03:53 dukeleto 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 dukeleto davidfetter: i assumem Rakudo changed something, since they change a lot faster than Parrot
03:54 davidfetter something buggered up QA for fair
03:55 dukeleto davidfetter: do you get a coredump?
03:55 dukeleto davidfetter: a backtrace might be helpful
03:56 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:57 dukeleto davidfetter: in $PGDATA
03:57 dukeleto davidfetter: ulimit -c unlimited, before you start postgres
03:57 dukeleto davidfetter: or restart after you have done the ulimit
03:58 davidfetter just -c? no further arguments?
04:01 dukeleto "ulimit -c unlimited"
04:03 * davidfetter waits for the command to blow up the backend
04:03 dukeleto davidfetter: yeah, it seems to take a bit
04:03 davidfetter hrm. i'm not seeing a core dump. what would it be called?
04:06 dukeleto it might not coredump
04:06 dukeleto davidfetter: are you sure your postgres was started after you did the ulimit?
04:07 davidfetter yep
04:07 davidfetter fetter:postgres:~/data ulimit
04:07 davidfetter unlimited
04:07 davidfetter fetter:postgres:~/data pg_ctl restart
04:07 davidfetter waiting for server to shut down.... done
04:07 davidfetter server stopped
04:07 davidfetter server starting
04:09 davidfetter ok, if it doesn't dump core, what's the next thing to try?
04:24 dukeleto sadface.
04:25 dukeleto davidfetter: yeah, it doesn't coredump on my machine either :) But now you know how to allow for coredumps. Very useful.
04:25 dukeleto davidfetter: add debugging statements to plparrot.c and figure out exactly which line is causing the the CPU-pegging
04:25 dukeleto davidfetter: with that info, i can probably figure out what is wrong
04:25 dukeleto davidfetter: there is a debug() macro that does an elog()
04:26 davidfetter k
04:26 dukeleto davidfetter: use that
04:26 * davidfetter kinda needs to work on tomorrows preso, which isn't this :/
04:26 davidfetter it's on trees in SQL
04:28 dukeleto "Until the dolphin flies and parrots live at sea..." -- Stevie Wonder, "As"
04:29 dukeleto davidfetter: you asked questions, I answer them.
04:29 dukeleto davidfetter: don't ask me questions you don't want answers to ;)
04:29 davidfetter and i appreciate, as always, your patience with my pointy-haired ignorance
04:29 dukeleto davidfetter: is there a tree datatype in pg now?
04:30 davidfetter depends what you mean. there's XML, but i'm not talking about that
04:31 davidfetter there are recursive Common Table Expressions (think query-time views). i'm talking about those
04:32 dukeleto davidfetter: when you say "tree" i think of a directed acyclic graph (DAG), is that what you are talking about?
04:32 dukeleto davidfetter: i have no clue what a "query-time view" is
04:32 davidfetter yes
04:33 davidfetter WITH RECURSIVE t(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM t WHERE i < 10)SELECT * FROM t;
04:33 davidfetter that's a CTE :)
04:33 davidfetter a recursive one, even
04:43 dukeleto spiffy.
05:01 dalek TT #1822 closed by dukeleto++: get_bool VTABLE not defined on a SockAddr
05:01 dalek TT #1822: http://trac.parrot.org/parrot/ticket/1822
05:51 bacek_at_work seen tcurtis
05:51 aloha tcurtis was last seen in #parrot 4 days 2 hours ago joining the channel.
05:51 bacek_at_work msg tcurtis what's required to merge gsoc_past_optimizations?
05:51 aloha OK. I'll deliver the message.
05:52 dukeleto bacek_at_work: yes, i would like to see that happen
06:01 dalek parrot: 7592f8a | petdance++ | src/gc/fixed_allocator.c:
06:01 dalek parrot: Removed unused pointer *ret
06:01 dalek parrot: review: https://github.com/parrot/parrot/commit/7592f8a5f2
06:14 bacek_at_work better to ask for excuse...
06:15 stilgar joined #parrot
06:18 dalek parrot/gsoc_past_optimization: 4f3a3ac | dukeleto++ | t/pmc/boolean.t:
06:18 dalek parrot/gsoc_past_optimization: [pmc] Add tests for converting Boolean PMC to a numeric, which should bring the coverage up to 100%
06:18 dalek parrot/gsoc_past_optimization: review: https://github.com/parrot/parrot/commit/4f3a3ac99f
06:18 dalek parrot/gsoc_past_optimization: 9d32b3d | dukeleto++ | t/pmc/socket.t:
06:18 dalek parrot/gsoc_past_optimization: [t] Add a test for cloning a Socket PMC
06:18 dalek parrot/gsoc_past_optimization: review: https://github.com/parrot/parrot/commit/9d32b3d939
06:18 dalek parrot/gsoc_past_optimization: 3dc37d9 | dukeleto++ | t/pmc/socket.t:
06:18 dalek parrot/gsoc_past_optimization: [t] Add a test for cloning a Socket PMC
06:18 dalek parrot/gsoc_past_optimization: review: https://github.com/parrot/parrot/commit/3dc37d9a2d
06:18 dalek parrot/gsoc_past_optimization: ddf075a | dukeleto++ | / (2 files):
06:18 dalek parrot/gsoc_past_optimization: [t] More tests for Socket PMCs, including one TODO test for cloning a Socket
06:18 dalek parrot/gsoc_past_optimization: review: https://github.com/parrot/parrot/commit/ddf075ad56
06:18 dalek parrot/gsoc_past_optimization: 44b7807 | dukeleto++ | / (2 files):
06:18 dalek parrot/gsoc_past_optimization: [t] More tests for Socket PMCs, including one TODO test for cloning a Socket
06:18 dalek parrot/gsoc_past_optimization: review: https://github.com/parrot/parrot/commit/44b7807bac
06:18 dalek parrot/gsoc_past_optimization: 3d6ced4 | dukeleto++ | t/pmc/socket.t:
06:18 dalek parrot/gsoc_past_optimization: [t] Add tests for creating TCP and UDP sockets
06:18 dalek parrot/gsoc_past_optimization: review: https://github.com/parrot/parrot/commit/3d6ced48dd
06:18 dalek parrot/gsoc_past_optimization: 5f984d6 | dukeleto++ | t/pmc/socket.t:
06:18 dalek parrot/gsoc_past_optimization: [t] Add tests for creating TCP and UDP sockets
06:18 dalek parrot/gsoc_past_optimization: review: https://github.com/parrot/parrot/commit/5f984d6554
06:18 dalek parrot/gsoc_past_optimization: 815fc78 | (James E Keenan (Jim))++ | / (3 files):
06:18 dalek parrot/gsoc_past_optimization: Merge tt1810_missing_step_tests branch into trunk. Only report missing step tests when --test or --test=build is used.
06:18 dalek parrot/gsoc_past_optimization: review: https://github.com/parrot/parrot/commit/815fc78a4f
06:19 dalek parrot/gsoc_past_optimization: d389c87 | (James E Keenan (Jim))++ | / (3 files):
06:19 dalek parrot/gsoc_past_optimization: Merge tt1810_missing_step_tests branch into trunk. Only report missing step tests when --test or --test=build is used.
06:19 dalek parrot/gsoc_past_optimization: review: https://github.com/parrot/parrot/commit/d389c873a3
06:19 dalek parrot/gsoc_past_optimization: a751cfd | dukeleto++ | t/pmc/socket.t:
06:19 dalek parrot/gsoc_past_optimization: [t] Add some tests for closing Sockets
06:19 dalek parrot/gsoc_past_optimization: review: https://github.com/parrot/parrot/commit/a751cfdbe5
06:19 dalek parrot/gsoc_past_optimization: d0336b1 | dukeleto++ | t/pmc/socket.t:
06:19 dalek parrot/gsoc_past_optimization: [t] Add some tests for closing Sockets
06:19 dalek parrot/gsoc_past_optimization: review: https://github.com/parrot/parrot/commit/d0336b1e71
06:19 dalek parrot/gsoc_past_optimization: 614d420 | dukeleto++ | NEWS:
06:19 dalek parrot/gsoc_past_optimization: [doc] Give NEWS some love
06:19 dalek parrot/gsoc_past_optimization: review: https://github.com/parrot/parrot/commit/614d42067c
06:19 dalek parrot/gsoc_past_optimization: db72897 | dukeleto++ | NEWS:
06:19 dalek parrot/gsoc_past_optimization: [doc] Give NEWS some love
06:19 dalek parrot/gsoc_past_optimization: review: https://github.com/parrot/parrot/commit/db72897d12
06:19 dalek parrot/gsoc_past_optimization: 00f1f32 | dukeleto++ | t/pmc/socket.t:
06:19 dalek parrot/gsoc_past_optimization: [t] Add tests for creating raw TCP and UDP sockets
06:19 dalek parrot/gsoc_past_optimization: review: https://github.com/parrot/parrot/commit/00f1f32820
06:19 dalek parrot/gsoc_past_optimization: 5ec1ea6 | dukeleto++ | t/pmc/socket.t:
06:19 dalek parrot/gsoc_past_optimization: [t] Add tests for creating raw TCP and UDP sockets
06:19 dalek parrot/gsoc_past_optimization: review: https://github.com/parrot/parrot/commit/5ec1ea6886
06:19 dalek parrot/gsoc_past_optimization: c66d320 | dukeleto++ | t/pmc/socket.t:
06:19 dalek parrot/gsoc_past_optimization: [t] Add tests for creating IPv6 sockets
06:19 dalek parrot/gsoc_past_optimization: review: https://github.com/parrot/parrot/commit/c66d32016e
06:19 dalek parrot/gsoc_past_optimization: eee6dd7 | dukeleto++ | t/pmc/socket.t:
06:19 dalek parrot/gsoc_past_optimization: [t] Add tests for creating IPv6 sockets
06:19 dalek parrot/gsoc_past_optimization: review: https://github.com/parrot/parrot/commit/eee6dd741a
06:19 dalek parrot/gsoc_past_optimization: 124b6fa | dukeleto++ | t/pmc/sockaddr.t:
06:19 dalek parrot/gsoc_past_optimization: [t] Add a TODO test for get_bool on a SockAddr PMC
06:19 dalek parrot/gsoc_past_optimization: review: https://github.com/parrot/parrot/commit/124b6fa17d
06:19 dalek parrot/gsoc_past_optimization: 2e8a58b | dukeleto++ | t/pmc/sockaddr.t:
06:19 dalek parrot/gsoc_past_optimization: [t] Add a TODO test for get_bool on a SockAddr PMC
06:19 dalek parrot/gsoc_past_optimization: review: https://github.com/parrot/parrot/commit/2e8a58b0d2
06:19 dalek parrot/gsoc_past_optimization: 0c9fde4 | dukeleto++ | docs/pdds/pdd22_io.pod:
06:19 dalek parrot/gsoc_past_optimization: [pdd] Fix a fib in PDD22 about get_bool on a Socket
06:19 dalek parrot/gsoc_past_optimization: review: https://github.com/parrot/parrot/commit/0c9fde406b
06:19 dalek parrot/gsoc_past_optimization: e7c797c | dukeleto++ | docs/pdds/pdd22_io.pod:
06:19 dalek parrot/gsoc_past_optimization: [pdd] Fix a fib in PDD22 about get_bool on a Socket
06:19 dalek parrot/gsoc_past_optimization: review: https://github.com/parrot/parrot/commit/e7c797c99a
06:19 dalek parrot/gsoc_past_optimization: df768c6 | cotto++ | NEWS:
06:19 dalek parrot/gsoc_past_optimization: [NEWS] add PCore improvements to the news
06:19 dalek parrot/gsoc_past_optimization: review: https://github.com/parrot/parrot/commit/df768c69cd
06:19 dalek parrot/gsoc_past_optimization: 04dc999 | cotto++ | NEWS:
06:19 dalek parrot/gsoc_past_optimization: [NEWS] add PCore improvements to the news
06:19 dalek parrot/gsoc_past_optimization: review: https://github.com/parrot/parrot/commit/04dc999fe2
06:19 dalek parrot/gsoc_past_optimization: 435f5f6 | dukeleto++ | t/tools/mk_language_shell.t:
06:19 dalek parrot/gsoc_past_optimization: [t] Improve diagnostic messages in tests for mk_language_shell.t
06:19 dalek parrot/gsoc_past_optimization: review: https://github.com/parrot/parrot/commit/435f5f6e83
06:19 dalek parrot/gsoc_past_optimization: a3b8187 | dukeleto++ | t/tools/mk_language_shell.t:
06:19 dalek parrot/gsoc_past_optimization: [t] Improve diagnostic messages in tests for mk_language_shell.t
06:19 dalek parrot/gsoc_past_optimization: review: https://github.com/parrot/parrot/commit/a3b8187f32
06:19 dalek parrot/gsoc_past_optimization: 1ff59b4 | dukeleto++ | config/gen/makefiles/root.in:
06:19 dalek parrot/gsoc_past_optimization: [t][TT#1823] Always create src/install_config.o, so that mk_language_shell and create_language can be used without installing Parrot
06:19 dalek parrot/gsoc_past_optimization: review: https://github.com/parrot/parrot/commit/1ff59b4d82
06:19 dalek parrot/gsoc_past_optimization: e3eb6f9 | dukeleto++ | config/gen/makefiles/root.in:
06:19 dalek parrot/gsoc_past_optimization: [t][TT#1823] Always create src/install_config.o, so that mk_language_shell and create_language can be used without installing Parrot
06:19 dalek parrot/gsoc_past_optimization: review: https://github.com/parrot/parrot/commit/e3eb6f9b43
06:19 dalek parrot/gsoc_past_optimization: 75fde0d | dukeleto++ | NEWS:
06:19 dalek parrot/gsoc_past_optimization: [doc] Add note to NEWS about scripts no longer requiring an installed parrot
06:19 dalek parrot/gsoc_past_optimization: review: https://github.com/parrot/parrot/commit/75fde0d6fd
06:20 dalek parrot/gsoc_past_optimization: 78eb90e | dukeleto++ | NEWS:
06:20 dalek parrot/gsoc_past_optimization: [doc] Add note to NEWS about scripts no longer requiring an installed parrot
06:20 dalek parrot/gsoc_past_optimization: review: https://github.com/parrot/parrot/commit/78eb90efec
06:20 dalek parrot/gsoc_past_optimization: 9275498 | nwellnhof++ | / (17 files):
06:20 dalek parrot/gsoc_past_optimization: [t] Convert most unicode:"" string literals to utf8:""
06:20 dalek parrot/gsoc_past_optimization: review: https://github.com/parrot/parrot/commit/92754983ed
06:20 dalek parrot/gsoc_past_optimization: ebc3c2c | nwellnhof++ | / (17 files):
06:20 dalek parrot/gsoc_past_optimization: [t] Convert most unicode:"" string literals to utf8:""
06:20 dalek parrot/gsoc_past_optimization: review: https://github.com/parrot/parrot/commit/ebc3c2cdb4
06:20 dalek parrot/gsoc_past_optimization: d4e2ec8 | nwellnhof++ | src/ (2 files):
06:20 dalek parrot/gsoc_past_optimization: [src] Show string encoding in pbc_dump and pbc_disassemble
06:20 dalek parrot/gsoc_past_optimization: review: https://github.com/parrot/parrot/commit/d4e2ec880b
06:20 dalek parrot/gsoc_past_optimization: 675d90b | nwellnhof++ | src/ (2 files):
06:20 dalek parrot/gsoc_past_optimization: [src] Show string encoding in pbc_dump and pbc_disassemble
06:20 dalek left #parrot
06:24 cotto we ought to get that bot looked at
06:28 sorear some "bacek@bacek.com" guy just sent a 0.5 MB commit packet to dalek
06:28 sorear I don't blame dalek for displaying what it's given
06:29 pmichaud_ left #parrot
06:33 silug left #parrot
06:34 pmichaud joined #parrot
06:39 dalek joined #parrot
06:40 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
06:41 plobsing precious precious karma
06:51 dalek parrot: 12740ed | petdance++ | src/pmc/boolean.pmc:
06:51 dalek parrot: consting two local vars
06:51 dalek parrot: review: https://github.com/parrot/parrot/commit/12740ed9f9
06:56 bacek bah!
07:01 dukeleto bacek: did you merge master into gsoc_past_optimization ?
07:01 bacek dukeleto, yes. It was only 2 conflicts.
07:02 bacek dukeleto, guess in which files?
07:07 bacek_ joined #parrot
07:08 cotto bacek, any time you have a question, "PIRATE" is the magic word to get a +1 from me.
07:09 cotto It doesn't even have to be related to Parrot.
07:11 cotto You could ask for a PIRATE beer and I'd probably try to find you one.
07:12 cotto pmichaud, ping
07:12 bacek left #parrot
07:15 baest left #parrot
07:15 bacek_ is now known as bacek
07:19 zby__ joined #parrot
07:21 zby_ left #parrot
07:24 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.
07:25 dalek parrot/gsoc_past_optimization: 7592f8a | petdance++ | src/gc/fixed_allocator.c:
07:25 dalek parrot/gsoc_past_optimization: Removed unused pointer *ret
07:25 dalek parrot/gsoc_past_optimization: review: https://github.com/parrot/parrot/commit/7592f8a5f2
07:25 dalek parrot/gsoc_past_optimization: 12740ed | petdance++ | src/pmc/boolean.pmc:
07:25 dalek parrot/gsoc_past_optimization: consting two local vars
07:25 dalek parrot/gsoc_past_optimization: review: https://github.com/parrot/parrot/commit/12740ed9f9
07:25 dalek parrot/gsoc_past_optimization: 71b19e4 | bacek++ | / (19 files):
07:25 dalek parrot/gsoc_past_optimization: Merge branch 'master' of github.com:parrot/parrot
07:25 dalek parrot/gsoc_past_optimization: review: https://github.com/parrot/parrot/commit/71b19e4ffe
07:25 dalek parrot/gsoc_past_optimization: c6834a7 | bacek++ | / (33 files):
07:25 dalek parrot/gsoc_past_optimization: Merge branch 'master' into gsoc_past_optimization
07:25 dalek parrot/gsoc_past_optimization: review: https://github.com/parrot/parrot/commit/c6834a787e
07:25 dalek parrot/gsoc_past_optimization: 0f2da8e | bacek++ | MANIFEST.SKIP:
07:25 dalek parrot/gsoc_past_optimization: Regenerate MANIFEST.*
07:25 dalek parrot/gsoc_past_optimization: review: https://github.com/parrot/parrot/commit/0f2da8e9a5
07:25 bacek More merging with master :)
07:26 cotto excellent
07:27 bacek cotto, can you bring tomorrow to #ps? I probably will not attend. Early meeting at $work
07:27 cotto bacek, bring what?
07:28 bacek ah. question of merging past_optimization
07:28 bacek My brainz are filing after 6 hours of meetings.
07:28 cotto sure
07:28 cotto msg cotto_work ask about merging past_optimization at #ps
07:28 aloha OK. I'll deliver the message.
07:38 bacek sigh.
07:39 bacek msg plobsing What happened to PackfileFixupTable?
07:39 aloha OK. I'll deliver the message.
07:40 plobsing bacek: fixup tables no longer exist
07:40 bacek plobsing, nice. Can you update examples/pir/make_hello_pbc.pir?
07:41 plobsing not to the point where it works. packfile pmcs aren't working ATM.
07:42 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
07:42 bacek ooookey.
07:43 bacek So, we don't need FixupTable/FixupEntry anymore?
07:43 plobsing nope
07:43 bacek Just add Sub to PackfileConstants will work?
07:44 plobsing yep
07:44 plobsing all constants are equals now
07:44 bacek Excellent!
07:44 bacek plobsing++ # removing dark magick
07:45 bacek Erm. And freezing on Interpet as first thing gone as well?
07:45 plobsing yes. just did that one in last week.
07:46 plobsing don't do it now, it'll throw exceptions at you
07:46 bacek I've got this exception.
07:51 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 cotto You could hard-code a fixed op map, though that'd be pretty magical.
07:54 cotto examples/pir/make_hello_pbc.pir in opmap_aware_pmcs shows the pir-level interface I'm aiming toward
08:01 bacek cotto, I mostly done updating make_hello_pbc. Just got segfaults on running generated pbc.
08:04 bacek Ok. We do need PackfileBytecode PMC now.
08:04 plobsing yes, bytecode has a structured header now
08:05 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
08:07 bacek plobsing, can you update docs/pdds/pdd13_bytecode.pod to reflect changes in ConstTable and Bytecode please?
08:08 cotto I'm off to bed.
08:08 cotto 'night
08:08 plobsing I can try. those things are terribly out of date and unreliable.
08:16 theory left #parrot
08:19 fperrad joined #parrot
08:30 dalek tracwiki: v4 | plobsing++ | PlobsingTaskList
08:30 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Plob​singTaskList?version=4&amp;action=diff
08:41 bacek left #parrot
08:41 bacek joined #parrot
08:49 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 #parrot
08:55 slavorgn left #parrot
08:57 dalek lua: ca69c2d | plobsing++ | lua/PASTGrammar.tg:
08:57 dalek lua: use PGE;Util;line_number in place of CodeString.lineof
08:57 dalek lua: review: https://github.com/fperrad/lua/commit/ca69c2d1b3
08:57 dalek lua: e81ed49 | plobsing++ | lua/lib/luaregex.pir:
08:57 dalek lua: update to upstream PGE;Expr changes
08:57 dalek lua:
08:57 dalek lua: PGE;Expr now uses StringBuilder in stead of CodeString
08:57 dalek lua: review: https://github.com/fperrad/lua/commit/e81ed495fd
08:57 dalek lua: 6394a0e | plobsing++ | lua/lib/luaregex.pir:
08:57 dalek lua: update for upstream Perl6Regex changes
08:57 dalek lua:
08:57 dalek lua: StringBuilder is now used in stead of CodeString
08:57 dalek lua: review: https://github.com/fperrad/lua/commit/6394a0e4d7
09:30 bacek left #parrot
10:02 bacek joined #parrot
10:10 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 #parrot
10:39 rurban left #parrot
10:39 rurban_ is now known as rurban
10:49 bacek left #parrot
10:56 dalek TT #1864 created by bacek++: [RFC] Change coding standard to avoid 2 space outdent.
10:56 dalek TT #1864: http://trac.parrot.org/parrot/ticket/1864
11:02 bacek joined #parrot
11:21 Patterner left #parrot
12:01 dalek TT #1859 closed by jkeenan++: 'make realclean' fails to remove release tarballs
12:01 dalek TT #1859: http://trac.parrot.org/parrot/ticket/1859
12:33 ambs joined #parrot
12:42 bacek left #parrot
12:59 * Coke would reject 1859 as wontfix.
13:00 * Coke is too slow, however.
13:01 moritz if one wants a really thorough realclean, git clean -xdff exists :-)
13:03 kid51 joined #parrot
13:07 Coke seems like "make gitclean" for that would be helpful.
13:07 Coke isn't there an make "svn<foo>" target?
13:11 darbelo joined #parrot
13:14 kid51 left #parrot
13:16 darbelo left #parrot
13:17 whiteknight joined #parrot
13:30 jan left #parrot
13:30 bluescreen joined #parrot
13:32 jan joined #parrot
13:35 whiteknight good morning, #parrot
13:37 darbelo joined #parrot
13:38 dalek TT #1865 created by ronaldws++: Allow more windows environments with git to work correctly with build ...
13:38 dalek TT #1865: http://trac.parrot.org/parrot/ticket/1865
13:42 darbelo left #parrot
13:42 darbelo joined #parrot
13:49 bluescreen good morning
13:50 tadzik good morning
13:51 contingencyplan joined #parrot
13:52 Coke ~~
13:55 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
13:55 whiteknight good morning, tadzik and Coke
13:58 bluescreen very good, after that we should be ready to run make test
14:00 bluescreen 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:05 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
14:10 dalek TT #548 closed by whiteknight++: Error handling in socket system
14:10 dalek TT #548: http://trac.parrot.org/parrot/ticket/548
14:11 ambs left #parrot
14:14 whiteknight we are now down below 50 open RFC tickets
14:16 bluescreen are you personally reviewing each one of them?
14:17 whiteknight sort of
14:17 whiteknight I'm looking at the ones whose titles look like things I can manage
14:18 dngor left #parrot
14:27 dalek TT #1866 created by jimmy++: Build parrot failed with  PANIC on windows XP 32bit with strawberry perl
14:27 dalek TT #1866: http://trac.parrot.org/parrot/ticket/1866
14:29 bluescreen left #parrot
14:29 bluescreen joined #parrot
14:32 * whiteknight has a LOT of questions to ask at #ps
14:32 whiteknight I may have to save some of them for next week
14:32 atrodo Ooooh, exciting
14:33 bluescreen left #parrot
14:33 bluescreen joined #parrot
14:34 whiteknight I really want to get DEPRECATED.pod cut in half in terms of size and number of entries by 3.0
14:34 whiteknight much of that work is evaluating several items marked "experimental"
14:40 bluescreen left #parrot
14:40 bluescreen joined #parrot
14:42 Andy left #parrot
14:42 bluescreen left #parrot
14:42 bluescreen joined #parrot
14:44 bluescreen left #parrot
14:58 Coke (closing tickets because no one commented on them)--
14:59 Coke (closing tickets because they are invalid/not relevant)++
15:00 NotFound Coke: if no one comment on Request For Comments, the it's irrelevant.
15:00 NotFound s/the/then
15:00 sjn (complex topics that can't be described in one word but still deserve a karma readjustment)--
15:01 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
15:02 szbalint sjn++
15:02 szbalint (I usually allow a couple of months for response though)
15:04 * moritz would love a "silently close this ticket if no comment added within $n weeks/months" function in RT
15:05 * sjn would rather see a "warning: this bug needs some attention" mail after some weeks
15:05 moritz the two are not mutually exclusive :-)
15:05 sjn (e.g. "hey, maybe you should raise this issue on the mailing list and other fora?)
15:05 sjn "
15:06 NotFound "Maybe you should do whatever you want, given that no one cares"
15:07 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:08 dngor joined #parrot
15:09 NotFound Coke: after several months, even the author doesn't know what the issue is/was.
15:10 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 whiteknight the list of open tickets, especially tickets without owners, is unmanagably large. People can't find tickets that need to be addressed
15:11 whiteknight 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.
15:11 NotFound BTW I don't think a ticket is a good place to put recommendations for reading papers or evaulating libraries.
15:11 whiteknight Keeping things off the floor forever when they have questionable value and no interest is not a good plan either
15:12 whiteknight Notfound: that's probably true too
15:12 Coke if a ticket is rejectable, reject it.
15:12 atrodo What you need is a bigger floor...
15:12 whiteknight I have been
15:12 Coke if a ticket is OLD, triage it.
15:12 whiteknight many old tickets are rejectable
15:12 Coke OLD NEQ REJECTABLE
15:12 moritz if a ticket is too vague to be closable, request clarification
15:12 Coke yes. I am arguing that old is not a sufficient condition.
15:12 moritz if no clarification comes, reject
15:12 moritz Coke: agreed
15:13 whiteknight old is not sufficient, but in many cases it plays a very large part
15:13 NotFound Die, old ticket, die!
15:13 Coke disagree.
15:15 dalek winxed: r687 | NotFound++ | trunk/winxedst1.winxed:
15:15 dalek winxed: simplify a bit and improve generated code in operator *
15:15 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=687
15:15 dmalcolm joined #parrot
15:15 bluescreen joined #parrot
15:21 Psyche^ joined #parrot
15:21 Psyche^ is now known as Patterner
15:26 dalek winxed: r688 | NotFound++ | trunk/winxedst1.winxed:
15:26 dalek winxed: method Emit.emitmul
15:26 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=688
15:38 PerlJam left #parrot
15:38 PerlJam joined #parrot
15:39 bluescreen left #parrot
15:40 dalek nqp-rx/nomnom: 60d7e50 | (Solomon Foster)++ | src/HLL/Compiler.pm:
15:40 dalek nqp-rx/nomnom: Break HLL::Compiler away from PCT::HLLCompiler.
15:40 dalek nqp-rx/nomnom: review: https://github.com/perl6/nqp-rx/commit/60d7e50439
15:40 dalek nqp-rx/nomnom: e18ba58 | (Solomon Foster)++ | src/NQP/Compiler.pir:
15:40 dalek nqp-rx/nomnom: Try to fix code to use the new @!cmdoptions, but apparently the original code was broken and so the fix does nothing useful.
15:40 dalek nqp-rx/nomnom: review: https://github.com/perl6/nqp-rx/commit/e18ba581c2
15:45 bluescreen joined #parrot
15:48 dalek TT #1450 closed by whiteknight++: Improve handling of experimental features
15:48 dalek TT #1450: http://trac.parrot.org/parrot/ticket/1450
15:49 bluescreen left #parrot
15:52 bluescreen joined #parrot
15:55 bluescreen left #parrot
15:58 bluescreen joined #parrot
16:00 bluescreen left #parrot
16:07 bluescreen joined #parrot
16:08 theory joined #parrot
16:08 Andy joined #parrot
16:11 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#1284) fulltest) at 12740ed - Ubuntu 10.10 i386 (g++-4.5)
16:12 Andy anyone heard of goanna?
16:12 bluescreen left #parrot
16:16 whiteknight Andy: never heard of him
16:20 Andy It's a static analysis tool.
16:20 Andy Someone on mongodb is using it
16:20 Andy and you know how I love the static analysis tools.
16:25 whiteknight Andy: if it's worthwhile, we could get some other devs involved. you be interested in running some tests?
16:26 whiteknight 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.
16:26 Andy Turns out it's commercial.
16:26 whiteknight oh
16:26 Andy At one point we had Klocwork and Coverity doing scans for us.
16:26 Andy but haven't heard from them in forever.
16:27 whiteknight no, me either
16:27 whiteknight I don't know who was in charge of that
16:27 Coke I would ping chromatic & particle about Coverity
16:28 Coke Klocwork rings no bells except for a sly cooper soundalike.
16:30 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.
16:30 NotFound whiteknight: TT #85: I don't think that the ability to set the current HLL from embedding is something desirable.
16:30 Andy Coke: I pinged both Coverity and Klocwork myself.
16:30 Andy and heard nothing back.
16:31 NotFound In fact, I think the "current HLL" concept is wrong.
16:32 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.
16:35 NotFound Coke: we have a repository with it.
16:38 NotFound In fact, there is no current_HLL member in the interpreter right now.
16:42 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.
16:45 whiteknight no, you're right about that
16:45 whiteknight but when we are doing symbol lookups, we need to be able to specify the HLL as part of the lookup path
16:45 whiteknight we need to be able to create an HLL and insert things into it
16:46 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 #parrot
16:53 dalek TT #149 closed by whiteknight++: Add capability for trying different library names to DBDI::SQLite3
16:53 dalek TT #149: http://trac.parrot.org/parrot/ticket/149
16:54 jsut left #parrot
16:56 plobsing left #parrot
16:56 slavorgn joined #parrot
17:07 hercynium joined #parrot
17:30 Andy left #parrot
17:33 dukeleto 'ello
17:34 cotto hi dukeleto
17:34 cotto is portland shut down too?
17:35 whiteknight portland shut down?
17:35 allison it's certainly snowy
17:36 allison but I don't know if it's going to stick
17:36 allison I hear it's 3.5 inches in Seattle? schools closed?
17:36 allison here in portland it looks more like .5 inches, and a soggy half inch at that
17:37 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 :)
17:37 cotto My prius and I are inclined to agree.
17:38 allison cotto: personally I'm just hoping the black ice clears before I drive up on thursday :)
17:38 * cotto too
17:38 dukeleto cotto: nah, just a tiny bit of snow on the ground
17:39 cotto It's a good day for Parrot hacking.
17:39 whiteknight it's always a good day for parrot hacking
17:39 atrodo Wow, and it's a beautiful fall day here in Ohio
17:40 whiteknight atrodo: whereabouts in Ohio?
17:40 atrodo whiteknight> Cincinnati
17:40 whiteknight oh nice
17:40 Coke awesome here in albany. 50s, only a bit of rain earlier.
17:41 whiteknight It's in the 50s here which is nice except some of my coworkers insist on keeping their windows open
17:42 atrodo 50s is a good temperature for outdoors, really bad for indoors
17:44 macroz joined #parrot
17:46 NotFound Pesky Farenheit...
17:55 cotto bacek_at_work, ping
17:55 cotto aloha, clock?
17:55 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 #parrot
18:37 rurban_ joined #parrot
18:39 rurban left #parrot
18:39 rurban_ is now known as rurban
18:53 bacek joined #parrot
18:56 * dukeleto is back
18:57 dukeleto atrodo: very cool benchmarking stuff. Tool::Bench has it's first user!
18:57 dukeleto atrodo: i am very excited
18:57 dukeleto atrodo: i haven't looked at the code yet
18:57 dukeleto atrodo: ;)
18:57 atrodo dukeleto> Not a whole lot to it at this point.  Half of the example script got "recycled"
18:59 cotto atrodo, that's very environmentally friendly of you
18:59 atrodo cotto> Hey, every bit helps
18:59 Coke is there a way to tell a git clone to lose any local commits and just be a fresh clone again?
19:00 atrodo dukeleto> It actually works out pretty well.  The idea for submissions is to submit JSON
19:01 whiteknight Coke: git reset --hard?
19:05 dukeleto whiteknight: no
19:05 whiteknight git reset --goddamnit?
19:05 dukeleto whiteknight: but maybe. Not recommened "git reset --hard" unless you know exactly what is up. That command can delete uncommitted changes
19:05 dukeleto Coke: you have local commits and want to reset to what origin has?
19:06 * dukeleto can't type today, evidently
19:06 dukeleto s/Not recommened/Don't recommend/
19:06 dukeleto Coke: do a "git fetch" to make sure you have the latest copy of origin
19:08 dukeleto Coke: make sure you have no uncommitted files in your directory, then you can "git reset --hard origin/master"
19:08 dukeleto Coke: but if you have uncommitted files, there are other ways, that are more commands, but safer
19:09 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"
19:09 dukeleto Coke: up to you. The more you learn the less work you will have for yourself in the future.
19:18 Coke left #parrot
19:18 Coke joined #parrot
19:25 dngor_ joined #parrot
19:26 cotto bacek_at_work, ping
19:29 dngor left #parrot
19:29 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 #parrot
19:32 whiteknight Do we have a cafepress store, or an equivalent?
19:32 whiteknight I know the rakudo folks do
19:34 dukeleto whiteknight: not that I know of
19:34 cotto #ps in 56
19:36 bacek good morning, humans
19:36 dngor_ is now known as dngor
19:36 bacek cotto, pong
19:36 Coke I thought we did ages ago.
19:36 Coke probably a link to it buried in the old parrotcode svn web site source.
19:37 whiteknight we should have one
19:37 whiteknight Coke: where does one get their hands on that source?
19:38 whiteknight bacek++
19:38 whiteknight bacek++
19:38 whiteknight bacek++
19:38 whiteknight In fact, I think you should get one karma for every % performance improvement on Rakudo
19:39 bacek whiteknight, :)
19:39 Util bacek++ # Whoohoo!
19:39 cotto bacek, could you clarify what you think the packfile PMCs should look like?
19:39 bacek there is some brokage of rakudo according to moritz++... I couldn't reproduce them.
19:39 whiteknight yeah, but is it breaking *fast*?
19:39 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.
19:39 whiteknight :)
19:40 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.
19:40 bacek cotto, currently Packfile PMCs recreate PackFile_* structs for pack.
19:40 cotto Sure.
19:40 whiteknight tcurtis++
19:41 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.
19:41 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
19:41 Coke whiteknight: yah, looks like it's long gone.
19:42 whiteknight Coke: okay, that's what I figured
19:42 bacek cotto, with this approach we violate DRY principle. Especially for ByteCode op mapping.
19:43 moritz bacek: somebody else has reproduced it on amd64 too
19:43 bacek moritz, ok. I'll try again.
19:44 whiteknight Has anybody seen this: http://www.amazon.com/Register-Based-Virt​ual-Machines-Erlang-Machine/dp/1155681894
19:44 bacek moritz, I suspect that branch revealed some oddness inside parrot.
19:45 PerlJam whiteknight: now *that* looks like vaporware to me.
19:47 nwellnhof joined #parrot
19:47 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?
19:48 cotto and what about speed?
19:48 bacek cotto, just start it, do it, finish it.
19:48 bacek speed will be same. We can still extract valuable raw data (e.g. constants) for use in hot-path.
19:49 Util http://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.
19:50 cotto 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:51 bacek cotto, nope. It's quite similar to moving Context from ref-counts to PMCs. Whole lot at once.
19:52 whiteknight Util: Oh, I didn't know they had multiple stores
19:52 cotto Having a singe packfile implementation would be very nice.
19:52 whiteknight I'm looking at printfection.com now. It looks like they have a lot more merchandise options than other places do
19:52 cotto doing it all at once, not so much
19:53 whiteknight a single packfile implementation would be very nice, yes
19:53 whiteknight 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
19:53 whiteknight same as happens with GC
19:55 plobsing joined #parrot
19:55 cotto speaking of packfiles...
19:55 plobsing ~~
19:55 cotto hi plobsing
19:56 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.
19:56 bacek 1. Change parrot guts to work with Packfile PMCs in run-time.
19:57 bacek 2. Implement .unpack
19:57 bacek 3. Implement .pack
19:57 bacek 4. Switch imcc to PMC version.
19:57 bacek Improving/changing PMCs on each step if required.
19:58 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 plobsing after that we can iterate
19:59 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)
19:59 Util whiteknight: regarding that book, see this warning about the publisher : http://www.chrisrand.com/blog/index.php/​2010/02/27/odd-tale-alphascript-publishi​ng-betascript-publishing/#comment-15970
20:02 whiteknight Util: ah, I've heard of companies doing things like that before
20:02 whiteknight very interesting
20:03 bacek plobsing, ConstantTable? We can implement .get_pointer for F*A and extract raw data for fast lookups.
20:04 Util at 52 pages, it is probably just printouts of all the wikipedia articles listed on the group page: http://en.wikipedia.org/wiki/Catego​ry:Register-based_virtual_machines
20:04 bacek or change ConstantTable to not use R*A internally.
20:05 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:06 bacek plobsing, agreed. But we can change it :)
20:06 bacek And we are moving away from C anyway.
20:06 bacek (May be not in this case)
20:07 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 plobsing (once Lorito can emit static C)
20:08 dalek winxed: r689 | NotFound++ | trunk/winxedst (2 files):
20:08 dalek winxed: allow multiple declarations in int, float and string statements
20:08 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=689
20:08 plobsing freeze/thaw at least can very easily be done in an HLL (see my deepclone github project done primarily in winxed)
20:09 whiteknight is it performant?
20:09 bacek for pack/unpack we need only "FixedIntSizeArray" PMC.
20:11 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.
20:11 Util Hi, GeJ
20:12 whiteknight hello GeJ
20:12 plobsing bacek: for pack/unpack we want FixedIntSizeMmaped, so we don't have to copy large arrays around.
20:12 NotFound winxed users don't do benchmarks. They already know it's fast ;)
20:12 whiteknight :)
20:12 bacek plobsing, we do copy now.
20:12 whiteknight NotFound: what does Winxed output, pir or pbc?
20:13 NotFound whiteknight: pir
20:13 whiteknight damn
20:13 plobsing bacek: orly? file:line ref?
20:13 NotFound whiteknight: pbc is a too moving target.
20:14 whiteknight Notfound: is Winxed installable now? Can we get it through plumage?
20:14 bacek plobsing, pbc_merge_loadpbc
20:14 NotFound whiteknight: yes, but some command line options are missing in the installed fakecutable.
20:14 whiteknight okay
20:15 NotFound The advantage is that you don't need a C++ compiler.
20:15 bacek plobsing, Parrot_pbc_read
20:15 whiteknight NotFound: yes, a big advantage
20:15 plobsing it shouldn't be too hard to add a packfile/pbc backend to winxed once packfile pmcs become more usable
20:17 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.
20:17 plobsing bacek: OK, fair enough.
20:17 plobsing but until then, using opcode_t* isn't too bad
20:17 bacek plobsing, anyway, it's just small details. We can implement FixedSizeIntArray with optional mmaped data for read.
20:18 whiteknight somebody was working on an MMapped byte array data type
20:18 bacek plobsing, I mostly speak about PF_fetch_opcode.
20:18 NotFound whiteknight: I'm just thinking about it, nothing written yet.
20:18 bacek and other PF_fetch_* functions which should be supported by magical FSIA PMC
20:18 whiteknight ah, okay. My memory has too many people and projects in it
20:19 plobsing bacek: as far as I'm concerned, that's already almost a vtable interface: fetch_opcode is shift_integer
20:19 plobsing its already mostly encapsulated
20:19 bacek plobsing, agreed. Let's do it! :)
20:20 darbelo JFDI++
20:20 mikehh #ps in 10
20:20 plobsing patience. we need static C first. else how will we load the loader?
20:20 bacek FSIA.init($buf_pointer, $int_size, $is_mmaped) as star
20:20 bacek "static C"?
20:20 plobsing as in not runtime at all
20:20 NotFound Maybe better inheritance than options.
20:20 cotto generated C
20:21 bacek I'm not talking about .pack/.unpack implemented in Lorito.
20:21 plobsing ok, I'm lost then
20:21 bacek I'm talking about "pure PMC" based implementation.
20:21 bacek Than we can swap "hand-crafted C" with "Lorito-generated C"
20:22 bacek In bright future.
20:23 plobsing horse--cart   v->
20:23 bacek For now - just 2 new PMCs: FSIA and FSAIiterator (modulo better name)
20:24 plobsing bacek: not terribly interested in encapsulating this further. we already need to break encapsulation for performant bytecode execution.
20:25 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)
20:25 bacek Or I missed something?
20:25 plobsing it isn't really useful before that (except to increase the verbosity of hand-crafted C)
20:26 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.
20:27 bacek 1. I need Packfile PMCs functional (again)
20:27 darbelo plobsing: PIRATE needs to emit PBC from PIR, that neds the Packfile PMCs.
20:27 bacek 2. Implementing PackfileByteCode* PMCs with current approach is waste of time
20:28 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.
20:28 cotto bacek, how does this sound:
20:28 cotto 1 - rip out current packfile PMCs
20:28 cotto 2 - split packfile functions into separate files
20:28 cotto 3 - modify packfile functions into a pmc-like interface using PMCs wherever possible
20:28 cotto 4 - rewrite packfile code into PMCs
20:29 darbelo 0 - put a deprecation notice.
20:30 bacek cotto, current packfile functions already in OO style.
20:30 cotto orly
20:30 whiteknight #ps
20:30 plobsing darbelo: PackFile PMCs are experimental
20:30 cotto yes, they are
20:30 cotto kinda
20:30 Util cotto: and so we end up with no direct C access to packfiles. Is that aspect acceptable?
20:30 plobsing also PackFile PMCs are internal-implementation-details and should be free to change whenever
20:31 plobsing using PMCs to implement our internals is a very different thing from providing an interface
20:32 bacek plobsing, we did it with CallContext already. It's doable.
20:33 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.
20:33 plobsing and the public C API shouldn't be exposing struct guts anyways
20:34 bacek plobsing, indeed
20:39 cotto bye bacek
20:41 stilgar left #parrot
20:47 janus left #parrot
20:48 tcurtis left #parrot
21:07 bacek left #parrot
21:13 macroz left #parrot
21:24 stilgar joined #parrot
21:29 dalek tracwiki: v5 | plobsing++ | PlobsingTaskList
21:29 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Plob​singTaskList?version=5&amp;action=diff
21:29 dalek TT #1867 created by plobsing++: RFC: optional fakecutable preamble
21:29 dalek TT #1867: http://trac.parrot.org/parrot/ticket/1867
21:32 whiteknight left #parrot
21:33 plobsing cotto: do you have a couple of minutes to discus lorito op dispatch?
21:34 cotto sure
21:34 kid51 joined #parrot
21:34 cotto I have a large number of minutes thanks to Bellevue being shut down by snow.
21:35 plobsing the paper on efficient interpreters piqued my interest.
21:35 davidfetter left #parrot
21:35 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 #parrot
21:36 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
21:36 mikehh cotto, plobsing : which paper?
21:36 cotto plobsing, agreed
21:37 darbelo mikehh:  'The structure of efficient interpreters'
21:37 cotto http://citeseerx.ist.psu.edu/viewdoc/download​?doi=10.1.1.69.1513&amp;rep=rep1&amp;type=pdf
21:37 cotto pdf download
21:37 plobsing a simple "count up to hugeint" benchmark runs 33% faster on cgoto than fast core (both from parrot 2.3.0)
21:37 plobsing the branch mispredict is essentially zero in cgoto and 100% in cgp and fast
21:38 cotto whiteknight's idea of aggregate ops is basically what the paper suggested as one of the methods of improving such an interpreter.
21:39 plobsing that requires a jit
21:39 plobsing we will *always* have some interpret stage
21:40 plobsing the faster we interpret, the faster we can find hotspots/traces to jit and/or op-sequences to fuse
21:40 plobsing not to mention, parrot still needs to be performant without a jit
21:41 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.
21:41 cotto or at least C-something
21:42 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
21:43 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
21:43 cotto mikehh, that's possible
21:44 * atrodo enjoys when lorito gets talked about
21:44 darbelo mikehh: That is the approach the old runcores took. cgoto was gcc-only.
21:44 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
21:44 cotto we could even have compiler-specific C, as long as there's a generic version too
21:44 plobsing specifically, if parrot is compiled for cgoto, slow core, profiling core, and tracing core should also be cgoto
21:45 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
21:48 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:49 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.
21:50 plobsing not sure how often we'd be longjmping and how costly that would be
21:52 darbelo left #parrot
21:52 plobsing darbelo: because we set prefered op-dispatch strategy based on platform in configure, we can always fudge obscure platforms.
21:53 plobsing 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 #parrot
21:54 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:55 plobsing c++ can be slow. I don't care
21:55 sorear longjmp is part of the C library, though
21:55 sorear if you have any C++ apps installed, you need a C++ aware libc
21:56 sorear 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
21:56 NotFound sorear: but the spec don't require anything about his speed.
21:57 plobsing I'm not trying to save on ret instructions. I'm trying to save on mispredicted call *rax instructions.
21:58 plobsing 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
21:58 sorear how do you know if the compiler is bad?
21:58 plobsing profile
21:58 sorear install a sigsegv handler and RLIMIT_STAC?
21:59 plobsing test in configure.
21:59 plobsing fudge based on platform
21:59 plobsing there's plenty of strategies
22:06 fperrad left #parrot
22:12 cotto plobsing, how would load_language 'PIR' be run without pir?
22:12 plobsing its an op
22:12 plobsing it has nothing to do with PIR (besides loading it)
22:13 plobsing you can do it from NQP which emits PBC directly
22:13 plobsing or any other PBC generator
22:13 sorear if you use parrot-pir, you get PIR autoloaded
22:14 sorear if you use parrot-pir and tell it to save PBC, you need to write the op
22:14 cotto ok
22:14 plobsing yes. pir gets an hll executable just like everybody else
22:17 dalek TT #1868 created by plobsing++: RFC: deprecate PIR
22:17 dalek TT #1868: http://trac.parrot.org/parrot/ticket/1868
22:22 * plobsing decommutes
22:22 plobsing left #parrot
22:24 NotFound Note that some features of load_bytecode sould be deprecated before doing that.
22:25 TonyC left #parrot
22:25 nopaste left #parrot
22:30 sorear NotFound: What should "ch".chars be?  (/me is trying again to grok perl6 CharLingua)
22:33 NotFound sorear: If I remember well, .chars is the char length.
22:34 NotFound Didn't we have an eval bot?
22:34 NotFound perl6:say("ch");
22:36 NotFound http://try.rakudo.org/
22:36 NotFound say("ch".chars);
22:36 NotFound 2
22:37 NotFound Yeah, .chars is the char length and .bytes is the byte length.
22:38 Util If the string was non-ascii, .bytes could be larger than .chars.
22:39 Util The eval bot is in the freenode/#perl6 channel
22:40 NotFound We should add some encoding were chars may be large than bytes, just to annoy some pople.
22:41 NotFound 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
22:44 NotFound Util: in most usages is one codepoint.
22:44 Util Certainly *most*, but *all*?
22:45 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 #parrot
22:46 Util So you want, say, Mime-64 as an encoding :)
22:47 NotFound Util: yeah, it can be useful as a counter-example against over simplifications.
22:49 NotFound But maybe it will have some speed impact in string manipulations.
23:00 davidfetter joined #parrot
23:06 nopaste joined #parrot
23:07 TonyC joined #parrot
23:19 davidfetter left #parrot
23:41 cotto allison, ping
23:47 dukeleto hola
23:48 allison cotto: pong
23:51 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:52 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.
23:53 allison cotto: there's not a single easy answer, but a balance of many contributing factors
23:54 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)
23:54 allison cotto: same for NQP
23:55 allison another concern is parrot's install footprint
23:55 allison which is already too large
23:55 allison the flip side of that, is that we don't have an easy way to install parrot modules yet
23:56 allison 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 allison 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)
23:57 allison the next layer is "any tools required to build a language"
23:58 allison which is not every possible set of tools to use in building a language
23:58 TypeNameHere_ joined #parrot
23:58 allison but, it needs to be possible to build a language on parrot with a default install
23:58 allison I should rephrase that: it needs to be possible to *run* a language on parrot with a default install
23:59 allison 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

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced