»ö« 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 moritz on 25 December 2014.
00:04 raiph left 00:11 BigBear left 00:12 BigBear joined 00:15 adu left 00:20 Ven left 00:23 adu joined
adu what's the best way to loop over an integer range? 00:28
TimToady depends on what you're gonna do with it 00:32
00:34 BigBear left 00:36 adu left 01:11 Ven joined 01:17 psch left
japhb
.oO( What's the best way to skin^Wpet a cat? )
01:21
01:51 adu joined 01:55 abraxxa joined 02:00 colomon left 02:03 colomon joined
raydiak
.oO( either way, any<food catnip tranquilizers> would cut it )
02:15
.oO( s/\</ </ )
02:21
02:23 rmgk_ joined, rmgk is now known as Guest62170, Guest62170 left, rmgk_ is now known as rmgk 02:32 adu left 02:45 labster joined
dalek p: 9675236 | (Geoffrey Broadwell)++ | t/concurrency/01-thread.t:
First concurrency test file, including basic thread tests. Note: hangs on nqp-m (works fine on nqp-j), so not adding to standard test list yet.
02:55
02:59 adu joined
adu TimToady: iterate over two lists of the same size 03:01
03:06 sirdancealot joined 03:07 atta_ is now known as atta
raydiak the ^$n syntax is nice for 0..$n-1, but you don't really need that to iterate over 2 lists of the same size 03:08
m: my @a = <a b c>; my @b = <x y z>; for @a Z @b -> $a, $b {say "$a,$b"} 03:09
camelia rakudo-moar 80b912: OUTPUT«a,x␤b,y␤c,z␤»
03:16 khisanth_ joined
japhb .tell jnthn There's a hang on nqp-m (but not nqp-j) on the threading test I just added to NQP. See github.com/perl6/nqp/commit/96752368eb . 03:19
yoleaux japhb: I'll pass your message to jnthn.
03:29 xinming joined 03:40 noganex joined 03:42 noganex_ left
dalek p: ad5d59e | (Geoffrey Broadwell)++ | t/concurrency/02-lock.t:
Second concurrency test file, including basic lock and condvar tests. Works fine on nqp-m and nqp-j, though the lock effectiveness test is a bit slow on nqp-j, and may be too fast on nqp-m.
04:08
04:13 Ven left 04:15 raiph joined
japhb Is there a convention for indicating testing todo's in the NQP repo? If I $*RL intervenes before I finish all the NQP concurrency tests, I'd like the next person to know what's left to cover .... 04:18
s/ I / /;
04:22 telex left 04:24 telex joined
TimToady rosettacode.org/wiki/Penney%27s_game#Perl_6 04:54
(Friday Night Fun!) 04:56
05:04 raiph left, Mso150 joined
adu raydiak: just Z? 05:07
where is that defined and/or documented? 05:08
ugexe doc.perl6.org/language/operators#infix_Z
adu ugexe: sweet, thanks 05:12
dalek p: 8dfb270 | (Geoffrey Broadwell)++ | README.pod:
Update copyright date to 2015, since we've got 2015 commits
05:14
05:25 Mso150 left, abraxxa left
dalek p: 92e4dcc | (Geoffrey Broadwell)++ | t/concurrency/TODO:
Add a TODO for t/concurrency to track untested bits
05:27
TimToady r: say «Foo Bar Baz "Some Stuff"»[0]
camelia rakudo-{parrot,moar} 80b912: OUTPUT«Foo Bar Baz␤»
TimToady this looks like a bug
jnthn: ^^^ your quotewords code? 05:39
adu r: [1] + [2, 3, 4] 05:51
camelia ( no output )
adu r: [1] ~ [2, 3, 4] 05:52
camelia ( no output )
adu r: say [1] ~ [2, 3, 4]
camelia rakudo-{parrot,moar} 80b912: OUTPUT«12 3 4␤»
adu r: say [1] + [2, 3, 4]
camelia rakudo-{parrot,moar} 80b912: OUTPUT«4␤»
adu r: say [1].push([2, 3, 4]) 05:54
camelia rakudo-{parrot,moar} 80b912: OUTPUT«1 2 3 4␤»
adu r: say ([1].push([2, 3, 4])).perl
camelia rakudo-{parrot,moar} 80b912: OUTPUT«Array.new(1, [2, 3, 4])␤»
adu say {my $x = [2, 3, 4]; $x.push(1); $x} 05:55
r: say {my $x = [2, 3, 4]; $x.push(1); $x}
camelia rakudo-parrot 80b912: OUTPUT«-> ($_? is parcel) { #`(Block|-443205019655573644) ... }␤»
..rakudo-moar 80b912: OUTPUT«-> ($_? is parcel) { #`(Block|56118656) ... }␤»
adu r: my $x = [2, 3, 4]; $x.push(1); say $x.perl 05:57
camelia rakudo-{parrot,moar} 80b912: OUTPUT«[2, 3, 4, 1]␤»
adu r: my $x = [2, 3, 4]; $x.unshift(1); say $x.perl 05:58
camelia rakudo-{parrot,moar} 80b912: OUTPUT«[1, 2, 3, 4]␤»
adu finally
why is the prepend method called unshift? 05:59
06:06 jack13 joined
ugexe i think unshift has been so common for so long it would be strange to call it anything else 06:09
same meaning across many languages, just like shift push pop 06:10
otherwise it might make sense to call it something else
06:35 jack13 left 06:43 jack13 joined, mr-foobar joined 07:06 jack13 left
raydiak adu: the idea is basically that you shift an element off the top of an array...and all the elements under it shift up to remove the gap.... 07:08
so unshift is the opposite
adu raydiak: I just figured out something for debugging
raydiak yeah?
adu so the statement "say $x.perl" is recursive 07:09
and I changed "<operands=inclusive-or-expression>" to "<operands=.inclusive-or-expression>" and the print output finished in 10% of the the first time
because it was printing log(n) fewer lines 07:10
pjablons adu: One warning about say $x.perl: If you've got circular references, it'll infinite loop.
adu I'll try to do as little debugging as possible then 07:11
raydiak yeah I actually had something started to fix that, but it's still wildly experimental and so only exists on my own hard drive
adu raydiak: it's not so much a bug as an O(n) problem 07:12
there are like 20 precedence levels in C, and if each level was assigning 4 members on the match object, then that's 4^20 times as many things to print 07:13
well, I might have overexaggerated 07:14
raydiak ah yeah I could see that becoming problematic
adu so now I'm just assigning 2: $operator, and @operands
so now it's 2^20 07:15
well, 20
anyways
forget the math
raydiak exponentially less, yes
adu I guess the general rule is not to alias 07:16
raydiak for printing it all out, I guess...maybe just better to be more selective about what you print for debugging? 07:17
adu When I have the AST working, I can see that being a possibility, like only structs or only functions 07:18
also, I'm wondering if there's a way to have multiple parser actions 07:19
raydiak like to accomplish what? 07:20
adu like can you have parser actions that get run after the grammar is parsed and after the AST actions have completed?
like lots of AST libraries use the visitor pattern 07:21
like visit_Expression, visit_IfStatement, etc.
and you implement those if you are interested to get that info
JimmyZ didn't we have method sym:<if> { ... } ? 07:22
method EXPR() { } 07:23
raydiak is reading en.wikipedia.org/wiki/Visitor_pattern and hoping to catch up :)
adu JimmyZ: yes, but I'm currently using that for building the AST, but what about AST consumers?
JimmyZ: C11Lexer is a grammar, C11Parser is a grammar that inherits C11Lexer ("is" in Perl6 speak), CAST is a bunch of classes for representing C source, and CASTActions is a class which can be passed to the parse() grammar method, but there doesn't seem to be a place for AST consumers to go in the Perl6 grammar model 07:25
TimToady rosettacode.org/wiki/Heronian_triangles
TimToady thinks the Perl 6 solution is rather more readable than the Python solution, but it is possible he is slightly prejudiced in the matter... 07:27
07:32 Woodi joined
raydiak adu: perhaps something you could implement as a separate module? you are right that I don't think we have a "grep the tree you made with actions" construct, per se 07:37
if I follow correctly
adu yeah, certainly possible to hack something up
07:37 xfix joined 07:38 kaare__ joined
adu I think the way Python does it is getattr(self, 'visit_' + typename) 07:38
raydiak oh we certainly support dynamicisim of that kind, if that's all it requires 07:39
xfix Why this Perl 6 solution uses "sort *.fmt('%05d')"? 07:40
For me it looks like some sort of hack.
raydiak xfix: not sure what you mean...what is wrong with it? 07:42
xfix Why is a number changed into a string in order to sort it? 07:43
raydiak to change how it sorts
oh you mean because it should work without it? 07:44
xfix (well, ok, it's list, but still)
TimToady yes, that's a hack, because it's not (yet) smart enough to figure out when sorting arrays that the individual columns are numeric 07:45
I thought it used to do that, but perhaps I'm confabulating 07:46
xfix So, it's not implemented.
In Python, i can write sorted([(1, 10), (1, 9)]), and get [(1, 9), (1, 10)]. 07:47
TimToady supposed to work that way here too
maybe I'm remembering it working in niecza
raydiak sees time, goes to make some meaningless commit for the github streak...why? not sure... 07:48
TimToady p6: say ([1,10], [1,9]).sort 07:50
camelia rakudo-{parrot,moar} 80b912: OUTPUT«1 10 1 9␤»
TimToady n: say ([1,10], [1,9]).sort
camelia niecza v24-109-g48a8de3: OUTPUT«(signal ABRT)Stacktrace:␤␤ at <unknown> <0xffffffff>␤ at (wrapper managed-to-native) object.__icall_wrapper_mono_gc_alloc_string (intptr,intptr,int) <0xffffffff>␤ at (wrapper alloc) object.AllocString (intptr,int) <0xffffffff>␤ at string…»
TimToady oh, yeah, it's busticated
raydiak now 1 year and 1 day since last niecza commit...about to be 2 days 07:51
TimToady m: say [1,10] cmp [1,9] 07:57
camelia rakudo-moar 80b912: OUTPUT«Less␤»
raydiak tries the heronian triangles example...after a couple minutes of waiting, wonders what kind of a machine TimToady was running this on
TimToady that's the basic problem
no list version of cmp
odd omission 07:58
raydiak oh there it came back...nicely formatted, TimToady++
heh now I see why you were comparing it to python...those are the only two solutions so far 08:00
m: say [1,2] cmp [1,1] 08:04
camelia rakudo-moar 80b912: OUTPUT«More␤»
raydiak m: say [1,1] cmp [1,2]
camelia rakudo-moar 80b912: OUTPUT«Less␤»
raydiak m: say [1,1] cmp [1,1]
camelia rakudo-moar 80b912: OUTPUT«Same␤»
raydiak hrm seems right 08:05
xfix raydiak, that's because it stringifies them to "1 1" and "1 2".
raydiak oh
Timbus its comparing the elements string-wise i think
ah. beaten
raydiak m: my $a = 0 but '9'; [1,$a] cmp [1,1]; 08:07
camelia ( no output )
raydiak m: my $a = 0 but '9'; say [1,$a] cmp [1,1];
camelia rakudo-moar 80b912: OUTPUT«More␤»
raydiak yeah I don't even know what that *should* do :)
TimToady > say [1,10] cmp [1,9] 08:09
More
spectesting... 08:11
Timbus he did it :o
08:14 darutoko joined
TimToady m: multi sub infix:<cmp>(@a, @b) { (@a Zcmp @b).first(&prefix:<?>) || @a <=> @b }; say [1,10] cmp [1,9] 08:17
camelia rakudo-moar 80b912: OUTPUT«More␤»
dalek ast: 53ec502 | TimToady++ | S03-operators/cmp.t:
some tests for cmp of numeric lists
08:32
kudo/nom: e4e9cf8 | TimToady++ | src/core/List.pm:
cmp on lists should distribute to columns
kudo/nom: 167f5f4 | TimToady++ | src/core/List.pm:
oops, <=> can already return Same
Timbus hmm. would it be more correct to compare by length first? 08:36
08:37 ribasushi joined
Timbus no 08:37
TimToady I don't think so
m: say "ac" leg "abd"
camelia rakudo-moar 80b912: OUTPUT«More␤»
Timbus pity, because that would be a lot faster :p
TimToady not if one of the lists is huge :)
raydiak or infinite 08:38
TimToady that's a kind of huge :)
where it gets a little weird is here: 08:39
m: say [1,10] cmp [1,10,-12345]
camelia rakudo-moar 80b912: OUTPUT«Less␤»
Timbus well, that was my initial thought, but its much the same thing in your abc example 08:40
TimToady but I think that's put-uppable-with
raydiak I agree with it as is, though can't say why 08:41
Timbus well its not the same but. ugh. i mean the wierdness
TimToady well, currently it's getting the right answer for the wrong reason 08:42
but it'll get the same right answer after recompile
what you want is some way of adding 0 xx * to the shorter one sometimes
but only if you know you're doing numeric comparisons 08:43
anyway, I've updated the RC entry to remove the hack now :) 08:44
xfix++ for prodding me to fix it
raydiak considers that his instinctual reaction may be due to thinking of this list elements like digits of numbers, which is a flawed comparison since there are no numerals < 0 08:45
Timbus .floor == .ceiling ?? .floor !! 0 08:46
what
oh its an int check
.. what
.floor == .ceiling ?? $_ !! 0 08:47
xfix I probably would write it as $_ %% 1, but that's just me.
Timbus $_.Int == $_ ?? $_ !! 0
xfix (there is more than one way to do it)
$_ %% 1 ?? $_ !! 0 08:48
Timbus i just dont like the method calls
xfix Well, .Int is method call. 08:49
raydiak is almost surprised we don't have methods for super-common things like integer value checks
JimmyZ m: say (Int) '3x'
camelia rakudo-moar 80b912: OUTPUT«===SORRY!=== Error while compiling /tmp/5ahtVTiw26␤Two terms in a row␤at /tmp/5ahtVTiw26:1␤------> say (Int) ⏏'3x'␤ expecting any of:␤ infix stopper␤ infix or meta-infix␤ postfix…»
xfix This is not C language. 08:50
JimmyZ m: say (Int)'3x'
camelia rakudo-moar 80b912: OUTPUT«===SORRY!=== Error while compiling /tmp/7KCT6Wnw4Y␤Two terms in a row␤at /tmp/7KCT6Wnw4Y:1␤------> say (Int)⏏'3x'␤ expecting any of:␤ infix stopper␤ infix or meta-infix␤ postfix…»
Timbus I think you want Int()
moritz m: say '3x'.Int 08:52
camelia rakudo-moar 80b912: OUTPUT«Cannot convert string to number: trailing characters after number in '3⏏x' (indicated by ⏏)␤ in method Int at src/gen/m-CORE.setting:13863␤ in method Int at src/gen/m-CORE.setting:6193␤ in block <unit> at /tmp/vDtBKntvlS:1␤␤»
08:53 isBEKaml joined
xfix m: 0.; 08:53
camelia rakudo-moar 80b912: OUTPUT«===SORRY!===␤Decimal point must be followed by digit␤at /tmp/nMWMrwxDri:1␤------> 0.⏏;␤Missing semicolon.␤at /tmp/nMWMrwxDri:1␤------> 0.⏏;␤␤»
TimToady is actually a bit surprised that sqrt seems to return an exact integer result under floating point
xfix Why it tells "Missing semicolon" when it's right here?
TimToady std: 0.;
camelia std f9b7f55: OUTPUT«===SORRY!===␤Decimal point must be followed by digit at /tmp/hWLlqCYscn line 1:␤------> 0.⏏;␤Confused at /tmp/hWLlqCYscn line 1:␤------> 0.⏏;␤ expecting any of:␤ dotty method or postfix␤…»
TimToady STD is better at getting confused :) 08:54
08:54 rindolf joined
TimToady it's also a lot better at saying what it was expecting 08:55
xfix TimToady, IEEE 754 standard requires correct rounding when the result of sqrt is integer as long the square root value isn't huge enough to overflow. 08:56
08:56 isBEKaml left
TimToady is probably remember some pre-IEEE implementations :) 08:56
*ing
I don't think a Cray-1 guaranteed that, for instance 08:57
not that I ever programmed one... 08:58
xfix IEEE actually requires that addition, subtraction, multiplication, division, and square root must work identically on every implementation (it even gives algorithm for these).
TimToady and Perl 6's hypers are really in there for Cray vector processing, in my mind :) 09:00
and a Cray might even have enough memory to run Perl 6... 09:01
and when I say Cray, I mean Cray-1, or possibly a Cray-2 :) 09:02
Timbus or a Cray-Z
timotimo it's amazing that anything has enough memory to run perl 6 nowadays :P
xfix How much memory is needed? 09:03
JimmyZ Crazy
TimToady all of it!
xfix I've ancient phone with 120MB of RAM (not used by the operating system). Is it enough? 09:04
TimToady actually, Cray-1 only had like 8 megawords
timotimo xfix: that's enough for a hello world 09:05
Timbus someone in here tried to compile perl6 on his phone. a nexus 4
that was a no-go
xfix (my phone is more ancient than that)
timotimo we have moarvm itself run on a jolla phone, but compiling rakudo takes a whole lot more ram
Timbus yeah, 160mb is like HTC magic or palm pre
xfix Obviously I wouldn't want to compile Rakudo right on my phone, way too slow for that. 09:06
timotimo hmm. a hello world takes 0.2 seconds nowadays? wasn't that number lower at some point?
TimToady when we had the setting set a little too lazy, I think
xfix That panda didn't work. 09:07
But I wonder why it didn't...
JimmyZ and too lazy serialization ...
xfix The ideal would be Perl 6 running in 0 seconds, but that may be impossible. 09:08
(after rounding to hundrenth of seconds, of course)
Perl 5 on my computers starts in 0.004 seconds (after caching Perl 5 into RAM). 09:09
my computer*
JimmyZ m: say floor(0.3), 'seconds'
camelia rakudo-moar 80b912: OUTPUT«0seconds␤»
JimmyZ m: say Int(0.3) 09:11
camelia rakudo-moar 80b912: OUTPUT«0␤»
09:18 perl007 left
TimToady zzz & 09:19
JimmyZ good night 09:20
09:29 adu left 09:38 rurban joined 09:52 Sqirrel left
rindolf TimToady: night. 09:53
pjablons I'm sure this is a stupid question, but can anyone give me a quick overview of actually using blobs? I can't figure out how to modify them or really do much of anything with them. Of course, I could be being an idiot and using the wrong class to begin with 10:06
10:07 [TuxCM] joined
FROGGS_ m: my $b = buf8.new; $b[0] = 42; say $b; say $b ~~ Blob 10:09
camelia rakudo-moar 80b912: OUTPUT«Buf[uint8]:0x<2a>␤True␤»
FROGGS_ pjablons: Blobs are immutable, but you can use a buf*
masak / moritz / whoever is here: I am reading this perl6maven.com/tutorial/running-ext...from-perl6 10:10
pjablons Huh. Now I'm curious as to the purpose, other than that it's just nice to have an immutable object sometimes 10:11
FROGGS_ masak / moritz / whoever is here: and the first thing that comes to my mind is, why don't we throw exceptions when shell/run/pipe fails?
pjablons: Blob is just a role that is just used by buf types 10:12
pjablons that actually makes perfect sense
FROGGS_ pjablons: it just implements functionality, and one should not use it directly I guess
10:14 Ven joined 10:20 LLamaRider joined
masak good antenoon, #perl6 10:21
FROGGS_: yes, maybe we should. 10:22
FROGGS_: makes sense -- it would be propagating an outright error from a sub-something.
10:24 virtualsue joined, sirdancealot left
masak FROGGS_: and it seems to me to be a "logical extension" of making `EVAL` transparent to exceptions. 10:25
(I haven't read the post)
FROGGS_ k 10:27
I'll think about a possible shell/run/pipe api 10:28
10:28 sqirrel_ joined
moritz FROGGS_: we should throw an exception 10:29
pjablons: doc.perl6.org/type/Blob 10:30
FROGGS_ that also saves the .status != 0 check the user would have to add every time
moritz hm 10:31
we should throw an exception when the pipe can't launch the command
not sure if we should if status != 0 10:32
FROGGS_ we could have X::Exec::Spawn and X::Exec::Run or so
well, we have to make sure that we actually know what failed...
but I think we have that under control at the vm level
Ven o/, #perl6 10:36
masak what moritz++ said. 10:37
status != 0 is not an exceptional condition -- that's a process completing normally, but indicating that it wasn't too pleased with something. 10:38
10:39 molaf joined
JimmyZ z same as z # doc.perl6.org/type/Blob#method_unpack 10:40
typo?
masak haha
masak hopes so
I mean, it's not *wrong*, but... :P
10:40 rurban left
JimmyZ :) 10:40
masak .oO( xkcd.com/703/ ) 10:41
JimmyZ xkcd.com/1386/ 10:43
10:49 virtualsue left, jack_rabbit left
dalek c: a5f256e | moritz++ | lib/Type/Blob.pod:
[Blob] fix typo/think, JimmyZ++
10:51
masak having said that, there should probably be an easy/idiomatic way to promote a nonzero status to an exception...
moritz :assert(*.status == 0) 10:52
10:52 Ven left
moritz though that probably would give crappy exceptions 10:52
maybe :expected-status(0) 10:58
and if the exit status deviates from the expectation (if set), an exception is raised
on a completely unrelated note, I've recently been thinking about "enterprise" applications 11:00
and IME, the main difference between "enterprise" and "normal" applications is that the former often need to integrate with far more other systems 11:01
11:01 anaeem1 joined
moritz and thus need lots of features like pluggable authentication, integration with CRMs, billing apps etc. 11:01
11:01 sqirrel_ left
moritz and often multitenancy, role-based authorization, audit trails etc 11:02
it would be very nice to have some kind of framework/library that would make it very easy to add such features to an application
though I have no idea how such a thing would look like, arechitecture-wise 11:03
is there any prior art for that?
(I know there are modules for talking to LDAP, and for logging etc., but I'm aiming for a higher level) 11:04
11:12 anaeem1 left 11:20 pecastro joined
masak moritz: I have no answers right away. but it's a very interesting question. 11:25
11:25 pecastro left
masak it made me think of (the near miss, I guess) www.amazon.com/Perl-Medic-Transform...B00EPFBSXE 11:25
but yeah, "enterprise" is in the same tag cloud as "legacy" (because there's existing code, not always of good quality), "integrate" (because you have to talk to data sources, not always your own), and "anti-corruption layer" (because you may have integrity demands the rest of the world doesn't). 11:28
xiaomiao hrm, doesn't enterprise just mean "horribly bad code that costs tons of money" ? 11:30
xiaomiao remembers one vendors' documentation suggesting to unconditionally open port 22 on the firewall (nope) and using password authentication (nope nope nope)
masak xiaomiao: I think there's a lot of scorn out there on the Intertubes about enterprise. 11:34
xiaomiao masak: mostly because it's rare that one sees 'enterprise' stuff that works
masak but the fact remains that it's a real thing with real problems and needs, and not something we *can* dismiss as a culture.
xiaomiao I mean, we had a ~300kEur SAN that needed EVERY disk reflashed because of a vendor error
so one admin spent most of a weekend in the datacenter manually flipping disks
masak I'm not disputing that a lot of enterprise stuff is mind-numbingly stupid.
xiaomiao or the HA router that couldn't handle the packet load ... wtf? 11:35
masak but it's not a point I find especially thrilling either.
xiaomiao well, why would I spend lots of money if it fails harder than the 'cheap' alternatives?
masak there's so much in terms of possible improvements we could focus on.
FROGGS_ we've got SAP at work :D
masak and I bet the Venn diagram of that and enterprise doesn't have an empty interspection.
xiaomiao yes, and closed-source blackboxen are not the way forward 11:36
FROGGS_ and also stuff from other vendors that "work nicely" with SAP
xiaomiao FROGGS_: augh
masak the only way open source can win is to provide decent, workable alternatives to closed-source blackboxen.
xiaomiao FROGGS_: I am 'downstream' of two SAP deployments, which means that I had to adapt our mail filtering because they generate bad emails
masak I wish I could say the open-source world has been stellar in this regard so far. 11:37
xiaomiao FROGGS_: and it's not fixable, so EVERY downstream customer gets to fix their setup to fix the shitcrap that SAP barfs around
masak is currently making his way through queue.acm.org/detail.cfm?id=2349257
xiaomiao masak: that means we also need proper investment
11:37 LLamaRider left
xiaomiao I mean, everyone who uses opensource should donate a tiny bit every year ... 11:37
xiaomiao donates tons of time
11:40 rurban joined 11:43 pmqs_ left 11:46 perl007 joined
perl007 p6: say test; 11:46
camelia rakudo-{parrot,moar} 80b912: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Undeclared routine:␤ test used at line 1␤␤»
perl007 p6: say 'test';
camelia rakudo-{parrot,moar} 80b912: OUTPUT«test␤»
perl007 p6: say 'adfdfadf' ~~ /adf/; 11:47
camelia rakudo-{parrot,moar} 80b912: OUTPUT«「adf」␤␤»
perl007 p6: say 'adfdfadf' ~~ m:g/adf/;
camelia rakudo-{parrot,moar} 80b912: OUTPUT«「adf」␤ 「adf」␤␤»
perl007 rakudo: say 'adfdfadf' ~~ m:g/adf/; 11:48
camelia rakudo-{parrot,moar} 80b912: OUTPUT«「adf」␤ 「adf」␤␤»
11:50 perl007 left
moritz xiaomiao: there's lots of shitty code everywhere, not jst in enterprise 11:51
xiaomiao moritz: indeed, but open stuff I can fix 11:52
or I can hire someone to fix it
all a matter of control, I don't like depending on moody people ;)
moritz xiaomiao: well, often enough, enterprise software is developed in-house, so "you" (as the company using it) can stil fix it 11:53
xfix But... Windows 95 server running our COBOL server software still works for us... There is risk in updating the software, why do so, when the current one works.
moritz also, open source enterprise software also exists 11:54
maybe we have different ideas what "enterprise" means
xiaomiao moritz: hahahaha
moritz: that was funny 11:55
if I could fix our inhouse software ... I guess I'd be busy for years, but that would make life so much less aargh
11:55 jluis joined
moritz xiaomiao: well, I'm employed to develop/maintain/enhance inhouse software (some of it based off open source products, others built with open source tools) 11:56
FROGGS_ I did that just recently... I made an app that replaces an SAP addition from another vendor that is 'about to be done' since about four years 11:57
xiaomiao I'd be happy if the hardware we had were kinda ... sane 11:58
FROGGS_ and we pay consultants and that vendor these four years of course, and also some of our ppl spend a lot of their time
xiaomiao but once bought it's hard to just replace it because "it's ugly"
FROGGS_: project management fail? I mean - payment tied either to deliverables, deadlines, or some other progress
11:58 sqirrel_ joined
FROGGS_ xiaomiao: one or two bad decisions five or six years ago... 11:59
I dunno what the payment is tied to actually
xiaomiao FROGGS_: plus no proper project management since then ;)
FROGGS_ exactly
xiaomiao is usually janitor - clean up other people's mistakes
FROGGS_ there is no person that is responsible for the entire system 12:00
xiaomiao can make one a leeeeeeettle bit cynical and grumpy
... why not?
moritz xiaomiao: me too, but I also leave mistakes behind for others to clean up, I guess
FROGGS_ xiaomiao: probably nobody of the higher ppl wanted to do the job...
there are only partial responsibilities... like managing that an interface from SAP to another system is implemented 12:01
moritz FROGGS_: apply for the job of responsibility for the total system; demand more pay :-)
FROGGS_ and like three or four similar positions, but since there is no coordination in between these ppl, there is not much happening
moritz: err no, I like my job too much :o) 12:02
moritz FROGGS_: ah, I know that :-)
FROGGS_ and I don't like that system to get in place, because what it can potentially do is crap
moritz FROGGS_: at $work, nobody feels responsible for the collection of usage/traffic data, and I'd likely be one of the most qualified people to take responsibility, but then it would eat too much of my programming time, so I don't 12:03
FROGGS_ it just could do 10% of what our self made system can...
12:06 pyrimidi_ joined 12:07 denis_boyun_ joined 12:08 jack13 joined
xiaomiao usually I am root 12:10
so I have an indirect responsibility for making things work 12:11
"I'll be the stone in your shoe ... " :D
12:16 jack13 left
Woodi hallo today :) 12:25
FROGGS_ hi Woodi 12:26
masak .oO( usually I am Groot )
FROGGS_ masak++
rindolf Woodi: hi.
Woodi: what's new?
FROGGS_ rindolf: the year :D 12:27
rindolf FROGGS_: true that.
What's new with you.
FROGGS_ I've no idea 12:28
Woodi moritz: I think Open-Source-world didn'd discovered Kerberos... unfortunatly Microsoft did, they married it to the LDAP server and got "domain" stuff... I realy wish something like that done from scratch (not connected to MS architecture)
masak hi rindolf -- haven't seen one of your awkward IRC greetings since last year ;) 12:29
Woodi rindolf: latest news is that I (nearly) finished 2014 raports :)
rindolf Woodi: what are raports?
masak typo of "reports".
maybe means bookkeeping.
Woodi rindolf: online translator call it "stacktaking". you know, bakery ingradients from 2014 :) 12:31
rindolf Woodi: stacktaking?
Woodi: and I don't know what you mean.
masak is confused, too 12:32
Woodi yes :) mandatory thing :)
masak "taking stock"?
as in, going through your inventory and counting things?
Woodi yes :) boring thing 12:33
I wonder do camera with edge detection can automate it :)
12:33 denis_boyun_ left
masak .oO( "taking stack" must be a LIFO process, as opposed to "taking queue"... ) 12:33
Woodi also: is Kerberos safe thing in XXI century ? 12:34
moritz Woodi: I heard nothing negative about it (security wise), which is a rather good sign :-)
Woodi same. and this in some % worry me. 12:35
masak it sometimes amuses me how close Polish culture is to Roman culture. ("XXI century"). I guess it's because the Catholic church is a big things in .pl 12:36
Woodi masak: I was sure XXI have science-fiction origin, not Roman, even European... 12:37
masak Woodi: well, then you are wrong ;) 12:38
Woodi: en.wikipedia.org/wiki/Roman_numerals
Woodi masak: and I would be happy to Catholic church be a bigger thing everywhere :) becouse it menans "good" for me :)
masak there's no accounting for taste. 12:39
Woodi ah, notation
masak it's pre-positional numerals. 12:42
very low-tech.
Woodi do we want something like GIO in Gnome or KIO in KDE ? en.wikipedia.org/wiki/GIO_%28software%29 12:45
with channels and async stuff
xiaomiao Woodi: if ldap were less horrible I might even almost agree with you 12:47
Woodi xiaomiao: why horrible ? :) I like it 12:48
xiaomiao Woodi: the idea is kinda neat, but the implementations ... teh zomg wtf ur has wriet codez?!??!
openldap for example is just like, I have no idea what to do, let's throw paper airplanes 12:49
nine Woodi: I liked LDAP until I tried storing our employee's date of birth in our LDAP server.
xiaomiao errors? eh? uhm ... you mean warning? maybe?
Woodi xiaomiao: which LDAP ? OpenLDAP, Fedora, ActiveDirectory, ... ?
xiaomiao Woodi: AD is off limits ;) and openldap is just really bad badness 12:50
Woodi: no idea what you mean with "Fedora", but e.g. "389 directory server" or what it was called had dependencies that made me nope away very fast
Woodi xiaomiao: LDAP is just pre-XML, object-like database for READs :) 12:51
12:51 pmurias joined
xiaomiao Woodi: wrong, it's hierarchic DB 12:51
pmurias hi 12:52
Woodi 389 was Netscape then Sun probably :) but performance wise it is good
pmurias what is redpanda?
xiaomiao which is awesome, but no one made a sane implementation yet (well duh, ASN.1 etc?)
Woodi xiaomiao: yes, and hierarchical :) ldif format is object like
xiaomiao: also it is OSI DAP adopted to TCP, it cannot be simple :) exactly like certificates we use 12:53
xiaomiao some days I wonder how expensive it would be to hire a dozen smart people and rebuild such infrastructure components 12:54
Woodi xiaomiao: as opensource project with voluntiers ? could be cheap initially :) 13:00
pmurias how can I switch which backend is used for perl6? 13:01
Woodi I sometimes wonder: can security live without ASN.1 ?
xiaomiao Woodi: well, you'd need to hire at least one fulltime project manager, and one or two developers to keep things going 13:02
FROGGS_ pmurias: do 'make m-runner-default-install' for moarvm for example in the rakudo build dir
pmurias nine: how should I obtain a suitable python for use with Inline-Python? 13:07
FROGGS_: any idea what redpanda is? 13:08
FROGGS_ pmurias: it was intended to be like cpanminus 13:10
nine pmurias: on openSUSE I just install the python and python-devel packages. 13:12
pmurias nine: the debian one doesn't work... 13:14
nine pmurias: need more info
pmurias it's lacking the -fpic flag 13:15
-fPIC flag
I'm setting up pyenv but I'm not sure if it will build one with the -fPIC?
nine pmurias: I'm sure there's an easier way. Perl 5's Inline::Python has the same requirement and I have cpantesters reports from Debian boxes where it works: www.cpantesters.org/cpan/report/b42...ea56d63282 13:19
13:20 denis_boyun_ joined
nine pmurias: you do have the python-dev package installed? 13:20
pmurias nine: yes 13:21
the package claims to contain header files and static library
nine pmurias: which package does your libpython2.7.so come from? 13:23
Seems like there is a libpython2.7 package on debian. 13:26
pmurias I have that package installed 13:29
nine: there is one from libpython-2.7 and libpython-2.7-dev 13:33
13:33 pyrimidi_ left 13:34 pyrimidine joined
nine pmurias: what Debian version do you use? 13:35
pmurias jessie
nine pmurias: I'm sorry, I'm a bit at a loss. I've never used Debian myself. 13:41
13:41 sqirrel_ left
nine pmurias: maybe people in #python can help you? 13:42
moritz masak: my random musings on enterprise software: gist.github.com/moritz/d086a8372adf69cd8b65 13:47
13:48 raiph joined
nine Did the push URL for dalek change? 13:48
Ah found it in the IRC log 13:50
pmurias pyenv solved the problem 13:55
shouldn't rakudo avoid using color when piped into a file? 13:56
FROGGS_ yes, it should 13:57
Woodi pmurias: what pyenv is ? 13:58
pmurias something like perlbrew for python
nine: pastie.org/981096 13:59
nine: the tests fail with this error message
nine Sorry, there is no pastie #981096 or it has been removed. 14:01
dalek Heuristic branch merge: pushed 43 commits to rakudo/newio by lizmat 14:02
pmurias nine: pastie.org/9810925
nine pmurias: I guess you're on a current rakudo? I'm still on 2014.11-27-ga3cf223, so something may have changed in the mean time and I need to update Inline::Python. 14:04
pmurias I'm on a newer one 14:05
would it be possible to have panda use some service on p6c.org instead of parsing a json file? 14:08
FROGGS_ what's the difference?
14:10 Ven joined 14:11 Mso150 joined, Ven left 14:12 Ven joined
Woodi moritz: lets create something what UBL was meant to be :) en.wikipedia.org/wiki/Universal_Bus...s_Language UE was trying to do this some years ago. now they are trying more from-the-top approach :) www.peppol.eu/news/ec-directive-on-...rocurement 14:12
pmurias FROGGS_: parsing a big json file everytime is slow 14:13
FROGGS_: panda help takes over 3 seconds
FROGGS_ but making hundreds of queries to reduce the json file(s) will be slower
well, ideally we don't need to parse that json file at all for displaying the help msg 14:14
14:15 Ven left
nine Is hack.p6c.org/dalek?t=freenode,perl6 the current github webhook url? 14:15
Woodi FROGGS_, pmurias: maybe debian approach: download files with updates, parse and put into database 14:17
dalek ast: 9b2d779 | lizmat++ | S10-packages/precompilation.t:
Should work with just @*INC
pmurias Woodi: the cpanm approach of just quering a service seems better 14:18
FROGGS_ pmurias: feel free to fork panda, and open PRs one you have something that works (better) 14:19
dalek Heuristic branch merge: pushed 29 commits to roast/newio by lizmat
14:20 kjs_ joined 14:22 ggoebel111111117 left
dalek line-Python: c1cf331 | (Stefan Seifert)++ | lib/Inline/Python.pm6:
Stop Python preventing Ctrl+C from killing the process
14:22
lizmat nine: are you aware that Inline::Perl5 currently doesn't build on rakudo ? 14:23
nine lizmat: no. But I suspect it will be the same problem pmurias just told me about in Inline::Python 14:24
lizmat hopes so 14:25
dalek line-Python: 82cab41 | (Stefan Seifert)++ | / (3 files):
Make Perl subclasses more transparent to Python

