»ö« 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:16 klapperl left 00:17 klapperl joined, punter left 00:30 colomon joined 00:43 BenGoldberg left, kurahaupo joined 00:51 BenGoldberg joined 00:56 jnap1 left 01:03 kurahaupo left 01:04 jnap joined 01:07 dayangkun left 01:10 Bryanstein left 01:13 klapperl_ joined 01:16 klapperl left 01:21 dayangkun joined 01:37 FROGGS_ joined
dalek ast: 637d31a | Mouq++ | S03-metaops/cross.t:
Label test as corresponding to RT #77660
01:38
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=77660
01:40 FROGGS left, thou joined 01:45 dragon_d left 01:46 ilbot3 joined 01:51 Bryanstein joined, Bryanstein left, Bryanstein joined, bluescreen10 joined
dalek : 567cca0 | Mouq++ | docs/Perl6/Cheatsheet/cheatsheet. (2 files):
Update collection types
01:55
01:59 hoverboard joined 02:08 effbiai joined, effbiai left 02:13 effbiai joined 02:20 donaldh left
dalek ecs: e7c777d | (David Warring [email@hidden.address] | S05-regex.pod:
grammar inheritance typo
02:24
02:26 donaldh joined
dalek ast: a98a8e0 | (David Warring [email@hidden.address] | integration/advent2012-day09.t:
adding advent 2012 day 09
02:33
02:33 xragnar_ joined, xragnar left, xragnar_ is now known as xragnar 02:50 dragon_d joined
dalek p: 74875ba | (Andrew Egeler)++ | src/HLL/Compiler.nqp:
Add support for REPL multiline input

When an input line ends with '\', wait for more code before executing.
02:58
lue Huh, running syngen is suddenly much faster at backlink generation and synopses retrieval than the last time I ran it. Who knows what did it :) . (my rakudo and nqp are still from 12 April, with the absolute latest MVM) 03:28
03:55 plobsing joined 04:07 Khisanth left 04:10 anaeem1 joined 04:13 xenoterracide joined 04:14 xenoterracide_ joined 04:18 xenoterracide left 04:20 jnap left 04:27 BenGoldberg left 04:28 Khisanth joined 04:32 SamuraiJack__ joined
[Coke] MuEvent fails to build on r0m 04:34
rakudo-moar
Error while compiling op p6box_n: To compile on the MoarVM backend, QAST::VM must have an alternative 'moar' or 'moarop'
04:37 Khisanth left, Khisanth joined 04:44 klapperl joined 04:47 klapperl_ left, havenwood joined 04:48 xenoterracide_ left 04:51 jnap joined 04:52 dragon_d left 04:54 klapperl_ joined 04:55 jnap left 04:56 klapperl left 05:03 stevan__ joined 05:06 bjz left 05:15 kaleem joined 05:16 bjz joined 05:24 denis_boyun_ joined
FROGGS_ [Coke]: is there pir code somewhere? 05:29
05:32 denis_boyun_ left 05:34 denis_boyun_ joined 05:36 kaleem left 05:38 havenwood left 05:41 denis_boyun___ joined 05:42 denis_boyun_ left 05:52 jnap joined 05:56 jnap left 06:02 kaare__ joined 06:06 denis_boyun___ left 06:08 hoverboard left 06:09 havenwood joined 06:10 salv0 left 06:11 havenn joined 06:13 havenwood left 06:15 FROGGS_ left, havenn left 06:16 havenwood joined 06:24 salv0 joined 06:29 hummeleB1 joined 06:37 nhayashi joined 06:39 avuserow joined 06:43 havenwood left 06:44 nebuchadnezzar joined 06:46 havenwood joined 06:47 darutoko joined
moritz good morning 06:47
jnthn lue: Nice that syngen is faster from the recent performance work too. :) 06:49
morning, all
06:52 jnap joined 06:53 bluescreen10 left
moritz tests donaldh++'s rakudo-j patches 06:56
06:56 SamuraiJack__ left 06:57 jnap left 06:58 FROGGS joined 06:59 zakharyas joined 07:04 kaleem joined 07:05 havenwood left 07:15 btyler left
dalek kudo/nom: 626fd39 | (Donald Hunter)++ | tools/build/Makefile-JVM.in:
On JVM, CORE.setting now compiles comfortably in 800m heap.
07:19
kudo/nom: 9b9ca14 | (Donald Hunter)++ | src/vm/jvm/runtime/org/perl6/rakudo/ (2 files):
Suppress unused warnings for constants. Remove unused local.
07:23 thou left 07:32 havenwood joined 07:38 kivutar joined 07:41 IllvilJa left 07:47 SamuraiJack__ joined 07:53 fhelmberger joined, jnap joined 07:54 dmol joined 07:58 jnap left
moritz t/spec/S02-types/sethash.rakudo.jvm (Wstat: 0 Tests: 191 Failed: 2) Failed tests: 186-187 08:01
lizmat: ^^ is that your doing?
08:21 FROGGS left 08:25 dakkar joined
moritz and on moar, I get 08:30
t/spec/S02-types/mix.rakudo.moar (Wstat: 0 Tests: 169 Failed: 1) Failed test: 124
08:33 FROGGS joined 08:35 denis_boyun joined 08:36 kivutar left 08:37 kivutar joined 08:47 thou joined 08:51 thou left 08:54 bjz left, jnap joined 08:55 kaare__ left 08:58 jnap left 09:02 Ven left 09:09 bjz joined
timotimo o/ 09:09
lizmat moritz, timotimo o/
moritz: checking 09:10
09:10 kivutar left 09:11 pecastro joined
lizmat moritz: re t/spec/S02-types/mix, not seeing any test failerues myself :-( 09:13
nor on t/spec/S02-types/sethash :-(
however, the t/spec/S02-types/sethash failing tests relate to minpairs/maxpairs 09:14
the t/spec/S02-types.mix fail is related to .roll(*), and I didn't change anything there 09:15
firing up a jvm build
jnthn Is .WHICH involved in these in some way? 09:16
lizmat checking 09:18
nope, unless role composition is... minpairs/maxpairs live in the QuantHash role 09:20
jnthn We may be vulnerable to .WHICH for things changing over time, is all.
For reference types, I mean.
sergot hi o/ 09:21
jnthn o/ sergot
sergot: Polish Perl Workshop is not far away! \o/ :)
lizmat: On JVM and Moar, .WHICH is based on the address of the object (on JVM because we use .hashCode(), which in turn is typically based on it for JVM). And unlike on Parrot, both Moar and JVM's GCs will move objects over their lifetime. 09:22
lizmat so a .WHICH of an object can change ? 09:23
jnthn yes
lizmat that feels... eh... action at a distance ?
which also means you cannot use .WHICH as a key in a hash to identify an object? 09:24
which basically means that typed hashes are not reliable ?
or sets for that matter ?
or bags / mixes ?
moritz then .WHICH shouldn't be based on memory address on moar/jvm
09:24 havenwood left
jnthn lizmat, moritz: Java manages to have object hashes, despite its hashCode() having this property. 09:25
sergot jnthn: that's right! I can't wait. :) 09:26
lizmat maybe .WHICH should be based on mem addr of creation + creation time ?
jnthn lizmat: Well, here's the problem: you need a way to do this without making every object bigger to store taht.
The CLR has a way. We too can manage one, but it's going to be non-trivial. It involves weak references and similar. 09:27
need to take @student for lunch, bbiab
moritz Java's hashCode changes over time?
urks
jnthn moritz: yes
stackoverflow.com/questions/4178997...my-classes
bbiab
lizmat S02:633: "Every object can produce a "WHICH" value that uniquely identifies the object for hashing and other value-based comparisons" 09:30
synopsebot Link: perlcabal.org/syn/S02.html#line_633
lizmat I read this as .WHICH to be immutable for an object
and since everything in Perl 6 is an object... 09:31
timotimo the RAM is an object
09:32 Ven joined
lizmat moritz: can reproduce the sethash fail on JVM 09:32
09:35 woolfy left
lizmat indeed, there was a .sort missing 09:36
moritz++
dalek ast: baace2c | (Elizabeth Mattijsen)++ | S02-types/sethash.t:
We can't rely on order in which pairs are returned
09:37
09:37 vky left 09:38 woolfy joined
timotimo my blog's already had more views this week than it had last week; probably thanks to 6guts mentioning me 09:38
thanks jnthn :)
09:39 zakharyas left 09:41 vky joined
Ven o/, #perl6 09:42
timotimo neV \o
Ven I think there was the debian perl6 guy here, yesterday or so ? 09:43
(wrt to the segfault I had, doing `aptitude install perl6 && perl6`)
09:44 zakharyas joined 09:52 anaeem___ joined 09:55 jnap joined, anaeem1 left 09:56 havenwood joined 09:59 FROGGS left, jnap left 10:06 petercommand left 10:07 Sqirrel joined 10:10 havenwood left
dalek kudo/nom: 3648d3d | (Elizabeth Mattijsen)++ | src/core/asyncops.pm:
Provisionally add "is cas" trait to $@%

Just so I can mark the variables in tests that need to be marked this way.
10:11
10:12 FROGGS joined
colomon is cas? 10:12
tadzik compare and swap? 10:13
timotimo yeah 10:14
assignments to these variables should be attempted atomically
however that'll be possible
lizmat S17:854
synopsebot Link: perlcabal.org/syn/S17.html#line_854
lizmat it's Perl6's equivalent to ":shared" from Perl5's ithreads
colomon ah 10:15
lizmat one could argue that we don't need this if we have sufficient other primitives for queuing up reads/writes 10:17
colomon lizmat++ timotimo++ tadzik++
lizmat to variables from different threads
timotimo much like the parrot threading model? ;)
tadzik :D
lizmat it's just that I realised some of the S17 tests assume "is cas" in some cases
so I would like to mark them as sich
*such 10:18
jnthn How many more times do I have to say it's operations that want to be transactional... :/ 10:22
An "is monitor" or "is actor" could *maybe* make sense
"is cas" really, really does not. 10:23
(where "is monitor" means "implicitly hold a lock during the method call"
)
lizmat okok
it's just that I specced it last November, and nobody complained :-) 10:24
jnthn I'll try and remember to complain more :P 10:26
dalek kudo/nom: f1f30d2 | (Elizabeth Mattijsen)++ | src/core/asyncops.pm:
Revert "Provisionally add "is cas" trait to $@%"

