»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
00:03 filly left 00:17 autumn left 00:19 Timbus joined 00:22 autumn joined 00:30 robins is now known as robinsmidsrod 00:39 autumn left 00:41 autumn joined 00:43 smls left 01:13 hoverboard joined 01:34 dayangkun joined 01:43 xenoterracide left 01:49 xenoterracide joined 02:13 hoverboard is now known as filthyphil 02:14 filthyphil is now known as hoverboard
japhb preflex: ask Timbus Do you mind if I tell dalek about Net--IRC? 02:15
preflex Consider it noted.
japhb hugme: help 02:18
hugme japhb: (add $who to $project | list projects | show $project | hug $nickname | tweet $twittername $message )
japhb Weird, hugme doesn't respond to private messages
hugme: list projects 02:19
hugme japhb: I know about Math-Model, Math-RungeKutta, MiniDBI, bench-scripts, book, gge, hugme, ilbot, java2perl6, json, modules.perl6.org, november, nqp-rx, nqpbook, perl6, perl6-examples, perl6-wtop, proto, rakudo, star, svg-matchdumper, svg-plot, tardis, try.rakudo.org, tufte, ufo, web, yapsi
02:22 colomon left 02:23 colomon joined
Timbus japhb, go for it 02:23
preflex Timbus: you have 1 new message. '/msg preflex messages' to read it.
Timbus although i didnt think there'd be that many commits 02:24
02:27 xenoterracide left 02:28 lue left
japhb I'm full of surprises. ;-) 02:28
colomon labster: just sent you a pull request 02:33
dalek t--IRC: 66bf7f8 | (Geoffrey Broadwell)++ | lib/Net/IRC/Modules/ACME.pm:
More ACME module fun: botsnack, rot13, and 8ball improvements

  * Add a Botsnack module (and botsnack command) to accept yummy botsnacks
  * Add a Rot13 module (and rot13 command) to (de)obfuscate ASCII text
  * Clean up 8ball responses slightly and convert 8ball to a standard command
