Parrot 2.8.0 released | parrot.org Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | test gc_massacre branch | close 25 tickets; remove deprecated items (especially CodeString);
Set by moderator on 21 September 2010.
kid51 Just posted to list re gc_massacre branch, t/pmc/filehandle.t test 22 00:08
chromatic I get the same result. 00:10
cotto works fine for me on x86 00:12
luben It looks I missed ps today :) I'll post my reports next week 00:17
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
luben reading the irclogs now. I have something to say about exception handlers and continuations
whiteknight luben: do tell 00:19
luben Some months ago I have tried to implement perl6 subroutine/method semantics in scheme 00:20
and see what are the performance implications of differend implementation details 00:21
I was working with mzScheme, now known as raket
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:23
whiteknight we used to have RetContinuations 00:24
they were not as cheap as they could have been
kid51 chromatic: What should I have done?
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
chromatic kid51, there's no crash so no reason to run gdb.
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.
luben s/is/in/ 00:26
chromatic (gdb) run t/pmc/filehandle_22.pir # would have worked fine
cotto You can also use gdb --args to run the program as normal, with arguments, but under gdb
I like that trick.
whiteknight thats what I do 00:27
kid51 cotto
not sure what you mean 00:28
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:31
kid51 got it. thanks 00:36
cotto np
(or p. I hear they're the same.)
00:39 kid51 is now known as kid51_at_dinner
dalek rrot: r49216 | plobsing++ | branches/typesafe_consttable/src (3 files):
fix pbc_merge, pbc_dump, and pbc_disassemble
00:43
00:46 whiteknight left 00:50 davidfetter left
bacek_at_work aloha, 00:54
kid51_at_dinner, I'll look at problem with filehandle_22.t. I suspect that test is slightly incorrect. 00:55
Looks like '$P0' from test kept alive by CallContext. We discussed similar issue few weeks ago. 00:57
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 /
GeJ Bonjour everyone.
G'Day bacek.
bacek_at_work GeJ, g'day 00:59
dalek rrot: r49217 | bacek++ | branches/gc_massacre/t/pmc/filehandle.t:
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
rrot: r49218 | nwellnhof++ | branches/string_macros:
Use new string macros
rrot: r49219 | nwellnhof++ | branches/string_macros (6 files):
[str] Add own encoding for null string
rrot: r49220 | nwellnhof++ | branches/string_macros (2 files):
[str] String API optimizations

preparation of the following commits that will move these checks directly into the encoding functions, and switch a lot of Parrot code to the new string macros. With the exception of STRING_length and STRING_byte_length, the string macros don't check the string argument for NULL pointers. So the following commits also fix some places that still didn't use STRING_IS_NULL and STRINGNULL.
rrot: r49221 | nwellnhof++ | branches/string_macros (20 files):
[str] Switch to STRING_ord macro

Also modifies Parrot_str_indexed to accept negative indices as well. The old string_ord function can finally be deprecated.
01:34
cotto dukeleto, ping
rrot: r49222 | nwellnhof++ | branches/string_macros (46 files):
[str] Switch to STRING_equal macro
rrot: r49223 | nwellnhof++ | branches/string_macros (24 files):
[str] Switch to STRING_substr macro
rrot: r49224 | nwellnhof++ | branches/string_macros (8 files):
[str] Switch to STRING_hash macro
rrot: r49225 | nwellnhof++ | branches/string_macros (8 files):
[str] Switch to STRING_compare macro
rrot: r49226 | nwellnhof++ | branches/string_macros (13 files):
[str] Switch to STRING_index macro

changes the index opcode to throw when the source string is null. If this change causes problems, we can add a deprecation notice or revert it.
purl dalek: that doesn't look right
rrot: r49227 | nwellnhof++ | branches/string_macros/src/string/encoding (3 files):
[str] Make some string code work without ICU
kid51_at_dinner grrrrr. r49217 gets t/pmc/filehandle.t Test 22 to pass on Linux/i386 -- but not on Darwin/PPC. 01:37
01:37 kid51_at_dinner is now known as kid51 01:40 nwellnhof left
bacek_at_work kid51, strange... 01:42
kid51 Indeed
01:49 dngor left, dngor joined 01:51 davidfetter joined
dukeleto howdy 02:01
cotto dukeleto, do you have github commit messages with a full diff working? 02:02
02:07 davidfetter left 02:14 GodFather joined
dukeleto cotto: in what way? emails? 02:23
cotto: github only does diffstats on their commit hooks 02:24
can somebody add 2.8.0 to trac? 02:27
dukeleto tries to do it 02:28
dukeleto did it 02:30
dalek TT #1797 created by dukeleto++: parrot --gc-threshold coredumps when given no threshold 02:34
TT #1797: trac.parrot.org/parrot/ticket/1797
chromatic That's easy enough to fix.
02:35 GodFather left, janus left
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
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.
chromatic: I think our speed concerns are more dire than our memory use, currently.
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:38
chromatic Let's benchmark Rakudo with it. 02:39
That benchmark is very pathological.
02:48 ash_ left 02:52 kid51 left
luben I have benchmarked rakudo startup with some different values for gc-threshold 02:53
look here: luben.spnet.net/gc-time-mem.png
chromatic What are the axes?
purl the axes are 1-d =)
luben the blue line is time in ms
02:54 janus joined
luben axes are time and gc-threshold values 02:54
the red line is memory consumtion * 6 (in order to overlap with time)
plobsing we seem to get decent returns on trading memory for speed until gc-threshold ~= 75 02:55
luben yes, I think 75 will be good overall compromise 02:56
chromatic How does the stress_strings benchmark fare at 75?
luben I have a chert, moment to find it 02:57
here it is: luben.spnet.net/gc-threshold-string.png 02:58
axes are time in secons/gc-threshold
chromatic 75 there is decent. 02:59
luben yes
chromatic We'll have to redo these benchmarks with gc ms 2 03:01
03:03 theory left
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
chromatic bacek fixed some of that
luben let's find the numbers of yesterday 03:05
bacek_at_work chromatic, most of them actually. 03:06
chromatic I don't want to overpromise for you.
bacek_at_work :) 03:07
luben ok, without gc-threshold compile of core.pm eats around 600M. the branch (tested 1 hour ago) eats around 850M 03:08
trunc was tested 2 days ago. I have now some issues compiling rakudo on trunc
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.
Currently I run GC after 256M of allocated memory. 03:10
Which means we have up to 256M of garbage.
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.
aloha, msg mikehh gc_massacre branch should be buildable with g++ 03:13
aloha bacek_at_work: OK. I'll deliver the message.
dalek rrot: r49228 | plobsing++ | branches/typesafe_consttable/src/pmc/packfileconstanttable.pmc:
reimplement PackfileConstantTable with typesafe consttable
03:15
rrot: r49229 | bacek++ | branches/gc_massacre/src/gc/fixed_allocator.c:
Explicit cast allocated memory. Fix c++ build.
rrot: r49230 | bacek++ | branches/gc_massacre/src/gc/gc_ms2.c:
Use String GC to allocated Buffers. Fixes c++ build.
luben with 128M in gc_ms2 core.pm build in 730M in time comparable with trunc 03:21
with 64M in gc_ms2, core.pm builds in 640M, but slower than trunc 03:30
dalek rrot: r49231 | plobsing++ | branches/typesafe_consttable (2 files):
fix PackfileConstantTable methods and bring packfileconstanttable.t up to date with current interface
03:33
rrot: r49232 | mikehh++ | failed to fetch changeset:
[html_cleanup] merge with trunk at r49200
03:50
03:52 echosystm joined
echosystm i keep hearing talk about parrot, threading and JIT 03:52
does parrot lack these features?
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.
echosystm okie doke
dalek rrot: r49233 | mikehh++ | branches/html_cleanup (3 files):
[html_cleanup] - re-generate MANIFEST
04:24
04:35 davidfetter joined
dukeleto lollerskates: imgur.com/jacoj 04:41
chromatic doc.cat-v.org/inferno/concurrent_gc/
dukeleto echosystm: parrot has some threading, and we are planning a large refactor called "Lorito" to implement JIT properly 04:42
04:42 Austin joined
dukeleto Austin: welcome, stranger 04:42
Austin Hiya, duke.
04:43 Austin left
dukeleto guess he doesn't like me. 04:43
chromatic: is that algorithm implementable after we merge gc_massacre ? 04:44
chromatic I'm not sure. 04:46
I haven't absorbed the details of the gc_massacre interface changes.
plobsing where would be a good place to stash metadata in PBC? annotations segment? 04:50
chromatic What kind of metadata? 04:51
plobsing "static dependancies" as described recently on parrot-dev 04:52
chromatic I'd rather have a metadata segment. 04:55
plobsing what is an annotations segment other than a metadata segmetn? 04:56
s/segmetn/segment/
dalek rrot: r49234 | mikehh++ | branches/gc_massacre/src/gc (2 files):
[gc_massacre] run make headerizer
04:58
rrot: r49235 | plobsing++ | branches/typesafe_consttable/t/pmc/packfile.t:
update packfile.t to current PackfileConstantTable interface
chromatic I suppose you can see it that way, yes. 05:01
dalek rrot: r49236 | plobsing++ | branches/typesafe_consttable/src/packfile.c:
c_macro_args.t doesn't seem to appreciate my 'clever' use of macros
05:15
cotto dukeleto, I mean emails similar to what we get from svn now. istr that that's one of the remaining blockers. 05:17
05:18 chromatic left
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:21
dukeleto cotto: if we want emails like what we get now, githubs default post-receive hook is not going to work 05:23
05:30 aloha left
dalek rrot: r49237 | plobsing++ | branches/typesafe_consttable/src (2 files):
document static functions in pod
05:32
rrot: r49238 | plobsing++ | branches/typesafe_consttable/src/packdump.c:
[codingstd] trailing whitespace
05:32 bacek left
dalek rrot: r49239 | plobsing++ | branches/typesafe_consttable (4 files):
expand and eliminate convenience macro that can't possibly satisfy c_macro_args.t
06:06
06:09 ascent_ left
cotto dukeleto, how much effort would it take to get the equivalent of parrot-commits set up? 06:28
NotFound bacek_at_work: trac.parrot.org/parrot/changeset/49217/ the test showed a problem, fixing the test instead of the problem is the wrong approach 06:31
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.
bacek_at_work fixed test actually test desired behaviour. 06:33
NotFound bacek_at_work: I don't desire to call dummy subs,
bacek_at_work test is testing that FileHandle.destroy actually close filehandle 06:34
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
?
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.
dalek rrot: r49240 | plobsing++ | branches/typesafe_consttable/include/parrot/context.h:
fix optimized build
NotFound bacek_at_work: you think is a good idea to keep alive an unreferenced object? 06:41
bacek_at_work NotFound, it's referenced in CallContext for current sub. 06:42
And old GC kills it.
NotFound bacek_at_work: that is the problem
bacek_at_work NotFound, hmm. Why?
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.
NotFound bacek_at_work: if you change that, be ready to having to reopen and refix old bugs. 06:44
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.,
bacek_at_work erm. This test doesn't prevent any bugs. In unmodifed version it actually exposes bug in old GC. 06:46
GC MS2 collect _less_ objects because it's more precise.
NotFound You replace in some place one oor several ops with a method or function call, and misteriously a bug appears in undeterminated conditions.
bacek_at_work So, it's doing less harm.
NotFound bacek_at_work: What bug? The test was working. 06:47
bacek_at_work NotFound, because of bug in old GC.
Which collect object prematurely.
In "lazy mode"
NotFound bacek_at_work: You mean that the object is actually in the context and is colected anyway? 06:49
bacek_at_work exactly
NotFound bacek_at_work: then someone broke it recently.
bacek_at_work NotFound, may be.
NotFound Marvelous,. 06:50
We brreak something, the break other thing to hide it.
bacek_at_work Welcome to parrot.
NotFound Fine, but we should deprecate timely destruction if we keep going that way. 06:51
bacek_at_work We should deprecate "lazy GC" actually. 06:53
timely destruction works (fsvo).
But I would like to see more generic solution for it.
NotFound We can deprecate the full GC in one shot, to save time-
bacek_at_work Similar to C# using(). 06:54
NotFound, no one promise "full GC in shot".
dalek rrot: r49241 | plobsing++ | branches/typesafe_consttable/src/packfile.c:
[codingstd] line length
06:56
sorear bacek_at_work: can you explain timely destruction? I don't understand how it works. 06:58
bacek_at_work sorear, I can explain how it "suppose" to work. 06:59
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:00
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:01
bacek_at_work NotFound, I was actually wrong about CallContext. Looks like FileHandle found in system stack. 07:02
NotFound In System stack? Urgh.
Then we have a real problem. 07:03
bacek_at_work Yes. In system stack.
NotFound And then, deprecating timely destruction is no more a joke.
bacek_at_work nopaste.snit.ch/23523 07:04
NotFound, check pointer in FileHandle_open and backtrace.
errm... 07:05
Wrong pointer
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.
NotFound And that means heisenbugs wherever someone trusts timely destruction. 07:07
bacek_at_work NotFound, +1 to deprecate it than. 07:09
NotFound bacek_at_work: that trace is from trunk or from the branch? 07:11
Ah, gc_ms2.c 07:13
07:26 barney joined 07:27 plobsing left 07:29 echosystm left 07:51 tadzik joined 07:57 bacek joined 08:02 aloha joined
bacek aloha, humans 08:04
08:30 hudnix left, barney left, hudnix joined 08:35 bacek left 08:38 bacek joined 08:40 aloha left, bacek left 08:46 aloha joined, bacek joined
tadzik Parrot used to build with LDFLAGS=-Wl,--as-needed, now it does not. Is it known? 08:59
dalek TT #828 closed by bacek++: Separate out GC String Core 09:06
TT #828: trac.parrot.org/parrot/ticket/828
09:09 ascent joined
dalek TT #670 closed by bacek++: Rearranging the GC interface 09:24
TT #670: trac.parrot.org/parrot/ticket/670
09:42 sjn left, sjn joined
bacek msg jnthn You'll love r49242 :) 09:56
purl Message for jnthn stored.
aloha OK. I'll deliver the message.
dalek rrot: r49242 | bacek++ | branches/gc_massacre/src/gc/gc_ms2.c:
Made GC MS2 marking non-recursive. Close TT#1723 after merge back to trunk.
10:03
10:05 fperrad joined
bacek fperrad, ping 10:10
10:21 lucian joined
fperrad bacek, pong 10:43
dalek rrot: r49243 | bacek++ | branches/gc_massacre (84 files):
Merge branch 'master' into gc2

  \tsrc/call/context_accessors.c
  \tsrc/gc/gc_ms.c
  \tsrc/gc/string_gc.c
  \tsrc/pmc/imageio.pmc
