»ö« 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:12
fhelmberger joined
00:17
fhelmberger left
00:18
rurban joined
00:24
rurban left
00:33
xenoterracide__ joined
00:42
xenoterracide__ left
00:44
chenryn left
00:45
chenryn joined
01:02
Sqirrel left
01:03
Sqirrel joined
01:09
btyler left
01:12
klapperl joined
01:13
chenryn left
01:14
chenryn joined
01:15
klapperl_ left
01:16
rurban joined
01:20
treehug8_ left
01:21
rurban left
|
|||
vendethiel | seems like perl can't ever find my module | 01:37 | |
oh, it's okay | 01:38 | ||
01:47
backlash_jack left
01:55
Su-Shee_ joined
01:58
Su-Shee left
02:19
rurban joined
02:23
Khisanth joined,
rurban left
02:24
thou joined
02:35
plobsing joined
02:38
hoverboard joined
03:21
rurban joined
03:23
colomon left
03:24
colomon_ joined
03:25
Alula left,
rurban left
03:36
Alula joined
03:37
rurban joined
03:43
xragnar_ joined,
xragnar left,
xragnar_ is now known as xragnar
04:01
Alula left
04:12
Alula joined
04:13
Sqirrel left,
SamuraiJack__ joined
04:16
thou left
04:46
xenoterracide__ joined
04:50
BenGoldberg left
04:53
araujo left
05:01
rindolf joined
05:03
oetiker joined
05:05
rurban left
05:15
oetiker left,
oetiker joined,
jules_ joined
05:16
thou joined
05:25
thou left
05:36
rurban joined
05:38
skids joined
05:39
rurban1 joined
05:40
xinming joined
05:42
rurban left
05:43
hoverboard left
05:44
SevenWolf joined
05:52
rurban1 left
05:55
igorsutton joined
06:01
SamuraiJack__ left
06:07
xenoterracide__ left
06:13
hoverboard joined,
fhelmberger joined
06:18
fhelmberger left
|
|||
zacts | so I wonder if ideas have been pondered about using llvm in some way for perl6 | 06:25 | |
tadzik | pondered, yeah, I think someone even tried to build something at some point | 06:27 | |
zacts | tadzik: oh cool | ||
tadzik | github.com/ekiru/Bennu there | ||
it looks dead though | |||
thing is, llvm is nice and all, but is also, as the name suggests, low-level | 06:28 | ||
so it's not exactly fitting perl 6 | |||
zacts | ok | ||
06:39
rindolf left
06:43
igorsutton left
06:50
rurban joined
|
|||
Woodi | morning hackatownicy and * :) | 06:54 | |
06:55
rurban left
|
|||
Woodi | I was reading Observer pattern aka Publish-Subscribe in Go4 and it is described in terms of notifications... Implementations may vary but maybe sometimes Supplies could just work as notifications of change/availability ? | 07:00 | |
btw. there are many methods/filters in Supplies/Rx... maybe sometimes a general mechanism like FSM for generating events could be usefull ? | 07:02 | ||
07:14
nnunley left
|
|||
timotimo | morning * | 07:21 | |
07:23
darutoko joined
|
|||
FROGGS | morning | 07:29 | |
lizmat | commuting& | ||
07:29
lizmat left
|
|||
timotimo | jnthn: i'm confused. i have num and Num candidates for the bindpos_n methods; the one where bindpos_n was used with no type in the signature weren't meant to be bindpos_n and i fixed that now | 07:30 | |
07:31
hoverboard left
07:35
woolfy left
07:43
FROGGS left
07:50
bbkr_ left
07:52
rurban joined
07:56
rurban left,
kurahaupo joined
07:58
Timbus left,
kurahaupo left
08:02
Timbus joined
08:06
lizmat joined
|
|||
tadzik | itz starting \o/ | 08:09 | |
08:18
molaf joined
08:20
woolfy joined
|
|||
jnthn | Woodi: Supplies *are* an implementation of the observer pattern. | 08:28 | |
sergot_ | \o/ | 08:40 | |
08:50
FROGGS joined
08:53
rurban joined
|
|||
vendethiel | mh, I can't pass what I want to remove to `trim-trailing` :( ? | 08:55 | |
08:57
rurban left
|
|||
vendethiel | m: my %p = {v => {p => ('a',)}};say %p<v><p>.perl; | 09:02 | |
camelia | rakudo-moar 641398: OUTPUT«$("a",)» | ||
vendethiel | why is that $() ? | 09:03 | |
m: say (1,).perl; | |||
camelia | rakudo-moar 641398: OUTPUT«(1,)» | ||
09:08
SevenWolf left
|
|||
lizmat | lotrortk | 09:09 | |
09:10
FROGGS left
|
|||
vendethiel | what | 09:11 | |
09:12
FROGGS joined
|
|||
lizmat | lknjasljhjh= | 09:13 | |
what can I day, not quite awake yet ? | |||
*say | 09:14 | ||
sigh | |||
:-) | |||
09:14
spider-mario joined
09:15
telex left
09:16
telex joined
|
|||
vendethiel | there's no glob ? mmh :( | 09:17 | |
m: say dir('**/*').perl | |||
camelia | rakudo-moar 641398: OUTPUT«Failed to get the directory contents of '**/*': Failed to open dir: 2 in block at src/gen/m-CORE.setting:14104 in any at /home/p6eval/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:1 in method contents at src/gen/m-CORE.setting:141…» | ||
vendethiel | doc.perl6.org/routine/dir => the link to IO::Path 404s | 09:18 | |
and it seems it actually only returns IO::Path, even for files. | 09:22 | ||
09:26
FROGGS left,
Su-Shee_ is now known as Su-Shee
|
|||
vendethiel | github.com/Nami-Doc/Sprockets.pl/b...ocator.pm6 'did what i could | 09:27 | |
lizmat wonders what a Sprockets::Locator is | 09:29 | ||
vendethiel | lizmat: Sprockets is a ruby library for asset management (filters, caching, dep, etc) | 09:30 | |
09:38
dmol joined
09:39
FROGGS joined
09:55
denis_boyun joined
09:56
rurban joined
09:57
vendethiel joined,
Rotwang joined
10:00
rurban left
|
|||
vendethiel | m: 1 and (say 1) && (say 2) | 10:09 | |
camelia | rakudo-moar 641398: OUTPUT«12» | ||
10:14
fhelmberger joined
|
|||
FROGGS | n: 1 and (say 1) && (say 2) | 10:15 | |
camelia | niecza v24-109-g48a8de3: OUTPUT«12» | ||
FROGGS | is that right? | ||
vendethiel | a bit surprising to me | 10:17 | |
10:18
SamuraiJack__ joined
10:19
fhelmberger left
|
|||
dalek | kudo/eleven: 6413980 | (Geoffrey Broadwell)++ | src/core/Temporal.pm: Fix incorrect order of operations in sleep-timer() |
10:22 | |
kudo/eleven: 840d16d | (Tobias Leich)++ | / (103 files): Merge branch 'nom' of github.com:rakudo/rakudo into eleven |
|||
kudo/eleven: 44ad975 | (Tobias Leich)++ | src/ (4 files): Merge branch 'eleven' of github.com:rakudo/rakudo into eleven |
|||
panda/depends: 3be5bd5 | (Andrew Egeler)++ | lib/Panda/Builder.pm: | 10:31 | ||
panda/depends: Remove old Build class when using Build.pm | |||
panda/depends: | |||
panda/depends: If two packages with Build.pm files were installed during the same panda | |||
panda/depends: run (example: "panda install MIME::Base64 Auth::PAM::Simple"), the | |||
10:31
dalek left
10:32
dalek joined,
ChanServ sets mode: +v dalek
|
|||
dalek | kudo/nom: a672ad9 | (Elizabeth Mattijsen)++ | src/core/Any.pm: Add MMD candidates for simple Callables for grep, grep-index, first, first-index, last-index |
10:45 | |
10:47
hummeleB1 joined
|
|||
dalek | kudo/eleven: 3f8e0e1 | (Tobias Leich)++ | src/core/CompUnitRepo/Local/Installation.pm: unbreak CompUnitRepo.install We cannot use Hash.v (because it does not exists) and also not Hash:v, because it will complain about storing something into Pairs. |
10:51 | |
lizmat | oops, FROGGS++ | 10:57 | |
FROGGS | :o) | ||
10:58
rurban joined
|
|||
dalek | nda/depends: d2e4608 | (Tobias Leich)++ | lib/Panda/Bundler.pm: s/$*EXECUTABLE_NAME/$*EXECUTABLE/ |
10:59 | |
masak | I wonder if Supply.migrate isn't really the "join" (or μ) transformation of a monad. | 11:00 | |
the signature for it is right: T(T(A)) -> T(A) | |||
masak is listening to jnthn++'s Reactive Programming talk for the first time | |||
11:02
rurban left
|
|||
timotimo | oooh the video is up now? | 11:07 | |
11:11
itz joined
11:13
virtualsue joined
|
|||
FROGGS | timotimo: no, we're seeing him live... | 11:14 | |
timotimo | jnthn: please explain again what you meant with the num candidate? i have num and Num candidates | ||
oooh! | |||
i'm jealous | |||
vendethiel | same. | ||
colomon_ | o/ | ||
vendethiel | masak: sounds like join to me :) | ||
colomon_ knows not why he has an underscore this morning. | |||
11:40
pippo joined
|
|||
pippo | o/ #perl6 | 11:41 | |
11:41
SamuraiJack__ left
|
|||
pippo | Little typo to be corrected at doc.perl6.org/type/EnumMap | 11:42 | |
say %e.values; # prints "1 2\n" if the previous line # printed "a b\n", "b a\n" otherwise | |||
should be say %e.values; # prints "1 2\n" if the previous line # printed "a b\n", "b a\n" otherwise | |||
should be say %e.values; # prints "1 2\n" if the previous line # printed "a b\n", "2 1\n" otherwise | |||
colomon_ | pippo++ | 11:43 | |
pippo | :-) | ||
o/ | |||
11:43
pippo left
11:44
prevost joined
11:47
dwarring left
11:51
woolfy left,
bowtie left
11:55
nnunley joined
11:57
Rotwang left
11:58
prevost left
12:00
rurban joined,
Rotwang joined
12:01
rindolf joined
12:02
bowtie joined
12:04
rurban left
|
|||
masak | vendethiel: but is Supply a monad and a comonad? I think the latter. (but I'm not really good at distinguishing them yet) | 12:10 | |
dalek | kudo/nom: 74b5674 | (Elizabeth Mattijsen)++ | src/core/Any.pm: Properly MMD grep/first and friends |
12:13 | |
12:16
zakharyas joined
|
|||
vendethiel | masak: a monad is something with a safe wrapping operation (and an unsafe unwrapping one). A comonad is something with a safe unwrapping (but an unsafe wrapping) | 12:19 | |
masak | ooh | ||
that's gonna make it a lot easier to think about. | |||
vendethiel | masak: in most cases, these kind of constructs don't respond to the monad laws, because of exception semantics | ||
(ie they don't respect the right identity law) | 12:20 | ||
masak | ok, I see how List (for example) has a safe wrapping operation. you just take e to [e], right. | ||
12:20
virtualsue left
|
|||
masak | and there's no natural way to go the other way, because lists can have several elements -- which by the way leads to some hilarity in Perl 5. | 12:20 | |
vendethiel | (so I've heard) | ||
masak | $ perl -E 'my $a = (5, 6, 7); say $a' | 12:21 | |
7 | |||
jlaire | you can do that in C, too :P | ||
masak | $ perl -wE 'my @a = (5, 6, 7); my $b = @a; say $b' | ||
3 | |||
vendethiel | it'd be the first, though :)à | ||
jlaire | int x = (5, 6, 7); | ||
masak | ^ hilarity | 12:22 | |
vendethiel | jlaire: but the comma isn't a list operator in C :). It's merely a semicolon operator at the statement level | ||
masak | heck, that should be the prototypical example of "there's no safe unwrapping" :) | ||
vendethiel | hahaha | ||
jlaire | vendethiel: my point exactlyl, the comma is also a sequencing operator in scalar context in Perl 5 | ||
jnthn | o/ | ||
I gived my talk :) | 12:23 | ||
masak | moving on, what does it mean for Supply to have safe unwrapping but no safe wrapping? | ||
jnthn++ | |||
jnthn | timotimo: Link to latest gist? | ||
vendethiel | masak: a monad has `return` (Monad a => a -> m a), whereas a comonad has a `extract` (Comonad w => w a -> a) | 12:26 | |
FROGGS | m: class Foo { my $.thing = 42 }; say Foo.thing | ||
camelia | rakudo-moar a672ad: OUTPUT«(Any)» | ||
12:26
Rotwang left
|
|||
jnthn | r: class A { my $.x = 42 }; A.x = 69; say A.x | 12:26 | |
vendethiel | masak: Supply is something that can be used to wrap values and you have to use its flatMap (.tap I think ?) to get a value | 12:27 | |
camelia | rakudo-jvm a672ad: OUTPUT«(timeout)» | ||
..rakudo-{parrot,moar} a672ad: OUTPUT«69» | |||
12:27
Rotwang joined
|
|||
masak | vendethiel: so, aha. a List[e] is an "e consumer" and a Supply[e] is an "e producer" | 12:29 | |
vendethiel | masak: colist is the comonad of list | 12:30 | |
masak | vendethiel: but... what does it mean for Supply to have no safe wrapping. | ||
? | |||
vendethiel | masak: doesn't supply have a wrapping operation ? | 12:31 | |
or is it something else ? I don't really know supply | |||
masak | m: given Supply.for(1..10,1..10) { .tap(&say) } | 12:32 | |
camelia | ( no output ) | ||
masak | hm. | ||
seems I don't really know it either :) | |||
jnthn | .for currently runs asynchronously | ||
masak | m: my $s = Supply.new; $s.tap(&say); $s.more("OH HAI") | ||
camelia | rakudo-moar a672ad: OUTPUT«OH HAI» | ||
masak | \o/ | ||
vendethiel: is any of that wrapping? I don't see it. | |||
jnthn | That's probably not great. | ||
vendethiel | masak: wrapping would be .more, wouldn't it ? | 12:33 | |
masak | oh yes. | ||
you're right. | |||
vendethiel | but Supply is not really a monad, so you have to look in a weird way to see it :) | ||
masak | what makes it "not safe"? | ||
in the way List[e] -> e is not safe. | |||
jnthn | vendethiel: It lazy lists are a monad, then supplies are a monad too... | 12:34 | |
masak | well, comonad. | ||
vendethiel | masak: I think it's a monad | ||
there's no safe unwrapping for Supply | 12:35 | ||
[14:26] <14vendethiel> masak: Supply is something that can be used to wrap values and you have to use its flatMap (.tap I think ?) to get a value | |||
masak | ok... | ||
I would expect it to be a comonad, since we've used duality to get observables from lists. | 12:36 | ||
12:36
kivutar joined
|
|||
masak | or from iterables/enumerables, more exactly. | 12:36 | |
vendethiel | masak: what would be `extract` for supply then ? | 12:37 | |
Woodi | jnthn: I'm probably more then bad in explaining things... Supplies/Rx push _elems_ to receivers what is one possible implementation of Observer pattern. Other is: subscribing objects could be just _notified_ about available elems, and then receivers can get value | ||
masak | vendethiel: well, .tap is a kind of `extract`, I think. | 12:38 | |
vendethiel | masak: no, it's a fmap | ||
12:38
denis_boyun_ joined
|
|||
masak | oh, ok. | 12:38 | |
vendethiel | masak: an extract would mean you could do `my $a = $s.tap;` | ||
masak | Woodi: I fail to see the significant difference. | 12:39 | |
12:39
denis_boyun left
|
|||
masak | vendethiel: yes, you're right. | 12:39 | |
.tap is an fmap. | |||
I think Erik Meijer said that Supply (well, Observable) is a comonad. | 12:40 | ||
masak falls back to Appeal to Authority | 12:41 | ||
vendethiel doesn't really like erik meijer | 12:42 | ||
but then again, maybe somebody who knows what they're talking about would be better | |||
masak | :) | 12:43 | |
12:43
denis_boyun_ left
|
|||
masak | maybe I should instead ask: what's a colist, and what is a use case for one? | 12:43 | |
12:45
rurban joined
|
|||
Woodi | masak: for example receivers can skip intermediate updates. when updates are pushed sometimes it can fire additional unneeded updates somewhere else in the chain of supplies. I think observer patter is not the same as triggers | 12:45 | |
timotimo | github.com/jnthn/zavolaj/pull/40/files ← jnthn | 12:46 | |
Woodi | but it's implementation dependend, just saying... | 12:47 | |
jnthn | timotimo: yeah, that looks fine to me. | 12:48 | |
masak | Woodi: seems to me there's a trivial isomorphism between (a) receiving a value and conditionally ignoring it, and (b) receiving a notification about an update and conditionally getting the value. | ||
timotimo | jnthn: cool, feel free to merge that, then | 12:49 | |
masak | Woodi: that's why I don't see any significant difference. | ||
dalek | volaj: ac41467 | (Timo Paulssen)++ | lib/NativeCall.pm6: assign_pos for CArray |
||
volaj: 92c8f2d | (Timo Paulssen)++ | lib/NativeCall.pm6: these weren't meant to be num methods. |
|||
volaj: 2cd79b0 | jonathan++ | lib/NativeCall.pm6: Merge pull request #40 from timo/assign_pos_carray assign_pos for CArray |
|||
timotimo | i hope it also works. somebody ought to test it :P | ||
All tests successful. | 12:50 | ||
that doesn't sound too bad. though i don't know if it actually gets tested :) | |||
jnthn | *sigh* You didn't run the tests before sending the PR? :P | ||
masak | lizmat: subtests show up in prove without the -v option -- probably shouldn't. | 12:51 | |
I just ran the spectests. failures in S17-supply/on.t and S17-supply/watch_path.t | |||
timotimo | jnthn: i did now! :) | ||
if the observer is moving at the right speed between where i wrote the code and where i sent the PR from, it could conceivably be that i tested it before i sent the pull request | 12:52 | ||
because relativity! | |||
jnthn | I thought I was feeling heavy 'cus of all the pizza but no, it's because relativity :P | 12:54 | |
12:54
zakharyas left
|
|||
timotimo | did your talk get recorded again? | 12:57 | |
jnthn | I saw a video camera :) | ||
masak | m: use v5; my $a = (5, 6, 7); say $a | 12:58 | |
camelia | rakudo-moar a672ad: OUTPUT«5 6 7» | ||
masak | FROGGS: ^ bug | ||
timotimo | i wonder if the recording from this talk will be up before the one from plpw will be | ||
masak | FROGGS: where do I submit 'use v5' bugs? | ||
timotimo | that was plpw, wasn't it? | ||
jnthn | masak: uh...is that actually really using v5? | ||
FROGGS | no | ||
masak | oh. :) | ||
how do I try 'use v5' things using camelia? | 12:59 | ||
timotimo | i don't think we can do that yet | ||
masak | I see. | ||
jnthn | And when we can it'll likely be star: ... | ||
FROGGS | 'use v5' is noop right now here | ||
someday it will be in star, yeah | |||
hopefully in <3months or so | 13:00 | ||
jnthn | lovemonths? | ||
FROGGS | maybe a bit more, dunno | ||
*g* | |||
masak | in lovemonths, gotcha. | ||
FROGGS | there are only lovemonths :o) | ||
jnthn | FROGGS: What's the blocker? "Just" getting the patch on Rakudo eliminated? | 13:01 | |
FROGGS | jnthn: yes | ||
well, and then it is "only" about getting closer and closer to Perl 5 | |||
jnthn | FROGGS: If we were to get that patched into Rakudo in the next days, we could have it in the monthly, and get v5 into the next star in theory, no? | 13:04 | |
FROGGS | jnthn: yes, this should be no problem at all | 13:05 | |
that's the patch btw: github.com/rakudo-p5/v5/blob/maste...kudo.patch | |||
timotimo | and it could be in the weekly, too :) | 13:07 | |
flussence | .oO( I have a feeling this christmas is going to be "the" one :) |
13:10 | |
timotimo | every christmas is the christmas | 13:11 | |
vendethiel | masak: good question :) | ||
masak: github.com/ekmett/comonad/blob/mas...Comonad.hs | 13:12 | ||
masak looks | |||
vendethiel | (that's for comonad, not colist - can't find good stuff for colist) | ||
I found an article but it's wrong | 13:14 | ||
masak | really interesting question during lizmat++'s talk: what's the percentage of pure perl modules on CPAN? | ||
things that complicate the answer: (a) dependencies might not be pure Perl, and (b) the DarkPAN is largely not using XS. | 13:15 | ||
timotimo | is DarkPAN just a word for "modules that are not uploaded to the CPAN"? | 13:16 | |
masak | yes. | ||
timotimo | want to put it into S99? | ||
:) | |||
masak | it's a thing that Perl 5 Porters take quite seriously. | ||
timotimo: oki. | |||
timotimo | right. "how will this change affect the DarkPAN"? | ||
masak | right. | 13:17 | |
timotimo | right. | ||
masak | (b) means we'll never know the "real" answer. | 13:18 | |
I would still like to actually traverse CPAN and find out the answer, with and without (a). | |||
timotimo | mhm | ||
13:20
SamuraiJack__ joined
|
|||
dalek | ecs: 6feffb1 | masak++ | S99-glossary.pod: [S99] "DarkPAN" entry Nobody expects the Spanish Darkquisition! |
13:21 | |
timotimo | the Panish Darkquisition? | ||
masak | hehe | ||
jnthn | .oO( СPANish inquisition ) |
13:22 | |
lizmat | masak: do the subtest show up without indentation ? | ||
masak | lizmat: yep. | 13:24 | |
lizmat | ah? | ||
masak chuckles at the word "Cokleisli" in the .hs source file above | |||
lizmat: would you like a gist? | |||
oh wait | 13:25 | ||
hold on -- I'm stupid, that's what. | |||
lizmat: never mind :/ | |||
yeah, everything works. | 13:26 | ||
13:26
nebuchadnezzar joined
|
|||
masak | PEBKAC | 13:26 | |
anyway, here's the failed tests stats: | 13:28 | ||
t/spec/S17-supply/on.t -- Failed tests: 4-5 | |||
t/spec/S17-supply/watch_path.t -- Failed tests: 7, 9, 11, 13, 15, 17, 19, 22-23 | |||
13:32
SamuraiJack__ left
|
|||
masak | in t/spec: | 13:36 | |
$ git grep -c sleep | perl6 -ne 's/^ <-[:]>+ \://; our $sum; $sum += $_; END say $sum' | |||
92 | |||
:/ | |||
58 of those are in S17-*/ | |||
I bet a lot of those can be eliminated by using Scheduler cleverly. | |||
masak just gave a TDD course where he said "you should inject time, not sleep literally -- unfortunately, it's not done so often in practice..." | 13:37 | ||
jnthn | masak: Yeah, I mentioned we could use a TestScheduler-alike, as Rx does. If you're curious enough to implement it... ;-) | 13:38 | |
masak | I am. | ||
jnthn | In theory it's not much code | ||
masak | I see that as a potential win for the S17 tests. | ||
jnthn | See the Scheduler interface. | ||
Me too :) | |||
masak | *nod* | ||
jnthn | uh, s/interface/role/ :) | 13:39 | |
masak | first in my queue, though: :expires for .squish | ||
jnthn | ooh :) | ||
++masak # squishing NYIs | 13:40 | ||
FROGGS | timotimo: you might enjoy: www.infoq.com/presentations/invokedynamic - by jnthn++ | ||
13:41
xenoterracide__ joined
|
|||
jnthn | I just identified the minimum revert needed to unbust Panda builds against HEAD MoarVM that various folks have seen (the SEGV happened around compiling Builder.pm) | 13:42 | |
dalek | kudo/nom: d154cc8 | (Elizabeth Mattijsen)++ | src/core/SupplyOperations.pm: Fix Supply.grep for Regexes |
||
ast: 6f14b03 | (Elizabeth Mattijsen)++ | S17-supply/grep.t: Add tests for Supply.grep(Regex) |
13:43 | ||
lizmat | jnthn ^^^ | 13:44 | |
should fix oddness you've seen | |||
cognominal | jnthn++ for www.infoq.com/presentations/invokedynamic | 13:47 | |
masak half-expected cognominal to make a French pun about invokedynamic | 13:48 | ||
cognominal | I can't think of any | 13:49 | |
masak | ;) | ||
cognominal | jnthn has the right mix of informality and precision in his presentations that makes them so enjoyable | 13:52 | |
jnthn | .oO( Not sure precisely informal, or informally precise... ) |
13:54 | |
cognominal | s :g /interesting/really hard/ from jnthn's sublanguage to mine | 14:00 | |
masak .oO( www.preciselyinformal.org ) | 14:04 | ||
vendethiel | m: say 5 ?? $_ : 0; | 14:16 | |
camelia | rakudo-moar 74b567: OUTPUT«===SORRY!=== Error while compiling /tmp/UxrhFTb1hzPlease use !! rather than :at /tmp/UxrhFTb1hz:1------> say 5 ?? $_ ⏏: 0; expecting any of: postfix infix stopper infix or …» | ||
vendethiel | m: say 5 ?? $_ !! 0; | ||
camelia | rakudo-moar 74b567: OUTPUT«Nil» | ||
14:16
hummeleB1 left
|
|||
vendethiel | mmh. | 14:16 | |
lizmat | m: .say | 14:17 | |
camelia | rakudo-moar 74b567: OUTPUT«Nil» | ||
lizmat | vendethiel: apparently $_ is by default Nil in the repl ? | 14:19 | |
vendethiel | lizmat: I was just looking to see if I could get the ternary's "topic" | ||
jnthn | ?? doesn't topicalize | ||
You can do that with if foo() -> $x { ... } or so | 14:20 | ||
lizmat | which makes much more sense then the Perl 5 idiom: if my $x = foo() { say $x } | 14:22 | |
jnthn | gets the scoping righter | 14:24 | |
masak | it's nice -- I use it occasionally for "interesting values of True". | 14:25 | |
jnthn | aye | ||
masak | it's kinda cool that it just falls out of the principle that "blocks (even those in syntactic forms) can also have signatures" | ||
lizmat | p5: if ( my $x = 0 ) { } else { print "$x\n" } | 14:26 | |
perl5: if ( my $x = 0 ) { } else { print "$x\n" } | |||
masak | ENOP5 | ||
lizmat | $ perl -e ' if ( my $x = 0 ) { } else { print "$x\n" }' | ||
0 | |||
even weirder: $ perl -e ' if ( my $x = 0 ) { } else { } print "$x\n"' | 14:27 | ||
so, it *is* in the scope of the if/else but not outside | 14:28 | ||
$ perl -we ' if ( my $x = 0 ) { } else { } print "$x\n"' | |||
Found = in conditional, should be == at -e line 1. | |||
Name "main::x" used only once: possible typo at -e line 1. | |||
Use of uninitialized value $x in concatenation (.) or string at -e line 1. | |||
lizmat <3 Perl 6 | 14:30 | ||
cognominal | What jnthn describes in plan b looks like a simplified version of bibliography.selflanguage.org/_static/pics.pdf There are other papers and it is used in v8. | 14:32 | |
vendethiel | oh, I've spent 30 min trying to understand what happened then I remember perl6 does list flattening :( | 14:37 | |
ooh ... I'm using $ and not @ ... | 14:43 | ||
14:48
xinming left
|
|||
vendethiel | that'll take some time to sink ... | 14:50 | |
But I hope what I'm doing will be useful to web frameworks in the future :) | |||
14:50
xinming joined
|
|||
masak | workshop over for the day | 14:55 | |
& | |||
14:59
lizmat left
15:01
PZt left
15:05
PZt joined
15:07
FROGGS left
15:13
xenoterracide__ left
15:16
molaf_ joined
15:20
molaf left
15:21
skids left
15:22
darutoko left,
darutoko joined
15:27
rurban1 joined
15:30
lizmat joined,
rurban left
15:32
woolfy joined
15:36
dmol left
15:39
FROGGS joined
|
|||
vendethiel | masak: I use it a lot | 15:43 | |
15:44
FROGGS left
|
|||
vendethiel | m: class A { has $.a; method m(:$.a) {say $.a} }; my $a = A.new; say $a.perl; $a.m(a => 6); say $a.perl; | 15:47 | |
camelia | rakudo-moar d154cc: OUTPUT«A.new(a => Any)Cannot find method 'STORE' in method m at /tmp/VGrBqogIkR:1 in block at /tmp/VGrBqogIkR:1» | ||
vendethiel | it's a bit surprising that $.a has to be rw in this case | ||
(because it makes it public) | |||
TimToady | try it with :$!a instead | 15:48 | |
$.a is the virtual interface | |||
vendethiel | m: class A { has $.a; method m(:$!a) {say $.a} }; my $a = A.new; say $a.perl; $a.m(a => 6); say $a.perl; | ||
camelia | rakudo-moar d154cc: OUTPUT«A.new(a => Any)6A.new(a => 6)» | ||
vendethiel | Ah, alright. thanks TimToady | 15:49 | |
.oO( my autocomplete is gettign tired of all these tim ) |
|||
TimToady | make case sensitive :) | 15:50 | |
vendethiel | even with `use v6;` p6 complains that "this looks like p5 code" | ||
just because I don't know properly how to do a module that exports functions, meh ! | |||
TimToady starts looking around for his MJD quotations... | 15:51 | ||
vendethiel tries to look for the difference between module and package | 15:52 | ||
TimToady | packages don't export | ||
packages don't export in P5 either, but the way you turn a package into a module in P5 is not by using the keyword "module", is all | 15:53 | ||
you make a module by installing something that can export to 'use', and in P6 you do that by saying 'module' | 15:54 | ||
(or 'class') | |||
(or 'grammar') | 15:55 | ||
but in both P5 and P6, a package is just a place to poke symbols | |||
15:55
dmol joined
|
|||
TimToady | P6 just makes it look more declarative to go beyond that | 15:56 | |
16:03
anaeem1 joined
16:11
guru joined,
guru is now known as Guest49655,
Guest49655 is now known as ajr_
16:17
zby_home joined
16:42
dayangkun left
|
|||
vendethiel | to "poke symbols"? | 16:46 | |
vendethiel even expected our to have an `is export`-ish behavior, but fixed his code | 16:47 | ||
16:48
chenryn left,
chenryn joined
|
|||
TimToady | 'our' is the sense of 'globally nameable', like Yellowstone Park, not in the sense of "cultural imperialism", like the whole world must acquire the values of Hollywood | 16:50 | |
we don't export Yellowstone, but you know where to find it | 16:51 | ||
16:52
hoverboard joined
|
|||
TimToady | cultural imperialism would be bad in a programming language, because it would violate the rule of the programmer knowing what language they're using | 16:52 | |
vendethiel | ah, alright. | 16:53 | |
There's no construct to only import some names from a module, is there ? | |||
16:53
jules_ left
|
|||
TimToady | sure, use Foo <just these names>; | 16:54 | |
or there are tags | |||
vendethiel | I really dig that. | ||
mmh, and I just learned about `need`. | 16:55 | ||
TimToady | equivalent to P5's use Foo (); | 16:56 | |
vendethiel | yeah, I'm reading through S11 (trying to find alias if they exist) | ||
on the other hand, you can force a program to have any symbol with :mandatory,right ? even if they don't `use $ <it>` | 16:57 | ||
TimToady doesn't remember the specifics :) | |||
or whether rakudo implements any such thing... | 16:59 | ||
vendethiel | ah, there's apparently no aliasing | ||
17:00
pschwenn joined
17:04
vendethiel left,
pschwenn left
17:05
pschwenn joined
17:06
pschwenn_ joined
17:07
pschwenn_ left,
denis_boyun joined,
pschwenn left
17:08
chenryn left
|
|||
TimToady | you can always alias anything that is visible | 17:09 | |
17:09
chenryn joined
|
|||
TimToady | for the rare occasions you need to, that's probably sufficient | 17:09 | |
17:12
itz left
17:13
sqirrel joined
17:14
sqirrel left
17:22
[Sno] left
17:23
[Sno] joined
17:35
anaeem1 left,
xilixy joined,
xilixy left
17:38
vendethiel joined
17:42
Vlavv left
17:47
anaeem1_ joined
17:52
BenGoldberg joined
17:53
hoverboard left
17:54
woolfy left
17:55
Vlavv joined
18:04
araujo joined
18:05
zakharyas joined
18:06
cognominal left
|
|||
flussence | I've done good today... more crashes caused than chars of code added :) | 18:06 | |
vendethiel | "batman does good - you did well" :P | 18:07 | |
ingy | that's all week and good but... | 18:12 | |
grr | |||
ingy returns to being lame | |||
18:15
fhelmberger joined,
hoverboard joined
18:19
fhelmberger left
18:20
cognominal joined
18:21
anaeem1__ joined
18:24
anaeem1_ left
18:27
rurban1 left
18:32
rurban joined
18:33
darutoko left,
rurban left
18:34
SamuraiJack__ joined
18:36
dmol left
18:37
chenryn left
18:38
chenryn joined
|
|||
vendethiel | #` comments are so hard to type on an azerty :[ | 18:38 | |
.u 「 | 18:39 | ||
yoleaux | U+300C LEFT CORNER BRACKET [Ps] (「) | ||
18:42
SamuraiJack__ left
18:46
dmol joined
18:47
mj41 joined
19:00
hoverboard left
|
|||
vendethiel | . | 19:03 | |
m: say 'ping' | |||
camelia | rakudo-moar d154cc: OUTPUT«ping» | ||
19:08
vendethiel left
19:12
vendethiel joined
19:19
BenGoldberg left
19:28
anaeem1__ left
19:37
rurban joined
19:44
kst` joined
19:46
hoverboard joined
19:59
rurban1 joined
20:02
anaeem1 joined
20:03
rurban left
20:05
mj41 left
20:09
kurahaupo joined
20:15
kurahaupo left
20:18
zakharyas1 joined
20:19
zakharyas left,
igorsutton joined
20:20
igorsutton_ joined,
igorsutton left
|
|||
vendethiel | m: my $s; sub a { UNDO $s = 1; fail "foo" }; try a; say $s; | 20:25 | |
camelia | rakudo-moar d154cc: OUTPUT«1» | ||
vendethiel | m: sub do-stuff-with-db($param) { state $db = get-db-cnt(); ENTER $db.start-transaction; KEEP $db.commit; UNDO $db.rollback; } | 20:27 | |
camelia | rakudo-moar d154cc: OUTPUT«===SORRY!=== Error while compiling /tmp/ItfhErpIysUndeclared routine: get-db-cnt used at line 1» | ||
vendethiel | m: sub do-stuff-with-db($param) { state $db = get-db-cnt(); ENTER $db.start-transaction; KEEP $db.commit; UNDO $db.rollback; }; sub get-db-cnt { True } | ||
camelia | ( no output ) | ||
20:27
rurban joined
|
|||
vendethiel is showing off p6 to yet another one | 20:28 | ||
20:31
rurban1 left
|
|||
timotimo | o/ | 20:32 | |
vendethiel | o/ timotimo | ||
20:35
xragnar left
20:37
xragnar joined
20:40
Sqirrel joined
20:42
rurban1 joined
|
|||
flussence | m: await( (^10).map: { start { say $_ } } ) | 20:44 | |
camelia | rakudo-moar d154cc: OUTPUT«0124356789» | ||
20:46
rurban left
20:47
ajr_ left
20:50
rurban1 left
21:01
rurban joined
21:07
pippo_ joined
21:09
rurban left
21:17
rurban joined
21:25
btyler joined
21:26
dmol left,
dmol joined
|
|||
timotimo | i can't watch the presentation on invokedynamic and i would have to sign up to download the mp3 file :\ | 21:29 | |
21:29
rindolf left
|
|||
vendethiel | ah, looks like I missed the link somehow | 21:30 | |
vendethiel thanks perlgeek.de | |||
21:30
denis_boyun___ joined,
denis_boyun left
|
|||
timotimo | signing up requires *lots* of info | 21:33 | |
21:34
zby_home left
21:36
pippo_ left
21:37
zakharyas1 left
|
|||
vendethiel | this talk starts with a good reminder about a great thing wrt perl 6 : it's good with dealing with known unknown | 21:43 | |
21:43
anaeem1 left
21:48
SevenWolf joined
21:49
rurban left
|
|||
timotimo | the ipv6 in this place seems very flaky | 21:51 | |
and i don't see a simple "turn ipv6 off" thingie in network manager | |||
geekosaur | gnome network manager? afaik you can go into the interface properties, ipv6 tab, set to link-local | 21:52 | |
you can't shut it off entirely but link local might as well be off since it's non-routable | |||
21:58
colomon_ left
22:02
colomon joined
22:16
kivutar left
22:20
rurban joined
22:23
spider-mario left
22:25
rurban left
22:35
FROGGS joined
23:02
Rotwang left
23:04
vendethiel left
23:05
vendethiel joined
23:10
hoverboard left,
igorsutton_ left
23:13
bjz joined
23:22
rurban joined
23:23
vendethiel left
23:27
rurban left
23:38
denis_boyun___ left,
hoverboard joined
|