pugscode.org/ planetsix.perl.org/ feather.perl6.nl/syn/ perlcabal.org/svn/pugs/log github.com/rakudo/rakudo | nopaste: sial.org/pbot/perl6 | evalbot: "perl6: say 3;" | irclog: irc.pugscode.org/ | Rakudo.org www.perlfoundation.org/perl6/index.cgi?smop perl.net.au/wiki/Elf |~300 days 'til Xmas Set by mncharity1 on 25 February 2009. |
|||
00:01
pmurias joined
00:05
pmurias left
|
|||
TimToady | ruoso: played around some with "operator" and "op" and such, but I think it's going to be something else embedded in the code, since metaops need it too, and maybe even some methods | 00:08 | |
hmm, sial doesn't seem to recognize #perl6 | 00:10 | ||
well, this is pretty small | |||
proto infix:<eq> (Any $a, Any $b) { meta ~$a eq ~$b } # user's eq, user's ~ | 00:11 | ||
multi infix:<eq> (Whatever, Any $b) { -> $a { meta $a eq $b } } # user's eq | |||
multi infix:<eq> (Any $a, Whatever) { -> $b { meta $a eq $b } } # user's eq | |||
multi infix:<eq> (&f:($), Any $b) { -> $a { meta f($a) eq $b } } # user's eq | |||
multi infix:<eq> (Str $a, Str $b) { !Str::leg($a, $b) } # primitive leg, primitive ! | |||
where "meta" is negotiable | |||
wayland76 | Is "Software Transactional Memory" still the way S17 is going, or can I rip that stuff out? | 00:15 | |
00:15
Ariens_Hyperion joined
|
|||
TimToady | not clear. It might be one of those things that's post-6.0.0 | 00:16 | |
00:17
hercynium left
|
|||
TimToady | but one would really like a coherent transactional system that deals with more than just memory | 00:17 | |
00:18
payload1 joined,
payload left
00:19
|jedai| joined
|
|||
wayland76 | Ok, how about I add the Event Loop stuff to S17, and leave the STM stuff down the bottom? | 00:19 | |
Is there any documentation on calling foreign (ie. C library) code from Perl 6? | 00:22 | ||
00:23
eternaleye joined
|
|||
TimToady | there's parrots NCI, but nothing defined for Perl | 00:23 | |
*parrot's | 00:24 | ||
in theory we'll have enough type info to call directly without writing glue code | |||
wayland76 | Ok. | 00:31 | |
But does that mean, then, that we still have to spec how Perl6 will do that? | |||
TimToady | up to a point, but it may be rather platform dependent | 00:32 | |
00:33
Limbic_Region joined
|
|||
wayland76 | Ok. I don't see why, but I'm no expert on these things :) | 00:34 | |
00:34
Ariens_Hyperion left
|
|||
TimToady | suppose we're running on the JVM, and you want to call into glibc. Java ain't gonna make it easy for you. You may have even fewer options running a JS engine in a browser | 00:34 | |
wayland76 | Could we do it with a namespace (or whatever they're called?) | 00:35 | |
ie. EXTERNAL::c_function_name() | |||
TimToady | it's almost certainly some kind of a magical use/import | ||
avar | wayland76: The way common lisp does it seems sensible | 00:36 | |
"Implementation defined" | |||
wayland76 | Ok, I can see that. I'm thinking, though, that if the IO modules are going to be written as part of the Setting, they may have to contain some external calls | ||
Ok, now I see why it needs to be implementation defined. | |||
Does that mean that there'll never be a S21? | 00:37 | ||
TimToady | I have no clue what S21 would be without looking | 00:38 | |
I don't actually have Camel 3 memorized... | |||
wayland76 | 21Calling foreign code(TBD) | ||
21 - Calling foreign code - (TBD) | 00:39 | ||
TimToady | there will certainly be some guidelines | ||
we already have a :from switch for pulling code from other languages on the use | |||
whether that other language is implemented in the same platform or a different platform is somewhat immaterial | 00:40 | ||
except to the implementation, of course | |||
wayland76 | Ok. That will give me something to go on, then. I'll write a starter S21 :) | 00:41 | |
TimToady | but S21 might have a discussion of how to link to some of the common platforms | ||
dalek | kudo: 4bb9d8d | pmichaud++ | docs/ChangeLog: Rename NEWS to ChangeLog, since that's what it really represents. |
00:44 | |
kudo: 03e102b | pmichaud++ | docs/NEWS: Rename NEWS to ChangeLog. |
|||
00:48
hercynium_ left
00:51
nihiliad joined
|
|||
skids | Fess up folks, what's the most number of times you've hit enter and said frak why isn't this working before your realized you typed perl -e insteald of ./perl6 -e | 00:55 | |
00:55
|jedai| left
00:56
|jedai| joined
|
|||
TimToady | er...0? | 00:56 | |
skids | well, with you, we'd expect that. | 00:57 | |
00:58
Eevee left
|
|||
skids | Are we supposed to be able to add more specific MMD candidates in Perl6 for stuff that's implemented in src/classes in PIR yet? | 01:08 | |
wayland76 | Is the Pattern role done by everything, or just scalars? | 01:12 | |
01:22
Eevee joined
01:27
shinobi-cl joined
|
|||
diakopter | perhaps a better question; how many times have you *intended* to type "perl6..."? | 01:32 | |
skids | I'm fine with 'multi method foo ($at, $least, $three, *@fourandover) but just out of morbid curiosity is there something like "method foo (*@slurpy where {.elems > 3})"? | 01:40 | |
01:44
DemoFreak left
01:47
jimmy_ joined
01:52
frooh joined
02:01
alc joined
02:09
alester joined,
Whiteknight left
02:13
eternaleye left,
cas_ left
02:16
eternaleye joined
|
|||
Tene_ | skids: a few, certainly | 02:31 | |
wayland76 | skids: I don't do enough coding to run into that problem. | 02:36 | |
In fact, I don't even have Perl6 installed | 02:37 | ||
(I've been waiting for this next release :) ) | |||
skids | It must be like Xmas morning for you then! :-) | ||
02:43
dukeleto joined
|
|||
wayland76 | It is, rather :) | 02:45 | |
pugs_svn | r25601 | wayland++ | - Standardised on .signature vs. .sig | ||
r25601 | wayland++ | - Added some things to S29/S32 that Masak highlighted needed to be added | |||
02:45
shinobi-cl left
02:49
Sepheebear left
02:52
shinobi-cl joined
02:54
shinobi-cl left
|
|||
s1n | rakudo question: what does this mean? | 03:01 | |
Multiple Dispatch: No suitable candidate found for 'cmp', with signature 'PP->I' | |||
what is the PP->I mean? | |||
pmichaud | it's a parrot issue. Parrot is looking for something that takes two PMCs and returns an int | 03:02 | |
s1n | pmichaud: there's a possibility i messed something up; i'm working on replacing some methods in a setting class | 03:03 | |
pmichaud: do you think i could borrow your attention shortly (for a pm)? | 03:04 | ||
pmichaud | I'm a little distracted at the moment, but I'll do what I can. | ||
03:06
Sepheebear joined
|
|||
skids fishes for thoughts or link to previous discussion of Collection .delete methods post-lazy-implementation. | 03:14 | ||
03:15
justatheory left
|
|||
wayland76 | What's lazy implementation? | 03:18 | |
s1n | can someone review this commit (mind you the prior commits of mine add this stuff to setting): | 03:20 | |
7676ae1fdf7d922a9475742951efe2d4511c11b6 | |||
better yet: github.com/s1n/rakudo/commit/7676ae...d4511c11b6 | |||
skids | wayland76: en.wikibooks.org/wiki/Perl_6_Progra..._and_Feeds | ||
s1n | basically, it's doing an infinite loop t/spec/S03-operators/range.t (test 10 looks like) | 03:22 | |
03:22
_jedai_ joined
03:24
|jedai| left
|
|||
wayland76 | skids: So lazy implementation means "after the implementation of lazy lists and feeds", right? | 03:25 | |
jimmy_ | rakudo: my @y = (1, 2, 3); @y.perl.say; | ||
p6eval | rakudo 03e102: OUTPUT«[1, 2, 3]» | ||
jimmy_ | rakudo: my @y = (1, 2, 3); @y.say; | ||
p6eval | rakudo 03e102: OUTPUT«123» | ||
skids | wayland76: y | ||
jimmy_ | my %z = {:first(1), :second(2), :third(3)} %z.perl.say; | ||
rakudo: my %z = {:first(1), : second(2), :third(3)} %z.perl.say; | |||
p6eval | rakudo 03e102: OUTPUT«Statement not terminated properly at line 1, near ": second(2"current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)» | ||
jimmy_ | rakudo: my %z = {:first(1), :second(2), :third(3)} %z.perl.say; | 03:26 | |
p6eval | rakudo 03e102: OUTPUT«Could not find non-existent sub zcurrent instr.: '_block14' pc 134 (EVAL_16:51)» | ||
jimmy_ | rakudo: my %z = {:first(1)} %z.perl.say; | ||
p6eval | rakudo 03e102: OUTPUT«Could not find non-existent sub zcurrent instr.: '_block14' pc 85 (EVAL_16:44)» | ||
jimmy_ | rakudo: my %z = {:first(1)}; %z.perl.say; | ||
p6eval | rakudo 03e102: OUTPUT«{"first" => 1}» | ||
jimmy_ | rakudo: my %z = {:first(1)}; %z.say; | ||
p6eval | rakudo 03e102: OUTPUT«first 1» | ||
jimmy_ | rakudo: for 1..5 { print;} | 03:27 | |
p6eval | rakudo 03e102: OUTPUT«print requires an argument at line 1, near ";}"current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)» | 03:28 | |
wayland76 | skids: Well, according to S32/Containers, Array and Hash both do .delete, but List doesn't | ||
jimmy_ | rakudo: for 1..5 { print; } | ||
Tene_ | jimmy_: try ".print" instead | ||
p6eval | rakudo 03e102: OUTPUT«print requires an argument at line 1, near "; }"current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)» | ||
jimmy_ | rakudo: for 1..5 { print $_; } | ||
Tene_ | rakudo: .print for 1..5 | ||
p6eval | rakudo 03e102: OUTPUT«12345» | ||
jimmy_ | rakudo: for 1..5 { print $_; } | ||
p6eval | rakudo 03e102: OUTPUT«12345» | ||
jimmy_ | rakudo: for 1..5 { .print; } | ||
p6eval | rakudo 03e102: OUTPUT«12345» | ||
jimmy_ | for 1..5 { print; } has been implemented. | 03:29 | |
dalek | kudo: f68a629 | pmichaud++ | docs/announce/2009-02: First draft of 2009-02 release announcement. |
||
skids | wayland76: but they return List (of deleted values). Which could be lazy, and very confusing to some. | 03:30 | |
e.g. @vals = %f.delete('k','j'); shift @vals ; %f.keys.say; shift @vals -- might still have 'j' key/val present at .say. | 03:32 | ||
pmichaud | comments on the draft release announcement welcome. | 03:33 | |
skids | OTOH @f = %f.delete(@millions_of_keys) would load the system. | ||
Tene_ | pmichaud: do you want try {} fixes in before the release? Or have you already made release tarball? | 03:35 | |
jimmy_ | rakudo: print $_ for 1..5 | ||
p6eval | rakudo f68a62: OUTPUT«12345» | ||
pmichaud | Tene_: I think I'd prefer them post-release, actually. | ||
Tene_ nods. | |||
pmichaud | I'm expecting to cut the tarball in the next 25-90 minutes. | 03:36 | |
(depends on what other non-Rakudo errands I have to run here in that time) | |||
03:44
Limbic_Region left
03:48
Tene joined
|
|||
wayland76 | skids: I'd think delete would have to do the actual deletions immediately, and store them somewhere (although this may not be what's actually happening) | 03:52 | |
If they're being stored "somewhere", that somewhere should probably be the List | |||
Thus I conclude that delete() will probably have to be not-lazy | 03:53 | ||
Or the implementation will have to be clever enough to resolve this kind of conflict | |||
(but preferably not for Christmas) | |||
:) | |||
skids | wayland76: Yeah, I'd say so too but have this sneaking suspicion the Perl6 gurus will have something profound in mind for that. | 03:54 | |
Like maybe, lazy, if you add an adverb, or something like that. | 03:56 | ||
meppl | good night | 03:57 | |
wayland76 | 'night meppl | ||
meppl | ;) | ||
wayland76 | skids: You may be right (you may be crazy?) :) | ||
skids | s1n: I know not the review you were looking for, but ($.from cmp $topic) <= 0 seems a bit obfuscated. | ||
03:58
meppl left
|
|||
pugs_svn | r25602 | wayland++ | More masak-inspired changes. | 03:58 | |
03:59
Tene_ left
04:02
_jedai_ left,
|jedai| joined
04:06
aindilis` joined
04:20
aindilis left
|
|||
pmichaud | anyone with any final comments or suggestions before I cut the release? | 04:27 | |
(in about 15 mins) | |||
pugs_svn | r25603 | wayland++ | Updated S32 documents, and added S21 | 04:28 | |
wayland76 | Yay! :) | ||
(yay about the release -- that's my comment : 0 | |||
:) | |||
04:29
eternaleye left,
Exodist left,
yahooooo left,
oskie left,
Grrrr left,
Helios left,
buu left,
PerlJam left,
orafu left,
IRSeekBot left,
lisppaste3 left,
alester left,
nihiliad left,
payload1 left,
mikehh left,
SamB left,
mj41 left,
Nom- left,
elmex left,
bsb left,
araujo left,
f00li5h[hireme] left,
cxreg left,
scrottie left,
gbacon left,
yves left,
allbery_b left,
ilbot2 left,
alester joined,
nihiliad joined,
payload1 joined,
mikehh joined,
SamB joined,
mj41 joined,
Nom- joined,
elmex joined,
bsb joined,
araujo joined,
f00li5h[hireme] joined,
cxreg joined,
yves joined,
ilbot2 joined,
scrottie joined,
allbery_b joined,
gbacon joined
|
|||
skids | pmichaud: I meant to complement you on getting the READMEs and other usually-neglected files updated after the repo move. | 04:29 | |
I actually was able to figure out where to go and what to do for a change :-) | 04:30 | ||
04:30
PerlJam joined,
eternaleye joined,
Exodist joined,
yahooooo joined,
oskie joined,
Grrrr joined,
Helios joined,
lisppaste3 joined,
IRSeekBot joined,
buu joined,
orafu joined,
irc.freenode.net sets mode: +o PerlJam
|
|||
wayland76 | skids: Well, if that's what you think, pmichaud++ :) | 04:32 | |
skids | Eh, he's got so many ++'s the mantissa probably doesn't even register +1's anymore. | 04:33 | |
Tene | purkarma pmichaud | 04:34 | |
wayland76 | @karma pmichaud | ||
lambdabot | pmichaud has a karma of 244 | ||
Tene | ENOPURL | ||
ah | 04:35 | ||
pmichaud++ | |||
skids | Oh, something actually *does* keep track :-) | ||
Tene | @karma pmichaud | ||
lambdabot | pmichaud has a karma of 245 | ||
Tene | There, now he has 1/10th his #parrot karma here | ||
wayland76 | Well, if Karma is a Byte, it may soon overflow :) | ||
Ah, that explains a lot :) | |||
04:36
nikn joined
|
|||
pmichaud | skids: (updating readme's, etc.) -- many thanks. I feel like I'm actually quite tardy on updating those; I'm very glad the effort is appreciated. | 04:37 | |
and yes, I work for karma. :-) | 04:38 | ||
Tene | I used to. RSI pain is too bad lately. :( | 04:39 | |
skids | pmichaud++ then :-) | ||
alester | hey pmichuad | 04:41 | |
pmichaud | alester: did you see my draft (about to be non-draft) announcement text? | 04:44 | |
docs/announce/2009-02 | 04:45 | ||
alester | in ChangeLog? | ||
oh, yeah, that | |||
pmichaud | ChangeLog is the simple "bullet list of changes" | ||
alester | lemme look again | ||
pmichaud | docs/announce/ holds the newsy announcements. | ||
dalek | kudo: c032fa7 | pmichaud++ | docs/announce/2009-02: Some small wordsmithing items. |
||
skids | Tene: :-( RSI sounds so horrible that I'm glad I never learned to type very well. | 04:46 | |
alester | looking | 04:48 | |
wayland76 | I have no idea why I don't have RSI | 04:49 | |
I have an old chicony keyboard, but other than that, there's no obvious reason | |||
skids | If I have a multi method foo (:flag where { .item = 1 }, @slurp) but I know that the named parameter will always be the first element in the arg list, should I do something to optimize MMD to not search the whole list for keys? | 04:51 | |
s/keys/Pairs/ | |||
pmichaud | maybe don't make it a named parameter? | ||
skids | Not an option, it's specced that way. | 04:52 | |
pmichaud | multi method foo ($flag where { .item = 1 }, @slurp) | ||
then how do you know that the named parameter will always be the first element in the arg list? | |||
I'm confused by that. | |||
skids | It's the postcircumfix adverbs, what have to be parsed specially. STD.pm moves them to the front of its parse tree objects and PGE doesn;t do them yet. | 04:53 | |
pmichaud | ...but if they're named arguments, they're always 'non-positional' | ||
er, wait, I have that backwards. | |||
named parameters are always 'non-positional' | |||
the order of the arguments doesn't matter for named parameters. | 04:54 | ||
the fact that STD.pm moves named arguments to the front may be an artifact of the parse; not necessarily a requirement (or optimization) for the function. | 04:55 | ||
s/named arguments/adverbs | 04:58 | ||
at any rate, I'm pretty sure that where { .item = 1 } is wrong :-) | 04:59 | ||
unless you _really_ intend to do an assignment. :-) | |||
skids | Well, probably we'll have to do something other than an actual adverb in actions for it then, special case. | ||
Yeah I meant == of course | |||
pmichaud | even that I think is wrong. | ||
== 1 is not the same as "true" | |||
skids | Adverbs are Ints. | 05:00 | |
pmichaud | :foo(True) is not an Int. | ||
iiuc, an adverb simply becomes a named argument | 05:01 | ||
skids | I meant the naked ones. I forget if I just tried { .item }. | ||
alester | pmichaud: 9259190a7863c7cc49fa1799ab9929486d2fe56d | 05:02 | |
pmichaud | I'm pretty sure that TimToady told me that :foo should be equivalent to :foo(True) (in spite of what S02 says) | ||
skids | I had to try a bunch of stuff before I figured out .item, it kept blowing up. | ||
jimmy_ | @karma jimmy | ||
lambdabot | jimmy has a karma of 1 | ||
skids | Yeah, well, either way that's the easy part. | ||
pmichaud | anyway, handling a named argument in actions.pm is no problem | 05:03 | |
pugs_svn | r25604 | wayland++ | Various small fixes, mostly to signals | 05:05 | |
skids | damn, want to stay up and code but still one more workday left in the week. gnight. | 05:06 | |
pmichaud | ugh, I need to find a good cherry pick tutorial. | 05:16 | |
Tene | what do you want to know about it? | 05:19 | |
pmichaud | Andy has a commit in his repository. I want to bring that into rakudo's master branch | 05:20 | |
alester | git cherry-pick 9259190a7863c7cc49fa1799ab9929486d2fe56d | ||
that's it | |||
and then git push | |||
pmichaud | pmichaud@orange:~/rakudo$ git cherry-pick 925919 | ||
fatal: Cannot find '925919' | |||
Tene | he first needs to git remote add andy $URL | ||
alester | oooh, right | ||
because | |||
right | |||
pmichaud | that's my point. | ||
Tene | then git fetch andy | ||
alester | or use the fork queue | 05:21 | |
pmichaud | the fork queue is limited to 50 entries | ||
and we currently have 82 | |||
so I can't *see* the entry in the fork queue. | |||
I tried the remote stuff but I'll try again. | |||
alester | ok, here's what ya do | ||
05:21
ab5tract joined
|
|||
Tene | git remote add andy git://github.com/petdance/rakudo.git | 05:21 | |
git fetch andy | |||
alester | yeah, that | 05:22 | |
pmichaud | okay, I don't know why that didn't work before. | ||
alester | or, git remote update | ||
which does updates on all the rmeote repos you're keeping track of locally | |||
pmichaud | "updates on all the remote repos" scares me a lot. | 05:23 | |
Tene | 'git fetch' is always nondestructive. It just pulls down commits, but doesn't even update any refs | 05:24 | |
pmichaud | yes, I'm much more comfortable with that. | ||
Andy: you seem to wordwrap a little bit longer line than I prefer to have. | |||
Tene | Eh, local refs. there are still updates in refs/remotes I think. That's included in what you want, I think. | 05:25 | |
alester | pmichaud: Bummer. :-) | ||
My vi should have respected your vi modeline. | |||
oh wait | |||
Tene | yeah, looks like git remote update just does a bunch of fetches | ||
alester | I didn't wrap with vi | ||
Tene | so is the same. | ||
alester | Tene: it does fetch + update | ||
or fetch + something | |||
pmichaud | and this is just a plain text file so I didn't put a vi modeline in the file. | ||
05:26
bacek_ left,
AndyAway left,
p6eval left,
bacek_ joined,
AndyAway joined,
p6eval joined
|
|||
Tene | alester: not according to man git-remote | 05:26 | |
alester | I'm meaning to absorb this: robey.lag.net/2008/07/13/git-for-th...world.html | ||
pmichaud: you want I should rewrap for ya? | 05:27 | ||
pmichaud | no thanks, I'll take it as-is. | ||
dalek | kudo: 938b764 | (Andy Lester)++ | docs/announce/2009-02: Wordsmithing, fix some typos, rewrap |
||
pmichaud | it's not that big an issue for me. | ||
alester | ok | ||
pmichaud | it's close enough to be okay :-) | ||
alester | I like how I get karma in two channels at once. :-) | ||
I added more stuff in there, like telling people what git is. | 05:28 | ||
pmichaud | yes, I saw that. | ||
alester | Just trying to have my author hat on. | ||
pmichaud | I was thinking the reference to github might be sufficient. | ||
it feels odd to me that we have a reference to git's site but not Parrot's. | |||
I think I'll put some of the urls in as "footnotes" instead of inline. | 05:29 | ||
alester | ok, how's this | 05:30 | |
dru.rakudo.org/ | |||
pmichaud: Sounds good | |||
pmichaud | somehow I feel like the rakudo site should be more colorful; that's one of the things I like about the Parrot site :-) | 05:32 | |
Tene | Me too. | ||
alester | ok | 05:33 | |
themegarden.org | |||
pmichaud | yeah, I looked through a few other themes earlier but didn't have time to look extensively | ||
05:33
AzureStone left
|
|||
alester | themegarden.org/drupal6/?q=node&...lemontwist ? | 05:39 | |
dalek | kudo: 08b7890 | pmichaud++ | docs/announce/2009-02: Last set of wordsmithing before release. |
||
pmichaud | olive has never been one of my favorite colors. | 05:40 | |
Yes, I can be picky sometimes :-) | |||
alester | yeah, I like the URLs on the bottom. | 05:41 | |
pmichaud | themegarden.org/drupal6/?q=node&theme=nitobe # not colorful, but nice nonetheless | 05:42 | |
alester | we also have no logo to put up on the headline | ||
themegarden.org/drupal6/?q=node&...e=abessive ? | |||
pmichaud | abessive looks too crowded on my screen | 05:43 | |
alester | I like that a lot. Clean & not washed | ||
pmichaud | I prefer a bit more whitespace | ||
alester | we can also tweak the CSS | ||
if that's the only bummer, then that's pretty minor | |||
themegarden.org/drupal6/?q=node&...clearlooks ? | 05:44 | ||
more white | |||
no boxes | |||
pmichaud | themegarden.org/drupal6/?q=node&...me=fervens # maybe ? | 05:45 | |
alester | oooh themegarden.org/drupal6/?q=node&...cleanslate | ||
pmichaud | box_cleanslate is nice too | ||
alester | I don't like the boxes on fervens | ||
ok, good. | |||
box_cleanslate it is | |||
two yes votes is enough for me at 2345 | 05:46 | ||
but I'm not gonna get this completed tonight, alas | |||
05:47
jimmy_ left
|
|||
alester | some of these just look like some teenage girl with Photoshop threw up | 05:47 | |
05:47
simcop2387 left
|
|||
alester | themegarden.org/drupal6/?q=aggregat...ity_island ? | 05:48 | |
also clean, no header graphic for me to replace | |||
pmichaud | I like amity_island slightly more than box_cleanslate, I think | ||
okay, more than slightly now that I look at them side-by-side | |||
alester | ok. | 05:50 | |
amity | |||
Now stop looking! :-) | |||
plus, when we get it goin', i can install others | |||
and you can switch between 'em | |||
and figure what looks best w/rakudo.org directly | 05:51 | ||
dru.rakudo.org/ | 05:52 | ||
That's Amity Island | |||
pmichaud | yes, much better. | ||
alester | urgh, they don't know serif vs. sans serif | 05:53 | |
fixed | 05:54 | ||
mmm, i'm not so sure this is lookin' good on ours | |||
05:56
masak joined
|
|||
alester | eh, maybe it's OK | 05:56 | |
I'd feel a whole lot better if I could get the archvies over | |||
05:56
nihiliad left
|
|||
alester | amity isn't going to work long-term, but it's OK for now | 06:01 | |
06:02
justatheory joined
|
|||
alester | pmichaud++ | 06:07 | |
06:15
simcop2387 joined
06:16
hercynium joined
|
|||
wayland76 | pmichaud++ :) | 06:20 | |
rakudo-parrot-split-- | 06:24 | ||
I used to be able to go "rpmbuild -ta parrot-*.tar.gz" and it would give me RPMs | |||
How do I do that now? | |||
pmichaud | make an rpmbuild target for Rakudo, perhaps? ;-) | 06:25 | |
wayland76 | I'm familiar with RPM, if that helps | ||
Basically, rpmbuild needs a spec file to make things work | |||
Shall I steal the old Parrot one and try to use appropriate bits? | 06:26 | ||
pmichaud | that would be a place to start. But it might also be worthwhile to wait a month and see if we get the 'install' bits cleaned up. | ||
bacek_ | pmichaud++ | 06:27 | |
wayland76 | Hmm. Ok. No perl6 for another month :) | ||
That should give me more time to damage^W work on the specs :) | 06:28 | ||
bacek_ | Hooray, first version of Rakudo for few month with my patch included :) | ||
06:28
ILyuha joined,
ILyuha left
|
|||
alester | wayland76: Hey, wayland76, live with it. Ya gotta break eggs to make an omelette. | 06:35 | |
06:36
alester left,
szabgab joined
06:40
ashizawa joined
06:41
simcop2387 left
|
|||
wayland76 | Agreed. And still pmichaud++ :) | 06:41 | |
pugs_svn | r25605 | wayland++ | Typo. martin++ | 06:46 | |
wayland76 | @karma martin | ||
lambdabot | martin has a karma of 5 | ||
nikn | is perl6 really anarchy | 06:50 | |
masak | nikn: yes, welcome. | ||
wayland76 | Hey, I thought it was a benevolent dictatorship :) | 06:51 | |
masak | wayland76: that, too. | ||
it sort of fluctuates between the two states. | 06:52 | ||
Tene | The benevolent inmates are the dictators of the benevolent asylum? | ||
wayland76 | although maybe we should call the other one an anarcho-syndicalist commune | ||
:) | |||
ab5tract | wikipedia.org/Participatory_economics | ||
wayland76 | Tene: I was thinking of Larry = benevolent dictator | ||
masak | rakudo: say ~(<benevolent malevolent neutral>.pick(), <dictatorship anarchy democracy>.pick()) | ||
p6eval | rakudo 08b789: OUTPUT«neutral dictatorship» | 06:53 | |
masak | :) | ||
nikn | haha | ||
wayland76 | I guess rakudo doesn't dare venture an opinion on larry, but doesn't mind stating fact :) | ||
masak | nikn: have you tried Rakudo yet? it's awesome! | ||
wayland76: something like that. | 06:54 | ||
just don't ask it again. :) | |||
wayland76 | ab5tract: That's 404 :) But I found the page you meant | ||
Tene | Eh, larry doesn't claim to rule afaict, he mostly just sits there occasionally emitting designs that we all choose to implement. | ||
ab5tract | oh i typed it freehand oops | ||
paste it wayland76 :) | |||
wayland76 | nikn: By "awesome", he means "doesn't have a lot of libraries, but the core language is getting there" | ||
Well, if you insist. en.wikipedia.org/wiki/Participatory_economics | 06:55 | ||
ab5tract | it's totally in the tradition of the anarcho syndicalists and wobbly types | ||
nikn | rakudo: say ~(<i will learn perl>, <slowly painfully>.pick()) | ||
p6eval | rakudo 08b789: OUTPUT«i will learn perl slowly» | ||
nikn | :) | ||
thank god | |||
pmichaud | the two aren't mutually exclusive. :-) | 06:56 | |
masak | wayland76: no, by "awesome", I mean "awesome", and screw the libraries for now. | ||
if we need'em, we write'em. | |||
06:56
mberends joined
|
|||
wayland76 | masak: Agreed, but I wanted to be sure we didn't build hopes too high, and then disappoint :) | 06:56 | |
masak | mberends: greetings. | ||
wayland76: there's plenty of chance for that anyway. :) | 06:57 | ||
wayland76 | ab5tract: I was thinking of the "Repressed" skit by the pythons :) | ||
masak | nikn: watch out for bugs. and when you find them, be sure to send us a noe. | ||
mberends | masak++ : greetings. your SVG is sweet indeed | ||
ab5tract | wayland76: Naturally :) | ||
masak | mberends: thank you. :) | ||
nikn | masak: shore thing | ||
wayland76 | (that means you come on the channel and say "oh noes!" :) | ||
masak | mberends: will add lots of validation soon. | ||
ab5tract | (but parecon is some seriously cool shit) | 06:58 | |
Tene | ""O HAI GUYZ OBTW THERE ARE BUGS!!!!!!!" | ||
ab5tract | lol | ||
mberends | masak: I think SVG.pm should be promoted to XML.pm | ||
masak | mberends: been thinking the same thing. | ||
mberends | masak++ | ||
masak | mberends: that might happen, but probably not until I have a reason for it. | ||
pmichaud | good night, all | 06:59 | |
bbt | |||
masak | pmichaud: night | ||
mberends | XHTML, for example | ||
wayland76 | pmichaud: night, and thanks | ||
masak | mberends: if someone else clones it and builds XML.pm, I will do my very best to refit SVG.pm on top of XML.pm | ||
mberends: right now my main objective is to do SVG :) | |||
mberends | fine. that's all I have have time to report. commute & | 07:00 | |
o/ | |||
wayland76 | Is it in a repository? | ||
07:00
mberends left
|
|||
masak | mberends: aye, SVG and XHTML will both be validators on top of XML | 07:00 | |
wayland76: yes. | |||
wayland76 | I'm interested in hacking Tree::Node stuff onto XML | ||
masak | wayland76: you can download it with proto. :) | ||
wayland76 | would that upset you somehow? | ||
masak | wayland76: not if you stay out of CORE, no. | ||
wayland76: you're free to do whatever you want in modules. | 07:01 | ||
wayland76 | Will require MONKEY_PATCHING then :) | ||
masak | :) | ||
looking forward to seeing that. | |||
wayland76 | Well, first, I have to get rakudo doing rpmbuild | ||
and I'm also kinda interested in doing the CPAN modules | 07:02 | ||
Do we have a HTTP module yet? | |||
07:02
justatheory left
|
|||
masak | wayland76: no, but it's planned for the Web project. | 07:02 | |
wayland76: feel free to join in. | |||
wayland76 | OK | ||
I started investigating doing HTTP | |||
masak | news.perlfoundation.org/2009/02/200...bpm_-.html | ||
wayland76 | But then decided I needed the IO spec more finished :) | ||
masak | wayland76: there's also an old HTTP in the Pugs repository. | 07:03 | |
wayland76 | And if I could also get the event model and a finite state machine, then the thing will be half done :) | ||
pugs_svn | r25606 | lwall++ | some enum cleanup | ||
masak | wayland76: hm. just realized that the line numbers in my replies to you on p6l might be off, because I was looking at an outdated Spec/ directory. | 07:05 | |
but I don't think that the facts changed. | |||
wayland76 | Ok. When the e-mail arrives, I'll keep that in mind :) | 07:06 | |
masak | emails. :) | 07:07 | |
wayland76 | Yeah, I think we must've discussed HTTP once before | ||
Well, I think it's due to the 2 or 3 layers of spam checking :) | |||
masak | I plan to start on the Web effort in earnest next week. | ||
I'd like to get something like Ruby's Sinatra up and running. | |||
don't know how difficult that'll be. | |||
www.sinatrarb.com/ | 07:08 | ||
will probably read the code this weekend. | |||
Matt-W | Morning | ||
ab5tract | wayland76: You might be interested in this: rubywaves.com | ||
masak | morning, marvellous M people! | ||
wayland76 | Matt-W: morning :) | 07:09 | |
ab5tract | the page layout may be borked atm | ||
wayland76 | masak: Are you planning HTTP does IO::Socket::TCP? | ||
masak | ab5tract: nice. will process that site. | ||
ab5tract | It's designed around Resource oriented web programming | ||
masak | wayland76: don't know yet. | ||
ab5tract: cool. | |||
ab5tract | and the best part: the core dispatcher is based on a ruby gem called Functor, which essentially implements MMD | 07:10 | |
Really shows off the utility of the concept imo | 07:11 | ||
masak | yes, that sounds fantastic. | ||
wayland76 | Why does waves provide a Digital Subscriber Line (DSL)? :) | ||
ab5tract | the lead designer was just getting sad about people focusing on sinatra over waves | 07:12 | |
masak | poor guy. | 07:13 | |
ab5tract | cuz thats what non-perlers call 'dialects' ;) | ||
wayland76 | (or, what does DSL stand for in this context, since my Google foo doesn't seem to be helping me) | ||
Ok, thanks :) | |||
ab5tract | Domain specific language | ||
Matt-W | masak: did you say there's an example of passing action object to a grammar in November? | ||
wayland76 | Ah | ||
ab5tract | Rails == A DSL | ||
masak | Matt-W: yes, in a branch. see yesterday's logs. | ||
ab5tract | thats why it == booo | ||
;) | |||
masak | Matt-W: right after my little accident. | ||
ab5tract | waves is most remarkable for being so integrally ruby-esque | 07:14 | |
masak | I believe Perl 6's Web can take many cues from the Ruby world. | ||
wayland76 | Thanks all. Food! & | ||
ab5tract | yeah | ||
masak | not necessarily mimicking everything, just being inspired. | 07:15 | |
ab5tract | for instance you will want to spin something together to take the place of Rack | ||
masak | they do cool things on the other side of the fence. | ||
ab5tract: yes. been thinking the same. | |||
ab5tract | yeah. I can't wait for the worlds to merge | ||
masak | ab5tract: Rack is actually quite lang-independent. I think I will steal it right off, including the name. | ||
ab5tract | hmmm | ||
sounds good ;) | 07:16 | ||
masak: come play in #waves any time | |||
masak | ab5tract: absolutely. starting next week. | ||
Matt-W | masak: guess how far back my scrollback doesn't go... | 07:17 | |
masak | Matt-W: hit the web logs then, you lazy person. :) | ||
ab5tract | masak: I've literally been thinking of how powerful a tractor app integrated resource oriented architecture (ROA) could be for Perl 6 since Dan Yoder dropped MMD in the middle of our dispatcher | 07:18 | |
masak | ab5tract: I'm really glad about how things come together for Perl 6 Web. | ||
ab5tract: and the "funny" thing is, the Perl 5 people who don't do Perl 6 don't really seem to get it. they're all "what's wrong with CGI?". boy, will they be surprised! | 07:19 | ||
ab5tract | seriously | ||
jeez its funny how some folks are | 07:20 | ||
blows my mind when i read a perl blog complaining about perl 6 development | |||
i've been lurking on you guys since 10 sep 001 | |||
pretty amazing to see it all coming together right now, actually. | 07:24 | ||
Matt-W | That's about how long I've been paying attention | ||
The trouble is, if you don't pay much attention it doesn't look like a great deal is happening | |||
But things are moving really really fast now, you're quite right it's amazing | 07:25 | ||
Matt-W -> the office | |||
& | |||
07:26
jimmy_ joined
|
|||
ab5tract | Yeah but why talk crap about something you haven't even researched >:( | 07:26 | |
Parrot itself would change the world | 07:27 | ||
toss Perl 6 on top... | |||
(and you can say that same thing with switched subjects too) | 07:28 | ||
i digress | |||
masak | ab5tract: people like to feel that they are on top of things despite never having tried them. that often comes out as badmouthing. | ||
they don't mean any harm, they're just victims of their own cluelessness. | |||
07:28
NoirSoldats joined
|
|||
ab5tract | masak: yeah, it is all about water off the back. | 07:29 | |
masak | well, thing is, it can still hurt. I have to remind myself sometimes that they say stupid things because they haven't seen the Perl 6 development from the inside. | 07:30 | |
ab5tract | masak: Well I am definitely interested in helping do a Waves-style ROA implementation in p6 so | ||
masak | ab5tract: you're on. | 07:31 | |
ab5tract | I'll be learning p6 at the same time, and the deep internals of Waves have always mystified me | ||
masak | ab5tract: would you mind terriblu joining the November wiki mailing list? | ||
that's where the discussion about Web will take place. | |||
I'm about to write a short mail about how Rack, Sinatra and now Waves have impressed me lately. | 07:32 | ||
ab5tract | We are lucky in that we will not need to do a dance to get mmd | ||
masak | right. | ||
ab5tract | cool, yeah I'm already lurking | ||
masak | excellent. | ||
ab5tract | and perl6 grammar == drool ;) | ||
masak | I guess. what's drool? :) | 07:33 | |
ab5tract | I mean, it is awesome | ||
hehe | 07:34 | ||
I am very excited to use p6 grammars inside request dispatch | |||
jimmy_ | Is there Web.pm mailing list? | ||
for perl6 | |||
masak | jimmy_: no, just the November wiki mailing list. | 07:35 | |
groups.google.com/group/november-wiki | |||
I expect to start work on Web next week, and ihrd too. | 07:36 | ||
and we'll keep our Web discussion there. | |||
jimmy_ | joined it. | ||
ab5tract | masak: From the comments on the grant proposal, Waves' approach to modularity may go a ways to soothing fears | ||
masak | ab5tract: please comment. | 07:37 | |
ab5tract | sure | ||
masak | we need all the support we can get. :) | ||
ab5tract | not tonight though ;) | ||
masak | no prob. | ||
pugs_svn | r25607 | lwall++ | deprecate "is also" and "is instead" in favor of augment and supersede declarators | 07:40 | |
ab5tract | masak: this quevlar guy is a riot | ||
"For grammars please go to the dragon book from Aho, Sethi and Ullman." | |||
lol | |||
masak | :D | ||
ab5tract: I've replied to him very nicely. | |||
but the reply has not been approved yet. | |||
pugs_svn | r25608 | lwall++ | [STD] add augment and supersede declarators | ||
ab5tract | i read one from you to him | 07:42 | |
pugs_svn | r25609 | lwall++ | typo | ||
ab5tract | it was maybe too nice ;) | ||
but you did good | 07:43 | ||
i will try to write something intelligent | |||
as for tonight | |||
it ends for me now | |||
glad I was lurking in here tonight! | |||
peace out y'all | 07:44 | ||
07:45
ab5tract left
|
|||
masak | ab5tract++ | 07:45 | |
but I do believe you can never be too nice in a blog comment. | 07:47 | ||
wayland76 | Googled <<quevlar grammar>>. "Do you mean kevlar grammar"? :) | 07:53 | |
07:54
bacek joined
|
|||
wayland76 | Is one of the projects discussed so far a CMS? | 07:55 | |
masak | wayland76: no. | ||
but we do have a wiki. | |||
wayland76 | Fine. I'd like to do a CMS | ||
07:55
eternaleye left
|
|||
wayland76 | But I want one that stores all data as XML | 07:56 | |
And outputs XHTML2 | |||
downgrading to XHTML1 as necessary | |||
masak | wayland76: let's keep in touch about that. we need things built on top of Web, once it arrives. :) | ||
wayland76 | Which obviously requires lots of XML manipulation :) | ||
I was in the Drupal community for a few months, and while they evolve too fast, they try to get the architecture right | 07:57 | ||
So maybe we could copy some of that :) | |||
And I have a really good name for it, but am planning to keep that secret for a while :) | 07:59 | ||
08:01
bacek_ left
|
|||
masak | wayland76: looking forward to hearing more about your project. | 08:03 | |
wayland76 | Well, it won't happen until some of the prereqs are in place | 08:04 | |
Can you give me a link for your SVG :) | |||
masak | wayland76: sure, hold on. | 08:06 | |
github.com/masak/svg/tree/master/lib/SVG.pm | 08:07 | ||
wayland76 | Thanks. Did you notice that I specced a requirement for basic URI handling in IO.pod? | ||
masak | wayland76: no. | ||
I might look at that. | |||
wayland76: why should Perl 6 do basic URI handling? | |||
wayland76 | (ie. there's a .uri function that acts as a constructor) | ||
Oh, wait, it might not be IO.pod | 08:08 | ||
masak | I found .uri there, anyway. | ||
wayland76 | Yeah, that's right, that's the one | ||
masak | looks OK to me. | ||
it's a factory method of some sort. | 08:09 | ||
wayland76 | Ah, good, a proper name for it :) | ||
masak | is that an actual implementation I see? | 08:10 | |
seems wrongish to have that in the spec... | |||
wayland76 | Well, yes :) | ||
I agree :) | |||
masak | good. | ||
wayland76 | But if you want to take the code out, and rewrite it in English, feel free :) | ||
masak | the trick is not to spec too much, remember? :) | ||
I think the stuff above already does a good enough job. | 08:11 | ||
wayland76 | But then we need to specify what %?PROTOCOLS{'whatever'} takes as parameters | ||
08:11
DemoFreak joined
08:13
jimmy_ left
|
|||
masak | what the heck is %?PROTOCOLS ? it's the first time I hear about it. | 08:13 | |
wayland76 | I made it up :) | ||
But it's in IO.pod now | |||
masak | I'm not sure that should be a global variable. | ||
wayland76 | (actually, I'm editing it; stand by for new version) | 08:14 | |
Maybe not. But what does it go on? | |||
masak | seems very IO-specific. | ||
a class attr on IO should be fine by me. | |||
but I still don't think that actual implementation should be specced. | |||
wayland76 | Yeah, removing implementation :) | ||
masak | unless it's perfectly clear it's pseudocode. | ||
yay, enum names have landed! TimToady++ | 08:15 | ||
pugs_svn | r25610 | wayland++ | IO.pod: Got rid of code, replaced it with spec | 08:16 | |
wayland76 | There we go. Try svn up, and see if it's a bit better | 08:17 | |
Now to explain why we want %?PROTOCOLS | |||
If we're to have a generic uri() method that isn't attached to a particular object | |||
we have to have some way of knowing which object to create | |||
masak | I'm a bit too distracted too evaluate this design. | 08:18 | |
wayland76 | ok :) | ||
masak | I'll let others have a say instead. | ||
wayland76 | I'd love to hear a better idea | ||
perl6 -e 'uri("www.perl.org/").print' | |||
masak | I'm sure people will have valuable suggestions. | 08:19 | |
wayland76: what should an IO::Socket::TCP stringify to? | |||
wayland76 | Or perl6 -e 'IO::Socket::HTTP.uri("www.perl.org/").print' | ||
At the moment, IO overrides print so that it prints to the socket | 08:20 | ||
so I'm not sure what's going on there :) | |||
I'm assuming it will suck data from the socket and print it to $*OUT, but that's probably wrong :) | |||
masak | I'm not sure at which point of the overspeccing boundary I think this falls. | ||
I think the core modules in Perl 6 should be those really vital for making Perl 6 Perl 6. | 08:21 | ||
not a lot of net communications stuff. | |||
08:21
AzureStone joined
|
|||
masak | I say this as someone who will need a lot of net communications stuff in Perl 6 very soon. | 08:21 | |
wayland76 | I'm mainly interested in TCP because it allows us to easily make the IO::Socket abstraction that we use for reading files also do net stuff | 08:22 | |
masak | wayland76: yes... but why in the Perl 6 spec? | ||
why not in a really good module? | 08:23 | ||
wayland76 | So I guess I'm saying that the Perl 6 spec should have to be consistent with the IO::Socket::TCP spec, but that Perl6 implementors may be able to avoid it | ||
masak: Well, perl5 has it as built-in | |||
masak | oh, ok. | ||
masak knows too little about all this | |||
wayland76 | I'm trying to find something to do with all those socket/bind/listen/whatever calls :) | ||
masak | ah, right. | 08:24 | |
wayland76 | And it would be raw HTTP output, headers and all | ||
masak | just don't overspec, and I'm happy. it ought to be very possible to override classes, for example. | ||
wayland76 | (TCP, that is, not a HTTP module which of course doesn't go in core) | ||
masak | wayland76++ | ||
wayland76 | I'm trying not to write classes, just roles :) | ||
masak | we are in violent agreement. | ||
wayland76 | And, strangely enough, you're violet in my IRC client :) | 08:25 | |
(ie. it's colouring your name violet) | |||
The only real disagreement at this point, I think, is %?PROTOCOLS | |||
masak | ...which isn't spelled that way in your commits. | 08:26 | |
wayland76 | And if someone sends me a better idea, hooray, but be prepared to explain it to me :) | ||
masak | of course. | ||
08:26
jimmy_ joined
|
|||
pugs_svn | r25611 | hinrik++ | [util/perl6.vim] add 'augment' and 'supersede' | 08:26 | |
Matt-W | So 'is also' is dead then? | 08:27 | |
masak | yup. | 08:28 | |
pugs_svn | r25612 | wayland++ | IO.pod/S28: Regularised %*PROTOCOLS | ||
Matt-W | interesting | 08:29 | |
wayland76 | masak: Thanks. That's %*PROTOCOLS really anyway :) | ||
masak | np. | ||
pugs_svn | r25613 | hinrik++ | [util/perl6.vim] and remove 'also' ... | ||
masak | it's just that it doesn't feel like a global hash to me. it feels more like a class attribute somewhere. | ||
08:30
payload1 left,
bacek left
|
|||
wayland76 | masak: Well, if you work out where, let me know, and I'll see if it works with what I know. | 08:31 | |
masak | aye. | 08:32 | |
Matt-W generally distrusts globals until proven otherwise | |||
wayland76 | Matt-W: It goes against everything I've been taught too :) | 08:33 | |
moritz_ | good morning | ||
wayland76 | moritz_: 'morning :) | ||
masak: Does your SVG module do parsing, or just generation? | 08:34 | ||
masak | wayland76: no validation so far. | ||
that's the next step. | |||
see Pod. | |||
wayland76 | Ok. I have part of an XML parser based on moritz_'s earlier work | 08:35 | |
08:35
payload joined
|
|||
masak | wayland76: oh, I misunderstood you. | 08:35 | |
wayland76: I'm not sure I'll be parsing SVG anytime soon. | |||
wayland76 | IMO, though, generation should be done by generating objects, and then doing object -> tree | 08:36 | |
No worries :) | |||
masak | wayland76: that's what the Perl 5 CPAN module does. | ||
wayland76 | I figured that | ||
masak | you could call my approach 'slightly more light-weight'. | ||
and YMMV. | 08:37 | ||
wayland76 | Yeah, object-generation interfaces tend to be heavy :) | ||
08:37
Lorn left
|
|||
wayland76 | I think a combination of your approach, and then parsing would be best :) | 08:38 | |
Which is essentially what you just said :) | |||
08:38
jimmy_ left
|
|||
wayland76 | Ok, I'm all happy now :), but should probably stop while I'm ahead :) | 08:38 | |
Hey, I have a question | |||
masak | shoot. | ||
wayland76 | I'd like to reorganise S16 and S17 | ||
(this is a question for everyone :) ) | 08:39 | ||
I'd like S16 to be "IO Users and Groups" | |||
And S17 to be "Processes and Threads" | |||
oops, sorry, "Processes and concurrency" | |||
08:39
szabgab left
|
|||
wayland76 | With S17 containing concurrency, the event loop, signals, and IPC | 08:40 | |
and S16 containing objects that replace things like getpwent and getgrnam | |||
masak | I guess you meant "IO, Users and Groups", with a comma. | ||
wayland76 | Yes | ||
masak | I'm not sure adding "Users and Groups" is necessary. | 08:41 | |
wayland76 | Unless I want to spec users that do IO :) | ||
masak | better to call it "IO and file systems" or something. | ||
wayland76 | Well, getpwuid essentially returns a user object | ||
But I'd like to replace it with something less OS-specific | |||
moritz_ | wayland76: for concurrency there's a haskell paper somewhere that unifies threads, stm and events... | 08:42 | |
wayland76: I think we wanted Perl 6 to implement something like this, with a perlish interface | |||
wayland76 | That'd be kinda cool | ||
moritz_ | www.seas.upenn.edu/~lipeng/homepage/unify.html this one I think (not 100% sure) | 08:43 | |
Tene | perl6: say "omg" if 'foo' ~~ <a b foo bar> | 08:47 | |
p6eval | rakudo 08b789: RESULT«Bool::False» | ||
..elf 25613: RESULT«undef» | |||
..pugs: RESULT«undef» | |||
moritz_ | perl6: say "omg" if 'foo' ~~ <a b foo bar>; say "no other output" | ||
p6eval | elf 25613, pugs, rakudo 08b789: OUTPUT«no other output» | ||
Tene | Huh. I guess I'm misremembering smartmatch against arrays. | 08:48 | |
moritz_ | that changed | 08:49 | |
masak | see S03. :) | ||
moritz_ | you now write that with any(<a b foo bar>) | ||
masak | or *, "foo", * | ||
Tene | ah | 08:50 | |
perl6: say "omg" if 'foo' ~~ any(<a b foo bar>) | |||
p6eval | elf 25613: OUTPUT«Undefined subroutine &GLOBAL::any called at (eval 125) line 3. at ./elf_h line 4346» | ||
..pugs, rakudo 08b789: OUTPUT«omg» | |||
wayland76 | masak: Your e-mail that refers to line numbers still hasn't arrived :) | ||
moritz_ | did we have a rakudo release yesterday? if yes, where is it announced? where's the tarball? | ||
masak | wayland76: p6l mails arrive slowly. | 08:51 | |
wayland76 | p6l: www.pmichaud.com/perl6/rakudo-2009-02.tar.gz | ||
masak | and I removed you as a recipient, so you'll get it along with everybody else. | ||
Tene | moritz_: clearly advertised on rakudo.org/ of course | ||
moritz_ | ah, I see one on parrot-dev | ||
08:51
bacek joined
|
|||
Tene | (lies) | 08:51 | |
wayland76 | ok, I thought I'd noticed that they were a bit slow :) | ||
08:57
araujo left
|
|||
bacek | perl6: my $a = 1; $a &&= 42; say $a | 09:03 | |
p6eval | rakudo 08b789: OUTPUT«get_iter() not implemented in class 'Integer'current instr.: 'prefix:=' pc 20533 (src/builtins/misc.pir:17)» | 09:04 | |
..pugs: OUTPUT«42» | |||
..elf 25613: OUTPUT«Unknown rule: infix_postfix_meta_operator:=It needs to be added to ast_handlers. at ./elf_h line 2042» | |||
bacek | perl6: my $a = 0; $a &&= die; say $a | ||
p6eval | pugs, rakudo 08b789: OUTPUT«0» | ||
..elf 25613: OUTPUT«Unknown rule: infix_postfix_meta_operator:=It needs to be added to ast_handlers. at ./elf_h line 2042» | |||
bacek | perl6: my $a = 1; $a &&= die; say $a | 09:05 | |
p6eval | pugs: OUTPUT«*** Died at /tmp/Kxo31aXGRa line 1, column 12-22» | ||
..rakudo 08b789: OUTPUT«No applicable methods.current instr.: '_block14' pc 85 (EVAL_17:45)» | |||
..elf 25613: OUTPUT«Unknown rule: infix_postfix_meta_operator:=It needs to be added to ast_handlers. at ./elf_h line 2042» | |||
09:06
riffraff joined
|
|||
bacek | pmichaud: around? | 09:09 | |
masak | bacek: no, he's asleep. | 09:10 | |
bacek | masak: ah, ok. | ||
Matt-W | Wish I was asleep | 09:14 | |
bacek | rakudo: say [*] (); say ().reduce: { $^a * $^b } | 09:18 | |
p6eval | rakudo 08b789: OUTPUT«1Cannot reduce an empty list» | ||
bacek | perl6: say [*] (); say ().reduce: { $^a * $^b } | ||
p6eval | elf 25613: OUTPUT«Parse error in: /tmp/vH0Gl0cOtkpanic at line 1 column 0 (pos 0): Can't understand next input--giving upWHERE: say [*] (); say ().reduce: { $WHERE:/\<-- HERE STD_red/prelude.rb:99:in `panic' STD_red/std.rb:76:in `scan_unitstopper' STD_red/std.rb:224:in `comp_unit' | ||
..STD_r... | |||
..rakudo 08b789: OUTPUT«1Cannot reduce an empty list» | |||
..pugs: OUTPUT«1» | |||
pugs_svn | r25614 | wayland++ | Return type for subst | 09:19 | |
wayland76 | riffraff is a Viking (Norman) in the Asterix book | 09:20 | |
(Hi riffraff :) ) | 09:22 | ||
bacek finally finished triangle version of reduce metaop. | 09:23 | ||
moritz_ | bacek: do you have a separate branch for that? | 09:24 | |
bacek | moritz_: no. It's in my master | ||
But I easily can create branch for it. | 09:25 | ||
Or single patch. | |||
git allows you to shoot foot in many different ways :) | |||
moritz_ | single patch or branch would both be much easier to test and apply than several commits spread out in master | 09:26 | |
bacek | moritz_: Agreed. But I need review of current version beforehand. | 09:28 | |
15 minutes left of battery life... | |||
moritz_ | bacek: no hurry ;-) | ||
bacek: I won't get to look at your patch(es) before Monday anyway | |||
bacek | moritz_: no worries :) | ||
moritz_ | wayland76: you should also remove the XXX that your last commit left over | 09:31 | |
wayland76 | moritz_: According to that link you sent me, it has an event loop, with green threads layered on top | 09:32 | |
moritz_ | wayland76: that fits very well into the picture of integrating signals into the event loop | 09:33 | |
pugs_svn | r25615 | wayland++ | Typo, my bad. wayland-- Incidentally, I can karma myself here, I think :) | ||
wayland76 | moritz_: Good catch. Fixed | 09:34 | |
bacek | my... battery... dying... | 09:35 | |
wayland76 | git: the great feet to colander converter | ||
bacek | see you soon | ||
moritz_ | ciao | ||
wayland76 | Quick, plug bacek back in | ||
! | |||
I didn't realise he was a bot :) | |||
(cya :) ) | 09:36 | ||
09:39
mikehh left
|
|||
riffraff | hi | 09:52 | |
masak | greetings. | ||
09:52
mikehh joined
09:57
bacek left
|
|||
pugs_svn | r25616 | wayland++ | Moved Signals and IPC from S16 to S17, which can now be processes and concurrency. | 09:58 | |
r25617 | wayland++ | Applied new names to S16 and S17 | 10:00 | ||
10:01
Chillance joined
10:03
bacek joined,
Exodist left
|
|||
bacek | hi again | 10:04 | |
10:05
Exodist joined
|
|||
bacek | bacek@icering:~/src/parrot/languages/rakudo.bacek$ ./perl6 -e 'sub m (&f) { say "a" ~~ m/<f>/ }; regex outer { a }; m(&a)' | 10:10 | |
Non-Callable argument for f in call to m | |||
moritz_: (about #63458) it this message you are looking for? | 10:11 | ||
moritz_ | is a regex not callable? | 10:12 | |
I'm not sure what the right error message would be | |||
but either "'f' is not a regex' or what you said | 10:13 | ||
10:14
ashizawa left
|
|||
bacek | moritz_: technically regex is just sub. | 10:16 | |
moritz_ | bacek: or a method | ||
bacek | rakudo: sub m(&f) { }; say m(&foo) | 10:17 | |
p6eval | rakudo 08b789: OUTPUT«Null PMC access in isa()current instr.: '!SIGNATURE_BIND' pc 2580 (src/classes/Signature.pir:377)» | ||
bacek | this is short version of your bug :) | ||
masak | @tell mberends I just did a very thorough review of your proto.perl5, and renamed it proto -- so now the bash script is gone. | 10:20 | |
lambdabot | Consider it noted. | ||
bacek | moritz_: patch committed, pushed, ticket updated :) | 10:25 | |
masak: around? | 10:31 | ||
10:31
DemoFreak left
|
|||
masak | bacek: somewhat. | 10:31 | |
bacek | masak: can you merge #63440 and #61602 please | 10:32 | |
masak merges | |||
10:38
pmurias joined
10:50
payload left
10:51
ejs joined
|
|||
mikehh | I have just rebuilt rakudo and am getting diagnostic messages with make test | 10:51 | |
starts with => Scope not found for PAST::Var '@INC' in | |||
then current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:102) | 10:53 | ||
bacek | masak: And close #60164. It was integrated into Rakudo recently | ||
masak | mikehh: this is a frequently asked quesion nowadays. | ||
mikehh: unfortunately, I don't know the exact answer. but it was on p6l yesterday. | |||
moritz_ | I think p6c | ||
masak | I can dig it out for you. | ||
right. | |||
masak closes #60164 | 10:54 | ||
bacek | masak: and #60368. I can't reproduce it anymore. | 10:55 | |
mikehh | there are then 16 lines of called from info and then it reports the test ok | ||
masak checks #60368 | |||
mikehh | All tests successful. | 10:56 | |
Files=29, Tests=236, 68 wallclock secs ( 0.18 usr 0.10 sys + 57.27 cusr 9.19 csys = 66.74 CPU) | |||
Result: PASS | |||
masak | mikehh: www.nntp.perl.org/group/perl.perl6....g3579.html | 10:57 | |
moritz_ | bacek: pugs r25617 seems to have broken the test with rakudo master - could you please fudge it? | 11:03 | |
bacek | moritz_: lemme have a look | 11:04 | |
moritz_ | it's probably just s/todo/skip/ in some places | ||
btw you can also say #?rakudo 3 todo | |||
instead of three lines of #?rakudo todo | |||
bacek | moritz_: 3 lines of "todo" works better with autounfudge.pl :) | 11:05 | |
mikehh | I did all that stuff - had the problem with i386 Linux - switched to AMD64 Linux | ||
masak | mikehh: ok. | 11:06 | |
mikehh | did a git pull, make realclean, perl Configure.pl, make test | ||
masak | mikehh: strange. | ||
mikehh | I have been having some weird problems recently - with parrot | 11:07 | |
I think I need to do a complete re-install | |||
masak | might be. | 11:08 | |
I tend to avoid most problems by doing 'make realclean' after every update. | |||
mikehh | each of the tests drom make test has 18 diagnostic lines of output starting with | 11:09 | |
masak | lunch & | 11:10 | |
mikehh | Scope not found for PAST::Var '@INC' in | ||
current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:102) | 11:11 | ||
pugs_svn | r25618 | bacek++ | [t/spec] Properly fudge tests for Rakudo | ||
mikehh | and then the callback info | 11:13 | |
if I try make spectest it does exactly the same | |||
FOR EACH TEST | 11:14 | ||
but then reports ok | 11:15 | ||
as far as I can see this is identical for diagnostics for all the tests | 11:17 | ||
11:20
alc left
|
|||
mikehh | let me do a clean git clone of rakudo and see what happens | 11:20 | |
ruoso | @tell TimToady I think it makes sense that the code where this semantics apply should be enclosed by { }... like "sub op { meta { ... } }"... but maybe it could simply be "CALLER::.eval { ... }" then... | 11:23 | |
lambdabot | Consider it noted. | ||
mikehh | Nope I am getting the same | 11:33 | |
pugs_svn | r25619 | wayland++ | Did some work on users and groups | 11:34 | |
masak | mikehh: sounds to me your best shot at getting helped right now is to put together an RT ticket detailing the errors and your configuration. [email@hidden.address] | 11:36 | |
mikehh | I did a git clone, cd rakudo, perl Configure.pl --gen-parrot then make, make test | 11:38 | |
pmurias | ruoso: i think we should have a "no failing tests policy" for mildew | 11:40 | |
wayland76 | pmurias: And for all versions of Perl6, right? :) | ||
s/versions/implementations/ | 11:41 | ||
(sorry :) ) | |||
11:44
masak left
|
|||
pmurias | wayland76: what i meant i not to have failing tests in our test suit (it's seperate as we can't run the offical one yet | 11:44 | |
wayland76 | pmurias: Yeah, I figured it was something like that, but I saw some potential for humour, and explored that potential :) | 11:45 | |
I usually can't help myself :) | |||
11:47
Lorn joined
11:48
aindilis` left
|
|||
ruoso | pmurias, what do you mean? | 11:49 | |
pmurias | ruoso: keeping failing tests in ROADMAP and trying to keep all tests passing in mildew/t | 11:51 | |
ruoso | I think that's a pretty sane policy IMHO | ||
we might even rename that to mildew/regression | 11:52 | ||
so we know that is the things that already work, and shouldn't stop working | |||
pmurias | t is a nice name ;) | 11:53 | |
ruoso | :) | 11:55 | |
pmurias, I think I'll disable the mem trace | 11:56 | ||
we know there are leaks | |||
we don't need warnings everytime | |||
;) | |||
pugs_svn | r25620 | ruoso++ | [smop] we know we have lots of memory leaks, so I will remove the warnings untill we fix them | 11:57 | |
ruoso | we already pass one spec-test... should we start fudging? ;) ;) ;) ;) ;) ;) | 12:00 | |
@tell TimToady v6/mildew/t/our_sub.t makes STD warns about undeclared names, but the names are being declared... | 12:02 | ||
lambdabot | Consider it noted. | ||
pugs_svn | r25621 | wayland++ | Created UserIterator and GroupIterator, and grouped some S29 functions together. | 12:07 | |
wayland76 | Bedtime. Night all! & | 12:09 | |
ruoso | wayland76, i'm not sure you actually need those... since Iterators are already private | ||
wayland76 | I don't understand the connection | ||
ruoso | I mean... when you ask for an Iterator, it is already supposed to be of some type private to that data structure | ||
the Iterator role is really just an interface | |||
wayland76 | Oh, I see | 12:10 | |
ruoso | So I'm not sure you need to spec UserIterator or GroupIterator | ||
wayland76 | So do I need to create a UserList with an iterator ? | ||
ruoso | in theory, at most you need a List of User | ||
wayland76 | I'm trying to provide the getpwent/setpwent/endpwent functionality | ||
I'm trying to provide a lazy list though. | 12:11 | ||
ruoso | lists are always lazy | ||
wayland76 | Do I do something special to get that? | ||
ruoso | unless stated otherwise | ||
wayland76 | So I make a users function that returns List then? | ||
ruoso | yes, and if you really wants to have a more stronger typing... | ||
you can really make a "List of User" | 12:12 | ||
wayland76 | Ok. Now I just need to figure out what object the .users() function goes on | ||
ruoso | wayland76, UNIX::passwd ? | 12:13 | |
wayland76 | I'm trying to make User more generic, though. Anyway, I'll fiddle with things some more, and people can shoot me afterwards as usual :) | 12:15 | |
ruoso | wayland76, I think you can leave a more abstract implementation to be made from the specific implementations | 12:16 | |
so you have UNIX::passwd that returns UNIX::User | |||
and Win32::passwd? that returns Win32::User | 12:17 | ||
then someone can implement a more generic abstraction | |||
I don't really know Win32 enough to know if there are commonalities between UNIX::User and Win32::User | 12:19 | ||
pmurias | one thing that would be very usefull to have in S32 is the spec for Capture class | ||
wayland76 | pmurias: It's in there somewhere | ||
Callable.pod | |||
ruoso | there is still one conceptual issue in Capture that needs solving | 12:20 | |
which is how much DWYMmery it should implemnet | |||
wayland76 | Of course, the S32 things are still quite incomplete, especially the stuff in Exception, Callable, and Abstraction | 12:28 | |
ruoso: Me either (re: knowing win32), but I'm pretty sure they have a username, a user ID, and a home directory | 12:30 | ||
I doubt it's in a passwd file, though | |||
ruoso | I actually have a strong opinion about this kind of things | 12:31 | |
I think abstractions should be made as modules later | |||
we should provide the things we have available... | |||
and if that's OS-specifc, it goes into an OS-specific package | |||
someone can implement abstractions later | 12:32 | ||
pugs_svn | r25622 | wayland++ | Replaced iterators with NameServices role, based on an idea of ruoso++ (although I doubt | ||
r25622 | wayland++ | he wants credit for some of the things I've done with his ideas :) ) | |||
wayland76 | ruoso: Hmm. I guess it depends on what sort of cross-platformness you want to achieve | 12:33 | |
I'd personally rather see the spec be as platform-neutral as possible | 12:34 | ||
But on the other hand, I'm assuming we'll implement all old functionality unless it gets booted from the core as Form.pm was | |||
ruoso | my point is that IMHO, you shouldn't deprive the platform-specific access in that name | ||
because if you want to implement OS-specific code, you can | |||
but if you want to implement OS-independent code, you can use the abstractions | 12:35 | ||
wayland76 | Oh, but I forgot to mention, I think that platform-specific code should be do-able | ||
moritz_ | but it shouldn't be the default | ||
wayland76 | via external calls | ||
ruoso | I mean... getpwent doesn't need to be imported by default | ||
but as it's a libc function, it should be available by default | 12:36 | ||
even so that you can implement a more abstract implementation | |||
in that sense, NameServices is "almost" ok | |||
it's just missing a UNIX:: before | 12:37 | ||
since it's very UNIX specific | |||
wayland76 | I think you should have to do something like use libc:from<C>; to get libc functions | ||
as far as NameServices goes, I agree | 12:39 | ||
It's one of the things where you can't avoid unix specific | |||
ruoso | wayland76, "use libc:from<C>": that is a false generalization... because you're probably not allowing malloc | ||
moritz_ | why not? if somebody wants to shoot himself... | 12:40 | |
wayland76 | Ok, use libc:from<C> qw(getpwent); or whatever | ||
moritz_ | I mean we'll allow a FFI anyway | ||
wayland76 | Perl6 -- lets you make swiss cheese of your feet :) | ||
moritz_ | so we can't prohibit it, so we can just as well allow it, with the usual "here be dragons" remarks | 12:41 | |
pugs_svn | r25623 | wayland++ | Fixed name of NameServices. wayland-- for not picking this up before :). | ||
ruoso | moritz_, right... | 12:42 | |
moritz_, you convinced me | |||
we start with "use libc:from<C>" | 12:43 | ||
wayland76 | (which I pulled from S21, btw) | ||
ruoso | but that line probably needs to be longer | 12:44 | |
moritz_ | use C:EVIL::libc ;-) | 12:45 | |
wayland76 | Agreed. S21 needs some work, but I'm not the one to do it :) | ||
ruoso | "use libc :from<C> :include<pwd.h>" | ||
moritz_ | :kill<me> ;-) | 12:46 | |
wayland76 | The from, if I understand correctly, is really supposed to be an external platform (ie. C??? vs. JVM vs. ...) | ||
Anyway, it's past my bedtime, so I'd better get to bed, seeing as I have to be up an hour or two early tomorrow. & | 12:48 | ||
ruoso | yes | ||
it should be any external platform | |||
like | |||
mildew: use CGI:from<perl5>; | |||
p6eval | mildew: OUTPUT«Can't locate object method "terminator__S_401Semi" via package "STD" at ../../src/perl6/STD.pm line 3160.» | ||
ruoso | hmpf | ||
as long as EXTERNAL::LOADER::perl5 or something like that is avaliable | 12:50 | ||
I just wonder how you can parse a '.h' file and get the ABI right | 12:54 | ||
moritz_ | there was a summer of code project for parrot to do just that | 12:55 | |
the nci compiler | |||
literal | do any Perl 6 functions act on the current topic when not given an argument? | 13:09 | |
or has that been eliminated? | 13:10 | ||
moritz_ | literal: only special syntactic forms like s/.../, m/.../, tr/.../ | 13:11 | |
literal: apart from that can '.say' if you mean '$_.say' | |||
also 'when' acts on $_ by default | |||
but it's not a classical built-in | |||
literal | yeah, that makes more sense than having to memorize a list of functions that use $_ like in Perl 5 | 13:12 | |
if one likes to be terse, that is | 13:13 | ||
moritz_ | it gives a slight disadvantage for writing obfus ;-) | ||
but that's compensated by meta operators and other nice syntax | 13:14 | ||
literal | yeah, but it's only one extra char, .say vs say | ||
moritz_ | in obfus every char counts ;,-) | ||
literal | so the regex operators still use $_ ? e.g. this works? for @list { s/../../ } ? | 13:15 | |
moritz_ | yes | ||
13:26
skids left
13:38
|jedai| left
13:39
|jedai| joined
13:48
simcop2387 joined
13:53
kanru joined
|
|||
pmichaud | for those that are seeing the @INC errors -- I need to know the version of TAP::Harness or Test::Harness being used on the system | 14:00 | |
the problem is t/harness releated. | |||
(which is why there's no obvious pattern) | 14:01 | ||
14:19
skids joined
14:24
araujo joined
|
|||
pmurias | perl6: $capture = \(1:2,3);$$capture = 7;say $capture; | 14:27 | |
p6eval | elf 25623: OUTPUT«Can't locate object method "re_groups" via package "IRx1::Var" at ./elf_h line 2923.» | ||
..pugs: OUTPUT«***  Unexpected " =" expecting "::" Variable "$capture" requires predeclaration or explicit package name at /tmp/9yCjGckU6u line 1, column 9» | |||
..rakudo 08b789: OUTPUT«Statement not terminated properly at line 1, near ":2,3);$$ca"current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)» | |||
pmurias | pugs: my $capture = \(1:2,3);$$capture = 7;say $capture; | ||
p6eval | pugs: OUTPUT«7» | ||
pmurias | pugs: my $capture = \(1:2,3);$$capture = 7;say $capture.perl; | ||
p6eval | pugs: OUTPUT«\7» | ||
pmurias | pugs: my $capture = \(1:2,3);say $capture.perl; | ||
p6eval | pugs: OUTPUT«CaptMeth {c_invocant = IFinite 1, c_feeds = [:MkFeed {f_positionals = [:IFinite 2,IFinite 3:], f_nameds = []}:]}» | ||
14:29
AndyAway is now known as alester
|
|||
PerlJam | hey, when does dru become www? I was going to post the rakudo release as news on perlmonks, but I'd rather the link point to rakudo.org than use.perl.org. | 14:44 | |
14:47
nikn left
|
|||
alester | perlbuzz.com/2009/02/perl-6-stretch...lease.html | 14:48 | |
Someone submit it to reddit, please? | |||
pmichaud | PerlJam: I think it's already done/there. | 14:50 | |
oh, I guess not. | |||
alester | PerlJam: Tonight I hope. | ||
I'm having problems with Markdown. | 14:51 | ||
but I have the afternoon off. | |||
pmichaud | the announcement is already available from dru.rakudo.org/node/11 though. | ||
alester | yeah, but don't point at dru | ||
dru will go away | |||
PerlJam | right, that's what I figured. | ||
I'll wait | |||
alester | Or I could just say screw it, and make it go live. :-) | ||
PerlJam | (or you guys could post to perlmonks whenever it's ready :) | 14:52 | |
alester | but I'm wanting someone to click the Reddit submit, too. | ||
on the Perlbuzz post. | |||
My headline's more breathless. :-) | |||
I'm hoping someone in media somewhere picks it up. | |||
but right now, I must get back to testing cron jobs on the soon-to-be-new-server | 14:54 | ||
14:59
cas joined,
jan_ left
|
|||
ruoso | mildew: use CGI:from<perl5> | 15:17 | |
p6eval | mildew: OUTPUT«Can't locate object method "emit_m0ld" via package "use CGI:from<perl5>" (perhaps you forgot to load "use CGI:from<perl5>"?) at mildew line 122.» | ||
ruoso | hmpf | 15:18 | |
15:30
simcop2387 left,
simcop2387 joined
15:34
DemoFreak joined
15:41
justatheory joined
|
|||
pmurias | ruoso: it parses fine in a standalone mildew | 15:42 | |
mildew: say "hi" | |||
p6eval | mildew: OUTPUT«Can't locate object method "term__S_389identifier" via package "STD" at ../../src/perl6/STD.pm line 1270.» | 15:43 | |
ruoso | it seems that lex is b0rk3 | ||
pmurias | mildew: say "hi" | 15:44 | |
p6eval | mildew: OUTPUT«Can't locate object method "emit_m0ld" via package "say "hi"" (perhaps you forgot to load "say "hi""?) at mildew line 122.» | ||
ruoso | pmurias, I'm implementing a EXTERNAL::use_from_perl5($module) | 15:45 | |
pmurias | i imports stuff from a perl5 module into a lexical scope? | ||
s/i/it/ | |||
ruoso | it actually returns a p5 string that behaves as a SMOP type | 15:46 | |
so you can call ::CGI.new | |||
pmurias | ::CGI := EXTERNAL::use_from_perl5("CGI")? | 15:49 | |
15:51
riffraff left
|
|||
ruoso | yes... | 15:52 | |
but that should happen at a bit lower level | |||
so you can bind ::CGI without failing the lookup | |||
pugs_svn | r25624 | ruoso++ | [mildew] a first sketch on EXTERNAL.pm | 15:53 | |
pmurias | btw we need to create a new capture in RoleHOW.dispatch as the invocant is different | 15:54 | |
ruoso | hmm... there's the capture delegation | 15:55 | |
pmurias | ruoso: you can used the faked infix:<~> | ||
15:58
kanru left
|
|||
ruoso | pmurias, yeah... I don't know why I didn't use it | 15:59 | |
15:59
nihiliad joined,
Tene_ joined
|
|||
pmurias | ruoso: what will we use as our Str type? | 16:01 | |
ruoso | pmurias, we'll need to implement it | 16:02 | |
at some point | |||
what we need is a native buf | |||
so string can be implemented | |||
but I think that can be implemented later | 16:03 | ||
pmurias | i want to pass more of sanity but i'm usure what should int.Str return | ||
maybe i could just write int.idconst for now? | |||
16:03
hercynium left
|
|||
ruoso | for now, it could return an idconst, since that's what we have | 16:03 | |
16:07
mncharity joined
|
|||
mncharity | rakudo: say "a" ~~ /:ratchet a*a/ | 16:08 | |
p6eval | rakudo 08b789: OUTPUT«» | ||
mncharity | rakudo: say "a" ~~ /:ratchet a*/ | ||
p6eval | rakudo 08b789: OUTPUT«a» | ||
mncharity | rakudo: regex as {a*}; say "a" ~~ /:ratchet <as>a/ | 16:09 | |
p6eval | rakudo 08b789: OUTPUT«» | ||
16:09
jan_ joined
16:10
Tene left
16:11
justatheory left
|
|||
mncharity | rakudo: regex as {z?a*}; say "a" ~~ /:ratchet <as>a/ | 16:12 | |
p6eval | rakudo 08b789: OUTPUT«» | ||
mncharity | rakudo: regex as {{say 5}a*}; say "a" ~~ /:ratchet <as>a/ | ||
p6eval | rakudo 08b789: OUTPUT«Statement not terminated properly at line 1, near "*}; say \"a"current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)» | ||
mncharity | rakudo: regex as {{}a*}; say "a" ~~ /:ratchet <as>a/ | ||
p6eval | rakudo 08b789: OUTPUT«Malformed regex definition at line 1, near "as {{}a*};"current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)» | ||
mncharity | rakudo: regex as {::a*}; say "a" ~~ /:ratchet <as>a/ | 16:13 | |
p6eval | rakudo 08b789: OUTPUT«» | ||
ruoso | pmurias, are you implementing use Foo :from<perl5>? | 16:14 | |
pmurias | no, int.Str | ||
mncharity: hi | |||
mncharity | TimToady: re feather.perl6.nl/syn/S05.html , "imply a : after every construct that could backtrack, including bare *, +, and ? quantifiers, as well as alternations.", do subrules belong on that list as well? Or not? Eg, should 'regex as {z?a*}; say "a" ~~ /:ratchet <as>a/' match or no? | 16:15 | |
hi pmurias :) | |||
pmichaud | subrules are on the list also. | ||
mncharity | ahh, thanks. | ||
pmichaud | /:ratchet <as>a/ is the same as / <as>: a: / | 16:16 | |
mncharity | TimToady: perhaps tweak S05 to clarify ^^ ? | ||
pmurias | mncharity: re smop as elf backend we lack a lot of things in the runtime like unicode support, multimethods | 16:17 | |
ruoso | pmurias, we already have Multi :) | ||
pmurias | it dosn't work yet... :) | 16:18 | |
16:18
nihiliad left
|
|||
ruoso | doesn't it? | 16:18 | |
ah.. yeah... | |||
true | |||
it doesn't | |||
heh | |||
mncharity | anything else? elf core isn't using multimethods, and I think the only unicode is the not-yet-really-used cent character for cursor. | ||
pmurias | what could be possibly a better idea is to translate (parts of mildew) mildew into Perl 6 and have it compiled by mildew | ||
s/mildew/elf/ | 16:19 | ||
* what could be possibly a better idea is to translate (parts of) mildew into Perl 6 and have it compiled by elf | |||
mncharity | ahh, interesting | ||
ruoso | hmmm... I don't know... since it depends on STD, which is entirely p5 | ||
I'm not sure there is much to gain | 16:20 | ||
16:20
ashizawa joined
|
|||
mncharity | elfblue uses gimme5/STD. albeit a now somewhat out-of-sync revision. | 16:21 | |
objective of elfish/elfparse is to produce a gimme5/STD-like parse tree inside elf, without going out to STD.pmc. | 16:22 | ||
re gain, hmm. self hosting on top of smop? backend self hosting now, front+backend self hosting when elfparse gets done. | 16:23 | ||
ruoso | I mean | 16:24 | |
self-hosting will only be possible once we have a regex engine in smop | |||
I'm not sure what you mean by "backend self hosting" | 16:25 | ||
mncharity | elfrx builds rx on top of any p5re. currently there's only a p5 version. but that's intended to be cloned to p6 rsn, for some glacial value of rsn. | ||
s/p5re/perl-compatible regular expression library/, which many/most languages, including C, have. | 16:26 | ||
re "backend self hosting", elf is using an external parser. so the "stuff other than the parser" is self compiling, but elf isn't (yet) compiling it's paser. so "backend self hosting" rather than more fullish "self hosting". | 16:28 | ||
basically, if you are happy writing mildew in p5 rather than p6, then there's perhaps not much to gain by using elf instead. and as pmurias mentions, one could then translate a p5 mildew into p6, and run it on either elf or itself. | 16:30 | ||
ruoso | I see... | 16:33 | |
my point is that trying to do shortcuts here won't take us much far | |||
i.e.: that's what happened with KP6 | |||
mncharity | hmm, one issue is whether you are going for a "flesh out test suite now; then work toward being usable" development path, or a "be usable now; then work toward fleshing out test suite". elf would aid the second, not so much the first. though doing the first in p5... sounds painful. | ||
at least doing more than a "make sure the smop core works" in p5 | 16:34 | ||
dalek | kudo: d9b471d | pmichaud++ | docs/spectest-progress.csv: spectest-progress.csv update: 315 files, 7037 passing, 48 failing S03-operators/reduce-le1arg.rakudo aborted 48 test(s) |
||
ruoso | mncharity, one thing I think you didn't get yet, is that mildew compiles things down to C | ||
pmurias | mncharity: flesh out = ? | ||
ruoso | so the SMOP runtime is "self-hosting" for that matter | ||
mildew compiles to the C code that initializes the mold objects | 16:35 | ||
that are used to create new mold frames | |||
which is how the smop interpreter works | |||
s/interpreter/runloop | |||
so we kinda have a bytecode | |||
but it's a native shared object, instead of some arbitrary format | 16:36 | ||
mncharity | ruoso: I'm not sure I understood your kp6 argument. I do get that mildew compiles down to C. But if it's written in p5, it's not self hosting until mildew is a p5 compiler. | ||
ruoso | my point is not about that | ||
mncharity | unless smop is defined as a p5-runtime+smop-compiled-C hybrid? | ||
s/smop is defined/mildew is defined/ | |||
ruoso | mncharity, mildew is a compiler written in p5 | 16:37 | |
that targets SMOP | |||
the code compiled by mildew takes no notice of p5 | |||
(except for the p5 integration feature) | |||
(which is a feature, not a dependency) | |||
mncharity | if "mildew is a compiler written in p5", then mildew can obviously not self-compile until mildew can run p5. or at least that subset of p5 which mildew is written in. :-S | 16:38 | |
s/run p5/compile p5/ | |||
dalek | kudo: 1f2f910 | pmichaud++ | docs/release_guide.pod: Move Oslo to March 2009 release. |
||
ruoso | my point is not about that | ||
my point is that as soon as SMOP has a regex engine, | |||
mncharity wonders if I should have said "self compile" rather than "self host" | |||
ruoso | once we have a regex engine in SMOP, we can start trying to compile STD with mildew | 16:39 | |
once mildew can compile STD, | |||
we can think about re-implementing mildew in Perl 6 | 16:40 | ||
trying to port mildew to Perl 6 before that is something that is not worth the trouble IMHO | |||
then, at some point we can bootstrap Perl 6 | |||
mncharity | so the vision is to write a p6 compiler, in p5, which is strong enough to run STD, and then to think about reimplementing it in p6? | 16:41 | |
ruoso | mildew is strong enough to "run" STD | 16:42 | |
smop is not strong enough to "run" STD | |||
so mildew can't target SMOP when "compiling" STD | |||
so mildew is not strong enough to "compile" STD | |||
mildew can only copile the amount of Perl 6 that is supported by SMOP (or by the mildew CORE) | 16:43 | ||
actually... | |||
in compile-time, it doesn't even know about the CORE | 16:44 | ||
except by the extent that STD knows about it | |||
so the mildew CORE is guided by the way STD resolves the things like operators and such | |||
but at run-time we already depend on the mildew CORE | 16:45 | ||
which is currently written in Perl 6 | |||
16:45
rodi joined
|
|||
mncharity | i suspect the getting the mildew compiler to understand enough about p6 to take the STD ast and convert it to smop, independent of whether smop could handle it yet, is rather a larger todo item than 'mildew is strong enough to "run" STD' suggest. but I could well be wrong, having not looked at mildew in a while. | 16:46 | |
16:46
nikn joined
|
|||
ruoso | mncharity, a lot of what mildew already can compile doesn't work by lack of runtime support | 16:47 | |
that is already happening | |||
mncharity | pmurias: re flesh out = ?, the long grueling process of working through t/ , expanding the language coverage of a new p6 implementation. | 16:49 | |
16:50
justatheory joined
|
|||
mncharity | while there are advantages to doing all that work in p5, it being a fast stable language, it's still, well, p5. | 16:50 | |
pmurias | mildew is very little code actually | 16:51 | |
mncharity | the rest of the envisioned impl being p6? | ||
ruoso | the biggest part of it is STD | ||
what would really benefit mildew would be a Tree transforming language | 16:52 | ||
mncharity | if it were written in p6, I'd like to have one for elf too. :) | 16:53 | |
16:53
ejs left
|
|||
mncharity | s/Tree transforming language/Tree transforming library/ | 16:53 | |
ruoso | mncharity, it's more a language really... | 16:54 | |
it's a lot of repetitive code | |||
mncharity | eep. out of time. thanks all for the interesting discussion. I'd be curious sometime what lessons were drawn from kp6 - I suspect there's another interesting conversation there. | 16:55 | |
pm: thanks | |||
could be good to continue this another time. my impression is we haven't quite converged yet. cheers & | 16:56 | ||
16:56
mncharity left
|
|||
TimToady | ruoso: I played with various {}ly forms, but they all ended up with too many {}s :) | 17:00 | |
lambdabot | TimToady: You have 2 new messages. '/msg lambdabot @messages' to read them. | ||
TimToady | however, I'm more concerned about the semantics | ||
we can't just run in the caller's lexical context | 17:01 | ||
or then we can't see our own lexical parameters | |||
ruoso | we don't run "in" | ||
we run "on top of" | |||
TimToady | I think of it more as a kind of virtual | ||
I have no idea what you mean by that; what is the scope search order? | |||
ruoso | CALLER --> signature binding scope --> block scope | ||
actually that's backward | 17:02 | ||
TimToady | you have competing scopes with this notion | ||
I'm thinking of it more like how virtual methods work | |||
where the invocant happens to be a lexical scope | |||
ruoso | (actually, that lookup would require the "operator" routine_dev) | 17:03 | |
TimToady | so all the calls get virtualized but not the variables | ||
ruoso | all the calls *are* variables | ||
TimToady | variables just sit there | ||
something does something to the variable to call it, and that is virtualizable | 17:04 | ||
ruoso | right... all calls perform variable lookups | ||
TimToady | the call to infix:<eq> finds &infix:<eq> in my scope, but that gets virtualized by the self that happens to be my caller's scope | ||
ruoso | that only to sub calls | 17:05 | |
TimToady | viewing lexical nesting as a kind of derivation | ||
ruoso | or would that apply to types as well? | ||
17:05
Ariens_Hyperion joined
|
|||
TimToady | a related question is whether it influences single dispatch (via the type view) | 17:06 | |
since your caller may have aliased Dog to an entirely different type | |||
17:07
orafu left
|
|||
TimToady | I'd guess we want to make things as generic as possible, apart from declarations directly visible | 17:07 | |
as I said, it's the same virtualization that the metaoperators need to do | 17:08 | ||
ruoso | I still see the "operator" routine_def as the nicer solution | 17:09 | |
;P | |||
TimToady | what if you want a single-dispatch method to do this for its caller? | ||
ruoso | I'd say that's a rather weird requirement | 17:10 | |
TimToady | it wants to be orthogonal to routines | ||
ruoso | but methods are something special | ||
methods encapsulate | |||
that's why they are methods | |||
and not subs | |||
TimToady | I'm not gonna buy it | ||
17:10
hercynium joined
|
|||
TimToady | and the granularity is wrong | 17:11 | |
ruoso | so maybe a trait | ||
TimToady | also wrong granularity | ||
some of these routines will want to do an amount of their own processing and then return their thunk | |||
so I want a thunk marker | 17:12 | ||
17:12
pmurias left,
ejs joined
|
|||
TimToady | debated making it a form of return | 17:12 | |
but that seems like overkill | 17:13 | ||
in any case, it'll be used over and over, so I don't want something terribly heavy looking | |||
ruoso | hmm... | ||
TimToady | CALLER::.eval {...} is way to ugly and big for that | ||
I've been looking for a word better than "meta" and haven't really found one yet | 17:14 | ||
but I'd like the feeling of it to be "abstract" rather than "upscope" | 17:15 | ||
virtual would actually work if C++ hadn't stomped all over it | 17:16 | ||
ruoso | displaced | ||
TimToady | that's "upscope" again | ||
I want to convey that this code has different meanings in context | 17:17 | ||
ruoso | it's actually like if it was a "auto-executed closure" | ||
TimToady | it's basically a lazy thunk; I considered "lazy" too... | 17:18 | |
ruoso | but it's not that lazy | ||
because it will get executed immediatly | |||
as soon as it gets back to caller | |||
TimToady | indeed, I'd like the caller to be able to optimize after that first call, if possible | 17:19 | |
ruoso | maybe just "thunk" then | ||
TimToady | the problem with thunk is that it's usually been applied to thunks passed down as function args in the literature | 17:20 | |
so I don't think thunk will fly for that reason | |||
ruoso | but I don't know how the caller would actually see it | ||
I think it would still be handled by the function returning it | |||
TimToady | operationally, maybe a good compromise would be, bind all variables explicitly declared in this multi scope, but leave all other variables for virtual binding by the caller | 17:22 | |
diakopter | slunk - a slothful thunk. | ||
PerlJam | slunk seems more verby than nouny | 17:23 | |
ruoso | TimToady, it could simply lookup up to this function root and then look up in the caller | ||
s/function/$?ROUTINE/ | |||
17:23
ispy_ joined
|
|||
diakopter | true... but it *is* a noun-verb of sorts ;) | 17:23 | |
TimToady | yes, but if we hand something back to the caller between those two, the caller may be able to optimize it | ||
diakopter | it *slunk* back up | ||
like a slinky | 17:24 | ||
ruoso | TimToady, I still don't know how the caller would intercept it... but I think that can be resolved later... | ||
s/resolved/solved/ | |||
TimToady | certainly we can intially do the lookup ourselves | ||
as long as we keep a clean separation | 17:25 | ||
ruoso | in SMOP, it's simple to provide a made-up scope object that would be used as the outer scope of the block | ||
TimToady | maybe keep a mystery list kind of like post-declaration does and then look up all the mysteries in CALLER at the end | ||
ruoso | and this made-up object would lookup on the scopes up to the $?ROUTINE and then in CALLER | ||
TimToady | yes, but now you've mixed up the two lookups in one encapsulation, which is what I'm trying to avoid | 17:26 | |
ruoso | but lookup is always one operation | 17:27 | |
TimToady | no | ||
it can fail now and succeed later | |||
see post-declaration | |||
ruoso | that's compile-time | ||
not run-time | |||
TimToady | same priniciple though | 17:28 | |
ruoso | run-time it's just one operation | ||
in mildew that goes to $scope.lookup($symbol) | |||
TimToady | the first lookup is at compile time, but the second must be at run time | ||
because you don't *know* who the caller is | |||
ruoso | ah.. right... I'm actually ignoring the compile-time lookup... ok | ||
TimToady | the first can be at compile time because it's lexicals | 17:29 | |
keep 'em separate | |||
ruoso | but it should delay that inside a thunk/slunk/whatever | ||
TimToady | and not outside it :) | ||
ruoso | yes | ||
but that's really just a compile-time issue | |||
TimToady | that's what "meta" does to its expression | 17:30 | |
ruoso | meta doesn't really tells much | ||
it just says it isn't something | |||
but what it isn't? | |||
TimToady | it says that anything that is not obviously concrete is abstract | 17:31 | |
where we've arbitrarily defined concrete as "declared in this routine" | |||
17:31
|jedai| left
|
|||
ruoso | hmmm... probably better to forge a new name | 17:32 | |
17:32
|jedai| joined
|
|||
TimToady | since metaops do this, I thought it good to reuse meta | 17:32 | |
diakopter | transcendent | ||
TimToady | is there some counterargument? | ||
ruoso | but metaops are meta *ops* | ||
if you name it metasomething... it will be clear | 17:33 | ||
but just "meta" doesn't really mean anything | |||
TimToady | they're rewritten in the caller's context | ||
and I wanted something distinctive but short for huffmanly reasons | 17:34 | ||
ruoso still votes to forge a new neame | |||
TimToady | because we'll get lots of parallel multies like I pasted | ||
diakopter | noema | ||
TimToady | it needs to mean abstract or generic | ||
it's possible we could find a metaphor that means both abstract and displaced | 17:35 | ||
ruoso | drugged | 17:36 | |
TimToady | lofty | ||
17:36
ab5tract joined
|
|||
TimToady | both meaning "high" :) | 17:36 | |
ab5tract | aw man I totally missed the lead up to that punchline | ||
ruoso | I like "high" | ||
TimToady | but if we visually the caller as above us, then hoisting means high | ||
haute | 17:37 | ||
17:37
nihiliad joined
|
|||
diakopter | phusis | 17:37 | |
17:39
Ariens_Hyperion left
|
|||
TimToady | lift | 17:40 | |
hmm, lift and loft must be related in IE | 17:41 | ||
17:41
Maghnus left
|
|||
diakopter | aloft | 17:41 | |
ruoso | actually... verbs look better... | ||
lift { } | |||
TimToady | no braces | ||
ruoso | lift this block to the caller | 17:42 | |
TimToady, not even optionally? if you want a bigger block? | |||
TimToady | we could make it gather-like, I suppose, but we're going to be returning a lot of closures, and it interferes | ||
diakopter | is it like an async BEGIN block, but deferred to execute sometime later? | 17:43 | |
TimToady | no, not async | ||
PerlJam | just scanning the last severl minutes of conversation ... "lift" seems to work on many levels. | ||
TimToady | only some of the binding is deferred to the caller's scope | ||
diakopter | har | ||
ruoso | lift EXPR or lift BLOCK | ||
TimToady | and it'd confuse the Haskellers, which is a plus :) | 17:44 | |
diakopter | depending on how you view your stack, .... plunge | 17:45 | |
TimToady | not very uplifting | ||
diakopter | exalt | 17:46 | |
ab5tract | is there a POD related to what we are trying to name? | ||
ruoso | ab5tract, nope | 17:47 | |
diakopter | (I'm not voting against 'lift'; I'm just funning naming) | ||
pugs_svn | r25625 | lwall++ | [STD] add statement_prefix:lift | ||
diakopter | what if you want to lift >1 levels | ||
ruoso | hmm... why would you want to do that? | 17:48 | |
ab5tract | ruoso: care to undertake an explanation yourself? ;) | ||
diakopter | well, same reason you want to lift 1 level, but twice. :) | 17:49 | |
ruoso | The problem is that the operator overloading in Perl 6 is defined lexically... So if you implement a variant for an operator, it usually will see the other variants from its own perspective | ||
which is bad, because if you overloaded more than one operator, it will miss them | |||
so, operators need to resolve symbols on the CALLER | 17:50 | ||
so overloading is preserved | |||
we were discussing how to represent that, which conceptually looks like a CALLER::.eval { } | 17:51 | ||
ab5tract | ah, interesting. | ||
TimToady | think of it as virtual methods where the actual type is the lexical scope of the caller | ||
ab5tract | so 'lift' or whatever would be used within the context of defining your operator? | ||
ruoso | yes | ||
TimToady | except it's multiple dispatches instead | ||
ruoso | it's a dynamic macro | ||
diakopter | ah, yeah, I get it now. | 17:52 | |
ab5tract | cool :) | ||
TimToady | yes, even considered "multi macro" for a while :) | ||
ruoso | maybe "dmacro" is a ugly but meaningfull name | 17:53 | |
ab5tract | Hmmm, a wonder if there is a more technical term than 'deal' for dealing an individual card in poker | ||
some sort of old west saloon slang ;) | |||
diakopter | is it "parse-time" monkey-patching or runtime callback injection? | 17:54 | |
TimToady | well, blackjack has "hit me", but that's a viewpoint change | ||
ruoso | diakopter, it's completely runtime... | ||
diakopter, but it's not even injection | |||
it just changes the lookup | |||
it runs that code from the perspective of the caller | 17:55 | ||
TimToady | it's just deferred symbol table lookup on anything that isn't nailed down by the multi itself | ||
ruoso | about the deferred part | ||
so lift also causes the routine to leave | |||
or do you need to return lift? | |||
TimToady | I mentioned that earlier | ||
most of the uses will be very short blocks that do implicit return, so I don't think it needs to have return semantics | 17:56 | ||
diakopter | does it run in the internal scope of the caller up to the point of the call? so it's like a return, but inject a CATCH after I return, and at the end of the catch, go back to the continutation of the call? | ||
ruoso | diakopter, much simpler than that | 17:57 | |
it runs that code as if CALLER was the outer scope or $?ROUTINE | |||
TimToady, right... but who triggers its execution | 17:58 | ||
? | |||
TimToady | it is otherwise a normal function call | ||
ruoso | rigth | ||
diakopter | sorry, I'm just trying to think of an implementation's generalization. | 17:59 | |
TimToady | it just slows down when it starts executing the lifted code | ||
ruoso | diakopter, you need lexical scope hacks | ||
when you run the "lifted" code, it will have a hacked scope | |||
that only looks up until $?ROUTINE, then goes to CALLER | 18:00 | ||
TimToady | if you want to lift 2 levels you need the cooperation of your caller to put the extra lift around your call | ||
diakopter | okay, but what if new parsing rules were defined within the call | ||
TimToady | you can't change lexical definitions from your dynamic scope | 18:01 | |
ruoso | diakopter, the only exception the compiler needs to make is to not bind any symbol that is defined outside of the routine | ||
but that doesn't affect the parsing | |||
TimToady | we must have a well-defined language at every point, including the points where the language knows its generic | ||
*it's | 18:02 | ||
ruoso | so it should probably raise a warn, or even an error if the lifted code looks for variables defined outside the routine | ||
(compile-time, that is) | |||
diakopter | so, must a lifted scope must use the language of its caller, or can it use new rules? | ||
lifted block | 18:03 | ||
ruoso | the lifted block is parsed as a block of the current scope | ||
it doesn't change the parsing | |||
diakopter | alright. got it now :D; thanks. | ||
ruoso | I think that's actually a good reason to not call it a macro | ||
because it's not related to syntax | 18:04 | ||
diakopter continues to think of it as remote injection with a callback tail. | 18:05 | ||
ruoso | diakopter, it doesn't change the stack order | ||
it just change the lexical lookup | |||
so... | 18:07 | ||
sub foo { lift bar(); CATCH { die 'error' } } | |||
diakopter | I think this perspective is an implementation detail...? right, I'm just saying it's easier for me to picture the scope-as-habitat/environment if I think of it as a block that's sent back to the caller to execute _inline_ and then calls back into the continuation of the call, and then returns.. | ||
ruoso | will still die if bar raises an exception | ||
diakopter | ok, yeah. | 18:08 | |
ruoso | but bar will be looked up in the CALLER (unless there is a my sub bar in the rountine) | ||
diakopter, but you do need lexical scope hacks in order to "lift" code | 18:09 | ||
I think we need some input from rakudo people about that... | 18:10 | ||
I know SMOP is too much flexible when it comes to lexical scopes... | |||
jnthn, pmichaud, [particle], you probably want to take a look at the past 2 hours | 18:11 | ||
;P | |||
18:12
szabgab joined
|
|||
diakopter | but cannot a block be contained within an expression? and that block can declare others..? | 18:12 | |
18:12
rhr left
|
|||
ruoso | diakopter, it doesn't matter... that EXPR will be evaluated in the "lifted scope" | 18:12 | |
diakopter | okay, so new rules can't be declared within a block within a lifted expression... b/c they could change the parsing of the caller's scope.. | 18:13 | |
ruoso | diakopter, they can, but if you define new rules inside a lifted block, they will only be valid inside that block... so nothing special about it | 18:14 | |
diakopter | ah, ok. :) | 18:15 | |
ruoso | TimToady, I think we could even forbid trying to access regular caller's variables in the lifted code... to keep the code as strict as possible yet... | 18:17 | |
diakopter | so then, in general, no statement('s runtime or othertime effects) may change the parsing of the caller's scope, except for a "use ..." statement? | ||
ruoso | yes | 18:18 | |
it's still unclear how "use" does it tho | |||
we know that at some point Foo::Bar::.EXPORTALL is called | |||
but not much more than that | |||
18:19
rhr joined
|
|||
ruoso later & | 18:20 | ||
diakopter | this kinda promotes lexical up a class or two in the language, forcing the implementation to include the scope notion in its runtime... | 18:21 | |
lexical scopes | |||
18:21
Psyche^ joined
|
|||
diakopter | (unless it couldn't already be optimized away anyway) | 18:21 | |
pugs_svn | r25626 | lwall++ | Document new lift statement for writing generic multis | 18:25 | |
18:26
milton131 joined
|
|||
pugs_svn | r25627 | lwall++ | off-by-one on the year | 18:27 | |
r25628 | pmurias++ | [smop] [mildew] | 18:28 | ||
r25628 | pmurias++ | added EXTERNAL::eval_perl5 | |||
r25628 | pmurias++ | variable interpolation | |||
r25628 | pmurias++ | &infix:<~> can take multiple arguments | |||
r25628 | pmurias++ | t/01-sanity/02-counter.t passes | |||
18:28
pmurias joined
|
|||
diakopter | std: lift lift 3 | 18:31 | |
p6eval | std 25628: OUTPUT«ok 00:02 33m» | ||
diakopter | std: lift lift lift; | ||
p6eval | std 25628: OUTPUT«Undeclared routine: lift used at 1 ok 00:02 33m» | ||
diakopter | std: lift do{ lift 3 } | ||
p6eval | std 25628: OUTPUT«Undeclared routine: do used at 1 ok 00:02 33m» | ||
diakopter | std: lift { lift 3 }.() | 18:33 | |
p6eval | std 25628: OUTPUT«ok 00:02 33m» | ||
18:34
Patterner left,
Psyche^ is now known as Patterner
18:37
autarch joined
|
|||
TimToady | statement prefixes always require following whitespace | 18:37 | |
18:37
autarch left
|
|||
TimToady | and the use of blocks without preceding whitespace is severely discouraged, unless you mean subscript | 18:38 | |
but there are exceptions | |||
({...}) being legal, for instance | 18:39 | ||
and currently you're allowed to say sub foo ($a){...} | |||
but that's bad style, I think | |||
because it *looks* like a subscript when it isn't | |||
diakopter | std: lift do { lift say 2; sub GLOBAL::foo($a) is context { lift say $a }; foo(); }; &+foo(3); | 18:41 | |
p6eval | std 25628: OUTPUT«Potential difficulties: The + twigil is deprecated, use the * twigil instead at /tmp/mQ6ZYy9ef1 line 1:------> is context { lift say $a }; foo(); }; &+foo(3);Undeclared routine: foo used at 1 ok 00:03 47m» | ||
TimToady | gotcha | ||
diakopter | oh; S06 uses it..? | ||
&+myfunc(42); | 18:42 | ||
18:42
justatheory left
|
|||
TimToady | then it's a fossil | 18:42 | |
diakopter | std: lift do { lift say 2; sub GLOBAL::foo($a) is context { lift say $a }; foo(); }; &*foo(3); | ||
p6eval | std 25628: OUTPUT«Undeclared routine: foo used at 1 ok 00:03 46m» | ||
diakopter | std: do { say 2; sub GLOBAL::foo($a) is context { say $a }; foo(); }; &*foo(3); | 18:43 | |
p6eval | std 25628: OUTPUT«Undeclared routine: foo used at 1 ok 00:03 46m» | ||
pugs_svn | r25629 | lwall++ | correct fossil | ||
TimToady | foo() is only looked up lexically these days | 18:44 | |
so the compiler can know the candidate list most of the time | |||
diakopter | std: do { say 2; sub GLOBAL::foo($a) is context { say $a }; }; &*foo(3); | ||
p6eval | std 25628: OUTPUT«ok 00:03 46m» | ||
diakopter | !!!!! | ||
TimToady | two things | 18:45 | |
it's not bothering to look up &*foo since it's dynamic | |||
and the is context is completely ignored | |||
18:46
alester left
|
|||
diakopter | by STD? or by Perl 6 | 18:46 | |
TimToady | by STD | ||
ab5tract | okay, this is probably going to sound like a silly question, but does perl 6 allow module mixins? | ||
18:46
justatheory joined
|
|||
TimToady | it's one of those things that is theoretically possible, but I don't seem much need to make it easy, given the other mechanisms we support by default | 18:47 | |
I don't see why you can't compose a role into a module thought | 18:48 | ||
*though | |||
a role is just generic code | |||
ab5tract | Right. | ||
it's just going to take a bit to change my way of thinking | 18:49 | ||
TimToady | but generally with modules we would stick to the normal export/import mechanism to get aliasing | ||
since controlled aliasing is more controlled than uncontrolled aliasing, generally :) | |||
18:50
ewilhelm joined
|
|||
ab5tract | right. so 'import A::B;' basically pulls the contents of A::B into whatever module I run it in? | 18:50 | |
ab5tract hasn't coded perl since 2000, many lost brain cells ago | |||
TimToady | well, use, not import. this ain't python | ||
ab5tract | okay | ||
TimToady | but use will import whatever A::B offers for export by default | 18:51 | |
and unlike in P5, will import into the lexical scope rather than package | |||
ab5tract | ah cool | ||
TimToady | forgot to diakopter++ on the fossil discovery | 18:53 | |
ab5tract | alright, so there isn't the same distinction as in Ruby where libraries are loaded with a separate keyword (require) and getting the code into where you want it is a matter of using 'include' | ||
TimToady | use does both, though of course it can be broken down into require and import bits as in Perl 5 | ||
ab5tract | gotcha. I'm trying to write a fascimile of a working Ruby Waves web app in perl6 for the Web.pm discussion | 18:55 | |
TimToady | but there's no import keyword, it's just a routine that does binding | ||
all it has to do is say things like COMPILING::<$foo> := MyModule::<$foo> | 18:57 | ||
ab5tract | right | ||
18:57
barney joined
|
|||
TimToady | bbl & # shower and cogitation | 18:57 | |
ab5tract | its all relatively moot though, as roles/traits are probably a better fit for the mixin style coding philosophy | ||
18:58
M_o_C joined
|
|||
diakopter | well, more like std++ on the fossil discovery :P | 19:00 | |
19:01
tiarra joined
19:02
justatheory left
19:03
tiarra left
19:11
japhb left
19:16
ashizawa_ joined
19:17
ashizawa left,
ashizawa_ left,
ashizawa joined
19:20
mberends joined
19:27
duke_leto joined
19:28
duke_leto left
19:30
ejs left
19:35
ashizawa left
|
|||
frioux | rakudo: 0=='0' | 19:36 | |
p6eval | rakudo 1f2f91: RESULT«Bool::True» | ||
frioux | rakudo: 0==='0' | ||
p6eval | rakudo 1f2f91: RESULT«Bool::False» | ||
TimToady | oh, and a ruoso++ for the lift stuff | 19:37 | |
19:37
justatheory joined
|
|||
diakopter | std: lift lift &*\ ruoso | 19:41 | |
p6eval | std 25629: OUTPUT«############# PARSE FAILED #############Syntax error (two terms in a row?) at /tmp/pg5CyHq5CH line 1:------> lift lift &*\ ruoso expecting any of: infix or meta-infix infix stopper postfix postfix_prefix_meta_operator standard | ||
..stopper statement modifier ... | |||
19:49
Ariens_Hyperion joined,
DemoFreak left
|
|||
TimToady | doesn't look for unspace there | 19:53 | |
19:57
DemoFreak joined
|
|||
ruoso wonders what module to use to test use Foo:from<perl5>; but it should be a OO module | 20:00 | ||
since mildew doesn't support P5Package yet | |||
actually, that should probably be implemented directly in SMOP | 20:01 | ||
20:02
Maghnus joined
|
|||
pmurias | ruoso: Class::MOP is already required by mildew | 20:08 | |
ruoso | hmmm... | 20:09 | |
pmurias, ::Foo::Bar.baz() is failing... | 20:10 | ||
it is composing the name of the package wrong | |||
it's missing the :: | |||
actually it's missing a lot of things... it was supposed to do a package lookup and then a symbol lookup, but it's doing something just wrong | 20:11 | ||
pugs_svn | r25630 | pmichaud++ | [t/spec]: Avoid a possible pun between "class Q" and Q quote operator. | 20:15 | |
r25631 | ruoso++ | [mildew] comitting use foo:from<perl5> even without the test | 20:18 | ||
TimToady | note that :: is considered meaningless on the front of a package name, except in a declaration or as part of ::() | 20:19 | |
in particular, it doesn't mean global as it does in p5 | 20:20 | ||
ruoso | TimToady, it's because mildew is not aware of types yet, so it turns plain Foo::Bar into &Foo::Bar() | ||
so using the :: in the front makes it distinct | |||
TimToady | I attach STD's rudimentary symbol tables to the tree, so they're available, such as they are | 20:21 | |
ruoso | TimToady, but STD is making warnings where it shouldn't | ||
TimToady | looking at that, but need food | 20:22 | |
ruoso | std: module Foo { class Bar {method baz { } } }; Foo::Bar.baz | ||
p6eval | std 25631: OUTPUT«Undeclared name: Foo::Bar used at 1 ok 00:02 33m» | ||
TimToady | all that symbol table code needs a good refactoring | ||
20:29
pmurias left
|
|||
dalek | kudo: d3f4070 | pmichaud++ | src/parser/grammar.pg: Add various Q-style quoting forms, including Q:PIR. |
20:29 | |
20:33
aindilis joined
20:34
rodi left,
M_o_C left
20:42
ashizawa joined
20:45
ashizawa left,
ashizawa joined
20:48
ashizawa left
20:51
ashizawa joined
20:52
ashizawa left
|
|||
pugs_svn | r25632 | pmichaud++ | [t/spec]: unskip some #?rakudo tests. | 20:53 | |
21:00
ashizawa joined
21:01
ashizawa left
21:02
ashizawa joined,
ejs1 joined
21:04
ashizawa left
21:05
ashizawa joined
21:08
ashizawa left
|
|||
bacek | @tell pmichaud Can you please review my REDUCEMETAOP changes at github.com/bacek/rakudo/blob/6a68c9...assign.pir ? | 21:10 | |
lambdabot | Consider it noted. | ||
21:10
alester joined
|
|||
pugs_svn | r25633 | lwall++ | typo from Jon++ | 21:12 | |
21:13
ashizawa joined
21:14
ashizawa left
21:15
alester left
21:16
ashizawa joined
21:21
ispy_ left
21:39
bacek left
|
|||
pmichaud | bacek: I still don't like the dependency on the 'right' parameters, or the separate REDUCEMETAOP and REDUCEMETAOPCHAIN functions | 22:04 | |
lambdabot | pmichaud: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
pmichaud | I'd prefer to see them combined. | 22:05 | |
22:07
meppl joined
22:18
Whiteknight joined
22:23
|jedai| left,
|jedai| joined
22:25
bacek joined
|
|||
bacek | pmichaud: CHAIN implies && according to latest changes in spec. | 22:27 | |
Triangular reductions of chaining operators always consist of one or more True values followed by 0 or more False values. | 22:29 | ||
22:31
hercynium left
22:42
skids left
22:46
szabgab left
22:52
barney left
22:55
hercynium joined
22:57
szabgab joined,
ruoso left
23:09
cas left
23:19
bacek left
23:23
ejs1 left
23:40
NoirSoldats left
23:46
frioux left
23:47
skids joined
23:49
hercynium left
23:53
Eevee left
23:56
bacek joined
|