»ö« 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.
TimToady n: /<?[\s'#']><[\s'#']>*/ 00:00
camelia niecza v24-95-ga6d4c5f: OUTPUT«===SORRY!===␤␤Please backslash # for literal char or put whitespace in front for comment at /tmp/Rxp8aWv33n line 1:␤------> /<?[\s'#⏏']><[\s'#']>*/␤␤Parse failed␤␤»
Mouq Yup, but Q is just kind of hacked on in NQP
TimToady so you're saying rakudo is NQP yet :) 00:03
Mouq One could either effectively have Q:cc functionality programmed in NQP and Rakudo seperately, or spread the Q lang between NQP and Rakudo 00:04
I think
TimToady well, how hard can it be? cclass_elem is just defined in STD as: "[" ~ "]" <nibble($¢.cursor_fresh( %*LANG<Q> ).tweak(:cc).unbalanced("]"))> 00:06
Mouq Although I'm pretty sure Q:cc doesn't actually work right in Rakudo because I remember just copying ( github.com/rakudo/rakudo/commit/0ec828 ) it in before I knew what I was doing
timotimo .tweak(:cc) is probably only one line of code
TimToady it's just deriving from Q at that point, not from Regex 00:07
so either it's deriving mysteriously from Regex, or it's doing 2-pass parsing with bad assumptions 00:08
00:09 xilo joined
TimToady or something got badly copy/pasted 00:10
or some set of cosmic rays is being mysteriously consistent 00:11
00:12 Psyche^_ joined
diakopter probably the ones from Florida. 00:14
00:15 Psyche^ left 00:17 denysonique left
timotimo good * #perl6 00:22
Mouq r: my $i = 4; say ' \qq[$i] ' 00:26
camelia rakudo 458880: OUTPUT« 4 ␤»
Mouq r: my $i = 4; say '$i\qq[$i]$i' 00:27
camelia rakudo 458880: OUTPUT«$i4$i␤»
Mouq r: my $i = "echo 1234"; say '$i\qqx[$i]$i' 00:28
camelia rakudo 458880: OUTPUT«qx, qqx is disallowed in restricted setting␤ in sub restricted at src/RESTRICTED.setting:2␤ in sub QX at src/RESTRICTED.setting:9␤ in block at /tmp/uHGXHZHt1H:1␤␤»
Mouq Aww
00:30 benabik left
Mouq r: say '-->\qqto[END]<--'␤BLABLAbla␤ (more bla)␤END 00:31
camelia rakudo 458880: OUTPUT«-->BLABLAbla␤ (more bla)␤<--␤»
Mouq r: say '\x [65]' 00:32
camelia rakudo 458880: OUTPUT«\x [65]␤»
Mouq r: say '\q [65]'
camelia rakudo 458880: OUTPUT«65␤»
Mouq n: say '\q [65]'
camelia niecza v24-95-ga6d4c5f: OUTPUT«65␤»
Mouq n: say '\x [65]'
camelia niecza v24-95-ga6d4c5f: OUTPUT«\x [65]␤»
Mouq std: say '\x [65]'
camelia std 4cde04e: OUTPUT«ok 00:00 42m␤»
00:38 grondilu joined
grondilu guys, a course on bioinformatics will start this month on coursera.org: 00:39
I've watched the first few videos, it looks fun.
as I understand it, the programming challenges will work as in rosalind, so it will be possible to program in Perl 6. 00:40
TimToady can we get an extension on that project? :P 00:41
[Coke] .to woolfy my copy of the great dalmuti arrived today. Forced all 3 kids to play, they were hooked after the first round. 00:42
yoleaux [Coke]: I'll pass your message to woolfy.
00:43 btyler joined
TimToady now if we only had a fast regex engine...someone should work on that... 00:45
diakopter o+o
00:50 ivanshmakov left 00:51 imrudbu joined 00:53 btyler left 00:55 cognominal left, cognominal joined 00:57 avuserow joined 01:08 benabik joined 01:10 berekuk joined
dalek rl6-roast-data: a5df95b | coke++ | / (5 files):
today (automated commit)
rl6-roast-data: bb7b77d | coke++ | / (3 files):
today (automated commit)
01:13 btyler joined
BenGoldberg What's the syntax for perl6 threads? 01:18
I just added to the RosettaCode web page a perl5 solution for the Dining Philosophers task, and want to convert it to perl6 :) 01:19
diakopter well, technically the data structures aren't yet threadsafe on the jvm 01:21
and we don't have atomic operations that would let you create your own yet
[Coke] (APL) I did that back on parrot at one point:
code.google.com/p/paraplegic/ 01:22
probably not worth salvaging any of that given the phpish example to build on 01:30
01:38 Vlavv` joined
dalek p/cursless: 4bd4ea2 | jimmy++ | src/vm/jvm/QAST/Compiler.nqp:
proper handling of classes an zerowidth, jnthn++
grondilu rn: say <foo bar>.bag 01:45
camelia rakudo 458880: OUTPUT«No such method 'bag' for invocant of type 'Parcel'␤ in block at /tmp/pCvWociLP6:1␤␤»
..niecza v24-95-ga6d4c5f: OUTPUT«Unhandled exception: Unable to resolve method bag in type Parcel␤ at /tmp/1RJzydBdnF line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4583 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4584 (module-CORE @ 576) ␤ at /…»
grondilu rn: say max :by(*.value), bag <foo foo bar> 01:47
camelia rakudo 458880: OUTPUT«bag(foo(2), bar)␤»
..niecza v24-95-ga6d4c5f: OUTPUT«Unhandled exception: Unable to resolve method value in type Bag␤ at /tmp/vpO2kr0Y6I line 1 (ANON @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1808 (ANON @ 4) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1812 (List.max @ 14) ␤ at /home/p6ev…»
grondilu rn: say max :by(*.value), bag(<foo foo bar>).hash 01:50
camelia rakudo 458880, niecza v24-95-ga6d4c5f: OUTPUT«"foo" => 2␤»
[Coke] (APL) except for the unicode characters, that might help.
01:52 FROGGS left 02:04 grondilu left, PZt joined 02:05 FROGGS joined 02:13 berekuk left 02:17 denysonique joined
TimToady rn: say max :by(*.value), bag(<foo foo bar>).pairs 02:39
camelia rakudo 458880, niecza v24-95-ga6d4c5f: OUTPUT«"foo" => 2␤»
TimToady that avoids creating a hash
nr: bag(<foo foo bar>).invert.max.say 02:41
camelia rakudo 458880: OUTPUT«No such method 'invert' for invocant of type 'Bag'␤ in block at /tmp/3m7Bgx47g1:1␤␤»
..niecza v24-95-ga6d4c5f: OUTPUT«Unhandled exception: Unable to resolve method invert in type Bag␤ at /tmp/CyzYhHQdDx line 1 (mainline @ 4) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4583 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4584 (module-CORE @ 576) ␤ at /…»
TimToady nr: bag(<foo foo bar>).hash.invert.max.say 02:42
camelia rakudo 458880, niecza v24-95-ga6d4c5f: OUTPUT«2 => "foo"␤»
TimToady thinks invert should work on bags
02:46 cognominal left 02:49 berekuk joined 02:53 imrudbu is now known as ivanshmakov 03:06 preflex_ joined, ChanServ sets mode: +v preflex_ 03:07 preflex left, preflex_ is now known as preflex 03:15 skids joined 03:20 berekuk left
.oO(You should seal the bag before inversion though.)
03:23 berekuk joined
TimToady bags are supposed to seal themselves now 03:25
04:15 fridim_ left 04:33 BenGoldberg left
japhb_ r: class A { has Int @.ints }; my A $one .= new(ints => [1, 2]); say $one.ints; my $two = $one.clone(ints => [3, 4, 5]); say $two.ints; 04:34
camelia rakudo 458880: OUTPUT«1 2␤Type check failed in assignment to '@!ints'; expected 'Int' but got 'Array'␤ in method REIFY at src/gen/CORE.setting:8102␤ in method reify at src/gen/CORE.setting:7027␤ in method gimme at src/gen/CORE.setting:7441␤ in method sink at src/gen/CORE.setting…»
japhb_ Is that ^^^ known?
04:35 clkao left 05:05 auscompgeek joined 05:10 xilo left 05:14 xenoterracide_ left 05:15 xenoterracide_ joined
moritz ¸o 05:19
sjohnson .o 05:21
diakopter .oo 05:22
05:26 kshannon left, kshannon joined 05:35 SamuraiJack_ joined 05:36 mtk left 05:37 ponbiki joined, ponbiki is now known as Guest22389 05:39 xenoterracide_ left
ingy wonders why he is about to renew perlster.org 05:46
its so 2003
05:48 mtk joined 05:49 sqirrel joined 05:53 Guest22389 is now known as ponpon 06:00 kaleem joined 06:21 [Sno] left 06:22 raghu joined 06:23 raghu left, sqirrel left 06:29 skids left, btyler left 06:32 daniel-s joined 06:35 FROGGS left 06:36 denis_boyun joined 06:38 aindilis` joined 06:39 aindilis left 06:47 dmol joined 06:48 skids joined
mathw morning 06:53
06:55 denisboyun joined, kaleem left 06:56 denis_boyun left, FROGGS joined 07:00 FROGGS left 07:02 FROGGS joined 07:05 berekuk left
moritz .u FFEF 07:06
yoleaux No characters found
moritz .u FFFE
yoleaux No characters found
moritz .u byte order mark
yoleaux U+FEFF ZERO WIDTH NO-BREAK SPACE [Cf] (<control>)
moritz .u FEFF 07:07
yoleaux U+FEFF ZERO WIDTH NO-BREAK SPACE [Cf] (<control>)
auscompgeek FEFF is LE, FFFE is BE. I think. 07:10
moritz and inside text, it's considered a zero-width non-breaking space 07:14
07:14 zakharyas joined
moritz which is why it's not "byte order mark" in character database 07:14
07:14 sqirrel joined
FROGGS .tell timotimo Spectest run doesn't look that bad, mind that there are changes in nom that we don't have atm: gist.github.com/FROGGS/0acdc051d455d9766bd8 07:17
yoleaux FROGGS: I'll pass your message to timotimo.
auscompgeek moritz: hm, interesting. 07:20
07:21 Guest6057 left 07:22 dmol left 07:23 PZt left 07:24 PZt joined
lizmat good *, #perl6! 07:33
moritz \o lizmat
07:38 mstwu00 joined 07:42 kaleem joined
lizmat rn: say max :by(*.value), bag(<foo foo bar bar>).pairs 07:42
camelia rakudo 458880, niecza v24-95-ga6d4c5f: OUTPUT«"foo" => 2␤»
lizmat why not bar => 2 ? 07:43
rn: bag(<foo foo bar bar>).hash.invert.max.say
camelia rakudo 458880, niecza v24-95-ga6d4c5f: OUTPUT«2 => "foo"␤»
moritz lizmat: bags are unordered, so what you get in response is pretty much random
lizmat why not 2 => <foo bar> ? 07:44
moritz lizmat: max only ever returns the first max value it finds
lizmat otoh, it will need to check all values anyway, so it can know there is more than one 07:45
rn: bag(<foo foo bar bar>).hash.invert.say 07:46
camelia rakudo 458880, niecza v24-95-ga6d4c5f: OUTPUT«2 => "foo" 2 => "bar"␤»
lizmat rn: say (a => "b").invert.WHAT 07:50
camelia niecza v24-95-ga6d4c5f: OUTPUT«(Pair)␤»
..rakudo 458880: OUTPUT«(Enum)␤»
lizmat fixing rakudo as we speak 07:51
07:52 zakharyas left
moritz I'm pretty sure that's intentional, though not sure if it's a good idea :-) 07:56
lizmat why would an inverted pair become an Enum? 07:59
moritz because the key isn't a container, so the value of the inverted thing doesn't need to be a container either
08:00 [Sno] joined
moritz and Enum is pretty much a pair, but the value is never a container 08:00
08:00 [Sno] left, [Sno] joined
moritz but from a type perspective, it's probably nicer to return a Pair 08:00
08:00 dmol joined
lizmat rn: bag(<foo foo bar bar>).hash.invert.max.WHAT.say 08:00
camelia rakudo 458880, niecza v24-95-ga6d4c5f: OUTPUT«(Pair)␤»
08:02 sqirrel left
hoelzro morning #perl6 08:02
moritz lizmat: so yes, having Pair.invert return a Pair is probably sensible 08:03
08:03 iSlug joined
dalek kudo/nom: d185d53 | (Elizabeth Mattijsen)++ | src/core/Enum.pm:
Make Pair.invert return a Pair, rather than an Enum

  (or anything else that inherits from Enum)
