»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by masak on 12 May 2015.
skids .tell lizmat Re: the Block vs Routine/Any vs Mu issue: github.com/rakudo/rakudo/pull/447 01:52
yoleaux skids: I'll pass your message to lizmat.
zostay m: my Int @a = 1, 2, 3; @a.perl.say; @a>>.perl.say; 03:49
camelia rakudo-moar a47a3d: OUTPUT«Array[Int].new(1, 2, 3)␤1 2 3␤»
zostay m: my Int @a = 1, 2, 3; @a[1]:delete; @a.perl.say; @a>>.perl.say; 03:50
camelia rakudo-moar a47a3d: OUTPUT«Array[Int].new(1, Int, 3)␤1 Mu 3␤»
zostay that's confusing to me... the type of the box looks different when you look at the elements individually 03:51
skids m: my Int @a = 1, 2, 3; @a[1]:delete; @a[0,1,2]>>.perl.say; 04:59
camelia rakudo-moar a47a3d: OUTPUT«1 Int 3␤»
skids m: my Int @a = 1, 2, 3; @a[1]:delete; (@a,)>>.gist.say;
camelia rakudo-moar a47a3d: OUTPUT«1 (Any) 3␤»
skids m: my Int @a = 1, 2, 3; @a[1]:delete; (@a,)>>.perl.say; 05:00
camelia rakudo-moar a47a3d: OUTPUT«1 Any 3␤»
skids m: my Int @a = 1, 2, 3; @a[1]:delete; @a.list.perl.say;
camelia rakudo-moar a47a3d: OUTPUT«Array[Int].new(1, Int, 3)␤»
skids m: my Int @a = 1, 2, 3; @a[1]:delete; @a.list>>.perl.say; 05:01
camelia rakudo-moar a47a3d: OUTPUT«1 Mu 3␤»
aditya rakudo: say 1..5 05:15
camelia rakudo-moar a47a3d: OUTPUT«1..5␤»
aditya rakudo: print 1..5
camelia rakudo-moar a47a3d: OUTPUT«12345»
aditya Why the difference between say and print? 05:16
1..5 is not evaluated when passed to say.
b2gills `say` calls `.gist` on the object while `print` just calls `.Str` (effectively) 05:39
ugexe it looks like say(\x) gets called when maybe say(|) is expected 05:47
masak morning, #perl6! 06:33
moritz good morning, masak, ugexe, b2gills, * 06:35
masak moritz: does German have the thing where translating English tech terminology into their corresponding German words isn't done because it sounds so silly to use the non-English term? 06:50
(Swedish most certainly does)
xiaomiao masak: there's official german terms, but they are mostly wrong
moritz masak: yes (though there are always a few technophobes who still translate)
xiaomiao e.g. a stack becomes a cellar, and then it's like wtf ur doing
masak I just had the realization that "markör" would be the perfect translation of "[Git] tag". and "markera" would be the verb. but I don't see a future where I will use the Swedish words a lot. 06:51
xiaomiao a compiler is a translator :)
moritz: the proper translation is often not the officially accepted word, so german tech words are screwed up badly
masak xiaomiao: you put your finger on one important aspect of eschewing the non-English terms: they lose their original precise meaning. 06:51
moritz: I'm not a technophobe (I think), but sometimes I do wonder if I shouldn't translate more. 06:52
moritz xiaomiao: though even public authorities use the word "E-Mail" by now, instead of "Elektronische Post"
masak moritz: if for no other reason that my brain runs smoother when it doesn't have to context-switch all the time, even for a single word.
moritz or "Elektronischer Brief"
xiaomiao masak: no, I'm saying, the german official word is plain *wrong* 06:53
a cellar is a heap, not a stack
masak *nod*
xiaomiao moritz: "De-Mail" giggle.
masak xiaomiao: putting aside the translations that are simply wrong... there's something weird to me about using a Swedish term where I've been using the English one for years. even if it's a good translation. 06:55
xiaomiao masak: it's more fun in french 06:56
masak for example, I've yet to find a Swedish word for "[source code] repository", even though there are lots of Swedish words meaning "a place to store things".
moritz xiaomiao: "Repo" is a German word, right? 06:58
:-)
xiaomiao now it is 06:59
RabidGravy marnin 07:01
atroxaper morning, #perl6 ! 07:13
masak yeah, I tend to say "repo" in Swedish too. 07:17
atroxaper, RabidGravy: morning! 07:18
atroxaper masak: o/
RabidGravy: o/
nine xiaomiao: oh yes, that confused me a lot when I started studying after having 15 years of experience in software development. They used those strange, non-fitting terms for everything. 07:19
xiaomiao nine: well ... I had the luxury of having half the lectures in bad english 07:19
which is even more fun
nine Good thing it's over :) 07:20
xiaomiao yeah, chinglish is even more fun 07:21
JimmyZ as, long time no see? 07:22
xiaomiao JimmyZ: hmm, let me try to remember the phrase 07:23
"the zero-cash refund policy rubs the tapioca"
JimmyZ cant understand it ...
RabidGravy "my postillion got struck by lightning" 07:24
xiaomiao JimmyZ: I'm also not quite sure, but ... China 07:25
just nod and smile ;)
masak xiaomiao: I think you would appreciate languagelog.ldc.upenn.edu/nll/?p=17487 07:27
xiaomiao hah. not bad ... 07:32
mj41 .tell JimmyZ github.com/perl6/docker/pull/2 07:40
yoleaux 25 Jun 2015 16:32Z <tony-o> mj41: i might use that instead of protone :-)
mj41: I'll pass your message to JimmyZ.
mj41 .tell hoelzro hi, please review/merge github.com/perl6/docker/pull/2 , thx 07:41
yoleaux mj41: I'll pass your message to hoelzro.
JimmyZ mj41: I think you want to push to github.com/perl6/perl6-docker? 07:42
yoleaux 07:40Z <mj41> JimmyZ: github.com/perl6/docker/pull/2
mj41 JimmyZ: thx, I forked the wrong repo 07:45
RabidGravy forking hell 07:46
atroxaper Question: how can i prevent flattering like this: 07:49
rakudo: my @ar; push @ar, %(a => 'aa', b => 'bb'); push @ar, %(A => 'AA', b => 'BB'); say @ar.perl;
camelia rakudo-moar a47a3d: OUTPUT«[:a("aa"), :b("bb"), :A("AA"), :b("BB")]<>␤»
moritz atroxaper: use { } instead of %( )
atroxaper moritz: hm... Works in irc. Going to try in code :) 07:50
mj41 JimmyZ: the right one github.com/perl6/perl6-docker/pull/1
.tell hoelzro err, the right one is here github.com/perl6/perl6-docker/pull/1 07:51
yoleaux mj41: I'll pass your message to hoelzro.
atroxaper moritz: thanks!
atroxaper moritz: one more question. I cant make array of hashes from array like this @lines.map: { {key1 => ~$_.value1, key2 => ~$_.value2} }, 07:52
moritz: what i do wrong? 07:53
moritz atroxaper: please specify "I cant" in more detail 07:56
moritz m: say (:a, :b).map: { { key1 => ~$_.key, key2 => ~$_.value }}).perl 07:57
camelia rakudo-moar a47a3d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Ptj1UzwV54␤Unexpected closing bracket␤at /tmp/Ptj1UzwV54:1␤------> 3 { key1 => ~$_.key, key2 => ~$_.value }}7⏏5).perl␤»
moritz m: say ((:a, :b).map: { { key1 => ~$_.key, key2 => ~$_.value } }).perl 07:58
camelia rakudo-moar a47a3d: OUTPUT«((:key1("a"), :key2("True")), (:key1("b"), :key2("True")))␤»
[Tux] Even slower today :(
test 50000 44.392 44.304
test-t 50000 43.672 43.583
moritz mj41, hoelzro: why do we have perl6/docker and perl6/perl6-docker/? should I delete one of them? if yes, which? 08:00
mj41 moritz: IMHO we should delete perl6/perl6-docker or deprecate it ( see my pull request github.com/perl6/perl6-docker/pull/1 ). registry.hub.docker.com/_/rakudo-star/ has link to perl6/docker so this one should stay. 08:04
masak hehe... "prevent flattering" 08:11
masak bonus points to whoever manages to get a slide title into their talk with "Flattening will get you nowhere" :P 08:11
masak [Tux]: thanks for keeping track of the relative speed of things. I'd say it's a worrying trend that it keeps getting slower... but I also know that every now and then there's an optimization of something somewhere that more than offsets all those slowdowns. 08:30
[Tux]: I guess in some sense it's inevitable that there will be small slowdowns when people (for example) add more code to the setting. still, it's good to have a canary point them out at regular intervals. :) 08:31
dalek kudo/nom: 7f96347 | root++ | src/core/ (2 files):
Add an ":elide-type" adverbial parameter to Parameter.perl

