»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend! Set by moritz on 22 December 2015. |
|||
00:00
pmurias joined
00:07
bjz left
00:13
AlexDaniel left
00:15
BenGoldberg joined
00:19
khw left
00:26
Ben_Goldberg joined,
BenGoldberg left,
Ben_Goldberg is now known as BenGoldberg
00:27
itcharlie2 joined
|
|||
beginner_guy | #kernelnewbies | 00:28 | |
oops | 00:29 | ||
00:29
itcharlie left
00:31
BenGoldberg left
00:34
BenGoldberg joined
00:36
llfourn joined
00:38
aborazmeh joined,
aborazmeh left,
aborazmeh joined
00:39
espadrine left,
BenGoldberg left
00:40
BenGoldberg_ joined
00:41
BenGoldberg_ is now known as Ben_Goldberg,
Ben_Goldberg is now known as BenGoldberg,
llfourn left
00:43
itcharlie1 joined
00:47
AlexDaniel joined,
itcharlie2 left
00:49
AlexDaniel left
00:54
itcharlie1 left
01:03
Ben_Goldberg joined,
BenGoldberg left,
Ben_Goldberg is now known as BenGoldberg
01:08
pmurias left
01:15
zacts joined
01:19
avalenn left
01:20
avalenn joined
|
|||
timotimo | tbrowder: did you see my comments on the "probs with when" commit? | 01:20 | |
tbrowder | no, looking now...thanks | 01:21 | |
01:27
aborazmeh left
01:29
jeffythedragonsl joined
01:34
jeffythedragonsl left
|
|||
Geth | doc: e9f4bb1037 | (Tom Browder)++ | doc/Language/control.pod6 use correct name for the block under discussion! |
01:35 | |
01:38
llfourn joined
|
|||
timotimo | the comment below it, too? | 01:40 | |
ah, 4 comments now | |||
i'm confused as to why you'd put that specific example there | 01:43 | ||
01:43
llfourn left
|
|||
timotimo | for one, it's got nothing to do with a when block by itself | 01:43 | |
Geth | doc: d5f23aeae9 | (Tom Browder)++ | doc/Language/control.pod6 add more info to explain the context |
01:45 | |
timotimo | maybe it's just me *shrug* | 01:48 | |
tbrowder | timotimo: i didn't say that did i? i referred to the source text in sub calls in signatures. my only original reason for the pr was to document the problem i've been having with when blocks, then i realized the when block is not treated as a separate object even though i think it should be found as such in a search. please modify anything you want, but at | 01:50 | |
least let me have something to find to refresh my memory better than what we had. | |||
timotimo | oh, you just wanted "when" to show up when searched | 01:51 | |
what do you mean by the reference to signature literals? | 01:52 | ||
tbrowder | yes, and then get some more info on tricky parts that aren't well described elsewhere IMHO, at least for my pea brain. sometimes the docs leap into depth first before less esoteric uses | ||
timotimo | mhm | 01:53 | |
tbrowder | ref is to the only place i could find about valid sub calls | ||
timotimo | excuse me, "valid sub calls"? | ||
tbrowder | pleas find a better reference, or do whatever it takes...look at the error versions in my example | ||
timotimo | m: for <a b c> { when / :i h / { &say } } | 01:54 | |
camelia | ( no output ) | ||
timotimo | m: for <a b c> { when / :i h / { &say; } } | ||
camelia | ( no output ) | ||
timotimo | what error did you actually get? | ||
tbrowder | i first try the old p5 trick of calling a sub with &foo and got bit... | 01:55 | |
timotimo | yeah, that's just the function as a noun rather than as a verb | ||
tbrowder | look at the example earlier today | 01:56 | |
timotimo | in irc here? | ||
oh! | 01:57 | ||
that's something different :D | |||
m: if say { 1 } | |||
camelia | rakudo-moar a62882: OUTPUT«5===SORRY!5===Function 'say' needs parens to avoid gobbling blockat <tmp>:1------> 3if say { 1 }7⏏5<EOL>Missing block (apparently claimed by 'say')at <tmp>:1------> 3if say { 1 }7⏏5<EOL>» | ||
timotimo | not related to when | ||
01:58
ocbtec left
|
|||
tbrowder | well, explain it better then... | 01:58 | |
timotimo | hm | ||
01:59
Actualeyes left
|
|||
timotimo | m: for say { "meep" } | 01:59 | |
camelia | rakudo-moar a62882: OUTPUT«5===SORRY!5===Function 'say' needs parens to avoid gobbling blockat <tmp>:1------> 3for say { "meep" }7⏏5<EOL>Missing block (apparently claimed by 'say')at <tmp>:1------> 3for say { "meep" }7⏏5<EOL>» | ||
tbrowder | look at irclog.perlgeek.de/perl6/2017-02-15#i_14109385 | ||
timotimo | it's a good question where this should go, but i'm pretty sure it shouldn't go here | 02:00 | |
though the control flow page might be the right page at least | 02:01 | ||
since putting a sub without arguments before a { } like that is a temptation mostly in those contexts | |||
because you have keyword, term, block immediately in a row there | 02:02 | ||
02:03
Ben_Goldberg joined,
BenGoldberg left,
Ben_Goldberg is now known as BenGoldberg
|
|||
tbrowder | it would help to illustrate that exact point item by item in at least one of the error entres! i'm going to sleep on it...will check in tomorrow | 02:08 | |
timotimo | well, the error is trying to | 02:09 | |
just if you have "f" three times in a row it's hard to tell which f it means | 02:10 | ||
it puts the marker after f { ... }^here^ | |||
and says "lacks a block" "the block was apparently taken by f" and "f needs to have parens in order to avoid gobbling the block" | |||
02:11
kurahaupo__ joined
02:13
Actualeyes joined
|
|||
samcv | is there a way to do rakudobrew with moar blead when using Travis? | 02:13 | |
looks like my travis MoarVM panic: Internal error: invalid thread ID 1302783360 in GC work pass, and that's been fixd in moar | |||
02:15
jraglin joined
02:16
khw joined
|
|||
timotimo | yeah, you can get "rakudobrew triple nom master master" | 02:20 | |
samcv | what | 02:24 | |
so if i put nom in the .travis.yml it'll build nom? | |||
02:37
cdg joined
02:39
llfourn joined
02:42
Ben_Goldberg joined,
BenGoldberg left,
Ben_Goldberg is now known as BenGoldberg
|
|||
timotimo | no, the command is "rakudobrew triple nom master master" | 02:43 | |
02:43
alphah joined
02:44
llfourn left
02:45
ssotka left
02:46
agentzh left,
alphah left
02:51
agentzh joined
|
|||
BenGoldberg | . o O (coffebrew triple size nom nom nom) | 02:52 | |
02:55
grondilu joined
02:56
snowkiss21 joined
02:59
AlexDaniel joined
|
|||
skids | bisect: use NativeCall; use nqp; my $anchor; my $c = nativecast(Pointer[uint8], Buf.new(1,2,3,4,5,6)); class f is repr("CStruct") { has uint16 $.a; has uint32 $.b }; my $d = nativecast(f,$c); my $f = $d.a; nqp::force_gc; $d = nativecast(f,$c); say $f == $d.a | 02:59 | |
bisectable6 | skids, On both starting points (old=2015.12 new=a628826) the exit code is 0 and the output is identical as well | ||
skids, Output on both points: False | |||
skids | OK, so that's not a new thing. | 03:00 | |
03:02
raiph joined
03:06
cdg left,
cdg joined
03:07
Ben_Goldberg joined,
BenGoldberg left,
Ben_Goldberg is now known as BenGoldberg
|
|||
AlexDaniel | commit: all use NativeCall; use nqp; my $anchor; my $c = nativecast(Pointer[uint8], Buf.new(1,2,3,4,5,6)); class f is repr("CStruct") { has uint16 $.a; has uint32 $.b }; my $d = nativecast(f,$c); my $f = $d.a; nqp::force_gc; $d = nativecast(f,$c); say $f == $d.a | 03:09 | |
committable6 | AlexDaniel, gist.github.com/1832349c258408fad0...270ab92e1b | ||
03:10
xtreak joined
03:21
cdg left
03:27
cale2 joined
|
|||
cale2 | how do you do the .tell command here? to send people messages later? | 03:27 | |
grondilu | .tell cale2 just like that, no? | 03:28 | |
yoleaux | grondilu: I'll pass your message to cale2. | ||
03:28
ssotka joined
|
|||
grondilu | say something and yoleaux will relay | 03:28 | |
cale2 | hi | 03:29 | |
yoleaux | 03:28Z <grondilu> cale2: just like that, no? | ||
cale2 | is timotimo here? | ||
grondilu | .seen timotimo | ||
yoleaux | I saw timotimo 02:43Z in #perl6: <timotimo> no, the command is "rakudobrew triple nom master master" | ||
skids | bisect: my $p = Promise.new; my $b = 0; my $w = start { await($p); CATCH { default { $b = 1; .resume } } }; $p.break; await($w); $b.say | 03:34 | |
bisectable6 | skids, Bisecting by exit code (old=2015.12 new=a628826). Old exit code: 0 | ||
skids, bisect log: gist.github.com/c56451864b792d91a5...0ed967e6a3 | |||
skids, (2016-11-02) github.com/rakudo/rakudo/commit/ab...80e5efecbf | |||
cale2 | .tell timotimo: it might be worthwhile to add a "help wanted" section to perl6weekly. People could send you a little classified about something they need help with and how a person can get involved :) | 03:35 | |
yoleaux | cale2: What kind of a name is "timotimo:"?! | ||
cale2 | .tell timotimo it might be worthwhile to add a "help wanted" section to perl6weekly. People could send you a little classified about something they need help with and how a person can get involved :) | ||
yoleaux | cale2: I'll pass your message to timotimo. | ||
cale2 | lol | ||
03:35
kurahaupo_ joined,
noganex joined
|
|||
skids | bisect: my $p = Promise.new; my $b = 0; my $w = start { await($p); CATCH { default { $b = 1; } } }; $p.break; await($w); $b.say | 03:36 | |
bisectable6 | skids, On both starting points (old=2015.12 new=a628826) the exit code is 0 and the output is identical as well | ||
skids, Output on both points: 1 | |||
skids | Hrm, well, finding why I had to put that .resume in there in the first place might require some digging. | 03:38 | |
03:38
noganex_ left
|
|||
MasterDuke | bisect: old=abf6caf06eb7e48674d4e22a4ad6b580e5efecbf my $p = Promise.new; my $b = 0; my $w = start { await($p); CATCH { default { $b = 1; .resume } } }; $p.break; await($w); $b.say | 03:38 | |
03:38
kurahaupo__ left
|
|||
bisectable6 | MasterDuke, Bisecting by output (old=abf6caf new=a628826) because on both starting points the exit code is 1 | 03:38 | |
MasterDuke, bisect log: gist.github.com/48a46201d3a30c5ccb...721dc85b4c | |||
MasterDuke, (2016-12-20) github.com/rakudo/rakudo/commit/b8...7bcfed8e2c | |||
MasterDuke | bisect: old=b8df3a613125f17e9cbc59488326187bcfed8e2c my $p = Promise.new; my $b = 0; my $w = start { await($p); CATCH { default { $b = 1; .resume } } }; $p.break; await($w); $b.say | 03:40 | |
bisectable6 | MasterDuke, On both starting points (old=b8df3a6 new=a628826) the exit code is 1 and the output is identical as well | ||
MasterDuke, Output on both points: Tried to get the result of a broken Promise in block <unit> at /tmp/vKFkDC23_N line 1Original exception: This exception is not resumable in block at /tmp/vKFkDC23_N line 1 in block at /tmp/vKFkDC23_N line 1 | |||
AlexDaniel | c: all my $p = Promise.new; my $b = 0; my $w = start { await($p); CATCH { default { $b = 1; .resume } } }; $p.break; await($w); $b.say | ||
committable6 | AlexDaniel, gist.github.com/f10650909b08ee2fad...1391f8bae0 | ||
AlexDaniel | the thing with Bisectable is that you have to know what you're looking for | ||
03:41
llfourn joined
|
|||
skids | Falling off a stanza inside a CATCH is technically considered a "resume" or not? | 03:41 | |
c: all my $p = Promise.new; my $b = 0; my $w = start { await($p); CATCH { default { $b = 1; } } }; $p.break; await($w); $b.say | 03:42 | ||
committable6 | skids, gist.github.com/b05de1815ecb560852...ce483adee9 | ||
03:49
llfourn left,
cale2 left
03:55
kyan left
|
|||
Geth | whateverable: a44467ea4f | (Daniel Green)++ | Benchable.p6 Also use slightly faster pzstd for Benchable |
03:59 | |
04:01
Ben_Goldberg joined,
BenGoldberg left,
Ben_Goldberg is now known as BenGoldberg
04:11
ChoHag_ left
04:31
Cabanoss- joined
|
|||
skids | Anyone worked up CompUnit incantations to get a multi-module test on one line for the bots? | 04:32 | |
04:34
Cabanossi left,
Cabanoss- is now known as Cabanossi
04:36
Ben_Goldberg joined,
BenGoldberg left,
Ben_Goldberg is now known as BenGoldberg
04:37
agentzh left
04:39
xtreak left
04:41
xtreak joined
04:45
llfourn joined
04:51
llfourn left
04:55
AlexDaniel left
05:01
khw left
05:05
kurahaupo__ joined
05:09
kurahaupo_ left
05:21
wamba joined
05:26
mr_ron left
05:33
snowkiss21 left
05:39
BenGoldberg left
05:40
curan joined
05:46
llfourn joined
05:51
llfourn left
05:57
skids left
05:59
Cabanossi left,
Cabanossi joined
06:03
llfourn joined
06:04
snowkiss21 joined
06:07
CIAvash joined
06:13
Actualeyes left
06:16
bolangi left,
hwu_ left
06:26
xtreak left
06:28
yan4138 joined
06:29
xtreak joined
06:32
wamba left
06:41
yan4138 left
06:52
mr_ron joined
06:54
RabidGravy joined
07:01
mr_ron left
07:02
Actualeyes joined
07:03
darutoko joined
07:04
ssotka left
07:26
wamba joined
07:33
eroux joined
07:37
mr_ron joined
07:46
cpage_ left
07:47
eroux left
07:48
Tonik joined,
mr_ron left
07:50
eroux joined
08:10
kurahaupo__ left
08:13
ufobat joined
08:26
xtreak left
08:27
cpage_ joined
08:29
kurahaupo__ joined,
xtreak joined
08:31
abraxxa left,
abraxxa joined
08:32
abraxxa left,
dakkar joined
08:33
abraxxa joined
08:35
agentzh joined,
CIAvash left
08:39
agentzh left
08:40
cpage_ left,
kurahaupo__ left
08:41
abraxxa left
08:42
abraxxa joined
08:44
cpage_ joined
08:45
kst left,
cpage_ left,
kst joined,
wamba left
08:52
xtreak left
08:54
xtreak joined
08:56
bjz joined
09:01
astj_ joined
09:03
obra_ is now known as obra
09:04
jonas2 joined
09:07
xtreak left
09:14
cpage_ joined
09:28
bolangi joined
09:29
curan left
09:31
curan joined
09:32
TEttinger left
09:42
dakkar left,
dakkar joined
09:46
xtreak joined
09:54
lukaramu joined
10:04
user10 joined
10:06
user9 left,
user10 is now known as user9
10:08
user10 joined
10:10
user9 left
10:12
user10 left
10:17
user9 joined
10:19
sena_kun joined
10:24
dmaestro left
10:27
faraco joined
10:35
bjz left
10:41
espadrine joined
10:42
curan left,
bjz joined
10:49
bjz left
|
|||
tbrowder | morning #perl6 ... sleepless night worrying over when block | 10:49 | |
10:49
bjz_ joined
10:50
curan joined
|
|||
sena_kun | tbrowder, 0/ | 10:51 | |
jnthn | I once had a sleepless flight implementing whenever blocks...does that count? :) | 10:52 | |
tbrowder | .tell timotimo i'm all wrong about the words i used in the new doc chunk. i think the fundamental point is the when and if are similar but the if doesn't implicitly give control back to the enclosing block while the when does. i'll reword in a bit. | 10:53 | |
yoleaux | tbrowder: I'll pass your message to timotimo. | ||
tbrowder | sena_kun: hi, jnthn: i think that counts for sure! | 10:54 | |
jnthn | tbrowder: If it helps, `when X { Y }` compiles into the same thing as `if X.ACCEPTS($_) { Y; succeed; }` | ||
Or something very close/equivalent | 10:55 | ||
Though it also forces the surrounding block to have a succeed handler | 10:56 | ||
timotimo | o/ | ||
yoleaux | 03:35Z <cale2> timotimo: it might be worthwhile to add a "help wanted" section to perl6weekly. People could send you a little classified about something they need help with and how a person can get involved :) | ||
10:53Z <tbrowder> timotimo: i'm all wrong about the words i used in the new doc chunk. i think the fundamental point is the when and if are similar but the if doesn't implicitly give control back to the enclosing block while the when does. i'll reword in a bit. | |||
timotimo | tbrowder: oh, okay! that's a whole different topic than i thought we were talking about! :) | ||
tbrowder | jnthn: i would appreciate your perusal of my reword when i get it done, and that helps (i think!) | ||
timotimo: yes, i was muddling two different issues of my p6 !understanding | 10:58 | ||
jnthn: i'll try to put yr wrds in layman's language | 11:02 | ||
11:02
wamba joined
11:04
xtreak left
11:08
wamba left
11:26
eliasr joined
11:40
_Vasyl left
11:41
_Vasyl joined
11:45
g4 left
11:52
rindolf left
|
|||
faraco | Hi guys, just want to know from you guys opinion, what makes a written program a "good code" to you? Just want to expand my skills on writing better program and the ease the development for myself and everyone else (if somebody did look at it, you'll never know!) | 11:53 | |
sena_kun | faraco, here can be different answers, but I guess it is too complex topic to express shortly. You can search for different books like "Perfect Code" and alike, but remember that it is just a bunch of examples and opinions, not The Single Truth Of This World As It Is. | 11:59 | |
IOninja | hehe, too long to explain. | 12:00 | |
timotimo | good code is easy to understand when read, makes its intentions clear, has comments that say why a given piece of code is the way it is, and is reasonably easy to modify when circumstances change | ||
that's ... extremely fuzzy :) | 12:01 | ||
IOninja | faraco: a good program is like art; and perfection in art not is achieved no when there is nothing left to add, but when there is nothing left to take away ;) | ||
timotimo | m: | ||
12:01
rindolf joined
|
|||
timotimo | m: for $( ) { } | 12:01 | |
camelia | ( no output ) | ||
IOninja | Now you just need to frame it and sell it for millions of dollars. | 12:03 | |
For tips, see en.wikipedia.org/wiki/Black_Square_(painting) :) | |||
faraco | sena_kun, timotimo, IOninja: Thank you for your input. I usually write code that is structured enough, but I always felt them being too verbose that it's supposed to, without any documentation on why the specific implementations of code were needed for the program. | 12:11 | |
s/that/than | 12:12 | ||
arnsholt | I'm only in partial agreement with the "nothing left to take away" quote | 12:13 | |
It's a nice quote, but in practice there has to be a balance between "minimal set of features" and "useful" | 12:14 | ||
12:14
jraglin left
|
|||
faraco | I always think that when I write them, it will be me and only me who read them afterward. I guess I was wrong when someone commented my code :P | 12:14 | |
timotimo | keep in mind that "me" from the future can be a whole 'nother person :D | 12:15 | |
sena_kun | faraco, try to be understandable, comment all "How I wrote it? I don't remember" parts, try to avoid creation of "I'm scared to look into this file" parts, use general guidelines and have fun. | 12:17 | |
faraco | thank you :D | ||
timotimo: while you're online, I want to say that Raw::SDL2 is nice! However, I can see some of the examples (shooter.pl) were lagging. Is this because of the moarvm? (mine is rakudo, fyi) | 12:21 | ||
timotimo | yeah, there's a bunch of inefficiencies that it has to work against | 12:22 | |
what does your raw timing look like when graphed? | |||
i.e. gnuplot -p -e "plot 'raw_timings.txt' with lines" | 12:23 | ||
i think i need to take care to remove the first few results as they tend to be crazy outliers | |||
IOninja | arnsholt: the quote doesn't advocate minimalism :) | 12:24 | |
faraco | Right now, I'm not on my home workspace, I cannot install Perl 6 to try. I tried your examples like 3 days ago if I'm not mistaken, but I will try to report what you requested when I got to my PC. | 12:25 | |
timotimo | actually, it'd potentially be enough to post the output it does at the end | 12:26 | |
faraco | If I still remember, I can only the star particles and spaceship moving just fine (with some lags, some sort of 14 FPS) | 12:28 | |
but that's it | |||
see* | |||
timotimo | can you give me your specs? | 12:30 | |
it's most likely CPU bound | |||
the SDL calls it does are super cheap in comparison to the overhead from not-so-optimized perl6 code | |||
faraco | I think my PC is to blame, 1GB ram and 1.50+ Ghz if I'm not mistaken. | 12:31 | |
maybe it's due to moarvm eating a lot of rams that cause the lagging when trying your examples. | 12:32 | ||
timotimo | well, if it's pressed for RAM that'll certainly slow it down a whole lot | ||
but more like 1fps or 0.01fps, not 14fps | |||
faraco | I think you are right. | 12:33 | |
timotimo | you can figure out how much ram it maxes out on with "time" | 12:34 | |
it'll give you the "maxresident" k | |||
faraco | sure, when I'm back home, I'll try what I can do | ||
12:36
bjz_ left
|
|||
timotimo | ah, OK! | 12:36 | |
12:36
agentzh joined
|
|||
timotimo | the numbers that shooter.pl outputs at the end are a bunch of percentiles from frame timings and the inverse of the frame timings (i.e. theoretical FPS) | 12:36 | |
it only uses 150 megs of ram on my machine | 12:37 | ||
and i hardly get framerates below 56 | 12:38 | ||
faraco | That is very weird. I once before installed the Libgdx example (jumper?) on the same PC I tested shooter.pl. It's shockingly fast (maybe because the claimed well written API). | 12:40 | |
timotimo | libgdx? | ||
faraco | yes, Java (I know, I know) | ||
timotimo | it's really rakudo's fault that shooter is so slow | ||
12:41
agentzh left
|
|||
faraco | timotimo: that is my first thought too, since running a hello world script took like a java hello world compilation total time on my machine. but I see this can be addressed later (idk actually). | 12:42 | |
timotimo | rakudo could be much faster in theory | 12:43 | |
it's just a lot of work to make it better :) | |||
faraco | Indeed. | 12:44 | |
timotimo | hah, when i profile it, it says it spends 81% of its time in SDL_RenderPresent | ||
that's VSync sleeping until the next frame can be pushed to the screen | |||
funny thing, when you have more FPS, more enemies will spawn | 12:46 | ||
faraco | sounds like the game is user machine tolerant :P | 12:47 | |
timotimo | anyway, with PRESENTVSYNC turned off i get between 131 and 746 FPS | 12:48 | |
but the 746 seems to be a rather radical outlier; it's the 95th percentile after all | |||
75th percentile is still 221 FPS | 12:49 | ||
12:50
wamba joined
12:52
pmurias joined
|
|||
pmurias | IOninja: The "Nothing more to add" approach sometimes works too, just look at Perl ;) | 12:53 | |
timotimo | oh | 12:56 | |
that was with profiling running | |||
without profiling the 95th percentile goes up to 1379fps and the 75th is 428 fps | |||
faraco | holy... | ||
timotimo | so ... maybe rakudo is fast enough after all? | 12:57 | |
it differs strongly by how many enemies are on screen, of course | 12:58 | ||
12:58
bjz joined,
eroux left
|
|||
timotimo | of course if the game were written in C, it'd have >3000 fps even with 200 enemies on screen, i'd imagine | 13:00 | |
faraco | but I have lags in *all* of the examples. | ||
even the whitenoise.pl and snake.pl | 13:01 | ||
timotimo | maybe GC is making things very bad for you? | 13:02 | |
faraco | like I said, I think my old PC is to blame, not suited to play games. | ||
timotimo | on my machine it spends 8% of its time in GC | ||
faraco | Maybe you are right, I'm just curious why, like Perl 5 frozen-bubble and Jumper libgdx on Java is like playing on 64 bit PC. I didn't noticed any significant lags in them. | 13:03 | |
13:03
pmurias left
|
|||
timotimo | mhm | 13:04 | |
hard to say without measuring things | |||
13:04
pmurias joined
13:08
andrzejku joined
|
|||
andrzejku | hi | 13:09 | |
guys what do you know about this project? Perlix? | 13:10 | ||
13:10
Sgeo_ left
|
|||
andrzejku | status? | 13:10 | |
timotimo | i haven't heard of perlix | 13:14 | |
andrzejku | www.foo.be/docs/tpj/issues/vol5_2/...-0009.html | ||
DrForr | Oh, good god. Short answer: it's a joke. | ||
andrzejku | no, it is not? | 13:15 | |
timotimo | when was that doc written? | ||
andrzejku | 2000 | ||
DrForr | Notice the URL references ftp:// - That should be a good indication of how long it's "been around". | 13:16 | |
El_Che | Simon Cozens. He was las year at fosdem | ||
13:16
lizmat left
|
|||
DrForr | yeah, and the bastard didn't even say hi :) | 13:16 | |
andrzejku | Simon is still live www.simon-cozens.org/ | 13:17 | |
DrForr | Yes. That doesn't mean anything though. | ||
El_Che | DrForr: he did to me :) | ||
andrzejku | He also write Perl book | ||
what is he doing right now? | 13:18 | ||
DrForr | Yes, he did. perlix is still a joke that was funny for a few months back in 2000. That's about it. | ||
El_Che | looking at his git repo: glyphs | ||
andrzejku | doesnt mean that there no existing sources of Perlix? | 13:20 | |
DrForr | Typography, yes. Font design, last time I checked. I doubt he's thought about that page in at least a decade, yet it still remains on the Web. | ||
13:20
wamba left,
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
DrForr | andrzejku: Yes, the page is there. No, to my knowledge very little work if any was ever done on the project. As it says, Perl Power Tools is the closest we've come. | 13:21 | |
There is very little point to writing a kernel in anything other than C, or possibly C++ if you're a masochist, due to performance constraints. | 13:22 | ||
andrzejku | DrForr, sad I got big hope that's really exist | ||
El_Che | DrForr: D, Rust? | 13:23 | |
andrzejku | and Go | ||
El_Che | And there is a Java OS out there | ||
andrzejku: Go <-- GV | |||
GC | |||
andrzejku | yeah that's a point | ||
13:23
snowkiss21 left
|
|||
andrzejku | if there exist Java OS | 13:23 | |
why we cann't have Perlix? | |||
El_Che | I am a Perl guy, but I wouldn't run it :) | 13:24 | |
DrForr | Because nobody's written it? | ||
andrzejku | El_Che, you can run it on embedde device | ||
to speed programming out there | |||
El_Che | andrzejku: Perl as the OS of an embedded device <-- you like pain, don't you? | 13:25 | |
the slow type :) | |||
DrForr | andrzejku: Perl 6 compiles to the JVM, ergo you can write Perl6-OS targeted to the JVM. | ||
El_Che | en.wikipedia.org/wiki/JavaOS | ||
andrzejku | I just need somehow compile Perl JVM on embedde device and write the rest in Perl | 13:26 | |
El_Che | discontinued closed source | ||
DrForr | No need, compile Perl 6 to the JVM - There is no "Perl JVM" - There's the Java Virtual Machine and MoarVM. | ||
13:26
jraglin joined
|
|||
IOninja | Perl6-OS? Call it Slowos :P | 13:26 | |
andrzejku | MoarVM | 13:27 | |
DrForr | Nobody's stopping you. | ||
faraco | The Sixth-Sense. | ||
andrzejku | ya I know I just wanted to look for friends | ||
El_Che | en.wikipedia.org/wiki/JX_(operating_system) | 13:28 | |
faraco | If Perl 6 somehow got a native compiler, then does OS development with Perl 6 still relevant? (well, reduced pain of course) | 13:30 | |
with some extensions maybe? | |||
you know, like chicken scheme to C compiler. | |||
El_Che | faraco: do you mean a ->C compiler of a compiler completely in Perl6? | 13:31 | |
13:31
lukiramu joined
|
|||
faraco | Both, if we can? | 13:31 | |
Although, I'm not transpiling to C will give you full control of the native result. | 13:32 | ||
13:32
bjz left
|
|||
faraco | I'm not sure* | 13:32 | |
since the generated C code maybe do something than you expect to, although can be easily edited, just to make sure where the depends calls happens. | 13:33 | ||
my grammar is messed up... | 13:34 | ||
13:34
lukaramu left
|
|||
faraco | including that | 13:34 | |
DrForr | If you've got the time, now that the grammar is stable, feel free to write a LLVM or GCC frontend for Perl 6 :) | ||
sena_kun | does it have iterators now? | 13:36 | |
DrForr | Does what have iterators? C++ yes, LLVM/GCC - no idea. | 13:37 | |
13:37
astj_ left,
astj joined
|
|||
sena_kun | DrForr, Perl6::Parser. | 13:38 | |
I'm not so hardcore to know anything about LLVM/GCC. :) | |||
DrForr | Oh. No, I had some personal issues come up before FOSDEM, haven't really gotten back to the code. | 13:39 | |
sena_kun | ah, nevermind me then. | ||
DrForr | No worries, it just came in without context. | ||
sena_kun | I want to rewrite Texas::To::Uni(and name it properly *this time*), but it is likely to be super-tricky and buggy without a proper parser. | 13:40 | |
13:41
mr_ron joined
13:43
lizmat joined,
wamba joined,
llfourn left
|
|||
DrForr | sena_kun: Well, let me look at that over the weekend. I found some other things slipping through the cracks that I'll probably have to take care of first but I'll at least give it a splice() method or something that can be used for modification. I also want to be able to braid in ->walk, ->walk-no-whitespace, ->walk-no-structural and ->walk-no-documentation. | 13:47 | |
13:48
aborazmeh left
|
|||
Geth | doc: 4416cdb167 | (Will "Coke" Coleda)++ | 2 files fix typos, learn word, avoid short form |
13:49 | |
timotimo | does anybody want to work on making panda's reporting work with cpandatesters again? | ||
it seems to no longer send the build stage output | 13:50 | ||
so every report gets N/A as the grade | |||
sena_kun | DrForr, you don't need to hurry, since it is unlikely that one of my modules is *heavy* needed by someone, and I have plenty of other things to take care for now. You have many tasks to do too, I suppose, so don't worry and have fun. :) | ||
DrForr | Eeh, it'd be a change of pace. | 13:51 | |
perlpilot | DrForr: btw, a minor thing ... Perl6::Parser doesn't show up in the project list when you type exactly that in the search bar. (because it's Perl6-Parser) | ||
IOninja | timotimo: wouldn't it make more sense to make a zef reporting plugin? | ||
perlpilot | (on modules.perl6.org that is) | ||
timotimo | yeah, could do that, too | ||
IOninja | perlpilot: huh. Seems we do have auto-searching for :: when - is typed, but not in reverse :S | 13:52 | |
perlpilot | I was thinking maybe a "-" was ignored so it was if you'd typed "Perl6 Parser" and that "::" was not ignored | 13:53 | |
DrForr | Well, the git project name is 'perl6-Perl6-Parser'... What needs to change? | 13:54 | |
IOninja | DrForr: modules.perl6.org needs a fix | 13:55 | |
perlpilot | DrForr: the "name" in META.info | ||
and what IOninja said! | |||
:) | |||
DrForr | Thanks. | ||
IOninja | This Issue wasn't fully resolved basically: github.com/perl6/modules.perl6.org/issues/57 | 13:56 | |
DrForr | Done, will push when I get home. | ||
14:05
wamba left
14:07
imcsk8 left
14:09
imcsk8 joined,
kurahaupo__ joined
14:12
sammers left
14:16
pmurias left
14:17
kurahaupo__ is now known as kurahaupo
14:18
cibs left
14:20
cibs joined
14:21
curan left
14:22
jonas2 left
14:25
_Vasyl left,
sammers joined
|
|||
Geth | doc: daa2950944 | (Will "Coke" Coleda)++ | 2 files Unify example skips. Instead of skipping some files when extracting examples, and some when running the tests, move all the exclusions to the test; as of this commit, extract-examples now passes 100% - the goal should be to remove all these skips and still have the test file pass. |
14:30 | |
14:30
Cabanossi left
14:32
Cabanossi joined
|
|||
Geth | doc: 8ad0c63645 | (Zoffix Znet)++ | doc/Type/Array.pod6 Document Array.clone Implemented in Rakudo today in github.com/rakudo/rakudo/commit/dc69dafc42 |
14:38 | |
IOninja | ^ that could use a link to explanation of reification but I don't know where/if that's explained | 14:39 | |
14:39
llfourn joined
14:41
eroux joined
14:42
skids joined
|
|||
IOninja | I don't get it. Why does it complain about attributes in a type object? gist.github.com/zoffixznet/ecdb9f8...5ab64f5760 | 14:43 | |
And just for Array :S | |||
m: Rat.clone | |||
camelia | rakudo-moar dc69da: OUTPUT«Cannot look up attributes in a Rat type object in block <unit> at <tmp> line 1» | ||
IOninja | oh | ||
OK. Never mind then, I guess | |||
14:44
llfourn left
14:45
jfuller joined
|
|||
lizmat | perhaps we should have a Mu:U: clone ? | 14:48 | |
yoleaux | 5 Feb 2017 21:28Z <nine> lizmat: github.com/niner/Inline-Perl5/commit/f461fabb67 is the solution :) | ||
6 Feb 2017 09:27Z <gfldex> lizmat: you may want to link the following tonight video.fosdem.org/2017/K.4.201/ | |||
14 Feb 2017 19:28Z <samcv> lizmat: thanks for " Make Int.WHICH about 1.7x faster" :) | |||
IOninja | lizmat: way ahead of you :) | ||
lizmat | :-) | 14:49 | |
IOninja | Also, welcome back! | ||
14:49
araraloren joined
|
|||
faraco | .tell nobody I'm bored. | 14:50 | |
yoleaux | faraco: I'll pass your message to nobody. | ||
14:51
wamba joined
|
|||
IOninja | .tell IOninja meows | 14:52 | |
yoleaux | IOninja: Talking to yourself is the first sign of madness. | ||
14:58
wamba left,
wamba joined
15:04
zakharyas joined
15:08
Ven joined
15:09
jraglin left
15:10
cale2 joined
|
|||
cale2 | hi | 15:10 | |
IOninja | ahoy | 15:11 | |
cale2 | m: my @array.push(0) for [].elems; say @array.elems; say @array; | 15:12 | |
camelia | rakudo-moar dc69da: OUTPUT«1[0]» | ||
cale2 | So apparently [].elems is pushing an (Any) onto @array | ||
15:12
mst left,
mst joined
|
|||
cale2 | m: say [].elems; say ().elems; | 15:13 | |
camelia | rakudo-moar dc69da: OUTPUT«00» | ||
IOninja | cale2: no, you're iterating for one iteration. | ||
m: "meows".say for 0 | |||
camelia | rakudo-moar dc69da: OUTPUT«meows» | ||
timotimo | m: say "hello cale" for 1 | ||
camelia | rakudo-moar dc69da: OUTPUT«hello cale» | ||
cale2 | ah... So how do I actually do what I want there? | ||
timotimo | i think you've had this same misunderstanding before with masak | ||
cale2 | m: say "hello cale" for 0 | ||
camelia | rakudo-moar dc69da: OUTPUT«hello cale» | ||
IOninja | m: my @array.push(0) for ^[].elems; say @array.elems; say @array; | 15:14 | |
camelia | rakudo-moar dc69da: OUTPUT«0[]» | ||
15:14
snowkiss21 joined
|
|||
cale2 | m: say "hello cale" for ^0 | 15:14 | |
camelia | ( no output ) | ||
cale2 | m: say "hello cale" for ^([].elems) | ||
camelia | ( no output ) | ||
IOninja | m: my @array.push(0) for ^[]; say @array.elems; say @array; | ||
camelia | rakudo-moar dc69da: OUTPUT«0[]» | ||
cale2 | m: say "hello cale" for ^([].elems * 3) | ||
camelia | ( no output ) | ||
IOninja | (no need for .elems even) | ||
heh | |||
0*3 is still 0 :) | |||
cale2 | I don't get it though | ||
timotimo | m: say ^5 | ||
camelia | rakudo-moar dc69da: OUTPUT«^5» | ||
timotimo | yeah | 15:15 | |
m: say ^5.List | |||
camelia | rakudo-moar dc69da: OUTPUT«Potential difficulties: Precedence of ^ is looser than method call; please parenthesize at <tmp>:1 ------> 3say ^57⏏5.List^1» | ||
timotimo | m: say ^5 .List | ||
camelia | rakudo-moar dc69da: OUTPUT«(0 1 2 3 4)» | ||
timotimo | ^5 is short for 0..^5 | ||
IOninja | cale2: ^ is the range operator that makes 0..^$x; The $x used is your elemes | ||
lizmat | m: .say for 0 | ||
camelia | rakudo-moar dc69da: OUTPUT«0» | ||
lizmat | m: .say for [].elems | ||
camelia | rakudo-moar dc69da: OUTPUT«0» | ||
cale2 | m: say "hi" for ^0; say "hi" for ^[]; | ||
camelia | ( no output ) | ||
cale2 | m: say "hi" for ^0; say "hi" for ^[]; | ||
camelia | ( no output ) | ||
cale2 | m: say "hi" for 0 | 15:16 | |
camelia | rakudo-moar dc69da: OUTPUT«hi» | ||
IOninja | cale2: `for 0` iterates over a 1-item list: the number 0; `for ^0` iterates over nothing because `^0` range is an empty list | ||
timotimo | for iterates over a list, individual objects in perl6 behave like a list with only that object in it | ||
IOninja | m: say [0] | 15:18 | |
camelia | rakudo-moar dc69da: OUTPUT«[0]» | ||
IOninja | m: say [^0] | ||
camelia | rakudo-moar dc69da: OUTPUT«[]» | ||
cale2 | m: say [0].classify: { $_ > 0 ?? 'adults' !! 'babies' }; say "%classified[]"; say "%classified<adults>"; | ||
camelia | rakudo-moar dc69da: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Variable '%classified' is not declared. Did you mean '&classify'?at <tmp>:1------> 3> 0 ?? 'adults' !! 'babies' }; say "7⏏5%classified[]"; say "%classified<adults>» | ||
cale2 | m: my %classified = [0].classify: { $_ > 0 ?? 'adults' !! 'babies' }; say "%classified[]"; say "%classified<adults>"; | ||
camelia | rakudo-moar dc69da: OUTPUT«babies 0Use of uninitialized value %classified of type Any in string context.Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful. in block <unit> at <tmp> line 1» | ||
cale2 | ah... the problem is that classified IS inserting a value for the adults | 15:19 | |
IOninja | ? no it doesn;'t | ||
m: my %classified = [0].classify: { $_ > 0 ?? 'adults' !! 'babies' }; dd %classified | |||
camelia | rakudo-moar dc69da: OUTPUT«Hash %classified = {:babies($[0])}» | ||
cale2 | m: my %classified = [0].classify: { $_ > 0 ?? 'adults' !! 'babies' }; say "%classified<adults>.elems"; | 15:20 | |
camelia | rakudo-moar dc69da: OUTPUT«Use of uninitialized value %classified of type Any in string context.Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful. in block <unit> at <tmp> line 1.elems» | ||
cale2 | m: my %classified = [0].classify: { $_ > 0 ?? 'adults' !! 'babies' }; say %classified<adults>.elems; | ||
camelia | rakudo-moar dc69da: OUTPUT«1» | ||
cale2 | yeah it is ^ | ||
timotimo | it's kind of confusing that it's saying "value %classified" even though it is about the elem in it | ||
IOninja | hehe | ||
cale2: it autovivifies | |||
cale2 | %classified<adults>.elems should be 0 | 15:21 | |
timotimo | IOninja: careful with that word. in that code there's no change to the hash yet | ||
IOninja | to an Any and you call Any.elems and get 1 | ||
cale2 | I need it to "do what I mean" haha | ||
timotimo | m: my %foo; dd %foo<nope> | ||
camelia | rakudo-moar dc69da: OUTPUT«Any %foo = Any» | ||
timotimo | well, thanks for the name | ||
m: my %foo; say %foo<nope>:exists | |||
camelia | rakudo-moar dc69da: OUTPUT«False» | ||
cale2 | m: my %classified = [0].classify: { $_ > 0 ?? 'adults' !! 'babies' }; say %classified<adults>.elems == 0; | 15:22 | |
camelia | rakudo-moar dc69da: OUTPUT«False» | ||
timotimo | you want to either check for exists, or use a definedness check (like "with" instead of "if") | ||
15:22
espadrine_ joined
|
|||
IOninja | Right, it don't autoviviy, it gives you an Any and you call .elems on it | 15:22 | |
m: my %classified = [0].classify: { $_ > 0 ?? 'adults' !! 'babies' }; %classified<adults> andthen .elems.say | |||
camelia | ( no output ) | ||
IOninja | m: my %classified = [0].classify: { $_ <= 0 ?? 'adults' !! 'babies' }; %classified<adults> andthen .elems.say | 15:23 | |
camelia | rakudo-moar dc69da: OUTPUT«1» | ||
15:23
espadrine left
|
|||
IOninja | m: my %classified = [0].classify: { $_ <= 0 ?? 'adults' !! 'babies' }; .elems.say with %classified<adults> | 15:23 | |
camelia | rakudo-moar dc69da: OUTPUT«1» | ||
IOninja | m: my %classified = [0].classify: { $_ > 0 ?? 'adults' !! 'babies' }; .elems.say with %classified<adults> | ||
camelia | ( no output ) | ||
IOninja | More than one way to skin a cat. | ||
MTOWTSAC | |||
cale2 | This is the actual code I have now: my @newborns.push(0) for ^(%classified<adults>.elems * $growth-rate); | 15:24 | |
lizmat | actually, it returns a container that may vivify the element in the hash | ||
cale2 | I should change it to: my @newborns.push(0) for ^(%classified<adults>.elems // 0 * $growth-rate); | ||
IOninja | :o | 15:25 | |
lizmat | m: my %h; my $a := %h<foo>; dd %h; $a = 42; dd %h | ||
camelia | rakudo-moar dc69da: OUTPUT«Hash %h = {}Hash %h = {:foo(42)}» | ||
IOninja | TIL | ||
m: my %h; my $a := %h<foo>; dd %h; $a = Any; dd %h | |||
camelia | rakudo-moar dc69da: OUTPUT«Hash %h = {}Hash %h = {:foo(Any)}» | ||
timotimo | the most natural thing to be inside a hash isn't a list, it's a single object | ||
IOninja | how does it know | ||
timotimo | the magic of WHENCE | 15:26 | |
IOninja | s: &postcircumfix:<{ }>, \(%, 'foo') | ||
cale2 | the defined-or // didn't work | ||
SourceBaby | IOninja, Sauce is at github.com/rakudo/rakudo/blob/4b85...lice.pm#L6 | ||
timotimo | well, where did you place it? | ||
m: Any.elems // 0 | |||
camelia | ( no output ) | ||
lizmat | IOninja: Array, line 366 | ||
timotimo | this won't do it | ||
m: say Any.elems // 0 | 15:27 | ||
camelia | rakudo-moar dc69da: OUTPUT«1» | ||
timotimo | because 1 is defined | ||
cale2 | fugg | ||
timotimo | you need something like this: | ||
m: say (Any // []).elems | |||
camelia | rakudo-moar dc69da: OUTPUT«0» | ||
cale2 | it still iterates at least once | 15:28 | |
IOninja | So when $!whence is a codeblock it gets called on first assignment or something? | ||
timotimo | are you still using for blah.elems? you need to put a ^ in front of the number | ||
or else you'll always be doing one iteration, no matter what number it is | |||
IOninja | m: use nqp; nqp::p6bindattrinvres((my $special-something), Scalar, q|$!whence|, -> { say "meows" }); $special-something = 42; $special-something = 72 | 15:30 | |
camelia | rakudo-moar dc69da: OUTPUT«meows» | ||
IOninja | ehehe, neat. | ||
Is there a way to get the value being assigned? | 15:31 | ||
m: use nqp; nqp::p6bindattrinvres((my $special-something), Scalar, q|$!whence|, { say "meows" x $special-something }); $special-something = 3; | |||
camelia | rakudo-moar 4b85db: OUTPUT«meowsmeowsmeows» | ||
IOninja | haha, awesome | ||
[Coke] | IOninja: meowsome. | 15:32 | |
cale2 | I'm using ^ | ||
timotimo | ok, can you show your code again? | 15:33 | |
cale2 | my @newborns.push(0) for ^(%classified<adults>.elems // [] * $growth-rate); | ||
timotimo | yeah, you've got a precedence problem | ||
cale2 | I wrapped it in parens and still didn't work | ||
timotimo | and your // [] is in the wrong spot | ||
i told you you need to put (the thing // []).elems | 15:34 | ||
not the thing.elems // [] | |||
cale2 | ah | ||
timotimo | we may want to host a golly server on p6c :) | ||
cale2 | WORKS | ||
IOninja | What's a golly? | ||
timotimo | gobby* | ||
golly is the cellular automaton program | |||
gobby is the multi-user simultaneous text editor | |||
IOninja | Ah :) | 15:35 | |
timotimo | i bet we can gte camelia or committable in there as a chatbot as well | ||
and give it special commands like "camelia: line 10-15" or "camelia: run" | |||
BBL | |||
IOninja | star: use LWP::Simple; use nqp; nqp::bindattr((my $title), Scalar, q|$!whence|, { LWP::Simple.get($title).match: /"<title>" (.+?) "</title>"/; $title = ~$/[0]}); $title = "perl6.party"; say $title | 15:36 | |
camelia | star-m 2016.10: OUTPUT«Welcome - Perl 6 Party» | ||
IOninja | :} | ||
Hm, you can rebind the whence... Cheaper Proxy? | 15:37 | ||
jnthn | Please do not encourage use of this outside of CORE.setting. We will quite likely want to kill it off at some point | 15:40 | |
araraloren | What is *whence* ? | ||
jnthn | And replace it with something the various optimizers can reason about | ||
15:40
llfourn joined
|
|||
IOninja | star: use LWP::Simple; use nqp; nqp::bindattr((my $title), Scalar, q|$!whence|, { LWP::Simple.get($title).match: /"<title>" (.+?) "</title>"/; $title = ~$/[0]; nqp::bindattr($title, Scalar, q|$!whence|, &?BLOCK) }); say $title; $title = "perl6.party"; say $title; $title = "brrt-to-the-future.blogspot.com/201...ate.html"; say $title | 15:41 | |
camelia | star-m 2016.10: OUTPUT«(Any)Welcome - Perl 6 Partybrrt to the future: Register Allocator Update» | ||
araraloren | It's not recommend to do that. | ||
IOninja | Haha | ||
araraloren: whence is a professional secret :) | |||
jnthn | m: my %h; my $a := %h<b>; say %h.keys; $a = 42; say %h.keys | ||
camelia | rakudo-moar 4b85db: OUTPUT«()(b)» | ||
jnthn | It's the mechanism we currently use to make things like that work. | 15:42 | |
15:42
eroux left
|
|||
jnthn | (Which will, of course, continue to work, but the current mechanism is costly.) | 15:43 | |
15:43
kjk joined
|
|||
[Coke] | IOninja: sharing the reifier is an intended consequence of clone, or a side effect of rakudo's implementation? | 15:43 | |
Geth | doc: 02c0ff3782 | (Will "Coke" Coleda)++ | util/extract-examples.p6 fix typo |
15:45 | |
doc: 4f640536f9 | (Will "Coke" Coleda)++ | 2 files test examples in doc/Type/IO/ArgFiles.pod6 |
|||
doc: 10106249be | (Will "Coke" Coleda)++ | xt/words.pws learn new words |
|||
15:45
llfourn left
|
|||
IOninja | [Coke]: mmm.. side-effect that we're aware of, I guess. | 15:46 | |
I don't think they should share anything, but timotimo pointed out that they're then not really clones. | 15:47 | ||
timotimo | well, when you $a = [@b], you're not explicitly saying "i want a copy, please" | ||
i think @b[] would definitely express that | |||
IOninja | timotimo: oh, well, that was just the example of .clone implementation 'cause llfourn proposed it and all the discussion I said was about the behaviour of .clone | 15:48 | |
timotimo | oh | 15:49 | |
15:49
sufrostico left
|
|||
IOninja | m: my @a = 1, {rand} ... $++ < 10; my @b = @a.clone; say @a[^3]; say @b[^3] | 15:50 | |
camelia | rakudo-moar 4b85db: OUTPUT«(1 (Any) (Any))(1 (Any) (Any))» | ||
araraloren | It's a shadow copy. | 15:51 | |
timotimo | copy on black instead of copy on white? | 15:52 | |
IOninja | Sorry, got distracted here.... | 15:53 | |
(by someone :) I don't have ADHD) | 15:54 | ||
m: my @a = lazy 1, {rand} ... $++ > 10; my @b = @a.clone; say @a[^3]; say @b[^3] | |||
camelia | rakudo-moar 4b85db: OUTPUT«(1 0.471505249405541 0.984319991320413)(1 0.471505249405541 0.984319991320413)» | ||
IOninja | so what I was gonna say ^ here you get the same values in the clone. If reifier is not shared then you'll either get the same values OR different values depending on whether the array was already reified berfore the clone | ||
So the shareage makes sense to me. It's the race coditions that are a bit LTA. | 15:55 | ||
Geth | doc: a634443cad | (Tom Browder)++ | doc/Language/regexes.pod6 tweak comments |
||
IOninja | [Coke]: so... maybe more discussion of this is needed. But how? :) | 15:56 | |
FWIW I did add an explict test for shareage | |||
[Coke] | IOninja: was just curious. seems to be a reasonable thing for clone to do. | ||
IOninja | github.com/perl6/roast/blob/master....t#L37-L39 | ||
OK | 15:57 | ||
Geth | doc: 116c879972 | (Will "Coke" Coleda)++ | doc/Language/regexes.pod6 remove trailing whitespace; |
15:59 | |
16:00
ChoHag joined
|
|||
[Coke] | (docs) regarding our example testing; we cheat by wrapping everything in a class - some things cannot be run inside a class (like use lib) - should we force the examples to include a class {} around them in the docs? | 16:00 | |
16:00
eroux joined
|
|||
[Coke] | (the one that need it) | 16:00 | |
*ones | |||
16:02
cdg joined
|
|||
Geth | doc: 274c6d6d5f | (Will "Coke" Coleda)++ | 2 files test examples in doc/Programs/00-running.pod6 (... which are for now all skipped) |
16:04 | |
16:05
llfourn joined
|
|||
gfldex | [Coke]: the example extractor was never meant to provide complete testing, however sena_kun is working on that problem | 16:06 | |
sena_kun | [Coke], github.com/perl6/doc/blob/274c6d6d...d6#L18-L49 - shouldn't it be a table, not a code? | ||
Geth | doc: 93a4b37b70 | (Will "Coke" Coleda)++ | 2 files test examples in doc/Programs/01-debugging.pod6 |
16:07 | |
mspo | TimToady: www.infoq.com/presentations/Simple-Made-Easy isn't this intro more your style? :) | ||
16:08
kigai joined
|
|||
mspo | anyway that video + slides format is pretty nice | 16:08 | |
[Coke] | gfldex: I am also working on the problem. | ||
16:08
Ven left
|
|||
gfldex | brilliant, we may end up with two solutions that way \o/ | 16:08 | |
[Coke] | sena_kun: it wasn't a table before, was it? (I mean it looks like one, but it's not tagged as one.) | ||
gfldex | [Coke]: there will always be some examples we have to skip tho, so I would not spend too much time on that problem | ||
[Coke] | sena_kun: I only explicitly makred it as code so I could add :skip-test | 16:10 | |
so if you can table-ify it, that would be great. | |||
kigai | [Coke], it wasn't, but I'm sure it should be. I've met valid tables that was marked as code for some reasons(most likely by mistake or a bit of ignorance) before. | ||
[Coke], I'll do now. | |||
Ah, hexchat changed my nick. :/ | |||
[Coke] | whoever you are, thank you. :) | 16:11 | |
16:11
sena_kun left
|
|||
kjk | m: my @a = [1, 2, [3, 4], 5]; say flat @a; say @a.List; say flat @a.List; | 16:12 | |
camelia | rakudo-moar 4b85db: OUTPUT«(1 2 [3 4] 5)(1 2 [3 4] 5)(1 2 3 4 5)» | ||
timotimo | arrays put all their contents into scalar containers, which don't flatten | ||
but also, you may want to "dd" instead of "say" so that you see structure better | 16:13 | ||
kjk | m: my @a = [1, 2, [3, 4], 5]; dd flat @a; dd @a.List; dd flat @a.List; | ||
camelia | rakudo-moar 4b85db: OUTPUT«(1, 2, $[3, 4], 5).Seq(1, 2, [3, 4], 5)(1, 2, 3, 4, 5).Seq» | ||
timotimo | m: my @a = [1, 2, [3, 4], 5]; say (flat @a).perl; say @a.List.perl; say (flat @a.List).perl; | ||
camelia | rakudo-moar 4b85db: OUTPUT«(1, 2, $[3, 4], 5).Seq(1, 2, [3, 4], 5)(1, 2, 3, 4, 5).Seq» | ||
timotimo | yeah | ||
16:13
kigai left
16:14
kigai joined
|
|||
SmokeMachine | m: my $a = "bla"; $a = $a but False; dd $a; dd $a.Str; $a = $a.Str; dd $a; my $b = $a.Str; dd $b # shouldn't the last $a and $b be only Str? | 16:14 | |
camelia | rakudo-moar 4b85db: OUTPUT«Str+{<anon|34954624>} $a = "bla""bla"Str+{<anon|34954624>} $a = "bla"Str+{<anon|34954624>} $b = "bla"» | ||
kjk | timotimo: i see..., you are way ahead of me :) guess this comes up a lot, huh? thank you | ||
16:14
kigai left
|
|||
timotimo | flattening lists of lists and arrays of arrays and such is a topic that comes up at least once a month | 16:14 | |
16:15
kigai joined
|
|||
gfldex | kjk: yes it does :) gfldex.wordpress.com/2016/08/01/wa...the-flats/ | 16:16 | |
SmokeMachine | shouldn't .Str() or Str() return Str? | ||
16:16
kigai is now known as sena-kun
|
|||
SmokeMachine | m: ("bla" but role {}).Str.^name.say | 16:17 | |
camelia | rakudo-moar 4b85db: OUTPUT«Str+{<anon|34109712>}» | ||
SmokeMachine | m: ("bla" but role {}).gist.^name.say | ||
camelia | rakudo-moar 4b85db: OUTPUT«Str+{<anon|49428752>}» | ||
timotimo | but that is a Str | ||
IOninja | hehe :) | 16:18 | |
SmokeMachine | timotimo: not only Str... | ||
kjk | gfldex: thanks, will read it | ||
timotimo | but Str + anon ~~ Str | ||
SmokeMachine | m: S/(.*)/$1/g .^name.say given ("bla" but role {}) | ||
camelia | rakudo-moar 4b85db: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Unsupported use of /g; in Perl 6 please use :gat <tmp>:1------> 3S/(.*)/$1/g7⏏5 .^name.say given ("bla" but role {})» | ||
SmokeMachine | m: S:g/(.*)/$1/ .^name.say given ("bla" but role {}) | 16:19 | |
camelia | rakudo-moar 4b85db: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Malformed postfix call (only alphabetic methods may be detached)at <tmp>:1------> 3S:g/(.*)/$1/ .7⏏5^name.say given ("bla" but role {})» | ||
gfldex | SmokeMachine: Perl 6 doesn't really got a concept of a singular type. Even if it only got one type object, that just happens to be a list with one element. | ||
16:19
dwarring left
|
|||
IOninja | m: S:g/(.*)/$1/.^name.say given ("bla" but role {}) | 16:19 | |
camelia | rakudo-moar 4b85db: OUTPUT«Use of Nil in string context in code at <tmp> line 1Use of Nil in string context in code at <tmp> line 1Str» | ||
IOninja | m: S:g/(.*)/$0/.^name.say given ("bla" but role {}) | 16:20 | |
camelia | rakudo-moar 4b85db: OUTPUT«Str» | ||
IOninja | looks good to me | ||
16:20
ssotka joined
|
|||
IOninja | m: S:g/jghgjhgjhgjhghjjgh/$0/.^name.say given ("bla" but role {}) | 16:20 | |
camelia | rakudo-moar 4b85db: OUTPUT«Str+{<anon|53439680>}» | ||
IOninja | yup | 16:21 | |
SmokeMachine | gfldex: but how do I get a string from a Str? i mean if I do 42.Str I get a Str... | ||
IOninja | SmokeMachine: ~ '' | ||
SmokeMachine | m: (42 but role{}).Str.^name.say | ||
camelia | rakudo-moar 4b85db: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Whitespace required after keyword 'role'at <tmp>:1------> 3(42 but role7⏏5{}).Str.^name.say» | ||
IOninja | SmokeMachine: for your but case. But Str is already a Str. | ||
SmokeMachine | m: (42 but role {}).Str.^name.say | ||
camelia | rakudo-moar 4b85db: OUTPUT«Str» | ||
SmokeMachine | m: (~("bla" but role {})).^name.say | 16:22 | |
camelia | rakudo-moar 4b85db: OUTPUT«Str+{<anon|57760016>}» | ||
IOninja | m: say (~("bla" but role {})) ~~ Str | ||
camelia | rakudo-moar 4b85db: OUTPUT«True» | ||
gfldex | SmokeMachine: you can't handle raw objects, you always talk to some interface. The typiness is lost when the VM crosses the boundary to native libs | 16:23 | |
IOninja | m: (''~("bla" but role {})).^name.say | ||
camelia | rakudo-moar 4b85db: OUTPUT«Str» | ||
SmokeMachine | m: ("bla" but role {}).Str === "bla" | ||
camelia | rakudo-moar 4b85db: OUTPUT«WARNINGS for <tmp>:Useless use of "===" in expression ".Str === \"bla\"" in sink context (line 1)» | ||
SmokeMachine | m: say ("bla" but role {}).Str === "bla" | ||
camelia | rakudo-moar 4b85db: OUTPUT«False» | ||
SmokeMachine | m: say "bla" === "bla" | 16:24 | |
camelia | rakudo-moar 4b85db: OUTPUT«True» | ||
16:24
snowkiss21 left
|
|||
IOninja | SmokeMachine: what actual problem are you trying to solve? | 16:24 | |
16:24
Actualeyes left
16:26
llfourn left
|
|||
SmokeMachine | IOninja: I'm doing for @funcs -> &func { $word = fund($word) }; and fund may return $word but False; and Im getting: | 16:26 | |
Str+{<anon|140262140200064>}+{<anon|140262140200336>}+{<anon|140262140200608>}+{<anon|140262140200880>}+{<anon|140262140201152>}+{<anon|140262140201424>}+{<anon|140262140201696>}+{<anon|140262140201968>}+{<anon|140262140202240>}+{<anon|140262140202512>}+{<anon|140262140202784>} $a = "bla" | |||
16:27
pierrot left
|
|||
IOninja | hehe | 16:27 | |
SmokeMachine | this: glot.io/snippets/en62c3a2jh | ||
IOninja | Well, that's the output of a non-Perl6 debug functions isn't it? | ||
SmokeMachine | yes... dd... | 16:28 | |
16:28
Actualeyes joined
|
|||
IOninja doesn't see a problem | 16:28 | ||
Stop mixing it a ton of roles for no reason :) | |||
SmokeMachine | :( | 16:29 | |
Geth | doc: 6e59f1d728 | (Tom Browder)++ | doc/Language/control.pod6 another stab at describing "when" |
||
16:29
devmikey joined
|
|||
IOninja | SmokeMachine: but as I showed, use ~ '' if you want to get rid of all the mixins | 16:30 | |
m: (''~("bla" but role {})).^name.say | |||
camelia | rakudo-moar 4b85db: OUTPUT«Str» | ||
16:30
pierrot joined
|
|||
tbrowder | .tell timotimo please look at "when" doc commit | 16:30 | |
yoleaux | tbrowder: I'll pass your message to timotimo. | ||
IOninja | .Str does return a Str type. I don't see a problem with current behaviour. | ||
SmokeMachine | IOninja: thanks... (IMHO it should return a "only" Str... but its only my opinion...) | 16:32 | |
jnthn | Coercion methods returning a subtype is fine | 16:33 | |
IOninja | It's not even a subtype, just the type with a role mixed in. | ||
16:33
kalkin- left
|
|||
gfldex | tbrowder: while you are on it `when` defaults to `$_ ~~` while `if` doesnt. | 16:33 | |
jnthn | IOninja: That's how mixins work: they create a subtype, compose the role into it, and then turn the object into the subtype :) | 16:34 | |
IOninja | Ah | ||
Cool. | |||
sena-kun | [Coke], don't forget that =begin/=for code directives should be on the same indendation level as the actual code, otherwise you'll get unnecessary indentation. | 16:35 | |
I don't know is it bug or feature. | 16:36 | ||
gfldex | sena-kun: that's a bug | ||
16:37
itcharlie joined,
hoelzro_ left,
hoelzro joined
|
|||
sena-kun | gfldex, is it a known bug? | 16:37 | |
gfldex | yes | ||
sena-kun | ah, okay than. | ||
16:38
araraloren left
|
|||
SmokeMachine | does any one know why Im getting the error "Use of uninitialized value <element> of type Any in string context\nAny of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block at /tmp/330122387/lib/RSLP/Rule.pm6 (RSLP::Rule) line 18" here? glot.io/snippets/en62c3a2jh | 16:38 | |
IOninja | It's a warning not an error. | 16:39 | |
SmokeMachine | yes, sorry, I mean warning... | 16:40 | |
perlpilot | SmokeMachine: because not all of your rules have exception set | ||
SmokeMachine | hum! exceptions!!! | 16:41 | |
I was looking at line 18! | |||
perlpilot: thanks! | |||
jnthn | Line numbers are added at statement level at the moment, so multi-line statements can sometimes be a bit confusing | 16:42 | |
Sometime to try and fix at some point :) | |||
*something | |||
perlpilot | SmokeMachine: also, it looks like you're using both "exception" and "exceptions" | ||
16:42
snowkiss21 joined
|
|||
sena-kun | btw, I'll merge github.com/perl6/doc/pull/1192 as, it seems, nobody is against and we planned it for a while. After the merge github.com/perl6/doc/issues/776 will be closed. | 16:43 | |
SmokeMachine | the one on the plural form is to receive a array and than I transform that array into a Junction on the not plural form... | ||
perlpilot | ok. I wasn't sure as I didn't look at the code in detail. | ||
16:46
gregf_ joined
16:56
benjibenji joined
|
|||
IOninja | huh "The RT System itself - Status changed from 'rejected' to 'open'": rt.perl.org/Ticket/Display.html?id...et-history | 16:57 | |
wonder what happened | |||
16:58
abraxxa left
|
|||
IOninja | Getting sentient and trolly... | 16:58 | |
But I showed that RT System who's boss | |||
Geth | doc: f68df26403 | (Tom Browder)++ | doc/Language/control.pod6 tweak wording, correct format errors |
||
16:59
devmikey left
17:03
benjibenji left
|
|||
Geth | doc: 43756336e7 | (Tom Browder)++ | doc/Language/control.pod6 add default use of $_ to "when" |
17:05 | |
tbrowder | gfldex: okay... | ||
17:13
zakharyas left
|
|||
Geth | doc: 46ffe0d035 | Altai-man++ | CONTRIBUTING.md Explain examples output style |
17:14 | |
doc: a7f74fe9f9 | Altai-man++ | CONTRIBUTING.md Merge pull request #1192 from perl6/contributing-examples-style Contributing examples output style explanation |
|||
17:14
zakharyas joined
|
|||
TimToady | m: my @a = <one two three>; my $b = [@a,]; @a.push("four"); say $b; # [@a] copies by one-arg rule | 17:16 | |
camelia | rakudo-moar 4b85db: OUTPUT«[[one two three four]]» | ||
TimToady | oops, mischan | 17:17 | |
17:21
llfourn joined
17:22
khw joined
17:26
llfourn left
17:28
dakkar left
17:37
zakharyas left
|
|||
IOninja | m: my @a = <one two three>; my @b = @a,; @a = @b,; @a.push("four"); say @b; say @a | 17:40 | |
camelia | rakudo-moar 4b85db: OUTPUT«(\Array_66586808 = [[Array_66586808 four]])(\Array_66586920 = [[Array_66586920] four])» | ||
IOninja | hehe | ||
m: my @a = <one two three>; my @b = @a,; @a = @b,; @a.push("four"); say @b.perl; say @a.perl | |||
camelia | rakudo-moar 4b85db: OUTPUT«(my \Array_61540616 = [[Array_61540616, "four"],])(my \Array_61541120 = [[Array_61541120,], "four"])» | ||
IOninja | m: my @a = <one two three>; @a = @a,; @a.perl.EVAL.say | 17:41 | |
camelia | rakudo-moar 4b85db: OUTPUT«[(Mu)]» | ||
IOninja | .oO( close 'nuf... ) |
||
17:43
agentzh joined
|
|||
IOninja | m: q|(my \Array_60715336 = [{Array_60715336}(),])|.EVAL.say | 17:44 | |
camelia | rakudo-moar 4b85db: OUTPUT«[(Mu)]» | ||
IOninja | m: q|(my @Array_60715336 = [{@Array_60715336}(),])|.EVAL.say | 17:45 | |
camelia | rakudo-moar 4b85db: OUTPUT«(\Array_38592536 = [Array_38592536])» | ||
IOninja | How come @foo works but \foo doesn't above? | ||
Or... how come there's an error about trying to initialize itself with the @foo but not with \foo | |||
m: q|(my @Array_60715336 = [42, {@Array_60715336}()[0],])|.EVAL.say | 17:47 | ||
camelia | rakudo-moar 4b85db: OUTPUT«[42 (Any)]» | ||
IOninja | Ahhh. 'cause the @foo already got a container | ||
m: q|((my @Array_62604976) = 42, @Array_62604976,)|.EVAL[1][1][1][0].say | 17:52 | ||
camelia | rakudo-moar 4b85db: OUTPUT«42» | ||
IOninja | \o/ | ||
17:55
ChoHag left
17:57
ChoHag joined
17:58
faraco left
18:01
lizmat_ joined
18:02
sufrostico joined
18:03
lizmat left
18:04
girafe joined
|
|||
IOninja | hm, what other thing can you make circular that isn't an Array or a Hash? | 18:12 | |
18:13
jfuller left
|
|||
gfldex | IOninja: maybe a Pair? | 18:15 | |
ugexe | m: my \a = \a; say a | 18:16 | |
camelia | rakudo-moar 4b85db: OUTPUT«Cannot call method 'perl' on a null object in block <unit> at <tmp> line 1» | ||
IOninja | hah | ||
m: my $p = :42a; $p.value = $p; say 4p | 18:17 | ||
camelia | rakudo-moar 4b85db: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Confusedat <tmp>:1------> 3my $p = :42a; $p.value = $p; say 47⏏5p» | ||
IOninja | m: my $p = :42a; $p.value = $p; say $p | ||
camelia | rakudo-moar 4b85db: OUTPUT«Cannot modify an immutable Int in block <unit> at <tmp> line 1» | ||
IOninja | m: my $p = :42a; $p.value := $p; say $p | ||
camelia | rakudo-moar 4b85db: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Cannot use bind operator with this left-hand sideat <tmp>:1------> 3my $p = :42a; $p.value := $p7⏏5; say $p» | ||
IOninja | gfldex: how can it be done? | ||
oh | |||
m: my $p; $p = :a($p); say $p | |||
camelia | rakudo-moar 4b85db: OUTPUT«(\Pair_57833856 = a => Pair_57833856)» | ||
IOninja | cool | ||
m: my $p; $p = :a($p); say $p.perl.EVAL<a> | 18:18 | ||
camelia | rakudo-moar 4b85db: OUTPUT«(Mu)» | ||
gfldex | m: class C { has $.c is rw }; my $c = C.new; $c.c = $c; dd $c; | ||
camelia | rakudo-moar 4b85db: OUTPUT«C $c = (my \C_31805024 = C.new(c => C_31805024))» | ||
IOninja | hmmm | ||
gfldex | enum may work too using the MOP | ||
in fact, pretty much anything might work using the MOP | |||
IOninja | m: q|((my $Pair_57833856) = a => $Pair_57833856)|.EVAL<a> | 18:19 | |
camelia | ( no output ) | ||
IOninja | m: q|((my $Pair_57833856) = a => $Pair_57833856)|.EVAL<a>.say | ||
camelia | rakudo-moar 4b85db: OUTPUT«(\Pair_50370960 = a => Pair_50370960)» | ||
IOninja | m: q|((my $Pair_57833856) = a => $Pair_57833856)|.EVAL<a><a><a>.say | ||
camelia | rakudo-moar 4b85db: OUTPUT«(\Pair_36893024 = a => Pair_36893024)» | ||
gfldex | it's recursions all the way down | ||
IOninja | Well, I have a fix for Array and Hash. Not sure about the rest though 'cause of the container stuff | 18:20 | |
you can't (my \foo) = [foo,]; | |||
oohh | |||
m: q|((my $Pair_57833856) = a => $Pair_57833856<>)|.EVAL<a><a><a>.say | |||
camelia | rakudo-moar 4b85db: OUTPUT«(Any)» | ||
IOninja | hm nevermind. I thought <> thing deconted | ||
18:22
llfourn joined
18:23
_kristian joined
18:27
llfourn left
18:40
espadrine_ left
19:01
moritz joined
|
|||
Geth | doc: 30380fd806 | (Will "Coke" Coleda)++ | doc/Language/control.pod6 remove trailing whitespace |
19:04 | |
19:09
AlexDaniel joined
19:12
cdg left
19:16
itcharlie left
19:17
cdg joined
19:18
snowkiss21 left
19:19
sufrostico left
19:21
llfourn joined
19:22
cdg left
19:26
llfourn left
19:27
darutoko left,
raiph left,
sena-kun left
19:30
espadrine joined,
eliasr left
19:40
agentzh left
19:44
agentzh joined
|
|||
AlexDaniel | IOninja: re “what other thing can you make circular that isn't an Array or a Hash?” | 19:45 | |
m: my $x := (my $y := $x); say $x.WHAT | |||
camelia | rakudo-moar 67aeef: OUTPUT«(Mu)» | ||
AlexDaniel | (RT #127254) | 19:46 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127254 | ||
AlexDaniel | bisect: my $x := (my $y := $x); say $x.WHAT | ||
bisectable6 | AlexDaniel, Bisecting by exit signal (old=2015.12 new=67aeefa). Old exit signal: 11 (SIGSEGV) | ||
AlexDaniel, bisect log: gist.github.com/fefb62ce77d582687e...c0df188465 | |||
AlexDaniel, (2016-04-13) github.com/rakudo/rakudo/commit/ae...55297757a3 | |||
19:47
ufobat left
|
|||
IOninja | AlexDaniel: I don't get what's circular about it. You're just replacing the container with it's self are you not? | 19:52 | |
itself | 19:53 | ||
timotimo | <> on a scalar will decont, won't it? | ||
yoleaux | 16:30Z <tbrowder> timotimo: please look at "when" doc commit | ||
IOninja | m: my $x := (my $y := $x); $y = 42; say $x | 19:54 | |
camelia | rakudo-moar 67aeef: OUTPUT«Cannot assign to an immutable value in block <unit> at <tmp> line 1» | ||
IOninja | timotimo: yeah, it does. | ||
AlexDaniel: actually, you're binding a Mu to it even, innit? | |||
AlexDaniel | IOninja: well, as I read it, $y should be bound to $x while $x is bound to $y… | 19:55 | |
19:55
eroux left
|
|||
IOninja | m: ((my $P) = a => $P<>); say $P | 19:55 | |
camelia | rakudo-moar 67aeef: OUTPUT«a => (Any)» | ||
AlexDaniel | m: my $x := (my $y = 5); $y = 42; say $x; say $y | ||
camelia | rakudo-moar 67aeef: OUTPUT«4242» | ||
AlexDaniel | m: my $x := (my $y = 5); $x = 42; say $x; say $y | ||
camelia | rakudo-moar 67aeef: OUTPUT«4242» | ||
IOninja | timotimo: ^ but in this case it's done before $P got any real value, so you get an Any there | ||
That's what I meant back when I first thought <> was broke above | 19:56 | ||
AlexDaniel | IOninja: and no, that's not Mu. That's null | ||
m: my $x := (my $y := $x); say $x.^name | 19:57 | ||
camelia | rakudo-moar 67aeef: OUTPUT«VMNull» | ||
AlexDaniel | m: Mu.^name | ||
camelia | ( no output ) | ||
AlexDaniel | m: say Mu.^name | ||
camelia | rakudo-moar 67aeef: OUTPUT«Mu» | ||
IOninja | m: my $x; $x := (my $y := $x); $y = 42; say $x; $x = 72; say $x | ||
camelia | rakudo-moar 67aeef: OUTPUT«4272» | ||
IOninja | Ah, OK. | ||
AlexDaniel: I think that should really complain about using the variable to initialize itself | 19:58 | ||
m: my @a = @a; # like this one does | |||
camelia | rakudo-moar 67aeef: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Cannot use variable @a in declaration to initialize itselfat <tmp>:1------> 3my @a = @7⏏5a; # like this one does expecting any of: term» | ||
IOninja | And then you don't get any VMNulls | ||
m: my \x := (my $y := x); say x.^name | |||
camelia | rakudo-moar 67aeef: OUTPUT«VMNull» | ||
AlexDaniel | IOninja: yes, it should probably be disallowed | ||
IOninja | Same here | ||
19:58
andrzejku_ joined
|
|||
AlexDaniel | since when it started giving a warning by the way… | 19:59 | |
andrzejku_ | hey | ||
AlexDaniel | not even a warning though | ||
andrzejku_ | what do you know about Perl6 and IoT? | ||
AlexDaniel | bisect: my @a = @a | ||
bisectable6 | AlexDaniel, On both starting points (old=2015.12 new=67aeefa) the exit code is 1 and the output is identical as well | ||
AlexDaniel, Output on both points: 04===SORRY!04=== Error while compiling /tmp/wax1dYBxM9Cannot use variable @a in declaration to initialize itselfat /tmp/wax1dYBxM9:1------> 03my @a = @08⏏04a expecting any of: term | |||
AlexDaniel | c: all my @a = @a | ||
committable6 | AlexDaniel, gist.github.com/d57b425c2542275aab...dd8461b4e5 | ||
IOninja | andrzejku_: are you hunting for the vaugest of questions? :) | 20:00 | |
AlexDaniel | bisect: old=2015.07 my @a = @a | ||
bisectable6 | AlexDaniel, Bisecting by exit code (old=2015.07 new=67aeefa). Old exit code: 0 | ||
AlexDaniel, bisect log: gist.github.com/05a3d1105ed35d4624...815876f48d | |||
AlexDaniel, (2015-08-17) github.com/rakudo/rakudo/commit/37...ecd97dc7d5 | |||
IOninja | vaguest even\ | ||
andrzejku_ | IOninja, no | ||
look here www.linux.com/news/event/elcna/201...approaches | 20:01 | ||
IOninja | tl;dr | 20:02 | |
20:03
bjz joined
|
|||
AlexDaniel | m: my @a = @::a, 25; say @a | 20:03 | |
camelia | rakudo-moar 67aeef: OUTPUT«(\Array_53743872 = [Array_53743872 25])» | ||
AlexDaniel | um, why was it disallowed, by the way? | 20:04 | |
DrForr | Perl 6 has been compiled to Android and ARM, at the very least. What are you asking about specifically, andrzejku? | ||
IOninja | m: my @a = @::a, 25; say @a.perl.EVAL[0][0][0][1] | ||
camelia | rakudo-moar 67aeef: OUTPUT«25» | ||
andrzejku_ | I am asking if someone started to play with it | ||
IOninja | andrzejku_: why? | ||
AlexDaniel | m: my $a := $::a; say $a | 20:05 | |
camelia | rakudo-moar 67aeef: OUTPUT«(Mu)» | ||
andrzejku_ | IOninja, because IoT every language got its own support for IoT? | ||
AlexDaniel | m: my $a := $::a; say $a.^name | ||
camelia | rakudo-moar 67aeef: OUTPUT«VMNull» | ||
AlexDaniel | so nothing has changed | ||
c: 3754356d8e my $a := $::a; say $a.^name | |||
committable6 | AlexDaniel, ¦«3754356»: «exit signal = SIGSEGV (11)» | ||
andrzejku_ | IOninja, artoo.io/ | ||
AlexDaniel | yes, the fix didn't fix anything | ||
andrzejku_ | even ruby | ||
AlexDaniel | it's jnthn's work that resolved the underlying segv problem | ||
IOninja | andrzejku_: but why are you asking about it? | ||
andrzejku_ | IOninja, I am curious | 20:06 | |
AlexDaniel | and the patch actually broke a feature? | ||
:S | |||
IOninja | AlexDaniel: hm, you're right, seems at least @ and % can be used to init selfs | ||
20:06
jraglin joined
|
|||
IOninja | m: my %h = :b( | 20:06 | |
camelia | rakudo-moar 67aeef: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Unable to parse expression in parenthesized expression; couldn't find final ')' at <tmp>:1------> 3my %h = :b(7⏏5<EOL>» | ||
AlexDaniel | I see no reason why I cannot have a self-referential array | ||
IOninja | m: my %h = :b(%::h), :42a; say %h<b><b><a> | 20:07 | |
camelia | rakudo-moar 67aeef: OUTPUT«42» | ||
AlexDaniel | m: my @a = 25, @a | ||
camelia | rakudo-moar 67aeef: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Cannot use variable @a in declaration to initialize itselfat <tmp>:1------> 3my @a = 25, @7⏏5a expecting any of: term» | ||
DrForr | andrzejku_: Support for IoT doesn't magically come into existence for any language. It needs people interested in it and working on it. | ||
AlexDaniel | like wtf, why not | ||
IOninja | AlexDaniel: so... you're submitting a patch then :) | ||
AlexDaniel | sure | ||
IOninja | m: my $x = $x | ||
camelia | rakudo-moar 67aeef: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Cannot use variable $x in declaration to initialize itselfat <tmp>:1------> 3my $x = $7⏏5x expecting any of: term» | ||
AlexDaniel | I can do that | ||
m: my $x = $::x | |||
camelia | ( no output ) | ||
IOninja | AlexDaniel++ | ||
andrzejku_ | ok | ||
IOninja | m: my $x = $::x; say $x.^name | ||
camelia | rakudo-moar 67aeef: OUTPUT«Any» | ||
andrzejku_ | but do you think if for example I would start creating IoT | 20:08 | |
and after a few month | |||
IOninja | AlexDaniel: Well, with $x I guess it don't make sense, eh? And with \foo | ||
andrzejku_ | people start to use it | ||
that's a question if Perl6 is only for scripts and web | |||
AlexDaniel | the revert might open some other ways to create VMNulls, but you can do it anyway if you really try | ||
andrzejku_ | I don't know | ||
AlexDaniel | so it falls under DIHWIDT | ||
DrForr | andrzejku_: You're more than welcome to put your modules up on GitHub and we'll add them to modules.perl6.org. | ||
andrzejku_ | okay | 20:09 | |
AlexDaniel | IOninja: yeah, for scalars maybe not | ||
andrzejku_ | probably the best solution should be to use Perlix as embedded for IoT | ||
AlexDaniel | IOninja: actually forget what I've just said | ||
DrForr | andrzejku_: Perl6 is not just for "scripting and web." There are GUI libraries, I was just seeing talk about people optimizing games using SDL. | ||
AlexDaniel | m: my $a = ($::a, 25) | ||
camelia | ( no output ) | ||
AlexDaniel | m: my $a = ($::a, 25); say $a | ||
camelia | rakudo-moar 67aeef: OUTPUT«(\List_73050816 = (List_73050816 25))» | ||
IOninja | hehe cool | ||
AlexDaniel | IOninja: scalars are alright | ||
andrzejku_ | okay | ||
IOninja | m: my \a = (a, 25); say a | 20:10 | |
camelia | rakudo-moar 67aeef: OUTPUT«((Mu) 25)» | ||
IOninja | Funny that for the case that actually doesn't work it doesn' | ||
t complain :") | |||
andrzejku_ | DrForr, I am just afraid that many good Perl developers will die soon | ||
and we need to code more | |||
DrForr | andrzejku_: Perlix was a joke that someone may have carried a bit far. If you want IoT support for Perl 6, whatever that means, it's not going to happen unless somoene builds it. | 20:11 | |
andrzejku_ | to keep Perl alive | ||
DrForr | andrzejku_: I work in an office with 40+ Perl hackers, all roughly 22-25 years old. | ||
IOninja is only 30 | |||
andrzejku_ | DrForr, huh so they are pretty young | 20:12 | |
DrForr | Why are you afraid of Perl developers dying? Where did you get this evidence? | ||
IOninja | I meant 17 | ||
El_Che | IOT is not the spot you want to go right now with a new language. The contraints are very... contraining | 20:13 | |
IOninja would prefer the depressing self-fullfilling profecies about "Perl Dying" and people whining about it would stay in Perl 5 land | |||
andrzejku_ | DrForr, what about people which were at the Perl creation? if Perl was started at 87' so they guy who was a new developer got in 87' 20years + 20years because we got now 2017 so they got 40years + | ||
old good perl developers are 40+ | |||
IOninja | andrzejku_: so? | 20:14 | |
andrzejku_ | this is the age when programmers going die | ||
El_Che | andrzejku_: non dynamic languages are clearly in the advantage there | ||
IOninja | andrzejku_: what does that have to do with anything? | ||
20:14
jraglin left
|
|||
andrzejku_ | I watch once the Netscape programmers they look unhealthy as fuck | 20:14 | |
IOninja | andrzejku_: what does that have to do with a language... and Perl 6 especially? | 20:15 | |
andrzejku_ | IOninja, old perlers will die and there no many young | ||
though | |||
IOninja | andrzejku_: what do you base this data on? | 20:16 | |
DrForr | andrzejku_: Perl really started to get adopted around version 5 in the late 90s, actually. | ||
20:16
pmurias joined
|
|||
IOninja | andrzejku_: what's your proof? | 20:16 | |
andrzejku_ | IOninja, I just calculated this above | ||
perlpilot | andrzejku_: your "calculation" is anecdote, not proof | 20:17 | |
andrzejku_ | there no proof I just calculated and I am worried a bit | ||
IOninja | andrzejku_: the obvious flaw in your calculation is assuming Perl developers = Perl 6 developers = People who were programmers in '87 and no new programmers were birthed ever since | ||
DrForr | andrzejku_: And based it on the completly fallacious notion that you have to start with perl 1. LIke I said, most poeple starteed using it around verison 5. | ||
IOninja | andrzejku_: it's asinine | ||
DrForr | *version | ||
IOninja | andrzejku_: Here. 16 year olds presenting about Perl 6: medium.com/hypetonic/perl-6-the-mu....utv4acifm | ||
Your argument is invalid. | |||
andrzejku_ | ya I don't say that I am right | 20:20 | |
but I am worried | |||
DrForr | You're making up data and then presenting it as a strawman. | ||
20:21
agentzh left
|
|||
andrzejku_ | DrForr, :) | 20:21 | |
DrForr | Why be worried if you don't even know if your data is right? Confirm it first. | ||
andrzejku_ | okay okay nevermind | ||
perlpilot | Unless being worried motivates you to do something to help the Perl community ... ;) | ||
andrzejku_ | perlpilot, yes that's true | 20:22 | |
perlpilot, that's my motivation though | |||
20:22
llfourn joined
|
|||
IOninja | I'd suggest you pick a different one. | 20:22 | |
DrForr | At least one that's not so easy to drive holes through :) | 20:23 | |
IOninja | Write stuff you enjoy writing. So you'd be interested in maintaining it and provide support for it. | 20:24 | |
Writing stuff under the delusion that if you just write X modules somehow users will happen will just leave piles of bitrot. | |||
andrzejku_ | IOninja, sure okay | ||
IOninja | Exhibit A: metacpan.org/release/WebService-Cryptsy | ||
Note the note: metacpan.org/pod/WebService::Crypt...NANCE-NOTE | 20:25 | ||
perlpilot | andrzejku_: For play, adventofcode.com is nice. I've been off and on using Perl 6 to solve those problems. | 20:26 | |
20:26
AlexDaniel left
|
|||
perlpilot | andrzejku_: the only ones (that I remember) that give Perl 6 problems are the ones where you need to compute many MD5 hashes. Rakudo is a bit slow at that. | 20:27 | |
andrzejku_ | perlpilot, I prefer exercism | ||
20:27
llfourn left
|
|||
IOninja | perlpilot: but... use moar coares \o/ | 20:28 | |
Perl 6 is 2,000% faster by adding two words of code: tpm2016-2.zoffix.com/#/16 | 20:29 | ||
tpm2016-2.zoffix.com/#/15 | 20:30 | ||
perlpilot | yeah, my next bit of play with that might be doing that. | ||
IOninja | :) | ||
perlpilot | and/or using NativeCall to hack in a C version of MD5 | ||
El_Che | IOninja: are the words "Abra Cadabra"? :) | 20:31 | |
DrForr | I thought it was Avada ... | ||
IOninja | El_Che: no. start and await. I'm not even making the numbers up. Though I did use a 32-core box :) | 20:32 | |
20:32
TEttinger joined
|
|||
DrForr | I thought it was Avada Kadavra or something like that. | 20:32 | |
20:33
agentzh joined
|
|||
IOninja | en.wikipedia.org/wiki/Abracadabra | 20:33 | |
El_Che | DrForr: "I create as I speak". Transliterated from Aramic -> Hebrew, so it will have many spellings :) | ||
and you're suppose to read it with a Spanish accent | 20:34 | ||
:) | |||
ah, tha avada thing is a harry potter thing? | 20:35 | ||
DrForr | I gave up around the Gobbledy of Gook :) | ||
20:37
AlexDaniel joined
|
|||
AlexDaniel | “I am just afraid that many good Perl developers will die soon” well, heh… There are many young developers, don't worry | 20:38 | |
El_Che | “I am just afraid that many good Perl developers will die soon" <-- sounds like a threat :) | ||
DrForr | "Nice language, shame if something were to *happen* to it." | 20:39 | |
IOninja | :) | ||
tony-o | haha | ||
El_Che | "Make it faster or else" | ||
AlexDaniel | I also loved this: “old good perl developers are 40+, this is the age when programmers going die” | 20:40 | |
20:41
agentzh left
|
|||
AlexDaniel | that's a very optimistic view on the life expectancy | 20:41 | |
IOninja | m: my $p = :a($::p); say $p | ||
camelia | rakudo-moar 67aeef: OUTPUT«(\Pair_66335072 = a => Pair_66335072)» | ||
DrForr | Based on a sample size of seeing a few people in the 90s. | ||
IOninja | AlexDaniel: ^ another one that don't need the using-to-init-self error | 20:42 | |
perlpilot | Have Perl programmers in their 40s been dying off and I just didn't notice? ;-) | ||
AlexDaniel | IOninja: yea, the error has to go | ||
[Coke] | (potter) imgur.com/gallery/rgskT | ||
geekosaur didn't notice dying within the last 10ish years... | 20:46 | ||
DrForr | I know of 2 at least, but I'm not feeding the fire. | 20:47 | |
IOninja | m: my @a; my $p = :a(@a); @a = @a, $p; $p.perl.EVAL.perl.say | ||
camelia | rakudo-moar 67aeef: OUTPUT«5===SORRY!5=== Error while compiling /home/camelia/EVAL_0Term definition requires an initializerat /home/camelia/EVAL_0:1------> 3((my \Pair_495672327⏏5) = :a(((my @Array_49216448) = [@Array_4» | ||
IOninja | whoooops | ||
I broke it | |||
AlexDaniel | geekosaur: well, heh, then you're not a *good* Perl developer :P | ||
IOninja | m: my $p = :a($::p); $p.perl.EVAL.say | 20:48 | |
camelia | rakudo-moar 67aeef: OUTPUT«5===SORRY!5=== Error while compiling /home/camelia/EVAL_0Term definition requires an initializerat /home/camelia/EVAL_0:1------> 3((my \Pair_689514087⏏5) = :a(\Pair_68951408))» | ||
IOninja | star: my $p = :a($::p); $p.perl.EVAL.say | ||
camelia | star-m 2016.10: OUTPUT«a => (Mu)» | ||
IOninja | Well.. it's not like it worked in the past :} | ||
AlexDaniel | c: all my $p = :a($::p); $p.perl.EVAL.say | ||
who knows? :) | |||
committable6 | AlexDaniel, gist.github.com/acc9544ae2d355809c...e8530d85a8 | 20:49 | |
AlexDaniel | wait what… | ||
20:49
Actualeyes left
|
|||
AlexDaniel | ah, right! | 20:49 | |
20:50
cpage__ joined
|
|||
IOninja relocates | 20:50 | ||
20:52
cpage left,
cpage__ is now known as cpage
20:53
eliasr joined,
Rogbro joined
20:54
Actualeyes joined
|
|||
Rogbro | p6: say "ok" if " (" ~~ rx{'(´ <!after \s>} | 20:57 | |
camelia | rakudo-moar 67aeef: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Unable to parse expression in single quotes; couldn't find final "'" at <tmp>:1------> 3say "ok" if " (" ~~ rx{'(´ <!after \s>}7⏏5<EOL> expecting any of: single quotes» | ||
[Coke] | Rogbro: can't mix those types of single quotes. | 20:58 | |
AlexDaniel | u: ` | ||
unicodable6 | AlexDaniel, U+0060 GRAVE ACCENT [Sk] (`) | ||
AlexDaniel | well, that's not quite a quote… | 20:59 | |
Rogbro | p6: say "ok" if " (" ~~ rx{"(" <!after \s>} | 21:00 | |
camelia | rakudo-moar 67aeef: OUTPUT«ok» | ||
21:00
jraglin joined
|
|||
Rogbro | p6: say "ok" if " (" ~~ rx{<!after \s> "("} | 21:06 | |
camelia | ( no output ) | ||
21:07
cdg joined,
lukiramu is now known as lukaramu
|
|||
IOninja | p6: say "ok" if " (" ~~ rx{<![\s]> "("} | 21:11 | |
camelia | rakudo-moar 67aeef: OUTPUT«ok» | ||
IOninja | :( | ||
21:11
Rogbro left
21:12
sufrostico joined
|
|||
IOninja | Ah, that's for look ahead o.ly | 21:13 | |
p6: say "ok" if " (" ~~ rx{<![\s]> . "("} | 21:14 | ||
camelia | ( no output ) | ||
IOninja | \o/ | ||
21:15
cdg_ joined
21:17
jjido joined,
bjz left
21:19
cdg left
21:20
mr-foobar left
21:24
mr_ron left,
llfourn joined
21:26
mr-foobar joined
|
|||
cale2 | If a "help wanted" section gets added to perl6weekly, I was going to mention Exercism.io and Perl6Koans. Both would be great for exposure and education | 21:27 | |
21:29
llfourn left
|
|||
perlpilot | cale2: you know what's a great way to get that section added? Start doing perl6weekly ;) | 21:37 | |
21:39
Tonik left
|
|||
gfldex | cale2: blog about it and lizmat will link to it | 21:41 | |
21:41
wamba left
21:43
bjz joined
21:46
jraglin left
21:49
jraglin joined
21:53
bjz left
21:56
cdg joined
21:57
kurahaupo__ joined
21:58
skids left
21:59
cdg_ left
22:00
kurahaupo left
22:05
leah2 left
22:06
andrzejku_ left
22:10
RabidGravy left
|
|||
cale2 | Blogging is a scary thing... never tried it before. What's the best way to do it without building a whole website? | 22:10 | |
perlpilot: I could probably help with that, but I'm very out of the loop on actual development work. | 22:11 | ||
gfldex | cale2: I write it in markdown then convert it to html and paste it on WP | ||
IOninja | One of available ways is to write it in markdown and submit a PR: github.com/zoffixznet/perl6.party/...IBUTING.md | ||
If you want to post it on perl6.party. Though I imagine it's trivial to setup your own WP blog | 22:12 | ||
22:12
pyrimidine joined,
kjk left
|
|||
IOninja | And WP's prolly preferable: no PRs, edit all you want, no one mistakenly thinks I wrote the post, and I don't have to implement the multi-author bits :P | 22:14 | |
22:25
llfourn joined
|
|||
samcv | good * perl* | 22:28 | |
NeuralAnomaly, status | 22:29 | ||
NeuralAnomaly | samcv, [✘] Next release will be in 1 day and 7 hours. Since last release, there are 45 new still-open tickets (0 unreviewed and 0 blockers) and 10 unreviewed commits. See perl6.fail/release/stats for details | ||
samcv | tell me about Perl6Koans cale2 | 22:30 | |
22:30
llfourn left
|
|||
IOninja | \o | 22:30 | |
cale2 | samcv: github.com/WildYorkies/Perl6Koans I found the PerlKoans repo and it works great. It uses Test::More which is super easy to translate to Perl6. The main thing I need help with is how to translate the Perl5 packaging and command line stuff to Perl6 | 22:31 | |
I know next to nothing about Perl5, you see | 22:32 | ||
IOninja | It's pretty easy. Ignore all the line noise and look up the remaining bits via `perldoc -f function-name` and `perldoc -v '$^X'` for weird variables | 22:33 | |
...and read perldoc perlreftut and perldoc perlretut | |||
cale2 | step one is to get the PerlKoans thing to simply run with rakudo. The next step is writing content that is specifically for Perl6 language (which I can do if no one wants to help with that portion) | ||
IOninja: github.com/WildYorkies/Perl6Koans/...ns.pm6#L33 here to line 51 is an example of stuff I don't understand | 22:35 | ||
22:35
kurahaupo__ left
|
|||
IOninja | cale2: same as in Perl6; that loads a module | 22:35 | |
go to metacpan.org/pod/MODULE-NAME to view its docs | |||
AlexDaniel | I hate when you want to revert something but there are conflicts :S | 22:37 | |
cale2 | but the import is the same? what about those ! operators? $CLASS == $PACKAGE, $tb->level(2) etc etc | ||
IOninja | -> is a method call, foo->bar is foo.bar in Perl 6 | 22:38 | |
Oh, and also dereferencing op | |||
cale2: which ! operators? which line? | |||
m: $*DISTRO.is-win.say | 22:39 | ||
camelia | rakudo-moar 67aeef: OUTPUT«False» | ||
IOninja | ^ that's replacement for this line github.com/WildYorkies/Perl6Koans/...ns.pm6#L50 | ||
github.com/WildYorkies/Perl6Koans/...ns.pm6#L34 this? A while guess would be that's asking to import everything BUT those routines, but check the module's docs | 22:40 | ||
22:42
aindilis` left
|
|||
IOninja | $# thing is the last index of the array | 22:42 | |
22:42
aindilis` joined
22:43
cdg_ joined
|
|||
IOninja | kinda sad GitHub fails to highlight those correctly.. | 22:43 | |
22:44
cpage_ left
|
|||
IOninja | cale2: this entire thing is useless: github.com/WildYorkies/Perl6Koans/...6#L52-L102 | 22:45 | |
%*ENV<PERL6_TEST_DIE_ON_FAIL> = 1; will have the same effect | |||
cale2 | IOninja: but the bail sub also displays the zen messages :) | ||
22:46
cdg left
|
|||
IOninja | Oh right. | 22:46 | |
Now I remember what Koans are... | 22:47 | ||
cale2 | I don't get what `our $CLASS = __PACKAGE__;` or `$tb` do | ||
samcv | what is a Koan | 22:48 | |
IOninja | cale2: __PACKAGE__ is current package but I don't see $CLASS used anywhere | ||
22:49
pyrimidine left
|
|||
IOninja | Well, other than this line that's commented out and $tb is declared in it? github.com/WildYorkies/Perl6Koans/...ns.pm6#L38 | 22:49 | |
22:50
pyrimidine joined
|
|||
IOninja | You can ignore it, I'd think. It's to do with Test::Builder::Module stuff | 22:50 | |
cale2 | samcv: try this -> elixirkoans.io/ | ||
prob the most baller koans I've done | |||
samcv | oh so it's like testing things | 22:51 | |
IOninja | Koan is Zen stuff en.wikipedia.org/wiki/K%C5%8Dan | ||
samcv | a paradoxical anecdote or riddle, used in Zen Buddhism to demonstrate the inadequacy of logical reasoning and to provoke enlightenmen | ||
hmm | |||
22:51
telex left
|
|||
cale2 | samcv: it's a popular way for learning a language. Make the tests pass. ruby made it popular with koans and katas, naturally | 22:52 | |
samcv | m: use Test; is True, True; | ||
camelia | rakudo-moar 67aeef: OUTPUT«ok 1 - » | ||
samcv | test passed \o/ | ||
22:52
telex joined
|
|||
samcv | that sounds fun though cale2 | 22:52 | |
22:52
pmurias left
|
|||
cale2 | IOninja: github.com/WildYorkies/Perl6Koans/...ns.pm6#L37 this line. Is the Perl6 version something like `unit Class` | 22:52 | |
IOninja | cale2: looking at that file, I'd start Perl 6 version from scratch and just use a few datapoints from that file. Like bail sayings and progress max length stuff and the lightbulb | ||
samcv | what is this =pod6 tag | 22:53 | |
and perl 6 doesn't have cut | |||
IOninja | cale2: no. the P6 version would be my $foo = $?CLASS; $foo.some-method | ||
samcv | i am confused now | ||
cale2 | guys, I don't know Perl5. I'm purely guessing haha | ||
timotimo | well, =pod6 is just an acceptable tag name, just like =bananas | ||
samcv | i guess | ||
but | 22:54 | ||
IOninja | cale2: stop guessing and write in Perl 6 from scratch :) | ||
samcv | it doesn't compile | ||
22:54
pyrimidine left
|
|||
IOninja | samcv: it's Perl 5 code. | 22:54 | |
cale2 | m: use Test; is (1,2,3,4,5), (1,2,3).push: (4,5); | ||
camelia | rakudo-moar 67aeef: OUTPUT«Cannot call 'push' on an immutable 'List' in block <unit> at <tmp> line 1» | ||
cale2 | m: use Test; is [1,2,3,4,5], [1,2,3].push: (4,5); | 22:55 | |
camelia | rakudo-moar 67aeef: OUTPUT«ok 1 - » | ||
cale2 | m: use Test; is [1,2,3,4,5], [1,2,3].push: |(4,5); | ||
camelia | rakudo-moar 67aeef: OUTPUT«ok 1 - » | ||
samcv | i save all my perl 5 files with .pm6 too :P | ||
IOninja | m: use Test; &is.wrap: -> | { callsame() or say "you suck at koans, bruh" }; is 42, 5, "waaat" | 22:56 | |
camelia | rakudo-moar 67aeef: OUTPUT«not ok 1 - waaat# Failed test 'waaat'# at gen/moar/Metamodel.nqp line 3907# expected: '5'# got: '42'you suck at koans, bruh» | ||
IOninja | That's something like what I'd do | ||
.... the at...Metamodel.nqp sucks | |||
samcv | lol | ||
cale2 | is there a native test harness for perl6? instead of prove | 22:57 | |
IOninja | m: use Test; &is.wrap: -> | { 'callsame()'.EVAL(:context(::OUTER) or say "you suck at koans, bruh" }; is 42, 5, "waaat" | ||
camelia | rakudo-moar 67aeef: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Unable to parse expression in argument list; couldn't find final ')' at <tmp>:1------> 3 | { 'callsame()'.EVAL(:context(::OUTER)7⏏5 or say "you suck at koans, bruh" }; is  expecting any of:…» | ||
IOninja | bah | ||
I think :context is internal anyway, so nevermind | |||
cale2: up, it's a bit buggy tho | |||
And there aren't any docs | 22:58 | ||
cale2 | up? I thought I read about one that you can use with zef test | ||
AlexDaniel | 1; | ||
:) | |||
IOninja | cale2: I mean yup :) | ||
m: use TAP::Harness | |||
camelia | rakudo-moar 67aeef: OUTPUT«===SORRY!===Could not find TAP::Harness at line 1 in: /home/camelia/.perl6 /home/camelia/rakudo-m-inst-1/share/perl6/site /home/camelia/rakudo-m-inst-1/share/perl6/vendor /home/camelia/rakudo-m-inst-1/share/perl6 CompUnit::…» | ||
IOninja | umm | ||
AlexDaniel | star: use TAP::Harness | ||
camelia | star-m 2016.10: OUTPUT«===SORRY!===Could not find TAP::Harness at line 1 in: /home/camelia/.perl6 /home/camelia/star-2016.10/share/perl6/site /home/camelia/star-2016.10/share/perl6/vendor /home/camelia/star-2016.10/share/perl6 CompUnit::Repository::A…» | ||
IOninja | m: use TAP; say TAP::Harness | ||
camelia | rakudo-moar 67aeef: OUTPUT«(Harness)» | ||
AlexDaniel | :o | ||
IOninja | cale2: though we haven't yet agreed that it should be shipped with Perl 6 :) | 22:59 | |
with Rakudo I mean | |||
(but I'm sure we can stuff it into Star) | |||
cale2 | IOninja: I think it's fine if you don't ship it, but that'll be good to add to state of the ecosystem, etc | ||
IOninja | cale2: you can look (or copy?) this prove6 file: github.com/Leont/tap-harness6/blob...bin/prove6 | 23:00 | |
cale2 | what is TAP::Harness exactly? An alternative to prove/yup? | ||
IOninja | Yes | ||
23:00
llfourn joined
|
|||
IOninja | It captures output from tests and interprets TAP and gives you all the info from it | 23:01 | |
cale2 | this is getting mirky. All of them use the TAP style of testing. So there are 3 options you can use, though. | ||
IOninja | Which three options? | ||
All of them who? | |||
cale2 | prove6, yup, TAP::Harness | ||
IOninja | Never heard of yup | 23:02 | |
cale2 | oh, I thought that was the name of a harness xD lmao | ||
IOninja | Or did you misinterpret my "yup" above? I meant "yup" as in "yes" | ||
cale2 | hahaha | ||
IOninja | :) | ||
cale2 | Yup would be a great name for one though | ||
IOninja | heh | ||
cale2 | So with TAP::Harness, you would download that module via zef. Then you could configure zef to always run your tests through that harness | 23:04 | |
IOninja | IIRC zef defaults to that module | ||
cale2 | with a simple `zef test mymodule` | 23:05 | |
ah | |||
IOninja | And currently it unofficially ships with Rakudo, but likely won't in the future (but will instead ship with Rakudo Star, so as far as proper end users are concerned the difference shouldn't matter). | ||
23:06
girafe left
|
|||
IOninja | Oh yeah, you don't need prove6. You can just use zef test whatever | 23:06 | |
IOninja is done for the day | 23:07 | ||
\o | |||
23:07
cpage_ joined
23:08
cdg joined,
erdic joined
23:11
cdg_ left
23:12
cdg left
23:15
skids joined
23:16
jjido left
|
|||
samcv | wait i thought we didn't have prove6 | 23:20 | |
i asked about this before >:( | |||
cale2 | samcv: If I understand correctly, if you use prove on a perl6 .t file, you're using a modified version of the Perl5 prove. If you use `zef test`, you're using prove6 | 23:24 | |
23:24
jjido joined
|
|||
samcv | no i know that! | 23:24 | |
23:24
mr_ron joined
|
|||
samcv | well you can do `prove -e perl6` and it'll use perl6 to run the files but | 23:25 | |
i want actual prove6 | |||
23:32
lep_ joined
23:33
LeCamarade left
23:35
leah2 joined,
lep-delete left
23:39
espadrine left
|
|||
cale2 | samcv: You could have prove6 if you just use TAP::Harness as it's own executable separate from zef | 23:39 | |
samcv | yes i would like that | ||
cale2 | samcv: github.com/Leont/tap-harness6/blob...bin/prove6 | 23:40 | |
23:44
cale2 left
23:51
lukaramu left
|