»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! | Rakudo Star Released!
Set by diakopter on 6 September 2010.
00:01 skangas left
lue It could've been part of the update to Unicode 6. The update happened ~October 2010 IIRC 00:02
flussence I thought all the new unicode stuff was U+1Fxxx 00:06
00:06 stkowski_ joined
lue There's a changelog floating somewhere on unicode.org. 00:07
00:09 stkowski left, stkowski_ is now known as stkowski 00:23 Guest87704 left 00:25 cdarroch left 00:36 hercynium left
lue rakudo: say time; say now; 00:41
p6eval rakudo a95c1d: OUTPUT«1292460064␤Instant:2010-12-16T00:41:4.873248Z␤»
TimToady I think it should *really* print the time out in Zulu. :) 00:42
(along with reformatting your disk) 00:43
00:44 felippe joined, ch3ck left
sorear I'm going to have it generate an external TAI64NA blob 00:45
cr.yp.to/libtai/tai64.html # least helpful date format?
00:47 orafu left, orafu joined
TimToady I dunno, they seem to assume you'd never want anything smaller than a nanosecond 00:48
Perl 6 makes no such assumption :)
00:49 kcwu joined
TimToady using integers for instants is Just Wrong 00:49
it's making the same mistake all over again
it might be suitable for an output format though :) 00:50
sorear that's what I meant, the output format
TimToady I know, I'm just be curmudgeonly.
sorear say now; # 32 hex digits
TimToady you could run it through SHA256 while you're at it 00:51
00:51 ch3ck joined
TimToady oh wait, hex digits 00:52
hmm
sorear I'm not that evil
tai64na blobs at least sort
flussence
.oO( maybe instants should be renamed OpaqueTimePointers )
sorear (also, did you mean to say attosecond?) 00:53
TimToady whatever, integers are wrong
maybe instants should also come with an estimate of clock precision :) 00:54
lue now returns an Instant, time and Integer
s/and/an/
TimToady now should never return integer 00:55
lue if I had it my way, S32::Temporal would be time dilation-proof 00:56
TimToady that's just asking for encapsulation violation
sorear why are integers wrong? because of 1/3 + 1/3 + 1/3 ?
TimToady this from the person who can't be bothered to enter umlauts?
lue well, it's going in my (increasingly belated) advent post for now (the integer thing)
00:57 QinGW joined
TimToady because all integers assume a precision 00:57
lue maybe I'll add (even though it shouldn't)
00:57 justatheory left
TimToady instants must be opaque to math, except for finding differences 00:58
which is what epochs are, after all
lue (btw, I only can't be bothered to make entering umlauts easy because keyboard reconfiguration is a nightmare.) 00:59
TimToady and dilation-proofing time is a walk in the park?
01:00 adu joined
TimToady not even a walk in the park is dilation proof :) 01:00
flussence the easiest way to solve that would be to move Everything at the same velocity as the perl6 script 01:01
well, not easiest but probably the simplest :) 01:02
lue S32::Temporal:55 : "[time] Returns the current POSIX time as an C<Int>." 01:03
It's OK'd by the spec, but I see why it shouldn't.
TimToady I didn't say it shouldn't 01:04
time is POSIX based, instants are not
01:04 felippe left
TimToady POSIX is cultural and inherently flawed; atomic instants are non-cultural and (in the abstract) completely linear 01:05
modulo time dilation, of course
01:06 ascent_ left, ascent_ joined
lue TimToady: of course dilation-proofing isn't a walk in the park. But it's a serious issue for any P6 user going to space anytime soon. :) 01:06
flussence (or hyperspace) 01:08
lue
.oO(I do believe S32::Temporal is one of the few things that can spark Instant Discussion™)
01:09
flussence groan... :) 01:10
lue rakudo: my $dw = DateTime.new("1963-11-23T17:15:00Z"); say now - $dw; 01:17
p6eval rakudo a95c1d: OUTPUT«Can't take numeric value for object of type DateTime␤ in 'Any::Numeric' at line 1420:CORE.setting␤ in 'infix:<->' at line 7359:CORE.setting␤ in main program body at line 22:/tmp/NmecrUxEct␤»
lue Hmm.
sorear why can't Instants be numeric? 01:18
01:18 Guest65806 left, [Coke] left
lue What I have yet to figure out is how to do darned arithmetic with DateTime. 01:20
TimToady sorear: because I said so! :)
01:26 Guest65806 joined, stkowski left 01:27 masonkramer joined, stkowski joined
dalek : edd6723 | lue++ | misc/perl6advent-2010/articles/ (2 files):
Added Pod version of Day 16 post on Temporal, and cleaned up Day 13 article.
01:27
lue feel free to look it over before I post it. 01:28
01:32 redicaps joined 01:33 mtk left 01:36 felliott joined 01:41 mtk joined 01:42 joimox left, nymacro left 01:45 shi left
lue afk 01:57
02:16 [Coke] joined 02:34 wamba left 02:42 masonkramer left, masonkramer joined 02:44 Eevee left 02:50 Eevee joined, am0c joined 02:53 kfo_ joined, ch3ck3r joined, whiteknight left 02:57 ch3ck left 03:15 adu left 03:22 adu joined 03:23 Kovensky joined, IllvilJa left 03:24 IllvilJa joined 03:25 slavik1 joined 03:40 khisanth_ joined 03:41 khisanth_ is now known as Guest41255 04:02 alester left 04:15 satyavvd joined 04:22 Guest41255 left, Guest41255 joined 04:24 Guest41255 left 04:25 Khisanth joined, Khisanth is now known as Guest73210 04:33 Guest73210 left, khisanth__ joined, khisanth__ is now known as Khisanth, justatheory joined 04:57 orafu left, orafu joined 05:01 stkowski left 05:03 am0c left 05:42 felipe joined 06:00 _kaare joined
sorear GOOD * #PERL6 06:08
06:09 justatheory left 06:11 stkowski joined
diakopter heh 06:13
06:24 envi joined 06:32 kjeldahl left 06:37 nymacro joined 07:02 wtw joined 07:10 soroush joined 07:11 soroush_ left 07:37 spinclad left 07:41 stkowski left 07:46 spinclad joined 07:54 masak joined
masak oh hai, #perl6 07:54
07:55 zby_home_ joined
sorear hello masak! 07:56
I'm going to be very Perl 6 productive now
masak sounds good.
I hope to look a bit more at niecza today.
redicaps std: sub f{}; &.wrap({say "hey"});f; 07:58
p6eval std 01ab3ab: OUTPUT«ok 00:01 123m␤»
masak I don't think that means what you think it means. 07:59
&.wrap would desugar to &(self.wrap) 08:00
redicaps masak: I got a syntax error here: pastebin.com/mC7XXhDu 08:01
masak looks
huh. 08:02
rakudo: sub a { say "a" }; &a.wrap({say "wrap"; nextsame}); a
redicaps I need a ';' after sub a{} block
p6eval rakudo a95c1d: OUTPUT«wrap␤a␤»
masak redicaps: oh, ok.
yes, that's an annoying, but known, syntax bug.
please live with it until someone addresses it :) 08:03
the customary thing to do is to insert a comment starting with '# RAKUDO' and the containing the RT ticket number.
redicaps masak: Is this already submitted as a bug? 08:06
masak yes, I think so. want me to dig it up for you?
allegedly, RT is hard to naviage :P
sorear what is the Rakudo bug here?
moritz_ std: sub a{ }
p6eval std 01ab3ab: OUTPUT«ok 00:01 118m␤»
moritz_ rakudo: sub a{ }; say a
p6eval rakudo a95c1d: OUTPUT«␤»
redicaps moritz_: one-liner never have this problem
masak rakudo: sub a { say "a" }␤&a.wrap({say "wrap"; nextsame}); a 08:07
p6eval rakudo a95c1d: OUTPUT«a␤Method 'wrap' not found for invocant of class 'Bool'␤ in main program body at line 23:/tmp/S_Q1H5yPZ4␤»
masak sorear: that.
sorear oh.
actually that's known
redicaps masak: LoL
sorear let me find the ticket
moritz_ does it work with a ; ?
masak yes.
moritz_ rakudo: sub a { say "a" }; &a.wrap({say "wrap"; nextsame}); a
p6eval rakudo a95c1d: OUTPUT«wrap␤a␤»
08:09 am0c joined
masak sorear: I might have been thinking about this one: rt.perl.org/rt3/Ticket/Display.html?id=76432 08:09
it seems to have some additional prereq that isn't manifested here, though.
so maybe a new ticket is in order. 08:10
sorear rt.perl.org/rt3/Public/Bug/Display.html?id=79964 08:12
masak: 08:13
masak looks 08:15
yes, that one looks spot on. 08:16
sorear++
sorear masak: so, I've modified niecza to spit out a JSON dump of the internal Metamodel::Unit structure (all classes, all subs, code, etc), and now i' 08:24
m trying to rewrite the CLR code generator in C#
masak what's the goal? 08:25
sorear 1. interface with System.Reflection.Emit directly and not have to deal with C#'s restrictions 08:26
2. faster, since generating and parsing 10^5+ lines of C# takes a while
3. faster since it's not Perl
4. portability is improved since all C# dependancies are forced out of the common codebase 08:27
(the CLR bytecode emitter is only useful on systems with a CLR implementation, so it doesn't need to be portable at all)
masak is master in a runnable state, or should I go for an older revision? 08:28
sorear master is in a runnable state, cilbackend isn't
08:29 glow joined
masak excellent. 08:34
08:35 neroxx joined 08:40 neroxx left 08:42 zorgnax joined, maja joined
zorgnax I really dont like the ascii version of our butterfly mascot 08:43
looks too much like a goatse or the home alone kid 08:44
masak that's a valid opinion.
and a good reason to usher in the age of Unicode, I guess. 08:45
or at least a reason. :)
sorear we have an ASCII version?
>o< ?
zorgnax in the title of the room
masak that's not ASCII. 08:46
neither of those three chars are in ASCII.
thought you meant >>ö<<
zorgnax textual art then
masak I think it's cute.
zorgnax maybe if there was a better butterfly body symbol then o-umlauts 08:47
08:47 khisanth_ joined
sorear ß maybe? 08:49
masak the umlaut signifies the antennae, not the wings. 08:50
rakudo: module A { our sub foo { say "A::foo" } }; module B is A { our sub foo { say "B::foo"; nextsame } }; B::foo
p6eval rakudo a95c1d: OUTPUT«B::foo␤Null PMC access in clone()␤ in 'B::foo' at line 1␤ in main program body at line 22:/tmp/xOo4v12GQ7␤»
masak rakudo: nextsame
p6eval rakudo a95c1d: OUTPUT«Null PMC access in clone()␤ in main program body at line 1␤»
masak rakudo: module B is floozey {} 08:51
p6eval rakudo a95c1d: ( no output )
masak rakudo: module B is floozey {}; say "alive"
p6eval rakudo a95c1d: OUTPUT«alive␤»
masak submits rakudobug 08:52
08:52 Khisanth left, neroxx joined
zorgnax Is that supposed to work differently? 08:55
nextsame in an inherited module's subroutine 08:56
masak there is no such thing as an inherited module.
that's as good as a contradiction in terms.
inheritance is a relation between OO types such as classes and roles.
zorgnax right of course
masak and it is actualized in method dispatch, not sub dispatch. 08:57
08:58 maja left 09:07 adu left
masak at $dayjob, I get to acquaint myself a bit with R. it's an interesting platform, full of nice introspection. but I still can't quite get my head around the syntax, especially which things autoquote and which things don't. 09:07
there has to be a system, but I just don't see it yet. 09:08
but their AST access looks fun and inspiring.
moritz_ R? that statistical package? 09:12
masak yes. 09:13
it's really a Lisp-alike in disguise.
moritz_ in the sense that everything is a list?
masak yes.
the source code makes frequent and non-trivial references to Lisp. 09:14
moritz_ Mathematica does that too
if you have a list a = {1, 2, 3}, a[[0]] is List
masak oh; didn't know that. sounds about right, though.
moritz_ a[[1]] is 1
etc.
masak huh. 09:15
moritz_ it's a bit of a different approach than lisp
masak I'd describe it as less thorough. 09:16
real Lisp has the metacircular thing. 09:17
sorear do you mean homoiconicity? 09:18
09:19 mtk left
masak I didn't, but that's important too. 09:19
I think R has homoiconicity. 09:20
09:26 mtk joined
masak rakudo: try{CATCH {say "caught";}} 09:27
p6eval rakudo a95c1d: OUTPUT«error:imcc:syntax error, unexpected ')' (')')␤ in file 'EVAL_10' line 84422894␤===SORRY!===␤syntax error ... somewhere␤»
masak submits rakuodbug
09:28 dakkar joined
masak rakudo: CATCH {say "caught";} 09:28
p6eval rakudo a95c1d: ( no output )
09:28 kensanata joined
masak rakudo: try { CATCH {} } 09:29
p6eval rakudo a95c1d: ( no output )
masak huh.
rakudo: try{CATCH {}}
p6eval rakudo a95c1d: OUTPUT«error:imcc:syntax error, unexpected ')' (')')␤ in file 'EVAL_10' line 58970542␤===SORRY!===␤syntax error ... somewhere␤»
masak rakudo: try {CATCH {}}
p6eval rakudo a95c1d: ( no output )
masak rakudo: try {CATCH {say "caught";}}
p6eval rakudo a95c1d: ( no output )
masak rakudo: try{} 09:30
p6eval rakudo a95c1d: OUTPUT«Could not find sub &try␤ in main program body at line 22:/tmp/OOKCmOQamA␤»
masak rakudo: try{CATCH{}}
p6eval rakudo a95c1d: OUTPUT«error:imcc:syntax error, unexpected ')' (')')␤ in file 'EVAL_10' line 44790886␤===SORRY!===␤syntax error ... somewhere␤»
masak std: try{CATCH{}} 09:31
p6eval std 01ab3ab: OUTPUT«===SORRY!===␤Undeclared name:␤ 'CATCH' used at line 1␤Undeclared routine:␤ 'try' used at line 1␤Check failed␤FAILED 00:01 118m␤»
masak right, so it's not syntactically correct in the first place.
std: try{CATCH {}}
p6eval std 01ab3ab: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'try' used at line 1␤Check failed␤FAILED 00:01 118m␤»
masak but Rakudo could give a more awesome error indicating that. 09:32
09:35 fhelmberger joined
moritz_ could it? 09:41
and would that more awesome error message still be emitted if a subroutine named try() existed? 09:42
09:44 redicaps left
masak rakudo: sub try { say "OH HAI" }; try{CATCH { say "caught" } } 09:46
p6eval rakudo a95c1d: OUTPUT«error:imcc:syntax error, unexpected ')' (')')␤ in file 'EVAL_10' line 60798066␤===SORRY!===␤syntax error ... somewhere␤»
masak doesn't seem to matter at present.
09:48 nero2x joined 09:49 uasi joined
uasi hi all 09:49
masak uasi! \o/ 09:50
09:50 nero__ joined
uasi rakudo: my %a; %a{ CATCH{} } 09:50
p6eval rakudo a95c1d: OUTPUT«error:imcc:syntax error, unexpected ')' (')')␤ in file 'EVAL_10' line 49267820␤===SORRY!===␤syntax error ... somewhere␤»
moritz_ hi uasi. I've pushed your patch just a few minutes after you left yesterday
uasi moritz_: thanks! 09:51
09:51 neroxx left
masak submits rakudobug 09:51
it's the same error, but as far as I'm concerned, that's a different area.
hm. wait.
uasi CATCH{} inside &postcircumfix:<{ }> emits broken PIR
moritz_ it's the same. CATCH in subscript
uasi: thank you for the patch
uasi :) 09:52
masak moritz_: well, you said 'try' was a funcall.
moritz_: then that case is a subscript too.
masak renames the ticket instead
uasi++
09:53 nero2x left 10:01 jest joined
sorear I'd like to know how it's even possible for Rakudo to generate PIR syntax errors. 10:04
I thought the point of POST was to make that impossible.
moritz_ by inline PIR? 10:06
also you can say pirop:foo, and if foo doesn't exist, you're screwed
sorear but... CATCH?
10:07 redicaps1 joined
uasi sorear: foo{CATCH{}} generates '$P90 = "!postcircumfix:<{ }>"($P89, )' or something like that 10:09
I have no idea why this happens 10:10
er, trailing comma in argument list is not allowed in PIR 10:11
masak correct. 10:12
dalek ecza/cilbackend: bce76ee | sorear++ | lib/CLRBackend.cs:
Start drafting ClrOp layer
10:13
ecza/cilbackend: 5544d25 | sorear++ | lib/CLRBackend.cs:
Implement the rest of ClrMethodCall
10:22 daxim joined 10:25 jest left
uasi std: my %a; %a{CATCH {}} 10:27
p6eval std 01ab3ab: OUTPUT«ok 00:01 120m␤»
uasi is it syntactically correct?
moritz_ std says so 10:28
masak I don't see why not. 10:29
moritz_ but it doesn't mean it's semantically valid
masak I don't see why not there either.
moritz_ because CATCH is tied to a block
masak you mean one can't have CATCH at the top level of a program?
that's news to me. 10:30
moritz_ well, that's a block too, conceptually
masak yes.
and errors can occur (or be passed to) the top level as well as any other level.
moritz_ but I don't see how a CATCH makes sense that's not directly inside a block
masak why don't you see that?
moritz_ does it bind to the outer block?
10:31 QinGW left
masak I suppose so. 10:31
moritz_ then it's very confusing
masak do you also find a BEGIN block at the top level very confusing?
moritz_ die "foo"; %hash{CATCH { say "OH NOEZ } }; # catches the die() 10:32
masak yes.
tadzik o/
moritz_ masak: nope. But a BEGIN block isn't tied as tightly to the outer block
masak I'd say it's tied exactly as tightly.
or take en END block, if that makes more sense. 10:33
moritz_ a CATCH block modifies how code is executed in the outer block
I don't see how BEGIN or END do that in the normal case
masak then we mean different things by "modifies how code is executed" :) 10:34
moritz_ masak: in what way do you think that BEGIN and END blocks modify the execution of the surrounding block? 10:35
masak by executing code earlier or later that would otherwise have been executed in the normal flow of the code. 10:36
BEGIN in { say "A"; BEGIN { say "B" }; say "C" } modifies the execution of 'say "B"' 10:37
moritz_ but that's only the inner block that's modified
not the outer
masak well, yes. the inner block belongs with the BEGIN.
similarly, with CATCH { say "whoa" }, it's only the inner block that's modified.
moritz_ nope 10:38
hm
masak I think I see what you're referring to. you're talking about the conditional triggering of CATCH.
moritz_ depends on what the CATCH does
right
sorear CATCH is a phaser 10:39
masak not sure I find that very relevant.
BEGIN and END are phasers too.
moritz_ it always leaves the outer block, but sometimes violently, sometimes not
masak sometimes it resumes.
moritz_ even stronger interaction then
masak in fact, the rollback is handled after the CATCH.
and only conditionally.
yes, it's mighty strange. I mean to explore this and other phaser interactions in Yapsi. 10:40
I bet there's a good lot we don't know about phasers yet.
sorear masak++ # thinking about Hard Stuff so I don't have to
masak :)
sorear out 10:44
masak I'm really looking forward to the first time I see a PRE { POST {} } construction running correctly. 10:45
moritz_ a postcondition to a precondition?
you're evil :-)
masak (the POST {} block should be conceuptually hoisted up to the block that surrounds the PRE, but should still retain the lexical environment of the PRE) 10:46
hey, it's in the spec!
it's a brilliant idea, since you're often declaring things in PRE that you want to check in POST.
I could even see the same being done with FIRST and LAST... maybe. 10:47
it's certainly doable, but its usefulness is perhaps doubtful. 10:48
10:52 nero__ left 10:53 nero__ joined 10:56 nero2x joined
masak perhaps for @items { FIRST { my $first = $_; LAST { say "And remember, the first item was $first!" } }; say $_ } or something like that. 10:57
10:57 neroxx joined
mathw wouldn't that attach the LAST to the FIRST though 10:58
rather than to the FIRST's container
masak by current spec it's illegal.
LAST must be directly inside a loop block.
mathw ah 10:59
masak I'm talking about possibly extending the spec to support this.
moritz_ first implement it, then spec it :-)
masak yeah.
also possibly START/LEAVE, ENTER/LEAVE, FIRST/NEXT...
11:00 nero2x left, nero__ left
masak what's the value of a phaser that hasn't executed yet? 11:00
say END { 42 }
moritz_ (off topic) interestingly, 'ls' doesn't do an opendir on my box 11:01
it does an open(".", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC)
tadzik same here 11:03
O_DIRECTORY
If pathname is not a directory, cause the open to fail. This flag is Linux-specific, and was added in kernel version 2.1.126, to
avoid denial-of-service problems if opendir(3) is called on a FIFO or tape device, but should not be used outside of the imple-
mentation of opendir(3).
whoops :)
moritz_ so, ls is cheating. 11:04
and won't work on really old kernels 11:05
like, ancient
11:06 nymacro left 11:17 nero2x joined 11:22 neroxx left, nero2x left 11:29 glow left 11:37 neroxx joined 11:38 nero2x joined 11:40 nero__ joined 11:41 jaldhar left 11:42 Trashlord left 11:43 satyavvd left, Trashlord joined, neroxx left, nero2x left 11:46 jaldhar joined 11:50 taljurf joined
taljurf guys, is perl-netpacket = search.cpan.org/~yanick/NetPacket-1...tPacket.pm ? 11:52
TiMBuS i would assume so 11:53
its netpacket-perl in the ubuntu repo, if this is what youre asking 11:54
daxim perl-* is the rpm convention. 11:55
taljurf great, thx guys :) 11:56
12:04 agentzh joined 12:05 jedai_ joined 12:07 nero2x joined 12:11 neroxx joined, nero__ left 12:12 nero2x left 12:14 Guest87704 joined 12:24 Chillance joined 12:34 MayDaniel joined, wamba joined
moritz_ libthing-perl in debian/ubuntu 12:41
12:49 scratchy joined
scratchy hi, I just tried to get the signature of &die in order to find out how to suppress the additional rakudo message "in ... at line ..." and got the following: "get_attr_str() not implemented in class 'Sub'" 12:52
rakudo: say &die.signature
p6eval rakudo a95c1d: OUTPUT«get_attr_str() not implemented in class 'Sub'␤ in main program body at line 1␤»
scratchy could anybody give me a hint on what i am doing wrong, or how to achieve this, please? 12:53
moritz_ you get the error because die() isn't written in Perl 6 (yet), so it has no signature you could introspect 12:56
and currently there's no way to surpress the stack trace :(
scratchy thanks, that's okay so then I will use say '...' and exit instead :) 12:57
moritz_ that's fine for scripts, but please don't do that in modules 12:58
because exit isn't catchable
masak submits rakudobug 12:59
scratchy yes it is in a script, when it gets bad input it exits with some text but should not show the stack trace, in modules i still use die() 13:00
masak I've often wanted a &die that suppresses location too.
I'm fine with &carp and &croak etc. coming in from modules, but I'd really like &die to have suppressable line number and file, like in Perl 5. 13:01
it's just that... the solution employed by Perl 5 doesn't feel... "worthy" of Perl 6.
maybe that's just elitism speaking, I dunno.
moritz_ you know, I've been thinking about exceptions and so for a while
masak yes?
moritz_ my idea was that exceptions are something like a smart hash 13:02
which have a default stringification
and a simple die("thing", :!trace) would turn into something like die(Failure.new(message => 'thing', trace => False)) 13:03
masak hmm... :!trace... :/
moritz_ and on the other hand you could smartmatch against certain properties of an error
for example the above would match true against Failure.new(message => /^th/) or against Failure.new(trace => {!.so}) 13:04
masak it has been said here on the channel, and I think I agree, that nameds that default to Bool::True constitute a design smell.
moritz_ agreed. 'Twas just an example 13:05
masak ok.
moritz_ maybe :concise
masak :brief
moritz_ the beauty being that the stack trace would still be available from the exception object
masak :bare
yes, that's nice.
moritz_ so that if it's caught, the catcher can still decide to print the backtrace
masak getting the exception system to work really well with given/when is the big thing, IMO. 13:06
moritz_ right, which is why I want to make it simple and general
masak kudos for that.
moritz_ in particular I think it's a good idea if the failures and the things you match them against have a very similar structure
masak have you applied for a grant yet? 13:07
moritz_ nope (due to personal reasons)
masak ok.
moritz_ or might even be the same
masak matching failures against signatures/captures should also work.
and maybe hashes too.
moritz_ (no secret involved, I just don't know how much time I'll have for programming once our daughter is born. And I sure know that I can't finishe the grant befor her birth) 13:08
masak maybe some of those fall out automatically, by virtue of failures being objects.
moritz_ masak: that's the plan
actually a failure could inherit from Capture
takadonet morning all 13:09
masak is a failure a kind of a capture, philosophically (or even OOD-ly) speaking? hm. 13:10
takadonet: \o
takadonet reddit is down :(
masak then again, I don't think a Hash is a kind of EnumMap, either :)
moritz_ masak: you want to Capture failure information 13:11
masak moritz_: S02:1289: Capture Function call arguments (right-hand side of a binding) 13:12
so, unless the throwing of the exception is considered a kind of function-call...
13:12 skangas joined
masak (which it might well be, since &return invocations are) 13:12
moritz_ masak: don't take that part of S02 too serious
13:12 taljurf left
moritz_ masak: a capture is simply something that has named and positional parts 13:13
masak then S02 should be changed to reflect that.
moritz_ that's why Match ~~ Capture
masak aye.
what you just said, though, is like saying "don't take Complex too seriously. it's just two reals". 13:14
moritz_ I might have
actually
masak :)
well, it isn't.
moritz_ you know that polygon problem of yours? :-)
masak ooh
don't say any more :)
moritz_ I considered using Complex for the coordinates
too late, sorry 13:15
masak unless you're actually *using* the complex rule for multiplication, I'd consider that questionable design.
but I'll shut up too.
we can talk more after 2011-01-14.
moritz_ heh, that's also a submission deadline for a conference I might attend :-) 13:16
13:17 daxim left 13:18 daxim joined
moritz_ should really submit the solutions he has, and approach the remaining 13:18
masak that seems like a reasonable winning strategy to me. 13:19
there's a soft limit of 10 submissions. 13:20
arnsholt_ I need to get started on that as well
(And sign up =)
masak arnsholt_: sign up now.
moritz_ is a mail contains two solutions, does it count as two submissions?
s/^is/if/
masak yes. :)
moritz_ I thought I could cheat you :-) 13:21
masak by "submission" I actually mean "piece of code in a .zip file".
wasn't aware that I did until you asked, though.
ooh, lue++'s post has gone live: perl6advent.wordpress.com/2010/12/1...-in-perl6/ 13:25
"it’s time for you to learn of time" -- how very lue... :) 13:26
flussence aww, he changed the title...
moritz_ is surprised he doesn't mention the time traveller's guide to the tenses
masak I'm not sure I agree with the explanation of the difference between 'time' and 'now'. 13:27
as far as I understand, 'now' is (as far as is possible) atomic time, whereas 'time' is civil time.
takadonet www.reddit.com/r/programming/commen..._in_perl6/ 13:28
masak urgh. again a "poor man's URL" at the end.
masak changes that, at least
moritz_ woah, today more referrers from HN than reddit 13:29
flussence (as I understand it, Instant is the precise computery format and DateTime is the readable peopley format)
masak the post mentions Date, but it doesn't mention why Date is sometimes preferable.
13:30 uniejo joined
takadonet masak: HN? 13:31
moritz_ hacker news
news.ycombinator.com/news
takadonet reddit has been down for a while so that might have caused it
we had lots of comments/upvotes for yesterday post
13:37 MayDaniel left, mtk left
mathw I thought the post finished a bit early 13:37
something about date manipulation would've been nice
13:39 smash joined
smash hello everyone 13:39
takadonet smash: hey 13:41
mathw hi 13:42
masak mathw: agreed. I'll add a bit about why Date is good. 13:50
uasi: [たこ焼き] that sounds delicious. I wish I could get some here in .se 13:58
14:10 scratchy left 14:11 sftp left 14:17 ab5tract joined
masak TimToady, diakopter: [backlog] in what sense does Perl 5 have a "very solid implementation of closures"? I understand if they're non-trivial to implement, but are other languages known to do worse in this regard? 14:18
moritz_ it passes the man-or-boy test :-) 14:19
14:19 ispeak_ joined
masak I'm sorry, but that seems to be a very low bar. 14:19
it's also the only one I can think of offhand, besides even more basic stuff.
uasi masak: hey, why don't you make it yourself? you only need flour, boiled octopus, and ... a takoyaki pan :) ja.wikipedia.org/wiki/たこ焼き
masak uasi: a special pan? rehhh!? 14:20
wow, it even looks delicious.
moritz_ masak: well, if the inner blocks aren't accessible from the outside before run time, there's only so much you can do wrong when implementing closures 14:21
uasi masak: ya en.wikipedia.org/wiki/File:Takoyakikado.Pan.jpg
masak uasi: tell you what. I'll stay on the lookout for octopus, and then maybe I'll try to make it. probably won't find a takoyaki pan in .se, though.
moritz_ but if you allow named subs as closures, which can be accessed before the outer scope runs... yikes
masak moritz_: like... in Perl 5? :P
moritz_ (perl 5 doesn't do that, and if you trick around to achieve it, it warns that "variable will not stay shared" or so)
masak right. 14:22
which causes me to think that considering the shoddy abstraction on which Perl 5 closures are built, the error reporting is great. :P
moritz_ considering that perl 4 didn't have lexicals... not bad :-) 14:23
(but it had the reset() function. yay.) 14:24
and it still has
buubot: eval: our $abc = 4; reset 'a'; $abc
buubot moritz_: No output.
moritz_ buubot: eval: our $abc = 4; reset 'a'; "abc: " . $abc
buubot moritz_: abc:
moritz_ buubot: eval: our $abc = 4; "abc: " . $abc
buubot moritz_: abc: 4
14:25 sftp joined
moritz_ it's kinda hard to believe that a "modern" language still has such a feature 14:25
masak I'm grossed out beyond words.
14:25 leprevost joined
bbkr after reading Temporal entry in advent calendar one question popped: is there a quick way to find how many days are in given month? something like MySQL "DAY(LAST_DAY('2010-02-01'))" 14:26
moritz_ rakudo: say Date.today.days-in-month 14:27
p6eval rakudo a95c1d: OUTPUT«31␤»
tadzik (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)[$k]
:)
masak moritz_++
moritz_ tadzik: ...except for leap years
tadzik yeah
masak rakudo: say DateTime.now.days-in-month
p6eval rakudo a95c1d: OUTPUT«31␤»
bbkr moritz++
moritz_ rakudo: say Date.days-in-month(2010, 12)
p6eval rakudo a95c1d: OUTPUT«31␤» 14:28
moritz_ rakudo: say Date.days-in-month(2010, 2)
p6eval rakudo a95c1d: OUTPUT«28␤»
moritz_ rakudo: say Date.days-in-month(2012, 2)
p6eval rakudo a95c1d: OUTPUT«29␤»
masak rakudo: say Date.can('days-in-month')[0].signature
p6eval rakudo a95c1d: OUTPUT«Null PMC access in invoke()␤ in main program body at line 1␤»
masak hrm :/
moritz_ try .^can
rakudo: say Date.^can('days-in-month')[0].signature 14:29
p6eval rakudo a95c1d: OUTPUT«Null PMC access in invoke()␤ in main program body at line 1␤»
moritz_ rakudo: say Date.^can('days-in-month').WHAT
p6eval rakudo a95c1d: OUTPUT«Method 'WHAT' not found for invocant of class 'P6Invocation'␤ in main program body at line 22:/tmp/quOiK_RVNs␤»
moritz_ urks
masak right.
I really, really need to speak to jnthn about this.
LoRe rakudo: DateTime.new()
moritz_ it returns an un-wrapped P6Invocation object
p6eval rakudo a95c1d: ( no output )
takadonet try.rakudo.org/ dies when you try : say Date.today.days-in-month :(
masak and he will probably say "this is all fixed in 6model" :) 14:30
tadzik :)
that's what I thought
14:31 fhelmberger left
masak checks the Temporal spec for the signature instead :) 14:32
moritz_ multi method days-in-month($year = $!year, $month = $!month) {
$month == 2 ?? self.is-leap-year($year) ?? 29 !! 28
!! $month == 4|6|9|11 ?? 30
!! 31
}
14:33 agentzh left
masak right, that's what I thought. 14:33
mathw \o/ junctions
masak it feels odd to me that a year could be specified without a month.
14:33 glow joined
masak the reverse feels more obvious. 14:33
and *none* of this is spec.
moritz_ well, month without year => fails for February 14:34
masak not if the year then defaults to $!year
rakudo: say DateTime.days-in-month
p6eval rakudo a95c1d: OUTPUT«Type objects are abstract and have no attributes, but you tried to access $!year␤ in 'days-in-month' at line 6524:CORE.setting␤ in 'days-in-month' at line 6524:CORE.setting␤ in main program body at line 22:/tmp/BNEDwihzkm␤»
masak thought so
might be worth making that work, actually. 14:35
masak submits TODO rakudobug
moritz_ we really need :U and :D
uhm
what should it do?
masak rakudo: Date.days-in-month
p6eval rakudo a95c1d: OUTPUT«Type objects are abstract and have no attributes, but you tried to access $!year␤ in 'days-in-month' at line 6524:CORE.setting␤ in 'days-in-month' at line 6524:CORE.setting␤ in main program body at line 22:/tmp/8gCoFhW0KS␤»
moritz_ what should it do?
flussence default to now?
masak yes, that was my intention. 14:36
moritz_ then you'd say now.days-in-month
masak right.
moritz_ "if you mean it, why don't you just say it?"
masak true.
maybe that would be one way too many to do it.
flussence the error message should say that then
masak yes.
flussence "Did you mean 'now.days-in-month'? It's shorter." 14:37
masak it'll be one of the common pitfalls with Perl 6: that classes won't be designed for both :U and :D use.
at least we can take care to write the CORE classes right :)
moritz_ masak: that why methods will default to :D
tadzik :U and :D?
masak moritz_: oh!
moritz_ tadzik: undef smilieys
tadzik :P 14:38
masak tadzik: type objects and "real" instances, respectively.
flussence Un/Defined
14:39 risou joined
mathw what C++ programmers would think of as static and instance methods 14:39
kind of :)
moritz_ and there's an :A (iirc) which means "Aither" 14:40
or "All"
masak "Awesome"
mathw or "Hey, bet you can't do this!!!!"
in some strange universe where that starts with an A 14:41
flussence (anyone got an example of how these get used?)
masak sure, but the example won't work in Rakudo. 14:42
14:42 masonkramer left
moritz_ method foo:D($x, $z) { say "this requires a defined invocant" } 14:42
14:42 masonkramer joined
masak thought the :D was on the invocant type 14:42
moritz_ or was that method foo(self:D:, $x, $y) ?
masak yes.
and AFAIK, you can't write 'self' there... :) 14:43
flussence ooh, that's neat.
moritz_ and then :U is for things like new()
masak '$self' is fine, though.
flussence so if I understand right, "$thing:D" works like "$thing // Bool::False"? 14:47
masak not exactly.
first off, :D is used in signature types.
// is not.
secondly, type objects are undefined, not Bool::False. 14:48
they *are* false too, but that's because they're undefined. :)
14:49 xinming joined
flussence I think I get it now :) 14:49
moritz_ in rakudo, failed match objects are undefined (because they override .defined), but they are still instances of class Match
(which, thinking more about it, might not be necessary)
but afaiu :D doesn't consider .defined, but real instance-ness 14:50
masak right.
so it's actually a third axis: now we have true/false, defined/undefined, instance/typeobj 14:51
moritz_ wonders if $thing.WHAT !=== $thing is a valid test for "real" instance-ness
masak: .defined ist mean to be "instance/typeobj", but gives you the option to cheat
so although it technically another dimension, it's not meant to be one 14:52
masak right, just as true/false is a slightly broader version of defined/undefined.
most of the time, they collapse to one concept. 14:53
flussence
.oO( is there ever a use for something that's both undefined and true at the same time? )
masak I'm (re-)reading up on Lua right now. Lua has 0 and "" as true values. only false and nil are undefined.
er, s/undefined/false/ 14:54
moritz_ I remember that too
empty lists are true too, right?
masak rakudo: say ?()
p6eval rakudo a95c1d: OUTPUT«Bool::False␤»
masak oh! in Lua? :)
moritz_ right
masak yes.
the rule is that only false and nil are false. 14:55
so they must be true.
14:56 Axius joined 14:57 redicaps1 left
masak shortcircuit: do you feel all set for tomorrow's Advent post? 14:58
do we have any volunteers for slot #19 on Sunday? 14:59
moritz_ did anybody give shortcircuit write access to the advent calendar?
masak: I might be able to come up with something, but I'd prefer it if somebody else could do it
masak moritz_: yes, same here. 15:00
don't know if shortcircuit ever got Wordpress access.
PerlJam doesn't look like it.
(good morning btw :)
15:01 ispeak_ left 15:02 dipthegeezer joined, dipthegeezer left, dip joined
shortcircuit masak: Sure. Though, no, I don't have write access to that WP account. 15:03
er.
That blog.
I do have a WP account.
15:04 alester joined
masak I think moritz_ can get you one. 15:05
moritz_ shortcircuit: tell (or /msg) me your email address that you used for the wordpress account
then I can add you to the editor's list
shortcircuit [email@hidden.address]
15:05 ab5tract left
moritz_ shortcircuit: invitation sent. Welcome to the wonderful world of advent :-) 15:06
PerlJam masak: you can too :)
masak if you say so :) 15:07
15:08 mtk joined
shortcircuit What's the posting schedule. (A particular time on the clock I should have WP publish it?) 15:09
moritz_ shortcircuit: 0:00 UTC is preferred 15:10
later is fine too
[Coke] waves. 15:13
PerlJam greetings Coke
masak alester: [backlog] I think I'm going to clone your keys/wallet/cell phone habit. 15:15
alester haha, thank you.
shortcircuit tries to find verification of what tz the post date option's context is.
alester I have never ever ever lost my keys or phone or wallet.
once I started doing that.
masak shortcircuit: I think it's UTC already, actually. 15:16
shortcircuit Looks like it. 15:17
Though I'm not sure if the permalink will be /2010/12/16/day-17-xxx or /2010/12/17/day-17-xxxx, if I use the post scheduling. 15:18
15:18 JimmyZ joined
shortcircuit Ah, 17. 15:18
15:19 JimmyZ left 15:20 MayDaniel joined
shortcircuit Scheduled. 15:20
masak <mdxi> loops that iterate over an incrementor instead of a datastructure are the goto of the 21st century 15:21
it's more general than that.
jasonmay the advent calendar is rocking this year
masak anythign with and accumulator is Wrong in a parallel setting.
jasonmay (this is my first year actually looking at advent calendars though...)
15:21 ab5tract joined
moritz_ jasonmay: we're glad you like it 15:21
masak jasonmay: glad you like this year. I've been worried we're discussing less "cool" things this year.
moritz_ last year's advent posting can also be found on the same site
masak (because we picked many of the LHF topics last year) 15:22
moritz_ it's only going to get worse next year :-)
masak ss/with and/with an/
moritz_: unless we implement more cool stuff :P
moritz_ yeah. Like meta-circular MOP and macros 15:23
PerlJam I was thinking that we should have a mid-year advent-like calendar
masak mdxi: [backlog, Dijkstra] you might have seen this already, but just in case: blog.plover.com/prog/Hoare-logic.html
moritz_ PerlJam: since it's a bit hard to motivate enough people this advent, I think it'll be quite hard to do 15:24
and we don't want people to burn out
masak PerlJam: I still have an unrealized idea about an antipodal Advent calendar, implementing a game in 30-or-so days. 15:25
PerlJam masak++ I like the way you think! :) 15:26
masak PerlJam: would take about a month of planning though, in order to pre-implement the game :)
mdxi masak: thanks. i love both mjd and dijkstra :)
masak basically I've been waiting for the perfect theme/game idea to strike.
mdxi: me too, incidentally :)
shortcircuit I have a suggestion for an angle of attack, if it helps. Find an unsolved task on RC that looks challenging, and write a post about solving it. :)
PerlJam the title of mjd's post is a little misleading though. Dijkstra *was* insane, just for different reasons.
moritz_ would take one that isn't too challenging, otherwise it'll take too long to write about it
masak shortcircuit: I'd suggest faithfully translating a solution from another language, and then golfing/improving it. 15:27
alester The Perl 6 Advent Calendar pleases me, as it is good bite-size chunks of stuff to post to the @perlbuzz stream.
masak in fact, I even suggest that in topic-brainstorming.
shortcircuit Has anyone written about applying the X operator against database outputs?
moritz_ alester: "optimized for the 140 character generation" :-) 15:28
15:28 risou_ joined
masak rakudo: use v1.0; say "LOL THIS ISN'T PUNIE" 15:29
p6eval rakudo a95c1d: OUTPUT«LOL THIS ISN'T PUNIE␤»
15:30 wtw left 15:31 risou left 15:32 molaf joined
moritz_ that should be pretty easy to fix 15:33
masak already reported, fwiw.
moritz_ I know 15:35
PerlJam that would make a good advent post: what do you do when you find a bug? (the answer should include debugging, reporting, and possibly fixing I think)
mdxi masak: one of my favorites: www.cs.utexas.edu/users/EWD/transcr...D1036.html
shortcircuit So, the Ackermann function? :D 15:36
moritz_ shortcircuit: why not?
15:36 plainhao joined
masak PerlJam: that's not "what can Perl 6 do for you" though, that's "what can you do for Perl 6" :) 15:36
15:36 Patterner left
masak mdxi: yes, that one's a classic. 15:37
moritz_ shortcircuit: otoh the Perl 6 solution is too simple to make a good post :-)
shortcircuit masak: Well, to be fair, ease of access to developers and support is pretty important.
It's more of a meta feature, though. 15:38
masak yes. I'm not saying it's not important.
moritz_ we already had the community thing though
masak I'm saying the tagline is "Something cool about Perl 6 every day"
15:38 fhelmberger joined
shortcircuit Well, OK, but I still say you guys qualify as 'cool'. :) 15:39
masak :)
though I'm very proud about how bug reporting works in the Perl 6 community, I don't consider it something cool about Perl 6.
alester Does Perl 6 actualy have strict and warnings? Or are they just *effectively* on by default? 15:41
PerlJam alester: so far, there's no way to turn them off so ... :)
masak alester: warnings are on. the spec doesn't even mention them, AFAIK. 15:42
alester ok.
masak alester: strict is on, unless you run -e or start with 'v6;'
dunno what happens if you go 'v6;' in the middle of your script.
moritz_ doesn't like the 'v6;' part
PerlJam moritz_: why?
moritz_ an explicit 'no strict;' would be much more... explicit
masak 'use sloppy;' 15:43
moritz_ PerlJam: do you want to write the FAQ why 'v6;' and 'use v6;' are so different?
PerlJam moritz_: I wasn't disagreeing with you. I just wanted to know your reasons in case they differed from mine :)
moritz_ PerlJam: well, I was phrasing my answer as a question :-)
flussence rakudo: my $a = 1; v6; say $a; 15:44
p6eval rakudo a95c1d: OUTPUT«Could not find sub &v6␤ in main program body at line 22:/tmp/i_dgthT_3f␤»
flussence there you go.
15:44 am0c left
PerlJam moritz_: my answer is ... I want TimToady to write that FAQ :) 15:44
15:44 ch3ck3r left
flussence &v6 should probably be die("You can't do this in the middle of a script, say 'no strict;' instead") 15:45
PerlJam flussence: that seems worse, not better if you ask me.
masak Perl 6 generally doesn't do such special-casing. 15:46
moritz_ rakudo: v6
p6eval rakudo a95c1d: OUTPUT«Could not find sub &v6␤ in main program body at line 22:/tmp/3KOsSZqRHO␤»
masak besides, that assumes that it'd be a runtime error.
flussence hm. 15:47
moritz_ would like version literals to be no more special than string literals, for example
masak another question: does 'v5;' put you in non-strict Perl 5 compaitibility mode? what about 'use v5;'? is it strict by default? :)
moritz_ and it's only 'use' that special-cases
if the emulated v5 is really 5.12, then it's strict 15:48
PerlJam S11:598 worries me.
moritz_ $ perl -M5.012 -e\$x
Global symbol "$x" requires explicit package name at -e line 1.
PerlJam: me too 15:49
laxness is OK, if we are strict about how to become lax :-)
15:49 Psyche^ joined, Psyche^ is now known as Patterner
masak agreed. 15:52
flussence /use v5.*;/ should probably attempt to emulate how perl5 would handle that line, where "perl5" is "whatever perl5 the implementation bothered to emulate in the first place" :)
moritz_ std: 6; $x 15:53
masak I don't mind 'v6.0.0;' too much, or 'v6;'. I do mind the other two.
p6eval std 01ab3ab: OUTPUT«===SORRY!===␤Variable $x is not predeclared at /tmp/Wf_YU3Bdl1 line 1:␤------> 6; $x⏏<EOL>␤Check failed␤FAILED 00:01 118m␤»
masak moritz_: that was attempted yesterday, in the backlog. :)
PerlJam the existing spec is not robust in the face of changing code. Starting the file with a literal is something that will require a comment around it every time.
masak moritz_: NYI.
flussence also, I have no idea what irssi just did, but I forgot to escape the first / in that line...
15:53 abar joined
moritz_ masak: I have a patch that makes 'use v5;' barf. Unfortunately it also makes 'use v6.0' barf 15:54
use v6; is fine though
masak huh.
I would argue for 'use lax;' in scripts, and having -e default to lax mode, but allowing 'use strict' and -Mstrict to turn strict mode back on, just as in Perl 5. 15:55
PerlJam "use lax" reads funny
masak and then dumping the whole thing about the literals in void context, for the reasons PerlJam gave.
PerlJam "be lax" would be better there
flussence how about -E for strict?
masak PerlJam: the same could be said for 'use strict'. just a matter of what you're used to. 15:56
moritz_ means something different in perl 5
PerlJam I guess so
moritz_ but at least 'no strict' has the same weirdness (or not) as 'use strict'
flussence hm, I suppose if someone wants strict in a one-liner then they won't mind a bit more typing anyway...
moritz_ ie if you read one, you know immediately waht the other does 15:57
so 'no strict' feels more symmetric than 'use lax'
masak yes.
I retract my 'use lax' suggestion in favor of 'no strict' 15:58
the rest stands.
moritz_ notices that in bokmal, 'lax' means salmon
unless I misremeber the spelling
BinGOs 'use slacks;'
PerlJam no pants; 15:59
15:59 leprevost left, plainhao left, plainhao joined
flussence
.oO( something I realised yesterday: zavolaj will let you write perl6 tests for C functions )
16:00
masak Util: [backlog, #phasers] you say you've made progress on the problems of my contest, and yet I don't see you among the signeds-up. :)
PerlJam flussence: that sounds advent-worthy to me :) 16:01
masak PerlJam: we just Advent-posted about zavolaj...
flussence maybe next year :) 16:02
moritz_ did you get the xmms example running?
===SORRY!=== 16:03
Unsupported Perl version 'v6', only v6 is supported at line 5732, near ";\n\nrole IO"
:(
flussence not yet, I think I've got a long weekend after today though to play with it...
PerlJam masak: perhaps I'm just getting to the point where the scope of the advent calendar is too narrow. I kind of want to see any and all posts that are Perl 6 related have a forum where they can be shared. 16:04
16:04 abar left
PerlJam contemplates perl6experience.wordpress.com 16:04
masak phenny: tell mberends when you have time, I'd like to discuss irclog.perlgeek.de/phasers/2010-12-14#i_3087119 with you. 16:05
phenny masak: I'll pass that on when mberends is around.
masak PerlJam: I think the restriction we're starting to hit is that not enough cool stuff is implemented :) 16:06
maybe development speed will pick up in 2011.
moritz_ certainly hopes so 16:07
masak I remember December 2009/January 2010 being fairly still too, feature-wise. and then things picked up for April.
takadonet x-mas really does slow us down
masak well, pmichaud's presence is a big determinant, it seems. 16:08
moritz_ jnthn's too
masak yes, our two Bus Number Men.
PerlJam It is by their will alone that they set Rakudo in motion. :-) 16:09
masak which is why I'm extra happy every time I see sorear making some commit or other.
moritz_ \o/ advent post in on no. 6 in r/programming/
masak \o/
moritz_ (I hid some other posts, so maybe it's a bit lower for others)
still not bad
PerlJam: will and tuits :-)
16:09 leprevost joined
shortcircuit Has anyone done a post on getting-and-setting-up a P6 runtime yet? I don't even know which of my systems has it, if any. 16:14
masak December 1 had such a post. 16:16
shortcircuit Hm. 16:18
PerlJam I wish I knew how to make it work such that when $foo contains the name of a module and that module contains a class Foo, then require $foo; Foo.new works
16:19 neroxx left
moritz_ std: A::B 16:19
p6eval std 01ab3ab: OUTPUT«===SORRY!===␤Undeclared name:␤ 'A::B' used at line 1␤Check failed␤FAILED 00:01 117m␤»
moritz_ PerlJam: it won't
shortcircuit sees a gentoo ebuild, wishes for an apt repo.
moritz_ PerlJam: the existance of symbols like Foo is checked at CHECK time (ie before run time) 16:20
shortcircuit Anyway, I need to focus on work stuff for the rest of the day (and week, if at all possible) ... Vacation next week. Yay. :)
moritz_ PerlJam: and since require hasn't run at that time, the Foo thing will blow up
however 'require $thing; ::Foo.new' should be possible 16:21
rakudo: my $x = 'Test'; require $x; plan(5)
p6eval rakudo a95c1d: OUTPUT«Could not find sub &plan␤ in main program body at line 22:/tmp/xAq856fGAS␤»
moritz_ rakudo: my $x = 'Test'; require $x; Test::plan(5)
p6eval rakudo a95c1d: OUTPUT«Can not find sub Test::plan␤ in main program body at line 1␤»
moritz_ rakudo: my $x = 'Test'; require $x; say ::Test.WHAT
p6eval rakudo a95c1d: OUTPUT«Method 'WHAT' not found for non-object␤ in main program body at line 22:/tmp/oY1S6IEcTB␤»
moritz_ hm 16:22
[Coke] masak: why should "use v1.0" die? you're using at least 1.0... 16:24
moritz_ because rakudo doesn't implement punie semantics 16:25
put another, rakudo rejects valid perl 1 programs
[Coke] does perl5 die when you say "use v1.0"? 16:26
moritz_ nope
[Coke] so that's a change in behavior. is it specced?
PerlJam [Coke]: it's not the "use" that's the problem, it's "say"
[Coke] PerlJam: ??
moritz_ but perl 5 has a different backward compatiblity policy than perl 6 16:27
there was no say() in p1
so yes, should be specced
[Coke] I think making "use <min version>" fail on things that were not valid in that version is insane. 16:28
er, s/fail on things/make things fail/
perl -E "use v1.0; say 'hi'" (to show that say also works in that case, not just that the use doesn't complain." 16:29
moritz_ unless you read it as "use <exact version>"
flussence if you want to set an upper version limit for that, you'd write "no v2". That's probably not valid v1 syntax itself though... 16:30
[Coke] do you expect rakudo to also die on "use v5.12; say 'hi'" ? 16:31
masak [Coke]: if you ask me, supporting anything below v5 in a Perl 6 implementation is (1) not worth it, and (2) asking for trouble. 16:32
[Coke] (perhaps that needs to be 5.10.1 instead...)
flussence
.oO( do we need "use v(5.10 .. 6.0)"? )
moritz_ [Coke]: I expect it to die if it can't supply the version
[Coke] use <version> is defined as a minimum version in 5, yes? 16:33
moritz_ yes
by that logic, use v5; shouldn't do anything
because 5 < 6
[Coke] I would recommend using some other keyword or syntax to indicate that "this section is now being parsed as if it was version <x>"
moritz_ I think we need a very clear distiniction between exact and minimum versions 16:34
[Coke] moritz_: that seems very reasonable to me.
moritz_ and the ability to specify both
[Coke] (that it would do nothing)
moritz_ [Coke]: but that's not what the spec says
TimToady std: use v5.10+;
p6eval std 01ab3ab: OUTPUT«ok 00:01 117m␤»
moritz_ oh. 16:35
we have that :-)
[Coke] TimToady: so would you expect "use v1.0" to just die in most p6 implementations? 16:36
(or use v5.0, for that matter.) 16:37
[particle] wants a magic punie
dalek d: 625303c | TimToady++ | STD.pm6:
support require Foo:from[...]; Foo.new