02:37
Timbus for a second i thought you edited my 8ball reply list 02:38
japhb Just fixed .. -> ... and similar on a couple. Same intent. Same negativity. ;-) 02:41
japhb starts implementing 'hug' as a counterpoint.
02:42 lue joined
dalek t--IRC: 7ffdf6d | (Geoffrey Broadwell)++ | lib/Net/IRC/Modules/ACME.pm:
Add an ACME::Hug class, like (the whimsical part of) moritz++'s hugme bot
02:56
japhb karma and factoids might be fun too ... 02:57
Timbus man im not allowed to toot my own horn but because you added the command role, i now can
i like how easy stuff is to add to this bot 02:58
i lik ehow easy it is, to add stuff to this bot*
better
also if you have any ideas for tying threads into it, id love to help (because it has been my blocker for the past.. 2 years?) 02:59
i also wanted an admin commands module for eg, reconnect, disconnect things. 03:00
related to both of the above, i also wanted to add commands from the console 03:01
labster merged. Thanks, colomon! 03:06
colomon labster++
labster One of these days, I need to get back to writing Perl 6. Probably by decrufting all my modules. 03:07
03:08 kurahaupo_mobile joined
colomon labster: File::Find::Duplicates and IO::Path::More are both failing at the moment... 03:10
labster yeah... yeah.
colomon also File::Directory::Tree and File::Spec::Case
May be only very small changes needed, both the modules I fixed today needed only one-line fixes. 03:11
labster Well, I have a friend visiting from Alaska right now, but maybe later tonight. 03:12
03:15 xenoterracide joined 03:16 benabik left
colomon File::Spec::Case may require more changes... 03:26
===SORRY!=== 03:31
No such method 'rxtype' for invocant of type 'NQPMu'
(that's in File::Spec)
03:32 MikeFair_ joined 03:47 logie joined 03:51 daniel-s_ left 03:53 logie left 04:02 yeltzooo joined, daniel-s_ joined 04:08 daniel-s_ left, davercc left 04:10 davercc joined 04:11 PZt left
japhb Timbus: I've been vaguely thinking about admin commands too, but hadn't quite decided how to implement that. The idea of console commands (which is to say, an I/O path separate from the IRC server connection) definitely informs the concurrency design -- and a few other bits as well. 04:23
And yeah, it's definitely getting easy to add stuff. Very good for just adding a random feature for the -Ofun of it. :-) 04:24
Timbus: For the concurrent version, do you want to support non-concurrent or not-current-spec-concurrency implementations (rakudo-parrot, niecza, pugs), or just focus on current-spec-concurrency compilers (rakudo-jvm and rakudo-moar, when it's ready)? 04:29
Dropping back compatibility will be a lot cleaner, but it rules out the currently most common implementation, rakudo-parrot. 04:30
lue japhb: I predict -parrot is still the most used just because -moar isn't ready yet. 04:31
04:31 cognominal left
japhb lue: I would certainly agree. But that doesn't change the current situation, because there are people that refuse to use JVM, and without rakudo-moar, we would be effectively leaving that group in the cold until rakudo-moar is up to speed. 04:33
lue yeah :/ I was just mentioning that r-p won't be an issue forever (nor, hopefully, much longer) 04:34
japhb is more pragmatic than that, but I understand the reasoning.
:-)
lue japhb: maybe you could utilize some sort of $*MAX_THREADS variable to deal with r-p ? :) 04:38
japhb lue: I'm not sure it would work at *all* on r-p, even with threads limited to 1. 04:42
04:42 davercc left
japhb I think the implementation is backend-specific, so the necessary classes don't even exist on r-p. 04:42
04:43 davercc joined
japhb (I talked with jnthn++ about emulating on r-p at one point, but he was busy with way cooler stuff :-) 04:43
lue ? I'd've thought r-p would at least not parsefail on threads stuff. MAX_THREADS or CAN_THREADS would be a way to block off threads code during runtime. 04:44
04:46 preflex_ joined, ChanServ sets mode: +v preflex_, preflex left 04:47 preflex_ is now known as preflex
japhb lue: Sure, but I'm trying to avoid two implementations of all the common code .... 04:50
04:50 skids left
lue If r-m were just a *little* further along, I'd suggest forgetting about parrot. But we're not quite there yet :/ 04:51
04:51 skids joined
japhb Exactly 04:52
04:57 skids left
japhb Come to think of it, it's probably best to do the concurrency work in a branch anyway, because if we're going to collaborate to get it done the code will be non-functional for a while. So we can do concurrent-only code in the branch and just not merge back to master until it's agreed to do so 04:57
lue that would be the best thing to do, aside from just waiting to do it :) 05:05
05:19 PZt joined 05:38 dayangkun left 05:41 BenGoldberg left 05:42 xenoterracide left 05:52 araujo left 05:53 SamuraiJack_ joined 06:10 davercc left, davercc joined 06:38 logie joined 06:53 darutoko joined 07:01 dayangkun joined
moritz std: s/$// 07:23
camelia std 4731beb: OUTPUT«ok 00:01 122m␤»
07:26 logie left 07:30 kurahaupo_mobile left
lue moritz: shouldn't std be doing LTM though, and prefer $/ over $ ? :P 07:32
moritz lue: I think it special-cases that somehow 07:34
07:52 kaleem joined, kaleem left
dalek t--IRC: dad3dd5 | (Geoffrey Broadwell)++ | docs/overview.pod:
Add a docs/ directory and a design overview document
08:00
hoelzro_ morning #perl6! 08:01
08:01 hoelzro_ is now known as hoelzro
Timbus japhb, id just branch the non-concurrency version and put concurrency in the main. i doubt anyone would mind 08:03
08:05 ivanshmakov left
Timbus japhb, for admin commands, i figured you could declare a special type of module. one that would be passed the ::Bot object 08:06
08:06 ivanshmakov joined
Timbus would need some kind of auth system though 08:06
as little as possible in the core
08:07 SamuraiJack_ left 08:08 xenoterracide joined 08:28 spider-mario joined 08:40 fhelmberger joined 08:42 kaleem joined 08:55 xenoterracide left 09:09 darutoko left, darutoko joined 09:14 bbkr joined 09:15 MikeFair_ left 09:16 araujo joined, fhelmberger left 09:18 bbkr left 09:21 dmol joined 09:25 xinming joined 09:28 xinming_ left
masak 'antenoon, #perl6 09:44
moritz \o * 09:45
09:51 grondilu joined
FROGGS o/ 09:53
grondilu Hello #perl6. I was thinking about rosettacode.org/wiki/IBAN#Perl_6, and I thought it'd be nice if we could have an implicit match against $_ while evaluating subsets in boolean context. In this example, we could have written IBAN ?? 'valid' !! 'invalid' instead of $_ ~~ IBAN ?? 'valid' !! 'invalid'
do you think it'd be too much magic?
09:54 SamuraiJack_ joined
grondilu honestly I doubt evaluating a subset in boolean context could mean anything else. 09:54
though frankly, I even wonder if that could not be also true with any class 09:56
r: $_ = 7; say so Int; say so Num 09:57
moritz sounds like too much magic for my taste
camelia rakudo-parrot 174727, rakudo-jvm 174727: OUTPUT«False␤False␤»
moritz then people will wonder why my $x = 'IBAN'; $x ?? a !! b; behaves different 09:58
FROGGS my Int $x; say so $x # would match against $_, which is not what you want there 09:59
grondilu hum yeah indeed 10:00
masak .&IBAN 10:01
grondilu r: subset Even of Int where * %% 2; say .&Even given 42 10:02
camelia rakudo-jvm 174727: OUTPUT«===SORRY!=== Error while compiling /tmp/mXhhdAfyZz␤Undeclared name:␤ &Even used at line 1. Did you mean 'Even'?␤␤»
..rakudo-parrot 174727: OUTPUT«===SORRY!=== Error while compiling /tmp/mAStYUCtSz␤Undeclared name:␤ &Even used at line 1. Did you mean 'Even'?␤␤»
10:02 [Sno] left
nwc10 r: say $*CWD 10:03
camelia rakudo-jvm 174727: OUTPUT«IO::Path</home/p6eval_eval>␤»
..rakudo-parrot 174727: OUTPUT«IO::Path</home/p6eval>␤»
10:03 [Sno] joined
nwc10 interesting that they differ 10:03
I wonder - would it be useful/possible to put the test script in a freshly created temp dir, make that cwd, and hence give the same leafname to all the Rakudos
so that error messages like that one would (or at least should) fold 10:04
or is that a lot of work for little gain?
10:08 kaleem left 10:09 kaleem joined, kaleem left
masak grondilu: oh, subsets. no, that won't work. 10:09
there is no &Even, just Even. 10:10
personally, I think smartmatching shouldn't be shoved further into the language.
it's nice and all, but there are already a couple ways to get at it, and that feels enough to me. 10:11
grondilu ok
10:19 dayangkun left 10:29 kaleem joined 10:32 dayangkun joined 10:41 pochi joined 10:45 dayangkun left, pochi left 10:46 pochi joined 10:55 pochi left 10:57 pochi joined 11:14 kivutar joined 11:21 logie joined 11:26 logie left 11:44 sitaktif joined 11:59 kivutar left 12:00 davercc` joined 12:02 nebuchad` joined, [particle] joined 12:03 nebuchadnezzar left, nebuchad` is now known as nebuchadnezzar 12:05 awwaiid_ joined, cooper_ joined, nwc10_ joined, broquain1 joined 12:06 clsn__ joined, ingy1 joined, markov left, [particle]1 left, davercc left, cooper left, ingy left, nwc10 left 12:07 broquaint left, lestrrat joined, cooper_ is now known as cooper 12:08 ponbiki left, cooper left, cooper joined, markov joined 12:10 ponbiki joined, ponbiki is now known as Guest24869 12:11 davercc`` joined 12:13 rindolf joined 12:15 davercc` left 12:19 sftp left, sftp joined 12:27 pat_js joined 12:28 nwc10_ is now known as nwc10 12:35 broquain1 is now known as broquaint 12:48 hoverboard left 13:05 zakharyas joined 13:20 darutoko left 13:22 pat_js left 13:23 cognominal joined
masak r: subset Even of Any where { $_ %% 2 }; sub Even { $^n ~~ Even }; say .&Even given 42 13:33
camelia rakudo-parrot 174727, rakudo-jvm 174727: OUTPUT«True␤»
masak \o/
13:34 dayangkun joined 13:35 psch joined 13:39 daniel-s_ joined, djanatyn left, djanatyn joined, kaleem left 13:42 zakharyas left
grondilu wonders what rule allows the distinction of the two meanings of Even in sub Even { $^n ~~ Even } 13:42
moritz S02 has them all, iirc 13:43
13:44 ajr joined 13:45 ajr is now known as Guest11251, Guest11251 is now known as ajr_ 13:56 darutoko joined 14:07 daniel-s_ left 14:11 SamuraiJack_ left 14:12 aindilis left, aindilis joined 14:27 thou joined 14:35 skids joined 14:43 raiph joined 14:44 eternaleye left 14:45 psch left 14:50 eternaleye joined 14:51 pat_js joined 14:54 psch joined 14:59 smls joined 15:02 logie joined
dalek ecs: 7687eca | (Tim Smith)++ | S32-setting-library/Exception.pod:
Correct last-modified date
15:03
15:05 btyler joined 15:10 psch left
timotimo r: sub scarysmart(Mu \checker, \t, \f) 15:11
camelia rakudo-parrot 174727: OUTPUT«===SORRY!=== Error while compiling /tmp/BKXbrK9uSb␤Missing block␤at /tmp/BKXbrK9uSb:1␤------> sub scarysmart(Mu \checker, \t, \f)⏏<EOL>␤ expecting any of:␤ new term to be defined␤ constr…»
..rakudo-jvm 174727: OUTPUT«===SORRY!=== Error while compiling /tmp/2ErDGzLZzi␤Missing block␤at /tmp/2ErDGzLZzi:1␤------> sub scarysmart(Mu \checker, \t, \f)⏏<EOL>␤ expecting any of:␤ new term to be defined␤ constrain…»
timotimo er ...
r: sub scarysmart(Mu \checker, \t, \f) { OUTER::$_ ~~ checker ?? t !! f }; subset Even of Int where * %% 2; given 10 { say Even.&scarysmart: "yes", "no" }; given 11 { say Even.&scarysmart: "yes", "no" } 15:13
camelia rakudo-parrot 174727: OUTPUT«===SORRY!=== Error while compiling /tmp/Miw3SA6E92␤Two terms in a row␤at /tmp/Miw3SA6E92:1␤------> carysmart(Mu \checker, \t, \f) { OUTER::⏏$_ ~~ checker ?? t !! f }; subset Even o␤ expecting any of:␤ …»
..rakudo-jvm 174727: OUTPUT«===SORRY!=== Error while compiling /tmp/ZSTG_StVZZ␤Two terms in a row␤at /tmp/ZSTG_StVZZ:1␤------> carysmart(Mu \checker, \t, \f) { OUTER::⏏$_ ~~ checker ?? t !! f }; subset Even o␤ expecting any of:␤ …»
timotimo r: sub scarysmart(Mu \checker, \t, \f) { $OUTER::_ ~~ checker ?? t !! f }; subset Even of Int where * %% 2; given 10 { say Even.&scarysmart: "yes", "no" }; given 11 { say Even.&scarysmart: "yes", "no" }
camelia rakudo-parrot 174727, rakudo-jvm 174727: OUTPUT«no␤no␤»
timotimo oops?
oh well.
15:15 psch joined 15:34 jnap joined 15:49 smls left 15:50 zakharyas joined, smls joined, jnthn left, jnthn joined 15:51 avar left 15:52 avar joined
smls r: my $foo; say (defined $foo ?? 'a' !! 'b'); 15:57
camelia rakudo-parrot 174727, rakudo-jvm 174727: OUTPUT«True␤»
smls Why does 'defined' have such loose precedence? 15:58
15:58 SamuraiJack_ joined
timotimo because it's a word and wordy operators tend to do that 16:02
compare || and or
if you need a bit tighter preference, try //
(which also thunks the RHS)
16:02 mtk left 16:03 colomon left, colomon joined
masak smls: it's kind of a "no exceptions" policy for listops. 16:13
smls: &defined is special-treated in Perl 5, but not in Perl 6. 16:14
smls I see
masak it's a trade-off like everything else.
smls I guess it just feels weird to me because I'm used to Perl 5... :) 16:15
masak Perl 6: fewer exceptions. it feels weird, at first ;) 16:16
FROGGS you can still use the method form to glue it to $foo :o)
masak oh, that's troo too :)
FROGGS++ # excellent rationalization ;) 16:17
smls Speaking of the ternary operator, I wish there was a binary version of it which automatically "does the right thing" for the false condition without requiring me to explicitly specify it:
my $text = $summary ~ (%opt<verbose> ?? $explanation) ~ $footer;
masak there is. it's called infix:<||>
smls I meant, if used in a string concatenation it would return the empty string if the condition is False, when used in a numeric additon it would return 0, etc. 16:21
|| doesn't do that afaict 16:23
masak oh, I use 'if' for that.
lemme show you.
r: for "foo", "", "bar" { say "ha", ($_ if $_), "ha"! }
camelia rakudo-jvm 174727: OUTPUT«===SORRY!=== Error while compiling /tmp/_tEV_Q2p0U␤Negation metaoperator not followed by valid infix␤at /tmp/_tEV_Q2p0U:1␤------> "", "bar" { say "ha", ($_ if $_), "ha"!⏏ }␤ expecting any of:␤ post…»
..rakudo-parrot 174727: OUTPUT«===SORRY!=== Error while compiling /tmp/MMse73Ctrs␤Negation metaoperator not followed by valid infix␤at /tmp/MMse73Ctrs:1␤------> "", "bar" { say "ha", ($_ if $_), "ha"!⏏ }␤ expecting any of:␤ p…»
masak r: for "foo", "", "bar" { say "ha", ($_ if $_), "ha!" } 16:24
camelia rakudo-parrot 174727, rakudo-jvm 174727: OUTPUT«hafooha!␤haNilha!␤habarha!␤»
masak er.
ok, Nil. not good.
that used to work...
r: for "foo", "", "bar" { say "ha", list($_ if $_), "ha!" }
camelia rakudo-jvm 174727: OUTPUT«===SORRY!=== Error while compiling /tmp/8lVTFg_Nwi␤Unable to parse expression in argument list; couldn't find final ')' ␤at /tmp/8lVTFg_Nwi:1␤------> or "foo", "", "bar" { say "ha", list($_ ⏏if $_), "ha!" }␤ …»
..rakudo-parrot 174727: OUTPUT«===SORRY!=== Error while compiling /tmp/r4t0N2Dnmq␤Unable to parse expression in argument list; couldn't find final ')' ␤at /tmp/r4t0N2Dnmq:1␤------> or "foo", "", "bar" { say "ha", list($_ ⏏if $_), "ha!" }␤…»
masak gives up 16:25
FROGGS p: for "", "Fluss" { say "{$_}pferd" }
camelia rakudo-parrot 174727: OUTPUT«pferd␤Flusspferd␤»
FROGGS p: for "", "Fluss" { say $_, "pferd" }
camelia rakudo-parrot 174727: OUTPUT«pferd␤Flusspferd␤»
FROGGS w/e
16:27 mtk joined
smls r: for 0, 1 -> $verbose { say 'Foo' ~ ('Bar' if $verbose) ~ 'Baz'; } 16:31
camelia rakudo-parrot 174727, rakudo-jvm 174727: OUTPUT«FooBaz␤FooBarBaz␤»
smls masak: it seems to work after all :)
timotimo masak: i think it either used to return () or Nil used to flatten to nothing or so 16:33
smls r: for False, True { say 2 * (3 if $_) * 5; } 16:38
camelia rakudo-jvm 174727: OUTPUT«use of uninitialized value of type Nil in numeric context␤0␤30␤»
..rakudo-parrot 174727: OUTPUT«use of uninitialized value of type Nil in numeric context in block at /tmp/_0DQzUSvR2:1␤␤0␤30␤»
smls well, at least with string concatenation it works
psch r: for False, True { say [*] 2, (3 if $_), 5; } 16:39
camelia rakudo-parrot 174727, rakudo-jvm 174727: OUTPUT«10␤30␤»
16:41 colomon left 16:45 aenda joined 16:46 aenda left
masak smls: oh, I shoulda stringified. 16:47
smls: I did that first, but then I looked at the ~s and thought "useless use of string concat"
well, seems I got refucktor'd.
smls &print doesn't insert Nil in the output when using the comma separator, only &say 16:49
masak that's because &say uses .gist whereas &print uses .Str 16:51
:(
16:51 mtk left
smls Why does &say use .gist? 16:53
Is it meant as more of a debugging function, than for production use? 16:55
16:55 mtk joined
FROGGS smls: it is meant for human eyes, yes 16:56
17:15 colomon joined 17:19 V_S_C joined 17:22 V_S_C left 17:25 jnap left, jnap joined 17:44 ajr joined, ajr_ left, ajr is now known as Guest70161, Guest70161 is now known as ajr_ 18:04 thou left 18:05 xenoterracide joined
TimToady r: subset Even of Int where * %% 2; say .Even given 42 18:20
camelia rakudo-jvm 174727: OUTPUT«No such method 'Even' for invocant of type 'Int'␤ in block at /tmp/usYQwq7dw9:1␤␤»
..rakudo-parrot 174727: OUTPUT«No such method 'Even' for invocant of type 'Int'␤ in block at /tmp/x14V5IuTmE:1␤␤»
TimToady currently you can't use subset types as coercions
if we defined them as coercing to Bool, that would work
r: say .Int given 42.2; # we can already do this
camelia rakudo-parrot 174727, rakudo-jvm 174727: OUTPUT«42␤»
TimToady and then we automatically get the $_ matching with the . form 18:21
no special case, other than giving a meaning to subset coercion where it has none 18:22
then you can write if Even($x) {...}
arguably, coercions to boolean is precisely what subset types do anyway 18:23
timotimo at some point, we really need a tool that can answer "what does this refer to?" given a location in the code... to find out why that Even(...) causes a coercion
that's about right, yeah
18:26 bodegas joined 18:27 bodegas left 18:30 MikeFair_ joined 18:34 SamuraiJack_ left
dalek ecs: 143376c | larry++ | S12-objects.pod:
subset types coerce to Bool
18:35
TimToady grondilu: ^^ 18:36
18:38 rindolf left
TimToady moritz, lue: STD uses LTM to recognize $ as end-of-string by including the following character, which must match \s | '|' | '&' | ')' | ']' | '>' | $ | <.stopper> 18:45
and it wins the tiebreaker by being more derived
in the case of s/$//, we match / as a stopper 18:46
did anyone ever rakudobug the heredoc problem that deleted the \t instead of the whitespace? 18:47
dalek d: 09dda5b | larry++ | STD.pm6:
workaround bug with \h*? not deratcheting
18:49
18:50 ajr_ left
FROGGS TimToady: I did 18:52
TimToady thanks
18:53 abnorman left
FROGGS it deletes the whitespace but converts the \t too 18:53
TimToady senile old man is senile... 18:54
FROGGS :o)
TimToady r: for "foo", "", "bar" { say "ha", ($_ if $_), "ha!" } 19:00
19:00 darutoko left
camelia rakudo-parrot 174727, rakudo-jvm 174727: OUTPUT«hafooha!␤haNilha!␤habarha!␤» 19:00
TimToady r: for "foo", "", "bar" { say list "ha", ($_ if $_), "ha!" }
camelia rakudo-parrot 174727, rakudo-jvm 174727: OUTPUT«ha foo ha!␤ha ha!␤ha bar ha!␤»
TimToady the subtle thing here is that 'say' does not provide a list context
r: for "foo", "", "bar" { say list "ha", ($_ && $_), "ha!" }
camelia rakudo-parrot 174727, rakudo-jvm 174727: OUTPUT«ha foo ha!␤ha ha!␤ha bar ha!␤»
TimToady btw, '&&' is the exact equivalent of the desired "?? without a !!" here 19:01
19:01 thou joined
TimToady smls: ^^ 19:02
r: say ()
camelia rakudo-parrot 174727, rakudo-jvm 174727: OUTPUT«␤» 19:03
TimToady r: say (),()
camelia rakudo-parrot 174727, rakudo-jvm 174727: OUTPUT«␤»
FROGGS that is a feature I love so much here, and hate in PHP :o)
TimToady otoh, I'm not sure why it's producing a Nil there
FROGGS (the return-the-last-thing feature)
TimToady someone was asking about why we can't remove Iterator from Nil; maybe this is one of those spots where we're depending on Nil turning into () 19:04
whereas else-less if is supposed to return () directly, not via Nil 19:05
FROGGS timotimo was that
TimToady r: say (42 if 0).perl
camelia rakudo-parrot 174727, rakudo-jvm 174727: OUTPUT«Nil␤»
TimToady yeah, it's still depending on the old Nil behavior
so say emitting Nil there is a rakudobug despite the non-listiness 19:08
19:08 arnsholt joined
smls for False, True { say list "A", ($_ && 'B'), "C" } 19:10
r: for False, True { say list "A", ($_ && 'B'), "C" }
camelia rakudo-parrot 174727, rakudo-jvm 174727: OUTPUT«A False C␤A B C␤»
TimToady hmm
well, maybe I screwed that up :) 19:11
TimToady is confusing p5 with p6
in p5 '&&' and 'if' were equivalent, though they were both wrong :) 19:12
(from the standpoint of interpolating () into a list)
r: for False, True { say list "A", (if $_ {'B'}), "C" } 19:13
dalek ecs: 30dc175 | (Geoffrey Broadwell)++ | S12-objects.pod:
Fill in a missing word
camelia rakudo-parrot 174727, rakudo-jvm 174727: OUTPUT«A C␤A B C␤»
TimToady I guess you've gotta do it like that, if you want it in that order
I guess P5 compensated somewhat by defining false as '' 19:14
r: for False, True { say list "A", 'B' xx ?$_, "C" } 19:15
camelia rakudo-parrot 174727, rakudo-jvm 174727: OUTPUT«A C␤A B C␤»
TimToady another way to do it 19:16
well, don't need the ? there in this case
19:17 ajr joined, ajr is now known as Guest25927, Guest25927 is now known as ajr_
smls r: for False, True { say 100 + 10 * ?$_ + 1 } 19:21
camelia rakudo-parrot 174727, rakudo-jvm 174727: OUTPUT«101␤111␤»
smls ok, so that one can also be extended for use with other operators than comma 19:22
19:26 rindolf joined
TimToady sure, Perl has always felt quite strongly that booleans used as numbers should turn into 0 and 1 19:27
being allowed to use A as if it were a B is one of those tagmemics ideas from natural language 19:28
but it won't endear you to the strict type theorists :)
19:30 abnorman joined
geekosaur use Agda; ... 19:31
smls TimToady: Just out of interest, is there no generic way to create an 'identity' value? 19:33
So that « $val op $identity === $val » for all operators op and values $val?
That's what my imaginary "?? without !!" would return in case the condition evaluates as False
masak .oO( "Just out of the Internet" ) 19:34
timotimo i think fixing else-less if returning Nil should be an easy fix
masak smls: many operators have an identity, yes.
timotimo do we have some globally shared () instance?
masak smls: but I don't believe we ever made them (fully) introspectable.
smls: you can however query the ones we have by sending 0 arguments to them. 19:35
r: say [+]()
timotimo isn't that just what you get from ... yeah
camelia rakudo-parrot 174727, rakudo-jvm 174727: OUTPUT«0␤»
masak r: say [max]()
camelia rakudo-parrot 174727, rakudo-jvm 174727: OUTPUT«-Inf␤»
masak r: say [&&]()
camelia rakudo-parrot 174727, rakudo-jvm 174727: OUTPUT«True␤»
19:39 smls left 19:40 smls joined, xenoterracide left, zakharyas left
raydiak (?? without !!)++ 19:40
raiph irclog.perlgeek.de/perl6/2013-12-28#i_8047553 # masak? others? 19:41
19:41 denis_boyun joined 19:43 colomon left
timotimo locally, an else-less if will return () now. 19:44
19:45 colomon joined
timotimo there's many other things thar^Ht r^Htend to return Nil 19:46
just looking for Nil in Actions.nqp 19:47
19:56 zby_home_ joined 20:00 psch left 20:01 hoverboard joined 20:04 denis_boyun left
masak raiph: looking. 20:07
raiph masak: thx, "the plan" is prolly the main thing
20:08 rindolf left, Rotwang joined
masak raiph: I don't think "make Rakudo's sort work with X" on questhub is a brilliant way to suggest new behaviors. 20:10
maybe that's just me.
but Perl 6 is extensible enough that you could start doing this as a module, and then clamor for it being core/spec.
raiph masak: that's to match spec
masak oh 20:11
raiph the quest is to match spec
masak feels out of the loop
raiph: that's fine then.
raiph it's from 2004 :)
masak ignore my comment :)
raip++
raiph++
&
raiph thx
20:19 arnsholt_ joined, arnsholt_ left
timotimo ah damn 20:21
moritz timotimo: did you spectest your last rakudo commit?
timotimo there are else-less if branches in the setting before infix:<,> exists
which one was that? making nil give nil again for methods and postcircumfixes? 20:22
moritz timotimo: 'cause I get a few spectest failures that I'd attribute to your changes, not mine
timotimo: correct
timotimo oh? strange. i don't remember seeing any. can you gist them for me? 20:23
moritz timotimo: gist.github.com/moritz/fd32e69f882e88ef0759 20:24
timotimo: the one in misc.t might be new-ish
timotimo: but at least the topic.t failure looks like it might be related to Nil stuff 20:25
it calls .foo on an unset $_ and expects it to fial
*fail
well, die
timotimo running my own now 20:26
my net is very unreliable at the moment 20:27
moritz still at CCC?
timotimo heh, no. 20:28
on a train :)
japhb Timbus: re: irclog.perlgeek.de/perl6/2013-12-30#i_8051103 ... 1) Despite working for Goo-(Yeah, we develop everything at HEAD, what's your point?)-gle, I'm still more comfortable putting a big new restructuring in a branch; besides which, I will probably want to make little modules here and there as a mental break, and that should just go in master and get merged into the WIP. 20:29
20:29 zby_home_ left
japhb 2) Events now get a reference to the ::Bot object, which was necessary to support introspecting modules such as ::Help. So that's already dealt with. The more interesting point will be making updates to the ::Bot concurrency-safe. 20:30
3) Yeah, auth was a major mental cud I was chewing on. I notice that the POE-based Perl 5 IRC bot framework used by hugme allows you to introspect whether a nick has been authenticated by nickserv, so that might be worth looking into. 20:31
4) Yeah, I agree, as little as possible in core. Like Bloxsom, Net::IRC's core should mostly just be giving a common scaffolding to hang modules on. :-) 20:32
2a) Actually, a lot of what makes the concurrency work non-trivial is managing updates sanely without making a bunch of extra work for module authors or over-complicating the core. 20:33
dalek ast: 1cdd21a | moritz++ | S12-methods/topic.t:
make an unrelated test not rely on the absence of methods on Nil
20:36
timotimo i seem to be missing icu 20:40
TY, moritz 20:41
moritz that's just one of them :-) 20:42
timotimo it seems like i get the same failures as you do locally
plus icu failures
oh, huh 20:43
so $_ may need a new default value perhaps?
dalek ast: b56e374 | moritz++ | S02-literals/sub-calls.t:
make an unrelated test not rely on the absence of methods on Nil
20:46
moritz p: sub f() { }; f() = 3; say 'alive' 20:47
camelia rakudo-parrot 174727: OUTPUT«alive␤»
moritz that's a bit WTF-y 20:48
dalek ast: f3d506e | moritz++ | S32-exceptions/misc.t:
Make test a bit more reliable
20:49
timotimo r: ^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^Hi agree, moritz, it is 20:52
camelia rakudo-jvm 174727: OUTPUT«===SORRY!=== Error while compiling /tmp/W7H6r2jhH5␤Bogus statement␤at /tmp/W7H6r2jhH5:1␤------> <BOL>⏏^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^Hi agree, moritz, it is␤ expecting any of:␤ statement list␤ prefix or te…»
..rakudo-parrot 174727: OUTPUT«===SORRY!=== Error while compiling /tmp/TZNsEzHoR4␤Bogus statement␤at /tmp/TZNsEzHoR4:1␤------> <BOL>⏏^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^Hi agree, moritz, it is␤ expecting any of:␤ statement list␤ prefix or…»
timotimo .... 20:53
i may not get around to fixing the things today 20:54
moritz that should have fixed all the roast failures on rakudo-parrot 20:57
masak moritz++ 21:01
21:01 colomon left, colomon joined
dalek kudo-star-daily: b145799 | coke++ | log/ (5 files):
today (automated commit)
21:03
rl6-roast-data: 6a9874a | coke++ | / (6 files):
today (automated commit)
21:07 abnorman left 21:09 abnorman joined
japhb [Coke]: What's the current limitation for rakudo-moar; is it waiting on something fundamental like Test.pm? 21:13
FROGGS japhb: it has to built on his box
moritz compiling the setting reliably :-)
japhb ah, ouch. 21:14
moritz it still segfaults occasionally on my box
21:17 kivutar joined 21:19 hoverboard is now known as swaglyn 21:20 swaglyn is now known as hoverboard
timotimo the more optimize, the more segfault :P 21:20
21:22 hoverboard is now known as peanutbutter[_] 21:23 smls left 21:31 peanutbutter[_] is now known as hoverboard 21:37 pat_js left
dalek kudo/moar-support: a7d0609 | (Tobias Leich)++ | src/vm/moar/ModuleLoaderVMConfig.nqp:
push PREFIX/languages/perl6/lib to INC
21:45
kudo/moar_libpaths: 2393288 | (Tobias Leich)++ | tools/build/ (2 files):
pass several --libpath options
21:47
21:56 davercc`` left 21:57 BenGoldberg joined
[Coke] most recent build didn't even build nqp 21:57
I've had it build the setting, but segfault generating Test.pm. I've had it generate Test.pm, but have it fail to find the Test.moarvm file that was right there. 21:58
Pretty sure the max of 8 passing tests were ones that did a print "ok 1" manually.
japhb nodnod 21:59
dalek kudo/moar-support: 53d88fb | (Tobias Leich)++ | src/core/terms.pm:
use PREFIX for use in e.g. %*CUSTOM_LIB<perl>
kudo/moar_libpaths: 53d88fb | (Tobias Leich)++ | src/core/terms.pm:
use PREFIX for use in e.g. %*CUSTOM_LIB<perl>
22:00
kudo/moar_libpaths: 3fb7165 | (Tobias Leich)++ | src/core/terms.pm:
Merge branch 'moar-support' of github.com:rakudo/rakudo into moar_libpaths
22:00 MikeFair_ left 22:01 xenoterracide joined
btyler [Coke]: yeah, I've been trying to get rakudo to build with a moar backend every few days since I heard that 'hello world' had happened, but no joy yet. often due to being unable to find libs (sometimes images, sometimes .moarvm files) 22:02
masak should try to build Rakudo on Moar, too 22:03
lizmat quietly fades away
masak I guess I should try to build from the moar-supprt branch, huh? 22:04
FROGGS btyler: you are on a mac?
masak: yes
btyler FROGGS: yes
masak ok, it's a deal. :)
FROGGS masak: moarvm and nqp master
dagurval rj: say await start { fail "hello" } 22:05
camelia rakudo-jvm 174727: OUTPUT«Could not find symbol '&Return'␤ in method result at gen/jvm/CORE.setting:17253␤␤»
FROGGS masak: if you are going to do --gen-moar/--gen-nqp, pass =master to both
dagurval it's not ok to fail inside start?
masak FROGGS: oki 22:06
thank you.
dalek kudo/nom: 9487aba | moritz++ | / (3 files):
introduce EVAL

