»ö« 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:11 benabik left 00:13 Psyche^ joined 00:16 benabik joined, Psyche^_ left
TimToady I feel good now, forgetting preflex can handle messages too--in fact, the more I forget, the better I feel! :) 00:21
00:28 benabik left 00:33 ajr_ left 00:38 benabik joined 00:51 benabik left 00:56 toebu joined 00:57 wbill joined, lawrmcfa left 00:58 [Sno] left, xalbo left, Timbus left, ivan`` left, tipdbmp left, risou_awy left, moritz joined, xalbo joined, risou_awy joined 00:59 ivan`` joined, ivan`` left, ivan`` joined, camelia joined, [Sno] joined 01:00 Timbus joined, ChanServ sets mode: +v camelia 01:01 pernatiy joined 01:05 wbill left 01:07 wbill joined 01:09 Guest76482 is now known as denysonique
dalek ecs: eb0f216 | larry++ | S04-control.pod:
unspec statement_prefix:lift

This is going away in favor of better parameter declarations that can implicitly default to operators as seen by the caller.
01:13
colomon hmmm 01:17
01:20 benabik joined 01:25 tipdbmp joined 01:40 benabik left
dalek ecs: f597d20 | larry++ | S17-concurrency.pod:
Scheduler refinements/defilements

Renamed basic scheduler method to .cue Combined various other scheduler methods to use named parameters instead Added :at($instant) for a way to specify an absolute time Removed .outstanding because... Added .loads to give info on how many cues are in delayed/startable/running states
01:53
02:02 benabik joined 02:34 araujo left
dalek ecs: bd42b63 | larry++ | S17-concurrency.pod:
s/cause/excuse/

Broken promises don't have causes, they have excuses. :)
  (Plus .excuse is the same length as .result for better alignment, fwiw.)
02:37
02:44 jnap joined 02:47 jnthn left, jnthn joined
dalek rl6-roast-data: ac8e517 | coke++ | / (5 files):
today (automated commit)
03:02
03:03 raiph joined, mathw left 03:04 mathw joined
dalek ecs: 7b9010f | larry++ | S17-concurrency.pod:
Conjectures, s/keeper/vow/ to stay non-commital