As with "use", the name given to "require" should be taken as an alias for whatever is actually located by the from argument.
16:39
TimToady cosimo: yes, that's what the spec says 16:40
gah
[Coke]: ^^
TCF
otoh, P5 doesn't understand use v5.* and such 16:41
otgh, use 'v5' means v5.*
[Coke] TimToady: it parses. what do you mean "understand" ?\ 16:42
PerlJam p5 parses use v5.*; ???
TimToady use v5.*; 16:43
syntax error at - line 1, near "use v5."
PerlJam yeah, that's what I thought.
[Coke] ah, you mean literally. 16:44
TimToady std: use v5.*; 16:45
p6eval std 01ab3ab: OUTPUT«ok 00:01 117m␤»
TimToady std: require Foo:from<...>; Foo.new; # parses with patch above 16:46
p6eval std 01ab3ab: OUTPUT«===SORRY!===␤Undeclared name:␤ 'Foo' used at line 1␤Check failed␤FAILED 00:01 119m␤»
PerlJam use v5; use v5.6; # does that second one use perl 5 version semantics? (i.e., "at least 5.6")
TimToady std: class{}
p6eval std 01ab3ab: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'class' used at line 1␤Check failed␤FAILED 00:01 118m␤»
TimToady sure would be nice if std updated 16:47
moritz_ tomaw: does that mean that require Foo:from($package_name) # with an actual variable works?
sorry, meant TimToady
TimToady moritz_: STD doesn't care :)
16:47 _twitch joined
moritz_ well, rakudo will :-) 16:48
TimToady any colonpair will be stripped before the name is added to the symbol table, is all the patch does
perhaps :file() would be more appropriate then
moritz_ well, :file for filenames :-) 16:49
but I sure hope that package names will be allowed to
so that the usual module searching is done
TimToady sure, that's how I was thinking 16:50
I didn't want to overload :from is all
moritz_ but :file sounds awefully like a file name
TimToady I suppose use could support :file too
moritz_ :source maybe?
PerlJam :source +1 16:51
moritz_ or maybe :from should really be :lang
16:52 Axius left
TimToady I think a preposition reads better there 16:52
PerlJam adverbial prepositions? :) 16:53
TimToady prepositional phrases may be considered adverbial
moritz_ std: require Foo:from(my $x);
p6eval std 625303c: OUTPUT«ok 00:01 121m␤»
TimToady std: require Foo:from(...); Foo.new; 16:54
p6eval std 625303c: OUTPUT«===SORRY!===␤Undeclared name:␤ 'Foo' used at line 1␤Check failed␤FAILED 00:01 119m␤»
TimToady ENOTYET
yesterday we suspected it's using the CPAN version 16:55
std: try{}
p6eval std 625303c: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'try' used at line 1␤Check failed␤FAILED 00:01 118m␤»
moritz_ might be the case
something's fishy, that's for sure 16:56
TimToady that's not fixed yet either, and I checked that in yesterday
16:56 justatheory joined
PerlJam wrong URL for STD repo maybe? Does it pull directly from github to update? 16:56
moritz_ url is fine 16:57
though the perl might not be
daxim github fuX0red again?
moritz_ daxim: there's no reason to believe that
problem is, some compilers want STD installed (like niecza) 16:58
and std doesn't want std installed
TimToady is it just a matter of a ./ ? 17:00
moritz_ p6eval runs it as $^X $path_to_viv 17:01
but viv's "use STD" might pick up the wrong one
TimToady or $path_to_viv is set using PATH? 17:02
jnthn o/ folks
<- alive :)
moritz_ \o 17:03
jnthn Teaching has been...very distracting. Last day tomorrow, traveling to UK on Sautrday, couple of days of family visiting, then will be back to normal. :)
(Yes, some family bits for christmas of course, but I've no $dayjob between tomorrow and January :)) 17:04
17:05 glow left
moritz_ great to hear 17:05
PerlJam jnthn: What reality will you hack into being over the holidays? :)
jnthn Also my worklaod in January will be rather reduced. :)
PerlJam: Plan to work on 6model stuff, including the Parrot port of it, plus native attribute support, method caching and so forth. 17:06
I expect to branch Rakudo in January.
And start giving it a shove over to the new meta-model implementation. 17:07
PerlJam parrot port of 6model will be essentially nqp-rx ?
moritz_ there'll be a parrot part too, iiuc
jnthn Well, I only really meant the name "6model" to be about the meta-model implementation. :) 17:08
Much of what else is in that repo is really nqpclr :)
But yes, nqp-rx is in the process of getting re-built on the new meta-model impl.
It'll also get the new Perl 6 multi-dispatch semantics. 17:09
PerlJam I kind of thought the meta-model propigation would flow like dominoes. parrot, then nqp-rx, then rakudo
(but with a CLR part before parrot)
jnthn It kinda does. 17:10
nqp-rx will just be the first consumer of the meta-model impl.
But since nqp-rx is bundled with Parrot anyway, then it'll be available to all language implementers. 17:11
PerlJam hmm. Rakudo doesn't seem to grok require '/path/to/file' yet 17:12
moritz_ nope
it just groks require 'Test'
17:16 MayDaniel left
jnthn -> nomparty 17:17
moritz_ (off-topic, and likely old, but interesting to me): the-programmers-stone.com/the-origi...-thinking/ 17:18
17:18 kensanata left
PerlJam heh ... "one or two orders of magnitude more useful than most people" 17:19
masak over the years, I've been slowly realizing how true this is. 17:21
don't know whether it's because the possible heights of brilliance, or the possible depths of incompetence :P
PerlJam It boggles me how much "reverence" my coworkers give me when it comes to coding. The way I look at it, I just move forward with what I know and realize that I don't know everything, but still move forward. 17:29
But then for the longest time, I revered pmichaud the same way I think. He's one of the few people I know smarter than me.
But if Gauss is to be believed, there's a *huge* chunk of people huddled around the average. :-) 17:32
17:33 cdarroch joined, cdarroch left, cdarroch joined
PerlJam perhaps that "one or two orders of magnitude" just means those people are closer to the edges of statistical variance naturally inherent in the population and that there's nothing "special" about them or what they're doing. They just are what they are. 17:34
17:36 daxim left 17:43 hercynium joined
masak PerlJam: perhaps it's simply the fact that the payoff for learning things in the field of programming is unusually large. (to the extent it can even be compared to other fields) 17:43
17:44 fhelmberger left, MayDaniel joined, wamba left 17:45 tadzik left 17:46 pmichaud left 17:47 hatseflats left 17:48 Juerd left, Juerd joined 17:51 tadzik joined 17:52 pmichaud joined 17:53 hatseflats joined, Util joined
masak nom & 17:53
17:53 masak left 17:54 MayDaniel left 17:59 Lorn joined 18:00 dakkar left 18:02 elb0w joined, uasi left
moritz_ I guess it's the same in all fields that deal mostly with thoughts 18:02
just consider how much more the great mathematicians did than the average math teacher
or how much worthwhile thoughts some really great philosophers published, compared to the big mass of philosophers 18:03
18:09 risou_ left 18:17 wamba joined 18:19 smash left
sorear good * #perl6 18:26
moritz_: there is no opendir(2); ls *has* to use open(2) 18:34
moritz_: on pre-2.1.126 kernels, you use open too, but can't use O_DIRECTORY (so FIFOs will DOS) 18:35
phenny: tell masak I'd especially like to hear your thoughts on S02:2603 18:36
phenny sorear: I'll pass that on when masak is around.
18:42 cibs left 18:44 uniejo left 18:45 _twitch left
tadzik back 18:46
sorear moritz_: std will run fine with an installed STD, that is after all how I prepare new STD dists :) 18:48
moritz_: however $^X $path_to_viv is potentially problematic
moritz_: doing that can break FindBin, which viv uses to detect whether it should use a checkout's STD or the system's STD 18:49
moritz_: $path_to_viv needs to include at least one slash or things will break 18:50
19:06 ch3ck joined, mtk0 joined 19:17 mtk0 left, icwiener joined, tylerni7 joined 19:52 envi left 19:58 cibs joined
moritz_ std: say 1 19:58
p6eval std 625303c: OUTPUT«ok 00:01 118m␤»
moritz_ std: try{}
p6eval std 625303c: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'try' used at line 1␤Check failed␤FAILED 00:01 118m␤»
19:58 cognominal left
moritz_ sorear: now $path_to_viv is ./viv 19:58
20:00 Jmax joined
Jmax i heard that perl6 is going to be ready for production use in 9 days 20:01
20:01 Jmax left
moritz_ for some production uses, sure 20:02
Tene I've been using it at work for months. 20:03
20:05 plainhao left
sorear trolling with a project affiliation cloak? smooth 20:06
std: try{} 20:07
p6eval std 625303c: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'try' used at line 1␤Check failed␤FAILED 00:01 118m␤»
20:08 mavrc joined 20:09 Guest65806 left 20:15 pothos left, pothos joined 20:28 florz joined
tadzik what's your favourite presentation tool, #perl6? 20:33
20:33 mavrc left
moritz_ has written his own for the last Perl 6 talk 20:33
it sucks in general, but did what I needed 20:34
tadzik care to share?
moritz_ github.com/moritz/perltalk/
tadzik I quite like latex and beamer, but it's lots of typing for a simple things
moritz_ aye 20:35
it's great for physics or math stuff
where you need lots of formulas
for source code, not so
20:41 jaldhar left 20:50 felliott left 20:52 Guest87704 left 20:56 felliott joined
alester Yesterday's lesson, codified: xrl.us/truelaziness 21:04
flussence alester++, pretty much spot on. 21:08
alester Thankyou.
RT away!
Heck, I didnt' even invoke "premature optimization"
flussence (I wish stuff would implement JS's ECMAScript5 "use strict" already, I just spent all day attempting to fix old bugs in it) 21:09
21:13 khisanth_ is now known as Khisanth 21:17 Jmax joined
Jmax nobody got my christmas joke :~( 21:17
diakopter it didn't seem very joke-like
Jmax i apologize
diakopter not your fault, were you truly joking, since it's a FAQ to ask "which christmas?" or "really christmas?" 21:18
Jmax of course 21:19
i suppose irc lacks proper sarcasm conveyance 21:20
diakopter without context, yes :D
21:36 cognominal joined 21:37 stkowski joined
sorear christmas is an in-joke anyway 21:38
it should never have been turned into a rumor
21:38 MayDaniel joined, MayDaniel left, MayDaniel joined
moritz_ .u ellipsis 21:38
phenny U+0EAF LAO ELLIPSIS (ຯ)
sorear .u DOTS 21:39
phenny U+205E VERTICAL FOUR DOTS (⁞)
diakopter .u horizontal ellipsis
phenny U+2026 HORIZONTAL ELLIPSIS (…)
moritz_ just presed Ctrl k . . in vim and found it 21:40
Jmax chromeos' term doesn't do utf8 very wekl :\
moritz_ it seems UTF-8 is not the only thing it doesn't do well
flussence I still haven't unlearned windows Alt+0133 = ellipsis
sorear ick 21:41
Jmax yeah, it doesn't do parrot, rakudo, pugs, or anything other than browsing very well :)
diakopter Jmax: but the web browser is the sole platform of the future ;)
sorear freenode web gateway! 21:42
Jmax you say that ironically but it's true
21:42 glow joined
tadzik Jmax: try try.rakudo.org :) 21:42
moritz_ diakopter: but the future's hereness is unevenly distributed
diakopter (and forever will be..)
sorear does chromeos have Silverlight?
Jmax tadzik: nice. look for the chromeos UA :)
of course not sorear 21:43
but it does have FLash
sorear Jmax: why of course not?
Jmax because chromeos is linux-based
moritz_ so?
Jmax tadzik: a serious error has occured
moritz_ do you think ubuntu and suse ship without flash? 21:44
Jmax flash is not silverlight
moritz_ it neither is perl
captain obvious greeting
sorear in ~2 months I should have a Perl 6 implementation that can run with moonlight
well
diakopter well.... 21:45
;)
sorear actually implementing the browser control is an exercise for someone else.
flussence "A serious error has occured, please file a bug report describing what happened." ...wha?
Jmax anyways, i'm getting the same error flussence is getting
using: say "Hey world"
flussence yeah, trying to figure out what that even means... (and who needs a cluebatting for that message) 21:46
diakopter moritz_: I doubt goog would be willing to bundle mono/moonlight
crazier things have happened, though.
flussence server HTTP 500 from a timeout.
22:05 ilogger2 joined, ChanServ sets mode: +v ilogger2, nsh_ joined 22:06 phenny joined, Woody4286 joined 22:07 p6eval joined, ChanServ sets mode: +v p6eval
kthakore flussence: ah ok 22:10
sorear: flussence how do I change git:// to http:// for the repos
22:11 PerlJam joined
sorear I do not understand the question 22:12
22:18 pothos_ joined, y3llow_ joined 22:19 shi joined 22:20 y3llow_ is now known as y3llow, pothos_ is now known as pothos 22:23 shi left 22:25 shi joined
kthakore sorear: ==> Testing zavolaj 22:28
make: *** No rule to make target `test'. Stop.
==> Tests failed for zavolaj
PerlJam kthakore: you used neutro to install it? 22:29
kthakore PerlJam: yes
PerlJam: also it can't find perl6 libpath 22:30
PerlJam Last time I checked zavolaj didn't follow the same conventions that neutro was expecting.
kthakore it is doing perl6 -e 'print @*INC[2]'
which gives me '.'
rakudo: print @*INC[2]
p6eval rakudo a95c1d: OUTPUT«/home/p6eval/p1/lib/parrot/2.10.1-devel/languages/perl6/lib»
kthakore see I get '.'
wth?
22:31 risou joined
kthakore I did ln -s /usr/local/perl6 /home/foo/local/path/to/perl6 22:31
is that a problem?
PerlJam dunno. As long as it can find the libs it needs, I wouldn't think so. 22:32
but, if perl6 is in your PATH somewhere, then you can manually build and install NativeCall pretty easily. 22:33
(and, of course, use it :)
kthakore man 22:34
PerlJam but you may have better luck using ufo to create the proper makefile.
kthakore I had to do
print @*INC[1]
...
:(
this is fuxed
any way
I have NativeCall now
PerlJam afk & 22:35
22:38 sji joined 22:40 shi left, felliott_ joined 22:41 felliott_ is now known as felliott
diakopter kthakore: fixed or fuxed? 22:43
kthakore diakopter: I made it work
diakopter: I had to hack a lot of stuff
diakopter yeah but did you mean to type "fuxed"? 22:44
(I was just curious) 22:46
kthakore I had to use @*INC[1] in the make file for system lib 22:48
rather then @*INC[2]
22:48 felliott left
kthakore also in neturo I had to change git:// to http:// 22:49
diakopter facepalm 22:50
flussence diakopter: consider it a portmaneau ;)
kthakore is there UInt type in Perl6 ?
rakudo: class foo is UINt
p6eval rakudo a95c1d: OUTPUT«===SORRY!===␤Malformed package declaration at line 22, near ""␤»
kthakore rakudo: class foo is UInt 22:51
p6eval rakudo a95c1d: OUTPUT«===SORRY!===␤Malformed package declaration at line 22, near ""␤»
flussence subset UInt of Int where { * >= 0 }
kthakore ls 22:55
22:55 felliott joined
tadzik :) 22:56
23:04 richyfish joined
kthakore OMG SDL IS RUNING ON PERL6 23:04
OMFG!
what is sleep(2) in perl 23:05
rakudo: sleep(2); say 'foo'
p6eval rakudo a95c1d: OUTPUT«foo␤»
richyfish hi, using rakudo perl6 on linux. Is there a way to get up/down history cursor keys to work ( eg i get ^[[A for up ) 23:11
flussence sounds like it was built without readline 23:12
23:12 redicaps joined
[Coke] richyfish: did you build your own rakudo? 23:14
richyfish yes, i did. 23:15
--configure argument perhaps? 23:16
[Coke] parrot should automatically detect if you have readline installed. 23:17
did you build your own parrot explicitly, or just use "--gen-parrot" with rakudo?
kthakore MUAHAHAHAHAHAHH gist.github.com/744192
jnthn++ I love you 4ever
richyfish i used --gen-parrot, pretty sure 23:18
yeah, perl Configure.pl --gen-parrot
sorear do you have libreadline-dev installed? 23:19
[Coke] ok, then you just need 1) do that again, but 0) make sure you have readline available first. If you're on linux, you probably want something like "readline-dev"
(I'll let sorear take it frmo here.)
richyfish hang on and i'll give it a shot 23:20
23:24 dual joined 23:29 dipthegeezer joined
dalek ecza/cilbackend: fb2444a | sorear++ | lib/CLRBackend.cs:
Implement Clr*Let operation family
23:37
23:47 stkowski_ joined, stkowski_ is now known as stkowski, adu joined
tadzik kthakore: nice! 23:47
23:48 redicaps left
tadzik now you can start some SDL bindings and your game tutorial :) 23:48
maybe Pong will be slow enough for me to win
richyfish yay! got history in rakudo. much better. 23:54
23:54 sji left
richyfish ok, code question: 23:57
my $r1 = 10..20
my $r2 = 30..40
my @ra = $r1, $r2
my $v = 10
$v ~~ @a[0];
Bool::True 23:58
$v ~~ @a[1];
kthakore tadzik: :D
richyfish Bool::False;
but ...
$v ~~ $_ for @ra;
kthakore tadzik: only if you read and reie SDL manual
richyfish Bool::True Bool::True
tadzik kthakore: reie? 23:59
flussence well
richyfish confused why second Bool::True appears, should be false?
kthakore review tadzik
flussence rakudo: my @ra = 10..20, 30..40; say 10 ~~ $_ for @ra; say @ra.perl
p6eval rakudo a95c1d: OUTPUT«Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤[10, 11, 12, 13, 14, 15, 16, 17,
..18, 19,…