»ö« 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 | ||
xB9xFExB9xFE | |||
kthakore | I will use it | ||
perlhack | xCExD2xCAxC7˵xC4xE3xCAxC7xBAxC3xC8xCB | ||
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 | |
xF1xF6 | |||
xD0xC2! xB0xB4һxCFxC2xC9xCFxB7xBDxB5xC4xCExC4xD7֣xACxBCxB4xBFəzҕxC6xE4xCBxFBxB7xADxD7gxA1xA3 xEAPxE9] | |||
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 constantcurrent 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 &chrcurrent 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 &mapcurrent instr.: '_block1002' pc 104 ((file unknown):41779916) (:1)» | ||
moritz | nom: grep { $_ * 2}, 1, 2, 3 | 10:47 | |
p6eval | nom: OUTPUT«Could not find sub &grepcurrent 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 &Falsecurrent 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 &getcurrent 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 &PODcurrent 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 1current 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 exceededcurrent 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-containercurrent 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«CFBACFBA» | ||
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 &callsamecurrent 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«-92233720368547758089223372036854775807» | 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+191.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 &realcurrent 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 |