»ö« 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.
dalek p/moarboot: 23985aa | jnthn++ | src/NQP/ (2 files):
Add :moar options to QAST::VM nodes.
00:01
p/moarboot: 6d81e7b | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
Get code-gen fix from cross-comp.
p/moarboot: 7587998 | jnthn++ | src/vm/moar/stage0/ (9 files):
Update stage0 for code-gen fix.
p/moarboot: 392e5b9 | jnthn++ | src/vm/moar/QAST/QASTCompilerMAST.nqp:
Register QAST -> MAST compiler.
00:02
p/moarboot: 8c4880f | jnthn++ | src/NQP/ (2 files):
Merge branch 'master' into moarboot
dwarring timotimo: I've updated my gist from yesterday to be fairer to perl6 - gist.github.com/dwarring/6847212
old line was creating a Rat: my $m := 4.0*$n - 1.0;
changed to a Num: $m := (4*$n - 1).Num 00:03
still slower, but not so dramatic
jnthn So we learn that Rat ain't so fast?
TimToady summing harmonic serieseses is probably a worst case for Rats 00:04
Rats are much better with correlated denomoniators, not anti-correlated 00:06
good grief, my spellerer is brokeken
lue wonders if a Tar would be optimized for anti-correlated denominators 00:10
dwarring best optmisation tool is sometimes this - en.wikipedia.org/wiki/Keisaku
00:12 Psyche^_ joined, Psyche^ left 00:18 cognominal joined
dalek p/moarboot: fec7ea7 | jnthn++ | tools/build/Makefile-Moar.in:
Add stage2 rules to MoarVM Makefile.
00:21
00:32 ivanshmakov left 00:33 ivanshmakov joined
dalek p/moarboot: 31ba5a5 | jnthn++ | tools/build/Makefile-Moar.in:
Copy stage2 to . and add test targets.

Can run "make test" in the NQP repo now on MoarVM, and most things pass. t/qregex hangs; we weren't attempting it in nqp-cc, though. No regressions compared to what make selftest passes.
00:38
00:39 dayangkun joined
jnthn 'night, #perl6 00:52
TimToady o/ 00:55
00:58 araujo left 01:01 araujo joined 01:04 ssutch left 01:08 ssutch joined 01:31 berekuk left
TimToady used an interesting new idiom in revising rosettacode.org/wiki/Comma_quibbling#Perl_6 01:31
<{ }>.join: ...
not only avoids using \{ \}, but also automatically stringifies the argment to join 01:33
01:36 berekuk joined
colomon ??? 01:38
that code is making me feel stupid. 01:39
TimToady could take that two different ways :) 01:40
colomon you might have to take it two different ways. 01:41
TimToady there's no one ways about it :)
colomon oh, I see how it works. 01:42
I think that might be TimToady++ for cleverness and TimToady-- for abuse of his own language
TimToady on average, I feel pretty average :)
colomon Huh. 01:46
It seems like there should be a better idiom that <{ }>.join: for that, but I'm not sure that I'm seeing it.
TimToady I just thought this was an improvement over "\{$_\}" given ... 01:47
but it's arguable :)
TimToady is prejudiced against backslashes
TimToady is also prejudiced against infix:<~> 01:48
colomon yeah, the straightforward approach is infix:<~> 01:49
which certainly is kind of ugly -- I mean, '{' ~ -- but it's also very clear 01:50
TimToady but it violates endweight to put something little like '}' at the end
and kinda hides the symmetry of { and }
unless you spread it to three lines 01:51
which is also a kind of ugly
I see <{ }>.join: as kinda like the '{' ~ '}' <innards> matcher in regex 01:52
colomon I agree the idea is nice, just think putting the all the interesting string content in the joiner is backwards. 01:53
I'm sitting here trying to think of a better method for it.
TimToady join don't care :)
it violates your figure/ground sense, is the thing 01:54
colomon right
I feel like I want some sort of "wrap" method instead
TimToady one is used to thinking of the innards as the constant
but, in fact, joining is exactly what it is doing 01:55
colomon start thinking like that, and the next thing you'll be allowing Code arguments for the joiner and passing them the surrounding two strings…. 01:56
TimToady I think one would probably switch to reduce at that point 01:57
[~] is just a funny join ''
but it doesn't swap the 2nd and 3rd args like join, so is slightly more obscure about the wrapping 01:58
02:00 colomon left 02:02 colomon joined
colomon [~] is just an elegant join '' 02:02
colomon wonders why the hotel internet wants to log him out once each evening.
TimToady has seen internets that behave like that
it's a mystery 02:03
geekosaur the internet here drops external connections and requires (transparent, oddly) reauthentication every day, fwiw 02:04
colomon some some reason I lost connectivity with gmail in the process -- I can get to other sites, but not it. :\ 02:06
geekosaur chrome? give it a bit or go to net-internals:, DNS tab, and flush 02:08
colomon ah well, guess I should $work.
02:15 rurban joined
rurban See cowlark.com/luje/doc/stable/doc/index.wiki for a better jvm-like backend (and then eventually embrace p2) 02:16
colomon geekosaur++ # "give it a bit" worked 02:22
geekosaur I gave you the wrong internals thing anyway. chrome://net-internals 02:23
sorry
02:25 prevost joined 02:26 eternaleye left
geekosaur also frefox has something similar I think but I have not touched firefox in years and don't intend to now 02:26
02:30 berekuk left
lue TimToady++ # aesthetically pleasing tricks 02:39
02:41 eternaleye joined
lue wonders why the luje page talks about outperforming Sun's Hotspot and then giving benchmarks using IcedTea's Hotspot 02:45
02:56 logie joined 02:59 Guest83275 left 03:00 araujo left, araujo joined, prevost left 03:16 robinsmidsrod left 03:18 robinsmidsrod joined 03:57 preflex_ joined, ChanServ sets mode: +v preflex_, preflex left, preflex_ is now known as preflex 04:18 japhb_ left 04:20 kay_ joined
ivanshmakov jnthn, perigrin: The problem is that continuations is something I’m familiar with. And as for the (gather, take) pair — I wonder if it’s possible to implement the McCarthy’s ‘amb’ operator on top of them? (Which seems rather essential for Prolog-style programming.) www-formal.stanford.edu/jmc/basis.html 04:49
04:49 btyler left
ivanshmakov What’s about Perl6 libraries, BTW? Are there any decent repositories to scan through? 04:50
Timbus modules.perl6.org/ 04:52
thats about it
BenGoldberg McCarthy's amb operator could probably be defined in terms of perl6's any() operator 04:59
TimToady see rosettacode.org/wiki/Amb#Perl_6 for the current state of the art 05:08
if it turns out that rakudo ends up supporting continuations on all its backends as a matter of course, then we might decide to make it user-visible without chicanery
05:12 xenoterracide_ left
ivanshmakov ACK, thanks! 05:18
TimToady certainly logic programming is our weak paradigm at the moment 05:19
05:23 xenoterracide_ joined 05:31 BenGoldberg left 05:33 dwarring left 05:39 scottp joined
moritz \o 05:48
05:48 SamuraiJack__ joined 05:49 xenoterracide_ left
diakopter moritz: howdy :D 05:53
05:53 hummeleB1 joined 05:54 berekuk joined 05:57 rurban left 05:58 berekuk left 05:59 berekuk joined 06:01 logie left 06:13 logie joined 06:18 logie left 06:22 darutoko joined 06:26 [Sno] left
masak re FAQ and answering the same questions all the time: maybe it's time to have an FAQ-bot. 06:28
(good mor'n #perl6)
06:28 rurban joined
masak I would have been arguing against the notion of an FAQ-bot on #perl6 just a year or two ago. but we have grown, and time has passed. 06:28
maybe we could even dogfood it ;) 06:29
the #git people have a nice faqbot. 06:31
it replies to variants of 'hi' from newcomers.
06:31 fhelmberger joined
masak and then all it does is reply with a long line of good reply keyed on things like '!revert' 06:32
either alone on a line, or as part of a line.
looks fairly safe against false positives.
masak will ponder a gist with 10-ish Qs and As 06:33
06:33 kaleem joined 06:36 rurban left
masak oh! the way to compose Qs and As would be to go back to many known interactions with out-of-chamber visitors, see what they asked, and compose good answers to them. 06:43
where "good" needs to be defined not just as "makes us happy/proud", but "actually feels like an answer to the questioner/actually helps somehow". 06:44
arnsholt I think #haskell has the correct A to the "can Perl 6" Q, BTW 06:54
moritz masak: faq.perl6.org is based on questions that newcomers actually ask (or asked) a lot in here 06:58
r: say 435958568325940791799951965387214406385470910265220196318705482144524085345275999740244625255428455944579 * 562545761726884103756277007304447481743876944007510545104946851094548396577479473472146228550799322939273 # RSA-210 07:11
camelia rakudo 994761: OUTPUT«245246644900278211976517663573088018467026787678332759743414451715061600830038587216952208399332071549103626827191679864079776723243005600592035631246561218465817904100131859299619933817012149335034875870551067␤»
moritz www.mersenneforum.org/showpost.php?p=354259 for reference
dalek ecs: 251282d | larry++ | S04-control.pod:
Loops in a statementlist are forced to be eager

  Loops used at the top-level of a block where multiple semicolon-separated
