»ö« 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/ZyxA7E5bD0Bogus statementat /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_sZ1qTwo terms in a rowat /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«onetwo» | |||
TimToady | p: (do { say 'one' }do { say 'two' }).perl.say | 20:42 | |
camelia | rakudo-parrot 215ba6: OUTPUT«onetwoBool::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 1Unhandled 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/5KJ45xf6F5Undeclared 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 |