»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! | Rakudo Star Released!
Set by diakopter on 6 September 2010.
00:11 soroush left 00:25 adu joined 00:26 glow left 00:39 jferrero left 00:44 sftp left 00:49 PacoLinux left 00:59 PacoLinux joined 01:02 Trashlord left 01:04 QinGW joined 01:05 redicaps joined
jasonmay rakudo: [<] 'almost'.comb().map(*.ord) 01:25
p6eval rakudo : ( no output )
jasonmay rakudo: say([<] 'almost'.comb().map(*.ord))
p6eval rakudo : OUTPUT«Bool::True␤»
jasonmay is the object system metacircular? 01:27
if so, how can I get the methods of the meta?
diakopter rakudo: say [>] 'almost'.flip.comb.map(*.ord) 01:30
p6eval rakudo : OUTPUT«Bool::True␤»
01:34 masonkramer left, masonkramer_ joined
colomon metacircular? 01:53
lue ohai o/ 01:55
colomon \o 01:56
lue what exactly is the difference between an Instant and a DateTime object, besides the name?
jasonmay colomon: meta having a meta, etc 01:57
01:57 lichtkind left
jasonmay attributes having a meta, with attributes that have their own attributes, and so on 01:57
01:57 ch3ck3r joined
Tene jasonmay: You get their methods the same way you get the methods for anything else. 01:57
01:57 ch3ck left
jasonmay is ClassHOW the metaclass? 02:00
rakudo: ClassHOW.^methods
p6eval rakudo : OUTPUT«Method 'methods' not found for invocant of class ''␤ in main program body at line 22:/tmp/VuGrZwU2sC␤»
flussence lue: Instant is meant to be a calendar-agnostic opaque type for making Durations with, DateTime is the sugar-coated alternative 02:01
sort of like a UUID compared to a username, or something.
02:03 soroush joined 02:07 soroush left 02:08 soroush joined, soroush left, soroush joined, soroush left 02:09 soroush joined, soroush left, soroush joined 02:12 envi joined
lue So, Instant displays in whatever current calendar, while DateTime, unmodified, is just Gregorian? 02:20
TimToady Instant has no representation by itself 02:38
if you try to display an Instant, it should reformat your hard drive 02:42
02:43 jaldhar joined
lue rakudo: say DateTime.new("1963-11-23T17:15:00Z").Instant 02:44
p6eval rakudo : OUTPUT«Instant:1963-11-23T17:15:0.000000Z␤»
02:52 ch3ck joined 02:53 ch3ck3r left, molaf_ joined 02:57 molaf left 03:07 whiteknight left 03:09 p6eval left, dalek left 03:10 sorear left, diakopter left 03:15 cdarroch left, TimToady left 03:20 cotto joined 03:24 adu left 03:41 Bzek joined 03:42 Bzek_ left 03:47 Guest36106 left 03:49 wars joined 03:50 adu joined
wars haw-haw! 03:50
perl6中文频道 #perl6-cn 03:52
欢迎大家加入 03:53
大家 都在干什么啊? 04:06
04:13 wars left 04:21 nymacro joined 04:26 satyavvd joined 04:41 bbkr left 04:44 bbkr joined 04:53 orafu left 04:54 dalek joined, ChanServ sets mode: +v dalek, orafu joined, p6eval joined, ChanServ sets mode: +v p6eval 05:00 orafu left 05:01 orafu joined
lue rakudo: my @a = [1,2,3], [4,5,6], [7,8,9]; my @b = [ [1,2,3], [4,5,6], [7,8,9] ]; say @a.perl; say @b.perl; 05:03
p6eval rakudo : OUTPUT«[[1, 2, 3], [4, 5, 6], [7, 8, 9]]␤[[[1, 2, 3], [4, 5, 6], [7, 8, 9]]]␤»
lue hm, @b.perl comes out [1,2,3,4,5,6,7,8,9] on my system. (I'd put en.wikipedia.org/wiki/Special:Searc...=brackets, w/o the space between, but I think that still causes the auto-wikipedia linking) 05:04
o hey, it does still do that!
05:06 orafu left 05:07 orafu joined
lue nevermind, I found my problem. 05:09
05:10 sorear joined, diakopter joined, orafu left, TimToady joined 05:12 orafu joined
lue S32::Temporal doesn't seem to explain what an Instant or Duration is. Could it be somewhere else in the spec? 05:16
(the names are self-explanitory, but there are no details as to their methods, what they're for, etc.) 05:17
TimToady grep is your friend 05:19
05:20 orafu left
adu rakudo: kthxbai! 05:22
p6eval rakudo : OUTPUT«===SORRY!===␤Confused at line 22, near "kthxbai!"␤»
adu :/
lue
.oO(although ack is a friend that already knows some things about you)
05:23 orafu joined
allbery_b "bad touch!" 05:29
(yes, I knowabout ack. I keep wanting to hack syntax support into it)
lue
.oO( Some days I wonder if there's such a thing as "Temporal Science", and if I could major in it :) )
05:35
05:39 adu left 05:40 molaf_ left
allbery_b .oO { gallifrey is over there somewhere ----> } 05:44
05:52 hudnix left 05:55 ggoebel left, flatwhatson left, Grrrr left, spinclad left, hugme left, chitragupt left, literal left 05:56 hudnix joined 05:59 ggoebel joined, flatwhatson joined, Grrrr joined, spinclad joined, hugme joined, chitragupt joined, literal joined, hubbard.freenode.net sets mode: +v hugme 06:00 chitragupt left, chitragupt joined 06:07 cjk101010 left 06:12 Axius joined 06:13 fhelmberger joined 06:17 _kaare joined 06:28 ggoebel left 06:33 ggoebel joined
sorear good * #perl6 06:33
jasonmay: ClassHOW.^methods is supposed to work, but it still has a couple issues in Rakudo 06:36
so I guess "yes"
nqpnet: say(1.HOW)
p6eval nqpnet: OUTPUT«(timeout)»
sorear nqpnet: say(1.HOW.WHAT) 06:37
p6eval nqpnet: OUTPUT«XBuild Engine Version 2.6.7.0␤Mono, Version 2.6.7.0␤Copyright (C) Marek Sieradzki 2005-2008, Novell 2008-2009.␤␤Build started 12/10/2010 6:37:06 AM.␤__________________________________________________␤Project "/home/p6eval/6model/dotnet/runtime/Rakudo.Net.csproj" (default target(s))…
sorear jnthn: I brokes it
06:44 glow joined 06:50 Shozan joined
jasonmay sorear: sweet! 06:55
sorear "nqpnet" is part of jnthn's project to rewrite the object system 06:56
06:59 Axius left 07:01 justatheory left 07:10 scp1 left, scp1 joined 07:15 ggoebel left 07:19 ggoebel joined 07:24 cjk101010 joined 07:30 ggoebel left 07:32 daxim joined 07:34 cotto left 07:35 ggoebel joined 07:36 Wanjor joined, Wanjor left 07:45 ggoebel left 07:48 nymacro left 07:50 ggoebel joined
Shozan hm 07:52
moritz_ good morning
Shozan morning
sjohnson hi 07:56
07:57 ggoebel left
sorear good morning moritz_, Shozan 07:58
08:01 ggoebel joined 08:07 ggoebel left
Shozan does this rakudo thing have any kind of project plan or anything? 08:11
sorear I guess docs/ROADMAP
Shozan mm ok 08:12
08:14 ggoebel joined
Shozan and that is still up to date? 08:16
moritz_ I think so, yes 08:17
Shozan i'm just trying to navigate and get a sense of how you work :) 08:24
moritz_ one bit at a time :-)
Shozan ye..
i might be interested in helping you out, you see 08:25
moritz_ that would be awesome
I have to leave now, I'll be back in ~0.5 hours (unless the traffic jams) 08:28
Shozan hf 08:29
sorear IMPLEMENTOR'S RULING: := is to be seen as a low level operation, which other parts of the system can use. Since other forms of aliasing may be built upon :=, explicit use of := is allowed (but not required) to break aliasing set up by any other language feature, for instance, imports 08:32
If there are any cases where aliases need to be transparent to :=, I'd be interested to hear them
Shozan: welcome! 08:33
08:39 wtw joined
daxim *that* blog entry was masak's big friday surprise? I feel slightly let down 08:47
Shozan sorear, thanks 08:49
daxim: which blog entry was that? 08:50
best november?
daxim yes
Shozan but it was posted yesterday ;)
moritz_ daxim: I don't think so 09:01
tadzik masak wouldn't have resisted to say "Look, that was the big announcement!" 09:02
daxim we shall wait, then
moritz_ the day still has 14 hours, in CET 09:03
daxim meanwhile: $cookie for @everyone
moritz_ takes one. Thanks
tadzik oh, is there an occasion?
moritz_ there's always an occasion :-) 09:04
tadzik still has some candies from his birthday, passes the box to everyone 09:05
sorear it's exactly 1 month after my birthday. that's gotta count for something 09:06
09:06 risou left, risou joined
moritz_ it's a fortnight 'til christmas 09:07
tirania.org/blog/archive/2010/Dec-09-1.html # it's amazing what the mono developers have been up to 09:15
sorear I've been using 2.9 09:16
there's a 2.9-only bugfix that cuts 20 minutes off the time needed to run roast with niecza STD :)
09:17 risou_ joined 09:19 risou_ left 09:20 risou left 09:26 kensanata joined 09:28 dakkar joined 09:31 ggoebel left 09:39 dju joined 09:41 redicaps left 09:44 dju left, dju joined 10:05 JimmyZ joined, wamba joined 10:07 QinGW left 10:08 JimmyZ left 10:14 risou joined 10:15 dju left 10:16 dju joined 10:25 uniejo joined 10:37 jhuni left
sorear out 10:39
10:42 IllvilJa joined 10:48 flussence joined 10:53 glow left 11:05 satyavvd left 11:06 jferrero joined 11:08 cotto joined 11:10 _kaare left 11:18 sundar joined 11:20 sundar left 11:30 mary_se7en joined
mary_se7en helo, I was here few months ago and asked about turning a perl6 app to single executable, there was 2 small notes I will need to build a shared libparrot with dynamic loading and that I can only run the Perl 6 binary from the root directory of a Parrot checkout.. I wonder if there is any update.. I since I need to create an executable that will be used on large number of PCs... thanks all ^_^ 11:33
moritz_ mary_se7en: you can run it from anywhere if rakudo is properlz installed 11:34
lunch&
mary_se7en so I need to manually install rakudo on every PC right? 11:36
11:38 Trashlord joined 11:42 oyse joined, oyse left 11:43 risou left, risou_ joined 11:47 wamba left 11:50 wamba joined 11:52 mary_se7en left 11:53 _kaare joined 12:00 wamba left 12:01 wamba joined 12:02 smash joined
smash hello everyone 12:02
12:09 tzhs joined 12:20 flussence_ joined 12:22 am0c left, flussence left 12:30 zby joined 12:34 am0c joined 12:36 bluescreen joined 12:37 bluescreen is now known as Guest96690 12:39 glow joined 12:40 uniejo left 12:49 inak1 joined 12:50 inak1 left, Trashlord left 12:51 masak joined
masak greetings gentlemen. 12:51
are you ready?
tadzik go! 12:52
masak ok.
here comes...
...the big announcement.
*drum roll*
strangelyconsistent.org/blog/masaks...ng-contest
moritz_ glad you rolled the drum, not the eyes :-) 12:53
tadzik wow wow 12:54
masak this, ladies and gents, was the big announcement. 12:55
takadonet looks like I got here just in time!
moritz_ so, if there are multiple valid submissions, who will win?
masak moritz_: see WINNING.
strangelyconsistent.org/p6cc2010/WINNING
moritz_ sees 12:56
takadonet www.reddit.com/r/programming/commen...g_contest/
masak \o/ takadonet++
takadonet vote it up! 12:57
wow already a downvote :( 12:58
masak those trolls are quick... :)
moritz_ masak: your webserver doesn't send a charset header along with text documents 12:59
masak: it should, though
masak moritz_: agreed. any way I can make it do that?
moritz_ masak: if you webserver doesn't suck: yes 13:00
masak frankly I don't know whether it sucks or not.
I suspect it doesn't and that the bottleneck is in masak, not the webserver. :)
moritz_ and I can't know either, unless you tell me which one it is
for files with extensions, in apache you can do something like AddType 'text/plain; charset=utf-8' txt 13:01
masak I believe it's an Apache server, yes.
moritz_ or just AddDefaultCharset UTF-8 13:02
masak that sounds like what I want.
can this go into my .htaccess file? 13:03
moritz_ the AddT 13:04
sorry
yes, it can
13:05 masonkramer_ left
masak excellent. 13:05
better now? 13:06
moritz_ it is indeed 13:07
if you want to debug such things, I can highly recommend wget -S $url
masak noted. thanks.
moritz_ problem 3... I don't quite understand what you write 13:08
from the example it's clear that all range specs must must match the number 13:09
ie if the first range includes it, and the second range excludes it, the number is not in the ranges
masak right.
moritz_ why is it then important that ranges are evaluated from left to right?
masak a third (or fourth...) range might include it again. 13:10
in essence, the inclusions are unions and the exclusions are set differences. 13:11
moritz_ so +[1 .. 5] +[1..6] would not include 6
and neither would +[1..6] +[1..5]
correct?
masak both would be identical to just +[1..6]
13:12 hdanak joined
moritz_ tries to come up with an example where the order matters 13:12
masak +[1..5] -[2..4]
vs -[2..3] +[1..5]
er, -[2..4] 13:13
moritz_ the first would include 1 and 5
... and the second?
masak the second all of 1,2,3,4,5
since the exclusion operates on nothing. 13:14
moritz_ [x] click
masak :)
"Before any inclusions/exclusions have been made, all integers are excluded."
moritz_ wonders if the test can be made without constructing the full included subset 13:16
he, I think it's possible
masak :)
13:17 dual left
moritz_ once you understood the problem, parsing is likely the bigger problem :-) 13:17
masak I didn't really institute a policy about silence...
let's just say that if you plan to be a contestant, it's in your best interest not to discuss solutions. :)
13:17 risou joined
moritz_ didn't tell *how* to do the test 13:17
masak I'll happily discuss all of them in five weeks, though. :)
hdanak masak: what does the +[1..5] -[2..4] syntax do? the REPL returns the difference in sizes of sets... 13:18
masak right now, the best way to make me happy is to email me your Amazon wishlists :D
moritz_ hdanak: it's not Perl 6 syntax. see strangelyconsistent.org/blog/masaks...ng-contest 13:19
masak hdanak: as Perl 6, it means something different than in my problem.
hdanak ok i see
masak hdanak: as Perl 6, the arrays get numified as their lengths.
something I did not at all consider :)
13:19 risou_ left
hdanak can ranges be decreasing? 13:22
moritz_ no 13:23
only sequences can
smash masak++ # coding contest
moritz_ indeed, masak++ 13:24
masak thanks :) remember to upvote on proggit too :)
www.reddit.com/r/programming/commen...g_contest/
moritz_ nice christmas present :-)
masak good luck, everyone
moritz_ woa, 3 downvotes
moritz_ wonders why redditers are that hateful
masak surely there are more love-ful #perl6ers, though :) 13:25
hdanak will perl6 have coroutines?
masak hdanak: yes. 13:26
hdanak: they're called 'gather/take'
hdanak oh really
moritz_ and no need to use the future tense
masak ya rly
moritz_ they are implemented already
hdanak i thought gather/take was for lazy list comprehensions
moritz_ the two are not mutually exclusive
hdanak but i meant something like Perl6::Coro 13:27
masak laziness and coroutines are built on the same principle: delayed evaluation.
moritz_ gather { a; take; b } runs a(), and b() when the list is consumed
masak hdanak: I imagine something like that will be a module in Perl 6, too.
oha masak++ 13:28
masak you're appreciation makes me hopeful I'll see many contestants. may the best p6er win! 13:29
moritz_ masak: in p5, by "fast solution" do you mean an asymptotically fast algorithm, or one that actually runs fast on today's rakudo? 13:30
masak the former.
moritz_ ok
masak I basically mean something that wouldn't be rotten on long strings even on a fast Perl 6 implementation. 13:31
moritz_ just looked of all the problems 13:34
p1: interesting
p2: meh. (not really interesting algorithm, but ugly implementation) 13:35
p3: nice, probably not too hard
p4: need more thinking to figure out how hard it will be, which makes it interesting :-)
p5: a solved problem, which could be fun to implement 13:36
hdanak something tells me that using perl5 threads on a robot is a bad idea...
moritz_ depends on the robot :-)
hdanak trying to do computer vision stuff in the background while looping through sensors and AI stuff in multiple perl5 threads, but i'm not sure what kind of performance hit it will take 13:37
moritz_ if it's just for a game that runs on the inside of the huge fighting robot, go right ahead :-)
masak moritz_: an interesting review. :) you might be right about p2, but I also believe I'll receive a lot of variety there.
hdanak masak: p2 seems interesting
moritz_ heh :-) 13:38
hdanak in that you can solve it using math
or you can bash it with algorithms
or a mix of both
moritz_ masak: there is some challenge to making a solution to such a problem nicely readable though
masak moritz_: yes. and fast.
hdanak moritz_: well, i'm thinking along the lines of concentric circles, and an edge case if the point lies in between 13:39
moritz_ masak: did you solve all problems already?
colomon masak++ !!!!
masak moritz_: yes.
colomon implemented p2 months ago....
masak moritz_: for me, they take about 2 hours each.
moritz_ masak: I think you just killed my weekend :-) 13:40
masak :D
but I figured since people might have to learn about Perl 6, Rakudo and the problems, I'll give people a week for each problem.
13:42 mtk joined
hdanak does parrot actually support python and ruby right now, or is it just a mere possibility? 13:43
moritz_ hdanak: the compilers for both are very immature, and not at all feature complete 13:44
ie not at the point where you can take an arbitrary library written in that language, and run it 13:45
hdanak hmm 13:46
well, i still need to learn ruby though... but i severely dislike python 13:47
13:47 thundergnat joined
takadonet thundergnat: hello sir 13:47
thundergnat Hi takadonet et all 13:48
masak hi thundergnat!
thundergnat masak: programming contest! ooo!
masak \o/
masak suddenly feels he hasn't over-hyped the Big Announcement too much after all :) 13:49
moritz_ currently most of the books on my wishlist aren't even published yet 13:50
thundergnat #5) neutro Algorithm-Diff - use Algorithm::Diff; my $lcs = LCS($string1, $string2); # Heh
moritz_ :-)
masak heh :) 13:51
thundergnat BTW, in S29 under Conversions, .flat is entered twice. I could edit myself but I wanted to check that it was actually extreaneous and I'm not just missing some context. 13:54
masak thundergnat: it looks like a thinko.
dalek ecs: 493684e | thundergnat++ | S29-functions.pod:
Removed redundant second entry for .flat
13:59
14:01 sftp joined
thundergnat Also, while I'm questioning things, Is the err operator depricated or NYI? It exists in Grammer.pm but isn't mentioned in S03. 14:02
moritz_ std: 1 err 2
p6eval std a194beb: OUTPUT«===SORRY!===␤Two terms in a row at /tmp/XnbgCy79hj line 1:␤------> 1 ⏏err 2␤ expecting any of:␤ bracketed infix␤ infix or meta-infix␤ statement modifier loop␤Parse failed␤FAILED 00:01 120m␤»
thundergnat rakudo: say 3 err 5
p6eval rakudo : OUTPUT«3␤»
masak I think 'err' mutated into 'orelse'. 14:03
but I might misremember.
moritz_ if it's not in the specs, and not in STD, it shouldn't exist
thundergnat github.com/rakudo/rakudo/blob/mast...r.pm#L1974 should probably go away then. 14:04
arnsholt masak: For problem 1, should we consider permutations of the order of the matrices, or only bracketings of neighbouring matrixes/brackets? 14:09
masak the latter.
moritz_ arnsholt: matrix multiplication isn't commutative
so you can't just permute multiplications
masak no, not in general.
arnsholt moritz_: I know, but for some inputss there might be permutations that are better 14:10
Which is why I wondered. Especially because enumerating all those permutations would make any hope of an efficient algorithm evaporate =)
masak arnsholt: even when the dimensions permit a reordering of the matrices, you'd be changing the original multiplication in a way that is likely not desired. 14:11
arnsholt True, true
An excellent point, in fact
Just goes to show that I don't know enough maths =) 14:12
moritz_ that's what I meant with "not commutative" :-)
arnsholt I have what I think is an interesting way to look at it as well =) 14:13
masak remember that just by signing up for the contest, you make the chance of winning 100 EUR worth of books non-zero.
moritz_ you mean if there only sign ups without valid submissions :-) 14:15
masak right :) 14:17
14:18 risou_ joined 14:20 risou left 14:32 redicaps joined 14:33 mkramer joined 14:53 ggoebel joined
pmichaud masak++ # big announcement 15:06
phenny pmichaud: 25 Nov 14:19Z <tadzik> tell pmichaud how didn't neutro build for Star, what was the reason?
pmichaud: 26 Nov 19:16Z <tadzik> tell pmichaud may I get the access to perl 6 RT? I found like 10 bugs today which are alredy working and can be closed
masak \o/
pmichaud 100€ can buy a lot of kindle books :) 15:07
am I somehow disqualified from entering?
masak pmichaud: no, that's why I denied you prior knowledge the other day. :)
pmichaud aha
masak feel free to sign up.
pmichaud is TimToady++ likely to enter? ;-)
masak I was wondering that too :)
15:08 uniejo joined
masak that would be... interesting. 15:08
moritz_ it would be indeed
15:09 flatwhatson left
pmichaud hmmm, I've already solved #3 on paper (for handling character classes in nqp) 15:10
masak *nod*
moritz_ inversion lists!
masak (dang) :)
moritz_ cackles evily
masak don't tell anyone, OK? :) 15:11
moritz_ but actually inversion lists are not the easiest solution for this one
masak no?
moritz_ no 15:12
takadonet pmichaud: how were your holiday's? 15:13
pmichaud overall they were really good
takadonet good to hear 15:14
15:15 Trashlord joined 15:21 MayDaniel joined, flatwhatson joined
dalek : ee1a853 | duff++ | misc/perl6advent-2010/articles/feed.pod:
Start on day 10 article
15:22
15:22 tzhs left
PerlJam okay, I started on my day 10 advent post last night, but I fell asleep. 15:22
Review what I have so far if you please (see above)
masak reviews
PerlJam: "...the data feeds from one operation to the next." 15:23
shouldn't that be "from one operation to the previous"? :) 15:24
PerlJam don't make me second guess my prose too much or I'll spend all day futzing with it :)
masak just pointing out that "the next" operator might as well be read as "the one to the right", which wasn't what you intended. 15:25
moritz_ then just say "to the left" instead of "next"
masak also, it'd be nice if it was a bit clearer that Perl 6 doesn't force the use of piping operators, just so we don't give any diehard Perl 5 users an unnecessary heart attack :)
PerlJam aye, already changing it
masak as in "would be written" -> "could be written", for example. 15:26
actually, I think I'd prefer to have both the functional and then methodological variants in there, just to show that they're still possible. (and that they also promote one reading direction each) 15:28
15:28 redicaps left
PerlJam masak: yep, adding a note and such an example now :) 15:28
also, fyi, I was going to end the post with some real, working examples
masak \o/
Trashlord hey dudes 15:29
masak Trashlord! \o/
Trashlord how's it going
masak splendid. and you?
PerlJam obtains some Dr Pepper for continued writing 15:30
Trashlord same, just a slight headache, meh
masak huh. 9 upvotes, 9 downvotes on www.reddit.com/r/programming/commen...g_contest/
on average, Reddit is completely neutral to the idea of a Perl 6 Coding Contest. :P 15:31
awwaiid masak: I suggest making the WINNING details more prominent, or summarizing it on the front page or something. It's not immediately obvious how it is a 'contest' until I started reading that
masak awwaiid: good idea. I'll make it more prominent. 15:32
15:32 jaldhar left
PerlJam masak: btw, your "big announcement" was an *excellent* idea. (in case you weren't sure ;) 15:33
masak thanks :)
it sure seems to have struck the right note here ;)
15:38 Patterner left
moritz_ www.perlmonks.org/?node_id=876467 # I did some advertising for the contest 15:43
masak moritz_++ 15:44
awwaiid: better? strangelyconsistent.org/blog/masaks...ng-contest
PerlJam and an anonymonk already critiqued that the problems are mathematically bent. 15:45
moritz_ just commented really, I didn't read that as critic
PerlJam eh maybe
masak same here. 15:46
I'm thinking of replying.
15:48 hercynium joined 15:49 Psyche^ joined, Psyche^ is now known as Patterner
PerlJam is getting slowly sucked into too much reading with reddit, perlmonks, email, twitter, etc. :( 15:50
15:52 plainhao joined
[particle] thinks perljam needs a text to speech app to read all these aloud 15:54
PerlJam [particle]: but then I'll have a conflict with my currently playing music
[particle] i think a popular phone app that reads every tweet aloud as it is received would be great for society 15:56
awwaiid masak -- better. As a contestent it's a bit hard to know how I should trust you though -- maybe this is all a rouse and you're going to give the 100 to your friend or something :) . But that is the nature of a single-sponsor contest I supose 15:58
15:58 thundergnat left
masak awwaiid: yes. 15:58
awwaiid: if it's any consolation, I plan to publish everyone's submissions after the contest.
awwaiid well _I_ trust you just fine :)
PerlJam awwaiid: I'm still going to play even knowing that masak may just keep the money :) 15:59
awwaiid hehe
masak I promise I will do my utmost to buy someone 100 EUR worth of books. you have my word. :)
I hope all my contestants will keep their end of the deal by being brilliant in unambiguous ways. 16:00
[particle] will you make the book list public, too? ;)
oha [particle]: eheh :)
masak [particle]: that's at the discretion of the winner.
colomon oh no, better take those romance novels off my wish list! ;)
masak colomon: thought you were going to say "Python books" :) 16:01
colomon oh heavens, no, I'd never put a Python book on my wish list!!
[particle] you buy those cash, and bring a paper bag. 16:02
16:02 nancy joined
awwaiid (masak: minor nit, you might remove some \n's from your <pre> list of criteria) 16:02
16:02 nancy is now known as Guest95728
masak awwaiid: I considered that. now I will :) 16:03
Guest95728 rakudo: doubles = [ c *2 for c in 'perl']
p6eval rakudo : OUTPUT«===SORRY!===␤Confused at line 22, near "doubles = "␤»
masak rakudo: say $_ * 2 for 'perl'.comb>>.ord 16:04
p6eval rakudo : OUTPUT«224␤202␤228␤216␤»
masak rakudo: my @soubles = ($_ * 2 for 'perl'.comb>>.ord); say @doubles.perl 16:05
p6eval rakudo : OUTPUT«===SORRY!===␤Symbol '@doubles' not predeclared in <anonymous> (/tmp/WGGwBCe0Ak:22)␤»
masak rakudo: my @doubles = ($_ * 2 for 'perl'.comb>>.ord); say @doubles.perl
p6eval rakudo : OUTPUT«[224, 202, 228, 216]␤»
masak \o/
Guest95728 masak: :)))
masak rakudo++
Guest95728: Python background? 16:06
Guest95728 masak: yup :/
masak hugs Guest95728
Guest95728 masak: moving slowlllly to perl6 :D 16:07
masak awwaiid: better, yes? strangelyconsistent.org/blog/masaks...ng-contest 16:08
Guest95728: no worries. even though you write with a heavy Python accent, I understood what you wanted. :) 16:09
16:12 zby left 16:14 kensanata left, glow left
awwaiid masak: yes 16:14
masak \o/ 16:15
awwaiid++ # tiny, but important, nits
16:16 _kaare left, uasi joined
uasi hi 16:16
std: [ { say 'hi' } ]>>.()
p6eval std a194beb: OUTPUT«ok 00:01 120m␤»
uasi rakudo: [ { say 'hi' } ]>>.()
p6eval rakudo : OUTPUT«Tried to find null name␤ in main program body at line 22:/tmp/h1pXG_t5IT␤»
Guest95728 rakudo: L+1 for L in [1,2,3] 16:17
p6eval rakudo : OUTPUT«Could not find sub &in␤ in main program body at line 22:/tmp/X_NrIw1pWu␤»
Guest95728 rakudo: [L+1 for L in [1,2,3]]
p6eval rakudo : OUTPUT«Could not find sub &in␤ in main program body at line 22:/tmp/WEpfxZEcFw␤»
awwaiid man... I added a comment to the contest link on reddit and now reddit has given me a 5-year-club prize. Time flies.
Guest95728 rakudo: $L+=1 for $L in {1,2,3} 16:18
p6eval rakudo : OUTPUT«===SORRY!===␤Confused at line 22, near "$L+=1 for "␤»
uasi rakudo: [ { say 'hi' } ]>>()
p6eval rakudo : OUTPUT«Tried to find null name␤ in main program body at line 22:/tmp/vanzAwZaKd␤»
uasi found that bug while solving the problem 3 16:19
16:20 Guest95728 left
TimToady rakudo: say ~ ord "perl" 16:20
p6eval rakudo : OUTPUT«112 101 114 108␤»
TimToady masak: ^^ don't need .comb» 16:21
masak TimToady: good to know.
TimToady well, maybe, unless we decide that's a bad idea
masak uasi: that's a known bug, I think.
TimToady rakudo: say +ord "perl" 16:22
p6eval rakudo : OUTPUT«4␤»
masak uasi: diakopter found it a few months ago.
TimToady that seems wrongish
uasi ah
masak rakudo: my @a = 1,2,3; @a>>++; say @a.perl
p6eval rakudo : OUTPUT«[2, 3, 4]␤»
masak Guest96690: ^^
nom & 16:23
16:23 masak left
TimToady rakudo: say chr(112, 101, 114, 108) 16:24
p6eval rakudo : OUTPUT«Too many positional parameters passed; got 4 but expected 1␤ in 'chr' at line 3304:CORE.setting␤ in main program body at line 22:/tmp/nD1V6IWQ2g␤»
TimToady and not the inverse of chr as it stands 16:25
rakudo: say chr(ord("perl"))
p6eval rakudo : OUTPUT«␤»
TimToady rakudo: say "perl".Buf 16:27
p6eval rakudo : OUTPUT«Method 'Buf' not found for invocant of class 'Str'␤ in main program body at line 22:/tmp/iTszj4tOl0␤»
oha am i wrong or in chr(ord("perl")) it call the @a signature instead of ($a) signature? and chr(123,101,114,108) do not call @a?
TimToady but the chr(ord()) should have called @a instead of *@a 16:28
so I doubt there's a sig with @a
and I'm quite sure people will be surprised if +ord($string) returns the number of characters rather than the first codepoint 16:29
so maybe we should have an ords() function do that instead 16:31
oha iff i'm not wrong, looking at rakudo ''.ord() fails, 'a'.ord() return a scalar and 'ab'.ord() return a gather/take list 16:35
TimToady I think we should split ord/ords 16:39
colomon +1 .... ish? 16:41
TimToady we can't force people to say +ord($s)[0]
colomon TimToady: but isn't the right answer to leave off the + ?
TimToady the whole point of ord is to get the number of a codepoint, so + shouldn't change that 16:42
it'll have + semantics any time you use it as a number anyway
the only way to finesse it would be to return a different list type that knows it's supposed to return the head when used as a scalar 16:43
16:43 icwiener joined
TimToady and that seems like a bit of a crock 16:43
dalek : 763904e | duff++ | misc/perl6advent-2010/articles/feed.pod:
improvements from #perl6; added working examples
PerlJam everybody re-comment. 16:45
oha rakudo: multi sub chr(*@a) { [~] @a>>.chr }; say chr(ord('perl'));
colomon TimToady: I guess where I have an issue with the idea is that it isn't obvious to me that Str.ord should return only the first codepoint. perhaps just because I haven't really used ord much.
p6eval rakudo : OUTPUT«perl␤»
colomon it seems to me that p6 has a quasi-consistent pattern of returning "one or a list" of items from its builtins. 16:46
oha TimToady: what if the ord() returns a OrdList which overload + to return the first element?
colomon oha: that strikes me as a very bad idea. it's opening up an ugly can of worms, and violating Liskov as well. 16:47
oha colomon: agreed 16:48
TimToady PerlJam: I'd just write say ~@who-it's-at instead of using .join(" ")
ord has a long history in programming languages of only paying attention to the first character of a string 16:50
colomon TimToady: then we should probably honor that history
TimToady or say "@who-it's-at";
PerlJam you mean you mean "@who-its-at[]" :) 16:52
colomon rakudo: say pir::box__PI(pir::ord__IS("This is a test"));
p6eval rakudo : OUTPUT«84␤»
PerlJam (I was trying to avoid that)
16:52 justatheory joined
PerlJam I'll go with prefix:<~> 16:52
TimToady and this way .ord can avoid starting up a useless pipeline, and .ords can be optimized for listiness
PerlJam: right, needs []
colomon TimToady: we already avoid a useless pipeline. 16:53
The interesting plus is you can say "".ords and get a meaningful result instead of a fail.
PerlJam TimToady: re ord paying attention to only the first character. I've long thought that a mistake or at the very least annoying.
TimToady how can use avoid a useless pipeline on .ord[0] semantics?
if it's a multichar string?
colomon TimToady: given self.chars ... 16:54
TimToady: you change the spec, I'll change Rakudo? :)
dalek : 01f44e8 | duff++ | misc/perl6advent-2010/articles/feed.pod:
remove .join from examples
16:55
PerlJam other advent authors: how did you go from POD to wordpress? 16:58
moritz_ pod2html => hand edit 16:59
(join ech paragraph to one line, fix links that your pod2html couldn't convert)
PerlJam okay, that's what I'm doing too. Just thought there might be a better way
colomon just wrote in wordpress, distressingly low-tech ;) 17:00
hmmm, ord / ords patch failed to compile, and it's lunch time. 17:01
moritz_ rakudo: grammar G { rule TOP { ^ \s* $ } }; say ?G.parse(' ') 17:10
p6eval rakudo : OUTPUT«Bool::False␤»
dalek ecs: b578b58 | TimToady++ | S29-functions.pod:
Distinguish listy ords/chrs from ord/chr

