»ö« 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.
grondilu In Complex.pm, why are $.re and $.im defined as num? Why not just Real? 00:24
grondilu remembers that to have annoyed him a bit while writing a RC entry lately.
grondilu now remembers it was in rosettacode.org/wiki/K-means%2B%2B_...ing#Perl_6 00:37
lowbitrate now understands why IRC is a slow conversation chat 00:43
dalek t--IRC/new-handler: f063741 | (Jarrod Funnell)++ | lib/Net/IRC/CommandHandler.pm:
CommandHandler facelift: 'method foo($ev) is cmd {}'
00:44
Timbus what th
i forgot that happened 00:45
Timbus lowbitrate, it depends on what you need it to be ready for :v 00:46
lowbitrate The basics of web dev. 00:47
Database access and, well, thats all. 00:48
Frameworks would be good, but nothing's new come out, so raw-PSGI isn't *that* harmful
Timbus 00:49
Timbus hrmmm not sure how well the DBI works yet
lowbitrate I see. 00:50
Timbus you should try it and see what works :P
lowbitrate Well, if if doesn't explode, why not. 00:51
Timbus when people need something to work, people tend to make it happen
profan Anyone here knowledgeable about obscure perl6 errors? 00:52
lowbitrate this would be a good side project, but I can't risk stability.
profan Running into some mess when trying to run panda's bootstrapper.
pastee.org/ufnwe
lowbitrate after everything's done in perl 5, I will try to port to perl 6.
Timbus that's probably a good idea 00:53
lowbitrate thanks for the help
I guess, by making a simple read of your error, that 'use' can't read more than one argument. 00:54
profan For clarity, the top part is the beginning of the bootstrapper (github.com/tadzik/panda/blob/maste...strap.pl), and the bottom part is the error ejected.
lowbitrate yet, I have no deep understanding, so I won't be helping too much
Timbus thats odd, i use lib 'etc'; all the time 00:55
grondilu profan: perl6 --version ?
profan grondilu: that might be it, "perl6 version 2012.01 built on parrot 4.0.0 revision 0 00:56
Timbus woooah
lowbitrate maybe use lib('...')
Timbus it belongs in a museum
lowbitrate or update lol
profan I seem to be running an ancient version of perl6, even though I just compiled and installed the latest rakudo.
Will sort that out :P
Timbus you might have two
lowbitrate good luck
profan Timbus: probably 00:57
Timbus .tell japhb Hey take a look at my CommandHandler branch for net::IRC and tell me what you think. I think it's great and could be further explored. Maybe integrate it into ::Bot and have things like command renaming and conflict resolution between modules 01:03
yoleaux Timbus: I'll pass your message to japhb.
profan Turned out it was the old perl6 in there still, sorted it out by building and installing it properly, thanks guys :) 01:23
[Coke] yay, think I finally tricked the submodules in moarvm into behaving 01:36
yay, I am now getting a moarvm build on the daily star build....
I suspect there may be far too much cheating going on here. :P 01:37
[Coke] has to kill it and restart it in screen. 01:57
geekosaur ob reptyr 01:58
[Coke] -> homeish 01:59
dalek kudo-star-daily: 9d79992 | coke++ | bin/star.sh:
* fix issue with moarvm git submodules
02:56
kudo-star-daily: e2424ff | coke++ | log/ (10 files):
today (automated commit)
[Coke] ^^ now contains runs for parrot & moar
will run daily going forward.
dj_goku lizmat: thanks about the gmake issue with OSX. 03:01
[Coke] m: my $a = set(1..7); say $a.combinations(3); 03:36
camelia rakudo-moar 851811: OUTPUT«1 2 3 1 2 4 1 2 5 1 2 6 1 2 7 1 3 4 1 3 5 1 3 6 1 3 7 1 4 5 1 4 6 1 4 7 1 5 6 1 5 7 1 6 7 2 3 4 2 3 5 2 3 6 2 3 7 2 4 5 2 4 6 2 4 7 2 5 6 2 5 7 2 6 7 3 4 5 3 4 6 3 4 7 3 5 6 3 5 7 3 6 7 4 5 6 4 5 7 4 6 7 5 6 7␤»
[Coke] m: my $a = set(1..7); say $a.combinations(3).perl
camelia rakudo-moar 851811: OUTPUT«([1, 2, 3], [1, 2, 4], [1, 2, 5], [1, 2, 6], [1, 2, 7], [1, 3, 4], [1, 3, 5], [1, 3, 6], [1, 3, 7], [1, 4, 5], [1, 4, 6], [1, 4, 7], [1, 5, 6], [1, 5, 7], [1, 6, 7], [2, 3, 4], [2, 3, 5], [2, 3, 6], [2, 3, 7], [2, 4, 5], [2, 4, 6], [2, 4, 7], [2, 5, 6], [2…»
profan So when panda tells me I need to precompile a dependency, what exactly am I supposed to do? Haven't managed to find any helpful information anywhere. 05:31
I've gotten to the point where I've figured out how to actually compile the module to a .pir file, but not where panda actually looks for it when compiling modules 05:32
BAMbanda I want to contribute to duckduckgo's search engine and they've open sourced instant search options 06:29
their api uses a perl backend
perl6 has captured my curiosity, would learning perl6 still help me learn how to contribute using their backend api? 06:30
will I be able to understand perl5 if I start using perl6? counter intuitive?
nwc10 At a guess, and to be honest, I think that it would be hard going from Perl 6 to Perl 5. However, I can't answer this from personal experience as I know Perl 5 very well, and don't know Perl 6 that well. 06:31
BAMbanda nwc10, may I ask why you think it would be difficult? Is the language that big of a difference? 06:32
nwc10 The "natural" idiomatic way of doing things will be different
BAMbanda ehh, i might as well learn both. why not :) 06:33
nwc10 I think if one has got used to various of the powerful Perl 6 operators, one will keep trying to look for them in Perl 5 to solve the problem, and find them missing
BAMbanda nwc10, yeah true, bit it'll allow for good compare and contrast. 06:36
If a feature is missing, it will reinforce my incentive to use perl6 to solve problems! 06:37
BAMbanda wait, most important of all. I'm sorry that I haven't read through all the documentation 06:41
will the existing CPAN modules work for the most part? Like without much modificatin 06:42
will Perl6 be backwards compatible
nwc10 no. Rather too much of CPAN ends up depending on implementation details of Perl 5 - either because it ends up using XS code (and hence is tied to the particular C implementation), or because it happens to rely on one of the ugly quirks of the language 06:44
I believe that the specific choise is not to worry about backwards compatibility, and fix the bigger picture problems with the language
there are plans on how to interface back to CPAN modules, but I'm not sure what the state of them is 06:45
BAMbanda perlcabal.org/syn/S01.html 06:47
nwc10, according to larry, you can choose which perl version you wish to use a the beginning of each lexical scope
:), good enough for me at the moment, that's actually pretty cool
tadzik if only it was implemented :) 07:07
(it is, partially)
timotimo hello o/ 07:28
i'm a bit sad i missed lowbitrate
i could have told 'em that DBIish is none too shabby and that dancer is quite cool, but there's no web framework using the async I/O or multithreading yet 07:29
Timbus i wasnt too sure, but i still tried to make him use it :o 07:30
timotimo :) 07:31
Timbus bully him into using perl 6
'stop enjoying yourself, stop enjoying yourself' i chant, while slapping his hand into the keyboard
timotimo hahahaha, that's mean :) 07:32
sergot morning o/ 07:38
dalek rlito: 616768c | (Flavio S. Glock)++ | / (4 files):
Perlito5 - grammar emitter - "before" bugfix
08:41
dalek rlito: 234d9e6 | (Flavio S. Glock)++ | / (3 files):
Perlito5 - grammar - allow special variables in "for" loop
08:47
lizmat m: "foo" ~~ m/<ws>+/ 09:43
masak good just-before-noon, #perl6
camelia rakudo-moar 851811: OUTPUT«(timeout)»
lizmat good *, masak, JIT for a new rakudobug, I'm afraid
timotimo that's not a bug 09:44
<ws> is perfectly capable of matching the empty string 09:45
as often as you'd like it to
lizmat but should it hang ?
timotimo there's an ample supply of empty strings in "foo"
masak lizmat: it shouldn't hang, but the fact that it doesn't is well-known and a bit hard to fix. 09:47
masak lizmat: it comes down to analysis of quantifiers of things that can always match '' 09:47
lizmat so it has a rakudobug already ?
masak of course, we could probably special-case <ws>+ and <ws>* and get a better user experience sooner :)
lizmat: I'm pretty sure it has a rakudobug already.
lizmat ok 09:48
masak lizmat: rt.perl.org/Ticket/Display.html?id=75586 09:51
timotimo i wonder if we could get something going in that direction with bytecode specialization related analysis 09:52
lizmat wow that's an old chestnut :-)
masak yep, comes up now and then ;) 09:53
I think we should start with <ws>+ and <ws>*, since people seem to go for those most often. 09:54
lunch &
woolfy1 jnthn : Remember the Hammerhead-whisky we had in Prague? it seems to be very special! www.whisky-pages.com/stories/hammerhead.htm 09:55
dalek rlito: b3219ea | (Flavio S. Glock)++ | / (4 files):
Perlito5 - js - implement "\( @a )"
10:08
jnthn I don't consider <some_rule_that_matches_zero_width>+ being infinite a Rakudo bug. 10:13
It's just a user error.
For <ws> we may want to provide a syntactic warning. 10:14
'cus I can imagine <ws>+ or <ws>* may be a common thinko.
lizmat it obviously is a trap, judging from the number of people who fell in it the past years
jnthn That particular case is, yeah. Which is why I can see it wants a compile time warning 10:15
I do not think we should go trying to do runtime detection of infinite loops though. :P
We already have enough problems with hard-to-eliminate sanity checks on hot paths. 10:16
jnthn But a <ws> that is literally quantified I can see us warning on. 10:16
Juerd Instead of trying to detect an infinite loop, would it be feasible to disallow repetition on zerowidths altogether? 10:17
jnthn We can't statically know what's zero-width. 10:19
We can't statically know <ws> is
It's just a normal rule.
And you can override anything.
lizmat that would imply you cannot make <ws>+ a compile time error, just a warning, is what you're saying? 10:20
jnthn lizmat: I think the contract implied between rule and ws lets us single it out for special treatment.
jnthn It's not error vs warning, it's more "is this common enough to look for with a heuristic" 10:22
lizmat ok
Timbus i accidentally triggered the same 'bug' today, parsing out a comma or space or both separated list: "asdf" ~~ /[','|\s?]+/; 10:28
clearly not correct regex but still an annoying way to find out
lizmat especially when deeply embedded in code :-( 10:31
Timbus i guess its too complicated for the regex engine to not search for a zero-width thing in the same position more than once?
lizmat maybe a JIT would see this and scream murder ? 10:32
sergot m: (1, Any).join(':').say; 10:42
camelia rakudo-moar 851811: OUTPUT«use of uninitialized value of type Any in string context␤1:␤»
sergot m: (1, '').join(':').say;
camelia rakudo-moar 851811: OUTPUT«1:␤»
sergot is it correct? 10:43
lizmat I would say yes
Timbus looks right
m: (1, ()).join(':').say; 10:44
camelia rakudo-moar 851811: OUTPUT«1␤»
lizmat an empty string is not an empty list
Timbus cool
sergot thanks :) 10:45
lizmat jnthn: when making the RESTRICTED settings, is there a reason not to include --ll-exception ? 10:59
dalek kudo/nom: 0a70378 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
We need $*CWD when we need %*ENV
11:27
kudo/nom: 3438956 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
Get proper $*DISTRO info for Mac OS X
kudo/nom: 0d32312 | (Elizabeth Mattijsen)++ | tools/build/Makefile- (3 files):
We need %*ENV and $*CWD to do qx//
lizmat seems some recent changes to nqp::tellfh broke IO::Handle.tell on parrot 11:52
$ perl6-p t/spec/integration/advent2010-day03.t
1..12
ok 1 - dir
ok 2 - dir
Can only use repr_unbox_int on a SixModelObject
in method tell at gen/parrot/CORE.setting:13960
does that ring a bell with anybody ?
donaldh OH 11:53
Well I implemented tellfh in nqp for parrot
and added tests. 11:54
lizmat well, it breaks one of the (new?) advent tests
donaldh oh, okay. I'll take a look 11:56
lizmat is $fh.gist.substr(0,2), 'IO', 'IO handle gist'; # seems to be the breaker 11:57
donaldh Yes, advent2010-day03.t is new 11:58
$fh.gist uses tell. 12:00
moritz eeks.
lizmat moritz: why the eeks ? 12:01
seems like a legit thing for .gist on an IO::Handle ?
donaldh "IO::Handle<$!path>(opened, at line {$.ins} / octet {$.tell})" 12:02
dalek kudo/nom: 973bae7 | (Elizabeth Mattijsen)++ | src/core/Kernel.pm:
Add darwin specific version / release to $*KERNEL
12:04
ast: 0f1f2cd | (Elizabeth Mattijsen)++ | S02-magicals/config.t:
darwin now as "macosx" as distro name
12:05
dalek kudo/nom: 1079ac1 | (Elizabeth Mattijsen)++ | docs/ChangeLog:
Mention $*DISTRO/KERNEL changes
12:11
donaldh is afk (while rakudo builds) 12:15
lizmat donaldh++
moritz lizmat: it doesn't seem legit for .gist to fail, that's all 12:20
lizmat ah ok :-)
moritz are all file handles tell-able?
lizmat sockets generally aren't, are they IO::Handle ?
moritz role IO::Socket does IO { ... } 12:21
seems like "no"
oh, but
nm
dalek kudo/nom: ac74318 | (Elizabeth Mattijsen)++ | tools/build/Makefile- (3 files):
Add --ll-exception to setting making