Speculations in some spots that could have better syntax.
The word "keeper" kind of implies you're going to keep the promise, when in fact you might break it. To avoid this overtone, as well as other unfortunate meanings of "keeper" ("Yep, he's a keeper!"), we rename the internal stewardship of the promise to "vow".
03:04
timotimo oh! i thought that one was a keeper ... 03:05
lue I wonder if TimToady has thought about the design of Perl 6 today. 03:06
[Coke] good evening, you perl people 03:07
03:09 johnny5_ left 03:10 johnny5_ joined
TimToady also, I dislike resurrecting the verb "select" when we've just taken out and shot the two forms of "select" from Perl 5... 03:12
lue: no design, just a lot of opinions :) 03:13
lue slowly backs out of TimToady's office, "select/case" proposal in hand :) 03:14
TimToady is not against the concept, just the specific word :)
it's really a kind of race, except we've used that word already 03:16
well, the second form isn't a race, in the sense that it only looks to see if you already have a winner 03:17
it's really a declaration of who is racing, so maybe "racers {...}" or some such 03:20
or "racing {...}" to imply that a race is actually being run, with "racer" declarations inside like "when" statements, so that we can go back to ending cases with } rather than }, 03:23
03:26 johnny5_ left
lue should read S17 and see what -Ofun naming suggestions he comes up with. 03:26
03:27 johnny5_ joined
lue TimToady: I think I'd like racing { track { } } or racing { contestant { } } or somesuch instead of racing { racer { } }, if only to avoid too-similar names. 03:27
TimToady at the moment I have winner { when $p1 {... } } 03:30
geekosaur gate? 03:32
that is, racing / gate
raiph why is it schedule.cue but promise.start (not promise.cue)?
03:33 dansamo joined 03:35 huf joined
TimToady because a cue is at some point in time, but start means "asap" 03:36
to look at it another way, the scheduler actually will start the closure when a thread becomes available to attach it to, while the promise is notionally scheduled immediately (though of course there could be delay in doing that) 03:38
and .start sounds more impatient than .cue, which I think is appropriate for the two pragmatic contexts 03:39
and .cue is really kinda short for .cue-this-when-you-feel-it's-appropriate-to 03:40
really, .schedule-a-cue :) 03:41
but it works well with the modifiers: "cue this in 10 seconds" 03:42
also, there's the cue/queue pun that jnthn++ likes
03:46 johnny5_ left
BenGoldberg Looking at S17-concurrency, it seems to me that in addition to $promise.then(&code) which fires code if the promies is either kept or broken, we might want $promise.then(&when_kept,&when_broken), which fires either of two subs when the promise is kept or broken. It might even be a good idea to offer $promise.kept(&code) and $promise.broken(&code) 03:46
03:47 johnny5_ joined, camelia left 03:48 johnny5_ left
raiph TimToady: thanks 03:49
03:49 johnny5_ joined 03:50 camelia joined 03:51 ChanServ sets mode: +v camelia 03:53 mathw left, mathw joined 03:55 dansamo left
lue
.oO( $promise.I-guess-SOME-PEOPLE-just-don't-understand-the-value-of-keeping-promises(&code) )
03:58
03:59 rurban joined
geekosaur promise-cuous 03:59
(or maybe promise-cue-ous and you need to remind it?) 04:00
04:02 pjcj joined 04:05 _ilbot left 04:06 _ilbot joined
TimToady BenGoldberg: yes, that's one approach I'm considering 04:08
dalek ecs: f0f514e | larry++ | S17-concurrency.pod:
Spec a statement-level construct for racing things
04:09
benabik Most promise/then APIs I'm aware of cascade failures. If $a fails, then $a.then() also fails. 04:11
(As .then generally itself returns a failure. 04:12
Future. Promise. Whatever.
TimToady I can see variants where each then has its own failure, and variants where you want a single failure handler for the whole cascade
for logic operators we defined both 'andthen' and 'orelse', and leave it up to the user to parenthesize :) 04:13
given those are thunky, maybe there's some way to unify them 04:14
benabik If you have $b = $a.then(&pass, &fail), then what does $b represent? Does it get the return value of &fail as a success if $a fails?
lue r: sub infix:<∃>(&a, &b) { &a for &b }; say $_ ∃ ^10 04:15
camelia rakudo-jvm 882e33: OUTPUT«(timeout)»
..rakudo-parrot 215ba6: OUTPUT«Nominal type check failed for parameter '&a'; expected Callable but got Nil instead␤ in sub infix:<∃> at /tmp/ZHVMkkw0kA:1␤ in block at /tmp/ZHVMkkw0kA:1␤ in any at /tmp/ZHVMkkw0kA:1␤ in any at gen/parrot/stage2/NQPHLL.nqp:1146␤ in an…»
lue r: sub infix:<∃>(&a, &b) { &a for &b }; -> {say $_} ∃ ^10
camelia rakudo-jvm 882e33: OUTPUT«(timeout)»
..rakudo-parrot 215ba6: OUTPUT«Nominal type check failed for parameter '&b'; expected Callable but got Range instead␤ in sub infix:<∃> at /tmp/I9XNE3LZL3:1␤ in block at /tmp/I9XNE3LZL3:1␤ in any at /tmp/I9XNE3LZL3:1␤ in any at gen/parrot/stage2/NQPHLL.nqp:1146␤ in …»
TimToady benabik: dunno, getting into semi-predicate problems there...I suspect a lot of folks will just want to program the success path and let the failure path throw automatically in a 'use fatal' sort of way 04:19
dalek ecs: e17c32f | larry++ | S17-concurrency.pod:
missed some Subscribables -> Supply
04:24
timotimo supply? as in supply and demand? 04:26
04:26 BenGoldberg left
TimToady had probably better let those changes settle a bit before proposing better syntax for "on" and such 04:26
supply as in "water supply", or some stronger substance
timotimo guys, are you serious? i think it's time to name Grammar and Actions into Interpretation and Meaning or something
lestrrat :w 04:27
sorry, typo.
04:28 preflex_ joined, ChanServ sets mode: +v preflex_
TimToady timotimo: what, lengthen those names to make up for shortening names like Subscribable? :) 04:29
timotimo it's called an "ecosystem" and if you don't keep it in balance, you're killing the rainforest.
rainforest.perl6.org. i kinda like that
04:29 preflex left
TimToady jungle.perl6.org would be shorter :) 04:30
04:30 preflex_ is now known as preflex
timotimo okay, and we call the local database "knees" 04:30
you know, because it's "welcome to the jungle watch it bring you to your knees"?
i think i'm trying too hard
TimToady but we also are trying to keep the concepts far enough apart that names can develop from merely descripting into "proper names" where that's appropriate 04:32
this is the main reason "roast" is called "roast" and not "spectests" :)
well, that, and tab completion :)
timotimo .o( it's roasting implementors in implementor hell? ) 04:33
TimToady that too :)
and roasting the implementions till they're yummy
English is a big language with lots of concepts, and there's really little reason to stick to overly descriptive CS-y names when we can latch onto a solid metaphor and make it stick 04:35
to mix a few sticky metaphors...
timotimo that sounds like a very -Ofun thing to say :)
TimToady well, it's certainly a fun thing to do 04:36
TimToady notes with pleasure that our choice of the concept "roles" has caught on in the Perl 5 world as well as in Perl 6
because that's what roles are in the real world: generic more-or-less immutable parts ("Hamlet") that are instanciated by mutable actors 04:40
perigrin hides MX::RoleParameterized from TimToady
04:42 jnap left
TimToady s/Parameterized/Cast/ :) 04:42
well, not really...
04:42 johnny5_ left, johnny5_ joined
TimToady the part isn't cast till a class gets hold of it 04:43
.oO(obviously an acting class)
TimToady had better wander off and find something else to screw up instead of S17 :) 04:44
perigrin heh 04:45
class Cumberbatch is Actor { ... } 04:46
lue I can't help but wonder if a Key object would be useful alongside Lock objects. 04:52
04:52 FROGGS left
lue (likely not) 04:52
05:04 lue left 05:06 lue joined 05:09 SamuraiJack joined 05:13 raiph left 05:22 toebu left 05:24 [Sno] left, raiph joined 05:31 raiph left 05:36 araujo joined 05:46 cognominal left, cognominal joined 06:05 johnny5_ left 06:06 johnny5_ joined 06:13 rurban left 06:20 darutoko joined 06:23 fridim_ left 06:34 Hellcat joined 06:35 Hellcat is now known as Guest21227 06:36 Guest21227 left, Guest21227 joined 06:37 Guest21227 left, Guest21227 joined, Guest21227 is now known as Shellcat 06:42 [Sno] joined 06:49 ssutch_ left 07:01 wbill left 07:08 lue left 07:11 dmol joined 07:13 xenoterracide left 07:17 tobyink joined 07:20 virtualsue joined 07:23 ggoebel14 left 07:24 Shozan is now known as SHODAN, ggoebel14 joined, xenoterracide joined 07:26 stevan_ left 07:28 [Sno] left 07:35 [Sno] joined 07:37 Shellcat left 07:40 tobyink left
TimToady rosettacode.org/wiki/Function_frequency#Perl_6 07:45
07:47 darutoko- joined 07:50 darutoko left
TimToady is slightly interested in why QAST lists each function call twice... 07:51
07:56 zakharyas joined, virtualsue left
moritz TimToady: related to sink context (more) 07:57
basically each statement is emitted as want_sink ?? sink(statement) !! statement
(so QAST::Want(statement, 'v', sink(statement)) or something along these lines) 07:58
and at the time the QAST is dumped, that decision isn't made yet
TimToady thanks 07:59
08:05 darutoko joined 08:07 darutoko- left 08:12 tobyink joined
dalek p: 89cc08f | (Arne Skjærholt)++ | src/vm/jvm/runtime/org/perl6/nqp/ (4 files):
CArray REPR on JVM, with supporting int and num.
08:13
arnsholt Bah, braino in the commit message. Oh well, nothing to do 'bout it now =)
08:14 nnunley left 08:15 nine left 08:16 nine joined 08:22 zakharyas left 08:25 FROGGS joined 08:38 virtualsue joined
mathw best to spot those before you push :) 08:40
08:40 stevan_ joined 08:41 darutoko- joined 08:42 zakharyas joined 08:44 darutoko left 08:48 Vendethi_ joined 08:49 Vendethi_ left, Vendethi_ joined 08:51 Vendethi_ left 08:52 Vendethi_ joined, darutoko joined 08:53 Vendethi_ left 08:54 virtualsue left, darutoko- left, Vendethi_ joined, Vendethi_ left 08:55 Vendethi_ joined
hoelzro o/ #perl6 08:56
!
08:57 dansamo joined, Vendethi_ left 08:58 Vendethi_ joined 08:59 Vendethi_ left, Vendethi_ joined 09:01 Vendethi_ left, Vendethi_ joined 09:02 darutoko- joined, Vendethi_ left 09:03 Vendethi_ joined
hoelzro so I was thinking about Perl 6 and getting people to contribute last night... 09:03
...and I thought it would be cool if we had something like this: www.whatcanidoformozilla.org/
09:04 nnunley joined 09:05 Vendethi_ left, darutoko left, Vendethi_ joined 09:07 Vendethi_ left, Vendethi_ joined 09:09 Vendethi_ left, nnunley left, Vendethi_ joined
moritz hoelzro: feel free to create a perl6.org/contribute/ page or so 09:10
hoelzro I just might do that =)
09:11 Vendethi_ left
hoelzro I just need to come up with a list of tasks/categories/whatever 09:11
09:11 Vendethi_ joined 09:13 Vendethi_ left, Vendethi_ joined 09:14 pjcj left 09:15 Vendethi_ left, Vendethi_ joined 09:17 Vendethi_ left, Vendethi_ joined 09:19 Vendethi_ left, Vendethi_ joined 09:21 Vendethi_ left 09:23 Vendeth__ joined, Vendeth__ left 09:24 Vendethi_ joined 09:25 Vendethi_ left 09:26 Vendethi_ joined 09:27 Vendethi_ left 09:28 Vendethi_ joined 09:30 Vendethi_ left, Vendethi_ joined 09:32 Vendethi_ left 09:34 Vendethi_ joined 09:35 kresike joined
kresike hello all you happy perl6 people 09:35
09:35 Vendethi_ left 09:36 daxim joined, Vendethi_ joined
hoelzro ahoy kresike ! 09:36
09:37 Vendethi_ left 09:38 Vendethi_ joined 09:39 Vendethi_ left 09:40 SevenWolf joined 09:41 Vendethi_ joined 09:43 Vendethi_ left 09:44 Vendethi_ joined 09:45 SevenWolf left 09:46 Vendethi_ left, Vendethi_ joined 09:48 Vendethi_ left, Vendethi_ joined 09:50 Vendethi_ left, Vendethi_ joined 09:52 Vendethi_ left, Vendethi_ joined 09:54 Vendethi_ left 10:01 dakkar joined 10:03 pjcj joined 10:11 Vendethi_ joined 10:20 fhelmberger joined 10:23 jaffa4 joined
jaffa4 hi all 10:23
Hoq do I merge a hash and key value pair?
moritz jaffa4: what have you tried? 10:25
jaffa4 @tokens[*-1][0] ~ :wcp 10:26
r: say :a ~: b
camelia rakudo-jvm 882e33: OUTPUT«(timeout)» 10:27
..rakudo-parrot 215ba6: OUTPUT«===SORRY!=== Error while compiling /tmp/ZyxA7E5bD0␤Bogus statement␤at /tmp/ZyxA7E5bD0:1␤------> say :a ~⏏: b␤ expecting any of:␤ pair value␤ postfix␤ infix stopper␤ inf…»
moritz ~ is for string concatenation
jaffa4 r: say :a,: b
moritz how do you add keys and values to a hash?
camelia rakudo-jvm 882e33: OUTPUT«(timeout)»
..rakudo-parrot 215ba6: OUTPUT«===SORRY!=== Error while compiling /tmp/AQf12_sZ1q␤Two terms in a row␤at /tmp/AQf12_sZ1q:1␤------> say :a,⏏: b␤ expecting any of:␤ pair value␤ postfix␤ infix stopper␤ i…»
jaffa4 it is not a hash, reference to hash
r: (:o).perl 10:28
camelia rakudo-jvm 882e33: OUTPUT«(timeout)»
( no output )
10:33 toebu joined
jaffa4 moritz: tokens[*-1][0]}.push(:wcp) 10:41
10:52 nnunley joined 10:57 nnunley left 11:08 Vendethi_ left 11:10 Vendethi_ joined 11:12 kaare__ joined, Vendethi_ left 11:14 davec` left 11:15 davec` joined 11:16 Vendethi_ joined 11:18 Vendethi_ left 11:19 Vendethi_ joined 11:21 Vendethi_ left, Tiggez joined 11:22 Vendethi_ joined 11:24 Vendethi_ left
Tiggez Hi, I just wanted to give Perl6 a try... correct me if i'm wrong, but there are no bindings to any GUI nor to any major database? 11:25
11:26 dansamo left, yves joined
hoelzro there are bindings to MySQL, SQLite, and PostgreSQL 11:26
I played with the idea of creating bindings to GTK a while ago, but I haven't gotten a round to it 11:27
11:27 dansamo joined
Tiggez cool thanks, i will give it a try 11:27
11:29 dansamo left, dansamo joined 11:32 dansamo left, dansamo joined 11:34 Vendethi_ joined 11:35 dansamo left, Vendethi_ left 11:36 dansamo joined 11:45 dansamo left, dansamo joined 11:49 Vendethi_ joined 11:50 Vendethi_ left 11:55 Vendethi_ joined 11:56 pernatiy left 11:57 Vendethi_ left 12:03 dansamo left 12:04 dansamo joined 12:05 Vendethi_ joined 12:07 Vendethi_ left 12:10 Vendethi_ joined 12:11 Vendethi_ left 12:12 Vendethi_ joined 12:14 Vendethi_ left 12:17 colomon left 12:18 colomon joined 12:21 Vendethi_ joined 12:23 Vendethi_ left, Tiggez left 12:24 mtk left 12:25 tobyink left 12:30 mtk joined 12:33 Vendethi_ joined 12:35 Vendethi_ left, Vendethi_ joined 12:36 tobyink joined 12:41 nnunley joined, benabik left 12:43 tobyink left 12:45 nnunley left
[Coke] waves, briefly. 12:51
colomon o/ 12:53
12:57 tobyink joined 12:59 lizmat joined 13:00 toebu left 13:03 toebu joined 13:08 pernatiy joined 13:10 toebu left
[Coke] ༽o༼ 13:15
colomon very long arms? 13:16
13:16 itz_ joined
colomon martini glass with olive? 13:16
[Coke] vampire?
daxim anus shades 13:17
13:17 Vendethi_ left 13:18 Vendethi_ joined, itz left 13:19 Vendethi_ left
dalek ecs: 9cfcf5a | (Elizabeth Mattijsen)++ | S17-concurrency.pod:
Some more s/Subscribable/Supply/
13:19
[Coke] I do wonder why ⑻ exists. seems like we could have avoided that one.
13:19 ssutch left
[Coke] rp: ('⚀'..'⚅').roll(3); 13:20
camelia ( no output )
[Coke] rp: ('⚀'..'⚅').roll(3).say;
camelia rakudo-parrot 215ba6: OUTPUT«⚀ ⚀ ⚃␤»
13:22 Vendethi_ joined
[Coke] ~~ 13:22
13:24 Vendethi_ left
pdurbin perl 6 mentioned: programmingisterrible.com/post/6589...ode-broken 13:24
nwc10 Likely his expressed opinion are reasonably representitive of an end-user developer viewpoint, but 13:30
daxim cpan stagnation? that's news to me 13:31
nwc10 I see no route that gets from a "call" for a "Perl 5 rewrite" to a finished project
and I'd love to see his objective numbers on Python 3 takeup 13:32
daxim python3wos.appspot.com/ 13:33
users or libraries?
nwc10 daxim: users. I'm well aware that that's now "Wall of Superpowers" 13:34
once Andrea has upgraded her machine, I'll be able to get a sane idea about Python 3 packags on ubutu again
but it was "very few"
even Guido thinks that Python 2 is better for new users: mail.python.org/pipermail/python-d...29031.html 13:35
daxim codacademy teaches python 2 13:40
nwc10 but not Python 3: help.codecademy.com/customer/portal...hon-2-7-3- 13:41
13:42 ajr joined, ajr is now known as Guest40872 13:43 Guest40872 is now known as ajr_, konundra joined 13:46 rindolf joined 13:47 nnunley joined 13:50 toebu joined
lizmat commute to Amsterdam& 13:56
13:56 lizmat left 13:58 _sri left 14:00 rafl left 14:04 rafl joined, _sri joined 14:12 mr- joined, mr- left 14:15 PacoAir joined 14:18 rurban joined
moritz ok, there's a mail on p6l about the license of roast and specs 14:25
I'm pretty sure roast should get artistic license 2.0, just like rakudo and nqp (and pugs, iirc, from which repository it comes from) 14:26
any objections to me adding an AL2 LICENSE file to roast?
FROGGS none from me
colomon +1
geekosaur sounds sensible to me
colomon had always assumed that's what it was under. 14:27
moritz too
regarding the specs: I'm not sure if AL2 is a good fit for documents 14:28
so I won't take action in that area
dalek ast: b213c5a | moritz++ | LICENSE:
Add Artistic License 2