It will be too confusing to overload ord/chr with both scalar and list semantics. This will also give more information to the optimizer at compile time, since it cannot know whether .ord will be passed a single- or multi-character string
17:11
moritz_ urks
(that was related to the regex thing)
the implicit <.ws> before the ^ matches, so ^ is not at the start of the line anymore 17:13
TimToady yes, I've said before that such usage probably ought to generate a compile-time error, or maybe we should suppress .ws before certain tokens 17:16
matching \s* in a rule is suspect in any case
moritz_ rakudo: grammar G { rule TOP { ^ \w* $ } }; say ?G.parse(' ') 17:17
p6eval rakudo : OUTPUT«Bool::False␤»
moritz_ doesn't need \s* to demonstrate that weirdness :-)
TimToady yes, separate issue
17:18 ilogger2 joined, ChanServ sets mode: +v ilogger2
moritz_ ^ does not match whitespace 17:18
TimToady I was talking about \s*, not ^ 17:19
PerlJam I think moritz_ means it wouldn't have helped in this case.
moritz_ right 17:20
TimToady I wasn't claiming it would
I'm discussing "separate issue"
moritz_ right
(in fact I only had a \s* in there for testing, because the implicit <.ws> didn'T seem to work, but it turned out that the whitespace before the ^ was the problem) 17:21
TimToady which is that currently that \s* will never match anything in that rule
even if the ^ did match
PerlJam votes for a warning on explicit whitespace matching whenever :sigspace is in effect. 17:23
we could always relax that if we later decide to make it magically work
(plus it trains people on the Right Way :)
TimToady otoh, LTM currently suppresses <.ws> in rules that begin with alternations 17:24
so suppressing it before ^ and ^^ would be similar
17:24 dac joined
PerlJam and after $$ ? 17:25
TimToady after isn't a problem, but before is, since it will eat the \n
17:27 dac left, cdarroch joined, cdarroch left, cdarroch joined
PerlJam won't a <.ws> after $$ eat whitespace that another rule in sequence may want to anchor to? 17:27
bbkr std: map { }
p6eval std a194beb: OUTPUT«ok 00:01 118m␤»
bbkr rakudo: map { }
p6eval rakudo : OUTPUT«Can't call map() with a Hash argument, Callable required␤You probably wrote a Hash composer accidentally - try to␤disambiguate it with a ; directly after the opening brace␤ in 'Any::map' at line 1468:CORE.setting␤ in 'map' at line 1814:CORE.setting␤ in main program body at line …
TimToady PerlJam: yes, that could happen too
bbkr known bug?
jnthn bbkr: Rakudo is helping you there. 17:28
bbkr: Also it's a runtime check I think.
PerlJam rakudo: map {; }
p6eval rakudo : ( no output )
17:28 dac joined
jnthn rakudo++ 17:28
PerlJam bbkr: see? no worries. :)
TimToady rakudo: map { $_ } 17:29
p6eval rakudo : ( no output )
TimToady rakudo: map { $_ => $_ } 17:30
PerlJam rakudo: map { 5 }
p6eval rakudo : OUTPUT«Can't call map() with a Hash argument, Callable required␤You probably wrote a Hash composer accidentally - try to␤disambiguate it with a ; directly after the opening brace␤ in 'Any::map' at line 1468:CORE.setting␤ in 'map' at line 1814:CORE.setting␤ in main program body at line …
rakudo : ( no output )
bbkr rakudo: { 5 }.WHAT.say
p6eval rakudo : OUTPUT«Block()␤»
TimToady rakudo: say { $_ => $_ }.WHAT
p6eval rakudo : OUTPUT«Hash()␤»
TimToady I believe that is anti-spec 17:31
colomon finds Rakudo compiles much better if you don't have random failed patches sitting around to confuse it....
moritz_ TimToady: indeed. But pmichaud pointed out that the spec has quite some holes
colomon > "This is a test".ord
84
> "This is a test".ords
84 104 105 115 32 105 115 32 97 32 116 101 115 116
PerlJam colomon++ 17:32
colomon: and +ord("This is a test") == 84 ?
colomon > +ord("This is a test") == 84 17:33
Bool::True
bbkr so "map { }" is not a bug. but should "map { 5 }" be reported? clearly first param is a block
moritz_ rakudo: say <a b c>.first('b')
p6eval rakudo : OUTPUT«b␤»
PerlJam rakudo: map { 9,5,3 }, () 17:34
p6eval rakudo : ( no output )
PerlJam I guess you can't create something from nothing.
er, Nil :)
rakudo++ 17:35
TimToady yes, S04:1580 requires that to be considered Code, not Hash 17:36
PerlJam wait ...
rakudo: map { 5 }
p6eval rakudo : ( no output )
PerlJam correct
rakudo: map { $_ => $_ }
p6eval rakudo : OUTPUT«Can't call map() with a Hash argument, Callable required␤You probably wrote a Hash composer accidentally - try to␤disambiguate it with a ; directly after the opening brace␤ in 'Any::map' at line 1468:CORE.setting␤ in 'map' at line 1814:CORE.setting␤ in main program body at line …
bbkr aw, works, indeed. i looked at wrong rakudo response. sorry 17:37
TimToady that's what is violating spec, not { 5 }
PerlJam right
TimToady hash composers are not allowed to reference $_, basically 17:38
OUTER::<$_> would be fine though
colomon > chrs(112, 101, 114, 108) 17:40
Too many positional parameters passed; got 4 but expected 1
> chrs([112, 101, 114, 108])
perl
whoops, missed the *@grid 17:41
PerlJam colomon: got a test for chrs(ords($string)) eq $string ? 17:42
colomon PerlJam: Haven't looked at the tests yet.
I'm assuming this change will break some of them.
and I definitely don't have any tests for chrs / ords
TimToady: don't we need both chrs( Int *@grid ) and chrs( Int @grid ) ? 17:46
TimToady still think it should be @who-it's-at, since the apostrophe is legal in P6
colomon because chrs([112, 101, 114, 108]).ord == 4 seems as bad as where we started from... 17:47
TimToady you can always use |@foo
but yeah, we could multi in an array arg
esp since it could be optimized better in some cases, methinks 17:48
colomon now if Rakudo can just handle it without blowing up....
bbkr rakudo: map { 1 } X==> grep { 1 } # should this be forbidden as STD says? Rakudo compiles and looks for signature anyway (and almost gets it right!) 17:49
TimToady would be funny if chrs(ords($foo),ords($bar)) was faster than ~
p6eval rakudo : OUTPUT«No candidates found to invoke for method 'map' on object of type 'Array'; available candidates have signatures:␤:(Mu : &block;; *%_)␤␤ in 'map' at line 1814:CORE.setting␤ in main program body at line 22:/tmp/eOo7gmSDCc␤»
PerlJam TimToady: I don't know ... for people that haven't seen it yet, using - in variables seems only slightly surprising while using ' in variables seems like the universe is out of whack :)
and I didn't want to distract
TimToady the its/it's messup is also disturbing to may people 17:50
*many
PerlJam if it'll make you and tchrist happy ... :) 17:52
post updated to say @who-it's-at 17:53
TimToady it'll be a nice waitaminute easter egg at the end for sompe people 17:56
*some
colomon > chrs([112, 101, 114, 108]) 17:58
perl
> chrs(112, 101, 114, 108)
perl
\o/
PerlJam Lots of people rejoiced when Perl lost ' as namespace separator. I can't imagine those people would be happy to see ' crop up in variable names.
TimToady or I guess it'd be a christmas egg in this case
colomon PerlJam: any test progress? ;)
TimToady those people will have to get used to it sooner or later
best to hit them with a good use case early
and most of the ick factor of old ' was that it was short for :: 17:59
admittedly, it also gives a bit of heartburn to syntax highlighers, but not much, really
*ght 18:00
PerlJam I just have trouble remembering a single positive comment from people outside #perl6 about apostrophes in variable names. 18:01
granted, the sample size of people I've talked with on this subject is quite small. 18:02
TimToady we're not designing Perl 6 to please sticks-in-the-mud 18:04
slavik1 TimToady: when is christmas? ;)
TimToady dec 25
slavik1 not that christmas
TimToady dec 25, * 18:05
PerlJam slavik1: it's christmas everyday (we've had rakudo for a while now)
slavik1 PerlJam: good opoint
TimToady
.oO("The kingdom of heaven is already among you.")
18:06
PerlJam repent!
;)
colomon wasn't dec 25, * around -3 BC? ;) 18:07
allbery_b -4BC, and don't forget to factor in whenever your area did the gregorian conversion because that could potentially be off by a day 18:11
(nd if you never did, like orthodox christianity, christmas is now january 7 on the civil calendar, having recently moved forward another day </pedant>)
(aaaand now you know wht Instants and Durations are such a PITA to get right) 18:12
PerlJam allbery_b: those should be easy ... it's Mayan::Durations and Gregorian::Durations and such that should be a PITA 18:13
:-)
unless you're going to factor in relativistic effects too. But I prefer choosing time as a fixed frame of reference for now as it makes everyday life easier 18:15
allbery_b you want real fun, try the Islamic calendar
especially the bit about how every community has different conventions for when a new month starts (the two most common being local time and time at Mecca) 18:16
rokoteko so whats wrong with seconds since 01.01.1970 ? 18:17
TimToady -3 AD is 4 BC
allbery_b the fact that even if it's signed you get about 50 years either side of 1970 18:18
PerlJam rokoteko: seconds since 01.01.1970 where? and which 01.01.1970 ? :
TimToady -4BC would be 3 AD :)
allbery_b (see the Y2038 problem)
rokoteko allbery_b: are you talking to me? you extend the timestamp to 64bits and have some time to think. 18:19
TimToady just use FatRats and be done with it
allbery_b but the real issuew is Perl 6 wants to support more than the POSIX time model. Astronomical time is one key case IIRC 18:20
rokoteko use RatsThatAlreadyExplodedBecauseTheyWereGettingTooFat;
TimToady the POSIX time model is fundamentally flawed
allbery_b also, it weants to not hardcode the Gregorian calendar, which is what you do if you use 1-1-1970
rokoteko TimToady: personally I think all the floats are flawed. bad design. it should be something like 1 would be largest number ever existed, 2 would be the second largest etc. if you need fractions you got 1/<the smallest number> which is the most accurate you can get. 18:21
TimToady I think the stringification of Instant should pick a random epoch every time you run 18:22
allbery_b notes that he regularly uses two calendar systems, and even has a watch that helps with it
TimToady perhaps Instants should numify to the start time of the program as the epoch 18:23
rokoteko why just admit to the largest number your computer can recognize and to stick to that to avoid even more significant errors.
TimToady how much memory do you have?
rokoteko me? 4gb on this machine.
allbery_b gmp lets you have some pretty large numbers
rokoteko it will get me very far with somehow important calculations without erros, won't it? 18:24
TimToady that's probably accurate enough for most practical purposes
allbery_b (see Haskell's Integer type, and the BigInt module for perl5)
TimToady or the Int type for perl6 :)
rokoteko and you avoid floating point errors. win-win.
TimToady or should I say "Perl 6"
allbery_b or i it BigNum? haven't used it in a while and antidepressant changes are mucking with my memory :/) 18:25
TimToady by the time your temporal calculations exceed the capacity of FatRat, it'll be later than you think
allbery_b "it's always too late" problem solved
colomon heh. S29-conversions/ord_and_chr.t passes just fine after my change. :\
TimToady he said testily... 18:26
colomon he said swiftly... 18:27
rokoteko TimToady: is this implemented as BigRats in perl6?
TimToady "Anything you can do, I can do meta."
colomon "I can do anything meta than you."
TimToady yes, that's the other end of it 18:28
rokoteko "What is meta?"
colomon must stop before he laughs himself sick(er)
TimToady Why do you ask?
rokoteko TimToady: to quote my thoughts.
TimToady that's what you think
rokoteko me realizes he is chatting with Larry Wall. 18:29
TimToady apologizes profusely, or perhaps confusely
moritz_ happens.
Use of uninitialized value in numeric context in 'MapIter::reify' at line 1
that's... not very useful
rokoteko if chuck norris met something concrete he would meet TimToady being meta. 18:30
slavik1 ...
awesomes ^^
TimToady rokoteko: there are no Big* types in Perl 6. Int is already arbitrary sized (but NYI in rakudo), and FatRat is the Int/Int version of rationals
diakopter When I'm good I'm very, very good, but when I'm bad, I'm meta. 18:31
rokoteko what is the problem implementing them in rakudo? are they implemented anywhere?
Im also curious, what is the big thing of making the feed operators to work? 18:32
moritz_ it needs doing
allbery_b rakudo is built on top of the parrot vm; if parrot doesn't support bignums yet, rakudo won't
TimToady feeds are partly done already
but only support coroutine semantics so far; we'd like them to pipeline between manycores at some point
diakopter No one can give you better advice than yourself. 18:33
er
bah.
TimToady which probably means putting some limititions on what can go on either side of a feed
*tat
rokoteko not very well. and also the translation mapping of $src ==> @feed[@(*)] ==> \my $dest; .. you can probably substitude @feed with a subroutine call?
TimToady arrays and hashes can always be replaced by subroutine calls, as far as subscripting goes 18:35
PerlJam @feed[@(*)] is already a "subroutine call"
rokoteko PerlJam: how? using lazy array to generate @feed ?
TimToady that's already @feed.&postfix:<[ ]>(@(*)) or some such 18:36
jnthn The handling for feeds so far is, iirc, written entirely in NQP. The extra bits for it probably also could be.
So no need to dive down to PIR even, for anyone who wants to hack on it. :) 18:37
rokoteko how what PIR is from NQP ?
s/what/far/
TimToady the main difference between foo() and @foo[] is that the latter is designed to support multidimensional slices
jnthn rokoteko: A language level. :) 18:38
PIR is an assembly-ish language. NQP is a small subset of Perl 6.
TimToady which is also, by the way, the reason that %hash.delete is kinda bogus
rokoteko so you insert @(*) there. what's the difference between the two? what is @(*) ? I always thought it refers to the current element.
kinda like $_ in perl5 but in more obscure context.
TimToady no, it's a lazy list
jnthn thought it meant "list goes here"
TimToady so more like @_, except lazy 18:39
rokoteko ah. "each argument at a time, no more please" ?
TimToady (p5's @_, I mean)
slavik1 TimToady: does it make sense to have a non-lazy list?
TimToady if you want side effects in the calculation, sure
we're not purist when it comes to FP 18:40
slavik1 TimToady: but wouldn't you still get that with a lazy list?
TimToady not if you wish to observe the side effect after the syncronization point
allbery_b slavik1: not always. compare let and let* in common lisp for example
rokoteko ok. any writings or thought on how the type system is going to be? ml/haskell like c/java like or something completely different? 18:41
slavik1 allbery_b: I am not familiar with lisp that much to understand those
PerlJam "going to be"?
moritz_ rokoteko: S12 and S14 contain more info on the type system
rokoteko: and signfificant parts of it are already implemented
it's not like p6 was decided yesterday :-) 18:42
rokoteko no I was merely curious about the idea behind it. I think I've read those, but yes, I can take another look. :)
TimToady rakudo: my $x; my @foo := 1, { $x++ + $_ } ... * > 1000; say $x
p6eval rakudo : OUTPUT«Any()␤»
TimToady rakudo: my $x; my @foo := eager 1, { $x++ + $_ } ... * > 1000; say $x
p6eval rakudo : OUTPUT«Use of uninitialized value in numeric context in <anon> at line 22:/tmp/Imo3lVMImE␤46␤»
TimToady rakudo: my $x = 0; my @foo := eager 1, { $x++ + $_ } ... * > 1000; say $x 18:43
p6eval rakudo : OUTPUT«46␤»
TimToady that uninit on ++ is bogus
slavik1 do rakudo star releases have proper installation scripts or is it best to compile it and use from whatever dir the code is in?
TimToady it should assume 0
moritz_ TimToady: doesn't $x++ return $x?
slavik1: there's an installer 18:44
aka 'make install'
colomon rakudo: my $x; my @foo := 1, { ++$x + $_ } ... * > 1000; say $x
p6eval rakudo : OUTPUT«Any()␤»
moritz_ the README knows more
TimToady okay, me stands corrected, except I'm not
slavik1 moritz_: awesome, last time I tried it, it didn't put libraries in proper places or something
TimToady rakudo: my $x; my @foo := eager 1, { ++$x + $_ } ... * > 1000; say $x
p6eval rakudo : OUTPUT«45␤» 18:45
colomon TimToady: In your first example, .... ah, you caught the eager
TimToady arguably, $x++ that assumes 0 should return 0 too
colomon Commencing spectest run for the ords / chrs patch. 18:46
rokoteko what is $x here. the first parameter passed to the block because there are no more prioritized (alphabetically by variables name) variables to use? 18:47
moritz_ rokoteko: $x is just the $x that was declared with 'my $x'
rokoteko where does $_ come from ?
ahh.. 18:48
moritz_ $_ is the first argument of the block
rokoteko too much perl5 like. I got confused with $^x
moritz_ rakudo: say 1 <= -2 <= 5 18:51
p6eval rakudo : OUTPUT«Bool::False␤»
dalek ecs: ef12f7f | TimToady++ | S03-operators.pod:
make $x++ return 0 on appropriate undefs

Since the operator is doing something defined, the first value it returns should also be defined.
moritz_ rakudo: say <a b c>.first('d') 18:52
p6eval rakudo : ( no output )
TimToady rakudo: my $x; my @foo := eager 1, ++$x + * ... * > 1000; say $x
p6eval rakudo : OUTPUT«45␤»
colomon rakudo: my $x; my @foo = 1, ++$x + * ... * > 1000; say $x 18:53
p6eval rakudo : OUTPUT«45␤»
TimToady assignment is eager, yes
colomon just trying to make sure I wasn't missing something there. :) 18:54
TimToady well, mostly eager
colomon eager enough for the purposes of this conversation.
TimToady it should know to give up on infinities
rakudo: my $x; my @foo = 1, ++$x + * ... *; say $x # should work eventually
colomon I still think assignment should be more lazy, but I'm not going to rehash that today.
p6eval rakudo : OUTPUT«(timeout)» 18:55
TimToady it should see the * on the right and tell the assignment to be lazier
and we've discussed allowing ,* on the ends of lists that are known to be infinite by the programmer but not by the compiler 18:56
such a ,* is harmless even if it means replicate the final value, since an infinite list won't have a final value
we should make sure it also works in: 1,2,3 ... :!defined, * 18:58
PerlJam std: @foo ==> @(*) ==> @bar 19:00
p6eval std a194beb: OUTPUT«===SORRY!===␤Variable @foo is not predeclared at /tmp/2EpRZrvy2q line 1:␤------> @foo⏏ ==> @(*) ==> @bar␤Variable @bar is not predeclared at /tmp/2EpRZrvy2q line 1:␤------> @foo ==> @(*) ==> @bar⏏<EOL>␤Check failed␤FAILED
..00:0…
PerlJam std: my @foo ==> @(*) ==> my @bar
p6eval std a194beb: OUTPUT«ok 00:01 121m␤»
19:04 gbacon_ joined
moritz_ thinks he found a rakudobug, but has trouble reproducing 19:08
rokoteko TimToady: haha. this was just earlier today in thedailywtf. :9 thedailywtf.com/Articles/Really,-Re...Limit.aspx 19:09
19:09 dac left
rokoteko ... erm. or a couple days ago. 19:09
flussence depends which planet you're on
rokoteko do you have collection I can choose out of? 19:10
flussence actually, the link looks only 0.8 earth-days old... 19:11
flussence doesn't pay that much attention to the RPM of other orbital rocks anyway 19:12
19:16 impious joined
TimToady funny that the comment talks about "all the 0s" when there are only 9s... 19:18
moritz_ rakudo: class A { method ACCEPTS($x) { say "ACCEPTS: $x" } }; $_ = A.new; 3 ~~ $_; 19:19
p6eval rakudo : ( no output )
moritz_ rakudo: class A { method ACCEPTS($x) { say "ACCEPTS: $x" } }; 3 ~~ A.new;
p6eval rakudo : OUTPUT«ACCEPTS: 3␤»
TimToady surely the other rocks would have identical RPMs, if they define minutes as a fraction of their daily revolution... 19:20
moritz_ submits the first masak-contest-induced rakudobug
19:28 jhuni joined 19:31 dju_ joined
colomon \o/ moritz_++ 19:32
jnthn moritz_: Ain't that spec?
e.g. $_ is set to the LHS of a smart-match 19:33
Thus how $x ~~ .predicate works.
moritz_ jnthn: hm
so it really does do { my $_ = 3; .ACCEPTS($_) } ? 19:34
19:35 mkramer joined
jnthn moritz_: It really changes $_ for the time it takes to evaluate the RHS, yes. 19:35
moritz_: There used to be a bunch of syntactic special cases 19:36
so $x ~~ .foo worked becuase it was syntactically special.
But a while ago that went away in favor of just twiddling $_
jnthn remembers implementing that change
TimToady so ~~ $_ always asks an object if it finds its own self acceptable, I guess... :) 19:37
but maybe we should warn
moritz_ so, not a bug after all, just very unintuititve
TimToady rakudo: class A { method ACCEPTS($x) { say "ACCEPTS: $x" } }; $_ = A.new; say "yes" when $_ given 3 19:39
p6eval rakudo : OUTPUT«yes␤»
19:39 dual joined
TimToady rakudo: class A { method ACCEPTS($x) { say "ACCEPTS: $x" } }; $_ = A.new; say "yes" if 3 ~~ $_ 19:39
p6eval rakudo : OUTPUT«yes␤»
TimToady same thing, really
jnthn moritz_: Yes; otoh you're the first person I am aware has run into this issue since the change was implemented. 19:40
moritz_: Which dates back pre-R*.
I imagine it's bizzare to run into though. +1 to warning.
TimToady what's the workaround to the warning?
moritz_ jnthn: actually I remember urging you to implement it, so that ~~ s/// coul work properly 19:41
~~ * # if the type accepts itself
TimToady that's always true
moritz_ right
jnthn TimToady: Just put the thing you want to test into anything other than $_ :-) 19:42
TimToady rakudo: my $x = /foo/; say "yes" if $x ~~ $_
p6eval rakudo : ( no output )
dalek kudo: d1e6636 | colomon++ | src/core/Cool- (2 files):
Split Any.ord into Any.ord and Any.ords, add Any.chrs.
19:43
TimToady there's something that doesn't accept itself
moritz_ maybe Regex.ACCEPTS should only accept Cool, and Regex !~~ Cool 19:45
19:48 dju_ left 19:49 dju joined, dju left, dju joined
TimToady makes sense 19:52
colomon "It should not matter whether the points in the polygon run clockwise or counterclockwise." Silly masak! 19:53
And silly colomon for looking at this problem when I should be doing an Advent post. 19:55
moritz_ TimToady: do you want to contribute a post for the advent calendar?
TimToady if I did, it'd probably be about cultural hacks 19:56
moritz_ that's totally fine, as long as it's somewhat related to p6 (or the p6 community)
TimToady well, I think Camelia is related :)
moritz_ somewhat :-) 19:57
TimToady and she'd definitely intended as a cultural hack
PerlJam So far the posts have been mostly technical. It would be nice to expose a little more of the culture. 19:59
20:00 mkramer left 20:01 jedai joined
rokoteko I think I need to get to bed. Good night all. Sleep tight, don't let the bed bugs bite! 20:01
TimToady o/ 20:02
20:03 gbacon_ left
TimToady $.nomifications 20:05
20:06 dju left, mkramer joined 20:10 l34k joined, [Coke] joined 20:12 lichtkind joined
sjohnson xspblog.com/wp-content/uploads/2009...NomNom.jpg 20:17
flussence that's a big bed bug. 20:18
rokoteko what the heck. it's only 22:28 (in finnish time) and I was about to go to bed. I just realised that and go tback up.
20:19 risou joined
rokoteko I think I will turn the radio on next. 20:19
jnthn The day didn't finnish yet. :)
rokoteko It's a commercial about a christmas pig (that one is supposed to eat) on the radio 20:20
oh wait. god knows of finnish. maybe this is actually the song. lasts too long to be a commercial. 20:21
20:22 Trashlord joined
rokoteko ahh. christmas songs :) 20:24
20:27 icwiener joined 20:34 dsp_ joined, abra joined 20:35 abra left 20:42 Guest96690 joined 20:44 thelazydeveloper joined 20:45 abra joined
sorear good * #perl6 20:48
jasonmay hola 20:49
20:49 abra left
jasonmay so, I want to look at the HOW stuff in rakudo. are there any guides anywhere, docs the describe the internal architecture, anything like that? 20:50
(I have these crazy ideas in my head that I could just dig into the source, see what's going on, clean things up a bit) 20:51
20:54 abra joined
sorear check docs/ 20:55
rakudo: say 2.PARROT
p6eval rakudo : OUTPUT«Int␤»
sorear rakudo: say 2.HOW.PARROT
p6eval rakudo : OUTPUT«ClassHOW␤»
sorear rakudo: say 2.HOW.HOW.PARROT
p6eval rakudo : OUTPUT«Method 'PARROT' not found for invocant of class ''␤ in main program body at line 22:/tmp/LIoLsKfwJA␤»
moritz_ jasonmay: the meta object implementation is being reimplemented, see 6guts.wordpress.com/ for more info
20:59 rgrau joined
jasonmay sorear/moritz_: thanks 21:01
lichtkind why oh why #`() ? why not ##() ?
moritz_ lichtkind: because ` is the only printable ASCII character that doesn't appear in any other Perl 6 syntax 21:02
lichtkind moritz_: because its hard to type :) 21:03
moritz_: thank you
21:05 Chillance joined 21:19 risou left 21:20 risou joined 21:22 icwiener_ joined 21:23 abra left 21:24 icwiener left 21:26 icwiener_ left, abra joined 21:31 abra left, abra joined 21:32 finanalyst joined
dalek tpfwiki: (Herbert Breunung)++ | www.perlfoundation.org/perl6/index....dex_tablet 21:32
lichtkind qx is evaled on BEGIN time? 21:44
or on runtime?
moritz_ what makes you think so?
lichtkind im not shure and cant find nothing in S02
moritz_ when in doubt, it's the same as in p5
lichtkind its also mit ambigous if qqx is really in the P6 definition or example macro 21:45
so runtime good
21:45 abra left
moritz_ std: qqx/foo/ 21:45
p6eval std a194beb: OUTPUT«ok 00:01 118m␤»
moritz_ lichtkind: feel free to clarify the spec
21:45 abra joined
lichtkind i dont feel in position to do that :) 21:45
moritz_ why not? 21:46
lichtkind and i wonder if your qqx did a real system call
moritz_ of course it did not, since std only checks syntax
lichtkind ah
i just start with clarifying tablets and i think i dont have commit bit anyway 21:47
moritz_ you have one 21:48
anyway, to me it's pretty clear
"You may omit the first colon by joining an initial C<Q>, C<q>, or C<qq> with
a single short form adverb"
21:50 M_o_C joined 21:52 abra left, abra joined
lichtkind moritz_: it was not clear to be if its evaled on runtime 21:53
21:53 abra left 21:54 abra joined
lichtkind and qqw was so close to that macro that i didnt know hes referring to it 21:55
21:56 abra left 22:07 am0c joined
dalek tpfwiki: (Herbert Breunung)++ | www.perlfoundation.org/perl6/index....dex_tablet 22:11
22:11 felliott joined 22:13 meraxes left
dalek tpfwiki: (Herbert Breunung)++ | www.perlfoundation.org/perl6/index....dex_tablet 22:16
22:21 M_o_C left
dalek tpfwiki: (Herbert Breunung)++ | www.perlfoundation.org/perl6/index....dex_tablet 22:21
22:28 finanalyst left 22:32 dsp_ left, dsp_ joined
dalek tpfwiki: (Herbert Breunung)++ | www.perlfoundation.org/perl6/index....dex_tablet 22:32
tpfwiki: (Herbert Breunung)++ | www.perlfoundation.org/perl6/index....ics_tablet
22:37 kfo_ joined 22:43 hercynium joined
dalek tpfwiki: (Herbert Breunung)++ | www.perlfoundation.org/perl6/index....ics_tablet 22:43
lichtkind rakudo: my @a = <<one "two three">>;say @a.perl 22:45
p6eval rakudo : OUTPUT«["one", "\"two", "three\""]␤»
lichtkind a bug :)
cotto_work what's the nomnom branch of nqp-rx for? 22:47
sorear nomNOM?
cotto_work yes
sorear looks like there are only two commits different between nom and nomnom, both by colomon++ 22:48
ask him
cotto_work colomon: ping 22:50
colomon pong 22:51
cotto_work colomon: what's nomnom?
and who do I talk to to get a commit bit for nqp-rx?
the capitalization of STable.pmc breaks the build for me
colomon The goal of nomnom was to break HLL::Compiler away from PCT::HLLCompiler. In practice, that turned out to be a terrible disaster, so I haven't looked at it further. 22:52
I think I got my commit bit from jnthn or moritz_.
Is the capitalization all you're worried about at the moment?
cotto_work for now
I do want to play with it some more though. 22:53
its mop is the future
or some approximation thereof
colomon I can look at fixing that when I get the chance. (Need to take my little boy out to a Christmas walk at the moment.)
22:53 MayDaniel joined
cotto_work k 22:53
sorear cotto_work: are you cotto on github? 22:56
cotto_work yes
sorear you now have an nqp-rx commit bit 22:57
cotto_work sorear: should I expect some tests to fail? 23:03
sorear dunno 23:04
23:04 dju joined 23:08 dju left, dju joined
lichtkind should i file a bugreport? 23:09
colomon cotto_work: I seem to recall jnthn++ telling me some tests were expected to fail when I asked the same question. 23:16
dalek tpfwiki: (Herbert Breunung)++ | www.perlfoundation.org/perl6/index....ics_tablet
cotto_work I'll push then. 23:17
colomon cotto_work: feel free to push your filename fix, then. :)
dalek p-rx/nom: 361fef3 | cotto++ | src/pmc/ (2 files):
rename STable.pmc to stable.pmc to avoid making case-sensitive OSs sad
colomon cotto_work++ 23:18
sorear cotto_work: Why is that needed?
cotto_work on my ubuntu box gcc can't find pmc_STable.h 23:19
23:20 risou_ joined
sorear ah 23:20
colomon ie the nom branches had only ever been built on Windows and OS X, likely.
cotto_work I figured 23:21
it's a weakness of pmc2c
one of many
colomon it's a weakness of not testing your build on enough different machines. :\
Actually, come to think of it, I found a couple of things that didn't work on OS X when I tried building it for the first time. 23:22
23:23 risou left 23:24 Guest96690 left
cotto_work What's the relationship between nom and 6model? 23:24
colomon ah.... that's a darned good question. Do you know, sorear? 23:25
diakopter the ideas prototyped in 6model are expected to someday be propogated back to nom 23:26
colomon diakopter++
23:26 jferrero joined
cotto_work So does 6model exist to flesh out issues that came up in nom? 23:28
colomon 6model is a complete rewrite of the object system, targeting CLR first 23:29
afk # off to Christmas walk 23:30
23:31 MayDaniel left
cotto_work do nom and 6model implement the same object model, just with 6model targeting the CLR? 23:36
I'm trying to understand why they both exist and what role they fill.
23:39 Bzek_ joined
sorear cotto_work: 6model came first 23:40
6model develops the new object system for multiple VMs at the same tim
for pragmatic reasons, 6model/parrot is kept in the nqp repo
but it's logically still part of 6model
cotto_work sorear: so nom is 6model/parrot? That makes sense. 23:43
jnthn cotto_work: There even used to be a 6model/parrot. :) 23:45
cotto_work: But as soon as it started to get anywhere I realized a branch in the nqp-rx repo was going to be easier overall. 23:46
So it's just as sorear++ said - pragmatic reasons. Or "jnthn wanted to do it that way" reasons. :)
Generally, the implementation on the CLR is the bleeding edge one.
cotto_work What's more bleedinger about it? 23:47
jnthn It's where I develop stuff / experiment first.
Again, pragmatic: it's the easiest place to.
cotto_work how far ahead is it? 23:48
jnthn Somewhat. (more)
The hard thing tends to not be the implementation, but working out how to do it, and how to factor it.
The big area it's way ahead in is multi-dispatch. 23:49
The lexicals problem I mentioned aside, though, now I've got a factoring/design I'm happy with, porting it is not all that much effort.
Generally I don't port until I (a) have a time slot to do it and (b) am fairly happy that the design of the thing I'm going to port is fairly solid, to try and avoid dupe work. 23:50
cotto_work It sounds like I won't lose too much by studying nom. 23:51
rather than 6model
jnthn The core data structures are in there.
(in both) 23:52
Both have a ClassHOW implemented in NQP.
The nom one knows how to do MI, but not how to handle multi-methods. Vice versa for 6model.
If there's a reason to study 6model, it's because it has to provide stuff that nom currently relies on Parrot having PMCs for. 23:53
And it does it by fitting it in with the overall representation polymorphism model.
cotto_work So it'll be more like the eventual M0 implementation.
jnthn Well, nom grudglingly accepts the existence of PMCs. 23:54
So far as I care for them, they're in the same class as CLR objects.
Something the rest of what I do has to interop with.
And in some cases, build things out of.
There's no real reason that PMCs couldn't just become another type of repr/HOW. 23:55
Though their repr is really "a chunk of memory that C manages".
er
I mean, that's used like a struct by some C code.
Though I guess with Lorito, iiuc, there's no C code per se. 23:56
sorear what I see right now is jnthn managing to attract lots of people to help with something
cotto_work jnthn: right
23:57 nymacro joined
sorear despite not having the technical advantage 23:57
jnthn sorear: wtf?
sorear Niecza can currently run more stuff than NQP.NET, IIUC
I thought "run more stuff" was the best way to attract more people. It's not working out like that. 23:58
jnthn sorear: Yes. It always will be able to as well. :)
sorear ("technical advantage" is a bit vague and wrong here...)
jnthn sorear: If you want to attract people whose primary interest is "a full featured Perl 6 compiler", I suspect it is. 23:59