»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
00:01 colomon joined 00:09 dayangkun joined, xenoterracide left 00:14 Psyche^ left 00:17 Psyche^ joined
timotimo i'd like to have a method/sub to get the permission "number" of a file on a unix system 00:18
does that sound sensible?
or a way to flip individual bits instead of chmodding the entire thing 00:19
00:20 kst`` is now known as kst 00:21 Mouq joined 00:22 Teratogen joined
dalek ecs: ac66ac3 | (Timo Paulssen)++ | S32-setting-library/IO.pod:
add a missing = before a item.
00:24
00:25 xenoterracide joined
TimToady well, shell("chmod +x") and such is one way 00:26
but we really oughta support stat and lstat somehow
timotimo r: multi MAIN("on") { say "on" }; multi MAIN("off") { say "off" }; multi MAIN() { callsame("on") }; # huh? 00:32
camelia rakudo bb2d2e: OUTPUT«===SORRY!===␤No such method 'is_dispatcher' for invocant of type 'Block'␤»
00:32 xinming left
timotimo r: multi MAIN("on") { say "on" }; multi MAIN("off") { say "off" }; multi MAIN() { callwith("on") }; # huh? 00:32
camelia rakudo bb2d2e: ( no output )
00:33 wk joined, wk left
sorear isn't sure nextwith/callwith makes any sense at all for multi dispatchers 00:33
you're telling it to find the next applicable multi with the *current* arguments, and then switch out the arguments before actually calling it 00:34
so in this case since there is no next candidate for MAIN(), callwith is a noop
00:34 xinming joined
sorear you want MAIN("on") in this case 00:34
diakopter sorear: hi :)
timotimo that's what i did now, yes 00:35
00:38 wk joined, wk is now known as Guest64049
timotimo now that i have made a script to turn off and on fugitive support in my vim i can use splice to do that nasty 3-way merge for "is nodal"! 00:38
00:40 panchiniak_ joined, panchiniak_ left
timotimo except now Powerline wants to call fugitive functions all the time ... and fails loudly 00:40
00:48 hypolin joined 01:04 FROGGS_ joined 01:08 FROGGS left 01:10 cooper left 01:14 BabsSeed left
sorear what's a fugitive function 01:17
01:19 BabsSeed joined 01:20 arlinius joined
timotimo a function from the fugitive plugin 01:20
also, in this case a function that's nowhere to be found 01:21
geekosaur .oO { fugit, est fugit! } 01:32
01:34 btyler left
cognominal one can write [*] 1..10 Now, how can I use a similar prefix syntax, with a function given in a variable instead of * 01:44
is that possible?
timotimo it may only work for operators
r: my &foo := &infix:<*>; say [&foo] 1, 2, 3, 4; 01:45
camelia rakudo bb2d2e: OUTPUT«===SORRY!=== Error while compiling /tmp/uUmmm0mACL␤Two terms in a row␤at /tmp/uUmmm0mACL:1␤------> my &foo := &infix:<*>; say [&foo] ⏏1, 2, 3, 4;␤ expecting any of:␤ postfix␤ infix stopper␤ infix or meta-…
timotimo r: my &foo := &infix:<*>; say [foo] 1, 2, 3, 4;
camelia rakudo bb2d2e: OUTPUT«===SORRY!=== Error while compiling /tmp/FenCjcWve_␤Two terms in a row␤at /tmp/FenCjcWve_:1␤------> my &foo := &infix:<*>; say [foo] ⏏1, 2, 3, 4;␤ expecting any of:␤ postfix␤ infix stopper␤ infix or meta-i…
dalek ecs: 554918c | (Kris Shannon)++ | S06-routines.pod:
Missed a "is ref" to "is parcel" in a02e2e1d
Mouq rn: my \𝑖 = 4; say 𝑖 + 2; # Awww, I thought this worked in rakudo 01:47
camelia rakudo bb2d2e, niecza v24-92-g3961d5d: OUTPUT«6␤»
Mouq Uh
timotimo heh! :)
Mouq I musta borked it in my perl6… 01:48
01:49 FROGGS_ left
TimToady r: my &foo := &infix:<*>; say [[&foo]] 1, 2, 3, 4; 01:57
camelia rakudo bb2d2e: OUTPUT«===SORRY!=== Error while compiling /tmp/D6xmfNN5bM␤Unable to parse expression in bracketed infix; couldn't find final ']'␤at /tmp/D6xmfNN5bM:1␤------> my &foo := &infix:<*>; say [[&⏏foo]] 1, 2, 3, 4;␤»
TimToady n: my &foo := &infix:<*>; say [[&foo]] 1, 2, 3, 4;
camelia niecza v24-92-g3961d5d: OUTPUT«24␤»
timotimo oh, neato
why does that work?
TimToady [&foo] is the Haskellish ``
you need an extra [] to do the reduce 01:58
n: my &foo := &infix:<*>; say 2 [&foo] 3
camelia niecza v24-92-g3961d5d: OUTPUT«6␤»
TimToady r: my &foo := &infix:<*>; say 2 [&foo] 3
camelia rakudo bb2d2e: OUTPUT«===SORRY!=== Error while compiling /tmp/eDdG3Jfvdb␤Unable to parse expression in bracketed infix; couldn't find final ']'␤at /tmp/eDdG3Jfvdb:1␤------> my &foo := &infix:<*>; say 2 [&⏏foo] 3␤»
timotimo oh, that's new to me
TimToady rakudo doesn't know [&foo] yet 01:59
cognominal ok, thx.
02:01 Mouq left, Mouq_ joined, FROGGS_ joined 02:03 Mouq_ left 02:04 Mouq joined 02:05 xenoterracide left 02:11 bluescreen10 left 02:12 FROGGS_ left
diakopter uptime 02:14
JimmyZ 02:16:07 up 32 days, 4 min, 2 users, load average: 0.17, 0.10, 0.06 02:15
02:15 btyler joined 02:25 xenoterracide joined
Mouq Can one have a class with $.var as an lvalue and a setter method ( class.var('val') )? It seems like I'm missing something obvious that I can't get it work 02:29
TimToady if it's declared 'has $.var is rw;' then you can just say $obj.var = 'val'; 02:32
but you need an object, not a class, unless you've declared it 'our' or 'my' instead of 'has', in which case you can use the uninstantiated type object
(if that's what you were asking about) 02:33
but we don't play getters/setters games in p6
Mouq Yes. But I want to be able to chain, so $obj.var('val').doObjFunct as well as $obj.var = 'val'.
TimToady ($obj.var = 'val).doObjFunct 02:34
02:34 FROGGS joined
TimToady but that's probably a design smell if you need to do that in your program 02:34
Mouq Troo
TimToady you can have setters if you like, as long as they aren't named the same as the attribute 02:35
but the method that is the same as the attribute is specifically for identifying the attribute for subsequent operations, not for getting/setting
well, you use it for getting, and the thing you get may be assignable if it's rw 02:36
but we work hard at keeping identity as a separate concept from operations 02:37
02:37 mtj_ joined
Mouq Alright, thank you TimToady 02:37
diakopter r: class A { has $val; method val($a=$!val) { $!val=$a } }; my A $a.=new; say $a.val(5) # not threadsafe 02:42
camelia rakudo bb2d2e: OUTPUT«5␤»
diakopter oh, you want it to return self? 02:43
Mouq Yes... 02:44
diakopter could probably do that with a macro 02:45
(generate the setter)
02:50 TimK1 left 02:56 japhb left 03:01 xenoterracide left 03:05 xenoterracide joined 03:10 xinming_ joined 03:13 xinming left 03:20 FROGGS left 03:29 FROGGS joined 03:33 preflex left, preflex_ joined, ChanServ sets mode: +v preflex_, preflex_ is now known as preflex 03:35 FROGGS left 03:48 Guest64049 left
flussence bisectifying done, 2d5abcaed broke the utf8/16 stuff... which doesn't narrow it down much at all :( 03:50
03:51 btyler left
Mouq So now you need to bisectify nqp? 03:56
03:56 ggoebel2 joined
dalek ecza: 4c5eec8 | coke++ | t/spectest.data:
sleep/interval NYI

don't try to run this test.
03:57
flussence gonna take a bit more effort than doing it for rakudo was...
03:57 ggoebel left
raiph www.reddit.com/r/regex/comments/1hz...ly/cbz5ihu 03:59
03:59 FROGGS joined
dalek ast: 5604403 | coke++ | / (13 files):
niecza fudge
04:01
raiph ^^ The reddit URL above is someone asking what the difference is between three lines of P6 regex and what the commenter thinks is PCRE equivalent lines. 04:02
[Coke] .to colomon - just fudged everything for niecza except S03-operators/subscript-adverbs - looks like niecza is complaining about missing tests - this usually means we need a DOES x somewhere, but I don't see anything obvious.
yoleaux [Coke]: I'll pass your message to colomon.
04:29 FROGGS left 04:31 Mouq left 04:32 FROGGS joined 04:36 FROGGS left 04:48 djanatyn is now known as drugnatyn 04:54 SamuraiJack_ joined 04:55 EvanTeitelman left 04:58 FROGGS joined 05:10 preflex left 05:12 preflex joined, ChanServ sets mode: +v preflex, dayangkun left 05:19 fridim_ left 05:21 FROGGS left, FROGGS joined 05:22 slavik left 05:29 ksh joined
masak good morning, #perl6 05:42
masak finds he woke up so early today, he has to take a walk before $work to while away the time :) 05:43
sorear o/ masak
JimmyZ \o 05:44
moritz \o *
yoleaux 01:23Z <diakopter> moritz: I'm sorry I'm holding the nfg code hostage.. I'll try really hard to get it pushed usably this week
moritz oh man, why is it so hard to just type "git push <remote> nfg"? 05:45
masak what, and forfeit all your rebasing advantages? :) 05:46
(not really, because you can always rebase and publish a new branch) 05:48
walk &
05:52 kaleem joined 06:07 FROGGS left 06:11 dmol joined 06:16 hummeleBop joined 06:22 slavik joined
cognominal nr: $_= 'aba'; m/ [ a .*? ]+ / ; say $/ 06:22
camelia rakudo bb2d2e, niecza v24-92-g3961d5d: OUTPUT«「a」␤␤» 06:23
cognominal nr: $_= 'aba'; m/ a .*? a .*? / ; say $/ 06:24
camelia rakudo bb2d2e, niecza v24-92-g3961d5d: OUTPUT«「aba」␤␤»
TimToady nr: $_= 'aba'; m/ [ a .*? ] ** 2 / ; say $/ 06:33
camelia rakudo bb2d2e, niecza v24-92-g3961d5d: OUTPUT«「aba」␤␤»
cognominal nice. Need to learn more about backtracking. 06:36
masak I was disappointed to find that the Windows 7 computer I'm teaching from does not want to show ∈ in Notepad or Wordpad. 06:40
clearly I'm disappearing up into the Unicode singularity, slightly ahead of the rest of the world. (though probably slightly behind the average #perl6 denizen) 06:41
cognominal An american conspiration against the euro?
masak no, that's set membership.
the Euro goes the other way :) 06:42
€ looks fine here.
clearly this Windows was installed by people who prioritize money before math :/
06:45 iSlug joined 06:46 FROGGS joined
cognominal golfing a error with an non close match, I found a 4 characters program that prints garbage. 06:47
echo "m/\n=" > b; perl6 b
well that's 5 chars because echo adds a newline. But I have the same problem without the trailing newline 06:48
is this mac only?
...with parakudo 06:49
I meant "golfing a bug triggered by an incorrect program that had a non closed match expression…" 06:51
Tired :( 06:52
moritz r: m/\n= 06:54
camelia rakudo bb2d2e: OUTPUT«␀␀␀[␀␀␀3␀␀␀1␀␀␀m␀␀␀=␀␀␀=␀␀␀=␀␀␀␀␀␀[␀␀␀0␀␀␀m␀␀␀S␀␀␀O␀␀␀R␀␀␀R␀␀␀Y␀␀␀!␀␀␀␀␀␀[␀␀␀3␀␀␀1␀␀␀m␀␀␀=␀␀␀=␀␀␀=␀␀␀␀␀␀[␀␀␀0␀␀␀m␀␀␀␤␀␀␀U␀␀␀n␀␀␀r␀␀␀e␀␀␀c␀␀␀o␀␀␀g␀␀␀n␀␀␀i␀␀␀z􏿽xE2
moritz cognominal: that's a known bug where UTF-32 leaks through somehow
07:01 denisboyun joined
dalek p: 70254bf | (David Warring)++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
classify char as newline: U+0085 NEXT LINE (NEL)

Fixes roast failures: S05-metachars/newline.rakudo.jvm 6 - NEL S05-metachars/newline.rakudo.jvm 13 - not NEL
07:05
p: ee68135 | (Tobias Leich)++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
Merge pull request #120 from dwarring/master

classify char as newline: U+0085 NEXT LINE (NEL)
synopsebot Link: rt.perl.org/rt3//Public/Bug/Display.html?id=120
07:09 denisboyun left 07:18 domidumont joined
dalek kudo/nom: bab03d3 | (Elizabeth Mattijsen)++ | src/core/Cool.pm:
Make .tc work on Cool, just like .tclc, .uc and friends
07:19
07:23 domidumont left, domidumont joined
dalek ast: 57518a1 | (Elizabeth Mattijsen)++ | S16-unfiled/rebindstdhandles.t:
Fudges for S16
07:24
ast: 3b585fa | (Elizabeth Mattijsen)++ | S29-conversions/ord_and_chr.t:
Fudges for S29
ast: 9028e8c | (Elizabeth Mattijsen)++ | S32- (17 files):
Fudges for S32
lizmat this concludes my quest for lost tests in the spectest suite
moritz lizmat++ 07:26
lizmat *phew* 07:27
that was boring
:-)
07:30 iSlug left, iSlug joined 07:31 raiph left 07:36 zakharyas joined 07:40 pecastro_ left
FROGGS .u 0085 07:44
yoleaux U+0085 NEXT LINE (NEL) [Cc] (<control>)
07:47 itz joined 07:49 itz_ left 07:50 fhelmberger joined 08:06 fhelmberger_ joined 08:08 fhelmberger left
cognominal Apparently :my foo; is not supported in Perl 6 grammar :( 08:09
moritz cognominal: it's not supported in mainline Perl 6 either
r: my foo;
camelia rakudo bb2d2e: OUTPUT«===SORRY!===␤Type 'foo' is not declared␤at /tmp/YVXKKSkE9N:1␤------> my foo⏏;␤Malformed my␤at /tmp/YVXKKSkE9N:1␤------> my ⏏foo;␤ expecting any of:␤ scoped declarator␤␤»
moritz std: my foo;
camelia std 27326bc: OUTPUT«===SORRY!===␤Malformed my at /tmp/AdT0kGq6Rk line 1:␤------> my ⏏foo;␤ expecting any of:␤ name␤ scoped declarator␤ typename␤Parse failed␤FAILED 00:00 41m␤»
cognominal oops, I meant 08:10
:my $foo
std: grammar A { :my $foo }
camelia std 27326bc: OUTPUT«===SORRY!===␤Two terms in a row at /tmp/8d6_g0fcPB line 1:␤------> grammar A { :my ⏏$foo }␤ expecting any of:␤ feed_separator␤ infix or meta-infix␤ infixed function␤ statement modifier loop␤Parse failed␤FAILED 00:00 43m␤»…
cognominal nr: grammar A { :my $foo } 08:11
camelia niecza v24-92-g3961d5d: OUTPUT«===SORRY!===␤␤Two terms in a row at /tmp/XLcN7bxyFD line 1:␤------> grammar A { :my ⏏$foo }␤␤Parse failed␤␤»
..rakudo bb2d2e: OUTPUT«===SORRY!=== Error while compiling /tmp/9PAKmGwYs_␤Two terms in a row␤at /tmp/9PAKmGwYs_:1␤------> grammar A { :my ⏏$foo }␤ expecting any of:␤ pair value␤ postfix␤ infix stopper␤ infix or meta-infi…
cognominal nqp: grammar A { :my $foo }
camelia nqp: OUTPUT«Unable to parse expression in blockoid; couldn't find final '}' at line 2, near ":my $foo }"␤current instr.: 'panic' pc 14693 (src/stage2/gen/NQPHLL.pir:5223) (src/stage2/gen/NQPHLL.nqp:279)␤»
cognominal nqp: grammar A { :my $foo; }
camelia nqp: OUTPUT«Unable to parse expression in blockoid; couldn't find final '}' at line 2, near ":my $foo; "␤current instr.: 'panic' pc 14693 (src/stage2/gen/NQPHLL.pir:5223) (src/stage2/gen/NQPHLL.nqp:279)␤»
08:12 fhelmberger_ left
cognominal nqp: grammar A { token a{ :my $foo; } } 08:12
camelia nqp: ( no output )
08:12 fhelmberger joined
cognominal r: grammar A { token a{ :my $foo; } } 08:12
camelia rakudo bb2d2e: ( no output )
cognominal ok, it must be inside a regex. 08:13
my bad
08:14 fhelmberger left, fhelmberger joined
dalek kudo/nom: 484f089 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
Straighten out .tc/.tclc and tc()/tclc()
08:18
lizmat fitness& 08:22
08:29 xenoterracide left 08:31 dakkar joined
FROGGS r: grammar A { my $bar; token a{ :my $foo; } } 08:32
camelia rakudo bab03d: ( no output )
08:43 Rotwang joined 09:06 Rotwang left 09:07 Bzek joined 09:17 ssutch left 09:20 xinming_ left 09:23 sqirrel joined 09:27 xinming joined
dalek rlito: e863c73 | (Flavio S. Glock)++ | / (3 files):
Perlito5 - grammar - tweak pod
09:33
09:33 salv0 left 09:46 salv0 joined, wtw left 09:59 xinming left 10:02 xinming joined
dalek p: 60e201b | (Tobias Leich)++ | t/hll/0 (3 files):
skip with message
10:04
p: 7ff37d4 | (Tobias Leich)++ | t/nqp/19-file-ops.t:
sync test with moarvm
p: 50c3a09 | (Tobias Leich)++ | t/nqp/19-readline.txt:
added readline test file
p: 3de32c4 | (Tobias Leich)++ | src/QRegex/Cursor.nqp:
use a fresh list/hash for every match
p: 96a8d02 | (Tobias Leich)++ | src/vm/parrot/ops/nqp.ops:
we cant trust boxed_primitive when inlinable is false, jnthn++
10:12
p: 50e1478 | (Tobias Leich)++ | src/vm/parrot/QAST/Compiler.nqp:
Revert "we cant trust boxed_primitive when inlinable is false, jnthn++"

This reverts commit 8e8ae369ad75e7ff818891e393514d3e259f8e8a.
10:14 xinming left 10:16 xinming joined 10:19 sqirrel left 10:22 xinming left 10:23 wtw joined 10:24 xinming joined 10:27 hypolin left
FROGGS .tell jnthn Are the changes to ACCEPTS alright? moarvm doesn't like it: github.com/perl6/nqp/commit/0f1be3...3f1#L3L821 10:28
yoleaux FROGGS: I'll pass your message to jnthn.
10:33 daxim joined, kivutar joined
FROGGS .tell jnthn So this was needed, and might hurt us later: github.com/MoarVM/MoarVM/commit/7dfbabf794 10:35
yoleaux FROGGS: I'll pass your message to jnthn.
10:47 wtw left 10:50 fhelmberger left 10:52 fhelmberger joined 10:55 kivutar left, jaldhar left 11:06 wtw joined 11:09 salv0 left 11:10 salv0 joined
lizmat so, if I look at Grammar.nqp, what does "<O('%methodcall')>" mean? I guess we have some sub called O somewhere, but where does that live? 11:11
lizmat is looking at what would be needed to make {} and [] sub calls rather than method calls
colomon [Coke]++ 11:13
yoleaux 04:02Z <[Coke]> colomon: - just fudged everything for niecza except S03-operators/subscript-adverbs - looks like niecza is complaining about missing tests - this usually means we need a DOES x somewhere, but I don't see anything obvious.
diakopter colomon: yer awake early 11:15
11:15 sqirrel joined
colomon 7AM, that's pretty normal for me. 11:17
sure it's not that you're up late?
11:17 nebuchadnezzar left, nebuchadnezzar joined, sidus joined 11:21 benabik left
FROGGS lizmat: nqp/src/HLL/Grammar.nqp:174 11:27
lizmat FROGGS++ 11:28
FROGGS lizmat: it is about operator precedence, see rakudo/src/Perl6/Grammar.nqp:3039: Perl6::Grammar.O(':prec<y=>, :assoc<unary>, :dba<methodcall>, :fiddly<1>', '%methodcall');
so you can say that this token/rule has a specific precedence 11:29
lizmat this is more about lines 3264 and 3271 in Perl6/Grammar.nqp 11:30
FROGGS right 11:31
the second thing I posted is the operator precedence table
masak I love that thing. 11:37
there's something about it that makes Perl 6 very self-descriptive.
or, should I say, Perl 6 is the only language I know that takes such a broad approach to parsing. 11:38
colomon why does isa_ok(3, Nil); make sense?
masak rn: say 3 ~~ Nil 11:39
moritz it doesn't
camelia rakudo 484f08, niecza v24-92-g3961d5d: OUTPUT«False␤»
moritz but isa_ok(Nil, Nil) would make sense
FROGGS masak: true, I tend to love that thing too :O) 11:48
colomon why? Nil isn't a type, is it? 11:49
moritz it is. 11:50
masak it used not to be.
colomon is starting to develop an intense dislike of Nil 11:54
dalek : ab1f3a6 | (Tobias Leich)++ | / (5 files):
allow &$x(), added refs prototype and wire fail() to Test::flunk
11:55
11:57 spider-mario joined 12:06 domidumont left 12:07 sidus left, domidumont joined
lizmat just found that making Sets/Bags accept objects, makes parsing core settings go from 131+ seconds to 150+ seconds 12:17
moritz :(
lizmat wonder whether we shouldn't have an implementation of Sets/Bags that will upgrade itself as soon as it encounters an object 12:18
12:18 domidumont left
lizmat otherwise, just stay as a hash 12:18
*or* implement Set/KeySet as arrays
sorted arrays 12:19
12:19 domidumont joined 12:25 sqirrel left 12:27 domidumont left 12:28 domidumont joined
tadzik wait, wat 12:31
why does it make parsing so much longer? Is the code longer?
FROGGS yeah, a Bag full of more lines 12:32
jnthn lizmat: You got the patch that causes that? That's...odd. 12:34
flussence nqp bisect done, 360e781cd09714b28b83f9cbb6aba2f466eb45d7 broke the Buf code
lizmat the number of lines is minimal 12:35
FROGGS it just hash to be slower...
jnthn flussence: o.O 12:36
lizmat golfing a bit further
flussence (that's just the rakudo-parrot Buf.decode problem; I'm not sure about the rakudo-jvm signed ints thing) 12:38
lizmat gist.github.com/lizmat/6423390 12:40
making parse go from 131 to 150 12:41
jnthn Wow.]
lizmat also: with that patch, it doesn't build
because of the serialization context bug
doing the same with Bag, gives similar increase in parse time (just below 150 seconds) 12:49
jnthn Well, it is forced to go ahead and compile the TypedHash role body when you want to do the mixin, I guess. 12:50
lizmat wouldn't it more be because internally Sets/Bags are used, and they're slower 12:51
actually, I just realized we don't need typed hashes for Set/KeySet
instead, we could use a "normal" hash, use the .WHICH as the key, and the original value as the value 12:52
and then mess with at_key and such
jnthn lizmat: No, they're not used internally. 12:53
lizmat: It's because of the on-demand comp...
It should not be so expensive. I'm curious where the time goes.
lizmat so compiling TypedHash takes ~20 seconds ? 12:54
wow
jnthn Yes, something feels a bit off there.
lizmat I think there's something rotten
and maybe *that* is causing the serialization problem
because we have garbage in memory ?
jnthn That doesn't quite follow for me...
But I agree something is wrong if it takes so long. 12:55
lizmat ok, need to go on our way to Amsterdam, for the amsterdam.pm meeting
jnthn ok
Enjoy it :)
lizmat we will!
12:55 notjack joined 12:56 lizmat left 13:07 ksh left
Teratogen CONN, SONAR. CRAZY IVAN! 13:07
13:08 ajr joined, ajr is now known as Guest91800, Guest91800 is now known as ajr_ 13:13 p5eval left, p5eval joined
diakopter Teratogen: what? :) 13:13
www.youtube.com/watch?v=RoFSTQ9AIVg 13:14
13:15 fhelmberger_ joined, ksh joined, fhelmberger left 13:19 PacoAir joined 13:20 kbaker joined, PacoAir left 13:21 PacoAir joined, woolfy left
dalek rlito: 21af3dc | (Flavio S. Glock)++ | TODO-perlito5:
Perlito5 - js - TODO update
13:34
13:36 pmurias joined 13:43 btyler joined 13:44 kaare_ joined
mathw hello! 13:47
I was on holiday, and now I'm not :(
FROGGS :/ 13:51
hey hey mathw
:o)
one of my favourite songs of my childhood: www.youtube.com/watch?v=O1Jb9aTSoSc 13:52
13:53 jnap joined
mathw hi froggs 14:00
masak hi mathw! \o
mathw just been having a discussion with a colleague about how to write code that doesn't suck
masak I like that kind of code. 14:01
mathw we do too
masak I just taught a course about how to factor systems so they don't suck.
we call the course "Software Architecture", which is totally a thing, because software is like houses.
mathw the problem we have talking about it is that my interests are in functional and various cutting-edge languages, and he's always looking at how to best utilise the current Big Thing. So he talks about things like SOLID, while I'm looking to see if there's a way I can simulate the Either monad 14:02
hehe
but it's complicated, so many levels to it
what is the best way to give your program access to a database?
what is the right line to draw the abstraction around your database code on? 14:03
masak sounds like there are many intersections between your discussions and our course.
mathw probably
I tend to think that our usual approach to software betrays our inexperience
tadzik heh, software is like houses. Well, is there any "X are like Y" that doesn't work for some reason? :)
mathw we've only been doing it for 60 years or so, we need more practice
tadzik ogres are like onions
diakopter things are like non-things 14:04
PerlJam software is like leeches
mathw I'm enticed by the things people say about Lisp, but then I fall over the lack of static type checking of function parameters I mean really is that so hard?
masak tadzik: any analogy has a part that fits and a part that doesn't fit. it's only a good analogy if the part that fits is dominant.
tadzik true
masak PerlJam: I know exactly what you mean :P
diakopter: except they're a bit more... thing-y. 14:05
decommute &
pmurias mathw: re static type checking of function paramets there are statically typed lisps
mathw I know about typed racket 14:07
that's what they're using as an exemplar for how to do it for Clojure
pmurias but mixing full dynamism with static type checking seems hard 14:08
14:09 kaleem left 14:11 stevan__ joined 14:12 stevan_ left
pmurias mathw: have you seen liskell, which is haskell in s-expresion syntax? 14:14
14:15 stevan__ left, stevan_ joined 14:17 benabik joined
mathw no, but I like Haskell's syntax just fine so I'm not sure I'd want to 14:18
pmurias I'm not sure why you would want to use a staticly typed checked lisp 14:20
14:24 stevan_ left 14:25 stevan_ joined 14:35 Tene left, drugnatyn left 14:42 skids left
FROGGS r: say 0x7fabe981f4e0 + 176 14:49
camelia rakudo 484f08: OUTPUT«140376333743504␤»
FROGGS r: say (0x7fabe981f4e0 + 176).fmt('%#x') 14:50
camelia rakudo 484f08: OUTPUT«0x7fabe981f590␤»
15:01 sqirrel joined 15:02 domidumont left 15:03 domidumont joined 15:05 donaldh joined 15:06 stevan_ left
diakopter nqp: class F { has int @foo; }; my $f := F.new; 15:07
camelia nqp: OUTPUT«Type mismatch when storing value to attribute '@foo' on class 'F'␤current instr.: '' pc 9137 (src/stage2/gen/NQPCORE.setting.pir:4172) (src/stage2/NQPCORE.setting:528)␤»
diakopter jnthn: ^ halp. 15:08
jnthn diakopter: You can't do native arrays in NQP
diakopter: Well, you can
diakopter plah.
jnthn You just have to @!foo := nqp::list_i(); somewhere
But then have to use the nqp::atpos_i and nqp::bindpos_i to work with it :) 15:09
15:10 xinming left 15:12 xinming joined, jnap left 15:14 [particle] joined 15:15 jnap joined
dalek rlito/replito: ddbd939 | (Stanislaw Pusep)++ | html/ (3 files):
Perlito + jqconsole = replito
15:17
Perlito/replito: 56c0d14 | (Stanislaw Pusep)++ | html/replito.html:
Perlito/replito: Ctrl+C to abort replito instead of Ctrl-Z
15:17 dalek left 15:18 dalek joined, ChanServ sets mode: +v dalek
pmurias should there be a difference between how CCLASS_ALPHANUMERIC and CCLASS_WORD? 15:28
JimmyZ word is _ or digit or alphabetic. 15:30
alphanumeric is digit or alphabetic.
jnthn alphanumeric may mean just ASCII, I forget... See the iscclass impl on JVM :)
But yeah, word would include _ too 15:31
JimmyZ I see it in MoarVM
pmurias might need a bigger font as he didn't see the _ check
jnthn iirc, that is the difference :)
pmurias yes
jnthn JimmyZ: ah, and I did that from looking at JVM and/or Parrot
They *should* be fairly consistent. :)
JimmyZ heh 15:32
jnthn But trying to map back from Unicode properties to what the Java String API likes to call said properties was partly guessing and seeing if the tests pass :P
15:32 agre joined
pmurias jnthn: have you seen the incorrect longest token calculation bug (which I nopasted) for implicit whitespace? 15:33
15:34 stevan_ joined
jnthn pmurias: Yeah, but I dunno if we rely on it so didn't feel like looking any closer... :) 15:35
(Busy week here, and tired, etc.)
pmurias np, it's more a curiosity the a serious issue
s/the/then 15:36
I was mostly trying to be mean and find a place where we handle the rxtype ws incorrectly ;)
donaldh jnthn: when somthing like socket accept returns null, can I return null from an nqp op ? 15:42
jnthn: or do I need to return a SixModelObject ?
jnthn donaldh: null is OK, it's what nqp::null() does, and nqp::isnull checks for. 15:43
null is every type :)
donaldh okay dokey, thx
15:47 zakharyas left 15:53 kbaker left 15:57 domidumont left 16:01 SamuraiJack__ joined 16:04 SamuraiJack_ left 16:13 skids joined, fhelmberger_ left 16:15 FROGGS left 16:17 rindolf joined 16:24 domidumont joined 16:27 odoacre_ left 16:28 lowpro30 joined 16:29 FROGGS joined
[Coke] finds a few more niecza failures in roast today. 16:31
16:31 kaleem joined 16:46 ssutch joined 16:47 sqirrel left 16:50 spider-mario left 16:53 Celelibi left, fhelmberger joined 16:54 Celelibi joined 16:55 pmurias left 16:56 sqirrel joined 17:00 fhelmberger left
ingy *morning* o/ 17:00
17:01 isBEKaml joined 17:05 araujo left 17:06 isBEKaml left, dakkar left, ajr_ left 17:07 ajr joined 17:08 ajr is now known as Guest26570, Guest26570 is now known as ajr_ 17:09 vk joined 17:10 vk left, ajr_ left 17:14 vk joined 17:15 lowpro30 left 17:16 slava joined, kaleem left
slava moritz: I hear you have done some psgi related dev before, any pointers on what framework one should start with for a restful app? :) 17:18
moritz slava: I haven't, in Perl 6 17:19
slava: maybe Bailador works for you; dunno
tadzik++ did that one
slava will take a look, thanks. :) 17:20
ha, second result on google
wait ... bailador is a perl6 version of dancer? ....... 1000 times faster </home> 17:21
homer*
^_^
17:21 Faxmachinen joined
Faxmachinen r: my Str $foo; say $foo.?chars; 17:22
camelia rakudo 484f08: OUTPUT«use of uninitialized value of type Str in string context in block at /tmp/jpxaPtsMfB:1␤␤0␤»
timotimo i don't understand what you mean by "1000 times faster" :|
Faxmachinen Shouldn't objects be initialized to some null object which has no methods by default? 17:23
Otherwise, what is .? for?
timotimo variables that are not defined contain the type object
that's why you can do my Dog $foo .= new
donaldh when I want to put "Mac OS X" into a list, is it possible to use < > ? 17:24
Faxmachinen When doing recursion, it would be more practical if .? did nothing
r: class Foo { has Foo $.next; method recurse() { $.next.?recurse } }; Foo.new.recurse; 17:25
camelia rakudo 484f08: OUTPUT«Cannot look up attributes in a type object␤ in method next at src/gen/CORE.setting:2450␤ in method recurse at /tmp/o5akfrG0tc:1␤ in method recurse at /tmp/o5akfrG0tc:1␤ in block at /tmp/o5akfrG0tc:1␤␤»
timotimo donaldh: in theory yes, but i think it's nyi in rakudo 17:26
Faxmachinen Well, at least the newest Rakudo does that. Mine just recurses forever
timotimo can't find the synopsis about the .? method call thing 17:27
slava timotimo: it's a reference to a simpsons episode where homer is getting faster internet (trouble finding a video clip of it)
timotimo oh, ok
ingy I want to do some work on some perl6 modules 17:28
what's the best build to use?
timotimo well, a parrot based rakudo is currently your best bet for getting modules up and running comfortably 17:29
ingy thx timotimo 17:30
timotimo the current versions of rakudo, that is after the latest star release, will warn you if you self.bless(*, ...), so that may get annoying fast
donaldh ingy: you might be as well to use the latest star release 17:31
ingy I can start with HEAD and switch to * if needed
timotimo sounds good
what modules did you have in mind? i think there's still work to be done for testml, which is a dependency for yaml. i suppose having a working yaml implementation would be beneficial, but of course you're free to do whatever you're most interested in at the moment
17:31 sqirrel left
ingy timotimo: both of those :) 17:33
Faxmachinen r: class Foo {}; say Foo ~~ Foo, Foo.new ~~ Foo; 17:34
ingy also the yaml module is only a dumper iirc
camelia rakudo 484f08: OUTPUT«TrueTrue␤»
Faxmachinen Hmm. How can I tell the difference between a class and an instance thereof?
ingy interested in writing a parser/loader
17:37 lowpro30 joined
Faxmachinen Ah, triple-equals, of course. 17:37
GlitchMr Faxmachinen, class is like null in other programming languages.
Also, ~~ is smartmatch, and in this case, it checks whatever first argument is instance of Foo. 17:38
Faxmachinen GlitchMr. I suppose so. I'm complaining that it's not a very good null however :)
GlitchMr It's typed null.
timotimo Faxmachinen: you can smartmatch against Foo:D or check .defined 17:39
17:39 pecastro joined
timotimo r: my Str $a; say $a ~~ :defined 17:39
camelia rakudo 484f08: OUTPUT«False␤»
timotimo r: my Str $a = "hi"; say $a ~~ :defined
camelia rakudo 484f08: OUTPUT«True␤»
Faxmachinen Thanks!
GlitchMr :D means defined. 17:40
Faxmachinen :D
TimToady well, .DEFINITE really
GlitchMr (ok, I assume :D is an emoticon)
It's a type that doesn't accept null (undefined value) as its value. 17:41
rn: say Int ~~ Int:D
camelia rakudo 484f08, niecza v24-92-g3961d5d: OUTPUT«True␤»
TimToady er...
GlitchMr I'm not sure if I understand.
timotimo er, huh?
TimToady rn: say Int ~~ Int :D 17:42
camelia niecza v24-92-g3961d5d: OUTPUT«===SORRY!===␤␤You can't adverb that at /tmp/aJBKhfO3FP line 1 (EOF):␤------> say Int ~~ Int :D⏏<EOL>␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1502 (die @ 5) ␤ at /home/p6e…
..rakudo 484f08: OUTPUT«===SORRY!=== Error while compiling /tmp/F9BJ1rKXgb␤You can't adverb that␤at /tmp/F9BJ1rKXgb:1␤------> say Int ~~ Int :D⏏<EOL>␤ expecting any of:␤ pair value␤»
timotimo r: my Int $a; say $a ~~ Int:D
ingy How can I write a p6 grammar (for a syntax like, say, yaml) that acts like a lexer (prints tokens to stdout)?
camelia rakudo 484f08: OUTPUT«True␤»
GlitchMr :D seems to work in subroutines, but nowhere else for me. 17:43
TimToady arguably a bug
ingy: is there something wrong with just putting { say "footoken" } after you recognized the footoken? 17:44
slava ls
oops, sorry
ingy TimToady: no, not at all. just asking :)
PerlJam ingy: you could write a module that will auto-output token info :) 17:45
TimToady of course, if you ever want to backtrack, you've got trouble with side effects you can't take back
so people usually parse bigger chunks and then crawl the tree
ingy TimToady: of course, understood
17:46 kbaker joined
Faxmachinen I always thought it was strange that actions are performed before the match completes 17:46
ingy More than likely I'll try to keep it down to 1 token lookahaed 17:47
Faxmachinen Is there any way around it besides turning off backtracking?
TimToady the usual action is to attach an ast to the match tree, which is safe in the face of backtracking
ingy Faxmachinen: that's because you think of P6 regexes as regexes. (They are full-on parser generators) 17:48
TimToady anything you attach to the current cursor will get thrown away if the cursor is thrown away to backtrack
Faxmachinen True. Wouldn't you have to call methods manually afterwards if you attached them though? 17:49
TimToady if you want to have delay actions, you can even attach closures to the tree, then trigger them as a separate pass
*delayed
sure, but one could abstract that
ingy basically I want a streaming parser
so I can only delay so much 17:50
TimToady as long as you know the limits on backtracking, or that it can be parsed one-pass, you're fine
TimToady has a large preference for one-pass parsing
ingy YAML was designed to be one pass 17:51
TimToady then there should be no problem with immediate side effects
ingy :)
17:55 slavik left
TimToady Faxmachinen: for instance, one could build up an ast that is basically just a list of all the closures you want to run once you commit; you'd just want a { make ... } variant that knows how to marshall those closures 17:56
17:59 donaldh left
TimToady a language that makes it really easy to generate a lazy list of closures doesn't really need special syntax for delayed actions, especially if you can write a macro or two to abstract it 18:01
unlike, say, Snobol, where it's sort of a necessity
Faxmachinen True. Is there sugar for executing each sub in an array? 18:02
18:02 daxim left
TimToady @array».() if you don't care about the order 18:02
Faxmachinen Cool 18:03
TimToady .() for @array if you do care
or @array.map: *.() 18:04
Faxmachinen Hmm, yes. One probably would care about the order when parsing
TimToady there are two orders to care about
hyper guarantees order of results, but not order of execution
so it depends on, er, the dependencies 18:05
18:05 sqirrel joined
flussence Wow. This is a new one... 18:05
~ $ rakudo-jvm
> "?java.io.IOException: invalid UTF-8 first byte: -99
didn't even let me finish the input line. 18:06
TimToady welcome to Java's signed arithmetic
Faxmachinen That reminds me of something
r: "Ø"
camelia rakudo 484f08: ( no output )
dalek ecs: e05910e | (Dagur Valberg Johannsson)++ | S32-setting-library/Containers.pod:
Make subbuf act more like Str.subbuf
Faxmachinen Hmm. That expression crashes my rakudo interpreter 18:07
TimToady but that's maybe a problem in linenoise or realine?
flussence r: say "𝕙".chars
camelia rakudo 484f08: OUTPUT«1␤»
TimToady *readline
dalek ast: 6def40c | (Dagur Valberg Johannsson)++ | S03-operators/buf.t:
Added more tests for Buf.subbuf
Faxmachinen > "Ø"
Malformed UTF-8 string
TimToady is your terminal set to UTF-8? 18:08
Faxmachinen Probably not
Should it crash the REPL though?
moritz it shouldn't crash, but it won't work either
(see the /topic here :-) 18:09
flussence it's reasonable for it to complain if things are amiss (at least, after the input \n...)
TimToady nr: say chr(-99 + 128) 18:10
camelia rakudo 484f08, niecza v24-92-g3961d5d: OUTPUT«␤»
flussence r: say "𝕙".encode
camelia rakudo 484f08: OUTPUT«Buf:0x<f0 9d 95 99>␤»
18:11 donaldh joined
flussence r: say "𝕙".encode».fmt('%x') 18:11
camelia rakudo 484f08: OUTPUT«No such method 'fmt' for invocant of type 'utf8'␤ in method dispatch:<hyper> at src/gen/CORE.setting:1191␤ in block at /tmp/byOixKjyzv:1␤␤»
flussence argh
r: say "𝕙".encode.values».fmt('%x')
camelia rakudo 484f08: OUTPUT«f0 9d 95 99␤»
flussence r: say "𝕙".encode.values».fmt('%d')
camelia rakudo 484f08: OUTPUT«240 157 149 153␤»
TimToady isn't ^] what some telnets use to escape to the command line? 18:12
flussence r: say 128 - 99
camelia rakudo 484f08: OUTPUT«29␤»
TimToady nr: say chr(-99 + 256)
camelia rakudo 484f08, niecza v24-92-g3961d5d: OUTPUT«␤»
TimToady huh? 18:13
flussence r: say 256 - 99
camelia rakudo 484f08: OUTPUT«157␤»
flussence `man ascii` says 29 is nothing interesting... 18:14
(escape is 27)
TimToady but it's ^]
hence my telnet comment
flussence hm
TimToady nr: say chr(-99 + 256).ord
camelia rakudo 484f08, niecza v24-92-g3961d5d: OUTPUT«157␤»
ingy rakudo/parrot seems decently zippy on my new laptop
18:14 Faxmachinen left 18:15 Tene joined
TimToady I guess irssi just makes those look the same 18:15
flussence r: say ord(']') - 40
camelia rakudo 484f08: OUTPUT«53␤»
flussence r: say ord(']') - 0x40
camelia rakudo 484f08: OUTPUT«29␤»
TimToady what were you trying to type?
flussence that ^
TimToady or did you get past the "?
flussence oh, the first thing you mean
TimToady what did you type to get the -99? 18:16
flussence I was typing the string from «r: say "𝕙".chars» above, and it barfed mid-typing
TimToady could you have typed CTRL-] by accident?
flussence (well, copy-pasting from gvim to be exact)
TimToady huh 18:17
18:17 lowpro30_ joined
TimToady does gvim think it's in Latin-1? 18:17
dalek ast: dd0e0b5 | (Dagur Valberg Johannsson)++ | S03-operators/buf.t:
up plan count
flussence I'm pretty certain most of the programs on here are utf-8-clean... 18:18
never seen a problem like that before, readline-type stuff usually doesn't care until I hit return 18:19
TimToady well, it tried to interpret the 157 char as -99, I guess
since -99 and 157 are the same mod 256
and the sign is probably just Java-damage
18:19 djanatyn joined 18:20 lowpro30 left 18:22 Joe____ joined
TimToady actually, it kind sounds like the copy/paste lost the 1st utf8 byte somehow 18:22
*kinda
flussence I can write «'£'.encode» on the jvm repl no problem, even though the result comes back wrong 18:23
TimToady or maybe a problem with nulls interspersed?
flussence maybe it doesn't like non-ucs2...
18:24 bluescreen10 joined 18:25 Joe____ left
flussence aha 18:25
I tried an 0xfffd and an 0x10000 and the latter crashed it
interestingly it does nothing until I've given it at least one other char of input 18:27
18:27 donaldh left, ajr joined
flussence «'𐀀» crashes it, as does «𐀀𐀀», but «𐀀» just doesn't echo anything at all 18:28
18:28 ajr is now known as Guest45415, lizmat joined 18:30 Guest45415 is now known as ajr_ 18:34 abnorman left
flussence this "invalid first byte" and the "index out of bounds" problem I've been having on parrot... sounds awfully like there's an off-by-one in the utf8 code somewhere. 18:35
18:35 lowpro30__ joined
[Coke] is it something you can gist? (then you can try it on the evalbot's niecza and pugs, too) 18:36
flussence n: say "𐀀".ord 18:37
camelia niecza v24-92-g3961d5d: OUTPUT«65536␤»
flussence that pastes as mojibake locally, but the output is correct
arnsholt *sigh* I must be some kind of technology anti-whisperer
FROGGS arnsholt: sup? 18:38
arnsholt Try to write NQP tests for NativeCall, trigger weird bugs in either NQP or Parrot
18:38 lowpro30_ left
FROGGS .oO( to boldly go where no one has gone before ) 18:38
[Coke] arnsholt: like, some kind of infectious luddite? 18:39
flussence arnsholt: I'm having as much fun as you are and I'm coding nowhere near the internals!
TimToady diakopter++ does that on purpose :)
18:40 zwut00 joined, zwut00 left
masak that's half the fun of it. 18:41
"what happens if I... oops!" :)
18:41 stevan_ left
flussence hm, niecza's readline doesn't play nice with non-ucs2 chars either, but at least it understands what I'm telling it even if it can't echo it back. 18:42
rn: say "\x1f63e".encode('utf-16').decode('utf-16').ord.fmt('%x') 18:44
camelia rakudo 484f08: OUTPUT«VMArray: index out of bounds␤ in method decode at src/gen/CORE.setting:4882␤ in block at /tmp/w2NI93kaRJ:1␤␤»
..niecza v24-92-g3961d5d: OUTPUT«1f63e␤»
18:45 zwut00 joined
flussence niecza++ # least insanity 18:45
lizmat r: say set( <a b c d e> ).values # questions the sense of allowing .values on sets 18:49
camelia rakudo 484f08: OUTPUT«True True True True True␤»
18:49 denis_boyun joined
jnthn I don't see much value to it... 18:49
TimToady r: say "\x1f63e".encode('utf-16')
camelia rakudo 484f08: OUTPUT«Buf:0x<d83d de3e>␤»
18:49 SamuraiJack__ left
TimToady those are negative on JVM, sigh 18:49
18:49 stevan_ joined
jnthn I thought I fixed that :/ 18:50
TimToady jnthn: True
Buf:0x<-27c3 -21c2>
jnthn Arguably it's .values on the Set that should tell me whats in it and .keys makes no sense 'cus you can't index a Set...
TimToady r: say set( <a b c d e> )[] 18:52
camelia rakudo 484f08: OUTPUT«a b c d e␤»
TimToady r: say <a b c d e>.keys 18:54
camelia rakudo 484f08: OUTPUT«0 1 2 3 4␤»
TimToady makes about as much sense as that :)
flussence
.oO( hm... if I could only figure out how to hack a Buf.values into niecza I'd be able to make do with that )
TimToady first you'd have to hack in Buf 18:55
flussence I noticed the lack of one in the source, but how did that .encode.decode line work without it? 18:56
TimToady n: say "\x1f63e".encode('utf-16').WHAT
camelia niecza v24-92-g3961d5d: OUTPUT«(Buf)␤»
TimToady I guess it's half implemented 18:57
n: say "\x1f63e".encode('utf-16')
camelia niecza v24-92-g3961d5d: OUTPUT«Buf.new(...)␤»
TimToady n: say "\x1f63e".encode('utf-16')[0].WHAT
camelia niecza v24-92-g3961d5d: OUTPUT«(Buf)␤»
TimToady doesn't really do Positional, I guess 18:58
n: say Buf ~~ Positional
camelia niecza v24-92-g3961d5d: OUTPUT«False␤»
TimToady r: say Buf ~~ Positional
camelia rakudo 484f08: OUTPUT«True␤»
TimToady they're really more like blobs in this case, I guess 18:59
19:01 stevan_ left 19:08 go|dfish left 19:10 stevan_ joined 19:11 abnorman joined 19:15 go|dfish joined 19:25 domidumont left
arnsholt jnthn: Could you give gist.github.com/arnsholt/6428396 a whirl on NQP/Parrot? On my machine it (most of the time) returns 0x1 from VTABLE_get_pmc_keyed_int (nqp_dyncall.ops:857), which predicatbly causes a segfault a bit later 19:27
Potentially a Parrotbug?
19:29 stevan_ left 19:30 go|dfish left
moritz arnsholt: I guess you're missing a use Test; use NativeCall; at the top? 19:34
19:34 go|dfish joined
Util FYI: #ps time 19:35
moritz oh wait, that's NQP code :/
Juerd Why is infix:<%%> not infix:<!%>? 19:36
TimToady because it's not read "is not non-divisible by" 19:37
arnsholt moritz: Yeah, NQP code. Also, missing use shouldn't trigger a segfault =)
TimToady and because % isn't a boolean op in the first place :)
Juerd TimToady: It is if you ! it ;)
But thanks for the explanation.
TimToady std: 5 !% 2
camelia std 27326bc: OUTPUT«===SORRY!===␤Cannot negate % because multiplicative operators are not iffy enough at /tmp/Yb_jaIYT9_ line 1:␤------> 5 !%⏏ 2␤Parse failed␤FAILED 00:00 42m␤» 19:38
Juerd s/is/would be/ then :)
TimToady :)
also, the two-ness of it implies "comes out even" in a visual metaphorical sense
and it's just prettier :) 19:39
arnsholt moritz: Feel free to give it a spin though, if you have a NQP/Parrot at hand
Juerd
.oO( $foo %%% 3, $foo %%%% 4, $foo %%%%% 5, ... ;-) )
19:40 bluescreen10 left 19:41 logie left 19:43 stevan_ joined
moritz arnsholt: I get 19:43
error:imcc:syntax error, unexpected PREG, expecting '(' ('$P108') in file '(file unknown)' line 85
arnsholt: which comes from the first nqp::buildnativecall call 19:44
arnsholt Derp? 19:46
Maybe I pastoed. 'Sec
Oh, oh!
moritz: You need to run it with nqp --vmlibs=nqp_dyncall_ops $file 19:47
To get the NativeCall ops
moritz arnsholt: perlpunks.de/paste/show/52263cfe.31f3.3d2 that's what I get then 19:48
arnsholt Yeah, that's the non-segfault problem that I get once in a while
Haven't figured that one out yet 19:49
moritz and now I get
nqp: malloc.c:3616: _int_malloc: Assertion `(unsigned long)(size) >= (unsigned long)(nb)' failed.
camelia nqp: OUTPUT«Confused at line 2, near "malloc.c:3"␤current instr.: 'panic' pc 14693 (src/stage2/gen/NQPHLL.pir:5223) (src/stage2/gen/NQPHLL.nqp:279)␤»
moritz Aborted
19:49 rindolf left
moritz but I haven't got a segfault yet 19:49
arnsholt Yeah, I've gotten that one too
There are a couple of different failure modes I've seen 19:50
19:51 awwaiid left, awwaiid joined
arnsholt And adding/removing code from the file seems to have some kind of influence, so it seems related to memory layout and such 19:51
moritz now I got a segfault too :-) 19:53
arnsholt Yay, I guess? =)
jnthn Does invoking it directly with Parrot and supplying the -G (no GC) flag change things? 19:54
That way you can know if it's GC related or not.
arnsholt Kaboom, even with -G 19:56
jnthn OK 19:57
Just boring old memory corruption then I guess...
arnsholt Yeah 19:58
Commenting out the nqp::nativecall ops doesn't change it, so it's not that op that's buggy it seems
There's no optimisation going on in NQP, right? 19:59
jnthn Right
FROGGS didnt timotimo++ added optimization stuff lately? 20:00
see: github.com/perl6/nqp/commits?author=timo 20:01
jnthn I...thought that was still in a branch?
20:02 sqirrel left
arnsholt github.com/perl6/nqp/commit/f1d040...2c851b5bb5 20:02
Looks like it's merged
arnsholt removes the optimise stage and tries again 20:04
Still segfault 20:07
Oh, hooray. This time I got a segfault in Parrot_pa_insert, while allocating a new Parrot string
[Coke] was right, it's infectious ludditism 20:08
But bedtime now, I think. I'll give this another whack tomorrow 20:12
20:13 xenoterracide joined
FROGGS arnsholt: sleep well 20:13
20:15 logie joined 20:20 kaare_ left
diakopter nqp: class Foo { BEGIN { our $foo := 234; } }; say($Foo::foo) 20:23
camelia nqp: OUTPUT«Can only use get_who on a SixModelObject␤current instr.: '' pc 24 ((file unknown):34) (/tmp/VHuBND53iN:1)␤»
diakopter nqp: class Foo { BEGIN { our $foo := 234; } };
camelia nqp: OUTPUT«Can only use get_who on a SixModelObject␤current instr.: '' pc 24 ((file unknown):34) (/tmp/dh38oY3mh8:1)␤»
diakopter nqp: class Foo { our $foo; BEGIN { $foo := 234; } }; 20:24
camelia nqp: OUTPUT«Can only use get_who on a SixModelObject␤current instr.: '' pc 3 ((file unknown):22) (/tmp/NdXhBalU0R:1)␤»
diakopter sigh
jnthn BEGIN in NQP is exactly as capable as Rakudo's BOOTSTRAP needs and no more...
20:26 xinming_ joined 20:30 xinming left
lizmat decommuting& 20:31
20:31 lizmat left 20:32 agre left
[Coke] [A 20:33
ww 20:34
20:40 donaldh joined 20:41 notjack left 20:42 iSlug left 20:43 iSlug joined 20:45 pmurias joined
jnthn nqp: sub foo() { return; say('oops') }; foo() 20:47
camelia nqp: OUTPUT«oops␤»
jnthn FROGGS: ^^ o.O
FROGGS I had not expected this :o) 20:48
moritz nobody expects the nqpish inquisition!
FROGGS so I'm going to fix the test :o) 20:49
that was easy
but how can nqp@parrot just ignore that return; ? 20:50
nqp-jvm: sub foo() { return; say('oops') }; foo()
camelia nqp-jvm: OUTPUT«oops␤»
FROGGS nqp-jvm: sub foo() { return; }; foo()
camelia nqp-jvm: ( no output )
jnthn nqp: sub foo() { ignore; say('oops') }; foo()
camelia nqp: OUTPUT«oops␤»
FROGGS >.< 20:51
jnthn nqp: sub foo() { pivo; say('oops') }; foo()
camelia nqp: OUTPUT«oops␤»
diakopter giggle
dalek rl6-roast-data: 708fe96 | coke++ | / (5 files):
today (automated commit)
[Coke] rakudo.jvm failures have jumped from about 300 to over 530. 20:52
niecza is down to 13 failures.
(but it's percentage -still- dropped, due to more rakudo passes) 20:54
*its
dalek p: c51cd7c | (Tobias Leich)++ | t/nqp/44-try-catch.t:
return is a list prefix
20:55 lowpro30__ left
colomon curse rakudo and it's… no, wait, more rakudo passes are good. did rakudo.jvm lose previously passing tests, or were 230 tests added but jvm doesn't pass them yet? 20:56
jnthn should give Rakudo JVM some tuits again soon, now the NQP selfhost on Moar is coming together
colomon \o/ 20:57
20:57 dmol left 21:00 dmol joined 21:01 hummeleBop left 21:02 dmol left 21:04 skids left, dmol joined 21:27 iSlug left 21:28 EvanTeitelman joined 21:31 dmol left 21:34 dmol joined 21:35 dmol left 21:37 dmol joined
donaldh I'm investigating how to implement qqx{ … } on JVM. It makes use of nqp::open($cmd, 'rp') 21:40
I can spawn a process and attach it to a read IOHandle, so that's all good. 21:41
The problem is that I need $*CWD and $*ENV to successfully launch a process. 21:42
21:43 EvanTeitelman left
donaldh To correctly support chdir emulation, we will need these parameters to spawn processes on all backends. 21:43
jnthn donaldh: Maybe just define an nqp::openpipe or so 21:44
21:44 EvanTeitelman joined, EvanTeitelman is now known as doxit
donaldh jnthn: that's what I was going to suggest too :-) 21:44
I'm just worried about diverging from spec or expectations. 21:45
jnthn donaldh: Well, nqp:: ops are an implementation detail, we get to spec those ;) 21:46
It makes sense to me to do it that way, anyways 21:47
otoh, I'm sleep deprived :)
And didn't have any beer yet today.
So heck knows if I'm thinking clearly. :)
donaldh oh noes 21:48
what a terrible situation to find yourself in
jnthn Well, I guess I can fix the beer easy enough :)
donaldh I'm happy to go ahead with what you've suggested.
jnthn And maybe then I'll sleep well tonight :)
21:49 denis_boyun left
jnthn donaldh: Go for it, I wasn't that keen on parsing the p out of the string to see it's pipe mode anyway. 21:49
donaldh It's much cleaner to have a separate nqp op 21:50
jnthn donaldh: Probably an nqp::openpipe fits more naturally on MoarVM too :)
donaldh That's good!
21:51 dmol left 21:52 dmol joined
jnthn heads afk for the evening 21:53
'night
22:00 PacoAir left 22:04 doxit left 22:06 EvanTeitelman joined, EvanTeitelman left, EvanTeitelman joined, EvanTeitelman is now known as doxit 22:11 dmol left 22:12 dmol joined, pmurias left
masak 'night, #perl6 22:21
22:23 donaldh left 22:27 xinming joined, benabik left 22:30 xinming_ left, skids joined
[Coke] donaldh++ 22:52
23:02 dmol left 23:03 ssutch left 23:07 benabik joined 23:20 ssutch joined 23:21 ssutch left 23:22 ssutch joined 23:26 jnap left 23:44 btyler left 23:51 ajr_ left 23:52 doxit left