»ö« 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.
ZoffixLappy m: class Foo { my $rovers = set <curiosity opportunity spirit>; my subset RoverName of Str where * ∈ $rovers; has RoverName $.r; }; Foo.new: r => 'curiosity' 00:10
camelia rakudo-moar 617bb4: OUTPUT«Type check failed in assignment to $!r; expected Foo::RoverName but got Str ("curiosity")␤ in block <unit> at /tmp/92u4P22RLy line 1␤␤» 00:11
ZoffixLappy Why does this fail?
WhateverCode doesn't close over $rovers I guess 00:12
Hm, and even if I use a { $_ ∈ $rovers } with my Subset::Helpers sub that takes it as &code, it tells me $rovers is an Any :/ 00:14
00:14 sue joined
psch m: class Foo { constant $rovers = set <curiosity opportunity spirit>; subset RoverName of Str where * ∈ |$rovers; has RoverName $.r; }; Foo.new: r => 'curiosity' 00:14
camelia ( no output )
psch ZoffixLappy: subsets are compile time
ZoffixLappy: which means, during "subset RoverName ..." the name is known, but it doesn't have a value yet 00:15
where "the name" is $rovers 00:16
m: class Foo { my $rovers; BEGIN { $rovers = set <curiosity opportunity spirit> }; subset RoverName of Str where * ∈ |$rovers; has RoverName $.r; }; Foo.new: r => 'curiosity' # alternatively 00:17
camelia ( no output )
ZoffixLappy psch, thanks. Now I understand. 00:18
psch also please note that there's an extraneous | in my examples... :)
ZoffixLappy psch++
Noted :)
00:24 rindolf left
psch heh 00:26
psch has a plan
it's terrible
but: i have confirmed that 2015.11 doesn't have the NC bug on r-j 00:27
v6.c does
00:27 skids1 left, johndau joined
psch i also know that cffa68807e6390d195f6d0f373c8c79b15fb9a61 has the fix for an unrelated build error for r-j 00:27
so i plan to rebase that fix back to before 2015.11 and bisect then 00:28
it'll probably go up in smoke in a lot of ways
ZoffixLappy \o/
00:29 Herby_ joined 00:30 johndau left
psch yeah, obviously it doesn't work 00:31
00:31 johndau joined
psch i'll first have to find the earliest place i can appliy cffa688 00:31
or, maybe the latest
00:32 johndau left
psch stashes that for later, mentally 00:32
like, after sleeping, which sounds like a good idea about now... o/
Herby_ m: my $string = 'bobo'; say $string.comb(/<[aeiou]>/).elems;
camelia rakudo-moar 617bb4: OUTPUT«2␤»
00:33 johndau joined
Herby_ m: my $string = 'vowels'; say $string.comb(/<[aeiou]>/).elems; 00:33
camelia rakudo-moar 617bb4: OUTPUT«2␤»
Herby_ m: my $string = 'mississippi'; say $string.comb(/<[aeiou]>/).elems;
camelia rakudo-moar 617bb4: OUTPUT«4␤»
Herby_ m: my $string = 'mississippi'; say $string.comb(/\w/).elems; 00:34
camelia rakudo-moar 617bb4: OUTPUT«11␤»
00:36 teatime joined 00:41 clkao left 00:43 pierrot left
dalek href="https://modules.perl6.org:">modules.perl6.org: 48b16bf | (Tom Browder)++ | templates/root/index.html.ep:
add a blurb on the Test module
00:43
href="https://modules.perl6.org:">modules.perl6.org: e8f4fee | (Zoffix Znet)++ | templates/root/index.html.ep:
Merge pull request #56 from tbrowder/master