This reverts commit 3648d3d63e8e8d071c131517da4572c21c27f7da.
jnthn I think any of these we spec really, really need to have a strong description of their semantics.
dalek ecs: c71f130 | (Elizabeth Mattijsen)++ | S17-concurrency.pod:
"is cas" is no more
10:27
lizmat the only thing I'm still worried about is naive programmers with a threads background 10:29
writing wrong programs that will be unreliable in the Perl 5.005 threads way 10:30
timotimo www.youtube.com/watch?v=KhbUvoxjxIg - this will be a tricky game
lizmat as in random strange effects / segfaults, etc
10:30 rindolf joined
lizmat we *need* a solution for that, otherwise Perl 6 concurrency will get a bad name 10:30
jnthn lizmat: I don't think you get to be naive and have a threads background :P
lizmat even if it doesn't deserve that
timotimo heh heh. 10:31
moritz with MoarVM, I now have a lock in t/spec/S17-concurrency/promise.rakudo.moar
worked on the first spectest run though
jnthn need to teach, bbl
lizmat well, you'd be surprised the questions I got when I was still maintaining forks.pm
jnthn Maybe I'll do a blog post on this stuff on the train home tonight... I promised lizmat++ one ages ago...
lizmat hehe :-)
moritz: it should be busy for ~ 10 seconds (sleep sort test) 10:32
Ven 5.14 should be enough to build rakudo, right ?
lizmat plenty, I would think 10:33
moritz lizmat: I killed it after it consume >1h CPU time
Ven can't get rakudo to build under debian, but has no idea why
lizmat ah, not good
moritz: any idea at which test it hangs? 10:34
Ven "set_pmc_keyed_str() not implemented in class 'ResizablePMCArray' current instr.: 'main' pc 15 (frontend/parrot2/build.pir:12) make: *** [frontend/parrot2/prt0.pbc.c] Error 1" 10:35
Command failed (status 512): make install-dev :(
10:35 thou joined
Ven (following the steps in rakudo.org/how-to-get-rakudo/) 10:35
lizmat hmmm... is there a reason you want to run rakudo with parrot? why not MoarVM ? 10:36
Ven I just tried to generate every backend. I got a similar, though different error with moar 10:37
moritz Ven: looks like a parrot bug to me :(
Ven I got a missing .so error later
lizmat fwiw, it feels like a rakudo / parrot version mismatch, but I'm no expert on that
moritz that's weird, moarvm works fine for me on debian
Ven actually, `aptitude install perl6` from the VM makes it work in the supervisor, but it segfaults instantly on the vms ... 10:39
10:40 thou left
Ven m: multi sub MAIN(Str $foo, Str :$add = 'default', Bool :$force) {}; multi sub MAIN() {} # usage ? 10:40
camelia ( no output )
FROGGS Ven: that ResizablePMCArray error sounds like you either built a newer Parrot then 6.1.0, or you have an older parrot in PATH
m: multi sub MAIN(Str $foo, Str :$add = 'default', Bool :$force) {}; multi sub MAIN($bar) {} # usage ? 10:41
camelia rakudo-moar 9b9ca1: OUTPUT«Usage:␤ /tmp/5xnvafQOyL [--add=<Str>] [--force] <foo> ␤ /tmp/5xnvafQOyL <bar> ␤»
Ven I used the other one
FROGGS the other one?
of what?
Ven I mean. I only used the snippet from the blog -- it should take the correct parrot version. No other parrot in my path.
Seems like Moar built, though
FROGGS m: multi sub MAIN(Str $foo, Str :$add! = 'default', Bool :$force) {}; multi sub MAIN($bar) {} # usage ? 10:42
camelia rakudo-moar 9b9ca1: OUTPUT«===SORRY!=== Error while compiling /tmp/s6dwfZGvhX␤Cannot put default on required parameter $add␤at /tmp/s6dwfZGvhX:1␤------> ub MAIN(Str $foo, Str :$add! = 'default'⏏, Bool :$force) {}; multi sub MAIN($bar)␤ …»
FROGGS ahh
m: multi sub MAIN(Str $foo, Str :$add!, Bool :$force) {}; multi sub MAIN($bar) {} # usage ?
camelia rakudo-moar 9b9ca1: OUTPUT«Usage:␤ /tmp/S4Nu35i3JK --add=<Str> [--force] <foo> ␤ /tmp/S4Nu35i3JK <bar> ␤»
FROGGS Ven: do you have another parrot in PATH?
Ven no, I don't
m: sub MAIN($foo, $bar) {} 10:43
camelia rakudo-moar 9b9ca1: OUTPUT«Usage:␤ /tmp/IMrvlEzURx <foo> <bar> ␤»
Ven `make install`ing moar ...
FROGGS m: my $*PROGRAM_NAME = 'camelia.pl'; multi sub MAIN(Str $foo, Str :$add = 'default', Bool :$force) {}; multi sub MAIN($bar) {} # <-- a bit nicer output here 10:44
camelia rakudo-moar 9b9ca1: OUTPUT«Usage:␤ camelia.pl [--add=<Str>] [--force] <foo> ␤ camelia.pl <bar> ␤»
FROGGS that .so error would be interesting to know more abot 10:45
about*
Ven Seems like it's working now. Uh. 10:46
FROGGS hmmm
weird
lizmat m: sub a ($a,&c) { $_ := $a; c }; my $b=1; a($b,{.say; $_++}); say $b # hoping for 1,2 10:52
camelia rakudo-moar 9b9ca1: OUTPUT«Nil␤1␤»
lizmat so what is the canonical way to set $_ for a given block to be an alias to something outside ?
Ah! S06:1971 10:55
synopsebot Link: perlcabal.org/syn/S06.html#line_1971
lizmat m: sub a ($a is rw,&c) { c($a) }; my $b=1; a($b,{.say; $_++}); say $b
camelia rakudo-moar 9b9ca1: OUTPUT«1␤2␤»
10:55 jnap joined
lizmat sub a (\a,&c) { c(a) }; my $b=1; a($b,{.say; $_++}); say $b # better, as it allows @ and % as well :-) 10:57
m: sub a (\a,&c) { c(a) }; my $b=1; a($b,{.say; $_++}); say $b
camelia rakudo-moar 9b9ca1: OUTPUT«1␤2␤»
timotimo m: my $foo is parcel; 10:59
camelia rakudo-moar 9b9ca1: OUTPUT«===SORRY!=== Error while compiling /tmp/VbyOAISviX␤Can't use unknown trait 'is parcel' in a variable declaration.␤at /tmp/VbyOAISviX:1␤------> my $foo is parcel⏏;␤ expecting any of:␤ TypeObject␤ …»
timotimo we may want to change S06:1971 to say "is rw" instead?
synopsebot Link: perlcabal.org/syn/S06.html#line_1971
timotimo or is "is parcel" yet to be implemented on rakudo? 11:00
lizmat it is atm an alias for "is rw"
11:00 jnap left
lizmat there was a subtle difference between "is rw" and "is parcel", which I currently cannot remember :-( 11:00
timotimo OK 11:02
m: sub foo { say self }; 1.&foo; 11:03
camelia rakudo-moar 9b9ca1: OUTPUT«===SORRY!=== Error while compiling /tmp/DrdqYv5tnn␤'self' used where no object is available␤at /tmp/DrdqYv5tnn:1␤------> sub foo { say ⏏self }; 1.&foo;␤ expecting any of:␤ argument list␤ p…»
timotimo mhm mhm
11:06 havenwood joined
lizmat afk for a few hours& 11:07
JimmyZ How did I see it as 'new house'? 11:09
11:10 kivutar joined 11:11 havenwood left
Woodi hallo :) 11:15
11:16 klapperl_ left 11:17 klapperl joined
Woodi but if Perl is dead but apparently is still moving so it must be a zombie or vampire and they are hard to kill... 11:17
but about concurent debugging: maybe something like "bash -x" which echo every command before execution but per thread/thunk. threads could write to stddebug file descriptor or have one fd per active thread ? 11:21
also: apps eg. db's usually have configs to change number of used threads but hypers and for @a { start(...) } are under-language surface, apps can't change anything. and if app looks like: hyper --> hyper --> hyper --> ... then some parts can be starved or work can be arranged not optimal. maybe each such paraller block could have name and admin could configure how many threads need to be used per named block ? such config isn't just standard app config 11:46
timotimo you can set $*SCHEDULER 11:48
11:49 kurahaupo joined
jnthn And, generally, modern scheduler designs can normally do better than a human's guesswork. 11:49
By adapting number of threads not only to the available hardware, but also to the system's current load. 11:50
The Rakudo built-in one doesn't do so yet. 11:51
But there's no reason it can't learn to.
But yeah, if you must, set $*SCHEDULER.
Note that start is also sugar for Promise.start(...), which can take a per-promise level scheduler, so you can get fine-grained control if needed. 11:52
timotimo looking for a good short snippet of code i could explain on video 11:53
i could start with the super-compact pascal's triangle from RC
jnthn say "Hello, world!"; 11:54
timotimo not much to explain there, except if i go crazy into depth :P
jnthn sub mean(*@a) { [+ 11:55
oops
sub mean(*@a) { [+
arse, this keyboard
timotimo heh heh :)
jnthn sub mean(*@a) { [+](@a) / @a }
11:56 jnap joined
jnthn timotimo: Maybe some simple class example also is nice 11:57
timotimo raiph suggested to keep it below 100 chars so it'll fit twitter with url and hashtags
jnthn class Log { has @.msgs handles :log<push>; } # :P 11:58
timotimo that's already cute :) 11:59
Ven some p6weekly code 12:00
12:01 jnap left
Ven I mean -- p6advent :-+ 12:03
12:07 havenwood joined
Woodi jnthn: ok. I was just guessing from apps I know, not quite modern 12:07
12:09 benabik left
Woodi timotimo: looks I must 3rd+ read about SCHEDULERs :) 12:09
12:11 havenwood left
timotimo hmm. obs-studio will not be the way to record my screen on my laptop, as it requires an opengl extension i don't have there yet 12:11
jnthn <jnthn> OK, time to go and get cake! <group> * keeps programming 12:12
geez, cake folks :)
timotimo :D 12:13
tadzik :D
jnthn At least the exercise I set must be some amount of fun :)
timotimo: Dunno if you are running in a VM, but I noticed virtualbox provides some kind of screen recording feature. 12:15
timotimo oh
that could be helpful
i'd like to have a somewhat sterile environment to record in rather than my cluttered desktop and such :)
jnthn Didn't try it, just noticed it while trying to make opengel happy in my linux mint vm the other day...
Ven
.oO(is opengel cold to you ?)
12:16
jnthn uh, opengl :P
.oO( I'm so open source, I shower with opengel... )
12:17
FROGGS >.< 12:20
retupmoca I'm not sure if we want this in CORE.setting, or if it should be a module, but: github.com/rakudo/rakudo/pull/261 12:21
(exposes the REPL readline library to perl6 code)
12:23 thou joined
timotimo oh yay 12:24
12:26 kivutar left 12:28 thou left 12:30 pecastro left
colomon would totally accept that pull request, except he's not sure about the name... 12:31
FROGGS yeah 12:32
retupmoca what name should it have? 12:33
colomon I dunno
retupmoca I was thinking readline-interactive or something maybe, but I hav no experience naming things on the setting level 12:34
s/hav /have /
colomon consider the IO::Prompter module (github.com/colomon/io-prompter) 12:36
AFK # exercise, yay!
Ven r: role IntConversionHelper { method Num { self.Numeric }; method Numeric { self.Num }; method Int { self.Num.Int }; method Integral { self.Int }; }; class Foo does IntConversionHelper { has Int $.val; method Num { +$.val; } }; say Foo.new(:5val).Integral; 12:41
Ven is trying to define Num and such in terms of others
camelia rakudo-jvm f1f30d: OUTPUT«(timeout)»
..rakudo-parrot f1f30d, rakudo-moar f1f30d: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Malformed radix number␤at /tmp/tmpfile:1␤------> method Num { +$.val; } }; say Foo.new(:5⏏val).Integral;␤ expecting any of:␤ nu…»
Ven m: role IntConversionHelper { method Num { self.Numeric }; method Numeric { self.Num }; method Int { self.Num.Int }; method Integral { self.Int }; }; class Foo does IntConversionHelper { has Int $.val; method Num { +$.val; } }; say Foo.new(:val(5)).Integral;
camelia rakudo-moar f1f30d: OUTPUT«5␤»
Ven this looks better to me than defining each operator 12:42
Ven could very well make this a module
moritz Ven: this is #perl6, not #java :-)
Ven moritz: github.com/colomon/io-prompter/blo...ter.pm#L12
12:43 xenoterracide_ joined 12:45 anaeem___ left 12:47 jnap joined 12:48 hoverboard joined
Ven timotimo: actually, I remember asking a similar question few days/weeks ago, "what is the rosettacode example you'd use to demonstrate p6's power to somebody 12:52
timotimo did you get good results? :) 12:53
Ven I'm trying to find what TimToady++ answered me 12:54
timotimo: rosettacode.org/wiki/Function_composition#Perl_6 12:55
maybe rosettacode.org/wiki/Odd_word_problem#Perl_6
12:55 guru joined 12:56 guru is now known as ajr_ 12:58 meowmixdeath joined
meowmixdeath ki 12:59
12:59 meowmixdeath left
Ven r: foo(*%a) { say %a.perl }; foo(:a(True), :!b); 13:00
camelia rakudo-parrot f1f30d, rakudo-jvm f1f30d, rakudo-moar f1f30d: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?)␤at /tmp/tmpfile:1␤------> foo(*%a) …»
timotimo virtualbox seems to have a problem with my graphics or something
13:00 ajr_ left
Ven m: sub foo(*%a) { say %a.perl }; foo(:a(True), :!b) # I should know better by now ... 13:01
camelia rakudo-moar f1f30d: OUTPUT«("a" => Bool::True, "b" => Bool::False).hash␤»
Ven m: sub foo(*%a) { say %a.perl }; foo(:a(True), :b!) # I should know better by now ...
camelia rakudo-moar f1f30d: OUTPUT«===SORRY!=== Error while compiling /tmp/oTnPfjs8qt␤Negation metaoperator not followed by valid infix␤at /tmp/oTnPfjs8qt:1␤------> (*%a) { say %a.perl }; foo(:a(True), :b!⏏) # I should know better by now ...␤ …»
Ven m: sub foo(*%a) { say %a.perl }; foo(:a(True), :b)
camelia rakudo-moar f1f30d: OUTPUT«("b" => Bool::True, "a" => Bool::True).hash␤»
FROGGS timotimo: in what way?
timotimo black screen after login
Ven sent timotimo a few examples
13:01 guru joined 13:02 guru is now known as Guest18166, Guest18166 is now known as ajr_, jnap left
Ven btw, it seems that `open :rw` is NYI ? 13:02
timotimo oh? 13:03
Ven I tried to use it doing a p6demo but it blew up :p
timotimo huh.
FROGGS this could be right, and it will be refactored anyway 13:04
or... maybe I am thinking of open :rwp
Ven Cannot call 'open'; none of these signatures match: :(Any $path, Any :r($r), Any :w($w), Any :a($a), Any :p($p), Any :bin($bin), Any :chomp($chomp) = { ... }, Any :enc(:encoding($encoding)) = { ... }) in block at <unknown file>:1 13:05
FROGGS ahh 13:06
, and open( ..., :r, :w ) ?
Ven works :)
FROGGS k
is :rw mentioned in the spec?
Ven I'm not even sure :rw is needed ...
Yep. github.com/perl6/specs/blob/master...ary/IO.pod 13:07
FROGGS: do you think it's necessary ?
FROGGS hmmm, maybe we should add :rw because it is used often enough?
kinda 13:08
Ven `:rw` vs `:r, :w`, really ?
13:08 havenwood joined
Ven That's like, 2 chars different :p 13:08
13:08 AW3i joined
FROGGS well, it is specced for some reason... and it is easy to implement and might be handy 13:10
Ven $r = $w = True if $rw; 13:11
though if you want to do that properly, you'll probably want to check if the user provided another `:r` or `:w` with it, at which point ... 13:12
13:12 xenoterracide_ left 13:13 havenwood left
Ven FROGGS: the "easy" way : github.com/rakudo/rakudo/pull/262 13:15
13:18 havenwood joined
dalek kudo/nom: e572536 | Nami-Doc++ | src/core/IO.pm:
Implement IO.read :rw as specced
13:20
kudo/nom: 0c11bcb | (Tobias Leich)++ | src/core/IO.pm:
Merge pull request #262 from Nami-Doc/patch-2