depending on the attached code, as blocks and literals have a default signature type of Mu while routines use Any.
Note this affects the output of Signature.perl and Signature.gist, but not for aggregate container sigils (@, %, or &).
08:34
kudo/nom: 3d645fe | lizmat++ | src/core/ (2 files):
Merge pull request #447 from skids/elide_param_types

Add an ":elide-type" adverbial parameter to Parameter.perl
atroxaper moritz: I got list of lists instead of list of hashes.
masak oh, skids === root ? 08:42
masak anyway, skids++ lizmat++ 08:43
lizmat masak: I wouldn't now, /me just clicks the buttons :-)
yoleaux 01:52Z <skids> lizmat: Re: the Block vs Routine/Any vs Mu issue: github.com/rakudo/rakudo/pull/447
lizmat *nkw 08:44
*know
grrrr lack of awakeness
Grrrr notes he's in fact awake 08:45
lizmat m: my Int @a = 1, 2, 3; @a[1]:delete; @a.list>>.perl.say; # I'm not sure how we can fix this 08:48
camelia rakudo-moar a47a3d: OUTPUT«1 Mu 3␤»
lizmat when .perl is called on the deleted element, it is outside of the context of the array
it is effectively an nqp::isnull(), which becomes Mu in P6 speak 08:49
m: my Int @a = 1, 2, 3; @a[1]:delete; (@a,)>>.perl.say # similarly, here the Parcel creation has taken the nqp::isnull() and created a default container for it 08:50
camelia rakudo-moar 3d645f: OUTPUT«1 Any 3␤»
lizmat aka an Any, since the Parcel doesn't know about typing its containers 08:51
sorry Grrrr :-)
will grrrrrrrrr from now on
lizmat perhaps :delete on arrays should have different semantics after all? and be a shortcut to do a splice ? 08:53
(potentially multiple splices)
Grrrr lizmat: it's alright, grrrr away :)
lizmat m: my @a = ^10; @a[1,3,5,7]:delete; say @a.perl
camelia rakudo-moar 3d645f: OUTPUT«[0, Any, 2, Any, 4, Any, 6, Any, 8, 9]<>␤»
lizmat would then have become [0,2,4,6,8,0]<> 08:54
perhaps we should have a :null adverb on arrays (and potentially hashes) ? 08:55
m: use nqp; my %h; %h<a> := nqp::null() #hmmmm 08:57
camelia rakudo-moar 3d645f: OUTPUT«Unexpected named parameter 'BIND' passed␤ in block <unit> at /tmp/GYnIiEF0VO:1␤␤»
RabidGravy is there any important difference between die Exception.new and Exception.new.throw ? 08:58
lizmat multi sub die(Exception $e) { $e.throw } # .throw is more direct 08:59
that would be the only difference afaics 09:00
RabidGravy okay, that's what I would do. I was curious as most of the rakudo code does the "die Exception" variant. 09:01
lizmat I guess from a code optimization point of view, the die() would be optimized to the correct candidate at compile time 09:03
at the expense of having to do something extra when it triggers, but then we don't care much about performance anyway anymore 09:04
jnthn: ^^^ does that make sense?
hmmm... thinking about it more, it doesn't, as the object is not created until it triggers, so the MMD doesn't happen until then either, I would think 09:05
lizmat re the %h<a> := nqp::null(), me haz wrought a ticket: #125487 09:28
dalek kudo/nom: a15dacb | lizmat++ | src/core/ (2 files):
Use die() only for ad-hoc in the settings
09:39
lizmat afk&
atroxaper It's so cool to use Perl6 in commercial product! I have to write generator of Java and C++ libraries of OpenFlow standard. Perl6 grammar, actions, Template::Mustache and all done! 10:15
grondilu is confused by Template::Mustache 10:17
moritz atroxaper: please blog about it! 10:18
atroxaper moritz: hm... Good idea. I'll do so in a week. 10:22
atroxaper grondilu: what do you mean? 10:23
jaffa4 hi all 10:24
atroxaper jaffa4: o/
jaffa4 how can i make a sub visible defined in a block to the outside world? 10:25
grondilu atroxaper: I just have no idea what this is or if it's a joke or something. I have to look it up I guess. 10:26
atroxaper grondilu: It's logic-less templates sustem mustache.github.io 10:28
grondilu ok, meanwhile I was reading en.wikipedia.org/wiki/Mustache_(te...te_system)
moritz jaffa4: one option is my &outer_name = do { block here; sub { anon sub as last statement } } 10:29
jaffa4: another is to write a proper module instead of a block, and import the sub 10:30
lizmat notes that the behaviour of :delete on arrays is actually not specced 10:31
jaffa4 Is there a continue for for in Perl6?
jaffa4 I mean for () continue {} 10:31
atroxaper jaffa4: next;
jaffa4 continue is outside the for
moritz jaffa4: iirc there's a phaser for that (inside the for block), NEXT or so 10:32
moritz or you can also use LEAVE 10:32
lizmat LEAVE would also run with last;
moritz m: for 1..2 { LEAVE say "Done."; next when 1; last }
camelia rakudo-moar a15dac: OUTPUT«Done.␤Done.␤»
moritz m: for 1..2 { NEXT say "Done."; next when 1; last }
camelia rakudo-moar a15dac: OUTPUT«Done.␤»
moritz m: for 1..2 { NEXT say "Done $_."; next when 1; last } 10:33
camelia rakudo-moar a15dac: OUTPUT«Cannot call method 'Stringy' on a null object␤ in block <unit> at /tmp/EPLNGnMxGN:1␤␤»
jaffa4 I mean If I am correct, continue block is executed if for is not taken?
in Perl5
moritz jaffa4: no
that would be 'else' in python; perl 5 doesn't have it
jaffa4 What is continue then? 10:34
lizmat m: for ^2 { NEXT .say } # feels like a rakudobug 10:35
camelia rakudo-moar a15dac: OUTPUT«Cannot call method 'say' on a null object␤ in block <unit> at /tmp/gV2l9tWyYZ:1␤␤»
lizmat m: for ^2 { NEXT $_.say } # same
camelia rakudo-moar a15dac: OUTPUT«Cannot call method 'say' on a null object␤ in block <unit> at /tmp/2JExRjB36d:1␤␤»
lizmat m: for ^2 { .say } # ok
camelia rakudo-moar a15dac: OUTPUT«0␤1␤»
lizmat moritz: agree ?
moritz jaffa4: perldoc -f continue 10:37
lizmat: yes
jaffa4 so it is next 10:39
jaffa4 FIRST and LAST is useful 10:44
lizmat moritz: #125488 10:59
hmmm... did we lose the synopsebot? 11:00
tadzik PerlJam is restaring synbot6 whenever it's gone, from what I noticed :) 11:01
lunch&
lizmat std: unit native foo; 11:06
camelia std 28329a7: OUTPUT«5===SORRY!5===␤Undeclared routines:␤ 'foo' used at line 1␤ 'native' used at line 1␤ 'unit' used at line 1␤Check failed␤FAILED 00:00 135m␤»
lizmat std: native foo;
camelia std 28329a7: OUTPUT«5===SORRY!5===␤Undeclared routines:␤ 'foo' used at line 1␤ 'native' used at line 1␤Check failed␤FAILED 00:00 135m␤»
lizmat m: unit native foo; # WAT ?
camelia ( no output )
lizmat jnthn seems to have added this with fc60b905 in 2011 11:08
m: unit slang foo; 11:09
camelia rakudo-moar a15dac: OUTPUT«5===SORRY!5=== Error while compiling /tmp/cuMhmPGskF␤Cannot resolve meta-object for slang␤at /tmp/cuMhmPGskF:1␤------> 3unit slang foo7⏏5;␤ expecting any of:␤ generic role␤»
lizmat m: unit trusts foo; 11:09
camelia rakudo-moar a15dac: OUTPUT«5===SORRY!5=== Error while compiling /tmp/dU6N3xTTUX␤Type 'foo' is not declared␤at /tmp/dU6N3xTTUX:1␤------> 3unit trusts foo7⏏5;␤»
lizmat m: unit also foo
camelia rakudo-moar a15dac: OUTPUT«5===SORRY!5=== Error while compiling /tmp/bguHu4IDJ2␤No valid trait found after also␤at /tmp/bguHu4IDJ2:1␤------> 3unit also7⏏5 foo␤»
lizmat m: unit foo
camelia rakudo-moar a15dac: OUTPUT«5===SORRY!5===␤Type 'foo' is not declared␤at /tmp/HpUlKif_SK:1␤------> 3unit foo7⏏5<EOL>␤Malformed unit␤at /tmp/HpUlKif_SK:1␤------> 3unit7⏏5 foo␤␤» 11:10
lizmat hmmm....
they all seem to be package_declarator
jaffa4 What can I use instead of stat in PERL6? 11:12
moritz jaffa4: the appropriate methods on IO::Path objects 11:13
lizmat m: say `ls`
camelia rakudo-moar a15dac: OUTPUT«5===SORRY!5===␤Argument to "say" seems to be malformed␤at /tmp/2R1JuIDh7p:1␤------> 3say7⏏5 `ls`␤Bogus postfix␤at /tmp/2R1JuIDh7p:1␤------> 3say 7⏏5`ls`␤ expecting any of:␤ infix␤ infix stopper␤ p…»
lizmat m: say dir(".")
camelia rakudo-moar a15dac: OUTPUT«"/home/camelia/star".IO "/home/camelia/.cpanm".IO "/home/camelia/.local".IO "/home/camelia/.npm".IO "/home/camelia/.perl6".IO "/home/camelia/.perlbrew".IO "/home/camelia/.rcc".IO "/home/camelia/.ssh".IO "/home/camelia/Perlito".IO "/home/camelia/bin".IO "/h…»
moritz doc.perl6.org/type/IO::FileTestable 11:14
lizmat m: given "star".IO { say "exists" if .e }
camelia rakudo-moar a15dac: OUTPUT«exists␤»
lizmat m: given "star".IO { say "file" if .f }
camelia ( no output )
lizmat m: given "star".IO { say "dir" if .d }
camelia rakudo-moar a15dac: OUTPUT«dir␤» 11:15
jaffa4 Is it a built-in?
lizmat is what a built-in ?
moritz yes
lizmat ah, IO::FileTestable, yes 11:16
moritz why doesn't IO::Path do IO::FileTestable?
oh, because it's gone
lizmat yeah, part of my newio work that made it back into nom 11:17
moritz github.com/perl6/doc/issues/97 opened 11:19
jaffa4 I cannot see any method that can get mode of the file
lizmat m: given "star".IO { say "readable" if .r }
camelia rakudo-moar a15dac: OUTPUT«readable␤»
lizmat m: given "star".IO { say .rwx } 11:20
camelia rakudo-moar a15dac: OUTPUT«True␤»
lizmat m: given "star".IO { say .rx }
camelia rakudo-moar a15dac: OUTPUT«Method 'rx' not found for invocant of class 'IO::Path'␤ in block <unit> at /tmp/UYAHtVmQBj:1␤␤»
lizmat m: given "star".IO { say .rwx }
camelia rakudo-moar a15dac: OUTPUT«True␤»
nine m: given ".cpanm".IO { say .rwx }
camelia rakudo-moar a15dac: OUTPUT«True␤»
nine m: given ".cpanm".IO { say .file } 11:21
camelia rakudo-moar a15dac: OUTPUT«Method 'file' not found for invocant of class 'IO::Path'␤ in block <unit> at /tmp/ZjGnC0nDof:1␤␤»
nine m: given ".cpanm".IO { say .f }
camelia rakudo-moar a15dac: OUTPUT«False␤»
nine m: say dir('.').grep: *.f
camelia rakudo-moar a15dac: OUTPUT«"/home/camelia/.bash_history".IO "/home/camelia/.bashrc".IO "/home/camelia/.viminfo".IO "/home/camelia/mbox".IO "/home/camelia/test".IO "/home/camelia/.lesshst".IO "/home/camelia/evalbot.log".IO "/home/camelia/tail".IO "/home/camelia/p6eval-token".IO␤»
nine m: given ".bash_history".IO { say .f }
camelia rakudo-moar a15dac: OUTPUT«True␤»
nine m: given ".bash_history".IO { say .rwx }
camelia rakudo-moar a15dac: OUTPUT«False␤»
nine m: given ".bash_history".IO { say .mode } 11:22
camelia rakudo-moar a15dac: OUTPUT«Method 'mode' not found for invocant of class 'IO::Path'␤ in block <unit> at /tmp/9E46JFi8U1:1␤␤»
jaffa4 so how can I get the mode of a file, anyone else? 11:26
timotimo seems like an oversight that we don't have a method that gives the numeric mode of a file 11:29
lizmat if we're talking about a single rwx, that can be done now 11:31
however, we don't actually have the nqp::tools to get the rest of the mode atm, afaik
timotimo just a single of the rwx? why not all three? 11:32
lizmat because we can only find out for the current user, afaik 11:38
not for group or world
timotimo ah 11:39
and then there's special things like sticky bits and such
and at some point we want to support extended attributes, too
but perhaps not in core? i don't know
lizmat well, that's all unix/posix centric 11:42
on win it works differently, no?
timotimo i think windows has some "extended attributes" equivalent
lizmat m: (sub { $^a }).signature.perl.say # is this correct or not? 11:48
camelia rakudo-moar a15dac: OUTPUT«:(;; $a)␤»
lizmat in other words, do curried parameters matter in MMD or not? I would guess they do?
dalek kudo/nom: 1a743f9 | lizmat++ | src/Perl6/Actions.nqp:
Make auto-generated sigs correct, fixes #125486
11:51
dalek ast: d07b99e | lizmat++ | S06-signature/unspecified.t:
Unfudge now passing tests again
11:55
dalek ast: 8a6d829 | lizmat++ | S02-names-vars/signature.t:
Remove Siglist fossil
12:00
jaffa4 I can do this $input_file_permissions |= 0o0100 if ($input_file.IO.x); 12:06
dalek kudo/nom: f901553 | lizmat++ | src/core/Signature.pm:
Introduce Signature eqv Signature
12:19
ast: 3a39349 | lizmat++ | S02-names-vars/signature.t:
Some more siglist fossil removal
12:21
ast: 0f1545a | lizmat++ | S02-names-vars/signature.t:
Unfudge now passing Signature eqv Signature tests
notch hi all! sorry to bother you with this, but anyway - are there going to be a fully functional Rakudo 1.0 release this year? 12:35
dalek ast: 72b85c3 | lizmat++ | S02-names-vars/signature.t:
Add request for sanity check
lizmat notch: yes 12:36
barring unforeseen circumstances involving buses and the like 12:37
notch <lizmat> thanks a lot. 99% probability of success? or less? 12:38
lizmat I would say 99%, yes
jnthn afternoon, #perl6 12:40
notch lizmat: thanks again. just wanted to ask those who know - there is not much one can find in blogs. 12:41
jnthn lizmat: Heh, I've never seen anyone write "unit native foo" :P
Well, or the old semi-colon form
It's the declarator for using the NativeHOW meta-object
I'd guess NativeCall may use it to declare C-sized native types too
lizmat jnthn: not seeing it used in NativeCall.pm ... 12:44
I was assuming it was some kind of fossil that could be removed 12:45
if it can't, then I won't remove it :-)
jnthn Oh, I do
jnthn lizmat: Both CORE.setting *and* NativeCall use it 12:46
It's very much not fossil :) 12:47
lizmat argh, yes, I see it now :-) 12:55
jnthn grepping for "native" in NativeCall is kinda gonna be easy to miss :)
lizmat m: unit knowhow foo;
camelia ( no output )
lizmat m: unit slang foo;
camelia rakudo-moar f90155: OUTPUT«5===SORRY!5=== Error while compiling /tmp/1cjItHTtLW␤Cannot resolve meta-object for slang␤at /tmp/1cjItHTtLW:1␤------> 3unit slang foo7⏏5;␤ expecting any of:␤ generic role␤»
jnthn std: unit knowhow foo; 12:56
camelia std 28329a7: OUTPUT«5===SORRY!5===␤Undeclared routine:␤ 'unit' used at line 1␤Check failed␤FAILED 00:00 135m␤»
jnthn hm
lizmat unit is not in std (yet)
jnthn ah, right
and yeah, it knew the knowhow declarator
dalek kudo-star-daily: 305cdf9 | coke++ | log/ (2 files):
today (automated commit)
13:11
rl6-roast-data: d8c9134 | coke++ | / (9 files):
today (automated commit)
13:13
lizmat afk for some hot fresh air& 13:23
hoelzro o/ #perl6 13:25
yoleaux 07:41Z <mj41> hoelzro: hi, please review/merge github.com/perl6/docker/pull/2 , thx
07:51Z <mj41> hoelzro: err, the right one is here github.com/perl6/perl6-docker/pull/1
hoelzro mj41, moritz: I don't remember why exactly, but perl6/docker is the correct one 13:26
so that PR to perl6-docker should go through 13:27
moritz then why not deleate perl6-docker? 13:30
jaffa4 How can I read a number of bytes in Perl6 now? 13:31
moritz yes.
jaffa4 I mean where is the read function?
moritz in IO::Handle, iirc
m: say $*IN.read(5)
camelia rakudo-moar f90155: OUTPUT«Buf[uint8]:0x<43 c3 a9 61 64>␤»
moritz s/function/method/
jaffa4: doc.perl6.org/routine/read
jaffa4: may I generally warmly suggest doc.perl6.org/? 13:32
hoelzro moritz: I don't have a problem with that; no one should be referring to it
isn't there a way to set up a redirect when deleting a project?
moritz doesn't see one 13:33
gone. 13:34
I've done a git clone --mirror of the repo prior to deleting; it's on hack.p6c.org in ~moritz/backup/perl6-docker.git
jaffa4 moritz: seek is not documented 13:36
hoelzro moritz: cool, thanks! I think that perl6/docker has all of its contents anyway 13:37
dalek c: 18d2661 | (Steve Mynott)++ | / (3 files):
Change $*PROGRAM_NAME to $*PROGRAM-NAME
13:39
c: 53c6385 | (Steve Mynott)++ | / (2 files):
Change $*EXECUTABLE_NAME to $*EXECUTABLE-NAME
13:42
hoelzro does anyone have thoughts on adding a new :createonly option to open()? I think it would be useful and consistent with copy/rename, but maybe it belongs in at a lower-level like something similar to sysopen 13:47
jaffa4 WHat is :w? 13:50
PerlJam hoelzro: you've asked that for at least 2 days now :) What does :createonly (or :create-only) mean in conjunction with the other open flags? 13:56
hoelzro PerlJam: I have, I just haven't gotten a response and thought I'd try one last time. =) :createonly would be equivalent to O_EXCL in open() 13:57
hoelzro it only makes sense with :w, and it's a guarantee from the OS that my process is the one that created the file, no other 13:57
dalek pan style="color: #395be5">perl6-examples: 4112cad | (Steve Mynott)++ | categories/ (25 files):
Change $*PROGRAM_NAME to $*PROGRAM-NAME
PerlJam hoelzro: I dunno. I'm not opposed to the feature in open(), but the name just doesn't seem quite right. 14:02
cygx see also github.com/rakudo/rakudo/pull/430 14:03
yoleaux 13 Jun 2015 13:38Z <FROGGS> cygx: I was able to compile the setting without disabling spesh.... can you tell what windows/perl/gcc versions you have?
13 Jun 2015 15:22Z <FROGGS> cygx: now it works in the windows sdk shell too
PerlJam hoelzro: I mean, O_EXCL is named that because the exclusivity is the important bit. It's O_CREAT that does the file creation part. Maybe call it :create-exclusive or something. 14:04
hoelzro: and that is the extent of my thoughts on the subject. You'll have to mine other people's brains for more insight. :) 14:05
hoelzro: oh ... if it's called :create-anything, you shouldn't have to also pass :w, it should do that for you. 14:07
(IMHO)
hoelzro PerlJam: all of that makes sense to me! I only picked :createonly because of consistency with rename/copy 14:08
ugexe i could have swore skids had a PR with a bunch of file related options, including create-only related items but i cant find it now
cygx that was me, and I mentioned it 5 minutes ago ;)
ugexe guess that explains why my grep for skids failed me heh 14:10
PerlJam cygx++ yeah, that looks nice 14:12
jnthn I think we merged the MoarVM part of the cygx++ patch
ferry & 14:13
cygx I need to leave as well, but feel free to leave a comment on the PR if you feel there's something off about it 14:20
Ven hoelzro: thanks for that video :) 14:24
hoelzro happy to be of service =) 14:31
commute &
timotimo .o( happy to beef service ) 14:34
molecules rakudo: "A;B;C".comb(/\w/); 15:03
camelia ( no output )
Guest48350 p6: "A;B;C".comb(/\w/); 15:04
camelia ( no output )
Guest48350 p6: "A;B;C".comb(/\w/).perl.say; 15:05
camelia rakudo-moar f90155: OUTPUT«("A", "B", "C")␤»
dalek ast: a6f4e66 | (Steve Mynott)++ | S (4 files):
fix various deprecations as spotted by RAKUDO_DEPRECATIONS_FATAL=1
15:08
ugexe is there a way to get constants in the MAIN signature to work as the first argument when it has named arguments after? 15:27
multi MAIN('test', Bool :$flag) # cannot be invoked via 'filename.pl6 test --flag', have to use 'filename.pl6 --flag test'
japhb ugexe: That one drives me *nuts*. Hate, hate, hate. However, when I was implementing it, and begged for a more modern default behavior, I was told the spec was unlikely to change on this point. Perhaps time has softened that stance. 15:38
japhb ugexe: Some more work needs to be done to make the parser and usage-generator fully pluggable, so an imported module can just "fix that". 15:39
PerlJam (fixing that)++ 15:41
ugexe is there a reason its like that, or did it just end up that way as a side effect? seems odd to require optional paramaters after required in the signature but the opposite for MAIN_HELPERs
japhb ugexe: It was to have a strict "options to the left of non-options" ordering 15:47
The first non-option prevents any later thing from being treated as an option.
MNSHO is that we already have '--' for that.
colomon is there any reason this cannot be fixed in your code by just rearranging @*ARGS? 15:49
hoelzro japhb, ugexe: same here 15:50
that's part of why I started working on Subcommander
japhb colomon: It's a non-trivial rearrangement, and why should every program do that in order to get the obvious behavior that everyone tries as soon as they find out about 'multi MAIN(<constant>, ...)'?
colomon I’m not exactly against change MAIN’s behavior (though I suspect it’s there for a reason, not just because someone writing the spec wanted to be a dick), but it seems like this is fixable with one-line of code… 15:52
I mean, work-aroound-able with one line of code.
japhb I don't think it's dickishness ... I just think it's wrong. :-)
ugexe even something like multi MAIN(<constant>; ...) (; is taken for this purpose but just used as an example) 15:53
japhb colomon: You'll not that I did not implement '--foo bar' but only '--foo=bar' ... in order to make the rearrangement less painful. I don't like that.
*note 15:54
hoelzro PerlJam: regarding our earlier discussion, how about :exclusive? 15:56
oh, that's in cygx++'s PR =P 15:57
PerlJam yeah ... we should probably just merge cyg++'s PR
dalek c: 973355a | paultcochrane++ | lib/Type/Proc/Status.pod:
Replace Proc::Status::exit with exitcode

