»ö« | 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 11␤current 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 1␤FAILED 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 64␤Null 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 implemented␤current 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 2␤current 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 2␤current 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«He␤Ll␤O ␤Wo␤Rl␤StopIteration␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
rakudo 6b5469: OUTPUT«StopIteration␤current 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«StopIteration␤current 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«StopIteration␤current 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 2␤current 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.pm6␤ok 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; $x␤FAILED 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 arrays␤current 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«thumpindexringpinky␤middle␤»
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«thumpindextoeringpinky␤middle␤»
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, sorry␤in 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 1␤ok 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 &substr␤current 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)␤»