»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by masak on 12 May 2015.
00:03 FROGGS left 00:06 FROGGS joined 00:07 Zhtwn left 00:08 ggoebel left
dalek c/choices: d3ef4e1 | ab5tract++ | bin/p6doc:
No longer theoretical
00:13
00:13 msouth left 00:14 lizmat left 00:18 quietfanatic left 00:20 rurban left 00:23 lizmat joined 00:25 amurf left 00:26 amurf joined 00:27 amurf left 00:38 kurahaupo1 left, msouth joined, llfourn joined 00:44 laouji joined 00:46 msouth left 00:53 msouth joined 00:54 Zhtwn joined, bin_005 joined 01:09 cognominal joined 01:14 nys left 01:18 adu joined 01:21 cognominal left 01:22 prevost joined 01:38 BenGoldberg joined 01:46 yqt left 01:54 gtodd1 joined 01:59 Ben_Goldberg joined 02:01 dayangkun joined 02:02 BenGoldberg left 02:04 prevost left, ggoebel joined
dalek c/choices: 145185a | ab5tract++ | bin/p6doc:
Run doc output through fmt on the way to page
02:04
c/choices: 571f437 | ab5tract++ | bin/p6doc:
Cleaner by far
02:11 rurban joined
dalek c/choices: d7ae128 | ab5tract++ | bin/p6doc:
Fix menu
02:13
02:17 msouth left 02:22 adu left 02:26 ggoebel left
pmichaud good evening, #perl6 02:26
02:27 AlexDaniel left 02:28 noganex joined
hoelzro evening pmichaud 02:29
02:30 msouth joined 02:31 noganex_ left 02:35 Ben_Goldberg left, rmgk_ joined, rmgk is now known as Guest7371, rmgk_ is now known as rmgk 02:36 kurahaupo1 joined 02:39 Guest7371 left 02:48 adu joined 02:50 jack_rabbit joined 02:51 Zhtwn left
pmichaud TimToady: ... is "take" considered an instance of abnormal control, in the sense of being trappable by CONTROL handlers...? 02:53
*abnormal control flow
02:54 sunnavy left
TimToady presumably 02:54
at least as currently implemented
pmichaud well, I mean more "as designed"
TimToady it doesn't really have to be control flow, if it merely knows where to put the next value 02:55
pmichaud I'd prefer it not be control flow.
TimToady fine by me 02:56
pmichaud in some sense it is, in another it's not, since as far as the block is concerned execution continues immediately following the take anyway :)
it's more like an interrupt than a control flow break :)
TimToady certainly we want to maintain the right to optimize 02:57
pmichaud yes
works for me.
skids Well, someone will come looking for a coruotine construct if take stops behaving as one.
pmichaud skids: I'm not changing that. 02:58
adu TimToady: you're such a libertarian 02:59
pmichaud There are just cases where take can be smart enough to recognize that it's safe to store the value somewhere and proceed without immediately doing the control jump.
02:59 adu left, adu joined
skids Ah, good, I am all for optimizing those too :-) 02:59
pmichaud when it's not safe, it does the continuation/jump bit. 03:00
adu TimToady: you're such a libertarian
TimToady you can say that again
adu libertarian
it's a Good Thing 03:01
Liberty is what protects us from Hitler and population reductionism 03:02
pmichaud
.oO( is Hitler still a threat? I thought he was dead. )
03:04
adu I'm 100% sure that Hitler's public double is dead
pmichaud Aha. Good to know. 03:05
adu I'm 5% sure that the original Hitler is dead
03:06 rurban left
skids m: say 2015-1889; # I'm a bit more than 5% sure. 03:06
camelia rakudo-moar 15c6fb: OUTPUT«126␤»
adu make that 45% sure 03:07
dalek ecs: a62d2ce | pmichaud++ | S07-glr-draft.pod:
More GLR discussion, plans, and notes.
03:12
pmichaud TimToady: not sure it's a good idea, but @@ popped into my head as a possible flattener. 03:14
it's very steamroller-y
I'm afk # walk, packing 03:17
03:24 laouji left 03:25 laouji joined 03:29 laouji left 03:37 sunnavy joined
dalek ecs: e71c0a1 | skids++ | S07-glr-draft.pod:
Minor pronoun clarification

