»ö« 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!
Set by sorear on 4 February 2011.
pmichaud evalbot rebuild nom 00:00
p6eval OK (started asyncronously)
00:09 envi left
pmichaud nom: my @a = [\+] 1..*; say @a[^20]; 00:10
p6eval nom: OUTPUT«1 3 6 10 15 21 28 36 45 55 66 78 91 105 120 136 153 171 190 210␤»
pmichaud \o/
00:15 tokuhirom left 00:27 cdarroch left 00:31 colomon joined 00:45 colomon left
dalek kudo/nom: bef372d | pmichaud++ | src/ (3 files):
Add negation meta-op, stub in some other metaops as NYI.
00:52
00:54 daniel-s joined 00:55 donri left 01:06 thundergnat left 01:22 colomon joined
lue for the nom branch, should I use --gen-parrot or --gen-nqp (in the configure)? 01:26
pmichaud you can use both, but --gen-parrot is sufficient 01:34
--gen-nqp by itself means it will try to look for a parrot (and fail if it doesn't find one)
I typically do both in my configuration.
lue I just tried --gen-nqp, but it failed (couldn't find parrot) 01:35
So just go --gen-parrot --gen-nqp ? 01:36
01:37 lichtkind left
jnthn morning, #perl6 01:46
lue good morning jnthn o/ 01:47
01:50 whiteknight left
pmichaud jnthn: o/ 01:53
01:53 antony_ left
jnthn pmichaud: I see you've been hacking. :) 01:54
pmichaud a bit :) 01:55
I like the way the metaops are turning out
jnthn nice :) 01:56
pmichaud right now I'm working on Xop.... which means it's time to impleemnt LoL :)
jnthn ohlol! 01:58
lue I just read about LoLs a couple of days ago (I think on pmichaud's blog, not sure). Perl6 is the greatest language ever! \o/
01:59 zb joined 02:06 Khisanth left
lue Is it just me or did rakudo/nom lose the resource-intensive core.pm > core.pir step? I don't see it in the output. 02:07
pmichaud it's there 02:08
it's now CORE.setting > CORE.setting.pir
PerlJam lue: it's just much smaller for now :)
pmichaud it might be less resource-intensive, so far.
02:08 woosley joined
jnthn Cursors and matches are a bit lighter now, so it may well be less resource-intensive overall. 02:09
(Even when we have all the stuff back.)
lue &lue.sleep("~1hour"); 02:11
(where .sleep means the computer's idea of sleep, not a human's.)
02:12 Pleiades joined
jnthn works on @slide :) 02:17
PerlJam @slide? 02:18
jnthn PerlJam: Slides for my talks tomorrow :)
PerlJam oh ... I was wondering if that was some new thing like slice, but different 02:19
It's hard to tell around here. Words are always springing into being
jnthn :P
PerlJam (or old words are given new nuance)
02:20 Khisanth joined
PerlJam greetings Khisanth 02:21
jnthn: don't forget about the $_ problem for when you're bored with your slides :)
jnthn :) 02:22
PerlJam goes back to wordsmithing the last few lines of a proposal
02:28 wubo joined
[Coke] tools/autounfudge needs threads? :( 02:43
[Coke] lets moritz++ keep running it, then.
pmichaud jnthn: gist.github.com/1057784 # bug? 02:57
( @a should not be marked as a container here. )
jnthn pmichaud: Looks like we're getting it stuck in a scalar container, yeah. 03:01
Will investigate. 03:02
pmichaud afk for a short while
jnthn pmichaud: Oh, looks like a fail to set the sigil flags in the parameter bitfield. 03:05
Trying that.
pmichaud: yeah, that gets 0 0 03:08
lue Can anyone else check and see if their perl6 -e is working? With master rakudo, it does a ===SORRY!=== message, and with nom rakudo, I get Parrot error output. [try perl6 -e "my $x = 1; say $x;"] 03:10
jnthn pmichaud: fixed 03:11
03:11 Pleiades left
jnthn C:\Consulting\rakudo>perl6 -e "my $x = 1; say $x" 03:11
1
lue: Works for me.
(that's nom)
dalek kudo/nom: e366355 | jonathan++ | src/Perl6/SymbolTable.pm:
Make sure @ and % sigil flags are set. Resolves bug noticed by pmichaud++.
lue could it be that I have a rakudo/ folder (master, ran make and make install) as well as a rakudonom/ folder (nom [obviously], just make)? 03:13
both have their own instance of parrot inside, while nom also has a copy of nqp 03:15
jnthn should be OK. Hm 03:16
jnthn ->L walk, bbs 03:17
03:17 perlhack joined
perlhack hi all the friends 03:18
i again come to here
lue It's only perl6 -e though, REPL and running a file work fine. 03:19
03:23 Su-Shee_ joined
Util colomon++ # For his first RosettaCode Perl 6 solution 03:24
kthakore hi 03:25
Util Hi, kthakore
kthakore oh hai Util
early morning hacking became ... late night hacking 03:26
03:26 bluescreen100 left
kthakore approaching 22 hrs 03:26
:D
perlhack :'(
03:26 bluescreen10 left
kthakore perlhack: hmm? 03:26
Why are you sad?
03:27 Su-Shee left
perlhack i think you are too humor 03:27
kthakore
colomon rosettacode.org/wiki/Bitmap/Bresenh...thm#Perl_6
kthakore perlhack: humor? 03:28
perlhack: I am ... too funy? 03:29
perlhack yes
kthakore
No
TimToady colomon++ too, though it'd probably be good to show it in use as some of the other langs do 03:30
03:30 colomon left
kthakore I am unsure what you mean. 03:30
perlhack not funy but a sence of humor
kthakore heh. I still don't know ... if that is something good or bad 03:31
perlhack very good
not bad
pmichaud jnthn++ # fixing @ param bug 03:32
perlhack i'm a good man.
kthakore oh! you mean I have good sense of humour?
perlhack: who leaked my deep horrible dark secret! I must hunt them down to close all loose endings! 03:33
03:33 cheeseboy left
perlhack Oh i am a new English person 03:35
03:35 colomon joined
perlhack kthakore, 03:35
kthakore perlhack: no problem! I hate the language anyway 03:37
colomon TimToady: At some point Util will show my how to upload the PPM file I generated using it. :)
*me
TimToady okay...you mind if I do a few style tweaks? 03:38
perlhack Ha ha embarrassed me to learn English two days
TimToady or you can do 'em
perlhack kthakore,
03:38 agentzh joined
colomon TimToady: I expected you'd have suggestions. :) 03:38
TimToady colomon: mostly just using += and -= where appropriate
03:39 benabik joined
kthakore perlhack: hmm? 03:39
colomon TimToady: doh! that's what I get for coding while 75% asleep.
kthakore perlhack: I embarrased you? I am sorry didn't mean that.
You have my deepest apologies. 03:40
perlhack Oh! my English very poor
kthakore,
PerlJam embarassment is a good thing. It gets more oxygenated blood to the face and head ;) 03:41
TimToady colomon: and one could use real $Δx and $Δy too :)
kthakore perlhack: Type in your language and I will use google.com/translate
TimToady: how ... to even ... type that
colomon TimToady: interesting. Think that's a worthwhile change?
kthakore please say no
jlaire kthakore: use the meta key on your lisp machine keyboard 03:42
kthakore 0o
kthakore runs away
this chan be scary
TimToady buch ascii-philes, the lot 'o ya
*bunch
*of
perlhack i not use google.com/translate
􏿽xB9􏿽xFE􏿽xB9􏿽xFE
kthakore I will use it
perlhack 􏿽xCE􏿽xD2􏿽xCA􏿽xC7˵􏿽xC4􏿽xE3􏿽xCA􏿽xC7􏿽xBA􏿽xC3􏿽xC8􏿽xCB
kthakore hehe
TimToady wrong encoding
you need to set utf-8 03:43
perlhack TimToady, Ok
lue TimToady: I too enjoy Unicode, which means I can clearly demonstrate that as a DW fan I fear this man: ? 03:44
Oh wait, stupid Konversation... 03:45
kthakore I can't even type this language anymore it seems 03:46
haha 03:47
lue s/?/Ω/ # this mistake is even more hilarious if you are a DW fan as well :)
03:48 thou left, thou joined
TimToady the fact that Unicode gives you 67 different omegas to choose from is the scary bit 03:48
lue Darn, I was hoping <?{Perl6::Grammar.parse($0, :rule<fatarrow>)}> would match the "a => b" types of config options in pod.
perlhack kthakore, i want to say you a humorous person 03:49
lue wishes for unicode character BLUE BOX
kthakore perlhack: you are a presistent and kid person
kind*
TimToady and *persistent
kthakore and there lies the cause of most of my bugs today 03:50
still work to do before heading to India
lue Timtoady: Omigosh! Omega's more powerful than we've realized...
03:50 beekor joined
perlhack kthakore, Thank you I just do not want you misunderstand 03:50
kthakore I won't 03:51
perlhack thanks
kthakore lue: Darkseid is winning
lue Does anyone know how to match to "a => b" type config options? In other words, which Perl6 grammar token/rule/etc. can I use for my own benefit?
beekor hello 6ers.
kthakore perlhack: have we met at YAPC btw?
TimToady .u Ѻ 03:52
phenny U+047A CYRILLIC CAPITAL LETTER ROUND OMEGA (Ѻ)
perlhack i do not understand "btw"
TimToady "by the way"
it means changing the topic of conversation
kthakore oh sorry
lue kthakore: against whom? Darkseid doesn't seem to be from Doctor Who...
perlhack Thank you ah, I can understand what you mean 03:54
kthakore
kthakore lue: Marvel Universe ... Darkseid is from apokolpsis a dying god who recently tore a whole in space and time and all universes and used his omega force to use the anti-life equation to infect marvel's reality
en.wikipedia.org/wiki/Darkseid
perlhack: Where you at YAPC::NA? www.yapc2011.us/yn2011/ 03:55
TimToady kthakore: no, perlhack just popped up in Beijing
kthakore oh ok
beekor oh it just ended. nice.
kthakore I am confused ... why he thinks I am ... funny and stuff
beekor i hope fun was had by all.
kthakore I thought we met maybe
benabik Fun was had by all.
beekor splendid. 03:56
kthakore All had the Fun
perlhack I was not there I technology is relatively weak
kthakore
colomon kthakore: Darkseid is DC, not Marvel.
kthakore colomon: this is how I find fellow comic book nerds 03:57
colomon: hello!
colomon hello
kthakore perlhack: you don't need to be technology strong to be at yapc 2011
you just need to be 03:58
:)
colomon: Did you love batman's arc in that when he falls through time?
slavik1 pastebin.com/khxPs6Di
what am I doing wrong?
colomon kthakore: I didn't actually read it. About the only mainstream DC I've read in years was Grant Morrison's run with Dick Grayson as Batman. And bits of Green Lantern Corps. 03:59
perlhack My English is bad to get Google to translate a 04:00
􏿽xF1􏿽xF6 
􏿽xD0􏿽xC2! 􏿽xB0􏿽xB4һ􏿽xCF􏿽xC2􏿽xC9􏿽xCF􏿽xB7􏿽xBD􏿽xB5􏿽xC4􏿽xCE􏿽xC4􏿽xD7֣􏿽xAC􏿽xBC􏿽xB4􏿽xBFəzҕ􏿽xC6􏿽xE4􏿽xCB􏿽xFB􏿽xB7􏿽xAD􏿽xD7g􏿽xA1􏿽xA3 􏿽xEAP􏿽xE9]
lue This is the Omega I'm talking about: secure.wikimedia.org/wikipedia/en/...tor_Who%29
For something related to this channel's name, does anybody know of the magic grammar rule in Perl 6's grammar that lets me match agains "a => b" type config options in Pod6? 04:01
kthakore colomon: ah ok
perlhack: Mandarin traditional set?
04:01 daniel-s left
colomon kthakore: really, I'm strongest by far on comics from the 80s and the works of Neil Gaiman and Matt Wagner. 04:02
TimToady perlhack: that is mojibake, see irclog.perlgeek.de/perl6/2011-07-01#i_4036901
kthakore Gaiman++
perlhack: 您好
beekor ah nice. 2012 in madison. i may have to attend that one.
TimToady perlhack: you have to set UTF-8 in this channel
kthakore perlhack:你必須設置 UTF- 8在此通道 04:03
beekor i went to chicago, because it was like 20minutes by train from home. i'd have felt silly not.
perlhack I will not set utf_8
TimToady then you can't type Mandarin
it will not work 04:04
perlhack :'(
TimToady could you read what kthakore wrote in Chinese? it was correct
benabik As the /topic says: "UTF-8 is our friend!"
kthakore perlhack: 什麼 IRC工具或軟件你用? 04:05
what tool do you use? irssi MIRC? web client?
TimToady if you do not use UTF-8, we can never see each other's Chinese characters
kthakore TimToady: yeah I realized as soon as I typed that 04:06
perlhack megaIRC
04:07 perlhack_ joined
kthakore ah 04:07
perlhack: it doesn't have a chinese.lng
that is your problem
perlhack_ 哈哈
kthakore :D
perlhack_ 开心了
kthakore we see it
TimToady that worked
\o/ 04:08
kthakore perlhack: 您好
perlhack_ 您好
kthakore \o/
perlhack_ 我一直想表达您是好人
您很幽默
TimToady good
perlhack_ 我英语很差
才学2天
有的单词都不认识
我在努力的学呢
kthakore 謝謝。你是一個善良的人。
too fast!!! 04:09
perlhack_ 您也是一个好人啊
kthakore 我使用 Google Translate 04:10
04:10 benabik left
perlhack_ 我现在也是使用Goole Translate 04:11
kthakore 把中國傳統的一個地方 English
perlhack_ 中国英语都非常差 04:12
我才初中学历
kthakore perlhack_: ok good you can translate what english you have trouble with now
perlhack_ 英语都靠自学
kthakore perlhack_: watch the verb and pronoun lists on the bottom
perlhack haha Ok
kthakore perlhack_: if you translate a lot you will pick it up faster
also put in whole sentences and be logged in to Google Account 04:13
it will be eaiser for the tool to work
you are doing good. You will get better :D
TimToady: Equilibrium reached.
kthakore apologies to hijacking 04:14
the chan*
lue [it's obvious my CJK font(s) have a few holes]
TimToady it's okay; we all learned something. 04:15
perlhack kthakore: thanks i have to go eat.next time to talk with you.
TimToady I learned 非常差 04:16
kthakore perlhack: :) enjoy
04:16 perlhack left
kthakore oh that is me! 04:17
TimToady: this is you best translated :) 蒂姆蟾蜍Ÿ (Tim Toad Y) 04:18
I am still very poor
TimToady stem-governess toad :) 04:19
kthakore heh I find that translating back and forth the same phrase/sentence from each language, while tweaking it for nouns and pronouns from the known language ... works best 04:21
TimToady why plants and emperor make fruit-stem is a mystery
04:22 benabik joined
kthakore hmm? 04:22
you lost me a bit
04:22 perlhack_ left
TimToady 蒂 is composed of 艹 and 帝, plants and mikado/emperor 04:23
kthakore ah 04:24
languages loads of fun
TimToady I guess the emperor is the narrow bit at the top of the org chart, like a fruit stem
kthakore hmm interesting hypothesis. How would one investigate and confirm it? 04:25
kthakore googles a bit
TimToady it may be unknowable
that doesn't stop people from "knowing" of course
many chinese characters have multiple theories of why they came to be
kthakore well ... those are the ppl I run away from
only the sith deal in absolutes 04:26
I still like to try and find out tough
TimToady well, I'm absolutely bushed, so I'd better turn in...
kthakore good night
TimToady o
/
kthakore \o
TimToady so tired my arm fell off...
zzz &
kthakore hehe 04:27
04:34 colomon left 04:39 lue left 04:42 zorgnax joined 04:43 zorgnax left 04:45 lue joined 05:01 zorgnax joined
jnthn back 05:01
> 90% humidity is kinda ugh.
05:08 bakedb joined 05:12 kst left 05:14 birdwindupbird joined 05:18 benabik left 05:19 zorgnax left
pmichaud only "kinda ugh?" :-) 05:21
jnthn pmichaud: The view over the forbidden city and the nice gardens kinda made it worth going out in. :) 05:24
I won't mind hiding away here in the nice cool hotel to slide hack this afternoon though :) 05:25
dalek kudo/nom: 457b5e7 | pmichaud++ | / (6 files):
First cut at zip and cross operators and metaoperators.
05:28
pmichaud p6eval rebuild nom
p6eval: rebuild nom
hmmmm.
evalbot rebuild nom
p6eval OK (started asyncronously) 05:29
pmichaud there. :)
rakudo: say ((1,2) X (3,4)).perl;
p6eval rakudo 1fcb14: OUTPUT«((1, 3), (1, 4), (2, 3), (2, 4))␤»
pmichaud correct.
rakudo: say ((1,2) X (3,4) X (5,6)).perl;
p6eval rakudo 1fcb14: OUTPUT«No applicable candidates found to dispatch to for 'infix:<X>'. Available candidates are:␤:(Any $lhs, Any $rhs)␤␤ in main program body at line 22:/tmp/7_146i2YUn␤»
pmichaud Bzzt!
rakudo: say (((1,2) X (3,4)) X (5,6)).perl;
p6eval rakudo 1fcb14: OUTPUT«((1, 5), (1, 6), (3, 5), (3, 6), (1, 5), (1, 6), (4, 5), (4, 6), (2, 5), (2, 6), (3, 5), (3, 6), (2, 5), (2, 6), (4, 5), (4, 6))␤» 05:30
pmichaud Bzzt!
nom: say ((1,2) X (3,4)).perl
p6eval nom: OUTPUT«Rebuild in progress␤»
pmichaud nom: say ((1,2) X (3,4)).perl
p6eval nom: OUTPUT«Rebuild in progress␤»
pmichaud (we need a faster rebuild :) 05:31
(or a more patient hacker :)
nom: say ((1,2) X (3,4)).perl
p6eval nom: OUTPUT«Rebuild in progress␤»
pmichaud :(
nom: say ((1,2) X (3,4)).perl 05:32
p6eval nom: OUTPUT«Rebuild in progress␤»
05:32 benabik joined
pmichaud nom: say ((1,2) X (3,4)).perl 05:33
p6eval nom: OUTPUT«Rebuild in progress␤»
jnthn grrr
pmichaud (sigh)
05:33 koban joined
pmichaud maybe it rebuilds from scratch each time :) 05:33
nom: say ((1,2) X (3,4)).perl 05:34
p6eval nom: OUTPUT«((1, 3), (1, 4), (2, 3), (2, 4)).list␤»
jnthn oh wow, we have LoL working :)
pmichaud Ding!
nom: say ((1,2) X (3,4) X (5,6)).perl
p6eval nom: OUTPUT«((1, 3, 5), (1, 3, 6), (1, 4, 5), (1, 4, 6), (2, 3, 5), (2, 3, 6), (2, 4, 5), (2, 4, 6)).list␤»
pmichaud Ding!!
nom: say ((1,2) X~ (3,4) X~ (5,6)).perl
p6eval nom: OUTPUT«('135', '136', '145', '146', '235', '236', '245', '246').list␤»
pmichaud Ding!!!
jnthn :D
pmichaud nom: say ((1,2) Z~ (3,4) Z~ (5,6)).perl
p6eval nom: OUTPUT«('135', '246').list␤»
jnthn pmichaud++
pmichaud Ding!!!!
nom: say ((1,2) Z~ (3) Z~ (5,6)).perl
p6eval nom: OUTPUT«('135',).list␤» 05:35
pmichaud Ding!!!!!
nom: say ((1,2) Z~ () Z~ (5,6)).perl
p6eval nom: OUTPUT«().list␤»
pmichaud Ding!!!!!!
:-D
jnthn wow
again, pmichaud++
This is really nice to have.
pmichaud nom: say ((1,2) Z+ (3,4) Z+ (5,6)).perl
p6eval nom: OUTPUT«(9, 12).list␤»
pmichaud nom: say ((1,2) Z+ 3..* Z+ 5..*).perl 05:36
uh oh
p6eval nom: OUTPUT«(timeout)»
jnthn nom: say ((1,2) Z- (3,4) Z- (5,6)).perl
p6eval nom: OUTPUT«(-7, -8).list␤»
jnthn nom: say ((1,2) ZR- (3,4) ZR- (5,6)).perl
p6eval nom: OUTPUT«(3, 4).list␤»
jnthn \o/
pmichaud not sure what happened with the infinite lists.. that really should've worked. must be some eagerness in there somewhere
jnthn nom: my @a = (1,2) Z+ 3..* Z+ 5..*; say @a[^10] 05:37
p6eval nom: OUTPUT«(timeout)»
pmichaud it's probably eagerness internal to Z that is the issue.
jnthn (just checking issue isn't in the .perl)
05:38 natureboy left
jnthn ooh, I should get lunch before $lunch-place shuts 05:38
bbs
pmichaud I'll probably head to sleep soon
been a long day :)
jnthn productive day though :)
sleep well, if I don't catch you again :)
05:59 lue left 06:01 koban left 06:11 Su-Shee_ is now known as Su-Shee 06:30 bakedb left 06:35 benabik left 06:38 masak joined
masak LoL is working? oh wow oh wow 06:38
TimToady, colomon: of course it should be $Δx et al. I'll make the change. 06:39
06:41 mj41 joined
jnthn masak. He feareth not the unicodez. 06:44
06:45 benabik joined
masak not when there's an _actual_ symbol, well-established within the mathematical community, for a whole word. 06:46
06:48 mberends joined
thou masak: do you know the current status of november wiki code? is there any that works w/ current rakudo? or is anyone working on that? 06:52
masak thou: it's not actively developed, no. 06:53
thou masak: maybe i made a mistake, but working with the "nomish" branch there are lots of test failures
OK
masak: i'm interested in getting it running 06:54
masak last thing I did with it was this: strangelyconsistent.org/blog/novemb...with-style
thou: oh! that's great news!
thou: I'd recommend starting with getting the tests to run/pass.
oh, you ran them already.
no, it's probably not you making mistakes. it has probably bit-rotted some. 06:55
masak checks
thou: have you found the branch "ng-compat" in the november repo?
thou yeah, makes sense. is current github/viklund the right place? 06:56
masak thou: you should probably be on that one if your Rakudo is newer than a year or so. :)
yes.
thou masak: ok. i thought i saw more recent commits on "nomish" but i'll switch to ng-compat
masak I don't know what "nomish" is. 06:57
thou ok. maybe a good reason to stay away from it :-)
06:57 cognominal_ joined
masak not necessarily. I just don't know it. 06:59
moritz good morning 07:01
07:01 cognominal left
masak moritz! \o/ good morning. 07:02
07:02 Bzek joined 07:07 cognominal joined 07:09 cognominal_ left
jnthn o/ moritz 07:11
07:12 Mowah joined
moritz \o 07:15
07:15 cognominal left 07:16 cognominal joined
tadzik o/ 07:29
07:29 bakedb joined
dalek kudo/nom: 681e4b5 | moritz++ | t/spectest.data:
two more passing test files (85 in total)
07:50
mberends oh, it's o/ time. o/ everyone 07:51
masak o/, mberends. 07:52
thou why is the following assignment resulting in a nested array? paste2.org/p/1497684 07:53
(see "[[" on line 36) 07:54
07:54 dolmen joined
moritz because $<chunk> does not flatten 07:54
masak $/<chunk> is an array.
you assign it to another array.
thou my @x = |$/<chunk>? 07:55
moritz masak: that alone is not enough
masak no, it isn't.
moritz thou: try $<chunk>.flat
jnthn my @x = $<chunk>.list;
masak or @($<chunk>)
moritz (but that is really ugly)
masak I'm not sure if @$<chunk> would work.
moritz it should, but doesn't in rakudo 07:56
masak std: $<chunk>; @$<chunk>
p6eval std 37a0cdd: OUTPUT«ok 00:01 119m␤»
masak ok.
moritz (and yes, long since RTed)
masak yep :)
someone on FPW had a great idea that I want to try: a script that basically treats the RT queue as a dynamically generated set of tests. 07:57
and runs them, and determines if any of the open tickets pass.
thou hmmm
actually @($/<chunk>) does work
@x = ($/<chunk>, ) # this doesn't work 07:58
masak yes, it does.
moritz masak: that's not so easy, given that many of them are things like "LTA error message" without saying what the error message should be
masak thou: no, that still doesn't flatten $<chunk>
07:58 wtw joined
masak moritz: good point. 07:58
moritz ok, nom mistery time 07:59
thou so it's about: assignment op doesn't flatten?
moritz nom: 1i
p6eval nom: OUTPUT«Null PMC access in find_method('new')␤current instr.: '_block1002' pc 28 ((file unknown):0) (:1)␤»
moritz this doesn't go through the postfix:<i> in Complex.pm
where does the error come from?
jnthn moritz: Is 1i parsed as some kind of complex literal? 08:00
08:00 amkrankruleuen left 08:01 bakedb left, amkrankruleuen joined
moritz jnthn: dunno, --target=parse is less than helpful 08:01
ah right, there's token number:sym<complex>
ah right 08:02
same problem as with Rat literals, I guee
thou and to fix this code: @!chunks = $/<path><chunk> // (''); i need to change it to: @!chunks = ($/<path><chunk> // ('')).flat; ?
moritz *guess
masak thou: you only need to .flat or .list $/<path><chunk> 08:03
thou yeah, but if it's not defined, i think it foobars the whole thing
moritz thou: and you can omit those single slashes
thou: $<foo> is the same as $/<foo>, but prettier to read
thou ah 08:04
08:05 Instil joined 08:08 koban joined
mathw masak: Still enjoying your blog posts :) 08:09
masak mathw: thanks :) I feel I was in a bit of a slump with the past week's worth of posts, but now it's getting better again. 08:11
mathw it's hard to keep this kind of thing going 08:13
easy to lose some momentum along the way
08:14 drbean joined
moritz jnthn: do you have any idea what to do about Rat and Complex literals? 08:17
jnthn moritz: Literals tend to mean we want to build the objects at compile time. 08:19
moritz: So we'd want to do something like for integer literals
With the added cmplication that they are slightly more complex.
er, no pun intended :)
moritz jnthn: that's what I tried for Rat
masak mathw: yes, well. the tuits was one thing. but I also notice when a blog post turns out nicely and has a kind of energy about it. I think the ones in the beginning had more of that. 08:20
moritz jnthn: and afaict the Rat got constructed fine, but the serializer can't handle it
mathw masak: the ones at the start seemed to have a very great purpose and direction about them. That's not quite so present at the moment
tadzik mberends: o hey
jnthn moritz: You need to do some stuff in SmbolTable.add_constant
tadzik mberends: some zavolaj tests are broken, aren't they? 08:21
jnthn moritz: Or, I do for Rat and then maybe you try it for complex :)
masak mathw: right, exactly.
mathw: mostly because they don't :)
moritz jnthn: deal :-)
jnthn: I can try to convert both to use native attributes - would that help?
tadzik moritz: would you mind if I swapped my gsoc goals for the two upcoming weeks? $=POD seems like a lot more important thing to do, also it's harder for me to estimate the time amount needed for that 08:22
moritz tadzik: go ahead
(with swapping and coding, I mean :-)
tadzik cool. I'll get on it today
08:22 bakedb joined
mathw masak: well it's an accurate impression then :) 08:23
jnthn moritz: er, that may get the wrong semantics
masak mathw: I think I might be getting back to it, though.
thou good night, all. o/
jnthn moritz: Shouldn't need to do that to make it work, anyways. :) 08:24
moritz jnthn: right, Rat should be parametric in the end...
masak sleep thee well, thou.
thou tak
08:25 thou left
tadzik also, $=POD will finally give us proper, in-field testing 08:25
jnthn
.oO( What about the roof? )
08:26
tadzik up the roof and beyond!
moritz jnthn: but making Complex a composite of two nums should be correct 08:27
tadzik are all rakudo branches now dalek'd automagically?
jnthn tadzik: yes
tadzik cool
mberends hi tadzik. Yes, Zavolaj has failing tests for NYI signatures, but they are documented and commented out. That way someone can still 'make test' and see that their installation works, even though Zavolaj may not support every operation that the developer wants. 08:34
tadzik mberends: well, some test fail for me 08:35
mberends o noes! I'll check how it looks locally
tadzik wklej.org/id/555349/
mberends 3Q 08:36
08:36 daniel-s joined
tadzik also, make spectest fail: wklej.org/id/555350/ 08:37
tadzik gone for a while
08:38 JimmyZ joined
jnthn nom: say .15 08:40
p6eval nom: OUTPUT«Don't know how to build a rational constant␤current instr.: 'nqp;Perl6;SymbolTable;add_constant' pc 12592 (src/gen/perl6-symboltable.pir:4266)␤»
jnthn
.oO( can it build irrational ones, though? )
08:41
08:44 daxim joined
moritz nom: class A { has int $!x; method set(Int $a) { nqp::bindattr(self, A, '$!x', nqp::unbox_i($a)) }; method get() { $!x } }; my $a = A.new; $a.set(5); say $a.get 08:46
p6eval nom: OUTPUT«55436088␤»
moritz that is... surprising :-) 08:47
nom: class A { has int $!x; method set(Int $a) { nqp::bindattr(self, A, '$!x', nqp::unbox_i($a)) }; method get() { nqp::p6box_i $!x } }; my $a = A.new; $a.set(5); say $a.get
p6eval nom: OUTPUT«64794384␤»
moritz nom: class A { has int $!x; method set(Int $a) { $!x = nqp::unbox_i($a) }; method get() { nqp::p6box_i $!x } }; my $a = A.new; $a.set(5); say $a.get 08:48
p6eval nom: OUTPUT«5␤»
jnthn moritz: nqp::bindattr seems to only know how to bind PMCs.
moritz ah, simple assignment DWIW
jnthn Maybe there's a nqp::bindattr_i
Yes, the compiler goes to some lenghts to do the right thing :)
moritz \o/
jnthn But if you're going to use ops, you gotta handle it yourself :) 08:49
moritz nom: class A { has int $!x; method set(Int $a) { $!x = $a }; method get() { nqp::p6box_i $!x } }; my $a = A.new; $a.set(5); say $a.get
p6eval nom: OUTPUT«5␤»
jnthn Anyway, you just saw the memory address of the PMC.
moritz nom: class A { has int $!x; method set(Int $a) { $!x = $a }; method get() { $!x } }; my $a = A.new; $a.set(5); say $a.get
p6eval nom: OUTPUT«5␤»
moritz yes, I figured
jnthn You nedn't box it yourself either
It uses PAST::Want
08:50 masak left
jnthn > say 1.4.WHAT 08:51
Rat()
> say 1.4
1.4
moritz next up: PAST::NotWant
\o/
dalek kudo/nom: 7cd81b3 | jonathan++ | src/Perl6/ (2 files):
Fix up moritz++'s patch for rationals.
08:52
08:52 ab5tract joined 08:55 aesop left
jnthn notes Tests=984 :) 08:58
Not far to break 1000
09:04 logicc2 joined, tzhs joined 09:08 antony_ joined 09:09 cotto joined
moritz opinion question: should the + in +(2 * 0.5) convert the result to Int? 09:18
background is that in +$string, the + returns the "best fitting" type 09:19
so +"4" -> Int, "4e0" -> Num etc.
09:21 am0c left, logicc2 left
flussence is there any current way to do that? 09:24
moritz eval()
flussence using + sounds like a better way to me :)
moritz same here :-) 09:25
nom: say chr 65
p6eval nom: OUTPUT«Could not find sub &chr␤current instr.: '_block1002' pc 75 ((file unknown):27160118) (:1)␤»
moritz nom: say chop 65 09:26
p6eval nom: OUTPUT«6␤»
moritz nom: say chomp 65
p6eval nom: OUTPUT«65␤»
moritz nom: say ord 65
p6eval nom: OUTPUT«54␤» 09:27
09:27 quiccker joined
moritz nom: say substr 'abc', 0, 2 09:28
p6eval nom: OUTPUT«Str()␤»
09:29 antony_ left, antony_ joined 09:31 quiccker left
tadzik spectest still fails for me 09:31
moritz got one failure too 09:32
tadzik nom: ('a' => 4).<a> 09:33
p6eval nom: OUTPUT«Method 'at_key' not found for invocant of class 'Pair'␤current instr.: 'postcircumfix:<{ }>' pc 275424 (src/gen/CORE.setting.pir:0) (:473)␤»
tadzik LHF?
dalek kudo/nom: 14b0d55 | moritz++ | / (2 files):
implement chr() function, add two ideas to LHF.markdown
moritz tadzik: probably
tadzik will see
09:34 am0c joined
tadzik rakudo: ('a' => 4).<a>.say; ('a' => 4).<b>.say; 09:34
p6eval rakudo 1fcb14: ( no output )
tadzik pff
rakudo: ('a' => 4).<a>.say; ('a' => 4).<b>.say; 'alive'.say
p6eval rakudo 1fcb14: OUTPUT«alive␤»
tadzik okay, so it's a Pair in nom only. master makes it a hash 09:35
rakudo: sub f1(*%h) { %h.perl }; sub f2(*%h) { f1(|%h) }; say f2(:a(4)).WHAT
nom sub f1(*%h) { %h.perl }; sub f2(*%h) { f1(|%h) }; say f2(:a(4)).WHAT
p6eval rakudo 1fcb14: OUTPUT«Str()␤»
tadzik nom: sub f1(*%h) { %h.perl }; sub f2(*%h) { f1(|%h) }; say f2(:a(4)).WHAT
p6eval nom: OUTPUT«Str()␤» 09:36
tadzik bleh
nowai
rakudo: sub f1(*%h) { %h.perl }; sub f2(*%h) { f1(|%h) }; say f2(:a(4))
p6eval rakudo 1fcb14: OUTPUT«{"a" => 4}␤»
moritz rakudo: say (a => 1).WHAT
tadzik nom: sub f1(*%h) { %h.perl }; sub f2(*%h) { f1(|%h) }; say f2(:a(4))
p6eval rakudo 1fcb14: OUTPUT«Pair()␤»
nom: OUTPUT«('a' => 4).hash␤»
moritz rakudo: say (a => 1).<a>
p6eval rakudo 1fcb14: ( no output )
tadzik moritz: no poscircumfix {} for a Pair in master either
moritz tadzik: I see no conceptual reason why we shouldn't support it 09:37
tadzik me neither. But the problem is now master and nom acting differently I think
rakudo: say :a(4).WHAT
p6eval rakudo 1fcb14: OUTPUT«Pair()␤»
tadzik nom: say :a(4).WHAT
p6eval nom: OUTPUT«Pair()␤»
tadzik strange
moritz nom: say Complex.Bool
p6eval nom: OUTPUT«No applicable candidates found to dispatch to for 'Bool'. Available candidates are:␤:(Complex)␤␤current instr.: 'Bool' pc 301090 (src/gen/CORE.setting.pir:85816) (:2688)␤»
tadzik rakudo: say |(:a(4)).WHAT 09:38
p6eval rakudo 1fcb14: OUTPUT«Pair()␤»
moritz note that the | applies to the string
rakudo: say (|:a(4)).WHAT
p6eval rakudo 1fcb14: OUTPUT«Capture()␤»
09:38 Katibe left
tadzik rakudo: sub foo(*%h) { say %h.perl }; foo(:a(4)) 09:38
nom: sub foo(*%h) { say %h.perl }; foo(:a(4))
p6eval rakudo 1fcb14: OUTPUT«{"a" => 4}␤»
nom: OUTPUT«('a' => 4).hash␤»
tadzik and... 09:39
nom: ('a' => 4).hash.perl
p6eval nom: OUTPUT«Method 'hash' not found for invocant of class 'Pair'␤current instr.: '_block1002' pc 91 ((file unknown):232) (:1)␤»
tadzik there
rakudo: Pair.new('a', 7).hash.perl.say
p6eval rakudo 1fcb14: OUTPUT«{"Any()" => Any}␤»
tadzik pff. Whatever, so Pair.hash is NYI in nom
jnthn Seems like LHF 09:40
moritz probably also LHF
09:40 kytibe joined
tadzik I'm on it 09:40
$!key or self.key? 09:41
moritz jnthn: seems like your last patch to add_constant could easily be generalized
tadzik the latter, thanks
moritz jnthn: to something like type_new or so
jnthn: that just looks up each argument via self.get_object_sc_ref_past 09:42
09:42 cotto left
tadzik fixed that, pushing 09:43
jnthn moritz: Yeah, we may want to do something ike that for when tadzik++ is working on the POD tree building. 09:44
dalek kudo/nom: 0b72806 | tadzik++ | src/core/Pair.pm:
Implement Pair.hash, fixing S06-signature/slurpy-and-interpolation.t
09:45
tadzik like a rebirth after the horror :)
09:48 cognominal_ joined
tadzik spectests' clean again 09:49
moritz tadzik++
tadzik is rakudo on frozen roast already?
moritz don't think so 09:50
09:51 cognominal left
dalek kudo/nom: cb31488 | moritz++ | src/core/Complex.pm:
remove stray proto
09:51
09:51 envi joined 09:55 am0c left
moritz nqp: say(1e3) 09:56
p6eval nqp: OUTPUT«1000␤»
09:59 agentzh left 10:09 JimmyZ left 10:10 JimmyZ joined
JimmyZ \o jnthn, BJPW will be live broadcast 10:11
conference.perlchina.org/bjpw2011/live.html
jnthn JimmyZ: oh, nice! 10:13
JimmyZ: I'm about to leave for pre-workshop dinner :) 10:14
moritz which room?
JimmyZ jnthn: yes, there is a dinner today night 10:15
jnthn moritz: See schedule; I'm on in both rooms but t different times
JimmyZ moritz: conference.perlchina.org/bjpw2011/schedule ; conference.perlchina.org/bjpw2011/live.html 10:16
moritz notices that jnthn hasn't confirmed his talks yet :-)
dalek kudo/nom: ae04dda | moritz++ | src/ (3 files):
implement Complex literals

