»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by sorear on 25 June 2013. |
|||
00:01
donk joined
|
|||
dalek | ast: 77b8dc4 | (Elizabeth Mattijsen)++ | S32-list/roll.t: Add tests for sanity of .roll on Enums |
00:04 | |
00:10
woolfy left
00:14
tgt joined
00:18
tgt left
01:09
ssutch joined
01:14
tgt joined
01:19
tgt left
01:21
DEA7TH joined
01:33
hoverboard joined
01:46
woosley joined
01:52
ssutch left,
kurahaupo left
01:57
ssutch joined
02:04
lustlife joined
02:15
tgt joined
02:20
tgt left
02:26
xragnar_ joined,
xragnar left,
xragnar_ is now known as xragnar
02:30
raydiak joined
02:33
raiph left
02:51
klapperl joined
02:54
klapperl_ left
02:55
rurban1 joined
03:02
woosley left
03:03
woosley joined
03:06
ssutch left
03:10
ssutch joined
03:12
xenoterracide left
03:16
ssutch left,
jnap left,
tgt joined
03:21
tgt left,
cognominal left
03:22
cognominal joined
03:31
iolympian joined
03:35
ssutch joined
03:38
xenoterracide joined
03:45
xenoterracide left,
ssutch_ joined,
ssutch left
03:46
jnap joined
03:47
MrMeek joined
03:51
woosley left,
jnap left
03:55
woosley joined
03:56
iolympian left
04:03
colomon joined
04:05
bjz joined
04:17
tgt joined
04:22
tgt left
04:26
colomon left
04:30
colomon joined
04:33
xenoterracide joined
04:40
colomon left
04:41
colomon joined
04:57
xenoterracide left
04:59
sorear left
05:08
DEA7TH left
05:14
BenGoldberg left
05:17
tgt joined
05:21
kaare_ joined
05:22
tgt left
05:27
[Sno] left
05:43
rurban1 left
05:44
thou left
05:45
zby_home joined
05:56
sorear joined
05:58
kaare_ left
06:03
hoverboard left
06:14
stevan_ left,
rurban1 joined
06:18
tgt joined
06:19
rurban1 left
06:22
kaare_ joined
06:23
tgt left
06:35
[Sno] joined
06:38
JimmyZ left
06:49
jnap joined
06:53
jnap left
07:00
Juliet joined
07:01
userperl joined
07:04
userperl left
07:06
Juliet left
07:10
darutoko joined
07:15
rurban1 joined,
dmol joined
07:20
rurban1 left
07:28
FROGGS joined
|
|||
FROGGS | morning | 07:30 | |
07:37
IllvilJa joined
07:48
stevan_ joined
07:49
jnap joined
07:54
jnap left,
woolfy joined
07:58
telex left
|
|||
moritz | \o FROGGS, * | 07:58 | |
08:00
telex joined
08:12
woolfy left
08:14
denis_boyun joined
08:16
rurban1 joined
08:21
rurban1 left
08:37
SamuraiJack joined
08:38
kaleem joined
08:44
fhelmberger joined
08:47
FROGGS left
08:50
jnap joined
08:51
kurahaupo joined
08:55
jnap left
|
|||
sergot | morning #perl6! o/ | 08:55 | |
TimToady | good afternoon from beijing | 08:57 | |
08:58
JimmyZ joined
|
|||
arnsholt | o/ | 09:14 | |
09:17
rurban1 joined
09:19
rurban2 joined
|
|||
masak | \o | 09:21 | |
nwc10 | good UFT ambigutity | ||
09:22
rurban1 left
|
|||
nwc10 | gah | 09:22 | |
good UGT ambiguity, #perl6 | |||
09:23
rurban2 left
09:25
FROGGS[mobile] joined
|
|||
corecatcher | Good Morning from hanover | 09:28 | |
jnthn | UFT? I...won't guess. :P | 09:29 | |
TimToady: Hope the air is more breatheable than when I was last there... | |||
TimToady | well, we can see other buildings :) | 09:30 | |
09:30
dakkar joined
|
|||
TimToady | and we have masks for the days we can't :) | 09:30 | |
09:30
ssutch_ left
09:31
ssutch joined
|
|||
nwc10 | jnthn: it was an innocent typo. Off by one keyboard error | 09:31 | |
corecatcher | get yourself a pure air resp. mask | ||
09:35
ssutch left
|
|||
masak | nwc10: I hate it when my Unified Field Theories are ambiguous. so annoying! | 09:37 | |
moritz | aren't they all, at least by a gauge term? :-) | 09:39 | |
masak | I'm not savvy enough to gauge that. :) | 09:40 | |
09:41
virtualsue joined
09:46
rindolf joined
|
|||
moritz isn't gaugy enough to savy that | 09:48 | ||
09:51
jnap joined
|
|||
masak .oO( the gaugy agenda ) | 09:51 | ||
09:56
jnap left
09:58
ssutch joined
09:59
ssutch left
10:00
ssutch joined
10:06
woosley left
10:11
rindolf left
10:20
rurban1 joined
10:24
rurban1 left,
denis_boyun left
10:45
colomon_ joined
10:46
Ven joined
10:47
colomon left,
colomon_ is now known as colomon
|
|||
Ven | r: say sort {$^b leg $^a}, (3, 20, 100).pick(*) | 10:48 | |
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«3 20 100» | ||
Ven | r: say sort ->$a,$b{$b leg $a}, (3, 20, 100).pick(*) | 10:49 | |
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«3 20 100» | ||
Ven | r: say sort {$^a leg $^b}, (3, 20, 100).pick(*) | ||
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«100 20 3» | ||
Ven | Yeah, that's really surprising .. | ||
jnthn | Why? You used a string comparison operator. | 10:50 | |
10:50
ClarusCogitatio left
10:51
ClarusCogitatio joined,
ssutch left
10:52
jnap joined
|
|||
jnthn | leg is string (consistent with le, ge, eq, ne...), <=> is numeric (consistent with <=, >=, ==, !=), and cmp is "figure something out somehow" :) | 10:52 | |
10:53
rindolf joined
10:54
ClarusCogitatio left,
ClarusCogitatio joined
|
|||
Ven | jnthn: no, I mean $^ lexicographic ordering | 10:56 | |
ttjjss.wordpress.com/2010/11/21/per...r-parsing/ < neat idea | |||
10:56
jnap left
|
|||
jnthn | Ven: Oh...yeah, that's the point of them :) | 10:58 | |
11:00
kurahaupo left
11:03
gummy joined
11:04
gummy left
11:17
prammer joined
11:18
virtualsue left
11:21
rurban1 joined
11:28
rurban1 left
11:29
denis_boyun joined
|
|||
Ven | r: my @x; say ( @x[*-1] :exists).perl | 11:42 | |
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«(Bool::False,)» | ||
Ven | r: my @x; say so ( @x[*-1] :exists) | ||
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«True» | ||
Ven is going through #perl6 archives for some reasons | 11:43 | ||
r: my @a will begin { say $_.WHAT }; | |||
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«(Mu)» | ||
11:53
jnap joined
|
|||
Ven | r: my @x; say any True, ( @x[*-1] :exists).perl | 11:53 | |
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«any(True, (Bool::False,))» | ||
Ven | r: my @x; say any True, ( @x[*-1] :exists) | ||
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«any(True, False)» | ||
Ven | r: my @x; say so any ( @x[*-1] :exists) == True | ||
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«True» | ||
Ven | uh? | ||
r: my @x; say so (any ( @x[*-1] :exists) == True) | |||
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«True» | ||
Ven | oh yeah, I'd need a junction to list | 11:55 | |
r: my @x; say so (@x[*-1] :exists).grep True | |||
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileTwo terms in a rowat /tmp/tmpfile:1------> my @x; say so (@x[*-1] :exists).grep ⏏True expecting any of: …» | ||
Ven | r: my @x; say so (@x[*-1] :exists).grep(True) | ||
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«True» | ||
Ven | r: my @x; say (@x[*-1] :exists).grep(True).perl | ||
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«(Bool::False,).list» | ||
Ven | r: say (False,).grep(True).perl; | 11:56 | |
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«(Bool::False,).list» | ||
jnthn | say so any ( @x[*-1] :exists) == True # pasres as say so any( ( @x[*-1] :exists) == True ) | ||
Ven | I'm pretty surprised. | ||
why does grepping True in a list of False gives that false ? | |||
r: say (False,).grep(* == True).perl; | |||
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«().list» | ||
Ven | r: say False ~~ True | 11:57 | |
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«Potential difficulties: Smartmatch against True always matches; if you mean to test the topic for truthiness, use :so or *.so or ?* instead at /tmp/tmpfile:1 ------> say False ~~⏏ …» | ||
jnthn | It smartmatches, and...what you just saw. :) | ||
Ven | that's pretty surprising, too... | ||
11:57
jnap left
|
|||
Ven | I'll take it that smartmatching on False always gives false | 11:58 | |
okay, so | |||
r: my @x; say so (@x[*-1]:exists).grep(* == True) | |||
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«False» | 11:59 | |
Ven | am I missing any obvious shortcut to know if *one* elem exists? | ||
jnthn | Yeah, but that's hardly idiomatic. | ||
Ven | Well, obviously | ||
jnthn | r: my @x; say so any(@x[*-1]:exists) | ||
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«False» | ||
Ven | oh, yeah, any just does the job | ||
Ven reinvents any, but in a less powerful manner. | 12:00 | ||
jnthn | And if you're in a boolean context then the so is implicit | ||
Ven | yeah, that's just to print. | ||
is any optimized for boolean context ? | |||
jnthn | *nod* | ||
Ven | (stopping after the first True in bool context) | 12:01 | |
jnthn | yeah; see github.com/rakudo/rakudo/blob/nom/...ion.pm#L10 | ||
Ven | jnthn++ # yay ! | 12:02 | |
12:07
AW3i joined
12:10
FROGGS joined
12:13
ggoebel11118 left,
ggoebel11118 joined
12:17
hummeleB1 joined
12:23
rurban1 joined
12:25
brrt joined,
brrt left
|
|||
FROGGS | jnthn: I have problems to patch perl6_ops.c like in irclog.perlgeek.de/perl6/2014-03-27#i_8503522 | 12:26 | |
jnthn: because MVMP6opaque_real_data is about the MVMP6opaqueBody, but do we have a MVMP6opaqueBody there? | 12:27 | ||
12:27
colomon left
12:28
rurban1 left
12:29
skids left
|
|||
jnthn | FROGGS: No; you can get it with OBJECT_BODY | 12:34 | |
FROGGS | jnthn: I know, but then I have the replaced body, right? | ||
and what do I do with it? how do I access ->items? | 12:35 | ||
jnthn | ah, I see what you mena. | 12:37 | |
FROGGS | gist.github.com/FROGGS/84550938a264ffd8b457 | ||
jnthn | Probably need to get the struct for P6List to be a struct of its body. | 12:38 | |
FROGGS | explodes too with "this type does not support elems" | ||
jnthn | And then write a macro to make this convenient. | ||
FROGGS | oha | ||
12:38
Ven left
|
|||
FROGGS | okay, I give it a try | 12:38 | |
saywerx++ # "like really fucking sucks" | 12:39 | ||
nwc10 | like the NOTWORK :-/ | ||
(for me. I'm on borrowed 4G) | |||
FROGGS | nwc10: i have GSM | 12:40 | |
>.< | |||
like 9600 baud or so | |||
[Coke] waves blearily from $dayjob | 12:41 | ||
BooK | so I decided I'm going to start learning Perl 6, by writing a module | 12:49 | |
where should I start | |||
BinGOs | Acme::Perl6::Is::My::Bitch | 12:50 | |
[Coke] | no. :P | ||
FROGGS | BooK: choose a module with already existing deps or with just a few deps you'd have to write | ||
tadzik | hahaha | ||
BooK | FROGGS: I was thinking about porting my own Git::Repository from Perl 5 | 12:51 | |
arnsholt | Oooh, that sounds neat | ||
jnthn | That could be interesting :) | ||
arnsholt | What kind of stuff does that module depend on? | ||
FROGGS | deps.cpantesters.org/?module=Git%3A...erl=latest | ||
BooK | not much I think | 12:52 | |
FROGGS | all of the deps are built in into Perl 6 I think | ||
BooK | as I hoped :-) | ||
arnsholt | Yeah, looking at FROGGS' link, mostly file things, looks like | ||
There's File::Find, I guess, but there's a six version of that | |||
nwc10 | finally, I have an IP again | 12:53 | |
12:53
jnap joined
|
|||
FROGGS | BooK: the next step would be to sketch the API I guess, and then to play around how that might be written nicely | 12:53 | |
BooK | I wasn't aware that I was using File::Find :-) | ||
FROGGS: the point of porting is that there's already an API | 12:54 | ||
FROGGS | BooK: okay, next step: done | ||
:o) | |||
at least, the first half | |||
BooK | this is really easy | ||
up until now, Perl 6 is pretty cool ;-) | 12:55 | ||
arnsholt | BooK: Oh, could very well be. I'm just going off that cpantesters link =) | ||
[Coke] | something from the mojo suite? ;) | 12:56 | |
BooK | I suppose my main question was more about where to find docs. | ||
doc.perl6.org/ is the probable answer | |||
arnsholt | Yeah, or asking around here. Docs is something of a weak spot, sadly | 12:57 | |
12:58
jnap left
|
|||
BooK | We'll see. I might be distracted by some shiny thing at any point, anyway. | 12:58 | |
sjn | \o | 12:59 | |
perl 6 talk in Oslo (at the Uni) in about 2 hours \o/ | 13:00 | ||
come one, come all :) | |||
nwc10 | isn't that a bit late notice to book flights? :-/ | 13:01 | |
is it being recorded? | 13:02 | ||
13:03
guru joined
13:04
guru is now known as Guest28116,
Guest28116 is now known as ajr_
13:05
Ven joined
|
|||
tadzik | it's Damian I think, so I doubt it :/ | 13:10 | |
13:10
kbaker joined
|
|||
cosimo | going there in an hour or so :) | 13:10 | |
13:11
zakharyas joined
|
|||
Ven | r: class A { has $.foo; }; my @l = (Any, A.new(:foo<hey>); ); .?foo.say for @l; | 13:12 | |
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«Nilhey» | ||
Ven | r: class A { has $.foo; }; my @l = (Any, A.new(:foo<hey>); ); .foo.say for @l; | ||
camelia | rakudo-moar 3699aa: OUTPUT«No such method 'foo' for invocant of type 'Any' in method reify at src/gen/m-CORE.setting:7563 in method reify at src/gen/m-CORE.setting:7426 in method gimme at src/gen/m-CORE.setting:7878 in method sink at src/gen/m-CORE.setting:8281 i…» | ||
..rakudo-jvm 3699aa: OUTPUT«No such method 'foo' for invocant of type 'Any' in method reify at gen/jvm/CORE.setting:7506 in method reify at gen/jvm/CORE.setting:7369 in method gimme at gen/jvm/CORE.setting:7821 in method sink at gen/jvm/CORE.setting:8224 in block …» | |||
..rakudo-parrot 3699aa: OUTPUT«No such method 'foo' for invocant of type 'Any' in block at /tmp/tmpfile:1» | |||
Ven | Perl6++ | ||
Although I don't remember reading about it :/. Just found it in Junction.pm | |||
m: for ^1e5 { []; }; say "alive"; | 13:19 | ||
camelia | rakudo-moar 3699aa: OUTPUT«(timeout)» | ||
13:19
daniel-s_ joined,
SamuraiJack left
|
|||
Ven | r: role A[::T]; role B[::T]; role C[::T] does A[T] does B[T]; say "alive"; | 13:20 | |
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileToo late for semicolon form of role definitionat /tmp/tmpfile:1------> role A[::T]; role B[::T]; ⏏role C[::T] does A[T] does…» | 13:21 | |
Ven | r: role A[::T] {}; role B[::T] {}; role C[::T] does A[T] does B[T] {}; say "alive"; | ||
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«alive» | ||
13:21
AW3i left,
prevost joined
|
|||
Ven | r: raw.githubusercontent.com/Nami-Doc...opedia.pm6 | 13:21 | |
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileTwo terms in a rowat /tmp/tmpfile:1------> https⏏://raw.githubusercontent.com/Nami-Doc/Ty expecting any of: …» | ||
Ven | r: gist.github.com/Nami-Doc/c6161cc3b29a1a417b9f | 13:22 | |
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«===SORRY!===Could not locate compile-time value for symbol T» | ||
Ven | bu-but | ||
r: role A[::T] {}; role B[::T] {}; role C[::T] does A[T] does B[T] {}; role D[::T] does C[T] {}; say "alive"; | |||
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«alive» | 13:23 | |
Ven | r: role A[::T] {}; role B[::T] {}; role C[::T] does A[T] does B[T] {}; role D[::T] does C[T] does X[T] {}; role X[::T] {}; say "alive"; | ||
camelia | rakudo-moar 3699aa: OUTPUT«===SORRY!===Cannot find method 'parameterize'» | ||
..rakudo-parrot 3699aa, rakudo-jvm 3699aa: OUTPUT«===SORRY!===No such method 'parameterize' for invocant of type 'Perl6::Metamodel::PackageHOW'» | |||
Ven | r: role A[::T] {}; role B[::T] {}; role C[::T] does A[T] does B[T] {}; role D[::T] {}; role E[::T] does C[T] does D[T] {}; say "alive"; | 13:24 | |
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«alive» | ||
13:24
rurban1 joined
|
|||
Ven | I don't understand why my gist won't do. | 13:25 | |
r: role Functor[::T] { }; role Apply[::T] { }; role Semigroup[::T] { }; Comonad[::T] does Functor[T] { }; role Applicative[::T] does Functor[T] does Apply[T] { }; role Monoid[::T] does Semigroup[T] { }; role Category[::T] { }; say "alive"; | |||
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«===SORRY!===Could not locate compile-time value for symbol T» | 13:26 | |
Ven | r: role Functor[::T] { }; role Apply[::T] { }; role Semigroup[::T] { }; Comonad[::T] does Functor[T] { }; role Applicative[::T] { }; role Monoid[::T] does Semigroup[T] { }; role Category[::T] { }; say "alive"; | ||
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«===SORRY!===Could not locate compile-time value for symbol T» | ||
Ven | r: role Functor[::T] { }; role Apply[::T] { }; role Semigroup[::T] { }; Comonad[::T] does Functor[T] { }; role Applicative[::T] { }; say "alive"; | 13:28 | |
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«===SORRY!===Could not locate compile-time value for symbol T» | ||
Ven | oh my god, I'm so damn blind. | ||
r: role Functor[::T] { }; role Apply[::T] { }; role Semigroup[::T] { }; role Comonad[::T] does Functor[T] { }; role Applicative[::T] { }; say "alive"; | 13:29 | ||
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«alive» | ||
13:29
rurban1 left
|
|||
Ulti | o___O | 13:29 | |
13:29
PZt left
|
|||
Ven | and so ... | 13:30 | |
r: gist.github.com/Nami-Doc/c6161cc3b29a1a417b9f | |||
camelia | rakudo-parrot 3699aa: OUTPUT«Could not instantiate role 'ArrowLoop':Not enough positional parameters passed; got 1 but expected 2current instr.: 'specialize' pc 22132 (src/gen/perl6-metamodel.pir:10426) (gen/parrot/Metamodel.nqp:2102)called from Sub '' pc 27863 (src/gen/per…» | ||
..rakudo-jvm 3699aa: OUTPUT«Unhandled exception: Could not instantiate role 'ArrowLoop':Not enough positional parameters passed; got 1 but expected 2 in specialize (gen/jvm/Metamodel.nqp:2025) in (gen/jvm/Metamodel.nqp:2465) in (gen/jvm/Metamodel.nqp:2461) in comp…» | |||
..rakudo-moar 3699aa: OUTPUT«Unhandled exception: Could not instantiate role 'ArrowLoop':Not enough positional parameters passed; got 1 but expected 2 at <unknown>:1 (/home/p6eval/rakudo-inst-1/languages/nqp/lib/Perl6/Metamodel.moarvm:specialize:4294967295) from src/gen/m-…» | |||
Ven | wait, what ? | 13:31 | |
r: role Category[::T] { }; role Arrow[::T] does Category[T] { }; role ArrowLoop[::T] does Arrow[T] { }; say "alive"; | 13:32 | ||
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«alive» | ||
13:32
bluescreen10 joined
|
|||
Ulti | Ven can you give some commentary on what you're upto? | 13:32 | |
for us lesser mortals ;P | 13:33 | ||
Ven | r: I'm trying to get role for that hierarchy www.haskell.org/wikiupload/d/df/Typ...iagram.png | ||
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileUnable to parse role definitionat /tmp/tmpfile:1------> I'm trying to get role for ⏏that hierarchy www.haskell.org/wi…» | ||
Ven | Ulti: ^^ | ||
Ulti | okedoke :S | 13:34 | |
Ven | but rakudo gives me an error on the last line and I can't quite understand why. | 13:35 | |
13:39
rurban1 joined
|
|||
PerlJam | Ven: looks like a bug to me. | 13:40 | |
Ven: are you getting "Could not instantiate role 'ArrowLoop'" ? | |||
Ven | PerlJam: that's what camelio seems to tell me | 13:41 | |
PerlJam: that's what camelia seems to tell me # whoops | 13:42 | ||
13:42
dayangkun joined
|
|||
PerlJam | Ven: put any statement after that last role. Just a 1; will do. | 13:42 | |
Ven | r: gist.github.com/Nami-Doc/c6161cc3b29a1a417b9f | ||
camelia | ( no output ) | 13:43 | |
Ven | Oh, alright... | ||
Ulti | try a blank line... | ||
Ven | r: role A[::T] {} | ||
camelia | rakudo-parrot 3699aa: OUTPUT«Could not instantiate role 'A':Not enough positional parameters passed; got 1 but expected 2current instr.: 'specialize' pc 22132 (src/gen/perl6-metamodel.pir:10426) (gen/parrot/Metamodel.nqp:2102)called from Sub '' pc 27863 (src/gen/perl6-metam…» | ||
..rakudo-moar 3699aa: OUTPUT«Unhandled exception: Could not instantiate role 'A':Not enough positional parameters passed; got 1 but expected 2 at <unknown>:1 (/home/p6eval/rakudo-inst-1/languages/nqp/lib/Perl6/Metamodel.moarvm:specialize:4294967295) from src/gen/m-Metamode…» | |||
..rakudo-jvm 3699aa: OUTPUT«Unhandled exception: Could not instantiate role 'A':Not enough positional parameters passed; got 1 but expected 2 in specialize (gen/jvm/Metamodel.nqp:2025) in (gen/jvm/Metamodel.nqp:2465) in (gen/jvm/Metamodel.nqp:2461) in compose (gen…» | |||
Ven | r: role A[::T] {}; | 13:44 | |
camelia | rakudo-parrot 3699aa: OUTPUT«Could not instantiate role 'A':Not enough positional parameters passed; got 1 but expected 2current instr.: 'specialize' pc 22132 (src/gen/perl6-metamodel.pir:10426) (gen/parrot/Metamodel.nqp:2102)called from Sub '' pc 27863 (src/gen/perl6-metam…» | ||
..rakudo-moar 3699aa: OUTPUT«Unhandled exception: Could not instantiate role 'A':Not enough positional parameters passed; got 1 but expected 2 at <unknown>:1 (/home/p6eval/rakudo-inst-1/languages/nqp/lib/Perl6/Metamodel.moarvm:specialize:4294967295) from src/gen/m-Metamode…» | |||
..rakudo-jvm 3699aa: OUTPUT«Unhandled exception: Could not instantiate role 'A':Not enough positional parameters passed; got 1 but expected 2 in specialize (gen/jvm/Metamodel.nqp:2025) in (gen/jvm/Metamodel.nqp:2465) in (gen/jvm/Metamodel.nqp:2461) in compose (gen…» | |||
Ven | Just trying to "display" it | ||
13:44
water joined,
hoverboard joined
|
|||
PerlJam | At a guess, it's running afoul of trying to return the value of the last statement executed and for some reason rakudo thinks that means pun the role and instantiate it. | 13:45 | |
Ven | Definitely | ||
13:47
skids joined
|
|||
Ven | Only thing that's pretty surprising is this | 13:51 | |
r: role A[::T] {}; does B[::T] does A[T]; 1; | |||
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«===SORRY!===Could not locate compile-time value for symbol T» | ||
Ven | I'd expect the "does does" to error or something | 13:52 | |
JimmyZ | std: role A[::T] {}; does B[::T] does A[T]; 1; | ||
camelia | std 09dda5b: OUTPUT«===SORRY!===Undeclared names: 'B' used at line 1 'T' used at line 1Undeclared routine: 'does' used at line 1Check failedFAILED 00:01 130m» | ||
JimmyZ | n: role A[::T] {}; does B[::T] does A[T]; 1; | ||
camelia | niecza v24-109-g48a8de3: OUTPUT«===SORRY!===GLOBAL::T does not name any package at /tmp/3REaJTHwMV line 1:------> role A[::T⏏] {}; does B[::T] does A[T]; 1;A type must be provided at /tmp/3REaJTHwMV line 1:------> role A[…» | ||
13:53
daniel-s_ left,
jnap joined
13:56
virtualsue joined
13:57
water left
|
|||
PerlJam | Ven: I dunno. you can say «$some-val does Foo;» and you used to be able to say «class Alpha { does Foo; ... }» maybe it's some sort of left-over syntax | 13:58 | |
(I actually don't know if the «also» operator is implemented or not, so maybe you can still do the latter) | 13:59 | ||
Ven | PerlJam: yeah, `blah does Foo` makes sense if `blah` exists | 14:00 | |
r: role B {}; class A { also does B }; | 14:01 | ||
camelia | ( no output ) | ||
Ven | r: class A { if True { method foo() { say "alive"; } } }; A.new.foo | 14:02 | |
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«alive» | ||
Ven | r: class A { if False { method foo() { say "alive"; } } }; A.new.foo | 14:03 | |
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«alive» | ||
Ven | That | ||
's not new under the sun, although I'm not that fond of it, but, going on ... | |||
r: class A { if False { my $a = 5; method foo() { say "alive" ~ $a; } } }; A.new.foo | |||
camelia | rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«use of uninitialized value of type Any in string contextalive» | ||
..rakudo-parrot 3699aa: OUTPUT«use of uninitialized value of type Any in string context in method foo at /tmp/tmpfile:1alive» | |||
Ven | r: class A { if False { my $a = 5; method foo() { say "alive" ~ $a; } } else { my $a = 6; } }; A.new.foo | ||
camelia | rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«use of uninitialized value of type Any in string contextalive» | ||
..rakudo-parrot 3699aa: OUTPUT«use of uninitialized value of type Any in string context in method foo at /tmp/tmpfile:1alive» | |||
PerlJam | Those are for future Perl 6 obfuscated code contests :) | 14:04 | |
14:04
[Sno] left
|
|||
Ven | masak already blogged about this, I believe ... | 14:04 | |
14:05
[Sno] joined
14:09
thou joined
|
|||
masak | you're referring to the fourth bullet point of strangelyconsistent.org/blog/lexpad...eed-fixups | 14:11 | |
Ven | Yep. | 14:13 | |
14:14
logie joined
|
|||
Ven | I'd really like this `class { sub { method foo {} } }` stuff getting fixed, looks bad from outside. But we already talked about that. | 14:15 | |
masak | "getting fixed"? is it still your perception that something is broken in that area? | ||
to me, it's a complete DIHWIDT. | 14:16 | ||
aka "with great hammers comes great thumb-hurt... if you intentionally aim for the thumb". | |||
Ven | masak: to me, it just shows the underlying problem. It's one example of the issue | ||
masak | "the issue"? | ||
Ven | I shouldn't be allowed to shoot myself in the foot | ||
PerlJam | Ven: Perl is not about that. | 14:17 | |
xfix | This is impossible. | ||
masak | Ven: we mostly don't roll like that. | ||
Ven: Perl 6 gives you enough rope to shoot yourself in the foot. | |||
Ven | masak: not that way. | ||
tadzik | I have no idea what you mean :D | ||
[Coke] | masak: perhaps "to hang yourself by your ankle"? | ||
tadzik | what do you want it to do? | ||
[Coke] | (though I know you did that on porpoise.) | ||
xfix | Perhaps it would be harder to shoot yourself in the foot, but when you do, it would hurt more. | 14:18 | |
masak | m: class C { method foo { my $x = 42; method bar { say $x } } }; C.bar | ||
camelia | rakudo-moar 3699aa: OUTPUT«(Any)» | ||
masak | tadzik: we're talking about ^ | ||
Ven | in some languages, I think about ruby, class bodies are executable, so you can actually use `if` to define methods conditionally | ||
tadzik | masak: ah | ||
oh please no | |||
let's not have this kind of stuff | |||
masak | "this kind of stuff"? | ||
PerlJam | heh | ||
tadzik | conditional methods | ||
Ven | I'm not judging it. I'm saying, it works in Ruby. It parses in perl6, but doesn't do what you think it does. | 14:19 | |
PerlJam | we already have conditional methods ... just use EVAL | ||
tadzik | I mean, you can do that if you really want to | ||
but, no | |||
masak | tadzik: right. | ||
14:19
kaleem left
|
|||
FROGGS | we have multis, that is pretty much one would need, no? | 14:19 | |
(and roles) | 14:20 | ||
masak | Ven: if it doesn't do what you think it does, it's because you haven't grok'd the underlying model yet. | ||
Ven | Something that can "Never Do What You Mean" should error out. Not warning (like certain languages like to do ... Only warn on stuff that can never be right ...) | ||
PerlJam | Ven: There's always at least 2 choices. Perl 6 choose to change what you think | ||
masak | Ven: we don't arbitrarily disallow corner cases we don't like. | ||
Ven: we tried doing that a few times, and we were always surprised by people's use cases. | |||
Ven: we've *had* this discussion at least once. | |||
Ven | We did. | ||
masak | good. I refer you to the backlog. :) | 14:21 | |
Ven | and that conversation ended with a DIHWIDT. | ||
masak | right. | ||
Ven: to make it clear, you're not even fighting language design here, you're fighting community design. | |||
Ven | I'm fine with having that opinion different, really. | 14:22 | |
To me, that's something that can never mean what you think it means, and that's why I think it's bad | |||
14:22
fhelmberger left
|
|||
PerlJam | Ven: as an aside, once Perl 6 is fully formed, you should be able to write a module that can "correct" these things | 14:23 | |
Ven | Yes, we talked about that too. "use strict"-like. Not really what I like | ||
moritz | Ven: maybe you'd be more at home in a statically, strictly checked language? | 14:24 | |
tadzik | yeah | ||
moritz | like ocaml, haskell, the like? | ||
Ven | I am mostly doing haskell, so yeah. | ||
jnthn | Ven: If you realize that declarations are compile time, and that method is a declaration, things get a lot less surprising. | ||
14:24
btyler joined
|
|||
Ven | I really don't like ocaml, but that's a matter of taste :). | 14:25 | |
PerlJam | .oO( tastes like chicken? ) |
||
moritz hasn't really tried it, just meant it as an example for a strongly checked language | |||
jnthn | .oO( tastes like camel? ) |
||
Ven | (actually, I mostly do Scala because I'm not start enough :p) | 14:26 | |
masak | jnthn: yeah, I suspect this is a matter of Ven's mind not having converged fully with Perl 6's parsing/runtime model. | 14:27 | |
Ven | No, really not. I understand what's runtime and what's compile-time. Not my point. | 14:28 | |
masak | I'm sure you understand the distinction, yes. | 14:29 | |
Ven | My point is, if it doesn't mean what it looks like it means, why doesn't it error out ? | ||
masak | because we don't believe in punishing programmers for using the language creatively. | ||
Ven | "use uncreative" | 14:30 | |
masak | we believe if we did that, we'd have a poorer language for it. | ||
jnthn | Ven: If you know the language you're reading, it doesn't look like it means something else :P | ||
Ven | I'd like that claim to be backed by an example of a case where it's useful, obviously | ||
14:30
virtualsue left
|
|||
Ven | it's like, in scala, you can't pattern match on type members (because the JVM does type erasure). It never does what you think it means. Do you think it'd refuse to compile ? no, it merely prints a warning | 14:31 | |
PerlJam | Ven: Perl can't predict what's in people's heads. | ||
Ven | Can't it ;) | ||
jnthn | Ven: Useful if you want to group together various methods that will share some lexical state, without leaking it to other methods. | ||
14:32
elijah joined
|
|||
Ven | m: class C { method foo { my $x = 42; method bar { say $x } } }; C.bar | 14:32 | |
camelia | rakudo-moar 3699aa: OUTPUT«(Any)» | ||
Ven | jnthn: ^^ that doesn't seem broken to you ? | ||
jnthn | Ven: No. | ||
moritz | m: class C { method foo { my $x = 42; method bar { say $x } } }; C.foo; C.bar | ||
camelia | rakudo-moar 3699aa: OUTPUT«42» | ||
14:33
rurban1 left
|
|||
jnthn | Ven: It's doing exactly what I'd expect if you put a sub in a sub and call the inner one first. | 14:33 | |
PerlJam | Ven: sounds like a P6lint is what you want (But don't *really* want because it's a tool outside of the normal compile) | ||
FROGGS | jnthn: I think I've fixed it O.o | ||
PerlJam | er, compiler | ||
jnthn | FROGGS: ooh! :) | ||
Ven | r: sub a { sub b { say 'alive'; } }; b(); | 14:34 | |
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileUndeclared routine: b used at line 1» | ||
Ven | Because subs are lexically scoped. Which makes it sane. | 14:35 | |
You can't have access to b without running through a first. | |||
moritz | you can do the same with subs | ||
m: sub a { our sub b { say 'alive' } }; b() | |||
camelia | rakudo-moar 3699aa: OUTPUT«===SORRY!=== Error while compiling /tmp/MmA26fjPr_Undeclared routine: b used at line 1» | ||
jnthn | sub a { our sub b { say 'alive'; } }; GLOBAL::b(); | ||
r: ub a { our sub b { say 'alive'; } }; GLOBAL::b(); | |||
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileUndeclared routines: a used at line 1 ub used at line 1. Did you mean 'uc'?» | ||
moritz | m: module Blub; sub a { our sub b { say 'alive' } }; Blubb::b | ||
camelia | rakudo-moar 3699aa: OUTPUT«===SORRY!===Could not find symbol '&b'» | ||
moritz | m: module Blub; sub a { our sub b { say 'alive' } }; Blub::b | 14:36 | |
camelia | rakudo-moar 3699aa: OUTPUT«alive» | ||
jnthn | Right. | ||
moritz | it helps to not misspell the package name :-) | ||
jnthn | :) | ||
Ven | *doesn't like it* | 14:37 | |
FROGGS | jnthn: one good thing is that I understand the problem, so I'll be able to write a good commit message this time :o) | ||
jnthn | m: class C { method logging($on) { method log($msg) { say $msg if $on } } }; C.log('omg'); C.logging(1); C.log('wtf'); | 14:38 | |
camelia | rakudo-moar 3699aa: OUTPUT«wtf» | ||
14:38
prevost left
|
|||
jnthn | FROGGS: yay | 14:39 | |
Ven | that's a nice example. | ||
PerlJam | nice enough that we won't have t his discussion again? ;) | 14:40 | |
Ven | I guess it'd probably do it with a `has` usually, though, but it's a good examp;e | ||
PerlJam: am I that unpleasant to talk with :p ? | |||
jnthn | You can do it with a has too, but that doesn't cover you if you wanted to have a way to disable the logging accross all instances, for example :) | 14:41 | |
PerlJam | Ven: nah, it's just tiresome to rehash the same topic with neither side budging :) | ||
Ven | then a `our` | ||
PerlJam: I'm budging ! | |||
14:41
virtualsue joined
14:42
kaare_ left
|
|||
FROGGS | nwc10++ # lightning talk in german *g* | 14:42 | |
Ven | I asked for an example, jnthn gave me a cool example, I'm not 100% convinced **with that example** but it means it can be useful. So yeah, I won't rehash that topic | ||
jnthn | Ven: Right, you could. My point is just that my way let me restrict state to a much narrower scope, which tends to be a positive thing. | 14:43 | |
Ven | so, it was nice having that discussion, cause I budged :p. | ||
jnthn | FROGGS: Nice! :) | ||
FROGGS: Good job it wasn't me, I learned all my German from food menus and Rammstein... :P | 14:44 | ||
FROGGS | >.< | ||
Ven | "we're all living in america" # trust me I speak german | ||
FROGGS | menus++, rammstein-- | ||
jnthn | FROGGS: We're all teenagers once. :) | 14:45 | |
FROGGS | I was born as an adult :o) | ||
Ven | as somebody in class right now, I concur :D | 14:46 | |
(or is it "someome" ? I can't english :/) | |||
FROGGS | bbl, need a charger... | ||
14:46
FROGGS left
|
|||
[Coke] | jnthn: what, no Eisbrecher? | 14:46 | |
... dammit, now that's stuck in my head. | |||
jnthn | [Coke]: 'fraid not...is it worth checking out? :) | 14:47 | |
moritz | Ven: afaict "someone" and "somebody" are interchangable | ||
14:48
xenoterracide joined
|
|||
jnthn really should get on wiht $dayjob slides, so later on he can get on with parallel GC moarbug... | 14:48 | ||
14:48
rurban1 joined
14:49
hoverboard left
|
|||
Ven | moritz++ # ty | 14:50 | |
masak | someone should write up jnthn++'s example (and the discussion that preceded it) as a blog post. | 14:52 | |
Ven | Yes, definitely. Even better than backlog ;o) | 14:54 | |
masak | ok, #perl6. getting on a plane to .cn now -- for the next few weeks, I'll have a time zone of GMT+8. | 14:57 | |
I think I'll be pretty present, maybe even active, on #perl6. | |||
moritz | masak: visiting TimToady in Beijing? :-) | 14:58 | |
14:58
hoverboard joined
|
|||
masak | no, we'll be in different cities :) | 14:58 | |
PerlJam | masak: have a good trip | 14:59 | |
japhb | Have a good trip, masak! | 15:01 | |
yoleaux | 13 Mar 2014 07:54Z <jnthn> japhb: the time related bits, debugging the parallel GC (yay fun :P) and then a whole bunch of safety/hardening. | ||
jnthn | Dammit, 2 weeks after I wrote that I'm still working on all of those... | 15:02 | |
15:03
kurahaupo joined
15:11
treehug88 joined
15:15
[Sno] left
15:17
hoverboard left
15:18
virtualsue left
|
|||
dalek | ast: 8f2dcae | moritz++ | S32-str/uc.t: fudge case folding test involving ß there is already a ticket open for that (RT #121377) |
15:21 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=121377 | ||
moritz | where can I find some information about Unicode case folding of ß for rt.perl.org/Ticket/Display.html?id=121377 ? | 15:24 | |
dalek | ast: 32c006f | moritz++ | S32-str/tclc.t: moar-fudge another Unicode bug |
15:26 | |
15:27
raiph joined
|
|||
Ulti | regarding letting programmers do what they want I still think there should probably be some sort of explosion when I keep attempting to do something dumb like my $k = 3; say 1,$k...10; or even where $k is a literal 3 and its super obvious it will always be a bad plan | 15:34 | |
Ulti is super dumb when it comes to Perl6 | |||
jnthn | m: my $k = 3; say 1,$k...10; | ||
camelia | rakudo-moar 3699aa: OUTPUT«(timeout)» | 15:35 | |
15:35
Rotwang joined
|
|||
moritz | Ulti: the problem with this one is that series are much more complex than they look a the surface | 15:35 | |
Ven | how old is moarvm ? | ||
jnthn | Young. :) | ||
Ulti | moritz: yeah I agree it could be something there is no ability to statically look at | 15:36 | |
jnthn | Ulti: The other thing is that if we put safety checks in all over, they slow down all the correct code. :) | ||
Ven | "when did Charmelogne die ?" "Between 150 before J.C and 2011". I didn't get any point at that question, sadly. | ||
Ulti | but its problematic that its very easy to accidentally do something that just eats all memory before exiting | ||
15:36
dmol left
|
|||
jnthn | Ven: It's less than a year since the project became public knowledge. | 15:36 | |
Ulti | what I would prefer is if I could say the last number is an upper bound with an adverb or something | 15:37 | |
Ven | jnthn++: really impressive work then :) | ||
jnthn | Ulti: Just write an inequality at the end. With * closure notation it's less code than an adverb would be. | ||
Ulti | k | ||
Ven | m: my $k = 3; say 1,$k... * > 10; | ||
camelia | rakudo-moar 3699aa: OUTPUT«1 3 5 7 9 11» | ||
jnthn | Ven: It was developed privately for a bit before that. :) | ||
Ven | m: my $k = 3; say 1,$k...^ * > 10; # probably | ||
camelia | rakudo-moar 3699aa: OUTPUT«1 3 5 7 9» | 15:38 | |
Ven | jnthn: yeah, I got that part -- doesn't make it less good | ||
I'd love to get niecza back up if I had any knowledge of the CLR | |||
jnthn | Yeah, it's come quite a long way in a short time. But the best is yet to come. :) | ||
Ven | It's all about time | 15:40 | |
Ulti | maybe I can make a module for Icon syntax for sequences, which is what I really want anyway ;P | ||
@list = 1 to 10 by 3; | |||
moritz | Ulti: the ... is implemented in the setting, all in bog-standard Perl 6 :-) | 15:41 | |
15:41
kivutar joined
|
|||
Ulti | I'll take a look and play then | 15:41 | |
timotimo | the only special thing about it is that the grammar emits a call to SEQUENCE when it finds a ... | ||
you *should* be able to lexically override SEQUENCE, though | 15:42 | ||
Ulti | I made a gross Perl5 sub for doing it previously | ||
Ven | r: class MyRange { has $.from; has $.to; has $.step = 1; method list { loop (my int $i = $.from; $i < $.to; $i += $.step;) $i; } }; say MyRange(:from(1), :to(5)).list.perl; | 15:43 | |
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileMissing blockat /tmp/tmpfile:1------> int $i = $.from; $i < $.to; $i += $.step⏏;) $i; } }; say MyRange(:from(1), :to(5)…» | ||
Ven | r: class MyRange { has $.from; has $.to; has $.step = 1; method list { loop (my $i = $.from; $i < $.to; $i += $.step) $i; } }; say MyRange(:from(1), :to(5)).list.perl; | ||
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileMissing blockat /tmp/tmpfile:1------> y $i = $.from; $i < $.to; $i += $.step) ⏏$i; } }; say MyRange(:from(1), :to(5)).l…» | ||
jnthn | m: sub infix:<to>($a, $b) { $a..$b }; sub infix:<by>(Range $a, $b) { $a.min, $a.min + $b ...^ * > $a.max }; say 1 to 10 by 3 | ||
camelia | rakudo-moar 3699aa: OUTPUT«1 4 7 10» | ||
jnthn | Ulti: Have a happy :) | ||
Ven iss trying to do complicated stuff for no reason | 15:44 | ||
jnthn | It's always easy to do something complicated... :) | ||
moritz | Ven: you need curlies after the loop head | ||
Ven | yeah I understood that | ||
not the least bit as elegant tho. | |||
Ulti | \o/ | 15:45 | |
moritz | jnthn++ | ||
Ulti | now it just needs to be core..... >:3 | ||
Ven | jnthn++ | ||
Ulti | jnthn++ | ||
15:46
PZt joined
|
|||
Ulti | someone needs to implement karma, my P6 emobot is maybe a good candidate | 15:46 | |
that really is cool | |||
moritz | Ulti: I can give you a dump of the IRC logs if you want to retroactively parse the karma | ||
Ven | No please :( | ||
jnthn | .oO( Emobot? When'll he cut a release... ) |
||
Ven | Any form of "karma" or "points" often leads to people just fishing for them :( | 15:47 | |
moritz | Ulti: also, #git uses not just ++ for karma, but also "thanks you", "thanks", "thx" etc. | ||
Ulti | ? emobot lives inside Text::Emotion which is already released ;P | ||
jnthn | Ven-- # complaining :P | ||
Ven | *sob* | ||
moritz | which I find a really nice idea | ||
Ven | Ulti: I think it was a joke with "emo" | ||
Ulti | moritz: yeah that's a good plan | ||
jnthn | aye :) | ||
Ulti | also <<nick>> awesome! | ||
jnthn | Ulti: I should take a look at it... | ||
Ulti | only if you like looking at bad Perl6 code | 15:48 | |
jnthn | Ulti: I did an Rx example in my .Net course recently where I was doing sentiment analysis on the Twitter live stream. | ||
Ulti | the score is also trivial, needs parts of speech to be better though which is hard | ||
Ven | Perl.rx | ||
Ulti | jnthn: cool, the data I use is based on Tweets | ||
jnthn | Ulti: And thought it'd be cool to do a Perl 6 port of that uses supplies :) | ||
Ulti | so the vocab has LULZ and stuff | ||
moritz | please include irony detection | 15:49 | |
that would be so great! | |||
jnthn | moritz: That'll be easy! | ||
Ulti | jnthn I'd like to see it, both because I'm interested in that topic and I want to see more examples of using supplies | ||
jnthn | Ulti: Yeah. The funniest thing that has happened so far is one guy hacked my demo by tweeting something on the topic I was currently watching/analysing :) | ||
Ulti | :D | ||
jnthn | And since it was the live stream it showed up on the projector within seconds. :D | ||
Ulti | lol | 15:50 | |
trolling finds a way like life | |||
maybe I should do all my lecturing from a shared google doc | |||
15:50
hoverboard joined
|
|||
jnthn | I pointed out after the talk that there's 3 levels of "bad idea": doing a live demo, doing a live demo involving a network, and doing a live demo involving a network and data you've no control over. :) | 15:51 | |
Ulti | jnth that's a lesson most politicians haven't learnt when they launch websites with live twitter feeds | ||
jnthn | On supplies and taps, though, I have submitted a talk on reactive programming in Perl 6 to 3 workshops. So, I shoudl build some nice thingsby then :) | 15:52 | |
Ulti | my first ever tweet did JS injection into a tory website replacing the whole site with a giant picture of a cat | ||
jnthn | :D | ||
Ven | Ulti++ # "Mom, let's get a cat for christmas" | 15:53 | |
Ulti | jnthn are your slides available? or do I have to pay $dayjob to see them? | ||
dalek | ast: 8b6a051 | moritz++ | S32-str/ (2 files): fudge some moar tests which already have tickets |
||
jnthn | Ulti: For the reactive .Net talk? Hmm. | ||
Ulti | also the picture of a cat might have been goatse... I dont recall :3 | ||
jnthn | github.com/edumentab/rx-examples is the code | 15:54 | |
15:54
kaare_ joined
|
|||
Ulti | thats really all I wanted to grok :D | 15:54 | |
moritz | all you really wanted to grok was the cat picture on goatse? | ||
Ulti | then I can finally make a magical parallel script with Utils regex conversion doodad | ||
Util++ | |||
moritz: jnthn's code :P | 15:55 | ||
raiph | moritz: search for SpecialCasing.txt in www.unicode.org/versions/Unicode6.2.0/ch04.pdf | ||
Ulti | thanks jnthn I'll try and do something myself | ||
does the bleeding edge version of moar rakudo have these sorts of things? | |||
moritz | raiph: thanks | 15:56 | |
jnthn | Ulti: No; work ongoing in moar-conc branches. | ||
Ulti: I'm working on getting things in shape; last night I discovered we've a problem somewhere with inter-generational roots interacting badly with threads. | 15:57 | ||
Ulti: Which is likely to blame for much of the trouble, but I won't know until I nail it. | 15:58 | ||
16:01
denis_boyun left
|
|||
Ulti | jnthn cool I will keep an eye out, looks like I will be updating the JVM on this computer then :) | 16:01 | |
16:02
effbiai joined
|
|||
Ulti | so in general all of the Perl6 parallel stuff is going to be shared memory threading? rather than forking with IPC? | 16:03 | |
jnthn | Ulti: At a low level, yes, but just because it's a shared memory model doesn't imply that writing code in terms of threads and locks is the way to go. | 16:04 | |
Ulti | so is memory handled magically for you so long as you stick to Perl6 constructs? or are you going to run into problems with writing? | ||
jnthn | Ulti: The expectation is the typical programmer will work in terms of promises, channels, supplies, etc. | ||
Ulti is typical | 16:05 | ||
the last time I did anything with explict threads was in Java and it took me a good week to debug it | |||
jnthn is also typical when it comes to building reliable systems that are multi-threaded :) | |||
16:05
Rotwang left
|
|||
jnthn | Working directly with locks and threads is like programming assembly language: good to know you can if you must, but hardly ideal. | 16:05 | |
Anyway, at a Perl 6 level, we will make sure you can't explode the VM. | 16:06 | ||
However, you can - like in all kinds of programming - get wrong answers. | |||
And the way to write answers is doing communication using the provided mechanisms. | |||
uh | 16:07 | ||
The way to write correct things | |||
oh, or to right answers | |||
brain fail :) | |||
Ulti | I haven't actually ever done threading with higher level constructs | 16:08 | |
jnthn | Ah. :) | ||
It's nicer ;) | |||
Generally it's better to look at the problem and say, "which bits can happen concurrently". Then factor out those pieces. Then you have something suitable to parallelize. | 16:09 | ||
Ulti | yeah like everything I'll just have to do it to get my mind around the new idea | ||
jnthn should find time to write decent docs on this stuff at some point. | |||
Ulti | well your presentations are available unless the syntax has changed loads since the summer | ||
jnthn | The one I did at Nordic Perl Workshop in Nov is the most up to date. | 16:10 | |
And I don't think loads changed since that. | |||
Ulti | quite excited that the day has basically come for what I was waiting on Perl6 for :) it's feature complete for my use case! yay | 16:11 | |
not that I ever used threads in perl5, I use GNU parallel to do everything at the process level | |||
moritz | jnthn: I recently wrote a concurrent, recursive directory reader. My main problem was stopping the program in the end, ie figuring out when to close the channels | ||
jnthn: gist.github.com/moritz/9293475 has the result | 16:12 | ||
jnthn: any ideas on how to improve that? | |||
that's lines 27 to 40 | 16:13 | ||
jnthn | $counter++ # well, there's a race conditon... | ||
moritz: Yeah, I probably can improve on it. | 16:15 | ||
moritz | there is? it's called as callback($_) for $files.list; | ||
that loooks like a serial iteration to me | |||
timotimo | right, the reader is a separate thread that sucks the individual files out of a channel | 16:16 | |
jnthn | moritz: oh, you're right :) | ||
moritz: yeah, it's fine. | |||
I understood it when I got to the bottom :) | |||
Ven | browsing #perl6 history from 2007, quite different names around | 16:17 | |
16:18
FROGGS[mobile] left
|
|||
Ven .oO(Perl6 on LLVM) | 16:19 | ||
Ven .oO(au has red bold messages on archives ?) | 16:21 | ||
Ven .oO(method calls used to use ` ?) | 16:24 | ||
timotimo wouldn't know about that | |||
moritz | Ven: I'm pretty sure they didn't | 16:25 | |
Ven | moritz: irclog.perlgeek.de/perl6/2005-12-24#i_-387340 that's why I'm surprised | 16:26 | |
timotimo | wow 2005 | ||
i'm not sure pil is actually the same thing as perl6? | |||
Ven couldn't tell | 16:27 | ||
Ven is pretty deep in the rabbit's hole ... | |||
timotimo | that could be some parrot thing actually | 16:28 | |
jnthn | PIL was Pugs IL, iirc | ||
But it's before my time really | |||
timotimo | i wonder what'll be the state in another 10 years | ||
Ven | and who'll be there | 16:29 | |
timotimo | wow, by that time i'll be *old* | 16:30 | |
and perhaps wise | |||
16:30
[Sno] joined
|
|||
Ven | I'd almost be 30 :( | 16:30 | |
timotimo | at least experienced - hopefully | ||
Ven | I *will*, actually | ||
timotimo | hopefully you will be :) | ||
Ven | ugh. | ||
moritz | Ven: looks like some intermediate language, not Perl 6 itself | ||
oh, jnthn++ was faster | |||
Ven | yeah, this explains that :). jnthn++ # moritz++, too | 16:31 | |
16:35
FROGGS[mobile] joined
16:43
zakharyas left
16:48
iolympian1 joined,
iolympian1 left
|
|||
raiph | Ven: do you know about the #perl6 "summary" (irclog.perlgeek.de/perl6/2014-03-28/summary) ? | 16:48 | |
Ven | raiph: oh, I was just wandering around ... Class topic is boring and I don't have anything installed on that computer | 16:50 | |
raiph | Ven: if you're wandering around the last year+ of #perl6 there's a "summary" that's typically about 10-20% of the lines in the full log | 16:52 | |
Ven | Once you've finished reading the p6advents and synopsis, there's not that much stuff on perl6 :p | ||
moritz | well, there's 5-to-6, masak's blog | 16:53 | |
jnthn's blog | |||
Ven | read, read, read. | ||
moritz | the book draft/WIP | 16:54 | |
doc.perl6.org | |||
Ven | read, read :p | ||
moritz | faq.perl6.org (ok, that's short) | ||
Ven | read. That list of links could probably be put up somewhere, though | ||
moritz | like, on perl6.org? | 16:55 | |
I'm pretty sure it's all linked there | |||
Ven | You tell me :). | ||
moritz | (maybe not the blogs themselves, but the aggregators) | 16:56 | |
Ven | there is a "blogs" link, right | ||
raiph | Ven: imo the best overall source is planeteria.org/perl6/; and the best of the best is jnthn.net, perlgeek.de/blog-en/perl-6/, strangelyconsistent.org/blog/list-of-posts, and doc.perl6.org | 16:57 | |
16:57
denis_boyun joined
|
|||
Ven | what is mildew ? | 16:57 | |
commute & | 16:58 | ||
moritz | Ven: iirc it was a project by pmurias to take the STD.pm6 parse tree and generate code that would run on SMOP | ||
16:58
kaleem joined
|
|||
moritz | (and SMOP is a C runtime for the Perl 6 object system, and iirc it inspired 6model and parts of the current MOP) | 16:59 | |
both mildew and smop seem to be inactive | |||
17:00
denis_boyun__ joined
|
|||
jnthn | Yeah, SMOP was one of the 6model inspirations. | 17:01 | |
17:02
denis_boyun left
|
|||
jnthn | In some senses, MoarVM could be seen as partly a SMOP descendent, though not in terms of code. | 17:02 | |
17:03
ajr_ left
17:05
guru joined,
guru is now known as Guest36084,
Guest36084 is now known as ajr_
17:06
kaleem left
|
|||
japhb | descendent-in-spirit | 17:09 | |
jnthn | *nod* | 17:12 | |
17:12
ajr_ left
|
|||
raiph | jnthn: have you gotten the info you needed about linux equivs of YieldProcessor? | 17:13 | |
17:15
xinming__ joined
17:18
xinming_ left
17:19
xinming__ left
|
|||
dalek | ast: 611c2d5 | moritz++ | S32-num/power.t: moar-fudge tests with big exponentials |
17:22 | |
[Coke] | jnthn: eisbrecher is pretty good to my non-german speaking ear. it's more ... club? techno? | 17:23 | |
moritz | m: say 241025348275725.3352 | 17:24 | |
camelia | rakudo-moar 3699aa: OUTPUT«241025348275725.3352» | ||
moritz | m: say 241025348275725.3352 eq '241025348275725.3352' | 17:25 | |
camelia | rakudo-moar 3699aa: OUTPUT«True» | ||
17:25
xinming_ joined
|
|||
moritz | m: say 241025348275725.3352.Rat eq '241025348275725.3352' | 17:25 | |
17:25
treehug8_ joined
|
|||
camelia | rakudo-moar 3699aa: OUTPUT«True» | 17:25 | |
moritz | r: say 241025348275725.3352.Rat.norm.nude | ||
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«301281685344656669 1250» | ||
PerlJam read Rat.norm.dude | 17:26 | ||
17:28
treehug88 left
|
|||
jnthn | raiph: The answer, as I feared, seems to be "probe to see what's there" :) | 17:29 | |
moritz | r: use Test; plan 1; is 241025348275725.3352.Rat.norm.nude, (301281685344656669, 1250), "Rat.Rat yields correct Rat"; | 17:30 | |
jnthn | raiph: But yeah, but some stuff to try. | ||
camelia | rakudo-moar 3699aa: OUTPUT«1..1not ok 1 - Rat.Rat yields correct Rat# got: '301281685344656669 1250'# expected: '301281685344656640 1250'# Looks like you failed 1 tests of 1» | ||
..rakudo-parrot 3699aa, rakudo-jvm 3699aa: OUTPUT«1..1ok 1 - Rat.Rat yields correct Rat» | |||
moritz | why the bloody hell does 241025348275725.3352.Rat.norm.nude produce the same output on all backends, but in a test it fails? | 17:31 | |
... on just one backend | |||
jnthn | That's a wtf... | 17:34 | |
17:40
Psyche^_ joined
|
|||
moritz | r: say (301281685344656669, 1250).Str | 17:41 | |
camelia | rakudo-moar 3699aa: OUTPUT«301281685344656640 1250» | ||
..rakudo-parrot 3699aa, rakudo-jvm 3699aa: OUTPUT«301281685344656669 1250» | |||
moritz | r: say 301281685344656669.Str | ||
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa: OUTPUT«301281685344656669» | ||
..rakudo-moar 3699aa: OUTPUT«301281685344656640» | |||
moritz | r: say 301281685344656669 | ||
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa: OUTPUT«301281685344656669» | ||
..rakudo-moar 3699aa: OUTPUT«301281685344656640» | |||
moritz | golf'ed | 17:42 | |
japhb | r: say 301281685344656669.WHAT | ||
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«(Int)» | ||
japhb | At least that's agreed upon ... | ||
PerlJam | Works on my local version of perl6-m | 17:43 | |
moritz | This is perl6 version 2014.03.01-8-g3699aaf built on MoarVM version 2014.03-6-g572c043 | 17:44 | |
PerlJam | This is perl6 version 2014.03.01-7-g68e0948 built on MoarVM version 2014.02-130-g20931e6 | ||
17:44
Psyche^ left
|
|||
moritz | (on my local machine, where it also fails) | 17:44 | |
segomos | is there an equiv in p6 to p5's sub meth (&$) ? | 17:45 | |
moritz | segomos: no, Perl 6 doesn't have prototypes | ||
PerlJam | segomos: and you don't need them for warping the language. | ||
(and signatures are way more useful) | |||
moritz | m: sub twice(&callback, $value) { callback 2 * $value }; twice {say $^x }, 21 | 17:46 | |
camelia | rakudo-moar 3699aa: OUTPUT«42» | ||
segomos | PerlJam: i'm more trying to produce a 'map' like functionality in a scraper | 17:47 | |
PerlJam | segomos: see moritz :) | ||
moritz | segomos: no need for a prototype in Perl 6, as demonstrated above | ||
17:47
ajr joined
|
|||
segomos | that's exactly what i just did in my other screen too after you told me no protos :-) | 17:47 | |
thanks guys | |||
17:48
ajr is now known as Guest54002,
Guest54002 is now known as ajr_
|
|||
dalek | ast: 2d56f60 | moritz++ | S32-num/rat.t: moar-fudge a test |
17:48 | |
moritz | r: say $*EXECUTABLE_NAME | 17:50 | |
camelia | rakudo-jvm 3699aa: OUTPUT«perl6-j» | ||
..rakudo-parrot 3699aa: OUTPUT«./rakudo-inst/bin/perl6-p» | |||
..rakudo-moar 3699aa: OUTPUT«perl6-m» | |||
17:50
rurban1 left
|
|||
moritz | is there a bug open for that already? | 17:50 | |
r: say $*EXECUTABLE_NAME.^name | 17:51 | ||
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«Str» | ||
moritz | ideally we'd have @*PERL_INVOKE which is a list of arguments that can be used to invoke the current Perl 6 compiler/interpreter | 17:53 | |
that's what we need in tests | |||
17:53
mls_ is now known as mls
17:57
denisboyun joined
17:58
benabik joined
17:59
benabik left,
denis_boyun__ left,
benabik joined
18:01
dakkar left
|
|||
dalek | ast: 905aa8e | moritz++ | S32-list/roll.t: JVM- and Moar-fudge tests that rely on $*EXECUTABLE_NAME |
18:02 | |
moritz | somehow all of my perl6s barf on t/spec/S15-unicode-information/unimatch-general.t | 18:03 | |
parrot says Invalid character for UTF-8 encoding | |||
JVM says Unrecognized character name AEGEAN NUMBER NINETY THOUSAND | |||
moar says Invalid code-point U+00FDD0 | |||
git log says lue last touched it | 18:04 | ||
lue: what did you do? :-) | |||
18:04
treehug8_ left
18:05
denisboyun left
|
|||
moritz | seems TimToady actually introduced U+FDD0 | 18:05 | |
jnthn | moritz: I think it's HEAD Moar that is unhappy with it, but maybe not MOAR_REVISION one... | ||
18:05
hoverboard left
|
|||
jnthn | moritz: There are tests elsewhere that fail due to this, I think in S05. | 18:06 | |
moritz: And there are also tests on ord_and_chr.t that *want* such things to explode. | |||
18:06
treehug88 joined
|
|||
jnthn | So, we can't win :) | 18:06 | |
I don't think both sets of tests can be right :) | |||
18:06
denis_boyun_ joined
18:08
hoverboard joined
|
|||
moritz | we just need to parameterize behavior by input file name :-) | 18:11 | |
18:13
vendethiel left
18:16
vendethiel joined
18:17
denis_boyun_ left
18:18
vendethiel left,
denis_boyun_ joined,
vendethiel joined
18:21
denis_boyun__ joined
18:22
rurban1 joined,
denis_boyun_ left,
kurahaupo left
18:23
Ven left
18:24
punter joined,
kaare_ left,
kaare_ joined
18:26
denis_boyun_ joined
18:27
denis_boyun__ left
|
|||
dalek | kudo-star-daily: 30a819b | coke++ | log/ (5 files): today (automated commit) |
18:27 | |
rl6-roast-data: 8e33eb0 | coke++ | / (6 files): today (automated commit) |
18:28 | ||
[Coke] | we need to declare what version of unicode we're testing. | 18:33 | |
moritz++ 3 less failing rakudo.moar tests. | |||
18:34
AW3i joined
18:40
sjn joined
18:46
ssutch joined
18:49
SamuraiJack joined
18:53
denis_boyun__ joined
18:55
denis_boyun_ left,
treehug88 left
18:56
darutoko left,
treehug88 joined
18:58
kurahaupo joined
18:59
bluescreen100 joined
19:03
bluescreen10 left,
virtualsue joined
|
|||
hoelzro | I was thinking of sticking syntax-highlighting related stuff in a repo; should I create a syntax repo, or should we have a general "tooling" repo? | 19:06 | |
or does such a repo already exist? | |||
moritz | hoelzro: misc stuff goes into the mu repo right now, but that's a bit big | ||
hoelzro: if you want, I can create a perl6/tooling repo | 19:07 | ||
hoelzro | ok | 19:08 | |
I just might do that | |||
timotimo | rob! | ||
hoelzro | o/ timo! | ||
what's up? | 19:09 | ||
timotimo | greetings | ||
hoelzro | greetings are indeed up =) | 19:10 | |
jnthn | m: say uc 'greetings' # they are now! | 19:11 | |
camelia | rakudo-moar 3699aa: OUTPUT«GREETINGS» | ||
19:12
denis_boyun_ joined,
denis_boyun__ left
|
|||
xybre | How is Moar coming along? | 19:14 | |
19:14
IllvilJa left
19:15
denis_boyun__ joined
19:17
denis_boyun_ left
19:18
rurban joined
|
|||
PerlJam | xybre: spledidly? | 19:19 | |
xybre | PerlJam: Thats good enough for me I suppose :) | 19:20 | |
PerlJam | modulo the spelling error :) | 19:21 | |
xybre: I tend to use the moar-backed rakudo as my primary perl6 implementation. | |||
lue | www.unicode.org/versions/corrigendum9.html things that expect noncharacters to blow everything up are wrong. (unless I severely misunderstand that corrigendum) | 19:22 | |
PerlJam | occasionally, I'll use rakudo-jvm when I'm playing with supplies and channels and such | ||
19:24
rurban left
|
|||
xybre | PerlJam: ah, I thought it wasn't recommended due to some things being incomplete. | 19:25 | |
raiph | xybre: i'm curious about your interests, experience, hopes, knowledge of p6, other langs etc. | ||
19:25
denis_boyun_ joined
19:26
denis_boyun__ left
19:27
IllvilJa joined
|
|||
xybre | raiph: I used perl over 10 years ago, didn't rememeber a lick of it. I found my usual languages to be annoying to write parsers in, so I started playing with Perl6. My main language is Ruby, and I've been getting involved in Rebol, writing my own language, and I've done some Ocaml, Self, Smalltalk, Clojure, and Haskell research lately. | 19:27 | |
PerlJam | nice | 19:28 | |
(you sound like one of the regulars already ;) | |||
ssutch | one of us :) | ||
19:30
rurban1 left
|
|||
lue | moritz, jnthn: the main point of noncharacters is that you have no clue what they'll do if passed to another library or program. You can still use them, but with a healthy dose of caution :) . | 19:30 | |
xybre | Haha, wow. Most people just look at me like I'm crazy. "was all that real what you just said" | ||
raiph | xybre: i'd say that, compared to the langs you named, the main diffs are that p6 (lang, ecosystem, docs, etc.) is immature (especially that it's slooooow) and that it's been that way for 10 years longer than most folk can stomach | 19:31 | |
19:31
xenoterracide left
|
|||
xybre | raiph: Slowness isn't really a concern so long as it makes the job easier of building proof-of-concept parsers quickly and easily. I need to rapidly iterate on parsing and I'm not going to write a bunch of formal definitions to do it. I've already written a couple of parsers in Ruby, but Perl6 (and Rebol) have most of the stuff I had to hand-build (poorly) built in. | 19:33 | |
19:35
treehug8_ joined,
xenoterracide joined
|
|||
ssutch | a parser (for the protocol buffer description language) is the first thing i wrote in p6 | 19:35 | |
19:35
kaare_ left
|
|||
ssutch | github.com/samuraisam/p6-pb | 19:35 | |
19:35
kurahaupo_mobile joined
|
|||
raiph | xybre: fwiw, in my time i've lightly explored dozens of interesting langs (lisps incl. clos, smalltalks, vulcan, forths, mls, icon, snobol, linda, beta, etc., etc.) but only professionally coded in assembler, bcpl, perl, javascript | 19:36 | |
vendethiel | Haskell is cool too with parsec combinators | ||
raiph | xybre: have you seen marpa? | ||
19:37
virtualsue left,
kurahaupo left
|
|||
xybre | raiph: I research pretty much anything that looks interesting, but I didn't lsit everything because I don't always write real code in everything I encounter. Dylan, NewtonScript, Icon/Unicon, Ada, Beta, etc. | 19:37 | |
19:38
treehug88 left
|
|||
xybre | raiph: I don't believe I've heard of | 19:38 | |
marpa, no. | |||
vendethiel | Dylan++ #cool macros in Dylan. | ||
vendethiel wants to see more macro stuff in Perl6 | 19:40 | ||
raiph | xybre: jeffreykegler.github.io/Marpa-web-site/ | ||
vendethiel .oO(Macro-generating macros, can we do that yet ?) | |||
PerlJam | vendethiel: easy! Just learn enough to help implement them! :) | 19:42 | |
vendethiel | good solution :p. | ||
I need to dwelve into Perl6 internals... | |||
Right after I've finished HoTT, MiniKanren, Mercury's book and my actual macro paper list : gist.github.com/Nami-Doc/7133634#m...rogramming | 19:43 | ||
xybre | raiph: relevent. Another issue I ran into with most purpose-built parsers is that they suck at being debugged. I'm begining to belive that a generic framework is actually broken by design. | 19:44 | |
19:44
rurban joined
|
|||
xybre | raiph: Although, it also needs to be able to output something that I can use in the language for the compiler too. | 19:44 | |
19:45
kurahaupo_mobile is now known as kurahaupo
|
|||
raiph | xybre: have you tried the grammar tracing module or the rakudo debugger? | 19:48 | |
19:48
denisboyun joined
|
|||
moritz | r: (1,2,3,2,2,2,2).BagHash.kv.sort({ .[0] }).perl | 19:49 | |
camelia | ( no output ) | ||
19:49
dwarring joined
|
|||
moritz | r: say (1,2,3,2,2,2,2).BagHash.kv.sort({ .[0] }).perl | 19:49 | |
raiph | xybre: output -> lang for the compiler; plz elaborate | ||
camelia | rakudo-jvm 3699aa: OUTPUT«((3, 1), (2, 5), (1, 1))» | ||
..rakudo-parrot 3699aa, rakudo-moar 3699aa: OUTPUT«((1, 1), (2, 5), (3, 1))» | |||
19:49
denis_boyun_ left
|
|||
xybre | raiph: Yes, Perl6's grammar stuff it's better than most alternatives. | 19:49 | |
moritz | r: say (1,2,3,2,2,2,2).BagHash.kv.perl | 19:50 | |
camelia | rakudo-parrot 3699aa, rakudo-moar 3699aa: OUTPUT«((1, 1), (2, 5), (3, 1)).list» | ||
..rakudo-jvm 3699aa: OUTPUT«((2, 5), (1, 1), (3, 1)).list» | |||
19:50
a3gis joined
|
|||
moritz | r: say (1,2,3,2,2,2,2).BagHash.kv.tree.sort({ .[0] }).perl | 19:50 | |
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«([1, 1], [2, 5], [3, 1])» | ||
xybre | raiph: Output will be opcode. Probably starting with a higher level VM (Parrot?) for the initial version and then moving to a lower level VM or native (LLVM/x86). | 19:51 | |
vendethiel | (parrot ?) | ||
raiph | xybre: what have you used that's better than p6's grammar stuff? (ignoring p6's immaturity) | 19:54 | |
dalek | ast: b48a9fb | moritz++ | S02-types/baghash.t: baghash.t fixes * .kv returns a list of unitemized parcels, so .tree it before sorting * do not use # in fudge messages, TAP does not like that * fudge for moar |
||
xybre | raiph: For expressivity? Not much. Rebol's PARSE dialect is pretty great, not quite as powerful from a parsing standpoint, but it feels more flexible to use. My hand-rolled parsers are much better at giving feedback, but are a pain to develop. | 19:55 | |
PerlJam | xybre: You've used Parsec? | ||
dwarring | lue: I'm responsible for the two nonchar tests github.com/perl6/roast/blob/master...chr.t#L157 | 19:57 | |
maybe they should be widthdrawn? | |||
xybre | PerlJam: No, I've generally been avoiding parsing with Haskell, maybe its a superstitious thing. | 19:58 | |
dwarring | saw your link earlier www.unicode.org/versions/corrigendum9.html | ||
vendethiel | xybre: really, parsec is great, I'd encourage you to try it out ! Pretty expressive | ||
(scala combinator.parsers is pretty neat too) | 19:59 | ||
lue | dwarring: rather, they should be changed so they see if noncharacters work, because some impls. might think noncharacters should blow up :) | ||
moritz | it seems that now, all of them do | ||
xybre | vendethiel: Haskell's syntax seems a bit over the top. Tutorials all go on about lambda operations and talk a lot of theory without much practical application. Thats a big turn off. | 20:00 | |
vendethiel | xybre: they talk a lot about abstractions - - not quite the same as theory ;). I know where you're coming from, though | 20:01 | |
dalek | ast: 48e001a | moritz++ | S04-phasers/enter-leave.t: moar-fudge a test, add ticket number |
||
vendethiel | you need some time to get used to Haskell | ||
xybre | vendethiel: Its not as bad as a lot of languages though, which jsut give you the bnf grammar and are like thats all you need to know. | 20:02 | |
vendethiel | (although I've got github.com/Nami-Doc/Typeclassopedia.pl6 heehe) | ||
xybre | the grammar specification is probably the least useful thing to know about a language. | ||
dwarring | lue: ok | ||
20:04
lowpro30 joined
|
|||
dalek | ast: dc8ff6c | moritz++ | S04-phasers/pre-post.t: moar-fudge some phaser tests |
20:08 | |
moritz | ok, who fixes the tests? | ||
(about unassigned or private use characters) | |||
jnthn | dwarring: Having read the Unicode spec thingy, I'm inclined to agree with lue also. | 20:10 | |
dwarring | .u thumbs up sign | 20:12 | |
yoleaux | U+1F44D THUMBS UP SIGN [So] (👍) | ||
lue | moritz: I was under the impression that dwarring is handling it. | ||
moritz | lue: I'm not under any kind of impression, until I read a commitment, or even better, commits | 20:13 | |
vendethiel | .oO(commits are commitments without ments) |
20:14 | |
raiph | xybre: are you familiar with the term "language oriented programming" (LOP) and systems that claim to deliver benefits for LOP? | ||
dalek | ast: 5394f05 | (David Warring [email@hidden.address] | S29-conversions/ord_and_chr.t: reverse nonchar tests (fudged on rakudo for now) |
20:15 | |
ast: b55f1ae | (David Warring [email@hidden.address] | S0 (3 files): Merge branch 'master' of github.com/perl6/roast |
|||
dwarring | ^^ hope that looks right (dudged until backends fixed) | 20:16 | |
20:16
dmol joined
|
|||
dwarring dudged? | 20:16 | ||
vendethiel | r: sub a(Int) {}; sub foo { a(Bool) }; say "alive"; | 20:17 | |
20:17
lowpro30_ joined
|
|||
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileCalling 'a' will never work with argument types (Bool) Expected: :(Int)at /tmp/tmpfile:1------> sub a(Int) {}; sub foo { ⏏…» | 20:17 | |
dwarring | afk | ||
vendethiel | Oh perl6 <3333 | ||
r: sub a(Int) {}; sub foo { my Bool $var; a($var); }; say "alive"; | |||
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileCalling 'a' will never work with argument types (Bool) Expected: :(Int)at /tmp/tmpfile:1------> sub a(Int) {}; sub foo { my Bool $…» | ||
vendethiel | I DIDNT EVEN KNOW THAT. | 20:18 | |
I'm as happy as unwrapping a gift now. | |||
xybre | raiph: nope | ||
vendethiel | r: sub a(Int) {}; sub foo { my Bool|List $var; a($var); }; say "alive"; | 20:19 | |
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«===SORRY!===Type 'Bool' is not declared. Did you mean 'Cool'?at /tmp/tmpfile:1------> sub a(Int) {}; sub foo { my Bool⏏|List $var; a($var); }; say "alive";Malformed…» | ||
moritz | jnthn, dwarring: so should I revert moarvm commit c5f3b5378, "check for invalid code points (jvm port)"? | ||
vendethiel | r: sub a(Int) {}; sub foo { my Bool|String $var; a($var); }; say "alive"; | 20:20 | |
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«===SORRY!===Type 'Bool' is not declared. Did you mean 'Cool'?at /tmp/tmpfile:1------> sub a(Int) {}; sub foo { my Bool⏏|String $var; a($var); }; say "alive";Malform…» | ||
vendethiel | uuh. | ||
moritz | vendethiel: there are no union types; likely it causes a mis-parse | ||
raiph | xybre: the term LOP was coined in the 90s; googles for it can help dig up stuff relevant to what it sounds like you're into; en.wikipedia.org/wiki/Language_orie...rogramming | ||
20:21
lowpro30 left,
rurban left
|
|||
vendethiel | oh, I thought it existed. NYI then! | 20:21 | |
moritz | vendethiel: no NYI. Specced to not work | ||
vendethiel | Union types ? really ? I'm really surprised. | ||
20:21
rurban joined
|
|||
vendethiel | r: subset Foo where Bool|String; sub a(Foo $) { say "alive"; } | 20:21 | |
moritz | you can't just bolt on union types on an existing type sytem and have it work magically | ||
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileUndeclared name: String used at line 1. Did you mean 'Stringy'?» | ||
vendethiel | moritz: what does that mean? | 20:22 | |
moritz | vendethiel: what does what mean? | ||
vendethiel | "bolt on union types on an existing type system and have it work magically" | ||
moritz | it means exactly what I wrote | ||
vendethiel | which I don't understand ... | ||
moritz | let me rephrase | 20:23 | |
vendethiel | I don't expect it to be "type junctions". I thought reading about untagged type unions in the synopsis | ||
jnthn | moritz: That would indeed fix it, I think. | ||
20:23
rurban left
|
|||
moritz | if you want a language to have union types, it must be really baked in | 20:23 | |
20:23
rurban joined
|
|||
moritz | you can write subset Foo of Any where Bool|Str; | 20:23 | |
vendethiel | Yeah; I agree with that much - - That's why I said I remember them being in the spec. | ||
moritz | but that's not a real union type | ||
20:24
tauli joined
|
|||
moritz | so it doesn't participate in multi dispatch as a nominal type, for example | 20:24 | |
vendethiel | r: sub a(Int|Str) {}; say "alive"; | ||
camelia | rakudo-moar 3699aa: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileCapture parameter must have a type accepting a Captureat /tmp/tmpfile:1------> sub a(Int|Str) {}⏏; say "alive"; expecting any of: statement list…» | ||
..rakudo-parrot 3699aa, rakudo-jvm 3699aa: OUTPUT«alive» | |||
moritz | std: sub a(Int|Str) {}; say "alive"; | 20:25 | |
camelia | std 09dda5b: OUTPUT«ok 00:01 127m» | ||
vendethiel | but yeah; it seems obvious it's not a nominal type | ||
moritz | std: my Int|Str $x | ||
camelia | std 09dda5b: OUTPUT«===SORRY!===Multiple prefix constraints not yet supported at /tmp/RQVvRUbyOc line 1:------> my Int⏏|Str $xMalformed my at /tmp/RQVvRUbyOc line 1:------> my Int⏏|Str $x expecting any of:…» | ||
vendethiel | so isn't it NYI, in the end ? | ||
lue | vendethiel: polymorphic types don't exist. I removed them from S02 myself :) . | 20:26 | |
moritz | vendethiel: not in the sense that other stuff is NYI | ||
vendethiel | lue: "polymorphic types"? | ||
moritz | vendethiel: more like defered to perl 6.5, if at all | ||
lue | that's what S02 called Int|Str . | ||
[Coke] | NYI implies it's spec'd but not in an existing compiler. | ||
vendethiel | [Coke]: yeah, I know that. moritz: alright, fair enough. It's really good enough with subsets. | 20:27 | |
lue: oh,okay | |||
raiph | vendethiel: have you seen the lang ceylon? | ||
vendethiel | raiph: yes | ||
20:27
rurban1 joined
|
|||
moritz | gaaah, who cut the moarvm release? | 20:27 | |
20:28
rurban left
|
|||
vendethiel | I hate most of the things about it | 20:28 | |
r: subset Foo where Bool|Str; sub a(Int) {}; sub foo { my Foo $var; a($var); }; say "alive"; | |||
camelia | rakudo-parrot 3699aa: OUTPUT«===SORRY!===Could not find sub &infix:<|>» | ||
..rakudo-moar 3699aa: OUTPUT«===SORRY!===Cannot invoke null object» | |||
..rakudo-jvm 3699aa: OUTPUT«===SORRY!===java.lang.NullPointerException» | |||
moritz | jnthn: please remember to use annotated tags for MoarVM releases | ||
xybre | raiph: thanks I'll check it out | ||
moritz | jnthn: otherwise 'git describe' will ignore it, and it will produce different output form 'git describe --tags' | ||
vendethiel | r: subset Foo of Any where Bool|Str; sub a(Int) {}; sub foo { my Foo $var; a($var); }; say "alive"; | 20:29 | |
camelia | rakudo-parrot 3699aa: OUTPUT«===SORRY!===Could not find sub &infix:<|>» | ||
..rakudo-moar 3699aa: OUTPUT«===SORRY!===Cannot invoke null object» | |||
..rakudo-jvm 3699aa: OUTPUT«===SORRY!===java.lang.NullPointerException» | |||
jnthn | moritz: ugh... | ||
vendethiel | I'm cool with it anyway. | ||
jnthn | moritz: Yeah, that's an annoying behavior. | ||
vendethiel | Tagged unions > untagged unions | ||
dalek | p: 3adc3d7 | moritz++ | tools/build/MOAR_REVISION: bump MoarVM version to get various bug fixes and improvements |
20:30 | |
moritz | tagged unicorns > untagged unicorns | ||
lue afk | |||
vendethiel | r: class Either { has Left $.left; has Right $.right; has Bool $is-left; multi method new(Left $left) { Either.bless(:$left, :is-left(true)) }; def fmap(&callable) {} }; class Left[::T] { has $.value; multi method new($value) { Left.bless(:$value); } }; class Right[::T] { has $.value; multi method new($value) { Left.bless(:$value); } }; | 20:32 | |
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«===SORRY!===Type 'Left' is not declaredat /tmp/tmpfile:1------> class Either { has Left⏏ $.left; has Right $.right; has Bool $isMalformed hasat /tmp/tmpfile:1…» | ||
vendethiel | well, it's becoming a bit too long for an IRC message anyway ... | ||
moritz | vendethiel: you can feed gist URLs to camelia | 20:33 | |
20:33
FROGGS[mobile] left
|
|||
vendethiel | moritz: yeah, I know # [14:42] <Ven> r: gist.github.com/Nami-Doc/c6161cc3b29a1a417b9f | 20:33 | |
raiph | vendethiel: do you know about /msg camelia m: say 1 # or whatever? | 20:34 | |
vendethiel | raiph: no - I'll take note :p | ||
I'm pretty spammy | |||
japhb | moritz: 'tagged unicorns' indicates someone found more than one, and tagged them all. Which is definitely better than not having found any to tag. | ||
raiph | vendethiel: a common practice is to do a /msg camelia m: whatever to golf some issue then sharing the final golf'd version on channel | 20:35 | |
moritz | japhb: Unicorn tagged as 'found' :-) | ||
20:36
BenGoldberg joined
20:37
Yappo__________8 joined
|
|||
japhb | Reminds me of some children's book or cartoon or such that has one of the characters coat their home in sticky notes, each one labeling objects with their type: "spoon", "spoon", "fork", "cabinet", "sink" .... | 20:37 | |
20:37
rurban1 left
|
|||
vendethiel | r: class A[::T] {}; | 20:40 | |
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileUnable to parse class definitionat /tmp/tmpfile:1------> class A⏏[::T] {}; expecting any of: statement l…» | ||
vendethiel | oh :(. | 20:41 | |
japhb | vendethiel: Roles can pun into classes. So just do a parametric role, if that's what you want/ | 20:42 | |
20:45
rurban joined
|
|||
vendethiel | japhb: how do I pass the type parameter ? | 20:45 | |
r: role A[::T] {}; class B does A[::UhWhatHere] {}; | 20:46 | ||
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«===SORRY!===Could not locate compile-time value for symbol UhWhatHere» | ||
japhb | r: role A[::T] {}; class B does A[Int] {}; | 20:48 | |
camelia | ( no output ) | ||
20:49
SamuraiJack left
|
|||
japhb | r: role A[::T] {}; class B is A[Int] {}; # Curious if the punning works with this syntax | 20:49 | |
camelia | rakudo-parrot 3699aa, rakudo-jvm 3699aa, rakudo-moar 3699aa: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileCannot call 'trait_mod:<is>'; none of these signatures match::(Mu:U $child, Mu:U $parent):(Mu:U $child, Any :DEPRECATED($DEPRECATED)!):(Mu…» | ||
[Coke] | where do the specs define what ::T does? | ||
I'm looking in S14-roles-and-parametric-types.pod, but it's not clear that ::T there is anything but a placeholder for a "real" value. | |||
vendethiel | parametric type ? | 20:50 | |
japhb | [Coke]: For a role declaration, it's a parameter. For a signature, it's a type capture, generally used to say things like "This works one two objects of the same type" | ||
*works on | 20:51 | ||
vendethiel | so, classes can't be type parametric themselves | ||
[Coke] | japhb: can you point to the spec that says what you just said? | ||
japhb | r: sub foo(::T $a, T $b) { say 'woot' }; foo(1, 3); foo('a', 'b'); foo(1, 'b'); | ||
camelia | rakudo-moar 3699aa: OUTPUT«wootwootcannot stringify this in sub foo at /tmp/tmpfile:1 in block at /tmp/tmpfile:1» | 20:52 | |
..rakudo-parrot 3699aa: OUTPUT«wootwootNominal type check failed for parameter '$b'; expected Int but got Str instead in sub foo at /tmp/tmpfile:1 in block at /tmp/tmpfile:1» | |||
..rakudo-jvm 3699aa: OUTPUT«wootwootNominal type check failed for parameter '$b' in sub foo at /tmp/tmpfile:1 in block at /tmp/tmpfile:1» | |||
japhb | [Coke]: hold on, have to get to the box I have a spec checkout | ||
[Coke] | Danke. | ||
vendethiel | [Coke]: try S12 ? | 20:53 | |
[Coke] | m: sub foo(::BARF $a, BARF $b) { say 'woot' }; foo(1, 3); foo('a','b'); foo(1, 'b'); | ||
camelia | rakudo-moar 3699aa: OUTPUT«wootwootcannot stringify this in sub foo at /tmp/wNrEu7apCt:1 in block at /tmp/wNrEu7apCt:1» | ||
[Coke] | p: sub foo(::BARF $a, BARF $b) { say 'woot' }; foo(1, 3); foo('a','b'); foo(1, 'b'); | ||
camelia | rakudo-parrot 3699aa: OUTPUT«wootwootNominal type check failed for parameter '$b'; expected Int but got Str instead in sub foo at /tmp/r58HY9DY8J:1 in block at /tmp/r58HY9DY8J:1» | ||
japhb | $ git grep -i 'type capture' | ||
S06-routines.pod:=head2 En passant type capture | |||
contents.pod: En passant type capture | |||
vendethiel | perlcabal.org/syn/S12.html#Custom_Meta-objects at the end | ||
japhb | The first one, of course. :-) | 20:54 | |
[Coke] | S02:1921 | ||
synopsebot | Link: perlcabal.org/syn/S02.html#line_1921 | ||
[Coke] | Danke. | 20:55 | |
20:55
rurban left
20:56
benabik left
|
|||
dalek | p: a4eda0b | moritz++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java: Remove now-deprecated validity checks for nqp::chr on the JVM |
21:00 | |
jnthn | ::T is a type capture; in roles, role Foo[...signature here...] { } | 21:01 | |
And so ::T works just like in a signature. | |||
japhb | jnthn: Yeah, that occurred to me right after I sent it. | ||
jnthn | You can even write multiple roles with the same short name and it just multi-dispatches to pick the best one :) | 21:02 | |
japhb | Especially since I've actually passed normal concrete valued arguments to role instantiations, so I clearly already knew that at some point. :-) | ||
21:03
woolfy joined
21:04
dayangkun left
|
|||
vendethiel | how do you call `grammar :: { rule foo<here that kind of stuff> { 'foo' } }` | 21:07 | |
21:08
skids left
|
|||
vendethiel | It's often quite hard to search for definitions, etc. How do you lookup what "will" does? | 21:08 | |
japhb | vendethiel: ETOOMETA. 'call' as in 'name', or 'call' as in 'invoke'? And if the latter, do you mean the grammar, or the rule? | ||
vendethiel | a rule with a subscript | ||
sorry I'm not clear. | |||
jnthn | adverb | 21:09 | |
vendethiel | a rule adverb? | ||
raiph | jnthn: a search for YieldProcessor yields zero results on reddit and hypernews. do any of the 12 matching posts on stackexchange help? stackoverflow.com/search?q=YieldProcessor | 21:10 | |
21:11
lowpro30_ left
|
|||
jnthn | vendethiel: Well, it's part of the name. | 21:13 | |
vendethiel | jnthn: Alright, noted :). Not sure what difference does it make in the end, but it's cool | 21:14 | |
jnthn | vendethiel: I guess you're referring to things like rule package_decl:sym<class> { ... } or so | ||
vendethiel | yes | ||
am I that unclear ? damn :s | |||
jnthn | vendethiel: No, it's me, I'm debugging something tricky at the moment and you only have a bit of my attention. Sorry. | 21:16 | |
vendethiel | I'd much rather let you focus on what you're doing, though :). | ||
jnthn | raiph: They're on topic, just don't tell me anything new. :) | 21:17 | |
21:18
dayangkun joined
|
|||
jnthn | raiph: Thanks for looking btw. | 21:19 | |
raiph: I think the answer is "there's no common abstraction for this to be found away from Windows, so just probe to see if you can inline-assembly it" | |||
21:24
rurban joined
21:25
xragnar_ joined,
xragnar left,
xragnar_ is now known as xragnar
|
|||
BenGoldberg | r: my $a = role A[::T] {}; my $b = $a[Int]; | 21:26 | |
camelia | rakudo-parrot 3699aa: OUTPUT«Invocant requires an instance, but a type object was passed in method Bridge at gen/parrot/CORE.setting:4376 in sub infix:<<> at gen/parrot/CORE.setting:4293 in sub infix:<<> at gen/parrot/CORE.setting:4137 in sub postcircumfix:<[ ]> at g…» | ||
..rakudo-moar 3699aa: OUTPUT«Invocant requires an instance, but a type object was passed in method Bridge at src/gen/m-CORE.setting:4372 in sub infix:<<> at src/gen/m-CORE.setting:4289 in sub infix:<<> at src/gen/m-CORE.setting:4133 in sub postcircumfix:<[ ]> at src/ge…» | |||
..rakudo-jvm 3699aa: OUTPUT«Cannot look up attributes in a type object in method Bridge at gen/jvm/CORE.setting:4373 in sub infix:<<> at gen/jvm/CORE.setting:4289 in sub infix:<<> at gen/jvm/CORE.setting:4133 in sub postcircumfix:<[ ]> at gen/jvm/CORE.setting:2385 …» | |||
BenGoldberg | Very peculiar that jvm produces a different error message. | 21:27 | |
21:29
a3gis left
21:39
tauli left
|
|||
dalek | ecs: 756c4ce | (Elizabeth Mattijsen)++ | S02-bits.pod: Fix left behind "async" (we only do "start" now) |
21:50 | |
21:59
rurban1 joined
22:03
lustlife left,
rurban left
22:04
bluescreen100 left
22:06
virtualsue joined
22:07
zby_home left
|
|||
dalek | ast: 71706d4 | moritz++ | S32-num/power.t: fix a moar fudge |
22:07 | |
22:09
tgt joined
|
|||
dalek | ast: aac2968 | moritz++ | S06-macros/quasi-blocks.t: another moar fudge |
22:09 | |
moritz | still lots of rakudo-m spectest failures | 22:10 | |
22:10
a3gis joined
|
|||
moritz | this is frustrating. | 22:10 | |
jnthn | moritz: Was there ~40 before you started? | ||
moritz | jnthn: dunno | 22:14 | |
22:15
a3gis left,
kbaker left
|
|||
dalek | kudo/nom: 348a16b | moritz++ | tools/build/NQP_REVISION: bump NQP revision to get some chr() fixes |
22:15 | |
22:16
cognominal left
22:18
virtualsue left
22:20
cognominal joined
22:24
btyler left
22:29
wbill joined
22:31
wbill left
22:35
jnap left,
treehug8_ left
22:36
jnap joined
|
|||
timotimo | thank you forbdoing it, moritz | 22:37 | |
22:38
wbill joined
|
|||
vendethiel | what's "use MONKEY_TYPING"? enabling `augment`|? | 22:42 | |
22:43
dmol left,
woolfy left
|
|||
timotimo | yes | 22:44 | |
22:46
wbill left,
rindolf left
22:51
logie left
22:54
jnap left
22:56
raiph left
|
|||
cognominal | and probably a reference to a metaphor créated by Emile Borel en.wikipedia.org/wiki/Infinite_monkey_theorem | 22:59 | |
elsewhere it is called duck typing. Am I wrong? | 23:03 | ||
jnthn | no, duck typing is something else | 23:05 | |
here we're monkeying with tyes | 23:06 | ||
*types | |||
23:07
tgt left
|
|||
cognominal | thx, jnthn++ | 23:08 | |
TimToady | it's called "monkey patching" in rubyland | ||
cognominal | there is even a wp entry : en.wikipedia.org/wiki/Monkey_patch | 23:09 | |
the supposed "etymology" is interesting | 23:10 | ||
23:18
kaare_ joined
23:20
ssutch_ joined
|
|||
jnthn | o/ TimToady | 23:21 | |
23:22
ssutch left
|
|||
TimToady | \o | 23:22 | |
jnthn | TimToady: I'm currently merging moar-conc. It doesn't give 100% of the concurrency functionality you've got on JVM, but promises and channels are there. It's the time-based stuff that's still missing. | ||
Promise.in(...), Supply.interval(...), etc. | |||
TimToady | cool | ||
vendethiel | jnthn++ | 23:23 | |
jnthn | No promises on how stable it is, though I've been hunting and killing parallel GC bugs in the last evenings... | ||
TimToady | tomorrow's talk is mostly about Open Source, and the Perl meetups are later, so don't need it immediately | ||
vendethiel | is it recorded? | ||
jnthn | Sure. Well, then you've time to tell me how you break it :P | ||
So I can try and fix it in time for the Perl things. :) | 23:24 | ||
TimToady | probably in a live demo :) | ||
jnthn | :P | ||
Murphy's law suggests so. | |||
dalek | Heuristic branch merge: pushed 16 commits to nqp by jnthn | 23:25 | |
Heuristic branch merge: pushed 30 commits to rakudo/nom by jnthn | 23:26 | ||
jnthn | There we go. | ||
TimToady | \o/ | ||
jnthn++ | |||
23:30
ajr_ left
|
|||
cognominal | jnthn++ | 23:30 | |
23:30
kaare_ left
23:37
iolympian joined
23:38
iolympian left
23:47
Mouq joined
|
|||
Mouq | o/ | 23:49 | |
yoleaux | 24 Mar 2014 23:22Z <TimToady> Mouq: yeah, should probably allow :q to \ an opener, and if double angles allow #, it's more because that's how shells work than how Perl works :) | ||
23:50
raiph joined
|
|||
Mouq | \o/ jnthn++ | 23:50 | |
jnthn | o/ moritz | 23:52 | |
uh | |||
o/ Mouq |