This is mostly useful for those cases where an error in the setting only shows when making the RESTRICTED setting. The stack trace then is *really* useful.
12:22
rlito: 2223dad | (Flavio S. Glock)++ | / (5 files):
Perlito5 - parser - implement 5.20 "prototype" attribute
12:24
dalek kudo-star-daily: 16c17ee | coke++ | bin/star.sh:
do less work when we don't need to
12:35
kudo-star-daily: d47ec36 | coke++ | bin/star.sh:
test jvm also
dalek kudo-star-daily: f925e5f | coke++ | log/ (7 files):
today (automated commit)
12:35
[Coke] ok. next run of ^^ should have log files for all three star backends. 12:38
lizmat [Coke]++
moritz [Coke]++ 12:44
[Coke] is there a -flag to disable deprecation warnings? 12:45
donaldh lizmat: nqp::tellfh was missing a :returns(int)
[Coke] or a 'use' ?
moritz [Coke]: I'm not aware of one, but IMHO it would be a good idea 12:47
[Coke] on by default is fine for dev work, but need a way to shut those off for shipped code. 12:49
dalek p: 5cebf27 | (Donald Hunter)++ | src/vm/parrot/QAST/Operations.nqp:
nqp::tellfh should return int. lizmat++
12:50
lizmat [Coke]: not yet, but as a stop-gap: Deprecation.report returns the deprecation report *and* clears the deprecations 13:06
m: say $*OS 13:07
camelia rakudo-moar 851811: OUTPUT«linux␤Saw 1 call to deprecated code during execution.␤================================================================================␤$*OS called at:␤ /tmp/tj1ejE2jiA, line 1␤Please use $*DISTRO.name instead.␤---------------------------------…»
lizmat m: say $*OS; END Deprecation.report;
camelia rakudo-moar 851811: OUTPUT«linux␤»
[Coke] that's fine for now; gives the dev a way to say "yes, I know about these" 13:08
lizmat cycling& 13:09
dalek rlito: 1060d42 | (Flavio S. Glock)++ | / (2 files):
Perlito5 - perl5 - implement 5.20 "hash slices"
13:10
dalek rlito: 4de7011 | (Flavio S. Glock)++ | t5/01-perlito/530-hash-slice.t:
Perlito5 - tests - 5.20 "hash slices"
13:44
slava-wr0k good time of day all :D 13:46
sergot m: my @a = 1,2,3,4,5; say @a.grep({ $_ > 3 }); 13:49
camelia rakudo-moar 851811: OUTPUT«4 5␤»
sergot m: my @a = 1,2,3,4,5; @a.grep({ $_ > 3 })>>:delete; say @a; 13:50
camelia rakudo-moar 851811: OUTPUT«===SORRY!=== Error while compiling /tmp/gPPU97ZJh9␤Missing << or >>␤at /tmp/gPPU97ZJh9:1␤------> 1,2,3,4,5; @a.grep({ $_ > 3 })>>:delete⏏; say @a;␤ expecting any of:␤ pair value␤»
sergot m: my @a = 1,2,3,4,5; @a.grep({ $_ > 3 })>>.:delete; say @a;
camelia rakudo-moar 851811: OUTPUT«Default constructor for 'Int' only takes named arguments␤ in method new at src/gen/m-CORE.setting:852␤ in method dispatch:<hyper> at src/gen/m-CORE.setting:1267␤ in block at /tmp/XnwhKXPeCB:1␤␤»
sergot oh, right...
moritz sergot: what are you trying to do? 13:53
@a.=grep: {! $_ > 3 } ?
[Coke] gah, building modules on jvm is slooooow 13:56
sergot moritz: I wanted to delete every item greater than 3. 13:57
moritz @a.=grep: { $_ <= 3 } 13:58
done
timotimo >>:delete doesn't work because :delete is just an adverb that's meaningful to &postcircumfix:<{ }> and &postcircumfix:<[ ]>
whereas >> wants a postfix operator (or a method call with a . in front)
sergot ok, thanks! 14:00
moritz++
timotimo++
dalek rlito: b98fb26 | (Flavio S. Glock)++ | / (3 files):
Perlito5 - js - implement 5.20 "hash slices"
14:15
nebuchadnezzar hello, something I found interesting techblog.realestate.com.au/the-abje...ak-typing/ 14:22
moritz I find it... weak 14:27
it rants about exceptions in Java
and says "don't use them, except..."
but doesn't provide good alternatives
the good alternatives (ADTs) that are listed later on don't work in java
Timbus i think the alternative he is uh 'lightly hinting towards', is scala 14:28
nebuchadnezzar I found this article as something like “use Scala or Haskell” ;-)
moritz it kinda looks like a Haskeller thrown into a Java universe and unable to cope with
it
yeah, using Scala or Haskell is fine if you build a new thing from scratch, and have a team that can work with it 14:30
moritz stops ranting about the rant, and goes home 14:31
dalek kudo-star-daily: 16fb5f2 | coke++ | log/ (15 files):
today (automated commit)
14:55
[Coke] ^^ there we go. as expected, moar & parrot are clean, jvm is not 14:56
liztormato [Coke]: Will look at jvm failures when I get back 14:59
[Coke] liz++ 15:00
bbkr hi. I've wrote simple tutorial for beginners about creating APIs: blogs.perl.org/users/pawel_bbkr_pab...n-rpc.html do you think it's worth including on planeteria.org/perl6/ ? 15:29
bbkr (assuming masak's feline hotel is not copyrighted :P ) 15:30
[Coke] can't include articles, only whole blogs.
bbkr that's ok 15:31
blog location is blogs.perl.org/users/pawel_bbkr_pabian/ . do you need RSS url ? 15:35
pmurias is there a moarvm jit gsoc blog somewhere? 15:37
PerlJam bbkr++ 15:38
JimmyZ pmurias: yes
JimmyZ pmurias: brrt-to-the-future.blogspot.com/201...chine.html 15:40
[Coke] bbkr: will add it after lunch, remind me. 15:43
bbkr [Coke]: thanks
when is your lunch? I have no idea what time zone you are in :) 15:44
dalek p: 6aa177f | (Donald Hunter)++ | src/vm/parrot/QAST/Operations.nqp:
Modify nqp::cwd on parrot to be consistent with jvm, moar.
16:11
p: 6cc7d6e | (Donald Hunter)++ | src/vm/parrot/QAST/Operations.nqp:
Add nqp::writefh on parrot backend.
masak hello, from a train! \o 16:13
nwc10 a moving train?
masak nwc10: yes. my frame of reference (which currently attaches to the train) is moving backwards. 16:23
colomon bbkr: [Coke] is normally in the Eastern US time zone, to the best of my knowledge. 16:27
nwc10 masak: and this is pleasing? :-) 16:29
(it is not yet clear if this train is likely to arrive in the right place at the right time, and experience suggests that it is wrong to assume the best) 16:30
masak nwc10: it's pleasing because the train is taking me home, and I don't have to do any more teaching today :)
nwc10 and tomorrow is a public holiday? 16:30
moritz it is in .de 16:31
nwc10 it is in .at
masak also in .se 16:32
moritz m: say 'de' ~| 'at' 16:40
camelia rakudo-moar 851811: OUTPUT«eu␤»
moritz \o/
nwc10 masak: implying that you (likely) don't have to do any teaching tomorrow either 16:41
masak correct. 16:42
moritz m: say <de se at>.combinations(2).perl
nwc10 yay.
camelia rakudo-moar 851811: OUTPUT«(["de", "se"], ["de", "at"], ["se", "at"]).list␤»
moritz m: for <de se at>.combinations(2) -> $c { say "$c: ", [~|] $c.list } 16:43
camelia rakudo-moar 851811: OUTPUT«de se: we␤de at: eu␤se at: su␤»
masak m: say .[0] ~| .[1] for <de se at>.combinations(2)
camelia rakudo-moar 851811: OUTPUT«we␤eu␤su␤»
masak moritz: :P 16:44
nwc10 r: say lines()
camelia rakudo-{parrot,moar} 851811: OUTPUT«There were three men came out of the West Their fortunes for to try And these three men made a solemn vow John Barleycorn must die They've ploughed, they've sewn, they've harrowed him in Threw clouds upon his head And these three men made a solem…»
..rakudo-jvm 851811: OUTPUT«␤»
nwc10 could we have something less ASCII?
moritz nwc10: any suggestions?
nwc10 no, not hugely. I wondered if it might be a fun game to change it monthly, based on some metric for contribution 16:45
some metric that roughly corresponds to useful, and is hard to game
moritz just changes it now and then
dalek albot: 03ae78a | moritz++ | stdin:
not-only-ASCCI stdin

  nwc10++
