»ö« 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.
benabik r-p: 1782**12+1841**12-1922**12 00:00
camelia ( no output )
benabik r-p: say 1782**12+1841**12-1922**12 00:01
camelia rakudo-parrot 215ba6: OUTPUT«-700212234530608691501223040959␤»
00:10 rurban_ left 00:12 denisboyun left 00:16 Mouq left 00:23 rurban_ joined 00:26 Mouq joined
TimToady p: &circumfix:«{"{ }".words}»(4,5).say 00:36
camelia rakudo-parrot 215ba6: OUTPUT«===SORRY!===␤Null PMC access in get_bool()␤»
TimToady lue: note that Str|Int cannot ever work in modern Perl 6, since | has been stolen to mean something else 00:37
(in siggie kinds of things) 00:38
00:39 denysonique_ is now known as denysonique
TimToady p: &circumfix:«{'{'} {'}'}}»(4,5).say 00:39
camelia rakudo-parrot 215ba6: OUTPUT«===SORRY!===␤Null PMC access in get_bool()␤»
lue TimToady: so I'm guessing that conjectural bit is garbage now? Or does it just need new syntax?
TimToady that section is completely petrified 00:40
and the whole thing turned out to be a can of semantic worms with very little social redeeming value 00:43
lue Int⦀Str :) 00:44
TimToady: I can tell it's old by the fact it references "Perl 6.0.0" instead of "Perl 6" ( Not that .0.0 isn't something to talk about nowadays, but we don't think of this as "the initial version of P6" much anymore :) ) 00:45
TimToady r: say «{4 + 2} 4+2».perl 00:46
camelia rakudo-jvm 882e33: OUTPUT«java.lang.OutOfMemoryError: Java heap space␤ in (gen/jvm/CORE.setting)␤ in (gen/jvm/ModuleLoader.nqp:349)␤ in load_setting (gen/jvm/ModuleLoader.nqp:340)␤ in (src/Perl6/World.nqp:304)␤ in load_setting (src/Perl6/World.nqp:300)␤ in (src…»
..rakudo-parrot 215ba6: OUTPUT«(("6",).list, "4+2")␤»
TimToady r: say (6,'4+2') 00:47
lue TimToady: shall I purge the Polymorphic type section in S02 then?
camelia rakudo-jvm 882e33: OUTPUT«java.lang.OutOfMemoryError: Java heap space␤ in (gen/jvm/CORE.setting)␤ in (gen/jvm/ModuleLoader.nqp:349)␤ in load_setting (gen/jvm/ModuleLoader.nqp:340)␤ in (src/Perl6/World.nqp:304)␤ in load_setting (src/Perl6/World.nqp:300)␤ in (src…»
..rakudo-parrot 215ba6: OUTPUT«6 4+2␤»
TimToady p: say «{4 + 2} 4+2»
camelia rakudo-parrot 215ba6: OUTPUT«64+2␤»
TimToady so where's the space? 00:48
p: say ((6,),'4+2')
camelia rakudo-parrot 215ba6: OUTPUT«6 4+2␤»
lue n: say «{4 + 2} 4+2»
camelia niecza v24-98-g473bd20: OUTPUT«6 4+2␤»
colomon r: say "64 + 2"
camelia rakudo-jvm 882e33: OUTPUT«java.lang.OutOfMemoryError: Java heap space␤ in (gen/jvm/CORE.setting)␤ in (gen/jvm/ModuleLoader.nqp:349)␤ in load_setting (gen/jvm/ModuleLoader.nqp:340)␤ in (src/Perl6/World.nqp:304)␤ in load_setting (src/Perl6/World.nqp:300)␤ in (src…»
..rakudo-parrot 215ba6: OUTPUT«64 + 2␤»
TimToady p: say ((6,).list,'4+2') 00:49
camelia rakudo-parrot 215ba6: OUTPUT«6 4+2␤»
colomon r-p: say "{4 + 2} 4+2" 00:50
camelia rakudo-parrot 215ba6: OUTPUT«6 4+2␤»
TimToady p: say «{4 + 2} 4+2».perl.eval
camelia rakudo-parrot 215ba6: OUTPUT«6 4+2␤»
colomon n: say «{4 + 2} 4+2»
TimToady p: say «{4 + 2} 4+2»
camelia niecza v24-98-g473bd20: OUTPUT«6 4+2␤»
rakudo-parrot 215ba6: OUTPUT«64+2␤»
TimToady here we have a value that doesn't round-trip through .perl.eval !!! 00:51
oh, wait, it does, just wrong :)
p: say ('1','2').gist 00:52
camelia rakudo-parrot 215ba6: OUTPUT«1 2␤»
TimToady p: say ('1'.list,'2').gist
camelia rakudo-parrot 215ba6: OUTPUT«1 2␤»
lue files quoteword space rakudobug 00:53
TimToady p: say (('1',).list,'2').gist
camelia rakudo-parrot 215ba6: OUTPUT«1 2␤»
TimToady p: say «1 2»
camelia rakudo-parrot 215ba6: OUTPUT«1 2␤»
TimToady scratches his head
colomon p: say «{1} 2» 00:54
camelia rakudo-parrot 215ba6: OUTPUT«12␤»
TimToady p: say «{1} 2».perl 00:55
camelia rakudo-parrot 215ba6: OUTPUT«(("1",).list, "2")␤»
TimToady p: say (("1",).list, "2")
camelia rakudo-parrot 215ba6: OUTPUT«1 2␤»
lue p: say «1 {2} 3»
camelia rakudo-parrot 215ba6: OUTPUT«123␤»
lue p: say «1 2 3»
camelia rakudo-parrot 215ba6: OUTPUT«1 2 3␤»
colomon lue++
lue p: say «1 see{2} 3» 00:56
camelia rakudo-parrot 215ba6: OUTPUT«1 see23␤»
lue o.o
p: say «1 see{2}it 3»
camelia rakudo-parrot 215ba6: OUTPUT«1 see2it 3␤»
TimToady p: say «1 {2} 3».perl.eval
camelia rakudo-parrot 215ba6: OUTPUT«1 2 3␤»
TimToady p: say «1 {2} 3».perl
camelia rakudo-parrot 215ba6: OUTPUT«("1", ("2",).list, "3")␤»
lue p: say «1 see{2}it 7 {8}9 10»
camelia rakudo-parrot 215ba6: OUTPUT«1 see2it 789 10␤» 00:57
TimToady p: say ("1", ("2",).list, "3")
camelia rakudo-parrot 215ba6: OUTPUT«1 2 3␤»
TimToady p: say ("1", ("2",).list, "3").gist
camelia rakudo-parrot 215ba6: OUTPUT«1 2 3␤»
TimToady p: say ("1", ("2",).list, "3").Str
camelia rakudo-parrot 215ba6: OUTPUT«1 2 3␤»
TimToady p: say ~("1", ("2",).list, "3") 00:58
camelia rakudo-parrot 215ba6: OUTPUT«1 2 3␤»
TimToady so, what's eating the space?
p: say «1 {2} 3».WHAT 00:59
camelia rakudo-parrot 215ba6: OUTPUT«(Parcel)␤»
TimToady p: say «1 {2} 3».gist
camelia rakudo-parrot 215ba6: OUTPUT«1 2 3␤»
lue p: say qqw:/1 {2} 3/
camelia rakudo-parrot 215ba6: OUTPUT«===SORRY!=== Error while compiling /tmp/co2LCoRvej␤Colons may not be used to delimit quoting constructs␤at /tmp/co2LCoRvej:1␤------> say qqw:⏏/1 {2} 3/␤ expecting any of:␤ colon pair (restricted)␤»
lue p: say qqw/1 {2} 3/ 01:00
camelia rakudo-parrot 215ba6: OUTPUT«1 2 3␤»
lue ppphhhtt
TimToady p: say «1 '{2}' 3»
camelia rakudo-parrot 215ba6: OUTPUT«1{2}3␤»
TimToady n: say «1 '{2}' 3»
camelia niecza v24-98-g473bd20: OUTPUT«1 '2' 3␤»
lue p: say «1 \{ 3»
camelia rakudo-parrot 215ba6: OUTPUT«1 { 3␤»
lue p: say «1 \{\} 3»
camelia rakudo-parrot 215ba6: OUTPUT«1 {} 3␤» 01:01
TimToady n: my $x = 2; say «1 '$x' 3»
camelia niecza v24-98-g473bd20: OUTPUT«1 '2' 3␤»
01:01 woosley joined
TimToady p: my $x = 2; say «1 '$x' 3» 01:02
camelia rakudo-parrot 215ba6: OUTPUT«1$x3␤»
TimToady p: my $x = 2; say «1 "$x" 3»
camelia rakudo-parrot 215ba6: OUTPUT«123␤»
lue p: my $x = 2; say «1 $x 3»
camelia rakudo-parrot 215ba6: OUTPUT«123␤»
TimToady again, spaces disappear
lue TimToady: quit making me have to revise my bug report! :P
p: my $x = 2; say «1 see$x 3» 01:03
camelia rakudo-parrot 215ba6: OUTPUT«1 see23␤»
lue p: say «1 '2' 3» 01:04
camelia rakudo-parrot 215ba6: OUTPUT«123␤»
lue p: say «1 '2 3»
camelia rakudo-parrot 215ba6: OUTPUT«===SORRY!=== Error while compiling /tmp/dldNC_ua_l␤Unable to parse expression in single quotes; couldn't find final "'" ␤at /tmp/dldNC_ua_l:1␤------> say «1 '2 3»⏏<EOL>␤ expecting any of:␤ argu…»
lue p: say «1 ''2 3»
camelia rakudo-parrot 215ba6: OUTPUT«12 3␤»
lue does... does '' count as interpol... /me checks S02
TimToady it's clearly wrong from the standpoint of "should work like shell quoting"
TimToady decides to go pick at a real scab instead of a metaphorical one 01:06
lue created rakudobug finally 01:08
lue enjoys the web-based interface
I'll get rid of the "Polymorphic Types" section from S02, if no-one objects. 01:11
TimToady <crickets> 01:12
colomon half the world is asleep 01:13
dalek ecs: d8cd922 | lue++ | S02-bits.pod:
[S02] Get rid of Polymorphic Types

The idea was novel, but sadly it introduces a terrible set of consequences. Additionally, no-one ever implemented it, and it's never been really necessary.
Also, the pipe character was already in use in other ways. That's just untenable.
01:16
TimToady predicts <crickets> from the rest of the world as well 01:18
lue "I never even knew about those polygonal types anyway" 01:19
colomon that's how you solve the square versus rectangle conundrum, right? 01:22
01:23 xenoterracide joined
lue Any particular reason why ‹› isn't the Unicode equivalent to <> in P6? (Or has it just never been that important?) 01:23
colomon <crickets> ;) 01:24
lue ‹crickets›
TimToady r: say q‹crickets› 01:25
camelia rakudo-jvm 882e33: OUTPUT«(timeout)» 01:26
..rakudo-parrot 215ba6: OUTPUT«crickets␤»
TimToady maybe someone should just unplug the jvm for now...
we haven't gone out of our way to look for non-latin1 equivalents for latin1 operators 01:27
lue p: say qw‹foo bar baz›
camelia rakudo-parrot 215ba6: OUTPUT«foo bar baz␤»
lue TimToady: that was my suspicion (not gone out of your way). It would nicely mirror <<>>/«» is all.
TimToady note we don't even have ≠ 01:28
we were kinda forced out of latin1 in dealing with sets, since the texas versions are so klunky 01:29
colomon It's so easy to add your own version of operators...
lue colomon: precisely why I'm not moaning about it. It was just an idea that flashed across my mind today :) 01:30
TimToady likes ≟
or should that be ≟≟ in C-derived languages? :) 01:31
lue ≠? What is this, a math class? if there was a EQUALS SIGN WITH OVERLAYED EXCLAMATION MARK, maybe, but for now != works :)
01:31 raiph left
TimToady then there's ÷ 01:31
if we switched to that, we could do like Ada and make /= the sign for ≠ 01:32
lue p: say "Champion of Unicode™" if 1 ⩵ 1
TimToady I'm sure everyone would just love that...
camelia rakudo-parrot 215ba6: OUTPUT«===SORRY!=== Error while compiling /tmp/G3psVWzgxY␤Two terms in a row␤at /tmp/G3psVWzgxY:1␤------> say "Champion of Unicode™" if 1 ⏏⩵ 1␤ expecting any of:␤ postfix␤ infix stopper␤ …»
TimToady n: say "Champion of Unicode™" if 1 ⩵ 1 01:33
camelia niecza v24-98-g473bd20: OUTPUT«===SORRY!===␤␤Confused at /tmp/7T9m39PJwM line 1:␤------> say "Champion of Unicode™" if 1 ⏏⩵ 1␤␤Parse failed␤␤»
TimToady I like that message better.
TimToady doesn't know how rakudo gets the notion that there's another term there... 01:34
lue also, my $a ≝ 42; (really, Unicode gives us no excuse to ambiguate = anymore :P) 01:35
TimToady that would make more sense for a constant than a variable 01:36
lue nod
01:37 raiph joined
TimToady np: constant @a = 1,@a; say @a[3] 01:38
nr: constant @a = 1,@a; say @a[3]
camelia rakudo-jvm 882e33: OUTPUT«(timeout)»
..rakudo-parrot 215ba6: OUTPUT«===SORRY!=== Error while compiling /tmp/MkVEGNmmJW␤Variable '@a' is not declared␤at /tmp/MkVEGNmmJW:1␤------> constant @a = 1,@a⏏; say @a[3]␤ expecting any of:␤ postfix␤»
..niecza v24-98-g473bd20: OUTPUT«(Any)␤»
TimToady nobody really does ≝ there yet
01:40 raiph left 01:43 arnsholt left 01:44 pochi left
TimToady would still like to be able to define hamming numbers the way Haskell can: hamming = 1 : map (2*) hamming `union` map (3*) hamming `union` map (5*) hamming 01:45
assuming a reasonable merge operators, should come out looking like: 01:46
my @hamming := 1, ((@hamming X* 2) M (@hamming X* 3) M (@hamming X* 5)).squish;
constant @hamming = 1, ((@hamming X* 2) M (@hamming X* 3) M (@hamming X* 5)).squish; 01:47
that is
but something is not being evaluated with sufficient abstraction for that to close the recursion 01:48
rosettacode.org/wiki/Hamming_numbers#Haskell if anyone is interested in pursuing this 01:51
01:52 nnunley joined
TimToady (probably requires => lists that can construct themselves lazily to do it right) 01:52
01:53 pochi joined
TimToady (either that, or a purer idea of what @a means in this context) 01:53
01:53 arnsholt joined 01:59 broquaint left, broquaint joined 02:03 kbaker joined 02:14 Mouq left 02:19 raiph joined 03:07 xan_nick joined 03:14 raiph left
colomon lue: lue stands for life universe and everything? 03:24
TimToady believes that to be the case 03:26
colomon fjords 03:27
lue colomon: Life U. Everything, yesiree :)
colomon lue++ 03:29
03:30 kbaker left 03:38 rurban joined 03:53 xenoterracide left 03:54 risou_awy is now known as risou 03:56 xinming joined 03:59 xinming_ left 04:01 dansamo2 joined 04:07 dansamo2 left 04:09 dansamo joined 04:14 dansamo left 04:17 c1sung joined 04:22 risou is now known as risou_awy 04:38 c1sung left 04:43 c1sung joined, lue left 04:50 preflex_ joined, ChanServ sets mode: +v preflex_ 04:51 preflex left, preflex_ is now known as preflex 05:02 xenoterracide joined 05:13 lue joined
lue TimToady: despite how broken the «1 {2} 3» stuff is, I can't help but feel like it's more in the cool trick category than the showstopper category :) Like ☃☄: not useful, but not utterly terrible. 05:14
05:17 [particle]1 joined
TimToady well, if it isn't fixed, someone will depend on the current semantics, and then we will break their code when we make it work right; production code is really hard to fix--see Perl 5 05:18
05:18 xenoterracide left
TimToady what was it, SCO Unix, that had && and || reversed in shell scripts, and they never could fix it 05:19
"we have customers that depend on that"
05:20 johnny5_ left, [particle] left
geekosaur not in /bin/sh. it had a csh which was pretty much the same one that xenix always had, and which had that bug 05:20
xenix csh was doing that before sco existed, even 05:21
trs-xenix csh in 1982 had the same bug.
05:21 johnny5_ joined
lue
.oO(You can either get cake and die.)
05:21
geekosaur (come to think of it I think unisoft v7's csh had it too) 05:23
they both blamed it on 2.8bsd I think?
05:25 [Sno] left
TimToady don't recall, but yeah, it was csh 05:26
TimToady only used 4.*bsd, which didn't have that issue that I can recall 05:27
diakopter r-j: 1 05:28
geekosaur I have heard that the bug was not in any released 2BSD csh, only in the one that found its way into xenix, unisoft, etc.
camelia ( no output )
diakopter \o/
TimToady is that just a restart or did you fix sump'n? 05:29
diakopter sum1 needs to signal hangup to the perl that lauches the eval server every day or so
*lunches 05:30
TimToady nom, nom...
diakopter r-j: 1 while try die 05:32
camelia ( no output ) 05:33
lue r-j: say "I got better" 05:34
camelia rakudo-jvm 882e33: OUTPUT«I got better␤»
geekosaur who was that masked newt?
diakopter r-j: say try die
camelia rakudo-jvm 882e33: OUTPUT«Nil␤»
diakopter r-j: say eval die 05:38
camelia rakudo-jvm 882e33: OUTPUT«␤ in block at /tmp/ZBy3qbs0pP:1␤ in any eval at gen/jvm/stage2/NQPHLL.nqp:1086␤ in any evalfiles at gen/jvm/stage2/NQPHLL.nqp:1292␤ in any command_eval at gen/jvm/stage2/NQPHLL.nqp:1196␤ in any command_eval at src/Perl6/Compiler.nqp:17␤␤»
diakopter r-p: say eval die 05:39
camelia rakudo-parrot 215ba6: OUTPUT«␤ in block at /tmp/PHSW8R6Ns0:1␤ in any at /tmp/PHSW8R6Ns0:1␤ in any at gen/parrot/stage2/NQPHLL.nqp:1146␤ in any eval at gen/parrot/stage2/NQPHLL.nqp:1133␤ in any evalfiles at gen/parrot/stage2/NQPHLL.nqp:1339␤ in any command_eval a…»
diakopter what'a this "in any"
geekosaur I assumed a typeything (Any vs. Block vs. ??) 05:40
05:44 SamuraiJack joined 05:59 xan_nick left 06:14 xenoterracide joined 06:19 preflex left 06:23 preflex joined, ChanServ sets mode: +v preflex 06:30 rurban left 06:37 slava-work left 06:42 BenGoldberg left 06:43 fridim_ left 06:53 darutoko joined 06:54 SamuraiJack left 06:56 SamuraiJack joined, lizmat joined 06:57 locsmif joined 07:01 [Sno] joined 07:05 denisboyun joined 07:11 tobyink joined 07:16 dmol joined 07:21 Bucciarati joined 07:22 locsmif left 07:25 tobyink left 07:27 mathw left, mathw joined 07:30 dmol left 07:32 dmol joined
jercos r: my Int enum Card (("Ace", 2, 3, 4, 5, 6, 7, 8, 9, "Jack", "Queen", "King") X~ " of " X~ ("Spades", "Clubs", "Diamonds", "Hearts")) 07:45
camelia rakudo-parrot 215ba6, rakudo-jvm 882e33: OUTPUT«===SORRY!===␤No such method 'returns' for invocant of type 'List'␤»
jercos n: my Int enum Card (("Ace", 2, 3, 4, 5, 6, 7, 8, 9, "Jack", "Queen", "King") X~ " of " X~ ("Spades", "Clubs", "Diamonds", "Hearts")) 07:46
camelia ( no output )
jercos n: my Int enum Card (("Ace", 2, 3, 4, 5, 6, 7, 8, 9, "Jack", "Queen", "King") X~ " of " X~ ("Spades", "Clubs", "Diamonds", "Hearts"));Card.pick.say
camelia niecza v24-98-g473bd20: OUTPUT«7 of Clubs␤»
jercos Was this your card? :p 07:47
07:52 denisboyun left 07:59 lizmat left 08:01 lizmat joined 08:02 woolfy joined
arnsholt o/ 08:04
lizmat arnsholt: /o 08:09
just backlogging before decommuting
08:14 nnunley left 08:18 zakharyas joined
dalek ecs: 9c428a9 | (Elizabeth Mattijsen)++ | S17-concurrency.pod:
/.sleep/.alarm/

I think ".sleep" is confusing, as its functionality does not match sleep(). And from this, we could spec an alarm() function, which would just create a subscribable with an .alarm and code to be executed when the alarm arrives.
08:19
08:19 woolfy left, preflex_ joined, ChanServ sets mode: +v preflex_ 08:21 preflex left, preflex_ is now known as preflex 08:24 lizmat left 08:26 Bucciarati left, Bucciarati joined, FROGGS joined 08:32 daxim joined 09:03 salv0 left 09:04 salv0 joined 09:17 cognominal left 09:18 cognominal joined 09:20 JimmyZ_ is now known as JimmyZ 09:27 fhelmberger joined 09:28 nnunley joined 09:32 nnunley left 09:46 tobyink joined 10:29 denis_boyun joined 10:41 pernatiy left 11:04 atroxaper joined 11:13 dansamo joined 11:15 xinming left 11:16 nnunley joined 11:21 nnunley left 11:26 xinming joined 11:32 pernatiy joined 11:51 salv0 left 11:57 denis_boyun left 12:05 salv0 joined 12:09 itz_ joined 12:16 rindolf joined 12:17 itz joined 12:20 itz_ left 12:21 itz left 12:22 itz joined 12:29 [particle]1 left 12:30 fhelmberger left 12:31 fhelmberger joined 12:34 bitpart joined
dalek ecs: fa517be | util++ | S (5 files):
Fix typos in S02, S21, S99, S32/IO, and S32/Exception
12:45
12:54 benabik left 12:58 xinming left 12:59 SamuraiJack left 13:00 xinming joined 13:02 dmol left, dmol joined 13:07 dmol left, nine joined, dmol joined 13:25 nnunley joined, tobyink left 13:34 dmol left 13:43 raiph joined 13:46 ajr joined, ajr is now known as ajr_ 13:47 Timbus|Away joined, Timbus left, Timbus|Away is now known as Timbus 13:50 toebu joined 13:56 jnap joined 14:00 gaussblurinc joined 14:03 risou_awy is now known as risou 14:06 kaare__ joined 14:11 lowpro30 joined 14:25 denis_boyun joined, dansamo left 14:26 bluescreen10 joined 14:29 stevan__ joined 14:32 stevan_ left, PacoAir joined 14:39 gaussblurinc left 14:42 lowpro30_ joined 14:43 benabik joined 14:45 lowpro30 left 14:50 Tene left 14:52 djanatyn left 14:54 logie joined 14:58 denis_boyun left
dalek ecs: 10b9553 | larry++ | S17-concurrency.pod:
$*TICK should return Instants, not DateTimes
15:19
15:23 toebu left 15:28 kaare__ left
TimToady S17's select examples are all syntax errors, which on the surface means they need commas, but on a deeper level probably means we need a more natural syntax for our combinators 15:30
15:32 rurban joined
dalek ecs: f7cb43e | larry++ | S17-concurrency.pod:
Add missing commas to select args
15:32
TimToady wishes there were a shorter word that means "subscribable" 15:36
tadzik feed? :) You subscribe to a feed... 15:37
geekosaur "known"?
15:37 toebu joined
TimToady well, the role would presumably be Feeder 15:37
but that doesn't really mean something you can sign up for
'does Feeding' is more grammatical 15:38
and nobody can figure out whether 'enrol(l)ment' has one 'l' or two 15:41
we could steal "Publisher", which is currently rather over-specific 15:42
15:43 rurban left 15:44 xalbo left
TimToady thinks using options on .schedule is a fine idea, given the combinatorics 15:45
15:45 ajr_ left, benabik left 15:46 ajr joined
TimToady would like to sneak "cue" in there somewhere; maybe that's what "async" should become 15:46
15:46 ajr is now known as Guest19104
TimToady since a cue is what one actor takes from another to start an action or utterance 15:47
.oO(Enter Hamlet)
15:48
15:49 benabik joined 15:51 bitpart left
TimToady though really, 'start' is probably the clearest thing to replace 'async' with 15:52
15:59 raiph left 16:01 toebu left 16:04 toebu joined
dalek ecs: 2f50e05 | larry++ | S17-concurrency.pod:
use 'start' for initiating asynchronicity