Historical note for those not up to date on GLR progress
03:37
03:48 yeahnoob joined 03:51 prevost joined 03:54 kst left, bin_005 left 03:55 bin_005 joined 03:57 Gardner joined 04:01 laouji joined
dalek ecs: b95b2a1 | Mouq++ | S07-glr-draft.pod:
Ask about a list concatenation op
04:04
ecs: 2a7daba | Mouq++ | S07-glr-draft.pod:
Untypo last commit
04:07
04:16 kaare_ joined, adu left 04:17 mattp__ left
TimToady Mouq: yes, re irclog.perlgeek.de/perl6/2015-06-10#i_10729270 a deepmap is intented to retain structure, so there's that's gone buggy with some of our GLR stuff, and will need fixing 04:19
*something
Mouq Okay 04:22
TimToady jnthn: the intent of having a .parsefile in the first place is to capture the filename for use in error messages 04:23
otherwise it's rather uselessly redundant with .slurp.parse
well, .parse(slurp) or some such 04:24
dalek ecs: 4482589 | pmichaud++ | S07-glr-draft.pod:
Add answer to skids++'s e71c0a1 question.
04:25
Mouq Part of me, after implementing it, is still uncertain about »+» creating lists of the same type as were passed, until we get coersion worked out better :/
TimToady that seems right to me 04:26
pmichaud I suspect a lot of new information will fall out of the new GLR semantics
er, phrased that wrong
I suspect we'll have a lot better picture of how it should work once the initial GLR semantics are in implementation 04:27
I'm very much liking the model that is emerging from thoughts/discussions
it feels clean, elegant, and (potentially) fast
04:31 hanekomu left 04:32 broquaint left 04:40 araujo_ left
japhb
.oO( Choose three ... )
04:42
dalek ecs: 99aeec7 | pmichaud++ | S07-glr-draft.pod:
Conjecture names for the conjectured insert-into-list type.
04:43
ecs: 43f7fde | pmichaud++ | S07-glr-draft.pod:
Answer Mouq++'s b95b2a1 question.
ecs: 69b6eb5 | pmichaud++ | S07-glr-draft.pod:
More answer to Mouq's example.
04:50
04:50 araujo joined
dalek ecs: 84ff4f3 | pmichaud++ | S07-glr-draft.pod:
Add "Sublist" to the brainstorm.
04:51
pmichaud Also "SList", which combines "sublist" but maybe sounds a bit like "slice". :-)
04:52 SevenWolf joined
TimToady the conjectured type won't replace Nil, only Empty 04:54
pmichaud correct.
Nil ends up being quite orthogonal to lists, I think. 04:56
as in, it doesn't have any special listy properties.
pmichaud adds to S07
TimToady I just was reading a partial context line, and didn't see the pre-GLR note on Nil
04:57 lkjkj joined 04:58 lkjkj left
Mouq pmichaud++ btw 04:58
dalek ecs: d419e70 | pmichaud++ | S07-glr-draft.pod:
Add note about post-GLR C<Nil>.
TimToady kinda wonders whether our new type is really just an iterator, rather than something you ask for an iterator
pmichaud it's certainly Iterable.
and in pre-GLR, all Iterators were Iterables. 04:59
Mouq Also, "Expand"? (Seq bikeshedding)
TimToady
.oO(Shoehorn)
Hoist 05:00
pmichaud I knew I'd be opening the bikeshed paint store with that commit. :)
Clip, Cut, Paste were ideas coming from the notion of film editing. :)
TimToady Splice
pmichaud I thought of Splice, but it's too close to .splice for my taste.
TimToady well, rather similar idea 05:01
pmichaud yes, but part of me feels that .splice should then return a Splice. :)
TimToady whatever it is, Foo() has to feel like Empty 05:02
pmichaud thesuarus.com only knows about the verb form of "splice", and the noun definitions I've seen think of a "splice" as the whole result of the join, and not the piece being joined
TimToady More()
pmichaud I kind of like Seq() 05:03
I didn't at first, but it's growing on me.
Mouq To bad we already used Mu :P
pmichaud Lu
TimToady Moo 05:04
we were wanting a Dog type...
pmichaud I'm also toying with the idea that the type object itself disappears in a list.
05:04 lolisa left
pmichaud like Empty does now. 05:04
m: say Empty.defined
camelia rakudo-moar 15c6fb: OUTPUT«False␤»
pmichaud so then one could just return Seq
and not have to do Seq()
TimToady but Seq doesn't feel empty
pmichaud (or whatever it gets called) 05:05
TimToady Slot
pmichaud Hole
TimToady Virus
pmichaud Gene
TimToady Intron 05:06
Slip
as in, "slip this in"
but also "slip one cog" when nothing is there
pmichaud "Welcome to Pm's Bikeshed Paint Emporium! Today we have a special running on all sorts of list-related terms" 05:07
yes, I like the double-meaning to slip
I was thinkng "slip by this one"
TimToady and it implies "sneaky"
pmichaud Sneak
(slip is better)
Mouq Pm()
pmichaud are you implying I'm empty? :-)
Mouq You just fit in so well 05:08
pmichaud I think I'll tentatively go with Slip for now, I like it better than Seq
TimToady me2
dalek ecs: 3c71890 | pmichaud++ | S07-glr-draft.pod:
s/Seq/Slip/ # better bikeshed choice for now
05:10
pmichaud fwiw, I tried really hard to convince myself that C<Dog> could work. :-P
and perhaps C<Tac> is too much "you think that's cute today" 05:11
05:14 llfourn left, skids left
pmichaud I wonder if the result of an infix:<...> should naturally be a Slip 05:30
(idle thought)
TimToady we might implement the postulated foo(@inner): @outer using a slip of some sort too 05:33
pmichaud this feels very much like a primitive type we've been missing for some time :)
TimToady .u 、 05:34
yoleaux U+FF64 HALFWIDTH IDEOGRAPHIC COMMA [Po] (、)
pmichaud I get a box for that char in my font. 05:35
TimToady .u ⸴ 05:36
yoleaux U+2E34 RAISED COMMA [Po] (⸴)
pmichaud same there. :)
TimToady looking for non-Texas forms :)
"raised" is cute though
pmichaud well, we want to make sure it's visually distinct from normal commas, too.
TimToady u ⨩ 05:37
.u ⨩
yoleaux U+2A29 MINUS SIGN WITH COMMA ABOVE [Sm] (⨩)
TimToady has been considering various Texas forms
05:37 prevost left
TimToady ,, or \, or ^, and such 05:37
the (,) ain't so bad except it would imply a set operator 05:38
pmichaud yup
TimToady <,>
pmichaud I conjectured @, at one point.
but too sigil/twigilish 05:39
TimToady it's kind of a shame that _ is considered alpha 05:40
as a "flat" sugar
other possible flat sugars: *() *: 05:41
would obviously have to win under LTM, but fit nicely with * for slurp
pmichaud there's always *** :-) 05:42
that's the Alaska form. :)
TimToady too bad there isn't a monster truck glyph 05:43
05:43 RabidGravy joined
pmichaud aha 05:44
the O_O operator
TimToady maybe we should use snowman for hierarchical, and comet for "flattening" :)
pmichaud O_O looks like a steamroller :)
TimToady O¯O 05:45
pmichaud I'm pretty sure someone can create a Texas monster truck
but for that matter, how about infix:<slip> 05:46
I really don't expect it to be common at all.
TimToady o̿o
pmichaud (perhaps I'm wrong about that with all of the other flattening/itemization changes we're making... perhaps it'll be very common)
TimToady I considered infix:<slip>, but while it's huffmanly ok, it just doesn't quite feel right for some reason 05:47
pmichaud or even prefix:<slip>
TimToady prefix slip is close to your one-level flat
pmichaud yes, and it fits with the other "list" and "flat" contextualizers.
and then you can do return slip;
as well as return slip()
TimToady but a reduce on the infix is probably sufficient instead of a prefix 05:48
pmichaud indeed
TimToady return Slip; ain't so bad
pmichaud yeah, but Slip.new(1,2) isn't so much fun.
It works, but....
TimToady [,,] 1,2 05:49
pmichaud I suppose we can do Slip(1,2), but that feels wrongish also.
TimToady not opposed to a slip listop
pmichaud return [slip] 1,2 feels interesting also
the "slip" almost looks parenthetical :)
FROGGS hmmmm, 'return Slip' would be identical to 'return Panties' where I am 05:50
pmichaud FROGGS: TMI
TimToady the Slips I'm familiar with are not identical to Panties...
pmichaud WTMI
FROGGS :D 05:51
good morning :o)
05:51 FROGGS[mobile] joined, FROGGS left
TimToady @x X (@y Zslip @z) feels odd 05:52
@x X, (@y Z^, @z) seems more better
or @x X, (@y Z\, @z) 05:53
so I'd like it to seem like a comma variant
pmichaud I'd be okay with ^, or \.
TimToady that's probably what bothers me about slip
pmichaud er, \,
yes, I prefer a comma variant of some sort also.
I just haven't come up with one I like better than slip. :) 05:54
I just haven't come up with one I like.
TimToady [\,] is bad though
m: .say for [\,] ^5 05:55
camelia rakudo-moar 15c6fb: OUTPUT«0␤0 1␤0 1 2␤0 1 2 3␤0 1 2 3 4␤»
pmichaud ,, seems like it could work but it scares me somehow.
TimToady yeah, looks like an error
*, maybe 05:56
pmichaud aha!
infix:<⏏> :-P
TimToady .p ❟ 05:57
.u ❟
yoleaux U+275F HEAVY LOW SINGLE COMMA QUOTATION MARK ORNAMENT [So] (❟)
pmichaud I'm going to go with "slip" for now, knowing we'll likely change it to something comma-based. 05:58
I definitely like the prefix "slip" form. 05:59
06:00 bin_005 left 06:01 bin_005 joined
TimToady the thing I like about ,, though is that it kinda implies the two commas in the upper list on either side of the bit we're slipping in, a kind of comma-hole 06:03
pmichaud put a "hole" between the commas, then. 06:05
like ,O,
but not alpha
so that it doesn't look like a typo but is obviously deliberate. 06:06
06:10 diana_olhovik_ joined
pmichaud perhaps we could do ,, and make it illegal to mix ,, and , in the same chain. 06:12
3,,4 # okay 06:13
3,4,,5 # error
3,(4,,5) # okay, but same as 3,4,5
oh! 06:14
for that matter, even if someone typoed the ,, they'd end up with the same result. 06:15
(I think)
I can probably find a case where that doesn't work.
TimToady well, 3,4,,5 would already be an error, since two list assoc have to be the same operator already 06:18
06:18 quietfanatic joined
quietfanatic Insert() was what I was thinking 06:18
06:18 llfourn joined
TimToady we've mostly settled on Slip for the moment 06:18
quietfanatic ah
06:19 Gardner left
quietfanatic p6: grammar ASDF { multi rule TOP { ^ asdf $ }; multi method TOP ($/) { $/.make: "asdf" } }; say ASDF.parse("asdf", :actions(ASDF)) 06:19
camelia rakudo-moar 15c6fb: OUTPUT«Too many positionals passed; expected 1 argument but got 2␤ in regex TOP at /tmp/tmpfile:1␤ in block <unit> at /tmp/tmpfile:1␤␤»
quietfanatic I was really hoping that would work
06:20 FROGGS joined
quietfanatic I wonder why that error message happened though? 06:20
06:20 msouth left
TimToady extra arg to 2nd TOP 06:20
quietfanatic But the signature of first TOP is (ASDF: *%_) 06:21
according to introspection
so why would anything be calling anything with two args?
RabidGravy struggling to reproduce this "smallbin double linked list corrupted" thing in a bite size chunk of code 06:22
it appears to only happen when running tests with "panda-test" 06:23
which is odd 06:24
quietfanatic And those two multis really shouldn't affect one another. Even if this is an unlikely use case, it looks like a bug to me. 06:25
RabidGravy and also makes it difficult to run valgrind on it
06:26 telex left
TimToady quietfanatic: you're probably completel freaking out the LTM analyzer by mixing a rule and a method... 06:26
quietfanatic Well I wouldn't freak out if I were it. :) 06:27
pmichaud Yes you would.
The entire regex engine is a big mess of "OMG WTF I AM SO FREAKED OUT!"
if you're wanting to put the action methods into the grammar, how about just using a closure? 06:28
FROGGS m: grammar ASDF { multi rule TOP { { say "WAT" } }; multi method TOP (*@, *%) { say "hello" } }; say ASDF.parse("asdf", :actions(ASDF))
camelia rakudo-moar 15c6fb: OUTPUT«WAT␤hello␤(Any)␤»
06:28 telex joined
pmichaud rule TOP { ^ asdf $ { $/.make: "asdf" } } 06:28
quietfanatic Yes, that's what TimToady replied offline
I recall somebody several years ago on here telling me not to do that though 06:29
pmichaud you don't get inheritance/substitutability, but I suspect it works just as well.
TimToady there was a point where make didn't work in rakudo if you used it there
but that's been fixed
FROGGS quietfanatic: yes, it becomes more dirty and dirty when your grammar grows
quietfanatic ah, maybe that wasa it
pmichaud well, putting the two methods in the grammar is going to get dirty as well :)
FROGGS true 06:30
TimToady the main reason for separating out to a separate class is that you can use the same grammar with different actions
pmichaud agreed.
quietfanatic ah, that makes sense too
TimToady such as a pretty-printer
pmichaud that, and also to make it easier to read
I always found it really hard to follow parsing when the action code was intermingled in the rules.
quietfanatic it's easier to read but there's a lot of coupling of method names and organization 06:31
pmichaud yes, I didn't find a way to avoid the name coupling.
tbh, I didn't expect it to be adopted. :) :)
TimToady yeah, and it's difficult to optimize away the double dispatch too
06:31 domidumont joined
TimToady we really need a composition operator of some sort 06:31
with a grammar and a set of actions 06:32
06:32 mattp__ joined
pmichaud 'action' keyword, perhaps? 06:32
grammar Something does SomethingActions
TimToady well, important thing is to set up some wrapping scheme so only a single dispatch is needed
FROGGS I guess the proto has some trouble coping with a rule and a method in the ASDF example here...
quietfanatic or hey, what about
FROGGS I bet it is auto-gen'd wrongish
quietfanatic grammar X is Y { 06:33
whoops, hold on
TimToady this strikes me as the same problem as wrapping role's BUILD submethods around the class's
pmichaud compose the actions directly into the grammar, and find a way to link the two.
quietfanatic grammar X is Y { method TOP { callsame; $/.make: whatever; } }
TimToady but you don't want the grammar saying what it's mixing in 06:34
quietfanatic You can just inherit the grammar and override and supercall all its methods
06:34 Klaudioh left
quietfanatic Y is the original grammar without actions. 06:34
pmichaud could be a runtime mixin
anyway, I vote post-6C :)
TimToady well, I wanna rework the fate system first, I suspect
and that probaby wants to be pre
FROGGS quick! rewrite all the things! /o/ 06:35
:D
TimToady well, I pretty much know how, since STD did it without rescanning the same token multiple times
06:35 domidumont left
quietfanatic p6: grammar ASDF { rule TOP { ^ asdf $ } }; grammar FDSA is ASDF { method TOP { callsame; $/.make: "fdsa" } }; say FDSA.parse("asdf") 06:36
camelia rakudo-moar 15c6fb: OUTPUT«Method 'to' not found for invocant of class 'Any'␤ in block <unit> at /tmp/tmpfile:1␤␤»
06:36 domidumont joined
FROGGS TimToady: btw, I'm going to make run() and shell() able to do what pipe() does right now... I just need a better name for Proc::Status, and I'm thinking IO::Proc might not be too bad 06:36
TimToady it's too late for me to bikeshed :) 06:37
FROGGS TimToady: ahh, that's what you mean (fates), yeah, I'm looking forward to that
pmichaud I consumed all of TimToady's bikeshedding cycles for the night, I think :)
FROGGS pmichaud++ 06:38
TimToady: this if on topic somewhat... a recent nqp commit of yours causes a regression: RT #125345
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125345
FROGGS this is* 06:39
TimToady yes, I know
been thinking about it, will probably clean up with adding :: and ::: support
FROGGS still giggles internally about the "I asked you if you want to take a seat" :D
ohh
nice
TimToady: I'll port it to jvm for you 06:40
TimToady and the fates cleanup also probably gets us <*...>
quietfanatic now why doesn't that inheritance one work? Another regex engine freakout?
FROGGS yeah... I still wonder if I will every use that
TimToady it's very difficult to write for anything that is not literal abbreviations 06:41
whereas it's easy for the NFA to simply return success instead of failure when it reaches as far as it can
FROGGS p6: grammar ASDF { rule TOP { ^ asdf $ } }; grammar FDSA is ASDF { method TOP($/) { callsame; $/.make: "fdsa" } }; say FDSA.parse("asdf")
camelia rakudo-moar 15c6fb: OUTPUT«Too few positionals passed; expected 2 arguments but got 1␤ in method TOP at /tmp/tmpfile:1␤ in block <unit> at /tmp/tmpfile:1␤␤»
FROGGS p6: grammar ASDF { rule TOP { ^ asdf $ } }; grammar FDSA is ASDF { method TOP { callsame; self.CURSOR.make: "fdsa" } }; say FDSA.parse("asdf") 06:42
camelia rakudo-moar 15c6fb: OUTPUT«Method 'CURSOR' not found for invocant of class 'FDSA'␤ in method TOP at /tmp/tmpfile:1␤ in block <unit> at /tmp/tmpfile:1␤␤»
TimToady surely you want to capture the return value of callsame into $/ 06:43
06:44 SevenWolf left
TimToady grammar ASDF { rule TOP { ^ asdf $ } }; grammar FDSA is ASDF { method TOP { my \m = callsame; m.make: "fdsa"; m } }; say FDSA.parse("asdf") 06:45
m: grammar ASDF { rule TOP { ^ asdf $ } }; grammar FDSA is ASDF { method TOP { my \m = callsame; m.make: "fdsa"; m } }; say FDSA.parse("asdf")
camelia rakudo-moar 15c6fb: OUTPUT«Method 'make' not found for invocant of class 'FDSA'␤ in method TOP at /tmp/o1gWyYnEgP:1␤ in block <unit> at /tmp/o1gWyYnEgP:1␤␤»
TimToady m: grammar ASDF { rule TOP { ^ asdf $ } }; grammar FDSA is ASDF { method TOP { my \m = callsame; m.CURSOR.make: "fdsa"; m } }; say FDSA.parse("asdf")
camelia rakudo-moar 15c6fb: OUTPUT«Method 'CURSOR' not found for invocant of class 'FDSA'␤ in method TOP at /tmp/9r5zfg8Qb0:1␤ in block <unit> at /tmp/9r5zfg8Qb0:1␤␤»
FROGGS m: grammar ASDF { rule TOP { ^ asdf $ } }; grammar FDSA is ASDF { method TOP { my \m = callsame; say m.WHAT; m } }; say FDSA.parse("asdf") 06:46
camelia rakudo-moar 15c6fb: OUTPUT«(FDSA)␤「asdf」␤»
FROGGS m: grammar ASDF { rule TOP { ^ asdf $ } }; grammar FDSA is ASDF { method TOP { my \m = callsame; say m.^mro; m } }; say FDSA.parse("asdf")
camelia rakudo-moar 15c6fb: OUTPUT«(FDSA) (ASDF) (Grammar) (Cursor) (Any) (Mu)␤「asdf」␤»
quietfanatic I got that far, but it doesn't return what I've made. 06:49
pmichaud sleepytime for me
be back tomorrow evening
TimToady sleep/drive well 06:50
quietfanatic You know, if regexes (as methods) simply returned what they either matched or made, this would be really easy. 06:51
TimToady yeah, always returning both is kinda silly 06:52
quietfanatic method TOP { return process(callsame); }
currently they return Mu
TimToady there are a few places in the P6 grammar that revisit the submatches after make, but not many
quietfanatic in those cases you could just save the matches inside of what you make manually 06:53
TimToady conceivably
06:57 mr-fooba_ left 06:58 mr-foobar joined 06:59 Ven joined
moritz good morning 07:00
yoleaux 11 Jun 2015 22:30Z <ab5tract> moritz: I pushed a 'choices' branch to doc.git for disambiguating, for instance, -f push
RabidGravy marnin
quietfanatic Not that I want to encourage yet another big refactor before Christmas, but having regex routines return their matches is more functional, more object-oriented, more composable, and simpler. 07:01
moritz .tell ab5tract nice. A few small comments: 1) you should probe for the 'fmt' executable before using it. 2) I don't like interactive prompts much; maybe just show the docs for all matches (much as 'man less more' does)? 3) the routine/method distinction in the user interface is weird, because Method ~~ Routine 07:02
yoleaux moritz: I'll pass your message to ab5tract.
quietfanatic and probably more optimizable.
okay I'm done for the night. Later everyone. 07:03
moritz quietfanatic: there's just one problem: those lists need to be lazy
quietfanatic which lists?
moritz and lazy lists aren't very fast
the list of possible matches
quietfanatic ah
I don't entirely understand the situation I guess 07:04
Do you mean this would require more lazy lists, or it would prevent them from working right? 07:06
well, I should really get to sleep soon. I'll be back later. 07:07
07:07 quietfanatic left
moritz it would mean more places where we need lazy lists, which are expensive 07:07
so a performance problem
pmichaud which are *currently* expensive
moritz yes 07:08
when they become faster, it might be worth evaluating the regex design again
RabidGravy does ':::' as a "package part separator" actually exist or is it being silently ignored or turned into something else? 07:09
moritz after all, the lazy list of matches/cursors is what the design docs say :-)
pmichaud regex methods return cursors, though. Making them return match objects will get expensive.
07:09 _mg_ joined
pmichaud (and returning match objects directly was pge's original model, which needed to be abandoned in favor of cursors) 07:11
RabidGravy lizmat, I don't think I'm going to be able to golf that crashiness - it doesn't even do it if I run the tests in question on their own, only with "panda-test" 07:19
but github.com/jonathanstowe/Audio-Snd...ree/crashy reliably does it with 2015.05-76-g94eed8f built on MoarVM version 2015.05 07:25
pmichaud Oh! The Slip type may also be a way to relax the need for immutable iterators! 07:30
very intriguing.
RabidGravy (and yes it does still do it with the correct "multi sub infix:<~~> ......)
dalek c/choices: cdff8ec | ab5tract++ | bin/p6doc:
Remove confusiong between routine/method
07:31
moritz pmichaud: do you have any links to Slip types? 07:33
07:33 kaare_ left
moritz googling for it mostly shows up clothing stuff :-) 07:33
Ven waves 07:34
dalek ecs: 15083d9 | pmichaud++ | S07-glr-draft.pod:
Add discussion note about immutable iterators.
07:36
pmichaud moritz: S07-glr-draft.pod describes the proposed Slip objects 07:37
(it's a type we just came up with today, largely replaces Empty)
07:39 g5 joined
RabidGravy (^(10)).map({$_}) isn't lazy is it? 07:40
pmichaud depends on the target 07:41
it can be lazy
07:41 [TuxCM] left
RabidGravy it's assigning to an array 07:41
pmichaud you didn't show that part. Array assignment is currently eager, yes. 07:42
RabidGravy I'm just looking for a qucker why to do "@foo = gather { take @bar[$_] for ^10 }"
pmichaud why use gather/take there? 07:43
RabidGravy where infact "10" could be a fairly large number
dalek ecs: c756e93 | pmichaud++ | S07-glr-draft.pod:
Fix grammatical error.
07:44
RabidGravy pmichaud, because it was the first thing that fell under my fingers ;-)
pmichaud at the moment gather/take is inherently slow.
(GLR will fix this.)
RabidGravy I know, hence "looking for a qucker why"
pmichaud still, a .map would almost certainly be a lot faster than gather/take.
RabidGravy but the actual number of items may be in the tens or even hundreds of thousands 07:45
pmichaud so?
you already have a map there, even using the given/take 07:46
you aren't avoiding the map
moritz the 'for' does a map too
and for/map can also be lazy
pmichaud take @bar[$_] for ^10 is the same as (^10).map( { take @bar[$_] } )
it actually compiles that way.
07:47 bin_005 left, bin_005_c joined
RabidGravy right, the question was probably more "will (^1000000).map({$_})" evaluate the range to make 1000000 items up front? 07:48
07:49 brrt joined
pmichaud no 07:49
range generation is lazy too :)
(in the current implementation, yes, it's possible you'll end up with 1000000 integers in memory before they get GC'd. But GLR is going to address that also.) 07:50
at any rate, it doesn't create 1000000 items "up front"
RabidGravy oh wait, "*** Error in `/home/jonathan/.rakudobrew/moar-nom/install/bin/moar': free(): invalid pointer: 0x0000000005af7cf0 ***" 07:51
pmichaud at least, it's not supposed to create them up front. I can't say what it's actually doing with the various "optimizations" that have been added since I last looked at the code :) 07:52
dalek ecs: 5681a77 | pmichaud++ | S07-glr-draft.pod:
Typo fix.
RabidGravy good grief, that only happens when it's run with "panda-test" as well 07:53
pmichaud sleep time for me for real now -- be back tomorrow evening 07:54
moritz m: say (1, (2, 3)).elems 07:55
camelia rakudo-moar 15c6fb: OUTPUT«2␤»
moritz m: say (1, 2..5).elems
camelia rakudo-moar 15c6fb: OUTPUT«2␤»
dalek ecs: e0fe72a | pmichaud++ | S07-glr-draft.pod:
Minor corrections.
08:01
08:02 gagalicious left
RabidGravy I'm beginning to conclude that this crashiness is partially due to libsndfile 08:02
08:02 virtualsue joined
RabidGravy ==4323== Invalid write of size 4 08:03
==4323== at 0x397FE2FBB9: ??? (in /usr/lib64/libsndfile.so.1.0.25)
08:07 virtualsue_ joined, virtualsue left, virtualsue_ is now known as virtualsue 08:08 llfourn left 08:11 darutoko joined 08:18 Ven left 08:27 zakharyas joined 08:32 itz joined, domidumont left
dalek c/choices: b10614c | ab5tract++ | bin/p6doc:
Check fmt before using it
08:41
08:43 nowan_ left, espadrine joined 08:45 nowan joined
RabidGravy gah, even more crashy on other machine, but again only with "panda-test" 08:45
08:47 espadrine_ joined 08:48 espadrine left
RabidGravy not just panda-test it seems 08:49
08:49 mattp__ left
RabidGravy "*** Error in `/home/jonathan/.rakudobrew/moar-nom/install/bin/moar': free(): invalid pointer: 0x00000000050104f0 ***" when run with prove as well 08:50
FROGGS RabidGravy: can you point me to your libsndfile code?
08:50 mattp__ joined
RabidGravy FROGGS, github.com/jonathanstowe/Audio-Sndfile 08:51
08:51 nebuchadnezzar left
RabidGravy it's very much in progress 08:52
I'm wondering whether the inner class is causing the instability when changing stuff
08:53 pyrimidine joined, cognominal joined, cdc left
RabidGravy it crapped out when I added the sub infix .... at the end, removing that worky again 08:53
FROGGS github.com/jonathanstowe/Audio-Snd...nfo.pm#L11
never return 'int', return something specific
08:54 itz left
FROGGS RabidGravy: I guess it should 'returns int32' 08:55
www.mega-nerd.com/libsndfile/api.html confirms
RabidGravy no fucking way
no crashy 08:56
FROGGS aye
RabidGravy FROGGS++
FROGGS int in Perl 6 means most like 64bits on your platform
likely*
hence the invalid read of 4
08:57 zakharyas left
FROGGS this is a very common (and frustrating) Stolperstein when getting into NativeCall 08:58
RabidGravy I'll check and clarify if necessary in the nativecall doc later 09:00
09:00 nebuchadnezzar joined
RabidGravy (if nothing else this is testing my ability to understand the documentation properly ;) 09:00
09:01 AlexDaniel joined
dalek ecs: f709a04 | (Steve Mynott)++ | S02-bits.pod:
a a to a
09:02
RabidGravy anyway, as it is likely to be very hot today we are going to the seaside :) catch you later
and cheers for that spot FROGGS 09:03
09:03 espadrine joined
FROGGS RabidGravy: have fun! 09:03
[Tux] paste.scsys.co.uk/488181 <= can rakudobrew please do some better cleanup? 09:04
09:07 RabidGravy left, espadrine_ left
FROGGS [Tux]: what has rakudobrew todo with this? 09:08
[Tux] that is the process that creates my perl6. I was just assuming it was the culprit 09:09
it isn't?
09:09 zakharyas joined
[Tux] what process *does* leave those files if it isn't? 09:09
itz_ the first google hit suggests Inline-Perl5 09:10
[Tux] In which case I'd like to rephrase my plea :) 09:11
tadzik paste.scsys.co.uk could use some better servers, that's for sure :)
[Tux] paste.scsys.co.uk/488181 <= can Inline::Perl5 please do some better cleanup?
FROGGS [Tux]: Inline::Perl5's build mechanism creates these tmp files
[Tux] tadzik, I tried to use github gists, but it seemd down/irresponsive 09:12
itz_ pokes tadzik about github.com/tadzik/panda/pull/164 :)
tadzik internet is acting funny today
09:15 breinbaas left, breinbaas joined
tadzik itz_: oh, right. I'll try to fix it later today 09:18
thanks for the reminder
09:30 gagalicious joined
gagalicious how do i match characters <200e> and <202c> ? 09:31
does anyone know what i mean? it's a special character.
FROGGS m: say "\x200e" ~~ / \x200e / 09:33
camelia rakudo-moar 15c6fb: OUTPUT«「‎」␤»
FROGGS m: say "\x200e" ~~ / \x200e | \x202c / 09:34
camelia rakudo-moar 15c6fb: OUTPUT«「‎」␤»
FROGGS gagalicious: that does it
m: say uniname "\x200e"
camelia rakudo-moar 15c6fb: OUTPUT«LEFT-TO-RIGHT MARK␤»
gagalicious i'm using perl5 ... $string=~s!\x202c! !g; <--- why doesnt this work? 09:35
FROGGS gagalicious: ohh, this is a Perl 6 channel, sorry 09:36
09:37 vendethiel left
FROGGS gagalicious: you might want to ask in the channel #perl-help on irc.perl.org 09:37
09:37 vendethiel joined
[Tux] $str =~ m/\x{200e}/ 09:38
gagalicious froggs : no one there at perl-help
FROGGS gagalicious: not here on freenode, on irc.perl.org, that's a different irc server
Timbus You mean like, Unicode Character 'POP DIRECTIONAL FORMATTING' (U+202C) ?
gagalicious funny i cant access irc.perl.org 6667 port? 09:39
[tux] : doesnt work
Timbus oh man i lagged out hard there 09:40
gagalicious ok i'm using the webchat for it
[Tux] $ perl -MDP -wE'my $foo = "Foo \x{200e} bar"; DPeek $foo; $foo =~ m/\x{200e}/ and say "MATCH"' 09:41
PV("Foo \342\200\216 bar"\0) [UTF8 "Foo \x{200e} bar"]
MATCH
but as FROGGS said. this channel is about perl6, not perl5
gagalicious i like perl a lot. will skim through here... see what perl6 is up to... is it production ready? perl6? a lot of people say... "wait and see" i wonder what they mean. i'm truly comfortable with perl5. so i'm not sure what perl6 has to offer... seriously. i really hope nothing change... coz i dont hv to learn something new... else pls make it backward compatible :D thanks.
Timbus i was going to say 'im pretty sure tux's works' but alright, i guess hca can go ahead and prove it really hard 09:42
gagalicious webchat irc.perl.org works! thanks.
Timbus he can*
09:42 bin_005_c left, bin_005_c joined 09:43 rurban joined, yeahnoob left 09:45 pecastro joined
Ulti gagalicious #perl on freenode is quite active 09:46
gagalicious yeah it is... just that they banned me from asking benchmark questions. i was having a lot of benchmark questions coz i was doing big data... funny i dont have that big data issue anymore coz i optimized a lot. but they banned me... oh well.
Ulti gagalicious if you are learning averse and pro backwards compatibility then Perl 6 isn't for you, Perl 5 is still maintained and developed though 5.22 just came out with loads of new features and more performance 09:47
gagalicious Ulti: u r right. i'm very impressed with the 22% speed improvement over 5.12
Ulti gagalicious you can call Perl 5 stuff from Perl 6 though so you can take your time learning
gagalicious Ulti : is there any advantage to switch to perl6? 09:48
09:48 AlexDaniel left
Ulti only if you are the kind of person who already appreciates a lot what other languages have had for a long time and the promise of some of the unique features in Perl 6 like Grammars 09:48
gagalicious Ulti : ... ok. i'm not technology adverse. it's good to see new things develop. 09:50
10:01 FROGGS[mobile] left 10:03 laouji left 10:05 gagalicious left 10:08 kaare_ joined 10:10 kaare__ joined 10:13 kaare_ left 10:15 dayangkun left 10:16 btyler left 10:17 btyler joined 10:19 zakharyas1 joined, zakharyas left 10:20 oetiker left 10:21 oetiker joined 10:22 Timbus left, Timbus joined 10:25 _mg_ left 10:27 domidumont joined 10:32 xinming left 10:33 xinming joined 10:34 kaare__ is now known as kaare_ 10:41 brrt left, beastd joined
dalek p: 996b4d4 | (Steve Mynott)++ | src/QRegex/P6Regex/Grammar.nqp:
correct typo
11:05
p: 5d6d942 | moritz++ | src/QRegex/P6Regex/Grammar.nqp:
Merge pull request #237 from stmuk/stmuk

