Camelia, the Perl 6 bug

IRC log for #parrot, 2011-08-22

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:18 theory joined #parrot
01:20 dalek Rosella: 3e10241 | Whiteknight++ | src/ (3 files):
01:20 dalek Rosella: Rethink some parts of InterfaceContract. Add methods to do normal runtime checks, in addition to assertions
01:20 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/3e1024114a
01:20 dalek Rosella: 9187d4c | Whiteknight++ | s (5 files):
01:20 dalek Rosella: Add in the basics of a new Reflect library, for doing some basic reflection tasks
01:20 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/9187d4cca2
01:33 dalek Rosella: a56c631 | Whiteknight++ | src/unstable/reflect/Class.winxed:
01:33 dalek Rosella: set_attr -> set_attr_value for consistency
01:33 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/a56c6315e5
01:36 kid51 joined #parrot
01:40 woosley joined #parrot
01:45 benabik Okay, I'm lost.  I can't figure out why special_variable:sym['$<'] is getting generated as special_variable:sym<Capture[0x…]>
01:45 dalek parrot: 1d8f2c4 | jkeenan++ | / (5 files):
01:45 dalek parrot: Merge branch 'tar_shasum'
01:45 dalek parrot: review: https://github.com/parrot/parrot/commit/1d8f2c4b5c
01:45 dalek parrot: 9a0ee63 | jkeenan++ | tools/release/sha256sum.pl:
01:45 dalek parrot: [codingstd] Add copyright notice and perl coda.
01:45 dalek parrot: review: https://github.com/parrot/parrot/commit/9a0ee63fc6
02:02 logie joined #parrot
02:19 benabik msg pmichaud NQP is generating incorrect code for `sub a:b['c']`, which impacts Rakudo's grammar.  I tried to track it down but couldn't figure it out.  Submitted a github issue with details: https://github.com/perl6/nqp/issues/22
02:19 aloha OK. I'll deliver the message.
03:05 logie joined #parrot
03:09 cotto ~
03:48 bubaflub joined #parrot
04:25 bubaflub joined #parrot
04:34 rfw joined #parrot
04:42 logie joined #parrot
05:19 pbaker2 joined #parrot
05:29 benabik msg whiteknight I blogged about the pile of thoughts I've had about PCT.  http://www.parrot.org/cont​ent/end-gsoc-not-time-stop...
05:29 aloha OK. I'll deliver the message.
05:31 dalek website: benabik++ | End of GSoC, but not Time to Stop...
05:31 dalek website: http://www.parrot.org/cont​ent/end-gsoc-not-time-stop...
05:34 tadzik benabik: have you used tree-optimization?
05:34 benabik tadzik: I'll admit I haven't…  But it, or a defendant of it should be used.
05:37 tadzik I'm curious if it's useful in action. Have anyone used it?
05:37 benabik It looked like bacek was using it in PIRate.
05:42 NotFound "PACT should support system-level languages" -> Being able to write a winxed backend using PAST will be nice.
05:43 benabik NotFound: Yes, yes, that was exactly what inspired that line.
06:22 fperrad joined #parrot
06:41 rfw joined #parrot
06:43 Kulag joined #parrot
06:48 contingencyplan joined #parrot
07:02 Kulag joined #parrot
07:16 Drossel joined #parrot
07:33 dalek winxed: 8632e2c | NotFound++ | / (2 files):
07:33 dalek winxed: syntax for implicit namespace declaration in class and namespace:
07:33 dalek winxed: borrowing from whiteknight++ fork, extending it to class,
07:34 dalek winxed: and modify scope search for class names in operator new
07:34 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/8632e2c41f
07:36 NotFound msg whiteknight Instead of applying the push request for dotted namespaces I've copied, modified, and extended it directly on my master, see 8632e2c41f
07:36 aloha OK. I'll deliver the message.
07:43 dalek winxed: 662d3d9 | NotFound++ | pir/winxed_compiler.pir:
07:43 dalek winxed: update installable compiler
07:43 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/662d3d9665
07:48 mj41 joined #parrot
08:20 JimmyZ joined #parrot
08:22 dalek rakudo/nom: 3b66c0f | moritz++ | / (5 files):
08:22 dalek rakudo/nom: lots of Cool methods, run cool-num.t
08:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3b66c0fb0c
08:24 SHODAN joined #parrot
08:26 Kulag joined #parrot
08:33 Drossel joined #parrot
08:37 Kulag joined #parrot
08:37 lucian joined #parrot
08:43 Drossel joined #parrot
09:11 dalek winxed: 183e21d | NotFound++ | winxedst1.winxed:
09:11 dalek winxed: simplify :multi generation
09:11 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/183e21d590
09:37 particle1 joined #parrot
10:15 lucian_ joined #parrot
10:39 jsut joined #parrot
10:57 preflex joined #parrot
11:20 kristian joined #parrot
11:38 rurban joined #parrot
11:48 Kulag joined #parrot
12:01 rurban joined #parrot
12:04 whiteknight joined #parrot
12:04 whiteknight mail.google.com
12:04 whiteknight oh great, firefox++
12:05 whiteknight good morning, #parrot
12:05 plobsing hmmm... I have snarky replies for shell commands, but this is new
12:12 dalek winxed: f8ce9e7 | NotFound++ | / (2 files):
12:12 dalek winxed: initial implementation of namespace operator
12:12 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/f8ce9e7340
12:16 atrodo I don't think i've ever entered mail.google.com, always gmail.com.  So much faster
12:17 whiteknight it's not just firefox, it's a symptom of a bigger problem. When you open multiple things at once, and they all take a while because windows-- blows, then things start popping up and stealing global focus while you're typing
12:17 whiteknight 100% awesome
12:18 whiteknight but if you have a program like firefox that's a huge memory hog, and you start typing, your input commands can get delayed enough to actually show up in a different window entirely
12:18 whiteknight 125% awesome
12:18 moritz I really loved my old fvwm configuration where I configured many programs to start up on a particular virtual desktop
12:18 moritz sadly that stopped working for a reason unknown to me :(
12:20 lucian joined #parrot
12:20 whiteknight plobsing: hows the inside-out-ctx thing going?
12:28 plobsing I've never really had a problem with firefox's memory usage. maybe it's because I view non-whitelisted sites with ads and scripts disabled.
12:28 atrodo whiteknight> Down with focus stealing programs!
12:29 plobsing whiteknight: I spent most of the weekend trying to get *_constants out of the context structure, only to have that turn out to be a net loss, since the context is still super-hot.
12:29 plobsing every op updates the context's pc
12:29 plobsing and I see no better place to keep the pc than in the context
12:31 plobsing whiteknight: right now, I'm hacking up a solution to the interp['packfile'] update problem
12:31 whiteknight plobsing: can we store that pc in the register frame too?
12:32 whiteknight or, store an opcode_t** reference to it in the interp, for easy lookup/set?
12:32 plobsing whiteknight: I'm not a big fan of that idea. it makes set ops potential jumps
12:32 plobsing and makes program analysis much harder
12:32 plobsing also, it is a raw pointer
12:32 whiteknight oaky
12:33 whiteknight in M0 world, I think that's similar to what they are planning. a PC register somewhere that you can set to
12:33 plobsing yeah, not a fan of that design decision for reasons stated above
12:34 whiteknight if we mark certain ops with "this is a jump" metadata, program analysis works just fine again
12:34 plobsing whiteknight: but we already have that with separate jump ops
12:34 plobsing they get tagged
12:34 whiteknight right. that's what I'm saying
12:35 whiteknight restrict most accesses to that register so it's only usable through tagged ops
12:35 plobsing statically or dynamically restrict?
12:35 plobsing I'd hate to see set_xyz have runtime checks
12:36 whiteknight When I say "register", I mean "data storage in the register frame memory block". Just because it's stored there doesn't mean it needs to be user-addressable like other registers
12:36 whiteknight the interp should know some arithmetic magic to access it, but we don't need to give the user that ability
12:36 plobsing ah, okay
12:37 whiteknight for example, have the PC be register $P(-1), and tell the user that using negative indices is a syntax error
12:37 whiteknight addressing internally is easy, user can't touch it
12:37 whiteknight and it's all allocated in a close, friendly memory block
12:37 plobsing hmmm... the way this is moving, why don't we just make contexts use manual_attrs and allocate these things inline
12:37 whiteknight I've wanted to do that for a very long time
12:37 plobsing s/these things/register bank/
12:38 plobsing in stead of flipping the relationship, we merge them.
12:38 benabik Morning, #parrot!
12:38 whiteknight contexts are too hot though, like you mention. even small changes in contexts require big changes in Parrot
12:38 whiteknight good morning benabik
12:38 whiteknight benabik: I read your post. I like your ideas. I would like to join your club
12:39 benabik whiteknight: Woo!  I have a club!
12:40 plobsing whiteknight: (re: $P(-1)) that assumes we trust the source of the PBC. also, how do you deal with opcode_t being unsigned?
12:40 plobsing and what is the point of holding it in a 'register' if it cannot be accessed?
12:41 whiteknight it's like the idea of merging the two allocations together. Just because they're stored in subsequent memory locations doesn't mean that they are all accessible through the same interfaces
12:41 benabik I keep coming to the idea that we're going to need a bytecode verifier at some point.
12:41 whiteknight that's just an implementation detail. Maybe I shouldn't call it a "register"
12:42 plobsing yes, that is what confused me
12:43 plobsing medium-term I can see making the context's pc much less hot by moving the update into ops and then only updating in ops that change the context or throw
12:44 plobsing for example add_i_i_ic wouldn't update the pc, because nothing in that op could care about accessing the pc
12:46 whiteknight yes, that's a great idea
12:46 whiteknight anything we can do to decrease accesses into the Context would be a major improvement
12:47 whiteknight any op that calls a vtable can potentially throw, so that might not end up being a very large savings
12:51 benabik Off to the dojo.  Will be back probably noonish to start writing up my PACT design.
12:51 whiteknight msg NotFound Awesome work on the dotted-namespace fix, the :multi cleanups, and the new namespace operator. NotFound++
12:51 aloha OK. I'll deliver the message.
12:58 bubaflub joined #parrot
13:12 dalek winxed: 11ffab8 | NotFound++ | winxedst1.winxed:
13:12 dalek winxed: replace getparrotnamespacekey function with method emitnamespace in Emit
13:12 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/11ffab8bcb
13:21 whiteknight NotFound: ping
13:21 NotFound whiteknight: pong
13:23 whiteknight NotFound: Awesome work this morning. I'm reading these commits and they are making me happy. I have two questions for you
13:23 whiteknight maybe three questions
13:24 NotFound Special offer of the day, ask two questions, one more question free!
13:24 whiteknight First, I think I'm going to close pull request 3, with the prefix:* operator. using var() is working very well for me
13:25 whiteknight unless there is anything there you want to keep around for reference
13:25 NotFound Ok
13:26 whiteknight okay, done. Second, the lambda syntax patch, pull request 5. Is that anything you are interested in merging, or should I abandon it?
13:27 NotFound Probably if we later decir to add such operator, the compiler will be changed and this version will be useless.
13:28 whiteknight if it's not rejected, I can update the patch, clean it up, make any changes you want, etc
13:31 NotFound I don't think that the kind of syntax that patch allows integrates well with winxed style, and given that it doesn't provide any new semantic...
13:32 whiteknight okay
13:32 NotFound The balance is towards easy reading.
13:34 whiteknight it's disappointing, but I understand
13:35 fperrad joined #parrot
13:38 whiteknight NotFound: Oh, I had a third question too.
13:39 whiteknight I would like to try to add more :multi features, like specific classes. Right now it only does NISP types
13:39 whiteknight But, we're going to need a syntax for that, and I need your input because there are too many options
13:40 NotFound whiteknight: Can't we start by using the multi modifier?
13:41 whiteknight function Foo[multi(["Foo";"Bar"])] (var bar) { } ?
13:41 NotFound If there is a multi, use it, if not, synthesize the default, like current.
13:41 whiteknight if we use that modifier, it will always be a MultiSub
13:41 whiteknight which is fine, but it's ugly
13:41 whiteknight or, we could simplify:
13:42 whiteknight function Foo[multi(Foo.Bar)](var bar) { }
13:42 whiteknight we can parse out the dotted identifiers in the multi modifier
13:43 NotFound multi("Simple") and multi(["More", "complex"]) will be the easier way, no need to special syntax.
13:43 whiteknight okay. we can do that
13:43 whiteknight I think we need to update parseModifier to handle the [] syntax
13:43 whiteknight but that's not too hard, I don't think
13:44 whiteknight Okay, I will work on that to start with. We can find something more pretty later, if we need to
13:44 whiteknight thanks. NotFound++
13:45 NotFound Setting the is multi flag if there is a multi modifier, even if there is just one with that name, isn't it?
13:45 whiteknight yeah, we have to do that
13:45 whiteknight I'll have to see what it looks like
13:46 NotFound After that, with real use cases, we can think aboout cleaner syntax.
13:47 whiteknight Rosella is going to have many use cases. And benabik is talking about rewriting PCT in winxed, which is going to bring more
13:47 NotFound That will be amazing.
13:48 whiteknight yes. I don't know if you saw his blog. PCT rewritten in NQP is 2x slower than the version written in PIR
13:48 whiteknight A winxed version should be faster than that
13:48 whiteknight much faster
13:49 NotFound We should be capable to make it as fast as pir, at least.
13:49 whiteknight I think so too
13:50 whiteknight benabik is calling it PACT. We can probably update plobsing's ohm-eta to generate PACT, and we can write a new version of the Winxed Emit class to output it
13:50 whiteknight or, we would probably have to rewrite most of winxed to use it, but it will be a fun project
13:51 mtk joined #parrot
13:51 mtk joined #parrot
13:55 NotFound Even without that, I'm already thinking about adding an stage 2 compiler, more flexible and using more advanced winxed features,
13:59 whiteknight just use the better syntax of stage 2, or do new stuff entirely?
14:00 NotFound parseModifier uses SimpleArgList for the modifier arguments, so it should be able to handle the [ ] syntax. The restrictions can be checked after parsing.
14:00 whiteknight ok
14:01 NotFound Start with current stage 1, clean it using better features, and progresively add new stuff.
14:03 NotFound And maybe downsizing stage 1, droping features not needed to compile stage 2
14:04 whiteknight that sounds like a good idea
14:04 lucian NotFound: do you still want stage1 around?
14:04 NotFound lucian: I'd like to keep a full bootstrap chain, yes.
14:05 lucian right
14:05 JimmyZ NQP hav two stages ...
14:06 NotFound Yeah, I want to have three becuase ot that ;)
14:07 * JimmyZ couldn't image more than one stages
14:07 NotFound JimmyZ: I've read that some old compiler (maybe PL/I ?) had seven stages of bootstrap.
14:08 JimmyZ how many stages does C have?
14:08 contingencyplan joined #parrot
14:08 NotFound I think that no one bootsrap C from scracth since the 70
14:09 NotFound You just compile your compiler with other C compiler, and the compile it with itself.
14:11 JimmyZ that's why I couldn't image more than one stage
14:12 NotFound JimmyZ: if you write a new language you need at least two, unless you compile it manually the first time.
14:13 cotto_work joined #parrot
14:13 NotFound If you want to have a self compiler, that's it. If not, you can have just one.
14:13 * lucian likes the way most lisps boostrap :)
14:14 whiteknight 1) have a keyboard with only '(' and
14:14 whiteknight ')' keys. 2) Drop a rock on it. 3) repeat
14:14 atrodo That's the end of the list
14:14 lucian whiteknight: :P
14:15 cotto_work ~~
14:15 NotFound Interesting idea: write a lisp environment for tactile devices with just two gestures ;)
14:16 whiteknight open-paren, closed-paren
14:16 lucian to me, there's not much difference between lots of {} and () in a C-like language and lots of () and [] in clojure
14:17 lucian they're both worse than python to me, syntactically
14:17 NotFound And lots of { } and ( ) and [ ] in winxed.
14:18 lucian sure, winxed manages to be very slightly worse some of the time
14:18 lucian but i find it a reasonable compromise
14:18 NotFound lucian: I hate fixed-format syntax since the Cobol epoch.
14:19 lucian NotFound: indentation-sensitive?
14:19 NotFound lucian: yeah
14:20 lucian i hate it in makefiles, but i like it in python and haskell
14:20 * JimmyZ hates python too
14:20 lucian just like i hate the parens in common lisp and scheme, but not so much in clojure
14:20 * lucian also simply hates common lisp, but that's another thing
14:21 atrodo I've never been a fan when a language dictates, what I consider, style choices
14:21 lucian atrodo: python only dictates that you must indent consistently inside a block
14:21 lucian not sure about haskell
14:21 dalek rakudo/nom: 19cfd13 | moritz++ | / (3 files):
14:21 dalek rakudo/nom: add hidden_from_backtrace trait
14:21 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/19cfd13d25
14:21 dalek rakudo/nom: b1882a1 | moritz++ | src/core/BackTrace.pm:
14:21 dalek rakudo/nom: hide hidden routines from backtraces
14:21 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b1882a1f9c
14:22 NotFound That's too much dictate for a lot of us.
14:22 atrodo lucian> Exactly
14:22 NotFound I don't hate python, but I can't be comfortable with it because of that.
14:22 lucian do you indent inconsistently within a block? i've never seen that anywhere
14:23 atrodo lucian> Quite frequently when I'm working.  Espcially when I indent (or don't indent) for reasons besides a block
14:23 lucian hmm
14:27 NotFound Nightmare idea: write a indentation-sensitive compiler using the starir
14:27 NotFound stair style frequent in old pascal times.
14:28 JimmyZ writing a comiler with brainfuck language
14:28 NotFound For extra ugly points, do it mixing spaces and tabs.
14:29 atrodo lucian> You have a good link on python's whitespace/indentation rules?  I'm having a hard time remembering/finding
14:29 lucian atrodo: http://www.secnetix.de/olli/P​ython/block_indentation.hawk i guess
14:31 lucian atrodo: there's basically two rules: 1) indentation must be consistent within a block and 2) newlines delimit statements, except when you have more than one statement on a line with ; or a statement on more than one line where \ may be necessary
14:36 NotFound BTW if you want to have some fun, give to someone with an old C compiler in a unix system a source with some well placed \ CR LF line edings.
14:36 moritz where "consistent" depends on your interpretation of blanks, tab characters, vertical tabs and a whole bunch of codepoints that match \s in regular expressions
14:39 lucian moritz: afaik, as long as the entire suite is indented the same way it's fine
14:40 moritz lucian: ah, but what if one line is indented with one tab, and the other with 8 blanks?
14:41 lucian moritz: obviously they're different
14:41 moritz error out? 'expected: "        "; got: "        "'?
14:41 moritz lucian: but does "different" mean "inconsisten"?
14:41 moritz *inconsistent?
14:41 lucian no, it'll tell you're mixing tabs and spaces
14:41 lucian yes, different means inconsistent
14:42 lucian moritz: try it
14:42 moritz I guess that's as much sanity as one can expect from an insane system :-)
14:42 alester joined #parrot
14:42 lucian would you really mix tabs and spaces in indentation?
14:43 moritz no, but I've seen code bases that did
14:43 lucian right, those don't run in python
14:43 lucian i think that's a good thing :)
14:43 lucian (you get an IndentationError btw)
14:44 moritz well, if you think that forcing a style on people is good, then obviously it's also good that it errors out
14:45 lucian when it comes to mixing tabs and spaces, or misindeting, yes i think forcing style is good
14:45 lucian for anything else, strong warnings > forcing
14:46 lucian but if you really want, you can totally do insane things like http://preshing.com/20110822/pen​rose-tiling-in-obfuscated-python
14:48 JimmyZ well, I doesn' t hate python's indentation, I hate it putting grammers in the compiler to the  tutorial   book
14:53 kid51 joined #parrot
14:58 logie joined #parrot
15:12 Kulag joined #parrot
15:20 mtk joined #parrot
15:23 jsut_ joined #parrot
15:26 whiteknight NotFound: ping, again
15:26 NotFound whiteknight: pong
15:27 whiteknight NotFound: I'd like a way to conditionally compile code in a debug mode. Something like #ifdef DEBUG, but in winxed
15:27 whiteknight like, if we could set a command-like flag like -DDEBUG, but more winxed-ish
15:27 NotFound whiteknight: you can use if on const int values.
15:28 whiteknight NotFound: okay, then can we have a global symbolic constant DEBUG? And set it on the commandline?
15:28 whiteknight because if I have 100 if(1) ... statements, it's hard to change modes
15:29 NotFound whiteknight: const int DEBUG = 0; at the start of a file or in an included file.
15:29 whiteknight okay. But you're against a built-in feature like a __DEBUG__ constant?
15:29 NotFound I don't like the idea od defining symbols from command line options, but __DEBUG__ may be a reasonable exception.
15:32 NotFound So no, I don't oppose.
15:34 whiteknight okay, I will play with a patch for you to review
15:34 whiteknight that will make some of the GSoC students very happy
15:35 lucian NotFound: what's your opinion on a static (compile-time) if?
15:36 lucian static ifs operate on the own symbol namespace, and condition compilation
15:36 lucian s/the own/the/
15:37 NotFound lucian: you mean like in C# ?
15:37 lucian don't know C#'s feature. i've seen it in D
15:37 whiteknight does C# have a static if?
15:38 NotFound #if
15:38 whiteknight oh, right. But that's stupid
15:38 lucian yeah, in essense like preprocessor macros
15:38 lucian but with the same syntax as the rest of the language instead
15:38 NotFound Something like C, but symbols in a separate namespace.
15:38 lucian http://www.digitalmars.com/d/archives/digitalm​ars/D/learn/static_assert_static_if_6614.html
15:38 lucian http://stackoverflow.com/questions/1717976/are-​there-other-languages-besides-d-with-static-if
15:39 lucian D also has version http://www.digitalmars.com/d/2.0/version.html
15:39 NotFound lucian: you can already do that with winxed, you just need to be explicit about the namespace.
15:39 lucian but the static if is the most general of those
15:42 NotFound The only advantage I see with the 'static' is being clear about the intention.
16:01 RobertLJ joined #parrot
16:05 dukeleto ~~
16:06 cotto_work hio dukeleto
16:13 dukeleto cotto_work: wazzup
16:14 theory joined #parrot
16:45 dukeleto video of me talking abot PL/Parrot + PL/Perl6: http://vimeo.com/27975448
16:45 dukeleto tell me if I said anything stupid. For some reason, I find it really hard to watch videos of myself talking.
16:46 cotto_work dukeleto: I had to put a ton of effort into listening to myself speak.  It takes a lot of getting used to to watch oneself.
16:50 mj41 joined #parrot
16:56 RobertLJ joined #parrot
17:06 whiteknight i know a couple people who love to hear themselves talk.
17:08 benabik o/
17:10 zby_home joined #parrot
17:15 dukeleto benabik: i enjoyed reading your recent blog post. Lots of good stuff
17:16 benabik dukeleto: Thanks. I hope to follow it up with an oerly complucated design doc today. :-D
17:16 benabik *overly
17:16 benabik *complicatrd
17:17 benabik Gah. Stupid iPhone
17:23 atrodo whiteknight> I know lots of people that love to hear themselves talk but hate to listen to themselves
17:23 whiteknight atrodo: the really annoying ones are the people that nobody else wants to listen to either
17:25 bubaflub afternoon dukeleto
17:31 Eclesia joined #parrot
17:31 Eclesia hi
17:35 dukeleto bubaflub: howdy
17:35 bubaflub Eclesia: i added a basic benchmark to Parrot-GMP - a good deal slower to use GMP over native Ints and Floats
17:37 pyrimidine joined #parrot
17:51 dmalcolm joined #parrot
17:53 Eclesia bubaflub: slower like 10 times ?
17:53 bubaflub Eclesia: maybe more.
17:58 benabik bubaflub: Is that using raw NCI or GMP objects with viable stuff?
17:58 lucian joined #parrot
17:58 bubaflub benabik: https://github.com/bubaflub/parrot-g​mp/blob/master/bin/benchmark.winxed
17:58 bubaflub one with the VTABLE overrides, one without
17:59 benabik bubaflub: Both significantly slower?
17:59 bubaflub yup
17:59 bubaflub here's the output:
17:59 bubaflub Number of iterations: 40000
17:59 bubaflub Time in GMP (vtable): 0.866077899932861
17:59 bubaflub Time in GMP (direct method call): 0.556113004684448
17:59 bubaflub Time in PIR: 0.00778007507324219
18:00 atrodo bubaflub> ouch
18:00 benabik Ouch.
18:00 bubaflub yup. not GMP's fault too much.  not sure what my code is adding to it
18:00 Eclesia aie...
18:00 benabik How does that compare to C?
18:01 bubaflub so i'm thinking it's C <-> PIR
18:01 bubaflub benabik: not sure.
18:02 benabik bubaflub: Might want to try a raw C vs GMP benchmark…  Will probably be faster than Parrot, but would be interesting to see what the GMP overhead is.
18:03 bubaflub benabik: ok.  i'll add that to the repo as well
18:03 Eclesia bubaflub: use the awesome parrot profiler ! ho ... we dont have one :x
18:03 atrodo ouch
18:03 whiteknight we're working on it!
18:03 bubaflub heh.  i've seen people use kcachegrind but i'm not sure how / how to even read the results
18:04 whiteknight very carefully
18:04 * Eclesia was just joking
18:07 Eclesia bubaflub: question : are you continuing to work on parrot after gsoc ?
18:08 bubaflub Eclesia: yup.
18:08 whiteknight bubaflub++
18:09 tadzik :)
18:11 Eclesia bubaflub: ok then tell me where I can find your bindings, I'll try to plug then in my model ;)
18:11 bubaflub Eclesia: https://github.com/bubaflub/parrot-gmp
18:17 bubaflub Eclesia: and you have any trouble, msg me or shoot me an email or file a github issue.
18:17 Eclesia bubaflub: You need to have Parrot configured with GMP to use Parrot-GMP <-- means I must already have gmp packages on my system ?
18:17 bubaflub Eclesia: yup
18:18 Eclesia hm.
18:20 RobertLJ left #parrot
18:22 * Eclesia hope linux and windows parrot installer will come with all thoses dependencies.
18:22 cotto_work linux installer?
18:22 Eclesia deb package dependencies
18:24 Eclesia whats the difference between parrot 3.7 and 5 ?
18:24 benabik Two months of development?  ;-)
18:25 benabik NEWS file can tell you: https://github.com/parrot/parrot/blob/master/NEWS
18:25 Eclesia I just made a git pull and rebuild parrot, but everything is still placed in ; /usr/local/src/parrot/3.7.0-devel
18:25 cotto_work Eclesia: did you run make reconfig?
18:26 Eclesia make realclean; git pull; perl Configure.pl; make; make test; sudo make install
18:26 cotto_work You need to have a prefix if you're installing parrot.
18:27 cotto_work perl Configure.pl --prefix=/path/to/install
18:27 cotto_work --optimize is also a good idea
18:30 davidfetter joined #parrot
18:33 Eclesia bubaflub: what's the difference between the gmp in parrot and yours ?
18:33 bubaflub Eclesia: what GMP in Parrot?  there are a few bindings for BigNum stuff done by someone else, my project will have all functions eventually.
18:34 whiteknight tcurtis: ping
18:34 Eclesia 133 test failures
18:35 nopaste "Eclesia" at 192.168.1.3 pasted "gmp test failures" (235 lines) at http://nopaste.snit.ch/73791
18:35 Eclesia bubaflub: here you go ;)
18:36 bubaflub Eclesia: very nice.  can you run just one of those failed files to show me what's wrong?
18:36 Eclesia bubaflub: how ?
18:36 bubaflub winxed t/integer/remove.t
18:37 nopaste "Eclesia" at 192.168.1.3 pasted "gmp test failures" (14 lines) at http://nopaste.snit.ch/73792
18:37 Eclesia bubaflub: here
18:38 bubaflub Eclesia: you'll need to install Parrot-GMP to fix those problems
18:39 Eclesia I've rebuild parrot, and seen the gmp module enable a few minutes ago
18:39 Eclesia bubaflub: or are you talking about somethin else ?
18:39 bubaflub Eclesia: now, you'll have to do `winxed setup.winxed install` for Parrot-GMP
18:39 Eclesia ho install it before runing tests
18:39 Eclesia k
18:40 bubaflub Eclesia: yeah, unfortunately that's the only way for NCI thunks to work
18:40 Eclesia bubaflub: gailed
18:40 Eclesia failed*
18:40 bubaflub backtrace?
18:40 nopaste "Eclesia" at 192.168.1.3 pasted "install gmp" (7 lines) at http://nopaste.snit.ch/73808
18:41 plobsing bubaflub: why do you need to install before running tests?
18:41 Eclesia it says unknowned file or folder GMP/thunks.so
18:42 bubaflub plobsing: i need to put the NCI thunks somewhere Parrot can find em before all the tests run
18:42 bubaflub Eclesia: yeah, looking into it now
18:42 bubaflub Eclesia: what do you have under the GMP/ folder?
18:42 plobsing bubaflub: you could run the harness with parrot -X 'local folder'
18:43 Eclesia bubaflub: common, integer, random, raw
18:43 plobsing -X (or --dynext) adds to the dynext path
18:44 whiteknight msg tcurtis if you have some time soon, I would really love a crash course in lalrskate. I've been digging in it and have a good feel for things, but I want to make sure I know all the capabilities and limitations of it.
18:44 aloha OK. I'll deliver the message.
18:45 bubaflub plobsing: my test harness is written in NQP - does parrot-nqp take those arguments?
18:45 bubaflub Eclesia: hmmm, the thunks aren't building.  one sec.
18:46 plobsing bubaflub: probably not
18:51 Eclesia question : how can I store a pmc in a namespace ?
18:51 whiteknight set_global [namespace], "name", value
18:51 Eclesia thanks
19:02 bubaflub Eclesia: do you have src/GMP/thunks.c ?
19:02 Eclesia bubaflub: yes
19:02 bubaflub Eclesia: ok, so the thunks are being generated but not compiled
19:02 bubaflub Eclesia: one sec.
19:03 Coke rant: why do we even have the Changelog file?
19:05 whiteknight Coke: I've suggested we delete it on several occasions
19:06 * Coke opens a ticket.
19:07 Coke ISTR allison had a reason why, but I just did a ticket search for changelog and didn't find anything.
19:07 whiteknight there is always some hidden, unknown reason why we do all sorts of things that nobody today wants to keep doing
19:08 Coke eh. we'll find out in a week when I rip it out. ;)
19:10 whiteknight Coke++
19:12 Eclesia (and patch it back in one week+1day)
19:16 Eclesia bubaflub: big bug ?
19:16 bubaflub Eclesia: don't think so.  one sec.
19:17 Eclesia no need to hurry :)
19:18 bubaflub Eclesia: what kind of system are you on?
19:18 Eclesia bubaflub: linux 64bit Lubuntu 11.04
19:19 bubaflub Eclesia: ok.  compiling with gcc?
19:20 * Eclesia don't know
19:20 * Eclesia is not a c/c++ developer
19:21 cotto_work ./parrot_config cc
19:21 dalek TT #2184 created by coke++: Remove Changelog
19:21 dalek TT #2184: http://trac.parrot.org/parrot/ticket/2184
19:21 bubaflub Eclesia: ok.  can you run `winxed setup.winxed clean`
19:21 bubaflub Eclesia: and then give me the full output of `winxed setup.winxed build`
19:21 Eclesia eclesia@Blocos:/media/SATA2_7200/dev/parrot-gmp$ parrot_config cc
19:21 Eclesia cc
19:21 cotto_work Eclesia: probably gcc then
19:22 nopaste "Eclesia" at 192.168.1.3 pasted "gmp build" (22 lines) at http://nopaste.snit.ch/73809
19:22 Eclesia bubaflub: ere you are
19:22 Eclesia here*
19:23 bubaflub Eclesia: ok, it's a problem with my linking.  lemme look at it for a bit and figure it out
19:25 nopaste "Eclesia" at 192.168.1.3 pasted "gmp build" (15 lines) at http://nopaste.snit.ch/73810
19:25 Eclesia bubaflub: sorry looks like my copy failed ^^
19:25 bubaflub Eclesia: ok, i'll keep at it
19:34 Eclesia bubaflub: question : what kind of rational are available with the bindings ?
19:35 bubaflub Eclesia: at this point, i only have integer bindings.  rational will be coming soon.
19:35 bubaflub Eclesia: http://gmplib.org/manual/Rational-Number-​Functions.html#Rational-Number-Functions is what is available
19:35 benabik bubaflub: Rational isn't an object, or rational functions aren't available at all yet?
19:35 bubaflub benabik: both - i haven't started on the rational stuff yet.
19:36 bubaflub GSoC was only for the initial stuff and the Integer functions
19:47 dalek nqp/commandline-optional-arguments: 3e5dcec | tadzik++ | src/HLL/CommandLine.pm:
19:47 dalek nqp/commandline-optional-arguments: Allow optional named parameters in CommandLine.pm
19:47 dalek nqp/commandline-optional-arguments:
19:47 dalek nqp/commandline-optional-arguments: Specified with foo=s? get the passed value if any, empty string
19:47 dalek nqp/commandline-optional-arguments: otherwise. So --foo will set %options<foo> to '', --foo=bar will result
19:47 dalek nqp/commandline-optional-arguments: in %options<foo> := 'bar'. In the first case, %options<foo> will still
19:47 dalek nqp/commandline-optional-arguments: be false, but the existance of the argument can be checked with
19:47 dalek nqp/commandline-optional-arguments: pir::exists()
19:47 dalek nqp/commandline-optional-arguments: review: https://github.com/perl6/nqp/commit/3e5dcec73f
19:50 dalek nqp/commandline-optional-arguments: 8d12a5c | tadzik++ | src/HLL/CommandLine.pm:
19:50 dalek nqp/commandline-optional-arguments: Update HLL::CommandLine documentation mentioning optional values
19:50 dalek nqp/commandline-optional-arguments: review: https://github.com/perl6/nqp/commit/8d12a5cb50
20:05 Eclesia ++ all
20:06 benabik A round of karma for everyone?
20:07 whiteknight I'm paying
20:08 dalek nqp: 3e5dcec | tadzik++ | src/HLL/CommandLine.pm:
20:08 dalek nqp: Allow optional named parameters in CommandLine.pm
20:08 dalek nqp:
20:08 dalek nqp: Specified with foo=s? get the passed value if any, empty string
20:08 dalek nqp: otherwise. So --foo will set %options<foo> to '', --foo=bar will result
20:08 dalek nqp: in %options<foo> := 'bar'. In the first case, %options<foo> will still
20:08 dalek nqp: be false, but the existance of the argument can be checked with
20:08 dalek nqp: pir::exists()
20:08 dalek nqp: review: https://github.com/perl6/nqp/commit/3e5dcec73f
20:08 dalek nqp: 8d12a5c | tadzik++ | src/HLL/CommandLine.pm:
20:08 dalek nqp: Update HLL::CommandLine documentation mentioning optional values
20:08 dalek nqp: review: https://github.com/perl6/nqp/commit/8d12a5cb50
20:08 dalek nqp: 4d93b19 | tadzik++ | tools/build/Makefile.in:
20:08 dalek nqp: Merge branch 'master' of github.com:perl6/nqp
20:08 dalek nqp: review: https://github.com/perl6/nqp/commit/4d93b19da2
20:09 benabik dalek seems slower here than in #perl6…  Different throttling between perl.org and freenet?
20:10 Coke I have a new local branch that is tracking  local master. how do I turn that local branch into a remote branch of the same name?
20:10 benabik git push <remote> <branch>, I think.
20:12 rurban joined #parrot
20:52 bubaflub joined #parrot
20:57 dalek Heuristic branch merge: pushed 19 commits to lalrskate by ekiru
20:59 tcurtis ~~
21:10 allison Coke/whiteknight: the changelog used to be where we track changes (like most projects). Then, at some point, someone decided we should  add a NEWS file and list all the changes there. I have no idea why, I've never seen any other project with a NEWS file. Then at some later point, people thought it was duplicated effort to put updates in both files, so they just started adding a link to NEWS from Changelog for every release.
21:11 allison Coke/whiteknight: At that point, Changelog became useless.
21:11 allison Coke/whiteknight: The two files should be merged.
21:12 allison Coke/whiteknight: Personally, I'd merge the two and call the new file Changelog.
21:12 cotto_work There's quite a bit in Changelog.  I'd be that merging it and NEWS would violate laziness for most people.
21:12 cotto_work +1 if anyone feels like it though
21:13 benabik I think it was moved to NEWS because most people expect Changelog to be something akin to old style GNU Changelogs…  Detailing every function and line change while NEWS is more user-oriented.
21:17 perlite_ joined #parrot
21:32 bubaflub joined #parrot
21:53 jsut joined #parrot
22:15 jsut_ joined #parrot
22:22 jsut joined #parrot
22:36 kid51 joined #parrot
22:41 Coke if someone copies allison's comments to the ticket, I'll do the merge.
22:44 Coke ISTR that part of that split was that Changelog was for details, news was for release-worthy stuff, but that distinction is no longer present, either.
22:44 Coke /bye
22:45 allison Coke: yeah, I think it's partly a generational thing.
22:45 allison Coke: the early developers of Parrot made a lot of entries in Changelog, I've never made one
22:45 allison Coke: it just dropped out of common usage
22:46 allison Coke: (or, was replaced by browsing source control history, which got a lot easier in recent years)
22:48 cotto joined #parrot
23:03 cotto ~~
23:07 Coke joined #parrot
23:15 Coke joined #parrot
23:46 whiteknight joined #parrot
23:47 whiteknight good evening, #parrot
23:47 cotto good evening, whiteknight
23:47 kid51 ~~
23:48 whiteknight hello cotto, kid51. How are you two doing tonight?
23:50 cotto jetlagged
23:51 cotto normal cotto would still be at work
23:51 cotto though he wouldn't have shown up at 7 either
23:54 whiteknight normal cotto sounds like he makes good decisions
23:55 Felipe hi guys
23:55 cotto less bad perhaps
23:55 cotto ;)
23:55 whiteknight hello Felipe!
23:57 whiteknight tcurtis: ping
23:58 tcurtis whiteknight: pong
23:59 whiteknight tcurtis: excellent last-minute push on lalrskate
23:59 whiteknight tcurtis: I want to set up some time with you to go over lalrskate and get a kind of crash course in it. I would like to continue the work after GSoC ends

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

Parrot | source cross referenced