Camelia, the Perl 6 bug

IRC log for #parrot, 2010-09-22

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:08 kid51 Just posted to list re gc_massacre branch, t/pmc/filehandle.t test 22
00:10 chromatic I get the same result.
00:12 cotto works fine for me on x86
00:17 luben It looks I missed ps today :) I'll post my reports next week
00:18 chromatic kid51, your gdb run is weird because you gave ./parrot as the first argument to the parrot process.
00:18 cotto all tests pass for gc_massacre on ubuntu/x86
00:18 luben reading the irclogs now. I have something to say about exception handlers and continuations
00:19 whiteknight luben: do tell
00:20 luben Some months ago I have tried to implement perl6 subroutine/method semantics in scheme
00:21 luben and see what are the performance implications of differend implementation details
00:21 luben I was working with mzScheme, now known as raket
00:23 luben In it there is different type of continuations - full continuation (as our Continuation PMC) but also escape continuations - that could only go down the stack and not resume from where they where invoked
00:24 whiteknight we used to have RetContinuations
00:24 whiteknight they were not as cheap as they could have been
00:24 kid51 chromatic: What should I have done?
00:25 * kid51 not very familiar with gdb
00:25 luben my experiments is scheme showed that using escape cont was tens of times faster that using full continuation
00:25 chromatic kid51, there's no crash so no reason to run gdb.
00:25 chromatic Even so, if you want to run a program and pass arguments, you don't need to specify the program itself as its first argument.
00:26 luben s/is/in/
00:26 chromatic (gdb) run t/pmc/filehandle_22.pir  # would have worked fine
00:26 cotto You can also use gdb --args to run the program as normal, with arguments, but under gdb
00:26 cotto I like that trick.
00:27 whiteknight thats what I do
00:27 kid51 cotto
00:28 kid51 not sure what you mean
00:31 cotto You can run gdb --args ./parrot --foo --bar path/to/file.pbc and gdb will pass those arguments to the parrot executable when you run
00:36 kid51 got it. thanks
00:36 cotto np
00:36 cotto (or p.  I hear they're the same.)
00:39 kid51 is now known as kid51_at_dinner
00:43 dalek parrot: r49216 | plobsing++ | branches/typesafe_consttable/src (3 files):
00:43 dalek parrot: fix pbc_merge, pbc_dump, and pbc_disassemble
00:43 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49216/
00:46 whiteknight left #parrot
00:50 davidfetter left #parrot
00:54 bacek_at_work aloha,
00:55 bacek_at_work kid51_at_dinner, I'll look at problem with filehandle_22.t. I suspect that test is slightly incorrect.
00:57 bacek_at_work Looks like '$P0' from test kept alive by CallContext. We discussed similar issue few weeks ago.
00:58 GeJ clock?
00:58 purl GeJ: LAX: Tue 5:58pm PDT / CHI: Tue 7:58pm CDT / NYC: Tue 8:58pm EDT / LON: Wed 1:58am BST / BER: Wed 2:58am CEST / IND: Wed 6:28am IST / TOK: Wed 9:58am JST / SYD: Wed 10:58am EST /
00:58 GeJ Bonjour everyone.
00:58 GeJ G'Day bacek.
00:59 bacek_at_work GeJ, g'day
01:17 dalek parrot: r49217 | bacek++ | branches/gc_massacre/t/pmc/filehandle.t:
01:17 dalek parrot: Cleanup CallContext in filehandle.t to really test timely destruction. Looks like old GC exposing some weird bug passing this test and destroying object which is actually referenced.
01:17 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49217/
01:17 dalek parrot: r49218 | nwellnhof++ | branches/string_macros:
01:17 dalek parrot: Use new string macros
01:17 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49218/
01:17 dalek parrot: r49219 | nwellnhof++ | branches/string_macros (6 files):
01:17 dalek parrot: [str] Add own encoding for null string
01:17 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49219/
01:17 dalek parrot: r49220 | nwellnhof++ | branches/string_macros (2 files):
01:17 dalek parrot: [str] String API optimizations
01:17 dalek parrot: Simplify the argument checks of some string functions. This is in
01:17 dalek parrot: preparation of the following commits that will move these checks
01:17 dalek parrot: directly into the encoding functions, and switch a lot of Parrot code
01:17 dalek parrot: to the new string macros.
01:17 dalek parrot: With the exception of STRING_length and STRING_byte_length, the string
01:17 dalek parrot: macros don't check the string argument for NULL pointers. So the
01:17 dalek parrot: following commits also fix some places that still didn't use
01:17 dalek parrot: STRING_IS_NULL and STRINGNULL.
01:17 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49220/
01:34 dalek parrot: r49221 | nwellnhof++ | branches/string_macros (20 files):
01:34 cotto dukeleto, ping
01:34 dalek parrot: [str] Switch to STRING_ord macro
01:34 dalek parrot: Move the whole 'ord' logic into the string vtable functions.
01:34 dalek parrot: Also modifies Parrot_str_indexed to accept negative indices as well. The old
01:34 dalek parrot: string_ord function can finally be deprecated.
01:34 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49221/
01:34 dalek parrot: r49222 | nwellnhof++ | branches/string_macros (46 files):
01:34 dalek parrot: [str] Switch to STRING_equal macro
01:34 dalek parrot: Move the whole 'str_equal' logic into the string vtable functions
01:34 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49222/
01:34 dalek parrot: r49223 | nwellnhof++ | branches/string_macros (24 files):
01:34 dalek parrot: [str] Switch to STRING_substr macro
01:34 dalek parrot: Move the whole 'substr' logic into the string vtable functions
01:34 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49223/
01:34 dalek parrot: r49224 | nwellnhof++ | branches/string_macros (8 files):
01:34 dalek parrot: [str] Switch to STRING_hash macro
01:34 dalek parrot: Move the whole 'str_to_hashval' logic into the string vtable functions
01:34 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49224/
01:34 dalek parrot: r49225 | nwellnhof++ | branches/string_macros (8 files):
01:34 dalek parrot: [str] Switch to STRING_compare macro
01:34 dalek parrot: Move the whole 'compare' logic into the string vtable functions
01:34 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49225/
01:34 dalek parrot: r49226 | nwellnhof++ | branches/string_macros (13 files):
01:34 dalek parrot: [str] Switch to STRING_index macro
01:35 dalek parrot: Move the whole 'index' logic into the string vtable functions. This also
01:35 dalek parrot: changes the index opcode to throw when the source string is null. If this
01:35 dalek parrot: change causes problems, we can add a deprecation notice or revert it.
01:35 purl dalek: that doesn't look right
01:35 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49226/
01:35 dalek parrot: r49227 | nwellnhof++ | branches/string_macros/src/string/encoding (3 files):
01:35 dalek parrot: [str] Make some string code work without ICU
01:35 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49227/
01:37 kid51_at_dinner grrrrr. r49217 gets t/pmc/filehandle.t Test 22 to pass on Linux/i386 -- but not on Darwin/PPC.
01:37 kid51_at_dinner is now known as kid51
01:40 nwellnhof left #parrot
01:42 bacek_at_work kid51, strange...
01:42 kid51 Indeed
01:49 dngor left #parrot
01:49 dngor joined #parrot
01:51 davidfetter joined #parrot
02:01 dukeleto howdy
02:02 cotto dukeleto, do you have github commit messages with a full diff working?
02:07 davidfetter left #parrot
02:14 GodFather joined #parrot
02:23 dukeleto cotto: in what way? emails?
02:24 dukeleto cotto: github only does diffstats on their commit hooks
02:27 dukeleto can somebody add 2.8.0 to trac?
02:28 * dukeleto tries to do it
02:30 * dukeleto did it
02:34 dalek TT #1797 created by dukeleto++: parrot --gc-threshold coredumps when given no threshold
02:34 dalek TT #1797: http://trac.parrot.org/parrot/ticket/1797
02:34 chromatic That's easy enough to fix.
02:35 GodFather left #parrot
02:35 janus left #parrot
02:37 dukeleto chromatic: i talked to nwellenhof and he said that the stress_strings.pir slowdown was caused by changing the gc_threshold in 48585
02:37 dukeleto chromatic: it makes parrot use less memory as a tradeoff for speed. I am not sure we should be trading speed for memory use at this point.
02:37 dukeleto chromatic: I think our speed concerns are more dire than our memory use, currently.
02:38 dukeleto chromatic: but I am not sure how "real-world" the stress_strings.pir benchmark is. It is kind of a pathological case for the GC, no?
02:39 chromatic Let's benchmark Rakudo with it.
02:39 chromatic That benchmark is very pathological.
02:48 ash_ left #parrot
02:52 kid51 left #parrot
02:53 luben I have benchmarked rakudo startup with some different values for gc-threshold
02:53 luben look here: http://luben.spnet.net/gc-time-mem.png
02:53 chromatic What are the axes?
02:53 purl the axes are 1-d =)
02:53 luben the blue line is time in ms
02:54 janus joined #parrot
02:54 luben axes are time and gc-threshold values
02:54 luben the red line is memory consumtion * 6 (in order to overlap with time)
02:55 plobsing we seem to get decent returns on trading memory for speed until gc-threshold ~= 75
02:56 luben yes, I think 75 will be good overall compromise
02:56 chromatic How does the stress_strings benchmark fare at 75?
02:57 luben I have a chert, moment to find it
02:58 luben here it is: http://luben.spnet.net/gc-threshold-string.png
02:58 luben axes are time in secons/gc-threshold
02:59 chromatic 75 there is decent.
02:59 luben yes
03:01 chromatic We'll have to redo these benchmarks with gc ms 2
03:03 theory left #parrot
03:04 plobsing it would be nifty if there were some way to run that benchmark programatically. I'd like to zoom in on 75.
03:04 luben gc_masacre branch eats a lot more memory compared to trunc
03:04 chromatic bacek fixed some of that
03:05 luben let's find the numbers of yesterday
03:06 bacek_at_work chromatic, most of them actually.
03:06 chromatic I don't want to overpromise for you.
03:07 bacek_at_work :)
03:08 luben ok, without gc-threshold compile of core.pm eats around 600M. the branch (tested 1 hour ago) eats around 850M
03:08 luben trunc was tested 2 days ago. I have now some issues compiling rakudo on trunc
03:09 luben all these numbers are on linux/amd64
03:09 bacek_at_work luben, you can play with gc_threshold value on line 630 in src/gc/gc_ms2.c.
03:10 bacek_at_work Currently I run GC after 256M of allocated memory.
03:10 bacek_at_work Which means we have up to 256M of garbage.
03:11 luben bacek, I'll try now
03:11 bacek_at_work luben, if you have time to make it configurable via CLI it would be nice.
03:13 bacek_at_work aloha, msg mikehh gc_massacre branch should be buildable with g++
03:13 aloha bacek_at_work: OK. I'll deliver the message.
03:15 dalek parrot: r49228 | plobsing++ | branches/typesafe_consttable/src​/pmc/packfileconstanttable.pmc:
03:15 dalek parrot: reimplement PackfileConstantTable with typesafe consttable
03:15 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49228/
03:15 dalek parrot: r49229 | bacek++ | branches/gc_massacre/src/gc/fixed_allocator.c:
03:16 dalek parrot: Explicit cast allocated memory. Fix c++ build.
03:16 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49229/
03:16 dalek parrot: r49230 | bacek++ | branches/gc_massacre/src/gc/gc_ms2.c:
03:16 dalek parrot: Use String GC to allocated Buffers. Fixes c++ build.
03:16 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49230/
03:21 luben with 128M in gc_ms2 core.pm build in 730M in time comparable with trunc
03:30 luben with 64M in gc_ms2, core.pm builds in 640M, but slower than trunc
03:33 dalek parrot: r49231 | plobsing++ | branches/typesafe_consttable (2 files):
03:33 dalek parrot: fix PackfileConstantTable methods and bring packfileconstanttable.t up to date with current interface
03:33 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49231/
03:50 dalek parrot: r49232 | mikehh++ | failed to fetch changeset:
03:51 dalek parrot: [html_cleanup] merge with trunk at r49200
03:51 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49232/
03:52 echosystm joined #parrot
03:52 echosystm i keep hearing talk about parrot, threading and JIT
03:52 echosystm does parrot lack these features?
03:54 plobsing echosystm: parrot's threading is considered LTA, and it's JIT subsystem was ripped out last year because it was causing problems.
03:54 bacek_at_work echosystm, Old JIT implementation was removed due maintenance hell, threading was in this year GSoC.
03:54 echosystm okie doke
04:24 dalek parrot: r49233 | mikehh++ | branches/html_cleanup (3 files):
04:24 dalek parrot: [html_cleanup] - re-generate MANIFEST
04:24 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49233/
04:35 davidfetter joined #parrot
04:41 dukeleto lollerskates: http://imgur.com/jacoj
04:41 chromatic http://doc.cat-v.org/inferno/concurrent_gc/
04:42 dukeleto echosystm: parrot has some threading, and we are planning a large refactor called "Lorito" to implement JIT properly
04:42 Austin joined #parrot
04:42 dukeleto Austin: welcome, stranger
04:42 Austin Hiya, duke.
04:43 Austin left #parrot
04:43 dukeleto guess he doesn't like me.
04:44 dukeleto chromatic: is that algorithm implementable after we merge gc_massacre  ?
04:46 chromatic I'm not sure.
04:46 chromatic I haven't absorbed the details of the gc_massacre interface changes.
04:50 plobsing where would be a good place to stash metadata in PBC? annotations segment?
04:51 chromatic What kind of metadata?
04:52 plobsing "static dependancies" as described recently on parrot-dev
04:55 chromatic I'd rather have a metadata segment.
04:56 plobsing what is an annotations segment other than a metadata segmetn?
04:56 plobsing s/segmetn/segment/
04:58 dalek parrot: r49234 | mikehh++ | branches/gc_massacre/src/gc (2 files):
04:58 dalek parrot: [gc_massacre] run make headerizer
04:58 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49234/
04:58 dalek parrot: r49235 | plobsing++ | branches/typesafe_consttable/t/pmc/packfile.t:
04:58 dalek parrot: update packfile.t to current PackfileConstantTable interface
04:58 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49235/
05:01 chromatic I suppose you can see it that way, yes.
05:15 dalek parrot: r49236 | plobsing++ | branches/typesafe_consttable/src/packfile.c:
05:15 dalek parrot: c_macro_args.t doesn't seem to appreciate my 'clever' use of macros
05:15 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49236/
05:17 cotto dukeleto, I mean emails similar to what we get from svn now.  istr that that's one of the remaining blockers.
05:18 chromatic left #parrot
05:21 mikehh gc_massacre branch: All tests PASS (pre/post-config, make corevm/make coretest, smoke (#161) fulltest) at r49234 - Ubuntu 10.10 beta amd64 (g++-4.5 with --optimize)
05:23 dukeleto cotto: if we want emails like what we get now, githubs default post-receive hook is not going to work
05:30 aloha left #parrot
05:32 dalek parrot: r49237 | plobsing++ | branches/typesafe_consttable/src (2 files):
05:32 dalek parrot: document static functions in pod
05:32 dalek parrot: Hey users, here's a bunch of functions you can't use!
05:32 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49237/
05:32 dalek parrot: r49238 | plobsing++ | branches/typesafe_consttable/src/packdump.c:
05:32 dalek parrot: [codingstd] trailing whitespace
05:32 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49238/
05:32 bacek left #parrot
06:06 dalek parrot: r49239 | plobsing++ | branches/typesafe_consttable (4 files):
06:06 dalek parrot: expand and eliminate convenience macro that can't possibly satisfy c_macro_args.t
06:06 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49239/
06:09 ascent_ left #parrot
06:28 cotto dukeleto, how much effort would it take to get the equivalent of parrot-commits set up?
06:31 NotFound bacek_at_work: http://trac.parrot.org/parrot/changeset/49217/ the test showed a problem, fixing the test instead of the problem is the wrong approach
06:32 bacek_at_work NotFound, problem doesn't exist in GC MS2. I hope to rip out old GC MS.
06:32 NotFound bacek_at_work: if the problem doesn't exist, don't fix the test.
06:33 bacek_at_work fixed test actually test desired behaviour.
06:33 NotFound bacek_at_work: I don't desire to call dummy subs,
06:34 bacek_at_work test is testing that FileHandle.destroy actually close filehandle
06:35 NotFound bacek_at_work: is testing that the destruction happen when it should.
06:35 bacek_at_work sweep 0            # a lazy GC has to close the PIO
06:35 bacek_at_work ?
06:39 NotFound bacek_at_work: that means the the object should be collected, no matter how lazy the gc is, IMO
06:39 bacek_at_work NotFound, I don't quite understand how "lazy GC" suppose to work. Basically original test shows that it's really bad idea.
06:39 dalek parrot: r49240 | plobsing++ | branches/typesafe_consttabl​e/include/parrot/context.h:
06:39 dalek parrot: fix optimized build
06:39 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49240/
06:41 NotFound bacek_at_work: you think is a good idea to keep alive an unreferenced object?
06:42 bacek_at_work NotFound, it's referenced in CallContext for current sub.
06:42 bacek_at_work And old GC kills it.
06:42 NotFound bacek_at_work: that is the problem
06:42 bacek_at_work NotFound, hmm. Why?
06:43 NotFound bacek_at_work: that callcontext object should be cleaned while collecting return values.
06:43 bacek_at_work NotFound, probably. But it's out of scope for gc_massacre branch or filehandle.t.
06:44 NotFound bacek_at_work: if you change that, be ready to having to reopen and refix old bugs.
06:45 bacek_at_work NotFound, erm. Can you explain it? Which bugs?
06:45 NotFound bacek_at_work: the kind of bugs that that test prevents.,
06:46 bacek_at_work erm. This test doesn't prevent any bugs. In unmodifed version it actually exposes bug in old GC.
06:46 bacek_at_work GC MS2 collect _less_ objects because it's more precise.
06:46 NotFound You replace in some place one oor several ops with a method or function call, and misteriously a bug appears in undeterminated conditions.
06:46 bacek_at_work So, it's doing less harm.
06:47 NotFound bacek_at_work: What bug? The test was working.
06:47 bacek_at_work NotFound, because of bug in old GC.
06:47 bacek_at_work Which collect object prematurely.
06:47 bacek_at_work In "lazy mode"
06:49 NotFound bacek_at_work: You mean that the object is actually in the context and is colected anyway?
06:49 bacek_at_work exactly
06:49 NotFound bacek_at_work: then someone broke it recently.
06:49 bacek_at_work NotFound, may be.
06:50 NotFound Marvelous,.
06:50 NotFound We brreak something, the break other thing to hide it.
06:50 bacek_at_work Welcome to parrot.
06:51 NotFound Fine, but we should deprecate timely destruction if we keep going that way.
06:53 bacek_at_work We should deprecate "lazy GC" actually.
06:53 bacek_at_work timely destruction works (fsvo).
06:53 bacek_at_work But I would like to see more generic solution for it.
06:53 NotFound We can deprecate the full GC in one shot, to save time-
06:54 bacek_at_work Similar to C# using().
06:54 bacek_at_work NotFound, no one promise "full GC in shot".
06:56 dalek parrot: r49241 | plobsing++ | branches/typesafe_consttable/src/packfile.c:
06:56 dalek parrot: [codingstd] line length
06:57 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49241/
06:58 sorear bacek_at_work: can you explain timely destruction?  I don't understand how it works.
06:59 bacek_at_work sorear, I can explain how it "suppose" to work.
07:00 bacek_at_work You register PMC using needs_destroy opcode. GC will remember number of "impatient objects". During "lazy GC" it will stop after seeing number of "impatient objects" without doing "full GC"
07:01 NotFound bacek_at_work: having to insert calls to dummy functions just to be sure that the context isn't storing some info remaining from previous function or method calls is horribly wrong, IMO
07:02 bacek_at_work NotFound, I was actually wrong about CallContext. Looks like FileHandle found in system stack.
07:02 NotFound In System stack? Urgh.
07:03 NotFound Then we have a real problem.
07:03 bacek_at_work Yes. In system stack.
07:03 NotFound And then, deprecating timely destruction is no more a joke.
07:04 bacek_at_work http://nopaste.snit.ch/23523
07:04 bacek_at_work NotFound, check pointer in FileHandle_open and backtrace.
07:05 bacek_at_work errm...
07:05 bacek_at_work Wrong pointer
07:06 NotFound bacek_at_work: I suspect that some unitialized variable in the call chain is keeping remainings from previous calls.
07:06 bacek_at_work NotFound, may be.
07:07 NotFound And that means heisenbugs wherever someone trusts timely destruction.
07:09 bacek_at_work NotFound, +1 to deprecate it than.
07:11 NotFound bacek_at_work: that trace is from trunk or from the branch?
07:13 NotFound Ah, gc_ms2.c
07:26 barney joined #parrot
07:27 plobsing left #parrot
07:29 echosystm left #parrot
07:51 tadzik joined #parrot
07:57 bacek joined #parrot
08:02 aloha joined #parrot
08:04 bacek aloha, humans
08:30 hudnix left #parrot
08:30 barney left #parrot
08:30 hudnix joined #parrot
08:35 bacek left #parrot
08:38 bacek joined #parrot
08:40 aloha left #parrot
08:40 bacek left #parrot
08:46 aloha joined #parrot
08:46 bacek joined #parrot
08:59 tadzik Parrot used to build with LDFLAGS=-Wl,--as-needed, now it does not. Is it known?
09:06 dalek TT #828 closed by bacek++: Separate out GC String Core
09:06 dalek TT #828: http://trac.parrot.org/parrot/ticket/828
09:09 ascent joined #parrot
09:24 dalek TT #670 closed by bacek++: Rearranging the GC interface
09:24 dalek TT #670: http://trac.parrot.org/parrot/ticket/670
09:42 sjn left #parrot
09:42 sjn joined #parrot
09:56 bacek msg jnthn You'll love r49242 :)
09:56 purl Message for jnthn stored.
09:56 aloha OK. I'll deliver the message.
10:03 dalek parrot: r49242 | bacek++ | branches/gc_massacre/src/gc/gc_ms2.c:
10:03 dalek parrot: Made GC MS2 marking non-recursive. Close TT#1723 after merge back to trunk.
10:03 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49242/
10:05 fperrad joined #parrot
10:10 bacek fperrad, ping
10:21 lucian joined #parrot
10:43 fperrad bacek, pong
10:55 dalek parrot: r49243 | bacek++ | branches/gc_massacre (84 files):
10:55 dalek parrot: Merge branch 'master' into gc2
10:55 dalek parrot: Conflicts:
10:55 dalek parrot: src/call/context_accessors.c
10:55 dalek parrot: src/gc/gc_ms.c
10:55 dalek parrot: src/gc/string_gc.c
10:55 dalek parrot: src/pmc/imageio.pmc
10:55 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49243/
11:15 kurahaupo joined #parrot
11:15 contingencyplan left #parrot
11:23 bkuhn joined #parrot
11:40 masak joined #parrot
11:42 plobsing joined #parrot
11:49 whiteknight joined #parrot
11:52 whiteknight good morning, #parrot
11:57 kurahaupo left #parrot
12:02 whiteknight bacek: ping
12:16 lucian left #parrot
12:20 whiteknight_ joined #parrot
12:21 whiteknight left #parrot
12:22 whiteknight_ is now known as whiteknight
12:25 plobsing rakudo segfaults with trunk. anyone know why this is?
12:26 moritz I think somebody mentioned a revision in the backlog; but I can't remember it :(
12:27 plobsing moritz: do you recall that on #parrot or #perl6?
12:27 moritz I think it was here
12:27 * plobsing will check the logs
12:31 plobsing found it. r49204 reported by nwellnhof++. moritz++
12:31 pmichaud just revert 49204 for now.
12:31 plobsing that's the plan. my ultimate goal is to see how typesafe_consttable affects rakudo startup (I'm feeling lucky)
12:34 whiteknight left #parrot
12:38 bluescreen joined #parrot
12:45 bluescreen left #parrot
12:45 bluescreen joined #parrot
12:47 dalek rakudo: 8156beb | moritz++ | src/glue/enum.pm:
12:47 dalek rakudo: fix .pick and .roll on enums
12:47 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​156beb6c2fb86ae71954f182dcc1bb7a12bf830
12:49 arnsholt joined #parrot
12:55 whiteknight joined #parrot
13:04 ruoso joined #parrot
13:08 dalek parrot: r49244 | pmichaud++ | trunk/compilers/pct/src/PAST/Compiler.pir:
13:08 dalek parrot: [pct]:  Change ExceptionHandler to be created with newp_p_ic to avoid segfault when building Rakudo.
13:08 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49244/
13:08 dalek parrot: r49245 | pmichaud++ | branches/gc_massacre/compiler​s/pct/src/PAST/Compiler.pir:
13:08 dalek parrot: [pct]:  Change ExceptionHandler to be created with newp_p_ic to avoid segfault when building Rakudo.
13:08 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49245/
13:14 patspam joined #parrot
13:19 Patterner left #parrot
13:29 Psyche^ joined #parrot
13:29 Psyche^ is now known as Patterner
13:34 patspam left #parrot
13:40 patspam joined #parrot
13:43 patspam1 joined #parrot
13:44 tadzik left #parrot
13:46 patspam left #parrot
13:47 davidfetter left #parrot
13:52 tadzik joined #parrot
13:56 patspam1 left #parrot
13:57 davidfetter joined #parrot
13:57 davidfetter left #parrot
13:58 dalek roast: 44e9d50 | moritz++ | S32-hash/exists.t:
13:58 dalek roast: [exists.t] remove some wrong assumptions about how True stringifies
13:58 dalek roast: review: http://github.com/perl6/roast/commit/44​e9d50ec05d7f2716272e7021914830d640f64d
14:01 sECuRE i got a question about src/io/socket_unix.c:Parrot_io_accept_unix. in the source, a new socket PMC is created (newio), but if newsock is -1, it is not destroyed. does this happen automatically for some reason or is this a bug?
14:05 ruoso left #parrot
14:06 lucian joined #parrot
14:10 patspam joined #parrot
14:13 NotFound pmichaud: ping
14:15 NotFound sECuRE: no need to destroy, garbage collection will do it.
14:15 nwellnhof joined #parrot
14:15 sECuRE NotFound: alright, thanks
14:16 sECuRE another question: i want to call a function of the sockaddr pmc from src/io/socket_unix.c. how would i declare that without a VTABLE entry? should i use a METHOD? is there something else?
14:16 lucian left #parrot
14:17 NotFound sECuRE: what function?
14:17 purl function is declared in debug.h and defined in debug.c but is only used in imcc/pbc.c , and the const_table is used in a lot of places unrelated to pdb.
14:17 NotFound purl: forget function
14:17 purl NotFound: I forgot function
14:17 sECuRE NotFound: i need two different functions to initialize the sockaddr
14:18 sECuRE NotFound: so, i’d need init(struct addrinfo *res) and init(struct sockaddr_storage *addr)
14:20 sECuRE alternatively, init(struct sockaddr_storage *addr, int len) would be enough for both. but as far as i see it, one can only use init() because it’s a VTABLE override, right?
14:20 NotFound You have also init_pmc, but you are limited to one PMC parameter
14:21 sECuRE hrm, so do i need to create a helper struct? i need two parameters
14:21 sECuRE or, alternatively, a function set_length which is called afterwards
14:21 sECuRE that would be even better in terms of memory usage in this case
14:21 ruoso joined #parrot
14:22 moritz maybe abuse the set_integer vtable for that?
14:22 moritz just like my @h; @h = 10; in perl 5 :-)
14:22 sECuRE hm, possible
14:22 purl NOT!
14:22 purl was kicked by moritz: purl
14:22 purl joined #parrot
14:22 NotFound sECuRE: that PMC has very little encapsulation, I think is better to use directly its data rather than playing games with is vtable-
14:23 sECuRE ok. is there a header i should include for that?
14:23 sECuRE just using Parrot_Sockaddr_attributes did not work
14:23 patspam1 joined #parrot
14:23 sECuRE (unknown type)
14:23 NotFound pmc/pmc_sockaddr.h, i think
14:24 sECuRE ah, thanks
14:25 patspam left #parrot
14:27 sECuRE yop, works
14:28 lucian joined #parrot
14:34 silug joined #parrot
14:35 patspam joined #parrot
14:38 patspam1 left #parrot
14:40 patspam1 joined #parrot
14:43 ash_ joined #parrot
14:43 patspam left #parrot
14:46 Coke moritz: he's back already.
14:47 moritz Coke: still gave me a certain satisfaction
14:48 Coke why not ban him?
14:48 Coke I thought that's the direction we were going in.
14:51 davidfetter joined #parrot
14:54 moritz Coke: I'd love to, but I didn't feel like making that decision for the channel as whole
14:54 moritz so, straw poll
14:55 davidfetter if it's about telling purl to sleep with the fishes, count my vote as +1
14:55 moritz what do you think about banning purl permanently? [ ] ban   [ ] don't ban   [ ] dunno
14:55 davidfetter ban
14:55 * moritz also votes ban
14:56 whiteknight murder. Ban is fine too
14:57 chromatic joined #parrot
15:01 Coke ban (we have aloha)
15:02 moritz 4:0
15:03 Coke botsnack?
15:03 purl thanks Coke :)
15:04 davidfetter left #parrot
15:06 purl was kicked by moritz: purl
15:08 dalek TT #1797 closed by chromatic++: parrot --gc-threshold coredumps when given no threshold
15:08 dalek TT #1797: http://trac.parrot.org/parrot/ticket/1797
15:08 dalek parrot: r49246 | chromatic++ | trunk (2 files):
15:08 dalek parrot: [main] Fixed --gc-threshold args segfault TT #1797.
15:08 dalek parrot: Because parseflags_minimal() performs minimal options processing, it has to
15:08 dalek parrot: check the length of the arguments before the getopts processor does so.  The
15:08 dalek parrot: good news is that fixing this here avoids other potential crashes and memory
15:08 dalek parrot: infelicities.
15:08 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49246/
15:10 NotFound "memory infelicities"... I like that concept.
15:15 chromatic Who knows what you'll find if you walk past the end of argv?
15:16 ash_ undefined behavior? seg faults?
15:16 moritz you'll probably find decorative bytes.
15:18 chromatic No wonder it crashed; it was gnawing on the crenellations.
15:18 NotFound To end of argv and beyond!
15:19 mikehh aloha is not reliable yet
15:20 mikehh -1 on banning purl
15:31 patspam1 left #parrot
15:43 Coke ok. can we ban aloha then? ;)
15:46 patspam joined #parrot
15:48 lucian left #parrot
15:52 nwellnhof left #parrot
15:57 theory joined #parrot
16:00 mikehh aloha is an experimental replacement for purl, but still experimental :-}
16:04 mikehh poor innocent bots being abused by parrot developers
16:37 masak left #parrot
16:50 moritz sECuRE++ # http://trac.parrot.org/parrot/ticket/1798
16:54 dalek TT #1798 created by mstapelberg++: IPv6 support for Parrot
16:54 dalek TT #1798: http://trac.parrot.org/parrot/ticket/1798
16:59 Coke geez, do we even support ipv4 yet?
17:00 sECuRE yap, works for me at least ;)
17:00 Coke ooh, patch. mstapelberg++
17:00 sECuRE ;)
17:00 Coke oh, is secure==mstapelberg?
17:00 sECuRE yap
17:00 Coke sECuRE++ #then.
17:00 sECuRE ;)
17:02 * dukeleto loves the smell of patches in the morning. It's the smell of victory.
17:02 dukeleto sECuRE: i am looking at your patch now. Would you mind adding a few tests for it?
17:03 sECuRE dukeleto: that’s the next thing on my todo list ;)
17:03 sECuRE you are talking about the roast test-suite, right?
17:03 moritz parrot also has a test suite
17:04 sECuRE ah, ok
17:04 dukeleto sECuRE: I am talking about adding tests to the t/ directory of parrot for your ipv6 patch
17:05 dukeleto sECuRE: the test should probably just attempt to connect to localhost via ipv6, because you can't assume there will be network access in our tests
17:05 sECuRE yap. i see that the current tests are very basic (just check instantiation)
17:06 sECuRE did you have a look at roast’s IO::Socket::INET tests, by chance?
17:06 sECuRE they have to work with spawning separate processes because threads/forks are missing in rakudo so far
17:06 dukeleto sECuRE: i have not
17:06 sECuRE because the 'accept' call blocks and you can’t connect/accept at the same time
17:07 jnthn bacek: Great! \o/ bacek++ bacek++
17:07 sECuRE also, i wonder how similar the tests will be as rakudo basically just wraps around the parrot calls for sockets
17:09 dukeleto sECuRE: borrowing tests from rakudo is fine, but we need a few tests in parrot to verify that it works
17:09 sECuRE alright. what do you suggest to solve the concurrency problem with connect/accept?
17:10 dukeleto sECuRE: we have PIR and Perl based tests in the parrot test suite. It looks like you might need a perl-based tests so you can deal with concurrency
17:10 sECuRE ah, yap, perl-based sounds good :)
17:10 dukeleto sECuRE: basically, the perl-based tests spawn PIR programs and do stuff with the output
17:11 sECuRE ok, i’ll have a look at it in a few minutes
17:11 dukeleto sECuRE: awesome! The docs for the relevant PMCs should also be updated to say they support ipv6
17:11 dalek winxed: r662 | NotFound++ | trunk/winxedst1.winxed:
17:11 dalek winxed: search for class in scope were not propagated from inside a class, fixed
17:11 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=662
17:12 sECuRE dukeleto: i’ve updated most of the PMC docs. which are still missing?
17:14 dukeleto sECuRE: I saw you updated the docs in the .pmc files, but we also have docs in our docs/ directory, in POD format as well.
17:14 sECuRE ah, ok.
17:14 dukeleto sECuRE: docs in *.pmc files are more for devs, where the docs in docs/ are more geared toward users
17:14 sECuRE yap
17:20 dalek roast: ea847c7 | moritz++ | S0 (6 files):
17:20 dalek roast: remove more wrong uses of True and False as 0 and 1 (still more left); make good use of nok() function
17:20 dalek roast: review: http://github.com/perl6/roast/commit/ea​847c7f91f8d3aac63df6e12edfc4ce4ac0db15
17:20 dalek roast: 672abda | moritz++ | S06-multi/type-based.t:
17:20 dalek roast: [type-based.t] fix another Bool stringification usage
17:20 dalek roast: review: http://github.com/perl6/roast/commit/67​2abda9646c57d585a8d73b096bf0f380da06c5
17:21 lucian joined #parrot
17:22 dukeleto sECuRE: does you patch only work on unixy systems?
17:26 davidfetter joined #parrot
17:26 dukeleto davidfetter: hello fine sir
17:27 davidfetter hai
17:27 lucian left #parrot
17:27 davidfetter is purl gone?
17:31 contingencyplan joined #parrot
17:35 Coke botsnack
17:35 Coke aloha, davidfetter?
17:35 aloha Coke: I have no idea.
17:35 davidfetter hai Coke
17:35 Coke aloha?
17:35 Coke aloha, you are super slow!
17:35 aloha Coke: Okay.
17:37 jnthn you?
17:37 jnthn aloha, you?
17:37 aloha jnthn: you are super slow!
17:37 jnthn :P :P
17:37 lucian joined #parrot
17:39 pmichaud (straw poll)   ban purl
17:44 patspam left #parrot
17:44 dalek parrot: r49247 | pmichaud++ | branches/gc_massacre/src/gc/api.c:
17:44 dalek parrot: [gc]:  Enable ms2 to properly report itself to interpinfo as "ms2" instead of "unknown".
17:44 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49247/
17:44 lucian left #parrot
17:46 davidfetter +1 for banning purl
17:49 cotto -1 until we have karma transferred
17:50 pmichaud karma pmichaud
17:51 aloha pmichaud has karma of 129.
17:51 pmichaud purl:  karma pmichaud
17:51 pmichaud banned already?  cool!
17:51 pmichaud 17:51 <purl> pmichaud has karma of 4301
17:51 pmichaud I'm more than willing to lose my stash of karma to see the end of the endlessly annoying purlbot  :)
17:56 ash_ left #parrot
17:58 patspam joined #parrot
18:14 patspam1 joined #parrot
18:15 ash_ joined #parrot
18:17 patspam left #parrot
18:22 pjcj left #parrot
18:27 ash_ left #parrot
18:31 ruoso left #parrot
18:45 patspam1 left #parrot
18:47 ruoso joined #parrot
18:53 dalek parrot: r49248 | NotFound++ | trunk/src/scheduler.c:
18:53 dalek parrot: avoid an if/else with identical branches and some cleaning in the function Parrot_cx_find_handler_local
18:53 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49248/
19:01 patspam joined #parrot
19:03 whiteknight_ joined #parrot
19:06 whiteknight left #parrot
19:06 whiteknight_ is now known as whiteknight
19:17 ash_ joined #parrot
19:18 whiteknight_ joined #parrot
19:21 whiteknight left #parrot
19:21 whiteknight_ is now known as whiteknight
19:25 bluescreen left #parrot
19:27 dalek parrot: r49249 | pmichaud++ | trunk (2 files):
19:27 dalek parrot: [docs]:  Remove obsolete (and incorrect) draft/pdd31_hll_interop.pod .
19:27 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49249/
19:33 M_o_C joined #parrot
19:39 lucian joined #parrot
19:40 bluescreen joined #parrot
19:42 TimToady [no phone today]
19:47 chromatic I brushed my teeth and everything.
19:48 ruoso left #parrot
19:54 allison left #parrot
19:55 allison joined #parrot
19:57 Andy joined #parrot
20:03 whiteknight left #parrot
20:03 ruoso joined #parrot
20:03 GeJ Bonjour everyone.
20:07 fperrad left #parrot
20:11 M_o_C left #parrot
20:14 bluescreen left #parrot
20:32 dalek winxed: r663 | NotFound++ | trunk/winxedst1.winxed:
20:32 dalek winxed: optimize logical not and comparators in stage 1
20:32 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=663
20:55 ash_ left #parrot
20:59 ash_ joined #parrot
21:00 kid51 joined #parrot
21:00 ruoso left #parrot
21:02 patspam left #parrot
21:07 dalek winxed: r664 | NotFound++ | trunk/examples/fly.winxed:
21:07 dalek winxed: use closures instead of invokable objects for opengl callbacks in example fly
21:07 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=664
21:08 patspam joined #parrot
21:08 patspam left #parrot
21:11 perlite left #parrot
21:11 perlite joined #parrot
21:28 mikehh opbots, names
21:29 ash__ joined #parrot
21:29 ash_ left #parrot
21:29 ash__ is now known as ash_
21:30 kid51 -1 on banning purl
21:30 dalek parrot: r49250 | jkeenan++ | branches/gc_massacre (2 files):
21:30 dalek parrot: Set svn metadata properties.
21:30 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49250/
21:33 kid51 left #parrot
21:35 eternaleye left #parrot
21:39 tadzik left #parrot
21:42 dalek winxed: r665 | NotFound++ | trunk/pir/winxed_compiler.pir:
21:42 dalek winxed: update installable compiler
21:42 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=665
21:46 sorear What idiot banned purl
21:46 sorear don't you know you can just ask it to be removed
22:04 mikehh sorear:  I think it was moritz earlier in a consipracy with Coke and others
22:04 mikehh poor bots being victimized by parrot developers
22:05 lucian left #parrot
22:07 bkuhn left #parrot
22:24 ash_ is there an alternative to readline that does support unicode?
22:28 GeJ ash_: I thought readline had support for that already.
22:30 GeJ 4.3 says something about "editing and displaying multibyte characters"
22:30 ash_ hmm, the perl6 repl doesn't work with readline enabled, disabling readline lets unicode work in the perl6 repl
22:30 ash_ i thought someone told me that readline doesn't support unicode
22:31 ash_ i guess i might of been misinformed
22:33 GeJ Not necessarily. I have limited experience with Unicode and realine.
22:34 ash_ i am re-building to test it again
22:35 GeJ But I seem to remember to have it working in bash with accentuated characters in bash.
22:36 * GeJ writes "I will read twice what I just typed before hitting the <Enter> key."
22:38 dalek parrot: r49251 | NotFound++ | trunk/t/pmc/bytebuffer.t:
22:38 dalek parrot: fix ByteBuffer tests that were passing for wrong reasons
22:38 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49251/
22:39 NotFound src/pmc/filehandle.pmc:385 Parrot_str_new(INTERP, r, 0) --> This will not give you unicode, no matter what readline supports.
22:48 ash_ > say 'Zażółć gęślą jaźń'
22:48 ash_ ZażóÅÄ gÄÅÄ
22:48 ash_ jaźÅ
22:48 ash_ is perl6 with readline
22:49 ash_ it works fine without readline, so... maybe i am jumping to conclusions, but...
22:49 ash_ s/perl6/rakudo/
22:59 whiteknight joined #parrot
23:01 davidfetter left #parrot
23:02 whiteknight good evening, #parot
23:02 whiteknight or #parrot
23:02 whiteknight or whoever you are
23:04 GeJ Hello Andrew.
23:05 ash_ i cant find anything in the readline doc's saying unicode doesn't work...
23:06 NotFound ash_: haven't you read my comment?
23:07 ash_ NotFound: so.... why does rakudo work without readline? i am not sure i understand what you mean
23:07 NotFound ash_: because without that readline, that line isn't compiled.
23:09 whiteknight hello GeJ
23:11 ash_ NotFound: so, what does it take to support a unicode str in parrot? is there a Parrot_str_new?
23:11 ash_ s/there a/there a different/
23:11 ash_ or alternative
23:12 NotFound ash_: I'm trying something...
23:12 ash_ i don't know the STRING* related things very well
23:12 NotFound ash_: no one does
23:12 ash_ lol
23:16 whiteknight IMCC creates strings in other encodings from literals in the code. Might be good to figure out what functions it calls
23:20 ash_ what does Parrot_io_reads do?
23:20 ash_ does that support uicode?
23:20 ash_ unicode*
23:22 NotFound Take a look at 49252
23:24 ash_ so your grabbing the encoding from the interp, then reading the string as that encoding?
23:25 NotFound But even with that change, someone must set the encoding of the stdin handle to utf8
23:26 ash_ does parrot have any sort of flags to say the core is running as utf8? or something?
23:26 NotFound ash_: no, from the FileHandle that is (suppossed to be) using.
23:27 ash_ what is a safe 'default' for that? should there be a flag you give to parrot to say that stdin is utf8? or latin1 or w/e other encodings are supported
23:28 ash_ or can you say, INTERP.encoding = 'utf8'
23:28 NotFound ash_: there is no default and nothing is safe.
23:29 ash_ well, then can you assume ascii unless told otherwise
23:29 dalek parrot: r49252 | NotFound++ | trunk/src/pmc/filehandle.pmc:
23:29 dalek parrot: use the FileHandle encoding in readline_interactive
23:29 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49252/
23:30 NotFound ash_: you can assume ascii and the enter a non-ascii string. That's why I said nothing is safe.
23:30 NotFound s/the/then
23:30 ash_ but is that user error? or a bad assumption?
23:31 NotFound ash_: I prefer to not qualify it, the words that come to my mind may be rude X-)
23:33 ash_ well, to give users the ability to control the encoding, what is the best way to ask? is it going to be a flag to the executable, or should it be a method on the INTERP? or something? i don't know how to solve this obviously, just making suggestions
23:34 * ash_ changing classrooms
23:34 ash_ left #parrot
23:53 ash_ joined #parrot
23:58 ash_ NotFound: should i email the mailing list on the issue? (of readline and utf8
23:58 ash_ )

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

Parrot | source cross referenced