svn switch --relocate svn.openfoundry.org/pugs svn.pugscode.org/pugs/ | run.pugscode.org | spec.pugscode.org | paste: sial.org/pbot/perl6 | pugs.blogs.com Set by lumi on 8 November 2006. |
|||
00:17
diakopter joined
00:21
vel6608 joined
|
|||
diakopter | ?seen TimToady | 00:30 | |
lambdabot | TimToady is in #perl6. I last heard TimToady speak 2h 7m 5s ago. | ||
TimToady | diakopter: you lookin' fer me? | 00:48 | |
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. | ||
lambdabot | audreyt: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
audreyt | TimToady: the spec seems to think one can parameterize them as needed, but treat it as a generic "Seq" when possible | 00:51 | |
TimToady: is it true that the two (allegedly competing, irreconcilable) are explicit design goals? | 00:52 | ||
00:52
penk joined
|
|||
audreyt | i.e. if someone say | 00:52 | |
Seq[Int, Str] | |||
one should get what they want | |||
but Seq itself is both Any on member type, and _also_ Any on length, as long as it's finite. | 00:53 | ||
same for Array, Hash, etc. | |||
if that's the case, then I'll research for some way to reconcile the irreconcilable as usual :) | |||
00:56
eggzeck joined
|
|||
TimToady | diakopter: have sent your friend a commit bit. please tell them it is customary to add yourself to AUTHORS as first checkin. | 00:56 | |
diakopter | TimToady: thanks | 00:57 | |
TimToady | however, if they want to post incognito, I can understand why some people might be in that position. | ||
audreyt: that's an interesting question that I don't really have an answer to. | 00:59 | ||
audreyt nods. | |||
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) | ||
r14721 | fglock++ | - Grammar.parse() compiles 'CompUnit's | |||
r14721 | fglock++ | - 'grammar' compiles to CompUnit | |||
r14721 | fglock++ | - method signature is optional | |||
r14721 | fglock++ | - more prefix ops\n- 'sub' | |||
r14721 | fglock++ | - 'for' emitter | |||
TimToady | dunno | ||
the type passed to Seq[] is sort of an inside out Sig | 01:02 | ||
audreyt | because Seq[] is really a tyfun | ||
i.e. a type function that you feed in some type params | |||
to get back an type instance from a type family | |||
i.e. exactly as normal functions, but happens at typespace | |||
it's not Sig... it's a Capture as well | 01:03 | ||
Scalar[of => Int] | |||
the thing with Seq is that it has (potentially a large number) of subtypes within it | 01:04 | ||
and because our Array are of Scalar | |||
you can also place constraints on individual Scalar elements | |||
i.e. have | |||
Array[Int, Str, *] | |||
passthru it into the first two Scalar it allocs | 01:05 | ||
so they receive Int and Str constraints | |||
there are ways to make all this work; I just want to make sure it's worthwhile to make them work :) | |||
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 | ||
oh btw. what's ~Str? | |||
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.) | ||
oh, that's two milestones from now, so it won't affect either | |||
it's just for my brainsync purpose :) | |||
TimToady | ~Str? Do you mean ^Str? | ||
audreyt | ~Str. | ||
~::Str | |||
+::Int | |||
?::Bool | |||
lambdabot | Unknown command, try @list | ||
audreyt | etc. | 01:08 | |
TimToady | ?eval ~Str | ||
audreyt | i.e. what is their prototypical payload? | ||
01:08
evalbot_r14720 is now known as evalbot_r14721
|
|||
evalbot_r14721 | "Str" | 01:08 | |
audreyt | yeah, I know what I've implemented :) and it's modelled after p5 | ||
where it's coerced asif it's a string | |||
of the name of the class | |||
TimToady | seems sane | ||
01:09
crythia1 joined
|
|||
audreyt | k. | 01:09 | |
TimToady | need to go help cook dinner before mother-in-law pitches a fit... | ||
audreyt | sure. have fun! | ||
TimToady | well think about Seq a little. & | ||
audreyt | and I'll fly tomorrow after waking up | ||
TimToady | *will | ||
audreyt | so see you in ~2day actually | ||
airport lounge notwithstanding | 01:10 | ||
TimToady | have the appropriate amount of fun... | ||
audreyt | :) | ||
which is likely optimized. | |||
hopefully not optimized away... | |||
TimToady | have a smooth sequence... | ||
& | |||
smash_ good evening | 01:15 | ||
01:17
polettix joined
01:25
dmq joined
01:30
araujo joined
|
|||
svnbot6 | r14722 | audreyt++ | * MO: Beginning of autoboxing, Str.reverse, and related | 01:30 | |
r14722 | audreyt++ | metastructure, prototyped in si.hs, but will soon move | |||
r14722 | audreyt++ | into Pugs.Val. | |||
01:32
Pomin joined,
vell joined
01:36
vell joined,
dgo joined
01:37
vell joined
01:51
weinig is now known as weinig|zZz
01:52
duend joined
01:54
dduncan joined
|
|||
svnbot6 | r14723 | audreyt++ | * MO: Normalize the Method class. | 02:09 | |
r14723 | audreyt++ | * Make autoboxing and invocation really easy via some sugars; | |||
r14723 | audreyt++ | prototyped the Str and Int classes. | |||
02:23
genjix joined
02:32
cls_bsd joined
02:48
cjeris left,
eggzeck joined
03:01
dduncan left
03:04
kanru joined
03:25
crythia1 left
03:35
araujo joined
03:42
stevan joined
04:05
brent[] joined
04:15
bluefoxicy joined
|
|||
bluefoxicy | someone told me to ask TimToady about interpreter design? | 04:15 | |
cj raises his hand | 04:17 | ||
cj turns on his logger | 04:18 | ||
bluefoxicy | hi cj :P | 04:19 | |
cj | hey there bluefoxicy | ||
he's a busy guy. I recommend idling | |||
bluefoxicy | kay | ||
TimToady | I know several good ways not to write an interpreter... | 04:23 | |
bluefoxicy | haha | 04:24 | |
I've only really got one simple question for now, because I know too little to actually ask useful questions. | |||
If you don't mind anyway? :) | 04:25 | ||
TimToady | there's no harm in asking | ||
bluefoxicy | ok well :) | ||
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 | ||
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. | |||
SamB | but, apparantly not very well | 04:27 | |
I mean, not for JVM... | |||
that is, even with JIT, the JVM still doesn't run Java programs very fast | |||
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,
dgo left
|
|||
bluefoxicy | Anyway | 04:28 | |
SamB | sorry to be unclear | ||
I think JVM is maybe not a very good bytecode | |||
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... | ||
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 | ??? | ||
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 | ||
SamB | k | ||
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 | ||
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:31 | ||
Step (3) is tens or hundreds of instructions; step (2) is maybe a dozen or so. | 04:32 | ||
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 | ||
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
|
|||
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:34 | |
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:35 | ||
TimToady | I think whether it's a win would depend on how the data is structured. | 04:36 | |
SamB | hmm. | ||
bluefoxicy | I actually wrote that out a bit more in kerneltrap.org/node/7350 starting at paragraph... 9 | ||
TimToady: yes, of course; also it would depend on how instructions were grouped | |||
TimToady | you could lose all your performance gain just trying to get all your data lined up to feed to ADD or whatever | ||
SamB thinks the Python VM has some kind of shortcut jumps in it for instructions that common follow eachother... | |||
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 | ||
TimToady | Samb: well, so does Perl 5... | ||
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? | ||
TimToady | usually cache behavior is the overriding factor these days | ||
SamB | anyway, it wasn't the function calls, I'm pretty sure... | ||
I think it was within a function | |||
maybe to avoid the switch tables or something | 04:39 | ||
bluefoxicy | TimToady: function calls don't slow you down? | ||
TimToady | it's architecture dependent how much they slow you down. | ||
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? | ||
TimToady | again, highly architecture dependent. | ||
SamB | bluefoxicy: don't you suppose the CPUs are good at JITting those? | ||
(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 | ||
On a vax you try to avoid lots of little functions, but on some modern architectures you actually try to maximize that... | |||
bluefoxicy | hmm. | ||
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 | ||
the differences between in-cache and out-of-cache performance tend to dominate these days. | 04:43 | ||
bluefoxicy | interesting. | ||
SamB | RAM is so slow in these GHz days | ||
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... | ||
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
|
|||
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? | ||
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 | ||
bluefoxicy | TimToady: rather, the length of code paths | ||
04:47
FuzzyLogic is now known as IAmFuzzyLogic
|
|||
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 | |
04:48
IAmFuzzyLogic is now known as pva-UF
|
|||
TimToady | the usual dictum of "profile first" doesn't really help. | 04:48 | |
because you don't know which parts of your interpreter will be in the middle of someone's tight loop. | |||
bluefoxicy | mm o.o | 04:49 | |
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 | |
but that tends to work against having a consistent semantic model, such as universal continuations and such | |||
bluefoxicy | so are you saying that the rules of designing a CPU are different than the rules of designing an interpreter? | ||
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. | ||
SamB | if you are designing a CPU, you can actually decide what hardware to put on it. | ||
TimToady | at least with a CPU you pretty much know what you're working with down to the metal. | ||
but an interpeter is likely to be ported to other architectures. | 04:52 | ||
bluefoxicy | mmm | ||
TimToady | it also really depends heavily on what kind of programming you're going to do on top of it. | ||
functional programming puts an entirely different set of stress on your interpreter than OO does. | 04:53 | ||
bluefoxicy | that's interesting | ||
I thought OO would be "fifty times more instructions" | |||
like C++ is | |||
TimToady | depends on your model. | ||
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 | ||
like Java | |||
a language AND an interpreter | |||
SamB | Java ain't an interpreter | 04:54 | |
for instance, I have this here Java program | |||
bluefoxicy | java has its own VM written to handle Java... heh. | ||
SamB gestures towards trang | |||
bluefoxicy | SamB: you know what I mean, quit nitpicking over semantics :> | ||
SamB | that is in a native x86 ELF binary | ||
no interpreter or anything | 04:55 | ||
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. | ||
bluefoxicy | such an interpreter? | 04:57 | |
you lost me. | |||
TimToady | such as you are proposing | ||
bluefoxicy | oh | 04:58 | |
I'm just trying to gather information; I have some obsessive compulsive knowledge thing where I try to learn everything :) | |||
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 | ||
bluefoxicy | you are losing me hard | ||
this is why I need to know everything. | |||
TimToady | some of which are not predictable, such as other species' development | ||
you can't know everything. at least, I've been trying for more than 50 years, and haven't got there yet... | 05:00 | ||
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 | ||
TimToady | you try something, and it either helps, or doesn't | ||
bluefoxicy | the universe holds a finite amount of information. | ||
TimToady | then you try something else | ||
that finite amount of information is provably a superset of your brain | |||
bluefoxicy | There are a limited number of subatomic particles in the universe, which each can store a piece of information (three, actually) | ||
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? | ||
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:03 | |
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. | ||
bluefoxicy | Kattana: technicality. | 05:05 | |
Kattana: I was never that good, ever; and I never will be. | |||
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... | ||
Kattana | bluefoxicy, its a mere implimentation problem, anything is possible. | ||
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 | ||
oh God my stat teacher hated me | 05:07 | ||
TimToady | God was your stat teacher? | 05:08 | |
bluefoxicy | TimToady: no, that's not it. | ||
05:08
rlb3 joined
|
|||
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:08 | |
and anyway my stat teacher gave us the task of flipping a coin 100 times and predicting the outcome | 05:09 | ||
I did 98/2/100 that day, only missed 2 of them. | |||
05:09
thepler joined
|
|||
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... | ||
bluefoxicy | hehe | ||
TimToady | except he hadn't written that play yet... | ||
bluefoxicy | lol | 05:11 | |
Kattana | TimToady, if you have not already I suggest reading 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:13 | |
TimToady | well, Scott Card thinks about a lot of things, including drama. | 05:14 | |
bluefoxicy | I'm out of thoughts | ||
and dr who is on | |||
Kattana | mhmm, and it might have been one of the following books actually, I read them in series so... | ||
TimToady | seems a lot like a Friday night... | 05:15 | |
Kattana | What a coincidence. | 05:17 | |
05:24
eggzeck joined
|
|||
cj | ah, Ender's Game. I was thinking about that tonight, too. | 05:26 | |
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:27 | ||
bluefoxicy | I hate all fiction for some reason. | 05:29 | |
Reading fiction is the most boring, irritating experience ever o.o | |||
I think it's because I can't read a page a second, so the information flow is far too slow. | |||
Technical reading is ok because the information is thicker and it takes longer to process, so my brain is occupied. | 05:30 | ||
05:31
kisu joined
|
|||
cj | bluefoxicy: yes? | 05:36 | |
bluefoxicy: don't most fiction pieces have something to say about fact? | |||
aren't most "fact" pieces just theories and guesses anyway? | |||
bluefoxicy | nevermind :) | 05:37 | |
huh | 05:39 | ||
this commercial shows a chick using the internet | |||
I call false advertisement | |||
05:47
penk joined
05:53
bluefoxicy left,
duend is now known as duend`sleeping
05:59
SubStack joined
06:10
Southen_ joined
06:15
BooK_ joined
06:16
justatheory joined
06:36
miyagawa_ joined
06:41
penk joined
06:51
Schwern joined,
wolverian joined
07:16
Southen joined
07:28
eggzeck joined
|
|||
cognominal | how do I get the type of an object? | 07:59 | |
gotit: .WHAT | 08:03 | ||
08:10
kanru joined
08:23
synth joined,
synth left
08:40
kanru joined
08:47
iblechbot joined
09:13
pjmm joined
09:27
larsen_ joined
10:14
crem joined
10:16
ludan joined
10:18
elmex joined
10:20
buetow joined
10:27
chris2 joined
10:38
araujo joined
11:19
xinming_ joined
11:41
BooK joined
11:42
BrendaSexy joined
12:10
Psyche^ joined
12:12
rodi joined
|
|||
meppl | guten morgen | 12:16 | |
12:22
elmex joined
12:24
camenix joined
12:27
BrendaSexy left,
Psyche^ is now known as Patterner
12:32
DHGE joined
12:41
anatolyv joined
12:47
eggzeck joined
|
|||
prism | see you all sunday night! mini holiday time | 12:56 | |
13:24
penk joined
13:39
weinig joined
13:51
rodi joined
13:53
xinming_ is now known as xinming
14:03
thepler joined
14:30
trym_ joined
14:32
Limbic_Region joined
14:39
eggzeck joined
14:59
jferrero joined
15:16
mako132 joined
15:27
camenix left
15:51
miyagawa_ joined
15:53
seano joined
16:15
mako132 joined
|
|||
nothingmuch | 3morning | 16:19 | |
16:33
cm joined
|
|||
anatolyv | hey nothingmuch | 16:53 | |
nothingmuch | yo homie | 16:54 | |
16:55
BooK joined
|
|||
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 | ||
SamB | hah | ||
nothingmuch | anatolyv: that's what the animation primitives are for | 16:57 | |
anatolyv | like, Harrison Ford could be 29DE INFINITY NEGATED WITH VERTICAL BAR | ||
nothingmuch | totally | 16:58 | |
Tom cruise could be HEXAGRAM FOR DIFFICULTY AT THE BEGINNING | 16:59 | ||
anatolyv | i need a female lead for the cute little 325C;CIRCLED NUMBER THIRTY TWO though. | 17:00 | |
17:00
miyagawa_ joined
|
|||
nothingmuch | what about her assistant, DIGIT FIVE FULL STOP ? | 17:00 | |
17:01
vel joined
|
|||
anatolyv | yeah, that too. | 17:02 | |
17:02
trym_ is now known as trym
|
|||
nothingmuch | oh! we can have kisrtie alley as CJK RADICAL COW | 17:02 | |
17:03
turrepurre joined
|
|||
nothingmuch | HEAVY EXCLAMATIONMARK ORNAMENT! a BLACK LEFTWARDS BULLET just ricoched RIGHTWARDS WHITE ARROW FROM WALL | 17:03 | |
anatolyv | hmm, CJK radicals give us a lot of leeway. | 17:04 | |
nothingmuch | true that | ||
anatolyv | they could be terrorists trying to blow up the standard. | 17:05 | |
nothingmuch | but i couldn't resist | ||
anatolyv | i know what you mean | ||
nothingmuch | audreyt: you realily should get creative control over this | ||
of course, we require the cameo appearance of a CANADIAN SYLLABICS MOOSE-CREE SK | 17:07 | ||
right next to it, in 150C-150F there are various batman effects | 17:08 | ||
including SPWA and SKWA | |||
and ofcourse what's a good movie without a $2 million INTORROBANG in the climactic scene | 17:09 | ||
w 16 | 17:12 | ||
17:24
crem joined
17:30
pva-UF is now known as IAmFuzzyLogic,
IAmFuzzyLogic is now known as pva-UF
17:33
miyagawa_ joined
17:40
mako132 joined
17:41
Southen joined
17:58
nperez joined
18:04
pva-UF joined
18:05
pva-UF is now known as IAmFuzzyLogic,
IAmFuzzyLogic is now known as pva-UF
18:20
iblechbot joined
18:25
elmex joined
18:28
Limbic_Region joined
18:33
rodi joined
18:42
avar joined
19:00
ruoso joined
19:03
revdiablo joined
19:26
[particle] joined
19:37
rodi joined
|
|||
smash_ good evening | 19:38 | ||
19:40
dolmen joined
19:48
cmarcelo joined
|
|||
svnbot6 | r14724 | audreyt++ | * Pugs.Internals: Refactor all Pugs.Internals functions into | 19:55 | |
r14724 | audreyt++ | five modules; Pugs.Internals now no longer exports anything | |||
r14724 | audreyt++ | by itself; it merely re-exports from: | |||
r14724 | audreyt++ | Pugs.Internals.Cast | |||
r14724 | audreyt++ | Pugs.Internals.Global | |||
r14724 | audreyt++ | Pugs.Internals.ID | |||
r14724 | audreyt++ | Pugs.Internals.Monads | |||
r14724 | audreyt++ | Pugs.Internals.String | |||
r14724 | audreyt++ | The plan is to move MO.Util into Pugs.Internals space to | |||
r14724 | audreyt++ | avoid code duplication, and move Eval-monad-specific parts | |||
r14724 | audreyt++ | of MO into Pugs.Class space. Stay tuned. :-) | |||
wolverian | whoa! | 19:57 | |
cmarcelo | yay | ||
svnbot6 | r14725 | audreyt++ | * MO.C3 is no more; it's now just Pugs.Class.C3. | 19:58 | |
r14726 | audreyt++ | * si.hs - random scribbling. Not going to happen in this | 20:00 | ||
r14726 | audreyt++ | space -- more likely, the entire Pugs.Val will be converted | |||
r14726 | audreyt++ | to Pugs.Class-style autoboxers instead. More work toward | |||
r14726 | audreyt++ | that direction on the plane... | |||
cmarcelo | audreyt: any "groundwork" task left? | 20:02 | |
audreyt | oh, it's all groundwork ;) | ||
you can look at docs/Perl6/Spec/Functions.pod and src/Pugs/Prim | |||
and try to figure out all methods (instead of subroutines) within builtin classes | |||
e.g. sqrt() will probably become Num.sqrt | 20:03 | ||
etc; and list them in a big table of some kind (see si.hs:36) | |||
you don't have to fill in the body | |||
just the method names | |||
for list of builtin classes see S06 | 20:04 | ||
warning: there are _many_ holes. all wee need at this stage is to convert Pugs.Prim ones | |||
basic principle: if it's unary function it's very likely a method | |||
if it's binary but arg0 dominates (i.e. exp()) then it's method, otherwise it's multisub (i.e. infix:<+>) | 20:05 | ||
other than that... improvise :) I'd like the Pugs.Prim table at the bottom of it be deleted down to subs-only | |||
ask around when you get stuck or see ambiguity. but most of the time just improvise. | 20:06 | ||
once I land to Taipei I can hook the new Pugs.Class/Pugs.Val system with that big table | |||
and we'll go from there | |||
you can safely ignore container types (Scalar, Array, Hash) as they require special treatment from Pugs.Types.* | |||
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? | ||
audreyt | correct | ||
the idea is to make | 20:08 | ||
mkBoxMethod | |||
a full polymorphic thing | |||
based on e.g. a typeclass | |||
so you can feed it whatever function type | |||
and it finds a way to promote it into a ResponderInterface entr | |||
you can work on that also. it's a fun puzzle | |||
meanwhile I'll continue merging Pugs.Val with MO, and promote newland vals into MO objects | |||
20:09
araujo joined
|
|||
audreyt | my plane will take off soon... see you in maybe 3hr (sao paolo), maybe 16hr (houston), or maybe 24+hr (taipei) | 20:09 | |
depending on lounge connectivity again | |||
cmarcelo | oka | 20:10 | |
audreyt | adeus | ||
cmarcelo | tchau :) | ||
[particle] | bon voyage | 20:11 | |
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:13 | |
audreyt | oh. :) | 20:14 | |
babelfish-- | |||
tchau :) | |||
20:21
araujo joined
20:33
Aankhen`` joined,
justatheory joined
20:35
BooK_ joined
20:38
duend joined
|
|||
nothingmuch | oh woot! | 20:40 | |
if i understand correctly Pugs.Prim is becoming really OO? | |||
audreyt++ | |||
cmarcelo++ | |||
cmarcelo | nothingmuch: that's the idea | 20:47 | |
svnbot6 | r14727 | fglock++ | MP6 - parses Emitter.pm | 20:55 | |
20:56
weinig is now known as weinig|bbl
21:02
cjeris joined
21:07
thepler joined
|
|||
anatolyv | ?seen TimToady | 21:10 | |
lambdabot | TimToady is in #perl6. I last heard TimToady speak 15h 55m 9s ago. | ||
21:20
scsibug joined
21:28
thepler joined
21:30
dduncan joined
21:38
justatheory joined
21:39
wilx joined
21:41
lichtkind joined
21:42
hexmode joined
21:56
weinig|bbl is now known as weinig
22:01
cm joined
22:08
gnuvince joined
22:23
ivas left
22:25
araujo joined
22:35
jferrero joined
|
|||
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
23:14
crem_ joined
23:36
SubStack joined
|