Camelia, the Perl 6 bug

IRC log for #parrot, 2010-05-02

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 bacek Because original commit is lost.
00:00 chromatic True.
00:01 bacek Basically, "V" in "SVN" is almost lie. It's just set of snapshots...
00:01 chromatic That's because it tracks the wrong thing.
00:01 bacek Indeed.
00:03 chromatic What are you working on next?
00:03 bacek chromatic, nothing yet.
00:03 chromatic We should work on the sweep-free GC at some point.
00:03 chromatic On the PerformanceImprovements page, fixing vtable overrides is pretty easy.
00:04 bacek I'm thinking about GMS now. Just have to wrap my head around.
00:04 chromatic I don't think we need to go that far yet.
00:04 Whiteknight chromatic: I'm still not sure I understand your suggestions for improving vtable overrides
00:04 chromatic It's pretty easy.
00:05 chromatic We know when a class has a vtable override.
00:05 chromatic We know which vtable gets overridden.
00:05 bacek chromatic, I would like to see faster GC. And GMS is easy choice. (No compacting just yet)
00:05 chromatic I want to see GMS too, but I think that's a bigger project than sweep-free.
00:06 bacek About 300-500 lines of code.
00:06 chromatic Whiteknight, when a class gets a vtable override, we clone its existing vtable, then swap in a new function pointer that redispatches to the appropriate PIR override.
00:06 Whiteknight ah, that idea. I was thinking of something different
00:07 Whiteknight In that case, we're going to end up allocating a lot more vtable structures
00:08 chromatic Pick your poison: a few dozen more vtables or 5-6% of Rakudo runtime.
00:08 dalek tracwiki: v126 | bacek++ | Languages
00:08 dalek tracwiki: Move NQP into "retired" section
00:08 dalek tracwiki: http://trac.parrot.org/parrot/wiki/L​anguages?version=126&action=diff
00:08 dalek tracwiki: v6 | bacek++ | PerformanceImprovements
00:08 dalek tracwiki: Remove "immutable strings" from list.
00:08 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Perform​anceImprovements?version=6&action=diff
00:08 chromatic bacek, if you can do it in 500 lines of non-invasive code, so much the better.
00:08 chromatic I'm really curious to see how for plobsing can get with constant string coalescing in PBC.
00:09 chromatic s/for/far/
00:09 bacek chromatic, with using idea of "write barrier vtable" from SPJ it's doable in 500 lines.
00:09 chromatic Is that easy to describe on the wiki?
00:10 bacek it's easy to read whole paper.
00:10 chromatic I mean the plan for Parrot, not the paper.
00:10 bacek Ah. Yes.
00:11 Whiteknight chromatic: 1) we need to make vtables smaller, 2) We need to change the way they are allocated (not as a long linear array)
00:12 plobsing chromatic: the branch works except for :immediate :anon magic subs
00:12 Whiteknight Also, I wonder if there would be performance benefits for Rakudo to stop using vtable overrides entirely and just using method calls
00:13 Whiteknight method calls are already cached, use the same PCC mechanism, don't recurse into a new runcore, etc
00:14 chromatic That sounds like an argument against using core PMCs at all.
00:14 chromatic ... or at least extending them, or writing HLL mapped versions in PIR.
00:15 chromatic plobsing, what happens with the magic subs?
00:24 plobsing IMCC modifies the constant *after* adding it to the packfile but before serializing the packfile
00:24 dalek tracwiki: v1 | bacek++ | BacekTaskList
00:24 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Ba​cekTaskList?version=1&action=diff
00:24 dalek tracwiki: v2 | bacek++ | BacekTaskList
00:24 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Ba​cekTaskList?version=2&action=diff
00:24 dalek tracwiki: v3 | bacek++ | BacekTaskList
00:24 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Ba​cekTaskList?version=3&action=diff
00:24 dalek tracwiki: v4 | bacek++ | BacekTaskList
00:24 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Ba​cekTaskList?version=4&action=diff
00:25 chromatic That means someone (read, "probably me") has to dive into IMCC?
00:25 plobsing I have a workaround that is almost up and running
00:26 plobsing although the magic subs don't get the optimization
00:27 chromatic We should be able to reenable the optimization.
00:28 plobsing if and when it becomes in the right order, it will automatically get the optimization
00:28 plobsing it's a simple matter of "string not found" ATM
00:31 kurahaupo joined #parrot
00:32 bacek chromatic, http://trac.parrot.org/parro​t/wiki/GenerationalMarkSweep initial brain dump
00:37 sorear chromatic: Do you want memory testing of new CodeString on the rakudobuild benchmark?
00:41 dalek tracwiki: v1 | bacek++ | GenerationalMarkSweep
00:41 dalek tracwiki: Initial cut of GMS.
00:41 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Genera​tionalMarkSweep?version=1&action=diff
00:41 dalek tracwiki: v2 | bacek++ | GenerationalMarkSweep
00:41 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Genera​tionalMarkSweep?version=2&action=diff
00:47 chromatic sorear, that'd be helpful thanks.
01:08 Rahly joined #parrot
01:13 tetragon joined #parrot
01:15 eternaleye joined #parrot
01:35 Andy joined #parrot
01:45 bacek chromatic, do you have any written stuff for "sweep-free GC"?
01:46 Andy hey bacek
01:47 bacek Aloha Andy
01:47 Andy so much consting done
01:47 Andy so much more to do
01:47 chromatic There's a page on the wiki for it, bacek.  I don't remember the name.
01:47 bacek chromatic, found it
01:47 bacek Andy, "job security"!!! :)
01:51 bacek chromatic, looks like tri-colour mark.
01:58 chromatic Yeah, it's similar.
01:59 Psyche^ joined #parrot
01:59 bacek why do we need FRESH list?
01:59 bacek Let's just put new PMCs into MAYBE list.
02:01 chromatic The idea is to use a list as the youngest generation.
02:02 bacek but then we just merge it into MAYBE list
02:03 chromatic After a full mark, we know that nothing on that list is alive.
02:03 bacek On MAYBE? Yes. On FRESH? Not sure.
02:04 chromatic If we detach FRESH at the start of a GC run, so any GCables allocated after that point go on a new FRESH, we do.
02:05 bacek We don't allocate new GCable during mark.
02:05 chromatic Hopefully.
02:05 purl i heard hopefully was lightweight.
02:05 chromatic And only because we stop the world.
02:06 bacek It's true.
02:06 bacek Yeah, it make sense in "non-stop" world.
02:07 chromatic I'm trying to drag the current GC kicking and screaming into a concurrent world.
02:07 bacek chromatic, it easier to kill it...
02:07 chromatic Right, but we have to replace it first.
02:11 bacek Oookey. I'll look at it close tonight.
02:11 bacek It will be a good step forward for GMS anyway
02:13 chromatic It's not the best GC in the world, but it's an achievable step right now that should get us 10% performance.
02:14 bacek I'm not sure about 10%... But it should be faster.
02:15 bacek Do you have any benchmarks that I can use?
02:21 sorear chromatic: Didn't you just add a mark-time STRING header allocation?
02:35 chromatic Yep.
02:36 dalek TT #1605 created by bacek++: Documentation for buffers in include/parrot/pobj.h is outdated.
02:36 dalek TT #1605: http://trac.parrot.org/parrot/ticket/1605
02:47 janus joined #parrot
02:52 Themeruta joined #parrot
02:52 parthm joined #parrot
03:19 darbelo joined #parrot
03:30 dalek parrot: r46212 | plobsing++ | branches/pbc_frozen_strings1 (7 files):
03:30 dalek parrot: workaround for :immediate :anon magic subs
03:30 dalek parrot: use a special marker const table index of -1 to indicate inline string use because the string isn't in the constant table
03:30 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46212/
03:30 Coke joined #parrot
03:30 Coke left #parrot
03:33 sorear "insert integer generation field into PObj"
03:34 sorear does this mean that generational GC is +10% memory usage unless compiled out?
03:35 parthm joined #parrot
03:37 sorear Is it a bug that 'realclean' doesn't remove all built files?
03:44 plobsing sorear: which files exactly?
03:45 sorear extra_thunks and json something
03:46 plobsing hmmm... yeah, that's a bug, and those are both things I've touched recently
03:46 sorear hmm
03:46 sorear the parrot-installer seems to be trying to install executables with 'cp'
03:57 plobsing sorear: I just ran a 'make; make realclean' and I cannot find any files with names containing 'extra_thunks' or 'json' that look like they don't belong
04:01 darbelo plobsing: svn st --no-ignore
04:02 darbelo We have some too-wide ignores.
04:02 plobsing darbelo: I used "ack -f -G extra_thunks"
04:02 darbelo If I do a make realclean && svn st --no-ignore I get
04:02 darbelo I      runtime/parrot/languages/data_json
04:02 darbelo I      src/extra_nci_thunks.c
04:03 darbelo ... and some editor backup files that I never removed.
04:03 plobsing ah! so many files I never cleaned!
04:09 darbelo Heh, they do tend to pile up.
04:10 darbelo They are like hairy yaks in that way.
04:10 plobsing yeah I now see the cost of my use of patches as a wish-it-were-git substitute
04:12 sorear this is bizarre
04:13 sorear running the codestring branch, rakudo compiled in similar time to trunk
04:13 sorear including the setting
04:14 darbelo setting?
04:14 purl well, setting is a bit of a put-off, though.
04:14 sorear but when it got to generating Test.pir?  it's currently using all but 4MB of my memory
04:14 sorear and has been for several minutes
04:15 sorear you'd think it would have run out bby now; 4MB doesn't usually last long
04:16 darbelo What are you using to monitor mem usage?
04:18 sorear darbelo: Perl6 standard library.  Several thousand lines of a nd a huge stress test FOR Parrot's memory manage
04:18 sorear darbelo: 'free'
04:18 sorear cross-checked with system responsiveness
04:19 sorear notice the lack of typo correction in the last few lines :/
04:19 darbelo My guess is that it needed that much at some point, then it didn't and now it has a big-ass free pool to use.
04:21 darbelo A smart gc would probably free() that stuff back to the OS at some point.
04:21 darbelo But I will not accuse our gc of being smart enough to do anything.
04:21 darbelo I learn from the past.
04:22 darbelo I also saw the commit message fro chromatic's commit to that branch.
04:23 sorear Our gc does free stuff back to the OS; I've seen it happen
04:25 sorear after grinding for half an hour it then segfaulted
04:25 darbelo Sure it does, but from what pool and under what conditions? I don't know, and I'm not going to assume correctnes without reading the code.
04:26 sorear in String.set_string_native
04:27 darbelo I would dig up as much info as I can on that and msg Coke with it.
04:28 bacek GC release stuff back to OS at least from string pools
04:29 sorear meanwhile, gdb has forgotten how to turn addresses back into function names, so getting a working backtrace will be Hard
04:30 darbelo String storage is compacted, headers aren't. Even if most of the header pool is empty it has to keep the memory.
04:30 bacek OTOH, I suspect compact_pool vs CodeString "miscommunication". New compact_pool is less precise than before. And CodeString in branch create much more long-lived Strings.
04:31 sorear I'm running codestring branch, not trunk
04:31 darbelo CodeString now concats stuff during mark() too. So that the substrings can get collected in the next sweep. That might explain a big jump on memory usage, followed by a decrease.
04:31 sorear so I don't think I've seen the compact_pool merge
04:32 bacek it was merged into trunk recently.
04:33 bacek r46077  on 27th of April
04:33 darbelo Speaking of bleeding^Wmerges...
04:33 sorear Who is --ANR?
04:33 sorear bacek: merged into trunk.  not, merged into codestring
04:33 sorear unless it was merged
04:34 bacek sorear, "Allison N. Randal"
04:34 bacek sorear, I think codestring was branched after merge
04:34 * sorear wonders if there's a svn way to find out if a given individual change has been merged into a given branch
04:34 bacek not in svn I think
04:35 darbelo diff?
04:35 purl diff is that a burned cat is not as attractive as scarlett johannsen  that a burned cat is also more likely to get its kit off
04:35 plobsing step 1) import into git
04:35 dalek parrot: r46213 | plobsing++ | trunk/config/gen/makefiles/root.in:
04:35 dalek parrot: remove untracked files in realclean
04:35 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46213/
04:35 dalek parrot: r46214 | gerd++ | trunk (4 files):
04:35 dalek parrot: Replace the sed command with perl code. Move the writing of TEX-code form the file book-to-latex.pl to the file filename_and_chapter.pl, so the commands in the Makefile can be reduced
04:35 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46214/
04:38 sorear it gets better. ./perl6 segfaults immediately on execution.
04:40 sorear yay, finally getting gcc to spit out function names
04:41 sorear the same address is repeating, over and over again
04:41 sorear Parrot_String_set_string_native is infinitely recursing
04:42 sorear ummm... no duh
04:42 sorear Parrot_String_set_string_native  contains SELF.set_string_native as a fallback case !!
04:45 bacek Niiiiice...
04:48 fperrad_ joined #parrot
04:50 * darbelo can't handle recursion, so he delegates to himself all recursive tasks.
05:04 LoganLK joined #parrot
05:23 nopaste "bacek" at 192.168.1.3 pasted "sorear, can you try to build rakudo with this patch?" (25 lines) at http://nopaste.snit.ch/20429
05:38 sorear bacek: Erm, what?
05:38 purl Erm, is it
05:38 sorear That patch defeats CodeString's reason for existing
05:38 bacek sorear, nopasted patch for CodeString. I hope it will "improve" memory usage in rakudo
05:39 bacek sorear, it is not. Main reason is to avoid subsequent calls to str_concat afaiu
05:40 sorear but... with your patch, every push is an immediate concat
05:41 bacek no, every .emit is
05:41 bacek But usually C<fmt> will contain a set of %args to replace.
05:42 jimmy joined #parrot
05:46 darbelo Do we have (or had), by any chance any Chinese or Japanese contributors?
05:46 bacek darbelo, JimmyZ just joined :)
05:46 JimmyZ \o
05:47 JimmyZ What can I help you? darbelo?
05:47 bacek JimmyZ, s/What/How/ :)
05:47 JimmyZ oh
05:47 JimmyZ How
05:47 JimmyZ Then how can I help you? darbelo?
05:47 darbelo I have a question about Asian character sets.
05:48 bacek JimmyZ, no worries. My son has started to correct my English already :)
05:48 JimmyZ darbelo: go on
05:49 darbelo I'm looking at some of the Unicode stuff and my head is starting to spin.
05:49 darbelo First off, how 'big' is the character set.
05:51 JimmyZ What does 'big' mean?
05:52 JimmyZ Do you mean how many characters is?
05:52 darbelo Number of 'characters' available, and stored in how many bits.
05:54 sorear bacek: I have a radical idea.  Let's kill the lazy concatenation engine and just use ResizableByteArray
05:54 sorear Note that PIR is a binary file format to begin with
05:54 sorear (since it has to assign encodings to each substring)
05:54 bacek sorear, StringBuilder is on todo list :)
05:55 sorear darbelo: We're not just going to use UTF-16 for CJK?
05:56 JimmyZ darbelo: 0x4E00-0x9FBB
05:56 JimmyZ darbelo: Does it answer your question?
05:56 JimmyZ it's unicode
05:58 darbelo JimmyZ: Kind of. I'm not getting a clear picture of what gets considered a "character", but maybe it's just that I'm trying to map it too closely to an alphabet.
05:58 sorear CJK characters are twice the area of Roman characters and require ~twice as many bits to represent
06:00 JimmyZ darbelo: I'm not quite follow it. I think you can ask Timdoady  about Japanese
06:01 JimmyZ darbelo: or masak
06:04 sorear Do you have any questions amenable to general addressing?
06:10 darbelo I have a general lack of knowledge about the languages involved, It's not a technical matter at all.
06:10 sorear ok
06:10 sorear asians write in monospace - you can lower a grid over their text and it looks neat
06:10 sorear 1 character ~= 1 box
06:11 sorear asians here != the geographic region
06:11 darbelo That I got. But I've seen what looks like two distinct characters squished into one box.
06:11 sorear That's one character
06:12 sorear I'm no expert and can't explain quite how it happens
06:12 sorear often, but not always, the meaning of a character with >1 component is similar to the composition of the parts
06:13 sorear but it's still treated as one character for grammatical (and encoding) purposes
06:13 spinclad or one part suggests, or used to suggest, the sound of the whole
06:13 sorear also, remember that lumping does not mean abstraction
06:14 spinclad in chinese, one character = one syllable = (more or less) one word
06:14 sorear there are important historical differences between the usage of "asian characters" between languages
06:14 sorear Japanese and Korean have both incompletely adopted phonetic alphabets
06:15 sorear there's a greater gulf better written and spoken forms in some areas
06:15 sorear etc.
06:15 darbelo So, the two squished things are one character (and hence one syllable) with a meaning different to the (two sylables) word that is formed by unsquising the things an placing them next to each other.
06:16 sorear there are something on the order of 100,000 known characters, but their usage is not at all uniformly distributed
06:17 sorear the Japanese journalism industry has a list of the kanji that educated people are expected to understand without definition.  It only has 2,000
06:17 sorear the practical upshot of this is that, unless you want to invent a 12-bit encoding of your own, UTF-16 is close to optimal
06:17 spinclad yes, the parts are called radicals; there are about 100 of them.
06:18 sorear non-BMP Han characters are quite rare
06:18 spinclad but it's the whole character that maps to a syllable/word
06:18 sorear from a purely data processing perspective, there's very little reason to use a DBCS encoding
06:20 sorear Right now, all of our charsets are (improper) subsets of Unicode
06:20 sorear I *strongly* recommend keeping this
06:21 sorear running some character sets off EBCDIC, others off Unicode, and others of JIS X 0213 would be pure insanity
06:22 sorear it's ok to have an EBCDIC or EUC-JP *encoding*, but if you ask what a character's ordinal is, the results should be coherent between strings
06:24 darbelo sorear: FWIW, it was a question out of idle curiosity, I'm not going to go off implementing 12-bit-densely-packed-hangul.
06:24 darbelo Nor EBCDIC, for taht matter.
06:26 darbelo It's just that the more I read on the subject of encoding asian languages the more of a mess it starts to seem.
06:27 sorear Hangul are a different kettle of fish altogether.
06:28 sorear And yes, encoding matters are always a mess.
06:28 sorear Luckily, it looks like the mess is starting to abide
06:29 sorear Non-UTF encodings are dying, by 2020 there will probably be less than 10 important encodings
06:33 parthm left #parrot
06:36 darbelo Honestly, from a purely pragmatical standpoint, and spoken withthe utmost respect to the culture that originated it: Any language that has a word for stuff like "the appearance of a dragon in flight" is optimizing for the wrong thing.
06:37 cotto You could make up a German word for that.
06:37 darbelo Can I reduce that to a single letter?
06:40 sorear Why is "whey" shorter than "interpreter"?  Lousy huffman coding knows no borders
06:43 * darbelo finds the only word he can think of at 3:45am is "sleep"
07:03 JimmyZ joined #parrot
07:20 cotto For most of human history the interpreter was the guy who let you talk to people of a different language.
07:20 cotto Clearly that's not something that needs to be optimized for. ;)
07:21 chromatic INTERP
07:24 cotto Given how frequently we refer to it, it should have a word like "bob".
07:32 chromatic X
07:32 chromatic Spelled chi
08:10 iblechbot joined #parrot
08:21 snarkyboojum joined #parrot
08:22 lucian joined #parrot
09:40 fperrad joined #parrot
10:14 Whiteknight joined #parrot
10:27 jsut joined #parrot
10:34 kjeldahl joined #parrot
10:35 parthm joined #parrot
11:13 Mokurai1 joined #parrot
11:47 joeri joined #parrot
12:25 iblechbot joined #parrot
13:32 kid51 joined #parrot
13:32 fperrad joined #parrot
13:38 ruoso joined #parrot
14:06 dalek parrot: r46215 | fperrad++ | trunk/include/parrot/thr_windows.h:
14:06 dalek parrot: [build] MinGW gcc 4.4.3 (shipped with Strawberry 5.12.0)
14:06 dalek parrot: rename guard HAVE_STRUCT_TIMESPEC to _TIMESPEC_DEFINED
14:06 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46215/
14:12 dalek tracwiki: v14 | fperrad++ | ListOfPlatforms
14:12 dalek tracwiki: http://trac.parrot.org/parrot/wiki/List​OfPlatforms?version=14&amp;action=diff
14:21 NotFound fperrad: ping
14:21 fperrad pong notfound
14:22 NotFound fperrad: identifiers starting with _ and an uppercase letter are reserved for the C implementation.
14:23 dalek parrot: r46216 | NotFound++ | trunk/src/pmc/oplib.pmc:
14:23 dalek parrot: register OPLIB_OPCODE_CACHE to avoid being collected while the singleton is still alive
14:23 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46216/
14:27 NotFound Oh, wait... This is a windows specific workaround for something?
14:27 fperrad this guard name comes from sys/timeb.h shipped with mingw 4.4.3,
14:28 fperrad and not included by old version like gcc 3.4.x
14:29 NotFound I suppose is fine, then.
14:30 NotFound But you forgot to update the comment at the #endif
14:36 jan joined #parrot
14:55 dalek parrot: r46217 | fperrad++ | trunk/include/parrot/thr_windows.h:
14:55 dalek parrot: update comment (fperrad--, notfound++)
14:55 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46217/
15:11 dalek nqp-rx: f8e8a77 | Coke++ | build/Makefile.in:
15:11 dalek nqp-rx: Don't check for missing parrot config item.
15:11 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/f​8e8a77c3eac82878d4eed3f1113ac09571d00c4
15:21 TrueFX joined #parrot
15:23 dalek rakudo: 925629d | jonathan++ | src/core/operators.pm:
15:23 dalek rakudo: Make $x does (R1, R2) work.
15:23 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​25629d85b44335afa0f9d4e50f3a8dbbd939c2e
15:23 dalek rakudo: b2476f7 | jonathan++ | src/Perl6/Grammar.pm:
15:23 dalek rakudo: Add a missing check so our scoped packages work as they should; allows us to run submethods.t again.
15:23 TrueFX hi guy
15:23 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b​2476f75dad3d2e5faa7d65296f35d13dc9cee13
15:23 dalek rakudo: 72ef184 | jonathan++ | src/metamodel/Role (2 files):
15:23 TrueFX hi guys
15:23 dalek rakudo: More fixing of multis composed from multiple roles.
15:23 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​2ef18484d57a36518e51aacce503dbc7b4a92de
15:23 dalek rakudo: 7d700b4 | jonathan++ | t/spectest.data:
15:23 dalek rakudo: Turn on S12-methods/submethods.t.
15:23 TrueFX how is it going ?
15:23 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​d700b4a2d25d6db36c91218219ee9c983362f90
15:39 dalek winxed: r462 | julian.notfound++ | trunk/winxedst (2 files):
15:39 dalek winxed: predefine __STAGE__
15:39 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=462
15:43 lucian joined #parrot
15:47 moritz true or false: set_pmc_keyed is a $P0[$P1] = $P2 operation, ie both key and value are PMCs
15:55 NotFound moritz: $P0[$S1] = $P2 gives also a set_pmc_keyed operation, because pir assembles a key for the string.
15:56 moritz NotFound: is there any way to make that a set_pmc_keyed_string or so?
15:57 NotFound moritz: I don't think so. And don't know if there is a rationale for that.
15:58 kid51 joined #parrot
16:06 plobsing joined #parrot
16:25 tetragon joined #parrot
16:38 theory joined #parrot
16:48 isBEKaml joined #parrot
17:05 davidfetter joined #parrot
17:12 chromatic joined #parrot
17:17 tcurtis joined #parrot
17:54 dalek parrot: r46218 | NotFound++ | trunk/t/src/embed.t:
17:54 dalek parrot: better error reporting in embedding tests
17:54 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46218/
17:59 cotto seen kid51
17:59 purl kid51 was last seen on #parrot 1 days, 2 hours, 8 minutes and 44 seconds ago, saying: Those two files should have been governed by an svn:ignore property.  Committed fix in r46204.  [May  1 15:50:42 2010]
18:09 arnsholt seen pmichaud
18:09 purl pmichaud was last seen on #parrot 9 days, 17 hours, 1 minutes and 39 seconds ago, saying: cotto_work: (troll refutation)  Thanks.  :-)  [Apr 23 01:07:58 2010]
18:10 fperrad_ joined #parrot
18:12 dukeleto NotFound++ # that better error reporting looks very useful
18:13 NotFound dukeleto: yeah, I hope so.
18:27 dalek nqp-rx: ec48321 | moritz++ |  (2 files):
18:27 dalek nqp-rx: allow sub names to start with Q
18:27 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/e​c4832184bfca740f124080cd8760ebb4e9cd2d9
18:27 dalek nqp-rx: d6815bf | moritz++ | src/stage0/ (3 files):
18:27 dalek nqp-rx: update stage0 files
18:28 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/d​6815bffc2a3d15821fff535322e742954574603
18:31 fperrad joined #parrot
18:35 arnsholt Fun
18:36 arnsholt nqp: say(pir::typeof__sp("{1}"))
18:37 arnsholt Oh. ECHANNEL
18:53 arnsholt Is a NULL PMC when doing "assign $P26, $S25" expected/supposed to happen?
19:00 dalek rakudo: fad910a | moritz++ | src/Perl6/Grammar.pm:
19:00 dalek rakudo: Attemp to allow names starting with q, qq, Q etc.
19:00 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​ad910a072d05110da0135193165c63552ebc9be
19:02 jsut_ joined #parrot
19:10 kurahaupo joined #parrot
19:17 dalek parrot: r46219 | moritz++ | trunk/ext/nqp-rx/src/stage0 (3 files):
19:17 dalek parrot: [nqp] update stage0 file; allows subroutines that begin with Q or q
19:17 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46219/
19:30 dalek rakudo: f82af0b | jonathan++ | src/ (2 files):
19:30 dalek rakudo: Somewhat unbreak candidate introspection on multis.
19:30 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​82af0b588d83a68afc228c9c3b13d1d1e3ef89e
19:31 NotFound arnsholt: the expectation is that you assign to something non null.
19:32 arnsholt Ah, right
19:41 dalek rakudo: 8abe0a6 | moritz++ | src/core/Regex.pm:
19:41 dalek rakudo: Regexes in boolean context match against $_
19:41 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​abe0a6b7988d47dfe758bf3492e182f8cb98048
20:06 plobsing joined #parrot
20:14 chromatic joined #parrot
20:15 kurahaupo joined #parrot
20:35 plobsing string PMC has a .lower() method for downcasing but no equivalent method for upcasing.
20:35 plobsing Should it lose the method (we have other ways of doing this, HLLs can do this on their own) or do we add an .upper() method for consistency?
20:40 darbelo What HLLs would break if you remove it?
20:41 Whiteknight I say trash it
20:41 plobsing do any HLLs work against trunk ATM?
20:41 darbelo Good point.
20:42 darbelo Break 'em all.
20:42 chromatic By "Trash" you mean "Add to DEPRECATED.pod" of course.
20:42 moritz rakudo does, kindof
20:43 moritz it's just horribly slow to compile, and eats lots of memory
20:43 moritz didn't we have that before?
20:43 darbelo So, it's back to normal ;)
20:43 chromatic Hm, parallel make of parrot-nqp fails make: ./pbc_merge: Command not found
20:44 kurahaupo joined #parrot
20:46 NotFound Winxed works fine against trunk.
20:46 sorear moritz: Oh?  I've been running rakudo against trunk
20:46 sorear Hadn't noticed anything too amiss
20:46 sorear rakudo is completely broken on the codestring branch, though
20:47 plobsing NotFound: speaking of winxed, does it uppercase and lowercase strings?
20:47 NotFound Lowercase yes, uppercase... let me check.
20:48 plobsing s/does/how does/
20:49 NotFound I was fooling myself, it doesn't directly but invoking the String method.
20:50 NotFound Time to add two new predefs.
20:51 chromatic plobsing, good numbers on the pbc_frozen_strings1 branch./
20:53 moritz I can#t compile rakudo anymore with a ulimit of 1GB virtual mem
20:53 moritz Failed allocation of 1544627136 bytes
20:53 moritz Parrot VM: PANIC: Out of mem!
20:55 plobsing oh my, I didn't think it would improve that much
20:55 chromatic That's about what I expected.
20:58 plobsing OK, if rakudo is working against trunk, I'd like to test rakudo against the branch. If everything goes well, I'll merge it later tonight.
20:59 chromatic I'm trying that now.
21:07 chromatic Looks like about 350 MB to build core.pir
21:08 sorear 350MB for core.pir is what I see
21:08 sorear r46214
21:10 chromatic plobsing, will building PBCs take a lot longer?
21:17 dalek winxed: r463 | julian.notfound++ | trunk/winxedst (2 files):
21:17 dalek winxed: new predefs upcase, downcase and titlecase
21:17 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=463
21:17 chromatic Hm, looks like Rakudo starts up some 25% faster, but don't quote me on that.
21:18 chromatic No, I can't verify that.  At least 5.6% faster.
21:19 chromatic 93.338% fewer unique STRINGs thawed from PBC though.
21:21 chromatic 38.5% fewer GCables allocated.
21:26 NotFound 894704 bytes winxedst1.pbc in trunk - 828560 in the branch
21:26 NotFound 836192 bytes winxedst2.pbc in trunk - 769984 in the branch
21:42 dalek rakudo: a4112c2 | jonathan++ | src/ (2 files):
21:42 dalek rakudo: First hacky cut of named enums. Mostly just works like a bunch of constant declarations, kinda. It's certainly not what we want in the long run, but it removes a blocker for much of the app cheese.
21:42 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/a​4112c2426ba7a09b9f751f15aba5052c35276c8
21:42 dalek rakudo: 7ec16e1 | jonathan++ | src/core/Regex.pm:
21:42 dalek rakudo: Merge branch 'master' of github.com:rakudo/rakudo
21:42 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​ec16e10b5a8c28d32d066818033fd916f7ceb59
21:56 snarkyboojum joined #parrot
22:00 plobsing msg chromatic yes, PBCs will be more costly since there's a bunch of iterations over the constant tables. We could mitigate the cost with a hash if it is deemed too costly.
22:00 purl Message for chromatic stored.
22:02 jsut joined #parrot
22:18 dalek parrot: r46220 | plobsing++ | branches/pbc_frozen_strings1 (233 files):
22:18 dalek parrot: sync with trunk
22:18 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46220/
22:23 dalek rakudo: 2acc11d | jonathan++ | src/Perl6/Actions.pm:
22:23 dalek rakudo: Fix problem with calling things in the setting from BEGIN blocks.
22:23 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​acc11d3d5ecff7cedc34977be62180c584bfe60
22:34 dalek parrot: r46221 | plobsing++ | branches/pbc_frozen_strings1/PBC_COMPAT:
22:34 dalek parrot: bump PBC compat
22:34 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46221/
22:59 bacek ~~
22:59 bacek moritz, interesting rakudo master + parrot trunk topped on about 360 megs for building core.pir. (i386/Linux)
23:15 dalek rakudo: 7b1a064 | jonathan++ | src/Perl6/Compiler/Signature.pm:
23:15 dalek rakudo: Fix placeholder paramters bug when the same placeholder parameter was mentioned twice in a block (was treated as two different parameters; now correctly as one).
23:15 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​b1a0645879dffb666a995ba41cf5fe865e49b5f
23:24 dalek parrot: r46222 | plobsing++ | branches/pbc_frozen_strings1/t/native_pbc (4 files):
23:24 dalek parrot: mk_native_pbc
23:24 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46222/
23:29 Austin_away joined #parrot
23:36 theory joined #parrot
23:40 dalek parrot: r46223 | jkeenan++ | trunk (2 files):
23:40 dalek parrot: [codingstd] No trailing whitespace permitted.
23:40 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46223/
23:56 dalek parrot: r46224 | jkeenan++ | trunk/tools/docs/filename_and_chapter.pl:
23:56 dalek parrot: [codingstd] Parrot coding standards, FBOW, tell us to avoid global filehandles
23:56 dalek parrot: and the 2-argument form of 'open'.  Correcting this file.  This file still
23:56 dalek parrot: fails to pass perlcritic.t due to subroutine prototypes, but I don't yet know
23:57 dalek parrot: enough about what this file does to eliminate them myself.
23:57 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46224/
23:59 aninhumer joined #parrot
23:59 aninhumer left #parrot

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

Parrot | source cross referenced