»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend! Set by lichtkind on 5 March 2010. |
|||
00:03
f00li5h left
|
|||
jnthn | Phew, finished writing one of my presentations for next week. | 00:07 | |
lue | \o/ | 00:10 | |
rakudo: class A { method WHAT { "B" } }; A.new.WHAT.say | 00:14 | ||
p6eval | rakudo 8c434e: OUTPUT«B» | ||
lue | still wrong :) | 00:15 | |
(afk) | |||
00:15
astrojp left
|
|||
jnthn | I'm still half-hearted about changing that one. We didn't specify the mechanism by which people can implement their own kinds of type objects and stuff just yet... | 00:17 | |
Uppercase + method name may be enough. | 00:18 | ||
(To denote that it's special.) | |||
Guess I don't grok the motivation for them being macros yet. | 00:19 | ||
pausenclown | rakudo: class Bar { subset Foo of Num where { say "--"; $_ ~~ 1|2 }; has Foo $.foo is rw; }; my $bar = Bar.new; $bar.foo = 3; say $bar.foo | 00:23 | |
p6eval | rakudo 8c434e: OUTPUT«3» | ||
pausenclown | shouldnt that croak? | ||
00:23
wolf2k_ubuntu joined
|
|||
jnthn | yup | 00:26 | |
pausenclown | rakudo: class Bar { has Foo $.foo is rw where { say "--"; $_ ~~ 1|2 }; }; my $bar = Bar.new; $bar.foo = 3; say $bar.foo | 00:27 | |
p6eval | rakudo 8c434e: OUTPUT«In "has" declaration, typename Foo must be predeclared (or marked as declarative with :: prefix) at line 11, near " $.foo is "current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
pausenclown | rakudo: class Bar { has Num $.foo is rw where { say "--"; $_ ~~ 1|2 }; }; my $bar = Bar.new; $bar.foo = 3; say $bar.foo | 00:28 | |
p6eval | rakudo 8c434e: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 11current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (ext/nqp-rx/src/stage0/Regex-s0.pir:907)» | ||
00:32
payload joined,
pausenclown left,
payload1 joined,
payload left
00:42
yinyin joined
00:45
ash__ joined
00:53
wknight8111 left
00:58
PZt joined
01:10
Limbic_Region joined
|
|||
Limbic_Region | salutations all | 01:11 | |
diakopter | hi | 01:17 | |
TimToady | Limbic_Region: o/ | 01:18 | |
01:23
stephenlb left
01:30
frzntoz joined
01:44
nihiliad joined,
frzntoz left
01:49
molaf_ joined
01:53
molaf left
01:54
alester joined
01:56
Psyche^ joined
|
|||
ash__ | so.... scoping.... when you define a variable, say my $foo; then do something like sub bar() { $foo }; those are defined during the same lexpad, correct? you wouldn't change lexpads until you CALL a function, or your current block ends, right? | 01:57 | |
01:59
Patterner left,
Psyche^ is now known as Patterner
|
|||
ash__ | no.... that doesn't work... because you could do my $foo inside sub bar() { ... } | 02:01 | |
and never realize they were two different $foo's or the same $foo | 02:02 | ||
hmmm | |||
02:09
TiMBuS left
02:12
meppl joined
02:13
Limbic_Region left
|
|||
diakopter | TimToady: viv --p6 seems to be truncating the last character or two | 02:15 | |
on windows. lemme try turning on autoflush.. | |||
02:16
PZt left
|
|||
diakopter | that didn'tfix it | 02:18 | |
hrm | 02:20 | ||
perl viv --log --p6 -e "my $a; say $a;" | 02:22 | ||
... | |||
comp_unit returns my $a; say $a; | |||
my $a; say $ | |||
02:24
eternaleye left
02:25
colomon joined
02:38
christine left
02:40
christine joined
02:46
eternaleye joined
|
|||
diakopter | yeah it's just the final two chars of the output | 02:58 | |
no matter what I enter | 02:59 | ||
03:07
k23z__ joined
|
|||
sorear | How is { } in while condition { #( NO CODE HERE ) } distinguished from an empty hash constructor? | 03:12 | |
just TTIAR, or something more special? | |||
ash__ | as in: while $b { return a => $b } vs while $b { a => $b } | 03:14 | |
one returns a pair, the other is a hash (but its the last statement, so it might return a pair?) | |||
in truth, i think all brackets after a condition are treated as function bodies | 03:15 | ||
in nqp, while condition { } always treats the { } as a xblock, so its a block of code always | 03:18 | ||
sorear | ash__: nqp doesn't have hash constructors | ||
ash__ | ah, didn't realize that | 03:19 | |
sorear | I'm asking mostly because I want to implement hash constructors in NQP | ||
ash__ | eh, it seems rakudo's grammar also assumes { } is an xblock github.com/rakudo/rakudo/blob/maste...ar.pm#L364 lines 364-366 | 03:20 | |
sorear | sub unflatten(*@kv) { my %h; for @kv -> $k, $v { %h{$k} := $v }; %h } | ||
^^^ all too common in real NQP | |||
ash__ | yeah, i can see why they would be useful | ||
so, in other words, yes, you should be able to implement hash constructors | 03:23 | ||
lue | hai again. | 03:27 | |
.oO(It's gotten bad enough my muscle memory is more inclined towards hai, as opposed to hi) |
03:28 | ||
03:30
ash__ left
|
|||
pugssvn | r30335 | lwall++ | [viv] refrain from chopping off the final characters that we don't add anymore | 03:30 | |
diakopter | o_O | 03:32 | |
TimToady | sorear: yes, it depends on whether a term vs an infix is expected, and also on whether we have a current "goal" of '{' | 03:33 | |
diakopter | oh; better :) | ||
TimToady | might be an extra newline new though | ||
s/new/now/ | 03:34 | ||
diakopter | yeah | ||
TimToady | er, s:2nd/new/now/ | ||
03:34
Exodist joined
|
|||
lue | Is that the new syntax? | 03:36 | |
(for replace) | |||
sorear | TimToady: What's a goal? | 03:39 | |
03:40
gfx joined
03:42
ShaneC left
03:49
christine left
03:50
szabgab left
|
|||
TimToady | sorear: usually, it's the right side of somethinglike '{' ~ '}', but in this case it is set by hand. | 03:50 | |
03:50
szabgab joined
|
|||
TimToady | a number of closing brackets will terminate the current parse, but only one of them is the one we're expecting | 03:50 | |
and the 'goal' communicates that without having to establish an official sublanguage for it | |||
lue | rakudo: say "helto".s:/t/l/ # my first experiment with s:/// | 03:51 | |
p6eval | rakudo 8c434e: OUTPUT«Confused at line 11, near "say \"helto"current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
TimToady | for statement controls, the initial keyword and the final block function as a kind of bracketing construct for the intermediate expression | ||
03:51
meppel joined
03:52
IllvilJa left
|
|||
TimToady | lue: why did you put a colon | 03:52 | |
lue | because you did | 03:54 | |
[20:34:22] <TimToady> er, s:2nd/new/now/ | |||
TimToady | MJD #11924 Well, if you don't know what it does, why did you put it in your program? | 03:55 | |
03:55
meppl left
|
|||
lue | I know what it does! I don't know how to use it. Big difference! :) | 03:56 | |
TimToady | MJD: #11960 So you threw in some random punctuation for no particular reason, and then you didn't get the result you expected. Hmmmm. | ||
sorear | also, you've forgotten one of the major unifying principles of perl6 | 03:57 | |
:2nd is called an adverb, and it's an indivisible unit | |||
if you take out the 2nd, take out the : | |||
: makes as much sense in this context as :2d | |||
TimToady | MJD #11959 Cargo-cult. | 03:58 | |
sorear | (is there an actual MJD list?) | ||
TimToady | cpansearch.perl.org/src/PODMASTER/A...cme/MJD.pm | ||
lue | rakudo: say "helto".s/t/l/ | ||
p6eval | rakudo 8c434e: OUTPUT«Confused at line 11, near "say \"helto"current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | 03:59 | |
03:59
meppel is now known as meppl
|
|||
sorear makes another try at understanding STD | 03:59 | ||
03:59
christine joined
|
|||
TimToady | std: say "helto".s/t/l/ | 03:59 | |
p6eval | std 30335: OUTPUT«===SORRY!===Bogus term at /tmp/fLW5IItunl line 1 (EOF):------> say "helto".s/t/l/⏏<EOL>Undeclared routines: 'l' used at line 1 't' used at line 1FAILED 00:01 109m» | ||
04:00
gfx left
04:01
jaldhar joined
|
|||
TimToady | hint: s/// is not a method | 04:02 | |
diakopter | std: say "helto".s | ||
TimToady | nor can you apply it to an immutable string | ||
p6eval | std 30335: OUTPUT«ok 00:01 106m» | ||
lue | aah! I'm no good at quests! | ||
sorear | phew | ||
I was trying to figure out how s/// could even parse as a method | 04:03 | ||
TimToady | std: say "foo".nonesuchmethod | ||
p6eval | std 30335: OUTPUT«ok 00:01 106m» | ||
sorear | unless it was a method macro like HOW | ||
TimToady | it can't | ||
though we did consider making it a macro at one point | |||
but we stuck with ~~ | |||
sorear | std: "foo" =~ s/foo/bar/; | ||
p6eval | std 30335: OUTPUT«===SORRY!===Unsupported use of =~ to do pattern matching; in Perl 6 please use ~~ at /tmp/TBW1BBTAy3 line 1:------> "foo" =~⏏ s/foo/bar/;FAILED 00:01 107m» | ||
lue | (are all the # numbers in MJD tickets?) | ||
sorear | STD++ it's an interactive Perl 6 migration system | 04:04 | |
std: "foo" ~~ s/foo/bar/; | |||
TimToady | see file mentioned above | ||
p6eval | std 30335: OUTPUT«ok 00:01 108m» | ||
sorear | rakudo: (s/foo/bar/).WHAT.perl; | ||
p6eval | rakudo 8c434e: ( no output ) | ||
sorear | rakudo: say (s/foo/bar/).WHAT.perl; | ||
p6eval | rakudo 8c434e: OUTPUT«Substitution» | ||
TimToady | and then take enough of them to heart so that I am no longer tempted to channel MJD. :) | ||
avar | rakudo: "foo" =~ s/foo/bar/; | 04:05 | |
p6eval | rakudo 8c434e: OUTPUT«Unsupported use of =~ to do pattern matching; in Perl 6 please use ~~ at line 11, near " s/foo/bar"current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
avar | I see perl6 is giving more useful errors than some internal parrot panic these days :) | ||
TimToady | yes, rakudo has been doing much better lately | ||
except when it doesn't | 04:06 | ||
sorear | that list is far too short | ||
the Acme::MJD one | |||
TimToady | it's good enough for starters | 04:07 | |
lue | Oh, so that wasn't the full list, last time I read it all? | 04:08 | |
avar | I also read something vaguely about it not taking ~1GB of ram to run the test suite, maybe I'll test it out again :) | ||
sorear | dunno about the test suite | ||
TimToady | you could always hire MJD to give you a continuous feed of new ones :) | ||
sorear | but it no longer takes 1.7 GB to build at all | ||
last time I build rakudo it finished in 45 minutes and 260 MiB | 04:09 | ||
(in other news, perl5 seems to be building much, much slower between 5.10.1 and 5.12RC4. Balances out?) | 04:10 | ||
04:10
meppl left
|
|||
lue | <mumble>In the right mood, I could come up with some</mumble> | 04:11 | |
sorear tries to think of some clever way to make vim figure out the correct file type for .pmc | |||
04:13
frzntoz joined
|
|||
lue | .oO(emacs would have a control sequence for that: M-x download-pmc(parrot)-mode) |
04:13 | |
.oO(too bad about its Lisp. It needs speech therapy.) |
04:14 | ||
04:14
eternaleye left
|
|||
sorear | the lack of lexical variables is more offputting than the speech | 04:15 | |
TimToady | MJD #11918 Well, then get one that *does* do auto-indent. You can't do good work with bad tools. | 04:16 | |
lue | #11909 Bad programmer! No cookie! | ||
I never liked vim. Only recently could I actually quit the program after starting it. It's just a weird interface for me :/ | 04:17 | ||
TimToady | #11948 Perhaps your veeblefitzer is clogged. | 04:19 | |
sorear | when you spend half your life in a program, the interface doesn't actually matter much | ||
TimToady | #11948 Perhaps your veeblefitzer is clogged. | ||
sorear | having a common and user-friendly interface is really important for complicated software you use rarely | ||
(most fscks fail epically in this department) | |||
lue | Blender has a great interface :) | 04:21 | |
04:22
snarkyboojum joined
|
|||
sorear | also: package management systems. | 04:22 | |
don't get me started on those. | |||
lue | aaah! That's why I only update/install/etc. thru the terminal! | 04:23 | |
perl.plover.com/idiocy/Addition.pm (MJD) what was once an idiotic module is no longer idiotic in the creation of Rakudo! | 04:25 | ||
k23z__ | what is MJD actually doing I wonder ? | 04:27 | |
he obviously knows a lot of maths | |||
which is very nice | |||
but at the same time he writes code ? | |||
what is his job ? | |||
how come he gets to do both of those :) (and of course he's not on IRC because he has stuff to do ?) | 04:28 | ||
sorear | lue: I only use the terminal. Apt-get is an abomination. | 04:30 | |
lue | Good thing I use Fedora (and therefore yum) :) | 04:31 | |
sorear | k23z__: MJD does show up on irc fairly often | 04:32 | |
well, irc.perl.org | |||
k23z__ | what nickname ? | ||
sorear | mjd | ||
he's a professional Perl advocate or something like that | 04:33 | ||
k23z__ | that doesn't sound like a job name IMHO | ||
04:37
wolf2k_ubuntu left
|
|||
lue | k23z__: I'm not a third-degree Camel, but amongst the third-degree, I've heard talk that MJD is a relatively unknown character. | 04:37 | |
amongst us lower degrees, of course :) | |||
k23z__ | haha there is no such thing | 04:38 | |
lower higher degree. .. :P | |||
lue | Of course there is! It's Freecam- oops | 04:39 | |
04:41
nihiliad left
|
|||
sorear | what are third degree camelers? | 04:46 | |
(I think being in this room makes us all automatically second degree... OMG I'VE TALKED TO LARRY) | |||
lue | The highest order. Various servers can designate their own degrees (the Scottish Regex defines 4° to 33°) | 04:47 | |
sorear | note that even while trying to emulate that mode of speech, I can't supress my urge to properly apostrophize | ||
lue | Freecamelry is quite amazing. (if you can guess what I'm parodying, you win some cake!) | ||
however, any extra degrees run parallel with the first three. There is nothing higher. | 04:49 | ||
.oO(methinks snarkyboojum needs a hello by now) snarkyboojum: hello o/ |
04:50 | ||
04:50
payload1 left
|
|||
snarkyboojum | lue: hello there! | 04:50 | |
lue | Can you guess what I'm parodying? :) | 04:51 | |
"It doesn't matter how many underhanded tricks a person uses… The truth will always find a way to make itself known." --Miles Edgeworth | 04:56 | ||
04:58
justatheory left
04:59
cls_bsd left
|
|||
spinclad | the New Improved Order of Templars? | 05:00 | |
lue | Not quite :) | ||
spinclad | the Rosy Cruxians? | ||
the Discordant? | 05:01 | ||
(Illuminati nos omnes impedimur) | 05:02 | ||
lue | no and no. The name (freecamelry) did a quick s/[something]/camel/ | ||
spinclad | FreeLlamasery | ||
lue | no. Many of the signers of the declaration of independence were supposed members. :) | 05:04 | |
spinclad | the Builders of King Solomon's Mines | ||
the Ordo Templi Orientis | 05:05 | ||
the Shriners | |||
lue | can I tell you, or do you wish to keep guessing? It's Free[something]ry | ||
spinclad | i think i may have it pretty well surrounded by now. | 05:06 | |
lue | .oO(Actually, you were able to name more "secret" orginzations than I've ever heard of.) |
||
spinclad | (s/Builders/[something]s/) | ||
lue | you are so close! | 05:07 | |
05:07
eternaleye joined
|
|||
spinclad | well, more than one are instances | 05:08 | |
s/Mines/[something else]/ | |||
the Golden Dawn | |||
i'll give you the honour | 05:09 | ||
lue | Freemasonry :) | ||
spinclad | oh, but everybody knows that! | 05:10 | |
secret handshakes and all! | |||
lue | That's what I decided to parody as Freecamelry, though. Kudos to you though for knowing so many orginizations (it's scary actually...) | 05:11 | |
spinclad | research into this area is a fertile field for cultivating paranoia crops | 05:13 | |
05:14
snarkyboojum_ joined
|
|||
lue | o darn, snarkyboojum apparently had lost his connection :/ | 05:14 | |
05:16
snarkyboojum left,
snarkyboojum_ is now known as snarkyboojum
|
|||
lue | and he made it back! o/ | 05:17 | |
snarkyboojum | lue: haha - broadband wireless :) | 05:18 | |
lue | kill your own ghosts | 05:19 | |
05:20
Yunga joined
|
|||
Yunga | hi | 05:20 | |
snarkyboojum | welcome to #perl6 Yunga :) | 05:21 | |
Yunga | hello snarky boojum, thanks :) | 05:22 | |
i'm compiling parrot and installing perl6 to give it a try, that's years i'm waiting for it, so i guessed that hanging around here wouldn't be a bad thing ;) | 05:23 | ||
snarkyboojum | Yunga: excellent - what platform are you running it on? | 05:24 | |
Yunga | ubuntu 9.10 | 05:25 | |
snarkyboojum | Yunga: definitely, the guys around here are very knowledgeable and quite witty to boot | 05:26 | |
Yunga: sounds like fun to me :) | |||
Yunga | yes it is, i'm waiting for the compilation to finish so i can play with it | 05:27 | |
i'm a little affraid of all those utf8 characters however | |||
sorear | don't be | 05:28 | |
snarkyboojum | the utf8 characters are as afraid of us as we are them I think :) | ||
sorear | yeah they get butchered by malfunctioning software all the time | ||
lue | .u afraid | ||
sorear | people get it easy on this | ||
phenny | lue: Sorry, no results for 'afraid'. | ||
lue | see, it's not afraid! | ||
Yunga | yes, i'm looking at a way to reconfigure my keyboard to type them easily, because ctrl-shit-u-xxxx isnt really an improvement. X can handle various keyboard config with at least 8/12 differents chars by keys, but i guess i won't remember everything | 05:32 | |
snarkyboojum | that's better than anything I've worked out on OS X | 05:33 | |
Yunga | sorry english is not my mother tongue :) | ||
05:33
felipe joined
|
|||
Yunga | and i'm enthusiast about perl 6, i learned assembly language back in 1983, and perl, with parrot, is going back to it. that's years i'm waiting for it/ | 05:35 | |
05:35
frzntoz left
|
|||
lue | I would actually love to be able to do ctrl-shift-u-[number] ( stupid non-conformant KDE :( ) | 05:36 | |
sorear | Yunga: I've found that if you load an input method in X11 - any input method, and it doesn't matter if you unload it later - X11 will start supporting sequences like Compose > > -> » | ||
I have no idea what's actually going on here | |||
so it might not work for you | 05:37 | ||
05:37
mdxi joined
|
|||
sorear | note1: Compose is not a modifier key. press compose, release compose, then type >> normally | 05:37 | |
note2: most keyboards manufactured after 1980 don't have compose keys. I've used xmodmap to reconfigure my MENU key (pc107 here) to act as one | 05:38 | ||
Yunga | lue: you have to set up a "Compose" key in kde 3.5.9 (mine is right win key) and make or download a "~/.XCompose" file (see /usr/share/X11/locale/en_US.UTF-8/Compose or something like that file) | ||
sorear | note3: don't use », it slows down parsing in rakudo due to infelicities in the strings engine. Use the ASCII compatibility symbol >> instead, it's much faster | ||
Yunga | sorear xBB i know, but i'm not sure to remember every perl6 chars ;) | 05:39 | |
☺ | 05:40 | ||
lue | Yunga: I have KDE4, with a third-level (just like OS-X's) modifier set up. ĉ√ŝ∂ƒ£∞¢§§¢«»ðĈ◊ | ||
rakudo: say <<quoted>> | |||
Yunga | oh, ok | ||
p6eval | rakudo 8c434e: OUTPUT«quoted» | ||
lue | rakudo: say «quoted» | ||
p6eval | rakudo 8c434e: OUTPUT«quoted» | ||
lue | What I would like, though, is to be able to type _any_ unicode character. I can only type what OS-X has for its third-level, esperanto, and japanese (thru input method) | 05:41 | |
good night | 05:43 | ||
Yunga | i don't know MacOS, i played with one for one year, and i didn't really liked it. perhaps i'm biased on this, however. | ||
snarkyboojum | I love OS X, but haven't worked out how to conveniently enter chars from other character sets | ||
lue | I'm running Linux on an old PowerPC based PowerBook (which ran OS X 10.4) | ||
Yunga | it's nearly 8am here, so good day... or night, or whatever, enjoy your time anyway | ||
snarkyboojum wonders how temporal is coming along | 05:44 | ||
lue | snarky: if it's other languages, then you could use an input method (ex. 時の勇士) | ||
05:44
molaf_ left
|
|||
snarkyboojum | battery is about to die (again) | 05:44 | |
lue | .oO[good night for real now] | ||
snarkyboojum | night lue | ||
Yunga | g'night lue | 05:45 | |
05:49
snarkyboojum left
|
|||
sorear | it generally seems as though I need to play with LC_ALL to get other language input working in Linux | 05:56 | |
however, changing LC_ALL in a running process is impossible* | 05:57 | ||
06:00
payload joined
06:02
uniejo joined
06:06
k23z__ left,
kaare joined,
jonasbn joined,
kaare is now known as Guest68320
06:09
LionMadeOfLions joined
06:12
snarkyboojum joined
06:25
snarkybo1jum joined,
snarkybo1jum is now known as snarkyb00jum
|
|||
snarkyb00jum | trying out irssi | 06:26 | |
so far the biggest win seems not being able to use backspace :) | |||
sorear | tried DEL and control-H? | ||
unix terminal subsystems have a long history of getting those three keys mixed up | |||
snarkyb00jum | ah - ctrl-H works a treat | 06:27 | |
sorear | protocol agreement is a lot better now, but it's not quite perfect | ||
with crazies on all sides | 06:28 | ||
snarkyb00jum | at least I won't spam channels with disconnects now, ssh'ing to a screen session on a box with 150+ days uptime | ||
06:28
alester left
|
|||
sorear | yes, ssh makes backspace issues much worse | 06:29 | |
are you using putty? | |||
snarkyboojum | ssh in OS X terminal | ||
snarkyb00jum | oops - wrong window :) | ||
sorear | what's the other host? | ||
snarkyb00jum | a linux box | 06:30 | |
OS X + ssh -> linux + screen + irssi | 06:31 | ||
sorear | also, 1y+ uptime is useless if your local monopoly ISP has a MTBF of 48 hours | ||
06:31
Su-Shee joined
|
|||
sorear | (my situation) | 06:31 | |
snarkyb00jum | sorear: ah - no good | 06:34 | |
06:34
payload left
06:41
pjcj joined
|
|||
ingy | sweet | 06:42 | |
I patched rakudo to grok .pm6 files | 06:43 | ||
06:45
finanalyst joined
|
|||
snarkyb00jum | YAML grammar definitions! | 06:45 | |
ingy | ? | 06:46 | |
hey, how do I subscribe to rakudobug ? | |||
moritz_ | ingy: the bug reports are all sent to [email@hidden.address] | 06:47 | |
I mean, RT forwards them there | |||
so [email@hidden.address] | 06:48 | ||
ingy | moritz_: I want to submit a patch | 06:49 | |
not to report a bug | |||
moritz_ | ingy: [email@hidden.address] | 06:51 | |
with [PATCH] in the subject | |||
ingy | right... is rakudobug a mailing list I should be subscribed to first? | 06:53 | |
finanalyst | jnthn: ping | ||
ingy | moritz_: ^^ | 06:54 | |
moritz_ | ingy: rakudobug is a submission adress for RT tickets. The tickets are then forwared to [email@hidden.address] | ||
finanalyst | @seen jnthn | ||
moritz_ | it's your choice of if you subscribe to it or not | ||
RT should also send you replies directly | 06:55 | ||
ingy | I see | ||
I think I want to be involved in the replies, but don't need to be on any more mailing lists :) | |||
one is enough... | 06:56 | ||
moritz_ | phenny: tell masak to add a more detailed schedule to his gsoc proposal - weekly would be great, resolution of two weeks the absolute minimum | ||
phenny | moritz_: I'll pass that on when masak is around. | ||
moritz_ | ingy: you're just on one mailing list? :-) | ||
ingy | moritz_: two come to think of it | ||
yaml and inline | 06:57 | ||
but inline runs itself | |||
so I largely ignore that one | |||
moritz_ on about 20 lists | |||
ingy | :'( | 06:58 | |
sorear | mailing lists are evil and wrong, long live nntp | ||
ingy | moritz_: PATCH submitted | 07:03 | |
moritz_ | ingy++ | 07:04 | |
sorear | and now, the great wait | 07:05 | |
ingy | heh, well it works here now | 07:06 | |
07:07
mberends joined
|
|||
ingy | I can give my talk about perl6 to the seattle python dudes now :) | 07:07 | |
moritz_ | :-) | 07:09 | |
talk driven development, TDD | |||
mberends | :-) | 07:10 | |
07:11
snarkyboojum left
07:13
CokeBot9000 left
|
|||
snarkyb00jum | well I survived that one at least :) | 07:13 | |
07:14
snarkyb00jum is now known as snarkyboojum
|
|||
sorear | ooh what kind of talk | 07:18 | |
mberends: Hi! I just discovered vill, it looks pretty interesting | 07:20 | ||
07:20
CokeBot9000 joined
07:21
mberends left
|
|||
mathw | o/ | 07:28 | |
07:31
yjh joined
07:36
yjh left,
yjh joined
07:40
rgrau joined
07:41
PZt joined
07:43
yjhz joined
|
|||
sorear | hmm | 07:44 | |
I think there's a big niche for something like Inline for Perl6 | |||
we've got lots of different implementations with lots of different binding protocols and lots of different build systems | 07:45 | ||
need a simple, general way to compile C code and link it to them, for hot spot optimization and language binding | |||
Zavolaj (will) cover binding relatively well, but does nothing for the case where custom C is involved | 07:46 | ||
07:46
yjh left
07:50
payload joined
|
|||
sorear | of course, because this /is/ Perl 6, the syntax can be much nicer | 07:51 | |
07:53
eternaleye left
|
|||
BinGOs | (dumping baggage)++ | 07:53 | |
sorear | q:lang<C> { int n = {{ $arg }}; int i = 0; while (n != 1) { if (n & 1) { n = n * 3 + 1; } else { n /= 2; } i++; } return i; } | 07:54 | |
07:57
payload left
08:00
payload joined
08:05
payload left
08:09
IllvilJa joined
08:11
dakkar joined,
payload joined
08:19
payload left
08:31
riffraff joined
|
|||
moritz_ | I've pushed ingy's patch, but neither dalek reported it, nor does it show up on the github web interface | 08:37 | |
can anybody please pull and tell me if it's in the repo? | |||
08:42
JimmyZ joined
|
|||
JimmyZ | moritz_: it's in the repo! | 08:42 | |
moritz_ | phenny: ask jnthn to please review/apply github.com/quester/rakudo/commit/c7...4fc47d928c if you have some free minutes | ||
phenny | moritz_: I'll pass that on when jnthn is around. | ||
moritz_ | JimmyZ: thanks | ||
08:50
eternaleye joined
08:53
fridim joined
08:54
eternaleye left
08:56
eternaleye joined
09:01
clintongormley joined,
JimmyZ left
09:14
Trashlord left
09:16
pmurias joined
09:24
xabbu42 joined
09:26
finanalyst left
09:38
yinyin left
|
|||
jnthn | o/ | 09:44 | |
phenny | jnthn: 08:42Z <moritz_> ask jnthn to please review/apply github.com/quester/rakudo/commit/c7...4fc47d928c if you have some free minutes | ||
09:45
envi^home joined
|
|||
moritz_ | it's j\o/nthn | 09:46 | |
09:46
holli joined
|
|||
holli | rakudo: class A::B { method x { 1 } }; my $b = 'B'; say A::$b.new.x | 09:47 | |
p6eval | rakudo 6b5469: OUTPUT«Confused at line 11, near "say A::$b."current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
moritz_ | std: class A::B { method x { 1 } }; my $b = 'B'; say A::$b.new.x | 09:48 | |
p6eval | std 30335: OUTPUT«===SORRY!===Two terms in a row at /tmp/5svzIGkrfL line 1:------> { method x { 1 } }; my $b = 'B'; say A::⏏$b.new.x expecting any of: POST bracketed infix infix or meta-infix postfix | ||
..postfix_prefix_meta_operator statement modifier loo… | |||
moritz_ | std: class A::B { method x { 1 } }; my $b = 'B'; say A::($b).new.x | ||
p6eval | std 30335: OUTPUT«ok 00:01 108m» | ||
moritz_ | but I think interpolating namespaces are NYI | 09:49 | |
holli | rakudo: class A::B { method x { 1 } }; my $b = 'B'; say A::($b).new.x | ||
p6eval | rakudo 6b5469: OUTPUT«Confused at line 11, near "say A::($b"current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
IllvilJa | 'llo folks! Is there any work on a Perl6 counterpart to DBI and friends (for hooking up a Perl6 application to Oracle, MySQL, SQLite and stuff, you know)? | ||
jnthn | moritz_: Need to look at that a little more later. | ||
sorear | IllvilJa: No. | 09:50 | |
IllvilJa | Ok. | ||
jnthn | IllvilJa: mberends++ is working on something there. | ||
sorear | IllvilJa: We've got a direct MySQL binding from jnthn++ | ||
holli | oh, yeah. that's another elephant =) | ||
sorear | IllvilJa: however, more interesting IMO is my project | ||
IllvilJa | Woo, we have some brave (foolhardish?) ppl out there then \o/. | ||
sorear | use DBI:from<perl5>; will work soon | ||
IllvilJa | Ok | ||
moritz_ | jnthn: ok, no hurry. I'm just trying to encourage contributions by making sure they are reviewed | 09:51 | |
IllvilJa | sorear: sounds like a plausible duct-tape solution to me. | ||
jnthn | sorear: I spent all last night writing talk slides, whihc kinda needed doing, but meant I didn't get any coding time. :-/ | ||
sorear | I'm fairly confident that modules with a pure object oriented interface will work by R* | ||
jnthn | sorear: Yay! :-) | ||
sorear | *pure and concrete | ||
if it's OO but you have to subclass it, things won't work so well | 09:52 | ||
holli | how does the Parrot/Perl 5 bridge work? | ||
IllvilJa | So that will be an interesting way to transform the Perl5 community: "If you write best-practices Perl 5 code, it may be used by Perl6 scripters" :-). | ||
sorear | holli: Black magic, duct tape, blood, and tears. | ||
IllvilJa | sorear: that kind of voodoo is all ok in the name of getting programs to work together. | 09:53 | |
sorear | important note: this is a Parrot/perl5 bridge, not a Parrot/Perl5 bridge | ||
Ponie is a Parrot/Perl5 bridge. Ponie is dead. | 09:56 | ||
mathw | ponie isn't so much a parrot/perl5 bridge as a perl5 compiler for parrot | ||
sorear | rakudo: say Q:PIR { $P5 = new 'ResizablePMCArray'; $P5 = 1; $P6 = $P5[0]; $P6 = 42; %r = $P5[0] } | 09:57 | |
p6eval | rakudo 6b5469: OUTPUT«error:imcc:syntax error, unexpected ';', expecting '\n' (';') in file 'EVAL_1' line 64Null PMC access in type()current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
moritz_ | which is basically the same | ||
sorear: you need to use newlines as line separators in PIR | |||
which you can enter in p6eval with  | |||
sorear | rakudo: say Q:PIR { $P5 = new 'ResizablePMCArray' $P5 = 1 $P6 = $P5[0] $P6 = 42 %r = $P5[0] } | 09:58 | |
p6eval | rakudo 6b5469: OUTPUT«Null PMC access in set_integer_native()current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
sorear | rakudo: say Q:PIR { $P5 = new 'ResizablePMCArray' $P5 = 1 $P5[0] = 12 $P6 = $P5[0] $P6 = 42 %r = $P5[0] } | ||
p6eval | rakudo 6b5469: OUTPUT«42» | ||
sorear | rakudo: say Q:PIR { $P5 = new 'ResizableIntegerArray' $P5 = 1 $P5[0] = 12 $P6 = $P5[0] $P6 = 42 %r = $P5[0] } | ||
p6eval | rakudo 6b5469: OUTPUT«12» | ||
sorear | ^^^ Parrot makes no sense. | 09:59 | |
sorear pokes jnthn | 10:01 | ||
RIA and RPA handle get_pmc_keyed_int in completely different ways | |||
which should I copy for P5Scalar | |||
jnthn | sorear: Parrot has no real concept of assignment. | 10:03 | |
Apart from when it does. | 10:04 | ||
:-/ | |||
In the RPA case, the int got boxed, but then you modified the value in the PMC. | |||
10:05
yinyin joined,
yinyin left
|
|||
jnthn | (Yes, I agree it's messed up.) | 10:05 | |
sorear | jnthn: sometimes the return value is an lvalue, sometimes it isn't, and I've spent two days blocking on which form I need to use | ||
jnthn | Well, afaik, Perl 5 doesn't provide binding, just assignment, but of course assigning a reference gives you a reference to a common thing. | 10:07 | |
sorear | actually perl 5 does have binding | ||
jnthn | Anyway, for integers at least, you want more the RIA model I guess. | ||
sorear | although a very odd sort | ||
jnthn | Since my $a = 42; my @x; $x[0] = $a; $a = 100; say $x[0]; # 42 | 10:08 | |
Though my $a = 42; my @x; $x[0] = \$a; $$a = 100; say ${$x[0]}; # 100 | |||
sorear | (Note: I don't actually know what your last line is for) | 10:09 | |
jnthn: this is for ARRAY/HASH references | |||
jnthn | I figured a scalar reference was closer to the PIR cases you were looking at. | 10:10 | |
sorear | if I just return the raw array element, then it can be used as an lvalue | ||
jnthn | That's probably wrong if the array element isn't a reference. | ||
sorear | and moreover, the caller can't save the reference - it could change at any time, or even be deleted | ||
if I return a copy, then it's not possible for perl6 code to perform container operations such as ties on elements | 10:11 | ||
holli | rakudo: my $a = 42; my @x; $x[0] := $a; $a = 100; say $x[0]; | ||
p6eval | rakudo 6b5469: OUTPUT«Symbol '$x' not predeclared in <anonymous>current instr.: 'perl6;PCT;HLLCompiler;panic' pc 152 (compilers/pct/src/PCT/HLLCompiler.pir:108)» | ||
sorear | and moreover it is impossible to implement lvalueish binding | 10:12 | |
my $a := @arr[15]; | |||
so I'm in a no-win situation | |||
jnthn | Right. | ||
Seems so. | |||
:-/ | |||
holli | rakudo: my $a = 42; my @x; @x[0] := $a; $a = 100; say @x[0]; | 10:13 | |
p6eval | rakudo 6b5469: OUTPUT«:= binding of variables not yet implementedcurrent instr.: '&die' pc 17293 (src/builtins/Junction.pir:404)» | ||
sorear | Can you use your parrot clout to make them agree on a single consistent set of semantics please? | ||
jnthn | If I have in Perl 5 a "my @a; sub foo { @a = (1,2,3); return $a[1]; }", then I don't think I should be able to modify the array with assigning to the thingy I get back from that sub, that's all. | ||
holli | booooh ;-) | ||
sorear | jnthn: right, because perl 5 'return' does the equivalent of VTABLE_clone | 10:14 | |
jnthn | Anyway, I think the case for not returning a copy of everything in general. | ||
sorear: (parrot clout) Uh, Pm has rather more clout than me and pushed the assignment/binding issue for quite a while, and didn't manage to get all that much changed. :-( | 10:15 | ||
sorear | I want to like Parrot so much | ||
jnthn knows that feeling | 10:16 | ||
sorear | jnthn: not returning a copy is also problematic, because what if somebody saves the return value? | ||
jnthn | "saves" in what sense? | ||
sorear | $rpa[0] = $p5array[0] | 10:17 | |
... | |||
#oops $rpa[0] just action-at-a-distanced | |||
also, it's not in general possible to save a reference to what you get back from av_fetch because of Perl 5's use of explicit deallocation which ignores reference counts in certain situations | 10:18 | ||
moritz_ | sounds to me like you need to clone stuff before assignment | 10:19 | |
sorear | moritz_: right, the only safe thing to do is to clone everywhere you can | ||
jnthn | Oh hmm. | 10:20 | |
sorear | which might have something to do with rakudo's memory usage | ||
jnthn | sorear: I think go with the safe option then. At best, it's right and works fine enough. At worse, we have to re-visit it and tweak it some later. | 10:21 | |
10:21
pausenclown_ joined,
am0c left
|
|||
sorear | am I the only one who is absolutely appalled by the Parrot development ethos? | 10:21 | |
10:25
hanekomu joined
10:26
hanekomu left
10:28
colomon left,
colomon joined
10:32
xabbu42 left
10:33
colomon left
|
|||
pmurias | sorear: could you explain your problem? | 10:44 | |
sorear | pmurias: I already did | ||
pmurias | with the interop that is (not the ethos) | ||
what does RIA and RPA mean? | 10:45 | ||
sorear | get_pmc_keyed_int is undocumented, and the implementations already in Parrot don't agree with each other in what the vtable is supposed to do | ||
however, I have to implement it, because it's used for [] postfix | |||
and I have no idea what to follow | |||
Resizable{Integer,PMC}Array | 10:46 | ||
pmurias | thanks | ||
sorear | more generally, PMC* can have either lvalue (bind, alias) or rvalue (copy, share, read-only) semantics | 10:47 | |
and there are no indications what a given instance of that type means | |||
anywhere | |||
RPA:get_pmc_keyed_int uses lvalue semantics for PMC*, RIA uses rvalue | 10:48 | ||
pmurias | what happens when you use an lvalue thing in an rvalue context | ||
? | |||
10:49
M_o_C joined
|
|||
sorear | rvalue consumers expect to save a PMC*, and when they next look at it it will have the same value | 10:49 | |
lvalue providers can reuse a PMC at any time | 10:50 | ||
the safe thing to do is to always VTABLE_clone PMCs that you get from or give to code not written by you | |||
because nobody else will have the same interpretation of the PDDs | 10:51 | ||
pmurias | so an lvalue PMC is not and rvalue | ||
s/and/a/ | |||
sorear | right | ||
pmurias | strange | ||
sorear | although it can be treated as one, most of the time | ||
unlike C lvalues, which are isomorphic to pointers and cannot be confused with rvalues in any situation | 10:52 | ||
pmurias | the perl5 [] seems to return a rvalue/lvalue | ||
sorear | perl5 [] returns an lvalue, but the lvalue is not allowed to escape the current dynamic scope, so if we're returning it, we return a copy or face segfaults | 10:53 | |
it's not possible to implement the equivalent of \$x[12] from XS | |||
pmurias | sorear: are you sure of that? | 10:55 | |
sorear | yes | ||
actually you can, but you need to break the interface contract to do so | 10:56 | ||
pmurias | so how is \$x[12] implemented? | ||
sorear | using SvTEMP_off, which demortalizes SVs | 10:57 | |
pmurias | just increment the reference count when creating the PMC and decrement it when destroying the PMC | 10:59 | |
sorear | nice try, but it doesn't work | 11:00 | |
mortal SVs have lifetimes tied to a dynamic scope | 11:01 | ||
pmurias | perlguts needs fixing then | ||
sorear | and there are some optimizations that take advantage of this | ||
most notably sv_setsv will steal string buffers | 11:02 | ||
if $a is mortal, then after $b = $a; $a will be undef if it was a string before | |||
I seem to be unable to find the "SvTEMP_off is strictly for PERL_CORE use" comment | 11:03 | ||
pmurias | lunch& | ||
sorear | if I can't find it, much of the preceeding will have been made moot | ||
however, I still want Parrot to make up its mind what functions are supposed to do | 11:04 | ||
all this cloning is very troubling | |||
11:08
fridim left
11:09
masak joined
|
|||
masak | oh hai, #perl6 | 11:09 | |
phenny | masak: 06:56Z <moritz_> tell masak to add a more detailed schedule to his gsoc proposal - weekly would be great, resolution of two weeks the absolute minimum | ||
masak | moritz_: aye, suspected the resolution might be too coarse. | ||
the schedule is always the hardest bit to write :/ | 11:10 | ||
jnthn | :/ | ||
moritz_ | masak: well, don't worry if you don't quite meet the schedule in the end | ||
jnthn | Heh. If that's the case, why write a less coarse one. :/ | ||
moritz_ | masak: also whiteknight asked if that's really enough material to keep you busy for three months... | ||
jnthn rather suspects that doing it properly will be | 11:11 | ||
masak | good question. I really think so. the pack/unpack business is rather involved. | ||
jnthn | Particularly as there are spec bits to worry about too. | ||
masak | aye. | ||
jnthn | And what masak said. | ||
masak | and reading/writing binary. | ||
moritz_ | masak: you could comment on the various different buf types, numbers of IO routines to be changed, specs in flux... | ||
masak | moritz_: aye. will do something like that. thanks. | ||
moritz_ | I understand whiteknight's concern - if you don't know the systems at hand very well, it does sound like a not too much work :-) | 11:12 | |
masak | :) | ||
sorear | How often are getprop and setprop used? | 11:13 | |
11:13
Chillance joined
|
|||
sorear | rakudo: say pir::typeof__sp([]) | 11:14 | |
p6eval | rakudo 6b5469: OUTPUT«Array» | ||
moritz_ | jnthn: re "why write a less coarse one" - to show that $student really thought in detail about the proposal | ||
jnthn | moritz_: Aye, my point was that it's as much for show as it is realistic. | ||
But yes, fair enough. | |||
moritz_ | and has a good undstanding of the necessary steps... right | 11:15 | |
jnthn | sorear: Pretty often. | ||
sorear finds getprop and setprop troubling as well | |||
a throwback to the P5 memory model | 11:16 | ||
jnthn | They've proved rather useful for a whole range of things in Rakudo. | ||
11:17
ruoso left
|
|||
masak | also, sorry I keep missing #rs meetings :/ | 11:19 | |
moritz_ | masak: I've proposed to change the date | ||
masak | so far, I've been busy once and forgotten it once. | 11:20 | |
this week, it was both. | |||
moritz_ | because Wednesday doesn't suite me well | ||
what about Tuesday? | |||
masak | well, for me the problem isn't the day of the week. | ||
it's getting the concept of #rs into my mental model. | |||
moritz_ | but for me it is | ||
masak | Tuesday is fine. | ||
moritz_ | like, Tuesday 18:30 UTC | 11:21 | |
masak | aye | ||
jnthn | That can work for me too. | ||
moritz_ | so... let's also ask bkeeler, pmichaud, colomon... | 11:23 | |
jnthn | Right. | ||
frettled | What's #rs? | 11:27 | |
moritz_ | rakudosketch IRC meeting | ||
frettled | Ahaha. | 11:34 | |
And what's the point of rakudosketch? :) | |||
sorear | Agreeing on design | 11:35 | |
jnthn | frettled: A gathering of Rakudo devs and other interested/concerned folks to try and monitor our progress towards Rakudo * and try to keep us moving in the right kinda directions. | ||
11:36
M_o_C left
|
|||
frettled | Aha. | 11:38 | |
That sounds like something for me ifwhen I get some spare energy again. :) | |||
moritz_ found a bug in the gsoc app | 11:46 | ||
it has tables for the student applications that can be sorted with js | 11:47 | ||
sorting by score orders 10 between 0 and 2 :-) | |||
don't use string comparison when you should be using numeric comparison :-) | 11:48 | ||
frettled | :) | 11:49 | |
pmurias | moritz_: are the proposals scored already? | 11:50 | |
moritz_ | pmurias: some of them | ||
but so early in the scoring process the scores are really meaningless | |||
11:50
bacek joined
|
|||
bacek | o hai | 11:50 | |
rakudo: say "hello world".iterator.map( -> $a, $b { $a.uc ~ $b.lc } ) | 11:51 | ||
p6eval | rakudo 6b5469: OUTPUT«Method 'iterator' not found for invocant of class 'Perl6Str'current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
bacek | rakudo: say "hello world".split('').map( -> $a, $b { $a.uc ~ $b.lc } ) | ||
p6eval | rakudo 6b5469: OUTPUT«Not enough positional parameters passed; got 1 but expected 2current instr.: '_block51' pc 339 (EVAL_1:134)» | ||
bacek | rakudo: say "hello world".split('').map( { $^a.uc ~ $^b.lc } ) | ||
p6eval | rakudo 6b5469: OUTPUT«Not enough positional parameters passed; got 1 but expected 2current instr.: '_block51' pc 339 (EVAL_1:134)» | ||
bacek | .oO( I do remember that I implemented arity-aware map long time ago ) |
11:52 | |
rakudo: say for "hello world".split('') -> $a, $b { $a.uc ~ $b.lc } | 11:53 | ||
p6eval | rakudo 6b5469: OUTPUT«Confused at line 11, near "say for \"h"current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
bacek | erm... | ||
moritz_ | try .say | 11:54 | |
for statements don't return meaningful values yet, I think | |||
rakudo: for "hello world".comb -> $a, $b { say $a.uc ~ $b.lc } | 11:55 | ||
bacek | rakudo: say gather for "hello world".split('') -> $a, $b { take $a.uc ~ $b.lc } | ||
p6eval | rakudo 6b5469: OUTPUT«HeLlO WoRlStopIterationcurrent instr.: '_block14' pc 29 (EVAL_1:0)» | ||
rakudo 6b5469: OUTPUT«StopIterationcurrent instr.: '_block45' pc 297 (EVAL_1:125)» | |||
11:56
xabbu42 joined
|
|||
bacek | rakudo: say gather for "hello world".comb -> $a, $b { take $a.uc ~ $b.lc } | 11:56 | |
p6eval | rakudo 6b5469: OUTPUT«StopIterationcurrent instr.: '_block45' pc 297 (EVAL_1:125)» | ||
bacek | rakudo: say gather { for "hello world".comb -> $a, $b { take $a.uc ~ $b.lc } } | 11:57 | |
p6eval | rakudo 6b5469: OUTPUT«StopIterationcurrent instr.: '_block45' pc 297 (EVAL_1:125)» | ||
11:57
cls_bsd joined
|
|||
moritz_ | however you form it syntactically, for with two variables and an odd count of items produces StopIteration | 11:58 | |
bacek | isn't it suppose to pass Mu? | ||
moritz_ | I'm not quite sure what it's supposed to do | ||
rakudo: say (1, 2, 3).map(-> $a, $b { $a ~ $b }) | 11:59 | ||
p6eval | rakudo 6b5469: OUTPUT«Not enough positional parameters passed; got 1 but expected 2current instr.: '_block48' pc 327 (EVAL_1:129)» | ||
moritz_ | rakudo: say (1, 2, 3).map(-> $a, $b? { $a ~ $b }) | ||
p6eval | rakudo 6b5469: OUTPUT«123Any()» | ||
bacek | multi-arity map is b0rked | ||
moritz_ | seems like, yes | ||
bacek | hang on. | 12:00 | |
I have to specify optional flag for second arg? | |||
moritz_ | you don't have to do anything | ||
I was just testing stuff | |||
bacek | rakudo: say gather for "hello world".split('') -> $a, $b? { take $a.uc ~ $b.lc } | 12:01 | |
p6eval | rakudo 6b5469: OUTPUT«Hany()Eany()Lany()Lany()Oany() any()Wany()Oany()Rany()Lany()Dany()» | ||
bacek | rakudo: say gather for "hello world".comb -> $a, $b? { take $a.uc ~ $b.lc } | ||
p6eval | rakudo 6b5469: OUTPUT«Hany()Eany()Lany()Lany()Oany() any()Wany()Oany()Rany()Lany()Dany()» | ||
moritz_ | that just passes one argument to the block | ||
bacek | yes... | ||
I noticed | |||
moritz_ | anyway, we've long been looking for a general solution to such problems | ||
which is probably partial signature binding | 12:02 | ||
12:02
f00li5h joined
|
|||
moritz_ | some mechanism which allows a binding a signature to a Seq without using up all values | 12:02 | |
bacek | rakudo: say "hello world".comb.map: -> $a, $b? { $a.uc ~ $b.lc } | ||
p6eval | rakudo 6b5469: OUTPUT«HeLlO WoRlDany()» | ||
bacek | rakudo: say "hello world".comb.map: -> $a, $b? { $a.uc ~ $b ?? $b.lc !! '' } | ||
p6eval | rakudo 6b5469: OUTPUT«el olany()» | ||
moritz_ | and return the not yet bound values | ||
bacek | rakudo: say "hello world".comb.map: -> $a, $b? { $a.uc ~ ($b ?? $b.lc !! '') } | 12:03 | |
p6eval | rakudo 6b5469: OUTPUT«HeLlO WoRlD» | ||
moritz_ | rakudo: say "hello world".comb.map: -> $a, $b? { $a.uc ~ ($b // '') } | ||
p6eval | rakudo 6b5469: OUTPUT«HeLlO WoRlD» | ||
bacek | ah. yes. // | ||
rakudo: say "hElLo world".comb.map: -> $a, $b? { $a.uc ~ ($b // '').lc } | 12:04 | ||
p6eval | rakudo 6b5469: OUTPUT«HeLlO WoRlD» | ||
takadonet | morning all | 12:05 | |
bacek | rakudo: say "ПРИВЕТ мир".comb.map: -> $a, $b? { $a.uc ~ ($b // '').lc } | ||
p6eval | rakudo 6b5469: OUTPUT«ПрИвЕт мИр» | ||
12:05
bluescreen joined,
bluescreen is now known as Guest95102
12:06
f00li5h left
12:08
Guest95102 left
|
|||
bacek | rakudo: say "ПРИВЕТ мир".comb.map: -> $a, $b? { $a.uc, $b.lc } | 12:08 | |
p6eval | rakudo 6b5469: OUTPUT«П рИ вЕ т мИ р» | ||
bacek | rakudo: say "ПРИВЕТ мир".comb.map: -> $a, $b { $a.uc, $b.lc } | ||
p6eval | rakudo 6b5469: OUTPUT«П рИ вЕ т мИ р» | ||
12:08
Guest95102 joined
|
|||
bacek | rakudo: say "ПРИВЕТ мир".comb.map: -> $a, $b { $a.uc ~ $b.lc } | 12:08 | |
p6eval | rakudo 6b5469: OUTPUT«ПрИвЕт мИр» | ||
bacek | interesting. | 12:09 | |
moritz_, is map arity handling known bug? | |||
moritz_ | bacek: I think so, yes | ||
bacek | moritz_, ok | ||
rakudo: "ПРИВЕТ мир".comb.map( -> $a, $b { $a.uc ~ $b.lc }).say | 12:10 | ||
p6eval | rakudo 6b5469: OUTPUT«ПрИвЕт мИр» | ||
bacek | rakudo: "ПРИВЕТ мир".comb.map({ $^a.uc ~ $^b.lc }).say | 12:12 | |
p6eval | rakudo 6b5469: OUTPUT«ПрИвЕт мИр» | ||
12:23
Yunga left
|
|||
pugssvn | r30336 | moritz++ | [t/spec] unfudge some tests for rakudo | 12:36 | |
12:37
Yunga joined
|
|||
slavik | Вася ... прикол | 12:38 | |
12:51
f00li5h joined
|
|||
masak | phenny: tell mberends that I'm slowly converging on a 'complete' Temporal spec, but I am now having some doubts about the thing with time zones and leap seconds that I'd like to discuss with you before I push. | 13:00 | |
phenny | masak: I'll pass that on when mberends is around. | ||
13:02
alester joined
13:03
hudnix left
13:04
smash_ joined
|
|||
smash_ | hello everyone | 13:04 | |
masak | smash_: \o | 13:05 | |
13:05
hudnix joined
13:06
alester left,
f00li5h left
|
|||
PerlJam | greetings! | 13:08 | |
13:11
rallred joined
|
|||
takadonet | PerlJam:morning | 13:14 | |
smash_ | anyone mentoring the GSOC projects already ? | 13:16 | |
or still not defined.. | |||
moritz_ | smash_: not yet decided | 13:18 | |
hey, there's still time for project submissions | |||
smash_ | i'm not a student, can't apply | 13:19 | |
PerlJam | I've signed up as a potential mentor. | ||
moritz_ | that was more a general statement | ||
CokeBot9000 | sorear: get_pmc_keyed_int is listed in PDD17; what sort of documentation were you expecting but not finding? | ||
13:20
f00li5h joined
|
|||
masak | lue: ping | 13:20 | |
CokeBot9000 | (pdd 17 is at docs.parrot.org/parrot/latest/html/....pod.html) | 13:21 | |
smash_ | i'm pondering on doing something por one project in the GSOC list if noone takes it | 13:22 | |
13:23
frzntoz joined
13:25
f00li5h left
|
|||
masak | do we have a spectests GSoC proposal yet? | 13:27 | |
PerlJam | smash_: pondering? if no one takes it? submit anyway! | ||
smash_: just do it! | |||
jnthn | masak: I think somebody mentioned that the other day... | 13:28 | |
IRC handle twigil, iirc. | |||
Probably the twigil that follows me on Twitter. | |||
moritz_ | masak: nope. An interested student asked soem questions about it on a mailing list, but so far I haven't seen a submission | 13:30 | |
13:30
f00li5h joined
|
|||
masak hopes we get one | 13:30 | ||
smash_ | PerlJam: i can't apply, i'm not a student | ||
masak | it'd be sad to run out of spectests to implement :) | ||
PerlJam | smash_: oh, then ignore the "submit anyway" part and just do it anyway! :) | 13:31 | |
smash_ | PerlJam: exactly :) | ||
mikehh | rakudo (6b54693 builds on parrot r45447 - make test PASS, spectest_smolder (pugs r30336 -> #33035) FAIL - Ubuntu 10.04 beta amd64 (gcc with --optimize) | 13:34 | |
rakudo - t/spec/S06-multi/syntax.rakudo - Failed tests: 21-22 | |||
rakudo - t/spec/S05-mass/properties-general.rakudo - TODO passed: 4-6, 11-13, 544-546, 550 | |||
sorrt that should be smolder #33065 | 13:35 | ||
kcwu | 1 | 13:37 | |
oops | |||
13:37
ruoso joined
13:39
MOAR-f001i5h joined
|
|||
PerlJam hopes at least one of the perl 6 projects gets a slot (GSoC) | 13:40 | ||
masak too :) | 13:44 | ||
moritz_ too | |||
13:44
frzntoz left
|
|||
moritz_ | man, people seem to really not like writing a schedule | 13:44 | |
masak | it's hard. | ||
slavik | is it possible with parrot to limit the amount of memory it will use? (similar to JVM's Xmx variable | 13:45 | |
argument* rather | |||
moritz_ | yes; but it's also important | ||
slavik: ulimit -v | |||
on the command line, before starting parrot | |||
13:45
MOAR-f001i5h left
|
|||
slavik | moritz_: not exactly same as -Xmx though ... | 13:45 | |
PerlJam | masak: did you see the comments on your proposal ? :) | 13:46 | |
masak | yes. | ||
I will. thinking about it now. | |||
13:46
payload joined
13:47
f00li5h left
13:50
f00li5h joined,
molaf joined
13:51
f00li5h left,
f00li5h joined
13:52
bacek left
14:05
jaldhar left
|
|||
masak | slightly more elaborate schedule: gist.github.com/360097 | 14:06 | |
PerlJam, moritz_: how's that? | |||
14:06
jaldhar joined
14:07
lichtkind joined
|
|||
moritz_ | masak: much better | 14:08 | |
PerlJam | indeed | ||
14:08
ignacio_ joined
|
|||
CokeBot9000 | slavik: -Xmx doesn't exist yet. | 14:08 | |
masak posts it | |||
slavik | CokeBot9000: is it something that is planned though? | ||
CokeBot9000 | slavik: trac.parrot.org/parrot/ticket/827 if you want to find out when it shows up. | 14:09 | |
slavik | nice | 14:10 | |
thanks | |||
14:10
ascent__ joined,
ascent__ left
|
|||
PerlJam | masak: I worry a little bit that pack/unpack are going to be more problematic than anyone thinks. | 14:11 | |
masak | PerlJam: yes, I think it might be. | ||
it's certainly the thing needing spec the most. | |||
moritz_ | depends on how much of (un)pack you actually want to implement | ||
masak | on the other hand, I expect that one to be the hard one, and I expect to be ahead of schedule by then. | 14:12 | |
I've already looked at pack once or twice before as well. the thing it needs most is free tuits. | |||
jnthn | moritz_: Is there some trick needed to make things I post on rakudo.org actually show up? | 14:13 | |
moritz_: Oh, maybe just cache... | |||
moritz_ | jnthn: good question... the Copenhagen release announcement only showed up for non-authenticated users when I posted it twice :/ | 14:14 | |
jnthn | moritz_: ah, it's done it now. | ||
masak | \o/ method postcircumfix:<{ }> works fine on master! \o/ | 14:15 | |
now, *that's* a reason to upgrade right there! :) | |||
14:15
Guest68320 left
|
|||
moritz_ | there are lots of cool things that work in master :-) | 14:17 | |
CokeBot9000 | o/\o ! | ||
moritz_ wonders with whom CokeBot9000 is dancing | 14:18 | ||
14:21
meppl joined
|
|||
smash_ | are there any plans to add things to src/core/IO/, like for example src/core/IO/Cwd.pm ? | 14:22 | |
14:22
Patterner left
14:23
alester joined
|
|||
moritz_ | smash_: if the spec talks about IO::Cwd, then rakudo will have it one day... | 14:23 | |
smash_: however the current IO:: hierarchy in the specs is overly complicated, and not likely to be implemented as-is | |||
smash_ | moritz_: let me search the spec | ||
PerlJam | which is why we need ingy hacking on rakudo and the spec :) | 14:24 | |
CokeBot9000 | moritz_: it's a high five! | 14:25 | |
masak was just going to say that | |||
14:26
jonasbn left
|
|||
smash_ | can't seem to find a straight answer | 14:28 | |
14:29
constant left
|
|||
moritz_ | I trust you found perlcabal.org/syn/S32/IO.html ? | 14:30 | |
masak | this seems to be interesting reading for people who have plans for Perl 6's CPAN: blogs.perl.org/users/brian_d_foy/20...nt-do.html | ||
14:33
Psyche^ joined,
Psyche^ is now known as Patterner
14:36
constant joined,
constant left,
constant joined
|
|||
smash_ | moritz_: yes, thks | 14:37 | |
14:41
justatheory joined
14:43
justatheory left
14:47
uniejo left
14:54
frzntoz joined
14:56
nihiliad joined
|
|||
ingy sees the .pm6 patch was applied | 15:00 | ||
yay! | |||
ingy dances | |||
moritz_ | ingy: yes, just didn't get around to closing the ticket yet | ||
ingy | moritz_: I just read the git log | 15:01 | |
CokeBot9000 | ingy: first hit is free. | 15:05 | |
masak | all hits are free. it's Artistic 2.0 :) | 15:07 | |
pugssvn | r30337 | moritz++ | [t/spec] test loading of modules ending in .pm6 | 15:08 | |
moritz_ dumb | |||
pugssvn | r30338 | moritz++ | [t/spec] add test module which I forgot in last commit, moritz-- | 15:09 | |
masak | ingy: while I'm here: I know I've asked this before, but whatever happened to kwid? it was such a nice format, but all links to its specifications online are broken :( | 15:10 | |
s/I'm/you're/ | |||
15:14
tylerni7 left
15:17
payload left
|
|||
moritz_ | rakudo: class A::B { }; class A { }; say "lives" | 15:20 | |
p6eval | rakudo 6b5469: OUTPUT«lives» | ||
moritz_ | BEGIN { @*INC.push('pugs/t/spec/packages') }; use A::A; | 15:21 | |
rakudo: BEGIN { @*INC.push('pugs/t/spec/packages') }; use A::A; | |||
p6eval | rakudo 6b5469: OUTPUT«Unable to find module 'A::A'.current instr.: 'perl6;Perl6;Module;Loader;need' pc 34932 (src/gen/role_pm.pir:824)» | 15:22 | |
moritz_ | rakudo: BEGIN { @*INC.push('/home/p6eval/pugs/t/spec/packages') }; use A::A; | ||
p6eval | rakudo 6b5469: OUTPUT«Null PMC access in type()current instr.: 'perl6;D;!class_init_17' pc 403 (EVAL_3:188)» | ||
jnthn | epic fail! | ||
wtf. :-/ | |||
moritz_ | rakudo: BEGIN { @*INC.push('/home/p6eval/pugs/t/spec/packages') }; use B::Grammar; | ||
jnthn | Anyway, seems it found the module... | ||
p6eval | rakudo 6b5469: ( no output ) | ||
moritz_ | it did | ||
rakudo: BEGIN { @*INC.push('/home/p6eval/pugs/t/spec/packages') }; use B::Grammar; class B { }; say "alive" | 15:23 | ||
p6eval | rakudo 6b5469: OUTPUT«Illegal redeclaration of symbol 'B'current instr.: 'perl6;Perl6;Grammar;_block249' pc 40351 (src/gen/perl6-grammar.pir:360)» | ||
moritz_ wanted to find out if RT #73912 was fixed | |||
but it seems it still fails if the class declaration was in a different file | 15:24 | ||
anyway, you can use the trick with the absolute path to try to load any .pm file in the pugs repo through p6eval | 15:26 | ||
.oO( how very safe ) |
|||
masak | o.O | 15:28 | |
15:28
dual left
|
|||
masak | #perl6 -- giving the black-hat p6eval hackers LHF on a regular basis :P | 15:28 | |
good thing not many people have commit access to the Pugs repo... :P | 15:29 | ||
szbalint | heheh | 15:37 | |
15:39
simcop2387 left
15:41
simcop2387 joined
|
|||
smash_ | omg, i actually got a function working in src/core !!! | 15:45 | |
masak | \o/ | 15:47 | |
smash_ | gist.github.com/360202 | 15:49 | |
of course now the test file from spec is not working | |||
ingy | masak: kwid will be coming back soon | 15:52 | |
masak | ingy: \o/ | ||
ingy | masak: it's part of the Acmeism trilogy | ||
masak | of which I know absolutely nothing. | 15:53 | |
ingy | C'Dent, TestML and Kwid | ||
C'Dent is for writing modules that work anywhere. TestML is for the unit tests that run anywhere, and Kwid (not the final name) is about doc that works everywhere | 15:54 | ||
masak | ah. | ||
ingy | I plan to start releasing cdent mods soom, and so will need all three | 15:55 | |
kwid is just a dialect (the one you like) of a doc compilation system | 15:56 | ||
same as cdent, you compile into a common tree form and emit to an existing native form | |||
15:57
M_o_C joined
|
|||
ingy | masak: and Acmeism is my philosophy that all language hackers need to work together | 15:57 | |
make modules, not war | 15:58 | ||
masak | ingy: I agree. :) | ||
ingy | masak: you are an Acmeist | ||
I'll get you a t-shirt :) | |||
masak | "when you don't create things, you become defined by your tastes rather than ability. your tastes only narrow & exclude people. so create." -- _why | ||
ingy | why++ | 15:59 | |
I know why's real name... | 16:00 | ||
it's Why | |||
it really is | |||
I won't say his last name though | |||
REPLeffect | just don't create so much that you burn out and leave the internet altogether | ||
16:00
eternaleye left
|
|||
ingy | he must have had hippy parents | 16:00 | |
CokeBot9000 | I'm guessing "Not." | ||
ingy | haha | 16:01 | |
TimToady | Knot maybe | ||
or Knott | |||
as in 's Berry Farm | |||
ingy | I first met Why in a Shari's in Salt Lake City | ||
[particle] | haven't been to Knott's in a very long time | ||
is it still around? | |||
ingy | isn't it up near Duluth? | ||
TimToady | I remember when they didn't charge admission, and the only ride was the Calico Mine | 16:02 | |
[particle] | anahiem, or so | ||
TimToady | near the Magic Kingdom | ||
ingy | TimToady: you can use .pm6 modules now :) | ||
TimToady | the original one... | ||
ingy | next to your .pm modules | ||
enjoy | |||
PerlJam | ingy: so ... you think something will come of kwid this time? Maybe if you change the name it would help :) | 16:03 | |
ingy | PerlJam: already done | ||
TimToady | yes, though, of course, that doesn't necessarily help me with P5 | ||
I'll have to rename STD.pm to STD.pm6 for that to help | |||
ingy | do it | 16:04 | |
TimToady | and make Cursor.pm follow the same policy | ||
masak | I could imagine using kwid for documenting my Perl 6 methods. | ||
TimToady hears and obeys | |||
PerlJam | yeah, I don't see the problem with just doing it | ||
ingy | PerlJam: the problems always come later :) | 16:05 | |
TimToady | though often the problems came earlier too | ||
PerlJam | sure, but we adapt. | ||
TimToady | the adept adapt | ||
CokeBot9000 must be getting old and is tired of adapting. | |||
PerlJam | The only real problem is when we're forced to adapt quicker than we can handle. | 16:06 | |
TimToady | Early adapters... | ||
ingy | TimToady: I'll adopt that idea | ||
PerlJam | ("we" as in "humans in general") | ||
Hmm. | 16:07 | ||
"early adapters" give the chasm a new, useful meaning too perhaps :) | |||
ingy | someone needs to write pm6.vim | 16:08 | |
pmurias | ingy: what would it do? | ||
TimToady | We, the early adept, help the early adapters to help the early adopters... | ||
PerlJam | how would it differ from perl6.vim? | ||
ingy | sorry, I wasn't aware | ||
does it recognize .pm6 yet? | 16:09 | ||
PerlJam | doubtful | ||
TimToady | doesn't even recognize .pm, since that's ambiguous | ||
ingy | nod | ||
TimToady | generally need a vim: line | ||
ingy | do we know the maintainer? | ||
:) | |||
16:10
Chillance left
|
|||
moritz_ | ingy: github.com/petdance/vim-perl | 16:10 | |
PerlJam | There's two I think. One in the pugs repo and one on github | ||
moritz_ | the github one is more up to date | 16:11 | |
16:11
justatheory joined
|
|||
TimToady | but I still use the other one out of laziness | 16:11 | |
alester | the pugs one is not canonical. | ||
At some point I need to make an installer for the vim-perl project. | |||
TimToady | .oO(and gitophobia?) |
||
moritz_ | it's just software -- nothing to be afraid of | 16:13 | |
ingy | TimToady: I thought gitophobia was so last decade | ||
it's nice like perl | |||
TimToady | I have Pre Traumatic Stress Disorder | 16:14 | |
PerlJam | git *so* has the perl-nature. I can't imagine any Perl people having gitophobia. | ||
TimToady | it seems to have a great deal of the Perl 5 nature to me...maybe that's the problem... | 16:15 | |
ingy | PerlJam++ | ||
PerlJam | TimToady: that could very well be true. | ||
16:15
moritz_ sets mode: +oo ingy alester
|
|||
jnthn | when is git 6 coming out, dammit? | 16:16 | |
PerlJam | jnthn: christmas ;) | ||
jnthn | \o/ | ||
TimToady | they're blocking on Perl 6 | ||
[particle] | git definitely stole impatience from perl. | 16:17 | |
the git developers couldn't even wait until they had an api | 16:18 | ||
jnthn | Unfortunately, I'm still too lazy to learn how to use it. | 16:19 | |
TimToady | "TWO BITS!!!!!!' --Roger Rabbit | 16:20 | |
.o(somebody mention hubris, quick) | 16:21 | ||
16:21
araujo joined
|
|||
smash_ | can anyone run '$ make t/spec/S16-io/getc.t' from rakudo root directory to verify if it's failling for me only ? thks | 16:21 | |
PerlJam still thinks that's crazy | 16:22 | ||
Does rakudo parse orelse ? | 16:23 | ||
16:24
payload joined
|
|||
PerlJam doubts | 16:24 | ||
moritz_ | rakudo: say 1 orelse 2 | ||
p6eval | rakudo 6b5469: OUTPUT«Confused at line 11, near "say 1 orel"current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
moritz_ | nope | ||
jnthn | no | ||
TimToady | PerlJam: #11947 You know, this sort of thing is amenable to experimental observation. --MJD | ||
moritz_ | smash_: where's your patch? | 16:25 | |
smash_ | moritz_: don't have it yet | ||
PerlJam | TimToady: Indeed. But sometimes it's more useful is *someone else* performs the experiment :) | ||
moritz_ currently in a messed-up rakudo branch | |||
smash_: I can test it, but it's going to take a while before I get there | 16:26 | ||
PerlJam | s/is/if/ | ||
moritz_ | smash_: but since it's not listed in t/spectest.data, it's likely to fail in rakudo | ||
smash_ | damn, that's the only test for 'getc' | 16:27 | |
moritz_ | smash_: you can simplify the test file not to use 'orelse' | 16:28 | |
just 'or' would be a suitable approximation | 16:29 | ||
smash_ | tried that already, but that's not the only problem with that test file | ||
moritz_ | and test files are meant to be as simple as possible, unless wrt the feature being tested | ||
masak | swimming & | 16:30 | |
16:30
masak left
|
|||
pugssvn | r30339 | moritz++ | [t/spec] simplified getc.t for smash++ | 16:31 | |
moritz_ | smash_: didn't like the print $fh:, now changed to $fh.print: | ||
smash_ | yeap, didin't like that print either | ||
moritz_ | now the first failure I get is 'Could not find sub &getc' | ||
smash_ | moritz_: great, thks! | 16:32 | |
16:33
dual joined
16:35
riffraff left
16:44
ash__ joined
|
|||
ash__ | i think i found a bug | 16:44 | |
rakudo: class A { method postcircumfix:<<( )>>($stuff) { say $stuff } }; A.new.(4); | |||
p6eval | rakudo 6b5469: OUTPUT«invoke() not implemented in class 'A'current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
ash__ | you should be able to define with << >> as well as < > right? | ||
moritz_ | rakudo: class A { method postcircumfix:<( )>($stuff) { say $stuff } }; A.new.(4); | ||
p6eval | rakudo 6b5469: OUTPUT«Capture()<0x58d2070>» | ||
[particle] | see if masak++ found it first | 16:45 | |
dalek | kudo: 6b54693 | (Ingy dot Net)++ | src/Perl6/Module/Locator.pm: Patched rakudo to look for .pm6 modules. Signed-off-by: Moritz Lenz [email@hidden.address] |
||
moritz_ | rakudo: class A { method postcircumfix:«( )»($stuff) { say $stuff } }; A.new.(4); | ||
p6eval | rakudo 6b5469: OUTPUT«invoke() not implemented in class 'A'current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
jnthn | ash__: Should, guess we don't support that yet. | ||
ash__ | << >> < > and « » all sorta mean the same thing though, right? just if your using unicode vs if you need to define a < or something? i just wanted to make sure | 16:46 | |
also, i was wondering if this is correct | 16:47 | ||
moritz_ | actually <<...>> and «...» also interpolate | ||
ash__ | rakudo: class A { method postcircumfix:<( )>($stuff) { ... } }; say A.^methods(:local); | ||
p6eval | rakudo 6b5469: OUTPUT«postcircumfix:<( )>» | ||
ash__ | i kinda figured that would put out postcircumfix:( ) | ||
not with the < >, because then you depend on if you used < > vs << >> vs unicode ones | 16:48 | ||
jnthn | ash__: No, it's correct | ||
ash__: Even if you use the others we canonicalize to <...> | |||
ash__ | okay, just checking | ||
ah, well that might be the problem | |||
jnthn | So writing <<( )>> should still get you <( )> in there | ||
I guess we're failing to do that at the moment though. | |||
ash__ | rakudo: class A { method postcircumfix:«( )»($stuff) { say $stuff } }; A.^methods(:local).say; | ||
p6eval | rakudo 6b5469: OUTPUT«postcircumfix:«( )»» | ||
jnthn | Yeah, that's wrong. | 16:49 | |
ash__ | okay, got ya | ||
16:49
envi^home left
|
|||
ash__ | doing << >> does the same thing, it prints postcircumfix:<<( )>> | 16:50 | |
jnthn | yeah | ||
should just be postcircumfix:<( )> | |||
We probably get operators wrong in a similar way. | 16:51 | ||
rakudo: sub postfix:<!>($n) { [*] 1..$n }; 10! | |||
rakudo: sub postfix:<!>($n) { [*] 1..$n }; say 10! | |||
p6eval | rakudo 6b5469: ( no output ) | ||
rakudo 6b5469: OUTPUT«3628800» | |||
jnthn | rakudo: sub postfix:<<!>>($n) { [*] 1..$n }; say 10! | ||
p6eval | rakudo 6b5469: OUTPUT«3628800» | ||
jnthn | oh. | ||
We get it right there... | 16:52 | ||
rakudo: sub postfix:<<!>>($n) { [*] 1..$n }; &postfix:<!>(10) | |||
p6eval | rakudo 6b5469: ( no output ) | ||
jnthn | yeah | ||
OK, just methods need da fix. | |||
ash__ | calling &postfix:<!> should of worked there right? | 16:53 | |
jnthn | Yeah | 16:54 | |
Those work fine. | |||
ash__ | oh, that did work, i thought it didn't, oops | 16:55 | |
what kind of terminals accept unicode input? or is it repr thats not right? | 16:56 | ||
trying &postfix:«!»(3).say; locally didn't work, but i think its either my terminal or repr | 16:57 | ||
repl i mean | |||
moritz_ | the repl and -e doesn't like non-ASCII chars | ||
ash__ | okay, thats fine | 16:58 | |
16:58
cdarroch joined,
cdarroch left,
cdarroch joined
|
|||
moritz_ | I've started a branch to implement the Cool class, and let most builtin classes inherit from it | 17:00 | |
but when I make Integer inherit from Any instead of Cool, it dies while compiling Test.pm | |||
method HOW not found in class Integer | |||
it's in the 'cool' branch on github | 17:01 | ||
ash__ | isn't it Int? Integer is from parrot, i think | ||
jnthn | Does Cool inherit from Any? | ||
moritz_ | yes | ||
proto = p6meta.'new_class'('Cool', 'parent'=>'Any') | 17:02 | ||
jnthn | Just Int has that problem, or any class? | ||
moritz_ | not sure | 17:03 | |
i changed and reverted some bits, need to recompile agian to test | |||
17:03
mberends joined
17:04
mberends_ joined,
f00li5h left
|
|||
moritz_ | need to buy some nom, will be back later | 17:04 | |
17:05
mberends_ left,
dakkar left
|
|||
smash_ | t/spec/S16-io/getc....1..1 | 17:05 | |
ok 1 - getc() works even for utf-8 input | |||
ok | |||
\o/ | |||
17:08
REPLeffect left
17:09
mberends left
|
|||
pugssvn | r30340 | pmurias++ | [mildew] updated to current STD | 17:11 | |
r30340 | move t/eval.t, t/int.t and t/caller_my_pseudo_packages.t to t-failing | |||
r30341 | pmurias++ | [mildew] implemented INFERRED-TYPE-TEST | |||
17:12
mberends joined
17:16
ignacio_ left
17:27
SmokeMachine joined
17:29
Trashlord joined
17:30
ash__ left
17:31
ash__ joined
|
|||
mberends has enormous respect for the amount of thought behind datetime.perl.org/?Modules | 17:31 | ||
phenny | mberends: 13:00Z <masak> tell mberends that I'm slowly converging on a 'complete' Temporal spec, but I am now having some doubts about the thing with time zones and leap seconds that I'd like to discuss with you before I push. | ||
17:31
ash__ left
17:32
ignacio_ joined
|
|||
pugssvn | r30342 | lwall++ | [STD et al.] rename .pm to .pm6 for all p6 modules in this dir | 17:32 | |
r30342 | [Cursor] prefer .pm6 over .pm in any particular directory when searching for p6 code | |||
r30342 | [Actions.pm] handle prefix metaops without spewing yaml dumps | |||
17:34
REPLeffect joined
|
|||
mberends | good, .pm6 clears up ambiguities. Better roll that into proto as well. | 17:34 | |
17:35
colomon joined
17:37
xabbu42 left
|
|||
mberends | hi colomon, how are you enduring your house move? | 17:37 | |
pausenclown_ | when designing the DOM classes for an XML Parser, should one stick to the W3C nomenclature? | 17:38 | |
mberends | pausenclown_: preferably, but not if it hurts, presumably | 17:40 | |
17:43
REPLeffect left
|
|||
pugssvn | r30343 | lwall++ | [Actions] botched previous patch semantically | 17:43 | |
slavik | moritz_: the Perl6 book, can I consider it "authoritative" ? | 17:44 | |
pausenclown_ | something that hurts is probably reimplementing a NodeList ( www.w3schools.com/dom/dom_nodelist.asp ) =) | 17:45 | |
PerlJam | slavik: how about "useful" ? | ||
TimToady | it has authors | 17:46 | |
colomon | mberends: we are now officially out of our old house. | ||
moritz_ | slavik: no | ||
slavik | thanks | ||
PerlJam | slavik: The spec is the only thing that is "authoritative" | 17:48 | |
moritz_ | jnthn: the error occurs for any class... class A { }; say A.WHAT => Method 'HOW' not found for invocant of class 'Integer' | ||
colomon | mberends: (Typing this from my very much "some assembly needed" new office.) Most of our stuff is either at my in-laws or on my moving truck scheduled to arrive tomorrow. Am exhausted. Occasional fits of sentimentality at leaving the my most stable residence since before college. | ||
moritz_ | PerlJam: and even that is only partially authorotative | ||
17:48
ignacio__ joined
|
|||
pausenclown_ | unless where it isn't. | 17:48 | |
17:48
ignacio_ left
|
|||
CokeBot9000 | moritz_: does the book project have a test target (to make sure all the examples work?) | 17:49 | |
PerlJam | Hmm. I wonder if we even differentiate between "complete example" and "snippet". The former could have a test target, but the latter can only be syntax checked. | 17:50 | |
pugssvn | r30344 | lwall++ | [Cursor] ignore .pm files that contain 'package Foo;' | 17:51 | |
jnthn | moritz_: OK | 17:52 | |
CokeBot9000 | PerlJam, moritz_: having done that for the parrot docs, I can probably whip something up. | ||
jnthn | moritz_: I has a WANT for nom now, but I can look later. | ||
moritz_ | CokeBot9000: that would be cool | ||
jnthn: no hurry | |||
CokeBot9000 | moritz_: hokay. I think I even have a commit bit. | ||
smash_ | moritz_: the 'getc' test is passing | ||
moritz_ | smash_: then ship it! | 17:53 | |
PerlJam | looks like all we have are '=begin programlisting ... =end programlisting' | ||
moritz_ | science.slashdot.org/story/10/04/08...(Slashdot) | ||
of course we had that before, virtually | |||
PerlJam | And I'm fairly sure they don't all stand alone as full fledged programs | 17:54 | |
smash_ | moritz_: have to go now, i'll ship it later | ||
17:54
smash_ left
|
|||
jnthn | moritz_: I just thought that and was like "wow, a meatspace hugme!" | 17:55 | |
s/thought/saw/ | |||
mberends | an online hugvest party will be the Next Big Thing after the webcam party! | ||
17:55
stephenlb joined
|
|||
colomon | git pull | 17:55 | |
From [email@hidden.address] | |||
* [new branch] cool | |||
?! | |||
17:56
REPLeffect joined
|
|||
Su-Shee | mberends: you're sooo late... there's already remote hugging for over a decade now... :) | 17:56 | |
moritz_ | colomon: A branch where I try to implement class Cool | ||
Su-Shee | hello everyone. | ||
17:56
pmurias left
|
|||
moritz_ hugs Su-Shee | 17:57 | ||
PerlJam | moritz_: cool :) | ||
Su-Shee | moritz_: it's even a highlighted hug! | ||
moritz_ | PerlJam: I thought you'd say that | 17:58 | |
slavik | what will class cool do? | 18:02 | |
moritz_ | look cool, mostly | ||
see S02 | |||
colomon: btw our new proposed #rs time is Tuesday, 18:30 UTC - would that work for you? | |||
18:05
nihiliad left,
nihiliad joined
18:11
rgrau` joined
18:12
rgrau left
18:14
petdance joined
18:17
CokeBot9000 left
18:18
CokeBot9000 joined
18:19
mikehh left
18:21
mberends left
|
|||
TimToady | std: use MONKEY_TYPING; | 18:26 | |
p6eval | std 30344: OUTPUT«ok 00:01 106m ./lib/MONKEY_TYPING.pm6ok 00:01 107m» | ||
pausenclown_ | rakudo: class A { method x { 1 } }; class B { has A $.a handles <x>; }; say B.new.x | 18:27 | |
p6eval | rakudo 6b5469: OUTPUT«Method 'x' not found for invocant of class 'B'current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
18:28
mikehh joined
|
|||
pausenclown_ | std: class A { method x { 1 } }; class B { has A $.a handles <x>; }; say B.new.x | 18:28 | |
p6eval | std 30344: OUTPUT«ok 00:01 108m» | ||
TimToady | note that STD only does syntax and shallow semantics | 18:30 | |
18:30
justatheory left
|
|||
colomon | moritz_: cool! | 18:32 | |
moritz_: As far as I know that will work for me in general, don't really have a schedule yet but I would expect most weekday afternoons will be open. | 18:33 | ||
moritz_ | ok | ||
TimToady | actually, I remember Knott's Berry Farm from before it even had the Calico Mine. Just a duck pond, restaurant, chapel, and real train. Oh, and the volcano with sound effects produced by amplifying the sound of a piano hammer hitting a screen door. | 18:37 | |
the chapel had a cool blacklight paining of the transfiguration | 18:38 | ||
"Theme park? What's that?" | |||
sjohnson | anyone up for some perl golf? | 18:40 | |
PerlJam | Perl 6 golf? | ||
sjohnson | i'm still on my perl 5 training wheels | 18:41 | |
moritz_ | jnthn: it seems that descalarref dereferences too much when Int inherits from Cool, not Any | 18:43 | |
18:44
mberends joined
18:49
petdance left,
mberends left
18:51
rgrau joined
|
|||
moritz_ | previous diagnostics was wrong: the error happens at startup | 18:53 | |
TimToady | does Clang ignore the first part or the second part of a conflict? | 18:57 | |
moritz_ has no idea | |||
I think the error location is at the first conflict marker | |||
but I don't know if the rest is ignored or not | 18:58 | ||
TimToady | yes, but it continues and parses one side or the other | ||
moritz_ | right | ||
I hope you're not planning to do error recovery in STD.pm :-) | |||
TimToady | oh, it'll be fatal, but maybe not till CHECK time | 18:59 | |
moritz_ | why not? | ||
TimToady | cascading errors are so much fun | ||
balancing that is the possibility that something later will shed light on something that happened earlier | 19:01 | ||
moritz_ | perl 5 has such errors | ||
first it complains about non-declared variables (under 'use strict') | |||
TimToady | yes, but it's not a one-pass parser really | ||
moritz_ | and only later complains about syntax errors | ||
19:01
mberends joined
|
|||
TimToady | so less likely to emit the first error first | 19:02 | |
moritz_ hopes so | |||
PerlJam | I'd like a previous "$x undeclared" error to somehow hide future "$x undeclared" errors sometimes. | ||
i.e., I really only need to see where the cascade started, not where it went | 19:03 | ||
TimToady | std: $x; $x; | ||
p6eval | std 30344: OUTPUT«===SORRY!===Variable $x is not predeclared at /tmp/2QHIIZnPvT line 1:------> $x⏏; $x;FAILED 00:01 108m» | ||
moritz_ | std: $x; $y; $x | ||
p6eval | std 30344: OUTPUT«===SORRY!===Variable $x is not predeclared at /tmp/S8XVCUPA2R line 1:------> $x⏏; $y; $xFAILED 00:01 106m» | ||
TimToady | yes, well, that's because it's fatal | ||
moritz_ | well, it reports only the first error anyway :-) | ||
std: my $x; my $x; my $x | 19:04 | ||
p6eval | std 30344: OUTPUT«Potential difficulties: Useless redeclaration of variable $x (see line 1) at /tmp/5u4s4bt8u2 line 1:------> my $x; my $x⏏; my $x Useless redeclaration of variable $x (see line 1) at /tmp/5u4s4bt8u2 line 1:------> my $x; my $x; my | ||
..$x⏏<EOL>… | |||
TimToady | in a panic-stricken sort of way | ||
moritz_ | panic++ | ||
19:04
ash__ joined
|
|||
TimToady | well, there's some code in there to remove dup warnings, but that is apparently not triggering it | 19:05 | |
PerlJam | TimToady: I'm operating under a future universe where you've moved the fatality to CHECK time :) | ||
moritz_ | TimToady: under no strict;, how are undeclared variables scoped? | 19:09 | |
19:10
ShaneC joined,
ShaneC left
19:20
solu joined
|
|||
pausenclown_ | std: my @a = 1,2,3; print @a[-1] | 19:24 | |
p6eval | std 30344: OUTPUT«===SORRY!===Unsupported use of [-1] subscript to access final element; in Perl 6 please use [*-1] at /tmp/lsEDt4I3LE line 1:------> my @a = 1,2,3; print @a[-1]⏏<EOL>FAILED 00:01 108m» | ||
moritz_ | rakudo: my @a = 1,2,3; print @a[-1] | ||
p6eval | rakudo 6b5469: OUTPUT«Cannot use negative index on arrayscurrent instr.: '&die' pc 17293 (src/builtins/Junction.pir:404)» | ||
pausenclown_ | rakudo: my @a = 1,2,3; print @a[*-1] | ||
p6eval | rakudo 6b5469: OUTPUT«3» | 19:25 | |
pausenclown_ | kk | ||
19:26
smash_ joined
|
|||
smash_ | hello everyone | 19:27 | |
19:28
frzntoz left
|
|||
pugssvn | r30345 | moritz++ | [perl6.org] fix links to STD.pm | 19:28 | |
19:29
clintongormley left
|
|||
moritz_ | welcome back smash_ | 19:30 | |
rakudo: { redo } | 19:31 | ||
p6eval | rakudo 6b5469: OUTPUT«Warning» | ||
moritz_ | rakudo: say (* ~~ Whatever).WHAT | 19:32 | |
p6eval | rakudo 6b5469: OUTPUT«Int()» | ||
Su-Shee | alpha: my @fingers = <thump index middle ring pinky>; my ouch = @fingers.splice(2, 1); @fingers.say; @ouch.say; | ||
p6eval | alpha 30e0ed: OUTPUT«Malformed declaration at line 10, near "ouch = @fi"in Main (file <unknown>, line <unknown>)» | ||
Su-Shee | alpha: my @fingers = <thump index middle ring pinky>; my @ouch = @fingers.splice(2, 1); @fingers.say; @ouch.say; | ||
p6eval | alpha 30e0ed: OUTPUT«thumpindexringpinkymiddle» | ||
Su-Shee | alpha: my @fingers = <thump index middle ring pinky>; my @ouch = @fingers.splice(2, 1, 'toe'); @fingers.say; @ouch.say; | 19:33 | |
p6eval | alpha 30e0ed: OUTPUT«thumpindextoeringpinkymiddle» | ||
19:34
ash__ left
19:36
M_o_C left
|
|||
Su-Shee | alpha: my @fingers = <thump index middle ring pinky>; @fingers.splice(2) <== ('toe', 'wood', 'somethingweird'); @fingers.say | 19:36 | |
p6eval | alpha 30e0ed: OUTPUT«Feed operators are not yet implemented in Rakudo, sorryin sub » | 19:37 | |
19:37
solu left
19:40
mberends left
|
|||
bkeeler | Morning all | 19:49 | |
jnthn back from da noms | |||
o/, bkeeler | |||
moritz_: Is the latest fejl pushed in the cool branch? | 19:50 | ||
19:51
Trashlord left,
mberends joined
|
|||
bkeeler | Oh and Tuesday is fine for #rs | 19:52 | |
Su-Shee | can I call classes like Bag and Range and such container classes? | ||
jnthn | o/ mberends | 19:53 | |
smash_ | can i push a change to src/core/IO.pm, by my tests it doesn't break anything and makes t/spec/S16-io/getc.t pass ? | 19:54 | |
jnthn | smash_: Can I glance the diff first? | 19:55 | |
smash_ | jnthn: of course | ||
jnthn: gist.github.com/360460 thks | 19:57 | ||
jnthn | moritz_: oh my, what an error. :-/ | ||
smash_: Seems that the indenting is inconsistent with the rest of the file in the method? | 19:58 | ||
Other than that, it looks OK. | 19:59 | ||
mberends | o/ jnthn, just getting used to ".pm6" | 20:00 | |
jnthn | :-) | 20:01 | |
I'll have to get used to that too. | |||
smash_ | jnthn: fixed, refresh.. i also added getc.t to spectest.data | ||
jnthn | +1 | 20:02 | |
moritz_: The backtrace appears to be plne hrovno too. | |||
*hrovna | |||
...though not sure that idiom works in Slovak. :-) | 20:03 | ||
20:03
justatheory joined
|
|||
PerlJam | Perhaps it's just that I'm an American, but certain consonants just shouldn't be juxtaposed :-) | 20:04 | |
jnthn | PerlJam: Strbske Plesso ma zmrzlinu v trhe! | 20:07 | |
moritz_: Gah. It's an...error reporring fail. | |||
class Parameter is cool { | |||
Note lowercase c | |||
Should be Cool | |||
PerlJam | jnthn: is that real language? I can't pronounce the z-word | ||
jnthn | zmrzlina = ice cream :-) | 20:08 | |
CokeBot9000 | jnthn: that was pretty much the only word Google translate got. =-) | ||
jnthn | Well, Strbske Plesso is a place name. | ||
trh is a market square. | |||
It was a crappy sentence really, I was just going for nice looking consonant clusters. :- | 20:09 | ||
dalek | kudo: 8681735 | smashz++ | (2 files): Implement getc funcion in IO, add getc.t to spectest.data |
||
PerlJam | I need google translate to give me a pronunciation guide and an audio file | ||
20:10
Guest95102 left
20:11
SmokeMachine left
|
|||
sjohnson | std: razzle | 20:12 | |
p6eval | std 30345: OUTPUT«Undeclared routine: 'razzle' used at line 1ok 00:01 108m» | ||
jnthn | PerlJam: The r acts slighly vowelish. | 20:13 | |
At least it's not as bad as en.wikipedia.org/wiki/Str%C4%8D_prst_skrz_krk | 20:14 | ||
(has an ogg :-)) | |||
PerlJam | zmer-zlin-u is roughly how I chunk it and say it. | ||
jnthn | zmrz-li-nu is I think the right way | 20:15 | |
PerlJam | um ... the ogg there sounds like an insect talking to me :) | ||
Su-Shee | PerlJam: if you pronounce it less sharp and with more shh and add french nasals, you get polish. :) | 20:16 | |
PerlJam | that's funny because the french are always *not* pronouncing consonants :) | 20:17 | |
Su-Shee | you just need the ongs and engs and angs and all ;) | 20:18 | |
jnthn | PerlJam: Yeah, the ogg does sound a bit...mechanical... :-) | ||
bkeeler | Reminds me of an Onion headline back when: "Clinton deploys vowels to Bosnia" | ||
frettled | skrr skrrk | ||
Su-Shee | *haha* | ||
jnthn | Vowels are overrated. | 20:19 | |
bkeeler knows where his vowel is | |||
frettled | Brits are the worst, they have a hidden wovel: w | ||
PerlJam | The other day I saw someone whose last name was "Michaux" and I wondered how the pronunciation of that differs from "Michaud" | ||
bkeeler | That's Welsh | ||
PerlJam | what bkeeler said | 20:20 | |
bkeeler | Lovely sounding language, Welsh | ||
PerlJam | (the only word I know of where w is used as a vowel is "cwm") | ||
bkeeler | Looking back I should have gone to university in Wales instead of Lancaster, just so I could pick it up | ||
frettled | PerlJam: try pronouncing "why" a bit more carefully next time ;) | 20:21 | |
PerlJam | frettled: :-P | ||
frettled | Sure, the Welsh use it more obviously as a wovel. :) | 20:22 | |
bkeeler | After three years I sounded like someone from Coronation Street :( | ||
PerlJam | of course there's "auld lang syne" which many Americans "know" except for the words ;) | 20:24 | |
jnthn doesn't know the words | |||
It's one of those awkward moments at new years parties. | |||
Where about half the people actually know the words...and the other half not. :-) | 20:25 | ||
PerlJam doubts half of any crowd actually knows the words | |||
bkeeler | I sure don't | ||
jnthn | You know the words to anything after enough drinks. | ||
PerlJam | exactly :) | ||
bkeeler | But I rather dislike the song, so I don't see myself bothering to learn them | ||
frettled doesn't know it. | 20:26 | ||
frettled would have to google it. | |||
Su-Shee | we just drink instead. ;) | ||
jnthn | That sounds so much simpler. :-) | 20:27 | |
20:27
Guest95102 joined
|
|||
Su-Shee | you can add kissing. requires no singing as well. :) | 20:27 | |
frettled | Aha, it's that one! | 20:28 | |
20:29
szabgab left
|
|||
TimToady | I tend to think of Welsh w as a strange-looking omega :) | 20:34 | |
moritz_ | jnthn: thanks, will look more into it tomorrow | 20:38 | |
jnthn | moritz_: k | ||
std: class Foo is InheritingFromNonExistentClass { } | 20:39 | ||
p6eval | std 30345: OUTPUT«ok 00:01 108m» | ||
jnthn | Heh. I guess since it's a trait, there's only so much you can do... | ||
I guess a multi candidate for catching such failures could try and do something a bit smarter though. | 20:40 | ||
20:42
Su-Shee left
|
|||
jnthn | rakudo: class Foo is InheritingFromNonExistentClass { } | 20:43 | |
p6eval | rakudo 6b5469: OUTPUT«Could not find sub &substrcurrent instr.: 'perl6;Signature;_block21375' pc 485386 (src/gen/core.pir:72064)» | ||
jnthn | ah ffs. | ||
20:46
molaf left
|
|||
bkeeler | moritz_: So I was looking at your refactor_mob_generation branch | 20:48 | |
moritz_: Still around? | |||
moritz_: Anyway, the thing that bothers me is it looks like it's adding an extra copy of all the captured things. Seems like that might have a performance impact, since MATCH is called a *lot* during a parse | 20:51 | ||
20:52
pausenclown_ left
|
|||
bkeeler | moritz_: I'll time a few setting compiles and see, I suppose | 20:52 | |
20:59
Exodist_ joined
21:00
mdxi_ joined,
Exodist left,
mdxi left
21:05
masak joined
|
|||
masak | ahoy, #perl6! | 21:05 | |
bkeeler | o/ masak | ||
TimToady | yoha! | 21:06 | |
frettled | Is the masakbot ready for a recharge? | ||
bkeeler injects masakbot with fresh bug juice | 21:07 | ||
masak | does it hurt? | ||
21:07
frettled sets mode: +o masak
|
|||
frettled | I don't know, did it?? | 21:07 | |
masak levels up | |||
21:07
ignacio__ left
|
|||
frettled | \o/ | 21:07 | |
masak | no, it feels quite alright :) | ||
bkeeler | Masak is now a level 42 Champion Bug Slayer, armed with a +4 can of RAID | 21:08 | |
jnthn | \o/ | ||
masak | :) | ||
21:10
holli left
21:12
wknight8111 joined
|
|||
bkeeler | Is there a way to flag a pir sub to be run at program exit? | 21:13 | |
jnthn | Add it as an END phaser | ||
bkeeler | Well, I'm thinking as part of nqp actually | ||
jnthn | Ah | ||
Then no, I don't think so. | |||
21:13
pmurias joined
|
|||
bkeeler | I want to count the number of times cursor's MATCH gets called | 21:13 | |
One of these days I'm gonna add Dtrace support to parrot | 21:15 | ||
jnthn | bkeeler: Well, you could always hack Compiler.pir to print it at exit | 21:19 | |
bkeeler | Yeah, I guess | ||
pmurias | in regards to adding the polymorphic representation and runloop to p5 as a thing separate from smop it seems a better plan than adding smop integration in one go | 21:20 | |
ruoso | pmurias, I'm getting quite convinced about it | 21:22 | |
21:24
IllvilJa left
|
|||
pmurias | ruoso: what i'm i not sure is how can we avoid the performance penalty | 21:29 | |
ruoso | pmurias, I'm getting a discussion on that topic on #p5p now... :) | 21:30 | |
(well not exactly performance, but anyway) | |||
pmurias switches irssi windows ;) | 21:31 | ||
21:31
smash_ left
|
|||
pugssvn | r30346 | masak++ | [S32::Temporal] big change, based on much discussion | 21:31 | |
r30346 | | |||
r30346 | A number of people spent last Sunday discussing various solutions to | |||
r30346 | the Temporal module. This is the result; probably a better idea to read | |||
r30346 | the new file rather than the diff. Briefly, the Temporal you're seeing | |||
r30346 | here is a stripped-down version of CPAN's DateTime; simple, yet powerful. | |||
jnthn | masak++ | 21:32 | |
masak | mberends++ lue++ | ||
mberends | no, masak++ this time ;) | ||
masak | mberends: I couldn't have done it without you :) | ||
jnthn | mberends++ too then :-) | 21:33 | |
mberends | my job on it begins tomorrow morning, following up the theory with a little more practice :) | ||
frettled | jnthn++ for ++-ing enough people | ||
masak | I'd like to add that we're expecting to add some more bells and whistles to the above commit: time zones, formatters, strftime, strptime, and DateTime::Duration (including some additive arithmetic ops). | ||
21:33
frettled sets mode: +o mberends
|
|||
masak | but what just landed is a reasonably minimal, yet potent/extensible core. | 21:34 | |
jnthn | Start small, get an implementation, play with it, iterate. :-) | ||
masak | we know what we want this time. it helps a lot. | ||
basically, this is a subset of CPAN's DateTime. | 21:35 | ||
perhaps the biggest design hesitation I faced was whether to make DateTime objects immutable, and have the "set" methods produce new objects instead. | |||
mberends | masak: for the implementation, would it be feasible to store the timezone as an integer offset, in units of seconds? | 21:36 | |
masak | there were some advantages to that, including method chaining. | ||
in the end, I left them as mutable, and we use lvalue public accessors to change the attributes. | |||
PerlJam | The last modified data is still Apr 5 :) | ||
er, date | 21:37 | ||
masak | PerlJam: hm, so it is. | ||
jnthn | That's why we need an implementation of date/time handling. ;-) | ||
21:38
IllvilJa joined
|
|||
pugssvn | r30347 | masak++ | [S32::Temporal] adjusted date :) | 21:38 | |
frettled | heh | ||
masak | mberends: I haven't thought much about that. either I'd store it as seconds, or I'd leave the string as it is, i.e. '+0200' etc. | ||
frettled | It depends on where you want to have the conversion cost, doesn't it? | 21:39 | |
masak | mberends: haven't really looked what CPAN's DateTime is doing there; seems it might always be creating a DateTime::TimeZone object. | ||
frettled | Remember not to optimize for the rare cases. | ||
PerlJam wonders what it means for a DateTime object to have a timezone | 21:41 | ||
masak | PerlJam: there are two 'modes' for a DateTime object: either it has a fixed timezone, or it has a special timezone called 'floating'. | ||
PerlJam | and what happens when you specify DateTimes that can't exist in the timezone? | ||
masak | PerlJam: read the new spec! | ||
mberends | (underlying thought is, what will the methods need to do with a "-0800" anyway) | ||
PerlJam | yeah, I'm reading, but slowly | ||
masak | PerlJam: (it explicitly says it doesn't disallow times that can't exist in the timezone. this is because it doesn't have the data (in Perl 6 core) to check it. if you want checking, you have to define your own timezone or load a module) | 21:42 | |
mberends: some formatting methods will need to output that. | 21:43 | ||
PerlJam | This time stuff is very much like surveying. You survey an elevation (for instance) and you get a number, but what's the number relative to? You then have your choice of "standards" to choose from. But in order for you to talk about the elevation of your point relative to someone else's data, you'll have to pick a standard that is at least convertable to/from their standard. | 21:47 | |
masak | seems to me there are two such standards, somewhat at odds with each other. | ||
one is UTC. | |||
the other is 'floating'. | |||
UTC is the dead-simple time zone to use when doing datetime arith. | 21:48 | ||
CPAN's DateTime advises to put the DateTime objects in this timezone as much as possible. | |||
'floating' is for when a timezone doesn't really make sense. | |||
sometimes you have no way of knowing the time zone of a datetime coming in from the outside. | 21:49 | ||
ruoso | masak, note that you lose all the calendar-awareness | ||
masak | sometimes you explicitly don't care, and wish to avoid all side effects of DST, leap seconds and the like. | ||
right. | |||
mberends | UTC has no daylight saving, therefore no impossible values or values that occur twice. | 21:50 | |
masak | which is why we can easily put it in core. | ||
21:50
rgrau left
|
|||
ruoso | masak, the DateTime you described is just the Gregorian DateTime | 21:51 | |
PerlJam | one calendaring system at a time! :) | 21:52 | |
ruoso | and the Duration part is missing | ||
ruoso points to the revision before lue's commit | |||
masak | ruoso: yes, I just sent an email to p6l saying what's missing. | 21:53 | |
ruoso: and yes, it's just the Gregorian DateTime. and note that the word "Gregorian" is gone from the spec :) | |||
ruoso | masak, but note that Duration and Gregorian::Duration are two different things | 21:54 | |
as well as DateTime and Gregorian::DateTime | |||
masak | ruoso: Duration is the one coupled with Instant? | ||
ruoso | plain Duration, yes | ||
masak | we're planning to call the DateTime one DateTime::Duration, just like on CPAN. | 21:55 | |
ruoso | and what about different calendar systems? | ||
masak | what about them? | 21:56 | |
ruoso | you might have a calendar where the concept of "month" does not exist | ||
mberends | there will be modules... | ||
masak | ruoso: what mberends said. | ||
ruoso: I think ease of use here means not overdesigning things. | |||
cf Java. | |||
21:57
tri1 joined
|
|||
masak | actually, let me be less humble about that point. I'm all for supporting other calendars, but for me the scale tilts way in favor of giving good support for good ol' Gregor. | 21:57 | |
ruoso | but it's a matter in the same area of why you can't coerce a Buf to a Str without an encoding... | 21:58 | |
frettled | IOW: FFF | ||
masak | other calendars will be very much possible, just not at the expense of the default. | ||
ruoso: no, I don't think it is. | |||
I think in 99.9% of the cases, when people reach for Date and Time, they reach for Gregorian dates and times. | 21:59 | ||
jnthn | Indeed. | ||
masak | the names of the months will be different, but they will still be months. | ||
and if not, please check out that module over there. | |||
jnthn | +1 to keeping what's in core minimal. | ||
ruoso | my concern is about getting a basic type overspecialized | 22:00 | |
mberends | The Temporal synopsis should also specify what functionality should be in the core executable, and what should be implemented in modules that have to be loaded with 'use' commands. | ||
masak | 99.9% of the cases is not overspecializing! | ||
jnthn | Getting a basic type overcomplexified is just as valid a concern. | ||
diakopter | masak: en.wikipedia.org/wiki/Indian_national_calendar | ||
frettled | masak: nice response from John Williams regarding week thingy | 22:01 | |
masak looks | |||
mberends | that will be the plan for locales and named time zones | ||
masak | nod. | ||
I actually had John Williams' exact thought, so maybe we'll go that way. | 22:02 | ||
problem is, it's slightly disorienting in that it steps away from the value in :to<> always being the smallest unit that's *not* truncated. | |||
in fact, I'll write that in a reply now. | 22:03 | ||
frettled | I'm pondering how this DateTime thingy can be implemented without adverse performance (i.e. the Perl 5 DateTime problem). | ||
22:05
Guest95102 left
|
|||
ruoso | frettled, the problem is that DateTime is damn hard | 22:05 | |
frettled | ruoso: not just | ||
ruoso: some parts of DateTime are rather easy, such as how to pretty-print given a known set of values. | 22:06 | ||
e.g. the output of localtime() in P5 | |||
ruoso | masak, anyway... about locales and format, that's probably the part to be most copied from P5 DateTime | ||
masak | we've scrapped locales completely for now. | ||
planning to steal formats wholesale. | |||
ruoso | masak, i.e.: look for the DateTime::Format::* modules on CPAN | ||
masak | aye. | ||
frettled | Doing the easy stuff ought to be quick, doing the hard stuff doesn't. Also, that it's possible to do the hard stuff shouldn't slow down the easy stuff by orders of magnitude (not even one). | 22:07 | |
masak | most of the format modules will stay modules in Perl 6, methinks. | ||
but we'll spec how to make them. :) | |||
ruoso | masak, yes yes | ||
frettled | Some of that is design (or specification) dependent, but I suspect most is implementation dependent. | ||
ruoso | frettled, if you need simple quick math, just use Instants | ||
frettled | ruoso: math? huh? | ||
ruoso | that doesn't have to provide all the insane semantics | ||
22:08
mberends left
|
|||
ruoso needs to go now... | 22:08 | ||
frettled | Never has my blog's title been more apt. :) howcaniexplainthis.blogspot.com/200...e-hit.html | ||
pugssvn | r30348 | Darren_Duncan++ | S32-Temporal : fold nanosecond into second, fixing regression and inconsistency with the rest of the Synopsis | 22:09 | |
masak | frettled++ | 22:10 | |
22:10
xabbu42 joined,
pmurias left
|
|||
masak | wow, that was fast :) | 22:10 | |
frettled | one of the quickest patch-patches ever? | 22:11 | |
masak | I don't mind. those nanoseconds felt weird :) | ||
hours, mintues and seconds is much more symmetric. | |||
frettled | yup | ||
jnthn wonders if there's some analogy with ceil/floor/round and getting to the nearest fooday | 22:12 | ||
masak | I need to sleep for a bit now. | ||
please keep up the good discussion. :) | |||
& | |||
jnthn | o/ | ||
22:12
masak left
|
|||
frettled | masak: excellent idea, I'll follow suit (but in my own bed) | 22:12 | |
oops, discussion crash :) | 22:13 | ||
22:13
snarkyboojum_ joined
22:16
ruoso left
22:20
mberends joined
22:22
arnsholt joined
22:42
justatheory left
22:44
snarkyboojum_ left
22:47
jrtayloriv joined
22:59
cotto_work left
23:00
nihiliad left
23:01
cotto_work joined
23:13
snarkyboojum left
23:16
justatheory joined
|
|||
pugssvn | r30349 | lwall++ | [STD] distinguish continuable-but-fatal "sorry" messages from immediately fatal panics | 23:16 | |
r30349 | [CORE.setting] add 'note' function | |||
r30349 | [gimme5] translate note to print STDERR | |||
23:18
justatheory left
23:26
pausenclown_ joined
23:27
tri1 left,
alester left
23:32
lichtkind left
23:36
lichtkind joined
23:37
lichtkind left
|
|||
lue | o hey there everyone! | 23:40 | |
m6locks | yhalothar | 23:41 | |
23:43
ruoso joined
|
|||
lue | how exactly do you use StrPos? | 23:48 | |
23:49
_jaldhar joined
23:50
jaldhar left
|
|||
lue | std: say ("a".."c").list[0..**-1] | 23:56 | |
p6eval | std 30349: OUTPUT«ok 00:01 109m» | ||
lue | rakudo: say ("a".."c").list[0..**-1] | 23:57 | |
p6eval | rakudo 868173: OUTPUT«Method 'Num' not found for invocant of class 'Block'current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)» |