»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by sorear on 25 June 2013. |
|||
00:11
dayangkun left
00:19
ajr_ left
00:21
thou left
|
|||
timotimo | ufo wants updating, too. for $*VM<name> | 00:24 | |
00:24
dayangkun joined
00:26
raiph joined
00:35
askz joined
00:46
john3213 joined
00:50
virtualsue joined
00:51
john3213 left
|
|||
timotimo | i'm running into trouble with trying to build a simple GTK::Simple app | 00:59 | |
i have added two buttons to my window and tapped one's clicked supply and the other's | |||
but clicking the other button mores the first button's clicked tap, too | |||
colomon | timotimo++ | 01:00 | |
timotimo | and it don't seem like the second button's supply gets more'd at all | ||
two supplies do get created. but that's about it. | 01:02 | ||
yeah, i really don't get it. | 01:04 | ||
someone ought to check out the examples/01 in perl6/gtk-simple | 01:07 | ||
01:07
klapperl joined
|
|||
timotimo | it behaves very oddly | 01:07 | |
there's debug output in there | |||
01:10
klapperl_ left
01:12
SHODAN left
01:19
bowtie left
01:25
bowtie joined
01:26
sjn_mob left
01:30
shalom1024 joined
01:40
shalom1024 left
01:41
virtualsue left
01:46
pdcawley_ joined
01:48
pdcawley left,
SHODAN joined
01:50
FROGGS_ joined
01:51
thou joined
01:52
Su-Shee left,
dayangkun left
01:53
Sqirrel left,
dayangkun joined
01:54
FROGGS left,
Su-Shee joined
01:55
thou left
02:21
telex left
02:22
telex joined
02:25
Grimnir_ left,
Grimnir__ joined
02:29
kurahaupo joined
02:31
shalom1024 joined,
Sqirrel joined
02:32
Sqirrel_ joined
02:33
AndChat-458964 joined
02:36
Sqirrel left
02:37
Sqirrel_ left
02:38
AndChat-458964 left
02:41
Timbus left
02:42
Timbus joined
03:03
araujo left,
Exodist left,
ivanshmakov left,
mattp_ left,
crazedpsyc left,
Rix left,
mtj_- left,
avar left,
felipe left,
moritz left,
BooK left,
BinGOs left,
obra left,
robinsmidsrod left,
masak left,
cxreg left,
PerlJam left,
tobiasvl left,
ggherdov left,
ribasushi left,
Khisanth left,
ilogger2 joined
03:04
nhayashi joined,
go|dfish1 joined,
stux|away joined,
FOAD_ joined,
Shozan joined,
nebuchad` joined,
FROGGS__ joined,
tadzik1 joined,
Timbus_ joined,
skids1 joined,
woolfy1 joined,
shalom1034 joined,
BenGoldberg joined,
pochi_ joined,
kurahaupo joined,
Grimnir__ joined,
telex joined,
Su-Shee joined,
dayangkun joined,
FROGGS_ joined,
SHODAN joined,
pdcawley_ joined,
bowtie joined,
klapperl joined,
askz joined,
raiph joined,
ppabian joined,
sftp joined,
skids joined,
colomon joined,
berekuk joined,
xragnar joined,
Tene joined,
breinbaa1 joined,
xinming_ joined,
lizmat joined,
araujo joined,
effbiai_ joined,
yeltzooo joined,
mhasch joined,
Celelibi joined,
hoelzro_ joined,
__sri joined,
ivanshmakov joined,
Exodist joined,
amkrankruleuen joined,
ribasushi joined,
donaldh joined,
JimmyZ_ joined,
larks joined,
brother joined,
DarthGandalf joined,
frettled_ joined,
Juerd joined,
retupmoc1 joined,
avuserow2 joined,
salv01 joined,
lee__ joined,
dalek joined,
eternaleye joined,
dagurval joined,
dwarring joined,
zamolxes joined,
vendethiel joined,
REPLeffect joined,
autark joined,
cognominal joined,
mr-foobar joined,
Vlavv joined,
Alula joined,
aindilis joined,
cosimo joined,
krunen joined,
djanatyn joined,
[Sno] joined,
cooper joined,
oetiker joined,
clkaoud joined,
ggherdov joined,
rurban_ joined,
Psyche^_ joined,
mattp_ joined,
Alina-malina joined,
felher joined,
mathw joined,
Bucciarati joined,
camelia joined,
woosley joined,
lue joined,
chenryn joined,
xiaomiao joined,
atta joined,
bbkr joined,
haroldwu joined,
morgan.freenode.net sets mode: +vv dalek camelia,
robinsmidsrod joined,
Pleiades` joined,
logie_ joined,
obra joined,
apejens joined,
Util joined,
ponbiki joined,
revdiablo joined,
firnsy joined,
awwaiid joined,
lyda joined,
ivan`` joined,
kst joined,
cibs joined,
nwc10 joined,
MilkmanDan joined,
PerlJam joined,
cxreg joined,
eiro joined,
perigrin joined,
masak joined,
dylanwh joined,
hugme joined,
d^_^b joined,
pmichaud joined,
ingy joined,
moritz joined,
BooK joined,
BinGOs joined,
charsbar_______2 joined,
broquaint joined,
[Coke] joined,
synopsebot joined,
crazedpsyc joined,
Rounin joined,
felipe joined,
Gothmog_ joined,
ilbot3 joined,
avar joined,
tobiasvl joined,
integral joined,
eMBee joined,
mtj_- joined,
Rix joined,
sivoais joined,
arnsholt joined,
renormalist joined,
morgan.freenode.net sets mode: +v hugme,
mls joined,
Maddingue joined,
japhb joined,
cotto joined,
jlaire joined,
Woodi joined,
yakudza joined,
smash joined,
kshannon joined,
anocelot joined,
labster joined,
rhr joined,
sjn joined,
pnu joined,
isacloud__ joined,
clkao joined,
ashleydev joined,
jnthn joined,
daxim joined,
Grrrr joined,
baest joined,
jercos joined,
jtpalmer joined,
slavik joined,
mtj joined,
thilp joined,
LordVorp joined,
dj_goku joined,
ggoebel111115 joined,
takesako_____ joined,
sergot joined,
huf joined,
PZt joined,
Khisanth joined,
raydiak joined,
lestrrat joined,
sunnavy joined,
TimToady joined,
simcop2387 joined,
xalbo joined,
risou joined,
tokuhirom joined,
yogan_ joined,
erdic joined,
flussence joined,
atrodo joined,
timotimo joined,
sorear joined,
xfix joined,
bcode joined,
geekosaur joined,
[particle] joined
03:05
bowtie left
03:07
molaf joined,
xragnar left
03:08
FOAD_ is now known as FOAD
03:09
FROGGS_ left,
SHODAN left,
skids left,
huf left
03:11
bowtie joined
03:12
xragnar joined
03:14
huf joined
03:15
berekuk left,
colomon left
03:18
Ulti joined,
segomos joined
03:21
xragnar left
03:23
xragnar joined
03:25
Alula left
03:29
SevenWolf joined
03:36
Alula joined
03:39
thou joined
03:43
fhelmberger joined,
thou left
03:44
SamuraiJack__ joined,
go|dfish1 is now known as go|dfish
03:48
fhelmberger left
03:57
berekuk joined,
colomon joined
04:02
kaare_ joined
04:11
thou joined,
anaeem1_ joined
04:17
anaeem1_ left
04:18
anaeem1 joined
04:40
SamuraiJack joined
04:41
SamuraiJack__ left
04:47
thou left
04:50
kaare_ left
05:05
berekuk left,
colomon left
05:06
raiph left
05:21
DarthGandalf left
05:29
kaare_ joined
05:31
DarthGandalf joined
05:34
BenGoldberg left
|
|||
FROGGS__ | m: FOO: while 1 { say 1; last FOO }; say FOO | 05:43 | |
camelia | rakudo-moar f5e98b: OUTPUT«1Label<FOO>(at /tmp/XGK3A4MmyP:1, '⏏FOO: while 1 { say 1; last')» | ||
05:43
FROGGS__ left
05:47
SamuraiJack left
05:55
autark left
06:01
kaleem joined
06:03
denis_boyun_ joined
06:09
nebuchad` is now known as nebuchadnezzar
06:25
SevenWolf left
06:26
SevenWolf joined
06:31
sjn_mob joined
|
|||
lizmat | good *, #perl6! | 06:34 | |
I tried jnthn "say" patch, but it gives some spectest errors I would like to look into before committing | |||
and since I won't have time for that today, I think I'll wait until after this month's release has been cut | |||
just to be on the safe side | 06:35 | ||
06:45
sjn_ joined
06:46
denis_boyun_ left
06:47
sjn_mob left,
FROGGS joined
06:59
Ven joined
07:11
SevenWolf left
07:15
darutoko joined
|
|||
moritz | m: FOO: while False { }; say FOO.^name | 07:15 | |
camelia | rakudo-moar f5e98b: OUTPUT«Label» | ||
moritz | m: FOO: while False { }; say FOO.^methods | ||
camelia | rakudo-moar f5e98b: OUTPUT«new name gist Int next redo last» | ||
moritz | woah, first class labels | 07:16 | |
m: A: for 1..3 -> $a { B: for <a b c> -> $b { say "$a $b"; (A, B).pick.next } } | 07:18 | ||
camelia | rakudo-moar f5e98b: OUTPUT«1 a1 b1 c2 a2 b3 a3 b» | ||
moritz | m: A: for 1..3 -> $a { B: for <a b c> -> $b { say "$a $b"; (A, A, B).pick.next } } | ||
camelia | rakudo-moar f5e98b: OUTPUT«1 a1 b2 a2 b3 a3 b» | ||
moritz | r: A: for 1..3 -> $a { B: for <a b c> -> $b { say "$a $b"; (A, A, B).pick.next } } | 07:19 | |
camelia | rakudo-parrot f5e98b: OUTPUT«1 a2 a2 b3 a» | ||
..rakudo-jvm f5e98b: OUTPUT«1 a1 b1 c2 a2 b2 c3 a» | |||
..rakudo-moar f5e98b: OUTPUT«1 a2 a3 a» | |||
moritz | computed got^Wnext! | ||
masak | morn's, #perl6! | ||
moritz | \o masak | 07:20 | |
FROGGS | morning | 07:21 | |
masak | first class labels! \o/ | ||
FROGGS++ # I assume | |||
FROGGS | :o) | ||
moritz | good FROGGS++ :-) | ||
07:21
SamuraiJack joined,
zakharyas joined
|
|||
masak | m: FOREVER: loop { say "step"; last FOREVER }; say "meanwhile, much much later..." | 07:21 | |
camelia | rakudo-moar f5e98b: OUTPUT«stepmeanwhile, much much later...» | ||
masak | \o/ | 07:22 | |
this is awesome | |||
m: FOREVER: loop { say "step"; FOREVER.last }; say "meanwhile, much much later..." | |||
camelia | rakudo-moar f5e98b: OUTPUT«stepmeanwhile, much much later...» | ||
masak | whoa. | ||
I will be teaching today, but all the time my brain will go "Rakudo has loop labels... zoinks..." | |||
FROGGS: I blame you :P | 07:23 | ||
FROGGS | g* | ||
err | |||
*g* | |||
g* <-- Bruce Willis smile | |||
masak | ;) | 07:24 | |
Ven | m: FOREVER: loop { loop { loop { say "step"; FOREVER.last } LEAVE { say "unstep--"; } }; LEAVE { say "unstep"; } }; say "meanwhile, much much later..." | 07:27 | |
camelia | rakudo-moar f5e98b: OUTPUT«===SORRY!=== Error while compiling /tmp/aIzk7rZbGsConfusedat /tmp/aIzk7rZbGs:1------> oop { loop { say "step"; FOREVER.last } ⏏LEAVE { say "unstep--"; } }; LEAVE { say expecting any of: metho…» | ||
Ven | m: FOREVER: loop { loop { loop { say "step"; FOREVER.last }; LEAVE { say "unstep--"; } }; LEAVE { say "unstep"; } }; say "meanwhile, much much later..." | ||
camelia | rakudo-moar f5e98b: OUTPUT«stepunstep--unstepmeanwhile, much much later...» | ||
Ven | Yay :-). FROGGS ++ | 07:28 | |
FROGGS | I wonder what I should put into the features matrix... because we cannot goto yet, and we cannot specify return values of a block via Label.last(...) | 07:29 | |
the feature is just called 'Labeled loops' | |||
and goto is not exactly about that | 07:30 | ||
I guess I add 'goto' as a separate feature? | |||
I would like to put the 'Labeled loops' feature into the state 'implemented', because specifying return values via .last is sort of an add-on | 07:32 | ||
moritz / masak: opinions? | |||
moritz | FROGGS: +1 | ||
FROGGS | thanks :o) | ||
sergot | morning o/ | 07:33 | |
FROGGS | morning sergot | ||
07:33
zakharyas left
|
|||
sergot | FROGGS++ | 07:33 | |
FROGGS | thank you | 07:34 | |
07:45
berekuk joined,
colomon joined
|
|||
dalek | atures: 71145f6 | (Tobias Leich)++ | features.json: tick boxes for labels for rakudo and add seperate 'goto' |
07:46 | |
07:47
donaldh_ joined
08:00
woolfy1 left
|
|||
dalek | kudo/nom: 900f0ba | (Elizabeth Mattijsen)++ | src/core/asyncops.pm: The first actual use of last LABEL in core? |
08:01 | |
lizmat | sightseeing& | 08:03 | |
FROGGS | have fun | 08:04 | |
08:04
lizmat left
08:07
zakharyas joined,
donaldh left,
donaldh_ is now known as donaldh,
virtualsue joined
08:09
cooper left
08:13
sqirrel joined
08:14
dwarring left
|
|||
chenryn | will Perl6 support compile to binary like golang? | 08:20 | |
moritz | chenryn: it'll probably always need more runtime than go | ||
chenryn: currently the parrot and moarvm backends compile to bytecode, which can be bundleded together with the VM in a single executable | 08:21 | ||
(not yet done automatically) | |||
chenryn | I think it's too big after bundle a VM... | 08:22 | |
moritz | do you know how big the VM is? | ||
08:23
cooper joined
|
|||
moritz | $ du -h install/bin/moar | 08:23 | |
24K install/bin/moar | |||
chenryn | ==, great! | 08:24 | |
tadzik1 | well, that's excluding libmoar.so :) | ||
moritz | aye, that's another 3.5M | ||
tadzik1 | but a 2d game bundled with assets, MoarVM and the entire rakudo took 2.2 MBs, compressed | ||
so I don't think it's that bad | 08:25 | ||
moritz | and I guess if you statically compile moarvm and then strip the binary, you could reduce the size even further | ||
tadzik1 | besides, if you were to put all the stuff needed for perl6 in a "binary", this binary would be at least as big anyway :) | ||
08:25
tadzik1 is now known as tadzik
|
|||
virtualsue | disk space is cheap | 08:29 | |
sergot | m: LAB: LABB: loop { last LAB } | 08:32 | |
camelia | ( no output ) | ||
sergot | m: LAB: LABB: loop { last LABB } | 08:33 | |
camelia | ( no output ) | ||
tadzik | r: LAB: Rat | 08:34 | |
ah, I should use m | |||
camelia | rakudo-jvm 900f0b: OUTPUT«(timeout)» | ||
( no output ) | |||
tadzik | oh, jvm acting funny :) | ||
08:36
fhelmberger joined
|
|||
masak | just acting aloof, as usual. | 08:39 | |
m: L1: L2: loop { last L1 }; say "alive" | 08:40 | ||
camelia | ( no output ) | ||
masak | m: L1: L2: loop { last L2 }; say "alive" | ||
camelia | rakudo-moar 900f0b: OUTPUT«alive» | ||
masak submits rakudobug | |||
I'm conservative in this case. I don't think there's *any* use for multiple labels on the same loop. | |||
YMMV. | |||
08:41
sjn_ left,
dakkar joined
|
|||
FROGGS | only one label is supported, yes | 08:41 | |
tadzik | COLOR: COLOUR: loop { } | ||
FROGGS | bah | ||
08:42
sjn_ joined
|
|||
masak | tadzik: that's awful :) | 08:43 | |
tadzik | *tips fedora* | 08:44 | |
heh. I spent like 4 hours chasing $entry->{domain} instead of $entry->{$domain} in Perl 6 | 09:00 | ||
erm, Perl 5 | |||
moritz | tadzik: I was about to say, in perl 6 it's a compile time error (usually) | 09:01 | |
09:03
shalom1034 left
|
|||
tadzik | sorry for perl5 again, but I have to leave this gem here: | 09:08 | |
(trepanpl): h breakpoints | |||
** No commands found matching /^brepoints/. Try "help". | |||
09:13
dmol joined
|
|||
moritz | m: say Date.new(|'2014-1-23'.split: '-'); | 09:16 | |
camelia | rakudo-moar 900f0b: OUTPUT«Type check failed in assignment to '$!year'; expected 'Int' but got 'Str' in block at src/gen/m-CORE.setting:892 in method BUILDALL at src/gen/m-CORE.setting:875 in method bless at src/gen/m-CORE.setting:864 in method new at src/gen/m-CORE…» | ||
moritz | that's a bit LTA; should be Cool, IMHO | ||
dalek | rlito: debc4f6 | (Flavio S. Glock)++ | TODO-perlito5: Perlito5 - TODO update |
09:17 | |
moritz | there's a bug report (RT #121926) that requests more lenient date parsing in Date.new | 09:18 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=121926 | ||
moritz | any objects to rejecting that ticket? | ||
*objections | |||
09:22
SamuraiJack left
|
|||
masak | no objections. | 09:31 | |
lenient Date parsing is not a feature IMHO. | |||
09:31
anaeem1 left
|
|||
masak | I can probably even give a rationale from ISO 8601 -- hold on. | 09:32 | |
09:33
Rikkol joined,
anaeem1_ joined
|
|||
moritz | masak: if so, please add it to the ticket | 09:34 | |
(I've now rejected it) | |||
masak | "[MM] indicates a two-digit month of the year, 01 through 12." -- not such a strong rationale, but pointing in that direction. | ||
it doesn't say it *has* to be that way, it just matter-of-factly states that it's two digits. | |||
masak adds that to the ticket | 09:35 | ||
uh, no. | 09:36 | ||
apparently cannot add it now. | |||
OTOH, I'm happy with what moritz++ wrote. | |||
masak is teaching right now, so has limited time to deal with this | |||
09:38
Rikkol left
09:42
sjn_ left
|
|||
sergot | m: $tomorrow = Date.today + 1; say $tomorrow; | 09:44 | |
camelia | rakudo-moar 900f0b: OUTPUT«===SORRY!=== Error while compiling /tmp/rXOWKmsvyWVariable '$tomorrow' is not declaredat /tmp/rXOWKmsvyW:1------> $tomorrow⏏ = Date.today + 1; say $tomorrow; expecting any of: postfix» | ||
sergot | m:my $tomorrow = Date.today + 1; say $tomorrow; | 09:45 | |
FROGGS | space after the m: ? | ||
sergot | m: my $tomorrow = Date.today + 1; say $tomorrow; | ||
camelia | rakudo-moar 900f0b: OUTPUT«2014-05-23» | ||
09:47
donaldh_ joined
|
|||
FROGGS | "The canonical location for this page is at perl6.org/compilers/features and is updated at least hourly." | 09:52 | |
the last bit is a lie :/ | |||
moritz | FROGGS: I've updated it now | 09:55 | |
though I don't see why it wouldn't work automatically :( | |||
FROGGS | thanks :o) | ||
10:03
denis_boyun_ joined
|
|||
tadzik | hmm. I think I'd like having Debugger::UI::CommandLine as a "first core" module | 10:03 | |
FROGGS | I sometimes think that panda needs to get in core.... but in theory that is star is for: a compiler + useful stuff | 10:04 | |
is what* | 10:05 | ||
10:05
xinming joined
|
|||
tadzik | I just think that having a perl6-debug binary that doesn't work is sort of bad :) | 10:05 | |
10:08
xinming_ left
10:09
breinbaa1 left
10:10
kurahaupo left
10:11
breinbaas joined
|
|||
colomon | jnthn: parrakudo stage parse on my linux box has gone from 85s to 90s (which I've gotten at least twice now) sometime this week. | 10:18 | |
hmm… was 86s yesterday | 10:19 | ||
and the day before | |||
10:24
donaldh left,
donaldh_ is now known as donaldh
10:25
kurahaupo joined
|
|||
timotimo | did anybody have an opportunity to investigate the gtk-simple weirdness? | 10:26 | |
also, could we get gtk-simple reports to dalek perhaps? | |||
moritz | sure | 10:28 | |
timotimo | yays | ||
i think i should pour more tuits into gtk-simple | |||
and others should probably do that, too :) | |||
it's a very high-wattage thing | |||
10:28
donaldh_ joined
|
|||
tadzik | weirdness? | 10:28 | |
timotimo | gtk isn't as nice as qt, but it has a C api which is at least bindable at all. | 10:29 | |
tadzik: i'm tapping two different button's clicked slots and the second button causes the first button's tap to be more'd instead of the second button's | |||
example code and debug output to be found in the repo. | |||
AFK | |||
10:31
sjn_ joined,
sjn_ left
|
|||
dalek | : d48dc17 | sergot++ | misc/dalek-push.txt: [misc/dalek-push.txt] new configuration procedure |
10:44 | |
10:45
eternaleye left
10:46
eternaleye joined
|
|||
timotimo | stackoverflow.com/questions/450538...73#4505773 - holy batman wow | 10:59 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...id=4505773 | ||
11:06
frettled_ is now known as frettled
|
|||
sergot | :D | 11:19 | |
masak | ah, tchrist++, trolling all the rest of us with Unicode. | 11:27 | |
timotimo | i like those strange semicolon-lookalikes | 11:28 | |
.u ⁏ | 11:29 | ||
yoleaux | U+204F REVERSED SEMICOLON [Po] (⁏) | ||
11:36
skids1 left
11:41
vendethiel left
|
|||
FROGGS | m: say 10010/3600 | 11:41 | |
camelia | rakudo-moar 900f0b: OUTPUT«2.780556» | ||
FROGGS | that is how long a jvm spectest takes without using the eval server | 11:42 | |
timotimo | wowza. | 11:43 | |
2.8 times longer, eh? | |||
FROGGS | 2.8hours | 11:44 | |
timotimo | oh! | ||
FROGGS | :o) | ||
timotimo | and with the evalserver? | ||
FROGGS | less, but then it starts to abort tests from S17 for me | ||
timotimo | ah, yeah | ||
i recall that problem >_> | |||
FROGGS | 2.8 hours with only one job at a time btw | ||
that is how the problems look: gist.github.com/FROGGS/9453c10577b1b729acf2 | 11:45 | ||
dunno what we can do about that | |||
m: my $cons = [=>] ( [=>] <A B>, Mu ), <C>, Mu; my $p = $cons.key; say $cons.key.key =:= $p.key | 11:46 | ||
camelia | rakudo-moar 900f0b: OUTPUT«True» | ||
FROGGS | p: my $cons = [=>] ( [=>] <A B>, Mu ), <C>, Mu; my $p = $cons.key; say $cons.key.key =:= $p.key | ||
camelia | rakudo-parrot 900f0b: OUTPUT«False» | ||
11:47
vendethiel joined
|
|||
FROGGS | I think I want to bisect this | 11:47 | |
11:48
sqirrel left
|
|||
timotimo | AFK for most of the day & | 11:49 | |
FROGGS | colomon: it is possible that this is because I added labels... | 11:50 | |
so the setting is slightly bigger and also loop check that they have to check for labels for every loop | |||
dalek | rlito: 7018e85 | (Flavio S. Glock)++ | / (4 files): Perlito5 - parser - "while" special case |
11:53 | |
FROGGS | [Coke]: can you push the latest roast-data please? | 12:02 | |
Ven | m:my $x = 0 but { method gloubi { say "hello"; } }; $x.gloubi | 12:07 | |
m: my $x = 0 but { method gloubi { say "hello"; } }; $x.gloubi | |||
camelia | rakudo-moar 900f0b: OUTPUT«Useless declaration of a has-scoped method in mainline (did you mean 'my method gloubi'?)No such method 'gloubi' for invocant of type 'Int+{<anon>}' in block at /tmp/lcVB8udeUI:1» | ||
moritz | Ven: should be 'but role {' | ||
Ven | m: my $x = 0 but role { method gloubi { say "hello"; } }; $x.gloubi | 12:08 | |
camelia | rakudo-moar 900f0b: OUTPUT«hello» | ||
FROGGS | nice | ||
Ven | moritz: hehe, :D | ||
12:26
sqirrel joined
|
|||
Woodi | hallo :) | 12:41 | |
masak | I'm pretty sure we as a community hasn't used 'but' to its full potential yet. | 12:42 | |
haven't* | |||
Woodi | teoretically asking: what $x with role is ? and why ? | ||
12:42
vike joined
|
|||
Woodi | some light object ? | 12:43 | |
12:43
bluescreen10 joined
|
|||
Woodi | err, s/light/lightweight/ | 12:43 | |
tadzik | everything is an object :) | 12:45 | |
so you just mixin a role into it | |||
masak | Woodi: it's the same object, but belonging to an automatically generated anonymous subclass. | 12:46 | |
12:56
skids joined
12:58
anaeem1_ left
|
|||
moritz | which has that role mixed | 13:06 | |
FROGGS | jnthn++ # www.infoq.com/presentations/invokedynamic | 13:07 | |
13:07
zakharyas left
|
|||
tadzik | "register to download slides" grrr | 13:08 | |
Woodi | hmm, can I have atributes in that scalar ? ;) | ||
moritz | sure | 13:10 | |
FROGGS | m: my $x = 0 but role { has $.thingy = 42 }; say $x.thingy | ||
moritz | tadzik: last time I tried to register on infoq, I never got the password confirmation email | ||
camelia | rakudo-moar 900f0b: OUTPUT«42» | ||
FROGGS | it does not just look like as if a role was mixed in, it really is | 13:11 | |
moritz | it *is* a duck! | 13:12 | |
tadzik | oh, the slides appear next to the video too, good | ||
FROGGS | yeah | ||
I like it too | |||
13:20
zakharyas joined
13:24
FROGGS left
13:25
sqirrel left
13:26
FROGGS[mobile] joined
13:34
guru joined
13:35
guru is now known as Guest22017,
Guest22017 is now known as ajr_
|
|||
masak | strangely enough, the invokedynamic talk is not up at jnthn.net/articles.shtml | 13:37 | |
jnthn: is that intentional? | |||
13:38
kaare_ left
|
|||
timotimo | but that will lose its thingy if you assign to it, no? | 13:41 | |
i think you want to $x.VAR does role ... | |||
Woodi | r: role Properties { has $.property is rw }; my Int $i = 0 but Properties; $i.property = "some info"; say $i.perl; say $i.property; | 13:43 | |
camelia | rakudo-{parrot,jvm,moar} 900f0b: OUTPUT«0some info» | ||
masak | m: my $x = Any.new; my $y = $x but role {}; say $x === $y | ||
camelia | rakudo-moar 900f0b: OUTPUT«False» | ||
masak | probably that's for the best. | ||
13:46
btyler joined
13:47
kurahaupo left
|
|||
virtualsue | is there something akin to tomcat written in perl 6? | 13:52 | |
Woodi | virtualsue: "Apache Tomcat is an open source software implementation of the Java Servlet and JavaServer Pages technologies." ;) | 13:55 | |
virtualsue | yes i'm aware of what it is | 13:56 | |
Woodi | virtualsue: probably not yet :) | ||
virtualsue: but actually I have problem with identifing what tomcat is... wiki says it is "container"... | 13:58 | ||
+ web server | |||
we have Bailador, Perl5 Dancer clone... | |||
14:02
thou joined
14:03
xenoterracide joined
|
|||
virtualsue | that's interesting | 14:08 | |
Woodi | virtualsue: but beware *standard warning*: Perl6 compilers are still under development :) | 14:09 | |
14:09
kaleem left
|
|||
virtualsue | i'm well aware of that too | 14:09 | |
14:10
anaeem1_ joined
|
|||
Woodi | so far Perl6 is quite good as presentations hijacking language :) | 14:11 | |
14:14
kaare_ joined,
retupmoc1 is now known as retupmoca
14:18
zakharyas left
14:23
grlpx joined
|
|||
timotimo | i do not have a proper keyboard with me. can someone test my hypothesis | 14:24 | |
14:24
FROGGS joined
|
|||
timotimo | that you need to (or rather: can) mix inytoto a .VAR and assign to that | 14:25 | |
14:27
hummeleBop joined
|
|||
grlpx | what is perl 6? what's wrong with perl? | 14:29 | |
PerlJam | grlpx: perl 6 is another language in the perl family of languages. Nothing is wrong with perl. | ||
tadzik | well, aside from globals in sort(), for instance :D | ||
grlpx | is it still a developing language perl 6? or is it defined? | 14:31 | |
PerlJam | I wouldn't even say that is "wrong" | ||
tadzik | it's not a dead language, so it's still developing, yes | ||
PerlJam | grlpx: all languages are "still developing". Perhaps you could narrow down what you mean more precisely? | ||
14:32
zakharyas joined
|
|||
grlpx | I mean if it's still a language which can broke compatibility and implement new estetical decisions | 14:32 | |
timotimo | partially, yes | ||
FROGGS | grlpx: that still happens, but very rarely | 14:33 | |
PerlJam | grlpx: Backward compatibility has not become a dominating factor in the evolution of Perl6 yet. :) | ||
FROGGS | more like fine grained tweaks I'd say | ||
timotimo | but we are quite close to fixed with the most common things | ||
concurrency features have only recently been fleshed out | |||
for example | |||
and asynchronous i/o | 14:34 | ||
grlpx | Do you improve something on the "single program multiple data" scenario? | ||
timotimo | the most "core" thing that you will find missing is probably shaped arrays and related features | 14:35 | |
and of course modules that arevready to be installed | |||
yes | |||
look at hyper operators for example | |||
feeds are how we do communicating serial programmers | 14:36 | ||
PerlJam | according to the feature matrix, we're still missing "basic module versioning" That's kind of important too :) | ||
timotimo | programs | ||
froggs is gard at work on that feature | |||
hard | |||
FROGGS | but first compiler release today :o) | ||
PerlJam | yeah, I can't FROGGS++ enough for the stuff he's doing. | ||
grlpx | looking at them, seems interesting | 14:37 | |
timotimo | first compiler release? ;) | 14:41 | |
grlpx, the perl 6 advent calendar has many good examples | |||
about anything perl6 related | |||
14:44
treehug88 joined
14:45
rurban joined
14:47
FROGGS[mobile] left
14:50
FROGGS[mobile] joined
|
|||
Ven | calendar++ | 14:52 | |
FROGGS | m: my $a = [=>] ( [=>] <A B>, Mu ), <C>, Mu; my $b = $a.key; say $b.key =:= $a.key.key | 14:54 | |
camelia | rakudo-moar 900f0b: OUTPUT«True» | ||
FROGGS | p: my $a = [=>] ( [=>] <A B>, Mu ), <C>, Mu; my $b = $a.key; say $b.key =:= $a.key.key | ||
camelia | rakudo-parrot 900f0b: OUTPUT«False» | ||
FROGGS | j: my $a = [=>] ( [=>] <A B>, Mu ), <C>, Mu; my $b = $a.key; say $b.key =:= $a.key.key | ||
camelia | rakudo-jvm 900f0b: OUTPUT«False» | ||
FROGGS | does that have to be True? | ||
we fail this spectest since a few days | 14:55 | ||
(when Pair.key lost its 'is rw') | |||
14:59
fhelmberger left
15:03
sjohnson joined
|
|||
masak | decommute & | 15:05 | |
FROGGS: I think that test is bogus. | |||
FROGGS: you do assignment -- why should binding equality be true? | |||
FROGGS | masak: I dunno | 15:06 | |
that's why I am asking :o) | |||
15:06
SamuraiJack joined
|
|||
FROGGS | filed a bug about that: rt.perl.org/Ticket/Display.html?id=121945 | 15:06 | |
which perhaps shows the problem better | |||
15:07
btyler left
|
|||
dalek | ast: cafda9b | (Tobias Leich)++ | S12-methods/chaining.t: fudge tests about Pair.key identity, RT #121945 |
15:09 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=121945 | ||
15:11
Adriaaan joined,
rindolf joined
15:13
denis_boyun_ left
|
|||
FROGGS | jnthn / lizmat: I am thinking about commenting out all S17 tests for the compiler release today | 15:17 | |
15:19
molaf_ joined
|
|||
PerlJam | r: grammar G { rule TOP { | "foo" <a>? | "foo" <b>? }; rule a { "bar" }; rule b { "baz" } }; say G.parse("foo"); say G.parse("foo bar"); say G.parse("foo baz"); | 15:21 | |
camelia | rakudo-{parrot,jvm,moar} 900f0b: OUTPUT«「foo」「foo bar」 a => 「bar」(Any)» | ||
PerlJam | Am I crazy or should that last one parse as well? | ||
15:22
molaf left,
anaeem1_ left
|
|||
FROGGS | r: grammar G { rule TOP { | "foo" <a>? | "foo" <b>? }; rule a { "bar" }; rule b { "baz" } }; say G.parse("foo"); say G.parse("foo bar"); say G.parse("foo baz"); | 15:23 | |
camelia | rakudo-{parrot,jvm,moar} 900f0b: OUTPUT«「foo」「foo bar」 a => 「bar」(Any)» | ||
FROGGS | I think the branch "foo" <a>? is happy because it matched the "foo", and won't backtrack | ||
m: grammar G { rule TOP { :r | "foo" <a>? | "foo" <b>? }; rule a { "bar" }; rule b { "baz" } }; say G.parse("foo"); say G.parse("foo bar"); say G.parse("foo baz"); | |||
camelia | rakudo-moar 900f0b: OUTPUT«「foo」「foo bar」 a => 「bar」(Any)» | ||
FROGGS | err | ||
m: grammar G { rule TOP { "foo" [ <a>? | <b>? ] }; rule a { "bar" }; rule b { "baz" } }; say G.parse("foo"); say G.parse("foo bar"); say G.parse("foo baz"); | 15:24 | ||
camelia | rakudo-moar 900f0b: OUTPUT«「foo」「foo bar」 a => 「bar」「foo baz」 b => 「baz」» | ||
15:25
anaeem1 joined
|
|||
PerlJam | FROGGS: that hypothesis is good except that if the <a>? branch is happy, why didn't the match succeed? | 15:25 | |
FROGGS | because you called .parse, not .subparse | 15:26 | |
15:26
Alula left
|
|||
FROGGS | you get an implicit ^ and $ there | 15:26 | |
m: grammar G { rule TOP { | "foo" <a>? | "foo" <b>? }; rule a { "bar" }; rule b { "baz" } }; say G.parse("foo"); say G.parse("foo bar"); say G.subparse("foo baz"); | |||
PerlJam | ah! That's what I was forgetting. | ||
camelia | rakudo-moar 900f0b: OUTPUT«「foo」「foo bar」 a => 「bar」「foo 」» | ||
15:29
Ven left
15:32
Alula joined,
hoelzro_ is now known as hoelzro
15:34
SamuraiJack left,
btyler joined,
zakharyas left,
anaeem1 left
15:35
guru joined
15:36
guru is now known as Guest79327,
ajr_ left
15:39
Guest79327 is now known as ajr_
|
|||
timotimo | rules dont backtrack iirc | 15:39 | |
but why is ? not greedy? | |||
TimToady | ? means frugal, ! means greedy | 15:40 | |
timotimo | there is ! in regex?? | 15:41 | |
meaning the same as ? except greedy? | |||
TimToady | yes | ||
well, as a modifier to another | |||
timotimo | TYYKTMYK | ||
... | |||
TimToady | *! vs *? | ||
timotimo | TMYK | ||
TimToady | but ? by itself is greedy | 15:42 | |
?? is frugal, ?! is greedy | |||
so ? under :r should be greedy | |||
do you have an example of bare ? not working under :r? | 15:44 | ||
'course, bare ? is not greedy under :r, but "possessive", or whatever we call it | 15:45 | ||
FROGGS | hi TimToady | 15:46 | |
15:46
anaeem1_ joined,
anaeem1_ left
|
|||
TimToady | FROGGS++ Willis | 15:46 | |
FROGGS | you can now rewrite all rc entries :o) | ||
TimToady | ayup | ||
FROGGS | label all the things! /o/ | 15:47 | |
goto should be fairly easy on moarvm, but it is not like I need that for something, so I leave that open for now | 15:49 | ||
TimToady | for instance, rosettacode.org/wiki/Ludic_numbers#Perl_6 | ||
the conditional after the inner loop is really unnecessary | 15:51 | ||
15:52
anaeem1_ joined
15:54
Adriaaan left
|
|||
timotimo | see froggs code above | 15:57 | |
we think it ought to parse the whole thirdvstring even without subparse | |||
FROGGS | ahhh, hmmm | ||
m: grammar G { rule TOP { | "foo" <a>? | "foo" <b>? }; rule a { "bar" }; rule b { "baz" } }; say G.parse("foo baz"); | 15:58 | ||
camelia | rakudo-moar 900f0b: OUTPUT«(Any)» | ||
FROGGS | m: grammar G { rule TOP { "foo" [ <a>? | <b>? ] }; rule a { "bar" }; rule b { "baz" } }; say G.parse("foo baz"); | ||
camelia | rakudo-moar 900f0b: OUTPUT«「foo baz」 b => 「baz」» | ||
FROGGS | no, it makes sense | 15:59 | |
timotimo | enlighten me please | 16:00 | |
TimToady | the implicit <.ws> stops LTM | ||
after the "foo" | |||
timotimo | oooooh | ||
FROGGS | yes, that :o) | ||
timotimo | that's a nice wat | ||
FROGGS | I sorta know but can't explain | ||
timotimo | so with :r, ? on its own is kind of a ono-op? | 16:01 | |
TimToady | m: grammar G { rule TOP { | "foo"\h+<a>? | "foo"\h+<b>? }; rule a { "bar" }; rule b { "baz" } }; say G.parse("foo baz"); | ||
camelia | rakudo-moar 900f0b: OUTPUT«「foo baz」 b => 「baz」» | ||
TimToady | those two spaces I changed to \h+ to make them included in LTM | ||
timotimo | aye | 16:02 | |
16:02
ajr_ left
|
|||
TimToady | then LTM works, and incudes <b>, so it calls that subrule first | 16:02 | |
timotimo | we ought to give people a tool for ides and such that points out exactly which parts will be part of ltm | 16:03 | |
FROGGS | m: say <a a b b c c d d>.Bag.fmt('%s',',') | ||
camelia | rakudo-moar 900f0b: OUTPUT«a,b,c,d» | ||
FROGGS | j: say <a a b b c c d d>.Bag.fmt('%s',',') | ||
camelia | rakudo-jvm 900f0b: OUTPUT«b,a,d,c» | ||
16:03
ajr joined
|
|||
FROGGS | there are tests that rely on ordering, and fail on jvm (only on jvm) | 16:03 | |
16:04
ajr is now known as Guest18493,
Guest18493 is now known as ajr_,
anaeem1_ left
|
|||
timotimo | why do they do that? | 16:06 | |
FROGGS | I dunno | 16:08 | |
I guess I check it like that: | 16:09 | ||
j: say <a a b b c c d d>.Bag.fmt('%s').lines.sort ~~ <a b c d> | |||
camelia | rakudo-jvm 900f0b: OUTPUT«True» | ||
FROGGS | or is there a shorter way? | ||
timotimo | turn them into a set? | 16:11 | |
like .keys.set eqv set <...> | |||
TimToady | sets are also unordered | ||
TimToady doesn't know what .lines is doing there | |||
16:12
salv01 left
|
|||
TimToady | there's only one line | 16:12 | |
16:12
anant joined
|
|||
TimToady | p6: say <a a b b c c d d>.Bag.fmt('%s') | 16:13 | |
camelia | niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: Unable to resolve method fmt in type Bag at /tmp/tmpfile line 1 (mainline @ 4)  at /home/p6eval/niecza/lib/CORE.setting line 4595 (ANON @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 4596 (module-CORE @ 576)  a…» | ||
..rakudo-jvm 900f0b: OUTPUT«badc» | |||
..rakudo-{parrot,moar} 900f0b: OUTPUT«abcd» | |||
FROGGS | m: say <a a b b c c d d>.Bag.fmt('%s').lines | ||
camelia | rakudo-moar 900f0b: OUTPUT«a b c d» | ||
TimToady | hmm, why the newlines? | ||
FROGGS | seems to be the default separator | 16:14 | |
m: say <a a b b c c d d>.Bag.fmt('%s', ',') | |||
camelia | rakudo-moar 900f0b: OUTPUT«a,b,c,d» | ||
TimToady | listy things are supposed to use ' ' as the default | ||
FROGGS creates a rakudobug | |||
TimToady | unless it's thinking of it as a hash, but then where are the values? | 16:15 | |
p6: say <a a b b c c d d>.Bag | |||
camelia | niecza v24-109-g48a8de3: OUTPUT«bag("a" => 2, "b" => 2, "c" => 2, "d" => 2)» | 16:16 | |
..rakudo-{parrot,moar} 900f0b: OUTPUT«bag(a(2), b(2), c(2), d(2))» | |||
..rakudo-jvm 900f0b: OUTPUT«bag(b(2), a(2), d(2), c(2))» | |||
TimToady | p6: say <a a b b c c d d>.Bag.list | ||
camelia | rakudo-{parrot,moar} 900f0b, niecza v24-109-g48a8de3: OUTPUT«a b c d» | ||
..rakudo-jvm 900f0b: OUTPUT«b a d c» | |||
16:16
anant left
16:18
liztormato joined
|
|||
liztormato | FROGGS: Wrt commenting out S17 tests. What would that achieve? | 16:19 | |
TimToady | p6: say list <a a b b c c d d>.Bag | ||
camelia | niecza v24-109-g48a8de3: OUTPUT«bag("a" => 2, "b" => 2, "c" => 2, "d" => 2)» | ||
..rakudo-{parrot,moar} 900f0b: OUTPUT«bag(a(2), b(2), c(2), d(2))» | |||
..rakudo-jvm 900f0b: OUTPUT«bag(b(2), a(2), d(2), c(2))» | |||
FROGGS | liztormato: that we have clean spectests for the release? | ||
liztormato | FROGGS: Aren't they clean? I thought I fudged the failing ones? | 16:20 | |
Watch_path may be an exception | 16:21 | ||
16:21
Adriaaan joined
|
|||
FROGGS | liztormato: that is how tests look like as of today: gist.github.com/FROGGS/35fb4a8a1573f2e732d2 | 16:21 | |
16:22
btyler left,
anant joined
|
|||
anant | Is there a builtin that returns the index of the minimum element in a list? | 16:23 | |
liztormato | The S02 failures seem related to .fmt. Doesn't the jvm have .fmt? | 16:24 | |
Anant: try .min | |||
Ah the index | |||
Hmmmmm. Maybe we need min-index ? | 16:25 | ||
16:25
btyler joined
16:26
Psyche^ joined
|
|||
liztormato czechs further | 16:26 | ||
anant | liztormato: For example in R, there is which.min() and in ruby, we can do a.index(a.min) | 16:28 | |
liztormato | FROGGS: I'm ok with disabling watchpath tests for release. The other S17 tests I'm not su sure | 16:29 | |
anant: You can do grep-index on the .min value already | |||
16:30
Psyche^_ left
|
|||
PerlJam | liztormato: though that looks kind of awkward: @a.grep-index(@a.min(+*)) # find the index of the numerically minimum value | 16:32 | |
liztormato | Not too different from Ruby it seems | 16:34 | |
Also, why the +* ? | 16:35 | ||
If @a contains numbers, .min should do the right thing | 16:36 | ||
PerlJam | aye. I guess I was being paranoid or somethign | ||
for instance, if you're reading in a list of numbers from a file, they're all strings until you do something to make them otherwise | 16:37 | ||
liztormato | True | ||
anant | liztormato: Thanks for pointing out grep-index :) Though min and max-index as builtins would be awesome too | 16:39 | |
TimToady | well, but do you just want the first one, or all of them that match? | 16:40 | |
PerlJam | the *-index functions all make me want to have some way to do that with just the non-index function. Like an option to grep that instead of returning the values that match, returns the indexes. Same for min/max/first/last/etc. | ||
TimToady | keeping things orthogonal means you can pick first vs grep | ||
16:41
SamuraiJack joined
|
|||
PerlJam | anant: does ruby's .index return a list of matching indices? | 16:41 | |
16:42
rindolf left
|
|||
TimToady | of course, if grep is lazy, then first could be defined as .[0], but then it's a bit harder to optimize | 16:42 | |
anant | PerlJam: first index only | ||
liztormato | Otoh. Its all lazy. So you could just ask for just the first em of a min-index | ||
TimToady has a better keyboard | 16:43 | ||
PerlJam | so, I guess the p6 equivalent would be more like @a.first-index(* == @a.min) | 16:44 | |
(or the .[0] as TimToady suggested) | |||
TimToady | well, that's debatable; the latest lenovo carbon puts the tilde and backtick between right Alt and right Ctrl | ||
and puts Home/End where the capslock should be | 16:45 | ||
liztormato | Still beats an iPhone keyboard | ||
TimToady | well, except capslock is supposed to be control, of course :) | ||
the function keys are a capacitive strip that goes away when I suspend, so no function keys after that | 16:46 | ||
but that's a Linux problem, I guess | |||
well, okay, I'll grant you most phones don't have a great keyboard | 16:47 | ||
otoh my lenovo doesn't have Siri... | 16:48 | ||
liztormato | ;) | ||
16:52
ajr_ left
|
|||
TimToady | to the extent that we want Pairs to be like Lisp cons cells, I would note that the .car is rw, so it's not clear what the recent change of .key to readonly is worth | 16:53 | |
dalek | kudo-star-daily: 4b28297 | coke++ | bin/star.sh: today (automated commit) |
||
kudo-star-daily: aa211df | coke++ | bin/star.sh: moar moar |
|||
kudo-star-daily: 5c0a2e5 | coke++ | bin/star.sh: moar moar |
|||
kudo-star-daily: ef07096 | coke++ | bin/star.sh: moar moar |
|||
kudo-star-daily: 97fc396 | coke++ | bin/star.sh: moar moar |
|||
kudo-star-daily: 213d2ad | coke++ | bin/star.sh: moar moar |
|||
rl6-roast-data: ef6d8e3 | coke++ | / (6 files): today (automated commit) |
|||
rl6-roast-data: 993785d | coke++ | / (6 files): today (automated commit) |
|||
rl6-roast-data: ee365df | coke++ | / (6 files): today (automated commit) |
|||
[Coke] | FROGGS: ^^ Done | ||
16:53
rindolf joined
|
|||
[Coke] | ... crap. I autopushed something that I had meant to condense first. | 16:54 | |
ah well | |||
liztormato | TimToady: If rw on Pair.key is ok, then we need to plug other holes | ||
TimToady | well, at least dalek is still alive | ||
16:55
anant left,
denis_boyun_ joined
|
|||
liztormato | .pairs on a bag allowed you to mess up things | 16:55 | |
TimToady | the keys of a hash are not supposed to be containers unless you put a container in 'em as an object | 16:56 | |
liztormato | Which is what sets/bags etc do | 16:57 | |
TimToady | and if you do, it should be hashing on the object id, not the value | ||
liztormato | It does. But it needs to keep the original object around too | 16:58 | |
So a bag is internally a hash of pairs | |||
[Coke] | regarding #121943 - if we don't want more than one label for line, then that shouldn't compile. | ||
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=121943 | ||
TimToady | sounds to me like we want a different type than Pair for bag entries | 17:01 | |
17:01
rindolf left
|
|||
TimToady | or a Pair variant that has immutable keys | 17:01 | |
liztormato | Perhaps | ||
17:01
dakkar left
|
|||
TimToady | more like named args where the key is more fixed | 17:01 | |
but really, it sounds like there's some kind of identity foulup within bags to me | 17:02 | ||
and use of Pairs sounds a bit like the X of an XY problem | |||
liztormato | Perhaps. I'm only one of the implementers | ||
TimToady | or is it the Y? :) | ||
liztormato | Hash.pairs should allow changing a key? And thus change the hash? | 17:03 | |
FROGGS[mobile] | [Coke]: I think so too | ||
TimToady | a bag should be mapping the .WHICH to the count, not the object itself, in some sense | ||
liztormato | But .keys should give objects, no? | 17:04 | |
TimToady | yes, but an object's identity doesn't change just because you modify its innards | ||
m: my @array; say @array.WHICH; push @array, 42; say @array.WHICH | 17:05 | ||
camelia | rakudo-moar 900f0b: OUTPUT«Array|140391097832784Array|140391097832784» | ||
liztormato | Good point. Hmm | ||
TimToady | it's that identity that should be mapped in a hash or bag that allows objects in keys | 17:06 | |
and using Pair with a rw key introduces another container, is the problem I think | |||
liztormato | I will think about that over dinner& | 17:07 | |
TimToady | okay | ||
the other way to work it is to make a Cons type that works like a Lisp programmer would expect | |||
TimToady needs to go wire up a bathroom fan... | 17:08 | ||
17:08
rindolf joined
|
|||
TimToady | and I guess a cons type would be a native one of those, once we have native lvalues of some sort | 17:09 | |
but then => can't be used to cons things, if we enforce readonly key on Pair | 17:10 | ||
so I'd rather not go that route if we can specialize Pair when we need to | 17:11 | ||
17:11
liztormato_ joined
|
|||
TimToady | maybe a Named type for that, by analogy to named args | 17:11 | |
17:12
liztormato left,
liztormato_ is now known as liztormato
|
|||
timotimo | don't have a good keyboard, but the schwartzian transform seems likeba good match for getting the index of the min/max element | 17:13 | |
iirc max and min have an as parameter | 17:16 | ||
17:16
donaldh_ left
17:17
liztormato left
17:27
kurahaupo joined
17:32
anaeem1 joined
|
|||
timotimo | a by param | 17:35 | |
17:36
anaeem1 left
|
|||
timotimo | well schwartzian is not quite the right term | 17:37 | |
using .kv, comparing with a &by and mapping the value away if it is not needed | 17:38 | ||
i am accumulating frustration | 17:39 | ||
and my favorite irc channel is so quiet | 17:40 | ||
colomon | o/ | ||
17:43
Adriaaaan joined
17:46
anaeem1 joined,
Rotwang joined,
Adriaaan left
17:47
slava joined
17:48
slava is now known as slava-wr0k
|
|||
slava-wr0k | hi all | 17:48 | |
jnthn: moarvm is so awesome :D | |||
[Coke] | slava-wr0k: hio | ||
slava-wr0k | hi, [Coke] | ||
I am a bit confused with using or in regex between two token, I have a token 'name' and a token 'ipv4', is the regex <name> | <ipv4> correct? also, where do I read about the differences between rules, tokens, regexes. I am looking at S05, but can't find the section | 17:49 | ||
vendethiel | slava-wr0k: see faq.perl6.org/ | 17:52 | |
"What's the difference between token and rule ?" | |||
slava-wr0k | ty | 17:53 | |
FROGGS | / <name> | <ipv4> / is a valid regex, in case name and ipv4 also also regex rules | ||
vendethiel | (faq should probably have clickable headers) | 17:58 | |
slava-wr0k | FROGGS: any idea if I can do that inside of another token? | 17:59 | |
as in: token host { <name> | <ipv4> } | |||
vendethiel | you can | ||
FROGGS | yes, you can do: token ipv4 { \d+ % '.' } | 18:00 | |
more like: token ipv4 { [\d+]+ % '.' } | 18:01 | ||
timotimo | or proto token host and then token host:ipv4 and token host:name | 18:03 | |
FROGGS | true | ||
timotimo | depends on your use case | ||
slava-wr0k | timotimo: can multiple proto's be defined in a single grammar? | 18:04 | |
FROGGS | then you could just pop an ipv6 in later, and it will parse :o) | ||
18:04
guru joined
|
|||
FROGGS | slava-wr0k: one proto per short-name | 18:04 | |
18:04
guru is now known as Guest57523
|
|||
slava-wr0k | short name is the one before :sym? | 18:04 | |
18:04
raiph joined
|
|||
FROGGS | yes | 18:04 | |
slava-wr0k | cool, ty | ||
18:05
Guest57523 is now known as ajr_
|
|||
slava-wr0k | going to play with this more :) | 18:05 | |
FROGGS | have fun :o) | ||
slava-wr0k | so, it seems that moarvm supports more features than rakudo/parrot | ||
timotimo | yes | ||
FROGGS | yeah, that is right | ||
timotimo | jvm has concurrency, which parrot lacks | 18:06 | |
slava-wr0k | moarvm appears to have some concurrency as well | ||
timotimo | moar has the awesome unicode database, which jvm lacks | ||
slava-wr0k | yeah | ||
timotimo | that is correct | ||
it may be less stable | |||
because we did not have the chance to test concurrency extensively with moar | 18:07 | ||
slava-wr0k | so it seems to me that moarvm is going to be the "system scripting" oriented vm | ||
timotimo | but on jvm people have been testing and using stuff for years and years | ||
yes, since it has such good start up time and memory usage | |||
and it is going to have a jit compiler of its own this year | 18:08 | ||
this year, a lot of performance improvements have happened for all backends but most work is visible in moar | 18:09 | ||
colomon | vendethiel: there's a FAQ for "What's the difference between token and rule ?" now? That's awesome. I've been at this, what, six, seven years now and I still routinely get them mixed up. | 18:11 | |
vendethiel | hehe :) | 18:13 | |
18:13
molaf_ left
|
|||
moritz | faq.perl6.org/#token | 18:15 | |
slava-wr0k | assertions are awesome :D | 18:19 | |
18:19
anaeem1__ joined
|
|||
jnthn gets home safely from Poland/Czech trip | 18:20 | ||
slava-wr0k: Glad you like it. There's plenty more awesome to come :) | 18:21 | ||
18:22
anaeem1 left
|
|||
timotimo | oh jnthn | 18:25 | |
can you have a look at my gtk-simple example? | 18:26 | ||
it shows weird behavior with supplies | |||
18:26
SamuraiJack left
|
|||
jnthn | timotimo: I know about that. It's because closure cloning doesn't work out too well with nativecall yet. | 18:26 | |
timotimo | clicking the second button causes the first buttons supply to more | ||
ah! | 18:27 | ||
how can we work around that? | |||
jnthn | 'cus it caches the call stuff too aggerssively | ||
Well, we should just fix it... | |||
timotimo | never cache ever :) | ||
jnthn | It turns out that actually makes things worse. | ||
18:27
itz joined
|
|||
jnthn | For our particular case, anyway. | 18:27 | |
'cus then the closure gets GC'd by the time C calls it, iirc | 18:28 | ||
btyler | speaking of the poland/Czech trip, does anyone know if there are videos available from either workshop? I know someone mentioned that plpw videos would be up soon (tm), but I'm not sure where to keep an eye out for them | 18:29 | |
timotimo | i did not know it was something we could just fix | 18:30 | |
it sounded like a terribly tricky guts issue | |||
filip sergot on twitter should be a good source on that info | 18:31 | ||
18:31
sqirrel joined
|
|||
timotimo | and i will point out the links on the p6weekly | 18:31 | |
itz | maybe not new but www.youtube.com/channel/UCAsxQEJp-...EDNjvLfjCA | 18:33 | |
btyler | great, thanks timo. also, I saw you mention in the logs that p6weekly doesn't have the traffic you'd like -- I think it helps disproportionately to what the raw traffic numbers might show, just in terms of there being an easy place to link to for talking about p6 progress that isn't an irclog | 18:34 | |
18:35
zakharyas joined
|
|||
btyler | itz: oh, cool! I hadn't seen the nlpw ones. | 18:37 | |
timotimo | thankbyou btyler | ||
only do few videos up so far? | 18:40 | ||
like, five? | |||
is that being uploaded as we speak? | 18:41 | ||
FROGGS | wow, that fails like awesome: perl6-j t/spec/S03-operators/set.rakudo.jvm - java.lang.VerifyError: Expecting a stack map frame | ||
and then like a gazillien lines of dumplings | |||
18:42
spider-mario joined
|
|||
timotimo | yikes | 18:43 | |
jnthn | FROGGS: Just realized...release day...you're probably blocking on me cutting the MoarVM monthly, I guess? | 18:45 | |
FROGGS | jnthn: sort of... I am still testing/fixing and fudging, besides collection more changelog entries | 18:46 | |
collecting* | |||
jnthn | OK. Will work on the Moar release. | 18:47 | |
FROGGS | thank you :o) | ||
hmmm, a test from S05-mass also explodes on jvm... | 18:48 | ||
Location: | |||
190C2A58A5E8D736666709D2B3E28BB221E03BEC.qb_1$f3(I[Ljava/lang/Object;)I @59766: nop | |||
jnthn | ugh | 18:49 | |
FROGGS | yeah... | ||
18:49
shalom1024 joined
|
|||
FROGGS | I'm trying to golf that down now | 18:49 | |
timotimo | jnthn, wouldba nativecall change be enough to fix gtk-simple with closure? it seems like no to me | 18:54 | |
18:56
darutoko left
|
|||
dalek | ast: efa39c5 | (Tobias Leich)++ | S02-types/ (6 files): explicitly sort otherwise unordered results |
18:57 | |
18:59
fhelmberger joined
|
|||
jnthn | timotimo: Depends; one path we could take to fixing it just needs MoarVM changes | 18:59 | |
FROGGS | damn, the jvm bug is a heisenbug :/ | 19:02 | |
19:04
fhelmberger left
19:05
ivanshmakov is now known as ivanshmakov|RST
19:08
ivanshmakov joined
|
|||
FROGGS | hmmm, it does not seem to fail on [Coke]++'s box | 19:08 | |
19:10
dwarring joined,
ivanshmakov left,
ivanshmakov joined
19:11
jeffreykegler joined
|
|||
dalek | q: 4420810 | thundergnat++ | answers.md: Updated empty type gist example to current |
19:13 | |
19:15
arnsholt left,
sjn left
19:16
arnsholt joined
|
|||
timotimo | but youbalreadybcut the release | 19:16 | |
our rather tagged it | |||
19:16
sjn joined
|
|||
timotimo | or did you only change the version file? | 19:17 | |
FROGGS | timotimo: not yet tagged as it seems | 19:18 | |
19:19
ivanshmakov|RST left
|
|||
FROGGS | I have no idea what to do about that jvm bug :/ | 19:20 | |
timotimo | maybe it can happen :) | ||
jnthn | FROGGS: Different JVM version on [Coke]'s box, maybe? | 19:22 | |
FROGGS: www.moarvm.org/releases/MoarVM-2014.05.tar.gz | |||
FROGGS | that is likely | ||
PerlJam | um ...does Grammar::Debugger need updating for some recentish change? I now get "Cannot modify an immutable Bool" when I try to use it. | 19:24 | |
FROGGS | thanks for the tarball, it builds on my box, which means that the MANIFEST is correct | 19:25 | |
PerlJam: do you get a line number? perhaps with --ll-exception? | 19:26 | ||
jeffreykegler | Hi! I have an interest in the history of parsing, and wanted to ask 3 questions about the history of Perl parsing. | 19:27 | |
PerlJam | gist.github.com/perlpilot/8e1cb7bdf337df604ada | ||
jeffreykegler | First, to my knowledge, Perl 5 was the most elaborate and ambitious use of LALR parsing every made. I consider it the high point of the Age of | ||
Right Parsing. Does anyone know of someone taking LALR even further? | |||
(This would make being the most ambitious implementer of LALR ever is another in the long list of Larry's achievements, and one that's not unimportant.) | 19:28 | ||
Second, I read into the choice *not* to use LALR for Perl 6, a judgement about the merits of LALR, but I've never come across anything in the record about this decision. | |||
Third, assumming that my reading, that LALR was given up on, is correct, which of its problems played the biggest role? | 19:29 | ||
In particular, what role did LALR's horrific development-time and runtime error reporting play? | 19:30 | ||
And what role did observations about the Perl 5 life-cycle and maintenance cycle play? | |||
FROGGS | PerlJam: I think that happens here: | ||
j: my class DebuggedGrammarHOW is Mu is Metamodel::GrammarHOW { has $!auto-continue = False; method test { $!auto-continue = False; } }; DebuggedGrammarHOW.new.test() | |||
camelia | rakudo-jvm 900f0b: OUTPUT«Cannot modify an immutable value in method test at /tmp/twJvNkKvoU:1 in block at /tmp/twJvNkKvoU:1» | ||
jeffreykegler | Thanks! | 19:31 | |
FROGGS | j: my class DebuggedGrammarHOW is Mu is Metamodel::GrammarHOW { has $!auto-continue is rw = False; method test { $!auto-continue = False; } }; DebuggedGrammarHOW.new.test() | ||
camelia | rakudo-jvm 900f0b: OUTPUT«useless use of 'is rw' on $!auto-continueCannot modify an immutable value in method test at /tmp/BZiS6H_3Qo:1 in block at /tmp/BZiS6H_3Qo:1» | ||
FROGGS | ohh | 19:32 | |
j: my class DebuggedGrammarHOW { has $!auto-continue = False; method test { $!auto-continue = False; } }; DebuggedGrammarHOW.new.test() | |||
camelia | ( no output ) | ||
cognominal | jeffreykegler: As far as parsing is involved, Perl 5 is not complex. The dragons are in the hand made lexer. | 19:33 | |
19:36
denis_boyun_ left
19:37
zakharyas left,
sqirrel left
|
|||
vendethiel | github.com/perl6/doc/pull/18 | 19:37 | |
<= should I just merge these kind of PRs ? or do you guys prefer I don't touch ? | 19:38 | ||
dalek | c: 96d78a4 | (Steve Mynott)++ | lib/Str.pod: add missing double quote |
||
c: 5723876 | (Konrad Borowski)++ | lib/Str.pod: Merge pull request #18 from stmuk/master add missing double quote to pod example |
|||
jeffreykegler | cognomial: my claim the the Perl 5 parser is a complex LALR parser is relative to other LALR parsers. If you look at the grammar and compare it to other attempts to use LALR, I think you'll characterize it as complex. | 19:39 | |
xfix | vendethiel, well, forgiveness > permission. | ||
vendethiel | meh | ||
jeffreykegler | cognomial: Particularly if you've had the experience of trying to get even a simple grammar working with yacc, you'll find the Perl 5 LALR grammar stunningly ambitious. | ||
vendethiel | rules have meaning | 19:40 | |
xfix | vendethiel, well, it was a simple syntax error. | ||
vendethiel | I know it was | ||
but I know some people would rather not see "non-core" contributors merge PR - I can comprehend that | |||
FROGGS | vendethiel: if you can judge on your own that the PR is all right, the merge :o) | ||
then* | 19:41 | ||
vendethiel | alrighty | ||
FROGGS | if you are unsure in either way, then don't touch it | ||
m: sub foo(Int:U $x) { }; foo(42) | |||
camelia | rakudo-moar 900f0b: OUTPUT«Parameter '$x' requires a type object, but an object instance was passed in sub foo at /tmp/xFpunIZkPK:1 in block at /tmp/xFpunIZkPK:1» | ||
FROGGS | j: sub foo(Int:U $x) { }; foo(42)ß | ||
camelia | rakudo-jvm 900f0b: OUTPUT«===SORRY!=== Error while compiling /tmp/cRBkx2SrkZTwo terms in a rowat /tmp/cRBkx2SrkZ:1------> sub foo(Int:U $x) { }; foo(42)⏏ß expecting any of: postfix infix stopper inf…» | ||
FROGGS | j: sub foo(Int:U $x) { }; foo(42) | 19:42 | |
camelia | ( no output ) | ||
FROGGS | I thought we fixed that for jvm? | ||
xfix | The changed part of documentation doesn't say anything about syntax error being intentional. Therefore, I think that could be quickly merged. | ||
Also, there is no problem with merging pull requests, no matter how much you contribute to Perl 6. | |||
If it looks fine, merge. | 19:43 | ||
itz | why is the modifier :g at the end of the Str.subst whereas the similar reg exp modifiers at the start? | ||
xfix | itz, because `:g` is symbol literal. | ||
19:44
jeffreykegler left
|
|||
jnthn | itz: In subst it's just a regular argument | 19:44 | |
itz: You can put it earlier if you like | |||
xfix | Also. | ||
rn: say "abcb".subst(:g, "b", "d") | |||
camelia | rakudo-{parrot,jvm,moar} 900f0b, niecza v24-109-g48a8de3: OUTPUT«adcd» | ||
xfix | : means keyword parameter here, so it doesn't matter where `:g` is. | ||
itz | oh I see .. I just had a typo | ||
ty | 19:45 | ||
xfix | s/// is part of syntax, `:g` is keyword parameter (which means the same thing as g => True). | ||
19:46
molaf joined
|
|||
FROGGS | lol, QAST::ParamTypeCheck is NYI for jvm | 19:47 | |
cognominal | jeffreykegler, certainly. Perl 6 syntax needed a new scheme to be parsed. The engine is a mix of recursive descent parser and NFAs. It is written in Perl 6. Perl 6 contains integrated sublanguages (called slangs) that are tightly weaved together. That mean the concept of separating lexing and parsing was not much relevant anymore. So the designer have picked known technology, adapted them the Perl 6 context, but created a unified sy | ||
ntax. | |||
xfix | The repositories in perl6 don't have to be perfectly clean, with exception for nqp (for which there is a separate group). There is a reason why it's easy to get perl6 repositories access. | ||
Even if you do a small mistake, it can be easily reverted. | |||
FROGGS | because it is community ware | 19:48 | |
cognominal | As a mere user, I am amazed by the power of the specification, and its implementation. | ||
19:48
anaeem1__ left
|
|||
xfix | Consider perl6 repositories to be a wiki of sorts. It's very easy to get write access to them. | 19:49 | |
This is intentional. | |||
19:50
Igrsrolqak joined
|
|||
dalek | ast: 7745496 | (Tobias Leich)++ | S17-supply/interval.t: fudge test that needs working param type checks |
19:50 | |
19:51
Sqirrel joined
|
|||
xfix | Of course, it's nice to discuss with the community for bigger changes. | 19:52 | |
dalek | ast: d8ba4a8 | (Tobias Leich)++ | S17-supply/m (2 files): fudge test that needs working param type checks |
19:53 | |
19:53
denis_boyun joined
|
|||
dalek | ast: c37a304 | (Tobias Leich)++ | S17-supply/minmax.t: fudge test that needs working param type checks |
19:53 | |
19:54
jeffreykegler joined
19:55
Igrsrolqak left
|
|||
jeffreykegler | congnomial: Thanks. I have looked at the Perl 6 parser. My questions were more directed at discovering *why* LALR was rejected in favor of left parsing. | 19:55 | |
The record does talk about how cool the new scheme is, and maybe that is the only reason ... | 19:56 | ||
cognominal | jeffreykegler, although the dynamic character of Perl 6 makes a C based compiler imposibble. | 19:57 | |
jeffreykegler | But I wonder if there also wasn't a realization that LALR simply could not be taken another step further. | ||
xfix | jeffreykegler, it's harder to make good error messages with LALR for example. | ||
Also, LALR doesn't work that well with dynamically changing grammars. | 19:58 | ||
19:58
Vendethiel- joined
|
|||
jeffreykegler | And much of the reason that the Perl 5 lexer is a mess is that new stuff could not be added to the LALR parser, so the lexer has to do a lot of mini-parses locally. | 19:58 | |
xfix | rn: sub infix:<!> { $^a + $^b * 2 }; say 3 ! 4; | ||
itz | Invalid opcode executed (corrupt bytecode stream?) opcode 11776 | ||
camelia | niecza v24-109-g48a8de3: OUTPUT«===SORRY!===Negation metaoperator not followed by valid infix at /tmp/tmpfile line 1:------> sub infix:<!> { $^a + $^b * 2 }; say 3 !⏏ 4;Parse failed» | ||
..rakudo-{parrot,jvm,moar} 900f0b: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileNegation metaoperator not followed by valid infixat /tmp/tmpfile:1------> sub infix:<!> { $^a + $^b * 2 }; say 3 !⏏ 4; expecting any of: …» | |||
19:58
vendethiel left
|
|||
xfix | rn: sub infix:<!!> { $^a + $^b * 2 }; say 3 !! 4; | 19:58 | |
camelia | rakudo-{parrot,jvm,moar} 900f0b, niecza v24-109-g48a8de3: OUTPUT«11» | ||
xfix | Good luck parsing something like this with LALR. | ||
Recompiling entire grammar just to add new operator is not an option, by the way. | 20:01 | ||
20:02
telex left
|
|||
jeffreykegler | Dynamic extension of the grammar could clearly be another reason for the switch -- it's tricky for anything but a left parser. | 20:03 | |
My interest is historic but also practical -- | |||
there are still folks out there recommending LALR for certain purposes. | 20:04 | ||
20:04
telex joined
|
|||
jeffreykegler | LALR was totally dominant in the literature for perhaps two decades, to the degree that if you took a parsing course, it was the only thing you were taught at one point. | 20:05 | |
Now it's reached the point where most new language designers don't seem to even consider it.\ | 20:06 | ||
But for those who've not caught up, and think that serious parsing == LALR parsing, as was thought a few decades ago ... | 20:07 | ||
[Coke] | FROGGS: java version "1.7.0_55" | ||
Java(TM) SE Runtime Environment (build 1.7.0_55-b13) | 20:08 | ||
Java HotSpot(TM) 64-Bit Server VM (build 24.55-b03, mixed mode) | |||
dalek | ast: 1c6b396 | (Tobias Leich)++ | S17-supply/ (2 files): mark flapping tests as todo |
||
cognominal | jeffreykegler, LALR is inflexible but very fast so that was a good option when processors were slow. | ||
jeffreykegler | I like to point out the trend among LALR's greatest practitioners, Larry, I believe, being one of them, based on the Perl 5 parser. | ||
FROGGS | java -version | 20:09 | |
java version "1.7.0_55" | |||
OpenJDK Runtime Environment (IcedTea 2.4.7) (7u55-2.4.7-1ubuntu1~0.13.10.1) | |||
OpenJDK 64-Bit Server VM (build 24.51-b03, mixed mode) | |||
[Coke]: so, I am as dumb as before :o) | |||
jeffreykegler | The other examples I use at the GCC compilers, which switched away from LALR about 10 years ago. | ||
And Ken Thompson, whose golang is designed to be left-parseable (though some go compilers do use LALR, I hear.) | 20:10 | ||
slava-wr0k | what am I doing wrong? pastebin.com/RRzr2Jfp | ||
if I match against ipv4, the grammar matches, if I use host, it doesn't | 20:11 | ||
20:11
btyler left
|
|||
jeffreykegler | So the turn from LALR is not just among a discontented faction, but has been joined by LALR's most prominent and successful users ... | 20:12 | |
Larry being one of them. | |||
jnthn | slava-wr0k: Not sure it's a problem here, but TOP looks like it wants to be a token here | 20:14 | |
jeffreykegler | cognomial: yes, and arguments about speed did play a big role in making LALR dominant over past decades, but ... | 20:15 | |
note that the GCC compiler people care a lot about speed, and greater speed ... | |||
is actually one of the central motives behind goland. | 20:16 | ||
slava-wr0k | jnthn: changing TOP to token doesn't change the work/no-work status :( | ||
jeffreykegler | * goland -> golang | ||
cognominal | jeffreykegler, in the functional world, they seem to like parsers based on combinators | ||
jeffreykegler | Yes, I've noticed. | 20:17 | |
jnthn | slava-wr0k: I suspected it wouldn't. :( Did you try it under the debugger? | ||
slava-wr0k | not yet :P | ||
jeffreykegler | You could in a way call the Perl 6 strategy a combinator strategy, because it does try to mix operator precedence subparses ... | ||
with left parsing. | 20:18 | ||
slava-wr0k | jnthn: looks like it's an issue calling the ipv4 token from host:sym<ipv4> | ||
20:18
bluescreen10 left
|
|||
cognominal | jeffreykegler, I don't think combinators would pan out for Perl6 where context is everywhere. | 20:18 | |
FROGGS | slava-wr0k: I think the <host> token dosnt get called | ||
dalek | rl6-roast-data: 74fcfff | coke++ | / (6 files): today (automated commit) |
20:19 | |
jeffreykegler | Frankly, parsing is a good example of a problem where the functional approach just does not work. | ||
FROGGS | slava-wr0k: because when you move ipv4's logic into it, it still does not work | ||
jeffreykegler | I am not saying there's not a lot to be gained from more use of functional programming ... | ||
20:20
treehug88 left
|
|||
jeffreykegler | But parsing is a great example of a problem that looks like it should decompose in a functional way, but turns out to require context frequently. | 20:21 | |
slava-wr0k | this is weird, but the host token does get called: pastebin.com/vpkU1xLK | ||
cognominal | jeffreykegler, depends on what you parse. | ||
Vendethiel- | "functional" doesn't mean "without context" :) | 20:22 | |
20:22
btyler joined
|
|||
jeffreykegler | Vendethiel: As I understand it, much of the promise of the functional approach lies in optimizations which are not possible in methods which depend on context. | 20:23 | |
Vendethiel- | jeffreykegler: no, not really. you're just asked to explicitly carry the context | 20:24 | |
jeffreykegler | Vendethiel: which means you know which methods do not use context and can take advantage of that. | 20:25 | |
cognominal | eventually you get all the context in a big blob :( | ||
jeffreykegler | The word functional IIRC sometimes means "purely functional" and sometimes means "heavily driven by the functional point of view". | 20:27 | |
FROGGS | slava-wr0k: put a {} after the capture in token octet | 20:28 | |
Vendethiel- | well, what does "functional" mean, then :) ? | ||
FROGGS | slava-wr0k: this helps rakudo to compute the match object, so that $0 is actually filled | 20:29 | |
(and it terminates LTM) | 20:30 | ||
slava-wr0k | FROGGS: you mean <?{ 0 <= $0 <= 255 }> {} ? | ||
jeffreykegler | Vendethiel: re irclog.perlgeek.de/perl6/2014-05-22#i_8762115 -- that may be the last word :-) | ||
FROGGS | slava-wr0k: no, between the (...) and <?... | 20:31 | |
Vendethiel- | jeffreykegler: why should that be ? | ||
jeffreykegler | Oh, just saying that it' | ||
s true, indeed that the word functional means different things depending on who is using it and in what context. | 20:32 | ||
Vendethiel- | well, referential transparency is probably a good start | ||
but you can have referential transparency with context | 20:33 | ||
(see Reader, Writer, and obviously State) | 20:34 | ||
slava-wr0k | FROGGS: yup, that was it :D thank you | 20:36 | |
FROGGS | \o/ | ||
slava-wr0k | FROGGS: is this considered a bug? | ||
jeffreykegler | My experience has been that in dealing with the parsing problem, you wind up with a lot of important things stuffed into context. | ||
20:36
kaare_ left
|
|||
FROGGS | yes, {} should not be needed to get a proper match object | 20:36 | |
slava-wr0k | btw, this is on moarvm (dunno if it matters at this point or not) | ||
FROGGS | but that one is not easy to fix sadly | ||
jnthn | Not easy to fix? | ||
FROGGS | this happens on all backends as far as I know | 20:37 | |
slava-wr0k | I'll just note it in my code, not a bigie IMO, but wondering if it's something that is already filed | ||
jnthn | In NQP we may hesitate for performance reasons, given many assertions needn't it. | ||
jeffreykegler | and to the point where if you trying to think within a functional paradigm, there are diminishing returns. | ||
jnthn | In Rakudo we can fix it | ||
FROGGS | jnthn: ohh, interesting | ||
20:37
hummeleBop left
|
|||
jnthn | It should be a tweak in the appropriate action method I think | 20:37 | |
Same way we make it work for {...} | |||
Just emit the thing to update $/ first. | |||
FROGGS | hmmmm | ||
jnthn | I'd look at it, but gotta do some emergency talk writing. | 20:38 | |
jnthn hopes this is the last talk he'll have to write until he does YAPC::EU ones, so he can dig back into coding soon :) | |||
FROGGS | jnthn: method codeblock looks good though | 20:39 | |
jnthn: that would be a long break of writing talks, no? :o) | 20:40 | ||
Vendethiel- | masak: WRT line-based stuff | 20:41 | |
do you think it's better to actually have a first pass for indented stuff, then a second one for actual content parsing ? | |||
20:42
ajr_ left
20:43
guru joined,
guru is now known as ajr_
|
|||
dalek | p: d4395c6 | (Tobias Leich)++ | VERSION: bump VERSION to 2014.05 |
20:43 | |
timotimo | there is already a two pass parsing module for python-like input | 20:44 | |
jnthn | FROGGS: Couple of months :P | ||
20:44
spintronic joined
|
|||
jnthn | FROGGS: I need to figure out what to talk about at YAPC::EU yet... :) | 20:44 | |
FROGGS | jnthn: yeah, that was my feeling also *g* | ||
depends on what someone can implement until then :P | |||
slava-wr0k | jnthn: automatic parallelism of junctions? | 20:45 | |
timotimo | knowing you, it will be about some exciting feature that was missing so far | ||
20:45
molaf left
|
|||
timotimo | and suddenly it's there | 20:45 | |
slava-wr0k | actually, jnthn can moarvm do native calls to C libs yet? | ||
timotimo | no pressure :) | ||
nativecall is implemented already | 20:46 | ||
for hyper operators we reallybwant compact arrays of known dimensions and use simd instructions in the vm | 20:47 | ||
Vendethiel- is afraid he'll have to paste masak++'s text::indented :( | |||
dalek | p: 8af9902 | (Tobias Leich)++ | tools/build/MOAR_REVISION: bump MoarVM revision to 2014.05 |
||
timotimo | rather than threading out to multiple interpreter threads | ||
except for things that we can not turn into simple simd operations like >>.Str or something | 20:48 | ||
jnthn | slava-wr0k: Yeah, nativecall works as well as on any other backend, afaik | ||
slava-wr0k | jnthn: I owe you many beers :) | ||
timotimo | all backends havebthe closure cloning problem? | ||
jnthn | slava-wr0k: And is probably faster then on Parrot, though that's based on knowing how the two work rather than measurement... :) | 20:49 | |
Vendethiel- | "undeclared routine : does". welp | ||
jnthn | timotimo: I strongly suspect so. | ||
Vendethiel- | oh, I need also | ||
m: class A {}; class B; also does A; | |||
camelia | rakudo-moar 900f0b: OUTPUT«===SORRY!=== Error while compiling /tmp/ZrtNaYQFwjToo late for semicolon form of class definitionat /tmp/ZrtNaYQFwj:1------> class A {}; class B; ⏏also does A; expecting any of: statement list…» | ||
Vendethiel- | m: class B; also does Positional; | ||
camelia | ( no output ) | ||
Vendethiel- | m: grammarB; also does Positional; | 20:50 | |
camelia | rakudo-moar 900f0b: OUTPUT«===SORRY!=== Error while compiling /tmp/5v1jwlWXeoCannot call 'trait_mod:<does>'; none of these signatures match::(Mu:U $doee, Mu:U $role)at /tmp/5v1jwlWXeo:1------> » | ||
Vendethiel- | "Text::Indented is not composable" | 20:51 | |
jnthn | Vendethiel-: Did you does a class? | 20:52 | |
Vendethiel- | no, a grammar | ||
but the idea is the same :-) | |||
jnthn | "is" for inheritance... | ||
Vendethiel- | well, I'd have liked to be able to compose grammar, but I guess is does the job too :) | 20:53 | |
jnthn | Well, you can always put rules in a role | 20:54 | |
And compose them into some other grammar | |||
We do that in the Perl 6 grammar | |||
20:54
raiph left
|
|||
Vendethiel- | yeah, definitely. | 20:54 | |
20:57
itz left
|
|||
Vendethiel- | m: gist.github.com/Nami-Doc/8856f534457e7d86de16 | 20:58 | |
camelia | rakudo-moar 900f0b: OUTPUT«gist not found» | ||
Vendethiel- | why. | ||
m: gist.githubusercontent.com/Nami-Do...tfile1.txt | |||
camelia | rakudo-moar 900f0b: OUTPUT«===SORRY!=== Error while compiling /tmp/Ty1Vjogn8ZTwo terms in a rowat /tmp/Ty1Vjogn8Z:1------> https⏏://gist.githubusercontent.com/Nami-Doc/8 expecting any of: argument list postfix…» | ||
Vendethiel- | m: gist.github.com/Nami-Doc/8856f534457e7d86de16 #PLS | ||
camelia | rakudo-moar 900f0b: OUTPUT«===SORRY!=== Error while compiling /tmp/mnHTiitCuqTwo terms in a rowat /tmp/mnHTiitCuq:1------> https⏏://gist.github.com/Nami-Doc/8856f534457e expecting any of: argument list postfix…» | ||
20:59
spider-mario left
|
|||
Vendethiel- | i don't like you either, camelia | 21:00 | |
21:03
SevenWolf joined,
dayangkun left
21:04
xenoterracide left,
xenoterracide_ joined
21:05
Sqirrel left
|
|||
Vendethiel- | duhu, what ? I'm getting strange stuff when printing a Match : i.imgur.com/L4mQdZJ.png | 21:05 | |
how, is that "those" quote ? | |||
m: say "a" ~~ (my regex { 'a' }) | |||
camelia | rakudo-moar 900f0b: OUTPUT«「a」» | ||
21:06
skids left,
Sqirrel joined
|
|||
FROGGS | Vendethiel-: these are meant top be corner quotes... but, well, you font... :/ | 21:10 | |
your* | |||
Vendethiel- | FROGGS: cmd.exe* | ||
FROGGS | I've seen that | ||
21:10
Rotwang left
|
|||
FROGGS | we have code that decide about emitting color codes or not... perhaps we should do the same for corner quotes | 21:11 | |
for everyone to test: froggs.de/perl6/nqp-2014.05.tar.gz | |||
21:11
jeffreykegler left
|
|||
Vendethiel- | FROGGS: cmd.exe supports colors | 21:12 | |
jnthn | Corner brackets for out for me, but I'm running ConEmu... | 21:13 | |
FROGGS | Vendethiel-: you've seen colored error messages from rakudo? | ||
Vendethiel- | FROGGS: no | ||
but I've seem some from other stuff :) | |||
jnthn | FROGGS: ConEmu can certainly re-interpret ANSI color codes... | ||
FROGGS: Which is how I get them in errors | |||
FROGGS | yeah, I had colors once after I installed git or so | ||
jnthn | Git cheats though :P | 21:14 | |
Vendethiel- | why ? | ||
jnthn | It's actually invoking sh at some points along the way | ||
Vendethiel- | haha | ||
jnthn | I figure then some wrapper is doing a mapping along the way | ||
Vendethiel- | m: class Node { ...}; Node.new; | ||
camelia | rakudo-moar 900f0b: OUTPUT«===SORRY!=== Error while compiling /tmp/z6PIZiow3oThe following packages were stubbed but not defined: Nodeat /tmp/z6PIZiow3o:1------> class Node { ...}; Node.new;⏏<EOL> expecting any of: …» | ||
Vendethiel- | m: class Node { ...}; class NotNode is Node {}; NotNode.new; | 21:15 | |
camelia | rakudo-moar 900f0b: OUTPUT«===SORRY!=== Error while compiling /tmp/GKkhxr8V5ZThe following packages were stubbed but not defined: Nodeat /tmp/GKkhxr8V5Z:1------> ; class NotNode is Node {}; NotNode.new;⏏<EOL> expecting any …» | ||
21:15
Sqirrel left
21:16
Sqirrel joined
21:17
dayangkun joined
|
|||
dalek | kudo/nom: 8bda08e | (Tobias Leich)++ | docs/ChangeLog: add two more changelog entries |
21:20 | |
FROGGS | >>> last call for rakudo changelog entries <<< | ||
Vendethiel- | aaaah I've got no idea what I'm doing >_> | 21:24 | |
FROGGS | here is a list of commit titles covered by the release: gist.github.com/FROGGS/7c32b757c1472578e733 | ||
21:30
rindolf left
21:31
anant joined
|
|||
Vendethiel- | m: say (Array[Int].new(5)).list.perl | 21:32 | |
camelia | rakudo-moar 900f0b: OUTPUT«Array[Int].new(5)» | ||
anant | r: for ^^^^^^^^^^^3 X ^^^^^^^^^^^^2 -> $a, $b { say $a, $b } | 21:36 | |
camelia | rakudo-{parrot,jvm,moar} 900f0b: OUTPUT«000110112021» | 21:37 | |
anant | Is this expected behavior? | ||
21:38
virtualsue left
|
|||
flussence | r: say 1..3..3 | 21:38 | |
camelia | rakudo-{parrot,jvm,moar} 900f0b: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileOperators '..' and '..' are non-associative and require parenthesisat /tmp/tmpfile:1------> say 1..3.⏏.3 expecting any of: postfix…» | ||
FROGGS | m: say ^^^^^^^^^^^3, ^^^^^^^^^^^^2 | ||
camelia | rakudo-moar 900f0b: OUTPUT«0..^30..^2» | ||
flussence | r: say 1..(3..3); say (1..3)..3; | ||
camelia | rakudo-moar 900f0b: OUTPUT«Range objects are not valid endpoints for Ranges in method new at src/gen/m-CORE.setting:7387 in sub infix:<..> at src/gen/m-CORE.setting:7562 in block at /tmp/tmpfile:1» | ||
..rakudo-jvm 900f0b: OUTPUT«Range objects are not valid endpoints for Ranges in method new at gen/jvm/CORE.setting:7328 in sub infix:<..> at gen/jvm/CORE.setting:7503 in block at /tmp/tmpfile:1» | |||
..rakudo-parrot 900f0b: OUTPUT«Range objects are not valid endpoints for Ranges in method new at gen/parrot/CORE.setting:7334 in method new at gen/parrot/CORE.setting:7326 in sub infix:<..> at gen/parrot/CORE.setting:7509 in block at /tmp/tmpfile:1» | |||
FROGGS | anant: looks like, yes | ||
anant | FROGGS: oh! | 21:39 | |
flussence | m: say ^4 XZXZXZXZXZXZXZXZ ^3; #reminds me of this | 21:40 | |
camelia | rakudo-moar 900f0b: OUTPUT«0 0 0 1 0 2 1 0 1 1 1 2 2 0 2 1 2 2 3 0 3 1 3 2» | ||
anant | I'm surprised this is allowed | 21:41 | |
timotimo | why would we forbid that? | 21:42 | |
PerlJam | m: my $a = ^3; say ^$a; | ||
camelia | rakudo-moar 900f0b: OUTPUT«0..^3» | ||
timotimo | jnthn: the last argument to g_signal_connect_wd is the user data; so maybe i could have a single supply that connects to all buttons and i return supplies from "clicked" that .grep for the right user data in the shared supply? | 21:43 | |
anant | timotimo: I thought a meta-operator only works on an ordinary operator, not on another meta-operator (reading perl6advent.wordpress.com/2010/12/0...perators/) | 21:44 | |
jnthn | timotimo: That is also a possibility | ||
timotimo | anant: a meta-operator is an ordinary operator :) | 21:45 | |
jnthn | timotimo: Though might be better just to fix the closure stuff, no... | ||
timotimo | jnthn: have no idea where to look for that. | ||
jnthn | nativecall.c :P | ||
Especially the callback caching stuff | |||
anant | timotimo: oh! | 21:46 | |
timotimo | actually. the second-to-last argument is the user data, which is OpaquePointer AKA null pointer each time we use it so far | ||
dalek | kudo/nom: 5ad1eaf | (Tobias Leich)++ | docs/announce/2014.05.md: added announcement for 2014.05 |
||
FROGGS | please review -------^ | ||
timotimo | anant: wouldn't be any use if a meta'd operator wasn't something you could metaop again | ||
and if you can metaop a metaop'd op, you have to be able to metaop a metaop'd metaop'd op | |||
anant | timotimo: ah okay | 21:47 | |
FROGGS | hehe | ||
timotimo | ah, so the callback cache currently only inspects the cuid of something | 21:48 | |
jnthn | timotimo: ~Right. | ||
21:49
BenGoldberg joined
|
|||
dalek | ast: 3d9a9dd | (Tobias Leich)++ | S03-smartmatch/signature-signature.t: temporary comment out single test |
21:49 | |
timotimo | which op do i look at to figure out what closure cloning does? takeclosure? | ||
jnthn | yeah | 21:51 | |
But really it's just making a different MVMCode | |||
That share the underlying MVMStaticFrame | |||
timotimo | not quite sure how to disambiguate in this case. | 21:52 | |
i can hardly note the address of the MVMCode | |||
jnthn | Well, the cache'll need changing I guess... | ||
Right | |||
timotimo | looking at MVMCode.c right now | ||
and frame.c | |||
jnthn | Well, we could have cuid mapped not to one cache entry | ||
But instead to a list of them | |||
21:52
Adriaaaan left
|
|||
jnthn | So a cache lookup seeks cuid match AND then hunts for matching code object | 21:52 | |
timotimo | the cache will be something the GC has to know about, then | ||
jnthn | I think it maybe already does... | 21:53 | |
It must, I guess | |||
timotimo | and at that point the address could be compared? | ||
jnthn | 'cus it keeps a code object reference... | ||
Right, 'cus it'd be up to date | |||
timotimo | that'll also make sure callbacks that go to C land don't get gc'd | ||
jnthn | indeed | ||
That's good and bad :) | |||
Good for Gtk, anyways. ;) | |||
timotimo | yes, ownership handling is tough | 21:54 | |
i suppose nativecall will want an "unregister callback" op or something | |||
and you'll have to carry a reference to it around | |||
that seems ugly ugly ugly | |||
dalek | kudo/nom: d48629d | (Tobias Leich)++ | docs/release_guide.pod: update release dates |
||
timotimo | but what C does is completely invisible to us | ||
jnthn | Welcome to C :P | 21:55 | |
Simple language. So simple it doesn't come with a memory model. :P | |||
dalek | kudo/nom: 8481d90 | (Tobias Leich)++ | tools/build/NQP_REVISION: [release] bump NQP revision |
21:56 | |
timotimo | jnthn: got some code i could cargocult for a hash of lists? | 21:57 | |
21:57
silug joined
|
|||
dalek | kudo/nom: 85bcd7a | (Tobias Leich)++ | VERSION: [release] bump VERSION |
21:57 | |
jnthn | timotimo: Nope, sorry | 21:58 | |
timotimo: Occurs to me we could do a linked list scheme though | |||
Of MVMNativeCallback | |||
timotimo | that was my first thought, too | ||
since we won't be removing any as of yet | 21:59 | ||
jnthn | Linked lists support deletion :P | ||
timotimo | er. yeah. | ||
jnthn | Hm, I think actually I'd: | ||
timotimo | "I'd (and you'll)" :) | ||
jnthn | 1) In MVMNativeCallback remove the hash thing, and add a ->next | 22:00 | |
22:00
anant left
|
|||
jnthn | 2) Create a MVMNativeCallbackCacheHead, that has the hash thing, and a ->callback_head pointer to the head of the list | 22:00 | |
And then update the cache to use the latter | |||
Just a bit clear data structure wise. | |||
*cleaner | |||
timotimo | -> #moarvm | 22:01 | |
jnthn | sure :) | ||
22:15
Sqirrel left
22:16
lizmat joined
22:18
eMBee left
|
|||
dalek | ast: ee6df08 | (Tobias Leich)++ | S17-supply/start.t: mark another test as flapping |
22:19 | |
22:19
eMBee joined
22:21
denis_boyun left
|
|||
FROGGS | jnthn: can you put the moarvm tarball on moarvm.org? | 22:28 | |
22:28
donaldh_ joined
22:33
Sqirrel joined
22:34
skids joined
|
|||
jnthn | I linekd it earlier | 22:34 | |
Just didn't update the web page yet | |||
www.moarvm.org/releases/MoarVM-2014.05.tar.gz | 22:35 | ||
Will probably get to that tomorrow, I should rest now... | |||
FROGGS | jnthn: gnight :o) | 22:37 | |
jnthn | 'night, #perl6 | 22:38 | |
flussence | o/ | ||
22:38
woolfy joined
22:42
xenoterracide_ left
|
|||
timotimo | tadzik: any idea why the terminal would be sitting still and not using much cpu after outputting: | 22:46 | |
==> Reinstalling Term::ANSIColor Debugger::UI::CommandLine NativeCall ufo | |||
in the rebootstrap process? | |||
masak: wtb ufo commitbit | 22:48 | ||
22:51
rurban left
22:55
donaldh_ left
|
|||
flussence | I've caused something weird with threads, but I'm not in any hurry to get it fixed... I'll just leave it here: gist.github.com/flussence/c1f782ea8616611d75c9 | 22:57 | |
23:00
fhelmberger joined,
rurban joined
23:04
fhelmberger left
23:05
rurban left
23:08
spintronic left
23:09
rurban joined
23:11
raiph joined
|
|||
timotimo | oh, that's cute | 23:20 | |
i'm having a frustrate with pointers | 23:22 | ||
23:26
woolfy left
23:33
kurahaupo left
|
|||
timotimo | i has a bug fixed! | 23:43 | |
23:43
rurban left
|
|||
dalek | k-simple: e21417a | (Timo Paulssen)++ | / (2 files): no longer need these debugging messages this was a bug in nativecall on moarvm. it used to dispatch a callback based on the cuid alone, ignoring that multiple closure-clones of the same cuid can exist. |
23:59 |