correct typo
11:16 aborazmeh joined, aborazmeh left, aborazmeh joined 11:26 zakharyas joined 11:28 zakharyas1 left 11:38 zakharyas left 11:43 [particle] left 11:45 bin_005_c left 11:46 laouji joined 11:57 Ven joined 11:59 rurban left 12:02 _mg_ joined 12:07 Ven left, aborazmeh left 12:08 [particle] joined 12:10 aborazmeh joined, aborazmeh left, aborazmeh joined 12:15 Ven joined 12:17 aborazmeh left 12:18 mr-foobar left
Ven waves at #perl6 12:18
Reading the glr-draft, I get this feeling that "flat" should really be an adverb on "for". 12:19
It does feel too crazy to have it that way, though
12:19 muraiki joined
Ven admits to not really liking that `my @a = _` is different from `@a = _` 12:20
(it just feels weird to me, probably because I'm not used to it...)
I have one question, though: what are [] and {} useful for if they don't itemize? (I mean -- what makes them different from `()`) 12:21
(wrt list concat, I like haskell's ++. it's a pretty often used operator...) 12:27
muraiki Ven++ 12:28
(trying to make a pun using symbols) 12:29
Ven *g* 12:31
12:34 _mg_ left
muraiki but yeah I do like ++ as a list concat op 12:36
arnsholt I'm not sure if infix:<++> would be possible, since we already have postfix:<++> 12:37
12:37 Ven left 12:39 Ven joined
timotimo you have to put spaces in that case 12:39
we don't force people to put spaces around infix ops yet
pmichaud the difference between [] and () is that [] creates an Array and {} creates a Hash 12:41
timotimo that's not the difference between [] and () :)
pmichaud sorry
the difference between [], {}, and () is that [] creates an Array, {} creates a Hash, and () creates a List.
Better? 12:42
timotimo fair enough
so it's no longer about the scalar around it, but about the scalars inside
pmichaud and the type of the container itself
timotimo right 12:43
but the differentiation between array and list is mostly scalarification of the things inside?
pmichaud yes 12:44
timotimo 'k
pmichaud and perhaps also that arrays are "flat" 12:45
timotimo OK, so it's mostly LoL, rarely AoA?
pmichaud Not sure I follow that part. 12:46
timotimo well, you wouldn't use arrays for nesting, was my thought
pmichaud you can use arrays for nesting, yes.
my @a = [[1,2,3], [4,5, [7,8]], 9] # does what you expect.
timotimo so in what way are lists considered "flat"? 12:47
muraiki is there somewhere where an explanation of these things are written down? besides the irc logs of course ;)
timotimo er, i meant: "arrays considered 'flat'"
pmichaud once something goes into an array, it's already "flat". Flattening an array just returns the array itself, because all of its elements are itemized.
timotimo oh
i'd call that "firm" instead of "flat"
TimToady I don't think [] will flatten inside, though
by default
pmichaud right 12:48
anyway, I have to go check out of hotel and hit road -- bbl
timotimo oke
muraiki p6: my @a = [[1,2], [3,4]]; say @a[0];
camelia rakudo-moar 15c6fb: OUTPUT«1 2 3 4␤»
TimToady we'll probably strip all autoflattening from everything but slurpy, and then add things back in after we get a feel
timotimo i haven't been able to really follow the detailed changes and discussions, sadly
pmichaud timotimo: no problem, nobody has. That's why S07-glr exists. 12:49
muraiki: what we're discssing is written down in S07-glr-draft.pod in the design docs (specs)
gone
muraiki thanks
dalek ecs: cf95b0f | moritz++ | S07-glr-draft.pod:
Markup fix
12:50
muraiki how convenient 12:51
12:52 Ven left 12:55 bbkr_ joined 13:00 _mg_ joined, lolisa joined 13:01 lolisa left, lolisa joined 13:03 uncleyea1 is now known as uncleyear, _mg_ left, uncleyear left, uncleyear joined
muraiki ok, that clarifies a lot. but it makes me scared to write any p6 code in the meantime... 13:08
13:13 AlexDaniel joined
TimToady everything with a top-level comma should continue to work the same at least 13:14
well, with maybe an occasional flat thrown in 13:15
we might be able to detect where things could change and offer advice 13:16
muraiki thanks :) which then leads me to: I need to think of something to write in p6, hehe
13:19 zakharyas joined
itz_ www.bsdnow.tv/live is supposed to stream Bourne (of sh fame) shortly 13:20
timotimo so, has anybody started implementing the language in the latest xkcd? 13:23
13:25 bbkr_ left
muraiki heh, colors.sort yields "rainbow" 13:27
moritz m: class colors { method sort() { "rainbow" } }; say colors.sort 13:28
camelia rakudo-moar 15c6fb: OUTPUT«rainbow␤»
moritz nothin' easier than that
muraiki moritz++ 13:29
timotimo m: say NaN but "NaP" 13:31
camelia rakudo-moar 15c6fb: OUTPUT«NaP␤»
TimToady .tell dduncan the intention is that auth dominate version, such that each auth gets its own independent versioning scheme, and if two different auths match up their versions, it's by agreement or by accident, but not enforced
yoleaux TimToady: I'll pass your message to dduncan.
13:33 espadrine_ joined 13:34 g5 left 13:36 broquaint joined, espadrine left
gtodd1 can I build perl6 with linenoise/editline/readline in the repl ? .... 13:37
timotimo you need to install Linenoise via panda to get that
gtodd1 panda installing Linenoise after the fact creates some sort of strange loop with endless streams of ">" prompts appearing
timotimo :o
gtodd1 do I need to *disable* linenoise elsewhere (in nqp moar etc ... ) ? 13:38
timotimo no
muraiki whoa, what does "but" do? 13:40
gtodd1 hmm maybe perl6 can't find Linenoise after I panda it
muraiki I really need to finish the learn perl 6 in y minutes article
there's just endless amounts of things to learn
gtodd1 perl6 -V gives me more and different information than perl -V does :)
TimToady muraiki: do you know what a mixin is? 13:41
that's what 'but' does
gtodd1 timotimo: when the loop starts and the prompts start scrolling by it's moarvm that spikes my CPU :-D 13:42
Util muraiki: We don't know yet if it is endless, but at least it is a *lazy* list of things to learn :^)
13:43 skids joined
muraiki haha. I wasn't necessarily speaking about p6 but about programming in general. I've only been working as a programmer professionally for 1.5 years, and sometimes it's overwhelming 13:44
it's exciting, but overwhelming
gtodd1 I guess I'll just keep git pulling and rebuilding and panda installing and hope it goes away .... usually dioesn't take long
Util timotimo: For similar mixed-type humor, see the 4 minute lightning talk: www.destroyallsoftware.com/talks/wat
gtodd1 I only got paid to program once
itz_ m: say $().flat
camelia rakudo-moar 15c6fb: OUTPUT«Use of Nil in string context in block <unit> at /tmp/NOodX21fcp:1␤␤»
gtodd1 and it was for a perl script ! :-D 13:45
Util gtodd1: your coding career is flawless; 100% Perl!
itz_ m: say $().flat.perl
camelia rakudo-moar 15c6fb: OUTPUT«Use of Nil in string context in block <unit> at /tmp/TxMkxOlw8p:1␤("",)␤»
muraiki TimToady: I have a vague idea of what a mixin does, but apparently not enough to grok what's going on. but now I know what direction to look in. thanks!
gtodd1 yeah ... I charged 750$ a line ... too bad it was only one line :-D 13:46
muraiki haha
Util moritz++ ; # Providing key resource to new hackathon volunteer 13:47
gtodd1: ha! 13:48
gtodd1 hmmm ~/perl6/share/perl6/site/lib/ has various kinds of linenoisy things 13:51
TimToady .tell smls just to clarify, irclog.perlgeek.de/perl6/2015-06-11#i_10735146 is not quite truthy enough to be true; assignment to @ does not enforce Positional, it merely coerces any non-positional to a list of one element
yoleaux TimToady: I'll pass your message to smls.
TimToady ab5tract: note ^^ if you copied that anywhere 13:52
13:53 FROGGS left 13:54 tadzik left 13:55 tadzik joined
gtodd1 hmm running perl6 -MLinenoise sometestscript.p6 works ... 13:57
but the repl itself goes off looping madly .... This is perl6 version 2015.05-155-gd58e397 built on MoarVM version 2015.05-74-gc14339c 13:58
neat ... if I ktrace it .... : 14:01
hoelzro gtodd1: which OS are you on?
gtodd1 44391 moar GIO fd 1 wrote 2 bytes
"> "
....
44391 moar RET read -1 errno 35 Resource temporarily unavailable
FreeBSD
I thought one or two devs used FreeBSD :-D
hoelzro gtodd1: I think I saw this before when I wrote Linenoise, but I thought I fixed it 14:03
gtodd1 my Daddy always said "if you use the same OS as the devs you can haz more funz"
hoelzro is it a low level tty terminal sort of thing?
hoelzro it could be that this line is failing: github.com/hoelzro/p6-linenoise/bl...ise.pm#L69 14:04
because I'm dumb and lazy and didn't check for errors.
gtodd1 hoelzro: :-D
14:05 yqt joined
hoelzro gtodd1: you could try adding some error checking to that line, see if it doesn't succeed on FreeBSD 14:05
gtodd1 you mean like tell it to stop trying if it doesn't work? 14:08
14:08 ZuZu joined
hoelzro gtodd1: yeah, have it die or something 14:09
just so we can see if that's the problem
I'll fix it to be smarter once I know what the problem is 14:10
...
I think I already know
I'm betting these aren't the same on FreeBSD: github.com/hoelzro/p6-linenoise/bl...ise.pm#L11
14:11 telex left, msouth joined 14:12 telex joined
gtodd1 oh ... right I forgot it would use nativecall and maybe not find something you thought was there 14:12
hmm so modify Linenoise.pm but then rebuild so Linenoise.pm.moarvm since this is not "pure perl" 14:14
14:15 JimmyZ_ joined 14:18 laouji left
TimToady AlexDaniel: re irclog.perlgeek.de/perl6/2015-06-11#i_10738316 it's just a hash of match lists, so unordered; .caps is what returns captures in order, but that's less efficient since it basically has to sort them for you based on position 14:21
gtodd1 hoelzro ... well adding or die; makes it die :-) 14:24
hoelzro at that line 14:25
14:27 bjz joined
hoelzro gtodd1: excellent 14:29
if you'd like to dig more, I could use a trace of the program, or a print out of what errno contains
otherwise, I can spin up a FreeBSD VM later and have a look 14:30
this raises an interesting point of how to deal with C-defined constants and such
14:31 bjz left, bjz joined
hoelzro I forget - is there a way to get errno from Perl 6? 14:39
or does one need a wrapper function to get at it?
lizmat good *, #perl6 14:44
hoelzro: I don't know of a way to get at errno. suggest NativeCall for now :-) 14:45
AlexDaniel TimToady: I've already reported it: rt.perl.org/Public/Bug/Display.html?id=125391
hoelzro greetings lizmat
so you think I should include a helper library?
14:45 grondilu joined
AlexDaniel TimToady: so it seems like it should be even less efficient because it does not check .to right now 14:46
but I think that correctness is more important in this case
otherwise why bother with sorting at all, just shuffle it and let the user think about the rest 14:47
14:48 khisanth_ is now known as Khisanth
lizmat hoelzro: I'm not sure, but yes, that seems to be at least a temporary solution 14:50
but, maybe this is a X/Y
what are you trying to achieve>
?
hoelzro lizmat: I'm handling fcntl errors, so I'd like to include the strerror(errno) message in the message I fail() with 14:53
14:55 ZuZu left, RabidGravy joined 14:59 msouth left 15:00 rurban joined, espadrine_ is now known as espadrine, FROGGS joined 15:04 zakharyas left 15:06 msouth joined 15:11 kurahaupo1 left 15:13 captain-adequate joined 15:23 kaare__ joined 15:24 kaare_ left 15:25 kurahaupo1 joined, mr-foobar joined, diana_olhovik_ left 15:39 msouth_ joined, mr-foobar left, msouth left 15:43 virtualsue left 15:45 Zhtwn joined 15:46 virtualsue joined
Zhtwn I installed panda through rakudobrew, but projects.json is messed up - has HTML for timeout on design.perl6.org rather than valid JSON. Ideas? 15:46
FROGGS Zhtwn: do you say it can't fetch this? ecosystem-api.p6c.org/projects.json 15:47
timotimo do you get the same thing after another "panda update"?
tadzik LHF: make panda verify that the downloaded json is indeed json 15:48
FROGGS tadzik: not even P5's cpan client does that 15:49
tadzik a chance for us to excel
15:49 msouth_ left
Zhtwn fetching through wget works fine. re-did "rakudobrew build-panda", same results. I'll try "panda update". 15:49
tadzik would anyone mind opening a ticket real quick? 15:50
FROGGS I spent quite some time getting behind a weird error message.... the downloaded 01packages.tar.gz was an html page from a office proxy
Zhtwn Ah. gotta rm the broken projects.json before "panda update"
Yeah, I'll open a ticket
tadzik thank you Zhtwn
FROGGS Zhtwn++ 15:52
15:52 virtualsue left 15:53 virtualsue joined
gtodd1 hoelzro: well I have ktrace of perl6 trying to start ... the part where it gives error on non-blocking and interrupt i/o errrno 35 Resource temporarily unavailable 15:53
15:53 msouth joined
hoelzro gtodd1: I'm thinking that that's the result of fcntl failing 15:54
gtodd1 guess so
hoelzro I've started working on fixing the problem, but I don't know if I'll really be able to make headway until later today 15:55
gtodd1 k 15:56
www.freebsd.org/cgi/man.cgi?sektio...uery=fcntl Zzzzz .... OMG ... I have chores to do so BBL 15:58
Zhtwn yeah, "panda update" got same problem. downloaded "projects.json" directly, and it works. Thanks all. 15:59
FROGGS weird
I hope it is now about the latest changes to panda
though, unlikely
Zhtwn yup. no clue yet why wget works, but panda download always gets timeout, or why the timeout is on design.perl6.org, not ecosystem-api.p6c.org 16:00
16:04 gfldex joined
japhb Woah 16:06
hoelzro panda has an issue with ipv6 16:07
that's how I've seen such behavior in the past
timotimo design.perl6.org is the default vhost that th web server on p6c.org offers
japhb now knows where the 'Woah' went that was intended for another window ...
timotimo try whatisthisidonteven.perl6.org
16:12 wingfold joined
tadzik kekekekek 16:14
16:16 uncleyea1 joined 16:17 aborazmeh joined, aborazmeh left, aborazmeh joined, mr-foobar joined 16:19 uncleyear left
lizmat tadzik o/ 16:21
commuting for the rest of the day& 16:22
16:22 lizmat left, aborazmeh left 16:23 wingfold_ joined 16:25 diana_olhovik_ joined 16:26 aborazmeh joined, aborazmeh left, aborazmeh joined, wingfold left 16:28 lolisa left 16:29 yqt left
Woodi hallo today :) 16:29
16:31 aborazmeh left
Woodi yesterday I wished rewrite of history to remove Parcels but looks I messed Parcels with Pairs which are similiar to Lisp cons/car/cdr thingies... 16:31
Parcel looks like C struct containing List... and with Captures it creates some strange device :) I wonder from where it was borrowed... 16:33
also Ranges looks complicated a bit... I think they are mainly syntax and when they are accesed they immediatelly slipping into List... 16:36
16:37 domidumont left
Woodi so Slip is more behaviour then data structure or operator... 16:37
and about big lists or streams of data viewed by list/array window: en.wikipedia.org/wiki/Sliding_window_protocol 16:38
16:41 JimmyZ_ left
Woodi and one thing more: we have Iterators, maybe Visitor pattern could be usefull too 16:42
16:42 yqt joined
dalek c/choices: 35ea309 | ab5tract++ | bin/p6doc:
Make interactivity an env var -- P6DOC_INTERACT
16:48
16:50 rurban left 16:52 domidumont joined 16:56 xinming left 16:57 xinming joined 17:06 rurban joined 17:16 espadrine left 17:18 mr-foobar left 17:20 mr-foobar joined
ab5tract .tell moritz done, done, and done ;) 17:23
yoleaux 07:02Z <moritz> ab5tract: nice. A few small comments: 1) you should probe for the 'fmt' executable before using it. 2) I don't like interactive prompts much; maybe just show the docs for all matches (much as 'man less more' does)? 3) the routine/method distinction in the user interface is weird, because Method ~~ Routine
ab5tract: I'll pass your message to moritz.
17:27 cognominal left 17:32 wingfold joined 17:36 wingfold_ left 17:37 mr-fooba_ joined 17:39 xfix joined, xfix left, xfix joined 17:41 mr-foobar left 17:43 labster joined
dalek kudo/nom: af886d1 | TimToady++ | src/core/Match.pm:
include .to for .caps order tiebreaker