10:55
11:15 kurahaupo joined, contingencyplan left 11:23 bkuhn joined 11:40 masak joined 11:42 plobsing joined 11:49 whiteknight joined
whiteknight good morning, #parrot 11:52
11:57 kurahaupo left
whiteknight bacek: ping 12:02
12:16 lucian left 12:20 whiteknight_ joined 12:21 whiteknight left 12:22 whiteknight_ is now known as whiteknight
plobsing rakudo segfaults with trunk. anyone know why this is? 12:25
moritz I think somebody mentioned a revision in the backlog; but I can't remember it :( 12:26
plobsing moritz: do you recall that on #parrot or #perl6? 12:27
moritz I think it was here
plobsing will check the logs
found it. r49204 reported by nwellnhof++. moritz++ 12:31
pmichaud just revert 49204 for now.
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 12:38 bluescreen joined 12:45 bluescreen left, bluescreen joined
dalek kudo: 8156beb | moritz++ | src/glue/enum.pm:
fix .pick and .roll on enums
12:47
12:49 arnsholt joined 12:55 whiteknight joined 13:04 ruoso joined
dalek rrot: r49244 | pmichaud++ | trunk/compilers/pct/src/PAST/Compiler.pir:
[pct]: Change ExceptionHandler to be created with newp_p_ic to avoid segfault when building Rakudo.
13:08
rrot: r49245 | pmichaud++ | branches/gc_massacre/compilers/pct/src/PAST/Compiler.pir:
[pct]: Change ExceptionHandler to be created with newp_p_ic to avoid segfault when building Rakudo.
13:14 patspam joined 13:19 Patterner left 13:29 Psyche^ joined, Psyche^ is now known as Patterner 13:34 patspam left 13:40 patspam joined 13:43 patspam1 joined 13:44 tadzik left 13:46 patspam left 13:47 davidfetter left 13:52 tadzik joined 13:56 patspam1 left 13:57 davidfetter joined, davidfetter left
dalek ast: 44e9d50 | moritz++ | S32-hash/exists.t:
[exists.t] remove some wrong assumptions about how True stringifies
13:58
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:01
14:05 ruoso left 14:06 lucian joined 14:10 patspam joined
NotFound pmichaud: ping 14:13
sECuRE: no need to destroy, garbage collection will do it. 14:15
14:15 nwellnhof joined
sECuRE NotFound: alright, thanks 14:15
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
14:16 lucian left
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.
NotFound purl: forget function
purl NotFound: I forgot function
sECuRE NotFound: i need two different functions to initialize the sockaddr
NotFound: so, i’d need init(struct addrinfo *res) and init(struct sockaddr_storage *addr) 14:18
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
sECuRE hrm, so do i need to create a helper struct? i need two parameters 14:21
or, alternatively, a function set_length which is called afterwards
that would be even better in terms of memory usage in this case
14:21 ruoso joined
moritz maybe abuse the set_integer vtable for that? 14:22
just like my @h; @h = 10; in perl 5 :-)
sECuRE hm, possible
purl NOT!
14:22 purl joined
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:22
sECuRE ok. is there a header i should include for that? 14:23
just using Parrot_Sockaddr_attributes did not work
14:23 patspam1 joined
sECuRE (unknown type) 14:23
NotFound pmc/pmc_sockaddr.h, i think
sECuRE ah, thanks 14:24
14:25 patspam left
sECuRE yop, works 14:27
14:28 lucian joined 14:34 silug joined 14:35 patspam joined 14:38 patspam1 left 14:40 patspam1 joined 14:43 ash_ joined, patspam left
Coke moritz: he's back already. 14:46
moritz Coke: still gave me a certain satisfaction 14:47
Coke why not ban him? 14:48
I thought that's the direction we were going in.
14:51 davidfetter joined
moritz Coke: I'd love to, but I didn't feel like making that decision for the channel as whole 14:54
so, straw poll
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
davidfetter ban
moritz also votes ban
whiteknight murder. Ban is fine too 14:56
14:57 chromatic joined
Coke ban (we have aloha) 15:01
moritz 4:0 15:02
Coke botsnack? 15:03
purl thanks Coke :)
15:04 davidfetter left
dalek TT #1797 closed by chromatic++: parrot --gc-threshold coredumps when given no threshold 15:08
TT #1797: trac.parrot.org/parrot/ticket/1797
rrot: r49246 | chromatic++ | trunk (2 files):
[main] Fixed --gc-threshold args segfault TT #1797.