statements are expected now are always forced to be eagerly evaluated, even if they return a value.
  Loops used where a single statement is parsed retain lazy semantics.
For instance, inside brackets, or after a blorst of the st persuasion. Some of the list comprehensions we've written may need parens around them, or "lazy" in front of them, to retain their current lazy semantics.
07:15
07:15 kivutar joined 07:17 FROGGS joined
masak moritz: ok, I will start there, then. 07:22
moritz: ok, faq.perl6.org and I have overlapping but non-identical goals. 07:24
lizmat good *, #perl6!
masak moritz: and the overlap is small, but could maybe be made bigger.
lizmat, good *!
moritz masak: agreed 07:27
tadzik hmm, is that diakopter
's talk? o.twimg.com/2/proxy.jpg?t=HBg_aHR0...hl3M5yT0EI
argh, dat url 07:28
07:33 rurban joined
dalek rlito: 8f5d7d4 | (Flavio S. Glock)++ | misc/pretty_print.pl:
Perlito5 - cleanup
07:34
07:35 daxim joined 07:37 salv0 left, rurban left
masak tadzik: that's the title of the talk, at least. 07:38
07:38 salv0 joined 07:41 dmol joined
lizmat devblog.xing.com/everything-else/ya...pressions/ (Perl impressions after YAPC::EU 2013) 07:44
07:47 [Sno] joined
tadzik yep, hence my question 07:49
masak "Larry Wall’s vision presented in his keynote at YAPC::EU 2013 appeared to me as very clear and consistent. I find all the recent discussions about changing versioning schemes, jumping over Perl 6 directly to Perl 7 without resolving any design flaws of Perl 5 solves absolutely nothing and should be stopped now. And I mean it." 07:53
that feeling, of being part of framing an issue, and succeeding. 07:54
\o/
in other news: on a first reading, I am weakly positive towards github.com/perl6/specs/commit/251282d9f8 -- TimToady++ 07:57
(still reserve the right to be characteristically bitter and vitriolic if it doesn't work out in practice, though) :P 07:58
(but it does look good)
TimToady it fits in with the notion that statement-ending ; is the primary marker of the side-effect monad 08:01
masak yeah, I noticed.
twitter.com/audreyt/status/386052241209032705 # :) 08:02
moritz it reflects pretty well what sorear++ already did in niecza, afaict 08:04
TimToady++
masak TimToady: I think it's commonly called "sequence monad". at least in Scala and Clojure. 08:06
08:12 FROGGS left 08:14 FROGGS joined 08:19 sqirrel joined
dalek kudo/nom: 70f2ae0 | (Elizabeth Mattijsen)++ | src/core/Deprecations.pm:
First version of deprecation message handler code (not used yet)
08:19
08:24 berekuk left 08:30 kivutar left 08:31 preflex left 08:33 preflex joined, ChanServ sets mode: +v preflex, rurban joined 08:38 rurban left
jnthn 251282d9f8 seems reasonable 08:39
yoleaux 07:34Z <FROGGS> jnthn: \o/
jnthn TimToady++
08:43 dakkar joined 08:46 iSlug joined 09:16 grondilu joined 09:17 wsri left 09:23 donaldh joined, wsri joined
nwc10 masak: presumably one approach would be to convert the IRC logger bot to Perl 6, with the plan being to have re-usable IRC bot code which then is a start on a FAQ-bot 09:24
09:25 zakharyas joined
masak hmmm 09:27
sounds like a bit of a detour to me. 09:28
I mean, I like the re-usable part.
nwc10 OK, then start with the FAQ bot, and then refactor the IRC logger to use its code :-)
masak :)
I have a feeling the challenges with either of those bots will be to keep it running reliably, and not hog resources. 09:31
but... I guess that's kind of the point of the exercise.
nwc10 "long running bot" isn't going to worry about startup time, so sounds like a good fit for the JVM 09:32
jnthn Aye 09:33
JVM has sockets, is stable enough to run for a long time, etc. 09:34
09:34 rurban joined
FROGGS and it has channels! like irc 09:36
nwc10 oooh, interesting. concurrency
09:36 cognominal left, cognominal joined
jnthn oops, I forgot to submit my APW talks at the weekend... 09:37
To my credit, I did get NQP bootstrapped on Moar, though :P
FROGGS yes, you did :o)
donaldh jnthn++ 09:38
FROGGS what is APW btw?
nwc10 jnthn: yes, domm is keen for more talks
FROGGS: act.useperl.at/apw2013/
FROGGS ahh, austria
09:39 rurban left
nwc10 r: print lines 09:39
camelia rakudo 70f2ae: OUTPUT«Land der Berge, Land am Strome,Land der Äcker, Land der Dome,Land der Hämmer, zukunftsreich!Heimat bist du großer Söhne,Volk, begnadet für das Schöne,vielgerühmtes Österreich,vielgerühmtes Österreich!Heiß umfehdet, wild umstrittenliegst dem Erdteil d…»
grondilu suggested a "2D morphing" task on RC. Mentioning it in case you'd be interested: rosettacode.org/wiki/Rosetta_Code:V...D_morphing 09:52
nwc10 jnthn: I forget - at what point in the history of the JVM bootstrapping did the custom repository go away? Once NQP-on-JVM could build Rakudo? 10:00
ie, right now there's an NQP and a Parrot checked out inside the MoarVM checkout. When (and how) does that change? 10:01
jnthn nwc10: nqp-cc will go away, and MoarVM repo will just contain the VM itself. 10:02
nwc10: It'll change once we're comfortable with the bootstrap and decide to close the loop.
nwc10: At the point we do that we *have* to be backwards compatible on bytecode at least one version.
(And yes, if you break back-compat you most likely immediately break the bootstrap, which is a rather nice canary-in-the-mine thing...) 10:03
s/break the bootstrap/break the ability to build NQP/
10:09 zakharyas left 10:10 iSlug left
dalek rlito: 6f8c233 | (Flavio S. Glock)++ | / (5 files):
Perlito5 - perl5 - labels, continue blocks
10:19
10:34 rurban joined 10:39 denisboyun joined 10:40 rurban left 10:41 [particle]1 joined 10:43 [particle] left
grondilu my thoughts on 'loop {}': perlmonks.org/?node_id=1057242 10:50
10:53 sqirrel left
dalek rlito: f88464c | (Flavio S. Glock)++ | / (3 files):
Perlito5 - perl6 - Perl6::PrettyPrinter stub
11:03
11:05 sqirrel joined 11:28 berekuk joined 11:34 denisboyun left 11:37 rurban joined 11:41 rurban left 11:46 denis_boyun joined
arnsholt nwc10: An additional challenge with starting with the logger bot on JVM is the lack of NativeCall 11:48
Although I guess you could circumvent that with the Java interop and JDBC
nwc10 NativeCall has to arrive soon. (I believe that it's the last blocker for Star) 11:49
and I think that Rakudo would do well to (also) offer JDBC
arnsholt I'm hoping NativeCall arrives soon on JVM too 11:50
11:50 denis_boyun left
arnsholt But I should probably do a bit more than hope, since I'm the one supposed to be implementing it =) 11:50
nwc10 As best I can tell, if you use Perl 5's DBI interface you can talk through to JDBC: metacpan.org/release/DBD-JDBC 11:51
and ODBC: metacpan.org/release/DBD-ODBC
arnsholt Neat! 11:52
jnthn arnsholt: Now that NQP bootstrap on Moar is largely taken care of, I'll be able to give some tuits to NativeCall on JVM also :)
nwc10 so this means that Moar beats JavaScript to be the 3rd platform for NQP?
moritz not yet.
arnsholt jnthn: That would be much appreciated
nwc10 what is the Perl 6 equivalent of DBI? (ie database abstraction) 11:53
arnsholt The biggest blocker is the whole box_target thing
FROGGS it needs to pass the qregex tests...
nwc10 (something I think that even Python doesn't do)
FROGGS DBIish?
arnsholt Once box_target works, I think the remaining NativeCall stuff should be relatively straightforward 11:54
moritz nwc10: DBIish 11:55
nwc10 OK, so a DBIish::JDBC would seem useful
moritz aye
arnsholt DBIish is a bit of a placeholder though 11:56
moritz yes, it's a kind of minimal thing that could possibly work
FROGGS everythings starts small :o) 11:57
12:00 FROGGS left 12:01 FROGGS joined 12:12 kivutar joined 12:15 FROGGS left 12:19 pdurbin left 12:22 daxim_ joined, daxim left, dayangkun left, kivutar left 12:29 skids left 12:30 dmol left 12:32 FROGGS joined 12:34 dayangkun joined 12:41 dmol joined 12:48 ggoebel3 left
dalek rl6-roast-data: c28a35a | coke++ | / (5 files):
today (automated commit)
12:49
rl6-roast-data: 98f7450 | coke++ | perl6_pass_rates.csv:
fix dates of previous run, ended too late
moritz .to lizmat I've bisect that Mu.[0] memory explosion to commit f51a00baed774e4a2fd405c1928bb84f62a1a888 12:52
yoleaux moritz: I'll pass your message to lizmat.
lizmat moritz: to be honest, I would like to get rid of that commit as well 12:53
yoleaux 12:52Z <moritz> lizmat: I've bisect that Mu.[0] memory explosion to commit f51a00baed774e4a2fd405c1928bb84f62a1a888
moritz lizmat: understandable :-)
r: say $default 12:54
lizmat the only problem is that rakudo doesn't consider a candidate without named parameters narrower than a candidate with named *optional* parameters
camelia rakudo 70f2ae: OUTPUT«␤»
moritz I see
12:54 daxim__ joined 12:55 daxim_ left
moritz and thus we need a candidate for each (delete/exists/kv/p/k/v) adverb where it's mandatory 12:55
hm, maybe the 'is default' trait could help
lizmat yup :-(
on the candidate without named parameters ?
moritz yes 12:56
lizmat ok, I'll try that in a mo
just about to get is DEPRECATED working the way *I* want
:-)
moritz :-)
moritz just hopes that applying the 'is default' trait works in the setting 12:57
lizmat probably not, but it's worth a try :-)
moritz if not, one has to mix in a method default() { True } into the Sub object at BEGIN time 12:58
moritz hopes that infix:<does> works that early in the setting :-)
if not, one has to...
FROGGS self.HOW.mixin(self, ...) ?
moritz yes 12:59
oh, erm, but, into that one candidate, not into the proto
12:59 fridim_ left
FROGGS thought he was wrong just after pressing <ENTER> 12:59
moritz so one has to manually get hold of ther right candidate and *ME RUNS AWAY SCREAMING* 13:00
13:00 kaleem left
FROGGS *g* 13:00
moritz: I will hold it down you get all its candi 13:01
arnsholt nqp: my $_ := nqp::ctx(); $_ := nqp::ctxcaller($_) while 1; 13:07
camelia nqp: OUTPUT«Null PMC access in get_attr_str()␤current instr.: '' pc 71 ((file unknown):57661493) (/tmp/0FZHGUwOJg:1)␤»
arnsholt jnthn: That one above is from NQP #65, which used to segfault. Still a bug though, isn't it? 13:08
moritz well, that's open to interpretation 13:09
jnthn No, that's just not knowing that you should check the thing you got back...
moritz what should ctxcaller return for the top-level call frame? 13:10
null seems like a valid choice
arnsholt Right, right. It's nqp::ctxcaller being given an invalid argument 13:11
Another bug I can close \o/
moritz the other obvious-ish choice would be NQPMu
but I guess that might get hairy wrt bootstrapping
13:12 SamuraiJack__ left
jnthn Yeah...probably null is best 13:12
I think that's what the code using it checks for
13:17 PacoAir joined 13:18 dmol left 13:22 denisboyun joined
arnsholt What's the current state of the eval server for NQP/JVM? 13:24
Is it working enough that we can close #129, or should it be left open for now? 13:25
13:28 benabik left 13:32 PacoAir left, PacoAir joined 13:33 kaare__ joined, alester joined, kaare__ is now known as kaare_ 13:38 denisboyun left 13:39 ajr joined
timotimo FWIW i recently tracked down why the qregex tests hang (and consume infinite memory) on moarvm 13:39
13:39 ajr is now known as Guest93153
FROGGS timotimo: join me on #moarvm :o) 13:39
13:40 Guest93153 is now known as ajr_
timotimo will do 13:41
once i backlog
FROGGS timotimo: is it push or unshift? 13:42
13:42 Bzek joined
timotimo no 13:42
well, it may be
see #moarvm 13:43
13:46 btyler joined 13:47 ggoebel3 joined 13:57 skids joined
lizmat jnthn, moritz: in a backtrace, is there a way to find out if a frame is a proto ? 14:00
14:00 pmurias joined
lizmat to me, they seem indistinguishable from a normal sub/method :-( 14:03
14:03 kaleem joined 14:04 pmurias_ joined
jnthn lizmat: You can get hold of the code object 14:04
moritz lizmat: you can call .?candidates on the code object
jnthn lizmat: And then call .is_dispatcher
r: proto foo() { }; say &foo.is_dispatcher
camelia rakudo 70f2ae: OUTPUT«True␤»
lizmat aha… ok
jnthn r: sub foo() { }; say &foo.is_dispatcher
camelia rakudo 70f2ae: OUTPUT«False␤»
lizmat jnthn++ 14:05
14:06 logie joined
FROGGS r: multi foo() { }; say &foo.is_dispatcher 14:06
camelia rakudo 70f2ae: OUTPUT«True␤»
FROGGS :o)
yay, I remember things from exactly a year ago 14:07
masak r: my regex foo {}; say &foo.is_dispatcher 14:08
camelia rakudo 70f2ae: OUTPUT«===SORRY!=== Error while compiling /tmp/9igBv23oHV␤Null regex not allowed␤at /tmp/9igBv23oHV:1␤------> my regex foo {⏏}; say &foo.is_dispatcher␤ expecting any of:␤ scoped declarator␤ new name t…»
masak mah :)
r: my regex foo { OH HAI }; say &foo.is_dispatcher
camelia rakudo 70f2ae: OUTPUT«False␤»
timotimo mahsak :)
pmurias_ nqp-moarvm has bootstrapped?
timotimo how about t4? :)
14:08 pmurias left, pmurias_ is now known as pmurias
masak timotimo: will try to find review time this week. 14:08
timotimo :) 14:09
timotimo aims not to nag&distract, but only to show he cares
14:10 kaleem left
dalek rlito: 5cff33c | (Flavio S. Glock)++ | / (3 files):
Perlito5 - perl6 - pretty-print placeholder - "-Cperl62"
14:12
14:14 rurban joined 14:15 Bzek left 14:16 pmurias left 14:21 FROGGS left 14:22 pmurias joined 14:24 awwaiid joined 14:26 rurban left 14:27 pmurias left 14:29 telex left 14:31 telex joined 14:32 sqirrel left, denis_boyun joined
dalek kudo/nom: 0b5db01 | (Elizabeth Mattijsen)++ | src/core/Backtrace.pm:
Add "noproto" named param to next-interesting-index, to exclude proto's
14:36
kudo/nom: 0957ab1 | (Elizabeth Mattijsen)++ | src/core/Deprecations.pm:
Add class/instance method "report", further tweaks
kudo/nom: c11e1d8 | (Elizabeth Mattijsen)++ | src/core/ (19 files):
Adapt is DEPRECATED mentions in core to the new format
kudo/nom: bba4196 | (Elizabeth Mattijsen)++ | tools/build/Makefile- (2 files):
Make sure src/core/Deprecations is included in the build
lizmat calling deprecated subs/methods now results in *one* message at end of execution 14:37
$ perl6 -e 'my %h; %h.delete("a"); say "done"'
done
Saw 1 call to deprecated code during execution.
================================================================================
Method delete (from Hash) called at:
-e, line 1
Please use the :delete adverb instead.
14:37 PZt left
tadzik \o/ 14:37
moritz lizmat++
lizmat r: sub a () is DEPRECATED('b') {}; a 14:38
camelia rakudo 70f2ae: OUTPUT«Sub 'a' has been deprecated, please use b instead in any at /tmp/tYb7tt5N5A:1␤␤»
timotimo looks good :)
lizmat the last one was still the old one 14:39
14:40 PZt joined
masak lizmat++ 14:47
14:47 benabik joined
dalek rlito: 99460c9 | (Flavio S. Glock)++ | / (3 files):
Perlito5 - perl6 - t5/01-perlito/010-sanity.t pass
15:01
15:05 slavik joined
dalek kudo/nom: f14c3e5 | (Elizabeth Mattijsen)++ | src/core/Backtrace.pm:
Don't use a try block if we don't need one
15:09
15:10 araujo left
dalek rlito: 3579bd8 | (Flavio S. Glock)++ | / (2 files):
Perlito5 - perl6 - t5/01-perlito/030-num.t pass; 1 TODO
15:10
15:11 araujo joined, denis_boyun left, sqirrel joined 15:14 ajr_ left
dalek rlito: d7e8199 | (Flavio S. Glock)++ | / (2 files):
Perlito5 - perl6 - no parenthesis in "if"
15:15
15:16 ajr joined 15:17 ajr is now known as Guest81766, darutoko left
dalek kudo/nom: d7aa6a8 | (Elizabeth Mattijsen)++ | src/core/Any.pm:
Make sure KeySet|KeyBag coercer exist again as DEPRECATED
15:20
15:20 [Sno] left
lizmat just in case someone in the eco system was using .KeySet or .KeyBag 15:21
15:22 xenoterracide_ joined
dalek rlito: 4234774 | (Flavio S. Glock)++ | / (6 files):
Perlito5 - perl6 - cleanup temporary "perl62" backend; perl6 pretty-print is now default
15:26
15:27 rurban joined
dalek rlito: ac38a0d | (Flavio S. Glock)++ | src5/util/perlito5-browser-perl6.pl:
Perlito5 - perl6 - typo
15:28
15:31 rurban left
Ulti does Perl 6 have labels and goto? 15:32
15:32 Guest81766 is now known as ajr_
Ulti after some Perl 5 code I just saw can I request they get removed? >:3 15:32
geekosaur labels have uses other than goto 15:34
even in perl5. (that said, 99% of code using goto in perl5 should be shot)
timotimo does the moarvm-nqp use the selfhosted nqp already?
15:34 colomon left
GlitchMr You can specify them in "next", "last", and "redo", but it's still a "goto". 15:34
Besides, I don't think "goto" is bad. Sometimes it can simplify control flow. 15:35
tadzik timotimo: it can
GlitchMr If your entire control flow is made of gotos, it's not good. But sometimes goto can make code more readable. 15:36
TimToady especially when the alternative is to use mystery status variables 15:37
and if goto is bad, what can we say about continuations? :)
15:38 btyler left
TimToady and there isn't any feature that isn't abused at some point by hoi polloi 15:38
GlitchMr Also, continuations (and coroutines) are just exceptions you can continue from. 15:39
I'm perfectly fine with forward goto.
Ulti this was a got instead of if-not or unless: pos1: if($thing) {goto pos2;} else {do-stuff();} pos2: if($other_thing) {goto pos3;} else {do-moar();} .... 15:40
22 labels and 57 goto's in a single script... and nearly everything inside the if-elsif trains was `shell horror` 15:41
GlitchMr What is the point of "goto pos2"?
Ulti exactly!
15:41 btyler joined
Ulti there is no point just awful awful code 15:41
I have to assume it was compiled by another script from many individual pieces 15:42
GlitchMr This is awful code, but you can make just as awful code with "if"s.
15:42 ajr_ left
Ulti that is the only way I can have a mental model of how this thing was born, it couldnt have come from the mind of a human 15:42
GlitchMr: oh it had awful if's too :) like a thousand lines of nested elsif
15:42 ajr_ joined
TimToady People screw up their sex lives too, but that doesn't mean we should get rid of sex. :) 15:42
Ulti strawman detected :P 15:43
15:43 perigrin left
dalek kudo/nom: d7e5e1d | (Elizabeth Mattijsen)++ | src/Perl6/Actions.nqp:
Make sure phaser code is also added for methods