add a blurb on the Test module
00:43 Spot__ left
ZoffixLappy OTOH, that commit probably should link to /testing in docs instead of the source and include NativeCall too 00:45
timotimo Xliff: oh, i think you might have to pass a CPointer to array of array of num to make things work
because you said the C library allocates it for you, right?
ZoffixLappy gs 00:54
Herby_ m: "count the words".comb(/ /).elems.say;
camelia rakudo-moar 617bb4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/dT_Zo4r9Mp␤Null regex not allowed␤at /tmp/dT_Zo4r9Mp:1␤------> 3"count the words".comb(/ /7⏏5).elems.say;␤»
ZoffixLappy oops, sorry.
Herby_, whitespace is insignificant. Also, there's .words method 00:55
Herby_ m: "count the words".comb(/\s/).elems.say
camelia rakudo-moar 617bb4: OUTPUT«2␤»
Herby_ words method you say?
ZoffixLappy Yup :)
00:55 sue left
ZoffixLappy camelia also responds to /msg, if you wish to play with her in private. 00:55
.oO( that sounded awfully dirty )
Herby_ okie dokie, i'll give that a shot. thanks 00:56
00:56 torbjorn left, pochi left, torbjorn joined 00:57 perlawhirl joined
perlawhirl Herby_: "count the words".words.elems or coece to numerical with prefix:<+>, ie +"count the words".words 00:59
timotimo i wonder why we don't have precircumfix operator category :P
00:59 pochi joined
Herby_ perlawhirl: thanks. the use of prefixes like that is still kind of foreign to me 01:00
01:01 Spot__ joined
perlawhirl Herby_: personally I perfer .elems anyway, because it's more explicit 01:01
01:03 leont left
Xliff timotimo, Yeah. The lib allocates for me. 01:06
I will try that. Cheers.
01:07 vendethiel joined
Xliff timotimo, so how do I pre-allocate the pointer? 01:07
Or should I just pass a scalar?
skink Pointer[CArray[CArray[num32]]] 01:08
That's just silly :D
timotimo actually, you can just pass it an int64 :P 01:09
but other than that, i'd build a CArray to receive it, give it a single slot to put stuff into
actually ... maybe "is rw" will do the extra pointer for you
Xliff Hmmm... 01:10
Worth a try.
Pointer[CArray[CArray[num32]]] segfaulted.
01:12 Herby_ left
Xliff Now getting "CArray of CArray passed non-CArray object" 01:12
m: say (0.0).WHAT 01:15
camelia rakudo-moar 617bb4: OUTPUT«(Rat)␤»
timotimo cell, you can't create a Pointer out of thin air 01:16
you need the storage for that, so that's why i told you to build it with a CArray with a single slot
Xliff m: my Num $b = 0.0; say $b.WHAT
camelia rakudo-moar 617bb4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Stsqbz9pIv␤Cannot assign a literal of type Rat (0e0) to a variable of type Num. You can declare the variable to be of type Real, or try to coerce the value with 0e0.Num or Num(0e0), or just write the value as…»
01:16 geekosaur left, vendethiel left, geekosaur joined
Xliff OK. Now $appp[^5] is defined. But the values are 0. 01:19
Progress!! ^_^
01:19 molaf_ joined 01:20 molaf left
Xliff Well, DUH! That's what "CArray[num32].new(Num(0.0));" does. 01:21
Still, it looks like no matter how $appp is created, if it is passed to the C-lib, the data that should be in $appp.... isn't. 01:23
01:25 Sgeo_ joined 01:29 Sgeo left 01:40 kid51 joined 01:41 clkao joined 01:43 Actualeyes joined 01:44 Herby_ joined
timotimo if you want to write a num, you just need an "e" in there 01:45
Xliff Single dimensional array passed as parameter to C lib not returning values.
timotimo m: say 1e0.WHAT
camelia rakudo-moar 617bb4: OUTPUT«(Num)␤»
Xliff k
timotimo can you paste your code along with the library i'd need? 01:46
Xliff Yeah. I'm gonna gist this, tonight.
I'll get yoleaux to pass on the link. I'm kinda blurry eyed, now.
teatime m: 0e0.WHAT
camelia ( no output )
Xliff Been looking at aspects of this thing all weekend. 01:47
teatime m: say 0e0.WHAT
camelia rakudo-moar 617bb4: OUTPUT«(Num)␤»
timotimo oh my :S
sorry to hear it 01:48
i need to go to bed really soon, too
Xliff Yeah. C code, here. 01:50
gist.github.com/Xliff/11acc06d8e4c...5bbfe47329
timotimo will the p6 part go into the same gist as a second file?
Xliff Updated with P6 part. Same link. 01:54
No. I usually do everything in one .md file for the highlighting.
ZoffixLappy Any idea why this code results in -> ;; $_? is raw, (code blocks?) pushed into my <photos> array? gist.github.com/zoffixznet/759afef...bed14ffde0
m: my @a; @a.push: { foo => 'bar', ber => 'boor' }; say @a.perl; # this example seems to work fine
camelia rakudo-moar 617bb4: OUTPUT«[{:ber("boor"), :foo("bar")},]␤»
timotimo because you refer to $_ iside it 01:55
inside*
ZoffixLappy :/
How do I fix it?
timotimo give the variable a name
alternatively, you could use $/ and the shortcut syntax that goes with that 01:56
m: my @res; for ^5 { @res.push: { a => $_, b => $_ + 2 }; }; say @res
camelia rakudo-moar 617bb4: OUTPUT«[-> ;; $_? is raw { #`(Block|62241488) ... } -> ;; $_? is raw { #`(Block|62241560) ... } -> ;; $_? is raw { #`(Block|62241632) ... } -> ;; $_? is raw { #`(Block|62241704) ... } -> ;; $_? is raw { #`(Block|62241776) ... }]␤»
ZoffixLappy Works. Thanks, timotimo++
timotimo m: my @res; for ^5 -> $foo { @res.push: { a => $foo, b => $foo + 2 }; }; say @res
camelia rakudo-moar 617bb4: OUTPUT«[{a => 0, b => 2} {a => 1, b => 3} {a => 2, b => 4} {a => 3, b => 5} {a => 4, b => 6}]␤»
ZoffixLappy Weirdest wat I've encountered so far.
m: my @res; for ^5 { @res.push: %( a => $_, b => $_ + 2 ); }; say @res 01:57
camelia rakudo-moar 617bb4: OUTPUT«[{a => 0, b => 2} {a => 1, b => 3} {a => 2, b => 4} {a => 3, b => 5} {a => 4, b => 6}]␤»
ZoffixLappy Guess ^ that is also an option
timotimo yes
you can also force interpretation as a hash by prefixing the initial { with a : 01:58
that'll give you an object hash, but that shouldn't be a problem
Xliff timotimo: Other thing I may want to try is to see what happens when I return the allocated pointers, rather than using a rw param.
01:59 Herby_ left
timotimo i didn't know you had the freedom to choose that 02:00
02:00 skids joined
Xliff timotimo, for the use-case, I don't 02:00
It would just be an experiment.
If it works, I'd have to add a lib that would wrap the calls that pass data this way. 02:01
And then point P6 to those routines
Obviously, I don't want to do that. But it's an option.
Of course, I'd then have to bundle that lib. PITA. 02:02
timotimo it shouldn't be needed, we should be able to figure this out 02:03
skink I'm trying to figure out what's going on in the previous gist tbh 02:07
With the char array
timotimo where is that gist? 02:11
02:13 ZoffixLappy left
skink gist.github.com/Xliff/53f4c7e86c2e...89cbf5d87a 02:13
timotimo ah 02:15
"going on"?
02:15 khw left
Xliff Oh. I forgot to update that with sortiz's better implementation of as_blob. 02:17
skink Well a char[282] would just be Buf/CArray[281] = 0 no?
Xliff Done.
timotimo can't just put that into a CStruct, though 02:18
Xliff Can't pass it as a sized-C array since, again, the allocation is performed by libogg.
skink agh
Xliff And yes, inside a C-struct. Embedded.
skink, now you know my pain. 02:19
s/my/some of my/
Attempt at caffeine revival failed. Throwing ResourceExhaustionFatigue exception. 02:20
(Did I write a catch handler for that?!? Hmmmm.....zzzzzz....) 02:21
skink Is there some nicer lib using libogg that you can bind to instead? :) 02:22
dalek href="https://modules.perl6.org:">modules.perl6.org: d2aa124 | (Zoffix Znet)++ | templates/root/index.html.ep:
Make the standard module blurb more useful

Link to docs, not source, and mention NativeCall too.
02:25
Xliff skink: Donno. May look. 02:27
Still. Most of the things I am running into are standard practices for C libs. If NativeCall is going to bind to them, these are issues that will need to be dealt with. 02:28
NativeCall not being able to handle/represent a pre-allocated array is a big issue. 02:29
skink There is VorbisFile, which claims to be a higher-level and more convenient API 02:30
Xliff Thanks. I'll look into that one.
skink In which I do not see any big ol' char arrays
www.xiph.org/vorbis/doc/vorbisfile/
Xliff Look for many *'s in a row.
Coz I've got a working solution for char arrays, even if it is ugly.
Now it's passing arrays via rw params that seem to be an issue. 02:31
Probably mine, but still an issue.
s/Probably/Most likely/
skink Deepest I see is... char **user_comments 02:32
OH GOD NO
float ***pcm_channels
Xliff HAHAHAHA! 02:33
Can't get away from 'em.
teatime heh, there's a whole joke about 'three star programmers'
ZoffixWin I found a bug: 02:35
m: say  40+2
camelia rakudo-moar 617bb4: OUTPUT«42␤»
Xliff May have to try and get jnthn++ to help.
ZoffixWin muffles a snicker
Xliff when he has the time.... <- there's a joke in there. 02:36
teatime ZoffixWin: nice one
02:36 AlexDaniel joined, vendethiel joined
Xliff ZoffixWin, zero width character detected. 02:36
Level up your trolling skills, my son.
AlexDaniel m: sub f(Any:D :$x where * %% 2) {}; f(x => 42)
camelia ( no output )
ZoffixWin Xliff, zero width? 02:37
m: ' '.uniname.say
camelia rakudo-moar 617bb4: OUTPUT«OGHAM SPACE MARK␤»
Xliff It comes up as a box with 0's on my end.
Which means "that character has no visible representation, that I know of.... and it's looking at me funny"
02:37 Herby_ joined 02:38 noganex joined
Xliff ' ' <- MAKE IT STOP! 02:38
AlexDaniel psch: ↑ that's how you can use * if you want
psch: I assume that it is equivalent
psch: but the error message is a bit more precise in this case
m: sub f(Any:D :$x where * %% 2) {}; f(x => Any)
camelia rakudo-moar 617bb4: OUTPUT«Parameter '$x' requires an instance of type Any, but a type object was passed. Did you forget a .new?␤ in sub f at /tmp/zZosqHlcLU line 1␤ in block <unit> at /tmp/zZosqHlcLU line 1␤␤» 02:39
AlexDaniel m: sub f(:$x where .defined && $_ %% 2) {}; f(x => Any)
camelia rakudo-moar 617bb4: OUTPUT«Constraint type check failed for parameter '$x'␤ in sub f at /tmp/uodlt2nboH line 1␤ in block <unit> at /tmp/uodlt2nboH line 1␤␤»
Herby_ I want to create a class called journalEntry. When I create a journalEntry object, I want it to have an attribute of the current date/time
Xliff skink, FWIW VorbisFile may bne the next thing I try and tackle, but as you've seen... the whole "float ***" issue needs to be handled.
Herby_ how do I do that? I'm looking at perl6intro and getting a bit lost
02:39 avenj joined, avenj left, avenj joined 02:40 noganex_ left
Xliff Herby_, class A { has DateTime $.dt; sub new { $.dt = DateTime.now } } 02:40
AlexDaniel m: class Test { has $.x = now; }; say Test.new.x; say Test.new.x
camelia rakudo-moar 617bb4: OUTPUT«Instant:1460947277.894294␤Instant:1460947277.897476␤»
Xliff Or that.
Herby_ great, I'll poke around both those. thanks! 02:41
ZoffixWin Xliff, that char looks like a minus: i.imgur.com/P4XBBWN.png
Xliff AlexDaniel's is better.
ZoffixWin And yeah, I also get box with zeros in HexChat ~_~
Xliff LOL!
Thanks for the screenie.
AlexDaniel .u  
yoleaux U+1680 OGHAM SPACE MARK [Zs] ( ) 02:42
AlexDaniel ZoffixWin: so it's not a bug
teatime ZoffixWin: it worked on me. I just see a minus-hyphen :(
ZoffixWin AlexDaniel, no :)
AlexDaniel ZoffixWin: by the way
.u minus
yoleaux U+002D HYPHEN-MINUS [Pd] (-)
U+00B1 PLUS-MINUS SIGN [Sm] (±)
U+02D7 MODIFIER LETTER MINUS SIGN [Sk] (˗)
skink It's late. I read that as DAMN SPACE MARK
AlexDaniel m: say -42
camelia rakudo-moar 617bb4: OUTPUT«-42␤»
teatime AlexDaniel: there are sooo many dash-like chars it's ridiculous
AlexDaniel no wait
Xliff m: say -42 02:43
camelia rakudo-moar 617bb4: OUTPUT«-42␤»
AlexDaniel I swear that there is a character that is supported
Xliff m: say −42
camelia rakudo-moar 617bb4: OUTPUT«-42␤»
AlexDaniel m: say −42 02:44
camelia rakudo-moar 617bb4: OUTPUT«-42␤»
AlexDaniel .u −
Xliff m: say ±42
camelia rakudo-moar 617bb4: OUTPUT«5===SORRY!5===␤Argument to "say" seems to be malformed␤at /tmp/4Wb8zh6TAO:1␤------> 3say7⏏5 ±42␤Bogus postfix␤at /tmp/4Wb8zh6TAO:1␤------> 3say 7⏏5±42␤ expecting any of:␤ infix␤ infix stopper␤ p…»
yoleaux U+2212 MINUS SIGN [Sm] (−)
AlexDaniel this one ↑
ZoffixWin m: say −42
camelia rakudo-moar 617bb4: OUTPUT«-42␤»
Xliff Just used that one.
ZoffixWin .u plus sign
yoleaux U+002B PLUS SIGN [Sm] (+)
02:44 tardisx left
ZoffixWin .u wide plus sign 02:44
yoleaux No characters found
ZoffixWin Hm
Herby_ AlexDaniel: how do I convert that timestamp to something readable?
AlexDaniel yeah, it's funny. plus sign is ascii, minus sign is no
Herby_ like date/time 02:45
ZoffixWin heh
AlexDaniel not*
Xliff m: say ⁒42
camelia rakudo-moar 617bb4: OUTPUT«5===SORRY!5===␤Argument to "say" seems to be malformed␤at /tmp/KeJtP6vEuz:1␤------> 3say7⏏5 ⁒42␤Bogus postfix␤at /tmp/KeJtP6vEuz:1␤------> 3say 7⏏5⁒42␤ expecting any of:␤ infix␤ infix stopper␤ …»
teatime AlexDaniel: Because ASCII - is overloaded and has lots of different meanings that benefit from disambiguation; + not so much.
ZoffixWin m: say 2+-42 02:46
camelia rakudo-moar 617bb4: OUTPUT«-40␤»
ZoffixWin :o colour me impressed
Xliff Herby_, $.dt.Str
AlexDaniel m: say now.DateTime
camelia rakudo-moar 617bb4: OUTPUT«2016-04-18T02:46:14.255263Z␤»
Xliff Or that
Herby_ m: class Test { has $.x = now; }; say Test.new.x; say Test.new.x.Str
camelia rakudo-moar 617bb4: OUTPUT«Instant:1460947633.070974␤Instant:1460947633.074330␤»
Herby_ thx 02:47
AlexDaniel teatime: sure, I'm not saying that it is wrong. Perfectly made sense back then
ZoffixWin m: class Test { has $.x = now; }; say Test.new.x; say Test.new.x.DateTime
camelia rakudo-moar 617bb4: OUTPUT«Instant:1460947674.995098␤2016-04-18T02:47:18.998232Z␤»
AlexDaniel another interesting observation is that a lot of people are using ’ for apostrophe, which is a bit wrong. 02:48
Xliff Herby_, if you need more options... github.com/supernovus/perl6-datetime-format
AlexDaniel .u '
yoleaux U+0027 APOSTROPHE [Po] (')
AlexDaniel .u ’
yoleaux U+2019 RIGHT SINGLE QUOTATION MARK [Pf] (’)
Herby_ Xliff: I'll give it a read, thanks
Xliff Always one of the first things I install when I rebuild rakudo.
AlexDaniel m: say DateTime.now(formatter => { sprintf "%02d:%02d",.hour,.minute });
camelia rakudo-moar 617bb4: OUTPUT«04:48␤»
AlexDaniel Herby_: perhaps see doc.perl6.org/type/DateTime 02:49
Herby_ will do
teatime AlexDaniel: there are enough semantic errors / weirdness in the names of unicode chars that I don't really consider them authoritative. 02:50
AlexDaniel teatime: what do you consider authoritative then? :)
teatime: like, there has to be something
teatime AlexDaniel: I have read some arguments on that particular question that go both ways though
AlexDaniel teatime: common sense? Popularity?
teatime perhaps. 02:51
AlexDaniel m: say −-−-42 02:52
camelia rakudo-moar 617bb4: OUTPUT«42␤»
02:53 tardisx joined
AlexDaniel m: say ‘−-−-42’.uninames 02:53
camelia rakudo-moar 617bb4: OUTPUT«(MINUS SIGN HYPHEN-MINUS MINUS SIGN HYPHEN-MINUS DIGIT FOUR DIGIT TWO)␤»
AlexDaniel all we need is a hyphen-plus
for completeness… :D
teatime one that troubled me for a while until I just gave in to the sensible thing, is not wanting to use ≅ because I'd rather see the ≈ glyph for approximately equal to
.u ≅
yoleaux U+2245 APPROXIMATELY EQUAL TO [Sm] (≅)
teatime .u ≈ 02:54
yoleaux U+2248 ALMOST EQUAL TO [Sm] (≈)
AlexDaniel teatime: the problem with this one was that ≈ looks a bit too similar to ~~
02:54 tardisx left
teatime hmm? 02:54
I wasn't talking about in the context of Perl6 :0 02:55
er :)
AlexDaniel ahhh
.u ≈
yoleaux U+2248 ALMOST EQUAL TO [Sm] (≈)
teatime can I take from that then, that perl6 recognizes ≅ as an operator?
AlexDaniel teatime: it does
teatime hehe
naturally
AlexDaniel m: 42.399999999999999999999999999e0 ≅ 43.4e0 02:56
camelia ( no output )
AlexDaniel m: say 42.399999999999999999999999999e0 ≅ 43.4e0
camelia rakudo-moar 617bb4: OUTPUT«False␤»
AlexDaniel m: say 42.3999999999999999999999999999999999999999999999e0 ≅ 43.4e0
camelia rakudo-moar 617bb4: OUTPUT«False␤»
AlexDaniel ah
m: say 42.3999999999999999999999999999999999999999999999e0 ≅ 42.4e0
camelia rakudo-moar 617bb4: OUTPUT«True␤»
AlexDaniel m: say 42.39999999999999999999999999e0 ≅ 42.4e0
camelia rakudo-moar 617bb4: OUTPUT«True␤»
AlexDaniel m: say 42.3999999999999999e0 ≅ 42.4e0
camelia rakudo-moar 617bb4: OUTPUT«True␤»
AlexDaniel m: say 42.39999e0 ≅ 42.4e0
camelia rakudo-moar 617bb4: OUTPUT«False␤»
AlexDaniel teatime: anyway, that's for comparing Nums
teatime yeah I knew there was a approx eq operator 02:57
just didn't realize it had unicode
seems like the unicode operator docs could use an update
but maybe I just overlooked it
AlexDaniel teatime: doc.perl6.org/language/unicode_texas
02:57 vendethiel left
AlexDaniel what I still cannot accept is this 02:58
m: 2¯³
camelia ( no output )
AlexDaniel m: say 2¯³
camelia rakudo-moar 617bb4: OUTPUT«0.125␤»
AlexDaniel .u ¯ 02:59
yoleaux U+00AF MACRON [Sk] (¯)
teatime yeah weird, esp. since ⁻ exists
0xAF is probably easier to get to in default KB layouts tho
.u ⁻ 03:00
yoleaux U+207B SUPERSCRIPT MINUS [Sm] (⁻)
03:00 tardisx joined
AlexDaniel teatime: yeah… somebody said “hey, there's a superscript minus, here it is: ¯” and that's how we got it 03:00
teatime too late to fix now? 03:01
AlexDaniel because on some configs ^ + - is macron or something
teatime: no it wasn't too late back then, but TimToady decided that it's ok, so let be it
teatime heh... I have congnitive dissonance when I think I think of TimToady as 'Tim' 03:02
03:07 skink left 03:16 Herby_ left, Amnez777 left 03:23 pecastro joined 03:26 pecastro left 03:29 cibs_ left 03:30 cibs joined 03:32 kid51 left
MadcapJake I am getting stumped by this segmentation fault. It happens right here: github.com/MadcapJake/p6-MyHTML/bl...ee.pm6#L34 and I have no idea why. Anyone able to take a look? 03:45
Xliff &lib? 03:47
MadcapJake That's this: github.com/MadcapJake/p6-MyHTML/bl...ML/Lib.pm6
03:49 pecastro joined
Xliff Gotcha. 03:49
Hrm. 03:52
Where is the use of the \ sigil documented?
MadcapJake doc.perl6.org/language/variables#Si..._variables 03:53
Xliff Yeah. Reading that now.
MadcapJake In this case, it was a shot in the dark. didn't seem to make a difference
Xliff Wouldn't you need a container to hold the return value of myhtml_tree_create() ? 03:54
Or is the context-less binding assignment the wholepoint? 03:55
MadcapJake no it just returns a pointer
it's immutable when sigilless 03:56
m: my \i = 10; i = 12;
camelia rakudo-moar 617bb4: OUTPUT«Cannot modify an immutable Int␤ in block <unit> at /tmp/I7Xm0LGK22 line 1␤␤»
Xliff "Tree is repr('CStruct');" but I don't see any struct members.
Right. I get that it's immutable.
MadcapJake well I wouldn't need a container for it then because I only assign it once. 03:57
Xliff Is there a .h file for /usr/local/lib/libmyhtml.so? 03:58
MadcapJake yeah the CStruct thing was also a shot in the dark, it was a CPointer and still gave the same error. Thought it *really is* a struct
github.com/lexborisov/myhtml/blob/...html/api.h
I copied the doxygen over
Xliff Yeah. I've had better luck with CStructs that actually have a definition than with CPointers.
I think you will need to add this to your Tree class, at the very least. 04:03
github.com/lexborisov/myhtml/blob/...ree.h#L160
Along with all of the dependent types. 04:04
04:04 bent__ joined 04:05 bent__ left
Xliff I have had no luck trying to get naked pointers to do anything but segfault with NativeCall. 04:05
MadcapJake hmm alright I'll give it a shot. Thanks!
Xliff No worries. Good luck!
MadcapJake, gptrixie is your friend. 04:06
A lot of editing, though.
I would just translate the types and put them in their own unit module. You've already done everything else, looks like.
And gptrixie output is.... rough... 04:07
04:11 perlawhirl left, Cabanossi left 04:14 Cabanossi joined 04:17 dj_goku left 04:19 tardisx left 04:22 Amnez777 joined, tardisx joined
MadcapJake what's the difference between a C struct field that has the type «enum foo» versus one that has type «foo_enum_type» backed by a typedef? 04:26
Xliff .u exclamation 04:27
yoleaux U+0021 EXCLAMATION MARK [Po] (!)
U+00A1 INVERTED EXCLAMATION MARK [Po] (¡) 04:28
U+01C3 LATIN LETTER RETROFLEX CLICK [Lo] (ǃ)
Xliff ¡WHOOP!
Got it!
TEttinger .u LETTER
yoleaux U+0041 LATIN CAPITAL LETTER A [Lu] (A)
U+0042 LATIN CAPITAL LETTER B [Lu] (B)
U+0043 LATIN CAPITAL LETTER C [Lu] (C)
MadcapJake o_O
TEttinger phew
teatime well they're both really ints of some width. typedef just makes an alias for a type. 04:29
Xliff MadcapJake, I don't think there's much of a difference, since the typedefs look to just be constant declarations of the struct class.
teatime so I guess it's the same as the same situation w/ a struct or union.
MadcapJake strange that this struct contains both
Xliff MadcapJake, linky?
MadcapJake that struct at L160 you linked above
the enums and the encodings are both structs, one just has a typedef the other not 04:30
github.com/lexborisov/myhtml/blob/...#L208-L219
Xliff Updating gist. Now getting expected values from NativeCall "func(float ***bastard)" !!! 04:31
teatime maybe they typedef things that are part of the public api
or typedef things that are supposed to be black boxes to the user of the public api.
also I thought _t names were reserved for the stdlib :/ 04:32
MadcapJake myhtml binding backtrace www.irccloud.com/pastebin/cX4D9TD8/ 04:33
That's with an added struct: github.com/MadcapJake/p6-MyHTML/co...aa865f19ad 04:36
two structs actually
Xliff W00 H0000! gist.github.com/Xliff/11acc06d8e4c...5bbfe47329
.tell timotimo gist.github.com/Xliff/11acc06d8e4c...5bbfe47329
yoleaux Xliff: I'll pass your message to timotimo.
Xliff I'm sure there's probably a more elegant way to do it, but the key is passing a Pointer, and then nativecast to arrays with the binding assignment operator. 04:37
I had to dig through almost all of nom/t/04-nativecall to figure it out.
04:38 skids left 04:42 sue_ joined 04:43 pecastro left
Xliff MadcapJake, did you build libmyhtml with or without POSIX threads? 04:53
MadcapJake without
Xliff And the code you were running that generated the SEGV? 04:54
MadcapJake yeah it was eg/attributes-high.pl6
Xliff kk 04:55
04:57 xiaomiao left 04:59 astj_ joined, astj left 05:00 BenGoldberg left
Xliff Afraid you may need struct definition for MyHTML as well. 05:01
05:01 sillytime is now known as nchambers 05:02 xiaomiao joined
Xliff Yikes! 05:07
Trixie puked on myhtml.h
05:17 uuu_john left 05:18 sue_ left
MadcapJake tried adding MyHTML struct fields to no avail 05:19
05:26 pierrot joined
Xliff ==11657== Invalid read of size 4 05:29
==11657== at 0x7EE20CE: myhtml_tag_init (in /usr/local/lib/libmyhtml.so)
==11657== by 0x7EE0A88: myhtml_tree_init (in /usr/local/lib/libmyhtml.so)
So something is funky.
05:31 aleogen joined
AlexDaniel .u ꘏ 05:32
yoleaux U+A60F VAI QUESTION MARK [Po] (꘏)
Xliff Hummm..... 05:33
$ perl6 -Ilib eg/attributes-high.pl6
Still ain't back yet.
AlexDaniel m: say ꘤꘢ + ꘦꘩
camelia rakudo-moar 617bb4: OUTPUT«111␤»
AlexDaniel Vai is cool 05:34
.u꘍
.u ꘍
yoleaux U+A60D VAI COMMA [Po] (꘍)
AlexDaniel .u ꘎
yoleaux U+A60E VAI FULL STOP [Po] (꘎)
aleogen what are these squares? What did I break this time? 05:35
meh
must be something wrong with termcap/utf-8
AlexDaniel aleogen: most likely you just don't have enough fonts
aleogen which do I need? 05:36
AlexDaniel aleogen: it's hard to tell. At some point I installed unifont and was amazed by how every square turned into something renderable 05:38
aleogen: but it is a bitmap font, so it is ugly
these symbols above are rendered on my system with some proper font, but I have no idea how can I know which font is that 05:39
aleogen depending on xorg, which I'm not currently running
(x11-fonts rather)
Let me see if I can get that to work somehow 05:40
Xliff www.evertype.com/fonts/vai/ ??
AlexDaniel Xliff: not sure if there's any reason to do that unless you plan to type in vai :) 05:41
Xliff: but getting some fonts that cover big chunks of unicode is a good idea 05:42
aleogen: perhaps you can just install .ttf from here unifoundry.com/unifont.html
aleogen AlexDaniel: svnweb.freebsd.org/ports/head/x11-...nifont-ttf
Xliff *gasp* 05:43
Unifont 12 megs???
aleogen ttf, yes
TEttinger it's even more in the hex format
... I think
aleogen come one, you can get 512GB of low-profile usb storage for like, $30 05:44
on*
TEttinger haha, I was way off
it's way smaller
aleogen there's also svnweb.freebsd.org/ports/head/x11-...nu-unifont
much much smaller
05:45 CIAvash joined
Xliff aleogen, Just because you can do it doesn't mean you should. 05:46
TEttinger I use Unifont for IRC
AlexDaniel aleogen: ah, found it!
www.gnu.org/software/freefont/
TEttinger using it now. because I was sick of a random unicode character throwing off alignment
AlexDaniel I bet that this one renders vai on my system
Xliff 😆
AlexDaniel TEttinger: this is so annoying
TEttinger vai?
AlexDaniel m: say ꘤꘢ + ꘦꘩ 05:47
camelia rakudo-moar 617bb4: OUTPUT«111␤»
TEttinger no wai
AlexDaniel aleogen: so I guess that you should install both freefont and unifont to be happy :) 05:48
Xliff ⊙ ⊙
TEttinger m: 1 + ℎ
aleogen AlexDaniel: i'm actually curious about psf unifont
camelia rakudo-moar 617bb4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/U3WJv7dfMy␤Undeclared routine:␤ ℎ used at line 1␤␤»
Xliff Lemme restart to see if I can see these.
TEttinger aw it's planck's constant!
05:48 Xliff left
aleogen yeah, same. sec 05:48
05:48 aleogen left 05:49 Xliff joined
Xliff YES!!! 05:49
TEttinger m: Ⅿ + Ⅿ
camelia rakudo-moar 617bb4: OUTPUT«WARNINGS for /tmp/sNXo282EZw:␤Useless use of "+" in expression "Ⅿ + Ⅿ" in sink context (line 1)␤»
TEttinger m: say Ⅿ + Ⅿ
camelia rakudo-moar 617bb4: OUTPUT«2000␤»
TEttinger nice
05:49 aleogen joined
AlexDaniel TEttinger: it looks like we have no planck constant at all. Not even in modules 05:50
aleogen alright, let me have it guys
TEttinger m: say 無量大數 + 無量大數 05:51
camelia rakudo-moar 617bb4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/L8mUX4xW1f␤Undeclared routine:␤ 無量大數 used at line 1␤␤»
aleogen much much much better
TEttinger m: say 울 + 울
camelia rakudo-moar 617bb4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/DqWIUdrJ8G␤Undeclared routine:␤ 울 used at line 1␤␤»
TEttinger m: say 쉰 + 쉰 05:52
camelia rakudo-moar 617bb4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/1GRCvfBvtA␤Undeclared routine:␤ 쉰 used at line 1␤␤»
aleogen though I cannot tell what is supposed to be after line 1
TEttinger NL ?
newline visual control
aleogen 1␤␤»
TEttinger yep
AlexDaniel here it renders as N above L
aleogen 1 <something something> >> \n
TEttinger it's a visual way to print \n without printing a newline
or print a substitute for it 05:53
05:53 dolmen joined
aleogen the return symbol is much more helpful I think 05:53
AlexDaniel return symbol? What symbol is that?
TEttinger m: say ℯ + ℯ 05:54
camelia rakudo-moar 617bb4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/hg6nfXbRJY␤Undeclared routine:␤ ℯ used at line 1␤␤»
TEttinger aw
aleogen oh wait, it's 〃 3003 ditt?
or something similar?
TEttinger m: say Ⅿ⁄Ⅿ 05:55
camelia rakudo-moar 617bb4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/hjsdQemRki␤Bogus postfix␤at /tmp/hjsdQemRki:1␤------> 3say Ⅿ7⏏5⁄Ⅿ␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤ statement …»
TEttinger hm
aleogen AlexDaniel: I was thinking ⏎ 23
TEttinger that's unicode 0x2044 that I used, the fraction slash
www.fileformat.info/info/unicode/ch.../index.htm 05:56
m: say Ⅿ/Ⅿ 05:57
camelia rakudo-moar 617bb4: OUTPUT«1␤»
TEttinger nice
aleogen wow this is breaking my terminal 05:58
U+21B5, U+23CE, U+240D, those all seem to make much more sense than.. Oh 06:01
U+2424 isn't displaying properly. No wonder.
Xliff m: say ꘡꘠ + ꘤꘥ 06:02
camelia rakudo-moar 617bb4: OUTPUT«55␤»
Xliff HAHAHAHAHA!
aleogen back to blocks ;_;
Xliff :(
aleogen wonders if #perl6 is messing around now 06:03
Xliff .u return
moritz aleogen: just get a UTF-8 capable terminal :-)
yoleaux U+000D CARRIAGE RETURN (CR) [Cc] (␍)
U+23CE RETURN SYMBOL [So] (⏎)
U+240D SYMBOL FOR CARRIAGE RETURN [So] (␍)
aleogen moritz: my terminal is fully utf-8 capable 06:04
Xliff
AlexDaniel Xliff: what's so funny?
Xliff Not so intuitive, that one.
AlexDaniel, rakudo arithmetic works with Vai numbers.
moritz aleogen: then how can it mess with your terminal?
Xliff m: say ꘡
aleogen moritz: that's what I'm trying to figure out
camelia rakudo-moar 617bb4: OUTPUT«1␤»
Xliff m: say ꘡꘠꘠ 06:05
camelia rakudo-moar 617bb4: OUTPUT«100␤»
AlexDaniel Xliff: it works with anything that has a defined numeric value
Xliff: like roman numerals
Xliff :D
AlexDaniel which is weird but why not :)
Xliff I love it. 06:06
Oh, the possibilities!
AlexDaniel Xliff: well, I just have to note that possibilities are not endless
for example, this works ↓
m: say Ⅷ 06:07
camelia rakudo-moar 617bb4: OUTPUT«8␤»
aleogen moritz: does urxvt support unicode? :o
AlexDaniel m: sayⅩⅧ # but this doesn't
camelia rakudo-moar 617bb4: OUTPUT«5===SORRY!5===␤Argument to "say" seems to be malformed␤at /tmp/E40EBFRA1u:1␤------> 3say7⏏5ⅩⅧ # but this doesn't␤Bogus postfix␤at /tmp/E40EBFRA1u:1␤------> 3say7⏏5ⅩⅧ # but this doesn't␤ expecting any of:␤ i…»
Xliff m: say ⅢⅣⅤ;
camelia rakudo-moar 617bb4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ro8BYhFpXq␤Bogus postfix␤at /tmp/ro8BYhFpXq:1␤------> 3say Ⅲ7⏏5ⅣⅤ;␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤ statement…»
Xliff m: say Ⅳ; 06:08
camelia rakudo-moar 617bb4: OUTPUT«4␤»
Xliff LOL
Roman numeral rules are in effect!
AlexDaniel Xliff: because it is a different numeral system and rakudo is not supposed to support that
Xliff m: say ⅹⅰⅰ
camelia rakudo-moar 617bb4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Oc34tl7kcN␤Bogus postfix␤at /tmp/Oc34tl7kcN:1␤------> 3say ⅹ7⏏5ⅰⅰ␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤ statement …»
AlexDaniel but there's github.com/drforr/perl6-slang-roman if you want that
Xliff m: say ⅩⅠⅠⅠ 06:09
camelia rakudo-moar 617bb4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/fpty9rzxY3␤Bogus postfix␤at /tmp/fpty9rzxY3:1␤------> 3say Ⅹ7⏏5ⅠⅠⅠ␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤ stateme…»
aleogen is there a way to print out a fonttable for the fonts I've currently installed? 06:10
06:11 jack_rabbit joined 06:13 aleogen left, _mg_ joined, aleogen joined
Xliff aleogen, www.babelstone.co.uk/Software/BabelMap.html 06:15
aleogen em:
Xliff: err, within freebsd, inside a virtual terminal 06:16
Xliff aleogen, O. Sorry.
aleogen say ⅩⅠⅠⅠ 06:17
em: say ⅩⅠⅠⅠ
m: say ⅩⅠⅠⅠ 06:18
camelia rakudo-moar 617bb4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/suTM5JzWXD␤Bogus postfix␤at /tmp/suTM5JzWXD:1␤------> 3say Ⅹ7⏏5ⅠⅠⅠ␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤ stateme…»
TEttinger aleogen: anything that can pull apart a cmap section of a TTF can do it 06:21
I don't know much that does that, I found cmaptofile a while back
aleogen m: my @res; for ^5 { @res.push: %( a => $_, b => $_ + 2 ); }; say @res
camelia rakudo-moar 617bb4: OUTPUT«[{a => 0, b => 2} {a => 1, b => 3} {a => 2, b => 4} {a => 3, b => 5} {a => 4, b => 6}]␤»
TEttinger www.jongware.com/binaries/ I have only used the cmaptofile101.zip download 06:22
this was the only result I got
interestingly, google finds the IRC logs where i linked the version from my dropbox because jongware was down
aleogen haha, very practical 06:23
okay, I need more stuff that might not display properly.
TEttinger of course, cpan search.cpan.org/~mhosken/Font-TTF-1...TF/Cmap.pm
aleogen TEttinger: lol, I was right on that page :p 06:24
06:26 aindilis joined
TEttinger I haven't tried, but "dumpfont -t cmap whatever.ttf" using this may work scripts.sil.org/cms/scripts/page.ph...=FontUtils 06:26
aleogen do you have anyhting more that could possibly break my terminal? 06:30
I'd like to see if this is all fixed up yet
06:30 dwarring left
moritz .u poop 06:31
yoleaux No characters found
aleogen .u 20C4
yoleaux No characters found
aleogen .u a
yoleaux U+0061 LATIN SMALL LETTER A [Ll] (a)
moritz m: say "\x[20C4]" 06:32
camelia rakudo-moar 617bb4: OUTPUT«⃄␤»
moritz m: say "\x[20C4]".uniname
camelia rakudo-moar 617bb4: OUTPUT«<reserved>␤»
moritz .u LTR
yoleaux No characters found
aleogen .u 用
yoleaux No characters found
moritz .u RTL
yoleaux No characters found
moritz .u right-to-left
yoleaux U+200F RIGHT-TO-LEFT MARK [Cf] (<control>)
U+202B RIGHT-TO-LEFT EMBEDDING [Cf] (<control>)
U+202E RIGHT-TO-LEFT OVERRIDE [Cf] (<control>)
moritz m: say chr 0x202E # specifically for aleogen 06:33
camelia rakudo-moar 617bb4: OUTPUT«‮␤»
aleogen works
just very small
\o/
06:36 dolmen left 06:45 firstdayonthejob left 06:46 Actualeyes left 06:47 domidumont joined 06:49 Actualeyes joined 06:50 domidumont left 06:51 domidumont joined, RabidGravy joined
Xliff \o RabidGravy 06:52
masak mornin', #perl6
ufobat_ morning :-) 06:56
06:56 ufobat_ is now known as ufobat
masak another glorious day in the Perl 6 factory! 06:58
07:02 wamba joined
Xliff Hrm. 07:03
MadcapJake, still here?
ufobat, masak -- \o
07:03 zakharyas joined
Xliff masak: Fixed mah stuff! 07:04
gist.github.com/Xliff/11acc06d8e4c...5bbfe47329
ufobat masak: groups.google.com/forum/#!msg/mojo...PSssUCWjkJ - the non blocking psgi && mojo thing.. and i am not perfectly sure but it seems to me that github.com/supernovus/perl6-http-e...y.pm6#L184 is also not doing nonblocking IO 07:06
masak Xliff: congratulations!
ufobat: I didn't get down to that layer myself, but I sort of suspected it wouldn't. :) 07:07
ufobat: I'm willing to end up with a short-term workaround/hack to make things work, and then later we can switch things over to doing it the nice, correct way
but "make it work" first
07:08 abraxxa joined
masak wonders idly if supernovus++ would accept a repository-wide patch to make his whitespace and curly braces a bit more standard... 07:08
ufobat i agree, 07:10
07:13 pmurias joined
pmurias hi 07:14
masak hi pmurias
07:27 leont joined 07:32 leont left 07:33 leont joined 07:36 pdcawley joined
AlexDaniel masak: I didn't really understand what is your issue exactly, but what about web sockets? 07:50
masak: there's a web socket module in perl 6 modules directory, and it actually works, I've tried it
masak worth looking into 07:51
especially if it Just Works
SSE are basically a simpler version of web sockets
because web sockets are bidirectional and SSE is unidirectional 07:52
AlexDaniel there's a chat example that almost works 07:53
ah no, it just works, because I've fixed it
without “almost”
Xliff LOL 07:54
AlexDaniel, What was broken?
AlexDaniel Xliff: github.com/tokuhirom/p6-WebSocket/...cce2450ca4
Xliff: it was just slightly outdated
07:54 rindolf joined
AlexDaniel oops, I mean, it was just a bit old 07:54
masak if Web Sockets just work for me, I might forget about SSE, yes 07:55
07:55 Guest55473 is now known as matt_
RabidGravy masak, so you didn't see the gist I posted with a working SSE example the other day? 07:56
AlexDaniel masak: but SSE are not supported on Edge! :D
in Edge* ?
RabidGravy but see also github.com/jonathanstowe/Lumberjac...bSocket.pm 07:57
that works really well
AlexDaniel RabidGravy: what is Lumberjack? 07:58
RabidGravy a sketch for a logging framework
AlexDaniel hmm
RabidGravy it's probably too slow for big time use right now
Xliff What is this? Signature? "-> $ws {" 08:00
RabidGravy but the log "dashboard" using websockets works nicely
AlexDaniel m: -> $arg { say $arg}(42)
camelia rakudo-moar 617bb4: OUTPUT«42␤»
RabidGravy Xliff, a "pointy block"
Xliff Makes the code look odd 08:01
AlexDaniel Xliff: that's just another way to create a function
Xliff googles.
arnsholt Note that it's a block, not a function
They're pretty similar, but not quite the same
AlexDaniel m: my $x = -> $arg { say $arg}; say WHAT $x 08:02
camelia rakudo-moar 617bb4: OUTPUT«(Block)␤»
AlexDaniel my $x = anon sub test($arg) { say $arg}; say WHAT $x
m: my $x = anon sub test($arg) { say $arg}; say WHAT $x
camelia rakudo-moar 617bb4: OUTPUT«(Sub)␤»
AlexDaniel arnsholt: indeed. What's the difference?
08:02 brrt joined
arnsholt return, mostly 08:03
return in a block returns from the enclosing sub, not the block 08:04
RabidGravy a sub has a bit of extra baggage around dispatching, multis etc
08:04 tardisx left
masak RabidGravy: no, I missed your SSE example. url? :) 08:05
AlexDaniel: I'm filled with a great huge lack of giving a damn that it doesn't work in Edge.
08:05 jnthn_ is now known as jnthn
RabidGravy masak, gist.github.com/jonathanstowe/cf91...37f7137427 - that definitely works (inasmuch as I tested it with a node.js client) 08:05
brrt good * #perl6 08:06
pmurias when doing TDD is it resonable to commit first the test and in a subsequent commit the implementation?
leont Awesome. Running perl-gdb-m causes $*EXECUTABLE to be perl6-gdb-m too, so my entire program gets confused
masak RabidGravy: cool! I can use that! thanks! 08:07
RabidGravy I don't know how well that plays with higher level abstractions
leont (because it starts other perl processes)
brrt pmurias: yes 08:08
08:09 araujo joined 08:13 darutoko joined
leont It rather confused my TAP parser :-p 08:17
moritz leont: it's called "deep debugging" :-)
or was it "debugging in depth"? :-) 08:18
leont TAP is supposed to ignore unknown lines (a rather interesting feature), but I had just built-in some debugging for unknown lines :-p
08:21 dakkar joined
moritz leont: well, I susppose that even when that's not a problem, it might be a problem that the subprocesses don't run 08:23
08:23 vytas joined
Xliff Aaannd. Vorbis read test is complete. 08:27
Now the write tests... *sigh*
Any reason why perl6 would spawn multiple processes? 08:28
And what should I look out for if I may have inadvertently introduced such an issue?
moritz Xliff: iirc for precompilation 08:29
Xliff Ah.
And would there be any reason as to why precomp would need to open > 10 instances? 08:30
Or >5, really.
08:33 Vlavv_ left 08:38 leont left 08:40 tardisx joined
Xliff Let's try another tack. What would be the best way to look for a precompilation loop? 08:40
08:42 tardisx left
moritz there's got to be some logic right now that determines which modules need which others, and which of those can be precompiled 08:43
that's where loop detection should go, IMHO
maybe nine_++ has a good idea?
Xliff Because I think I am running into that.
Probably because of the weird way I tried to hack something that MadcapJake was working on. 08:44
nine_ I don't think we currently have a protection from recursive use statements. So if A uses B and B uses A, you'd get an endless loop trying to precompile those dependencies and that will look like a very deep perl6 process tree. 08:48
When starting from a clean slate, you'll see one perl6 process per dependency tree layer. So A uses B uses C uses D will give you 4 perl6 processes, at least until D is compiled. 08:49
Xliff Crap. 08:52
I think that's exactly what has happened.
RabidGravy is there a builtin way of extracting the bits of an integer like: 09:02
m: sub bits(Int $bits, Int $i where { $_ < 2**$bits }) { my @bits; for ^$bits -> $j { my $k = ( $bits - 1) - $j; @bits[$k] = ($i +& ( 1 +< $j)) ?? 1 !! 0; } @bits; }; say bits(8, 177) 09:03
camelia rakudo-moar 617bb4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/THQJ2u6klL␤Strange text after block (missing semicolon or comma?)␤at /tmp/THQJ2u6klL:1␤------> 3ts[$k] = ($i +& ( 1 +< $j)) ?? 1 !! 0; }7⏏5 @bits; }; say bits(8, 177)␤»
RabidGravy m: sub bits(Int $bits, Int $i where { $_ < 2**$bits }) { my @bits; for ^$bits -> $j { my $k = ( $bits - 1) - $j; @bits[$k] = ($i +& ( 1 +< $j)) ?? 1 !! 0; }; @bits; }; say bits(8, 177)
camelia rakudo-moar 617bb4: OUTPUT«[1 0 1 1 0 0 0 1]␤»
RabidGravy rather
09:04 domidumont left, azawawi joined
azawawi hi 09:04
09:05 domidumont joined
azawawi is working on ci.appveyor.com/project/azawawi/rakudo (i.e. Windows Rakudo CI testing) 09:05
RabidGravy cool 09:06
Xliff m: given "177" { say "$_ => ", :10($_).base(2) } 09:07
camelia rakudo-moar 617bb4: OUTPUT«177 => 10110001␤»
09:07 Amnez777 left
Xliff m: say 177.base(2) 09:07
camelia rakudo-moar 617bb4: OUTPUT«10110001␤»
Xliff m: say 177.base(2).split 09:08
camelia rakudo-moar 617bb4: OUTPUT«Cannot call split(Str: ); none of these signatures match:␤ (Cool $: Regex:D $pat, $limit = Inf;; :$all, *%_)␤ (Cool $: Cool:D $pat, $limit = Inf;; :$all, *%_)␤ (Str:D $: Regex:D $pat, $parts = *;; :$v is copy, :$k, :$kv, :$p, :$skip-empty, *…»
Xliff m: say split 177.base(2)
camelia rakudo-moar 617bb4: OUTPUT«Too few positionals passed; expected at least 2 arguments but got only 1␤ in block <unit> at /tmp/Qr2LdQmw4G line 1␤␤»
Xliff m: say split //, 177.base(2)
camelia rakudo-moar 617bb4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/usfVYY2pjE␤Null regex not allowed␤at /tmp/usfVYY2pjE:1␤------> 3say split //7⏏5, 177.base(2)␤»
moritz m: say 177.base(2).comb
camelia rakudo-moar 617bb4: OUTPUT«(1 0 1 1 0 0 0 1)␤»
ufobat azawawi, and the windows rakudo testing already "fixed" a bug in bailador ;) 09:09
Xliff moritz, Or that
psch m: my @a = (sprintf "%08b", 53).comb; say @a 09:10
camelia rakudo-moar 617bb4: OUTPUT«[0 0 1 1 0 1 0 1]␤»
AlexDaniel yeah ↑
psch .base(2).comb doesn't give 0 padding, which is apparently desired
moritz m: say 53.fmt('%b') 09:11
camelia rakudo-moar 617bb4: OUTPUT«110101␤»
Xliff OK. I need to get some sleep. G'night #perl6-- o7 09:13
09:13 Xliff is now known as Xliff_ZZZzzzz
grondilu m: say 53.polymod(2 xx *) 09:13
camelia rakudo-moar 617bb4: OUTPUT«(1 0 1 0 1 1)␤»
09:14 |Tux| joined, Amnez777 joined
RabidGravy yes, front padding is desired 09:22
09:27 RadioFaceIRC joined
azawawi any update on rakudo* 2016.04? 09:39
09:40 johndau left 09:42 nowan_ left 09:45 nowan joined
azawawi moritz: ping 09:49
moritz azawawi: pong 09:50
azawawi moritz: any feedback for ci.appveyor.com/project/azawawi/ra...uild/1.0.9 ?
moritz azawawi: what's that? 09:51
azawawi moritz: windows appveyor ci github.com/azawawi/rakudo/blob/nom/appveyor.yml for rakudo :) 09:52
moritz azawawi: that's nice. But why does ci.appveyor.com/project/azawawi/ra...b0vpshnj9l fail a test and still say "Build success"?
azawawi moritz: will fix :) 09:54
moritz: the problem with testing this is that you change something and you wait... 09:56
moritz: AppVeyor is new and slow atm in the VM booting sequence
10:00 ocbtec joined 10:12 Vlavv_ joined 10:20 brrt left
gregf_ m: say sprintf("%b",177) 10:21
camelia rakudo-moar 617bb4: OUTPUT«10110001␤»
gregf_ oops, that was a while back :|
RabidGravy indeed, I was of course aware of all the options, apart from grondilu's which is cool, but went with my original as the stringifcation and split options seem even more hacky and slow than what I had 10:24
Xliff_ZZZzzzz RabidGravy, bits() is a mouthful though. 10:28
:)
Oh! I'm supposed to be sleeping still... Oops!
RabidGravy anyway the reason I want to do this is that I want to simulate a hardware device involving an ADC, a clock input and a shift register before I actually make it 10:31
or if you'd rather a "binary sample and hold"
(I've actually got a bunch of sample and hold amplifier chips somewhere but don't know where I put them :) 10:34
10:48 TEttinger left 11:06 eyck_ left, ilogger2_ joined, bitmap joined 11:07 colomon joined, remmie joined 11:08 cgfbee joined, shadowpaste joined 11:09 M-Illandan joined
Xliff_ZZZzzzz RabidGravy, Ooh! Device simulation? That's pretty cool. 11:11
11:12 Possum joined, kent\n joined, dg joined 11:16 teatime joined
azawawi github.com/rakudo/rakudo/pull/746 # Your feedback is appreciated 11:16
ci.appveyor.com/project/azawawi/ra...uild/1.0.1 # Current windows 7 build 11:17
11:17 _mg_ joined
moritz azawawi: fwiw much of the rakudo development discussion has moved to #p6dev 11:27
anyway, azawawi++
11:31 retupmoc_ joined 11:38 kid51 joined 11:57 colomon left 12:00 avar joined 12:05 kid511 joined 12:06 kid51 left 12:11 kaare_ joined 12:17 uruwi joined 12:39 Vlavv_ joined 12:42 perlpilot_ joined 12:44 perlpilot_ is now known as perlpilot
brrt wow... the level of respect in these slides is staggeringly, mindbogglingly low low: www.alexstjohn.com/WP/download/Recr...Giants.pdf 12:45
moritz I hope this is satire. It just has to be. 12:52
brrt i'm not entirely sure... 12:53
by the same author: venturebeat.com/2016/04/16/game-dev...-attitude/ 12:54
moritz ok, I hope I never meet this person IRL 12:55
nine_ Apparently I'm not a real engineer and I don't even seem to want to recruit real engineers (tm) :) So I'm just happy to ignore this mountain of arrogance. 12:59
brrt and sexism.... and misanthropy in general 13:00
13:01 pecastro joined
Xliff Dear god, that is disgusting. 13:01
13:01 cdg joined
Xliff If I ever work as a game developer (and I doubt I have the skills for it), I will only work for myself. 13:01
nine_ I think those just follow from the arrogance. It's the "I'm a god and I want only gods so they have to be exactly like me" fallacy. 13:02
Xliff nine_++
brrt yeah, that is probably true
13:02 colomon joined
brrt ok, i'm going to do something useful, like read papers :-) 13:02
nine_ brrt++ 13:03
13:03 pecastro left
gregf_ 'any CS degree has a job*' - *wonders* 13:05
Xliff m: say "Hey there!".encode('UTF-8').list
camelia rakudo-moar 1aabef: OUTPUT«(72 101 121 32 116 104 101 114 101 33)␤»
13:06 domidumont joined 13:07 pecastro joined
Xliff m: say "Hey there!".encode('UTF-8').list.WHAT 13:08
camelia rakudo-moar 1aabef: OUTPUT«(Seq)␤»
13:09 vendethiel joined
Xliff Doesn't Seq unbox to an array? 13:09
m: say "Hey there!".encode('UTF-8').elems 13:10
camelia rakudo-moar 1aabef: OUTPUT«10␤»
13:10 skids joined, araujo joined
moritz Xliff: Seq doesn't unbox at all, afaict 13:10
13:11 Amnez777 joined
Xliff m: say "Hey there!".encode('UTF-8').ords 13:12
camelia rakudo-moar 1aabef: OUTPUT«Method 'ords' not found for invocant of class 'utf8'␤ in block <unit> at /tmp/G2IoYLwGpv line 1␤␤»
13:12 araujo left
Xliff m: say "Hey there!".ords 13:12
camelia rakudo-moar 1aabef: OUTPUT«(72 101 121 32 116 104 101 114 101 33)␤»
13:12 araujo joined
Xliff Where is there a breakdown of class utf8? 13:12
13:13 domidumont left
timotimo utf8 is an unmodifiable Buf[uint8] 13:13
yoleaux 04:36Z <Xliff> timotimo: gist.github.com/Xliff/11acc06d8e4c...5bbfe47329
timotimo basically
Xliff timotimo, Thanks. 13:14
timotimo, yeah. Fixed it! Boo yah!
timotimo yeah, yay
Xliff \o/
Might need help updating the docs with this info. 13:15
Just point me in the right direction.
timotimo the info about utf8?
RabidGravy there gist.github.com/jonathanstowe/0354...44c2b2e4fe 13:16
timotimo RabidGravy: it really unnerves me that you have the long-form for those arguments 13:17
Xliff timotimo, no. The info about handling multi-dimensional arrays passed from C libs.
timotimo isn't it totally more readable to have :61data-one, :127-data-two? :D
uh
RabidGravy no
timotimo i actually don't really know
it's so much more readable that i even accidentally typo'd an extra - in there
RabidGravy infact I don't think that's readable or clear at all 13:18
Xliff That is not more readable. That's moving in the opposite direction. 13:19
Where does Buf.list come from? I'm not seeing that in the method lists on docs.perl6.org
m: say "Hey there!".encode('UTF-8').subbuf(0).WHAT 13:20
camelia rakudo-moar 1aabef: OUTPUT«(utf8)␤»
Xliff m: say "Hey there!".encode('UTF-8').subbuf(0) 13:21
camelia rakudo-moar 1aabef: OUTPUT«utf8:0x<48 65 79 20 74 68 65 72 65 21>␤»
sjn \o
sjn just read pmichaud++ 's post to the p6-doc list, where he says that "CORE" has a special meaning in Perl 6... 13:22
what's he talking about?
moritz m: say CORE::.keys[^10]
camelia rakudo-moar 1aabef: OUTPUT«(SIGSEGV WhateverCode Slip &callframe Pair SIGHUP &flat &RETURN-LIST utf8 &infix:<∖>)␤»
moritz sjn: CORE is the pseudo namespace for built-ins that can be used without "use"ing a module 13:23
sjn ah, a little like UNIVERSAL in Perl 5?
moritz sjn: a little, yes 13:24
sjn: but CORE is more like a named outer scope, not a package that you can use to call methods on stuff, for example
13:24 uruwi left
nine_ More like CORE in Perl 5 ;) 13:24
nine@sunshine:~> perl -E 'CORE::say("hello")'
hello
Xliff m: use NativeCall; my $a = CArray[uint8].new( "Hey there1".encode('UTF-8').list) 13:25
camelia ( no output )
sjn right
Xliff m: use NativeCall; my CArray[uint8] $a = CArray[uint8].new("Hey there!".encode('UTF-8').list) 13:26
camelia ( no output )
Xliff Huh! No warnings there.
sjn Steve Mynott (dunno his nick?) asked for a Perl 6 glossary. Is there one?
Xliff When I try that from the code I am working on, I get: "Type check failed in assignment to $chs; expected NativeCall::Types::CArray[uint8] but got NativeCall::Types::CA..." 13:27
nine_ S99
sjn sees doc.perl6.org/language/glossary
moritz sjn: that's stmuk here
sjn: and yes, both that and S99
sjn ah, ok
cool
moritz I think S99 has more content
Xliff I'm assuming that what's getting cut off is "CALL-ME" but I am not sure. How can I get the full error message?
sjn hm
RabidGravy Xliff, no it's CArray[uint].new 13:29
you have a too specific type constraint, relax it to being just CArray
it's a known issue
Xliff Got it. Thanks.
RabidGravy it used to work, then stopped working in some places around November for some reason 13:30
13:30 tokomer joined
stmuk sjn: I meant specifically one for perl 5 terms (like "core module") to perl 6 terms 13:32
sjn yeah, I was looking for a similar term a while back, and assumed Perl 5's notion of a "Core module" would also work here 13:33
stmuk yes me too .. I'd never heard of "standard module") 13:34
moritz I'm not sure I agree with pmichaud++'s nomenclature 13:35
sjn There's definitely a need for having clear terminology about that, but as for the "standard module" suggestion, I'm less sure
stmuk I did wonder .. there is a difference betwen CORE and core
13:37 uruwi joined
sjn and then there's Rakudo Star, and it's notion of "standard modules" 13:37
jnthn "Compiler-bundled module" is clear I guess
13:37 vendethiel left
moritz and quite a mouth full :-) 13:38
13:38 spider-mario joined
jnthn Agree fully with avoiding "core" though 13:38
stmuk there are only currently two such modules anyway! Unless doc and panda/zef are ever added 13:40
sjn suggestions: "default|included|kernel|predefined|kit|initial modules"
"central modules" 13:41
"main modules"
pmurias sjn: what are those names for?
sjn pmurias: alternative to "core modules" (in the Perl 5 sense of "core") 13:42
pmurias do we have any "core modules" in Perl 6?
Juerd I like terms like 'included' and 'bundled' 13:43
moritz pmurias: Test, NativeCall
Juerd Also, 'standard', as in 'standard library'.
timotimo "dead batteries included"? :)
stmuk :)
sjn hehe "battery modules" :) 13:44
stmuk we incude one AA and one AAA sized battery
sjn modules that are batter-like
13:49 Praise joined, Praise left, Praise joined
timotimo "An exception is Microsoft Visual C++ for x86, which makes long double a synonym for double.", oh, wow. 13:49
brrt like all batteries, the power is related to their surface area, and their energy by their volume?
timotimo whoa, quadruple precision 13:50
13:52 mcsnolte joined
pmurias sjn: I'm not sure trying to impose any sort of officalness on the modules bundled with Rakudo Star is a good idea 13:55
timotimo agreed 13:56
stmuk probably the only "official" R* module is p6doc 13:57
13:57 abraxxa joined
stmuk this is all very confusing for "ousiders" BTW 13:58
^ outsiders
grondilu m: use MONKEY-SEE-NO-EVAL; EVAL 'my class Foo {}'; Foo.new 13:59
camelia rakudo-moar 1aabef: OUTPUT«5===SORRY!5=== Error while compiling /tmp/RS1wbbncw1␤Undeclared name:␤ Foo used at line 1␤␤»
pmurias stmuk: aren't battery included distributions also done for other dynamic languages?
14:00 colomon left
MadcapJake Anyone able to help with a NativeCall problem I'm having? This: github.com/MadcapJake/p6-MyHTML/bl...e.pm6#L103 keeps causing a seg fault and I can't figure out why. 14:00
pmurias looks 14:01
stmuk pmurias: no there is usually just one release with one name with a well designed standard library not multiple distributions
grondilu m: use MONKEY-SEE-NO-EVAL; EVAL 'my class Foo is export {}'; Foo.new
camelia rakudo-moar 1aabef: OUTPUT«5===SORRY!5=== Error while compiling /tmp/QyTG5H05mn␤Undeclared name:␤ Foo used at line 1␤␤»
14:01 hotel joined
grondilu m: use MONKEY-SEE-NO-EVAL; EVAL 'class Foo is export {}'; Foo.new 14:01
camelia rakudo-moar 1aabef: OUTPUT«5===SORRY!5=== Error while compiling /tmp/wZ9FtF3F6O␤Undeclared name:␤ Foo used at line 1␤␤»
14:02 mohae joined
hotel what does it mean if I get `Could not load oplib `nqp_dyncall_ops'` when running perl6 p.pl6? 14:02
MadcapJake hotel: I think you're on an old version of rakudo 14:06
hotel hm
pmurias stmuk: there won't be a standard library for Perl 6, as having "core modules" in Perl 5 is regarded as a bad idea
14:06 colomon joined
MadcapJake the only ref to nqp_dyncall_ops in perl6/nqp is from a parrot makefile 14:06
hotel yeah that's what I'm seeing
14:06 abraxxa left
stmuk pmurias: yes I know 14:06
MadcapJake and currently the only stable distribution is rakudo on moarvm
hotel would the rakudo version in the apt repository be out of date?
MadcapJake hotel: yes :)
hotel oh
welp
MadcapJake I think there's a debian unstable that's up-to-date somewhere 14:07
pmurias stmuk: maybe the Rakudo* website could be more clear about what it is
14:07 pdcawley joined
Xliff gist.github.com/Xliff/b079adbbb9e4...a4f5681cb8 <- Any thoughts 14:07
MadcapJake, yes. I am still up working on this. 14:08
jnap_ pmurias: you think there might at least be optional bundles or something. The Pythonistas I work with all tell me one of the things they love about python is the strength of the core setup
Xliff I swapped the original SEGV for an exception and thought I was making progress, but that left $!tree unset so a later BOOOM! was inevitable.
jnap_ and one thing they say they hate about Perl is you have to install a ton of stuff to get a useful install :)
MadcapJake Xliff: wow thanks! So are you having any luck?
Xliff Back to square one, unfortunately.
I'm wondering if the comments in the TreeStruct definition are causing problems. 14:09
Either that or a missing attribute.
14:09 abraxxa joined
MadcapJake hotel: your best bet is rakudobrew or downloading Rakudo Star and using ye olde autotools 14:09
hotel I think I tried doing the rakudobrew thing before, and then I was informed that something was on apt or something 14:10
Woodi making distros is free for everyone who want to do it :) and maintain it few years for free :)
hotel *shrug* guess I'll redo it
MadcapJake hotel: unfortunately ubuntu packaging is like a turtle stuck in molasses 14:11
Woodi hmm... however "making distro" can be regressed into text file with recomended modules :)
hotel ha
MadcapJake their unreleased xenial version is the most up-to-date and it's still pre christmas...
hotel well in that case I won't tell you that I'm actually using ubuntu on windows
MadcapJake launchpad.net/ubuntu/+source/rakudo
hotel oops 14:12
ufobat ive got a question regarding the META.json. if i create 2 namespaces within one file (like a role and a class) i list both namespace with the same file, right?
14:12 sue joined
MadcapJake Ahh well hotel, you should just use the msi package, wouldn't that work? (haven't looked at the U on W thingy yet) 14:12
ugexe having a list of recomended modules thus far has only resulted in constant 'i cant get anythign installed because XXX fails', where XXX is something new each month
hotel I want to use shiny tools wherever possible
so yes, technically I could use the msi 14:13
but I enjoy making life difficult :)
MadcapJake hotel: I know the feeling :)
Woodi ugexe: this is point when "maintain text file" comes into play ;)
ugexe Woodi: yes, just like maintaining star
which suffers from exactly this
once `emulates` and `supercedes` works then things will be easier as they imply their interface only, not implementation 14:14
MadcapJake Xliff: it's strange because I was able to get this working in my early pre-modularized version. I think I will try to separate out all the nativecall subs and export them so I can see if at least using the bare subs still works.
Xliff kk 14:15
I've cloned your repository so if you make any progress I will re-clone and merge.
Assuming I haven't figured it out by then.
If I do, I will clean up and make a PR>
MadcapJake ok cool! thanks for the help!
Xliff Anytime.
MadcapJake Xliff++ 14:16
Woodi ugexe: just Perl6 module ecosystem isn't yet "operational" :) 14:17
14:17 colomon left, tharkun joined
pmurias is there a NativeCall reference somewhere? 14:17
ugexe Its operational depending on which authors modules you use
14:18 colomon joined
stmuk pmurias: docs.perl6.org/language/nativecall 14:19
pmurias MadcapJake: one suspect thing is that myhtml_tree_create returns a pointer 14:20
MadcapJake pmurias: ah as in Pointer[Tree] 14:21
pmurias MadcapJake: you should try that 14:22
14:23 domidumont joined
MadcapJake I get: "An exception occurred while parameterizing Pointer" 14:23
hotel so if I run a command like rakudobrew build moar, and it seems to work the whole way through, but right at the end there's a message saying that make failed, does that mean the whole thing is broken?
14:25 uruwi left, colomon left
ugexe maybe not nqp or moarvm. but rakudo itself is probably in a broken state 14:26
hotel oh cool
ugexe if you remake it moarvm and nqp will be skipped if they built ok 14:27
14:27 skaji joined 14:28 colomon joined
hotel is there supposed to be a version set right after building? 14:29
ugexe can you clarify what you mean by that? do you mean `perl -v` has output, or rakudo setting the version of moar/nqp it needs before trying to build them? 14:30
hotel welp, looks like broken things are, in fact, broken
rakudobrew build panda
gives me rakudobrew: No version set.
[Coke] ... if "build moar" failed, don't expect panda to work. 14:31
hotel well yeah
[Coke] can you show us how it failed?
hotel sure
ugexe ah, im not sure what it means from rakudobrew. my guess is it has no versions of perl6 stored in its lookup since it failed
hotel well then i run rakudobrew switch moar-nom
and building panda still fails
ugexe you have to rakudobrew rehash first most likely
14:32 vendethiel joined
hotel here's the moar build fail gist.github.com/HotelCalifornia/71...1cb6148aa0 14:32
pmurias MadcapJake: how do I run the code to get the segfault? 14:33
ugexe ah im not sure how well it works from root
MadcapJake pmurias: «perl6 eg/attributes-high.pl6»
hotel u on w only runs on root lol
stmuk hotel: are you using selinux or something? "cannot enable executable stack" sounds like a security setting 14:34
hotel it's ubuntu on windows
that is a very real possibility
[Coke] You are the first person to try this, no doubt.
timotimo www.reddit.com/r/perl6/comments/4f...ot_debian/ - this also had to circumvent executable stack 14:35
hotel i figured
timotimo so there's the flag that can set the "noexecstack" feature
stmuk I saw something similar on alpine linux
14:36 sue left
timotimo iiuc we need execstack for dyncall or something? 14:36
hotel where do those flags go?
>primarily a windows user
MadcapJake So I had no luck with Pointer[SomeCStructClass] 14:37
timotimo in bash you can export LDFLAGS=... before you run Configure.pl and such 14:38
at least that's what i expect
hotel thanks
Xliff MadcapJake, switching back to: sub myhtml_tree_init(
TreeStruct,
Native_MyHTML
) is native(&lib) returns int32 {*}
ugexe fwiw install on a windows host isnt too difficult from my experience 14:39
MadcapJake Xliff: that's what it currently looks like but really the two arguments are pointers to cstructs
(for some reason, when I switch back to pointers, I'm getting a strange "Native call expected return type with CStruct representation, but got a CPointer" error, when that function has always returned an int32...) 14:40
14:40 uruwi joined
hotel I know it's not difficult to install on the windows side... i just don't want to :L 14:40
timotimo you're free to try it out :) 14:41
pmurias MadcapJake: where are the docs for myhtml? on the github page? 14:42
hotel and it seems the underlying problem is that nothing can find the command `perl6`
MadcapJake pmurias: github.com/lexborisov/myhtml
14:42 telex joined
timotimo rakudobrew should have told you to put something in your $PATH, did you make sure it got in there? 14:42
like, echo $PATH or so?
ugexe its failing before finishing 14:43
hotel the thing is in my path
and in fact it's there twice
wait
~ is an alias for /root/? 14:44
ilmari ~ is expanded by the shell to the current users's home directory
timotimo ugexe: you don't know that, after fixing the noexecstack, who knows what exactly fails now
Xliff MadcapJake, Yeah. I went the Pointer[CStruct] route, but all that does is cause an exception.
timotimo sometimes, ~ in path won't get expanded
ilmari it only gets expanded at the start of a word and if followed by space or / 14:45
Xliff I have run into this issue in another form, earlier. I just can't remember what I did to solve it. *sigh*
hotel \/root/.rakudobrew/bin:/root/perl5/perlbrew/bin:/usr/games:/root/.rakudobrew/bin <- relevant part of path
14:46 domidumont left
MadcapJake Xliff: yeah I can't get Pointer[CStruct] to work anywhere but I'm wondering if that's because it's within the class body? 14:47
ilmari pubs.opengroup.org/onlinepubs/96999...g_18_06_01 14:48
hotel oh-ho
this time, it seems to be working
14:49 Vlavv_ left
hotel jk 14:50
but now there's a different error
gist.github.com/HotelCalifornia/11...9e86f8da12 14:51
Xliff MadcapJake, ....cooould be. 14:55
timotimo can you attach strace to that command?
Xliff MadcapJake, try moving it out? 14:56
MadcapJake I'm moving all native subs to one file Raw.pm6
hotel lol -> Cloning into 'moar--stacktrace'... 14:57
Xliff I recompiled libmyhtml.so with debugging.
Crashing here, now...
0xb5309e35 in mchar_async_node_add (mchar_async=0x0) at utils/mchar_async.c:210
210 mcsync_lock(mchar_async->mcsync);
I will gist the whole backtrace. One sec.
hotel forgot the -- 14:58
Xliff gist.github.com/Xliff/edd2bd3e70c4...2a716dc25f
RabidGravy just in case you can't play along at home the output of gist.github.com/jonathanstowe/0354...44c2b2e4fe is streaming at rabidgravy.com:8000/stream :)
timotimo hotel: you may want to stop using rakudobrew and start manually fiddling around in the build directory 14:59
hotel what would I even do?
Xliff so why is mchar_async NULL?
timotimo you cd into the folder that has rakudo in it 15:00
hotel well yeah
Xliff MadcapJake, that is below rakudo and into libmyhtml.so
timotimo then you execute "strace -o logfile.txt ./perl6-m tools/build/... ..."
RabidGravy so now to build it in hardware
Xliff MadcapJake, FWIW this seems to work:
sub myhtml_tree_init(
Pointer[TreeStruct],
Native_MyHTML
) is native(&lib) returns int32 {*}
15:01 Vlavv_ joined, sena_kun joined
hotel timotimo gist.github.com/HotelCalifornia/1b...07447b97d1 15:02
sena_kun Is IO::Spec OS-independent and it doesn't matter which one(Unix/else) I will use? 15:03
timotimo >:(
how are you supposed to debug stuff on "ubuntu on linux" if you can't strace?
hotel shrugs
and it's ubuntu on windows lol 15:04
timotimo i suppose there's probably some alternative tool that does the same thing for UoW
Xliff MadcapJake, gist.github.com/Xliff/b079adbbb9e4...a4f5681cb8
hotel according to apt, strace is already the newest version
timotimo drmemory.org/strace_for_windows.html - ? 15:05
hotel ^^
Xliff It still throws a SEGV, but that is in libmyhtml, now. Still not sure if there is something funky in the initialization, though.
sena_kun I can use methods from IO::Spec::Win32 on gentoo linux, for example, but is it really sane/normal to use any of classes then?
MadcapJake Xliff: well that's a good start! Thanks! I'll finish moving this all out and then give it another go. 15:06
RabidGravy sena_kun, use $*SPEC
Xliff MadcapJake, kk. 15:07
sena_kun RabidGravy, thanks.
RabidGravy it should always give you the most appropriate
timotimo hotel: my ideas end here :)
hotel well, thanks for helping
timotimo you can put lots of debug prints into the install-core-dist.pl file 15:08
and narrow down the failing piece of code a bit more
stmuk strace is an evil hax0r tool not required in the "enterprise" :)
Xliff stmuk: I ♥ strace. As long as you don't tell the CTOs it's being used, we're all fine. 15:10
hotel well according to the error, make failed at rakudobrew line 58
Xliff What they don't know won't hurt them.
timotimo you're looking at the wrong line there
hotel hm
oh?
timotimo see, it just executes "configure + make install" in the shell
hotel oh
that's /helpful/
timotimo the --make-install flag tells configure.pl to execute "make install" when it finishes configuring stuff 15:11
you're looking at the proper error above that
"failed to write string to stream: bad file descriptor"
hotel oh good point
timotimo is your hard drive 100% full perhaps?
sata cable cut? 15:12
hotel laptop
timotimo *shrugs*
15:12 luis joined
timotimo the problem could be *anything* 15:12
hotel puu.sh/omTGg/bedbeeb29b.png
cool puu.sh/omTLM/ae4098c20d.png 15:14
15:14 ptolemarch joined
timotimo yeah, those are binary files 15:14
you can dump them to a readable format with "moar --dump foobar.moarvm"
hotel moar --dump test.moarvm 15:15
Unhandled exception: Could not map file 'test.moarvm' into memory: FIXME
15:15 vendethiel left
hotel i don't even anymore 15:15
RabidGravy not enough memory 15:16
hotel hm
maybe windows isn't giving bash enough memory 15:17
jnthn Mapbe they didn't properly implement mmap yet :D
hotel another very real possibility
the annoying thing is that i could install perl5 the first try no problems 15:18
Xliff MadcapJake, I think I found it. My version has two MyHTML classes. 15:19
They need to be merged with MyHTML set to repr('CStruct'), not repr('CPointer')
jnthn hotel: They probably tested that. :) 15:20
hotel yeo
jnthn Since it's probably a dependency.
hotel yep***
Xliff MadcapJake, need a recharge though. Back in a while...
hotel more things should uses perl6 :<
jnthn (For a bunch of stuff)
MadcapJake ok
jnthn hotel: It'll happen, with time... :)
hotel i discovered this language 4 days ago and have decided that it is good. 15:21
p6: 'many frustrated'.say 15:23
camelia rakudo-moar 1aabef: OUTPUT«many frustrated␤»
15:23 tokomer left 15:25 pmurias joined
hotel guess it's about time to get that oil change. bbl 15:27
15:27 hotel left
timotimo i'm not sure an oil change will make perl6 build on ubuntu-on-windows 15:27
RabidGravy it might 15:28
timotimo anything is possible with windows
pmurias Xliff, MadcapJake: it seems that there is a null passed as myhtml to the tree creating function 15:29
I'm figuring it out
RabidGravy I did once use coLinux for a bit, which is basically a special Linux kernel running as a windows service
it actually worked reasonably well
pmurias is there an easy way to get the numeric value of a CPointer? 15:32
RabidGravy I thought it numified like that 15:33
but I may well be wrong
timotimo isn't that the .WHERE or .WHICH of it? 15:34
probably .WHICH, not .WHERE
m: use NativeCall; say Pointer[int8].new(0).WHICH 15:35
camelia rakudo-moar 1aabef: OUTPUT«NativeCall::Types::Pointer|63732288␤»
timotimo m: use NativeCall; say Pointer[int8].new(0).WHERE
camelia rakudo-moar 1aabef: OUTPUT«140365074797464␤»
timotimo m: use NativeCall; say Pointer[int8].new(0).Int
camelia rakudo-moar 1aabef: OUTPUT«0␤»
timotimo m: use NativeCall; say Pointer[int8].new(0).dereference
camelia rakudo-moar 1aabef: OUTPUT«Method 'dereference' not found for invocant of class 'NativeCall::Types::Pointer'␤ in block <unit> at /tmp/bxIUJuy8_k line 1␤␤»
timotimo m: use NativeCall; say Pointer[int8].new(0).deref
camelia rakudo-moar 1aabef: OUTPUT«Internal error: unhandled target type␤ in sub nativecast at sources/51E302443A2C8FF185ABC10CA1E5520EFEE885A1 (NativeCall::Types) line 5␤ in method deref at sources/51E302443A2C8FF185ABC10CA1E5520EFEE885A1 (NativeCall::Types) line 35␤ in block <uni…»
timotimo huh?
i was hoping it'd segfault to verify it's "the null pointer"
ilmari timotimo: isnt' that a pointer to a uint8 with the value 0? 15:36
pmurias MadcapJake: found the bug
ilmari s/uint/int/
pmurias MadcapJake: the problem was that MyHTML was returned from BUILD 15:37
15:37 Actualeyes joined
sena_kun I really can't change a $*SPEC.path, yes? 15:37
pmurias MadcapJake: instead of from new 15:38
timotimo ilmari: is it, though? i don't think you get a pointer *and* a memory location to point to just by running Pointer.new
MadcapJake pmurias: oh so I shouldn't use submethod BUILD with these repr classes 15:41
15:42 leont joined
pmurias MadcapJake: made a pull request 15:42
MadcapJake: BUILD was being called, it's just that it's return value doesn't end up the return value of new 15:43
jnthn pmurias: BUILD never does that 15:44
The return value of BUILD is irrelephant.
Xliff pmurias, found it already
I just haven't had a chance to get it all cleaned up.
Also found why $!tree was NULL. 15:45
And there was a parse multi that wasn't passing it to one of the myhtml_parse_* functions 15:46
But I need to apply these to a clean clone.
pmurias jnthn: yes, the code assumed that the value of BUILD was used and as such segfaulted 15:47
15:47 ptolemarch left
Xliff pmurias: Ooh! That's probably cleaner than half of the stuff I did. 15:47
pmurias docs.perl6.org/language/nativecall...d_Pointers is broken 15:48
is synopsis 21 the reference documentation for native call? 15:49
15:50 molaf joined, molaf left
pmurias CStruct is a pointer to a struct 15:50
?
15:50 molaf joined
Xliff It's a representation type. 15:51
15:51 khw joined
MadcapJake oh that's why I don't need Pointer[Tree] 15:52
jnthn pmurias: Unless embedded into another CStruct with HAS, then yes 15:53
MadcapJake so now I'm getting a seg fault in myhtml_parse_chunk but I think I'm calculating sizes wrong
jnthn: in what instance would you want to embed? if a struct in C has a field that has a type that is a struct and is not a pointer? 15:54
jnthn MadcapJake: yes 15:56
15:57 abraxxa left
jnthn struct Foo { struct Bar *baz; int lol; }; /* has Bar $.baz */ 15:57
struct Foo { struct Bar baz; int lol; }; /* HAS Bar $.baz */
15:57 _mg_ left
pmurias do we have the ability to call a function that returns a struct by value? 15:58
Xliff *hisss*
jnthn No
Xliff I need go to build hub to create a PR
MadcapJake, I think you aren't passing $!tree in one of those instances. 15:59
pmurias the docs for CStruct need fixing, had to read the tests to check what it does
jnthn That's rare, and some C compilers even whine about it "maybe not being supported widely" (though in reality it is, but I'd be surprised to see it widely used)
pmurias: Please patch the docs with your improved understanding, if you've time, or file a doc issue if not :)
MadcapJake Xliff: thanks 16:00
16:00 uruwi left
Xliff Yeah. It's taking me a while to get things cleaned up, so I'll point things out to you as you run into them. 16:00
I really wanna get this PR done, but command-line PRs are hard. 16:01
MadcapJake now I'm getting a seg fault in mcsync_lock o_O 16:02
Xliff Yes. 16:03
That's what I need to get to.
sena_kun *cough*, still can't google it. Can I add something to the $PATH or it's NYI? $*SPEC.path is strongly immutable.
Xliff MadcapJake, you need to change MyHTML to be repr('CStruct')
Add in the attributes
MadcapJake It is like that already
16:04 wtw joined
pmurias are the struct fields part of the myhtml api 16:04
?
I haven't found any proper reference docs for it but it doesn't seem to declare the struct fields in it's header 16:05
MadcapJake pmurias: yeah they technically arent
pmurias: I was able to get this working (at a basic level) just by using CPointers all around 16:06
nine_ m: BEGIN { EVAL "0" };0
camelia rakudo-moar 1aabef: OUTPUT«WARNINGS for /tmp/n_J9Z7rNDg:␤Useless use of constant integer 0 in sink context (line 1)␤»
Xliff They are definitely needed.
MadcapJake, are your latest fixes pushed? 16:07
MadcapJake now they are :D
Xliff :)
Nice! 16:09
MadcapJake++ # This is farther than I got.
Looks like something got free'd before it should have.
pmurias MadcapJake: it seems like myhtml/api.h is the public api 16:10
Xliff mcsync_lock (mcsync=0x0)
mcsync is NULL
MadcapJake pmurias: yep definitely
jnthn Xliff: If I had to guess, some init function that should be called (so set the lock up) isn't being? 16:11
Xliff jnthn, yep. My guess too. 16:12
Ahhh... nope. 16:13
MadcapJake wait, it's actually seg faulting inside myhtml_tree_destroy
Xliff It's created in myhtml_tree_init()
Yeah.
Hence my first thought that something had already been free'd when it shouldn't have been.
MadcapJake mcsync_lock segault www.irccloud.com/pastebin/n0pP23UN/
Xliff pastebin.com/0KrRvjpF <- bt with debugging enabled for libmyhtml 16:15
16:21 uruwi joined 16:31 ptolemarch joined
sena_kun Oh, %*ENV<PATH> ~= is working as I need. Great. 16:36
dalek c: 46f8d06 | (Jan-Olof Hendig)++ | doc/Type/Dateish.pod:
Fixed typo in example for method week
16:38
16:39 leont left
MadcapJake Xliff: I tried giving MCSync a CStruct repr but it didn't make an impact 16:46
figured it out 16:48
16:49 sena_kun left, uruwi left
ufobat oups, executing zef failed on appveyor ci.appveyor.com/project/ufobat/bai...ild/1.0.12 16:51
ugexe that error seems to happen randomly on app veyor :( 16:53
there is a rebuild button somewhere towards the top to rerun it 16:54
ive never been able to reproduce it on my local windows dev machine though
ufobat aye, this was the rerun ;-) 16:55
thanks for the hint, i'll push the button once gain :)
www.youtube.com/watch?v=oJDGcxAf9D8
sorry for the link :D
16:56 Vlavv_ left 16:58 Vlavv_ joined
dogbert2 hi, is anyone interested in reviewing a feeble attempt to document the 'samecase' method? 17:00
[Coke] dogbert2: suer
*sure
dogbert2 gist.github.com/dogbert17/669dbab6...51a17428e8 17:01
hopefully it's not all BS
17:01 uruwi joined
[Coke] style note: I would change "copied" on line 16 to "applied", and would insert "copy of $" at the front of line 14. 17:03
dogbert2 cool, will fix
[Coke] I would also maybe clarify what you mean "according to pattern" 17:04
17:04 _mg_ joined
[Coke] I would guess it's capital vs. not capital, but then you have underscores in your sample (and perhaps an off by one where the "a" in the first pattern is?) 17:04
17:05 vendethiel joined 17:06 ZoffixW joined
dogbert2 I went for underscores hoping they would be easier than spaces but maybe I should use something entirely different 17:07
ZoffixW m: class Foo of Int {}; say Foo.new 17:08
camelia rakudo-moar 1aabef: OUTPUT«5===SORRY!5=== Error while compiling /tmp/O6P5Th2DXA␤Method 'set_of' not found for invocant of class 'Perl6::Metamodel::ClassHOW'␤at /tmp/O6P5Th2DXA:1␤»
ZoffixW Does anyone know of an example of using `of`? I see it as a trait in the source
MadcapJake ZoffixW: subset uses 'of'
psch m: my Array of Hash $x; say $x.WHAT
camelia rakudo-moar 1aabef: OUTPUT«(Array[Hash])␤»
ZoffixW Ah, right. Thanks! 17:09
timotimo greetings dogbert2
are you the same dogbert as dogbert17?
dogbert2 yes
I should get my nicks in order I suppose
17:11 leont joined
dogbert2 [Coke]: do you think I should use something better than underscores in the second example? 17:11
17:14 RabidGravy joined
dogbert2 [Coke]: and yes, there was an off by one error in the example, fixed now 17:14
Xliff MadcapJake, what was the problem with the latest SEGV? 17:15
MadcapJake Xliff: I was freeing MyHTML before Tree 17:16
Xliff Yep! That would do it! 17:17
Any more pesky SEGVs? 17:18
17:20 Actualeyes left
ufobat ugexe, fyi. it happened again 17:26
ugexe i think it stopped happening (or at least happens less) with a more recent build of rakudo. i think it was the memory fixes jnthn did a couple of weeks ago 17:30
i dunno if those are in 2016.03 or not
17:32 Juerd joined 17:35 ZoffixW left
MadcapJake Xliff: so far that's been the last one! But I just caused a circular dependency and had to restart xD 17:35
17:35 smls joined, Actualeyes joined
Xliff MadcapJake, D'oh! I think I ran into that, too. 17:36
MadcapJake I think I'm gonna merge in my separation of native subs work as the repr classes really are limiting how much I can sugar the interface up for users
Xliff Happened last night. rakudo spawned like 30 threads and just sat there.
MadcapJake Xliff: yep, if you quickly get to a terminal and type `killall moar` you will survive but often times it's already too late :P 17:37
Xliff Well, fortunately it's a VM so I can leave it until it uses up all of the resources and dies out.
MadcapJake really hopes that gets fixed soon because I'd hate to have some new users run into it. 17:38
smls m: given [a => 2] Z 3 -> [$pair, $number] { }
camelia rakudo-moar 1aabef: OUTPUT«Too few positionals passed; expected 2 arguments but got 1 in sub-signature␤ in block <unit> at /tmp/AgbkGnwiPY line 1␤␤»
smls ^^ What's going on here?
MadcapJake Xliff: mine makes my desktop completely unusable
Xliff MadcapJake, :(
MadcapJake The only thing that doesn't freeze is the mouse cursor :D
Xliff You are running on bare metal though, right? 17:39
Well... not in a VM
MadcapJake yep
Xliff Yeah. I would have been toast last night had I been running on the host.
So gotta be careful with those "use" statements! LOL!@
17:40 ZoffixW joined
MadcapJake Yep! I plan on adding a rule to P6DX that checks for circular dependencies 17:40
ZoffixW m: my %h = foo => 'bar'; sub lookup ($key) is rw { return %h{$key}; }; lookup('foo') = 'meow'; say %h;
camelia rakudo-moar 1aabef: OUTPUT«Cannot assign to a readonly variable or a value␤ in block <unit> at /tmp/YFD2tJbYRb line 1␤␤»
ZoffixW m: my %h = foo => 'bar'; sub lookup ($key) is rw { %h{$key}; }; lookup('foo') = 'meow'; say %h;
camelia rakudo-moar 1aabef: OUTPUT«{foo => meow}␤»
Xliff P6DX?
ZoffixW This feels like a bug, dunnit?
Xliff ZoffixW, auto-viv? 17:41
ZoffixW Xliff, I'm not following...
MadcapJake Xliff: it's a Perl 6 parser that builds autocompletions and (will soon) check linter-style rules
Xliff OOO!
lval!
You're returning the reference to the key and assigning the value. 17:42
ZoffixW The only difference between the two is the explicit use of `return` in the failing example.
Xliff Huh.
MadcapJake, nice!
ZoffixW, that does look like a bug, then.
I would expect the same behavior from both versions. 17:43
MadcapJake yeah, it's a CLI so that any editor can plug into it. So I will be writing up some atom, gedit, Gnome Builder and Sublime Text plugins that use it (if anyone wants to tackle Vim or help me with that, it'd be appreciated) 17:44
smls Xliff: Use return-rw
ZoffixW smls, thanks 17:45
smls m: f [:a(2), 3]; sub f (*@_, *%_) { dd @_; dd %_ } 17:46
camelia rakudo-moar 1aabef: OUTPUT«[:a(2), 3]␤{}␤»
smls m: f [:a(2), 3]; sub f ([*@_, *%_]) { dd @_; dd %_ }
camelia rakudo-moar 1aabef: OUTPUT«[3]␤{:a(2)}␤»
smls ^^ Why does a subsignature promote positional pair arguments to named arguments? 17:47
Is that a bug?
MadcapJake smls: because you're destructuring a list, maybe? 17:49
smls yeah but the list has two elements, the first of which is a Pair object 17:50
MadcapJake but the destructuring you do happens inside a list in the signature
in the first case, the list is gobbled up by *@_ and leaves nothing for *%_
in the second case, you place the *%_ inside the list destructurer 17:51
smls Ok, then let me rephrase: Why does list destructuring promote Pair elements to named arguments? 17:52
In my use-case this was a rather big WAT 17:53
MadcapJake it's not promoting to a named argument, it's slurping pairs into a hash
smls I want to slurp them into an array though... :)
just like any other element of the list 17:54
17:55 perlnewbie joined
MadcapJake m: f [:a(2), 3]; sub f (*@_) { dd @_; } 17:55
camelia rakudo-moar 1aabef: OUTPUT«[:a(2), 3]␤»
perlnewbie Hello: Need Opinions.
smls m: f [:a(2), 3]; sub f ([*@_]) { dd @_; }
camelia rakudo-moar 1aabef: OUTPUT«Unexpected named argument 'a' passed in sub-signature␤ in sub f at /tmp/iLVG7Le7bZ line 1␤ in block <unit> at /tmp/iLVG7Le7bZ line 1␤␤»
MadcapJake yeah that last one seems weird 17:56
smls MadcapJake: Not any more than the [*@_, *%_] case IMO. the presence of a second parameter never affects what goes into the first parameters. 17:57
17:58 sortiz joined
perlnewbie I am thinking of doing a lot of text processing. finding repeating sentences finding misspellings etc. . Would Perl 6 Grammars give me much of an advantage over python or other REGEX implementations? 17:58
MadcapJake smls: doc.perl6.org/language/list#Argumen...29_Context
perlnewbie: most definitely it would
sortiz \o #perl6
perlnewbie Can you think of an example if its not too much trouble?
smls MadcapJake: But the list is not defined in argument list context. 17:59
m: my $a = [:a(2), 3]; f $a; sub f ([*@_]) { dd @_; }
camelia rakudo-moar 1aabef: OUTPUT«Unexpected named argument 'a' passed in sub-signature␤ in sub f at /tmp/a0zXQHMJtc line 1␤ in block <unit> at /tmp/a0zXQHMJtc line 1␤␤»
MadcapJake smls: it's converted to capture upon being used as an argument
sortiz my %h = foo => 'bar'; sub lookup ($key) is rw { return-rw %h{$key}; }; lookup('foo') = 'meow'; say %h; # ZoffixW, an explicit return should be 'return-rw' 18:00
ZoffixW sortiz, thanks.
sortiz m: my %h = foo => 'bar'; sub lookup ($key) is rw { return-rw %h{$key}; }; lookup('foo') = 'meow'; say %h;
camelia rakudo-moar 1aabef: OUTPUT«{foo => meow}␤»
ZoffixW Kinda sucks `is rw` alone is not enough, since it's not needed at all when you use `return-rw` 18:01
MadcapJake perlnewbie: grammars provide a really strong organizational structure to any parsing you're doing. Just check out some of the parsers at examples.perl6.org
psch m: my %h = foo => 'bar'; sub lookup ($key) is rw { %h{$key}; }; lookup('foo') = 'meow'; say %h;
camelia rakudo-moar 1aabef: OUTPUT«{foo => meow}␤»
MadcapJake perlnewbie: also perl 6 has a new and improved regex engine that has lots of features that PCRE's don't
psch ZoffixW: why is 'is rw' alone not enough? 18:02
perlnewbie Thank you so much for your time
ZoffixW psch, well, it's not enough when you use explicit `return`. So it's a narrow usecase where you just want the last operation to be rw. If you want to be explicit or to return in the middle of the sub, you need to return-rw. So may as well just use return-rw and not bother with `is rw`. I'd expect `return` to be a `return-rw` if the `is rw` trait applied on the sub. Seems more useful and consistent. 18:04
wamba m: {{ say $_,$OUTER::_,$OUTER::OUTER::_ if 1  given 3 } given 2 } given 1 18:05
camelia rakudo-moar 1aabef: OUTPUT«321␤»
wamba m: say $_,$OUTER::_ given 2  given 1 18:06
camelia rakudo-moar 1aabef: OUTPUT«5===SORRY!5=== Error while compiling /tmp/E05HQOkcl_␤Missing semicolon␤at /tmp/E05HQOkcl_:1␤------> 3say $_,$OUTER::_ given 2  given 7⏏051␤»
smls MadcapJake: So the behavior is intended? (A [ ] sub-signature for a Positional arg doing a List->Capture conversion that promotes Pair elements to the Hash-like part of the Capture)?
psch ZoffixW: i can't think of a case where an explicit return can't be turned into an implicit return
ZoffixW: i do agree though that having return mean return-rw for any 'is rw' sub would be more convenient 18:07
smls MadcapJake: That kind of means that when you put Pair objects in datastructures, you enter a minefield... :( 18:08
MadcapJake smls: just use |
m: my $a = [:a(2), 3]; f |$a; sub f (*@_) { dd @_; }
camelia rakudo-moar 1aabef: OUTPUT«[:a(2), 3]␤»
smls m: my $a = [:a(2), 3]; f [|$a]; sub f ([*@_]) { dd @_; }
camelia rakudo-moar 1aabef: OUTPUT«Unexpected named argument 'a' passed in sub-signature␤ in sub f at /tmp/0GskrMODZI line 1␤ in block <unit> at /tmp/0GskrMODZI line 1␤␤»
smls Still doesn't help with sub-signatures 18:09
18:09 perlnewbie left
psch m: my $a = [:a(2), 3]; f [|[$a]]; sub f ([*@_]) { dd @_; } 18:09
camelia rakudo-moar 1aabef: OUTPUT«[[:a(2), 3],]␤»
psch ...probably not helpful :/ 18:10
smls MadcapJake: In my usecase, I'm trying to loop over a list where each element looks like ($string, [$pair, $string])
And would have liked to unpack those right in the loop signature
that's why the example I showed used a sub-signature 18:11
18:11 abraxxa joined, abraxxa left 18:15 _mg_ left
smls I guess we have to treat pairs like junctions: Only use them as transient objects *within* a self-contained piece of code (e.g. to construct hashes), and don't pass them across routine boundaries to other code that expects "normal" objects... :( 18:16
ZoffixW Created a ticket with the suggestion for `is rw` to have `return` => `return-rw`: rt.perl.org/Ticket/Display.html?id=127924
smls, I think they work fine, when you specify that you're expecting a Pair: github.com/rakudo/rakudo/pull/743/...3bf1c3R292 18:17
MadcapJake m: sub foo([Str $s1, [Pair $p, Str $s2]]) { dd $s1; dd $p; dd $s2 }; foo(['hello', [:a, 'world']]) 18:18
camelia rakudo-moar 1aabef: OUTPUT«cannot stringify this␤ in sub foo at /tmp/XqMrcSj4jf line 1␤ in block <unit> at /tmp/XqMrcSj4jf line 1␤␤»
MadcapJake what does cannot stringify this mean? 18:19
psch MadcapJake: you're getting something that doesn't have a .Str method
or .gist or anything really
smls ZoffixW: I don't follow. What should I be looking for in that link?
psch m: sub foo([Str $s1, [Pair $p, Str $s2]]) { say $s1.^name; dd $p.^name; dd $s2.^name }; foo(['hello', [:a, 'world']]) 18:20
camelia rakudo-moar 1aabef: OUTPUT«cannot stringify this␤ in sub foo at /tmp/G5noGGfNdk line 1␤ in block <unit> at /tmp/G5noGGfNdk line 1␤␤»
MadcapJake psch: what? the two strings and a pair have Str/gist methods
ZoffixW smls, sorry, the very top line that uses Pair in the signature. I believe MadcapJake is showing an example above
psch MadcapJake: that's the thing, they aren't Str or Pair objects
MadcapJake: note that the HOW can't even stringify itself
MadcapJake what are they then? 18:21
18:21 cdg left
MadcapJake how do I print the raw signature? 18:21
of the arguments given, not the excepted parameters
s/excepted/expected/
psch what does that mean?
ZoffixW m: sub foo([Str $s1, [Pair $p, Str $s2]]) { say $s1.^name; say $p.^name; say $s2.^name }; say &foo.signature
camelia rakudo-moar 1aabef: OUTPUT«(@ (Str $s1, @ (Pair $p, Str $s2)))␤»
smls ZoffixW: That doesn't use a subsignature though. Passing a Pair directly in a signature works fine. Only the destructuring that happens in (among other places) sub-signatures is affected.
MadcapJake psch: as in, JavaScript-style arguments 18:22
sortiz ZoffixW, The source suggest that 'return' explicitly remove any 'is rw', see: github.com/rakudo/rakudo/blob/nom/...pm#L33-L42 the details escape me.
18:23 domidumont joined
psch MadcapJake: okay. what does that mean? 18:23
i don't really know javascript
MadcapJake like, say I want to see how data is being provided to my routine, how would I look at the given arguments altogether?
18:23 dha joined
[Coke] dogbert2: underscores are fine, but I'd document why they don't do anything. 18:23
ZoffixW m: sub foo(|c) { say c }; foo(['hello', [:42x, 'world']]) 18:24
camelia rakudo-moar 1aabef: OUTPUT«\(["hello", [:x(42), "world"]])␤»
ZoffixW MadcapJake, that ^?
psch oh
ZoffixW MadcapJake, it seems like a bug. If you replace the pair with something else, the weird error disappears
MadcapJake yeah that, wish it didn't need to be a separate param list though
psch yeah, probably. we only have "all arguments as passed" if you put the capture explicitly
m: sub foo(|c [Str $s1, [Pair $p, Str $s2]]) { dd c }; foo(['hello', [:a, 'world']]) 18:25
camelia rakudo-moar 1aabef: OUTPUT«cannot stringify this␤ in sub foo at /tmp/6BUkZ62SRK line 1␤ in block <unit> at /tmp/6BUkZ62SRK line 1␤␤»
18:25 Actualeyes left
psch does help anyway :P 18:25
but yeah, i'm pretty sure that's a bug
m: sub f(*@ [Str $a]) { say $a }; f "foo"
camelia rakudo-moar 1aabef: OUTPUT«foo␤»
psch m: sub f(*@ [[Str $a]]) { say $a }; f ["foo"] 18:26
camelia rakudo-moar 1aabef: OUTPUT«cannot stringify this␤ in sub f at /tmp/C71poan59v line 1␤ in block <unit> at /tmp/C71poan59v line 1␤␤»
MadcapJake yeah I think that [Str, [Pair, Str]] should really work
psch well, i'm not completely confident that nested destructuring is a thing we do
...or rather, want to do
'cause we clearly don't do it currently... :)
smls m: f "foo", [:a(2), "bar"]; sub f ($a, |c (*@_, *%_)) { dd @_; dd %_ }
camelia rakudo-moar 1aabef: OUTPUT«[:a(2), "bar"]␤{}␤»
smls Huh, so using |c (...) instead of [...] for the subsignature, doesn't suffer from the issue 18:27
18:27 dha left
psch m: f "foo", [:a(2), "bar"]; sub f (|c ($a, @ ($p, $s))) { say "$a $p $s" } 18:28
camelia rakudo-moar 1aabef: OUTPUT«Too few positionals passed; expected 2 arguments but got 1 in sub-signature in sub-signature of parameter c␤ in sub f at /tmp/dH5_KR5H_K line 1␤ in block <unit> at /tmp/dH5_KR5H_K line 1␤␤»
ugexe m: sub foo(Int $a, $b) { say &?ROUTINE.signature }; foo(1, 2)
camelia rakudo-moar 1aabef: OUTPUT«(Int $a, $b)␤»
ZoffixW m: sub foo([Str $s1, [Str $p, Str $s2]]) { say $s1, $p, $s2 }; foo(['hello', ['x', 'world']])
camelia rakudo-moar 1aabef: OUTPUT«helloxworld␤»
dogbert2 [Coke]: I have updated the text although it's far from certain that it has improved :), take a look if you have the time 18:29
ZoffixW This is weird:
m: sub foo([Str $s1, [Str $p, Str $s2]]) { say $s1, $p, $s2 }; foo([424242, ['x', 'world']])
camelia rakudo-moar 1aabef: OUTPUT«cannot stringify this␤ in sub foo at /tmp/V1Y4E9bDPC line 1␤ in block <unit> at /tmp/V1Y4E9bDPC line 1␤␤»
ZoffixW That's the first arg being an Int instead of the Str, but error message doesn't talk about typecheck
psch i'd guess it's that the destruct throws a BOOTException or VMException 18:30
eh, probably not, those still .WHAT correctly
well, BOOTException at least does iirc
ZoffixW Ah... and I'm guessing the Pair gets interpreted as a named arg, so the Pair positional fails typecheck and that's why you get the stringify error instead of the typecheck
psch yeah, the binding into the the subsignature fails and doesn't get turned into a proper Exception 18:31
at least that's what it seems like from here, i haven't looked at destructuring or subsignature binding
18:31 ZoffixW left 18:32 dha joined
MadcapJake m: subset PairPair of Pair where {$_.key ~~ Pair}; sub foo(Str $s, PairPair $p) { dd $s; dd $p.key; dd $p.value }; foo(|['hello', :3a => 'world']) # smls 18:37
camelia rakudo-moar 1aabef: OUTPUT«"hello"␤:a(3)␤"world"␤»
MadcapJake that could be a way, instead of layering lists, store the inner list as a pair with the key being a pair, that way there's only one layer of sub-signature and your data is properly represented. 18:40
18:41 hankache joined
hankache hello #perl6 18:41
is "rakudobrew build jvm" working ?
fml i don't have jdk installed just jre! 18:43
lol
awwaiid hankache: I think it is expected to kinda-work sorta. I'm building jvm in nom now, coincidentally 18:44
hankache awwaiid i just noticed i don't have jdk installed, i am installing it and will try again 18:45
mst 0 18:46
18:46 dha left 18:47 dha joined 18:54 FROGGS joined 18:55 Ven joined 18:56 Ven left 19:02 jjido joined
[Coke] dogbert2: line 17: s/in $string/in the result/ 19:04
line 22; line up the #'s - looks good!
last time I tried (last release) It would build but not install
(jvm) 19:05
dogbert2 [Coke]: fixed, many thanks, if no one else objects I'll throw it in :) 19:06
19:09 kurahaupo joined
hankache "rakudobrew build jvm" is taking forever 19:15
leont Yeah, quite
[Coke] dogbert2: thank YOU! 19:17
psch hankache: you might be better off canceling and restarting. i just merged a PR that fixes the "builds but doesn't install" [Coke] mentioned above 19:18
[Coke] on nom or jvminterop? 19:19
psch nom, bartolin++'s PR with the NPE in sort
hankache "rakudobrew build jvm" builds nom no? 19:20
19:20 vendethiel left
psch the jvminterop branch is kinda stuck at the moment. i'm having trouble thinking my way back into all the stuff that has to be fixed there... :/ 19:20
19:24 firstdayonthejob joined 19:25 vendethiel joined
hankache psch rebuilding now 19:28
what is the status of rakudo-js? 19:29
psch now i have a new error: Unhandled exception: java.lang.RuntimeException: Missing or wrong version of dependency 'src/Perl6/Pod.nqp' 19:39
psch hankache: you need to git clean -xdf the clone you're building from
rakudobrew apparently doesn't do that
19:42 domidumont left
hankache psch where is the clone? /home/.rakudobrew ? 19:43
psch hankache: i don't use rakudobrew at all, but that sounds like a spot it could be, yeah
dalek c: f3e8184 | (Jan-Olof Hendig)++ | doc/Type/Cool.pod:
Added documentation for samecase. [Coke]++ for reviewing.
19:48 hankache left 19:52 travis-ci joined
travis-ci Doc build errored. Jan-Olof Hendig 'Added documentation for samecase. [Coke]++ for reviewing.' 19:52
travis-ci.org/perl6/doc/builds/124003334 github.com/perl6/doc/compare/46f8d...e8184f6cd6
19:52 travis-ci left
dogbert2 Hmm, 'The command "panda installdeps ." failed and exited with 1 during .' 19:53
dha I want there to be a Command Panda now. 19:54
dogbert2 find it difficult to believe that changes to a pod file led to this, must be something else going on 19:56
leont It seems my harness died with a SIGABORT (should have enabled coredump…) while doing a spectest :-/
mst leont: trout.me.uk/foom.jpg 20:05
20:09 cdg joined 20:13 kurahaupo left 20:15 kaare_ left 20:21 jjido left, dolmen joined
moritz masak: today's autopun: If I had to describe myself in one word, it would be "bad at following directions". 20:23
:-)
teatime heh, that took me a moment 20:24
El_Che :) 20:26
20:26 silug joined
dha moritz++ 20:27
20:36 dha left
masak moritz: ;) 20:39
20:40 dha joined
colomon moritz++ 20:45
20:47 perl6newbie joined
perl6newbie Camilia: if 'properly' ~~ m/ perl / { say "'properly' contains 'perl'"; } 20:48
camillia: help
msg camilia: if 'properly' ~~ m/ perl / { say "'properly' contains 'perl'"; }
msg camelia 20:49
'p6 say 4;'
masak m: say "hi, perl6newbie"
camelia rakudo-moar bd4400: OUTPUT«hi, perl6newbie␤»
geekosaur /msg camelia m: if ... 20:50
masak perl6newbie: if you want to try out camelia in private, you can privmsg her with `/msg camelia m: say "hi"`
perl6newbie m: say "hi Perl6newbie"
camelia rakudo-moar bd4400: OUTPUT«hi Perl6newbie␤»
perl6newbie thanks
m: say "if 'properly' ~~ m/ perl / { say "'properly' contains 'perl'"; }"
camelia rakudo-moar bd4400: OUTPUT«'properly' contains 'perl'␤if 'properly' ~~ m/ perl / True␤»
geekosaur ("m:" being short for "rakudo-moar:" specifying the backend(s) to use)
perl6newbie got it
`/msg camelia m: say "hi"` 20:51
masak m: if 'properly' ~~ m/ perl / { say "'properly' contains 'perl'"; }
camelia rakudo-moar bd4400: OUTPUT«'properly' contains 'perl'␤»
masak perl6newbie: without the ``
20:52 perl6newbie left 20:53 perl6newbie joined 20:56 lizmat joined 21:00 skids left
perl6newbie I installed rakudo star whats the equivilent of camelia m: (eg have it spit out the answear) 21:00
21:01 _mg_ joined
[Coke] perl6 -e "say 'do the thing'" 21:02
or, type perl6 and hit enter, and you get a REPL
perl6newbie Thanks 21:03
I realy like the this if 'abcdef' ~~ / de / { say ~$/; # de say $/.prematch; # abc say $/.postmatch; # f say $/.from; # 3 say $/.to; # 5 }; 21:04
the post match prematch stuff is neat
do you know if it is faster slower or about tye same as a lookaround asertion or if it is just a shortcut to one? 21:05
teatime hrm, I don't see how it does the same thing? 21:06
perl6newbie: p.s. panda install Readline to make the REPL better 21:07
or, wait, star probably already does that
21:07 jjido joined
perl6newbie :m teatime thank you 21:08
21:11 FROGGS left
dha teatime: I had some issue installing Readline recently, and I don't think it was in Task::Star. Has that changed, or did you mean to refer to Linenoise? 21:11
teatime no, I was talking about Readline. I had some issue too, but I don't recall what it was.
dha Ah, ok. Maybe I should try again. 21:13
21:16 skink joined
skink o/ 21:17
smls m: my $string = "aaaaa bb cccccccccc ddd eee ff"; my $width = 10; say $string.match(/. ** {1..$width} <|w> )> \s*/, :g).join("\n") 21:21
camelia rakudo-moar bd4400: OUTPUT«aaaaa bb ␤cccccccccc␤ddd eee ff␤»
smls ^^ kinda neat way to wrap a string to a fixed column width
(Not bullet-proof, but could be extended.) 21:22
perl6newbie is the / <[ a .. c 1 2 3 ]> / syntax for creating your own character class new in perl 6 21:26
smls perl6newbie: yes 21:27
perl6newbie so cool
m: camelia: say '"in quotes"' ~~ / '"' <-[ " ]> * '"'/; 21:28
camelia rakudo-moar bd4400: OUTPUT«「"in quotes"」␤»
perl6newbie m: camelia: say "this is not '"in quotes"' ~~ / '"' <-[ " ]> * '"'/;
camelia rakudo-moar bd4400: OUTPUT«5===SORRY!5=== Error while compiling /tmp/qQ98oqv3K8␤Two terms in a row␤at /tmp/qQ98oqv3K8:1␤------> 3camelia: say "this is not '"7⏏5in quotes"' ~~ / '"' <-[ " ]> * '"'/;␤ expecting any of:␤ infix␤ infix stopper␤ …»
teatime the same thing in perl5 looks like /"[^"]*"/
perl6newbie m: camelia: say 'this is not' "in quotes"' ~~ / '"' <-[ " ]> * '"'/; 21:29
camelia rakudo-moar bd4400: OUTPUT«5===SORRY!5=== Error while compiling /tmp/3bULmZm_3t␤Two terms in a row␤at /tmp/3bULmZm_3t:1␤------> 3camelia: say 'this is not'7⏏5 "in quotes"' ~~ / '"' <-[ " ]> * '"'/;␤ expecting any of:␤ infix␤ infix stopper␤ …»
perl6newbie m: camelia: say 'this is not "in quotes"' ~~ / '"' <-[ " ]> * '"'/;
camelia rakudo-moar bd4400: OUTPUT«「"in quotes"」␤»
perl6newbie m: camelia: say 'this is not in quotes "this is in quotes"' ~~ / '"' <-[ " ]> * '"'/;
camelia rakudo-moar bd4400: OUTPUT«「"this is in quotes"」␤»
21:30 khw left 21:31 khw joined
pmurias .tell hankache I'm working on fixing bugs that prevent rakudo-js from compiling the setting 21:31
yoleaux pmurias: I'll pass your message to hankache.
21:32 khw left 21:33 vendethiel left, _mg_ left, _mg__ joined, ptolemarch left 21:36 TEttinger joined, dha left 21:38 dha joined 21:39 dha left
dalek c: c92cf2c | (Zoffix Znet)++ | doc/ (2 files):
Mention/index return-rw

Closes #453
21:41
21:42 snarkyboojum joined, snarkyboojum left
perl6newbie Hey why would you write say so 'aaaa' ~~ /a ** 1^..^6/; instead of say so 'aaaa' ~~ /a ** 2..5/; Isn't the same thing? 21:47
ZoffixWin Yup
More than on way to do it :) 21:48
perl6newbie if im reading this right say so 'aaaa' ~~ /a ~~ 1^..*/ means any number of a exept a single a 21:49
i can see where the negation is helpfull there 21:50
ZoffixWin If I'm being picky: "any number above 1" (since your explanation includes zero)
perl6newbie true 21:51
grondilu or aa+
m: say 'aaa' ~~ /a a+/
camelia rakudo-moar bd4400: OUTPUT«Potential difficulties:␤ Space is not significant here; please use quotes or :s (:sigspace) modifier (or, to suppress this warning, omit the space, or otherwise change the spacing)␤ at /tmp/yut9mDM3ij:1␤ ------> 3say 'aaa' ~~ /a7⏏5 a+/…»
grondilu m: say 'aaa' ~~ /aa+/
camelia rakudo-moar bd4400: OUTPUT«「aaa」␤»
grondilu m: say 'a' ~~ /aa+/
camelia rakudo-moar bd4400: OUTPUT«Nil␤»
21:52 wamba joined
grondilu I'm surprised about the warning about spaces. I thought I could put spaces as much as I want. 21:53
maybe not between litteral characters I suppose.
Juerd The warning is wrong too. The space *is* significant: it triggers a warning. 21:54
21:55 geraud joined
perl6newbie m: camelia: say 'aa,a' ~~ / a+ % ','/ 21:55
camelia rakudo-moar bd4400: OUTPUT«「a」␤»
perl6newbie m: camelia: say 'aa,a' ~~ / a+ %% ','/ 21:56
camelia rakudo-moar bd4400: OUTPUT«「a」␤»
perl6newbie m: camelia: say 'a,a' ~~ / a+ %% ','/
camelia rakudo-moar bd4400: OUTPUT«「a,a」␤»
perl6newbie m: camelia: say 'a,a' ~~ / a+ % ','/
camelia rakudo-moar bd4400: OUTPUT«「a,a」␤»
lizmat and another P6W hits the Net: p6weekly.wordpress.com/2016/04/18/...om-dublin/ 21:58
yoleaux 16 Apr 2016 12:13Z <azawawi> lizmat: nothing so far but github.com/perl6/roast/blob/master...fication.t
ZoffixWin whoa "The line number is now mentioned when trying to use a non-existent module."... That was fixed! 21:59
21:59 travis-ci joined
travis-ci Doc build passed. Zoffix Znet 'Mention/index return-rw 21:59
travis-ci.org/perl6/doc/builds/124032342 github.com/perl6/doc/compare/f3e81...2cf2cb29ec
21:59 travis-ci left
perl6newbie m: camelia: say so 'abababa' ~~ /a .* aba/ # True 21:59
camelia rakudo-moar bd4400: OUTPUT«True␤»
perl6newbie m: camelia: say so 'abababa' ~~ /a .*: aba/ # True 22:00
camelia rakudo-moar bd4400: OUTPUT«False␤»
perl6newbie m: camelia: say so 'abababa' ~~ /a .*: aba/ # False
camelia rakudo-moar bd4400: OUTPUT«False␤»
ZoffixWin perl6newbie, camelia also supports /msg, if you wish to play with her in private
perl6newbie sorry your right
22:00 mcsnolte left
perl6newbie ussing a ":" to stop backtracking could be useful for performance 22:01
22:01 _mg__ left
grondilu m: role A { sub foo is export {...} }; import A; 22:02
camelia ( no output )
ZoffixWin lizmat++ # weekly
grondilu m: role A { sub foo is export {...} }; import A; class :: does A { sub foo { say "foo" } }; foo
camelia rakudo-moar bd4400: OUTPUT«5===SORRY!5=== Error while compiling /tmp/MEX8TRm4xL␤Undeclared routine:␤ foo used at line 1␤␤»
grondilu meh ignore that. I'm struggling to see what I want to do. 22:03
lizmat m: use Foo
camelia rakudo-moar bd4400: OUTPUT«===SORRY!===␤Could not find Foo at line 1 in:␤ /home/camelia/.perl6␤ /home/camelia/rakudo-m-inst-2/share/perl6/site␤ /home/camelia/rakudo-m-inst-2/share/perl6/vendor␤ /home/camelia/rakudo-m-inst-2/share/perl6␤ CompUnit::Repositor…»
lizmat ZoffixWin: ^^^
m: EVAL "\n\n\n\n\n\n\nuse Foo" 22:04
camelia rakudo-moar bd4400: OUTPUT«===SORRY!===␤Could not find Foo at line 8 in:␤ /home/camelia/.perl6␤ /home/camelia/rakudo-m-inst-2/share/perl6/site␤ /home/camelia/rakudo-m-inst-2/share/perl6/vendor␤ /home/camelia/rakudo-m-inst-2/share/perl6␤ CompUnit::Repositor…»
22:05 vendethiel joined
ZoffixWin lizmat, yeah :) I was trying to fix it a couple days ago and glad azawawi++ came up with the fix. 22:05
lizmat well, I think nine_ is not happy with the way it got fixed...
but at least on the outside it now works
grondilu m: role A { sub foo(A $) is export {...} }; import A; class B does A { sub foo(::?CLASS $) { say "foo!" } }; foo(B.new) 22:07
camelia rakudo-moar bd4400: OUTPUT«5===SORRY!5=== Error while compiling /tmp/uG6A9ZPlDY␤Undeclared routine:␤ foo used at line 1␤␤»
22:07 colomon left 22:08 pmurias left
grondilu m: module A { sub talk is export { say "hi" } }; import A; takl 22:08
camelia rakudo-moar bd4400: OUTPUT«5===SORRY!5=== Error while compiling /tmp/AHcXP6SOg6␤Undeclared routine:␤ takl used at line 1. Did you mean 'take', 'talk'?␤␤»
grondilu m: module A { sub talk is export { say "hi" } }; import A; talk 22:09
camelia rakudo-moar bd4400: OUTPUT«hi␤»
grondilu m: role A { sub talk is export { say "hi" } }; import A; talk
camelia rakudo-moar bd4400: OUTPUT«5===SORRY!5=== Error while compiling /tmp/4jDqBzaLnA␤Undeclared routine:␤ talk used at line 1␤␤»
grondilu can't I import from a role?
ZoffixWin Seems not. 22:10
m: package Foo { role A { sub talk is export { say "hi" } } }; import Foo; talk
camelia rakudo-moar bd4400: OUTPUT«hi␤»
ZoffixWin This works tho
grondilu it's ok. That was silly of me to put the sub in the role anyway.
lizmat m: class A { sub talk is export { say "hi" } }; import A; talk 22:11
camelia rakudo-moar bd4400: OUTPUT«hi␤»
lizmat hmmm... feels to me the import should auto-pun the role
jnthn Well, it stems from this: 22:12
m: class A { sub talk is export { } }; say A::.keys
camelia rakudo-moar bd4400: OUTPUT«(EXPORT)␤»
jnthn m: class A { sub talk is export { } }; say A::EXPORT::DEFAULT::.keys
camelia rakudo-moar bd4400: OUTPUT«(&talk)␤»
jnthn m: role A { sub talk is export { } }; say A::EXPORT::DEFAULT::.keys
camelia rakudo-moar bd4400: OUTPUT«Could not find symbol '&DEFAULT'␤ in block <unit> at /tmp/HeQY91Otzv line 1␤␤Actually thrown at:␤ in block <unit> at /tmp/HeQY91Otzv line 1␤␤»
jnthn And that is because the body of a role is generic
So there's no unique sub to import
lizmat hmmm... 22:13
jnthn (Consider `role A { sub talk is export { say $?CLASS } }`
RabidGravy presumably:
m: role A { our sub f() { } }
camelia rakudo-moar bd4400: OUTPUT«5===SORRY!5=== Error while compiling /tmp/CN0oargHkn␤Cannot declare our-scoped sub inside of a role␤(the scope inside of a role is generic, so there is no unambiguous␤package to install the symbol in)␤at /tmp/CN0oargHkn:1␤------> 3role A { o…»
RabidGravy yeah 22:14
jnthn Maybe "is export" on a sub in a role should say the same thing
I'm pretty sure punning - at least as it stands today - wouldn't actually do it 22:15
Might be twisted into doing it
Though I have a slight suspicion there'd be some surprise lurking there too
22:16 geekosaur joined
RabidGravy I'd go with the error 22:16
jnthn It's the conservative option at the very least. :) And wanting it to work my signal confusion anyway. 22:18
*may
grondilu I'm still thinking about how I'll do code generation for my Versor module. I'm considering making a role with a bunch of unimplemented methods or operator subs, exporting them, and them implementing this role with classes defined by EVAL'ed strings. 22:20
FYI: github.com/grondilu/versor.p6 22:22
it's something I really want to do eventually but it's kind of complicated. Any advice welcome.
I gave up on a straightforward translation from javascript as the code generation part was too confusing. But now that I made it more perlish I still struggle to see how I'll do the code generation part. 22:24
I'll definitely use EVAL at some point but it's not simple.
22:25 vendethiel left 22:30 lizmat left, ipad8282 joined 22:31 colomon joined, colomon left, smls left
ipad8282 p6: say "hello"; 22:33
camelia rakudo-moar bd4400: OUTPUT«hello␤»
22:39 ipad8282 left 22:40 dolmen left
grondilu oh I think I made something that I can use: 22:44
m: role A {}; sub postfix:<!>(A $a) { $a.exclam() }; my $b = EVAL 'class :: does A { method exclam { say q{hi} } }'; $b.new!
camelia rakudo-moar bd4400: OUTPUT«hi␤»
grondilu m: EVAL 'class A {}'; A.new # kind of disappointing that this does not work but I kind of understand why 22:46
camelia rakudo-moar bd4400: OUTPUT«5===SORRY!5=== Error while compiling /tmp/WLwOYD1UeK␤Undeclared name:␤ A used at line 1␤␤»
22:46 kid51 joined
ZoffixWin I don't. Why doesn't it work? 22:47
22:47 kid511 left
ZoffixWin m: BEGIN EVAL 'class A {}'; A.new 22:47
grondilu m: BEGIN EVAL 'class A {}'; A.new
camelia ( no output )
ZoffixWin Ah, I see 22:48
grondilu smae time
ZoffixWin You owe me a coke :)
grondilu I can't generate the code too early though as I need to do stuff in order to know how to generate it :P
but the solution my $class = EVAL 'class :: {...}' is fine. 22:49
on the other end I suppose I could create empty classes at compile time, and then augment them with MONKEY-TYPING 22:51
22:51 cpage_ joined
grondilu s/other end/other hand/ 22:52
actually no I can't do that as at compile time I don't even have the names of the classes I want to generate. 22:54
22:54 firstdayonthejob left
grondilu how could I add a new class in the current lexical scope at run time? 22:54
22:55 Actualeyes joined, cdg left
grondilu m: my \A = EVAL 'class :: { method talk { say "hi" }'; A::talk; 22:55
camelia rakudo-moar bd4400: OUTPUT«5===SORRY!5=== Error while compiling /home/camelia/EVAL_0␤Missing block␤at /home/camelia/EVAL_0:1␤------> 3class :: { method talk { say "hi" }7⏏5<EOL>␤ expecting any of:␤ postfix␤ statement end␤»
22:56 cdg joined
grondilu m: my \A = EVAL 'class :: { method talk { say "hi" } }'; A::talk; 22:56
camelia rakudo-moar bd4400: OUTPUT«Could not find symbol '&talk'␤ in block <unit> at /tmp/L15Uff8B_4 line 1␤␤Actually thrown at:␤ in block <unit> at /tmp/L15Uff8B_4 line 1␤␤»
22:56 Actualeyes left
grondilu m: my \A = EVAL 'class :: { method talk { say "hi" } }'; A.talk; 22:56
camelia rakudo-moar bd4400: OUTPUT«hi␤»
ZoffixWin neat 22:57
grondilu m: my \A := EVAL 'class :: { method talk { say "hi" } }'; A.talk;
camelia rakudo-moar bd4400: OUTPUT«hi␤»
grondilu m: my \A := EVAL 'class :: { method talk { say "hi" } }'; A::talk;
camelia rakudo-moar bd4400: OUTPUT«Could not find symbol '&talk'␤ in block <unit> at /tmp/ljPCTeKWV2 line 1␤␤Actually thrown at:␤ in block <unit> at /tmp/ljPCTeKWV2 line 1␤␤»
grondilu that's ok I realize I don't have and should not do it like that anyway. 22:59
RabidGravy I do something similar in the tests for the JSON::Infer
grondilu I'll have a look
23:00 wamba left 23:01 cdg left
skink Does this look like sane types/behavior for a password-based key-derivation multisub? 23:06
my (Buf $key, Str $salt) = argon2-keygen(Str $pwd, [params])
my Buf $key = argon2-keygen(Str $pwd, Str $salt)
23:06 khw joined
ZoffixWin If [params] are optional named arguments, sure :) 23:10
skink mhm 23:16
I think perhaps $salt in this case may actually be better off as a Buf, since a user would be more likely to be dealing with blobs in general 23:17
Like writing the salt into the header of an encrypted file, or what have you
23:19 bigperl1984 joined
timotimo RabidGravy: i'm having some fun with sunvox :) 23:21
RabidGravy yay!
timotimo i'm not really making things that sound good melodically, but tweaking generator settings and adding filters and such is fun 23:22
i even sampled a "meow" (no, not one the cat made. one i made) and played that. but it sounded uninteresting
RabidGravy groovy
timotimo but the drumkit instrument kind of sucks 23:23
ZoffixWin Whatchya guys talking about?
timotimo musics
also, what sense does it make to create an "acid base"?
bigperl1984 try barking. much more fun
RabidGravy the classic acid bass is a square wave with a 24db/octave with high resonance around a certain range and the filter cut-off somewhat asymmettric to the amplitude envelope 23:26
^ filter
23:27 bigperl1984 left 23:33 jjido left 23:37 spider-mario left 23:38 tailgate joined
tailgate can I store an infix function in a variable? How can I use one in a statement? 23:39
23:41 tardisx joined
leont You can store a function in a variable, and call it as a function 23:41
timotimo you can access an infix operator as an object with its "long name" syntax, like this:
leont The infix is just a funny syntax for it
timotimo m: my $the-addition-operator = &infix:<+>; say $the-addition-operator(10, 99) 23:42
camelia rakudo-moar bd4400: OUTPUT«109␤»
timotimo alternatively, infix operators can be referred to with a shorter syntax:
m: my $the-addition-operator = &[+]; say $the-addition-operator(10, 99)
camelia rakudo-moar bd4400: OUTPUT«109␤»
RabidGravy or even 23:43
m: my &the-addition-operator = &[+]; say the-addition-operator(10, 99)
camelia rakudo-moar bd4400: OUTPUT«109␤»
RabidGravy timotimo, though it's just get an x0xb0x as software rarely does the weird non-linear behaviour of the 303 diode ladder filter justice ;-) 23:50
skink ZoffixWin, Agh, not so simple it seems. hash_raw() returns only the key without a header, hash_encoded() returns the header plus the salt/key base64'd together 23:51
For the type of interface I mentioned earlier, with the former I'd have to construct the header myself or create a class or something, with the latter some weird decoding and subbuf stuff 23:52
RabidGravy anyhow time to crash toodles
23:56 perl6newbie left, RabidGravy left
timotimo RabidGravy: excuse me, what? 23:56
oh snap, just missed 'em
23:58 M-Illandan left