The test suite comes originally from the Pugs repository, which used Artistic License 2 by default, and community concensus seems to agree.
14:28 jnap joined
colomon +1 on thinking about the documents. 14:29
surely they should be free to copy.
moritz yes
colomon but freedom to make changes to them seems kind of weird.
moritz the question if whether they should have a "rename if you fork" clause
colomon "I'm going to fork the perl 6 spec"
anocelot
.oO( Well, it's been knifed at least once... )
14:30
geekosaur ...how do you fork a liquid?... 14:32
colomon \o/ # finally got my $work program to link again
anocelot \o/ (Similar happiness/situation on my end, fwiw.) 14:35
moritz geekosaur: with a very broad fork, of course :-) 14:37
geekosaur as for forking the specs, I think the only constraint is that the result is not calling itself STD?
moritz best we wait for Larry's opinion on that 14:38
14:39 konundra left 14:43 bluescreen10 joined
dalek p: f7e7e7f | (Tobias Leich)++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
s/index_s/indexfrom/
14:44
FROGGS prove -v -e nqp-p t/docs/opcodes.t | grep "not ok" | wc -l # 179 issues left 14:46
14:52 Tene left 14:53 djanatyn left, xalbo left 14:54 tobyink left
lee_ that last commit short hash is a palindrome 14:58
just had to point that out!
moritz lee_++ 14:59
TimToady lee_++_eel 15:02
15:10 btyler joined
TimToady forking a liquid requires a supply and a series of taps 15:17
15:17 rurban left 15:18 pdurbin left
perigrin TimToady: if the liquid is already in a stream you just need some tee 15:20
kresike bye all 15:21
15:21 kresike left
PerlJam you can fork a liquid all you want, but it's much more efficient to use a spoon 15:22
(or freeze the liquid if you must use a fork) 15:23
geekosaur perl 6 spoonerisms?
15:30 colomon left 15:37 ggoebel15 joined 15:38 fridim_ joined, rurban joined 15:39 ggoebel14 left 15:47 ajr_ left
dalek p: fd17a3a | (Tobias Leich)++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
mapped [open|nextfile|close]dir