This makes "is DEPRECATED" work on methods
15:43
15:43 perigrin joined
TimToady you were requesting to have sex^Wgoto removed, so no strawman 15:44
GlitchMr thedailywtf.com/Articles/Unconditio...eless.aspx
Found it.
thedailywtf.com/Articles/Innovation...0x3b_.aspx 15:45
Or this.
Ulti but I agree bad programmers make bad code and that shouldnt ruin it for the rest of us 15:49
15:49 pmurias joined
rjbs GlitchMr++ # Free Goto 15:49
(by which I mean: it isn't always awful; not that it should go away) 15:50
GlitchMr I actually sometimes wanted to use goto in JavaScript.
TimToady maybe if I put in the stipulation that you have to send me $5 every time you use 'goto'...
GlitchMr I seen lots of ugly code without goto. 15:51
pmurias GlitchMr: me too, for emitting code ;)
yoleaux 4 Oct 2013 17:26Z <[Coke]> pmurias: - fixed the existing _I opcodes i the docs.
rjbs So, I'm thinking about running a little programming competition for some friends, some of whom are not very advanced programmers.
GlitchMr Actually, goto is rare these days, considering how many people think it's worst thing ever.
rjbs I'd write a "server" to run games of tic-tac-toe, mastermind, or other trivialities.
How's the non-blocking IO in any p6 these days?
(I'm not sure what I'll write it in; p5 if I just want to get it done, or something else for fun.) 15:52
TimToady use MONKEY_AROUND
geekosaur sounds good to me 15:55
15:55 darutoko joined, rurban joined 15:56 FROGGS joined
diakopter MONKEY_CARGO 15:57
geekosaur MONKEY_SEE_MONKEY_GO 15:58
perigrin use MONKEY_BAR; # stop people from MONKY_PATCH-ing
TimToady I think "around" is rather appropriate for moving around the program 15:59
diakopter MONKEY_THROW_POO
perigrin Poo.fling
Ulti :) the new PhD student I'm working with has gone home from the stress of reading this code lol 16:00
diakopter home to another continent?
Ulti another dimension, where you can't goto
TimToady
.oO(Piled, higher and Deeper)
masak I see goto fear and loathing is still alive and well :) 16:01
TimToady we should probably a canonical list of MONKEY declarations
masak accidentally?
perigrin TimToady: have an entire ... barrell of MONKEY declarations? 16:02
Ulti I dont loath or fear goto, I think its a perfectly acceptable way to break out of nested loops... but so is 'last 2' or something similar
16:02 rindolf joined
TimToady was thinking earlier that the monkey barrel would autoload everything from anywhere 16:02
moritz \o 16:03
dylanwh ls
Ulti also goto does make evolutionary programming a lot easier in Perl :3 just inject some labels and gotos at random until the desired function drops out
16:03 benabik left 16:04 fglock joined
GlitchMr What's wrong with simple "no MONKEY_PATCHING"? 16:05
TimToady too generic
GlitchMr There is "no" keyword for a reason.
TimToady and we're trying to make the default sane
so that The Boss can ack for 'MONKEY' and figure out where you're cheating 16:06
16:06 jnap joined
GlitchMr Tell him to ack for 'use MONKEY' 16:06
16:06 benabik joined
GlitchMr Besides, you could hide "use" with "eval". 16:06
TimToady no, that doesn't escape the lexical scope
moritz or use the MOP directly
TimToady arguably, using the MOP should require some form of MONKEY 16:07
16:07 fhelmberger left
arnsholt diakopter: You have any objections to closing NQP #66? 16:07
GlitchMr I'm sure there is a way to say MONKEY without actually doing so.
TimToady ss/the MOP/the MOP to modify anything/
GlitchMr: that's not the point 16:08
the point is to establish a culture where you tell the reader what's tricky
GlitchMr use tricky Monkey::Patching; 16:10
oh wait, it's a pragma
use tricky monkey::patching;
16:10 daxim__ is now known as daxim
FROGGS I'd say MONKEY_PATCHING should on by default and must be turned off explicitly :P 16:10
GlitchMr Or, in C# style, use unsafe monkey::patching;
TimToady the thing is, if we make the monkey business fun, people won't mind so much that it's mandatory
Ada started this notion with UNCHECKED_TYPE_CONVERSION and such, but they didn't make it fun :) 16:11
GlitchMr What about unsafe keyword in C#?
It lets you do stuff like having pointers. 16:12
pmurias FROGGS: why make MONKEY_PATCHING on by default? 16:14
FROGGS pmurias: that was a joke!
I'm totally with TimToady that turning it on must feel icky 16:15
and that one must see that at a first glance
TimToady 🙈 16:16
.u 🙈
yoleaux U+1F648 SEE-NO-EVIL MONKEY [So] (🙈)
perigrin worries that unicode is broken in his irssi now.
TimToady unsafe pointers is probably MONKEY_BUSINESS or some such 16:17
16:17 rurban left
TimToady some feature that is deemed overly restrictive for standard Perl should be a MONKEY_CAGE 16:19
maybe that's nqp-emulation mode :P 16:20
lee_ i don't know what MONKEY_TYPEWRITER would be
pmurias aren't unsafe pointers NativeCall? :)
16:21 xinming_ joined
TimToady lee_: we already kinda have that one in MONKEY_TYPING 16:21
lee_ oh, duh :P now it makes more sense
16:21 btyler left
lee_ is slow 16:21
TimToady it's meant to be sort of a slam on Ruby monkey patching culture :) 16:22
16:23 xinming left
TimToady
.oO(if it walks like a monkey, and quacks like a monkey...)
16:24
Ulti and types like a thousand monkeys
16:25 Bzek joined
Ulti oh lee_ already covered that 16:25
16:26 btyler joined
masak "Perl 6: way ahead of you with the cultural memes." 16:29
diakopter if it quacks like a monkey, that's a really smart duck 16:30
TimToady name it Mallard Shakespeare 16:31
masak now y'all're just beating a dead duck. 16:32
TimToady maybe our language emulations are misnamed. instead of *ish, we should have use APE_PHP and such
moritz don't insult the apes :-) 16:33
TimToady okay, APE_HASKELL then
masak .oO( monkad ) 16:34
16:34 [Sno] joined
TimToady Also Sprach Masonk 16:34
16:36 pmurias left
TimToady unsafe comparisons would have to be APPLES_AND_ORANGUTANS 16:36
perigrin has a mental image of a bunch of proto-homonids around an iPhone 5s now ... 16:37
16:37 alester left
dalek rlito: dff1daa | (Flavio S. Glock)++ | / (4 files):
Perlito5 - perl6 - update browser version
16:38
diakopter perigrin: miami beach? 16:39
TimToady maybe the nqp dialect should be "use HOMONIN_TOOLS"
perigrin diakopter: depends on what part of the beach ... some of them wax *really* well down there. 16:40
TimToady need a stony beach to find those stone tools 16:42
diakopter *groan* down there
perigrin I didn't actually *intend* for that ... I'm about 300 miles north of Miami Beach 16:43
diakopter oh heh. 16:44
16:47 dayangkun left
TimToady wonders why it's called "monkeyshine" 16:48
diakopter like moonshine, but fewer o's and an additional key 16:49
TimToady my AmHer is unhelpful on the subject 16:50
perigrin TimToady: www.word-detective.com/2011/03/gall...keyshines/ 16:51
TimToady though it offers "monkey pot" and "monkey jacket"
16:52 lowpro30 joined 16:58 ggoebel4 joined 17:00 ggoebel3 left 17:01 dmol joined, hummeleB1 left, dakkar left, zby_home_ joined 17:02 dayangkun joined
grondilu nqp: my int $a := 0; say(++$a); 17:04
camelia nqp: OUTPUT«1␤»
grondilu r: my int $a := 0; say(++$a);
camelia rakudo d7e5e1: OUTPUT«===SORRY!=== Error while compiling /tmp/8C4Dr_5Rgs␤Cannot bind to natively typed variable '$a'; use assignment instead␤at /tmp/8C4Dr_5Rgs:1␤------> my int $a := 0⏏; say(++$a);␤ expecting any of:␤ postfi…»
grondilu wonders why something what works in nqp does not work in Perl6
TimToady because nqp has screwey semantics :) 17:06
in normal p6, binding is only for copying pointers, not native values, which is always assignment as in C 17:07
if we allowed direct access to the pointers as C does, we could use assignment for those too 17:08
but we have safe refs, so that operation is hidden behind :=
*screwy
basically, nqp overloads := for two different operations from p6's point of view 17:09
an alternate view is that nqp uses := consistenly for what C uses = for 17:10
if you consider pointers to be native in nqp 17:11
in either case, p6 ain't goin' there :)
17:12 xinming_ left 17:13 ggoebel joined 17:15 xinming joined 17:16 ajr_ left 17:18 sftp left, denis_boyun joined, rurban joined 17:22 rurban left
dalek rlito: 725e971 | (Flavio S. Glock)++ | / (3 files):
Perlito5 - perl6 - fix internal dependencies
17:26
FROGGS install/bin/moar nqp.moarvm t/qregex/01-qregex.t 17:27
Unsupported use of - as character range; in Perl 6 please use .. for range, for explicit - in character class, escape it or place as last thing at line 29, near "> $m { %ex"
:o(
ohh, ww
[Coke] arnsholt: you closed nqp#66 but didn't say why?
pugs: say "blah?" 17:29
camelia pugs: OUTPUT«blah?␤»
17:29 FROGGS[mobile] joined
[Coke] .ask moritz did you fix pugs on host07? 17:29
yoleaux [Coke]: I'll pass your message to moritz.
17:29 lowpro30_ joined
[Coke] .ask arnsholt if nqp #66 is fixed, or DIHWIDT. 17:30
yoleaux [Coke]: I'll pass your message to arnsholt.
17:31 daxim left, lowpro30__ joined
arnsholt [Coke]: Yeah, I closed it 17:31
yoleaux 17:30Z <[Coke]> arnsholt: if nqp #66 is fixed, or DIHWIDT.
arnsholt Also, DIHWIDT?
timotimo doctor, it hurts when i do thtat 17:32
(well, then don't do that)
arnsholt Oh, right
TimToady S99:221
synopsebot Link: perlcabal.org/syn/S99.html#line_221
arnsholt Yeah, I think it's mostly the latter
TimToady S99:DIHWIDT # does this work? 17:33
17:33 lowpro30 left
arnsholt [Coke]: A bit more information from jnthn at irclog.perlgeek.de/perl6/2013-10-06#i_7678311 17:33
But yeah, it's essentially just that an empty loop body isn't actually completely empty =) 17:34
PerlJam TimToady++ that would be awesome
17:34 lowpro30_ left 17:35 FROGGS[mobile]2 joined, FROGGS[mobile] left, rurban joined 17:36 denis_boyun left
dalek p/moarboot: 127cae0 | jnthn++ | tools/build/Makefile-Moar.in:
Build P5QRegex library on MoarVM.

Test file hangs, presumably for same reason t/qregex does.
17:37
p/moarboot: ca7e1b9 | jnthn++ | .gitignore:
Update .gitignore.
17:38
17:39 darutoko left 17:40 sftp joined 17:42 SamuraiJack__ joined 17:43 sftp left 17:44 sftp joined 17:52 sqirrel left 18:06 rurban left 18:07 denis_boyun joined 18:09 Rotwang joined
diakopter yeah I argued that nqp := should be = until I was blue in the face because it acts exactly like = in p6... but to no avail 18:11
dalek rlito: 021723a | (Flavio S. Glock)++ | / (6 files):
Perlito5 - AST - cleanup
18:11 SmokeMachine joined 18:12 jlaire joined 18:22 ggoebel4 left
dalek rlito: e9aecce | (Flavio S. Glock)++ | / (2 files):
Perlito5 - perl6 - fix internal dependencies
18:24
18:25 ggoebel4 joined 18:28 SamuraiJack__ left
fglock I've updated perlcabal.org/~fglock/perlito5to6.html 18:32
yoleaux 3 Oct 2013 21:26Z <raiph> fglock: TimToady doesn't like $*OS: irclog.perlgeek.de/perl6/2013-09-07#i_7555053
fglock $*OS can go away 18:34
I'm looking for patterns for perl5 => perl6
to install in the compiler
TimToady how much refactoring do you want to do? :) 18:35
fglock not sure yet, I'm going in small steps 18:36
18:36 Bzek left
TimToady a good source of patterns is probably to compare rosettacode entries for p5 and p6 18:36
fglock I've just split the translation and pretty-printing to make it more flexible 18:37
timotimo do you have some examples for what already works?
TimToady that should give you both low-level transformations and high level
fglock great, I'll take a look
timotimo: I'm following the tests in the perlito5 test suite 18:38
I'm testing with rakudo
18:38 FROGGS[mobile]2 left
timotimo you're turning the perl5 tests into perl6? 18:39
18:39 rindolf left
timotimo oh, wait, this translates perl5 to perl6? 18:39
fglock yes 18:40
timotimo ah, that's not as interesting for me then
18:41 spider-mario joined
nwc10 if you feed it Abigail, what comes out the other end? :-) 18:41
TimToady dunno, but it's inside out
fglock it should work: $$ a [10]; => $a[10]; 18:42
TimToady :)
18:44 ajr joined
fglock $$$ a [10] gives $($a)[10] - not sure if this makes sense in perl6? 18:44
18:44 ajr is now known as Guest81406, Guest81406 is now known as ajr_
FROGGS r: my $a = ^20; say $($a)[10] 18:44
wait for it... 18:45
timotimo haha
first execution since a rebuild or something?
lue hello world! o/
FROGGS hi lue
r: 1
:/ 18:46
jnthn r: u there?
fglock timotimo: what would be interesting for you?
timotimo straight up running perl6 code in js ;)
FROGGS fast
timotimo (i have no involvement or investment in perl5 or earlier, so ...)
FROGGS he is le'optimizer
timotimo yeah, run it extra fast, please ;)
fglock ah, that is perlito6 - it is bitrotting a bit :( 18:47
camelia rakudo d7e5e1: OUTPUT«10␤»
FROGGS hehe
timotimo wow, that took a *long* time
FROGGS r: 1
camelia ( no output )
rakudo d7e5e1: OUTPUT«===SORRY!=== Error while compiling /tmp/whpjQmTCik␤Two terms in a row␤at /tmp/whpjQmTCik:1␤------> u there⏏?␤ expecting any of:␤ argument list␤ postfix␤ infix stopper␤ infix o…»
( no output )
FROGGS r: my $a = ^20; say $($a)[10] # again
camelia rakudo d7e5e1: OUTPUT«10␤»
FROGGS hmmm, okay
18:48 dwarring joined
TimToady $($a) should be a no-op 18:48
FROGGS it actually alls .item
calls*
TimToady .item.item
it's itempotent :)
FROGGS gah, go away! 18:49
:p
18:49 lowpro30 joined
jnthn argh :P 18:49
lizmat r: my %h; %h.delete("a")
camelia rakudo d7e5e1: OUTPUT«Saw 1 call to deprecated code during execution.␤================================================================================␤Method delete (from Hash) called at:␤ /tmp/C4PAotJghv, line 1␤Please use the :delete adverb instead.␤--------------------…»
18:49 Vlavv` left
lizmat r seems to be up to date :-) 18:50
jnthn r: my %h; %h.delete("a"); say "cometh it at l'end?"
camelia rakudo d7e5e1: OUTPUT«cometh it at l'end?␤Saw 1 call to deprecated code during execution.␤================================================================================␤Method delete (from Hash) called at:␤ /tmp/MF210hLDQl, line 1␤Please use the :delete adverb instead.…»
lue so the = bar is intentional?
18:50 Pleiades` joined
timotimo it's a bit long for the irc bot :P 18:50
fglock timotimo: perlcabal.org/~fglock/perlito6.html # last update was long ago
jnthn Can I get a beer from the = bar?
TimToady is that a monkey bar?
lizmat yes, the = bar is intentional
timotimo fglock: i saw it, thanks :)
lizmat looks better in plain text :-)
jnthn returns to his slides :)
18:51 lowpro30__ left, lowpro30_ joined
lizmat the idea is that using deprecated features will not interfere with normal processing at all. Just when all is done, then it will complain 18:52
and it will complain about the places where a change would be needed
TimToady use SPEAK_NO_EVIL should silence deprecation warnings :) 18:53
.u 🙊
yoleaux U+1F64A SPEAK-NO-EVIL MONKEY [So] (🙊)
18:53 lowpro30 left
lue so SPEAK_NO_EVIL suppresses Perl 5 usage warnings, yes? :) 18:54
TimToady that might rise to the level of SEE-NO-EVIL :)
since it'd then have to actually try to run them 18:55
18:56 jnap left
lue r: my @a = <> ; say "This message means I'm not hampered by Perl 5's history! \o/" 18:57
camelia rakudo d7e5e1: OUTPUT«===SORRY!=== Error while compiling /tmp/D7qsAtfUSo␤Unsupported use of <>; in Perl 6 please use lines() to read input, ('') to represent a null string or () to represent an empty list␤at /tmp/D7qsAtfUSo:1␤------> my @a = <⏏[3…»
TimToady the fun part is making $/ have both Perl 5 and Perl 6 semantics simultaneously 18:58
lizmat r: my %h; %h.delete("a"); END {%DEPRECATIONS=()} # silence deprecation message
camelia ( no output )
benabik Perhaps have a s/no DEPRECATION/END {%DEPRECATIONS=()}/ ? 18:59
It isn't %*DEPRECATIONS? 19:00
TimToady probably falls into a no warnings category
19:02 Vlavv` joined 19:03 btyler left 19:06 fglock left, sqirrel joined 19:07 rurban joined, btyler joined 19:11 jnap joined 19:12 rurban left 19:18 Traceur joined, Traceur left, Traceur joined
dalek p: d7eae46 | (Timo Paulssen)++ | src/NQP/Compiler.nqp:
allow the user to turn off optimizing for nqp
19:22
timotimo i've promised to do this a long time, i think
arnsholt Oh, heh. I'd forgotten about that 19:23
timotimo turned out to be super easy 19:24
so that's a plus
arnsholt [Coke]: Is NQP #64 fixed? Looks like it works for me (though the machine I'm testing on is 10.7.4, not 10.7.3) 19:30
19:33 daniel-s joined 19:34 Ispira_ joined
Ispira_ Hi, I just had a quick question about perl 6: What are the main differences between perl6 and perl5? 19:35
19:37 _daniel-s__ left
TimToady far fewer lists of exceptions, more direct support of both FP and OO paradigms 19:37
timotimo perl6 has a type system and uses classes pretty much everywhere; perl6 has a new, very strongly cleaned up regex syntax (with the option to just use perl5 regexes instear:
TimToady fixes most of the perceived warts in the design of Perl 5
timotimo inst ... ear? what did i just write
perl6 code is now parsable by not just the perl6 executable. and all in just one pass! 19:38
TimToady most of the perceived warts of Perl 5 end up relating to the lack of a type system :)
timotimo perl6 has a very good potential for parallelism and such; channels, promises and stuff just got prototyped successfully on the jvm backend 19:39
oh, also, perl6 is already on the JVM as well as parrot, and will soon be on javascript (node and browsers) and MoarVM, our own new and shiny VM
TimToady portability to multiple VMs is also a consideration
so you see, it might be a quick question, but it's not a quick answer :)
nwc10 Perl 6 will do Unicode better than Perl 5. Stuff that is hard in perl 5 will be easy. Stuff that is O(n) in Perl 5 will be O(1) [and consequently O(n**2) will be O(n)] 19:40
but I suspect that on that one, most people won't need it for a while yet
timotimo Ispira_: now you know why we're excited about perl6 :3 19:41
TimToady the other big difference is that Perl 5 is still faster--but we're working on that :) 19:42
timotimo hehe 19:44
will still take a little while, though :( 19:45
on the other hand: perl 6 core development will not make you start flipping tables left and right
there's still lots of exciting things to do in perl6 land, whereas in perl5 land you mostly just get to fix bugs and the occasional new cool features in the scary, scary innards of the perl5 code :P
19:46 hexcoder joined
TimToady The people who hang out here are nicely stubborn, and stubbornly nice. 19:49
Ispira_ I see 19:50
I ask becuase I'm bored and want to learn a new language, I'm looking into perl5, perl6, Scala and Ruby, etc 19:51
TimToady well don't ask us, we're prejudiced :) 19:52
Ispira_ obviously
how new is perl6? like how early in development is it still?
PerlJam waits to see the answer to that one ;) 19:54
TimToady well, we've been stubbornly working on it for 13 years now, but we think we're getting pretty close to what many people would consider a production release in a year or so
timotimo not very many things you'd end up using on a day-per-day basis are being completely turned upside-down ...
timotimo tried for the most non-answer he could come up with 19:55
TimToady the design is stabilizing nicely as the various implementations converge on it
PerlJam Ispira_: There's a compiler release every month. And there's a feature matrix perl6.org/compilers/features
timotimo and we have a almost-completely-monthly release of a distribution made up of compiler + package manager + a few modules
TimToady we're a bit weak in docs yet
anyway, we're pretty sure we'll have a solid production version before they have commercial fusion reactors :) 19:57
didn't quite beat DNF out the door though...
nwc10 DNF seems to have become quite forgettable 19:58
Ispira_ Well thanks for the help guys
TimToady our pleasure
Ispira_ I do think after looking a bit more extensiveley into 5 and 6 that perl isn't the language for me at this point
TimToady you should learn lots of languages
timotimo after going through oop, imperative and functional, you'll at least always feel at home in perl6 land, because you can have it your way™ 19:59
TimToady but perl 6 is aimed more to be your last language than your first one
Ispira_ I already know Java, JavaScript, PHP, C++, Python and HTML/5(IF you consider that a language)
PerlJam Ispira_: learn languages that will teach you some new concepts and above all ... Have Fun! :)
timotimo perl6 is big on fun, yeah
PerlJam Ispira_: sounds like you should try for one of the functional languages like haskell, ml, lisp, or scheme. 20:00
btyler or go really crazy with something in the APL family
timotimo .o( and do a couple of exercises in prolog just to make your brain squishier )
PerlJam Ispira_: scala, ruby, or perl won't teach you too much that you haven't already seen. (though, if you use roles in perl, that might be a new concept) 20:01
TimToady hyperops, laziness, mutiple-dispatch... 20:02
FROGGS hyperops, indeed
Ispira_ I'm going to keep looking into a bunch of new languages, thanks for the help guys 20:03
TimToady higher-order programming in general
Ispira_ I have a lto fo free time on my hands right now and figured why not lol
TimToady feel free to drop back in some time
PerlJam Ispira_: good luck! :)
Ispira_ will do
thanks
20:03 Ispira_ left
PerlJam makes a note to better qualify which perl he's talking about in the future. 20:04
hexcoder r: my $c = 5; { my $c = $c; say $c; } 20:05
camelia rakudo d7e5e1: OUTPUT«(Any)␤»
timotimo that's not surprising
PerlJam hexcoder: you need an OUTER to get at the outer one.
timotimo r: my $c = 5; { my $c = $OUTER::c; say $c; }
camelia rakudo d7e5e1: OUTPUT«5␤»
hexcoder thanks, always better to be explicit 20:06
20:06 araujo left 20:07 araujo joined
PerlJam r: my ($x = 4, $y = $x); say $x; say $y; 20:07
camelia rakudo d7e5e1: OUTPUT«(Any)␤(Any)␤»
20:07 rurban joined
PerlJam The second (Any) makes sense to me, but the first one not so much. 20:08
FROGGS r: my ($x = 4); say $x; 20:09
camelia rakudo d7e5e1: OUTPUT«(Any)␤»
PerlJam yeah, was just doing that locally.
FROGGS r: my ($x) = 4; say $x;
camelia rakudo d7e5e1: OUTPUT«4␤»
FROGGS n: my ($x = 4); say $x;
camelia niecza v24-98-g473bd20: OUTPUT«(Any)␤»
lizmat feels like a bug to me 20:10
PerlJam me too
20:11 zby_home_ left
jnthn r: my ($x, $y) = 4, 5; say $x; say $y; 20:11
camelia rakudo d7e5e1: OUTPUT«4␤5␤»
jnthn That's the Right Way
lizmat but should the wrong way be silent ?
PerlJam Sure, but .. .what lizmat said
jnthn The thing after the my is parsed as a signature initially
20:12 rurban left
FROGGS my (%x = 4) is parsed as a signature, right? 20:12
jnthn Then we spot that no, we're not sig binding, so we demote it to a simple list of variables
FROGGS ahh
yes
jnthn The = 4 I guess ended up being parsed as a default value, just like in sig syntax
lizmat but shouldn't it complaing about $x not being defined
I guess not if it was parsed as a sig 20:13
FROGGS r: (my $x = 4); say $x # it is defined
jnthn lizmat: sigs declare the things within them, at least in the context of a declaration.
camelia rakudo d7e5e1: OUTPUT«4␤»
jnthn We can probably go try lifting the default value out of the signature, but then the question is what we do with it :) 20:14
PerlJam r: my ($x, $y = 3) = 42; # assign 42 to $x and 3 to $y (as default) 20:15
camelia ( no output )
PerlJam (at least that's what I think)
jnthn yeah
Well, I guess we'd just turn it into an assignment if we'll do anything 20:16
Making it an alternative way to specify "is default" is probably only cute today... :)
lizmat fwiw, I don't interprete my ($x=4) as setting a default 20:17
20:17 kaare_ left
jnthn *nod* 20:18
lue me neither. It's just assigning a value inside parens to me.
PerlJam Either it should make some noise or DWIM ;)
jnthn I think various things do whine, fwiw
r: my ($x, $y?) = 1, 23;
camelia ( no output )
jnthn I thought they did anyway
r: my ($x, *@y) = 1, 23;
camelia ( no output )
jnthn Hm.
I thought there was a "sig too complex" error... 20:19
20:19 sqirrel left
lue I don't personally see a reason why changing the default value of a variable('s type?) needs anything shorter than is default(value) 20:19
PerlJam lue: even in signatures? 20:21
lue I guess I don't encounter situations where I would ever need to use is default, so from my POV, yes :) . (although perhaps is dflt() for short? :P) 20:22
FROGGS r: my (:$a, *@b ) = 1, 2, 3, 4, a => 42, 5, 6; say $a, say @b 20:23
camelia rakudo d7e5e1: OUTPUT«2 3 4 "a" => 42 5 6␤1True␤»
20:23 Rotwang left
FROGGS I'd vote for that it should behave like a signature if it is one :o) 20:23
lue wasn't \() the Signature maker? 20:24
r: say \(1, 2).WHAT
camelia rakudo d7e5e1: OUTPUT«(Capture)␤»
jnthn r: my (:$a, *@b ) := \(1, 2, 3, 4, a => 42, 5, 6); say $a, say @b 20:25
camelia rakudo d7e5e1: OUTPUT«1 2 3 4 5 6␤42True␤»
jnthn FROGGS: ^^ :)
FROGGS r: say :().WHAT
camelia rakudo d7e5e1: OUTPUT«(Signature)␤»
PerlJam r: say :().WHAT
camelia rakudo d7e5e1: OUTPUT«(Signature)␤»
PerlJam lue: ^^
FROGGS r: my (:$a, *@b ) := \(1, 2, 3, 4, a => 42, 5, 6); say $a
camelia rakudo d7e5e1: OUTPUT«42␤»
lue That's what it was. If you use :() then sure, it should act like a Signature :P
FROGGS ahh, the comma 20:26
20:34 mtk left
hexcoder r: if 'ab cd ef' ~~ mm/ (..) ** 2 / {say $1;} 20:36
camelia rakudo d7e5e1: OUTPUT«===SORRY!=== Error while compiling /tmp/tlufJPo5QY␤Please use ..* for indefinite range␤at /tmp/tlufJPo5QY:1␤------> if 'ab cd ef' ~~ mm/ (..⏏) ** 2 / {say $1;}␤»
timotimo oh, whoops
what is mm/ for?
r: if 'ab cd ef' ~~ m/ (..) ** 2 / {say $1;}
camelia rakudo d7e5e1: OUTPUT«(Any)␤»
hexcoder m with :sigspace
timotimo weird. why does it work when i only have one m? 20:37
r: if 'ab cd ef' ~~ m:s/ (..) ** 2 / {say $1;}
camelia ( no output )
timotimo r: say 'ab cd ef' ~~ m:s/ (..) ** 2 /
camelia rakudo d7e5e1: OUTPUT«False␤»
lue r: say 'a b' ~~ mm/a b/
camelia rakudo d7e5e1: OUTPUT«===SORRY!=== Error while compiling /tmp/5umwk03CvL␤Two terms in a row␤at /tmp/5umwk03CvL:1␤------> say 'a b' ~~ mm/a b/⏏<EOL>␤ expecting any of:␤ argument list␤ postfix␤ infix stopper…»
PerlJam hexcoder: uh ... mm// is m// with :samemark
timotimo it doesn't seem like mm is implemented? or something like that?
lue timotimo: that's what I was thinking.
PerlJam hexcoder: (ms// is m// with :sigspace) 20:38
timotimo er, hold on
:samemark is :mm, not mm
m:mm would be what you want, no?
lue r: say "a" ~~ m:mm/à/ 20:39
camelia rakudo d7e5e1: OUTPUT«===SORRY!=== Error while compiling /tmp/W4MuHk71gB␤Adverb mm not allowed on m␤at /tmp/W4MuHk71gB:1␤------> say "a" ~~ m:mm/à/⏏<EOL>␤»
hexcoder oops, I trusted moritz article... will check
timotimo also, i know why it doesn't match, at least..
lue :mm only makes sense on s///
timotimo r: say 'ab cd ef' ~~ m:s/ (..) ** 2 % <.ws> /
PerlJam lue++
camelia rakudo d7e5e1: OUTPUT«「ab cd 」␤ 0 => 「ab」␤ 0 => 「cd」␤␤»
lue (it's about how to handle replacing, not how to match)
timotimo r: if 'ab cd ef' ~~ m:s/ (..) ** 2 % <.ws> / { say $0 } 20:40
camelia rakudo d7e5e1: OUTPUT«「ab」␤ 「cd」␤␤»
timotimo r: if 'ab cd ef' ~~ m:s/ (..) ** 2 % <.ws> / { say $0.perl }
PerlJam aye, I was extraoplating my memory a bit.
camelia rakudo d7e5e1: OUTPUT«(Match.new(orig => "ab cd ef", from => 0, to => 2, ast => Any, list => ().list, hash => EnumMap.new()), Match.new(orig => "ab cd ef", from => 3, to => 5, ast => Any, list => ().list, hash => EnumMap.new()))␤»
hexcoder fwiw I am exploring perl6 features according to this intro from moritz: perlgeek.de/en/article/5-to-6#post_19 20:44
some examples could have gotten some bitrot 20:45
PerlJam hexcoder: indeed; note the date
hexcoder so i try to check or validate them... 20:46
lizmat .tell moritz: simply adding "is default" didn't work (Could not find sub &infix:<does>). too tired now to try doing mixins by hand 20:47
yoleaux lizmat: What kind of a name is "moritz:"?!
lizmat .tell moritz simply adding "is default" didn't work (Could not find sub &infix:<does>). too tired now to try doing mixins by hand
yoleaux lizmat: I'll pass your message to moritz.
lizmat sleep&
20:48 mtk joined
PerlJam yoleaux: you should be a smarter bot. 20:48
20:48 pjcj_ left, pjcj joined 20:56 lichtkind joined
lue
.oO(.tell yoleaux Please be smarter.)
20:58
yoleaux lue: Thanks for the message.
lue O.o 20:59
PerlJam heh 21:01
lue I didn't expect that to happen within the protection of a thought bubble... 21:02
.oO( .u ☃☄ )
.oO(.u ☃☄ )
yoleaux U+0020 SPACE [Zs] ( )
U+0029 RIGHT PARENTHESIS [Pe] ())
U+2603 SNOWMAN [So] (☃)
lue quoi? (yoleaux gets weird with the mystical .oO( command)
benabik yoleaux got a mind reading upgrade, that's all. 21:04
It's part of the DWIM.pm project.
lue & 21:05
21:05 jnap left 21:07 spider-mario left 21:09 rurban joined 21:13 rurban left 21:28 btyler_ joined, skids left, bruges_ joined 21:30 colomon joined, imrudbu joined 21:31 flussence_ joined 21:32 jlaire_ joined 21:33 jnap joined 21:34 jlaire left, btyler left, ivanshmakov left, yogan left, Celelibi left, bruges left, flussence left, Grimnir_ left, frdmn left, Grimnir_ joined 21:35 lowpro30_ left, Celelibi joined, eternaleye left, frdmn joined 21:36 eternaleye joined, lichtkind left, yogan joined
dalek rlito: d01ed44 | (Flavio S. Glock)++ | / (2 files):
Perlito5 - perl6 - "make test-5to6 | grep '^ok' | wc -l" # 68 tests pass
21:36
21:37 hexcoder left 21:42 BenGoldberg joined 21:43 PacoAir left 21:48 denis_boyun left 21:51 Traceur left 21:53 dmol left 21:55 rurban joined
BenGoldberg r: my $a = any(<the that a>); my $b = any(<frog elephant thing>); if ( substr($a,0,1) eq substr($b,*-1) ) { say "$a $b" } 21:57
camelia rakudo d7e5e1: OUTPUT«any("the", "that", "a") any("frog", "elephant", "thing")␤»
BenGoldberg What would I need to do to get the particular values in $a and $b for which the condition in if () was true? That is, "that" and "thing" ? 21:58
21:58 bruges joined 21:59 havenwood joined 22:00 bruges_ left
BenGoldberg Err, ("the", "that") and ("elephant") (I got $a and $b backwards) 22:00
dalek rlito: 6050ff7 | (Flavio S. Glock)++ | / (4 files):
Perlito5 - perl6 - yadayada is runtime
22:01
timotimo BenGoldberg: you are not using junctions for what they are supposed to be used. 22:03
you want X instead, i think 22:04
TimToady see rosettacode.org/wiki/Amb#Perl_6 for one approach 22:06
or two :)
though with that last spec change the 'do' should probably become a 'lazy' 22:07
timotimo yeah, but that doesn't run on any of our implementations, does it? :P 22:08
22:08 jnap left 22:09 colomon left 22:13 rurban left
dalek ecs: b8ee6d8 | larry++ | S32-setting-library/Containers.pod:
be clear that .grab works only on mutables
22:14
ecs: f2ca89c | larry++ | S32-setting-library/Containers.pod:
be clearer about throwing an exception
22:14 benabik left 22:18 jnap joined 22:20 Traceur joined, Traceur is now known as Guest18828 22:45 bbkr__ left 22:46 bbkr__ joined 22:47 jnap left 22:50 grondilu left 22:56 skids joined 22:57 jnap joined 23:14 rurban joined 23:15 ajr_ left 23:16 ajr joined, ajr is now known as Guest61227, Guest61227 is now known as ajr_ 23:18 rurban left
btyler_ in briefly describing the distinction between Perl 5 and 6 as 'different langauges in the same family', I pulled 'Common Lisp vs Racket Scheme' out of a hat -- is there a more apt pair of languages to use as metaphor? 23:18
lue btyler_: I always think "C and C++", but I don't know how close that is to 5 & 6 23:20
btyler_ I was thinking that too, but wasn't sure if the notions of the shared subset core were entirely accurate
perl6 isn't a strict superset (maybe C++ isn't any longer either?)
TimToady arguably C++'s greatest flaws come from backcompat to C 23:24
maybe more like Java vs C# :) 23:25
23:25 kay_ left, kay joined
TimToady or maybe ML and Haskell 23:25
23:26 kay is now known as Guest69717
TimToady Forth and Postscript :) 23:27
Pascal and Oberon 23:28
23:28 ajr_ left
TimToady Pascal and Modula if you don't want to stretch it quite so far 23:29
though that's more like Perl 4 to Perl 5
btyler_ afraid I'm not familar with any on the list after you mentioned 'haskell'...lots of learning to do :)
23:29 ajr_ joined 23:30 Guest69717 left, havenwood left 23:31 havenwood joined, havenwood left, jnap left 23:32 havenwood joined 23:41 havenwood left, havenwood joined 23:49 jnap joined 23:55 ajr_ left 23:57 ajr_ joined