Python's Qt bindings use some kind of low level introspection to find out what methods a Python subclass of a Qt class overrides. So in order to have it call the methods of a Perl 6 subclass of a Qt class, we'd have to hook into this mechanism. Unfortunately there doesn't seem to be a way to do that.
So instead, I now create a Python class for every Perl 6 class inheriting from Python classes. This generated class uses the standard Python inheritance mechanism and has proxy methods for all methods the Perl 6 subclass provides.
This way even PyQt's low level mingling finds all the information it needs and we can write programs using PyQt in Perl 6 :)
14:30
line-Python: b484a91 | (Stefan Seifert)++ | pyhelper.c:
Avoid causing another failure if we cannot find the class name for generating exception messages.
14:31
pmurias nine: I managed to fix the error, should I fork on github and make a pull request? 14:39
nine pmurias: oh that would be nice! 14:40
nine is currently upgrading his rakudo
dalek kudo/newio: e4e9cf8 | TimToady++ | src/core/List.pm:
cmp on lists should distribute to columns
14:41
kudo/newio: 167f5f4 | TimToady++ | src/core/List.pm:
oops, <=> can already return Same
kudo/newio: f3f6641 | lizmat++ | src/core/CompUnit.pm:
Fix brokennes due to merge failure
kudo/newio: 44cb1d7 | lizmat++ | src/core/CompUnitRepo.pm:
Directories in newio always have a trailing /
kudo/newio: 0ae5d10 | lizmat++ | src/core/List.pm:
Merge branch 'nom' into newio
14:45 Mso150 left
pmurias nine: made a pull request 14:45
dalek line-Python: 1e5a4cb | (Pawel Murias)++ | lib/Inline/Python.pm6:
Fix to work on current rakudo.
14:49
line-Perl5: 5a1b1ea | (Stefan Seifert)++ | lib/Inline/Perl5.pm6:
Fix "Shape declaration with () is reserved" on current Rakudo
14:50
nine I still get "Missing serialize REPR function for REPR ReentrantMutex" in precomp.t in both Inline::Perl5 and Inline::Python
dalek kudo/newio: f52e0fc | lizmat++ | src/core/Deprecations.pm:
Fix another merge gone wrong
14:51
nine But I cannot see where I'm at fault here. Neither Inline::Perl5 nor Inline::Python do much when just being use'd and precomp.t does just that. 14:57
14:59 H2O1 joined 15:03 Rounin joined
FROGGS_ nine: I have the same problem in v5 15:03
nine: problem is (I think) that CompUnit.load_module uses a Lock, and when you load a module at BEGIN/EXPORT time, then you run into trouble 15:04
15:05 H2O1 left 15:06 Mso150 joined
FROGGS_ this one I think: github.com/rakudo/rakudo/blob/nom/...epo.pm#L34 15:06
hmmm, is it possible that both Inline::Python and v5 are affected since June? See github.com/rakudo/rakudo/commit/9c...ce973991cc 15:07
nine FROGGS_: Inline::Python has not existed yet in June. And on Rakduo 2014.11-27-ga3cf223 it worked for me. 15:08
FROGGS_ hmmmm
then we should bisect the problem I fear
lizmat FROGGS_: I don't think "load_module" is actually used ? 15:13
but if it is, don't we want to be sure only one thread is loading a specific module at a time ?
FROGGS_ lizmat: I think it is used because we replace the current module loader at setting's end, and yes, we only want to load one module at a time 15:14
but... something wants to serialize that Lock, and that's just weird and needs to be tracked down
lizmat welcome to my world for the past N months :-) 15:15
FROGGS_ and it is good to know that 2014.11-27 worked
:o)
lizmat FROGGS_ nine most likely 003b35850d8873d0d5076d71b329c9e4c3107e15 is to blame 15:16
please note the commit message :-)
FROGGS_ no, I had problems more than 22 hours ago I think 15:17
lizmat ah, ok
FROGGS_ my rakudo is two days old 15:18
This is perl6 version 2014.12-74-g8f173a0 built on MoarVM version 2014.12-3-g8cfefcb
15:19 sirdancealot joined
dalek kudo/newio: 2854ea5 | lizmat++ | src/core/I (2 files):
Eradicate IO::Path.new-from-absolute-path
15:25
15:38 rurban left
masak moritz: re gist.github.com/moritz/d086a8372adf69cd8b65 -- interesting reading. 15:40
moritz: "That's a tough one." -- indicates to me we should find someone who is (a) really in the middle of all this enterprise stuff, and (b) open to discussing what works and what doesn't in his environment, with an eye to improving stuff. 15:41
basically, a domain expert where the domain is an enterprise environment.
arnsholt Indeed
masak anyway, moritz++ for thinking about this.
everybody else: we are now looking for such a domain expert. any ideas? 15:42
arnsholt A uniform Auth/Authz module sounds intriguing in general too, especially something able to cope with the trickier stuff like roles
mst I think that would be a terrible idea 15:46
some sort of API ala Authen::Passphrase is a good thing
but do NOT mix authen and authz in the same thing
because what happens then is that if you need wildly different authen, you can't use the authz
and basically authz is mostly local policy, and any attempt to generalise it tends to be a footgun 15:47
arnsholt Point
mst so you end up either making your authen code useless
or people just drag the authz around as baggage they have to ignore
also, IME, authz tends to be best baked into the domain 15:48
DBIx::Class::Schema::RestrictWithObject was one experiment I did in that respect
but I really like being in a situation where e.g. rather than testing 'does this user have permission to view this post' 15:49
15:49 zakharyas joined
mst you do 'my $post = $user->visible_posts->by_id($id);' 15:49
and I've found that attempts at authz libraries tend to promote the opposite pattern 15:50
which is often kinda icky
pmurias nine: t/precomp.t works for me
mst arnsholt: hopefully that makes some sort of sense
arnsholt mst: A lot of sense, TBH
Being an academic, this isn't a space I've much practical knowledge about
Mostly limited to the horror stories (temporal logics with dicontinuous intervals... ugh) my consultant friend tells me 15:51
mst I've spent the past ten years or so running a consultancy technical team
arnsholt Indeed. Which makes me prone to believe you know a thing or three about this =) 15:52
lizmat pmurias: on Moar ?
fwiw, it doesn't for me
mst I'm not sure I know a good general way of doing authz right, but I certainly know a thing or three about ways of doing it wrong :)
arnsholt That's half the battle though, isn't it. Knowing what doesn't work? =) 15:53
pmurias lizmat: yes 15:54
dalek kudo/nom: 6e35d1d | lizmat++ | src/core/CompUnitRepo.pm:
Don't bind the lock