blatantly stolen from www.gaelicmatters.com/irish-songs-l...#gleanntan
16:49
moritz m: say lines[0]
camelia rakudo-moar 851811: OUTPUT«Céad slán ag sléibhte maorga Chontae Dhún na nGall␤»
nwc10 that will do nicely :-)
lizmat [Coke]: I assumed you meant spectest failures on jvm... :-( 16:51
incorrectly
moritz m: say slurp().comb.grep(*.chr > 127) 16:51
camelia rakudo-moar 851811: OUTPUT«===SORRY!===␤Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏C' (indicated by ⏏)␤»
moritz m: say slurp().comb.grep(*.ord > 127)
camelia rakudo-moar 851811: OUTPUT«é á é ú á é á ú ú ’ ú í í á ’ á í í ’ ú í ’ á ó ’ á í ú á í ó ’ á é á ú á ’ í é ó í í é á á é é é ú í í é á ó á á á á ó ú é á ’ á ’ á á ú á á í á ó á á á ’␤»
moritz m: say slurp().comb.grep(*.ord > 127).uniq.elems
camelia rakudo-moar 851811: OUTPUT«6␤»
moritz m: say slurp().comb.grep(*.ord > 127).elems 16:52
camelia rakudo-moar 851811: OUTPUT«78␤»
lizmat and now in NFG :-)
masak arewewebyet.com/ -- a page to be inspired by (for something similar for Perl 6 -- "are we production yet") 16:55
btyler masak: I think 'arewewebyet' is an easier one to keep tabs on, as the tools for building web apps fall into a few pretty clean categories 16:57
compared to the fairly nebulous idea of 'prod'
masak btyler: sure.
masak the fact that 'prod' is more nebulous doesn't mean we shouldn't have a page like that, though. 16:58
dalek rlito: 7985938 | (Flavio S. Glock)++ | / (5 files):
Perlito5 - js - implement '__SUB__'
16:59
ast: b103fcb | (Elizabeth Mattijsen)++ | S17-supply/watch_path.t:
Only run watch_path tests as subtest on OS X