this mostly duplicates the code, because calling something that introspects its caller is a bit icky
22:07
btyler FROGGS: is there a known problem under OSX? I'm happy to be remote hands if I can help get the install process smoothed out 22:08
dalek t--IRC/concurrency: b465b82 | (Geoffrey Broadwell)++ | docs/concurrency.pod:
Concurrency doc, part 1: design constraint brain dump
22:08 dmol left 22:09 dmol joined
masak heh. I still haven't bought the arguments behind eval being so special it needs to be put on the same shelf as BEGIN and TOP. but other people seem to think it is, so... 22:09
22:09 dmol left
FROGGS btyler: I can't remember how the state is... but IIRC nwc is compiling (and debugging) it on a mac 22:10
masak buth BEGIN and TOP are all-caps because they are called *outside* of the normal control flow. &eval isn't.
japhb masak: It does, however, introduce a new compunit, which is rather special.
moritz also, it accesses lexicals without being subject to static analysis 22:11
FROGGS btyler: though it would help if you could paste gists (for building moarvm, nqp and rakudo)
btyler FROGGS: ok, happy to do so. 22:12
I'll start fresh
FROGGS btyler: thank you :o)
moritz has the impression that the NQP makefile for moarvm misses a few dependencies
masak japhb: yes, but so does 'use'. 22:13
moritz consistency would make use capitalize that also
FROGGS and REQUIRE 22:14
moritz but aesthetics contradicts
FROGGS and NEED
moritz NEED is actually more special than REQUIRE
wait, IMPORT is
FROGGS IF YOU SAY SO :o)
masak all I'm really getting from that discussion is "eval is so weird we should upper-case it".
FROGGS masak: that is my understanding
masak but again, I may have missed the finer points.
BenGoldberg Spelling use as USE would feel a little odd ;) 22:15
FROGGS .oO( maybe I should uppercase all my code? )
segomos_ why aren't you doing that already?
FROGGS maybe my code is not weird enough 22:16
dagurval you're code is pretty special :)
your*
masak BenGoldberg: spelling eval as EVAL will feel a little odd ;)
22:16 thou left
segomos_ perl6 should be case insensitive 22:16
moritz it feels a bit uc
BenGoldberg If you're renaming eval to EVAL, shouldn't you deprecate the old, lower-case, name?
moritz shoots a missle at segomos_ 22:17
segomos_ haha
btyler segomos_: like PHP? :P stR_rePLAce()
moritz BenGoldberg: yes, after the next release
masak gOOd nIghT, #pERl6
BenGoldberg segmomos_, Like windows?
moritz goOD nIGht mAsAK, aND dreAm of UC/lC 22:18
FROGGS gnight masak
BenGoldberg seems to be experiencing a bit of lag. :(
segomos_ i really don't like using case insensitive languages fwiw
moritz SQL!!! 22:19
segomos_ seLECt staR 22:20
moritz remebers his interactions with firebird, which requires that unquoted identifiers be upper-cased, and is case sensitive for quoted identifiers
22:20 skids left
moritz I wonder what state of mind one has to be in to come up with such rules 22:21
dalek kudo/nom: a772146 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
Mark eval() and .eval as DEPRECATED
segomos_ really, really high 22:24
dalek ast: 0215ddd | (Elizabeth Mattijsen)++ | S02-types/deprecations.t:
Test for eval() and .eval deprecation
22:28
lizmat fades away some more 22:29
22:36 Rotwang left 22:37 thou joined
jnthn Well, another special thing about eval...uh...EVAL is we'll make optimization calls based on its presence, or more importantly lack thereof... 22:38
lue hello world o/ 22:40
BenGoldberg IIRC, in lisp, and unquoted identifiers are automatically uppercased... you could use some sort of quotes (I think it was |like this|) if you wanted a lower- or mixed-case identifier. 22:41
dagurval that's another argument "from a compiler perspective". As a perl6 user, I don't really care :).
lue masak: if nothing else, EVAL forces you to press an extra key, which gives you extra time to reconsider :) 22:42
timotimo at least i reached home now 22:43
FROGGS the same reason MONKEY_TYPING is written that way
BenGoldberg As a perl6 user, I would expect an all-capital builtin to do something particularly magical... what's so magical about eval?
timotimo moritz: couldn't you just turn eval into a macro that calls EVAL? :)
er, not calls, but turns into a call to *
dalek t--IRC/concurrency: 80daed5 | (Geoffrey Broadwell)++ | docs/concurrency.pod:
More concurrency design constraints, start roughing conceptual design
22:46
btyler FROGGS: here's plain MoarVM from clone to ./moar: gist.github.com/kanatohodets/f2fb1...28cc63246b and here's nqp with --gen-moar=master: gist.github.com/kanatohodets/c5f48...bb31e26c4b
timotimo moritz: i started a band :P twitter.com/loltimo/status/417302567236816897 22:47
22:59 thou left 23:02 MikeFair joined
segomos_ nice 23:05
23:06 erkan joined, erkan left, erkan joined 23:07 immortal left
dalek t--IRC/concurrency: 814ac0e | (Geoffrey Broadwell)++ | docs/concurrency.pod:
Expand discussion of per-dispatch subtasks; sketch out inch pebbles
23:13
23:13 PacoAir left
raydiak just heard a GEICO radio commercial advertising the presence of butterfly kisses on their website 23:15
jnthn japhb: ooh, concurrency stuffs :)
On EVAL vs eval, from a compiler analysis perspective it's just as easy for me to look for eval as it is to look for EVAL... :) 23:16
japhb jnthn: :-) Yup, preparing to hack concurrency into Net--IRC. Should be a trip. :-) 23:17
jnthn I'd have been perfectly happy to leave it as eval, fwiw. Mostly I just wanted a spec declaration that I can look for the name "eval" being used in a scope - or more importantly, not being used in a scope - and assume therefore compile more efficiently when it's not around. 23:18
s/assume/
dalek p: ec3d6f7 | jonathan++ | src/vm/moar/stage0/ (11 files):
Update MoarVM stage0 for SC WB op signature fixes.
23:20
p: de19034 | jonathan++ | tools/build/MOAR_REVISION:
Bump MOAR_REVISION.
23:21
jnthn Yay, the sometimes-segfault in make test is now gone on my laptop :) 23:22
FROGGS cool! 23:23
japhb W00t! 23:24
nwc10 so fingers point that this bug might have been the cause of that? 23:31
jnthn nwc10: Yeah, very much so 23:33
nwc10 right. rebuilding 23:34
but compiling the setting with the current GC torture code takes about 2 hours, and sometimes SEGVs as that libuv bug is only fixed for Win32
and we aren't even out of NQP yet...
btyler nwc10: FROGGS said you've had some success building nqp-m on osx? did you do any manual file schlepping, or just run the nqp Configure.pl with --backend=moar --gen-moar? 23:37
nwc10 manual patching of build/setup.pm to add what seems to be the correct dylib black magic in MoarVM to get libmoar.dylib to be found post install 23:38
but I think that --static might be the answer
jnthn --static is the answer until you try to build the Rakudo extops... 23:39
lue r: say "4....A" ~~ / (<digit>) "."**{+$0} (<alpha>) /
nwc10 oh. pants
btyler ah ha, yeah, I was moving libmoar around to try to get it located, which got me a few more steps along, then figured I was doing something wrong
camelia rakudo-parrot a77214: OUTPUT«===SORRY!=== Error while compiling /tmp/_Yl9U7TPbw␤Block case of ** quantifier not yet implemented␤at /tmp/_Yl9U7TPbw:1␤------> say "4....A" ~~ / (<digit>) "."**⏏{+$0} (<alpha>) /␤ expecting any of:␤ …»
..rakudo-jvm a77214: OUTPUT«===SORRY!=== Error while compiling /tmp/KfmA0a5l68␤Block case of ** quantifier not yet implemented␤at /tmp/KfmA0a5l68:1␤------> say "4....A" ~~ / (<digit>) "."**⏏{+$0} (<alpha>) /␤ expecting any of:␤ …»
lue is there another way I can do that? A bare $0 does nothing :(
jnthn lue: The typical workaround is an assertion 23:40
lue I suppose I can emulate a while loop with <?{}> stuff... 23:42
(the ** stuff is being used to skip over stuff I don't care for, so I'd much rather not have to match against it specifically to get past it.) 23:43
rurban Trying to keep wikipedia Rakudo_Perl_6 alive. we need notable outside refs in the article. found one: www.linuxtoday.com/developer/2010073000835NWRL for the first star star release 23:48
en.wikipedia.org/wiki/Rakudo_Perl_6 23:50
lue
.oO(Not to be pedantic, but specialized perl refs ⊂ computing refs)
23:51
btyler wikipedia deletionists drive me nuts 23:52
jnthn wtf, do some people really having nothing better to do with their lives than suggest deletion of well-maintained articles? :/ 23:53
rurban so what would be a good ref?
lue I'm half-tempted to correct him in passing on his sets mixup :)
jnthn I'm pretty sure there's been references in some printed magazines... 23:54
lichtkind may know more on that
rurban fyi.oreilly.com/2008/08/the-mind-of...-scie.html has "could you explain the differences between Rakudo and Pugs?" 23:55
lue searches for a Wikipedia policy that says it's OK to not have outside refs sometimes. That surely can't be a hard and fast rule in this world. 23:58
rurban I added now 2 notable outside refs: O'Reilly and Linux Today 23:59
FROGGS rurban++