This does not fix the precomp problem for me, but it was the *only* occurrence of binding the lock in the settings, so I thought it'd be best to be at least consistent.
lizmat pmurias: weird 15:55
pmurias perl6 -o precomped.moarvm ...filename.p6... should precompile? 16:00
dalek ast: da2561a | usev6++ | S03-metaops/reverse.t:
Add test for RT #118793
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=118793
lizmat pmurias: the problem occurs when there is a -use- statement in the code being compiled 16:01
such as in t/spec/packages/Example/A.pm 16:02
pmurias how do I precompile stuff?
16:03 jluis left
moritz perl6-m --target=mbc -o Module.pm6.moarvm Module.pm6 16:03
nine git bisect bad 167f5f423024fc7d64520d301482b2f990c63099
pmurias I get a "Cannot dump this object; no dump method" 16:06
lizmat pmurias: alternately, without having to know backends and extensions:
16:06 Alina-malina left
lizmat CompUnit.new('Module.pm6').precomp 16:06
16:07 Alina-malina joined
pmurias moritz: -o doesn't work, --output does 16:07
is 'moar foo.moar' supposed to work? 16:08
is there a rakudo manual? 16:12
moritz pmurias: precompiling scripts doesn't work, just modules 16:13
pmurias: and you just have to look into rakudo's makefile how it precompiles Test.pm and lib.pm, and do it the same
pmurias that's not exactly user friendly 16:16
lizmat pmurias moritz : that's why I implemented a CompUnit object with a "precomp" method 16:18
it takes all of the nitty gritty out of that
moritz pmurias: docs/running.pod also has a man page for the compiler itself, but I don't know how much it goes into detail on precompilation
pmurias it seems to be a parrot relict 16:19
fork and make a pull request is the recommended way for rakudo fixes? 16:21
moritz pmurias: yes; though I'm working on updating the man page
FROGGS_ pmurias: perl6-m -Mfoo -e1 would work, instead of 'moar foo.moar' 16:25
dalek kudo/nom: 8587c4e | moritz++ | docs/running.pod:
Update manpage, pmurias++
16:27
16:30 ka05 joined, raiph left, rurban joined 16:35 KCL_ joined
dalek kudo/newio: c3394cb | lizmat++ | src/core/Str.pm:
We no longer need to predeclare IO::Path
16:35
kudo/newio: 74b4be7 | lizmat++ | src/core/Process.pm:
Eradicate IO::Path some more
16:37 telex left 16:38 telex joined
pmurias moritz: docs.perl6.org should point to the new running page in some manner 16:39
masak mst: it might be a complete mis-association, but what you said about 'my $post = $user->visible_posts->by_id($id);' sounds structurally like FP's dictum "operate on lists when you can -- abstract away the mechanics of looping and just compose functions" 16:42
16:42 ka05 left, ka05 joined
masak mst: or, put differently, maybe the mistake authz libraries tend to make is to push the library user into a trap of not being able to compose functions like that. 16:43
has to suck the information through a very thin straw.
16:43 denis_boyun_ left
masak .oO( the von Authzmann bottleneck ) 16:43
16:43 Ven joined
Ven Isn't IO::Path#e documented? 16:44
mst masak: the real problem, I think, is that authz is a cross cutting concern
you almost want AOP 16:45
except AOP tends to be heinously confusing
TimToady call it DI instead, that'll fix All The Things 16:47
lizmat Ven: not sure it;s worth the trouble at the moment 16:48
TimToady mix a little IOC in there too, and you can have DIAIOCOP or so 16:50
Ven method IO doesn't appear in Str or w/e, it's surprising 16:51
(I found it in Cool)
lizmat Ven: it's in Cool so that you can also do "3.IO" 16:52
if you have a file that's just called "3"
rindolf TimToady: hi, sup?
TimToady to early for that, haven't even had breakfast :)
*too 16:53
lizmat *soup ?
TimToady two early too speel to
*urly
Ven lizmat: yeah, but it's not listed in Str's doc
16:55 kjs_ left 16:59 jack13 joined
lizmat afk& 17:00
masak lizmat was gonna send an email too, but I want to share the news ASAP: at noon on Monday, we became parents of a beautiful little boy. so he's 5 days old currently. 17:01
heh. privmsg fail ;)
lizmat :-)
masak looks around for stray wits, which must be lying around somewhere
lizmat sleep deprivation will do that to you
masak moritz: if there is some irclog magic you can do to scrub things, feel free :)
lizmat looking for wits where there aren't any 17:02
masak: congrats!
masak anyway, guess it's official now.
thanks.
17:02 dj_goku joined, dj_goku left, dj_goku joined
moritz masak: uhm, what needs to be scrubbed? 17:02
masak moritz: the '/me' above should've been a '/msg'
that's all; the fallout can be left intact for people who like detective work. 17:03
nine lizmat: 003b35850d8873d0d5076d71b329c9e4c3107e15 is the first bad commit "Allow specification of @*INC in CompUnit.precomp"
lizmat nine: so that breaks Inline::Perl5 at the moment? 17:04
nine lizmat: and Inline::Python, yes
lizmat
.oO( here goes another piece of work down the drain )
17:04 zakharyas left
moritz masak: line deleted from DB, should be gone in the next(ish) refresh 17:05
masak moritz: thank you.
moritz: yeah, 'tis gone.
moritz masak: you're welcome
masak what's left is almost like cm.bell-labs.com/who/ken/trust.html ;) 17:06
dalek kudo/nom: 43b724e | lizmat++ | src/core/CompUnit.pm:
Revert "Allow specification of @*INC in CompUnit.precomp"

