»ö« 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 Zoffix on 25 May 2018. |
|||
Railalis | in method TWEAK I am calling another method $!reset(); | 00:00 | |
and it essentially resets the array with default values for the game. | |||
I'm making backgammon | |||
00:00
mcmillhj joined
|
|||
TimToady | maybe a new game should get a new object... | 00:01 | |
Railalis | Sure, but then I still have to run this logic in TWEAK | 00:02 | |
TimToady | or declare your array with 'is default("a")' or some such | ||
Railalis | Eh.. That's not really my style. | 00:03 | |
MasterDuke | m: my @a[4] is default("b") | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> is default on shaped Array not yet implemented. Sorry. at <tmp>:1 ------> 3my @a[4] is default("b")7⏏5<EOL> expecting any of: constraint |
||
TimToady | aww | ||
Railalis | ok I got things working for now.. | 00:05 | |
00:05
mcmillhj left
|
|||
Railalis | now I have to figure out how to print this board. | 00:05 | |
00:17
mcmillhj joined
00:22
mcmillhj left
00:33
mcmillhj joined
00:36
timeless left
00:37
timeless joined,
mcmillhj left
00:42
Zoffix joined
|
|||
Zoffix | mr_ron: did you delete your module or something? For some reason my local build didn't get it | 00:43 | |
Oh wait, just realized you wouldn't be able to delete it this fast, 'cause PAUSE has a 3-day delay... nm | |||
:S got it now... Seems rsync doesn't rsync all the files or something :S | 00:48 | ||
00:53
gfldex joined
00:56
Railalis left
|
|||
timotimo | run it in an infinite loop, call it "eventual consistency" | 00:57 | |
00:58
raynold joined
01:00
raschipi joined
01:01
raschipi left
|
|||
Geth | modules.perl6.org: b3e67564c1 | (Zoffix Znet)++ | lib/ModulesPerl6/DbBuilder/Dist/Source/CPAN.pm [REBUILD] Use original repo_url for dist url for CPAN dists It was accidentally lost when we split dist and repo urls[^1], which resulted in site links being "N/A" [1] github.com/perl6/modules.perl6.org...54edc56d60 |
01:14 | |
Zoffix | .tell mr_ron I fixed all the modules.perl6.org issues with your dist that I saw. Repo URL is already fixed and CPAN tarball URL will get fixed on next update (~2hr) | 01:15 | |
yoleaux | Zoffix: I'll pass your message to mr_ron. | ||
01:15
Zoffix left
01:17
mcmillhj joined
01:22
mcmillhj left
01:27
comborico1611 left
|
|||
ingy | e: sub foo($a) {}; foo() | 01:41 | |
evalable6 | (exit code 1) 04===SORRY!04=== Error while compiling /tmp/LuTUnBbcr4 Calling foo() will never work with declared signature ($a) at /tmp/LuTUnBbcr4:1 ------> 03sub foo($a) {}; 08⏏04foo() |
||
ingy | e: sub foo($a=Nil) {}; foo() | ||
evalable6 | |||
b2gills | m: sub foo($a=Nil) {}; say foo() | ||
ingy | lizmat, b2gills: ^^ is what I was going for | ||
camelia | Nil | ||
ingy | $a=Nil makes arg optional | 01:42 | |
b2gills | m: sub foo($a is copy =Nil) {$a = Nil; $a}; say foo() | ||
camelia | (Any) | ||
b2gills | That is what I thought would happen as the default is Any | 01:43 | |
m: sub foo( $a? ) {}; say foo() # optional | 01:44 | ||
camelia | Nil | ||
b2gills | m: sub foo( $a? ) {$a}; say foo() # optional | ||
camelia | (Any) | ||
ingy | ok | 01:45 | |
ingy looks forward to the day when all his perl6 (and every other language) code is generated :) | 01:46 | ||
then I'll let b2gills code review the generator and all my perl6 will be best practice | |||
I spent the last year writing compilers to generate Lua. Lua is the best code to generate that I've seen. | 01:48 | ||
very regular and no ambiguities | |||
pretty hard to mess up... | |||
but Lingy will be even easier I think | 01:49 | ||
since the encoding is just json | |||
01:50
mcmillhj joined
|
|||
geekosaur smells famous last words in there somewhere | 01:50 | ||
ingy | testml.org/playground/?type=example...w=compiler shows the Lingy generated for TestML (TestML compiles to Lingy) | 01:51 | |
geekosaur: it's interactive with scores of examples. try it out | |||
01:52
vike left
|
|||
ingy | Lingy = Lisp + JSON. What could possibly go wrong?! | 01:52 | |
01:53
vike joined
|
|||
ingy | I have have a small module called RotN (pronounced RotN) that I wrote in all the TestML langs for my talks last week and next week | 01:53 | |
after $yapc I'm going to single source it as CafeScript that generates Lingy, and then I'll upload it to CPAN 6PAN PyPI and NPM | 01:54 | ||
with tests in TestML of course | 01:55 | ||
01:55
mcmillhj left
|
|||
ingy | CafeScript is a fork of CoffeeScript that generates Lingy instead of JS | 01:55 | |
Lingy targets every language that can do JSON. That should give me a good amount of languages to target. | 01:56 | ||
at first the modules will dep on a lingy eval loop module | 01:57 | ||
but as things catch on I'll do Lingy to native code generators | |||
and if I can gen C code from Lingy then... | |||
01:59
molaf left
02:01
espadrine left
|
|||
ingy | how do I compare 2 boolean values? | 02:09 | |
rjbs | My naive quesiton is, "Isn't it with == ?" | 02:11 | |
ingy | e: False -- False | ||
evalable6 | WARNINGS for /tmp/hxpRPLdX7E: Useless use of "-" in expression "False -- " in sink context (line 1) |
||
ingy | e: False == False | ||
evalable6 | WARNINGS for /tmp/Euh_Mgqrrw: Useless use of "==" in expression "False == False" in sink context (line 1) |
||
ingy | == is numeric compare | 02:12 | |
I wish == were more polymorphic | |||
02:12
molaf joined
|
|||
ingy | Ironically I'm need to know to implement my polymorphic == in TestML in p6 | 02:12 | |
I guess I'll craft some crafty boolean logical expression | 02:14 | ||
I think: $a ?? $a && $b !! not($a || $b) | 02:17 | ||
seems crafty | |||
open to suggestions | |||
02:19
Xliff joined
|
|||
Xliff | \o | 02:19 | |
I hope tonight finds everyone well. | |||
ingy | define well :) | 02:21 | |
Xliff | Will this work for a statically defined struct in C: "my class A is repr('CStruct') { ... }; my $a := cglobal('gtk+', 'GtkWidgetClass', A)" | 02:22 | |
ingy: Definition: "Well enough, i hope?" | |||
02:22
benjikun joined
|
|||
benjikun | `Aborting due to build falure: digest::sha1::native:ver<0.03> (use —force-build to overide)` | 02:23 | |
For some reason, when my bud tries to install digest::sha1::native | 02:24 | ||
Xliff | Please note that the "..." above matches the native call definitions necessary to be compatible with 'GtkWidgetClass' and not a stub. | ||
benjikun | he's on 2018.05-86 for rakudo | ||
zef 0.4.4 | 02:25 | ||
02:30
mr_ron left
|
|||
ingy | welp, all my boolean test passing now. My logic for a true TestML value in p6 is currently: $value.defined and $value.^name ne 'Bool' || $value | 02:35 | |
basically None and Null and False are false | 02:36 | ||
02:36
mcmillhj joined
|
|||
ingy | close to Ruby semantics | 02:36 | |
I think those semantics are best, when you have to explain truth to people from every language... | 02:38 | ||
02:41
mcmillhj left
|
|||
Xliff | ingy: Just out of curiosity, why not $value !~~ Bool? | 02:41 | |
m: (1 ~~ Bool).say | 02:42 | ||
camelia | False | ||
Xliff | m: (True ~~ Bool).say | ||
camelia | True | ||
rjbs | ingy: My next quesiton would've been "why not xor"? | ||
e: True xor True | |||
evalable6 | WARNINGS for /tmp/rD60KtTJie: Useless use of constant integer True in sink context (line 1) |
||
02:42
benjikun left
|
|||
rjbs | e: (True xor True) ?? "FALSE" :: "TRUE" | 02:43 | |
evalable6 | (exit code 1) 04===SORRY!04=== Error while compiling /tmp/csSieGNtDk Please … |
||
rjbs, Full output: gist.github.com/48889e89c6638a73ff...27090be791 | |||
Xliff | e: (True xor True).say | ||
evalable6 | Nil | ||
rjbs | Okay, I'm gonna not try to eval anything more. | ||
Xliff | m: (True xor True).say | ||
camelia | Nil | ||
Xliff | m: (True xor False).say | ||
camelia | True | ||
rjbs | m: (True !xor True).say | ||
camelia | True | ||
02:43
rabbit_ joined
|
|||
Xliff | Hmmm... | 02:43 | |
rabbit_ | Hello | ||
rjbs | So, that's my Official Probably Bullshit Ricardo Answer. ;-) | ||
Xliff | \o rabbit_ | 02:44 | |
rabbit_ | Wow, a lot of people here ;) | ||
Could someone help me with an issue regarding installing cro with zef? I have yet to find an answer. | 02:45 | ||
02:46
kjk joined
|
|||
rabbit_ | ===> Building [FAIL]: Digest::SHA1::Native:ver<0.03> | 02:48 | |
Aborting due to build failure: Digest::SHA1::Native:ver<0.03> (use --force-build to override) | |||
anyone have any similar problems? | 02:49 | ||
MasterDuke | rabbit_: i think i've seen mention of something similar before (don't remember details though) | 02:51 | |
what os and perl6 version do you have? | |||
rabbit_ | This is Rakudo version 2018.03 built on MoarVM version 2018.03 | 02:52 | |
implementing Perl 6.c. | |||
ubuntu 18.04 | |||
4.15.0-23-generic | |||
02:53
kjk left
|
|||
MasterDuke | you might need some -dev package installed | 02:53 | |
rabbit_ | hmm, any clues which package that would be? I am going to try to install some older openssl dev packages | 02:56 | |
MasterDuke | rabbit_: also, you might try the --verbose option to zef and see if that says anything helpful | 02:57 | |
02:57
BenGoldberg joined
|
|||
rabbit_ | benji is that you? | 02:58 | |
MasterDuke | me? if so, nope | 02:59 | |
rabbit_ | Sorry. I thought it was someone else who I asked earlier. | 03:00 | |
Alright so I tried install libssl1.0-dev tcl-tls openssl1.0 | |||
and after installing those packages cro install zef got a lot further | |||
and then I got: | |||
===> Testing [FAIL]: Cro::HTTP:ver<0.7.5> | |||
Aborting due to test failure: Cro::HTTP:ver<0.7.5> (use --force-test to override) | |||
trying install libhttp-async-perl | 03:02 | ||
fingers crossed this time | |||
lookatme | rabbit_, maybe add --/test | 03:05 | |
MasterDuke | rabbit_: i think most of the cro devs are offline at this time, but you could also try in #cro | ||
lookatme | they recommend you using `zef install --/test cro` install cro | 03:06 | |
03:06
Xliff left
|
|||
lookatme | maybe some test not ready currently | 03:06 | |
rabbit_ | pastebin.com/gnzv3WaE | 03:17 | |
03:20
mcmillhj joined
|
|||
rabbit_ | Thanks for the help/suggestions MasterDuke. It's getting pretty late here. I'm going to hit the sack. | 03:23 | |
03:24
mcmillhj left
03:37
fascinum joined
03:47
wamba joined
03:49
fascinum left
03:51
mcmillhj joined
03:56
mcmillhj left
03:59
flw joined
04:01
fascinum joined
04:03
subroot left
04:08
mcmillhj joined
04:10
flw left
04:12
mcmillhj left
04:27
Possum left
04:36
mcmillhj joined
04:38
wamba left
04:41
mcmillhj left,
|oLa|1 joined,
sno left
|
|||
wbn | is there an easy way to see if a module was loaded (e.g. Test) in the current context? | 04:42 | |
04:43
|oLa| left
04:44
molaf left
04:50
mcmillhj joined
04:51
curan joined
04:55
mcmillhj left,
digitalw00t joined
|
|||
digitalw00t | Evening!! | 04:56 | |
04:56
digitalw00t left
05:15
sauvin joined
05:16
xtreak joined
05:17
mcmillhj joined
05:19
xtreak left
05:20
BenGoldberg left
05:22
mcmillhj left
05:23
Possum joined
|
|||
ingy | re the Boolean comparison conundrum I posted earlier... | 05:24 | |
not xor is the best thing I've found | 05:25 | ||
e: for [True, False] -> $a { for [True, False] -> $b { say not($a ^^ $b) } } | |||
evalable6 | True False False True |
||
ingy | my previous entry was | 05:26 | |
e: for [True, False] -> $a { for [True, False] -> $b { say $a ?? ($a && $b) !! not($a || $b) } } | 05:27 | ||
evalable6 | True False False True |
||
ingy | still keen to see a more idiomatic solution | ||
to restate, looking for boolean equality. ie $a == $b for Bool | 05:28 | ||
rjbs: ^^ since you were vaguely interested | 05:29 | ||
tobs | e: for [X] [True, False] xx 2 -> ($a, $b) { say $a == $b } | 05:33 | |
evalable6 | True False False True |
||
tobs | ingy: I didn't follow early, but == seems to work? | ||
s/early/ealier/ | 05:34 | ||
05:34
gkokmdam joined,
gkokmdam left
|
|||
tobs | and it really should +True and +False are 1 and 0. | 05:35 | |
s/should/should because/ | |||
what's with my typing today? | 05:36 | ||
ingy | e: say True == True | ||
evalable6 | True | ||
ingy | e: say False == False | ||
evalable6 | True | ||
ingy | e: say False == True | 05:37 | |
evalable6 | False | ||
ingy | tobs: I tried this earlier and failed | ||
meh | |||
what a waste of time | |||
tobs: thanks! | 05:38 | ||
tobs: you're 1-liner is pretty dope too... wish I understood it | 05:40 | ||
05:40
mcmillhj joined
|
|||
ingy | mostly don't get [X] | 05:41 | |
tobs | ingy: it takes the cartesian product of the lists passed to it (which is [True,False],[True,False]) | ||
ingy | ah, nice | 05:42 | |
tobs | never use nested loops in P6 :) | ||
05:42
skids left
|
|||
ingy | I suspect when all my perl6 code is generated from transpilers, there will be nested loops :) | 05:43 | |
and I can sleep at night, if that's the case | |||
but until then, sure, ok | |||
ingy googles for JSON in FORTH | 05:44 | ||
05:45
mcmillhj left
|
|||
ingy | the 2nd hit involved Parrot! hahahaha github.com/parrot/forth/blob/maste...forth.json | 05:46 | |
I thought the Parrot was dead... | 05:47 | ||
tobs | ingy: I'm new to P6 myself. just really like the many ways to prepare simple data structures like that | 05:48 | |
05:48
sno joined
|
|||
ingy | tobs: I just finished adding perl6 to my new test language that works in all (5 so far languages) | 05:51 | |
tobs: the code is here: github.com/testml-lang/testml/tree/master/lib | |||
feedback on the p6 welcome | |||
tobs: to see it in action (with the js port in the browser) I made this: testml.org/playground/ | 05:52 | ||
tobs | I remember catching bits about it in here. This is related to acme-ism, right? | 05:53 | |
ingy | the language compiles to JSON/Lisp (click Compiler) and then runs the tests as TAP (perl test output) or Mocha | ||
right. the language has been around in various forms in Perl since 2004 or so | 05:54 | ||
but now I've figured out how to get it to every language that can do JSON | |||
which seems like all the important ones | 05:55 | ||
tobs: anyway the perl6 is hot off the press: github.com/testml-lang/testml/tree...rl6/TestML | |||
I thought Python was a pita, but p6 twice as much | 05:56 | ||
but now its all done so I can enjoy the beer I'm drinking right now | |||
tobs | nice, I'll look at it. We tried working on testing for Gambas (a BASIC language) but progress is slow. Maybe I can steal some bits here (and later unsteal them?) | 05:57 | |
ingy | if you care to glance over the p6, thoughts would be most appreciated | ||
tobs | Gambas at least has a JSON module | ||
ingy | great, let's port it! | ||
tobs | but right now I have to get off to $uni o/ | 05:58 | |
ingy | 859 total lines p6 | 05:59 | |
catch you later | |||
tobs: msg me the best url for Gambas | 06:00 | ||
06:14
xtreak joined
06:15
domidumont joined
06:18
psychoslave_ joined
06:20
domidumont left
06:21
domidumont joined
06:23
mcmillhj joined
06:28
mcmillhj left
06:37
mcmillhj joined
06:42
mcmillhj left
06:50
HaraldJoerg joined
06:54
robertle joined
07:05
darutoko joined
|
|||
masak | ingy: nice! | 07:09 | |
ingy: the code looks very neat, but to me what stands out is the complete lack of type annotations. any reason for that? (besides maybe being close to other implementations) | 07:10 | ||
ingy: also curious why p6 was twice the PITA of Python (though I have my guesses) | |||
07:12
AlexDaniel left
07:13
xtreak left
07:15
xtreak joined
07:16
sarna joined
|
|||
sarna | hey, is there a tool that'd create a project template for me? like `cargo new` in Rust | 07:18 | |
07:25
mcmillhj joined
07:30
mcmillhj left
|
|||
sacomo | sarna, take a look at github.com/gfldex/perl6-meta6-bin | 07:30 | |
sarna | sacomo: nice, thanks! | 07:32 | |
07:36
dakkar joined,
rindolf joined
|
|||
lizmat | sarna: personally, I use modules.perl6.org/dist/App::Mi6:cpan:SKAJI a lot | 07:39 | |
also, there's the Perl 6 IDE of the future: commaide.com | |||
07:44
fascinum left
|
|||
sarna | lizmat: sweet! | 07:50 | |
120 euro though, oof | |||
also, what's up with this naming? eg App::Mi6 | |||
07:54
psychoslave_ left
|
|||
masak .oO( we could tell you, but then we'd have to kill you ) | 07:55 | ||
:P | 07:56 | ||
ingy | hi masak | 07:57 | |
masak | \o | ||
my favorite ingy singleton :> | |||
sarna shivers | 07:59 | ||
moritz | an ingyton :) | ||
ingy | I came up with a new tagline for p6: "Perl 6 makes simple things simple, hard things possible, and everything in between a royal pain in the ass." :D | 08:00 | |
08:00
mcmillhj joined
|
|||
ingy | masak: do you mean type annotations for class properties? | 08:00 | |
TimToady | if you want polymorphic comparison, why aren't you using eqv or ===? | 08:01 | |
08:01
ufobat joined
|
|||
ingy | TimToady: who was that for? | 08:02 | |
TimToady | you, sirrah! | ||
ingy | the bool thing? | ||
TimToady | yep, eqv and === are intented to be polymorphic | 08:03 | |
*d | |||
== isn't | |||
masak | ingy: :P | ||
ingy: I meant | |||
m: my Int $i = 42 | |||
camelia | ( no output ) | ||
ingy | I guess the answer is: because you didn't speak up earlier :) | ||
masak | no need to blame TimToady for your code :P | 08:04 | |
ingy | well I asked earlier | ||
masak | oh! | ||
TimToady | I think the things that are "a royal pain in the ass" are really just things you don't know yet about Perl 6 :P | ||
ingy | is all | ||
I hit some hard corners | |||
but sure | 08:05 | ||
masak | stab in the dark: lists were involved somehow | ||
TimToady | I'm a bit surprised nobody suggested eqv or ===, is all | ||
08:05
mcmillhj left
|
|||
ingy | I don't think anyone was on chan at the time | 08:05 | |
08:05
zakharyas joined
|
|||
ingy | except rjbs | 08:05 | |
TimToady | that's not to say there aren't some hard corners here or there, of course | ||
you need to learn to sleep when the eurofolk are sleeping, is all :) | 08:06 | ||
masak .oO( hard cor[e|ner] programming ) | |||
08:06
Luneburg joined
|
|||
ingy | might take a while | 08:06 | |
anyway I'm 100% passing with the p6 port | |||
so I can heal now | |||
TimToady | obviously you need more tests ;) | 08:07 | |
masak | time to write more tests! :P | ||
d'oh, TimToady is faster :P | |||
ingy | that's easy, it's a language for writing tests | ||
TimToady | we still have only 76,373 tests, alaas | ||
masak .oO( so far, the tests cover the first 100% ) | |||
ingy | my point was the p6 == p5 == coffee == python == node | ||
I had about a weeks worth of stuff to catch up on | 08:08 | ||
Python took me an 18 hour day | |||
p6 twice that | |||
TimToady | yes, but next time it'll only take you half as long | 08:10 | |
ingy is looking forward to the Gambas port with tobs++ | 08:11 | ||
meet new people from far off languages! | |||
TimToady starts driving toward SLC tomorrow...well, today...so better sleep while the eurofolk are awake | 08:12 | ||
08:12
zakharyas left
08:13
mahafyi_ joined
|
|||
ingy | probably the p6 array magics were the most troublesome | 08:13 | |
ingy is about halfway into a 3 week Utah stay | |||
daoswald++ for the spare room | |||
08:14
mahafyi left,
mahafyi_ is now known as mahafyi
|
|||
ingy | openwest conf was last week here | 08:14 | |
08:14
zakharyas joined
|
|||
ingy | masak: take a look at the playground to see what testml compiles into: testml.org/playground/?type=example...w=compiler | 08:15 | |
I call it Lingy, it's my favorite part | 08:16 | ||
ok g'night my perl fiends o/ | |||
08:16
mcmillhj joined
|
|||
Luneburg | Is there a simple way to turn a string into an array? | 08:16 | |
ingy tries to make new fiends... | |||
El_Che | Luneburg: split? | 08:17 | |
ingy | www.makingfiends.com/ | ||
[$str] | |||
08:18
subroot joined
|
|||
Luneburg | El_Che: Looks a lot better than what I was trying to do (make a loop that loops through $string.comb, then concatenate to new strings, which are added as elements in an array) | 08:19 | |
08:19
psychoslave joined
|
|||
El_Che | Luneburg: there are several methods that work on strings depending on what you need | 08:20 | |
08:20
mcmillhj left
|
|||
Luneburg | El_Che: .split seems to work fine, but it returns a .Seq instead of an array? | 08:24 | |
ingy: *hugs* | 08:25 | ||
masak | <ingy> probably the p6 array magics were the most troublesome | 08:31 | |
called it :) | |||
m: my @things = "1, 2, 3, 4".split(", "); say @things.^name | 08:32 | ||
camelia | Array | ||
lizmat | m: my @a = "foobar".comb # turning a string into an array | ||
camelia | ( no output ) | ||
masak | Luneburg: if you do it like that, it's an array | ||
08:32
zakharyas left,
zakharyas joined
|
|||
lookatme | m: say "123".comb | 08:35 | |
08:35
mahafyi_ joined
|
|||
camelia | (1 2 3) | 08:35 | |
Luneburg | m: my @things = "1, 2, 3, 4".split(", "); say @things.^name; say @things.elems; | ||
camelia | Array 4 |
||
Luneburg | masak: Ah, that works :D | ||
lookatme | m: dd "123".comb | ||
camelia | ("1", "2", "3").Seq | ||
08:36
mahafyi left,
mahafyi_ is now known as mahafyi
08:39
zakharyas left
08:42
mcmillhj joined
08:44
xtreak left
08:45
xtreak joined
08:46
hami joined
08:47
mcmillhj left
08:50
xtreak left,
jmerelo joined
|
|||
jmerelo | o/ | 08:50 | |
masak | \o | ||
Geth | doc/master: 7 commits pushed by (JJ Merelo)++ | ||
jmerelo | Just managed to connect from the train... | 08:51 | |
And arriving to station, so AFK now. See you! | |||
08:51
zakharyas joined
08:52
scimon joined,
hami left
08:56
jmerelo left
09:11
xtreak joined
09:19
mcmillhj joined
|
|||
sarna | what's in .pm6 files? or is it just like .pl6 | 09:22 | |
09:24
mcmillhj left
|
|||
lizmat | sarna: what's the difference between .pl and .pm in Perl 5 ? | 09:27 | |
sarna | lizmat: I don't know perl5 :( | 09:29 | |
lizmat | ah, ok | ||
well, the extensions an indication that they contain Perl 6 source code | |||
sarna | I googled it though | ||
lizmat | .pl6 is generally used to indicate runnable scripts | ||
.pm6 is generally used to indicate installable modues | 09:30 | ||
*modules | |||
sarna | I've ran that Mi6 tool and ended up with a .pm6 file | ||
idk if I'm supposed to create a .pl6 one or put my stuff into that .pm6 | |||
lizmat | yup, it does that :-) | ||
masak tends to use the empty string at the end of his runnable scripts :) | |||
lizmat | masak: that works fine if you're not on Windows :-) | ||
masak | oh yeah, I've heard about that OS | 09:31 | |
lizmat | sarna: mi6 assumes you want to create an installable module | ||
so generally, that happens in the lib/Foo.pm6 file, if you did "mi6 new Foo" | |||
sarna | I did App::Foo because I learned a thing :^) | 09:32 | |
lizmat | then you got an lib/App/Foo.pm6 :-) | ||
09:33
eliasr joined
09:34
Luneburg left
|
|||
sarna | thanks for taking your time lizmat | 09:34 | |
lizmat | sarna: yw | 09:35 | |
09:39
mahafyi left
09:48
aborazmeh joined,
aborazmeh left,
aborazmeh joined
09:49
aborazmeh left
09:52
w_richard_w left
09:56
domidumont left
10:05
subroot left
10:11
sarna_ joined
|
|||
sarna_ | hmm, how to invoke a subroutine in my test file? I've tried func(), App::foo::func() and foo::func(). neither of them work | 10:13 | |
robertle | do you "use" your module? | 10:14 | |
yoleaux | 13 Jun 2018 00:14Z <MasterDuke> robertle: is your program (the one with all the regexes) available somewhere online? | ||
sarna_ | I have `use App::foo;` at the top of my file | ||
robertle | and do you export from App::foo? e.g. "sub func() is export"? | 10:15 | |
but there are many ways to export: docs.perl6.org/language/modules | |||
sarna_ | do I have to export them to test them? heck :( | 10:16 | |
robertle | MasterDuke: unfortunately it's a work thing, but I could craft a similar case if it helps... | ||
sarna_: there most certainly is a way to import something that has not been explicitely exported, e.g. for tests, but I have to admit that I don't know what it is. I guess a good start would be to see what ' | 10:19 | ||
import' actually does... | |||
jnthn | Generally, the choice is either to export them or declare them `our` scope so they can be looked up fully qualified | 10:20 | |
(subs default to `my` scope) | 10:21 | ||
10:23
AlexDaniel joined
10:24
xtreak_ joined
|
|||
sarna_ | thanks robertle, I figured it out :) | 10:25 | |
why can't I write `returns Str, is export`? | 10:26 | ||
robertle | actually jnthn's point is far more interesting: that there is lexical scope in perl6 as well as namespace scope. that is a very powerful combination | ||
jnthn | sarna_: Because it's incorrect syntax. :) Get rid of the , | 10:27 | |
10:27
ambs joined,
xtreak left
|
|||
sarna_ | jnthn: oh! thank you :) | 10:27 | |
robertle | is there some consensus on what the "preferred" return type declaration is? there just seem to be too many... | 10:28 | |
sarna_ | I only know about --> and returns | ||
robertle | I have used --> so far, but it looks kinda weird | 10:29 | |
sarna_ | I prefer returns :) looks better | ||
jnthn | I think those are the two ways in common use | ||
sarna_ | hm, what if I wanted to test a private sub? just declare it our? | ||
jnthn | Well, then it's not private, but yes :) | 10:30 | |
sarna_ | I can't test private functions then? :D | ||
jnthn | Nope. Because if your test is calling it then it's not private. | ||
sarna_ | oh well | ||
jnthn | The point of privacy (lexical scoping, private methods) in Perl 6 is that you can refactor them without having to look anywhere else in the program source code | 10:31 | |
robertle | it's kinda funny that of all languages, perl6 is the strictest abotu privateness ;) | ||
sarna_ | "I declare everything to be public, who am I not to trust my own code?" - my coworker | ||
jnthn | robertle: I'm really glad of it though. Both as a Perl 6 programmer (I feel safer refactoring) and as an IDE developer (a bunch of useful bits of analysis are easier) :) | 10:33 | |
robertle | sure, and it makes more sense seen from the "lexical" point of view than from "private": in a language like java, a private class will still have a global name and can be addressed. you are just not allowed to do certain things. | 10:34 | |
sarna_ | jnthn: which IDE you're developing? commaide? | ||
jnthn | sarna_: Yes | ||
sarna_ | if you don't mind me asking | ||
sweet! | |||
robertle | a lexical scoped thing simply isn't addressable from outside that lexical scope. taht is very nice | 10:35 | |
jnthn | Well, it's not just me, but I'm to blame for parts of it :) | ||
10:36
molaf joined
10:41
AlexDaniel left,
AlexDaniel joined
|
|||
sarna_ | does perl prefer to die early or return an empty collection or something? | 10:42 | |
10:47
robertle left
10:53
sarna_ left
|
|||
tyil | what's the best way to sent an EOF to the standard input of a Proc? | 10:53 | |
ilmari | tyil: $proc.in.close()? | 10:54 | |
tyil | some things are so simple that I just forget to think about them | 10:55 | |
thanks ilmari | |||
11:11
mahafyi joined
11:14
zakharyas left
11:21
raynold left
|
|||
Geth | ¦ user-experience: rafaelschipiura assigned to robertlemmen Issue Distros don't offer Star. github.com/perl6/user-experience/issues/23 | 11:24 | |
11:24
xtreak_ left
|
|||
Geth | ¦ user-experience: rafaelschipiura assigned to niner Issue Distros don't offer Star. github.com/perl6/user-experience/issues/23 | 11:24 | |
11:27
raschipi joined
11:40
mahafyi left
11:43
xtreak joined
11:44
domidumont joined
|
|||
jkramer | How can I compile a regex from a string? Something like Regex.new('foo.*') doesn't seem to exist | 11:59 | |
El_Che | rx | 12:01 | |
jkramer | Nevermind, found this docs.perl6.org/syntax/%20Regex%20Interpolation | 12:02 | |
El_Che | docs.perl6.org/language/regexes#in...onventions | 12:03 | |
12:11
domidumont1 joined
|
|||
Geth | doc: 795b3d96db | (Will "Coke" Coleda)++ | xt/word-variants.t whitespace [no tabs] |
12:13 | |
12:14
domidumont left
12:29
zakharyas joined
12:35
molaf left
12:40
xtreak left
12:44
kurahaupo left,
Schepeers left,
kurahaupo joined
12:54
domidumont joined
12:55
Schepeers joined
12:57
domidumont1 left
13:22
AlexDaniel left,
subroot joined
|
|||
masak | m: my $rx-string = "fo+"; say so "fooooo" ~~ / <$rx-string> / | 13:23 | |
camelia | True | ||
masak | standard injection disclaimer applies | 13:24 | |
13:29
robertle joined
|
|||
moritz injects a standard into Perl 6 | 13:42 | ||
raschipi | RFC 2549? | 13:46 | |
timotimo | that's a good one | 13:48 | |
13:52
skids joined
|
|||
moritz | I thought about ISO 8601 | 13:52 | |
hahainternet | i think proper email address validation would be something worthy of a blog post, and worthy of inclusion, because i now have a list of 3 companies that will completely screw up your order / take your money and not send you stuff if you have a '+' in your address :'( | 13:59 | |
robertle | I have seen *@domain.com which is technically legal, but wonder how many systems barf on it... | 14:01 | |
hahainternet | indeed, plus with the variety of new TLDs, the correct behaviour is to attempt a delivery and watch MX logs for the actual attempt | ||
other than checking for @ and at least one \w.\w is about all you can do i think now | 14:02 | ||
but that's why it'd make an interesting blog post :) | |||
missed \ in that there regex too | |||
14:09
curan left
|
|||
moritz | hahainternet is a valid email address | 14:18 | |
though if you want to accept it as input depends on context | 14:19 | ||
14:33
hami joined
|
|||
buggable | New CPAN upload: FINALIZER-0.0.4.tar.gz by ELIZABETH modules.perl6.org/dist/FINALIZER:cpan:ELIZABETH | 14:35 | |
14:36
MasterDuke left,
mcmillhj joined
14:39
hami left,
molaf joined
14:41
mcmillhj left
14:52
mcmillhj joined,
mcmillhj left
15:09
mcmillhj joined
15:15
mcmillhj left,
jmerelo joined
|
|||
[Coke] | IMO it's like checking file permissions. just try to do the thing (send the email) and then complain if it didn't work (get a response) | 15:19 | |
15:23
molaf left
|
|||
hoelzro | sarna, El_Che: sorry about the Linenoise bug - I haven't been able to reproduce it myself, so fixing it is tricky | 15:23 | |
15:24
jmerelo left
15:25
mcmillhj joined
15:26
markoong joined
15:27
robertle left
15:30
mcmillhj left
15:31
pmurias joined
|
|||
pmurias | hi | 15:31 | |
b2gills | ingy: I think `method sum(+@list) {sum(|@list)}` is more efficiently written as `method sum(+list){ list.sum }` | 15:32 | |
pmurias | ingy: what's the state of funlang? we haven't heard of it in a while? | 15:33 | |
15:33
mcmillhj joined
15:36
perlpilot_ joined,
perlpilot_ is now known as perlpilot
|
|||
ingy | pmurias: fanlang? I don't work for openresty anymore. | 15:36 | |
but they didn't really work on it at all last year after May. it was pretty much stable for their needs. | 15:37 | ||
b2gills: thx! | |||
b2gills: how can you have a var w/o a sigil? | 15:38 | ||
e: sub sum(+list){ list.sum }; say sum(1,2,3) | 15:39 | ||
evalable6 | 6 | ||
ingy has a lot to learn here | |||
lizmat | m: my \a = my $; a = 42; say a; a = 666; say a # bit degenerate case, but there you go | 15:40 | |
camelia | 42 666 |
||
lizmat | what in fact you're doing there is create an alias to an anonymous container | ||
ingy is a degenerate | 15:41 | ||
pmurias | ingy: thanks :), it was potentially superinteresting the last time I heard of it | ||
lizmat | I've seen you cycling, before and after, I know :-) | ||
ingy | :* | 15:42 | |
lizmat: is there a place I can read more about what you are showing? | 15:43 | ||
lizmat | docs.perl6.org/language/containers...binding%29 | ||
ingy | masak: ping | ||
lizmat: xo | 15:44 | ||
buggable | New CPAN upload: Perl6-US-ASCII-0.6.5.tar.gz by RONALDWS cpan.metacpan.org/authors/id/R/RO/...6.5.tar.gz | 15:45 | |
perlpilot is still surprised ingy's sub sum(+list) worked. | |||
yoleaux | 11 Apr 2018 13:44Z <[Coke]> perlpilot: - any thoughts on a File::Temp option that doesn't bother opening a file handle? | ||
lizmat | perlpilot: that's the single argument signature, that works like \, but with different semantics? | 15:46 | |
raschipi | I think they expected +@, just like *@ | ||
perlpilot | right. | ||
re-reading about it now | |||
15:47
ExtraCrispy left
|
|||
raschipi | m: sub sum(*list){ list.sum }; say sum(1,2,3) | 15:47 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Missing block at <tmp>:1 ------> 3sub sum(*7⏏5list){ list.sum }; say sum(1,2,3) |
||
raschipi | m: sub sum(+list){ list.sum }; say sum(1,2,3) | ||
camelia | 6 | ||
raschipi | m: sub sum(*@list){ list.sum }; say sum(1,2,3) | ||
camelia | 0 | ||
raschipi | m: sub sum(*@list){ @list.sum }; say sum(1,2,3) | ||
camelia | 6 | ||
ingy | perlpilot: that was b2gills' I just ran it because I was surprised too! | 15:48 | |
b2gills | ingy: sigilless variables are SSA (Static Single Assignment). I like to think of them as sort of like a runtime constant. | 15:49 | |
ingy really doesn't have time to unblown his mind with all this :) | 15:50 | ||
b2gills | Usually they are defined with \ but as I often do I tried to bend the parser to see where it breaks. Very rarely does it actually break. | ||
ingy | :) | 15:51 | |
geekosaur | not sure I call that break. think of \ as a hack for when it needs a sigil, but there + has the same effect as a sigil | ||
but * is more ambiguous | |||
b2gills | I mean the following works | ||
m: my $a = 42; if $a -> $b { say $b } | |||
camelia | 42 | ||
ingy | masak: I'd like to talk more about type annotations now that I'm awake | 15:52 | |
15:52
robertle joined
|
|||
b2gills | ingy: What are you trying to do with `method bool` as I think that would be a good starting point for learning about type annotations. | 15:54 | |
ingy | pmurias: the thing I'm working on now, TestML, is taking all the work I did for OpenResty to make fanlang and perl5 versions of the language, and open source them to all open langauges. | ||
b2gills | The main use of type annotations is for multi methods/subs | ||
ingy | pmurias: I redesigned the language completely at openresty and its pretty awesome | 15:55 | |
and I've made it even better in this rewrite | |||
lizmat | rewrite++ # hehe | 15:56 | |
ingy | they use the old TestML (CPAN Test::Base) almost exclusively to test over 100 repos | ||
pmurias: including fanlang. 100% tested with the Test::Base | 15:57 | ||
b2gills | multi method bool ( Bool:D $value ) { $value }; multi method bool ( Any:U --> False ){}; multi method bool ( Any:D --> True ){} | ||
ingy | b2gills: ah perfect | 15:58 | |
b2gills | Also `$value.^name ne 'Bool'` may be better written as `$value !~~ Bool`, unless you want to dismiss all possible classes with the name Bool | ||
ingy copies b2gills' code in to see if it can work | |||
b2gills | m: sub new-bool (){ anon class Bool {} }; say new-bool().^name eq 'Bool'; say new-bool() ~~ Bool; | 15:59 | |
camelia | True False |
||
16:00
AlexDaniel joined,
eliasr left
|
|||
raschipi | ingy, gimme a link to the repo | 16:01 | |
16:01
kurahaupo left
|
|||
ingy | raschipi: TestML? | 16:01 | |
16:01
kurahaupo joined
|
|||
raschipi | yep | 16:01 | |
b2gills | You may want to put in a `proto method` if you are overriding a method from a parent class to prevent it from dispatching to said parent class. | 16:02 | |
ingy | github.com/testml-lang/testml/tree/master/lib | ||
b2gills: the cat method is also multi | |||
*@args or @args | 16:03 | ||
I'll try to figure that one out myself | |||
b2gills | If you are only going to use one then I recommend to use +@ | ||
ingy | right | 16:04 | |
buggable | New CPAN upload: FINALIZER-0.0.5.tar.gz by ELIZABETH modules.perl6.org/dist/FINALIZER:cpan:ELIZABETH | 16:05 | |
raschipi | has TestML::TAP $.tap = TestML::TAP.new; can be written as has TestML::TAP $.tap .= new; | ||
b2gills | :( @ ) takes one positional :( *@ ) flattens everything it can :( **@ ) flattens the first level, and :( +@ ) does the best of both :( @ ) and :( **@ ) | ||
If you ask me, :( *@ ) should be the signature of last resort. | 16:07 | ||
16:08
psychoslave left
|
|||
ingy | ok great. makes more sense | 16:08 | |
b2gills | I tend to bend the language more than most, because I am heavily active on codegolf.stackexchange.com/users/1...ab=answers | 16:09 | |
sarna | hoelzro: no worries :) | 16:10 | |
ingy golfed the rosettacode fizzbuzz to be the shortest fizzbuzz on rosetta | |||
El_Che | ingy: does the golfed line include a compiler? | ||
ingy | :P | ||
Geth | doc: 35a3804b62 | (Elizabeth Mattijsen)++ | doc/Language/5to6-nutshell.pod6 Add se section about P5built-ins |
16:11 | |
synopsebot_ | Link: doc.perl6.org/language/5to6-nutshell | ||
Geth | ¦ user-experience: rafaelschipiura assigned to MattOates Issue Distros don't offer Star. github.com/perl6/user-experience/issues/23 | ||
hoelzro | sarna, El_Che: I just installed Linenoise on a 18.04 box freshly made on Digital Ocean (rakudo 2018.04.1, with latest zef) - I still can't reproduce the issue =( | 16:23 | |
any guidance on how to reproduce it would be very much appreciated! | |||
16:24
dakkar left
|
|||
El_Che | hoelzro: yes, I should be able to reproduce in something packaged like docker | 16:24 | |
hoelzro | I'll try the docker image - docker's acting up on my machine, though =( | 16:25 | |
El_Che | LeoNerd: it looks like a window from the sawfish era | 16:26 | |
(it took me a while to find the name) | |||
oops | |||
laggy terminal on train | |||
sarna | hoelzro: I'm on openSUSE tumbleweed with the same packages :( idk what's going on | ||
hoelzro | so far this issue has been reported on OpenBSD, Ubuntu 18.04, and Windows 10 | 16:27 | |
sarna | (the same versions I mean) | ||
hoelzro | I'm at a loss as to what's going on - unfortunately I haven't been keeping up with perl 6 much lately =/ | ||
16:27
AADDJTD joined
16:30
scimon left
16:31
sena_kun joined
16:32
perlpilot left
16:33
sno left
16:35
stux|RC-- joined
|
|||
ingy | b2gills, raschipi: github.com/testml-lang/testml/comm...8cbd3ccdbc | 16:36 | |
thanks | |||
raschipi | I can't clone the repo and test it right now, will do more later. | 16:37 | |
El_Che | ingy: what's the usecase of Lingy besides "it's cool"? | 16:38 | |
do you target a specific niche? | |||
16:39
bhm left
|
|||
ingy | raschipi: `make test` will test 5 langs (including coffee) `make test-perl6-tap` will do just perl6. but be warned, this currently deps on `npm install -g testml-compiler` | 16:39 | |
16:39
bhm joined
|
|||
ingy | El_Che: you aren't going to $yapc next week are you? | 16:39 | |
raschipi | I won't install node if that's what you're suggesting. | ||
16:40
domidumont left
|
|||
ingy | you'll have to wait for the binary compiler then | 16:40 | |
El_Che | ingy: no, decided not attend anything this year to finish other stuff | ||
no conferences for me | |||
ingy | distributed test in cpan and 6pan don't need the compiler | ||
but testing the repo does | |||
El_Che | maybe your talk will be filmed | 16:41 | |
ingy | El_Che: I've used this style testing for almost all my software tests over last 15+ years (various versions of TestML) | 16:42 | |
the new YAML Test Suite for all YAML implementations is in TestML | |||
16:42
stux|RC-- left,
stux|RC joined
|
|||
El_Che | ingy: By the way, I am fighting the fight at work against the toml heretics. Love yaml :) | 16:44 | |
ingy | entire companies (Socialtext, OpenResty) used this for almost all tests | ||
Miyagawa (one of the top perl hackers of all time) used this extensively | 16:45 | ||
as did many others | |||
it's all about writing tests suites that are almost all data | 16:46 | ||
testml tests usually only have 1 line of code. something like this: `*input.do-something-testy == *output` that can run over tons of in/out sets | 16:47 | ||
El_Che | interesting | 16:48 | |
ingy | and the new testml works will work in almost every language that can handle json | ||
json seems to be the commo ground. the testml type system is a superset of json's | 16:49 | ||
El_Che: so to me, TestML is the cornerstone of Acmeism (and also the best way of writing tests I've found in just single language endeavors) | 16:51 | ||
El_Che | ingy: the cert for testml.org/ is broken (in case it's yours) | 16:52 | |
ingy | Does anyone remember my friend Ryan King who escaped from the Texas insane asylum during the Austin YAPC and showed up at the hackathon? | 16:53 | |
ingy looks at TimToady | |||
16:54
molaf joined
|
|||
ingy | Before he went bonkers, we were working together at Socialtext and invented Test::Base together (TestML 0.0.1) | 16:54 | |
16:54
Schepeers left
|
|||
ingy | I think I'll dedicate the testml book to him | 16:55 | |
lizmat | ingy: is he the one who recommended I should use tmux ? | ||
ingy | wearing a white sheet and sandles? yes | 16:56 | |
lizmat | ah, yes, Jesus telling me to use tmux, I tell the story often :-) | ||
ingy | do you now use tmux? | ||
lizmat | no | ||
mcmillhj | heretic | ||
lizmat | hehe | ||
ingy | oh well | 16:57 | |
El_Che | poor guy | ||
yaml drove him crazy | |||
mcmillhj | I would rather people try to demonstrate why I should use something, than just telling me to | ||
ingy | he probably did | ||
lizmat | afk& | ||
ingy | he was an amazing programmer and mind. almost all my programming ideas stem to him. | 16:58 | |
I miss him | 16:59 | ||
El_Che: I'll fix that cert now | 17:00 | ||
jkramer | Nevermind, found this docs.perl6.org/syntax/%20Regex%20Interpolation | 17:04 | |
Ups | |||
ingy | El_Che: hopefully fixed | 17:05 | |
wait for DNS changes... | 17:06 | ||
El_Che: and thanks | |||
17:08
sivoais left
|
|||
raschipi | ingy: I hope he recovers. | 17:09 | |
17:10
sivoais_ joined
17:12
sivoais_ left
|
|||
jkramer | m: say (1,1,1)..(2,2,2) | 17:15 | |
camelia | 3..3 | ||
jkramer | What is happening here? ^ | ||
jnthn | m: say (1,1,1).Numeric | ||
camelia | 3 | ||
jkramer | Aaaah ok thanks :) | ||
geekosaur | m: say (1,1,1)...(2,2,2) | 17:16 | |
camelia | (2 2) | ||
17:16
sivoais joined,
Khisanth left
|
|||
b2gills | m: say {++$,++$,++$}...*eqv(3,3,3) | 17:21 | |
camelia | ((1 1 1) (2 2 2) (3 3 3)) | ||
b2gills | m: say ++$ xx 3 Xxx 3 | ||
camelia | ((1 1 1) (2 2 2) (3 3 3)) | ||
17:30
Khisanth joined
|
|||
sena_kun | ecosystem-api.p6c.org/projects.json has modules from github(apparently), is there an equivalent that consists of modules from cpan too(additionally to github ones)? | 17:30 | |
ingy | raschipi: thanks | 17:31 | |
El_Che: github says I need to wait 24 hours to enforce https. They need to issue a cert I think. | 17:32 | ||
but the https works now | |||
17:33
Schepeers joined
|
|||
buggable | New CPAN upload: Sparrowdo-VSTS-YAML-Solution-0.0.1.tar.gz by MELEZHIK cpan.metacpan.org/authors/id/M/ME/...0.1.tar.gz | 17:35 | |
New CPAN upload: Sparrowdo-VSTS-YAML-Build-Assembly-Patch-0.0.1.tar.gz by MELEZHIK cpan.metacpan.org/authors/id/M/ME/...0.1.tar.gz | |||
New CPAN upload: Sparrowdo-VSTS-YAML-Artifact-0.0.1.tar.gz by MELEZHIK cpan.metacpan.org/authors/id/M/ME/...0.1.tar.gz | |||
17:37
pecastro joined
|
|||
timotimo | sena_kun: raw.githubusercontent.com/ugexe/Pe.../cpan.json seems to be what's used by zef for cpan stuff | 17:38 | |
sena_kun | timotimo, thanks a lot. | ||
buggable | New CPAN upload: Sparrowdo-VSTS-YAML-Nuget-0.0.1.tar.gz by MELEZHIK cpan.metacpan.org/authors/id/M/ME/...0.1.tar.gz | 17:45 | |
17:54
zakharyas left,
|oLa|1 left
17:55
pecastro left
|
|||
buggable | New CPAN upload: P5fileno-0.0.3.tar.gz by ELIZABETH modules.perl6.org/dist/P5fileno:cpan:ELIZABETH | 18:05 | |
18:10
perlpilot joined
18:12
pecastro joined
18:25
sauvin left
18:26
zachk joined
18:27
zachk left,
zachk joined
18:30
psychoslave joined
18:33
sno joined
18:35
xtreak joined
18:36
vike left
18:40
ponbiki joined,
ponbiki left
18:42
perlpilot left
18:43
ponbiki joined
18:49
Xliff joined
18:55
TeamBlast left
18:57
TeamBlast joined
|
|||
buggable | New CPAN upload: US-ASCII-0.6.6.tar.gz by RONALDWS cpan.metacpan.org/authors/id/R/RO/...6.6.tar.gz | 19:05 | |
19:05
xtreak left
|
|||
buggable | New CPAN upload: Inline-Perl5-0.35.tar.gz by NINE modules.perl6.org/dist/Inline::Perl5:cpan:NINE | 19:15 | |
19:21
darutoko left
19:27
|oLa| joined,
|oLa| left
19:34
rindolf left
|
|||
buggable | New CPAN upload: Sparrowdo-VSTS-YAML-Build-Assembly-Patch-0.0.2.tar.gz by MELEZHIK modules.perl6.org/dist/Sparrowdo::V...n:MELEZHIK | 19:35 | |
19:36
rindolf joined
19:37
hami joined,
psychoslave left
19:38
Xliff left
19:42
hami left
20:07
mcmillhj left
20:08
skids left
20:13
Railalis joined
|
|||
Railalis | Question, is there ever a reason to return Nil to prevent sideeffects? | 20:13 | |
timotimo | you don't always want to leak the value of your last statement to the caller | 20:17 | |
ingy | `return;` returns Nil, yes? | 20:18 | |
Railalis | yes | 20:19 | |
m: sub foo() returns Nil { return; } | |||
camelia | ( no output ) | ||
Railalis | m: sub foo() returns Nil { return; }; foo(); | ||
camelia | ( no output ) | ||
jnthn | The main reason to use `--> Nil` is to make sure any side-effects of the final statement happen within the bounds of the current sub | 20:20 | |
20:22
mcmillhj joined
|
|||
Railalis | Are there any arguments as to the best way to declare return type? | 20:25 | |
20:27
mcmillhj left,
vike joined
|
|||
timotimo | the --> form allows more different things for syntax reasons | 20:27 | |
Railalis | do you do that with a trailing comma? | 20:28 | |
m: sub foo(Int $bar, --> Nil) { return; } | 20:29 | ||
camelia | ( no output ) | ||
Railalis | that's kind of weird | ||
jnthn | I've never written in that way :) | 20:31 | |
*it | |||
Also, writing --> Nil and return; at the end is redundant | |||
20:31
vike left
|
|||
jnthn | Since the idea of the --> Nil is to say the returned value should be Nil | 20:32 | |
pmurias | is there a strong preference against using the parcel bundler for rakudo.js? | ||
(or even any even weak opinions why that will be a bad idea) ;) | |||
jnthn | (I write it `sub foo(Int $bar --> Nil) { }` to be clear) | ||
20:33
vike joined
|
|||
buggable | New CPAN upload: Sparrowdo-VSTS-YAML-Nuget-0.0.2.tar.gz by MELEZHIK modules.perl6.org/dist/Sparrowdo::V...n:MELEZHIK | 20:35 | |
20:37
rindolf left
20:38
vike left
|
|||
raschipi | m: sub foo(Int $bar --> Nil) { 3 }; say foo #won't return 3 | 20:38 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Calling foo() will never work with declared signature (Int $bar --> Nil) at <tmp>:1 ------> 3sub foo(Int $bar --> Nil) { 3 }; say 7⏏5foo #won't return 3 |
||
raschipi | m: sub foo(Int $bar --> Nil) { 3 }; say foo 2 #won't return 3 | ||
camelia | WARNINGS for <tmp>: Nil Useless use of constant integer 3 in sink context (line 1) |
||
20:39
vike joined
20:43
vike left
20:44
Khisanth left
20:52
mcmillhj joined
20:57
mcmillhj left
20:58
MasterDuke joined
20:59
Mark04 joined
21:04
Khisanth joined
21:06
mcmillhj joined
|
|||
lizmat | pmurias: my opinion in that respect is even weaker than weak | 21:06 | |
21:11
mcmillhj left
21:12
mcmillhj joined,
jmerelo joined
21:14
raschipi left
21:16
mcmillhj left
|
|||
pmurias | lizmat: parcel seems to be working at least for nqp.js, OTOH all the js tools at stuff that's not built by gigantic tech company feels a bit shoddy ;) | 21:19 | |
21:26
sarna left,
mcmillhj joined
21:30
Railalis left
21:31
mcmillhj left
|
|||
rabbit_ | Hello. I installed zef using the instructions from github.com/ugexe/zef. | 21:32 | |
$ git clone github.com/ugexe/zef.git | |||
$ cd zef | |||
$ perl6 -I. bin/zef install . | |||
This creates a dot folder called .perl6 in ~ | |||
lizmat | that is correct, afaik | ||
rabbit_ | But I can't seem to call any of the commands from ~/.perl6/bin/ | 21:33 | |
is there an export that I need to add to my bashrc? | |||
lizmat | either you add zef/bin to your path, or you symlink zef/bin/zef to a directory that's in your path | 21:34 | |
21:34
fascinum joined
21:36
perlpilot joined
|
|||
rabbit_ | Thanks a bunch. I tried export PATH=$PATH:$HOME/.perl6/bin | 21:36 | |
lizmat | the ~/.perl6 directory is internal to Perl 6, it contains default precompiled modules, afaik | 21:37 | |
afk& | 21:42 | ||
21:45
espadrine joined
|
|||
Mark04 | Hi all. I'm trying to learn the ins and outs of signatures and parameter constraints in p6 | 21:45 | |
How does one constrain the elements of an array parameter to a sub? | 21:46 | ||
21:46
mcmillhj joined
|
|||
perlpilot | You mean like make sure it's an array of Int or array of Str? | 21:46 | |
Mark04 | perlpilot: thanks for saying it way more clearly than I did :) yes exactly | 21:47 | |
I'm browsing this but can't seem to make it work: docs.perl6.org/type/Signature#Type_Constraints | |||
I need a "where" clause I guess do I? | 21:49 | ||
21:51
sena_kun left,
mcmillhj left
|
|||
Mark04 | Oh, this works: sub takes_an_array_of_str( @array where { @array.all ~~Str } ) { blabla… } | 21:51 | |
I think… | |||
perlpilot | yeah, that should work. Though, you might want to consider using a subset if "array of Str" is an important thing for you | 21:53 | |
Mark04 | perlpilot: subset? is that like a user-defined type? | ||
perlpilot | yes | 21:54 | |
Mark04 | perlpilot: right yes I see how that would help in some cases. I was focused on the sub declarations in this case… but I'll remember subsets in the future thanks | 21:56 | |
MasterDuke | Mark04: your other option is docs.perl6.org/language/list#index...yped_array | 22:01 | |
22:01
jmerelo left
22:05
mcmillhj joined
|
|||
perlpilot | It's a wonder someone hasn't written a typing tutorial that eases people into this stuff. (or maybe it's written but I don't know about it) | 22:06 | |
22:09
mcmillhj left
|
|||
MasterDuke | perl6.party/post/Perl-6-Types--Made-for-Humans is a start | 22:12 | |
22:15
HaraldJoerg left
22:21
vike joined
|
|||
perlpilot | yep, but that covers the "easy" cases :-) | 22:21 | |
It's when you start trying to do things with arrays and hashes that the problems start | |||
m: sub foo(Array[Int]) {}; foo([1,2,3]); # I think people expect this to work | 22:23 | ||
camelia | Type check failed in binding to parameter '<anon>'; expected Array[Int] but got Array ($[1, 2, 3]) in sub foo at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
22:24
robertle left
22:29
markoong left
22:30
markoong joined
22:32
Mark04 left
22:35
kurahaupo_ joined
22:36
kurahaupo left,
kurahaupo_ is now known as kurahaupo
22:47
pmurias left
|
|||
lucs | perlpilot: In that example, what would the correct sub declaration be for the expectation to be met? | 22:53 | |
Oh, just read the backscroll. | 22:54 | ||
23:01
mcmillhj joined
23:06
mcmillhj left,
perlpilot left
23:31
raschipi joined
23:37
mcmillhj joined
23:38
w_richard_w joined
23:42
mcmillhj left
|