»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by moritz on 25 December 2014. |
|||
00:00
telex joined,
adu joined,
skids joined
00:06
Mouq left
00:12
vendethiel left
00:15
Mouq joined
00:25
vendethiel joined
00:30
Mouq left
00:41
_dolmen_ left
00:46
vendethiel left
00:49
vendethiel joined
01:00
tengignick left,
tengignick joined
01:01
tengignick left
|
|||
masak | 'night, #perl6 | 01:07 | |
raydiak | sleep well, masak | ||
hahainternet | nn | ||
raydiak | # here we solve the problem with public-education-level algebra and geometry by disregarding the supposed differences between space and time to model the dynamic system as a static XYZT 4-space | 01:24 | |
...sometimes the comments are more fun than the code :) | |||
01:32
kurahaupo left
01:35
echowuhao left,
vendethiel left
|
|||
skids | r: role A { method abs { ... } }; class C does A { has Int $.b handles "abs" = -2 }; C.new.abs | 01:36 | |
camelia | rakudo-{parrot,moar} 1b0d7a: OUTPUT«===SORRY!===Method 'abs' must be implemented by C because it is required by a role» | ||
01:52
grettir left
01:53
Mouq joined
02:09
kurahaupo1 joined
|
|||
TimToady | m: say '1234'.ords | 02:11 | |
camelia | rakudo-moar 1b0d7a: OUTPUT«49 50 51 52» | ||
TimToady | m: say '1234'.ords xx 2 | ||
camelia | rakudo-moar 1b0d7a: OUTPUT«» | ||
TimToady | o_O | ||
m: say (49, 50, 51, 52) xx 2 | 02:12 | ||
camelia | rakudo-moar 1b0d7a: OUTPUT«49 50 51 52 49 50 51 52» | ||
TimToady | m: say (49, 50, 51, 52).WHAT | ||
camelia | rakudo-moar 1b0d7a: OUTPUT«(Parcel)» | ||
TimToady | m: say '1234'.ords.WHAT | ||
camelia | rakudo-moar 1b0d7a: OUTPUT«(List)» | ||
TimToady | m: say '1234'.ords.eager xx 2 | 02:13 | |
camelia | rakudo-moar 1b0d7a: OUTPUT«49 50 51 52 49 50 51 52» | ||
TimToady | m: say ('1234'.ords xx 2).eager | 02:14 | |
camelia | rakudo-moar 1b0d7a: OUTPUT«» | ||
02:20
Mouq left
02:22
colomon left
02:23
vendethiel joined
02:25
colomon joined
|
|||
TimToady | by avoiding .trans, rosettacode.org/wiki/Textonyms#Perl_6 is now about 15 times faster | 02:38 | |
hahainternet | TimToady: that's quite lovely especially compared to its contemporaries | 02:42 | |
02:44
dj_goku_ joined,
dj_goku_ left,
dj_goku_ joined,
ilbot3 left,
vendethiel left
|
|||
dalek | ast: 0ce5f3f | TimToady++ | S03-operators/repeat.t: 'ABC'.ords xx 2 should not produce empty list |
02:46 | |
colomon | TimToady++ | ||
TimToady | but we gotta fix .trans | ||
it recalculates the translation table Every Time You Call It | |||
JimmyZ | oh my ilbot3... | 02:47 | |
02:47
ilbot3 joined
02:50
_dolmen_ joined,
kurahaupo1 left
|
|||
hahainternet | TimToady: i was reading about the 'whirlpool' model, i like the idea but i can't help but think that analogy needs work | 02:51 | |
02:51
simcop2387_ joined
|
|||
TimToady | repeating for ilbot3: | 02:51 | |
but we gotta fix .trans | |||
it recalculates the translation table Every Time You Call It | |||
02:52
slavik left,
dj_goku left,
awwaiid left,
simcop2387 left,
simcop2387_ is now known as simcop2387
|
|||
TimToady | hahainternet: well, it's a kind of strange loop, speaking of Hofstadter... | 02:52 | |
hahainternet | TimToady: no doubt, but seeing the addition there makes me realise the value of 'play about on irc, find something that doesn't work, note it unambiguously' | ||
TimToady | and you really don't know how many times it's gonna go around, or how much mixing there will be, before the bathtub drains | 02:53 | |
irc is the part of the whirlpool that's spinning very fast :) | |||
hahainternet | yeah i don't disagree with any of it, other than a 'whirlpool' has some negative connotations | 02:54 | |
TimToady | well, it's like a vacuum, it's supposed to suck | ||
hahainternet | i think the key for me is the lack of ambiguity, that change is clear and straightforward and won't ever go away | ||
so i see it a bit like a tornado in reverse | 02:55 | ||
TimToady | and it's hard to predict which bits of water will actually go down the drain first :) | ||
hahainternet | lots of chaos, but first you build a frame and then a bit later on the surrounding structure materialises out of nowhere and happens to perfectly fit :) | ||
TimToady | in some ways it's more like a weather system that is going somewhere else, but you don't quite know where | 02:56 | |
02:57
awwaiid joined
|
|||
TimToady | or if you take it in a more theological direction: www.biblegateway.com/passage/?sear...ersion=NIV | 02:57 | |
02:58
slavik joined
|
|||
TimToady | must go to dinner now or suffer the social consequences :) | 03:00 | |
afk & | |||
03:01
vendethiel joined
03:08
Mouq joined
03:10
noganex joined
03:13
noganex_ left
03:14
aborazmeh joined
03:18
max joined,
max left
03:19
traplol joined,
traplol left
03:24
_dolmen_ left
03:27
MilkmanDan joined,
vendethiel left
03:32
muraiki_ left,
kurahaupo1 joined
03:35
vendethiel joined
03:36
_dolmen_ joined
|
|||
TimToady | ya know, I've wanted to be able to treat an array or hash as a postfix function a lot more often than I've wanted a set of cascading handlers | 03:42 | |
so I'm thinking about stealing $foo.@bar and $foo.%baz to treat @bar or %baz as filtering functions | |||
and relegate the current $foo.@candidates(args) syntax to $foo.handlers(@candidates, args) or so | 03:43 | ||
since it's not implemented anyway... | 03:44 | ||
that is, 42.@bar would be equivalent to @bar[42] | 03:46 | ||
raydiak | meaning... $foo.grep( * ∈ @bar ) or so? | ||
TimToady | no | ||
raydiak | ah, got it | ||
sorry, lag in my tmux session | |||
TimToady | nod | ||
42.@bar(:kv) and such would presumably also work | 03:48 | ||
presumably these forms would autoslice the left side too | 03:49 | ||
(1,2,3).@bar and such | |||
then the slice modifiers make more sense | |||
would be a fairly simple transformation to the current AST for @bar[1,2,3] | 03:50 | ||
but lets you go left-to-right with subscripted mappings, which is something we can't do right now | 03:51 | ||
Mouq | TimToady: (1,2,3) ==> @bar[] ? | ||
TimToady | at least not without saying .map({ @bar }) | ||
I would take that as writing to @bar | |||
at least not without saying .map({ @bar[$_] }) I mean | 03:52 | ||
Mouq | Oh, hm. | ||
TimToady | m: say 1,2,3 ==> my @bar; say @bar | ||
camelia | rakudo-moar 1b0d7a: OUTPUT«123True» | ||
TimToady | er | ||
Mouq | m: my @bar; say 1,2,3 ==> @bar[]; say @bar | ||
camelia | rakudo-moar 1b0d7a: OUTPUT«123» | ||
TimToady | m: 1,2,3 ==> my @bar; say @bar | ||
camelia | rakudo-moar 1b0d7a: OUTPUT«1 2 3» | ||
TimToady | m: my @bar; 1,2,3 ==> @bar[]; say @bar | 03:53 | |
camelia | rakudo-moar 1b0d7a: OUTPUT«» | ||
TimToady | m: my @bar; 1,2,3 ==> @bar; say @bar | ||
camelia | rakudo-moar 1b0d7a: OUTPUT«1 2 3» | ||
TimToady | m: my @bar; 1,2,3 ==> @bar[*]; say @bar | ||
camelia | rakudo-moar 1b0d7a: OUTPUT«» | ||
TimToady | m: my @bar; 1,2,3 ==> @bar[^3]; say @bar | ||
camelia | rakudo-moar 1b0d7a: OUTPUT«» | ||
TimToady | guess it doesn't like a slice for a target yet | 03:54 | |
Mouq | m: 1,2,3 ==> my ($parcel,); say $parcel | 03:55 | |
camelia | rakudo-moar 1b0d7a: OUTPUT«(Any)» | ||
Mouq tries to remember what bug he promised to look at later this week… | 03:56 | ||
03:57
vendethiel left
|
|||
Mouq | $=data was it? | 03:57 | |
Mouq mumbles about pod to his physics homework | |||
03:58
Mr0rris0 left
|
|||
raydiak | any particular reason we want a way to write subscripts on the left? or just to let people say it different? | 03:58 | |
I guess it maps pretty well to english... "42nd element of @bar" | 03:59 | ||
TimToady | subscripts sort of have the P5ish @{} illness, requiring a circumfix for something that could be inlined | ||
Mouq | m: my @bar; my &bar = postcircumfix:<[ ]>.assuming(@bar); 1,2,3 => bar(); say @bar; | 04:00 | |
camelia | rakudo-moar 1b0d7a: OUTPUT«===SORRY!=== Error while compiling /tmp/_Y14XOoG6wCalling 'postcircumfix:<[ ]>' requires arguments (if you meant to operate on $_, please use .postcircumfix:<[ ]> or use an explicit invocant or argument) Expected any of:  :…» | ||
raydiak | oh I like it a lot more now that you put it that way.../me hates typing circumfix ops | ||
Mouq | m: my @bar; my &bar = &postcircumfix:<[ ]>.assuming(@bar); 1,2,3 => bar(); say @bar; | ||
camelia | rakudo-moar 1b0d7a: OUTPUT«WARNINGS:Useless use of "," in expression "1,2,3 =>" in sink context (line 1)» | ||
Mouq | Oh duh | ||
m: my @bar; my &bar = &postcircumfix:<[ ]>.assuming(@bar); 1,2,3 ==> bar(); say @bar; | |||
raydiak | (especially when I have to change them later) | ||
camelia | rakudo-moar 1b0d7a: OUTPUT«» | ||
Mouq | Aww :9 | ||
04:01
dj_goku_ left
|
|||
raydiak | afk dinner | 04:02 | |
04:06
dj_goku joined
04:10
vendethiel joined
04:14
echowuhao joined,
dj_goku left
04:30
aborazmeh left,
dj_goku joined,
dj_goku left,
dj_goku joined
04:31
aborazmeh joined
04:32
vendethiel left
04:33
chenryn joined,
vendethiel joined
04:41
dj_goku left
04:43
chenryn left
04:46
dj_goku joined,
dj_goku left,
dj_goku joined
04:54
vendethiel left
|
|||
avuserow_ | botsnack | 04:55 | |
:) | |||
Mouq | TimToady: Oh, wait a minute: | 04:57 | |
m: my @bar = 4,5,6; 0,1,2 ==> @bar[] ==> say(); | |||
camelia | rakudo-moar 1b0d7a: OUTPUT«4 5 6» | ||
04:58
avuserow_ is now known as avuserow
|
|||
avuserow | .botsnack | 04:59 | |
yoleaux | :D | ||
05:02
vendethiel joined
05:03
dj_goku left
05:04
BenGoldberg left
05:06
dj_goku joined,
dj_goku left,
dj_goku joined
05:12
chenryn joined
05:14
ssl_ joined
05:15
ssl_ left
05:23
vendethiel left
05:28
diana_olhovik_ joined
05:44
jack_rabbit joined
05:55
kurahaupo1 left,
vendethiel joined
05:58
xfix joined
06:17
vendethiel left
06:19
[Sno] left
06:20
bjz joined
06:22
vendethiel joined
06:24
jack_rabbit left
06:27
diana_olhovik_ left
06:28
bjz left
|
|||
Mouq | Hey, any feedback on the idea that in the REPL, the result of the previous line is stored in $_ by default? | 06:29 | |
So I'm doing calculations and I enter, say | 06:30 | ||
> 4*6+12*cos(51*pi/180)*i | |||
> .abs | |||
and get 25.1600945598605 | 06:31 | ||
For clarity, s/is stored in/could be stored in/ | 06:32 | ||
TimToady | nice for a calculator, though perhaps not as nice to prototype code you plan to save somewhere | 06:35 | |
06:37
mr-foobar left
06:38
jack_rabbit joined
|
|||
Mouq | TimToady: Ahh, yeah. Of course, that considered, there could tangentially be an option to save a session, which could also be aware of that feature… idk. If my ideas are hole-filled and starry-eyed, I can safely blame sleep deprevation | 06:44 | |
moritz | Mouq: IMHO the idea isn't bad, it's just not good either :-) | 06:48 | |
Mouq: we want stuff to behave on the REPL as closely as normal code as makes sense | 06:49 | ||
Mouq | Haha, kk, I see :) | 06:52 | |
06:53
salv0 left
06:55
bjz joined
06:56
salv0 joined
07:03
alini joined
07:10
vendethiel left
07:11
vendethiel joined
07:13
gfldex left
07:14
jack_rabbit left
07:15
vukcrni joined
07:18
Mouq left
07:20
gfldex joined,
avalenn left
07:22
lea_ joined,
lea left
07:24
lea_ left,
lea_ joined,
lea_ is now known as lea
07:25
colomon left
07:26
daxim left
07:27
gfldex left,
lea left,
lea joined
07:32
vendethiel left
07:33
colomon joined
07:35
diana_olhovik joined
07:36
vendethiel joined
07:39
[Sno] joined
07:41
_dolmen_ left
07:42
chenryn left
|
|||
avuserow | mjp: constant three = 3; say so pi ~~ /{three}/ | 07:42 | |
r: constant three = 3; say so pi ~~ /{three}/ | |||
camelia | rakudo-{parrot,moar} 1b0d7a: OUTPUT«True» | ||
07:43
FROGGS joined
|
|||
TimToady | um, that is merely matching the null string | 07:44 | |
FROGGS backlogs to see if TimToady is mad at him... | |||
07:45
adu left,
lea_ joined
|
|||
TimToady doesn't get mad, he just gets even | 07:45 | ||
07:45
lea_ is now known as figment
|
|||
TimToady | m: constant three = 3; say so pi ~~ /<{three}>/ | 07:46 | |
camelia | rakudo-moar 1b0d7a: OUTPUT«This type cannot unbox to a native string in sub MAKE_REGEX at src/gen/m-CORE.setting:15042 in block at src/gen/m-CORE.setting:14968 in method INTERPOLATE at src/gen/m-CORE.setting:14958 in method ACCEPTS at src/gen/m-CORE.setting:15090…» | ||
TimToady | m: constant three = '3'; say so pi ~~ /<{three}>/ | ||
camelia | rakudo-moar 1b0d7a: OUTPUT«True» | ||
TimToady | m: constant three = 3; say so pi ~~ /<{~three}>/ | ||
camelia | rakudo-moar 1b0d7a: OUTPUT«True» | ||
TimToady | that's actually matching the 3 now | ||
07:49
figment left,
figment joined,
coffee` joined
07:53
chenryn joined
07:54
adu joined
07:55
figment left
08:00
vendethiel left
08:01
Mr0rris0 joined,
Mr0rris0 left,
figment joined
|
|||
avuserow | oh I see, it executes the code but doesn't return it to match | 08:01 | |
I'm a bit surprised I didn't get a 'useless use of constant in sink context' or something | 08:02 | ||
08:04
prime left
|
|||
TimToady | there's a bug | 08:05 | |
m: 42; 43; | 08:06 | ||
camelia | rakudo-moar 1b0d7a: OUTPUT«WARNINGS:Useless use of constant integer 42 in sink context (line 1)» | ||
TimToady | m: sub foo { 42; 43 } | ||
camelia | ( no output ) | ||
TimToady | doesn't seem to trigger inside blocks | ||
avuserow | okay thanks. /me sleeps & | 08:07 | |
08:08
alini left
08:09
darutoko joined
08:14
prime joined,
vendethiel joined
08:22
echowuhao left
08:30
abraxxa joined
08:35
vendethiel left
08:36
spider-mario left
08:37
vendethiel joined
08:45
figment left,
xinming joined
08:46
tengignick joined
08:54
alini joined
08:57
alini left
|
|||
lizmat | jnthn: regarding Supply.close: we expose .tappers, Supply.close is basically just a wrapper around that | 08:58 | |
perhaps we shouldn't expose .tappers if we want to prevent action at a distance ? | 08:59 | ||
09:00
vendethiel left
09:01
Ven joined
09:03
_mg_ joined
09:05
vendethiel joined
09:09
Ven left
|
|||
jnthn | lizmat: Quite possibly, yes. Is there anything depending on its exposure? | 09:11 | |
09:11
chenryn left
|
|||
jnthn | TimToady: Question is, where the cache the trans thingy we computed... | 09:11 | |
lizmat | ProvatePublishing uses them | ||
*Priv | 09:12 | ||
09:13
skarn left,
skarn_ joined
|
|||
lizmat | jnthn: not sure how PrivatePublishing role would be able to get to Supply!tappers | 09:13 | |
jnthn | lizmat: I note that only 2 things use its methods | 09:16 | |
lizmat: Even though many others compose it | |||
09:16
diana_olhovik left
|
|||
jnthn | lizmat: So maybe the answer is to kill off that role; it seems most things that mighta once used it now do not | 09:18 | |
09:18
chenryn joined,
Alina-malina left
|
|||
lizmat | ok, will look at that later then :-) | 09:19 | |
trying to fix the symlink mess I made late last night | |||
09:20
fhelmberger joined,
Alina-malina joined,
Ugator joined,
telex left
09:22
telex joined
|
|||
jnthn | :) | 09:24 | |
09:24
virtualsue joined,
fhelmberger left
|
|||
lizmat | I just can't seem to get nqp to build using the latest (local) MoarVM | 09:24 | |
jnthn | I normally build Moar, then --prefix=... --backend=moar to NQP's configure | 09:25 | |
Then once that's in place, I can make NQP after a make install of Moar | |||
(unless NQP changes enough to need re-configure) | 09:26 | ||
arnsholt | Oh, Moar-related question: How much of what goes on top has to be recompiled when I update Moar? | ||
(Only thing that'll actually change is a REPR, FWIW) | 09:27 | ||
JimmyZ | --backend=moar is default now | ||
09:31
dakkar joined
|
|||
FROGGS | lizmat: here are the scripts I use, I never have problems building anything: gist.github.com/FROGGS/7427c9879a131df96d34 | 09:31 | |
lizmat: the commented lines are other options, like building several backends or bisecting rakudo with the correct nqp and vm | 09:32 | ||
lizmat | FROGGS++ | ||
dalek | p: b55f7c4 | lizmat++ | tools/build/MOAR_REVISION: Bump Moar to get correct symlink testing |
09:33 | |
p: ee45f1e | lizmat++ | t/nqp/19-file-ops.t: Activate symlink test again |
|||
FROGGS | arnsholt: often it is enough to recompile moar and then just run your perl6 script... nqp and rakudo usually can be left untouched | ||
jnthn | arnsholt: What FROGGS said, pretty much. :) | ||
arnsholt: I make install Moar without re-building NQP/Rakudo most of the time | 09:34 | ||
(When I'm actively doing Moar dev) | |||
09:34
espadrine joined
|
|||
arnsholt | Yaaay! | 09:35 | |
Just having flashbacks to when I hacked on the Parrot REPRs and ended up accidentally recompiling all the things =) | |||
09:36
wicope joined
|
|||
FROGGS | and since compiling moar just takes seconds, it is quite fun to work on the vm :o) | 09:36 | |
in contrast to parrot | |||
even for the jvm you can just recompile the .java files without the need to build anything else | 09:37 | ||
JimmyZ | yeah, that's why my most commits it to moarvm :P | ||
*is | |||
FROGGS | :o) | ||
JimmyZ: you are a weenie :P | 09:38 | ||
jnthn | Turns out "exploit human laziness" is a good software design principle :P | 09:39 | |
FROGGS | aye | ||
jnthn: that describes my job at work best | |||
JimmyZ | consider rakudo was taking 600s to compile on parrot :( | 09:40 | |
FROGGS | I create software to support the lazyness of about 500 peeps | ||
JimmyZ | on my note book | ||
FROGGS | JimmyZ: aye | ||
it is pain | |||
09:40
pecastro joined
09:42
adu left
09:43
fhelmberger joined
09:48
alini joined
|
|||
dalek | kudo/nom: de85b09 | lizmat++ | tools/build/NQP_REVISION: Bump NQP to get symlink fix |
09:53 | |
kudo/newio: 7a543d1 | Mouq++ | docs/ChangeLog: Add two ChangeLog entries |
09:56 | ||
rakudo/newio: 7b39dad | lizmat++ | src/core/ (2 files): | |||
rakudo/newio: Make Str.WHY no longer a special case | |||
09:56
dalek left
|
|||
lizmat | sorry dalek | 09:56 | |
09:57
dalek joined,
ChanServ sets mode: +v dalek
09:59
Ven joined
10:00
_mg_ left
10:02
diana_olhovik_ joined
10:03
virtualsue left
10:06
baest joined
10:08
Ven left
|
|||
dalek | p: 2ac8aab | lizmat++ | src/vm/moar/QAST/QASTOperationsMAST.nqp: Add nqp::lstat op |
10:12 | |
p: f7586fc | lizmat++ | tools/build/MOAR_REVISION: Bump MOAR to get lstat op |
|||
10:12
kjs_ joined
10:14
tengignick left
10:15
chenryn left,
larion joined
10:17
zakharyas joined
10:20
tengignick joined,
kjs_ left
10:22
kjs_ joined
10:25
rindolf joined
|
|||
masak | antenoon, fellow sixers. | 10:27 | |
tadzik | hello masak \o/ | ||
10:28
Ven joined
|
|||
dalek | kudo/nom: 600c1a6 | lizmat++ | tools/build/NQP_REVISION: Bump NQP to get nqp::lstat op |
10:28 | |
lizmat | masak tadzik /o | ||
masak salutes, too | |||
masak .oO( ten-HUT ) | |||
I like me a little bit of strict discipline on the IRCs. | 10:29 | ||
morale has been slack recently. | |||
dalek | kudo/newio: 600c1a6 | lizmat++ | tools/build/NQP_REVISION: Bump NQP to get nqp::lstat op |
10:30 | |
kudo/newio: 65ade27 | lizmat++ | tools/build/NQP_REVISION: Merge branch 'nom' into newio |
|||
10:33
Ven left,
Ven joined
|
|||
Ven | \o, masak – me and my shaky wifi salute you | 10:33 | |
10:35
kjs_ left
|
|||
masak | a late contender in the mini-challenge to generate 4x4 mazes: gist.github.com/masak/81409152053431cac80b | 10:36 | |
this one works by attrition: remove anything that's not a maze :) | |||
FROGGS | amazing :o) | ||
masak | except for the data section, the program is delightfully short. | ||
if anyone's interested, I'd be eager to get help before the publishing of my post to make this one faster. | 10:37 | ||
that could happen in three ways, I think: | |||
(a) profiling | |||
(b) turning the string handling of $s into just bit handling of $n (I have some ideas on that, but not quite enough yet) | 10:38 | ||
10:38
Ven left
|
|||
masak | (c) reordering the list of bitmasks to make the more common ones happen first | 10:38 | |
I'll be sure to mention (and karma) anyone who helps. | 10:40 | ||
ooh, ooh, and do we have enough of native arrays yet to turn everything into 'int' ? | 10:41 | ||
that'd help, I think. | |||
jnthn | I wrote a lot of the profiler, does that count as helping? :P | ||
masak | no; sorry. | ||
jnthn | No, I'm not that far along with native arrays yet. | ||
masak | dang. | ||
anyway, once you *are*... | |||
...this might be a good program to try and convert. | 10:42 | ||
jnthn | *nod* :) | ||
10:42
chenryn joined
10:45
virtualsue joined
|
|||
masak .oO( in the meantime, I could just store the ints in 627 separate variables... ) :P | 10:46 | ||
10:48
Akagi201 left
10:49
prevost joined
|
|||
masak | m: my $x = "OH HAI"; say MY::{"\$x"} | 10:51 | |
camelia | rakudo-moar de85b0: OUTPUT«OH HAI» | ||
El_Che | What ever you guys do with Perl 6, make sure the ecosystem doesn't resemble the ruby gems ecosystem. What a moving target :( | 10:52 | |
tadzik | *cough* | ||
El_Che | of corse you've seen this, but in case not: www.infoworld.com/article/2882300/p...-year.html | 10:53 | |
tadzik | I blame the fact that it's all yound and early thing | ||
10:53
chenryn left
|
|||
El_Che | tadzik: I blame the hipsters and their big glasses | 10:54 | |
:) | |||
tadzik | well, I was talking about perl 6:P | ||
El_Che | tadzik: wait till the hipsters arrive by Christmas :) | 10:55 | |
tadzik | hah | ||
would that make it better? :) | |||
El_Che | it will make it hip :) | ||
11:00
kurahaupo1 joined
|
|||
masak | m: my $x = 42; { say OUTER::MY::{"\$x"} } | 11:01 | |
camelia | rakudo-moar de85b0: OUTPUT«42» | ||
masak | m: my int $x = 42; { say OUTER::MY::{"\$x"} } | ||
camelia | rakudo-moar de85b0: OUTPUT«Lexical with name '$x' has a different type in this frame in method at_key at src/gen/m-CORE.setting:11555 in sub postcircumfix:<{ }> at src/gen/m-CORE.setting:3533 in block <unit> at /tmp/dpXZUwLhsB:1» | ||
masak | well, that didn't work too well. | ||
could someone please explain? | |||
"has a different type"? different, how? from what? | |||
oh, even this: | 11:02 | ||
m: my int $x = 42; say MY::{"\$x"} | |||
camelia | rakudo-moar de85b0: OUTPUT«Lexical with name '$x' has a different type in this frame in method at_key at src/gen/m-CORE.setting:11555 in sub postcircumfix:<{ }> at src/gen/m-CORE.setting:3533 in block <unit> at /tmp/3KmCulU_0z:1» | ||
11:02
Guest45 joined
|
|||
jnthn | masak: MY:: just doesn't know what to do with natives yet. | 11:02 | |
masak | dangit. | ||
and here I thought I could simulate a native array using MY:: | |||
jnthn | Urgh | ||
masak | well, there goes that plan :) | ||
jnthn | You've no idea how slow that'd be :P | ||
11:02
chenryn joined
|
|||
masak | I was just about to find out! :P | 11:03 | |
jnthn | But yeah, there's a reason I've been spending the last while on improving the state of native stuffs :P | ||
masak | glad to hear it | ||
this is the first use case I have for them, I think. ever. | 11:04 | ||
dalek | kudo/newio: 6cf07e9 | lizmat++ | src/core/IO (2 files): De-Huffmanize IO.i/.v -> .inode/.device |
11:12 | |
11:12
alini left
|
|||
Peter_R | No type checking on slury params? | 11:12 | |
Is that because the check is done on the container type? | 11:13 | ||
[ptc] | is there a difference between qw and qqw? | 11:17 | |
I can't seem to find anything about qqw in the specs, however it definitely exists | |||
m: qw{a b c} ~~ qqw{a b c} | |||
camelia | ( no output ) | ||
11:17
virtualsue left
|
|||
lizmat | m: my $a = 42; say qw/a = $a/; say qqw/a = $a/ | 11:17 | |
camelia | rakudo-moar de85b0: OUTPUT«a = $aa = 42» | ||
tadzik | I think qq interps | ||
yes | |||
[ptc] | lizmat: thanks :-) | 11:18 | |
lizmat | m: my $a = 42; say qw/a = $a/.perl; say qqw/a = $a/ | ||
camelia | rakudo-moar de85b0: OUTPUT«("a", "=", "\$a")a = 42» | ||
tadzik | lizmat++ | ||
lizmat | m: my $a = 42; say qw/a = $a/.perl; say qqw/a = $a/.perl | ||
camelia | rakudo-moar de85b0: OUTPUT«("a", "=", "\$a")("a", "=", "42")» | ||
[ptc] | that's odd, I got different results from my locally installed perl6 | ||
m: say qqw{a b c} ~~ qw{a b c} | |||
camelia | rakudo-moar de85b0: OUTPUT«True» | ||
[ptc] | say qqw{a b c}.perl | 11:19 | |
m: say qqw{a b c}.perl | |||
camelia | rakudo-moar de85b0: OUTPUT«("a", "b", "c")» | ||
lizmat | m: say qqw{a b c} ~~ qw{b c d} | ||
camelia | rakudo-moar de85b0: OUTPUT«False» | ||
[ptc] | m: say 1qw{a b c}.perl | ||
camelia | rakudo-moar de85b0: OUTPUT«===SORRY!=== Error while compiling /tmp/5O8QlYWv2hConfusedat /tmp/5O8QlYWv2h:1------> say 1⏏qw{a b c}.perl» | ||
lizmat | hmmm | ||
[ptc] | m: say qw{a b c}.perl | ||
camelia | rakudo-moar de85b0: OUTPUT«("a", "b", "c")» | ||
[ptc] | I think the interpolation thing is what I needed to know | 11:20 | |
am trying to document the behaviour and wasn't sure how it worked | |||
lizmat | m: my $a = 42; say qqw{$a b c} ~~ qw{$a b c} | ||
camelia | rakudo-moar de85b0: OUTPUT«False» | ||
[ptc] | ok, that makes sense | ||
lizmat++ | |||
11:21
alini joined
|
|||
jnthn | [ptc]: I think there were a couple of Perl 6 advent posts on quoting stuff (think I did one with a punny title a year or two back) that may be a source of inspiration for documenting the quoting stuff. | 11:21 | |
11:21
grondilu joined
|
|||
lizmat | I did one this year :-) | 11:22 | |
[ptc] | jnthn: ok, I'll have a look, thanks! | ||
btw: qqw is word quoting and not shell quoting, right? | |||
11:22
average joined
|
|||
average | hello | 11:22 | |
question | |||
lizmat | [ptc]: perl6advent.wordpress.com/2014/12/...-steroids/ | ||
average | in the Perl6 specs(or elsewhere), is there a grammar for Perl6 as a language ? (just like C has a grammar, and Java has a grammar, etc) | 11:23 | |
11:23
vendethiel left
|
|||
average | please notice, I'm not asking about Perl6's feature called "grammar" which is a way to write parsers for languages.. | 11:24 | |
I am asking about Perl6's grammar, its own grammar | |||
is there one ? | |||
[ptc] | lizmat: thanks, yup found it | ||
jnthn | average: Perl 6's own grammar is written/specified as a Perl 6 grammar | ||
Peter_R | github.com/perl6/std/blob/master/STD.pm6 | ||
average | jnthn: ok, thanks | ||
jnthn: is that expressible as an ANTLR grammar ? | 11:25 | ||
or in a different popular parser generator syntax | |||
dalek | p/js: 19cdd82 | (Pawel Murias)++ | src/ (6 files): Stub some HLL ops and add a hack that deserializes VMArrays as regular JavaScript arrays. I do this so that we can enable the hll setting part of our hybrid moarvm/js setting. I need this to be able to start working on rules. |
||
jnthn | average: Not easily | 11:26 | |
average | that's a problem | ||
jnthn | average: For the purpose of syntax highlighting, you can get a good enough approximation. | ||
average | jnthn: yeah, I'm afraid syntax highlighting is the most simple use-case for it | 11:27 | |
11:27
dustinm` left
|
|||
average | my initial thinking was around tools to write LINT-ers and static code analysis | 11:27 | |
in 2015, these tools are considered very important | |||
dalek | kudo/newio: e046851 | lizmat++ | src/core/IO.pm: Add FILETEST primitives for lstat access |
||
average | and everyone uses them | 11:28 | |
lizmat | bbiab& | ||
11:28
rindolf left
11:29
pmurias joined
|
|||
masak | average: agreed. | 11:29 | |
11:30
vendethiel joined
|
|||
jnthn | average: Syntax highlighting needs a more sloppy parser anyway. | 11:30 | |
masak | right. forgiving. | ||
pmurias | average: linters, static analyzers and code formatters should use the builtin Perl6 grammar (which is written in Perl6) | ||
11:30
virtualsue joined
|
|||
masak | except for what jnthn just said :) | 11:30 | |
11:30
Guest45 left
|
|||
average | well, there's also OpenGrok which is a really nice project that I personally like very much | 11:30 | |
I brought up OpenGrok because in order to index Perl6 code, it would be important to have some sort of parsing going on | 11:31 | ||
jnthn | average: For linters and so on, what pmurias said - we'll provide an open API to the parser etc. so you can get the real document object model | ||
average | to get "variable names" , "class names" , etc | ||
11:31
Guest45 joined
|
|||
pmurias | for syntax highlighters the problem is more complex | 11:32 | |
11:32
grondilu left
|
|||
average | I constantly read the news and I find many many posts and articles lately that sort-of kinda want to say "Perl6 is out, c'mon use it use it" | 11:32 | |
I would like to say that before such posts/articles go out, and if you really want to get adoption, you really need good support at least in the 2 major editors that the vast majority of Hackers use | 11:33 | ||
and we all know what those two editors are: Emacs and Vim | |||
or Vim and Emacs, I have no preference for one or the other(I use both) | 11:34 | ||
building an exclusive editor for Perl6(like Padre wanted to be for Perl5) is suboptimal in my opinion | 11:35 | ||
11:35
dustinm` joined
|
|||
arnsholt | (I use one and force the other one to pretend to be my editor when I have to use it =) | 11:35 | |
pmurias | average: I don't feel anyone is currently planning to build a custom Perl 6 editor | 11:36 | |
[ptc] | m: my $a = 42; say qqw{$a b c}; say «$a b c»; | 11:37 | |
camelia | rakudo-moar 600c1a: OUTPUT«42 b c42bc» | ||
average | pmurias: great, then support in the 2 established editors is a very important thing to pursue | ||
pmurias | average: the bad things is that writing vim plugins is not very fun | ||
average | of course, my knowledge on the subject may be out-of-date, and such support is probably already in place. | ||
pmurias: writing Vim plugins is not very fun but it's very important | 11:38 | ||
arnsholt | There's Perl 6 mode for vim | ||
It's pretty good, but not perfect by any measure | |||
jnthn | github.com/vim-perl/vim-perl | ||
average | in terms of auto-completion, that was something Perl5 got horribly wrong | 11:39 | |
pmurias | arnsholt: does it do anything other than syntax highlight? | ||
arnsholt | Not AFAIK | ||
average | excuse me if I may be wrong, but the only proper Perl5 auto-complete engine is plsense github.com/aki2o/plsense | ||
[ptc] | hrm, is qqw equivalent to « » ? | ||
average | it's the only one that works well but is very slow | ||
[ptc] | or even equal to that? | ||
I'm only confused since the output of say gives different results, but ~~ says that they match | 11:40 | ||
average | I really hope that before Perl6 is considered "production ready", such tools are shipped with it, or are considered to be of significant importance | ||
pmurias | I consider editor/ide support very important | 11:41 | |
average | are there any auto-complete(or omni-completion) engines for Perl6 at this point in time ? | ||
pmurias | I don't think so | ||
[ptc] | m: qqw{$a b c} === «$a b c» | 11:42 | |
camelia | rakudo-moar 600c1a: OUTPUT«===SORRY!=== Error while compiling /tmp/BZBiN8zkc_Variable '$a' is not declaredat /tmp/BZBiN8zkc_:1------> qqw{$a⏏ b c} === «$a b c» expecting any of: postfix» | ||
[ptc] | m: my $a = 42; qqw{$a b c} === «$a b c» | ||
camelia | ( no output ) | ||
[ptc] | m: my $a = 42; say qqw{$a b c} === «$a b c» | ||
camelia | rakudo-moar 600c1a: OUTPUT«True» | ||
average | pmurias: ok | 11:44 | |
arnsholt | average: Exactly how to expose the grammar and AST is being worked on ATM | ||
pmurias | average: is there a good way to plug auto-complete into vim/emacs without jumping through vimscript hoops? | 11:45 | |
arnsholt | I think there's a framework for plugging in completion to vim | ||
tadzik | also, nvim :) | ||
it works quite nicely, actually | |||
average | pmurias: when writing plugins for either vim or emacs, one has to know vimscript for vim and elisp for emacs | ||
arnsholt | But it'll likely depend on pregenerated caches, vim not supporting subprocesses and all | ||
tadzik | it didn't like some of my python plugins iirc, but otherwise was pretty much a drop-in replacement | 11:46 | |
average | pmurias: avoiding to use their own scripting languages is possible(for Vims built with Perl/Python/Ruby/Lua support) but that brings with it more problems than solutions | ||
pmurias: so although Vimscript may be ugly and miserable, I think it's still the best way to write a Vim plugin | 11:47 | ||
Peter_R | How can I concatenate two lists? | ||
Or arrays, rather | |||
average | pmurias: in Emacs, Elips has been and still is the de-facto language to write modes for Emacs. Recently Guile support has been introduced, but Elisp remains the one that is most used for this purpose.. | ||
moritz | Peter_R: with a , in between | ||
average | *Elisp | 11:48 | |
moritz | m: my @a = 1, 2; my @b = <a b>; .say for @a, @b | ||
camelia | rakudo-moar 600c1a: OUTPUT«12ab» | ||
11:48
grondilu joined
11:49
sqirrel_ joined
|
|||
[ptc] | moritz: do have an idea as to why 'my $a = 42; say qqw{$a b c}' gives different output to 'my $a = 42; say «$a b c»' yet they are ostensibly the same thing? | 11:49 | |
Peter_R | moritz, I am passing the result to a function expecting a single array, it seemed to end up treating the input as a two element array, where each was one of the original arrays | ||
I worked around it with this but it is ugly (@nums, @nums2).flat | 11:50 | ||
pmurias | average: I was hoping there is something that just exposes a json protocol | ||
moritz | m: my $a = 42; say qqw{$a b c} | 11:52 | |
camelia | rakudo-moar 600c1a: OUTPUT«42 b c» | ||
eiro | average++ # words of widsom about using viml | ||
hello everyone | |||
moritz | m: my $a = 42; say «$a b c» | ||
camelia | rakudo-moar 600c1a: OUTPUT«42bc» | ||
tadzik | hello eiro | ||
moritz | m: my $a = 42; say «$a b c».perl | ||
camelia | rakudo-moar 600c1a: OUTPUT«("42", "b", "c")» | ||
moritz | m: my $a = 42; say qqw{$a b c}.perl | ||
camelia | rakudo-moar 600c1a: OUTPUT«("42", "b", "c")» | ||
[ptc] | see what I mean? | ||
moritz | [ptc]: it seems the latter is passe as one argument, and the former as three | 11:53 | |
so some kind of flattening issue | |||
11:53
average left
|
|||
moritz | god, how I hate those | 11:53 | |
[ptc] | moritz: how did you work that out? | ||
eiro | average, i really would like plsense in vim but the documentation isn't enought to help me to achieve that | ||
[ptc] | moritz: so say treats the guillemets differently to the other construct? | ||
moritz | m: sub f(*@a) { say @a.elems }; my $a = 42; f «$a b c»; f qqw{$a b c} | 11:55 | |
camelia | rakudo-moar 600c1a: OUTPUT«33» | ||
moritz | m: multi f(*@a) { say @a.elems }; multi f($one) { say 'one'}; my $a = 42; f «$a b c»; f qqw{$a b c} | ||
camelia | rakudo-moar 600c1a: OUTPUT«3one» | ||
moritz | [ptc]: golf'd | ||
11:56
daxim joined
|
|||
Peter_R | moritz, if I want to use types I can't even concatenate in place anyway :S | 11:57 | |
moritz | Peter_R: what kind of types? | ||
11:57
[Sno] left
|
|||
Peter_R | Are there plans to do type inference type stuff? e.g. an array formed from Numeric @arrays must be itself a Numeric | 11:58 | |
[ptc] | moritz: so the contents of « » is passed as a list of the elements, and the other passes the elements as a single element? | ||
moritz | [ptc]: ... when there is a single-element multi candidate available, yes | ||
m: sub f(*@a) { say @a.elems }; my $a = 42; f «$a b c»; f qqw{$a b c} | |||
camelia | rakudo-moar 600c1a: OUTPUT«33» | ||
moritz | here not | ||
11:59
[Sno] joined
|
|||
moritz | anyway, «...» and qqw{...} behaving differently is a bug | 11:59 | |
[ptc] | moritz: so is it possible to say that the two forms are equivalent? Or should I leave the « » out of the docs? | ||
moritz | m: multi f(*@a) { say @a.elems }; multi f($one) { say 'one'}; f «b c»; f qqw{b c} | ||
camelia | rakudo-moar 600c1a: OUTPUT«2one» | ||
moritz | [ptc]: yes, equivalent | ||
[ptc] | oh, so I'm not as dumb as I thought I was, cool :-) | 12:00 | |
moritz: I've documented it like this: my $a = 42; my @list = «$a b c»; say @list; so that the output is the same between the two forms | |||
moritz: we don't want to confuse the users :-) | 12:01 | ||
moritz | [ptc]: ok. Did you submit a bug report? | ||
12:03
Ven_ joined
|
|||
[ptc] | moritz: no. Not 100% sure how to describe the problem. | 12:03 | |
moritz: should I just say that "say" gives different output? | 12:04 | ||
Peter_R | m: sub f (Numeric @arr) { 1 }; my Numeric @arr1 = 1,2,3; my Numeric @arr2 = 4,5,6; f((@arr1, @arr2).flat) | ||
camelia | rakudo-moar 600c1a: OUTPUT«Type check failed in binding @arr; expected 'Positional[Numeric]' but got 'List' in sub f at /tmp/i_YUztU9pJ:1 in block <unit> at /tmp/i_YUztU9pJ:1» | ||
Peter_R | m: sub f (Numeric @arr) { say @arr.perl }; my Numeric @arr1 = 1,2,3; my Numeric @arr2 = 4,5,6; my Numeric @arr3 = @arr1, @arr2; f(@arr3) | ||
camelia | rakudo-moar 600c1a: OUTPUT«Array[Numeric].new(1, 2, 3, 4, 5, 6)» | ||
Peter_R | ^ moritz | ||
moritz | Peter_R: yes, I tell anybody who listens not to use typed arrays | 12:06 | |
they simply aren't as user-friendly as the level we are used to in Perl 6 | |||
Peter_R | But what if you want to use them, or more to the point, are there any plans to implement type inference to make them nicer to use? | 12:07 | |
dalek | kudo/nom: e2b01fe | lizmat++ | / (4 files): Revert "Add IO::Symlink stub" It appears we don't need a IO::Symlink class after all. |
12:08 | |
Peter_R | and / or use this to allow type checking on slurpy params | ||
dalek | kudo/newio: e2b01fe | lizmat++ | / (4 files): Revert "Add IO::Symlink stub" It appears we don't need a IO::Symlink class after all. |
12:09 | |
kudo/newio: a4eac1e | lizmat++ | / (4 files): Merge branch 'nom' into newio |
|||
12:11
vendethiel left
12:13
vendethiel joined
|
|||
dalek | kudo/newio: 9e6831b | lizmat++ | src/core/IO.pm: Eradicate IO::Symlink completely |
12:14 | |
12:16
Guest45 left,
tengignick left
|
|||
dalek | ecs/newio: 32d0ad7 | lizmat++ | S (2 files): Revert "Get rid of DESTROY fossils" This reverts commit 56c5710c527cf6a0e9df71f9ed06930e594ea453. |
12:25 | |
ecs/newio: 72242eb | moritz++ | S17-concurrency.pod: Fix example for $s.tap, mentioned in #77 |
|||
[ptc] | moritz: bug report submitted | ||
ecs/newio: b7196bd | moritz++ | S (2 files): Require "no strict;" to enable lax mode literals or bare "v6;" do not seem to be explicit enough for our current taste (and -e still defaults to lax mode) |
|||
ecs/newio: ca9b96b | FROGGS++ | S (3 files): minor corrections about -e and strictness Now it should be clear that one-liners (-e) are lax by default and that only 'use strict' and 'no strict' have an effect on one-liners and scripts. |
|||
ecs/newio: ccd57f9 | lizmat++ | S (6 files): Merge branch 'master' into newio |
|||
12:27
virtualsue left
|
|||
dalek | ecs/newio: b86f207 | lizmat++ | S16-io.pod: De-hufmannize IO.i/.v -> .inode/.device |
12:29 | |
12:32
cognominal joined
|
|||
cognominal | I wish that a collection not having a method, but its element having it as a predicate would iterate and grep. | 12:34 | |
> '.'.IO..dir.w | |||
Method 'w' not found for invocant of class 'List' | |||
> '.'.IO..dir.grep: *.w | |||
12:34
vendethiel left,
prevost left
12:37
virtualsue joined
12:39
rmgk_ joined,
rmgk is now known as Guest54264,
Guest54264 left,
rmgk_ is now known as rmgk
|
|||
cognominal | hum, typo : s/ '..' / . / | 12:39 | |
12:40
|Tux| left,
|Tux| joined
|
|||
cognominal | btw | 12:41 | |
dalek | ecs/newio: 5a57b95 | lizmat++ | S16-io.pod: Add blurb about symlink (lstat) methods |
||
cognominal | > '.'.IO.dir>>.w | ||
Failed to find '.#p6' while trying to do '.w' | |||
pmurias | eiro: the actuall meat of the plugin (that does the Perl 6 parsing and autocompletion) won't be in vimscript for sure | 12:42 | |
lizmat | and that concludes my contribution for today | ||
dalek | c: b8c13ad | paultcochrane++ | lib/Language/quoting.pod: Document qqw word quoting |
||
lizmat | afk until much later& | ||
cognominal | "File is a symlink to a nonexistent target" would be a more interesting message here for that crap left by emacs. | 12:43 | |
lizmat | cognominal: in the newio branch, that would be .e is false, and .l-e is true | ||
really afk now& | |||
cognominal | lizmat++ | 12:44 | |
12:46
grondilu left
12:48
Guest45 joined,
cognominal left
12:49
vendethiel joined
|
|||
eiro | pmurias, why not ? | 12:50 | |
12:53
sqirrel_ left
12:54
Ven joined
12:57
[Sno]_ joined,
[Sno] left,
[Sno]_ is now known as [Sno]
12:59
wicope left
13:00
skids left
13:11
cognominal joined
13:19
Guest45 left
13:23
chenryn left
13:24
spider-mario joined
13:28
yeahnoob joined,
kurahaupo1 left
13:37
gfldex joined
13:49
Mr0rris0 joined,
Mr0rris0 left
13:50
Mr0rris0 joined,
Mr0rris0 left,
Mr0rris0 joined
13:51
Mr0rris0 left,
Mr0rris0 joined,
Mr0rris0 left
13:52
Mr0rris0 joined,
tengignick joined,
Mr0rris0 left,
Ven_ left,
Mr0rris0 joined
13:53
Mr0rris0 left,
Mr0rris0 joined
13:54
Mr0rris0 left,
Mr0rris0 joined,
Mr0rris0 left
13:55
Mr0rris0 joined,
Mr0rris0 left,
Mr0rris0 joined
13:56
Mr0rris0 left,
Mr0rris0 joined,
Mr0rris0 left
13:57
Mr0rris0 joined
14:07
rindolf joined
|
|||
Ven | masak: ping | 14:08 | |
masak | Ven: pong | 14:09 | |
dalek | c: 72686fc | paultcochrane++ | lib/Language/quoting.pod: Document shell quoting constructs (qx and qqx) |
||
Ven | masak: I wanted to discuss about how you envision DSL building | 14:10 | |
(with marcos, that is) | |||
masak .oO( "a suffusion of yellow" ) | 14:11 | ||
Ven: ok, let's focus on what we know for sure. | 14:12 | ||
a slang is anything. it's parsed by a Perl 6 grammar, handled by actions, and in the end, we have something Qtree-ish. | |||
on a vanilla day the Qtree is just stuff from the Perl 6 language itself. on mint chocolate days, there are a few new Q types thrown in. on chili pistachio days, it's all foreign Q nodes. | 14:13 | ||
Ven | (maybe somebody violating-2terms macros will want new Q(-like) nodes?) | 14:15 | |
masak | two things make slangs more powerful than what we've just said so far: (a) the ability to contain slangs, and (b) the ability to (lexically) access their surroundings. | ||
Ven: I'm not at all clear how new Q nodes get registered. though in some sense that's a minor solvable detail. | 14:16 | ||
Ven: the simplest case I can think of is registering a new Q node for a user-defined infix operator. | |||
Ven | Isn't that just a QCall? | ||
masak | "Q node type", I mean, but that was probably clear. | ||
14:16
virtualsue left
|
|||
masak | Ven: it could be represented as a call, but that's not how I chose to do it in 007. | 14:17 | |
14:17
virtualsue joined
|
|||
masak | and not how I'd prefer to do it in Perl 6. | 14:17 | |
yes, they're operationally the same. | |||
b2gills | El_Che: thanks for the infoworld link | ||
masak | but syntactically and structurally, they're different. | ||
Ven | I... think I disagree. | 14:18 | |
the whole power comes from the fact that's -- it's just calls! | |||
I can say &infix:<+> | |||
I can call assuming on those. They're really just functions | 14:19 | ||
14:19
vendethiel left
|
|||
masak | you can't call assuming on `2 + 2`, though. | 14:19 | |
Ven | if you want a QCall::Infix, that seems alright, but imho it should be a "subclass" of QCall | ||
yes, just like you can't call assuming on add(2, 2) | |||
masak | I see what you mean, but I don't agree. | 14:20 | |
Ven | an operator application is a function call. why pretend it's not? | ||
masak | the viewpoint seems Lispish ("everything's just function calls"), but without a reward for mixing the two things together. | ||
I mean, I completely agree that they are unified. in the custom-ops branch, 007 is quickly heading to a point where they have the same code path, even. | 14:21 | ||
Ven | It's the inverse in lisp... "what's a macro and what's not?" | ||
masak | from the perspective of the user who does a grep for all the calls in the source code, and gets all the calls *and* all the operators, your suggestion would be the opposite of helpful. | 14:22 | |
I think that's the core of my disagreement. that the unification of that level ends up being confusing and surprising. | |||
Ven | I disagree.. being able to use "refactoring" tools on both seems nice | 14:23 | |
masak | that leads me to my second point. | 14:24 | |
calls are structurally very different from operators. | |||
calls have a name and arguments. | |||
operators come in different types: prefix, infix, postfix... | |||
all of which have different shapes of their data. | |||
Ven | shapes of their data? | ||
masak | an infix has an lhs and an rhs. | ||
Ven | I'm not saying both should be considered absolutely identical, but both are "a child of" a "Call" | ||
masak | a prefix just has a term. | 14:25 | |
Ven | just like functions have different arities | ||
(listop are n-ary as well) | |||
masak | I understand your argument perfectly. I just don't see the benefit. | ||
listop will probably just be another call, the distinction between `foo(1, 2)` and `foo 1, 2` being eradicated along the way to Qtree. | 14:26 | ||
Ven | yes, definitely, Qtree should be AST not CST | ||
masak | otoh, I don't tend to consider listops to be ops. :) | ||
they're just a funny call syntax. | 14:27 | ||
14:30
baest left
|
|||
Ven | masak: ... same for operators in general, right? :P | 14:31 | |
masak | in a sense, yes. | ||
14:31
|Tux| left,
Tux__ joined
|
|||
masak | it's a cute unification, and one that goes fairly deep. | 14:31 | |
but not as deep as the Q type hierarchy, I would say. | 14:32 | ||
Ven | okay, I'll have to make a parallel that goes back to the beginning of the discussion | ||
because I actually had something different to discuss in mind. | |||
masak | oki | ||
Ven | I actually wanted to talk about *defining DSL* | 14:33 | |
Ven goes back to masak's strange blog consistently posted | 14:34 | ||
14:34
vendethiel joined,
sivoais left,
tengignick left,
Tux__ left
14:35
Tux__ joined
|
|||
Ven | masak: alright, so, yes -- about "inside". this has always been bothering for some reasons | 14:35 | |
this isn't how I'm "used" to building macros. Usually, you just have the "outside" macro and then you "peel off" layers inside. | 14:36 | ||
14:37
tengignick joined
|
|||
Ven | macro foo($block) { for $block.ast -> { when QAst:Call & .arguments.grep({ .literal && .literal.name == '$_' }...) } } | 14:38 | |
14:38
tengignick left
|
|||
Ven | masak: what I mean is -- commit/rollback "shouldn't" be macros (with "should" being "currently, no one does it like that") | 14:38 | |
pmurias | masak: when manipulating AST I would like to be able to easily treat &infix:<+>(1,2) and 1+2 the same | 14:40 | |
Ven | (same here :-).) | 14:41 | |
masak | ok, noted. | ||
Ven | the "peeling inside" is important because outer macros are expanded first | ||
masak | not in Perl 6. | ||
parsing order is the crucial thing here. | |||
14:41
sivoais joined
14:42
Tux__ is now known as |Tux|,
tengignick joined
|
|||
pmurias | something like &infix:<+> is just a "boring" operator (it's a function call parsed differently) | 14:42 | |
something like &infix:<&&> is a "interesting" operator | 14:43 | ||
14:43
|Tux| left,
|Tux| joined
|
|||
masak wishes he had thought about pointing to infix:<&&> as not just a simple call | 14:44 | ||
Ven considers infix:<&&> as a "macro" | |||
pmurias | calling macros using the normal function call syntax like macro foo() {}; foo() feels a bit wierd | 14:45 | |
masak | of the "thunkish params" variety, yes. | ||
Ven | masak: in lisps, the outer macro is expanded macros because you might very well introduce operators or subs | ||
14:45
Rounin joined
|
|||
masak | pmurias: doesn't to me. | 14:45 | |
Ven: that sentence didn't parse for me. | 14:46 | ||
Ven | masak: "outer-macro { inner-macro {} }" – the outer one might want to introduce variables | ||
or subs. which means that, if the inner one is called first, it might be an issue | |||
masak | the inner one is parsed first. it's called as it's parsed. | 14:47 | |
pmurias | masak: have you thought about having a sigil or some other marker for macros? | ||
Ven | I know it is | ||
I think grammars can work with inner-first parsing because no other "parsing stuff" has been applied to $<inner>.made | |||
but for outer? the inner one will have been fully expanded | |||
masak | pmurias: no, and I have a large negative weight attached to the suggestion of "let's introduce a sigil!" | 14:48 | |
pmurias: far as I'm concerned, macros slotting in as subs is a feature. | |||
Ven: I guess there could be a mechanism for macros to request being called after some other macro (or not at all)... | 14:51 | ||
Ven | uuhhh, complicating the rules doesn't seem very nice | ||
masak | without complications, the innermost macro runs first. | ||
Ven | masak: that doesn't help with what I said -- you get fully-expanded code in the outermost | 14:53 | |
and you prevent outermost from introducing functions and variables, or modifying state | 14:54 | ||
14:54
adu joined
|
|||
masak 's alarm of "two people trying and failing to explain a thing to one another" goes off | 14:55 | ||
Ven | The common pattern is *not having inner macros*. the outer macro just inspect the code (macrowalk and such) and modifies it "in-place" | ||
Yes, definitely, that's why I stopped to gather my thoughts | |||
14:55
vendethiel left
|
|||
masak | the macro needs to do something in order to get called before the block (and the inner macro things) are parsed | 14:56 | |
[Coke] | TimToady++ # interview circuit, apparently. | ||
masak | I currently has that as 'is parsed', but in the fullness of time that mechanism may get replaced by something else | ||
colomon | cpp.indi.frih.net/blog/2014/12/the-...-for-rand/ # huh | 14:57 | |
Ven | colomon: no one should be using it :P | ||
masak | colomon: I read that earlier today. interesting. | ||
colomon: perhaps some lessons to be drawn there for how we do randomness in Perl 6. | |||
colomon | masak: right, that’s what I was wondering | ||
timotimo | i'm kind of confused every time somebody (in this case timtoady himself) claims the gradual typing system gives our optimizer better information to work off of | 14:58 | |
i was under the impression that we hardly optimize anything based on that | |||
colomon | masak: both in terms of what we want to provide, and how we’ve already implemented it | ||
masak | colomon: *nod* | ||
Ven | masak: I'd like to illustrate with 50 years of lisp examples, though, so I'll let it be for now :) | 14:59 | |
.oO( macrospoiling ) |
|||
masak | :) | ||
Ven: I promise to get to it soon. | |||
14:59
|Tux| is now known as TuX
15:00
TuX is now known as Tux
|
|||
Ven | that's what I tell my homotopy type theory book too :P. | 15:00 | |
masak | Ven: currently I'm finishing up the last bits of a blog post about 4x4 mazes. then I'll get back to macroblogging. | ||
15:00
Tux is now known as |Tux|
|
|||
Ven | that means big blogs? | 15:00 | |
masak | and I cannot lie. | ||
Ven | wow :P | ||
masak | Ven: if you have any nice insights about homotopy theory, consider me an interested listener. | ||
Ven | that's... not a reference I expected. Or that I expected to understand | 15:01 | |
masak | hehe | ||
Ven: have you heard Coulton's version? it's mellow. | |||
Ven | I havn't heard either version, really. I just read that at point, and googled to get the referene | ||
s/ene/ence/ | |||
masak | listen to the Coulton version. it's available for free on his site. | 15:02 | |
15:02
|Tux| left,
|Tux| joined
|
|||
tadzik | in style of Glee? :P | 15:03 | |
masak | I wouldn't know. | ||
tadzik | I accidentally social engineered my university btw. Quite scary (for an innocent fella) and quite hilarous for me | ||
masak | tell us more | ||
tadzik | tl;dr I called to resign my application and they kicked out someone else instead | ||
masak | o.O | 15:04 | |
Ven | Oo | ||
tadzik | I called saying "hey, you called me before and offered to transfer me the $specialization-I-don't-like, I'd rather not study at all" | ||
15:04
Rounin left
|
|||
tadzik | they said "okay, crossing you out" | 15:04 | |
now I am on the student list for the next semester, so I call them to ask if they reassigned me to $the-one-I-like instead | |||
they said "no, we called you and you said you are fine with studying on $the-one-you-don't-want" | 15:05 | ||
I say "no, I called you back and withdrew that" | |||
they say "no no, that was $innocent-fella" | |||
I check the list again, $innocent-fella is not on it | |||
he got the same call to get transfered and agreed | |||
masak | poor $innocent-fella | ||
tadzik | presumably between the two calls with me | 15:06 | |
yeah, I'm trying to reach him and warn him | |||
which leads to an obvious exploit where I call as @every-single-student and say that I want to cancel my application, thus making room for myself | |||
Ven | :') | 15:07 | |
masak imagines tadzik calling repeatedly, making up a sillier voice each time | |||
Ven hasn't heard tadzik's voice to start with :P | 15:08 | ||
tadzik | you'd think a technical university will do at least some validation | ||
but that reminds me of another story, of a guy who broke into the university systems | 15:09 | ||
they told us about him as a warning, saying "you know, once a guy broke in and the only reason he wasn't kicked out is because he had good grades!" | |||
> broke into the system | |||
> had good grades | |||
15:09
vendethiel joined
|
|||
tadzik | hmmmmmmmmmmmmmmm | 15:09 | |
timotimo | m) | ||
tadzik | I guess it's not so obvious to think about the most obvious reason why one'd seek unauthorized entry into university's systems | 15:10 | |
masak | moral of the story: do not break into the university system unless you're *sure* you can bump your grades. | 15:11 | |
Ven | ...which we'll generalize as "you can cheat so long you don't get caught" :P | 15:12 | |
masak | yes, but the cheating and the getting caught are not completely orthogonal, which is important too. | 15:13 | |
muraiki | hi all. I'm having problems building nativecall on perl6 2015.01-44-g166cd3c with MoarVM version 2015.01-6-g89ddb76. should I just file an issue in the zavolaj repo? | 15:14 | |
timotimo | are you on a 32bit or a 64bit system? | ||
muraiki | oh wait, it seems to be a variant of an existing issue | 15:15 | |
yeah, 32-bit | |||
sorry, I see a related issue now | |||
I have more failures though | |||
timotimo | we're not that good at 32bit systems ;( | ||
muraiki | doh | ||
timotimo | also, we don't have a JIT for x86, only for x86_64 | ||
Ven | masak: he didn't *really* got caught :P | ||
timotimo | wait, didn't we fix the 32bit nativecall problem a few months ago? | 15:16 | |
muraiki | there's comments from only 6 hours ago | ||
github.com/jnthn/zavolaj/issues/37 | |||
masak | Ven: my point. because of his grades (which may very well have been because of the hacking). | ||
FROGGS | timotimo: it was clean at some point, yes | 15:19 | |
timotimo: looks like we have a regression | |||
timotimo | muraiki: what kind of system is that? only today i read "of course i have a 64bit system, this isn't 2005 after all!" | ||
muraiki | FreeBSD, but unfortunately a bit old of a version, 7.3-RELEASE-p2 | 15:20 | |
timotimo | mhh OK | ||
muraiki | apparently I'll be getting a new dev vm sometime soon | ||
and it might even be linux! | |||
but for now this is what I have :( | |||
15:21
adu left,
sqirrel_ joined
15:22
aborazmeh left
15:23
chenryn joined
|
|||
timotimo | huh, "unknown type vmarray"? | 15:29 | |
is that a zavolaj checkout from git or a panda install NativeCall? | |||
muraiki | panda install | 15:30 | |
timotimo | that should definitely get the latest version | 15:32 | |
oh | |||
15:33
yeahnoob left,
chenryn left
|
|||
timotimo | my perl6 version is about 60 commits ahead of yours, and my moarvm version is 25 commits ahead | 15:33 | |
15:33
vendethiel left
15:34
chenryn joined
|
|||
muraiki | d'oh | 15:34 | |
I guess this is the point where I should figure out a commit to get rakudobrew working on freebsd | |||
timotimo | that could help. ISTR the "can use Buf as CArray" commit is fairly recent, which is probably what's behind the "blah blah vmarray blah" error | ||
muraiki | but I only ever use freebsd on this dev vm at work, so I'm not really a freebsd guy | ||
timotimo | oh, but a fix for that would be lovely :) | ||
muraiki | now to remember how I got things working, haha | 15:35 | |
timotimo | good luck! i'll be AFK for a bit now | 15:36 | |
muraiki | also, this freebsd is so out of date I'm not even sure if my fix is necessary | ||
argh | |||
pyrimidine | Does anyone know who is heading up Google Summer of Code this year (for The Perl Foundation)? | ||
timotimo | from what year is it? i don't know much about freebsd release dates | ||
tadzik | dukeleto, most likely | 15:37 | |
I mean, I'd expect that he's involved in some way :) | |||
muraiki | timotimo: 20...10 :( | ||
for perspective, we still use cvs here | |||
pyrimidine | tadzik: thanks, I'll check in with him | 15:38 | |
timotimo | that's fair, 2010 isn't that long a .... oh crap | ||
15:40
molaf joined
|
|||
btyler | pyrimidine: blogs.perl.org/users/shadowcat_mdk/...-2015.html gives some details too | 15:40 | |
muraiki | so yeah, I think I'll wait until I get a new freebsd vm before trying to commit any patches to rakudobrew, lest I support a 5 year old system only to break things on actually current systems | ||
btyler | there's a distinct lack of p6 on the ideas page: wiki2.enlightenedperl.org/index.php...Ideas_Page :) | 15:42 | |
tadzik | oh, we have them on github | ||
jnthn | It'd probably be good to get them on that page... | 15:43 | |
btyler | ok. well, some coordination with mdk++ might be in order | ||
15:45
vendethiel joined
|
|||
pyrimidine | I agree, having them spread out isn't a good idea. | 15:45 | |
We (Open Bioinformatics Foundation) had the same problem with the various projects posting ideas everywhere. Had to do some herding to get them to work together | 15:46 | ||
btyler++ tadzik++ # thanks! | 15:47 | ||
dalek | c: 90ed55d | paultcochrane++ | lib/Language/quoting.pod: Mention `shell` and `run` in the `qqx` section |
15:52 | |
c: d0d4de5 | paultcochrane++ | lib/Language/quoting.pod: Point to regexes docs from quoting docs |
|||
|Tux| | doc.perl6.org/language.html <= misses a section on IO. "How do I open a file (for reading/writing)" | 15:54 | |
doc.perl6.org/type/IO::Handle has close but no open | 15:55 | ||
15:56
adu joined
15:58
anand_ joined,
anand_ left,
skids joined
|
|||
|Tux| | doc.perl6.org/routine/open does not describe any valid options | 15:59 | |
FROGGS | |Tux|: the problem seems to be that the /routine/open shows method open instead of the sub open | 16:00 | |
|Tux| | doc.perl6.org/sub/open does not exist | 16:01 | |
[ptc] | |Tux|: feel free to open issues in github.com/perl6/doc | ||
|Tux| | github.com/perl6/specs/blob/master...ary/IO.pod helps (I hope) | 16:02 | |
[ptc] | |Tux|: btw: did you spot my PRs for Test::Smoke? (just wondering) | 16:03 | |
|Tux| | I saw them but I have been busy with other issues | ||
je needed two days to re-release all my modules after removing recommended entry for perl in META as the default changed to follow recommendation :/ | 16:04 | ||
[ptc] | no worries. Sometimes GitHub doesn't send messages through | ||
|Tux| | and I took that to also move all my git stuff over from repo.or.cz to github | ||
16:07
vendethiel left
16:08
tengignick left
16:15
chenryn left,
chenryn joined
|
|||
muraiki | I successfully built the latest moarvm, nqp, and perl6 from git, but when I try to build panda I get "Missing or wrong version of dependency 'src/gen/m-CORE.setting'" | 16:19 | |
is this something going wrong in panda, or did I do something wrong in the build process for one of the other three things? | |||
I did run the tests for rakudo before doing an install | |||
arnsholt | Sounds like you've got old precompiled files lying around | 16:21 | |
(Precompiled files of Panda, that is) | |||
16:23
vendethiel joined
16:25
mr-foobar joined
|
|||
muraiki | where would those files be kept? it seems make clean doesn't work... | 16:25 | |
oh, I don't even have a makefile of any sort generated yet | |||
dalek | c: 1fbf07c | paultcochrane++ | lib/Language/io.pod: Add stub file to document IO TODO items adapted from comments by |Tux|++ |
16:26 | |
|Tux| | muraiki, do you (now) have both moar-HEAD and moar-nom? | 16:27 | |
muraiki | what's moar-nom? sorry, I'm a noob :( | 16:28 | |
|Tux| | do you use rakudobrew? | ||
16:28
kst` joined
|
|||
muraiki | I never got it to work successfully on this freebsd version, so I don't know if it left stuff behind... but I did have successful older versions of moar, nqp, rakudo, and panda installed | 16:28 | |
I was just trying to update everything | 16:29 | ||
I made sure to use --prefix to install to the same dir | |||
|Tux| | if you did so using rakudobrew, you probably should start afresh | ||
16:29
raydiak left,
anocelot left,
raydiak joined,
anocelot joined
16:30
kst left
|
|||
|Tux| | clear out your complete rakudobreaw, make a fresh git clone; cd rakudobrew; rakudobrew build moar (with your prefix); rakudobrew build-panda | 16:30 | |
muraiki | oh, I can't get rakudobrew to work at all on freebsd. | 16:31 | |
I had built everything manually | |||
well, I just deleted ~/bin/moar so let's try rebuilding everything | |||
|Tux| | rakodobrew improved over the last few month. care to try again? | ||
muraiki | ok :) | ||
16:32
rurban joined
|
|||
timotimo | panda has a "rebootstrap.pl" that you may need to run in order to get rid of the "missing or wrong version of dependency blah" thing | 16:33 | |
16:34
diana_olhovik_ left
|
|||
muraiki | ok, rakudobrew died where it died last time: probing whether your compiler thinks that it is gcc clang: not found | 16:34 | |
I need to tell it to use gcc and gmake | |||
16:35
zakharyas left
|
|||
muraiki | for moarvm I normally perl ./Configure.pl --make gmake --os freebsd --compiler gcc | 16:37 | |
b2gills | It would be better if it realized it was on BSD and set the defaults appropriately | ||
BinGOs | for 10.0 and above there is no gcc on FreeBSD in base. | 16:38 | |
muraiki | this is ancient freebsd | 16:39 | |
7.3 | |||
which is why I had given up trying to get rakudobrwe to work, heh | |||
so yeah, I think I'll just install manually. if I have time I can try to get a new freebsd in a vm at home and see how rakudobrew works... it's probably fine on a modern system | 16:41 | ||
there's no point in making it work on 7.3 though | |||
16:41
chenryn left
16:42
wicope joined
|
|||
Ven | m: my int $i = 0; $i += 1 if (([+] rand xx 2 X* 2) < 1) for ^10; say $i | 16:42 | |
camelia | rakudo-moar e2b01f: OUTPUT«3» | ||
BinGOs | that is so eol. | ||
Ven | okay, so this piece of code is not at fault | ||
Unhandled exception: getlex: outer index out of range Segmentation fault: 11 | 16:43 | ||
Okay, that's pretty bad. | |||
16:43
echowuhao joined
|
|||
Ven | aaaand... it's a flapping segfault | 16:43 | |
alpha- | flappy segfault | 16:44 | |
Ven | ugh. pretty bad. | ||
hahainternet | it's about as bad as you get an inconsistent segfault, but at least you can narrow down the causes fairly quickly | 16:45 | |
the fact it's inconsistent is actually a debugging technique | |||
Ven | well, here I'm not sure what's at fault but yeah | ||
but reducing the test case is harder with segfaults. | |||
y'know, I'm going to get myself a better rakudo to start with, I guess | |||
2014-12.45 | 16:46 | ||
16:47
alini left
16:50
andreoss joined
|
|||
timotimo | haha | 16:50 | |
you silly :) | |||
Ven | okay, that segfaults more often now, it seems :P | 16:55 | |
m: await do for ^4 { start { my int $x = 0; $x += 1 for ^40_000; } } | 16:57 | ||
camelia | ( no output ) | ||
Ven | m: await do for ^4 { start { my int $x = 0; $x += 1 for ^250000000; } } | ||
camelia | rakudo-moar e2b01f: OUTPUT«(signal SEGV)» | ||
Ven | here it is. | ||
16:59
Ven left,
larion left,
echowuhao left
|
|||
timotimo | can't get that to crash on my local machine | 17:01 | |
also, it doesn't seem like it's doing much? | 17:02 | ||
ah, local dirtyness | |||
retupmoca | m: await do for ^5 { start { buf8.new } } # RT#123702 related? | 17:04 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123702 | ||
camelia | ( no output ) | ||
retupmoca | m: await do for ^5 { start { buf8.new } } # RT#123702 related? | ||
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123702 | ||
camelia | rakudo-moar e2b01f: OUTPUT«Unhandled exception: No appropriate parametric role variant available for 'Buf' at <unknown>:1 (/home/camelia/rakudo-inst-2/languages/perl6/runtime/CORE.setting.moarvm:throw:4294967295) from src/gen/m-CORE.setting:21703 (/home/camelia/rakudo-inst…» | ||
retupmoca | native int, so probably not | ||
dalek | c: df4a66f | moritz++ | lib/Type/DateTime.pod: Document DateTime constructors |
||
c: c5017e6 | moritz++ | lib/Type/DateTime.pod: More DateTime docs |
|||
retupmoca | could be a different race in the metamodel, though | 17:06 | |
maybe | |||
17:06
diana_olhovik_ joined
|
|||
timotimo | it'd be kinda cool if camelia could profile code and spit out the link to the html result file | 17:07 | |
17:08
lucas__ joined
|
|||
timotimo | yeah, now it actually takes time to run | 17:09 | |
m: await do for ^4 { start { my int $x = 0; $x += 1 for ^250000000; $x } } | |||
camelia | rakudo-moar e2b01f: OUTPUT«(signal XCPU)» | ||
timotimo | "cpu time limit exceeded" | 17:11 | |
interesting, i get Unhandled exception: This type cannot unbox to a native integer | 17:12 | ||
17:15
Rounin joined
17:16
echowuhao joined
17:18
telex left
17:20
telex joined
|
|||
lucas__ | Hello channel. If I understand correctly, the unit type is the Any typeobject, and not Nil. Any special reason for that? Wouldn't you like if it was the other way around? It would make it more similar to other languages... | 17:21 | |
skids | Nil is a nonpresence of something that should be there. There are actually undefs for each type. | 17:22 | |
m: Int.defined.say | |||
camelia | rakudo-moar e2b01f: OUTPUT«False» | ||
skids | So you know whether you have an undef, or a type error. | 17:23 | |
pmurias | jnthn: is it expected that there are a lot of closures with no context when compiling code with 'multi method bar() {...}'? | 17:24 | |
skids | ("Nil" does in fact exist, if you call being a nonexistance existing.) | ||
hoelzro | o/ #perl6 | ||
lucas__ | skids: thanks for answering. | 17:26 | |
The thing is Nil is a special case... maybe it should have be named Void? :) | 17:27 | ||
geekosaur | more defined than bottom, less defined than undef :p | ||
pmurias | hoelzro: hi | ||
lucas__ | Let's say you have some typed arrays and hashes. Let's for some reason you want some positions to be undefined... You have to use the right kind of undefined type for each type, right? | 17:29 | |
jnthn | pmurias: Those probably correspond to teh cloned dispatcher. | ||
lucas__ | Isn't this a little more type-safe than Java? Since now even your "nulls" must be typed. | ||
17:30
Kristien joined
|
|||
jnthn | pmurias: If you inherit a proto, it needs cloning in the method table of the sub-class so the candidate lists are kept apart. | 17:30 | |
skids | lucas__: if you want to designate that "yes I knew what I was doing when I filled in this array" then yes. | ||
pmurias | jnthn: if I just make up an empty context stuff should work? | ||
skids | lucas__: If you want to designate that "wow I was really supposed to put something here and I have no way of knowing what to, then use Nil" | ||
pmurias | jnthn: what I mean is it a safe thing? | 17:31 | |
skids | m: my Int $a; $a = Nil; $a.say; | ||
camelia | rakudo-moar e2b01f: OUTPUT«(Int)» | ||
jnthn | pmurias: Probably; they'll get capturelex'd later on, I guess. | 17:32 | |
pmurias | capturelex is a rakudo thing? | 17:33 | |
17:34
Kristien left
17:35
fhelmberger left
|
|||
timotimo | assigning nil into places resets them to the default value | 17:35 | |
right? | |||
skids | Yes but with the caveat: | ||
m: my Int @a; @a = 1,Nil,2; @a.say; | |||
camelia | rakudo-moar e2b01f: OUTPUT«1 2» | ||
lucas__ | timotimo: I think so. And I think this breaks the "different things should be different" principle. | ||
skids | Nil in a list eats commas. | ||
moritz | iirc that's outdated semantics | 17:36 | |
skids | Oh good, that seemed a bit hinky. | ||
Though I guess having something that does eat list positions might be handy on occasion. | 17:38 | ||
moritz | () | ||
skids | right | ||
jnthn | pmurias: Well, used by NQP also, though in NQP on Moar we don't ever emit such things directly, but rather leave it for the compiler. Thing is, I guess you're punting some amount of your closure semantics to JavaScript. | 17:39 | |
skids | RT#118717 already covers that deprecation I think, then. | 17:40 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=118717 | ||
pmurias | jnthn: I'm trying to move as much closure semantics to JavaScript as I can get away with | 17:41 | |
17:43
cognominal left
|
|||
pmurias | hoelzro: I'm working on getting test 55 multi methods work on now | 17:46 | |
afk& | |||
17:46
pmurias left
|
|||
hoelzro | pmqs: awesome! I started looking at curlexpad yesterday, but I'm wary about breaking too many things | 17:47 | |
er, sorry pmqs | |||
abraxxa | tadzik: are you open for a pull-request to change the git urls in rakudobrew to https? at work I'm not allowed to do ssh to the outside world | 17:48 | |
17:48
vendethiel left
17:50
larion joined
17:53
dakkar left
|
|||
[Coke] | other configure items in the toolchain respect --git-protocol | 18:00 | |
18:00
vendethiel joined
|
|||
[Coke] | (coulton) (in the style of glee) Coulton did his track first, and it (the arrangement) was shamelessly ripped off by the producers on glee, who seemed to feel coulton should be thankful for the exposure, and no credit. | 18:01 | |
Glee-- | |||
hoelzro | I wonder if there's a proxy that one can run that would convert git:// to http:// | ||
probably | |||
abraxxa | git:// is ssh | 18:02 | |
jercos | hoelzro: assuming you mean to the smart git protocol, they're basically already ready | ||
abraxxa: nope! | |||
git:// is an unencrypted, typically unauthenticated protocol usually only used for anonymous cloning | |||
moritz | abraxxa: git:// is *not* ssh | ||
abraxxa | my bad, i'm using ssh:// at work | 18:03 | |
jercos | it's entirely made up of the awkward 4-byte-ASCII-numeric length prefixed chunks | ||
jercos is not fond of git wire protocols :| | |||
hoelzro: anyways such a proxy is entirely technically feasible, and could probably be made very fast and efficient | 18:04 | ||
as in, streaming from one to the other, without needing to fully buffer | |||
18:06
gfldex left
18:07
wicope left,
mohij joined
|
|||
hoelzro | yeah, even a dumb proxy would be good enough | 18:07 | |
I'm betting something like that exists | |||
abraxxa | GAH! where does it lean the panda submodules from? they use git:// as well | 18:09 | |
moritz | abraxxa: fwiw I have a git-subrepo based clone of panda somewhere (that only needs a single pull, no recursing) | 18:10 | |
18:10
Kristien joined
|
|||
Kristien | hi | 18:10 | |
moritz | \o Kristien | 18:11 | |
Kristien | I got my book! | ||
moritz | \o/ | ||
18:11
rurban left
|
|||
abraxxa | found it in .gitmodules | 18:13 | |
18:13
_mg_ joined
|
|||
moritz | abraxxa: you might also need to edit .git/config | 18:15 | |
abraxxa | moritz: can i override the git with the https protocol that way? | ||
Kristien | I'd be scared if I found It in .gitmodules. | ||
moritz | abraxxa: submodules keep redundant meta data | ||
Kristien | git submodules are FUBAR | 18:17 | |
hoelzro | could you use url.insteadOf to fix git:// urls? | ||
18:18
larion left,
Mouq joined
|
|||
abraxxa | tadzik: the link help.github.com/firewalls-and-proxies/ is broken in the panda README.md | 18:18 | |
i'm fed up by those stupid things, bye! | 18:21 | ||
18:21
abraxxa left
18:23
vendethiel left
18:24
mohij left,
kst` is now known as skt
18:25
skt is now known as kst,
_mg_ left
18:26
vendethiel joined
18:27
virtualsue left
|
|||
pmichaud | TimToady++ # excellent infoworld article | 18:27 | |
TimToady | oh, it came out? | 18:28 | |
pmichaud | www.infoworld.com/article/2882300/p...-year.html | ||
[Coke]++ for posting the link to FB :) | |||
sjn | yeah, that's a good article | 18:30 | |
18:31
sqirrel_ left
|
|||
moritz | it's also the top post on reddit's r/perl | 18:35 | |
masak | here: www.reddit.com/r/perl/comments/2vkd...n_perl_60/ | 18:36 | |
18:39
mohij joined
18:40
grettir joined,
sqirrel_ joined
|
|||
b2gills | m: say ('b'..'ba').elems; say ('b'..'aa').elems; say ('b','c'...'aa').elems; # say ('b'...'aa').elems | 18:47 | |
camelia | rakudo-moar e2b01f: OUTPUT«52026» | ||
18:50
vendethiel left
|
|||
nine_ | The comments on reddit read surprisingly non-hostile. | 18:51 | |
skids | m: say 'b' cmp 'aa'; say 'a' cmp 'aa'; | 18:53 | |
camelia | rakudo-moar e2b01f: OUTPUT«MoreLess» | ||
Kristien | When I was still in college we had a presentation by some guys from a webdev house and somebody from the audience asked them why they used Ruby instead of Perl. They said "because Perl isn't popular anymore." :( | ||
Humbedooh | that's the best reason...buzz factor! | 18:54 | |
TimToady | whatever is coming after the hipsters, we'll get them to think we're popular :) | ||
maybe we should say that Perl 6 is a Sixth Generation Language :) | 18:55 | ||
Humbedooh | I think the new thing is called....cutesters :\ | ||
18:55
aborazmeh joined,
vendethiel joined
|
|||
TimToady | if Perl 5, Python, and Ruby are fifth generation... | 18:55 | |
well, maybe cutesters will like butterflies | |||
18:56
diana_olhovik_ left
|
|||
Humbedooh interjects Lua 5.x for selfish reasons | 18:56 | ||
Kristien | We need some Dane to invent a coupling-enforcing Perl library for making websites. | ||
That'll make Perl popular again! | |||
Humbedooh | great, more Danes... ;) | ||
El_Che | Kristien: you're too old | ||
Kristien: you meant apps | |||
:) | |||
Kristien | They now do stuff in Haskell. | 18:57 | |
18:57
diana_olhovik joined,
larion joined
18:58
_mg_ joined
|
|||
Kristien | I heard from an intern that the project failed. | 18:58 | |
masak | Humbedooh: you're connected to Lua somehow? | ||
Humbedooh | well....I'm the maintainer of httpd's mod_lua for no other reason that being the only one who knows how to use the language :\ | ||
masak | Humbedooh++ | 18:59 | |
Kristien | I once used Lua as a target language. I was surprised that having a label after a return statement was a syntax error. | ||
timotimo | TimToady: what kind of things do cutesters test? | ||
Humbedooh: ^ | |||
Humbedooh | which also means I can predict perl6 support for mod_perl in....2027 | ||
timotimo | compilation units? | ||
er ... mod_perl? are you serious? | 19:00 | ||
Humbedooh | it's supposedly still a thing | ||
Kristien | why is Apache still a thing | ||
19:00
aborazmeh left
|
|||
Humbedooh | they are just lagging behind by a few years :) | 19:00 | |
timotimo | have there been talks at every conference entitled "mod_perl needs to die" | ||
Humbedooh | Kristien: because Java....and big data | ||
though not the server, the foundation :) | |||
Kristien | I mean apache httpd | ||
Humbedooh | one word :\ .htaccess | ||
nine_ | I still use apache httpd, because, why not? | 19:01 | |
Kristien | Make a .htaccess module for Nginx! | ||
Humbedooh waits for someone to mention that httpd is slow and 10kc and what not... :) | 19:02 | ||
19:02
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
Kristien maintains an application that suffers from 10kc. :( | 19:03 | ||
19:03
espadrine left
|
|||
nine_ | OTOH I am actually trying to figure out how to replace apache. Because using it as reverse proxy, I just cannot find out why I get those spurious 502 and 503s and it really doesn't help that there are no less than 4 (!) different ways to disable keepalive... | 19:04 | |
Humbedooh | nine_: replace it with traffic server maybe? :) | ||
nine_ | Humbedooh: traffic server? | ||
Humbedooh | that's our http/[12] forward/reverse/transparent caching proxy | 19:05 | |
Kristien | I use nginx for proxying to php-fpm and for serving static files and for caching. | ||
tried varnish but it's shit and doesn't support TLS. | |||
nine_ | I guess if I really replace it (at least partially) it will be with nginx because that's what most people seem to be using in front of their starman backends and that can really help with finding solutions. | 19:06 | |
19:07
lucas__ left
|
|||
mst | Kristien: it isn't shit, and it doesn't support TLS for good reason | 19:08 | |
Kristien: titus+varnish is an interesting possibility | |||
El_Che | the central login at the university where I work is based on shibboleth. The default Service Provider (consuming the central login) for website is an apache add-on. | ||
Kristien | > "First, I have yet to see a SSL library where the source code is not a nightmare." | ||
Well, first of all, you don't need the source code of the SSL library in order to use it. Secondly, I know at least one which is pretty code. | 19:09 | ||
And there are probably more. | |||
"We would terminate SSL sessions, and we would burn CPU cycles doing that." you gotta do what you gotta do, no matter whether you cache it with Varnish or another tool. | 19:10 | ||
masak finds www.reddit.com/r/perl/comments/2vkd...n_perl_60/ quite uplifting | 19:11 | ||
mst | but doing it in a separate process gives you a much better situation wrt. thread models | ||
Kristien | It basically says because caching with SSL is a little slower than without SSL, it makes caching _completely_ useless, which is obviously false. | ||
mst | hence titus' architecture | ||
El_Che | masak: the trolls are probably in an other timezone :) | ||
Kristien | brb shower | 19:12 | |
19:12
Kristien left
|
|||
TimToady | El_Che: it's been up for 23 hours | 19:12 | |
so obviously the trolls all live in that 1-hour sliver | 19:13 | ||
nine_ | That must be a dark place indeed | ||
El_Che | The Mariana Trench, the deepest place in the ocean :) | 19:14 | |
skids | El_Che read my mind. | ||
nine_ | And I thought trolls were something scandinavian :) | ||
skids | Maybe there's just something way more attractive to trolls out there today. | 19:15 | |
Humbedooh | with fuzzy pink hair? | ||
TimToady | or maybe the trolls have switched from step 3 back to step 1 | ||
bcode | personally I think the trolls are all gathered at some troll conference on troll strategies | ||
TimToady | obviously it would at Con-troll | 19:16 | |
Humbedooh read that as "some way more attractive trolls" and nearly had a revisit from his consumed coffee | |||
El_Che | on the other hand, maybe now they hears p6 is coming, the are meeting like crazy to organize the trollfest at Christmas | ||
sjn puts on his reddit flameretardant suit, and reads masak's link | |||
El_Che | Retaking TimToady's analogy of his fosdem talk: the dark army is gathering | ||
TimToady | Rohan will come, won't they? | 19:17 | |
19:17
pecastro left
|
|||
Humbedooh cues "When last I looked, ...." | 19:18 | ||
TimToady | and the ghosts of armies past... | ||
19:18
Gothmog_ joined
19:19
gfldex joined
|
|||
TimToady | I guess that's the p5ers, and rohan is the cutesters, since obviously we have to make this an allegory, oh wait... | 19:19 | |
19:19
vendethiel left
|
|||
Humbedooh | hah | 19:19 | |
19:20
aborazmeh left
|
|||
El_Che | :) | 19:20 | |
19:21
vendethiel joined
19:24
pecastro joined
19:26
Mouq left
|
|||
FROGGS | TimToady++ # nice buzz-word rich and marketing satisfying interview :o) | 19:26 | |
19:26
[Sno] left
19:29
sqirrel_ left
|
|||
TimToady | well, I knew infoworld was more boss-oriented, so I tilted it that way | 19:30 | |
masak | sjn: no flames. that was the nice part. | 19:31 | |
TimToady | the pythonistas were the closest to that, but they're still somewhere between step 1 and step 2 | 19:32 | |
and flaming is step 3 | 19:33 | ||
the we-already-won mindset is a good way to forget to keep up, which is part of why Jon threw the mugs in the first place | 19:35 | ||
nine_ | Even use lib is block scoped? | 19:36 | |
TimToady | the pythonistas do have a point, of course, and python has done a good job of appealing to scientists and kids | ||
we need to do that too | |||
scientists will probably like some of the more APLish facets of P6 | 19:38 | ||
19:38
_dolmen_ joined
|
|||
TimToady | and Perl will appeal more to the mathematically oriented crowd that wants things to work more like all the fancy math operators, and less like a set of names with a bit of sytnax | 19:38 | |
*nt | 19:39 | ||
muraiki | does p6 have something like pandas' dataframes? | ||
TimToady | that is a way in which Lisp and Python are similar, and to some extent Haskell | ||
relying on names everywhere means you don't get visual distinctions that math formulas provide | |||
Mathematica falls into the same trap | 19:40 | ||
muraiki: link? | 19:41 | ||
muraiki | pandas.pydata.org/pandas-docs/dev/g...Frame.html | ||
you can kind of think of it as a spreadsheet as a data structure, on steroids | |||
19:41
lichtkind joined
|
|||
muraiki | it's super nice to use | 19:41 | |
I guess R has something similar, too, but from what I've heard pandas' is quite nice in comparison | 19:42 | ||
anyways, from the tiny bit of "data science" I learned sampling some moocs, it seems like a must have feature for scientific computing anymore | |||
but it is way beyond my ability to implement, hehe :) | 19:43 | ||
TimToady | well, we can just import them with Import::Python :) | ||
muraiki | woot | ||
TimToady | but if it's important to support them natively, should be pretty doable, if not easy | 19:44 | |
er, Inline::Python, I mean | |||
muraiki | yeah, I think what's most difficult about them is optimizing their performance. I think they're all in C under the hood for python | ||
TimToady | but yeah, we intend to make Python libraries easily available in P6 clothing | ||
muraiki | that's neat, I wasn't aware of Inline::Python | 19:45 | |
19:45
_dolmen_ left
|
|||
TimToady | and if they're in a C shared lib, we can just talk to them directly using Nativecall | 19:45 | |
muraiki | yeah, that's something else I've been meaning to try out :D | 19:46 | |
TimToady | 'course, we might need a PyObject representation to do that | ||
depending on how they structure the data, and the dependencies on python internals | |||
nine_ | It cannot be much worse than PyQt4. | 19:48 | |
I actually tried using PyQt4 with Perl 5's Inline::Python about 5 years ago but gave up after two weeks. Was just stubbornness that I got through this time. | 19:49 | ||
TimToady | anyway, I think there will be no shortage of people wanting to do those kinds of crossovers | ||
19:50
zakharyas joined
|
|||
TimToady | well, pretty much everyone here is stubborn by definition :) | 19:50 | |
TimToady goes back to stubbornly reading the backlog | 19:51 | ||
19:52
cmiller1 joined
19:54
vendethiel left
|
|||
TimToady | we might want to define our own anyway, if we decide the api is too pythonic | 19:56 | |
stubborn backlogging is helped by popping up the backlogging window instead of the DataFrames window... | 19:57 | ||
19:57
vendethiel joined
|
|||
El_Che | Is Nativecall akin to JNI? | 19:57 | |
nine_ | El_Che: think so | 19:58 | |
TimToady | 2nd cousins, I believe :) | ||
nine_ | I have a class name as a Str. How do I get to the corresponding class object? | ||
TimToady | m: say ::("Int").WHAT | ||
camelia | rakudo-moar e2b01f: OUTPUT«(Int)» | ||
nine_ | Of course! This language being so consistent it just had to be the same as with functions :) | 19:59 | |
TimToady: thanks :) | |||
19:59
cmiller1 left
|
|||
TimToady | we only have about two different syntaxes for symbolic lookups, ::($sym) for lexical/global symbols, and ."$sym"() for method names | 20:01 | |
well, unless you want to dig into metamethods | |||
but those aren't syntaxes | 20:02 | ||
backlogging, STUBBORNLY! | |||
oh, it's lunchtime... | 20:03 | ||
jnthn: impressions on the idea at irclog.perlgeek.de/perl6/2015-02-12#i_10101900 | 20:04 | ||
dalek | line-Perl5: 89ffa5b | (Stefan Seifert)++ | / (2 files): v6::invoke for invoking P6 class methods (like ctors) from P5. my $foo = v6::invoke('Foo', 'new'); |
20:06 | |
TimToady | jnthn: on caching .trans, I think we have to break the method API (but not tr///) into two bits, one to compile, and one to execute | 20:07 | |
the only way to cache in a single method call would be to generate immutable argument lists (of pairs!) with a known identity | 20:08 | ||
masak | if we're breaking .trans's API, then I have a few suggestions. | ||
maybe I should put together a gist? | |||
TimToady | but old-fashioned tr/// syntax is known to be immutable, so we can do the two-step underneat that | 20:09 | |
20:09
virtualsue joined
|
|||
dalek | ast: c66e341 | moritz++ | S02-literals/pairs.t: pairs.t: fix some tests, remove wrong tests; unfudge for rakudo |
20:09 | |
TimToady | masak: sure, ideas are cheap, except when they're not | ||
masak | *nod* | ||
20:09
molaf left
|
|||
TimToady | underneat is a cool word | 20:10 | |
jnthn | TimToady: On the idea, it looks...odd to me, tbh. I'd have trouble guessing what that syntax did. | ||
TimToady | maybe that's what P6 is all about | ||
jnthn | TimToady: On splitting the .trans API up, then yes, wtf | ||
uhh | |||
tr/tf/fm/ :P | |||
moritz | muscle memory :-) | 20:11 | |
jnthn | .oO( Clearly I'm *way* too used to typing one of those two TLAs... ) |
||
dalek | c: 3f83ccb | moritz++ | lib/Type/DateTime.pod: Unbreak markup |
||
20:11
tengignick joined
|
|||
jnthn | TimToady: We could even for some (all) tr/// forms do the first step at compile time, perhaps. | 20:11 | |
TimToady | I just said that, I thought | 20:12 | |
masak | though, 'yes, wtf' has a hearty sense of abandon to it as well... | ||
jnthn | TimToady: I'm still catching up on backlog :P | ||
TimToady is eating lunch now instead of backlogging, oh wait... | 20:13 | ||
dalek | c: 7dafe3e | moritz++ | lib/Type/DateTime.pod: DateTime.Date |
||
jnthn | This is front-logging | ||
TimToady: I agree from a compiler impl point of view that the 42.@foo() thing would be a simple enough transform. | |||
TimToady | surely it's treeing on the front, and time is what cuts them down to make logs | ||
jnthn | TimToady: From a lang point of view I'm a bit confused :) | ||
TimToady | a set of handlers is just as confusing, if not more so | ||
vendethiel | timotimo: yeah, I also got "this class doesn't implement access interface" or something along those lines | 20:14 | |
TimToady | and we could really use the reverse subscript for l2r-ness | ||
vendethiel might be confusing it with elixir's error messages, but still knows approx. what the error was | |||
TimToady | and I've always thought of arrays and hashes as just very restricted mapping functions | ||
moritz | a very functional view | 20:15 | |
TimToady | that's part of why the return type has always been specified on the individual elements | ||
so it's a pretty tagmemically good thing to jam an array in there and use it like a method/function | 20:16 | ||
it feels like something people will get used to very quickly | |||
jnthn | TimToady: I'm in no way attached to the current meaning. Just not immediately attached to the new one either ;) | ||
dalek | line-Perl6: 6e5fda2 | (Stefan Seifert)++ | / (7 files): New OO API for easy use'ing and creating P6 objects. my $p6 = Inline::Perl6->new; $p6->use('Foo'); my $foo = $p6->invoke('Foo', 'new'); my $bar = $foo->bar('baz'); |
||
vendethiel | nine_++ | ||
nine_: now I feel compelled to ask. Can I use Inline::Perl6 from Inline::Perl6? :D | |||
nine_ | vendethiel: that's definitely on my list :) | 20:17 | |
vendethiel | ahaha :D | ||
20:17
coffee` left
|
|||
vendethiel | nine_: I'll make sure your place in hell is... hella comfy :P | 20:17 | |
TimToady | I was thinking of this last night because I was revising rosettacode.org/wiki/Textonyms#Perl_6, and wanting to rewrite a line: | 20:18 | |
my @dials = @words.classify: { @c2d[.ords].join } | |||
nine_ | vendethiel: since Inline::Perl6 is using Inline::Perl5 internally it should actually be quite simple to stack them endlessly :) | ||
vendethiel | that's pretty nice to hear - for real | ||
TimToady | my @dials = @words.classify: { .ords.@c2d.join } | ||
or so | |||
moritz | we could start by having .map and .for candidates that accepts arrays and hashes | ||
instead of going all the way to a new syntax | 20:19 | ||
TimToady | this feels a bit more rule-2ish to me | ||
especially since we have variants like .@c2d(:kv) | 20:20 | ||
that would be difficult to manage with the .map approach | 20:21 | ||
and frankly, it also is more justification for the existence of sigils in P6 :) | |||
moritz isn't sold yet | 20:22 | ||
TimToady | tough crowd :) | ||
moritz | stubborn crowd :-) | ||
TimToady | :-) <- conservative smiley :) <- progressive smiley | 20:23 | |
20:23
echowuhao left
|
|||
skids resisting the urge to drop hyperop laden code into a heavily emoticoned comment area just to see what happens. | 20:25 | ||
20:25
darutoko left
|
|||
nine_ | vendethiel: this stacking might even be necessary if people really start using Inline::Perl5 to bootstrap Perl6 modules and Inline::Perl6 to use Perl6 in Perl5 codebases. The Perl6 modules they use might be the ones that are using Inline::Perl5 :) | 20:26 | |
vendethiel | nine_: erm, I think this is obviously going to lead to issues, if only performance ones | 20:27 | |
dalek | line-Perl6: d2341b8 | (Stefan Seifert)++ | / (4 files): Version 0.03 |
||
TimToady | well, they'll be interesting issues at least | ||
nine_ | slow code >> no code | 20:28 | |
vendethiel | no, definitely; but I think this is a situation we should try to avoid if possible :-) | ||
skids | New benchmark: time to reach 100000 layer p5/p6 cake. | ||
vendethiel | slow code > no code, but dog-slow code is a bit worthless as well | ||
TimToady | at least it's motivation to port | ||
vendethiel | yes, definitely | 20:29 | |
nine_ | vendethiel: we actually don't know that it will be dog-slow. It sounds plausible, but we don't have any numbers at all on that. | ||
TimToady | I worry more about unforeseen interactions that P5 is so good at | ||
vendethiel | nine_: depends with how many nesting. I'm just worried that "core"-ish modules will try to use it :-) | ||
modules that are going to be "dependend upon" should try not to use either | |||
nine_ | There's going to be plenty of edge case fun for sure. | ||
dalek | c: cc53cff | moritz++ | lib/Type/DateTime.pod: DateTime: some timezone related methods |
20:30 | |
TimToady | .oO("I was expecting to get my feet wet, not my nose bloodied...") |
20:31 | |
dalek | c: a1eca19 | moritz++ | lib/Type/DateTime.pod: Fix headings |
||
nine_ | vendethiel: I'm really not sure if it's that bad at all. We do use Inline::Python at work in our CMS. And we use it in the worst possible way by having lots and lots of small Python expressions. And it still does quite ok. | ||
vendethiel | nine_: I'll trust you then :-). But I don't think it "imports * from perl5" inside :P | ||
nine_ | vendethiel: the CMS is written in Perl while templates use Python syntax to call the CMS' API methods. So there is lots of layering. | 20:32 | |
vendethiel | I see. That's interesting. | ||
nine_ | vendethiel: and yes, that does hurt performance but not as badly as it sounds. | 20:33 | |
vendethiel | nine_: have you seen that video of "php/python" interop? | ||
nine_ | vendethiel: no | ||
vendethiel | like, the guy mixes both freely, and has a partly-visual editor | ||
but it's a different approach - I think the VM handles both. | |||
20:34
_mg_ left
|
|||
bartolin | m: class A { method foo() { say "Foo!" } }; my A $a .= new.foo; say $a | 20:35 | |
camelia | rakudo-moar e2b01f: OUTPUT«Foo!A.new()» | ||
bartolin | that's from RT #114464. do you think it's supposed to work like that? | 20:36 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=114464 | ||
jnthn | Um, well, I understand why it works like that. :) | 20:37 | |
But that's a different question :) | |||
20:39
Rounin left
|
|||
moritz would have expected "Foo!nTruen" as output | 20:39 | ||
20:39
tgt joined
|
|||
bartolin | yes, that's what masak also said back in 2012. | 20:40 | |
20:41
Kristien joined
|
|||
bartolin | (if I understand said ticket correctly) | 20:41 | |
Kristien | hi | ||
dalek | line-Perl5: a3fc639 | (Stefan Seifert)++ | README.md: Update README to reflect new features like use :from<Perl5> |
20:42 | |
Kristien | I'm code golfing in Perl 5! | ||
I should try doing it in Perl 6. | |||
moritz | m: say (50, 40, &infix:<div> ... 0)[*-2] | 20:44 | |
camelia | rakudo-moar e2b01f: OUTPUT«40» | ||
moritz | erm | ||
m: say (50, 40, &infix:<%> ... 0)[*-2] | |||
camelia | rakudo-moar e2b01f: OUTPUT«10» | ||
moritz | a nicely obfuscated GCD | 20:45 | |
though not realy golfed | |||
20:45
andreoss left
20:47
bjz left
20:50
kurahaupo1 joined
20:51
pecastro left
20:52
rindolf left
|
|||
vendethiel | Kristien: it's quite good. you should look at examples on codegolf.se | 20:52 | |
Kristien | I posted mine on codegolf.se. | 20:53 | |
TimToady | P6 golf measures itself in morphemes, not in keystrokes | ||
Kristien | it was this: sub{c.pop=~s/..$//r} | ||
barewords FTW | 20:54 | ||
normally WTF though! | |||
TimToady | FTWTF | ||
jnthn | m: say 'FTW'.flip # :D | ||
camelia | rakudo-moar e2b01f: OUTPUT«WTF» | ||
20:55
alini joined
|
|||
Kristien | I wish $_ were $_[0] in a subroutine. | 20:55 | |
It is in LiveScript. | 20:56 | ||
FROGGS | use $^a | ||
Kristien | Perl 5 | ||
vendethiel | Kristien: it's "it" in livescript :) | 20:57 | |
Kristien | That's what I said! | ||
vendethiel: it is fun with unit testing libraries. | 20:58 | ||
my colleague had a nice debugging session because of it | |||
vendethiel | well, "itt = it" or (...)-spamming. we talked about it already...:) | ||
Kristien | what is itt? "it and only it"? :D | ||
TimToady | lol | ||
vendethiel | yep | ||
20:59
diana_olhovik left
|
|||
Kristien | P66 is "Perl 6 and only Perl 6" | 20:59 | |
21:00
bcode left
|
|||
vendethiel | .oO( and what about p666? ) |
21:00 | |
21:00
echowuhao joined
|
|||
Kristien wishes an if statement used the "iff" keyword to be less ambiguous | 21:00 | ||
TimToady | Perl 6 and only Perl 6 except for the parts that are Perl 6 | ||
p666 being sort of a religious statement, as it were | 21:01 | ||
21:01
bcode joined
|
|||
Kristien | if (x) { l: foo(); } /* this is if but not iff! */ goto l; | 21:01 | |
alpha- | still waiting for black perl 2 | ||
TimToady | p6 doesn't have "the poetry optimization", alas | 21:03 | |
mst | y/// iff ...; | ||
Kristien | I apparently have some PHP code analysis tool which prints a CRAP index. I'm worried because it's so low. | 21:04 | |
TimToady | maybe it's all html | 21:05 | |
dalek | c: 2b73d96 | moritz++ | lib/Language/quoting.pod: quoting: link to Proc::Async from qx// docs |
21:06 | |
Kristien | > A CRAP of >= 30 means that no amount of testing can make your method not crappy. | ||
TimToady | such a high standard, Not Crappy... | ||
skids | GTC | 21:07 | |
21:07
adu left
|
|||
TimToady | next Lego movie, Everything Is Not Crappy! | 21:07 | |
dalek | c: 1d442c2 | moritz++ | lib/Language/unicode_entry.pod: (hopefully) improve title for unicode_entry.pod, [ptc]++ |
21:08 | |
moritz | but we learned that the only sensible code review metric is WTFs/min, no? :-) | 21:09 | |
Kristien | the code review metric I use is ∉ {C, Java, PHP} :P | 21:10 | |
moritz hurls a C++ at Kristien | 21:11 | ||
Kristien catch (...) { std::abort(); } | |||
jdv79 | anyone know of something like a Perl::Critic for p6? | 21:13 | |
oh, i'm sorry. i meant PerlTidy | |||
source code formatting | |||
TimToady | not that I know of | ||
sjn sees something called Perl6::Format on modules.perl6.org/ | 21:14 | ||
haven't tried it | 21:15 | ||
moritz | that's string formatting for Perl 6 | ||
sjn | aah | ||
TimToady | re irclog.perlgeek.de/perl6/2015-02-12#i_10103294 maybe we'll need to come up with a name for reformed hipsters, once they start arriving on our doorstep | ||
moritz | or did I confuse that with Form.pm? | ||
TimToady | sixsters or some such | ||
jdv79 | as someone with intermittent rsi I would be appreciate a formatter | 21:16 | |
21:16
bronco_creek joined
|
|||
moritz | sjn, jdv79: seems I'm wrong, and Perl6::Format really does format Perl 6 code | 21:16 | |
Kristien | TimToady: hiphiphurraysters | ||
jdv79 | cool | 21:17 | |
TimToady | hopsters, for hopping on our bandwagon | ||
or maybe it's about the beer | |||
jnthn | mmmm...hops | ||
21:18
kurahaupo1 left
|
|||
Kristien | If the "fake weapon was indistinguishable from a real one" how do they know it's fake? If it's indistinguishable can it even be fake? | 21:18 | |
TimToady | flapsters, for switchin' to Teh Buttahflah | ||
bronco_creek | Can someone provide a pointer to step-by-step guidance for forking a module and modifying it in my local environment? I've only ever installed star releases and downloaded existing modules with panda. I couldn't quite follow the 2013 advent article. | 21:19 | |
Kristien | It must look and behave identically. | ||
TimToady | or maybe we can have flappers again, after all, the '20s are coming up | 21:21 | |
bronco_creek: well, basically, every time you use 'git clone' you're already technically forking | 21:22 | ||
21:23
_dolmen_ joined
|
|||
TimToady | so learning git clone is a good first step | 21:23 | |
21:23
[Sno] joined
|
|||
TimToady | after that...well...git has a rather long onramp | 21:24 | |
bronco_creek | Yes, I got past the git clone part. I don't know how to make a program recognize my local version of the module rather that the one that installed with Rakudo *. | ||
s/that/than/ | |||
TimToady guesses 'use lib', but someone else here will have a more definitive answer | 21:25 | ||
haven't actually used Star that much meownself | |||
jnthn | Maybe "panda install ." when you're in the module directory will do it | ||
Kristien | BEGIN { push @INC, '.' } :D | ||
bronco_creek | "meown self" - back to lolcat speak... | 21:26 | |
jnthn | Well, if just for local testing then, -Ilib | ||
TimToady thinks of that as Popeye-speak | |||
jnthn | Thing I said first is "install mine in place of the star one" | ||
bronco_creek | jnthn: thanks | 21:27 | |
Kristien | TimToady: it's about time Perl 6 gets the Popeye operator like C++ has: <:??)<%??>; | 21:31 | |
21:31
Guest45 joined
|
|||
Kristien | in C++ <:??)<%??> is the empty lambda. :D | 21:32 | |
TimToady | wow, maybe someone needs to throw a few mugs over there | 21:33 | |
after eating some spinach | |||
Kristien | m: sub infix:< <:??)<%??> >($a, $b) { sub {} } | 21:34 | |
camelia | rakudo-moar e2b01f: OUTPUT«===SORRY!=== Error while compiling /tmp/8XtSLZ4DWmUnable to parse expression in quote words; couldn't find final '>' at /tmp/8XtSLZ4DWm:1------> infix:< <:??)<%??> >($a, $b) { sub {} }⏏<EOL> …» | ||
Kristien | m: sub infix:('<:??)<%??>')($a, $b) { sub {} } | ||
camelia | ( no output ) | ||
Kristien | nice | ||
TimToady | m: sub infix:« <:??)<%??> »($a, $b) { {} } | 21:35 | |
camelia | ( no output ) | ||
TimToady | is prolly how I'd write it | ||
Kristien | sub infix:<< <:??)<%??> >>($a, $b) { {} } | ||
m: sub infix:<< <:??)<%??> >>($a, $b) { {} } | |||
camelia | ( no output ) | ||
21:36
cmiller1 joined,
sqirrel_ joined
|
|||
Kristien | m: sub infix:«<:??)<%??>»($a, $b) { {} } | 21:36 | |
camelia | ( no output ) | ||
Kristien | very nice | ||
TimToady | hmm, might need to be {;} | 21:37 | |
m: say {}() | 21:38 | ||
camelia | rakudo-moar e2b01f: OUTPUT«Cannot find method 'postcircumfix:<( )>' in block <unit> at /tmp/Y9K9tORYw_:1» | ||
TimToady | m: say {;}() | ||
camelia | rakudo-moar e2b01f: OUTPUT«Nil» | ||
TimToady | yeah | ||
21:38
kurahaupo1 joined
|
|||
TimToady | m: say ->{}() | 21:39 | |
camelia | rakudo-moar e2b01f: OUTPUT«Nil» | ||
TimToady | or that | ||
21:44
cmiller1 left
|
|||
vendethiel | TimToady: theydid (throw some mugs), and now trigraphs are to be removed | 21:46 | |
21:47
Guest45 left,
_dolmen_ left
|
|||
TimToady | trigraphs were a bad solution to the wrong problem :) | 21:48 | |
Kristien | I like the <% and %> digraphs. I use them all the time. Curly braces are ugly. | ||
I never liked curly braces. | |||
vendethiel | ... | 21:49 | |
well, I've known for some time you had *very specific* taste :) | |||
have*, probably | |||
TimToady | speaking of Unicode, we should allow smartquotes to work like ASCII quotes, because more and more clients are just putting them in for you | ||
Kristien | I like do/begin/etc and end keywords. | ||
Especially endif, endwhile, endsub etc if the editor inserts those for me. | 21:50 | ||
TimToady thinks keywords for structure just hide the structure | |||
Kristien | It's the one case where I consider IDE vomit OK. | ||
21:50
xfix left
|
|||
TimToady | it's like telegraphs where they use STOP instead of a period | 21:51 | |
words should be reserved for ideas that are meaningful to the problem, not meaningful to the programming language | |||
which is why we have given/when rather than switch/case | |||
vendethiel | well, that's certainly arguing with someone who has a lot of experience and background with such terminology :) | 21:52 | |
masak | that's a nice way of putting it. | ||
vendethiel | "syntax shouldn't be wordy"? | ||
TimToady | wel, not everyone thinks the same, and that's okay too :) | ||
*ll | |||
vendethiel | well, I've been to a darker end of that spectrum(livescript) and it's not pretty to read | 21:53 | |
Kristien needs to hunt for food. She's hungry. | |||
TimToady hides | 21:54 | ||
b2gills | Kristien: having braces {} was actually one of the reasons I chose Perl over Python, and Ruby | ||
TimToady | they are admittedly hard to type on some keyboards | ||
Kristien | I should remap [] to {} and vice versa. | ||
vendethiel finds them awkward on every keymap. | |||
Kristien | I use braces far more often than brackets. | ||
vendethiel | they're hard to type on azerty keyboards, and on qwerty as well :( | ||
21:54
larion left
|
|||
vendethiel | Kristien: drracket inserts () if you type [] :P | 21:54 | |
Kristien | Better not use drracket for Clochure. | 21:55 | |
TimToady used to have a ^B macro that would insert a new block and put the cursor in the middle | |||
b2gills | I would find that harder to type than {} | 21:56 | |
TimToady | we are preventing Kristien from...feeding... | 21:57 | |
vendethiel remapped his CAPS LOCK to both ESC and CTRL for vim... | |||
Kristien | remapping [] to () is a good idea | ||
I'mma do that. | |||
I remapped ; to : already in Vim. | |||
vendethiel | Kristien: yeah, I did the same -- after a talk from TheDamian | 21:58 | |
Kristien: alright, have a nice meal, I'll have myslf a good night. o/ #perl6 | 21:59 | ||
Kristien | goodbye | ||
22:04
cognominal joined,
sqirrel__ joined,
FROGGS_ joined
22:05
skids left
22:08
Sqirrel left,
sqirrel_ left,
FROGGS left
22:09
Sqirrel joined
22:10
amaliapomian left
22:12
bronco_creek left
22:15
_dolmen_ joined
22:18
pyrimidi_ joined
22:20
FROGGS_ is now known as FROGGS,
[Sno] left,
pyrimidine left,
[Sno]_ joined
|
|||
FROGGS | jnthn: is there a way to distinguish Int, int and int32 via their storage_spec? | 22:20 | |
22:21
Alina-malina left
|
|||
jnthn | FROGGS: Yes. | 22:21 | |
Kristien | du spec storage | ||
22:21
Alina-malina joined
|
|||
FROGGS | jnthn: but Int and int both state they are 64 bits wide... | 22:22 | |
Kristien | I thought Int was unbounded. | ||
jnthn | The latter two will have boxed_primitive set to MVM_STORAGE_SPEC_BP_INT iirc | ||
FROGGS | ohh... | 22:23 | |
that's what I am checking now | |||
jnthn | P6opaque (which Int is) does: | ||
spec->boxed_primitive = MVM_STORAGE_SPEC_BP_NONE; | |||
FROGGS | nice! | 22:24 | |
22:24
vendethiel left
|
|||
jnthn | The 64 bits you're seeing there is 'cus that's the pointer size | 22:24 | |
And a P6opaque is a reference type | |||
22:25
vendethiel joined
22:26
zakharyas left
22:27
mohij left
|
|||
jnthn | bbi10 | 22:27 | |
22:41
tgt left
22:46
virtualsue left
22:49
vendethiel left,
sqirrel__ left
23:00
vendethiel joined,
lichtkind_ joined
23:02
lichtkind left
23:09
telex left
23:10
telex joined,
pmurias joined
|
|||
dalek | kudo/native-ref: aa451b9 | jnthn++ | src/Perl6/ (2 files): Move get_attribute_meta_object to Perl6::World. It fits more naturally there, since it's about declarative bits. |
23:13 | |
kudo/native-ref: 071290e | jnthn++ | src/Perl6/ (3 files): Move sig/param creation code in Actions to World. Again, it's about declrations, and given the number of $*W method calls that can become self method calls with this move it clearly wants to be in there. |
|||
23:14
_dolmen_ left
23:18
alini left
|
|||
timotimo | is the amount of $*W method calls dragging our performance down? does spesh turn that into a simple guard instead of a full lookup? | 23:20 | |
jnthn | timotimo: They're not a huge issue since TimToady++ implemented and tuned the dynvar cache | 23:21 | |
timotimo: It's more that if you have a method on one object doing a ton of method calls on a second object, then the method probably belongs on the second object. | 23:22 | ||
timotimo | i got that much :) | ||
jnthn | I think spesh does type-guard dyncars too | 23:23 | |
*dynvars | |||
timotimo | type-guard? not value-guard? | ||
dalek | kudo/native-ref: 9cbf1b9 | jnthn++ | src/Perl6/Actions.nqp: Undo some sub => method. No need to make these available outside of Actions, now we've moved some stuff that wanted to really be in World. |
||
jnthn | timotimo: Yeah, in the general case they're rather susceptible to change :) | 23:24 | |
Kristien wishes there was goto else;. | |||
jnthn | And for $*W we're just calling methods, so type is enough to specialization-time resolve it. | ||
23:25
vendethiel left
|
|||
masak | Kristien: instead of asking "why?", let me just state that I think that's both a bad idea and a strange suggestion. :) | 23:25 | |
Kristien: and I also don't think you've put all that much thought into it. | |||
Kristien | masak: usecase: gist.github.com/rightfold/3724da423ebfbb6836de | 23:26 | |
masak | that ought to work in Perl 6. | ||
you just need to quote the label, since it's used before it's declared. | |||
Kristien | m: if true { goto else } else { say "hi" } | ||
camelia | rakudo-moar e2b01f: OUTPUT«===SORRY!===Function true needs parens to avoid gobbling blockat /tmp/ASvKcWZBq_:1------> if true { goto else }⏏ else { say "hi" }Missing block (apparently taken by 'true')at /tmp/ASvKcWZBq_:1------>…» | ||
Kristien | m: if True { goto else } else { say "hi" } | 23:27 | |
camelia | rakudo-moar e2b01f: OUTPUT«===SORRY!=== Error while compiling /tmp/MywY2ulqRkUndeclared routines: else used at line 1 goto used at line 1» | ||
Kristien | noooooooooooo | ||
23:27
coffee` joined
|
|||
masak | I didn't say "works in Rakudo". AFAIK, Rakudo doesn't implement `goto` yet. | 23:27 | |
Kristien | I could easily refactor it by putting $givenAnswersStr = ''; before the if statement and leaving out the else clause. | ||
but having a goto every once in a while is good—it creates jobs | 23:28 | ||
masak *plonk* | |||
23:30
BenGoldberg joined
23:35
Mr0rris0 left
|
|||
pmurias | implementing goto in rakudo-js will be annoying | 23:38 | |
jnthn | s/'-js'// :P | ||
Kristien | nah | 23:44 | |
just compile function body into var __label = 0; for (;;) switch (__label) { case 0: … } | 23:45 | ||
with some magic breaks it'll work great! | |||
timotimo | like the "Amen Break"? | ||
23:45
gfldex left,
avuserow left,
cognominal left
|
|||
Kristien | $BRK | 23:46 | |
timotimo | SBRK? | 23:49 | |
jnthn | ENOMEM | 23:51 | |
Kristien | timotimo: that's like saying $hit is shit. | ||
Which is one of the reasons Perl is awesome. | 23:52 | ||
(And PHP, but don't tell anyone!) | |||
23:52
pRiVi joined
23:53
Kristien left
|
|||
dalek | kudo-star-daily: 9c687ab | coke++ | log/ (14 files): today (automated commit) |
23:57 | |
rl6-roast-data: a48643a | coke++ | / (5 files): today (automated commit) |
|||
23:59
avuserow joined
|