This generalizes the serialization for 'rational' to any setting type that can be instantiated as
  $type_object.new(|@primitives).
tadzik jnthn: in how many hours are you speaking? 10:17
JimmyZ 40 + 40 10:18
tadzik dang, I'm not likely to be online by then 10:19
oh wait, 40 hours?
10:19 colomon joined
JimmyZ mins 10:19
tadzik yeah, that's what I was worried about
jnthn tadzik: No, JimmyZ misunderstood and thought you meant how long will I speak for :)
tadzik: Talks are tomorrow, but I'm 6 hours different timezone from you
tadzik that's barely a problem... 10:20
jnthn tadzik: So, time on the schedule - 6 hours
tadzik ...for I'm on holidays!
okay, I get it
jnthn So, 5am and 8:20am ;-)
tadzik so the second talk will be on 8am. Yawn :)
JimmyZ I guess there will be video files to be download
tadzik my sleep will be happy for that 10:21
JimmyZ ed
10:24 stephanepayrard_ joined
tadzik off for world exploration 10:25
10:27 cognominal_ left 10:29 JimmyZ left
jnthn Time to try and find the pre-conf meetup :) 10:33
dalek ast: 53a324b | moritz++ | S29-conversions/ord_and_chr.t:
remove a bogus test
10:39
moritz nom: class A { has $.x }; say A.new.x.WHAT 10:44
p6eval nom: OUTPUT«Mu()␤»
moritz I think that too should be Any
nom: map { $_ * 2}, 1, 2, 3 10:46
p6eval nom: OUTPUT«Could not find sub &map␤current instr.: '_block1002' pc 104 ((file unknown):41779916) (:1)␤»
moritz nom: grep { $_ * 2}, 1, 2, 3 10:47
p6eval nom: OUTPUT«Could not find sub &grep␤current instr.: '_block1002' pc 104 ((file unknown):140) (:1)␤»
colomon nom: say 3.1415926535897932384626433832795 10:49
p6eval nom: OUTPUT«1␤»
moritz colomon: the rat literals are very primitive atm 10:50
colomon nom: say 3.14159265 10:52
p6eval nom: OUTPUT«Rebuild in progress␤»
dalek kudo/nom: ff2f951 | moritz++ | / (2 files):
sub forms of map and grep; two more passing test files
10:54
colomon nom: say 3.14159265
p6eval nom: OUTPUT«3.14159265␤»
colomon nom: say 1+1i
p6eval nom: OUTPUT«1 + 1i␤»
colomon nom: say -1+1i
p6eval nom: OUTPUT«-1 + 1i␤»
colomon oooo
nom: say -(1+1i)
p6eval nom: OUTPUT«-1 - 1i␤»
colomon sweet
moritz note that it only constructs a Complex for the 1i at compile time 10:56
and the 1 + 1i is calculated at run time
but I don't see how I could fix that (needs a constant folder, afaict)
nom: say False 10:58
p6eval nom: OUTPUT«Could not find sub &False␤current instr.: '_block1002' pc 70 ((file unknown):54479668) (:1)␤»
colomon ah, that's okay in my book. I was just worried about duplicating all the bugs from olden days, and we seem to have dodged the complex literal one. 10:59
nom say 1-1i
nom: say 1-1i
p6eval nom: OUTPUT«1 - 1i␤»
10:59 _twitch joined
moritz well yes, I'm repeating all the old bugs :-) 10:59
colomon btw, in my opinion 2 * .5 should not be an Int 11:00
moritz that was never the question
the question was about +(2 * 0.5)
because the + does numeric type magic on Str too 11:01
colomon you mean +"(2 * 0.5)" ? 11:02
moritz no
I mean +(2 * 0.5)
colomon woah. that strikes me as unthinkably bad, actually. 11:03
moritz why?
prefix:<+> means 'give me a number'
and an Int certainly is a number
colomon because it's asking .Numeric to change the Numeric type of its input 11:04
moritz well, .Numeric is free to return anything that is ~~ Numeric
colomon sure, but you're asking a no-op to become an op 11:05
moritz yes
it's not a no-op by spec right now, afaict
is there anything you can't do on an Int that you can do on a Rat? 11:06
or asked differently, where would that hurt?
(mind you, I'm not all sold on the idea, I'd just like to understand why you object)
colomon I can't think of any sort of generic math result issues it would cause. Though obviously you cannot call Rat-specific operations on an Int. 11:08
but it is an efficiency issue, and a consistency issue. 11:09
how far would you take that logic?
should +(4.Num) be an Int?
or +(4 + 0i)?
afk # have to get in gear if I'm going to make it to the airport on time 11:12
moritz I'd be happy to experiment with how far to take the idea
colomon though one last thought: you're effectively saying that "1" + (2 * 1/2) should be an Int, but 1 + (2 * 1/2) should be a Rat.... 11:14
moritz no 11:15
I'm talking about prefix:<+> 11:16
not infix:<+>
unless infix calls prefix... hm...
that would be bad indeed
11:18 masak joined
masak <moritz> opinion question: should the + in +(2 * 0.5) convert the result to Int? 11:19
emphatic YES. :)
11:21 JimmyZ joined
colomon infix:<+> calls prefix:<+> if both arguments are not numeric 11:23
calls it on both sides, that it
*is
masak the use case for prefix:<+> numifying to the narrowest possible type is that things like 'my Int $x = +$0' will Just Work. 11:24
colomon sure, but why should it just work, if $0 is not an Int (or other object that becomes an Int)? 11:25
should +"2/2" be an Int? 11:26
11:27 lichtkind joined
masak +<2/2> could be a Rat or an Int. I don't know if the same rules apply to +"2/2" -- guessing not. 11:27
I'd expect +"2/2" to be 2 and an Int. 11:28
colomon: and I do see your concerns about Rats becoming Ints all of a sudden. 11:29
I agree we should probably be careful there, and (say) make sure that operations on Rats always yield Rats when the user expects it.
11:30 mtk joined
colomon or to put it another way: you're saying that my Rat $x = +$y *shouldn't* work if $y happens to be a Rat with a denominator of 1. 11:31
moritz why would you use a + there? 11:32
if you're not sure what type $y is, you should use my Rat $x = $y.Rat anyway 11:33
masak right. but there are cases where I'm sure the Str contains the representation of an Int.
moritz maybe the operation of narrowing a numeric type down should be separate from prefix +, but still available
masak: we're not discussion Str -> Numeric conversion
lichtkind that will just default to $*IN? ($answer = get;) 11:34
moritz masak: that's already specced as giving you an Int in this case
(it's just rakudo that lags behind)
masak moritz: ah, so $y would already be a number? no, I don't want that.
colomon I'm certainly all in favor of having a way of narrowing a numeric type. I just am not at all comfortable with that being prefix:<+>
masak moritz: that should be a no-op IMHO.
moritz: just like prefix:<~> is a no-op on Strs and prefix:<?> is a no-op on Bools. 11:35
moritz 13:19 < masak> <moritz> opinion question: should the + in +(2 * 0.5) convert the result to Int?
13:19 < masak> emphatic YES. :)
masak let me retract that :)
moritz now I'm surprised by the disconnect... Ok
masak emphatic NO :P
colomon afk # quick noms then packing
masak I'm so used to seeing the question about Strs, so I just assumed it was that again without looking carefully. apologies. 11:36
11:36 woosley left
masak er, I mean, I *do* apologise. wondermark.com/735/ 11:36
moritz it's ok
lichtkind do i have to sax $*IN.get or is get enough? 11:44
s/sax/say/ 11:45
masak get is enough. 11:48
moritz rakudo: say get
p6eval rakudo 1fcb14: OUTPUT«Land der Berge, Land am Strome,␤»
moritz see? not too hard to try out
masak lichtkind: questions like these are very amenable to trying with Raku... what moritz said.
lichtkind: it's not that we mind being bothered or anything, it's that we like it when people have done a minimal amount of research. 11:49
kthakore rakudo: say 'hug kthakore' 11:50
11:50 Grrrr left
p6eval rakudo 1fcb14: OUTPUT«hug kthakore␤» 11:50
kthakore yay!
moritz lichtkind: it's also in the specs
(IO.pod line 879)
masak not the most trustworthy of synopses, but still. spec and Rakudo agree; usually a good sign. 11:56
moritz niecza: say get 11:57
p6eval niecza v7-11-g9ba8284: OUTPUT«Land der Berge, Land am Strome,␤»
moritz two implementations actually :-) 11:59
11:59 Grrrr joined
masak Niecza gets it, too :P 12:00
moritz nom: say get 12:01
p6eval nom: OUTPUT«Could not find sub &get␤current instr.: '_block1002' pc 70 ((file unknown):37010516) (:1)␤»
dalek kudo/nom: af3879f | moritz++ | LHF.markdown:
note more LHFs
12:03
12:03 drbean_ joined
moritz ponders a small script that turns 'gi tpush' into 'git push' 12:04
masak I'm always weary of utilities that DWIM on typos.
moritz too, usually 12:05
masak much rather find a two-letter alias that's hard to mistype: 'gp' or something.
moritz but having to type with one hand more often means I have to think about ways to optimize what I type 12:06
masak 'gi tpush' suggests that you're fine up until the second keypress. :P
moritz right, but if I install an alias for 'git push', I will still misspell 'gi tdiff' etc. 12:07
masak I'll let you figure that one out on your own. :P
"teach a man to fish" and all that...
seeing TimToady++'s setup during some talk made me realize how much can be done with short aliases.
moritz teach a man to fish, and he'll never think about more efficient ways to nurture himself 12:09
lichtkind masak: in which? i tried s32
flussence
.oO( teach a man to fish, and eventually he'll start boring you with fishing stories... )
12:10
masak moritz: fish is healthy, and nutrient-rich :) 12:12
lichtkind: S32/IO:879 12:13
12:13 drbean left
moritz 13:50 < moritz> (IO.pod line 879) 12:14
but some people need to be told twice, it seems :-) 12:15
12:15 tzhs left
masak moritz: I just took what you wrote and represented it like I usually do. :) moritz++ 12:16
moritz I do apologize for not formatting it in a machine-readable way earlier :-) 12:20
12:20 _twitch left
masak on behalf of the bot community, I do accept the apology :P 12:20
lichtkind i did even try to fetch rakudo ppa but it doesnt ran that well
masak lichtkind: worksforme 12:21
12:21 _twitch joined
moritz ppa? 12:24
lichtkind moritz: launchpad.net/~dexter/+archive/rakudo-pkg 12:25
masak or you could just build from source. 12:26
it's easy.
lichtkind allright 12:27
moritz: you posted just the line i read before i asked, this just want clear to me
i just assume that just get is not enough 12:28
12:30 bluescreen10 joined
moritz lichtkind: so even after we told you, you still assume? 12:31
moritz shakes his head
masak senses misunderstanding in the air
people: would y'all agree that the Structured Programming movement was primarily about the maintainability of programs? 12:32
colomon hmmm....
not exactly, I'd say.
flussence I'd say it was more about the maintainability of programmers :) 12:33
masak please elaborate if possible, both of you.
Structured Programming, at its simplest, favored if/elsif/else and given-like constructs, as well as while/repeat/do-while loops, to goto statements. 12:36
Java takes this to an extreme by having labels and even a goto keyword, but no goto semantics. :)
tadzik a rainy day 12:37
12:37 Holy_Cow1 joined
masak my point is, how is this re-focusing on "higher-order" program-flow constructs not about maintainability? 12:38
colomon, flussence: I'm curious since both of you seem to feel it missed the point.
colomon it's not that it missed the point
it's just that it makes the point a little too strongly 12:39
IMO
lichtkind masak: oh no i just looked after the highlighted messages after coming back from a hack and didnt seen yours sorry
colomon except to the extent that all improvements to programming are improvements to maintainability. ;)
masak lichtkind: no idea what you're talking about. 12:40
colomon: ok, that's a fair point.
colomon I'd say it was sort of half maintainability and half... ummm.... write-ability.
flussence and improvements to amintainability = reduced burnout :)
colomon having actually programmed in the bad old days of goto, let me tell you, having functions with local variables makes code a LOT easier to write. 12:41
and easier to maintain is then the flip side of that 12:42
masak one thing that Structured Programming does, according to Wikipedia, is to say "everything you could do with goto you can also do (nicer) with conditionals and loops". with the additional benefit that it's easier to reason about for both humans and computers alike.
lichtkind masak: i didnt seen your first answer "masakget is enough." because of the other hihlighted that were already there
tadzik nom: my $=POD
p6eval nom: OUTPUT«Could not find sub &POD␤current instr.: '_block1002' pc 73 ((file unknown):135) (:1)␤»
tadzik ...what?
ach, $ = POD()
lichtkind doubts that everything you can do with goto could done with loops 12:43
flussence functions and everything based on them are just fancy gotos anyway :)
(take that, haskell! :)
lichtkind haha 12:44
moritz lichtkind: never heard of Turing completeness?
lichtkind moritz: i had cases where i deliberatly choose goto because anything else just went ugly
masak lichtkind: ugly != impossible
lichtkind yes of course 12:45
colomon well, impossible-ish.
masak I love to 'return' out of loops. some people hate that.
colomon there are stunts you could do with goto that you cannot do without it.
masak especially the "single point of exit" people.
colomon you can write a program to do the same thing without goto, but it will be more obtuse or less efficient 12:46
moritz masak: I never really understood their point of view
colomon thinks single point of exit people are completely bonkers
masak colomon: oh sure. Duff's device, for example.
moritz I know that Bertrand Meyer argues it makes code easier to understand
(or at least he did in OOSC v2)
masak moritz: I think it's a rare form of programmer's "grammar nazism". 12:47
12:47 daniel-s left
moritz but... he neglected to take into account that it can make the routine bodies themselves far more complicated 12:47
tadzik nqp seems to not like <?{ }> in grammars
[Coke] return early, return oftne.
masak moritz: I'm content with knowing that any multiple-exit routine can be mechanically transformed into a single-exit one.
[Coke]: amen to that.
colomon the classic example of an efficient goto trick is goto a sub instead of calling it, so that you save a stack shift / return statement. doesn't really work in structured languages, but it's a nice trick in old BASIC or assembly.
lichtkind i had to deinstall my old rakudo but now make process is moving :) 12:48
tadzik nqp: grammar a { token b { <?{ say 'foo' }> } }
p6eval nqp: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 1␤current instr.: 'nqp;Regex;Cursor;FAILGOAL' pc 3851 (src/Regex/Cursor.pir:239)␤»
tadzik is this a feature?
colomon afk # leaving on a jet plane... or more likely a turbo prop
12:48 colomon left
masak colomon: heh... it works in Perl 5 :P 12:48
moritz std: grammar a { token b { <?{ say 'foo' }> } } 12:49
p6eval std 37a0cdd: OUTPUT«ok 00:01 121m␤»
flussence perl5 also has the &subname syntax thing, IIRC 12:50
masak flussence: yes, but with a different meaning than in Perl 6.
flussence yeah, I'm referring to the goto-sub-stack-shift thing
masak flussence: in Perl 4, you called a sub foo by writing 'do foo'. then it became '&foo', and only then 'foo'. 12:51
flussence: the '&foo' form still exists, and also has two "extra" behaviors: it doesn't check prototypes and it doesn't set @_. 12:52
or in a word, "yeech".
flussence that last bit was what I was getting at, it lets you cheat. Not in a good way though :)
masak it's still no tailcall, AFAIK.
I might be wrong, though. 12:53
tadzik nom: grammar a { token b { <{ say 'fo' }> } } 12:54
p6eval nom: OUTPUT«Method 'new_type' not found for invocant of class 'Undef'␤current instr.: 'nqp;Perl6;SymbolTable;pkg_create_mo' pc 13759 (src/gen/perl6-symboltable.pir:0)␤»
tadzik whatever it is, it's LTA 12:55
12:57 bluescreen10 left
tadzik seems to not like 'ok 12:58
* 'or'
strange things 13:00
kthakore How do I ensure errors due to NativeCall.pir vs NativeCall.pm don't happen with the SDL module? 13:02
tadzik they won't 13:03
I took care of that a while ago 13:04
TimToady I use gp for git pull -rebase 13:06
13:06 donri joined
TimToady I type that more often than the others, but that's because I don't commit very often 13:07
kthakore TimToady: :)
tadzik: :)
TimToady: sorry that was for tadzik
smile misfire
:P
tadzik: awesome thanks!
TimToady also, that's a longer command, so deserves tobe shorter harder :)
tadzik it's no good to take smiles away :) 13:09
flussence I'd write that as "git config alias.pr='git pull --rebase'; git pr"
tadzik I just aliased g for git
survey: would you prefer Pod-related classes in Perl6 to be named Pod:: or Pod6::? 13:10
I'm more into the former as I think of it now
moritz Pod:: please 13:11
the 6 is already implied in the 'use v6;'
tadzik that's what I wanted to hear, thanks
13:12 bluescreen10 joined
masak what moritz said. 13:14
S26 calls it Pod, too.
the 6 only makes sense from a Perl 5 perspective, really.
tadzik troo 13:15
masak moritz: I guess single exit-points are more important in a medium with manual memory management. 13:17
even so, one could imagine such a language having the equivalent of a LEAVE {} construct. 13:18
tadzik wklej.org/id/555496/ -- any clues? 13:21
13:21 Holy_Cow1 left
TimToady S01:105 seems a bit obsolescent... 13:25
13:25 bakedb left
moritz tadzik: please try to revert ae04ddae2a514732cc846b19c2e90e721008d408 locally and then try again 13:27
masak TimToady: well, migration *is* important. :) 13:28
TimToady it's the next sentence that is bothersome 13:29
it really only applies to an executable named "perl"
masak aye.
13:30 ab5tract left
masak it is factually true that the presence or absence of that section has little impact on any current applications, simply because none of them produce "perl" executables. 13:31
I guess one could rename them to "perl" and submit Rakudo- and Niecza-bugs, though :P
masak .oO( when your only tool is a masak, every problem looks like a bug )
tadzik moritz: same 13:32
frettled Cram Kalas! 13:33
masak another anagram? nice :)
frettled kram Claas
frettled is not quite Sherlock Holmes. 13:34
Mark Scala
13:35 mtk left 13:36 Instil left
masak frettled: Sand Jag Din Volt :) 13:36
moritz nom: class A::B { }; class A::C is A::B { }
p6eval nom: ( no output ) 13:37
13:37 bakedb joined
masak Ads Van Dong Jilt 13:37
TimToady nom: my @a = 1,2,3 Z* 1,2,3; say @a
p6eval nom: OUTPUT«1 4 9␤»
lichtkind jejky i my machine compile rakudo
TimToady nom: my @a = 1,2,3 Z* 1,2,3 Z* 1,2,3; say @a
p6eval nom: OUTPUT«1 8 27␤»
moritz tadzik: fails in a trait_mod is, so might be related to the inheritance and/or names of the classes
TimToady pmichaud: ^^^ you don't need all those parens 13:38
tadzik int eresting
frettled masak: nice ones :D
TimToady X and Z are list infixes
13:38 mtk joined
frettled masak: I try to get people to spell my names using the following mnemonic, but unfortunately, most people don't understand mnemonics: ingen vold i staden 13:38
masak: but this reminds me that an anagram generator in Perl 6 would probably be cool. 13:39
masak frettled: Jag Vann Dit Sold
frettled: I challenge you to write an anagram generator. and make the code really transparent and pretty. :) 13:40
13:40 _twitch left
masak not *literally* transparent, of course. that's Whitespace. but easy-to-read. 13:40
frettled masak: dang 13:41
arnsholt I think a trie is a good place to start for an anagram generator
13:41 mtk left
arnsholt And some kind of recursive enumeration of all possible anagrams 13:42
13:42 mtk joined
moritz I think you shouldn't generate anagrams, but search them 13:42
arnsholt Well, yeah. But I think recursively enumerating all possible permutations is a good place to start, and then using the dictionary trie to filter what you generate 13:43
frettled Anagrams are cooler if you require that they at least _seem_ like proper words. Some password generators are like that, those are very nice.
Setec Astronomy => too many secrets (STR, but are there other nice anagrams for that?) 13:44
arnsholt Well, if your filter is populated with /usr/share/dict/words, it would contain only known words
masak as far as I can tell, you could solve this by using Dancing Links. 13:45
arnsholt, frettled: any of you coming to YAPC::EU? 13:46
arnsholt I'd really like to, but no =/
13:46 MayDaniel joined
masak oh well. 13:46
arnsholt Maybe next year, when I'll be able to actually plan holidays and such (hooray for employment) 13:47
masak I'll make sure to put up the slides afterwards, though. then we can at least talk about it over IRC.
arnsholt But "recursive, nondeterministic, depth-first, backtracking algorithm" sounds more or less like what I was thinking of
frettled masak: me neither :(
no holidays left
masak arnsholt: I'm writing an ASCII-art frontend to Dancing Links in Moose right now. 13:49
arnsholt Nifty!
tadzik moritz: oh, I left one "Pod6::" in there
moritz tadzik: that might explain things
tadzik yeah
masak arnsholt: github.com/masak/dlx-simple/blob/m...verview.md 13:50
arnsholt Interesting! 13:52
How much magic are you going to put into the Reader/Writer parts?
Or rather, will there be magic, or are they things you'll have to roll on your own?
frettled masak: fascinating! 13:53
masak :)
arnsholt: not sure I understand the question.
arnsholt: define "magic".
arnsholt Heh. Magic might be a bit hyperbolic, I admit 13:54
To what extent will your code be able to figure out the ASCII->Matrix and Matrix->ASCII mappings on its own?
Or will those be things a user will code up on their own? 13:55
masak arnsholt: I expect to have to write pretty dedicated parsers for each type of problem.
lichtkind sorry my question maybe gets really stupif but i gut in my shell a green thing called perl6 wich i cant call but has +rwx its not a softlink 13:56
masak arnsholt: the thing that will probably be generalizable/reusable is the mapping code itself.
lichtkind it has a * behind it in ls -l
arnsholt masak: Yeah, that's where my initial 30 seconds of pondering ended up as well =)
13:56 drbean_ left
tadzik nom gets confused if I put Foo::Bar classes into the setting. FooBar are ok, but for Foo::Bar ./perl6 says "Could not find symbol 'Foo::&Bar'" 13:56
arnsholt But people 'round here have a tendency to come up with surprising amounts of cleverness =)
BTW, it might be worthwhile to have the Perl5 code call out to the C code, once you get that far 13:57
I've hacked with some SWIG stuff lately, and it's quite nice to work with
masak nice idea. might gain me some speed. 13:59
thanks.
arnsholt You're welcome. Feel free to prod me about it
The docs are a bit obtuse unfortunately, but it turns out to be reasonable in the end
masak arnsholt: the parsing will essentially be of 2d ASCII art, so I doubt there'll be much commonality, except in limited cases. 14:00
arnsholt Indeed
14:04 bakedb left 14:06 mberends left
pmichaud good morning, #perl6 14:06
masak o/ pmichaud
moritz \o
rakudo: say infix:<Z>(1, 2; 'a', 'b').perl 14:09
p6eval rakudo 1fcb14: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 22␤»
14:10 benabik left, newbee joined
TimToady rakudo: say infix:<Z>((1,2; 'a','b')).perl 14:10
p6eval rakudo 1fcb14: OUTPUT«No applicable candidates found to dispatch to for 'infix:<Z>'. Available candidates are:␤:()␤:(Any $lhs, Any $rhs)␤␤ in main program body at line 22:/tmp/hFISlhcrn6␤»
TimToady semicolon is problematic in an argument list 14:11
std: say infix:<Z>(1, 2; 'a', 'b').perl
p6eval std 37a0cdd: OUTPUT«ok 00:01 121m␤»
TimToady hmm
pmichaud nom: say infix:<Z>(1,2; 'a','b').perl 14:12
p6eval nom: OUTPUT«((1, 'a'), (2, 'b')).list␤»
TimToady okay
pmichaud master doesn't understand semiarglists (never has)
TimToady I guess it's statement modifiers that are more of a problem
moritz I wanted to use nom, but I failed 14:13
pmichaud I'm still a little uncertain about semicolons in parens, though. 14:14
TimToady you could think of it as a funny list infix in that case 14:17
it's no more retroactive than X or Z 14:18
pmichaud so, even though we parse them as '(' <statementlist> ')', it really acts like a semiarglist inside? i.e., each of the ';' components are kept?
[Coke] pmichaud: o/ 14:19
pmichaud my @foo = ( stmt; stmt; bar() ); # the stmts aren't in sink context
TimToady that's the point of not parsing with statementlist 14:20
that's why we have semiarglist, to change the semantics of ;
pmichaud I'm just saying that circumfix:<( )> doesn't use semiarglist, but has to act like it. Is that correct? 14:21
kthakore is there a perl6 module author mailing list? 14:22
TimToady it's semilist in STD
kthakore how ... do I find STD?
pmichaud ahhhhhhhh
I'm not awake yet here. 14:23
kthakore nvm sorry
kthakore runs away again
pmichaud okay, I see now. We have semiarglist, statementlist, *and* semilist
I didn't catch that third one. TimToady++
TimToady I didn't add it, sorear++ did, apparently 14:24
14:26 bakedb joined
TimToady kthakore: it's at [email@hidden.address] 14:26
kthakore TimToady: I thought '< TimToady>(*.+)semlist' pretained to my question ( is there a perl6 module author mailing list? ). 14:27
semilist*
moritz kthakore: you can use the perl-users list for that 14:28
kthakore moritz: ... sent it to announce :\
14:28 MayDaniel left
kthakore ah well 14:28
14:29 leprevost joined
slavik rakudo 2011.04 has issues loading pir modules and the paths are in @*INC, am I doing something wrong? or am I missing something? 14:29
14:31 agentzh joined 14:32 wamba joined
moritz slavik: define "has issues" 14:34
slavik moritz: it says that it can't find the module 14:35
14:35 birdwindupbird left
moritz slavik: do you also have the .pm (or .pm6) file in @*INC? 14:36
slavik moritz: don't think so, is that the reason?
moritz: the pir is def there 14:37
didn't see the .pm/pm6
pmichaud *which* .pir, ooc?
moritz slavik: then it won't work
slavik ahh, I see
fair enough
moritz slavik: .pir files are just caches, so to say. .pm(6) is the authorotative source of infomration
slavik how come rakudo* doesn't come with the .pm* stuff for the .pir stuff it includes?
I see
wait, aren't .pir parrot assembly code? 14:38
moritz it should
yes
pmichaud the .pm files are required? that wasn't always the case
slavik yeah, in older dev version of parrot/rakudo (parrot 0.84 version, I remember) .pir was the only thing that was needed 14:39
14:39 newbee left 14:40 kaare_ joined 14:42 wtw left
pmichaud 12:48 <tadzik> nqp: grammar a { token b { <?{ say 'foo' }> } } 14:42
say requires parens in nqp
nqp: grammar a { token b { <?{ say('foo') }> } } 14:43
p6eval nqp: ( no output )
pmichaud tadzik: ^^^^^^
14:45 bakedb left
slavik rakudo: use Data::Dumper; my $a = 5; say Dumper $a; 14:45
p6eval rakudo 1fcb14: OUTPUT«===SORRY!===␤Unable to find module 'Data::Dumper' in the @*INC directories.␤(@*INC contains:␤ lib␤ /home/p6eval/.perl6/lib␤ /home/p6eval//p1/lib/parrot/3.5.0-devel/languages/perl6/lib␤ .)␤»
slavik see?
:P
pmichaud does :from<parrot> work?
since Data::Dumper isn't written in p6, it might need a :from in order to use it (which may or may not be implemented in rakudo atm) 14:46
moritz pmichaud: the .pm files are required since we have support for module versions 14:47
pmichaud: which iirc was done at the Copenhagen p6 hackathon in 2009 14:48
pmichaud hmmm, I think it had to have come later than that.
still, loading an arbitrary .pir file will likely need a :from<...> somewhere, or something like that. 14:49
14:49 jferrero joined
moritz speaking of dumpers... in nom, --target=parse is pretty useless atm 14:50
pmichaud yes, I think we're going to have to re-implement Data::Dumper for nqp
Parrot's Data::Dumper doesn't know how to deal with 6model objects, or something like that. 14:51
or perhaps it's as simple as creating 'dump' methods on the 6model versions of Capture/Match... but I'm not entirely sure about that
[Coke] might just need a plugin. 14:52
pmichaud I bet Data::Dumper will also have trouble with object attributes from 6model
[Coke] You should be able to write your own method for dumping, IIRC.
pmichaud yes, it's just 'dump' :-)
er, '__dump' 14:53
looks like __dump is defined in src/Regex/Dumper.pir (of nqp), but I'm not sure it's working.
14:54 koban left
pmichaud almost certain not to work -- it doesn't appear to have been 6modelified 14:54
well... hrm. 14:55
maybe it has been done. anyway, when it works in nqp, it'll likely start to work in nom.
although it may also be that we'll run into issues when the dumper encounters a p6 object 14:56
14:58 mj41 left 15:03 bakedb joined
moritz I'm trying to patch Complex to hold two (native) num objects 15:03
and it generates code like 15:04
repr_get_attr_num $N7856, $P165, $P166, "$!im"
where IMCC complains:
error:imcc:syntax error, unexpected NREG, expecting '(' ('$N7856')
so, it seems to not know about the opcode
15:05 agentzh left
moritz but it has a .loadlib "nqp_ops" on top 15:05
jnthn check nqp.ops 15:07
to make sure thaqt's there
JimmyZ there is no that op 15:08
the second repr_get_attr_int should be repr_get_attr_num
jnthn (or I can in 10 mins)
JimmyZ: oh. copy pasto. :(
JimmyZ yes 15:09
the doc is right
15:12 bakedb left
moritz JimmyZ++ 15:13
I ack'ed it, found it in the heading and thought it would be fine
15:15 thou joined
moritz fixing, will push after (successful) tests 15:16
mikemol Re, "is there a place where everything in X is listed" ... couldn't that like of list be autogenerated by running spec tests on implementations? 15:18
JimmyZ think repr_get_attr_int and repr_get_attr_num could be 'repr_get_attr', since parrot supports ops with same name with different args
dalek p: bb56d12 | moritz++ | src/ops/nqp.ops:
fix a copy'n'past-o, JimmyZ++, jnthn++
15:21
pmichaud yes, nqp::bindattr_[i|s|n] and nqp::getattr_[i|s|n] sound good to me. Shall I add them? 15:23
moritz +1 15:24
TimToady I'm wondering if there should be a Default role that the standard containers use, with a default default of Any 15:27
rather than, say, passing special arguments to KeyHash
pmichaud I could see that working. Maybe de-huffmanize Default a little (seems too generic a word to me) 15:28
TimToady well, in practice, we might have special syntax for a declarator
my $x ! 42 or some such
suggestions welcome
moritz what would that do?
TimToady set $x to 42 if you say $x = Nil
or rather, assume it's 42 15:29
my @x ! 42 would return 42 for any non-existing element
pmichaud maybe de-huffmanize ! a little, too :)
moritz what about a trait? 15:30
TimToady yes, well, I've thought of a lot of ugly solutions so far
moritz my @x defaults(42)
is default(42)
or somthing
masak decommutes &
15:30 masak left
pmichaud my @x is nil(42) 15:31
15:31 alester joined
moritz oh wow, I've got it to compile... and now it segfaults 15:31
TimToady pmichaud: that was one I kinda liked
15:32 bakedb joined
TimToady or my @x nil 42 15:32
dalek p: ef8b5d3 | pmichaud++ | src/PAST/NQP.pir:
Add nqp::bindattr_[i|n|s] and nqp::getattr_[i|n|s]. jnthn++ / moritz++
jnthn moritz: (segfault) maybe you're using nqp::getattr somewhere on it rather than nqp::getattr_n 15:33
TimToady also played a lot with operators resembling default args, such as my @x ≗ 42 15:34
moritz moritz.faui2k3.org/tmp/Complex-num.patch that's the patch, and a simple ./perl6 -e 'say 1i' segfaults
jnthn moritz: If it's a native type you have to use the native attribute access variant
moritz hm, maybe the autogenerated accessor does
jnthn oh
yeah, that's possible
If so, add to nommap; I'll fix it.
moritz tests with custom accessors 15:35
TimToady my @x is nilly(42) :) 15:36
jnthn moritz: Generally, the 6model core leaves it to compilers to generate correct code rather than slowing things down with checks all over.
moritz is nillable-to(42)
jnthn: yep, sensible (if the compiler is good enough :-)
jnthn So it'll happily segfault if you cheat on the type system. :) 15:37
TimToady is when-you-destroy-this-it-pretends-to-be(42)
jnthn Thankfully things tend to explode very quickly.
pmichaud my @x is nihilistic(42)
moritz \o/ works
TimToady there are an awful lot of clicks on this huffman knob... 15:38
jnthn moritz: yay 15:39
TimToady: What're we trying to achieve with this?
dalek kudo/nom: 0feaed3 | pmichaud++ | src/core/ (2 files):
Switch Pair.hash so that it doesn't return a scalar Hash; let it default
jnthn I'm guessing this is vagluey related to my Mu $x = Any
TimToady yes
to set a different Any on an individual decl 15:40
pmichaud we're basically determining what "undefined" means on any given container :-)
oh, drat
jnthn ah
pmichaud we're basically defining what "undefined" means on any given container :-)
jnthn :P
TimToady it bothers me ever so slightly that it means something a bit different for my @x is nil(42) than my $x is nil(42) 15:41
jnthn TimToady: Only to the degree that my int $x and my int @x are different though, I guess
TimToady or more to the point, my %x is nil(42)
pmichaud feels like we want a counterpart to 'of'
moritz 'fo' 15:42
TimToady since the element exists in $x, and generally doesn't in %x
moritz sorry, could not resists
pmichaud 'of' sets the constraint type -- we want something that sets the undefined value
(undefined default)
jnthn Maybe it's a type modifier of some kind
dalek kudo/nom: 7ea50ce | moritz++ | / (3 files):
Complex now holds two native nums

