»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! Set by sorear on 4 February 2011. |
|||
00:00
Trashlord joined
00:09
cooper joined
|
|||
[Coke] | tadzik: (build before install) except I had already done a build. ;) | 00:14 | |
00:20
[particle]1 joined
00:21
[particle] left,
[particle]1 is now known as [particle]
00:29
CBro2007 left
00:41
[particle] left,
[particle] joined
00:44
stepnem left
00:46
tokuhir__ left
00:47
stepnem joined
01:03
woosley joined
01:06
woosley left
01:08
bluescreen100 joined
01:44
woosley joined
01:47
cooper left
02:02
bluescreen__ joined
02:28
bluescreen100 left,
bluescreen10 left,
LaVolta joined
02:29
bluescreen__ left
02:51
cooper joined
03:01
uvtc joined
03:10
am0c joined
03:28
ilogger2 joined,
ChanServ sets mode: +v ilogger2
|
|||
uvtc | TimToady: thanks. Hm. Will try to digest that. So, instead of using `tee`, maybe better to just do: `make 2>&1 > ~/temp/rakudo-make.log` ? | 03:33 | |
TimToady: (seems to work fine) | 03:35 | ||
sorear | no | 03:41 | |
2>&1 >file will cause stderr to screen | 03:42 | ||
it reads from left to right | |||
start with 1:tty 2:tty | |||
after 2>&1, 1:tty 2:tty (1 has been copied to 2 with no effect) | |||
after >file, 1:file 2:tty | |||
you need >file 2>&1, or >&file | 03:43 | ||
pipes are the one case where it's not read left to right | |||
you need prog1 2>&1 | prog2 to send both to prog2 | |||
uvtc | sorear: Will try that out. Thank you! | ||
sorear: Sorry, was afk. Works. :) Thanks. | 03:51 | ||
04:05
satyavvd joined
04:16
dju joined
04:28
HarryS joined
05:21
beek joined
05:27
birdwindupbird joined
05:31
im2ee joined,
im2ee left
05:43
wtw joined
05:45
thou joined,
molaf joined
|
|||
Tene | sorear: itym &>file | 05:45 | |
05:46
molaf left
|
|||
sorear | Tene: no | 06:14 | |
moritz | good morning | ||
sorear | I can no longer find the relevant log snippet, but last time I suggested &>file someone politely informed me that foo &>file is interpreted like { foo& }; { >file } by many shells | 06:15 | |
and that >&file was the correct/works on not-bash-or-zsh way | |||
06:16
daxim joined
|
|||
sorear | Tene: curious. POSIX.1 doesn't list any form other than >x 2>&1 | 06:23 | |
in particular, for 2>&word, behavior is "unspecified" unless word expands to a decimal number or "-" | |||
s/2// | |||
o/ moritz | 06:29 | ||
06:32
kjeldahlw joined
06:36
kjeldahlw left
06:37
kjeldahlw joined
|
|||
moritz | sorear: do you have an example of threads in niecza? | 06:43 | |
06:44
kjeldahlw_ joined
|
|||
sorear fiddles a bit | 06:51 | ||
niecza: use Threads; my $p = Threads::ObjectPipe.new; for 1..3 { Thread.new({ $p.put($_) while 1 }) }; loop { state $old = -1; state $ct = 0; my $val = $p.get; if $val == $old { $ct++ } else { say "$old x $ct" if $old > 0; $ct=1; $old=$val } } | 06:52 | ||
p6eval | niecza v7-39-gfe88724: OUTPUT«(timeout)1 x 46162 x 42023 x 29701 x 11983 x 30372 x 10581 x 37913 x 35851 x 11302 x 20403 x 34422 x 29441 x 48772 x 40191 x 12993 x 47301 x 19382 x 17753 x 10391 x 39113 x 36632 x 31383 x 10531 x 24843 x 24112 x 47933 x 25511 x 4… | ||
TimToady | rosettacode.org/wiki/Calendar_-_for...ers#Perl_6 | 06:53 | |
sorear | TimToady: I think you forgot to save | 06:56 | |
TimToady | don't think so | 06:57 | |
benabik | sorear: It seems to take a moment to update. If you click too fast you don't get the right version. | 06:58 | |
TimToady | having got that far, I'm pretty sure it could be done without numbers too | 07:00 | |
since any number can be replaced by +<* * * * *> or some such | 07:01 | ||
moritz | rakudo: say ["\0"..."~"].elems | 07:04 | |
p6eval | rakudo f63b82: OUTPUT«127» | ||
moritz | rakudo: say ["\0"..."~"][99, 104, 114, 115] | 07:05 | |
p6eval | rakudo f63b82: OUTPUT«chrs» | ||
sorear | My only misgiving with ∅ := {}; is that we need a more efficient way to add categoricals | ||
jlaire | rakudo: say (* ** *)(<* * * * * * * * * *>, <* *>) + (* * *)(<* * * * * * *>, <* *>) | ||
TimToady | coulda just used a slice instead... | ||
p6eval | rakudo f63b82: OUTPUT«114» | ||
sorear | Subclassing the grammar won't cut it | 07:06 | |
07:07
daniel-s joined
|
|||
TimToady wanders off to find some hay to hit... & | 07:09 | ||
07:11
daniel-s__ joined,
daniel-s left
07:16
CBro2007 joined,
_daniel-s__ joined
|
|||
sorear | o/ CBro2007 | 07:16 | |
07:16
daniel-s__ left
|
|||
sorear | rakudo: say asin i | 07:17 | |
p6eval | rakudo f63b82: OUTPUT«0 + 0.881373587019543i» | ||
sorear observes with incredulity that Rakudo master's asinh takes a $base parameter | 07:19 | ||
what does sinh(41 degrees) even mean | |||
nothing geometrically relevant I bet | 07:20 | ||
sorear out | |||
daxim | doin' trigonometry LIKE A $BASE | ||
07:20
daniel-s joined
07:21
_daniel-s__ left
07:24
daniel-s__ joined
07:25
daniel-s left
07:27
am0c joined
07:28
daniel-s__ left
07:29
daniel-s__ joined
07:32
_daniel-s__ joined,
daniel-s__ left
07:36
daniel-s joined,
_daniel-s__ left
07:41
mj41 joined
07:50
wamba joined
07:57
Util joined
08:01
Jackneill joined,
Mowah joined
08:02
donri joined,
Jackneill left
08:41
buubot_backup joined
08:44
timbunce joined
08:50
dakkar joined
09:01
bs338 joined
09:12
daniel-s left
09:17
nymacro joined
09:21
ab5tract joined
09:30
wamba left
09:42
CBro2007 left
10:16
xinming joined
10:24
WAAZG4A joined,
PAAB49V joined,
CBro2007 joined
10:39
DarthGandalf joined
10:42
nymacro left
11:02
dayangkun joined,
MayDaniel joined
11:17
Trashlord joined
11:25
Jackneill joined,
Jackneill left,
Jackneill joined
11:26
wamba joined
11:33
satyavvd left
11:38
JimmyZ joined
|
|||
JimmyZ | good evening | 11:38 | |
11:47
CBro2007 left,
betterworld joined,
JimmyZ_ joined
11:49
colomon joined,
JimmyZ left,
JimmyZ_ is now known as JimmyZ
11:50
Su-Shee joined
11:57
timbunce left,
JimmyZ left
11:59
timbunce joined
|
|||
takadonet | morning all | 12:03 | |
12:14
dayangkun left
12:31
bluescreen10 joined
|
|||
Util | Morning, takadonet | 12:36 | |
12:55
Holy_Cow joined
13:03
smash_ joined
13:04
smash_ is now known as smash
|
|||
smash | hello everyone | 13:05 | |
13:16
kid51 joined
13:17
Holy_Cow left
13:18
wamba left
|
|||
takadonet | smash: hey | 13:28 | |
13:31
MayDaniel left
13:48
Mowah left
|
|||
sorear | good * #perl6 | 13:56 | |
13:59
CBro2007 joined,
pernatiy joined
|
|||
colomon | sorear: apologies for not getting to the trig stuff yet. I do have a plan for both implementation and improving tests, but I'm getting mauled at $work at the moment, which is taking all my free time. Things should be better by the weekend. | 14:07 | |
14:17
awoodland joined
14:19
wtw left,
daxim left,
_twitch joined
14:23
perlhack joined
|
|||
sorear | colomon: would you mind if I 1. expanded sin to utransc and have it handle all 24 cases 2. worked on making the trig tests pass ? | 14:24 | |
moritz emerges | |||
14:25
icwiener joined
14:27
_twitch left,
mkramer joined,
mkramer left
|
|||
moritz just helped his parents move out of the house where he grew up. That's tough. | 14:28 | ||
14:29
_twitch joined
|
|||
colomon | sorear: 1. is certainly your baby, and I won't object to anything you want to do to it. I don't think it's a great idea -- seems to me it will both be slower and uglier -- but it's your baby. 2. ack, I really do have a plan for simplifying the tests that would probably make your efforts a lot easier.... | 14:29 | |
moritz++ | |||
14:32
wamba joined,
perlhack left
14:40
frettled joined
14:41
ggoebel joined
14:42
_twitch left
|
|||
sorear | colomon: (1) what's your plan? | 14:43 | |
colomon: I think a 2 switches with 24 cases would be prettier than 24 copies of the transcedental unary boilerplate | |||
colomon | 1. write a simple script to automatically generate each of the needed functions. | 14:44 | |
14:44
_twitch joined,
CBro2007 left
|
|||
jlaire dreams about macros | 14:46 | ||
14:47
wolfman2000 joined
14:48
colomon left
14:55
CBro2007 joined
14:58
colomon joined
15:00
awoodland left,
colomon left
15:01
spq1 joined
15:02
colomon joined
|
|||
pmichaud | good morning, #perl6 | 15:07 | |
15:08
_twitch left
|
|||
moritz | good am, pm | 15:10 | |
15:21
noganex_ joined
15:29
noganex_ is now known as noganex
15:30
Mowah joined
15:32
bluescreen10 left,
CBro2007 left
15:36
rjbs joined
|
|||
rjbs | pmichaud: Hey, I see you're going to be in Philly. When do you arrive? | 15:37 | |
pmichaud | I arrive Friday afternoon, depart Sunday evening | 15:40 | |
15:40
yuanzhao0501 joined
15:42
wamba left
15:43
yuanzhao0501 left
15:47
bluescreen10 joined
15:51
kaare__ joined
15:53
[particle] joined
15:55
kjeldahl joined,
wolfman2000 left
|
|||
moritz | rakudo: say ~("abc".match(:g, :p(0), /./)) | 16:08 | |
p6eval | rakudo f63b82: OUTPUT«a b c» | ||
moritz | rakudo: say ~("abc".match(:g, :p(1), /./)) | ||
p6eval | rakudo f63b82: OUTPUT«b c» | ||
moritz | rakudo: say ~("abc".match(:g, :c(1), /./)) | ||
p6eval | rakudo f63b82: OUTPUT«b c» | ||
16:09
Adrieuxo joined
|
|||
colomon | niecza: say 2 ** 64 | 16:12 | |
p6eval | niecza v7-39-gfe88724: OUTPUT«18446744073709551616» | ||
rjbs | pmichaud: If you're interested in lunch (or maybe dinner; not sure what my plans have to be pre-OSCON), let me know. My office is in downtown PHL (Chinatown). | 16:13 | |
pmichaud | rjbs: will do. I may also be meeting up with kid51 for dinner; we're staying out by the airport | 16:14 | |
(cheaper than center city lodging :) | 16:15 | ||
rjbs | I bet :) | 16:16 | |
there's actually a decent only-slightly-dumpy hotel right by my office for $99/night, but that's probably only a big improvement if you want to be in my neighborhood :) | 16:17 | ||
16:20
mj41 left
16:21
meteorjay joined
16:26
Adrieuxo left
16:27
wamba joined
16:28
cooper joined
|
|||
moritz | nom: say 'abc'.match(/./, :c(3)) | 16:31 | |
p6eval | nom: OUTPUT«» | ||
moritz | nom: say 'abc'.match(/./, :c(2)) | ||
p6eval | nom: OUTPUT«c» | ||
16:35
Anaeluxo joined
16:36
molaf joined
|
|||
moritz | nom: say 'abc'.match(/./, :c(2)).Bool | 16:36 | |
p6eval | nom: OUTPUT«Bool::True» | ||
moritz | nom: say 'abc'.match(/./, :c(3)).Bool | ||
p6eval | nom: OUTPUT«Bool::True» | ||
moritz | gotcha | ||
nom: say 'abc'.match(/./, :c(3)) | |||
p6eval | nom: OUTPUT«» | ||
moritz | nom: say 'abc'.match(/./, :c(3)).from | ||
p6eval | nom: OUTPUT«3» | ||
moritz | nom: say 'abc'.match(/./, :c(3)).to | ||
p6eval | nom: OUTPUT«-3» | ||
benabik | moritz: test golfing? | 16:37 | |
moritz | benabik: hunting a bug | ||
I'm trying to implement Str.match(Regex, :global) | 16:38 | ||
and my loop for matching ran infinitely | |||
and when I added debugging output, it died mysteriously | |||
now I know why - because it continued to run even if no match was found, because Match.Bool is wrong | 16:39 | ||
16:39
rjbs left
|
|||
moritz | this might have lead to a few falsly passing tests | 16:39 | |
nom: say "OH NOEZ" if 'a' ~~ /b/ | |||
p6eval | nom: OUTPUT«OH NOEZ» | ||
16:42
birdwindupbird left
16:43
pernatiy_ joined
|
|||
moritz | nom: say 'abc'.match(/<?alpha>/, 'abc', :c(30)) | 16:44 | |
p6eval | nom: OUTPUT«No applicable candidates found to dispatch to for 'match'. Available candidates are::(Str, Regex $pat, Any $c, Any $p, Mu %_):(Cool, Cool $target, Associative %adverbs)current instr.: 'match' pc 469785 (src/gen/CORE.setting.pir:125003) (src/gen/CORE.setting:967)»… | ||
moritz | nom: say 'abc'.match(/<?alpha>/, :c(30)) | ||
p6eval | nom: OUTPUT«» | ||
16:44
pernatiy left
|
|||
moritz | nom: say 'abc'.match(/<?alpha>/, :c(30)).from | 16:44 | |
p6eval | nom: OUTPUT«30» | ||
moritz | nom: say 'abc'.match(/<?alpha>/, :c(30)).to | ||
p6eval | nom: OUTPUT«30» | ||
16:45
CBro2007 joined
|
|||
benabik | I wonder if anyone bothered to add a spectest for "failed match .Bools to False" | 16:45 | |
dalek | kudo/nom: a331d3c | moritz++ | src/core/Match.pm: fix Match boolification |
||
moritz | pmichaud: that's a bug, it amtches a zero-width regex outside the length of the string | ||
benabik: I'd be surprised if we missed such a test, but since rakudo doesn't yet run most of the regex related tests, we probably just haven't encountered it | 16:47 | ||
16:47
bluescreen10 left
16:48
kid51 left
|
|||
moritz | otoh the tests are still a bit incomplete | 16:52 | |
16:53
timbunce left,
hatsefla1s joined
16:54
xinming_ joined,
orevdiabl joined
16:55
Sid joined
16:56
Trashlord left,
Sid is now known as Trashlord
|
|||
moritz | .u 0xa4# | 16:58 | |
phenny | moritz: U+0030 U+0078 U+0061 U+0034 U+0023 | ||
moritz | .u 0xa4 | ||
phenny | U+00A4 CURRENCY SIGN (¤) | ||
benabik | I've always liked using µ as the replacement for an unknown Monetary Unit. | 16:59 | |
16:59
xinming left,
bluescreen10 joined
17:00
timbunce joined,
Yappoko___ joined,
mattp_ joined
|
|||
CBro2007 | guys am just reading through the article perl 5 to 6, wondering how I can start to learn how to use it all? :) Any ideas? | 17:00 | |
moritz: yeah its your article | 17:01 | ||
moritz | CBro2007: install rakudo and/or niecza, and write Perl 6 code | 17:02 | |
the best way to learn a language is always to use it | |||
CBro2007 | yeah I got rakudo installed on my mac | ||
moritz | (both for natural and for programming languages) | ||
CBro2007 | but don't know what to use it on | ||
or for what | |||
moritz | what do you use other programming languages for? | ||
PerlJam | CBro2007: you could try to read and understand rosetta code problems and try to solve some of your own | ||
CBro2007 | was thinking of writing a p5 module to p6 | ||
moritz | sure, that's an option | ||
what interests you, in terms programming? | 17:03 | ||
CBro2007 | but would it be too soon to get into doing that | ||
moritz | why? | ||
databases? web? math? games? graphics? | |||
CBro2007 | mostly algorithmics | ||
or data mining | |||
to be more accurate | |||
moritz | so do something with Perl 6 that interests you | 17:04 | |
I'd have plenty ideas for algorithms, not so many for data mining | |||
CBro2007 | k but I was hoping to contribute the code too | ||
can you share some? | |||
17:04
pernatiy_ left
|
|||
CBro2007 | I was thinking of containers like c++ std library | 17:05 | |
moritz | for example, implement Dancing Links in Perl 6 | ||
CBro2007 | I suggested that last time | ||
Is that useful? | |||
PerlJam | CBro2007: modules.perl6.org might be useful to you | ||
moritz | I'd write a Sudoku solver on top of that :-) | ||
CBro2007 | heh | ||
moritz | so for me it would be useful | ||
17:05
Yappoko___ left,
mattp_ left
|
|||
moritz | or you could implement red/black trees | 17:05 | |
or... whatever you'd like | 17:06 | ||
CBro2007 | yeah or b+ trees | ||
benabik | R/B trees are fun. | ||
17:06
Yappoko___ joined,
mattp_ joined
|
|||
CBro2007 | but a library would be cool yeah? | 17:06 | |
moritz | or a packrat parser | ||
sure | |||
CBro2007 | like a collection of all sortsa search trees etc | ||
moritz | so many interesting algorithms, so little time... :-) | 17:07 | |
CBro2007 | do they have to be modules? | ||
moritz | well, modules are easy to reuse (and easy to test) | ||
so it kinda makes sense to write them as modules (which of course can be classes) | |||
CBro2007 | ok maybe when I write something up I will ask you guys for help | ||
moritz | sure | ||
CBro2007 | hopefully its ok with you all ;) | ||
i think fter the article 5 to 6 I should be ok to start up something | 17:08 | ||
moritz | that's what #perl6 is for, developing stuff in and for Perl 6 :-) | ||
CBro2007 | just hope it doesn't look like dog shit | ||
:) | |||
kewl | |||
moritz | and if it does, we'll tell you why it looks like dog shit, and what you can do to change that :-) | ||
CBro2007 | k | 17:09 | |
just don't be too critical mate :) | |||
moritz | :-) | ||
benabik | CBro2007: We try to be just critical enough. | 17:12 | |
CBro2007 | yeah I know .. it'll be cool. I just have to get off my ass and get around writing something first :) | 17:13 | |
moritz: can you help me make sense of "context"? | 17:17 | ||
I don't quite get it | |||
$x = @a | |||
is that saying $x = number of elements in a? | 17:18 | ||
colomon | rakudo: my @a = 5..10; my $x = @a; say $x.perl | 17:19 | |
p6eval | rakudo f63b82: OUTPUT«[5, 6, 7, 8, 9, 10]» | ||
colomon | rakudo: my @a = 5..10; my $x = +@a; say $x.perl | ||
p6eval | rakudo f63b82: OUTPUT«6» | ||
CBro2007 | so saying just $x = @a is like assigning $x to a reference of @a? | 17:21 | |
and then +@a is the number of items in @a? | |||
colomon | hmmm | 17:22 | |
rakudo: my @a = 5..10; my $x = @a; @a[3]=10000; say $x.perl | |||
p6eval | rakudo f63b82: OUTPUT«[5, 6, 7, 10000, 9, 10]» | ||
colomon | reference, yup. | ||
benabik | nom: my @a = 5..10; my $x = @a; @a[3]=10000; say $x.perl | ||
p6eval | nom: OUTPUT«[5, 6, 7, 10000, 9, 10]» | ||
benabik | nom: my @a = 5..10; my @x = @a; @a[3]=10000; say @x.perl | 17:23 | |
p6eval | nom: OUTPUT«Array.new(5, 6, 7, 8, 9, 10)» | ||
CBro2007 | whats ~stuff | ||
?stuff | |||
I am not getting where I would use this? | |||
benabik | ~stuff = stuff as string | ||
?stuff = stuff as bool (IIRC) | 17:24 | ||
nom: my $stuff = 42; say ~$stuff; say ?$stuff | |||
p6eval | nom: OUTPUT«42Bool::True» | ||
benabik | nom: my $stuff = 42; say ~$stuff.perl; say ?$stuff | ||
p6eval | nom: OUTPUT«42Bool::True» | ||
benabik | nom: my $stuff = 42; say (~$stuff).perl; say ?$stuff | ||
p6eval | nom: OUTPUT«"42"Bool::True» | ||
benabik | CBro2007: In P5 you had to know what operators would convert values to what types. In P6 you can explicitly state these things. | 17:26 | |
CBro2007 | @( <a b> Z <c d> ) # <a c b d> | ||
@@( <a b> Z <c d> ) # (['a', 'c'], ['b', 'd']) | |||
17:27
isBEKaml joined
|
|||
CBro2007 | what is the "Z"? | 17:27 | |
benabik | zip operator | ||
CBro2007 | hm | ||
benabik | `@a Z @b` takes the first element of @a and pairs it with the first of @b and so on. | ||
rakudo: say (<a b> Z <c d>).perl | 17:28 | ||
p6eval | rakudo f63b82: OUTPUT«("a", "c", "b", "d")» | ||
isBEKaml | rakudo: my @a=<1 2 3>, @b = <4 5 6>; say @a Z+ @b; | ||
p6eval | rakudo f63b82: OUTPUT«===SORRY!===Symbol '@b' not predeclared in <anonymous> (/tmp/hGXeypBUo1:22)» | ||
isBEKaml | rakudo: my @a=<1 2 3>;my @b = <4 5 6>; say @a Z+ @b; | ||
p6eval | rakudo f63b82: OUTPUT«579» | ||
CBro2007 | was < > to make a list? | ||
I thought it wasn't needed yeah? | |||
isBEKaml | CBro2007: that's akin to qw() in p5 | 17:29 | |
CBro2007 | ah i see | ||
17:29
dakkar left
|
|||
CBro2007 | how do i run code here? | 17:29 | |
isBEKaml | CBro2007: you can also do Zop with Z where op is any operator applicable. | 17:30 | |
CBro2007 | just "rakudo: ... "? | ||
isBEKaml | yes | ||
CBro2007 | rakudo: my @a = 1 2 3; my @b = 4 5 6; say @a Z+ @b; | 17:31 | |
p6eval | rakudo f63b82: OUTPUT«===SORRY!===Confused at line 22, near "my @a = 1 "» | ||
CBro2007 | hmm so I have to say < > around the 1 2 3? | ||
isBEKaml | CBro2007: there has to be some way for rakudo to realise that it's a list you're providing. | ||
17:31
Chillance joined
|
|||
benabik | rakudo: my @a = 1, 2, 3; my @b = 4, 5, 6; say @a Z+ @b; # commas should be enough | 17:31 | |
17:31
Jackneill left
|
|||
CBro2007 | hmm coz the tutorial didn't need any < > around | 17:31 | |
p6eval | rakudo f63b82: OUTPUT«579» | ||
isBEKaml | benabik++ #forgot p6 for quite a while. :) | 17:32 | |
CBro2007 | ah ofcourse | ||
sorry | |||
this zip looks like something I came across in Haskell | 17:33 | ||
i think its the same deal | |||
benabik | Yup! | ||
isBEKaml | std: my @a=<1 2 3>,@b = <1 2 3>; | ||
p6eval | std 516268a: OUTPUT«===SORRY!===Variable @b is not predeclared at /tmp/ehPZIx9XS2 line 1:------> my @a=<1 2 3>,@b⏏ = <1 2 3>;Check failedFAILED 00:01 122m» | ||
isBEKaml | CBro2007: yes, that's the same. | ||
benabik | std: my (@a, @b) = (<1 2 3>, <1 2 3>) | ||
p6eval | std 516268a: OUTPUT«ok 00:01 124m» | ||
isBEKaml | std: my $a=1,$b=2; | ||
p6eval | std 516268a: OUTPUT«===SORRY!===Variable $b is not predeclared at /tmp/qRPIF0iz0_ line 1:------> my $a=1,$b⏏=2;Check failedFAILED 00:01 122m» | ||
benabik | std: my ($a, $b) = (1,2) | 17:34 | |
p6eval | std 516268a: OUTPUT«ok 00:01 124m» | ||
17:34
Anaeluxo left
|
|||
benabik | nom: my ($a, $, $c) = <a b c>; say $a; say $c | 17:34 | |
CBro2007 | am just thinking that in p5, if I wanted to build a complicated Hash of hash of hashes or something.. I would read in lines from say a file and build this structure on the fly using references | ||
isBEKaml | benabik: yes, I can do that. But the compiler should be able to assign variables as I give them right beside the variables? | ||
p6eval | nom: OUTPUT«ac» | ||
CBro2007 | how would one do the same in p6 | ||
I haven't seen references anywhere yet | |||
have they gotten rid of refs in p6? | 17:35 | ||
benabik | isBEKaml: The compiler could, if that was valid P6. But it's not. | ||
isBEKaml | benabik: It's not? int a=5,b = 6; ? | ||
like in C? | |||
benabik | isBEKaml: Nope. It's `my ($a, $b) = 5, 6` like in Perl 5 | ||
isBEKaml | benabik: p5 doesn't complain. :) | 17:36 | |
benabik | CBro2007: It's a bit more like refs are the default. See how `$x = @a` worked above. | ||
CBro2007 | so just about my qn.. how would you do that in p6? | ||
yeah I see that | |||
isBEKaml | buubot_backup: my $a=1, $b = 2; say $a; say $b; | ||
buubot_backup | isBEKaml: Couldn't match input. | ||
isBEKaml | how do you use buubot? | 17:37 | |
CBro2007 | just not sure how I could build something complicated using this "inbuilt" reference stuff | ||
17:38
Yappoko___ left,
mattp_ left
|
|||
pmichaud | CBro2007: in general, it "just works" without having to think about references. | 17:38 | |
isBEKaml | buubot_backup: say 42; | ||
buubot_backup | isBEKaml: Couldn't match input. | ||
isBEKaml | buubot_backup: eval(print 42) | ||
buubot_backup | isBEKaml: Couldn't match input. | ||
isBEKaml | boo | ||
benabik | isBEKaml: I stand corrected. But `my ($a, $b) = 1,2` seems far more common than `my $a = 1, $b = 2` | ||
CBro2007 | so if you wanted to have say a hash of hashes... could you show me a sample. In p5, I would have done. $href->{key}->{key2} = val | 17:39 | |
isBEKaml | benabik: my ($a, $b) is list assignment to lvalues. my $a=1,$b=2 is just variable assignment. | ||
pmichaud | nom: my %hoh = a => { able => 123, andy => 140 }, b => { ben => 1, bob => 4 }; say %hoh.perl | ||
p6eval | nom: OUTPUT«("a" => {"able" => 123, "andy" => 140}, "b" => {"ben" => 1, "bob" => 4}).hash» | ||
pmichaud | rakudo: my %h; %h<a><able> = 124; say %h.perl; | 17:40 | |
p6eval | rakudo f63b82: OUTPUT«{"a" => {"able" => 124}}» | ||
isBEKaml | pmichaud: why doesn't p6 accept my $a=1, $b=2 while p5 does? | ||
CBro2007 | ah i see | ||
pmichaud | isBEKaml: likely because of the differing precedence of assignment | ||
CBro2007 | I haven't seen ... %h<a><able>.... I mean the use of < and > like that | ||
isBEKaml | pmichaud: comma has higher precedence than assignment? :O | 17:41 | |
benabik | isBEKaml: Yes. So `@a = 1,2,3` works. | ||
pmichaud | isBEKaml: in list assignment, yes. | ||
isBEKaml | pmichaud: Ah, I see. | ||
pmichaud | rakudo: my %h; %h{'a'}{'able'} = 123; say %h.perl; | ||
p6eval | rakudo f63b82: OUTPUT«{"a" => {"able" => 123}}» | ||
benabik | std: my ($a = 1), ($b = 2) | ||
p6eval | std 516268a: OUTPUT«===SORRY!===Variable $b is not predeclared at /tmp/hy3w2nad40 line 1:------> my ($a = 1), ($b⏏ = 2)Check failedFAILED 00:01 125m» | ||
pmichaud | %hash<a> is a shorter way of writing %hash{'a'} | ||
CBro2007 | ah yeah I remember now | 17:42 | |
isBEKaml | std: my {$a = 1}, {$b = 2} | ||
p6eval | std 516268a: OUTPUT«===SORRY!===Malformed my at /tmp/w1PgnYVUGz line 1:------> my ⏏{$a = 1}, {$b = 2} expecting scoped declaratorParse failedFAILED 00:01 117m» | ||
CBro2007 | in the hash key had to be wrapped with the ' ' yeah | ||
pmichaud | rakudo: my $x; $x{'name'}[3]{'foo'} = 'test'; say $x.perl; | ||
p6eval | rakudo f63b82: OUTPUT«{"name" => [Any, Any, Any, {"foo" => "test"}]}» | ||
pmichaud | CBro2007: see, it "just works". I ended up with a hash entry that was an array of hashes :-) | 17:43 | |
(and $x was even declared as a scalar variable :-) | |||
CBro2007 | what is "Any"? | ||
a placeholder? | |||
benabik | Wow. Any() can autoviv to a hash? | ||
pmichaud | "Any" is the new "undef" | ||
isBEKaml | std: my $a = (1), $b = (2); | ||
p6eval | std 516268a: OUTPUT«===SORRY!===Variable $b is not predeclared at /tmp/QXaUxAWnbo line 1:------> my $a = (1), $b⏏ = (2);Check failedFAILED 00:01 123m» | ||
CBro2007 | wicked | ||
pmichaud | we now have typed undefs | ||
Any is the generic undef for most common objects | 17:44 | ||
CBro2007 | so Any is kind of where all types inherit from yeah? | ||
so its like a super type? | |||
pmichaud | for the most part, yes. There's a type above Any | ||
(Mu) | |||
isBEKaml | CBro2007: yeah, Any equivalent to Object in java and C# | ||
CBro2007 | is "Object" above Any? | ||
isBEKaml | CBro2007: as pm says, Mu stands above all. though rarely used. | ||
CBro2007 | is that the one? | ||
pmichaud | "Mu" is above Any. | ||
CBro2007 | ah Mu | ||
pmichaud | nom: say Any.^parents; | ||
p6eval | nom: OUTPUT«Mu()» | ||
CBro2007 | ok haven't read about it | ||
pmichaud | nom: say Match.^parents | 17:45 | |
p6eval | nom: OUTPUT«Capture() Any() Mu()» | ||
pmichaud | nom: say Int.^parents # nom gives the wrong answer here for now, but it illustrates the point | ||
p6eval | nom: OUTPUT«Real() Numeric() Cool() Any() Mu()» | ||
benabik | I tend to think of Any more like AnyRef in Scala. :-D | ||
CBro2007 | also why are the regular expressions in p6 moving towards more like the java style? | ||
with a matcher class | |||
isBEKaml | pmichaud: ^parents is pretty cool. Generating accurate documentation would be more easier. | ||
benabik: Scala, you too? :D | |||
pmichaud | CBro2007: match objects hold more than just the string they matched | ||
they hold the contents of any submatches as well. | 17:46 | ||
benabik | isBEKaml: Scala is my cure for Java. :-D It's more Perly and more Haskelly than Java. | ||
CBro2007 | pmichaud: but could we not capture patterns in p5? | ||
isBEKaml | benabik: Agreed. I feel the same. :) | ||
pmichaud | CBro2007: it's a bit deeper than that, even. | ||
CBro2007 | pmichaud: sorry just trying to understand the need. | ||
ok | 17:47 | ||
pmichaud | CBro2007: basically, the parser for Perl 6 is implemented using Perl 6 regular expressions. | ||
we no longer get back a simple set of strings -- it gives back an entire parse tree. | |||
CBro2007 | and its more optimized? | ||
17:47
mattp_ joined
|
|||
CBro2007 | ok | 17:47 | |
[Coke] | moritz: (good am, pm) GROOOOOOOOOOOOOAN | ||
CBro2007 | so its more like a parser | ||
pmichaud | Perl 6 grammars and regexes are more like Parse::RecDescent, or Grammar::Regexp | ||
benabik | The parse tree stringifies to the correct things, of course. :-D | 17:48 | |
pmichaud | (indeed, those were developed contemporaneously with Perl 6 regexes and grammars) | ||
CBro2007 | k | ||
now I can go back to reading further :) | |||
isBEKaml | benabik: do you happen to be one of those lucky ones that use Scala at work? | ||
CBro2007 | thanks for the explanations | ||
[Coke] | whoa, rjbs is in PHL?!? I wish I had known that before I spent a week there. | 17:49 | |
benabik | isBEKaml: I was a contractor for a while and my main customer didn't care what it was written in as long as it worked. | ||
isBEKaml | benabik: lucky fella. When was that? | ||
benabik: pre 2.8 days? :) | |||
moritz | [Coke]: I've been using that "joke" for ages now :-) | 17:50 | |
17:50
impious joined
|
|||
isBEKaml | [Coke]: so has sorear (though not a joke, more a meme) :P | 17:51 | |
benabik | isBEKaml: It was a year or so ago. 2.8 either was just released or was released early during the project. | 17:52 | |
isBEKaml | benabik: that's cool. I kind of grew used to 2.7 when 2.8 came and quickly got overwhelmed by those huge changes. Now, it's 2.9. :) | 17:53 | |
benabik: anyway, it would be pretty awesome to see some libraries in p6 like those of collections or Actors in Scala. | 17:54 | ||
benabik | isBEKaml: It would. Get coding. ;-) | ||
isBEKaml | benabik: :-) # waiting for the enlightenemnt and collaborators. | 17:55 | |
moritz | rakudo: 'abc' =~ 1 | 17:56 | |
p6eval | rakudo f63b82: OUTPUT«===SORRY!===Unsupported use of =~ to do pattern matching; in Perl 6 please use ~~ at line 22, near " 1"» | ||
moritz | nom: 'abc' =~ 1 | ||
p6eval | nom: OUTPUT«Unsupported use of =~ to do pattern matching; in Perl 6 please use ~~ at line 1, near " 1"current instr.: 'nqp;HLL;Grammar;panic' pc 23533 (src/stage2/gen/NQPHLL.pir:6314) (src/stage2/gen/NQPHLL.pm:328)» | ||
isBEKaml | rakudo: 'abc' ~= 1 | 17:57 | |
p6eval | rakudo f63b82: OUTPUT«Cannot modify readonly value in '&infix:<=>' at line 1:src/metamodel/RoleToInstanceApplier.nqp in main program body at line 1:/tmp/dwaAJdpvzx» | ||
isBEKaml | :D | ||
std: 'ab' ~~=1 | |||
p6eval | std 516268a: OUTPUT«===SORRY!===Can't make assignment out of ~~ because chaining operators are diffy at /tmp/Mznmgw5DHQ line 1:------> 'ab' ~~=⏏1Check failedFAILED 00:01 120m» | ||
isBEKaml | std: 'ab' ~~ 1 | ||
p6eval | std 516268a: OUTPUT«ok 00:01 120m» | 17:58 | |
moritz | nom: eval '"abc" =~ 1'; say $!.WHAT | ||
p6eval | nom: OUTPUT«Exception()» | ||
moritz | nom: eval '"abc" =~ 1'; say $! | ||
p6eval | nom: OUTPUT«Unsupported use of =~ to do pattern matching; in Perl 6 please use ~~ at line 1, near " 1"» | ||
moritz | nom: eval '"abc" =~ 1'; say $! ~~ /'~~'/ | ||
p6eval | nom: OUTPUT«» | ||
moritz | nom: eval '"abc" =~ 1'; say "$!" ~~ /'~~'/ | 17:59 | |
p6eval | nom: OUTPUT«» | ||
moritz | nom: say "~~" ~~ /'~~'/ | ||
p6eval | nom: OUTPUT«~~» | ||
17:59
Holy_Cow joined
|
|||
moritz | nom: eval '"abc" =~ 1'; say "$!" | 17:59 | |
p6eval | nom: OUTPUT«Unsupported use of =~ to do pattern matching; in Perl 6 please use ~~ at line 1, near " 1"» | ||
moritz | nom: eval '"abc" =~ 1'; say "$!".WHAT | ||
p6eval | nom: OUTPUT«Exception()» | ||
moritz | meh. | ||
17:59
Holy_Cow left
|
|||
benabik | moritz: What are you trying to track down? | 17:59 | |
moritz | nom: eval '"abc" =~ 1'; say $!.Str | ||
p6eval | nom: OUTPUT«Unsupported use of =~ to do pattern matching; in Perl 6 please use ~~ at line 1, near " 1"» | ||
moritz | benabik: test failure in S03-operators/brainos.t | 18:00 | |
nom: eval '"abc" =~ 1'; say $!.Str ~~ /'~~'/ | |||
18:00
pjcj joined
|
|||
p6eval | nom: OUTPUT«» | 18:00 | |
isBEKaml | moritz: brainos? really? :) | ||
moritz | isBEKaml: yes :-) | ||
18:01
Yappoko___ joined
|
|||
benabik | isBEKaml: Typo : Typing :: Braino : Braining. Thinking. Whatever. | 18:01 | |
isBEKaml | benabik: yeah, * :) | 18:02 | |
benabik | I wonder where A : B :: C : D came from. Was it invented for the SAT? | 18:04 | |
isBEKaml | benabik: proportions. Ratio and proportions. | ||
moritz knows the concept, but is unfamiliar with the notations | 18:05 | ||
benabik | I've never seen :: used mathmatically. Odd. | ||
isBEKaml | moritz: I'd just read them as A is to B as C is to D. | ||
moritz would use <=> instead of :: there | |||
for logical equivalence | |||
benabik | moritz: The SAT uses :: | ||
18:05
Tpot joined
|
|||
isBEKaml | benabik: more generally, all entrance tests. ;) | 18:06 | |
moritz | nom: say ~&infix:<+> | ||
p6eval | nom: OUTPUT«infix:<+>» | ||
moritz | nom: say ~&infix:<+> ~~ /\+/ | ||
p6eval | nom: OUTPUT«» | ||
moritz | nom: say (~&infix:<+>) ~~ /\+/ | 18:07 | |
p6eval | nom: OUTPUT«» | ||
moritz | nom: say (~&infix:<+> ~~ /\+/).Bool | ||
p6eval | nom: OUTPUT«Bool::False» | ||
moritz | pmichaud: see above - another regex bug in nom? | ||
nom: say '+' ~~ /\+/ | |||
p6eval | nom: OUTPUT«+» | ||
moritz | nom: say (~&infix:<+>).WHAT | 18:08 | |
p6eval | nom: OUTPUT«Str()» | ||
moritz | nom: say (~&infix:<+>) | ||
p6eval | nom: OUTPUT«infix:<+>» | ||
moritz | nom: say 'infix:<+>' ~~ /\+/ | ||
p6eval | nom: OUTPUT«» | ||
moritz | nom: say 'a+' ~~ /\+/ | ||
p6eval | nom: OUTPUT«» | ||
[Coke] gets dizzy. | |||
isBEKaml | nom: say 'a\+' ~~ /\+/ | ||
p6eval | nom: OUTPUT«» | ||
moritz | nom: say 'abc' ~~ /b/ | ||
p6eval | nom: OUTPUT«» | ||
isBEKaml | nom: ('ab' ~~ /b/).say | 18:09 | |
p6eval | nom: OUTPUT«» | ||
[Coke] would love an irssi rule of some kind that took messages to p6eval and their responses and made them less prominent. | |||
moritz | so... it implicitly anchors to the start of string? | ||
isBEKaml | nom: ('ab' ~~ /a/).say | ||
p6eval | nom: OUTPUT«a» | ||
pmichaud | could be a bug in Regex.ACCEPTS, yes. | ||
yes, Regex.ACCEPTS is missing the :c(0) argument. | 18:10 | ||
although we have to do a bit more than that ultimately, because it depends on the form of the regex as to the anchoring to be done. | |||
moritz | and in absense of :c(0), does it assume :p(0)? | ||
isBEKaml | [Coke]: add an ignore rule for p6eval. ;) | ||
pmichaud | yes, it assumes :p(0) for now. I can switch that if we need to. | ||
moritz | it really doesn't matter, because we only use that interface in a few places | 18:11 | |
dalek | kudo/nom: 01b163b | moritz++ | src/core/Str.pm: implement :g for Str.match |
||
moritz | currently Str.match, Regex.ACCEPTS | ||
and I plan to base Str.{split,comb,words} on Str.match | |||
pmichaud | wfm | 18:12 | |
18:13
impious left
|
|||
moritz | spectesting now with :c(0) added | 18:13 | |
CBro2007 | just tried "say @@( <a b> Z <c d> );" in a .pl file and got the error : "Non-declarative sigil is missing its name at line 10, near "@@( <a b> " | 18:15 | |
wondering what that means? | |||
moritz | it means that @@ is not yet implemented in rakudo | ||
std: say @@( <a b> Z <c d> ); | |||
p6eval | std 516268a: OUTPUT«===SORRY!===Non-declarative sigil is missing its name at /tmp/hEfn0FBB2w line 1:------> say ⏏@@( <a b> Z <c d> );Confused at /tmp/hEfn0FBB2w line 1:------> say @⏏@( <a b> Z <c d> ); expecting twigilOthe… | ||
moritz | oh, or is the @@ syntax gone? | 18:16 | |
mberends | #phasers in 44 min! | ||
18:16
Tpot left
|
|||
CBro2007 | was working earlier when pmichaud showed it to me | 18:16 | |
18:16
Tpot joined
|
|||
CBro2007 | or was he using something else? nom? | 18:16 | |
pmichaud | I didn't use @@ earlier... must've been someone else :) | ||
moritz | or something else :-) | 18:17 | |
isBEKaml | the error message reads like it expects a var name there. @@varname or so. | ||
moritz | @varname or so :-) | 18:18 | |
std: my @@varname | |||
p6eval | std 516268a: OUTPUT«===SORRY!===Invalid hard reference syntax at /tmp/nA_hshmcWh line 1:------> my @⏏@varname expecting any of: desigilname twigilParse failedFAILED 00:01 118m» | ||
isBEKaml | @varname@varname1 | ||
[Coke] | isBEKaml: that only removes half the conversation. | ||
18:18
Jackneill joined
|
|||
isBEKaml | [Coke]: Add those violators of your peace too! ;) | 18:18 | |
CBro2007 | so is this feature not implemented? or is there something wrong with the syntax? | ||
isBEKaml | std: my @var@varname; | ||
p6eval | std 516268a: OUTPUT«===SORRY!===Two terms in a row at /tmp/DKPkheoD4o line 1:------> my @var⏏@varname; expecting any of: POST bracketed infix constraint infix or meta-infix postfix postfix_prefix_meta_operator shape | ||
..definition statement… | |||
18:19
Tpot left
|
|||
pmichaud | I see no reference to '@@' in the specs, so I'm guessing it's a fossil. | 18:19 | |
CBro2007 | i got it from moritz's article | ||
@( <a b> Z <c d> ) # <a c b d> | |||
@@( <a b> Z <c d> ) # (['a', 'c'], ['b', 'd']) | |||
pmichaud | ("fossil" == something we once had in the Perl 6 specs but is now outdated or removed) | ||
CBro2007 | slice context | ||
pmichaud | it's now called "lol context" | 18:20 | |
CBro2007 | heh | ||
so how do you go about doing this now? | |||
moritz | where LoL = List of Lists | ||
pmichaud | nom: say (<a b> Z <c d>).perl; | ||
p6eval | nom: OUTPUT«(("a", "c"), ("b", "d")).list» | ||
moritz | nom: say (<a b> Z <c d>)[0] | ||
CBro2007 | sorry why the .perl in the end? | ||
p6eval | nom: OUTPUT«a c» | ||
isBEKaml | CBro2007: pretty printer. | ||
moritz | CBro2007: are you familiar with Data::Dumper in perl 5? | ||
CBro2007 | yeah roughly | 18:21 | |
pmichaud | without the .perl, the say function will flatten out the elements | ||
CBro2007 | i c | ||
ok | |||
pmichaud | nom: say <a b> Z <c d> | ||
p6eval | nom: OUTPUT«a c b d» | ||
moritz | .perl is the same in Perl 6, but built-i | ||
n | |||
pmichaud | nom: say (<a b> Z <c d>).list.perl | ||
p6eval | nom: OUTPUT«(("a", "c"), ("b", "d")).list» | ||
pmichaud | oops | ||
nom: say (<a b> Z <c d>).flat.perl | |||
p6eval | nom: OUTPUT«("a", "c", "b", "d").list» | ||
TimToady | nom: say (<a b> Z <c d>).lol.perl | 18:22 | |
p6eval | nom: OUTPUT«Method 'lol' not found for invocant of class 'List'current instr.: '_block1002' pc 123 ((file unknown):33678224) (/tmp/zfp6SyY7Mr:1)» | ||
pmichaud | (nyi, I think) | 18:23 | |
not hard to implement... just haven't gotten tuit yet. | |||
isBEKaml | there's a .lol? i can haz lol? | ||
TimToady | can not yet haz that cheezburger | ||
pmichaud | nom: sub xyz(**@l) { say @l.perl }; xyz( <a b> Z <c d> ); # checking | 18:24 | |
p6eval | nom: OUTPUT«LoL.new((("a", "c"), ("b", "d")).list.item)» | ||
CBro2007 | on raduko for "say (<a b> Z <c d>).perl;" I got "("a", "c", "b", "d")" | ||
it seems to have flattened it there | |||
pmichaud | rakudo doesn't know about LoL yet | ||
that's only a feature of the new compiler ("nom") | |||
LoL showed up after Rakudo was released, and we've not had the infrastructure to fix it until nom | |||
CBro2007 | hmm | ||
so should I be using nom or rakudo for dev and just mucking around with p6? | 18:25 | ||
pmichaud | I'm writing a blog post about that right now :) | ||
CBro2007 | so it gets fixed in rakudo you mean? | ||
TimToady | somehow I think that LoL.new((("a", "c"), ("b", "d")).list.item is not actually telling me what I want to know | ||
felher | TimToady: What does 'cal -h' do? | ||
PerlJam | CBro2007: my personal choice for a little while now has been to use nom. | 18:26 | |
pmichaud | TimToady: I think it's actually wrong. | ||
TimToady | felher: suppresses highlighting today's date | ||
PerlJam | CBro2007: it only sucks when you run into the less-than-implemented portions of nom, but those are fewer and fewer over time | ||
pmichaud | CBro2007: it's hard to give a precise answer. nom is much closer to the current Perl 6 specification, but is missing some features that Rakudo has | 18:27 | |
CBro2007 | i thought rakudo was the more complete one? | ||
ok | |||
felher | TimToady: Oh, okay. So what cal are you using? My cal (util-linux) doesn't have that option. | ||
benabik | CBro2007: nom is the next version of Rakudo. | ||
pmichaud | within the next few weeks we hope that situation will reverse however, and that nom will have at least as many features (and fewer bugs) than rakudo master | ||
CBro2007 | benabik: ok i didn't get that part :) | 18:28 | |
TimToady | felher: ubuntu linux, and -h is the very first option on the manpage | ||
CBro2007 | i suppose while writing code then its best to use stuff that works in both | ||
18:28
bluescreen10 left
|
|||
pmichaud | the existing rakudo will be "end of lifed" very soon. | 18:30 | |
as in, next week. :) | |||
isBEKaml | TimToady: I was confused about the reference to cal. I use util-linux too and -h isn't one of those options. | ||
TimToady | well, I suppose the example doesn't really need it | 18:31 | |
dalek | odel: 12a4dbf | (Martin Berends)++ | c/ (7 files): odel/c] test C compiling and library loading on Windows |
||
TimToady | not that it's terribly portable as it is... | ||
if anyone wants to put up the real calendar algorithm, it would just turn into more numbers | 18:32 | ||
CBro2007 | pmichaud: so you recommend downloading nom? | ||
pmichaud | CBro2007: if you're primarily interested in playing with the languages, and don't mind the high likelihood that you'll run into things that aren't yet implemented in nom, I'd suggest it, yes. | 18:33 | |
*language | |||
CBro2007 | k | ||
TimToady | but it is likely to be a bit more frustrating for the next little bit | ||
pmichaud | ...what TimToady++ said. | ||
CBro2007 | i mean since you said rakudo will be gone next week... I am just wondering if everyone will be on nom next week? | ||
TimToady | master still more of the things that "ought" to be there | ||
pmichaud | I'm certain not everyone will be on "nom" next week. | 18:34 | |
CBro2007 | ok | ||
TimToady | by "end of life" he means no longer a teenager, and slowly dying :) | ||
pmichaud | but that's where most of the developers are going to be :) | ||
CBro2007 | will stick to rakudo for now :) | ||
i still have a long way to go before I get the hang of all these p6 tricks anyway | 18:35 | ||
tadzik | hello | ||
CBro2007 | hi tadzik | ||
18:37
isBEKaml left
|
|||
felher | TimToady: k, thnx. seems like Ubuntu is using ncal instaed of util-linux :) | 18:38 | |
tadzik | CBro2007: hey, how is the Perl 6 experience? | 18:39 | |
CBro2007 | tadzik: still reading through that article in my spare time.. | 18:40 | |
tadzik: getting the hang of it slowly | |||
am reading rules now | |||
I don't quite get the "literal" and "metasyntactic" drama :) | |||
Letter characters (ie underscore, digits and all Unicode letters) match literally, and have a special meaning (they are metasyntactic) when escaped with a backslash. For all other characters it's the other way round - they are metasyntactic unless escaped. | |||
pmichaud | CBro2007: basically, if you want to match punctuation, you have to quote or escape it. | 18:41 | |
TimToady | it means you don't have to memorize which characters are meta like you do in Perl 5 | ||
Perl 6 treats all punctuation as meta | |||
CBro2007 | in p5 you kind of know which characters to escape in a regex... basically the ones that are used to mean something ... like [ or \ etc | 18:42 | |
pmichaud | CBro2007: yes, but do you know the list of all characters that "mean something"? ;-) | 18:43 | |
CBro2007 | so if we have to match a comma... would you say \, in the regex? | ||
pmichaud | CBro2007: yes. | ||
CBro2007: or ',' | |||
TimToady | very nearly all of them mean something anyway, so we decided to reserve them all | ||
CBro2007 | , wrapped in single quotes | ||
pmichaud | CBro2007: or double quotes. | ||
CBro2007 | ok | 18:44 | |
will obviously take some getting used to :) | |||
pmichaud | it's *much* simpler than p5 regexes | ||
(from experience) | |||
CBro2007 | i like the nested capture syntax of p6 | ||
pmichaud | rakudo: '1,2,345,6,8' ~~ / (\d+) ** ',' /; say $/.perl; | 18:45 | |
p6eval | rakudo f63b82: OUTPUT«Match.new( from => 0, orig => "1,2,345,6,8", to => 11, positional => [[ Match.new( from => 0, orig => "1,2,345,6,8", to => 1, ), Match.new( from => 2, orig => "1,2,345,6,8", to => 3, ), Match.new( fr… | ||
pmichaud | well, the dump wasn't so useful there. | ||
CBro2007 | so say I used p6 for a project and realized that something that isn't there now but available in p5 as a module.. can I use the p5 module easily? or are there dramas? | ||
18:45
im2ee joined
|
|||
pmichaud | CBro2007: there are dramas. | 18:45 | |
mostly black comedies. | 18:46 | ||
18:46
bluescreen10 joined
|
|||
CBro2007 | heh | 18:46 | |
crap | |||
18:46
ab5tract left
|
|||
pmichaud | p6 breaks compatibility with p5... in ways that we haven't easily restored yet | 18:46 | |
CBro2007 | maybe thats what would make me give this second thoughts | ||
coz syntax wise.. p6 is bloody way more wicked | |||
pmichaud | if "wicked" means "easier to deal with", I agree. :) | 18:47 | |
CBro2007 | I see things borrowed from haskell, lisp etc... which will make programming much easier | ||
yeah more feature rich | |||
pmichaud | pmichaud.com/sandbox/rel.txt # draft blog post for rakudo.org, comments/suggestions wanted | ||
#phasers in 12 | 18:48 | ||
mberends | CBro2007: project blizkost is an experimental bridge that can call some Perl 5 modules from Rakudo master, during some undocumented phases of the moon (YMMV). github.com/jnthn/blizkost | 18:49 | |
CBro2007 | ok | ||
oh and I can use C code in p6 yeah? | 18:50 | ||
like call C libraries in p6 i mean | |||
18:50
masak joined
|
|||
CBro2007 | i cannot remember if I read that somewhere or someone mentioned it here | 18:50 | |
18:52
beek left,
beek_ joined
|
|||
mberends | CBro2007: you can compile some C code into Parrot, and then call your code from Rakudo, but it's complicated work, so not often done | 18:52 | |
CBro2007 | hmm i thought it was simpler to use C in p6 than in p5. I think in p5 there is a FFI module that helps | 18:53 | |
pmichaud | it will be simpler to use C, yes. | ||
we have a few hurdles in place yet that need to be removed. | |||
CBro2007 | ok | ||
18:53
jaldhar joined
18:54
masak__ joined
|
|||
mberends | CBro2007: oh, and project zavolaj shows you how to do limited FFI, for example github.com/jnthn/zavolaj/blob/mast...ustomlib.t | 18:54 | |
CBro2007 | ok | 18:55 | |
this will come handy later on in the future | |||
pmichaud | better example might be: github.com/jnthn/zavolaj/blob/mast...lclient.p6 | ||
masak__ | oh hai, #perl6. | ||
life is good at tadzik++'s place. we're eating pierogi. :D | |||
mikemol | pics of gtfo? :P | ||
colomon | pierogi!! | 18:56 | |
colomon drools... | |||
18:56
masak left
|
|||
masak__ | mikemol: working on pics. hold on. | 18:57 | |
pmichaud | gist.github.com/1093407 # latest bench marks | ||
gist.github.com/1093408 # latest bench marks, different machine | |||
nine | awwaiid: interesting read: fdmanana.files.wordpress.com/2010/0...hreads.pdf | 18:58 | |
sorear | o/ CBro2007 | ||
masak__ | o/ CBro2007 | ||
sjohnson | heh | 18:59 | |
pmichaud | #phasers in 0 | 19:00 | |
CBro2007 | so is that to say that Haskell rocks? | ||
nine | moritz: Could fdmanana.files.wordpress.com/2010/0...hreads.pdf be the model for concurrency that is mentioned as suggested by you in S17? The URL in S17 404s | ||
masak__ | Haskell rocks, lazily. | ||
tadzik | proof: i.imgur.com/ByPnO.jpg | ||
masak__ | mikemol: ^ | ||
CBro2007 | masak__: wondering if erlang would do better | 19:01 | |
mikemol | Yumm | ||
masak__ | CBro2007: do better on what? | ||
CBro2007 | with the concurrency model | 19:02 | |
its throughput could be better maybe? | |||
awwaiid | nine: fancy | ||
masak__ | I think Erlang was mentioned as an ideal during some hallway discussion at YAPC::EU 2010. pmichaud was there. | 19:03 | |
CBro2007 | aha | ||
moritz | nine: iirc it had "unification" in the title | ||
19:04
masak__ is now known as masak
|
|||
TimToady | Erlang is a fairly large lamppost that some people find their problems under. | 19:05 | |
Perl 6 is a whole street full of lampposts | 19:06 | ||
moritz | pmichaud: adding :c(0) to Regex.ACCEPTS did not remove the automatic anchoring to start-of-string | 19:07 | |
19:07
am0c left
|
|||
nine | moritz: "A language-based approach to unifying events and threads"? | 19:07 | |
pmichaud | moritz: noted, I'll take a look at it shortly. | ||
awwaiid | nine: it sounds like that paper is kinda like AnyEvent=events, Coro=threads. It doesn't address multi-cpu processing, though I'm not sure if that is immediately relevant | ||
sjohnson | TimToady: well said | ||
moritz | nine: sounds roughly correct | ||
TimToady | philosophically, you need a monadish translator between the transactional view of processing and the event view | 19:08 | |
nine | moritz: ok, then I guess that the one I found is a follow up on yours | ||
pmichaud | Perl 6 is a whole street full of lampposts, some of which are lit and some of which we (the implementors) still bang our heads against in the dark. | ||
moritz | nom: say /b/(Cursor."!curosr_init"("abc"), :c(0)).MATCH | ||
p6eval | nom: OUTPUT«Method '!curosr_init' not found for invocant of class 'Cursor'current instr.: '_block1002' pc 105 ((file unknown):336) (/tmp/hqzlJJV7po:1)» | ||
moritz | nom: say /b/(Cursor."!cursor_init"("abc"), :c(0)).MATCH | ||
p6eval | nom: OUTPUT«» | ||
19:09
Jackneill left
|
|||
nine | awwaiid: still reading :) | 19:09 | |
pmichaud | moritz: the :c(0) is part of the cursor init. | ||
(at least currently it is) | |||
it's not part of the regex invocation. | |||
nom: say /b/(Cursor."!cursor_init"("abc", :c(0))).MATCH | 19:10 | ||
p6eval | nom: OUTPUT«b» | ||
moritz | oh | ||
19:10
birdwindupbird joined
|
|||
moritz | pmichaud: then disregard my comment, I did it wrongly :-) | 19:10 | |
19:11
beek_ is now known as Guest83181
|
|||
masak | Guest18398: I liked 'beek_' better :) | 19:11 | |
moritz | $ ./perl6 -e 'say "abcbd".match(/b/, :g)' | ||
b b | |||
\o/ | |||
pmichaud | \o/ moritz++ | 19:12 | |
19:12
kolibrie_ is now known as kolibrie
19:13
im2ee left
19:18
[particle] left,
thou is now known as thou__
19:21
[particle] joined
|
|||
dalek | kudo/nom: 5ee4881 | moritz++ | src/core/ (2 files): unanchor regexes |
19:22 | |
moritz | nom: /a+ +/ | 19:23 | |
p6eval | nom: OUTPUT«Method 'rxtype' not found for invocant of class 'Integer'current instr.: 'nqp;QRegex;P6Regex;Actions;capnames' pc 63943 (src/stage2/QRegex.pir:19825) (src/stage2/QRegex.nqp:1338)» | ||
19:23
thou__ left,
soh_cah_toa joined,
am0c joined,
pyrimidine joined
|
|||
dalek | ast: e5d54f6 | moritz++ | S05-metasyntax/unknown.t: fudge a test that nom accidentally passed before |
19:24 | |
kudo/nom: c2d9fe3 | moritz++ | t/spectest.data: comment out arrayhash.t again, it only passed by sheer luck before |
19:26 | ||
CBro2007 | was just wondering if there is something along the lines of Python Bindings in the pipeline for p6? | 19:27 | |
moritz | CBro2007: didn't I point you to Zavolaj/NativeCall.pm already? | ||
or is "Bindings" something else than foreign function interface? | 19:28 | ||
CBro2007 | i thought that NativeCall.pm would work only for C code | ||
Python has bindings for several languages | 19:29 | ||
so yeah some sort of a FFI | |||
19:29
birdwindupbird left
|
|||
masak | moritz, CBro2007: you were talking about Dancing Links in the backlog. I have a YAPC::EU talk lined up about that algorithm, and a corresponding github project. the implementation languages are Perl 5/Moose, C, and Perl 6. have only gotten to the Perl 5/Moose part yet, but there's already a working Dancing Links that you can look at. | 19:29 | |
CBro2007 | masak: ok that was moritz's example ;) | ||
masak | yes. | 19:30 | |
it's a good one, though, because Dancing Links is frightfully applicable :) | |||
if you want to implement data structures, I'll be happy to discuss ways to make such a project more useful for Rakudo. | 19:31 | ||
er, s/Rakudo/the Perl 6 implementations/ | |||
CBro2007 | masak: yeah I would like that | ||
masak: I am sure they will come super handy to me in the future too | |||
masak: its just that I might need a library like CGAL (written in C++) - which I could very easily use if I implemented my stuff in Python | 19:32 | ||
masak | CBro2007: I have this feeling about Set and Bag and the other types, that they are an underappreciated force in Perl 6 that don't really come to their right because arrays and hashes have long since established themselves in that semantic niche. | ||
CBro2007 | or maybe even p5 | ||
masak: yeah but I am thinking more in terms of things like - trees, priority queues etc | 19:33 | ||
masak | CBro2007: so what would be needed would be someone to think long and hard how to make Set and Bag et al. dead easy to use -- such that they are on par with arrays and hashes. that's a challenvge, I think, but one that would pay off big time. | ||
CBro2007: ok, those are nice too. not as central, though. | |||
CBro2007 | masak: if you explain how exactly you envision writing Set and Bag then I don't mind working on it with you | 19:34 | |
though I still have to learn more p6 | |||
TimToady | oh, you mean like, make them as much like arrays and hashes as we can while preserving their essential nature...we'll that's what we already have, for the most part | ||
masak | CBro2007: there's already a simple Set implementation in Rakudo master's setting. you can look at it. | ||
TimToady | s/we'll/well | ||
CBro2007 | and this I assume is written in p6 yeah? | 19:35 | |
masak | CBro2007: it's a bit stupd though, and uses uniq which superfluously stringifies everything. | ||
TimToady | if you want to think of a set as a bunch of hash keys, you can | ||
and if not, you can't...er... | |||
19:35
wolfman2000 joined
|
|||
masak | TimToady: yes, I know. I see the potential and the general idea. we're not there yet in practice. | 19:35 | |
wolfman2000! \o/ | |||
wolfman2000 | afternoon | 19:36 | |
CBro2007 | masak: can you give me a link to this implementation? | ||
wolfman2000 | I keep on forgetting: rakudo is now being replaced or phased out for which interpreter/compiler? | ||
CBro2007 | masak: so basically in the set you just want the set of elements to be UNIQUE | ||
TimToady | wolfman2000: for rakudo | ||
moritz | hm, can Kakuro be represented as an exact cover problem? | ||
wolfman2000 | TimToady: last time I was active in here, I thought something else was being developed to replace Rakudo. Guess I misread | 19:37 | |
masak | CBro2007: github.com/rakudo/rakudo/blob/mast...ore/Set.pm | ||
TimToady | wolfman2000: it's all rakudo, except where it isn't | ||
tadzik | wolfman2000: maybe the nom branch of rakudo | ||
masak | wolfman2000: Rakudo is getting a new Rakudo, is all. | ||
wolfman2000 | tadzik: THAT was it. nom | ||
tadzik | nom nom nom | ||
masak | om nom nom! | ||
wolfman2000 | ...either way, don't think it matters. I'll probably wait until Lion comes out before I install Perl 6 again. | 19:38 | |
masak | awww | ||
pmichaud | wolfman2000: rakudo.org/2011/07/19/upcoming-rakudo-releases/ | ||
TimToady | just don't wait for Witch, or it'll never be Christmas | ||
benabik | wolfman2000: In theory, that might be tomorrow. | ||
19:38
ciphertext joined
19:39
alexanderpine joined
|
|||
wolfman2000 | benabik: I've heard that too. | 19:39 | |
tadzik | we'll have to type pretty fas | ||
masak .oO( witchisism ) | |||
tadzik | tt | ||
CBro2007 | masak: how do you intend to make this implementation better? use some other data structure? | ||
19:39
alexanderpine left
|
|||
masak | CBro2007: yes, that would be one option. on a total order type, a tree impl would be better, for example. | 19:40 | |
CBro2007 | hm | ||
masak | CBro2007: and there are many cases like that, not just with Set. | ||
Bag isn't even implemented yet in Rakudo. | |||
neither are KeyHash and KeySet, or whatever they're called. | 19:41 | ||
CBro2007 | masak: i still have to get to the level where I can understand the code already written here :) | ||
TimToady | but you can define circumfix:<⟅ ⟆> at least... | ||
masak | CBro2007: oh, you'll get there in a jiffy. :) | ||
TimToady: looks like two halves of a harp. | 19:42 | ||
sorear | .u ⟅ | ||
tadzik | .u ⟆ | ||
phenny | U+27C5 LEFT S-SHAPED BAG DELIMITER (⟅) | ||
U+27C6 RIGHT S-SHAPED BAG DELIMITER (⟆) | |||
tadzik | sorear: high five :) | ||
sorear | o/ | ||
tadzik | or maybe, high-six | ||
it looks like a pair of snakes to me | |||
TimToady | o⟅⟆o | ||
benabik | Looks like boxes to me. Bad font. :-( | ||
TimToady | try the browser | 19:43 | |
CBro2007 | masak: why isn't a perl hash used? | ||
TimToady | supposed to look like a bag: ⟅_⟆ | ||
masak | CBro2007: I think I used that initially, but wanted to avoid the stringification of the objects in the Set. | 19:44 | |
TimToady | you don't want to have to think about .keys just to get the set elements out | ||
masak | CBro2007: little did I know that uniq used hashes underneath :( | ||
moritz | what else should it use? | ||
TimToady | yes, well, hashes are supposed to allow === semantics | ||
moritz | O(n^2) comparisons? | 19:45 | |
masak | moritz: it should respect the immutability of non-Str types. | ||
moritz | nom: say 2.WHICH | ||
p6eval | nom: OUTPUT«45605280» | ||
moritz | nom: say 2.WHICH; 2.WHICH | ||
p6eval | nom: OUTPUT«61706536» | ||
moritz | nom: say 2.WHICH; say 2.WHICH | ||
p6eval | nom: OUTPUT«7387165673871656» | ||
masak | yes, probably something with .WHICH | ||
TimToady | nom: say 2.WHICH; say (1+1).WHICH | 19:46 | |
p6eval | nom: OUTPUT«6452868052133728» | ||
moritz | :o/ | ||
masak | TimToady and I discussed it a few weeks ago, but neither of us spec'd it. | ||
TimToady | nom: say 2 === 1+1 | ||
p6eval | nom: OUTPUT«Bool::True» | ||
moritz | whoa | ||
CBro2007 | I assume that the Set can have any type of objects in it yeah and so how do you propose we make a comparison to check if objects are equal? | 19:47 | |
TimToady | that's what === means | ||
masak | yes, uniq should use ===, which uses .WHICH | ||
TimToady | but see above | ||
CBro2007 | ah i see | ||
masak | aye. | ||
TimToady | methinks === is cheating | 19:48 | |
CBro2007 | so are we saying that this implementation is ok now? | ||
pmichaud | of course it's cheating :) | ||
sorear | niecza: say 2 === 1+1 | ||
TimToady | CBro2007: universals are problemantic | ||
p6eval | niecza v7-39-gfe88724: OUTPUT«Bool::False» | ||
TimToady | oopsie | 19:49 | |
niecza: say 2.WHAT; say (1+1).WHAT | |||
p6eval | niecza v7-39-gfe88724: OUTPUT«Int()Int()» | ||
TimToady | niecza: say 2.WHICH; say (1+1).WHICH | 19:50 | |
p6eval | niecza v7-39-gfe88724: OUTPUT«Unhandled exception: Unable to resolve method WHICH in class Int at /tmp/u7d82Y4anU line 1 (MAIN mainline @ 1)  at /home/p6eval/niecza/lib/CORE.setting line 1891 (CORE C885_ANON @ 2)  at /home/p6eval/niecza/lib/CORE.setting line 1892 (CORE module-CORE… | ||
CBro2007 | just while you guys are at it : | 19:52 | |
our multi sub infix:<(|)>( @a, %b) { Set.new(|@a).union(%b) } | |||
our multi sub infix:<(|)>( @a, @b) { Set.new(|@a).union(@b) } | |||
is that like C++ operator overloading? | |||
so "a|b" means a union b? | 19:53 | ||
masak | (|) | ||
yes | |||
TimToady | a (|) b | ||
CBro2007 | gotcha | ||
ok | |||
hmm | |||
19:53
timbunce_ joined
|
|||
TimToady | but unlike C++ new operators are encouraged over reusing unrelated old operators | 19:53 | |
<< for IO (shudder) | 19:54 | ||
sorear | TimToady: In 'my @a[EXPR]; ' when is EXPR evaluated? | ||
masak | unless the new type is actually a number. :) | ||
sorear | I can make arguments for BEGIN, ENTER, and DO | ||
CBro2007 | and it would be stupid to write separate implementations for the different types using multi? | ||
so a Set of Numeric would behave differently from a Set of Strings maybe | |||
TimToady | sorear: so can I :) | ||
masak | CBro2007: what do you mean? that's what's done above. | ||
CBro2007 | guess that would be a lot of work | 19:55 | |
TimToady | I figure, though, that if it's DO, and a constant, we can promote it to BEGIN | ||
likewise ENTER if it's a ro param | |||
and most such declarations will be constants anyway | |||
so I think DO is more general, if a bit more tormenty | 19:56 | ||
19:56
timbunce left,
timbunce_ is now known as timbunce
|
|||
CBro2007 | masak: I mean that we didn't want to use hashes and we said there is a problem in using === , then can it be resolved if we looked at the types in a case by case basis? | 19:56 | |
masak: coz right now the implementation is trying to do this in a generic manner yeah? I could be wrong | |||
masak | CBro2007: I think uniq should use ===, and that Rakudo maybe shouldn't cheat with .WHICH :) | 19:57 | |
CBro2007: (but the fact that it does doesn't really matter in this case) | |||
pmichaud | masak: patches welcome. | ||
sorear | TimToady: DO is probably easiest, actually, although it raises the question of what say @*foo.perl; my $x = rand; my @*foo[$x]; does | ||
CBro2007 | ok | ||
masak | pmichaud: ok, noted. will think about a solution in my copious spare time :P | 19:58 | |
pmichaud | masak: :) | ||
sorear | masak: are you familiar with the gist embed widget? | ||
masak | sorear: nopes. | ||
TimToady | CBro2007: it would certainly be possible to define set as a generic role that can be instantiated to accept only a particular type | ||
and just autopuns to Any if you don't supply a type | 19:59 | ||
TimToady thinks about a Bag of Candy | |||
CBro2007 | well you are the champ here mate.. I just started looking at p6 2 days ago :) | ||
TimToady floats off cross-legged and smashes into a lamppost | 20:00 | ||
masak | :P | ||
TimToady: be glad there are no flying cars yet! | 20:01 | ||
sorear | o/ CBro2007 | ||
fresh blood is always useful | |||
TimToady sharpens his fangs | |||
20:01
mkramer joined
|
|||
CBro2007 | hehe | 20:01 | |
20:01
mkramer left
20:02
spinclad left
|
|||
masak | wow. hasty jump from a floating-guru metaphor to a vampire metaphor there. :) | 20:02 | |
TimToady blames the lamppost | |||
masak | but some vampires fly, I guess. | ||
TimToady | TheDamian never mentioned *how* I manage to be thousands of years old... | 20:06 | |
why do you think I sleep so much during the day? :) | 20:09 | ||
nap & | |||
masak | I always thought it had to do with time travel, like the Italian Perl Mongers suggested. | 20:12 | |
20:12
spinclad joined
20:14
supernovus joined
20:16
tokuhirom joined
|
|||
supernovus | So, to call a method that you don't know the name at runtime, you can do $object."$method"(); What if I want to create an instance of an object where I don't know it's class up front. Say $classname contains the string name of the class, it does not appear possible to do $classname.new(); or "$classname".new(); The only way I've found to do this is $object = eval("$classname.new"); which seems rather hackish. Is there a better | 20:18 | |
way? | |||
20:19
molaf left
|
|||
moritz | ::($classname).new, once it's implemented | 20:20 | |
masak | std: my $classname = "Foo"; ::($classname).new | ||
p6eval | std 516268a: OUTPUT«ok 00:01 121m» | ||
masak | niecza: class Foo {}; my $classname = "Foo"; say ::($classname).new | ||
p6eval | niecza v7-39-gfe88724: OUTPUT«===SORRY!===Cannot make a compile time reference to the semantic root package at /tmp/1DIQrUw_db line 1:------> y $classname = "Foo"; say ::($classname)⏏.newUnhandled exception: Check failed at /home/p6eval/niecz… | 20:21 | |
benabik | nom: ::('List').new | ||
p6eval | nom: OUTPUT«Indirect name lookups not yet implemented at line 1, near ".new"current instr.: 'nqp;HLL;Grammar;panic' pc 23533 (src/stage2/gen/NQPHLL.pir:6314) (src/stage2/gen/NQPHLL.pm:328)» | ||
moritz | nom: say pir::find_lex('Int') | ||
p6eval | nom: OUTPUT«error:imcc:The opcode 'find_lex_p' (find_lex<1>) was not found. Check the type and number of the arguments in file '(file unknown)' line 12512675» | ||
moritz | nom: say pir::find_lex__PS('Int') | ||
p6eval | nom: OUTPUT«Int()» | ||
masak | sorear: what does that mean? | ||
moritz | nom: say pir::find_lex__PS('Unknown') | ||
p6eval | nom: OUTPUT«Null PMC access in find_method('gist')current instr.: 'say' pc 446947 (src/gen/CORE.setting.pir:114083) (src/gen/CORE.setting:3509)» | ||
supernovus | Awesome, I'll document that in the comments, and leave it with the eval for now. I figured there would be some plan to cover this kind of functionality. | 20:22 | |
pmichaud | seems like nom could implement ::(EXPR) interpolation relatively easily. | ||
moritz | nom: class A { }; say pir::find_lex__PS('A') | 20:23 | |
p6eval | nom: OUTPUT«A()» | ||
moritz | pmichaud: that's what I just concluded too :-) | ||
supernovus | I haven't been brave enough to test nom yet. | 20:25 | |
PerlJam | supernovus: soon you won't have to be brave as it'll be the default :-) | ||
moritz | pmichaud: what's the best way? a builtin that uses find_caller_lex ? | ||
pmichaud | moritz: that's what I'd try first, yes. | 20:26 | |
moritz | nom: class A::B { }; say pir::find_lex__PS('A::B') | ||
p6eval | nom: OUTPUT«Null PMC access in find_method('gist')current instr.: 'say' pc 446947 (src/gen/CORE.setting.pir:114083) (src/gen/CORE.setting:3509)» | ||
moritz | nom: class A::B { }; say pir::find_lex__PS('A') | ||
p6eval | nom: OUTPUT«Null PMC access in find_method('gist')current instr.: 'say' pc 446947 (src/gen/CORE.setting.pir:114083) (src/gen/CORE.setting:3509)» | ||
masak | ah, so not "works in nom", but "relatively easy to implement in nom" :) | ||
moritz | ah well, it's a first shot | ||
pmichaud | I'm a little surprised that second one didn't work. | ||
moritz too | 20:27 | ||
could be our-scoped though | |||
supernovus | PerlJam: Awesome! I hope... :-) | ||
benabik | nom: class A::B { }; say pir::find_lex__PS('B') # shouldn't work | ||
p6eval | nom: OUTPUT«Null PMC access in find_method('gist')current instr.: 'say' pc 446947 (src/gen/CORE.setting.pir:114083) (src/gen/CORE.setting:3509)» | ||
pmichaud | nom: our class A::B { }; say pir::find_lex__Ps('A'); | ||
p6eval | nom: OUTPUT«Null PMC access in find_method('gist')current instr.: 'say' pc 446947 (src/gen/CORE.setting.pir:114083) (src/gen/CORE.setting:3509)» | ||
20:27
jaldhar left
|
|||
moritz | nom: package A { class B { } }; say pir::find_lex__PS('A') | 20:27 | |
p6eval | nom: OUTPUT«No method cache and no find_method method in meta-objectcurrent instr.: 'say' pc 446947 (src/gen/CORE.setting.pir:114083) (src/gen/CORE.setting:3509)» | ||
moritz | wow | ||
benabik | nom: package A { }; say A | 20:28 | |
p6eval | nom: OUTPUT«No method cache and no find_method method in meta-objectcurrent instr.: 'say' pc 446947 (src/gen/CORE.setting.pir:114083) (src/gen/CORE.setting:3509)» | ||
benabik | Consistent, at least. | ||
moritz | seems that 'package' isn't really well implemented | ||
pmichaud | nom: package A { }; say A.WHAT; | ||
p6eval | nom: OUTPUT«No method cache and no find_method method in meta-objectcurrent instr.: 'say' pc 446947 (src/gen/CORE.setting.pir:114083) (src/gen/CORE.setting:3509)» | ||
20:28
jaldhar joined
|
|||
pmichaud | it's still bootstrappish, so might be incomplete. | 20:28 | |
nom: package A { }; say A.^parents; | |||
p6eval | nom: OUTPUT«No method cache and no find_method method in meta-objectcurrent instr.: '_block1002' pc 79 ((file unknown):525) (/tmp/5KtqsG3IzX:1)» | ||
sorear | masak: I think it means that it parsefailed and got very confused. | 20:30 | |
masak | ah. | ||
moritz | nom: my Mu $x := pir::null__P(); say 'alive' | ||
p6eval | nom: OUTPUT«alive» | ||
masak | nom: my Mu $x := pir::null__P(); say $x | 20:31 | |
p6eval | nom: OUTPUT«Null PMC access in find_method('gist')current instr.: 'say' pc 446947 (src/gen/CORE.setting.pir:114083) (src/gen/CORE.setting:3509)» | ||
[Coke] | Anything rakudo needs from parrot before 3.7? | ||
(well, /in/ 3.7) | 20:32 | ||
20:32
Holy_Cow joined
|
|||
moritz | a fast JIT compiler | 20:33 | |
subroutine exit hooks | |||
faster exceptions | 20:34 | ||
masak | ability to implement DESTROY methods | ||
moritz | that might already be there | ||
but so far I didn't dare to touch the 6model code to try it out | 20:35 | ||
masak | that's a no-op, then :) | ||
[Coke] | those sound more like wants. ;) | 20:36 | |
20:36
timbunce left
|
|||
flussence | I want the \d$ thing in sprintf! | 20:36 | |
moritz | [Coke]: don't go all nit-picky :-) | ||
masak | I want Perl 6 to be as fully implemented as possible, as soon as possible. :) | ||
20:36
Mowah left
20:37
Chillance left
|
|||
tadzik | and as correctly as possible | 20:37 | |
moritz | std: A::('x')::B | 20:39 | |
p6eval | std 516268a: OUTPUT«ok 00:01 119m» | ||
moritz | urks | ||
supporting that kind of lookup will not fall out easily from the current factoring | |||
masak | why not? | 20:40 | |
pmichaud | for now, just focus on the ::( ) form with the leading ::, I think. | 20:41 | |
moritz | pmichaud: that's what I do | ||
tadzik | [Coke]: oh, and no forbidden-in-C practices :) | ||
[Coke]: see wklej.org/id/561555/ | |||
benabik | I'd think A::('x')::B would end up translating to A::('x')::('B') behind the scenes. | ||
moritz | masak: because the easist approach is to installl a lookup for token morename, which parses ::(<EXPR>) | 20:42 | |
masak | I see. | ||
well, what pmichaud said :) | |||
moritz | and A::B is basically parsed as <name> <morename> | ||
what I could do is fiddling the action methods for token name | |||
but that's something for later, yes | 20:43 | ||
$ ./perl6 -e 'say INDIRECT_NAME_LOOKUP("Int")' | 20:46 | ||
Int() | |||
first step :-) | |||
masak | moritz++ | 20:47 | |
tadzik | oh, moritz++ indeed | 20:50 | |
that'll help Pod too! | |||
The Pod::Block::Named::Foo thingy | |||
masak | \o/ | ||
20:50
donri left
|
|||
moritz | tadzik: ... which my current patch won't do :( | 20:51 | |
masak | not evern with INDIRECT_NAME LOOKUP("Pod::Block::Named::$name")? | ||
moritz | masak: no, I don't know how to look up such a type | 20:52 | |
masak | oh. | ||
tadzik | aw | ||
masak | neither do I. | ||
tadzik | oh wait, I think I patched that in SymbolTable in the podparser branch | ||
maybe it's that thing, let me look it up | |||
moritz | tadzik: is the SymbolTable accessable at run time? | 20:53 | |
sorear | masak: I'm kinda at a loss for what to do. colomon++ is tackling trig | ||
tadzik | moritz: see github.com/rakudo/rakudo/commit/82b7267d78178 | ||
maybe that'll help | |||
moritz: oh, probably not really | |||
20:54
Holy_Cow left
|
|||
masak | sorear: I guess you mean that you don't have a clear idea what to tackle next. I can't imagine that there's a lack of options. :) | 20:54 | |
20:54
lichtkind joined
|
|||
moritz | look at a spectest file that doesn't pass; make it pass; repeat until done | 20:55 | |
20:57
wamba left
|
|||
moritz | $ ./perl6 -e 'say ::(Int)' | 21:00 | |
Could not locate compile-time value for symbol (Int) | |||
:( | |||
oh, I'm doing it RONG | |||
still the same error if you say ::("Int") | 21:01 | ||
21:01
am0c left
|
|||
moritz | seems like some action method does something token morename that it shouldn't | 21:02 | |
masak | rakudo: s/ /_/g | 21:04 | |
p6eval | rakudo f63b82: OUTPUT«===SORRY!===Unsupported use of /g; in Perl 6 please use :g at line 22, near ""» | ||
masak | rakudo++ | ||
moritz | std: s/ /_/g | 21:06 | |
p6eval | std 516268a: OUTPUT«===SORRY!===Null pattern not allowed at /tmp/64hme9uuMg line 1:------> s/ ⏏/_/g expecting quantifierParse failedFAILED 00:01 119m» | ||
moritz | thought so :-) | ||
std++ | |||
sorear | niecza: s/ /_/g | 21:07 | |
p6eval | niecza v7-39-gfe88724: OUTPUT«===SORRY!===Null pattern not allowed at /tmp/bg6izzAGwD line 1:------> s/ ⏏/_/gParse failed» | ||
sorear | niecza: s/./_/g | ||
p6eval | niecza v7-39-gfe88724: OUTPUT«===SORRY!===Unsupported use of suffix regex modifiers; in Perl 6 please use prefix adverbs at /tmp/PA_T1ztkH9 line 1 (EOF):------> s/./_/g⏏<EOL>Other potential difficulties: Unsupported use of /g; in Perl 6 please … | ||
moritz | niecza++ | ||
sorear | std: s/./_/g | ||
p6eval | std 516268a: OUTPUT«===SORRY!===Unsupported use of suffix regex modifiers; in Perl 6 please use prefix adverbs at /tmp/A9hIDr2xXc line 1:------> s/./_/g⏏<EOL>Other potential difficulties: Unsupported use of /g; in Perl 6 please use :g at /tmp/A9… | ||
dalek | kudo/nom-indirect-name-lookup: fcd142d | moritz++ | src/ (3 files): first attempt at indirect name loookup. Does not work yet, method term:sym<name> in Actions.pm needs to learn not to touch indirect name lookups first |
21:10 | |
moritz should make shorter branch names | |||
moritz -> sleep | 21:12 | ||
sorear | ooh, sleep, this is my chance! :D | ||
21:14
am0c joined
|
|||
masak | perchance to dream. ay, there's the rub. | 21:16 | |
21:17
kaare__ left
21:22
bluescreen10 left,
supernovus left
|
|||
masak | rakudo: my @a = "OH HAI"; say so "OH HAI" ~~ /<@a>/ | 21:24 | |
p6eval | rakudo f63b82: OUTPUT«Bool::False» | ||
masak | I think this is wrong. | ||
masak submits rakudobug | |||
The default way in which the engine handles a string scalar is to match it as a C<< '...' >> literal (i.e. it does not treat the interpolated string as a subpattern). | 21:25 | ||
(from S05) | |||
rakudo: my @a = "OH\\sHAI"; say so "OH HAI" ~~ /<@a>/ | 21:26 | ||
p6eval | rakudo f63b82: OUTPUT«Bool::True» | ||
masak | uurgh, | ||
. | |||
rakudo: my $x = "OH\\sHAI"; say so "OH HAI" ~~ /<$x>/ | 21:27 | ||
p6eval | rakudo f63b82: OUTPUT«Bool::True» | ||
masak | oh! it occurs for scalars as well. | ||
benabik | rakudo: my @a = "string?"; say @a.perl | 21:28 | |
p6eval | rakudo f63b82: OUTPUT«["string?"]» | ||
benabik | Ah. It becomes a one element list. Makes sense. | 21:29 | |
sorear | masak: I think <@a> is quite completely unimplemented | ||
masak | sorear: it felt like it worked when I tried it on one-word strings. | 21:30 | |
and ISTR someone working on it in Rakudo around the time ng landed. | |||
tadzik | ennnnnnnd: redmine.ruby-lang.org/issues/5054 | 21:32 | |
masak | reminds me of ] in Lisp for "close all open parentheses". | 21:33 | |
21:34
kjeldahl left
|
|||
benabik | tadzik: I like comment #20: "I think the phrase "fold up" is more descriptive of what this is attempting to do." | 21:36 | |
21:37
bluescreen10 joined
|
|||
flussence sees that, almost falls out of chair | 21:37 | ||
masak | I think a feature like that would at least complicate code refactoring. | ||
s/at least/in the best case/ | 21:38 | ||
flussence | it's easier to condense to one line when you have punctuation instead of words, but it's still pretty nasty to maintain: gist.github.com/1093796 | 21:42 | |
[Coke] | bah. Just make your editor a compiler, and have it dynamically replace ] with the appropriate # of )'s | ||
flussence | {I even caught myself writing a /(}\s+)+/ mess today at $dayjob, made the inside a sub instead which was much nicer.} | 21:45 | |
21:45
bluescreen10 left
|
|||
flussence | I try to follow Linus' guideline of (loosely paraphrased): "if you're using more than 3 levels of indentation, you're doing it wrong" | 21:46 | |
[Coke] | that's | 21:47 | |
not | |||
masak | I find that doesn't always hold. see what you think of array multiplication, for example. | 21:48 | |
[Coke] | entirely | ||
crazy. | |||
masak | [Coke]: sorry, for barging in on your visual pun :) | ||
21:48
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
[Coke] | o/~~ | 21:48 | |
masak | s/,// | ||
[Coke] | nope, that doesn't look a fist shaking. | ||
more like armpit hair. | |||
masak | eww | ||
[Coke] | one line ascii art is hard. | 21:50 | |
flussence | Unicode doesn't have a "MAN SHAKING FIST IN AIR" glyph either :( | 21:51 | |
sjohnson | unicode art is easier | ||
.u ying yang | |||
phenny | sjohnson: Sorry, no results for 'ying yang'. | ||
tadzik | speaking of unicode art, sjohnson... | ||
sjohnson | ( `ー´) | ||
.u ( `ー´) | 21:52 | ||
phenny | sjohnson: U+FF08 U+3000 U+FF40 U+30FC U+00B4 U+FF09 | ||
sjohnson | (FAT FACE) | ||
tadzik | yeah :) | ||
[Coke] | .u yin | ||
phenny | U+262F YIN YANG (☯) | ||
[Coke] | .u there | ||
phenny | U+2203 THERE EXISTS (∃) | ||
flussence | .oO( I wish there was a tool that lists which local fonts have a given codepoint... ) |
21:53 | |
sjohnson | .u trollfeace | 21:54 | |
phenny | sjohnson: Sorry, no results for 'trollfeace'. | ||
sjohnson | oops | ||
sjn | hehe | 21:55 | |
sjn wonders what it takes to get that image into the spec :) | |||
sjohnson | .u FOREVER ALONE | 21:57 | |
phenny | sjohnson: Sorry, no results for 'FOREVER ALONE'. | ||
masak | RT is down :( | ||
[Coke] | seen robrt? | 21:58 | |
aloha | Sorry, I haven't seen robrt. | ||
[Coke] | hurm. it's responding slooooooooooooooooooooooooowly. | 22:00 | |
masak: did you open a ticket ? | 22:08 | ||
you know, metaphorically? | |||
if not, I can ping Robrt. | |||
masak | [Coke]: I didn't. please do. | 22:11 | |
22:11
drbean joined
|
|||
[Coke] | masak? | 22:13 | |
phenny, masak? | |||
bot hell. | |||
no cc for you. | 22:14 | ||
masak | that's fine. I'll notice when it's up again :) | 22:15 | |
'night, #perl6 | 22:17 | ||
22:17
masak left
|
|||
[Coke] | should be back now | 22:18 | |
ask++ | |||
22:55
miso2217__ left
22:56
miso2217 joined
22:59
impious joined
23:18
impious left
23:20
ggoebel left
23:24
ggoebel joined
23:29
ggoebel left
23:30
orafu joined
23:33
Khisanth joined
|
|||
dalek | ok: 0e7afd7 | (Sveinn Sandvik Svendsen)++ | src/basics.pod: Corrected a spelling mistake in a label |
23:34 | |
ok: 5b40d35 | smash++ | src/basics.pod: Merge pull request #57 from sveinns/master A small spelling mistake corrected. |
|||
sorear | smash: is Sveinn on iRC? | ||
23:35
ggoebel joined
23:39
ggoebel left
|
|||
smash | sorear: sorry, don't know | 23:43 | |
bbt | 23:45 | ||
23:45
ggoebel joined,
smash left
23:46
thou__ joined
23:48
CBro2007 left
23:58
dayangkun joined
|