Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2006-11-11

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:17 diakopter joined perl6
00:21 vel6608 joined perl6
00:30 diakopter ?seen TimToady
00:30 lambdabot TimToady is in #perl6. I last heard TimToady speak 2h 7m 5s ago.
00:48 TimToady diakopter: you lookin' fer me?
00:49 diakopter yes, a friend of mine would like a commit bit for pugs
00:49 audreyt TimToady: (1,"x",1.5).HOW is currently the same as (1,"x").HOW, even though they can also be different.
00:49 lambdabot audreyt: You have 1 new message. '/msg lambdabot @messages' to read it.
00:51 audreyt TimToady: the spec seems to think one can parameterize them as needed, but treat it as a generic "Seq" when possible
00:52 audreyt TimToady: is it true that the two (allegedly competing, irreconcilable) are explicit design goals?
00:52 penk joined perl6
00:52 audreyt i.e. if someone say
00:52 audreyt Seq[Int, Str]
00:52 audreyt one should get what they want
00:53 audreyt but Seq itself is both Any on member type, and _also_ Any on length, as long as it's finite.
00:53 audreyt same for Array, Hash, etc.
00:53 audreyt if that's the case, then I'll research for some way to reconcile the irreconcilable as usual :)
00:56 eggzeck joined perl6
00:56 TimToady diakopter: have sent your friend a commit bit.  please tell them it is customary to add yourself to AUTHORS as first checkin.
00:57 diakopter TimToady: thanks
00:57 TimToady however, if they want to post incognito, I can understand why some people might be in that position.
00:59 TimToady audreyt: that's an interesting question that I don't really have an answer to.
00:59 * audreyt nods.
01:01 TimToady we have * on signatures, and I've mumbled a bit about putting * on the end of a short list to lengthen it.  Maybe Seq defaults to Seq[*] somehow.  and we distinguish Seq[Int,Str] from Seq[Int,Str,*]
01:01 svnbot6 r14721 | fglock++ | MP6 - fixed nodes s/Op:*/Apply/ (no name mangling yet)
01:01 svnbot6 r14721 | fglock++ | - Grammar.parse() compiles 'CompUnit's
01:01 svnbot6 r14721 | fglock++ | - 'grammar' compiles to CompUnit
01:01 svnbot6 r14721 | fglock++ | - method signature is optional
01:01 svnbot6 r14721 | fglock++ | - more prefix ops\n- 'sub'
01:01 svnbot6 r14721 | fglock++ | - 'for' emitter
01:01 TimToady dunno
01:02 TimToady the type passed to Seq[] is sort of an inside out Sig
01:02 audreyt because Seq[] is really a tyfun
01:02 audreyt i.e. a type function that you feed in some type params
01:02 audreyt to get back an type instance from a type family
01:02 audreyt i.e. exactly as normal functions, but happens at typespace
01:03 audreyt it's not Sig... it's a Capture as well
01:03 audreyt Scalar[of => Int]
01:04 audreyt the thing with Seq is that it has (potentially a large number) of subtypes within it
01:04 audreyt and because our Array are of Scalar
01:04 audreyt you can also place constraints on individual Scalar elements
01:04 audreyt i.e. have
01:04 audreyt Array[Int, Str, *]
01:05 audreyt passthru it into the first two Scalar it allocs
01:05 audreyt so they receive Int and Str constraints
01:05 audreyt there are ways to make all this work; I just want to make sure it's worthwhile to make them work :)
01:06 TimToady seems worthwhile, but I'm not a type theorist...
01:06 audreyt type theorists generally think what Perl6 is doing is 1)very cutting edge and 2)crazy
01:06 audreyt oh btw. what's ~Str?
01:07 TimToady the other question is whether it'll slow things down, either performance or in getting P6 out the door.
01:07 audreyt (that's more immediate as I'm coding that part.)
01:07 audreyt oh, that's two milestones from now, so it won't affect either
01:07 audreyt it's just for my brainsync purpose :)
01:07 TimToady ~Str?  Do you mean ^Str?
01:07 audreyt ~Str.
01:07 audreyt ~::Str
01:07 audreyt +::Int
01:07 audreyt ?::Bool
01:07 lambdabot Unknown command, try @list
01:08 audreyt etc.
01:08 TimToady ?eval ~Str
01:08 audreyt i.e. what is their prototypical payload?
01:08 evalbot_r14720 is now known as evalbot_r14721
01:08 evalbot_r14721 "Str"
01:08 audreyt yeah, I know what I've implemented :) and it's modelled after p5
01:08 audreyt where it's coerced asif it's a string
01:08 audreyt of the name of the class
01:08 TimToady seems sane
01:09 crythia1 joined perl6
01:09 audreyt k.
01:09 TimToady need to go help cook dinner before mother-in-law pitches a fit...
01:09 audreyt sure. have fun!
01:09 TimToady well think about Seq a little.  &
01:09 audreyt and I'll fly tomorrow after waking up
01:09 TimToady *will
01:09 audreyt so see you in ~2day actually
01:10 audreyt airport lounge notwithstanding
01:10 TimToady have the appropriate amount of fun...
01:10 audreyt :)
01:10 audreyt which is likely optimized.
01:10 audreyt hopefully not optimized away...
01:10 TimToady have a smooth sequence...
01:10 TimToady &
01:15 * smash_ good evening
01:17 polettix joined perl6
01:25 dmq joined perl6
01:30 araujo joined perl6
01:30 svnbot6 r14722 | audreyt++ | * MO: Beginning of autoboxing, Str.reverse, and related
01:30 svnbot6 r14722 | audreyt++ |   metastructure, prototyped in si.hs, but will soon move
01:30 svnbot6 r14722 | audreyt++ |   into Pugs.Val.
01:32 Pomin joined perl6
01:32 vell joined perl6
01:36 vell joined perl6
01:36 dgo joined perl6
01:37 vell joined perl6
01:51 weinig is now known as weinig|zZz
01:52 duend joined perl6
01:54 dduncan joined perl6
02:09 svnbot6 r14723 | audreyt++ | * MO: Normalize the Method class.
02:09 svnbot6 r14723 | audreyt++ | * Make autoboxing and invocation really easy via some sugars;
02:09 svnbot6 r14723 | audreyt++ |   prototyped the Str and Int classes.
02:23 genjix joined perl6
02:32 cls_bsd joined perl6
02:48 cjeris left perl6
02:48 eggzeck joined perl6
03:01 dduncan left perl6
03:04 kanru joined perl6
03:25 crythia1 left perl6
03:35 araujo joined perl6
03:42 stevan joined perl6
04:05 brent[] joined perl6
04:15 bluefoxicy joined perl6
04:15 bluefoxicy someone told me to ask TimToady about interpreter design?
04:17 * cj raises his hand
04:18 * cj turns on his logger
04:19 bluefoxicy hi cj :P
04:19 cj hey there bluefoxicy
04:19 cj he's a busy guy.  I recommend idling
04:19 bluefoxicy kay
04:23 TimToady I know several good ways not to write an interpreter...
04:24 bluefoxicy haha
04:24 bluefoxicy I've only really got one simple question for now, because I know too little to actually ask useful questions.
04:25 bluefoxicy If you don't mind anyway?  :)
04:25 TimToady there's no harm in asking
04:25 bluefoxicy ok well :)
04:26 bluefoxicy I was thinking about interpreters the other day, mostly I've just recently become interested in the design of such, and have been considering why they're slow.
04:26 bluefoxicy After all, emulators for things like gameboy or SNES are also interpreters and can be very slow, and the original Java interpreter was loudly proclaimed to be slow, and JIT has really taken off.
04:27 SamB but, apparantly not very well
04:27 SamB I mean, not for JVM...
04:27 SamB that is, even with JIT, the JVM still doesn't run Java programs very fast
04:27 bluefoxicy SamB:  Well, Mono uses it, as well as like every Java engine I've seen; Adobe Flash uses JIT to compile ECMA script, and there was talk about JIT to native for JavaScript in Mozilla.
04:27 thepler joined perl6
04:27 dgo left perl6
04:28 bluefoxicy Anyway
04:28 SamB sorry to be unclear
04:28 SamB I think JVM is maybe not a very good bytecode
04:28 bluefoxicy This lead me to thoughts about out-of-order execution, and parallel execution.  Both of these looked like dead-ends to me; threading in an interpreter at that level is slow and stupid isn't it...
04:29 bluefoxicy But it did bring one interesting thought to my mind:  What about reordering instructions such that chunks of instructions of a similar 'class' fall in line, where possible; and having a single function for each set of instructions that can continue interpreting in a tight loop?
04:29 SamB ???
04:30 bluefoxicy Consider if you have instructions like, say, ADD, SUB, DIV, and MUL (x86 instructions that do basic integer math)
04:30 cj SamB: keep quiet.  you're making it difficult to read
04:30 SamB k
04:30 bluefoxicy My guess is the most naive inerpreter will follow a process of 1) Read the next opcode; 2) Pick an interpreter function; 3) Pass operands to the function; 4) goto 1
04:31 bluefoxicy This means that you have 1) Read data; 2) look up in table of functions; 3) Call a function (set up a call stack, store registers, set up argument passing, execute a prologue...) and return from a function (same, in reverse); 4) Continue at 1
04:32 bluefoxicy Step (3) is tens or hundreds of instructions; step (2) is maybe a dozen or so.
04:33 bluefoxicy Now, what if instead you optimized the bytecode so that similar classes of instructions (say ADD, SUB, MUL, DIV) that could be executed out of order from the surrounding instructions were grouped
04:33 bluefoxicy and then passed the address of the instruction to an interpreter function that could continue interpreting-- with the asumption that all following instructions are interperable by it-- the bytecode instructions?
04:34 thepler joined perl6
04:34 bluefoxicy so instead you would have, say, 1) Check prefix (if wrong, return to the interpreter loop); 2) Check type (it's only one of a few basic types, ADD DIV MUL SUB in our case); 3) execute operation; 4) goto 1
04:35 bluefoxicy Now if you encounter that kind of stream you only need a few instructions.  Not really a huge speed-up, but it's a basic idea.
04:36 TimToady I think whether it's a win would depend on how the data is structured.
04:36 SamB hmm.
04:36 bluefoxicy I actually wrote that out a bit more in http://kerneltrap.org/node/7350 starting at paragraph... 9
04:36 bluefoxicy TimToady:  yes, of course; also it would depend on how instructions were grouped
04:36 TimToady you could lose all your performance gain just trying to get all your data lined up to feed to ADD or whatever
04:36 * SamB thinks the Python VM has some kind of shortcut jumps in it for instructions that common follow eachother...
04:37 TimToady unless the data structure was already conducive to vectorizing on some level
04:37 bluefoxicy TimToady:  further, it is in reality just a more complex way of saying, "Write ALL interpreter functions in one GIANT function," except not in one giant function
04:37 TimToady Samb: well, so does Perl 5...
04:38 TimToady you can spend a lot of time trying to optimize function calls away, and then discover that that's not really what's slowing you down in a modern processor.
04:38 SamB oh, well, isn't the code for Perl 5 a horrible mess?
04:38 TimToady usually cache behavior is the overriding factor these days
04:38 SamB anyway, it wasn't the function calls, I'm pretty sure...
04:38 SamB I think it was within a function
04:39 SamB maybe to avoid the switch tables or something
04:39 bluefoxicy TimToady:  function calls don't slow you down?
04:39 TimToady it's architecture dependent how much they slow you down.
04:40 TimToady they were very slow on a Vax, and a lot of the design of Perl 5 reflects that.
04:40 bluefoxicy TimToady:  doesn't it take a large number of instructions to enter/exit a function?
04:40 TimToady again, highly architecture dependent.
04:40 SamB bluefoxicy: don't you suppose the CPUs are good at JITting those?
04:41 SamB (only if needed, of course)
04:41 TimToady often "leaf" calls can be very fast if they can just switch to a throwaway register set and avoid all the save/restore
04:41 TimToady On a vax you try to avoid lots of little functions, but on some modern architectures you actually try to maximize that...
04:41 bluefoxicy hmm.
04:42 * SamB thinks it is a good thing they didn't tell ken the truth about function calls
04:42 TimToady especially if a heavy factorization manages to get all your common instructions in cache
04:43 TimToady the differences between in-cache and out-of-cache performance tend to dominate these days.
04:43 bluefoxicy interesting.
04:43 SamB RAM is so slow in these GHz days
04:44 TimToady for Perl 6 we're looking more toward explicit forms of parallism, using GPUs and cell processors and such
04:44 SamB ... I would think SMP would be a better place to start...
04:45 TimToady some of that syntactic information would help with a setup like you're proposing, even on a single-thread machine
04:45 bluefoxicy functions seem to be 5 ... 7 if I add a parameter... interesting, my understanding of the problem was incorrect!  :)
04:46 FuzzyLogic joined perl6
04:46 SamB cell processors seem to have rather odd bandwidth... and GPUs are mostly good for dealing with big arrays, aren't they?
04:46 bluefoxicy TimToady:  is it correct to assume that reducing the number of bytecode instructions is the most important factor of interpreter speed?
04:46 TimToady because we're introducing syntax for explicitly saying you don't care about the side effects or interactions between parallelizable operations, such as hyperops
04:46 bluefoxicy TimToady:  rather, the length of code paths
04:47 FuzzyLogic is now known as IAmFuzzyLogic
04:48 TimToady the problem with saying anything general about interpreters is it's so highly dependent on what kind of programs and data you feed them.
04:48 IAmFuzzyLogic is now known as pva-UF
04:48 TimToady the usual dictum of "profile first" doesn't really help.
04:48 TimToady because you don't know which parts of your interpreter will be in the middle of someone's tight loop.
04:49 bluefoxicy mm o.o
04:50 TimToady about the best you can do is design things not to rely on any one particular model, so you can substitute in a different model under different circumstances.
04:50 TimToady but that tends to work against having a consistent semantic model, such as universal continuations and such
04:50 bluefoxicy so are you saying that the rules of designing a CPU are different than the rules of designing an interpreter?
04:51 SamB bluefoxicy: a little bit
04:51 bluefoxicy Not that I'm particularly good at either, mind you; I'm approaching them as similar problems.
04:51 SamB if you are designing a CPU, you can actually decide what hardware to put on it.
04:51 TimToady at least with a CPU you pretty much know what you're working with down to the metal.
04:52 TimToady but an interpeter is likely to be ported to other architectures.
04:52 bluefoxicy mmm
04:52 TimToady it also really depends heavily on what kind of programming you're going to do on top of it.
04:53 TimToady functional programming puts an entirely different set of stress on your interpreter than OO does.
04:53 bluefoxicy that's interesting
04:53 bluefoxicy I thought OO would be "fifty times more instructions"
04:53 bluefoxicy like C++ is
04:53 TimToady depends on your model.
04:53 bluefoxicy but I suppose the interpreter can have its own OO functions with its own OO support and have itself tied to a specific language
04:53 bluefoxicy like Java
04:53 bluefoxicy a language AND an interpreter
04:54 SamB Java ain't an interpreter
04:54 SamB for instance, I have this here Java program
04:54 bluefoxicy java has its own VM written to handle Java... heh.
04:54 * SamB gestures towards trang
04:54 bluefoxicy SamB:  you know what I mean, quit nitpicking over semantics :>
04:54 SamB that is in a native x86 ELF binary
04:55 SamB no interpreter or anything
04:56 bluefoxicy TimToady:  so summerically, this isn't a problem with a solution; it's a problem seeking another problem to get solved with?
04:56 TimToady there's probably an ecological niche for such an interpreter.  don't know how big it is though.
04:57 bluefoxicy such an interpreter?
04:57 bluefoxicy you lost me.
04:57 TimToady such as you are proposing
04:58 bluefoxicy oh
04:58 bluefoxicy I'm just trying to gather information; I have some obsessive compulsive knowledge thing where I try to learn everything  :)
04:59 bluefoxicy I'm not proposing anything ;)  (yet)
04:59 TimToady old-time biologists tended to think of ecological niches as continent sized, but most ecological nices are limited by other factors than geography
04:59 bluefoxicy you are losing me hard
04:59 bluefoxicy this is why I need to know everything.
04:59 TimToady some of which are not predictable, such as other species' development
05:00 TimToady you can't know everything.  at least, I've been trying for more than 50 years, and haven't got there yet...
05:01 TimToady at the end of the day, most of your knowledge won't tell you how to trade off all the facts you know
05:01 bluefoxicy TimToady:  actually
05:01 TimToady you try something, and it either helps, or doesn't
05:01 bluefoxicy the universe holds a finite amount of information.
05:01 TimToady then you try something else
05:01 TimToady that finite amount of information is provably a superset of your brain
05:01 bluefoxicy There are a limited number of subatomic particles in the universe, which each can store a piece of information (three, actually)
05:02 bluefoxicy to store all that information you need the entire universe; to know everything, you need to be the universe :)
05:02 cj bluefoxicy: heh.  theorhetically, at least, eh?
05:03 bluefoxicy cj:  yes theoretically.  The hole is that information about the past is encoded in the present state of the universe and thus there seems to be more information stored than is possible.
05:04 TimToady it's not clear that the state-space of the universe is encoded primarily in what we think of as particles.  nevertheless, we think we know how much information can be encoded in a particular volume without turning into a black hole.  :)
05:04 Kattana Well then theoretically you would not need to be the universe, only understand its rules and be able to calculate the current value of the section of the universe containing the information you want.
05:05 bluefoxicy Kattana: technicality.
05:05 bluefoxicy Kattana:  I was never that good, ever; and I never will be.
05:06 bluefoxicy is that even possible?
05:06 TimToady course, it's kind of an interesting question whether someone is thinking of our universe as an experimental interpreter...
05:06 Kattana bluefoxicy, its a mere implimentation problem, anything is possible.
05:06 bluefoxicy I mean, I can do 52.5/2/180 easy, I know some people that can break 80/5/300 but that's not enough to get the state of any particular particle in the universe
05:07 bluefoxicy oh God my stat teacher hated me
05:08 TimToady God was your stat teacher?
05:08 bluefoxicy TimToady:  no, that's not it.
05:08 rlb3 joined perl6
05:08 bluefoxicy TimToady:  The theory is that if anyone ever discovers what the universe is here for, it will immediately become something more absurd and complex.
05:09 bluefoxicy and anyway my stat teacher gave us the task of flipping a coin 100 times and predicting the outcome
05:09 bluefoxicy I did 98/2/100 that day, only missed 2 of them.
05:09 thepler joined perl6
05:10 bluefoxicy The coolest thing you can do in a stat class is predict outcomes to a statistically significant level above what should be possible
05:10 TimToady we only did ten flips, but I flipped all heads.  thought I was in R+G are dead...
05:10 bluefoxicy hehe
05:10 TimToady except he hadn't written that play yet...
05:11 bluefoxicy lol
05:13 Kattana TimToady, if you have not already I suggest reading http://en.wikipedia.org/wiki/Ender's_Game these questions about the universe made me think of it. It also has language playing some part if I recall.
05:14 TimToady well, Scott Card thinks about a lot of things, including drama.
05:14 bluefoxicy I'm out of thoughts
05:14 bluefoxicy and dr who is on
05:14 Kattana mhmm, and it might have been one of the following books actually, I read them in series so...
05:15 TimToady seems a lot like a Friday night...
05:17 Kattana What a coincidence.
05:24 eggzeck joined perl6
05:26 cj ah, Ender's Game.  I was thinking about that tonight, too.
05:27 cj my dad bought me a copy of the set a couple years ago.  I had already read most of them twice by then.  It's nice to have them to re-read, though :)
05:29 bluefoxicy I hate all fiction for some reason.
05:29 bluefoxicy Reading fiction is the most boring, irritating experience ever  o.o
05:29 bluefoxicy I think it's because I can't read a page a second, so the information flow is far too slow.
05:30 bluefoxicy Technical reading is ok because the information is thicker and it takes longer to process, so my brain is occupied.
05:31 kisu joined perl6
05:36 cj bluefoxicy: yes?
05:36 cj bluefoxicy: don't most fiction pieces have something to say about fact?
05:36 cj aren't most "fact" pieces just theories and guesses anyway?
05:37 bluefoxicy nevermind :)
05:39 bluefoxicy huh
05:39 bluefoxicy this commercial shows a chick using the internet
05:39 bluefoxicy I call false advertisement
05:47 penk joined perl6
05:53 bluefoxicy left perl6
05:53 duend is now known as duend`sleeping
05:59 SubStack joined perl6
06:10 Southen_ joined perl6
06:15 BooK_ joined perl6
06:16 justatheory joined perl6
06:36 miyagawa_ joined perl6
06:41 penk joined perl6
06:51 Schwern joined perl6
06:51 wolverian joined perl6
07:16 Southen joined perl6
07:28 eggzeck joined perl6
07:59 cognominal how do I get the type of an object?
08:03 cognominal gotit:  .WHAT
08:10 kanru joined perl6
08:23 synth joined perl6
08:23 synth left perl6
08:40 kanru joined perl6
08:47 iblechbot joined perl6
09:13 pjmm joined perl6
09:27 larsen_ joined perl6
10:14 crem joined perl6
10:16 ludan joined perl6
10:18 elmex joined perl6
10:20 buetow joined perl6
10:27 chris2 joined perl6
10:38 araujo joined perl6
11:19 xinming_ joined perl6
11:41 BooK joined perl6
11:42 BrendaSexy joined perl6
12:10 Psyche^ joined perl6
12:12 rodi joined perl6
12:16 meppl guten morgen
12:22 elmex joined perl6
12:24 camenix joined perl6
12:27 BrendaSexy left perl6
12:27 Psyche^ is now known as Patterner
12:32 DHGE joined perl6
12:41 anatolyv joined perl6
12:47 eggzeck joined perl6
12:56 prism see you all sunday night! mini holiday time
13:24 penk joined perl6
13:39 weinig joined perl6
13:51 rodi joined perl6
13:53 xinming_ is now known as xinming
14:03 thepler joined perl6
14:30 trym_ joined perl6
14:32 Limbic_Region joined perl6
14:39 eggzeck joined perl6
14:59 jferrero joined perl6
15:16 mako132 joined perl6
15:27 camenix left perl6
15:51 miyagawa_ joined perl6
15:53 seano joined perl6
16:15 mako132 joined perl6
16:19 nothingmuch 3morning
16:33 cm joined perl6
16:53 anatolyv hey nothingmuch
16:54 nothingmuch yo homie
16:55 BooK joined perl6
16:56 anatolyv nothingmuch: i'm reading the unicode standard. it's a blast. they really should make a movie out of it.
16:56 avar haha
16:56 SamB hah
16:57 nothingmuch anatolyv: that's what the animation primitives are for
16:57 anatolyv like, Harrison Ford could be 29DE INFINITY NEGATED WITH VERTICAL BAR
16:58 nothingmuch totally
16:59 nothingmuch Tom cruise could be HEXAGRAM FOR DIFFICULTY AT THE BEGINNING
17:00 anatolyv i need a female lead for the cute little 325C;CIRCLED NUMBER THIRTY TWO though.
17:00 miyagawa_ joined perl6
17:00 nothingmuch what about her assistant, DIGIT FIVE FULL STOP ?
17:01 vel joined perl6
17:02 anatolyv yeah, that too.
17:02 trym_ is now known as trym
17:02 nothingmuch oh! we can have kisrtie alley as CJK RADICAL COW
17:03 turrepurre joined perl6
17:03 nothingmuch HEAVY EXCLAMATIONMARK ORNAMENT! a BLACK LEFTWARDS BULLET just ricoched RIGHTWARDS WHITE ARROW FROM WALL
17:04 anatolyv hmm, CJK radicals give us a lot of leeway.
17:04 nothingmuch true that
17:05 anatolyv they could be terrorists trying to blow up the standard.
17:05 nothingmuch but i couldn't resist
17:05 anatolyv i know what you mean
17:05 nothingmuch audreyt: you realily should get creative control over this
17:07 nothingmuch of course, we require the cameo appearance of a CANADIAN SYLLABICS MOOSE-CREE SK
17:08 nothingmuch right next to it, in 150C-150F there are various batman effects
17:08 nothingmuch including SPWA and SKWA
17:09 nothingmuch and ofcourse what's a good movie without a $2 million INTORROBANG in the climactic scene
17:12 nothingmuch w 16
17:24 crem joined perl6
17:30 pva-UF is now known as IAmFuzzyLogic
17:30 IAmFuzzyLogic is now known as pva-UF
17:33 miyagawa_ joined perl6
17:40 mako132 joined perl6
17:41 Southen joined perl6
17:58 nperez joined perl6
18:04 pva-UF joined perl6
18:05 pva-UF is now known as IAmFuzzyLogic
18:05 IAmFuzzyLogic is now known as pva-UF
18:20 iblechbot joined perl6
18:25 elmex joined perl6
18:28 Limbic_Region joined perl6
18:33 rodi joined perl6
18:42 avar joined perl6
19:00 ruoso joined perl6
19:03 revdiablo joined perl6
19:26 [particle] joined perl6
19:37 rodi joined perl6
19:38 * smash_ good evening
19:40 dolmen joined perl6
19:48 cmarcelo joined perl6
19:55 svnbot6 r14724 | audreyt++ | * Pugs.Internals: Refactor all Pugs.Internals functions into
19:55 svnbot6 r14724 | audreyt++ |   five modules; Pugs.Internals now no longer exports anything
19:55 svnbot6 r14724 | audreyt++ |   by itself; it merely re-exports from:
19:55 svnbot6 r14724 | audreyt++ |     Pugs.Internals.Cast
19:55 svnbot6 r14724 | audreyt++ |     Pugs.Internals.Global
19:55 svnbot6 r14724 | audreyt++ |     Pugs.Internals.ID
19:55 svnbot6 r14724 | audreyt++ |     Pugs.Internals.Monads
19:55 svnbot6 r14724 | audreyt++ |     Pugs.Internals.String
19:55 svnbot6 r14724 | audreyt++ |   The plan is to move MO.Util into Pugs.Internals space to
19:55 svnbot6 r14724 | audreyt++ |   avoid code duplication, and move Eval-monad-specific parts
19:55 svnbot6 r14724 | audreyt++ |   of MO into Pugs.Class space.  Stay tuned. :-)
19:57 wolverian whoa!
19:57 cmarcelo yay
19:58 svnbot6 r14725 | audreyt++ | * MO.C3 is no more; it's now just Pugs.Class.C3.
20:00 svnbot6 r14726 | audreyt++ | * si.hs - random scribbling.  Not going to happen in this
20:00 svnbot6 r14726 | audreyt++ |   space -- more likely, the entire Pugs.Val will be converted
20:00 svnbot6 r14726 | audreyt++ |   to Pugs.Class-style autoboxers instead.  More work toward
20:00 svnbot6 r14726 | audreyt++ |   that direction on the plane...
20:02 cmarcelo audreyt: any "groundwork" task left?
20:02 audreyt oh, it's all groundwork ;)
20:02 audreyt you can look at docs/Perl6/Spec/Functions.pod and src/Pugs/Prim
20:02 audreyt and try to figure out all methods (instead of subroutines) within builtin classes
20:03 audreyt e.g. sqrt() will probably become Num.sqrt
20:03 audreyt etc; and list them in a big table of some kind (see si.hs:36)
20:03 audreyt you don't have to fill in the body
20:03 audreyt just the method names
20:04 audreyt for list of builtin classes see S06
20:04 audreyt warning: there are _many_ holes. all wee need at this stage is to convert Pugs.Prim ones
20:04 audreyt basic principle: if it's unary function it's very likely a method
20:05 audreyt if it's binary but arg0 dominates (i.e. exp()) then it's method, otherwise it's multisub (i.e. infix:<+>)
20:05 audreyt other than that... improvise :) I'd like the Pugs.Prim table at the bottom of it be deleted down to subs-only
20:06 audreyt ask around when you get stuck or see ambiguity. but most of the time just improvise.
20:06 audreyt once I land to Taipei I can hook the new Pugs.Class/Pugs.Val system with that big table
20:06 audreyt and we'll go from there
20:06 audreyt you can safely ignore container types (Scalar, Array, Hash) as they require special treatment from Pugs.Types.*
20:07 audreyt I'll do that part.
20:07 cmarcelo ok.. i'll work on that then. just a question: monadic funcs like operating on Sockets etc, will work fine only demanding a different mkBoxMethod function, right?
20:07 audreyt correct
20:08 audreyt the idea is to make
20:08 audreyt mkBoxMethod
20:08 audreyt a full polymorphic thing
20:08 audreyt based on e.g. a typeclass
20:08 audreyt so you can feed it whatever function type
20:08 audreyt and it finds a way to promote it into a ResponderInterface entr
20:08 audreyt you can work on that also. it's a fun puzzle
20:08 audreyt meanwhile I'll continue merging Pugs.Val with MO, and promote newland vals into MO objects
20:09 araujo joined perl6
20:09 audreyt my plane will take off soon... see you in maybe 3hr (sao paolo), maybe 16hr (houston), or maybe 24+hr (taipei)
20:09 audreyt depending on lounge connectivity again
20:10 cmarcelo oka
20:10 audreyt adeus
20:10 cmarcelo tchau :)
20:11 [particle] bon voyage
20:13 cmarcelo audreyt: 'adeus' has a very strong meaning IMHO, as in "i'm going and probably will never come back or see you folks again", which hopefully is false :o).. but I'm just another pt_BR speaker hehe.
20:14 audreyt oh. :)
20:14 audreyt babelfish--
20:14 audreyt tchau :)
20:21 araujo joined perl6
20:33 Aankhen`` joined perl6
20:33 justatheory joined perl6
20:35 BooK_ joined perl6
20:38 duend joined perl6
20:40 nothingmuch oh woot!
20:40 nothingmuch if i understand correctly Pugs.Prim is becoming really OO?
20:40 nothingmuch audreyt++
20:40 nothingmuch cmarcelo++
20:47 cmarcelo nothingmuch: that's the idea
20:55 svnbot6 r14727 | fglock++ | MP6 - parses Emitter.pm
20:56 weinig is now known as weinig|bbl
21:02 cjeris joined perl6
21:07 thepler joined perl6
21:10 anatolyv ?seen TimToady
21:10 lambdabot TimToady is in #perl6. I last heard TimToady speak 15h 55m 9s ago.
21:20 scsibug joined perl6
21:28 thepler joined perl6
21:30 dduncan joined perl6
21:38 justatheory joined perl6
21:39 wilx joined perl6
21:41 lichtkind joined perl6
21:42 hexmode joined perl6
21:56 weinig|bbl is now known as weinig
22:01 cm joined perl6
22:08 gnuvince joined perl6
22:23 ivas left perl6
22:25 araujo joined perl6
22:35 jferrero joined perl6
22:41 dolmen ?seen audreyt
22:41 lambdabot audreyt is in #perl6, #haskell and #ghc. I last heard audreyt speak 2h 26m 6s ago.
22:53 rdice joined perl6
23:14 crem_ joined perl6
23:36 SubStack joined perl6

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

Perl 6 | Reference Documentation | Rakudo