»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend! | feather will shut down permanently on 2015-03-31
Set by jnthn on 28 February 2015.
skids Hrm on a fresh laptop and I am getting some sort of cpmile-time problem with Sum. Gonna freshen up rakudo and see if it is still there. 00:03
adu_ skids, is there a difference between panda install Sum and panda-install Sum? 00:09
skids I didn't even know panda-install existed actually. 00:12
osto <skids> It runs a lot of tests though so plan for a hot lap.[[[[[[[[[[[[[[[[[[==========================================================================================================================
Crap. My cat was on my keyboard........ Disregard my last message :P 00:13
skids Cats prefer hot laps to hot laptops, but they will settle for the latter :-) 00:14
osto Here's the culprit, Archimedes: www.imgur.com/Yp1mCPK . Anyway, does anyone have an answer to my question earlier? 00:17
skids oh right. lemme dig S05 for the opener/closer thing. 00:18
osto cool 00:19
skids osto: this is as far as I have gotten: 00:56
m: say so "(a)" ~~ /(<:Ps>) ~ { my $c = uniname(~$0); $c ~~ s/LEFT/RIGHT/; $c = EVAL "\"\\c\[$c\]\""; $c.say; rx/$c/ } a/
camelia rakudo-moar 3c46c7: OUTPUT«)␤True␤»
skids except it isn't right it should be something like this:
m: say so "(a)" ~~ /(<:Ps>) ~ <{ my $c = uniname(~$0); $c ~~ s/LEFT/RIGHT/; $c = EVAL "\"\\c\[$c\]\""; $c.say; rx/$c/ }> a/
camelia rakudo-moar 3c46c7: OUTPUT«)␤True␤»
skids m: say so "(a]" ~~ /(<:Ps>) ~ <{ my $c = uniname(~$0); $c ~~ s/LEFT/RIGHT/; $c = EVAL "\"\\c\[$c\]\""; $c.say; rx/$c/ }> a/ 00:58
camelia rakudo-moar 3c46c7: OUTPUT«)␤Unable to parse expression in ; couldn't find final <{ my $c = uniname(~$0); $c ~~ s/LEFT/RIGHT/; $c = EVAL "\"\\c\[$c\]\""; $c.say; rx/$c/ }> ␤ in method ACCEPTS at src/gen/m-CORE.setting:16240␤ in block <unit> at /tmp/YFYLz4wgf7:1␤␤»
skids So it should not blow up in that last case.
Oh wait.
That's actually working
m: say so "(a]" ~~ /:dba<my parens>; (<:Ps>) ~ <{ my $c = uniname(~$0); $c ~~ s/LEFT/RIGHT/; $c = EVAL "\"\\c\[$c\]\""; $c.say; rx/$c/ }> a/
camelia rakudo-moar 3c46c7: OUTPUT«5===SORRY!5===␤Unrecognized regex metacharacter ; (must be quoted to match literally)␤at /tmp/jurrQD__Uj:1␤------> 3say so "(a]" ~~ /:dba<my parens>7⏏5; (<:Ps>) ~ <{ my $c = uniname(~$0); $c ␤Unable to parse regex; couldn't find final '/'…»
skids erm 00:59
m: say so "(a]" ~~ /:dba("my parens"); (<:Ps>) ~ <{ my $c = uniname(~$0); $c ~~ s/LEFT/RIGHT/; $c = EVAL "\"\\c\[$c\]\""; $c.say; rx/$c/ }> a/
camelia rakudo-moar 3c46c7: OUTPUT«5===SORRY!5===␤Unrecognized regex metacharacter ; (must be quoted to match literally)␤at /tmp/CAx6B6co1k:1␤------> 3say so "(a]" ~~ /:dba("my parens")7⏏5; (<:Ps>) ~ <{ my $c = uniname(~$0); $c ␤Unable to parse regex; couldn't find final '…»
skids ah 01:00
m: say so "(a]" ~~ /:dba<my parens> (<:Ps>) ~ <{ my $c = uniname(~$0); $c ~~ s/LEFT/RIGHT/; $c = EVAL "\"\\c\[$c\]\""; $c.say; rx/$c/ }> a/
camelia rakudo-moar 3c46c7: OUTPUT«No such method 'my' for invocant of type 'Cursor'␤ in method ACCEPTS at src/gen/m-CORE.setting:16240␤ in block <unit> at /tmp/5tbow9s6Gk:1␤␤»
skids m: say so "(a]" ~~ /:dba('my parens') (<:Ps>) ~ <{ my $c = uniname(~$0); $c ~~ s/LEFT/RIGHT/; $c = EVAL "\"\\c\[$c\]\""; $c.say; rx/$c/ }> a/ 01:01
camelia rakudo-moar 3c46c7: OUTPUT«False␤»
skids m: say so "(a)" ~~ /:dba('my parens') (<:Ps>) ~ <{ my $c = uniname(~$0); $c ~~ s/LEFT/RIGHT/; $c = EVAL "\"\\c\[$c\]\""; $c.say; rx/$c/ }> a/
camelia rakudo-moar 3c46c7: OUTPUT«False␤»
skids huf.
back to my own shell
osto ha. so close
skids There has to be a better way than that to deduce the closing char. 01:02
raydiak m: say :16(uniprop($_, "Bidi_Mirroring_Glyph")).chr R~ ":" for '(', '[', '{' 01:03
camelia rakudo-moar 3c46c7: OUTPUT«:)␤:]␤:}␤»
osto I know... I thought of that too, but there's a couple open/close characters without /LEFT|RIGHT/
skids raydak++ 01:04
raydiak oh the R~ there was smoething I didn't need to copy, if that wasn't obvious
osto Ooh 01:04
skids Man I hate these new chiclet keyboards: raydiak++ 01:07
osto m: say :16(uniprop($_, "Bidi_Mirroring_Glyph")).chr R~ ":" for '(', '[', '{', '\x{fd3f}'
camelia rakudo-moar 3c46c7: OUTPUT«:)␤:]␤:}␤Cannot convert string to number: base-16 number must begin with valid digits or '.' in ':16<⏏>' (indicated by ⏏)␤ in method <anon> at src/gen/m-CORE.setting:15773␤ in any find_method_fallback at src/gen/m-Metamodel.nqp:2908␤ in …»
osto m: say :16(uniprop($_, "Bidi_Mirroring_Glyph")).chr R~ ":" for '(', '[', '{', '﴿' 01:08
camelia rakudo-moar 3c46c7: OUTPUT«:)␤:]␤:}␤Cannot convert string to number: base-16 number must begin with valid digits or '.' in ':16<⏏>' (indicated by ⏏)␤ in method <anon> at src/gen/m-CORE.setting:15773␤ in any find_method_fallback at src/gen/m-Metamodel.nqp:2908␤ in …»
raydiak m: say "\x{fd3f}" 01:09
camelia rakudo-moar 3c46c7: OUTPUT«5===SORRY!5===␤Unrecognized backslash sequence: '\x'␤at /tmp/0Gx0hMGJfW:1␤------> 3say "\7⏏5x{fd3f}"␤Undeclared routine:␤ fd3f used at line 1␤␤␤»
raydiak m: say "\x[fd3f]"
camelia rakudo-moar 3c46c7: OUTPUT«﴿␤»
osto What's the \x[nnnn] syntax? 01:10
raydiak that makes something that very nearly resembles the openbsd blowfish in my terminal font :P
skids doc needs a uniprop cookbook section, cause funicode docs are not fun to read.
raydiak lemme see if I can find \x in the design docs 01:11
colomon m: say “ß”.uc
camelia rakudo-moar 3c46c7: OUTPUT«ß␤»
colomon m: say “ß”.uc.ord 01:12
camelia rakudo-moar 3c46c7: OUTPUT«223␤»
colomon m: say “ß”.ord
camelia rakudo-moar 3c46c7: OUTPUT«223␤»
raydiak S02:Radix_interpolation
colomon .u ß
yoleaux U+00DF LATIN SMALL LETTER SHARP S [Ll] (ß)
raydiak hm guess synopsebot doesn't like that
design.perl6.org/S02.html#Radix_interpolation
colomon .u ẞ
yoleaux U+0002 START OF TEXT [Cc] (␂)
U+000F SHIFT IN [Cc] (␏)
U+1E9E LATIN CAPITAL LETTER SHARP S [Lu] (ẞ)
colomon m: say “ß”.tc 01:13
camelia rakudo-moar 3c46c7: OUTPUT«ß␤»
skids \o/ Sum builds after re-brewng. Glad I didn't have to figure out that weird error. 01:24
hahainternet isn't there a from 1 prefix ^ type operator? 01:37
colomon you mean 1..^N instead of 0..^N ? 01:44
dalek rl6-roast-data: 7a0eaaa | coke++ | / (9 files):
today (automated commit)
01:56
grondilu m: sub infix:<°> { 1 .. $^n }; say °10 01:57
camelia rakudo-moar 3c46c7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/9rC56l8Gh8␤Preceding context expects a term, but found infix ° instead␤at /tmp/9rC56l8Gh8:1␤------> 3sub infix:<°> { 1 .. $^n }; say °7⏏0510␤»
grondilu m: sub prefix:<°> { 1 .. $^n }; say °10
camelia rakudo-moar 3c46c7: OUTPUT«1..10␤»
grondilu hahainternet: none in the core, but easy to make your own.
hahainternet colomon: yeah i could have sworn at some point i saw one
and yeah no worries i know you can define operators arbitrarily 01:58
dalek osystem: 1b80ae4 | hoelzro++ | META.list:
Add Linenoise to ecosystem
dalek kudo/no-linenoise: 385d2e5 | hoelzro++ | tools/build/Makefile-Moar.in:
Remove reference to linenoise in Moar config
02:11
p/no-readlineint: 0200653 | hoelzro++ | / (6 files):
Remove references to readlineint_fh

This corresponds to recent changes in MoarVM, in the no-moar-linenoise branch.
I haven't removed readlineintfh from the Parrot stage 0 stuff, because the tests are currently failing, and I don't want to bork Parrot worse than it already is.
p/no-readlineint: ccbf97d | hoelzro++ | src/HLL/Compiler.nqp:
Restore prompt to REPL
p/no-readlineint: aff1fff | hoelzro++ | src/HLL/Compiler.nqp:
Break reading of lines out into a helper method
02:18
hoelzro is it possible to load a Perl 6 module from NQP code? I have a Linenoise module I wrote, and I'd like to use it from src/Perl6/Compiler.nqp 02:31
adu_ radiak! 02:42
grondilu, so clever :)
[Coke] I think you'd have to load all of perl6. 03:03
raydiak yay took my laptop apart, cleaned it, and put it back together with no leftover parts 03:58
grondilu sent a patch to rakudobug to suggest having polymod return 0 whenever self is 0 07:22
grondilu m: my @ = 1 .. *; # ok 07:51
camelia ( no output )
grondilu m: my @ = 0, 1 .. *; # still ok
camelia ( no output )
grondilu m: my @ = 0, map { $_ }, 1 .. *; # not ok??
camelia rakudo-moar 3c46c7: OUTPUT«(timeout)» 07:52
grondilu really I'm not happy with &:<,> breaking lazyness
grondilu m: my @ = map { $_ }, 1 .. *; 07:53
camelia rakudo-moar 3c46c7: OUTPUT«(timeout)»
grondilu oh, my bad. apparently it's not because of &:<,> 07:54
moritz grondilu: the map makes us lose the information that the list is infinite 07:55
grondilu: and array assignment is eager
grondilu ok
TimToady map doesn't pass infinite yet, yes 07:57
GLR, we hope
one of the goals is end-to-end negotiation 07:58
moritz the problem is that usually we don't know if the map block calls 'last' 07:59
TimToady one assumes that something first-like would be used in that case, but yeah 08:00
or we could notice a 'last' while compiling 08:01
is just a smop
as long as we aren't trying to solve the lasting^Whalting problem
grondilu I had no idea a map could be stopped by a last 08:03
m: say map { last if $_ > 5 }, ^10
camelia rakudo-moar 3c46c7: OUTPUT«␤»
grondilu m: say map { last if $_ > 5; $_ }, ^10
camelia rakudo-moar 3c46c7: OUTPUT«0 1 2 3 4 5␤»
grondilu well, I've learnt something today :) 08:04
eli-se hi 08:16
TimToady heading to airport & 08:17
DrForr Ciao, was great to have you here! 08:17
timotimo sadly, last can be dynamic, too 08:46
moritz what's the oposite of an entity in data modelling? 09:37
moritz can't remember the name
basically a value type, but the data modellers have a separate name for that, iirc
masak 'antenoon, #perl6 10:08
moritz: at Edument, we just call them "value objects". they intersect with the notion of immutability, but are distinct in various ways. 10:09
Ven hi masak :) 10:11
masak alohahoy. 10:11
LonelyGM guten morgen everyone :)
masak LonelyGM! \o/ 10:15
LonelyGM: does the "GM" in your nick stand for "Game Master"?
masak knows next to nothing about tabletop games
sjn masak: it means "General Motors" :) 10:16
maybe
oh, and hi, #perl6 o/
:)
Ven masak: they're fun, though..:)
masak Genearl Motors? :P 10:17
General*
Ven masak: only drunk ones :P 10:18
sjn imagines being a legal person of GM's size can be pretty lonely
moritz and an illegal person of GM's size too :-)
sjn should have maybe said "legal entity" or "corporate person" or something 10:19
tadzik Lonely Game Master would be one without party
LonelyGM masak :D hahha I see that you guys are in a creative mood today 10:19
it stands from Grand Master, I am a chess fanatic and once was considered to be a decent player, with no intention to brag... 10:20
tadzik cool :) 10:21
sjn it's lonely at the top
moritz LonelyGM: did you make it to Grand Master?
or was that "just" ambition?
LonelyGM no I never made it to actual GM I was on the edge of becoming an IM when I was 14 and lost a very improtant game against a spanish guy in an international competition in Valencia 10:22
and so I gave up for a year and since then I regret that decision because I couldn't get back 10:23
LonelyGM my actual rating dropped heavily since then... I'm like 1900-2000 ELO currently... and my dream is to design a chess engine that would play exaclty like Bobby Fischer did once :) dreams haha 10:24
moritz well, I have an ELO (or the German equivalent). It's 0 :-)
I played one rated game, and lost it 10:25
LonelyGM moritz: everony starts at 900 ELO and you rating is not "real" until you play a draw 10:26
btw I think chess is very similar to what you guys are doing with perl6 I try to implement this into my chess strategy :) 10:27
masak interesting.
how is it similar_
?
moritz a game is mostly searching and scoring, a compiler is translating/transforming
moritz doesn't see the similarity yet 10:28
LonelyGM well, chess is just partly about discovering patterns and applying your strategy for that
moritz ah, so you're saying it's similar to programming as a whole 10:29
I think I can agree with that
LonelyGM the essence of chess is basically to figure out what the opponent wants, you are language designers first and then coders, Larry told me that he might not be the best coder in the world he is good in finding out what other people wants and giving them the opportunity to do that 10:30
dalek kudo/nom: b9e7dbc | lizmat++ | docs/ChangeLog:
Mention native arrays
LonelyGM in chess you have to figure out what the other wants and not to give them the opportunity
LonelyGM and of course when you are thinking of an attack and series of moves you are thinking in algorithms 10:31
when you have a shady area after a move that could be a parameter which could change the further outcome of the algorithm
if you could actually know how the compiler reacts to each and every code you wouldnt have to write the code bc you would no that it is faulty 10:32
in chess you do these experiments in your head and hope that you are precise enough to succeed :)
m: say "I'm in love with chess" 10:33
camelia rakudo-moar 3c46c7: OUTPUT«I'm in love with chess␤»
grondilu LonelyGM: I started a chess project in Perl 6. So far just a PGN/FEN parser but if you feel like helping to do more, let me know. 10:34
LonelyGM grondilu: I could probably help with the design, with the coding I might have difficulties but it would be a pleasure :) but you are developing an engine or a game? 10:36
dalek ast: 6290f50 | lizmat++ | S02-types/set.t:
Fix tests so they don't pass for the wrong reason
grondilu LonelyGM: I just started a github repo with anything chess related. Lost motivation to do more than parsing PGN though 10:39
writing a chess engine is kind of tough
just checking move legality is a pain 10:40
anyway: github.com/grondilu/chess
dalek ast: b4b82a0 | lizmat++ | S17-procasync/ (2 files):
Todo what were thought to be flappers
10:41
masak "Although the Angular team said there would eventually be an upgrade path, I didn’t believe them. A framework rewrite almost always means rewriting apps that use the framework." -- blog.yodersolutions.com/why-i-recom...angularjs/ 10:42
reading this article, I have the distinct sense that Angular is Perl and Ember is Python.
lizmat reading that, I was reminded of the commercial of "Toilet Duck" in the NL 10:43
"We of Toilet Duck recommend Toilet Duck!"
masak hehe
lizmat anyway, spectest on MoarVM is clean for me now
masak \o/ 10:44
lizmat (and these were all nerdy men in lab coats saying that)
masak lizmat: though I don't think that blogger is affiliated with Ember in any way...
lizmat it was just about the quote, not about the actual blog post :-) 10:45
masak *nod*
sometimes when I see the actions of the Angular core team(s), I think at some point someone must've decided to make it all look like the Perl 5 and Perl 6 upgrade path, and then arranged things so that it does *without telling anyone else*. 10:46
like a massive multi-year troll on everyone.
lizmat www.youtube.com/watch?v=YsvHeLUOoxs # WC Eend 10:48
CurtisOvidPoe: re irclog.perlgeek.de/perl6/2015-03-17#i_10296801, commit message 91f41bdcdd089d88bf06 says: 10:58
Add Bag.kxxv (preliminary name) (on 13 Apr 2014)
CurtisOvidPoe lizmat: ah, thanks! 11:00
lizmat afk for a bit
masak yeah, I wish we had a better name for that one, too 11:04
I was thinking about it yesterday.
it feels like there *should* be something pithy that catches the essence of what that method does. 11:05
with a slightly higher vowel density :)
FROGGS what does .kxxv?
masak .oO( <alien> no, my name is pronounced "kxxv"... -- <human> "kssshv" -- <alien> just drop it. call me Fred. ) 11:06
m: say Bag.new(A => 2, B => 5).kxxv
camelia rakudo-moar b9e7db: OUTPUT«␤» 11:07
tadzik . o O ( my name is pronounced Tadeusz Sośn.. ah, forget it )
FROGGS ohh, that's helpful :o)
masak m: say Bag.new((A => 2), (B => 5)).kxxv
camelia rakudo-moar b9e7db: OUTPUT«A => 2 B => 5␤»
masak er.
m: say Bag.new(<A A B B B B B>).kxxv
camelia rakudo-moar b9e7db: OUTPUT«A A B B B B B␤»
masak FROGGS: there you go.
FROGGS tadzik: you forgot to put the ascii replacement characters in there :P
tadzik haha
masak m: say Bag.new(<A B B A B B B>).kxxv
camelia rakudo-moar b9e7db: OUTPUT«A A B B B B B␤»
tadzik "we love unicode, we just don't use it"
-- YAPC organizers 11:08
masak hypocrites!
tadzik it's like "I love science" :P
related: pbs.twimg.com/media/BnoEAbDIEAA79db.png
FROGGS hehe 11:09
m: say Bag.new(<A B B A B B B>) 11:10
camelia rakudo-moar b9e7db: OUTPUT«bag(A(2), B(5))␤»
FROGGS m: say bag(A(2), B(5)).kxxv
camelia rakudo-moar b9e7db: OUTPUT«5===SORRY!5=== Error while compiling /tmp/D9CJFVZ_fL␤Undeclared names:␤ A used at line 1␤ B used at line 1␤␤»
FROGGS m: say bag(:A(2), :B(5)).kxxv
camelia rakudo-moar b9e7db: OUTPUT«Unexpected named parameter 'A' passed␤ in sub bag at src/gen/m-CORE.setting:21333␤ in block <unit> at /tmp/eq3t8ccSjG:1␤␤»
masak m: <A B B A B B B>.Bag.kxxv 11:11
camelia ( no output )
FROGGS m: say bag("A" => 2, "B" => 5).kxxv
camelia rakudo-moar b9e7db: OUTPUT«A => 2 B => 5␤»
masak m: say <A B B A B B B>.Bag.kxxv
camelia rakudo-moar b9e7db: OUTPUT«A A B B B B B␤»
FROGGS m: say bag("A" => 2, "B" => 5).Bag.kxxv
camelia rakudo-moar b9e7db: OUTPUT«A => 2 B => 5␤»
FROGGS gah
grondilu that has to be the worst name for a method ever
masak I'm glad we all agree.
let's mock it a bit more before we think of the right name :P 11:12
FROGGS :D
masak lizmat++ # implementing it, even in the face of uncertainty about the name
FROGGS .oO( ===SORRY=== I can't adverb you )
masak the "Can't adverb this" error message is a Lovecraftian abomination from the depths of the Perl 6 parser. 11:13
I swear I'm getting it for things that look completely OK, and then I get rid of it by doing a random sacrifice in the code.
DrForr Lose 1 SAN point. 11:17
FROGGS I don't like user support today :o( 11:32
hoelzro o/ #perl6 11:37
Ven Seems like the ruby community started their own version of the perl foundation (with grants and stuff), called "Ruby together" 11:38
hoelzro I wrote a Linenoise module with the intent of being able to enhance the builtin REPL, but I can't figure out how to load a Perl 6 module from NQP (in particular, main.nqp). Is such a thing possible? 11:45
Ven Someone pointed out to me that in the learnxinyminutes, I use "@array" and "array" instead of list. Should I change? 11:47
because an "array" is an "itemized list" 11:48
(so, "list assignment" instead of "array assignment", "@list = " instead of "@array =", etc) 11:49
Ven m: 'a' ~~ /(a)/; say $0.WHAT.perl 11:54
camelia rakudo-moar b9e7db: OUTPUT«Match␤»
Ven m: 'a' ~~ /(a) +/; say $0.WHAT.perl 11:55
camelia rakudo-moar b9e7db: OUTPUT«Array␤»
FROGGS hoelzro: you'd need Perl6's ModuleLoader probably 11:56
hoelzro FROGGS: I figured, but I don't know the magic invocation to give load_module to make it work 11:57
namely, what to use for GLOBALish
FROGGS {} 11:58
:o)
FROGGS I don't know if that will work out though 11:58
hoelzro I tried that first, heh 11:59
eli-se morning 12:26
Ven short morning there. 12:29
lizmat wrt to kxxv, I'm afraid I've had to become accustomed to ridicule wrt to naming classes and methods :-( 12:39
afk again, voting and cycling& 12:42
Ven lizmat: I think it's always better than nothing. 12:42
(plus, see "drip" vs "emit" that came from the discussion about "more") 12:43
FROGGS it is quite hard to find something better than kxxv... and maybe it is the best name for that 12:45
colomon would it be more obvious if it were k-xx-v ? Though as is it only took me a few moment to figure out what it must do. 12:47
nwc10 from the #london.pm hive mind, working on amusing pragmas:
12:46 <@pete> no wombles;
12:46 <@pete> disables garbage collection
masak Ven: I dunno, I hear people refer to arrays all the time in Perl. 12:48
FROGGS colomon: then we could argue that .kv should be .k-v 13:02
colomon: and I'd not favour that :o)
colomon me neither 13:03
TimToady sitting in MUC now 13:25
Ven TimToady: hi
FROGGS TimToady: Grüß Gott :o)
TimToady fortunately, ours is not one of the flights that has been cancelled to due to strike 13:26
at least, not yet...
FROGGS what's your destination? back home?
DrForr Oh, yeah, Lufthansa long-haul on strike.
nwc10 is your flight still alledged to be on time? 13:27
TimToady seems to be 13:28
but maybe they'll stage a work slowdown by crossing the Atlantic at 150mph or so... 13:29
arnsholt Le sigh. I've written so much more NQP than actual Perl 6 I continually have the urge to use := everywhere 13:41
(When writing Perl 6, obv)
timotimo %) 13:52
TimToady notes again that bag() and .Bag are two entirely different things 14:00
the bag composer will not turn pairs into internal counts, but .Bag will
the bag composer will merely make a bag containing your two pairs 14:01
FROGGS: ^^
Woodi hallo #perl6 :) 14:02
so do we have some theory of "shapes" ? :) lists, trees, sets, bags... 14:03
TimToady ==> gate
[Coke] DrForr++ # I have fond memories of playing Call of C'lthulhu 14:04
cdc Hello #perl6 14:51
I'd like to keep a reference to an object method, something like this: 14:52
class A { method b { ... } }; my A $c; my $callback = &($c.b)
is it possible? 14:53
moritz well, you can wrap it 14:54
rjbs cdc: I am a p6 novice, but this appears to work: my $cb = {; $foo.bar }
moritz my $callback = -> |c { $c.b(|c) }
moritz or if it doesn't take arguments, as rjbs++ just said 14:55
rjbs What's the | doing there?
moritz rjbs: capture the rest of the argument list
doc.perl6.org/type/Parameter#method_capture
cdc rjbs, moritz: thanks!
rjbs thanks
moritz cdc: but methods aren't bound to to objects, which is why you have to wrap 14:56
cdc ok 14:57
eli-se hi 17:17
dalek p: d24d387 | donaldh++ | src/vm/jvm/QAST/Compiler.nqp:
Catch runtime exceptions (Throwable) inside 'handle' blocks on JVM