Implement IO.read :rw as specced
13:22 kbaker_ joined
Ven Definitely true that having p6 written in p6 makes it easier for "outsiders" to contribute 13:25
moritz eeks, that's only for the method, the sub form should get :rw as well
13:25 daniel-s_ joined
Ven whoopsie - thought this was an `is export` 13:27
FROGGS still a method
moritz we don't do 'is export' on methods in the setting
Ven moritz: should I change it in other places ?
FROGGS (but I havn't seen it anyway)
13:27 dragon_d joined
moritz Ven: not that I'm aware of 13:28
13:28 nhayashi is now known as zz_nhayashi, hoverboard left
FROGGS Ven: you need to adjust this: rakudo/src/core/IO.pm:608:multi sub open($path, :$r, :$w, :$a, :$p, :$bin, :$chomp = Bool::True, :enc(:$encoding) = 'utf8') { 13:28
Ven yeah I know :) I had the commit window opened already 13:29
FROGGS :o)
Ven just wanted to make sure I wasnt missing yet another one ...
FROGGS but yeah, having the compiler in nqp/perl6 is a big plus... I am not that good at writing Haskell
Ven moritz: #263 :) 13:30
dalek kudo/nom: 22db812 | Nami-Doc++ | src/core/IO.pm:
#262 fixup - Add :$rw to `open` sub
13:31
kudo/nom: 8bac4dd | (Tobias Leich)++ | src/core/IO.pm:
Merge pull request #263 from Nami-Doc/patch-3

  #262 fixup - Add :$rw to `open` sub