Especially since we have a 'run' command that does something else, and 'run' most often means 'run to completion', which is not true here.
16:05
16:05 xalbo joined
TimToady also, we don't have a start block anymore... 16:05
sjn hm. maybe there are more words one could use from theater terminology? :)
s/async/plot/ 16:06
"parallel storylines"
sjn would love a keyword named "meanwhile" :)
perigrin INT. Thread A 16:07
EXT. Process B
sjn finishing off might be a "finale"
16:09 prevost joined
dalek ecs: 6b3e9d8 | larry++ | S (3 files):
more s/async/start/ tweaks
16:10
TimToady s/Subscribable/StageManagement/ # oh wait, that's longer... 16:11
Stager is shorter but less clear 16:12
though $*STAGER.cue({...}) is clearer by context 16:13
$*CUER.cue is really short, but 'cuer' is a funny looking word 16:15
TimToady is thinking about huffman coding in a larger sense than just the program; we probably won't type Subscribable all that many times inside the program, but we'll be writing about it all the time, so something shorter would be better for that 16:18
benabik .o( Why did you misspell CURE? )
16:20 tobyink joined
sjn TimToady: huffman is good, but I hope you also can find some love for the conveyance of understanding. ("making it easy to understand|teach|guess the right word") :) 16:21
sjn wonders if $*DIRECTOR.cue would be confusing 16:24
16:26 [Sno] left
jnthn evening 16:27
I see my "let's get consensus on what to do wiht the new/old S17" was quickly ignored...
But happy to see lots of effort going in.
The "turn just some of the _ into -" is the only one I absolutely know I'm reverting. :) 16:28
16:28 dmol joined
jnthn But it may be obviated by another refactor anyway... 16:29
TimToady which I've already said I like :)
jnthn Yes, I saw that :)
I don't feel strongly either way, but the combinatorics argument is a good one. 16:30
16:31 xinming left
jnthn The rest I need to read the patches, but I'm exhausted after late night arriving (Stockholm airport decided to deliver luggage crazy slow) and early morning (teaching located a good bit out of the center, and wanted time to set stuff up, though clueless reception soon hosed that plan...) So probably will leave that for tomorrow or so. :) 16:31
16:31 zakharyas left
jnthn "cue" is quite a nice word 16:32
It puns nicely with queue ;)
TimToady indeed
jnthn So even if you mishear it, you still understand what it does :)
16:34 denis_boyun joined, xinming joined
TimToady I suppose it could be $*PLAYLIST.cue for the younger set :) 16:35
jnthn Wait, which contextual are we renamin? :) 16:36
*renaming
I actually don't think S*SCHEDULER needs huffmanizing, fwiw
'cus you're not meant to interact with it directly in the common case
But rather use things that use it.
TimToady no, scheduler is fine
jnthn OK
TimToady it's subscribable that is rather too heavy 16:37
jnthn Oh
Yes, I agree
TimToady and I think we'll be talking about them all the time
jnthn i didn't steal Observable from Rx 'cus I knew there was no chance of us sticking to the rest of the API :)
TimToady since people aren't that up-to-date on the paradigm
16:38 xinming left
jnthn So I figured I'd leave that free for anybody who wants to make a module that is an API-alike :) 16:38
TimToady well, Feeder isn't too bad from the standpoint of we might implement feeds with this
jnthn Oh, hmmm
16:38 xinming joined
TimToady anyway, not in a rush, but just something to toss about and weigh 16:38
jnthn This is extremely un-fully-thought-out but I had wondered just a tiny bit if we might want feeds to be a kinda monad-y construct where the type of the first thing controls everything that happens next 16:39
And that we get rid of the slurpy and actually make it method based
So
TimToady sure, if ; is a monadoid, so is ==>
jnthn @foo ==> grep { ... } ==> map { ... }
Is really
@foo.grep({ ... }).map({ ... })
Because I *really* want it for subscribable chains too 16:40
But the slurpy stuff makes writing the candidates hairy :(
TimToady like I said, we need better combinators
syntactically speaking
jnthn Yeah
I just noticed that making chains of ==> sugar for chained method calls might be a really nice thing to do
16:41 BenGoldberg joined
jnthn Because it means "do it in the language of the thing we currently have" 16:41
And is a LOT prettier than unspace ;)
16:41 fridim_ joined
jnthn And I think APIs where you chain method calls are common enough that people will make good use of this outside of Perl 6... :) 16:42
um
I mean
outside of core stuff
TimToady though if we leave out the . people will get confused, so maybe @foo ==> .grep ==> .map
jnthn Told ya I was tired :P
I don't know that it's confusing
TimToady well, there .= already
jnthn Because you know the invocant is the last thing...well, "know" :) 16:43
FROGGS hello o/
jnthn I would live with ==> .grep I guess
I think I'd just prefer it as the default...
TimToady maybe we just need to define STDIN for everything we can run :) 16:44
jnthn ;)
TimToady shower &
FROGGS .oO( TimToady ==> shower { /ö } ==> grep { -> $towel { ... } } # Ohh noes! stub towel executed! ) 16:51
16:51 raiph joined 16:54 benabik left
FROGGS damn it, should have included SOAP::Lite 16:54
16:55 raiph left 16:56 kaare__ joined 16:57 prevost left 16:58 benabik joined 17:03 risou is now known as risou_awy, risou_awy is now known as risou 17:04 atroxaper left, lowpro30_ left 17:05 Tene joined 17:06 fhelmberger left 17:16 jeffreykegler joined 17:19 risou is now known as risou_awy, SamuraiJack joined 17:43 [Sno] joined
[Coke] "followable" 17:45
trackable?
recordable? 17:46
TimToady eventual :) 17:47
17:49 Guest19104 left 17:53 virtualsue joined 17:55 ajr joined, ajr is now known as Guest26077, Guest26077 is now known as ajr_ 17:59 denis_boyun__ joined
jnthn Pushy ))) 17:59
18:00 daxim left 18:01 denis_boyun left
TimToady Reactionary :) 18:01
.oO(actors and reactors)
18:02
18:02 rurban joined
TimToady leaders and followers 18:03
one "follows" the news as well
diakopter Befriendable 18:04
Stalkable 18:05
18:05 jeffreykegler left
geekosaur Amiable; extra credit if you can get Aimable to fall out... 18:07
18:08 SamuraiJack left 18:11 darutoko left, denis_boyun__ left
TimToady if your feed is coming from an antenna, you tune your receiver 18:15
diakopter Transceivable 18:16
18:16 sftp left
TimToady Intranceivable! 18:16
18:18 tobyink left
anocelot "You keep using that word..." 18:18
18:20 ajr_ left
TimToady anyhoo, if we implement ==> with subscribables, I think we could safely steal 'does Feed' to represent the underlying role, then pick some appropriate verb to subscribe/follow/track 18:21
diakopter Edible 18:22
Bitable
arnsholt anocelot: Incidentally, is an anocelot a negated ocelot? =)
TimToady .melikes 18:23
timotimo is Tasty
diakopter Potable
anocelot likes potable
TimToady .yu
.yum
diakopter Potatable
TimToady isn't potable only about fluids though?
anocelot Well, if it can blend... 18:24
perigrin I think anything you can carry is potable.
TimToady it's really about what you want to eat, not what doesn't make you sick
anocelot savory
TimToady .want
anocelot droolworthy
colomon wonders if jnthn++ would be more comfortable with drink analogies. ;) 18:25
TimToady want cookie!
'does Tap' 18:26
anocelot feeds TimToady Oreo
TimToady .draw
.order 18:27
jnthn hahaha
does Pump
Like a beer pump
:D
"message pump" is actually what Windows calls it, iirc :)
TimToady pump definitely has 'push' connotations to 18:28
*too
Pump.tap() maybe
jnthn
.oO( It's a childish British slang for fart too )
TimToady well, there you have it
18:29 sftp joined
TimToady still, food tends to be more discrete, like messages 18:30
diakopter Intravenable
nwc10 of the suggestions so far, I still like `start` the best. It pretty much makes sense even without reading documentation
I like the cue pun, but it's not as clear
TimToady that's why the doc currently says "start" :) 18:31
geekosaur (a coupon for a cue pun?)
jnthn
.oO( you think it's cue today )
TimToady hands geekosaur a cue stick
18:31 sftp left
TimToady hands jnthn a cue shtick 18:32
anocelot adds cue "cue pun" coupon to the queue pen.
arnsholt jnthn: Before a bind_pos_native on JVM, is tc.native_type set to indicate what kind of value is being passed, or should I just assume the right value has been set? 18:34
nwc10 TimToady: yes, sorry, didn't say that I'd seen that you'd already done that
I liked the idea "wish" too, but I wasn't sure about it
jnthn arnsholt: Um...I think that it actually is set by the op
arnsholt: no, wait...gah, how'd I design it... 18:35
18:35 xinming left 18:36 xinming joined 18:37 sftp joined
jnthn arnsholt: Mostly it's done as a "sanity check" 18:37
arnsholt: The check is done in the ops, iirc
arnsholt Right
jnthn arnsholt: So it doesn't set the kind of vaue, it assumes it, but then I think you write in there what you actually set
and then the ops check its what was expected
arnsholt Ooooh, right 18:38
jnthn I kinda thing we'll probably remove the checking later
Because you only violate it if you do a stupid code-gen bug I guess...
But I wanted it while building stuff because I knew if such a bug happened I'd waste an hour or two finding it...
arnsholt Or the user does silly things with nqp::ops, I guess
jnthn yeah, or that. Hm :)
arnsholt But that's a code-gen bug too, 'cept a wetware one =)
18:40 lawrmcfa joined, lawrmcfa left 18:41 lawrmcfa joined 18:45 ajr joined, ajr is now known as Guest79884, Guest79884 is now known as ajr_
ajr_ TimToady 13:02:07 Only you're an Old Newtonian 18:47
jnthn self.feed & 18:48
ajr_ Sorry, "Only if" :-)*
18:49 pernatiy left 18:50 araujo left, araujo joined, araujo left, araujo joined
masak evenin', #perl6 18:54
FROGGS hi masak 18:55
moritz \o * 18:57
FROGGS any objections about removing nbp::shell1 from nqp-j?
err, nqp*
moritz isn't it needed for shell() ? 18:58
FROGGS no, this uses shell aka shell3
18:59 SamuraiJack joined
FROGGS there is no call to nqp::shell that only has one arg AFAICS 18:59
19:02 Rotwang joined 19:04 risou_awy is now known as risou, djanatyn joined
masak I see I missed some excellent punshedding today. 19:05
clearly I should quit $dayjob and just hang out on #perl6 all day, so that I never miss anything.
19:05 SamuraiJack left
moritz should create a CNAME punlog.perlgeek.de for the IR clogs :-) 19:06
masak speaking of which: 19:10
today's autopun spotting: twitter.com/janl/status/397358285499940865
19:12 denis_boyun joined 19:16 stevan__ left
TimToady while "next" and "last" are interesting from a Strangely Consistent viewpoint, I think it's going to be terribly confusing to overload words that are normally used for control flow 19:17
19:17 rurban left
anocelot prepend a disambiguating character? 19:18
19:19 rurban joined
masak TimToady: waitwait, that sounds interesting. what's the context? 19:19
TimToady S17
the new one
TimToady is provisionally going with "more" and "done" instead...or should it be "moar"? :) 19:20
19:20 risou is now known as risou_awy
masak agree about confusing. 19:21
whatever we choose, they should be strangely dual to iterators. 19:22
i.e. the "next" one should be opposite .get 19:23
the "last" one should be opposite having no more values
and the "fail" one should be opposite throwing an exception
TimToady well, .moar and .done work on both ends
masak doesn't like .more/.moar -- not one-y enough 19:24
TimToady just "is there moar?" vs "I want moar!"
well, presumably the pumping .moar could pump moar than one at a time 19:25
masak hm -- .pub / .snub / .flub :)
TimToady you think that's cute today...
masak sez the guy who proposed .moar :P
TimToady prior art :P
FROGGS nqp-p: say(nqp::fileislink("src")) 19:26
camelia nqp-parrot: OUTPUT«Class 'File' not found␤current instr.: '' pc 40 ((file unknown):49857655) (/tmp/BW7PAngIaR:7)␤»
FROGGS nqp-j: say(nqp::fileislink("src"))
camelia nqp-jvm: OUTPUT«0␤»
masak .oO( there's moar where that came from )
19:26 [particle] joined
TimToady would you prefer .item or some such? 19:27
TimToady is trying to keep things 4 chars so things line up right...
FROGGS TimToady++
(about the line up) 19:28
masak TimToady: actually, if iterators have .get, then publishers should have .put
TimToady .item doesn't imply movement though
FROGGS .give
TimToady but S17 also uses "next" to label the callback that handles it
so you kinda want a symmetrical "pump" word 19:29
in fact, I used to have it "pump" but decided it wasn't symmetrical enough
and the pragmatics of "more" are attractive
19:30 toebu left, stevan_ joined 19:31 stevan__ joined
TimToady and the fact is our whole metaphor is running toward mass nouns rather than count nouns 19:31
perigrin higgs nouns-ons.
TimToady currently has s/Subscribable/Supply/ and s/Publish/Feed/ and s/subscribe/tap/
"more" is very clear from the standpoint of telling the reader you're not "done" 19:33
even though it's a mass noun, er, adjective
well, it can be count too
more toothpaste vs more teeth 19:34
19:34 stevan_ left
perigrin it can also be a noun ... "I want more", "He got more than me" ... no? 19:34
masak perigrin: images.cdn.bigcartel.com/bigcartel/...00x600.png
perigrin *nice* 19:35
masak perigrin: that still feels like an adverb to me.
dalek p: 0cc061e | (Tobias Leich)++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
mapped fileislink
perigrin actually I was thinking it was an implied adjective ... but I don't know if those actually exist
masak perigrin: though in the construction "the more <X> the more <Y>" it's a noun, I guess.
though it's hard to reason about parts-of-speech in set phrases. 19:36
perigrin depends on the value of X and Y ... "more money, more problems"
yep
19:40 rindolf left
dalek ecs: a9d1cc6 | larry++ | S17-concurrency.pod:
Take a whack at some simpler terminology
19:44
lue hello world o/ 19:55
19:55 pippo joined
pippo masak: do you remeber this: (^20_000).join(',').split(',') 19:57
it turns out "split" is implemented with gather and take... and that is what makes the split slow and eat-up much memory. 19:59
moritz and the JVM needs to emulate continuations for that, which probably isn't very efficient 20:00
timotimo oh my :/ 20:01
at some point, we need to do something about that, no?
pippo I mean rakudo jvm. If you try this "gather {for ^20_000 {take $_}}" you'll have the same effect of (^20_000).join(',').split(',')
moritz timotimo: presumably, yes 20:02
though it might not be the CPS transform that's to blame; that was just guessing on my part
pippo Another strange thing is that on rakudo JVM gather /take is slower than pushing elements on a list. I'll explain... 20:03
lue p: my $a = ^20_000 Z ','; say +$a.split(',') 20:04
camelia rakudo-parrot 215ba6: OUTPUT«1␤»
lue p: my $a = ^20_000 X ','; say +$a.split(',')
camelia rakudo-parrot 215ba6: OUTPUT«(timeout)»
timotimo yeah, it would be slower than doing list pushes, because it also has to jump back and forth between the code grabbing items from the list and the code generating them
pippo gather {for ^1000 {take $_}} is slower than my @a; for ^1000 {@a.push($_)}
timotimo which is not completely like a call, because it might be inside the middle of code. thus: CPS transform 20:05
pippo But on niecza gather and take is order of magnitudes faster than pushing on a list...
20:06 jaffa4 joined
jaffa4 hi all 20:06
moritz then it likely does .push rather slowly :-)
pippo :-))
lue then perhaps there's a way to avoid all that jumping assuming it's the problem.
timotimo it probably resizes and copies the whole list on each push!!!!
masak jaffa4: aloha.
moritz timotimo: or not, after all sorear++ was involved :-)
20:07 grondilu joined
jaffa4 do you think it is possible to inherit from an npq class and modify its behaviour by inheritance? 20:07
aloha
lue rn: my @a; for ^1000 {@a.push($_)}; say now - BEGIN now
jaffa4 I mean theoritically
masak nqp: class A {}; class B is A {}; say("yes")
camelia rakudo-jvm 882e33: OUTPUT«(timeout)»
..niecza v24-98-g473bd20: OUTPUT«0.10935306549072266␤»
..rakudo-parrot 215ba6: OUTPUT«0.53215591␤»
nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«yes␤»
timotimo through what i will refer to as "deep magic", it might even be possible to find out if the result of the gather/take is going to be taken in batches, or eagerly, and then implement it in terms of pushing into a list.
masak jaffa4: theoretically, yes :)
moritz practically, yes.
jaffa4 to modify it in Perl 6. 20:08
lue timotimo: niecza pushes in about 1/5 the time of r-p ^^^ :) Not the issue.
moritz partically, if you do it in Perl 6, it might be a lot easier to use delegation
otherwise you'll have non-Perl 6 values leaking out everywhere
masak jaffa4: what you want to do sounds like "do you think it's possible to walk on stilts *using another guy's legs*?" :)
20:08 tobyink joined
moritz lue: or it might be simply the 'for ^1000' iteration that's dog slow on rakudo 20:08
lue moritz: we've got some issues then :) 20:09
moritz lue: we do, for sure
jaffa4 to be exact , modify a nqp class in Perl 6 and pass it to npq class
moritz jaffa4: just don't. You'll be in a world of pain if you attempt that. 20:10
lue masak: [ btw, I'm far more supportive of RT now that I can make tickets in Firefox instead of Thunderbird. It's wonderful :) ]
p: Q:PIR{}; say "alive"; Q:NQP{}; say "alive" 20:11
camelia rakudo-parrot 215ba6: OUTPUT«===SORRY!=== Error while compiling /tmp/EYMn48RIQl␤Unrecognized adverb: :NQP␤at /tmp/EYMn48RIQl:1␤------> Q:PIR{}; say "alive"; Q:NQP⏏{}; say "alive"␤ expecting any of:␤ colon pair (restricted)␤»
pippo r: say "hello"; my $now= now; my @a; for ^500 {@a.push($_)}; say now - $now;
jaffa4 I mean Perl6::Action....I does not do what is necessary
camelia rakudo-jvm 882e33: OUTPUT«(timeout)»
..rakudo-parrot 215ba6: OUTPUT«hello␤0.31830214␤»
pippo r: say "hello"; my $now= now; my @a; for ^200 {@a.push($_)}; say now - $now; 20:12
camelia rakudo-jvm 882e33: OUTPUT«(timeout)»
..rakudo-parrot 215ba6: OUTPUT«hello␤0.1199790␤»
lue pippo: now - BEGIN now is a so much cooler way to time things :)
moritz j: say 42
pippo lue: I would like to not count startup time
camelia rakudo-jvm 882e33: OUTPUT«(timeout)» 20:13
moritz it's dead, jim
jaffa4 Star trek?
pippo :-(
lue r: my $a = 0; for ^100 { $a += $_ }; say $a; say now - BEGIN now; say now - INIT now;
camelia rakudo-jvm 882e33: OUTPUT«(timeout)» 20:14
..rakudo-parrot 215ba6: OUTPUT«4950␤0.10701221␤0.0462985␤»
lue pippo: I think INIT now should ignore startup time, if I read S04 right.
pippo lue: thank you!
moritz well, BEGIN also happens after startup time :-)
just at compile time 20:15
pippo and INIT? 20:16
lue moritz: I almost (*almost*) think we should take r-j off the r: command until it stops being so prone to issues, holding everybody up.
pippo: INIT happens asap at run-time (BEGIN is asap at compile-time)
pippo: perlcabal.org/syn/S04.html#Phasers
moritz lue: I almost agree
pippo OK then it is what I wanted. 20:17
lue: thank you.
lue moritz: :)
pippo Anybody nows how much time r-j need to come back? 20:18
masak lue, moritz: almost +1
pippo Anybody knows how much time r-j need to come back?
lue pippo: It's just that r-j on the eval server is having memory trouble. (If you had a local copy of r-j, it would be fine and dandy all the time) 20:19
lue does not have a compiled r-j at the moment. </disclamer>
*disclaimer
pippo I have it. I am using Camelia to show you...
moritz pippo: it usually needs manual restart :( 20:20
pippo :-(
moritz j: say 42 20:21
camelia rakudo-jvm 882e33: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
jaffa4 Can I mix npq and Perl 6 in one project? 20:22
moritz jaffa4: yes, if you are careful and you know what you're doing
j: say 42 20:23
camelia rakudo-jvm 882e33: OUTPUT«42␤»
jaffa4 I mean if I write some of the code in npq and some of the code in Perl 6
pippo r-j: my @a; for ^200 {@a.push($_)}; say now - INIT now; 20:24
camelia rakudo-jvm 882e33: OUTPUT«0.297␤»
moritz can only repeat his previous statement
PerlJam jaffa4: why would you want this?
moritz pippo: I'd appreciate it if you wouldn't kill r-j again :-)
jaffa4 to modify Perl6::action and to pass it to Perl6:grammar
safely
pippo gather{ for ^200 {take $_}}; say now - INIT now; #it will not kill it 20:25
... I hope
j: gather{ for ^200 {take $_}}; say now - INIT now; #it will not kill it 20:26
camelia rakudo-jvm 882e33: OUTPUT«===SORRY!=== Error while compiling /tmp/mylcwqYRfw␤Undeclared routine:␤ gather used at line 1␤␤»
pippo j: gather { for ^200 {take $_}}; say now - INIT now; #it will not kill it
camelia rakudo-jvm 882e33: OUTPUT«2.258␤»
lue ping FROGGS: have you worked more on slangs?
FROGGS lue: not within the last days, why? 20:27
pippo ^^do you see the difference between gather/take and pushing in a list
FROGGS lue: I am thinking about them on a daily basis though :o)
pippo ^^do you see the difference between gather/take (2.258) and pushing in a list (0.297)
lue FROGGS: no reason, but jaffa4 just revealed (indirectly) that he's doing something that needs them 20:28
well, maybe
jaffa4 ok, I am trying to get token array of perl 6 code.... by getting token information out of the parse tree out of Parl6:grammar 20:29
grondilu how would you go about getting all $k-longed distinct substrings of a given string? Is there anything more efficient than sub substrings($str, $k) { uniq map { $str.substr: $_, $k }, 0 ..^ $str.chars - $k }
FROGGS lue: I need jnthn to get the last bits in line... dunno when he+me are going to take the time for it
jaffa4 no, I have a lot of tokens now.. but not all tokens are contained in the parse tree
spaces , comments and ; are missing 20:30
lue reeeeally can't wait for slangs :)
moritz grondilu: apart from micro optimizations, I'm sure that's about the fastest way that is on contemporary rakudo
jaffa4 I have been thinking of modifying Perl6:: action to record these remaining tokens separately 20:31
and then merge them with the rest of tokens.
now if you know better solutionl..... 20:32
20:40 kaare__ left
masak will happily wait for slangs 20:44
dalek p: a78d074 | (Tobias Leich)++ | / (2 files):
mapped filereadable, filewritable, fileexecutable
20:48
grondilu can I send a gist to rakudo-jvm? 20:58
j: gist.github.com/grondilu/7309090
camelia rakudo-jvm 882e33: OUTPUT«(timeout)»
jaffa4 what slangs?
masak all of them! 20:59
grondilu Could someone run gist.github.com/grondilu/7309090 on JVM and tell the result and how long it took?
20:59 colomon left
jaffa4 what is slangs? 21:01
lue jaffa4: things that let you modify how Perl 6 is parsed. 21:03
jaffa4: perlcabal.org/syn/S02.html#Slangs 21:04
21:04 denysonique left, risou_awy is now known as risou 21:05 colomon joined
masak as currently spec'd, "defining a normal Perl macro" doesn't actually have anything to do with replacing $~MAIN 21:06
a macro definition is just a kind of routine defition.
definition* 21:07
21:07 araujo left, araujo joined
lue Sometimes I think it would be easier/consistenter just to make Perl6::Grammar and Perl6::Actions augment/supercede-able just like any other grammar or class. 21:08
pippo grondilu: here is the result on my machine: java.lang.OutOfMemoryError: GC overhead limit exceeded real2m30.990s user6m27.450s sys0m1.889s 21:12
grondilu: ... the result of executing on r-j, on my machine, your program gist.github.com/grondilu/7309090 21:14
jnthn back
21:16 colomon left
masak jnthn! \o/ 21:21
21:21 risou is now known as risou_awy
lue jnthn: am I supposed to get "Could not find sub &postfix:<>" after exercise 7.4 of the slides? (Add the -> method call op) 21:24
jnthn lue: No, but you are meant to remember to put :op<callmethod> in the <O(...)> of your postfix<.> operator... At a guess that's what's missing, anyway. :) 21:26
lue hasn't touched the slides in a while, so... 21:27
Now I get invoke() not implemented in class 'NQPMu', which I suspect is closer to "The problem is that we did not make methods accept the invocant (the object they are called on).". Either 7.5 fixes that or it's something I need to go and figure out. I'll look at NQP's Rubyish example again. 21:29
hang on, NQP's Rubyish example doesn't seem to do the :op<...> bit either for the methodcall op. Hm 21:31
21:31 denis_boyun left
jnthn lue: Does it instead have an action method for it? 21:32
lue yeah, Rubyish (and my PHPish) creates an ::Op(:op<callmethod>) 21:33
jnthn oh! 21:34
yeah, and you need that to set :name(...) I guess :0
So it has to be an action method
anyway, that's what's missing :)
lue jnthn: here's my grammar and action method, as it stands: gist.github.com/lue/01439dd8d78da377e8e8 21:36
(and causes the postfix:<> error) 21:37
It's essentially what the slides told me, and what the Rubyish example with NQP does, so idk what my issue is... :( 21:39
21:40 jeffreykegler joined 21:43 colomon joined
jnthn lue: lemme eyeball it, though I'm crazy tired :) 21:44
lue :)
21:45 bluescreen10 left 21:46 Guest76482 joined
jnthn lue: Does the method name need to be :sym not just : ? 21:47
pippo colomon: have you got any idea on why "gather { for ^200 {take $_}}" is slower (on r-j) than "my @a; for ^200 {@a.push($_)}"? 21:48
lue *headdesk*
Now I get "too many positional arguments: 2 passed, 1 expected", and *that* sounds like a job for $this implementation.
pippo colomon: by the way on niecza is the contrary i.e. the gather / take is much much faster.
lue jnthn: thanks :)
21:49 dmol left
pippo colomon: by the way on niecza is the contrary i.e. the gather / take is much much faster than pushing on a list. 21:49
colomon pippo: I believe gather / take is doing some fancy mechanics behind the scenes to work on r-j, but that's totally jnthn++ and sorear++'s area of expertise, not mine. 21:51
21:53 Guest76482 left
arnsholt I remember overhearing a discussion on that in Austin 21:54
sorear insisted it was pretty straightforward, but I'm not entirely sure when the key classes are called Take and CoTake =)
(Category theory is a bit scary) 21:55
masak :)
21:55 woolfy joined
jnthn I understand the model we took on the JVM, and I think I know how it differs from Niecza. It's a trade-off 21:56
masak codata is totally straightforward! well, actually it's straightbackward...
jnthn Niecza is basically stackless, iiuc. I didn't want to go that path with JVM 'cus it would have hurt our ability to use indy and the JVM JIT's inlining so effectively. 21:57
But it does mean our gather/take has to go saving stack frames.
arnsholt What's indy? I think I've seen that gram in the JVM stuff
jnthn The bug we have at the moment is that gather/take accidentally creates an extra call frame per take...
21:57 Guest76482 joined
jnthn arnsholt: invoke dynamic, written by people tired of writing invoke dynamic again and again 'cus invoke dynamic is a lot to type... 21:58
arnsholt Right, right
woolfy and lizmat are back home after nice Austrian Perl Workshop in Salzburg (we did some shopping and sightseeing and walking and more) 21:59
jnthn arnsholt: oh btw, it turns out my November trip to Oslo is actually taking place in Bergen...
So sadly won't be about in Oslo this month :(
jnthn wonders if there's a Bergen.pm :)
pippo jnthn: if the bug of gather and take is corrected, gather and take would be faster than pushing on a list on JVM? 22:00
arnsholt Aw, it'd be cool to have a beer
I'm sure there'll be another chance though
jnthn pippo: Hard to say.
pippo: sorear++ was aware of the bug and was pondering a solution, then got busy
sjn \o 22:01
jnthn pippo: And I've kinda been holding out for him to come back with an awesome solution rather than trying to dig deeply myself... :)
BenGoldberg Considering the common java-ish abbreviation of i18n for internationalization, shurely we should write invokedynamic as i11c?
pippo jnthn: OK :-)
arnsholt jnthn: Mal a propos, what kind of tools have you used to debug NQP/JVM code?
sjn jnthn: ah, too bad
arnsholt I'm growing a bit fed up with jdb, coming from gdb
sjn jnthn: drop by the BLUG guys in Bergen :) 22:02
lots of cool people there too :)
jnthn sjn: They blog in the past?
sjn eheh
jnthn arnsholt: I, uh...System.err.println... :)
arnsholt: And a bunch of intuition 22:03
arnsholt Aren't BLUG the crazy crazy people who implemented RFC 1149?
pippo If gather and take will not have a chance to become faster than pushing on a list. Perhaps it will be necessary to rewrite some function/methods implementations to avoid gather and take for the sake of speed?
sjn arnsholt: yes
arnsholt jnthn: Right, same approach as me then =)
jnthn pippo: We have a HashIter in Rakudo these days for that reason. Hash iteration also used to gather/take.
arnsholt pippo: Yeah, I think there are some things in Rakudo that could be gather/take but aren't because of performance 22:04
sjn wonders what the name of the Perl 5 spec project was
arnsholt Heh. What jnthn said
jnthn pippo: I think that we may be able to do some amount of batching.
pippo: I'm not sure what liberties the spec does/doesn't give us there
pippo jnthn: I understand. I am looking forward to see this bug corrected. Meanwhile thank you for the help. 22:09
good night #perl6
22:09 pippo left
lue realizes he never actually made signatures do anything in PHPish *facepalm* 22:11
lue &
BenGoldberg The BLUG implementation of the CPIP protocol had ping times varying from 3211 to 6389 seconds 22:13
22:14 benabik left 22:17 ssutch left 22:20 ssutch joined 22:22 virtualsue left 22:23 stevan__ left 22:29 jnap left 22:30 Rotwang left 22:34 dave joined 22:35 dave is now known as Guest38437
BenGoldberg preflex: seen yoleaux 22:36
preflex yoleaux was last seen on #perl6 10 days, 3 hours, 14 minutes and 58 seconds ago, saying: 18:23Z <diakopter> Mouq: awesome work on stdsigspace Mouq++
BenGoldberg Who had been running the yoleaux bot? 22:37
22:39 telex left
masak 'night, #perl6 22:44
diakopter 'night 22:45
BenGoldberg: dpk
22:45 tobyink left 22:52 jeffreykegler left 22:53 jaffa4 left
jnthn should rest also 22:54
o/
diakopter o/
22:55 rurban left 22:58 dmol joined 23:05 risou_awy is now known as risou 23:14 PacoAir left 23:15 dmol left, stevan_ joined
BenGoldberg preflex: seen dpk 23:19
preflex dpk was last seen on #scheme 11 days, 4 hours, 54 minutes and 27 seconds ago, saying: if you use Chibi you can add Lua too later, because apparently there's a Lua front-end coming at some point i think
23:20 grondilu left
BenGoldberg preflex: ask dpk Could you please reboot yoleaux? 23:21
preflex Consider it noted.
23:21 telex joined 23:23 pdurbin joined 23:24 risou is now known as risou_awy
lue I feel bad now, forgetting preflex can handle messages too :) 23:25
23:35 telex left 23:38 xdbr_ joined, xdbr_ left 23:41 colomon left 23:42 colomon joined 23:43 davec` joined 23:46 Guest38437 left 23:48 telex joined 23:49 benabik joined