Alas, this breaks Inline::Perl5, so reverted until further notice.
FROGGS_ tries
it is possible that I was on that commit, and just did no reconfigure 17:07
lizmat nine: confirmed 17:08
*sigh*
nine lizmat: yes, both Inline::Perl5 and Inline::Python pass their tests now. 17:09
lizmat really afk now& 17:12
17:12 sirdancealot left
nine .tell lizmat maybe having a look at Inline::Perl5's t/precomp.t would be a good idea. It's very simple, but maybe it's just doing something wrong. Or maybe it can at least give you a hint why your commit doesn't work. 17:14
yoleaux nine: I'll pass your message to lizmat.
FROGGS_ sadly it does not help v5: 17:16
Compiling (7) if to mbc
===SORRY!===
Missing serialize REPR function for REPR ReentrantMutex
nine .tell lizmat precomp.t assigns to %*ENV<PERL6LIB> _after_ loading Inline::Perl5. Maybe that's messing up precomp? 17:18
yoleaux nine: I'll pass your message to lizmat.
FROGGS_ I'm doing similar things in v5 17:19
(it has its own ModuleLoader)
17:20 virtualsue joined
nine Moving the assignment to the top of the file does not help. 17:21
ugexe if you're getting the ReentrantMutex error then you are getting the same error any code on MoarVM would get 17:24
lizmat mentioned it builds correctly on parrot (i think) and gives a better exception error on jvm 17:25
something about moarvm not unserializing a lock
TimToady Timbus, xfix: that integer check is now: $_ when Int given hero($a, $b, $c).narrow; 17:29
xfix TimToady, oh, neat, didn't know about .narrow method. 17:31
In that case, I probably would have written .narrow ~~ Int.
TimToady but I don't want to return a floater
so topicalizing the integer allows me to return it easily
xfix Yes, this looks better than what I would write. 17:32
TimToady without reconverting
m: say <1+0i>.narrow 17:33
camelia rakudo-moar 80b912: OUTPUT«No such method 'narrow' for invocant of type 'Str'␤ in block <unit> at /tmp/eAC9s1XCPT:1␤␤»
TimToady right, gotta fix those val things
japhb Dear heavens yes, replace hack-val(), PLEASE. 17:34
xfix <3> should be Int.
But it still isn't in Rakudo.
japhb IntStr, no? 17:35
xfix I guess, I haven't been here for a long time.
TimToady if there's only one, and no spaces, it should leave out the Str
but only in angles
xfix IntStr is a thing?
TimToady supposed to be
but the <> notation is more for Rat and Complex 17:36
xfix Last time I was here, <> wasn't returning IntStr.
TimToady still isn't
xfix <1/2> was Rat, not some random RatStr.
TimToady m: say <1/2>.WHAT 17:37
camelia rakudo-moar 80b912: OUTPUT«(Str)␤»
TimToady maybe you're thinking of niecza++ (RIP)
xfix Yes, in Niecza.
n: say <1/2>.WHAT
camelia niecza v24-109-g48a8de3: OUTPUT«(signal ABRT)Stacktrace:␤␤ at <unknown> <0xffffffff>␤ at (wrapper managed-to-native) object.__icall_wrapper_mono_gc_alloc_string (intptr,intptr,int) <0xffffffff>␤ at (wrapper alloc) object.AllocString (intptr,int) <0xffffffff>␤ at string…»
xfix ... right.
So not only it wasn't updated for a year, but it's also broken in camelia.
TimToady just needs some tender lovin' and carin' 17:38
xfix Niecza was neat. It was once a neat Perl 6 compiler supporting features that Rakudo didn't (like custom operators, and more STD.pm6-like parser). 17:39
But well, now it's behind.
TimToady except on val :)
xfix So, currently Rakudo is the only still updated Perl 6 implementation? 17:40
TimToady well, except that it's 3 implementations :) 17:41
xfix (I don't consider STD.pm6 to be Perl 6 implementation)
Yes, but they run mostly the same NQP code.
masak Niecza's falling-behind is (a) an example of bus number in action -- though not literally, thankfully -- and (b) a kind of vindication of the nom/6model refactor (which made Rakudo overtake Niecza and leave it in the dust, spectest-wise). 17:42
TimToady well, viv could be considered an implementation of a subset of Perl 6, that works by translating to Perl 5
xfix I guess.
Perlito still gets improvements, but they are practically Perl 5 improvements.
TimToady in fact, it was precisely the refactoring problem that was cited by sorear++ as a major reason for abandonment 17:43
(well, and the fact that some of those refactors were in support of features sorear++ wasn't sure he agreed with :) 17:44
so the way forward is probably just to write a .NET backend for rakudo now 17:45
17:45 psch joined
TimToady that, and fix val :) 17:46
xfix I once have used Niecza, because Rakudo refused to work for me on Windows. But from what I see, Rakudo now works better on Windows (but not that I even care by now, because I use Linux now).
psch hi #perl6 \o
17:46 ajr joined
xfix Hi, psch. 17:46
TimToady o/ 17:47
17:47 ajr is now known as Guest66755
japhb ++(.NET backend for rakudo) 17:47
xfix I wonder about removing Niecza from main page of perl6.org. It's not really relevant by now, and it's more of a historical compiler (like Pugs).
But at the same time, section header is "Compilers". 17:48
TimToady we still want to think of it as plural, even if there's really only one currently
it only takes one fork to make two :)
and, in fact, the newio branch seems to be a rather persistent fork :P 17:51
moritz persistent forks are fine, as long as we don't advertise them as The Next Big Thing 17:53
nwc10 commit 4e459090fd1f1da89e41568787a70e38cb4560fc 17:55
Author: Elizabeth Mattijsen [email@hidden.address]
Date: Tue Nov 11 15:43:17 2014 +0100
I think that that's where it starts
xfix I find it interesting that in COBOL you can write `IF result = this OR that`. Feels like Perl 6 junctions, even. 17:58
(I wonder why syntax like that doesn't exist in many programming languages)
geekosaur mostly because nesting is difficult 18:00
icon has an interesting solution to it
ugexe then you have to solve if result = this OR result2 = that
geekosaur actually icon's is for x < y < z type things. the COBOL example has the problem of whether it means IF x = y OR x = Z, or is the start of writing that out longhand 18:01
plus little niggles like whether you have a boolean type that would make that expression ambiguous
xfix I guess. COBOL didn't have booleans until 2002 (and they work around this shortened syntax by doing type checking in grammar). 18:03
(but a different operator could be used for junctions than usual "or" operator) 18:04
In Perl 6, || and | are different.
TimToady thinks icon's approach is kind of a hack that destroys the symmetry of the semantics
xfix Alternatively, there is possibility of using function call for junctions. In SQL, you can write code like SELECT name FROM users WHERE userid = ANY(3, 5). 18:05
18:05 dyas joined
xfix Although, in that specific case, userid IN (3, 5) is usually more common. 18:05
TimToady gee, maybe we should put that into Perl 6 too
ugexe lol 18:06
18:09 jack13 left 18:11 KCL_ left
TimToady m: say "Yeah!" if (1,2,3).&$_ == (^10).pick given any(&any, &all, &one, &none) 18:11
camelia rakudo-moar 80b912: OUTPUT«Type check failed in binding &call; expected 'Callable' but got 'Method+{<anon>}'␤ in method AUTOTHREAD at src/gen/m-CORE.setting:3799␤ in block <unit> at /tmp/4nzDD3sT9T:1␤␤»
18:11 rurban left
nwc10 r: say "Yeah!" if (1,2,3).&$_ == (^10).pick given any(&any, &all, &one, &none) 18:12
camelia rakudo-moar 80b912: OUTPUT«Type check failed in binding &call; expected 'Callable' but got 'Method+{<anon>}'␤ in method AUTOTHREAD at src/gen/m-CORE.setting:3799␤ in block <unit> at /tmp/tmpfile:1␤␤»
..rakudo-parrot 80b912: OUTPUT«Type check failed in binding &call; expected 'Callable' but got 'Method+{<anon>}'␤ in method AUTOTHREAD at gen/parrot/CORE.setting:3803␤ in sub AUTOTHREAD at gen/parrot/CORE.setting:3881␤ in block <unit> at /tmp/tmpfile:1␤␤»
nwc10 consistent, which is good
(dear JVM, please try to keep up)
j: say "Hi"
camelia rakudo-jvm 80b912: OUTPUT«Can't open perl script "/home/camelia/jvm-rakudo/eval-client.pl": No such file or directory␤»
18:12 FROGGS__ joined
nwc10 I assume that that's a "bug" but I have no idea how to fix it, or even who to ask about it 18:13
TimToady must be a Perl 5 bug :)
nwc10 quite probably. IIRC there are at least as many open Perl 5 bugs as Rakudo :-) 18:14
18:15 b2gills left 18:16 FROGGS_ left, Alina-malina left 18:18 Alina-malina joined
TimToady there's only one Rakudo, unless there's three... 18:18
18:20 ggoebel111111117 joined, abraxxa joined
dalek p: e0c77b9 | peschwa++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/BootJavaInterop.java:
Add support for loading .class files from $CLASSPATH.
18:21
p: b2f2f4f | peschwa++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/BootJavaInterop.java:
Increase visibility of some inner classes.
p: d33918a | peschwa++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/SixModelObject.java:
Correct an error message - bind_pos_boxed_native does not even make sense.
p: e6b1788 | moritz++ | src/vm/jvm/runtime/org/perl6/nqp/ (2 files):
Merge pull request #215 from peschwa/jvm-easier-debugging