Fixes RT #123684 - one of the infamous UnwindException escapes.
17:20
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123684
abraxxa with rakudo star 2015.02 i'm getting a test fail with DBDish in 10-mysql.t: postcircumfix:<{ }> not defined for type Failure 18:11
dalek ast: 9bfc0bd | lizmat++ | S32-basics/xxKEY.t:
We *can* now fudge :-)
dalek ast: bf91b2b | lizmat++ | S32-basics/xxPOS.t:
Add some AT-POS and friends sanity tests
18:28
kudo/nom: b9d6d3e | lizmat++ | t/spectest.data:
Add some AT-POS and friends sanity tests
18:29
FROGGS abraxxa: do you also see a line number or something more detailed? 18:33
abraxxa FROGGS: i'll paste you the stacktrace 18:34
lizmat diverges for a bit in 3D
FROGGS lizmat: I'm jealous 18:34
[Coke] let me know if that's any good.
abraxxa FROGGS: paste.scsys.co.uk/469873 18:35
FROGGS abraxxa: I have no clue :/ 18:41
abraxxa FROGGS: does it happen for you too?
FROGGS I cannot test right now
abraxxa ok
FROGGS but I dont see similar reports here: testers.perl6.org/dist/D/DBIish/%3C...wn%3E.html 18:44
abraxxa wooh, that looks nice! 18:46
itz "Ever since I learnt about confirmation bias, I've been seeing it everywhere" 18:56
nine_ itz: instant classic :) 19:09
J-L map {.say}, ((1,2),3,(4,5)); 19:14
Sorry... meant for Camelia. 19:15
FROGGS m: map {.say}, ((1,2),3,(4,5));
camelia rakudo-moar b9d6d3: OUTPUT«1␤2␤3␤4␤5␤»
J-L m: ((1,2), 3, (4,5)).map({.say}); # iterates over three elements (method call)
camelia rakudo-moar b9d6d3: OUTPUT«1␤2␤3␤4␤5␤»
FROGGS m: ((1,2), 3, (4,5)).map({ say 'A' });
camelia rakudo-moar b9d6d3: OUTPUT«A␤A␤A␤A␤A␤» 19:16
FROGGS no
J-L According to learnxinyminutes.com/docs/perl6/ , ((1,2), 3, (4,5)).map({.say}) is supposed to iterate over three elements, not five.
abraxxa any advice how to debug segfaults with NativeCall? 19:16
FROGGS m: map { say 'A' }, ((1,2),3,(4,5));
camelia rakudo-moar b9d6d3: OUTPUT«A␤A␤A␤A␤A␤»
FROGGS abraxxa: gdb and valgrind are usually good when hunting segfaults
abraxxa never touched any of these 19:17
J-L My Windows Rakudo is matching Camelia's, but it doesn't match what it says on learnxinyminutes.com/docs/perl6/ about ((1,2), 3, (4,5)).map({.say}) .
FROGGS I hope the GLR will help here 19:18
abraxxa wonders why he sees Compiling lib/DBDish.pm6 to mbc twice
never mind, DBDish and DBIish look very similar 19:23
J-L Frankly, I kind of prefer the way it works now. Flattening both is better than flattening one, but not the other.
[Coke] No guarantee that xiny is kept up to date, and also, this smells like something that the GLR will change/touch 19:24
vendethiel J-L: just ping me if something's wrong in the learnx :-) 19:35
J-L: I should remove that part. That's how it'll behave post-GLR 19:36
vendethiel [Coke]: yeah, I shouldn't have changed the learnx *before* the implementation, that was stupid 19:36
FROGGS: wanted to ask someone "on the team" about this -- should I change all references from "@array" to "@list" (and from "array" to "list") in the learnx? 19:37
because "array is an itemized list"
FROGGS vendethiel: you are asking the wrong guy :o) 19:40
abraxxa how do i pass a Buf as a pointer to a C lib with NativeCall? 19:42
i have this super-ugly construct which seems to not work 19:43
my $valuebuf = $v.Str.encode('utf8');
my sb4 $value_sz = $valuebuf.bytes;
my @valuep := CArray[int8].new;
@valuep[$_] = $valuebuf.[$_]
for ^$value_sz;
vendethiel FROGGS: ha :(
FROGGS abraxxa: just pass that buf 19:44
abraxxa: passing a VMArray (what a buf is underneath) is implemented since 2015.02 19:46
abraxxa so i have to define the parameter differently?
currently i've defined it as CArray[int8] $valuep,
retupmoca abraxxa: sub c_function(Buf) is native { ... }; my $buf = $v.Str.encode('utf8'); c_function($buf); 19:47
abraxxa that would become OraText $valuep is encoded('utf8'),
FROGGS you can also put utf8 instead of Buf in the signature 19:48
because:
m: say "foo".encode('utf8') ~~ utf8
camelia rakudo-moar b9d6d3: OUTPUT«True␤»
FROGGS m: say "foo".encode('utf8') ~~ Buf
camelia rakudo-moar b9d6d3: OUTPUT«False␤»
retupmoca oh, right. Should probably use 'Blob' for the most general case
FROGGS m: say "foo".encode('utf8').REPR # and that's why it is supported since github.com/MoarVM/MoarVM/commit/b3...cc576433fe 19:49
camelia rakudo-moar b9d6d3: OUTPUT«VMArray␤»
abraxxa still segfaulting 19:50
oh, but after the bind
FROGGS abraxxa: is that good? 19:52
I mean, do you make progress?
abraxxa i thought the bind causes the segfault but it seems the sql statement execution afterwards does
i have to look into that pointer passing change so i can remove my ugly workarounds
so if I pass a Buf that is an array of bytes internally and NativeCall passes it correctly 19:53
nine_ FROGGS: what would the NativeCall definition of a function taking a Blob look like?
nine_ FROGGS: oh, never mind. The answer is right there in the backlog 19:54
terahzer are the BEGIN and END blocks still supported in Perl 6 ? 19:56
nine_ terahzer: yes, and the concept even got extended
abraxxa statement execute without bind vars work, those with segfault
terahzer nine_ how?
nine_ terahzer: they're called PHASERS now and there are more of them like FIRST and LAST for loops. You can also use them as statement modifiers like: BEGIN $foo = $bar; 19:57
dalek line-Perl5: de093d0 | (Stefan Seifert)++ | lib/Inline/Perl5.pm6:
Use recent NativeCall's Buf support for speedup
19:57
abraxxa FROGGS: what about a pointer to a sb2 (int16)? 19:59
FROGGS abraxxa: an int16*? 20:00
abraxxa i'm doing a similar thing for those: my @indp := CArray[sb2].new; @indp[0] = -1;
void *indp,
Pointer to an indicator variable or array. For all data types except SQLT_NTY, this is a pointer to sb2 or an array of sb2.
FROGGS nowadays: sub foo(int16 $thing is rw) ... { * }
ahh 20:01
then: sub foo(Pointer) ... { * }; my Pointer $a .= new; foo($a); say nativecast(int16, $a)
and you do the nativecast conditionally 20:02
terahzer I am reading the docu,entation of perl 6 on wikibooks; do you think it is usefull for somebody approaching the language to read the Apocalypses, Exeseges and Synopses?
abraxxa i've defined it as CArray[sb2]
retupmoca nine_: you may want 'Blob' in your p5_buf_to_sv signature, since blob8 ~~ Buf is false 20:03
FROGGS well, define it as Pointer instead, and then do the cast... I believe that should work
and if you want to have an int16*, you'd do Pointer[int16] 20:04
FROGGS hmmmm 20:04
abraxxa constant sb2 = int16;
i don't need array support for now
FROGGS but then I dunno how to set the value it points to...
abraxxa not sure if I ever will
FROGGS ahh, we need to support malloc directly to be able to pass Pointer[int16] to a C function 20:06
abraxxa: no, what I try describe will help soon 20:07
abraxxa FROGGS: is there already something better than CArray[Type] to specify a pointer to something?
FROGGS abraxxa: that is what I talk about the last ten lines of mine 20:08
abraxxa is Pointer new?
FROGGS typed pointers are new 20:09
nine_ terahzer: probably doc.perl6.org is a better entry point
abraxxa so i can replace CArray with Pointer, great
FROGGS before that we had a not very useful OpaquePointer type
abraxxa: for some things, yes
abraxxa my OCIBindByName signature is wrong, I had the types instead of pointers to three of the params
dalek line-Perl5: b8cc190 | (Stefan Seifert)++ | lib/Inline/Perl5.pm6:
Use a more appropriate type in p5_buf_to_sv signature

Thanks to retupmoca++
  < retupmoca> nine_: you may want 'Blob' in your p5_buf_to_sv signature, since blob8 ~~ Buf is false
20:10
abraxxa FROGGS: i remember you told me that i don't need := any more, is that correct 20:11
dalek c: 9292957 | moritz++ | lib/Language/regexes.pod:
regexes: elaborate on capture counting
FROGGS abraxxa: if you work with CArrays and $-sigilled variables you can just use assignment, yes 20:12
abraxxa and with Pointers?
FROGGS you never needed binding there 20:13
you only ever needed binding in: my @foo := CArray.new
abraxxa so instead of my $curelep := Pointer[ub4]; $curelep = 0; I can write my Pointer[ub4] $curelep = 0; ?
FROGGS m: use NativeCall; my Pointer[int32] $curelep = 0; 20:14
abraxxa the stacktrace of 'Unhandled exception: Cannot unbox a type object' is not very helpful as it doesn't point to a line in my code
camelia rakudo-moar b9d6d3: OUTPUT«Type check failed in assignment to '$curelep'; expected 'Pointer' but got 'Int'␤ in block <unit> at /tmp/geyxtas5ye:1␤␤»
FROGGS no
FROGGS what you try here would require to malloc an int*, and that's not there yet 20:15
abraxxa so still @curelep instead of $curelep and assign to @curelep[0] ?
FROGGS either that, or: sub foo(ub4 $ is rw) ... { * } 20:16
and then just pass a variable containing your numeric value along
abraxxa the 'is rw' makes the difference?
FROGGS yes
abraxxa ah!
FROGGS 'is rw' implies pointer
moritz ooh 20:17
FROGGS (to the C half of it)
moritz I didn't know that
FROGGS it is new
FROGGS since nativeref branch merge 20:17
I hope it already is in 2015.02...
but if not, it will be in 2015.03 tomorrow anyway
abraxxa is there something special for an out pointer too? 20:19
instead of is rw?
like is w?
FROGGS out pointer?
like, returning a pointer from C?
abraxxa yes
i can't find out from where this Unhandled exception: Cannot unbox a type object comes from 20:20
FROGGS then you want 'returns Pointer[ub4]', and then you can do: say $ptr.deref
nine_ FROGGS: can you assign to $ptr.deref?
FROGGS nine_: no
abraxxa all the OCI functions return sword s but also lots of return by pointer
FROGGS nine_: we need to implement .malloc or so for doing something similar 20:21
'Cannot unbox a type object comes from' usually means that you forgot to call .new
nine_ FROGGS: darn...that would have allowed me to get rid of nativecast(CArray[OpaquePointer], $err)[0] = self.p6_to_p5($_);
FROGGS err, 'Cannot unbox a type object'
abraxxa is there a difference between my $bindpp = OCIBind; and my OCIBind $bindpp; ? 20:22
constant OCIBind = OpaquePointer;
FROGGS abraxxa: there is no difference in my $bindpp = OCIBind; and my OCIBind $bindpp 20:23
moritz well
abraxxa great
moritz the latter is also a type constraint
FROGGS well, besides that :o)
moritz the former just an initilization
abraxxa moritz: right, but thats ok
FROGGS abraxxa: but you probably want to call .new there... like you have to do with CArrays
abraxxa oh look, it works!
HAHA
FROGGS O.o
\o/ 20:24
nine_: I'll make it easy to assign to typed pointers... but not until tomorrow :o)
abraxxa at least the cannot unbox type error is gone
now the bind fails which didn't before
moritz you cannot unbox this abraxxa
abraxxa FROGGS: how can i check if my 2015.02 supports is rw?
moritz m: sub f(int $x is rw) { ++$x }; say f my int $a = 42 20:26
camelia rakudo-moar b9d6d3: OUTPUT«Expected a native int argument for '$x'␤ in sub f at /tmp/bEwFe5Rqi9:1␤ in block <unit> at /tmp/bEwFe5Rqi9:1␤␤»
moritz m: sub f(int $x is rw) { ++$x }; my int $a = 42; f $a; say $a
camelia rakudo-moar b9d6d3: OUTPUT«43␤»
moritz star-m: sub f(int $x is rw) { ++$x }; my int $a = 42; f $a; say $a
camelia star-m 2015.02: OUTPUT«Cannot assign to an immutable value␤ in sub prefix:<++> at src/gen/m-CORE.setting:5570␤ in sub f at /tmp/RsnrRUdbpS:1␤ in block <unit> at /tmp/RsnrRUdbpS:1␤␤»
moritz seems 2015.02 is too old :-) 20:27
abraxxa for NativeCall that is
FROGGS yes, the Changelog also indicates that 2015.02 is too old
abraxxa how do i specify is rw and is encoded for a param? 20:28
then i'll go home now and continue with 2015.03
it compiles though
FROGGS m: use NativeCall; sub foo(int32 is rw) is native { * } 20:29
camelia ( no output )
FROGGS m: use NativeCall; sub foo(int32 is rw is encoded('utf8')) is native { * }
camelia ( no output )
FROGGS abraxxa: just like this ^^
abraxxa FROGGS: thanks
FROGGS abraxxa: bitte :o) 20:32
jnthn evening, #perl6 20:33
FROGGS hi jnthn
nwc10 heresy!
abraxxa hi and bye jnthn!
abraxxa FROGGS: winning! 20:34
jnthn Release day tomorrow, yes? :)
FROGGS yes
:o)
jnthn Then given I'll be being grilled tomorrow daytime too, I should probably cut the release tonight :) 20:35
uh, the *MoarVM* release.
FROGGS jnthn++ 20:36
abraxxa FROGGS: strings work, numbers fail
FROGGS weird
jnthn So...there are numerous bugs? :) 20:37
abraxxa nah, i just need to bind them differently 20:38
not encode them to utf8
how do i get the size of a passed int? 20:39
FROGGS m: use NativeCall; say nativesizeof(int32) 20:40
camelia rakudo-moar b9d6d3: OUTPUT«4␤»
dalek Heuristic branch merge: pushed 31 commits to perl6-examples by paultcochrane 20:41
[Coke] (approaching the language) synopses maybe. Everything else is a historical document and will probably confuse.
jnthn: don't forget, there's a new step in the release.
jnthn [Coke]: In...the MoarVM release?
FROGGS signing it? 20:42
[Coke] jnthn: ayup!
jnthn [Coke]++ even put it in the release guide :)
[Coke] I will consider this notice. :) 20:43
abraxxa how do i change if $v ~~ Int { to also match Rat? 20:46
FROGGS match against Numeric?
colomon Real would be more appropriate. But that’s more than just Int and Rat 20:47
Ulti if $v ~~ Int|Rat {} assuming you really do want to do what you're asking :3 20:48
abraxxa FROGGS: never mind, i have to bind it with a different type anyway
ORA-03115: unsupported network datatype or representation 20:49
nice, starts to work
terahzer Well I'm reqding them who care if they are not updated 20:50
abraxxa i might have to tell it that i don't pass utf8 encoded data to it
abraxxa so, i'm really going now 20:52
good luck with the new release!
FROGGS abraxxa: o/
[Coke] abraxxa++ #oracle support.
abraxxa hopefully!
terahzer what is the sintax for array literals in perl6 when in perl5 would be (0) x 10 for instance? 20:53
rurban Got a design question. Do you have the is hidden_from_backtrace trait already implemented? In perl5 context it would make much more sense to support both variants positive and negative. Some XSUBs need a flag to be added to backtraces, like Carp and XSLoader::load and some other functions need it negative to be hidden from backtraces. So implement it as :backtrace for xsubpp and the :-backtrace sub attribute which closely res 20:54
so maybe you want to support a negative trait, like "is !backtrace" 20:55
FROGGS m: sub foo is hidden_from_backtrace { } 20:56
camelia ( no output )
FROGGS is implemented, aye
rurban and negative in some form as perl5 :-attr?
FROGGS rurban: !backtrace look almost like a private method
[Coke] m: sub foo is notimplemented {}
camelia rakudo-moar b9d6d3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/fmHTMfK5up␤Can't use unknown trait 'is notimplemented' in a sub declaration.␤at /tmp/fmHTMfK5up:1␤------> ␤ expecting any of:␤ rw parcel hidden-from-backtrace hidden-from-USAGE␤ pur…»
[Coke] (making sure you didn't cheat. ;) 20:57
FROGGS rurban: the native form '!backtrace' would only make sense if we had a positive form I guess 20:57
[Coke] m: sub foo is hidden_from_backtrace { die "eek" } ;sub bar() { foo } ; bar
camelia rakudo-moar b9d6d3: OUTPUT«eek␤ in sub bar at /tmp/pImUxDwHYa:1␤ in block <unit> at /tmp/pImUxDwHYa:1␤␤»
terahzer How would you do to do @list = (0) x 5; in perl 6 ?
FROGGS terahzer: operator xx
m: say 1 xx 5
camelia rakudo-moar b9d6d3: OUTPUT«1 1 1 1 1␤» 20:58
rurban m: sub foo is not rw
camelia rakudo-moar b9d6d3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/vurcl5LsVb␤Missing block␤at /tmp/vurcl5LsVb:1␤------> 3sub foo is not7⏏5 rw␤ expecting any of:␤ new name to be defined␤»
terahzer cool
FROGGS rurban: there is no negation form of traits
rurban: because you apply a trait... you can't un-apply it
rurban: like you cannot uncall a subroutine
a trait is a very generic thing
terahzer m: @l = (1,2,3,4); @l »+=« 1 xx 4; say @l;
camelia rakudo-moar b9d6d3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/swMn8Wo3_C␤Variable '@l' is not declared␤at /tmp/swMn8Wo3_C:1␤------> 3@l7⏏5 = (1,2,3,4); @l »+=« 1 xx 4; say @l;␤ expecting any of:␤ postfix␤»
rurban yes, I thought just for shorter names 20:59
FROGGS it is not just a hash like annotation
terahzer m: my @l = (1,2,3,4); @l »+=« 1 xx 4; say @l;
camelia rakudo-moar b9d6d3: OUTPUT«2 3 4 5␤»
terahzer this thing »+=« is difficult to type on most keyboard, how do you do that ?
FROGGS rurban: like the 'is inline("C")' trait wraps a routine and compiles+runs C code...
you cannot un-apply that 21:00
rurban Do you have subs which do not record their calling context, like perl5 xsubs?
FROGGS rurban: not that I know offhand
rurban ok. So I will have a minor perl6 deviation on this one
It's just syntax, the concept is the same 21:01
sub inner is hidden-from-backtrace { die "OH NOEZ" }; 21:03
looked pretty lispy and unperly to me :)
skids terahzer: First you make sure you have a compose key mapped. Then compose > > .
vendethiel skids: EIMONWINDOWS 21:04
terahzer: >>[+=]<<
(while the [] are not *necessary*, I certainly think they help reading)
FROGGS I've got «» on alt-gr + x/y 21:05
vendethiel FROGGS: how do you do that? :P
FROGGS vendethiel: using ubuntu I guess :o)
vendethiel ha! 21:06
jnthn m: my @l = (1,2,3,4); @l>>++; say @l
camelia rakudo-moar b9d6d3: OUTPUT«2 3 4 5␤»
FROGGS m: my @l = (1,2,3,4); @l >>+=<< 1 xx 4; say @l; # because it is hard to type we have texas style ops :o)
camelia rakudo-moar b9d6d3: OUTPUT«2 3 4 5␤»
[Coke] on mac it's alt-\ and alt-| to get «» 21:07
Ulti lol who is @KruthikDhillon on Twitter? they appear to only tweet trollish comments about #perl6 and weird gushing messages about "Elavan" 21:08
exclusively just those two topics x___X
[Coke] your code editor may also have a way to insert them, even if your OS is unhelpful. but most OSes have some way for you to generate non-ascii.
terahzer the original idea was to allowing @l = (1,2,3,4); @l >>+=<< 1 ; say @l; (list scalar operation) what was ambiguous about that? 21:09
jnthn terahzer: You get that with >>+=>> 21:10
terahzer Good, why was it deemed necessary to discriminate?
jnthn Point the things outwards to get DWIM-y behavior.
FROGGS discriminate? 21:12
jnthn I think that was decided before I was around here. At a guess, so you have a way to indicate you expect the same size so you don't get caught out by the auto-extending behavior.
FROGGS ahh
terahzer by the way direction of arrows is intuitive 21:13
jnthn It may be that the one form optimizes (e.g. to SIMD stuff) easier.
terahzer let you do things like @l = 2 <<+<< @l
jnthn Though we ain't do that just yet :)
terahzer jnthn by my experience SIMD don't optimizes for anything in this simple cases 21:14
even in C
retupmoca vendethiel: github.com/SamHocevar/wincompose 21:15
dalek kudo/cpp: 051c602 | lizmat++ | src/core/native_array.pm:
Make my int @a = Range about 1000x faster
rakudo/cpp: 0f780b2 | timotimo++ | src/Perl6/Optimizer.nqp:
rakudo/cpp: BlockVarOptimizer's $!poisoned can be a native int
lizmat de-diverged 21:31
if you liked Divergent (1), you're going to like this one as well 21:32
if you're into special effects, you're also in for a treat
it made a lot more sense to me than Jupiter Ascending, for that matter :-)
japhb lizmat: What movie did you see? 21:33
lizmat Divergent 2 21:34
aka insurgence 3D, I believe
nine_ FROGGS++ # working on NativeCall
japhb Ah, OK, I guessed as much, but didn't know it existed yet.
lizmat it came out about a week ago here
japhb (everyone-who-works-on-NativeCall)».++
terahzer I don`t understand; to access an array element in p6 you do @l[0] ; but isn't it a scalar?
lizmat
.oO( it's nice to live within walking distance of a very nice cinema )
21:35
japhb Just saw the original last week. Must be why it came up for streaming (to prime the audience).
lizmat m: my @a = ^10; say @a[5].WHAT 21:35
camelia rakudo-moar b9d6d3: OUTPUT«(Int)␤»
japhb terahzer: In Perl 6, sigils don't change when you access an element of a collection, unlike in Perl 5. 21:36
lizmat m: my @a = ^10; say @a[5,6].WHAT
camelia rakudo-moar b9d6d3: OUTPUT«(Parcel)␤»
japhb terahzer: It regularizes things with respect to what lizmat++ just showed.
lizmat m: my @a = ^10; say @a[5].VAR.WHAT
camelia rakudo-moar b9d6d3: OUTPUT«(Scalar)␤» 21:37
lizmat m: my @a = ^10; say @a[5,6][0].VAR.WHAT
camelia rakudo-moar b9d6d3: OUTPUT«(Scalar)␤»
terahzer ok 21:39
lizmat FROGGS: re irclog.perlgeek.de/perl6/2015-03-18#i_10302099 it is called hidden-from-backtrace now :-) 21:46
the other one still works, though :-)
terahzer more than SIMD on hyperoperators, I think that multithreads in the map function could be an huge performance boost
japhb terahzer: Do you know about the GLR? 21:47
FROGGS lizmat: yeah, I almost guess that when typing it :o) 21:47
terahzer no, googling now
japhb terahzer: It's the Great List Refactor -- we're rewriting how Rakudo (and for the user-visible portions, Perl 6) handles slinging lists around, which deeply affects how map and friends work -- and critically, how they perform. 21:48
FROGGS terahzer: pmthium.com/2014/10/apw2014/ 21:49
japhb I think the GLR design meeting at APW was probably the most productive meeting I've been in where I was simultaneously frustrated out of my mind. 21:50
hoelzro I did a fair amount of work last night to remove linenoise/readline from MoarVM, and I broke out the functionality into a Linenoise module 21:52
japhb hoelzro++ 21:53
hoelzro we could direct users to install Linenoise via panda, or we could bundle Linenoise with rakudo; what would be the preferred approach?
FROGGS I guess we want to continue shipping a REPL 21:54
japhb Though, does that mean that nqp no longer has a REPL?
We definitely want a REPL for Rakudo.
hoelzro there's still a REPL
japhb (Standard, I mean.)
hoelzro it just uses Linenoise.pm rather than nqp::readlineint_fh for reading lines 21:55
falling back to nqp::readline if the former isn't available
the cool thing is that the REPL in my fork now has tab completion
japhb Oooh
hoelzro which I think would have been too hard to do with readline at the VM level 21:56
(well, we would've needed a nqp::readlineint_completion_cb op, which seems like overkill)
FROGGS hoelzro: and the REPL also works for nqp-m?
hoelzro checks
yup
although it doesn't have history like it used to =/ 21:57
so that's a drawback
lizmat I would think Linenoise.pm would be a nice addition to the core 22:04
hoelzro I'm just not sure if it's core or star worthy' 22:05
jnthn Well, doesn't the REPL depend on it?
Or, or won't the REPL depend on it...
hoelzro it tries to load it; if it can't, it falls back to nqp::readline 22:06
jnthn *nod*
Do we have a Readline.pm that can be tried also? :)
hoelzro jnthn: I would like to have the REPL do that too
jnthn *nod*
jnthn hoelzro++ 22:07
hoelzro I'll push up the bits and pieces I have after work tonight
jnthn To a branch, yes?
hoelzro the completion is extremely primitive and kludgey
oh my yes =)
I'm not confident enough in my Moar/NQP/Rakudo fu to push anything non-trivial to nom|master 22:08
the current work (which removes linenoise) is here:
github.com/rakudo/rakudo/tree/no-linenoise
github.com/perl6/nqp/tree/no-readlineint 22:09
FROGGS hoelzro++
hoelzro github.com/MoarVM/MoarVM/tree/no-moar-linenoise
and here's Linenoise.pm: github.com/hoelzro/p6-linenoise
jnthn Well, also we don't want to land such a thing this side of the relese :) 22:09
*release
hoelzro >:) 22:10
I wouldn't expect that; it was (I think smls?) comment that inspired me
if it's in 2015.04, that's cool
the completion work is sitting uncommitted at home; it will need a fair amount of work
also, p6-linenoise doesn't bundle linenoise.so, and I needed to use a patched version of linenoise to re-enable blocking on STDIN 22:11
eli-se I like hash tables. 22:14
jnthn
.oO( ...and I can not lie )
22:15
hoelzro: Hm, that sounds like something we should find some other way to fix.
hoelzro jnthn: agreed
itz completion! yay 22:19
hoelzro ah, it was you, itz, who brought it up yesterday 22:20
I just have a bad memory =)
jnthn Time for some rest, now the Moar release is cut :) 22:21
'night, #perl6
hoelzro night jnthn 22:22
lizmat also takes a long nap