»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend! Set by moritz on 22 December 2015. |
|||
00:03
firstdayonthejob left
00:05
yqt left
00:10
cdg left,
cdg joined
00:14
johndau joined
00:16
cdg left
|
|||
lucs | class Foo { has $n } ; class Bar is Foo { 「new should simply return an instance with $n set to 42」 } # How do I BUILD (I suppose) this? | 00:20 | |
timotimo | you can call self.Foo::new(:n(42)) if you want | 00:22 | |
as in, from Bar's method new | |||
lucs | Hmm... | 00:23 | |
(trying) | |||
Xliff | SrKeys, that gave me a migraine, dammit! | 00:25 | |
SrKeys | lmao | ||
Xliff | I'm not yet up to the changes in map, and deepmap? WTF? | ||
And flat? Are you trying to say something derogatory about certain women? | |||
Shame on you, sir! | |||
00:26
BenGoldberg joined
|
|||
SrKeys | no i'm just trying to say 'ayy lmao' | 00:26 | |
Xliff | Well you got me to do that, sir. | ||
Xliff doffs hat. | |||
Of course, my laugh was more pronounced like "Aaaaaieeeee!" | |||
lucs | timotimo: Yep, thanks. | ||
Xliff | SrKeys, You know... you could always have done "say 'ayy lmao'" -- but where's the fun in that? | 00:27 | |
SrKeys | exactly | ||
Xliff | Hay. It's been a good day. I made an Amen break in Hydrogen. | 00:28 | |
Xliff loves the Amen break. | |||
diakopter | *BLINK* | ||
00:29
Ben_Goldberg left
|
|||
TEttinger | Xliff: sped up, slowed down, whatever it is it sounds like... a thing | 00:40 | |
Xliff | TEttinger, I very rythmic thing. | ||
s/I/A/ | |||
www.youtube.com/watch?v=qwQLk7NcpO...l=malminho | 00:41 | ||
timotimo | hmm. i wonder how we'd expose OOB message bytes to users of our sockets | 00:42 | |
Xliff | It's one of those things I've always wanted to replicate in a drum program. But first I needed the right drum program.xA0Then I needed the right samples. | ||
00:42
synopsebot6 left,
synopsebot6 joined
|
|||
Xliff | Then I needed to program it all. | 00:42 | |
Today I accomplished all three. | |||
*yay* | |||
timotimo | neat :) | ||
Xliff | And who'd have guessed the secret was #perl6? | 00:43 | |
00:43
Actualeyes joined
|
|||
TEttinger | nice! | 00:44 | |
www.youtube.com/watch?v=P9NWXe9mHNY | |||
Xliff | Ooh! The warble. | ||
TEttinger | lots of good drum sampling in that | 00:45 | |
Xliff | But oh, the pattern programming! | ||
O_O | |||
TEttinger | heh | ||
Xliff throws his hands up and starts bopping his head, instead. | |||
I could not imagine doing this by hand. | 00:46 | ||
This requires drum pads. | |||
00:47
jameslenz left
00:52
nienacko_ joined
00:53
nienacko left
00:58
spider-mario left,
wamba left
|
|||
timotimo | wow, tcp oob is pretty much uesless :\ | 00:59 | |
01:05
lizmat left
01:07
lizmat joined
|
|||
Xliff | timotimo: Wow. Even trying to read about TCP OOB is useless! =) | 01:08 | |
timotimo | yeah, potentially because nobody cares about it | ||
Xliff | Bingo | ||
timotimo | all it can really do is tell you up front "there's going to be a single byte of OOB information coming up some time soon!" and where exactly that OOB was inserted in the stream | 01:09 | |
Xliff | www.gnu.org/software/libc/manual/ht...-Data.html | ||
timotimo | i read that, too | 01:11 | |
it wasn't terribly helpful | |||
Xliff | Well, thank god. I can stop reading, now. | 01:12 | |
Man, I just love it when corporations remove useful data from the internet. | 01:14 | ||
AlexDaniel | chrs?? | 01:15 | |
Xliff | Then I have to hit the Wayback Machine and hope. | ||
web.archive.org/web/20090228185102...03s07.html | |||
AlexDaniel | m: say ‘hello world’.chrs | ||
camelia | rakudo-moar 72ba5a: OUTPUT«This type cannot unbox to a native integer in block <unit> at /tmp/d7kh4ACv_I line 1» | ||
AlexDaniel | aah | ||
m: say (50, 60, 60).chrs | 01:16 | ||
camelia | rakudo-moar 72ba5a: OUTPUT«2<<» | ||
AlexDaniel | m: say (Inf).chrs | ||
camelia | rakudo-moar 72ba5a: OUTPUT«This type cannot unbox to a native integer in block <unit> at /tmp/SmdxV925rN line 1» | ||
AlexDaniel | m: say (-10).chrs | ||
camelia | rakudo-moar 72ba5a: OUTPUT«chr codepoint cannot be negative in block <unit> at /tmp/jHtVndttHo line 1» | ||
AlexDaniel | fine. | ||
m: (999999).chrs.say | 01:17 | ||
camelia | rakudo-moar 72ba5a: OUTPUT«» | ||
AlexDaniel | m: [[97, 98], [99, 100, [101, 102, 103]]].chrs.say | 01:20 | |
camelia | rakudo-moar 72ba5a: OUTPUT«This type cannot unbox to a native integer in block <unit> at /tmp/XJuD72avfe line 1» | ||
AlexDaniel | star: [[97, 98], [99, 100, [101, 102, 103]]].chrs.say | ||
camelia | star-m 2016.01: OUTPUT«a bc d e f g» | ||
AlexDaniel | Hmm… | 01:21 | |
01:24
geekosaur left
01:25
vendethiel joined
01:26
geekosaur joined
01:46
vendethiel left
|
|||
BenGoldberg | The sole and exclusive use of tcp oob that I know of is within telnet, when you press the break key on your keyboard. | 02:01 | |
geekosaur | tcp oob isn't really oob, so it's kinda useless for most things you'd want to use oob for | 02:02 | |
02:08
mr-foobar left
|
|||
BenGoldberg | It's use in telnet kinda makes sense. Let's suppose you accidentally typed 'cat really_long_file' ... if you typing control-c did nothing more than kill the 'cat' process, you still might end up with many unwanted pages of data scrolling up your terminal. But by using an oob byte (one in each direction), and discarding everything prior to the oob byte, less is displayed and the problem is reduced. | 02:09 | |
geekosaur | well, yes, as long as you only need to do it once | 02:10 | |
BenGoldberg | If you send a second oob signal over tcp, the recipients oob pointer is altered from the first location to the second, so more bytes of unwanted data get discarded. | 02:12 | |
Of course, if you send a couple of oob bytes, the location of that earlier one is forgotten, which could be a bad thing, if we were doing anything other than discarding stuff.. | |||
geekosaur | exactly | 02:13 | |
this is not OOB, this is a hack that is more or less only useful for telnet | |||
02:14
cdg joined,
mr-foobar joined
02:18
molaf_ left
02:25
tmch joined
02:26
shicheng left
02:29
cdg left,
kid511 left
02:37
tmch left
02:38
semigloss joined
02:43
shicheng joined
02:45
ilbot3 left
02:47
ilbot3 joined
02:49
noganex joined
02:52
noganex_ left
02:55
kalkin- left,
kalkin-_ joined
02:59
cdg joined
03:00
sno left,
sno joined,
perturbation left
|
|||
Xliff | Does Perl6 have a module that groks XPath? | 03:17 | |
Hopefully XPath2? | |||
Please? | |||
03:17
khw joined
|
|||
AlexDaniel | Xliff: Not yet, as far as I can see | 03:21 | |
I've also found this: github.com/supernovus/perl6-xml-xpath hehe :) | |||
Xliff | There are some on github using the same namespace. | ||
XML::XPath -- one for Xpath 1.0, the other for XPath 2.0 | |||
XPath 2 - github.com/fjwhittle/p6-xml-xpath | |||
XPath 1 -- github.com/supernovus/perl6-xml-xpath | 03:22 | ||
AlexDaniel | oh, interesting | ||
Xliff | Which sucks because I had a thought about doing something with Perl6 and XPath 2 to get my feet wet. | 03:23 | |
Although maybe I can get away with XPath 1 | 03:24 | ||
AlexDaniel | Xliff: well, if you want to get your feet really wet then you can try that module by fjwhittle | ||
Xliff | I may try both, although I might suggest that fjwhittle rename his to XML::XPath2 | 03:25 | |
AlexDaniel | Xliff: last commit Jun 29, 2015 – which is before the release, and, if I am not mistaken, pre-GLR | ||
Xliff | Might put in a pull request for that. | ||
pre-GLR? | |||
AlexDaniel | Xliff: which means that this modules will not run as is | ||
this module* | |||
well, the chances are not high :) | 03:26 | ||
Xliff: yeah, great list refactoring | |||
Xliff | Yikes! And the XPath1 fromn supernovus is later than that! | ||
s/later/earlier/ | |||
AlexDaniel | Xliff: well, if you look closely there's nothing in that repo | ||
just a readme… | |||
Xliff | LOL | ||
I didn't get that far... no.... :P | 03:27 | ||
AlexDaniel | which is why I said “hehe :)” :) | ||
Xliff | =P =P | ||
Xliff facepalms | |||
AlexDaniel | Xliff: OK so there were some huge changes in the way the lists are handled (like what flattens and what doesn't) | 03:28 | |
Xliff | This looks more promising though... github.com/supernovus/perl6-xml-query | ||
AlexDaniel | Xliff: so some pre-GLR code requires some tiny changes. Like, sometimes you have to add “flat” | ||
Xliff | And I still say that having a "flat" operator may be insulting to some females. | 03:29 | |
And males too! | |||
=-D | |||
AlexDaniel | m: say 42.69.nude.flat | 03:30 | |
camelia | rakudo-moar 72ba5a: OUTPUT«(4269 100)» | ||
Xliff | And "nude" too? | ||
Perverts!! | |||
03:32
noganex_ joined
|
|||
AlexDaniel | m: say ‘x’ leg ‘y’ # :) | 03:32 | |
camelia | rakudo-moar 72ba5a: OUTPUT«Less» | ||
03:33
BenGoldberg left
|
|||
TEttinger | best not mention rack-mounted servers | 03:33 | |
Xliff | We want MOAR leg, not LESS! | 03:34 | |
So supernovus aparently hangs around here, sometimes. | |||
!seen supernovus | |||
03:35
noganex left
|
|||
Xliff | .seen supernovus | 03:35 | |
yoleaux | I saw supernovus 28 Dec 2015 18:21Z in #perl6: <supernovus> At some point I should look at rakudobrew to replace my moon script that I've been using for the last 4 years. | ||
AlexDaniel | m: say ‘ant’ leg ‘spider’ # oh look! An operator that counts the number of legs! | 03:37 | |
camelia | rakudo-moar 72ba5a: OUTPUT«Less» | ||
SrKeys | ?p6> ('z' leg 'a').subst('re', 'ar').say | 03:38 | |
m: ('z' leg 'a').subst('re', 'ar').say | |||
camelia | rakudo-moar 72ba5a: OUTPUT«Moar» | ||
SrKeys | always use the wrong command in the wrong channel | ||
03:39
semigloss left
|
|||
Xliff | Heh. | 03:47 | |
Well. Thought XML::Query might have been a good replacement, but that too is written by supernovus. At least that one is in the ecosystem, but it is not compiling. | 03:48 | ||
Rather. It's failing tests. | |||
AlexDaniel | Xliff: by the way, what are you trying to do? | 03:50 | |
03:50
labster1 joined,
labster left
|
|||
Xliff | AlexDaniel: I'm just randomly thinking about something to work on and trying to find modules to help. | 03:51 | |
One of the things I was thinking about doing was updating an old project that used regular expressions to screen scrape. | 03:52 | ||
Replacing the extraction algorithm with something more modern. | |||
AlexDaniel | so you're actually parsing HTML? | 03:53 | |
then use Gumbo | |||
04:02
cdg left
04:05
vendethiel joined,
nowan left
04:07
nowan joined
04:11
MadcapMobile joined
|
|||
Xliff | AlexDaniel, Gumbo? Will look into it. | 04:12 | |
AlexDaniel | yeah, github.com/Skarsnik/perl6-gumbo | ||
Xliff | Looking now. | 04:13 | |
Although, at first blush, I -really- don't like the syntax. | |||
Too used to XPath and jQuery, I guess. | |||
And filtering only on one attribute is the real deal breaker. | 04:16 | ||
MadcapMobile | Xliff: how do you mean? | 04:17 | |
Xliff | Gumbo is a tag based filter, and will only allow you to filter one attribute of that tag. | 04:18 | |
So you can't get all elements of the same class, regardless of tag. | |||
At least I think that's what I'm reading. | |||
parse-html(Str $html, :$nowhitespace, *%filters) | 04:20 | ||
So does this match the above signature? - "parse-html($html, :TAG<p>, :SINGLE);" | |||
Nevermind. $nowhitespace isn't given so everything after $html is slurped into %filters | 04:23 | ||
This is going to take some getting used to. | |||
MadcapMobile | github.com/google/gumbo-parser/blo...nks.cc#L33 | 04:24 | |
Xliff: ^ looks like you can find any attribute | 04:25 | ||
Xliff | Yes, but what if I want to filter based on -2- attributes? | 04:26 | |
The docs aren't quite clear on that. | |||
MadcapMobile | you would do two separate calls to gumbo_get_attribute (or whatever the P6 wrapped equiv is), that'd be something great to provide in perl6-gumbo actually (not played with it yet though) | 04:27 | |
Xliff | Would like to do something as simple as: | 04:28 | |
$xmldoc.root.elements(:TAG<div>, :class<mainDiv>, :name<element-*>) | 04:29 | ||
Although :name<element-*> might be asking too much | |||
Also would need positional concepts. You don't know how useful the following construct is when dealing with the DOM | 04:31 | ||
$('div ul li.myClass') | 04:33 | ||
skids | It will be very interesting to see how DOM idiomizes in Perl6, and we'll probably see that soon with -js looming. | ||
Xliff | -js? | ||
skids | rakudo-js | ||
Xliff | Oooooo | ||
Yes. Veeery interesting. | |||
MadcapMobile, put simply, I want to have flexible selectors and Gumbo might be a start but will probably not do everything I need. | 04:34 | ||
Not even close since it doesn't do positional filtering. | |||
$('div ul li.myClass') -> Return all <LI> nodes with class "myClass" that is inside a UL. That UL must be inside a DIV. | 04:35 | ||
Note that between the DIV and UL and the UL and LI, any number of containing tags may be included since we aren't using the ">" selector. | 04:36 | ||
MadcapMobile | yes your idea sounds really neat, I'm not knowledgeable enough on Gumbo nor the wrapper to tell you whether that'd be easy, I'm in the midst of wrapping MyHTML which this is all great insight into how the high-level P6 api should work | ||
Xliff | :) | ||
MadcapMobile | so essentially you'd like to use css selector language? ala jQuery | 04:37 | |
04:39
skids left
04:40
isBEKaml joined
|
|||
Xliff | Doesn't have to be. XPath would work. | 04:44 | |
Heck, I could even deal with a programmatic API as long as there's enough syntactic sugar so I don't have to remember the whole spec. | 04:45 | ||
04:45
isBEKaml left
|
|||
MadcapMobile | It'd be neat to map that to a 6y API, 6y definitely wouldn't be a string-based DSL but maybe something hash-like: S(div => ul => li.myClass) | 04:45 | |
Xliff | $xmldoc.root.find('a', :class<neat>).find('ul', :class<not>).find('b') -- Returns the jQuery equivalent of $('a.neat ui.not b') | 04:46 | |
04:47
khw left
|
|||
Xliff | Mind you I] | 04:48 | |
I'm mixing metaphors from the various projects I've looked at, today. | |||
MadcapMobile | that's not too bad for a wrapped C library, the sugary versions should be a module out from the C wrapper, I think | ||
04:50
tmch joined
04:53
MadcapJake left
04:54
MadcapMobile is now known as MadcapJake
|
|||
Xliff | I'm getting sick of all of these mobile games that want to shove ads in your face (for their shit or someone else's) every 5-10 seconds. | 04:58 | |
Big Fish games are the worse. I am getting sick of seeing the Facebook "F" everywhere. | 04:59 | ||
AlexDaniel | m: say (^99999999999999999999999999999)[999999999999999] | 05:00 | |
right… | |||
skids++ | 05:01 | ||
camelia | rakudo-moar 72ba5a: OUTPUT«(timeout)» | ||
Xliff | MadcapJake, wrapping " myhtml_get_nodes_by_tag_id(tree, NULL, MyHTML_TAG_TITLE, NULL);" into something useful might not be that hard. | ||
He says... with tongue firmly in cheek. | |||
AlexDaniel, I put that in my perl interpreter. How many years should I have to wait until it finishes? | 05:02 | ||
AlexDaniel | Xliff: it seems like after this patch you will get the answer instantly: github.com/rakudo/rakudo/pull/728 | 05:03 | |
Xliff | Oh, SPIFF | ||
Lemme see if I can pull that now. | 05:07 | ||
SrKeys | m: my &pretty-list = *.join(', ').trans(/', '(\w+)$/ => {", and $0"}); say "I'm " ~ pretty-list <cool great cool> | 05:08 | |
camelia | rakudo-moar 72ba5a: OUTPUT«I'm cool, great, and cool» | ||
SrKeys | the code doesn't lie | ||
05:09
vendethiel left
|
|||
MadcapJake | Xliff: Once I sit down and put a couple more (2-4 really) hours into it (HTML::MyHTML), I should have the bindings and some low-level wrappings done. Then I was planning on doing some kind of high-level module that gives you the spiffy/sugary wrapping in the vein of jQuery (maybe called 6Query/sixQuery?). | 05:11 | |
AlexDaniel | sexQuery | ||
MadcapJake | o_O that might be a bit too provocative! | 05:12 | |
AlexDaniel | just a little bit | ||
again, how do I make an infinite list of one same element? | 05:13 | ||
MadcapJake | :P I was thinking of even finding a symbol that I could commandeer into the jQuery-style `$('string of css selectors')` | ||
AlexDaniel: « 1 xx Inf »? | |||
05:14
vendethiel joined
|
|||
Xliff | "sexQuery" too provocative for a language with "flat" and "nude" functions? | 05:16 | |
Seriously? | |||
-_o | |||
MadcapJake | lol | ||
maybe I could use ¢ or ¤ as they are both easily reachable unicode (a2 & a4) and would evoke that jQeury vibe | 05:18 | ||
Xliff | Now that I'm running WinCompose, I'm surprisingly OK with that. | 05:19 | |
c/ | |||
xA2 | |||
05:19
synopsebot6 left
|
|||
Xliff | See? | 05:19 | |
05:20
synopsebot6 joined
|
|||
Xliff | I don't know what that second symbol was... | 05:20 | |
MadcapJake | nice! that's really easy, I need to setup compose | ||
Xliff | I need a cheatsheet for my cheatsheet. | ||
MadcapJake | it's the generic currency symbol and apparently it's even on some european keyboards! | ||
Xliff | ě | 05:21 | |
Hummm... this font might not have the right glyps | |||
=l | |||
₤ | 05:22 | ||
That's L=, not =L | |||
AlexDaniel | m: my @l = <one two three four>; say [~]((@l.reverse Z ‘ and ’, |(‘, ’ xx ∞)).flat.reverse[1..*]) | ||
camelia | rakudo-moar 72ba5a: OUTPUT«one, two, three and four» | ||
AlexDaniel | that's not too short | ||
SrKeys: ↑ | 05:23 | ||
Xliff | Whoot! | ||
MadcapJake | Xliff: try « o x » or « x o » for WinCompose to get the generic currency symbol | ||
Xliff | > say (^99999999999999999999999999999)[999999999999999] | ||
999999999999999 | |||
Was instant! | |||
xA4 | |||
05:23
synopsebot6 left
|
|||
Xliff | xA4 | 05:23 | |
05:23
synopsebot6 joined
|
|||
Xliff | MadcapJake, Yup. Thanks. | 05:24 | |
MadcapJake | no prob! For a symbol I just learned about today, it apparently is common and used :P | ||
synopsebot6 seems to be having some issues | |||
SrKeys | AlexDaniel: I wasn't golfing :p | 05:25 | |
AlexDaniel | SrKeys: but… but… | ||
SrKeys: that's some regular code that I write… | |||
SrKeys | why not just | ||
(', ' xx *) | |||
instead of ∞ | |||
AlexDaniel | ∞ looks more infinite | 05:26 | |
SrKeys | fair | ||
MadcapJake | I kind of think using * there is a bit misleading as it's used elsewhere to indicate "whatever you got" | 05:27 | |
SrKeys | here it can mean | ||
whatever you need | |||
:p | |||
?p6> {grep 2..$^x-2: {[==] $x.polymod($_ xx*)}}(99).say # like this golf code | 05:28 | ||
m: {grep 2..$^x-2: {[==] $x.polymod($_ xx*)}}(99).say # like this golf code | |||
camelia | rakudo-moar 72ba5a: OUTPUT«(10 32)» | ||
SrKeys | damnit | ||
MadcapJake | lol, right just feels slightly unclear | ||
SrKeys | m: {grep 2..$^x-2: {[==] $x.polymod($_ xx*)}}(90).say # like this golf code | ||
camelia | rakudo-moar 72ba5a: OUTPUT«(14 17 29 44)» | ||
AlexDaniel | MadcapJake: synbot does not like unicode… for some reason | ||
MadcapJake: see this: github.com/tadzik/synopsebot/issues/8 | |||
SrKeys | also your thing doesn't include the oxford comma AlexDaniel | 05:29 | |
for shame | |||
MadcapJake | synopsebot6: help | ||
what does synopsebot6 do? | |||
oh tickets and what's Snn? | 05:30 | ||
synopsebot6: botsnack | |||
synopsebot6 | om nom nom | ||
AlexDaniel | SrKeys: if I had a comma there I wouldn't really need “and”! | ||
m: my @l = <one two three four>; say join ‘, ’, @l | |||
camelia | rakudo-moar 72ba5a: OUTPUT«one, two, three, four» | ||
MadcapJake | synopsebot6: S02 | ||
AlexDaniel | look! It's great! :) | ||
MadcapJake | synopsebot6: S02:12 | 05:31 | |
synopsebot6 | Link: design.perl6.org/S02.html#line_12 | ||
SrKeys | well | ||
sure | |||
but the command with and gives you all the nice | |||
while avoiding any ambiguity | |||
one, two and three could be [one, two, three] or [one, [two, three]] | 05:32 | ||
but | |||
one, two, and three is only the first | |||
s/command/comma/ | |||
05:35
vendethiel left
05:46
perlawhirl joined
|
|||
perlawhirl | hi nightshift, how are we all | 05:47 | |
05:48
Cabanossi left
05:50
Cabanossi joined
05:51
AlexDaniel left
|
|||
perlawhirl | am i able to rename a method (eg. grep) to something else... or rather, create a method that basically points to grep | 05:52 | |
SrKeys | can someone confirm that this is O(n) | 05:58 | |
{@^a.first(* > max @a[^floor @a/e]) // @a[*-1]} | 05:59 | ||
I don't want to get yelled at on codegolf | |||
(whitespace added for readability) | 06:00 | ||
06:02
CIAvash joined
06:13
shicheng left
06:21
geraud left
06:22
mr-foobar left
06:29
mohae_ left
06:30
mr-foobar joined
06:32
vendethiel joined
06:34
colomon left
06:50
wamba joined,
shicheng joined
06:54
vendethiel left
07:00
domidumont joined
07:03
cdg joined
07:04
domidumont left
07:05
domidumont joined,
araujo left,
perlawhirl left
07:07
cdg left
07:13
araujo joined
07:14
araujo left,
firstdayonthejob joined
07:15
araujo joined,
araujo left,
araujo joined
07:17
araujo left,
araujo joined
07:19
araujo left,
araujo joined
07:21
araujo left
07:22
araujo joined
|
|||
Xliff | WTF is codegulf | 07:27 | |
TEttinger | shortening code so it's in as few chars as possible | 07:28 | |
Xliff | Yeah, OK. | 07:30 | |
codegolf.stackexchange.com/question.../4827#4827 | |||
Coding for laughs. | |||
Unfortunately, my brain doesn't work that way. Too straight forwward. | |||
HOLY CRAP! Jelly is crazy! | 07:33 | ||
07:34
z8 left
07:35
sno left
|
|||
Xliff | o7 | 07:36 | |
07:36
Xliff is now known as Xliff_ZZZZ
07:42
nakiro joined
07:44
cpage_ left
07:45
cpage_ joined
|
|||
tadzik | AlexDaniel: fwiw, I have no idea who actually runs synbot and what code is it using | 07:45 | |
07:48
_nadim joined,
TimToady left
07:50
jack_rabbit left
07:53
molaf joined
07:55
TimToady joined
07:57
firstdayonthejob left,
fireartist joined
08:07
maybekoo2 joined
08:12
sno joined
08:16
abraxxa joined
08:17
darutoko joined
08:18
ely-se joined
08:22
FROGGS joined
08:24
bpmedley left,
nowan left
08:27
cpage_ left,
nowan joined
08:29
cpage_ joined
08:31
perlawhirl joined
08:33
zakharyas joined
08:34
zakharyas left
08:35
zakharyas joined
08:38
nakiro left
08:39
CIAvash left
08:41
nakiro joined,
araujo_ joined
08:43
araujo_ left
08:44
araujo_ joined,
araujo left
08:45
shicheng left
|
|||
_nadim | morning! | 08:51 | |
I wonder if eqv is implemented for Match. | |||
moritz | mlenz@mlenz-workstation:~/p6/rakudo (nom)$ git grep 'eqv.*Match'|wc -l | 08:52 | |
0 | |||
looks like a "no" to me | |||
might be a nice exercise for a new-ish-comer | |||
08:53
perlawhirl left
08:57
Gentoolman joined,
sortiz left
|
|||
Gentoolman | Hi | 08:57 | |
Is anybody there? | |||
moritz | just us bots | ||
Gentoolman | How can install rakudobrew for all users? | 08:58 | |
on a Linux | |||
moritz | Gentoolman: what I did was create a separate user account with a world-readable home directory, and installed rakudobrew there | ||
Gentoolman: and told everybody to source /home/rakudobrew/rakudobrew-bash or whatever I called that script that sets up the environment variables | 08:59 | ||
Gentoolman | moritz: But why a new user, if we can make just a new folder? | ||
in /usr/perl6 for example | |||
moritz | Gentoolman: but it's a rather atypical workflow to have rakudobrew for global installation; it's usually much better to install release into /opt/rakudo-2016.02/ etc for example | 09:00 | |
Gentoolman: rakudobrew looks in the user's home directory for files by default, so a separate user is cleaner/easier | |||
09:00
Gentoolman left
|
|||
moritz | Gentoolman: it's a also a security feature, so that if compiling rakudo ever accidentally removes files or so, it can only remove files from the rakudobrew user | 09:01 | |
_nadim | moritz: I found hat by accident when two dumps said they were equivalent but obviously not. | 09:02 | |
09:05
zakharyas left
|
|||
nine | Please do not use rakudobrew for a system wide installation. It has never been inteded for that use case. | 09:13 | |
09:13
vendethiel joined
09:17
kurahaupo_ left
09:19
kurahaupo joined
09:25
Gentoolman joined
|
|||
Gentoolman | Is there a way to install perl6 module system-wide? | 09:25 | |
moritz | Gentoolman: sure | 09:30 | |
Gentoolman: the easiest way is to install a Rakudo Star system wide, which comes with panda | |||
Gentoolman: then as a user that has write access to the system-wide installation (don't make that root; just give the files to somebody else) you can do 'panda install Math::Model' or something like that | |||
Gentoolman | I have gentoo and there r only rakudo, nqp and moarvm ebuilds. The panda ebuilds i found doesn't working | 09:31 | |
moritz | Gentoolman: rakudo.org/downloads/star/rakudo-st....01.tar.gz | 09:32 | |
building from source isn't hard | |||
Gentoolman | I know, but i need to register it in my ports system | ||
I better write a ebuild for panda | 09:33 | ||
moritz | Gentoolman: where does that need come from? | 09:34 | |
09:40
maybekoo2 left
09:43
rindolf joined
|
|||
nine | Gentoolman: Please do not use rakudobrew for a system wide installation. It has never been inteded for that use case. | 09:44 | |
Gentoolman: I would hold off on the packaging modules. There are a couple of issues that make packaging a lot harder than it should. Fixes are in the works and will take a couple of weeks and should be well worth the wait. | 09:45 | ||
09:49
dakkar joined
09:52
maybekoo2 joined
09:55
vendethiel left
|
|||
moritz | installing to a location that the package manager doesn't control (/usr/local or /opt, typically) is not too nice, but not too hacky either | 09:56 | |
09:58
donaldh joined,
trnh joined,
trnh left,
trnh joined
10:00
TEttinger left
10:01
johndau left
10:05
vendethiel joined,
bpmedley joined
10:06
ely-se left
10:14
CurtisOvidPoe joined
|
|||
CurtisOvidPoe | My apologies in advance. I’ll have a TechBeacon.com article on Perl 6 published soon, and they’ve gone with the click-bait title of ‘Why Perl 6 is the “Game of Thrones” of Programming Languages’ (in reference to a comment I made that A Song of Ice and Fire (GoT) started in 1991 and has been worth the wait, even though it’s not “finished”. | 10:15 | |
DrForr | Dun dun duhhhh duh dunn dunn... | 10:16 | |
moritz | CurtisOvidPoe: there are worse titles I could imagine :-) | 10:17 | |
CurtisOvidPoe | Makes me nervous, though. Certainly wasn’t the title I originally had, but I admit that it’s a hell of a lot more attention grabbing. | 10:18 | |
xiaomiao | CurtisOvidPoe: if I didn't know that I'd just ignore it | 10:19 | |
clickbait poop is not worth the attention | |||
:\ | 10:20 | ||
DrForr | www.youtube.com/watch?v=SVaD8rouJn0 | ||
Juerd | CurtisOvidPoe: The sad thing about clickbait is that it actually works. | ||
masak | CurtisOvidPoe: as long as we're not all dead by the end of Perl 6, I'm fine with the title | 10:21 | |
jnthn | .oO( I knew Rat.nude would come in useful for something... ) |
||
CurtisOvidPoe | masak: Heh :) | ||
masak | well, I'm fine with that too, actually. at least if it means Perl 6 survives for 700 years or something. | ||
DrForr | I'll take Tyrion's role :) | 10:22 | |
masak | how impish of you | ||
DrForr | "All men must die... who are related in any way to Sean Bean." | 10:23 | |
10:23
nadim joined,
RabidGravy joined
|
|||
moritz | .oO( John Barleycorn must die ) |
10:25 | |
10:26
_nadim left,
Gentoolman left,
Gentoolman joined
10:27
vendethiel left
10:31
_nadim joined,
araujo_ left
10:32
azawawi joined
|
|||
azawawi | hi | 10:32 | |
.seen ugexe | |||
yoleaux | I saw ugexe 22 Mar 2016 18:49Z in #perl6: <ugexe> ==>> seems like it would do what i want (but nyi) | ||
azawawi | ugexe: ping | ||
10:32
Gentoolman left
10:33
nadim left
10:34
ely-se joined
10:39
zakharyas joined
10:40
trnh left
10:43
trnh joined,
trnh left,
trnh joined
|
|||
timotimo | i'm on hack and i'd like to figure out what exact version of Net::IRC::Bot is installed | 10:45 | |
nine | > cat bin/pmversion | 10:48 | |
perl -M$1 -E "say \$$1::VERSION" | |||
timotimo | oh, duh :) | 10:49 | |
azawawi | .tell ugexe how do i force zef into fetching the latest sources for my repo... i updated META.info and tried 'zef update'. didnot work until i did a 'zef nuke StoreDir' | ||
yoleaux | azawawi: I'll pass your message to ugexe. | ||
10:50
azawawi left
|
|||
timotimo | "could not find symbol '&VERSION'" | 10:50 | |
could be because on hack, the system-wide rakudo is 2016.01 | |||
moritz | oh, nine's answer was for perl 5 :-) | ||
nine | There is a Net::IRC::Bot for Perl 6? Oh how time flies by | ||
10:51
ely-se left
10:52
trnh left,
maybekoo2 left
|
|||
timotimo | has been for quite some time | 10:54 | |
RabidGravy | timotimo, gist.github.com/jonathanstowe/0d53...b9df58d5c6 - adjust to taste | 10:55 | |
RabidGravy has snippets for everything | |||
timotimo | i wonder why i can't just panda --installed list | ||
RabidGravy: you decided to not share the first line and the first character of the "for" with me, though? | 10:57 | ||
10:57
trnh joined,
labster1 left
|
|||
RabidGravy | hahaha | 10:58 | |
it's an exercise for the reader | |||
timotimo | oh lord | ||
the "version" was last touched april 2011 | 10:59 | ||
so ... yeah ... i have "the latest version" | |||
11:08
trnh left
11:10
z8 joined
11:14
kentnl left
11:19
kid51 joined
11:29
nadim joined
11:32
_nadim left,
virtualsue joined
11:38
_nadim joined
11:39
trnh joined
11:40
nadim left
11:44
mojca joined
|
|||
mojca | I'm experiencing a failure when upgrading panda from 2015.12 to 2016.02 | 11:44 | |
cd "/path/to/panda/work/panda-2016.02" && /opt/local/bin/perl6 bootstrap.pl --prefix=/opt/local | |||
Unhandled exception: Missing or wrong version of dependency 'gen/moar/stage2/QRegex.nqp' (from 'src/Perl6/Pod.nqp') at <unknown>:1 (/opt/local/share/nqp/lib/Perl6/Pod.moarvm:<dependencies+deserialize>) | |||
timotimo | sounds like you haven't "make install"'d | 11:45 | |
mojca | If someone can help me out with this ... | ||
which part should I install? | |||
timotimo | rakudo | ||
mojca | I have MoarVM 2016.03 installed, nqp 2016.03 | ||
RabidGravy | you may get this error if you are in the rakudo build directory and run another rakudo | ||
timotimo | well, something is out of date, probably the Pod.moarvm file | ||
mojca | and rakudo 2016.02 (because there is no 2016.03 yet available) | ||
RabidGravy, I don't understand | 11:46 | ||
can I actually use rakudo 2016.02 with MoarVM/nqp 2016.03? | 11:47 | ||
timotimo | yeah | ||
mojca | And if so, should I rebuild rakudo after upgrading MoarVM from 2016.02 to 2016.03? | ||
timotimo | as long as you're fulfilling the minimum required nqp version and your nqp fulfills the minimum moarvm version you're fine | ||
mojca | the file /opt/local/share/nqp/lib/Perl6/Pod.moarvm is binary, so I have no clue whether it is outdated or not | 11:48 | |
timotimo | there are some points where you have to rebuild rakudo when your moarvm got newer | ||
mojca | ok, so I'll try to rebuild rakudo and then try again | ||
RabidGravy | [jonathan@coriolanus perl6]$ cd rakudo | ||
[jonathan@coriolanus rakudo]$ perl6 -e 'say foo' | |||
Unhandled exception: Missing or wrong version of dependency 'gen/moar/stage2/QRegex.nqp' (from 'src/Perl6/Pod.nqp') | |||
there | |||
that's what I mean | |||
mojca | is there any plan to have 2016.03 released? | ||
timotimo | you can rm -rf the whole nqp/ folder and re-install all these things | ||
mojca | ok, "perl6 -e 'say foo'" crashes with the same error | ||
I'll rebuild rakudo | |||
RabidGravy | If you are in a directory that you built rakudo in yes | 11:49 | |
DrForr | CurtisOvidPoe: Maybe throw www.youtube.com/watch?v=1CLCOvZOh1o into the comments :) | ||
lizmat | mojca: I think the plan is for today | ||
mojca | if it's going to be released today, I might just as well wait with a rebuild | 11:50 | |
I'm asking just in case: does panda also have to be reinstalled/rebuilt after upgrading rakudo? | 11:51 | ||
11:52
kid51 left
|
|||
mojca | I'm actually unable to rebuild rakudo 2016.02 | 11:52 | |
it "crashes" with "Stage parse : This type cannot unbox to a native string at gen/moar/stage2/QASTNode.nqp:863 (/opt/local/share/nqp/lib/QASTNode.moarvm:symbol)" | |||
nine | mojca: upgrade should not affect panda | ||
mojca | nine: thanks | ||
nine | mojca: all your modules will still be there | ||
mojca | in any case it seems that I'll have to wait for rakudo 2016.03 | 11:53 | |
lizmat | mojca: perhaps you need to run configure again to get the latest nqp / moar | 11:54 | |
mojca | I already have the latest moarvm and nqp | ||
and I configure from a clean directory | |||
RabidGravy | yeah, because it does work "This is Rakudo version 2016.02-200-g54ce66e built on MoarVM version 2016.03" | ||
mojca | for me it runs until "/opt/local/bin/moar --libpath="/opt/local/share/nqp/lib" perl6.moarvm --setting=NULL --ll-exception --optimize=3 --target=mbc --stagestats --output=CORE.setting.moarvm gen/moar/m-CORE.setting" | 11:55 | |
lizmat | mojca: it's just that that error feels to me like a version mismatch somehow | ||
mojca | and then Stage parse : This type cannot unbox to a native string | ||
timotimo | ...wtf? :) | 11:56 | |
mojca | I'll check the latest commit from github to see if that helps | ||
jnthn | mojca: Are you trying to rebuild it against nqp 2016.03? | ||
timotimo | oh, wait | ||
this is 2016.02, the *release* | 11:57 | ||
jnthn | Generally you've got quite a lot of slack in using future MoarVM versions from Rakudo | ||
mojca | yes, I have installed moarvm 2016.03, then nqp 2016.03 … and only then noticed that rakudo 2016.03 has not been released yet | ||
timotimo | i didn't realize thet, sorry | ||
jnthn | But NQP versions need to kmatch more closely. | ||
*match | |||
timotimo | i thought you were using latest from git | ||
mojca | no, I was using released versions only | ||
but with the latest git commit of rakudo it seems better | 11:58 | ||
nine | I can reproduce: MoarVM 2016.03 with nqp 2016.03 will give you a "Stage parse : This type cannot unbox to a native string" in rakudo 2016.02 | 11:59 | |
RabidGravy | so don't do that then | ||
mojca | I'll package the latest git commit of rakudo until new version gets released (to avoid users complaining; because I already committed an upgrade of moarvm and nqp) | 12:00 | |
timotimo | you're packaging for a distro? | ||
mojca | MacPorts | ||
I don't believe we have many users anyway | 12:01 | ||
will started the ball rolling | |||
timotimo | there's also potential users we should worry about | ||
sorry to mislead you like that ;( | |||
12:02
virtualsue left
|
|||
mojca | I'll just upgrade rakudo to a commit from git, then I hope users won't experience problems | 12:02 | |
RabidGravy | I'd guess that what's in there right now is a "release candidate" | 12:03 | |
mojca | but I should really discuss packaging of panda with you experts | ||
12:04
pierrot left
12:05
donaldh left
|
|||
mojca | and I would be really grateful if someone would look into dyncall, libtommath, libuv in MoarVM | 12:05 | |
RabidGravy | "look into" | 12:06 | |
mojca | because I had to mark a conflict between MoraVM and those three libraries, otherwise they all install the same files to the same locations | ||
timotimo | well, you can already use a system-wide installed version of at least some of the dependencies | ||
mojca | it would be great if MoarVM would install those dependencies to some private prefix, so that other software wouldn't find them there | 12:07 | |
timotimo | i don't think we're supposed to install these libraries | ||
RabidGravy | I thought it did do that | ||
mojca | I tried to use system-wide dependencies, but it lead to a number of problems | ||
and at some point I "gave up" because I wanted to get the job done | |||
and some developers advised me that many libraries are simply not new enough in their latest release | 12:08 | ||
with "perl6 -e 'say foo'" | 12:09 | ||
I now get | |||
===SORRY!=== Error while compiling -e | |||
RabidGravy | which is right | ||
psch | m: say foo | ||
camelia | rakudo-moar 176285: OUTPUT«5===SORRY!5=== Error while compiling /tmp/C8wbVjMH2EUndeclared routine: foo used at line 1» | ||
timotimo | yeah, you don'thave a foo at all | 12:10 | |
mojca | Undeclared routine: foo used at line 1 | ||
timotimo | we could of course ship "foo", "bar" and "baz" and also "quux" | ||
with some default implementation | |||
RabidGravy | when I typed that ^ I new it would fail before it started to parse | ||
mojca | ok, perl6 -e 'say "foo"' works | ||
12:10
perlpilot_ joined
12:11
perlpilot left
|
|||
mojca | I'm sorry, I've never actually used perl6, I didn't think of the example you provided me too much | 12:11 | |
12:11
colomon joined,
cpage_ left
|
|||
mojca | timotimo, yes, moarvm still ships $prefix/include/libuv/uv.h, $prefix/include/libtommath/tommath.h, $prefix/include/libatomic_ops etc. | 12:14 | |
and this is a bit annoying | |||
timotimo | yeah, that's not so good | ||
timotimo doesn't grok the build system :( | |||
12:16
virtualsue joined
|
|||
FROGGS | mojca: we dont install libtommath stuff if you configure moar with --has-libtommath | 12:20 | |
timotimo | well, at least that | ||
FROGGS | mojca: same is true for --has-dyncall and --has-libuv | 12:21 | |
mojca | I need to check, but isn't there some statement that at least some of these libraries are too old and that MoarVM includes the latest unreleased version? | ||
FROGGS | in fact, should be true for all of: --has-libtommath, --has-sha, --has-libuv, --has-libatomic_ops, --has-dynasm, --has-dyncall and --has-libffi | ||
mojca: depends on what distro you are... | 12:22 | ||
mojca | I can try to do the installation again, but the last time it started bugging me with some completely unrelated alternative dependencies | ||
I'm in my own distro :) :) :) | |||
ok, joke aside | |||
FROGGS | mojca: it is surely true for libtommath, but this might get released this year | ||
mojca | we generally provide the latest versions of released software | 12:23 | |
because there are no releases, it's a "rolling" package manager | |||
FROGGS | mojca: yes, you have to compare the versions we rely on to the versions that exist for your distro before you try to use them | ||
mojca | I can start following libtommath | ||
but this still doesn't change the fact that it' a very bad practice to install libraries to the same place where the original library would put them | 12:24 | ||
and I still believe that MoarVM should fix that | |||
wxWidgets also installs a large number of libraries, but they are all well hidden | |||
12:25
z8 left
|
|||
timotimo | right, we shouldn't put them quite as globally | 12:25 | |
mojca | for example: github.com/MoarVM/MoarVM/issues/320 | 12:26 | |
there are two examples where I was struggling to get external dependencies working (and then gave up) | 12:27 | ||
RabidGravy | I'm sure I've already made something for www.mybunnyhug.org/fileformats/pgm/ but can't find it | 12:28 | |
12:29
nowan left
|
|||
[Coke] | mojca: see #p6dev, #perl6-release - 2016.03 rakudo will be uploaded today. | 12:32 | |
(evening eastern time) | |||
we had a ticket that I thought was a blocker, but turned out to not be, and then $dayjob interfered. | 12:33 | ||
mojca | thank you | ||
12:35
virtualsue left,
wamba left
|
|||
[Coke] | mojca++ keeping macports updated! | 12:35 | |
12:35
wamba joined
|
|||
mojca | I hope you'll keep testing the packages to make sure that they don't end up in a broken state | 12:35 | |
and make some suggestions about Panda | 12:36 | ||
I really don't like the current hacky approach | |||
12:38
z8 joined
|
|||
RabidGravy | I'm sure patches would be appreciated | 12:39 | |
12:42
kent\n joined,
kent\n left,
kent\n joined
12:47
Sgeo__ left
12:49
perlpilot_ is now known as perlpilot
12:52
nowan joined
12:54
nowan left
12:56
cpage_ joined,
nowan joined
|
|||
gregf_ | m: if ( 10 < 1 ){ print "nope"; } | 12:56 | |
camelia | rakudo-moar 08a760: OUTPUT«5===SORRY!5=== Error while compiling /tmp/LSznfPQLPcMissing blockat /tmp/LSznfPQLPc:1------> 3if ( 10 < 1 ){ print "nope"; }7⏏5<EOL> expecting any of: block or pointy block» | ||
gregf_ | m: if ( 10 < 1 ) { print "nope"; } | 12:57 | |
camelia | ( no output ) | ||
gregf_ | the compiler is looking for whitespaces :| | ||
or parser | |||
psch | m: say %( a => 1, b => 2){'a'} | 12:59 | |
camelia | rakudo-moar 08a760: OUTPUT«1» | ||
psch | because that wants to work | ||
well, maybe not *only* because of that :) | |||
perlpilot | gregf_: you don't need parens there. And yes, whitespace between ) and { would be required for Rakudo to parse it correctly. | 13:00 | |
gregf_ | perlpilot: yeah, i saw that, but just for better readability | 13:01 | |
RabidGravy | Is there anything in the ecosystem that will parse "Mon, 14 Mar 2016 13:28:19 +0000" as a DateTime? DateTime::Parse doesn't quite manage it | 13:02 | |
ah DateTime::Format::RFC2822 | 13:04 | ||
13:11
cdg joined
|
|||
gregf_ | im not able to figure out why this code is failing | 13:15 | |
gist.github.com/anonymous/ee9caad3bc145cdfef37 | 13:16 | ||
do i need to instantiate Prime? can i not just call it as a class method? | |||
psch | m: gist.github.com/anonymous/ee9caad3bc145cdfef37 | ||
camelia | rakudo-moar 08a760: OUTPUT«Cannot look up attributes in a type object in method is_prime at /tmp/zfmMGEiTJi line 12 in method test at /tmp/zfmMGEiTJi line 24 in block <unit> at /tmp/zfmMGEiTJi line 29» | ||
ilmari | RabidGravy: does it handle all the date formats in youtu.be/JENdgiAPD6c?t=11m4s ? | 13:17 | |
timotimo | m: say Int.new(99) | ||
camelia | rakudo-moar 08a760: OUTPUT«99» | ||
ilmari | including comment-folding-white-space | ||
psch | m: say Int.is-prime | ||
camelia | rakudo-moar 08a760: OUTPUT«Invocant requires an instance of type Int, but a type object was passed. Did you forget a .new? in block <unit> at /tmp/QoDaxnJyqi line 1» | ||
gregf_ | hmm :| | ||
timotimo | gregf_: you have to create a new Prime instance otherwise $.start won't work | ||
gregf_ | true :|, my bad | 13:18 | |
timotimo | :) | ||
psch | similarly, an uninstantiated MyInt doesn't have a value either | ||
gregf_ | can it be made a class variable/ static? | ||
13:18
vendethiel joined
|
|||
RabidGravy | ilmari, I'm sure you can fix it to do so | 13:18 | |
gregf_ | psch: im instantiating it in the first map | ||
RabidGravy | I on the other hand only want to parse one particular format | 13:19 | |
psch | oh, right, didn#t see that, sorry :) | ||
gregf_: you could do 'my $start = 2' instead of 'has $.start is rw = 2', but then you have to reset it at the end of your is_prime | 13:20 | ||
gregf_ | ah, right | ||
psch | (you could also use CORE::<&is-prime> instead... :) ) | 13:21 | |
gregf_ | timotimo: psch: Thanks! | ||
oh , ok :) | |||
psch | m: say ^1000 .grep: *.is-prime | ||
camelia | rakudo-moar 08a760: OUTPUT«(2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 …» | ||
psch | it's probably faster, too :) | ||
13:21
mprelude_ joined
|
|||
gregf_ | hmmm | 13:22 | |
13:23
pierrot joined,
trnh left
|
|||
RabidGravy | oh dear, that module can't *parse* those dates at all | 13:23 | |
or any dates | 13:24 | ||
c'mon you slackers do I have to make everything for myself | |||
perlpilot | RabidGravy: you make everything for everyone else too :) | 13:25 | |
13:25
mprelude left,
skids joined
|
|||
DrForr | I'm guessing that the interest in is-prime is because of the recent prime-number bias that's been found? :) | 13:29 | |
RabidGravy | we need more people actually writing software | ||
psch is compiling | 13:30 | ||
timotimo | since i'm into making video games, i'm kind of blocked by performance :) | 13:31 | |
but to be fair, i've never actually maked a game yet | |||
13:31
wbill joined
|
|||
DrForr | So far my talks on web development seem to be the popular thing :) | 13:31 | |
RabidGravy | DrForr, I've noticed that the tests for Prancer only seem to test GET routes, is this because POST/PUT/DELETE don't work or you just haven't got round to it | 13:32 | |
jnthn is writing the MoarVM heap snapshot analyzer in Perl 6 *right now*! :) | 13:33 | ||
RabidGravy | jnthn++ | ||
I'm writing a thing to manage icecast servers | 13:34 | ||
but the date thing might block me | |||
jnthn | Ugh. So far I've fixed 2 perf bugs (one in Rakudo, one in Moar) that were in my way... :) | 13:35 | |
DrForr | The latter, but I'm not going to go to too much work as there's nothing in the code that distinguishes between GET and the others. | ||
timotimo | it surprises me that you actually got a performance problem out of a sync read blocking the GC | 13:36 | |
though i suppose when you're reading a line that's a megabyte or two long ... | 13:37 | ||
RabidGravy | so it's just try it and see what happens | ||
13:39
brrt joined
|
|||
jnthn | timotimo: Command line app that processes stuff while waiting for you to type a query :) | 13:40 | |
(So it might be ready when you are) | |||
timotimo | right | 13:42 | |
13:43
vendethiel left
13:46
dalek left,
vendethiel joined,
dalek joined,
ChanServ sets mode: +v dalek
|
|||
El_Che | <old man pointing at clouds mode> Go's stdlib command line handler is as weird as Perl6's: switches before arguments and anti-posix look and feel. Overwriting functions (e.g. usage) is more flexible though<cloud passed> | 13:53 | |
moritz | more flexible than allowing a custom USAGE sub? | ||
El_Che | yes, e.g. wrapping the existing function and adding stuff. Instead of replacing the complete usage funciont | 13:56 | |
(my argument is that perl6 approach is more flexible) | |||
xiaomiao | Go is quite horrible because it doesn't distinguish short and long opts | 13:57 | |
it's the little detail that create friction ... :\ | |||
El_Che | xiaomiao: I am using this: github.com/docopt/docopt.go | ||
It would be nice to see this ported to p6: docopt.org/ | 13:58 | ||
RabidGravy | feel free | ||
El_Che | looking at it now | ||
xiaomiao | El_Che: nice, but why is that not the standard ;) | ||
El_Che | xiaomiao: I feel your pain | ||
xiaomiao | El_Che: no, you don't ;) the real pain is "go get" and github together | ||
El_Che | xiaomiao: unversioned remoted github dependencies? mmm :) | 13:59 | |
xiaomiao | El_Che: we see on average 3% connection failure rate | 14:00 | |
14:00
shicheng joined
|
|||
xiaomiao | with 30 dependencies on github ... well ... bash has nice loops to force success ;) | 14:00 | |
perlpilot | Didn't Damian do something like that for Perl 5? (write your command line doc using the normal conventions and it auto-processes the command line) | ||
RabidGravy | also I'd really like Int("unlimited") to be Inf | 14:01 | |
moritz would really dislike that | |||
timotimo | we can't reasonably support Inf to be stored in Int objects | ||
14:01
shicheng left
|
|||
moritz | seems like a very English-centric thing to do when parsing strings | 14:01 | |
RabidGravy | yeah, it's just this pain in the arse data is "some integer or 'unlimited'" | 14:02 | |
14:03
khw joined
|
|||
RabidGravy | though, I'm not entirely sure that: | 14:05 | |
m: my Int $a = Int.max | |||
camelia | rakudo-moar 08a760: OUTPUT«Type check failed in assignment to $a; expected Int but got Num (-Inf) in block <unit> at /tmp/ieQWDjOhLc line 1» | ||
RabidGravy | is very useful at all | ||
perlpilot | It certainly seems counter-intuitive | 14:06 | |
lizmat | m: my Int $a = int.max; # works fine :-) | 14:08 | |
camelia | rakudo-moar 08a760: OUTPUT«Type check failed in assignment to $a; expected Int but got Num (-Inf) in block <unit> at /tmp/kkBZbpL5GA line 1» | ||
lizmat | no? | ||
14:08
vendethiel left
|
|||
lizmat | hmmm... | 14:08 | |
14:09
mkz_ left,
BinGOs left
|
|||
RabidGravy goes with some very big number instead | 14:09 | ||
14:09
zakharyas left,
[Tux] left,
timotimo left,
cognominal left,
Azry left,
ssm left
14:10
Azry joined,
Upasaka left,
cognominal joined,
TreyHarr1 joined,
Upasaka joined,
[Sno] joined,
BinGOs joined,
mkz_ joined
|
|||
lizmat | m: dd int.Range # confused it with this | 14:10 | |
camelia | rakudo-moar 08a760: OUTPUT«-9223372036854775808..9223372036854775807» | ||
RabidGravy | actually I'd be surprised if "unlimited" in this context is more than (2**32) - 1 | ||
lizmat | m: dd int8.Range # confused it with this | 14:11 | |
camelia | rakudo-moar 08a760: OUTPUT«-128..127» | ||
14:11
sjn left
14:12
mst left
14:15
Cabanoss- joined
14:18
mst joined,
TreyHarris left,
Cabanossi left,
sno left,
vytas left,
Cabanoss- is now known as Cabanossi,
vytas joined
14:20
sjn joined
14:22
timotimo joined
14:24
[Tux] joined,
ssm joined
14:25
zakharyas joined
14:27
mojca left
|
|||
skids | www.theregister.co.uk/2016/03/23/np...pad_chaos/ # What we don't want happening to our ecosystem | 14:30 | |
lizmat | well, in fact, we had that happen already... | ||
:-( | 14:31 | ||
tony-o | what did we have like that | ||
lizmat: what do you use for determining where an application is spending most of its time? IE if some loop is using most of the time the process runs, etc ? is there something like that in p6 currently? | 14:33 | ||
lizmat | tony-o: somebody pulling their modules from github and the ecosystem | 14:34 | |
because they didn't like github | |||
tony-o: wrt to profiling: --profile is your friend :-) | |||
tony-o | lizmat: oh really? i thought maybe it happened with SF left, didn't know about the github piece | ||
RabidGravy | yeah, installing from gh is a little fragile | 14:35 | |
timotimo | yes, we don't want to rely on that for much longer | ||
ilmari | ranguard and co are working on perl6 support for cpan, no? | 14:36 | |
tony-o | it seems it should work from any git - i have a server i can set up gitlabs on if you guys want some access to it | ||
i remember having an issue with bitbucket installs 2 years ago | |||
timotimo | jdv is working on something. i know that much | ||
tony-o | lizmat: the profile came out with a bunch of {{var}} stuff in it - is there something i need to do to get those values filled in? | 14:37 | |
oh, i need to be patient :-) | |||
timotimo | yeah, takes a little bit :S | 14:38 | |
lizmat | yeah, the generated HTML is usually large :-) | ||
tony-o | this is a great tool. i'm trying to figure out why a parallel testing thing i'm working on is slower than 'prove -j9' but now i can see why : | 14:40 | |
it's faster than just 'prove', at least | |||
14:41
brrt left
15:01
zakharyas left
15:03
maybekoo2 joined
15:05
mathw left
15:07
iH2O joined
15:12
AlexDaniel joined
|
|||
MadcapJake | How difficult would it be to make perl6 work with this github.com/whyrusleeping/gx | 15:14 | |
15:14
brrt joined
|
|||
AlexDaniel | well, ideally it should be possible to have non-github modules | 15:15 | |
in fact, it would be even better if it was possible to provide several mirrors | |||
Woodi | hi today :) | 15:16 | |
15:16
virtualsue joined
|
|||
iH2O | hi Woody | 15:17 | |
_nadim | im: my %a = <a 1 b 2> ; my @l = (%a<a>, %a<c>) ; @l.perl.say ; | ||
m: my %a = <a 1 b 2> ; my @l = (%a<a>, %a<c>) ; @l.perl.say ; | |||
camelia | rakudo-moar e57e63: OUTPUT«[IntStr.new(1, "1"), Any]» | ||
stmuk_ | I'd assume the ecosystem would work with gitlabs although I've not actually tried it | ||
tony-o | MadcapJake: AlexDaniel: the CUR stuff is improving and getting to a point where that is possible without CORE changes | ||
_nadim | How do I write the line above soif %a<c> doesn not exist, itis not added. IE: not get theAny on thelist. | 15:18 | |
tony-o | stmuk_: i was going to test that out in a bit | ||
MadcapJake | AlexDaniel: gx works with IPFS so each person could be a repo of modules | ||
lizmat | _nadim: what makes you think it was added ? | ||
m: my %a = <a 1 b 2> ; my @l = (%a<a>, %a<c>) ; dd %a | 15:19 | ||
camelia | rakudo-moar e57e63: OUTPUT«Hash %a = {:a(IntStr.new(1, "1")), :b(IntStr.new(2, "2"))}» | ||
AlexDaniel | m: my %a = <a 1 b 2> ; my @l = (%a<a>, %a<c>) ; dd @l | ||
camelia | rakudo-moar e57e63: OUTPUT«Array @l = [IntStr.new(1, "1"), Any]» | ||
lizmat | m: my %a = <a 1 b 2> ; my @l = (%a<a>, %a<c>:v); dd @l | ||
camelia | rakudo-moar e57e63: OUTPUT«Array @l = [IntStr.new(1, "1"), ()]» | ||
lizmat | hmmm | ||
m: my %a = <a 1 b 2> ; my @l = (%a<a>, %a<c>:v); dd @l.elems | 15:20 | ||
camelia | rakudo-moar e57e63: OUTPUT«2» | ||
_nadim | lizmat: I mean added to the list I am creating | ||
lizmat | hmmm. | ||
ok | |||
sorry, misunderstood | |||
_nadim | no problems :) | ||
lizmat | m: my %a = <a 1 b 2> ; my @l = %a<a c>:v; dd @l | ||
camelia | rakudo-moar e57e63: OUTPUT«Array @l = [IntStr.new(1, "1")]» | ||
AlexDaniel | well, you can grep it out but… | ||
lizmat | _nadim: ^^^ | ||
AlexDaniel | right! | ||
lizmat | :v will grep only existing entries out for you | 15:21 | |
_nadim | OK! | ||
15:21
iH2O left
|
|||
_nadim | what's this dd that dumps the structure? | 15:21 | |
timotimo | "dump data" | ||
MadcapJake | tony-o: that's what I was hoping! The concern I have is, can I have a package depend on an individual package/vendored directory for dependencies? so that all dependencies are internal to a module/project | ||
_nadim | timotimo: is that standard? | 15:22 | |
15:22
mohae joined
|
|||
lizmat | _nadim: yes it is | 15:22 | |
it's the tiny data dumper, so tiny it lost the t | |||
tony-o | MadcapJake: i'm not sure i'm understanding your question - the distribution stuff ugexe is working on will be able to select based on module/vendor/version/auth so that is in the works currently | 15:23 | |
the other part of your question, i don't know what that would look like from a repository side, how would you include all of the depends without explicitly packaging them as part of your module? | 15:24 | ||
_nadim | m: my %a = <a 1 b 2> ; my @l = (%a<a>, %a<c>:v) ; dd @l ; | ||
camelia | rakudo-moar e57e63: OUTPUT«Array @l = [IntStr.new(1, "1"), ()]» | ||
_nadim | lizmat: it still returns a enpty list | ||
timotimo | _nadim: you need to fix the "width of terminal makes tests either fail or pass" thing, that's super unfortunate | 15:25 | |
_nadim | timotimo: it done already ;) | ||
ranguard | ilmari: CPAN supports perl6... it's just downstream that has issues | ||
mst is looking at those I think | 15:26 | ||
_nadim | i just needed to see if it was not something else on someone else's compuer | ||
lizmat | _nadim: why are you not using the slice? | ||
%<a c>:v ? | |||
_nadim | because in reality I am using two different hashes. | ||
lizmat | ah, ok | ||
m: my %a = <a 1 b 2> ; my @l = %a<a>, %a<c>:v; dd @l | 15:27 | ||
camelia | rakudo-moar e57e63: OUTPUT«Array @l = [IntStr.new(1, "1"), ()]» | ||
lizmat | m: my %a = <a 1 b 2> ; my @l = %a<a>, |%a<c>:v; dd @l | ||
camelia | rakudo-moar e57e63: OUTPUT«Unexpected named parameter 'v' passed in block <unit> at /tmp/UhH15PHb_S line 1» | ||
lizmat | m: my %a = <a 1 b 2> ; my @l = %a<a>, |(%a<c>:v); dd @l | ||
camelia | rakudo-moar e57e63: OUTPUT«Array @l = [IntStr.new(1, "1")]» | ||
lizmat | _nadim: I guess for now you need to slip it | ||
ranguard | tony-o: not sure why people feel the need to re-implment a working distributed network with specific release control and archiving built in | 15:28 | |
ilmari | ranguard: downstreams as in (meta|search\.)cpan? | ||
Woodi | that's idiotic what Kik lawyers did... story: there is students pub/disco/club in my university town named 'Imperial'. And that club was first opened somewhere in the soc-realism era (70s probably). Of course censors intervened... "How you can name something like that ?? That's worse then capitalism !!!1". But then one of the students showed them *few* labels of products named 'Imperial', one of them was popu | ||
MadcapJake | ranguard: cpan is a distributed network? | ||
ranguard | ilmari: cpan testers / irc bots etc | ||
Woodi | lar canned fish :) so lawyers ... | 15:29 | |
... just interned-killed that Kik-something... | |||
ilmari | ranguard: ah | ||
ranguard | MadcapJake: mirrored on 235 servers around the world | ||
_nadim | lizmat: hmm, no it comes from the same hash, I was wrong. but still, it is goodto know for next time. now, what do you mean with "slip it"? | ||
ranguard | MadcapJake: metacpan.org/mirrors | ||
lizmat | prefix it with | | 15:30 | |
Woodi | 'C' is from 'Cloud' ? :) | ||
ilmari | Woodi: no, but N is for Network | ||
timotimo | _nadim: is it? i just ran "panda install Data::Dump::Tree" in a narrow terminal ("only" half of one of my screens) and it failed | ||
Woodi | ah ;) | ||
ilmari | Comprehensive Perl Archive Network | ||
it long predates "cloud" | |||
it's just a network of mirrors | 15:31 | ||
MadcapJake | ranguard: but is that really distributed? npm has mirrors all around the world too | ||
ranguard | MadcapJake: backpan never deletes | ||
ilmari | MadcapJake: and CPAN mirrors are run by disparate organisations and individuals, whereas AIUI all the npm mirrors are run by NPM, Inc | 15:32 | |
ranguard | there are at least 4 backpans that I know off, and that doesn't count the tools built around CPAN (CPAN::Mini, Carton etc) that let you run your own easily | ||
Woodi | npm use some specific license ? | ||
ranguard | this is a solved problem.. (ok, there are edges that could be better) but I've not seen a better RUNNING solution | 15:33 | |
tony-o | ranguard: what do you mean re-implement a working distributed network? are you referring to cpan? | 15:34 | |
ranguard | tony-o: yea | 15:35 | |
15:35
_nadim left
15:36
fireartist left
|
|||
tony-o | ranguard: i'm sure some of that need is the lack of gui type tools, plus it isn't 'pretty' | 15:37 | |
stmuk_ | I think CPAN can be used as a backend but the requirements for perl 6 module installation are very different to perl 5 and the devil is in the details | 15:39 | |
RabidGravy | yeah it's the tools not the storage that are at issue | ||
MadcapJake | tony-o: gx downloads packages/modules to a vendor directory in your workspace and I'd like to have perl6 compile into this vendor directory instead of the global dir, could I just dynamically change RAKUDO_PRECOMP_DIST for each workspace? | 15:41 | |
mst | I'd also note that the last time somebody tried legal shit on us, they called me in, and p3rl.org/Nagios::Plugin was the result | 15:42 | |
it helps when the people running your centralised SPOF have a spine | 15:43 | ||
tony-o | MadcapJake: in zef (at least a long time ago) i wrote in a way to override the install dir to be local to the directory (like npm does). i'd need to ask ugexe or dig through that code again to see if it still exists | ||
MadcapJake: the result was having to add a relative dir to PERL6LIB environment var IIRC and it probably got taken out as a result | 15:44 | ||
MadcapJake | tony-o: I could have the gx-perl6 tool manage the PERL6LIB var | 15:46 | |
tony-o | MadcapJake: it's most likely doable currently with a shell script, i'm not intimately familiar with gx but if were able to install a distro to a user's workspace and set their PERL6LIB var to that workspace then you'd be there | 15:47 | |
the module/auth/vers thing isn't working as expected yet, though afaik | 15:48 | ||
ranguard | tony-o: yea, people like the pretty :) | 15:49 | |
RabidGravy | it works for "use" but not in the requires of a META.info afaik | ||
ranguard | RabidGravy: well, the storage not allowing things to easily dissapear kind'a helps :) | 15:51 | |
MadcapJake | tony-o: awesome! gx provides a series of hooks for specific language tools to use (similar to npm builtin scripts) so I'd just need to do the perl6 specific stuff (compiling and changing PERL6LIB) and the gx tool will provide the interface to IPFS and the downloading | ||
RabidGravy | mst, strangely a monitoring framework is one of the things on my list | 15:57 | |
Hmm, it looks like I'm about to re-do a lot of the things that I'm doing for Sofa but for the icecast XML data rather than JSON | 16:01 | ||
TIME FOR REFACTORING! | |||
16:02
brrt left
16:03
brrt joined
|
|||
Juerd | RabidGravy: I'd love a monitoring framework based on TAP. I wrote something in p5 and I actively use it, but I kind of abandoned the project. | 16:04 | |
pastebin.com/BeyFyWpe # example of a test script I use for monitoring | 16:06 | ||
16:07
zakharyas joined
|
|||
Juerd | This is also where the idea for an 'except' operator came from (line 23: @forum except 'www.wegenforum.nl') | 16:07 | |
This thing does both ipv4 and ipv6 so every test is actually two tests, unless "no ipv6;" or "no ipv4;" is in effect. | 16:08 | ||
I've found many inconsistencies between ipv4 and ipv6 configs using this thing. | |||
ugexe | you can pick here it installs to, you just cant control where the precomp goes to | ||
yoleaux | 10:49Z <azawawi> ugexe: how do i force zef into fetching the latest sources for my repo... i updated META.info and tried 'zef update'. didnot work until i did a 'zef nuke StoreDir' | ||
RabidGravy | Looks nice | ||
go for it | |||
I'm mostly using monit these days | 16:09 | ||
ugexe | azawawi: `zef update`, or `zef update p6c` (to just update the normal ecosystem) | ||
MadcapJake | ugexe: there's no way to control where precomp goes? | ||
Juerd | RabidGravy: It's already on my wishful-thinking-to-do-list, but I'm afraid to mention tuits because someone might give me a wooden coin and except me to start working on it :P | ||
s/except/expect/ | 16:10 | ||
ugexe | MadcapJake: precomp location is determined by the CompUnit::PrecompilationRepository | ||
MadcapJake | ugexe: can I change it? :) | ||
16:10
brrt left
|
|||
RabidGravy | you can set $*REPO to something that does | 16:11 | |
ugexe | MadcapJake: you could probably subclass CURI to use a custom CU::PrecompilationRepository | ||
16:12
brrt joined
|
|||
psch | RabidGravy++ | 16:12 | |
Audio::PortMIDI is fun | |||
gist.github.com/peschwa/aaeb20debb7afb36c09b | |||
16:12
brrt left
|
|||
psch | ...note that the Positions enum clearly only fits onto ionian | 16:13 | |
ugexe | getting it to precomp to a specific location you can do realatively easy though i believe. its the actual using of the location | ||
MadcapJake | ugexe: is that a viable way to do a local set of precomps? | ||
RabidGravy | psch, that almost looks like a module you have going there ;-) | ||
ugexe | MadcapJake: for a local set of precomps you are currently stuck with using ~/.perl6 afaik | 16:14 | |
psch | Audio::DrunkPiano or what..? :P | ||
RabidGravy | :) | ||
16:14
nakiro left
|
|||
psch | RabidGravy: fwiw, i'm not really happy with... most of it | 16:15 | |
as in, i have trouble thinking of a way to make it fit onto different modes | |||
ugexe | you can direct the directory of the precomp files via the first `-I` command | ||
if you do -Ilib, it gets put in lib/.precomp. if you do -I. you get a .precomp. this can be abused | 16:16 | ||
MadcapJake | ugexe: oh I could totally use that, is there going to eventually be a facility to control precomp location? | 16:19 | |
ugexe | nine has been working on precomp stuff, and i believe may have solved the $?FILE problem which may lead to using relative paths in precomp | ||
16:20
araujo joined
|
|||
ugexe | and ive been working on internal Distribution stuff to allow a user to supply some of that type of functionality from the outside | 16:20 | |
so all that type of stuff will get an upgrade in the next few months i would imagine | |||
i want to be able to have a FatPacked CompUnit::Repository, or even just a bundled | 16:21 | ||
16:22
uvtc joined
|
|||
uvtc | What is the Perl-6-equivalent to Python's `for i,x in enumerate(arr): ...` (where `i` is the index and `x` is the elem)? That is, for the case where you want to iterate over an array but want the index too. | 16:23 | |
RabidGravy | Now if I could just generalise this github.com/jonathanstowe/Sofa/blob.../Method.pm to deal with xml as well as json then all would be good | ||
SrKeys | uvtc: for @a.pairs | 16:24 | |
ugexe | @a.grep(*.so, :p) | ||
jnthn | m: my @arr = <a b c>; for @arr.kv -> $i, $v { say "$i = $v" } | ||
camelia | rakudo-moar e57e63: OUTPUT«0 = a1 = b2 = c» | ||
SrKeys | Oh right | 16:25 | |
Kv | |||
Not pairs | |||
Doi | |||
jnthn | Well, paris does work too | ||
*pairs | |||
SrKeys | I do prefer kv though | ||
16:25
trnh joined,
trnh left,
trnh joined
|
|||
RabidGravy | we'll always have Paris | 16:25 | |
uvtc | Oi! | ||
SrKeys | Pairs makes me think it does .rotor(2) | ||
uvtc | Oui | ||
SrKeys | Rather than interleave the index | ||
uvtc | Thanks, @a.kv was what I was looking for. | 16:26 | |
SrKeys | m: <a b c d>.pairs.say | ||
camelia | rakudo-moar e57e63: OUTPUT«(0 => a 1 => b 2 => c 3 => d)» | ||
SrKeys | Oh | ||
m: <a b c d>.kv.say | |||
camelia | rakudo-moar e57e63: OUTPUT«(0 a 1 b 2 c 3 d)» | ||
SrKeys | I see | 16:27 | |
16:28
uvtc left
|
|||
SrKeys | Rude | 16:29 | |
Didn't stick around for good times | |||
ugexe | is there a better way to "take the .value of a Pair if its a string, otherwise assume .value is a hash and take .value.keys[0]" other than `$_.value ~~ Str ?? $_.values !! $_.values.keys[0]` ? | ||
{"x | |||
getting `y` from both: {"x" : "y" } {"x" : {"y" : "z"} } | 16:30 | ||
the purpose of attaching arbitrary meta info to leaf node "y" (extending it for some subclass) while still allowing the first format to be understood | 16:31 | ||
16:31
uvtc joined
|
|||
SrKeys | Maybe do some fun recursing traversing | 16:31 | |
ugexe | the conditional above handles it. i was hoping there was some list operation though that could pull it off | 16:32 | |
lizmat | ugexe: if it were the .values[0] of the list you're after | ||
you could do something like $_.value.pairs[0].value | |||
m: dd 42.pairs[0].value | 16:33 | ||
camelia | rakudo-moar e57e63: OUTPUT«42» | ||
uvtc | SrKeys, huh? Me rude? Thank you for the help. Unable to stay logged in ATM. | ||
Plus, the good times never stop around here. It's 24-7. :) | 16:34 | ||
tony-o | mst: what happened with the nagios module? i used that several years ago, iirc | ||
SrKeys | I was just joking uvtc | ||
:p | |||
FROGGS | NO LOL, NO PROJECT EULER | 16:35 | |
16:35
Khisanth left
|
|||
SrKeys | Check out this fun recursing traversing gist.github.com/johnspurr/6e5b92102c342eea449d | 16:35 | |
16:35
uvtc left
|
|||
mst | tony-o: did you read the current tombstone release? I pretty much described it | 16:35 | |
SrKeys | Ignore any poor form in there | 16:36 | |
Or weird hacky bits | |||
It was just a quick script to make life easier | |||
tony-o | mst: tombstone release? the document you linked to? | ||
mst | tony-o: yeah | 16:37 | |
I mean, like, the first two paragraphs basically summarise what went wrong originally | 16:38 | ||
tony-o | that's kind of a dumby [audible b] move from nagios | ||
i liked their software, now they seem like a bunch of twats | |||
16:38
sufrostico joined
|
|||
mst | yes, but they're forever doing things like that | 16:39 | |
Naemon is basically "the outside guy who did most of the work for Nagios Core 4 was summarily kicked off the project because he was being offered consulting work and they didn't want to share" | 16:40 | ||
RabidGravy | wasn't nagios something else before | ||
tony-o | i don't think it would be difficult to one up their software, configuration wise it is a bear and the concept of how they test is very simple | ||
RabidGravy | like ten or more years ago | ||
mst | www.legendiary.at/2014/01/23/nagios...-the-mama/ | ||
covers even more insanity | |||
tony-o | i like that title. | ||
RabidGravy | ah yes, netsaint | 16:43 | |
16:45
ggoebel16 joined
|
|||
stmuk_ | hasn't nagios been forked to something more open source now anyway? | 16:46 | |
mst | it's been forked repeatedly | ||
stmuk_ | icinga | 16:47 | |
mst | I literally just meantioned Naemon, the most recent one | ||
and icinga, and there's at least one other I think | |||
16:47
domidumont left
16:48
Khisanth joined
|
|||
ugexe | lizmat: my problem is when the leaf is also the root | 16:49 | |
m: sub foo($x) { $x.pairs[0].key }; say foo(%( :x(:y(1)) )); say foo(%( :x("y") )); say foo("y"); | |||
camelia | rakudo-moar e57e63: OUTPUT«xx0» | ||
ugexe | m: sub foo($x) { $x.values[0] ~~ Str ?? $x.values[0] !! $x.values[0].keys[0]; }; say foo(%( :x(:y(1)) )); say foo(%( :x("y") )); say foo("y"); # ugly | ||
camelia | rakudo-moar e57e63: OUTPUT«yyy» | ||
16:51
abraxxa left
|
|||
ugexe | my Pairs example is flawed, but demonstrates what im looking for (Str can also be treated as a list, so hoping for some list method that would happen to align the stars to handle that) | 16:51 | |
16:54
shicheng joined
16:55
shicheng left
16:56
FROGGS left,
shicheng joined
|
|||
Woodi stuck somehow in Mon era... | 16:56 | ||
16:58
shicheng left
16:59
shicheng joined,
virtualsue left
|
|||
stmuk_ | cricket! | 16:59 | |
17:00
shicheng left
|
|||
RabidGravy | goats! | 17:01 | |
17:01
sena_kun joined,
trnh left
17:02
sena_kun left,
trnh joined
|
|||
RabidGravy | Oooh a planetccrma RT kernel *the same version* as the stock kernel | 17:03 | |
that's never happened before | |||
17:03
sena_kun joined
17:05
vendethiel joined,
Xliff_ZZZZ is now known as Xliff
|
|||
Xliff | What is Match? | 17:05 | |
RabidGravy | say ( "foo" ~~ /o/).perl | 17:06 | |
m: say ( "foo" ~~ /o/).perl | |||
camelia | rakudo-moar e57e63: OUTPUT«Match.new(ast => Any, list => (), hash => Map.new(()), orig => "foo", to => 2, from => 1)» | ||
moritz | the return value of a successful regex match | ||
17:06
jkramer joined
|
|||
jkramer | Hello! | 17:06 | |
dalek | osystem: 0853a27 | Altai-man++ | META.list: We have a snowball stemmer module in bindings.md, but not in the ecosystem. |
||
osystem: e2801f2 | (Zoffix Znet)++ | META.list: Merge pull request #177 from Altai-man/master Snowball module: See github.com/Sufrostico/perl6-snowball/ |
|||
Xliff | Ah. | ||
Woodi | about installing from github: it's nice except commit granularity is to fine... and release too coarse - waiting a month is hard is some environments ;) release is something to what devs should py attention so maybe tags can be used as when there is known good for users state of internals ? | ||
SrKeys | So risk-averse woodi | 17:07 | |
Woodi | SrKeys: why ? :) | ||
jkramer | I want save some kind of action (would say code ref in p5) as attribute in an object and change it to some other callback every once in a while. How do I do that in p6? | ||
SrKeys | jkramer: probably just have an attribute &foo | 17:08 | |
And store a callable in it | |||
jkramer | I currently have a "has Callable $.action" in the class but it dies with "Cannot modify an immutable Callable" whenever I want to change it | ||
SrKeys | Why not | ||
moritz | jkramer: you have to make it 'is rw' to able to change it from the outside | ||
SrKeys | has &.foo | ||
Oh right | 17:09 | ||
That too | |||
jkramer | I'm in the inside though - kind of | ||
RabidGravy | m: class D { has &.foo is rw = sub { say "foo" } }; my $d = D.new; $d.foo.(); $d.foo = sub { say "bap" }; $d.foo.(); | ||
camelia | rakudo-moar e57e63: OUTPUT«foobap» | ||
moritz | jkramer: then you need to assign to the ! form | ||
jkramer: so &!foo = ...; instead of &.foo = ...; | 17:10 | ||
jkramer | One problem might be that the callback itself needs to be able to change the callback attr to a new callback. I guess that's outside? | ||
moritz | jkramer: yes, unless the callback code is also on the inside | ||
jkramer | The callback is called by the object | ||
And is also defined by a method of the object | |||
Ah, just adding the "is rw" seemed to help. It still crashes, but it seems to be a different problem now :) | 17:11 | ||
Thanks! | |||
17:13
virtualsue joined
17:20
araujo_ joined
17:22
sufrostico left
17:23
araujo left
|
|||
Xliff | Is anyone on the "panda look" bug where it blocks further execution "perl6" in interactive shell mode? | 17:23 | |
17:25
araujo_ left,
pmurias joined
|
|||
hoelzro | Xliff: I opened an editor before I went to work with the intent of looking at it after work | 17:25 | |
granted, I have a social thing after work tonight, so no promises there =/ | |||
pmurias | hi | ||
hoelzro | o/ pmurias | 17:26 | |
Xliff | hoelzro: No problems. Thanks for answering. I ran into that one, yesterday. | ||
If I could help, I would. :/ | |||
hoelzro | I remember! | ||
Xliff | A feature request for panda would be to have the equivalent of "look" that -doesn't- require the sub-shell. | 17:27 | |
Like I want to download and inspect the sources in a more permanent manner. | |||
I'm kinda in that situation, right now. | 17:28 | ||
stmuk_ | just "panda info" and git clone the url? | 17:29 | |
actually that would make a useful new option IMO | |||
Xliff | Huh! Didn't think about it that way, but yes. | ||
"panda inspect" | 17:30 | ||
RabidGravy | but without the subshell you won't be in the directory when panda exits | ||
hoelzro | I think `panda get $module` that downloads and prints the destination directory would be nice | 17:31 | |
17:31
tmch left
|
|||
sena_kun | Also, about panda's options. Is it modulary enough to write modules without knowing its all codebase? I'd like to write one or two, but I don't know is it needed and easy enough. Also, panda had some troubles with "remove module" option before, is it related to question? | 17:34 | |
RabidGravy | you don't really need to know anything about panda to write a module | 17:43 | |
just make the META file correctly and you're good | |||
17:44
shadowpaste left,
z8 left,
dakkar left
|
|||
sena_kun | RabidGravy, no, I meant a different thing. I meant, for example, to write for panda some new feature to call it from a command line. | 17:44 | |
RabidGravy | I don't understand the question then | 17:45 | |
17:46
zakharyas left
|
|||
stmuk_ | sena_kun: if you want to add options to panda just try forking it and modifying the code | 17:47 | |
ugexe | `zef fetch XXX` fetches and tells you where it extracts to | 17:48 | |
sena_kun | stmuk_, oh, okay. | 17:49 | |
ugexe | zef also allows you to write plugins for different stages of the install process that you can turn on/off with a custom command line option (--cpan or --/cpan for instance) | ||
dalek | c: e9bbef9 | (John Gabriele)++ | doc/Language/control.pod: Add `@foo.kv` example to `for` sample code. |
17:50 | |
ugexe | also uninstalls if the rakudo is a little newer than 6.c | 17:51 | |
17:51
shadowpaste joined
|
|||
Xliff | OK. So here's a question. | 17:51 | |
What would make a Match object equivalent? | 17:52 | ||
$.orig, $.from, $.to are easy. It's $.made and $.CURSOR that confuse me. | |||
moritz | well, $a.made eqv $b.made | 17:53 | |
CURSOR isn't all that intersting; the sub-captures are | |||
Xliff | Yeah. Thought so. How are the sub-captures represented. Thought those would be in $.CURSOR | 17:55 | |
I'm just poking through Match.pm for .... I dunno | |||
Halibut | |||
arnsholt | Xliff: Let me answer with a different question: For what purpose do you want to compare match objects? | 17:57 | |
Xliff | eqv? | ||
Doesn't exist yet. | |||
There would be recursion, I would expect. | 17:58 | ||
skids | gist.github.com/skids/d1552470ba7c4ca6d318 might help but might have some stale parts. | ||
moritz | Xliff: I'd expect there to be recursion in infix:<eqv>(Match, Match), yes | 18:00 | |
18:00
domidumont joined
|
|||
moritz | because Match is basically a tree | 18:00 | |
Xliff | Yeah. | ||
18:00
travis-ci joined
|
|||
travis-ci | Doc build failed. John Gabriele 'Add `@foo.kv` example to `for` sample code.' | 18:00 | |
travis-ci.org/perl6/doc/builds/118040250 github.com/perl6/doc/compare/8fa79...bbef91d198 | |||
18:00
travis-ci left,
z8 joined
|
|||
Xliff | And I'm trying to figure out how to descend it. | 18:00 | |
Or ascend it, if you are upside down. | |||
18:01
virtualsue left,
johnP joined
|
|||
pmurias | jnthn: what makes a VMException stringify to the message? | 18:02 | |
tony-o | mst: JC that's a lot of drama | ||
especially for people trying to expand a community for free | |||
mst | tony-o: indeed | 18:03 | |
18:03
virtualsue joined
18:04
jevin left
|
|||
jnthn | pmurias: Hm, perhaps that smart_stringify thingy | 18:04 | |
18:05
wbill left
|
|||
pmurias | jnthn: thanks | 18:05 | |
18:05
pochi left,
pochi joined
18:06
jevin joined
18:07
nchambers is now known as DeerGod
18:14
araujo joined,
araujo left
18:17
araujo joined,
araujo left,
araujo joined
18:24
johnP left
18:26
abaugher left,
trnh left
18:27
abaugher joined
18:28
cdg left
|
|||
jkramer | How does p6 feel about circular dependencies lately? I just noticed it'll use up lots of CPU and hang when two modules use each other, but then again I noticed I'm moar-2015.12. | 18:28 | |
Just upgrading, but will that fix it? Should I open a report? | |||
18:29
cdg joined,
virtualsue left
|
|||
jkramer | Seems to be still open: rt.perl.org/Public/Bug/Display.html?id=126688 | 18:29 | |
moritz | the fix will be a better error message | 18:30 | |
jkramer | Hmm, guess I need to find another way to do it. | 18:32 | |
moritz | aye | ||
psch | idk, i think prevent an obvious circular dependency from eating all memory is something we maybe should consider | ||
as in, Foo.pm with "use Bar;" and Bar.pm with "use Foo;" doesn't seem like it should eat all my memory | 18:33 | ||
18:33
cdg left
|
|||
Juerd | I think it should fail gracefully. | 18:33 | |
Or be handled in a sane way, if that's at all possible. | |||
But death by infinite loop isn't a nice thing :) | 18:34 | ||
psch | on the other hand we do accept similar things with recursion or regex, so maybe modules are just something i don't recognize the obvious pitfall as one | ||
jkramer | Meh, now I have to think about my OOP design instead of getting my stuff done :D | 18:37 | |
A global variable might solve all my problems | 18:38 | ||
RabidGravy | or define the two classes in the same scope so you can predeclare with a stub | 18:39 | |
18:40
pierrot left
18:41
telex left
|
|||
psch | or a global stub that you inject into Any /o\ | 18:41 | |
RabidGravy | :) | 18:42 | |
18:42
_nadim joined,
telex joined
|
|||
jkramer | They all don't feel right, it's like working around obstacles the language creates for no reason. I mean, there are probably good reasons for not allowing circular deps, but I don't know 'em :) | 18:42 | |
RabidGravy | if they are so tightly coupled it doesn't make sense to me for them to be in different files | 18:43 | |
psch | jkramer: the fact that the ticket (#126688 that is) exists means to me that it's not something that's finished | ||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=126688 | ||
jkramer | What would be a good OOP design for this situation: I have a server class which can have x client sessions as an array attribute. However the clients need to access the server object in order to communicate with other clients. | 18:44 | |
psch: Yeah but as moritz said, the solution will be an error message | 18:45 | ||
skids | define a role containing the functions that a client should be using from the server, in a third file. Use that as the type contraint on Client.server | 18:46 | |
RabidGravy | yeah, that was my third option | ||
skids | (or visa versa client/server) | ||
RabidGravy | but | ||
psch | jkramer: right. practically, i'd go with what RabidGravy suggests; e.g. < unit module Thingy; class Thingy::Server { ... }; class Thingy::Client { ... } > or somesuch | 18:47 | |
jkramer | BTW the server is a singleton and all I need to use the server class for is to get the instance method :) | ||
Xliff | Is uniq still in perl6? | ||
RabidGravy | m: module Thing { class Server { ... } ; class Client { has Server $.server; }; class Server { has Client @.clients }; | ||
camelia | rakudo-moar e57e63: OUTPUT«5===SORRY!5=== Error while compiling /tmp/GuhMBeAyc4Missing blockat /tmp/GuhMBeAyc4:1------> 3; class Server { has Client @.clients };7⏏5<EOL>» | ||
RabidGravy | m: module Thing { class Server { ... } ; class Client { has Server $.server; }; class Server { has Client @.clients; }; | 18:48 | |
camelia | rakudo-moar e57e63: OUTPUT«5===SORRY!5=== Error while compiling /tmp/L2IWVi9MvJMissing blockat /tmp/L2IWVi9MvJ:1------> 3 class Server { has Client @.clients; };7⏏5<EOL>» | ||
RabidGravy | m: module Thing { class Server { ... } ; class Client { has Server $.server; }; class Server { has Client @.clients; } }; | ||
camelia | ( no output ) | ||
RabidGravy | too many curlies | ||
psch | RabidGravy: that's why i left two out! | ||
jkramer | RabidGravy: Still doesn't feel right because both classes are fairly big and complex, but I guess it's the best solution now | ||
RabidGravy | or what skids said | ||
define roles in separate files and use that as a typeconstraint | 18:49 | ||
that has a side benefit | |||
skids | Well, with a singleton just used as a handle, I'd just go with a global, personally. | ||
psch | Xliff: .unique is | 18:50 | |
Xliff: the hummanization was deemed not worth it, *nix legacy not withstanding | |||
err, huffmanization | 18:51 | ||
18:51
maybekoo2 left
|
|||
Xliff | LOL | 18:53 | |
OK. Next question. Can you manually enter subroutines in perl6 interractive mode? | |||
18:54
edenc_ joined,
hobbs left,
edenc left,
camelia left,
alnewkirk left,
hobbified joined
|
|||
Xliff | If not, I will script. Probably easier. | 18:54 | |
18:55
silug left,
broquaint left,
gabiruh left
|
|||
psch | Xliff: you can define subs in the REPL, yes | 18:55 | |
skids | I believe recent enough rakudos can multi-line as well. | ||
18:55
xinming left,
arcetera left,
ilmari left
|
|||
psch | skids: isn't that still in a branch? | 18:55 | |
18:55
arcetera joined,
ilmari joined
|
|||
skids | I thought part of it was merged with more left in a branch? | 18:55 | |
Maybe I am wrong. | |||
18:55
eyck_ left,
Bucciarati left,
xiaomiao left,
gabiruh joined
18:56
sftp left,
mojca joined,
alnewkirk joined,
broquaint joined
|
|||
skids | > sub a { | 18:56 | |
* 1.say | |||
* } | |||
sub a () { #`(Sub|74101808) ... } | |||
psch | huh | 18:57 | |
18:57
xiaomiao joined
|
|||
psch | hm, the repl6 branch has a commit today though | 18:57 | |
18:57
skarn joined
|
|||
psch | so yeah, probably the base mechanism merged already and hoelzro++ keeps expanding it | 18:57 | |
18:57
eyck joined
|
|||
hoelzro | the multi-line stuff is in nom | 18:57 | |
skids | Or redoing the hacky bits better. | 18:58 | |
hoelzro | repl6 is the REPL re-implemented in Perl 6 instead of NQP | ||
psch | hoelzro: ohh, okay | ||
skids | OHAI hoelzro :-) | ||
hoelzro | I'm going to merge repl6 back into nom after 2016.03 goes out, in case it blows up =) | ||
o/ skids | |||
psch | hoelzro: does repl6 still have the BEGIN hangup? | ||
awwaiid | nom nom nom | ||
psch | or was that already solved anyway..? | ||
hoelzro | psch: which BEGIN hangup? | 18:59 | |
18:59
z8 left
|
|||
psch | as in, a BEGIN somewhere during a multi-line input reevaluates the BEGIN for every new line | 18:59 | |
hoelzro | yes | ||
I'm only working on low hanging fruit atm =) | |||
psch | yes solved or yes still there? | ||
oh, so yes still there | |||
:) | |||
hoelzro | if you want to know what I've done vs not: gist.github.com/hoelzro/6bb9aa5163c7f79016ff | 19:00 | |
19:01
sftp joined
|
|||
awwaiid still wants MY::repl for that list :) | 19:01 | ||
hoelzro | awwaiid: feel free to fork that gist and send it to me so I can merge it in =) | 19:02 | |
19:02
Bucciarati joined
19:03
uvtc joined,
labster joined
|
|||
awwaiid | hoelzro++ # open source life | 19:03 | |
19:03
araujo_ joined
19:04
AlexDaniel left
|
|||
uvtc | Hi, #perl6. I made a tiny commit earlier to the docs, but then the doc build broke. I didn't think my change would break anything. Anyone know what the cause of the breakage was? | 19:04 | |
19:04
xinming joined
|
|||
tony-o | zef seems to install from a gitlab repo without any issues, does panda install from a url - is there an easy way to test that without mucking up the module ecosystem? | 19:06 | |
SrKeys | anyone else doing google codejam in perl 6 | ||
? | |||
psch | yeah, the gist is impressive | ||
SrKeys | idk if anyone here is into code jam | ||
tadzik | tony-o: if you feed it a git-like url it will probably install it | ||
tony-o: or used to :P | |||
19:07
araujo left
19:08
SrKeys is now known as Hotkeys
|
|||
[Coke] | uvtc: one moment. | 19:09 | |
tony-o | tadzik: hmm, doesn't seem to like that | ||
uvtc | Thanks, [Coke]. The Travis report is at <travis-ci.org/perl6/doc/builds/118040250>. That log makes it look like it does an entire new rakudo/moar build just to then build the docs with it. | ||
19:10
DeerGod is now known as nchambers
|
|||
[Coke] | looks like a segfault running make html. | 19:10 | |
if I run it locally, it gets past that point, however. | 19:11 | ||
if the docs get updated, don't worry about it, if it seems like the site doesn't get updated, then we can worry. | |||
19:11
olinkl_ joined
19:12
mithaldu__ joined
|
|||
uvtc | [Coke]: well, the doc I edited was updated, and the site shows the update. Thanks. | 19:13 | |
19:13
labster1 joined
19:14
zacts_ joined,
cxreg2 joined
19:15
camelia joined
19:16
shadowpaste left,
roguelazer left,
mithaldu_ left,
olinkl left,
labster left,
zacts left,
risou left,
cxreg left,
skarn left,
gabiruh left,
Hotkeys left,
mithaldu__ is now known as mithaldu_,
gabiruh joined
19:18
retupmoca joined
|
|||
awwaiid | hoelzro: well... forking your gist seemed like a good idea, but I have no idea how to PR against it now. gist.github.com/awwaiid/338cc538f660f95ff7a5 | 19:19 | |
hoelzro | awwaiid: I think I'll have to merge them by hand, which is ok | ||
thanks! | |||
19:19
ChanServ sets mode: +v camelia
|
|||
awwaiid | :) | 19:19 | |
19:19
shadowpaste0 joined,
silug joined,
Hotkeys_ joined,
risou_ joined,
roguelazer_ joined,
roguelazer_ is now known as roguelazer
19:20
olinkl_ is now known as olinkl,
dalek left
|
|||
tadzik | tony-o: ah crap :( | 19:20 | |
awwaiid | Hotkeys_: I didn't know you could do it in other languages | ||
19:20
arnsholt left,
arnsholt joined,
dalek joined,
ChanServ sets mode: +v dalek
19:21
solarbunny left
|
|||
tadzik | tony-o: even if the url starts with "git://"? | 19:21 | |
19:22
solarbunny joined
19:23
skarn joined
|
|||
tony-o | i'll give it a shot once i finish this pre-build image of moar/p6 for travis | 19:23 | |
awwaiid | Hotkeys_: ah, any language it looks like. nice | ||
19:24
teatime left
|
|||
tony-o | tadzik: i tried it with https:// | 19:24 | |
it looked like it was just searching that package listing for a module with the name 'http ... ' | |||
tadzik | yeah, the code just checks for leading "git://". Suboptimal | 19:25 | |
tony-o | i'll give it a go with git:// | ||
19:29
teatime joined
19:31
araujo_ left
19:33
uvtc left
19:36
molaf left,
firstdayonthejob joined
19:44
pmurias left
19:50
virtualsue joined
19:52
FROGGS joined
19:54
maybekoo2 joined
|
|||
Xliff | How's this for the start of a Match eqv? It's raw since I had to keep the debugging code in, but my simple test case works -- pastebin.com/ct76gh5H | 19:57 | |
I'm sure there's a Better Way to Do It, but I'm only 2 perl6 days old.... =) | 19:58 | ||
moritz | Xliff: missing $a.made eqv $b.made | ||
Xliff | *sob* | 19:59 | |
Adding | |||
Fixed | |||
moritz | Xliff: the .list comparison is unreliable | ||
Xliff | Yeah, but since Match is comprised of both, that was the best way I could figure out how to do it. | 20:00 | |
moritz | Xliff: if $a.list is false but $b.list isn't, it returns a match when it shouldn't | ||
Xliff | Ah! That I can solve. | ||
psch | m: my $m = "abc" ~~ /$<a>=a (b)/; say $m.list; say $m.hash # .list and .hash also aren't exclusive | 20:01 | |
camelia | rakudo-moar e57e63: OUTPUT«(「b」)Map.new((:a(Match.new(ast => Any, list => (), hash => Map.new(()), orig => "abc", to => 1, from => 0))))» | ||
moritz | Xliff: if you call it as multi sub infix:<eqv> instead of sub MatchCheck, you can recursive into eqv directly | ||
Xliff: $a.list eqv $b.list | 20:02 | ||
Xliff | moritz: That is the eventual plan. | ||
psch | ...but maybe i've not been reading closely enough | ||
moritz | Xliff: then you don't need to check for truthiness of the lists at all | ||
Xliff | OK. | 20:03 | |
moritz | Xliff: and you can also recurse into $a.hash eqv $b.hash, I think | ||
so the whole thing can be be boiled down to the simple attribute check && $a.list eqv $b.list && $a.hash eqv $b.hash | 20:04 | ||
Xliff | OK. So I overthought the heirarical comparison, then. | ||
moritz | the beauty of recursion and multis :-) | 20:05 | |
20:08
colomon left
20:10
darutoko left
|
|||
Xliff | OK. Updated | 20:13 | |
Tests still work. I will try moar tests and see if I can get it to break. | |||
Actually, if this works, I won't need to explicitly reference the array elements at the end... | 20:16 | ||
Here's a thought. | 20:18 | ||
Should the following two regexs be equiv? | |||
my regex yyy { ($<t1> = [aa] ) ($<t2> = a) a } ; | |||
my regex zzz { ($<t1> = [aa] ) ($<t2> = a) a } ; | |||
So: | 20:19 | ||
my $m3 = $string ~~ m:g/<yyy>/; | |||
my $m4 = $string ~~ m:g/<zzz>/; | |||
$m3 eqv $m4 # True or False??? | |||
20:20
yqt joined
|
|||
psch | Xliff: fwiw, they look textually identical here..? | 20:23 | |
well, except for the name | 20:24 | ||
so, i guess that's a good question... :) | |||
20:25
edenc_ is now known as edenc,
edenc is now known as edenc_,
edenc_ is now known as edenc,
edenc left,
edenc joined
20:26
gabiruh left,
teatime left
20:27
gabiruh joined,
teatime joined
|
|||
psch | hm, but Regex eqv Regex is different than Match eqv Match | 20:29 | |
tony-o | hi all - i have a nightly build of rakudo (via rakudobrew) being pushed to repo github.com/tony-o/perl6-travis-bin.git - you're welcome to clone and use this repo for travis testing if, like me, you're impatient and don't care about testing your modules on JVM - | ||
see the sample.travis.yml for how to use the repo | |||
20:30
sena_kun left
|
|||
psch | Xliff: take that to mean that i personally don't have an opinion whether the Regexen themselves should be equivalent, but i do think the Match objects returned against identical Str should be equivalent | 20:30 | |
Xliff | psch: OK, that means that the Match equivalence test should eleminate the rexexp name from the test, which my current implementation doesn't. | 20:32 | |
I would posit that you are correct Regexp yyy and zzz are equivalent, but ($m3 eqv $m4) are not. | 20:33 | ||
psch | m: say ("foo" ~~ my regex baz { .+ }).perl; | ||
camelia | rakudo-moar e57e63: OUTPUT«Match.new(ast => Any, list => (), hash => Map.new(()), orig => "foo", to => 3, from => 0)» | ||
20:33
colomon joined
|
|||
psch | the Match object doesn't contain any reference to the producing regex | 20:33 | |
Xliff: ...i'm pretty sure i said almost the exact opposite. the Match objects should be equivalent, but the equivalence of the Regex objects depends on whether the name matters | 20:34 | ||
Xliff | m: $a = "foo" ~~ my regex bas { .+ }); say $a.perl | ||
camelia | rakudo-moar e57e63: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ByeYvEIfWHVariable '$a' is not declaredat /tmp/ByeYvEIfWH:1------> 3<BOL>7⏏5$a = "foo" ~~ my regex bas { .+ }); say » | ||
20:35
domidumont left
|
|||
psch | m: no strict; $a = "foo" ~~ my regex bas { .+ }); say $a.perl | 20:35 | |
camelia | rakudo-moar e57e63: OUTPUT«5===SORRY!5=== Error while compiling /tmp/M0b2HcpzjhUnexpected closing bracketat /tmp/M0b2Hcpzjh:1------> 3trict; $a = "foo" ~~ my regex bas { .+ }7⏏5); say $a.perl» | ||
Xliff | m: ($a = "foo" ~~ my regex bas { .+ }); say $a.perl | ||
camelia | rakudo-moar e57e63: OUTPUT«5===SORRY!5=== Error while compiling /tmp/QWfAoZKLiAVariable '$a' is not declaredat /tmp/QWfAoZKLiA:1------> 3(7⏏5$a = "foo" ~~ my regex bas { .+ }); say » | ||
Xliff | m: (my $a = "foo" ~~ my regex bas { .+ }); say $a.perl | ||
camelia | rakudo-moar e57e63: OUTPUT«Match.new(ast => Any, list => (), hash => Map.new(()), orig => "foo", to => 3, from => 0)» | ||
Xliff | m: (my $a = "foo" ~~ my regex bas { .+ }); say $a.hash | ||
camelia | rakudo-moar e57e63: OUTPUT«Map.new(())» | ||
Xliff | m: (my $a = "foo" ~~ my regex bas { .+ }); say $a.list | ||
camelia | rakudo-moar e57e63: OUTPUT«()» | ||
Xliff | Hmmm.... | ||
psch | it doesn't capture anything | ||
tony-o | zero door handles in this building open upwards, this is a hostile work environment | ||
oops, not meant for this channel | 20:36 | ||
Xliff | m: (my $a = "foo" ~~ my regex bas { [.+ ]}); say $a.perl | ||
camelia | rakudo-moar e57e63: OUTPUT«Match.new(ast => Any, list => (), hash => Map.new(()), orig => "foo", to => 3, from => 0)» | ||
psch | m: no strict; $a = "foo" ~~ my regex bas { $<f>=f (oo) }; say $a.perl | ||
camelia | rakudo-moar e57e63: OUTPUT«Match.new(ast => Any, list => (Match.new(ast => Any, list => (), hash => Map.new(()), orig => "foo", to => 3, from => 1),), hash => Map.new((:f(Match.new(ast => Any, list => (), hash => Map.new(()), orig => "foo", to => 1, from => 0)))), orig => "foo", to …» | ||
psch | m: no strict; $a = "foo" ~~ my regex bas { $<f>=f (oo) }; say $a.list; say $a.hash | ||
camelia | rakudo-moar e57e63: OUTPUT«(「oo」)Map.new((:f(Match.new(ast => Any, list => (), hash => Map.new(()), orig => "foo", to => 1, from => 0))))» | ||
Xliff | OK, that's odd. | ||
The regex name is definitely getting captured in my Match objects | |||
psch | the point of note is that the Match object does not know that the Regex it comes from has a name | 20:37 | |
Xliff: gist and then m: it? | |||
'cause that'd be interesting :) | |||
Xliff | Oh. | 20:38 | |
dalek | osystem: 7381a1e | tony-o++ | META.list: flow multiplex testing with full flex |
20:39 | |
Xliff | m: my $a = "foo"; my regex bas { [.+ ]}; my $m = $a ~~ m/<bas>/; say $m.perl | 20:40 | |
camelia | rakudo-moar e57e63: OUTPUT«Match.new(ast => Any, list => (), hash => Map.new((:bas(Match.new(ast => Any, list => (), hash => Map.new(()), orig => "foo", to => 3, from => 0)))), orig => "foo", to => 3, from => 0)» | ||
Xliff | So in the examples I was using the regex is used as a named capture. | 20:41 | |
psch | m: my $a = "foo"; my regex bas { [.+ ]}; my $m = $a ~~ m/$<foo>=<.bas>/; say $m.perl | ||
camelia | rakudo-moar e57e63: OUTPUT«Method 'bas' not found for invocant of class 'Cursor' in block <unit> at /tmp/9ChDRQcRx1 line 1» | ||
Xliff | THAT's why its showing up in my Match objects. | ||
psch | hrm, almost :) | ||
m: my $a = "foo"; my regex bas { [.+ ]}; my $m = $a ~~ m/$<foo>=<&bas>/; say $m.perl | |||
camelia | rakudo-moar e57e63: OUTPUT«Match.new(ast => Any, list => (), hash => Map.new((:foo(Match.new(ast => Any, list => (), hash => Map.new(()), orig => "foo", to => 3, from => 0)))), orig => "foo", to => 3, from => 0)» | ||
psch | Xliff: yeah, using a regex as <foo> binds to a named capture. the above example shows one way around that | 20:42 | |
Xliff | OK. So I mis-stated my test, above. | ||
psch | (note that inside a grammar you'd probably use <.bas> instead as in my failed attempt. <&foo> looks up lexicals, while <.foo> looks up methods) | ||
Xliff | So $m3 eqv $m4 IS false since different name captures are used. | 20:43 | |
psch | Xliff: yes, but that obliges you to add a test that binds to a identically named capture and test that those *are* eqv :) | 20:44 | |
Xliff | m: say ("foo" ~~ my regex baz { .+ }); say ("foo" ~~ my regex bar { .+ }); | ||
camelia | rakudo-moar e57e63: OUTPUT«「foo」「foo」» | ||
psch | m: my regex baz { .+ }; say "foo" ~~ &baz | ||
camelia | rakudo-moar e57e63: OUTPUT«「foo」» | ||
Xliff | psch: True. And I will have to do that. | ||
psch | ^^^ that was the idiom i was thinking of when i said they should be eqv, fwiw | 20:45 | |
Xliff | But the match objects resulting from your initial example would still be eqv based on what I wrote since the name capture isn't used. | ||
psch | which, incidentally, is another bunch of test cases :) | ||
Xliff | YAY! | ||
psch | Xliff++ | ||
Xliff | I'll spend more time writing test cases than I did the infix:<eqv> | 20:46 | |
*sigh* such is life. | |||
OK | 20:49 | ||
my $ml1 = $string ~~ my regex y1 { ($<t1> = [aa] ) ($<t2> = a) a }; | |||
my $ml2 = $string ~~ my regex y2 { ($<t1> = [aa] ) ($<t2> = a) a }; | |||
$ml1 eqv $ml2 #True | 20:50 | ||
Oh, let me try that other idiom. | 20:51 | ||
TimToady | psch, Xliff: the other reason for the rename is that *nix's uniq doesn't actually do .unique, but .squish | 20:52 | |
Xliff | TimToady, LOL. Didn't know that. | ||
Hah! | |||
psch: Idiom test also holds true. | 20:53 | ||
my $ml3 = $string ~~ &yyy; | |||
my $ml4 = $string ~~ &zzz; | |||
$ml3 eqv $ml4 # True | |||
And since matches turn out arrays, let me ditch the [0]s in my test cases and see if they still work. | 20:54 | ||
Still working, although I am not seeing the say statements I emit in the infix:<eqv> sub as much as I'd expect. | 20:56 | ||
20:59
rindolf left
21:01
FROGGS left
21:05
skids left
21:12
TEttinger joined
21:14
colomon left
21:18
cpage_ left
21:26
[Sno] left
|
|||
Xliff | Anyone have any more test cases for Match object eqv? | 21:29 | |
moritz | m: say ('aaa' ~~ /a(..)/) eqv ('aaa' ~~ /a../) | 21:35 | |
camelia | rakudo-moar e57e63: OUTPUT«False» | ||
moritz | m: say ('aaa' ~~ /a(..)/) eqv ('aaa' ~~ /a./) | ||
camelia | rakudo-moar e57e63: OUTPUT«False» | ||
21:37
firstdayonthejob left
21:38
firstdayonthejob joined
21:39
colomon joined
|
|||
Xliff | moritz: You already have Match eqv? | 21:39 | |
21:41
cdg joined
21:42
geekosaur left
|
|||
Xliff | Well shucks. | 21:43 | |
Match eqv is already in there. | |||
Was a nice excercise in writing, though. | |||
psch | m: say ('aaa' ~~ /a(..)/) eqv ('aaa' ~~ /a(..)/) | ||
camelia | rakudo-moar e57e63: OUTPUT«True» | ||
21:43
geekosaur joined
21:44
firstdayonthejob left
21:46
zakharyas joined
21:50
wamba left,
[Sno] joined
|
|||
moritz | Xliff: no, it's not there | 21:53 | |
Xliff: it's just a fallback from (Any, Any), which gives wrong results | 21:54 | ||
Xliff | So should "('aaa' ~~ /a(..)/) eqv ('aaa' ~~ /a../);" return true? | 21:56 | |
Due to capture, I find that hard to believe. | |||
21:56
firstdayonthejob joined
|
|||
Xliff | O. wait. () isn't capture anymore. | 21:56 | |
Hmmm... | 21:57 | ||
Or is it.... Still looks like capture to mer. | |||
s/r\.// | |||
> ('aaa' ~~ /a(..)/) | 21:58 | ||
「aaa」 | |||
0 => 「aa」 | |||
> ('aaa' ~~ /a../) | |||
「aaa」 | |||
21:58
_nadim left
21:59
xinming left,
xinming joined
|
|||
Xliff | moritz: Do you have an example where the (Any, Any) fails for Match eqv? | 22:00 | |
moritz | m: say ('a' ~~ /./) ~~ ('a' ~~ /./) | 22:03 | |
camelia | rakudo-moar e57e63: OUTPUT«「a」» | ||
moritz | m: say ('a' ~~ /./) eqv ('a' ~~ /./) | ||
camelia | rakudo-moar e57e63: OUTPUT«True» | ||
moritz | m: say ('a' ~~ /(.)/) eqv ('a' ~~ /(.)/) | ||
camelia | rakudo-moar e57e63: OUTPUT«True» | ||
moritz | hmmm | ||
m: say ('a' ~~ /(.)/) eqv ('ab' ~~ /(.)/) | |||
camelia | rakudo-moar e57e63: OUTPUT«True» | ||
moritz | Xliff: ^^ that should be False | 22:04 | |
m: say ('a' ~~ /(.)/) eqv ('b' ~~ /(.)/) | |||
camelia | rakudo-moar e57e63: OUTPUT«True» | ||
moritz | it seems it comparse *only* the captures, but not the root node of the Match | ||
*compare | |||
22:07
zakharyas left
22:08
Sgeo__ joined
22:09
virtualsue left
22:12
cpage_ joined
22:17
labster1 left
|
|||
psch | yeah, the one that should be False i definitely agree with. the .orig is different and that should be reflected | 22:24 | |
22:25
labster joined
22:37
cpage_ left,
cpage_ joined
22:39
labster left
22:40
vendethiel left
22:42
cpage_ left
22:43
vendethiel joined
22:44
cpage_ joined
22:45
cpage_ left
22:47
kid51 joined
22:48
geraud joined,
cpage_ joined
22:50
cpage_ left,
cpage_ joined
|
|||
Xliff | my $t_im1 = ('aaa' ~~ /a(..)/) eqv ('aaa' ~~ /a../); | 22:56 | |
my $t_im2 = ('a' ~~ /(.)/) eqv ('ab' ~~ /(.)/); | |||
$t_im1 = False / $t_im2 = False # my Match eqv implementation | 22:57 | ||
Ulti | m: say [+] 1..9999999999999999 | 23:00 | |
camelia | rakudo-moar e57e63: OUTPUT«49999999999999995000000000000000» | ||
Ulti | ^ that is really quite fast compared to the more obvious things in Perl 5 | ||
not to mention bigint just works too | 23:01 | ||
List::Util::sum(1..blah) goes nuts on bigger ranges on my laptop and a postfix for loop sum over the range takes ages | 23:02 | ||
in Rakudo is that compiling down to anything special? | |||
23:04
roguelazer left
23:05
riatre left,
riatre joined,
vendethiel left
23:06
hobbified left,
[Tux] left,
avenj left,
[Tux] joined
23:07
jack_rabbit joined
23:09
perlawhirl joined
|
|||
perlawhirl | hi perlers | 23:09 | |
i asked a question earlier but got no replies. being on aussie time means i'm usually in here when it's quiet | |||
but anyways... | 23:10 | ||
am i able to rename a method (eg. grep) to something else... or rather, create a method that basically points to grep | |||
23:11
roguelazer joined
23:12
molaf joined
23:16
hobbs joined
|
|||
perlawhirl | it's times like these i need a tumbleweed unicode | 23:18 | |
23:18
AlexDaniel joined
23:19
RabidGravy left,
jack_rabbit left
23:22
labster joined
|
|||
geekosaur | I think someone did answer that question at one point, negatively | 23:29 | |
there may be something hacky you can do with the MOP | |||
...but I think that mixes in an anonymous role rather than changing the class | 23:30 | ||
23:31
BenGoldberg joined,
BenGoldberg left
23:32
arcetera left,
arcetera joined
23:33
BenGoldberg joined
|
|||
perlawhirl | yeah, i have a (probably misguided) design proposal and wanted to see if I could do it in a module first... though by the sounds of it I might not be smart enough :D | 23:33 | |
geekosaur: would you mind reading my ramblings and give me your opinion. gist.github.com/0racle/ea0523759e2da15758d4 | 23:34 | ||
geekosaur | I'm probably the wrong person to do it. I am not a p6guts expert or anything like that | 23:35 | |
perlawhirl | but from a user pov, do you think that seems nice | 23:36 | |
if it existed, would you use it instead of grep. i think i would, as it reads more like english | 23:37 | ||
or am i just a weirdo ? | |||
geekosaur | I feel like grep is largely a concession to perl5, and there are other mechanisms in perl6 already? but I could be wrong | 23:38 | |
23:38
cpage_ left
|
|||
perlawhirl | perhaps... like i said, i'm probably misguided (and a weirdo :D) | 23:39 | |
23:40
cpage_ joined
23:41
geekosaur left
23:42
geekosaur joined
23:44
kid511 joined
23:46
kid51 left
23:50
zacts_ left
23:51
cpage_ left
23:52
zacts joined
23:53
ChoHag left
23:56
cpage_ joined
23:57
johndau joined
23:59
cdg left,
cdg joined
|