nextfiledir on MoarVM is slightly different from JVM, it does not prepend the foldername we have opened. Though we can cope with it in rakudo.
15:48
p: 848c285 | (Tobias Leich)++ | docs/ops.markdown:
document nqp::backendconfig
15:58
p: b2836cb | (Tobias Leich)++ | docs/ops.markdown:
strip backslashes
16:01
16:02 benabik joined 16:04 dwarring left 16:08 jeffreykegler joined 16:09 toebu left 16:20 btyler left
dalek p: 7cd42ab | (Tobias Leich)++ | t/docs/opcodes.t:
consider src/vm/parrot/NQP/Ops.nqp on parrot too
16:21
16:23 [Sno] left 16:24 xalbo joined
[Coke] FROGGS++ # opcode doc fixes 16:26
FROGGS :o) 16:27
16:28 toebu joined
dalek p: b840584 | (Tobias Leich)++ | t/docs/opcodes.t:
take jvm's and moar's NQP::Ops into accout
16:28
16:32 btyler joined, dalek left 16:33 sergot left, Util left 16:34 [Coke] left, masak left, tadzik left, pmichaud left, Juerd left, Juerd joined, PerlJam left, masak joined 16:35 sergot joined, Util joined, PerlJam joined, pmichaud joined, dalek joined, ChanServ sets mode: +v dalek 16:36 tadzik joined, synopsebot joined, hugme joined, ChanServ sets mode: +v hugme, [Coke] joined
[Coke] weird, feather just vanished for a bit. 16:37
(looks like it wasn't in DNS briefly)
"we're all fine, here, now. ... How are you?" 16:39
[Coke] -> again
16:44 renormalist left 16:45 fhelmberger_ joined 16:49 fhelmberger left 16:50 fhelmberger_ left, renormalist joined 16:52 sqirrel joined 16:57 zakharyas left, ajr joined 16:58 ajr is now known as Guest53641, Guest53641 is now known as ajr_
diakopter daxim: cpan stagnation? the rate of cpan's growth has been decreasing for a long time, whereas the rate of growth of all the other languages' central library archives/repos has been increasing 17:05
17:08 dansamo left
japhb__ diakopter: That could be explained by CPAN supplying the majority of user's day-to-day needs. Running out of itches to scratch that aren't either very niche or very hard. 17:09
anocelot Not to mention helpful core updates. 17:10
tadzik the reason why I started contributing to Perl 6 was actually the fact that I couldn't think of any way to contribute to Perl 5: everything I could think of was there
jeffreykegler For me, the value of CPAN is really in CPANtesters .... 17:11
diakopter that might be accurate, except the sizes of nearly all the other languages' central library archives/repos are dramatically bigger than cpan's
jeffreykegler That is, the metric to use is the number of *tested* distributions.
diakopter so it's kindof hard to imagine that cpan is more comprehensive, when it's dwarfed by the others
FROGGS diakopter: maybe bigger because there is more crap in there :o)
anocelot Size of code base or numbers of entries?
tadzik ever tried to use python profilers? :D
diakopter anocelot: both 17:12
anocelot: but mostly number of distributions
jeffreykegler ... and I believe no other repository even attempts the kind of testing done at anything like that volume level
Without testing, a repository is just a place you cn upload to and that's a lot easier to do, but a lot less useful. 17:14
japhb__ An interesting (but very time consuming and difficult to do in an unbiased manner) study would be to compare the problem spaces covered by the various repositories. 17:16
diakopter japhb__: like 11 distributions on cpan (updated in the past 3 years) mention Mongo in their names, whereas Java's Maven central repo has 309 (as of a few months ago)
17:18 benabik left, Celelibi left
diakopter FROGGS: if only that was the case.. somehow I'd think the portion of crap is not all that much different between all of them, except perhaps Hackaga, which is very well groomed (and perhaps Nuget, and perhaps to a lesser extent, npm) 17:19
17:19 benabik joined
diakopter er, *Hackage 17:20
(but Nuget and npm mostly because they're so new)
FROGGS diakopter: well, I guess cpan is really smaller than the others... but it still offers all what I need, really 17:21
dinner &
17:22 Celelibi joined
diakopter has belatedly realized that realism is a better motivator than pusillanimous whimsicality 17:23
[.. and alarmism]
PerlJam greetings Perl people 17:26
moritz diakopter: there is also a large part defensism going on, people battling the idea "perl is dead" so hard that they don't realize it could be more alive 17:29
diakopter I think it's skating dangerously close to the technicality tendency of that usage 17:30
*closely?
moritz close 17:31
17:32 ssutch joined
moritz there's already a /ly <.wb>/ before it :-) 17:32
diakopter yeah but adverbs can modify adverbs 17:33
jeffreykegler Perl 5 remains unexcelled as an infrastructure within which to develop a volunteer open-source project, as far as I can tell ...
and I'd be grateful if someone convinced me otherwise, because then I would switch 17:34
PerlJam BTW folks ... 25 days until advent 17:36
tadzik good catch; time to start planning 17:38
diakopter okay, this can't be right 17:39
dalek : bdb90e9 | duff++ | misc/perl6advent-2013/ (2 files):
Start of advent 2013 planning
diakopter (work thing emitting 549,000 files when it should be emitting only 1 17:40
)
moritz PerlJam++
diakopter well, the Advent of Advent Season, anyway
PerlJam diakopter: Got any topics you'd like to cover this advent season? :) 17:41
moritz diakopter should blog about MoarVM
diakopter assesses that to be a very good question
PerlJam moritz: you can read my mind! ;)
17:42 sqirrel left
dalek : 37e80c4 | tadzik++ | misc/perl6advent-2013/topic-brainstorming:
Remove topic done last year
17:42
arnsholt Are we planning a Star release for November?
moritz arnsholt: which collective "we" are you talking about? :-)
PerlJam moritz: have you been the lone Star release manager? I can only remember you doing releases.
diakopter PerlJam: I'm still of the perspective that it should remain hidden under a bushel until it reaches criticality, or singularity... whichever comes first 17:43
arnsholt s/we/you/ # If you prefer ;)
Or in the passive perhaps: Is a November Star release planned? =)
17:43 [Sno] joined
moritz PerlJam: lue++ has done last month's star release 17:43
PerlJam: and I'd like it if others took up that task too
arnsholt Anyways, the reason I'm asking is NativeCall on JVM
PerlJam diakopter: agreed. 17:44
17:44 fhelmberger joined
moritz though maybe this month's star release could be a tad tricky, since the build system changed 17:44
so I might do it again this month
PerlJam moritz: Where do people sign up to do R* releases?
diakopter thinks someone could automate/script the release much more than it is.., but that someone is not I, because I don't have the requisite scripting skillz
arnsholt So that I can try to manage my tuit supply a bit actively, to maybe get NativeCall done for Star-time 17:45
moritz PerlJam: I'd say in star's tools/star/release-guide.pod
PerlJam ah. (in the other repos, that's in docs)
moritz arnsholt: so yes, if all goes well, there'll be star release this month too
PerlJam: I know; It's a bit weird, because docs/ in star is actually included in the tar ball
tadzik idea: we need a set of modules, possibly with a maintainers crew, to maintain a rock-solid implementations of things that we need, and of which the current implementations are very fragile
diakopter it would be nice if an account on some server somewhere had all the required credentials and web service calls or whatever scripted and ready to go so someone could type make star-release and it does its thing 17:46
tadzik (LWP, HTTP servers etc)
17:46 SmokeMachine joined
PerlJam oh, right. I forgot R* repo was weird that way 17:46
diakopter b/c it seems the process is already formalized enough with the release guide
PerlJam tadzik: and a CI-thingy to tell us when they break :) 17:47
tadzik PerlJam: yeah, poke us on the channeu
one of the things about those modules is that they rely on sockets, which are 1) a bit of a moving target 2) tricky to test (esp. if you're a server)
arnsholt moritz: Cool. Roughly when do you expect it to be? 25th-ish? 17:48
diakopter what I'm imagining is the release script could issue its blocking errors to #perl6 when it reaches them...
moritz arnsholt: sounds plausible-ish :-)
arnsholt Excellent-ish 17:49
I think that might be reasonable(-ish) for NativeCall on JVM
moritz possibly sooner, since Rakudo release is already on the 22nd, but we can delay if necessary
PerlJam arnsholt: nice!
arnsholt 'Cept my target really is the 22nd, now that I think about it, since the relevant code actually lives in NQP
moritz 'cept for the code in NativeCall.pm 17:51
diakopter I kinda think it should be in nqp 17:52
arnsholt The code in NativeCall.pm is just porcelain, to use git terminology 17:53
The real work is all implemented in NQP
japhb__ jnthn: @concurrency_wishes.push('API "works" in rakudo-parrot, but just uses the single-threaded scheduler instead', 'Provide a spec-approved way to test if the implementation will run single-threaded'); 17:54
retupmoca somewhat related question: iirc, common lisp had a *FEATURES* global variable that was an array of enabled features (threading, sockets, etc.) 17:56
does perl6 have a $*FEATURES variable or somesuch? 17:57
17:57 ktrout joined
japhb__ Don't think so, unless you look at $*VM. 17:57
FROGGS retupmoca: we don't keep track of enabled/implemented/available features (yet) 17:58
17:58 ktrout left
PerlJam Those things strike me as being roles on the perl6 instance. WE'd just need to spec the appropriate names and behaviors 17:59
FROGGS because the main goal is that all backends on all platforms support everything
japhb__ Right now my test for concurrency actually checks if ::('Thread') ~~ Failure;
PerlJam "just" :)
arnsholt japhb__: Oooh, that's a really neat idiom! 18:00
18:00 SamuraiJack left
retupmoca ah, here we go: *features* contains ( [...] :GENCGC :IEEE-FLOATING-POINT :INLINE-CONSTANTS :LARGEFILE :LINKAGE-TABLE :LINUX :LITTLE-ENDIAN 18:01
and such
(in common lisp)
18:02 pernatiy left, darutoko- left
retupmoca I don't need it (at least right now), but it seems like a nice feature 18:02
arnsholt Yeah, it's probably a good feature to keep in mind
Common Lisp is a neat language, in general. Just a shame the syntax is such a pain ^_^ 18:04
retupmoca I like a lot of what it has, I just generally don't enjoy coding in it. 18:05
18:06 dakkar left
arnsholt I haven't used it much, but I end up a bit ambivalent about it 18:08
On the one hand there's much cool stuff (loop is ridiculously powerful, for example), but sometimes it's really annoying as well
The impedance mismatch of Lisps assuming that everyone works in Emacs is a contributing factor as well, I must admit
18:26 fhelmberger left
hoelzro $obj.method: $foo, $bar, $baz is bsaically $obj.method($foo, $bar, $baz), right? 18:26
18:27 fhelmberger joined
jnthn right 18:30
arnsholt: A NativeCall on JVM for this month would rock. Especially if it handles what DBIish needs :)
arnsholt Yeah, I'd love to get that done 18:31
18:31 fhelmberger left
jnthn Grrr...$dayjob stole my Perl 6 day next week as well as this week :/ 18:31
arnsholt I've gotten the basic CArray stuff done now, and I hope the rest of CArray will follow soon-ish
Then it's back to pondering for a while, to figure out CStruct 18:32
18:32 xinming_ joined 18:33 tobyink joined 18:34 sqirrel joined 18:35 xinming left 18:36 stevan_ left 18:41 rurban left 18:45 jeffreykegler left, tobyink left
japhb__ jnthn: Awww, that bites. 18:45
18:45 xinming_ left 18:47 xinming joined
tadzik .tell Mouq I've only just noticed your rakudobrew pull requests, dunno why I didn't get memo on them before. Thanks, much appreciated! 18:49
...shouldn't that work?
jnthn Gah, next week is 4 days of teaching spread over 3 cities and 2 countries 18:50
tadzik ,tell Mouq I've only just noticed your rakudobrew pull requests, dunno why I didn't get memo on them before. Thanks, much appreciated!
graghdrstarsdg
jnthn saturates his schedule with Perl 6 time in the week after it...
tadzik: preflex will send messages
tadzik: yoleaux lived up to its name... 18:51
tadzik hah
preflex: help
preflex try 'help help' or see 'list' for available commands
tadzik preflex: list
preflex Botsnack: [botsnack]; Cdecl: [cdecl]; 8ball: [8ball]; excuses: [excuse]; Factoid: [+, -, ., ?, delete, get, store]; Help: [help, list]; Karma: [++, --, karma, karmabot, karmatop]; Nickometer: [nickometer]; Nickr: [nickr]; PlokiRE: [re]; Seen: [seen]; Sixst: [6st, ordinal]; Tell: [ask, clear-messages, messages, tell]; Rot13: [rot13]; Quote: [be, quote, remember]; WCalc: [calc, wcalc]; Version:
[version]; XSeen: [xseen]; ZCode: [zdec, zenc]
tadzik preflex: tell Mouq I've only just noticed your rakudobrew pull requests, dunno why I didn't get memo on them before. Thanks, much appreciated! 18:52
preflex Consider it noted.
tadzik yay
xalbo The documentation of the anyof combinator on promises seems wrong. Specifically, the part that says "If the first promise to produce a result is instead broken, then the resulting Promise is also broken. The excuse is passed along. " 18:54
TimToady in what way do you think it is wrong? 18:55
it's not testing for success, it's testing for a result 18:56
moritz that doesn't sound like 'anyof', rather 'firstof' 18:57
TimToady yes, it's winner-take-all semantics 18:58
(which is why the other construct is currently named "winner")
18:58 sqirrel left 18:59 rurban joined
xalbo Then the text "The anyof combinator creates a Promise that is kept whenever any of the specified Promises are kept. " threw me off. I read that as saying that *if* any of them is kept, the result is kept. 19:00
TimToady doesn't think that was the intent, but admits it's unclear
19:00 daxim left
TimToady junctional notions in the time domain come out a little funny, especially when overlaid with succeed/fail semantics 19:01
19:02 ingy^ joined 19:03 ingy^ left
TimToady the as-yet unimplemented race primitive is supposed to let everyone finish in whatever order they come in, like a marathon. anyof and winner are more like match-play golf, where as soon as the winner is determined, the other person goes home and doesn't finish 19:03
anyway, all these names are still negotiable 19:04
xalbo Right, but I was assuming that anyof still waited for at least one person to cross the finish line. As I read it now, if anyone is disqualified before the first person wins, the whole race is called off.
19:05 rindolf left
TimToady perhaps we need to spec a way to distinguish those cases, other than hand-coding a loop 19:05
one can see the argument that a broken promise is very near to a blow-up-the-rocket exception, so cancelling the race isn't so strange 19:06
19:06 Hellcat joined 19:07 Hellcat is now known as Guest53708
TimToady one could also make the other argument that a promise that is broken for a good reason should be relatively easy to retry 19:07
19:07 ingy^ joined
TimToady STM kinda works like that 19:07
19:08 lue joined
lue Hello world o/ 19:08
ingy^ TimToady: shortest token match?
TimToady software transactional memory
ingy^ ic 19:09
19:09 Guest53708 left, ingy^ left, Guest53708 joined, Guest53708 is now known as Shellcat, lizmat joined
dalek p: 901a922 | (Tobias Leich)++ | / (2 files):
mapped op sayfh
19:10
19:11 stevan_ joined 19:12 stevan__ joined
moritz TimToady: sounds like we could have a concurrent grep for finding kept promises, and then the current anyof comibnator would do 19:13
jnthn japhb__: I managed to stack 3 of the up in the week after next and begged that no more than two be stolen or I'll be very very sad. :)
anyof has the same semantics as Task.Any from .Net, that is, if *any* of the promises are kept, it will be. Thus it is kept as soon as one of them is. It doesn't actually care much what happens after that. 19:15
TimToady: I didn't spec it anywhere yet or try it, but at least for subscribables...uh...supplies (?) I'd imagined a .catch(...) 19:16
19:16 stevan_ left
tadzik aargh. I was trying to fix a pandabug that relied on JSON failing to build, and now when I came up with a possible fix JSON builds correctly again 19:17
jnthn I agree that with anyof/allof you might not care about whether a promise was kept/broken, just that one or all of them came to a result. 19:18
19:18 sqirrel joined
jnthn otoh, often the breakage is a problem 19:18
xalbo jnthn: Then "If the first promise to produce a result is instead broken, then the resulting Promise is also broken. The excuse is passed along. " doesn't seem true. If the first promise to return a result is broken, doesn't it keep waiting to see if another is kept?
jnthn xalbo: That is now how it's implemented now. 19:19
oh dammit
xalbo: That is not how it's implemented now.
Util #ps in 11 minutes. (Yes, the time changed, but UTC stayed the same)
jnthn xalbo: It just says "oh, one has a result", and it then if htat result was breakage it's conveyed.
xalbo Then it sounds pretty much exactly like winner. 19:20
jnthn You kinda want it that way I think
xalbo (or maybe it should be firstof, not anyof)
jnthn Consider the timeout use-case.
tadzik uhh. Is it possible that precompilation randomly returns non-zero exit status from time to time these days?
jnthn If you get a broken promise back from the thing you were trying to do, you do *not* want your anyof to sit around waiting for the timeout. 19:21
I have no idea what winner is because I didn't read the commits any deeper than the commit message syet.
xalbo Fair enough.
jnthn (Too much $dayjob...) 19:22
tadzik FROGGS, FROGGS
FROGGS tadzik, tadzik
what's up?
tadzik I don't know yet, but it might be Proc::Status
FROGGS hmm?
problems?
tadzik with panda build, yes
gist.github.com/tadzik/7324616
it says exit 255, but nothing seems to have failed, at least not visible on stdout/err 19:23
FROGGS hmmm
tadzik also, when you die from perl6, the return code is 1, not 255
dalek ecs: bc9c55b | util++ | S99-glossary.pod:
[S99] Add STM and IC
FROGGS that would mean that the try block failed, with a shell() or run()
tadzik hrmrm 19:24
FROGGS well, the 255 was there before, but only for one of the two (shell XOR run)
tadzik hm
oh, oh
so we have run() now? 19:25
maybe panda should use that, instaed of shell
FROGGS we have
why?
xalbo I suggest that anyof be changed to "firstof", and the text "The anyof combinator creates a Promise that is kept whenever any of the specified Promises are kept. " be changed to "The firstof combinator creates a Promise that has as its result the result of whatever of the specified Promises returns first" (or something cleaned up from that)
FROGGS tadzik: what is the command you invoke?
tadzik to avoid shell :P
also, I'm trying to shotgun-fix the issue :P
shell "$*EXECUTABLE_NAME --target={compsuffix} --output=$dest $file 19:26
...I know ;)
but no shell features in there
FROGGS right
jnthn xalbo: Well, that's changing the semantics a bit
FROGGS then use run() so you dont have to stringify/auto-quote yourself
tadzik aye 19:27
jnthn But yeah, firstof may be clearer
xalbo Then I'm completely confused.
jnthn xalbo: At the moment it simply .keep(True)
xalbo: And doesn't convey *what* was to thank for the success
xalbo Ahh, ok.
jnthn At present, anyof and allof are implemented in terms of an !n_of 19:28
Doesn't have to stay that way.
xalbo The firstof combinator waits until at least one of its Promises has a result, and then is kept (with a result of True) if that Promise is kept. If that Promise is broken, then the firstof is also broken, with the same excuse. 19:33
Would that accurately describe it?
jnthn Seems reasonable, if that doesn't replicate what winner does, which I need to see :) 19:34
xalbo winner seems to tell you which promise first has a result, firstof seems to tell what what the result is.
(well, whether it's kept or broken) 19:35
jnthn wonders if winner is the new name for select... :) 19:41
TimToady yes, plus a bit of syntax 19:43
jnthn k
So long as the syntax isn't "when"... :)
diakopter "upon"? 19:44
TimToady well, currently it is, but that's negotiable
jnthn Well
It can be when if you don't expect it to parse the same as a given block. :)
That is, it accepts nothing on the inside but when and treats them specially, not like the usual when
TimToady I think winner is a macroish thing that forces its block to be interpreted as a monad of statement-like things
jnthn I guess the pun with default is tepting.
ok 19:45
TimToady so it could change the meaning of when and default, presumably
or we could pick different words
jnthn And presumably you're not allowed to write anything other than a when or default?
TimToady right, unless we find a way to generalize the monad
jnthn Given that the non-sequentiality means we have no clue when to run such other code? :)
ok, then I think I can live with the when/default 19:46
TimToady "run all these statements in parallel, and whichever finishes first"
so the generalization would be statements that presumably need scheduling somehow
but not sure how that interacts with what we currently have 19:47
jnthn The name "select" came from Go in this case rather than either of the Perl 5 meanings, btw ;)
TimToady figgered
jnthn (But I'm not defending keeping it at all. It was just a "safe" choice. :))
TimToady winner is not perfect, but first is taken
jnthn Sot's race I guess
*so's 19:48
TimToady race is a marathon, where everyone still tries to finish :)
winner says "forget you" to the runners-up
jnthn point :)
Well, it's better than victor :) 19:49
TimToady other than default, the other way would be to have a winner variant that doesn't block, winner-maybe or something, and returns Nil if nothing is done
but it seemed okay to have a block on the "still racing" branch 19:50
which can return Nil if you want
hmm, might work better parsing like if/elseif/else 19:53
only with the same keyword for both if and elseif 19:54
then we can simply have an else at the end for 'no winner yet'
or not 19:55
lue
.oO( winner { contestant 1 { } contestant "foo" { } contestant $const { } darkhorse { } } )
19:56
TimToady hard to think of a good keyword for that offhand...
xalbo Also, what does winner (however spelt) do if more than one of its promises has a result? 19:57
jnthn xalbo: Pick one at random.
TimToady lue: more like wins $p1 { } wins $p1 { } else { }
jnthn TimToady: That looks weird to me if the word is wins :)
TimToady not suggesting that word 19:58
placeholder
jnthn k
lue champ $p1 { } champ $p2 { } ...
TimToady yay $p1 {} yay $p2 {} boo {}
xalbo done $p1 { } done $p2 { } else { }
lue +1 yay/boo :D 19:59
PerlJam
.oO( then how do we fit in the boo-ya op? )
TimToady using the .oO() metaoperator, obviously 20:00
xalbo ko $p1 { } tko { } decision { }
TimToady :)
yay firstof @promises {} ... 20:02
20:02 kaare__ left, virtualsue joined
TimToady gotta work "verily" in there somehow 20:02
PerlJam Promises, promises. Why do I believe? 20:03
jnthn Is it too horrible to have like "winner { $p1 { }; $p2 { } }" :)
Then we don't need another wrod on the inside :) 20:04
TimToady ttiar?
jnthn oh
yeah, well, we allow that in othe rplaces we feel like it ;-)
But this one likely causes too bad errors.
TimToady would be nice if the insides at least parsed like a list of statements, even if we don't run them in sequence 20:06
PerlJam oh, that already sounds confusing 20:07
TimToady on Prancer {} on Donner {} on Vixen {}
of course, Rudolph usually wins that race 20:08
20:08 kaare__ joined, kaare__ is now known as kaare_
jnthn
.oO( oh nose, he won again! )
20:09
20:09 rurban left
xalbo So how is "winner { when $p1 { } when $p2 { } default {}}" different from "if $p1 { } elseif $p2 { } else { }"? I can see how the non-default case is different. 20:09
TimToady well, syntactically, it avoid the outer block 20:10
which is not a very good scope if you can't put a 'my $x;' into it 20:11
jnthn I think the outer block is important as it bounds the race and sets a non-sequential context up front.
I think there may be stronger arguments for it, but I don't immediately have them... :) 20:12
TimToady jnthn: that was my monadic feeling too
perigrin TimToady: Rudolf only wins by a nose. 20:13
20:13 Tene joined
TimToady otoh if you're always going to put a loop around it anyway, you get a lot of extra braces 20:13
jnthn nothing stopping us having a winnerloop or whatever though :) 20:14
TimToady well, except that really looks like bloat to me
lizmat looking at .vow, I can't help but feel that that is going to be the more common case
maybe at leas Vow.new should be a shortcut for $p=Promise.new; $p.vow 20:15
jnthn lizmat: But you need both.
TimToady there are two very different meanings of "promise" 20:16
depending on whether you're the promiser or the promisee.
and I just went with the English notion that a promise is generally something you make to others, while a vow is generally something you make to yourself
jnthn *nod* 20:17
Note that you only need to pay attention to .vow if you really want to.
lizmat I guess it depends on how paranoid you are
jnthn Right. If I'm writing Promise.run, I'm paranoid. :)
If I'm in my own code, using them in a scope I control, I'm less so :) 20:18
In .Net you actually make a new TaskCompletionSource(); and then call .Task on that to get the task it has control over
So you don't have a choice. 20:19
lizmat I guess, being paranoid, I would use vow almost always
jnthn AND you hve to type TaskCompletionSource all the time, dammit!
lizmat: Well, in reality I hope that we provide enough combinators for the common cases that you don't need to do Promise.new that often.
lizmat: And then there'll be the PromisePAN :)
lizmat hehe... good point 20:20
20:22 daxim joined 20:24 xalbo is now known as xalbo_ 20:25 xalbo_ left
japhb__ jnthn++ # PromisePAN 20:33
TimToady nr: (do { say 'one' }␤do { say 'two' }) 20:41
camelia rakudo-jvm 882e33: OUTPUT«(timeout)»
..rakudo-parrot 215ba6, niecza v24-98-g473bd20: OUTPUT«one␤two␤»
TimToady p: (do { say 'one' }␤do { say 'two' }).perl.say 20:42
camelia rakudo-parrot 215ba6: OUTPUT«one␤two␤Bool::True␤»
dalek ecs: 039bbfd | (Elizabeth Mattijsen)++ | S17-concurrency.pod:
Some code example tweaks
20:43
20:48 dmol left, dmol joined
TimToady hmm, we don't really need await; turns out ($p1,$p2)».result works just as well 20:53
jaffa4 Somebody from London? 20:54
timotimo could the former get some cleverness out of the scheduler?
TimToady don't see how, the semantics are basically identical
jnthn At one point I had thought that, but these days I'd rather just encourage people to stay async rather than altrnatte between sync/async styles. 20:56
jaffa4: About 10 million people are, but I dunno if any are here...
(where that = "do something more efficient") 20:57
TimToady hypers are async style :P
or are you claiming await is sync? 20:58
jnthn I'm claiming anything that blocks is sync :)
TimToady well, await is sync on one side and async on the other
jnthn Aye. But it's those async => sync transitions that I'd rather we discourage maing too many of
dalek ecs: 2bd66db | (Elizabeth Mattijsen)++ | S17-concurrency.pod:
Some more s/subscribable/supply/
20:59
jnthn That's why I emphasized subscribables more and channels less of late
uh, supplies :)
that'll take some getting used to ;)
TimToady if a channel is just a degenerate subscribable^Wsupply/tap we could just get rid of channels
21:00 sqirrel left
lizmat TimToady: my feelings exactly 21:00
jnthn I think they're different tools for different jobs
jaffa4 jhthn: you made some lecture about rakudo compiler, right? Is it online?
21:00 daxim left
jnthn No, I already did the "should channels and supplies be the same" and concluded no. 21:01
21:01 daxim joined
jnthn Not to mention that I already felt the pain of trying to do things better suited to one with the other... 21:01
Channels are nice 'cus they're really just concurrent queues underneath, which are nice and cheap.
And you can compete to grab items, supporting scale-out in staged architectures. 21:02
Supplies aren't good for that usage pattern.
TimToady well, not without a .steal kind of tap, anyway
jnthn I spent quite a while trying to unify channels and supplies and really didn't like where it led, and concluded they're different, so make them different and allow coercion between 'em. 21:03
TimToady alternately, a waitress manning (?) the tap to dole out the drinks
lizmat so a channel is a value queue, and a tap is an event queue ?
jnthn lizmat: A channel is something you pull things out of at your own pace. 21:04
TimToady events are values too!!!
jnthn lizmat: A supply is something that pushes things at you.
TimToady and they drop if you're not there
jnthn that too
TimToady okay, we can call them both keepers for now :)
jnthn :) 21:05
jaffa4 jnthn: is something wrong with my question> 21:06
jnthn jaffa4: No, it just arrived when I was dealing with more interesting quesitons :P
Then I forgot it
jaffa4 aomehow I guessed it
jnthn Are you asking about my talks I just did at Austiran Perl Workshop?
Well, I *am* tired... :)
jnthn.net/papers/2013-apw-conc.pdf and jnthn.net/papers/2013-apw-lessons.pdf if so 21:07
I'm giving the first one again at Nordic Perl Workshop. I thought I go to re-use the material but now I'll have to go and update all the names and syntax :P
lizmat hypothetical: what would you get if you would allow .tap on a channel ?
jaffa4 are you tired or the question was not intellectually challenging?
lizmat jnthn is tired 21:08
jnthn jaffa4: I'm really tired, 'cus of 2 days of teaching, and still not fully recovered from only getting 2 hours of sleep one night recently...
21:08 rurban joined
jnthn has to go teach tomorrow too 21:09
Of coures, my train home is running late... :/
TimToady jaffa4: are you asking about the 2-day workshop last month?
jaffa4 mot sure anymore
TimToady the one about compiler internals?
jaffa4 I kjust remember there was something
21:10 daxim is now known as daxim_
jaffa4 compiler internals yes 21:10
21:10 daxim joined, daxim_ left
jnthn oh,, that one 21:10
lizmat jaffa4: github.com/edumentab/rakudo-and-nq...als-course
jnthn github.com/edumentab/rakudo-and-nq...als-course 21:11
beaten
lizmat :-)
jnthn In my defense, train wifi... :)
lizmat 4G wifi here as well, fwiw
jaffa4 ok 21:12
21:12 virtualsue left
jaffa4 by the way. why do you teach so much? does somebody force you to? 21:13
lizmat it's $work for jnthn
PerlJam jaffa4: you don't think he could find teaching enjoyable?
FROGGS I do when I am allowed to 21:14
jaffa4 it hardly can be enjable if he is too tired.
TimToady typical geek attitude :P
FROGGS well, he's not teaching now :o)
lizmat nothing is enjoyable when you're too tired
FROGGS sleep
lizmat but shit happens :-)
TimToady people enjoy running marathons 21:15
and they're *definitely* too tired
FROGGS on the numpad maybe :o)
jnthn I enjoy teaching, but it is exhausting.
I just happen to have a load of it bunched up these weeks, mixed in with a lot of travel.
TimToady people have this silly idea that happiness and enjoyment are controlled by the same knob 21:16
you can be quite sad on one level and quite joyful on another 21:17
jaffa4 multiple personality?
lizmat multiple roles, more likely
jaffa4 multiple ago states? 21:18
21:18 Mouq joined
lizmat amsterdam PM meeting shutting down, decommute& 21:18
21:18 lizmat left
jaffa4 ago->ego 21:18
21:22 rurban left
Mouq lookie at all the commits in the past few days 21:22
preflex Mouq: you have 1 new message. '/msg preflex messages' to read it.
Mouq tadzik: It's fine; I probably should have messaged you about it. Thanks for making rakudobrew to begin with! 21:23
21:32 rurban joined 21:35 rurban left 21:38 ktrout joined 21:39 zakharyas joined, ktrout left 21:42 BenGoldberg joined 21:43 jaffa4 left 21:46 Rotwang joined
diakopter . 22:01
22:11 FROGGS_ joined, FROGGS left
jnthn yay, home 22:12
And boo, primary net connection busted
22:13 xinming left
Mouq Is there any reason .assuming is in Routine instead of Code? As is, it leads to: 22:17
p: (*-1,#`⟦don't want the * the method call⟧)[0].assuming(4).say
22:17 xinming joined
camelia rakudo-parrot 215ba6: OUTPUT«No such method 'assuming' for invocant of type 'WhateverCode'␤ in block at /tmp/1N1oP839RB:1␤ in any at /tmp/1N1oP839RB:1␤ in any at gen/parrot/stage2/NQPHLL.nqp:1146␤ in any eval at gen/parrot/stage2/NQPHLL.nqp:1133␤ in any evalfiles a…» 22:17
Mouq p: {"normal block, primed with "~$^a}.assuming(4).say
camelia rakudo-parrot 215ba6: OUTPUT«No such method 'assuming' for invocant of type 'Block'␤ in block at /tmp/LZQzAjjeJE:1␤ in any at /tmp/LZQzAjjeJE:1␤ in any at gen/parrot/stage2/NQPHLL.nqp:1146␤ in any eval at gen/parrot/stage2/NQPHLL.nqp:1133␤ in any evalfiles at gen/p…»
22:19 kaare_ left
Mouq Hm… S06:3081 too 22:20
synopsebot Link: perlcabal.org/syn/S06.html#line_3081
Mouq p: say Block ~~ Callable
camelia rakudo-parrot 215ba6: OUTPUT«True␤»
Mouq S32::Callable says it should be in Code, though, rather than Callable 22:23
22:23 zakharyas left 22:24 Tene left 22:25 benabik left 22:27 stevan__ left 22:28 FROGGS_ is now known as FROGGS
lue jnthn: *primary* net connection? 22:39
FROGGS hehe, yeah, I've seen that too :o) 22:41
the question is: is the primary connection in East or West? 22:42
dalek ecs: c01155a | Mouq++ | S32-setting-library/ (3 files):
[S32] Use modern return type syntax
22:45
22:46 raiph joined
timotimo that's more modern? 22:48
Mouq ... It... isn't it?
std: sub Bool a () {True}; a
camelia std 8adbc60: OUTPUT«===SORRY!===␤Return type Bool is not allowed between 'sub' and 'a'; please put it:␤ after the (missing) scope declarator but before the 'sub',␤ within the signature following the '-->' marker, or␤ as the argument of a 'returns' trait …»
timotimo oh! 22:50
didn't even know that :)
Mouq There are a lot of things wrong with S32::Callable, though 22:51
lue That's not a surprising statement :) 22:53
22:53 hummeleB1 joined
Mouq tries to fix it up some 22:54
22:56 PacoAir left
TimToady Mouq: you seem to have clobbered a bunch of {...}s 22:58
23:00 Rotwang left 23:01 djanatyn1 joined 23:02 Tene joined, Tene left, Tene joined
Mouq tries to fix his clobbers up some too 23:05
23:07 dwarring joined, jnap left 23:08 Tene left, djanatyn1 left 23:09 stevan_ joined 23:11 huricool joined, toebu left, djanatyn joined 23:14 Tene joined, Tene left, Tene joined 23:19 bluescreen10 left
dalek p: 3cab7b7 | dwarring++ | examples/rubyish/t/ (4 files):
tidied rubb^Hyish tests
23:20
p: 84b433f | dwarring++ | examples/rubyish/ (2 files):
rubyish parameter defaults
23:28 huricool left 23:29 tobyink joined 23:30 ajr_ left 23:32 avuserow joined
lue rn: say glob("~/.foo") 23:33
camelia rakudo-jvm 882e33: OUTPUT«(timeout)» 23:34
..niecza v24-98-g473bd20: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'glob' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1502 (die @ 5) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_u…»
..rakudo-parrot 215ba6: OUTPUT«===SORRY!=== Error while compiling /tmp/5KJ45xf6F5␤Undeclared routine:␤ glob used at line 1␤␤»
lue (all of you)-- >:/
23:35 jeffreykegler joined
jnthn sleep & 23:36
lue Is there a (non-workaroundy) way to make Perl 6 expand things like ~ ? I *could* just put the full path in, but 1) I shouldn't have to, and 2) that makes the script *very* platform specifc :)
[btw, that "you" (all of you) above refers to the compilers, not any actual people] 23:37
jnthn o/
jercos >implying ~-notation isn't already platform psecific 23:38
lue jercos: in this case, I'm playing with an XCompose file, so I would hope ~ does something :) 23:39
(and I would also hope Windows has its ~ equivalent anyway)
geekosaur it doesn't 23:40
it does have %foo% in place of unix's $foo
lue I got the implication from S32::IO that glob() DWIW, (no description of glob itself, but its usage in an example with an # expands filenames commet) but doesn't exist.
geekosaur: ō.ō Why am I shocked but not surprised? 23:41
jercos fun fact: wuindows' variable failure case results in the literal string used to access the variable being used
so echo %foo% will echo "%foo%" if there is no variable foo
diakopter jercos: yeah, you've got to test it and set to blank if you want the other behavior 23:42
lue there is at least a currentuser command, that P6 could use to do 'C:\common\prefix\' ~ qx/currentuser/ ~ '\users\dirs', right? ...Right? 23:43
23:43 colomon joined
jercos lue: not as such. 23:43
lue In any case, is glob supposed to expand ~ or no?
23:44 btyler left
diakopter lue: well corporate machines often have a remote "roaming" profile on some network location 23:44
but yes there is a current user variable
23:44 salv0 left
diakopter USERNAME=mwilson 23:44
USERPROFILE=C:\Users\mwilson
lue
.oO(How the hell do you get stuff done without symlinks, /usr/lib/<libraries>, ~, etc. etc.‽)
diakopter (output of set)
jercos there's %UserProfile% yeah
you get stuff done by... getting stuff done, not focussing on what directories and variables exist or don't exist. 23:45
diakopter jercos++
nature will find a way
23:45 btyler joined
lue I was referring to the idea of /usr/lib, not the specific directory. 23:47
My point is that to someone who uses Linux, MSDOS is needlessly complicated in areas :) 23:48
diakopter lue: in windows, applications have traditionally installed their systemwide-intended dlls in c:\windows\system(32)
Mouq lue: "~/mah/path".subst(/^\~/,{qx[echo ~].chomp}) 23:49
But maybe that's what you mean by a work-around
lue I am aware of that, but also of how libraries are typically tied to the application (instead of libraries being something that *always* gets put in a common location because they're, y'know, libraries.)
Mouq: it is a bit workaroundy, but a lot smaller than what I would've come up with. :)
diakopter lue: the problem is that there are many different versions of same-named libraries 23:50
and total [or just assumed] backward compatibility is often infeasible
lue Linux found a way :P
diakopter an app often doesn't want some other app stomping on its dependencies
lue: not really
lue [ Windows did too, but I prefer the Linux solution :) ]
diakopter lue: so just think of them as if they're statically linked 23:51
lue I suppose it's just hard to get my mind into the MS-DOS mindset when I'm busy with using Linux (especially unhelpful is that I'm playing with XCompose files at the moment :P). Windows' solutions are valid WTDI, but they look funny to me :) 23:52
Hm. &glob might be interesting to implement, but it's totally unspecced atm, and I don't trust myself to not throw away a bunch of features on account of "I wouldn't use it" :D 23:57
(Reading the perldoc on File::Glob) "As a special case {, }, and {} are passed undisturbed." Does that mean glob("{a}") eq glob('{a}') ? 23:59