Camelia, the Perl 6 bug

IRC log for #parrot, 2010-09-23

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:00 davidfetter joined #parrot
00:02 dukeleto cotto: ping
00:05 dukeleto cotto: check out the recent link i added to GitMigration about post-receive hooks
00:05 * dukeleto goes for a run
00:09 dalek tracwiki: v35 | dukeleto++ | GitMigration
00:09 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Gi​tMigration?version=35&action=diff
00:20 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
00:20 bacek_at_work in case on gcms2 I suspect we have some dangling pointer on stack
00:21 chromatic The latter seems like a coincidence, especially with stack and memory randomization.
00:22 bacek_at_work probably. But my point is that current "timely destruction" is unpredictable.
00:22 chromatic Agreed.
00:22 chromatic It's easy to imagine possibilities (however far-fetched) where this could occur again.
00:23 bacek_at_work indeed.
00:26 bacek_at_work 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?
00:27 bacek_at_work chromatic, I don't know python.
00:27 chromatic I don't know C#.
00:27 chromatic When we have Lorito, we shouldn't have to walk the system stack.
00:28 bacek_at_work C<using(new Foo) { ... }; > Foo.dispose will be invoked after "}"
00:28 chromatic Looks like Python's with.
00:28 bacek_at_work may be.
00:31 bacek_at_work btw, even with Lorito we have to walk C stack. Modulo low-level "new_p_p_p" implementation.
00:33 chromatic I think we can avoid it.
00:36 whiteknight me too. I think we can avoid it
00:36 whiteknight and we should if we can
00:37 whiteknight To enforce that, we are probably going to have to erect barriers between runloops recursed into by extensions
00:38 chromatic I'd like to avoid recursing into runloops -- at least recursing at the Lorito runloop level.
00:39 patspam joined #parrot
00:43 bacek_at_work anyway, if there is no objections I'll mark test as todo and merge branch tonight.
00:44 bacek_at_work I do want to start on GenGC sooner than later.
00:44 chromatic +1
00:44 whiteknight chromatic: yeah, I wish. The problem is extensions. If extensions can be called by Parrot, and call into Parrot, we get recursions
00:44 whiteknight or, really really creepy abuses of setjmp
00:45 chromatic Only at the C level.
00:45 chromatic "only"
00:45 chromatic dukeleto, ping
00:45 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
00:45 whiteknight I like it a hell of a lot now that I really think about it
00:45 chromatic That's a good way to find bugs too.
00:45 chromatic Without crashing.
00:46 whiteknight when you say "kill this PMC", it's because you want it dead even if there are outstanding references
00:46 whiteknight safe thing is to make those references harmless
00:47 whiteknight 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:48 chromatic If we require explicit marking of these PMCs, we can even do escape analysis at runtime for little cost.
00:48 chromatic That is, if we assume:
00:49 chromatic 1) we tie their destruction to the "ending" of their contexts
00:49 chromatic 2) we use contexts to shuffle PMCs and STRINGs between contexts at invoke/return
00:49 chromatic Then we can store a list of destructables with the appropriate context
00:50 chromatic 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 chromatic 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.
00:50 chromatic If it's escaped, it's not on the list.
00:50 dngor left #parrot
00:50 chromatic If it's never been on the list, the standard GC will get it.
00:50 dngor joined #parrot
00:51 davidfetter left #parrot
00:53 dukeleto chromatic: pong
00:54 chromatic They have me on their confirmed list.
00:54 chromatic ww
00:54 chromatic whiteknight, why does PMC_IS_NULL() have to get smarter?
00:55 whiteknight because it has to check whether p == NULL and p->vtable->base_type == enum_class_NULL
00:55 whiteknight not p == PMCNULL, which is easier/faster
00:56 whiteknight chromatic: are you thinking about doing escape analysis at the Parrot level? I always sort of envisioned doing it at the HLL level
00:59 chromatic Morph to the singleton Undef, which is easier.
01:01 bacek_at_work Undef isn't singleton
01:01 bacek_at_work And have different semantics
01:02 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
01:02 chromatic Works for me.
01:05 chromatic ... except that morphing to a singleton is silly.
01:06 chromatic 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
01:06 whiteknight but again, I don't care what we morph it to. We could morph it to a Float with NaN for all I care
01:08 whiteknight actually, we shouldn't do that
01:08 whiteknight either make Null not a singleton, or make a Null-alike type that isn't a singleton
01:09 whiteknight Undef is probably not the right choice either, but maybe it could be
01:14 whiteknight shit. I wish we had put in a deprecation notice about timely destruction nonsense on Monday
01:15 whiteknight anyway, it's bedtime now
01:16 whiteknight goodnight
01:16 whiteknight left #parrot
01:34 bacek_at_work chromatic, can you create trac ticket for deprecating "timely destruction"?
01:34 bacek_at_work (and put some kind of excerpt from irc into it)
01:35 bacek_at_work And let's create DeadBeef PMC :)
01:42 kid51 joined #parrot
01:52 mikehh left #parrot
01:58 ascent left #parrot
01:59 AzureStone left #parrot
02:02 ruoso joined #parrot
02:03 nopaste "bacek" at 192.168.1.3 pasted "Rakudo's test summary on gc_massacre branch." (6 lines) at http://nopaste.snit.ch/23553
02:03 bacek_at_work moritz, can you have a look at http://nopaste.snit.ch/23553 ?
02:05 dalek TT #1799 created by ronaldws++: Allow for rw bffer to be passed by nci 'B' signature.
02:05 dalek TT #1799: http://trac.parrot.org/parrot/ticket/1799
02:06 mikehh joined #parrot
02:15 AzureStone joined #parrot
02:22 dalek TT #36 closed by jkeenan++: Harmless test errors on Win32Vista
02:22 dalek TT #36: http://trac.parrot.org/parrot/ticket/36
02:29 preflex left #parrot
02:33 preflex joined #parrot
02:35 janus left #parrot
02:36 kid51 left #parrot
02:37 kid51 joined #parrot
02:43 kid51 left #parrot
03:07 ash_ left #parrot
03:15 kid51 joined #parrot
03:18 ash_ joined #parrot
03:19 kid51 left #parrot
03:20 ash__ joined #parrot
03:22 ash_ left #parrot
03:22 ash__ is now known as ash_
03:36 plobsing (1163468234 - 1158078900)/1163468234
03:36 aloha 0.00463212818580486
03:42 dalek parrot: r49253 | plobsing++ | branches/typesafe_consttable (51 files):
03:42 dalek parrot: sync with trunk
03:42 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49253/
03:51 janus joined #parrot
03:58 patspam left #parrot
03:59 dalek parrot: r49254 | plobsing++ | branches/typesafe_consttable/src/main.c:
03:59 dalek parrot: fix C++ build.
03:59 dalek parrot: wtf, I didn't even touch that file!
03:59 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49254/
04:16 eternaleye joined #parrot
04:16 dalek parrot: r49255 | plobsing++ | trunk (121 files):
04:16 dalek parrot: merge typesafe_consttable branch
04:17 dalek parrot: improves rakudo startup by 0.46% and does away with tagged union constants
04:17 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49255/
04:17 dalek parrot: r49256 | plobsing++ | branches/typesafe_consttable:
04:17 dalek parrot: branch merged
04:17 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49256/
04:17 dalek parrot: r49257 | bacek++ | branches/gc_massacre/config/gen/makefiles/root.in:
04:17 dalek parrot: Fix test_string dependency
04:17 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49257/
04:33 dalek parrot: r49258 | plobsing++ | trunk (2 files):
04:33 dalek parrot: remove dead code - PackFile_Constant and add_const_key
04:33 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49258/
04:50 dalek parrot: r49259 | plobsing++ | trunk/src/packout.c:
04:50 dalek parrot: todo implemented
04:50 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49259/
04:52 ash_ left #parrot
05:00 theory left #parrot
05:06 frodwith_ left #parrot
05:33 chromatic Hm, who wants to bet that t/run/options.t has two failures now?
05:37 plobsing seems to run fine for me
05:38 chromatic Hmm.  Me too.  I learned something new about Subversion.
05:41 plobsing looking at a hexdump of perl6.pbc, fixup segments have a lot of strings that are already in the consttable
05:42 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
05:42 plobsing it should drop one sizeof(opcode_t) for every string and num constant
05:44 chromatic That could be 15% or more.
05:45 plobsing I can drop a sizeof(opcode_t) for pmc constants once I un-special-case Keys
05:46 plobsing what is the fixup table even for anyways?
05:47 chromatic During compilation it's useful, but in PBC I have no idea.
05:52 plobsing if eval.pmc is to be beleived, it is an ordered mapping of "name" => "sub" within the constant table.
05:53 plobsing yay more special case handling code wasting colossal amounts of space
05:54 chromatic Incompatible versions of `core_ops' oplib. Found 2.8.0 but loaded 2.7.0?
05:55 chromatic Oh, it linked against libparrot.so.2.7.0
05:55 plobsing looks like you're running an old parrot
05:57 chromatic That did it.
06:06 chromatic That did it.
06:19 NotFound winxed compiler pbcs are bigger after the merge
06:21 NotFound 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 #parrot
06:23 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
06:24 plobsing they were like that before
06:24 plobsing and per the spec, they're supposed to point into the const table.
06:24 plobsing but I'm not even sure why we have a fixup table anymore
06:25 chromatic Does anything read it?
06:25 plobsing a quick ack for PackFile_FixupEntry shows only Eval.pmc uses it.
06:25 plobsing all the rest appears to be support code
06:26 chromatic Hm, so an eval operation must take place in the context of a compilation unit.
06:27 chromatic I can understand why it needs its own fixups: the lack of required forward declarations, of course.
06:28 bacek_at_work plobsing, FixupEntry contains Subs boundaries within ByteCode segment
06:28 chromatic Don't Subs know their own?
06:28 bacek_at_work Not in PBC
06:28 plobsing bacek_at_work: incorrect. fixup tables point to sub constants
06:29 bacek_at_work plobsing, ah, yes. It's other way around.
06:31 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.
06:31 bacek_at_work Premature optimisation ftw
06:32 plobsing much less of a problem now that pmc constants are separate from str and num constants
06:32 bacek_at_work yes.
06:32 chromatic Especially when we have to walk the subs in a packfile anyway to thaw them.
06:32 bacek_at_work But I don't think we should put any effort into current PBC format.
06:32 moritz bacek_at_work: the failure in properties-derived.rakudo is probably related to your ICU version
06:32 bacek_at_work Lorito's PBC will change it dramatically
06:32 bacek_at_work moritz, ok, thanks.
06:32 moritz I've had failure reports from other platforms too
06:33 chromatic We'll have better PBC for Lorito if we understand what we need from PBC now.
06:33 chromatic (and remove some of the worst problems of it now)
06:33 bacek_at_work makes sense
06:33 plobsing I'm not waiting for Lorito. Lorito has been comming RSN for months. Everything could change. But if we wait, nothing will.
06:33 bacek_at_work ask for excuses, not for permissions
06:34 NotFound In a hexdump of the pbc I don't see anything obviously wrong
06:43 * plobsing needs sleep. will work on size problem tomorrow
06:50 plobsing left #parrot
06:54 chromatic left #parrot
07:12 bacek ~~
07:23 dalek parrot: r49260 | bacek++ | branches/gc_massacre (34 files):
07:23 dalek parrot: Sync branch with trunk before merge back.
07:23 dalek parrot: Conflicts:
07:23 dalek parrot: src/call/context_accessors.c
07:23 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49260/
07:40 dalek parrot: r49261 | bacek++ | branches/gc_massacre (3 files):
07:40 dalek parrot: Remove experimental GC TMS. MS2 now is TriColour effectively
07:40 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49261/
07:49 dalek TT #1800 created by bacek++: [DEPRECATED] Current behaviour of "timely destruction" is deprecated.
07:49 dalek TT #1800: http://trac.parrot.org/parrot/ticket/1800
07:58 dalek parrot: r49262 | bacek++ | branches/gc_massacre/MANIFEST:
07:58 dalek parrot: "Regenerate" MANIFEST.
07:58 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49262/
07:58 dalek parrot: r49263 | bacek++ | branches/gc_massacre/src/main.c:
07:58 dalek parrot: Remove one more bit of TMS GC.
07:58 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49263/
07:58 dalek parrot: r49264 | bacek++ | branches/gc_massacre/src (2 files):
07:58 dalek parrot: Bring files irrelvant to branch from trunk
07:58 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49264/
07:58 dalek parrot: r49265 | bacek++ | branches/gc_massacre/src/gc (2 files):
07:58 dalek parrot: Remove more leftovers of TMS GC
07:58 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49265/
07:58 dalek parrot: r49266 | bacek++ | branches/gc_massacre/t/pmc/filehandle.t:
07:58 dalek parrot: Skip filehandle test
07:58 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49266/
08:01 slavorgn left #parrot
08:15 contingencyplan left #parrot
08:17 mikehh bacek: you need more testing on gc_massacre
08:17 mikehh bacek: should be a ? there
08:17 bacek mikehh, is it question?
08:18 bacek mikehh, :)
08:18 bacek On which platform are you now?
08:18 mikehh Ubunty 10.10 beta amd64
08:19 mikehh Ubuntu
08:19 bacek can you switch to i386? I'm on amd64
08:19 bacek And finally testing it before merge back.
08:19 mikehh can give it a try
08:19 bacek ok, thanks
08:19 mikehh brb
08:21 mikehh left #parrot
08:27 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 #parrot
08:30 dalek parrot: r49267 | bacek++ | branches/gc_massacre/src/gc/fixed_allocator.c:
08:30 dalek parrot: Really destroy Fixed_Allocator
08:30 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49267/
08:30 dalek parrot: r49268 | bacek++ | branches/gc_massacre/src/gc/gc_ms2.c:
08:30 dalek parrot: Implement gc_ms2_finalize
08:30 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49268/
08:32 luben_work joined #parrot
08:35 slavorgn joined #parrot
08:48 dalek parrot: r49269 | bacek++ | trunk (30 files):
08:48 dalek parrot: Merge branch gc_massacre back to trunk. Default GC set MS2 now
08:48 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49269/
08:48 dalek parrot: r49270 | bacek++ | trunk/src/gc/gc_ms2.c:
08:48 dalek parrot: Temporary disable gc_ms2_finalize. It doesn't play nicely with threads.
08:48 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49270/
08:50 sorear wait, wait
08:50 sorear fixed allocators gone?
08:51 mikehh joined #parrot
09:10 AzureStone left #parrot
09:10 AzureStone joined #parrot
09:18 tadzik joined #parrot
09:21 AzureStone left #parrot
09:22 dalek parrot: r49271 | mikehh++ | trunk/MANIFEST.SKIP:
09:22 dalek parrot: re-generate MANIFEST.SKIP
09:22 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49271/
09:22 AzureStone joined #parrot
09:26 mikehh bacek: got to go to the dentist now - will fix codetest failures etc, when I get back
09:46 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:48 tadzik * 2.8.0, pardon
09:51 he joined #parrot
09:55 lucian joined #parrot
10:08 masak joined #parrot
10:49 ruoso left #parrot
11:19 mikehh gotta love dentists - they are definately required, but you don't want to go anywhere them - mouth is still numb
11:20 mikehh s/them/near them/
11:21 dalek parrot: r49272 | mikehh++ | trunk (8 files):
11:21 dalek parrot: add svn properties
11:21 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49272/
11:33 plobsing joined #parrot
11:35 * Coke sees his name go by in backscroll and it's not highlighted. odd.
11:35 Coke sorear: no need for name calling, jerkbag.
11:38 dalek parrot: r49273 | mikehh++ | trunk/src/pmc/exceptionhandler.pmc:
11:38 dalek parrot: fix codetest failure - line length
11:38 dalek parrot: (when can we fix the STRING_CONST macro so that it conforms to line length)
11:38 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49273/
11:42 PacoLinux left #parrot
11:42 mikehh Hey Coke, why was you guys so CRU-EL to purl?
11:52 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 whiteknight joined #parrot
11:54 * Coke ponders doing a benchmark to see if latest parrot is faster on partcl.
11:55 dalek parrot: r49274 | mikehh++ | trunk/compilers/imcc/pbc.c:
11:55 dalek parrot: run make headerizer to get rid of missing assert args failure
11:55 esskar left #parrot
11:55 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49274/
11:56 esskar joined #parrot
12:02 mikehh bacek: You still around?
12:07 whiteknight good morning, #parrot
12:24 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 #parrot
12:26 mikehh bah, misspelling
12:26 mikehh 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
12:26 aloha OK. I'll deliver the message.
12:27 Coke ah, partcl-nqp on parrot trunk certainly fails faster, anyway.
12:30 * 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.
12:31 Coke STRING *value = Parrot_str_new_noinit(interp, enum_stringrep_one, 128);
12:33 whiteknight mikehh: in a recent commit he mentioned that he disabled that function for some reason
12:34 mikehh whiteknight: yeah found it
12:34 * Coke hates hates hatest developing on parrot. ;)
12:35 whiteknight Coke: Then I think you're in the wrong open source project. Because this *is* parrot
12:35 whiteknight :)
12:35 mikehh gonna just replace the c++ comments for the moment (to get codetest to pass)
12:36 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.
12:36 whiteknight what about Parrot are you hating on?
12:37 whiteknight ah, dependency hell. Gotcha
12:38 * Coke will have to let them both rot for now. Hopefully he'll be able to get back to it.
12:43 Coke does smolder provide a way to report build failures?
12:45 whiteknight that's a very good question
12:45 Coke either way, IWBNI if we had some way for HLLs to report that.
12:45 Coke to perhaps prevent the several month cycle I find myself going through.
12:46 dalek parrot: r49275 | mikehh++ | trunk/src/gc/gc_ms2.c:
12:46 dalek parrot: replace c++ comments to get codetest to pass
12:46 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49275/
12:54 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.
13:05 plobsing left #parrot
13:06 contingencyplan joined #parrot
13:09 Coke the breakage for partcl-old was introduced between 2.7.0 & 2.8.0
13:17 patspam joined #parrot
13:18 Psyche^ joined #parrot
13:18 Patterner left #parrot
13:18 Psyche^ is now known as Patterner
13:19 tadzik left #parrot
13:31 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#194) fulltest) at r49275 - Ubuntu 10.04 i386 (gcc)
13:46 mikehh brb
13:47 mikehh left #parrot
13:50 dalek rakudo: 08317ed | moritz++ | docs/announce/2010.09:
13:50 PacoLinux joined #parrot
13:50 dalek rakudo: [release] mention "now" and "time" being terms; deprecation notice for Bool stringification
13:50 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0​8317edb1fdefbe9a89c37179442785fa1271300
13:53 * moritz would love to make the release now, but can't (for lack of a release name)
13:53 moritz if nobody comes up with a suggestion real soon, I'll just take a .pm group whose name I like
13:54 atrodo Cincinnati!  Even though it has been active in years tho, before my time in fact
13:55 moritz hey, I've even been to cininnati!
13:55 moritz (though I'd welcome some Perl 6 related names :-)
13:55 atrodo It's a nice city
13:55 pjcj joined #parrot
13:57 moritz it has a university with skewed walls :-)
13:57 mikehh joined #parrot
13:59 atrodo UC?  (Never been to any of the campuses around town)
13:59 moritz no idea, I just remember seeing it while driving by
13:59 moritz (and it's been, like, 10 years ago :-)
14:02 mikehh_ joined #parrot
14:02 Austin joined #parrot
14:02 Austin left #parrot
14:04 mikehh left #parrot
14:04 mikehh_ is now known as mikehh
14:04 mikehh opbots, names
14:14 fperrad left #parrot
14:21 fperrad joined #parrot
14:37 hatseflats joined #parrot
14:44 bacek left #parrot
14:49 tadzik joined #parrot
14:49 aloha left #parrot
14:58 luben_work left #parrot
15:12 theory joined #parrot
15:20 patspam left #parrot
15:23 fperrad left #parrot
15:25 fperrad joined #parrot
15:35 mythosil joined #parrot
15:41 allison left #parrot
15:46 ruoso left #parrot
15:59 theory left #parrot
16:00 ruoso joined #parrot
16:30 chromatic joined #parrot
16:32 mythosil left #parrot
16:32 theory joined #parrot
16:39 necrolyte joined #parrot
16:40 chromatic Hm, Rakudo startup is some 14.64% faster today than last night.
16:42 jnthn Wow...what happened? :-)
16:43 tadzik gc_massacre :)
16:43 tadzik some of my scripts went 33% faster
16:44 jnthn \o/
16:44 jnthn Didn't spot the merge
16:44 jnthn bacek++!
16:46 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:48 szabgab_ left #parrot
16:48 chromatic Oh, 33% faster than 2.6.0?  That sounds right.
16:51 atrodo Only 66% to go!
16:52 * Coke wishes partcl could enjoy that improved parrot!
16:53 chromatic You're probably falling afoul of charset_massacre, Coke.
16:53 chromatic Next area of speedup, how about Class isa() and isa_pmc()?
16:54 chromatic 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.
16:54 Coke 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 #parrot
16:56 Coke Do we have some kind of HLL test farm?
16:56 chromatic r48833
16:56 fperrad left #parrot
16:56 jnthn chromatic: fwiw, neither Rakudo nor nqp will use either of those much in a couple of months.
16:56 jnthn If all goes to plan, anyways.
16:58 chromatic We'll see!
16:59 Coke chromatic: assuming that's the revision that borked me, is there a ticket for that one?
16:59 kid51 joined #parrot
16:59 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.
17:00 chromatic What kind of ticket are you looking for, Coke?
17:00 Coke the deprecation ticket.
17:00 Coke or the ticket describing the statement of work for that branch.
17:00 Coke I only see #1777 & #1779 that mention that branch's name.
17:01 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.
17:02 Coke 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
17:02 chromatic len, const STR_VTABLE *encoding, UINTVAL flags)>
17:02 chromatic Given a buffer, its length, an encoding, a character set, and STRING flags,
17:02 chromatic creates and returns a new string.  Don't call this directly.
17:03 NotFound "Use some of the wrong and deprecated functions instead" ?
17:03 necrolyte left #parrot
17:04 kid51 pastebots?
17:04 kid51 paste?
17:04 Coke paste is http://nopaste.snit.ch/
17:04 NotFound Coke: forget paste
17:04 Coke chromatic: if your answer is meant to tell me to use a different function, I'm not using that function.
17:04 Coke I forgot paste
17:05 chromatic Yeah, and there should be an entry on the deprecations wiki page that tells you which function to use instead.
17:05 chromatic (and we shouldn't export functions you shouldn't use, which bothers me more than that line in the docs)
17:05 Coke but I'm not using that function. ;)
17:05 Coke but yah, the function I am using is not marked PARROT_API.
17:06 nopaste "kid51" at 192.168.1.3 pasted "gc_massacre branch: make testb: t/pmc/threads.t failures" (448 lines) at http://nopaste.snit.ch/23568
17:06 NotFound Coke: I can grant that even without reading your code.
17:06 Coke so no deprecation needed, point.
17:06 * Coke sighs.
17:09 NotFound Coke: What is the problem? Build errors?
17:10 Coke NotFound: partcl has build errors. partcl-nqp has test failurs.
17:10 Coke *failures
17:11 Coke parrot repo at charset_massacre mergeback minus 1 doesn't build here. will try harder to bisect later.
17:11 NotFound partcl is still http://github.com/partcl/partcl ?
17:12 Coke no, partcl is http://github.com/partcl/partcl
17:12 Coke partcl-nqp is http://github.com/partcl/partcl-nqp
17:20 nopaste "NotFound" at 192.168.1.3 pasted "Patch for partcl" (44 lines) at http://nopaste.snit.ch/23569
17:24 bluescreen joined #parrot
17:24 sjn left #parrot
17:25 sjn joined #parrot
17:29 tadzik chromatic: than 2.8.0
17:29 chromatic Amazing.
17:29 tadzik I know it sounds insane, but there was one script performing like this
17:29 tadzik shame I don't remember which one :)
17:32 chromatic Seems to use more memory though.
17:33 tadzik dunno
17:34 whiteknight kid51 was actually seeing decreased performance on his system
17:34 whiteknight so that's weird. We might need to see a more robust set of benchmarks
17:34 whiteknight I think bacek disabled the gc_finalize thing
17:35 Coke NotFound: is the encoding of that string binary?
17:35 chromatic kid51 has like 256M
17:35 Coke or whatever binary is called these days?
17:35 Coke if only we had some way to tell parrot to only use a fixed amount of memory.
17:36 Coke NotFound: also, that method is not exported, so I would like to avoid that one too.
17:36 Coke s/exported/part of the API/
17:37 Coke 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.
17:40 Coke what's the difference these days with immutable strings, btw?
17:40 chromatic What do you mean "difference"?
17:41 chromatic Oh, I know what you mean.
17:41 bluescreen left #parrot
17:41 chromatic constant strings coalesce into a single instance when you create them.
17:43 NotFound Coke: Did we have a string public api?
17:46 NotFound Coke: the encoding of a new_constant? Not sure if it's ascii or default, and not sure if there is a difference.
17:48 NotFound Looks like is: Parrot_default_encoding_ptr
17:51 davidfetter joined #parrot
17:54 ash_ joined #parrot
17:56 bluescreen joined #parrot
18:11 Coke NotFound: probably not or I would be using private functions and getting borked.
18:11 Coke *wouldn't
18:11 Coke 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.
18:12 Coke (but it hugely predates all the *Buffers)
18:12 silug left #parrot
18:16 chromatic That's the biggest problem, yes.
18:17 chromatic Partcl is a mix of Parrot: TOS and Parrot: TNG API calls.
18:19 Coke chromatic: I update them whenever the old ones break.
18:19 Coke if you don't want folks using the old ones, add a "warn".
18:20 dalek rakudo: 74a156f | moritz++ | / (3 files):
18:20 dalek rakudo: [release] name is Milan. Bump VERSION
18:20 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​4a156f328d6cc54a0ba32770381aaff4d151364
18:34 theory left #parrot
18:38 jan left #parrot
18:38 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:39 chromatic What can it do?
18:41 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:44 chromatic How about calling C functions?
18:45 atrodo Yep, it can do that too
18:48 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
18:49 atrodo Yep.  I was going to do some documentation and tests and then play with some PMCs
18:53 lucian left #parrot
18:59 lucian joined #parrot
19:01 jmcadams joined #parrot
19:06 s1n joined #parrot
19:07 chromatic Maybe we can port some ops to it.
19:11 atrodo Maybe
19:13 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 plobsing joined #parrot
19:13 chromatic That requires fixing #line processing in several broken C compilers.
19:14 mikehh CONST_STRING
19:14 mikehh damn
19:14 chromatic If someone wants to file a Cage Cleaner ticket to extract those into temporary variables and use them, that's fine too.
19:15 dalek rakudo: c50ac91 | moritz++ | build/Makefile.in:
19:15 dalek rakudo: [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?
19:15 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​50ac91490fe658d9354c783baa3e0844fd1b719
19:16 chromatic Offhand I don't know, this was probably in the RT days.
19:16 mikehh not just necessarily parrot ones
19:16 chromatic I know LLVM's clang had #line problems, but they may have fixed it now.
19:21 dalek rakudo: 0d3c66e | moritz++ | docs/release_guide.pod:
19:21 dalek rakudo: [docs] update release guide
19:21 dalek rakudo:
19:21 dalek rakudo:  * VERSION bumping
19:21 dalek rakudo:  * remove section on spectest numbers
19:21 dalek rakudo:  * update description of t/spec handling to git usage
19:21 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0​d3c66ef35eb12c60bbc29bd7aca565fd8101f0e
19:23 nwellnhof joined #parrot
19:23 nwellnhof Hmm, it seems that gc_massacre got merged with the provisional 256MB threshold.
19:24 nwellnhof I don't get a single GC run triggered during a Parrot build.
19:25 chromatic Parrot or Rakudo?
19:25 nwellnhof Parrot.
19:25 tadzik --debugging=0        Disable debugging, default = 1, from Configure.pl
19:26 tadzik so is it enabled or disabled by default?
19:26 moritz it's enabled by default
19:27 tadzik and that causes some performance loss?
19:27 chromatic debugging?  Yes.
19:28 tadzik alright
19:28 ash_ does --optimize turn off debugging?
19:28 chromatic I believe so, yes.
19:29 * moritz doesn't believe so
19:31 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
19:32 nwellnhof The 256MB threshold is also an utter waste of memory for many programs.
19:33 nwellnhof 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
19:33 chromatic Please do.
19:33 chromatic I thought optimize defined NDEBUG.
19:33 tadzik well, the /usr/bin/parrot md5sum is different after adding --debugging=0
19:33 nwellnhof afk # for another round of drinks
19:34 nwellnhof left #parrot
19:46 theory joined #parrot
19:48 chromatic I usually check the Makefile to see the flags themselves.
19:48 chromatic -DNDEBUG at the end of my CFLAGS
20:03 patspam joined #parrot
20:06 Khisanth left #parrot
20:09 ruoso left #parrot
20:12 Khisanth joined #parrot
20:15 kid51 left #parrot
20:18 silug joined #parrot
20:25 dalek winxed: r666 | NotFound++ | trunk/winxedst1.winxed:
20:25 dalek winxed: optimize if for some common conditions
20:25 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=666
20:25 NotFound Here comes the winxed of the beast...
20:26 dalek parrot: r49276 | plobsing++ | trunk (7 files):
20:26 dalek parrot: separate different types of PackFile_ConstTable_rlookup
20:26 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49276/
20:28 ruoso joined #parrot
20:29 ttbot Parrot trunk/ r49276 i386-linux-thread-multi make error http://tt.taptinder.org/file/cmdout/402030.txt ( http://tt.taptinder.org//bui​ldstatus/pr-Parrot/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 #parrot
20:30 NotFound ash_: What do you mean by "the encoding of the interp" ?
20:30 ash_ http://trac.parrot.org/parrot/changeset/49252
20:31 NotFound ash_: please don't show me my own code as explanation X-)
20:33 ash_ oh
20:33 ash_ wasn't the issue that the interp doesn't set the encoding to utf8?
20:33 ash_ i might be thinking of the wrong problem, if its even a problem
20:34 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:35 NotFound 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?
20:36 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
20:37 ash_ good point
20:37 NotFound And what if a lot of code breaks because no one expect that default encoding change?
20:39 ash_ hmm
20:39 ash_ well, how would one go about setting the encoding anyway?
20:39 NotFound I think the filehandles approach is workable, but needs wide discusion.
20:40 NotFound To follow the principle of less surprise, we need to know what people will expect.
20:41 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:42 NotFound ash_: if you excpet ascii, why were you surprised by the problem with rakudo interactive mode?
20:43 ash_ i wasn't, but someone using the try.rakudo.org site tried printing polish, and it got garbled
20:43 dalek parrot: r49277 | plobsing++ | trunk/src/packout.c:
20:43 dalek parrot: fix assertions. 0 is allowed as well
20:43 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49277/
20:43 theory joined #parrot
20:43 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:44 ash_ 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.
20:44 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
20:46 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:47 ash_ well, its working now
20:47 ash_ but i had to configure parrot without readline
20:47 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.
20:48 NotFound For windows, I don't know what to do.
20:49 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:50 Andy left #parrot
20:51 whiteknight left #parrot
20:54 NotFound What's the url? http://try.rakudo.org/ ?
20:55 ash_ yup
20:55 dalek roast: 29b04a9 | moritz++ | S0 (4 files):
20:55 dalek roast: fix tests for Bool stringification
20:55 dalek roast: review: http://github.com/perl6/roast/commit/29​b04a9899223e741077fd98dbcc1789018b2735
20:55 NotFound Doesn't load.
20:55 ash_ ya... i am having some timeout issues
20:55 ash_ one sec
20:55 M_o_C joined #parrot
20:56 M_o_C left #parrot
20:58 ash_ try it now
20:59 ash_ say 'Zażółć gęślą jaźń' is an example someone tried that wasn't working before
20:59 ash_ and it still not working on the live server, but on my test server i fixed it
21:00 jan joined #parrot
21:01 dalek rakudo: 40d0d49 | moritz++ | src/builtins/Bool.pir:
21:01 dalek rakudo: make True and False stringify as Bool::{True,False} as per spec
21:01 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​0d0d49983cf70038a472c567570a9b0e2fde4db
21:01 dalek rakudo: a820a44 | moritz++ | src/builtins/Bool.pir:
21:01 dalek rakudo: Merge branch 'bool-str'
21:01 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/a​820a447622bbe4ae19161f7de2a623523e07769
21:03 NotFound The problem is that I don't know enough perl6 do check what is doing.
21:04 ash_ thats fine, i have logs that tell me what crashes the server
21:05 ash_ that was one of the things that crashed it before
21:05 ash_ the polish characters
21:05 jnthn Guess it made you polish your code a bit. :-)
21:05 ash_ ya
21:06 ash_ sleep 15 # or any number > 15 works like it should now, the server considers that a timeout and kills the repl
21:06 ash_ and restarts it, so you can keep playing, but it does kill it properly
21:11 NotFound How can I get the length and bytelength of a string in perl6?
21:12 ash_ .chars
21:12 ash_ for length
21:12 ash_ bytelength is... i don't know...
21:13 ash_ oh, in windows i  found how to get the default encoding
21:13 Andy joined #parrot
21:13 ash_ you have to query the win32 api for LOCALE_USER_DEFAULT
21:14 NotFound say "Julián".chars; -> 7
21:14 NotFound Wrong
21:14 ash_ rakudo: say "Julián".chars;
21:15 p6eval rakudo 0d3c66: OUTPUT«6␤»
21:15 NotFound But in command line it says 6
21:15 ash_ hm...
21:15 ash_ i am use a month-ish old version of rakudo...
21:15 bluescreen left #parrot
21:15 ash_ on the server, i'll update that
21:15 ash_ can't hurt
21:15 NotFound I've built it right now with parrot trunk.
21:16 ash_ is current trunk saying 7?
21:16 NotFound No, it says 6. The web says 7
21:17 tadzik web uses repl
21:17 * ash_ updating try.rakudo.org
21:17 NotFound $ ./perl6 --encoding=iso-8859-1
21:17 NotFound > say "Julián".chars;
21:17 NotFound 7
21:18 NotFound Looks like rakudo is using its own way to recode things.
21:18 NotFound You can try to use --encoding=utf8 on try.rakudo.org
21:19 ash_ ash@feather3:/var/www/try.rakudo.org/frontend$ ~/Projects/rakudo/perl6
21:19 ash_ > say "Julián".chars;
21:19 ash_ 6
21:19 ash_ weird, i wonder why the website says 7
21:20 ash_ 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 #parrot
21:21 ash_ that sounds probable
21:22 NotFound Using an explicit --encoding=utf8 may be the appropiate solution.
21:23 ash_ hmmm, i set it, but its still returning 7
21:26 ash_ it has something to do with my p6safe script that sets rakudo into safemode
21:26 ash_ http://github.com/moritz/try.rakudo​.org/blob/master/backend/p6safe.pl is the script, it overrides a bunch of file IO ops in pir to make sure people can't do "bad things"
21:27 ash_ but it's not respecting --encoding=utf8 for some reason
21:29 NotFound my $*ARGFILES = open '../frontend/data/input_text.txt'; What does this?
21:29 ash_ sets stdin to be the contents of the file
21:29 ash_ so if you try to read from stdin you get something useful
21:29 ash_ rakudo: say lines
21:29 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
21:29 p6eval ..Herzen …
21:29 ash_ its that text
21:30 NotFound open has some way to specify text mode?
21:31 ash_ ya, you mean like read it as binary data right?
21:32 NotFound It may be.
21:33 ash_ thats not the repl part, thats just text for stdin, Perl6::Compiler.interactive(); starts the repl
21:35 NotFound Yeah, but the problem seems to be that is not using the encoding for its input.
21:36 ash_ the repl still uses stdin as its input, the $*ARGFILES is for all perl6 related io functions
21:39 mikehh left #parrot
21:39 NotFound How do you pass named parameter to a sub in perl6?
21:39 tadzik sub(foo => 'bar')
21:39 tadzik or sub(:foo<bar>)
21:39 tadzik TIMTOWTDI, as always
21:40 sorear sub(|($foo => $bar)) if you need a variable name
21:40 sorear sub(:$foo) if you want to pass $foo with the name 'foo'
21:40 ash_ if the server goes down, its my fault, i am upgrade rakudo (and parrot)
21:40 sorear sub(|%foo) if you have a few named parameters in a hash
21:41 NotFound ash_: try this: Perl6::Compiler.interactive(:encoding<utf8>);
21:42 ash_ prints 6 now
21:42 NotFound Good
21:43 ash_ restarting the repl server
21:44 ash_ sweet i broke it /grubmles
21:44 NotFound say "Julián";
21:44 NotFound
21:44 NotFound Rakudo REPL has timedout... reaping.
21:45 ash_ i did make, not make install /duncehat
21:45 ash_ → say "Julián".chars;
21:45 ash_ 6
21:45 ash_ say 'Zażółć gęślą jaźń' works too now
21:46 NotFound say "Julián";
21:46 NotFound
21:46 NotFound Julián
21:46 NotFound Good
21:47 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:48 NotFound ash_: What parrot is it using?
21:48 ash_ cat build/PARROT_REVISION
21:48 ash_ 49192 2.8.0
21:49 NotFound My fix for readline is 49252
21:50 NotFound 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
21:50 ash_ > say "Julián";
21:50 ash_ Julián
21:50 ash_ with readline and your patch
21:51 NotFound Someone with good knowledge of rakudo internals should take a look at the problem, then.
21:54 ash_ i'll file a bug report
21:54 tadzik left #parrot
21:55 NotFound In the meantime, try.rakudo.org is working, isn't it?
21:55 ash_ yup
21:56 NotFound World domination advances!
22:01 mikehh joined #parrot
22:01 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 ash_ NotFound++++
22:01 NotFound Good!
22:02 ash_ are the gc_massacre changes in trunk now too?
22:03 chromatic yes
22:03 ash_ wonder if it gives rakudo any speed boosts, i'll check
22:04 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 #parrot
22:05 ash_ jnthn: try again, the repl server was frozen
22:06 ash_ rakudo: print "æðđ»·”ĸþø"
22:06 p6eval rakudo 0d3c66: OUTPUT«æðđ»·”ĸþø»
22:06 ash_ thats what froze it
22:06 ash_ hmm
22:06 jnthn oh, was that me?
22:06 jnthn I tried
22:06 jnthn say "отлично!"
22:06 NotFound ash_: that is a friend from other channel I asked to do some test
22:07 ash_ i know what that is
22:07 ash_ ugh
22:07 NotFound He did: print ~æßðđæßðđŋđæßđ
22:07 ash_ print is bad :-(
22:07 mikehh neither purl nor aloha is currently in the channel
22:07 NotFound I told him say, but...
22:08 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 ash_ but print doesn't put in the extra \n
22:08 ash_ so my logic is wrong
22:08 jnthn o~"Bot silence is golden..."
22:09 mikehh jnthn: yeah but messages and karma is not being monitored
22:09 ash_ ask him to try again
22:09 ash_ the more he breaks it, the more i fix it :P
22:10 mikehh and questions are not being answered if youi have 'em
22:11 mikehh 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.
22:11 mikehh and you can always reemove some of the annoyances
22:11 plobsing for the few times I actually have to use that
22:13 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
22:13 NotFound ash_: nice, I need to learn some perl6
22:14 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:16 NotFound ash_: yeah, it works
22:18 patspam joined #parrot
22:19 Andy left #parrot
22:27 ash_ NotFound: .bytes returns the number of bytes in a string
22:27 ash_ say "Julián".bytes;
22:27 ash_ rakudo: say "Julián".bytes;
22:27 p6eval rakudo 0d3c66: OUTPUT«7␤»
22:28 sorear Bytes... in what encoding?
22:28 sorear My Perl6 impl uses UCS-2 most of the time
22:28 sorear opbots, names
22:29 ash_ it uses the default encoding, but you can specify an encoding too
22:30 ash_ 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␤»
22:46 mikehh NotFound: c++ objects to src/main.c line 404, -> else if (argc > arg + 14 [argc (int) and arg (const char * = argv[pos])]
22:48 NotFound mikehh: What's that supposed to do?
22:49 kid51 joined #parrot
22:49 kid51 ~~
22:50 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
22:50 mikehh chromatic
22:51 mikehh NotFound: yes comparing int to char *
22:51 s1n left #parrot
22:52 NotFound mikehh: I fail to understand his intention.
22:52 mikehh which of course c++ objects to
22:53 mikehh NotFound: not sure I do
22:54 mikehh NotFound:  I think he is trying to check for overflow or something, not sure that will work
22:55 mikehh chromatic: ping
22:55 chromatic pong
22:55 NotFound mikehh: well, I'll ve very surprised if argc is bigger that arg + 14 in any known OS ;)
22:55 mikehh I don't understand what you were doing in r49246, c__ objects to it
22:56 mikehh s/c__/c++/
22:56 mikehh or should i say
22:56 chromatic Yeah, for some reason I thought argc was the length of an element of argv.
22:57 NotFound I guess some reason is too much hours looking for optimizations.
22:57 chromatic strlen(arg) should be better there.
22:58 mikehh damnit - just dropped my wireless mouse under my desk and can't see it
22:59 davidfetter left #parrot
22:59 mikehh ah found it
22:59 NotFound mikehh: Just hold the wire... Oh, wait!
23:01 lucian left #parrot
23:01 NotFound chromatic: I think there is no need to that check, strncmp stops at string end
23:03 chromatic You're right.
23:06 chromatic That's not the problem though; the problem is trying to read past the end of that string.
23:07 chromatic /* arg should start with --gc-threshold *and* contain more chars */
23:07 chromatic else if (strncmp(arg, "--gc-threshold", 14) == 0
23:07 chromatic &&  strlen(arg) > 14) {
23:10 NotFound Mmmm... I think that checiking if arg[14] is, '\0', '=' or else will be a better check,
23:11 mikehh what you are checking for is that --gc-threshold has a valid argument
23:12 NotFound And that is --gc-threshold and not something like --gc-threshold-foobar
23:12 chromatic Right.
23:13 chromatic The next character could be '=' or the value could be in the next argument.
23:13 chromatic If the next character is anything other than '=' and there's no next argument, it's wrong.
23:13 NotFound Then the valid values are '=' and zero
23:13 chromatic Right.
23:14 NotFound And the strncpm check grants that [14] is not out of mem
23:15 mikehh is --gc_threshold = nnn valid?
23:15 chromatic It's invalid.
23:15 NotFound mikehh: I don't know any program that accepts that kind of options.
23:16 mikehh no whitespace then
23:17 NotFound mikehh: is not whitespace, viewed from argv[]
23:17 mikehh 'k
23:19 nopaste "chromatic" at 192.168.1.3 pasted "A better patch; passes t/run/options.t for me" (40 lines) at http://nopaste.snit.ch/23576
23:20 whiteknight joined #parrot
23:20 NotFound chromatic: looks good
23:21 whiteknight good evening, #parrot
23:21 sorear whiteknight++ # release
23:22 whiteknight sorear: You're always standing by with the karma!
23:24 dngor left #parrot
23:24 dngor_ joined #parrot
23:25 dalek winxed: r667 | NotFound++ | trunk/winxedst1.winxed:
23:25 dalek winxed: condition optimization also in do while
23:25 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=667
23:29 mikehh but we don't have no karma recordin' bot loaded at the moment :-{
23:31 bacek_at_work ~~
23:32 dngor_ is now known as dngor
23:32 dalek parrot: r49278 | chromatic++ | trunk/src/main.c:
23:32 dalek parrot: [main] Improved --gc-threshold arg processing.
23:32 dalek parrot: r42946 was okay, except for the parts that weren't.  This code is more explicit
23:32 dalek parrot: about what's necessary and why.  t/run/options.t should still pass after this
23:32 dalek parrot: commit.
23:33 dalek parrot: We need more testing of command-line options.
23:33 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49278/
23:36 whiteknight no karma bot? The only reason I hack on Parrot is for the karma
23:36 whiteknight screw this. I'm out of here
23:41 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!
23:49 dalek parrot: r49279 | mikehh++ | trunk/src/main.c:
23:49 dalek parrot: fix codetest failure - parentheses should not have space immediately
23:49 dalek parrot: after the opening parenthesis nor immediately before the closing parenthesis
23:49 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49279/
23:57 nopaste "kid51" at 192.168.1.3 pasted "gc_massacre branch: t/pmc/threads.t: failures on Darwin/PPC" (267 lines) at http://nopaste.snit.ch/23577

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

Parrot | source cross referenced