»ö« 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. |
|||
00:03
bluescreen10 left
00:04
bluescreen10 joined,
benabik joined
00:13
whiteknight joined
00:15
Radvendii left
00:51
Moukeddar left
00:57
flussence left
01:00
packetknife left
01:06
japhb_ joined
|
|||
japhb_ | Just wanted to share a little anecdote: On my $day-job's IRC channel we were discussing chording keypresses with mouse buttons, and the question of how many combinations could be created for a user with a single mouse button. Someone gave a wild bound, so I tightened it a bit with the following, which I pasted verbatim: | 01:10 | |
$ ./perl6 -e 'multi postfix:<!>($n) { [*] 1 .. $n }; sub C($n, $k) { $n! / ($k! * ($n - $k)!) }; say [+] (C(101, $_) for 0..5)' | |||
83463472 | |||
NOT A SINGLE PERSON was even mildly surprised by any of the code. | 01:11 | ||
The discussion was entirely about improving the bound. | |||
It was just that obvious to everyone. | |||
That made me smile. | |||
sorear | good * #perl6 | 01:20 | |
japhb_ | o/ | 01:24 | |
01:26
flussence joined
01:36
am0c left
01:46
sftp left,
sftp joined
02:21
wolfman2000 joined
02:32
drbean left
|
|||
[Coke] | japhb++ | 02:34 | |
02:36
cognominal_ left
02:38
cognominal joined
02:41
whiteknight left
|
|||
colomon | niecza: printf "%-20s\t%s\n", "Plosurin", '' | 03:18 | |
p6eval | niecza v13-389-g852f0ff: OUTPUT«Unhandled exception: index out of range at /home/p6eval/niecza/lib/CORE.setting line 0 (sprintf @ 1)  at /home/p6eval/niecza/lib/CORE.setting line 1221 (printf @ 3)  at /tmp/0yLkuA4RaN line 1 (mainline @ 2)  at /home/p6eval/niecza/lib/CORE.setting… | ||
colomon | nom: printf "%-20s\t%s\n", "Plosurin", '' | ||
p6eval | nom acbec8: OUTPUT«Plosurin » | ||
03:21
orafu left,
orafu joined
|
|||
colomon | hmm; list, update, and info all work in panda-niecza | 03:26 | |
search too | 03:30 | ||
install is doing something weird at the moment, though. :\ | 03:31 | ||
ah, it was the sharing violation on ~/.panda/state | 03:34 | ||
oooo, I think I might have it figured out. :) | 03:38 | ||
yup | 03:40 | ||
so I've got panda-niecza fully functional, using ~/.niecza as the repo location | |||
the only real drawback at the moment is figuring out how to add a proper #! line to the panda script when it is installed | 03:42 | ||
but for now, it's time to sleep | 03:43 | ||
sorear | WOW! | 03:56 | |
colomon++ colomon++ colomon++ | |||
TimToady | en.wikipedia.org/wiki/Panda!_Go,_Panda! | 03:58 | |
04:01
kmwallio joined
04:04
twirp joined,
kmwallio left,
twirp left
04:06
flussence left
04:18
cognominal left
04:32
jaldhar joined
04:34
bluescreen10 left
04:38
birdwindupbird joined
05:01
raiph joined
|
|||
tadzik | colomon: awesome! | 05:08 | |
colomon++ | |||
05:13
baest left
|
|||
sorear | I see Unicode 6.1 was released] | 05:16 | |
05:17
baest joined
|
|||
tadzik | with a PILE OF POO character! | 05:18 | |
benabik | .u POO | 05:19 | |
phenny | U+A576 VAI SYLLABLE POO (ꕶ) | ||
benabik | .u Pile of Poo | ||
phenny | benabik: Sorry, no results for 'Pile of Poo'. | ||
sorear | phenny doesn't do supplementary chars | 05:20 | |
benabik | Oh. | ||
fileformat.info says pile of poo was added in 6.0 | |||
sorear | .u SHAVIAN LETTER PEEP | 05:21 | |
phenny | sorear: Sorry, no results for 'SHAVIAN LETTER PEEP'. | ||
sorear | .u 1045 | 05:22 | |
phenny | U+1045 MYANMAR DIGIT FIVE (၅) | ||
sorear | .u 10450 | ||
phenny | sorear: Sorry, no results for '10450'. | ||
05:22
drbean joined
|
|||
sorear | .u d900 | 05:22 | |
phenny | U+D900 (No name found) | ||
sorear demonstrates phenny's limitations | |||
raiph | phenny tell fasad i'd love to help; perlfoundation wiki has bits we probably want to use; tinyurl.com/6vp46ok; agree it's ugly; agree no yadda (yet another delusional doc answer); note github.com/features/projects/wikis | 05:32 | |
05:33
am0c joined
05:58
DarthGandalf left
06:06
kaleem joined
06:07
wolfman2000 left
06:08
DarthGandalf joined
|
|||
japhb_ | perl6: sub check($/) { "b" ~~ /./ }; check("a" ~~ /./) | 06:15 | |
p6eval | rakudo acbec8: OUTPUT«Cannot assign to a readonly variable or a value in method ACCEPTS at src/gen/CORE.setting:7656 in sub check at /tmp/Oxo9eVZFby:1 in block <anon> at /tmp/Oxo9eVZFby:1 in <anon> at /tmp/Oxo9eVZFby:1» | ||
..niecza v13-389-g852f0ff: ( no output ) | |||
..pugs b927740: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) { unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20111008/blib6/pugs/perl5/lib'; eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;}'Pugs::Runtime::Match::HsBridge'"*** '<HAND… | |||
japhb_ | ^^ Known problem in rakudo? | ||
Ouch. Also, I cannot pull from (or do a fresh clone of) the niecza repo from github. | 06:22 | ||
sorear, ^^ | |||
sorear | japhb_: symptoms? | 06:27 | |
I can pull fine | |||
japhb_ | sorear: | 06:34 | |
$ git clone github.com/sorear/niecza.git | |||
Cloning into niecza... | |||
error: Proxy CONNECT aborted while accessing github.com/sorear/niecza.git/info/refs | |||
fatal: HTTP request failed | |||
Several other repos are working fine, so I don't think it's an outright misconfig on my side (though I suppose something might be hinky here) | 06:35 | ||
sorear | are you accessing the other repos in the same way? | 06:37 | |
i.e. https versus http versus git | |||
doy | you should really use the git:// url unless you really can't use anything but http | 06:38 | |
japhb | sorear, oh interesting, you're right, I have write access (and thus use a git:// URL) to all the others I tested. Harumph, it probably is a local problem then. | 06:39 | |
(Though exactly *what* escapes me at the moment.) | |||
sorear | git:// URLs are always read-only | ||
https:// is recommended for write access because it's the only one with real access control | |||
japhb | sorear, sorry, I was using [email@hidden.address] urls elsewhere. Man, clearly too much on my mind tonight. | 06:40 | |
sorear | (technically you can set up a writable git://, but then it's world writable) | ||
... what am *I* thinking | |||
[email@hidden.address] "URLs" (which aren't actually URLs in the strict RFCish sense) use SSH internally and have access control | 06:41 | ||
what I said at :39 was nonsense, ignore it | |||
06:42
Trashlord left
06:43
raiph left
07:06
wtw joined
|
|||
sorear | japhb: now that you're using git://, is it working? | 07:07 | |
hmm. that was badly phrased | 07:09 | ||
japhb: does changing the URL form work? | |||
07:13
am0c left
|
|||
moritz | \o | 07:18 | |
japhb: re sub check($/), I think rakudo behaves according to spec | 07:21 | ||
calling the sub binds $/ as read-only, and conversely regex matching complains | |||
sorear | last time I talked to jnthn about this, we came to the conclusion that it didn't matter whether $/ was bound or assigned as long as the compiler does it consistantly | 07:24 | |
niecza takes the bind route, which is why it accepts that - the read-only container is simply replaced | |||
07:49
GlitchMr joined
07:56
tarch joined
08:00
birdwind1pbird joined
|
|||
japhb_ | sorear, using git:// works fine. Clearly the failure is with https:// (whether local or remote, I dunno), but haven't really looked. | 08:07 | |
08:08
am0c joined
|
|||
japhb_ | moritz, sorear, Rakudo's failure at handling that smoothly makes it more of a pain to do grammar action methods that need to do regex matches internally. | 08:09 | |
(The example I eval'ed was golfed down out of a failing grammar we'd found on RosettaCode.) | |||
I ended up working around the problem by defining my method to be: | 08:10 | ||
method TOP($m) { #{ use $m instead of $/ to build up $ast ... } $/ = $m; make $ast; } | 08:11 | ||
08:15
cognominal joined
|
|||
moritz | I can see that that's annoying | 08:15 | |
japhb_ | OK, time for some rest; night, all. | 08:18 | |
sleep & | 08:19 | ||
08:33
Trashlord joined
08:42
birdwind1pbird left
08:50
mj41 joined
|
|||
jnthn | Not sure I understand the view that allowing $/ - which you bound in the parameter list and are using to build up the AST - to be silently replaced would be helpful. | 09:12 | |
Feels like a great way to get a hard to find bug | |||
"Hey, all the code after I did this match does the wrong thing!" | |||
moritz | maybe an alternative would be to offer a Match.make method | 09:17 | |
which would mean you can simply say $m.make($ast) | |||
instead going through the trouble of re-assigning $/ to be able to call make($ast) | 09:18 | ||
*of | |||
jnthn | Yes. | ||
masak | mornin', #perl6 | 09:19 | |
moritz implements Match.make | 09:20 | ||
jnthn | moritz++ | 09:23 | |
o/ masak | |||
masak | www.lispcast.com/modern-language-wishlist | 09:33 | |
masak commutes | |||
moritz | I've meant to write such a list myself eventually | 09:34 | |
it's an interesting list | 09:36 | ||
perl6: say <good cheap fast>.pick(2) # always fun | 09:43 | ||
p6eval | pugs b927740: OUTPUT«cheapfast» | ||
..rakudo acbec8, niecza v13-389-g852f0ff: OUTPUT«good fast» | |||
moritz | nom: #= yellow sub marine() { }say &marine.WHY.content | 09:45 | |
p6eval | nom acbec8: OUTPUT«yellow » | ||
moritz | tadzik: is it intentional that the trailing blank isn't stripped? | ||
09:48
Psyche^ joined
09:51
Patterner left,
Psyche^ is now known as Patterner
10:04
Woodi left
|
|||
masak | nom: #= yellow sub marine() { }say &marine.WHY | 10:11 | |
p6eval | nom acbec8: OUTPUT«Block::Declarator.new(WHEREFORE => sub+{<anon>} marine() { ... }, config => ().hash, content => Array.new("yellow "))» | ||
masak | nom: #= yellow sub marine() { }say ~&marine.WHY | ||
p6eval | nom acbec8: OUTPUT«yellow » | ||
masak | colomon++ # panieczda | 10:29 | |
10:32
Woodi joined
|
|||
moritz tries to pronounce that | 10:35 | ||
colomon++ indeed | |||
masak | moritz: [panjeʈʃda] or something like it, I think. | 10:42 | |
I'm unsure whether it should be [nj] or [nʲ]. and maybe it's [dʃd] rather than [ʈʃd]. | 10:44 | ||
10:47
am0c left
11:01
Moukeddar joined
11:16
zamolxes left,
zamolxes joined
11:23
lestrrat left
11:24
lestrrat joined
11:32
icwiener joined
11:35
explorer__ joined
11:37
jferrero left
11:52
Moukeddar left
12:12
explorer__ left
12:40
bluescreen10 joined
12:47
Trashlord left,
Trashlord joined
12:51
bluescreen10 left
|
|||
masak | how would you split a string into the first character and the rest of the string in Perl 6? | 12:57 | |
(I brought this up a few weeks ago, but I don't remember if we ever settled on an idiom.) | |||
moritz | my ($head, $tail) = .substr(0, 1), .substr(1)l | ||
masak | I'd like something more succinct than just... two .substr calls :) | ||
in Perl 5 I'd use split or something. | 12:58 | ||
or maybe a regex. | |||
moritz | .split(/<at_pos(1)>/) | ||
jnthn | ooh | ||
moritz | nom: say 'foobar'.split(/<at_pos(1)>/).perl | ||
p6eval | nom acbec8: OUTPUT«No type check cache and no type_check method in meta-object in method reify at src/gen/CORE.setting:4380 in method gimme at src/gen/CORE.setting:4744 in method reify at src/gen/CORE.setting:4475 in method reify at src/gen/CORE.setting:4380 in method reify at… | ||
masak | bug? | 12:59 | |
I must say that reads very nicely. | |||
moritz | star: say 'foobar'.split(/<at_pos(1)>/).perl | ||
p6eval | star 2012.01: OUTPUT«No type check cache and no type_check method in meta-object in method reify at src/gen/CORE.setting:4376 in method gimme at src/gen/CORE.setting:4740 in method reify at src/gen/CORE.setting:4471 in method reify at src/gen/CORE.setting:4376 in method reify … | ||
jnthn | How in the hell... | ||
moritz | jnthn: indeed. | ||
masak | b: say 'foobar'.split(/<at_pos(1)>/).perl | ||
p6eval | b 1b7dd1: OUTPUT«("foobar")» | ||
masak | maybe something else is broken? | ||
nom: say "OH HAI" | 13:00 | ||
p6eval | nom acbec8: OUTPUT«OH HAI» | ||
masak | appears not. | ||
jnthn | nom: 'foobar'.split(/<at_pos(1)>/) | ||
moritz | I get the same output locally | ||
p6eval | nom acbec8: OUTPUT«No type check cache and no type_check method in meta-object in method reify at src/gen/CORE.setting:4380 in method gimme at src/gen/CORE.setting:4744 in method reify at src/gen/CORE.setting:4475 in method reify at src/gen/CORE.setting:4380 in method reify at… | ||
masak submits rakudobug | |||
jnthn | nom: 'foobar'.split(/./) | ||
p6eval | nom acbec8: ( no output ) | ||
moritz | nom: say 'a' ~~ /<at_pos(1)>/ | ||
p6eval | nom acbec8: OUTPUT«No type check cache and no type_check method in meta-object in method reify at src/gen/CORE.setting:4380 in method gimme at src/gen/CORE.setting:4744 in method reify at src/gen/CORE.setting:4475 in method reify at src/gen/CORE.setting:4380 in method reify at… | ||
jnthn | nom: 'foobar' ~~ /<at_pos(1)>/ | ||
p6eval | nom acbec8: OUTPUT«No type check cache and no type_check method in meta-object in method reify at src/gen/CORE.setting:4380 in method gimme at src/gen/CORE.setting:4744 in method reify at src/gen/CORE.setting:4475 in method reify at src/gen/CORE.setting:4380 in method reify at… | ||
jnthn | OK, what is at_pos doing... :) | ||
Wild guess: using nqp::getattr somewhere it should be using nqp::getattr_i :) | 13:01 | ||
moritz | erm, is it even spelled at_pos? | 13:02 | |
I might as well be misremembering something | |||
nom: say 'a' ~~ /<at(1)>/ | |||
masak | at the very least, it's an LTA error message. | ||
p6eval | nom acbec8: OUTPUT«=> <> at => <>» | ||
moritz | star: say 'foobar'.split(/<at(1)>/).perl | ||
p6eval | star 2012.01: OUTPUT«("f", "oobar").list» | ||
masak | \o/ | ||
moritz | ok, it helps to spell it correctly :-) | ||
masak | also reads well :) | ||
jnthn | \o/ | ||
masak | so, error is in using something that doesn't exist :) | 13:03 | |
jnthn | nom: say Any.^methods | ||
p6eval | nom acbec8: OUTPUT«eager elems end classify uniq infinite flat hash list pick roll reverse sort values keys kv pairs Array grep first join map min max minmax postcircumfix:<[ ]> at_pos all any one none postcircumfix:<{ }> reduce ACCEPTS» | ||
masak | typical "programmer never tried this path" thinko :) | ||
oh! | |||
moritz | well, at_pos comes from Any | ||
jnthn | There's an at_pos in Any | ||
masak | right. | ||
so it does something completely different. | |||
moritz | yes. | ||
13:03
skids left
|
|||
masak | and the regex engine gets sad. | 13:03 | |
jnthn | And doesn't return a cursor which...yes, that. :) | ||
masak | I will report this as best I can :P | 13:04 | |
13:04
bluescreen10 joined
|
|||
jnthn | So anyway, there's nothing here besides LTA error reporting. | 13:04 | |
masak | nod | 13:07 | |
niecza: say 'foobar'.split(/<at(1)>/).perl | |||
p6eval | niecza v13-389-g852f0ff: OUTPUT«Unhandled exception: Unable to resolve method at in class Cursor at /tmp/d7yD6gZrBa line 1 (ANON @ 4)  at /home/p6eval/niecza/lib/CORE.setting line 449 (Cool.split @ 10)  at /tmp/d7yD6gZrBa line 1 (mainline @ 2)  at /home/p6eval/niecza/lib/CORE.se… | ||
masak | sorear: ^^ would be nice | ||
moritz | niecza: say 'foobar'.split(/<at_pos(1)>/).perl | ||
p6eval | niecza v13-389-g852f0ff: OUTPUT«Unhandled exception: Submatch to be bound to at_pos returned a Any instead of a Cursor, violating the submatch protocol. at /tmp/OqtmCZAW19 line 1 (ANON @ 4)  at /home/p6eval/niecza/lib/CORE.setting line 449 (Cool.split @ 10)  at /tmp/OqtmCZAW19 lin… | ||
masak | that's the error Rakudo should be giving :) | 13:08 | |
sorear++ | |||
moritz | masak: iirc niecza implements <at> in some non-standard way | ||
niecza: say 'foobar'.split(/<AT(1)>/).perl | |||
p6eval | niecza v13-389-g852f0ff: OUTPUT«Unhandled exception: Unable to resolve method AT in class Cursor at /tmp/9dSrvEtbBq line 1 (ANON @ 4)  at /home/p6eval/niecza/lib/CORE.setting line 449 (Cool.split @ 10)  at /tmp/9dSrvEtbBq line 1 (mainline @ 2)  at /home/p6eval/niecza/lib/CORE.se… | ||
13:10
fasad joined
13:14
maik_ joined
|
|||
jnthn | Should be fixable by patching method subrule in QAST::Compiler | 13:16 | |
13:22
maik_ left
13:28
grondilu joined
|
|||
grondilu | perl6: my ($x, $y) = (2**30, 1); say +^$x +& $y; | 13:28 | |
p6eval | pugs b927740, niecza v13-389-g852f0ff: OUTPUT«1» | ||
..rakudo acbec8: OUTPUT«-1152921504606846975» | |||
masak | based on the p6c question about heredocs, maybe we should add heredocs to perl6.org/compilers/features ? | 13:29 | |
grondilu | rakudo gives a silly answer here | ||
masak | yes. | ||
known, I think. | |||
moritz | +1 to heredocs on the feature matrix | 13:31 | |
jnthn | ugh, it's the polymprhic literals thing again | 13:33 | |
oh, wait, it's not | 13:35 | ||
moritz | nom: my Int $x = 2 ** 30; say +^$x | ||
p6eval | nom acbec8: OUTPUT«-1073741825» | ||
jnthn | nom: say 2 ** 30 | 13:36 | |
p6eval | nom acbec8: OUTPUT«1073741824» | ||
moritz | that's just two's complement, as it should be (iirc) | ||
jnthn | perl6: my Int $x = 2 ** 30; say +^$x | 13:37 | |
p6eval | pugs b927740, rakudo acbec8, niecza v13-389-g852f0ff: OUTPUT«-1073741825» | ||
jnthn | Ah, so it's the +& doing something odd. | ||
masak dreams of the day when the Rakudo/Niecza optimizers take code written as junctions and turns it into something that runs fast | 13:38 | ||
grondilu | why should it be two's complement? 2^30 is below 2^31 so it is not supposed to be negative, is it? | ||
moritz | nom: say (2**30).fmt('%32b') | ||
p6eval | nom acbec8: OUTPUT« 1000000000000000000000000000000» | ||
moritz | nom: say (2**30).fmt('%032b') | ||
p6eval | nom acbec8: OUTPUT«01000000000000000000000000000000» | ||
moritz | so, flip each bit | 13:39 | |
and the most significant bit is 1 | |||
which is negative in 2's complement | |||
grondilu | I think rakudo treats the first four bits as sign bits | ||
nom: say my Int $ = 2**28 | |||
p6eval | nom acbec8: OUTPUT«268435456» | ||
moritz | grondilu: what makes you think so? | ||
grondilu | my previous experiments on my PC | 13:40 | |
nom: say my Int $ = 2**29 | |||
p6eval | nom acbec8: OUTPUT«536870912» | ||
grondilu | nom: say my Int $ = 2**30 | ||
p6eval | nom acbec8: OUTPUT«1073741824» | ||
grondilu | ah hang on | ||
nom: say my Int $ = +^2**30 | |||
p6eval | nom acbec8: OUTPUT«-1073741825» | ||
grondilu | nom: say my Int $ = +^2**28 | ||
p6eval | nom acbec8: OUTPUT«-268435457» | ||
grondilu | nom: say my Int $ = +^2**27 | ||
p6eval | nom acbec8: OUTPUT«-134217729» | ||
grondilu | nom: say my Int $ = +^2**10 | 13:41 | |
p6eval | nom acbec8: OUTPUT«-1025» | ||
grondilu | ok | ||
moritz | grondilu: +^ *always* flips the sign | ||
grondilu | indeed | ||
[Coke] wonders if it's worth doing another spec run. | |||
moritz | except for 0 and +1 (which produce -1 and 0), because you can argue if 0 has a sign :-) | ||
[Coke] | nom: say -0 | 13:42 | |
p6eval | nom acbec8: OUTPUT«0» | ||
[Coke] | perl6: say -0 | ||
moritz | nom: say -0e0 | ||
grondilu | shouldn't it flip the sign only if the first bit is a 16, 32 or 64?? | ||
p6eval | pugs b927740, rakudo acbec8, niecza v13-389-g852f0ff: OUTPUT«0» | ||
nom acbec8: OUTPUT«-0» | |||
[Coke] | perl6: say -0e0 | ||
p6eval | rakudo acbec8: OUTPUT«-0» | ||
..pugs b927740, niecza v13-389-g852f0ff: OUTPUT«0» | |||
moritz | grondilu: no. | ||
13:44
rasto joined
|
|||
masak | measuring how fast code runs is the shit. | 13:44 | |
grondilu | nom: my ($x, $y) = (2**30, 1); my $z = +^$x +& $y; printf "%b\n", $_ for $x, +^$x, $y, $z; | ||
p6eval | nom acbec8: OUTPUT«1000000000000000000000000000000111111111111111111111111111111111011111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000001» | 13:45 | |
grondilu | see the four first bits of $z? | ||
masak | I just measured my code, removed one set of junctions, and then it ran at 2x the speed. I removed another set of junctions, and it didn't change. so I added them back because it was clearer that way. :) | 13:46 | |
grondilu | nom: my ($x, $y) = (2**30, 1); printf "%32b\n", +^$x +& $y; | ||
p6eval | nom acbec8: OUTPUT«1111000000000000000000000000000000000000000000000000000000000001» | ||
grondilu | where do those four bits come from?? | 13:47 | |
niecza: my ($x, $y) = (2**30, 1); printf "%32b", +^$x +& $y; | |||
p6eval | niecza v13-389-g852f0ff: OUTPUT« 1» | ||
jnthn | masak: Is that in Rakudo? | 13:48 | |
moritz | oh. | ||
dalek | gs.hs: f364756 | au++ | pugs-DrIFT/ (2 files): * Update pugs-DrIFT to 2.2.3.20120203 for GHC 7.4.1. |
||
gs.hs: 971da12 | au++ | Pugs/ (14 files): * Pugs 6.2.13.20120203 for GHC 7.4.1 compatibility. |
|||
gs.hs: 2ce0226 | au++ | pugs-compat/ (2 files): * pugs-compat-0.0.6.20120203 for GHC 7.4.1 compatibility. |
|||
gs.hs: 08f0e50 | au++ | / (18 files): Merge branch 'master' into perl6 |
|||
masak | then I realized if I replaced some hash logic with just junctions, it ran at ~3x the original speed. o.O | ||
jnthn: no, Niecza. | |||
jnthn | masak: ah, otherwise I'd ahve asked for code for profiling :) | ||
moritz | grondilu: I just realized, libtommath (which we use for storing bigints) uses 28bit "digits" | 13:49 | |
grondilu: so there might indeed a bug in there somewhere | |||
grondilu | oh, this explains a lot | ||
moritz | grondilu: feel free to submit as rakudobug (or even fix if you want :-) | ||
masak | then I realized that I could precompute a bunch of stuff; now it runs at ~160x the original speed. :) | ||
grondilu | I don't know how to. Someone please do it. | 13:50 | |
masak submits rakuodbug | |||
moritz | libtommath stores sign separately from the rest of the bits, which is why we need to emulate 2's complement math | ||
and that part might be buggy | |||
moritz not a big bit fiddler | |||
masak | au++ # alive | ||
masak .oO( bit fiddler on the &ceiling ) | 13:52 | ||
grondilu | masak: you wrote 'rakuodbug' | 13:53 | |
masak | grondilu: don't worry, things come out right in the end :) | ||
grondilu | ok, good | 13:54 | |
masak | look, it's spelled right in the ticket: rt.perl.org/rt3/Ticket/Display.html?id=109740 | ||
:P | |||
araujo | mm.. | ||
masak | (there's an intermediate typo correction step in there) | ||
araujo | Pugs resumed development? | ||
masak | araujo: no, just keeping things un-bitrotted, I think. | 13:55 | |
moritz | araujo: seems to be just updating to newest haskell toolchain | ||
araujo | masak, moritz aaah .. mm | ||
moritz | audrey has been doing that for quite some time | ||
13:56
xinming left
|
|||
masak | aye. | 13:56 | |
it makes it easier for future dauntless Pugsonauts to pick up the reins. | 13:57 | ||
we never got that going, by the way. perhaps I should spend the next Perl 6 day trying to set up a Pugs dev environment... | |||
araujo might try that out in his his free time on weekend | |||
though I guess, right now, Pugs is long long far away from other implementations like rakudo? | 13:58 | ||
[Coke] | au++ ! | 13:59 | |
moritz | araujo: well, it is out of date in many areas | ||
[Coke] | masak -if you do that, I can add pugs to the no-longer-daily spec test runs. | ||
masak | [Coke]: that's be nice, too. | 14:01 | |
[Coke]: I think Pugs has loads and loads of LHF and pending instant gratification. | 14:02 | ||
arnsholt | And there's ample inspiration in Rakudo and Niecza for solutions to various things as well, I suppose =) | 14:05 | |
masak | right. | 14:07 | |
and it would lead to awesome blog posts. | |||
moritz | blog-driven development? :-) | ||
14:16
xinming joined
|
|||
[Coke] | argh, I left my netbook at home. | 14:20 | |
masak | moritz: ...which turns into an infinite regress if one's blog is written in Perl 6 :P | ||
[Coke] | Infinite Egrets. | 14:22 | |
14:25
skids joined
14:30
kaleem left
|
|||
masak | sorear: when I make timings with Niecza, in the style of 'use MyModule; my $t = now.val; #`<do something a fixed number of times>; say now.val - $t', the first time I run after modifying MyModule.pm, things always run significantly faster. why is that? | 14:31 | |
I'm guessing it's related to the compilation cache somehow, but it still feels counterintuitive to me. | |||
ooh! maybe it's connected to deserialization, and that has a run-time penalty somehow? | |||
moritz | maybe deserialization is slower than recompilation? :-) | 14:35 | |
jnthn srsly hopes Rakudo's deserialization doesn't work out that way :) | |||
14:37
xinming left
14:38
pernatiy joined
|
|||
masak | moritz: one would think the deserialization would be finished by the time the first 'my $t = now.val' runs, though. | 14:39 | |
jnthn woulda thunk so too, but it's always possible that it does something lazily... | 14:42 | ||
masak | aye. | 14:43 | |
14:43
PacoAir joined
14:48
birdwind1pbird joined
14:50
xinming joined
14:54
xinming left
14:55
birdwindupbird left
14:57
xinming joined
15:01
am0c joined
|
|||
masak | no matter how I tried, a 'for (@array) { ... }' is faster in Niecza than the corresponding loop construct with indices. | 15:01 | |
masak impressed | |||
colomon surprised | |||
15:02
Trashlord left
|
|||
[Coke] | aloha, seen hugme? | 15:02 | |
aloha | [Coke]: hugme was last seen in #perl6 12 days 2 hours ago joining the channel. | ||
jnthn | masak: Oddness. | 15:03 | |
15:03
xinming left
15:05
xinming joined,
am0c left
|
|||
[Coke] sees a ton of drama on p5p. | 15:08 | ||
masak | [Coke]: over what? | ||
[Coke] | phenny: tell hugme to hug p5p. | ||
phenny | [Coke]: I'll pass that on when hugme is around. | ||
[Coke] | rt.perl.org/rt3//Ticket/Display.html?id=108470 | 15:10 | |
[Coke] looks forward to our eventual RT upgrade. ;) | 15:11 | ||
15:12
xinming left
15:13
xinming joined
|
|||
masak | I wonder if it would make sense to have a 'git undo' subcommand, which worked on at least a subset of the other subcommands. like I make a commit, and instead of 'git reset --hard HEAD^', I just go 'git undo'. | 15:15 | |
lower mental load. | |||
15:17
zby_home_ joined
|
|||
arnsholt | There was a reasonably good critique of git's UI on HN the other day | 15:18 | |
I think it was quite correct in claiming that the UI is mostly a by-product of the implementation, and usability suffers correspondingly | |||
15:20
xinming left
|
|||
[Coke] | masak: can't you add "undo" as a local alias? | 15:21 | |
masak | [Coke]: maybe, but it'd have to somehow have enough state to know what the last subcommand was. | 15:22 | |
hm, maybe I can just do something nice with the reflog... | |||
[Coke] | oh, I mean to "git reset --hard HEAD^" | ||
masak | right, but that's specifically in the case of 'git commit'. | ||
I think doing 'git reset --hard HEAD@{1}' might work quite well. | 15:23 | ||
masak now has an 'undo' alias | 15:26 | ||
[Coke]++ | 15:27 | ||
one nice thing that just seems to fall out of this is that I can 'git undo' the last 'git undo' :) | |||
mikemol | So my boss absolutely *hates* Perl 5. Our build script is written in it, and Perl 5's syntax is driving non-Perl coders. I'm campaigning for it to be ported to Perl 6. | 15:28 | |
15:28
xinming joined
|
|||
mikemol | *driving non-Perl coders crazy | 15:28 | |
15:29
grondilu left
|
|||
[Coke] | So, I miss Modula 3. Is there a spec for trusted/untrusted||Safe ? or is safe mode just in bots? | 15:29 | |
masak | mikemol: good luck. I'd advise you to tread really carefully so they don't feel burned by Perl 6 implementations' alpha-ness. | 15:31 | |
mikemol: it may turn out really well, but my guess is that it'll take a bit of work on your part. especially when people run into problems. | 15:32 | ||
mikemol | masak: What I'll probably do is ask for permission to take the code home and poke it on my own time. | ||
masak | mikemol: if you're the only one writing/maintaining the code, you're in a much simpler position. | ||
but you definitely don't want a situation where someone takes it over, or has to look at it for an afternoon, and goes "what the #@&#%!@ is this?" | 15:33 | ||
mikemol | It'll need to run under niecza, as the build system is running Windows 7; having a .Net VM seems the obvious choice. | ||
masak | what other requirements do you have? speed? memory? refactorability? | ||
mikemol | Speed isn't a real issue in this case; it'll be spending far more time calling visual studio's build processes. | 15:34 | |
15:34
drbean left,
birdwind1pbird left
|
|||
mikemol | Likewise, memory isn't going to be a real issue. It's a build system, and the heavy lifting is done by other tools. | 15:34 | |
Refactorability...Not a real concern here. Code clarity and the ease of understanding what's going on and of adding new functionality. | 15:35 | ||
15:36
xinming left
|
|||
mikemol | The script is really quite low-end, as far as any kind of requirements. The big troubles are pieces of Perl 5's syntax that Perl 6 already dealt with. | 15:37 | |
masak | sounds like a nice fit for Perl 6, then. | ||
15:37
Trashlord joined
|
|||
PerlJam | mikemol: he hates perl 5, but he's okay with perl 6? | 15:38 | |
mikemol | PerlJam: Hasn't seen Perl 6. Doesn't like that it has Perl in the name, though... | ||
The biggest issue, at the moment, are how sigils work in Perl 5. | 15:39 | ||
This code gets prodded perhaps every six months to a year, and the responsibility for maintaining it is moving away from its present maintainer. | 15:40 | ||
PerlJam | mikemol: how sigils work or that there are multiple sigils or that there are sigils at all? | ||
Hmm. | |||
mikemol: are you going to be the future maintainer? | |||
15:41
drbean joined
|
|||
mikemol | my %hash; $hash{$key}; my $ref = \%hash; $ref->{$key}; my @array; my $array[$index]; | 15:41 | |
And so on and so forth | |||
PerlJam | gotcha | ||
timotimo | i've been kind of spreading the claim, that perl6 is kind of a "complete overhaul" and that unreadable, completely opaque programs are a thing of the past, is that actually true? i haven't read much perl6 code "out in the wild" yet, nor have i written more than a hundred lines | ||
PerlJam | timotimo: they aren't "a thing of the past" Obfuscation is still possible. | 15:42 | |
timotimo | i have only been surprised quite often about how almost anything seems to boil down to not very many simple concepts | ||
slavik | timotimo: perl6, like any language does give you enough rope to deep fry your foot | ||
PerlJam | timotimo: but, "cleaner" programs are certainly encouraged more now than before | ||
timotimo | of course, but the claim was that perl5 would "actively encourage" unreadability | ||
mikemol | timotimo: Unreadable, opaque programs are an a fundamental of computer programming. Anyone can write an opaque program in any language they face, and probably will. | ||
P5 doesn't encourage unreadability, it's just so flexible that unreadable code is too damn convenient... | 15:43 | ||
timotimo | i suppose what i'm getting at is more the kind of code you would find out in the wild. i wouldn't say "C is really unreadable! just look at the IOCC!" | ||
masak | timotimo: I've seen bad or unreadable Perl 6 code. there's also lots of Perl 6 code that's much less expressive than its true potential. | ||
mikemol | timotimo: It really depends on coder discipline and site/project coding conventions. | ||
timotimo | i suppose the sigil invariance thing, for instance, goes a long way, but i'm not very aware of the rest of it | 15:44 | |
masak | timotimo: but we have the advantage that we're starting from another place than Perl 5, which started with Perl 1 which was a very different language with different idioms. | ||
PerlJam | timotimo: one of the problems is that people confusing "expressivity" and "readability" | ||
mikemol | And there will always be developers who look for ways to be clever, either out of boredom or out of some other motivation... | ||
masak | and there will always be developers who don't consider maintainability. | 15:46 | |
PerlJam | mikemol: assuming you convince your boss to let you use Perl 6, you'll have to let us know how you got him to accept the "risk" of doing so. | ||
15:46
xinming joined
|
|||
timotimo | i guess there isn't a satisfying answer to get for me. it was kind of a dumb question anyway | 15:46 | |
masak | I like jnthn's graph with the three levels of programmers: "hey, I got it to compile!" -- "let's write this with all sorts of crazy features that I just learned" -- "I use the various parts of the language sensibly and in moderation". | 15:47 | |
mikemol | timotimo: To say that Perl 6 makes unreadable code a thing of the past is like saying Python makes unreadable code a thing of the past. | ||
It might be a desired outcome, but it's not something you can guarantee. | |||
masak | timotimo: what Perl 6 gives you is a very wide *range* of idioms to express everything from APL-like short code to enterprisey boilerplate-ish class hierarchies. | 15:48 | |
PerlJam | timotimo: not a dumb question at all. | ||
timotimo: though, if you can't get satisfaction, that's not our problem ;) | 15:49 | ||
timotimo | oh, that's another question i've pondered for only a second - can perl6 be adequately inspected to allow refactoring tools to do any non-trivial work? | ||
mikemol | PerlJam: The most powerful argument I've given so far is that Perl 6 is intended to be a lot more self-consistent, and doesn't have to carry the legacy of Perl 5. | ||
masak | timotimo: S11 has some wording on that, I believe. | ||
mikemol | That implies the language will be cleaner, and that it will be easier to re-learn as-needed. | ||
timotimo | it seems to me that that would be really hard, but i wouldn't know enough about perl to know | 15:50 | |
i'll have a look, thanks masak | |||
masak | timotimo: the general problem is unsolvable, since BEGIN block might affect the parsing of the rest of the program. | ||
mikemol | We're a multifunctional shop; we pick up skills and tools as we need them. | ||
PerlJam | timotimo: Perl 6 has more facility for introspection than Perl 5, certainly | ||
masak | PerlJam: Alias_ of PPI seems to think it's more difficult to parse out Perl 6, though. | ||
timotimo | right, but introspection i mostly in live running programs, right? | 15:51 | |
15:51
am0c joined
|
|||
Alias_ | yup | 15:51 | |
PerlJam | timotimo: and since the Perl 6 grammar will be accessible, it's likely that we can do PPI-like-things without needing PPI :) | ||
Alias_ | PerlJam, nope | ||
Perl 6 won't support document parsing | |||
timotimo | in python, for instance, i could completely change any functions bytecode or replace functions and silly things like that. that would make using introspection *really* useless for refactoring. then again, not everybody does this and rope - a refactoring tool for python - exists and can do a few non-trivial things | 15:52 | |
PerlJam | Alias_: you don't think we can decouple syntax and semantics enough to repurpose the Perl6 grammar? | ||
Alias_ | And by encouraging more grammar diversity, it will actually be harder to parse | ||
PerlJam: You need to be able to parse invalid syntax | |||
You need to be able to parse code that use's modules that don't exist | |||
masak | I remain more optimistic than that, but I haven't written PPI. | ||
PerlJam | what masak said | ||
Alias_ | You need to parse code that launches nuclear weapons at BEGIN time | ||
How would you parse the following Perl 6 document | 15:53 | ||
} | |||
[Coke] | which is one of the reasons I was asking about Safe. | ||
masak | Alias_: you've described designing PPI as solving a problem by looking at it in another way. it wouldn't surprise me if Perl 6 requires yet another shift in perspective to feel parseable. | ||
Alias_: you do realize the irony in first saying "Perl 5 wasn't possible to parse, but I did it!" and then "Perl 6 won't be possible to parse", right? :) | 15:54 | ||
PerlJam | masak: Apparently you and I are on the same wavelength today because I was thinking just that :) | ||
Alias_ | Perl 5 won't be parsable by 5.16 or so either | 15:55 | |
15:55
xinming left
|
|||
masak | that... didn't quite answer my question. | 15:55 | |
Alias_ | To parse you need a grammar | ||
masak | granted. | 15:56 | |
and if the language moves out from under you, you're toast. I agree to that too. | |||
Alias_ | If the grammar itself is turing complete, you can't know if determining the grammar prior to commencing parsing will complete before the end of the universe | ||
Right | |||
You're toast | |||
PPI evaded the problem, but just barely | 15:57 | ||
masak | but you're talking about the general case. | ||
code never exists in the general case, it exists in specific individual cases. | |||
PerlJam | I think we can get a 90% solution and that will be good enough for most purposes | ||
masak | and special cases can often be solved even when the general case cannot. | ||
Alias_ | If you can write a parser that can parse fuzz, that would be good enough | ||
masak | for example, it's possible to parse Perl 6 code that doesn't muck with the grammar. | ||
Alias_ | If the parse halts and bails, then you're toast | 15:58 | |
It's ok to mis-parse, so long as you continue | |||
Hence why PPI can parse the single character } as a document | |||
masak | because it doesn't match up braces? | ||
Alias_ | Because it finds ways to continue | 15:59 | |
masak | ah, ok. | ||
Alias_ | } is an PPI::Statement::UnmatchedBrace | ||
masak | oh! | ||
Alias_ | PPI lets you put all sorts of illegal stuff in | ||
The test suite parses every single possible Perl program 5 characters or shorter | |||
And Audrey wrote a fuzz tester than generates random 128 character programs | |||
And it parses all those too | 16:00 | ||
It won't get the parse right, but it will complete the parse | |||
And then it can round-trip the parse tree correctly back to the original string | |||
No matter how weird or broken | |||
So long as you can do that, you can be useful | |||
PerlJam | I can certainly be ignorant here, but that seems possible with Perl 6 too. | ||
mikemol | Alias_'s problem is that you could put an infinite loop somewhere where your grammar is still being modified. | 16:01 | |
Alias_ | It's possible, but I'm assuming not by reusing the same parser as you execute with | ||
mikemol | At least, if I understand the conversation correctly. | ||
Alias_ | You can't modify grammar | ||
Not safely | |||
Or at least, not arbitrarily | |||
masak is still enchanted by the fact that mentioning Alias_ by name caused him to rez and explain a bunch of stuff | |||
PerlJam | Maybe we end up with 2 Perl 6 grammars: 1 for actually parsing Perl 6 programs that are expected to work, and another for PPI-like parsing) | ||
Alias_ | PerlJam: Probably | 16:02 | |
Aborting a parse is meaningful and important when you are executing, but fatal when document reading | |||
PerlJam | yep | ||
16:02
mj41 left
|
|||
mikemol | I haven't read enough of the spec to know much of anything about how grammer modding works, but I've seen at least an implication that it only happens in BEGIN blocks. | 16:03 | |
masak | mikemol: having it happen later than parse-time isn't so useful :P | ||
16:03
xinming joined
|
|||
masak | mikemol: but no, it can happen outside of BEGIN blocks. | 16:04 | |
mikemol | I also don't know anything about PPI (or really what it does, outside this conversation), so I don't know if *anything* I say is going to make any sense... | ||
masak | mikemol: declaring a sub is essentially modifying the parser. | ||
TimToady | BEGIN blocks are a last resort, like eval | ||
mikemol | I suspect I should just be quiet and get some work done. I'm way out of my depth here. :) | ||
masak | ...and you know you're desperate if you're doing an eval in a BEGIN... :P | ||
PerlJam | mikemol: PPI is a magic parser of perl 5 programs :-) | 16:05 | |
16:05
mj41 joined
|
|||
mikemol | k, read through search.cpan.org/~adamk/PPI-1.215/lib/PPI.pm ... I think I undrestand now. | 16:07 | |
Definitely need to get some work done. | |||
Woodi | so, by introducing grammars Perl6 takes unparsability of Perl5 to naw Alef lvl ? :) | 16:08 | |
16:08
xinming left
|
|||
Woodi | *new Aleph lvl* | 16:09 | |
masak | Woodi: well, it's not news that Perl 6 adds new knobs to twiddle. so, naturally it's going to be more difficult to predict what Perl 6 will be doing, that only makes sense. :) | ||
TimToady | it is certainly true that if you don't know what language you're parsing, you can't parse it, but that's not what we're aiming for | 16:10 | |
masak | that was my point above. | ||
Woodi | so vim need to embed v6 engine :) +1 for me :) | ||
masak | Woodi: not "needs to", but it will be hard/impossible in the way Alias_ described if it does not. | 16:11 | |
TimToady | or put a vim wrapper on the P6 parser :) | ||
jnthn | decommute & | ||
TimToady | what Perl 6 *is* trying to do is to break the notion that a file contains only a single language | 16:12 | |
so you might end up with a vim that can switch syntax tables within a file | |||
Alias_ | Which makes know which language it is you are parsing very hard | ||
TimToady | no | 16:13 | |
PerlJam | Alias_: it's always a slang of Perl 6 :) | ||
Woodi | v5; ...; v6; ...; | ||
TimToady | Perl 6 always knows *exactly* what language it's parsing | ||
Alias_ | So does Perl 5... | ||
TimToady | no it absolutely doesn't | ||
not if you include source filters | 16:14 | ||
Alias_ | I don't | ||
It still doesn't know | |||
TimToady | we're including that capability while still knowing what language we're parsing | ||
there is no two-pass parsing in Perl 6 | |||
16:15
xinming joined
|
|||
Alias_ | Perl 5 is undecidable already, even without source filters | 16:15 | |
TimToady | only in the abstract halting problem sense | ||
masak | TimToady: do you see the need for a PPI-like "recover and continue" document parser like the one Alias_ describes, for Perl 6? | ||
colomon | masak++ # had no idea that heredocs with indentation worked properly in niecza! That was one of the things that most excited me about p6 when I learned about it (back in the pre-Pugs days...) | 16:16 | |
Alias_ | If it was only an abstract problem, one of the parsers that was based on the perl 5 parser would have been useful at some point | ||
TimToady | I'm more interested in parsing new languages successfully than nailing down my language as a permanent fossil | 16:17 | |
if the new parsers are well-formed, they'll be useable to parse documents at some point | 16:18 | ||
Alias_ | The problem is that to have most kinds of useful tools, you need a grammar you can nail down | ||
masak | colomon: oh! I've been using heredocs in Niecza for nearly a year, I think. | ||
Alias_ | Unless we go with the "There is no source, only the running code" | ||
masak | with indentation. | ||
Alias_ | But that family of languages never seem to get much uptake | 16:19 | |
16:19
kmwallio joined
|
|||
TimToady | it's not high on my priority list to parse the garbage after a parse error, but it's certainly possible to try to recognize bits and pieces in the context of what language you think you were in | 16:19 | |
masak | it almost sounds like a Ph.D. project. | ||
PerlJam | masak: almost? | ||
TimToady | but I don't mind if the rest of my file loses its color when vim finds an error | ||
Alias_ | Except most Ph.D. projects don't produce useful code at the end :) | 16:20 | |
16:20
xinming left
|
|||
colomon | masak: as somehow with large quantities of p5 scripts which generate C++ code, the lack of indentation handling in p5's heredocs is a major factor making that code of mine look very ugly. | 16:20 | |
Alias_ | TimToady: It's going to flicker back and forth between color and not | ||
As you type... | |||
TimToady | that's a good thing | ||
16:20
mj41 left
|
|||
Alias_ | That's a bold assertion | 16:20 | |
Is there any prior art? | |||
TimToady | eh? that's kinda what happens now | 16:21 | |
16:21
MayDaniel joined
|
|||
masak | colomon: nod. I had that problem in GGE too. | 16:21 | |
TimToady | you type, vim gets confused, then it gets unconfused | ||
16:21
xinming joined
|
|||
masak | colomon: it's bad because it becomes like two competing landscapes of indentation. very distracting. | 16:21 | |
Alias_ | TimToady, alas I have to bail from the discussion | 16:22 | |
colomon | masak: right | ||
Alias_ | Packing for flight to the USA | ||
I'll be in San Francisco for the next two weeks | |||
PerlJam | Alias++ thanks for weighing in :) | ||
masak | Alias_: thanks for stopping by! | ||
TimToady | have a safe flight | ||
Alias_ | Thanks | ||
It's a happily short 14 hours | |||
masak | have the appropriate amount of san fran! | 16:23 | |
Alias_ | No stops, phew | ||
PerlJam | Alias_: plenty of time to work on Padre or whatever suits your fancy | ||
:) | |||
Alias_ | PerlJam, alas, no | ||
It's a job trial | |||
Job of a lifetime, literally | |||
But will involve moving to 100% microsoft stack | |||
TimToady | Perl 6 runs on mono :) | 16:24 | |
s/mono/.NET/ | |||
Alias_ | Part of the reason I have to take the trial, after 4 interviews, is that there's a question about whether I'm "too embedded in Perl" | ||
huf | wut | ||
PerlJam | Alias_: good luck! | ||
TimToady | have the appropriate amount of fun | 16:25 | |
Alias_ | huf: Moving from a language and community I have some standing and social networks in, to one I'm unknown and starting from scratch | ||
:) | |||
So doing Perl stuff and talking about it much during this trip too much is probably not a good thing | |||
I won't break out the Perl till AFTER I have the job :) | |||
PerlJam | Alias_: blow the interviewers away and have fun doing it :) | ||
Alias_ | later all | ||
masak | Alias_: good luck! | ||
wow, that was great. how about we invite more golen-era people to the channel and interview them? :D | 16:26 | ||
TimToady | can I finally start backlogging now? <pant> <pant> | ||
masak | I think I could mention half a dozen interesting people from the Pugs days that it would be cool to have back on the channel. | 16:27 | |
if only for a few minutes. | |||
TimToady | well, we don't want to turn into a museum quite yet :) | ||
masak | I'm not talking about wax figures, I'm talking about people who used to be active and who are probably still bubbling with energy and good ideas. | 16:28 | |
only elsewhere. | |||
PerlJam | I haven't seen audrey in a while. :) | ||
TimToady | shes in the backlog via dalek :) | ||
masak | PerlJam: she made commits only a few hours ago... :) | ||
PerlJam | not quite the same | 16:29 | |
masak | of course not. | ||
she was around a bit in late 2010, according to the logs. | 16:31 | ||
TimToady needs to write a talk about developing a language when your raw materials are hares, tortoises, Achilles, and Zeno. :) | |||
tadzik | moritz: no, it's not. I'll add a test and look at it todaymorrow | ||
masak | TimToady: haha | ||
TimToady: now you *have to*. :) | 16:32 | ||
16:32
PacoAir_ joined,
PacoAir left,
PacoAir_ is now known as PacoAir
|
|||
PerlJam | TimToady: sounds like a Hofstadter rip-off though | 16:32 | |
TimToady | we need to find a way of making each development step to 6.0 take half as long as the previous one :) | 16:33 | |
more realistically, taking the long view, we just label something 6.0, and then with each regular release after that we reduce the need for 7.0 by half. :) | 16:35 | ||
masak | PerlJam: any sufficiently self-referent memetics is indistinguishable from a Hofstadter rip-off. | ||
TimToady | you can say that again! | ||
that goes without saying! | |||
PerlJam | masak++ | ||
16:36
PacoAir_ joined
16:37
PacoAir_ left,
PacoAir_ joined,
PacoAir left,
PacoAir_ is now known as PacoAir
|
|||
TimToady | well, Hofstadter was so complete that it's now all Hofstadter rip-offs, and all we can do now is put in different jokes | 16:37 | |
16:37
MayDaniel left
16:38
snearch joined
|
|||
masak | they all become part of the Strange Vortex. | 16:40 | |
TimToady | fershure, Perl 6 is rather strange loopy, which bugs people who want to nail it down to being one thing :) | ||
16:41
am0c left
|
|||
mikemol | It's possible that Perl 6 will take the need for coding conventions to a new level. | 16:41 | |
TimToady | there's always hope :) | 16:42 | |
but also the ability to predeclare coding conventions is built in! | |||
mikemol | That'd be a nice feature to see in a demo. | 16:43 | |
TimToady | use NailDownMyLanguageLikeAFloppingFish; | ||
16:43
simcop2387 left
|
|||
masak | I've come to see Perl 6, in the abstract, as two interlocking strange loops: the grammar, and the MOP. | 16:43 | |
TimToady | and you'll note we try to keep those as far apart from each other as possible | 16:44 | |
masak | we do? | ||
TimToady | certainly | ||
masak | sometimes we put pmichaud and jnthn in the same room... :P | ||
TimToady | the grammar is lexically defined, and the MOP is off in single-dispatch land | ||
and we try to keep lexical things like multi subs far, far away from single dispatch things | 16:45 | ||
16:45
simcop2387 joined
|
|||
TimToady | we've been detangling those for years | 16:45 | |
Woodi think that "learning new programming language" is kind of obsolote for someone actually knowing one programming language. this relaxes somehowe need of picking only one of Perl5 or Perl6... | 16:46 | ||
16:46
kaare_ joined
|
|||
TimToady | the question is whether Humpty Dumpty's language was different because of the lexical scope he was in, or because HD's metaobject was the master, that's all... | 16:47 | |
mikemol | Woodi: I think a presumption of actually knowing a non-trivial programming language is likely an example of hubris. | ||
That said, TimToady once identified hubris as a useful property of a programmer. | |||
TimToady | laziness, impatience, hubris only work when applied with industry, patience, and humility :) | 16:48 | |
moritz | :-) | ||
colomon | sure... if it weren't for hubris, most of us with experience would have to run away screaming from any significant-sized programming project... ;) | 16:49 | |
Woodi | they say that learning programming is hard becouse you need to control syntax, concepts like algoritms or objects with all theory below and other things in the same time... | ||
TimToady | industry == hare, patience == tortoise, humility == er, Achilles :) | ||
Woodi | but when someone know concepts then he can "easy" learn or just understand other language.... | 16:50 | |
TimToady | and most of computer science education is tricking people into teaching themselves the concepts by revealing the surface syntax of a language and letting them grope towards the truth | 16:52 | |
there are exceptions of course, but they're exceptional | |||
arnsholt | Indeed. Doing it the proper way is so damn hard! | ||
PerlJam | TimToady: that is probably the most accurate description of computer science I have ever seen. | 16:53 | |
jnthn home | |||
Woodi had lectures from C then C++ then Java then Mono... | |||
err, C# :) | |||
16:54
orafu left
|
|||
Woodi | all courses include 'if's and 'while' what was wasting time... | 16:54 | |
Woodi point is to do not scary new incomers to much :) | 16:55 | ||
TimToady: humility == Achilles ? :) | |||
TimToady | sure, Achilles is humble *after* he had hubris :) | ||
16:56
wtw left
|
|||
TimToady | at least, that's how it tends to work out in GEB | 16:56 | |
16:56
orafu joined
|
|||
TimToady | but that's why I added an "er," after all | 16:56 | |
Woodi | i must re-learn story about hare and turtle to start parse :) | 16:57 | |
TimToady | you can either watch the cartoon about them, or just read GEB if you're in too much of a hurry | 16:58 | |
masak | I think you can parse it without knowing the story. you just can't assign values to the terms. :P | ||
masak decommutes | |||
TimToady | watch out for those unmatched brackets though | ||
Woodi understood that laziness and rest are "goals" :) | 17:00 | ||
or wishes :) | |||
TimToady | they are ideals that push us out of the zone of always doing it the same way we did before | 17:01 | |
mikemol | Woodi: You've got me thinking, now, about how best to demonstrate that knowing one or three useful langauges reasonably well won't necessarily make picking up a particular additional useful language. | ||
Best case I can think of is suggesting poking declarative languages like SQL or PROLOG. | |||
(Coming, as you do, from C, C++, C# and Java) | 17:02 | ||
TimToady | or Haskell, arguably :) | ||
Woodi | mikemol: first, I was saying about C-like. moving to Lisp like or other group is ofc harder | 17:03 | |
TimToady | in Haskell you have to declare when you're doing something non-declarative :) | ||
Woodi | and I ommit preferences like sigils or tabs :) | ||
TimToady | linguistically, I translate that to "Do I want my language to enforce noun markers, or require everything to be written as an outline?" | 17:04 | |
Woodi | however knowing concepts helps everywhere | ||
mikemol | TimToady: I thought of Haskell as a language to throw at people talking about language skill portability, but it seemed a softball if tossed to someone near Perl 6. | 17:11 | |
mikemol recalls the blog posts demonstrating translating Haskell syntax to Perl 6 syntax. | |||
moritz | TimToady: any objections to speccing a method form of make()? | 17:12 | |
that is, Match.make | |||
see the discussion starting at irclog.perlgeek.de/perl6/2012-02-03#i_5094252 for the rationale | |||
17:13
etneg joined
|
|||
TimToady | still haven't started backlogging <sniff> | 17:13 | |
etneg | so did rakudo finalise on the logo yet? | ||
17:13
chee is now known as Chee
|
|||
etneg | i know its been awhile but just wondering | 17:13 | |
looking at the rakudo site, it's still that old chinese thing up there | |||
TimToady | rakudo has had a logo for longer than Perl 6 | 17:14 | |
moritz | I don't think we've made any decisions on the logo | ||
etneg | no? | ||
would you be interested? | |||
i had sumitted designs before like a yr ago but then that was all on paper | |||
moritz | I dimly recall them, yes | ||
etneg | ye it was at a time i didnt know graphics, i think im ready to take on rakudo now:D | 17:15 | |
TimToady | maybe you should work one up for niecza :) | ||
etneg | whats that | ||
sure | |||
moritz | that's a new perl 6 compiler based on the CLR/mono | ||
17:15
Chee is now known as chee
|
|||
etneg | do you want one for that as well? | 17:15 | |
moritz | niecza: say "hi, it's me!" | ||
p6eval | niecza v13-389-g852f0ff: OUTPUT«hi, it's me!» | ||
etneg | i could do both if you want | ||
moritz | well, that's really sorear's decision, he's the main niecza author | 17:16 | |
and as for the rakudo logo, it's mostly pmichaud's decision | |||
etneg | ah k | ||
TimToady | this is a volunteer organization; we can't stop you from doing it, and we can't make other people accept what you do :) | ||
moritz | but if we like it better than what we have now, we'll take it :-) | 17:17 | |
etneg | right right but no point in doing it if there's no need for it, so best clarifying it first is a rational approach:D | ||
k | |||
i'll put together aa a few concepts then | |||
for niecza right? | |||
TimToady | at the moment niecza is more "in need" of a logo, in the sense that it doesn't have one yet | ||
etneg | ok | 17:18 | |
do you prefer a wordmark or an image? | |||
or web2.0? | |||
moritz | now we need sorear :-) | ||
17:18
icwiener left
|
|||
etneg | is there a meaning to niecza? | 17:18 | |
all im seeing is a bunch of xtian stuff regarding the word " niecza" | 17:19 | ||
or we could wait till sorear is present:D | 17:21 | ||
moritz | etneg: irclog.perlgeek.de/perl6/2010-06-30#i_2498653 | 17:22 | |
seems like we tried something czech, but didn't quite succeed :-) | |||
czech for "we don't have time" | 17:23 | ||
which alludes to the goal of making niecza a *fast* Perl 6 compiler | |||
TimToady: anyway, I'm speccing Match.make now, forgiveness > permission | 17:24 | ||
araujo so busy right now .... but .... | |||
dalek | ecs: 3154497 | moritz++ | S05-regex.pod: spec method form of &make the sub form just looks up whatever $/ it finds, which makes it unnecessary hard to work with multiple match objects at once, for example when doing regex matches in action methods |
||
etneg | moritz: so it means " we have no time" | ||
heh | |||
araujo | who is in charge of pugs atm?, who should I contact? | ||
etneg | right | ||
thats a tough one | |||
tadzik | araujo: try ingy, he was trying to resurrect it some time ago | ||
etneg | swirls to denote motion, followed by a nice typography of niecza comes to mind | 17:25 | |
araujo | tadzik, all right, thanks | ||
TimToady | most of the letters in niecza look like swirls already | ||
z is obviously a barred spiral galaxy | 17:26 | ||
etneg | oh so the typography would have to use characters like polish, etc? | 17:28 | |
TimToady | e and a are nearly rotationally symmetrical | ||
etneg | ah i see what you mean | 17:30 | |
but that would still depend on the font | |||
something like a sans serif font, easier to tweak to make the letters have some sort of motion | 17:31 | ||
fasad | hi #perl6 ! | ||
dalek | kudo/nom: 6a17a5e | moritz++ | src/core/Match.pm: implement Match.make |
17:32 | |
ast: 9a4df2d | moritz++ | S05-grammar/action-stubs.t: implement Match.make |
|||
moritz | argh, s/implement/test/ | ||
fasad | can someone define 'documentation'? #as it applies to a programming language | 17:33 | |
etneg | i'll see what i can come up with | 17:34 | |
see you guys in a bit, tx moritz , TimToady | |||
moritz | fasad: it's a bunch of media (text, possibly images, videos, ...) that you read to understand the language | ||
s/read/consume/ | |||
fasad | hmm... but... ok, define 'official documentation' :) | 17:36 | |
TimToady | documentation that is supposed to be correct because it comes from the people who ought to know that :) | 17:37 | |
moritz | it's the documentation that we've decided to call "official" | ||
fasad: a better explanation would probably "like perl 5's *.pod files" | 17:38 | ||
which comes with a mixture of tutorials and references | |||
17:39
alvis joined
|
|||
moritz | for example perlretut is an introduction to regexes and how to use them, while perlre describes the various regex features in detail | 17:39 | |
fasad | what about the writing style? here's is my understanding: tut's can have humour, informal writing style; while references are dry, to the point, have only one example for each point, comprehensive, and not dumbed down | 17:46 | |
s/here's/here | 17:47 | ||
moritz | mostly yes (though I don't necessarily agree with the "only one example") | ||
feedback from the users will show which docs need more examples | |||
fasad | plus, tut's can have some kind of ownership, each author may have his own writing style & wud not like it being touched; while references are neutral so no kind of ownership | 17:50 | |
*would | |||
moritz | we usually operate under the assumption that the community will maintain all the docs eventually | 17:51 | |
so if the original author isn't around anymore, we'll continue to use and develop his stuff, even if he feels it violates his style :-) | 17:52 | ||
17:52
kaleem joined
17:53
kaleem left
|
|||
TimToady | I prefer to put jokes into reference material :) | 17:53 | |
17:54
flussence joined
|
|||
fasad | one more thing, IMO reference material does not give you any advie on programming practice, (it treats everything equally), except security advice maybe | 17:56 | |
fasad afk | |||
18:01
flussence left
18:02
flussence joined
|
|||
[Coke] | b: say 19593 - 19489 # 02/03/2012 - niecza at 99.46% | 18:06 | |
p6eval | b 1b7dd1: OUTPUT«104» | ||
18:06
phenny left
|
|||
[Coke] | no change in last 2 days. at all. | 18:07 | |
moritz | [Coke]: I've just pushed a test that passes on rakudo (but not niecza) :-) | 18:08 | |
jnthn | 105 :) | ||
jnthn had a quick nap and now seems to have a little energy again :) | 18:09 | ||
colomon | moritz: :p | 18:11 | |
moritz | colomon: but it was kinda cheating, because I just invented, specced and implemented that feature :-) | ||
colomon | yes, I know | ||
you really shouldn't tempt me that way. ;) | |||
dalek | ast: 06bfb6e | moritz++ | S10-packages/joined-namespaces.t: RT #71260, calling methods on packages that are autovivified by declaring multi-joined classes |
18:13 | |
moritz | niecza: sub f() { for ^1 { } }; say f | 18:15 | |
p6eval | niecza v13-389-g852f0ff: OUTPUT«Nil» | 18:16 | |
moritz | niecza: sub f() { for ^1 { } }; say ~f | ||
p6eval | niecza v13-389-g852f0ff: OUTPUT«» | ||
dalek | ast: 8b33523 | moritz++ | S04-statements/for.t: RT #71270, simple case of list comprehension |
18:17 | |
moritz | std: @_ | 18:18 | |
p6eval | std 48335fc: OUTPUT«===SORRY!===Placeholder variable @_ may not be used outside of a block at /tmp/OTOtLaDkwY line 1:------> <BOL>⏏@_Check failedFAILED 00:01 108m» | ||
dalek | ast: d5ac5a6 | moritz++ | S32-exceptions/misc.t: RT #73502, @_ in the mainline |
18:19 | |
18:20
bluescreen10 left,
bluescreen10 joined
|
|||
dalek | p/bs: d8b49c3 | jnthn++ | t/serialization/02-types.t: Test for serializing a P6opaque/knowhow based type with native attrs; also tests serializing NQPAttribute. |
18:22 | |
p/bs: 6880263 | jnthn++ | src/6model/serialization.c: Hack to handle Undef, which we didn't yet kill in NQP. |
|||
ast: ed9af51 | moritz++ | S32-basics/warn.t: RT #73768, ~Any should warn |
|||
TimToady | split /<at(1)>/ strikes me as a really lousy way to pull off the first character unless the optimizer is really clever about not checking <at(1)> over the whole rest of the string | ||
etneg | ok | 18:23 | |
TimToady moritz i44.tinypic.com/10i808y.png | |||
let me know what you think, just a quick wordmark logo | |||
brb | |||
moritz likes the middle one | 18:24 | ||
std: my $A::b | |||
p6eval | std 48335fc: OUTPUT«ok 00:01 108m» | ||
moritz | TimToady: should that die? | ||
TimToady | something a little strange about the vertical kerning | ||
moritz | putting something in a namespace in a *lexical* declaration feels wrong | 18:25 | |
TimToady | global packages are assumed to exist, but you can't really know it till link time | ||
oh, the my | |||
it's declaring a lexically-scoped A package, I think | 18:26 | ||
jnthn | Yeah, that'd be consistent with my class A::B { ... } | ||
TimToady | std: my $A::b; UNIT::<$A::b> | ||
p6eval | std 48335fc: OUTPUT«===SORRY!===Variable UNIT::<$A::b> is not predeclared at /tmp/C5TS1BWP1w line 1:------> my $A::b; ⏏UNIT::<$A::b>Check failedFAILED 00:01 109m» | ||
moritz | nom: my $A::b = 3; say $A::b | ||
p6eval | nom 6a17a5: OUTPUT«3» | ||
jnthn | nom: { my class A::B { }; }; say A::B | 18:27 | |
p6eval | nom 6a17a5: OUTPUT«Could not find symbol 'A::&B' in block <anon> at /tmp/PDM1xTnclk:1 in <anon> at /tmp/PDM1xTnclk:1» | ||
moritz | nom: { my $A::b = 3;}; say $A::b | ||
p6eval | nom 6a17a5: OUTPUT«3» | ||
jnthn | Er. | ||
moritz | seems not so lexical to me :-) | ||
TimToady | niecza: { my $A::b = 3;}; say $A::b | ||
p6eval | niecza v13-389-g852f0ff: OUTPUT«===SORRY!===:: syntax is only valid when referencing variables, not when defining them. at /tmp/dM3zOtex33 line 1:------> { my $A::b ⏏= 3;}; say $A::bPotential difficulties: $b is declared but not used at /tmp/… | ||
jnthn | Yes, I was rather surprised that it did anything, given I didn't remember implementing it :) | ||
moritz | ah, niecza++ forbids it outright | 18:28 | |
+1 to that | |||
TimToady | I'm quite sure STD is not declaring a global package | ||
moritz | because it's really monkey-patching into another package | ||
TimToady | std: my $A::b; my UNIT::A $foo; | 18:29 | |
p6eval | std 48335fc: OUTPUT«===SORRY!===Malformed my at /tmp/3ujpFolPOL line 1:------> my $A::b; my UNIT::⏏A $foo; expecting indirect nameParse failedFAILED 00:01 108m» | ||
TimToady | hmm | ||
18:30
MayDaniel joined
|
|||
TimToady | std: my $A::b; UNIT::A | 18:30 | |
p6eval | std 48335fc: OUTPUT«===SORRY!===Undeclared name: 'UNIT::A' used at line 1Check failedFAILED 00:01 109m» | ||
TimToady | maybe it broke somewhere | 18:31 | |
std: my $A::b; UNIT::A::{'$b'} | 18:32 | ||
p6eval | std 48335fc: OUTPUT«===SORRY!===Variable UNIT::A::{'$b'} is not predeclared at /tmp/eLv8FTbvGw line 1:------> my $A::b; ⏏UNIT::A::{'$b'}Check failedFAILED 00:01 110m» | ||
TimToady | std: my $A::b; A::{'$b'} | ||
p6eval | std 48335fc: OUTPUT«ok 00:01 109m» | ||
TimToady | std: my $A::b; GLOBAL::A::{'$b'} | 18:33 | |
p6eval | std 48335fc: OUTPUT«===SORRY!===Undeclared name: 'GLOBAL::A::' used at line 1Check failedFAILED 00:01 110m» | ||
TimToady | not there either :) | ||
std: my $A::b; MY::A::{'$b'} | |||
p6eval | std 48335fc: OUTPUT«===SORRY!===Variable MY::A::{'$b'} is not predeclared at /tmp/FCiO7HCKHp line 1:------> my $A::b; ⏏MY::A::{'$b'}Check failedFAILED 00:01 110m» | ||
TimToady | well, enough spamming | ||
18:35
Chillance joined
|
|||
dalek | ast: 87f3d51 | moritz++ | S04-statements/for.t: RT #74060, statment modifying "for" in list comprehension |
18:35 | |
ast: 3ee43f2 | moritz++ | S04-statements/for.t: fix logic error in previous commit. Ooops. |
18:37 | ||
moritz | perl6: nextsame | 18:38 | |
p6eval | pugs b927740: OUTPUT«*** No such subroutine: "&nextsame" at /tmp/eSZC1PVReq line 1, column 1 - line 2, column 1» | ||
..rakudo 6a17a5: OUTPUT«No dispatcher in scope in block <anon> at /tmp/reQP4BwVdY:1 in <anon> at /tmp/reQP4BwVdY:1» | |||
..niecza v13-389-g852f0ff: OUTPUT«Unhandled exception: Illegal control operator: nextsame/nextwith at /home/p6eval/niecza/lib/CORE.setting line 1375 (nextsame @ 3)  at /tmp/a9QUNEEpCt line 1 (mainline @ 2)  at /home/p6eval/niecza/lib/CORE.setting line 3606 (ANON @ 3)  at /home/p6e… | |||
TimToady | rakudo's error is the most awesomest | 18:39 | |
moritz | aye | ||
TimToady | though could mention 'nextsame' specifically | ||
something a bit odd about saying a dispatcher can be 'in scope', when it's more like 'in surrounding scope' | 18:41 | ||
"scope" is one of those overloaded words we use to look two different directions | 18:42 | ||
in the other sense, the dispatcher is *outside* the scope | |||
jnthn handwaves :) | |||
TimToady | "nextsame is not in the dynamic scope of a dispatcher" | ||
I'm only being picky because it's so close to awesome :) | 18:43 | ||
it's just a really good thing when error messages can actually teach you to think of it precisely without being irritating | 18:44 | ||
jnthn suddently gets a terrible feeling of uncertainty over whether nextsame in Rakudo is looking along the dynamic or static chain. | |||
TimToady | but if you can't have both, it's better to be irritating and precise | 18:45 | |
jnthn will look once he gets the re-calculation of P6opaque layouts on deserialization sorted out... | |||
TimToady | I think it wouldn't work at all if it were static :) | 18:46 | |
by definition you call a dispatcher which calls something else | |||
jnthn | oh, huh, my code compiled *and* passed the tests the first time and I didn't even have any beer yet today... | ||
moritz | jnthn: that means it has only one nasty bug hidden deep inside that we'll spend weeks debugging in about half a year :-) | 18:47 | |
jnthn | \o/ | ||
:P | |||
Sorry for coding before beer :P | |||
dalek | p/bs: 5a69d3e | jnthn++ | src/6model/reprs/P6opaque.c: Recalculate various bits of P6opaque's layout data on deserialization. This fills in all the missing gaps, and means we should have no problem when we serialized on a machine with one word size and deserialize on one with another. Hopefully. :-) |
18:48 | |
etneg | back | 18:49 | |
moritz: so the middle one? | 18:50 | ||
moritz | etneg: IMHO yes, but remember that it's sorear's opinion that counts | ||
etneg | oh ye ill do more | ||
jnthn | TimToady: Ah, phew: /* Follow dynamic chain. */ | ||
:) | |||
dalek | ast: e296115 | moritz++ | S06-multi/positional-vs-named.t: RT #78738, dispatch of multis with empty and with mandatory named params |
||
etneg | whatswrong with the one on the left on the dark bg? | ||
moritz | nothing, I just don't like it as much | 18:51 | |
etneg | ah ok | ||
well the left and the bottom is for the same logo just in different schemes | 18:52 | ||
18:52
tarch left,
Chillance left
|
|||
etneg | some people like a b&w for print only and so forth | 18:52 | |
18:53
Chillance joined
|
|||
etneg returns to the drawing board | 18:53 | ||
TimToady | moritz: if you want to be an aesthetic critic, you have to be able to say why you don't like something :) | ||
etneg | heh | ||
moritz | TimToady: I don't want to be one; I'm just thrown into that role by being asked for my opinion :-) | ||
TimToady | I don't like the upper case, I don't like the difference in whitespace above and below, and I don't really like the angles at the ends | ||
moritz | why? :-) | 18:54 | |
TimToady | the reason I don't like the uppercase is that it's always lower here :) | ||
etneg | ah | ||
moritz | perl6: sub ($a? is rw) { } | ||
p6eval | niecza v13-389-g852f0ff: OUTPUT«Potential difficulties: $a is declared but not used at /tmp/9qlLK9lbWI line 1:------> sub (⏏$a? is rw) { }» | ||
..rakudo 6a17a5: OUTPUT«===SORRY!===Cannot use 'is rw' on an optional parameter» | |||
..pugs b927740: ( no output ) | |||
18:54
japhb_ left
|
|||
TimToady | and it looks too much like a TRADEMARK® | 18:54 | |
moritz | perl6: sub (*@a is rw) { } | ||
p6eval | niecza v13-389-g852f0ff: OUTPUT«Potential difficulties: @a is declared but not used at /tmp/vu3JCjEiy6 line 1:------> sub (*⏏@a is rw) { }» | ||
..pugs b927740, rakudo 6a17a5: ( no output ) | |||
etneg | well thats what im aiming for, trademark is unique | ||
logos fit into that scheme of things | 18:55 | ||
TimToady | the difference in whitespace sets off my bad-kerning neurons | ||
etneg | there's kerning issues? | ||
TimToady | vertical | ||
moritz | so according to rakudo, optional params cannot be rw-ed, but slurpy ones can? | ||
etneg | where exactly | ||
TimToady | the top swash is closer than the bottom | ||
that's "kerning" too | |||
etneg | oh | ||
TimToady | it's just vertical kerning | ||
etneg | well i wanted the swirls to be a il different | 18:56 | |
jnthn | moritz: I think the optional thing was in response to an RT. :) | ||
etneg | uniformity is boring | ||
:P | |||
jnthn | moritz: The one you're probably about to write a test for :P | ||
moritz | jnthn: correct. | ||
etneg | only wanted it to be uniform in the sense it's perl6 and therefore the 3 on top and 3 below | ||
moritz | jnthn: I just wonder if I should throw a typed exception, and if yes, if it should generalize to other cases too | ||
TimToady | yes, but when you combine uniformity with non-uniformity in art, it has to look inevitable; this doesn't | 18:57 | |
anyway, I'd see if I can get something that flows out of the lowercase letters better than the uppercase | |||
(that's obviously an editorial I, not a royal I :) | 18:58 | ||
but don't let me speak for sorear++ | 18:59 | ||
(except to the extent that I always take it upon myself to speak for everyone...) | 19:00 | ||
19:01
kmwallio left
|
|||
colomon | moritz++ # just realized he add a fudge for niecza with his new test. :) | 19:01 | |
19:01
kmwallio joined
|
|||
etneg | bqack sorry had a call | 19:03 | |
i'll try with lower letters and see | 19:04 | ||
19:04
raiph joined
|
|||
etneg | is there another context for niecza? | 19:06 | |
like does it need to say perl6 or something? | 19:07 | ||
raiph | phenny: tell fasad irclog.perlgeek.de/perl6/2012-02-03#i_5094173 | 19:09 | |
19:10
slavik left
|
|||
dalek | ast: 1808a5d | moritz++ | S03-binding/scalars.t: RT #89484, interaction between signature binding and := binding |
19:11 | |
colomon | etneg: are you having trouble getting niecza running? | 19:12 | |
dalek | kudo/nom: a47a56a | jnthn++ | src/ (2 files): Improve error reporting for nextsame and friends when they are used with no dispatcher in the dynamic scope; TimToady++. |
19:13 | |
[Coke] | colomon: he's making a logo. | ||
colomon | [Coke]: ah | 19:14 | |
etneg: never mind, excuse me! :) | |||
jnthn | moritz++ # down below 650 open tickets, and testneeded significantly below 100 \o/ | 19:15 | |
moritz | 82 :-) | ||
fasad is back | 19:16 | ||
19:16
am0c joined
|
|||
fasad | raiph: so i looked at them... | 19:17 | |
raiph | googled "how to use phenny" on the off chance it'd match. got "She is a chatbot - more specifically a warbot. This means that she can signal the start and end of a wordwar" | 19:20 | |
fasad | heh | ||
masak | o.O | 19:21 | |
etneg | colomon: no | ||
fasad | so i'm biased towards having a wiki, though not the current perl6 wiki | ||
etneg | k | ||
:D | |||
19:21
prammer left
19:22
prammer joined
|
|||
raiph | fasad: +1 | 19:22 | |
dalek | ast: aa6dff6 | moritz++ | S05-mass/stdrules.t: unfudge <!> tests for rakudo |
||
fasad | raiph: Some advantagesof Wiki: 1. Is searchable, easy to edit (& gives instant post-editing result), and all the oh-so-many advantages which come with a Wiki. | 19:23 | |
2. We can have a pretty documentation, with pictures/diagrams, videos, audio, (imagine the Rakudo page having diagrams explaining its working; or the 'image processing with perl6' page...) | |||
3. Perl6 hackers can have userpages, which enables them to have user-pages (a profile-like page), also have user-sub-pages, so every Tom, Dick & Harry dosen't need to set up a blog | |||
4. Each page has a talk page, so can separate the discussions regarding each perl6 topic, instead of having them all on one place. e.g. the talk page for "array" can be the place for people to ask doubts related to arrays and to discuss the documentation itself | 19:24 | ||
eviltwin_b | didn't audrey have something to say about wikis? | ||
fasad | some disadvantages: | ||
1. Will be open to every Tom, Dick & Harry, so chances of vandalism | |||
moritz | and spam | 19:25 | |
fasad | 2. Yet another username and password to remember :( (however solutions like OpenID exist) | ||
3. Editors will need to learn to use the Wikimarkup language. (as if learning Perl 6 (& POD6) was not enough!) (however, is there anyone hasn't edited Wikipedia at least once? ;-) | |||
* who hasn't... | |||
eviltwin_b waves | |||
fasad | 4. Will be hard to make an "official documentation" (however solutions do exist like protecting community-identified official 'documentaion' pages) | 19:26 | |
fasad should really make a document on his thoughts on perl6 documentation | |||
19:27
slavik joined
|
|||
moritz | some points I'd like to make | 19:27 | |
fasad | eviltwin_b: what did audrey have t say ? | ||
moritz: sure | |||
moritz | 1) choice of wiki vs not wiki doesn't have any influence on whether we allow images or not | 19:28 | |
(sorry, being called away, will continue later) | |||
fasad | moritz: ok | ||
eviltwin_b: *to | 19:29 | ||
raiph | fasad: when i say "wiki" i mostly mean the spirit of ward's original. wiki wiki means "quick". | ||
fasad: i would expect us to adopt Pod | 19:30 | ||
fasad: github's wiki (gollum) would let us use Pod (if we write the parser) | 19:31 | ||
#perl6: am i right in saying that parsing Pod doesn't require a full Perl 6 parser? | 19:32 | ||
fasad | raiph: actually i'm very experienced with Wiki that's why have a bias :) | ||
raiph: github.com/features/projects/wikis says that POD is supported | |||
raiph | fasad: POD and Pod are different | ||
fasad is googling | 19:33 | ||
eviltwin_b | my network is sucking :/ | 19:34 | |
I was being snarky. "<lopbot> audreyt says: I think wiki in the original Hawaiian means "I can't find any damned thing"" | |||
fasad can't find the right keyword to google | 19:36 | ||
raiph: um, whats's the difference | |||
raiph | fasad: p5 vs p6 | ||
fasad: Pod's a rewrite of POD | 19:37 | ||
fasad | duh,:) | 19:38 | |
fasad is reading S26 | |||
dalek | p/bs: 8e4727f | jnthn++ | t/serialization/02-types.t: Tests for creating a new instance of a deserialized type. |
19:39 | |
p/bs: 1b1ed1e | jnthn++ | src/6model/reprs/P6opaque.c: Write barrier, Justin Case. |
|||
p/bs: 1aece91 | jnthn++ | src/6model/ (2 files): Actually, barrier in serialization code. |
|||
p/bs: bd58479 | jnthn++ | src/6model/reprs/P6opaque.c: Set missing sentinels. |
|||
raiph | eviltwin_b: ha! | ||
fasad | raiph: yeah, i agree that not writing perl6's documentation in Pod send's out the wrong signal to the world ;-) | 19:41 | |
TimToady | and not writing the wiki engine in Perl 6 is also a bit problematic that way too... | 19:42 | |
raiph | right now i'm enamoured of going gollum | 19:43 | |
TimToady | and obviously we just need a web-based IDE that will not allow people to think incorrect thoughts, and then it doesn't matter if you can embed Perl 6 code in the page :) | ||
19:47
mj41 joined,
birdwindupbird joined
|
|||
raiph | phenny: tell raiph how to speak to you so you hear him | 19:49 | |
fasad | rakudo: say "phenny we miss you !"; | 19:51 | |
moritz | some more points: * remember that the web is not the only way to consume docs (see: perldoc) | ||
p6eval | rakudo a47a56: OUTPUT«phenny we miss you !» | ||
raiph | moritz: gollum works offline as well as on | 19:52 | |
moritz | * wikis are advantagous for drive-by edits, while storing stuff in a proper repo gives advantages to the core contributors. Who writes most of the docs? | ||
raiph | gollum is both | 19:53 | |
moritz | raiph: I'm not arguing pro or contra gollum, just making some general points | ||
raiph | moritz: right. (and i agree with them) | ||
moritz | * one should consider (and avoid) lock-in | 19:55 | |
* linkability / nice URLs are important | 19:56 | ||
fasad | moritz: lock-in ? | 19:57 | |
TimToady | every language is a dialect of Perl 6, so there's no lock-in possible :P | 19:58 | |
raiph | fasad: the content formats and their assumptions about software to read and write them. eg if you go mediawiki, well, ug. | ||
20:01
cognominal left
|
|||
mikemol | TimToady: I think you've got that reversed. :) | 20:07 | |
mikemol gets the joke | 20:12 | ||
ingy | hi mikemol | 20:16 | |
mikemol | hi ingy. :) | ||
Weren't you going to be driving through GRR some time back? | |||
Also, not sure if I ever told you I got your post card. :) | 20:17 | ||
raiph | \o ingy | ||
ingy | mikemol: you mean my post code? | 20:18 | |
hi raiph | |||
hi TimToady | |||
TimToady: tell glo I made it home with little event after all that... :) | 20:19 | ||
mikemol | ingy: Wasn't it you who sent me a post card? I got one...thought I remembered it as being from you. | ||
ingy | it was a post *code*! | ||
mikemol | The written portion began with "use RosettaCode;" | ||
ah | |||
-.- | |||
ingy | from Oz | ||
mikemol | har har. | ||
ingy | iirc :) | ||
mikemol is terribly slow on the uptake today. | 20:20 | ||
ingy | mikemol: you need to step up your uptake when TimToady's around! | ||
mikemol | Not sure he's finished backlogging yet. | 20:21 | |
TimToady | I'm sure he's not... | ||
ingy | XD | ||
raiph | ingy: a couple of us (fasad and I) are playing with the idea of cooking goulash with P6 docs | ||
20:21
phenny joined
|
|||
raiph | ingy: i like github's gollum. and using Pod. what about kwid? | 20:22 | |
ingy | raiph: invite me to dinner | ||
raiph: hmm. | |||
araujo | hi ingy , I was told you are current Pugs maintainer ... how true is that? ;) | ||
ingy | muhahaha | ||
raiph | bbi5 | ||
20:23
bluescreen10 left
|
|||
ingy | not really so true but I'd wear that hat for a bit if needed | 20:23 | |
20:23
MayDaniel left
|
|||
ingy | raiph: I have a todo to add *kwim* support to github. | 20:23 | |
TimToady | .oO(kill what I mean) |
20:24 | |
araujo | ingy, well, just wanted to know current status of the project, and if you have some web link around for it | ||
ingy | github.com/perl6/Pugs.hs | ||
20:24
mtk left
|
|||
ingy | :) | 20:25 | |
Merge branch 'master' into perl6 | |||
commit 08f0e5052c | |||
audreyt authored about 6 hours ago | |||
nice | |||
20:26
mtk joined
|
|||
ingy | audreyt**ఴ | 20:27 | |
er | |||
audreyt**τ | 20:28 | ||
:D | |||
20:33
birdwindupbird left
20:34
birdwindupbird joined
20:35
bluescreen10 joined
|
|||
araujo | ingy, yeah I saw the update :P | 20:41 | |
ingy | raiph: kwim (know what I mean/Kwiki Markup) is my idea to take the best of the Socialtext Markup (previously maintained by me, currently maintained by audreyt), Kwid and other. It will be defined by a *model* rather than a syntax. The model of focus is close to the model of html that you can create inside a gmail editor richtext mode. | ||
20:42
pochi_ left
|
|||
raiph | ingy: not important, but is it wikicreole 1 or 2 compat? | 20:42 | |
ingy: dumb q. model, not syntax | 20:43 | ||
20:46
pochi joined
20:47
icwiener joined,
icwiener left,
icwiener joined
20:51
cooper left,
zby_home_ left
20:52
cooper joined
20:56
pmurias joined
20:59
cooper left
21:01
chee left
21:05
GlitchMr left,
am0c left
|
|||
sorear | good * #perl6 | 21:07 | |
colomon | o/ | 21:08 | |
sorear | looks like a lot of stuff for me in backlog | ||
21:09
jaldhar left
|
|||
sorear | 05:38 * masak dreams of the day when the Rakudo/Niecza optimizers take code written as junctions and turns it into something that runs fast | 21:10 | |
masak: I thought about that once, but it turns out junctions are the fastest way to write quite a few things, so it wouldn't be an optimization :D | 21:11 | ||
masak: re. "significantly faster" - my best guess is JIT-cache involvement in Mono | 21:13 | ||
21:14
erana_ left
21:28
kmwallio left
|
|||
sorear | etneg: I like the middle one best too, but I'm interested to see what becomes of TimToady's concerns. | 21:30 | |
Also, I need somewhere to put it. :D | |||
21:31
am0c joined
21:34
birdwindupbird left
21:36
snearch left
|
|||
etneg | sorear: uploading | 21:40 | |
i39.tinypic.com/10p9d9e.png | 21:42 | ||
masak | sorear: what about something like 'return if any(@stuff) == any(@things)', which should really desugar to nested for loops which return ahead of time if equality is found, rather than run to completion? | 21:44 | |
dalek | kudo/stdinit: ae89311 | jnthn++ | src/Perl6/Grammar.pm: Align variable_declarator more closely with STDs. |
21:47 | |
kudo/stdinit: f57e879 | jnthn++ | src/Perl6/Grammar.pm: Align 'scoped' more closely with STD. |
|||
kudo/stdinit: 00ffb42 | jnthn++ | src/Perl6/ (2 files): Replace $*TYPENAME with $*OFTYPE, to match STD's naming/scoping of it. |
|||
kudo/stdinit: a2aef0e | jnthn++ | src/Perl6/Actions.pm: Sync declarator action method with grammar change. |
|||
masak read that last commit message as "hot declarator action!" | 21:49 | ||
jnthn | o.O | 21:50 | |
sorear | masak: :D actually that should use a hash table and .Numeric | 21:52 | |
masak | sorear: I realized that after hitting Enter... :) | ||
my point remains. sometimes it's possible to rewrite junctive expressions into more efficient for loops. | 21:53 | ||
21:56
tarch joined
|
|||
jnthn | std: constant $x .= foo(); | 21:56 | |
p6eval | std 48335fc: OUTPUT«ok 00:01 108m» | ||
jnthn | TimToady: Was allowing .= for constant intentional when doing the initializer changes? | 21:57 | |
(before we only allowed assignment to follow) | 21:58 | ||
21:58
cooper joined
|
|||
etneg | TimToady, moritz sorear let me know what you think | 21:58 | |
sorear | I think it looks a little too much like the MSDN logo. | 22:01 | |
etneg | no way! | 22:02 | |
because they used a circular halftone ? | |||
22:03
kaare_ left
|
|||
etneg | if you think its similar to _you_ well then i cant argue that.i'll put together something else | 22:04 | |
before i proceed for another concept, what do you have in mind? abstract? or do you have a concept in mind that you want portrayed in the logo? | 22:05 | ||
cause right now im just randomly doing this just based on the fact it's a | |||
c"compiler" and is called niecza | |||
more context would help so i can go in that direction | 22:08 | ||
masak | ingy: wasn't kwid already defined by a model rather than by syntax? | ||
etneg: I liked your first one a lot more than this iteration. far too much stuff going on in this one. | 22:09 | ||
etneg | masak: ah ok | 22:10 | |
sorear | MSDN logo is a deformed surface in 3-space with a multicolored circular halftone, accompanied by a lettertype | ||
masak | etneg: here's some random inspiration :) gist.github.com/1733148 | ||
do with it what you like. | 22:11 | ||
etneg | masak: i'll look into that idea of yours as well | ||
masak | \o/ | ||
etneg | the MSDN logo has a halftone, thats all is the similarity, there are zillion logos that use a halftone and also the illusion of 3d in the MSDN logo is sort of warped but thats my opiion of it | 22:12 | |
but what would you like as a concept? | |||
masak | I know! a green Sonic the hedgehog! | ||
(because Niecza is pretty fast) | |||
etneg | so a mascot then? | 22:13 | |
masak | I'm... reluctant to suggest a mascot for Niecza. because if it got one, Rakudo really wouldn't have any chance anymore :) | ||
people would just flock around the implementation with the cute mascot. | |||
22:14
icwiener left
|
|||
flussence | I dunno, Chrome's doing pretty well with just a beachball | 22:14 | |
sorear | and it's not even the beachball mascot from Dark Star | ||
masak | beachballs work quite well with Google's kindergarten color scheme. | 22:15 | |
Niecza is any of the following things: a flash, a spaceship, a raygun, a ninja, a tornado. | 22:16 | ||
masak .oO( or just a spaceship full of raygun-carrying ninjas in a tornado thunderstorm ) | 22:17 | ||
flussence | a spinning beachball! (oh wait, that's not a very good choice...) | ||
masak | :) | ||
etneg | maybe you guys can put together concepts you like and mail it over? | 22:19 | |
22:21
skids left
|
|||
sorear | my earlier comment stands - a logo is not much use unless I can stick it on a website, and I haven't come up with enough content for a website yet | 22:24 | |
etneg | ok | ||
masak | etneg++ # thinking about Niecza logo | 22:25 | |
22:27
raiph left
|
|||
etneg | wont be needing one for awhile till the site is up, makes sense though:D | 22:27 | |
dalek | kudo/stdinit: 571fb1e | jnthn++ | src/Perl6/Grammar.pm: Add new initializer tokens to the grammar; not using them anywhere yet. |
22:35 | |
kudo/stdinit: 9257ce9 | jnthn++ | src/Perl6/ (2 files): Start updating constant declarator to use <initializer>; add various initializer action methods. |
|||
jnthn | That'll do for today. :) | 22:36 | |
22:43
ashleydev left
|
|||
masak | jnthn++ | 22:46 | |
blog post! \o/ strangelyconsistent.org/blog/t1-exp...four-nines | 22:49 | ||
it is *on*. | |||
y'all can thank moritz++ for the t1 blog post appearing as swiftly as it has. I've been far too busy with $dayjob and stuff, but moritz has been diligently working in the background, benchmarking programs, writing test harnessi and crafting reviews. | 22:50 | ||
in a similar vein, the t2 post should be appearing in just a few days. | 22:51 | ||
etneg | masak: ah the concept you sent was the direction i was going for | 22:52 | |
trying to squeeze in "perl 6" or just something symbolizing "6" and niecza | |||
22:52
bluescreen10 left
|
|||
masak | etneg: the butterfly symbolizes Perl 6, if that helps. | 22:52 | |
but really, don't try to cram too much into the logo. | 22:53 | ||
etneg | yes but i didnt wanna incorporate that into niecza because i dont know the licence for the perl6 logo | ||
infact the last one with the halftone, the idea for the multicolored was t use the colors from the butterfly | |||
but i used random colors in total 6 just for the time being | |||
i guessi'll keep up with niecza's development and when the site is up i guess we could work out something | 22:55 | ||
22:56
ashleydev joined
|
|||
felher | moritz++ , masak++ # for all the great p6cc work and latest blogpost :) | 23:00 | |
23:09
bluescreen10 joined
23:11
pmurias left
23:12
pmurias joined
|
|||
TimToady | moritz: why does a search of the irclog for 'div' return nothing? | 23:19 | |
(I recall someone asking if 'div' was okay, and getting a positive answer...) | 23:21 | ||
23:28
whiteknight joined
|
|||
masak | TimToady: ISTR three-letter words or shorter are simply ignored. don't ask me why. | 23:29 | |
TimToady | that would explain why I couldn't find GTK earlier either :/ | 23:34 | |
the feedback is LTA | |||
23:34
skids joined
|
|||
jnthn | Well, yeah...it doesn't know what LTA is either :P | 23:35 | |
TimToady | and it should really throw out frequent words, not short words | ||
unfortunately LTA is a bit frequent too :) | 23:36 | ||
23:36
tarch left
23:46
mj41 left
23:52
am0c left
|
|||
masak | it should just search for all words entered, with no silent eliminations. | 23:55 |