»ö« 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.
grondilu the difficulty is not with the sum (addition), but with infinity. 00:00
colomon here’s the author’s TL;DR on the second link I posted: 00:01
“First: the “series” 1+2+3+4+\ldots does not have any finite sum in the normal sense of the word “sum.” Second: there are ways, however, to assign a finite “sum” to such divergent series in a mathematically consistent way, though we stress again that this is not a “sum” in the usual sense of the word. Third: The generalized sum of a divergent series has use in physics problems, as a way to incorporate unknown dam
factors into a problem that seemingly has a divergent solution. Fourth: the original video does not note any of these points.”
grondilu this guy raises interisting epistemologic points about it: youtube.com/watch?v=0Oazb7IWzbA
00:01 vendethiel left
grondilu he compares this issue with the invention of complex numbers and irrational numbers, for instance. 00:02
raydiak m: say 1-(1+1) == (1-1)+1 # I know this is mostly beside the point, but /me still doesn't understand why parens can be inserted at arbitrary points in such a construction
camelia rakudo-moar 127c99: OUTPUT«False␤»
grondilu raydiak: I don't know if they can. I think they do but probably not. 00:03
I suppose associativity does not survive infinite sums.
oh hang on 00:04
you can not write 1 - 1 + 1 - 1 + ... as 1-(1+1)-(1+1)-(1+1)... That's just incorrect. 00:05
00:06 gfldex left
grondilu 1-(1+1)-(1+1)-(1+1)... is 1 - 1 - 1 - 1 - 1 .... 00:06
associativity works with +, not - 00:07
raydiak yep
so (1-1)+(1-1)+... is invalid also
grondilu no, this one is correct (assuming it can be extended to infinite sums) 00:08
1 - 1 + 1 - 1 + ... == (1 - 1) + (1 - 1) + ...
raydiak m: say 1-2+3-4 == (1-2)+(3-4)
camelia rakudo-moar 127c99: OUTPUT«True␤»
raydiak m: say 1-2+3-4+5-6 == (1-2)+(3-4)+(5-6) 00:09
camelia rakudo-moar 127c99: OUTPUT«True␤»
raydiak it feels wrong but I guess it's not :)
grondilu just remember that a - b == a + (-b)
00:10 BenGoldberg joined
grondilu and think in terms of associativity of '+' 00:10
I could also write 1 + (-1 + 1) + (-1 + 1) + ... == 1 + 0 + 0 + ... == 1 00:12
so basically I could make it equal to any integer, as colomon said. 00:13
but Ramanujan and Euler thought it still makes some sense if we do it properly. They probably knew what they were doing. 00:14
00:15 rurban left
colomon there is a meaningful number you can assign to the series, yes. it’s just not a sum, and calling it the sum is wildly misleading 00:22
en.wikipedia.org/wiki/Ces%C3%A0ro_summation 00:24
00:24 adu joined
raydiak couldn't help but mis-read C3 mro in that url :) 00:24
colomon or en.wikipedia.org/wiki/Divergent_ser..._summation 00:25
raydiak and thanks grondilu, that makes sense
adu hi raydiak 00:26
grondilu colomon: I'm not sure why the limit of the partial sum of the series would deserve more the appellation "sum" than the Ceraro sum. 00:27
raydiak hey adu 00:28
grondilu (or the Ramanujan sum, or *)
I mean, if I was tought both sums on an equal footing and was asked which one makes more sense, I'm not sure I would know what to say. 00:30
00:32 virtualsue joined
lizmat is back 00:36
and finds a multitude of .trans functionality that isn't in the synopsis
but which break the 20x speed up simplification
so I will sleep on it and look at it tomorrow 00:37
good night, #perl6!
colomon o/
grondilu: I don’t think I have enough brainpower to explain it properly. But I’m pretty sure the “normal” sum of an infinite series is well-defined wrt doing normal math on it, and the Cesàro sum very much isn’t. Like that stuff you were doing where you could rearrange 1-1+1-1+1… to equal any integer. You should be able to do that sort of stuff with a normal sum of an inifinite series and have the answer always be th 00:40
same.
colomon meant to say “brainpower currently”, but what he wrote may be more accurate.
00:41 BenGoldberg left
grondilu I don't know about the Cesaro sum, but as far as Ramanujan/Euler sum is concerned, it seems to make sense considering it shows up in physics. 00:41
00:41 BenGoldberg joined
grondilu plus apparently it was made rigorous by Rieman if I understand correctly. 00:42
grondilu does not know the details at all, though. This is way above his competence level.
still, from what I can grasp it seems that calling it "non-sense" is unfair. 00:43
colomon I stand by it. 00:44
It has a meaning, but the meaning is not what people mean when they say sum.
grondilu by definition that means it's not "nonsense" but "some other sense". 00:45
it's like saying "calling sqrt(-1) an number is misleading because it's not what people have in mind when they think about numbers". 00:47
TimToady
.oO(for sum definition of number)
colomon The entire point of saying 1 + 2 + 3 + 4 + .. = -1/12 is that it’s pretending it is the normal understanding of summation. if you defined Cesàro sum as C() and said C(1 + 2 + 3 + 4 + …) = -1/12, you’d be 100% accurate (if clumsily notated), but no one would be in the least surprised. 00:51
or impressed. 00:52
grondilu what is the "normal understanding of summation"? To me there is a normal understanding, one that no one can disagree about, only *with a finite number of operands*. Again, the issue is not with the definition of summation, but with the extension of the concept to an infinity of numbers. 00:54
colomon Let me give you an example. In the sum 1 + 2 + 3 + 4 + … it is patently OBVIOUS to anyone with a basic understanding of mathematics that the sum cannot be negative. That’s a normal undertanding, yes, with a finite number of of operands. 00:56
grondilu no it's not obvious because you can not apply an axiom an infinite number of times. 1 + 2 + ... + n is always positive for any finite n, but that does not tell you anything about an infinite n, if that concept is even defined. 00:58
TimToady yeah, it might get tired partway there... 00:59
and that would be a negative
colomon grondilu: if you take that approach, you cannot say anything meaningful about it at all. 01:01
Mouq m: my \term:<…> = -121/12; say 1 + 2 + 3 + 4 + …
camelia rakudo-moar 127c99: OUTPUT«-0.083333␤»
Mouq m: my \term:<…> = -121/12; say (1 + 2 + 3 + 4 + …).perl
camelia rakudo-moar 127c99: OUTPUT«<-1/12>␤»
grondilu colomon: well, mathematicians usually don't talk about "infinity" as an object. Saying a sum is infinite is usually nothing but abbreviation of "this series tends towards infinity". In rigor, inifinity is not an element of any set. 01:03
colomon grondilu: the sum in question diverges. It is not equal to infinity; it is not equal to anything. 01:04
grondilu according to a particular conception of an infinite sum.
the one that is based as the limit of the partial sum.
colomon throws up his hands and leaves
01:04 colomon left
japhb When I was rather young, my father tried to explain to me that there was a very real sense that, just like you can say a tree "flowers", you could likewise say it "leaves", "caterpillars", and "moths". 01:07
grondilu you say 1 + 2 + 3 + ... is obviously positive, so it can't be equal to -1/12, but by the same reasoning I coul notice that 1 > [+] 2 X** (-1, -2 ... $n) for any $n, and yet 1 == [+] 2 X** (-1, -2 ... *) 01:08
japhb grondilu: Those are not the same reasoning.
grondilu there is no reasoning anyway, because you can't apply an axiom an infinite amount of times. 01:10
Mouq I'm getting something like, 1 + 2 + 3 + 4 + … doesn't mean (A + B) + C, because "…" isn't a mathematical object. It's really a "sugar" for Sum(1, Inf) (I don't have the unicode for sigma and inf on my keyboard yet). A reasonable definition of Sum(i, Inf) is one that is similar to Sum(i, j), but as Inf is not a number in the way i and j are, but is a mathematical concept, Sum(i, Inf) can't necessarily be defined unambiguously just becau 01:11
japhb grondilu: I don't know what axiom you are saying is being applied an infinite number of times.
Mouq: cut off at "unabiguously just becau" 01:12
Mouq …se Sum(i, j) is 01:13
grondilu japhb: basically: if I add a positive number to an other positive number, I get a positive number.
Mouq Sum(i, Inf) isn't even the correct way to write it, because Inf isn't considered an object. It'd be more like InfiniteSumFrom(i) 01:14
BenGoldberg m: say inf;
camelia rakudo-moar 127c99: OUTPUT«===SORRY!=== Error while compiling /tmp/fy4Fq1iFgC␤Undeclared routine:␤ inf used at line 1␤␤»
BenGoldberg m: say Inf;
camelia rakudo-moar 127c99: OUTPUT«Inf␤»
BenGoldberg m: say Inf - Inf;
camelia rakudo-moar 127c99: OUTPUT«NaN␤»
Mouq (If we're being "mathematically rigorous")
BenGoldberg wonders whether this discussion ought be moved to ##math. 01:15
japhb grondilu: If you're suggesting that moving continually to the right on a (Euclidean) number line can't be assumed to not end me up to the left of my starting point, I have to call BS. 01:16
Mouq thinks the discussion has been beaten to a pulp, but has homework to put off
japhb: My (devil's advocate) argument is that moving continually right can be assumed to end up to the right, but moving right "to infinity" isn't something with an intristicly meaningful physical analogy 01:18
japhb Mouq: Sure. Doesn't mean nothing can be said. :-) 01:19
Mouq japhb: But certain basically arbitrary postulates have to be defined first. And I think that's grondilu's point 01:20
japhb That sounds rather like axe-grinding, but OK, fair enough. 01:24
.oO( Mathematicians. Odd bunch. )
01:25
Mouq heh
01:26 virtualsue left, grondilu left
japhb goes back to attempting to break his writer's block 01:26
timotimo japhb: can you break your writer's block by trying on a new project just for funsies without pressure? maybe an opengl binding generator? :) 01:27
japhb timotimo: :-D 01:30
timotimo: Port the one I wrote for Parrot? It's written in Perl 5 IIRC ... 01:31
It takes advantage of the very limited subset of C found in the system OpenGL headers. 01:33
(Simple regex and such)
01:37 echowuhao joined 01:53 adu left 01:57 kaare_ left 02:00 Humbedooh left 02:02 kaare_ joined 02:10 kurahaupo1 joined 02:12 chenryn joined 02:14 chenryn left, chenryn joined 02:18 raiph left 02:24 dolmen joined
ruoso posted his sudoku solver in the rosetta code page... rosettacode.org/wiki/Sudoku#Perl_6 -- as a second solution... 02:25
02:29 yeahnoob joined
Mouq ruoso++: s/ellaborate/elaborate ? 02:35
m: my @a := lol 1, 2; my @b = [1,2,3],[4,5,6],[7,8,9]; say @b[@a] 02:39
camelia rakudo-moar 127c99: OUTPUT«6␤»
Mouq ruoso: ^^ potentially useful for all those $sudoku[$_[0]][$_[1]]
(but then maybe not) 02:40
BenGoldberg For a couple of generalized exact-cover-problem solvers written in perl5, see members.inode.at/w.laun/backtrack/backtrack.html 02:54
It might be interesting to port the bitset based version, using perl6's Set type. 02:55
03:06 noganex joined 03:08 noganex_ left 03:18 Psyche^ joined 03:22 Patterner left 03:24 dolmen left
dalek rl6-roast-data: d388542 | coke++ | / (5 files):
today (automated commit)
03:24
kudo-star-daily: 1a420fb | coke++ | log/ (14 files):
today (automated commit)
cxreg I've found very little description of what NSA actually entails, is there a summary anywhere? 03:29
TimToady the final goal is my int @matrix[3][3] taking exactly 9 integers spots in memory
not counting external bookkeeping, of course 03:31
cxreg oh I see. does that share anything with REPR? and does it have ordinary GC?
TimToady er, my int @matrix[3;3]
it would have GC as a whole
cxreg thinking of what node.js does with Buffer 03:32
TimToady and the native part is what jnthn++ has been hacking in, but he's probably going to tackle NFG before going after the "shaped" part
of course, not just int, but also num and complex, in any dimensionality 03:33
cxreg seems a little like an optimization, honestly. not sure that I'd personally block a dot-oh on it, as long as the syntax works in some reasonable fashion
TimToady we want to make sure our semantics are up to it before .0 03:34
cxreg fairy nuff
TimToady likewise for NFG
the GLR is mostly optimization, but may also have semantic changes in addition to the ones we've noticed
we just want to avoid a Big Oops before we get to most of what's designed in the synopses 03:35
03:37 dolmen joined
cxreg yeah the semantics in that work seemed significant enough to do now 03:38
Mouq TimToady: What's the type for "my int @matrix[3][3]" ? 03:39
TimToady I dunno, NativeArray[int,:shape(Int where ^3; Int where ^3)] or some such, only with more smarts about the actual size of each dimension than 'where' provides 03:42
Mouq m: say (^3,^3).perl 03:45
camelia rakudo-moar 127c99: OUTPUT«(0..^3, 0..^3)␤»
TimToady probably :shape(3,3) is adequate, since we don't support non-0 origin 03:47
except via .{} indexing, which is not a target for 6.0 unless someone gets inspired 03:48
I'd be happy with just multidimensional numeric arrays for 6.0, and not worry too much about mixing in hash indices 03:49
Mouq m: role Foo[::T1, :$shape] { method bar (T1 $) { say $shape } }; class Baz does Foo[Str, :shape(3)] { }; Baz.bar("test");
camelia rakudo-moar 127c99: OUTPUT«3␤»
Mouq m: role Foo[::T1, :$shape] { method bar (T1 $) { say $shape } }; class Baz does Foo[Str] { }; Baz.bar("test"); 03:50
camelia rakudo-moar 127c99: OUTPUT«(Mu)␤»
Mouq That's really cool
TimToady if you wanna whack on that while jnthn shifts focus to NFG, that'd be cool
certainly lots of prior art in other languages... 03:52
03:54 dj_goku left
TimToady on the subject of en.wikipedia.org/wiki/Row-major_order I think we'd be row major, not column major, by preference 03:55
04:00 dj_goku joined, dj_goku left, dj_goku joined
Mouq TimToady: I'll consider it… :P 04:15
04:31 rmgk_ joined, rmgk is now known as Guest63823, Guest63823 left, rmgk_ is now known as rmgk 04:32 yepyep joined 04:34 yepyep left, adu joined 04:57 Mouq left 05:02 BenGoldberg left 05:18 chenryn left 05:29 kurahaupo1 left 05:32 telex left
moritz avuserow: where can I find your pgp pubkey? 05:33
05:34 diana_olhovik_ joined, telex joined 05:53 chenryn joined
avuserow I don't think it's online any longer. I used to have it on my university webhost account 05:59
I could upload it to a keyserver, but I really should generate a new one first since this one should expire this year I think
are there any better solutions than keyservers these days? 06:02
is hack.p6c.org's ssh pubkey available anywhere? 06:03
moritz ssh-dss AAAAB3NzaC1kc3MAAACBAMN5DrzzwalGzxwm2gZYP+LAjxWKsMGBrtCY+i6nomYKFMFn4R5POK5tb2c8rd1NKFJXyAntYN5hAi8w+87SR8YuEUr5f2Sef9xgyCI4wbBJjLIvEmS3bqRCpwf538qrlQfQur0b16rUtJL0JJYIjLMaXoyNc74CsKzys+NrUa0jAAAAFQC7af1E7rEHyy2uyOo0tkq8Bky+ZwAAAIAvl0ox80VQQr/c5rGJHS5iaDOV/p8H67Du1+X2naCBC5rEFgJ66xXoT7cR0BvzBW0FwB3IjGCdTEiOQRpl/Wwf6f1YPMqd3Gxa2Ah6bvDKFS3ZT2DEya7q57R6BxnajBpFZVCPg2RdptEi2LlYfZX0/i2lK/Won8bY4ZnJdED16QAAAIA5PUb0k7RLuiRWnYDv4J0rhzb+zM5hcSqbELzy5LyQGL/7gi1fD 06:07
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDRuG1UeAoT1vLsUW1l99qEjyGIJfVR+j2vjqGqL0O7vuV5uL5ueTqDgg+F7jfJwN7fEAKR3xGvc6ZJV5NTTLcLKrIwMIzIhLgxS6bt0gs0JAt+Uggy8qmoT8POQ4J7pAlFK7k1C1lvqjtbG/e5f9evZm6/2XIVrkBzq+O2QWxEosnIeCjOnfsfEMlAJbXZcUKbaRwxa72jdkuVUKGlvoBmWAUYr8PgIkwK5TgihTHA15v3lbSZoy3CBco3IW/BElzSPSGmlCxURlXYCuy4rvW++d9ofXT9lYgoTAqUHiK56PFUoog6D5b2xREZvNHnP5GFx0Jx1rqcS26zuEpkjYbL
avuserow thanks 06:08
06:14 Mouq joined 06:16 mr-foobar left 06:18 bjz joined 06:24 dolmen left 06:29 bjz left
dalek frastructure-doc: 6b36c60 | Adrian++ | hosts/hack.p6c.org.pod:
Add SSH host key fingerprints
06:32
06:32 diana_olhovik_ left 06:40 fhelmberger joined 06:45 fhelmberger left
ugexe i have a grammar that seems to be stuck in an infinite loop unless i run it with Grammar::Debugger or Grammar::Tracer. what do those change that would have such an effect? 06:52
Mouq ugexe: Hmm. Mind gisting your grammar? 06:57
moritz ugexe: an infinite loop usually comes from quantifying a rule or subgroup that might match zero characters 06:58
07:01 vendethiel joined 07:08 diana_olhovik_ joined, adu left 07:09 Mouq left 07:12 Rounin joined 07:26 bjz joined 07:30 risou is now known as risou_awy 07:31 echowuhao left 07:34 risou_awy is now known as risou 07:35 yeahnoob left 07:37 gaussblurinc_ joined 07:44 rurban joined 07:45 Humbedooh joined, FROGGS joined
dalek p: ead7622 | raydiak++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/CArrayInstance.java:
Zero-fill memory allocated for CArrays
07:46
p: 95a965d | FROGGS++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/CArrayInstance.java:
Merge pull request #222 from raydiak/master

Zero-fill memory allocated for CArrays
07:51 alini left 07:57 zakharyas joined 07:58 darutoko joined
moritz raydiak: I've given you a commit bit for nqp 08:01
raydiak thank you moritz 08:03
08:04 prime left, prime- joined 08:06 broquaint left 08:08 rurban left 08:09 larion left 08:32 pdcawley joined 08:40 alini joined 08:41 fhelmberger joined 08:42 ecocode joined 08:43 kjs_ joined 08:45 fhelmberger left 08:53 pdcawley left 08:57 fhelmberger joined 08:58 abraxxa joined 09:01 zacts joined, wicope joined
raydiak good night o/ 09:03
09:04 yeahnoob joined 09:10 broquaint joined
avuserow I managed to wire up pygments, Inline::Python, and the htmlify script from the docs repo. On my machine, it takes about 22 minutes to run it without using inline, and 6 minutes with inline. 09:12
moritz \o/
avuserow Inline::Python wasn't the easiest to build, so that's a downside
(but that seems solvable) 09:13
moritz eeks, I can't even build nativecall
FROGGS moritz: what? O.o
moritz ===SORRY!=== Error while compiling lib/NativeCall.pm6
'long' cannot inherit from 'ctype' because it is unknown.
FROGGS moritz: upgrade your rakudo 09:14
m: sub foo is ctype("long") { }
camelia rakudo-moar 127c99: OUTPUT«===SORRY!=== Error while compiling /tmp/yK3eSziA4x␤Can't use unknown trait 'is ctype' in a sub declaration.␤at /tmp/yK3eSziA4x:1␤------> ␤ expecting any of:␤ rw parcel hidden_from_backtrace hidden_from_USAGE␤ …»
FROGGS eww
moritz doesn't seem to help :(
rakudo on camelia is up-to-date 09:15
FROGGS but I commited it: github.com/rakudo/rakudo/commit/49...6def282217
09:16 pdcawley joined
FROGGS m: sub foo is nativesize(42) { } 09:16
camelia rakudo-moar 127c99: OUTPUT«===SORRY!=== Error while compiling /tmp/wv3RQ5_nwq␤Can't use unknown trait 'is nativesize' in a sub declaration.␤at /tmp/wv3RQ5_nwq:1␤------> ␤ expecting any of:␤ rw parcel hidden_from_backtrace hidden_from_USAGE␤ …»
FROGGS traits are busted?
09:17 sven_123_ left
FROGGS m: say &trait_mod:<is>.candidates».signature 09:18
camelia rakudo-moar 127c99: OUTPUT«:(Mu:U $child, Mu:U $parent) :(Mu:U $child, Any :DEPRECATED($DEPRECATED)!) :(Mu:U $type, Any :rw($rw)!) :(Mu:U $type, Any :nativesize($nativesize)!) :(Mu:U $type, Any :ctype($ctype)!) :(Mu:U $type, Any :unsigned($unsigned)!) :(Mu:U $type, Any :hidden($hidd…»
FROGGS there it is!
09:18 sven_123 joined
moritz $type, Any :ctype($ctype)! 09:18
hm, that's not wrong, is it? 09:19
FROGGS looks good to me
p: sub foo is ctype("long") { }
camelia rakudo-parrot 127c99: OUTPUT«===SORRY!=== Error while compiling /tmp/txQ9fbBHEa␤Can't use unknown trait 'is ctype' in a sub declaration.␤at /tmp/txQ9fbBHEa:1␤------> ␤ expecting any of:␤ rw parcel hidden_from_backtrace hidden_from_USAGE␤ …»
moritz Mu:U vs. Sub:D 09:20
FROGGS: there seems to be a default trait for Mu:U that catches inheritance from non-existing types
FROGGS ohh, wait 09:21
moritz FROGGS: it seems to take precedence over the 'ctypes' one
FROGGS m: my native long is repr("P6int") is Int is ctype("long") { };
camelia ( no output )
FROGGS there you go
subs are perhaps not Mu:U
dalek c/inline-pygments: b060886 | (Adrian Kreher)++ | htmlify.p6:
Use Inline::Python to interact with pygments

This is significantly faster when syntax highlighting but requires Inline::Python which is currently difficult to build. On my machine, htmlify with an external pygments takes around 22:20, while using it via Inline::Python took only 6:25.
09:22
FROGGS however, that works here, and so should NativeCall
moritz: can you run that one liner please?
09:22 dolmen joined
avuserow I put the inline version as a branch. It still wants some better detection of Inline::Python 09:23
and I don't know how people feel about having it as a direct dependency
moritz FROGGS: doesn't work here
avuserow Plus Inline::Python needs some build work to be better. I couldn't get it to build on my machine or hack.p6c without some changes
moritz avuserow: thanks, putting it in a branch is a good choice 09:24
FROGGS moritz: then you need to pull I'd say
moritz FROGGS: maybe
09:25 yeahnoob left 09:27 kjs_ left 09:28 larion joined 09:41 rurban joined 09:43 virtualsue joined
avuserow okay, so it looks like Inline::Python only has one problem building, not two as I thought before. I filed an issue, so hopefully we can consider Inline-based pygments use seriously in the near future :) 09:44
09:54 dolmen left 09:55 pdcawley left 10:01 rindolf joined 10:03 dakkar joined, pdcawley joined 10:08 zacts left, _mg_ joined 10:10 pecastro joined 10:12 rindolf left 10:14 khisanth__ joined 10:16 khisanth_ left 10:19 virtualsue left, Ven joined, Kristien joined 10:23 _mg_ left
Kristien can you have a Failure that's an aggregation of other Failures? 10:28
like a FailureSet 10:29
masak good antenoon, #perl6 10:30
Kristien m: say [] === [] 10:31
camelia rakudo-moar 127c99: OUTPUT«False␤»
Kristien m: say [] eqv []
camelia rakudo-moar 127c99: OUTPUT«True␤»
10:32 virtualsue joined
Kristien m: say 1 == 1.0 10:33
camelia rakudo-moar 127c99: OUTPUT«True␤» 10:34
Kristien very nice
10:35 Kristien left 10:44 _mg_ joined 10:45 larion left 10:46 larion joined 10:55 espadrine_ joined 11:04 Ven left 11:06 _mg_ left 11:10 silug left 11:15 Ven joined 11:23 silug joined
lizmat good *, #perl6! 11:24
sjn \o 11:28
11:29 kjs_ joined
psch \o 11:30
lizmat: re: undesigned .trans features: S05-transliteration/trans.t has much more content than S05 itself. there's also a PR of mine passing all but one of the tests in there, but i suspect that might break your envisioned opt 11:32
dalek kudo/nom: 506855b | lizmat++ | src/core/Str.pm:
Make simple .trans about 20x faster

There's some more room here, but at least this works and passes all the tests
11:33
lizmat psch: you can judge for yourself :-)
what is the PR ?
psch github.com/rakudo/rakudo/pull/317
11:33 spider-mario left
psch oh, the opt is just the single-pair call 11:35
lizmat yes, the most common case
it should make rosettacode.org/wiki/Textonyms#Perl_6 about 15x faster, I would think 11:36
psch yeah, that should work out fine. adverbs go the slow path as well if i see that right, so my PR shouldn't need more adjustment, if it still merges
11:37 rindolf joined
psch iirc tr/// gets that opt for free too. lizmat++ 11:38
dalek ast: 6f3ec3b | lizmat++ | S05-transliteration/trans.t:
Unfudge now passing test
11:40 alini left 11:46 coffee` joined 11:53 alini joined 12:00 chenryn left
dalek kudo/nom: c3da857 | lizmat++ | src/core/Str.pm:
Improve simple .trans by another 15%

Also fix handling on non-ranges (like B..A)
12:18
12:18 colomon joined
dalek kudo/nom: e86659b | paultcochrane++ | lib/Test.pm:
Add tentative implementations of like() and unlike()

It is possible that the implementations could/should be generalised. The string handling of Regexes could also be better. Nevertheless, it's a start.
12:19
kudo/nom: 69c1dc7 | lizmat++ | lib/Test.pm:
Merge pull request #365 from paultcochrane/pr/add_like_unlike_to_test

Add tentative implementations of like() and unlike()
[ptc] lizmat++ 12:20
Ven [ptc]++ 12:21
dalek ast: 36978a5 | lizmat++ | integration/advent2012-day10.t:
Replace locally grown like() by Test::like
12:26
psch i wonder if the tr/// adverbs warrant discussion. not having them designed but still having tests did seem curious 12:29
...but in the end, roast should be right, right?
lizmat yeah, that's the idea 12:32
ab5tract lizmat: did you see my messages about github.com/rakudo/rakudo/pull/362 ? 12:33
yoleaux 14 Feb 2015 19:30Z <lizmat> ab5tract: re github.com/rakudo/rakudo/pull/362 , I think colomon / TimToady should shine their light on that
14 Feb 2015 19:31Z <lizmat> ab5tract: I have merely implemented what colomon implemented in niecza
ab5tract oh, heehe
lizmat but getting burnt by them while doing this opt, was not so nice
ab5tract lizmat: the weirdest part is definitely the broken parsing when trying to use (^+) from a file (or when arguments are (...).Bag (^+) (...).Bag in the repl) 12:34
i wondered if it might have something to do with our subtle precomp bugs
lizmat perhaps you should rakudobug it 12:35
timotimo: ping ?
ab5tract yeah, i considered that. unfortunately it's kind of tricky to introduce/reproduce, so i thought going through the branch which makes it visible was a good plan 12:36
dalek kudo/newio: 7d49693 | FROGGS++ | src/Perl6/Metamodel/NativeHOW.nqp:
handle C type names in "is nativesize" trait
12:37
rakudo/newio: e4811fe | FROGGS++ | / (9 files):
rakudo/newio: Merge branch 'nom' of github.com:rakudo/rakudo into longer
12:37 dalek left
lizmat sorry dalek 12:37
12:37 dalek joined, ChanServ sets mode: +v dalek
dalek kudo/nom: daa4a2e | lizmat++ | docs/ChangeLog:
Add some ChangeLog entries
12:41
lizmat PSA: I'll be doing the Rakudo compiler release this Thursday (19 Fenruary)
Please add appropriate entries to ChangeLog that you feel are missing for some reason
.tell jnthn could you add rakudo ChangeLog entries for the work you've done in the past month? 12:42
yoleaux lizmat: I'll pass your message to jnthn.
lizmat can we actually already return unboxed items from a sub / method ??? 12:43
moritz from a sub, yes 12:44
and it has worked for quite some time
lizmat also from a method ?
moritz m: sub f() returns int { 42 }; my int $x = f; say $x
camelia rakudo-moar 506855: OUTPUT«42␤»
moritz lizmat: I don't know; it doesn't statically know that a native will be returned
lizmat while looking at github.com/rakudo/rakudo/pull/317/files 12:45
moritz nqp::unbox_s($result) as a return value looks suspicious 12:46
lizmat I was wondering whether returning an unboxed strf from get_next_substitution_result would make sense
psch iirc that came about because i moved code to that method, and the code had the unbox 12:47
lizmat and my $result = self.get_next_substitution_result; will only box it again
psch $!substituted_text in the pre of the diff has that unbox i was refering to 12:49
dalek kudo/nom: cb01e8a | moritz++ | docs/ChangeLog:
Add four more changelog entries
12:51
psch tbh, i wasn't sure i understood how exactly LSM works anyway, so if the PR seems confused, that's probably why :s
lizmat looks like moritz was the original architect of that code 12:52
moritz nope
I think masak++ did it 12:53
I just touched most of it while trying to make it faster
lizmat aha ok
12:57 kaleem joined
dalek kudo/nom: 34fea9a | FROGGS++ | / (26 files):
pull NativeCall into compiler codebase

In the past we often had Rakudo<>NativeCall version mismatched that made clear how tight the compiler (vm) is coupled to NativeCall.
13:01
lizmat FROGGS++
FROGGS :o) 13:02
moritz FROGGS++
FROGGS: now make the zavolaj repo mostly empty
dalek kudo/nom: f45dfa7 | FROGGS++ | docs/ChangeLog:
add more changes
13:03
colomon woah!
FROGGS moritz: shall I? hmmm...
moritz FROGGS: well yes, all those projects in the ecosystem that depend on NativeCall shouldn't try to install a NativeCall.pm over the one shipped with rakudo 13:04
FROGGS: and having the code base twice has only negative effects
13:04 grondilu joined
FROGGS I was thinking about making it work with 2015.01... but there is no way to do everything right it seems 13:05
grondilu what's going on here? NativeCall is integrated in rakudo? That's a big deal.
FROGGS grondilu: it is a mess otherwise
grondilu can I reasonably hope it is a step towards 'use nativelib <mylib>;' ? 13:06
FROGGS it is very hard to sync a module and a compiler/vm... and NativeCall certainly wants a very specific version of rakudo/nqp/vm
grondilu: it is unrelated
grondilu: this would also imply that we ship C::Parser...
grondilu sure, but integrating NativeCall suggest you guys are thinking about doing something like that. 13:07
(which is awesome)
FROGGS well no, it is really just about what I said...
grondilu ok ok 13:08
FROGGS we allow passing Bufs in the backends, so you need a certain version of the vm *and* nativecall
we fix the C long problem, and again you need very specific revisions of both sides
arnsholt use nativelib would (should?) probably require shared object parsing, rather than header parsing
FROGGS you you install NativeCall on an older rakudo (star), it won't work out 13:09
arnsholt: how does that work on windows?
grondilu not sure. doesn't gcc needs the headers in order to link and compile code to a library?
arnsholt No idea how to do it either on Linux or Windows
FROGGS grondilu: often you just install a lib via apt, without the headers 13:10
arnsholt True, we need the headers for the signatures
FROGGS gobject introspection is nice but is not there of every platform so to say
on every*
arnsholt We can get the names of the symbols via the lib, but not the types. That's true
grondilu not when compiling. I often have to install the -dev package, which contain headers.
FROGGS grondilu: but we dont compile anything ehre
here*
grondilu well, I suppose we don't indeed. 13:11
13:12 dwarring left
masak yes, I wrote LSM. 13:12
FROGGS at least that would be the ideal world... often you want to load the lib provides by your package provider
masak I remember evolving it tests-first.
FROGGS provided*
I cannot type today :o(
grondilu FROGGS: does that mean I should remove NativeCall from the panda install now? 13:13
FROGGS grondilu: what does that mean 'removing it from panda install'?
it will already be there from now on 13:14
grondilu I thought there could be duplicates or something.
grondilu has no idea where panda does install modules and if they can collide with those inside the rakudo tree 13:15
FROGGS right now you could install it via panda and it would work "by accident"
but when NativeCall gets patched in rakudo you certainly would miss the patches in the zavolaj repository
grondilu isn't it a subrepo (in the git sense)? 13:16
lizmat FROGGS: I see failures in make test on parrot
FROGGS ewww 13:17
grondilu: no
lizmat: I'll look into that
lizmat gist.github.com/lizmat/243be8a85efba7bbd614 13:18
FROGGS I'll care about that
lizmat also on jvm :-( 13:19
FROGGS O.o
I did know about the callbacks problem on parrot, but jvm was clean on all of my boxes
lizmat gist.github.com/lizmat/a4f4646711a72d4c4211 13:20
FROGGS ohh
lizmat $ perl6-j t/04-nativecall/01-argless.t 13:21
1..3
java.lang.UnsatisfiedLinkError: Unable to load library './01-argless.so': Native library (darwin/lib./01-argless.so.dylib) not found in resource path ([file:/Users/liz/Github/rakudo.jvm/, file:/Users/liz/Github/rakudo.jvm/install/languages/perl6/runtime/, file:/Users/liz/Github/rakudo.jvm/install/languages/perl6/lib/, file:/Users/liz/Github/rakudo.jvm/install/languages/nqp/lib/])
in method postcircumfix:<( )> at lib/NativeCall.pm:142
in any at gen/jvm/BOOTSTRAP.nqp:1697
in block <unit> at t/04-nativecall/01-argless.t:15
FROGGS lizmat: that's an osx 10.8.something problem... this is introduced by an update to osx
ohh damn
there is an ./01-argless.dylib?
ohh I guess it was not built at all 13:22
13:22 kjs_ left
FROGGS that make sense and should be fairly easy to fix 13:22
lizmat ok, just being the messenger here...
let me know if I need to test something
FROGGS lizmat++
dalek kudo/newio: daa4a2e | lizmat++ | docs/ChangeLog:
Add some ChangeLog entries
13:23
kudo/newio: cb01e8a | moritz++ | docs/ChangeLog:
Add four more changelog entries
kudo/newio: 34fea9a | FROGGS++ | / (26 files):
pull NativeCall into compiler codebase

In the past we often had Rakudo<>NativeCall version mismatched that made clear how tight the compiler (vm) is coupled to NativeCall.
kudo/newio: f45dfa7 | FROGGS++ | docs/ChangeLog:
add more changes
kudo/newio: cff15ff | lizmat++ | / (27 files):
Merge branch 'nom' into newio
13:23 alini left, alini_ joined
dalek kudo/nom: 0095545 | FROGGS++ | t/04-nativecall/ (7 files):
include string.h to please latest osx
13:25
FROGGS lizmat: that should make it work on the jvm 13:26
lizmat testing 13:31
same, reconfiguring and building from scratch 13:32
FROGGS hmmmm
13:32 DarkLoord joined
FROGGS lizmat: what's the output of perl6-j t/04-nativecall/01-argless.t ? 13:33
lizmat rebuilding atm, will tell you in a (bit longer) mo 13:34
13:34 skids left
FROGGS yeah, no hurry 13:34
13:36 DarkLoord left
lizmat wonders whether we'll see more people online from the US today, or less (as it's President's Day today :-) 13:37
FROGGS: $ perl6-j t/04-nativecall/01-argless.t 13:38
1..3
java.lang.UnsatisfiedLinkError: Unable to load library './01-argless.so': Native library (darwin/lib./01-argless.so.dylib) not found in resource path ([file:/Users/liz/Github/rakudo.jvm/, file:/Users/liz/Github/rakudo.jvm/install/languages/perl6/runtime/, file:/Users/liz/Github/rakudo.jvm/install/languages/perl6/lib/, file:/Users/liz/Github/rakudo.jvm/install/languages/nqp/lib/])
in method postcircumfix:<( )> at lib/NativeCall.pm:142
FROGGS wonders if we hit the 250 ppl mark in Feb and when we'll hit the 300 ppl mark...
lizmat: but is there a 01-argless.* in your build directory?
I wonder how nativecall could have worked on osx 13:39
lizmat $ ls -ls 01-argless.*
24 -rwxr-xr-x 1 liz macports 8460 Feb 16 14:37 01-argless.dylib
8 -rw-r--r-- 1 liz macports 1260 Feb 16 14:37 01-argless.o
FROGGS: fwiw, it works fine with moar 13:40
13:40 alini_ left
FROGGS okay, so nativecall does not get the fileextension right for osx 13:40
13:41 alini joined
FROGGS m: say $*VM.config<load_ext> 13:42
camelia rakudo-moar f45dfa: OUTPUT«(Any)␤»
FROGGS m: say $*VM.config<dll>
camelia rakudo-moar f45dfa: OUTPUT«lib%s.so␤»
lizmat FROGGS: I get (any) on both here for perl6-j 13:43
*Any
FROGGS me too on linux
muraiki me too on freebsd 13:45
FROGGS $ perl6-j -e 'say $*VM.config<nativecall.so>' # "so"
that's what we need to use I think 13:46
lizmat $ perl6-j -e 'say $*VM.config<nativecall.so>'
dylib
FROGGS k
p: say $*VM.config<load_ext> 13:47
camelia rakudo-parrot f45dfa: OUTPUT«.so␤»
13:47 xfix joined
dalek kudo/nom: bbe942f | FROGGS++ | lib/NativeCall.pm:
consider lib file extension info on jvm backend
13:48
FROGGS I hope that helps
though, I still wonder why it concats the file this way in the paste: darwin/lib./01-argless.so.dylib
13:49 _mg_ joined
lizmat darwin/lib ~ ./01-argless.so.dylib ? 13:49
13:49 DarkLoord joined
dalek kudo/newio: 0553859 | lizmat++ | src/core/io_operators.pm:
chdir() returns new $*CWD also
13:51
kudo/newio: fb94d3f | lizmat++ | t/01-sanity/51-filetest.t:
Hopefully last IO.i/.v -> .inode/.device refactor
13:52 mrf left
FROGGS lizmat: aye, but where does that come from? ./ clearly indicates a path one does not just prepend stuff to 13:52
13:52 mrf joined
lizmat are those .o .dylib files only needed for the tests ? 13:53
FROGGS yes 13:54
lizmat alas, still the same error
FROGGS but the text should at least change slightly...
13:55 kaleem left
lizmat $ perl6-j t/04-nativecall/01-argless.t 13:55
1..3
java.lang.UnsatisfiedLinkError: Unable to load library './01-argless.dylib': Native library (darwin/lib./01-argless.dylib.dylib) not found in resource path ([file:/Users/liz/Github/rakudo.jvm/, file:/Users/liz/Github/rakudo.jvm/install/languages/perl6/runtime/, file:/Users/liz/Github/rakudo.jvm/install/languages/perl6/lib/, file:/Users/liz/Github/rakudo.jvm/install/languages/nqp/lib/])
in method postcircumfix:<( )> at lib/NativeCall.pm:143
FROGGS ahh
13:55 sqirrel_ joined
FROGGS interesting 13:55
13:55 Mouq joined
FROGGS now I'd need an osx box :o( 13:56
13:57 xfix left, crux left, xfix joined 13:58 alini_ joined 13:59 alini left, alini_ is now known as alini, kaleem joined 14:01 yeahnoob joined 14:03 Mouq left
grondilu the word "octet" is used a few times in the specs. Can I replace it with "bytes"? 14:06
("octet" is French for "byte")
huf octet is also a more specific word for "byte of 8 bits" 14:07
moritz what huf said
huf from the days of N-bit bytes (7? 6? 9?)
moritz there are some contexts (mostly ancient machines, but also ancient programmers) where bytes aren't automatically 8 bit
grondilu isn't a byte necessarily 8 bits?
oh, ok
huf _now_ it is. but i think c would be happy with some other size
dalek kudo/nom: d42e171 | lizmat++ | src/RESTRICTED.setting:
Disallow use of NativeCall in restricted setting

  timotimo++ for reminding me
14:08
14:09 kaare_ left
lizmat FROGGS: would that be enough to stop NativeCall ? ^^^ 14:15
grondilu $ perl6 -e 'say uint.Range.max.log / log(2);'
lizmat or would I need to de-activate "is native" trait ?
grondilu ^ 64
grondilu would have expected 32 on his machine 14:16
moritz m: say uint.Range.max.log(2) 14:17
camelia rakudo-moar f45dfa: OUTPUT«64␤»
14:17 Ven left
FROGGS lizmat: NativeCall is not a class, so your patch is a noop 14:17
lizmat m: use NativeCall
camelia ( no output )
FROGGS also, the restricted setting overwrites stuff from the setting... but nativecall is not part of the setting 14:18
lizmat duh :-)
hmmm...
FROGGS as I mentioned a few times already I think the only way to really have a restricted setting is to redefine the problematic nqp:: ops 14:19
m: use NativeCall; sub malloc(int32) is native { }; malloc(1024)
camelia ( no output )
FROGGS m: nqp::bindhllsym('nqp', 'nativecallbuild', Mu); use NativeCall; sub malloc(int32) is native { }; malloc(1024) 14:20
camelia ( no output )
FROGGS hmmm
jnthn I also think if we want real security we'd better be solving it at a deeper level 14:21
yoleaux 14 Feb 2015 11:47Z <lizmat> jnthn: the PIO role is consumed by IO::Handle / IO::Socket / IO::Dup (the class handling $*IN and friends)
14 Feb 2015 11:47Z <lizmat> jnthn: fwiw, as I stated before, I'm fine with PIO, as it is the Perl Io Object
FROGGS I thought I somehow managed to redefine an op...
yoleaux 12:42Z <lizmat> jnthn: could you add rakudo ChangeLog entries for the work you've done in the past month?
14:21 crux joined
FROGGS ahh, I start to remember 14:23
14:23 molaf joined 14:24 noganex left, noganex_ joined
FROGGS m: nqp::getcomp('QAST').operations.add_hll_op('nqp', 'buildnativecall', Mu); use NativeCall; sub malloc(int32) is native { }; malloc(1024) 14:25
camelia ( no output )
FROGGS :o8
:o(
m: BEGIN nqp::getcomp('QAST').operations.add_hll_op('nqp', 'buildnativecall', Mu); use NativeCall; sub malloc(int32) is native { }; malloc(1024)
camelia ( no output )
FROGGS damn
moritz anybody with enough knowledge to abuse nqp:: ops could probably obtain a commit bit, and sneak some nastiness into some build script or another 14:26
FROGGS true, but here are quite some code reviewers :o)
dalek kudo/nom: e7a00b0 | lizmat++ | lib/NativeCall.pm:
Fix deprecated use of $*OS
14:27
timotimo o/ 14:28
FROGGS hi timotimo 14:29
14:30 telex left
dalek kudo/nom: 5812978 | lizmat++ | src/RESTRICTED.setting:
Hopefully better temp fix disallowing "is native"
14:32
14:32 telex joined
FROGGS hmmm 14:33
14:33 kaleem left
lizmat m: use NativeCall 14:33
camelia ( no output )
FROGGS lizmat: did you test it?
lizmat not sure how
FROGGS use NativeCall; sub malloc(int32) is native { }; malloc(1024)
that should fail ideally
but I think it does not
lizmat not sure how I can run restricted setting locally 14:34
moritz perl6-m --setting=RESTRICTED or something
you can always look into how camelia does it
github.com/perl6/evalbot/blob/mast...ot.pl#L130
FROGGS moritz: perl6-m --help does not list it
lizmat indeed, that doesn't stop it :-( 14:35
moritz stop this nonesense already 14:36
timotimo at least you need to "use nqp" in order to use nqp ops directly
moritz star-m has had nativecall available for years now
FROGGS lizmat: the problem is that 'use NativeCall' export the trait into your namespace and scribbles over the candidates of the restricted setting
timotimo: is that so?
timotimo i think so?
m: nqp::say("hi") 14:37
camelia rakudo-moar bbe942: OUTPUT«hi␤»
timotimo er ... apparently not :)
FROGGS :o)
moritz no, but 'use nqp;' has been made available
dalek kudo/nom: 6a647ed | lizmat++ | src/RESTRICTED.setting:
Revert "Hopefully better temp fix disallowing "is native""

Stopping the nonsense, moritz++
moritz m: use nqp; say 'alive'
camelia rakudo-moar bbe942: OUTPUT«alive␤»
moritz sorry if tha was rude
FROGGS yes, now we just need to properly fiddle with nqp ops...
well, "now"
moritz FROGGS: I have a branch for that
lizmat moritz: no offense taken :-) 14:38
moritz FROGGS: branch use-nqp
FROGGS then we can also disable the socket ops, and can export the socket classes again...
moritz FROGGS: the forbidding part works, the allowing-in-core doesn't work :-)
14:38 yeahnoob left
FROGGS ahh :o) 14:38
14:39 yeahnoob joined
FROGGS hmmm 14:39
that would mean that we just not enable "allow-nqp" for camelia somehow 14:40
so that a 'use nqp' would not work here
moritz++ # github.com/rakudo/rakudo/compare/use-nqp
14:41 kjs_ joined
moritz well, then somebody could still add 'use nqp;' on the command line 14:42
FROGGS right
but not here perhaps
moritz otoh, nqp ops here are really handy
FROGGS perl6-m -e 'nqp::say("42")' # NOK 14:43
perl6-m -e 'use nqp; nqp::say("42")' # OK
perl6-m --allow-nqp -e 'nqp::say("42")' # OK
perl6-m --disallow-nqp -e 'nqp::say("42")' # NOK
perl6-m --disallow-nqp -e 'use nqp; nqp::say("42")' # NOK
or so
but I am just musing... 14:44
dalek kudo/nom: 5899abe | lizmat++ | t/04-nativecall/CompileTestLib.pm:
Look up $*VM only once
14:55 kaleem joined, molaf_ joined 14:58 molaf left, TgMts joined 14:59 sqirrel_ left
dalek kudo/nom: f4379c6 | lizmat++ | t/04-nativecall/CompileTestLib.pm:
Cleanup files created for testing
15:00
FROGGS m: unlink "barbazboo"; say "alive" 15:02
camelia rakudo-moar bbe942: OUTPUT«unlink is disallowed in restricted setting␤ in sub restricted at src/RESTRICTED.setting:1␤ in sub unlink at src/RESTRICTED.setting:19␤ in block <unit> at /tmp/bV71St9pbg:1␤␤»
FROGGS ahh, does not die (anymore?)
lizmat m: "barbazboo".IO.unlink; say "alive"
camelia rakudo-moar bbe942: OUTPUT«alive␤»
lizmat :-( 15:03
FROGGS no, that's good IMO
15:03 mrf left
FROGGS at least, it is good for your patch 15:03
lizmat ??
15:04 Rounin left
FROGGS if we were unable to create a file, and we would explode only complaining about the fact that we cannot delete a non-existing file that would be annoying 15:04
I just wanted to check that we don't need a 'try unlink $file' there
lizmat ah, ok
m: say "barbazboo".IO.unlink 15:05
camelia rakudo-moar bbe942: OUTPUT«True␤»
lizmat so much for that idea :-(
15:05 mrf joined
lizmat p: say "barbazboo".IO.unlink 15:05
camelia rakudo-parrot bbe942: OUTPUT«True␤»
moritz it unlinked successfully? 15:06
lizmat no, it just returns true
ruoso Do we have a BNF/EBNF grammar implementation already? I just came across the Grammar Zoo, and it would be nice if we could just use those.. slps.github.io/zoo/ 15:08
colomon I was messing around with one at one point, let me see what I can find 15:10
lizmat FROGGS: hmmm.. double .dylib? Unable to load library './01-argless.dylib': Native library (darwin/lib./01-argless.dylib.dylib) 15:11
FROGGS lizmat: something pre-/appends path information 15:13
I'd need a osx box to play around...
it is hard to guess a fix
lizmat but the c_line and l_line are correct in CompileTestLib.pm
FROGGS yes, we compile correctly
15:13 Ven joined
FROGGS the "is native('./argless')" is the problematic bit 15:14
lizmat if I copy the file to .dylib.dylib, it still fails
so maybe the error message is (also) wrong 15:15
FROGGS we pass "./01-argless.dylib" to the library loader, and that does not seems to understand it
colomon ruoso: not quite a module, and not quite BNF: github.com/colomon/perl6-WSN
and also not functional at the moment, it seems 15:16
pmichaud good morning, #perl6 15:17
FROGGS hi pmichaud
lizmat pmichaud o/
ruoso ^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H[D[C
colomon \o
ruoso I guess I'll start writing the grammar to parse EBNF, then I'll figure out how to make it into a meta-grammar 15:20
FROGGS ruoso: like you can create classes using the MOP you can perhaps create a Grammar that way... 15:21
timotimo should be possible
15:22 atta joined
atta hi. what's the most up-to-date emacs mode for perl 6? 15:23
15:24 TgMts left, Ven left
FROGGS is not an emacs user 15:24
15:25 raiph joined
timotimo i admire emacs from afar 15:25
15:26 _mg_ left
atta i checked the 'whatever' section in perl6.org, but wanted to know if someone used some other version or something 15:34
moritz atta: there are few emacs users around here, so you might need to hang out longer to get an answer 15:35
lizmat .tell jnthn on MoarVM, delete_f does not return any value, this makes nqp::unlink flaky afaics. Is there a reason for that ?
yoleaux lizmat: I'll pass your message to jnthn.
15:36 adu joined
colomon ruoso: I’ve just pushed a version of wsn2p6 that works again, at least somewhat. 15:36
atta moritz: thanks. i will be around 15:37
15:38 Mouq joined
colomon Is p6 supposed to complain if you have a non-optional named argument to MAIN and that argument is not actually given on the command-line? 15:39
moritz colomon: yes
colomon it’s not
moritz m: sub MAIN(:$named!) { say 42 }
camelia rakudo-moar f4379c: OUTPUT«Usage:␤ /tmp/aY1MntNsBk --named=<Any> ␤»
moritz it is, here
colomon: you realize that named args are optional by default? 15:40
colomon moritz: apparently I didn't
colomon fixes his code 15:41
Mouq atta: I don't know how good it is, but there's github.com/lue/p6mode 15:46
pmichaud now posted: pmthium.com/2015/02/suspending-rakudo-parrot/ 15:50
btyler reminder ping about GSoC: mdk said they had a week to flesh out the ideas page, that was three days ago: blogs.perl.org/users/shadowcat_mdk/...ideas.html
idea/mentor pairs can be submitted to this google doc: docs.google.com/document/d/120zZBQ...ca6ls/edit 15:51
pmichaud I have other errands to run this morning -- bbl.
lizmat pmichaud++ 15:52
15:53 alini left 15:54 rurban1 joined
dalek kudo/nom: 95ef1af | Mouq++ | docs/ChangeLog:
Add a ChangeLog entry
15:54
15:56 gaussblurinc_ left
PerlJam could some of the Rakudo-on-Parrot changes work for the Google Summer of Code? 15:57
lizmat I guess technically, that could work
but GSoC is for talented newbies, right? 15:58
btyler yes
15:58 kjs_ left
lizmat feels like a steep curve a newbie would need to climb up against 15:58
btyler peanut gallery here, but I think "fix up compatibility with the semi-deprecated backend" is not the most exciting sounding thing 15:59
dalek kudo/newio: 0095545 | FROGGS++ | t/04-nativecall/ (7 files):
include string.h to please latest osx
kudo/newio: bbe942f | FROGGS++ | lib/NativeCall.pm:
consider lib file extension info on jvm backend

Replace :check with :dontcheck flag
15:59 dalek left
lizmat sorry dalek 15:59
timotimo i'm with btyler on this one
15:59 Ven joined
timotimo if rurban has cool stuff to offer, that'd be all right 15:59
hoelzro o/ #perl6
15:59 dalek joined, ChanServ sets mode: +v dalek
PerlJam we (or someone) could add it to the list of potential projects and see if anyone bites 16:00
timotimo but if it's the rakudo people who'd offer a project based on parrot, that could end up not so nice
PerlJam (particularly if rurban is willing to mentor)
FROGGS btyler: I added our ideas 16:01
16:01 adu left
btyler woo, FROGGS++ 16:01
16:01 skids joined
FROGGS moritz / brrt / jnthn / timotimo: I added you as potential mentors for: docs.google.com/document/d/120zZBQ...ca6ls/edit 16:03
timotimo i just saw
FROGGS moritz / brrt / jnthn / timotimo: shout at me (or remove yourself) if that's not what you want :o) 16:04
16:05 abraxxa left
atta Mouq: i was in lue's gihutb, but had not tried. checking it. github's /jrockway/cperl-mode/blob/mxd-perl6-merge/cperl-mode.el seems to have some errors 16:05
FROGGS lizmat: you have to keep in mind that sergot and brrt were also gsoc students (and tadzik too IIRC) 16:06
lizmat: it will works well with the right ppl
tadzik yep, I was
16:07 rurban1 left
FROGGS .oO( When I was your age, Pluto was a planet! ) 16:09
16:10 larion left
moritz it's still is, in a corner of my heart 16:11
FROGGS aye
16:12 diana_olhovik_ left
PerlJam pluto is still a planet depending on your definition of "planet" too :) 16:13
tadzik next thing they'll say that greenland is not a continent
huf common speech drifts away from jargon? shocking, truly. 16:14
16:19 sqirrel_ joined 16:21 yeahnoob left
ruoso what is a nice way to print out the structure of the match? something that returns a simpler output than .gist 16:24
masak ruoso: custom multi? 16:25
ruoso hmm... good point
timotimo yeah, it's a bit annoying that matches show the original string for every single submatch :)
16:28 eternaleye joined
ruoso hmm.. i translated the ebnf grammar from the grammar zoo, but it seems it's not the most optimal parse tree... 16:28
arnsholt You can show subrule matches with brackets, probably
Like Qtree notation: [.S [.NP ... ] [.VP ... ] ]
hoelzro I just noticed that the syntax highlighting on doc.perl6.org is live. nice job, everyone! 16:29
timotimo i'd like an HTML output that'd prettify and interactify match results
if integrated with the debugger hooks, it could even show stuff like "how often did the grammar/regex backtrack over any given character" 16:30
ruoso I guess I should install Grammar::Tracer 16:32
16:35 ecocode left 16:36 zakharyas left 16:38 echowuhao joined 16:42 mr-foobar joined
timotimo i can be a real-life gsoc mentor this time 'round! 16:46
timotimo and order a GSoC tshirt with the right size this time %)
Ven certainly would like to be taught by timo on how to run his game on mac *g* 16:47
timotimo Ven: god damn it, macs
btw, i'm in the process of porting it to SDL2. very, very slowly :) 16:48
it should be much easier to run that on a mac
Ven yes, I've done some sdl2 already on that mac
timotimo even with my binding? 16:49
Ven no, in C
timotimo 'k
did you try running my binding though? it has an examples/ folder
Ven did not - not yet
FROGGS has a patch for NativeCall@perl6-p... 16:50
Ven proceeds to clone timo's repo
timotimo it'd be cool if you told me about functions you deem important that are missing from the binding 16:51
FROGGS Ven: I hope you have your cloneshoes on today :o)
bbiab
16:51 FROGGS left
Ven uh 16:51
16:52 kjs_ joined, sqirrel_ left
Ven 'long' cannot inherit from 'ctype' because it is unknown. at lib/NativeCall.pm6:68 whoops? 16:54
timotimo it's a new trait 16:55
i didn't react to the move of nativecall into rakudo tiself
itself*
16:58 fhelmberger left 17:01 Mouq left 17:02 Mouq joined 17:04 colomon left
lizmat dinner& 17:05
timotimo the description and title of "Perl 6 on CPAN" seem kind of mismatched 17:06
google docs' comment feature <3 17:07
17:07 colomon joined
Ven well, I can't build nativecall 17:08
timotimo yeah
nativecall is "inside" rakudo now
you'll need a Configure.pl 17:09
need to run*
17:11 FROGGS joined
dalek p: 78e9940 | FROGGS++ | src/vm/parrot/ops/nqp_dyncall.ops:
do not free C string we pass to/get from callbacks

This is consistant with what we do in MoarVM.
17:11
kudo/nom: fac6654 | FROGGS++ | tools/build/NQP_REVISION:
get nqp with NativeCall@parrot fixes
17:12
17:12 _mg_ joined 17:16 Akagi201_ left 17:17 Akagi201 joined
ugexe moritz: Mouq: its certainly possible there is infinite recursion in the grammar. the odd thing though is whatever the reason for the infinite loop, it doesn't occur if i 'use Grammar::Debugger' or 'use Grammar::Tracer'. so 'my $parser = XX::Parser.parse($text); say $parser.perl' will never reasch 'say $parser.perl' unless grammar:debugger is used. fwiw the grammar is at github.com/ugexe/Perl6-IETF--RFC_G...mmar/RFC53 17:17
thought maybe a slight change in back tracking or something 17:19
17:25 mr-foobar left, noganex_ left, sven_123 left, dj_goku left, sivoais left, pierrot left, Woodi left, pyrimidi_ left, raydiak left, jakesyl left, jercos left, felher left, breinbaas left, vike left, masak left, pochi left, petercommand left, hahainternet left, ashleydev left, Guest83546 left 17:27 diana_olhovik_ joined 17:28 kjs_ left 17:29 Akagi201_ joined
Ven timotimo: IT WORKS! 17:30
17:31 mr-foobar joined, noganex_ joined, sven_123 joined, dj_goku joined, sivoais joined, pierrot joined, Woodi joined, pyrimidine joined, raydiak joined, jakesyl joined, hahainternet joined, jercos joined, felher joined, breinbaas joined, vike joined, masak joined, pochi joined, petercommand joined, betterwo1ld joined, Timbus joined, jnthn joined, pmichaud joined, go|dfish joined, dg joined, ashleydev joined, Guest83546 joined, psch joined, apejens joined
Ven timotimo: I love how you force GC :P 17:31
17:31 sivoais left 17:32 sivoais joined, Akagi201 left 17:33 espadrine_ left
timotimo ;) 17:33
17:39 _mg_ left 17:40 perlfan joined 17:42 Kristien joined
Kristien hi 17:44
Ven o/
TimToady wonders if negative sums of a positive infinite series is a sign of an event horizon caused by the information density of the big numbers on the right, and proof that our universe *must* be in a black hole...
\o too :)
17:45 Alina-malina left
Kristien I solved the halting problem! 17:46
flussence status.haskell.org/ ouch. 17:47
Kristien sub halts($program) { loop { } }
geekosaur halt and catch fire?
TimToady does that return a negative value? 17:48
Kristien I find it funny how clang optimises this to a no-op: void f() { f(); }
17:48 pecastro left
Kristien A stack overflow results in undefined behaviour so it's just removed from the code automatically. :D 17:49
TimToady over the weekend, I was thinking to myself that if we really followed the principle of "Everything should be as simple as possible, but no simpler," we'd all be required to program Turing machines :)
17:49 Alina-malina joined 17:50 adu joined
TimToady but that's the sort of reasoning people apply to programming languages all the time 17:50
arnsholt Heh 17:54
That's one of the things I point out to our undergrads: Turing machines are tedious as hell to program
Ven TimToady: I love how that quote was made simpler than it actually was :D 17:55
Kristien TimToady: especially nondeterministic ones
they are much more useful
17:55 virtualsue left 17:57 kaleem left, Ven left 17:59 gfldex joined
grondilu sees loop {} in the backlog and can't help reminding everyone his meditation about it: perlmonks.org/?node_id=1057242 18:00
18:00 adu left
|Tux| It is a shame that malformed UTF-8 reads do not show the bad line 18:01
yoleaux 13 Feb 2015 20:03Z <lizmat> |Tux|: what's the problem with IO::Handle.chomp and a loop with .get ? I don't see any problem
18:01 dakkar left
|Tux| Error while reading from file: Malformed UTF-8 18:01
TimToady yes, that is LTA
Kristien You can optimise loop { } to destroy the thread!
18:02 Ven joined
TimToady but how will I use my computer for a space heater if you optimize it away!?! 18:02
nine_ lizmat: is there any way to avoid the negation in the dontcheck flag? Negated booleans make code really harder to read.
Kristien C++ standard says that an implementation can assume a thread either produces side-effects or terminates. 18:03
So for (;;); in C++ has undefined behavior.
I have yet to see an implementation optimise it away, though. 18:04
18:04 sqirrel_ joined
Ven Kristien: I'd love to see it 18:04
Kristien It'd probably break existing code.
TimToady heat is a side effect
FROGGS lol
grondilu wishes he had mentioned the comparison with what happens when you try to cycle when the chain has jumped. You just can't. It's hard to turn it when there is no resistance whatsoever.
18:05 mvuets joined
lizmat nine_: well, the alternative would be :$check = True 18:05
Kristien if heat is a side-effects you can't optimise anything for speed :P
FROGGS TimToady: that's only true when somebody observes it :o)
Kristien because the optimisations would break the observable behavior
TimToady the death of the universe observes the heat :)
lizmat nine_: which I don't like for performance reasons
18:05 Mouq left
lizmat nine_: having said that, maybe I should check into the performance difference 18:05
arnsholt Kristien: Well, the only trivially optimisable variant of that is for(;;) {} 18:06
skids In crypto functions there is sometimes a need to prevent certain optimizations, to prevent side-channel attacks. FWIW.
arnsholt If there's code inside it's harder to determine certainly that it's dead code
Ven Kristien: disagree. it'll just heat in another branch of code
TimToady but I want to know if the cat is radioactive now
Kristien it'll heat at compile-time!
18:06 Hor|zon left
TimToady wonders if the universe is still compiling... 18:07
Kristien I wonder if sleep(1) is considered a side-effect.
jercos TimToady: just in time, perhaps?
Kristien to be truly safe you can do static unsigned volatile x = 0; for (;;++x) { } :)
nine_ lizmat: reminds me a bit of premature optimization. I sure hope that Rakudo's optimizer will become smart enough to make the performance difference go away but what stays is the API. 18:08
Ven Kristien: unsigned so that it can go higher? you can put `x = 0` in the loop :P
lizmat nine_: you're completely right, fixing nine_++
Kristien Ven: because overflow is undefined behavior for signed integers
18:08 jack_rabbit joined
Kristien and not for unsigned ones 18:08
skids e.g. MMD caching probably will need to be turned off in tight crypto loops so that you can't leak information based on execution speed. So there should be a pragma or something for that.
Ven fair enough I guess?
TimToady so obviously 1 + 2 + 3 + 4 + … is being calculated in signed integers 18:09
Kristien which is why in my VM I have to resort to assembly code for signed operations
because x86-64 defines it well
18:19 jack_rabbit left 18:20 Mouq joined 18:36 Mouq left 18:37 _mg_ joined 18:42 dj_goku left 18:43 kurahaupo1 joined
PerlJam good $localtime all 18:48
hoelzro .oO( everytime I see "Great List Refactor", I think about "Great Vowel Shift" )
PerlJam hoelzro: would it help if we repurposed the G for "Grand" rather than "Great" ? :) 18:49
18:49 Ven left
masak PerlJam: Groit Lyst Refoctor 18:50
TimToady Glorious!
lizmat ,oO( I Am Groot )
tadzik :D
Kristien Great Prix
DrForr_ Best role Vin Diesel's ever had. 18:51
lizmat I Am Groot
Kristien I Am Kristien 18:52
I Am A Perl Programmer
timotimo i am programmer
hear me roar
Kristien I am pro-grammar.
I am bad at puns. 18:53
TimToady Ich bin ein Mountainviewer.
lizmat
.oO( IRC lack inflection and emphasis to continue saying "I Am Groot" and make sense :-)
masak lizmat: I AM GROOT
lizmat
.oO( so glad I'm not from Frankfurt )
18:54
Kristien I am making a GC.
PerlJam lizmat: I dunno ... I *am* Groot. I am Groot? etc.
jdv79 what's in frankfurt?
PerlJam Kristien: your puns are fine until you self-reference them, then they collapse :)
DrForr_ Jelly donuts. 18:55
jdv79 i did not enjoy that city for the yapc. might have been partly because there was no A/C and it was too hot.
instead of sleeping i felt like i was swimming
lizmat
.oO( ich bin ein Frankfurter )
18:56
masak .oO( waterbed theory )
18:56 rurban left
timotimo the waterbest theory 18:57
TimToady my waterbed is full of frankfurters...
timotimo franken furter?
DrForr_ Better than eels.
lizmat my hovercraft is full of eels
jercos my hovercraft is full of eels
oh
TimToady same sort of shape though
lizmat hehe
masak timotimo: please, don't take that pun any furter...
TimToady he said frankly 18:58
lizmat let's do the time warp!
jercos again?
DrForr_ Hey, I currently lve in Transylvania.
*live
masak DrForr_: does the 'Dr' stand for 'Drakula'?
masak .oO( the odds aren't good, but the stakes are high... ) 18:59
DrForr_ Well, I did play Brad at one time :)
hoelzro PerlJam: oh, I don't mind =) 19:01
19:03 Hor|zon joined
TimToady lizmat++ <- the .trans solution is now twice as fast as the slice solution 19:05
that's about 36 times faster
timotimo <3
19:05 larion joined
raydiak isn't really here and might not be around before most of europe is in bed, but it'd be cool if anyone has time to comment or merge github.com/rakudo/rakudo/pull/364 ; will backlog if you'd rather comment here 19:06
19:07 Hor|zon left 19:08 dj_goku joined, dj_goku left, dj_goku joined
lizmat TimToady: wow, 36x :-) 19:09
TimToady 6 minutes to 10 seconds
drzsasz is Net::IRC::Bot supposed to be broken and give me two different cryptic errors when running the examples in 2014.12/2015.1 moarvm ? 19:11
or did i do something wrong
TimToady it or the examples could well be bitrotted since then
timotimo raydiak: there are some more tips on how to improve the code in the backlog, i remember seeing some 19:12
TimToady but in general we're not in favor of cryptic errors, unless the only alternative is no errors
er, no error messages when there are errors, I should say 19:13
no errors would be a good thing :)
funny how the word "errors" has become overloaded that way...
jdv79 where is this 36x speedup? sounds interesting. 19:14
TimToady rosettacode.org/wiki/Textonyms#Perl_6
from changes to .trans
timotimo aye, optimizations for the "only one pair object passed to .trans" case 19:15
drzsasz 0bin.net/paste/1oo7-1qMEI852OdS#RxJ...fiGhPINzoH 19:16
this looks pretty cryptic to me
19:18 sqirrel_ left
drzsasz 0bin.net/paste/saFJGWpYNpiMbAuq#ZEU...gL6f486Q6H those are the corresponding lines where AnnoyUsers is defined exactly like in the example, and the other thing is line 108 from the module 19:19
lizmat .tell jnthn wrt PIO role name, maybe it should be RIO (as in Rakudo Io Object) 19:22
yoleaux lizmat: I'll pass your message to jnthn.
TimToady is it really specific to rakudo? 19:23
lizmat I think so 19:24
originally, it was specific to Parrot
hence the P in PIO
when the other Rakudo backends came, it just kept its name internally, afaik 19:25
19:25 DarkLoord left
masak kinda suggests that we shouldn't make name it after any implementation, if you ask me. 19:26
lizmat but it feels like an implementation detail, really
or does niecza also have a PIO object ?? 19:27
raydiak timotimo: thanks...I do remember seeing a suggestion from moritz++, but it wouldn't have worked in my case, but both the suggestion and my response are not to be found in the backlog I guess 19:30
it boiled down to "I can't use .list b/c it flattens" 19:31
timotimo oh
you can grep for Whatever instead of { $_ ~~ Whatever } 19:32
for example
TimToady regarding NativeCall in both panda and core, if version numbers of official modules work like they're supposed to (exact match), this shouldn't really be a problem
19:32 mohij joined
TimToady panda should not be offering the version that the core wants 19:32
19:33 pmqs joined
FROGGS that would imply panda did a 'use Rakudo:ver<2015.01-42-kjhksjh>' 19:34
TimToady if our version numbering doesn't allow that, then our version numbering is broken
FROGGS s/panda/NativeCall/
TimToady all official modules are required to have a version
that's been in S11 for a long, long time 19:35
raydiak timotimo: but I need the indices not the values, so it'd look more like .pairs.grep: {.key if .value ~~ Whatever} which is no better imo
FROGGS it is not about the version of NativeCall, is it?
TimToady yes, it is 19:36
FROGGS hmmm, then I dont get it
1) when I ask panda to install NativeCall with whatever version, it should only offer the candidates that work for my compiler
2) I have no idea what 2) is 19:37
raydiak timotimo: except .pairs there wouldn't do what I want either, of course, then I'd get the named pairs I assume...and can't call .list or slice first, b/c it'll flatten
19:37 kurahaupo1 left
TimToady if the core has a depencency on a particular version of NativeCall, then it can...er...have a dependency on it 19:38
dalek line-Python: 327148b | (Stefan Seifert)++ | Build.pm:
Fix installation via panda
FROGGS TimToady: it is the othe
r way around
TimToady it is both ways
FROGGS well, yes
raydiak timotimo: gist.github.com/raydiak/1ecf3131e1fa4157e625 is what I was using to experiment with, if you feel inclined to do the same :) 19:39
FROGGS but yeah, if NativeCall in core had a version, one could use that and it would not load that from the ecosystem, if that had another version 19:40
TimToady and perhaps such a mutual dependency is the clue that a module might belong in core
raydiak okay really afk
TimToady o/
FROGGS TimToady: it is only both ways if we start to unpack using CStructs IMO
(if that makes use of nativecast, which is exposed by NativeCall currently) 19:41
TimToady thinks natives will only get more incestuous over time with the implementation
esp with shaped arrays and such
19:42 Mouq joined
FROGGS I really love where this is going btw 19:43
having grammars and ffi in the very same language feels like a very good thing :o)
masak I often hesitate about whether things should be in core. not so for NativeCall. 19:44
timotimo agreed, masak 19:47
19:47 rurban joined, rindolf left 19:52 telex left 19:54 telex joined
nine_ What's the retionale for this? substr('abc': 1); # same as 'abc'.substr(1) 20:00
TimToady same as the : in a signature, really
but linguistically, sometimes you want the verb out front 20:01
nine_ Do you have a good example?
TimToady push @abc: 1,2,3; # bad example
print $handle: @stuff 20:02
pyrimidine lizmat++ # .trans optimizations
20:02 darutoko left
pyrimidine lizmat: us bioinformatics types thank you :) 20:02
TimToady move $me: Library; 20:03
lizmat pyrimidine: you're welcome, but note it's only for the Str:D => Str:D case
pyrimidine lizmat: that's ok. it's what we would probably use the most anyway 20:04
TimToady nine_: basically a disambiguated version of P5's oft reviled indirect object syntax, but that's because it's ambiguous in P5
lizmat pyrimidine: I've ideas of optimizing the Str:D => '' case as well
TimToady first typed "ambuguous" :)
pyrimidine lizmat: also, I think I added some of those .trans tests way way back (I think based off some things popping around in here at that point) 20:05
nine_ TimToady: I guess it's a way to avoid duplicating code when one wants to provide an OO interface and a sort of functional interface at the same time
FROGGS does somebody of the Java professionals know about output buffering problems like these? 20:06
$ TEST_JOBS=4 make j-test
ok 1 - Called argless function
===( 1;0 1/3 0/? 0/? 0/10 )==================================ok 3 - called long_and_complicated_name
we are already calling fflush(stdout) in the .c files the test runs/calls into
pyrimidine lizmat: I remember masak mentioning that some of the more complex behavior could be moved to another method, but I don't recall off hand when that popped up 20:07
lizmat well, the implementation was clearly pre-MMD in core
now that we have perfiormant MMD in core, we can do things like this more easily
pyrimidine definitely :) 20:11
dalek kudo/nom: 0a7fba6 | TimToady++ | LICENSE:
Update rakudo copyright from 2006 to 2015 (!)

Shows about how much we actually care about this... :)
20:14
lizmat :-)
20:18 bjz left
hoelzro is anyone familiar with this tool? github.com/flatland/drip 20:20
supposedly it decreases JVM startup time?
masak maybe have a Rakudo-specific test somewhere that makes sure LICENSE year equals current year?
FROGGS or we put it in the release guide 20:21
masak I'm still hoping large parts of the release guide could be automated. 20:23
20:24 espadrine_ joined
TimToady speaking of versions and immutable official modules and status.haskell.org/, how are we doing on mandatory cryptohashes for official modules? 20:26
we do not want the first big story of 2016 to be how someone got into our libraries and installed malware 20:27
lizmat TimToady: you mean, part of the core / compiler distribution ? 20:28
avuserow nine_++ # Inline::Python build fix
20:28 molaf_ left
TimToady I mean, any official module (meaning the version has been declared immutable) should by virtue of its immutability have a fixed checksum that can be retrieved from elsewhere and compared 20:30
so it's trivial to tell whether a module has been compromised regardless of where it comes from on the net
that's one of the major subgoals of declaring all official modules to be immutable under a given version number 20:31
but it's also "I know exactly what language I'm running" more generally
dalek kudo/newio: 0bea407 | lizmat++ | src/core/ (8 files):
A lot of work related to directories

In the end, it turned out not to be such a good idea to make IO::Dir have its abspath with a trailing /. So, removed that: IO::Dir now only stringifies with a trailing /. This had quite some repercussions, hope I caught them all.
Also implement IO.resolve (on Moar), now that we nqp::readlink.
20:31 Kristien left
TimToady it's just if your module has been compromised, you aren't running the language you think you are 20:31
FROGGS yes, we need to somehow sign distributions, but we are no where near that point 20:32
lizmat FROGGS: QA hackathon stuff ? 20:33
TimToady GSoC project?
lizmat possibly, yes :-) 20:34
FROGGS yeah
TimToady more generally, we probably need an overall security audit as part of the beta test period
FROGGS would only be QA stuff if somebody with knowledge about that topic would be present :o)
TimToady
.oO(what is the quality of our security?)
20:35
the current quality is "largely ignored" I suspect
Juerd TimToady: It's a programming language. You can always blame it on the programmer and say it's not a security bug. 20:36
(Perl 5 ships with known security bugs.)
itz what's the current favoured crypto hash? SHA256? 20:38
Juerd itz: sha lacks identity 20:39
skids That should be relatively well distributed across platforms and pretty secure, yes.
Juerd itz: PGP appears to be the de facto standard format.
skids Minus signing, yes.
FROGGS this might be inspiring: blog.versioneye.com/2014/01/15/whic...e-manager/ 20:40
20:41 spider-mario joined
dalek rl6-roast-data: 764bff1 | coke++ | / (5 files):
today (automated commit)
20:41
itz hahaha maven is "singed" 20:42
20:42 echowuhao left
masak hitting all of those seven pros sounds like a good start :) 20:42
FROGGS aye
20:42 echowuhao joined 20:44 kaare_ joined
skids Bonus points for a revocation mechanism :-) 20:45
FROGGS well, if you'd need to authenticate against a CA... 20:47
skids Yeah, but actually ensuring clients check the CA for a CRL is another matter.
FROGGS true
20:48 vendethiel- joined
FROGGS but then again, this is a project that needs a bus number > 1 20:48
itz hmm if you squash all git commits you can sign one commit with GPG
20:48 vendethiel left
skids Anyway, unless you had a key per version, revoking a particular version as "this is buggy don't use" canot rely on mrer PKI mechanisms. 20:49
*mere 20:50
itz mikegerwitz.com/papers/git-horror-story 20:52
20:52 Hor|zon joined, avuserow left 20:53 avuserow joined 20:54 Kristien joined
dalek kudo/nom: c17cb55 | coke++ | src/core/Numeric.pm:
remove parrot ifdef fossil
20:55
kudo/nom: e451515 | coke++ | docs/guide_to_setting.pod:
Remove old advice about not writing in PIR.

Also removed dead URL about same. Keep remaining advice for now.
20:56 Hor|zon left 21:00 raiph left 21:02 _mg_ left 21:03 Hor|zon joined 21:04 Mouq left
dalek c: 3163338 | moritz++ | lib/Language/quoting.pod:
Heredocs
21:06
kudo/nom: fd0271e | lizmat++ | src/core/Str.pm:
Make .trans("foo" => "") 10x .. 200x faster

Oddly enough, the greatest profit is seen in the case where *all* characters are removed (200x) as opposed to when no characters are removed (10x).
21:07 diana_olhovik_ left
vendethiel- lizmat++ # :o) 21:07
FROGGS lizmat** # :o)
21:08 Hor|zon left
Kristien lizmat~~ # :o) 21:08
FROGGS smart, indeed
21:08 bjz joined
Kristien it's postfix ~~ 21:09
vendethiel- *g*
Kristien it converts _from_ string
moritz it converts from lizmat++ to karma
lizmat hehe 21:10
21:10 bjz left
moritz FROGGS: how do I run nativecall tests in rakudo? 21:11
lizmat make test
FROGGS mohij: make test
sorry mohij
mohij makes a test 21:12
FROGGS mohij++ # *g*
moritz tests a make
21:12 grep0r left
lizmat FROGGS: getting a segfault in t/04-nativecall/05-arrays.t 21:12
ok 16 - byte in element 2
ok - byte in position 0, C-side
ok - byte in position 1, C-side
ok - byte in position 2, C-side
Segmentation fault: 11
moritz which backend? 21:13
lizmat moritz: parrot
FROGGS lizmat: did you pull nqp?
lizmat I did a reconfigure
FROGGS I even bump the revision..
bumped*
lizmat lemme nuke the install dir and start from scratch
FROGGS I still have no fix for nativecall@jvm@osx though 21:14
lizmat FROGGS :-(
FROGGS but it should be trivial to fix I guess
I just cant try things
lizmat seems to build everything ok, just can't find it i the end
*in
FROGGS right 21:15
the dlLoad or what it is called thinks the path needs to be mangled
maybe we need to pass an absolute path, maybe we need to leave off the './'
or we maybe should not append the .dylib on osx at all 21:16
lizmat is checking if panda works with NativeCall on the JVM
FROGGS: absolute path seems very JVMy 21:17
FROGGS funny that this is an osx+jvm problem only though 21:18
21:18 rurban left
lizmat FSVO funny :-( 21:18
FROGGS aye
lizmat if we can't get this fixed by Thursday, I guess we will need to wait until next month for NativeCall inclusion in core
FROGGS but that's how osx is... (and jvm) 21:19
lizmat: we will fix it, no doubt
lizmat hope so :-)
[Coke] one nativecall failure on parrot (os x, at least) known, yes? 21:22
lizmat [Coke]: segfault in t/04-nativecall/05-arrays.t ? then yes 21:23
FROGGS but it is fixed! ó.ò 21:24
[Coke] is on e451515
FROGGS 2015.01-55-g78e9940
that's what you need for nqp 21:25
lizmat what I got, still segfault :-( 21:26
FROGGS if that is what your nqp-p shows, then I need a gdb output
(or valgrind, or access to an osx box)
[Coke] This is nqp version 2015.01-55-g78e9940 built on parrot 7.0.1 revision RELEASE_7_0_1 21:27
one sec, I'll get you some gdb.
well, the local equivalent.
lizmat [Coke]++
[Coke] arglebargle. have to rebuild to get debug symbols. 21:29
FROGGS an function name would already help 21:30
[Coke] in the meantime, enjoy this: gist.github.com/coke/1dc9efe0d02bb460bb67
FROGGS hmmm, that's something
21:31 mvuets left
Kristien How do you dispose of your boomerangs? I throw them away but they keep coming back. 21:31
lizmat Kristien: you dispose of boomerangs by walking away
FROGGS okay, the problem seems to with passing a buf8 to C land... CArray[int8] works 21:33
1..20 21:35
==30445== Invalid read of size 1
==30445== at 0x23483BEE: TakeAByteArray (in /home/froggs/dev/rakudo/05-arrays.so)
21:36 MilkmanDan left
dalek kudo/nom: 96eb9dc | lizmat++ | src/core/Str.pm:
We're only dealing with strings

Seems to marginally make things faster
21:37
timotimo lizmat: it could theoretically get faster if you move the sub outside the method 21:40
lizmat wonders how timotimo is getting along with the P6W
timotimo (so that it doesn't have to take a closure)
21:40 xfix left
timotimo lizmat: currently procrastinating by eating some soup :) 21:40
lizmat tries 21:41
21:42 MilkmanDan joined
lizmat timotimo: not seeing any difference other than noise 21:45
I guess because it doesn't take any closure already, as it doesn't reference anything outside ? 21:46
21:47 uvb joined, MilkmanDan left
timotimo OK 21:51
not 100% sure if our code is smart enough for that
but good work nonetheless :)
[Coke] ugh. I just did a full parrot rebuild to get debug output, and failed. 22:00
is the parrot build option for that just -g ? I had tried --debugging=-g3 as suggested in parrot's Config output. 22:01
22:01 MilkmanDan joined
FROGGS [Coke]: I think I already see what's wrong... 22:02
22:03 pdcawley left
[Coke] ah, --debugging is probably it... ok. one more build then I'll get back to the other thing I was hacking on. :) 22:03
22:04 Hor|zon joined, skids left 22:05 FROGGS_ joined, Sqirrel_ joined
timotimo lizmat: in last week's post you said you're going to defer telling the reader about more stuff coming from the 6pe branch to this week 22:05
did you have something specific in mind?
22:08 FROGGS left, Hor|zon left 22:09 Sqirrel left 22:10 alini joined, MilkmanDan left
lizmat timotimo: I was hoping jnthn would have had the time to tell me about them :-) 22:12
timotimo heh heh
lizmat all of the MOP stuff, basically, I think
Kristien I watched a MoarVM optimisation presentation by jnthn recently.
masak Kristien: oh, is that why you're active on the channel? 22:15
Kristien no
it was like, yesterday
masak yesterday? 22:16
Kristien yes I watched it yesterday
[Coke] FROGGS_: ok, I give up. ISTR it used to be easier to get debugging symbols, no clue what i'm doing wrong.
hope the asm helped. :)
FROGGS_ yes, it at least assures me I am looking at the right area 22:17
timotimo does anybody know if we've got more 6pe-based work in rakudo now as compared to last monday? 22:20
masak timotimo: is that a question that can be answered with `git log`? 22:21
timotimo hmm, i'll have a look
actually, i've been looking at the github logs, but that doesn't include the diffs
masak command-line client ftw 22:22
dalek kudo/newio: 8a4375d | lizmat++ | src/core/io_operators.pm:
Make sure we coerce open($path) to Str()
22:24
22:26 raiph joined
timotimo lizmat: any idea when newio will be in a mergable state? 22:37
lizmat hopefully shortly after 2015.02
there are still *many* loose ends to be tied up 22:38
dalek p: 180abaa | FROGGS++ | src/vm/parrot/ops/nqp_dyncall.ops:
avoid reading garbage when unmarshalling vmarrays
kudo/nom: 7dece7d | FROGGS++ | tools/build/NQP_REVISION:
get nqp with NativeCall@parrot fixes
FROGGS_ lizmat / [Coke]: that should do 22:39
lizmat is going to test
FROGGS_ dang, I left debug output it! >.< 22:40
dalek p: bad5f30 | FROGGS++ | src/vm/parrot/ops/nqp_dyncall.ops:
remove debug output
22:41
kudo/nom: 768b226 | FROGGS++ | tools/build/NQP_REVISION:
get nqp with less debug output /o/
22:42
lizmat pulls and builds again :-)
22:43 alini left
FROGGS_ well, it would have worked / not worked before too :o) 22:44
timotimo lizmat: i'm glad you're working on this, btw :)
dalek kudo/newio: e2464ab | lizmat++ | src/core/io_operators.pm:
Some Str coercions
22:45
lizmat timotimo: this being newio ?
timotimo yes
lizmat it is kinda boring :-(
FROGGS_ lizmat: somebody has to suffer for the sake of the users :o) 22:46
lizmat I'm well aware of that meme :-)
FROGGS_ I usually do a lot of boring stuff... all would be much more fun if there was just the MoarVM backend 22:48
22:48 MilkmanDan joined, kjs_ joined
timotimo i must admit i'm not very good at working through boring stuff 22:50
masak enjoyed videlalvaro.github.io/2015/02/progr...myths.html
m: class C { has $!foo; method bar { say $!fou } } 22:53
camelia rakudo-moar 96eb9d: OUTPUT«===SORRY!=== Error while compiling /tmp/DPYMr3m_jU␤Attribute $!fou not declared in class C␤at /tmp/DPYMr3m_jU:1␤------> { has $!foo; method bar { say $!fou } }⏏<EOL>␤»
masak would really like a "did you mean" Levenshtein suggestion on that one 22:54
Kristien masak: even better: it replaces it by the code I want there
masak er, no. but thanks for playing. 22:55
generalizing that thought: is there a way we could collect and classify all the "<identifier> not found" error messages emitted by Rakudo, so we can see which ones have a Levenshtein on them already, and which ones don't?
FROGGS_ masak: several not well connected spots do emit these messages 22:56
Kristien duplicate code :'(
masak FROGGS_: right, but they all have the same purpose.
FROGGS_ aye 22:57
masak I'm not saying "abstract and unify everything" -- I've grown past that stage :)
but it does seem like a missed opportunity to be consistent.
we should at least sift through the codebase looking for such places.
FROGGS_ ++masak
masak heh.
FROGGS_ though, you cannot throw typed exception from every spot, because you cannot always access the symbols you need... 22:58
masak bah! I know an artificial limit when I see one.
FROGGS_ :P 22:59
timotimo any other recent performance breakthroughs in the last week? 23:00
dalek kudo/newio: 18c0a05 | lizmat++ | src/core/io_operators.pm:
Some more Str() coercion fixes
lizmat FROGGS_: rakudo make test on parrot now clean on OS X 23:01
FROGGS_ \o/
lizmat FROGGS_++
FROGGS_ m: say $*KERNEL.name
camelia rakudo-moar 96eb9d: OUTPUT«linux␤»
FROGGS_ m: say $*DISTRO.name 23:02
camelia rakudo-moar 96eb9d: OUTPUT«opensuse␤»
FROGGS_ lizmat: $*KERNEL.name will be darwin for you? also on the jvm?
lizmat $ 6 'say $*KERNEL.name; say $*DISTRO.name'
darwin
macosx
timotimo FROGGS_: your "longer" branch also allows having other kinds of sizes for ints and stuff, right?
geekosaur arguably the kernel is not darwin, it is xnu 23:03
FROGGS_ timotimo: aye
geekosaur darwin is a (now defunt) distribution
23:05 Hor|zon joined
lizmat geekosaur: it basically takes whatever uname -s says (and lc's it for consistency) 23:05
geekosaur wonders what other systems that'll mess up on, then 23:06
(interpretation of uname's fields is ... idiosyncratic)
lizmat src/core/Kernel.pm patches welcome :-)
dalek kudo/nom: d99fe0b | FROGGS++ | lib/NativeCall.pm:
pass an absolute libname for on jvm/osx

The library loader will not look in CWD for libs, but will instead pre-/append stuff and tries to look it up in system dirs.
FROGGS_ lizmat: please try when you get a chance... I'm off to bed 23:07
Kristien s/core/corn/
delicious corn kernels
lizmat FROGGS_: goodnight,
trying it now
23:09 Hor|zon left 23:12 kjs_ left 23:17 zacts joined
lizmat .tell FROGGS_ alas, still the same errors :-( 23:19
yoleaux lizmat: I'll pass your message to FROGGS_.
23:20 afb joined 23:22 gfldex left
ruoso when writing a grammar, what would be the easiest way to write tests for specific rules instead of TOP? 23:23
23:23 TgMts joined
masak ruoso: .parse($str, :rule<otherrule>) ? 23:23
ruoso aha.. that's it... for some reason I missed that in the docs 23:24
23:25 afb left 23:26 ash__ joined 23:27 espadrine_ left
dalek kudo/newio: 95ef1af | Mouq++ | docs/ChangeLog:
Add a ChangeLog entry
23:27
rakudo/newio: fac6654 | FROGGS++ | tools/build/NQP_REVISION:
rakudo/newio: get nqp with NativeCall@parrot fixes
23:27 dalek left
lizmat sorry dalek 23:28
23:28 dalek joined, ChanServ sets mode: +v dalek
lizmat and on that note, I wish #perl6 a good * 23:28
23:29 BenGoldberg joined
dalek ecs/newio: df847a9 | lizmat++ | S32-setting-library/IO.pod:
Some doc tweaks, mostly related to coercion
23:30
lizmat sleep&
23:34 ash__ left 23:49 wicope left 23:50 kurahaupo1 joined
Kristien vendethiel-: github.com/rightfold/mill/blob/mas...pp#L36-L56 :P 23:50
23:51 kurahaupo1 left 23:55 Kristien left 23:59 Alina-malina left