»ö« 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/s6dwfZGvhXCannot put default on required parameter $addat /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«Nil1» | ||
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«12» | ||
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«12» | ||
timotimo | m: my $foo is parcel; | 10:59 | |
camelia | rakudo-moar 9b9ca1: OUTPUT«===SORRY!=== Error while compiling /tmp/VbyOAISviXCan'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 availableat /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/tmpfileMalformed radix numberat /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/tmpfileUnexpected 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/oTnPfjs8qtNegation metaoperator not followed by valid infixat /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/tmpfileMissing blockat /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/rmhT0LYwBwUnable to parse named parameter; couldnt find right parenthesisat /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/tmpfileUnexpected closing bracketat /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/lTdfjM2RWvBogus statementat /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 failedFAILED 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_1OC0Malformed 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/PFDr2rHY1CMalformed 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/yiS0CDIfrQVariable '$SCHEDULER' is not declaredat /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 1Check failedFAILED 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 :( |