pugs.blogs.com/dist/Perl6-Pugs-6.2.13.tar.gz released! | run.pugscode.org | spec.pugscode.org | paste: sial.org/pbot/perl6 | pugs.blogs.com Set by audreyt on 17 October 2006. |
|||
TreyHarris | audreyt: ok, but which of those should have worked? | 00:00 | |
i don't see any "unbinding" syntax in synopses | |||
audreyt | $x := Scalar.new; | ||
should have worked. | |||
Scalar(6) may work but it's not yet clearly specced | 00:01 | ||
but $x := Scalar.new should always work. | |||
to unbind just bind to undef ;) | |||
TreyHarris | ok, so my tests should be for both $x := Scalar.new and $x := undef | ||
thanks! | 00:02 | ||
audreyt | but then you can't assign into $x | ||
because Undef isn't a good lvalue | |||
TreyHarris | oh... | ||
audreyt | i.e. | ||
$x := undef ; $x = 5 | |||
will fail. | |||
TreyHarris | so "my $x" is syntactic sugar for.... what? | ||
audreyt | my $x is Scalar | ||
which binds $x to Scalar.new | |||
upon each pad entry | |||
TreyHarris | oh, because Scalar::infix:<=> does that? | 00:03 | |
audreyt | hm? | ||
my $x; | |||
is same as | |||
my $x is Scalar := Scalar.new; | |||
rather, my $x is Scalar; ENTER { $x := Scalar.new } | |||
TreyHarris | but "my Moose $x;" is not the same as "my $x is Moose; ENTER { $x := Moose.new }". | 00:04 | |
clkao | audreyt: so commitbit worky? | ||
TreyHarris | so where's the magic, if not in Scalar's =? | ||
audreyt | well, neither is "my Scalar $x". | ||
look closer :) | |||
TreyHarris cocks his head sidewise | 00:05 | ||
audreyt | my PROTO-CONSTRAINT $x is CONTAINER-CLASS | ||
"my $x" is saying | |||
my Any $x is Scalar | |||
"my Moose $x" is saying | |||
my Moose $x is Scalar | |||
or actually | |||
my Moose $x is Scalar of Moose | |||
or actually | |||
my $x is Scalar of Moose; ENTER { $x := Scalar.new(::Moose) } | 00:06 | ||
TreyHarris | ok, then "my $x is Moose;" should be the same as "my $x is Moose; ENTER { $x := Moose.new }" then? so it's a bug? | ||
00:06
_SamB_bot joined
|
|||
audreyt | what's a bug? | 00:06 | |
"my $x is Moose" is useful when you don't want to assign into $x | |||
or when Moose actually handles infix:<=>. | |||
TreyHarris | ?eval my $x is Moose; $x.WHAT | 00:07 | |
evalbot_r14596 | ::Scalar | ||
audreyt | that is a bug. | ||
clkao: aye, worky. do you have a way to measure bandwidth? | |||
TreyHarris | ok. should complain at compiletime that Moose is undefined, or at runtime that Moose::infix:<=> is undefined? | ||
audreyt | mod_bwshare ? | ||
TreyHarris: well, the former | |||
TreyHarris | roger dodger. | 00:08 | |
00:09
Psyche^_ joined
|
|||
audreyt | the understanding of this interaction wasn't clear to me until this summer :) | 00:09 | |
00:09
Psyche^_ is now known as Patterner
|
|||
audreyt | so Pugs's old runcore lags behind a lot. | 00:09 | |
which is what all this newVal newExp thing is about :) | 00:10 | ||
TreyHarris | right. I think that's why the Lang/TSa/any(@Larry, me, etc.) conversations go on for so long.... it's very, very difficult to extrapolate the core from the synopses, so since we have a known-incorrect core for experimentation... | 00:11 | |
thanks, i'll go write tests now | |||
svnbot6 | r14597 | fglock++ | MiniPerl6 - implemented "If", "When", "Int", "Undef" nodes | ||
clkao | audreyt: svn? jifty? | 00:12 | |
audreyt | clkao: moddav | 00:13 | |
anatolyv | ?eval { $x } | 00:17 | |
00:17
evalbot_r14596 is now known as evalbot_r14597
|
|||
evalbot_r14597 | \undef | 00:17 | |
anatolyv | ?eval { $another_x } | ||
evalbot_r14597 | \undef | ||
TreyHarris boggles | |||
anatolyv | evalbot is non-strict? | ||
TreyHarris | ?eval $x = 1 | 00:18 | |
evalbot_r14597 | \1 | ||
anatolyv | ?eval { usr strict; $another_x } | ||
evalbot_r14597 | Error: No compatible subroutine found: "&strict" | ||
anatolyv | ?eval { use strict; $another_x } | ||
evalbot_r14597 | Error: *** Unsafe function 'use' called under safe modeā¤ at -e line 16, column 7-77 | ||
TreyHarris | oh, right, that's a new change | ||
anatolyv | oh well :) | ||
TreyHarris | anatolyv: it didn't used to be strict | ||
anatolyv | audreyt: my point - which I can't demonstrate with evalbot - is this: { $x; my $x } does not fail in strict mode. Is this a bug? | ||
TreyHarris | if i have a moment, i'll look and see if i can modify evalbot to let you do "strict;" or some such. use is non-safe. | 00:19 | |
anatolyv | sounds nice. | ||
clkao | audreyt: i don';t know. but i bet you can use throttle of some other stuff | 00:21 | |
00:24
silug joined
00:25
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
eviltwin_b | ...Vensre? | 00:26 | |
01:03
mako132_ joined
|
|||
svnbot6 | r14598 | audreyt++ | * Quite impossibly, most of MiniPerl6 is now parsed! | 01:15 | |
r14598 | audreyt++ | <fglock> Now let's write an emitter! | |||
r14598 | audreyt++ | <audreyt> Or two... | |||
01:21
dmq joined
01:22
mako132_ joined,
rodi joined
01:27
kanru joined
|
|||
audreyt | seen on #haskell: | 01:36 | |
02:34 < audreyt> before Pugs showed up, people used to say the only way to run perl6 code is to ship a complementary clone of larry wall with each installation of perl6... | |||
02:35 < Igloo> Of course, the advent of pugs has set back the development of cloning processes by decades | |||
eviltwin_b | heh | 01:39 | |
01:50
diakopter joined
01:59
xinming joined
02:06
scsibug joined
02:16
kanru joined
02:23
geoffb joined
02:26
_SamB_bot joined
02:33
loumz joined
03:00
shobadobs joined
03:19
stevan joined
03:20
shachaf_ joined
03:47
RHainsworth left
03:52
weinig is now known as weinig|zZz
03:55
loumz joined
03:56
penk joined
03:59
mako132_ joined,
SubStack joined
|
|||
svnbot6 | r14599 | allbery_b++ | AUTHORS: hello, world\n :) | 04:31 | |
r14599 | allbery_b++ | src/Pugs/Compat.hs: added file time tests | |||
r14599 | allbery_b++ | src/Pugs/Internals.hs, src/Pugs/Prim.hs: abstract out guts of "time" for | |||
r14599 | allbery_b++ | use in $*BASETIME and file tests | |||
r14599 | allbery_b++ | src/Pugs/Run.hs: add $*BASETIME | |||
r14599 | allbery_b++ | src/Pugs/AST.hs: document _reserved and filterUserDefinedPad; add $*BASETIME | |||
r14599 | allbery_b++ | to _reserved | |||
r14599 | allbery_b++ | src/Pugs/Prim.hs: add file time operators -M, -C, -A | |||
r14599 | allbery_b++ | src/Pugs/Prim/FileTest.hs: add implementation of file time operators | |||
r14599 | allbery_b++ | t/operators/filetest.t: correct existing file time operator tests, add a few | |||
r14599 | allbery_b++ | more, add all of them to the plan | |||
eviltwin_b | maybe I should have done it in smaller chunks :) | ||
04:45
f0rth joined
04:49
SubStack joined
05:14
eggzeck[laptop] joined
|
|||
meppl | guten morgen | 05:26 | |
05:39
drrho joined
05:55
baest joined
|
|||
jrockway | ok, i got pugs to build on openbsd :) | 05:55 | |
the issue was that the int __init in p5emebed.c conflicts with an __init function in the C library | 05:56 | ||
let's see what the test suite thinks about my renaming :) | |||
i think the C standard forbids naming a symbol with a __ prefix... it's reserved for internal compiler use | 05:57 | ||
let me go look that up | |||
eviltwin_b | correct. but one common use for __init is that it serves as a shared library initialization. | 06:06 | |
which is in fact what (a) the embed probably wants (b) libc also wants | |||
06:07
nusgnaf joined
|
|||
eviltwin_b | but openbsd, per usual, is not following the convention, so they conflict | 06:07 | |
jrockway | any objections to renaming it to something like _p5embed_init? | 06:08 | |
06:08
nusgnaf joined
|
|||
eviltwin_b | well, correct behavior is to figure out what the platform wants for a shlib initialization symbol. | 06:09 | |
on some platforms it *must* benamed __init | |||
jrockway | i see | ||
eviltwin_b | on others __init will be used a s a fallback but correct procedure is to insert a reference to the symbol in some object file section. | ||
in any case,m just renaming it will likely break other platforms | 06:10 | ||
(the linker maps __init specially on those platforms; GNU C has a way to do the magic section foo on ELF platforms, but for the general case one relies on the linker to do magic) | 06:11 | ||
jrockway | probably needs to be IFDEF'd then if people want to compile it from !ports | 06:15 | |
in ports it can just be a patch, though, depending on how y'all feel about IFDEFs | |||
06:47
mr_ank joined
06:55
mr_ank joined
07:16
mr_ank joined
07:26
mr_ank joined
08:08
esstone joined
08:14
marmic joined
08:15
iblechbot joined
08:35
larsen_ joined
08:57
kisu joined
09:22
the_dormant joined
09:23
buetow joined
09:24
larsen_ joined
09:31
kisu joined
09:52
ruoso joined
09:54
kisu joined
09:58
ludan joined
10:03
drrho joined
10:34
BooK joined
10:38
chris2 joined
11:08
jferrero joined
11:13
mr_ank joined
11:21
gene9 joined
11:30
mr_ank joined
12:14
fglock joined
12:23
cmarcelo joined
|
|||
cmarcelo | is feather ssh down or something? | 12:25 | |
lambdabot | cmarcelo: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
Juerd | cmarcelo: No. I say this from a feather ssh session :) | 12:29 | |
12:30
norageek joined
|
|||
cmarcelo | hmm. its rejecting my pass in ssh but accepting it on feather site.. (webirc). | 12:31 | |
12:32
Psyche^ joined
|
|||
cmarcelo | (hmm.. maybe is the firewall in here..) | 12:32 | |
12:47
ilogger2 joined
|
|||
xinming | @tell Juerd "Sorry, I don't know that pugs bot would take so much cpu usage. I'll renice it. | 12:56 | |
lambdabot | Consider it noted. | ||
cmarcelo | @tell audreyt re moh: with only pure functional data, how would I keep "object identity", e.g., Attached methods "points" to their origin classes, but adding methods (eg. when add the constructor to a class or sth else) actually changes the class. a maybe solution is making an indirection on this identification (via IORef).. what do you think? | 12:57 | |
lambdabot | Consider it noted. | ||
13:00
Limbic_Region joined
13:06
cmarcelo joined
|
|||
miyagawa_ | clkao++ | 13:07 | |
# for Data::Hierarchy performance improvement | |||
now svk co for plagger is 10 seconds | |||
13:15
timbunce joined
13:16
diakopter joined,
timbunce joined
|
|||
Limbic_Region | src/Pugs/Run.hs:38:7: Could not find module `System.Posix.Time': | 13:19 | |
is that a known build error? | |||
13:23
larsen_ joined
14:05
ilogger2 joined
|
|||
eviltwin_b | \first revision used EpochTime, later corrected to use the same time as everything else | 14:05 | |
Limbic_Region | I was trying to sneak in the library without the unix package but decided I had better not | ||
so I can remove the import line locally? | 14:06 | ||
things should then "just work"? | |||
eviltwin_b | yes. I'm doing a quick compile here to verify then I'll commit | 14:08 | |
Limbic_Region | well, I didn't wait for a reply - I am attempting a compile now | ||
on 8 of 92 | |||
eviltwin_b | hm, I don't understand the FileTest error | ||
Limbic_Region | what file test error? masak's ? | 14:09 | |
eviltwin_b | yes | ||
okay, it's happy here. | 14:10 | ||
14:10
Limbic_Region joined
|
|||
Limbic_Region | grrr | 14:10 | |
I am not sure that masak is Win32 | |||
masak | Limbic_Region: nope, it's CentOS here | 14:11 | |
Limbic_Region | I however am not building locally even after removing the import line | ||
perlbot nopaste | |||
perlbot | Paste your code at sial.org/pbot/perl and #perl will be able to view it | ||
lambdabot | Title: sial.org Pastebot - pasteling | ||
masak | lambdabot: you bots are so cute | ||
pasteling | "Limbic_Region" at 129.33.119.12 pasted "r14599 after removing the import System.Posix.Time line from Run.hs" (27 lines, 1.7K) at sial.org/pbot/20853 | 14:12 | |
masak | filling in for each other | ||
Limbic_Region | eviltwin_b - I won't have much more time to test/debug | 14:13 | |
eviltwin_b | huuuh. those are defined *in* Compat.hs | ||
svnbot6 | r14600 | allbery_b++ | src/Pugs/Run.hs: whoops, System.Posix.Time left over from early EpochTime-based | ||
r14600 | allbery_b++ | time code that I scrapped to match the rest of Pugs | |||
eviltwin_b | nor will I, need to get ready for work soon | ||
Limbic_Region | did you see my nopaste though - if you have ideas let me know and I will take a look | ||
eviltwin_b | yes, I saw it | 14:15 | |
hm, I think I get it | |||
yep. I can't fix it | 14:16 | ||
problem is that the stat file time calls don't exist on win32 | |||
I suppose I need to insert fail stubs | |||
Limbic_Region | please @tell audreyt as you know better than I do | 14:17 | |
today is apparently going to be a busy $work day too :-( | 14:18 | ||
14:20
iblechbot joined
|
|||
eviltwin_b | @tell audreyt it appears you can't do stat() foo on win32. committing failWith stubs now | 14:20 | |
lambdabot | Consider it noted. | ||
svnbot6 | r14601 | allbery_b++ | src/Pugs/Compat.hs: Win32 doesn't implement getFileStatus, it appears | 14:22 | |
Limbic_Region | eviltwin_b - trying build now | 14:24 | |
eviltwin_b | win32 compatibility is obviously not one of my strong points | 14:25 | |
Limbic_Region | well - hacking in something is better than hacking in nothing so eviltwin_b++ | 14:26 | |
things appear to be compiling | |||
33 of 92 | |||
svnbot6 | r14602 | allbery_b++ | t/operators/filetest.t: skip file time tests on win32 | 14:31 | |
r14603 | allbery_b++ | t/operators/filetest.t: one-line paste overshoot | 14:34 | ||
Limbic_Region | 81 of 92, look like it might make it | ||
14:43
kisu joined
14:47
shobadobs joined
|
|||
Limbic_Region | @tell eviltwin_b r14603 built fine on Win32 - thanks | 14:57 | |
lambdabot | Consider it noted. | ||
eviltwin_b | ok | ||
lambdabot | eviltwin_b: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
eviltwin_b | (will be around for about 10 minutes more) | 14:58 | |
Limbic_Region | @tell audreyt after removing the import System.Posix.Time from Run.hs and eviltwin_b++ changing to failWith stubs - Win32 compiles fine as of r14603 | ||
lambdabot | Consider it noted. | ||
Limbic_Region | ahh, didn't know | ||
eviltwin_b | @messages | ||
lambdabot | Limbic_Region said 55s ago: r14603 built fine on Win32 - thanks | ||
eviltwin_b | dunno if it hols on to those forever or something :) | ||
15:01
rlb3 joined
15:18
jferrero joined
|
|||
audreyt | eviltwin_b: you can opPerl5. | 15:20 | |
lambdabot | audreyt: You have 7 new messages. '/msg lambdabot @messages' to read them. | ||
audreyt | eviltwin_b: namely call into perl5 to get stat | ||
that's Always Our Plan now | |||
see how fork and crypt is done in Pugs.Prim | |||
the talk was a resounding success! | |||
Limbic_Region | audreyt++ | ||
audreyt | people asked a lot of perl6 questions | ||
masak | audreyt: cool. congrats | ||
audreyt | someone asked if I'm afraid fglock is forking pugs and we'll diverge | 15:21 | |
and I answer "no, because I met fglock in person. :) and that was hilarious | 15:22 | ||
and people seems feeling very upbeat about perl, even nonperl users | |||
so I suspect Brazil perl mongers is doing some good work here :) | |||
15:22
Pomin joined
|
|||
Limbic_Region | nice | 15:22 | |
masak | great | ||
audreyt | lunch now, more hacking this afternoon as I can't grok any of the pt-br talks anyway... | 15:23 | |
be back in a couple hours. | |||
Limbic_Region | audreyt - if I understood one of your last blog entries, we intentionally dropped code for certain features in favor of a unified code base and that in the interim of building that unified code base back up with those features we can just use v5; | ||
hrm, shouldn't have taken so long to type the question I guess | 15:24 | ||
masak | I'm still getting the same make error | 15:25 | |
strange | |||
maybe time to upgrade to GHC 6.6... | |||
Limbic_Region | masak - it will soon be required so make the plunge | 15:43 | |
masak plunges immediately | 15:44 | ||
15:46
polettix joined
15:52
diakopter joined
16:03
hexmode joined
|
|||
masak | plunge complete. attempting compile again... | 16:04 | |
16:12
miyagawa_ joined
16:51
DHGE joined
16:53
avar joined
17:00
DHGE joined
17:10
Debolaz2 joined
17:12
jferrero joined
17:27
polettix joined
17:28
pmurias joined
|
|||
pmurias | hi | 17:28 | |
Audrey's blog states that thing bootstraped in MiniPerl6 will be faster the the handwriten parts | 17:30 | ||
is it due to the fact the will be written with less low-speed constructs? | 17:31 | ||
eg. things witch are emulated | 17:32 | ||
TimToady | that's how I read it | 17:33 | |
audreyt | pmurias: correct. for example, the calling convention will be so simple that te call site syntax is exactly as normal perl5 calls | 17:43 | |
17:43
rodi joined
|
|||
nothingmuch grazes | 17:43 | ||
nothingmuch also greets the hackathoners | |||
xerox | have you taken part to the hackaton? | 17:44 | |
nothingmuch ? | |||
no, i was hiking | |||
and now i'm pooped | |||
xerox | er. | ||
[particle] | moose poop | ||
nothingmuch | both activities were not being performed in .br | ||
nothingmuch woke up today, and proceeded to nap on the couch, subsequently resting in the arm chair | 17:45 | ||
audreyt | fglock is giving a p6 crash course to conisli people | ||
xerox | alright | ||
do you know that there are the videos online of the event? | |||
nothingmuch | oh! cool | ||
xerox | @yarr | ||
lambdabot | I'd like to drop me anchor in her lagoon | ||
audreyt | I'm back at my room going to take a nap and then finish up commitbit transition; ook up iveminder as our todo list, and sketch up some microgrant ideas, and other administrivia. oh and also finish up emitter design | 17:46 | |
eviltwin_b | I'm not going to touch win32 stuff, sinced (as I demonstrated) I can't test it | ||
audreyt | that line should read "hook up hiveminder" | ||
nothingmuch ooks up a CPAN | |||
xerox | Ook! Ook? | ||
Ć¹ | |||
@google site:wikipedia.org ook programming language | 17:47 | ||
lambdabot | en.wikipedia.org/wiki/Brainfuck | ||
xerox | Er. | ||
audreyt | @tell cmarcelo you can use IORef, or you can use recursive-do notation ("mdo"). I'd suggest ioref for ease of mplementation | 17:48 | |
lambdabot | Consider it noted. | ||
nothingmuch | audreyt: what is that for? | 17:51 | |
the mutable fields of the classes? | |||
audreyt | nothingmuch: yes | 17:53 | |
nothingmuch | please ignore the 'is rw' | ||
make them all ro | |||
that's just out of laziness because we can in perl | |||
but moh should be purely functional | |||
audreyt | how do you attach methods ten | 17:54 | |
then | |||
nothingmuch | that's for pugs | ||
to use moh pugs will map the mutable model to the pure ones | |||
audreyt | can you add comments on the MO code where such mapping will suppose to happen? | 17:55 | |
that'd help caio and me a lot | |||
nothingmuch | nowhere in the mo code | ||
that is the responsibility of moh using code, i guess | |||
the structure of the mutable metaclasses should be optimized for the convenience of pugs' implementation | 17:56 | ||
as long as it's easily translatable to moh before pugs uses moh it still makes sense | 17:57 | ||
that way moh is useful for systems which don't care about mutable metaclasses | |||
audreyt | ok | ||
nothingmuch | sorry for blabberring, i'm not very coherent | ||
that sentance wasn't coherent either... it was ambiguously redundant ;-) | |||
17:59
diakopter joined
|
|||
audreyt | bbiab... | 17:59 | |
nothingmuch | @tell cmarcello please backlog for around the time audreyt's moosage was sent... unless she objects i think i ruled otherwise | ||
lambdabot | Consider it noted. | ||
pmurias | audreyt: thanks | 18:05 | |
Limbic_Region | audreyt - if I understood one of your last blog entries, we intentionally dropped code for certain features in favor of a unified code base and that in the interim of building that unified code base back up with those features we can just use v5; | 18:10 | |
18:16
ludan joined
18:17
hexmode joined
|
|||
nothingmuch | audreyt: please pong, i'd like to toss around an idea before p6l-ing | 18:24 | |
18:34
loumz joined
|
|||
jrockway | hmm, so i'm smoking trunk on openbsd now | 18:34 | |
and it's been printing "# Actual: undefined" for the last hour or so | 18:35 | ||
shoudl I just kill the smoke? | |||
loumz | a little question, 1 == 0 in the pugs shell returns Bool::False ... how do I print this Bool::False value so that it is visible? | 18:42 | |
svnbot6 | r14604 | particle++ | v6: whitespace cleanup and editor hints | ||
jrockway | oh, it finished :) | 18:43 | |
nothingmuch | loumz: what do you mean by visible? | 18:48 | |
loumz | nothingmuch: print Bool::False doesn't print anything... how do I convert this Bool::False into a string representation like the way the pugs shell does it | 18:49 | |
nothingmuch | .perl | ||
?eval Bool::False | |||
evalbot_r14604 | Bool::False | ||
nothingmuch | ?eval Bool::False.perl | ||
evalbot_r14604 | "Bool::False" | ||
loumz | nothingmuch: thanks | ||
nothingmuch | .perl is a dumper | ||
much like Data::Dumper | |||
?eval Bool::False.yaml | 18:50 | ||
evalbot_r14604 | "--- false\n" | ||
nothingmuch | also useful =) | ||
loumz | nice :) | ||
nothingmuch | foooooo | 18:54 | |
19:13
frederico joined
19:28
cmarcelo joined
|
|||
nothingmuch | hola cmarcelo | 19:28 | |
cmarcelo | hey | 19:29 | |
lambdabot | cmarcelo: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
cmarcelo | @moosages | ||
lambdabot | audreyt said 1h 40m 12s ago: you can use IORef, or you can use recursive-do notation ("mdo"). I'd suggest ioref for ease of mplementation | ||
nothingmuch | err, two | ||
cmarcelo | nothingmuch: its cmarcelo with only one L | ||
nothingmuch | i sent mine to cmarcello =( | ||
yeah | |||
cmarcelo | but i read | ||
nothingmuch | i do that every time | ||
cmarcelo | so i should ignore this origin/attach thing? | 19:30 | |
nothingmuch | nope | ||
origin is precisely what allows moh to be purely functional | |||
without too much effort when the input was mutable to begin with | |||
also, it lets us do weird shit with the layouts/accessor inlining | |||
cmarcelo | well: | 19:31 | |
nothingmuch | { origin :: Show a => a, item :: b } | 19:32 | |
then you could give this data type the instance over the type class AttachedAttribute if b has an instance of the typeclass attribute, for example | 19:33 | ||
my syntax is off, but you get what i'm saying, right? | |||
cmarcelo | if I attach method to a class [both data] the class itself would change, so origin I create for the method will be obsolete dont? | ||
nothingmuch | nope | ||
the notion of attaching is different | 19:34 | ||
you can add a method in a mutable model | |||
that doesn't matter | |||
the type of the function that plumbs pugs land into moh land should be along the lines of MetaObject (IORef Method) -> IO MetaObject Method | 19:35 | ||
where MetaObject is something like a class | |||
and (IORef Method) and Method are the type of the subitems | |||
of course, a richer meta object would require types for the other possible submeta objects | |||
then when this is all fed into the meta model moh runs through it | |||
and creates attachment 'tags' that simply keep track of where a method was found | |||
stevan | so there is a meta object to indicate the attachment as well | 19:36 | |
nothingmuch | yes | ||
stevan | your meta-crazy boy! | ||
nothingmuch | the idea is that given $class->all_methods you get back a list of items | ||
and you can know which susperclass each method was defined in | |||
and the method meta object doesn't have to keep track of this on it's own | |||
stevan | is the attachment object two way? | 19:37 | |
nothingmuch | this makes metamodel translation easier | ||
it's a wrapper | |||
stevan | wrapper? | ||
nothingmuch | class AttachedMethod { has $method; has $origin }; # plus some delegated methods for conenience | ||
stevan | origin --> class? | 19:38 | |
nothingmuch | $class->all_methods; # this runs through the class precednece list, as computed by the MRO, including all roles etc | ||
# and for each class it encournters it lists all it's defined methods | |||
and attaches them to that class | |||
the result is a list of AttachedMethod objects | |||
each of which contains the origin (class/role which the method was defined in) | |||
and the method itself | |||
stevan | so by using the monads to associated metas (which is what I assume the IO* stuff is), you are keeping it purely functional? | 19:40 | |
nothingmuch | no, i don't do that at all | ||
stevan | ok | ||
nothingmuch | s/me/moh/; | ||
in theory | |||
mo is just a computation library | |||
for object oriented stuff | |||
cmarcelo | nothingmuch: when I add a method to a class, it changes the class, making older origins obsolete, .. or Im getting wrong and should provide every method upfront? | 19:41 | |
nothingmuch | no | ||
you never add a mehtod to a class in moh | |||
you create a new class that has thed combination of the methods | |||
stevan | you attach it :) | ||
nothingmuch | no =) | ||
stevan | :P | ||
nothingmuch | attached items are intermediate data structures | ||
they are only used during compilation to mark the origin of a method | |||
they are not maintained and kept up to date at all | 19:42 | ||
stevan | so how do you handle runtime introspection then? | ||
nothingmuch | s/introspection/modification/; | ||
stevan | nop | ||
nothingmuch | that's pugs' responsibility | ||
stevan | e | ||
nothingmuch | wtf? | ||
you just do it | |||
stevan | s/modification/introspection on immutable attributes/ | 19:43 | |
nothingmuch | they must be wrapped in a language b indeing | ||
19:43
TSa joined
|
|||
stevan | who is "they" | 19:43 | |
nothingmuch | all the methods | 19:44 | |
sorry | |||
for example | |||
all_methods | |||
stevan | other than the people in the black helicopter who follow my every move | ||
nothingmuch | that is a method on meta classes | ||
in pugs that wrapper will do this: | |||
take the mutable meta class in question, present moh with an immutable "snapshot" of this | |||
call the moh all_methods method on that snapshot | |||
and wrap the result in whatever monad it's using to evaluate | 19:45 | ||
e.g. Eval [MetaMethod] | |||
stevan | ok | ||
so the mutable meta class which Pugs has, this is not introspectable on it's own? | 19:46 | ||
nothingmuch | it is | ||
stevan | all introspection and modification must go through MOH ? | ||
nothingmuch | not necessarily | ||
the lightweight stuff can ignore mo | |||
for example extracting the "local" methods | |||
stevan | what is lightweight? | ||
nothingmuch | (not inherited ones) | ||
anything that doesn't require computation over the meta model is just a direct mapping to the data structure | 19:47 | ||
for example superclasses is lightweight | |||
it's just a list | |||
stevan | I think maybe it should still be MOH's responsibiltiy | ||
cmarcelo | nothingmuch: im trying to commit some code so you can see what im getting wrong | ||
nothingmuch | class_precedence_list, on the other hand, is heavy weight | ||
TimToady | memoized metas, yum. | ||
nothingmuch | my latest obsession is getting FRP support in perl 6 through passthrough types | 19:48 | |
i'll p6l that once i reach more coherence | |||
stevan | nothingmuch: why not put it all on MOH's burden | ||
PerlJam | FRP support? | ||
nothingmuch | so theoretically recompution through P6MO will be very very easy | ||
PerlJam: functional reactive programming | |||
PerlJam | ah | ||
#perl6 is always speaking in tongues to me ;-) | 19:49 | ||
nothingmuch | stevan: because the question "what are all the methods of class x, which inerhits blah blah blah" is not related to IORefs in any way | ||
TimToady | I thought it was Fantasy Role Playing... | ||
nothingmuch | with FRP the translation layer in pugs/p6 will be to simply present moh with signals for classes | 19:50 | |
for example the 'superclasses' will be Signal [Method] | |||
TimToady | I suppose that's not so different, actually... | ||
nothingmuch | err | ||
Signal [Class] | |||
and methods will be Signal [Method] | |||
the moh code will be transformed by the signal passthrough type to recompute as necessary | |||
when the signal is updated due to some event | |||
e.g.. modifying the metaclass | |||
TSa | HaloO, what does MOH mean? | 19:51 | |
nothingmuch | the port of MO to haskell | 19:52 | |
nothingmuch.woobling.org/MO/ | |||
TimToady | it's .HOW spelled rotated 180Ā° | ||
lambdabot | Title: Index of /MO | ||
nothingmuch | TimToady++ | ||
... the reason for all this purely functional mumbo jumbo is that you can then do translations of the metamodel with no worries | 19:53 | ||
TimToady | What, me worry? | 19:54 | |
nothingmuch | for example, augmenting all the classes with an additional method is simply a matter of running the meta model through a mapping function that takes a class and returns a copy of that class with an augmented list of methods | ||
stevan | nothingmuch: it eliminates side-effects,... worries are another thing entitely | ||
because the p6 view of it is not purely functional | |||
nothingmuch | i just explained how it is =) | 19:55 | |
TimToady | It's all safely hidden behind .HOW as far as I'm concerned. Ignorance is bliss... | ||
nothingmuch | it's not purely functional | ||
it just inverts the control flow | |||
such that the computation part is purely functional | |||
stevan | ok | ||
nothingmuch | pugs' purify_class :: IOClass -> IO Class | 19:56 | |
stevan | I mean that from the p6 point of view, the transformation of metaclasses are a side-effectual thing | ||
nothingmuch | all_methods :: IOClass -> IO Method | ||
stevan | unless of course I am misunderstanding (which is entierly possible) | ||
nothingmuch | all_methods = all_methods . purify_class | ||
that's two steps | 19:57 | ||
19:57
SubStack joined
|
|||
nothingmuch | transform, and then commit back to the metamodel | 19:57 | |
the metamodel is kept in some sort of IORef in the pugs runtime | |||
the symbol table, likely | |||
but the "natural" return value of a transformation is just an anonymous class | |||
the input is also an anonymous class | |||
classes don't know their names in moh, just their definitions | 19:58 | ||
cmarcelo | nothingmuch: feather.perl6.nl/~cmarcelo/moh/MO/C...e/Class.hs .. see class Class, the method add_method_class doesnt make sense, at least not for creating constructors and such, right? they should be created all toghether and once.. | 19:59 | |
lambdabot | tinyurl.com/yndc8n | ||
nothingmuch | cmarcelo: moh does not have add_* or remove_* | ||
that's just the pugs meta model | |||
MO.Compile.Class is a snapshot of a pugs meta class | |||
that is, you can easily do add_method in mo | 20:00 | ||
and the type is indeed c -> AnyMethod -> c | |||
but wrapping that in a monad is the responsibility of whoever is using moh | |||
stevan | nothingmuch: so (meta)object identity is not tied to a particular meta object, but transfered during the transformation process? | ||
nothingmuch | stevan: not unless it's necessary for the meta model itself | 20:01 | |
stevan | yes | ||
cmarcelo | ok. if Pugs need change something itll regenerate everything again... | ||
stevan | but if there is a change and a new class is generated | ||
nothingmuch | cmarcelo: naively yes | ||
stevan: explain? | |||
stevan | c -> AnyMethod -> c | ||
nothingmuch | the input c and the output c are not the same c | ||
stevan | yes | ||
nothingmuch | they may be stored in an IORef that is accessible under the same name | 20:02 | |
stevan | but from an identity POV they are | ||
nothingmuch | no | ||
stevan | yes, that is what I mean | ||
nothingmuch: nomenclature issues abound :P but I think I understand | |||
nothingmuch | my $anon_class_with_method = $anon_class->add_method( $method ); | ||
while we can support this in MO(H)? i don't think this is useful in any way | 20:03 | ||
stevan | and $anon_class_with_method->oid == $anon_class->oid right? | ||
nothingmuch | stevan: there is no oid in mo | ||
it's all haskell baby | |||
stevan | ->name then | ||
nothingmuch | no name either | ||
stevan | whatever,.. some kind of global identifier with which you can access it from perl-land | ||
nothingmuch | none | 20:04 | |
stevan | it does not have to be in the haskell itself | ||
nothingmuch | there is no such thing | ||
unless the user explicitly adds it to their meta classes | |||
stevan | if it has no name,.. how do I find it | ||
nothingmuch | you have to give a way to find it | ||
that's the whole point | |||
moh doesn't care at all | |||
stevan | yes | ||
nothingmuch | instalce MyClass Mo.Class blah blah blah | ||
stevan | but someone will have to care at some point | ||
nothingmuch | where MyClass has some oid | ||
stevan | yeah | ||
nothingmuch | *nod* | 20:05 | |
stevan | ok,.. makes sense | ||
nothingmuch | but yhou only need it for "root" objects | ||
cmarcelo | nothingmuch: i'll get rid of add_method then and see if get the origin/attach into class.. | ||
nothingmuch | a method doesn't need to care about which classes it's attached to | ||
cmarcelo: origin/attach are orthogonal to add_method | |||
they are very very important | |||
so please keep them =) | |||
add_method might be part of a convenience package | 20:06 | ||
stevan | so really MOH is a set of functions to operate over the meta-land data structures | ||
nothingmuch | yes | ||
stevan | s/MOH/MO/ | ||
nothingmuch | i've said so before, perhaps not so succintly | ||
stevan | no you said it fine :) | ||
nothingmuch | well, not realily functions, since it's OO ;-) | ||
cmarcelo | nm: yep, but add_method was making origin/attach depend on mutable data.. | 20:07 | |
audreyt | cmarcelo: where are you? | ||
nothingmuch | no | ||
audreyt | methods are just named closures ;) | ||
nothingmuch | origin/attach is just where it c ame from "right now" | ||
audreyt: not in mo | |||
the class is responsible for naming them | |||
audreyt | 21:06 < nothingmuch> well, not realily functions, since it's OO ;-) | 20:08 | |
cmarcelo | audreyt: in Perl "stand" but is very noisy here.. where you? | ||
audreyt | was metareplying | ||
not userland | |||
nothingmuch | ah =) | ||
cmarcelo: remember that $attached is an intermediate value | |||
audreyt | cmarcelo: in my room just woke up. maybe 1)you come up and hack or 2)we meet at lobby and hack, say in 30min? | ||
nothingmuch | if you have class A isa B { method foo } class B { method bar } | ||
then A.all_methods will return two methods, 'bar', and 'foo' | |||
wrapped in Method::Attached objects | 20:09 | ||
which point to the class they were found in | |||
cmarcelo | audreyt: lobby in 30min then | ||
nothingmuch | audreyt: got 10 mins? | ||
cmarcelo | audreyt: btw, unicamp folks were *very* amazed with pugs' anarchistic dev environment... | 20:10 | |
audreyt | nothingmuch: yes? | ||
cmarcelo: and what's this unicamp? :) | |||
cmarcelo | err.. University of Campinas :) | ||
nothingmuch | audreyt: i have been thinking of how to specify "wrapper" types, or "passthrough" types, whichever name is more metaphorically applicable | 20:11 | |
audreyt | oh ok :) | ||
nothingmuch | the idea is basically to create values with added value ;-) | ||
this is for FRP in Perl 6 without adding FRP to the core | |||
for example, the FRP signal object is a wrapper over any value | |||
a parametrized type | |||
that supports all the methods that the underlying type supports | 20:12 | ||
but gets to intercept them | |||
to implement an FRP signal you first delegate to the normal method with all the arguments | 20:13 | ||
if the arguments are signals themselves you unwrap them | |||
then you capture the caller continuation, and put it in all the signal arguments' update list | |||
thus you can reuse "normal" code that operates on a certain type in FRP code with no change | 20:14 | ||
by simply giving that chunk of code wrapped types | |||
runtime costs will be fairly high, i guess | |||
but this is very useful | |||
$audreyt->sanity_check( @backlog ); | |||
audreyt | er, I know, and that's how exactly we'll target CLR | ||
nothingmuch | okay | 20:15 | |
audreyt | from what I gather with emeijer and other CLR folks | ||
nothingmuch | i think i can draft up a new type | ||
wrapper Foo { ... } | |||
audreyt is glad a certain microsoft is now contractually obliged to not sue us over patents if we make that happen | |||
nothingmuch | ooooh | ||
shiny | |||
who is "us" in that sentance? | 20:16 | ||
.. the reason i'm liking FRP so much lately is that it really simplifies writing dynamically updating code | 20:17 | ||
so things like changing the metaclass can be supported without making the code that compiles the metaclass (moh in perl 6) very very ugly ;-) | |||
this naturally also applies to link time optimizations being unvalidated by dynamically loaded code | 20:18 | ||
and other crazy stuff which we want but don't want to really write | |||
audreyt | "us" is whomever works on pugs -CCLR, probably not now, maybe some time in the future :) | ||
nothingmuch | ah | ||
anymoose, please think about the api wrapper types will want | |||
for representing overloaded passthrough values | 20:19 | ||
for stuff like FRP, foreign objects, etc | |||
i will try to write something up, and then maybe you can give critique | |||
20:19
c6rbon joined
|
|||
audreyt | okay. | 20:20 | |
nothingmuch | where is Cont documented, btw? | ||
oh, nevermoose | |||
found it | |||
haskell.org/ghc/docs/latest/html/li...-Cont.html | 20:21 | ||
lambdabot | tinyurl.com/gnsuu | ||
cmarcelo | audreyt: did you find more help to translate ppencode? | ||
audreyt | cmarcelo: no | 20:22 | |
nothingmuch: it's just CPS. | 20:23 | ||
nothingmuch | audreyt: yeah, i've been finally reading up on it | 20:24 | |
i was curious where when came from | |||
but it's actually in Monad | |||
20:28
mauke joined
20:30
fglock joined
|
|||
nothingmuch | zzzz & | 20:33 | |
audreyt prepares to go down to lobby | |||
fglock | audreyt: we're at the Perl booth | 20:37 | |
lambdabot | fglock: You have 2 new messages. '/msg lambdabot @messages' to read them. | ||
nothingmuch | @mooooooooooooosages | 20:38 | |
lambdabot | Unknown command, try @list | ||
audreyt | fglock: ok, tell cmarcelo I'll go to perl booth to fetch him (or you both) | ||
nothingmuch | <3 lambdabot | ||
*poof* | |||
fglock | ashleyb: re sial.org/pbot/20775 - I included it in the test suite - thanks! I couldn't fix it yet | 20:39 | |
obra | how's the conference? | ||
lambdabot | Title: Paste #20775 from "ashleyb" at 66.201.51.66 | ||
fglock | obra: fine! | ||
obra | excellent. | ||
I really must get there one of these years. | 20:40 | ||
fglock | obra: we are the only language with a booth :) | ||
20:40
cmarcelo joined
|
|||
fglock | I'm working on the MiniPerl6 emitter (written in MiniPerl6, of course) | 20:41 | |
audreyt | ...but not emitting to miniperl6... | 20:42 | |
clkao | but... i want maxiperl6 | ||
and also poniperl6 | |||
TimToady | @fglockĀ»++ | ||
lambdabot | Unknown command, try @list | ||
20:42
dvorak joined
|
|||
fglock | emitting to Perl5, for now | 20:43 | |
obra wonders if MiniPerl6 would be an interesting language for one of the parrot hackers to just hack up | |||
fglock | Parrot hacks bottom-up, Pugs hacks top-down | ||
TimToady | there's a middle there somewhere... | 20:44 | |
obra | TimToady: as long is the middle isn't that cloud that we see in the middle of every network diagram | ||
TimToady | I dunno--that's been a pretty successful cloud, as clouds go... | 20:45 | |
fglock | you know the chinese icon for "stay" (up and down) balas++ for teaching some chinese to us | ||
audreyt | U+5361 | ||
obra | Fair enough | ||
TimToady | å” | ||
fglock | not knowing if a middle actually exists, the projects keep moving | 20:46 | |
ugh - can't commit from the booth - ssh blocking firewall | 20:48 | ||
TimToady | the middle usually exists when the radical is used as part of another characrer: å³ | ||
å° å³ ę ę” č£ é | 20:50 | ||
佧 ę¤ č© é² are the ones without a middle. | 20:52 | ||
(at least in my font) | |||
audreyt praises TimToady's reverse semantic index system into UniHan | |||
TimToady | one of these years I'll have to do all the compatibility characters as well... | 20:53 | |
20:54
miyagawa_ joined
|
|||
audreyt | it's fortunate that you're still hacking perl instead of joining Unicode.org's Ideographic Rapporteur Group... | 20:55 | |
TimToady | by the way, å” is called "checkpoint" in my system. The "middle" form is called "updown". | ||
audreyt | I hear people go into IRG and was never heard from again... | ||
Limbic_Region | audreyt - if I understood one of your last blog entries, we intentionally dropped code for certain features in favor of a unified code base and that in the interim of building that unified code base back up with those features we can just use v5; | ||
TimToady | I almost went into my own private IRG and was never heard from again... | 20:56 | |
Limbic_Region wonders if his client is eating his chatter | |||
half of what I have typed has apparently not made it into the channel according to the irc logs | 20:57 | ||
audreyt | Limbic_Region: well, it's more like we want to Bootstrap Now | ||
TimToady | you'll either have to type twice as fast or half as fast. Not sure which... | ||
audreyt | in particular the grammar engine is to be thoroughly ported to perl6 | ||
but we also want it to run competitively fast on both our runtimes | 20:58 | ||
and the full perl6 just can't run on perl5 competitively fast without a bunch of XS speedups | |||
which increases maintainence overhead | |||
fglock | Limbic_Region: MiniPerl6 works as an intermediate language, also good for bootstrapping | ||
bootstrapping = implementing Rules, MO | |||
and a Perl6 compiler | 20:59 | ||
audreyt | but _not_ the runtme :) | ||
fglock | the Perl6 compiler will then implement the remaining features | 21:00 | |
Limbic_Region | ok - I guess I either didn't spend enough time reading that blog post or the intent wasn't clear | ||
Limbic_Region re-reads it | |||
fglock | which can be supported by the VM natively or not | ||
21:01
aufrank joined
|
|||
fglock | Limbic_Region: a nice thing is that MiniPerl6 is written in MiniPerl6 - and it took just a couple of days to put it together | 21:02 | |
audreyt: mk is here | 21:03 | ||
Limbic_Region | my confusion came from "Oud rallying cry is one single Pugs codebase in Perl 6, as we seek to remove the massive code duplication in the current Haskell and Perl 5 runtimes." | ||
and then "To facilitate the migration, I've amended the relevant part of the Modules spec (S11), so now we can trivially inline Perl 5 code inside a Perl 6 programs, with use v5 at the beginning of a lexical block." | 21:04 | ||
but if what this really means is bootstrapping then wooooooot | |||
fglock | Limbic_Region: yes, these are 2 unrelated features | ||
TimToady | they'd have had to remove a lot more of S?? to chop the entire language down to that size. :) | 21:05 | |
audreyt | Limbic_Region: let's see... we still implement full perl 6. | 21:06 | |
but we implement the full perl 6 with part of perl 6. | |||
and at this moment that part of perl 6 includes some part of perl 5. | |||
TimToady | (at least for now) | ||
Limbic_Region | audreyt - yeah, I get it now | ||
audreyt | and once we have full perl 6 implemented in part of perl 6 | ||
then we implement full perl 6 in full perl 6 :) | |||
fglock | Perl6 can grow back lost limbs | 21:07 | |
wolverian | wasn't this the plan like, three years ago? nice to see plans working out :) | ||
audreyt | more than three years ago | ||
but yeah :) | |||
"mini" is shorter to type than "featherweight". | |||
TimToady | Perl6ish is shorter by 1 | 21:08 | |
audreyt | Perl6i is shorter | ||
TimToady | Perl6ly | ||
audreyt | it's the next version of Perl5i | ||
wolverian | perl6.0-omega | ||
audreyt | of damian's | ||
TimToady | Perk6 | ||
wolverian | er, pork.. now I'm hungry. bye! | 21:09 | |
audreyt | if I continue IRC I'll never make downstairs | ||
jrockway | anything cool that we can do with miniperl6 right now? (i'm way behind on my perl6 lists :/ ) | ||
audreyt | so... bbiab | ||
fglock | audreyt: are you at the lobby? I need some help :) | ||
oh, ok :) | |||
audreyt | fglock: going there in a bit | ||
TimToady | jrockway: not yet, unless you just want to compile MiniPerl6. | 21:10 | |
Limbic_Region | so my limited understanding of bootstrapping is that you write a minimal compiler for lang X in lang Y and then compile lang Y with that minimal compiler and for subsequent iterations you use the complete lang Y implementation | ||
TimToady | they're currently working on emitters. | ||
Limbic_Region | except when you need to start fresh and there isn't a pre-existing binary | ||
fglock | jrockway: yes - write itself (it's under devel) | ||
Limbic_Region | in which case you always keep around the minimal version in lang X | ||
so my question is this | |||
TimToady | then you usually do cross-compiler instead. | ||
Limbic_Region | what is our lang X - ghc? | 21:11 | |
jrockway | "mini" things are always exciting to me because they're small enough to do a really good job on, which is nice | ||
:) | |||
Limbic_Region | TimToady - yes, I understand the cross-compiling | ||
fglock | Limbic_Region: MiniPerl6 "X" is (Haskell|Perl5) | 21:12 | |
Limbic_Region | fglock - ok | ||
TimToady | that's what blog meant by "unified", in part | ||
Limbic_Region | so we are trying to keep MiniPerl6 as mini as possible so that Lang X could be any lang X? | ||
fglock | and hopefully Parrot soon | ||
Limbic_Region | IOW - parrot | ||
ahh, ok | 21:13 | ||
fglock | Limbic_Region: yes - Javascript, for example | ||
Limbic_Region is experiencing a great deal of lag | |||
not everything I am typing is getting to the channel either | |||
ok, well fglock++ audrey++ TimToady++ upvotes all around | 21:14 | ||
fglock | so we implement the mini-perl6 emitter in lang X, and it compiles the remaining parts (but you still need to make the runtime libs) | ||
cj | so... I heard something about perl6 running in a javascript vm? | 21:15 | |
Limbic_Region | does smartlinks give us an indicator of what percentage of the existing spec is implemented? | 21:16 | |
fglock | cj - not yet - it's a plan | ||
cj | fglock: alrighty | ||
I'll not plan on using it in production then :) | |||
21:16
kane-xs joined
|
|||
fglock | Limbic_Region: MP6 requires a different programming style - it's not likely to compile Test.pm | 21:17 | |
21:17
penk joined
|
|||
Limbic_Region | fglock - not what I meant | 21:17 | |
avar | where's this in svn? | 21:18 | |
(mp6) | |||
fglock | Limbic_Region: ? | ||
avar: /v6 | |||
Limbic_Region | fglock - I am asking in any/all backend with our test suite smart linked to the synopses | ||
fglock | no, I think only Pugs is smartlinked | 21:19 | |
Limbic_Region | ok, so for Pugs then - does the smart linking give us an indicator of the % of the existing spec that is implemented | ||
fglock - I apologize, I switched thoughts without telling you | 21:20 | ||
fglock | I don't know | 21:21 | |
Limbic_Region | seems like it would be a nice metric to have | ||
TimToady | seems like you'd have to smartlink to individual sentences to have that. | 21:22 | |
Limbic_Region | "The existing Perl 6 specification is 87% of the expected complete specification. Pugs implements 98% of the known Perl 6 specification." | ||
TimToady | I suspect most smartlinks only test a few sentences out of a paragraph | ||
Limbic_Region | TimToady - I suspect you are right | ||
my quoted statement above for anyone not reading context is an example of the thing it would be nice to say and does not necessarily reflect reality | 21:23 | ||
</disclaimer> | |||
21:23
crem joined
|
|||
wolverian | I don't really see the specification's completeness as a linear percentage. | 21:26 | |
Limbic_Region | well great work everyone - have a good weekend wherever you might be | ||
Limbic_Region calls it a weekend | |||
TimToady | the most accurate measure of that is probably the ratio of todos to todones, given there are tests for most of P6 already, even if coverage is a bit spotty. | 21:27 | |
wolverian | it seems like you'd want to graph it at least in two dimensions :) | ||
21:30
rodi joined
21:41
BooK_ joined
21:42
eggzeck[laptop] joined
21:52
fglock joined
21:53
cmarcelo joined
|
|||
TimToady | Chinese doesn't have preincrement or postincrement, but it does have topincrement: č | 22:03 | |
svnbot6 | r14605 | audreyt++ | * Pugs::Runtime::Perl6 - Disallow typed assignment into a Value type. | 22:25 | |
r14605 | audreyt++ | * Pugs::Runtime::Perl6 - Also allow easy-blessing syntax for classes: | |||
r14605 | audreyt++ | class Foo { has $.x; has $.y; } | |||
r14605 | audreyt++ | Foo(x => 1, y => 2); # makes an object. | |||
r14605 | audreyt++ | * Pugs::Runtime::Perl6 - Add a native .perl method to all objects. | |||
r14606 | audreyt++ | * MP6: fglock++ implemented the beginning of the ->perl5 emitter, | 22:30 | ||
r14606 | audreyt++ | wrote tests in MiniPerl6 and coverted sanity tests into MiniPerl6, | |||
r14606 | audreyt++ | and it all passed with flying colours. | |||
r14606 | audreyt++ | (fglock++ would like to point out audreyt++ helped a bit as well.) | |||
ashleyb | fglock: thanks for adding my test... | 22:35 | |
fglock | ashleyb: np - I'll try to fix it later | 22:38 | |
it's a backtracking problem, it seems | 22:39 | ||
22:44
Aankhen`` joined
|
|||
ashleyb | fglock: one other question, when I switch the module from 'Regex' to 'Rule' my grammer stops working (code that that test was taken from) - and prints out some ugly error -- is this something you know about or should I send you another test? | 22:45 | |
22:48
larsen_ joined
|
|||
Juerd | TimToady: Ooh! topfix:<...> operators :) | 22:49 | |
lambdabot | Juerd: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
TimToady | topfix:<~> | ||
Juerd | ~ | 22:50 | |
Si, senor | |||
TimToady | topfix:<ĀØ> | 22:51 | |
hmm, circumfix should really be ambifix. a true circumfix would be like ā 20DD COMBINING ENCLOSING CIRCLE | 22:54 | ||
fglock | ashleyb: try 'Token' instead - Rule adds significant-space, this may change the meaning | 22:55 | |
TimToady | on the other hand, if it relies on backtracking... | 22:56 | |
22:59
diakopter joined
|
|||
ashleyb | fglock: for example, take that test and s/Regex/Token/g or also s/Regex/Rule/g and you get the same thing. | 23:04 | |
fglock | ashleyb: backtracking into Token/Rule quantifiers is not implemented | 23:14 | |
ashleyb | ok cool. | ||
TimToady | somebody forgot to add continuations to Perl 5. :/ | 23:18 | |
avar blames TT | 23:19 | ||
TimToady | TrueType? :) | 23:20 | |
avar | TimToady: nope:) | 23:28 | |
23:32
Limbic_Region joined
|
|||
diakopter | has svn been moved over yet? | 23:35 | |
23:36
gnuvince joined
23:39
cmarcelo joined
|
|||
pasteling | "cmarcelo" at 200.150.229.66 pasted "new (final?) translation" (156 lines, 2.5K) at sial.org/pbot/20862 | 23:41 | |
svnbot6 | r14607 | audreyt++ | * Pugs::Runtime::Perl6: Add .yaml for all objects. | 23:43 | |
r14608 | audreyt++ | * Pugs::Grammar::Term - Allow @.foo but for now parse it as $.foo | |||
r14609 | audreyt++ | * Pugs::Grammar::Expression - Parse for hyper methods: "@foo.>>bar", "@foo>>.bar" | 23:46 | ||
r14609 | audreyt++ | and "@foo.>>.bar", because MiniPerl6 emitters really want that ;) | |||
r14610 | audreyt++ | * Pugs::Emitter::Perl6::Perl5 - Support for emitting hyper method calls | |||
r14610 | audreyt++ | and hash/array dereferences. | |||
audreyt | diakopter: no, I'll send a mail to every committer when that happens | 23:49 | |
svnbot6 | r14611 | audreyt++ | * MiniPerl6 Emitter: Add emission for these classes: | ||
r14611 | audreyt++ | Lit::Seq Val::Num Val::Buf Val::Undef | |||
r14611 | audreyt++ | Val::Object Lit::Seq Lit::Array Lit::Hash | |||
r14611 | audreyt++ | Index Lookup Call Apply Return If Index Lookup | |||
audreyt | also working on hiveminder integration | ||
dinner bbiab | |||
23:59
mako132_ joined
|