»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: , or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by diakopter on 25 January 2010.
colomon needs to learn more about roles, fast. 00:02
jnthn wknight8111: Does Parrot currently have a call frame generator or does NCI only work for now with compiled in thunks? I get some message about needing to define BUILD_CALL_FRAMES or some such.
But that may date back years.
00:03 nihiliad joined 00:05 am0c joined 00:06 athenot joined 00:12 b_jonas left
wknight8111 jnthn: only has built-in thunks still 00:13
plobsing is working very hard to fix that, however
00:14 zemlyanin joined, yinyin joined
zemlyanin How would I go about capturing a certain string but only if it does not end with a period? [^\.] doesn't seem to do what I thought 00:15
TimToady that would be written <-[.]> in Perl 6 00:16
we stole bare brackets for normal grouping 00:18
so they only mean character classes inside of <> now
we also took the ^ outside and made it a - 00:19
so you can do "math" with sets of characters
00:19 athenot left
TimToady otoh, if you're asking about Perl 5, this isn't a Perl 5 channel... :) 00:20
but in Perl 5 I'd just use [^.] 00:21
jnthn wknight8111: Ah, OK...do you know what the Current Plan Of Attack is?
(e.g. use something existing like libffi or libjit, or build a custom thingy)? 00:23
00:23 Chillance left 00:27 athenot joined 00:30 lue joined
lue Oi! 00:31
colomon o/ 00:33
lue o/ (I want japanese characters in my nick. stupid freenode servers :( ) 00:34
colomon Does Unicode do Elvish? 00:35
00:35 xabbu42 left
lue I don't know. (there's probably enough free unicode blocks for it though) 00:35
it seems to be an alphanumeric system :( 00:36
wknight8111 jnthn: we've definitely been looking at libffi as one option. I think the plan is to have a pluggable loader, so we can have libraries of precompiled thunks OR a dynamic frame builder based on libffi or a JIT solution
pugssvn r29920 | colomon++ | [t/spec] Some interesting arity-0 tests for limit conditions. 00:37
00:37 cotto_w0rk joined
jnthn wknight8111: I'd take one thing that worked over epic abstraction, tbh. 00:39
wknight8111 jnthn: of course, you asked what the plan was 00:40
jnthn :-)
wknight8111 short-term plan is far less grandios
00:40 cotto_work left
jnthn OK, I'll keep an eye out and see what lands. 00:40
lue .u 楽土 00:41
phenny U+697D CJK UNIFIED IDEOGRAPH-697D (楽)
U+571F CJK UNIFIED IDEOGRAPH-571F (土)
00:43 rv2733 left 00:45 zemlyanin left
lue I'm assuming that file test "project" hasn't been solved? 00:48
TimToady rakudo: say '/etc/passwd' ~~ :f
p6eval rakudo 32a946: OUTPUT«Method 'f' not found for invocant of class 'Perl6Str'␤current instr.: 'perl6;Enum;ACCEPTS' pc 352962 (src/gen/core.pir:50094)␤»
TimToady doesn't look like it
00:49 am0c left
lue aw man, I was hoping to work on it! (tsk tsk. Watch you're phrasing of answers :D ) 00:49
arlinius waiting until it's already done to work on it? 00:50
TimToady rakudo: my @a = 1,2,3,4; @a[1,2] := @a[2,1]; say @a; 00:51
p6eval rakudo 32a946: OUTPUT«:= binding of variables not yet implemented␤current instr.: '&die' pc 16726 (src/builtins/Junction.pir:347)␤»
colomon He might mean the issue where it's a Perl6Str instead of a Str, which makes it hard to work on.
lue I stated that it seems like the error hasn't been solved, TimToady said doesn't look like it. See the pickyness of me? :)
arlinius oh, that's the reason the alpha file test ops are not acceptable?
00:52 cotto_w0rk left
pugssvn r29921 | colomon++ | [t/spec] Fix the arity-0 non-equal limit test to look for the correct results, and tweak the equal limit case at the same time. 00:52
colomon arlinius: it seems to be a major complication, anyway. 00:53
I admit I haven't looked at it closely.
arlinius colomon: sorry about forgetting to count, by the way. and thanks for catching that
lue rakudo: say 'etc/passwd'.WHAT
p6eval rakudo 32a946: OUTPUT«Str()␤»
colomon arlinius: no worries. :)
lue is considering the placement of file tests in the 楽土 pile of code 00:54
00:57 lestrrat is now known as lest_away
lue rakudo: Q:PIR { $I0 = stat '/etc/passwd',10␤say $I0} 00:58
p6eval rakudo 32a946: OUTPUT«0␤»
lue rakudo: Q:PIR { $I0 = stat '/etc/passwd',9␤say $I0}
p6eval rakudo 32a946: OUTPUT«-1␤»
arlinius it's not easy to get a Str from a Perl6Str?
lue is root's UID -1 ? 00:59
rakudo: Q:PIR { $I0 = stat '/usr/local/bin',9␤say $I0}
p6eval rakudo 32a946: OUTPUT«-1␤»
colomon arlinius: I believe the problem is more that they are the same, except for when they're not. 01:00
at least, that was the problem I had with Num and float.
lue I have a problem with the fact the night and day are the same, except for when they're not :D
rakudo: Q:PIR { $I0 = stat '/usr/local/bin',4␤say $I0}
p6eval rakudo 32a946: OUTPUT«0␤»
lue rakudo: Q:PIR { $I0 = stat '/etc/passwd',4␤say $I0} 01:01
p6eval rakudo 32a946: OUTPUT«0␤»
pugssvn r29922 | colomon++ | [t/spec] Comments explaining what the previous tests were and a new test, with a limit that will never be triggered.
lue colomon: what if it *is* triggered?
colomon lue: then that's a failing test.
a test failure, I mean. 01:02
pugssvn r29923 | lwall++ | [S03] some clarifications of how a series deals with types (or doesn't) for colomon++ 01:03
lue darn. I was hoping for something like "...and the entire space-time continumn will meld and flying..." :) 01:04
colomon given the number of bugs I've inflicted on Rakudo, I'd hate for a one of my test failures to affect the entire space-time continuum. 01:05
lue it already has, based on your testimony. 01:06
Several times. :)
arlinius he's got a point there 01:07
lue That explains [*] die(Rakudo)'s detectors going off. Let me contact them...
01:08 cotto_w0rk joined 01:10 lue is now known as RakudoDeathStar
colomon My Star Wars players disabled the Death Star (II) somewhat two sessions ago. 01:11
:) 01:12
arlinius somewhat? somehow that doesn't good enough :P
RakudoDeathStar This is the Rdie* my friend
I grammer love improper day \o/ 01:13
colomon well, it fired on the planet in question and didn't blow it up, which was good enough for their purposes.
RakudoDeathStar (my new nick'd be shorter, but stupid alphanumeric nicks...)
colomon and not having the Death Star destroyed of course makes for further plot developments. 01:14
arlinius i see 01:15
RakudoDeathStar We hath come to inform ye of ye sins to the Rdie* codebase, colomon. We hath spent several moons fixing the time-space continuum.
Don't Do It Again!
colomon I hope they were small, unimportant moons.
Like Endor.
01:15 RakudoDeathStar is now known as lue
colomon (errr... wait, is Endor the moon or the gas giant it orbits?) 01:15
lue way to take the days of yore speech and make it literal. colomon++ 01:16
TimToady
.oO(the Which of Endor)
lue Endor is the inhabitable moon orbiting around the inhospitable planet of no interest.
colomon It's a big galaxy, you can't measure time in "moons" as if there is only one of the things. :)
lue Well, Rdie* is powered by superheated pumice... 01:17
arlinius I think he means moons are the currency he spent to fix the problem
but still, it seems like some moons would be worth more than others
TimToady especially the full ones 01:18
colomon and the ones that are blissfully Ewok-free. 01:19
lue Just like the stuff on Earth not signed by Sarah Palin :P 01:20
01:21 parthm joined 01:23 daemon left, daemon joined
parthm hello, i am trying to learn perl6 (using rakudo). i tried running the example ( pastebin.com/XqaAK52v ) from the perl6 book on github bit it fails ( pastebin.com/Ns7RXgY6 ). what I am doing wrong? 01:24
01:24 am0c joined
TimToady parthm: you probably want to use the January release for that, not the current bleeding edge 01:24
parthm thanks TimToday. will do that. 01:25
lue yeah, the bleeding edge (to use metaphor) is too busy bleeding to cut it :)
colomon actually, it isn't immediately obvious to me why that would fail on Rakudo master. Probably a nightmare on the Feb release, however.... 01:26
01:28 ihrd joined
TimToady does current master support 1-ary sort? 01:28
colomon I believe so.
TimToady rakudo: say sort +*, 3,4,2,-3
01:28 ihrd left
p6eval rakudo 32a946: OUTPUT«Method 'Num' not found for invocant of class 'Block'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤» 01:28
colomon It doesn't support Whatever closures, though.
TimToady rakudo: say sort { $^a + 0 }, 3,4,2,-3 01:29
p6eval rakudo 32a946: OUTPUT«Could not find non-existent sub &sort␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
colomon rakudo: (3,4,2,-3).sort(&abs)
p6eval rakudo 32a946: ( no output )
colomon rakudo: (3,4,2,-3).sort(&abs).say
p6eval rakudo 32a946: ( no output )
colomon hmmm.
TimToady rakudo: say sort { $^a <=> $^b }, 3,4,2,-3
colomon (3,4,2,-3).sort({.abs}).perl.say
p6eval rakudo 32a946: OUTPUT«Could not find non-existent sub &sort␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
colomon rakudo: (3,4,2,-3).sort({.abs}).perl.say 01:30
p6eval rakudo 32a946: OUTPUT«Too many positional parameters passed; got 2 but expected between 0 and 1␤current instr.: '_block49' pc -1 ((unknown file):-1)␤»
TimToady more sortdid than sorted...
*sordid
01:30 athenot left
colomon hmmm, guess it doesn't work yet after all. 01:30
rakudo: (3,4,2,-3).sort.perl.say
p6eval rakudo 32a946: OUTPUT«(-3, 2, 3, 4)␤» 01:31
colomon rakudo: (3,4,2,-3).sort({$^a.abs <=> $^b.abs}).perl.say
p6eval rakudo 32a946: OUTPUT«(2, -3, 3, 4)␤»
colomon rakudo: (3,4,2,-3).sort({$^a.abs}).perl.say
p6eval rakudo 32a946: OUTPUT«Too many positional parameters passed; got 2 but expected 1␤current instr.: '_block49' pc -1 ((unknown file):-1)␤»
colomon yup, just doesn't do 1-arity yet. 01:32
01:32 [particle] joined
parthm does the error message ( pastebin.com/Ns7RXgY6 ) contain a line number (or some other info) that would have helped a newbie like me to narrow down the location of the error? 01:32
01:32 [particle]1 left, athenot joined
TimToady unfortunately, doesn't look like it. it's coming from deep within the bowels of parrot 01:32
01:32 xomas left
colomon but it is the problem we're looking at here, I guess. 01:32
01:33 athenot left
lue I personally hate when 'HLLCompiler' comes up in an error :/ 01:33
01:34 xomas joined, xomas left, xomas joined 01:35 lest_away is now known as lestrrat
arlinius it expected between 0 and 1 parameters 01:36
you should have passed it 0.5 parameters
or 0.8235
TimToady the only thing between 0 and 1 is ' and '. 01:37
colomon TimToady: does "before" chain?
TimToady sure
colomon danke. (Trying to sort out a weird bug in series...) 01:38
TimToady rakudo: say 1 before 2 before 3
p6eval rakudo 32a946: OUTPUT«1␤»
TimToady rakudo: say 1 before 2 before 2 01:39
p6eval rakudo 32a946: OUTPUT«0␤»
lue rakudo: say 2 before 1
p6eval rakudo 32a946: OUTPUT«0␤»
lue rakudo: say Inf before NaN
p6eval rakudo 32a946: OUTPUT«0␤»
lue rakudo: say Inf after NaN
p6eval rakudo 32a946: OUTPUT«1␤»
TimToady hmmmm
01:39 cotto_working joined
lue seems Inf is more of a not number than NaN :) 01:39
TimToady that should probably say "Mu" or some such :) 01:40
lue TimToady: why is the use of undef frowned upon in P6? 01:41
TimToady maybe we need an Order::Incomparable
what does it mean?
lue rakudo: NaN ~~ undef
p6eval rakudo 32a946: OUTPUT«Unsupported use of undef as a value; in Perl 6 please use something more specific:␤ Mu (the "most undefined" type object),␤ an undefined type object such as Int,␤ Nil as an empty list,␤ *.notdef as a matcher or method,␤ Any:U as a type constraint␤ or
..fail() as a failure return␤ …
TimToady well, that's a matcher, so you mean *.notdef
lue rakudo: NaN ~~ *.notdef 01:42
p6eval rakudo 32a946: OUTPUT«invoke() not implemented in class 'String'␤current instr.: 'perl6;Code;signature' pc 12815 (src/builtins/Str.pir:58)␤»
TimToady don't ask me how strings got involved here...
lue TimToady: how did strings get involved here? [ :) ] 01:43
TimToady rakudo: say NaN ~~ :defined
p6eval rakudo 32a946: OUTPUT«1␤»
01:43 cotto_w0rk left
TimToady rakudo: say NaN ~~ :!defined 01:43
p6eval rakudo 32a946: OUTPUT«0␤»
TimToady there's another WTDI 01:44
lue rakudo: say NaN ~~ (True and !True)
p6eval rakudo 32a946: OUTPUT«0␤»
lue what is WTDI?
TimToady TMTOWTDI
lue ah, should've caught that :)
01:45 meppl left
lue rakudo: say 1 ~~ (True and !True) 01:46
p6eval rakudo 32a946: OUTPUT«0␤»
lue rakudo: say 0 ~~ (True and !True)
p6eval rakudo 32a946: OUTPUT«0␤»
lue rakudo: say (0 ~~ (True and !True))
p6eval rakudo 32a946: OUTPUT«0␤»
lue rakudo: say (True ~~ (True and !True))
p6eval rakudo 32a946: OUTPUT«0␤»
lue for file test Str _methods_ is it C<'string'.f> or C<'string'.:f> ? 01:50
TimToady it's .f these days
we took away the :
lue alright.
TimToady which is how :defined worked
lue rakudo: say 'h'.succ 01:51
p6eval rakudo 32a946: OUTPUT«i␤»
lue rakudo: say '␤'.succ
p6eval rakudo 32a946: OUTPUT«␤␤»
01:51 alester left 01:52 kcwu joined
colomon is really hoping Rakudo doesn't thing 81 comes between 3 and 9. 01:52
lue A lot of the file tests I'm not sure on how to program yet (if it's a symbolic link, for example) :/ 01:53
01:53 lichtkind left
TimToady rakudo: say 3 before 81 before 9 01:54
p6eval rakudo 32a946: OUTPUT«0␤»
lue rakudo: say 3 < 81 < 9
p6eval rakudo 32a946: OUTPUT«0␤»
colomon rakudo: say 9 before 81 before 3
p6eval rakudo 32a946: OUTPUT«0␤»
01:54 athenot joined 01:56 k23z__ joined
k23z__ hi 01:56
I can to invite people here interested in Perl5 to #perl-outside
arlinius rakudo: say k23z__.can('to-invite')
p6eval rakudo 32a946: OUTPUT«Could not find non-existent sub &k23z__␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
01:59 athenot left
lue k23z__ --promote --target="#perl-outside" :) 01:59
colomon rakudo: my $limit = 81; my $last = 3; my $j = 9; say $last before $limit before $j 02:00
p6eval rakudo 32a946: OUTPUT«0␤»
k23z__ :)
colomon rakudo: my $limit = 81; my $last = 3; my $j = 9; say '$last before $limit before $j ' ~ $last before $limit before $j 02:01
p6eval rakudo 32a946: OUTPUT«0␤»
lue do you wish to try " ?
colomon rakudo: my $limit = 81; my $last = 3; my $j = 9; say '$last before $limit before $j ' ~ ($last before $limit before $j) 02:02
p6eval rakudo 32a946: OUTPUT«$last before $limit before $j 0␤»
TimToady there oughta be a way to quine that... 02:03
colomon TimToady: any notion why my first version there didn't work?
02:03 kcwu left, rgrau left
colomon oh, is ~ higher precedence than before? 02:04
TimToady concat has always been tighter than comparisons
colomon gotcha.
TimToady though ~ is detangled from + these days
colomon and I think I might know what my problem is, because your cmp comment on my blog doesn't match actual behavior.
TimToady I'd also second lue's recommendation of double quotes :) 02:05
colomon rakudo: my $limit = 81; my $last = 3; my $j = 9.Rat; say '$last before $limit before $j ' ~ ($last before $limit before $j)
p6eval rakudo 32a946: OUTPUT«$last before $limit before $j 1␤»
colomon rakudo: say 81 before 9.Rat
p6eval rakudo 32a946: OUTPUT«1␤»
colomon rakudo: say 81.Rat before 9.Rat
p6eval rakudo 32a946: OUTPUT«1␤»
colomon yeah, got to get Real up and running soon. 02:06
lue wait. You mean to tell Rdie* it's been running on IMAGINARY this entire time? Oi... 02:07
TimToady ($a cmp $b) == ($b cmp $c) is not direction sensitive
colomon TimToady: ooooo. 02:08
And we know it won't fire off the eqv test, because that would mean the last element was also eqv to the limit.
TimToady++ 02:09
TimToady that was the intent of the spec verbiage :)
lue Most of the file test operators can't be implemented with PIR's stat opcode.
colomon TimToady: :) 02:10
TimToady for comparsions on non-matching types, I think we really must force all numerics to sort in a consistent order. 02:12
colomon TimToady: my working theory has been that Real, Real comparisons are translated to Num internally. 02:13
(or rather, translated to some consistent type, of which Num is the most likely currently, IMO)
I've been meaning to do a big writeup on this for a couple of weeks now, actually. :) 02:14
TimToady I think we can force Complex to be orderable even though it's not officially
just sort first on real, then on imaginary
like any other two-part record
colomon interesting notion....
TimToady so everything Numeric sorts
and probably, outside of that, sort by type 02:15
unless there's some similar way to unificate strings
colomon my working theory (which wasn't factoring in Complex, I'll have to ponder that) 02:16
is that Real needs to have require a .Num, which will be used for this sort of thing.
I would think that Stringy (is that the right term) could sort on .Str, maybe? 02:17
lue rakudo: Q:PIR{$I0 = stat '/etc/passwd',0␤say $I0} 02:20
p6eval rakudo 32a946: OUTPUT«1␤»
colomon TimToady: I think having a lingua franca for Real is really important; otherwise it will be very hard for two independently developed Real types to work together smoothly. And while I can see an argument for FatRat when we have it, it seems like Num is the best choice for now. 02:22
Having it will allow a lot of smart default implementations, too.
colomon finds his code changes work better if he actually compiles them. 02:24
TimToady the problem with Stringy (if we assume it includes Buf) is that we might not have a valid .Str if we don't know the encoding 02:26
colomon Ah.
'Twas just a notion.
TimToady well, but we'd like to finesse it to do what people expect to the extent possible, as with Numeric 02:27
02:27 am0c left
TimToady we already go to some pains to define bufs that only contain 0..127 as "assumed ASCII" 02:27
lue what the heck is ISDEV all about? (something the PIR opcode stat gives you)
TimToady a unix concept 02:28
arlinius is it a device file?
TimToady a special file in /dev
arlinius lue keeps his in /usr/include
lue ah.
arlinus: hey! I resent that :)
(what did I put in dev, again?)
arlinius gotta keep /dev for your C headers, right? :) 02:29
TimToady because developers use 'em
arlinius exactly
lue rakudo: Q:PIR{$I0=stat '/dev/null', 3␤say $I0}
p6eval rakudo 32a946: OUTPUT«0␤»
colomon TimToady: can I use cmp instead of eqv for the final limit test?
TimToady I though include was only input devices, and output devices go in exclude...
parthm so i tried running the example ( pastebin.com/XqaAK52v ) in jan rakudo and it fails with the error pastebin.com/UjpgheUH . trying feb rakudo now. 02:30
arlinius ah, that's right...
symlink /dev/null from one to the other
TimToady colomon: sure, I'd just do both cmps and then look at the numbers
parthm hmm. ok ... looks like there is another parrot in the path that its picking up. sorry about that. will try to change that. 02:31
lue I wonder if there's a big process to getting a new folder accepted in / 02:32
TimToady arlinius: I thought that was what /dev/random was for?
lue if not, there should be
arlinius oh, i meant /usr/include/null and /usr/exclude/null
TimToady lue: it's called 'su'
arlinius /dev/random stays in dev since it's a tool developers use to write code 02:33
TimToady nodnod
lue There should be some sort of commitee. You set up gov't grants to see who develops the best new folder for the root dir
colomon TimToady++: oooo, that was a great thought!
lue SAND (Sodality for the Addition of a New Directory) 02:34
TimToady colomon: in fact, you could add 1 to both of them, turn them into base 3 digits, and the switch on the resulting 0..5 02:35
not sure that'd save any CPU time really though...
colomon given is actually kind of relatively slow, I think. 02:36
but it's a lovely algorithm thought, at any rate. :)
TimToady it's supposed to be optimizable when all the targets are numeric
lue rakudo: Q:PIR{$I0='/etc/passwd',1␤say $I0}
p6eval rakudo 32a946: OUTPUT«error:imcc:syntax error, unexpected COMMA, expecting '\n' (',')␤ in file 'EVAL_1' line 64␤0␤»
02:37 athenot joined
lue rakudo: Q:PIR{$I0=stat '/etc/passwd',1␤say $I0} 02:37
p6eval rakudo 32a946: OUTPUT«813␤»
parthm ok. the example worked now :-)
TimToady that's why the comparison is entirely driven by the type of the 'when', not the type of the given
(unless the .ACCEPTS of the when chooses to look at the type of the left side)
colomon \o/ 02:38
TimToady parthm: yay!
colomon your save the result suggestion made the algorithm cleaner, and faster, and it finally works, too. :)
TimToady you are persistent enough to be a developer around here :)
colomon: something to be said for working 02:39
colomon Let me tell you, I was really worried when 1, 3, 9 ... 81 resulted in 1, 3. :)
but now: 02:40
pugssvn r29924 | colomon++ | [t/spec] arity-1 tests with a limit.
colomon > (1, 3, 9 ... 81).batch(10).join(', ').say
1, 3, 9, 27, 81
lue rakudo: Q:PIR{$I0=0␤if $I0==0 goto hi␤say 'aw'␤hi:␤say 'ya'} 02:42
p6eval rakudo 32a946: OUTPUT«ya␤»
02:42 parthm left
TimToady .= dinner; 02:43
lue good nomming TimToady! o/
02:44 kcwu joined
lue rakudo: say False 02:45
p6eval rakudo 32a946: OUTPUT«0␤»
colomon rakudo: say False.perl 02:46
p6eval rakudo 32a946: OUTPUT«Bool::False␤»
colomon rakudo: say ((1/5 + 1/6) / 2).perl 02:48
p6eval rakudo 32a946: OUTPUT«11/60␤»
02:49 quietfanatic left
pugssvn r29925 | colomon++ | [t/spec] Add arity-1tests which have a not-exactly-hit limit. 02:50
02:51 jaldhar joined
lue has added in a couple of file test methods for Str, compiling now... 02:53
diakopter feels alone in getting "Which of Endor" 02:54
TimToady: .= dinner; # gives new meaning to "you are what you eat" 02:55
colomon diakopter: well said. :)
k23z__ eh nice :)
Perl6 is nice
I saw you guys were planning to make bindings for OpenGL ? 02:56
is that correct ?
or with SDL ?
lue SDL I was discussing the other day (OpenGL would only be the logical next step :) )
Parrot supports SDL, therefore R* should support it (if only thru a library) 02:57
k23z__ R* = ? 02:59
what does the VM have to do with a Graphics library ?
lue R* = Rakudo Star (commonly abbr. Rakudo *), the so called "first official release" or Perl6 03:00
R* is my personal abbreviation :)
colomon if the VM (Parrot) supports it, it should be very easy to build a Rakudo library for it.
lue ...when libraries are implemented :D 03:01
pugssvn r29926 | colomon++ | [t/spec] A few decreasing arithmetic tests added.
03:01 stephenlb left
lue We should subconsiously plant ideas in the heads of the devs at #parrot, so that we can avoid any real programming :) 03:03
lue D'Arvit! This channel is logged. My plan is foiled :( 03:04
I has .e .z and .s file tests ready to upload. How should I upload these changes? 03:05
colomon probably e-mail the patch to the rakudobugs e-mail, labeled [PATCH]. 03:06
give me a moment to finish what I was doing...
lue but, but... that won't give me the same feeling of satisfaction as uploading it myself :) 03:07
colomon commit your changes to your local version of git.
lue (besides, last time I tried emailing rakudobug, it wouldn't go through)
03:07 wknight8111 left
lue colomon: I'm going to assume what that means on this IRC while looking it up on teh google. 03:08
colomon lue: You need to have a rakudo commit bit for directly submitting it, which I believe requires filing a form with the Perl Foundation -- ie, it's abit of a pain.
git commit -a
arlinius a form? ick
colomon will commit all your changes in one patch.
lue well... I'd email rakudobug, but as I said, when I tried emailing a bug report, I never could mail it. :/ 03:09
lue form, or email that didn't work last time........ 03:10
colomon once you've got your patch committed on your local version, you can say
git format-patch -1
k23z__ I would like to make a suggestion
colomon to turn your last commit into a portable patch file you can e-mail to the bug tracker or pastebin here.
k23z__ if you guys make OpenGL bindings or SDL bindings there would be a herd of programmers running towards Perl6 to write code in it because they can see stuff moving around 03:11
lue so, what you just told me is the w/o commiting way :)
colomon lue: no, with git, pretty much every way is the committing way. 03:12
lue
.oO(<form> Q:What is your social security number? A:you want my SS#? uh...)
would I need to sign up a github to use what you told me? (let's try anywaaay...)
colomon lue: no.
(no sign up)
basically, you commit locally and then either push the commit directly to github (which you can't do yet) or make a patch and send it to someone who can commit directly to github. 03:13
it's the git way
lue so, for commit -a, just write a commit message on an uncommented line?
colomon yes
lue ...where did the patch go? 03:15
colomon should be a file 03:16
with a very long name.
lue nvm, looking at old ls command :)
I'll paste it, instead of mucking around with email 03:17
(heh, in Konqueror a patch shows up as a file with a bandaid on it :D ) 03:18
lisppaste3 lue pasted "filetests for src/builtins/Str.pir" at paste.lisp.org/display/95843 03:22
jnthn o/ 03:23
lue o/ jnthn
jnthn night folks :-)
colomon goodnight
03:24 JOHND joined, alester joined
pugssvn r29927 | colomon++ | [t/spec] Tests for series generated by { -$_ }. 03:25
lue and now, a turnabout to some spec tests for file tests :) 03:26
(methinks file tests should go in S32-io, as opposed to S16-io) 03:27
colomon lue: I'm switching back to the standard rakudo branch so I integrate your patch. be a few minutes here... 03:29
lue I'll implement more file tests as I am able to. What I uploaded is more of a proof-of-concept type thing 03:30
colomon sure. 03:31
I also suspect it could be rewritten using the pir:: interface to be a lot shorter.
but what you've got there looks like it gets something useful done right now, and that's a Good Thing.
03:32 JimmyZ_ joined, JimmyZ_ left
lue I would've written it in a pm file, but the only I knew was with PIR, so putting it in perl seemed redundant to me :) 03:32
er, unecessary 03:33
colomon let me see....
rakudo: say pir::stat__SII('/etc/passwd'); 03:34
p6eval rakudo 32a946: OUTPUT«The opcode 'stat_s_i' (stat<2>) was not found. Check the type and number of the arguments␤current instr.: 'perl6;PCT;HLLCompiler;evalpmc' pc 972 (compilers/pct/src/PCT/HLLCompiler.pir:538)␤»
colomon well, something like that.
rakudo: say pir::stat__SII('/etc/passwd', 1); 03:35
p6eval rakudo 32a946: OUTPUT«The opcode 'stat_s_i_i' (stat<3>) was not found. Check the type and number of the arguments␤current instr.: 'perl6;PCT;HLLCompiler;evalpmc' pc 972 (compilers/pct/src/PCT/HLLCompiler.pir:538)␤»
colomon rakudo: say pir::stat__ISI('/etc/passwd', 1);
p6eval rakudo 32a946: OUTPUT«813␤»
colomon rakudo: say pir::stat__ISI('/etc/passwd', 0);
p6eval rakudo 32a946: OUTPUT«1␤»
03:36 justatheory left
lue I'll go and write the spectests anyway :) (hows about S32-io/file-tests.t) 03:36
colomon Absolutely!
(I mean, writing the tests.)
I'm surprised there are some sort of tests for this already?
lue no, I was suggesting the name of a file :) 03:37
colomon did you look at S16-filehandles/filetest.t ?
but I'd certainly be okay with S32-io, too. 03:38
lue ...no :)
when I looked, S32 defined all the filetests in full detail
(relatively) full detail
colomon loves the power of ack in TextMate for searching the source. :)
alester You're using ack in project, right? 03:39
colomon alester: yes. 03:40
I love it, it blows TextMate's multi-file find away.
lue (working from remote server (ssh) is weird. I'd prefer to invoke X from it, if it did anything useful (I wouldn't know))
colomon okay, I've got a clean spectest before applying your patch 03:41
lue S16-filehandles/filetest.t looks very cryptic. I think that could've been coded better :) (remember TIMTOWTDI)
03:41 athenot left 03:42 athenot joined
colomon (glances at test file) yes, a simpler version which tests just what you just added is probably a pretty good idea. 03:42
(that's exactly what I'm doing with series.) 03:43
lue I think it was written in the pugs days (certainly feels like it)
colomon rakudo: say $*PROGRAM_NAME
p6eval rakudo 32a946: OUTPUT«/tmp/idVzMyj44f␤» 03:44
colomon interesting....
I've never seen skips called that way in a test file before.
lue: :e works for me. 03:47
lue the Str method 'string'.e ? 03:48
03:48 athenot left, airbase left
lue I didn't code the general :e command 03:48
colomon yes
and :z
:s doesn't seem to return the length? 03:49
lue size in bytes (it should)
03:49 athenot joined
colomon I'm just getting 1 03:50
lue lemme see...
colomon I don't understand why, the code looks sensible to me. 03:51
lue for /etc/passwd, i get 2211 (bytes). Try that.
03:51 airbase joined
colomon > say "/etc/passwd" ~~ :s 03:51
1
> say pir::stat__ISI('/etc/passwd', 1);
2888
it is a puzzlement.
lue try C<say "/etc/passwd".s> 03:52
colomon: you were comparing. 1 = True :)
colomon > say "/etc/passwd".s
2888
alpha: say "/etc/passwd" ~~ :S 03:53
p6eval alpha 30e0ed: OUTPUT«Method ':S' not found for invocant of class 'Str'␤in Main (file src/gen_setting.pm, line 324)␤»
colomon alpha: say "/etc/passwd" ~~ :s
p6eval alpha 30e0ed: OUTPUT«813␤»
lue
.oO(ack on this remote server is a KANJI CONVERTER)
colomon it works that way in alpha....
03:53 athenot left
colomon anyway, I'm going to spectest here. 03:53
alester lue: Yes, yes, you have to install ack-grep, it's tragic
betterthangrep.com
lue I can't though. Not my machine :/ 03:54
alester do you have a ~/bin directory?
lue ...no
alester you don't have a home directory?
lue
.oO(although I wouldn't find a KANJI CONVERTER useless)
I do, just not the bin folder :)
alester Right, but you can make your own ~/bin directory 03:55
and then put ack in it
and then set your PATH to include ~/bin
lue where would I get it though?
colomon CPAN
lue (looks like some graphical operations are needed... come Konqueror) :) 03:56
that would make making the smartlinks in spectesting a lot easier :) 03:58
03:58 quietfanatic joined
alester lue: Look at betterthangrep.com/ 03:58
03:58 xomas left
alester There's a link to the standalone version. Download it into ~/bin/ack 03:59
A single file. That's it.
lue comeon. This machine has not curl! 04:03
dalek kudo: f6092e9 | Lue++ | src/builtins/Str.pir:
added the .s .z and .e file test methods for Str
04:04
04:07 quietfanatic_ joined, quietfanatic left, quietfanatic_ is now known as quietfanatic
lue is really peeved at freenode's alphanumeric nicks thing. He can't even change his nick to lue++ for fun >:( 04:08
alester lue: Highlight the text at betterthangrep.com/ack-standalone. Paste it ignto your terminal as a file.
I have made it SO butt simple
lue I got it using wget
alester ok
lue but now I can't change $PATH :*( 04:09
colomon is going to bed...
lue gnight colomon 04:10
ACK DOESN'T WORK! YEEEEEEEARRRRRRRRRRGHHHHHHHHHH 04:12
lue please ignore the venting
YYYYYYYYYYYYYYYYEEEEEEEEEEEEEAAAAAAAAAAAAAARRRRRRRRRRRRRR
If only my computer weren't so slow, then I wouldn't even BE ssh'ing to another one!
alester "doesn't work"?
lue >:(
alester: it won't search 04:13
alester Need more detail than that
lue I type in, say, ~/bin/ack pattern (can't set $PATH), and then nothing happens. No errors, no results, nothing.
> ~/bin/ack pattern 04:14
[nothing]
alester ok, what do you expect it to do?
lue eh, search for something I know should come up (like the letter z)
alester in what file?
lue I'm searching through the files in the directory (never used ack, and help won't come up) 04:15
alester ~/bin/ack --help
arlinius maybe pattern didn't match? 04:16
lue --help gives me nothing
alester and what is a file in the directory that you expect to match?
ack only searches files it knows about.
that it knows the type of.
lue the .pod files of the Spec
alester ~/bin/ack -f 04:17
see what files it's searching
and yes, you CAN set PATH
lue and again, nothing (methinks it didn't install right)
alester PATH=$PATH:~/bin
lue by default, it loads the KANJI CONVERTER, so even setting PATH wouldn't help 04:18
s/wouldn't/won't/
alester Are you in the direoctory with the pod files?
lue yes
alester PATH=~/bin:$PATH
it will search in your ~/bin first 04:19
lue and now nothing, as if I didn't bother with path :(
(at this point, using grep would've been faster)
alester then do that 04:20
I'm doin' my damndedst you know
lue I know. I'm getting angry at everything EXCEPT you, alester :)
alester++ (thanks for helping) 04:21
alester perl ~/bin/ack -a -f
should list every file in your diretory tree
(almost)
lue I think something went wrong downloading ack. It just does nothing. :) 04:22
alester wc -l ack
lue wc -l ack returns does not exist (I really want to be able to do whatever I want to this remote computer right now.) 04:23
04:24 athenot joined
lue I'll deal with it tomorrow. Good night! 04:24
04:24 lue left 04:26 Sarten-X joined
arlinius alester: are you the maintainer of ack? 04:33
alester I am
author
arlinius the App::Ack CPAN module hangs indefinitely on tests for me 04:34
but then i canceled the tests and just copied the script to bin and it works fine
unless the tests are designed to scan every file on the hard drive and really legitimately take all day ...
alester Not sure what your problem is
04:35 athenot left
arlinius neither am i, and it's not a big issue for me, just thought i'd let you know 04:35
odd 04:38
just retried and it installed fine this time
arlinius shrugs 04:39
04:42 rv2733 joined 04:44 athenot joined 04:48 JOHND left
TimToady colomon: ~~ :s returning True is correct under the current semantics 05:01
pugssvn r29928 | lwall++ | [S03] clarify the way Pair.ACCEPTS uses "so" and "not" semantics 05:02
05:13 rv2733 left
quietfanatic Heh, having the 'so' keyword means you can say "$flag = so not True" for extra emphasis. 05:15
TimToady we could add indeed as well 05:21
diakopter verily 05:22
std: so and so - 9 05:24
p6eval std 29927: OUTPUT«Undeclared routine:␤ 'and' used at line 1␤ok 00:01 106m␤»
diakopter std: that is, like, so not True 05:25
p6eval std 29927: OUTPUT«Undeclared routines:␤ 'is' used at line 1␤ 'like' used at line 1␤ 'that' used at line 1␤ok 00:01 107m␤»
05:26 nihiliad left
TimToady rakudo: say not so True 05:27
p6eval rakudo f6092e: OUTPUT«0␤»
TimToady rakudo: say so so True
p6eval rakudo f6092e: OUTPUT«1␤»
diakopter std: so so False and so
p6eval std 29928: OUTPUT«Potential difficulties:␤ Missing final term in 'and' list at /tmp/ddgs3Y0SHL line 1:␤------> <BOL>⏏so so False and so␤ok 00:01 107m␤»
diakopter haven't seen that error b4
er, warning 05:28
std: say(so True and 1) 05:29
p6eval std 29928: OUTPUT«===SORRY!===␤Unable to parse argument list; couldn't find final ')' at /tmp/XsUV8qCKGT line 1:␤------> say(so True ⏏and 1)␤ expecting an infix operator with precedence tighter than list prefix␤FAILED 00:01 107m␤»
diakopter urp
std: say (so True and 1) 05:30
p6eval std 29928: OUTPUT«ok 00:01 107m␤»
diakopter o_o
o|o
TimToady: is that a genuine buggle? 05:31
now. I'm getting angry at everything EXCEPT you, alester :) 05:32
22:21 < lue> alester
erm
TimToady no, the the "Missing final term" might be
diakopter mispaste
TimToady *though the 05:33
diakopter why does say (so True and 1) pass but say(so True and 1) doesn't? 05:34
TimToady because those aren't function arg parens
05:34 hicx174 left
diakopter std: say((so True and 1)) 05:34
p6eval std 29928: OUTPUT«ok 00:01 107m␤»
diakopter o
05:36 hicx174 joined
diakopter rakudo: say(1 and 1) 05:38
p6eval rakudo f6092e: OUTPUT«Confused at line 11, near "say(1 and "␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
diakopter pugs: say(1 and 1)
p6eval pugs: OUTPUT«1␤»
TimToady pugs: say(1,2 and 3)
p6eval pugs: OUTPUT«13␤»
TimToady but you see, and is supposed to be looser than comma... 05:39
which means it can't be meaningful in a function's arguments
diakopter pugs: say(1,2and 3) 05:40
p6eval pugs: OUTPUT«13␤»
diakopter rakudo: say (3,1 and 2,4) 05:41
p6eval rakudo f6092e: OUTPUT«24␤»
05:41 athenot left
diakopter rakudo: say (3;1 and 2;4) 05:41
p6eval rakudo f6092e: OUTPUT«4␤» 05:42
diakopter o_O
TimToady 3 statements
diakopter Perl. Statement Lists are Expressions, too. 05:43
Perl. Statement[ List]s are Expressions, too.
rakudo: say (;;).WHAT 05:44
p6eval rakudo f6092e: OUTPUT«Int()␤»
05:46 athenot joined
diakopter but if there are no commas... 05:47
oh
TimToady I have no idea why that's Int 05:48
diakopter rakudo: say 6 / 7 / 6 / (7**-1) # masakbot 05:49
p6eval rakudo f6092e: OUTPUT«Inf␤»
diakopter rakudo: say 7**-1 # masakbot
p6eval rakudo f6092e: OUTPUT«0␤»
diakopter heh
05:50 quietfanatic left, alester left, athenot left
diakopter pugs: say 1/7/7/7/7/7/7/7*7 # masakbot FAIL 05:52
p6eval pugs: OUTPUT«0.0000084998597523140868175675101360827546␤»
diakopter rakudo: say 1/7/7/7/7/7/7/7*7 # masakbot FAIL
p6eval rakudo f6092e: OUTPUT«1␤»
diakopter I mean rakudo :)
and * are left-associative *together*, right? 05:54
/ and * are left-associative *together*, right?
arlinius rakudo: say 1/0*1
p6eval rakudo f6092e: OUTPUT«Inf␤»
arlinius rakudo: say 1/0*Inf
p6eval rakudo f6092e: OUTPUT«Inf␤»
diakopter perl6: say 1/7/7*7*7 05:55
p6eval elf 29928, pugs, rakudo f6092e: OUTPUT«1␤»
TimToady rakudo: say so Inf
p6eval rakudo f6092e: OUTPUT«1␤»
diakopter perl6: say 1/7/7/7/7*7*7
p6eval elf 29928: OUTPUT«0.0204081632653061␤»
..rakudo f6092e: OUTPUT«1␤»
..pugs: OUTPUT«0.0204081632653061224489795918367346938776␤»
diakopter elf++ pugs++
arlinius heh
diakopter 'tis a parse fail 05:56
I think
hejki pugs is the haskell impl, well what's elf? :>
diakopter perl/ruby/perl 05:57
hejki :>
diakopter that's a ... scary fail 05:58
rakudo: say ((((((1/7)/7)/7)/7)*7)*7) 05:59
p6eval rakudo f6092e: OUTPUT«0.0204081632653061␤»
hejki i'm just wondering what you did replace with perl in the first (or the last) part:)
diakopter STD for the first perl
hejki sexually transmitted disease? :P
diakopter I suppose it could be transmitted sexually, if you tried hard enough 06:00
hejki (:
diakopter rakudo: say (1/(7/(7/(7/(7*(7*7)))))) 06:01
hejki does any implementation have laziness yet? i'd guess pugs could have, after all it's in haskell :>
p6eval rakudo f6092e: OUTPUT«49␤»
diakopter pugs doesn't compile *to* haskell
hejki oh
TimToady rakudo now has laziness
hejki oh really? :o
nice :) 06:02
TimToady rakudo: say 1..*.batch(10)
p6eval rakudo f6092e: OUTPUT«␤»
TimToady rakudo: say (1..*).batch(10)
p6eval rakudo f6092e: OUTPUT«Method 'batch' not found for invocant of class 'Range'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
TimToady rakudo: say (1..*).iterator.batch(10)
p6eval rakudo f6092e: OUTPUT«␤»
TimToady hmm
hejki rakudo: my @ar = gather { for ^Inf -> $x { take $x if $x % 3 == 0; }; }; say @ar[1];
diakopter <sidelong squint>
p6eval rakudo f6092e: ( no output )
TimToady rakudo: say (1...*).iterator.batch(10)
p6eval rakudo f6092e: OUTPUT«12345678910␤»
TimToady rakudo: say (1...*).batch(10) 06:03
p6eval rakudo f6092e: OUTPUT«12345678910␤»
06:03 xomas joined, xomas left, xomas joined
diakopter rakudo: say (1...^*).batch(10) 06:03
p6eval rakudo f6092e: OUTPUT«10-1-2-3-4-5-6-7-8␤»
diakopter O_O
hejki :O
TimToady rakudo: say (1,2,4 ... *)[10] 06:04
p6eval rakudo f6092e: ( no output )
diakopter # masakbot: see my last
TimToady maybe doesn't intuit yet
hejki rakudo: say (1,3,5...*)[6];
not even with easier logic :)
diakopter I think it timed out
hejki ye
TimToady rakudo: say (1,2,4, {$^a * $^a} ... *)[10]
p6eval rakudo f6092e: ( no output ) 06:05
rakudo f6092e: OUTPUT«Method 'postcircumfix:<[ ]>' not found for invocant of class 'Failure'␤current instr.: '!postcircumfix:<[ ]>' pc 10568 (src/builtins/Role.pir:90)␤»
TimToady rakudo: say (1,2,4, {$^a + $^a} ... *)[10]
p6eval rakudo f6092e: OUTPUT«Method 'postcircumfix:<[ ]>' not found for invocant of class 'Failure'␤current instr.: '!postcircumfix:<[ ]>' pc 10568 (src/builtins/Role.pir:90)␤»
diakopter rakudo: say (1,2,4 ... *).batch(11)[10]
p6eval rakudo f6092e: OUTPUT«1024␤»
TimToady rakudo: say (1,2,4, * * 2 ... *)[10]
p6eval rakudo f6092e: OUTPUT«Method 'Num' not found for invocant of class 'Block'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
TimToady rakudo: say (1,2,4, -> $x { $x * 2 } ... *)[10]
p6eval rakudo f6092e: OUTPUT«Method 'postcircumfix:<[ ]>' not found for invocant of class 'Failure'␤current instr.: '!postcircumfix:<[ ]>' pc 10568 (src/builtins/Role.pir:90)␤»
diakopter mine worked :P 06:06
TimToady rakudo: say (1,2,4, -> $x { $x * 2 } ... *).batch(10)
p6eval rakudo f6092e: OUTPUT«Method 'batch' not found for invocant of class 'Failure'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
TimToady decommuting & 06:07
06:08 astrojp left
diakopter rakudo: say (1..Inf).iterator.batch(10) 06:08
p6eval rakudo f6092e: OUTPUT«12345678910␤»
diakopter rakudo: say (1..Inf).iterator.batch(1000)
p6eval rakudo f6092e:
..OUTPUT«123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130…
diakopter rakudo: say (Inf...1).iterator.batch(100) 06:09
p6eval rakudo f6092e:
..OUTPUT«InfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInf…
diakopter :)
rakudo: say (NaN...Inf).iterator.batch(10) 06:10
p6eval rakudo f6092e: OUTPUT«NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN␤»
diakopter std: say and die 6 06:11
p6eval std 29928: OUTPUT«Undeclared routine:␤ 'and' used at line 1␤ok 00:01 105m␤»
diakopter TimToady: see above
rakudo: say and die 3
p6eval rakudo f6092e: OUTPUT«3␤current instr.: '&die' pc 16799 (src/builtins/Junction.pir:347)␤»
06:12 snarkyboojum joined 06:15 athenot joined
diakopter actually, that's a rakudo parse wrongness; # masakbot see above 06:16
06:17 alester joined 06:19 athenot left 06:39 simcop2387 left
mberends good morning 06:42
06:43 gfx joined, simcop2387 joined
diakopter hi 06:45
06:49 Sunil joined
eternaleye rakudo: multi sub fy-pick( @foo is copy, Whatever ) { my $remaining = @foo.end; while $remaining { my $pos = (rand * $remaining).Int; @foo[$pos, $remaining] = @foo[$remaining, $pos]; --$remaining; }; return @foo; }; say ~fy-pick( ^10, * ) 06:53
p6eval rakudo f6092e: OUTPUT«No applicable candidates found to dispatch to for 'fy-pick'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
eternaleye alpha: multi sub fy-pick( @foo is copy, Whatever ) { my $remaining = @foo.end; while $remaining { my $pos = (rand * $remaining).Int; @foo[$pos, $remaining] = @foo[$remaining, $pos]; --$remaining; }; return @foo; }; say ~fy-pick( ^10, * ) 06:54
p6eval alpha 30e0ed: OUTPUT«5 2 8 7 9 6 4 0 3 1␤»
eternaleye \o/
06:54 kaare joined 06:55 kaare is now known as Guest22077
eternaleye alpha: multi sub fy-pick( @foo is copy, int $count ) { my $remaining = @foo.end; while $remaining > $count { my $pos = (rand * $remaining).Int; @foo[$pos, $remaining] = @foo[$remaining, $pos]; --$remaining; }; return @foo[*-$count..@foo.end]; }; say ~fy-pick( ^10, 3 ) 06:59
p6eval alpha 30e0ed: OUTPUT«Unable to parse multisig; couldn't find final ')' at line 10, near ", int $cou"␤in Main (file <unknown>, line <unknown>)␤»
eternaleye alpha: multi sub fy-pick( @foo is copy, Int $count ) { my $remaining = @foo.end; while $remaining > $count { my $pos = (rand * $remaining).Int; @foo[$pos, $remaining] = @foo[$remaining, $pos]; --$remaining; }; return @foo[*-$count..@foo.end]; }; say ~fy-pick( ^10, 3 )
p6eval alpha 30e0ed: OUTPUT«4 2 8␤»
07:00 alester left 07:01 pmurias joined
eternaleye alpha: multi sub fy-pick( @foo is copy, Whatever, :replace ) { gather { my $pos = (rand * @foo.end).Int; take( @foo[$pos] ); }; return @foo; }; say ~fy-pick( ^10, *, :replace ).batch(20) 07:02
p6eval alpha 30e0ed: OUTPUT«Unable to parse multisig; couldn't find final ')' at line 10, near ":replace )"␤in Main (file <unknown>, line <unknown>)␤»
eternaleye alpha: multi sub fy-pick( @foo is copy, Whatever, :replace($) ) { gather { my $pos = (rand * @foo.end).Int; take( @foo[$pos] ); }; return @foo; }; say ~fy-pick( ^10, *, :replace ).batch(20)
p6eval alpha 30e0ed: OUTPUT«Method 'batch' not found for invocant of class 'Perl6Array'␤in Main (file src/gen_setting.pm, line 324)␤»
eternaleye rakudo: multi sub fy-pick( @foo is copy, Whatever, :replace($) ) { gather { my $pos = (rand * @foo.end).Int; take( @foo[$pos] ); }; return @foo; }; say ~fy-pick( @foo = ( ^10 ), *, :replace ).batch(20) 07:03
p6eval rakudo f6092e: OUTPUT«Confused at line 11, near "say ~fy-pi"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
eternaleye rakudo: multi sub fy-pick( @foo is copy, Whatever, :replace($) ) { gather { my $pos = (rand * @foo.end).Int; take( @foo[$pos] ); }; return @foo; }; say ~fy-pick( my @bar = ( ^10 ), *, :replace ).batch(20)
p6eval rakudo f6092e: OUTPUT«Redeclaration of symbol @bar at line 11, near " = ( ^10 )"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
eternaleye rakudo: multi sub fy-pick( @foo is copy, Whatever, :replace($) ) { gather { my $pos = (rand * @foo.end).Int; take( @foo[$pos] ); }; return @foo; }; say ~fy-pick( (my @bar = ( ^10 )), *, :replace ).batch(20) 07:04
p6eval rakudo f6092e: OUTPUT«Method 'batch' not found for invocant of class 'Array'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
eternaleye rakudo: multi sub fy-pick( @foo is copy, Whatever, :replace($) ) { gather { my $pos = (rand * @foo.end).Int; take( @foo[$pos] ); }; }; say ~fy-pick( (my @bar = ( ^10 )), *, :replace ).batch(20)
p6eval rakudo f6092e: OUTPUT«1␤»
eternaleye rakudo: multi sub fy-pick( @foo is copy, Whatever, :replace($) ) { gather { while 1 { my $pos = (rand * @foo.end).Int; take( @foo[$pos] ); }; }; }; say ~fy-pick( (my @bar = ( ^10 )), *, :replace ).batch(20)
p6eval rakudo f6092e: OUTPUT«20␤»
eternaleye rakudo: multi sub fy-pick( @foo is copy, Whatever, :replace($) ) { gather { while 1 { my $pos = (rand * @foo.end).Int; take( @foo[$pos] ); }; }; }; say ~fy-pick( (my @bar = ( ^10 )), *, :replace ).batch(20) 07:05
p6eval rakudo f6092e: OUTPUT«20␤»
eternaleye rakudo: multi sub fy-pick( @foo is copy, Whatever, :replace($) ) { gather { while 1 { my $pos = (rand * @foo.end).Int; take( @foo[$pos] ); }; }; }; say ~(fy-pick( (my @bar = ( ^10 )), *, :replace ).batch(20))
p6eval rakudo f6092e: OUTPUT«20␤»
eternaleye ...
It's like I grok it in large but not in small 07:06
07:20 uniejo joined 07:26 xabbu42 joined 07:29 Trashlord joined 07:30 quietfanatic joined 07:33 Su-Shee joined
pugssvn r29929 | lwall++ | [STD] Don't give misleading message when prefix missing its term 07:38
07:39 barney joined 07:41 pmurias left 07:47 ihrd1 joined 07:48 snarkyboojum left 07:52 ihrd1 left 07:57 riffraff joined 07:58 PacoLinux left 08:03 Sunil left 08:04 payload1 joined, payload left 08:12 masak joined
masak good morning, #perl6 08:12
TimToady good evening 08:13
std: so so and so
p6eval std 29929: OUTPUT«===SORRY!===␤Prefix requires an argument at /tmp/6tPuObw2jW line 1 (EOF):␤------> so so and so⏏<EOL>␤ expecting any of:␤ prefix or meta-prefix␤ prefix_postfix_meta_operator␤ term␤FAILED 00:01 108m␤» 08:14
masak std: so not True;
p6eval std 29929: OUTPUT«ok 00:01 106m␤»
TimToady std: so not
p6eval std 29929: OUTPUT«===SORRY!===␤Prefix requires an argument at /tmp/7lTOjXUIWj line 1 (EOF):␤------> so not⏏<EOL>␤ expecting any of:␤ prefix or meta-prefix␤ prefix_postfix_meta_operator␤ term␤FAILED 00:01 106m␤»
masak std: not so ... 08:15
p6eval std 29929: OUTPUT«ok 00:01 106m␤»
08:20 snarkyboojum joined 08:21 JimmyZ joined
JimmyZ std: if so 08:21
p6eval std 29929: OUTPUT«===SORRY!===␤Prefix requires an argument at /tmp/uhOgFEHHnQ line 1 (EOF):␤------> if so⏏<EOL>␤ expecting any of:␤ prefix or meta-prefix␤ prefix_postfix_meta_operator␤ term␤FAILED 00:01 106m␤»
JimmyZ std: if so ugly rip it out
p6eval std 29929: OUTPUT«===SORRY!===␤Missing block (apparently gobbled by undeclared routine?) at /tmp/6aBpVkiC0C line 1 (EOF):␤------> if so ugly rip it out⏏<EOL>␤ expecting argument list␤Undeclared routines:␤ 'it' used at line 1␤ 'out' used at line 1␤
.. 'rip' used a…
TimToady std: .say if .so given True 08:22
p6eval std 29929: OUTPUT«ok 00:01 105m␤»
JimmyZ std: rip it out if so ugly
p6eval std 29929: OUTPUT«Undeclared routines:␤ 'it' used at line 1␤ 'out' used at line 1␤ 'rip' used at line 1␤ 'ugly' used at line 1␤ok 00:01 106m␤»
JimmyZ stdo: if 1 true; 08:23
std: if 1 true;
p6eval std 29929: OUTPUT«===SORRY!===␤Missing block at /tmp/sOMiPfLSZH line 1:␤------> if 1 ⏏true;␤ expecting any of:␤ bracketed infix␤ infix or meta-infix␤FAILED 00:01 106m␤»
masak JimmyZ: also, two terms in a row. 08:26
(though that rule is temporarily lifted since we're in a special form)
spinclad heh, i like Peter Makholm's trailing talk, 'Perl 5 isn't so bad after all'
08:29 xomas left 08:31 xomas joined, xomas left, xomas joined
masak spinclad: URL? 08:32
JimmyZ masak: I can't understand 08:33
masak from the learning-from-the-suffering-of-other-language-communities department: here's a Ruby string encoding rant: github.com/candlerb/string19/raw/47...soapbox.rb
JimmyZ: know what a term is?
JimmyZ if?
masak JimmyZ: no, a term is a 'lexical item', like a number, or a variable, or a string, or a list... 08:34
it's the nouns of programming languages.
JimmyZ I'd like 'if 1 true' passes std. 08:35
masak yes, and I'm in the process of explaining to you why it won't :)
JimmyZ so, why? 08:36
masak because you can't have two terms in a row. both '1' and 'true' are terms.
by the way, back when 'true' existed in Perl 6, it expected an argument, so you can't have it last in an expression.
JimmyZ and what's about perl 5? 08:37
std: if 1 return ture; 08:38
p6eval std 29929: OUTPUT«===SORRY!===␤Missing block at /tmp/GHmSn5XPBD line 1:␤------> if 1 ⏏return ture;␤ expecting any of:␤ bracketed infix␤ infix or meta-infix␤FAILED 00:01 108m␤»
spinclad masak: www.opensourcedays.org/2010/node/267 :)
hejki :D
tureing complete
JimmyZ std: my $a = 1; if $a return; 08:39
p6eval std 29929: OUTPUT«===SORRY!===␤Missing block at /tmp/U74WdUpfQI line 1:␤------> my $a = 1; if $a ⏏return;␤ expecting any of:␤ bracketed infix␤ infix or meta-infix␤FAILED 00:01 106m␤»
masak JimmyZ: so you're essentially advocating removing the braces? that won't happen.
JimmyZ std: my $a = 1; return if $a;
p6eval std 29929: OUTPUT«ok 00:01 106m␤»
masak spinclad: ah, should have guessed. :) 08:40
spinclad: yes, that's a nice title. gave me a bit of the wrong impression because of the context (five Perl 6 talks prior to it), but the description sounds nice. 08:41
JimmyZ masak: I just want to know why return if $a works.
spinclad 'perl 5 isn't all that bad as you say'
masak JimmyZ: when you phrase it that way, it almost sounds sensible. :) 08:42
spinclad .oO{ oh, it has a description now? it was just a black text title last i looked, a while ago... } 08:43
08:46 snarkyboojum left
masak JimmyZ: think of it as two different types of 'if': the quick-and-easy type and the slightly-more-robus type. with the quick-and-easy version, you just slap on an 'if True' at the end of your statement. with the robus version, you have to be a bit more elaborate and use curly braces. 08:51
JimmyZ: I know that doesn't fully answer your question. it's the start of an explanation though.
JimmyZ std: if (-> { $^a + $^b})(1,1) { say 'hello' } 08:52
p6eval std 29929: OUTPUT«===SORRY!===␤Placeholder variable $^a cannot override existing signature ( ) at /tmp/kO6TqK9JEk line 1:␤------> if (-> { $^a⏏ + $^b})(1,1) { say 'hello' }␤ expecting any of:␤ POST␤ postfix␤ postfix_prefix_meta_operator␤FAILED 00:01 107m␤»
spinclad masak: yes, a talk about the Perl Renaissance sounds good, and Modern, and not at all Stop Dissing Our Language, TYVM. I hope the hall will have room to celebrate together the latest hot news of two sibling languages and their communities.
JimmyZ std: if (-> { $^a + $^b})(1,1)) { say 'hello' }
p6eval std 29929: OUTPUT«===SORRY!===␤Placeholder variable $^a cannot override existing signature ( ) at /tmp/MT9iEWW39G line 1:␤------> if (-> { $^a⏏ + $^b})(1,1)) { say 'hello' }␤ expecting any of:␤ POST␤ postfix␤ postfix_prefix_meta_operator␤FAILED 08:53
..00:01 107m␤»
JimmyZ std: if ( { $^a + $^b})(1,1)) { say 'hello' }
p6eval std 29929: OUTPUT«===SORRY!===␤Expression needs parens to avoid gobbling block at /tmp/lvm8XLTXPn line 1:␤------> if ⏏( { $^a + $^b})(1,1)) { say 'hello' }␤Missing block (apparently gobbled by expression) at /tmp/lvm8XLTXPn line 1:␤------> if ( { $^a +
..$^b})…
JimmyZ std: if ( -> $a, $b { $a + $b})(1,1)) { say 'hello' }
p6eval std 29929: OUTPUT«===SORRY!===␤Expression needs parens to avoid gobbling block at /tmp/fkllYkk0KR line 1:␤------> if ⏏( -> $a, $b { $a + $b})(1,1)) { say 'hel␤Missing block (apparently gobbled by expression) at /tmp/fkllYkk0KR line 1:␤------> if ( -> $a, $b
..…
spinclad *robust
masak aye.
JimmyZ std: if for $c -> $a, $b { $a + $b} { say 'hello' } 08:54
p6eval std 29929: OUTPUT«===SORRY!===␤Variable $c is not predeclared at /tmp/UqKZOiWv9g line 1:␤------> if for $c⏏ -> $a, $b { $a + $b} { say 'hello' }␤ expecting any of:␤ POST␤ postfix␤ postfix_prefix_meta_operator␤FAILED 00:01 105m␤»
spinclad std: if ({ $^a + $^b}(1,1)) -> $c { say "it makes $c" } 08:55
p6eval std 29929: OUTPUT«ok 00:01 108m␤»
masak TimToady: with :!defined, can we kill off *.notdef now? there's one mention in S02 and two in S32/Basics. 08:56
08:56 JimmyZ left
spinclad rakudo: if ({ $^a + $^b}(1,1)) -> $c { say "it makes $c" } 08:57
p6eval rakudo f6092e: OUTPUT«it makes 2␤»
08:59 snarkyboojum joined
mathw Morning 09:03
m-locks gm 09:04
09:07 quester joined, dakkar joined
masak morning, mathw. 09:08
spinclad good early morn, mathw, dawn still abed here 09:11
mathw Dawn is well and truly past here 09:16
09:18 payload joined, payload1 left 09:19 k23z__ left 09:23 payload left 09:26 jonasbn joined
mathw Wow masak, a whole load of your RT tickets just appeared in my inbox 09:28
masak I would say 'sorry about that', but I guess I'm not... :)
mathw It's okay :) 09:30
I like to see that the masakbot is still in operation 09:31
09:31 mathw sets mode: +o masak
mathw masak++ 09:31
masak oh, operating just fine.
mathw :) 09:32
masak "Hello, I'm Carl Mäsak. I'm an IRC bot. On my good days I pass the Turing test." 09:33
mathw The Turing test is flawed 09:34
Emulation of a human is not really a very good test for a functional AI
It's an AI, not a human...
snarkyboojum is it? :)
mathw Okay so you could write an AI which emulated a human 09:35
masak mathw: depends on what the goal is, I guess.
mathw But why bother?
spinclad 'Hi, i'm an airplane. on my good days I flap my wings and pretend i'm a bird.'
masak mathw: I think there's good money in making programs that successfully pretend to be human. 09:37
mathw: depending on the exactness of the simulation, I can also see actual uses for such a technology.
I agree that the human-likeness criterion is arbitrary and perhaps limiting, but I wouldn't say it's not interesting.
mathw It's probably harder 09:38
Although a human-like AI might be less scary
An AI which behaves like an artificial lifeform and develops incomprehensible motivations would be a bit more worrisome
masak unless we land in the Uncanny Valley :)
mathw Although humans are scary enough, so...
mathw intuits that all AIs are scary 09:39
mathw further intuits that all sentient life forms are scary
spinclad 'hi, i'm a box on the net. on good days i pay the bills that keep me fed and cool. on bad days i just sulk.'
limited self-situation (not to say awareness) need not be over-taxing... modelling one's duties and so attending to them is not so different from inbuilt knowing how to do them. free-form interaction need not be among those duties. 09:43
09:43 jonasbn left
spinclad intuits that people have long been scary 09:43
09:44 b_jonas joined 09:46 barney left
mberends a SatNav with voice output passes the Turing Test without being asked any questions. "Turn around when possible. At the next roundabout, turn left"... Or is that the Turning Test that the human is trying to pass? 10:09
10:18 yinyin left
masak mberends: not sure that counts. the fact that the thing speaking to me is a little box with an LCD, is a bit of a tip-off. :) 10:19
mberends masak: then you should be doing the test blindfold. Er, no, car drivers aren''t allowed to do that ;) 10:20
mathw echo location! 10:23
what do you mean you don't have any bat DNA?
10:26 orafu left, orafu joined
masak mberends: :) 10:26
mberends ah, jnthn-san is finally waking :) 10:29
10:29 riffraff left 10:30 riffraff joined 10:33 riffraff left 10:43 riffraff joined
masak could defining a new type be seen as a sort of grammar modification, albeit a very mild one? 10:54
colomon Defining a new operator certainly is... 10:55
masak yes...
related question from yesterday: how do I define types so that they're *not* exported?
colomon I thought you could do "my class X", or something like that? Never tried it, I admit. 10:56
masak hm. makes sense. thanks.
colomon It makes sense, but is it spec? And does it work? ;) 10:57
mathw I think it is spec
I'm sure I've read about that before
It restricts visibility of the new type to the lexical scope
(I think)
(If it doesn't, why not, I want a good reason)
sjohnson yo matt 10:59
colomon > (1,2,4, -> $a {$a + $a} ... *).batch(10).perl.say
(1, 2, 4, 8, 16, 32, 64, 128, 256, 512)
masak lunch & 11:01
11:01 masak left
mathw std:my class Robot {} 11:01
std: my class Robot {} 11:03
11:03 jonasbn joined
p6eval std 29929: OUTPUT«ok 00:01 107m␤» 11:03
mathw ah it needs the space
11:08 lestrrat is now known as lest_away
colomon rakudo: say 81 < 9.Rat 11:08
p6eval rakudo f6092e: OUTPUT«0␤»
colomon rakudo: say Int ~~ Num 11:10
p6eval rakudo f6092e: OUTPUT«1␤»
11:12 pnate joined
mathw rakudo: my class Robot {} 11:14
p6eval rakudo f6092e: OUTPUT«Can't handle scope declarator my on packages yet␤current instr.: 'perl6;Perl6;Compiler;Package;finish' pc 26286 (src/gen/parameter_pm.pir:491)␤»
mathw \o/ rakudo knows it's not finished :)
jnthn oh morning 11:18
colomon \o
11:21 rv2733 joined
mathw oh hai jnthn 11:23
jnthn mathw: lol hai 11:27
11:35 snarkyboojum left 11:41 gfx left 11:48 xomas left 12:08 am0c joined
colomon justrakudoit.wordpress.com/2010/03/...s-on-real/ 12:13
12:15 mikehh left
mberends colomon++: you could have entitled it Getting Real ;) 12:16
colomon ;) 12:17
cognominal jnthn, it is official now, the french perl workshop will be in Calais, June 10-11 12:25
any English or French speaker is welcome :) 12:26
colomon The sad thing is, after all the work last night on the series operator, I should probably churn out another blog post on it, but I've got to get to $work now.
12:27 lest_away is now known as lestrrat
jnthn cognominal: Whoa...that is right up against the Ukraine one. 12:27
(which starts on the 12th...)
cognominal too bad.
jnthn Well, with some slightly creative travel arrangements... 12:28
:-)
I guess I can miss a day or one or the other of them, and so long as my talks get scheduled on the day I'm around, it's do-able.
cognominal I can make sure you talk the first day, if you want
jnthn *of
Yeah
cognominal ok
jnthn OK, I'll keep it in mind. Can't commit now - life too crazy (moving appartment/country/job/life at the moment :-)). 12:29
But would like to do both, so, we'll see. :-)
cognominal ok, expect to see you if you can make it.
12:38 am0c left 12:42 pmurias joined 12:51 payload joined 12:52 lichtkind joined
lichtkind mberends: hai hai 12:53
moritz_: can i get a commit bit on the perl 6 book? 12:57
takadonet morning all
12:58 ignacio_ joined
lichtkind moin 12:59
pmurias lichtkind: it's on github so you can fork it 13:01
13:01 masak joined
jnthn lolitsmasak 13:01
lichtkind pmurias: shure but maybe i want it push back in mainline
masak yayitsjnthn 13:03
colomon news.perlfoundation.org/2010/03/com...grant.html
jnthn++
13:04 Exodist left
masak jnthn++! 13:05
13:05 Exodist joined
lichtkind masak: can i get commit bit to book or should i clone? 13:06
13:06 ignacio_ left
lichtkind jnthn++ :) 13:07
13:07 frettled sets mode: +oooo colomon masak cognominal mberends
masak lichtkind: cloning/pull-requests sounds like a good option, at least short-term. 13:08
13:14 pmurias left
lichtkind masak: is november fixed? :) 13:16
masak lichtkind: no :( 13:17
jnthn Thanks, folks. 13:18
jnthn has happy to finish the grant too :-)
masak lichtkind: I'm in the middle of slides preparations for OSD.
jnthn mberends: lunch?
mberends huh?
13:18 xabbu42 left
jnthn chcem jest bryndzove halusky! 13:18
lichtkind :) 13:19
jnthn bbl :-) 13:20
13:21 ignacio_ joined 13:25 cognominal left 13:35 Trashlord left 13:43 alester joined 13:45 athenot joined, payload left 13:55 ruoso joined 13:57 alester left 14:01 payload joined
[particle] S03: s/boolen/boolean/ 14:05
lichtkind mberends: maybe you have further ideas for www.perlfoundation.org/perl6/index.cgi?timeline 14:12
14:13 IllvilJa left
pugssvn r29930 | masak++ | [S03] typo, discovered by particle++ 14:17
14:19 cognominal joined
PerlJam lichtkind: that first entry is weird. 14:20
14:20 xabbu42 joined
PerlJam lichtkind: it makes it seem like Larry had something to do with the coffee mug and that "the idea of Perl 6" didn't exist prior to that point. Both of which are not exactly true. 14:21
14:24 cotto left, cotto joined
masak the joke about 'chronically' as a misspelling of 'chronological' doesn't make much sense. 14:25
(that is, I assume it's a joke)
PerlJam yeah, I wasn't sure what to make of that either 14:26
masak 'due medical problems' -> 'due to medical problems'. I'm not sure that item deserves to be in the timeline. 14:27
on the other hand, I'd like to see a mention of the Ponie project.
'came public with' -> 'announced'. 14:28
PerlJam What about the Perl 6 prehistory? 1998 - Chip Salzenburg starts the Topaz project
(sorry chip if I've misspelt your name)
masak Salzenberg. 14:29
PerlJam for some reason I'm never sure if it's -burg or -berg
masak PerlJam: think 'salty mountain', not 'salty city'. 14:30
Su-Shee burgs stand on bergs. ;)
masak if the burgs are lucky, that is :)
PerlJam masak: that actually may help (as I do tend to think "city")
masak <-- language association hotline, 24/7 14:31
PerlJam :-)
14:32 lichtkind left, hicx174 left, Khisanth left, rhr left
PerlJam I don't think I'll every forget "salty mountain" now ... let's just hope I remember it when it comes to Chip's name :) 14:32
Su-Shee the real salzburg is on a berg as well. ;)
masak PerlJam: just imagine Chip scaling a mountain of salt. :) 14:33
Su-Shee "would you pass me the salt" will never be said as before. ;)
masak truck pulls up... dumps contents... 14:34
"The salt shaker would have been enough, you know."
14:36 lichtkind joined, Khisanth joined, rhr joined
PerlJam shakers and a jehovah's witness ... 14:37
lichtkind PerlJam: i know its true, feel free to change or i do it tonight when im back
14:38 synth joined 14:43 hicx174 joined 14:53 athenot left 14:55 payload left, uniejo left 14:56 PacoLinux joined 14:57 payload joined, alester joined 14:58 Guest22077 left
masak the item about Apocalypse 1 links to 'Synopses', but the Synopses article doesn't much mention the apocalypses. 15:03
www.perlfoundation.org/perl6/index.cgi?synopses
the phrasing '(almost) human readable' looks like another attempt at being funny. please remove.
"The Synopses are the (almost) human readable documents which constantly kept up to date". This is not a defining property of the Synopses at all. 15:04
The Synopses serve as a specification of Perl 6.
Tene Mmm... more cellphone pie for breakfast. 15:14
masak: can you check if try{} catches other control exceptions for me 15:15
masak sure.
b_jonas masak: luckily it links to perlcabal.org/syn/ which makes this clear in the first sentence
masak b_jonas: yes, but I don't see why the wiki (whose purpose it is to inform) couldn't be a bit less confusing. 15:16
b_jonas sure 15:17
masak rakudo: my @a = gather { take 1; try { take 2 }; take 3 }; say @a.perl 15:18
p6eval rakudo f6092e: OUTPUT«[1, 3]␤»
masak Tene: :)
Tene: guess that answers your question.
Tene okay, that means that it's likely the easy fix.
masak rakudo: for 1..10 -> $n { if $n == 5 { try { last } }; say $n } 15:19
p6eval rakudo f6092e: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤»
Tene looking at it now.
masak Tene++
Tene alpha: for 1..10 -> $n { if $n == 5 { try { last } }; say $n } 15:22
p6eval alpha 30e0ed: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤»
15:22 f00li5h[HireMe] left 15:24 f00li5h[HireMe] joined 15:26 Trashlord joined 15:31 alester left 15:32 alester joined, IllvilJa joined 15:34 quester left, hanekomu left 15:39 b_jonas left, Psyche^ joined 15:41 nihiliad joined 15:42 Patterner left, Psyche^ is now known as Patterner 15:45 Salada345 joined
Tene Oh, it's compiling so slowly because I still have my cpu throttled down. 15:49
heh.
masak: fixed and committed. Please confirm and take care of the ticket. 15:58
masak Tene: will do. Tene++ 15:59
dalek kudo: d66fe37 | tene++ | src/Perl6/Actions.pm:
Slight refactor of push_block_handler
kudo: 4edd19d | tene++ | src/Perl6/Actions.pm:
Re-work try {} to ignore control exceptions
Tene AFK, $work again 16:00
TimToady Tene++
16:02 jaldhar left, jaldhar joined
TimToady kudo: for 1..10 -> $n { if $n == 5 { last; CATCH {} }; say $n } 16:03
rakudo: for 1..10 -> $n { if $n == 5 { last; CATCH {} }; say $n }
p6eval rakudo f6092e: OUTPUT«1␤2␤3␤4␤»
TimToady rakudo: for 1..10 -> $n { if $n == 5 { last; CONTROL {} }; say $n } 16:04
p6eval rakudo f6092e: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤»
TimToady that looks about right
masak aye. 16:05
TimToady except for the fact that it should probably be rethrowing without a 'when * {}' 16:06
masak one step at a time :)
mberends travel Bratislava -> Arnhem o/ 16:07
TimToady \o
masak o/
16:08 mberends left
TimToady just think how much more fun Unicode would have been if they'd introduced alternating characters so we could do animation 16:09
masak as it stands now, you'll just have to get two <blink> elements to get 180 degrees out of phase :P 16:11
a much cleaner solution, independent of code points. 16:12
diakopter masak: hi
masak diakopter: \o
diakopter (see masakbot hilites in the irclog if you like) 16:13
16:13 pmurias joined
pmurias ruoso: hi 16:13
masak ooh! haven't done that today.
16:13 am0c joined
masak rakudo: say 7**-1 # from diakopterbot 16:14
p6eval rakudo f6092e: OUTPUT«0␤»
masak submits rakudobug
frettled heh
masak pugs: say 1/7/7/7/7/7/7/7*7 16:15
p6eval pugs: OUTPUT«0.0000084998597523140868175675101360827546␤»
masak rakudo: say 1/7/7/7/7/7/7/7*7 # also found by diakopter++
p6eval rakudo f6092e: OUTPUT«1␤»
masak submits rakudobug
diakopter I don't get that one
it's not fully left-associative nor fully right-associative
masak me neither. kudos to whoever gets it.
rakudo: say (Inf...1).iterator.batch(100) 16:16
p6eval rakudo 4edd19:
..OUTPUT«InfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInfInf…
masak not a bug, but I liked that one :P
diakopter heh
masak "Inf bottles of beer on the wall..." 16:17
diakopter rakudo: say (1...^*).batch(10)
p6eval rakudo 4edd19: OUTPUT«10-1-2-3-4-5-6-7-8␤»
masak rakudo: say and die 3
frettled eeeeh
p6eval rakudo 4edd19: OUTPUT«3␤current instr.: '&die' pc 16799 (src/builtins/Junction.pir:347)␤»
frettled 10-1-2-..?
diakopter 10,-1,-2
frettled ah 16:18
masak std: say and die 3
p6eval std 29930: OUTPUT«Undeclared routine:␤ 'and' used at line 1␤ok 00:01 107m␤»
16:18 Toony joined
masak o.O 16:18
diakopter rakudo doesn't complain about 'and'
masak should it?
diakopter so it must be interpreting it as infix and
frettled diakopter: actually, 1, 0, -1, -2 etc :)
diakopter ohhh
frettled rakudo: say (1…^*).batch(10).perl 16:19
p6eval rakudo 4edd19: OUTPUT«Confused at line 11, near "say (1\u2026^*)"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
frettled rakudo: say (1...^*).batch(10).perl
p6eval rakudo 4edd19: OUTPUT«(1, 0, -1, -2, -3, -4, -5, -6, -7, -8)␤»
masak submits rakudobug for 'say and'
diakopter why would ^* produce that
frettled Shouldn't <…> work as a substitute for <...>?
masak frettled: not according to the spec, AFAIK. 16:20
masak submits rakudobug for '1...^*'
diakopter what's that supposed to do 16:22
?
rakudo: say (;;).WHAT 16:23
p6eval rakudo 4edd19: OUTPUT«Int()␤»
diakopter rakudo: say (;).WHAT 16:24
p6eval rakudo 4edd19: OUTPUT«Int()␤»
PerlJam masak: are you sure that's a bug? :)
diakopter I don't know what ^* should do
masak PerlJam: I think it is, yes. 16:25
PerlJam: it shouldn't count downwards.
sjn rakudo: say (^*).WHAT
p6eval rakudo 4edd19: OUTPUT«Range()␤»
masak hey, look at this!
frettled hmm? 16:26
sjn rakudo: say (*).WHAT
p6eval rakudo 4edd19: OUTPUT«Whatever()␤»
PerlJam rakudo: say ^*
p6eval rakudo 4edd19: OUTPUT«␤»
masak rakudo: .say for 1/7*7, 1/7/7*7, 1/7/7/7*7, 1/7/7/7/7*7
p6eval rakudo 4edd19: OUTPUT«1␤0.142857142857143␤1␤0.142857142857143␤»
PerlJam rakudo: my @a = ^*; say @a.batch(10);
p6eval rakudo 4edd19: OUTPUT«Method 'batch' not found for invocant of class 'Array'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
masak that explains it, I think.
diakopter say (1,2,4 ... *).batch(11)[10] # it's not lazy unless you use .batch 16:27
rakudo: say (1,2,4 ... *).batch(11)[10] # it's not lazy unless you use .batch
p6eval rakudo 4edd19: OUTPUT«1024␤»
diakopter rakudo: say (1,2,4 ... *)[10] # it's not lazy unless you use .batch
masak the 7's cancel out each other.
PerlJam rakudo: say (^*).batch(10);
diakopter right
p6eval rakudo 4edd19: ( no output )
rakudo 4edd19: OUTPUT«Method 'batch' not found for invocant of class 'Range'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
diakopter but how
PerlJam should .batch work on Ranges and Arrays?
masak diakopter: it's as if / had higher prec than * 16:28
diakopter they would cancel each other out if it were right-associative
if "/" were right-ass I mean
er, right-assoc
masak maybe it iss.
well, something's wrong, at least.
diakopter (1,2,4 ... *)[10] times out 16:29
but (1,2,4 ... *).batch(11)[10] doesn't
16:29 jonasbn left 16:34 athenot joined
masak maybe .[] isn't properly lazy yet. 16:34
diakopter oh 16:35
masak: you're right; it's a precedence thing
16:35 dan_linder1 joined
masak ok. 16:36
diakopter wait no
masak :)
diakopter I recant recant
16:49 mj41 joined, am0c left 16:53 nsh left, sbp left
masak food & 17:00
17:00 justatheory joined, masak left, ned joined
pmurias diakopter: how's sprixel progressing? 17:00
TimToady the 7/7 one is likely because of Rat literals, which we probably need to unspec 17:06
and rely only on constant folding 17:07
17:07 mikehh joined
colomon diakopter: [] on iterators isn't lazy yet. 17:08
17:13 dev_ joined 17:14 dev_ left, k23z__ joined, k23z__ left 17:15 cognominal left, k23z__ joined, cognominal joined 17:17 k23z__ left, k23z__ joined 17:24 SmokeMachine joined 17:25 astrojp joined 17:26 astrojp left, astrojp joined 17:33 ShaneC joined
colomon SF has broken Rakudo again :( 17:34
lastofthecarelessmen.blogspot.com/2...acked.html
pugssvn r29931 | lwall++ | [S02] remove 1/2 and +2-3i literal forms, now rely on angle dwimmery for literals,
r29931 | or constant folding otherwise.
PerlJam "angle dwimmery"? 17:35
PerlJam goes to read the diff
colomon TimToady: I already removed the +2-3i literal form in Rakudo -- it was causing problems with expressions like -2+3i.
k23z__ why don't you guys move to github ? is Rakudo so big that it won't fit 200mb ? 17:37
at least in sources if not builds
PerlJam k23z__: what are you talking about? Rakudo is on github 17:38
colomon Rakudo is on github.
PerlJam k23z__: if you're referring to pugs, there's some other advantages to keeping things as they are.
k23z__ I didn't know
no no,I'm not refering to pugs
sorry for my lack of knowledge .. 17:39
PerlJam k23z__: rakudo.org/how-to-get-rakudo
k23z__ do you guys have a permutation class , like this one on Perl6 ? If no, I'm offering to port my code to Perl6 search.cpan.org/~wsdookadr/CM-Permu...utation.pm 17:41
17:42 ive joined
PerlJam k23z__: you don't need our permission or blessing to do that :) 17:43
k23z__ yes but would there be anyone to help ? 17:46
PerlJam k23z__: #perl6 is always here to help with Perl 6 stuff. Like any other channel on IRC, it's just a matter of catching the right people at the right time.
k23z__ one more question , I am banned permanently from #perl , does that mean I'll be banned on #perl6 also ? 17:47
takadonet k23z__: no 17:48
PerlJam k23z__: #perl6 operates independantly from #perl. 17:49
k23z__: but ... why were you banned from #perl and who banned you?
(getting permabanned from freenode #perl is highly unusual) 17:50
k23z__ mst and apeiron , I wasn't actually aware that their click practically owns Perl5 , I had some problems with mst and got banned permanently
m-locks there are no ops there currently
k23z__ what can I say ,I'm an unusual person ..
m-locks: yes there are, they just don't put the @ ..
PerlJam k23z__: are you *sure* it's a permaban? 17:51
k23z__ PerlJam: 101%
m-locks k23z__: umm i thought that was not possible
k23z__ m-locks: what was not possible ?
m-locks it says in the list of nick that 0 ops
17:52 meppl joined
m-locks to be a channel operator without others seeing it 17:52
k23z__ m-locks: check /bans , I'm there
anyway going outside
for a stroll
m-locks aye
17:54 ive left 17:59 dakkar left, justatheory left
colomon rakudo: ((1...*) Z (10 ... 1)).batch(20).perl.say 18:04
p6eval rakudo 4edd19: OUTPUT«(1, 10, 2, 9, 3, 8, 4, 7, 5, 6, 6, 5, 7, 4, 8, 3, 9, 2, 10, 1)␤» 18:05
colomon rakudo: ((1...*) Z (10 ... 1)).batch(40).perl.say
p6eval rakudo 4edd19: OUTPUT«(1, 10, 2, 9, 3, 8, 4, 7, 5, 6, 6, 5, 7, 4, 8, 3, 9, 2, 10, 1)␤»
colomon that seems fine...
18:05 astrojp left
colomon but I can duplicate SF's bad results locally. 18:11
rakudo: ((3, 6 ... *) Z (4, 8 ... *)).batch(20).perl.say 18:12
p6eval rakudo 4edd19: OUTPUT«(4, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60, 64, 68, 72, 76)␤»
colomon ooooh, there you go.
Can't have two instances of the same gather operating at the same time, maybe? 18:13
PerlJam likely
colomon rakudo: my $a = (3, 6 ... *).iterator; my $b = (4, 8 ... *).iterator; say $a.get; say $b.get; say $a.get; say $b.get; 18:14
p6eval rakudo 4edd19: OUTPUT«4␤4␤8␤12␤»
colomon Yup, that's it.
18:16 pnate left
colomon Weird that the 4 appears twice 18:16
18:19 rgrau joined
diakopter m-locks: those in the channel operator list can issue channel commands through chanserv 18:20
18:20 pnate joined 18:21 justatheory joined
m-locks diakopter: oh ok 18:22
18:28 Chillance joined
k23z__ colomon: it's nice that rakudo understands that a...b with a>b means reverse(a..b) 18:31
would it be easy to translate parrot code to native assembly ? 18:32
err , ah I forgot parrot is a vm for dynamic languages ...
the answer is no right ?
18:35 dan_linder1 left
k23z__ what is the intended purpose for Perl6 in the light that Perl5 was mainly used for webdevelopment and automating stuff ( although I use it for completely other purposes ) 18:45
?
I mean, will Perl6 be a web development language ? ? 18:46
diakopter general purpose programming language, like Perl 5
18:49 kfo left 18:51 kfo joined 18:57 khet joined, khet left 18:58 Toony left
k23z__ I just read masak's description of a debugger github.com/masak/tardis/blob/master/docs/theory 19:03
is this just for the tardis debugger or for debuggers in general ? 19:04
"When the debugger is run, it sits collecting all possible states from all the"
ticks, and then upon completion spits out "Done. 49367 ticks."
The user can then browse through ticks 0..49366 in various intelligent ways.
colomon That's just his idea of how Tardis should run.
k23z__ ah yes I understand 19:05
this Tardis cannot take account for user input
for for some blocking input source for that matter ...
19:07 nihiliad left, nihiliad joined
k23z__ hmm, on a second thought I think it can, if it does what Masak says until user-input and afterwards stop and accepts the user input then does what Masak says again .. 19:10
19:14 kaare_ joined, jonasbn joined 19:22 kaare_ left 19:23 k23z__ left, k23z__ joined 19:29 ruoso left 19:30 ignacio_ left 19:37 meppl left
pugssvn r29932 | lwall++ | [STD] remove 1/2 and -1+3i literal forms 19:40
k23z__ err, can I have hosting for a project ? 19:42
colomon k23z__: why not use github?
19:46 ignacio_ joined, ruoso joined
k23z__ github is not enough 19:47
Tene What kind of hosting do you want, for what kind of project, and what do you need that github does not provide? 19:48
k23z__ enough space ?
ssh access
with perl6 on it 19:49
and perl5
and git
PerlJam Hmm.
k23z__ that would be enough :)
PerlJam You could ask Juerd for a feather account.
Tene that's asking for a shell server, not a repository hosting.
juerd offers that on feather. you should contact him.
PerlJam But if you're just going to fill up the disk or other such nonsense, don't bother
19:50 ash_ joined
k23z__ fill up with what ? this is strictly for a project, I have storage space 19:50
I would need cycles however ..
PerlJam k23z__: well, ask Juerd and see what happens.
19:51 justatheory left
ash_ so... i have a question about the most recent pugs-svn commit, to the spec, regarding rationals and 1+3i style literals... does that mean writing 1/2 is not 'the right way' to do it anymore? doing <1/2> is now the correct way to write all rationals? 19:52
was this because / is confusing to figure out where its a division and where its a fraction/rational? 19:53
and by most recent pugs commit, i mean r29931 (it might not be the most recent anymore)
colomon I think the problem was that 1/7/7/7/7/7 example.
ash_ yeah, just glancing at that looks confusing to me 19:54
colomon you expect it to be 1 divided by 7 divided by 7....
but I think it was probably parsing (1/7)/(7/7)/(7/7) or something like that.
19:54 Khisanth left
colomon You can still say 1 / 7 by saying 1 / 7. 19:55
It's just now it fits better.
Or to work with the example that I know was happening (because I fixed it in Rakudo).
-3+2i was parsing as -(3+2i) because 3+2i was a complex literal. 19:56
19:56 airbase left
ash_ gotya, cool 19:56
colomon I discovered it because it made a couple of tests blow up.
ash_ so basically those old forms left room for mis-interpretation
19:57 athenot left
TimToady phone 20:01
20:01 TiMBuS joined
ash_ is it x or :x for file tests? 20:06
colomon should be :x, right? (I get smiley interference on this subject...() 20:07
TimToady $x ~~ :x translates to "so $x.x" 20:08
20:09 athenot joined
ash_ oh, okay, i thought $obj ~~ :x would translate to $obj.:x 20:09
20:10 Khisanth joined
ash_ colomon: if you go to preferences (⌘ + , ), then go to appearance and you can set Emoticons to show as text instead of images 20:12
20:12 riffraff left
colomon ash_: usually I like them as images... ;) 20:13
ash_ ah, well thats fine, just thought i'd let you know
20:15 pnate left 20:20 pnate joined
colomon ash_++ 20:21
20:22 szabgabx joined
ash_ i am updating my perl 6 presentation for an ACM presentation later this month, anyone have any suggestions for stuff to highlight? 20:23
20:25 SmokeMachine left, uniejo joined
colomon what sort of thing are you looking for? 20:26
ash_ not sure, just interesting things about perl 6 i might of missed in my current presentation
i go over multi-methods, custom operators, grammars, classes and roles
colomon meta operators? 20:27
laziness?
ash_ ah, laziness would be good to talk about
PerlJam laziness is pervasive in Perl 6.
to not talk about it would be a disservice to your audience :)
ash_ ya, i'll be sure to mention it 20:28
colomon PerlJam: especially implementor laziness.... ;)
Tene you'd have to be pretty lazy not to talk about it. 20:30
ash_ one of my examples is one i saw on moritz_++'s blog, the postfix:<!>, since i get to talk about custom operators and a cool way of implementing it with [*] 1...$b 20:38
i guess thats not working yet in master rakudo yet 20:39
alpha: say [+] 1..3;
p6eval alpha 30e0ed: OUTPUT«6␤»
ash_ rakudo: say [+] 1..3;
p6eval rakudo 4edd19: OUTPUT«Confused at line 11, near "say [+] 1."␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
colomon ash_: right, no user-defined operators or meta-operators in master yet. 20:43
(You can overloading existing operators, but you cannot create new ones.) 20:44
ash_ sad day, i won't tell them about that bit, i am sure they will come back eventually
colomon I wouldn't be surprised if a lot of that stuff will be back in the next couple of weeks.
diakopter Outlook autocorrects "typoed" to "typed". oh, the irony.
20:48 payload left 20:51 payload joined, pnate left 20:56 xomas joined, ruoso left 21:02 pjcj joined 21:04 payload1 joined 21:05 hicx174 left 21:06 sbp joined, nsh_ joined 21:07 payload1 left 21:08 payload1 joined, payload left 21:09 pmurias left 21:10 pmurias joined
ash_ hmmm so prefix seems to be working, but postfix custom ops dont 21:11
rakudo: sub prefix:<!> ($a) { say $a; }; &prefix:<!>(4); !4;
p6eval rakudo 4edd19: OUTPUT«4␤4␤»
ash_ rakudo: sub postfix:<!> ($a) { say $a; }; &postfix:<!>(4); 4!;
p6eval rakudo 4edd19: OUTPUT«Confused at line 11, near "4!;"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
ash_ thats interesting
21:13 justatheory joined
colomon ash_: there already is a prefix:<!> in the grammar. There is no postfix:<!> in the grammar. 21:14
That's the difference you're seeing.
ash_ ah, my bad, prefix:<!> is not, completely forgot about that 21:15
21:25 nihiliad left, nihiliad joined 21:29 uniejo left 21:34 Trashlord left 21:38 payload1 left
m-locks Q: Was ist paradox an der Analysis? 21:39
A: Man faltet, um zu gl􏿽xE4tten...
21:41 ignacio_ left, payload joined 21:49 newbie joined, newbie is now known as jaffa4
jaffa4 !seen diakoper 21:49
!seen diakopter 21:50
21:52 jonasbn left 21:57 athenot_ joined, athenot left, athenot_ is now known as athenot, xabbu42 left
lichtkind moritz_: ping 22:01
moritz_: your link to me on your site is broken: wiki.perl-community.de/Wissensbasis/Perl6Tafel 22:04
22:16 Su-Shee left 22:21 athenot left 22:24 payload left 22:28 parrot joined 22:40 meppl joined 22:59 payload joined, payload left, payload joined 23:00 lestrrat is now known as lest_away 23:05 lue joined
lue hello! 23:05
23:10 pmurias left, jaffa4 left
colomon o/ 23:11
lue o/ 23:12
(reading the logs; noone's talked for about an hour o.o )
lue will be working on file tests whilst hoping someone's really here 23:24
ash_ *crickets*
23:24 markjreed joined
lue perks his ears 23:26
markjreed rakudo: for { a=>1, b=>2 } { say "{$^p.key} {$^p.value}" } 23:27
p6eval rakudo 4edd19: OUTPUT«Lexical '$p' not found␤current instr.: '_block65' pc 552 (EVAL_1:217)␤»
23:27 TiMBuS left
markjreed alpha: for { a=>1, b=>2 } { say "{$^p.key} {$^p.value}" } 23:27
p6eval alpha 30e0ed: ( no output )
ash_ rakudo: for { a => 1, b => 2 } { say $_.key, $_.value } 23:28
p6eval rakudo 4edd19: OUTPUT«Method 'key' not found for invocant of class ''␤current instr.: '_block55' pc 400 (EVAL_1:153)␤»
markjreed alpha: for { a=>1, b=>2 } { say "{$_.key}:{$_.value}" }
ash_ rakudo: for { a => 1, b => 2 } { say $_ }
p6eval alpha 30e0ed: ( no output ) 23:29
rakudo 4edd19: OUTPUT«a 1␤b 2␤␤»
ash_ rakudo: for { a => 1, b => 2 } { say $_.WHAT }
p6eval rakudo 4edd19: OUTPUT«Hash()␤»
TimToady you can't use $^a or $_ inside inner {}s
ash_ rakudo: for { a => 1, b => 2 } { say $_.keys, $_.values }
p6eval rakudo 4edd19: OUTPUT«ab␤»
23:30 cotto_working left
markjreed I thought you explicitly could with $_… 23:30
TimToady the $^p is scoped to the {} inside, but you're trying to get to the loop param, which is the outer {} 23:31
markjreed so if you want to interpolate expressions, you have to use explicit parameters.
Yes, that makes sense for the positionals. But I thought $_ was explicitly available to inner blocks.
s/positionals/placeholders/
TimToady rakudo: for { a=>1, b=>2 }.pairs -> $p { say "{$p.key} {$p.value}" }
p6eval rakudo 4edd19: OUTPUT«b 2␤a 1␤» 23:32
TimToady also, a {} hash literal will only make one term in a list
hence the .pairs
23:34 ihrd joined, ihrd left
markjreed right, sorry, I was doing it with a my var locally. 23:35
rakudo: for { a=>1, b=>2}.pairs { say "{$_.key}:{$_.value}" } 23:36
p6eval rakudo 4edd19: OUTPUT«a:1␤b:2␤»
markjreed that's what I thought. works for $_
lue rakudo: say '/etc/passwd'.e
p6eval rakudo 4edd19: OUTPUT«1␤»
23:37 parrot left
TimToady yes, $_ is really OUTER::<$_> since there's no parameter 23:39
so that's okay
23:41 xomas left 23:42 cotto_working joined
lue rakudo: '/etc/passwd'.s 23:42
p6eval rakudo 4edd19: ( no output )
lue rakudo: say '/etc/passwd'.s
p6eval rakudo 4edd19: OUTPUT«813␤» 23:43
lue rakudo: say '/etc/passwd'.s ~~ 813
p6eval rakudo 4edd19: OUTPUT«1␤»
23:47 athenot joined 23:49 mssm joined
pugssvn r29933 | lue++ | [t/spec] an empty file for file-test.t 23:49
r29934 | lue++ | [t/spec] a test file for file-test.t 23:50
r29935 | lue++ | [t/spec] file-test.t for file tests
lue what is the 'first block' of a file? (I'm going to learn a lot about files when I'm done :D ) 23:56
TimToady context? 23:58
markjreed files are stored on disk in blocks...
typically each block is 512 bytes
TimToady ah, you're perhaps thinking about -T and -B from p5 23:59
lue yes, I am
:T and :B in P6 :)