»ö« 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.
MadcapJake It's still too early to use but I thought I'd post my progress: github.com/MadcapJake/p6dx 00:02
MadcapJake The completions are generating, but I still need to write the multi MAIN that searches through all the available completions. 00:03
MadcapJake Since it's really close to being ctags, I think I'll add a flag to generate ctags too. 00:04
sortiz hi #perl6 00:31
skids o/ 00:36
vinnix o/ 00:45
FreezerburnV Is @*INC not supposed to be available in a BEGIN block in 6.c anymore? 02:41
geekosaur I don't think it's available at all? 02:52
FreezerburnV When did that change? I used to be able to modify it in a previous version. Hm 02:53
geekosaur with the switch to CompUnitRepos, shortly before 6.c release
FreezerburnV I want to have perl6 search the directory a script is being run from for modules 02:54
Gotcha
What's the correct way to do what I just said in 6.c then?
And what's a CompUnitRepo?
geekosaur design.perl6.org/S22.html#Distribut...stallation
geekosaur does not know the answer to your questions, sadly 02:55
FreezerburnV I don't think I have the mental capacity to read through and actually understand all that right now, too tired 02:57
If someone has a quick example of adding a directory to search for perl6 modules, I would appreciate it. Otherwise I'll have to work on this later 02:58
geekosaur this is usually the wrong tome of day, I'm afraid; many of the key folks are in Europe 03:03
*time of day 03:04
FreezerburnV Ah, gotcha
MadcapJake FreezerburnV: my @files = find( :dir('.'), :type('file'), :name(rx!(\.pm6?)$!) )».IO.flat.list; 03:07
FreezerburnV MadcapJake: I might have phrased my request badly. I want to tell perl6 a new directory to search for modules when useing them 03:10
Currently it does not seem to search '.', sadly
(which seems odd, considering that one of the most common cases is possibly that you'll be useing your own modules...?) 03:11
MadcapJake You're right, it doesn't search `.` it only searches the locations given in the error.
You could try `use lib '.'` don't know if that will work 03:12
FreezerburnV That works, thanks! Don't remember that being documented anywhere, but I haven't done anything with perl6 for a bit, so I don't know if documentation has been updated or not 03:13
What is that doing?
skids FreezerBurnV: "use lib" sets the search path, but only inside the current lexical scope. 03:18
FreezerburnV Ah, interesting. Duly noted
Thanks
FreezerburnV Also: How do I build a .moar version of a perl6 module ahead of time? (or whatever the windows version uses, I think I saw a different file ending when compiling with rakudobrew) 03:23
(I could be completely wrong considering moar is the underlying vm...)
MadcapJake don't know anything about that but i think you're just thinking of moarvm's files. 03:25
skids On the latest version they are compiled and stored compiled automatically. So just using it once should do it. You'll notice the first run after touching a file is slower. 03:25
FreezerburnV Ah, yeah, ok I'm seeing that now 03:26
FreezerburnV Sorry, used to a previous version where it didn't do that and I had to manually do that if I wanted to run a script in less then 30 seconds :) 03:26
Looking forward to the future when compilation is faster!
MadcapJake Some are quite fast already! But definitely looking forward to more speed improvements. 03:28
FreezerburnV Native modules, at least, seem to take quite some time. SDL2::Raw takes greater than 10 seconds or so 03:29
MadcapJake oh wow
FreezerburnV Don't remember if the wrapper I'm working on was taking a decent chunk of time or not
I'm excited to figure out more about perl6 though, so I can (theoretically) make a really nice wrapper around SDL2 and OpenGl in a good perly style. I know little enough that I'm sure anything I make write now will seem somewhat barbaric at first 03:30
Hopefully I can actually get it done, put it out there, and have people who are much smarter than me whip it into much nicer shape 03:31
MadcapJake Perl 6 is great in that a beginner can write nice clean code. Then everyday you learn something new that streamlines or condenses your code. It's actually quite fun to grow with!
FreezerburnV That's what I seem to be seeing, and it's really exciting 03:32
awwaiid FreezerburnV: use lib '.'; # works for me 03:33
oh, I didn't read that far ahead in the backlog, you got htat already
FreezerburnV On a totally unrelated note: Do you know if there are plans to be able to package perl6 applications to be standalone in some way and deployable to someone who does not have it?
awwaiid: Yep, thanks though!
awwaiid FreezerburnV: there are no immediate plans, but I think it is a wishlist item for sure 03:34
as in, I don't know of any particularly progressed examples of it
MadcapJake well since rakudo is a compiler, i'm sure it's possible, just perhaps down the line somewhere
FreezerburnV awwaiid, MadcapJake: Sweet
awwaiid also w/ jvm backend a .jar might be nice for some cases 03:34
MadcapJake yeah that would be awesome too 03:35
FreezerburnV I was assuming it wasn't available now, but knowing my rate of progress, by the time I want to deploy something I'm sure somethign will be available to package the end result
awwaiid: Fair enough
FreezerburnV awwaiid: Though I'm pretty sure the JVM backend isn't as fully-developed as the MoarVM one...? 03:36
MadcapJake Clojure and Ceylon both create war files that can be dropped into java servers very easily. that would be really neat to see Perl 6 capable of doing too.
FreezerburnV MadcapJake: That would be neat, though I'm much more interested in gamedev-type stuff. A war file would be much easier than that, I would assume 03:37
arlenik Does anyone know what % of the people who have worked on Perl6 in the last decade or so were paid to work on it? 03:37
skids There's a grant process that keeps records. As far as I know, it is a very small number (but those that were were among the most productive, so a larger number by LOC or other metrics) 03:39
MadcapJake FreezerburnV: btw did you see there are two SDL modules already modules.perl6.org/#q=sdl
FreezerburnV MadcapJake: Yep! one of them uses the old SDL 1.2, which I have no real interest in due to SDL2. The other is a "raw" (and incomplete!) wrapper around SDL2. Meaning it is literally a giant set of definitions for native functions along with the structs necessary to use them 03:40
I'm adding missing functions to the raw one, along with a nicer wrapper around the raw native code 03:41
MadcapJake FreezerburnV: ahh yeah, well the raw one could at least give you a headstart in wrapping the bindings
Also this might be useful: github.com/Skarsnik/gptrixie 03:42
FreezerburnV I need to go get my modified Raw module off my other computer, actually. My current code doesn't work due to only having the version on github
MadcapJake: Huh, that looks useful 03:43
Though right now I'm going the slightly masochistic route so that I can learn NativeCall better, as well as general syntax of perl better (there seems to be multiple ways to define enums, which I forget the differences) 03:44
(the current Raw bindings use at least two of them)
Also I find it weirdly satisfying to write FFI code 03:45
MadcapJake alrighty then! I've been wanting to write a wrapper for allegro someday, I might try using that gptrixie tool on that 03:47
FreezerburnV Probably a good idea. Allegro is likely a lot bigger than SDL2 03:48
MadcapJake Also I was a good chunk of the way through a set of FluidSynth bindings, but to me it gets boring trudging through tons of functions that I don't even know how (or want) to use.
FreezerburnV Fair enough 03:49
I have an odd laziness where I would rather trudge through writing the code than setting up the thing that would autogenerate the code
Even if it would take several days less
MadcapJake well i know what you mean, not saying it's a bad thing, but after a while, my mind just wanders :P 03:50
FreezerburnV haha
FreezerburnV It's relaxing writing code that takes no effort while watching youtube or something 03:50
MadcapJake FreezerburnV: good on ya then! That's determination :) 03:51
MadcapJake Well you might've just convinced me to at least finish one of my two unfinished binding projects this way! 03:52
FreezerburnV "You write some code that didn't take incredible focus. It fills you with determinations."
FreezerburnV MadcapJake: Yay! 03:52
More libraries for perl6 is good!
ZoffixWin . 04:02
Zoffix . 04:02
yoleaux 15 Jan 2016 03:45Z <skids> Zoffix: I pushed some ramblings to user-experience
17 Jan 2016 11:37Z <jdv79> Zoffix: absolutely nothing. i fell off the grid for two weeks. sure, i can move them over.
Zoffix m: my \u = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; my \l = 'abcdefghijklmnopqrstuvwxyz'; say join '', (u.comb Z l.comb) 04:06
camelia rakudo-moar 770d10: OUTPUT«AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz␤»
Zoffix m: my \u = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; my \l = 'abcdefghijklmnopqrstuvwxyz'; say (u.comb Z l.comb).join: ''
camelia rakudo-moar 770d10: OUTPUT«A aB bC cD dE eF fG gH hI iJ jK kL lM mN nO oP pQ qR rS sT tU uV vW wX xY yZ z␤»
Zoffix Kinda weird the results are different :/
How come? 04:07
MadcapJake m: my \u = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; my \l = 'abcdefghijklmnopqrstuvwxyz'; say (u.comb Z l.comb) 04:10
camelia rakudo-moar 770d10: OUTPUT«((A a) (B b) (C c) (D d) (E e) (F f) (G g) (H h) (I i) (J j) (K k) (L l) (M m) (N n) (O o) (P p) (Q q) (R r) (S s) (T t) (U u) (V v) (W w) (X x) (Y y) (Z z))␤»
MadcapJake weird that the pairings are correct here, join is where it's failing
m: my \u = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; my \l = 'abcdefghijklmnopqrstuvwxyz'; say (u.comb Z l.comb).flat.join
camelia rakudo-moar 770d10: OUTPUT«AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz␤»
MadcapJake that works Zoffix ^ 04:11
Zoffix I'm more curious why the one that doesn't doesn't :)
skids Zoffix: the sub form of join must be flattening, is why.
Zoffix skids, that still leaves the problem for why it's joining in a such a weird way: "A", "aB"... etc 04:12
skids because:
skids m: ("A","a").Str.say 04:13
camelia rakudo-moar 770d10: OUTPUT«A a␤»
Zoffix doesn't follow
Ah
K, I get it
m: my \u = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; my \l = 'abcdefghijklmnopqrstuvwxyz'; say ((u.comb Z l.comb).join: '').elems 04:14
camelia rakudo-moar 770d10: OUTPUT«1␤»
skids (("A","a"),("B","b")).join joins ("A","a").Str with ("B","b").Str
MadcapJake m: ((('a','b','c'),('d','e','f')),(('g','h','i'),('j','k','l'))).join 04:15
camelia ( no output )
MadcapJake m: ((('a','b','c'),('d','e','f')),(('g','h','i'),('j','k','l'))).join.say
camelia rakudo-moar 770d10: OUTPUT«a b c d e fg h i j k l␤»
skids m: (('a','b','c'),('d','e','f')).Str.say 04:16
camelia rakudo-moar 770d10: OUTPUT«a b c d e f␤»
MadcapJake interesting that the three layer tuple i posted, it only joins f and g but not c and d or i and j 04:17
skids Each list at the top level gets .Str'd. There are two such lists. .Str, apparently, flattens lists. 04:18
MadcapJake oh ok, so it isn't actually calling str on each tuple since the first two are being flattened via .Str 04:19
MadcapJake m: ((('a','b','c'),('d','e','f')).join,(('g','h','i'),('j','k','l')).join).join.say 04:19
camelia rakudo-moar 770d10: OUTPUT«a b cd e fg h ij k l␤»
skids FSVO "first". Each of the ones iterated by .join is.
MadcapJake right, poor word choice :P 04:20
Zoffix Ahhh... I love being naughty: blogs.perl.org/users/zoffix_znet/20...guage.html 05:18
gfldex you forgot __init__ 05:19
quester m: say (1...63).hyper.map({sleep .1*rand;.is-prime ?? $_ !! ()}).flat; 05:36
camelia rakudo-moar 770d10: OUTPUT«(2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61)␤»
quester m: say (1...64).hyper.map({sleep .1*rand;.is-prime ?? $_ !! ()}).flat;
camelia rakudo-moar 770d10: OUTPUT«()␤»
quester m: say (1...64).race.map({sleep .1*rand;.is-prime ?? $_ !! ()}).flat;
camelia rakudo-moar 770d10: OUTPUT«(2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61)␤»
quester m: say (1...250).race.map({sleep .1*rand;.is-prime ?? $_ !! ()}).flat;
camelia rakudo-moar 770d10: OUTPUT«(193 197 199 211 223 227 229 233 239 241 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61)␤» 05:37
quester m: say (1...250).hyper.map({sleep .1*rand;.is-prime ?? $_ !! ()}).flat;
camelia rakudo-moar 770d10: OUTPUT«()␤»
quester Hmm. Is it just me, or does it seem like hyper is acting strangely lately? 05:38
gfldex m: my \u = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; my \l = 'abcdefghijklmnopqrstuvwxyz'; for (u.comb Z l.comb) -> $e { $e.Str.say } 06:52
camelia rakudo-moar 770d10: OUTPUT«A a␤B b␤C c␤D d␤E e␤F f␤G g␤H h␤I i␤J j␤K k␤L l␤M m␤N n␤O o␤P p␤Q q␤R r␤S s␤T t␤U u␤V v␤W w␤X x␤Y y␤Z z␤»
gfldex Zoffix: ^^^ 06:53
gfldex m: sub infix:<|Z>(List:D \l, List:D \r){ gather for l Z r -> [\re, \le] { take re; take le; } }; dd (1,2,3) |Z <a b c d>; 07:21
camelia rakudo-moar 770d10: OUTPUT«(1, "a", 2, "b", 3, "c").Seq␤»
gfldex it might be sensible to introduce slippy versions of some operators 07:22
moritz or | as a meta operator 07:49
El_Che hi perl6 people 07:51
FROGGS o/ 07:55
TimToady waves from Waikoloa 08:37
RabidGravy wherever that is 08:38
ely-se ate an Hawaiian sandwich yesterday 08:38
RabidGravy sounds a long way from anywhere
I worked for a company based in Hawaii for a while a few years ago 08:39
masak TimToady: oh haikoloa! 08:53
masak good morning, #perl6 08:56
abraxxa hi! 08:57
RabidGravy marnin! 08:57
ely-se where can I find exactly how multimethod candidates are selected? 09:04
masak I think S12 has a complete algorithm 09:05
ely-se: if there's anything in particular you're wondering about...?
ely-se dankeschon
masak: no, I just like knowing things
masak you're in the right channel ;) 09:07
(I mean, there's plenty of us here) 09:08
RabidGravy has anyone got something that can do some simulcrum of "test coverage" down the back of the sofa?
Ven masak: dozens!
masak ely-se: there's a section in S12 called "Multisub Resolution" 09:09
masak Ven: dozens, nay scores, nay tens of us! 09:09
gfldex m: say 345 div 12; 09:10
camelia rakudo-moar 770d10: OUTPUT«28␤»
masak m: say 345 divmod 12 09:11
camelia rakudo-moar 770d10: OUTPUT«5===SORRY!5=== Error while compiling /tmp/4ZZF0BQgrR␤Two terms in a row␤at /tmp/4ZZF0BQgrR:1␤------> 3say 3457⏏5 divmod 12␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤ s…»
masak m: sub infix:<divmod>($l, $r) { $l div $r, $l % $r }; say 345 divmod 12 09:12
camelia rakudo-moar 770d10: OUTPUT«(28 9)␤»
gfldex m: say 345 div o mod 12
camelia rakudo-moar 770d10: OUTPUT«5===SORRY!5=== Error while compiling /tmp/0lRpGebjKP␤Undeclared routines:␤ mod used at line 1␤ o used at line 1␤␤»
gfldex m: my &divmod = &infix:<mod> o &infix:<div>; 09:13
camelia ( no output )
masak gfldex: ya can't `o` operators 09:14
wrong grammatical category
gfldex doesn't make sense, but nice to know that I could do that
moritz m: say (&[div] o &[mod)(345, 12) 09:18
camelia rakudo-moar 770d10: OUTPUT«5===SORRY!5=== Error while compiling /tmp/yKDkGiFlYy␤Unable to parse expression in infix noun; couldn't find final ']' ␤at /tmp/yKDkGiFlYy:1␤------> 3say (&[div] o &[mod7⏏5)(345, 12)␤»
moritz m: say (&[div] o &[mod])(345, 12)
camelia rakudo-moar 770d10: OUTPUT«Cannot call infix:<div>(Int); none of these signatures match:␤ (Int:D \a, Int:D \b)␤ (int $a, int $b --> int)␤ in block <unit> at /tmp/OgdtLqbrbZ line 1␤␤»
moritz and iirc infix:<o> only works for single-argument functions, or something
ely-se m: grammar G { rule TOP { <r:sym<b>> }; proto rule r {*}; rule r:sym<a> { '1' }; rule r:sym<b> { '2' } }; G.parse('1').perl.say 09:19
camelia rakudo-moar 770d10: OUTPUT«Match.new(ast => Any, list => (), hash => Map.new((:r(Match.new(ast => Any, list => (), hash => Map.new(()), orig => "1", to => 1, from => 0)))), orig => "1", to => 1, from => 0)␤»
ely-se This does not fail to parse, surprisingly. Is that by-design?
gfldex you would have to .assume one of them
[Tux] csv-ip5xs 17.953 09:20
test 22.251
test-t 12.192
csv-parser 50.003
masak [Tux]: only one column of values today? 09:22
[Tux] I shortened the report to have less questions and automatically update tux.nl/Talks/CSV6/speed4.html and tux.nl/Talks/CSV6/speed5.html
masak [Tux]++
yes, that's more immediately understandable. nice 09:23
[Tux] the last column was somewhat meaningless here and if the 50000 column was wrong, then I would have started complaining before posting the timings
speed5 is now automatically sorted
gfldex i just told Typesafe::XHTML::Writer how not to .indent. Bechmark went from 42.4298 s to 5.0526 s . So .indent seams kinda slow. 09:26
.indent is called 7891 times 09:27
gfldex m: for 1..7891 { my $s = "abc"; $s.=indent(0); }; say now - BEGIN now; 09:28
camelia rakudo-moar 770d10: OUTPUT«0.3533741␤»
gfldex m: for 1..7891 { my $s = "abc"; $s.=indent(2); }; say now - BEGIN now;
camelia rakudo-moar 770d10: OUTPUT«3.92408711␤»
gfldex if you _really_ have to indent use .indent(0) :-> 09:29
moritz uhm, yes, .ident is regex based 09:30
no wonder it's slow
gfldex drops .indent like it's hot 09:31
moritz gfldex: if you simply want to indent with spaces, prepending ' ' x $indent is much faster
gfldex m: for 1..7891 { my $s = "abc"; $s = ' ' x 0 ~ $s }; say now - BEGIN now; 09:36
camelia rakudo-moar 770d10: OUTPUT«0.0238222␤»
gfldex m: for 1..7891 { my $s = "abc"; $s = ' ' x 2 ~ $s }; say now - BEGIN now;
camelia rakudo-moar 770d10: OUTPUT«0.02447584␤»
RabidGravy speedy 09:38
ely-se BEGIN now seems silly. CHECK now seems more appropriate.
moritz well, to be fair you'd have to .lines().map({ ' ' x 2 ~ $_ }).join("\n")
m: say (CHECK now) - (BEGIN now)
camelia rakudo-moar 770d10: OUTPUT«0.03176252␤»
masak if I may bikeshed for just a bit about naming in the code, I think "outdent" is a too-clever neologism which seems to represent a negative indentation level, and "deindent" is much clearer, and means "reducing the indent level" 09:39
I can slip in a renaming patch, unless there's an uproar of protest
masak .oO( or a brouhaha ) 09:40
gfldex you could ack the ecosystem for outdent
moritz was about to do that
ely-se Python calls it "dedent" but that reminds me too much of tooth extraction. 09:41
gfldex @c>>.Str>>.indent($indent).join(NL) <-- .indent fits in there nicely, ' ' x 2~ not so much
RabidGravy :)
moritz moritz@hack:~/p6/perl6-all-modules$ git grep -l --word outdent
azawawi/farabi6/lib/Farabi6/files/assets/3rd-party/semantic-ui-v1.11.4/components/icon.min.css
azawawi/farabi6/lib/Farabi6/files/assets/3rd-party/semantic-ui-v1.11.4/semantic.min.css
so, only in .css files :-)
masak ely-se: Python seems keen on dropping letters. vide "elif"
moritz perl too :-)
elsif
masak goes ahead and spectests a rename 09:42
moritz: indeed.
by analogy, it'd made more sense if we called it "deident" :P
moritz ident? 09:43
deident is like, logging out?
masak "outdent" sounds a bit like punching someone's teeth out 09:44
El_Che weird error msg: Cannot find method 'STORE' in method...
ely-se undent 09:45
El_Che masak: :)
masak .oO( "could you redent this code? someone predented it while I was metadenting it, and now it's all semidented" ) 09:46
ely-se indon't
masak .oO( my bastard coworker maldented my code! ) 09:47
ely-se I like "unindent"
masak that sounds like "to indent level 0" to me 09:48
moritz want to meet other denters? let's get cross-denting!
masak .oO( <coworker> I'm sorry, misindenting wasn't my intent! ) 09:49
gfldex .oO( .negadent(2) )
ely-se yummy, yeast 09:51
El_Che any idea where "Can not find method "STORE"" can come from? 09:52
RabidGravy a proxy, which Proxy depends on what you were doing 09:52
moritz from... code?
ely-se El_Che: from somebody who is bad at English. 09:53
gfldex m: my @a = "abc", "def"; say @a>>.Str>>.&infix:<~>(' ' x 2).join("\n"), 09:54
camelia rakudo-moar 770d10: OUTPUT«abc ␤def ␤»
gfldex wrong way around
masak gfldex: that's because the "invocant" becomes the left-hand operand when you call an &infix like that 09:55
ely-se "Unknown string encoding: 'ebcdic'" :(
gfldex m: sub indent(\r){ ' ' x 2 ~ r }; my @a = "abc", "def"; say @a>>.Str>>.&indent.join("\n"),
camelia rakudo-moar 770d10: OUTPUT« abc␤ def␤»
masak (incidentally what it'd have been if operators were actually methods)
masak m: my &indent = ' ' x 2 ~ *; my @a = "abc", "def"; say @a>>.Str>>.&indent.join("\n") 09:56
camelia rakudo-moar 770d10: OUTPUT« abc␤ def␤»
ely-se Is there a variable containing a set of available encodings? 09:57
masak for my baseline spectest, t/spec/S17-supply/syntax.t dies after test 54 09:58
all the tests succeed up until that point
when I run the test file directly with `perl6`, the whole file succeeds
RabidGravy that sucks 09:59
masak well, I'm more curious why that happens 10:00
is there something particularly interesting going on after test 54?
# multiple whenevers with channels 10:01
gfldex m: my @a = "abc", "def"; say @a>>.Str>>.&(' ' x 2 ~ *).join("\n"),
camelia rakudo-moar 770d10: OUTPUT« abc␤ def␤»
gfldex :o
El_Che aha. Found my bug. Silly typo. $.var in method signature instead of $var.
gfldex $idiom++
moritz masak: try executing it when your system load is high?
masak gfldex: wow. cute.
moritz I think I prefer map :-)
masak moritz: how do I artificially raise my system load?
moritz masak: like, run a spectest with TEST_JOBS=8 and then start the test manuall in another console? 10:02
masak moritz: note, it fails under `make t/spec/S17-supply/syntax.t`, which shouldn't have that high a system load
moritz masak: oh
masak moritz: hm 10:03
moritz masak: that runs perl t/harness --fudge --moar --kep-exit-code t/spec/S17-supply/syntax.t
masak: so that's what you can try next, plus maybe adding a --verbose
masak moritz: running it with `perl6` a few times while the spectest suite was running: it ran to completion all the way to 60 four or five times
moritz: then I ran it again, and then it got *stuck* after 54
moritz: now it just sits there
masak ^C 10:04
ran it six more times to completion, then it got stuck again.
I think this is cause for quaranteening that test
gfldex masak: sudo aptitude install stress; stress --help 10:05
masak gfldex: ooh. neat.
gfldex++ # guessing correctly what platform I'm on
gfldex nice thing about stress is that you can tell it to have RAM stress only 10:07
masak often has RAM stress :) 10:08
spectesting the rename, I get a "dubious" in t/spec/S32-io/IO-Socket-Async.t -- gonna ignore that 'cus IO::Socket::Async 10:09
IMO, that test file also belongs in quarantine
dalek kudo/nom: 775271d | (Carl Masak)++ | src/core/Str.pm:
rename s/outdent/de-indent/