Add support for loading bare .class files and increase visibility for a few BootJavaInterop fields and inner class constructors.
TimToady Eggnog flavored coffee isn't...terrible...
18:22 Alina-malina left 18:23 Alina-malina joined
Ven amazing PR from peschwa++ 18:24
18:24 vike joined
psch Ven: github.com/rakudo/rakudo/pull/344 has the real features ;) 18:25
Ven psch: that's the one I'm talking about
psch Ven: oh, alright. i was thinking you're referencing the one published by dalek :)
Ven: still, thanks :) 18:26
Ven psch: you have no idea how many people I know have been waiting for that to jump in ;-) 18:27
psch i'm wondering if i should amend the advent post
japhb psch: Yes.
psch Ven: there's still a few things missing, though. most obvious is fields accessors 18:28
Ven please do amend :)
psch not before it's merged though i guess?
japhb psch: Nothing says you can't amend again after implementing that. :-)
psch: Right, after the merge.
18:28 b2gills joined
Ven psch: are you going to work on field accessors as well? 18:29
psch Ven: i don't really have an idea how to implement them at the moment
Ven alright, noted 18:30
I'll blindly guess there's no typechecking involved ("calling java methods from perl6 with invalid arguments fails at compile-time")
(which would imply inspecting bytecode I guess)
psch Ven: the only thing close to a workable idea i have is creating a getter and setter in the adaptor class and fiddling with the JavaHOW to wrap those in a Proxy. the problem is that the HOW doesn't really know about the methods currently... 18:31
Ven: well, dispatch works by inspecting the arguments at the callsite at runtime...
Ven psch: I don't see a clean way to do it, tbh :p 18:32
psch Ven: for typechecking? i don't really think we can do that at compile time, considering we could have something happening to the Perl 6 arguments at runtime that allows or prohibits dispatch to some handle... 18:34
but then i'm not really knowledgeable about type theory in general, fwiw :) 18:35
18:37 b2gills left
Ven hm, where were the benchmarks uploaded? 18:40
18:42 Mso150_w joined, Mso150 left
moritz psch: I've given you commit access to perl6/nqp 18:51
psch moritz: thanks 18:52
18:56 zakharyas joined
japhb Ven: Which benchmarks 18:58
?
Ven japhb: rakudo benchmarks, i.e. against perl5 or against last year's 18:59
japhb timotimo++ sometimes uploads his runs, but you can do your own using github.com/rakudo/rakudo/pull/344 19:08
Gah, wrong paste
github.com/japhb/perl6-bench
(I really hate that Macs select without saving into the paste buffer.) 19:09
19:15 zakharyas left, dj_goku left
bartolin r: my %h = %("a" => "1"); say %h.{"a"} 19:16
camelia rakudo-{parrot,moar} 80b912: OUTPUT«1␤»
bartolin r: my %h = %("a" => "1"); say %h.postcircumfix:<{ }>.("a")
camelia rakudo-{parrot,moar} 80b912: OUTPUT«No such method 'postcircumfix:<{ }>' for invocant of type 'Hash'␤ in block <unit> at /tmp/tmpfile:1␤␤»
19:16 pmqs joined
bartolin shouldn't the second command work as well? 19:16
masak japhb: I have this thing (on Linux Mint) where I can Ctrl+C in Chrome, and then Alt-Tab to another application, if I Alt-Tab too quickly, the copy doesn't "take". hilarity can ensue from that. :/ 19:17
bartolin: I think they are subs these days. 19:18
bartolin: a quick scan through the setting seems to bear this out.
bartolin masak: oh. that would explain the error message. thanks! 19:19
japhb masak: Ewww. 19:23
Ven they're definitely subs 19:24
because it's easier to decide which candidate we want at compile-time
timotimo: ping, maybe?
bartolin Ven: I see, thanks. I stumbled upon the above command in an old ticket (RT #117935). back then they were still methods, obviously. 19:27
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=117935
japhb Is there a rule for whether .perl should escape strings? (This thought brought on by e12b86b107042f38105b4ae3341876bff5ba3816)
19:28 denis_boyun_ joined 19:35 dj_goku joined 19:37 rindolf left
timotimo Ven: what's wrong? 19:38
moritz japhb: always when necessary; otherwise only if it makes things more robust
(like newlines in strings)
Ven timotimo: o/. nothing wrong. wondering if you still have benchs up somewhere?
moritz people could run benchmarks on hack.p6c.org (just sayin') 19:40
raydiak I bet Pray would be several times faster on hack than I've ever ran it before...would that be a gratuitous waste? 19:44
japhb moritz: I thought someone was planning to do regular benchmarking there, just like [Coke]++'s spectesting. Or was that just me wishing really hard? 19:46
19:49 LAsse__ joined
timotimo Ven: i do, but the last bench is quite old by now 19:51
19:51 abraxxa left
TimToady rosettacode.org/wiki/Solve_the_no_c...zle#Perl_6 19:51
timotimo my desktop computer isn't up at the moment, so i can't make "compatible" benchmarks right now
FROGGS__ weird... the first thing that I mess up when I switch between P5 and P6 in either way is the ternary... 19:59
20:00 anaeem1_ joined
raydiak do we put apps in the ecosystem too? Pray is very limited as a module, but it's fairly usable as a command-line app 20:01
20:01 mr-foobar left
timotimo there's an App:: namespace 20:02
and panda is in there, too
FROGGS__ sure
timotimo as is farabi
raydiak cool, ought to put it in there today, then 20:03
timotimo neat 20:04
raydiak haven't worked on it in a long time, it's been usable-ish for like a year, I just never added it to the ecosystem 20:05
moritz japhb: iirc jnthn mentioned he might look into it
raydiak oh nice, I can get 100+ pixels/second on hack in the first example scene...that's like double anything I've ever seen iirc 20:09
moritz \o/ 20:11
is that with moarvm? or jvm?
raydiak moar I think
haven't actually tried jvm in a long time to be honest, would be good to compare 20:12
moritz a year ago, moar didn't have a JIT compiler :-)
raydiak oh yeah
rakudobrewing jvm, we'll see what it does 20:13
am looking forward to the concurrency branch of Pray becoming stable eventually 20:15
also looking forward to being able to auto-generate big chunks of it at panda build time using Math::Symbolic 20:16
20:18 mr-foobar joined 20:21 virtualsue left
raydiak is now thinking about writing a blog post at some point about how much faster rakudo has gotten since I started, with pray as a benchmark against a few historical versions and latest jitted moar 20:22
xfix Hm, so we have lots of solutions on Rosetta Code and codegolf.se.
Nice.
20:23 Celelibi joined
TimToady though, actually, Perl 6 is a bit anti-golf in its design 20:24
raydiak guesses the ultimate golfing language kinda *has* to look like human-unfriendly line noise 20:26
20:30 dyas left
raydiak ew can't bootstrap panda on jvm...trying to compile json::tiny gives "java.lang.IllegalThreadStateException: process hasn't exited" 20:31
raydiak is trying 1 more time before reporting 20:33
impressive...this time I got the same error but on File::Find 20:34
is anyone really using jvm any more? we still smoke it, right? 20:35
TimToady for a while there it was a lifeline for the OSx fokes
bartolin raydiak: yes, there are daily spectest runs for jvm (at least by [Coke]++ and me) 20:37
El_Che is this the latest info to setup a p6 smoke test setup? perl6advent.wordpress.com/2014/12/...e-testing/
lizmat is back from dinner which accidentally had too much sauce of 357K on the Scoville scale
yoleaux 17:14Z <nine> lizmat: maybe having a look at Inline::Perl5's t/precomp.t would be a good idea. It's very simple, but maybe it's just doing something wrong. Or maybe it can at least give you a hint why your commit doesn't work.
17:18Z <nine> lizmat: precomp.t assigns to %*ENV<PERL6LIB> _after_ loading Inline::Perl5. Maybe that's messing up precomp?
El_Che I would like to try to set something up on solaris
bartolin El_Che: I just started a daily panda smoke the day before yesterday. basically I do 'PANDA_SUBMIT_TESTREPORTS=1 panda smoke' (as described in the advent post) 20:39
El_Che bartolin: I'll start with that. Solaris is not that exotic, but it may be interesting running stuff there next to the Linux 20:40
(I am living in future! It used to be the other way around :) )
20:41 Mso150_w left
bartolin El_Che: cool. my tests run on freebsd, btw 20:41
20:41 Mso150_w joined
El_Che bartolin++ 20:42
bartolin ++El_Che :D
TimToady lizmat: about ⅓ of my sauces are hotter than that, but yeah, one doesn't use quite as much in that case 20:43
El_Che although I no longer use Solaris on my new job, I still have access to Solaris hardware through OpenCSW community project (we pkg FOSS for Solaris)
lizmat TimToady: it was too hot for us, and as a precaution I drank 1l of milk after that
lizmat is feeling a bit better now 20:44
it was overdosed by a factor of 10 or so
bartolin El_Che: in case you're interested: here are the scripts I use for my daily runs: github.com/usev6/perl6-roast-data/...master/bin 20:45
dalek kudo/newio: 6e35d1d | lizmat++ | src/core/CompUnitRepo.pm:
Don't bind the lock

This does not fix the precomp problem for me, but it was the *only* occurrence of binding the lock in the settings, so I thought it'd be best to be at least consistent.
20:46
kudo/newio: 8587c4e | moritz++ | docs/running.pod:
Update manpage, pmurias++
kudo/newio: 43b724e | lizmat++ | src/core/CompUnit.pm:
Revert "Allow specification of @*INC in CompUnit.precomp"

Alas, this breaks Inline::Perl5, so reverted until further notice.
bartolin El_Che: they're based on [Coke]++'s stuff. if you only want to smoke panda you could leave the spectests out.
kudo/newio: 89a90bf | lizmat++ | / (3 files):
Merge branch 'nom' into newio
kudo/newio: bbbcc36 | lizmat++ | src/core/CompUnit.pm:
Implement allowing of setting :INC again
El_Che bartolin: I "watched" the repo. Thx 20:50
bartolin El_Che: you're welcome. (though in that repo is mostly noise through the daily spectest commits.) 20:52
20:53 darutoko left
El_Che I saw on twitter that RubySpec has thrown the towel. 20:55
raydiak result, after hackign around not being able to build panda: r-m runs the most basic Pray example scene about 50% faster than r-j 20:57
FROGGS__ El_Che: that explains it: rubini.us/2014/12/31/matz-s-ruby-de...-rubyspec/ 20:59
El_Che FROGGS__: "Ruby Is What Ruby Does" ;) 21:00
moritz after merging psch++'s rakudo-jvm-interop branch, I got test failures in t/spec/S10-packages/precompilation.rakudo.jvm 21:03
does that fail before too?
lizmat moritz: I think that fails everywhere at the moment
moritz lizmat: ok, thanks
lizmat let me double check
21:03 adu joined
moritz (tests 3-6 and 15-16 fail here) 21:03
lizmat yeah, that looks familiar (and on moar, I assume) 21:04
bartolin moritz: it didn't fail in my daily spectest last night.
lizmat if you try running the .rakudo.moar test file directly, you probably see something about ReentrantMutex
moritz bartolin: yes, but lizmat++ reverted some precomp-related test today
bartolin moritz: ok, just wanted to give another data point ;-) 21:05
moritz on the JVM, I get Could not find Example::C in any of: /home/moritz/p6/rakudo, /home/moritz/p6/rakudo/blib, /home/moritz/p6/rakudo/install/languages/nqp/lib 21:06
(for example)
lizmat ah, I think why that is 21:07
masak RubySpec has thrown in the towel? that's sad.
I mean, that's saddening.
21:07 rurban joined
dalek ast: 700e0a5 | lizmat++ | S10-packages/precompilation.t:
Revert "Should work with just @*INC"

