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.
00:00 davidfetter joined
dukeleto cotto: ping 00:02
cotto: check out the recent link i added to GitMigration about post-receive hooks 00:05
dukeleto goes for a run
dalek tracwiki: v35 | dukeleto++ | GitMigration 00:09
tracwiki: trac.parrot.org/parrot/wiki/GitMigr...ction=diff
chromatic bacek, is your example because the PMC pointer *was* on the stack (and that memory was never scrubbed) or because something that looks like the PMC's pointer is on the stack? 00:20
bacek_at_work chromatic, either of this
in case on gcms2 I suspect we have some dangling pointer on stack
chromatic The latter seems like a coincidence, especially with stack and memory randomization. 00:21
bacek_at_work probably. But my point is that current "timely destruction" is unpredictable. 00:22
chromatic Agreed.
It's easy to imagine possibilities (however far-fetched) where this could occur again.
bacek_at_work indeed. 00:23
I really want to deprecate "timely destruction" and implement something like .net's using() keyword. It's not trivial for CPS VM but can be done (me think) 00:26
chromatic Is that like Python's with?
bacek_at_work chromatic, I don't know python. 00:27
chromatic I don't know C#.
When we have Lorito, we shouldn't have to walk the system stack.
bacek_at_work C<using(new Foo) { ... }; > Foo.dispose will be invoked after "}" 00:28
chromatic Looks like Python's with.
bacek_at_work may be.
btw, even with Lorito we have to walk C stack. Modulo low-level "new_p_p_p" implementation. 00:31
chromatic I think we can avoid it. 00:33
whiteknight me too. I think we can avoid it 00:36
and we should if we can
To enforce that, we are probably going to have to erect barriers between runloops recursed into by extensions 00:37
chromatic I'd like to avoid recursing into runloops -- at least recursing at the Lorito runloop level. 00:38
00:39 patspam joined
bacek_at_work anyway, if there is no objections I'll mark test as todo and merge branch tonight. 00:43
I do want to start on GenGC sooner than later. 00:44
chromatic +1
whiteknight chromatic: yeah, I wish. The problem is extensions. If extensions can be called by Parrot, and call into Parrot, we get recursions
or, really really creepy abuses of setjmp
chromatic Only at the C level. 00:45
"only"
dukeleto, ping
whiteknight I'm liking my third idea about timely destruction the more I think about it. If we have a timely_destroy opcode that calls VTABLE_destroy and morphs the target to Null, we should be safe from crashing
I like it a hell of a lot now that I really think about it
chromatic That's a good way to find bugs too.
Without crashing.
whiteknight when you say "kill this PMC", it's because you want it dead even if there are outstanding references 00:46
safe thing is to make those references harmless
if we assume that "eventually" nobody will be writing PIR/PASM/Lorito by hand, and everything meaningfull will be done by code generators, things should be pretty safe 00:47
chromatic If we require explicit marking of these PMCs, we can even do escape analysis at runtime for little cost. 00:48
That is, if we assume:
1) we tie their destruction to the "ending" of their contexts 00:49
2) we use contexts to shuffle PMCs and STRINGs between contexts at invoke/return
Then we can store a list of destructables with the appropriate context
Anything in that list that escapes to a caller context (probably on the return invocation of a continuation) takes that flag with it to its caller's list 00:50
Right at the point of invocation, where we're pretty sure we'll never recycle that context (because it's not a reified continuation), we destroy and morph everything on that list that hasn't escaped.
If it's escaped, it's not on the list.
00:50 dngor left
chromatic If it's never been on the list, the standard GC will get it. 00:50
00:50 dngor joined 00:51 davidfetter left
dukeleto chromatic: pong 00:53
chromatic They have me on their confirmed list. 00:54
ww
whiteknight, why does PMC_IS_NULL() have to get smarter?
whiteknight because it has to check whether p == NULL and p->vtable->base_type == enum_class_NULL 00:55
not p == PMCNULL, which is easier/faster
chromatic: are you thinking about doing escape analysis at the Parrot level? I always sort of envisioned doing it at the HLL level 00:56
chromatic Morph to the singleton Undef, which is easier. 00:59
bacek_at_work Undef isn't singleton 01:01
And have different semantics
chromatic Right, Null is singleton. 01:02
whiteknight I don't care if we morph it to SantaClause. So long as we don't set pmc->vtable to 0xdeadbeef, we're probably okay
chromatic Works for me.
... except that morphing to a singleton is silly. 01:05
I think we can get away with leaving PMC_IS_NULL unmodified though. 01:06
whiteknight well, if we were going to have more than one null, we would make it not a singleton
but again, I don't care what we morph it to. We could morph it to a Float with NaN for all I care
actually, we shouldn't do that 01:08
either make Null not a singleton, or make a Null-alike type that isn't a singleton
Undef is probably not the right choice either, but maybe it could be 01:09
shit. I wish we had put in a deprecation notice about timely destruction nonsense on Monday 01:14
anyway, it's bedtime now 01:15
goodnight 01:16
01:16 whiteknight left
bacek_at_work chromatic, can you create trac ticket for deprecating "timely destruction"? 01:34
(and put some kind of excerpt from irc into it)
And let's create DeadBeef PMC :) 01:35
01:42 kid51 joined 01:52 mikehh left 01:58 ascent left 01:59 AzureStone left 02:02 ruoso joined
nopaste "bacek" at 192.168.1.3 pasted "Rakudo's test summary on gc_massacre branch." (6 lines) at nopaste.snit.ch/23553 02:03
bacek_at_work moritz, can you have a look at nopaste.snit.ch/23553 ?
dalek TT #1799 created by ronaldws++: Allow for rw bffer to be passed by nci 'B' signature. 02:05
TT #1799: trac.parrot.org/parrot/ticket/1799
02:06 mikehh joined 02:15 AzureStone joined
dalek TT #36 closed by jkeenan++: Harmless test errors on Win32Vista 02:22
TT #36: trac.parrot.org/parrot/ticket/36
02:29 preflex left 02:33 preflex joined 02:35 janus left 02:36 kid51 left 02:37 kid51 joined 02:43 kid51 left 03:07 ash_ left 03:15 kid51 joined 03:18 ash_ joined 03:19 kid51 left 03:20 ash__ joined 03:22 ash_ left, ash__ is now known as ash_
plobsing (1163468234 - 1158078900)/1163468234 03:36
aloha 0.00463212818580486
dalek rrot: r49253 | plobsing++ | branches/typesafe_consttable (51 files):
sync with trunk
03:42
03:51 janus joined 03:58 patspam left
dalek rrot: r49254 | plobsing++ | branches/typesafe_consttable/src/main.c:
fix C++ build.
03:59
04:16 eternaleye joined
dalek rrot: r49255 | plobsing++ | trunk (121 files):
merge typesafe_consttable branch
04:16
rrot: r49256 | plobsing++ | branches/typesafe_consttable:
branch merged
rrot: r49257 | bacek++ | branches/gc_massacre/config/gen/makefiles/root.in:
Fix test_string dependency
rrot: r49258 | plobsing++ | trunk (2 files):
remove dead code - PackFile_Constant and add_const_key
04:33
rrot: r49259 | plobsing++ | trunk/src/packout.c:
todo implemented
04:50
04:52 ash_ left 05:00 theory left 05:06 frodwith_ left
chromatic Hm, who wants to bet that t/run/options.t has two failures now? 05:33
plobsing seems to run fine for me 05:37
chromatic Hmm. Me too. I learned something new about Subversion. 05:38
plobsing looking at a hexdump of perl6.pbc, fixup segments have a lot of strings that are already in the consttable 05:41
chromatic Should the PBC be smaller now? 05:42
plobsing it is supposed to be. it isn't for some reason. I'm looking into that atm
it should drop one sizeof(opcode_t) for every string and num constant
chromatic That could be 15% or more. 05:44
plobsing I can drop a sizeof(opcode_t) for pmc constants once I un-special-case Keys 05:45
what is the fixup table even for anyways? 05:46
chromatic During compilation it's useful, but in PBC I have no idea. 05:47
plobsing if eval.pmc is to be beleived, it is an ordered mapping of "name" => "sub" within the constant table. 05:52
yay more special case handling code wasting colossal amounts of space 05:53
chromatic Incompatible versions of `core_ops' oplib. Found 2.8.0 but loaded 2.7.0? 05:54
Oh, it linked against libparrot.so.2.7.0 05:55
plobsing looks like you're running an old parrot
chromatic That did it. 05:57
That did it. 06:06
NotFound winxed compiler pbcs are bigger after the merge 06:19
About a 0.5% 06:21
plobsing NotFound: yes. I know. not sure as to why. they should still be faster though.
06:21 fperrad joined
plobsing NotFound: if you figure it out, let me know. 06:23
NotFound If the string in the fixup segment are duplicated, that is a lot of strings
plobsing they were like that before 06:24
and per the spec, they're supposed to point into the const table.
but I'm not even sure why we have a fixup table anymore
chromatic Does anything read it? 06:25
plobsing a quick ack for PackFile_FixupEntry shows only Eval.pmc uses it.
all the rest appears to be support code
chromatic Hm, so an eval operation must take place in the context of a compilation unit. 06:26
I can understand why it needs its own fixups: the lack of required forward declarations, of course. 06:27
bacek_at_work plobsing, FixupEntry contains Subs boundaries within ByteCode segment 06:28
chromatic Don't Subs know their own?
bacek_at_work Not in PBC
plobsing bacek_at_work: incorrect. fixup tables point to sub constants
bacek_at_work plobsing, ah, yes. It's other way around. 06:29
plobsing so um, why are we maintaining that information? is walking all the subs in a packfile linearly really an operation we want to optimize for at the expense of space and speed elsewhere? 06:31
bacek_at_work plobsing, hmmm. We can have 1000x more constants than subs.
Premature optimisation ftw
plobsing much less of a problem now that pmc constants are separate from str and num constants 06:32
bacek_at_work yes.
chromatic Especially when we have to walk the subs in a packfile anyway to thaw them.
bacek_at_work But I don't think we should put any effort into current PBC format.
moritz bacek_at_work: the failure in properties-derived.rakudo is probably related to your ICU version
bacek_at_work Lorito's PBC will change it dramatically
moritz, ok, thanks.
moritz I've had failure reports from other platforms too
chromatic We'll have better PBC for Lorito if we understand what we need from PBC now. 06:33
(and remove some of the worst problems of it now)
bacek_at_work makes sense
plobsing I'm not waiting for Lorito. Lorito has been comming RSN for months. Everything could change. But if we wait, nothing will.
bacek_at_work ask for excuses, not for permissions
NotFound In a hexdump of the pbc I don't see anything obviously wrong 06:34
plobsing needs sleep. will work on size problem tomorrow 06:43
06:50 plobsing left 06:54 chromatic left
bacek ~~ 07:12
dalek rrot: r49260 | bacek++ | branches/gc_massacre (34 files):
Sync branch with trunk before merge back.

  \tsrc/call/context_accessors.c
07:23
rrot: r49261 | bacek++ | branches/gc_massacre (3 files):
Remove experimental GC TMS. MS2 now is TriColour effectively
07:40
TT #1800 created by bacek++: [DEPRECATED] Current behaviour of "timely destruction" is deprecated. 07:49
TT #1800: trac.parrot.org/parrot/ticket/1800
rrot: r49262 | bacek++ | branches/gc_massacre/MANIFEST:
"Regenerate" MANIFEST.
07:58
rrot: r49263 | bacek++ | branches/gc_massacre/src/main.c:
Remove one more bit of TMS GC.
rrot: r49264 | bacek++ | branches/gc_massacre/src (2 files):
Bring files irrelvant to branch from trunk
rrot: r49265 | bacek++ | branches/gc_massacre/src/gc (2 files):
Remove more leftovers of TMS GC
rrot: r49266 | bacek++ | branches/gc_massacre/t/pmc/filehandle.t:
Skip filehandle test
08:01 slavorgn left 08:15 contingencyplan left
mikehh bacek: you need more testing on gc_massacre 08:17
bacek: should be a ? there
bacek mikehh, is it question?
mikehh, :) 08:18
On which platform are you now?
mikehh Ubunty 10.10 beta amd64
Ubuntu 08:19
bacek can you switch to i386? I'm on amd64
And finally testing it before merge back.
mikehh can give it a try
bacek ok, thanks
mikehh brb
08:21 mikehh left
bacek aloha, msg mikehh Ignore MANIFEST failures. We can fix them after merge 08:27
aloha bacek: OK. I'll deliver the message.
08:29 ascent joined
dalek rrot: r49267 | bacek++ | branches/gc_massacre/src/gc/fixed_allocator.c:
Really destroy Fixed_Allocator
08:30
rrot: r49268 | bacek++ | branches/gc_massacre/src/gc/gc_ms2.c:
Implement gc_ms2_finalize
08:32 luben_work joined 08:35 slavorgn joined
dalek rrot: r49269 | bacek++ | trunk (30 files):
Merge branch gc_massacre back to trunk. Default GC set MS2 now
08:48
rrot: r49270 | bacek++ | trunk/src/gc/gc_ms2.c:
Temporary disable gc_ms2_finalize. It doesn't play nicely with threads.
sorear wait, wait 08:50
fixed allocators gone?
08:51 mikehh joined 09:10 AzureStone left, AzureStone joined 09:18 tadzik joined 09:21 AzureStone left
dalek rrot: r49271 | mikehh++ | trunk/MANIFEST.SKIP:
re-generate MANIFEST.SKIP
09:22
09:22 AzureStone joined
mikehh bacek: got to go to the dentist now - will fix codetest failures etc, when I get back 09:26
tadzik guys, my Perl 6 code ran with Rakudo is up to 33% faster on the latest revision compared to 2.6.0. Big kudos to all the Parrot team 09:46
* 2.8.0, pardon 09:48
09:51 he joined 09:55 lucian joined 10:08 masak joined 10:49 ruoso left
mikehh gotta love dentists - they are definately required, but you don't want to go anywhere them - mouth is still numb 11:19
s/them/near them/ 11:20
dalek rrot: r49272 | mikehh++ | trunk (8 files):
add svn properties
11:21
11:33 plobsing joined
Coke sees his name go by in backscroll and it's not highlighted. odd. 11:35
sorear: no need for name calling, jerkbag.
dalek rrot: r49273 | mikehh++ | trunk/src/pmc/exceptionhandler.pmc:
fix codetest failure - line length
11:38
11:42 PacoLinux left
mikehh Hey Coke, why was you guys so CRU-EL to purl? 11:42
Coke I personally am not a huge fan of the #perl-style interjections. factoids are nice, but not when we share them with 4chan. 11:52
11:52 whiteknight joined
Coke ponders doing a benchmark to see if latest parrot is faster on partcl. 11:54
dalek rrot: r49274 | mikehh++ | trunk/compilers/imcc/pbc.c:
run make headerizer to get rid of missing assert args failure
11:55
11:55 esskar left
11:56 esskar joined
mikehh bacek: You still around? 12:02
whiteknight good morning, #parrot 12:07
mikehh msg backk, you still have some g++ comments in src/gc/gc_ms2.c in function gc_ms2_finailize - but I can't find anywhere that function is called 12:24
aloha OK. I'll deliver the message.
12:25 ruoso joined
mikehh bah, misspelling 12:26
msg bacek, you still have some g++ comments in src/gc/gc_ms2.c in function gc_ms2_finailize - but I can't find anywhere that function is called
aloha OK. I'll deliver the message.
Coke ah, partcl-nqp on parrot trunk certainly fails faster, anyway. 12:27
plobsing knows why is larger after typesafe_consttable merge - keys are no longer being de-dupped for some reason. 12:30
Coke the string changes broke partcl's build.
STRING *value = Parrot_str_new_noinit(interp, enum_stringrep_one, 128); 12:31
whiteknight mikehh: in a recent commit he mentioned that he disabled that function for some reason 12:33
mikehh whiteknight: yeah found it 12:34
Coke hates hates hatest developing on parrot. ;)
whiteknight Coke: Then I think you're in the wrong open source project. Because this *is* parrot 12:35
:)
mikehh gonna just replace the c++ comments for the moment (to get codetest to pass)
Coke whiteknight: oh, I'm pretty sure I am too. :P 12:36
Coke now gets to figure out what commit broke partcl's build, and which commit broke partcl-nqp's tests.
whiteknight what about Parrot are you hating on?
ah, dependency hell. Gotcha 12:37
Coke will have to let them both rot for now. Hopefully he'll be able to get back to it. 12:38
does smolder provide a way to report build failures? 12:43
whiteknight that's a very good question 12:45
Coke either way, IWBNI if we had some way for HLLs to report that.
to perhaps prevent the several month cycle I find myself going through.
dalek rrot: r49275 | mikehh++ | trunk/src/gc/gc_ms2.c:
replace c++ comments to get codetest to pass
12:46
Coke ugh. and I'm having linking problems, picking up the wrong version of parrot in ~/bird when trying to test installs with older version numbers. 12:54
13:05 plobsing left 13:06 contingencyplan joined
Coke the breakage for partcl-old was introduced between 2.7.0 & 2.8.0 13:09
13:17 patspam joined 13:18 Psyche^ joined, Patterner left, Psyche^ is now known as Patterner 13:19 tadzik left
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#194) fulltest) at r49275 - Ubuntu 10.04 i386 (gcc) 13:31
brb 13:46
13:47 mikehh left
dalek kudo: 08317ed | moritz++ | docs/announce/2010.09:
[release] mention "now" and "time" being terms; deprecation notice for Bool stringification
13:50
13:50 PacoLinux joined
moritz would love to make the release now, but can't (for lack of a release name) 13:53
if nobody comes up with a suggestion real soon, I'll just take a .pm group whose name I like
atrodo Cincinnati! Even though it has been active in years tho, before my time in fact 13:54
moritz hey, I've even been to cininnati! 13:55
(though I'd welcome some Perl 6 related names :-)
atrodo It's a nice city
13:55 pjcj joined
moritz it has a university with skewed walls :-) 13:57
13:57 mikehh joined
atrodo UC? (Never been to any of the campuses around town) 13:59
moritz no idea, I just remember seeing it while driving by
(and it's been, like, 10 years ago :-)
14:02 mikehh_ joined, Austin joined, Austin left 14:04 mikehh left, mikehh_ is now known as mikehh
mikehh opbots, names 14:04
14:14 fperrad left 14:21 fperrad joined 14:37 hatseflats joined 14:44 bacek left 14:49 tadzik joined, aloha left 14:58 luben_work left 15:12 theory joined 15:20 patspam left 15:23 fperrad left 15:25 fperrad joined 15:35 mythosil joined 15:41 allison left 15:46 ruoso left 15:59 theory left 16:00 ruoso joined 16:30 chromatic joined 16:32 mythosil left, theory joined 16:39 necrolyte joined
chromatic Hm, Rakudo startup is some 14.64% faster today than last night. 16:40
jnthn Wow...what happened? :-) 16:42
tadzik gc_massacre :) 16:43
some of my scripts went 33% faster
jnthn \\o/ 16:44
Didn't spot the merge
bacek++!
chromatic That's good, there's our 10-12% speed improvement for next month's release. I'll see you all in a month. 16:46
16:48 szabgab_ left
chromatic Oh, 33% faster than 2.6.0? That sounds right. 16:48
atrodo Only 66% to go! 16:51
Coke wishes partcl could enjoy that improved parrot! 16:52
chromatic You're probably falling afoul of charset_massacre, Coke. 16:53
Next area of speedup, how about Class isa() and isa_pmc()?
Actually the vtable override problem is suspect. 16:54
Coke chromatic: very likely, though the specific function that is complaining during the build isn't mentioned anywhere in any deprecation notice on the site.
it was definitely borked for me in the last release. I will attempt to bisect and open a ticket as time permits.
16:55 masak left
Coke Do we have some kind of HLL test farm? 16:56
chromatic r48833
16:56 fperrad left
jnthn chromatic: fwiw, neither Rakudo nor nqp will use either of those much in a couple of months. 16:56
If all goes to plan, anyways.
chromatic We'll see! 16:58
Coke chromatic: assuming that's the revision that borked me, is there a ticket for that one? 16:59
16:59 kid51 joined
NotFound chromatic: I think the problem with 'ExceptionHandler' vs ['ExceptionHandler'] that rakudo had may be the symptom of a problem: HLLs are in some cases getting instances of PMCProxies instead of the PMC they ask. 16:59
chromatic What kind of ticket are you looking for, Coke? 17:00
Coke the deprecation ticket.
or the ticket describing the statement of work for that branch.
I only see #1777 & #1779 that mention that branch's name.
chromatic I don't understand what seeing a ticket does for you. 17:01
Coke chromatic: if that commit changed something that broke my HLL, i'd like to be able to find the docs that tell me how to fix it.
or, barring that, add my docs when I figure out what to do. 17:02
chromatic =item C<STRING * Parrot_str_new_init(PARROT_INTERP, const char *buffer, UINTVAL
len, const STR_VTABLE *encoding, UINTVAL flags)>
Given a buffer, its length, an encoding, a character set, and STRING flags,
creates and returns a new string. Don't call this directly.
NotFound "Use some of the wrong and deprecated functions instead" ? 17:03
17:03 necrolyte left
kid51 pastebots? 17:04
paste?
Coke paste is nopaste.snit.ch/
NotFound Coke: forget paste
Coke chromatic: if your answer is meant to tell me to use a different function, I'm not using that function.
I forgot paste
chromatic Yeah, and there should be an entry on the deprecations wiki page that tells you which function to use instead. 17:05
(and we shouldn't export functions you shouldn't use, which bothers me more than that line in the docs)
Coke but I'm not using that function. ;)
but yah, the function I am using is not marked PARROT_API.
nopaste "kid51" at 192.168.1.3 pasted "gc_massacre branch: make testb: t/pmc/threads.t failures" (448 lines) at nopaste.snit.ch/23568 17:06
NotFound Coke: I can grant that even without reading your code.
Coke so no deprecation needed, point.
Coke sighs.
NotFound Coke: What is the problem? Build errors? 17:09
Coke NotFound: partcl has build errors. partcl-nqp has test failurs. 17:10
*failures
parrot repo at charset_massacre mergeback minus 1 doesn't build here. will try harder to bisect later. 17:11
NotFound partcl is still github.com/partcl/partcl ?
Coke no, partcl is github.com/partcl/partcl 17:12
partcl-nqp is github.com/partcl/partcl-nqp
nopaste "NotFound" at 192.168.1.3 pasted "Patch for partcl" (44 lines) at nopaste.snit.ch/23569 17:20
17:24 bluescreen joined, sjn left 17:25 sjn joined
tadzik chromatic: than 2.8.0 17:29
chromatic Amazing.
tadzik I know it sounds insane, but there was one script performing like this
shame I don't remember which one :)
chromatic Seems to use more memory though. 17:32
tadzik dunno 17:33
whiteknight kid51 was actually seeing decreased performance on his system 17:34
so that's weird. We might need to see a more robust set of benchmarks
I think bacek disabled the gc_finalize thing
Coke NotFound: is the encoding of that string binary? 17:35
chromatic kid51 has like 256M
Coke or whatever binary is called these days?
if only we had some way to tell parrot to only use a fixed amount of memory.
NotFound: also, that method is not exported, so I would like to avoid that one too. 17:36
s/exported/part of the API/
but it's probably good enough for old-school partcl. Danke. 17:37
chromatic If anything deserves PARROT_API, Parrot_str_new() and Parrot_str_new_constant() apply.
Coke what's the difference these days with immutable strings, btw? 17:40
chromatic What do you mean "difference"?
Oh, I know what you mean. 17:41
17:41 bluescreen left
chromatic constant strings coalesce into a single instance when you create them. 17:41
NotFound Coke: Did we have a string public api? 17:43
Coke: the encoding of a new_constant? Not sure if it's ascii or default, and not sure if there is a difference. 17:46
Looks like is: Parrot_default_encoding_ptr 17:48
17:51 davidfetter joined 17:54 ash_ joined 17:56 bluescreen joined
Coke NotFound: probably not or I would be using private functions and getting borked. 18:11
*wouldn't
chromatic: so if I'm just creating an empty string to append to, then it doesn't matter. Also partcl's src/binary.c should probably be using a ByteBuffer instead.
(but it hugely predates all the *Buffers) 18:12
18:12 silug left
chromatic That's the biggest problem, yes. 18:16
Partcl is a mix of Parrot: TOS and Parrot: TNG API calls. 18:17
Coke chromatic: I update them whenever the old ones break. 18:19
if you don't want folks using the old ones, add a "warn".
dalek kudo: 74a156f | moritz++ | / (3 files):
[release] name is Milan. Bump VERSION
18:20
18:34 theory left 18:38 jan left
atrodo chromatic> Since you asked about it a few days ago i wanted to let you know that I think my lorito prototype has a mostly usable base now 18:38
chromatic What can it do? 18:39
atrodo The major things are Math, Goto/Conditionals, Make new PMCs, manipulate the data in the PMC, call methods, push/pop arguments, lookup methods on a pmc 18:41
chromatic How about calling C functions? 18:44
atrodo Yep, it can do that too 18:45
chromatic Sounds like most of what we need. 18:48
atrodo Although nothing fancy like NCI, and doesn't pretend to have a calling convention
Yep. I was going to do some documentation and tests and then play with some PMCs 18:49
18:53 lucian left 18:59 lucian joined 19:01 jmcadams joined 19:06 s1n joined
chromatic Maybe we can port some ops to it. 19:07
atrodo Maybe 19:11
mikehh chromatic: any way we can sort out the COST_STRING macro onto multiple lines to get it to conform to line length 19:13
19:13 plobsing joined
chromatic That requires fixing #line processing in several broken C compilers. 19:13
mikehh CONST_STRING 19:14
damn
chromatic If someone wants to file a Cage Cleaner ticket to extract those into temporary variables and use them, that's fine too.
dalek kudo: c50ac91 | moritz++ | build/Makefile.in:
[build] release should not rely on dead pugs svn. Quick and ugly Unix-only hack.
19:15
mikehh let me research the problem - any docs on it?
chromatic Offhand I don't know, this was probably in the RT days. 19:16
mikehh not just necessarily parrot ones
chromatic I know LLVM's clang had #line problems, but they may have fixed it now.
dalek kudo: 0d3c66e | moritz++ | docs/release_guide.pod:
[docs] update release guide

   * VERSION bumping
   * remove section on spectest numbers
   * update description of t/spec handling to git usage
19:21
19:23 nwellnhof joined
nwellnhof Hmm, it seems that gc_massacre got merged with the provisional 256MB threshold. 19:23
I don't get a single GC run triggered during a Parrot build. 19:24
chromatic Parrot or Rakudo? 19:25
nwellnhof Parrot.
tadzik --debugging=0 Disable debugging, default = 1, from Configure.pl
so is it enabled or disabled by default? 19:26
moritz it's enabled by default
tadzik and that causes some performance loss? 19:27
chromatic debugging? Yes.
tadzik alright 19:28
ash_ does --optimize turn off debugging?
chromatic I believe so, yes.
moritz doesn't believe so 19:29
nwellnhof The 256MB threshold is really bad for testing. I always found it helpful to lower the GC threshold to some KB for testing purposes. 19:31
tadzik will check
nwellnhof The 256MB threshold is also an utter waste of memory for many programs. 19:32
I think I'm gonna port the dynamic threshold to MS2 if that's OK with bacek. 19:33
tadzik --optimize does not turn off debugging
chromatic Please do.
I thought optimize defined NDEBUG.
tadzik well, the /usr/bin/parrot md5sum is different after adding --debugging=0
nwellnhof afk # for another round of drinks
19:34 nwellnhof left 19:46 theory joined
chromatic I usually check the Makefile to see the flags themselves. 19:48
-DNDEBUG at the end of my CFLAGS
20:03 patspam joined 20:06 Khisanth left 20:09 ruoso left 20:12 Khisanth joined 20:15 kid51 left 20:18 silug joined
dalek nxed: r666 | NotFound++ | trunk/winxedst1.winxed:
optimize if for some common conditions
20:25
NotFound Here comes the winxed of the beast...
dalek rrot: r49276 | plobsing++ | trunk (7 files):
separate different types of PackFile_ConstTable_rlookup
20:26
20:28 ruoso joined
ttbot Parrot trunk/ r49276 i386-linux-thread-multi make error tt.taptinder.org/file/cmdout/402030.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) 20:29
ash_ NotFound: what if the parrot interp set the encoding of the interp to the env var LC_ALL or LANG?
20:30 theory left
NotFound ash_: What do you mean by "the encoding of the interp" ? 20:30
ash_ trac.parrot.org/parrot/changeset/49252
NotFound ash_: please don't show me my own code as explanation X-) 20:31
ash_ oh 20:33
wasn't the issue that the interp doesn't set the encoding to utf8?
i might be thinking of the wrong problem, if its even a problem
NotFound ash_: the question is more complicated IMO. We can set some encoding on the stdhandles at startup, we can set some default for newly opened FileHandles, or both. 20:34
But setting some encoding as default in the whole interpreter, I think is wrong. 20:35
ash_ what if it was a compile-time configuration that let you set the default?
NotFound ash_: what I have a machine with some users using a LANG with utf8 encoding and others a LANG with iso-8859-1? 20:36
ash_ in my mind, you can configure the default at: compile time, runtime startup or per-instance of a FileHandler
good point 20:37
NotFound And what if a lot of code breaks because no one expect that default encoding change?
ash_ hmm 20:39
well, how would one go about setting the encoding anyway?
NotFound I think the filehandles approach is workable, but needs wide discusion.
To follow the principle of less surprise, we need to know what people will expect. 20:40
ash_ tbh, i expect ascii unless i am explicitly saying something else, but i don't do much with other languages because i speak english, so i am probably not the general case 20:41
NotFound ash_: if you excpet ascii, why were you surprised by the problem with rakudo interactive mode? 20:42
ash_ i wasn't, but someone using the try.rakudo.org site tried printing polish, and it got garbled 20:43
dalek rrot: r49277 | plobsing++ | trunk/src/packout.c:
fix assertions. 0 is allowed as well
20:43 theory joined
ash_ so, in an effort to get it to work right, i have been trying to find out whats wrong, and someone told me readline was part of the problem 20:43
which is how we got to where we are today 20:44
NotFound Ah, good. We're starting to have users (or potential users) worried by that things.
ash_ i am not saying ascii is right, but i do want to 'work' when you try things like printing polish characters, assuming everything is correctly configured and setup
NotFound I don't know how try,rakudo works, but if is using a web page that allows non-ascii characters, surely should do something about it. 20:46
ash_ well, its working now 20:47
but i had to configure parrot without readline
NotFound I think a workable approach is, as you said, using environmental vars to get an encoding from the locale, and use that data to set the encoding of the std handles.
For windows, I don't know what to do. 20:48
ash_ try rakudo is fine, currently, but readline is an issue and i was hoping to see if we could figure out how/why it was doing the wrong thing 20:49
20:50 Andy left 20:51 whiteknight left
NotFound What's the url? try.rakudo.org/ ? 20:54
ash_ yup 20:55
dalek ast: 29b04a9 | moritz++ | S0 (4 files):
fix tests for Bool stringification
NotFound Doesn't load.
ash_ ya... i am having some timeout issues
one sec
20:55 M_o_C joined 20:56 M_o_C left
ash_ try it now 20:58
say 'Zażółć gęślą jaÅŗÅ„' is an example someone tried that wasn't working before 20:59
and it still not working on the live server, but on my test server i fixed it
21:00 jan joined
dalek kudo: 40d0d49 | moritz++ | src/builtins/Bool.pir:
make True and False stringify as Bool::{True,False} as per spec
21:01
kudo: a820a44 | moritz++ | src/builtins/Bool.pir:
Merge branch 'bool-str'
NotFound The problem is that I don't know enough perl6 do check what is doing. 21:03
ash_ thats fine, i have logs that tell me what crashes the server 21:04
that was one of the things that crashed it before 21:05
the polish characters
jnthn Guess it made you polish your code a bit. :-)
ash_ ya
sleep 15 # or any number > 15 works like it should now, the server considers that a timeout and kills the repl 21:06
and restarts it, so you can keep playing, but it does kill it properly
NotFound How can I get the length and bytelength of a string in perl6? 21:11
ash_ .chars 21:12
for length
bytelength is... i don't know...
oh, in windows i found how to get the default encoding 21:13
21:13 Andy joined
ash_ you have to query the win32 api for LOCALE_USER_DEFAULT 21:13
NotFound say "JuliƔn".chars; -> 7 21:14
Wrong
ash_ rakudo: say "JuliƔn".chars;
p6eval rakudo 0d3c66: OUTPUT«6␤» 21:15
NotFound But in command line it says 6
ash_ hm...
i am use a month-ish old version of rakudo...
21:15 bluescreen left
ash_ on the server, i'll update that 21:15
can't hurt
NotFound I've built it right now with parrot trunk.
ash_ is current trunk saying 7? 21:16
NotFound No, it says 6. The web says 7
tadzik web uses repl 21:17
ash_ updating try.rakudo.org
NotFound $ ./perl6 --encoding=iso-8859-1
> say "JuliƔn".chars;
7
Looks like rakudo is using its own way to recode things. 21:18
You can try to use --encoding=utf8 on try.rakudo.org
ash_ ash@feather3:/var/www/try.rakudo.org/frontend$ ~/Projects/rakudo/perl6 21:19
> say "JuliƔn".chars;
6
weird, i wonder why the website says 7
might be an html encoding error? or javascript? /shrug i'll look into it 21:20
NotFound ash_: I guess is using env vars for defaut if there is no --encoding option, and the web server environment doesn't provide an appropiate value.
21:20 ruoso left
ash_ that sounds probable 21:21
NotFound Using an explicit --encoding=utf8 may be the appropiate solution. 21:22
ash_ hmmm, i set it, but its still returning 7 21:23
it has something to do with my p6safe script that sets rakudo into safemode 21:26
github.com/moritz/try.rakudo.org/bl.../p6safe.pl is the script, it overrides a bunch of file IO ops in pir to make sure people can't do "bad things"
but it's not respecting --encoding=utf8 for some reason 21:27
NotFound my $*ARGFILES = open '../frontend/data/input_text.txt'; What does this? 21:29
ash_ sets stdin to be the contents of the file
so if you try to read from stdin you get something useful
rakudo: say lines
p6eval rakudo 0d3c66: OUTPUTĀ«Land der Berge, Land am Strome,Land der Ƅcker, Land der Dome,Land der HƤmmer, zukunftsreich!Heimat bist du großer Sƶhne,Volk, begnadet für das Schƶne,vielgerühmtes Ɩsterreich,vielgerühmtes Ɩsterreich!Heiß umfehdet, wild umstrittenliegst dem Erdteil du inmitten,einem starken
..Herzen …
ash_ its that text
NotFound open has some way to specify text mode? 21:30
ash_ ya, you mean like read it as binary data right? 21:31
NotFound It may be. 21:32
ash_ thats not the repl part, thats just text for stdin, Perl6::Compiler.interactive(); starts the repl 21:33
NotFound Yeah, but the problem seems to be that is not using the encoding for its input. 21:35
ash_ the repl still uses stdin as its input, the $*ARGFILES is for all perl6 related io functions 21:36
21:39 mikehh left
NotFound How do you pass named parameter to a sub in perl6? 21:39
tadzik sub(foo => 'bar')
or sub(:foo<bar>)
TIMTOWTDI, as always
sorear sub(|($foo => $bar)) if you need a variable name 21:40
sub(:$foo) if you want to pass $foo with the name 'foo'
ash_ if the server goes down, its my fault, i am upgrade rakudo (and parrot)
sorear sub(|%foo) if you have a few named parameters in a hash
NotFound ash_: try this: Perl6::Compiler.interactive(:encoding<utf8>); 21:41
ash_ prints 6 now 21:42
NotFound Good
ash_ restarting the repl server 21:43
sweet i broke it /grubmles 21:44
NotFound say "JuliƔn";
→
Rakudo REPL has timedout... reaping.
ash_ i did make, not make install /duncehat 21:45
→ say "JuliĆ”n".chars;
6
say 'Zażółć gęślą jaÅŗÅ„' works too now
NotFound say "JuliƔn"; 21:46
→
JuliƔn
Good
ash_ parrot still needs to be configured without readline, which isn't that big of a deal, but it would be nice if that worked with readline too 21:47
NotFound ash_: What parrot is it using? 21:48
ash_ cat build/PARROT_REVISION
49192 2.8.0
NotFound My fix for readline is 49252 21:49
You can try to apply that patch. 21:50
ash_ even after that, i built my local parrot/rakudo with latest trunks of both and it still doesn't work right
> say "JuliƔn";
JuliÔn
with readline and your patch
NotFound Someone with good knowledge of rakudo internals should take a look at the problem, then. 21:51
ash_ i'll file a bug report 21:54
21:54 tadzik left
NotFound In the meantime, try.rakudo.org is working, isn't it? 21:55
ash_ yup
NotFound World domination advances! 21:56
22:01 mikehh joined
ash_ NotFound: actually, i just double checked, i must of let Configure build parrot, your changes do make readline work with utf8 in the repl 22:01
NotFound++++
NotFound Good!
ash_ are the gc_massacre changes in trunk now too? 22:02
chromatic yes 22:03
ash_ wonder if it gives rakudo any speed boosts, i'll check
jnthn ash_: Hmm...I just tried it and it doesn't seem to respond? 22:04
NotFound ash_: according several people, there is huge boost since 2.8
22:05 patspam left
ash_ jnthn: try again, the repl server was frozen 22:05
rakudo: print "Ć¦Ć°Ä‘Ā»Ā·ā€ÄøĆ¾Ćø" 22:06
p6eval rakudo 0d3c66: OUTPUTĀ«Ć¦Ć°Ä‘Ā»Ā·ā€ÄøĆ¾ĆøĀ»
ash_ thats what froze it
hmm
jnthn oh, was that me?
I tried
say "отлично!"
NotFound ash_: that is a friend from other channel I asked to do some test
ash_ i know what that is 22:07
ugh
NotFound He did: print ~Ć¦ĆŸĆ°Ä‘Ć¦ĆŸĆ°Ä‘Å‹Ä‘Ć¦ĆŸÄ‘
ash_ print is bad :-(
mikehh neither purl nor aloha is currently in the channel
NotFound I told him say, but...
ash_ i thought i fixed that, but i look for \\n>\\s to see when the repl is waiting on a new line, to tell when its done 22:08
but print doesn't put in the extra \\n
so my logic is wrong
jnthn o~"Bot silence is golden..."
mikehh jnthn: yeah but messages and karma is not being monitored 22:09
ash_ ask him to try again
the more he breaks it, the more i fix it :P
mikehh and questions are not being answered if youi have 'em 22:10
purl can be annoying at times, but I think her usefullness overrides this 22:11
plobsing coverage? more than makes up for it for me.
mikehh and you can always reemove some of the annoyances
plobsing for the few times I actually have to use that
ash_ NotFound: also, i started the tutorial parts of the site, on try.rakudo.org if you type "chapter 1" it takes you to the first tutorial, they are more test cases right now, but they work 22:13
mikehh I definately object to purl removal from the channel
NotFound ash_: nice, I need to learn some perl6
ash_ NotFound: hopefully soon, the tutorial will be able to help you out, but currently its more a proof of concept than a full tutorial, still working on that 22:14
NotFound ash_: yeah, it works 22:16
22:18 patspam joined 22:19 Andy left
ash_ NotFound: .bytes returns the number of bytes in a string 22:27
say "JuliƔn".bytes;
rakudo: say "JuliƔn".bytes;
p6eval rakudo 0d3c66: OUTPUT«7␤»
sorear Bytes... in what encoding? 22:28
My Perl6 impl uses UCS-2 most of the time
opbots, names
ash_ it uses the default encoding, but you can specify an encoding too 22:29
rakudo: say "C".bytes("UTF-16") # i don't know if rakudo supports utf-16 yet 22:30
p6eval rakudo 0d3c66: OUTPUT«No applicable candidates found to dispatch to for 'bytes'. Available candidates are:␤:(Mu ;; *%_)␤␤ in main program body at line 22:/tmp/IyKc5osahw␤»
mikehh NotFound: c++ objects to src/main.c line 404, -> else if (argc > arg + 14 [argc (int) and arg (const char * = argv[pos])] 22:46
NotFound mikehh: What's that supposed to do? 22:48
22:49 kid51 joined
kid51 ~~ 22:49
NotFound mikehh: arg + 14 is a char* 22:50
mikehh NotFound: I presume it is supposed to test for overflow from r49246 by chrom,atic
chromatic
NotFound: yes comparing int to char * 22:51
22:51 s1n left
NotFound mikehh: I fail to understand his intention. 22:52
mikehh which of course c++ objects to
NotFound: not sure I do 22:53
NotFound: I think he is trying to check for overflow or something, not sure that will work 22:54
chromatic: ping 22:55
chromatic pong
NotFound mikehh: well, I'll ve very surprised if argc is bigger that arg + 14 in any known OS ;)
mikehh I don't understand what you were doing in r49246, c__ objects to it
s/c__/c++/ 22:56
or should i say
chromatic Yeah, for some reason I thought argc was the length of an element of argv.
NotFound I guess some reason is too much hours looking for optimizations. 22:57
chromatic strlen(arg) should be better there.
mikehh damnit - just dropped my wireless mouse under my desk and can't see it 22:58
22:59 davidfetter left
mikehh ah found it 22:59
NotFound mikehh: Just hold the wire... Oh, wait!
23:01 lucian left
NotFound chromatic: I think there is no need to that check, strncmp stops at string end 23:01
chromatic You're right. 23:03
That's not the problem though; the problem is trying to read past the end of that string. 23:06
/* arg should start with --gc-threshold *and* contain more chars */ 23:07
else if (strncmp(arg, "--gc-threshold", 14) == 0
&& strlen(arg) > 14) {
NotFound Mmmm... I think that checiking if arg[14] is, '\\0', '=' or else will be a better check, 23:10
mikehh what you are checking for is that --gc-threshold has a valid argument 23:11
NotFound And that is --gc-threshold and not something like --gc-threshold-foobar 23:12
chromatic Right.
The next character could be '=' or the value could be in the next argument. 23:13
If the next character is anything other than '=' and there's no next argument, it's wrong.
NotFound Then the valid values are '=' and zero
chromatic Right.
NotFound And the strncpm check grants that [14] is not out of mem 23:14
mikehh is --gc_threshold = nnn valid? 23:15
chromatic It's invalid.
NotFound mikehh: I don't know any program that accepts that kind of options.
mikehh no whitespace then 23:16
NotFound mikehh: is not whitespace, viewed from argv[] 23:17
mikehh 'k
nopaste "chromatic" at 192.168.1.3 pasted "A better patch; passes t/run/options.t for me" (40 lines) at nopaste.snit.ch/23576 23:19
23:20 whiteknight joined
NotFound chromatic: looks good 23:20
whiteknight good evening, #parrot 23:21
sorear whiteknight++ # release
whiteknight sorear: You're always standing by with the karma! 23:22
23:24 dngor left, dngor_ joined
dalek nxed: r667 | NotFound++ | trunk/winxedst1.winxed:
condition optimization also in do while
23:25
mikehh but we don't have no karma recordin' bot loaded at the moment :-{ 23:29
bacek_at_work ~~ 23:31
23:32 dngor_ is now known as dngor
dalek rrot: r49278 | chromatic++ | trunk/src/main.c:
[main] Improved --gc-threshold arg processing.

about what's necessary and why. t/run/options.t should still pass after this commit. We need more testing of command-line options.
23:32
whiteknight no karma bot? The only reason I hack on Parrot is for the karma 23:36
screw this. I'm out of here
sorear whiteknight: that's why we're moving to git; you can batch up karma and push when aloha joins 23:41
whiteknight haha, that's sneaky!
dalek rrot: r49279 | mikehh++ | trunk/src/main.c:
fix codetest failure - parentheses should not have space immediately
23:49
nopaste "kid51" at 192.168.1.3 pasted "gc_massacre branch: t/pmc/threads.t: failures on Darwin/PPC" (267 lines) at nopaste.snit.ch/23577 23:57