moritz FROGGS++ Ven++
Ven moritz++ 13:32
FROGGS Ven++
(enough now!!)
:P
Ven FROGGS++ :)
FROGGS gah! 13:33
13:34 pecastro joined
jnthn The karma ran over the dogma? :) 13:34
moritz and the dog barked "ma"
[Coke] there's a "your mom" joke in there somewhere. 13:35
jnthn There's a joke somewhere in your mom...
jnthn goes to do the final bit of teaching for the week :)
Ven didn't get the dogma part 13:36
FROGGS jnthn: I hope that I am productive on the easter holidays... (fri-mon) 13:37
I have to kick myself somehow to grok CPAN
Timbus erm, is it possible to assign to $r and $w if they are params? 13:38
FROGGS ohh 13:39
good that PR's are kinda cheap :o) 13:40
[Coke] oh, there is PIR code in MuEvent...
sub clock { nqp::p6box_n(pir::time__N)
}
tadzik ah :)
that explains it
FROGGS [Coke]: yes, the message you got is a very good indicator about PIR
tadzik now there's an nqp thing that's even easier to type :) 13:41
moritz nqp::time_n
[Coke] do you need a PR?
FROGGS nothing else triggers it from user code
Ven Timbus: wat?
tadzik though I should actually rewrite MuEvent into something that uses our asyncy-concurency-y thingys
FROGGS Ven: $r and $w need "is copy"
Ven r: sub fu-()
camelia rakudo-parrot f1f30d, rakudo-jvm f1f30d, rakudo-moar f1f30d: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Missing block␤at /tmp/tmpfile:1␤------> sub fu⏏-()␤ expecting any of:␤ statement list␤ prefix or te…»
Ven I'll just stop touching stuff
FROGGS m: sub foo(:$r, :$w) { $r = $w = True }; foo() 13:42
camelia rakudo-moar f1f30d: OUTPUT«Cannot assign to a readonly variable or a value␤ in sub foo at /tmp/9dIDx4xZgZ:1␤ in block at /tmp/9dIDx4xZgZ:1␤␤»
Timbus no. press more buttons
Ven yeah yeah, I got it, I'm just fu-'ing
13:42 dmol left 13:43 dmol joined
Ven Timbus: That doesn't seem to help ! 13:43
FROGGS m: sub foo(:$r is copy, :$w is copy) { $r = $w = True }; foo() 13:44
camelia ( no output )
Timbus lol
moritz :r($r || $rw), :w($w || $rw)
Timbus i was thinking something along those lines moritz 13:45
cognominal Is there a double quoted string adverb to allow stray spaces in a string? Let's call it :u for unspace. qq :u ": {self.named} < $!value >" would mean ":{self.named}<$!value>|
Ven m: sub open(:$rw, :r($r || $rw), :w($w || $rw)) { say ($r, $w).perl }; open(:r); open(:rw); open(:rw, :!w);
camelia rakudo-moar f1f30d: OUTPUT«===SORRY!=== Error while compiling /tmp/rmhT0LYwBw␤Unable to parse named parameter; couldnt find right parenthesis␤at /tmp/rmhT0LYwBw:1␤------> sub open(:$rw, :r($r ⏏|| $rw), :w($w || $rw)) { say ($r, $w).p␤ …»
Timbus yet you also want them to be true if they arent defined.. hmm 13:46
cognominal This would permit to use double quotes where we generally use infix ~
Ven that's dealt with later in the code, though
13:46 dragon_d left
moritz cognominal: I prefer join, personally 13:46
13:46 bluescreen10 joined
Timbus would be cooler if it was all in one! 13:46
moritz <<: {self.named} < $!value > >>.join 13:47
13:47 kaleem left
moritz ($r // True) || $rw 13:47
.oO( rod logic! )
cognominal moriz, ho, I did not know the << .. >> That's nice. 13:48
Ven moritz: you can't actually `sub foo(:r($r || 'a'))`, right ? 13:49
moritz Ven: no, you can sub foo(:$r) { bar( :r($r || 'a') } }
Ven moritz: ah, yeah, but that's not fixing the method 13:50
cognominal so, now, I can advocate my :u adverb only for the the sake of there should be one way to do it as a modifier of the first way one thin of. After all TMTOWTDI is not gratuitous.
13:51 hummeleB1 left
cognominal Also it would be for free on nqp where the .join does not exists. I am writing that in nqp btw. 13:52
moritz nqp::join exists. 13:56
(iirc nqp doesn't support quote adverbs anyway)
cognominal yes but that's get verbose.
moritz nqp is more verbose than p6. Live with it.
13:56 btyler joined 13:59 klapperl left
cognominal nope, my very point is to make less verbose to tend toward Perl 6 style. Eventally, Perl 6 has to be written in Perl 6 if we want people to write compilers for their own language. 13:59
* to make NQP less verbose 14:00
14:00 thou joined
cognominal I am working on write a slang to generate AST. 14:01
Teratogen what? 14:02
cognominal I am working on writing a slang to generate AST. 14:03
Teratogen I don't understand
what is AST?
cognominal An early spec gist.github.com/cognominal/10880617
PerlJam Teratogen: ast == abstract syntax tree
FROGGS abstract syntax tree
Teratogen ah, cool
tadzik maybe we should get S-last into a wtf-compatible database and teach synopsebot to use it :) 14:04
cognominal I am writing the dumper to see how it looks on a real AST.
PerlJam Teratogen: When people here say something weird that you don't understand, have a look at perlcabal.org/syn/S99.html to see if it's in the glossary :)
Teratogen cool I will 14:05
cognominal in this doc, I use the present tense where it should be a future 14:06
14:08 daniel-s_ left, daniel-s__ joined 14:09 treehug88 joined
Ven m: sub foo($bar is rw) { $bar = True; }; sub baz($bar) { foo($bar) }; baz(my $a); 14:13
14:13 atrodo joined
camelia rakudo-moar f1f30d: OUTPUT«Cannot assign to a readonly variable or a value␤ in sub foo at /tmp/PItqck4GeJ:1␤ in sub baz at /tmp/PItqck4GeJ:1␤ in block at /tmp/PItqck4GeJ:1␤␤» 14:13
Ven FROGGS: I'd rather have you fix this, because I'm 100% gonna miss something else and it's been enough PRs already 14:15
PerlJam wonders what needs fixing? 14:17
Ven PerlJam: rakudo/rakudo#26{2,3} 14:18
14:19 daniel-s__ left 14:20 donaldh left 14:25 dragon_d joined 14:26 donaldh joined 14:28 benabik joined
retupmoca (re: my readline patch) Should my new nqp::readlineintfh thing replace the existing prompt sub in CORE.setting? 14:29
instead of being a new function?
14:29 dragon_d left 14:37 hoverboard joined
retupmoca like so: github.com/rakudo/rakudo/pull/261/files 14:40
colomon, FROGGS: ^ 14:42
FROGGS retupmoca: the difference is that prompt returns when you hit enter and readlinethingy does not, right?
retupmoca readlinethingy should return when you hit enter, yes 14:43
it just allows line editing, where prompt does not
colomon +1
FROGGS hmmm, then +1 to sell it as prompt 14:44
(in case it also prints a text like prompt does)
retupmoca indeed it does
FROGGS (and also takes a default)
retupmoca current prompt has no default - the text is required
unless I misunderstand? 14:45
[Coke] gives tadzik a pull request.
... and another ticket.
FROGGS retupmoca: forget about the default, prompt has none
would be nice if it has one though :o) 14:46
retupmoca FROGGS: what would you like the default to be? :)
colomon retupmoca: one issue: the old prompt worked with $*OUT and $*IN, while yours (I think) only works with stdout and stdin?
FROGGS .oO( say prompt "Do you like coffee?", "Yes" ---> Do you like coffee? [Yes] _ ) 14:47
14:47 kaleem joined
retupmoca true. nqp::readlineintfh doesn't give an option to change the output fh 14:47
so idk if that's doable easily
Ven r: grammar G { proto token string {*}; token string:sym<"> { \" ~ \" [ <str> | \\ <str=.str_escape> ]* }; token string:sym<'> { \' ~ \' [ <str> | \\ <str=.str_escape> ]* } }; token TOP { <string> * } }; say G.parse('"foo"'); 14:49
camelia rakudo-jvm 8bac4d: OUTPUT«(timeout)»
..rakudo-parrot 8bac4d, rakudo-moar 8bac4d: OUTPUT«Useless declaration of a has-scoped method in mainline (did you mean 'my token TOP'?)␤===SORRY!=== Error while compiling /tmp/tmpfile␤Unexpected closing bracket␤at /tmp/tmpfile:1␤------> scape> ]* } }; t…»
retupmoca FROGGS: refresh the PR for default prompt message :)
Ven m: grammar G { proto token string {*}; token string:sym<"> { \" ~ \" [ <str> | \\ <str=.str_escape> ]* }; token string:sym<'> { \' ~ \' [ <str> | \\ <str=.str_escape> ]* }; token TOP { <string> * } }; say G.parse('"foo"');
camelia rakudo-moar 8bac4d: OUTPUT«No such method 'str' for invocant of type 'G'␤ in regex string:sym<"> at /tmp/0yezbRXF7G:1␤ in any !protoregex at gen/moar/stage2/QRegex.nqp:791␤ in regex string at /tmp/0yezbRXF7G:1␤ in regex TOP at /tmp/0yezbRXF7G:1␤ in method parse at src…»
colomon wonder if there's a way to check if $*IN and $*OUT are set to stdin / stdout and use your new code if they are3?
retupmoca I don't think I know nqp well enough to do that 14:51
is there an easy way to convert $*IN and $*OUT to nqp filehandles to do a comparison?
FROGGS retupmoca: instead of nqp::getstdin you just pass $*IN
retupmoca FROGGS: $*IN doesn't work with nqp::eoffh 14:52
FROGGS does it work to print the $msg to $*OUT, and then prompt using an empty string as second arg?
ohh
retupmoca and without nqp::eoffh, nqp/perl6 will segfault if you ^D
FROGGS: also, my build of r-m acts slightly odd with a '' prompt (it seems to think the prompt is at least 1 character) 14:53
FROGGS hmmm 14:54
14:54 guru joined, guru is now known as Guest53203
retupmoca so if prompt needs to respect $*IN and $*OUT, I think we need a way to fall back to the old code 14:54
FROGGS I dunno how to do that... 14:55
14:57 ajr_ left
retupmoca I *think* we can do it if we can get $!PIO out of $*IN/$*OUT 14:58
so if we added a IO::Handle.nqpfh method or something? 15:00
jnthn No! Don't leak it.
You can check it's an IO::Handle, and nqp::getattr it out.
retupmoca ah, nqp::getattr sounds like what I needed to know
jnthn And then fall back to something else if it's not an IO::Handle
That said, you may need to go further and ensure that the handles are really stdin/stdout or so 15:02
I mean, it expects a tty I guess
s/expects/needs/
JimmyZ nqp::istty?
jnthn No, doubt we need to go that far... 15:03
FROGGS m: say nqp::getattr($*IN, IO::Handle, '$!PIO') # or so
camelia rakudo-moar 8bac4d: OUTPUT«P6opaque: no such attribute '$!PIO'␤ in block at /tmp/jpK1dFr7SV:1␤␤»
15:03 kaleem left
FROGGS m: say nqp::getattr($*IN.IO, IO::Handle, '$!PIO') # or so 15:03
camelia rakudo-moar 8bac4d: OUTPUT«P6opaque: no such attribute '$!PIO'␤ in block at /tmp/2LKjZAWWDH:1␤␤»
FROGGS hmm
jnthn nqp::decont the $*IN maybe
FROGGS m: say nqp::getattr(nqp::decont($*IN), IO::Handle, '$!PIO') # or so
camelia rakudo-moar 8bac4d: OUTPUT«P6opaque: no such attribute '$!PIO'␤ in block at /tmp/38hg0Y7jPM:1␤␤»
15:04 treehug8_ joined, treehug88 left
FROGGS m: say nqp::getattr($*ERR, IO::Handle, '$!PIO') 15:05
camelia rakudo-moar 8bac4d: OUTPUT«P6opaque: no such attribute '$!PIO'␤ in block at /tmp/mYuX9q4xDQ:1␤␤»
FROGGS m: say nqp::getattr(nqp::decont($*ERR), IO::Handle, '$!PIO')
camelia rakudo-moar 8bac4d: OUTPUT«P6opaque: no such attribute '$!PIO'␤ in block at /tmp/D3IdaSZmu2:1␤␤»
FROGGS damnit
jnthn r: say $*IN.WHAT
Ven Grammars are hard to evalbot
camelia rakudo-parrot 8bac4d, rakudo-jvm 8bac4d, rakudo-moar 8bac4d: OUTPUT«(IO::Handle)␤»
jnthn Ven: gist it and give evalbot the gist url
FROGGS $PROCESS::ERR = IO::Handle.new;
nqp::bindattr(nqp::decont($PROCESS::ERR),
IO::Handle, '$!PIO', nqp::getstderr());
it looks like one could access it as we did 15:06
Ven jnthn: I actually have a perl6-m at hand right here ! Arguably better :-)
jnthn True ;)
Time to head to the station and get my train home
bbl
15:07 treehug88 joined
FROGGS o/ 15:07
15:09 treehug8_ left
retupmoca I think I got it 15:13
testing locally
FROGGS retupmoca++
retupmoca FROGGS, colomon, *: refresh the PR and see if that looks better 15:16
FROGGS I thought the plan would be to pass nqp::getattr(nqp::decont($*IN), IO::Handle, '$!PIO') to nqp::eoffh 15:18
retupmoca hmm
the problem is that nqp::readlineintfh will still print to nqp::getstdout instead of $*OUT
and on my machine, it doesn't really like empty string prompt 15:19
(it doesn't break, it just behaves slightly oddly)
15:20 LLamaRider joined
dalek p: 6135feb | (Tobias Leich)++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
map nqp::seekfh op for moarvm
15:22
15:23 kurahaupo left
dalek kudo/nom: fbf3873 | (Tobias Leich)++ | / (2 files):
use nqp::seekfh on moar and $!PIO.seek on jvm/parrot
15:23
15:30 araujo joined, araujo left, araujo joined
retupmoca FROGGS: would it make sense to make sure $*OUT is nqp::getstdout (since we can't change that), and then just use $*IN for the user input to readline? 15:32
FROGGS I dunno 15:33
and my brain is not capable to think about it atm
15:33 havenwood left
retupmoca I shall await additional feedback from jnthn or someone else then :) 15:33
FROGGS yeah, in general, I am more on the side of implementing/fixing stuff, rather than deciding how it should act 15:35
15:38 denis_boyun left 15:42 FROGGS left
lizmat is back but has no feed(back) 15:42
15:42 vendethiel left 15:43 vendethiel joined
Ven doesnt like to see himself at home getting relogging like that oO 15:46
15:48 havenwood joined
lizmat Stage mast : Error while compiling op seekfh: No registered operation handler for 'seekfh' 15:51
do we need a version bump somewhere?
retupmoca looks like we need a NQP_VERSION bump 15:52
lizmat is building from scratch to make sure
retupmoca err, NQP_REVISION
15:54 zakharyas left
lizmat hmmm.... nothing that a rebuild from scratch didn't fix 15:56
dalek kudo/nom: 15c145b | (Elizabeth Mattijsen)++ | src/core/asyncops.pm:
Naive implementation of cas()
15:57
15:58 xfix joined, havenwood left
lizmat m: $_ ~ "foo"; .say # there must be shorter way to append to $_, no? 16:02
camelia rakudo-moar 8bac4d: OUTPUT«WARNINGS:␤Useless use of "~" in expression "$_ ~ \"foo\"" in sink context (line 1)␤Nil␤»
lizmat m: $_ ~= "foo"; .say # there must be shorter way to append to $_, no?
camelia rakudo-moar 8bac4d: OUTPUT«foo␤»
16:07 thou left
geekosaur mm, that's a too fiddly, right? 16:07
m: .~=: "foo"; .say 16:08
camelia rakudo-moar 8bac4d: OUTPUT«===SORRY!=== Error while compiling /tmp/lTdfjM2RWv␤Bogus statement␤at /tmp/lTdfjM2RWv:1␤------> .⏏~=: "foo"; .say␤ expecting any of:␤ dotty method or postfix␤»
geekosaur doesn't even remember how to do an operator that way. need sleeeep
lizmat std: ~= "foo"
camelia std e347792: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix = instead at /tmp/Anc1q0SVpL line 1:␤------> ~⏏= "foo"␤Parse failed␤FAILED 00:00 121m␤»
TimToady m: $_~="foo";.say # shorter :P
camelia rakudo-moar 8bac4d: OUTPUT«foo␤»
lizmat hehe 16:09
16:11 rindolf left 16:12 dwarring left 16:16 hoverboard left 16:17 rindolf joined 16:21 cognominal left, cognominal joined, cognominal left 16:22 cognominal joined 16:24 grondilu joined
grondilu m: s/$$/foo/; .say 16:24
camelia rakudo-moar 8bac4d: OUTPUT«foo␤»
lizmat maybe we should have some syntactic sugar for "cas $foo, {$_++}" 16:25
TimToady grondilu: you just want $ there 16:26
grondilu m: s/$/foo/; .say
camelia rakudo-moar 8bac4d: OUTPUT«===SORRY!=== Error while compiling /tmp/_dDWO_1OC0␤Malformed replacement part; couldn't find final /␤at /tmp/_dDWO_1OC0:1␤------> s/$/foo/; .say⏏<EOL>␤ expecting any of:␤ statement list␤ p…»
grondilu std: s/$/foo/; .say
camelia std e347792: OUTPUT«ok 00:01 123m␤»
grondilu j: s/$/foo/; .say 16:27
camelia ( no output )
TimToady rakudobug
n: s/$/foo/; .say
camelia niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: Unable to resolve method subst in type Any␤ at /tmp/JwT5W2q6lI line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4595 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4596 (module-CORE @ 576) …»
lizmat grondilu: will you file it ?
or else I can :-)
grondilu please
do
grondilu is not quite accustomed to these stuff
TimToady well, it reasonably complains about $_ not being a string 16:28
lizmat just sending a mail to "rakudobug" with the discussion pasted, is what I do :-)
grondilu m: $_ = "foo"; s/$/bar/; .say
TimToady Any is not Cool
camelia rakudo-moar 8bac4d: OUTPUT«===SORRY!=== Error while compiling /tmp/PFDr2rHY1C␤Malformed replacement part; couldn't find final /␤at /tmp/PFDr2rHY1C:1␤------> $_ = "foo"; s/$/bar/; .say⏏<EOL>␤ expecting any of:␤ postfix␤ …»
16:29 havenwood joined
TimToady m: $_ = "foo"; s/$ /bar/; .say 16:29
camelia rakudo-moar 8bac4d: OUTPUT«foobar␤»
lizmat 1, select discussion
2. paste to a new email
3. add a descriptive subject
4. send to [email@hidden.address]
TimToady it's not properly taking $ as end of string because it's trying to parse $/
lizmat 5. wait until fix :-)
grondilu lizmat: you forgot 0. check it has not been reported yet. 16:30
TimToady std properly values / as a delimiter more highly than / as a variable name (as does P5 too)
lizmat well, I'd rather see something like this reported twice then forgotten because someone did not take the trouble to find that out :-) 16:31
grondilu ok
TimToady n: $_ = "foo"; s/$/bar/; .say
camelia niecza v24-109-g48a8de3: OUTPUT«foo␤»
TimToady as does niecza
grondilu lizmat: I'll report it, to prove my good will :-)
lizmat cool, thank you!
it's your itch :-)
TimToady p6: $_ = "foo"; say so m/$/ 16:33
camelia ( no output )
..rakudo-parrot 8bac4d, rakudo-moar 8bac4d, niecza v24-109-g48a8de3: OUTPUT«True␤»
TimToady funny that it works there
16:35 FROGGS joined
grondilu reported the bug 16:39
16:40 LLamaRider left
lizmat grondilu++ 16:40
TimToady it wins in STD because token metachar:sym<$> does lookahead for <.stopper> to include it in LTM, and it's a more-derived rule than special_variable:<$/> 16:41
16:42 vky left 16:43 rindolf left 16:44 rindolf joined 16:47 Guest53203 left
jnthn lizmat: That naive cas is, uh, so naive it doesn't even have the right signature? :) 16:49
lizmat ah? 16:50
jnthn oh, sorry 16:51
lizmat seems to do what I want it to do so far ?
jnthn it does
TimToady and token metachar:sym<rakvar> appears to be winning in rakudo, since there's no metachar:<$>
jnthn It needs to read val = code(val), surely?
lizmat I'm not sure about that, really
I was going by the example at S17:848 16:52
synopsebot Link: perlcabal.org/syn/S17.html#line_848
16:53 dakkar left
lizmat and interpreted that incorrectly, I now realize 16:53
jnthn cas $a, { $_.succ };
.succ is not in-place
If you in-place update the thing then cas can't cas ;)
That'd actually be an infinite loop :)
benabik … That’s a terrible signature for cas. Don’t you need an expected value?
jnthn well, cas $a, { $a++ } would; 16:54
benabik: See the spec.
benabik Ah. There’s a var, old, new version too.
jnthn benabik: It's just one overload.
Though perhaps we should give the implicit-retry-loop one a better name.
dalek kudo/nom: fae1d09 | (Elizabeth Mattijsen)++ | src/core/asyncops.pm:
Slightly less naive implementation of cas()

  jnthn++