08:06 auscompgeek left
lizmat r: my @a=<a b c>; say @a[2,*-1]:delete; say @a.elems 08:09
camelia rakudo 458880: OUTPUT«c (Any)␤3␤»
lizmat I'm not sure what this would need to return and what the final state of @a should be 08:10
should the final state be "a" or "a b" ? 08:11
in other words, should the deletes be done in order *and* should the *-1 be calculated after each delete ?
moritz lizmat: I'd expect the *-1 to be evaluated first, and then any deletion happens
lizmat: because argument lists are also usually evaluated first, before the subroutine that is called does anything 08:12
lizmat well, that's how it's implemented now, but the spectest expects something else
well, that's an implementation detail
moritz then fix the spectests :-)
lizmat as long as we agree on this :) 08:13
08:13 preflex left 08:15 preflex joined, ChanServ sets mode: +v preflex
dalek ast: a081844 | (Elizabeth Mattijsen)++ | S32-array/delete.t:
Unfudge some multiple whatever related tests
08:24 mstwu00 left 08:25 mstwu00 joined
lizmat :q 08:26
hugme hugs lizmat, good vi(m) user!
lizmat :-)
mberends :q!!! 08:27
hugme hugs mberends, good vi(m) user!
.oO( you can check out anytime you like, but you can never leave )
diakopter hugs mberends, good vi(m) user! 08:30
mberends :smile 08:31
diakopter this seems to happen to me often.. sitting near two AA participants swapping stories at a restaurant.. 08:32
always interesting stories.
C:\Users\mwilson\src\MoarVM\nqp-cc\install\bin\nqp.exe nqp-moar-cc.nqp --setting=NULL --target=mbc --output=nqp-mo.moarvm nqp-src\nqp-mo.pm
NMAKE : fatal error U1077: 'C:\Users\mwilson\src\MoarVM\nqp-cc\install\bin\nqp.exe' : return code '0xc0000409'
masak good antenoon, good vi(m) users! 08:34
diakopter no clue where to start diagnosing that.
ok, nmake clean helped. 08:35
(must be missing Makefile dependency)
moritz why diagnose if you can fix instead? :-) 08:36
08:36 mstwu00 left
dalek rlito: ccc33d7 | (Flavio S. Glock)++ | / (7 files):
Perlito5 - js - prototype() fix
08:38 mstwu00 joined
diakopter masak: cross your fingers... 08:38
nqptest is clean so far..... O_O
(did I speak too soon?)
yesp. 08:39
yes, and yep.
08:40 iSlug left
mberends diakopter: are you trying to replace the GC in Moar? Why? How is it going? 08:41
(anything you say will be reported to amsterdam.pm this evening) 08:42
masak .oO( you have the right to a laptop. if you cannot afford a laptop, an HP EliteBook will be appointed for you ) :/ 08:43
tadzik :D
diakopter mberends: nope, heh.
mberends "no comment"
08:44 zakharyas joined
moritz # no comment 08:44
diakopter gist.github.com/diakopter/581887f037bc98f878f9
Ulti so changing from slurp and comb to while-get and comb I go from >3 minutes for my script to run down to 3 seconds :S that feels like a disproportionate speed up! this is with 2k lines from a Gutenberg file.
what's so bad about the slurp? 08:45
thats with latest R* 08:46
masak Ulti: slurp reads the whole file into memory first? 08:47
but yes, I agree the difference is disproportionate. 08:48
maybe slurp does something Shlemiel-slow.
moritz or maybe it's not slurp that is slow, but the .comb on the much larger string
08:48 iSlug joined
masak ah, yes. 08:49
Ulti gist.github.com/MattOates/4a451d9f9c31ea055a45 vs gist.github.com/MattOates/d66d7a4cb23b51e3dc82 08:50
also keybags are really useful for the stuff I do day to day especially with the set operators
diakopter current gc_orch gist.github.com/diakopter/7b70423d7db7de3fcd72 08:53
08:57 iSlug left
diakopter ok, I still have no idea how to diagnose this. 09:00
I wonder how long I can stare at it waiting for inspiration. 09:01
09:08 daxim joined 09:16 denisboyun left 09:20 grondilu joined 09:23 fhelmberger joined
dalek rlito: b95d306 | (Flavio S. Glock)++ | / (3 files):
Perlito5 - grammar - use exists()
09:45 cognominal joined 09:58 sqirrel joined 10:13 SamuraiJack_ left 10:18 SamuraiJack_ joined 10:27 snarkyboojum joined
dalek kudo/nom: 85b9a40 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
Make sure delete attempts past end of array doesn't vivify
ast: daa2ffe | (Elizabeth Mattijsen)++ | S32-array/delete.t:
Unfudge now passing test
10:51 snarkyboojum left
dalek kudo/nom: 95f6c00 | (Elizabeth Mattijsen)++ | src/core/Baggy.pm:
Added method "invert" to Baggy, as per TimToady's mumbling
tadzik std: my Baggy @pants 10:53
camelia std 4cde04e: OUTPUT«===SORRY!===␤In my declaration, typename 'Baggy' must be predeclared (or marked as declarative with :: prefix) at /tmp/VUJg5VWQbT line 1:␤------> my Baggy⏏ @pants␤Malformed my at /tmp/VUJg5VWQbT line 1:␤------> my ⏏…»
tadzik dum dum dum
masak std: role Rick::Astley {} 10:56
camelia std 4cde04e: OUTPUT«ok 00:00 42m␤»
lizmat :-) 10:58
www.washington.edu/news/2013/09/30/...hetic-dna/ .oO( a new life for bioperl6? )
masak r: role Rick { method never_gonna_give_you_up { ... } }; class Astley does Rick {} 10:59
camelia rakudo d185d5: OUTPUT«===SORRY!===␤Method 'never_gonna_give_you_up' must be implemented by Astley because it is required by a role␤»
tadzik heh, Warsaw University is also called UW
11:01 Mouq left
masak bah, article is behind a paywall. :/ 11:02
moritz masak: every Journal name that matches /^Nature/ implies that :/ 11:04
11:09 SamuraiJack_ left 11:17 frdmn is now known as frdmn|afk, SamuraiJack_ joined
dalek kudo/nom: 0808aca | (Elizabeth Mattijsen)++ | src/core/ (2 files):
Moved method .chrs from Iterable to Cool, as per other TimToady mumbling
tadzik hmm, we have chrs 11:19
11:19 benabik left
lizmat $ perl6 -e 'say 0x2202.chrs' 11:20
11:26 kay_ joined
masak lizmat++ # implementing mumblings 11:27
that must be every BDFL's wish, to mumble and things happen. 11:28
FROGGS masak: I have the same with my sons, really 11:29
11:29 iSlug joined 11:37 mstwu00 left
Ulti FROGGS they mumble and you do it? ;P 12:02
FROGGS yeah :o(
masak better than total silence, I guess. 12:03
FROGGS especially my youngest when it is about to sleep... he is talking in a way that only bats can here him
masak: depends on the time of day
masak yeah :) 12:04
12:05 iSlug left
lizmat r: my Int @a=^3; @a[1]:delete; @a.map:{say .WHAT.perl }; @a[1].WHAT.perl.say # losing type info deep in the bowels of MapIter 12:23
camelia rakudo 0808ac: OUTPUT«Int␤Any␤Int␤Int␤»
12:24 skids left
lizmat no more time to look at this now, maybe someone else has inspiration 12:24
commuting to Amsterdam for NL.pm meeting
12:29 mtk left
timotimo mhm mhm 12:31
yoleaux 07:17Z <FROGGS> timotimo: Spectest run doesn't look that bad, mind that there are changes in nom that we don't have atm: gist.github.com/FROGGS/0acdc051d455d9766bd8
12:34 sqirrel left 12:36 iSlug joined 12:44 berekuk joined 12:46 iSlug left 13:01 arnsholt joined 13:03 frettled joined 13:06 sqirrel joined 13:10 benabik joined 13:13 mtk joined 13:16 PacoAir joined 13:21 grondilu left 13:24 lowpro30 joined 13:28 ajr joined, ajr is now known as Guest78189 13:35 bluescreen10 joined 13:39 mberends left 13:43 btyler joined 13:51 skids joined 13:57 lowpro30_ joined 13:58 KroKite joined 13:59 lowpro30 left 14:09 xenoterracide_ joined 14:11 xinming left 14:12 xinming joined 14:16 denysonique left 14:18 sqirrel left
GlitchMr How can I do something like array[::2] from Python in Perl 6? In Python, [1, 2, 3, 4, 5][::2] returns [1, 3, 5]. 14:20
jnthn Index with a sequence maybe? 14:21
FROGGS r: say ^20[1,3..*]
camelia rakudo 0808ac: OUTPUT«0..^0␤»
jnthn ...
FROGGS was it something like that?
GlitchMr r: say ^20[1,3...*]
camelia rakudo 0808ac: OUTPUT«0..^0␤»
GlitchMr oh rite
FROGGS r: say ^20.flat[1,3..*] 14:22
jnthn yes, that but precedence
GlitchMr r: say (^20)[1,3...*]
camelia rakudo 0808ac: OUTPUT«0..^0␤»
rakudo 0808ac: OUTPUT«1 3 5 7 9 11 13 15 17 19␤»
FROGGS ahh, sure
jnthn heh, "..." wasn't me being "huh", it was the answer :P
GlitchMr r: say (^20)[1,3..*]
camelia rakudo 0808ac: OUTPUT«1 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19␤»
GlitchMr r: say (^20)[1,3...*]
camelia rakudo 0808ac: OUTPUT«1 3 5 7 9 11 13 15 17 19␤»
jnthn .. and ... are at different prec levels
The 1,3 is an argument to ...
But only the 3 is to .. 14:23
GlitchMr Seems to work great, and that without strange syntax like in Python.
FROGGS have fun translating ::2 to 1,3...* :o)
tadzik std: ::2 14:24
jnthn yeah, it's longer but nice that we get it out of re-using another langauge construct
camelia std 4cde04e: OUTPUT«===SORRY!===␤Two terms in a row at /tmp/1bmbN4gacz line 1:␤------> ::⏏2␤ expecting any of:␤ POST␤ feed_separator␤ infix or meta-infix␤ infixed function␤ postcircumfix␤ postfix␤ postfix_prefix_meta_operator␤ postop␤
jnthn hmm :)
tadzik oh, right, 2 is not a valid typename :)
jnthn r: sub prefix:<::>($n) { 1,1+$n ... * }; say (^20)[::2]
camelia rakudo 0808ac: OUTPUT«1 3 5 7 9 11 13 15 17 19␤»
jnthn bwahaha 14:25
TimToady of course, 0,2...* is :2, not 1,3...*
yoleaux 08:06Z <diakopter> TimToady: ltm s05 patch - "whitespace is the archtypical" .. archtypical? or archetypical? or archetypal?
TimToady well, prototypical might be better anyway 14:26
GlitchMr 1,3..* is [1::2], but I doubt anybody cares.
1,3...*, I mean.
jnthn TimToady: details... :P
dalek ecs: 3d9eda7 | larry++ | S05-regex.pod:
jnthn bah, didn't get chacne to backlog yet to see the commit that the typo is being fixed in...
FROGGS awwww :o( 14:28
.oO(They said "Get a life!", but I don't need a getter, I need a setter.)
14:30 daxim_ joined, daxim left 14:35 amits2878 joined
TimToady nr: say 10 Rxx rand 14:37
camelia niecza v24-95-ga6d4c5f: OUTPUT«0.87435645604243339 0.87435645604243339 0.87435645604243339 0.87435645604243339 0.87435645604243339 0.87435645604243339 0.87435645604243339 0.87435645604243339 0.87435645604243339 0.87435645604243339␤»
..rakudo 0808ac: OUTPUT«0.417565598475875 0.417565598475875 0.417565598475875 0.417565598475875 0.417565598475875 0.417565598475875 0.417565598475875 0.417565598475875 0.417565598475875 0.417565598475875␤»
amits2878 hi all ... m amit from india I have been using perl for 8 years now under various flavours of linux. i have worked with perl 5 but havent had opportunity with perl 6. Please can some guide me through so that i can pick perl 6 quickly
peteretep amits2878: What have you tried searching for? 14:38
moritz amits2878: perl6.org/ has all the good links we know about
amits2878 Hi peter ... i just happened to visit perl portal on wiki ... thru there i got to know abt perl6
TimToady but mostly just hang out here :) 14:39
timotimo i wonder what parrot raiser experienced when they tried to join this irc channel; in my experience, "noob questions" are hardly ever shut down or made fun of too much (maybe a tiny bit, but i don't recall any instance where that was done in a hurtful way)
amits2878 i was wondering on how different it is ... or if i can go ahead by using it right away ...
or are there some points to be noted before i make a head start
timotimo there are many differences, like having a proper object and type system deeply integrated into the language itself 14:40
peteretep amits2878: I'd recommend a thorough read of perl6.org, and if you have any further questions, asking them here
TimToady well, main thing to know if you're coming from Perl 5 is that sigils don't change
my @foo = 1,2,3; say @foo[1] 14:41
r: my @foo = 1,2,3; say @foo[1]
camelia rakudo 0808ac: OUTPUT«2␤»
TimToady in p5 that'd be a $ in the second case
timotimo there are only a few modules, and you look at modules.perl6.org instead of the cpan to find them; your best bet is to install the newest "Rakudo *" from rakudo.org to get a compiler, REPL and a bunch of useful modules and the module installer
peteretep If I commit to getting my considerable development team to use Perl 6 in production for at least one thing, can I get some free training? ;-) 14:42
TimToady if you learn by example, rosettacode.org is a good place to compare perl5 solutions to perl6 solutions
timotimo peteretep: you can get the kind of free training we all get just by hanging out on IRC and asking questions :P 14:43
amits2878 using Rakudo is a recommendation or a requiirement to use with perl 6. Also as mentioned by "timotimo" does cpan doesnt goes well with perl 6
peteretep timotimo: I meant for my team, rather than me, but you're right. I was just trying to arbitrage publicity there
timotimo yes, that's correct amits2878
peteretep: i know nothing of training, so the only thing i have to offer is the snarky answer i gave above :( 14:44
TimToady well, a snarky answer is better than silence, barely :)
amits2878 ok timo
14:44 KroKite left
timotimo is going AFK for a bit now 14:45
TimToady amits2878: rakudo is the most advanced implementation in terms of features
niecza is faster, but not being developed much at the moment, and lagging in features 14:46
rakudo runs on JVM as well as Parrot, and soon will run on MoarVM as well
amits2878 so modules in cpan, are they still compatible with perl 6 ... i mean perl 6 has backward compatability. i am asking as replacing cpan modules in case of going to perl 6 is a major overhauling task. 14:48
moritz amits2878: Perl 6 isn't backwards compatible with Perl 5.
amits2878 ok 14:49
GlitchMr amits2878, there is no CPAN for Perl 6 (for now), but some modules are already written - modules.perl6.org/ 14:50
amits2878 replicating features of perl 5 application to perl 6 is going to be big task then ... 14:53
GlitchMr Well, Perl 6 isn't Perl 5.
moritz amits2878: most big Perl 5 applications will likely never be ported to Perl 6 14:54
TimToady the whole point of Perl 6 was to break backward compatibility so we could fix things that are wrong with Perl 5
but we're planning to provide emulation of Perl 5 so it can interoperate with Perl 6
moritz amits2878: maybe in the future we'll have some kind of interoperability (like embedding a perl5 compiler in Rakudo), so that you can extend Perl 5 programs in Perl 6
TimToady so you don't have to translate a whole project
GlitchMr Just wondering, could NativeCall be used to call Perl 5 C functions? 14:55
moritz GlitchMr: that's very hard, since the p5 C api mostly consists of macros, not functions 14:56
GlitchMr hm, yeah
amits2878 thanks everyone here for initial tips. i guess learning perl 6 with assumptions of perl 5 would be difficult .
thanks everyone
TimToady the embedding api lets you do that
amits2878: but nevertheless, Perl 6 is a lot like Perl 5 in the nice ways
GlitchMr Also, it's not that Perl 5 is Perl 4. I mean, Perl 4 didn't have lots of things that are used in modern Perl - lexical variables, scalar filehandles, :: as package separator (but not that anybody used them), OOP, quoted regexes (qr), calling subroutines without &, and so on. 14:59
It annoys me when I see Perl code using &subroutine().
Technically Perl 5 could run Perl 4 code, but Perl 4 is not Perl 5. 15:01
TimToady Perl 6 can run Perl 5 code with the "run" command... :) 15:02
GlitchMr The plan (as far as I know) is to allow running Perl 5 code in Perl 6, so you could slowly move to Perl 6.
(if you want to)
15:04 REPLeffect left 15:14 zakharyas left 15:15 FROGGS left
PerlJam GlitchMr: for some reason I find your "it's not that Perl 5 is Perl 4" comment interesting 15:18
Perl 5 has features that weren't possible in Perl 4. Does Perl 6 have features that aren't possible in Perl 5? 15:19
GlitchMr hm 15:20
You can write 3 > 2 > 1
And overload operators.
timotimo sensible smartmatch
GlitchMr junctions 15:21
nwc10 concurrency
GlitchMr builtin grammars
timotimo really anything that hangs off of the type system, like multiple dispatch
PerlJam ah, but Perl 5 has most (if not all) of those t hings via CPAN
nwc10 doesn't have viable concurrency
PerlJam nwc10: "viable"?
GlitchMr Well, of course you can completely ignore Perl, and import Python. 15:22
It's just that it's easier in Perl 6.
nwc10 efficiently spread a task out to multiple CPUs, and get the result back
GlitchMr In Perl 5, impossible things are merely hard.
timotimo in perl 6, impossible things are fun
15:23 REPLeffect joined
amits2878 i was also thinking the way CPAN is elaborated ... does perl 6 really makes a leap ahead of perl 5 for being a potential replacement? or perl 5 and perl 6 has a different application in real world? 15:24
GlitchMr If we talk in terms of possible, anything that can access C is equal.
diakopter in the unreal world, perl 6 won't replace perl 5. same for the real world. 15:25
timotimo perl6 will be better for some use cases, perl5 will be better for others
PerlJam amits2878: I can tell you that I like programming in Perl 6 quite a bit more than Perl 5.
timotimo both will be developed for a long time
GlitchMr faq.perl6.org/ 15:26
"Why should I learn Perl 6? What's so great about it?"
15:26 Guest78189 left
PerlJam I've long told people that Perl just fits my brain. Perl 6 continues that by giving me more useful abstractions that I can not only think in, but use directly :) 15:26
GlitchMr Of course you can use Perl6::Gather in Perl 5 to have lazy lists.
But by importing everything, you make initialization slower, and programs use more memory.
15:27 ajr joined
amits2878 m not underestimating perl 6. with all these conversations i am trying figure out how i am going start with it 15:27
15:27 ajr is now known as Guest85734
diakopter amits2878: what do you use Perl 5 for? 15:27
15:27 Guest85734 is now known as ajr_
GlitchMr Besides, even if you use Perl6::Gather, other modules don't use lazy lists. 15:27
15:29 [Sno] left
amits2878 automation, job monitoring with lsf, cgi apps, gui programming using gtk and tk 15:29
more or less work goes around this
timotimo cgi apps must die :) 15:30
PerlJam amits2878: "cgi apps"? You might consider using Plack if you're still doing CGI :)
TimToady now, now
15:30 bluescreen10 left
timotimo TimToady: what, you don't like death threats? 15:30
GlitchMr CGI? I still use PHP for small web scripts. Should I update to CGI? 15:31
TimToady we try to give the appearance of being nice here, even if we're not :)
amits2878 well may be you are right ... but legacy systems with cgi in place, its not a mere programmer decision to make. on personal front yes there are better options to cgi
TimToady GlitchMr: you should probably write a PHP2Perl6 translator
GlitchMr I don't feel like writing a code for every of 5 thousand functions. 15:32
.oO( at least the sigls are easy :P)
GlitchMr Oh, right, old data, 8 thousand.
jnthn *sigils
PerlJam GlitchMr: that's why you write code that writes the code for you!
GlitchMr sub addslashes(Cool $value) { use Acme::Addslashes (); Acme::Addslashes::addslashes $value } # and so on 15:33
15:33 REPLeffect left
GlitchMr Some of PHP functions do really specific effect. 15:33
I stopped on addslashes. 15:34
PerlJam GlitchMr: write some code that will read the functions spec from php.net and generate the appropriate Perl ;-)
GlitchMr If they would have a spec.