allso bumps NQP_REVISION, and adds a note to NOMMAP about segfaulting autogenerated accessors
TimToady well, but it's not undef, it's unexist
jnthn Aong the line of the coercion types we've sometimes discussed in the past.
pmichaud right, unexist then
jnthn *along 15:43
pmichaud (much better word, that)
jnthn The word unexist unexists in my dictionary :P
15:43 jaldhar left
moritz without having benchmarked this patch, I guess it actually slows down things a bit (more boxing going on), but is generally a step in the right direction (less memory used) 15:43
jnthn moritz: What do the ops on complex look like?
moritz: Please say they don't call the accessors and .new? 15:44
TimToady Any:U(42) :P
except that's undef
moritz jnthn: they do, for now
pmichaud :N(42)
jnthn moritz: Yeah, that's one place where we probably should break encapsulation...
moritz jnthn: agreed
jnthn Same for Rat
Of they'll be awful
moritz Rat isn't so easy
mikemol muses 15:45
jnthn Anyway, fix the ops up so they don't do boxing all over and it'll perform very nicely
mikemol Is there any property of Rats that might mark them as dirty in some sense?
jnthn No, Rat is trickier, I agree.
mikemol smells a pun
jnthn It can't be native
mikemol: I guess their readonlyness is dented... ;)
TimToady
.oO(endentured natives...)
15:46
kthakore /win 2 15:51
moritz I'm now working on a patch that makes prefix:<-> for Complex unbelieably fast and ugly
15:51 bakedb left
pmichaud fast, good. ugly, not so good. :) 15:51
TimToady trust is a beautiful thing :) 15:52
jnthn It's not breaking encapsulation. It's *trusting*. :D 15:53
TimToady btw, I do agree that Complex should not be assumed to be identical to complex
jnthn TimToady: iirc, the complex is certainly two native ints, and Complex may not be? 15:54
15:54 pjcj left
TimToady it might default to Complex[num,num], but Complex[Rat,Rat] is also likely 15:54
pmichaud ints?
:-)
jnthn er, nums
daxim complex nom nom 15:55
TimToady oh, great, now I have to figure out what the 'nom' type is...
pmichaud my $x is nom(42) :-P
TimToady something ate it!
pmichaud short for "nominal" 15:56
TimToady is nominally
pmichaud right
but then we also have my @x is LoL is nom(42) .... and the puns just keep on coming.
JimmyZ sleeps, night to jnthn
TimToady is no longer nom(Any) alas
jnthn JimmyZ: night...I'll sleep soon too. talk tomorrow ;)
moritz nopaste.snit.ch/56497
that's how the prefix:<-> looks now 15:57
pmichaud one achieves perfection when they can be nom(Mu), I guess. :)
moritz oh, that looks wrong
but you get the picture
15:57 zby_home_ joined
jnthn moritz: Those'll be fast, especially when we get the optimizer :) 15:57
pmichaud especially when we can avoid all of those 'Complex' lookups :) 15:58
moritz I accidentally deleted 3 lines from the paste (the ons that get and negated $!re)
jnthn oh, true
well
that's easy
my $new = nqp::create($a)
create doesn't need a type object.
Any instance will do.
pmichaud ...it's still a lookup :)
moritz if I do nqp::create($a), and somebody subclasses Complex... 15:59
jnthn pmichaud: static multi-dispatch optimization + inliner + lexical to register lowerer = fine :P
pmichaud jnthn: agreed, it'll work out.
moritz does it automatically generate an instance of the subtype?
jnthn moritz: ...then it'll probably do the right thing :)
moritz: Yes :)
pmichaud I'm pretty sure repr_instance_of does an implicit .WHAT 16:00
jnthn pmichaud: I sure hpo not.
pmichaud (and thus nqp::create does so also)
jnthn pmichaud: It's a wasted .WHAT if so.
pmichaud oh, guess not.
jnthn designed it to be agnostic about that on purpose :) 16:01
pmichaud then how does nqp::create($a) work?
(if $a isn't a type object)
moritz STable magic? 16:02
jnthn pmichaud: It simply doesn't matter to create whether it's passed an instance or a type object. 16:03
16:03 bakedb joined
jnthn pmichaud: If it has any repr data, that's on the s-table 16:03
pmichaud jnthn: right. An "implicit WHAT". Note the word "implicit"
create says "create an instance of the same type as what I'm passing you" 16:04
jnthn Right
I just find it confusing to start talking about .WHAT when it's not involved at all :)
pmichaud fairy nuff
jnthn Maybe I know the guts too well though :)
moritz error:imcc:The opcode 'repr_bind_attr_num_p_p_s_n_n' (repr_bind_attr_num<5>) was not found. Check the type and number of the arguments 16:05
pmichaud oooooops
pmichaud--
moritz one n too much?
pmichaud wrong return type, likely. 16:06
moritz 346: maphash['bindattr_n'] = 'repr_bind_attr_num__PPsn'
right
pmichaud yeah, that's wrong.
jnthn Missing v
or 0
pmichaud maphash['bindattr_n'] = 'repr_bind_attr_num__3PPsn'
jnthn er
pmichaud fixing.
jnthn 3
:)
dalek p: 1819a41 | pmichaud++ | src/PAST/NQP.pir:
Fix signatures for nqp::bindattr_[i|n|s]. moritz++, pmichaud-- .
16:07
pmichaud Fixed.
16:09 kaare_ left
pmichaud how do we mark tickets in RT as "need spectest"? Is it still assign to moritz++, or do we have something different? 16:11
moritz pmichaud: there's a tag for it 16:12
testneeded iirc
pmichaud testneeded, yes. 16:13
moritz and rakudo.de/testneeded redirects to an RT query that searches for that tag
pmichaud ooh, I think I'll do that for rakudo.org, too.
dalek kudo/nom: 6cd9c42 | pmichaud++ | src/core/Hash.pm:
Make "Odd number of elements" error a bit stronger, fix Hash.STORE
moritz pmichaud: want to peek at my .htaccess file? 16:14
pmichaud a gist would be very helpful, yes :)
16:15 daxim left
moritz pmichaud: github.com/perl6/rakudo.de/blob/ma.../.htaccess 16:16
"it's all in git"
16:17 awoodland joined
moritz I've added a few variants because I had trouble memorizing the exact names 16:17
of the tags
pmichaud wfm
moritz $ ./perl6 -e 'say -(1+2i)' 16:18
P6opaque attributes NYFI 2
16:18 JimmyZ left
pmichaud rakudo.org/testsneeded # works, moritz++ 16:19
I'm going to make a few more :-P
16:24 MayDaniel joined, asdgqwrtr joined
pmichaud rt: "Found 871 tickets". Only 871? I thought it was a lot more by now. 16:25
moritz tadzik++ and others went through RT, fixing LHFs and closing closable tickets 16:28
pmichaud outstanding.
tadzik++ others++
oh, my ticket life just became much easier. moritz++ for the url redirects. 16:29
jnthn Indeed, that's nice to have :) 16:30
ok, sleep...talks tomorrow :)
pmichaud jnthn: sleep well
jnthn Thanks :)
pmichaud we'll be watching, hopefully :)
jnthn :)
pmichaud (should we tweet the url of the presentation?)
jnthn Feel free :)
pmichaud (er, the live video?)
jnthn I can't tweet here 16:31
Unless I punch an SSH tunnel through the great wall... :/
pmichaud I wonder if they'd "detain" you for that. :)
Q: "Why did rakudo development stop?" A: "SSH tunneling" 16:32
:(
jnthn Well, I'm irssi-ing through SSH
pmichaud aha :)
16:32 MayDaniel left
jnthn So if that's enough, I'm already in trouble. :) 16:32
pmichaud I think I'll update how-to-help with information about finding places where we need tests :) 16:34
(and perhaps update how-to-help in general)
jnthn +1
jnthn sleeps
pmichaud I think I may also edit some RT tickets so they have [NYI] instead of / in addition to [TODO]
then we could quickly find NYI features
(and perhaps let it be a list of known NYI features)
moritz phenny: tell jnthn moritz.faui2k3.org/tmp/Complex-num.patch results in 'P6opaque attributes NYFI 2' - any ideas? 16:37
phenny moritz: I'll pass that on when jnthn is around.
pmichaud moritz: looking 16:39
it's in get_attribute_num, and it means it's unable to find the attribute you've provided 16:40
I can patch it to indicate what attribute it's not finding
(I did this for NYFI 1 and NYFI 4 and it's been hugely helpful) 16:41
moritz pmichaud: that would be good 16:42
dalek p: 879073f | pmichaud++ | src/6model/reprs/P6opaque.c:
Patch to P6opaque num/str attribute lookup to report which attribute was not located.
16:43
moritz wonders how hard it is to misspell '$!re' and '$!im' -- I might have managed that :-)
16:44 dolmen left
pmichaud you likely need to decontainerize $a 16:44
it's looking up the attributes on the scalar container instead of what it contains, I bet.
TimToady perl6: say +⅓ 16:45
p6eval niecza v7-11-g9ba8284: OUTPUT«Unhandled exception: System.Exception: invalid digit in ⅓␤␤Server stack trace: ␤ at Niecza.CLRBackend.Unit.EmitExactNum (Int32 numbase, System.String digits) [0x00000] in <filename unknown>:0 ␤ at Niecza.CLRBackend.Unit.EmitVarConsts () [0x00000] in <file…
..rakudo 1fcb14: OUTPUT«===SORRY!===␤Confused at line 22, near "say +\u2153"␤»
..pugs: OUTPUT«decodeUTF8': bad data: '\8531'␤*** ␤ Unexpected "\8531"␤ at /tmp/DU038Sk0ZI line 1, column 6␤»
pmichaud TimToady: we don't like that. :-P
TimToady smirks
it would make $x ** (1/3) a lot prettier :) 16:46
pmichaud assuming your font had that glyph :)
TimToady I don't have to assume that
pmichaud :)
16:47 antony_ left
pmichaud does this mean that "1/3" qualifies as a "Texas one-third"? :-) 16:47
TimToady well, (1/3) does maybe
presumably ⅓ would be a term 16:48
so 'use Texas' would enable (1/3), and 'use Alaska' would enable ⅓ :P 16:49
PerlJam Everything is fatter in Texas?
TimToady it's just more one-thirdy there 16:50
well, more like 11:50
TimToady is suddenly hungry... 16:51
thou actually i think they call it "a fifth", but they're just generous
TimToady that's for "thirsty", not hungry 16:52
PerlJam I don't think it's for "thirsty" as much as for something else that just happens to involve liquids 16:54
TimToady looks around for a fifth of milk... 16:55
Su-Shee I had my fifth coffee an hour ago.. ;)
good evening everyone.
PerlJam <@Nicholas> Perl 6 has complex numbers built in. Does that mean that it can have imaginary versions?
<@Nicholas> That solves the whole 5 vs 6 thing - Perl 5 gets the real axis, Perl 6 the imaginary.
(from #p5p) 16:56
Now *there's* an idea! :)
TimToady those guys have no imagination...
Su-Shee well I'm choosing both. always. perl 5 and 6, facebook and google plus.. sugar and milk... 16:57
moritz and non-standard implementations get angles other than 0 and pi/2
thou sounds like it would be complex to implement
pmichaud alas, a lot of people believe Perl 6 is imaginary already. 16:58
TimToady it's not like 5 and 6 are polar opposites...
16:58 cdarroch joined, cdarroch left, cdarroch joined
pmichaud "No wonder Perl 6 hasn't been released... it's imaginary!" 16:58
It does make me wonder about Perl 5i then :) 16:59
Su-Shee "imagine a released version of perl 6 and here, magically you can download it on github" ;)
TimToady wonders if the name "Nuke Dukem Never" is trademarked...
16:59 masak joined
masak weekend! \o/ 17:00
17:00 bakedb left
moritz pmichaud: so, it's $!re -- not surprising, because that's the first one 17:00
pmichaud did you see my note above about decontainerizing? 17:01
you might need to decontainerize $a if the Complex is coming in with a scalar container
moritz and I shoudl bind to $a
erm, $new
pmichaud that's often better, yes :) 17:02
need lunch here -- bbl
masak 'my @a is default(42)'? has some prior art in Moose.
kthakore TimToady: I will make tha game and tradmark it! 17:03
TimToady we're already going to have the problem of people thinking we stole Moose's object model :) 17:05
masak is that a problem? it's a wonderful object model... 17:06
TimToady rosettacode.org/wiki/Unicode_strings#Perl_6
Su-Shee kthakore: it seems I can't yet send invitations. ask me again in a week, then I try again. 17:07
TimToady perl6: constant fatpi = 3.14159_26535_89793_23846_26433_83279_50288; say fatpi.WHAT 17:08
p6eval niecza v7-11-g9ba8284: OUTPUT«Num()␤»
..rakudo 1fcb14: OUTPUT«===SORRY!===␤Constant type declarator not yet implemented at line 22, near "= 3.14159_"␤»
..pugs: OUTPUT«*** ␤ Unexpected "="␤ expecting ":" or "("␤ at /tmp/c9kwh11a8q line 1, column 16␤»
17:08 xhacktly joined
masak TimToady++ # RC 17:09
TimToady then we say: constant pi = Rat(fatpi); # truncate to fit Rat
17:10 Chillance left
TimToady yeah, well, good intentions and all that... 17:10
I'll be glad when that entry can be a bit less handwavey
masak do you sometimes get the urge to just grab an implementation and start hacking away?
:) 17:11
TimToady the question is whether I ever don't have that urge...
masak heh
TimToady but I have to stay neutral if Perl 6 is ever to become the Swiss Banking System of programming 17:12
kthakore Su-Shee: ok cool
TimToady: you ... are neutral?
17:13 noganex_ left
TimToady on the subject of which implementation of Perl 6 is "most official", yes. 17:13
kthakore oh yeah
TimToady on the subject of whether P5 or P6 is a better designed language, well...no. 17:14
kthakore meh you don't have to be neutral
17:14 noganex joined
kthakore about anything ... even the bankers defineatley aren't 17:14
beekor was/is pugs a viable start? i could never tell if interest faded and it fell behind, or if it suffered from bigger issues. 17:15
Su-Shee kthakore: do I have to remember you what happened when someone who hasn't a clue about GUI like torvalds said he prefers KDE? suddenly everybody started quoting and taking it as an order to choose "the right desktop"...
beekor: for what a start? to write perl6 code? I would use rakudo. 17:16
beekor oh yeah i know. but i was thinking of the haskell
TimToady beekor: sure, it was the viablest start at the time
Su-Shee beekor: then pugs it is.
kthakore Su-Shee: oh ppl .. do listen. Good point. 17:17
beekor i've tried p6 for a few hours here and there with rakudo.
TimToady but audreyt++ suffered from health issues, and nobody else wanted to get a big enough brain transplant to continue it
beekor i'm slowly drifting towards it.
kthakore is glad he hasn't made anything important so people take him seriously
beekor gotcha.
kthakore What needs to happen in pugs anyway?
TimToady well, at the time it was stalled out on a MOP, mostly 17:18
which we now have
kthakore pity I have no skills in language dev stuff 17:19
do they have tiny bug reports that newbies can try?
I tried 2 in parrot ... and died on my sword
but it was a good way to die 17:20
Su-Shee kthakore: why don't you start hacking modules? 17:21
slavik TimToady: have you considered learning korean?
17:22 stepnem left
TimToady yes, it's next after Mandarin :) 17:22
kthakore Su-Shee: :) I did that just yesterday :)
xhacktly im looking in to learning perl6 as first language, any tips?
masak TimToady: oh, you'll like Mandarin. I look forward to seeing the postfix:<了> operator in Perl 6 :P 17:23
kthakore I am taking 3ish weeks off for July so I released a quick SDL module that Util and I discussed
TimToady xhacktly: see masak ^^
kthakore Su-Shee: it doesn't do much as of yet
Su-Shee kthakore: I was meaning to say that you're experienced in hacking down modules anyways so it's actually a good idea to start porting etc
masak xhacktly: excellent! I'm writing a blog post series right now for beginners. :)
xhacktly: strangelyconsistent.org/blog/list-of-posts
xhacktly hey masak;) i was with salve on yapc in sweden ;( 17:24
;)
masak xhacktly: oh, cool!
xhacktly ment this sign; ;)
yes verry cool i was the cadet sailing down with the two oldschool perl hackers;)
masak I know the feeling :D
xhacktly yes i have read som on this blog;
masak did it help?
17:25 buubot_backup left
xhacktly strangelyconsistent.org/ 17:25
masak that's the one.
xhacktly cool yes salve gave it to me;) vel i have to say first;
kthakore Su-Shee: oh I am porting SDL :) 17:26
from perl5
but I do a lot of side things too
xhacktly IM verry new to programming, but i want to learn it;) , salve helped me setting up github and rakudo (git hub is a bit hard for a plain new beginner, but i starting to get the picture:P , im also quit new to linux so just started with terminal etc;) 17:27
17:28 cooper joined
masak xhacktly: sounds great. remember -- small steps in the beginning. chances are, if you tell us here what you want to do, we'll point you in the right direction. 17:28
17:28 stepnem joined
masak xhacktly: have you seen this? 17:28
rakudo: say "OH HAI xhacktly!"
p6eval rakudo 1fcb14: OUTPUT«OH HAI xhacktly!␤»
masak xhacktly: it's good if you want to talk about program behaviour on the channel. 17:29
I love reducing things to the concrete. so many things we like and care about follow that principle: tests, bug reports, p6eval one-liners... 17:30
xhacktly hm ok nice ;) yes i just dropped by (i understand this channel is more for developing perl6 then newbiz that may needs help..?) 17:31
TimToady we feed on newbiz here...wait, that didn't come out right... 17:33
masak no, it's for newbiz too.
TimToady because there's a sense in which we're all still newbiz when it comes to Perl 6 17:34
masak xhacktly: basically, every time someone comes in from the outside saying "hi, I'm new here" like you just did, we get giddy with joy and expectation :)
TimToady: only 11 years' experience? that's not enough to learn a language well... :P 17:35
17:35 impious joined, impious left
TimToady masak: you make it sound like bible.cc/matthew/23-15.htm 17:35
xhacktly yes;) i know that is so cool about the perl guys they are verry friendly;)
17:36 awoodland left
masak xhacktly: yes, as long as you stay off certain channels. *cough* #perl *cough* 17:37
TimToady they're getting better
17:37 Mowah left
TimToady haven't you noticed the decline in people requesting asylum here? 17:37
'course, maybe that's just because everyone over there is dead now 17:38
we need more spies :) 17:39
xhacktly i also have some goals , and that is; i will try to blog 2-3 times a week about learning perl6 and i will also try to post some tutorials that might help other new perl6 noobs;) i will post my blog here soon, (also masak i will give u some feedback on ur blog(very nice blog ;) and also too keep in mind that im a sailor so i am away every 10 weeks for 10 weeks (but as long as im not to seasick i will try to blog and learn;)
Su-Shee I like it over there. plenty of cluefull people, hacking away their stuff, plenty of developers to talk to with large running perl code.. 17:44
masak xhacktly: sounds like a very good plan. looking forward to your blog and your feedback.
tadzik oh no, in nom, I have to write the constructors myself! What has this world come to
masak xhacktly: as to absences, that happens to all of us :)
xhacktly: not necessarily in the form of sea voyages, though :P 17:45
xhacktly hehe:P
masak Su-Shee: this is one of the nicest places on the Internet for enlightened programming discussion
tadzik how do I put a namespaced classes, like Pod::foo in the setting? If I make it a module/package Pod, than I can't name a class Block, it will conflict 17:46
Tene +1 masak
Su-Shee masak: I meant #perl and #perl :) 17:47
17:48 buubot_backup joined
masak Su-Shee: oh, ok. 17:49
Su-Shee: here on #freenode, or the one on irc.perl.org?
Su-Shee both.
tadzik heh, I always wanted to make a call to the pizza place and say "I'm hungry". I feel like trying it today
masak tadzik: *lol* 17:50
tadzik: at least you're not falling into the X/Y trap :P
tadzik oh crap
Su-Shee masak: where else could I go to talk about my 850000 lines of perl with someone having to care for a million lines of perl... and those are discussions and exchanging experiences really needed.
tadzik not only the woman said "good evening, I'm hungry too", but it also happened to be a wrong number
ah, damnit. Who puts a taxi number on a pizza flyer 17:51
Su-Shee there is only one possible answer: "cool, let's go out for dinner!"
17:52 kst joined, ggoebel left
tadzik the actual pizza place reacted properly 17:53
masak: what's the X/Y trap?
masak tadzik: "hi, I want to use X to solve Y" without much foreknowledge of whether X/Y is a sensible combination. 17:54
tadzik: I meant that you haven't decided on a pizza X to solve your hunger problem Y :)
tadzik :) 17:55
I wonder how many pizza calls do this taxi woman receive. Seriously, what is the most visible number to you here: i.imgur.com/8gael.jpg ? 17:58
stupid interface designers 17:59
Su-Shee cool. I know two polish words. ;) 18:00
huf tak? kurwa?
owocowa?
Su-Shee three!
online, gratis, rabat.
huf rabat?
Su-Shee taxi. ;)
kthakore gratis = thankyou?
Su-Shee no.
kthakore ok 18:01
huf btw i have no idea what owocowa means, it was on the box of some tea
fruit, that makes sense
Su-Shee gratis -> "without having to pay money for it" usally "on top of this, you'll get x for free"
huf that's what it means in english too
among other languages
Su-Shee rabat is rabatt in german and I think we both took it from italian 18:02
oh, and "git!" is a polish word too, says my coworker. :)
masak Su-Shee: that definition of "gratis" is forbidden in Sweden by Swedish laws of commerce. I'm shocked by the usage every time I go to Poland :) 18:05
Su-Shee: (in Sweden, you're only allowed to use it in the sense "absolutely no strings attached". which means marketing weasels are gliding over to using the English loan "fri" instead.) 18:06
tadzik Su-Shee: everyone when someone says "git!" I say "svn!" 18:09
Su-Shee tadzik: haha :)
masak: hm, actually that sounds very much like we might have something like this too :) 18:10
tadzik svn? Poor you
Su-Shee no, we switched from cvs to git in january. 18:11
I've never used svn, just installed it a couple of times :)
rokoteko pheewww! holiday 18:14
oh god it was difficult time waiting for this :)
tadzik oh yes it was 18:16
nom: module Pod { class Block {} } # how? 18:17
p6eval nom: OUTPUT«Illegal redeclaration of class 'Block' at line 1, near "{} } # how"␤current instr.: 'nqp;HLL;Grammar;panic' pc 23666 (src/stage2/gen/NQPHLL.pir:6372)␤»
18:20 mj41 joined
pmichaud back from lunch 18:23
tadzik ello pmichaud
pmichaud tadzik: I don't think nested packages in the setting work yet. Ask jnthn++ about an eta for when it might work. 18:27
18:28 pernatiy joined, wamba left
pmichaud in the meantime, perhaps keep it as a separate module from the setting. 18:29
that might actually be extra helpful, since we don't have a lot of modules to test at the moment in nom.
tadzik pmichaud: I need Actions.pm to use those
I can name them PodBlock for now though
pmichaud that works for me
or even Pod__Block 18:30
tadzik mebbe
masak Su-Shee: I've been thinking about why I can't stand the #perl channels for long periods. I conclude it's because the conversational climate feels very... single-demographic. 15-30yo male, to be exact. 18:34
Su-Shee: I guess it bothers people to varying amounts. 18:35
18:35 thundergnat joined
Util commits-and-runs; must start the trip back home from YAPC::NA. 18:36
Eager for feedback; will backscroll when I get home.
github.com/Util/Flutter
pmichaud Util: safe travels!
Su-Shee masak: oh I see the nuisances, absolutely. but I usally weight the clue against it.
18:37 wolfman2000 left 18:38 wamba joined
Su-Shee masak: also, I can't especially as a woman not afford to avoid "the community" just because they're infantile bitches. ;) 18:39
pmichaud "bastards". :)
although I'm willing to accept that "bitches" could be accurate as well :) 18:40
Su-Shee divas. ;)
masak Su-Shee: right, I see that. I admire your ability to see past questionable behaviour on those channels. 18:41
Su-Shee masak: for some reason, I do well with this kind of guys. 18:42
moritz so I've added decontainerize where necessary... and now it's P6opaque attributes NYFI 6 (used to be 2)
thundergnat Hi perl6, good * 18:49
I added a Perl 6 solution for Rosettacode task Natural Sorting. rosettacode.org/wiki/Natural_sorting#Perl_6 18:50
The latin1-decompose routine is not very elegant though. My DRY sense is greatly bothered by having to repeat the hash keys in the .subst method.
Everything else I tried ran into NYI issues in Rakudo though. 18:51
Anyone have any commentary/suggestion on how to better implement that?
moritz eval always works :/
buubot_backup moritz: ERROR: Search pattern not terminated at (eval 28) line 1.
moritz my $re = '<[' ~ %tr.keys.join('|') ~ ']>' 18:52
18:52 bbkr_ left
moritz and then use <$re> 18:52
thundergnat That looks a little less ugly.
tadzik maybe ||? 18:54
pmichaud thundergnat: were you able to write a version that was elegant but didn't work in Rakudo?
18:54 bbkr_ joined
thundergnat pmichaud: I kept wanting to write /( | %tr.keys) / but that doesn't work (and probably isn't spec) 18:56
pmichaud maybe .trans is more what you're looking for there?
instead of .subst ?
thundergnat Does trans do 1 => 2 letter translations? Æ => AE 18:57
pmichaud yes, I believe it does.
thundergnat I'm more used to perl 5 where it doesn't.
pmichaud rakudo: say "abc".trans( ( 'a' => 'aa', 'b' => 'bb' ) )
p6eval rakudo 1fcb14: OUTPUT«abc␤»
pmichaud hmm 18:58
rakudo: say "abc".trans( [ 'a' => 'aa', 'b' => 'bb' ] )
p6eval rakudo 1fcb14: OUTPUT«["a" => "aa", "b" => "bb"] is not a Pair␤ in <anon> at line 2534:src/gen/core.pm␤ in 'Cool::trans' at line 1:src/metamodel/RoleToInstanceApplier.nqp␤ in main program body at line 22:/tmp/qA5GarQF0a␤»
pmichaud I'm not familiar with .trans' invocation at the moment, though. :-)
rakudo: say "abc".trans( <a b c> => <aa bb cc> )
p6eval rakudo 1fcb14: OUTPUT«aabbcc␤»
pmichaud rakudo: say "Æsop".trans( 'Æ' => 'AE' ) 18:59
p6eval rakudo 1fcb14: OUTPUT«Asop␤»
masak rakudo: say "RÆKUDO".trans( ["Æ"] => ["AE"] )
p6eval rakudo 1fcb14: OUTPUT«RAEKUDO␤»
pmichaud yeah
masak pmichaud: the .trans API suprises everyone.
pmichaud (.trans in Rakudo needs work) 19:00
19:00 perlhack joined
masak pmichaud: no, it's to spec. 19:00
pmichaud the implementation needs some help also
masak pmichaud: but the spec is wonky like that.
maybe it needs a better local maximum :)
pmichaud it may be to spec, but the implementation is ugly and needs improvement, imo
masak pmichaud: awww, are you sure? :/
pmichaud: I rewrote the whole thing last November...
tadzik :[
pmichaud masak: when I look at it again for nom, I'll have a better answer then :) 19:01
masak pmichaud: it became faster, more spec-aligned, and higher quality.
maybe it needs *some* tweaks, but it's certainly an improvement on what was there before...
pmichaud masak: all of these points are undoubtedly true. that doesn't mean it can't use further improvement
masak right.
pmichaud I'm not saying what you did in November was a step backwards. I'm saying I see more steps forward. 19:02
19:02 perlhack left
masak it used to be O( .chars ), it's now O( #substitutions ). 19:02
tadzik callsame nyi in nom?
pmichaud tadzik: nyi, yes.
I'm going to add a NYI.pm
masak pmichaud: sure, but "ugly"? I'd like to know what you mean by that... 19:03
pmichaud when I read the code a month or so ago, I couldn't follow it.
masak tries fairly hard not to write ugly code
pmichaud and when I tried to create some speed improvements in master, it was always .trans (and only .trans) that broke.
tadzik nom: class A { has $.foo }; class B { method foo { $!bar = 5 } }; B.new.foo 19:04
p6eval nom: OUTPUT«Attribute $!bar not declared in class B at line 1, near " = 5 } }; "␤current instr.: 'nqp;HLL;Grammar;panic' pc 23666 (src/stage2/gen/NQPHLL.pir:6372)␤»
tadzik rakudo: class A { has $.foo }; class B { method foo { $!bar = 5 } }; B.new.foo
p6eval rakudo 1fcb14: OUTPUT«No such attribute '$!bar'␤ in 'B::foo' at line 22:/tmp/gzMltk4A7j␤ in main program body at line 22:/tmp/gzMltk4A7j␤»
thundergnat rakudo: my %tr = <Æ AE æ ae Þ TH þ th Ð TH ð th ß ss À A Á A>; say 'ÆÐÀÁ'.trans([%tr.keys] =>[%tr.values]);
tadzik blah
p6eval rakudo 1fcb14: OUTPUT«AETHAA␤»
masak pmichaud: oh, interesting.
thundergnat \o/
pmichaud so I had to give up on the speed improvements.
masak pmichaud: that might be a statement about those improvements as much as about .trans, though.
.trans is fairly complex and exercises a lot of parts. 19:05
pmichaud masak: well, everything else worked, and I couldn't figure out why it was failing in .trans.
masak pmichaud: I'm sorry you couldn't understand that code. I'm looking at it now and it looks very clean and matter-of-fact to me.
pmichaud: looking forward to your improvements.
I remember .trans being a biggish problem to tackle. it all didn't click until I realized I could factor out a lot of the details into the LSM class. 19:06
pmichaud I'm not saying it's trivial, definitely.
tadzik how do I solve the thing I did above? 19:07
I have a feeling I'm missing something trivial
pmichaud tadzik: ...you didn't declare a $!bar ? 19:08
thundergnat argh
tadzik oh, wait
rakudo: class A { has $.foo }; class B { method foo is A { $!bar = 5 } }; B.new.foo
p6eval rakudo 1fcb14: OUTPUT«===SORRY!===␤Modifications to classes are not allowed after instantiation.␤»
tadzik brr
masak huh?
thundergnat rakudo: my %tr = <Æ AE æ ae Þ TH þ th Ð TH ð th ß ss À A Á A>; say <Æ Ð À Á>.sort: {.trans([%tr.keys] =>[%tr.values])};
tadzik rakudo: class A { has $.foo }; class B is A { method foo { $!bar = 5 } }; B.new.foo
p6eval rakudo 1fcb14: OUTPUT«too few positional arguments: 2 passed, 3 (or more) expected␤ in <anon> at line 22:/tmp/UlQMKBfdRH␤ in 'List::sort' at line 1:src/metamodel/RoleToInstanceApplier.nqp␤ in 'Parcel::sort' at line 1469:src/gen/core.pm␤ in main program body at line 22:/tmp/UlQMKBfdR…
rakudo 1fcb14: OUTPUT«No such attribute '$!bar'␤ in 'B::foo' at line 22:/tmp/6s5Uh4oYW2␤ in main program body at line 22:/tmp/6s5Uh4oYW2␤»
tadzik pmichaud: so, I don't inherit it?
pmichaud masak: part of my confusion was that I have no clue what "LSM" stands for, perhaps. 19:09
thundergnat too few positional arguments?
masak tadzik: 'has $.foo' and then '$!bar'...
tadzik oh crap, where is my mind
rakudo: class A { has $.foo }; class B is A { method foo { $!foo = 5 } }; B.new.foo
p6eval rakudo 1fcb14: ( no output )
pmichaud tadzik: the error message is (for once) saying *exactly* what the problem is :)
masak pmichaud: "longest substitution matcher". substitutions can be either literal strings or regexes.
tadzik nom: class A { has $.foo }; class B is A { method foo { $!foo = 5 } }; B.new.foo
p6eval nom: OUTPUT«Attribute $!foo not declared in class B at line 1, near " = 5 } }; "␤current instr.: 'nqp;HLL;Grammar;panic' pc 23666 (src/stage2/gen/NQPHLL.pir:6372)␤»
tadzik there we are :)
masak tadzik: nom is right, master is wrong. 19:10
tadzik: child instances cannot see parent attributes.
tadzik: not without an accessor.
tadzik hmm 19:11
pmichaud masak: makes more sense now.
tadzik nom: class A { has $.foo }; class B is A { method foo { $.foo = 5 } }; B.new.foo
p6eval nom: OUTPUT«maximum recursion depth exceeded␤current instr.: 'foo' pc 537 ((file unknown):40029713) (:1)␤»
tadzik ...even funnier :)
pmichaud masak: also, I'm guessing it all becomes greatly simplified when rakudo has LTM implemented?
masak pmichaud: could be.
pmichaud: if that functionality is exposed, certainly. right now I'm emulating it.
pmichaud oh, it'll be exposed. it's the default in regexes.
masak then yes. 19:12
pmichaud tadzik: method foo { $.foo = 5 } is recursive.
since $.foo is self.foo
tadzik nom: class A { has $.foo }; class B is A { method asd { $.foo = 5 } }; B.new.asd 19:13
p6eval nom: OUTPUT«Cannot assign to a non-container␤current instr.: 'asd' pc 556 ((file unknown):18951713) (:1)␤»
masak is rw 19:14
tadzik gah! I give up, there's no way I can do what I want :)
masak nom: class A { has $.foo is rw }; class B is A { method asd { $.foo = 5 } }; B.new.asd
pmichaud perhaps what you want needs a refactor? 1/2 :-)
p6eval nom: ( no output )
masak nom: class A { has $.foo is rw }; class B is A { method asd { $.foo = 5 } }; my $b = B.new; $b.asd; say $b.foo 19:15
p6eval nom: OUTPUT«5␤»
tadzik wklej.org/id/555693/
masak wow, nom is fast!
pmichaud nom is much faster than its predecessor, in many ways
I'm still a bit proud of the new iterators implementation :)
tadzik I want to make the above paste both working, and sensemaking
masak tadzik: if you want to set an attribute from a parent class, the parent class needs to have a setter. 19:16
tadzik: the easiest way to give it one is to do '$.attr is rw'.
pmichaud Pod__Block__Code shouldn't be setting @!content in its BUILD -- that's the job of Pod__Block's BUILD
19:16 Trashlord left
tadzik pmichaud: yes, but callsame; is NYI 19:16
hence my problems
masak BUILD shouldn't need callsame.
pmichaud ...and you wouldn't be using callsame to do it. 19:17
tadzik hmm
masak BUILDALL calls all the BUILDs. hence the name.
pmichaud BUILD normally gets called automatically by .bless/BUILDALL
tadzik reasonable
pmichaud which we don't have yet, admittedly
thundergnat rakudo: my %tr = <A a B b C c>; say <C F B A>.sort: {.trans([%tr.keys] =>[%tr.values])} # Am I doing something silly? 19:19
p6eval rakudo 1fcb14: OUTPUT«too few positional arguments: 2 passed, 3 (or more) expected␤ in <anon> at line 22:/tmp/iNX1v2U1IA␤ in 'List::sort' at line 1:src/metamodel/RoleToInstanceApplier.nqp␤ in 'Parcel::sort' at line 1469:src/gen/core.pm␤ in main program body at line 22:/tmp/iNX1v2U1I…
tadzik pmichaud: how can I emulate it, something like SUPER.BUILD? 19:20
pmichaud rakudo: my %tr = <A a B b C c>; say <C F B A>.sort({.trans([%tr.keys] => [%tr.values])})
p6eval rakudo 1fcb14: OUTPUT«too few positional arguments: 2 passed, 3 (or more) expected␤ in <anon> at line 22:/tmp/B5ZfjoDVCR␤ in 'List::sort' at line 1:src/metamodel/RoleToInstanceApplier.nqp␤ in 'Parcel::sort' at line 1469:src/gen/core.pm␤ in main program body at line 22:/tmp/B5ZfjoDVC…
pmichaud rakudo: my %tr = <A a B b C c>; say <C F B A>.sort({.say}) 19:21
p6eval rakudo 1fcb14: OUTPUT«C␤F␤B␤A␤CFBA␤»
pmichaud oh
I bet you're hitting the parrot .trans
rakudo: my %tr = <A a B b C c>; say <C F B A>.sort({(~$_).trans([%tr.keys] => [%tr.values])})
p6eval rakudo 1fcb14: OUTPUT«FABC␤» 19:22
pmichaud I really wish I could get rid of that method entirely from Parrot.
(it's not an issue at all in nom, however :)
thundergnat Ok, I never would have figured THAT one out... :\
pmichaud yeah, that's part of what makes it so infuriating. it's almost impossible to detect or trap for 19:23
tadzik: I'm still thinking about build. 19:25
the easiest short-term ("today") solution I can think of us is to give each BUILD method a slightly different name, to avoid inheritance issues.
tadzik well, that's the last thing I want to do, TBH :)
pmichaud why is that? that seems like less of a workaround than anything else I can come up with. 19:26
tadzik probably, yes
pmichaud I think we could probably make a temporary BUILDALL that automatically calls all of the BUILD methods 19:27
depends on how well ^methods is implemented, I guess.
nom: say 3.^methods().perl
p6eval nom: OUTPUT«Array.new(Bool, Int, Num, abs, Bridge, chr, succ, pred, Str, Numeric, ACCEPTS, bytes, chars, fmt, substr, uc, lc, ucfirst, lcfirst, chomp, chop, ord, flip, index, rindex, eager, elems, infinite, flat, hash, list, reverse, Array, grep, join, map, min, postcircumfix:<[ ]>, at_…
pmichaud nom: say 3.^methods(:local).perl
p6eval nom: OUTPUT«Array.new(Bool, Int, Num, abs, Bridge, chr, succ, pred, Str)␤»
pmichaud that has some potential
(since I think submethods are NYI in nom) 19:28
tadzik that whole range of problems is probably nothing compared to what I'll have to do working around the lack of SymbolTable in master 19:29
okay, it works :) 19:31
dalek kudo/nom: 83ad0a8 | pmichaud++ | / (2 files):
Add NYI.pm -- a place where we can explicitly put things we know are NYI.
19:33
19:34 Instil joined
dalek kudo/podparser: cb14279 | tadzik++ | src/Perl6/Grammar.pm:
Add pod-related tokens to Grammar.pm
19:37
kudo/podparser: 103b37b | tadzik++ | / (2 files):
Add a horribly hacky Pod classes to the setting
TimToady nom: say BEGIN 1+2 19:39
p6eval nom: OUTPUT«Could not find sub &infix:<+>␤current instr.: '_block1002' pc 15 ((file unknown):56548444)␤»
TimToady nom: constant pi = 42; 19:40
p6eval nom: OUTPUT«Constant type declarator not yet implemented at line 1, near "= 42;"␤current instr.: 'nqp;HLL;Grammar;panic' pc 23666 (src/stage2/gen/NQPHLL.pir:6372)␤»
pmichaud there's always sub pi() { 42 } as a workaround. 1/2 :-) 19:41
nom: sub pi() { 42 }; say pi;
p6eval nom: OUTPUT«42␤»
pmichaud (yes, it fails in all sorts of parses)
TimToady just contemplating how .trans should really be implemented such that it doesn't have to recompile every time 19:42
pmichaud nom: callsame;
p6eval nom: OUTPUT«Could not find sub &callsame␤current instr.: '_block1002' pc 70 ((file unknown):100) (:1)␤»
pmichaud (locally it's "callsame not yet implemented") 19:43
19:43 Bzek left
lichtkind thou: goo evening 19:44
thou and a very goo evening to you, too!
19:46 tokuhirom joined
dalek p: 358eeb0 | moritz++ | src/6model/reprs/P6opaque.c:
regularize "P6opaque attributes NYFI" error messages, include method name and attribute
19:51
19:51 stephanepayrard_ left
pmichaud moritz: I was also wondering if we should include the type of the object there. 19:52
that can be a later patch, though.
moritz pmichaud: that might help too
the NYFI 6 was from bind_attritbute_num
so I also decontainerized $new (even though I used binding before, not assignment) 19:53
and then got "Can only use repr_bind_attr_num on a SixModelObject"
and now I'm out of ideas 19:54
pmichaud hmmm
19:54 perlhack joined
perlhack Why don't you sleep ? 19:55
tadzik because it's not even 22:00 yet
pmichaud moritz: can I see the current patch? 19:56
masak perlhack: "Why aren't you sleeping?" is a question. "Why don't you sleep?" is a gentle suggestion. there's a difference in meaning.
moritz pmichaud: moritz.faui2k3.org/tmp/complex2.patch 19:58
that one gives
P6opaque attributes NYFI 6 (attribute '' in bind_attribute_num)
perlhack What is the difference ?
moritz on say -(1i)
perlhack moritz, 19:59
masak perlhack: "Why aren't you sleeping?" -- I am asking because I don't know. "Why don't you sleep?" -- I am asking because I want you to.
perlhack: English is full of nuance :) 20:00
moritz I'm sure most languages are
because humans are
lichtkind thou: hope you found my remoarks yesterday not as mindless bragging
moritz perl is too, which is why I love it (among other reasons)
lichtkind thou: you have in xp with linux?
pmichaud moritz: I don't see anything wrong with the patch. My guess is that there's some as-yet-untested feature of bindattr_n that jnthn++ will have to find/fix. 20:01
perlhack ty
moritz pmichaud: it's curious that the attribute name comes out empty in the error message
pmichaud ohhhh!!!!
lichtkind masak: gordon spencer brown had a beautiful term for that property of the english language
perlhack Oh!!! terrible English
pmichaud change nqp::create($a) to nqp::create(Cursor) 20:02
masak perlhack: :)
thou lichtkind: not sure how to interpret that question. i am currently running an os x box, but i have a few linux vm's on here, and i have run linux quite a bit
pmichaud perlhack: I'm speaking Pmglish :-)
masak perlhack: ...and that, dear friend, was a "pun" :)
moritz pmichaud: Cursor? 20:03
pmichaud sorry, Complex
moritz ah
pmichaud (I have Cursor on the brane from doing regex thingies)
perlhack oh! i understand now
moritz it creates something of the container type otherwiseß
pmichaud right
perlhack thank you for reminding
pmichaud the $a has to be decontainerized beforehand :)
perlhack moritz, 20:04
pmichaud usually in methods we don't have to worry about it, because 'self' is decontainerized already.
perlhack You very importance to English structure 20:05
?
masak people on the channel who think that complex numbers are strange and magical: let me recommend betterexplained.com/articles/a-visu...y-numbers/
pmichaud I still think integers are strange and magical. :)
and the real numbers? they're.... unreal. :)
masak perlhack: I don't fully understand the question. are you asking "Is English structure important?" -- or are you asking something else? 20:06
pmichaud: they're too many, if nothing else! :)
but at least they're not as bad as the surreal numbers.
perlhack The subject to predicate adverbial object
they order 20:07
masak perlhack: oh! no no, not at all like in 中文
perlhack: the order matters, but often words can be rearranged. it's much more free than in Mandarin.
perlhack: for example "I saw him yesterday" and "Yesterday, I saw him". same meaning. 20:08
perlhack thanks
i see
masak perlhack: that said, some orders never occur. the other day, you said "I again come to here". that should be "I'm here again." the word "again" has to come last in that sentence. 20:09
there are no hard-and-fast rules. just general principles.
tadzik „the panda ( the perl6 CPAN I guess )” 20:10
:)
masak CPANDA
perlhack perlhack, You write the article nor limit what format
thanks
masak, 20:11
masak perlhack: would you like to help us with Perl 6?
that's what we're making here. Perl 6. :) 20:12
perlhack I want to learn English in the future and your carefree chat technical assistance perl6
masak ooh, nice slogan: "Perl 6 -- carefree chat, technical assistance". 20:14
perlhack haha nice slogan 20:15
20:15 envi left
masak perlhack: this isn't really the right forum for learning English. I know JimmyZ told you that. :) but you are welcome to stay as long as you're nice and don't disrupt serious efforts at bringing Perl 6 to the masses. 20:16
20:16 mkramer1 joined
dalek kudo/nom: 71607fa | pmichaud++ | src/core/ListIter.pm:
Clean up LoL iteration so that @a Z @a Z @a works properly.
20:17
perlhack Ok! i can do it
masak :)
perlhack++
perlhack: and if you help us, all the better.
then we'll teach you all the English you can muster :P
perlhack what mean "perlhack++"
yes
masak perlhack: it's called "karma".
perlhack thanks
masak karma perlhack
aloha perlhack has karma of 1.
masak perlhack: you now have 1 point. 20:18
perlhack++
you now have 2 :)
karma pmichaud
aloha pmichaud has karma of 759.
masak karma moritz
aloha moritz has karma of 946.
masak karma jnthn
aloha jnthn has karma of 936.
masak ;)
perlhack oh !you are humor
masak perlhack: "you have humor" or "you are funny". not "you are humor". 20:19
perlhack: and no, it's not only for jokes. it's also a social reward system. people who do good get karma.
perlhack: people who are mean lose karma :> 20:20
perlhack oh!so that
masak perlhack: karma是一个简单的社会机制 20:21
perlhack haha
i see
you have humor 20:22
20:22 mj41 left
masak 不是100%,严重的,但不是100%轻浮 20:22
hm, that first comma looks misplaced.
20:22 cotto joined
masak 不是100%严重的,但不是100%轻浮 20:22
perlhack I totally understand what your mean 20:23
masak it's like we're speaking the same language or something.
perlhack you can speak English with me.
masak oh! sorry. :)
I will.
perlhack Hey hey
i think my have a bit clever 20:25
masak "I am clever" or "I have some cleverness". not "my have". 20:26
perlhack i have some cleverness. 20:27
oh!thanks
moritz pmichaud++ # helping with my latest patch
perlhack you are very clever.
20:27 asdgqwrtr left
masak perlhack: you are very ambitious and diligent. 20:27
perlhack Very thanks for all and maskak. I sleep to late 20:30
dalek kudo/nom: 080e492 | moritz++ | src/core/Complex.pm:
totally speed up prefix:<->(Complex), or so I hope.

