Camelia, the Perl 6 bug

IRC log for #parrot, 2012-04-12

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:22 eternaleye_ joined #parrot
00:23 alester joined #parrot
00:23 perlite joined #parrot
00:26 dalek Rosella: 1fdae0c | Whiteknight++ | src/ (4 files):
00:26 dalek Rosella: [Xml] A few TODO notes
00:26 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/1fdae0c039
00:26 dalek Rosella: 0bd8471 | Whiteknight++ | src/date/ (3 files):
00:26 dalek Rosella: [Date] Remove Date.to_total_seconds() method. It was wrong algorithmically and the result would easily overflow on a 32-bit machine. Add .day_of_year method and a new mechanism to get a TimeSpan
00:26 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/0bd847150e
00:26 dalek Rosella: 8fd5499 | Whiteknight++ | / (2 files):
00:26 dalek Rosella: [Date] Add two more tests for Date.diff(), showcasing the new method
00:26 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/8fd5499961
00:26 dalek Rosella: c941570 | Whiteknight++ | src/date/Date.winxed:
00:26 dalek Rosella: [Date] Document an assumption about years and add in a sanity check.
00:26 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/c941570f71
00:26 dalek Rosella: 3a80daf | Whiteknight++ | src/unstable/ (2 files):
00:26 dalek Rosella: [Parse] Rewrite parse_remainder. Don't go over the remaining string character by character. We can read it directly out of the string to save time
00:26 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/3a80dafe80
00:26 dalek Rosella: aa93173 | Whiteknight++ | src/ (5 files):
00:26 dalek Rosella: [Template] Rework the way we do template recursion. Template.Node.Master now has a .to_winxed_master routine which adds the code to the builder and returns the name of the generated sub. Assume winxed.compile() returns a PackfileView
00:26 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/aa93173316
01:45 moritz_ joined #parrot
01:46 nine joined #parrot
01:48 sri joined #parrot
01:53 ingy joined #parrot
01:57 slavorg joined #parrot
01:59 perlite joined #parrot
03:45 benabik joined #parrot
05:53 benabik Parrot on Mars: http://news.discovery.com/space/is​-this-a-parrot-on-mars-120411.html
05:57 tadzik "too accurate for chance". Yeah :)
05:57 tadzik nice
05:59 benabik And scientific proof of the Ballmer curve: http://medicaldaily.com/news/2012041​1/9496/alcohol-solving-skills-analyt​ical-thinking-creativity-study.htm
05:59 * benabik should be asleep.
06:00 tadzik no, keep linking :)
07:13 brrt joined #parrot
07:18 he_ joined #parrot
07:18 dngor_ joined #parrot
07:34 fperrad joined #parrot
07:40 lucian joined #parrot
08:22 lucian joined #parrot
08:26 _mayank joined #parrot
10:17 bacek joined #parrot
11:21 JimmyZ joined #parrot
11:26 JimmyZ joined #parrot
12:05 benabik joined #parrot
12:08 benabik o/ #parrot
12:08 JimmyZ \o
12:24 brrt joined #parrot
12:45 whiteknight joined #parrot
12:49 hercynium joined #parrot
12:50 whiteknight good morning, #parrot
12:51 JimmyZ good morning whiteknight
12:51 benabik o/ whiteknight
13:00 whiteknight good morning JimmyZ, benabik. How are you two doing today?
13:00 benabik Caffeinated.  ::=))
13:01 benabik whiteknight: How're you?
13:06 PacoAir joined #parrot
13:07 contingencyplan joined #parrot
13:13 whiteknight benabik: I got a really awesome optimization-related ticket in my queue this morning, so I'm happy about that
13:14 benabik Optimizations can be fun.  Is it "make blah faster" or "making blah faster broke things"?
13:14 whiteknight They've got this data importer that's chewing up over 2 gigs of ram and crashing trying to import an old set of customer order records
13:14 benabik That's LTA
13:15 moritz buy more RAM :-)
13:15 atrodo Buy less customers
13:15 whiteknight all those are good ideas
13:15 benabik I decided to track down a git bug this morning only to find that Junio rewound next for the next release and the bugs don't exist anymore.  Which is good, I guess.
13:16 whiteknight The algorithm here is looking like it's O(n^2) at least, reading in a list of all orders, then reading in a list of all existing orders and comparing keys
13:16 benabik Maybe I'll update my notes on PACT.  Have slightly different ideas of the layers now than I originally did.
13:16 whiteknight then reading in a list of all customer records and comparing keys on the orders
13:16 whiteknight benabik: really? I would love to hear your current thoughts
13:17 moritz whiteknight: that sounds like a hash would be helpful :-)
13:17 benabik whiteknight: Mostly flattening.  Origionally had a PAST -> POST -> Packfile, now I think PAST -> CFG -> Packfile makes more sense.  To some extent this is because my idea of Packfile is lower, and also I think the difference between the PAST and POST layers is really just abstraction and that can be handled by a transformation within the same layer.
13:18 moritz the old "clubbing somebody to death with an Uzi" thing
13:18 whiteknight moritz: exactly. I'm also going to null out data after it's done being used and manually trigger GC to kill it
13:19 benabik whiteknight: Hopefully that will actually kill it.  On one of my co-ops massive memory usage was tracked down to one guy who kept a list of every message his component saw.
13:20 whiteknight benabik: yeah, reading in a list of Order objects where all we really need to keep is a list of their IDs is wasteful and forces GC to mark those objects and keep them around
13:21 whiteknight and the original developer insisted on using an ORM that automatically loads more data than we need, instead of just using a SELECT id FROM orders query, that would have returned far less
13:21 benabik :-(
13:24 JimmyZ where is PACT repo?
13:24 benabik github.com/parrot/PACT
13:26 benabik It currently contains a random set of my ramblings, most of a disassembler, and the beginnings of a Packfile layer.
13:26 JimmyZ oh, I thought github.com/benabik/PACT
13:27 benabik I didn't actually start the repository.  :-D  I put up a gist that someone else (whiteknight, IIRC) turned into a repository to shame me into doing more with it.
13:27 whiteknight benabik: and it shamed you into an entire GSOC proposal
13:27 benabik (Or that's how it turned out at least, even if it wasn't his intention.)
13:27 benabik whiteknight: Yeah, well.
13:31 bluescreen joined #parrot
13:35 benabik We should put some thought into making REPLs easy.  I think we can manually fudge the lexical environment, but it would be nice if we could restore and entire context with new code.  It would require the compile half of the REPL to keep around information about register usage, obviously.
13:35 benabik Although I suppose that could cause an issue if the new line required more registers than the old...  I don't think register space is resizable...
13:35 benabik (Random thought of the day)
13:37 moritz well, at some point you have to think about what a new REPL line means
13:37 moritz if it goes into the same scope as the previous line, then most languages don't allow redeclarations of symbols
13:37 moritz if it goes into an inner scope, then one must flatten the scopes (if possible) to avoid memory leakage
13:38 benabik Playing with lexpads would probably make that simpler than trying to cart around registers.  Just deciding that the "normal" REPL uses all lexical variables is much simpler.
13:42 PerlJam The R, P, and L parts are all easy though  :)
13:44 benabik moritz: That's a good point.  I think least surprise says we should treat it as an inner scope and figure out how to flatten.
13:44 moritz that's what NQP and rakudo do
13:45 moritz though currently it's a bit broken wrt natively typed variables
13:47 benabik Well, we do have natively typed lexicals now, don't we?
13:53 moritz yes. The REPL code just doesn't handle them properly
13:56 JimmyZ joined #parrot
13:58 JimmyZ_ joined #parrot
14:17 mdupont joined #parrot
14:36 jashwanth joined #parrot
14:41 jashwanth joined #parrot
14:43 whiteknight opbots
14:44 whiteknight can somebody +o slavorg?
14:44 benabik Seem not to have op.
14:45 tadzik opbots
14:45 whiteknight much better, tadzik++
14:46 benabik preflex?
14:46 whiteknight benabik: it's like a reflex, but before something happens
14:46 benabik whiteknight: Yes, but why was it given voice?
14:47 benabik Seems to be a bot.  Never noticed it before.
14:47 whiteknight benabik: I don't know why it's +v. and not +o. We don't hear from preflex much
14:48 benabik Looks like most of the bots are +v
14:50 tadzik <obligatory joke about bacek and masak>
14:50 moritz patchbot and bugbot?
15:24 davidfetter joined #parrot
15:29 dngor joined #parrot
15:31 dalek rakudo/nom: 200926b | moritz++ | src/core/traits.pm:
15:31 dalek rakudo/nom: .HOW.WHAT is the same as just .HOW. Simplify
15:31 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/200926b9a5
15:31 dalek rakudo/nom: 05b1cb1 | moritz++ | src/core/Str.pm:
15:31 dalek rakudo/nom: native infix:<xx> operator
15:31 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/05b1cb1319
15:57 benabik We have ops to manipulate the lexinfo tables now, right?  (i.e. can create a new lexical scope without creating a new sub)
16:11 moritz I think mls++ did some work in that direction
16:11 benabik Awesome.  I wasn't imagining it.  mls++ indeed
17:01 PacoAir joined #parrot
17:19 _mayank joined #parrot
17:19 lucian joined #parrot
17:25 hercynium_ joined #parrot
17:27 hercynium__ joined #parrot
17:39 cotto ~~
17:40 bluescreen joined #parrot
18:04 Justin joined #parrot
18:04 Justin good afternoon
18:06 whiteknight hello Justin
18:12 dukeleto ~~
18:17 dalek rakudo/nom: b229580 | moritz++ | src/core/Str.pm:
18:17 dalek rakudo/nom: Revert "native infix:<xx> operator"
18:17 dalek rakudo/nom:
18:17 dalek rakudo/nom: This reverts commit 05b1cb13190b324bd4c718c2ecdbddb15b8a6994.
18:17 dalek rakudo/nom: It was wrong (misspelled the operator name), and causes
18:17 dalek rakudo/nom: segfaults when the operator name is fixed
18:17 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b22958003c
18:19 preflex_ joined #parrot
19:04 benabik We really need to remember introspection when we add features.
19:06 benabik If you try to get a lexical variable into the wrong type of register, it explodes.
19:06 benabik And there's no way to find out what type it is.  (other than trying repeatedly)
19:11 hercynium joined #parrot
19:12 cotto classy
19:12 benabik Aren't we though?
19:37 cotto who's our gsoc org admin?
19:37 benabik whiteknight, It hink.
19:37 cotto whiteknight?
19:38 cotto wfm.
19:38 benabik what does "maps" do in a pmclass?
19:38 benabik NQP has a class NQPLexPad that "maps LexPad".  I've added a method to LexPad but can't seem to access it on a NQPLexPad.
19:39 cotto hmmm.  not sure
19:40 benabik "Map the current PMC to a core PMC type for code declared in a particular
19:40 benabik HLL. May only be used together with the C<hll> modifier."
19:40 cotto sounds like the C-level equivalent of hll_map
19:41 benabik Yeah.  So it doesn't actually descend from it.  Fun.
19:58 benabik Why does interpinfo .INTERPUFNO_CURRENT_LEXPAD give me null?
19:58 benabik find_lex works...
20:04 estrabd joined #parrot
20:04 benabik Oh.  Because the _current_ sub doesn't have a lexpad.
20:10 benabik `METHOD INTVAL type_of(STRING *name)` in a PMC should be called `$I0 = $P0.'type_of'($S0)`, right?
20:11 benabik Disassembler to the rescue...
20:15 benabik Okay, better question.  Why is my METHOD INTVAL returning a LexInfo PMC?
20:17 benabik wait...  you don't use normal return from PMC methods, do you?
20:23 benabik Don't you all love to listen to me deal with Parrot guts?
20:23 benabik Hah, my method works now.  Blah.
20:47 PerlJam benabik: you can babble all day as long as you're making progress on something  ;-)
20:47 benabik PerlJam: I tend to ramble on while I search for answers just in case someone wants to pipe in with the answer.  :-D
20:50 PerlJam benabik: btw, I hope your PACT proposal makes.  (I'd also hope for 6model too, but you can't do both, so ...  )
20:54 dalek parrot: 0c99d32 | benabik++ | / (2 files):
20:54 dalek parrot: LexPad: Add register_type method
20:54 dalek parrot:
20:54 dalek parrot: This allows for the type of a lexical to be introspected before
20:54 dalek parrot: retrieval.  This is useful because attempting to store the lexical in
20:54 dalek parrot: the wrong type of register throws an error.
20:54 dalek parrot: review: https://github.com/parrot/parrot/commit/0c99d32436
20:55 benabik And just in time.  I have an appt.
21:14 PerlJam joined #parrot
21:24 perlite_ joined #parrot
22:00 plobsing joined #parrot
23:25 plobsing joined #parrot
23:36 whiteknight joined #parrot
23:36 whiteknight good evening, #parrot

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

Parrot | source cross referenced