Please add more or less reliable tests for your flavour of OS
17:05
[Coke] .tell bbkr blog added, will take a little while to show up in the feed. 17:16
yoleaux [Coke]: I'll pass your message to bbkr.
[Coke] lizmat: module failures on rakudo-star-jvm, sorry 17:18
though java was dirty for ages.
2 failures on rakudo.jvm
(spectest)
10 on rakudo.parrot
lizmat hmm.. ... I've only seen one and donaldh worked on that 17:19
[Coke] S17-supply/last.rakudo.jvm 7 - the last 15 works
S17-supply/minmax.rakudo.jvm 6 - ascending alpha works
lizmat ok, will look at those 17:20
itz I'm getting test fails on "panda install Inline" on both star and trunk. Is this a known issue?
dalek ast: a6f3a8b | (Elizabeth Mattijsen)++ | S (5 files):
Lowercase all OS names being checked against

As $*DISTRO.name is always lowercase and space deprived
[Coke] sees this in roast and shudders: 17:23
}
else {
lizmat you'd rather see:
[Coke] lizmat: you may also be interested in
lizmat } else {
?
[Coke] lizmat: yes, but code formatting isn't a hill I wish to die on. 17:24
lizmat: also, here: github.com/coke/rakudo-star-daily/...odules.log
lizmat the deprecation messages ?
[Coke] (look for fail) - those might warrant roast tests if they're failing for some reason that isn't already rakudobug'd
lizmat [Coke]: can't reproduce the S17-supply failures on JVM, must be load dependent 17:27
lizmat am about to do some X-Men 3D, so don't want to start anything deep right now 17:29
dalek ast: 4ac7069 | (Elizabeth Mattijsen)++ | packages/Test/Tap.pm:
Increase default timeout to 10 seconds

This will hopefully fix most spurious failures when under load
17:35
lizmat [Coke]: ^^^ should help with eliminating spurious errors in spectesting S17-supply/*.t 17:36
[Coke] lizmat++
lizmat off to do see some 3D X-Men&
[Coke] WOOT 17:38
raiph news.ycombinator.com/item?id=7803529 # Starting point for a Rakudo IDE? 17:46
[Coke] I figured we'd eventually use rakudo-jvm and take over eclipse 17:46
vendethiel let's use intellij instead :D 17:49
FROGGS o/ 17:51
yoleaux 27 May 2014 22:44Z <lizmat> FROGGS: please use @*INC for ordering, note that it now lives in src/core/Inc.pm
[Coke] wow, I haven't heard intellij in aaages.
vendethiel is using intellij in his internship and totally loving it 17:52
FROGGS lizmat: locally I have a version of eleven that uses @*INC and does not break panda
dalek kudo/eleven: 2daea40 | (Tobias Leich)++ | lib/lib.pm6:
"use lib" places a CompUnitRepo in @*INC
17:55
dalek kudo/eleven: ca7121f | (Tobias Leich)++ | src/core/CompUnitRepo/Local/ (2 files):
add .Str and .gist to CompUnitRepo::*
18:00
kudo/eleven: dfca3e9 | (Tobias Leich)++ | src/core/ (3 files):
use @*INC for the order of CompUnitRepos

Before we use a priority to do that, but @*INC is needed anyway. This also moves the setup code from core_epilog to Inc.pm.
dalek kudo/eleven: 070e6d5 | (Donald Hunter)++ | src/core/IO.pm:
Refactor readfh, seek, tell to use nqp ops on parrot. Remove backend specifics.
18:01
rakudo/eleven: 3094a76 | (Timo Paulssen)++ | src/Perl6/Optimizer.nqp:
rakudo/eleven: don't trip over custom range operators
FROGGS jnthn: are you there? 18:01
vendethiel m: my @letters = <a b>; say (@letters, @letters>>uc).combinations(2)>>join('').perl 18:07
camelia rakudo-moar 851811: OUTPUT«===SORRY!=== Error while compiling /tmp/E6e7FL_RTR␤Preceding context expects a term, but found infix > instead␤at /tmp/E6e7FL_RTR:1␤------> tters = <a b>; say (@letters, @letters>>⏏uc).combinations(2)>>join('').perl…»
vendethiel m: my @letters = <a b>; say (@letters, @letters>>.uc).combinations(2)>>.join('').perl 18:08
camelia rakudo-moar 851811: OUTPUT«("ab", "aAB", "bAB")␤»
vendethiel uh-oh 18:10
[Coke] r: "lazy anagrams".comb.pick(*).join.trim.say 18:12
camelia rakudo-moar 851811: OUTPUT«azn aasgayrlm␤»
..rakudo-parrot 851811: OUTPUT«rag ansalazmy␤»
..rakudo-jvm 851811: OUTPUT«ynsgaaamzarl␤»
vendethiel any idea how to do what I tried. Not sure why I get 3 letters stuff 18:15
retupmoca m: my @letters = <a b>; say (@letters, @letters>>.uc).flat.combinations(2)>>.join('').perl 18:18
camelia rakudo-moar 851811: OUTPUT«("ab", "aA", "aB", "bA", "bB", "AB")␤»
vendethiel I *really* don't like perl(6) flattening 18:21
... and it indeed seems it doesn't like me either.
donaldh some more IO housekeeping goodness github.com/rakudo/rakudo/pull/272 18:33
masak vendethiel: for what it's worth, I'm not entirely sold on flattening either. it's an "expensive" feature, in terms of unit of beginner surprise per unit of usefulness. 18:36
moritz tends to agree 18:37
vendethiel m: say <a b>.perl; my @a = <a b>; say @a.perl;
camelia rakudo-moar 851811: OUTPUT«("a", "b")␤Array.new("a", "b")␤»
vendethiel and I'm like, what ? putting it into a flattening container itemized it ?
dalek kudo/nom: f8a2b50 | (Donald Hunter)++ | src/core/IO.pm:
Remove special case in cwd for parrot backend.
18:38
kudo/nom: 65c175e | (Donald Hunter)++ | src/core/IO.pm:
Remove special case in IO::Handle.write for parrot backend.
kudo/nom: 0a5072c | (Donald Hunter)++ | tools/build/NQP_REVISION:
Bump NQP revision to get latest IO nqp ops on parrot.
kudo/nom: 42cd53f | (Tobias Leich)++ | / (2 files):
Merge pull request #272 from donaldh/parrot_io

Remove some more parrot specifics in IO.pm
masak m: say ['a', 'b'].perl 18:41
camelia rakudo-moar 851811: OUTPUT«["a", "b"]␤»
masak vendethiel: I think that's how the itemized version looks. Array.new() is the not-itemized version. 18:41
vendethiel I'm even more confused. 18:44
m: say ['a', 'b'].WHAT; say ('a', 'b').WHAT
camelia rakudo-moar 851811: OUTPUT«(Array)␤(Parcel)␤»
vendethiel what's going on in there ?
masak [] creates an Array (item). 18:45
() creates a Parcel.
vendethiel [] creates an Array (item) but Array.new doesn't ?
masak or is it the commas that create the Parcel? I guess it is.
vendethiel: Array.new creates an Array, too, sure.
vendethiel most probably the commas, but that's not really relevant here
masak vendethiel: but Array.new is not in item context, as far as I know. 18:46
moritz vendethiel: doc.perl6.org/language/containers
vendethiel okay. Right. So, Array.new creates an array, not in item context.
So why is it in item context in `(@a, @a>>.uc)` ? 18:47
m: say <a b>.perl; my @a = <a b>; say @a.perl; say (@a, @a>>.uc).perl; 18:48
camelia rakudo-moar 851811: OUTPUT«("a", "b")␤Array.new("a", "b")␤(Array.new("a", "b"), ("A", "B"))␤»
vendethiel so, it's not actually in item context. Then I don't know why I need to call .flat on that
masak me neither.
moritz vendethiel: doc.perl6.org/language/containers
masak detrain &
vendethiel moritz: I still can't comprehend or explain it
moritz vendethiel: operations can chose whether to work on a flat or a structured list 18:49
vendethiel that seems awful :/ 18:50
moritz vendethiel: if you want to make an operation always see the flat list, use .flat
vendethiel to me, it's like : "see these complicated rules about flattening and whatnot ? well, sometimes it's the operation that decides ! good luck, I hope you have tons of doc at your disposal - and good tools !"
I don't mean that meanly, but that's a big WAT for me here 18:51
"The % and @ sigils in Perl 6 generally indicate flattening. That means that flattening list context iterates over them as if there was no container boundary:" 18:53
donaldh FROGGS++ (for merging my pull request) 18:54
FROGGS donaldh++ # for doing the hard work :o) 18:55
(and a nice one)
moritz vendethiel: do you see the line you quoted as contradicting anything you've observed? 18:56
vendethiel yes. I'd expect the @ variables to flatten, as said in these lines
moritz in none of the examples I've seen a ()/Parcel structure inside a @-sigiled variable 18:58
note that this doesn't transitively apply to a any methods you call on an array variable 18:59
vendethiel it says "it flattens". I just expected it to .. flatten. like `[@foo]` flattens
donaldh FROGGS: only 63 more #?if parrot conditionals to go
FROGGS yeah
moritz m: my @a = <a b>; my @b = (@a, @a>>.uc); say @b.perl;
vendethiel m: my @a = <a b>; say @(@a, @a>>.uc).combinations(2)>>.join('').perl
camelia rakudo-moar 851811: OUTPUT«Array.new("a", "b", "A", "B")␤» 19:00
rakudo-moar 851811: OUTPUT«("ab", "aAB", "bAB")␤»
vendethiel still doesn't flatten with that @
vendethiel even more surprising now ... 19:00
moritz m: my @a = <a b>; say @(@a, @a>>.uc).perl 19:02
camelia rakudo-moar 851811: OUTPUT«("a", "b", ("A", "B")).list␤»
moritz vendethiel: @( ... ) is equivalent to .list, which means it removes an outer scalar container
vendethiel: it doesn't go inside the list and tries to flatten it
vendethiel at that point, I'll just stop talking about it before I get mad :) 19:03
I'll just put it in the "what I think are perl 6 misfeatures" and learn to deal with it
and remember to call .flat() explicitly when I want flattening, really 19:04
moritz I'm not saying it's good, just that there's a logic behind it
which I've tried to explain in doc.perl6.org/language/containers#N...g_contexts and evidently failed
vendethiel if it takes more than 2 pages to explain something that should be that simple, really :/
"why" 19:05
bbkr [Coke]: thanks for adding my blog 19:08
yoleaux 17:16Z <[Coke]> bbkr: blog added, will take a little while to show up in the feed.
[Coke] donaldh++ donaldh++ 19:09
[Coke] moritz: those docs are helpful, but I am probably always going to have to refer to those docs to figure out what is going on. 19:12
FROGGS lizmat: btw, eleven is not spectest clean atm, it looks like some tests push string to @*INC and we do not handle that case yet 19:18
vendethiel no uniq on p6doc? 19:28
moritz lots of stuffing missing on p6doc, actually :( 19:43
vendethiel I had hoped I could pass it a predicate 19:44
[Coke] a what now? 19:54
a comparator?
vendethiel yea 19:55
moritz a comparator would make it O(n^2) 19:56
with a transformer it could be linear
@words.uniq(:map(*.lc)) # might be useful and fast 19:57
dalek ast: 272eaa2 | (David Warring [email@hidden.address] | integration/advent2010-day23.t:
adding advent 2010 day 23
19:59
vendethiel moritz: yeah, yeah :) 20:04
[Coke] seems like that's covered by doing the transformation before the uniq.
@words.map(*.lc).uniq
vendethiel [Coke]: but then I don't have my words with their uppercases anymore ;) 20:05
[Coke] sure you do, they're in words.
unless you're keeping track of the order they were in, you're not going to know which was which post-transformation anyway. 20:06
vendethiel what ? 20:06
I'm not sure I understand
[Coke] let's say you have @words = <this THAT THIS that>; you do a unique my way, you get <this that>. What do you get moritz's way? 20:07
or, I suppose: what do YOU mean, you lose the uppercases?
vendethiel m: my @words = <HeLLo yOu How aRe yoU doiNG>; say @words.map(*.lc).uniq
camelia rakudo-moar 851811: OUTPUT«hello you how are doing␤»
vendethiel here's my issue.
[Coke] m: my @words = <HeLLo yOu How aRe yoU doiNG>; say @words.map(*.lc).uniq ; say @words
camelia rakudo-moar 851811: OUTPUT«hello you how are doing␤HeLLo yOu How aRe yoU doiNG␤»
[Coke] again, what's the issue?
vendethiel what's NOT the issue ? 20:08
[Coke] I see that the transformation is lowercase, yes. if you want the uppercased version, you have the original list still... 20:09
tadzik vendethiel: what do you expect to happen?
vendethiel but the original list doesn't have its duplicates filtered.
timotimo .o( when do we get tail call optimization? )
vendethiel .o( as soon as you implement it ! )
[Coke] if you filter the duplicates, how can you decide WHICH VERSIOn to keep?
moritz the first.
[Coke] so, you have @words = <this THAT THIS that> - what does your filtered version look like? 20:10
moritz <this THAT>
[Coke] is that significant, or you are you just picking the most likely tie breaker?
vendethiel whichever, really. 20:11
[Coke] see, if you don't care, why do you care? ;)
vendethiel I don't understand.
or are you just making fun of me ?
[Coke] (i get it, you could have ThiS thaT...)
tadzik can't you .uniq(:by(*.lc)) or something?
[Coke] No, I'm definitely not making fun of you.
tadzik and still, I'd be surprised if this was an actual problem you encountered 20:12
the xample seems... a bit contrived
vendethiel school stuff
well, not mine, but I'm trying to do the perl 6 version
moritz has written my %seen; my @uniq = @list.grep: { !%seen{.lc}++ }; or the equivalent thereof often enough 20:13
tadzik m: my @a = <a A B b>; @a.uniq(:by(*.lc)).perl.say 20:14
camelia rakudo-moar 851811: OUTPUT«("a", "A", "B", "b").list␤»
[Coke] m: my @a = <a A B b>; @a.uniq(:barf-orama(*.lc));
tadzik oh, I expected a builtin moritz transform :)
camelia ( no output )
[Coke] m: my @a = <a A B b>; @a.uniq(:bye(*.lc)); # worse. auto-named args-- 20:15
camelia ( no output )
PerlJam m: my @a = <a A B b>; @a.uniq(:as(*.lc)); 20:15
camelia ( no output )
PerlJam camelia m: my @a = <a A B b>; say @a.uniq(:as(*.lc));
camelia rakudo-moar 851811: OUTPUT«a B␤»
PerlJam oops 20:16
heh
tadzik heh, that worked :D
PerlJam m: my @a = <a A B b>; say @a.uniq(:as(*.lc));
camelia rakudo-moar 851811: OUTPUT«a B␤»
tadzik PerlJam++
moritz woah. 20:17
tadzik I expected that'd be named :by though, as with .sort(:by)
moritz :by is typically a comparison 20:17
PerlJam read the documentation
moritz lizmat++ # brining us .uniq(:as) and :with 20:18
moritz wonders if a grap would work faster than a gather/take in .uniq 20:19
timotimo a grap? 20:21
vendethiel what I needed to write was actually a program to combinate indents from a word instead of the other way around 20:23
that'd use comb tho I guess
moritz timotimo: sorry, grep 20:25
timotimo combinate? :)
moritz: i thought i had missed the newest hottest functional programming idiom or something :) 20:26
tadzik wow, that blogs.perl.org post 20:34
bbkr++
vendethiel could use <available> :D 20:35
bbkr++
colomon !!!! 20:40
timotimo nice post :) 20:41
colomon had no idea we had that functionality available. 20:42
timotimo that's why such a blog post is especially good to have, bbkr++ 20:44
vendethiel m: class UrlBuilder { my Str $.path = ""; method Str { $!path; }; method infix:</>($self: Str $path) { $!path ~= "/$path"; }; method infix:<.>( $!path ~= ".$path"; }; }; my $url = new UrlBuilder(url => "foo/bar"); say ($url / "foo" / "bar" . "json"); 20:49
camelia rakudo-moar 851811: OUTPUT«===SORRY!=== Error while compiling /tmp/9wc334eH_w␤Missing block␤at /tmp/9wc334eH_w:1␤------> = "/$path"; }; method infix:<.>( $!path ⏏~= ".$path"; }; }; my $url = new UrlBuil␤ expecting any of:␤ c…»
colomon timotimo: very good point. bbkr++
vendethiel m: class UrlBuilder { my Str $.path = ""; method Str { $!path; }; method infix:</>($self: Str $path) { $!path = $!path ~ "/$path"; }; method infix:<.>(Str $path) { $!path = $!path ~ ".$path"; }; }; my $url = new UrlBuilder(url => "foo/bar"); say ($url / "foo" / "bar" . "json"); 20:50
camelia rakudo-moar 851811: OUTPUT«===SORRY!=== Error while compiling /tmp/qK0uXM_U44␤Attribute $!path not declared in class UrlBuilder␤at /tmp/qK0uXM_U44:1␤------> path) { $!path = $!path ~ ".$path"; }; }⏏; my $url = new UrlBuilder(url => "foo/b…»
vendethiel uh?
vendethiel m: class UrlBuilder { my Str $.path = ""; method Str { $.path; }; method infix:</>($self: Str $path) { $.path = $.path ~ "/$path"; }; method infix:<.>($self: Str $path) { $.path = $.path ~ ".$path"; }; }; my $url = UrlBuilder.new(url => "foo/bar"); say ($url / "foo" / "bar" . "json"); 20:52
camelia rakudo-moar 851811: OUTPUT«===SORRY!=== Error while compiling /tmp/8c6QL8CZD8␤Unsupported use of . to concatenate strings; in Perl 6 please use ~␤at /tmp/8c6QL8CZD8:1␤------> "foo/bar"); say ($url / "foo" / "bar" . ⏏"json");␤»
vendethiel :[
donaldh an async IO version of JSON::RPC would be super awesome. bbkr++ 20:57
lizmat is back from the days of future past
FROGGS: will test eleven and fix any test issues (unless you beat me to it) 20:59
[Coke] lizmat: I should go see it, yes? ;) 21:05
colomon DOFP? It was good.
lizmat yes, I would put it in the top 3 of X-men movies :-)
seriously, for once the story made mostly sense
[Coke] when was the last time someone said that about such a messed up time travel plot? ;) 21:06
i wonder if I shoudl dig up the comic and read it before I go.
... or if said comic is now worth more. 21:07
colomon I'd maybe even consider it for top two.
[Coke]: I'm pretty sure what you remember of the comic is more than is needed. :)
It's the same logical setup, pretty much everything else is different.
[Coke] URK.
mint condition x-men#141 - 720USD 21:08
colomon That's $720?
[Coke] ditto #142.
I have both of those. (not mint, but in pretty good shape)
colomon desperately tries to remember if he has copies of those issues. (Certainly not mint if he does.)
colomon didn't start reading X-men on a regular basis until #153, but has bits and pieces of Byrne's run in the original 21:09
lizmat moritz: wrt to uniq using gather / take: that was actually put in by TimToady: the original implementation used map {} afair 21:11
[Coke] wow, amazing price drop off. "GEM MINT" 720$; "VERY FINE;NEAR MINT" $84 21:12
"raw value", whatever that means. (comicspriceguide.com)
timotimo there's things we know we have, things we don't know we have, things we know we don't have and probably also things we don't know we don't have. 21:15
lizmat timotimo: and then there's Mu 21:19
timotimo always. 21:22
lizmat
.oO( Perl 5 now has COW, Perl 6 has Mu )
21:23
( unless you specify -DPERL_NO_COW when compiling Perl 5) 21:24
lizmat donaldh: confirmed no pbs with parrot spectest anymore, so donaldh++ 21:29
[Coke] pbs? 21:30
lizmat problems ?
[Coke] ah 21:30
PBS == "public broadcasting system" to me.
lizmat I guess it is shorthand from another era :-) 21:30
from a time I used to ttalk 21:31
but for now, sleep& 21:32
donaldh sigh, looks like there is work needed on nqp::openpipe for all backends. And the function signature is wrong, which is probably my fault. 22:09
.tell jnthn Any thoughts about how to implement cancel on an async server socket's supply? Could we return a new Supply but cancellable or something? 22:12
yoleaux donaldh: I'll pass your message to jnthn.
jnthn evening, for a short moment. 22:46
yoleaux 22:12Z <donaldh> jnthn: Any thoughts about how to implement cancel on an async server socket's supply? Could we return a new Supply but cancellable or something?
jnthn .tell donaldh to see how it works for Supply.interval; you just .close the tap. 22:47
yoleaux jnthn: I'll pass your message to donaldh.
Ulti am I crazy to want something like this to exist? multi sub bag (Any $a where ?$a.^methods.grep('Bag') --> Bag) { $a.Bag } 23:54
lue r: my @a = 1,2,3,2; say @a; say @a.WHAT; say bag @a; say (bag @a).WHAT; # Ulti 23:55
camelia rakudo-{parrot,moar} 851811: OUTPUT«1 2 3 2␤(Array)␤bag(1, 2(2), 3)␤(Bag)␤»
..rakudo-jvm 851811: OUTPUT«1 2 3 2␤(Array)␤bag(2(2), 1, 3)␤(Bag)␤»
Ulti lue ? 23:56
lue There's already a "bag" that gives you a Bag
Ulti r: class MyStuff {}; my $s = MyStuff.new(); say bag $s; 23:57
camelia rakudo-{parrot,jvm,moar} 851811: OUTPUT«bag(MyStuff.new())␤»
Ulti MyStuff knows how to be a bag...
why would I want a bag with one thing in that knows how to make a bag out of itself 23:58
~$s calls .Str as far as I can tell?
lue then call $s.Bag :) 23:59
Ulti yeah but then why not just do Bag.new() ??? why have bag as a sub
lue But... didn't you wish for a sub bag ?
Ulti it begs to be the coercing type either through making a new bag or perhaps first checking if the object knows how to make a bag
no I pasted what I wished for