»ö« 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/co2LCoRvejColons may not be used to delimit quoting constructsat /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_lUnable 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/G3psVWzgxYTwo terms in a rowat /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 ⏏⩵ 1Parse 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/MkVEGNmmJWVariable '@a' is not declaredat /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 foundcurrent 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/EYMn48RIQlUnrecognized adverb: :NQPat /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«hello0.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«hello0.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«49500.107012210.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/mylcwqYRfwUndeclared 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
|