»ö« 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:12
BenGoldberg joined
00:13
cdg_ left
00:18
kurahaupo_ left,
kurahaupo joined
00:30
AlexDaniel left
00:34
lookatme joined
|
|||
lookatme | morning | 00:35 | |
00:49
aborazmeh joined,
aborazmeh left,
aborazmeh joined,
Cabanossi left
00:51
Cabanossi joined
00:52
mr-foobar left
00:56
mr-foobar joined
01:22
mr-foobar left
01:25
mr-foobar joined
01:30
astj_ left
01:31
astj joined
01:52
mr-foobar left
01:56
mr-foobar joined
02:00
pelev left,
lucs left
02:05
Cabanossi left,
cdg joined
02:06
Cabanossi joined
02:15
llfourn_ left
|
|||
raiph | .tell samcv I suggest you ping rjbs (Pumpking before sawyerx) and novapatch (Unicode focused Perl dev) re ideas about where they think P6 needs to go Unicode wise, then talk about that | 02:18 | |
yoleaux | raiph: I'll pass your message to samcv. | ||
samcv | thanks raiph | ||
yoleaux | 02:18Z <raiph> samcv: I suggest you ping rjbs (Pumpking before sawyerx) and novapatch (Unicode focused Perl dev) re ideas about where they think P6 needs to go Unicode wise, then talk about that | ||
raiph | yw | 02:19 | |
samcv | i have a headache. gonna take a nap for a bit | ||
raiph | sweet dreams, gnite #perl6 | 02:20 | |
02:21
raiph left
02:23
mr-foobar left
02:24
mr-foobar joined
02:30
lucs joined,
lucs left
02:32
noganex_ joined
02:34
lucs joined,
noganex left,
Cabanossi left
02:36
Cabanossi joined
03:00
kurahaupo left,
kurahaupo joined,
ChoHag left
03:04
Sense8 joined
03:06
raschipi joined,
mr-foobar left
03:09
aborazmeh left,
mr-foobar joined
03:12
kurahaupo_ joined,
lizmat left
03:14
kurahaupo left
|
|||
BenGoldberg | m: gist.github.com/BenGoldberg1/d0764...549f4bc359 | 03:19 | |
camelia | 13 15 4 17 5===SORRY!5=== Error while compiling <tmp> Invalid name at <tmp>:41 ------> 3sub my_sort ( Any, Any --> int ) is7⏏5 :callback {...}; |
||
BenGoldberg doesn't comprehend why it's failing there. | 03:20 | ||
03:22
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
geekosaur | shouldn't it be 'is callback'? | 03:22 | |
remember that :$callback! in the declaration is shorthand for (callback => $callback!), the first part being the name used when invoking it | 03:24 | ||
03:25
aborazmeh left
|
|||
BenGoldberg | Without the colon, I get Can't use unknown trait 'is callback' in a sub+{callable[int]} declaration. | 03:27 | |
03:30
lizmat joined
|
|||
geekosaur | I wonder if it has to be more specific (Sub instead of Callable) | 03:33 | |
iirc the grammar's handling of traits is a bit 'special' | |||
03:34
Cabanossi left
|
|||
BenGoldberg | Nope, even with Sub it's a no go. | 03:35 | |
03:36
Cabanossi joined
|
|||
BenGoldberg wonders where the (lowercase) "callable[int]" comes from in that declaration. | 03:42 | ||
03:43
llfourn left
03:46
llfourn joined
|
|||
lookatme | BenGoldberg, The sub need signature like this `(Sub \c, :$callback!)` | 03:46 | |
I dont' know why | 03:47 | ||
03:47
Cabanossi left
03:50
Cabanossi joined
|
|||
BenGoldberg | lookatme++ | 03:52 | |
Routine also works. I guess Callable is too vague? ;) | |||
geekosaur | that was what I tried to tell you earlier | 03:53 | |
so I have no idea what you understood me to mean | |||
BenGoldberg | Sorry, I was confused | 03:58 | |
04:22
kyan left
04:32
khw left
04:35
lucs_ joined
04:36
lucs left
04:37
curan joined
|
|||
lookatme | m: say Sub ~~ Callable; | 04:37 | |
camelia | True | ||
04:40
|oLa| joined
|
|||
geekosaur | like I said earlier, the grammar's handling of traits is a bit 'special' | 04:41 | |
in particular, it is *not* blindly making a call and selecting the right trait by multi candidate | 04:42 | ||
lookatme | geekosaur, em, thanks | 04:48 | |
04:54
stmuk joined
04:56
stmuk_ left
04:57
|oLa| left
04:58
stmuk_ joined
05:00
stmuk left
05:02
Cabanossi left
05:05
Cabanossi joined
05:13
Guest67551 left
05:14
anon joined,
anon is now known as Guest38463
|
|||
Geth | ecosystem: b2f31fdf10 | (Nick Logan)++ (committed using GitHub Web editor) | META.list App::ecogen github.com/ugexe/Perl6-App--ecogen |
05:17 | |
05:24
BenGoldberg left
05:30
xtreak joined
05:32
Guest38463 left
05:33
pilne left
05:34
Cabanossi left
05:35
Cabanossi joined
05:38
anon_ joined,
|oLa| joined
05:39
|oLa| left
05:43
domidumont joined
05:44
lowbro joined
05:46
wamba joined
05:50
domidumont left,
domidumont joined
05:52
raschipi left,
bugbug left
05:59
cdg left
06:14
Sense8 left
06:23
ChoHag joined
06:25
domidumont left
06:32
tipdbmp joined
|
|||
tipdbmp | How can I lookup custom traits on attributes: sprunge.us/HGSB | 06:34 | |
06:36
domidumont joined
06:46
salv0 joined
|
|||
timotimo | inspect its .^roles | 06:50 | |
tipdbmp | Why does the SetHash reports not having any keys: sprunge.us/aJJL | ||
timotimo | hm though many traits really just set an attribute on the thing at the right time | ||
tipdbmp | m: multi sub trait_mod:<is>(Attribute $a, :$no-serialize) { }; class Foo { has uint32 $.bar is no-serialize }; say Foo.^attributes[0].roles; | 06:52 | |
camelia | No such method 'roles' for invocant of type 'Attribute'. Did you mean any of these? does roll in block <unit> at <tmp> line 1 |
||
timotimo | im on a smartphone touchscreen keyboard so cant experiment rn | ||
tipdbmp | Okay. | ||
timotimo | you need .^roles | 06:53 | |
tipdbmp | m: multi sub trait_mod:<is>(Attribute $a, :$no-serialize) { }; class Foo { has uint32 $.bar is no-serialize }; say Foo.^attributes[0].^roles; | ||
camelia | () | ||
timotimo | but that would only help you if you actually mixed something into the attribute obj | ||
tipdbmp | I am just storing the attribute's WHICH.Str into a hash, but when using a SetHash it doesn't seem to work? | 06:54 | |
The keys seem to disappear or something. | 06:55 | ||
timotimo | m: my SetHash $a .= new; $a{"FooBar"} = True; say $a.keys | ||
camelia | (FooBar) | ||
timotimo | oh, hah | 06:57 | |
traits are compile-time-applied, aren't they | |||
tipdbmp | m: multi sub trait_mod:<is>(Attribute $a, :$no-serialize) { $foo{$a.WHICH.Str} = True; }; class Foo { has u64 $.bar is no-serialize; }; say $foo.keys; | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Variable '$foo' is not declared at <tmp>:1 ------> 3od:<is>(Attribute $a, :$no-serialize) { 7⏏5$foo{$a.WHICH.Str} = True; }; class Foo |
||
tipdbmp | m: my SetHash $foo .= new; multi sub trait_mod:<is>(Attribute $a, :$no-serialize) { $foo{$a.WHICH.Str} = True; }; class Foo { has u64 $.bar is no-serialize; }; say $foo.keys; | 06:58 | |
camelia | 5===SORRY!5=== Type 'u64' is not declared at <tmp>:1 ------> 3HICH.Str} = True; }; class Foo { has u647⏏5 $.bar is no-serialize; }; say $foo.keys Malformed has at <tmp>:1 ------> 3$a.WHICH.Str} = True; }; class Foo { has7⏏5 u64… |
||
timotimo | so you'll be storing stuff into that hash, and at run time you're assigning .= new to it | ||
tipdbmp | m: my SetHash $foo .= new; multi sub trait_mod:<is>(Attribute $a, :$no-serialize) { $foo{$a.WHICH.Str} = True; }; class Foo { has uint64 $.bar is no-serialize; }; say $foo.keys; | ||
camelia | () | ||
timotimo | it works if you leave out the .= new | ||
tipdbmp | Huh but why? =) | 06:59 | |
It overwrites the old one... | |||
timotimo | simple ordering of execution | 07:00 | |
the .= new is one of the first things the code does at run time, but it had been putting values in during compile time, which is earlier | |||
tipdbmp | Right. | 07:01 | |
Isn't my SetHash $foo; uninitialized though? | |||
timotimo | to test you can also BEGIN set $is-no-serialize.keys | ||
yep, but we have autovivification | |||
tipdbmp | ;) | ||
timotimo | hash access on an undefined variable will initialize the right type for you | ||
observe autovivification of hashes inside a list: | 07:02 | ||
m: my @the-list; @the-list[0]{"hi"} = "yup"; say @the-list.perl | |||
camelia | [{:hi("yup")},] | ||
tipdbmp | I think I'll use: my SetHash $is-no-serialize; BEGIN { $is-no-serialize = SetHash.new; }, as a reminder though. | 07:03 | |
timotimo bbl | 07:05 | ||
07:05
abraxxa joined
07:09
nadim_ joined
07:11
wamba left
07:21
astj left,
astj joined
07:23
astj left
|
|||
tipdbmp | How would one implement support for reading of/working with older versions (different number of attributes and/or in different order) of Foo?: sprunge.us/gBUO | 07:23 | |
07:23
astj joined
07:32
nadim_ left
|
|||
timotimo | m: use NativeCall; say nativecast(uint64, 10e1) | 07:51 | |
camelia | Native call expected return type with CPointer, CStruct, CArray, or VMArray representation, but got a P6opaque (Num) in sub nativecast at /home/camelia/rakudo-m-inst-1/share/perl6/sources/24DD121B5B4774C04A7084827BFAD92199756E03 (NativeCall) line 417… |
||
timotimo | m: use NativeCall; my $b = CArray[num64].new(10e2); say nativecast(CArray[uint64], $b)[0] | 07:52 | |
camelia | 4652007308841189376 | ||
timotimo | m: use NativeCall; my $b = CArray[num64].new(10e2); say nativecast(CArray[uint64], $b)[0].base(16) | ||
camelia | 408F400000000000 | ||
timotimo | ^- very much not optimal, but does work | ||
bbl | 07:53 | ||
08:04
wamba joined
08:07
kyan joined
08:17
ufobat joined
|
|||
ufobat | when there are multi sub MAIN()'s, is there a way to force priting the "usage" the same as if i would not match the MAIN's prottypes with my invokation parameters | 08:20 | |
08:30
|oLa| joined,
rindolf joined
|
|||
sacomo | ufobat, what happens when you use sub USAGE {} ? and just manually define the desired usage message? | 08:32 | |
ufobat | a empty USAGE results in no usage | 08:33 | |
but i wanted to avoid having a manual USAGE because i'd could forget to change the USAGE if i modify the MAIN's | 08:34 | ||
but, i'd like to have binary --help or something | |||
sacomo | yeah, the generated MAIN usage is much more convenient. I was having similar issues and ended up just manually defining USAGE. Maybe there is some better solution that I am not yet aware of. | 08:35 | |
ufobat | okay :) | 08:36 | |
sacomo | I have tested though, | ||
defining USAGE does solve the problem you are having. | 08:37 | ||
Also, now that I think of it, there is a way to print the dynamic usage in sub USAGE.... | |||
let me see if I can find it... | |||
sub USAGE { say $?USAGE } | 08:38 | ||
ufobat | oh! | 08:41 | |
sacomo | that might not work.. | ||
ufobat | it does not | 08:42 | |
sacomo | sub USAGE { usage } | 08:43 | |
but not dynamic | 08:44 | ||
08:47
nowan_ joined
08:50
nowan left
08:54
rindolf left,
parv joined
|
|||
sacomo | not sure how to get $?USAGE to work anywhere | 08:59 | |
09:01
rindolf joined
|
|||
tipdbmp | timotimo, how would one implement versioning?: sprunge.us/difE | 09:03 | |
09:07
jonas2 joined
09:12
TEttinger left
09:13
astj left,
astj joined
09:18
astj left
|
|||
timotimo | tipdbmp: hmm, depends on how you want to access it in code in general | 09:21 | |
you definitely can't do it the way you've got there, because you can only declare one class of the same name in the same scope | |||
09:22
xtreak left
|
|||
timotimo | if your versions are strictly linear, you can put a Foo inside Foo and another Foo inside that | 09:23 | |
09:23
xtreak joined
|
|||
timotimo | so Foo would be the "current" version, Foo::Foo would be current - 1 and Foo::Foo::Foo would be current - 2 | 09:23 | |
i.e. peano integers in backwards :D | |||
gotta go again | |||
09:27
xtreak left
09:28
astj joined
09:33
Cabanossi left
09:35
parv left,
Cabanossi joined
09:38
lookatme left
09:39
parv joined,
xtreak joined
09:41
astj left
09:46
ChoHag left
09:53
espadrine left
09:57
ChoHag joined
09:59
astj joined
10:00
geekosaur left
10:03
astj left
10:04
parv left
10:06
xtreak left,
xtreak joined
10:18
geekosaur joined,
geekosaur left
10:21
geekosaur joined
10:26
xtreak left,
curan left
10:27
astj joined
|
|||
tipdbmp | m: class FooBase {}; class Foo is FooBase {}; my Foo $foo = FooBase.new; | 10:28 | |
camelia | Type check failed in assignment to $foo; expected Foo but got FooBase (FooBase.new) in block <unit> at <tmp> line 1 |
||
geekosaur | aren't you doing that backwards? | 10:29 | |
all Foo-s are Foobase-s, not all FooBase-s are Foo-s | |||
tipdbmp | Yeah, I don't inheritance... | ||
know* | |||
geekosaur | m: class FooBase {}; class Foo is FooBase {}; my FooBase $foo = Foo.new; | 10:30 | |
camelia | ( no output ) | ||
geekosaur | so, a Foo is a FooBase plus something else (although in this case, that something is nothing :). So a Foo can be used anywhere a FooBase can be used, but there is no guarantee that an arbitrary FooBase or another class derived from FooBase (but not Foo) can be used like a Foo | 10:32 | |
10:33
Cabanossi left
10:35
Cabanossi joined
|
|||
moritz | that's where common sense enters the picture | 10:44 | |
sacomo | hi all, I am writing a test that uses Proc::Async, but I can't kill the process at the end. .kill(9) isn't working... any suggestions? | 10:47 | |
.kill(SIGKILL) not working either | 10:49 | ||
10:58
eveo joined
|
|||
eveo | sacomo: what's your perl6 version? | 10:58 | |
sacomo | eveo, 2017.05 | ||
eveo | sacomo: and you're using multiple .kills or something? | 10:59 | |
sacomo | no, just a single kill right now | ||
eveo | sacomo: re $?USAGE, I don't think it's implemented yet. The var is there but it's not available or something | ||
sacomo: got code you could show? | |||
sacomo | it doesn't error, but when the test ends I have a process still running | ||
yeah, let me commit | 11:00 | ||
eveo, github.com/scmorrison/Bailador/blo...-cli.t#L59 | 11:07 | ||
zengargoyle | are there any modules in the ecosystem yet that are same name but different :ver and :auth ? | 11:08 | |
eveo | buggable: eco Foo | ||
buggable | eveo, Foo 'Test for installation of same named dists': github.com/ugexe/Perl6-Foo 6 other matching results: modules.perl6.org/#q=Foo | ||
eveo | There should be two of them | 11:09 | |
zengargoyle | cool, next Q about toast, it doesn't have :auth or :ver fields (even in sqlite db). is that a future thing? | ||
11:10
mls_ joined
|
|||
eveo | Probably | 11:10 | |
zengargoyle | cool. i was just looking at my modules and wonering about what happens when there are duplicates of the same name. | 11:11 | |
eveo | sacomo: one sec, I'm just installing all the prereqs to run the test | 11:12 | |
sacomo | ok, thanks. I am going to test with Proc.new inside of a promise... | ||
11:12
mls left
|
|||
eveo | sacomo: don't think Proc has a .kill | 11:13 | |
Which we should probably add now that it's implemented in terms of Proc::Async | |||
sacomo | hmm | ||
eveo | It's too sync to need it, I think. | ||
sacomo | ok | 11:14 | |
eveo | sacomo: "127.0.0.1:5005 doesn't open in 10 sec." is that supposed to happen? | 11:15 | |
sacomo | hmm | ||
no, maybe something is blocking that port? | |||
eveo | [Coke]: was it you who complained Bailador requires config file for port now? Looks like there's a command line option: --config=host:0.0.0.0,port:5005 | 11:16 | |
sacomo | you can also use a BAILADOR=port:5005 bailador ... | 11:17 | |
eveo | Weird. If I type the Proc::Async's command in shell, the process starts up just fine :/ | 11:19 | |
sacomo | ok, I just committed a change to have the test check against 0.0.0.0 | 11:22 | |
maybe that will work | 11:23 | ||
eveo | nope. still getting "Could not connect socket: Connection refused" in wait_port | 11:24 | |
and if I start the command manually, then wait_port succeeds on first try | |||
tipdbmp | timotimo, this seems to work but seems kind of hacky and error prone?: sprunge.us/FIdS | 11:29 | |
eveo | gonna try upgrading my perl6 (I'm on a dev commit) | 11:30 | |
11:31
wamba left
|
|||
sacomo | thanks | 11:35 | |
11:36
xtreak joined
11:38
cpage left
11:40
xtreak left,
cpage joined
11:42
AlexDaniel joined
|
|||
eveo | nope still the same issue... Building 2017.05 now | 11:43 | |
11:47
Cabanossi left
11:50
Cabanossi joined
11:52
xtreak joined
|
|||
eveo | Crap | 11:55 | |
It works on 2017.05 | |||
timotimo | tipdbmp: i have a litle tip for you | ||
say 0xff11223344.polymod(0x100 xx *).reverse.fmt("%x") | 11:56 | ||
evalable6 | ff 11 22 33 44 | ||
11:56
xtreak left
|
|||
eveo | jnthn: looks like something's gone awry with socks and/or Proc::Async since 2017.05 :/ Proc::Async-started app doesn't wanna accept connections. Gonna try golf it after work today | 11:56 | |
timotimo | tipdbmp: we also have something for the other direction | 12:00 | |
sacomo | eveo, I just tested it on 2016.11 and the tests pass | ||
12:00
araraloren joined
|
|||
timotimo | m: say :16[1, 2, 3, 4].base(16) | 12:00 | |
camelia | 1234 | ||
timotimo | er, huh? | ||
oh, duh, base 16 %) | 12:01 | ||
m: say :255[1, 2, 3, 4].base(16) | |||
camelia | FF0202 | ||
timotimo | m: say :256[1, 2, 3, 4].base(16) | ||
camelia | 1020304 | ||
timotimo | this is the one i was trying for | ||
eveo | sacomo: they pass on 2017.05 too. I first thought it might've been the .kill bug that got fixed after 2017.05, but nope. It's not that bug and yeah, I see the bailador process still running after the tests finish. | 12:02 | |
sacomo | hmm | 12:03 | |
eveo | sacomo: I'm not exactly sure how that works. Because you await $proc.start, so that means by the time you connect, the proc you started already finished and so .kill()ing it is pointless. And it spawns something that actually accepts connections and still lives after tests end. | ||
sacomo | on the 2016.11 the process does go away | ||
eveo | really | ||
sacomo: well, if you figure it out, let me know how. I have exact same problem in one of my apps. | 12:04 | ||
sacomo | it is a persistant process | ||
eveo leaves to work | |||
sacomo | starts a web server | ||
ok, will do, thanks for looking into this | |||
jnthn | eveo: I strugle to imagine how those would interact...I mean, it's a completely separate process, and the way we're spawning it boils down to the same libuv functions as before. :S | 12:05 | |
MasterDuke | timotimo: for coverable, would you want all the possible files+lines reported (e.g., NQP files, Rakudo's NQP files), or just Rakudo's src/* files, or just Rakudo's src/core/* files? | 12:09 | |
timotimo | MasterDuke: i expect it'd be enough for src/core/*, but maybe we could parse a FILTER=foobar at the beginning to override this? | 12:10 | |
MasterDuke | sure, default to FILTER='SETTING::' | 12:11 | |
12:31
ufobat left
12:32
Cabanossi left
12:35
Cabanossi joined
12:36
wamba joined
12:37
mcmillhj joined
12:42
xtreak joined
12:46
xtreak left
|
|||
tipdbmp | Is there another way to turn a string into a type other tan EVAL? | 12:51 | |
12:51
abraxxa left
|
|||
tipdbmp | m: use use MONKEY-SEE-NO-EVAL; say EVAL('Int'); | 12:51 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Undeclared name: MONKEY-SEE-NO-EVAL used at line 1 |
||
tipdbmp | m: use MONKEY-SEE-NO-EVAL; say EVAL('Int'); | ||
camelia | (Int) | ||
timotimo | m: say ::('Int').perl | 12:52 | |
camelia | Int | ||
timotimo | m: say ::('List').new(1, 2, 3).perl | ||
camelia | (1, 2, 3) | ||
12:53
wamba left
12:55
kyan left,
perlpilot joined
|
|||
tipdbmp | Okay, thanks. | 12:55 | |
timotimo | you can get at all lexical symbols like this | 12:57 | |
tipdbmp | Is there a way to declare a class attribute/static field such that class Foo { class-field $foo = 1; }; class Bar is Foo { }; Bar.$foo == 1? | 13:01 | |
Right now I'm using our and looking it up from the child class with: Bar.^parents()[0].WHO.{'$foo}; | 13:02 | ||
lizmat | tipdbmp: class A { my $foo = 1; method foo() { $foo } }; class Bar is Foo { $.foo == 1 } | 13:05 | |
note: $.foo is just another way of writing self.foo | 13:06 | ||
13:06
robertle joined
|
|||
jnthn | You can declare it my $.foo = 1 | 13:08 | |
And that method foo is written for you | |||
lizmat | TIL :-) | ||
13:12
mr-fooba_ joined
13:13
mr-foobar left
13:18
Cabanossi left,
curan joined
13:20
Cabanossi joined
13:22
kyan joined
13:28
xtreak joined
13:34
cognominal left
|
|||
[Coke] | bailador --config host:10.234.125.244 bin/sample.p6 # dies and gives me the usage statement for bailador. | 13:40 | |
ah, found it. | |||
the ole, "let me complain in chat so I can immediate find my problem" tricl. | |||
*trick | 13:41 | ||
timotimo | yes! | ||
[Coke] | *immediately | 13:42 | |
and then type fast so I scwre pu lal teh wrd0s | |||
timotimo | lal | 13:43 | |
13:44
tipdbmp left
|
|||
moritz | m: class Parent { our $.x = 1 }; class Child is Parent { }; child.x | 13:45 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Undeclared routine: child used at line 1. Did you mean 'chmod'? |
||
moritz | m: class Parent { our $.x = 1 }; class Child is Parent { }; Child.x | ||
camelia | ( no output ) | ||
moritz | m: class Parent { our $.x = 1 }; class Child is Parent { }; say Child.x | ||
camelia | 1 | ||
moritz | hm, tipdbmp is gone | ||
13:47
xtreak left
13:48
MasterDuke left,
Gruber is now known as Grrrr
13:59
khw joined
14:02
cognominal joined
14:05
kurahaupo joined
14:07
kurahaupo left,
kurahaupo_ left,
kurahaupo joined
14:09
kurahaupo_ joined
14:11
kurahaupo left
14:19
kurahaupo_ left,
kurahaupo joined
14:20
kurahaupo left
14:23
kurahaupo joined
|
|||
tbrowder | MasterDuke: i don't see those packages listed on rakudo.org. are they regularly built? sounds like a great resource for noobs. | 14:23 | |
14:26
ufobat joined,
alimon joined
14:34
lowbro left
14:36
tipdbmp joined
|
|||
tipdbmp | m: class Foo { has uint16 $.bar = 0x8000; }; my $foo = Foo.new; say $foo.bar; | 14:36 | |
camelia | -32768 | ||
tipdbmp | Why negative? | ||
timotimo | our uint handling isn't very good yet | 14:38 | |
tipdbmp | Okay. | ||
araraloren | m: class Foo { has uint16 $.bar = 0x8000; }; my $foo = Foo.new; say $foo.bar.WHAT; | 14:42 | |
camelia | (Int) | ||
14:48
curan left
|
|||
robertle | what's the idiomatic way to check that a variable contains something that can be interpreted as a number? | 14:48 | |
timotimo | try +$thing | 14:49 | |
m: with try +"hello" { say "hello is a number" }; with try +"99" { say "99 is a number" } | |||
camelia | 99 is a number | ||
eveo | m: with +"hello" { say "hello is a number" }; with +"99" { say "99 is a number" } | 14:50 | |
camelia | 99 is a number | ||
14:50
wamba joined,
colomon left
|
|||
robertle | thanks! | 14:50 | |
"with try ...." is a nice pattern, usefulk for others stuff! | 14:51 | ||
eveo | m: +"99" andthen "99 is a number".say | ||
camelia | 99 is a number | ||
eveo | m: +"99" andthen "$_ is a number".say | ||
camelia | 99 is a number | ||
eveo | m: +"١١" andthen "$_ is a number".say | 14:52 | |
camelia | 11 is a number | ||
eveo | robertle: you don't need `try` in this case. The failed coersion results in Failure | ||
huggable: Failure | |||
huggable | eveo, Delayed exception: docs.perl6.org/type/Failure | ||
eveo | \o | ||
14:52
eveo left
|
|||
timotimo | oh, nice | 14:55 | |
Juerd | "try +$thing". Wow. I'd have assumed val($thing) ~~ Numeric | 14:56 | |
timtowtdi, I guess. We should now fight over which is "better"! :P | 14:57 | ||
14:57
aindilis left
14:58
ThomasWall joined
|
|||
ThomasWall | Just here to say that I got my degree in sound engineering, but I'm focusing on a career in IT. I began learning JS last year. I've chosen Perl 6 as my second language. Thanks to Larry Wall & the Perl community for this excellent language! | 14:58 | |
timotimo | cool \o/ | 15:00 | |
[Coke] | glad to hear it. | 15:02 | |
15:02
eveo joined
|
|||
eveo | Juerd: they're not equivalent. +'42' returns Int, val('42') ~~ Numeric returns Bool, and even val('42') returns an IntStr, not an Int. | 15:04 | |
araraloren | The val has documentation: docs.perl6.org/routine/val | 15:06 | |
Geth | perl6.org: 8a38dd2867 | (Tom Browder)++ (committed using GitHub Web editor) | source/downloads/index.html add link to Linux binary packages |
||
eveo | tbrowder: it's a bit confusing to list Rakudo *compiler* packages in the section for Rakudo *Star* | 15:07 | |
15:08
domidumont left
15:12
wamba left
|
|||
tbrowder | sorry, i guess i don't understand the purpose of the packages. what is the real difference now? should the debs be in a different category? another place? don't they provide perl6? | 15:13 | |
perlpilot | tbrowder: I'd make another subsection that mentions compiler packages and how they differ from Rakudo Star | 15:14 | |
eveo | tbrowder: yeah, subsection would be good. The difference is they include compiler-only. No package managers (though the packages page lists instructions for how to get one) or any of the modules included in Rakudo Star. | 15:16 | |
15:16
cdg joined
15:17
araraloren_ joined
|
|||
tbrowder | i know there has been some discussion about star here, but the page in question doesn't say anything about it except it's "a useful and usable production distribution of Perl 6" (sounds like something from Thomas the Tank Engine). | 15:17 | |
eveo | tbrowder: and such confusion is why we've kinda avoided publicizing the monthly compiler releases on anything but perl6-compiler mailing list. | ||
tbrowder: as far as the end user is concerned, Rakudo Star is the One and Only way to get Perl 6 | 15:18 | ||
perlpilot | btw ... do we really want to say "...supports the latest Christmas Perl 6"? Aren't the 6.c, 6.d, etc. the "offical" versions ? | ||
tbrowder | ok, but, as a deb 8 user, i think it would be useful for such users who don't want to compile from source. | ||
15:18
ThomasWall left
|
|||
eveo | Don't distros package rakudo star anyway? | 15:18 | |
15:19
araraloren left
|
|||
araraloren_ | perlpilot, yeah, like perl6 -v output: implementing Perl 6.c | 15:21 | |
15:26
tipdbmp left
15:28
Sabotender left
15:31
Sabotender joined
15:33
Sabotender left,
Sabotender joined
15:37
Sabotender left
15:38
Sabotender joined
|
|||
[Coke] | "the c stands for Christmas" | 15:38 | |
(seriously) | |||
tbrowder | eveo: problem with debian users is old packages, not current enough for rapidly developing perl 6 | 15:42 | |
15:43
Sabotender left
|
|||
tbrowder | so, given the comments, i shall just remove the entry for now... | 15:44 | |
eveo | tbrowder: shoving links to a wrong software package isn't a solution. | ||
15:44
cdg_ joined
|
|||
eveo | IMO this ultimately goes into star being non-ideal in its current state | 15:44 | |
15:45
jonas2 left
|
|||
eveo | And I plan to make perl6.vip thing as a possibile solution, but ATM my time has been used in improving compiler release quality. | 15:45 | |
15:47
cdg left
|
|||
Geth | perl6.org: 4a3a9596f8 | (Tom Browder)++ (committed using GitHub Web editor) | source/downloads/index.html remove reference to compiler-only packages |
15:48 | |
eveo reads description on perl6.vip | |||
Don't think there'd be "camelion" thing any more, but rather a zef plugin | 15:49 | ||
and instead of adding all these Task:: dummy packages into ecosystem you'd use that plugin to install collections of modules | |||
(including making your own, personalized collections you could install on, say, multiple boxes using a short ID) | 15:50 | ||
buggable: eco Task:: | |||
buggable | eveo, Found 3 results: Task::Galaxy, Task::Noise, Task::Popular. See modules.perl6.org/#q=Task%3A%3A | ||
15:50
eveo left
15:53
robertle left
16:07
|oLa| left
16:41
espadrine joined
16:43
kurahaupo left
|
|||
stmuk_ | isn't the current ecosystem use of Task:: more general and better than making it all dependent on a particular plugin for a particular installer? | 16:44 | |
16:57
jaush left
17:00
mcmillhj left,
mcmillhj joined
17:02
buggable left,
roguelazer left,
ZofBot left,
llfourn left,
buggable joined,
ChanServ sets mode: +v buggable,
Geth left
17:03
NeuralAnomaly left,
NeuralAnomaly joined,
ChanServ sets mode: +v NeuralAnomaly
17:04
roguelazer joined,
adrusi joined
17:08
llfourn joined
17:11
Actualeyes left
17:12
eveo joined
|
|||
ugexe | anyone looking for a fairly cross-platform way to slurp an http request body into a var - github.com/ugexe/Perl6-App--ecogen...pm6#L9-L28 + `return powershell-webrequest($uri) // curl($uri) // wget($uri)` - this works now (would deadlock prior to proc rework) | 17:14 | |
eveo | stmuk_: it's no different than depending on a zef plugin to get CPAN modules. | 17:16 | |
And releasing a whole dist into the ecosystem just to create a collection of modules is like using a rusty bazooka to kill a fly. | 17:19 | ||
Much better to have a dynamic system where it's easy to create new meta packages | 17:21 | ||
stmuk_ | I think it's more like the right tool for the job (a metafile) rather than hammering a screw in with a plugin | ||
eveo | It's not a metafile tho | 17:22 | |
It's a distro released to p6c ecosystem that requires a p6c zef plugin | |||
17:22
javan joined
|
|||
eveo | And instead it will be a dynamically generated metadata that requires whatever zef plugin | 17:22 | |
Pointless naysaying like this is precisely why I plan to make PVIP my own distro and not under the perl6 umbrella | 17:23 | ||
mst | the Task:: system on CPAN was basically a hack | ||
17:23
eveo left
|
|||
mst | useful hack, but still a hack | 17:23 | |
stmuk_ | go ahead .. let a thousand flowers bloon | ||
bloom even .. but I really don't see the problem with the current system | 17:24 | ||
technical problem I mean | |||
ugexe | its not a technical problem. but it can be useful to know which packages provide nothing (which can't be done because meta data does not include bin/ files) | 17:25 | |
17:26
pilne joined
|
|||
ugexe | and fwiw the plugins being spoke of are all the same plugin - p6c/cpan are essentially a plugin for a json array of hash from some url | 17:28 | |
but that also just provides a list of meta data... there is not yet a "install everything from this ecosystem" like command | |||
i'm open to suggestions | 17:29 | ||
17:29
ChoHag left,
robertle joined
17:31
mtj_ left,
petercommand left
17:38
AlexDaniel left
17:44
perlpilot left
17:45
perlpilot joined,
robertle left
17:46
Geth joined,
ChanServ sets mode: +v Geth
17:55
javan left,
Actualeyes joined
17:57
SCHAPiE left
18:01
wamba joined
18:02
cdg_ left
18:04
SCHAPiE joined
18:07
user3 joined
|
|||
user3 | m: my Bool $a = 0; | 18:07 | |
camelia | Type check failed in assignment to $a; expected Bool but got Int (0) in block <unit> at <tmp> line 1 |
||
zengargoyle | ugexe: one thing i looked for in zef this morning was some sort of '--skip' option. where it doesn't' just stop on a failure but skips to the next. | ||
user3 | why is it that the compiler can't convert automatically 0 to false? | ||
is there a type "bool"? | 18:08 | ||
18:08
travis-ci joined
|
|||
travis-ci | Doc build errored. Jan-Olof Hendig 'Changed formatting of some code examples' | 18:08 | |
travis-ci.org/perl6/doc/builds/243752067 github.com/perl6/doc/compare/b8cf1...c5af972173 | |||
18:08
travis-ci left
|
|||
moritz | there is a Bool | 18:08 | |
user3 | is Bool an object or is it one byte (or one bit)? | ||
moritz | user3: and if you want the compiler to automatically coerce stuff for you, you have to tell it to do so | 18:09 | |
user3 | m: my Bool $a = Bool(0); | ||
camelia | ( no output ) | ||
moritz | (but it only works in signatures right now) | ||
m: sub f(Bool() $x) { say $x }; f 0 | |||
camelia | False | ||
user3 | yes. how do itell it to convert automatically? | ||
moritz | also, you can use prefix ? to coerce to bool | ||
m: say ?0, ?1 | 18:10 | ||
camelia | FalseTrue | ||
TimToady | my Bool() $x = 0; # but Not Yet Implemented | ||
user3 | ok | ||
18:11
robertle joined
18:29
travis-ci joined
|
|||
travis-ci | Doc build errored. Jan-Olof Hendig 'More formatting fixes' | 18:29 | |
travis-ci.org/perl6/doc/builds/243754286 github.com/perl6/doc/compare/2ec5a...5db60dcd64 | |||
18:29
travis-ci left
18:32
cdg joined
18:33
|oLa| joined
|
|||
ugexe | zengargoyle: they exist as `--force-*` flags... --force-test --force-build etc | 18:38 | |
--force enables all that aren't explicitly disabled | |||
18:46
setty1 joined
18:49
Cabanossi left
18:50
Cabanossi joined
18:55
tadzik left,
user3 left
18:56
uberbaud joined
18:57
javan joined
18:58
mr-foobar joined
18:59
xui_nya[m] left,
Matthew[m] left
|
|||
zengargoyle | ugexe: i mean just skip it if it fails, not force it to be installed. | 18:59 | |
18:59
unclechu left
19:00
ilmari[m] left,
dp[m] left,
mr-fooba_ left,
CIAvash[m] left,
mienaikage left
19:03
incredible left
19:04
incredible joined
|
|||
zengargoyle | so if you do `zef --serial install $(< /tmp/list-o-modules)` it doesn't stop on failure, it just only installs the modules that tested ok. | 19:04 | |
ugexe | optional dependencies should be handled by authors, not users | 19:06 | |
19:07
grondilu left
19:09
hythm left
|
|||
moritz | man, looking for technical publishers is frustrating | 19:10 | |
I have some contact at O'Reilly, but they don't answer my emails | |||
then there are publishes that have official email addresses for submitting book ideas, and they don't answer either | 19:11 | ||
19:11
cdg left
19:12
cdg joined
19:14
hythm joined
19:17
ChoHag joined
19:23
uberbaud left
|
|||
zengargoyle | ugexe: i don't think i'm explaining it right. if i do `zef install A B C D` (all unrelated) and zef decides to install them in that order, and if C fails, skip it and keep on installing D. | 19:24 | |
ugexe | if C fails at some step it potentially changes the dependency graph | 19:26 | |
19:26
Geth left
|
|||
zengargoyle | it currently will not try to install D if C fails, and you have to edit out C from the command line and try again. | 19:26 | |
so it can't just skip and modules that needed C and do the rest that don't depend on C? | 19:27 | ||
*any | |||
ugexe | version ranges? | 19:28 | |
19:29
Geth joined,
ChanServ sets mode: +v Geth
|
|||
ugexe | emulates/excludes/superceded_by (when/if ever they get implemented)? | 19:29 | |
zengargoyle | 'cause with any large enough list of desired modules, one of them is going to fail (like p6doc or LWP::Simple) | 19:30 | |
ugexe | a requirement is required. if its optional / can-be-skipped then why is it a requirement? | 19:31 | |
zengargoyle | but that doesn't mean you can't skip the failures and still install DOM::Tiny and DBIish. | ||
19:31
Geth left
|
|||
zengargoyle | because it's a list of random modules. not a module and it's dependencies. did you ever use p5's cpan-outdated program? | 19:32 | |
`cpan-outdated | cpanm` - list all installed modules that have a newer version and install them. | 19:33 | ||
19:38
Geth joined,
ChanServ sets mode: +v Geth
|
|||
zengargoyle | np, i guess i can just do `for mod in $(< list-o-modules); do zef install $mod; done and call it a day. :) | 19:39 | |
19:40
Geth left
|
|||
ugexe | the problem i have with declaring this as just `--skip` is it would get to take precedence over --force-* flags and I want to avoid that type of confusing interface | 19:44 | |
19:44
AlexDaniel joined,
cdg_ joined
19:45
javan left
|
|||
zengargoyle | cool, the for loop will do what i want just a bit slower. :) | 19:45 | |
19:46
colomon joined
19:47
cdg left
|
|||
zengargoyle | but it's also going to make Task::Whatever types of collection of modules fail if any single module fails. (or you --force it and get possibly broken module) | 19:47 | |
ugexe | im open to the option if it can be expressed in a better way | ||
19:47
salv0 left
19:48
Geth joined,
ChanServ sets mode: +v Geth
19:51
ZofBot joined,
ChanServ sets mode: +v ZofBot
19:56
sQuEE is now known as fsun
19:57
salv0 joined
20:02
AlexDaniel left
20:04
Cabanossi left
20:05
Cabanossi joined
20:14
travis-ci joined
|
|||
travis-ci | Doc build errored. Jan-Olof Hendig 'Make text more explicit. lizmat++' | 20:14 | |
travis-ci.org/perl6/doc/builds/243795659 github.com/perl6/doc/compare/cc5db...a0487fece0 | |||
20:14
travis-ci left
|
|||
perlawhirl | hi perlers | 20:15 | |
perlpilot | ugexe: maybe "zef install-each A B C D" ? (just to have zef do the loop that zengargoyle is talking about with independent dependency graphs) at least then it's clear that something different is happening | 20:17 | |
geekosaur wonders if a better idea is a global '--transaction' option | 20:22 | ||
or even a grouped option: zef install foo bar --transaction baz quux --/transaction meef | |||
foo, bar, and meef are independent, but both baz and quuz must install or neither does | 20:23 | ||
perlawhirl clickbaits www.0racle.info/articles/perl_6_on_rails | 20:24 | ||
perlpilot | geekosaur: oh! I like that | 20:26 | |
zengargoyle | there's already --serial which installs each module after testing (default --/noserial only installs once everything is done). | 20:27 | |
geekosaur | right, but that doesn't mean quite the same thing | 20:28 | |
zengargoyle | but --transaction and install-each don't seem to help with the Task::Whatever module case. | 20:29 | |
geekosaur | what exactly is that case? | 20:31 | |
zengargoyle | Task::Star, Task::Popular, etc. just lists of cool useful modules that aren't really interdependent, just collected together in one 'package' | 20:32 | |
it is a failure if they don't all install, but it's also a "meh, do your best and let me deal with the fallout" | 20:34 | ||
geekosaur | right, that's what the default mode would be | 20:36 | |
--transaction is for when you need stuff to install together or not at all | |||
perlpilot | sounds like a failure of Task::Whatever, in general. | 20:37 | |
geekosaur | Task::Whatever as a concept is somewhat broken | ||
as Task::Star demonstrated | |||
one could argue it's a hackaround for inadequate tooling | 20:38 | ||
mst | perhaps the answer would be for Tasks to provide their stuff as recommends | ||
geekosaur | so I'm suggsting mroe adequate tooling instead :) | ||
mst | since generally requires failures are a failure, but recommends failures are not | ||
zengargoyle | do we have a recommends in META6? | 20:40 | |
perlpilot | I don't see it in S22 | 20:41 | |
mst | I'm not sure the META6 process ever really paid attention to the version 2 of the perl5 META spec | 20:42 | |
but that's presumably fixable | |||
zengargoyle | but i think zef would still have to change... it stops on first thing that fails. so it still boils down to keep going after one thing fails. | ||
geekosaur | right, that was the proposed install-each | 20:43 | |
perlpilot | 'recommends' seems to be deprecated according to CPAN::Meta::Spec | 20:45 | |
zengargoyle | geekosaur: yeah, just applied over the depends/reccomends of a single `zef install-each A` which may be exactly what you meant and i missed it. | ||
geekosaur | well, the point was more that a Task::Foo would boil down to zef install-each [each dependency here] so if one fails it continues | 20:46 | |
my suggestion was make that the default and provide --transaction to get the current behavior, possibly with some granularity | |||
20:47
ChoHag left
|
|||
geekosaur | (Task modules might even want that granularity sometimes) | 20:47 | |
zengargoyle | but --static sorta already does that, depending on how the dependencies get sorted. the ones that complete before the first failure get installed. the ones after the fist failure don't (even if they could be). | ||
20:48
TEttinger joined
|
|||
zengargoyle | d'oh --serial | 20:48 | |
without --serial, it's already one big transactional. i think it installs to a temp CUR and then moves them all at once. | 20:49 | ||
20:49
mcmillhj left
20:52
stmuk joined
|
|||
geekosaur | right, it's the each/independent case that is currently missing | 20:53 | |
so one proposal is to add it, and mine is to make the independent one the default and optionally add some extra flexibility | 20:54 | ||
20:54
stmuk_ left
|
|||
zengargoyle just sorta wants it to work like cpanm :P | 20:55 | ||
20:55
rindolf left
|
|||
geekosaur | and part of the problem here is that end users want one thing, system integrators/packagers want another, etc. | 20:55 | |
satisfy one and piss off the other | 20:56 | ||
zengargoyle | but the transaction bit is really handy so you don't get a lot of cruft in your repo if the thing you actually asked for doesn't build. | ||
i did a lot of installing to a local::lib first and then rsync if it actually worked. | 20:57 | ||
20:57
sufrostico left
20:59
rumble joined
|
|||
zengargoyle | --pretend-recommended | 20:59 | |
20:59
sufrostico joined
|
|||
zengargoyle | but prune things missing dependencies | 21:00 | |
21:03
grumble is now known as Guest77353,
Guest77353 left,
rumble is now known as grumble,
Skarsnik joined,
Cabanossi left
21:05
Cabanossi joined,
mcmillhj joined
21:09
mcmillhj left
21:13
mr-foobar left
|
|||
ugexe | the reason for --/serial being default is because from a concurrency point of view it would be faster since it can group all the dependencies of things together, and so that the next time you run the zef command you'll get the same results (e.g. an optional requirement getting installed now allows some test for a different module) | 21:14 | |
timotimo | perlawhirl: did you know that you can always return a Nil or Failure regardless of the return type signature? | 21:16 | |
21:17
mr-foobar joined,
sufrostico left
21:19
sufrostico joined
|
|||
ugexe | but it could be as simple as `zef install Foo Bar Baz,XXX,YYY ZZZ` - or any delimiter that isn't allowed in a module name | 21:20 | |
timotimo | well, can't be & because shell | ||
21:20
mcmillhj joined
|
|||
timotimo | what even do we forbid in module names? | 21:20 | |
are + allowed? | 21:21 | ||
perlpilot | + shouldn't be allowed | 21:22 | |
ugexe | I doubt it... I think its the same as methods/subs | ||
perlpilot | just alphanumeric and "-" and "'" | ||
(I think) | |||
ugexe | :: | ||
but *not* : | 21:23 | ||
perlpilot | yes, of course that too :) | ||
ugexe | m: package 1a { }; # must start with alpha | 21:24 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Unable to parse package definition at <tmp>:1 ------> 3package7⏏5 1a { }; # must start with alpha expecting any of: generic role |
||
perlpilot | yeah, same rules as any identifier | ||
timotimo | so we put digits in front to signify "groups" :P | 21:25 | |
perlpilot | m: package foo123-bar; | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> This appears to be Perl 5 code. If you intended it to be Perl 6 code, please use a Perl 6 style declaration like "unit package Foo;" or "unit module Foo;", or use the block form instead of the semicolon fo… |
||
perlpilot | m: package foo123-bar { } | ||
camelia | ( no output ) | ||
perlpilot | m: package foo123-123bar { } | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Unable to parse package definition at <tmp>:1 ------> 3package foo1237⏏5-123bar { } expecting any of: generic role |
||
perlpilot | yep | ||
21:25
mcmillhj left
|
|||
timotimo | that error message could be better | 21:25 | |
perlpilot | yeah, that message is quite LTA | ||
ugexe | m: package A::1 { } | ||
camelia | ===SORRY!=== Name A:: ends with '::' and cannot be used as a package name |
||
Skarsnik | this is wrong lol | 21:26 | |
Hello there btw ^^ | |||
perlpilot | m: package I-can't-help::myself { } | ||
camelia | ( no output ) | ||
jnthn | Well, it's correct in so far as 1 isn't a valid part of a package name, so it isn't even considered :) | ||
21:27
hythm left
|
|||
jnthn | But we could always peak ahead a bit | 21:27 | |
*peek | |||
ugexe | we're trying to figure out delimiters for parsing CLI arguments of module names | ||
jnthn | ugexe: Well, you could use numbers :P | 21:28 | |
ugexe | \0 naturally | ||
21:30
mienaikage joined
21:32
hythm joined
|
|||
zengargoyle just want like --go and --gogo. `zef --go install A B C` -- basically the for loop, just try to install A, B, and C. `zef --gogo Task::Handy Task::Math` -- same as --go, but also treat the depends of each module as --go (just so you can keep a list of modules in a Task and put it on github or something). | 21:35 | ||
seems the module modifier should be Foo:optional | 21:36 | ||
21:36
mcmillhj joined
|
|||
zengargoyle | Foo:ver<*>:auth<github:zengargoyle>:optional | 21:36 | |
or some such... | 21:37 | ||
:depend<build-depends> :depend<test-depends> :depend<recommends> matching whatever is in META6 | 21:40 | ||
21:41
mcmillhj left
|
|||
zengargoyle | then you could invert things and in the META say: "auth" : { "zengargoyle" : [ "Foo", "Bar" ], "ugexe" : [ "zef" ] } :P | 21:42 | |
ugexe | well whatever you put on the command line should also work in the META6 fields | 21:43 | |
zengargoyle | and everybody could specify a module in a myriad of ways and chaos ensues. :) | ||
ugexe | but you also have urls | 21:45 | |
local file paths | |||
zengargoyle | ah, never thought of trying to put a url or file path in a META like that. | 21:46 | |
ugexe | and you probably want local file paths to fulfil dependencies for anything else asked for with it | ||
if you `zef install Foo::Bar ./foo-bar/dependency/Baz/v2` you dont want it to install whatever Baz it finds on the internet you want it to use the one in the path | 21:47 | ||
21:50
unclechu joined,
ilmari[m] joined,
dp[m] joined,
CIAvash[m] joined,
tadzik joined,
Matthew[m] joined,
xui_nya[m] joined
|
|||
zengargoyle | i'd probably be happy with `zef install ./foo-bar/dependency/Baz/v2 Foo::Bar` and accept that there's an order to installation and Baz will be installed first and found by Foo::Bar. | 21:50 | |
ugexe | that makes concurrency less appealing | 21:51 | |
zengargoyle | ah. *nods* | ||
21:52
mcmillhj joined
|
|||
ugexe | a solution will probably manifest itself for the `smoke` command though | 21:54 | |
zengargoyle isn't used to expecting concurrency without a lot of effort on myself. | |||
21:56
mcmillhj left
21:58
alimon left
22:01
salv0 left
22:03
Cabanossi left
22:05
Cabanossi joined
|
|||
perlawhirl | timotimo: ahh yes, i did know that. i might edit to make some mention of it | 22:08 | |
22:08
mcmillhj joined
|
|||
timotimo | did you also know you can call any method on Nil and get back self? | 22:08 | |
these semantics probably don't work with .&foo syntax, because that's not an actual method call | 22:09 | ||
22:12
mcmillhj left
22:14
konsolebox left
|
|||
perlawhirl | can you give an example. I tried calling a method on a Nil variable and it just tells me no such method | 22:15 | |
timotimo | oh? | 22:17 | |
maybe only for failure, ten | |||
then* | |||
m: Nil.foobar.say | |||
camelia | Nil | ||
timotimo | no, you probably assigned a Nil to a $foo? | ||
because assigning Nil to a variable resets it to its default value | |||
that'd usually be Any, which doesn't have the "every unknown method gives you Nil back" behaviour | 22:18 | ||
22:21
konsolebox joined
|
|||
timotimo heads to bed | 22:21 | ||
22:22
beginner joined
|
|||
lizmat | good night, timotimo | 22:22 | |
beginner | is there a suspend statement in perl6...or any equivalents that suspends the current task in execution | 22:23 | |
22:24
mcmillhj joined
|
|||
timotimo | do we have sleep() for that? (that'd freeze an operating-system-level thread) | 22:24 | |
otherwise if you are using v6.d.PREVIEW, you can "await Promise.in(9999999999999)" or something | |||
or await a promise that nobody will ever resolve/reject | 22:26 | ||
Skarsnik | timotimo.sleep | ||
beginner | timotimo : i guess await over the promise will help....and is there any skip statement? | ||
timotimo | what does "skip" mean? | 22:28 | |
22:28
mcmillhj left
|
|||
timotimo | you can skip to the next iteration of a loop using "next" | 22:29 | |
beginner | terminating the current loop and resuming execution at next statement | 22:30 | |
jnthn | last | 22:31 | |
Presuming you mean "next statement after the loop" :) | |||
22:31
cdg_ left
|
|||
beginner | will try that | 22:32 | |
22:33
mcmillhj joined
22:34
dolmen joined
22:35
robertle left
22:37
mcmillhj left
22:40
setty1 left
22:42
Skarsnik left
22:50
ChoHag joined
23:01
araralonre__ joined
23:03
araraloren_ left
23:16
pochi joined
23:17
araraloren_ joined
|
|||
Geth | doc: f48a1b3198 | (Elizabeth Mattijsen)++ | doc/Language/5to6-perlfunc.pod6 Rewrite the alarm section |
23:17 | |
23:18
dolmen left
23:19
esh_ joined
23:20
Praise- joined,
Praise- left,
Praise- joined
23:21
lucs joined,
leedo_ joined,
smash_ joined,
literal_ joined,
sunnavy_ joined,
mst_ joined
23:22
BooK_ joined,
broquain1 joined
23:25
mniip_ joined,
tomaw| joined,
eythian_ joined
23:26
musca` joined,
araralonre__ left,
lucs_ left,
esh left,
Praise left,
jferrero left,
pochi_ left,
emeric left,
jnthn left,
mst left,
silug left,
eythian left,
literal left,
leedo left,
smash left,
mniip left,
musca left,
sunnavy left,
tomaw left,
BooK left,
eythian_ is now known as eythian
23:27
emeric joined
23:28
jnthn joined
23:29
jferrero joined,
notbenh left,
ranguard joined
23:30
silug joined
23:31
notbenh joined
23:33
javan joined
23:42
javan left
23:43
kurahaupo joined
23:50
javan joined
|
|||
lucs | Heredoc with q:c/foo/ expands "abc {2+2} def \{3+3}" to "abc 4 def \{3+3}" | 23:54 | |
How do I get "abc 4 def {3+3}" | |||
Better yet, why can't I specify the closure character? (I'm heredocing LaTeX, I'd have to escape tons of '{') | |||
(and also escape tons of '\') | 23:55 | ||
23:55
javan left
23:59
dj_goku_ left
|
|||
lucs | ( q:c:to/foo/ actually) | 23:59 |