The `exit` method has been deprectated since 2015.03 and will be removed in favour of `exitcode` in 2015.09.
15:58
hoelzro cygx++ 16:09
that's exactly what I was hoping for!
jaffa4 iDoes caller work in Perl6? 16:11
PerlJam jaffa4: callframe 16:11
hoelzro I was looking at Proc::Async, and close-stdin came to my attention. Is it possible to open stdin of the child process as another file (ex. /dev/null) instead? 16:15
simply closing stdin may not be a good idea
geekosaur agreed 16:19
JimmyZ_ hoelzro: I think openpipe3 branch is about it
ugexe if you dont tap the $proc.stdout isnt it effectively the same? 16:20
hoelzro ugexe: the same as what? 16:21
ugexe oops, stdout != stdin 16:22
timotimo jaffa4: we also have the CALLER:: pseudo-package, but you only have access to dynamic variables that way
hoelzro JimmyZ_: I think that openpipe3 is orthogonal to the proc async stuff
JimmyZ_ oh 16:23
jaffa4 and how can I get the sub name of the caller? 16:32
timotimo that's via callframe
maybe you can CALLER::&ROUTINE.name or something? 16:33
m: sub caller { callee }; sub callee { say CALLER::&?ROUTINE.name }; caller()
camelia rakudo-moar f90155: OUTPUT«5===SORRY!5=== Error while compiling /tmp/thubT3N9L1␤Undeclared name:␤ ROUTINE used at line 1␤␤»
timotimo m: sub caller { callee }; sub callee { say CALLER::&ROUTINE.name }; caller()
camelia rakudo-moar f90155: OUTPUT«5===SORRY!5=== Error while compiling /tmp/j5LSMvh3zo␤Undeclared name:␤ ROUTINE used at line 1␤␤»
timotimo m: sub caller { callee }; sub callee { say CALLER::('$?ROUTINE').name }; caller()
camelia rakudo-moar f90155: OUTPUT«===SORRY!===␤No such symbol 'CALLER::$?ROUTINE'␤»
dalek rakudo/nom: 36f773e | cygx++ | src/core/IO/Handle.pm:
rakudo/nom: Support more modes in IO::Handle.open
rakudo/nom:
rakudo/nom: Introduces the following named parameters:
rakudo/nom:
timotimo i don't know
jaffa4 no problem 16:34
manana 16:35
moritz m: sub f() { g() }; sub g { Backtrace.new[0].name }; f 16:37
camelia rakudo-moar f90155: OUTPUT«Method 'name' not found for invocant of class 'Backtrace::Frame'␤ in sub g at /tmp/4lbI33KRTI:1␤ in sub f at /tmp/4lbI33KRTI:1␤ in block <unit> at /tmp/4lbI33KRTI:1␤␤»
moritz m: sub f() { g() }; sub g { Backtrace.new[0].code.name }; f 16:38
camelia ( no output )
moritz m: sub f() { g() }; sub g { Backtrace.new[0].code.name }; say f
camelia rakudo-moar f90155: OUTPUT«␤»
moritz m: sub f() { g() }; sub g { Backtrace.new[1].code.name }; say f
camelia rakudo-moar f90155: OUTPUT«new␤»
moritz m: sub f() { g() }; sub g { Backtrace.new[2].code.name }; say f
camelia rakudo-moar f90155: OUTPUT«g␤»
moritz m: sub f() { g() }; sub g { Backtrace.new[3].code.name }; say f
camelia rakudo-moar f90155: OUTPUT«f␤»
hoelzro TIL about polypersonal agreement 16:43
reminds me of multiple dispatch =)
colomon japhb: sorry for getting distracted. I believe this will do it: @*ARGS = @*ARGS.grep(/^"--"/), @*ARGS.grep({ $_ !~~ /^"--"/ }); # lightly tested 16:48
b2gills m: my $a = sub (:$a){...}.signature; my $b = sub (:a($)){...}.signature; say $a, ( $a eqv $b ?? ' eqv ' !! ' !eqv ' ), $b; 16:53
camelia rakudo-moar 6c62e2: OUTPUT«(:$a) !eqv (:a($))␤»
b2gills it could be argued those should be considered equivalent, since they basically are outside of a subroutine definition 16:54
having === return false does make sense though 16:55
moritz m: say sub (:$a){...}.signature eqv sub (:$a){...}.signature 16:57
camelia rakudo-moar 6c62e2: OUTPUT«True␤»
moritz b2gills: eqv is a pretty strict thing
b2gills: and one could argue that they aren't equivalent, because they are distinguishable
a Signature has two API boundaries; one towards the outside, on towards the inside of the routine (or block) 16:58
moritz and they aren't equivalent towards the inside of the routine 16:58
b2gills is anyone ever going to use `eqv` inside of a subroutine? 16:59
... going to use it usefully ... 17:00
japhb colomon: That assumes 1. that we never implement '--foo bar' notation in addition to '--foo=bar', and 2. that '--' is no longer special
colomon: Also, 3. That we don't support single-hyphen short options 17:01
japhb (And don't forget that '-' and '-o' are different, because by convention single hyphen means $*IN) 17:02
japhb colomon: All of which is not to pick on your free-handed solution, just to say that it's either not a 1-liner, or that's one UGLY one-liner, when all the cases are handled. 17:03
colomon: And again, I don't see the need for every user to do that in this era in which most new command-line tools follow a model similar to git's, with sub-commands and even sub-sub-commands. 17:04
japhb hates boilerplate, and even grumbles every time he puts 'use v6;' at the top of a file, despite knowing it's the right thing to do. 17:05
Mantra: "Only the essential complexity." 17:06
japhb yields the soapbox.
colomon japhb: I would encourage you to write up a formal proposal. Maybe even to implement it.
moritz which contrasts nicely with python's "explicit is better than implicit" 17:07
japhb moritz: Hence the reason the first thing I need to do with any python file I've loaded is *page down*. 17:08
japhb colomon: I may, at some point, but not soon -- ($day-job, $mad-science) are taking much of my coding effort these days. 17:09
colomon has checked in his one-line fix to the one command that bugs him in the TagTools module
japhb colomon++ 17:10
colomon also thinks there must be a better way of saying @*ARGS.grep({ $_ !~~ /^"--"/ }) 17:11
japhb colomon: negative lookahead in the regex? 17:16
moritz @*ARGS.grep: !*.starts-with('--') 17:19
and $_ !~~ /^'--'/ can be simplified to !/^'--'/
|newbie| what is $/.pos measured in? bytes , chars? 17:24
RabidGravy characters I should imagine 17:25
moritz |newbie|: chars aka graphemes 17:26
|newbie| so $./pos<=$s.chars? 17:27
colomon starts-with ?
|newbie| $s~~/hello/ 17:28
PerlJam m: say "foobar".starts-with("foo");
camelia rakudo-moar 6c62e2: OUTPUT«True␤»
PerlJam m: say "foobar".ends-with("bar");
camelia rakudo-moar 6c62e2: OUTPUT«True␤»
jnthn |newbie|: yes 17:29
|newbie| rakudo: say "foobar".ends-with("ba");
camelia rakudo-moar 6c62e2: OUTPUT«False␤»
jnthn m: 'oh hello' ~~ /hello/; say $/.pos
camelia rakudo-moar 6c62e2: OUTPUT«Method 'pos' not found for invocant of class 'Match'␤ in block <unit> at /tmp/gbXl7IrV82:1␤␤»
jnthn m: 'oh hello' ~~ /hello/; say $/.from
camelia rakudo-moar 6c62e2: OUTPUT«3␤»
jnthn Well, and it's called .from, not .pos... :)
|newbie| that is what the documentation says 17:32
|newbie| .pos # the current match position 17:32
source design.perl6.org/S05.html#Positiona...idth_types
jnthn Oh...you're talking about Cursor, not Match. 17:36
jnthn Yes, Cursor has .pos. 17:37
And same answer: it's in graphemes.
pmichaud m: print 2..5 17:38
yoleaux 25 Jun 2015 23:14Z <raiph> pmichaud: GLR feedback gist.github.com/raiph/1dd0891cde8f1cbe78ce
camelia rakudo-moar 6c62e2: OUTPUT«2345»
ugexe m: say (1..5); say (1..5).eager 17:43
camelia rakudo-moar 6c62e2: OUTPUT«1..5␤1 2 3 4 5␤»
pmichaud .tell raiph thank you for the excellent GLR feedback! Comments / reactions posted to the gist. 17:49
yoleaux pmichaud: I'll pass your message to raiph.
hoelzro [ptc]++ # PRs 17:50
ugexe hoelzro: i think the depends in subcommander is meant to be "depends" : ["IO::String:ver(0.0.1)",] 17:53
hoelzro ugexe: ah, good point!
hoelzro adds a note to fix
I still need to finish that...
tony-o Stage parse : 36.160 17:59
[ptc] hoelzro: pleasure! :-) 18:00
dalek c: 1eed4d3 | paultcochrane++ | lib/Language/variables.pod:
Remove X<> link to CWD variable

