»ö« 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/uUmmm0mACLTwo terms in a rowat /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 rowat /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/D6xmfNN5bMUnable 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/eDdG3JfvdbUnable 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␀␀␀zxE2 | ||
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 declaredat /tmp/YVXKKSkE9N:1------> my foo⏏;Malformed myat /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 typenameParse failedFAILED 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 loopParse failedFAILED 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 rowat /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:10» | ||
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/F9BJ1rKXgbYou can't adverb thatat /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 !%⏏ 2Parse failedFAILED 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 SixModelObjectcurrent 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 SixModelObjectcurrent 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 SixModelObjectcurrent 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
|