check the length of the arguments before the getopts processor does so. The good news is that fixing this here avoids other potential crashes and memory infelicities.
NotFound "memory infelicities"... I like that concept. 15:10
chromatic Who knows what you'll find if you walk past the end of argv? 15:15
ash_ undefined behavior? seg faults? 15:16
moritz you'll probably find decorative bytes.
chromatic No wonder it crashed; it was gnawing on the crenellations. 15:18
NotFound To end of argv and beyond!
mikehh aloha is not reliable yet 15:19
-1 on banning purl 15:20
15:31 patspam1 left
Coke ok. can we ban aloha then? ;) 15:43
15:46 patspam joined 15:48 lucian left 15:52 nwellnhof left 15:57 theory joined
mikehh aloha is an experimental replacement for purl, but still experimental :-} 16:00
poor innocent bots being abused by parrot developers 16:04
16:37 masak left
moritz sECuRE++ # trac.parrot.org/parrot/ticket/1798 16:50
dalek TT #1798 created by mstapelberg++: IPv6 support for Parrot 16:54
TT #1798: trac.parrot.org/parrot/ticket/1798
Coke geez, do we even support ipv4 yet? 16:59
sECuRE yap, works for me at least ;) 17:00
Coke ooh, patch. mstapelberg++
sECuRE ;)
Coke oh, is secure==mstapelberg?
sECuRE yap
Coke sECuRE++ #then.
sECuRE ;)
dukeleto loves the smell of patches in the morning. It's the smell of victory. 17:02
sECuRE: i am looking at your patch now. Would you mind adding a few tests for it?
sECuRE dukeleto: that’s the next thing on my todo list ;) 17:03
you are talking about the roast test-suite, right?
moritz parrot also has a test suite
sECuRE ah, ok 17:04
dukeleto sECuRE: I am talking about adding tests to the t/ directory of parrot for your ipv6 patch
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)
did you have a look at roast’s IO::Socket::INET tests, by chance? 17:06
they have to work with spawning separate processes because threads/forks are missing in rakudo so far
dukeleto sECuRE: i have not
sECuRE because the 'accept' call blocks and you can’t connect/accept at the same time
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
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?
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 :)
dukeleto sECuRE: basically, the perl-based tests spawn PIR programs and do stuff with the output
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
dalek nxed: r662 | NotFound++ | trunk/winxedst1.winxed:
search for class in scope were not propagated from inside a class, fixed
sECuRE dukeleto: i’ve updated most of the PMC docs. which are still missing? 17:12
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.
dukeleto sECuRE: docs in *.pmc files are more for devs, where the docs in docs/ are more geared toward users
sECuRE yap
dalek ast: ea847c7 | moritz++ | S0 (6 files):
remove more wrong uses of True and False as 0 and 1 (still more left); make good use of nok() function
17:20
ast: 672abda | moritz++ | S06-multi/type-based.t:
[type-based.t] fix another Bool stringification usage
17:21 lucian joined
dukeleto sECuRE: does you patch only work on unixy systems? 17:22
17:26 davidfetter joined
dukeleto davidfetter: hello fine sir 17:26
davidfetter hai 17:27
17:27 lucian left
davidfetter is purl gone? 17:27
17:31 contingencyplan joined
Coke botsnack 17:35
aloha, davidfetter?
aloha Coke: I have no idea.
davidfetter hai Coke
Coke aloha?
aloha, you are super slow!
aloha Coke: Okay.
jnthn you? 17:37
aloha, you?
aloha jnthn: you are super slow!
jnthn :P :P
17:37 lucian joined
pmichaud (straw poll) ban purl 17:39
17:44 patspam left
dalek rrot: r49247 | pmichaud++ | branches/gc_massacre/src/gc/api.c:
[gc]: Enable ms2 to properly report itself to interpinfo as "ms2" instead of "unknown".
17:44
17:44 lucian left
davidfetter +1 for banning purl 17:46
cotto -1 until we have karma transferred 17:49
pmichaud karma pmichaud 17:50
aloha pmichaud has karma of 129. 17:51
pmichaud purl: karma pmichaud
banned already? cool!
17:51 <purl> pmichaud has karma of 4301
I'm more than willing to lose my stash of karma to see the end of the endlessly annoying purlbot :)
17:56 ash_ left 17:58 patspam joined 18:14 patspam1 joined 18:15 ash_ joined 18:17 patspam left 18:22 pjcj left 18:27 ash_ left 18:31 ruoso left 18:45 patspam1 left 18:47 ruoso joined
dalek rrot: r49248 | NotFound++ | trunk/src/scheduler.c:
avoid an if/else with identical branches and some cleaning in the function Parrot_cx_find_handler_local
18:53
19:01 patspam joined 19:03 whiteknight_ joined 19:06 whiteknight left, whiteknight_ is now known as whiteknight 19:17 ash_ joined 19:18 whiteknight_ joined 19:21 whiteknight left, whiteknight_ is now known as whiteknight 19:25 bluescreen left
dalek rrot: r49249 | pmichaud++ | trunk (2 files):
[docs]: Remove obsolete (and incorrect) draft/pdd31_hll_interop.pod .
19:27
19:33 M_o_C joined 19:39 lucian joined 19:40 bluescreen joined
TimToady [no phone today] 19:42
chromatic I brushed my teeth and everything. 19:47
19:48 ruoso left 19:54 allison left 19:55 allison joined 19:57 Andy joined 20:03 whiteknight left, ruoso joined
GeJ Bonjour everyone. 20:03
20:07 fperrad left 20:11 M_o_C left 20:14 bluescreen left
dalek nxed: r663 | NotFound++ | trunk/winxedst1.winxed:
optimize logical not and comparators in stage 1
20:32
20:55 ash_ left 20:59 ash_ joined 21:00 kid51 joined, ruoso left 21:02 patspam left
dalek nxed: r664 | NotFound++ | trunk/examples/fly.winxed:
use closures instead of invokable objects for opengl callbacks in example fly
21:07
21:08 patspam joined, patspam left 21:11 perlite left, perlite joined
mikehh opbots, names 21:28
21:29 ash__ joined, ash_ left, ash__ is now known as ash_
kid51 -1 on banning purl 21:30
dalek rrot: r49250 | jkeenan++ | branches/gc_massacre (2 files):
Set svn metadata properties.
21:33 kid51 left 21:35 eternaleye left 21:39 tadzik left
dalek nxed: r665 | NotFound++ | trunk/pir/winxed_compiler.pir:
update installable compiler
21:42
sorear What idiot banned purl 21:46
don't you know you can just ask it to be removed
mikehh sorear: I think it was moritz earlier in a consipracy with Coke and others 22:04
poor bots being victimized by parrot developers
22:05 lucian left 22:07 bkuhn left
ash_ is there an alternative to readline that does support unicode? 22:24
GeJ ash_: I thought readline had support for that already. 22:28
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
i thought someone told me that readline doesn't support unicode
i guess i might of been misinformed 22:31
GeJ Not necessarily. I have limited experience with Unicode and realine. 22:33
ash_ i am re-building to test it again 22:34
GeJ But I seem to remember to have it working in bash with accentuated characters in bash. 22:35
GeJ writes "I will read twice what I just typed before hitting the <Enter> key." 22:36
dalek rrot: r49251 | NotFound++ | trunk/t/pmc/bytebuffer.t:
fix ByteBuffer tests that were passing for wrong reasons
22:38
NotFound src/pmc/filehandle.pmc:385 Parrot_str_new(INTERP, r, 0) --> This will not give you unicode, no matter what readline supports. 22:39
ash_ > say 'Zażółć gęślą jaÅŗÅ„' 22:48
ZaĆ…Ā¼ĆƒĀ³Ć…Ć„ gƄƅƄ
jaĆ…ĀŗĆ…
is perl6 with readline
it works fine without readline, so... maybe i am jumping to conclusions, but... 22:49
s/perl6/rakudo/
22:59 whiteknight joined 23:01 davidfetter left
whiteknight good evening, #parot 23:02
or #parrot
or whoever you are
GeJ Hello Andrew. 23:04
ash_ i cant find anything in the readline doc's saying unicode doesn't work... 23:05
NotFound ash_: haven't you read my comment? 23:06
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.
whiteknight hello GeJ 23:09
ash_ NotFound: so, what does it take to support a unicode str in parrot? is there a Parrot_str_new? 23:11
s/there a/there a different/
or alternative
NotFound ash_: I'm trying something... 23:12
ash_ i don't know the STRING* related things very well
NotFound ash_: no one does
ash_ lol
whiteknight IMCC creates strings in other encodings from literals in the code. Might be good to figure out what functions it calls 23:16
ash_ what does Parrot_io_reads do? 23:20
does that support uicode?
unicode*
NotFound Take a look at 49252 23:22
ash_ so your grabbing the encoding from the interp, then reading the string as that encoding? 23:24
NotFound But even with that change, someone must set the encoding of the stdin handle to utf8 23:25
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.
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:27
or can you say, INTERP.encoding = 'utf8' 23:28
NotFound ash_: there is no default and nothing is safe.
ash_ well, then can you assume ascii unless told otherwise 23:29
dalek rrot: r49252 | NotFound++ | trunk/src/pmc/filehandle.pmc:
use the FileHandle encoding in readline_interactive
NotFound ash_: you can assume ascii and the enter a non-ascii string. That's why I said nothing is safe. 23:30
s/the/then
ash_ but is that user error? or a bad assumption?
NotFound ash_: I prefer to not qualify it, the words that come to my mind may be rude X-) 23:31
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:33
ash_ changing classrooms 23:34
23:34 ash_ left 23:53 ash_ joined
ash_ NotFound: should i email the mailing list on the issue? (of readline and utf8 23:58
)