See bikeshedding discussion at
  irclog.perlgeek.de/perl6/2016-01-20#i_11912864
10:12
masak this has been your daily non-semantic commit. let's see if I can make at least one today that actually improves something, too
jnthn Wait, when did outdent get added? 10:15
yoleaux 19 Jan 2016 23:10Z <b2gills> jnthn: wouldn't Seq.Numeric always be the same as Seq.elems?
jnthn .tell b2gills I'd hope so...
yoleaux jnthn: I'll pass your message to b2gills.
moritz jnthn: probably as an implementation detail of ident with a negative indent 10:16
moritz in auld lang syne 10:16
jnthn Oh, it's a lexical sub
No probs then :) 10:17
masak jnthn: yeah, I also did a bit of a double take before noticing it was lexical-only :)
masak aha, you know what I'd like to implement for Rakudo? -i 10:18
jnthn Yeah, I don't have to smite you for back-compact violation thanks to the wonder of lexical scoping. \o/ 10:18
masak it's probably the biggest reason I sidegrade to `perl` oneliners these days
but (a) I'm not at all sure exactly how the "safely overwrite the input file" magic works in Perl 5, and how to do that in Perl 6
and (b) I'm not sure I completely understand how the passing of the argument to -i works, or if it has support in NQP's argument parser 10:19
for example, `perl --help` says, "-i[extension]", but I don't think I've ever been able *not* to give it an extension
masak tries
moritz masak: safely overriding input file is usually implemented by writing to a temp file first, and moving it to the new location later 10:20
masak well, I'll be
that was easy :)
moritz: I think I'm going to try to hunt down the implementation of that in Perl 5 10:21
(it's probably in toke.c) :P
just so that we don't implement it *worse* and then have to hang our heads in shame over something obvious
moritz I wonder if that'll be fun or "fun" :-)
Woodi "moving files" is traditional *nix/POSIX "atomic op" :) 10:23
moritz Woodi: be careful; linux offers rename(), but that doesn't work across mount points 10:24
masak Woodi: also note that we're doing more here than just that atomic op
moritz (and /tmp/ being the traditional place for temp files can often be on its own file system)
masak Woodi: we're writing new file contents, and then moving the file 10:25
Woodi moritz: right
masak moritz: yeah, it's for reasons exactly like that I want to check prior Perl 5 art
(and maybe Python and Ruby if they do this too. do they? probably Ruby but not Python)
Woodi masak: that's a idea: create file.new then move to file so system prevents symlinks attacks 10:26
masak Woodi: what's a symlink attack? 10:27
masak .oO( we also want to prevent updog )
Woodi masak: when you remove file and create new one someone can put symlink to /etc/shadow :) 10:28
masak hm, there was also a TheDamian module that did this...
ah, yes: metacpan.org/pod/IO::InSitu
I should look at that one, too 10:29
moritz masak: I'd trust p5p more than TheDamian with cross-platform, safe IO
masak 'sooth 10:30
brrt ohai #perl6 10:37
AlexDaniel a quick note: -i is not implemented in Perl 6 (unfortunately!), so you have to use 「sponge」 in order to do that… 10:40
DrForr Morgen.
o/'
AlexDaniel or deal with tempfiles yourself if you don't want to rely on 「sponge」
brrt good morning DrForr
AlexDaniel and by not implemented in perl 6 I mean not implemented in rakudo… gah 10:41
honestly it is pretty hard to talk about those two independently until we actually have some other implementation that actually works… 10:42
masak AlexDaniel: the discussion is about implementing it in Rakudo
AlexDaniel anyway, the one who implements -i in rakudo will get big 🖒👍 from me 10:43
jnthn "not yet in Perl 6" is prefectly fine though...means "not in the specification of any version of Perl 6" :)
masak jnthn: but it is in S19, so... :) 10:44
probably not spectested, though
AlexDaniel anyway, just wanted to note that you can use 「sponge」 as workaround for now. Have to run now o/
jnthn masak: That's design, not spec(test) :) 10:45
masak AlexDaniel: that's good to know. thanks. :) 10:46
maybe `sponge` is another bit of prior art to look at
masak yup. it is. 10:48
RabidGravy yay! 10:49
masak "It also creates the output file atomically by renaming a temp file into place, and preserves the permissions of the output file if it already exists. If the output file is a special file or symlink, the data will be written to it."
masak from the man page 10:49
I knew there were things I hadn't thought of! :)
RabidGravy masak++ 10:49
masak and there's a git repository 10:50
gfldex .indent can't be replaced with ' ' x $indent ~ * because .indent actually checks how much indentation is already there. What I need for my usecase as I don't recurse around. 10:52
my method indent(){ my $index = 0; $index += 2 while self.subst-eq(' ', $index); $indentor = ' ' x $index+2; }
that works for me and is 20% faster in my benchmark
masak far from a general solution though 10:53
gfldex sadly 10:54
masak I'm thinking whoever goes in and replaces those regexes in `method indent` to make it faster, might want to keep the regexes as comments
masak actually, this sounds like a good topic for a blog post, with benchmarks before and after 10:54
El_Che yeah. My OpenLDAP::DataConsistency app is done (first draft anyway). Let put it in production, clean it up and push it to the ecosystem 11:14
Zoffix Aristotle++ catching and fixing my awful mistake on blogs.perl.org/users/zoffix_znet/20...guage.html 11:32
Zoffix I'm so glad the fix is still so simple :) So my article is still valid :) 11:33
masak Zoffix: I liked the post -- except for the tongue-in-cheek joshing parts ;) 11:37
Zoffix masak, the YouTube video linked at the end of it makes my blood boil... the Pythonists are lucky they only got the joshing :P
Zoffix or rather, that channel making a whole series of ridiculously ignorant Perl attack videos :) www.youtube.com/playlist?list=PLEK...yK-crDBycD 11:39
pmurias Zoffix: is the Perl 6 version with Z and comb more readable to someone who knows neither Perl 6 or Python? 11:59
masak pmurias: also, relatedly, how much should a language cater to the group of people who doesn't know how to read it? 12:06
pmurias masak: I suspect it's mostly similiarity to whatever else is popular 12:07
Zoffix pmurias, I don't think that has much relevance. At least from the point of view of my article, the programmer group in question is the one who regularly reads/writes in the language. But, analyzing the two, I can argue the Perl 6 is still more readable than Python version: for Perl 6 one will need to look up "wtf Z is" and the method .comb. The join ... is more or less self explanatory, but we can count it too: that's 3 things to look up. In python 12:10
version, we need to look up what zip() does, in particular to strings, then we need to figure out how 'in' behaves, then we need to figure out what math operations on strings do (which can be guessed) and then there's still a question of what a join method on an empty string does.
Zoffix never found "readability for someone who doesn't know the language" a viable argument.
Is Chinese an easy language to understand for someone who doesn't speak Chinese? 12:11
looks like "linenoise" to me, but I'm sure people who speak related languges will disagree
Zoffix runs to catch the bus
brrt wonders if there are significant related languages to chinese 12:14
masak brrt: Mandarin and Cantonese are related. both are "Chinese languages" 12:15
brrt: Tibetan is probably the closest one outside of that group 12:16
timotimo Zoffix: we don't have to "calling it on an empty trying"!
(obviously using autocorrect or swype or something, eh?)
brrt masak: of course... i was simplistically thinking chinese was one language 12:17
timotimo also ... "viola! result." is hilarious :D
masak brrt: it's usually presented in that way (with Mandarin and Cantonese being "dialects") for some inscrutable reason 12:19
the reason probably being "a language is a dialect with an army and a navy" :)
timotimo Zoffix: i really don't understand the problem stated in that stackoverflow post. it says "every nth element of final list is from list 2", but then the 3rd is x, the 6th is y and the 9th is ... g?!? 12:21
brrt haha yeah... 12:22
masak Zoffix: also, pro tip based on experience: try to avoid things on the intertubes (whether comments, or YouTube videos, or YouTube comments) that make your blood boil
ZoffixMobile timotimo, yeah, because second list only has 2 elements, x and y 12:23
timotimo i find the description of the problem very lacking.
pmurias masak: I guess another commonly used readability metric would be "how readable it is to someone who sort of knows the language but doesn't care enough to learn it fully" 12:23
brrt can second masaks comment on blood-boiling intertube contents 12:24
masak Don't Read the Comments™ 12:25
timotimo that's indeed always good advice
masak pmurias: I'm wary of catering to people who don't care in various ways. I don't mind designing the language for people who can be bothered.
ZoffixMobile pmurias, I often follow the "how many elements I have to parse" rule of thumb. a postfix for loop with two variables inside a method call is certainly eyebrow-raising to me than using a weird operator 12:25
ZoffixMobile masak, re blood boiling: xkcd.com/386/ :) 12:28
masak absolutely. 12:29
but the undertone even of that comic is that life is too short for that
timotimo i don't think that comic is trying to advocate preventing people from being wrong on the internet by spending time on that particular problem 12:30
brrt also, too many people will be wrong about too many things 12:31
masak right, the comic is about the futility of trying to prevent people from being wrong on the Internet
brrt in fact, i would probably find many things arguable about things $younger-self said 12:32
masak " You should regard anything from 2001 or earlier as having been written by a different person who also happens to be named “Eliezer Yudkowsky”. I do not share his opinions." -- Eliezer Yudkowsky 12:33
Skarsnik Hello
masak hello, Skarsnik
brrt hi Skarsnik
tadzik masak: hah, that's a nice way of saying "it... it was a phase mom :(" 12:36
I should write it down, may prove useful some day :P
pmurias misses new hpmoar updates 12:37
tadzik reminds me of my english teacher, who once said "oh, Ted, you're young, you're allowed to say stupid stuff"
tadzik in retrospect, I did indeed 12:37
lucs Can I get the PID of a started Proc::Async instance before it terminates? 12:42
Ulti fairly sure its ok to say stupid stuff all the way into old age too :3 at least thats the defacto standard
lucs s/ok/typical/
brrt hmmm 12:45
if we couldn't say stupid stuff anymore, that would be quite restrictive indeed
tadzik hums "forever young" 12:47
Ulti it means people would just silently think stupid stuff without giving you the chance to correct them :S 12:47
timotimo especially given that "stupid stuff" should be judged by humanity's future shared understanding of the world
tadzik well, there're things universally stupid, and there's things to be judged by generations to come
masak pmurias: there's supposed to be one final update (an epilogue) later this year 12:48
ely-se nooooo 12:49
ely-se from 1.0 onwards it can only get worse :( 12:50
pmurias ely-se: you mean from hpmor 1.0 onwards? 12:51
ely-se no 12:52
masak nooooo 12:53
tadzik www.nooooooooooooooo.com/ 12:54
masak DO NOT WANT
ely-se doc.perl6.org still says "Please note that *ALL* deprecated features will be removed at the release of Perl 6.0.0 (expected sometime in 2015)." 12:55
the documentation of DEPRECATED in particular 13:02
dalek c: 569a7da | (Zoffix Znet)++ | doc/Type/Routine.pod:
Update the message displayed when DEPRECATED trait is used
13:11
stmuk damm you Zoffix! you are faster! :) 13:13
Skarsnik brrt, did you find the cause of my weird sigseg? x) 13:19
brrt no, not yet
i'm not terribly familiar with the moarvm gc things
dalek rl6-roast-data: d45411f | coke++ | / (2 files):
today (automated commit)
13:30
perl6-roast-data: 4388063 | coke++ | / (2 files):
perl6-roast-data: today (automated commit)
abraxxa dalek: IPv6 baby! 13:31
dalek: botsnack!
Skarsnik x)
tadzik \o/ 13:35
DrForr o/ 13:37
[Coke] . 13:45
timotimo × 13:46
brrt netsplits! 14:01
moritz better the nets split than the nets spit :-)
masak .oO( there was a rent in the reticulum! ) 14:03
masak everyone still with us? good, good. 14:03
moritz those that aren't can't protest :-) 14:04
gfldex #perl6: Total of 342 nicks 14:05
gfldex so many intarwebs friends! 14:05
Skarsnik why do I always have the weirdest probably ungolfable bug? x) 14:07
gfldex you like nativecall very much? 14:08
Skarsnik I don't use nativecall 14:09
hoelzro morning #perl6 14:10
[Coke] hoelzro: hio 14:11
hoelzro I wrote up a blog post about some experiences writing a Pod:: module for DOC INIT time, if anyone's curious: hoelz.ro/blog/getting-eod-pod-and-d...-play-nice 14:11
o/ [Coke]
Skarsnik like how to explain: gist.github.com/Skarsnik/2ce915ed020db8fb91fb 14:13
brrt RT #127308 14:23
how toget a link?
Skarsnik the bot for that is not here I thik x) 14:24
timotimo oh, damn
tadzik: synopsebot was yours, right?
[Coke] it's rt.perl.org/Ticket/Display.html?id=127308 - I added a chrome search backend for RT, so I go to the omnibox, type "RT<TAB>" and then the number to get there. 14:28
ely-se synapsebot
diakopter m: say 2**74_207_281-1
camelia rakudo-moar 775271: OUTPUT«(timeout)»
gfldex m: say (2**74_207_281-1).is-prime 14:29
moritz rakudo-moar 775271: OUTPUT«(timeout)»
diakopter rotfl XD
camelia rakudo-moar 775271: OUTPUT«(timeout)»
moritz here, I'm faster than camelia
diakopter: well, it only does a statistical test 14:30
diakopter say (2**74_207_281-1).is-mersenne
brrt what i would give to find all instances of 'old os x' and.. dispose of them 14:32
os x and the apple pretty hardware may be one of the most powerful regressive forces in OSS today 14:33
[Coke] ?
tadzik timotimo: originally, yes. It was later ported to perl6 by [Coke], I think 14:33
timotimo ah
brrt if i must, i will elaborate :-) 14:34
tadzik or colomon?
timotimo were you running it on some server or something?
since it's not running any more, apparently, why not run it on p6c infrastructure
tadzik I was running the perl 5 version years ago
I don't remember who was hosting the p6 version
brrt apple will happily sell you a laptop which is almost, but not quite, a capable developers machine
[Coke] tadzik: doesn't sound familiar.
colomon has nothing to do with synopsebot
timotimo well, if you have no reason to use opengl ever ...
[Coke] brrt: I have a work mactop that is pretty servicable... 14:35
brrt because people confuse it for a capable developers machine, they expect development to just work
tadzik huh
brrt however, the apple ecosystem itself is not hackable per se 14:35
[Coke] brrt: "install xcode; install xcode command line tools". done.
brrt yes
and apple gives you a set of tools which are almost, but not quite, workable
tadzik silly people! Development is because things don't "just work" :)
[Coke] with that and macports, I've yet to be annoyed.
brrt: what is driving this complaint?
brrt too much stress in general :-) 14:36
tadzik hugs brrt
brrt the RT ticket, in particular
nemo xcode has caused me so much pain over the years
but it has gotten more usable lately
brrt the simple and dumb fact that we're quite unable to get a VM, a text-based VM, that's all I ask, of 'darwin' and associated build tools to test our stuff on 14:37
timotimo 2015-04-10 17:32:03 <-- synopsebot (~synopsebo@2001:780:101:ff00::2:9) has quit (Remote host closed the connection)
isn't that on our servers?
moritz it is 14:38
timotimo yeah, that's the p6c.org ip space 14:38
[Coke] the problem with jim's config is probably that it's PPC, and we're probably trying to compile JIT. that's my not-even-looking guess. :) His system is very old.
brrt the process is this: people hack stuff on linux, bsd, and expect stuff to work on os x, because apple tells you 'os x is just bsd', and then it isn't, and then we have to find a developer with time and care who will test it on one of the many, many comically fragmented os x 'platforms'
this is a bad state of affairs
[Coke] I think if we do as FROGGS suggested and give him some diagnostic output, he can probably fix it.
nemo brrt: OSX + macports is "just BSD" ? 14:39
[Coke] brrt: no one really expects that.
Certainly not jim.
brrt i kind of expect that
nemo: try libuv
timotimo the only mentions of synopsebot in hack's "locate" database are under /home/duff or /home/tadzik 14:39
who is jsduff on irc again?
moritz timotimo: duff is PerlJam 14:40
brrt nemo: your reply is what i mean with 'almost, but not quite' :-)
[Coke] .seen kid51 14:40
yoleaux I saw kid51 16 Jan 2016 13:36Z in #perl6: <kid51> I ask because I'm about to start a Perl6 study group in NYC and, for the people likely to participate in this group, I've been advised that Rakudo Star will be a better bet.
timotimo thanks 14:40
nemo brrt: heh. I'm not a huge OSX user really. just out of necessity for iOS dev 14:41
[Coke] brrt: kid51 is the PPC mac guy, btw.
tadzik ah, PerlJam
nemo brrt: but, yeah, take freeciv's "OSX support" page freeciv.wikia.com/wiki/Install-MacOSX
tadzik seems I was almost correct geographically at least :P
nemo you get to pick which of 3 complete unix-y package management env you get to install first before compiling on your own
timotimo moritz: irc.p6c.org; is that the host that we give to people for having irc sessions? 14:42
it seems strange that it doesn't ipv6
brrt [Coke]: MoarVM assumes darwin == clang, and of course, we don't have the clang toolchain on aged os x instances 14:43
moritz timotimo: it's the host I offered for that matter; but I've shut it down after a few weeks, because nobody used it.
nemo that seems a silly assumption
Skarsnik I say people wanting old plateform support, just write it x) 14:44
brrt all this would not matter if apple was open about their toolchain and let hackers.. hack it, but no
timotimo ah, ok. so no use looking if synopsebot was set up there
brrt nemo: welcome to the MoarVM configuration system
moritz timotimo: correct
timotimo: the IP is bound to eth0 on hack 14:45
moritz up /sbin/ifconfig eth0 inet6 add 2001:780:101:ff00::2:9/64 14:45
# from /etc/netwwork/interfaces
timotimo ah, i should have looked there 14:46
timotimo if i were to set up a new instance of synopsebot, would i create a new user for that? 14:47
timotimo tries running synopsebot locally first
moritz timotimo: yes, new user 14:48
timotimo: and ideally write a systemd service file
timotimo: so that it's automagically started on reboot
timotimo right 14:48
moritz timotimo: see /etc/systemd/system/dalek-irc.service for example; it's no magic :-)
jnthn The MoarVM configuration system will only change notably if somebody with experience of building such things for a bunch of less common platforms steps up to do it.
timotimo i see that perlpilot has a bunch of commits in his repository that haven't been merged into tadzik/, but there's been two pullrequests merged since they both diverged 14:49
jnthn In reality, if you handle Windows + most standard Linux + modern OSX, then you're already covering around 99% of potential users.
Plus it handles a bunch of BSDs too. 14:50
brrt nods in agreement
jnthn Anything else is a fraction of a percent, and it's just not cost effective to spend time on that when it could be spent on making, say, performance and stability better for the > 99%.
brrt and adds that we're kind of limited by 3rd party libraries like libuv, which are very much platform-bound 14:51
jnthn (Noting that we have very limited resources.)
jnthn So I'm *all* for work to extend the range of platforms, but it won't happen without somebody volunteering. 14:51
ely-se say "Install Gentoo"; exit 1; 14:53
[Coke] I think the trick here is to give kid51 a pointer on how to fix it himself, make the config probe smart enough to complain the right stuff to him. 14:53
(and that'll help for others with weird platforms)
jnthn Yes, being better at knowing when we don't know may well help. 14:54
[Coke] if he comes back and says "oh, now libuv is busted", he's on his own. :) 14:55
mspo what if you pass CC= ? 14:58
timotimo let's see if this works 15:00
timotimo 152641 [Coke] │ it's rt.perl.org/Ticket/Display.html?id=127308 - I added a chrome search backend for RT, 15:01
[Coke] RT #127308 15:02
synopsebotimo Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127308
timotimo um ...
[Coke] RT #FOOLEDYOU
timotimo yeah :)
i didn't see your line before the synopsebotimo line and i thought it just took almost a minute to react
with one simple patch to IRC::Net::Bot it seems to work again 15:03
tadzik \o/ 15:03
timotimo it probably asplodes if b0rked utf8 gets sent to a channel, though 15:04
because it uses $connection.Supply.lines 15:05
maybe we should have a way to pass an encoding there?
moritz +1 15:05
timotimo jnthn: does that sound insane? 15:06
timotimo $connection.Supply(:encoding<utf8-c8>) 15:06
jnthn timotimo: Should support that, yeah. 15:06
timotimo: But probably going to implement it a bit differently than it's done today 15:07
timotimo doc.perl6.org/routine/Supply - um, what is this about?
m: say &zip
camelia rakudo-moar 775271: OUTPUT«sub infix:<Z> (| is raw) { #`(Sub+{<anon|68739552>}+{Precedence}|43410160) ... }␤»
timotimo this is about a method on Supply, but why is it under routine/? 15:08
jnthn That looks...odd
moritz timotimo: all methods or subs show up under /routine/ 15:08
timotimo oh 15:09
well, fair enough
jnthn Yes, but sould doc.perl6.org/routine/Supply not show methods called Supply? 15:09
moritz it should
timotimo whoa
moritz like doc.perl6.org/routine/zip does, for example 15:10
timotimo github now puts a very visible link to CONTRIBUTING.md at the top of the "new issue" page
:+1:
moritz seems somebody read the open letter to github, and decided to implement the simplest thing quickly :-) 15:10
timotimo i don't remember seeing that open letter you're refering to 15:11
moritz timotimo: github.com/dear-github/dear-github
timotimo github.com/perl6/doc/issues/357 - does my complaint seem sensible? 15:13
moritz yes 15:14
a different color for the selection would help
[Coke] timotimo: yup. I got no feedback when I added categories.
moritz like yellow or blue or so
masak "low contrast" is basically the issue
[Coke] so you got whatever I had in my testbed. :)
moritz or even a light red
[Coke] should be pretty easy to change with a style. 15:15
timotimo [Coke]: the categories are super helpful, imo
timotimo does someone have an irc client that can send raw mojibake to the network? 15:16
[Coke] timotimo: danke! 15:16
timotimo no, danke you! 15:17
[Coke] ok, fine, bitte.
timotimo :3
[Coke] YOU WIN OK IS THAT WHAT YOU WANTED?
:)
timotimo :D
sjn has had some issues with doc.perl6.org too, lately :-\ 15:18
sjn e.g. searching for "..." and then going to the resulting page gives a 404 not found :-\ 15:18
(resulting URL is <doc.perl6.org/routine/...>
timotimo aye, we have trouble with "funny" urls :( 15:19
mspo add .html
sjn would love that the resulting URL already had .html added :3 15:19
moritz please don't
what's the use?
the problem is that . and / have special meanings in paths 15:20
mspo it makes the page load?
doc.perl6.org/routine/....html
timotimo with an ACTION, the bot already gets a weird character 15:20
mspo I mean, assuming the page actually loading is important
timotimo tests
moritz mspo: that helps in that particular case, but we need a genral fix
sjn moritz: in that case, there's an issue about escaping here
moritz sjn: could very well be 15:21
timotimo m: $*OUT.write(buf[int8].new(^66))
camelia rakudo-moar 775271: OUTPUT«5===SORRY!5=== Error while compiling /tmp/dgOh8Sb1rY␤Undeclared routine:␤ buf used at line 1␤␤»
timotimo m: $*OUT.write(Buf[int8].new(^66))
camelia rakudo-moar 775271: OUTPUT«␀ ␤
timotimo okay. is synopsebot okay?
seems to still run fine
moritz RT#1234
timotimo RT #127308
synopsebotimo Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127308
mspo moritz: I think most of them would work as a query param instead of a path url
timotimo not bad indeed. 15:22
mspo moritz: although & and ? and # would still be broken
moritz mspo: right, but that needs a different backend
mspo: it's all static pages right now
mspo the static page generator can have a list of "broken" things to render in a different way 15:22
[Coke] there is a suggestion to have files like "." be renamed to something like "period" 15:23
moritz mspo: patches welcome
[Coke]: also patches welcome :-)
mspo it's in the docs repo?
moritz mspo: yes
iirc STD.pm6 has a list of names for characters 15:24
[Coke] you can build the site, but it's incredibly slow, fyi.
timotimo if we translate . to period, what happens to an actual "method period"? :)
timotimo clearly we need a similar approach to "punycode" :P 15:25
moritz timotimo: we can translate . to @dot and there are no @ in method names
mspo why is it slow?
moritz there's still potential conflicts with operators
mspo or is that redundant? :)
timotimo m: sub infix:<@>($a, $b) { say "haha!" }; 1 @ 2 15:26
camelia rakudo-moar 775271: OUTPUT«haha!␤»
moritz the "proper" solution is to have some dynamic backend
mspo what powers the search?
moritz timotimo: as long as it's not infix:<@dot> it's all good
mspo: client-side JS
moritz mspo: htmlify.p6 creates some JSON document that contains an index of documents and key words/symbols, iirc 15:27
sjn sees that just adding .html to the end of the URL would be enough to make the ... doc page work
moritz sjn: but it won't work for $/ for example :-) 15:27
or for //
mspo the browsers might not all do the same thing when requesting things like // 15:29
sjn hm 15:31
sjn ok, so URL-encoding those don't work (the browser just "fixes" the URL) 15:31
timotimo aye, the url-encoding part is a layer too "high"
or low, depending on your view point 15:32
mspo sjn: it's probably still sending url-encoding but showing you //
sjn if we use another encoding character than %, we just move the problem
mspo chrome does that, anyway
timotimo it'll probably reach the server without the server being able to tell a difference
mspo you can't type XSS into the bar anymore; it's annoying
moritz huh? does it encode < ?
sjn we could just generate URL with our custom encoding (e.g. @40 instead of %40) 15:33
mspo moritz: yes 15:33
I think firefox started doing the same thing recently
sjn as long as it's internally correct, and all characters can be represented (including the escape character), it should work fine
@ is perhaps a bad URL escape character... 15:34
sjn ¤? ‰? -? 15:34
perigrin worked on a project that used @@ delimited text.
talk about hard to read data files. 15:35
mspo mojo uses @@ I think in __DATA__
timotimo we should use `, as that's "the one" character perl6 doesn't use anywhere internally
(not seriously)
sjn hehe
let's escape with \0 :) 15:36
that's make things interesting
timotimo "how to find b0rked software"
DrForr perigrin: Try : and * for your delimiters :)
perigrin if only uniocde were better supported on filesystems ... 💩 delimited filenames so people could finally say "where'd it install that crap?"
timotimo reminds me of when fedora named their release "Schrödinger's Cat"
sjn that'll*
moritz timotimo: did they? including the single quote? 15:38
"what could possibly go wrong?"
timotimo i'm not sure about the single quote actually 15:39
jast well there are lots of benefits to typographical apostrophes ;)
sjn suggests using "-" as an internal escaping character, since it's one of the characters in URL incoding that _don't_ get a custom treatment (meaning, it'll always come across the wire as a -) 15:40
timotimo which one is the right one? ’ or ‘ ?
perigrin It had a 50% chance of both installing and not installing cleanly ... and only when you ran the installer did it collapse into a observable state.
timotimo perigrin: nah, not 50-50.
jast ’ from what I can tell with this font
timotimo .u ‘’
sjn having a file for the minus operator would then be /-2D.html
yoleaux U+2018 LEFT SINGLE QUOTATION MARK [Pi] (‘)
U+2019 RIGHT SINGLE QUOTATION MARK [Pf] (’)
moritz 50+1i %
timotimo jast: seems like both are wrong?
sjn . would give -2E.html 15:41
jast right single quotation mark is visually identical to apostrophe
sjn // would give -2F-2F.html
jast "This is the preferred character to use for apostrophe according to the Unicode standard. "
unicode.org/Public/UNIDATA/NamesList.txt search for 2019 15:42
timotimo ugh.
sjn and we'd only have to encode funny characters like / .. and - :)
jast though there's also
Skarsnik hm, does someone has a suggestion on how I should handle excluding header in gptrixie (like to not display stuff from stdlib.h or 'internal' header)
jast .u ʼ 15:43
yoleaux U+02BC MODIFIER LETTER APOSTROPHE [Lm] (ʼ)
timotimo they put a paired quotation mark thing in, but then decided to suggest using that for apostrophe ?!?
jast I guess that's a combining character, though? 15:43
Skarsnik I mean, should I use a config file, some argument to the binary
hahainternet hey guys/gals, so i've been chatting with a friend about object orientation
masak ok
hahainternet and one thing he said stuck out at me, that when you have $obj.method, your methods are tied to that object explicitly
timotimo Skarsnik: do it just like mplayer and friends to it with their config. interpret the config file contents as commandline flags 15:44
hahainternet even though the method itself might be useful as a function elsewhere, without $obj or replacing $obj explicitly
hahainternet but as far as i know in perl6, self is implicit and there's no way of having a bare function that's also a method? or maybe i'm dumb :D 15:44
timotimo you can export methods that turn into subs "on the outside" of the class 15:45
Skarsnik method are special sub I think
hahainternet timotimo: can you give me an example or somewhere to read please?
sjn tools.ietf.org/html/rfc3986#section-2 is the relevant RFC to look at for reserved characters in URIs
timotimo m: class Frob { method nozzle is export { say self } }; Frob.new.nozzle; nozzle(new Frob); nozzle();
camelia rakudo-moar 775271: OUTPUT«5===SORRY!5=== Error while compiling /tmp/VOOmccpl0r␤Unsupported use of C++ constructor syntax; in Perl 6 please use method call syntax␤at /tmp/VOOmccpl0r:1␤------> 3lf } }; Frob.new.nozzle; nozzle(new Frob7⏏5); nozzle();␤»
timotimo m: class Frob { method nozzle is export { say self } }; Frob.new.nozzle; nozzle(Frob.new); nozzle();
camelia rakudo-moar 775271: OUTPUT«5===SORRY!5=== Error while compiling /tmp/94hrJgU8fI␤Undeclared routine:␤ nozzle used at line 1␤␤»
timotimo hum.
FROGGS m: class Frob { method nozzle is export { say self } }; import Frob; Frob.new.nozzle; nozzle(new Frob); nozzle();
camelia rakudo-moar 775271: OUTPUT«5===SORRY!5=== Error while compiling /tmp/X5aviyNopo␤Unsupported use of C++ constructor syntax; in Perl 6 please use method call syntax␤at /tmp/X5aviyNopo:1␤------> 3t Frob; Frob.new.nozzle; nozzle(new Frob7⏏5); nozzle();␤»
FROGGS m: class Frob { method nozzle is export { say self } }; import Frob; Frob.new.nozzle; nozzle(Frob.new); nozzle(); 15:46
camelia rakudo-moar 775271: OUTPUT«Frob.new␤Frob.new␤Too few positionals passed; expected 1 argument but got 0␤ in method nozzle at /tmp/7PY2LyjNep line 1␤ in block <unit> at /tmp/7PY2LyjNep line 1␤␤»
timotimo ah, needs the import, of course
the error is to be expected ^
jnthn And need to pass something for the invocant
FROGGS aye
jnthn Which is really just an argument
Skarsnik method have extra parameters yes x)
FROGGS m: class Frob { method nozzle is export { say self } }; import Frob; Frob.new.nozzle; nozzle(Frob.new); nozzle("something");
camelia rakudo-moar 775271: OUTPUT«Frob.new␤Frob.new␤Type check failed in binding <anon>; expected Frob but got Str␤ in method nozzle at /tmp/w7gkxayHlR line 1␤ in block <unit> at /tmp/w7gkxayHlR line 1␤␤»
jnthn Perl 6 believes that pretty deeply
FROGGS :o)
jnthn m: class C { method m($a) { } }; C.m 15:46
hahainternet FROGGS: that's what worries me a little bit
camelia rakudo-moar 775271: OUTPUT«Too few positionals passed; expected 2 arguments but got 1␤ in method m at /tmp/rYqP36KmpQ line 1␤ in block <unit> at /tmp/rYqP36KmpQ line 1␤␤»
FROGGS jnthn: something doesnt work :o)
jnthn Note the "expected 2, got 1"
hahainternet could that be made more generic
andreoss m: say -v
camelia rakudo-moar 775271: OUTPUT«5===SORRY!5=== Error while compiling /tmp/_L6I3JGBCw␤Undeclared routine:␤ v used at line 1␤␤»
hahainternet or is it tied implicitly to Frob?
jnthn FROGGS: :P 15:47
FROGGS m: class Frob { method nozzle(Any:) is export { say self } }; import Frob; Frob.new.nozzle; nozzle(Frob.new); nozzle("something");
camelia rakudo-moar 775271: OUTPUT«Frob.new␤Frob.new␤something␤»
FROGGS hahainternet: ^^
andreoss >Bytecode validation error at offset 166, instruction 25:
jnthn hahainternet: You can...what FROGGS showed UP
oops
s/UP/:)/
andreoss what does this mean?
hahainternet aah very nice, so it's the method signature
that is excellent
jnthn andreoss: Potentially corrupted bytecode, in practice usually version skew between MoarVM and your NQP/Rakudo.
Skarsnik timotimo, na I don't want all the option in a config file. It just I want to exclude stuff from stdlib (and co) but I also want the user to be able to change it ~~ 15:48
timotimo that sounds like you just want to distribute a default config with your program? and also offer a negative version of every switch 15:48
BBL 15:49
andreoss paste.debian.net/366799/ 15:50
perigrin /w 28
FROGGS andreoss: what's moar --version ? 15:51
andreoss > This is MoarVM version 2015.12 built with JIT support
FROGGS hmmmm, weird
bbiab
andreoss it's v6.c, at least rakudobrew says so 15:52
jnthn Very odd. Here I just get "Undeclared routine: a used at line 1"
andreoss ok, will try to rebuid 15:55
masak hahainternet: still there_ 15:56
hahainternet: still there?
Ulti_ andreoss: get undeclared routine here on OSX for what it's worth 15:57
hahainternet masak: i am 15:57
masak m: my $m = method { say self.name }; class Employee { has $.name }; my Employee $e .= new(:name<Albert>); $e.$m()
camelia rakudo-moar 775271: OUTPUT«Albert␤»
masak hahainternet: you can have methods unconnected with a class, as above.
hahainternet masak: indeed, i half expected someone in here to say "oh that's a weird requirement, i'm not sure" 15:58
but instead, instant perfect answer
that is coherent and kinda beautiful
damn you perl 6! :D
masak hahainternet: but I hasten to add that I wouldn't want to write many of my methods like that, since most of my methods (that aren't just syntactic sugar for other methods further down) would touch private state of the object 15:58
and you can't do that if you're outside a class
hahainternet masak: that's fine, this was a discussion about the downsides of methods vs plain functions
hahainternet and my friend was saying how methods are just crappy functions that have mandatory arguments and become worthless without them 15:59
masak hahainternet: basically, what we're (implicitly) making use of here is that if you dig deep enough into Perl 6, method calls are "actually" function calls
hahainternet wheras here as usual, perl6 has the best of both worlds
masak hahainternet: and the invocant `self` is "actually" passed as a hidden first argument
hahainternet masak: yeah that's pretty normal elsewhere too, method(obj, args) ~~ obj.method(args)
RabidGravy I love this two bugs for one deal I just got
Skarsnik hm, why method have 2 arg at compile time btw?
hahainternet but that's a smart model, because it allows complex behaviour like this, which is very nice
masak hahainternet: in your friend's defense, I've seen a lot of OOD where your friend is right in all ways that matter
hahainternet: but when you do OOD right, your friend is wrong, IMO 16:00
hahainternet masak: he is a functional programmer, so i try to learn from his perspective
moritz lv
sorry, wrong window
hahainternet and his issue is more with languages which make assumptions in this regard i believe, so Python lol
masak hahainternet: the one thing that FP people have over OOP people is that FP *is* grounded in something formal and well-specified. OOP isn't.
hahainternet masak: indeed, but i was going through his particular hates and trying to understand them more 16:01
abaugher I'm having trouble getting an exitcode from Proc.run. The process does return an exitcode of 1 in the shell, and the error is returned on the :err pipe, but the .exitcode method always gives me zero. Any ideas? The code: nopaste.me/view/c40aed69
hahainternet i have found that any time i have any programming issue that is down to syntax or mechanisms or similar, perl6 has the best solution 16:01
masak hahainternet: another thing that Perl 6 largely fixes is the objection "why is there always only *one* invocant?"
hahainternet and what a shock, here too the best of both worlds remain
masak CLOS fixes that one too
hahainternet hell it took me no more than a few seconds to make sub whatever is Atomic {...} work
moritz abaugher: the exit code is only available when the program has exited 16:02
masak with multimethods, you can put all the arguments on exactly the same footing
moritz abaugher: so you need to read everything from $err first
abaugher moritz, ah, ok, thanks
So the Proc is waiting for me to read that pipe because I said I wanted it. I guess that makes sense. 16:03
Skarsnik m: trait_mid:<is>(Routine $p, :$hello) { say $p.signature.params.elems}; class A { method foo is hello(Str $s) {}};
camelia rakudo-moar 775271: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Qkyw6pEt8V␤Unable to parse expression in argument list; couldn't find final ')' ␤at /tmp/Qkyw6pEt8V:1␤------> 3trait_mid:<is>(Routine7⏏5 $p, :$hello) { say $p.signature.params.␤ expecting any o…»
moritz abaugher: I'm not sure it works then, but I'm pretty sure it can't work without it :-) 16:04
Skarsnik m: trait_mod:<is>(Routine $p, :$hello!) { say $p.signature.params.elems}; class A { method foo is hello(Str $s) {}};
camelia rakudo-moar 775271: OUTPUT«5===SORRY!5=== Error while compiling /tmp/4dgtk9jnel␤Unable to parse expression in argument list; couldn't find final ')' ␤at /tmp/4dgtk9jnel:1␤------> 3trait_mod:<is>(Routine7⏏5 $p, :$hello!) { say $p.signature.params␤ expecting any o…»
Skarsnik hm
jnthn Skarsnik: You need the signature before the is hello 16:05
Skarsnik: At the moment it's parsing the (Str $s) as an argument to the trait, which is then malformed
Skarsnik m: trait_mod:<is>(Routine $p, :$hello!) { say $p.signature.params.elems}; class A { method foo (Str $s) is hello {}};
camelia rakudo-moar 775271: OUTPUT«5===SORRY!5=== Error while compiling /tmp/l0TwlSAUt3␤Unable to parse expression in argument list; couldn't find final ')' ␤at /tmp/l0TwlSAUt3:1␤------> 3trait_mod:<is>(Routine7⏏5 $p, :$hello!) { say $p.signature.params␤ expecting any o…»
hahainternet are you missing sub 16:06
moritz or better "multi"
Skarsnik m: multi trait_mod:<is>(Routine $p, :$hello!) { say $p.signature.params.elems}; class A { method foo (Str $s) is hello {}};
camelia rakudo-moar 775271: OUTPUT«3␤»
Skarsnik why multi?
and why 3 params x)
hahainternet the method is just 'is' 16:07
PerlJam Skarsnik: *%_
moritz Skarsnik: because there are already existing trait_mod:<is> candidates, and you're overriding them
hahainternet multi is required to select which implementation based on 'hello' i think?
kk sweet, i got a question rightish!
Skarsnik *%_?
PerlJam Skarsnik: ignore me. I'm not fully awake :)
jnthn m: class C { method m($x) { } }; say C.^lookup.signature 16:08
camelia rakudo-moar 775271: OUTPUT«Too few positionals passed; expected 3 arguments but got 2␤ in any lookup at gen/moar/m-Metamodel.nqp line 531␤ in block <unit> at /tmp/nf0mwIsLzC line 1␤␤»
PerlJam Well ... I'm fully awake ... except for my brain
jnthn m: class C { method m($x) { } }; say C.^lookup('m').signature
camelia rakudo-moar 775271: OUTPUT«(C $: $x, *%_)␤»
Skarsnik why only on method?
jnthn That's the 3. The invocant, the $x, and the thing that swallows up unknown named args for interface consistency.
Because subs don't have invocants and don't participate in inheritance so have no need to solve the interface consistency problem.
Skarsnik it bothered me when I wrote the sanity type check routine in NC x) 16:09
b2gills I ask because it currently isn't backed by the same code 16:10
yoleaux 10:15Z <jnthn> b2gills: I'd hope so...
abaugher moritz, that didn't do it either. Thanks anyway; time for me to dig into the source! 16:11
jnthn b2gills: Indeed. Interesting. 16:12
tony-o ! 16:31
jnthn tony-o!!! :) 16:32
tony-o !! time to revamp my modules to use some of the new cool stuff people have done, specifically web::scrape
average blogs.perl.org/users/zoffix_znet/20...guage.html 16:37
this was funny..
masak average: you can write very readable Perl. you can write very unreadable Python. it's all a bit of a silly debate, really. ;) 16:42
average masak: it is very silly, yes 16:43
alpha123 masak: well the post is a bit tongue-in-cheek
average Sayre's law all over the place en.wikipedia.org/wiki/Sayre%27s_law
"In any dispute the intensity of feeling is inversely proportional to the value of the issues at stake."
alpha123 lol 16:44
that's a good one
average so the Perl vs. Python debate is intense because it matters very little 16:44
masak indeed 16:45
the best any Perl or Python programmer can do is to think about the similarities between the two languages, and between programs written in each
in fact, in many situations, Perl and Python are *ridiculously* similar 16:46
alpha123 i would say the idiomatic way of doing things is rather different in each though 16:47
average I like PLEAC a lot pleac.sourceforge.net/
masak alpha123: sometimes, I guess
average I would like to see Perl6 in PLEAC
alpha123 average: hey thanks, that's a good resource for language design 16:48
average: are you familiar with rosettacode.org ?
average yes
masak agreed, it would be nice to be on PLEAC 16:49
[Coke] j 16:53
`~.
RabidGravy there, four of the six RabbitMQ tutorial examples work with Net::AMQP 16:54
jnthn RabidGravy++ 16:55
Skarsnik what is RabbitMQ? 16:59
and nice job x)
alpha123 so is there any way to set a value in a list and return a modified list instead of mutating it 17:01
like haskell lenses kind of 17:03
jnthn would first thing of doing it with slicing
*think
@a[^3], new-value, @a[4..*]
m: my @a = 1..10; say flat @a[^3], 42, @a[4..*] 17:04
camelia rakudo-moar 775271: OUTPUT«(1 2 3 42 5 6 7 8 9 10)␤»
jnthn m: my @a = 1..10; say (flat .[^3], 42, .[4..*] given @a) # if you don't want to repeat @a 17:05
camelia rakudo-moar 775271: OUTPUT«(1 2 3 42 5 6 7 8 9 10)␤»
RabidGravy Skarsnik, it's an AMQP messaging broker made in erlang 17:05
perigrin the API for the Perl6 RabbitMQ APIs made me grumpy compared to the python examples in teh RabbitMQ tutorials / docs. 17:06
sorry Perl5
lichtkind what the best way o get a deep copy of a data sructure?
perigrin RabidGravy: I look forward to seeing where you ended up :) 17:07
lichtkind i tried clone but got spooky action
jnthn Yes, clone is only shallow. What is the data structure? If it's some class of your own you can override clone. 17:08
lichtkind array of array 17:13
nothing special
but if its an object attribut and i clone obj then i get full?
jnthn Not unless you override clone to make that happen, no 17:14
lichtkind thanks
jnthn Hm, I'm surprised nothing on modules.perl6.org that does deep clone yet
lichtkind like said it the first time i seriously use perl 6 17:16
lichtkind but out libs grows nicely 17:17
masak lichtkind: if you know the structure beforehand, you can just call clone on all the parts. 17:19
lichtkind: otherwise, write your own deep-clone function
lichtkind i currently do so 17:20
masak i think you will enjoy Mathmatrix, we already have choleki and the 10 most important properties 5 norms etc
growing fast 17:21
lichtkind curently banging my head against wall how to make a octave like pretty print for matrices in perl6 17:21
currently working title for this method is table 17:22
but currently one line will do since we have only AoA 17:23
RabidGravy perigrin, imo the P6 one that retupmoca started is much nicer than the python one, I've just been fixing it up so it will do everything that the tutorials need 17:25
perigrin RabidGravy: interesting. 17:32
dalek rl6-most-wanted: 74c6805 | (Herbert Breunung)++ | most-wanted/modules.md:
Update modules.md
17:35
lichtkind i added deep clone to github.com/perl6/perl6-most-wanted...modules.md
ab6tract o/ RabidGravy :) 17:37
was going to point out my bug report, but you've already added a label :D 17:38
RabidGravy to be honest if they are the only tests that are failing then it is likely that it will actually work, but that it does point to something weird with int sizes 17:41
ab6tract RabidGravy: my use case is pretty simple 17:42
i'd like to write a script which monitors a few directories in which audio files will be generated by my audio software
then spins off worker threads to create FLAC backup copies and store them in a centralized location 17:43
since it is easy to lose track, more or less, of musical output when it is spread across different DAWs and projects
ab6tract in the long run i'd like to turn it into a web app designed to triage this process, where i can listen to the changed/new files, rename them, tag them, ignore them, etc. then hit a 'process' button 17:44
but the watch-and-convert script seems like a nice blog post waiting to happen 17:45
.seen bluebear94 17:46
yoleaux I haven't seen bluebear94 around.
RabidGravy strangely I was going to make a similar example for Tinky 17:48
[Coke] Tinky Winky? 17:49
jnthn haha...is that a play on POE? :) 17:50
RabidGravy github.com/jonathanstowe/Tinky
it is actually named after the tellytubbie :) 17:51
[Coke] HEE! 17:52
ab6tract RabidGravy: we should coordinate the posts 17:54
yours could be a "an even easier way" 17:55
i might forego Audio::Sndfile for the time being as well and try out Proc::Async 17:58
ab6tract since it is extremely cool that we get IO.watch for free in core, and likewise Proc::Async. so the first case of this example can be a ecosystem-free version 17:59
ab6tract RabidGravy: By the way, I began to suspect we might have convergingly similar use cases for Perl 6 code when you wrote Audio::Sndfile to begin with :) 18:01
RabidGravy well my long term intention is to be able to make a radio station application that can replace Airtime 18:10
the Audio::* stuff is for the media management and playout parts 18:12
RabidGravy perigrin / anyone else who might be interested github.com/jonathanstowe/Perl6-RMQ-Examples is the first four examples 18:19
lichtkind yay 18:45
RabidGravy boom! 18:53
tony-o_ pow! 18:54
lichtkind :)
masak zowie! 18:56
mspo m: say "hello" 19:00
camelia rakudo-moar 775271: OUTPUT«hello␤»
sjn r: say "oh noes" 19:06
camelia rakudo-jvm 6c0f93, rakudo-moar 775271: OUTPUT«oh noes␤»
ab6tract m: say "net".comb.splice(*) 19:12
camelia rakudo-moar 775271: OUTPUT«Method 'splice' not found for invocant of class 'Seq'␤ in block <unit> at /tmp/4jfclYGxJU line 1␤␤»
ab6tract m: say "net".chars.splice(*)
camelia rakudo-moar 775271: OUTPUT«Method 'splice' not found for invocant of class 'Int'␤ in block <unit> at /tmp/uqXWO5Npx5 line 1␤␤»
ab6tract ah well :)
m: say "net".comb.split('e') # there we go 19:13
camelia rakudo-moar 775271: OUTPUT«(n t)␤»
dalek rl6-most-wanted: 89cfc7a | pmqs++ | most-wanted/modules.md:
Added Archive-SimpleZip
19:27
rl6-most-wanted: 0d5daf9 | (Zoffix Znet)++ | most-wanted/modules.md:
Merge pull request #13 from pmqs/patch-2