fixes #125391
17:43
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125391
17:48 wingfold left
AlexDaniel cool 17:50
17:51 yqt left
AlexDaniel TimToady: now if only somebody fixed this bug that I keep stumbling upon all the time: rt.perl.org/Public/Bug/Display.html?id=125285 17:53
:)
lately I have figured out that it is not only limited to % or %% 17:56
labster Yes, I'm a fan of fixing that grammar bug too. Or explaining why it's working correctly, and what we're doing wrong.
AlexDaniel \o/ 17:57
TimToady AlexDaniel: I know what's wrong, but I'd like to fix it by moving forward rather than backward :)
18:07 cognominal joined
japhb
.oO( "... and always twirling, twirling, twirling towards freedom!" )
18:09
18:10 mr-fooba_ left 18:11 daotoad joined, daotoad left 18:12 mr-foobar joined 18:17 mr-foobar left 18:27 Sqirrel joined 18:31 labster left 18:35 Zhtwn left
tony-o_ is that a bug with the way the match prints out or the grammar itself? if you .Str $1 in the case above then it prints out as you'd expect, if it was a bug in the grammar i'd expect it'd stringify each one and come out ffofoo 18:36
18:48 lembark joined 18:49 yqt joined
msouth hi lembark 18:49
lembark hello
Q: Where is p6 equivalent of "local $ENV{ foobar } = '' " described? I've gotten to $*ENV{ PGDATABASE } but not sure if "temp" is the correct alternative. 18:50
hmmm... looks like 'temp' was the right place to be. 18:51
ugexe $*TMPDIR ?
or a temporary variable 18:52
18:54 rurban left 18:55 mr-foobar joined
lembark Not a temp variable, temp value for a hash value (e.g., p5 as "local $ENV{PGDATABASE} = 'foobar';"). 18:58
19:00 nys joined 19:04 yqt left 19:05 diana_olhovik_ left
flussence m: say %*ENV<PATH>; { temp %*ENV<PATH> = '/bin:/sbin'; say %*ENV<PATH> }; say %*ENV<PATH> 19:16
camelia rakudo-moar af886d: OUTPUT«/home/camelia/perl5/perlbrew/bin:/home/camelia/perl5/perlbrew/perls/perl-5.20.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin␤/bin:/sbin␤/home/camelia/perl5/perlbrew/bin:/home/camelia/perl5/perlbrew/perls/perl-5.20.1/bin:/usr/local/s…»
flussence bah
m: say %*ENV<PATH>.chars; { temp %*ENV<PATH> = '/bin:/sbin'; say %*ENV<PATH> }; say %*ENV<PATH>.chars
camelia rakudo-moar af886d: OUTPUT«144␤/bin:/sbin␤144␤»
19:16 lembark left 19:18 [particle] left, diana_olhovik_ joined, bin_005 joined 19:19 xfix left 19:24 [particle] joined 19:28 yqt joined 19:31 bin_005_p joined 19:33 bin_005 left 19:42 dwarring joined 19:48 domidumont left 19:51 muraiki left 19:59 rurban joined 20:03 Zhtwn joined 20:07 xinming left, skids left, |Tux| left, Patterner left, dj_goku left, nwc10 left, maettu left, _sri left, xiaomiao left, bonsaikitten joined, dj_goku joined, dj_goku left, dj_goku joined, moritz joined, espadrine joined, xinming joined 20:08 nwc10 joined, |Tux| joined, Patterner joined 20:09 maettu joined, skids joined 20:12 _sri joined 20:25 spider-mario joined 20:32 darutoko left 20:36 FROGGS left 20:51 kaare__ left 20:57 Gardner joined
Zhtwn I'm getting an unhandled exception with perl6-debug-m on Perl6::TypeGraph (from perl6/doc): gist.github.com/Zhtwn/06bda4ea1932075be431 21:02
gist has traces both with and without --ll-exception 21:03
21:04 msouth left 21:07 bin_005_p left
Zhtwn I'm also seeing 0xffffffff line numbers: CORE.setting.moarvm:reify:4294967295 21:10
21:10 telex left 21:11 skids left 21:12 telex joined 21:14 wingfold joined 21:18 Gardner left 21:22 bin_005 joined 21:23 diana_olhovik_ left
timotimo fwiw, those are instruction indices, not line numbers 21:25
but that's still not cool
Zhtwn ah, gotcha
timotimo for a .moarvm file you get instruction indices, for everything else you get line numbers; hopefully you get both most of the time
21:26 preyalone left
Zhtwn Yup, they're there: "from src/gen/m-CORE.setting:10088". 21:27
timotimo good 21:28
Zhtwn fwiw, the 0xffffffff doesn't seem to show up when using --ll-exception
timotimo i think in some places we search for a line number annotation and set -1 if we can't find one, and that probably gets reinterpreted as unsigned at some point 21:31
but for bytecode number that doesn't make too much sense
Zhtwn ah, that's a reasonable explanation. 21:33
21:38 AlexDaniel left, rurban left
cognominal I am dabbling with a slang. Is it possible to use QAST from Perl 6? 21:38
21:40 lembark joined
cognominal now, I remember, there something like :from<nqp> 21:43
probably more like :from<NQP> 21:49
21:50 quietfanatic joined
quietfanatic p6: sub foo (Str @args) { @args }; say foo(['a', 'b', 'c']) 21:50
camelia rakudo-moar af886d: OUTPUT«Type check failed in binding @args; expected 'Positional[Str]' but got 'Array'␤ in sub foo at /tmp/tmpfile:1␤ in block <unit> at /tmp/tmpfile:1␤␤»
quietfanatic p6: sub foo (Str @args) { @args }; say foo(('a', 'b', 'c')) 21:51
camelia rakudo-moar af886d: OUTPUT«Type check failed in binding @args; expected 'Positional[Str]' but got 'Parcel'␤ in sub foo at /tmp/tmpfile:1␤ in block <unit> at /tmp/tmpfile:1␤␤»
quietfanatic p6: sub foo (Str() @args) { @args }; say foo(('a', 'b', 'c'))
camelia rakudo-moar af886d: OUTPUT«Type check failed in binding @args; expected 'Positional[Any]' but got 'Parcel'␤ in sub foo at /tmp/tmpfile:1␤ in block <unit> at /tmp/tmpfile:1␤␤» 21:52
quietfanatic p6: sub foo (Str() @args) { @args }; say foo(['a', 'b', 'c'])
camelia rakudo-moar af886d: OUTPUT«Type check failed in binding @args; expected 'Positional[Any]' but got 'Array'␤ in sub foo at /tmp/tmpfile:1␤ in block <unit> at /tmp/tmpfile:1␤␤»
quietfanatic I has a sad. 21:53
p6: sub foo (Positional[Str] @args) { @args }; say foo(['a', 'b', 'c'])
camelia rakudo-moar af886d: OUTPUT«Type check failed in binding @args; expected 'Positional[Positional[Str]]' but got 'Array'␤ in sub foo at /tmp/tmpfile:1␤ in block <unit> at /tmp/tmpfile:1␤␤»
quietfanatic p6: sub foo (Positional[Str] $args) { $args }; say foo(['a', 'b', 'c'])
camelia rakudo-moar af886d: OUTPUT«Type check failed in binding $args; expected 'Positional[Str]' but got 'Array'␤ in sub foo at /tmp/tmpfile:1␤ in block <unit> at /tmp/tmpfile:1␤␤»
quietfanatic p6: sub foo (Positional $args) { $args }; say foo(['a', 'b', 'c']) 21:54
camelia rakudo-moar af886d: OUTPUT«a b c␤»
quietfanatic p6: sub foo (Positional[Any] $args) { $args }; say foo(['a', 'b', 'c'])
camelia rakudo-moar af886d: OUTPUT«Type check failed in binding $args; expected 'Positional[Any]' but got 'Array'␤ in sub foo at /tmp/tmpfile:1␤ in block <unit> at /tmp/tmpfile:1␤␤»
quietfanatic p6: sub foo (Positional[Mu] $args) { $args }; say foo(['a', 'b', 'c'])
camelia rakudo-moar af886d: OUTPUT«Type check failed in binding $args; expected 'Positional[Mu]' but got 'Array'␤ in sub foo at /tmp/tmpfile:1␤ in block <unit> at /tmp/tmpfile:1␤␤»
quietfanatic sub foo (Str @a) { @a }; my @b = 'a', 'b', 'c'; say foo @b; 21:55
p6: sub foo (Str @a) { @a }; my @b = 'a', 'b', 'c'; say foo @b;
camelia rakudo-moar af886d: OUTPUT«Type check failed in binding @a; expected 'Positional[Str]' but got 'Array'␤ in sub foo at /tmp/tmpfile:1␤ in block <unit> at /tmp/tmpfile:1␤␤»
quietfanatic p6: sub foo (Str @a) { @a }; my Str @b = 'a', 'b', 'c'; say foo @b;
camelia rakudo-moar af886d: OUTPUT«a b c␤»
quietfanatic I at least expected the Str() one to work.
p6: sub foo (Str() @a is copy) { @a }; say foo(('a', 'b', 'c')); 21:56
camelia rakudo-moar af886d: OUTPUT«Type check failed in binding @a; expected 'Positional[Any]' but got 'Parcel'␤ in sub foo at /tmp/tmpfile:1␤ in block <unit> at /tmp/tmpfile:1␤␤»
quietfanatic p6: sub foo (Positional[Str]() $a) { $a }; say foo(('a', 'b', 'c'));
camelia rakudo-moar af886d: OUTPUT«Method 'Positional[Str]' not found for invocant of class 'Parcel'␤ in sub foo at /tmp/tmpfile:1␤ in block <unit> at /tmp/tmpfile:1␤␤»
RabidGravy m: sub foo (Str @a) { @a }; my @b = 'a', 'b', 'c'; say foo |@b;
camelia rakudo-moar af886d: OUTPUT«Too many positionals passed; expected 1 argument but got 3␤ in sub foo at /tmp/BSmGrN44in:1␤ in block <unit> at /tmp/BSmGrN44in:1␤␤»
RabidGravy m: sub foo (Str *@a) { @a }; my @b = 'a', 'b', 'c'; say foo |@b; 21:57
camelia rakudo-moar af886d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/cj68VZiOxv␤Slurpy positionals with type constraints are not supported.␤at /tmp/cj68VZiOxv:1␤------> 3sub foo (Str *@a7⏏5) { @a }; my @b = 'a', 'b', 'c'; say foo␤ expecting any of:␤ con…»
RabidGravy out of options
quietfanatic sub foo (Positional $a) { $a }; say foo(('a', 'b', 'c'))
p6: sub foo (Positional $a) { $a }; say foo(('a', 'b', 'c')) 21:58
camelia rakudo-moar af886d: OUTPUT«a b c␤»
quietfanatic p6: sub foo (Str @a) { @a }; say foo((Array of Str)('a', 'b', 'c')); 21:59
camelia rakudo-moar af886d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Two terms in a row␤at /tmp/tmpfile:1␤------> 3sub foo (Str @a) { @a }; say foo((Array7⏏5 of Str)('a', 'b', 'c'));␤ expecting any of:␤ infix␤ infix stopper␤ st…»
quietfanatic p6: sub foo (Str @a) { @a }; subset StrArray of Array of Str; say foo(StrArray('a', 'b', 'c'));
camelia rakudo-moar af886d: OUTPUT«Cannot invoke this object (REPR: Uninstantiable, cs = 0)␤ in block <unit> at /tmp/tmpfile:1␤␤»
quietfanatic p6: sub foo (Str @a) { @a }; say foo(my Str @ = ('a', 'b', 'c')); 22:00
camelia rakudo-moar af886d: OUTPUT«a b c␤»
quietfanatic Well at least it's possible. 22:01
22:14 beastd left
quietfanatic p6: say (reduce *+*, 1, 2).WHAT 22:17
camelia rakudo-moar af886d: OUTPUT«(Int)␤»
quietfanatic p6: say (reduce *+*, 1).WHAT
camelia rakudo-moar af886d: OUTPUT«(List)␤»
quietfanatic Hah. If that isn't a reportable bug, I don't know what is.
p6: say (reduce *+*).WHAT
camelia rakudo-moar af886d: OUTPUT«(List)␤»
quietfanatic that should probably be Empty 22:18
or Slip() :)
22:23 virtualsue left
quietfanatic Or maybe Nil 22:25
Ulti re: Slip or Seq plz don't go with Seq since it's a class name we'd want in bioinfo land
also what's wrong with Void that's empty sounding and yet to be used and exists in most languages :P 22:26
my flat has a bikeshed I like hanging out down there polishing my bike 22:27
TimToady it's not just for 0 values of Void :) 22:33
quietfanatic Well we want it to be a general list inserter, so it should be something that makes sense with values in it. 22:34
I stlil like prefix:<|> the best. :) 22:35
We already make pair syntax mean something special in function parameters, so I don't see why | can't be the same. 22:36
Ulti then Slot was kind of nice... 22:40
since its both the noun and the verb
you slot things into slots
22:43 sue_ left, Khisanth left 22:44 sue joined 22:46 Khisanth joined, RabidGravy left 22:47 wingfold left
cognominal m: use QAST:from<NQP> 22:51
camelia ( no output )
22:55 spintronic left 23:03 skids joined 23:05 spintronic joined
spintronic Hi guys, what is the best way to read a tab separated file into a multidimensional array? 23:06
23:07 elimik31 joined 23:08 spider-mario left
flussence if "multi" means "2"... $filename.IO.lines».split(/\t/) should work fine 23:13
spintronic flussense: yes, in 2-D. Thank you! 23:14
ugexe im starting to wonder if some moar async IO problems are caused by "/* For now, take last character. */" in re: setting input line seperator because in IO::Socket::INET $sep-len is used in a substr (so if a "\r\n" is passed it would leave "\r" but $sep-len would still be 2). JVM properly splits multi character input line seperators, and hence properly handles `start { <handle chunked encoding or keep-alive> } 23:22
` (moar does not)
my $sock = IO::Socket::INET.new(:host<httpbin.org>, :port(80)); $sock.send("GET /stream-bytes/1024?chunk_size=100\r\nHost: httpbin.org\r\n\r\n"); my $data = utf8.new; await start { while my $d = $sock.recv(:bin) { $data ~= $d; }; }; say $data.bytes; # returns 1024 on jvm, 0 on moar 23:23
timotimo oh 23:25
huh
we didn't get the multi-linesep-thingie yet?
23:25 nys left 23:27 bin_005 left, bin_005 joined 23:29 pecastro left
spintronic @data = $filename.IO.lines>>.split(/\t/) appears to give me a 1-D array instead of 2-D. 23:33
ugexe nickl@localhost:~/perl6/zef$ perl6 -e 'my $sock = IO::Socket::INET.new(:host<httpbin.org>, :port(80)); $sock.input-line-separator = "TT"; $sock.send("GET /\r\nHost: httpbin.org\r\n\r\n"); say $sock.get'
<!DOCT
tony-o ugexe++
yoleaux 24 May 2015 18:16Z <jdv79> tony-o: HTML::Parser::XML seems broken and/or super slow
25 May 2015 17:41Z <jdv79> tony-o: yeah, its not deprecations or warnings - its just too slow:(
31 May 2015 02:11Z <timotimo> tony-o: in general i'm okay with being pm'd by anyone at any time :)
tony-o i've seen all these yoleaux 23:34
ugexe there isnt even a TT in <!DOCTYPE
tony-o supports your idea of it only matching on the first character
ugexe hopefully... this probably isnt a difficult fix 23:35
timotimo i've seen all these yoleauxes
23:38 captain-adequate left 23:40 egrep left
quietfanatic pardon me if this is a basic question, but why doesn't this work? 23:41
p6: class A { sub foo { } }; class B is A { method bar { foo } }; B.new.bar
camelia rakudo-moar af886d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Undeclared routine:␤ foo used at line 1␤␤»
ugexe m: class A { method foo { } }; class B is A { method bar { $.foo } }; B.new.bar 23:43
camelia ( no output )
ugexe or do you want to know specifically why the sub did not work
flussence m: class A { our sub foo { } }; class B is A { method bar { foo } }; B.new.bar
camelia rakudo-moar af886d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/qzjFvbaCr2␤Undeclared routine:␤ foo used at line 1␤␤»
flussence m: class A { our sub foo { } }; class B is A { method bar { self::foo } }; B.new.bar 23:44
camelia rakudo-moar af886d: OUTPUT«Could not find symbol '&foo'␤ in method bar at /tmp/1a1599EvJx:1␤ in block <unit> at /tmp/1a1599EvJx:1␤␤»
flussence hm, I dunno.
quietfanatic hm 23:45
I guess I'm too much in C++ mode 23:46
flussence m: class A { sub foo { } }; class B does A { method bar { foo } }; B.new.bar 23:48
camelia rakudo-moar af886d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/V0tAtVERXV␤A is not composable, so B cannot compose it␤at /tmp/V0tAtVERXV:1␤»
flussence m: role A { sub foo { } }; class B does A { method bar { foo } }; B.new.bar
camelia rakudo-moar af886d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/1_ORI8Ze3c␤Undeclared routine:␤ foo used at line 1␤␤»
flussence m: module A { sub foo { } }; class B does A { method bar { foo } }; B.new.bar 23:49
camelia rakudo-moar af886d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/oCSNXOhpwI␤A is not composable, so B cannot compose it␤at /tmp/oCSNXOhpwI:1␤»
23:58 cognominal left, spintronic left