This reverts commit 9b2d779d6ed66d0ef5974ba5e41a88bde19f4906.
21:08
lizmat moritz: could you try again?
masak TimToady or someone: s/appr<(ao)>ch/oa/ at rosettacode.org/wiki/Solve_a_Hidato...zle#Perl_6 21:09
21:09 Mso150_w_j joined 21:10 b2gills joined
moritz lizmat: trying... 21:10
21:10 Mso150_w left 21:12 Sqirrel joined
moritz looks better (but it's sloooow ...) 21:12
lizmat well, shelling out is extra slow on the JVM, I guess 21:16
FROGGS__ ...and when that involves spawning a perl6-j it takes about 5gig RAM on my box, and will fail in case my firefox is running... 21:17
(I only have 8gig of RAM)
moritz FROGGS__: which is why I ran the tests on hack.p6c.org :-) 21:18
FROGGS__ :o) 21:19
TimToady masak: thanks
dalek p/parrot-rpa: 0ff1898 | lizmat++ | tools/build/MOAR_REVISION:
Bump MOAR_REVISION to release 2014.12
p/parrot-rpa: 10198a0 | lizmat++ | VERSION:
bump VERSION to 2014.12
p/parrot-rpa: cd8f6b2 | lizmat++ | README.pod:
Add my fix to building on OS X