Added Archive-SimpleZip WIP
mspo ab6tract: chars returns the number of elements 19:28
TimToady hahainternet: the basic point to stress to your friend is that functions and methods really are unified within Perl 6, and that the primary distinction (apart from a bit of syntactic sugar for implicit self) is in the dispatchers 19:32
hahainternet TimToady: i'm continually impressed with the thought that's gone into Perl 6. My only concerns are that optimization will be long and hard and difficult to do 19:33
[Coke] hahainternet: actually, the architecture was designed to make them easier to implement. 19:34
moritz it has taken decades for Javascript to become fast :-)
[Coke] We'll find out in the next year or so if that holds up.
hahainternet [Coke]: i have heard this said, but my knowledge is not exensive enough to know anything about it really
and moritz the difference is that javascript is unfortunately all but mandatory, not that i want to throw any doubts. I'll continue using 6 regardless 19:35
[Coke] no one told you? Perl 6 is also mandatory. :) 19:35
TimToady goes out to buy grandkids beach sandals... 19:36
timotimo RT #12345
Skarsnik :' 19:37
timotimo is synopsebot on the other side of a split or something?
mspo once moar doesn't take 90MB to run hello world, you'll be onto something 19:39
moritz but 89MB is OK? 19:40
mspo moritz: something along the perl5 memory usage would be nice 19:40
lower, even
moritz mspo: well, lots of things would be nice, but aren't a requirement for success 19:41
timotimo "lower" is kind of improbable 19:41
mspo moritz: a definition of "success" would be a good start if you're going to say stuff like that ;) 19:41
moritz mspo: like, most java programs take up much more space just to start the VM, and yet java is wildly successful
moritz mspo: to me, sustained grows of the community and ecosystem is success 19:42
*growth
mspo java proves that you can do anything if you're willing to type enough :) 19:42
timotimo mspo: fwiw, rakudo-moar currently takes less than 70 mb of ram to run hello world 19:43
mspo timotimo: I must be a little out of date, then 19:43
timotimo potentially 19:43
masak would it be possible to map out where those 90 MB go at the moment?
timotimo seems like perl5 is at 4.5 megabytes of ram for hello world
masak maybe that could give a clue to what could be optimized away, if anything? 19:43
masak or loaded lazily, or whatever 19:44
mspo run hello world in a loop and gcore it?
moritz masak: I'm only guess right now, but loading the setting is likely a big chunk of it
mspo setting?
skids What size do the GC arenas start at? 19:44
moritz also, most successful dynamic languages have a slower interpreter startup than perl5
timotimo well, i've looked over the things it lazily deserializes when it does hello world and a big chunk of objects - though not necessarily a big chunk of ram - is arrays that belong to our NFA objects for our grammar
timotimo skids: the nursery starts at 4 megabytes 19:45
moritz mspo: the setting is all the built-in types and code
timotimo er. the nursery is always at 4 megabytes
it could be we keep around the other space always, since we'd otherwise just end up re-allocating it every few miliseconds anyway? i'm not sure.
timotimo if somebody wants to lend us a hand for better ram usage at startup, there's branches that start implementing an op called "nfatostatelist", which would make these NFA arrays superfluous - they could then be created on-demand from the NFA objects themselves 19:46
but lifetime handling of those objects is a tiny bit hairy
mspo what was the command to manually compile? moar --dump ?
timotimo no, compiling stuff manually needs "perl6 --target=moar" or something 19:47
timotimo =moar or =mbc or whatever 19:47
skids wonders if there is now such a thing as a page-table-backed lazy chunk alloc.
mspo perl6 --target=moar -o hello.pl6.moarvm hello.pl6 didn't work 19:49
[Coke] define "didn't work"
Hotkeys is there a way to uninstall a package with panda?
moritz last I looked, it only worked with modules
but that was pre-autoprecomp, even 19:50
mspo Cannot dump this object; no dump method
moritz --target=mbc
mspo ame 19:51
same
jdv79 do we have a post xmas r* and an msi?
yoleaux 18 Jan 2016 16:27Z <ugexe> jdv79: is it possible to bring the elastic search back up for your metacpan fork? its returning `Could not connect to '127.0.0.1:9200': Connection refused`
timotimo yes, it will only work with modules. however, every script is also a module
[Coke] jdv79: nope
timotimo so all you have to do is tell perl6 to load that script as if it was a module and supply a -e '' empty program to "use" the module with 19:51
jdv79 ugexe: sorry. ill fix it tonight.
timotimo RabidGravy: hey, have you seen synopsebot?
jdv79 [Coke]: why not? 19:52
RabidGravy nah
timotimo because the last thing synopsebot saw was a message from you about making a radio station application that can replace airtime
moritz jdv79: because 2015.12 wasn't R*able, so we're waiting for 2016.01
timotimo hm. after that, there's only one ping/pong. so something must have gone wrong anyways
jdv79 we should probably do something more reliable with the metacpan instance soon.
[Coke] jdv79: lack of volunteers. 19:53
jdv79 ok. well, we kinda want that for a study group that might meet on 2/6.
i guess i could try to gen something if official isnt out by then. 19:54
[Coke] there is a partial effort (nine++) at getting a safe release of 2016.01 that avoids any backward compatibility issues; once that is released, an R* based on that can be cut.
jdv79 ok 19:55
[Coke] Anyone wants to help, test out his branch, make sure it's clean against the 6.c branch in roast, see if there are other commits that are safe to pull from nom...
TL;DR - teh first release post christmas is -hard-. please be patient.
[Coke] the first release with non-backwards compatible stuff also hard. 19:56
rindolf are backticks/qx the same as in perl 5? 20:08
because they are not mentioned here - doc.perl6.org/language/5to6-nutshell 20:09
Brock rindolf: nope, no backticks 20:09
awwaiid rindolf: my $result = shell("shell stuff", :out).out.slurp-rest 20:10
jnthn qx/shell stuff/
rindolf awwaiid: ah.
Hotkeys I'm getting this error when running perl 6 with linenoise on windows 7 pastebin.com/qK2F2Qcj
any ideas what's wrong?
or rather how I can fix it 20:11
awwaiid oh right. I can't remember why I used the shell slurp setup instead of qx
jnthn Yeah, the qx way is a lot shorter for the common case. Which is why it's there. :)
rindolf awwaiid: thanks, so the document needs to be revised.
timotimo so, i was wondering about module installation and multi-version-at-same-time stuff
timotimo do we need to have some way to allow module writers to just "use My::Other::Module" without having to specify the exact version, api, authority in the module code? 20:12
awwaiid Hotkeys: I don't know much about windows, but what command are you executing there?
Hotkeys 'perl6'
timotimo like, if we load a module from a specific distribution, perhaps we could set a compile-time variable to hold info like "what's the current authority, version, ..." and also "what other modules are part of this same distribution"
Hotkeys which runs perl6.bat I believe 20:13
or perl6-m.bat
awwaiid Hotkeys: hmm interesting. Did you by chance explicitly install linenoise? ala 'panda install linenoise'
timotimo so that a "use My::Other::Module" will resolve to the exact same version, authority, api, ... as the one that the use statement is in if that Other::Module is part of the same distribution?
Hotkeys awwaiid: Yep
b2gills jnthn: we can't have Seq.Numeric doing the same thing as Seq.elems because the [Bag|Mix|Set] spec tests require that it be cached :(
awwaiid Hotkeys: cool. welp... you've reached the end of my knowledge here. quickly too. :(
Hotkeys awwaiid: it was telling me that I should so I did
timotimo because otherwise if you install versions 1 and 2 and you don't precompile version 1 before precompiling version 2, you could end up with version 1 use-ing modules from version 2 by accident 20:14
Hotkeys that or Readline
which i can't do on windows
no libreadline
timotimo unless the module author puts version info every-whooping-where in the source
bread line!
skids timotimo: A distribution affinity like that would only work if the module author locksteps all the modules -- though I guess if they are unversioned and in the same distro that would be the case. 20:15
b2gills rindolf: some think that qq:x// should be discouraged in favor of shell() and run()
Hotkeys I'm gonna try doing a reinstall of all the things
jnthn b2gills: Ah...that may be a sensible distinction then
Hotkeys maybe that'll fix linenoise
jnthn b2gills: I'd mis-read and not realized we didn't cache in the other case 20:16
timotimo i think i was using wrong words here
what i really mean is modules from the same git repository
things that get installed together when you "panda install ASingleThing"
b2gills jnthn: I think it is LTA though that +permutations(10) takes a long time, but permutations(10).elems returns instantly 20:17
hoelzro Hotkeys: that looks like the error FROGGS and I found when trying linenoise on Windows
let me know if a re-install fixes it
skids timotimo: if :version took an ordered list of preferences, then maybe a preference for same-distro could be pushed on the front of unversioned "use" statements.
Hotkeys alright
b2gills
.oO( perhaps there should be a 「sub prefix:<+> ( PermutationSeq $seq ) { $seq.elems }」 )
20:18
Hotkeys PermutationSeq?
b2gills currently it is an anon Seq 20:19
Hotkeys ah
timotimo first of all i want to know if this is really a problem or if i'm just imagining things
does this belong in a different perl6 sub-irc-channel?
rindolf how do I specify a type for a paramter in rakudo perl6 / moar? 20:20
skids timotimo: e.g. 'use "Foo"'; in a distro that was "v1.0" in the META would mean use "Foo" :ver(v1.0,*). But then we might want to restrict that to only apply to modules supplied by that distro.
moritz m: sub rindolf(Str $x) { say $x }; rindolf('foo')
camelia rakudo-moar 775271: OUTPUT«foo␤»
rindolf moritz: ah, thanks. 20:21
hahainternet just noticed the type graph on the Exception doc page, it's truly something to behold
timotimo yes, only modules from that distro. otherwise things will get VERY strange
hahainternet doc.perl6.org/images/type-graph-Exception.png is also a little unusable 20:22
jnthn b2gills: Well, the point of Seq was not to have a proliferation of *Iter types in userspace :)
b2gills Actually it might make sense for there to be a role that permutations/combinations/Range sequence that declares that you can call .count-only() on it without modifying it
jnthn b2gills: Maybe. But I think we can live with it for now. 20:23
b2gills It would of course add a requirement that you have to implement that method
timotimo hahainternet: yeah, mostly due to the way roles are interconnected in there, i think
hahainternet: if you can help us embed some interactive graphviz viewer or scrollable in-line image thing that doesn't suck, please go ahead
timotimo or a better alternative 20:24
hahainternet timotimo: if there exists an interactive graphviz viewer or something like that that doesn't suck i would love to know about it :( 20:24
skids hahainternet: that's only going to get bigger over time, too.
hahainternet i wish i had a good solution i'm afraid 20:25
skids wonders how a PCB layout utility would do with something like that
moritz skids: I'm only speculating, but most big layouts seem to have arrays of same or similar components lined up, so I guess there are some manual steps that allow you align them 20:27
timotimo hahainternet: i've searched a few things, but nothing amazed me enough
moritz also most modern layouts are dominated by a few pieces with monstrously many pins, which dictate most of the layout
hahainternet moritz: few people use the autorouter to do everything 20:28
skids moritz: oh for sure, but "monstrously many pins" does kinda describe some of those ovals. :-)
hahainternet and honestly, autorouters aren't really what you'd want i don't think
hahainternet well, on that note i'm also going to make my way off while freenode collapses a little more 20:29
moritz timotimo: around 2007 or so I even installed an online map viewing software to allow people to browse my network of GPG signatures. It still sucked.
timotimo ;(
buharin hello 20:29
:)
vendethiel hi
moritz timotimo: though things might have improved since then :-)
timotimo potentially
buharin I wonder know why Perl6 get less users than Swift?
timotimo nowadays, building usable user interfaces in javascript isn't as terrible of a task as it used to be
buharin: because larry wall isn't steve jobs 20:30
Skarsnik Switft is backed up by Apple x)
moritz buharin: probably because swift had a pre-made niche to which all alternatives (objective C) more or less sucked
timotimo also, you can use swift already to build apps for iOS, which makes you dollars "immediately"
skids My experience with such problems is they keep making progress in academic papers but as they do so they use even more esoteric symbology to the point where people that wouls actually care to apply it are too busy putting their eyes back in their sockets to start coding. 20:31
timotimo perl6 doesn't yet have a way onto phones to develop apps with
buharin with perl6 you will be always poor?
skids (that was, WRT routing/mapping/data categorization)
moritz buharin: there are already people making money with Perl 6; it's just not such a straight and mapped-out route as with iOS apps 20:32
skids (and half the papers are just proofs that "indeed, this problem is NP hard and/or complete")
mst also, the iOS ecosystem is a pretty terrible way to make a living at this point if you're directly selling things too 20:33
timotimo no, no. you don't sell things on mobile platforms
mst but, yeah, for the moment perl6 is more likely to be your secret weapon than a CV asset
masak buharin: what you should be asking is about the various ways Swift is playing catch-up with Perl 6 (which is still ahead) :)
timotimo you give your app away for free, show a big amount of advertisements and if you can get the users to accept your privileges on android also grab information about installed apps and such and relay that to other companies for money 20:34
moritz or use the app for presenting teaser content, and then making the money from selling the actual content through in-app purchases
masak buharin: but features are only interesting if you use them, and something tells me you haven't written your first Perl 6 program yet ;) 20:35
m: say "hi, buharin!"
camelia rakudo-moar 775271: OUTPUT«hi, buharin!␤»
masak now's your chance.
buharin masak, I write Perl5 programs
even last time
but I used to swift
masak ok, so no Perl 6 yet. got it.
I for one hope you try it! you'll be surprised. 20:36
buharin masak, thats not problem :D because I like it
RabidGravy it's going to be great 20:36
buharin but got a long story :P
masak, if you want to know ;) maybe you can advice me smh
RabidGravy well apart from a small amount of Perl 5, C and the language that Liquidsoap uses I wrote almost exclusively Perl 6 last year 20:38
masak RabidGravy++
buharin sure thats greate
I program C++ then C then Python now I am Yocto recipe scripture in my job ;P and my cousin said me go learn swift it will be greate you will be rich etc. so I think about future and buy iMac start learn swift, and as I can tell you doing interfaces for iOS in some visual designers is so boring to me always some strange problem I got and I start thinking about Linux and Perl etc. but where can I get job in it? 20:41
thats a problem
money are killing good open source ppl
masak doesn't look that way from here
Ulti m: say 'a'.split('').perl 20:42
camelia rakudo-moar 775271: OUTPUT«("", "a", "")␤»
moritz buharin: if you find something you like doing, and are good at it, somebody will want to pay you for doing it for them. Then it's just a matter of finding them
buharin moritz, I think you are true 20:42
Ulti why would anyone want the start and end empty strings? 20:42
buharin in 100% 20:43
moritz buharin: if you like Perl programming, for example, go to a Perl conference, and be surprised by how many companies are hiring
masak also, I find that money and open source have good ways nowadays to stay in symbiosis
RabidGravy yeah, that's my way of looking at it, too
buharin moritz, there are no Perl conference in my country
moritz buharin: where are you located? 20:43
buharin Perl is very unpopular here
in Poland
moritz buharin: there's a Polish Perl Workshop
buharin w8 I will check
RabidGravy nah, there are loads of people here from Poland
moritz buharin: at least there are were in 2013 and 2014 20:44
masak I've been to two Polish Perl Workshops. they were great
buharin masak, thanks ;-)
moritz buharin: also, there's YAPC::EU each year, which attracts folks from all over Europe
buharin masak, because last time I write a perl script in my company
Hotkeys Speaking of geography, any canadians here? 20:45
buharin and I told it is multitool I write smh like tool for things which I repeat during dev many times
masak buharin: you should try to find other Perl people (or other open-source people) in your local area
moritz buharin: I was at YAPC::EU 2013 in Kiev, and it became a running gag that nearly every speaker concluded his or her talk with "and by the way, we're hiring"
buharin and the guy said me ask someone here who like perl
masak moritz: that gag spilt over a little to the subsequent YAPC::Europes too
buharin and he said if no-one says yes then stop writing in perl because it will be unmaintainable 20:46
Hotkeys are you saying I should move to europe if I want a perl 6 job
RabidGravy this year I am going to persuade a company that they want to use Perl 6
buharin RabidGravy, how to do it? 20:47
I talk with guy in my company and he says that perl is unreadable
no-one want to learn it
better write perl
shell is better then perl
Hotkeys Perl 6 is less line noise than perl 5 I've heard 20:48
although I never really used perl 5
alpha123 perl5 wasnt really linenoisey unless you made it that way
moritz buharin: for every language out there, there are people bashing it. PHP? Ugly, unsafe. Perl? Read-only. JS? don't even get me started. Haskell? Academia only. And so on
buharin moritz, I don't like PHP too
alpha123 yeah, the only language that's worthy of real bashing is PHP 20:49
buharin but supporting only main companies languages is worse
you know for example D lang
moritz buharin: the best thing you can do is write software that gets things done, and let the haters hate
buharin no-one head about it till one guy start to promote it
alpha123 remember when D was relevant?
yeah me neither
buharin and what else sucks in os x 20:50
masak at our company, we have been using Perl 6 for years
moritz I don't like PHP either, but I acknowledge that some of most widely used blogging and general web platform is written in PHP
buharin I use it first time but I can't run iOS dev on another platform
masak it's one of our (no-so-secret) business advantages
moritz I'd love to see something comparable in Perl 6 :-)
alpha123 also 90% of the web's security vulnerabilities normalized for language deployments are written in PHP! 20:51
SmokeMachine___ m: my %a; my @b = 1, 2, 3; %a{||@b} = True; say %a.perl
camelia rakudo-moar 775271: OUTPUT«{"1" => Bool::True, "2" => Any, "3" => Any}␤»
buharin and I got right now iMac and I cant install Linux here some strange problems
ely-se PHP is my favourite dynamically typed programming language, because it doesn't allow for abominations like monkey patching.
buharin why the fuck ppl like these systems
SmokeMachine___ shouldn't it be {1 => {2 => {3 => Bool::True}}} ?
buharin confused 20:52
masak buharin: I can only speak for myself, but I find Linux very nice and easy to work with. it's the system that frustrates me the least 20:52
buharin: then again, I'm not trying to run it on an iMac :P
moritz m: my %a; my @b = (1; 2; 3;); %a{||@b} = True; say %a.per
camelia rakudo-moar 775271: OUTPUT«Method 'per' not found for invocant of class 'Hash'␤ in block <unit> at /tmp/AX0UgLK9lO line 1␤␤»
moritz m: my %a; my @b = (1; 2; 3;); %a{||@b} = True; say %a.perl
camelia rakudo-moar 775271: OUTPUT«{"1" => Bool::True, "2" => Any, "3" => Any}␤»
awwaiid I heard there is a new mersenne prime. Unfortunately this is taking a while to run: say "YEP!" if (2⁷⁴²⁰⁷²⁸¹-1).is_prime 20:53
buharin masak, yeah but I got Linux notebook but I do a shit and buy iMac now I got nothing
masak, that way I listen my million cousin to make a cash
:]
masak, he said me you use vim emacs you are linux conservator 20:54
buharin only on Xcode only on iMac you can do a big money so I am poor at the moment quite I listen him ;s 20:55
and right now I think thats a shit
Hotkeys hmm 20:56
moritz buharin: you can make money by providing value to others, and charging money for that. iOS isn't the only platform by far that allows that
Hotkeys rakudobrew couldn't install the latest build for some reason
just restarted lets see if that fixes
buharin moritz, I event not earning 1k$ here in poland
cause the companies that come here pay us less than in US or UK etc. 20:57
so I think thats a problem
huf yes. but they go there *because* they can pay less
buharin not that I want to keep open source 20:58
masak buharin: it's partly a matter of familiarity as well. I'm very familiar with the Linux toolset, from bash to vim/Emacs to LaTeX to Perl. this helps me solve problems quickly. other platforms approximate but do not quite reach that level of convenience
SmokeMachine___ moritz: should be {1 => {2 => {3 => Bool::True}}}, right? 20:59
moritz SmokeMachine___: possibly; I'm not very confident in this area
buharin masak, do you think I can turn back my career? 21:00
and start learn Perl on iMac?
SmokeMachine___ design.perl6.org/S09.html#Multidim...nal_arrays
skids A lot of multidim is still yet to be implemented.
masak buharin: sure, why not
buharin: "turn back" sounds too drastic, though
SmokeMachine___ m: my @a = 1, 2, 3; my @b; @b[||@a] = True; @b.perl.say 21:01
camelia rakudo-moar 775271: OUTPUT«[Any, Bool::True, Mu, Mu]␤»
masak buharin: think of it as learning new skills, and finding out which tools you like
SmokeMachine___ same "problem" with array...
buharin masak, I play with many things
SmokeMachine___ m: my @a; @a[1;2;3] = True; @a.perl.say 21:02
masak SmokeMachine___: that last one looks right to me
camelia rakudo-moar 775271: OUTPUT«[Any, [Any, Any, [Any, Any, Any, Bool::True]]]␤»
buharin masak, from web dev in Java to some Go simple website C, C++, iOS even a bit android 21:02
RabidGravy buharin, I learn new things all the time, I've been programing for a living for some twenty five years and have learned maybe twenty languages
SmokeMachine___ masak: the@a[1;2;3] one?
jnthn The || interpolator didn't make it into 6.c
buharin the one thing which I omit it is a game dev
xD
RabidGravy, ya like me 21:03
SmokeMachine___ jnthn: that explains the problem!
buharin RabidGravy, but I don't feel really good in one
masak SmokeMachine___: no, the `my @a = 1, 2, 3; my @b; @b[||@a] = True` one
buharin RabidGravy, even in my work I do multiple things
SmokeMachine___ but using it don't throw a error either...
moritz buharin: maybe you should stop focusing on tools so much, and learn more about the techniques?
SmokeMachine___ masak: I don't think that response was correct... 21:04
buharin moritz, what do you mean?
moritz buharin: algorithms, architecture, design patterns
buharin moritz, I think about it last time
moritz buharin: best practise, the fundamentals of your infrastructure, how the protocols work that you use (TCP, DNS, HTTP, ...)
buharin moritz, what exactly I think it was to learn well techniques with some language which I really love
rindolf thanks for your help , everyone. 21:05
moritz buharin: yes, an environment you love really helps
Hotkeys hmm
SmokeMachine___ jnthn: is there any idea in what version will it be implemented?
RabidGravy and develop a personal pattern book of architectural stereotypes that work will in real world applications
Hotkeys lets see if i can build 2015.12 or if this is a me problem
buharin moritz, as about TCP DNS .. and so on what you mean? 21:06
moritz buharin: if you develop for the web, all those protocols are used; it can help immensely if you know how they work 21:07
buharin what about perl is it only for web?
jnthn SmokeMachine___: That and partially dimensioned views are something I'd hope to get into 6.d
moritz buharin: no
buharin but as I look for job only web was
SmokeMachine___ jnthn: thanks!
hankache good evening #perl6 21:08
Hotkeys jnthn: if you get partially dimensioned views in I will love you forever 21:09
hoelzro Hotkeys: did Linenoise end up working for you?
Hotkeys hoelzro: I'm currently having trouble just installing p6
hoelzro =/
Hotkeys so i'm diagnosing that now 21:10
I'm going home soon so I'll see if it's a machine issue or a windows issue
(I'll try building on my desktop)
hoelzro ok 21:10
Hotkeys but I'm currently building 2015.12
to see if it's a recent issue
or just a me issue
Hotkeys if it's a recent issue that isn't on my end then I get to do the fun thing where I try every build in between systematically to find where the problem is 21:13
yep
Hotkeys 2015.12 worked fine 21:13
Hotkeys gonna head home now though, I'll start the fun in half an hour or so 21:14
hoelzro good luck Hotkeys
cxreg2 did pl6anet recover a backup? 21:16
AlexDaniel Ulti: dunno. But if you don't want those then just use comb? 21:18
m: say ‘,one,two,three,’.split: ‘,’
camelia rakudo-moar 775271: OUTPUT«( one two three )␤»
AlexDaniel m: ‘,one,two,three,’.split(‘,’).perl.say 21:19
camelia rakudo-moar 775271: OUTPUT«("", "one", "two", "three", "")␤»
AlexDaniel Ulti: it kinda just makes sense. You have an empty string before your string and after it, so therefore you get these elements. Just like in this case ↑
oh nice, completely numeric commit hash 21:21
leont S05 mentions a «<it($threshold)>» regex syntax, but doesn't explain how/if you can define rules that take arguments. Anyone have pointers? 21:34
SmokeMachine___ how can I declare a variable of type Pair where the key will be a Array of Str and the Value will be a Str? 21:36
hoelzro leont: Perl6::Grammar does it quite a bit 21:39
rule it($threshold) { ... } should do the trick
ely-se SmokeMachine___: I think you have to make a subset of Pair.
Pair isn't a parameterised role
SmokeMachine___ ely-se: :( 21:41
ely-se m: subset StrsToStr of Pair where { .key ~~ Array && .value ~~ Str }; my StrsToStr $p = ["a", "b"] => "c"; 21:42
camelia ( no output )
ely-se don't know how to do they "array *of strings*" part
b2gills SmokeMachine___: you mean 「my Pair $v where :( Array :key($), Str :value($) );」
ely-se so many sad smileys 21:42
timotimo you have to either force the user to declare the array as Array[Str] or you have to match all(.key.list) ~~ Str 21:43
SmokeMachine___ b2gills: does that do the trick?! 21:44
b2gills m: my Pair $v where :( Array[Str] :key($), Str :value($) ) = Array[Str]( [''] ) => ''; say $v
camelia rakudo-moar 775271: OUTPUT«[] => ␤»
SmokeMachine___ m: my Pair $v where :( Array[Str] :key($), Str :value($) ) = [<bla bye bli>] => 'test'; say $v 21:45
camelia rakudo-moar 775271: OUTPUT«Type check failed in assignment to $v; expected <anon> but got Pair␤ in block <unit> at /tmp/OGwOqmqIaX line 1␤␤» 21:45
SmokeMachine___ m: my Pair $v where :( Array[Str] :key($), Str :value($) ) = Array[Str]([<bla bye bli>]) => 'test'; say $v 21:46
b2gills SmokeMachine___: you have to coerce in that case, or accept any Array
camelia rakudo-moar 775271: OUTPUT«[bla bye bli] => test␤»
SmokeMachine___ b2gills: that looks great! thanks!
b2gills SmokeMachine___: I don't know if the Signature :(…) version is more or less performant than 「my Pair $v where .key ~~ Array[Str] and .value ~~ Str;」 21:49
SmokeMachine___ b2gills: thanks! 21:52
leont How can I store a method in a variable?
SmokeMachine___ m: my Pair $v where :( Array[Str(Any)] :key($), Str :value($) ) = [<bla bye bli>] => 'test'; say $v 21:53
camelia rakudo-moar 775271: OUTPUT«Type check failed in assignment to $v; expected <anon> but got Pair␤ in block <unit> at /tmp/vciYX2DpTs line 1␤␤»
SmokeMachine___ m: my Pair $v where :( Array[Any(Str)] :key($), Str :value($) ) = [<bla bye bli>] => 'test'; say $v 21:54
camelia rakudo-moar 775271: OUTPUT«Type check failed in assignment to $v; expected <anon> but got Pair␤ in block <unit> at /tmp/wIm9JZMDU_ line 1␤␤»
SmokeMachine___ m: sub f(Str(Any) $a){$a.WHAT.say} f("bla") 21:56
camelia rakudo-moar 775271: OUTPUT«5===SORRY!5=== Error while compiling /tmp/dVba70qZJM␤Strange text after block (missing semicolon or comma?)␤at /tmp/dVba70qZJM:1␤------> 3sub f(Str(Any) $a){$a.WHAT.say}7⏏5 f("bla")␤ expecting any of:␤ infix␤ infix st…»
SmokeMachine___ m: sub f(Str(Any) $a){$a.WHAT.say}; f("bla")
camelia rakudo-moar 775271: OUTPUT«(Str)␤»
SmokeMachine___ m: sub f(Str(Any) $a){$a.WHAT.say}; Any $b = "test"; f($b) 21:56
camelia rakudo-moar 775271: OUTPUT«5===SORRY!5=== Error while compiling /tmp/pWP0CMmM9F␤Two terms in a row␤at /tmp/pWP0CMmM9F:1␤------> 3sub f(Str(Any) $a){$a.WHAT.say}; Any7⏏5 $b = "test"; f($b)␤ expecting any of:␤ infix␤ infix stopper␤ state…»
SmokeMachine___ m: sub f(Str(Any) $a){$a.WHAT.say}; my Any $b = "test"; f($b)
camelia rakudo-moar 775271: OUTPUT«(Str)␤»
Ulti AlexDaniel by that logic though you would expect 'ab'.split('') to have an empty string delimited by empty strings in the middle of a and b but there isn't 22:01
AlexDaniel m: say ‘a,,,b’.split(‘,’).perl.say 22:02
camelia rakudo-moar 775271: OUTPUT«("a", "", "", "b")␤True␤»
AlexDaniel Ulti: correct, but then it would be an infinite amount of empty strings… 22:02
Ulti exactly
thats why I dont like it
'' is a special case
its like the empty set 22:03
AlexDaniel Ulti: you don't like that it doesn't hang? But honestly I also fail to see why would anybody want to use ‘’ as a delimiter
Ulti also its a strange thing to "fix" from Perl 5 expectations of split 22:04
AlexDaniel because split is infinitely more memorable and obvious a method than comb
b2gills moritz: I figured out what the problem was with the permutations PR, and fixed it. 22:04
Ulti frakly split with no arguments should imply the same as comb with no arguments :S 22:05
at least thats what I expect even if its not what I get
[Coke] Do you still have that expectation after reading the docs?
b2gills m: say 'abab'.split('a').perl; # Ulti: this is why
camelia rakudo-moar 775271: OUTPUT«("", "b", "b")␤»
Ulti split join is unaffected by split with extra empty strings but split with zip ends up being super unexpected 22:06
b2gills Ulti: if you don't want the empty strings use .comb()
Ulti b2gills: I still dont see how that really explains why
buharin what book should I use for perl6?
[Coke] buharin: there is no book yet. 22:07
AlexDaniel buharin: doc.perl6.org… not a book but yeah
buharin so can I use perl5 book
for perl6?
[Coke] nope.
AlexDaniel buharin: partially
[Coke] 6 ain't 5.
buharin oh okay ;s 22:07
Ulti m: say 'ababa'.split('a').perl; #why no terminating ''?
camelia rakudo-moar 775271: OUTPUT«("", "b", "b", "")␤»
[Coke] AlexDaniel: I think using the 5 book to learn 6 would be a very bad idea.
Ulti whoa
b2gills Ulti: .split('') could very well produce an infinite list of empty strings and not be incorrect
Ulti thats different from P5 22:08
also
AlexDaniel buharin: by “partially” I mean that perl5 knowledge definitely helps when learning Perl 6, but other than that not so much
[Coke] Ulti: welcome to 6?
Ulti sure but I dont see the actual /use case/ for this in 6
[Coke] AlexDaniel: I think Ulti would disagree that knowing how 5 works helps at this point. :)
Ulti not everything in 5 was broken
[Coke] Ulti: that's the spec.
Ulti sure but I'm asking why so I can see the light
AlexDaniel .u light 22:09
yoleaux U+0FC1 TIBETAN CANTILLATION SIGN LIGHT BEAT [So] (࿁)
U+23BE DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT [So] (⎾)
U+23BF DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT [So] (⎿)
AlexDaniel .u bulb 22:09
yoleaux U+1F4A1 ELECTRIC LIGHT BULB [So] (💡)
b2gills Perl 6 doesn't throw things away like Perl 5 did
[Coke] If you really wanted, you could dig into the github specification and spectest repo and see what the history associated with that change was. 22:09
AlexDaniel I think that I remember some boring discussion about it…
[Coke] but we're talking about 15 years of design and development here.
AlexDaniel m: split ‘,’, ‘hello,world’, ‘foo,bar’ 22:10
camelia rakudo-moar 775271: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5foo,bar' (indicated by ⏏)␤ in block <unit> at /tmp/S_09P2XQuL line 1␤␤Actually thrown at:␤ in block <unit> at /tmp/S_09P2XQuL line 1␤␤»
Ulti ok I have it >:P how about split(*) does Whatever I want :P 22:11
AlexDaniel m: split ‘’, *
camelia rakudo-moar 775271: OUTPUT«5===SORRY!5=== Error while compiling /tmp/BnfdKpQ237␤Calling split(Str, Whatever) will never work with declared signature ($pat, Cool $target, |c is raw)␤at /tmp/BnfdKpQ237:1␤------> 3<BOL>7⏏5split ‘’, *␤»
Ulti yeah its wide open for it
[Coke] m: say 'ababa'.split('a', :skip-empty).perl;
Ulti :D
camelia rakudo-moar 775271: OUTPUT«("b", "b")␤»
[Coke] So maybe if you don't like the default, use that. 22:11
AlexDaniel m: say 'ababa'.split('', :skip-empty).perl;
camelia rakudo-moar 775271: OUTPUT«("a", "b", "a", "b", "a")␤»
Ulti [Coke] but thats so much extra typing for what is quite clearly the most common use case
:keep-empty
[Coke] Ulti: there is no way this is changing for 6.c 22:12
AlexDaniel m: say ''.split('', :skip-empty).perl; 22:12
camelia rakudo-moar 775271: OUTPUT«()␤»
AlexDaniel [Coke]: there is a way to change that in 6.d 22:12
AlexDaniel but honestly, I don't see any problem with it… 22:12
[Coke] If you want to argue for a change in 6.d, that's something. Otherwise I don't know what we can tell you unless whoever made the decision happens to see this in backscroll.
Ulti well I've been using P6 for... 6 years and I just managed to actually use split wrong for the first time just because join swallows the '' just fine so you never notice and can cargo cult from P5 knowledge
[Coke] AlexDaniel: sure, in the next spec version, it's changeable.
Ulti but something like Z=> to make a hash kills you 22:13
I guess what I'd actually argue for is no args split just splits into a list of the characters that exist in the string based on grapheme cluster o___O specifically 22:14
[Coke] Ulti: that's .comb 22:15
Ulti whatever star also kind of makes sense it would do the same
[Coke]: sure
but I want to use the word split
because wtf
[Coke] m: say "abcde".split(*).perl;
camelia rakudo-moar 775271: OUTPUT«Cannot call split(Str: Whatever); none of these signatures match:␤ (Cool $: Regex:D $pat, $limit = { ... };; :$all, *%_)␤ (Cool $: Cool:D $pat, $limit = { ... };; :$all, *%_)␤ (Str:D $: Regex:D $pat, $parts = { ... };; :$v is copy, :$k, :$kv…»
[Coke] Ulti: I'm sorry this doesn't make you happy. 22:16
RabidGravy I don't think I've used split // more than twice in Perl in twenty years
Ulti lol
[Coke] but like I said, there's no way it can change without a new spec release. 22:16
m: use Inline::Perl5;
camelia rakudo-moar 775271: OUTPUT«===SORRY!===␤Could not find Inline::Perl5 in:␤ /home/camelia/.perl6/2015.12-214-g775271d␤ /home/camelia/rakudo-m-inst-1/share/perl6/site␤ /home/camelia/rakudo-m-inst-1/share/perl6/vendor␤ /home/camelia/rakudo-m-inst-1/share/perl6␤ …»
[Coke] star: use Inline::Perl5;'
camelia star-m 2015.09: OUTPUT«===SORRY!===␤Could not find Inline::Perl5 in any of:␤ file#/home/camelia/.perl6/2015.09/lib␤ inst#/home/camelia/.perl6/2015.09␤ file#/home/camelia/star-2015.09/share/perl6/lib␤ file#/home/camelia/star-2015.09/share/perl6/vendor/lib␤ file#/home…»
AlexDaniel m: say ‘hello’.split(/‘’/).perl 22:17
[Coke] ah well.
camelia rakudo-moar 775271: OUTPUT«("", "h", "e", "l", "l", "o", "")␤»
[Coke] heading out. later, everyone.
Ulti have fun
Ulti RabidGravy in bioinformatics I split strings into characters more than I do any other operation, more than addition 22:18
b2gills m: say ‘hello’.comb(/./).perl
camelia rakudo-moar 775271: OUTPUT«("h", "e", "l", "l", "o").Seq␤» 22:18
mspo substr-as-a-loop is probably faster than split anyway 22:18
AlexDaniel Ulti: then why not use comb!
or why not define your own sub
or even your own operator
RabidGravy Ulti, I'm not saying there is no use for it, just the kind of things I do I've never found a need for it :) 22:19
b2gills .comb is going to be faster than .split('') anyway
mspo your own operator sounds most fun
zhmylove Hi all! I'm just compiled 2015.12 rakudo, and it takes 0m2.074s against perl5 0m0.013s to execute a file with 1000 lines ``print "JAPH\n";'' Am I doing smth wrong? 22:20
b2gills zhmylove: run it twice
zhmylove b2gills: ? kind of joke?
Ulti .comb for me always brings up the thoughts combine combinatorial etc. when programming not "its like a hair comb" 22:21
mspo zhmylove: it cached bytecode into ~/.perl6, is why he's saying that
zhmylove: but it's way slower
zhmylove mspo: how would I run it twice?
mspo: perl6 /tmp/file.p6 && perl6 /tmp/file.p6 ?
mspo zhmylove: just run it again exactly like you did 22:21
zhmylove: if you were getting the compile-to-bytecode part it would be slower 22:22
AlexDaniel mspo: it sounds slow actually
AlexDaniel mspo: but yes, fun too 22:22
Ulti b2gills why is exactly why I would argue for split(*) and split() to literally call .comb
mspo AlexDaniel: the operator or substr?
masak 'night, #perl6
AlexDaniel mspo: split operator
mspo AlexDaniel: why? are operators slow like grammars?
AlexDaniel mspo: no, they just add up to the startup time 22:23
mspo perl6: the fast parts -- going to be published :)
AlexDaniel mspo: significantly
camelia rakudo-jvm 6c0f93, rakudo-moar 775271: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Preceding context expects a term, but found infix : instead␤at /tmp/tmpfile:1␤------> 3he fast parts -- going to be published :7⏏5)␤»
AlexDaniel haha
zhmylove mspo: 2,07 real, 2,07 real, 2,07 real
mspo zhmylove: so then it's right
zhmylove mspo: 2 seconds to parse+compile+execute just 1000 of prints ??? 22:24
mspo I can try it on my machien if you like
it's very slow
AlexDaniel yeah, my machine is not that fast too. I'd be happy to try it
zhmylove mspo: Yes, please try it, if it's not a problem for you
RabidGravy m: role Splitty { multi method split(Whatever) { self.comb(/./) }}; my $a = "abcdefgh" but Splitty; say $a.split(*); 22:26
camelia rakudo-moar 775271: OUTPUT«(a b c d e f g h)␤»
AlexDaniel Interestingly, it actually takes goddamn two seconds!!? 22:27
mspo or me
zhmylove: 3.4s for me
I'm usig a tiny vm :)
b2gills RabidGravy: .comb() is a different method than .comb(/./), and likely slower
AlexDaniel 「say」 is a little bit faster but not much 22:28
pmqs_ Is it possible to match against a low-level type (int8, int32 etc)? Here is what I've tried
ZoffixWin_ zhmylove, 2.39s on my 1-core Linode box. Seems about right. There are a bit of points to clarify in your comparison against Perl 5: (a) Perl 5 had over a decade to optimize itself (especially with the recent drastic improvements in the .20+ versions), while Perl 6 is a brand new language whose stable version is not even a month old.. But more importantly, it's not *just* 1000 prints. You're getting the type system and all the built ins. Barebones
Perl 5 doesn't include that. Try importing Moose along with several List, String, and Math modules.
pmqs_ m: my int8 $a; do given $a { when int8 {"int8"}; when Int {"int"}; default {"default"} }
camelia ( no output )
mspo weirdly printing just one line only takes .5s
Skarsnik I am worried there is no new issue on DBIish since x-mas x) 22:28
AlexDaniel and 10_000 prints takes 16.5 seconds! Almost linearly! 22:29
Skarsnik: sure, because I haven't submitted anything yet :D
pmqs_ m: my int8 $a; say do given $a { when int8 {"int8"}; when Int {"int"}; default {"default"} }
camelia rakudo-moar 775271: OUTPUT«int␤»
ZoffixWin_ m: print "JAPH" for 10_000; say now - INIT now;
camelia rakudo-moar 775271: OUTPUT«JAPH0.0021305␤»
Skarsnik hm
b2gills pmqs_: You can't use a native type in a when statement or the right side of ~~
AlexDaniel ZoffixWin_: no it is actually slow and it actually depends on the source code 22:30
ZoffixWin_: that's a real issue
RabidGravy Skarsnik, I've seen few issues on anything really
ZoffixWin_ AlexDaniel, hence my first point :)
Skarsnik RabidGravy, for me it mean a shortage of users x)
ZoffixWin_ AlexDaniel, well, actually what do you mean "actually slow"?
mspo --optimize=3 brings mine down a few 1/10th of a second 22:31
Skarsnik for output you have to take into account the term speed
mspo Skarsnik: I'm > /dev/null
Skarsnik oh oki
b2gills m: multi t (int8) {8}; multi t (Int) {Inf}; say t my int8 $ # pmqs_
camelia rakudo-moar 775271: OUTPUT«8␤»
pmqs_ b2gills, is there a way to get the string representation for the type? I'm looking for a way to lookup an action for a set of types
Skarsnik it's because int8 does not have Accept? 22:32
mspo I'm surpised that it isn't all startup time
AlexDaniel ZoffixWin_: 16 seconds for 10_000 prints is slow, there's no need for a debate about that…
mspo it's actually the execution of "print" is slow
Skarsnik m: say int8.^name
camelia rakudo-moar 775271: OUTPUT«int8␤»
zhmylove Guys, thank for your investigation. Errgh :(, going to wait some decades before migration of the production to p6...
b2gills pmqs_: int8 is not really a Type the way that Int is
mspo zhmylove: no one will tell you moar is fast right now
zhmylove: check out the memory usage for that script too :) 22:33
AlexDaniel zhmylove: honestly, it looks like there is some problem with that specific case. I have done a bunch of rather complex stuff and it worked just fine
pmqs_ b2gills, that sounds a bit crazy. 22:33
mspo 'say' is even slower! 22:34
b2gills zhmylove: If the rate of optimizations it has currently undergone it will surpass Perl 5 in less than 5 years ( not that I expect that necessarily )
AlexDaniel zhmylove: but sure, if you need rather good performance then perl 6 is probably not the best choice right now, if only you don't plan to rewrite some stuff in C to get amazing performance :)
zhmylove Hmmm, is there anything like perlcc for p6? :)
Skarsnik not yet? 22:35
b2gills pmqs_: The only reason int8 and friends exist is so that very bare metal optimizations are possible
ZoffixWin_ AlexDaniel, errr, right, I missed the 16 seconds bit... FWIW, I'm still waiting for it to finish on my box :o
Oh, wait, I messed up...
RabidGravy It's say that is slow
mspo for what it's worth using a loop () { print } is much faster
AlexDaniel mspo: of course, but that's not the point 22:36
b2gills zhmylove: I've heard on the channel a while back that someone uses Perl 6 for testing C code
AlexDaniel b2gills: it was me, I do, yes
pmqs_ b2gills, as a relative newcomer to perl6, that sounds arbitrary.
RabidGravy m: my $a; $a++ for ^250000; say now - INIT now # approximately the same as 1000 says
camelia rakudo-moar 775271: OUTPUT«0.1437352␤»
ZoffixWin_ 0.207s for Perl 5 and 18.175s for Perl 6 on my Linode box.. :o
DrForr grouses at RT.
pmqs_ m: my int8 $a; say do given $a.^name { when 'int8' {"int8"}; when "Int" {"Int"} }
camelia rakudo-moar 775271: OUTPUT«Int␤»
b2gills m: say Int ~~ Any; # pmqs_:
camelia rakudo-moar 775271: OUTPUT«True␤»
mspo it must be looking up "print" each time 22:37
Skarsnik err that weird
ZoffixWin_ m: say 18.175/0.207
camelia rakudo-moar 775271: OUTPUT«87.801932␤»
ZoffixWin_ yikes
Skarsnik m: say int8.WHAT
camelia rakudo-moar 775271: OUTPUT«(int8)␤»
AlexDaniel what's the right [TAG] for RTs about optimization?
zhmylove Some texts recommends using Rakudo-JVM. But it's java unlikely
Skarsnik pmqs_, there is something wrong here
AlexDaniel e.g. we have [LTA] and [BUG] and stuff like that, I kinda expect to see bug reports about rakudo being too slow with a similar tag 22:38
b2gills Rakudo-JVM is not up-to date
Skarsnik m: my int8 $a; say $a.WHAT
camelia rakudo-moar 775271: OUTPUT«(Int)␤»
AlexDaniel or should I just come up with something?
Skarsnik m: my int8 $a; say $a.^name;
camelia rakudo-moar 775271: OUTPUT«Int␤»
Skarsnik m: my int8 $a = 8; say $a.^name;
camelia rakudo-moar 775271: OUTPUT«Int␤»
AlexDaniel [SLOW] ?
Skarsnik That so wrong 22:39
pmqs_ Skarsnik, assume WHAT should give int8 ?
Skarsnik yes
AlexDaniel Skarsnik: I think that there was a bug report for that. Try searching for it :)
Skarsnik m: my int18 $a = 8; say $a.^name;
camelia rakudo-moar 775271: OUTPUT«5===SORRY!5===␤Type 'int18' is not declared. Did you mean any of these?␤ int16␤ int8␤␤at /tmp/LvlnxVo0dS:1␤------> 3my int187⏏5 $a = 8; say $a.^name;␤Malformed my␤at /tmp/LvlnxVo0dS:1␤------> 3my7⏏5 int18 $a = 8; say …»
b2gills pmqs_: there is no way that WHAT **can** give int8 (since there is no type object of type int8)
Skarsnik m: my int16 $a = 8; say $a.^name; 22:40
camelia rakudo-moar 775271: OUTPUT«Int␤»
AlexDaniel m: say int8
camelia rakudo-moar 775271: OUTPUT«(int8)␤»
ZoffixWin_ It's all in compilation too.
17 seconds before it told me I got a syntax error
AlexDaniel b2gills: okay but what's that? ↑
Skarsnik m: my int16 $a = 8; say $a.REPR;
camelia rakudo-moar 775271: OUTPUT«P6opaque␤»
Skarsnik this is wrong too
pmqs_ AlexDaniel, will take a look & see if there's a ticket
Skarsnik m: my int16 $a = 8; say int16.REPR; say $a.REPR; 22:41
camelia rakudo-moar 775271: OUTPUT«P6int␤P6opaque␤»
AlexDaniel zhmylove: thanks for reporting this issue. I'll submit a ticket
Skarsnik m: my int $a = 8; say int16.REPR; say $a.REPR;
camelia rakudo-moar 775271: OUTPUT«P6int␤P6opaque␤»
AlexDaniel zhmylove: there is a high chance that by fixing this issue we will see general p6 speedup… hmm :)
Skarsnik I hope it stopped giving me random bug when I work on gptrixie xD 22:42
ZoffixWin_ AlexDaniel, if you want to include this in the ticket: it takes 17s to run 10,000 prints on my box, but if I move them into a module and a sub and precompile the module, then I get 1.2s run. This is all compared to 0.2s run with Perl 5 on the same box 22:43
zhmylove AlexDaniel: thank you very much!
pmqs_ b2gills, what *should* be the way to get "uint8" if WHAT is the way? 22:44
zhmylove ZoffixWin_: how do you precompile? Just make a first run?
ZoffixWin_ zhmylove, yeah. It's done automagically for modules.
Skarsnik m: my int16 $a = 8; say $a.VAR.WHAT;
camelia rakudo-moar 775271: OUTPUT«(IntLexRef)␤»
RabidGravy that's me done for the day 22:45
AlexDaniel ZoffixWin_: thanks, great info
Skarsnik m: class A { has int16 $.a is rw; }; say A.^attributes[0].type;
camelia rakudo-moar 775271: OUTPUT«(int16)␤»
pmqs_ Skarsnik, ohhh 22:46
that looks promising
Skarsnik m: class A { has int16 $.a is rw; method foo() { say $.a.WHAT}}; A.new.foo;
camelia rakudo-moar 775271: OUTPUT«(Int)␤»
Skarsnik duh 22:47
m: class A { has int16 $.a is rw; method foo() { say $!a.^name}}; A.new.foo;
camelia rakudo-moar 775271: OUTPUT«Int␤»
pmqs_ Skarsnik, that's one I tried earlier. My usecase is in a class 22:49
Skarsnik m: class A { has int16 $.a is rw; method foo() { say $!a.^type}}; A.new.foo; 22:52
camelia rakudo-moar 775271: OUTPUT«Method 'type' not found for invocant of class 'Perl6::Metamodel::ClassHOW'␤ in method foo at /tmp/wv20F9Sh1P line 1␤ in block <unit> at /tmp/wv20F9Sh1P line 1␤␤»
jdv79 .tell ugexe its back up. maybe its time to run it better. 22:53
yoleaux jdv79: I'll pass your message to ugexe.
sortiz o/ #perl6 23:00
pmqs_ Skarsnik, found the definition for uint8, etc in natives.pm
my native uint8 is repr('P6int') is Int is nativesize( 8) is unsigned { }
Skarsnik Oh right there are all is Int? 23:01
pmqs_ yep
Skarsnik still it's weird they get the Int type
Skarsnik I mean not their own type 23:02
pmqs_ yep - if this is defined behaviour it will cause confusion
Skarsnik m: class A is Int{}; my A $a .= new; say $a.^name;
camelia rakudo-moar 775271: OUTPUT«5===SORRY!5=== Error while compiling /tmp/HUH2qkRz6C␤Cannot call trait_mod:<is>(A, Int, Hash); none of these signatures match:␤ (Mu:U $child, Mu:U $parent)␤ (Mu:U $child, :$DEPRECATED!)␤ (Mu:U $type, :$rw!)␤ (Mu:U $type, :$natives…»
Skarsnik m: class A is Int {}; my A $a .= new; say $a.^name; 23:03
camelia rakudo-moar 775271: OUTPUT«A␤»
pmqs_ Skarsnik, going to call it a night. Will dig more into this tomorrow. Thanks! 23:06
Skarsnik I am curious now x) 23:06
m: use NativeCall; my bool $a; say $a.WHAT;
camelia rakudo-moar 775271: OUTPUT«(Int)␤»
sortiz pmqs_, All "native" types uses a different representation than normal types 23:20
m: say .WHAT, .REPR for int8, int, Int, str, Str
camelia rakudo-moar 775271: OUTPUT«(int8)P6int␤(int)P6int␤(Int)P6opaque␤(str)P6str␤(Str)P6opaque␤»
Skarsnik yes but it get lost when doing my type $a: 23:21
m: my int8 $a = 8; say $a.REPR; # should be p6int 23:22
camelia rakudo-moar 775271: OUTPUT«P6opaque␤»
sortiz Ah, I'm late in the discussion 23:25
sortiz m: use NativeCall; my int $a = 1; my Int $b = 1; say .VAR.WHAT for $a, $b # the container is different! 23:42
camelia rakudo-moar 775271: OUTPUT«(IntLexRef)␤(Scalar)␤»
AlexDaniel zhmylove: rt.perl.org/Public/Bug/Display.html?id=127330 23:43
Skarsnik Good night #perl6 23:47
Tomorow I try some c++ in gptrixie if I don't get another weird bug xD