»ö« | 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.
jnthn rakudo: say Any.^parents() <<===>> Any 00:01
p6eval rakudo a1159c: OUTPUT«0␤» 00:02
jnthn rakudo: say Any.^parents() <<===>> Mu
p6eval rakudo a1159c: OUTPUT«No applicable candidates found to dispatch to for 'hyper'. Available candidates are:␤:(&op, %lhs, %rhs, Any :dwim-left($dwim-left), Any :dwim-right($dwim-right))␤:(&op, Iterable $lhs-iterable, Iterable $rhs-iterable, Any :dwim-left($dwim-left), Any
..:dwim-right($dwim-right))␤:(&op, …
jnthn rakudo: say (Any.^parents())[0] <<===>> Any
p6eval rakudo a1159c: OUTPUT«No applicable candidates found to dispatch to for 'hyper'. Available candidates are:␤:(&op, %lhs, %rhs, Any :dwim-left($dwim-left), Any :dwim-right($dwim-right))␤:(&op, Iterable $lhs-iterable, Iterable $rhs-iterable, Any :dwim-left($dwim-left), Any
..:dwim-right($dwim-right))␤:(&op, …
jnthn hm :-/
rakudo: say Cool.^parents() <<===>> Any 00:03
p6eval rakudo a1159c: OUTPUT«10␤»
jnthn rakudo: say ?any(Cool.^parents() <<===>> Any)
p6eval rakudo a1159c: OUTPUT«1␤»
masak shouldn't the first one blow up?
(because the lists are of different length)
jnthn masak: >>===<< would 00:04
masak oh, right.
don't mind me :)
jnthn heh, I always used to mix them up
I remember it as "point at the one(s) that should dwim"
diakopter ඹඹඹඹ 00:05
masak that's a good rule.
jnthn Anyway, none of this explains why the same code in .WALK ain't doing what I expect. :|
Passes some of the tests, at least. 00:06
I'll work out the rest tomorrow.
(Not ready for sleep, but want to do something more than relaxing for a bit. :-)) 00:07
er, more relaxing than debugging...
:-)
masak I was worried there for a while :)
(about you going to sleep so early, that is)
jnthn Yeah, the parametric role bugs were...tricky. :-)
My brane is sore now. 00:08
We now pass tests alpha never did though. Which is nice.
masak cool.
jnthn I may pop handles back this weekend.
Feels like one of the big still-missing OO bits. 00:09
(Yes, I know, named enums are another. :-P)
masak I've been thinking the past few days whether it'd be simple to tack resumed compilation onto Yapsi, and get a real REPL there before Rakudo gets it :)
jnthn gist.github.com/377330 # this tells you the number of tests, by synopsis, that we've still got commented out in spectest.data 00:12
masak number of test files, right?
jnthn Correct. 00:13
Sorry, thinko. :-)
masak a common one :)
it's about what I'd expect, I think.
though number of test files is a wonky measure in the first place. 00:14
number of tests says more.
jnthn Sure.
00:14 Chillance joined
jnthn But that's a rather harder number to come by. 00:14
It gives some indication of where work is needed, though. 00:15
masak I wonder how tough it would be to write a tool once and for all that, given a .t file in t/spec, came back and gave an integer number corresponding to the actual number of tests in that file. 00:16
sorear Rice-hard
masak I mean, for a general solution it reduces to the Haltin Problem, I guess.
jnthn Well, it's trivial if you've got a Perl 6 implementation that passes the test file.
pmichaud in the general case, halting problem yes.
jnthn So maybe just write one of those. ;-)
masak jnthn: well, let's assum we don't.
jnthn Aww! 00:17
sorear what we could do is modify the fudger to never change the number of tests
i.e. generate skip records for fudged tests
masak jnthn: let's assume we have what we have today.
jnthn Well, this was all easy back in the days of test plans.
;-)
sorear then you can just run the tests and count the number of passes vs. skips
masak I know, with an integer in the test plan we just take that one.
there are two other cases that I know of.
jnthn is still only semi-convinced of the plan *;...DONE_TESTING 00:18
masak one is where it says 'plan @some-array;'
jnthn Ah. That one *is* scary. :-)
masak or some simple arithmetic expression based on @some-array.
sorear what do we think of fixing the fudger?
masak I don't think that one is very scary, because the array is often constant.
sorear: it's an interesting idea, co-opting the fudger for that purpose.
sorear: but it'd probably mean a lot of manual fudging of files we don't even attempt yet. 00:19
I was more thinking about either using duct-tape parsing heuristics or piggy-backing viv somehow. 00:20
S12: "Since the colon does not require a space in this case, and it looks kinda funny to put it, [...]" 00:22
is that standard English? "to put it"?
diakopter eh
pmichaud "to put one there" probably. 00:23
diakopter s/to put it/there/
or that
pmichaud and s/kinda/kind of/ :-)
jnthn Yeah, gives me a parse-ouch.
pmichaud kinda is kinda slangy.
masak sorta, yah.
pmichaud or even better, s/kinda//;
jnthn But that's kinda OK, 'cus Perl 6 supports slangs. :-)
pugssvn r30459 | masak++ | [S12] straightened up the language 00:25
diakopter you show that language who's boss ;) 00:26
o wait, that's "straightened out"; oops 00:27
masak :)
diakopter std: $*ttt = 5; 00:28
masak needs version control for the commit messages
p6eval std 30459: OUTPUT«ok 00:01 108m␤»
diakopter rakudo: $*ttt = 5;
p6eval rakudo a1159c: OUTPUT«Cannot assign to readonly value␤current instr.: '&die' pc 17354 (src/builtins/Junction.pir:393)␤»
diakopter rakudo: my $*ttt = 5;
p6eval rakudo a1159c: ( no output ) 00:29
diakopter oh
jnthn masak: Actually straightended up didn't look funny to me.
masak diakopter: I blame Nick Clegg for the typo. it's his fault.
diakopter there wasn't a typo
I was making a follow-on joke.
masak alpha: $*ttt = 5
p6eval alpha 30e0ed: ( no output )
jnthn Heh. What does alpha think it's assigning to. :-) 00:30
Of course, alpha would assign to anything. :-)
diakopter I wasn't saying 'straightened up' looked funny.
masak ah. I wasn't following on, I guess :) 00:31
masak should be more assertive in his non-nativeness
00:31 ruoso joined
masak diakopter: how's the status on perlesque? care to give a 30-second summary? 00:31
diakopter ok 00:32
took a 3-day break; hopefully I'll finish contextuals tonight.
pmurias has started to think about a perlesque backend for mildew/std 00:33
so we've talked about what perlesque needs next
for that
most of it is just syntactic shortcuts for stuff that can be done through .NET apis directly
he's been figuring out where CLR stops and where perlesque begins 00:34
sorear alpha: 2 + 2 = 5; say (2 + 2)
p6eval alpha 30e0ed: OUTPUT«Unable to set lvalue on PAST::Val node␤in Main (file <unknown>, line <unknown>)␤»
00:35 masak left 00:36 masak joined
diakopter masak: .u left 00:36
o
masak diakopter: sounds like nice progress.
well, neighbournet. it's unreliable.
apologies.
diakopter I don't know what you heard last about perlesque; what did you know so far? 00:37
00:37 masak` joined
diakopter I don't know what you heard last about perlesque; what did you know so far? 00:37
00:37 masak` left
masak diakopter: I know that it isn't a Perl 6 implementation, but something that might run STD.pm6. 00:38
I know you've done quite a bit of type stuff. 00:40
with native ints, at least.
a while back, it seems that you were figuring out things with scopes.
that's about it. 00:41
diakopter oh 00:43
it has strongly-typed closures-as-scalar-variables, invocations of scalars, more control flow than anyone could ever use, including labels & goto 00:44
named subs
return statement 00:45
masak sounds like a cute little language.
diakopter string literals 00:46
masak what was your main motivation in creating it?
diakopter BigInteger, Complex (not the Perl 6 api, though)
a target/assembly language for std/viv
tho of course it could be one for rakudo/nqp-rx
masak I've been growing a target/assembly language for Yapsi lately. 00:47
diakopter probably next after contextuals should be class declarations
oh?
masak some of the things you mention above ring familiar.
though right now, SIC (as it's called) is much less complex. 00:48
it only got blocks this evening.
diakopter would you like to expose it to p6eval?
masak eventually, yes.
probably before the May release.
though I suspect it'll hit speed issues fairly soon... 00:49
but I recommend that you download it and play with it, of course :)
diakopter speed issues?
masak yes. not aiming to be fast, just to get the fundamentals right. 00:50
diakopter the fundamentals of what?
masak of Perl 6 semantics.
diakopter oh
masak in the short term, that means lexical variables and nested blocks.
in the slightly longer term, it means functions and function calls.
I was thinking about the DESTROY/DESTROYALL methods the other day. I realized that since the method has to be called by the GC, it's important that the VM know how to call into Perl 6 to execute the DESTROYALL method on the object to be GC-ed. 00:54
I haven't seen any discussion on that, ever.
colomon alpha: my $a; $a *= 2; say $a
p6eval alpha 30e0ed: OUTPUT«2␤»
colomon dang, that does work! 00:55
sorear masak: GC reentrancy is made of hell
quite a few implementations of finalizers require them in C and blow up if you try to eval()
jnthn IIRC, there's a way to override VTABLE_destroy in PIR. 00:56
sorear this is for good reason
jnthn However
Hell knows what happens if we run a bunch of Perl 6 there and do fun stuff. :-)
The mere fact that the object about to be collected has just been used as an invocant means we now have (GC-able) call frames that reference it. 00:57
masak in Java, the finalize method is IIUC fairly useless, because it doesn't guarantee that an object fit to be GC-ed has its finalize method called within reasonable time, or even at all before the program finishes.
jnthn masak: Same for Perl 6, I expect.
masak: Or at least, implementation dependent.
masak: That's why blocks can have LEAVE and so on.
masak maybe we shouldn't spec a DESTROY method, if it's so fickle and useless. 00:58
jnthn wfm.
masak I'd remove it right away, but I'm not that brave :)
jnthn checks we even have on spec'd.
diakopter jnthn: same for clr destructors..
jnthn heh
masak S12:787
jnthn It says it exists
It doesn't give any details beyond that. :-)
masak no-one would notice if I just edited it out... :) 00:59
jnthn It makes sense if you're doing any GC that's not reference counting, I guess.
If you want to be doing efficient things like generational schemes.
masak how so?
what makes sense? having a DESTROY method, or removing it? 01:00
jnthn masak: Makes sense that you don't get promises about timeliness of it being called.
01:00 hercynium joined
masak right. 01:01
this thread seems to rehash most of the answers: stackoverflow.com/questions/171952/...r-for-java
in essence, the answer is 'there are no real destructors in Java. there's finalize, but it sucks. also, Java has a GC, why do you need destructors?' 01:02
jnthn Often, the answer is "to free up unmanaged resources" 01:03
(file handles, sockets, etc)
01:03 Raynes joined
colomon destructors make for some great C++ idioms. 01:04
jnthn My experience of doing C# dev is that the lifetime of many resources is lexically scoped though.
colomon it's a shame they are tough to port to GC-based languages.
jnthn (There's a construct for making things easy there.)
So I think overall lexical block hooks would cover many bases there. 01:05
masak I don't see how I could implement destructors in Yapsi, at the moment.
I mean, if Yapsi runs on Rakudo, then the GC is Parrot's. but Yapsi is pure Perl 6, so it doesn't even know it *has* a GC.
jnthn You could write your own object allocation, and GC. ;-)
01:05 jonrafkind left
masak would rather not :) 01:06
jnthn But I wouldn't wish that upon anyone. :-)
;-)
01:06 jaldhar_ joined
jnthn Anyway, I've not really heard "omg need destory" from people using Rakudo. 01:07
masak maybe because we don't do files and databases and other resources that much.
jnthn Maybe wider usage will see people pine for such things.
True.
colomon jnthn: I don't know that anyone has really gotten far enough to need it.
jnthn Fair point.
masak but no, DESTROY isn't high on the wish list for me :) 01:08
just mildly curious.
colomon and ugly ugly ugly C# style workarounds ought to be possible with what we have now.
01:09 pmurias left
jnthn colomon: ugly? :-) 01:09
colomon I haven't programmed extensively in C#, but my impression is that it is terrible on this front.
jnthn using (var Handle = File.Open("blah")) { ...do stuff... } // doesn't hurt me so much...
colomon right, but it's how that's implemented that's the problem. 01:10
jnthn Calls .Dispone() on Handle at the end of the block, IIRC.
(which in this case is implemented to close the file handle)
colomon Any class that needs to be finalized (is it disposed?) needs to be marked that way.
jnthn Disposed
Well, you need to mark up your usage of it that way, yes. 01:11
colomon But that attribute doesn't commute automatically.
jnthn Well, it's just an interface (IDisposable)
colomon so if you change a class to need to be Disposed, you must change every single class that uses that class as well.
jnthn *nod*
Yeah, it's not good in that sense.
I don't find that situation arises so much though, in the stuff I do. 01:12
Or maybe I just design stuff so the situation won't arise.
diakopter :)
masak decides to go to sleep 01:13
diakopter I'm sure things that make use of unsafe code need such things
colomon Maybe the C# code I've seen was just bad, and yours is better.
masak 'night, #perl6
colomon night!
diakopter gn
01:13 masak left
jnthn o/ masak 01:13
ooh, ETOOLATE
colomon: I've seen plenty of bad C# too. :-)
colomon but certainly the way I program C++ makes heavy use of destructors for things other than releasing memory, and porting that style over to C# appears very painful. 01:14
jnthn Yes, I can imagine it would be. 01:15
colomon at any rate, I imagine it would be very easy to port the IDisposable interface to Perl 6. Then it's just a matter of figuring out a graceful way to trigger it at the end of the block. 01:16
diakopter rakudo: sub a() { $*b = 6; if ($*b == 52) { my $*b = 4 } }; my $*b = 7; a(); say $*b
p6eval rakudo a1159c: OUTPUT«6␤»
diakopter perlesque has routine epilogues
but you're talking about a block; I see. 01:17
rakudo: sub a() { $*b = 6; if ($*b == 52) { my $*b = 4 } else { my $*b = 8 } }; my $*b = 7; a(); say $*b 01:18
p6eval rakudo a1159c: OUTPUT«6␤»
diakopter ah, ok 01:19
jnthn Rakudo looks correct there to me, fwiw.
diakopter I hope so, cuz that's what I'm basing my implementation on.. 01:20
jnthn :-)
diakopter rakudo: sub a() { $*b = 6; if ((my $*b) == 52) { my $*b = 4 } else { $*b = 8 } }; my $*b = 7; a(); say $*b 01:21
p6eval rakudo a1159c: OUTPUT«7␤»
diakopter oh
k
oh wait 01:22
where'd the 6 go 01:23
jnthn diakopter: The my $*b declared another $*b in the block
I think actually it should complain at compile time.
diakopter oh 01:24
jnthn std: sub a() { $*b = 6; if ((my $*b) == 52) { my $*b = 4 } else { $*b = 8 } }; my $*b = 7; a(); say $*b
p6eval std 30459: OUTPUT«ok 00:01 109m␤»
jnthn Oh.
but
std: my $a; sub foo() { $a; my $a }
p6eval std 30459: OUTPUT«===SORRY!===␤Lexical symbol '$a' is already bound to an outer symbol (see line 1);␤ the implicit outer binding at line 1 must be rewritten as OUTER::<$a>␤ before you can unambiguously declare a new '$a' in this scope at /tmp/oKZWAi8rjn line 1:␤------> my
..$a…
jnthn That's what I was going on.
I'd expected sub foo() { $*bar; my $*bar } to complain. 01:25
colomon std: my $*a; sub foo() { $*a; my $*a }
p6eval std 30459: OUTPUT«ok 00:01 109m␤»
jnthn For the same reason it does in the lexical case (ambiguity).
diakopter will wait for clarification, then 01:26
jnthn would be interested to know the answer too
TimToady std probably just punts on * vars 01:27
phenny TimToady: 23 Apr 23:28Z <sorear> tell TimToady How do undef warnings interact with autovivication? %hash{$key} += 1;
TimToady that should be no warning at all
diakopter std: my $*a; sub foo() { my $*a; my $*a } 01:28
p6eval std 30459: OUTPUT«Potential difficulties:␤ Useless redeclaration of variable $*a (see line 1) at /tmp/KBzrSCgtVO line 1:␤------> my $*a; sub foo() { my $*a; my $*a⏏ }␤ok 00:01 109m␤»
jnthn Semi-punt. :-)
TimToady well, the difference is that it doesn't attempt to link $*a to any outer lexical scope as a mere rvalue
pmichaud Will Pm ever stop writing about Perl 6? www.perlmonks.org/?node_id=836636 01:29
diakopter std: my $*a; sub foo() { my $*a if ({my $*a}()) }
p6eval std 30459: OUTPUT«ok 00:01 109m␤»
pmichaud (answer, yes, at least on this set of topics :-)
jnthn pmichaud++ 01:32
Another good post.
01:37 astrojp left 01:43 meppl joined 01:44 jaldhar_ left, _jaldhar_ joined 01:45 _jaldhar_ left, _jaldhar_ joined
jnthn -> rest o/ 01:54
01:56 alester joined
sorear backlog. 01:56
diakopter :)
sorear that stackoverflow thread doesn't touch on the real problems with DESTROY
the comment about stack frames was more apt 01:57
there's the question of how you deal with ressurrection, mostly
diakopter wonders if the stackoverflow site ever throws a stackoverflow error 01:58
01:58 Psyche^ joined
sorear you can attack the problem in various ways, but there are always layer upon layer of subtle semantic traps 01:59
this is one place where, IMO, there's no substitute for reading the literature 02:00
02:00 dKingston left 02:02 Patterner left, Psyche^ is now known as Patterner
colomon why does exp have a $base argument? 02:03
sorear to set the base of the exponential? 02:09
02:09 plobsing_ joined
lue for things like :16<34*10^3> 02:11
(and hi)
02:12 plobsing left
lue (oh, I'm thinking of radcalc(). never mind) 02:12
colomon but (unless I've gone insane), exp(4, 6) is exactly the same as 6 ** 4
and hi.
sorear TIMTOWDI
lue there's a base argument for the radcalc() helper function for :16<> and such :)
02:15 rgrau` left 02:23 patspam left 02:26 patspam joined 02:48 envi^home joined, fridim joined
lue rakudo: my @a = ((1,2,3),(4,5,6),(7,8,9)); say @a.WHAT 02:53
p6eval rakudo a1159c: OUTPUT«Array()␤»
02:58 Kyril joined 02:59 rv2733 joined 03:04 gurjeet joined 03:07 patspam left
pugssvn r30460 | kyle++ | [util] Added purge-empty-dirs.pl 03:11
03:12 patspam joined, eternaleye joined
pugssvn r30461 | kyle++ | ran util/purge-empty-dirs.pl -- 337 empty directories gone 03:13
03:13 rv2733 left
dalek kudo: 543d672 | (Solomon Foster)++ | src/core/ (4 files):
Minor tweak to Complex.abs, added Real.exp and Real.infix:<**>, removed Num.exp.
03:15
03:16 ShaneC1 left
sorear ARGH. 03:21
I know why blizkost is mysteriously failing now!
it's compiling against 5.12.0 headers and linking against a 5.10.1 libperl.so
and I have no clue why 03:22
oh, it might be related to the fact that perl 5.12.0 was built as a monolithic binary, no libperl.so 03:26
lue our salute to *nix complexities :) 03:34
03:42 stephenlb left, meppel joined 03:43 gurjeet left 03:44 patspam left
sorear blizkost needs a *much* more robust build system 03:46
03:46 meppl left 03:48 dalek joined 04:05 meppel is now known as meppl 04:09 Chillance left 04:10 jonrafkind joined
sorear I am going to break something. 04:11
Most likely jnthn's no distutils rule. 04:12
The build system we are using cannot get data from the compilation environment
Perl 5.12 hides libperl.so in a weird place even if you compile with libperl.so support 04:13
04:13 lue left
sorear to get access to the correct path requires a Perl command containing quotes and dollar signs 04:13
so embedding it in a Makefile is nontrivial 04:14
04:14 hercynium left
sorear GNU make's quoting syntax is NOT DOCUMENTED. 04:24
Why do I have to use this software?
04:26 lue joined
sorear $(shell perl -MConfig -e 'print $$Config{ccdlflags}') did the trick 04:26
no other combination works 04:27
lue \o/
sorear after 15 minutes of banging on the thing
*now* I have blizkost linking against the correct Perl 04:46
04:49 meppl left, am0c left 05:00 ReiniUrban joined 05:01 _jaldhar_ is now known as jaldhar, rurban left, ReiniUrban is now known as rurban 05:03 yinyin joined 05:04 parrot|Coke left 05:05 CokeBot9000 joined 06:01 XaeroOne joined 06:06 kaare joined, kaare is now known as Guest1966 06:08 Guest1966 left 06:11 jonrafkind left 06:18 alester left 06:19 isBEKaml joined 06:22 snarkyboojum joined
lue goodnight moon 06:35
06:35 isBEKaml left 06:44 fridim left 06:57 mgi joined 06:58 k23z__ left 07:01 XaeroOne left, justatheory left 07:05 Trashlord left 07:06 mgi left 07:07 Trashlord joined, Trashlord is now known as Guest76419
moritz_ good morning 07:11
sorear h*llo
moritz_ KyleHa++ # cleanup in pugs repo 07:13
07:18 M_o_C joined 07:20 XaeroOne joined 07:25 JimmyZ joined
JimmyZ Good aftermoon 07:27
hejki it's not waning 07:33
08:07 iblechbot joined
snarkyboojum good moaning 08:15
08:16 sorear left, sorear joined 08:25 Raynes left 08:30 agentzh joined 08:40 Kyril left 08:47 isBEKaml joined 08:49 KaneJin joined 08:50 KaneJin left 08:59 yinyin left 09:04 JimmyZ left 09:08 JimmyZ joined 09:13 JimmyZ left 09:15 XaeroOne left 09:51 snarkyboojum left 10:04 dual_ joined 10:06 dual left 10:14 iblechbot left
sorear phenny: tell jnthn , qif3.kyla.fi/~stefanor/1272105680.png \o/ 10:43
phenny sorear: I'll pass that on when jnthn is around.
sorear actually, everyone 10:45
blizkost running a GUI in NQP
:D
the screenshot I told jnthn. 10:46
colomon \o/ 10:49
10:50 sundar joined
sorear phenny: tell TimToady , What is the most reasonable interface for accessing Perl 5 globals? Something like GLOBAL<perl5>::MainWindow.new, but you probably have a niftier syntax 10:51
phenny sorear: I'll pass that on when TimToady is around.
10:58 elmex joined
avar sorear: What's a global in perl5? package variables? magic variables? 11:06
sorear avar: In this case, it's an entire package. 11:07
Punned as a class. 11:08
Generally speaking, everything that hangs off of PL_defstash I would call "global"
it's pretty easy to fake lexicality for actual imports
but for non-imported symbols, it's ickier
I already have the case worked out for directly imported packages (use Some::Class; Some::Class->new) 11:09
but with Tk, you import Tk and get classes like FOREIGN::perl5::MainWindow
actually that's my favorite syntax so far 11:10
11:19 isBEKaml left 11:20 JimmyZ joined 11:34 finanalyst joined
finanalyst rakudo: my %h='n'=><a1 a2 a3>;class A {has @.s}; my A $x.=new(:s(%h<n>));say $x.s.perl 11:34
p6eval rakudo 543d67: OUTPUT«[("a1", "a2", "a3")]␤»
finanalyst alpha: my %h='n'=><a1 a2 a3>;class A {has @.s}; my A $x.=new(:s(%h<n>));say $x.s.perl
p6eval alpha 30e0ed: ( no output )
finanalyst rakudo: my %h='n'=><a1 a2 a3>; say %h.perl; class A {has @.s}; my A $x.=new((%h<n>));say $x.s.perl 11:35
p6eval rakudo 543d67: OUTPUT«{"n" => ("a1", "a2", "a3")}␤[]␤»
finanalyst rakudo: class A {has @.s}; my %h='n'=><a1 a2 a3>; say %h.perl; my A $x.=new((%h<n>));say $x.s.perl 11:36
p6eval rakudo 543d67: OUTPUT«{"n" => ("a1", "a2", "a3")}␤[]␤»
finanalyst rakudo: class A {has @.s}; my %h='n'=><a1 a2 a3>; say %h.perl; my A $x.=new(:s(%h<n>));say $x.s.perl 11:37
p6eval rakudo 543d67: OUTPUT«{"n" => ("a1", "a2", "a3")}␤[("a1", "a2", "a3")]␤»
finanalyst rakudo: class A {has @.s}; my %h='n'=><a1 a2 a3>; say %h<n>.perl;my A $x.=new(:s(%h<n>));say $x.s.perl 11:38
p6eval rakudo 543d67: OUTPUT«("a1", "a2", "a3")␤[("a1", "a2", "a3")]␤»
finanalyst moritz_: am i wrong to expect the two outputs to be the same? 11:39
hi. anyone here? 11:40
JimmyZ hello 11:42
11:45 M_o_C left
finanalyst alpha: rakudo: class A {has @.s}; my %h='n'=><a1 a2 a3>; say %h<n>.perl;my A $x.=new(:s(%h<n>));say $x.s.perl 11:45
p6eval alpha 30e0ed: OUTPUT«Confused at line 10, near ": class A "␤in Main (file <unknown>, line <unknown>)␤»
11:58 TSa joined 12:03 rgrau` joined 12:08 plobsing_ left 12:09 rv2733 joined
jnthn sorear: Wow, nice! :-) 12:15
phenny jnthn: 10:43Z <sorear> tell jnthn , qif3.kyla.fi/~stefanor/1272105680.png \o/
JimmyZ sorear++ 12:17
pugssvn r30462 | moritz++ | [t/spec] random unfudges for Rakudo 12:18
moritz_ finanalyst: I'm not sure 12:19
finanalyst moritz_: if i am wrong, then how do I assign an array to an array attribute in a class? 12:21
rakudo: class A {has @.s}; my %h='n'=><a1 a2 a3>; say %h<n>.perl;my A $x.=new(:s(%h<n>));say $x.s.perl 12:22
p6eval rakudo 543d67: OUTPUT«("a1", "a2", "a3")␤[("a1", "a2", "a3")]␤»
moritz_ rakudo: class A {has @.s}; my %h='n'=><a1 a2 a3>; my A $x.=new(:s(@(%h<n>)));say $x.s.perl
p6eval rakudo 543d67: OUTPUT«["a1", "a2", "a3"]␤»
finanalyst ah. ok. 12:23
not really DWIM
jnthn sorear: fwiw, the latest makefile is broken on Win32 in a way I'm not sure how to fix. 12:24
moritz_ finanalyst: the () should flatten out automatically
jnthn sorear: If you feel strongly that going the distutils route would be better, and since you're primarily the one who has to cope with the Blizkost build system, then I can stop objecting. :-) 12:25
rakudo: time('oh no', 'arguments') 12:26
p6eval rakudo 543d67: ( no output )
jnthn grr
JimmyZ rakudo: say time - 1; say say - 1; 12:28
p6eval rakudo 543d67: OUTPUT«1272111156.57088␤-1␤1␤»
JimmyZ rakudo: say &time - 1; 12:30
p6eval rakudo 543d67: OUTPUT«get_number() not implemented in class 'Sub'␤current instr.: 'infix:<->' pc 294442 (src/gen/core.pir:1398)␤»
JimmyZ alpha: say &time - 1;
p6eval alpha 30e0ed: OUTPUT«get_number() not implemented in class 'Sub'␤in Main (file <unknown>, line <unknown>)␤»
JimmyZ rakudo: my $b = &time; say &$b; 12:32
p6eval rakudo 543d67: OUTPUT«␤»
JimmyZ alpha: my $b = &time; say &$b;
p6eval alpha 30e0ed: OUTPUT«time␤»
JimmyZ which one is right?
alpha: my $b = &time; say &$b(); 12:33
p6eval alpha 30e0ed: OUTPUT«1272111439.44215␤»
JimmyZ rakudo: my $b = &time; say &$b();
p6eval rakudo 543d67: OUTPUT«␤»
12:33 colomon left
JimmyZ rakudo: my $b = &time; say $b(); 12:33
p6eval rakudo 543d67: OUTPUT«1272111459.04758␤»
JimmyZ alpha: my $b = &time; say $b();
p6eval alpha 30e0ed: OUTPUT«1272111462.12188␤»
jnthn afk for a bit
(spectesting a patch to move time into the setting to at least the 0-args signature is enforced) 12:34
12:45 k23z__ joined
ingy 5555 12:48
12:48 gurjeet joined
moritz_ hopes that was not an irssi window number :-) 12:49
pmichaud good morning, #perl6 13:00
moritz_ oh hai
13:00 gurjeet left
jnthn back for a bit 13:00
o/ pmichaud
13:00 ReiniUrban joined 13:01 rurban left, ReiniUrban is now known as rurban
moritz_ sees a test like this: 13:04
my $foo = 42; 13:05
($foo, 'ignored')[0] = 23
and the test expects that to assign 23 to $foo
is that correct?
moritz_ hopes not
jnthn moritz_: Why would you expect it to not work? 13:06
moritz_ because lists are immutable
oh, rakudo actually passes that test...
jnthn Hmm. Interesting question. :-) 13:07
moritz_ rakudo: my $x = 4; ($x, 3)[0] = 6; say $x
p6eval rakudo 543d67: OUTPUT«6␤»
moritz_ rakudo: my $x = 0; my $y = 0; ($x, $y)[0] = (6, 8); say $x, $y 13:08
p6eval rakudo 543d67: OUTPUT«6 80␤»
moritz_ rakudo: my $x = 0; my $y = 0; ($x, $y)[0, 1] = (6, 8); say $x, $y
p6eval rakudo 543d67: OUTPUT«Cannot assign to readonly value␤current instr.: '&die' pc 17354 (src/builtins/Junction.pir:393)␤»
moritz_ rakudo: my $x = 0; my $y = 0; ($x, $y)[0, 1] = 6, 8; say $x, $y
p6eval rakudo 543d67: OUTPUT«Cannot assign to readonly value␤current instr.: '&die' pc 17354 (src/builtins/Junction.pir:393)␤»
moritz_ it complains in a slice, but not otherwise 13:09
13:09 colomon joined
colomon www.nomic.net/~nomicwiki/index.php/PerlNomic 13:09
jnthn moritz_: Something seems odd there, then. 13:11
dalek kudo: ae0c2d4 | jonathan++ | build/Makefile.in:
Pull subset implementation a little earlier in the bootstrap, so we can define subset types in the core setting.
kudo: c866154 | jonathan++ | src/ (2 files):
Move time to core setting.
kudo: de2ad34 | jonathan++ | src/core/Mu.pm:
Initial port of WALK from alpha. Passes some of the tests; think those that fail are not due to an issue in WALK itself. Also add the Matcher subset type.
moritz_ rakudo: say Parcel ~~ Seq 13:12
p6eval rakudo 543d67: OUTPUT«0␤»
pugssvn r30463 | moritz++ | [t/spec] fudge lists.t for rakudo; some corrections 13:14
r30464 | moritz++ | [t/spec] fudge dollar-underscore.t for rakudo 13:18
pmichaud 13:06 <moritz_> because lists are immutable 13:20
... ($foo, 23) is not a list.
It's a Parcel.
moritz_ point taken
pmichaud and clearly we expect ($foo, $bar) = ... to work.
13:21 mberends left
moritz_ fair enough 13:21
now that you mention it, I feel silly for having asked :-)
pmichaud so, I agree there's an argument to be made that perhaps ($foo, 23)[0] = ... shouldn't work, but there's also an argument the other way :)
more interesting might be something like (@a, @b)[25] = ... 13:22
13:22 plobsing joined
pmichaud there's also the possibiility that .[ ] turns a parcel into a list or seq or something like that, which would make your original interpretation ("it shouldn't work") valid. 13:23
pugssvn r30465 | moritz++ | [t/spec] update dollar_bang.t
pmichaud I think we just have to see how the list/seq/array refactoring falls out and then say "oh, yes of course" or "no, that can't be right" :)
jnthn pmichaud: (turns a into a Seq) that was the main reason I was thinking "hmm, mabye that won't work", fwiw. 13:24
pmichaud jnthn: right
jnthn: but I'm also suspicious that Parcel->Seq won't end up being the transformation. We'll see. 13:25
jnthn Ah, OK. 13:27
pugssvn r30466 | moritz++ | [t/spec] throw away a wrong test in chained-declarators.t, and fudge for rakudo
moritz_ rakudo: 1 p5=> 5
jnthn expects he'll be happy with whatever pmichaud++ comes up with
p6eval rakudo 543d67: OUTPUT«Confused at line 11, near "1 p5=> 5"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
moritz_ std. 1 p5=> 5
std: 1 p5=> 5
p6eval std 30462: OUTPUT«===SORRY!===␤Two terms in a row at /tmp/B8kNRbvLWR line 1:␤------> 1 ⏏p5=> 5␤ expecting any of:␤ bracketed infix␤ infix or meta-infix␤ statement modifier loop␤Parse failed␤FAILED 00:01 109m␤»
moritz_ std: 1 P5=> 5
p6eval std 30465: OUTPUT«===SORRY!===␤Two terms in a row at /tmp/8jEGzSOSN1 line 1:␤------> 1 ⏏P5=> 5␤ expecting any of:␤ bracketed infix␤ infix or meta-infix␤ statement modifier loop␤Parse failed␤FAILED 00:01 109m␤»
moritz_ rakudo: [/] () 13:29
p6eval rakudo 543d67: OUTPUT«No applicable candidates found to dispatch to for 'infix:</>'. Available candidates are:␤:(Rat $a, Rat $b)␤:(Rat $a, Int $b)␤:(Int $a, Rat $b)␤:(Int $a, Int $b)␤:(Complex $a, Complex $b)␤:(Num $a, Num $b)␤:(Real $a, Real $b)␤:(Complex $a, Any $b)␤:(Any $a, Complex $b)␤:(Any
..$a, Any…
13:35 molaf joined
colomon woah, that's a lot of options. 13:40
pmichaud need to be able to define [/]() directly. 13:46
moritz_ rakudo: say [*]()
pmichaud (and it should fail)
p6eval rakudo 543d67: OUTPUT«1␤»
moritz_ pmichaud: I've defined some of these operators, but for those not in the setting it's harder
pmichaud moritz_++
moritz_ src/core/metaops.pm 13:47
colomon surely / should be easy, right?
hmmm.... where are the tests for those?
pmichaud our multi sub infix:</>() { fail "..." };
colomon why fail?
pmichaud S03: 13:48
Builtin reduce operators return the following identity values:
[**]() # 1 (arguably nonsensical) [*]() # 1 [/]() # fail (reduce is nonsensical)
colomon fair enough!
13:48 IllvilJa left
pmichaud afk, housework 13:48
13:48 XaeroOne joined
colomon moritz_: do you have that, or do you want me to get it? 13:49
13:50 dalek left, iblechbot joined
colomon not convinced [/] is nonsensical, though mildly useless seems accurate... 13:50
13:51 _buno_ joined
moritz_ colomon: S03-operators/reduce-le1arg.t 13:52
colomon danke 13:53
moritz_ bitteschön
S03-operators/spaceship.t
oops
that test file relies on {; $_ => 1 } being a block 13:54
rakudo: say {; $_ => 1}.WHAT
p6eval rakudo de2ad3: OUTPUT«Hash()␤»
colomon yeah, we apparently need to fix that.
jnthn Eww!
13:57 dalek joined 14:04 _buno_ left
jnthn going out to enjoy the sun for a bit 14:08
colomon is pondering how to make reduce-le1arg.t work.
more work than I was expecting. 14:09
14:14 patspam joined
finanalyst rakudo: class B {has @.a;has $.u;method m { for $.u .. 4 { .WHAT.say; say @.a[$_] }}}; my B $x.=new(:a<a b c d>,:u('3'));$x.m 14:15
p6eval rakudo de2ad3: OUTPUT«Str()␤No applicable candidates found to dispatch to for 'postcircumfix:<[ ]>'. Available candidates are:␤:(Mu : Int $i;; *%_)␤:(Mu : Block $b;; *%_)␤:(Mu : !whatever_dispatch_helper ;; *%_)␤␤current instr.: '!postcircumfix:<[ ]>' pc 10885 (src/builtins/Role.pir:73)␤»
finanalyst i think Str should numify to index an array in a class. Yes? 14:16
colomon sounds plausible to me. 14:17
14:17 patspam left
finanalyst rakudo: class B {has @.a;has $.u;method m { for $.u .. 4 { .WHAT.say; say @.a[+$_] }}}; my B $x.=new(:a<a b c d>,:u('3'));$x.m 14:18
p6eval rakudo de2ad3: OUTPUT«Str()␤No applicable candidates found to dispatch to for 'postcircumfix:<[ ]>'. Available candidates are:␤:(Mu : Int $i;; *%_)␤:(Mu : Block $b;; *%_)␤:(Mu : !whatever_dispatch_helper ;; *%_)␤␤current instr.: '!postcircumfix:<[ ]>' pc 10885 (src/builtins/Role.pir:73)␤»
finanalyst not only that but I cant seem to coerce the Str to a Num
akudo: class B {has @.a;has $.u;method m { for $.u .. 4 { .WHAT.say; say @.a[$_] }}}; my B $x.=new(:a<a b c d>,:u(3));$x.m
rakudo: class B {has @.a;has $.u;method m { for $.u .. 4 { .WHAT.say; say @.a[$_] }}}; my B $x.=new(:a<a b c d>,:u(3));$x.m 14:19
p6eval rakudo de2ad3: OUTPUT«Int()␤d␤Int()␤␤»
finanalyst but code works if attribute is given as a number.
colomon that's not ever going to work, because Ranges can be over numbers or over strings. 14:20
rakudo: say 'd' .. 'f' 14:21
p6eval rakudo de2ad3: OUTPUT«def␤»
colomon rakudo: say '3' .. 'f'
p6eval rakudo de2ad3: OUTPUT«3456789␤»
colomon which isn't to say that it necessarily works correctly now, either.
rakudo: say ('3' .. 'f').list.perl
p6eval rakudo de2ad3: OUTPUT«"3".."f"␤»
finanalyst the problem is the coercion to an integer to index the array 14:22
colomon rakudo: say ('3' .. 'f').iterator.perl
p6eval rakudo de2ad3: OUTPUT«("3", "4", "5", "6", "7", "8", "9")␤»
14:22 XaeroOne left, XaeroOne joined
finanalyst if $_ is given Type Str, then inside the class it cannot be used to index the array attribute 14:23
And I cant work out how to coerce it to do so
colomon rakudo: my @a = 'a'..'g'; say @a[+'3'] 14:24
p6eval rakudo de2ad3: OUTPUT«d␤»
finanalyst rakudo: class B {has @.a;has $.u;method m { for $.u .. 4 { .WHAT.say; say @.a[+$_] }}}; my B $x.=new(:a<a b c d>,:u(+'3'));$x.m
p6eval rakudo de2ad3: OUTPUT«Num()␤No applicable candidates found to dispatch to for 'postcircumfix:<[ ]>'. Available candidates are:␤:(Mu : Int $i;; *%_)␤:(Mu : Block $b;; *%_)␤:(Mu : !whatever_dispatch_helper ;; *%_)␤␤current instr.: '!postcircumfix:<[ ]>' pc 10885 (src/builtins/Role.pir:73)␤»
finanalyst Also Num cant be used to index array. Bug I think
colomon There are definitely bugs in array indexing at the moment. 14:28
finanalyst what is the syntax for casting to an Int? 14:29
14:29 patspam joined, XaeroOne left
finanalyst rakudo: my $x = '3'; say $x.WHAT; say (+$x).WHAT 14:30
p6eval rakudo de2ad3: OUTPUT«Str()␤Num()␤»
finanalyst rakudo: my $x = '3'; say $x.WHAT; say (+$x).WHAT; say (Int($x)).WHAT
p6eval rakudo de2ad3: OUTPUT«Str()␤Num()␤Could not find sub &Int␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
finanalyst rakudo: my $x = '3'; say $x.WHAT; say (+$x).WHAT; say (int($x)).WHAT
p6eval rakudo de2ad3: OUTPUT«Str()␤Num()␤Could not find sub &int␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
finanalyst colomon: how do I get an Int()? 14:31
14:31 JimmyZ left 14:32 XaeroOne joined
pmichaud officially, Int($something) . I think that's still NYI. 14:33
you might be able to do $something.Int -- that may be NYI also but it would be relatively easy to I
rakudo: say "3.14".Int
p6eval rakudo de2ad3: OUTPUT«3␤»
pmichaud looks I to me :-)
rakudo: say Int(3.14);
p6eval rakudo de2ad3: OUTPUT«Could not find sub &Int␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
pmichaud that's wrong -- it shouldn't be treating Int(...) as a sub. 14:34
colomon .Int
finanalyst rakudo: my $x = '3'; say $x.WHAT; say (+$x).WHAT; say ($x.Int).WHAT 14:38
p6eval rakudo de2ad3: OUTPUT«Str()␤Num()␤Int()␤»
finanalyst rakudo: class B {has @.a;has $.u;method m { for $.u .. 4 { .WHAT.say; say @.a[$_.Int] }}}; my B $x.=new(:a<a b c d>,:u('3'));$x.m 14:39
p6eval rakudo de2ad3: OUTPUT«Str()␤d␤Str()␤␤»
14:44 XaeroOne left 14:46 XaeroOne joined 14:52 lisppaste3 joined 14:54 M_o_C joined 15:15 M_o_C left
takadonet any idea what error message "Method 'new' not found for non-object" means? 15:19
moritz_ takadonet: it means a parrot value leaks through somewhere
takadonet mortiz_: nuts....
moritz_ points takadonet to the tab key 15:20
takadonet sorry
moritz_ np
15:25 snarkyboojum joined 15:26 TiMBuS joined 15:31 patspam left, agentzh left
takadonet what is another way to replace all '_' in a string with a whitespace without using .trans method? 15:33
moritz_ takadonet: $str.subst('_', ' ', :g) 15:35
or maybe /_/
takadonet moritz_: I almost got it myself but you are quicker :)
15:35 colomon left 15:36 colomon joined
takadonet welcome back colomon 15:39
colomon I hardly left, the computer just accidentally got closed. ;) 15:40
15:47 pmurias joined
takadonet Another error message: Method 'list' not found for invocant of class 'ResizablePMCArray' I'm trying to do a gather and take in action class i.e : my @matches = gather for @( $/<fasta> ) -> $m {take $m;} . Any ideas? 15:54
I can access any of the match normally by $/<fasta>[NUM] 15:56
lue o hai dere
colomon did you try leaving out the @( and ) bits?
takadonet runs but not sure if the result are being taking out 15:58
shit...
need to put back the make @matches part
colomon yeah, you might get the entire thing instead of each bit.
takadonet ya 15:59
16:03 patspam joined 16:11 Guest76419 is now known as Trashlord, Trashlord left, Trashlord joined
jnthn back from walk 16:15
takadonet jnthn: welcome back 16:18
gather and take are lazy by default correct?
jnthn Should be. 16:19
lue hello jnthn o/
16:20 Gothmog_ left, Gothmog_ joined
lisppaste3 takadonet pasted "lazy:gather/take" at paste.lisp.org/display/98277 16:21
takadonet Should this print out the word beer between each number? 16:22
Or is the 'for' loop is forcing to evaluate all the values? 16:23
jnthn takadonet: Yeah, for loops are not lazy yet. 16:24
takadonet jnthn: Well they should be :) Thanks jnthn 16:25
jnthn rakudo: my $i; my @a = gather { $i = 1; for (1 .. 5) -> $j { say 'beer!'; take $j; } }; @a.map(-> $b { say $b }).eager; 16:26
p6eval rakudo de2ad3: OUTPUT«beer!␤beer!␤beer!␤beer!␤beer!␤1␤2␤3␤4␤5␤»
jnthn Oh
16:26 plobsing left
jnthn Yeah, so maybe it's the array assignment this time. 16:26
I think pmichaud++ is working on this area this weekend though. :-)
takadonet good
:) 16:27
I always find the unimplemented areas within a few minutes of coding!
16:31 patspam left
daemon takadonet, you must have the skill :) 16:33
takadonet daemon: well I really want to start getting some working code again! 16:34
daemon takadonet, Oh you enjoy the challange, admit it
takadonet daemon: yes..... but but.... ya 16:35
16:35 hudnix joined 16:36 justatheory joined
daemon hehe good luck, time for me to go be challanged by writing out my new database. I really suck with postgres :( *heads off to find a 'PostGres for dummies' book* 16:36
16:39 TiMBuS left 16:40 sundar left
lisppaste3 takadonet annotated #98277 "Subst bug?" at paste.lisp.org/display/98277#1 16:40
takadonet subst cannot be used on a Regex::match?
16:43 nihiliad joined
takadonet take that as everyone is hacking quietly or sleeping :) 16:50
16:50 patspam joined 16:53 finanalyst left
pmurias takadonet: what would it do? 16:53
takadonet pmurias: error message " Method 'subst' not found for invocant of class 'Regex;Match' "
i can do math operation on Regex::Match but not string modification 16:54
pmurias += works?
takadonet also $/.ast is undef since we are in the action method
jnthn takadonet: You may want to coerce it to a string yourself for now 16:55
In the long run, yes, it should work
colomon I'm not sure why $/.subst doesn't work, but have you tried (~$/).subst?
pmurias forgot that subst doesn't modify the string
takadonet colomon: works!
what did you just tell me to do? hehe 16:56
colomon same thing jnthn++ did, I just expressed it as code.
prefixing a ~ on something turns it into a string.
so $/ is a match object, ~$/ is the string form of it.
takadonet sweet 16:57
well it works
colomon++ 16:58
colomon rakudo: say Regex::Match ~~ Cool 16:59
p6eval rakudo de2ad3: OUTPUT«0␤»
colomon That may be why it didn't work the first way you had it there. 17:00
jnthn Yeah, our Match objects aren't Cool yet. 17:04
takadonet cries 17:05
one day... one day
moritz_ working on it 17:14
17:14 rgrau` left 17:25 Kyril joined 17:30 mberends joined
pugssvn r30467 | moritz++ | [t/spec] a fudge to lists.t that I forgot earlier 17:34
lue afk 17:35
17:48 pmurias left 17:53 XaeroOne left 17:57 envi^home left
pugssvn r30468 | colomon++ | [t/spec] Major refudge for current Rakudo. 18:03
mberends ooh! :-)
18:04 justatheory left 18:06 mikehh joined 18:08 Kyril_ joined 18:12 Kyril left 18:13 Kyril_ left, hghgd_ left 18:18 hghgd joined 18:28 hghgd left 18:34 masak joined
masak saluton, #perl6! 18:34
takadonet masak:hello 18:36
18:36 meppl joined
mberends ahoj, masak! 18:36
masak for ^5 { my $a; BEGIN { $a = 42; say "OH HAI" }; say $a } 18:37
what would you expect this to output?
Perl 5.10 outputs "OH HAI\n42\nwarning\n\nwarning\n\nwarning\n\nwarning\n\n" 18:38
mberends 42\n42\n42\n42\n42\n ?
18:39 M_o_C joined
masak why would the $a variables get that value if no "OH HAI" is output? 18:39
mberends OH HAI42\n42\n42\n42\n42\n ? # forgot ;) 18:40
masak ok, that's a reasonable expectation.
at least I thought so until today. :) 18:41
jnthn If it's going to work, I'd think that you'd get that.
I'd expect to BEGIN to run once.
masak right.
jnthn Well
Thing is
a BEGIN block that refers to outer lexicals is just plain nasty.
masak so there's some kind of cloning of the for block going on here to make this work. 18:42
there's kind of a proto-block which knows that it contains a lexical $a.
jnthn IICU, a "my" is meant to make set up the thingy in the lexpad.
masak that one gets 'reified' into a runnable block and the BEGIN block runs on it.
jnthn e.g. maybe you're seeing the same effect that makes the "my $x if 0" trick.
masak for each iteration then, a new runnable block is cloned from the one where the BEGIN ran. 18:43
jnthn Maybe.
masak that's the only reasonable way I can think of right now, to produce "OH HAI\n42\n42\n42\n42\n42\n" 18:44
jnthn Pm and I have discussed the idea of a "proto lex pad" which is the same kinda clone idea I think.
masak well,
I already know that I well need blocks-at-compile-time and blocks-at-runtime.
jnthn My inner implementer wants to just say "can't do that with BEGIN" of course. :-)
masak of course :)
Perl 5 doesn't come out and say it, but instead implies it. 18:45
mberends I've just committed the closure goodness of masak++'s nicer-strftime branch to master, without any loss of tests :-) 18:48
masak mberends++
colomon Speaking of which, 31605 tests passing here 18:49
dalek kudo: a7f317d | (Martin Berends)++ | src/core/Temporal.pm:
[core/Temporal.pm] merge in the nicer-strftime branch hash-of-closures in strftime() in a way that works with current master
kudo: 06fe9a7 | (Solomon Foster)++ | t/spectest.data:
Turn on S03-operators/reduce-le1arg.t.
kudo: 884c3c0 | (Solomon Foster)++ | src/core/metaops.pm:
Add version of notresults which takes an operator type but no operands and always returns Bool::True. Add zero-arg versions of <, <=, >, >=, and eqv.
kudo: 1e71b81 | (Solomon Foster)++ | src/c (4 files):
Move a bunch of operators from num-ops.pir and str-ops.pir to operators.pm. Add no-arguments versions of some of them as well.
masak mberends: so I'll remove the nicer-strftime branch on github, then? 18:51
jnthn colomon: Whoa...how'd we get up to that?! :-D 18:52
colomon I blame moritz_++ 18:53
Though I just adding 40 passing tests myself. :)
mberends masak: yes, thanks 18:54
masak done.
pmichaud: [backlog] nice www.perlmonks.org/?node_id=836636 -- a teeny tiny nitpick: not only do I in that post (and in general) not believe that a name change of Perl 6 will 'happen anytime soon', I don't believe it will, or should, happen at all. 18:58
but maybe that's less what people reading that post want to hear right now, and what you wrote is more diplomatic. 18:59
that said, I'm all for giving lots of focus on names like "Rakudo", "Vill", and "Sprixel". 19:00
jnthn colomon: Yay! :-) 19:02
19:03 meppl left
pugssvn r30469 | kyle++ | [util] Silly bug 19:04
19:08 k23z__ left
colomon rakudo: say [before] 3, 4, 15, 100/3 19:08
p6eval rakudo de2ad3: OUTPUT«1␤» 19:09
colomon rakudo: say [before] 3, 4, 15, 10/3
p6eval rakudo de2ad3: OUTPUT«0␤»
19:09 nihiliad left
masak sorear++ # blizkost nqp GUI \o/ 19:10
I can't be sure, but the two newcomers (cberg++ yesterday and Matthias_++ the day before) might very well both have been here thanks to the positive impact of the recent PerlMOnks thread with all the anti-FUD. 19:16
19:20 jaldhar left
jnthn masak: That thought had occurred to me too. 19:25
\o/ Jag har tolv köttbullar i pannat! 19:26
masak 'pannan' :)
köttbullar, mums!
jnthn: oh btw, I finally heard an example of the food-orders-always-have-an-'en'-article today in real use. 19:27
it was really obvious, but I hadn't thought about it until now.
jnthn Oh?
masak 'en kaffe'.
now, 'kaffe' is a t-word. 19:28
jnthn kaffe is normally neuter?
19:28 wormphlegm joined
masak right. 19:28
jnthn Jag dricker kaffet. # I'm drinking the coffee
?
masak aye.
jnthn But en kaffe to order?
OK. :-)
masak 'Jag vill ha en smörgås och en kaffe.'
jnthn An egg goose? ;-) 19:30
masak nono, a butter goose. 19:32
that's how we say 'sandwich' in my country. 19:33
masak does a funny native dance, too
frettled sudo make me a sandwich 19:34
jnthn gets the lingonsylt and smörgås gurka ready :-) 19:36
moritz_ www.perlmonks.org/?node_id=836695 "If you would (like me) follow Python boards and see the frustration Ruby causes you might change your opinion about a fast major release of Perl5."
somehowI don't understand this sentence at all
wtf has the python-ruby frustration to do with the next major perl 5 release? 19:37
and do I even want to know? 19:38
jnthn afk, nomming 19:39
masak might be beyond the point where knowing/caring stops leading to something constructive.
moritz_ probably
19:41 lichtkind joined
moritz_ rakudo: say pi 19:41
p6eval rakudo 06fe9a: OUTPUT«3.14159265358979␤»
masak rakudo: pi pi 19:42
p6eval rakudo 06fe9a: OUTPUT«Confused at line 11, near "pi pi"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
masak rakudo++
pugssvn r30470 | colomon++ | [t/spec] Add tests for infix:<before> and infix:<after>, fix a typo.
masak std: pi pi
p6eval std 30469: OUTPUT«===SORRY!===␤Two terms in a row at /tmp/AG9A7mf3Ui line 1:␤------> pi ⏏pi␤ expecting any of:␤ bracketed infix␤ infix or meta-infix␤ statement modifier loop␤Parse failed␤FAILED 00:01 109m␤»
dalek kudo: 4bf985c | (Solomon Foster)++ | src/core/metaops.pm:
Delete a number of commented out zero-arg operators that we don't need because notreduce handles them. Uncomment infix:<before> and infix:<after>.
kudo: ea91882 | moritz++ | t/spectest.data:
re-enable a few test files; also throw one entry away where the test file was deleted
masak though STD wins on the error message.
moritz_ rakudo. say atan(1) 19:44
lichtkind cheers buddys
moritz_ rakudo: say atan(1)
p6eval rakudo 06fe9a: OUTPUT«0.785398163397448␤»
moritz_ rakudo: say atan(1)*4
p6eval rakudo 06fe9a: OUTPUT«3.14159265358979␤»
masak lichtkind! \o/ 19:45
rakudo: say atan2(0, -1) 19:46
p6eval rakudo 06fe9a: OUTPUT«3.14159265358979␤»
19:47 rv2733 left
sorear jnthn: How is the makefile broken on Windows? 19:49
moritz_ rakudo: 3.14159265358979323846264338327950288419716939937510e0
p6eval rakudo 06fe9a: OUTPUT«Multiple Dispatch: No suitable candidate found for 'multiply_float', with signature 'PNP->P'␤current instr.: 'perl6;Perl6;Actions;_block6598' pc 264972 (src/gen/perl6-actions.pir:13056)␤»
masak I s'pose that's a known, reported bug?
19:50 M_o_C left
moritz_ no idea 19:50
don't think so
masak submits it, then
Justin Case. :)
pugssvn r30471 | colomon++ | [t/spec] Add a few tests for infix:<**>(Real, Real) and Real.exp. 19:51
19:52 mantovani left
masak rakudo: rakudo: 3.14159265358979323846264338327950288419716939937510 19:52
colomon That is a known bug, I think.
p6eval rakudo 06fe9a: OUTPUT«Confused at line 11, near "rakudo: 3."␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
masak dang.
rakudo: 3.14159265358979323846264338327950288419716939937510
p6eval rakudo 06fe9a: OUTPUT«PAST::Compiler can't compile node of type BigInt␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 152 (compilers/pct/src/PCT/HLLCompiler.pir:108)␤»
moritz_ colomon: I knew it only with rats, not with nums
masak colomon: even with the e0 at the end?
colomon A couple of us have had shots at rewriting it and failed.
moritz_ there's a patch by baest++ in RT 19:53
colomon orly?
frettled Whoever this Rolf (LanX) is, that discussion subthread is counter-productive. Kudos to pmichaud++ for trying to keep up, but I think it's a dead end.
masak frettled: I had the same thought. 19:54
moritz_ I never found discussing with LanX productive
he used to have endless threads on perl-community.de too
colomon where is the current thread? 19:57
masak www.perlmonks.org/?node_id=836349 19:59
colomon thanks
frettled colomon: I'd recommend against reading it. :)
masak well, once doesn't hurt. just don't read it four times, like I did. :P 20:00
frettled haha
jnthn back from nomming 20:06
frettled So, er, did you _really_ combine lingonsylt with smörgåsgurka? 20:07
jnthn sorear: I *think* my make program doesn't handle :=
frettled: Maybe smörgåsgurka isn't the word I wanted.
Pickled cucumber?
masak aye. 20:08
frettled The same
masak frettled: don't tell me you've never combined those two and köttbullar? :)
frettled But by all means, that sounds like a worthy test for a gastronaut.
masak it's typical Swedish fare.
jnthn It somehow feels right. 20:09
Having actually done it.
frettled masak: sure, but I don't think I've put both lingon and gurka in my mouth at the same time, strangely enough.
masak frettled: you're putting up invisible limits for yourself. free your mind :)
frettled Hmm. 20:10
frettled checks the fridge.
masak sweet and salty is very good, in a contrasty way.
and come to think of it, lingon is actually sweet with a touch of sour.
dalek kudo: 73e8d42 | moritz++ | (2 files):
implement samecase()
20:11
colomon partridgeberry! mmmmmm...... 20:12
pugssvn r30472 | moritz++ | [t/spec] be more idiomatic in map_function_return_values.t 20:15
masak p6l is now considering not only all the calendars of the world, but all possible calendars in all fantasy worlds, too. my blood pressure stays low because I simply cannot take them seriously.
jnthn isn't even reading those posts any more. 20:16
moritz_ finds that blood pressure is generally overrated anyway
jnthn masak++ for bothering to at all.
20:18 madalu joined
masak well, zany as they seem, they might be right in that the option to plug in other calendar systems is actually a good idea for extensibility. 20:19
frettled jani.at.ifi.uio.no/tmp/lingon+gurka.jpg
masak frettled++ 20:20
moritz_ masak: yes. And Instant provides that capability
frettled The gurka is a bit too dominantly sour, otherwise it would work quite well.
colomon appears to have completely broken exp locally. 20:21
moritz_ use MONKEY_TYPING; augment class Instant { method Discordian { Discordian.new(self) } }; now.Discordian.whatever
masak or just put the coercion in the Discordian class.
20:21 nihiliad joined
frettled heh 20:21
masak hm, actually using Discordian as an example in the spec would make lue++ happy :) 20:22
moritz_ masak: sure, if you're not sold to the built-in feeling
frettled I actually think the last two posts (that I read) were quite useful. Darren Duncan and Jon Lang, IIRC.
masak moritz_: I'm not, at least not at the expense of turning on duck punching... er, monkey typing.
moritz_ frettled: the key is knowing when to stop reading :-)
frettled and which parts to skim
masak sounds like the Halting Problem but for PerlMonks posts :P 20:23
you need to skim to know whether or not to skim, but then you might actually start reading in depth...
frettled I can hear one hand clapping already. 20:24
20:25 madalu left
frettled On a more serious note: I think it's useful to think of the basis of time as instants and durations, but as Jon (IIRC) said: there should be a default, and that default should be Gregorian. And that's what we're getting, ain't that so? 20:25
masak yes!
frettled Is there a perl6-modules discussion list yet? 20:27
moritz_ nope 20:28
might be a good idea to start one
colomon "No, you'd likely have a Perl 5.10 that would be called "Perl 6"." pmichaud++ 20:29
20:30 madalu joined
frettled I'm so glad that I don't have an account for commenting there, I might be tempted to say something like "there haven't yet been big enough changes to Perl 5 to merit a new major version number, nor is there any such change on the horizon", and people might be pissed off for all sorts of reasons. :) 20:31
But then I have a pretty conservative and orthodox view regarding what merits a change of major version, and I think that changing the minor version is a huge f-ing clue that there are significant changes. 20:32
masak audreyt++ # "Perl v5+6i" :) 20:41
a bit too complex, I fear. but a fun suggestion.
frettled heh 20:42
sorear jnthn: You can replace the := with a = if you want, it'll only double the number of processes run during the make 20:43
= in make is macro expansion and evaluates each time the LHS is used
:= evaluates once, but it's not in nmake?
moritz_ still same O($thing) :-) 20:44
rakudo: class A { method f { say "moep" } }: A.new ~~ .f
p6eval rakudo ea9188: OUTPUT«Confused at line 11, near "class A { "␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
moritz_ rakudo: class A { method f { say "moep" } }; A.new ~~ .f 20:45
p6eval rakudo ea9188: OUTPUT«Method 'f' not found for invocant of class ''␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
moritz_ bug
jnthn moritz_: It's a syntactic form of smartmatch, didn't pop 'em back yet. 20:48
moritz_: I think all of the smartmatch test files that we still have got commented out are for the syntactic forms.
lue hello! 20:49
moritz_ jnthn: well, even if it's not syntactic, the LHS should be the topic of the RHS, afaict
but adding back the syntactic form should solve the problem too 20:50
sorear does rakudo work on parrot trunk yet?
moritz_ is there a way to get the caller's $_ somehow? (maybe PIR cheating)
sorear: don't think so
sorear $CALLER::_
moritz_ sorear: today, not in theory :-) 20:51
jnthn moritz_: The syntactic form is used to make that so.
moritz_ jnthn: ah
rakudo: say (s/foo/bar/).WHAT
p6eval rakudo ea9188: OUTPUT«Substitution()␤»
takadonet I just got parsefile method from Grammar to work correctly with my code. Do i need to make a new patch (wiki.github.com/rakudo/rakudo/steps...e-a-patch) for a one line change? 20:52
moritz_ takadonet: you can nopaste it here too
takadonet k
jnthn Yes, there's a way, in PIR it's something like $P0 = getinterp\n$P1 = $P0['lexpad';1]\n$P2 = $P1['$_'] # or some such
moritz_ jnthn: thanks 20:53
lisppaste3 takadonet pasted "Parsefile Fix" at paste.lisp.org/display/98283 20:55
moritz_ method parse() could also use a *%options hash 20:56
moritz_ spectests
takadonet moritz_: Ya either way works
spec file still does not pass but it for other reason 20:57
but my code does work now :)
sorear jnthn: Does s/:=/=/ work for you?
jnthn: To be fair I'm not convinced by the distutils approach, but I definitely want to get away from our reliance on gen_makefile.pl because it has no extensibility 20:59
I can see us copying the Rakudo makefile machinery
21:00 molaf left, ReiniUrban joined
moritz_ takadonet: ah, the test file assumes weird things 21:01
takadonet moritz_: which test file? parse_and_parsefile.t ? 21:02
moritz_ .parse() implicitly anchors the matcht as ^ ... $
takadonet: yes
moritz_ too tired to fix it
takadonet moritz_: nothing to do with my change right? 21:03
21:03 mberends left
moritz_ takadonet: right 21:03
21:03 rurban left
takadonet moritz_: Good! apply when you want, I just changed it on my branch for now so I can can continue to work 21:03
21:03 ReiniUrban is now known as rurban
cosimo hi everyone, i picked up rakudo on win32 again after a couple of months. builds fine, but I can't run my LWP::Simple module anymore... 21:04
it used to be fine, but now I get this error message:
Null PMC access in find_method('get_parrotclass')
current instr.: 'perl6;ClassHOW;onload' pc -1 ((unknown file):-1)
masak cosimo: might be you're using sockets and they don't work in master yet. 21:05
still, it's an un-fun error message.
tried to isolate it?
lisppaste3 cosimo pasted "lwp-get.pl" at paste.lisp.org/display/98287 21:06
lue what does LWP::Simple do?
jnthn That looks like a startup-time crash... :-/
moritz_ any stray .pir files lying around? 21:07
lue: it crashes
cosimo masak: ok
lue *supposed* to do :)
jnthn moritz_: Yes, that's a good guess.
cosimo lue: like this LWP::Simple, search.cpan.org/~gaas/libwww-perl-5.../Simple.pm 21:08
lue thank you
cosimo moritz_: what should I look for?
PerlJam rakudo: say "12345".fmt{'%x'} 21:09
p6eval rakudo 73e8d4: OUTPUT«1␤»
PerlJam That is an interesting twist of things
fmt is superfluous too 21:10
say "2345".{2}
rakudo: say "2345".{2}
sorear pokes jnthn
p6eval rakudo 73e8d4: OUTPUT«4␤»
moritz_ cosimo: .pir files in ~/.perl6/lib/ . and $RAKUDO_DIR
jnthn sorear: ouch! :P
21:11 _buno_ joined
sorear jnthn: I can't do anything with the blizkost build system until I find out if s/:=/=/ makes it work 21:11
And more importantly, if you're about to patch anything
jnthn sorear: It doesn't. :-(
sorear How does it then fail? 21:12
jnthn makefile(21) : fatal error U1000: syntax error : ')' missing in macro invocation
I'm not sure how to fix that one.
cosimo moritz_: tried deleting all *.pir files around, but I get the same error. thanks anyway.
moritz_ :( 21:13
masak snarkyboojum: ping 21:16
pugssvn r30473 | colomon++ | [t/spec] Add named argument $base tests to exp.
colomon 31663 passing tests now, 32000 is starting to look within reach.... ;) 21:17
lisppaste3 cosimo pasted "A simpler test with a class" at paste.lisp.org/display/98290
masak colomon: wow! when will it end?
sorear jnthn: try changing the $(shell syntax to backquotes
colomon masak: Jan 17th, 2043 21:18
cosimo moritz_: looks like a simpler test fails too, or maybe it's just my ignorance of perl6
jnthn sorear: That gets us further. 21:19
gist.github.com/377954
masak colomon: that's both informative and a bit scary, thanks. 21:20
dalek kudo: aa51358 | (Solomon Foster)++ | src/core/Co (2 files):
Add $base to exp proto, and make a version of Complex.exp which takes the $base argument.
moritz_ cosimo: did you 'make install' rakudo?
cosimo moritz_: no, i didn't 21:21
moritz_ cosimo: you must, otherwise rakudo won't work from outside the build dir
sorear jnthn: uck
no backquotes in nmake, eh 21:22
I thought we were already using them!
jnthn :/
colomon masak: no problem.
sorear :/ 21:23
colomon masak: just don't tell lue. ;)
21:23 gurjeet joined
cosimo moritz_: that's it. you definitely have a crystal ball :) 21:23
sorear the way forward from here is to have Configure.pl write the correct stuff into the Makefiles itself.
sorear gets on this
cosimo moritz_: the simpler example works now. LWP::Simple does not, as masak pointed out already. thanks guys 21:25
lue I've changed the date it's finished. It's not 2043 anymore :)
masak even the future doesn't hold still... 21:26
dalek kudo: 55a62ae | moritz++ | src/core/Grammar.pm:
fix Grammar.parsefail, patch by takadonet++
takadonet thanks moritz_
lue I made it earlier, more like a few weeks from now.
21:27 daemon left
masak lue: I think your tempral-scope is smudgy. that's Rakudo Star you're seeing. 21:28
jnthn moritz_: parse*fail*? :-)
oh, I thought it was a typo for .parsefile :-) 21:29
sorear jnthn: Who do I need to bug about adding Blizkost dalek announces to #perl6? :) 21:31
colomon lue: I was reporting the date the last spectest change will be made to the Perl 6 test suite. 21:32
lue Bah! The TARDIS is still reparing itself, I'm bound to make some mistakes :)
On the + side, it's got a colorful 60's type look now :)
jnthn sorear: Maybe Infinoid 21:35
lue colomon: I know, I just couldn't see well. :) 21:36
21:36 gurjeet left
jnthn afk for a bit 21:38
takadonet anyone run into the issue where inside a method of a Role, Perl cannot find builtin sub like say,pop,push etc... ? 21:43
PerlJam takadonet: got some code that illustrates it? 21:45
lisppaste3 takadonet annotated #98283 "Role fail..." at paste.lisp.org/display/98283#1 21:46
21:47 jaldhar joined
masak takadonet: that sounds familiar. hold on, I'll check around RT. 21:47
PerlJam aye, it's already in RT
takadonet masak: thanks
PerlJam 74078
masak PerlJam++ 21:48
21:48 jaldhar left, jaldhar joined
takadonet hmmm 21:49
nuts
21:49 _buno_ left 21:50 iblechbot left
masak does this sound familiar? "We're not interested in childish popularity contests, we're interested in [being awesome]. And we are succeeding." 21:54
it's from this post: jeffreystedfast.blogspot.com/2009/0...ights.html
seems other language communities are also dealing with FUD :) 21:55
21:55 rv2733 joined
lue FUD? 21:58
masak en.wikipedia.org/wiki/Fear,_uncerta..._and_doubt 21:59
a common acronymic term for negative spin against something.
cognominal your name is FUD. :) 22:00
frettled FUD, as pioneered by Microsoft ;)
22:01 am0c joined
cognominal nope .it predate MS. IBM used it as well against its competitors. 22:02
lue go to <a href="www.microsoft.com">hell!</a>
:)
masak rakudo: class A { multi method foo($a) { "general" }; multi submethod foo(Str $a) { "specific" } }; class B is A {}; say .new.foo("OH HAI") for A, B 22:03
p6eval rakudo 55a62a: OUTPUT«specific␤specific␤»
masak should be "specific\ngeneral\n".
masak submits rakudobug
(since submethods don't inherit) 22:04
22:04 bbkr joined
masak rakudo: class A { submethod foo { say "OH HAI" } }; class B is A {}; B.new.foo 22:06
frettled cognominal: What? But Microsoft says in their marketing material that they invented FUD!
p6eval rakudo 55a62a: OUTPUT«Method 'foo' not found for invocant of class 'B'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
masak works for only methods but not for multi submethods.
masak heads to bed 22:09
'night, #perl6
frettled sleep tight
colomon 'night
22:09 masak left
lichtkind good night 22:10
lue good night 22:12
22:12 TSa left 22:14 Chillance joined
jnthn Mixing a method and submethod of the same shortname is...odd. 22:17
PerlJam I thought so at first too, but I think it should be fine. 22:18
jnthn It probably makes for a rather tricky fix. 22:21
lue afk
22:25 M_o_C joined 22:32 jonrafkind joined
sorear jnthn: Can you test the latest patch? 22:33
jnthn pullin 22:35
\o/ 22:36
sorear++
Builds.
nmake install also works
On test failure. 22:37
nt/callsv.t ................ Dubious, test returned 5 (wstat 1280, 0x500)
All 1 subtests passed
*one
sorear I'm not suprised
that just means it crashed during global destruction
jnthn OK. 22:38
sorear which it does >50% of the time on linux
jnthn Consistently crashed in 5 runs on Windows.
But anways, yes, tricky issue.
sorear I've got an idea for a refactor that will make it a bit more robust 22:39
but it's not going to be completely solid until the GC overhaul #parrot promises
since, among other things, there's no guarantee dynpmcs will have their destroy VTABLEs called before the library is unloaded 22:40
jnthn Ah, Ok.
sorear rakudo works around this by skipping global destruction and calling _exit directly
jnthn Ouch!
I hadn't realized that. :-)
jnthn starts the lexical class yak shaving 22:41
sorear lexical classes sound 100% awesome, what's so yakky about them,
jnthn Hopefully relatively little; I suspect parts of what we already have are too namespace-centric. 22:42
So it's not quite as straightforward as one might hope. 22:43
rakudo: my class Foo { method bar() { say 42 } }
p6eval rakudo 55a62a: OUTPUT«Can't handle scope declarator my on packages yet␤current instr.: 'perl6;Perl6;Compiler;Package;finish' pc 27406 (src/gen/parameter_pm.pir:613)␤»
sorear unrelatedly, do we have a set minimum Perl? 22:44
the Parrot Configure.pl requires 5.8.0
jnthn omfg, my patch worked first time.
> { my class Foo { method bar() { say 42 } }; Foo.new.bar }; Foo.new.bar; 22:45
42
Could not find sub &Foo
bbkr rakudo: say (1e2/7).WHAT; #this should be Rat?
p6eval rakudo 55a62a: OUTPUT«Num()␤»
sorear rakudo: say 1e2.WHAT
p6eval rakudo 55a62a: OUTPUT«Num()␤»
sorear rakudo: say 7.WHAT
p6eval rakudo 55a62a: OUTPUT«Int()␤»
sorear rakudo: say 100.WHAT 22:46
p6eval rakudo 55a62a: OUTPUT«Int()␤»
sorear rakudo: say 100 === 1e2
jnthn iirc, only Int / Int will give you a Rat
p6eval rakudo 55a62a: OUTPUT«0␤»
jnthn (or Int / Rat and so on)
sorear rakudo: say 100 === 100
p6eval rakudo 55a62a: OUTPUT«1␤»
bbkr ok, thanks jnthn for clarification 22:47
sorear my personal choice for Perl absolute minimum is 5.6.0 (lexically-scoped file handles, weak references, and modern threads) 22:48
jnthn sorear: Depends on context. What context are you asking for?
Blizkost?
sorear jnthn: aye
Parrot's current Configure.pl sets a minimum of 5.8.0
jnthn Well, if you need 5.8.0 to get a Parrot, that implies at least 5.8.0. 22:49
Does 5.8.0 give you headaches to support over, say, 5.10.0?
22:49 mantovani joined
bbkr however it's sometimes not exactly clear if we have Num or Int, so behavior like (if $x.Int == $x) then create Rat anyway would be more DWIM 22:49
jnthn bbkr: In this case, I think the rule is "if you write an exponent you always get Num". 22:50
sorear jnthn: Not particularly
jnthn sorear: Then I don't really see a reason not to go 5.8.0 for Blizkost too.
sorear what I'd like to do is get Blizkost to fully support the standard alternate perl protocols
jnthn @standard alternate perl protocols@? 22:51
gah, wrong keyboard map
sorear so I can go ~/perls/5.8.0/bin/perl Configure.pl; make; make test
jnthn s/@/"/ :-)
Ah, I see
So you can test easily against multiple Perls?
sorear Configure extracts all the needed information from the running Perl and doesn't depend on $PATH/perl 22:52
yes
jnthn Sounds cool.
sorear that last patch was a big step in that direction - we now get cflags and ldflags for the configure perl
I haven't tested it though and there are probably lots of bugs 22:53
22:57 madalu left
sorear attempts to install Perl 5.8.0 23:00
it's pretty awesome that Perl 5 has unified their 28 years of development into a single git repo 23:01
23:01 wormphlegm left
sorear git checkout perl-5.8.0; git clean -dfx; sh Configure -des -Duseithreads -Duseshrplib -Dprefix=/opt/perl-5.8.0; make; make test; sudo make install 23:02
bbkr rakudo: my $x = Inf; say ($x.Int / 1).WHAT; # this one looks bad, I have Int/Int but rakudo fails with some weird message 23:04
p6eval rakudo 55a62a: OUTPUT«No applicable candidates found to dispatch to for 'infix:<div>'. Available candidates are:␤:(Int $a, Int $b)␤␤current instr.: 'perl6;Rat;new' pc 461240 (src/gen/core.pir:0)␤»
jnthn rakudo: my $x = Inf; say $x.WHAT 23:05
p6eval rakudo 55a62a: OUTPUT«Num()␤»
bbkr I know that Inf is kinda bugged now (Inf.Int is the max int on machine), but I have Int/Int anyway so it should give Rat? 23:06
jnthn I expected so.
rakudo: my $x = Inf; say $x.Int 23:07
p6eval rakudo 55a62a: OUTPUT«-9223372036854775808␤»
jnthn rakudo: my $x = Inf; say $x.Int.WHAT
p6eval rakudo 55a62a: OUTPUT«Int()␤»
bbkr see :)
jnthn Yeah, that one looks like a bug.
bbkr please submit, i don't have submit rights yet
jnthn Submit = email
Just email to [email@hidden.address] 23:08
23:09 orafu left, orafu joined
bbkr bug report sent 23:13
23:15 M_o_C left
pugssvn r30474 | jnthn++ | [t/spec] A bunch more tests for lexical classes. 23:21
jnthn reads p6l and chuckles at, "your bikeshed has become too small to contain a bike" 23:25
dalek kudo: 4a1312a | jonathan++ | src/Perl6/Compiler/Package.pm:
First cut implementation of lexical classes; hard to know just how well it works yet for lack of tests.
23:26
kudo: e393c7e | jonathan++ | t/spectest.data:
Turn on S12-class/lexical.t.
frettled :) 23:29
23:31 ruoso left
bbkr rakudo: my class X {has X $.x}; say X.new(x => X.new).x.WHAT; # just checking :) 23:33
p6eval rakudo 55a62a: OUTPUT«Can't handle scope declarator my on packages yet␤current instr.: 'perl6;Perl6;Compiler;Package;finish' pc 27406 (src/gen/parameter_pm.pir:613)␤» 23:34
jnthn Too soon. :-)
frettled Miracles take slightly more time? :D
jnthn no, p6eval takes time to update. :-) 23:35
bbkr: Locally:
> my class X {has X $.x}; say X.new(x => X.new).x.WHAT;
X()
frettled Yeah, there's a cronjob doing periodical updates, isn't that so?
jnthn Ae.
*Aye
bbkr nice :D
jnthn Aww. My patch to do lexical roles didn't work first time though. 23:40
Clearly I hit and passed the Ballmer Peak.
23:49 ruoso joined 23:50 bbkr left 23:56 lichtkind left