This patch replaces one line of code with 10, but it should avoid any box and unbox operation. Doing the same with operators will be rather straight-forward, but quite repetitive. I wonder if it could be automated. I have read about tools called "compilers" that could make such a task much easier... :-)
20:30 bluescreen10 left
pmichaud the commit log is getting more interesting lately :) 20:30
nom: my @a = 1,2,3; my @b = 4,5,6; my @c = 7,8.9; say @a Z+ @b Z+ @c; # RT 92652 20:31
p6eval nom: OUTPUT«36.9␤»
pmichaud nom: my @a = 1,2,3; my @b = 4,5,6; my @c = 7,8,9; say @a Z+ @b Z+ @c; # RT 92652
p6eval nom: OUTPUT«45␤»
pmichaud needs a rebuild
evalbot rebuild nom
p6eval OK (started asyncronously)
perlhack I wish you have fun. 20:32
20:32 cognominal joined
perlhack bye all 20:32
masak perlhack: sleep well!
20:33 perlhack left
masak dream of English grammar and and butterflies. 20:33
pmichaud nom: my @a = 1,2,3; my @b = 4,5,6; my @c = 7,8,9; say @a Z+ @b Z+ @c; # RT 92652, again 20:40
p6eval nom: OUTPUT«"load_bytecode" couldn't find file 'CORE.setting.pbc'␤current instr.: 'nqp;Perl6;ModuleLoader;_block1140' pc 2875 (src/gen/perl6-moduleloader.pir:1159)␤»
20:41 bitpart joined
pmichaud think we need an NQP_REVISION bump 20:41
moritz nom: say 1 20:42
p6eval nom: OUTPUT«"load_bytecode" couldn't find file 'CORE.setting.pbc'␤current instr.: 'nqp;Perl6;ModuleLoader;_block1140' pc 2875 (src/gen/perl6-moduleloader.pir:1159)␤»
moritz aye
20:43 bluescreen10 joined
pmichaud locally I get 20:43
error:imcc:The opcode 'repr_bind_attr_num_p_p_s_n_n' (repr_bind_attr_num<5>) was not found. Check the type and number of the arguments
pmichaud--, again
moritz oh, I thought I bumped the revision when I used bindattr_n 20:44
but seems I forgot
lichtkind thou++ 20:46
dalek kudo/nom: 3bf9230 | moritz++ | tools/build/NQP_REVISION:
bump NQP_REVISION to get fixed signature for bindattr_n
20:49
kudo/nom: 33047f8 | moritz++ | src/core/Complex.pm:
speed up more Complex ops
20:51 bitpart left
moritz rakudo: my @a = 1, 2, 3; say @a.pop 20:58
p6eval rakudo 1fcb14: OUTPUT«3␤»
moritz nom: my @a = 1, 2, 3; say @a.pop
p6eval nom: OUTPUT«Method 'pop' not found for invocant of class 'Array'␤current instr.: '_block1002' pc 105 ((file unknown):1229) (:1)␤»
moritz that blocks the mandelbrot script by colomon++ 20:59
phenny: tell jnthn never mind, bugs fixed 21:03
phenny moritz: I'll pass that on when jnthn is around.
lichtkind jnthn++ 21:07
3just because :)
because rakudo compiled so well 21:08
but dot 4 failed tests
masak "dot"? 21:09
21:09 wolfman2000 joined
masak wolfman2000! \o/ 21:09
thou i think he meant "lot"
;-)
wolfman2000 Afternoon. I know, I know, have to idle in here more often
masak thou: or "got".
wolfman2000: no, you have to be active in here more often :P 21:10
wolfman2000 that too
plenty of things have been crazy
lichtkind masak: i mean got
masak wolfman2000: all(@things) === $crazy
wolfman2000 also true
masak the absurdist-junctional interpretation. 21:11
thou so, i have a grammars question. of historical context. i'm looking at a grammar that used to return undefined for $<path><chunk>, and now that same thing is returning the empty array. Code that uses the grammar is often doing things like: something_with($<path><chunk> // ''). I know i could switch // to || and it works OK, but i'd like to understand why the grammar is behaving differently. 21:12
github.com/viklund/november/blob/n...Grammar.pm
token path { <slash>? [ <chunk> '/'?]* }; # * mb wrong, because that allow '' URI 21:13
moritz that part of the spec has changed back and forth a few times 21:14
thou do you happen to know what that part of the spec is, so i can read up on it?
moritz oh wait no, I'm confusing that with something else
masak no, I think you're close.
it's definitely to do with quantifiers, if I see correctly.
thou i like having it be undef, it seems cleaner in the rest of the code
moritz what I thought about <foo>? producing an array or not
masak right. 21:15
thou: undef doesn't exist any more.
thou well, Any or whatever
masak thou: well, those two are different :P
thou i shouldn't be sloppy
wolfman2000 well masak, what has taken place the last...4 months?
masak all sloppy terms are taken in Perl 6 :)
wolfman2000: nom is arriving! so is Niecza! excitement all around! 21:16
and breakages, most likely.
wolfman2000 ...I meant in terms of the language.
I don't recall nom or Niezca
Neicza
masak Niecza :)
wolfman2000 right
masak it was around 4 months ago, but it's been making news lately. 21:17
dalek kudo/nom: f1fc5ed | moritz++ | src/core/Int.pm:
implement Int.sqrt
kudo/nom: 437675e | moritz++ | src/core/Complex.pm:
speed up 3 more Complex operations
wolfman2000 i before e except after c
masak *lol*
moritz nom: say Inf == Inf 21:18
p6eval nom: OUTPUT«Bool::True␤»
moritz nom: say [1, 2].pop 21:19
p6eval nom: OUTPUT«Method 'pop' not found for invocant of class 'Array'␤current instr.: '_block1002' pc 102 ((file unknown):425) (:1)␤»
moritz nom: say [1, 2].push: 3
p6eval nom: OUTPUT«␤»
moritz nom: say [1, 2].shift
p6eval nom: OUTPUT«1␤»
thou masak: do you think it's this paragraph: perlcabal.org/syn/S05.html#Quantifi...n_captures
xhacktly masak i am currently reading; modern perl but i read about things on the internet that says that perl6 is very very different from perl5 is it?
masak thou: that looks about right. 21:20
sjn xhacktly: btw, welcome to #perl6 :) 21:21
xhacktly thx salve;)
thou so <foo> ? will return Nil (which is undefined, yay); but <foo> * will return () (which is defined, but false)
sjn xhacktly: have you had any opportunity to look at masak's Perl6 intro blogs? 21:22
masak xhacktly: it's significantly different, yes. some people say "new language".
masak is edublogging right now :)
I've realized that I will at least make a PDF of it all when I'm done. and probably keep it in a repo for easy editing. 21:23
21:23 clintongormley joined
masak unless sjn has more awesome plans, then I'll probably do that :) 21:23
clintongormley masak: do tell??? (re your tweet) 21:24
is this perl6 on .net?
masak clintongormley: I was referring to Rakudo/nom. maybe I was overselling a little...
xhacktly sjn: yes have read some of the blog post, but feel like i kinda need to know perl5 to really understand it.. 21:25
clintongormley baaaah :)
wolfman2000 ...ah. so nom and Niecza are new compilers?
masak heh, people seem to hope for Perl 6 on .NET. there's already Niecza :)
wolfman2000: nom is Rakudo with a new foundation.
clintongormley no, i read about niecza (assume it was that) running on .net, and running much faster than rakudo
masak wolfman2000: Niecza is a little over a year old now.
sjn xhacktly: I suggest you tell masak about all the spots where he's assuming you know something :=
wolfman2000 ......man, I'm already behind
sjn :) 21:26
slavik1 perl6 on .net is like a 1k bhp v12 diesel engine on a stroller
masak xhacktly: yes, please do that. I will gladly edit things based on feedback.
21:26 jevin_ left
wolfman2000 Either way...I assume there is a reason for Niecza. Not worried about that name. Just...why nom? 21:26
as in OM NOM NOM NOM?
clintongormley slavik1: my gay brain just can't interpret that statement
masak xhacktly: anything from "more examples, please" to "huh? what?" :)
sjn wolfman2000: "New Object Model"? :)
21:26 pjcj joined
slavik1 clintongormley: go straight, you'll get it 21:26
xhacktly ok yes :P i will do, need some time to look threw all the posts;)
wolfman2000 ...fair enough. 21:27
clintongormley slavik1: tried for a quarter of a century. didn't work
wolfman2000 alright, I'll re-read some stuff from perl6.org shortly
masak xhacktly: I recomment chronological order :)
slavik1 clintongormley: you american?
masak recommend*
clintongormley now i need a hetero/homo translator service
wolfman2000 unless you guys have new preferred material
clintongormley no, south african
sjn wolfman2000: and of course, "Obviously Masterful New Object Model"
slavik1 clintongormley: oh, then no luck suing god ...
21:27 bluescreen10 left
clintongormley :D 21:27
wolfman2000 :P
masak wolfman2000: jnthn's "6guts" blog posts are informative. 21:28
xhacktly masak: yes indeed
wolfman2000 wonder why they aren't linked in the topic then
clintongormley so masak, what performance change do you see with nom vs $old_version
slavik1 clintongormley: I was going to suggest suing god and settling out of court for bi-sexuality
masak clintongormley: here, may I show you.
rakudo: say "OH HAI"
p6eval rakudo 1fcb14: OUTPUT«OH HAI␤»
masak nom: say "OH HAI"
p6eval nom: OUTPUT«OH HAI␤»
masak felt the difference? :)
wolfman2000 ...nope
clintongormley sorry, switched windows
masak I did.
clintongormley do me again
masak do it yourself :) 21:29
moritz it's meta behind the scenes :-)
wolfman2000 rakudo: say "HELLO WORLD!"
p6eval rakudo 1fcb14: OUTPUT«HELLO WORLD!␤»
wolfman2000 nom: say "HELLO WORLD!"
p6eval nom: OUTPUT«HELLO WORLD!␤»
wolfman2000 ...roughly the same speed.
masak it's faster.
slavik1 nom: say 2 ** 64
wolfman2000 tiny bit if anything
p6eval nom: OUTPUT«-9223372036854775808␤»
clintongormley naah, it's faster
slavik1 ha! overflow!
clintongormley hehehe
wolfman2000 rakudo: say 2 ** 64
p6eval rakudo 1fcb14: OUTPUT«1.84467440737096e+19␤»
slavik1 yeah, no bignum :(
clintongormley any benchmarks with numbers that don't involve IRC latency? 21:30
masak looks forward to submitting that bug
clintongormley: yes.
TimToady niecza: say 2 ** 64
p6eval niecza v7-11-g9ba8284: OUTPUT«18446744073709551616␤»
masak hates that number
clintongormley masak: link? copy/paste?
masak clintongormley: probably best to ask jnthn or pmichaud. 21:31
slavik1 clintongormley: ooh, I got a translation for you: perl6 on .net is like a penis on a woman ... you can, but what's the point?
TimToady doesn't mind that number as long as it's one greater than the previous number
slavik1: this is becoming OT
slavik1 I am done
thou rakudo: grammar Path { rule TOP { ^ <slash>? [ <chunk> '/'?]* }; token slash { '/' }; token chunk { <-[/?#]>+ }; }; Path.parse('foo/bar').perl.say;
p6eval rakudo 1fcb14: OUTPUT«Match.new(␤ from => 0,␤ orig => "foo/bar",␤ to => 7,␤ named => {␤ slash => [␤ ],␤ chunk => [␤ Match.new(␤ from => 0,␤ orig => "foo/bar",␤ to => 3,␤ ),␤ Match.new(␤ from => 4,␤ orig => "foo/bar",␤ to => 7,␤ ),␤ ],␤ },␤)␤…
slavik1 nom: say 2 ** 64; say 2 ** 64 -1
p6eval nom: OUTPUT«-9223372036854775808␤9223372036854775807␤» 21:32
clintongormley slavik1: not sure i agree with you - if it brings the flexibility and syntax of p6 into the world of everyday usability... why not
slavik1 rakudo: say 2 ** 64; say 2 ** 64 -1
masak TimToady: during my tempestuous youth, I managed to memorize 2 ** 8 and 2 ** 16 and even 2 ** 32, but never 2 ** 64. a girl in my class managed, and she was very cocky about it :P
p6eval rakudo 1fcb14: OUTPUT«1.84467440737096e+19␤1.84467440737096e+19␤»
TimToady ouch
slavik1 masak: marry her :P
thou it seems that rakudo isn't following the spec regarding the $<slash> = [] there
masak slavik1: the thought did cross my mind :)
thou it should be Nil?
clintongormley why marry a girl who spends her life repeating integers 21:33
masak not integers. that one.
slavik1 clintongormley: how dare you question memorization of powers of 2?
masak and as far as I recall, she only said it once. that was enough. :/
slavik1 maybe in some point, we will all switch to hexadecimal number system
there are people who memorize thousands of digits of pi 21:34
masak if we switch to hexadecimal, people will memorize powers of 10 instead :)
clintongormley and would you want to go with them to the pub?
anyway, exciting to hear that p6 is taking a bit step forward - well done all
slavik1 yes
it's one of those "freak skills" 21:35
TimToady well, if you suddenly need a random number to settle a bet, the next digit of pi is pretty random
21:35 whiteknight joined
masak "People who memorize pi: keep them around as a good /dev/random" 21:36
thou rakudo: grammar Path { rule TOP { ^ <slash>? [ <chunk> '/'?]* }; token slash { '/' }; token chunk { <-[/?#]>+ }; }; Path.parse('foo/bar').perl.say; # Shouldn't this have $/<slash> be Nil? 21:37
p6eval rakudo 1fcb14: OUTPUT«Match.new(␤ from => 0,␤ orig => "foo/bar",␤ to => 7,␤ named => {␤ slash => [␤ ],␤ chunk => [␤ Match.new(␤ from => 0,␤ orig => "foo/bar",␤ to => 3,␤ ),␤ Match.new(␤ from => 4,␤ orig => "foo/bar",␤ to => 7,␤ ),␤ ],␤ },␤)␤… 21:38
TimToady yes, it should be Nil, but rakudo hasn't caught up with the most recent spec spasm^Wupdate 21:41
masak guess grammar engine things are a bit slower to catch up since it's a different codebase. 21:42
21:42 jevin_ joined, Psyche^ joined 21:43 am0c joined
TimToady niecza: 'fooar' ~~ /foo(b)?ar/; say $0.perl 21:43
p6eval niecza v7-11-g9ba8284: OUTPUT«(timeout)» 21:44
masak huh.
masak suspects p6eval, not niecza
TimToady loops in person as well
moritz hint: use $/.pretty in rakudo 21:45
(but not on IRC, it messes up the indention)
21:45 Patterner left, Psyche^ is now known as Patterner
moritz rakudo: my @a; @a.unshift: 2, 3; say @a.perl 21:46
p6eval rakudo 1fcb14: OUTPUT«[2, 3]␤»
masak Util++ # github.com/Util/Flutter
21:48 clintongormley left 21:51 leprevost left 21:52 alester left
moritz nom: say Int 9 21:56
p6eval nom: OUTPUT«Confused at line 1, near "say Int 9"␤current instr.: 'nqp;HLL;Grammar;panic' pc 23666 (src/stage2/gen/NQPHLL.pir:6372)␤»
moritz nom: say Int ~~ Real
p6eval nom: OUTPUT«Bool::True␤»
moritz nom: say Num ~~ Real
p6eval nom: OUTPUT«Bool::True␤»
moritz nom: say Rat ~~ Real
p6eval nom: OUTPUT«Bool::True␤»
dalek kudo/nom: 70f9c03 | moritz++ | src/core/List.pm:
List.pop
21:58
moritz moritz-- # copy & paste errors in Complex.pm 22:00
dalek kudo/nom: 22676c5 | moritz++ | src/core/Complex.pm:
fix stupid thinko in Complex math
moritz ok, nom can now run mandelbrot-color.pl 22:04
... and do a 101x101 in 46s
moritz should dig up old numbers from master
lastofthecarelessmen.blogspot.com/2...erl-6.html talks about 80x80 in 3 minutes 20s, but that's quite a different code 22:07
masak moritz++
nom: say Bool ~~ Real
p6eval nom: OUTPUT«Bool::False␤»
masak nom: say int ~~ Real 22:08
p6eval nom: OUTPUT«Bool::True␤»
masak nom: say Int ~~ real
p6eval nom: OUTPUT«Could not find sub &real␤current instr.: '_block1002' pc 83 ((file unknown):138) (:1)␤»
masak oh, right :)
moritz waiting for the 501x501 to finish, then -> sleep 22:09
or maybe I won't wait; I'm building a rakudo/master right now, that slows down the mandel a bit
but tomorrow I'll compare, and blog about it. 22:10
masak \o/ 22:15
pmichaud Flutter! 22:18
Util++
22:21 mkramer1 left
dalek kudo/nom: 37489f0 | pmichaud++ | src/core/List.pm:
Refactor List.pop to be more in line code-wise with List.shift and List.push.
22:21
22:21 shiftless joined 22:23 cooper left, cooper joined 22:24 cooper left, cooper joined
shiftless hey all. I have a couple questions. #1 is threading implemented yet? #2 can anyone give me a quick rundown on how to do non blocking socket I/O? 22:26
pmichaud threading NYI. We're looking for spec suggestions.
shiftless k 22:27
TimToady there is rudimentary threading in niecza and pugs, but probably not non-blocking socket support, unless you dig down
shiftless yeah, I'm pretty inexperienced with perl in general, and it seems the API has changed somewhat from perl5. tried digging through the PIR source but couldn't really figure out what functions were available or their parameters. 22:28
masak people seem to be asking for non-blocking sockets quite a lot.
pmichaud PIR source is going away soon anyway :)
TimToady we need to write rakudo in a dialect of NQB, Not Quite Blocking... 22:29
shiftless I mean, as far as figuring out the perl6 socket api. I guess that is an unfortunate fact of working with development code...very little documentation!
well, I can probably do the implementation in perl5 for now and just port it later. 22:30
masak shiftless: part of the problem for non-blocking socket I/O is that none of the people involved in Rakudo seem to have any experience with them. at least AFAIK. 22:31
pmichaud oh, I've had plenty of experience with non-blocking socket I/O. 22:32
I just don't have a need for it :)
22:32 firefoxchic joined
masak blog post! strangelyconsistent.org/blog/june-24-2011-types 22:32
shiftless i just basically want to build a server that listens for connections, then runs an event loop over connected sockets and does its thing. I think light weight threading with blocking I/O would probably be best anyway, whenever threads are ready. 22:33
22:33 pernatiy left
pmichaud masak: Array and Hash are Cool (at least they are/have been in rakudo) 22:33
rakudo: say Array ~~ Cool 22:34
p6eval rakudo 1fcb14: OUTPUT«Bool::True␤»
pmichaud niecza: say Array ~~ Cool
p6eval niecza v7-11-g9ba8284: OUTPUT«Bool::True␤»
masak oh, ok. 22:35
makes sense, I guess.
I'll redo the diagram :)
shiftless im out, thanks for the info guys. keep up the good work!
22:35 shiftless left 22:36 pernatiy joined
TimToady rakudo: say Hash ~~ Cool 22:36
p6eval rakudo 1fcb14: OUTPUT«Bool::True␤»
TimToady masak: ^^
masak fixing, pmichaud already pointed it out :) 22:37
TimToady oh, yeah, so he++ did
22:38 dorlamm joined
masak rakudo: say Range ~~ Cool 22:39
p6eval rakudo 1fcb14: OUTPUT«Bool::True␤»
masak oh ffs :)
pmichaud on the hunt for an unCool type
masak yeah.
besides Regex.
TimToady Whatever
pmichaud Signature
Method
Parameter
masak haven't introduced those.
Parameter? 22:40
pmichaud Grammar
masak haven't talked about any of those...
pmichaud Instant
masak well, I did mention Whatever...
TimToady it can also stand in for "whatever..." :)
masak though not under that name.
pmichaud DateTime 22:41
Date
Duration 22:42
masak haven't talked about any of those. but thanks :)
pmichaud well, it's all the Cool classes that get talked about first :)
masak I'm trying to have 0 forward references.
pmichaud Maybe this is the point where some of them get referenced for the first time, then. 22:44
You could introduce Sub here, since you've talked about subs.
masak ooh
rakudo: say Sub ~~ Cool 22:45
p6eval rakudo 1fcb14: OUTPUT«Bool::True␤»
masak oh man :/
why in the world is Sub Cool?
pmichaud nom: say Sub ~~ Cool
p6eval nom: OUTPUT«Bool::True␤»
pmichaud I don't know.
that seems... wrongish.
masak votes "no"
rakudo: say Routine ~~ Cool
TimToady rakudo: say +sub foo {}
p6eval rakudo 1fcb14: OUTPUT«Bool::True␤» 22:46
rakudo 1fcb14: OUTPUT«maximum recursion depth exceeded␤ in 'Cool::Numeric' at line 1921:src/gen/core.pm␤ in 'Cool::Numeric' at line 1921:src/gen/core.pm␤ in 'Cool::Num' at line 1:src/gen/core.pm␤ in 'Cool::Numeric' at line 1921:src/gen/core.pm␤ in 'Cool::Numeric' at line 1921:src/g…
masak fat lot of good being Cool does it :P
TimToady yeah, that's uncool
masak decidedly.
pmichaud jnthn++ has a lot of stuff as being Cool that I'm not so sure I agree with.
masak I'll mark it as uncool in *my* diagram, and hope Rakudo catches up.
TimToady just spec it 22:47
masak but having Routine in there is really good.
gives the tree a bit more treeishness.
rakudo: say Regex ~~ Routine 22:48
p6eval rakudo 1fcb14: OUTPUT«Bool::True␤»
TimToady d'oh 22:49
masak rakudo: say Whatever ~~ Routine
p6eval rakudo 1fcb14: OUTPUT«Bool::False␤»
masak phew :)
TimToady: why "d'oh"? a Regex is a kind of Method. 22:50
TimToady you could introduce the fact that there's always more types than you know about
masak yes, good idea.
22:51 xhacktly left
pmichaud anyone disagree with moving Code/Signature/Attribute/etc. out of Cool ? 22:52
it's apparently been Cool since the cool branch was first merged into Rakudo (april 2010)
TimToady "Not I!" said the little green pig.
masak maybe it was an April Cool's joke.
pmichaud fixing in nom. 22:53
masak \o/
what's the relation between Code and Routine, btw?
pmichaud Routine ~~ Code
Code is the base class for executable stuff
(unless it isn't :-) 22:54
TimToady rakudo: say Block ~~ Routine
masak Routine is something you can &return from?
p6eval rakudo 1fcb14: OUTPUT«Bool::False␤»
masak ok, so Code contains Block and Routine?
rakudo: say WhateverCode ~~ Code
p6eval rakudo 1fcb14: OUTPUT«Bool::True␤»
lichtkind good night
masak good night, child of light. 22:55
TimToady and good light, all children of night... 22:56
pmichaud Routine is something you return from, plus it also establishes new $_ $! $/ values instead of getting them from an outer scope 22:57
masak ah.
dalek kudo/nom: cf2afda | pmichaud++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
Code, Signature, Parameter, Attribute, etc. shouldn't be subclasses of Cool.

  (As told by a little green pig at irclog.perlgeek.de/perl6/2011-07-01#i_4043149.)
23:02
masak blog post updated based on feedback: strangelyconsistent.org/blog/june-24-2011-types -- TimToady++ pmichaud++ 23:03
pmichaud hmmm 23:04
rakudo: say Regex ~~ Sub
p6eval rakudo 1fcb14: OUTPUT«Bool::False␤»
TimToady rakudo: say Regex ~~ Method
pmichaud rakudo: say Method ~~ Sub
p6eval rakudo 1fcb14: OUTPUT«Bool::True␤»
rakudo 1fcb14: OUTPUT«Bool::False␤»
pmichaud okay.
masak yes -- it's really Regex <: Method <: Routine 23:05
pmichaud I was thinking Method ~~ Sub for some reason.
masak I'm glad that's not the case :P 23:06
pmichaud nom: say Sub ~~ Cool; # updated, yet?
p6eval nom: OUTPUT«Bool::True␤»
pmichaud not yet.
locally:
> say Sub ~~ Cool
Bool::False
I wonder if it's worth fixing in master. 23:07
might be worth fixing and seeing if anything breaks as a result.
I can also use that as the opportunity to tie down 'make spectest' to an appropriate commit 23:08
23:09 lichtkind left 23:14 wamba left 23:18 dorlamm left 23:21 pamera joined 23:28 orafu left, orafu joined 23:33 colomon joined
masak 'night, #perl6. 23:33
23:33 masak left
colomon o/, #perl6 23:36
23:38 pernatiy left 23:45 molaf__ joined 23:46 cdarroch left 23:49 molaf_ left
jnthn morning, #perl6 23:54
phenny jnthn: 16:37Z <moritz> tell jnthn moritz.faui2k3.org/tmp/Complex-num.patch results in 'P6opaque attributes NYFI 2' - any ideas?
jnthn: 21:03Z <moritz> tell jnthn never mind, bugs fixed
jnthn :)
pmichaud jnthn: o/ 23:55
23:59 Chillance joined
dalek kudo/nom: 9867c66 | pmichaud++ | NOMMAP.markdown:
NOMMAP updates -- metaops are done-ish (except for hyperops, coming soon), and a couple of notes about $obj.^parents .
23:59