16:55
16:55 kurahaupo joined
jnthn It's just that a load of my real-life uses of such things do the loop, and I get bored of writing it again and a gain, so tend to end up defining myself something that does what cas $a, {...} does. 16:55
casloop could perhaps be better
Then we needn't make it a multi 16:56
benabik cas($var, &code) is more like do { my $old, $new = $var, code($var) } until cas($var, $old, $new)?
jnthn Pretty much, yeah.
retupmoca jnthn: can you take a look at my updated PR (rakudo#261) for prompt? Hopefully it's sane now.
jnthn prompt?
Oh, did we decide to endow that with readline?
benabik jnthn: Seems akin to the general fetch-and-phi from CS lit.
retupmoca jnthn: that's my proposal, anyway 16:57
jnthn benabik: I'm pretty sure I don't want the Perl 6 sub to be called fetch-and-phi ;)
Teratogen: Hmm. It's not a bad one...
oops
lizmat I just realize that I was using cas() more as a protect()
jnthn That was a bad mis-tab though :) 16:58
lizmat protect %h, {$_{foo}++}
benabik jnthn: You can certainly call it something different, although it’s probably most useful if it returns the old value.
lizmat basically create a lock on the .WHICH of given container 16:59
but I guess that just carries the danger of deadlocks again :-(
benabik jnthn: And calling it something akin to fetch-and-phi will mean someone looking for that could find it. The first cas-code version is literally fetch-and-increment.
17:00 thou joined
benabik *example 17:00
17:01 kurahaupo left
benabik Although I suppose if I was going to try to use FA* and couldn’t find it, my next step would be to look at CAS. 17:01
17:01 kurahaupo joined
Teratogen hi jnthn 17:02
jnthn benabik: Depends on what literature. Back at uni it was decidedly introduced as CAS, or atomic compare and swap.
17:03 kivutar joined
jnthn And .Net calls it CompareExchange 17:03
libatomic follows the fetch naming, though.
lizmat: yeah, cas ain't that.
lizmat: "I looks like you want STM" :)
(ut
*it
TimToady we should call it Fred, or Barbara, or some such
jnthn wfm :) 17:04
benabik jnthn: They’re two different things. CAS can be used to implement Fetch-and-Φ, or vice versa.
jnthn Ah
benabik jnthn: Typically FAΦ is actually a generic term for the category of operations like fetch-and-increment, fetch-and-set, etc. 17:05
jnthn Fair enough.
17:05 denis_boyun_ joined
benabik The casloop is the implementation of all FAΦ for platforms that only have CAS. Which isn’t uncommon. 17:05
TimToady we should charge everyone a Φ for its use 17:06
(can you tell how I pronounce that Greek letter? :)
thou Hi! I built perl6-m nom HEAD yesterday (awesome!), and notice that perl6 --doc /path/to/Str.pod (or others) behaves odd when piped (to less, or cat -v). OS X 10.9.2 iTerm. Known issue? Text displays OK w/ no pipe, but is truncated or slightly jumbled when piped. 17:07
benabik I think x86 may be the only common platform with an atomic fetch-and-increment instruction. Turns out to be useful in a number of lock-free data structures.
jnthn x86 doing something well? Wow! :) 17:08
TimToady ((inconsistenly, I do not pronounce π as "pee"))
*tent
benabik Well, more like x86 having everything and the kitchen sink...
lizmat $ perl6 -e 'my %h; cas %h<foo>, {$_.succ}; say %h'
No such method 'succ' for invocant of type 'Any'
jnthn Clearly we should run Perl 6 on the x86!
TimToady thou: almost certainly a failure to flush an IO buffer 17:09
lizmat seems we're going to have a problem doing this to hashes, or am I missing something?
benabik Hm. Oddly, I geta TTIAR error parsing Str.pod
lizmat I mean, initializing the hash element would also be a race condition
jnthn lizmat: You're *always* going to have a problem if you try to mix auto-viv with atomicity.
thou TimToady: Yes, seems it should be easy to fix. I couldn't find where it's actually printed.
TimToady did the recent change to let exit() cleanup bypass a needed buffer flush? 17:10
jnthn TimToady: It's possible, I guess
thou FYI I haven't tried rakudo for a while, so no idea if this is recent or not.
17:11 kivutar left
jnthn TimToady: That'd explain truncated, though not slightly jumbled, though? 17:11
Wonder if I can reproduce it in my Linux VM....
thou benabik: I did: make install; perl6 panda-bootstrap; panda install p6doc; p6doc Str # noticed issue; perl6 --doc /path/install/.../site/lib/Str.pod 17:12
jnthn lizmat: btw, if you're interested in getting a real CAS impl in place, I'm happy to give pointers.
benabik Oh, I probably lack the Pod libraries.
jnthn (will need a bit of C work)
lizmat well, I'm interested, I'm not sure I have the Moar/C Fu to do that
definitely not for this month's release :-) 17:13
jnthn ok, np
lizmat which would be tomorrow, right?
jnthn yes :)
timotimo has absolutely no clue how to build a robust CAS for moarvm
lizmat I'll just keep it with the naive cas for now, so I can at least mark all of the S17 tests appropriately 17:14
jnthn ok
thou slightly jumbled == hard to describe, but: in less, first page looks ok, scroll down 1 line, exposing at bottom a long text line, at which point the last 4 or 5 lines shift up, covering up end of previously-visible text. scroll up and it redisplays. Probably term size and doc content dependent behavior.
timotimo tomorrow already? wow! 17:15
jnthn timotimo: 3rd Thursday comes early this month.
timotimo right
thou btw, it's thrilling to have panda just work, very nice!
jnthn and it's not even the 3rd Thursday
timotimo need me to work on anything in particular for moar or nqp/rakudo before the release?
jnthn It's the thursday after the third tuesday... 17:16
17:16 john_john joined
vendethiel needs to fix his previous prs... 17:16
TimToady thou: that sounds more like a stupid pager
jnthn timotimo: Well, we should look at what thou just reported, I suspect.
timotimo TimToady: or mixed stderr and stdout output?
TimToady could be
jnthn If I really have busted paging stuff on stdout that's kinda bad.
17:16 john_john left
thou TimToady: I agree, but it's less ... very odd; I did try perl6 --doc ...Str.pod 2>&1 | less, no different 17:17
timotimo weird!
TimToady what's your TERM set to? 17:18
jnthn Does anybody else get it, btw?
TimToady and does stty -a report the right dimensions?
thou and if I redirect to a file, then less file.txt, it's fine
TimToady less shouldn't get confused merely by a long line unless it's terminal settings are inaccurate, or maybe you've got a weird scroll setting in the screen 17:19
try resetting the terminal?
sometimes printing garbage sets the scroll region oddly
timotimo oh yeah, garbage can be any combination of valid but non-helpful commands for your terminal in it 17:20
vendethiel m: sub foo($a is copy) { bar($a); }; sub bar($a is copy) { say $a }; foo(5);
camelia rakudo-moar 15c145: OUTPUT«5␤»
17:21 telex left
kurahaupo thou: when you redirect to a file, does anything show at the same time, on stderr? 17:21
TimToady kurahaupo++ 17:22
17:22 telex joined
thou I opened a new iTerm window. Tried TERM=xterm-256color (my default), vt100, xterm, ansi. Different TERM settings do affect it slightly, but still is weird. stty -a ($LINES $COLUMNS, too) matches actual dimensions. When redirect to file, no stderr output 17:22
TimToady I guess the scroll region explanation wouldn't explain the redirect working right
jnthn fwiw (not much, probably), on Windows piping it to more works out :) 17:23
timotimo what in the ... ?!
TimToady maybe someone fed the IO to a hyper... 17:24
and the output buffer size makes a difference
benabik thou: Do you have R in your $LESS env? Could be that some bit of output is an unwanted terminal control code.
TimToady is stretching...
timotimo in general, i think calling print to a FH multiple times is less expensive than concatenating the text before doing a single call, eh? 17:25
tadzik heh
maybe print yes, say no :D
TimToady is true in P5, but depends on how pessimal the IO invocation is
kurahaupo if you run under "script" to capture the output, does it differ from what's written with redirection? 17:26
TimToady well, except join is optimized in P5, so both ways are fast :)
thou Maybe iterm related, but i've never seen anything else behave wonky. 'p6doc Str | tail' works ok. But 'p6doc Str | cat' consistently shows wrong stuff at the end. Example: pastee.org/h6gde 17:28
17:29 molaf left
timotimo huh, could the line wrapping be wrong if there's no newline at the very end? 17:30
thou I tried Terminal.app, too. Same thing.
TimToady how could piping to cat vs tail make a difference?!? 17:31
thou head has same issue
timotimo well, less probably does its own line wrapping
and the others would leave it to the terminal?
jnthn Just tried the Moar build I had on my Linux VM and it was OK piping Str.pod to less
Building a latest now.
thou i.e.: perl6 --doc ... > skr.txt; head -n 50 skr.txt # OK; perl6 --doc ... | head -n 50 # Broken 17:32
timotimo what repo do i find that file in?
17:32 SamuraiJack__ left
thou perl6/doc 17:32
panda install perl6doc
timotimo thanks
thou s/perl6doc p6doc
17:32 Rotwang joined
thou (Str.pod is not the only one -- it's all files i've seen) 17:33
TimToady does changing your screen width change the behavior?
jnthn *sigh* train wifi is busted, and my 3G connection is really LTA on this bit of the line :/
thou I compiled nom 7814401b72945ee738e27707c4b3466edafa5c73
17:33 denis_boyun___ joined 17:34 xinming joined, havenwood left
thou If no one else can get it, it's possibly some broken thing in my homebrew; after uprade of OS X to 10.9 I've had various issues there..... 17:34
I tried with both a wide window (253 cols) and standard 80x24 17:35
17:36 denis_boyun_ left
thou cat vs. tail: problem only shows if long lines near end of output 17:36
timotimo wtf, unix? :)
dalek ast: 2b72453 | (Elizabeth Mattijsen)++ | S17-concurrency/ (3 files):
Cassify S17 tests
17:37
17:37 xinming__ left 17:39 treehug88 left 17:43 havenwood joined
jnthn Can't reproduce it on my Linux VM, fwiw. 17:43
thou OK. I think this may be OS X termcap related or something like that :-/ 17:45
I'll just drop it. It's very odd, though.
17:45 treehug88 joined
thou thanks for investigating, and sorry for the distraction! 17:45
17:50 guru joined, guru is now known as ajr_ 17:52 denis_boyun joined
geekosaur that doesn't look like terminal type to me, that looks like an unflushed buffer 17:52
17:52 denis_boyun___ left
jnthn thou: No, thanks for reporting. It's not a distraction. 17:52
thou: Just that nobody else can reproduce it yet.
Mebbe somebody else on OSX can...
[Coke] tadzik: ping 17:53
tadzik [Coke]:
yep
[Coke] there's a pull request and a new issue on muevent. 17:55
thou I'm going to try building jvm backend and check w/ that
[Coke] I agree it would be nifty to write it with promises and not the poll/select trick.
(I want to use moar for the project I'm doing that needs a muevent.) 17:56
benabik I’ll see if I can reproduce the output thing… But I have to install panda first...
17:57 myfree joined 17:58 myfree left
jnthn [Coke]: What are you trying to do in the project? 17:59
dalek ast: 6ef4a7c | (Elizabeth Mattijsen)++ | S17-concurrency/thread.t:
Fudge thread stress test

Cassifying made it randomly segfault more often
18:01
benabik Hm. 18:02
Less looked fine, but I get “cat: stdout: Resource temporarily unavailable” when trying |cat
And now truncated output without an error. But only intermittently. 18:03
geekosaur ohhh 18:04
18:04 hummeleB1 joined
geekosaur the filehandls is nonblocking, and tty devices and pipes can be slow and need to block 18:04
*filehandle is
[Coke] jnthn: TL;DR - redo github.com/tlily/tigerlily in perl 6
it's a extensible chat client for a chat server that only a few hundred people in the world use. (I'd like to port the bot that I wrote in it to both perl 6 and to IRC) 18:05
so async IO events would be most nice.
18:05 Ven left
[Coke] one day I'll finish a project instead of trying to do 30 diffe -SQUIRREL! 18:08
jnthn geekosaur: I at a guess imagined that that's what github.com/MoarVM/MoarVM/blob/mast...ops.c#L321 is doing 18:11
18:11 treehug88 left 18:12 treehug88 joined
benabik lists.nongnu.org/archive/html/bug-c...00008.html 18:12
geekosaur the question might be whether that's actually doing the right thing at the lowest level (also... literal values for such things?)
benabik It /looks/ like stdout is getting set non-blocking and OS X doesn’t like it.
jnthn geekosaur: I don't know. I didn't put it in there :) 18:14
geekosaur that's not just an os x thing 18:15
benabik From the comment, the code seems to think that setting the flag makes it non-blocking. Evidence suggests that’s not enough.
geekosaur it's every unixlike out there that considers non-blocking an attribute of a ssytem file table entry and not just an individual process's handle
benabik Perhaps setting the flag is enough on Linux but not OS X? Why don’t all platforms just use uv_stream_set_blocking? 18:16
jnthn uv_stream_set_blocking is only implemented on Windows, iirc :/
benabik Ahhhhh...
jnthn So I put it in there and was happy and othrs were like "omg you broke it" :) 18:17
benabik libuv seems to be lacking a bit in “cross platform"
18:18 darutoko left
TimToady well, how hard can it be to add one bit? :) 18:19
benabik uv_stream_set_blocking appears to be in libuv/{include/uv.h,src/unix/stream.c}
_sri famous last words
benabik Ohhhhh.... 18:20
But it’s just an abort in unix. D'oh.
FROGGS benabik: github.com/MoarVM/MoarVM/blob/mast...ops.c#L309 18:21
doesn't this what uv_stream_set_blocking does for Win32?
do*
benabik Judging from effects, no.
FROGGS k
it had effects on my box when I added it though 18:22
IIRC it made a hang go away
benabik FROGGS: Linux?
FROGGS yes
thou It seems the root cause has been found. Good! perl6-j doesn't suffer from the same problem (too late to be useful) 18:25
18:26 dragon_d joined
benabik Well, there appears to be a large amount of `#if defined(__APPLE__)` in libuv. 18:26
I’m not familiar enough with the code here to know what part is going to be important. :-/
18:27 dwarring joined 18:31 grondilu left
benabik Well, error diagnosed. I don’t really have the time to dig further. :-/ 18:31
jnthn To be fair, if we'd just hacked up all the stuff ourselves in Moar, we'd not be more portable. :) And there's not a huge selection of alternatives. 18:32
("We'd not be a lot portable" here meaning "we'd probably be less ortable and have spent longer getting there") 18:33
benabik libuv HEAD has removed the abort from set_blocking in unix. But it just returns an error instead of doing anything useful.
I’m guessing that set_blocking should probably set the flag in most Unix and maybe the Apple specific stuff needs to do something special. If we find a solution it probably should get punted upstream. 18:34
jnthn aye 18:35
18:35 molaf joined 18:38 grondilu joined
timotimo jnthn: are we actually ready for a tristar for this month? 18:39
jnthn timotimo: Well, a bistar at least. 18:40
timotimo parrot and moar?
jnthn timotimo: I got Moar clean on module install and tests.
FROGGS me too 18:41
jnthn FROGGS: Got a recen tJVM report?
timotimo that sounds lovely
FROGGS wait...
jnthn: no, but I can update this tonight: gist.github.com/FROGGS/0ea5537eb675588baaa2
jnthn: you even got DBIish clean?
jnthn FROGGS: Yeah 18:42
FROGGS cool!
jnthn FROGGS: that needed a Rakudo bug fix.
FROGGS ahh
jnthn Well, NQP one
Code-gen fix, of all things... )
18:42 dwarring left
lizmat is glad to see so many Perl 6 talks at PLPW: act.yapc.eu/plpw2014/schedule?day=2014-05-17 18:42
timotimo are there video recordings from GPW available? 18:43
18:44 dwarring joined
jnthn oooh yay, my talk is on day 1 :) 18:44
FROGGS I have a talk on every day \o/ 18:45
timotimo: it seems so... I get the link in a sec
jnthn And not first thing in the morning :)
FROGGS: I was lazy and only submat one. 18:46
FROGGS and I hope that I can show off with CPAN for Perl6 by then... 18:47
timotimo lizmat submat, too
lizmat only once, though
timotimo and stuff like generating executables that will look for the right compunit repo and version and stuff
jnthn :) 18:48
lizmat I wonder if we could have a Perl6 hackathon on the Fri before? 18:49
jnthn I'm pretty sure I can't.
I think I might actually have to fly from somewhere != home to get there.
oh, no. 18:50
lizmat oh no?
timotimo does that mean there actually will be a hackathon? :) 18:51
jnthn My schedule did once have it so I was gonna have to do that.
I guess my "I'll teach that day if you work out how to get me to Poznan that evening" led to me not teaching that day. :)
I'm teaching mon-wed that week.
May have some stuff to do on the Thu. 18:52
But could do an evening flight on Thu or early flight on Fri. 18:53
dalek kudo-star-daily: 0e06f71 | coke++ | log/ (5 files):
today (automated commit)
rl6-roast-data: dc53d16 | coke++ | / (6 files):
today (automated commit)
lizmat would be very nice if all the stakeholders on S11/S22 would be sitting together in the same room :-)
[Coke] yay, rakudo.moar is now the only rakudo with failures. 18:54
benabik yay?
vendethiel 6 perl6 talks ? or is sergot also gonna talk about p6 ?
[Coke] benabik: we've had failures on all 3 for weeks.
benabik [Coke]: Well, it’s an improvement at least. I’d be happier if Moar wasn’t the one with the failures though. ;-) 18:55
jnthn It does also pass the most tests :P
benabik yay! 18:56
jnthn lizmat: Yeah. I think I can make it.
18:57 sjn_ joined
jnthn realizes that he'll be away from home at least half the nights in May. 18:57
sjn_ \o 18:58
jnthn o/ sjn_
lizmat jnthn: looks like that for woolfy and me as well 18:59
19:02 rindolf left
sjn_ jnthn: sitting with one of the guys working on the JavaZone talk schedule; he's asking if someone from #perl6 would like to give a talk. Know of anyone interested? :) 19:02
JVM angle optional but appreciated 19:04
javazone.no/
jnthn Well, you're asking in the right channel... :) 19:07
PerlJam sjn_: Are there often non-Java talks at JavaZone? 19:11
19:11 anaeem1 joined
lizmat jnthn: should this work? 19:15
for (CurrentThreadScheduler, ThreadPoolScheduler) {
$*SCHEDULER = .new;
19:15 bluescreen100 joined
dalek rlito: 66a686c | (Flavio S. Glock)++ | / (6 files):
Perlito5 - rename module Perlito5::Grammar::Regex to Perlito5::Grammar::Regex6
19:15
jnthn lizmat: Maybe; I can't remember if the latter one demands args saying how many thrads. 19:16
*threads
m: ThreadPoolScheduler.new 19:17
camelia ( no output )
jnthn Seems not.
lizmat ok, thanks for the sanity check 19:18
19:18 bluescreen10 left
sjn_ PerlJam: yes, they have several non-java tracks 19:20
lizmat m: say $SCHEDULER.WHAT; say "{$*SCHEDULER.WHAT}" # some scoping issue ? 19:21
camelia rakudo-moar fae1d0: OUTPUT«===SORRY!=== Error while compiling /tmp/yiS0CDIfrQ␤Variable '$SCHEDULER' is not declared␤at /tmp/yiS0CDIfrQ:1␤------> say $SCHEDULER.WHAT⏏; say "{$*SCHEDULER.WHAT}" # some scopi␤ expecting any of:␤ …»
lizmat m: say $*SCHEDULER.WHAT; say "{$*SCHEDULER.WHAT}" # some scoping issue ?
camelia rakudo-moar fae1d0: OUTPUT«(ThreadPoolScheduler)␤use of uninitialized value of type ThreadPoolScheduler in string context␤␤»
sjn_ what they want is interesting talks :)
lizmat hmmm..... I guess not
PerlJam nice. JavaZone++ 19:22
jnthn lizmat: No, just .Str vs .gist
lizmat m: say Int.WHAT; say "{Int.WHAT}" # indeed :-)
camelia rakudo-moar fae1d0: OUTPUT«(Int)␤use of uninitialized value of type Int in string context␤␤»
vendethiel (being able to change $*OUT and $*IN (being able to choose dynamic scoping), like in plt/scheme is a really, really powerful tool) 19:26
r: my $*OUT = ""; say "foo"; # is it STORE ? 19:27
camelia rakudo-moar fae1d0: OUTPUT«Too many positional parameters passed; got 2 but expected 1␤ in method print at src/gen/m-CORE.setting:1051␤ in sub say at src/gen/m-CORE.setting:13554␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-jvm fae1d0: OUTPUT«Too many positional parameters passed; got 2 but expected 1␤ in method print at gen/jvm/CORE.setting:1051␤ in sub say at gen/jvm/CORE.setting:13497␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-parrot fae1d0: OUTPUT«Too many positional parameters passed; got 2 but expected 1␤ in method print at gen/parrot/CORE.setting:1054␤ in sub say at gen/parrot/CORE.setting:13539␤ in block at /tmp/tmpfile:1␤␤»
benabik vendethiel: I think say ‘foo’ is just $*OUT.say ‘foo’
vendethiel benabik: not what I want :-) 19:28
I would like to store in a variable the output
jnthn There's a module for that I think
benabik You want a string buffer then.
jnthn github.com/sergot/IO-Capture-Simpl.../Simple.pm 19:29
that shows how to do it.
vendethiel yep, ty 19:30
19:30 molaf left
vendethiel oh, just .print >_> 19:30
benabik You don’t want say to be $*OUT = something, because then trying to set $*OUT to something to redirect is going to just result in output. ;-)
vendethiel I didn't understand what benabik meant >_>
benabik: what?
benabik vendethiel: .STORE is used when you assign to something. So if say used STORE, redirecting $*OUT would be a pain. 19:31
vendethiel ah, yeah :-).
I'll just override .print :-)
19:42 kaare__ joined, molaf joined 19:56 dragon_d left
hoelzro ugh, I really need to put some time into that Kate syntax file 20:03
20:07 anaeem1 left 20:13 btyler left 20:15 Rotwang left
timotimo yes please :)) 20:19
vendethiel would like a standart highlighting format ... 20:21
20:24 hummeleB1 left 20:27 btyler joined 20:28 havenwood left
dalek rlito: e6b0e42 | (Flavio S. Glock)++ | src5/lib/Perlito5/Grammar/Regex5.pm:
Perlito5 - new module Perlito5::Grammar::Regex5 wip
20:31
sjn_ btw; deadline for submitting talks to JavaZone is April 28th (in a week or so) 20:36
hoelzro vendethiel: I'm thinking of unifying the pygments, kate, and vim highlighting in a single repo 20:38
and possibly generating pieces of each from a common spec
20:40 geekosaur joined 20:41 treehug8_ joined 20:43 treehug88 left
lizmat jnthn: am I correct in understanding that Supply.for will "more" all the values on *each* tap? 20:43
even if a tap is created after another tap has consumed all the "more"s ? 20:44
20:45 kaare__ left
timotimo i don't think it even *can* more values to some taps but not others 20:46
so if you tap something later, it won't be able to send only the first few there again
lizmat there is a test for specifically that, and it passes 20:48
where a second tap doesn't see the first value, and the first tap doesn't see the third value because it closed it before it was "more"d
I sort of expected that for a Supply.for as well, but it seems *that* will generate all values for *each* tap, regardless of when they're started 20:49
I guess in a way it makes sense
it's just that the spec is a little unclear about that (S17:523) 20:50
synopsebot Link: perlcabal.org/syn/S17.html#line_523
jnthn bck from the train
lizmat: Yes, Supply.for gives a cold observable
lizmat jnthn o/
jnthn lizmat: I'm afraid we don't have a Perl 6 name for that concept yet, so I hope you can excuse the Rx one. ;)
lizmat: But your understanding is correct: each time you tap a...hmm...let's call it a cold supply...it sets something in motion that delivers the values. 20:51
lizmat: A "hot supply" works differently; there, the values come and go whether anybody has tapped, and if two things tap they're tapping into the same supply and both getting its values from the point they tap 20:52
lizmat: Examples of hot supply: mouse move events, file change notifications... 20:53
lizmat ok, so maybe I should introduce "hot" and "cold" in the spec?
jnthn We can; I never felt hot and cold were optimal words, though, tbh.
I suspect TimToady++ might find us better ones, with time.
When I first heard the names, they didn't especially give me an intuition of the difference. 20:54
And I still find myself teaching them as just names for things I then need to explain.
"ready supply" is cute but then I wasn't sure which one it'd be :P 20:56
20:59 treehug8_ left, treehug88 joined
lizmat well, sharing and cloning supplies ? 20:59
the cold supply you could consider a clone of a sharing (hot) supply ? 21:00
21:00 colomon left
lizmat maybe better: a "picking" and a "rolling" supply ? like the difference between .pick and .roll ? 21:00
recorded / live supply 21:01
jnthn live or rolling I like.
(for hot)
lizmat on demand / live supply
jnthn picking and recorded feel a bit off
on-demand is better
thou from "it set something in motion", it sounds like "recorded is wrong
jnthn Yeah, "recorded" is more like a ReplaySubject...
lizmat so an "on demand" video vs a "live feed" video 21:02
thou yeah 21:03
lizmat ok, I'll go with "on demand" versus "live" then, for now at least
unless TimToady already wants to chime in?
jnthn yeah. I think "live" is really good. "on demand" feels a tad awkward.
But does match well
"rental supply" :P 21:04
lizmat indeed.. :-)
21:04 kurahaupo left, benabik left, dayangkun left, colomon joined
jnthn I probably shouldn't try for cute naming. Damian already correctly chastised my kxxv enough :D 21:05
lizmat maybe a "type" method on the tap ?
jnthn Well, type is always the wrong word for anything :)
lizmat "live" "on demand"
hehe
jnthn Hmm...occurs to me Rx doesn't, afaik, have an introspection mechanism for that. I wonder if that's for a deep reason, or because it's not useful... 21:06
lizmat point taken... I go at great lengths to please all of you :-)
jnthn Feels like it's most useful in an exploration sense.
Like, "I wonder how this one works" 21:07
Might be useful for an interactive debugger to know.
You can safely tap into a live stream without interfering with it. 21:08
We could just call it "live" and it's a boolean. 21:09
lizmat ok, will take that approach 21:10
jnthn Gee, "we've hit 'peak beard'" is probably the winner of "phrase I never expected to see in a news article" today... 21:12
jnthn gets back to writing his blog post
lizmat jnthn++ :-)
timotimo yays 21:13
jnthn Tomorrow is last day of $dayjob work until after the Dutch Perl Workshop, also :) 21:14
lizmat and the weather is going to get better! :-) 21:15
jnthn It already is better here :)
Was sunny up in Stockholm.
21:17 dayangkun joined
Teratogen hi jnthn 21:17
jnthn o/ Teratogen
Teratogen =) 21:18
[Coke] thinks jnthn probably is top beard on #perl6. 21:19
speaking of SQUIRREL-brain, I just volunteered to replace an actor in a show that starts in five weeks.
lizmat does it have lines? 21:24
nwc10 more bloggage?
tadzik I feel like going to NLPW :)
nwc10 not quite "you wait for ages and 3 come along together"
someone had an *excellent* photo with that caption 21:25
3 oil platforms, in the sea
jnthn nwc10: One of those "it's more optimal for me to write a blog post that might explain my take on something well, than badly explain something again and again" :)
nwc10 but this was in meatspace (and I suspect film), so the Internet cannot provide a version of it
jnthn: aha. About Perl 6, or beer? :-) 21:26
lizmat jnthn: would you consider Supply.interval to be a "live" or an "on demand" tap ? 21:27
jnthn lizmat: Certainly on demand. 21:28
lizmat ok
jnthn lizmat: Becomes clear it needs to be given the interval can vary :)
lizmat: Also because you want the ticks to stop on un-tap
lizmat: For a given usage, anyways.
lizmat this also implies we could cache grep/map/uniq/squish on "on demand" taps 21:29
21:29 kbaker_ left
lizmat hmmm... maybe not 21:29
if they'e like .interval
dalek ecs: 4d7ca45 | (Elizabeth Mattijsen)++ | S17-concurrency.pod:
Elaborate on "on demand" and "live" Supply
21:31
21:31 dragon_d joined
dalek ast: c691297 | (David Warring [email@hidden.address] | integration/advent2012-day03.t:
tweaks (thanks to day 10)
21:32
ast: 0f6ab3d | (David Warring [email@hidden.address] | integration/advent2012-day10.t:
adding 2012 advent day 10
dwarring I've got a PR to pull in a few more advent tests 21:33
github.com/rakudo/rakudo/pull/257
just when someones got a few moments 21:35
21:35 ajr_ left
dalek kudo/nom: 54e6994 | (David Warring)++ | t/spectest.data:
Make advent2012-day04.t a stress test

Takes around 20 sec to run @moar and 1 min @jvm
21:35
kudo/nom: e8ee661 | (David Warring)++ | t/spectest.data:
Also add integration/advent2009-day21.t
kudo/nom: 11c277c | (David Warring)++ | t/spectest.data:
adding integration/advent2012-day09.t
kudo/nom: 8384fcd | (David Warring)++ | t/spectest.data:
Update spectest.data
kudo/nom: d37353f | lizmat++ | t/spectest.data:
Merge pull request #257 from dwarring/patch-1

  spectest.data changes
dwarring thanks lizmat++ 21:36
lizmat yw 21:39
Files=808, Tests=31186, 167 wallclock secs ( 7.67 usr 3.63 sys + 1118.66 cusr 79.16 csys = 1209.12 CPU)
21:40 woolfy left
jnthn Show-off! :P 21:40
47s until a 2-min spectest :) 21:41
21:41 woolfy1 joined
lizmat hehe... yup: waiting for a 16 core MacBook 21:41
:-)
dalek ast: 640c38f | (Elizabeth Mattijsen)++ | S17-concurrency/supply.t:
More deeply test supplies, with both schedulers
21:49
lizmat calls it a day and wishes #perl6 a good night (*) 21:50
(*) wish still meant well where not applicable
jnthn :) 21:51
'night, lizmat++
sjn_ is having a tasty beer at one of the local brewpubs :-9 22:02
22:12 kurahaupo joined 22:13 grondilu left 22:14 havenwood joined 22:20 bluescreen__ joined, benabik joined 22:22 treehug88 left 22:23 bluescreen__ left 22:24 bluescreen100 left 22:27 kurahaupo left 22:33 FROGGS left
tadzik mmm :) 22:35
22:36 dmol left 22:39 FROGGS joined
TimToady thought all supplies were "live", and wonders if "on demand" is just an array in disguise that you can only push values into, and can't remove values except by destroying the whole supply 22:48
and it sounds like a great way to leak memory if you forget to destroy the supply 22:49
a cockpit recorder with an infinite tape, seemingly 22:50
22:51 btyler left 22:52 virtualsue joined 22:53 denis_boyun left 22:56 FROGGS left
retupmoca my new prompt doesn't like Term::ANSIColor - readline thinks all the color escape sequences are printable :\ 22:57
23:02 FROGGS joined 23:07 hoverboard joined 23:19 virtualsue left 23:21 FROGGS left 23:23 benabik left
TimToady well, they are printable, they just don't have width... 23:23
23:24 BenGoldberg joined 23:43 benabik joined
cognominal TimToady is a character with depth. 23:44
segomos a non-null character with depth
23:45 rindolf joined 23:46 FROGGS joined
segomos how do i get warnings like p5, where i get the line #? 23:47
23:48 colomon left 23:49 Mouq joined, colomon joined
Mouq segomos: You mean like how `warn "abcd"` just does $*ERR.say("abcd") in p6 but does say STDERR "abcd at $file line $line"? 23:54
*In p5
23:54 thou left
Mouq std: throw "abcd" 23:55
camelia std e347792: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'throw' used at line 1␤Check failed␤FAILED 00:01 122m␤»
TimToady n: warn "fo"
camelia niecza v24-109-g48a8de3: OUTPUT«fo␤ at /home/p6eval/niecza/lib/CORE.setting line 1389 (warn @ 5) ␤ at /tmp/omI5VerHUs line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4595 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4596 (module-CORE @ 5…»
Mouq Hm 23:56
Niecza++
TimToady looks like niecza++ attempts to
Mouq m: warn "LTA warnings"
camelia rakudo-moar d37353: OUTPUT«LTA warnings␤»
TimToady albeit without weeding out inconsequential frames
23:57 benabik left
TimToady m: CONTROL { .perl.say }; warn "What am I?" 23:58
camelia rakudo-moar d37353: OUTPUT«What am I?␤»
TimToady m: CONTROL { say "HERE"; }; warn "What am I?"
camelia rakudo-moar d37353: OUTPUT«What am I?␤»
Mouq m: say $?LINE
camelia rakudo-moar d37353: OUTPUT«1␤»
TimToady NYI it looks like
Mouq segomos: You can at least cheat using that 23:59
but :(