In the hope it will be helpful. I don't see another fix yet. And I'm apparently the only person suffering from this (so far)
p/parrot-rpa: b4752c8 | moritz++ | docs/release_guide.pod:
release guide: update the list of known uploaders
p/parrot-rpa: 7b881b2 | moritz++ | docs/release_guide.pod:
Oops, no need to list FROGGS twice
p/parrot-rpa: c9147fd | rurban++ | src/vm/parrot/ops/nqp_dyncall.ops:
nqp_dyncall.ops: fix one more compiler warning

warning: passing argument 2 of ‘dcbNewCallback’ from incompatible pointer type Note: this uses a register for the userdata, which is needed to work on the stack var anyway, the same code is generated.
lizmat ah, branches :-)
FROGGS__ sheesh, that's not translated within five minutes: cpansearch.perl.org/src/MIYAGAWA/ID...unycode.pm
FROGGS__ .oO( ahh, branes! ) 21:20
moritz FROGGS__: I've looked at punycode before, thought "should I implement that for Perl 6?" and then decided to let somebody else do it :-) 21:21
FROGGS__ moritz: well, I've waited about ten months now... but nobody did it :o)
dalek p/parrot-rpa: 24a3c2a | rurban++ | / (7 files):
Replace unneeded QRPA with ResizablePMCArray
21:22
nqp/parrot-rpa: 0b15ee9 | rurban++ | tools/build/Makefile-Parrot.in:
nqp/parrot-rpa: Makefile-Parrot: simplify ops2c rule, no chdir needed
FROGGS__ ohh, now I understand this:
while ($h < @input) {
my $m = min(grep { $_ >= $n } map ord, @input);
21:22 dalek joined, ChanServ sets mode: +v dalek
FROGGS__ should translate to: 21:24
while $h < @input.elems {
my $m = @input.ords.grep(* >= $n).min;
moritz not quite 21:25
@input>>.ord
21:25 pmqs left
moritz @input.ords would stringify @input, and then do .ords on that string 21:25
and thus insert lots of unwanted spaces 21:26
FROGGS__ ohh
thanls
thanks
well, I can use $input, the string... I don't need to create an array of its chars anyway... 21:27
bartolin m: my %h; %h<a>=1; %h<a>:delete(0); say %h 21:28
camelia rakudo-moar 80b912: OUTPUT«"a" => 1␤»
bartolin m: my %h; %h<a>=1; say %h<a>:p(0)
camelia rakudo-moar 80b912: OUTPUT«"a" => 1␤»
bartolin lizmat: I saw that you worked on hash stuff last year. I looked at RT #117935 and saw that using :delete(0) works now. but :p(0) doesn't work, yet.
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=117935
bartolin lizmat: I tried to modify src/core/Any.pm to make the basic example above work. Could you have a look at the following gist and comment whether those changes make sense to you: gist.github.com/usev6/3c5d27e558160c152358 21:29
lizmat: (though with my changes I get two spectest failures in S32-array/delete-adverb.t and S32-array/delete-adverb-native.t, but those tests look kinde of questionable to me:)
m: my @a is default(42); say @a[0]:!p ## why not ""?
camelia rakudo-moar 80b912: OUTPUT«0 => 42␤»
lizmat bartolin: looks sane at first sight 21:31
bartolin lizmat: thanks for looking! than I'll dig a bit deeper and try to make it work not only for this basic case. 21:32
lizmat hmmm....
bartolin: I just commented on your gist 21:42
I think the other cases need closer scrutiny as well
bartolin++ for picking this up 21:43
bartolin lizmat: okay, now I've an idea how to proceed. lizmat++ # various reasons :) 21:44
21:45 denis_boyun_ left
bartolin lizmat: one last question regarding the last example above: the output "0 => 42" seems wrong, doesn't it? 21:46
lizmat bartolin: I think the tests are indeed bogus
bartolin lizmat: okay, maybe I'll start there ;-) 21:47
g'night, #perl6 21:48
lizmat gnight bartolin++ 21:49
21:51 xfix left, Guest66755 left
FROGGS__ moritz: encode_punycode already works 21:53
psch seems to me jvm rakudo doesn't wait on IO::Handle.close, in contrast to moar, which explains raydiak++'s panda bug 21:57
reproduceable with 'my $h = pipe("sleep 10", :r); $h.close.status.say' 21:58
takes ~10 seconds on moar, dies on jvm
moritz psch++ # JVM work 22:08
ugexe yeah the jvm handle close on jvm has been around for months 22:09
./on jvm/on pipe/ 22:10
psch well if blocking is fine i have a patch 22:11
22:21 anaeem___ joined 22:24 anaeem1_ left, denis_boyun_ joined, mr-foobar left
masak feels a little bad when writing @array[$from..*] instead of @array[$from..*-1], but doesn't really know why 22:25
what's the idiomatic way to die without a stacktrace, again? I forget. 22:27
lizmat exit ?
masak define your own subroutine that does a `warn` and then `exit`?
masak names is "conk" :) 22:28
it*
lizmat at $work, I had something similar (for tests) called "urgh"
masak :) 22:29
"urgh" is fine for its connotations, but not verb-y enough for me.
bleh, even `warn` prints line-and-file these days.
fine, $*ERR.say it is. 22:30
psch $*ERR.say is note 22:32
masak oh, right.
that's what I wanted.
psch++
lizmat m: note
camelia rakudo-moar 80b912: OUTPUT«Noted␤»
lizmat :-)
masak m: note xx 13 22:33
camelia rakudo-moar 80b912: OUTPUT«===SORRY!=== Error while compiling /tmp/L4f3gp_9Zt␤Undeclared routine:␤ xx used at line 1␤␤»
masak m: note() xx 13
camelia rakudo-moar 80b912: OUTPUT«Noted␤Noted␤Noted␤Noted␤Noted␤Noted␤Noted␤Noted␤Noted␤Noted␤Noted␤Noted␤Noted␤»
22:35 denis_boyun_ left 22:37 kaare__ left 22:41 LAsse__ left 22:48 adu left
dalek ecs/newio: 715ca5c | lizmat++ | S16-io.pod:
Initial batch of reworked S16 for newio branch
22:52
lizmat ^^^^ didn't make it to a advent blog post, so I thought about forking the spec for this 22:53
22:53 andreoss joined
andreoss is if statement inside given block intended to make it falling through? 22:54
if it's so. 'if * > 0' doesn't work, while 'when * > 0' does 22:55
Ven lizmat: sorry for advent post robbery :P 23:00
lizmat Ven: no robbery took place, I wasn't ready :-)
psch andreoss: <given "something"> sets $_ = "something" for the following block. <when> is special and takes * to mean $_, if doesn't 23:01
m: given 6 { if $_ > 4 { say "$_ is greater than 4" }; when 6 { say "it's 6!" } } 23:02
camelia rakudo-moar 80b912: OUTPUT«6 is greater than 4␤it's 6!␤»
lizmat gets some shuteye
andreoss psch: as i thought, * is special for when, but not for if. 23:03
psch andreoss: arguably * is less special for when than for everything else :)
andreoss what's the proper name of *? 23:04
psch m: *.WHAT.say
camelia rakudo-moar 80b912: OUTPUT«(Whatever)␤»
andreoss m: $_.WHAT.say 23:05
camelia rakudo-moar 80b912: OUTPUT«Nil␤»
23:08 raiph joined 23:09 kjs_ joined
raiph andreoss: i think the fall thru effect is because you used when; the * is irrelevant 23:09
psch m: given 6 { when * > 4 { say "$_ is greater than 4" }; when 6 { say "it's 6!" } } 23:10
camelia rakudo-moar 80b912: OUTPUT«6 is greater than 4␤»
andreoss raiph: i meant * isn't working with if statement within given block. 23:12
it'd be good for refactoring purposes, if replacing all 'when's with 'if's in my code will be enough in that case 23:15
psch but if and when don't mean the same thing in a given
consider 'if 6 { }' vs 'when 6 { }' 23:16
the former is always true, while the latter is true only for 'given 6 { ... }' (and statements that evaluate to 6)
raiph also, when is spec'd to break out of the when block; if isn't 23:17
psch or actually and $_ = 6
s/and/any/
m: for 1..10 { when 6 { say "when 6" }; if 6 { say "if 6" } }
camelia rakudo-moar 80b912: OUTPUT«if 6␤if 6␤if 6␤if 6␤if 6␤when 6␤if 6␤if 6␤if 6␤if 6␤»
psch what raiph++ said is another good point 23:19
raiph m: given 6 { when 6 { say "when" }; if 6 { say "if" } } # when breaks out of the when block
camelia rakudo-moar 80b912: OUTPUT«when␤»
raiph m: given 6 { if 6 { say "if" }; when 6 { say "when" }; } # if doesn't
camelia rakudo-moar 80b912: OUTPUT«if␤when␤»
andreoss psch: what should i use for correct falling-through in a given block? 23:20
23:21 anaeem___ left
andreoss perl5 had a special option for Switch for this 23:21
psch you can use if for that, but note that you have to explicitly compare to $_, instead of getting smartmatch against $_ for free as with given
raiph m: given 6 { when 6 { say "when"; continue }; if 6 { say "if" } } # when breaks out of the when block ... unless told not to?
camelia rakudo-moar 80b912: OUTPUT«===SORRY!=== Error while compiling /tmp/30O8OrZNEM␤Undeclared routine:␤ continue used at line 1␤␤»
psch m: given 5 { if $_ > 2 { say "greater 2" }; if $_ > 4 { say "greater 4" } } # this is possible, but more explicit than given 23:22
camelia rakudo-moar 80b912: OUTPUT«greater 2␤greater 4␤»
psch or maybe even verbose
andreoss psch: that's nothing new, but whole point of given block is missing 23:23
i want 'given ... is fall-though { ... }' 23:24
raiph m: given 6 { when 6 { say "when"; proceed }; if 6 { say "if" } } # when breaks out of the when block ... unless told to proceed
camelia rakudo-moar 80b912: OUTPUT«when␤if␤»
psch oh
yeah
i just found that in specs as well :) 23:25
raiph++
23:25 VABTXR8 joined
psch S04:1000 23:26
synopsebot Link: perlcabal.org/syn/S04.html#line_1000
psch andreoss: it's documented around there ^^^
timotimo we don't do very clever stuff with given/when yet in the optimizer ...
23:28 sirdancealot joined
andreoss psch: thanks. 23:28
23:39 virtualsue joined 23:40 Util_ is now known as Util 23:42 Rounin left 23:53 virtualsue left