»ö« | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend! Set by moritz_ on 25 June 2010. |
|||
tylercurtis | It looks like just about everything has its own .perl method defined, ingy. paste.scsys.co.uk/45333 | 00:00 | |
Which probably does not make what you want to do easy. | 00:01 | ||
cuppe | hm. should first always work like grep, just returning the first match? working with block syntax? | 00:04 | |
ingy | tylercurtis: nod. I guess I could monkey patch * | ||
[Coke] | ah, I assumed it was actually a method on cool. Presumably you could put a .json at the top level object, invoke .perl, get the result, and have a common way to dump the results) | ||
s/object/class/ | |||
00:04
lest_away is now known as lestrrat
|
|||
[Coke] | but who knows, might be easier to add .json everywhere. | 00:04 | |
is there a channel for pod-people? | 00:05 | ||
cuppe | rakudo: say first {/B/ and !/F/}, "BED" | 00:06 | |
p6eval | rakudo 451b40: OUTPUT«Method 'match' not found for invocant of class '' in 'Regex::Bool' at line 5042:CORE.setting in 'prefix:<!>' at line 351:CORE.setting in <anon> at line 11:/tmp/EtuAYSA0BC in 'Block::ACCEPTS' at line 4985:CORE.setting in 'infix:<~~>' at line 322:CORE.setting in | ||
..'Any::fir… | |||
00:11
sftp left
00:16
songmaster joined
|
|||
dukeleto | sorear++ # thanks for answering my question about @_ | 00:18 | |
00:29
rgrau_ left
00:33
felliott left,
azert0x left
00:43
Chillance left
00:44
felliott joined
00:47
lkk- joined
00:49
felliott left
00:54
bluescreen joined,
bluescreen is now known as Guest49617
00:57
masonkramer_ joined,
masonkramer left,
masonkramer_ is now known as masonkramer
|
|||
whiteknight | Are the rakudo people looking at this new "organizations" feature in github? | 00:58 | |
pmichaud | I'll probably look at it after R* is released | 00:59 | |
I've often wanted it, but this is not the month to be rocking the boat :) | |||
(an "organizations" feature, that is) | |||
whiteknight | I'm sort of interested in seeing how it works, but I'm not going to create an organization myself | 01:02 | |
so I want you people to be the guinea pigs :) | |||
pmichaud | I'll very likely convert the perl6 account to be an organizational account | ||
and I can see about converting the parrot account to the same | |||
so yes, we can be the guinea pigs, if you can handle waiting a month | 01:03 | ||
01:03
skids joined
|
|||
whiteknight | I can definitely wait. | 01:04 | |
colomon | rakudo: say "5/4".eval | 01:06 | |
p6eval | rakudo 36998b: OUTPUT«1.25» | ||
sorear | diakopter: Why hasn't dalek reconnected yet? | 01:07 | |
01:08
sorear sets mode: +oooo pmichaud whiteknight [Coke] dukeleto
|
|||
diakopter | dunno | 01:09 | |
i'll hup | |||
01:10
dalek joined
|
|||
diakopter | dalek: WELCOME BACK YOU BOT YOU | 01:10 | |
01:10
plobsing joined
01:13
gbacon left
01:20
kensanata joined,
kensanata left
01:22
meppl left
01:25
sorear sets mode: +vv dalek p6eval
|
|||
sorear | hugme and pugssvn are still out | 01:25 | |
diakopter | I don't know how to retrieve those | 01:30 | |
well let me see | |||
oops | 01:32 | ||
I guess I could hijack moritz_'s screen session, though people growl about that | 01:33 | ||
ah well; I've done worse | |||
feather2, mind you | |||
01:39
hugme joined
|
|||
diakopter | success | 01:39 | |
moritz_: kill me later :) | 01:40 | ||
01:43
pugssvn joined
|
|||
diakopter | mruhaha | 01:44 | |
phenny: tell moritz_ let's run the bots in looping shell scripts if possible so a sighup from another root user can restart them more easily | 01:45 | ||
phenny | diakopter: I'll pass that on when moritz_ is around. | ||
01:45
ashleydev left
01:49
tylercurtis_ joined,
tylercurtis left,
tylercurtis_ is now known as tylercurtis
01:51
whiteknight left
|
|||
pmichaud | the series operator documentation is either ambiguous or contradictory | 01:55 | |
when is the paragraph beginning with "The exact function deduced..." supposed to apply? | 01:56 | ||
01:57
sorear sets mode: +vv hugme pugssvn
|
|||
colomon | ciphertext and I were thinking it should be after the left hand values are passed along. | 01:58 | |
pmichaud | that sentence doesn't really make sense to me | 01:59 | |
01:59
Guest49617 left
|
|||
pmichaud | if I follow that paragraph precisely, then it would mean | 01:59 | |
1, 2, 3 ... $n would result in 1, 2, 3, 2, 1, 0, -1 when $n is == -1 | |||
and I'm pretty sure that's not what is intended | 02:00 | ||
(as it contradicts earlier statements) | |||
colomon | ah, I think I see what you're getting at. | 02:01 | |
pmichaud | I think the function has to be deduced based on the first value of the lhs, not the last one. | ||
one part of the spec says "values on opposite sides of the limit" | 02:03 | ||
this part of the spec says "deduced from the final value on the left to the limit on the right" | |||
still a third part says "on the wrong side of the first value of the left list" (granted, only for intuited numeric generators) | 02:04 | ||
seems like it really ought to be one rule. | |||
colomon | agreed. | 02:05 | |
(I think, on the tired side to follow this.) | |||
My impression is the limit rule we are using in the master branch seems to do what TimToady wants. | 02:06 | ||
pmichaud | looking | 02:07 | |
colomon | even though it's not exactly what the spec says. | ||
pmichaud | but my last impression was that limit rule has some broken edge cases | ||
colomon | (I wrote it under direction from him.) | ||
for sure it won't work as is on the very first element | 02:08 | ||
[Coke] | for those that remember packy from YAPC: | ||
packy.livejournal.com/156186.html | |||
pmichaud | yes, what is in master now is too complex to really be correct, imo. | ||
02:09
Guest49617 joined
|
|||
colomon | packy++ | 02:11 | |
pmichaud | okay, so here's my current guess | 02:12 | |
when we intuit a numeric generator, we use that generator to determine the limit condition | |||
when we don't intuit a numeric generator, we use the last element of the lhs and the first element of the rhs to determine the limit condition | 02:13 | ||
so: 'a', 'b', 1 ... $n would indeed produce 'a', 'b', 1, 0, -1, -2 when $n == -2 | |||
colomon | pmichaud: errr... that's intuiting the generating function, not the limit, right? | 02:14 | |
pmichaud | it's both. | ||
with 'z' ... 'a' we automatically determine the generating function (.pred) and the limit | 02:15 | ||
oh, bad example. | 02:16 | ||
colomon | nod | ||
pmichaud | with 99 ... 3 we automatically .... | ||
colomon | what do you think the limit function is here? | 02:17 | |
pmichaud | well, we're not intuiting an arithmetic or geometric series | 02:18 | |
therefore our generating function is .pred, and we stop when { $^a !after 3 } | 02:19 | ||
or, put another way, we continue as long as { $^a !before 3 } | |||
(to strictly match the spec) | 02:20 | ||
02:21
agentzh joined
|
|||
pmichaud | I'm also curious about | 02:22 | |
1, 2, 3, *+1 ... 0 # infinite? | 02:23 | ||
as opposed to | |||
1, 2, 3 ... 0 # Nil? | |||
colomon | my first thought is infinite. | ||
pmichaud | alas, no. spec says: | 02:24 | |
colomon | the Nil rule is for "intuited numeric generators" | ||
pmichaud | okay then | ||
so, the first one is infinite, the second is nil | |||
colomon | yes | ||
pmichaud | and 1, 2, 3 ... $n is not always the same as 1, 2, 3, *+1 ... $n | ||
*that* will confuse people a lot. | |||
colomon | because the code block could be anything. | ||
agreed. | 02:25 | ||
it's like the mostly eager stuff -- the Nil rule is an attempt to rule out cases where the series probably isn't doing what the author intends. | 02:28 | ||
but that means it doesn't really fit in well with the big picture DWIMiness for series. | 02:29 | ||
pmichaud | part of me wants to examine the entire lhs for increase/decrease to determine the limit | ||
er, the relation to the limit | 02:30 | ||
colomon | but it doesn't have to be consistent at all. | ||
pmichaud | sure, and in that case, we don't deduce a limit. | ||
sorry, we don't deduce a relation | |||
colomon | 2, -3, 1, -1, 33, { * + (-1, 1).pick } ... 10 is legal, after all. | ||
pmichaud | and you'd want to stop as soon as we get a value that is 10 or before? | 02:31 | |
I could almost argue that this series should continue until 10 is reached exactly, otherwise infinite | |||
colomon | that's supposed to stop *only* reached exactly. | ||
*when ten is reached | |||
sigh. very tired. | 02:32 | ||
pmichaud | ah. current spec says that it would stop when we get 10 or a value less than 10. | ||
colomon | wait, that's not right either. | ||
pmichaud | (the "either side" rule.) | ||
colomon | yes, I think you're right. | ||
pmichaud | (and the fact that there's confusion about what should happen just shows how the spec has the dwimminess or ambiguity knobs turned up too high) | 02:34 | |
I think as a general rule it might be nicer if we simply say "if monotonicity can be determined from the lhs, we use that to determine the relation to the limit. otherwise, stop only when the limit is reached exactly." | 02:35 | ||
colomon | I absolutely think the spec here has some maturing to do uyet. | ||
pmichaud | because "the absolute value when geometric with sign changes" is also a bit weird to deal with. | 02:36 | |
or, stated differently, the spec as it exists now involves memorization of too many special cases, and in Perl 6 we're trying to eliminate that :) | 02:37 | ||
colomon | :) | ||
pmichaud | so, if all(@lhs) !after $limit, then the condition becomes $_ !after limit | 02:39 | |
lue thinks the spec needs to be a bit more accessible. :) | |||
pmichaud | hmm, that's not quite right. | ||
colomon | wouldn't it be something like if [before] @lhs? | 02:41 | |
if you want @lhs to be monotonic. | |||
[!after] is legal, isn't it? crazy language we've got here. | |||
rakudo: say [!after] 1, 1, 2, 3, 3, 4, 5 | 02:42 | ||
p6eval | rakudo 36998b: OUTPUT«1» | ||
colomon | rakudo: say [!after] 1, 1, 2, 3, 3, 2, 5 | ||
p6eval | rakudo 36998b: OUTPUT«0» | ||
colomon | rakudo: say [before] 1, 1, 2, 3, 3, 4, 5 | 02:43 | |
p6eval | rakudo 36998b: OUTPUT«0» | ||
colomon | rakudo: say [before] 1, 1.2, 2, 3, 4, 5 | ||
p6eval | rakudo 36998b: OUTPUT«1» | ||
02:49
am0c joined
02:51
agentzh left
|
|||
colomon | so if [!after] @lhs, then the termination case is $latest after $rhs? | 02:53 | |
no, because the case is, if the $latest equals the limit, the output $latest and we're done. | |||
frew | rakudo: say 1 before 2 | 02:54 | |
p6eval | rakudo 36998b: OUTPUT«1» | ||
frew | rakudo: say 0 before 2 | ||
p6eval | rakudo 36998b: OUTPUT«1» | ||
frew | rakudo: say 2 before 0 | ||
p6eval | rakudo 36998b: OUTPUT«0» | ||
frew | how is before different than < ? | 02:55 | |
colomon | sorry that's not clear, pmichaud, but the point I'm trying to make is it's not enough to say $latest after $rhs, because you can only return the $rhs (the limit) once. | 02:56 | |
lue | rakudo: say 'a' before 'z'; say 'a' < 'z'; | ||
p6eval | rakudo 36998b: OUTPUT«10» | ||
lue | well, there's one reason. | ||
frew | ah interesting | ||
so < is numeric and before is generic | |||
that makes sense | |||
colomon | after / before is anything. | ||
< is numeric | |||
frew | :-) | ||
colomon | sorry, running very slow brain-wise here. | 02:57 | |
ash_ | catch blocks set $_ to the exception, right? | ||
frew | rakudo: say [<foo frew frioux bar baz biff zong>].sort {$^a before $^b} | ||
p6eval | rakudo 36998b: OUTPUT«===SORRY!===Confused at line 11, near "say [<foo "» | ||
frew | rakudo: [<foo frew frioux bar baz biff zong>].sort {$^a before $^b}.perl.say | 02:58 | |
p6eval | rakudo 36998b: OUTPUT«===SORRY!===Confused at line 11, near "[<foo frew"» | ||
frew | rakudo: <foo frew frioux bar baz biff zong>.sort {$^a before $^b}.perl.say | ||
p6eval | rakudo 36998b: OUTPUT«===SORRY!===Confused at line 11, near "<foo frew "» | ||
frew | :-( | ||
ash_ | rakudo: ([<foo member:frew frioux bar baz biff zong>].sort: {$^a before $^b}) .perl.say | ||
p6eval | rakudo 36998b: OUTPUT«===SORRY!===Confused at line 11, near "([<foo mem"» | ||
frew | rakudo: (<foo frew frioux bar baz biff zong>).sort {$^a before $^b}.perl.say | ||
p6eval | rakudo 36998b: OUTPUT«===SORRY!===Confused at line 11, near "(<foo frew"» | ||
ash_ | rakudo: (<foo member:frew frioux bar baz biff zong>.sort: {$^a before $^b}).perl.say | ||
p6eval | rakudo 36998b: OUTPUT«===SORRY!===Confused at line 11, near "(<foo memb"» | ||
ash_ | rakudo: (<foo frew frioux bar baz biff zong>.sort: {$^a before $^b}).perl.say | 02:59 | |
p6eval | rakudo 36998b: OUTPUT«===SORRY!===Confused at line 11, near "(<foo frew"» | ||
ash_ | grr | ||
frew | rakudo: (<foo frew frioux bar baz biff zong>).sort({$^a before $^b}).perl.say | ||
lue | .oO(interesting clock) |
||
ash_ | thats weird | ||
p6eval | rakudo 36998b: OUTPUT«("frew", "frioux", "foo", "bar", "biff", "zong", "baz")» | ||
frew | \o/ | ||
so that's probably the default sort I'd bet | |||
colomon | what, why \o/ | 03:00 | |
? | |||
before and after are not for sorted | |||
frew | uh | ||
because it worked? | |||
colomon | for bar zong is sorted?!? | ||
frew | after we tried 7 different ways and failed | ||
what? | |||
lookj at the result | 03:01 | ||
oh wait | |||
ywah | |||
colomon | "frew", "frioux", "foo", "bar", "biff", "zong", "baz" -- how is that sorted? | ||
frew can't read | |||
colomon | if you pass a two argument comparison to sort, it has to return -1 0 +1, just like cmp | ||
frew | oooh | ||
colomon | rakudo: (<foo frew frioux bar baz biff zong>).sort({$^a cmp $^b}).perl.say | 03:02 | |
p6eval | rakudo 36998b: OUTPUT«("bar", "baz", "biff", "foo", "frew", "frioux", "zong")» | ||
colomon | which is the standard default sort. | ||
03:02
molaf joined
|
|||
colomon | before only returns true or false. | 03:02 | |
(and yes, cmp is the default sort) | |||
rakudo: (<foo frew frioux bar baz biff zong>).sort.perl.say | |||
frew | so the reduce form just returns *if* the list is sorted then? | ||
p6eval | rakudo 36998b: OUTPUT«("bar", "baz", "biff", "foo", "frew", "frioux", "zong")» | ||
colomon | [before], you mean? | ||
yes | |||
frew | that's reduce right? | 03:03 | |
colomon | yes. | ||
frew | k, just making sure | ||
colomon | that's not just sorted, there cannot be any duplicates | ||
lue | hm, according to the spec, loose and & loose or are list associative, not left assoc. (as Grammar.pm would have us believe)... | ||
colomon | [!after] is sorted with duplicates | ||
I sooooo need to go to bed. | 03:04 | ||
lue | .oO(let's change it and see what happens...) |
03:05 | |
03:08
ash_ left
|
|||
colomon | 'night, all. | 03:08 | |
lue | goodnight colomon o/ | 03:09 | |
colomon | one last thought, pmichaud: are you thinking that the monotonic test you're proposing should work for series where you pass in the generating code block? That 1, 1, *+* ... 400000 series I used the other day was really slick, requiring the user to find the exact limit value on something like that would be a big drawback. | 03:18 | |
of course, the problem with that is what do you do for the 1, { code } ... 4000000 case? Hmmm... guess it can be based on 1 versus 4000000 | 03:20 | ||
pmichaud: what were you saying about comparing the first value on the LHS to the limit? :) | |||
....sleep | |||
03:20
broquaint left
03:21
broquaint joined
|
|||
dalek | meta: r359 | stefa...@cox.net++ | trunk/vicil (4 files): [vicil] Switch to generated code for testing. Extend code generator to handle |
03:29 | |
diakopter | impressive | 03:33 | |
lue | heh. I changed one thing (well, two) in Grammar.pm, and every single spectest test returns dubious :) | 03:41 | |
03:43
Guest49617 left,
mikehh left,
mikehh joined
03:47
tedv left
03:55
ashleydev joined
03:56
jaldhar left,
jaldhar joined,
am0c left
|
|||
sorear | How does Perl 6 interpret the return value of .Bool? | 03:58 | |
lue | afk | 04:03 | |
04:04
ashleydev left
04:09
ashleydev joined
|
|||
cxreg | o_O how do you use a variable in hash subscript? <> seems to work like q{} | 04:11 | |
04:11
am0c joined
|
|||
frew | cxreg: %has{$foo} | 04:13 | |
04:13
molaf left
|
|||
cxreg | ah, i thought {} was always a block | 04:13 | |
PerlJam | cxreg: <> is the "quote words" operatior | ||
er, operator | |||
cxreg: {} is always a block, except when it's not :) | |||
cxreg | um ok, but i thought that was a big emphasis of TimToady, that {} was unambiguous in 6 | 04:14 | |
anyway, {} it is. | |||
PerlJam | cxreg: yeah, except that {} for subscripting is still pretty fundamental to PErl | 04:16 | |
cxreg | its just syntax | 04:17 | |
i thought <> replaced {} as a subscript, across the board | 04:18 | ||
PerlJam | nope, <> is just a convienent shorthand | ||
{} is even used for user-defined indexing into @arrays | 04:19 | ||
04:22
skids left
|
|||
frew | for some reason I can't seem to get nqp to match a ';' | 04:27 | |
after some other stuff... | |||
in perl 5 I'd so something like, ([^;]+); | 04:28 | ||
how do I do the same thing in perl 6? | |||
I tried [!';']; | 04:29 | ||
sorear | <![;]> | ||
(.*?); | 04:30 | ||
(<![;]>*); | |||
[particle] | (<![;]>*) ; | ||
sorear | tomorrow, I'm going to have to pick brains (TimToady? pmichaud?) on exactly what BEGIN means in a compiled context | 04:31 | |
[particle] | hrmm, do you need to quote the semicolon? i think not | ||
frew | I did the first with a + | ||
[particle] | well, s/*/+/ | ||
frew | man | ||
I'm getting some kind of infinit loop | |||
[particle] | back to plotting my weekend backpacking... | ||
frew | paste.scsys.co.uk/45336 | 04:32 | |
input of '$frwe:1;' | |||
04:41
justatheory left
|
|||
sorear | Oh wait nevermind. I already came up with the answer to this one; it's in my notes. | 04:41 | |
frew | ? | ||
04:58
mberends left
05:02
ashleydev left
05:16
IllvilJa left
05:22
kaare joined,
kaare is now known as Guest30036
|
|||
ingy | hi [particle] | 05:25 | |
05:27
amkrankruleuen joined
|
|||
amkrankruleuen | Hello. (: | 05:28 | |
PerlJam | greetings | ||
05:29
Su-Shee joined
|
|||
PerlJam | Suuuuuuuuu-Sheeeeeeeeee | 05:31 | |
PerlJam is tired | |||
05:35
cono left
|
|||
songmaster | Question — I have a 2-dimensional array, [[1,2],[3,4]. How do I flatten it to [1,2,3,4]? | 05:41 | |
(missing second ] in my array) | |||
05:46
cono joined
05:49
songmaster left
05:50
agentzh joined
|
|||
sorear | Hello amkrankruleuen | 05:55 | |
dalek | meta: r360 | stefa...@cox.net++ | trunk/vicil/Kernel.cs: [vicil] Implement protoobjects |
05:57 | |
06:00
rcsheets` joined
06:05
amkrankruleuen left
|
|||
Su-Shee | PerlJam: no wonder.. it's early in the morning ;) | 06:08 | |
06:09
uniejo joined,
Guest63979 left
|
|||
sorear invents not one, but two compiler-specific phasers. Just like that. | 06:11 | ||
dalek | meta: r361 | stefa...@cox.net++ | trunk/vicil/ (2 files): [vicil] Tiny change of plans. There is no KERNEL frame; very low-level |
06:12 | |
06:20
Guest30036 is now known as kaare_
|
|||
sorear | I need a new name for my Perl 6 implementation | 06:23 | |
I've deviated far enough from diakopter's plans that I don't feel right keeping his name | 06:24 | ||
06:25
am0c left
06:27
mmcleric joined
06:28
Mowah joined
06:31
mberends joined
06:39
am0c joined
|
|||
cxreg | is there some way to make a method private to everyone except privileged classes? | 06:55 | |
sorear | make it private and use trusts? | 06:56 | |
but accessibility is only a convention in Perl | |||
07:04
lestrrat is now known as lest_away
07:05
TiMBuS joined
|
|||
TiMBuS | i got a seasoned perl5er to report back on how accessible perl6 is at the moment. he wrote up a nice little 'trip report' about it | 07:10 | |
i will nopaste it | |||
nopaste? | |||
wheres purl :< | |||
tylercurtis | TiMBuS: nopaste.snit.ch/ | 07:14 | |
TiMBuS | got it, thanks :) | ||
nopaste.snit.ch/21695 <- needs wordwrap | 07:16 | ||
07:16
Ross joined
|
|||
TiMBuS | nopaste.snit.ch/21695?wr=on&sub...Format+it! i guess that's the link you'd want. | 07:17 | |
when you word wrap it ruins the actual paragraphs. a bit annoying :< | |||
07:18
amkrankruleuen joined
07:19
cuppe left
|
|||
tylercurtis | nopaste.snit.ch/21695?tx=on&sub...Format+it! works fine for me: word-wrap without breaking paragraphs. | 07:20 | |
07:20
cuppe_ left
07:21
cuppe joined
07:22
cuppe_ joined
07:23
junior_ joined
07:24
junior_ left
07:29
amkrankruleuen left,
amkrankruleuen joined
|
|||
TiMBuS | probably your browser wrapping ti for you. oh well regardless its all useful imo | 07:35 | |
dalek | meta: r362 | stefa...@cox.net++ | trunk/vicil/notes.pod: [vicil] Tonight's insights |
08:00 | |
sorear | this stefa...@cox.net guy | 08:01 | |
stealing all my karma | |||
08:01
aesop left
|
|||
kaare_ | Stefans are like that | 08:02 | |
08:05
aesop joined
08:07
masak joined
|
|||
masak | oh hai, #perl6! | 08:07 | |
www.marriedtothesea.com/092607/tgiw.gif | |||
sorear | Hello masak | 08:16 | |
I need your help naming something | |||
masak | :) | 08:17 | |
sorear | You seem to be good at it | ||
masak | why, thanks. | ||
what is it? | |||
sorear | It's a Perl 6 implementation I'm hacking on | ||
masak | oh, I read about that. | ||
tell me a bit more. | |||
08:18
dakkar joined
|
|||
sorear | I used to call it Sprixel/VICIL but it's veered quite far from diakopter's spec and I feel his name is no longer mine to use | 08:18 | |
masak | so what characterizes it? | ||
sorear | it targets the CLR. its experimental focus is static compilation support and CHECK time optimization | ||
masak | nice. | ||
you could call it "Czech" :) and no-one would be able to spell it. | 08:19 | ||
sorear | Do you have something a little more unique? | 08:21 | |
I suppose Czech is better than Go | |||
masak | hm, maybe a variation of "Nie mamy czas" would be appropriately punny. | ||
I was also thinking along the lines of "Optimus Prime". | 08:22 | ||
but that's both a keyboard and a giant robot, so it'd have to be different somehow. | |||
maybe "Optimus Six"? | |||
still sounds more like a language than an implementation... | 08:23 | ||
mathw | # And you look like a victim of a surgical crime / A little Darth Vader a little Optimus Prime | ||
masak | mathw: we listen to different kinds of music. :P | ||
mathw | So do I, but that song's funny | 08:24 | |
also desperately sad | |||
sorear wants something compact, cheery | |||
maybe I'll try Niecz | |||
(what's 'mamy')? | 08:25 | ||
arnsholt | What's "Nie mamy czas"? =) | ||
masak | it means "We don't have time" in Czech. | ||
mathw | O6 | ||
masak | sorear: you could call it "Maglev". | 08:26 | |
(because it's fast, and has no friction) | |||
sorear | Niecza has a very good Google Uniqueness Quotient | 08:27 | |
masak | that's nice. | 08:28 | |
08:28
thebird joined
|
|||
masak | looks a bit like "Nietzsche", too. | 08:28 | |
sorear | and it has a nice semi-meaningful expansion, and it rolls like Rakudo or Yapsi or Sprixel | ||
sorear takes | |||
thanks | |||
masak | you're welcome. | ||
mathw | \o/ | 08:29 | |
08:29
mathw sets mode: +o masak
|
|||
masak | phenny: tell jnthn lol we named sorear++'s Perl 6 implementation based on "Min man e kass" :P | 08:30 | |
phenny | masak: I'll pass that on when jnthn is around. | ||
08:34
Ross left
|
|||
sorear | What's that? | 08:37 | |
08:37
timbunce joined
|
|||
kaare_ | Nietzsche declared that God is dead. Perhaps Niecza will declare Perl5 to be dead ;-) | 08:38 | |
masak | sorear: it's a song in Czech that somebody put Swedish subtitles on. | 08:39 | |
sorear: www.youtube.com/watch?v=y3oFc-phIBA | |||
sorear | ah. | 08:42 | |
masak | jnthn started his exploration of Swedish by forming sentences of the form "Min X är kass" -- "My X is broken/bad" | 08:43 | |
so don't be surprised if people send bug reports starting "Min Niecza e kass" :P | 08:44 | ||
moritz_ | diakopter: the evalbot did run in a loop | ||
phenny | moritz_: 01:45Z <diakopter> tell moritz_ let's run the bots in looping shell scripts if possible so a sighup from another root user can restart them more easily | ||
sorear | Are Swedish and Czech closely related? | 08:45 | |
masak | sorear: not in any immediate sense. | 08:47 | |
sorear: but there's a subculture/tradition here in Sweden (and to a lesser extent in the anglosphere) of subtitling lyrics which "sound like" Swedish if you don't listen too closely. | 08:48 | ||
& # posing with milk | 08:49 | ||
08:49
mikehh left
08:50
mikehh joined,
plobsing left
08:51
mj41 left
08:52
mikehh left,
mikehh joined
08:59
mikehh left
|
|||
dalek | meta: r363 | stefa...@cox.net++ | trunk/vicil/Compiler.pm: [vicil] Start on tree compiler |
08:59 | |
09:00
lkk- left
|
|||
tylercurtis | moritz_: about to go to bed, but thought I should let you know that :min_depth and :descend_until are both implemented for transformation and appear to work(by which I mean, they pass all my tests, including tests of the two together). | 09:03 | |
moritz_ | tylercurtis: yay | 09:04 | |
tylercurtis: I don't know if I'll have time to play around with them, but if yes I'll let you know the result | |||
tylercurtis | moritz_: thanks. | 09:08 | |
09:09
cuppe left,
cuppe joined,
cuppe_ left,
cuppe_ joined
|
|||
pugssvn | r31509 | moritz++ | [t/spec] tests for RT #72912, .perl on result of series operator | 09:12 | |
09:19
tadzik joined,
tylercurtis left
|
|||
jnthn | morning, #perl6 | 09:23 | |
phenny | jnthn: 08:30Z <masak> tell jnthn lol we named sorear++'s Perl 6 implementation based on "Min man e kass" :P | ||
jnthn | lol | ||
moritz_ | good morning jnthn | ||
bbkr | morning P6 | 09:24 | |
rakudo; my %h; %h<one><two> = 1; | 09:25 | ||
bbkr pokes rakudo eval | |||
moritz_ | try it with : instead of ; | ||
bbkr | rakudo: my %h; %h<one><two> = 1; | ||
arnsholt | IIRC that doesn't work | ||
p6eval | rakudo 36998b: OUTPUT«Method 'postcircumfix:<{ }>' not found for invocant of class 'Proxy' in main program body at line 1» | ||
bbkr | yep, sleepy :) | ||
arnsholt | (Autovivification is NYI) | 09:26 | |
jnthn | masak: Hmm...do the Czechs really spell it czas? | ||
jnthn checks | |||
masak: They don't - the z to imply softness is a Polishism. :-) The Czech is čas. ;-) | 09:27 | ||
bbkr | czas is polish word :) | ||
jnthn | bbkr: Means "time"? | ||
bbkr | yes | ||
jnthn | :-) | 09:28 | |
At least the meaning is consistent then. :) | |||
sorear | Does Nie mean anything in Polish? | 09:29 | |
bbkr | "nie mam czasu" means "i don't have time for that". useful phrase to remember :) | ||
Nie means "no" | |||
or "i don't" | |||
negation | |||
jnthn | bbkr: At least the meaning was the same. :-) Woulda been far worse if they'd chosen the Polish verb szukam and expected it to mean something good in Slovak. :-) | ||
Su-Shee | it means never in german. | 09:30 | |
jnthn | Su-Shee: I managed to order beer and currywurst in German on Sunday. \o/ | 09:32 | |
09:32
mmcleric left
|
|||
bbkr | Slovak, Czech and Polish are very similiar languages. I think relation can be compared to case of Ukrainian and Russian - they use their own languages but can understand each other without dictionary | 09:32 | |
jnthn had a short time in Cologne. | |||
09:32
mmcleric joined
|
|||
Su-Shee | jnthn: and did you actually _get_ beer and currywurst (UAH.. :) ? | 09:33 | |
jnthn | Su-Shee: I did! \o/ | ||
And it was very nice. :-) | |||
Su-Shee | I've never eaten currywurst once... or bavarian weisswurst.. | ||
amkrankruleuen | o polak! | 09:34 | |
Su-Shee | my polish collegue immediately recognized zavolaj, btw. and found it funny. | ||
jnthn | bbkr: Well...maybe native speakers can. While I found I could guess my way through a decent bit of Czech, Polish felt that bit more distant. | ||
pugssvn | r31510 | moritz++ | [t/spec] test for RT #76068, two iterations of a loop share the same $_ if it is not a formal parameter of the block | 09:35 | |
jnthn | Su-Shee: Huh, most of what I eat in Germany is wurst. :-) | ||
sorear | I've finished renaming and extracting niecza; it now lives on github | ||
Su-Shee | jnthn: I think it's similar that I understand dutch and can read it "somehow". | ||
jnthn | :-) | 09:36 | |
Su-Shee | jnthn: man, can't you go for the better things of german food? like our variety of bread? or cakes? :) | ||
amkrankruleuen | Polish have hard grammar. | ||
sorear | Who do I poke to get a new repo on dalek? | ||
tadzik | sure we do :) | 09:37 | |
jnthn | You mean I've been eating the wurst thing you have? :-) | ||
moritz_ | sorear: maybe diakopter knows | ||
jnthn | Su-Shee: I agree on the cakes though. :-) | ||
They are also great. | |||
sorear out | |||
bbkr | Su-Shee: Czech is funny for people from Poland because Czech words sounds similiar to Polish diminutives | ||
Su-Shee | jnthn: ok, then try bratwurst as well and go for hams next. ;) | ||
bbkr: for me, dutch has a "cute" sound. :) | 09:38 | ||
jnthn takes notes for his next trip to Germany :-) | |||
cono | bbkr: It's funny for Ukrainian too :) | ||
Su-Shee | jnthn: oh, and short before christmas: cookies. that's something we really do very well. christmas cookies. all kinds of regional stuff, some recipes are like 800 years odl.. | 09:39 | |
bbkr | cono: for me Ukrainian was quite understandable without learning. reading was a bit more difficult, but cyrylic is in fact very cute. | 09:40 | |
cono | bbkr: Are you from Poland? | 09:41 | |
bbkr | cono: yes | ||
cono | neighbour : | ||
) | |||
jnthn | Su-Shee: Conveniently, I have a sleeper train from here to Cologne, and from there I can easily get to the UK to see family. So I now have a great excuse to visit a German christmas market in Germany. :-) | 09:42 | |
Su-Shee | harhar. who isn't a neighbour on continental europe? ;) | ||
jnthn | (German christmas markets seem to happen all over the UK these days too, but I suspect the real thing is far better.) | ||
Su-Shee | jnthn: you could probably get away with asking randomly housewife-ish looking middle aged women in a small town for christmas cookies ;) | ||
cono | Su-Shee: ofc, but Ukraine and Poland so close to each other | 09:43 | |
Su-Shee | cono: well historically spoken, poland's position in between has been more of a curse but a blessing. ;) | 09:44 | |
masak | right, "čas". | 09:45 | |
cono | between what countries? | ||
Su-Shee | sweden, russia, germany/prussia | 09:46 | |
food! | |||
masak | Su-Shee: this could be a solution to Poland's problems: www.economist.com/node/16003661?sto...d=16003661 | ||
cono | haha, Ukraine rocks :D | 09:47 | |
tadzik | oh no | ||
it's rainy enough alredy | 09:48 | ||
jnthn | masak: hah :-) | ||
cono: Indeed. :-) | |||
bbkr | masak: hahaha, nice one. amazing how they reorganized countries with maintaining continent shape | ||
jnthn | I love how they moved Switzerland up to the Nordics. :-) | 09:49 | |
bbkr | rakudo: class A { has $.foo }; my A $a .=new( foo => 42 ); say $a.perl | ||
p6eval | rakudo 36998b: OUTPUT«A.new()» | ||
masak | bbkr: .perl on user-created classes is LTA. | 09:50 | |
jnthn | It's also unspec'd. | ||
masak | jnthn: the idea of .perl is to serialize so that an eval() restores the object as best possible, no? | ||
jnthn | masak: something laik that. | 09:51 | |
bbkr | leaving #61918 open then, with comment that it does not crash now | ||
jnthn | masak: otoh, do we want .perl to go exposing an object's privates? | ||
moritz_ | sure | 09:52 | |
09:52
perlygatekeeper1 joined,
perlygatekeeper left
|
|||
bbkr | rakudo: my Int $x = +"2"; | 09:54 | |
masak | jnthn: what moritz_ said. I think using .perl is sufficiently "meta" to consider it not a real breach of OO principles. | ||
p6eval | rakudo 36998b: OUTPUT«Type check failed for assignment in '&infix:<=>' at line 1 in main program body at line 11:/tmp/Kd2cLlQ1a9» | ||
masak | bbkr: mmmr, I hate that bug. :/ | 09:55 | |
bbkr | rakudo: (+"2").WHAT.say | ||
p6eval | rakudo 36998b: OUTPUT«Num()» | ||
masak | also, why doesn't it say which type it expected and which one it got? | ||
moritz_ | masak: I think colomon++ has been preparing to fix that | ||
masak | nice. | ||
cono | what means LTA? | ||
moritz_ | cono: less than awesome | ||
cono | :) | 09:56 | |
bbkr | rakudo: say 'hello-world'.split(/<ws>/).perl; | ||
cono | thanks | ||
p6eval | rakudo 36998b: OUTPUT«("", "ello", "", "", "orld", "", Mu)» | ||
masak | moritz_: re stackoverflow.com/questions/3147776...-for-perl6 | ||
moritz_: nice reply. | |||
moritz_: however, we seriously need to find a URL that doesn't contain the word 'proto'. | |||
nor 'pls'. | |||
moritz_ | masak: modules.perl6.org? | ||
masak | yes. | ||
bbkr | rakudo: say 'a-b-c'.split(/<ws>/).perl; # doesn't look good | 09:57 | |
p6eval | rakudo 36998b: OUTPUT«("", "", "", "", "", "", Mu)» | ||
masak | it doesn't highlight the level difference between 'project' and 'module' that I've sometimes been advocating, but maybe that's just as well. | ||
moritz_ | "project" is just *very* general | ||
masak | bbkr: huh. is that an RT ticket. | ||
moritz_: true. so is 'ecosystem'. | 09:58 | ||
bbkr | masak: rt.perl.org/rt3/Ticket/Display.html?id=63066 - related | ||
masak | bbkr: yeah, but it's seemingly gotten worse. | ||
bbkr | masak: i added comment there, but it looks now like higher priority than just end of line mismatch | 10:00 | |
moritz_ | zero-width matches in general seem to set it up | ||
more or less | |||
masak | bbkr: indeed. it's more or less another bug now. | ||
bbkr | rakudo: sub s($i is copy) { my @array; for 1..3 { @array.push($i); my $i = 1 + $i; }}; s(9); | 10:02 | |
p6eval | rakudo 36998b: OUTPUT«Use of uninitialized value in numeric contextUse of uninitialized value in numeric contextUse of uninitialized value in numeric context» | ||
moritz_ | stackoverflow.com/questions/3144043...72#3148172 | ||
dalek | kudo: 261eb2a | moritz++ | README: README: emphasize that installing Rakudo is really necessary |
10:03 | |
masak | not running 'make install' gives a divide by zero now? | ||
moritz_ | seems like | 10:04 | |
masak | couldn't we just detect that situation once and for all, and put a nice error message there? :) | ||
bbkr | rakudo: my $x = "foo"; class A { my $.y = $x } | 10:05 | |
p6eval | rakudo 36998b: ( no output ) | ||
bbkr | rakudo: my $x = "foo"; class A { my $.y = $x }; A.new.y.say; | ||
p6eval | rakudo 36998b: OUTPUT«Method 'y' not found for invocant of class 'A' in main program body at line 11:/tmp/flkcISPHqk» | ||
moritz_ | masak: I'm kinda surprised it doesn't blow up in a more helpful way, since .loadlib now fails loudly | 10:06 | |
masak | bbkr: that's right, as far as I can see. | ||
or does 'my' also create accessors? | |||
jnthn | moritz_: If you can dig through perl6.pir in alpha | ||
bbkr | masak: it is right. i'm testing rt.perl.org/rt3/Ticket/Display.html?id=63588 | ||
jnthn | moritz_: Then the code we used to have is in there. | ||
moritz_: It'd want to go into src/Perl6/Compiler.pir | |||
moritz_ | jnthn: I'll take a look | ||
bbkr | rakudo: my $x = "foo"; class A { my $.y = $x; sub foo {say $.y} }; A.new.foo; | 10:07 | |
p6eval | rakudo 36998b: OUTPUT«Method 'foo' not found for invocant of class 'A' in main program body at line 11:/tmp/5zh9sYrXBv» | ||
bbkr | rakudo: my $x = "foo"; class A { my $.y = $x; method foo {say $.y} }; A.new.foo; | ||
p6eval | rakudo 36998b: OUTPUT«Method 'y' not found for invocant of class 'A' in 'A::foo' at line 11:/tmp/eHqN_GnKLq in main program body at line 11:/tmp/eHqN_GnKLq» | ||
jnthn | bbkr: We don't do anything with my $.foo yet in Rakudo afaik | ||
Beyond creating the lexical | |||
I think we probably should generate a method too | 10:08 | ||
But...I'm not quite sure how that should look... | |||
(The normal route goes through the meta-model...) | |||
moritz_ | I'm kinda convinced that class attributes need a re-design in Perl 6 | 10:09 | |
bbkr | rakudo: "foo" ~~ /<B::TOP>/ | 10:11 | |
p6eval | rakudo 36998b: OUTPUT«===SORRY!===regex assertion not terminated by angle bracket at line 11, near "::TOP>/"» | ||
bbkr | ? why it complaints about regex assertion instead of nonexisting grammar? | ||
jnthn | moritz_: It's hard to have class attributes when you don't really have a "class" object. :-) | 10:12 | |
class Foo { ... } # installs Foo in the namespace | 10:13 | ||
erm | |||
bbkr | rakudo: my ::MyType ::= :(Num, Str); | ||
p6eval | rakudo 36998b: OUTPUT«===SORRY!===Malformed my at line 11, near "::MyType :"» | ||
jnthn | s/Foo/type-object/ | ||
10:16
agentzh left
10:18
amkrankruleuen left
|
|||
TiMBuS | hey there, just wondering if masak, jnthn, other higher ups saw that paste before | 10:18 | |
masak | cognominal: the thing you submitted to RT feels more like a topic for p6l than a ticket in RT. | ||
TiMBuS: this one? nopaste.snit.ch/21695?tx=on&sub...Format+it! | 10:20 | ||
TiMBuS | thats the one | 10:21 | |
10:21
literal left
|
|||
masak | TiMBuS: I'm getting an unusual tl;dr reaction to that text. could you summarize a bit? like, two or three bullet points? | 10:22 | |
cognominal | masak: yea. I hit a snag and it triggers a lot of thoughts | ||
masak | cognominal: even besides that, it's a Perl 6 feature request more than a Rakudo feature request. | 10:23 | |
hence, p6l. | |||
10:24
azert0x joined
|
|||
cognominal | I made my mind on one thing, I think Range should be a parametric class. I don't know if parametric classes have a sensible default. | 10:24 | |
masak, feel free to follow up on p6l | |||
10:25
HarryS joined
|
|||
TiMBuS | dot points is a bit hard since its a bit of a detailed um. journey to find perl 6 | 10:25 | |
masak | cognominal: was there a use case in there somewhere? what do you want this for? | ||
TiMBuS: what's the most sailent point in what you wrote? | 10:26 | ||
TiMBuS | finding perl6 is a little bit difficult, and could use some polish | 10:27 | |
masak | agreed. | ||
TiMBuS | in particular, the perl download page could use a link | ||
masak | url? | ||
TiMBuS | since googlig for perl 6 takes you there | ||
www.perl.com/download.csp | |||
cognominal | masak, using Range on Ints, excluded values are a lot of trouble and unecesseraly complicates the code | 10:28 | |
TiMBuS | The second hit (on google) is the perlfoundation.org page for downloading Perl 6 [ www.perlfoundation.org/perl6/index....oad_perl_6 ] | ||
masak | right. who has the keys to that page? | ||
TiMBuS | also not a great link | ||
10:30
am0c left,
ruoso left
|
|||
masak | bbkr: the reason '"foo" ~~ /<B::TOP>/' gives the error 'regex assertion not terminated by angle bracket' is that the <B::TOP> syntax isn't implemented in nqp-rx. | 10:30 | |
bbkr: so the only thing that tells us is that right now, it's not possible to make the bug manifest. | 10:31 | ||
bbkr | masak: thanks | ||
masak | cognominal: do you have a code example of how you picture using your proposed addition? | 10:32 | |
10:32
mmcleric left
10:34
mmcleric joined
|
|||
cognominal | I guess I will golf one | 10:35 | |
masak | s/sailent/salient/ | ||
'salient' means 'jumping [out]', apparently. | |||
dalek | kudo: aa015ad | moritz++ | src/Perl6/Compiler.pir: more awesome error message when running a non-installed Rakudo outside of the masak++ for complaining, jnthn++ for telling me where to steal the code (alpha's perl6.pirg) |
10:38 | |
masak | \o/ | ||
frettled | masak: I just read your p6c post regarding a monkey-typed Bool.pick. You suggest: defined self ?? self || (True, False).pick; - couldn't that be easier implemented as: self // (True, False).pick | ||
moritz_ | rakudo.org/submit-a-bug-report | 10:39 | |
masak | frettled: oh, 'course. much better. thanks. :) | ||
moritz_ | now somebody needs to change the title in the navigation bar | ||
I don't know how to do that (and I don't know if i have the privileges to do it) | |||
frettled was useful again! Woot! | 10:41 | ||
xinming | '11 | 10:43 | |
10:44
figg joined,
am0c joined
10:45
tadzik left,
figg left
10:46
hugme left,
hugme joined
10:47
amkrankruleuen joined
|
|||
moritz_ | hugme: tweet rakudoperl #rakudo now supports the $*ARGFILES magic file handle, which replaces the 'while (<>) { ... }' which you might know from Perl 5 | 10:48 | |
hugme hugs moritz_; tweet delivered | |||
10:58
tadzik joined
|
|||
bbkr | rakudo: sub example ($x is rw) { $x = 3; my @a; @a.push($x); $x = 5; say @a[0]; }; example(3); | 11:07 | |
p6eval | rakudo 261eb2: OUTPUT«Cannot assign to readonly value in '&infix:<=>' at line 1 in 'example' at line 11:/tmp/Px0mu1JHtu in main program body at line 11:/tmp/Px0mu1JHtu» | ||
bbkr | where is raadonly value here? | ||
readonly* | 11:08 | ||
masak | that's the question. | ||
bbkr | rakudo: sub example ($x is rw) { $x = 3; my @a; @a.push($x); $x = 5; say @a[0]; }; example(); | 11:09 | |
p6eval | rakudo 261eb2: OUTPUT«Not enough positional parameters passed; got 0 but expected 1 in 'example' at line 11:/tmp/PeJ2HXfitk in main program body at line 11:/tmp/PeJ2HXfitk» | ||
hejki | rakudo: class Foo { has Int $.x is rw; method bar { "type of x: $.x.WHAT".say } }; my $f = Foo.new(); my $str = "foobar"; $str ~~ /(oo)/; $f.x = $0; $f.bar | ||
p6eval | rakudo 261eb2: OUTPUT«type of x: oo.WHAT» | ||
masak | bbkr: ah. it's the 3. | ||
bbkr | rakudo: sub example ($x is rw) { $x = 3; my @a; $x = 5; }; example(3); | ||
p6eval | rakudo 261eb2: OUTPUT«Cannot assign to readonly value in '&infix:<=>' at line 1 in 'example' at line 11:/tmp/RnjdwmwGFk in main program body at line 11:/tmp/RnjdwmwGFk» | ||
hejki | rakudo: class Foo { has Int $.x is rw; method bar { "type of x: " ~ $.x.WHAT ~ "".say } }; my $f = Foo.new(); my $str = "foobar"; $str ~~ /(oo)/; $f.x = $0; $f.bar | ||
p6eval | rakudo 261eb2: OUTPUT«» | ||
masak | bbkr: in your first one-liner. | ||
hejki | rakudo: class Foo { has Int $.x is rw; method bar { "type of x: {$.x.WHAT}".say } }; my $f = Foo.new(); my $str = "foobar"; $str ~~ /(oo)/; $f.x = $0; $f.bar | 11:10 | |
masak | bbkr: the 3 is a literal, hence read-only. | ||
p6eval | rakudo 261eb2: OUTPUT«type of x: Match()» | ||
bbkr | rakudo: sub example ($x is rw) { $x = 3; my @a; @a.push($x); $x = 5; say @a[0]; }; my $z = 3; example($z); | 11:11 | |
p6eval | rakudo 261eb2: OUTPUT«3» | ||
bbkr | masak: if this is expected behavior, then rt.perl.org/rt3/Ticket/Display.html?id=61982 can be closed as not spec-compatible? | ||
masak | moritz_: could you have a look at rt.perl.org/rt3/Public/Bug/Display.html?id=61982 ? | 11:12 | |
moritz_: I can't see how `$x = 5` could be legal if $x is bound to the argument 3. | |||
fwiw, it should work fine (and output 3) for 'is copy'. | 11:13 | ||
bbkr | rakudo: say $x; my $x=4; | 11:19 | |
p6eval | rakudo 261eb2: OUTPUT«Any()» | ||
bbkr | rakudo: my @a = "foo", "foot"; if @a[all(0,1)] ~~ /^ foo/ { say "OH MY!" } | 11:23 | |
p6eval | rakudo 261eb2: OUTPUT«OH MY!» | ||
bbkr | yay | ||
masak | bbkr++ | ||
bbkr | this test belongs more to array indexing or junctions or smartmatch/ | 11:24 | |
? | |||
colomon | pmichaud, et al: just finished some more timings. It appears that stringifying an array of 100 strings (each < 80 chars) into a single Str takes about 17 seconds on my MBP. | ||
moritz_ | masak: huh? $x is rw | 11:25 | |
masak | moritz_: 3 isn't. | ||
colomon | 50 strings appears take 5.4 seconds, suggesting we might be O(N^2) here. | 11:26 | |
masak | moritz_: sub example($x is rw) { ... }; example(3) | ||
bbkr: junctions, I'd say. | |||
moritz_ | masak: then the dispatch should fail | ||
masak | moritz_: oh, indeed. | ||
moritz_ | masak: but modulo that, and calling it as example(my $y = 3), the problem is gone | ||
moritz_ -> afk | 11:27 | ||
masak | moritz_: right. just checking what it was you were reporting. | ||
colomon | 200 strings, 77 secs | 11:28 | |
masak | colomon: Schlemiel, probably. en.wikipedia.org/wiki/Schlemiel_the..._algorithm | 11:31 | |
colomon | masak: interesting. I had assumed it probably had something to do with copying the entire string at each stage of the concat. | 11:34 | |
masak | colomon: that's an equivalent statement of the problem. | ||
pugssvn | r31511 | bbkr++ | [t/spec] tests for RT #63126 Junctions in array and hash indices dont work in Rakudo | 11:36 | |
11:39
literal joined
11:41
sftp joined
|
|||
bbkr | rakudo: map { say "$^a - $^b"}, 1..10 Z 1..10 | 11:43 | |
p6eval | rakudo 261eb2: OUTPUT«No candidates found to invoke in 'map' at line 1593:CORE.setting in main program body at line 11:/tmp/b5qrcyUWOD» | ||
11:43
sftp left
|
|||
colomon | rakudo: map { say "$^a - $^b"}, (1..10 Z 1..10) | 11:43 | |
p6eval | rakudo 261eb2: ( no output ) | ||
colomon | oh, not eager | 11:44 | |
rakudo: (1..10 Z 1..10).map( { say "$^a - $^b"}).eager | |||
p6eval | rakudo 261eb2: OUTPUT«1 - 12 - 23 - 34 - 45 - 56 - 67 - 78 - 89 - 910 - 10» | ||
masak | rakudo: for 1..10 Z 1..10 -> $a, $b { say "$a - $b" } | ||
bbkr | not fixed then :) | ||
p6eval | rakudo 261eb2: OUTPUT«1 - 12 - 23 - 34 - 45 - 56 - 67 - 78 - 89 - 910 - 10» | ||
masak | bbkr: what was the bug? | 11:45 | |
11:45
xinming_ joined
|
|||
bbkr | masak: rt.perl.org/rt3/Ticket/Display.html?id=64568 | 11:45 | |
rakudo: say <<:a(1)>>.perl | 11:46 | ||
p6eval | rakudo 261eb2: OUTPUT«":a(1)"» | ||
masak | bbkr: not so sure... infix:<,> binds tighter than infix:<Z>... | 11:47 | |
11:47
xinming left
|
|||
masak | bbkr: the error message is unfriendly, but it's essentially complaining about &map being fed just a List. | 11:48 | |
bbkr | then it shuld get "rejected" status? | ||
masak | bbkr: as far as I can see, yes. | ||
bbkr | should* | ||
masak: ok, rejecting. thanks | |||
masak | bbkr++ | ||
11:49
TiMBuS left,
TiMBuS joined
|
|||
jnthn | There's a ticket about said error being LTA. | 11:50 | |
It offers a beer to the fixer. | |||
<- motivated | |||
bbkr | rakudo: say "\c[LATIN CAPITAL LETTER A]".ord # segfault! | 11:51 | |
p6eval | rakudo 261eb2: OUTPUT«65» | ||
bbkr | hmm | ||
checking HEAD | |||
11:52
sftp joined
|
|||
masak | someone points out on friendfeed that the Rakudo Star release on July 29 is two days after (or before?) the StarCraft 2 release. friendfeed.com/zag/1a0a4bf9/rakudo-...-starcraft | 11:53 | |
bbkr | rakudo: sub foo(*$a) { say $a.WHAT }; foo(reverse(3, 4)); | 11:55 | |
p6eval | rakudo 261eb2: OUTPUT«Array()» | ||
bbkr | rakudo: say "improper collapse" if 10 < (5|25) < 20; | 11:58 | |
p6eval | rakudo 261eb2: OUTPUT«improper collapse» | ||
11:58
rv2733 joined
|
|||
bbkr | rakudo: sub foo { fail }; sub bar { foo(); 2; CATCH { 1; } }; say bar(); | 11:59 | |
p6eval | rakudo 261eb2: OUTPUT«Null PMC access in type() in main program body at line 11:/tmp/D8viQ_pk5t» | ||
jnthn | bbkr: Is that junction one actually wrong? | ||
10 < 25 and 5 < 20 | 12:00 | ||
masak | jnthn: agree. | ||
jnthn | And it's certainly defined as two calls to < | ||
masak | bbkr: could you give the RT url? | ||
jnthn | Not some kind of list infix. | ||
bbkr | masak: sure, rt.perl.org/rt3/Ticket/Display.html?id=61676 | 12:01 | |
masak | jnthn: it's a bit of a hybrid, I'd say. :) but your argument still holds. | ||
bbkr: rejected. | 12:02 | ||
bbkr | say "impossible" if 10 < any(5,25) < 20 | ||
rakudo: say "impossible" if 10 < any(5,25) < 20 | |||
masak | bbkr: transitive behavior does not hold when junctions are involved. | ||
p6eval | rakudo 261eb2: OUTPUT«impossible» | ||
bbkr | masak++ | ||
masak | junctions stubbornly refuse to do more than they were built to do :) | 12:03 | |
jnthn | :) | ||
masak | what people often seem to expect is something like this: blog.woobling.org/2009/08/abstracti...guity.html | 12:04 | |
12:04
TiMBuS|Away joined
|
|||
bbkr | is this: (0,1)[*..*] expected to go into infinite loop? | 12:06 | |
jnthn | I very much doubt it. | 12:07 | |
colomon | it's not supposed to, but it certainly does last time I checked. | ||
12:07
TiMBuS left
12:08
envi^home joined
|
|||
bbkr | colomon: already reporetd? if so - ticket can be merged rt.perl.org/rt3/Ticket/Display.html?id=61844 with this report | 12:09 | |
colomon | bbkr: no idea if it's reported or not. | ||
bbkr | colomon: ok, i'm at 70% RT queue checking so I'll find it anyway | 12:10 | |
12:11
jaldhar left
|
|||
masak | bbkr: my hero! | 12:12 | |
hugme: hug bbkr | |||
hugme hugs bbkr | |||
12:13
azert0x left
|
|||
colomon | loliblogged: justrakudoit.wordpress.com/2010/06/...and-speed/ | 12:13 | |
masak | colomon++ # nice! | 12:14 | |
colomon | masak++ # good link explaining the sort of performance issue we have. :) | 12:15 | |
jnthn | (This relies on the $*ARGFILES patch from yesterday, making lines basically the equivalent of while () from Perl 5.) | 12:16 | |
colomon: <> eated as HTML tag? | |||
colomon | oh, probably. | ||
jnthn | omnomnomtag | ||
colomon | jnthn++ # updated | 12:18 | |
12:18
ruoso joined
|
|||
colomon | slurp is supposed to default to $*ARGFILES in the long run, isn't it? | 12:19 | |
masak | blog engines should have a "warning, <> symbols nommed" label on preview or something. | ||
colomon | right now it doesn't even work with $*ARGFILES. | ||
12:22
szbalint left
12:24
azert0x joined
12:26
pmurias joined
|
|||
pmurias | ruoso: hi | 12:26 | |
sorear: ping | |||
12:28
skids joined
|
|||
ruoso | pmurias, hi... long time no see... | 12:28 | |
pmurias | yes.. | 12:29 | |
had my last exam yesterday now will try to catch up with the GSoC | |||
ruoso: could you try installing the SMOP from the repo on your box? | 12:30 | ||
ruoso | yes... I'll try | ||
12:33
IllvilJa joined
|
|||
bbkr | rt.perl.org/rt3/Ticket/Display.html?id=68762 - does .lines on descriptor produce lazy list now? | 12:38 | |
masak | bbkr: sounds like a question perfectly suited for some empirical studies. | 12:40 | |
bbkr: do you have Rakudo installed locally? | |||
bbkr | yes, both Kiev and yesterday build | ||
rakudo: say 1..{$_} # checking rt.perl.org/rt3/Ticket/Display.html?id=68788 | 12:41 | ||
p6eval | rakudo 261eb2: ( no output ) | ||
bbkr | rakudo: say (1..{$_}).WHAT.say | ||
p6eval | rakudo 261eb2: OUTPUT«Range()1» | ||
bbkr | nice, aiming at <630 tickets in RT today :) | 12:43 | |
masak | best of luck. | 12:44 | |
hm, autovivification isn't on in docs/ROADMAP? | |||
jnthn | I thought it was? | ||
masak | ah, it's among "Nice to have" as "vivification"... | ||
jnthn | oh, I didn't realize it goet demoted. | ||
masak | probably makes sense. | ||
it *will* be nice to have, but it's not a showstopper. | 12:45 | ||
jnthn | *nod* | 12:50 | |
colomon | bbkr: lines is lazy now, but it might still be slow. probably worth testing. | 12:51 | |
12:52
amkrankruleuen left
12:53
kaare_ left
|
|||
bbkr | colomon: thanks. what status should ticket have then? there is no "acceptable" speed level defined, "very slow" is too general, at which point we can reply "resolved"? | 12:54 | |
pugssvn | r31512 | bbkr++ | [t/spec] tests for RT #68788 segmentation fault on the "say 1..{$_}" | 12:57 | |
12:57
masonkramer_ joined,
masonkramer left,
masonkramer_ is now known as masonkramer
|
|||
masak | bbkr: I'd just reject the ticket. but I'm known to be very unsentimental about these things, so maybe check with someone else too. | 12:58 | |
(i.e. I often reject tickets with no clear bug description) | 12:59 | ||
pugssvn | r31513 | pmurias++ | [STD] better error message when loading STD withought having run make | ||
13:01
grandmoun joined
|
|||
pugssvn | r31514 | pmurias++ | [mildew] say 1 parses | 13:03 | |
13:03
am0c left
|
|||
bbkr | masak: I also think it should be rejected. The only precisely described issue (.lines not being lazy) is now solved. | 13:03 | |
masak | bbkr: nod. | ||
bbkr: it's worth noting, of course, that the submitter considers Rakudo to be so slow that the problem doesn't even need to be explicitly pointed out :) | 13:04 | ||
but that says more about the expectations of the submitter (and perhaps our relative tolerance) than anything else. | |||
13:05
IllvilJa left,
mmcleric_ joined,
mmcleric left,
mmcleric_ is now known as mmcleric
13:12
plainhao joined
13:14
felliott joined
13:15
ive joined
|
|||
masak | mathw: ping | 13:15 | |
13:17
am0c joined
|
|||
mathw | masak: pong | 13:18 | |
13:18
gbacon joined
|
|||
masak | "Form.pm uses a Makefile generated by the ufo script. The Makefile is included in the source tree..." nononono... :/ | 13:18 | |
see, github.com/mattw/form/blob/master/Makefile contains a path which likely only exists on your computer... | 13:19 | ||
'git rm Makefile && git push origin master' | |||
er, and a 'git commit' in between. | |||
mathw: sorry I did not check this earlier. :/ | 13:20 | ||
masak thinks of ways to make the ufo README clearer on this point | |||
mathw | You could mention it at all | 13:21 | |
Your documentation's a little too on the 'this is simple' rather than 'this is what you do' side | |||
masak | mentioning it would probably help. | ||
masak tries that | |||
mathw: so, ufo makes a Makefile that obviates the need to set PERL6LIB. this can't be done without knowing the absolute path of the project's lib/ dir. | 13:23 | ||
13:24
felliott left
|
|||
mathw | Sure | 13:25 | |
masak | in that sense, ufo is actually replacement for Configure.pm et al, not just out to destroy them. | ||
mathw | you just need to mention that this Makefile can't be distributed, and people will require ufo as a build-time dependency | ||
masak | aye. ufo or pls. | ||
pugssvn | r31515 | bbkr++ | [t/spec] tests for RT #74624 Any + 0.1 is a Num, not a Rat in Rakudo | 13:27 | |
masak | mathw: fixed, thanks. github.com/masak/ufo/commit/a3a059d...fba23a483f | 13:28 | |
mathw | github.com/mattw/form/commit/a80e32...1919fd65fa | 13:30 | |
masak | mathw++ | ||
pmichaud | good morning, #perl6 | ||
mathw | oh hai pmichaud | ||
masak | hi pm | 13:31 | |
pmichaud | autovivification is "nice to have"? | ||
that feels wrongish to me. | |||
masak | it does? oh good. :) | 13:32 | |
mathw | isn't it a crucial part of Perl being Perl? | ||
bbkr | rakudo: $_ = "test"; s/t/x/; .say; | ||
pmichaud | anyway, I should have it ready shortly. | ||
p6eval | rakudo aa015a: OUTPUT«test» | ||
mathw | \o/ | ||
masak | ++pmichaud | ||
mathw | So instead of changing it to 'essential' it can be changed to 'done', I like | ||
bbkr | rakudo: $_ = "test"; $_ ~~ s/t/x/; .say; | 13:33 | |
p6eval | rakudo aa015a: OUTPUT«xest» | ||
bbkr | bare s/// does not default to $_ as in P5? | ||
pmichaud | bbkr: nyi | ||
masak | $ perl6 -e 'say @*ARGS.perl' | 13:34 | |
["-"] | |||
wtf? | |||
this must be a recent change. | |||
it seems to have broken ufo. | |||
pmichaud | bug | ||
masak submits | |||
I can work around it easily. | |||
just letting you know. | |||
bbkr | rakudo: $_ = "test"; $_ ~~ tr/t/x/; .say; | ||
p6eval | rakudo aa015a: OUTPUT«===SORRY!===Confused at line 11, near "$_ ~~ tr/t"» | ||
pmichaud | the bug is in IO::ArgFiles | ||
(which has quite a few bugs atm) | |||
masak | good to know. | 13:35 | |
mathw | well no | 13:37 | |
bugs are bad | |||
pmichaud | IO::ArgFiles needs to be much lazier about grabbing things from @*ARGS, and much more direct about manipulating @*ARGS | 13:38 | |
masak | mathw: they are. but having them as unknown unknowns is worse. | ||
mathw | This is true | 13:40 | |
If they are unknown unknowns, you get like I've got at work | |||
We know there's a bug somewhere... quite probably two of them... but neither makes any sense or is very obvious | |||
13:41
dakkar left
|
|||
masak | by the way, if anyone is interested in helping with a small patch to ufo, let me know. | 13:41 | |
there's an easy possible improvement to the 'install' target. | |||
arnsholt | What kind of improvement? | 13:44 | |
masak | I'm preparing a small gist outlining it. hold on. | ||
gist.github.com/458666 | 13:46 | ||
13:48
synth_ joined
|
|||
pugssvn | r31516 | pmurias++ | [smop] fix building smop tests | 13:48 | |
mberends | loliblogged: blogs.perl.org/users/martin_berends...bases.html | 13:49 | |
13:50
synth left
|
|||
masak | mberends++! | 13:51 | |
pugssvn | r31517 | bbkr++ | [t/spec] one of tests description was in double quotes which caused unwanted interpolation and broke whole test file | 13:52 | |
bbkr | try.t fixed :) | ||
[Coke] wonders why people reply to the RT "info" email and not the actual response. | 13:53 | ||
13:54
synth_ left
13:58
dakkar joined
|
|||
hejki | btw.. what's the state of sockets? | 13:59 | |
pmichaud | some of them are open. others are blocked. | ||
:-) | |||
hejki | rakudo: class Vuvuzela { has $.note = "BZZzzzZZzz"; method play { while 1 { $.note.say } } }; my $vuvuzela = Vuvuzela.new(); $vuvuzela.play; | 14:00 | |
hehe | |||
p6eval | rakudo aa015a: | ||
..OUTPUT«BZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZ… | |||
hejki | i meant 'what's the state of sockets in <insert any p6 compiler here>' | ||
pmichaud | iirc, rakudo has sockets, but not non-blocking sockets | ||
arnsholt | masak: Umm, ufo with no arguments seems to be broken | ||
masak | arnsholt: try the very latest ufo. | 14:01 | |
just fixed it. | |||
TiMBuS|Away | does parrot have non blocking sockets? | ||
pmichaud | TiMBuS|Away: I don't think Parrot has non-blocking I/O, which is partially why Rakudo doesn't have it yet. | ||
bbkr | rakudo: sub foo($bar:) {}; # I have no idea how this should behave | 14:02 | |
p6eval | rakudo aa015a: ( no output ) | ||
TiMBuS|Away | is there any particular reason for this? maybe i could hack it in | ||
arnsholt | masak: There's a bug in your bugfix. If @*ARGS is empty you get the usage message | 14:03 | |
masak | rakudo: class Vuvuzela { has $.note = "BZZzzzZZzz"; method play { loop { say $.note } } }; Vuvuzela.play | ||
p6eval | rakudo aa015a: OUTPUT«Type objects are abstract and have no attributes, but you tried to access $!note in 'Vuvuzela::play' at line 67 in main program body at line 11:/tmp/Q4TOe05JSa» | ||
masak | oh right. | ||
rakudo: class Vuvuzela { has $.note = "BZZzzzZZzz"; method play { loop { say $.note } } }; Vuvuzela.new.play | |||
pmichaud | TiMBuS|Away: afaik, it's just that nobody's looked at it. It may be also blocking on some design issue. | ||
TiMBuS|Away | i recall whiteknight wanted to build a big nonblocking socket solution thing on which to add blocking and scheduled and callbacked socket stuff and aaahh | ||
p6eval | rakudo aa015a: | ||
..OUTPUT«BZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZZzzBZZzzzZ… | |||
jnthn | mberends: fwiw, I'd rather see the Postgres DBD done in terms of Zavolaj rather than calling down to the Parrot hting. | ||
masak | arnsholt: oh, indeed. I fixed it as if everyone has the newer Rakudo. | ||
jnthn | *thing | ||
masak | arnsholt: fixing fix. | 14:04 | |
jnthn | mberends: Then it only takes porting Zavolaj in order for FakeDBI to be useful on other backends/implementations. | ||
PacoLinux | I just compiled rakudo head in a pII with 312Mb of ram and 172 Mb of swap in 868m14.925s | ||
masak | arnsholt: fixed, thanks. github.com/masak/ufo/commit/917839a...ed8b4e2afc | ||
mberends | jnthn: yes, thanks for mentioning :) | ||
BinGOs | masak: I call prior art! search.cpan.org/dist/Acme-Vuvuzela/ | 14:05 | |
masak | BinGOs: :) | ||
pmichaud | masak: *sigh* stuff like that is why I don't like accepting known-buggy code into raudo. | ||
*rakudo | |||
it encourages too many incorrect workarounds. | |||
hejki | BinGOs: i was inspired strongly by it | ||
masak | pmichaud: agree. and this is an especially hard-to-test one. | 14:06 | |
pmichaud | maybe I'll just fix argfiles now. | ||
BinGOs | add a fork() and you have something truely annoying. | ||
masak | pmichaud: keeping high standards in this regard will only get more important as time passes and more people rely on Rakudo. | ||
pmichaud | agreed | ||
14:06
plobsing joined
|
|||
pmichaud | I'm thinking that once I get past these remaining Pm-shaped obstacles, the bulk of my time is going to be reviewing patches and saying "no, you can't apply this yet because ..." | 14:07 | |
masak | pmichaud: I like it when you do that, yes. | ||
arnsholt | masak: I think you meant "@*ARGS > 1 && @*ARGS[0] ne '-'" | ||
pmichaud | i.e., I'll morph more into a patch pumpking than a code generator | ||
here, I'll fix argfiles now. | |||
masak | arnsholt: @*arrgh! | ||
pmichaud | seeing the workarounds makes me very sad. | ||
arnsholt | With the || it's still a no-go | ||
pmichaud | actually, I'm just going to commit a disable patch for the moment. | 14:08 | |
masak | arnsholt: no, && isn't it either. | 14:10 | |
arnsholt: let me reset my brain and try again. | |||
arnsholt | With && it runs with my Rakudo at least =) | ||
masak | that's just because you're not passing two or more arguments. | ||
pmichaud | masak: as soon as I do "make test" (not "make spectest") I'll push an argfiles disable. | 14:11 | |
14:11
colomon left,
azert0x left
|
|||
pmichaud | you can then work from that, and hopefully avoid the workaround altogether. | 14:11 | |
14:12
ash_ joined
|
|||
masak | arnsholt: I get this now: | 14:13 | |
elsif !(!@*ARGS || @*ARGS[0] ne '-') | |||
De Moivre tells me it's equal to this: | |||
[Coke] | moritz_: will 'make install' always install into the local directory? ;) | ||
masak | elsif @*ARGS && @*ARGS[0] eq '-' | ||
no, wait. | 14:14 | ||
it's right as it is. arnsholt++ | |||
pmichaud | well, except that it fails if someone puts '-' on the commandline explicitly. | ||
dalek | kudo: 806efc8 | pmichaud++ | src/ (2 files): Disable IO::ArgFiles for the time being, it's got bugs and is forcing people to |
||
masak | I can live with that. | ||
in the short term. | 14:15 | ||
14:15
azert0x joined
|
|||
pmichaud | with 806efc you can avoid the issue altogether -- @*ARGS is no longer getting '-' prepended to it prematurely. | 14:15 | |
masak | thanks. pmichaud++ | ||
removing fix. :) | |||
pmichaud | oh, but I might've broken something else. | 14:16 | |
bbkr | rakudo: $_ = "foo"; say .=subst(/o/, { ~$/ }, :g) | ||
p6eval | rakudo aa015a: OUTPUT«fAny()Any()» | ||
bbkr | it above output corect? | 14:17 | |
masak | no. | ||
bbkr: ~$/ should contain an 'o' in both evaluations of the closure. | 14:18 | ||
s/contain/be/ | |||
bbkr | masak: thanks, #66782 still not fixed | ||
pmichaud | rakudo: $_ = 'foo'; say .subst(/(o)/, { $0 }) | ||
p6eval | rakudo aa015a: OUTPUT«Method 'postcircumfix:<[ ]>' not found for invocant of class '' in <anon> at line 1 in 'Cool::subst' at line 1941:CORE.setting in main program body at line 11:/tmp/pJ53NlDHLz» | 14:19 | |
pmichaud | looks like $/ isn't being set properly. | ||
masak | aye. | ||
jnthn | $_ = "foo"; say .subst(/o/, { ~$/ }, :g) | ||
rakudo: $_ = "foo"; say .subst(/o/, { ~$/ }, :g) | |||
p6eval | rakudo aa015a: OUTPUT«fAny()Any()» | ||
jnthn | ah, not specific to .= | 14:20 | |
pmichaud | I'm not too surprised that $/ stopped working, given the recent container changes I've been making. | ||
I am surprised that there doesn't seem to be a test that is catching it. | |||
bbkr | rakudo: / <[\x10000..\xEFFFF]> /; say "alive" # testing 67122 | 14:21 | |
p6eval | rakudo aa015a: OUTPUT«alive» | ||
bbkr | yay | ||
pmichaud | that's less "yay" than might be evident at first | ||
it doesn't fail because <[\x10000.\xeffff]> doesn't do anything at present :-| | |||
afk, bbiab | 14:22 | ||
14:23
colomon joined
|
|||
bbkr | rakudo: "\x[10001]" ~~ /<[\x10000..\xEFFFF]>/ | 14:23 | |
p6eval | rakudo aa015a: ( no output ) | ||
bbkr | rakudo: say "\x[10001]" ~~ /<[\x10000..\xEFFFF]>/ | ||
p6eval | rakudo aa015a: OUTPUT«» | ||
bbkr | pmichaud: indeed, parses but doesn't work as expected. | 14:24 | |
14:27
ash_ left
|
|||
bbkr | rakudo: (for 1 {}).WHAT.say; # RT #70888 does not crash now, but I have doubts if it should be tested just with lives_ok or isa_ok and compare to ParrotIter (ParrotIter is not in the Spec) | 14:34 | |
p6eval | rakudo aa015a: OUTPUT«ParrotIter()» | ||
14:34
uniejo left
14:35
clintongormley left
|
|||
[Coke] | I'm pretty sure that ParrotIter shouldn't appear in the spectests. | 14:36 | |
colomon | +1 | ||
14:38
mj41 joined
|
|||
jnthn | oh my...are all our for loop iterations being marshalled through ParrotIter? | 14:39 | |
arnsholt | masak: ai forkeded ur gist | ||
And added a patch | 14:40 | ||
bbkr | rakudo: /[ ]/ # is this allowed in current spec? reported in 71800, previously crashing with Null PMC access, now parsing fine, but ticket says it's expected to throw "Null pattern not allowed" | ||
p6eval | rakudo aa015a: ( no output ) | ||
masak | arnsholt: cool, thanks! | ||
arnsholt | Not sure if it's beautiful code, but it's working code at least | ||
masak | rakudo: say "abcd".index("xyz") == 0 | 14:42 | |
p6eval | rakudo aa015a: OUTPUT«Method 'Bridge' not found for invocant of class 'Failure' in 'infix:<==>' at line 3203:CORE.setting in main program body at line 11:/tmp/ZxB0qUmBCP» | ||
masak | arnsholt: possible issue :) | ||
masak submits rakudobug | |||
arnsholt | Heh | ||
masak | rakudo: Failure == 0 | 14:43 | |
p6eval | rakudo aa015a: OUTPUT«Method 'Bridge' not found for invocant of class '' in 'infix:<==>' at line 3203:CORE.setting in main program body at line 11:/tmp/OiVcR_FiiT» | ||
14:43
plobsing left
|
|||
arnsholt | Oh, if I'd read the doc properly I'd've seen that. Failure is 0 in numeric context | 14:43 | |
masak | arnsholt: I think you want to check for definedness instead. | ||
arnsholt | definedness and == 0, yeah | ||
masak | aye. | 14:44 | |
in that order. | |||
14:44
pmurias left
|
|||
arnsholt | Certainly not the other way 'round, yeah ^^ | 14:44 | |
masak is not sure he likes .Bridge :/ | |||
jnthn | std: /[ ]/ | 14:46 | |
p6eval | std 31517: OUTPUT«Potential difficulties: [ ] appears to be an old-school character class; horizontal whitespace should be matched with \h instead at /tmp/bqQ2RrZVf6 line 1:------> /[ ]⏏/ok 00:01 111m» | ||
TimToady | hmm | 14:47 | |
I'd still expect Null pattern not allowed | 14:48 | ||
masak | +1 | ||
TimToady | std: /[]/ | ||
p6eval | std 31517: OUTPUT«===SORRY!===Null pattern not allowed at /tmp/nX8i59okz3 line 1:------> /[⏏]/ expecting regex atomParse failedFAILED 00:01 108m» | ||
colomon | rakudo: say Failure ~~ Real | ||
p6eval | rakudo 806efc: OUTPUT«1» | 14:49 | |
TimToady | std: /[ ]/ | ||
p6eval | std 31517: OUTPUT«ok 00:01 108m» | ||
colomon | rakudo: say Failure ~~ Positional | ||
masak | bbkr: re [perl #65904] -- I'd expect it to give an error, as I wrote in the original bug report. | ||
p6eval | rakudo 806efc: OUTPUT«1» | ||
masak | o.O | 14:50 | |
colomon | is Failure supposed to do every role? | ||
masak | not that I know. | ||
colomon | rakudo: say Failure ~~ Stringy | ||
p6eval | rakudo 806efc: OUTPUT«1» | ||
jnthn | rakudo: say Failure.^roles.perl | 14:51 | |
bbkr | masak: #65904 left unchanged then, thanks. | ||
p6eval | rakudo 806efc: OUTPUT«()» | ||
colomon | rakudo: role Foobar { method no-need() { say "boo!"; }; }; say Failure ~~ Foobar | ||
p6eval | rakudo 806efc: OUTPUT«1» | ||
jnthn | Oh, I wonder if this is to do with the "failure is always acceptable" thing | ||
masak | bbkr: well, you wrote "I'm not sure what is expected result." -- The expected result was outlines in the ticket. | 14:52 | |
bbkr | rakudo: sub foo(Bool :$x) { say "works!"}; foo(:x); # #69200, where can i put tests for this one? | ||
p6eval | rakudo 806efc: OUTPUT«works!» | ||
14:53
clintongormley joined
|
|||
jnthn | In with the other colonpair tests maybe | 14:53 | |
colomon | rakudo: my $a = Failure; say +$a | 14:54 | |
masak | arnsholt: nice solution with the lexicographic sorting, by the way. didn't think of that. | ||
p6eval | rakudo 806efc: OUTPUT«Use of uninitialized value in numeric context0» | ||
masak | arnsholt: one simplification would be to ditch the gather and just $makefile.say instead of 'take'. | ||
bbkr | masak: I appreciate your huge patience :) ticket was more than 1 year old and I wasn't sure if spec hasn't changed since then because it parses fine now. | 14:55 | |
rakudo: sub { "hello" #`(test) }.() | 14:57 | ||
p6eval | rakudo 806efc: OUTPUT«===SORRY!===Confused at line 11, near "sub { \"hel"» | ||
14:58
JimmyZ joined
|
|||
masak | bbkr: well, a sub still doesn't take an invocant. :P | 14:59 | |
jnthn | rakudo: (sub { "hello" #`(test) }).() | ||
p6eval | rakudo 806efc: ( no output ) | ||
jnthn | (note problem is that the #` but the .() on a sub decl without parens) | ||
arnsholt | masak: Very true with the say | ||
jnthn guesses maybe the ticket was about #`(...) | |||
arnsholt | And thanks for the compliment. I was kinda happy with that (which is why I commented it as well =) | 15:00 | |
15:00
rlb3 joined
|
|||
bbkr | jnthn: 69012 | 15:00 | |
masak | arnsholt: if you prepare a new diff with the proposed changes, based off the latest ufo, I'll apply it. | 15:02 | |
pmichaud | 14:39 <jnthn> oh my...are all our for loop iterations being marshalled through ParrotIter? | 15:04 | |
at the moment, yes. That will change when we s/for/map/ | |||
[particle] | rakudo: say { "hello" #`(test) }.() | ||
jnthn | pmichaud: OK | ||
p6eval | rakudo 806efc: OUTPUT«hello» | ||
jnthn | pmichaud: Heh. I guess we know that ParrotIter works reliably now. ;-) | ||
pmichaud | also, ParrotIter is significantly changed from what you wrote :) | ||
jnthn | Well, yes - iterators probably significantly changed too. :-) | 15:05 | |
pmichaud | right | ||
[particle] | oh, now i see jnthn++ meant s/that/not/ above | ||
jnthn | [particle]: er, yes :-) | ||
pmichaud goes back to ArgFiles work | 15:06 | ||
15:06
ash_ joined
|
|||
[Coke] wonders if pmichaud is darning his argfiles. # really needs a silent F there, but work with me. | 15:09 | ||
15:10
mberends left
|
|||
arnsholt | Hmm. My current Rakudo dies if it can't find a prefix with index | 15:11 | |
arnsholt updates | |||
15:12
kensanata joined
|
|||
pmichaud | [Coke]: right now I'm darning someone else's argfiles. | 15:13 | |
ash_ | is the patch for argfiles being applied to master? | ||
pmichaud | when it's ready, yes. | ||
ash_ | oh, btw, has anyone seen cygx? I was just wondering how the try.rakudo.org backend was coming along? I wanted to see if we could start testing the frontend and backend together | 15:14 | |
15:16
rlb3 left,
am0c left
|
|||
masak | last seen almost exactly 48 hours ago. | 15:16 | |
15:16
rlb3 joined
|
|||
ash_ | alright, well, i'll see if i can catch him later | 15:18 | |
arnsholt | rakudo: my $string = "abcd"; my $prefix = "xyz"; $string.index: $prefix; | 15:26 | |
p6eval | rakudo 806efc: ( no output ) | ||
arnsholt | Hmm. At the REPL it does | 15:27 | |
say defined "abcd".index: "xyz" | 15:29 | ||
rakudo: say defined "abcd".index: "xyz" | |||
p6eval | rakudo 806efc: OUTPUT«0» | ||
15:30
ashleydev joined
15:35
justatheory joined
15:37
JimmyZ left
|
|||
Tene | www.tbray.org/ongoing/When/201x/201...140.235379 -- apparently, in Fortress, it's a syntax error for spacing cues to not match the actual precedence of an expression. | 15:41 | |
15:41
alexbobP joined
|
|||
alexbobP | so what's the deal with perl 6? is it ever going to have it's own interpreter? | 15:42 | |
pmichaud | alexbobP: I don't understand the question. | ||
masak | alexbobP: how do you mean? | ||
Tene | alexbobP: I'm not quite sure what you're asking about here? | ||
arnsholt | masak: Updated: gist.github.com/458738 | ||
15:43
patspam joined
|
|||
masak | arnsholt: thanks! will look. | 15:43 | |
ash_ | lol 3 responses saying the same thing but different | ||
alexbobP | pmichaud: I was under the impression that, currently, perl6 exists only in the form of various modules you can import | 15:44 | |
15:44
rlb3 left
|
|||
alexbobP | pmichaud: does that mean I can't get the benefits such as strong typing and syntax changes? | 15:45 | |
pmichaud | alexbobP: perl6.org/ | ||
15:45
rlb3 joined
|
|||
pmichaud | alexbobP: rakudo.org/ | 15:45 | |
alexbobP | pmichaud: thanks | ||
pmichaud | Perl 6 has gone far beyond the Perl6:: modules in CPAN. | ||
alexbobP | oh, so it *does* have a compiler now! | 15:46 | |
cool. | |||
Tene | rakudo: class A { has Str $.msg; method frob { say $.msg; } }; my A $a .= new( :msg("Look, it works!") ); $a.frob(); | ||
p6eval | rakudo 806efc: OUTPUT«Look, it works!» | ||
cxreg adds more methods to Pg | |||
pmichaud | also: rakudo.org/node/73 | ||
ash_ | is blizkost specific to a version of perl5 or does it link to any perl5? | 15:49 | |
jnthn | ash_: I don't know about any version. | 15:50 | |
ash_: But certainly it's not too specific, afaik. | 15:51 | ||
15:51
macdaddy joined,
Ross joined,
macdaddy is now known as Guest80095,
mmcleric left
|
|||
ash_ | cool, so it would work with either 5.10 or 5.12 (i guess thats the more direct question i should ask) | 15:52 | |
masak | alexbobP: yes. that's why people were a bit confused at your initial question. :) | 15:53 | |
jnthn | ash_: afaik. | ||
pmichaud | alexbobP: you might also be interested in perl6advent.wordpress.com/2009/12/01/ | ||
jnthn | ash_: Most important is you have the libperl or whatever it's called | ||
pmichaud | (perl6advent isn't listed on perl.org?) | ||
alexbobP | masak: I see XD | ||
masak | arnsholt: applied; pushed. thanks! arnsholt++ | 15:54 | |
arnsholt | Cool! | ||
alexbobP | masak: I knew that it was just the perl6 cpan module a long time ago, and I hadn't heard anything since, so I just didn't know about this development | ||
this makes me happy | |||
pmichaud: I'll check it out | |||
masak | alexbobP: there was a big project called Pugs already in 2005. | ||
[Coke] | alexbobP: is there a place we could have been talking about it that we missed? | ||
alexbobP | [Coke]: yeah dude, it's all your fault | 15:55 | |
you guys weren't on the ball with notifying me! sheesh XD | |||
I think there's a rule somewhere that alexbobP has to be notified of all cool new things. I suppose you didn't bother to look where that rule was. ;) | 15:56 | ||
[Coke] | heh. I'm just wondering if there's some marketing opportunity we missed. we're not very good at that sort of thing. =-) | ||
masak | alexbobP: next time we'll spam you sooner. :P | ||
pmichaud | alexbobP: we're curious where you would have expected to hear more about Perl 6 (that we've obviously missed for 3+ years) | ||
[Coke] | alexbobP: share and enjoy. | ||
alexbobP | yeah I dunno | ||
pmichaud | I phrased that wrong. :) | ||
alexbobP | I didn't really have my feelers out | ||
I could have googled "perl 6" and found all this | |||
pmichaud | alexbobP: no problem. Glad we were able to surprise you today. :) | 15:57 | |
alexbobP | but I didn't :P | ||
pmichaud: me too. | |||
[Coke] | hokay. if you have any good marketing ideas, you're obligated to share them now. ^_^ | ||
er, going forward. | |||
alexbobP | okay, how about a "why perl 6 whomps python" page | ||
masak .oO( Mention Perl 6 at next Superbowl ) | |||
alexbobP | python's all the rage | ||
so we gotta beat it, right? | |||
masak | alexbobP: nah :) | ||
cuppe | can't we all just get along | ||
alexbobP | ubuntu didn't get on desktop computers by being all "who wants to use this software you've never heard of" | 15:58 | |
it's all about the "we can do everything windows can do and better" | |||
cxreg | how do you spell before/after/around like in Moose? | ||
masak | cxreg: callsame/nextsame | ||
pmichaud | we're not really far enough along to talk about "why perl6 whomps python". | ||
masak | cxreg: see S06. | ||
cxreg | masak: ok thanks | ||
pmichaud | because the first retort will be "python is 100x faster than perl6" :-) | 15:59 | |
alexbobP | haha aww | ||
(so we're still faster than ruby, right?) | |||
masak | only 100x? :P | ||
pmichaud | sometimes. | ||
rakudo is still painfully slow. | |||
15:59
cdarroch joined,
cdarroch left,
cdarroch joined
|
|||
pmichaud | (we're working on it.) | 15:59 | |
masak | alexbobP: as soon as you try Rakudo, you'll notice that it's... slightly speed-impaired. | ||
pmichaud | s/slightly// | 16:00 | |
16:00
colomon left
|
|||
masak | alexbobP: but that's OK, because we tend to think it's cool to be the first to be using Perl 6 features as they come online. | 16:00 | |
alexbobP | masak: right. Well I won't be doing that for work XD | ||
but I'll try it in my spare time! | |||
masak | \o/ | ||
alexbobP: that's about what we want to hear right now. | 16:01 | ||
alexbobP: want to see a few cool things in Perl 6? :) | |||
[Coke] | I think partcl is about 160X slower than tclsh8.5 | ||
er, partcl-nqp. | 16:02 | ||
alexbobP | masak: sure. | ||
masak | rakudo: .say for grep { $_ % all 2..$_/2 }, 2..* # print all primes, forever | ||
p6eval | rakudo 806efc: OUTPUT«23571113171923293137414347» | ||
alexbobP | lol, "" | ||
masak | rakudo: class Vuvuzela { method play { say "BZZZZ!" } }; Vuvuzela.new.play # easy-to-use OO | ||
p6eval | rakudo 806efc: OUTPUT«BZZZZ!» | ||
alexbobP | XD | ||
ash_ | lol @vuvuzela | 16:03 | |
arnsholt | alexbobP: Perl 6 supports Unicode, and we're not afraid to use it =) | ||
alexbobP | rakudo: Vuvuzela.new.play | ||
p6eval | rakudo 806efc: OUTPUT«Could not find sub &Vuvuzela in main program body at line 11:/tmp/K4W9KgOTwq» | ||
alexbobP | I guess the class doesn't stick around? | ||
diakopter | rakudo: class Vuvuzela { method play { say "BZZZZ!" } }; Vuvuzela.play | ||
p6eval | rakudo 806efc: OUTPUT«BZZZZ!» | ||
masak | alexbobP: no, new session each time. | ||
ash_ | pugs: class Vuvuzela { method play { say "BZZZZ!" } }; Vuvuzela.new.play # old school perl6 | ||
p6eval | pugs: OUTPUT«BZZZZ!» | ||
masak | rakudo: say [<=] 3, 4, 4, 5, 5, 6, 8; # look at that operator! it means "is the list sorted non-decreasing?" | ||
p6eval | rakudo 806efc: OUTPUT«1» | ||
cxreg | masak: A method named 'AutoCommit' already exists in class 'FakeDBD;Pg;Connection'. It may have been supplied by a role. | 16:04 | |
that was from "my proto method AutoCommit" | |||
masak | cxreg: moritz_ reported something similar the other day. | ||
(to RT) | |||
cxreg | masak: ok, so i'm doing the right thing, it just dont work yet? | ||
masak | cxreg: hard to say without a nopaste. | 16:05 | |
how could I guarantee you're doing the right thing? :P | |||
cxreg | psych(ic|osis) | ||
masak | :) | ||
16:05
patspam1 joined,
patspam left,
patspam1 is now known as patspam
|
|||
masak | cxreg: I seem to be mistaken, it was another proto-related bug that moritz_ submitted. | 16:06 | |
cxreg: feel free to submit yours, with adequate means to replicate it. | |||
cxreg | masak: my main question is, are you expected to be able to supply a proto method for a generated accessor | ||
masak | hm. | ||
what's your goal here? | |||
cxreg | to "tie" AutoCommit | ||
masak | ooh, naughty. | 16:07 | |
yeah, I'd expect that to fail. :) | |||
cxreg | :( | ||
pmichaud | I love it when a fix causes the source to become 50% shorter. :-) | ||
masak | (because no-one's tried it before) | ||
cxreg | masak: heh. | ||
masak | rakudo: class A { has $.b; proto method b {} } | 16:08 | |
p6eval | rakudo 806efc: OUTPUT«===SORRY!===A method named 'b' already exists in class 'A'. It may have been supplied by a role.» | ||
masak | cxreg: that's your error, right? | ||
cxreg | right | ||
masak | I don't think I've seen this addressed in S12. | 16:09 | |
and I know TimToady has been thinking about multi methods recently-ish. | |||
moritz_ | putting the proto first should make it work | ||
16:09
Guest23195 joined
|
|||
cxreg | moritz_: before the accessor declaration? | 16:09 | |
masak | rakudo: class A { proto method b {}l has $.b } | ||
p6eval | rakudo 806efc: OUTPUT«===SORRY!===Unable to parse blockoid, couldn't find final '}' at line 11» | ||
masak | oops. | ||
rakudo: class A { proto method b {}; has $.b } | 16:10 | ||
moritz_ | s/l/;/ | ||
p6eval | rakudo 806efc: OUTPUT«===SORRY!===A method named 'b' already exists in class 'A'. It may have been supplied by a role.» | ||
16:10
meppl joined
|
|||
moritz_ | accessor generation doesn't honor protos. That's a bug | 16:10 | |
ash_ | rakudo: class A { proto method b {}; has $!b } | ||
p6eval | rakudo 806efc: ( no output ) | ||
cxreg puts some toothpaste in the hole | |||
masak submits rakudobug | |||
ash_ | granted that doesn't mean the same thing... | 16:11 | |
16:11
Su-Shee left
|
|||
masak | swimming & | 16:13 | |
16:13
rlb3 left
16:14
masak left,
rlb3 joined
|
|||
cxreg | ash_: that might be an ok solution for now though, since it can just do the setting | 16:14 | |
ash_ | rakudo: class A { multi method b {}; has $.b } | 16:19 | |
p6eval | rakudo 806efc: OUTPUT«===SORRY!===A method named 'b' already exists in class 'A'. It may have been supplied by a role.» | ||
ash_ | should that work? | ||
rakudo: class A { method b {}; has $.b } | |||
p6eval | rakudo 806efc: OUTPUT«===SORRY!===A method named 'b' already exists in class 'A'. It may have been supplied by a role.» | ||
pmichaud | iirc, yes, you should be able to define a method and have it suppress the automatically generated one | 16:20 | |
but if you're defining a method, you probably don't need to be using $. | |||
ash_ | yeah, i know, you'd probably just want to $! the variable, but i was wondering if it should die because you made a method with the same name (or even a multi with the same name) | 16:21 | |
rakudo: class A { multi method b($) {}; has $.b } | |||
p6eval | rakudo 806efc: OUTPUT«===SORRY!===A method named 'b' already exists in class 'A'. It may have been supplied by a role.» | ||
pmichaud | ash_: iiuc, it's not supposed to die. | ||
jnthn | I think it's not meant to either. | 16:22 | |
I thought Attribute.nqp's compose method even had logic to check if a method was already defined. | 16:23 | ||
ash_ | that last one, should that make a mutli out of b? (so if you did .b it would call the normal accessor, and .b($scalar) would call the multi?) | ||
jnthn | Hmm...maybe. | ||
pmichaud | ash_: I'm pretty sure that if you define any method you don't get an automatically generated one. | ||
jnthn | What pmichaud++ just proposed is far simpler though ;-) | ||
ash_ | kk, just curious | 16:24 | |
pmichaud | I have been wrong many times before about such things, though. :) | ||
I'm wrong. | |||
S12: "You may write your own accessors to override any or all of the | 16:25 | ||
autogenerated ones. | |||
jnthn | "any or all" | ||
pmichaud | Yes. | ||
ash_ | so, the multi would add one, not override? (since the signatures differe) | ||
differ* | |||
jnthn | Thing htat's any or all of the auto-genrated ones though (accross all attributes) | ||
And maybe not a reference to multis. | |||
pmichaud | oh, that could be. | 16:26 | |
jnthn | omg my typing! | ||
pmichaud | that's a bit ambiguous :) | ||
jnthn | *think, that's | ||
pmichaud | jnthn: yes, I think you're right. | ||
since the earlier packages talk about "the autogenerated accessor", that implies there's only one. | |||
jnthn | *nod* | 16:27 | |
pmichaud | I'd prefer that paragraph I quoted above to say "You may write your own accessors to suppress the autogenerated ones." | ||
as opposed to "override". | |||
unless we assume the autogenerated ones always exist, and we are indeed overriding. | |||
ash_ | any or all, so $. makes a accessor, but $.a is rw; makes an accessor and assigner(??) so is that the only case you'd have more than 1 auto generated function? | ||
jnthn | I think suppress would be a better word, yes. | ||
ash_: no, it's still making one thingy | 16:28 | ||
ash_: with "is rw" it's just an lvalue thing. | |||
pmichaud | ash_: "is rw" just means the accessor is also "is rw" | ||
cxreg | pmichaud: my goal was to leave the accessor, but supply a proto too | 16:29 | |
pmichaud | cxreg: right. The spec is a bit ambiguous here. | ||
cxreg: If we assume that any same-named method suppresses the accessor, then you'd have to write your own accessor. | |||
[particle] | if you don't supply proto or multi, it assumes only, no? | 16:30 | |
ash_ | yeah, it sounds like we should ask for clarification on this one | ||
pmichaud | anyway, in the meantime I suggest using $!b and explicitly providing the methods you want. :) | ||
cxreg | pmichaud: i'm such a troublemaker :) | ||
pmichaud | cxreg: we all are. | ||
moritz_ | hugme: tweet rakudoperl current state of #perl6 database access with #rakudo: tinyurl.com/p6db-blog | 16:32 | |
hugme hugs moritz_; tweet delivered | |||
16:35
TiMBuS|Away left,
rlb3 left
|
|||
pmichaud | I have to run for a bit, so I'm pushing my IO::ArgFiles patch without a full spectest. ("No! Bad pumpking!") I'll spectest in about 30, feel free to revert if I've broken anything. | 16:36 | |
bbi30 | |||
16:38
colomon joined
|
|||
dalek | kudo: 8e7bf30 | pmichaud++ | src/core/IO.pm: Add IO.open to allow attaching an existing IO object to a file. Also now |
16:39 | |
kudo: 7df2c27 | pmichaud++ | src/ (2 files): Refactor IO::ArgFiles. |
|||
moritz_ | pmichaud: $*ARGFILES understood - as meaning $*IN already | 16:40 | |
16:40
dakkar left
|
|||
moritz_ | oh | 16:43 | |
now open() does | |||
I wonder if that's a security risk or not | |||
16:45
ruoso left
|
|||
jnthn | hmm | 16:45 | |
Yeah, I thought open wasn't going to have the "magical" chars like in Perl 5... | |||
moritz_ | maybe we should have a named argument that does magic for convenience | 16:46 | |
speaking of perl 5 oddities... | |||
perl -pe '' '| echo "pwnd"' | |||
pwnd | |||
-p uses magic <> | 16:47 | ||
which interprets shell meta characters | |||
16:53
tadzik left
|
|||
pmichaud | I was just copying the p5 semantics; didn't see anything that claimed p6 was different in this respect. | 16:54 | |
pmichaud runs 'make spectest' to validate his push. | 16:55 | ||
moritz_ | well, perl 6 open() is more like perl 5's 3-argument open | ||
pmichaud | anyway, I'm fine if we need to patch .open() -- getting ArgFiles to work was my primary goal here. | 16:57 | |
16:58
amkrankruleuen joined
|
|||
pmichaud | also, I like that ArgFiles can be attached to any array, not just $*ARGS | 16:58 | |
amkrankruleuen | Hello. | ||
pmichaud | my $handle = IO::ArgFiles.new(:args['a', 'c', 'x']); # read from 'a', then 'c', then 'x' | 16:59 | |
rakudo: say $*IN.get; | 17:00 | ||
p6eval | rakudo 806efc: OUTPUT«Land der Berge, Land am Strome,» | ||
pmichaud | rakudo: say $*ARGFILES.get; | 17:01 | |
p6eval | rakudo 806efc: OUTPUT«Method 'get' not found for invocant of class 'Failure' in main program body at line 11:/tmp/OsQyDHIYkj» | ||
pmichaud | ah, I think that @*ARGS and $*ARGFILES initialization is in the wrong place. ;-( | ||
moritz_ | works locally here | ||
pmichaud | for some reason it's in UNIT_START -- needs to be much more global than that. | 17:02 | |
fails in the repl | |||
which is probably why it fails in p6eval | |||
colomon | can somebody reply to this? justrakudoit.wordpress.com/2010/06/.../#comments | 17:03 | |
bbkr | how this should work? can i use $*ARGFILES.lines to get lines of all file names given in ARGS? | ||
colomon | (I'm in the middle of trying to get a release out for $work) | ||
pmichaud | bbkr: yes. | ||
bbkr | pmichaud: awesome, more dataprocessing power | ||
pmichaud | and lines() is supposed to be a shortcut for $*ARGFILES.lines | ||
17:04
cygx joined
|
|||
pmichaud | (replaces the p5 <> operator) | 17:04 | |
17:04
thebird left
|
|||
frettled | pmichaud: ooh, that's nice | 17:04 | |
moritz_ | rakudo: say lines().elems | 17:05 | |
bbkr | pmichaud: even more awesome. will it accept ranges as well? "lines(1, 2, 32..45, 78 ..*)" ? | ||
p6eval | rakudo 806efc: OUTPUT«No applicable candidates found to dispatch to for 'lines'. Available candidates are::(IO $filehandle, Any :bin($bin) = { ... }, Any :enc($enc) = { ... }, Any :nl($nl) = { ... }, Any :chomp($chomp) = { ... }):(Str $filename, Any $limit = { ... }) in main program body at | ||
..line 11… | |||
moritz_ | also works locally here | 17:06 | |
pmichaud | right | ||
17:06
patspam left,
patspam1 joined
|
|||
pmichaud | the problem is that @*ARGS and $*ARGFILES aren't being initialized at the proper time for the repls | 17:06 | |
17:06
patspam1 is now known as patspam
|
|||
pmichaud | bbkr: lines[1, 2, 32..45, 78..*] # maybe | 17:06 | |
17:09
justatheory left
|
|||
jnthn | rakudo: say $*IN.lines[0,2,4....*] | 17:10 | |
p6eval | rakudo 806efc: OUTPUT«===SORRY!===Unable to parse postcircumfix:sym<[ ]>, couldn't find final ']' at line 11» | ||
bbkr | rakudo: sub foo { return 1,2,3}; say foo[0,2]; # just checking if sub output can be indexed without . | ||
p6eval | rakudo 806efc: OUTPUT«13» | ||
jnthn | rakudo: say $*IN.lines[0,2,4...*] | ||
rakudo: say $*IN.lines[0,2,4...100] | |||
p6eval | rakudo 806efc: ( no output ) | 17:11 | |
rakudo 806efc: OUTPUT«Land der Berge, Land am Strome,Land der Hämmer, zukunftsreich!Volk, begnadet für das Schöne,vielgerühmtes Österreich!Heiß umfehdet, wild umstritteneinem starken Herzen gleich.hoher Sendung Last getragen,vielgeprüftes Österreich!Mutig in die neuen Zeiten,arbeitsfroh und | |||
..hoffnungsrei… | |||
jnthn | heh :-) | ||
pmichaud | hint: try a range, not a series. | ||
colomon | jnthn: for sure infinite series are never going to work in [ ], are they? | ||
jnthn | pmichaud: I wanted every other line. ;-) | ||
colomon: No, I think not. :-) | |||
colomon | pmichaud: does range work now? | ||
jnthn | colomon: I realized that rihgt after typing it. :-) | ||
colomon | rakudo | ||
rakudo: my @a = 1, 2, 3; say @a[1..*] | |||
17:11
kensanata left
|
|||
pmichaud | colomon: no, it probably doesn't work yet either. | 17:12 | |
p6eval | rakudo 806efc: ( no output ) | ||
colomon | drat. I was hoping someone had fixed that and I hadn't noticed. | ||
cygx | moritz_: I just wanted to mention that I'm still on track with try.rakudo.org - I might actually get a (somewhat) working prototype done as early as tomorrow, but barring major disasters definitely this week | ||
phenny | cygx: 28 Jun 17:51Z <ash_> tell cygx how is the backend going? Is there anyway I could start testing any of it with the backend? I can run it on my server, also i don't mind if some of the responses are faked for now | ||
ash_ | cygx: could you not use a cookie to store the session ID instead of putting it into the template? (it requires less parsing, and no special template variables) | 17:14 | |
cygx | ash_: sure, could be easily done; but the problem is that I wanted to allow multiple different sessions from the same client | 17:15 | |
ash_: for now, just put __RAKUDO_SHELL__ID__ anywhere you want the id to appear | 17:16 | ||
ash_ | alright, can do | ||
17:17
patspam left
|
|||
cygx | I also did some major re-thinking of the backend design, and I think I figured out a way to do it that would work in Rakudo; I'll do it in Perl5 for now so that I can re-use code from the frontend | 17:18 | |
I don't think porting the frontend is feasible as long as there's no mod_rakudo for Apache, though (startup times :() | |||
17:18
envi^home left
|
|||
ash_ | but there is a mod_parrot | 17:19 | |
(which can load rakudo) | |||
www.parrot.org/mod_parrot | |||
cygx | last I looked, mod_parrot was seariously out-of-date... | ||
ash_ | ah | ||
i haven't tried it, i just know someone started it at one point | |||
17:23
Cyrus joined
|
|||
ash_ | cygx: is it okay to get the results via javascript? | 17:26 | |
cygx | ash_: sure; the idea is to use long polling to have a persistent connection to the server so new output can be passed along as soon as it's ready | 17:28 | |
alexbobP | long polling? | 17:29 | |
is that when the server holds up the connection as long as possible when there's no data | |||
and the client reconnects as soon as a connection breaks? | |||
ash_ | yea | ||
alexbobP | I did that in second life once for a script that was accessing web data | 17:30 | |
cygx | alexbobP: en.wikipedia.org/wiki/Comet_%28prog...ng_polling | ||
alexbobP | I found that connections from their servers would time out after, like, 30 seconds, so I made a php script that holds for up to 25 seconds before sending back emptiness | ||
had no idea that it had a name at the time :P | 17:32 | ||
cygx | alexbobP: imo the most elegant solutionimo would be a chunked XHR, which is basically only supported by firefox :( | ||
*solution | |||
alexbobP | cygx: what's that? | ||
ash_ | if everyone had a modern browser i'd say use a websocket | 17:33 | |
17:33
pyrimidine joined
|
|||
ash_ | but not everyone has an html5 browser | 17:33 | |
huf | that's a constant | 17:34 | |
at least, as long as the web is evolving, "not everyone has a modern browser" will remain true | |||
cygx | alexbobP: http supports partial transfer using chunks; you'll get this if you call flush() fromn php but the problem is that the client-side code won't trigger apropriate events in most browsers | ||
alexbobP | cygx: ah, I see | ||
[particle] | if the web stops changing, we'll all upgrade our browsers? | ||
cygx | before AJAX was around, web developers would use hidden iframes and chunked transfer to get persistent connections | 17:35 | |
I prefer long polling because it's cleaner, imo | |||
alexbobP | http is a protocol designed for fetching existing pieces of data, that's the issue | ||
ash_ | cygx: gmail still uses that trick | ||
moritz_ | cygx++ # try.rakudo.org hacking | ||
alexbobP | we will be doing hacks (like reconnecting after getting the chunk) until there is a new protocol that works right | ||
cygx: chunked transfer sounds like it's a subset of long polling, since you're still holding a connection open | 17:36 | ||
cygx | moritz_: could you see if IO::Pty::HalfDuplex works on the intended server - couldn't get it to work on the *nix box I have access to :( | ||
ash_ | WebSocket is the new protocol to solve that problem in a standard way, till then you need long polling, a hidden iframe, or javascript comet | ||
pugssvn | r31518 | moritz++ | [t/spec] switch reduce.t to planless testing (last patch forgot to update its plan) | 17:37 | |
moritz_ | cygx: will try | ||
cuppe | rakudo: say first {/B/ and !/F/}, "BED" # is this supposed to work? | ||
cygx | ash_: comet is the generic term for the various techniques like log polling/chunked transfer and not a seperate thing ;) | ||
p6eval | rakudo 7df2c2: OUTPUT«Method 'match' not found for invocant of class '' in 'Regex::Bool' at line 5186:CORE.setting in 'prefix:<!>' at line 351:CORE.setting in <anon> at line 11:/tmp/LnI9T39R9M in 'Block::ACCEPTS' at line 5129:CORE.setting in 'infix:<~~>' at line 322:CORE.setting in | ||
..'Any::fir… | |||
moritz_ | cygx: at least all tests pass | 17:40 | |
cygx: do you need any more testing than that? | 17:41 | ||
cygx | moritz_: that's good to hear, but I still need to find a machine I can develop on :( | ||
moritz_ | cygx: I can give you an account there | ||
cygx | moritz_: that would be easiest for me, please do | 17:42 | |
pmichaud | cuppe: yes, that should probably work. I suspect an error in Regex::Bool | ||
cuppe | works if you change first to grep | 17:43 | |
rakudo: say grep {/B/ and !/F/}, "BED" | |||
17:43
ashleydev left
|
|||
p6eval | rakudo 7df2c2: ( no output ) | 17:43 | |
cuppe | yeah | ||
ash_ | hmmm cygx i setup my server on my computer (running locally) and its not giving any response back, is there some way i can test that my computer is working right? | 17:44 | |
pmichaud | shouldn't that have said "BED"? | ||
moritz_ | it should have | ||
pmichaud | I still get the error here locally. | ||
ash_ | err, the try.rakudo.org code is running on my computer, thats what i mean | ||
pugssvn | r31519 | moritz++ | [t/spec] un-TODO a passing test for rakudo | ||
cygx | ash_: the code in the repository is somewhat... incomplete ;) | 17:45 | |
pmichaud | it's the prefix:<!> that is causing problems. | ||
ash_ | alright, i just wanted to start integrating my code with yours | ||
cuppe | pmichaud: yeah I noticed it was the ! specifically. with grep I don't get the error, it's just silent | ||
pmichaud | I get the error with grep also. | ||
cygx | ash_: I basically scrapped the old code once I decided on how to do the backend so that I could re-use the frontend code | 17:46 | |
cuppe | weird, I don't. my version is just a few days old | ||
pmichaud | .....and the problem is that prefix:<!> is introducing a new context that has a $_ that isn't the $_ we want to match. | 17:47 | |
moritz_ | why does it introduce a new context? | ||
pmichaud | every block has its own $_ | 17:48 | |
and prefix:<!> is defined as | |||
ash_ | cygx: we should come up with an api for our communication that we both follow, like input requests go to /send?id=sesison_id with X data, and Y expected result | ||
pmichaud | our multi prefix:<!>(Mu $a) { $a.Bool ?? False !! True; | ||
} | |||
so when the regex ($a) gets .Bool invoke on it, it's currently doing a contextual find for $_ and getting the one from prefix;<!> | |||
colomon | ooooo | ||
moritz_ | but that evaluates $a in the original context, no? | ||
at least it should | 17:49 | ||
pmichaud | not if $a.Bool is using a contextual | ||
(which it is) | |||
colomon | $a in the original context is a regex | ||
pmichaud | $a *is* a regex | ||
that's not the problem | |||
the problem is that Regex.Bool does a contextual lookup of $_ | |||
moritz_ | ah | ||
pmichaud | I guess it needs to do an outer lookup instead | ||
moritz_ | right | 17:50 | |
pmichaud | but *that's* going to cause some issues also. | ||
colomon | special version of prefix:<!> which takes a regex? | ||
would that work? | |||
[Coke] | (mod_parrot) could use some love. I can put you in touch with the author if you like. | ||
pmichaud | colomon: not really. | ||
PerlJam | Is lift implemented? | ||
moritz_ | colomon: sounds more like a workaround, not like a solution | ||
PerlJam: no | 17:51 | ||
pmichaud | colomon: I think we have to fix Regex.Bool, not the operators that enforce boolean context. | ||
it's more a question of | |||
my $regex = /.../; | |||
ash_ | [Coke]: that would be cool, especially if it came out around Rakudo*, it might be nice to have another toy in the * toolbox | ||
pmichaud | { if $regex .... } | ||
do we use the $_ from the block in which the regex was defined, or the one in which it was evaluated? | |||
[Coke] | ash_: it's jhorwitz - if you want an intro, ping me at [email@hidden.address] and I'll forward intros. | 17:52 | |
PerlJam | pmichaud: the latter surely. | ||
pmichaud | PerlJam: in which case it's dynamic, not lexical. | ||
lue | ohai o/ | ||
pmichaud | and prefix:<!>($regex) would be evaluating $regex inside of the code for prefix:<!> | ||
the same problem exists for prefix:<?> btw | 17:53 | ||
say grep {/B/}, "BED" | |||
rakudo: say grep {/B/}, "BED" | |||
p6eval | rakudo 7df2c2: OUTPUT«BED» | ||
pmichaud | rakudo: say grep {?/B/}, "BED" | 17:54 | |
p6eval | rakudo 7df2c2: ( no output ) | ||
cygx | ash_: there already is an api in place, at least for sending input; how output is returned is not implemented yet because I first implemented the non-JS version | 17:55 | |
ash_: I'll write it up for you when I upload my current version later today | |||
17:55
davidfetter joined
|
|||
davidfetter | !fakedbi | 17:55 | |
no info bot? | 17:56 | ||
pmichaud | no info bot. | ||
cygx | ash_: basically, you send a POST to /send?<session-id> and get different HTTP status codes depending on the backend state | ||
17:58
justatheory joined
|
|||
pmichaud | I'm not even certain that 'lift' truly helps in this case. | 18:00 | |
lue | rakudo: say ("hi" andthen 0 andthen "hiagain") | 18:02 | |
p6eval | rakudo 7df2c2: OUTPUT«===SORRY!===Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 11» | ||
pmichaud | huh? | ||
that's.... weird. | |||
lue | hrm, I guess andthen and orelse are still NYI. | 18:03 | |
pmichaud | we can at least warn about them. | ||
lue | pmichaud: I agree, weird error. | ||
PerlJam | weird that it's parsed as postcircumfix | 18:04 | |
(or attempted to parse) | |||
lue | would andthen and orelse be defined in Grammar.pm? | ||
pmichaud | lue: I think so -- check STD.pm6 | 18:05 | |
lue checks | |||
because it isn't, BTW. | 18:06 | ||
pmichaud | right, I'm sure it isn't currently defined. | ||
We should define them in Grammar.pm and then have them fail. | |||
lue | From STD.pm6 (only occurence of andthen): | 18:08 | |
token infix:sym<andthen> | |||
{ <sym> <O(|%loose_and)> } | |||
so yes, it should be defined (/me defining) | |||
[Coke] | is there a difference between foo( :name('bar') ) and foo( :name<bar> ) ? both variants are used in the Actions.pm for rakudo, it seems. | 18:09 | |
pmichaud | there's no difference for that case | 18:10 | |
PerlJam | [Coke]: syntax :) | ||
pmichaud | but :name<one two> is the same as :name(['one', 'two']) and not :name('one two') | ||
[Coke] | pmichaud: might be worth going through the code base and picking one type, neh? | 18:11 | |
lue | hrm, any place I can get the different pasttypes? (all the and/or stuff has them) | ||
[Coke] | lue: in parrot, src/compiler/pct/src/PAST/Node.pir | ||
pmichaud | [Coke]: might be. I don't see it as an important sort of consistency. | ||
18:11
clintongormley left
|
|||
pmichaud | lue: don't try to associate a pasttype with it -- there isn't one. | 18:12 | |
lue | ah, ok. | ||
pmichaud | for now it will just have to fail. | ||
[Coke] | pmichaud: I'm the sort of guy that will go through p5 code and insure that we use '' everywhere we can. =-) | 18:13 | |
[particle] | instead of letting Perl::Critic do that for you? | 18:15 | |
PerlJam | [particle]: Perl::Critic groks NQP? | ||
oh, he did say p5 code | |||
[Coke] | [particle]: Perl::Critic does not, last I played it with, edit the code. | 18:16 | |
sorear | hello #perl6 | 18:17 | |
phenny: tell pmurias pong. | 18:18 | ||
phenny | sorear: I'll pass that on when pmurias is around. | ||
sorear | hey, it's alexbobP | 18:22 | |
18:23
mberends joined,
sftp left
|
|||
lue | where would I define andthen and orelse so it could fail? (after defining in Grammar.pm, still gives the circumfix err) | 18:23 | |
colomon | does qqx{ } not work yet in master? | 18:24 | |
18:24
supernovus joined
|
|||
moritz_ | rakudo: say qqx/ echo { 2 + 3 } / | 18:24 | |
p6eval | rakudo 7df2c2: OUTPUT«operation not permitted in safe mode in <anon> at line 1:/tmp/1DQPik5SJC in main program body at line 11:/tmp/1DQPik5SJC» | ||
colomon | that actually seems promising... | ||
moritz_ | works, yes | ||
pmichaud | works locally | 18:25 | |
18:25
sorear sets mode: +oo colomon mberends
|
|||
colomon | I'm trying to debug a $work script which worked fine under master. | 18:25 | |
gives me | |||
maximum recursion depth exceeded | |||
in 'postcircumfix:<{ }>' at line 1 | |||
under aa015ad043fc11ca10aecaf866b4158bea8edd47 | |||
pmichaud | are the curlies next to something that looks like a variable? | ||
18:26
sorear sets mode: +v hugme
|
|||
moritz_ | colomon: typically happens on %hash{$/} | 18:26 | |
colomon | moritz_: bingo! | ||
pmichaud | also $foo{...} | ||
18:26
IllvilJa joined
|
|||
lue will assume operators.pm | 18:26 | ||
colomon | script is working now, moritz_++ | ||
alexbobP | hey, sorear! | ||
pmichaud | lue: operators.pm, yes. | 18:27 | |
lue: although you should no longer be getting the postcircumfix err, so something is very amiss here. | |||
alexbobP | sorear: s'been a while. I guess we've been cohabitating in #interhack all this time, but nobody has said anything there for months XD | ||
supernovus | Has a method for allowing multiple versions of a library (as per S11) been spec'ed for Rakudo? | ||
sorear | supernovus: no. | ||
PerlJam | supernovus: S11 is the spec ;) | ||
pmichaud | supernovus: I have some general ideas about how we'll do it, but it's not a priority at present. | ||
primarily we'll have to get rid of our namespace-based classes. | 18:28 | ||
(in the parrot sense of "namespace") | |||
supernovus | Ah, I was going to look at helping with that feature, but I don't know how the parrot side of things work :( | 18:29 | |
lue | well, operators.pm says something about ||, and, or, and && as being weird in the grammar. | 18:30 | |
pmichaud | supernovus: we have a lot of prep work to do with lexically-scoped classes before I think we can justifiably address versioned modules | ||
lue: they are -- those are the :pasttype's you saw earlier. | |||
lue: the trick with ||, and, or, andthen, etc. is that they have to "thunk" their arguments | |||
i.e., unlike most other operators, these operators have to evaluate the arguments after the operation has started, not before | 18:31 | ||
anyway, the postcircumfix error reads like a parsing error, so it's a problem in the grammar and not in the operators.pm file. | 18:32 | ||
18:32
clintongormley joined
|
|||
lue | IIUC, andthen and orelse are defined as being loose_and and loose_or in the spec. | 18:33 | |
pmichaud | that's their precedence level, yes. | ||
lue | which should have list associativity, not left like Grammar.pm says. | ||
pmichaud | that shouldn't make a difference to parsing either | 18:34 | |
lue | [ I changed it last night (just to see what happens) and every spectest ended up failing :) ] | ||
pmichaud | right. Our implementations of 'and' and 'or' aren't list operators yet. | 18:35 | |
we can make them that way when we decide how we want to generally handle thunked arguments in Rakudo and/or Perl 6 | |||
lue | *sigh* even after defining them in core/operators.pm, : | ||
Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 1 | 18:36 | ||
timbunce | std: class Foo { ... }; role Foo { ... }; | ||
p6eval | std 31519: OUTPUT«ok 00:01 110m» | ||
pmichaud | lue: I did say that the problem isn't in operators.pm. | ||
*tap* *tap* Is this thing on?!? | |||
moritz_ | std: package Foo { ... }; class Foo { } | ||
p6eval | std 31519: OUTPUT«ok 00:01 107m» | ||
timbunce | do classes and roles have separate namespaces? | ||
pmichaud | timbunce: no. | ||
moritz_ | no | ||
lue | I heard you :). I thought though that explicitly redefining it would help. hrm... | ||
timbunce | so shouldn't "class Foo { ... }; role Foo { ... };" be an error? | 18:37 | |
pmichaud | timbunce: yes, it should. | ||
oh | |||
wait | |||
not if you explicitly use the ...'s | |||
timbunce | pmichaud: because? | ||
pmichaud | rakudo: class Foo { has $.a; }; role Foo { method b() { ... } }; | ||
p6eval | rakudo 7df2c2: OUTPUT«Null PMC access in isa() in main program body at line 1:/tmp/GV_zXZUdIr» | ||
pmichaud | bah. | 18:38 | |
[Coke] | colomon: perhaps it might be worth using a StringBuffer when doing concats of big lists. | ||
pmichaud | timbunce: I think S11 says something about this... checking. | ||
colomon | [Coke]: that indeed seems very likely, if we do have a working StringBuffer. :) | ||
pmichaud | but essentially "class Foo { ... }" simply declares Foo as a package-ish identifier, iirc. | ||
it doesn't explicitly say 'Foo' has to be a class. | 18:39 | ||
std: class Foo { ... }; role Foo { ... } | |||
p6eval | std 31519: OUTPUT«ok 00:01 107m» | ||
pmichaud | the standard grammar thinks it's okay. :) | ||
moritz_ | phenny: tell masak github.com/moritz/modules.perl6.org - my approach at phasing out the web/ folder from proto | ||
phenny | moritz_: I'll pass that on when masak is around. | 18:40 | |
18:41
amkrankruleuen left,
plainhao left
|
|||
[Coke] | colomon: parrot does. feel free to borrow it. =-) | 18:41 | |
PerlJam | pmichaud: S12:52 | ||
[Coke] | (worth checking to see if it's faster than Str ~ Str , anyway.) | ||
18:44
supernovus left
|
|||
pmichaud | Ah, what I'm thinking of is S10:128 | 18:45 | |
"Such empty packages may be subsequently be redeclared as any other | 18:46 | ||
package-like object (module, class, etc.), and no redeclaration warning will be issued | |||
for such a redeclaration." | |||
I'm not sure that exactly applies to timbunce++'s question. | |||
PerlJam | I don't think the spec is explicit about timbunce's case. | 18:47 | |
pmichaud | However, since a role can function as a class, and vice-versa, it seems to me that declaring a package via either role/class could be considered legal. | ||
cygx | is someone working on #58258 (ie making the REPL useful?) | 18:48 | |
pmichaud | cygx: me. | ||
cygx: I have to do some significant refactors in rakudo to get it to work properly. | |||
18:48
kfo_ joined
|
|||
pmichaud | cygx: but it should be done by July 9th. | 18:48 | |
timbunce | pmichaud: that's handy. What about the case where Foo is already defined as a role, say, and then perl sees "class Foo { ... }". The spec doesn't cover that. It sounds like the intent is that it wouldn't complain. | ||
pmichaud | I would think it wouldn't complain. | 18:49 | |
cygx | pmichaud: that's promising - otherwise, try.rakudo.org would have to suffer the same shortcomings as I'm just piping the input to a rakudo process | ||
pmichaud | I don't think we want the person writing "class Foo { ... }" to make sure "Foo" is declared to have to recognize that Foo is in fact a role. | ||
PerlJam | std: role Foo { hash $.x; }; class Foo { ... } | 18:50 | |
p6eval | std 31519: OUTPUT«===SORRY!===Illegal redeclaration of symbol 'GLOBAL::<Foo>' (from line 1) at /tmp/PjYv7cjXDd line 1:------> role Foo { hash $.x; }; class Foo ⏏{ ... }Illegal redeclaration of symbol 'Foo' (see line 1) at /tmp/PjYv7cjXDd line 1:------> | ||
..r… | |||
timbunce | pmichaud: that's exactly the situation I'm in :) | ||
pmichaud | std: class Foo { hash $.x; }; class Foo { ... } | ||
p6eval | std 31519: OUTPUT«===SORRY!===Illegal redeclaration of symbol 'GLOBAL::<Foo>' (from line 1) at /tmp/5uTXFoqCyV line 1:------> class Foo { hash $.x; }; class Foo ⏏{ ... }Illegal redeclaration of symbol 'Foo' (see line 1) at /tmp/5uTXFoqCyV line 1:------> | ||
..[32… | |||
pmichaud | looks like a std bug to me. | ||
timbunce | Anyone here know java and want to help out with my java2perl6 utility (for DBDI)? | 18:51 | |
18:51
kfo left
|
|||
pmichaud | cygx: fwiw, the REPL in NQP already solves RT #58258 | 18:52 | |
so if you wanted to try it out with NQP, that might be a valid approach :-) | |||
PerlJam | timbunce: I wish. Having DBDI and DBI and some DBDs worked out would be quite cool to have before R* | ||
pmichaud | (and if you can get it working in nqp, then there's a good chance that you could provide an interactive web interface for all of Parrot's PCT-based languages) | ||
s/in/with/ | |||
timbunce | PerlJam: that would be nice, though I've no idea about timescales. I'm hoping FakeDBI can at least "tick the box" for R*. At some point FakeDBI can migrate to using DBDI, once it's usable. | 18:54 | |
PerlJam | timbunce: yeah ... but for PR it should probably just be called DBI :) | 18:55 | |
pmichaud: earlier was a people bug s/hash/has/ | |||
pmichaud | PerlJam: I'm not sure I agree with that last remark. | ||
PerlJam | pmichaud: why not? | 18:56 | |
pmichaud | (calling it DBI) | ||
it might be implying something that isn't true. | |||
timbunce | I think FakeDBI doesn't have the right foundations for that. It's a pity the name is so blunt though. | ||
cygx | pmichaud: sorear++ suggested using IO::Pty::HalfDuplex, ie the web shell will workd with any program which uses blocking io to read from stdin (which I'm assuming the Rakudo REPL does/will do?) | ||
pmichaud | I'd hate for someone to say "Perl 6 has DBI already" | 18:57 | |
cygx: rakudo REPL blocks on stdin, yes. | |||
PerlJam | yeah, I guess that would be sort of a "bait and switch" kind of situation | ||
cxreg | i'm having a hell of a time declaring a lvalue method | ||
pmichaud | cxreg: what sort of lvalue method do you need? | 18:58 | |
18:58
hercynium left
|
|||
timbunce | Something like ProtoDBI would be a better name. Still, I can't grumble. I'm delighted it's there and it'll certainly help me down the road. | 18:58 | |
PerlJam | timbunce: what needs doing for DBDI exactly? | ||
pmichaud | "EarlyDBI" | ||
"SimpleDBI" | |||
cxreg | this is back to earlier, when i wanted a proto for one. i gave up on that and made a private member, and want a lvalue sub to make my own accessor. | ||
timbunce | pmichaud: yeap, anything like that would be fine. | 18:59 | |
[Coke] | timbunce: I have some java experience and would be willing to help out. | ||
pmichaud | cxreg: most methods in rakudo act like lvalue methods already, I think. | ||
cxreg | hrm | ||
timbunce | [Coke]: great, please join #dbdi so I can pick your brains :) | 19:00 | |
pmichaud | rakudo: class XYZ { has $!x; method x() { $!x } }; my $a = XYZ.new; $a.x = 3; say $a.x; | ||
p6eval | rakudo 7df2c2: OUTPUT«3» | ||
pmichaud | yes, that's a bug. | ||
but it's a bug you could exploit until we have "is rw" working on methods. :-) | |||
ash_ | which part of it is a bug? | ||
cxreg | heh | ||
ash_ | whats the right way? | ||
pmichaud | ash_: method x() is rw { ... } | ||
ash_ | got ya | ||
cxreg | pmichaud: i dont understand, why did the proto have no args? | 19:01 | |
pmichaud | cxreg: what proto? | ||
cxreg | er, the sub declaration | ||
"method x()" | |||
pmichaud | doesn't need any | ||
you're returning the container | |||
cxreg | oh.. | ||
pmichaud | you're not defining how to store a value into it | ||
cxreg | i misunderstood what that code did | ||
19:02
pyrimidine left
|
|||
cxreg | so really the issue is that "method ... is rw" is not implemented yet | 19:02 | |
timbunce | PerlJam: I'll write up a blog post in the next day or so. Basically get java2perl6 to produce a set of perl6 class/role modules that match the JDBC API and then start writing implementations that match those interfaces. | ||
pmichaud | cxreg: well, that's *an* issue, yes. | ||
but note that an "is rw" method never sees the value being assigned to the thing it returns as rw | |||
cxreg | sigh | 19:03 | |
pmichaud | what you may be looking for instead is proxy values (in S06) | 19:04 | |
i.e., a proxy value has a STORE method that says what to do when something attempts to store a value in the proxy | |||
cxreg | i wanted callnext :p | ||
pmichaud | (and proxy values are still somewhat conjectural in the spec) | 19:05 | |
moritz_ | cxreg: it's spelled nextwith | 19:07 | |
cxreg | callsame, rather | 19:08 | |
whats nextwith? | |||
ash_ | next in the multi-dispatch with different parameters | ||
cxreg | oic | ||
moritz_ | next candidate, called with a specified signature | ||
cxreg | ok lunch. i'll hammer on this again later. | 19:09 | |
ash_ | rakudo: multi foo(Int $a) { nextwith("Hi"); }; multi foo(Str $b) { say $b; }; foo 3; | ||
p6eval | rakudo 7df2c2: OUTPUT«Null PMC access in clone() in 'foo' at line 1 in main program body at line 11:/tmp/GrUAuBvmhO» | ||
ash_ | hmm | 19:10 | |
does nextwith not work right now? | |||
pmichaud | ash_: I don't know. | ||
ash_: looks like "no." | |||
moritz_ | I think it's a bit broken, but your example won't work anyway | ||
ash_ | well, i could of written it wrong | ||
moritz_ | because the first dispatch limits it to the (Int $a) candidate | 19:11 | |
jnthn | ash_: It works | ||
ash_: But it should die more gracefully | |||
Or maybe shouldn't die at all. | |||
moritz_ | so the candidate list is empty then | ||
jnthn | Anyway, what moritz_++ said. | ||
pmichaud | rakudo: multi foo(Int $a) { nextwith("hi"); }; multi foo($b) { say $b; }; foo 3; | 19:12 | |
ash_ | ah, i guess that should of been callwith not nextwith | ||
p6eval | rakudo 7df2c2: OUTPUT«Null PMC access in clone() in 'foo' at line 1 in main program body at line 11:/tmp/W313wCwRs_» | ||
pmichaud | how about that one? | ||
19:15
felliott joined
|
|||
jnthn | ...that should work | 19:18 | |
Oh, it probably did | |||
oh, wait | |||
Hm | |||
ash_ | i thought nextwith redispatched (like a new call completely) | 19:19 | |
kinda like just doing (in that case) foo(args); (just without having to write the sub's name | 19:20 | ||
jnthn | rakudo: multi foo(Int $a) { say "here"; nextwith("hi"); }; multi foo($b) { say "and here"; say $b }; foo(3); | ||
p6eval | rakudo 7df2c2: OUTPUT«hereNull PMC access in clone() in 'foo' at line 1 in main program body at line 11:/tmp/IIg0PyIgEa» | ||
jnthn | No, that's certainly wrong. | ||
oh! | |||
I bet it works fine on methods. | |||
Just not multi subs for some reason. | |||
ash_ | ah, but it should work with mult subs too, right? | 19:22 | |
jnthn | yeah | ||
I think that's NYI for now though | |||
And I can't really be bothered to invest too much time in it given spec changes mean I'm going to have to re-do the whole dispatchy stuff anyway in a bit. | |||
ash_ | no worries | 19:23 | |
just wonder if it was supposed to be right | |||
jnthn | The one pm pasted shoulda worked, yes | ||
ash_ | why wouldn't the orginal? | 19:24 | |
jnthn | Because you're walking through a candidate list | 19:30 | |
And the list was formed based on the arguments you initial passed. | 19:31 | ||
ash_ | i think i understand, thanks | 19:32 | |
19:33
Guest80095 left
19:36
rgrau left
|
|||
ingy | greetings | 19:36 | |
davidfetter waves to mr. döt net | 19:37 | ||
19:37
justatheory left
19:39
justatheory joined
|
|||
Guest23195 | hmm this blogs.perl.org/users/martin_berends...bases.html | 19:40 | |
19:40
Guest23195 is now known as kaare_
|
|||
kaare_ | I would have thought that cxreg's implementation using libpg would be fast and right? | 19:41 | |
19:41
justatheory_ joined,
justatheory left,
justatheory_ is now known as justatheory,
synth joined
|
|||
kaare_ | What's the ++ og using Pg.pir if you have direct access through libpg? | 19:42 | |
og -> of | |||
Or doesn't it really use direct library calls? | 19:43 | ||
19:47
justatheory left
19:58
ilogger2 joined
|
|||
timbunce | S06 seems to have very little to say about the return type of a subroutine, like what the effect of defining a return type is. Is that specified elsewhere? | 20:01 | |
mberends | on incoming parameters, types are constraints that are checked at call time. Returns could be handled as an output parameter, subject to the same constraint type checking at runtime. | 20:05 | |
20:06
justatheory joined
|
|||
mberends | but the checking is NYI :( | 20:08 | |
timbunce | Can I say sub Foo (--> Container) to mean the sub returns an object that does the Container role? | 20:09 | |
mberends | rakudo: sub a(Str $s, --> Int){ $s.uc }; say a("Foo"); # should complain about no Int | ||
p6eval | rakudo 7df2c2: OUTPUT«FOO» | ||
timbunce | std: sub Foo (--> Container) | ||
p6eval | std 31519: OUTPUT«===SORRY!===Unable to parse signature at /tmp/RlLrIwYJqN line 1:------> sub Foo ⏏(--> Container)Couldn't find final ')'; gave up at /tmp/RlLrIwYJqN line 1:------> sub Foo (--> ⏏Container) expecting typenameParse | ||
..faile… | |||
mberends | std: class Container { ... }; sub Foo (--> Container) {...} | 20:11 | |
p6eval | std 31519: OUTPUT«ok 00:01 109m» | ||
timbunce | mberends: so role names can't be used to express return types? ever? | 20:12 | |
20:13
zamolxes joined
|
|||
pmichaud | I'm pretty sure that role names would be acceptable as return constraints. | 20:13 | |
mberends | timbunce: oh, sorry, I tried class instead of role. role should also be fine. | ||
std: role Container { ... }; sub Foo (--> Container) {...} | |||
p6eval | std 31519: OUTPUT«ok 00:01 109m» | ||
pmichaud | phone | ||
mberends | rakudo: role Container { ... }; sub Foo (--> Container) {...} | 20:14 | |
p6eval | rakudo 7df2c2: ( no output ) | ||
timbunce | ah, so my failure was because Container isn't predefined (yet), ok, thanks. | ||
20:14
dju_ joined
20:18
dju_ is now known as dju
|
|||
jnthn | Yes, role types are fine as return types | 20:36 | |
lue | pmichaud: would it be safe for me to experiment with getting := working, or will that be an exercise in futility? | 20:41 | |
pmichaud | lue: it's safe to experiment | 20:45 | |
lue | Alright. Time to head into my Molybdenum bunker (in case of BOOM) and start experimenting! | 20:48 | |
pmichaud | at its core, you want to do | 20:50 | |
(given 'source' and 'target' pmcs) | |||
$P0 = new ['ObjectRef'], source | |||
copy target, $P0 | |||
.return (target) | |||
you might try defining &infix:<:=> just with that to begin with, and see what works/breaks. | 20:52 | ||
I know that rebinding sources is likely to cause problems/confusion. | 20:53 | ||
(and possibly enough confusion that it's a good argument not to have := implemented to begin with.) | |||
oh wait, &infix:<:=> is defined in the settings?! | 20:54 | ||
that's.... going to make things much more difficult. | |||
jnthn | why? | ||
pmichaud | unless 'is ref' is working. | ||
jnthn | Just make sure the parameters are \$foo'd | ||
pmichaud | oh, is the backslash the new 'is ref'? | 20:55 | |
jnthn | pmichaud: "is parcel" but it's always written with \ these days, iirc | ||
pmichaud | okay, that might simplify it a bit. | ||
is it really a parcel? | |||
jnthn | No | ||
pmichaud | or just whatever argument gets passed. | ||
jnthn | It means "apply no context whatsoever to this" | ||
pmichaud | okay | ||
jnthn | Just binds exactly what was passed | ||
pmichaud | might not be so difficult then. | ||
jnthn | No, it should work | ||
We need it in the setting really | |||
pmichaud | yes, I know. | 20:56 | |
jnthn | Since it almost certainly wants to be a multi | ||
We already have some candidates | |||
So it should just be a case of filling out the one that currently throws an error saying that case is NYI | |||
pmichaud | yeah. I haven't figured out how to handle the $b := $a; $a := $x; case though. | 20:57 | |
we'll either need to put another level of indirection on our containers (ick), or find a way to rebind symbols in the lexpad (also ick) | |||
21:01
jferrero joined
|
|||
ash_ | pmichaud: is it hard (possible) to add your own phaser? | 21:01 | |
or to the world in general, i just figured pmichaud would know | |||
pmichaud | ash_: I'm not sure I understand "add your own phaser" | ||
you mean, add a new stage? | |||
(what I like to call a "phaser bank"?) | 21:02 | ||
ash_ | ummm yes? (not familiar with stage as its being used) | ||
pmichaud | give me an example of what you're wanting to do, then. | 21:03 | |
ash_ | role Foo { COMPOED { say 'here'; } }; $a does Foo; # would say 'here' now | 21:04 | |
COMPOSED* | |||
lue apparently made a big BOOM just walking to the bunker | |||
pmichaud | ash_: that would likely require a grammar modification and some other stuff. | ||
ash_: it's not (yet?) a simple thing to add a new phaser. | 21:05 | ||
21:05
pmurias joined
|
|||
ash_ | could i do that with a meta class? | 21:05 | |
if i made that like a sub | |||
instead of a phaser | |||
pugssvn | r31520 | lwall++ | [STD] simplify charname matching | 21:06 | |
r31520 | parse the \| parameter specially | |||
r31520 | unbreak the null pattern matcher | |||
pmichaud | iiuc, the metaclass controls composition, yes. | ||
ash_ | rakudo: role Foo { our sub COMPOSED { say 'here' }}; Foo::COMPOSED; # is there a way to call that sub? | 21:09 | |
p6eval | rakudo 7df2c2: OUTPUT«Can not find sub Foo::COMPOSED in main program body at line 1» | ||
cxreg | mberends: my Pg class is updated, now with many more methods, and commit/rollback | 21:11 | |
one issue I haven't solved yet is making AutoCommit commit when set to true | |||
due to various setbacks with multimethods and lvalue methods :/ | 21:12 | ||
mberends | cxreg++ very nice though | ||
cxreg: thanks, I'm very happy with what you've done | |||
cxreg | np :) I think it's ready for general inclusion, if you like | 21:13 | |
mberends | two things before that: 1. the repo has been renamed to MiniDBI, see backlog. and 2. have you also added a test script that evals 99-common.pl6 ? | 21:14 | |
cxreg | kaare_: one advantage of using Pg.pir is that you dont have to maintain your own thunks and NCI-fu, or depend on a middle layer like zavolaj | ||
oops, yeah still need to produce a test. i guess it requires instructions on stubbing out an empty db like the mysql test? | 21:15 | ||
mberends | yes, the postgresql example in zavolaj is the easiest to copy | 21:16 | |
the s/FakeDBI/MiniDBI/g in all files is almost ready to push | 21:17 | ||
cxreg | some of the links in your post are now or soon to be outdated btw | ||
mberends | yeah, I'll definitely revise the blog post :) | ||
... and rewrite some yapc::eu slides ;) | 21:18 | ||
jnthn | cxreg: But Pg.pir *is* a "middle layer" and it does pretty much what Zavolaj does for you. | 21:19 | |
mberends <- happy bunny | |||
cxreg | jnthn: fair enough. it's just that you already have it :) | ||
zavolaj++ btw | |||
dukeleto | does the *+* operator have a name? | 21:20 | |
cxreg | snowman? | ||
jnthn | *+* operator? | ||
mberends | starry-eyed ? | ||
pmichaud | "cheerleading plus"? | ||
cxreg | cheerleading jesus? | ||
cxreg ducks | 21:21 | ||
alexbobP | cheesus | ||
pmichaud | dukeleto: that's just a plain infix:<+> with two "whatever" operands. | ||
kaare_ | Perhaps Pg.pir has the advantage of support from the pl/parrot folks? | ||
dukeleto | pmichaud: aha! thanks for the explanation | ||
pmichaud | the whatever operands cause it to become a closure | ||
dukeleto | kaare_: i am pretty much "the pl/parrot folks", but there are a few other brave souls helping me. what is your question? | 21:22 | |
dukeleto is working on a blog post about PL/Perl6 and will mention the awesome work done with Pg.pir + friends recently | |||
cxreg | dukeleto: mberends has one up, maybe you could link it - blogs.perl.org/users/martin_berends...bases.html | 21:23 | |
kaare_ | dual: Yes, I meant you :-) I thought that maybe you maintain Pg.pir? | ||
dukeleto | kaare_: nope, I didn't write Pg.pir | ||
kaare_: according to svn blame, leo wrote most of it, with some patches from "The Usual Suspects" | 21:25 | ||
kaare_ | ok | 21:26 | |
mberends | FakeDBI is dead. Long live MiniDBI ! (well, not too long ;) | 21:30 | |
dukeleto | mberends++ | 21:31 | |
ash_ | FakeDBI got renamed? | 21:32 | |
mberends | yes :) now editing the blog posting | ||
jnthn | mberends: I prefer the new name. | 21:35 | |
timbunce | mberends: "Perl 5 DBI (v1) became hard to maintain and is no longer being actively developed" doesn't paint the right picture. There's a *lot* of work going on in the DBD::File area for example. Can you soften the wording? Something like "Perl 5 DBI (v1) is very widely used. The stability of the API is paramount so radical changes are unlikely." | ||
pmichaud | I greatly prefer the new name. | 21:37 | |
kaare_ | yeah, MiniDBI++ | ||
mberends | timbunce: thanks, doing it right now. :) | ||
cosimo_ | I was a bit surprised when i read "no longer being actively developed" | 21:38 | |
timbunce | mberends: also "translate the Java classes of JDBC into Perl 6" could lead people to think it's translating more than just the class/interface APIs. | ||
mberends | yes, that's wrong too | ||
timbunce | mberends: all it does is spit out .pm6 files that define roles with stub method definitions. Someone still has to write the code behind those stubs :) | 21:39 | |
mberends | heh, I half remembered that and forgot to write it. sorry, will fix :) | 21:40 | |
21:43
skids joined
21:45
tylercurtis joined
|
|||
kaare_ | night & | 21:49 | |
21:49
pnate2 joined,
hercynium joined
21:50
rgrau joined
21:51
jferrero left
|
|||
lue | afk | 21:52 | |
ingy | how do I get t the length of $foo.bar.array ? | ||
gi!mf | |||
21:53
opx^away joined
|
|||
dukeleto | ingy: @array.elems | 21:53 | |
ingy | thx | ||
dlimf! | 21:54 | ||
dukeleto | ingy: say join " ", @foo.^methods is useful | ||
ingy | yay1 | ||
yay! | |||
ash_ | ~@foo.^methods # is a bit shorter | ||
dukeleto | ash_++ | 21:55 | |
ash_ | +@array # also a shortcut for the length of an array | ||
rakudo: my @a = <a b c>; say +@a, ~@a.^methods(:local); | |||
p6eval | rakudo 7df2c2: OUTPUT«3at_pos new exists splice delete perl» | ||
21:55
pnate joined
|
|||
ash_ | rakudo: my @a = <a b c>; say +@a, ' ', ~@a.^methods(:local); | 21:55 | |
p6eval | rakudo 7df2c2: OUTPUT«3 perl delete at_pos new exists splice» | 21:56 | |
21:57
pnate2 left
22:05
timbunce joined
22:07
pmurias left
22:08
kfo_ joined,
davidfetter joined,
colomon joined,
pjcj_ joined,
kloeri joined,
PZt joined,
buubot joined,
Lorn joined,
farmer.freenode.net sets mode: +ov colomon buubot,
PZt left,
stef_ joined
22:09
hercynium left,
whiteknight joined
22:14
kensanata joined
22:19
synth joined
22:20
skids left
22:29
justatheory left
22:33
hercynium joined
22:36
Trashlord joined
|
|||
mberends | loli(re)blogged: blogs.perl.org/users/martin_berends...bases.html # s/Fake/Mini/g and other tweaks | 22:36 | |
22:37
hercynium_ joined
|
|||
mberends | sleep & | 22:38 | |
22:38
hercynium left
22:48
saaki joined
22:49
ive joined
22:50
timbunce left
|
|||
dalek | meta: r364 | stefa...@cox.net++ | trunk/vicil: [vicil] Delete. It now lives at git://github.com/sorear/niecza.git |
22:55 | |
sorear | diakopter: ping | 22:56 | |
diakopter | PLONG | 23:00 | |
sorear: how is Niecza pronounced | 23:01 | ||
23:01
ashleydev joined
|
|||
sorear | I hadn't thought about that much. I'd been going knee + tsar - r | 23:02 | |
Anyway. Who do I talk to about adding repositories to dalek? | 23:03 | ||
jnthn | sorear: nee-yee (dipthong) | 23:04 | |
cha | |||
gah | 23:05 | ||
nee-yeh cha | |||
But pallated. | |||
(the n is) | |||
Consult your nearest friendly local Slav for help. ;-) | |||
23:07
Sanitoeter joined
23:12
PZt joined
23:18
tedv joined
23:22
kensanata left
23:33
ive left
23:46
rgrau_ joined
23:48
rgrau left
23:54
Psyche^ joined
23:55
Psyche^ is now known as Patterner
|