This was being rendered as plain text before the dynamic variables table and was confusing the meaning of what the text was trying to say.
18:04
[ptc] m: say @*INC[0].WHAT
camelia rakudo-moar 6c62e2: OUTPUT«(Str)␤»
[ptc] aren't the elements of @*INC supposed to be CompUnitRepo objects? 18:05
tony-o m: @*INC.perl.say; 18:08
camelia rakudo-moar 6c62e2: OUTPUT«["file#/home/camelia/.perl6/2015.06-76-g6c62e2e/lib", "inst#/home/camelia/.perl6/2015.06-76-g6c62e2e", "file#/home/camelia/rakudo-inst-1/share/perl6/lib", "file#/home/camelia/rakudo-inst-1/share/perl6/vendor/lib", "file#/home/camelia/rakudo-inst-1/share/pe…»
[ptc] they're all strings 18:09
the spec mentions a list of CompUnitRepo objects... Or maybe is that only for actual repositories?
the problem I'm trying to solve is to process @*INC to see if a particular file exists somewhere within one of the paths in @*INC 18:10
[ptc] however, "file#/home/blah/foo/bar" isn't a path which one can use with :e tests, for instance 18:11
[Coke] I thought we couldn't assume that it was a file on disk with the same name anymore. 18:13
[ptc] I don't think we can 18:14
but I don't think that's really the issue; what would be nice is to be able to do loop through @*INC and call (say) a .path method and get an IO::Path back which one can use to do other things 18:15
I'm trying to get the tests working again for a module, hence my interest
|newbie| For perl6, has Pod stayed the same? 18:17
hoelzro |newbie|: Pod has changed; it's similiar to Pod5, but there are a few differences
jnthn Bloggage: 6guts.wordpress.com/2015/06/26/thi...ed-arrays/ 18:25
ugexe its a CompUnitRepo::Local::File
if you want to know what modules are installed, then look at the MANIFEST inside the comp unit repo directory 18:26
[ptc] ugexe: what the module I'm fixing is trying to do, is to look through @*INC and find a shared library to load 18:28
ugexe: it used to process @*INC as a list of paths, however the items of @*INC now seem to simply be strings; I thought they would be an object of some kind 18:29
ugexe maybe it should jus tlook at %*CUSTOM_SITE.IO.slurp("MANIFEST")
ugexe m: CompUnitRepo::Local::File.new('file#/home').IO.say # doesnt seem right though 18:33
camelia rakudo-moar 6c62e2: OUTPUT«"/home/camelia/file#/home".IO␤»
[ptc] afk & # dinner 18:34
ugexe m: say PARSE-INCLUDE-SPEC($_).hash.values for @*INC 18:37
camelia rakudo-moar 6c62e2: OUTPUT«/home/camelia/.perl6/2015.06-76-g6c62e2e/lib␤/home/camelia/.perl6/2015.06-76-g6c62e2e␤/home/camelia/rakudo-inst-1/share/perl6/lib␤/home/camelia/rakudo-inst-1/share/perl6/vendor/lib␤/home/camelia/rakudo-inst-1/share/perl6/site/lib␤/home/camelia/ra…»
ugexe probably need something similiar here: github.com/rakudo/rakudo/blob/13af...lly.pm#L10 18:38
ugexe m: CompUnitRepo::Local::File.new('file#/home').path-spec.say 18:42
camelia rakudo-moar 6c62e2: OUTPUT«file#/home/camelia/file#/home␤»
ugexe ^ sticks file# in there twice 18:43
moritz I guess the leading file# is redundant 18:47
ugexe they are suppose to be for telling you what type of ComUnitRepo it is. it would just seem that when they were changed to strings that the IO parts of compunitrepo were not adjusted accordingly 18:50
unless you mean inside the .new... that would make sense 18:53
|newbie| How do I make static variable in C sense?
PerlJam |newbie|: sounds like you want "state" 18:54
m: sub foo { state $x = 5; say $x++ }; foo; foo; foo;
camelia rakudo-moar 6c62e2: OUTPUT«5␤6␤7␤»
FROGGS o/ 19:37
bartolin \o 19:38
FROGGS I'm finally going to add tests for run()/shell() 19:39
dha I'm going to go out on a limb and say that's a good thing. 19:41
tony-o is there a mechanism to catch core errors? 19:48
hoelzro tony-o: could you define "core errors"? 19:50
tony-o occasionally i see errors like the following and can't seem to figure out how to CATCH them: 19:52
WARNING: unhandled Failure detected in DESTROY:
<Internal error while creating backtrace: MVMArray: Can't pop from an empty array in method AT-POS at src/gen/m-CORE.setting:14764
hoelzro I think if you have to catch core errors, those of us working on the compiler aren't doing our job right =) 19:55
but I think you could catch them in NQP land 19:56
tony-o i was looking at nqp and it looked like CATCH was the mechanism there too, is there a different nqp::<whatever> method i should be looking for? 19:57
hoelzro yeah, I think there's an nqp::call that CATCH compiles into 19:59
timotimo CATCH causes a handler to be inserted for the given code 20:10
i think there's actually an nqp op that is called something like "handle"
tony-o i'll dig into those - ty 20:12
dalek p: 67c3c31 | FROGGS++ | / (2 files):
map op syncpipe and adjusts tests for latest openpipe
20:56
p: 9d4c5d8 | FROGGS++ | t/nqp/ (2 files):
update tests for nqp::spawn and nqp::shell
p: 9794dfa | FROGGS++ | src/vm/jvm/ (5 files):
extend nqp::shell/nqp::spawn with in/out/err/flags params

This means that we can use shell() and run() in rakudo for purposes we used pipe() for, but with extra freedom and flexibility. nqp::openpipe, as well as nqp::shell1 and nqp::shell3 are removed.
p: 3577fae | FROGGS++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
remove mapping for nqp::openpipe on moar
p: 61aba0b | FROGGS++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
do posix emulation for exit status on jvm
p: 48bfeb3 | FROGGS++ | t/nqp/86-pipes.t:
replace nqp::openpipe by nqp::shell in tests
p: a5d6dda | FROGGS++ | tools/build/MOAR_REVISION:
bump moar for nqp::shell/nqp::spawn improvements
kudo/nom: a3648b3 | FROGGS++ | src/core/ (2 files):
follow recent nqp::openpipe changes
20:59
kudo/nom: 85d924d | FROGGS++ | src/core/control.pm:
adjust use of nqp::spawn and nqp::shell ops
kudo/nom: ecc7a0a | FROGGS++ | / (8 files):
add Proc, Proc.run() and Proc.shell

This deprecates pipe(), and Proc::Status.
kudo/nom: d5a0b7c | FROGGS++ | src/core/IO/Handle.pm:
use nqp::shell instead of removed nqp::openpipe
kudo/nom: 2a4d616 | FROGGS++ | t/01-sanity/55-use-trace.t:
use run() instead of pipe() to capture stdout+err
kudo/nom: 6df6b3c | FROGGS++ | t/spectest.data:
run S32-io/pipe.t on jvm too
kudo/nom: 91212c7 | FROGGS++ | tools/build/NQP_REVISION:
bump nqp/moar for shell/run improvements
ast: 36bb218 | FROGGS++ | S32-io/pipe.t:
add more tests for shel() and run()
21:00
timotimo ^- i am happy about this
FROGGS timotimo: I am too :o) 21:01
bartolin FROGGS++
FROGGS because I really really think it is sane
PerlJam FROGGS++
dha It looks to me like we've lost C<hex()> in Perl 6. Am I correct in that assumption? And has it been replace with something I'm not seeing at first glance? 21:10
PerlJam m: my $hex = "abc"; say :16($hex); 21:12
camelia rakudo-moar 6c62e2: OUTPUT«2748␤»
PerlJam There may be something better, that's just what occurred to me right off
dha *nod* 21:13
FROGGS gnight #perl6 21:15
timotimo m: say 1234.base(16) 21:21
camelia rakudo-moar 91212c: OUTPUT«4D2␤»
PerlJam Perl 5's hex() goes the other way. Give it a string and it interprets it as hex and gives you the corresponding value. 21:23
timotimo you get :16(...) with a variable "16" from the unbase method, right? 21:25
m: say "2748".unbase(16)
camelia rakudo-moar 91212c: OUTPUT«Method 'unbase' not found for invocant of class 'Str'␤ in block <unit> at /tmp/yjqb2DM8H9:1␤␤»
timotimo m: say unbase("2748", 16)
camelia rakudo-moar 91212c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/SePVchYe80␤Undeclared routine:␤ unbase used at line 1␤␤»
timotimo hm 21:26
m: my $base = 10; say :$base(1234)
camelia rakudo-moar 91212c: OUTPUT«Cannot find method 'postcircumfix:<( )>'␤ in block <unit> at /tmp/PWcA2hkhGg:1␤␤»
timotimo i don't know how to this
dha m: say 0xaf.base(10);
camelia rakudo-moar 91212c: OUTPUT«175␤»
dha aha!
hoelzro m: say 0xaf
camelia rakudo-moar 91212c: OUTPUT«175␤»
hoelzro =P
dha ok, how does *that* work? 21:27
hoelzro the default .Str for numbers uses base 10 21:28
0xaf is just a number literal
PerlJam If Str.base() was implemented, it too could serve as a p5-hex-a-like
dha huh. ok. Wonder if I should bother mentioning that...
hoelzro hmm 21:29
m: say 10.WHERE
camelia rakudo-moar 91212c: OUTPUT«139692075210336␤»
hoelzro m: say 10.WHERE
camelia rakudo-moar 91212c: OUTPUT«140354205423200␤»
hoelzro m: say 10.WHERE; say 10.WHERE
camelia rakudo-moar 91212c: OUTPUT«140698494998112␤140698494998112␤»
hoelzro m: say 10.WHERE; say 0xa.WHERE
camelia rakudo-moar 91212c: OUTPUT«140633771546208␤140633771546208␤»
hoelzro figured as much =)
timotimo only for kinda small numbers 21:31
moar's int cache is pretty tiny 21:32
hoelzro timotimo: I figured, I was just curious if 10 and 0xa would cache to the same spot 21:37
timotimo yup
hoelzro I expected they would, but you never know!
timotimo until recently, only very few operations for big ints would actually go through the int cache at all
interestingly enough
hoelzro ah ha 21:39
timotimo like addition and such
tony-o m: say 10.base(9); 21:45
camelia rakudo-moar 91212c: OUTPUT«11␤»
tony-o m: say 10.base(100); 21:46
camelia rakudo-moar 91212c: OUTPUT«base must be between 2 and 36, got 100␤ in block <unit> at /tmp/rCu7QKTLV8:1␤␤»
El_Che maybe a silly question: is there default way to deploy a p6 app? like a jar/war or a fatpacked p5 script? 21:48
PerlJam El_Che: nope 21:51
El_Che: well, unless you count "as a text file that's executed by the installed perl 6 compiler" :) 21:52
El_Che it sounds dynamic that new revolutionary way of executing programs :) 21:53
dha Should there be an example of index as a method in doc.perl6.org/type/Str#routine_index ? 21:54
dha In other annoying questions, do we have an equivalent of perl5's C<int>? 22:05
dha And then I get to move on to C<ioctl> 22:13
timotimo what does "int" do? 22:14
flussence perldoc says "truncates toward 0" ...and "you shouldn't use this" 22:15
dha Well, you shouldn't use it to round. 22:16
flussence m: say -3.5.Int
camelia rakudo-moar 91212c: OUTPUT«-3␤»
flussence m: say (-6.725/0.025).Num.Int
camelia rakudo-moar 91212c: OUTPUT«-269␤»
flussence m: say (-6.725e0/0.025e0).Int 22:17
camelia rakudo-moar 91212c: OUTPUT«-268␤»
flussence looks the same :)
[as p5]
dha ok, so you can just C<Int>ize it. good. 22:18
timotimo m: say Int(9.9999) 22:19
camelia rakudo-moar 91212c: OUTPUT«9␤»
dha Ah, and there is also a C<truncate> function, which is C<.Int> returns the equivalent of. 22:20
lizmat ugexe: re CompUnitRepo::Local::File.new('file#/home').path-spec.say 22:21
lizmat when you're directly calling CUR::Local::File, you already indicate what type of CUR you want 22:21
lizmat so the "file#" prefix is unwanted there 22:21
timotimo is there also CompUnitRepo::RightThingFor('...')? 22:22
lizmat yes:
m: CompUnitRepo.new("file#/home").perl.say
camelia rakudo-moar 91212c: OUTPUT«CompUnitRepo::Local::File.new('/home')␤»
timotimo nice
dha I'm guessing C<ioctl> is gone? 22:23
lizmat dha: it is atm
afaik
flussence well you can do it with nativecall, but ioctls have always been... icky to use
dha Good. I don't want to have to explain it. :-)
lizmat it's only mention in the slushy part of S32/IO 22:24
*mentioned
One can probably easily write one using NativeCall 22:25
and put it in a module
timotimo you still need to manually get the fd of IO objects, but i believe you can nowadays 22:26
i think that feature was introduced to make IO::Socket::SSL possible
lizmat you can? hmmm... must have missed that 22:27
timotimo somehow you must can :) 22:28
lizmat I guess... 22:29
before looking into that, I'm going to get some sleep first
so good night, #perl6!
dha good night lizmat 22:30
dha C<link> and C<symlink> are listed in S32, but I don't really see any evidence of them elsewhere. Have they been implemented? 22:49
dha Interestingly, C<unlink> *is* documented. 22:50
...and when I try C<link> and C<symlink>, it doesn't tell me that it can't find the functions, but that it can't find the file I'm trying to link, despite it being right there in the CWD. 22:55
[ptc] dha: if they don't appear on doc.perl6.org however appear to be implemented, open an issue on the doc GitHub page and we'll fix it as soon as we can 22:57
dha Ok. 22:58
atweiden m: enum Silo < ASSETS EXPENSES INCOME LIABILITIES EQUITY >; my Array[Silo] @silos; my Silo @assets = ASSETS; @silos.unshift: @assets; say @silos.perl; 23:41
camelia rakudo-moar 91212c: OUTPUT«Type check failed in assignment to '@silos'; expected 'Array[Silo]' but got 'Silo'␤ in any call_with_capture at src/gen/m-Metamodel.nqp:3479␤ in any call_with_capture at src/gen/m-Metamodel.nqp:3479␤ in block <unit> at /tmp/sBnOUEHpg1:1␤␤»
atweiden does this need a Capture to work?
if so, how?
raiph m: enum Silo < ASSETS EXPENSES INCOME LIABILITIES EQUITY >; my Array[Silo] @silos; my Silo @assets = ASSETS; @silos.unshift: $@assets; say @silos.perl; # atweiden 23:45
yoleaux 17:49Z <pmichaud> raiph: thank you for the excellent GLR feedback! Comments / reactions posted to the gist.
camelia rakudo-moar 91212c: OUTPUT«Array[Array[Silo]].new(Array[Silo].new(Silo::ASSETS))␤»
ugexe exitcodes are broke on Proc::Async now 23:46
my $proc = Proc::Async.new("ls"); my $promise = $proc.start; say $promise.result.exitcode; # -1
also if i do $promise = await $proc.start; say $promise.exitcode 23:47
it does execute the command (i see the output of ls) though 23:48
atweiden raiph: tyvm 23:49
raiph yw