»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
Set by moritz on 22 December 2015.
00:05 vendethiel joined 00:18 rindolf left 00:20 spider-mario left 00:26 vendethiel left 00:42 geekosaur left 00:43 geekosaur joined 00:46 perlawhirl joined 00:51 Herby_ joined
Herby_ \o 00:51
00:52 kapouik_ left
timotimo moritz, the cake has now become birthday cake and is mostly eaten by now 00:56
hello Herby_ 00:57
how are things?
Herby_ same ole same ole, flipping through the Perl6 FOSDEM videos 00:58
you?
AlexDaniel m: say chr 99999999 01:08
camelia rakudo-moar a3422a: OUTPUT«Error encoding UTF-8 string: could not encode codepoint 99999999␤ in block <unit> at /tmp/j9uhWA8w73 line 1␤␤»
AlexDaniel m: say chr 999999999999
camelia rakudo-moar a3422a: OUTPUT«chr codepoint cannot be negative␤ in block <unit> at /tmp/OIi539P3f4 line 1␤␤»
AlexDaniel m: say chr 999999999999999999999999999
camelia rakudo-moar a3422a: OUTPUT«Cannot unbox 90 bit wide bigint into native integer␤ in block <unit> at /tmp/ivY0styH6D line 1␤␤»
AlexDaniel jnthn: it looks like your fix improved this bug: rt.perl.org/Ticket/Display.html?id=125817 01:09
rudi_s Lets say I have file which starts with unit class Foo::Bar and I have a sub declared in that filter aftwards. Is it possible to call that sub without always importing it in the namespace of all users? 01:10
(is export works, but I don't want to pollute the caller namespace and just call that one sub.) 01:11
s/in that filter/in that file/
timotimo Herby_: thinking about what's next with my SDL2 binding 01:18
i should write some docs - even though most stuff should be straight copy-pasted stuff from the official sdl2 documentation, i suppose 01:19
01:21 geraud left
timotimo hm. maybe i'll bind a few extra libraries, like SDL_gpu 01:22
it claims to support shaders, which is nice 01:25
and arbitrary textured triangles
01:26 geraud joined 01:28 sortiz joined
sortiz \o #perl6 01:28
rudi_s, If the sub is declared our, can be used as Foo::Bar::subname() without importing, (you need 'need Foo::Bar' any way, to load the unit) 01:30
Herby_ sortiz: o/ 01:31
01:39 BenGoldberg joined 01:41 Actualeyes joined 01:55 labster left 01:59 cbk joined
timotimo Herby_: have you ever tried graphics programming? 02:01
02:01 FROGGS_ joined
Herby_ can't say i have. i was looking up info on that sdl2 library you mentioned 02:02
whats the gist of it?
timotimo the gist is that it lets you access input and output functionality of a whole bunch of platforms with a unified API 02:03
Herby_ sounds helpful :)
timotimo it lets you get events from keyboards, mice, gamecontrollers and joysticks, but also touch screens on android phones 02:04
geekosaur in theory at least
timotimo it lets you output graphics on the screen with a simplified API that can handle directx and opengl
02:04 Ben_Goldberg joined
timotimo and it also lets you output audio with a very limited featureset 02:04
02:05 FROGGS left
timotimo SDL is what powers the rather popular pygame library 02:05
geekosaur (sdl2 input event handling has been annoying the **** out of the dcss devs because there's so many special cases and magic required to work on android+osx+linux+windows)
timotimo oh well :|
you can opt out of using any of those subsystems and drop in something custom if you like 02:06
02:06 BenGoldberg_ joined, BenGoldberg left
timotimo there's a library that is compatible/similar to the SDL api called SDL_gpu that lets you access some more advanced functionality compared to SDL2's own "renderer" module. like shaders 02:07
there's SDL_mixer which is for supporting playing and mixing multiple sounds at the same time
SDL_image handles reading a whole bunch of different image formats
dunno what else is there. SDL_ttf i guess for font rendering 02:08
and SDL_net for TCP and UDP sockets
02:08 kalkin-__ joined, BenGoldberg joined
timotimo i'm going to bed nao 02:08
good night!
Herby_ night! 02:09
02:09 Ben_Goldberg left 02:11 BenGoldberg_ left
dalek Heuristic branch merge: pushed 20 commits to rakudo/repl6 by hoelzro 02:11
02:12 kalkin-_ left 02:15 kid51 left 02:37 labster joined 02:38 AlexDaniel left 02:45 ilbot3 left 02:46 Herby_ left 02:47 ilbot3 joined 02:49 molaf__ joined 02:51 vendethiel joined 02:53 molaf_ left 02:56 sftp left 02:58 sftp joined 02:59 notbenh left 03:01 anaeem1_ joined, anaeem1_ left 03:07 keix left 03:12 chee joined 03:14 junpa joined 03:16 vendethiel left 03:38 Actualeyes left 03:39 noganex_ joined 03:42 noganex left 03:48 notbenh joined 03:54 junpa left 04:00 tmch left 04:07 yqt left 04:17 MadcapJake joined, MadcapJake is now known as MadcapJake_, MadcapJake_ left, munja joined 04:18 MadcapJake joined 04:20 MadcapJake left, MadcapJake joined 04:22 munja left 04:34 sammers left 04:46 molaf__ left 04:53 BenGoldberg left 04:58 rvchangue joined 05:08 Actualeyes joined 05:09 khw left 05:39 skids left 05:48 Cabanossi left 05:51 Cabanossi joined 06:01 TEttinger left 06:03 wamba left 06:08 salv0 left
dalek kudo/nom: 802a6db | FROGGS++ | src/core/Version.pm:
fix a very weird precomp/BEGIN-use bug

I cannot explain how, but it fixes:
  $ perl6 --target=mbc --output=/dev/null t/spec/packages/RT125090.pm
  ===SORRY!===
Missing serialize REPR function for REPR NativeRef
06:10
kudo/nom: e57a006 | FROGGS++ | src/core/Version.pm:
micro-optimize Version.new

Since we already have a low level string array and want a low level string back, we can just use nqp::join.
kudo/nom: 42fb81d | FROGGS++ | src/ (2 files):
throw X::Method::NotFound for *(42) (RT #127408)

So instead of say that:
   Cannot find method 'CALL-ME'
It now hints at the type:
   No such method 'CALL-ME' for invocant of type 'Whatever'
06:13 Actualeyes left 06:20 FROGGS_ left 06:27 sortiz left 06:29 sortiz joined 06:32 cbk left 06:37 perlawhirl left 06:41 musiKk_ joined 06:45 JimmyZ joined 07:03 CIAvash joined 07:05 emdashcomma joined 07:10 ChoHag_ joined
[Tux] test 20.984 07:14
test-t 13.716
csv-parser 50.269
07:15 sortiz left, noganex_ left, dj_goku_ left, Azry_ left, sivoais left, masak left, rntz left, Celelibi left, inokenty left, ChoHag left, jantore_ left, kshannon left, sortiz joined 07:16 dj_goku_ joined, Azry_ joined, sivoais joined, masak joined, rntz joined, inokenty joined, jantore_ joined, kshannon joined, jast joined, sjn joined, avar joined, literal joined, noganex joined, jervo joined
[Tux] note that I updated my system yesterday with a new kernel (3.11 -> 3.12) due to security fixes 07:16
07:16 Celelibi joined 07:17 vendethiel joined 07:18 domidumont joined 07:20 wtw joined 07:23 domidumont left 07:33 nakiro joined 07:36 firstdayonthejob joined 07:42 vendethiel left 07:43 nakiro left 07:45 FROGGS joined 07:46 vendethiel joined 07:52 nakiro joined 07:54 fireartist joined 07:56 ufobat_ joined 07:57 domidumont joined 08:01 ufobat_ is now known as ufobat
masak morning, #perl6 08:05
08:07 darutoko joined, vendethiel left
FROGGS morning masak 08:08
08:11 salva joined 08:19 maybekoo2 joined 08:21 RabidGravy joined, FROGGS left 08:23 sjoshi joined, FROGGS joined, zakharyas joined
RabidGravy HARR 08:24
masak m: my %h1; %h1<foo> = 1; my %h2 := %h1.clone; %h2<bar> = 2; say %h1
camelia rakudo-moar 42fb81: OUTPUT«bar => 2, foo => 1␤»
masak ah, yes. thought so.
moritz: see? :)
sortiz \o #perl6
masak submits rakudobug
08:26 pdcawley_ left
moritz m: my %h1; %h1<foo> = 1; my %h2 = %h1.clone; %h2<bar> = 2; say %h1 08:28
camelia rakudo-moar 42fb81: OUTPUT«foo => 1␤»
08:28 pdcawley joined
moritz masak: I see 08:28
the fact that one often uses hash assignment (which copies) seems to shadow this bug from every day observation 08:30
masak pretty sure this one is a regression. 007 has had code based on Hash.clone for a long while to indicate "and now we enter a new scope" 08:34
the bug manifests in the fact that old variables don't go away when we leave a scope
moritz star-m: my %h1; %h1<foo> = 1; my %h2 := %h1.clone; %h2<bar> = 2; say %h1
camelia star-m 2016.01: OUTPUT«bar => 2, foo => 1␤»
masak moritz: reason I didn't simply use hash assignment is that in my case, the hash was in an array.
08:35 abraxxa joined
moritz masak: noted 08:35
moritz wonders if a simple method clone in class Hash or Map helps 08:36
masak this is one of those bugs that I'm quite sure I'll be able to work around :)
moritz m: say Hash.^mro
camelia rakudo-moar 42fb81: OUTPUT«((Hash) (Map) (Cool) (Any) (Mu))␤»
08:37 firstdayonthejob left
masak m: my %h1; %h1<foo> = 1; my %h2 = %h1; %h2<bar> = 2; say %h1 08:37
camelia rakudo-moar 42fb81: OUTPUT«foo => 1␤»
08:41 jack_rabbit joined
masak rt.perl.org/Ticket/Display.html?id=127704 08:43
sortiz Now that DBDish returns Failure on errors, I would like to remove the perl5-ism '0E0'. Opinions?
moritz +1
08:46 Actualeyes joined 08:48 FROGGS left
RabidGravy Hmm takes ~ 9msecs to copy a 2048 element CArray, probably could do with it being at least twice as fast 08:48
08:49 FROGGS[mobile] joined
RabidGravy perhaps interestingly it takes ~ 1msec longer to copy int16s than num32s 08:52
08:54 jack_rabbit left
RabidGravy which is a tad annoying because lame encodes shorts faster than floats 08:54
moritz maybe because the fetches aren't aligned? 08:59
nadim Good morning. I'd like some input on the output of DDT diff. When dumping data, if something was already rendered, it is not shown again; but when displaying a diff that gives this sort of output imgur.com/AH463A2
In the best of worlds, what would you have liked to see, keeping in mind that this can get out of hand dissplay wise. 09:00
masak nadim: that's nice and colorful, but I'm not sure what it is I'm seeing
oh, the slashes separate got and expected?
09:01 rindolf joined
nadim there qre two dumps, left and right, and a column which displays what the relationship is between each row. === sme object, eqv, ~ same type, r (in this case) data only fund on the right side 09:04
each data dump, is complete on its own, the diff just synchronizes the display rows 09:05
masak nice 09:06
I like what you're doing
the format is not totally self-evident, but easy enough to read after your explanation
nadim I'll work more on the "diff column' it's just for Nadim-purpose right now. 09:07
RabidGravy gah, the problem with these microbenchmarks is that it very quickly gets lost in noise
nadim the "problem" here is that on the right 'B' is not displayed because it was displayed before, so we don't see the relationship with the B on the left side. 09:08
09:09 FROGGS[mobile]2 joined 09:10 FROGGS[mobile] left
FROGGS[mobile]2 nadim: I'm so used to unified diffs that I expect something similar for data too 09:12
nadim FROGGS[mobile]2: so 80's ;) 09:22
09:23 dakkar joined, salva left
masak I think I'm with FROGGS on that one. though I'm always willing to be convinced otherwise ;) 09:26
with hierarchical data it sure seems that one could do better
FROGGS[mobile]2 well, I basically want quickly see the diff, and not want to see what's eqv, I guess 09:27
09:30 salva joined
nadim That's another story. And I agree that there is no point in seeing 10 000 lines of equivalent data. but it's very easy to fold those lines in the diff-dumper, I'll make that optional, and maybe default too. 09:33
09:33 araujo joined
FROGGS[mobile]2 I guess the tricky thing is to also show eqv stuff nearby, like diff -u does 09:41
so you get a feeling of the context 09:42
nadim yes in something that streams output, going back is not the simplest thing to do. Context downwards is very easy on the other hand. 09:43
the problem is to be able to dump the data without taking an eon.
FROGGS[mobile]2 yeah
09:47 telex left
nadim hmm, I lied, it's easy to have a minimal context back, what is difficult is to have all the glyphs right but if one can be contented with a '...' in between the context lines and the data that needs to be displayed, then it is easy, fast, and looks good. I want this to be pleasing to the eye and easy on the brain. 09:47
09:48 telex joined
nadim thank you both for the input, I have a few days of work in front of me for what I wrote down. But after the hollidays! Yeah! 09:48
09:56 maybekoo2 left 10:04 ely-se joined 10:14 maybekoo2 joined 10:17 kent\n left, |Tux| left 10:24 |Tux| joined 10:26 jargan joined, jast left 10:27 kent\n joined, kent\n left, kent\n joined 10:29 nakiro left, jargan is now known as jast 10:32 nakiro joined, tmch joined 10:33 tmch left 10:37 vendethiel joined 10:38 azawawi joined
azawawi hi 10:38
what's the difference between OpaquePointer and Pointer?
and how do i explicitly convert from Int to uint32 10:39
RabidGravy first one, they are actually basicaly the same, second one for most part you shouldn't need to 10:43
but 10:45
m: my $a = uint32.new(10); say $a.WHAT
camelia rakudo-moar 42fb81: OUTPUT«(uint32)␤»
jnthn o.O
m: my $a = uint32.new(10); say $a
camelia rakudo-moar 42fb81: OUTPUT«This representation (P6int) cannot unbox to other types␤ in block <unit> at /tmp/Drv6Ok3cfl line 1␤␤»
RabidGravy *but* unless you have very specific reasons for doing so you probably don't
jnthn That...really should not work 10:46
(the uint32.new)
It's a native type, not an object type
RabidGravy yeah
jnthn So you'll probably never get the value out again
RabidGravy I was a little surprised
jnthn Suspect it's an accident...
sortiz m: dd Buf[num32].new; # btw jnthn , I think that this is another "accident", no? 10:49
camelia rakudo-moar 42fb81: OUTPUT«Buf[num32].new()␤»
jnthn sortiz: Hmm...I think Bufs may be assuming native integer contents :) 10:50
In various places
sortiz Yes.
jnthn And given they're meant to be for binary strings, I don't see a use case for the num parameterization
So I'd say we want to error out on that, yeah
Use my num32 @foo for that :)
sortiz Or array[num32] if needed, no? 10:51
jnthn Yeah, that's the same thing :)
Just another way to spell it 10:52
Useful if you want an anon one for some reason
azawawi RabidGravy: thanks 10:53
sortiz So, Blob/Buf only for integer types. Correct?
azawawi RabidGravy: so Pointer replaces OpaquePointer with no problem, right?
RabidGravy: what's OpaquePointer then?
RabidGravy: an old code?
sortiz azawawi, You need Pointer when need to dereference it, and OpaquePointer when never be dereferenced. 10:55
RabidGravy yeah, though in reality they are the same type
my constant Pointer is export(:types, :DEFAULT) = NativeCall::Types::Pointer;
my constant OpaquePointer is export(:types, :DEFAULT) = NativeCall::Types::Pointer; 10:56
jnthn sortiz: Yeah
azawawi got it 10:57
jnthn azawawi: OpaquePointer dates back to the very earliest days of NativeCall; it was probably left there for back-compat
jnthn suddenly realizes that "very earliest days of NativeCall" are now over 6 years ago 10:58
azawawi what about TransparentPointer? :)
jnthn Well, Pointer kinda became that, given you can actually get the place it points :) 10:59
azawawi that the first thing that i thought when i read "OpaquePointer"... Transparent
jnthn The point of it was that you didn't know what is behind it though
And should treat it just as a black box that you pass around 11:00
11:01 vendethiel left, FROGGS[mobile]2 left
azawawi jnthn: cool 11:02
11:02 kid51 joined
arcetera aight 11:02
now how exactly am i supposed to use forms with perl6 libcurl bindings
whatever way i'm doing it i'm doing it wrong
azawawi arcetera: have you recently submitted a bug with a script? 11:03
arcetera that me
azawawi ix
?
arcetera that me
azawawi cool
arcetera thanks btw 11:04
RabidGravy BTW, I did a quick survey of other http client modules and at least two support exactly that pattern
azawawi arcetera: panda install Net::Curl --force # to install it again
arcetera i did
now the problem is i'm doing smth wrong with the form or my key's fucked
hold up
11:05 espadrine joined
azawawi arcetera: and use _curl_easy_setopt 11:05
RabidGravy ooh
11:05 wamba joined
arcetera i did 11:05
now the problem's a 403 11:06
RabidGravy well, that's "client error"
azawawi 403 - Forbidden
RabidGravy you have the authentication wrong
arcetera hmm 11:07
azawawi arcetera: re github.com/azawawi/perl6-net-curl/issues/14 . I guess you need to uri escape tokens and data
arcetera uri escape?
gregf_ hi, i've installed Inline::Ruby using panda. how can i read the docs please *i've googled* 11:08
perl6 --doc Inline::Ruby throws and error
azawawi arcetera: "key=$oopskey" looks like the problem
arcetera ah
probably
RabidGravy okay just for fun in my quest for micro-optimisation in dealing with CArrays I implemented "copy this CArray to a new one" using some nqp
arcetera going by vim's syntax highlighting probably isn't the best idea
RabidGravy gregf_, p6doc?
gregf_ i've installed perl6doc as well
RabidGravy: i have 11:09
azawawi arcetera: use atom + atom-perl6-editor-tools :)
RabidGravy p6doc Inline::Ruby do anything?
gregf_ nope
arcetera don't particularly like atom
i'm very used to vim
but that's beside the point
gregf_ did you mean: pydoc' from package 'python *the error says*
arcetera "key={$oopskey}"?
RabidGravy anyway, how much faster do we think it is?
gregf_, that doesn't appear to be a Perl 6 error message 11:10
the p6doc isn't in your path
gregf_ RabidGravy: yeah, i installed it using panda 11:11
11:11 zhmylove left
gregf_ RabidGravy: is there a way to ask panda to give all the modules installed locally? 11:11
11:11 ely-se left
gregf_ panda list --installed or panda list --local or something similar 11:12
RabidGravy I don't think it does
gregf_ ok, nevrmind. its unable to find the binary. but i did a reinstall and it happily goes ahead and installs it :| 11:13
RabidGravy there are ways of obtaining this information
oh wait there is "panda list --installed" 11:14
gregf_ yeah, tried that :| no joy
11:15 zhmylove joined
RabidGravy because of course it should be "panda --installed list" 11:16
which works here fine
gregf_ :/
11:16 sjoshi left
gregf_ RabidGravy: p6doc [installed] 11:16
azawawi arcetera: use URI::Escape; $oopskey = uri-escape($oopskey); # remember ofcourse to 'panda install URI'
gregf_ whereis p6doc does not show anything :| 11:17
RabidGravy right, so it's not in your PATH
gregf_ anyways, let me try and figure it out. you guys have better things to work on
yeah, but i thought panda would do that bit for me :)
RabidGravy it can't alter your path 11:18
find where the p6doc is, add that directory to your PATH
gregf_ *like finding a needle in a haystack* 11:19
RabidGravy I think that one of panda or rakudobrew actually says which path should be added when its done installing
gregf_ RabidGravy: Thanks!
RabidGravy locate, find, "guesswork" thousands of ways to find it
gregf_ panda installs the modules in a very hidden place *sobs*
find /home/gregf/.rakudobrew/ -name \*.pm | grep -i Ruby *doesnt work* 11:20
one last question
where does panda install modules: is it ~/.rakudobrew?
arcetera uri-escaping $file and $oopskey results in the 403 once again 11:21
gregf_ i can tell Perl5 local::lib to install libs quite easily. so is the case with rvm as well and pip :|
arcetera perhaps it's the syntax "file=@$escfile" in the form
azawawi arcetera: escape everything :) 11:22
RabidGravy it is something like "~/.rakudobrew/moar-nom/install/share/perl6/" assuming you had rakudobrew install to the default location
though this is unlikely to help
arcetera azawawi: I still don't understand 11:23
well I have to go for now 11:24
nine arcetera: niner.name/talks/A%20look%20behind%...rl%206.pdf
arcetera: page 20 and following
azawawi arcetera: it is post right? 11:25
arcetera yes
lemme sprunge the code
azawawi arcetera: curl_easy_setopt($curl, CURLOPT_POST, 1); # :)
arcetera sprunge.us/ZMKV
azawawi arcetera: _curl_easy_setopt($curl, CURLOPT_POST, 1); # :)
arcetera oh
azawawi arcetera: so it worked? 11:26
gregf_ RabidGravy: is there something similar to @INC in Perl6? or PERL6LIB 11:27
arcetera azawawi: at this point it's beginning to look something more on spencer's end 11:28
so i'll pester him
anyway, \o for now
azawawi arcetera: have fun
gregf_ er, thats looks like PHP :|
RabidGravy anyway, so no takers on guessing how much faster doing the equivalent of "my $c = CArray[num32].new; $c[$_] = $f[$_] for ^2048" is when implemented in nqp? 11:29
jnthn RabidGravy: I'd guess factor of 5-10
RabidGravy: Depending how you wrote the NQP :) 11:30
RabidGravy yeah ~5 times
nine gregf_: niner.name/talks/A%20look%20behind%...rl%206.pdf page 20 and following 11:32
RabidGravy which puts it in the ballpark for being able to copy a buffer of frames from a portaudio stream
nine gregf_: then there's PERL6LIB, RAKUDOLIB, -I and use lib "foo/bar"
11:34 sjoshi joined
RabidGravy 0.0104005183413078 vs 0.00253606253412554 on the faster machine, it's strangely 4x slower on another machine 11:35
jnthn RabidGravy: What are you copying from? 11:36
11:37 azawawi left, rindolf left
gregf_ nine: thats quite helpful.Thanks! 11:38
nine: so does panda use the same repository pattern?
11:38 labster left
RabidGravy well I'm passing a CArray of audio frames from Portaudio -> LameMP3 -> Libshout, it goes wonky after a while - I suspect because the original CArray is getting messed with while LameMP3 is still using part of it 11:38
so I want to try copying it before passing it to lame to see if that helps
obviously "wonky" is not a very useful technical term but it seems like lame starts to struggle and then completely gives up creating complete mp3 frames 11:40
nine gregf_: yes 11:41
RabidGravy which seems to be a function of the number of buffer loads it has seen
jnthn RabidGravy: That'd benefit a lot from me getting around to designing the memcpy-ish thingy :)
nine gregf_: the actual installation is done by rakudo. Panda does the downloading building and testing
gregf_ nine: ok, ta 11:44
11:45 kid51 left
timotimo gregf_: if i want to know where the documentation of some perl6 module is, i go to modules.perl6.org and click through to the repository from there 11:46
RabidGravy jnthn, yes it would, at "normal" audio settings there's only about 20ms to do the whole thing
timotimo i.e. github.com/awwaiid/p6-Inline-Ruby 11:47
11:47 rindolf joined
RabidGravy I've actually taken to doing a perl6 --doc=Markdown .... to create a separate .md file of documentation for that case recently 11:53
gregf_ timotimo: well, i usually prefer the command line :|
timotimo: but thanks for letting me know. i'll read from there for now 11:54
timotimo in that case, "panda look" will clone the repo and drop you in the shell
inside the repo
when you close the shell, the repo will be deleted again
gregf_ oh, a repl?
11:54 kaare_ joined
gregf_ *tries 11:54
hmm, it does something but .. in the background :( 11:55
timotimo: is there a default location for all repo's (i mean those created on the file system)
timotimo it does something. then you "ls" "pwd" 11:57
as i said. it'll clone the repo and drop you in the shell
gregf_ ah - yes
timotimo not "the perl6 shell", just "the shell"
gregf_ right 11:58
RabidGravy yep and that definitely works
12:01 zakharyas left 12:04 fireartist left 12:20 pmurias joined
pmurias hi 12:20
dalek kudo-star-daily: e2d984e | coke++ | log/ (9 files):
today (automated commit)
12:24
12:25 travis-ci joined
travis-ci NQP build failed. Will "Coke" Coleda 'Make MoarVM more prominent than the Parrot VM' 12:25
travis-ci.org/perl6/nqp/builds/115371602 github.com/perl6/nqp/compare/3242d...1118196e03
12:25 travis-ci left
[Coke] ^^ I literally just changed the README. 12:28
RabidGravy suUUUuuuuure
;-)
12:32 musiKk_ left, wamba left, Skarsnik joined 12:37 maybekoo2 left 12:38 tmch joined
hoelzro o/ #perl6 12:48
I think that I'm pretty much "done" with the REPL6 work; I'm going to hold off on merging until after 2016.03 is out 12:52
please try out the the "new" REPL on the repl6 branch
masak hoelzro: will do! very exciting! 12:58
domidumont arcetera: I can answer your packaging question on #perl6-toolchain
masak in 007, I just found a new kind of "technical debt" that I didn't know we had 12:59
sometimes calls have to "match up", like braces do
like, we have <newpad> and <finishpad> in the grammar
but there's also <newpad> in the grammar and .finish-block in the Actions
that's harder to get right, because there's always physical distance between those calls -- it's a "nonlocal" invariant that needs to be upheld 13:00
(and we had forgotten it in two places, which led to bugs)
I'm always eager to write "code tests" for things like this in the 007 test suite. we've had good experiences with this so far
in this case, I'm just *itching* to do it on the Perl 6 AST, not on the program text 13:01
is there a way to do that yet? pretty please. Perl 6 has awesome grammars, including for parsing Perl 6. can we get the AST for a Perl 6 source file in Perl 6 yet?
13:02 avenj left
masak if it's not possible to do yet... I guess I'll throw together some goodenuf text-based matching... *sigh* :) 13:02
jnthn masak: Sure you can *get* it, it just may not be so pleasant to work with.
masak do I need to switch it on using MONKEY_SEE_NO_NQP or something?
sorry, MONKEY-SEE-NO-NQP 13:03
:P
jnthn m: use nqp; dd nqp::getcomp('perl6').compile('say 42', :target('actions'))
camelia rakudo-moar 42fb81: OUTPUT«===SORRY!===␤Unknown compilation target 'actions'␤»
jnthn m: use nqp; dd nqp::getcomp('perl6').compile('say 42', :target('ast'))
camelia rakudo-moar 42fb81: OUTPUT«===SORRY!===␤compunitmainline requires an MVMCompUnit␤»
jnthn hmm :)
masak .oO( "see, it works:" -- *BOOM* -- "hmm :)" )
jnthn heh, it's not like I use this API often, this is just guessing from memory :) 13:04
masak yeah -- sorry, I shouldn't tease so 13:05
anyway, if it's approximately as you say above, then I think I can do something nice with it
I'm quite good at wrapping things away into local helpers :>
jnthn m: use nqp; dd nqp::getcomp('perl6').compile('say 42', :target('ast'), :compunit_ok) 13:06
camelia rakudo-moar 42fb81: OUTPUT«Method 'dispatch:<.?>' not found for invocant of class 'QAST::CompUnit'␤ in block <unit> at /tmp/Mt4TIzHM7V line 1␤␤»
jnthn OK, that get's you a QAST::CompUnit
m: use nqp; say nqp::getcomp('perl6').compile('say 42', :target('ast'), :compunit_ok).dump
camelia rakudo-moar 42fb81: OUTPUT«- QAST::CompUnit :W<?> :UNIT<?>␤ [pre_deserialize]␤ - QAST::Stmt ␤ - QAST::Stmt ␤ - QAST::Op(loadbytecode) ␤ - QAST::VM ␤ [jvm]␤ - QAST::SVal(ModuleLoader.class) ␤ [moar]␤ …»
masak \o/
jnthn m: use nqp; my $foo = nqp::getcomp('perl6').compile('say 42', :target('ast'), :compunit_ok); say $foo.^name
camelia rakudo-moar 42fb81: OUTPUT«QAST::CompUnit␤»
jnthn If only somebody would design a nice Perl 6 AST. We could call them QTrees :P 13:07
masak it says something about 007's progress that my first reaction is "oh, right, QAST! heh, Q is so much nicer to work with..." :P
nine wonders if this could be a way around the EVAL precomp problem. Yet this would be an extreme measure for a non-extreme situation...
masak by the way, I've also laid claim to the L:: namespace without anyone noticing :P
jnthn nine: Or we could try and fix that... :)
nine: Maybe by having EVALs done at compile-time just use the SC of the currently being compiled thing 13:08
nine jnthn: well since people will be bitten by it and then blame precomp (rightfully for a change), I'd be all for fixing :)
masak 's law of cool consonants: masak gets all the cool consonants
jnthn nine: Well, if the above solution makes sense to you, feel free to try doing it. ;) 13:09
nine jnthn: what do you figure are my chances of actually succeeding?
jnthn nine: Fairly high
nine: Because there's a lot of precedent. 13:10
13:10 cdg joined, cdg left
nine Ok...regardless, you made me curious, so I would have tried anyway :) 13:10
jnthn nine: For example, EVAL already passes along things like the current package and curernt outer scope for use by the compiler.
nine yep
13:10 cdg joined
jnthn nine: And the SC creation happens along the same codepath 13:10
Your main challenge is "just" a way to detect that we're currently running BEGIN-time code of something that we're pre-compiling 13:11
And being able to inherit that SC
nine $*W && $*W.is_precompilation_mode()?
jnthn Yeah 13:12
Something like
You may even be able to escape changing EVAL
nine If that's the main challenge, then I'm almost done ;)
jnthn And looking for the previous $*W
Yeah
In this case, thinking up a possible solution was the hard part ;) 13:13
(Looking for the existing one in TOP or so, I meant)
13:15 keix joined
[Coke] reminder, 2016.03 due this weekend. 13:15
jnthn OK. I've one regression RT that I should look at before then (will take care of it this week) 13:16
Not a strict 6.c regression in that it didn't bust any spectests, alas. 13:17
I'm planning to work mostly on the heap profiler this week, so won't have any sizable changes going into anything besides that.
13:18 zakharyas joined
jnthn (Other stuff will be picking off some more smaller but needing-fixing bugs in RT) 13:18
13:19 sortiz left 13:24 sortiz joined 13:25 perlpilot_ is now known as perlpilot 13:34 CIAvash left 13:37 Ven joined 13:38 vendethiel joined 13:43 skids joined
RabidGravy okay I've pared this down to the absolute bare bones necessary to get it working and it's still not fast enough 13:49
so no live streaming from Perl 6 this week 13:50
13:56 sortiz left 13:57 aborazmeh joined, aborazmeh left, aborazmeh joined 14:02 vendethiel left, salva left, gtodd1 left
pmurias masak: it seems like we need a module in the ecosystem for parsing Perl 6 into QAST/match tree as it's a fairly common question 14:05
masak pmurias: agreed!
I'll see what I can do :)
14:06 [Tux] left
jnthn Please note on that module that QAST can change over time and we're not bound to support code building upon it. 14:07
(So if we break modules using it, well, tough luck.)
pmurias thank god we are not bound to supporting QAST compatibility ;) 14:08
jnthn Yeah. I mean, in reality it is pretty stable. 14:09
And I don't see huge changes.
perlpilot
.oO( This is Rakudo version 2016.03 built on MoarVM version 2016.03 implementing Perl 6.c using QAST version 2016.03 )
jnthn But there'll surely be some :)
perlpilot Include the NQP version and Rakudo's version information can get really long :)
masak jnthn: noted -- lack of backwards compat sounds like something one might mention in the README of such a module 14:10
14:11 MadcapJake` joined
MadcapJake` what's the difference between "last parameter to the left" and "last parameter to the right" in the ==>/<== documentation doc.perl6.org/language/operators#Se...Precedence 14:12
perlpilot MadcapJake`: I don't understand the question. The difference is the directionality. 14:13
MadcapJake` last parameter to the left is incredibly obtuse 14:14
does that mean "first parameter"
perlpilot MadcapJake`: Maybe if it talked about data flow and said ==> flows rightward, <== flows leftward ?
MadcapJake` ok then i really don't follow
what is directionality with parameters? 14:15
RabidGravy m: my @a <== <a b c d>.map(*.uc)
camelia ( no output )
RabidGravy m: my @a <== <a b c d>.map(*.uc); say @a 14:16
camelia rakudo-moar 42fb81: OUTPUT«[A B C D]␤»
perlpilot Aye, perhaps it should just not say anything about "parameters"
RabidGravy m: my @a; <a b c d>.map(*.uc) ==> @a; say @a
camelia rakudo-moar 42fb81: OUTPUT«[A B C D]␤»
MadcapJake` oh it has to do with which direction the result passes to
i was thinking it was like a relative of the thread-first/thread-last operator 14:17
(in clojure)
RabidGravy yeah, "parameter" is thinking about it as the infix operator definition rather than how people actually see it
14:17 pmurias_ joined
MadcapJake` so is it always given as the last parameter of whatever it passes to? 14:18
i.e., whichever direction it passes to?
yeah i think that's what is meant by "last parameter to the X" 14:19
are the commas really needed in the `<==` example? 14:20
dalek p: b07b852 | (Pawel Murias)++ | src/vm/js/Compiler.nqp:
[js] Turn static variables lookup into a direct access to the wvalue instead of a javascript lexical.
p: b864add | (Pawel Murias)++ | src/vm/js/Compiler.nqp:
[js] When compiling a block for use while it's outer block does not yet exist stub the context with a null.
p: b1066ad | (Pawel Murias)++ | src/vm/js/Compiler.nqp:
[js] When compiling a block for use with it's missing outer import stuff from the setting.
p: b335a00 | (Pawel Murias)++ | src/vm/js/bin/run_tests.pl:
[js] Pass test 24.
14:21
14:21 pmurias left 14:33 Ven left
RabidGravy I'm in a quandary about what to do with Audio::PortAudio, I don't think that it's usable for some percentage of uses at the time being 14:35
so playing audio from a file, recording to a file good, doing anything more complicated with input or output won't fly because not fast enough 14:36
14:36 Ven joined
RabidGravy I dare say if one stripped back even more of the code to just bare native subs then maybe, but at which point one may as well just not use Perl at all 14:37
llfourn RabidGravy: =( 14:38
14:39 sjoshi left
perlpilot RabidGravy: re not fast enough, is there a moderately complicated script you could put together as a benchmark? It might be a good litmus test for any future speed improvements (and give jnthn et alia something to profile when looking for things to optimize) 14:41
RabidGravy so I'm wondering whether to release it anyway in the expectation that either "something" will get faster or someone will come up with a silver bullet
14:42 Ven left
MadcapJake` my @res = sort <== grep { /<[PE]>/ } <== map { .tc } <== qw{people of earth}; @res.say 14:43
m: my @res = sort <== grep { /<[PE]>/ } <== map { .tc } <== qw{people of earth}; @res.say
camelia rakudo-moar 42fb81: OUTPUT«5===SORRY!5=== Error while compiling /tmp/oEj4FAPYh6␤Unable to parse expression in quote words; couldn't find final '>'␤ ␤at /tmp/oEj4FAPYh6:1␤------> 3 .tc } <== qw{people of earth}; @res.say7⏏5<EOL>␤ expecting any of:␤ …»
MadcapJake` that's the `<==` example
RabidGravy perlpilot, not really, inasmuch as this is pretty fundamental, crossing the native/perl boundary and method dispatch is just not consistently giving me the less than 20msecs I need
14:44 aborazmeh left, Ven joined
jnthn Making such fundamentals faster is a good bit of what I'm working on (thus why object accessors already got a good speed-up, and object construction is fairly high on the list) 14:45
Making native calls themselves faster also is on the todo list, but depends on the MoarVM expression JIT work.
Or at least, making them really fast does.
RabidGravy it seems that the loop at github.com/jonathanstowe/Audio-Por...source#L89 slows down 14:47
14:47 Ven left
MadcapJake` how come I can't get `<==` to work at all? 14:47
llfourn always thought that YMMV with <== and ==> 14:48
MadcapJake` so maybe this should be experimental then 14:49
moritz MadcapJake`: feed are mostly NYI
MadcapJake` yeah `<==` seems to be confused by the parser as the start of a quote word construct 14:50
jnthn RabidGravy: Shoving an nqp::say(nqp::time_n()) or so at the top of the loop produces data to support "slows down"? 14:51
skids MadcapJake: was wondering what was different about the docs in a few of my modules that caused your 6doc page to miss them. X::Protocol is one such. 14:52
jnthn RabidGravy: It's possible that it also occasionally misses a frame due to GC, which would show up as an iteration suddenly taking a lot longer
RabidGravy yeah, and because it's fairly hand to mouth anyway it just would go down hill from there
there isn't enough spare time to catch up 14:53
MadcapJake` skids, what do you mean?
skids 6doc.rightfold.sexy/
MadcapJake` yeah that's cool, didn't make it though! I asked on reddit where the source is but no reply :P 14:54
skids Ah, OK, I misattributed :-)
MadcapJake` it's missing my modules too
i think the creator just needs to rebuild (guessing)
14:55 Ven joined
RabidGravy it's jdv79 isn't it? 14:55
MadcapJake` Anyone know who this is? Radek Slupik 14:56
that's whois admin for rightfold.sexy
14:57 vendethiel joined, Ven left 14:58 avenj joined
RabidGravy jnthn, the approximate timings on *when* it starts going wrong would tend to support the GC theory, inasmuch as it seems to be a function of the number of iterations 14:59
MadcapJake` in which repo would i post an issue to suggest that `==>` and `<==` be under the experimental pragma?
15:00 Ven joined
masak ...is it just me, or would "thirty score" be 600, not 6000? 15:01
RabidGravy m: say 30 * 20 15:02
camelia rakudo-moar 42fb81: OUTPUT«600␤»
RabidGravy nope
15:02 Ven left
MadcapJake` nope? 15:03
15:03 Ven joined
moritz "half dozen k" :-) 15:03
skids MadcapJake: looks like irc handle "ely-se" in which case the repo, if any, will be on BB not github.
MadcapJake` skids, nice! bitbucket.org/rightfold/sixdoc
skids super perlgeek sleuth ftw. 15:04
RabidGravy MadcapJake, yeah nope, in "no masak, it's not just you, thirty score is indeed 600 not 6000"
MadcapJake` ahh i see, was a bit confused there xD 15:05
Ven o/ 15:06
jnthn RabidGravy: How much longer does it take, ooc? 15:07
RabidGravy: I'm guessing you've a bunch of threads running; GC sync-up in that case needs some work, I think 15:08
RabidGravy well in the simplest case there aren't any Perl 6 threads at all, but portaudio has a feeder thread for the blocking reads and it's jack client will be in a thread too so the whole full up program has a minimum of three 15:11
jnthn Ah, ok 15:15
skids m: my $lock = Lock.new; $lock.protect: { 42.say; X::AdHoc.new(:payload(43)).throw; 44.say }; CATCH { when X::AdHoc { $_.message.say; $_.resume } } # jnthn, should I file an RT or is this not considered a bug? 15:16
camelia rakudo-moar 42fb81: OUTPUT«42␤43␤Trying to unwind over wrong handler␤»
15:18 vendethiel left
jnthn skids: Looks like a bug...but can you reproduce it without lock? 15:19
skids I'll try.
(a "do" block doesn't I know that much) 15:20
RabidGravy Ooh wait, I just took the signal(SIGINT).... out and it has significantly improved
jnthn Yeah, that starts the event loop thread
RabidGravy like seriously improved 15:21
rabidgravy.com:8000/stream - rock solid
jnthn Wow 15:22
That's a really interesting data point :)
jnthn listens
RabidGravy not very interesting, it's easy to hear it going wrong like that :)
jnthn Can't tell if repetitive because genre or because it's a short file on loop :D 15:23
RabidGravy it's a drum machine
jnthn Ah :)
RabidGravy just to prove it's "live"
btyler grooves 15:24
skids m: { LEAVE { 42.say; X::AdHoc.new(:payload(43)).throw; 44.say } }; CATCH { when X::AdHoc { $_.message.say; $_.resume } } # closest thing to a similar failure so far
camelia rakudo-moar 42fb81: OUTPUT«42␤43␤Multiple exceptions were thrown by LEAVE/POST phasers␤␤ 43␤ in block at /tmp/5TWf32mBF2 line 1␤ in block <unit> at /tmp/5TWf32mBF2 line 1␤␤ This exception is not resumable␤ in block at /tmp/5TWf32mBF2 line 1…»
RabidGravy actually that kit is nicer 15:25
jnthn That one is probably legit though
skids tries to think of other unusual closures.
jnthn skids: I'd maybe do a MyLock class and see if removing the actual locking primitives from it makes teh issue go away or not, and golf from there
(As in, start from a copy of Lock)
RabidGravy wow, the stream has been running absolutely rock solid for ten minutes now 15:26
jnthn \o/
Sounds like I've some GC/thread performance exploring to do then :)
15:26 sortiz joined
RabidGravy and I'm actually printing the times as suggested so there may be some headroom too 15:27
15:27 Ven left
RabidGravy time for a different kit 15:27
skids jnthn: looks like the CATCH inside .protect is necessary for it to happen. 15:30
m: class MyLock is Lock { method protect(&code) { my \res := &code(); res }; method lock { }; method unlock { }; }; my $lock = MyLock.new; $lock.protect: { 42.say; X::AdHoc.new(:payload(43)).throw; 44.say }; CATCH { when X::AdHoc { $_.message.say; $_.resume } }
camelia rakudo-moar 42fb81: OUTPUT«42␤43␤44␤»
skids m: class MyLock is Lock { method protect(&code) { my \res := &code(); CATCH { };' res }; method lock { }; method unlock { }; }; my $lock = MyLock.new; $lock.protect: { 42.say; X::AdHoc.new(:payload(43)).throw; 44.say }; CATCH { when X::AdHoc { $_.message.say; $_.resume } } 15:31
camelia rakudo-moar 42fb81: OUTPUT«5===SORRY!5=== Error while compiling /tmp/v10sgmCPB1␤Unable to parse expression in single quotes; couldn't find final "'" ␤at /tmp/v10sgmCPB1:1␤------> 3X::AdHoc { $_.message.say; $_.resume } }7⏏5<EOL>␤ expecting any of:␤ sing…»
skids m: class MyLock is Lock { method protect(&code) { my \res := &code(); CATCH { }; res }; method lock { }; method unlock { }; }; my $lock = MyLock.new; $lock.protect: { 42.say; X::AdHoc.new(:payload(43)).throw; 44.say }; CATCH { when X::AdHoc { $_.message.say; $_.resume } }
camelia rakudo-moar 42fb81: OUTPUT«42␤43␤Trying to unwind over wrong handler␤»
jnthn skids: Remove the inheritance?
I guess the lock/unlock methods can go too 15:32
skids Still happens with no Lock parent.
15:32 sortiz left
skids m: 'my &c = { 42.say; X::AdHoc.new(:payload(43)).throw; 44.say }; { my \res := &c(); CATCH { }; res }; CATCH { when X::AdHoc { $_.message.say; $_.resume } } 15:33
camelia rakudo-moar 42fb81: OUTPUT«5===SORRY!5=== Error while compiling /tmp/zVYr27klaF␤Unable to parse expression in single quotes; couldn't find final "'" ␤at /tmp/zVYr27klaF:1␤------> 3X::AdHoc { $_.message.say; $_.resume } }7⏏5<EOL>␤ expecting any of:␤ sing…»
skids darn
m: my &c = { 42.say; X::AdHoc.new(:payload(43)).throw; 44.say }; { my \res := &c(); CATCH { }; res }; CATCH { when X::AdHoc { $_.message.say; $_.resume } }
camelia rakudo-moar 42fb81: OUTPUT«WARNINGS for /tmp/8a2lnTG3xz:␤Useless use of res symbol in sink context (line 1)␤42␤43␤Trying to unwind over wrong handler␤»
RabidGravy Hmm, not quite enough headroom for it to completely recover if the throughput dips for some reason 15:34
jnthn skids: Nice, that golfs it quite a bit further
skids: I've still no idea what's going on, but at least we know it's nothing to do with locks :)
skids OK, I'll RT then. 15:35
RabidGravy but on the whole I feel much happier about this than I did half an hour ago :)
jnthn :)
RabidGravy jnthn++ # just because
llfourn RabidGravy++ for figuring it out 15:36
MadcapJake` with nativecall is there any way to specify that a param should be something from a given enum rather than just an int32? 15:37
Skarsnik I don't think so
RabidGravy not directly, this is why you wrap the actual native subs 15:38
hoelzro MadcapJake`: I doubt it, but you could always wrap the native sub in a sub that *does* enforce something enum-like
15:38 CIAvash joined
Skarsnik I like how enum size it supposed to be compiler dependant x) 15:39
MadcapJake` ok just curious, I'm definitely going to wrap the API but would be nice to handle that validation in the native sub since the C code is written as such
15:40 Ven joined
Skarsnik well it mean another trait or something to add to enums 15:41
15:41 Ven left 15:42 sortiz joined 15:43 Ven joined
MadcapJake` I just mean it would be a nice feature UX-wise as this is how C code is written and would make for a nicer translation. 15:43
15:46 Ven left 15:51 Ven joined 15:57 perlpilot left
kalkin-__ So i want to have a variable which i can only set once, which is not a constant 15:57
ugexe use a Proxy?
kalkin-__ If i use a _state_ variable in a Grammar and Grammar.parse, which sets the state var to something. Next time when I execute Grammer.parse will it be reset? 15:58
Skarsnik my \foo = 1 ?
kalkin-__ I mean the _state_ keyword
15:58 Ven left
jnthn kalkin-__: No, it won't be reset... 15:58
MadcapJake` kalkin-__, you could reset it on initialization of the Grammar class
15:58 perlpilot joined
jnthn kalkin-__: People typically use dynamic variables for per-parse state 15:59
kalkin-__ I just want to make sure I don't do assignment to this var, after it's assigned ones
jnthn Well, sigilless variables are ideal for that 16:00
m: my \a = 42; a = 43;
camelia rakudo-moar 42fb81: OUTPUT«Cannot modify an immutable Int␤ in block <unit> at /tmp/JD_ke9QnO5 line 1␤␤»
kalkin-__ Ahh, thats what they are for!
The docs just say: It is possible to create "variables" in Perl 6 that do not have sigils:Gut, vorher hat der Typ Mozart zitiert 16:01
MadcapJake` but you can't create an empty one and assign it later
kalkin-__ Aehm, s/:.*//g
MadcapJake` if you want to assign later, you might also consider creating a setter method that validates whether the container is empty 16:02
kalkin-__ MadcapJake: yeah that's always possible. 16:03
m: let $f; {$f =42;} say $f;
camelia rakudo-moar 42fb81: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Txr6tIjZ7O␤Variable '$f' is not declared␤at /tmp/Txr6tIjZ7O:1␤------> 3let 7⏏5$f; {$f =42;} say $f;␤»
kalkin-__ m: {let $f; $f =42; say $f;}
camelia rakudo-moar 42fb81: OUTPUT«5===SORRY!5=== Error while compiling /tmp/d5GtZopcx0␤Variable '$f' is not declared␤at /tmp/d5GtZopcx0:1␤------> 3{let 7⏏5$f; $f =42; say $f;}␤»
kalkin-__ I think a combination of my and let will do the trick for my case 16:04
m: my $f = 'DEFAULT VALUE'; { let $f= ' FOO'; say $f };
camelia rakudo-moar 42fb81: OUTPUT« FOO␤»
16:05 Ven joined
MadcapJake` in nativecall, how do i handle that a return type might be a struct or NULL? 16:05
Skarsnik I think returning a struct does not work 16:06
kalkin-__ hmm I think i will just do a setter. I thought perhaps there is something like java final keywords for variables
jnthn Skarsnik: I suspect it's "pointer to struct"
Skarsnik and $retstuff == MyStruct should work to check for null
jnthn === :)
Skarsnik Oh yeah === 16:07
This is so confusing ^^
jnthn But yeah, you get back a type objct if it's NULL
So, can test it with .defined also
or with $struct { ... } etc.
16:07 nakiro left
masak Skarsnik: infix:<==> is only for numeric comparisons 16:07
MadcapJake` yeah it's a pointer, but i mean with `returns` keyword.
jnthn MadcapJake`: Just write the struct type; it's implicit that it could be NULL also 16:08
Skarsnik sub foo is native returns MyStruct;
MadcapJake` oh ok good :)
jnthn But we map NULL into a type object for that 6y feeling :)
Skarsnik I should spend some time figuring how to make glib work with gccxml
MadcapJake` Skarsnik, yes! gccxml needs to update it's gcc dep xD
s/it's/its/ 16:09
i need more C-fu before I can do the gir, so I'm doing a simple C library right now (MyHTML html parser)
16:10 Ven left
RabidGravy you can do the rest of this portaudio thing if you want, it's been driving me mad for a week 16:10
Skarsnik There is already Gumbo if you want parse html(5)
kalkin-__ About the sigilless variables. The main point in the is immutability right? If so I think the immutability should be mentioned in the docs in the first sentence instead of being mentioned as just a side effect of not having containers
16:10 kalkin-__ is now known as kalkin- 16:11 Ven joined
MadcapJake` Skarsnik, nice! maybe that should be under HTML::Gumbo (I searched for HTML in the module site before starting this) ¯\_(ツ)_/¯ 16:11
kalkin- Or did I misunderstood the point of the sigilless vars
?
MadcapJake` the sigilessness means it's actually containerless :P 16:12
perlpilot random thought: should t he REPL announce version information before displaying a prompt?
kalkin- perlpilot: the few times you need this you can just execute perl6 --version. As developer you probably know what version you have installed. 16:13
MadcapJake` RabidGravy, I'm almost done with this and then I'll have a look at PortAudio, is your lib on gh or bb?
s/lib/module
RabidGravy I was joking, I'm going to wrap it up today
MadcapJake` perlpilot, I agree, I've discussed this before and others said that it should but also you should have a quiet option to silence this 16:14
RabidGravy I can make a working example of the last use case I'm interested in so it's just make some better tests and some documentation
perlpilot kalkin-: "few times"? What about when illustrating a bug? That happens all the time here with camelia and she announces the SHA1 at least. For people in the wild, why make them do an extra step to see the version info? 16:15
MadcapJake` RabidGravy, ah sorry! Was willing to help! I still need to get back to my FluidSynth wrapper too but I am kind of confused about function arguments (in regards to wrapping C functions that have them)
RabidGravy you mean callbacks? 16:16
16:16 Ven left
MadcapJake` right :) 16:16
kalkin- perlpilot: well here with camelia is a different interaction as on your own machine.
RabidGravy it's just sub foo(&foo (int32 $f, Str $g)) is native ,,.. 16:17
perlpilot kalkin-: And you think that people will always know what version of Perl 6 they have installed?
RabidGravy you do need the sub signature
kalkin- You either using the installer perl6 version from your package manager or you have specified a version when using rakudobrew.
perlpilot kalkin-: ... or your sysadmin did those things for you and you have no idea.
kalkin- perlpilot: my expirience from developing in other programming languages which have multiple versions ruby/python and i always know which version I use currently 16:18
perlpilot: ok so you execute once perl6 --version, instead beeing greeted with a version screen each time.
perlpilot again, why make an extra step for users. (What's the first thing we ask for with bug reports or other strangeness? "What version of Perl are you running?")
kalkin- Maybe I'm bikeshading, but you asked :) 16:19
perlpilot kalkin-: What does Python's REPL do? ;)
MadcapJake` RabidGravy, ok, I'm actually a little fuzzy on exactly what detail of them I was having trouble with, I'll let you know when I get back to that, a cursory glance isn't ringing any bells
16:19 [Tux] joined
kalkin- perlpilot: ? 16:19
ugexe a large chunk of 'why doesnt this perl6 code work?' is from a developer running a package managed rakudo from 2014.11 16:20
MadcapJake` kalkin-, what perlpilot is saying is that each time you enter a python repl, it gives you a number of details about the system/version
however you can get around that by `alias python3="python3 -q"` 16:21
kalkin- perlpilot: You are right. Especially newbies need to know the version when they are asking stuff here, and there rest can disable it 16:22
perlpilot anyhow ... I've exhausted what little energy I had on the subject. I think Rakudo's REPL should announce version info. If it bubbles up enough again in my brain, I may just make it so and ask forgiveness.
kalkin- MadcapJake: my doesn't
MadcapJake` kalkin-, maybe you already set the alias?
both 2.7 and 3.4 do it 16:23
perlpilot must be. Python's REPL has always announced version info for as long as I can remember
MadcapJake` same here
kalkin- MadcapJake: Ahh you are talking about python, sorry
ugexe it might be cool if stacktraces included the perl6 version... then when people post their errors to a pastebin we don't even have to ask the first question
perlpilot ugexe: that too!
16:24 Ven joined
MadcapJake` kalkin-, right i'm saying that other (only currently) more popular scripting language does it and has since around the dawn of time (or thereabouts) 16:24
perlpilot (the very last thing in the stacktrace should be "on Rakudo version ..."
MadcapJake` perlpilot++ 16:25
geekosaur interestingly, ghci used to announce version and then that was disabled by default because that's what users wanted
MadcapJake` ugexe++ # great idea!
masak t/spec/S32-num/power.rakudo.moar -- TODO passed: 13-15, 68-70
other than that, the spectests all pass! nice! :D
MadcapJake` geekosaur, typical haskellers ;)
RabidGravy wahay! 16:26
geekosaur ... will not comment.
masak m: say (^Inf).pick
camelia rakudo-moar 42fb81: OUTPUT«Cannot .roll from a lazy list␤ in block <unit> at /tmp/STcfcwkuMx line 1␤␤Actually thrown at:␤ in block <unit> at /tmp/STcfcwkuMx line 1␤␤»
MadcapJake` geekosaur, only teasing
geekosaur (because if I get started, I won't stop...)
masak ...slightly LTA error message, I guess... :)
("I wasn't trying to .roll, I did .pick")
geekosaur I have a *lot* of issues with the Haskell community preferring pretty much everything outside of the language being unsafe in one way or another 16:27
masak also, it would seem to me that laziness oughtn't be the problem, but non-finiteness
geekosaur tooling, key libraries (go look at the caveats for the remove directory tree function sometime), ...
perlpilot masak: it was a .pick .roll ?
16:28 maybekoo2 joined, Ven left
perlpilot geekosaur: I just installed ghc and ghci still tells me the version first thing 16:28
geekosaur oh, I think I'm thinking of the big info banner with more information. I see the one-line banner still has version but missing other information that could be useful for diagnosis 16:29
16:30 edehont joined 16:33 khw joined
perlpilot masak: huh ... looking at the code, it looks like it should say "Cannot .pick from a lazy list" (src/core/List.pm:670) 16:33
Skarsnik MadcapJake, Html give gumbo as the second result x)
modules.perl6.org/#q=html 16:34
masak perlpilot: so it does. 16:35
perlpilot: ah, but we're doing .pick on a Range 16:36
not a List
and `multi method pick() { self.roll }`
perlpilot oh!
yes.
16:37 virtualsue joined
MadcapJake` Skarsnik, oops, guess i was just looking at the name xD 16:37
16:38 AlexDaniel joined
AlexDaniel m: ‘abc’ ==> sort 16:39
camelia ( no output )
AlexDaniel m: sort <== ‘abc’ 16:40
camelia rakudo-moar 42fb81: OUTPUT«5===SORRY!5=== Error while compiling /tmp/b2xpy0J2PU␤Unable to parse expression in quote words; couldn't find final '>'␤ ␤at /tmp/b2xpy0J2PU:1␤------> 3sort <== ‘abc’7⏏5<EOL>␤ expecting any of:␤ argument list␤ …»
AlexDaniel star: sort <== ‘abc’
camelia star-m 2016.01: OUTPUT«5===SORRY!5=== Error while compiling /tmp/bxFTj_nJ0V␤Unable to parse expression in quote words; couldn't find final '>'␤ ␤at /tmp/bxFTj_nJ0V:1␤------> 3sort <== ‘abc’7⏏5<EOL>␤ expecting any of:␤ argument list␤ …»
MadcapJake` I don't think `<==` works at all (maybe if replacing assignment it does)
AlexDaniel m: my @a; @a <== ‘abc’; say @a
camelia rakudo-moar 42fb81: OUTPUT«[abc]␤»
MadcapJake` ah so it works with containers
AlexDaniel I have never ever noticed any problems with feed operators 16:41
just this… :)
MadcapJake` that's a pretty big problem :P
RabidGravy there, been streaming that for an hour without a say in the hot loop and it kept filling the player cache at 11-16% so all good
MadcapJake` what's the point of using `<==` in that last case AlexDaniel, it can be replaced by `=` 16:42
masak m: sort() <== 'abc'
camelia ( no output )
16:42 Sgeo__ left
masak you're just falling victims to term-vs-operator 16:42
AlexDaniel right 16:43
masak I don't recall whether the `()` *should* be necessary by spec, though
perlpilot maybe there's something general there we can match and at least give a good error message
16:43 domidumont left
MadcapJake` masak, ah yeah you're right! the `==>` op allows you to skip this though 16:44
masak, how can i make this one work: my @result = sort <== grep /P|E/, <== map { .tc }, <== qw{people of earth};
just wrap the args in parens?
masak yeah 16:45
`<==` is much looser than `=`, IIRC
MadcapJake` m: my @result = sort() <== grep(/P|E/) <== map({ .tc }) <== qw{people of earth};
camelia rakudo-moar 42fb81: OUTPUT«5===SORRY!5=== Error while compiling /tmp/D7eBMaEp7Y␤Sorry, do not know how to handle this case of a feed operator yet.␤at /tmp/D7eBMaEp7Y:1␤------> 3<== map({ .tc }) <== qw{people of earth}7⏏5;␤»
masak aww
MadcapJake` xD
masak the future is still unequally distributed elsewhere :P 16:46
masak .oO( could someone please redistribute some more future over here? ) :P
gregf_ m: my $words = qw|people of earth|;print $words.map(*.tc).grep(/P|E/) 16:47
camelia rakudo-moar 42fb81: OUTPUT«People Earth»
MadcapJake` gregf_, The example is one taken from the feed-left operator 16:49
gregf_ oh, feed left
is that like a foldleft or somesuch
?
MadcapJake` no it's more like thread-last (clojure) but backwards 16:50
gregf_ like so, [1,2,3].inject(0){ |s,v| s+=v } <== in ruby
oh ok
16:51 wamba joined
MadcapJake` each result is passed to the left side of the operator as the last argument 16:51
AlexDaniel m: my @result = (sort() <== grep { /<[PE]>/ } <== map { .tc } <== <people of earth>); say @result;
camelia rakudo-moar 42fb81: OUTPUT«[Earth People]␤»
AlexDaniel or without parens 16:52
MadcapJake` AlexDaniel saves the day! it needs wrapping paper apparently ;)
AlexDaniel m: my @result <== sort() <== grep { /<[PE]>/ } <== map { .tc } <== <people of earth>; say @result;
camelia rakudo-moar 42fb81: OUTPUT«[Earth People]␤»
ugexe m: 1,2,3,4 ==> my @a; say @a.perl
camelia rakudo-moar 42fb81: OUTPUT«[1, 2, 3, 4]␤»
MadcapJake` oh just the no-arg subs need parens eh?
AlexDaniel MadcapJake: well, if you use = then you need parens, yeah
otherwise yes
which is slightly LTA but not enough to call feeds experimental :) 16:53
MadcapJake` so it's specifically because of `<==`'s looser precedence
AlexDaniel the example has to be fixed though
oh geez, look at what I have found! This is just amazing!! 16:54
one second…
MadcapJake` cool, honestly i'm glad it's not! It might even be good to include a mention of parens needed when assigning the result
AlexDaniel m: my @result <== sort() <== grep { /<[PE]>/ } <== my @partial <==map { .tc } <== <people of earth>; say @partial 16:55
camelia rakudo-moar 42fb81: OUTPUT«[People Of Earth]␤»
AlexDaniel you can add “my @something” in between and save the result in between!
MadcapJake` oh that's neat! 16:56
AlexDaniel I mean… well you get it
this is just amazing!
AlexDaniel adds it to the list of underrated perl 6 features, even though it is not an actual feature 16:57
MadcapJake` ok, I've started a PR with the fix and I'll include that "partial save" too for good measure!
AlexDaniel oh, neat!
MadcapJake`++
MadcapJake` AlexDaniel, the partial save doesn't seem to work with `==>` 17:01
AlexDaniel hehe
well, maybe it needs parens?
MadcapJake` m: my @res = (<people of earth> ==> map { .tc } ==> my @caps) ==> grep /<[PE]>/ ==> sort; say @caps; say @res 17:02
camelia rakudo-moar 42fb81: OUTPUT«[People Of Earth]␤[People Of Earth]␤»
MadcapJake` hmm 17:03
m: my @res = (<people of earth> ==> map { .tc } ==> my @caps) ==> grep /<[PE]>/ ==> sort); say @caps; say @res
camelia rakudo-moar 42fb81: OUTPUT«5===SORRY!5=== Error while compiling /tmp/uWxNDfw8RH␤Unexpected closing bracket␤at /tmp/uWxNDfw8RH:1␤------> 3==> my @caps) ==> grep /<[PE]>/ ==> sort7⏏5); say @caps; say @res␤» 17:04
MadcapJake` oops
m: my @res = ((<people of earth> ==> map { .tc } ==> my @caps) ==> grep /<[PE]>/ ==> sort); say @caps; say @res
camelia rakudo-moar 42fb81: OUTPUT«[People Of Earth]␤[Earth People]␤»
nine jnthn: oddly I don't seem to have access to $*W in TOP. Maybe because it's defined there? In "if $*W { nqp::say("got a world!"); }; my $*W := ..." I never get the debug message 17:06
AlexDaniel MadcapJake`: hmm it works but it looks like you can't declare it this way
MadcapJake` m: ((<people of earth> ==> map { .tc } ==> my @caps) ==> grep /<[PE]>/ ==> sort) ==> my @res
camelia ( no output )
AlexDaniel MadcapJake`: that is, you can't have “my”
oh
MadcapJake` you can if you use parens around the whole bit
strange that the my @caps one doesn't suffer from the same 17:07
AlexDaniel MadcapJake`: anyway, if you're working on a PR, please try to actually run the examples… on my setup things are not working correctly if are split into multiple lines 17:08
MadcapJake` AlexDaniel, yes definitely
jnthn nine: Yes, then you're talking about the one you didn't yet define 17:09
nine: You'll need to use nqp::getlexdyn('$*W') or so
MadcapJake` AlexDaniel, widest parens can be avoided by calling sort as «sort()» 17:10
parser gets confused with bare words it seems
timotimo i wonder why we don't allow different kinds of parens as replacements for regular ( and ) parens 17:11
could potentially make mathematical expressions much more pleasant to read
and write, of course
i mean, a slang can be built, obviously
ugexe m: my @a R==> (1,2,3,4); 17:12
camelia rakudo-moar 42fb81: OUTPUT«Type check failed in binding op; expected Any but got Mu (Mu)␤ in block <unit> at /tmp/gPpfOSSDo8 line 1␤␤»
nine jnthn: ah, thanks. Another way would be to just pass it down from EVAL via %*COMPILING<%?OPTIONS> 17:13
MadcapJake` ugexe, do you mean R<==
17:15 edehont left
MadcapJake` m: my @a <== reverse() <== (1,2,3,4) # ugexe, I couldn't get `R<==` to work but this does 17:15
camelia ( no output )
ugexe m: (1,2,3,4) R= my @a; say @a 17:16
camelia rakudo-moar 42fb81: OUTPUT«[1 2 3 4]␤»
AlexDaniel holy… :) 17:17
17:17 lostinfog joined
Juerd I really don't get what R is actually useful for though :) 17:17
17:17 zakharyas left
ugexe i use `next() R, ?@arr.map: { < some semi long line> };` to put the next at the start of the line if it fits better 17:18
jnthn Juerd: Mostly for me, when I type the second argument to an operator like / first, then can't be arsed to go back and stick the next thing before :P
17:19 perl6newbee joined
perl6newbee hi all 17:19
ugexe i should probably map it to `rightafter` or some such
MadcapJake` oh i see what you were going for ugexe, i actually thought R was different xD oops! 17:21
nine perl6newbee: servas! 17:22
17:23 virtualsue left 17:27 SCHAAP137 joined
TimToady m: loop { print "."; my @X = ' ' xx 10; while my $x = @X.shift { if $x ge ' ' { } elsif $x.ord >= 32 { die "Can't happen" } } } 17:29
camelia rakudo-moar 42fb81: OUTPUT«.....................Can't happen␤ in block <unit> at /tmp/x8DHiQCPHW line 1␤␤»
17:29 abraxxa left
TimToady jnthn: ^^ a cute bug 17:29
17:30 buharin joined
TimToady been running into that one for several months in my quiz editor, where after a certin amount of editing, the getline routine suddenly decides to ignore spaces 17:31
jnthn TimToady: Have you done the MVM_JIT_DISABLE=1 dance? There's one similarish one in RT that's on my "look at soon" list that I think invovled ge and JIT... 17:33
TimToady obviously something going wrong in JIT
yes, MJD "fixes" it 17:34
jnthn OK, then it's likely the same one
TimToady OK, I'll just bide then, it's easy enough to work around
jnthn Well, your alternative is patching the JIT ;-) 17:35
TimToady or finding someone to provide a new JIT ;-) 17:36
jnthn TimToady: rt.perl.org/Ticket/Display.html?id=127272 is the RT in question :) 17:37
rindolf perl6newbee: hi, how are you?
perl6newbee: bzzzzz!
jnthn TimToady: heh, brrt++ is already doing that too :)
TimToady m: loop { print "."; my @X = '!' xx 10; while my $x = @X.shift { if $x ge ' ' { } elsif $x.ord >= 32 { die "Can't happen" } } } 17:38
awwaiid MadcapJake`: thanks for fixing my issues. I was either under or over caffinated apparently (I blame DST) 17:39
camelia rakudo-moar 42fb81: OUTPUT«(timeout).......................................................................................................................................................................................................................................................…»
TimToady is apparently an off-by-one error, since it doesn't manifest unless the test is eq
17:39 dakkar left
MadcapJake` awwaiid, haha! yes DST is the root of all evil. But thank YOU for making me aware of this neat operator! 17:39
RabidGravy no, no mst is the root of all evil, dst is just an understudy ;-) 17:40
perl6newbee rindolf: very well thanks 17:44
:-)
rindolf what about you? 17:47
ah servas nine ;-) 17:48
rindolf perl6newbee: well, rust builds fine outside the rpmbuild process but fails to build with rpmbuild.
perl6newbee: and pypy is not happy with the Mageia build-system's architecture. 17:49
AlexDaniel TimToady: just an hour ago there was a discussion about an issue with feed operators. “sort <==” has to be written as “sort() <==” otherwise it does not parse as dwimmy as people wish (same thing works fine with ==>, obviously). Is it intended to be so and is there a way to fix that? 17:50
17:51 Azry_ left
perl6newbee rindolf: I don't have an idea what you are talking about :-) Unfortunatelly... 17:52
17:52 Azry joined
rindolf perl6newbee: OK. 17:52
perl6newbee what is rust? not the game Rust I think
rindolf perl6newbee: no, it's a programming language.
perl6newbee ah. Mozilla have created it, right? 17:53
anyway. Is there a change to get DBIish running with Microsoft SQL Server/ODBC? I'd like to rewrite my perl5 script in Perl6. 17:57
MadcapJake` wrt feed operators, let me know what you think: github.com/perl6/doc/pull/424 awwaiid, AlexDaniel, masak, anyone else!
17:57 Bucciarati joined
jnthn TimToady: Think I've found it :) 17:58
17:58 cpage_ left 18:00 sjoshi joined
jnthn m: use Test; is ('a' xx 1000).map(+('a' le *)).index(0), Nil; is ('a' xx 1000).map(+('a' ge *)).index(0), Nil; 18:00
camelia rakudo-moar 42fb81: OUTPUT«not ok 1 - ␤␤# Failed test at /tmp/54jmHx8EHn line 1␤# expected: (Nil)␤# got: '414'␤not ok 2 - ␤␤# Failed test at /tmp/54jmHx8EHn line 1␤# expected: (Nil)␤# got: '414'␤»
18:01 Actualeyes left
Juerd MadcapJake`: Info about why you'd use feed operators instead of method chaining seems to be missing. 18:01
18:01 lichtkind joined
timotimo seems like it's about time i write that feature for moar-gdb.py that lets us visualize what exactly a rope is made of 18:02
MadcapJake` Juerd, good idea thanks!
18:06 firstdayonthejob joined
RabidGravy perl6newbee, no-one with the combination of skills and motivation has come forward to do that :) 18:09
nine perl6newbee: DBIish supports Oracle, PostgreSQL, MySQL and SQLite. I'd use Perl 5's DBI and move to DBIish once it has support for ODBC. They have almost the same API.
lichtkind nine: will you be in chemnitz this week?
perlpilot next thing you know someone will be wanting DBIx::Class in Perl 6 ;) 18:11
TimToady jnthn: I think I found it too :)
setl/setg need to be setle/setge 18:12
AlexDaniel MadcapJake`: I like it
jnthn TimToady: Yeah; just pushed to MoarVM; version bump commits coming up after spectest finishes :)
TimToady is still in the middle of spectests :)
jnthn Once I spotted it, figured I may as well fix it before dinner :) 18:13
18:13 Roamer` left
perl6newbee RapidGravy nine THX. 18:13
18:13 Roamer` joined
perl6newbee RabidGravy: I hope someone with skills is bored and thus motivated :-) 18:14
TimToady hmm, failing buf.t, but maybe that's just cuz I haven't pulled for a day or two
AlexDaniel MadcapJake`: hmm I wondering. Is there anything else we can add while we are at it?
jnthn TimToady: Any other RTs high on your "really want that fixed" list?
perl6newbee nine. how long will it last until DBIish support ODBC?
Skarsnik until someone write it 18:15
TimToady jnthn: that's the only one I regularly run into in practice
jnthn TimToady: OK. I got that weird SEGV-ing chars one done last week too. 18:16
perl6newbee Skarsnik: of course ^^
perlpilot perl6newbee: look at it like this though ... because DBIish doesn't support ODBC, that gives you an excuse to play with Inline::Perl5 :) 18:17
jnthn TimToady: Figure I'll mostly work on the heap snapshot stuff this week, so I can figure out what on earth is not letting EVAL'd compunits get GC'd...
TimToady yeah, saw your blag
jnthn :)
TimToady agree also that at least some EVALs can probably hijack their surrounding SC 18:18
in a thunky way
jnthn It makes sense for BEGIN-time ones, I think...
perl6newbee perlpilot: Unfortunately, I could not get Inline::Perl5 installed on Windows.
TimToady justifies the decision that EVAL defaults to the immediately surrounding language, not SETTING 18:19
MadcapJake` Juerd, AlexDaniel, I've added some explanation, tell me what you think: github.com/perl6/doc/pull/424
jnthn Hmmmm...my spectest run seems to wedge somewhere in S09 18:20
All on zero CPU
Juerd MadcapJake`: Good improvement! 18:21
AlexDaniel MadcapJake`: hmmm there is one more thing, I guess
jnthn Oh no, in S10 or S11...
18:21 domidumont joined
TimToady jnthn: mine completed, but now git pulling and reconfing to test current 18:22
to see if buf.t fixes
MadcapJake` AlexDaniel, what would that be? 18:23
AlexDaniel MadcapJake`: if we compare @foo.map(…).grep(…) and @foo ==> map(…) ==> grep(…), which one is supposed to be processed in parallel (at least according to the spec)?
if any 18:24
I've always thought that ==> is like shell pipe, while methods are just methods
MadcapJake` no idea on that
stmuk_ pbs.twimg.com/media/CdhzHYQW4AEbHFI.jpg
TimToady jnthn: yeah, that fixes my buf.t prob 18:25
MadcapJake` AlexDaniel, from S06: Note that all such feeds (and indeed all lazy argument lists) supply an implicit promise that the code producing the lists may execute in parallel with the code receiving the lists 18:26
AlexDaniel MadcapJake`: “Note that all such feeds (and indeed all lazy argument lists) supply an implicit promise that the code producing the lists may execute in parallel with the code receiving the lists.”
MadcapJake` haha
AlexDaniel :)
jnthn TimToady: OK. I can't reproduce the hang running files one at a time, but it's right around the precomp tests...so I'm suspecting it's some race there, that only shows up with parallel spectesting 18:27
perl6newbee happy PI-day!
timotimo pi-day is also my birthday :3
RabidGravy only if you live in wrong way round date land
perl6newbee timotimo congratulations!
jnthn will have to try and reproduce that later...
timotimo: Happy birthday! 18:28
AlexDaniel MadcapJake`: interestingly “sort <==” thing is in the spec, hm…
timotimo thanks :3
RabidGravy now go and drink a load of beer
AlexDaniel RabidGravy: nooo…
perl6newbee a beer with 3.1415%
18:29 cdg left
MadcapJake` I'm wondering if feeds are truly parallel as implemented now though 18:29
AlexDaniel MadcapJake`: so, I think that it should be mentioned
timotimo MadcapJake`: they are not yet
AlexDaniel MadcapJake`: I don't think solarbunny
timotimo the only parallel stuff we have so far is .hyper and .race
AlexDaniel so*
RabidGravy eugh, unless it's a proper cask conditioned dark mild no beer should be that weak
timotimo which have their own share of problems :)
18:29 prammer left
AlexDaniel oh please lets hide .hyper from the world for now… 18:30
RabidGravy mind I have had to somewhat curtail the "stunt beer" recently as my organs were complaining
MadcapJake` timotimo, yeah because you can access variables declared inside the "blunt end" as the s06 puts it and that's not supposed to be possible
jnthn AlexDaniel: No, let's fix it :)
AlexDaniel jnthn: that would be ideal, yes 18:31
MadcapJake` Ok well I will at least note that in the future this operator should gain some parallel super powers :)
jnthn .ask nine Are there any known problems around getting hangs (perhaps due to locking) when doing precomp stuff? I just twice had my spectest run seem to hang around the S10 precompilation test, but it all runs fine otherwise.
yoleaux jnthn: I'll pass your message to nine.
timotimo i've looked at hyper at least once and it was just ... "here there are values. here there are none"
jnthn .ask nine Uh, all runs fine if I'm not in a parallel spectest, I mean.
yoleaux jnthn: I'll pass your message to nine.
AlexDaniel timotimo: that's not too bad actually 18:32
dalek p: 467f2fc | jnthn++ | tools/build/MOAR_REVISION:
Get MoarVM JIT bug fix.
timotimo and timo be like ... bwuh?
18:32 prammer joined
dalek kudo/nom: a647a05 | jnthn++ | tools/build/NQP_REVISION:
Get MoarVM JIT bug fix for str comp ops.
18:32
AlexDaniel at least it is explicitly broken
dalek ast: 028cade | jnthn++ | S03-operators/relational.t:
Tests for RT #127272.
AlexDaniel MadcapJake`: besides that I think that it is great 18:33
jnthn dinner & 18:34
AlexDaniel MadcapJake`: I mean, it is great anyways. But if you mention parallel thingy then it will be just perfect
m: my %h = <a b c d>; say (%h ==> sort) 18:36
camelia rakudo-moar 42fb81: OUTPUT«(a => b c => d)␤»
TimToady jnthn, nine: no hang here on linux running TJ=5, just usual S17-lowlevel/lock.t flappage
MadcapJake` will B<> work in docs? 18:37
yeah found one :)
18:38 avenj left, avenj joined
MadcapJake` Ok AlexDaniel check it now: github.com/perl6/doc/pull/424 18:39
18:40 AlexDaniel left
MadcapJake` o_O 18:40
18:40 AlexDaniel joined 18:42 hankache joined 18:43 maybekoo2 left
hankache hola #perl6 18:44
timotimo hola hankache 18:45
hankache hi timotimo
hoelzro o/ hankache 18:46
hankache hi hoelzro
18:47 _notbenh joined 18:51 cognominal left, cognominal joined
dalek c: 24f42e9 | (Jake Russo)++ | doc/Language/operators.pod:
Add, fix and reword feed operator docs

add some additional examples.
18:51
c: a0dfc2d | (Jake Russo)++ | doc/Language/operators.pod:
Add an explanation of usefulness of feed operators
c: 7ac403e | (Jake Russo)++ | doc/Language/operators.pod:
Add mention of eventual parallelizing superpowers
c: b4d4dee | (Jake Russo)++ | doc/Language/operators.pod:
Merge pull request #424 from MadcapJake/master

Add, fix and reword feed operator docs
[Coke] MadcapJake`: "in the case of X or the first.." better as "in the case of X or where the first"
MadcapJake` xD ok I'll submit a quick fix for that :) 18:52
18:52 jast left
[Coke] I would spell out addtl. 18:52
otherwise, +1
MadcapJake` I just didn't want to take up more of the line but ok 18:53
it's not as bad as I thought it would be
dalek c: 8ff5d14 | (Jake Russo)++ | doc/Language/operators.pod:
A few spelling adjustments
18:54
18:57 jast joined
nine Now the fun begins: Serialization Error: missing static code ref for closure '<unit>' 19:05
yoleaux 18:31Z <jnthn> nine: Are there any known problems around getting hangs (perhaps due to locking) when doing precomp stuff? I just twice had my spectest run seem to hang around the S10 precompilation test, but it all runs fine otherwise.
18:31Z <jnthn> nine: Uh, all runs fine if I'm not in a parallel spectest, I mean.
nine .tell jnthn I know of at least one hang on nom when loading NativeCall in a REPL and starting another REPL. That's fixed on the relocateable-precomp branch. 19:06
yoleaux nine: I'll pass your message to jnthn.
19:09 travis-ci joined
travis-ci Doc build passed. Jake Russo 'Merge pull request #424 from MadcapJake/master 19:09
travis-ci.org/perl6/doc/builds/115937575 github.com/perl6/doc/compare/5ac95...d4dee5e0fc
19:09 travis-ci left 19:15 travis-ci joined
travis-ci Doc build passed. Jake Russo 'A few spelling adjustments' 19:15
travis-ci.org/perl6/doc/builds/115938126 github.com/perl6/doc/compare/b4d4d...f5d14fbf50
19:15 travis-ci left 19:17 vendethiel joined 19:24 lsm-desktop left 19:26 lsm-desktop joined, perl6newbee left 19:28 sjoshi left 19:34 lichtkind_ joined
RabidGravy If I delete a repository from github and recreate one with the same name, then push from a local clone from the original will it just work? or does it store some uuid like svn does? 19:37
19:38 lichtkind left
hoelzro RabidGravy: it should just work 19:38
but why blow away and recreate?
19:40 spider-mario joined 19:43 lizmat joined
RabidGravy Well, I originally forked psch's Audio-PortAudio but it has so widely diverged that if I release it I guess psch won't want to be bothered with maintaining it :) 19:46
so I don't really want to be releasing from a fork 19:49
perlpilot RabidGravy: Are you saying you're releasing your own Audio::PortAudio? 19:50
RabidGravy yes 19:51
well it does have some of psch's work in it but he has indicated that he hasn't got time to do anything with it 19:52
lizmat is back home and will start working on the Perl 6 Weekly shortly 19:55
so please, let me know if you think I missed /am going to miss something
masak GPW happened! with plenty of Perl 6 talk, sometimes from unexpected directions 19:59
talks*
19:59 cdg joined
vendethiel \o/ 20:00
RabidGravy anything groovy happen at GPW? 20:01
20:02 musiKk_ joined
masak it was a nice workshop with a series of generally high-quality talks 20:04
I'm glad I went
20:04 cpage_ joined
masak but I confess I especially liked huddling with sergot and tadzik in various corners and hacking on code :> 20:04
20:09 darutoko left
hoelzro ahhh 20:09
stmuk_ I have a partly written GPW blog to be released RSN
tadzik :D 20:10
20:12 buharin left
tony-o_ you guys going to texas? 20:13
20:13 espadrine left
masak in general, or for YAPC::NA? :P 20:13
perlpilot YAPC::NA is in Florida this year. 20:14
tony-o_: and I'm already in Texas :)
RabidGravy tony-o, remind what it was I wanted to ask you? because I'm damned if I can remember. 20:15
perigrin perlpilot: only a 12-14hr drive from eastern texas (Houston) 20:16
20:16 buharin joined 20:17 buharin left 20:18 abaugher left 20:19 abaugher joined
tony-o_ RabidGravy: something regarding Data::Dump ? 20:20
perlpilot: ah - you happen to be in Houston area? I'm there frequently
RabidGravy tony-o_, I just remembered, it isn't possible to install HTTP::Server and HTTP::UserAgent together because they both have HTTP::Request and HTTP::Response
tony-o_ RabidGravy: that's a known issue in the CURLI implementation 20:21
perlpilot tony-o_: More like Fort Worth
RabidGravy yeah, just so long as you know 20:22
tony-o_ i appreciate it, thank you
RabidGravy I'm actually wondering whether there is some scope for making them the same thing and making them one release separately 20:24
20:24 yqt joined
tony-o_ i'm considering changing the name of HTTP::Server stuff since the conversation turned to just kind of a 'meh' when discussed in the curli channel 20:24
RabidGravy: do you have a need for H:S:* right now? i can make the changes real quick 20:26
RabidGravy no, I was playing around with making a noddy streaming server the other week and tried it, found it wouldn't install, stashed the thought and implemented a specialised server myself :) 20:28
20:28 domidumont left
pmurias_ tadzik: is a PLPW planned this year? 20:29
20:35 labster joined 20:37 lsm-desktop left 20:40 hankache left, kmel joined 20:43 dfcarpenterak joined 20:45 lsm-desktop joined 20:46 kmel left, pmurias__ joined 20:49 pmurias_ left 20:54 kaare_ left 20:56 dha joined
arcetera okay 21:00
so
I'm trying to write an uploader for oops.moe 21:01
and when I run this script, it returns '{"error":"You have not specified a key."}'
here's my code: sprunge.us/cCbQ
lizmat stmuk_: any chance you will be ready in the next hour or so ? 21:04
leedo arcetera: are you sure you can set CURLOPT_POST multiple times?
shouldn't it be set once with & between params?
perlpilot arcetera: And there's actually something in $HOME/.oopsrc ?
21:06 TEttinger joined 21:07 skids left
dha Just noticed that 5to6-nutshell's discussion of C<each> has been rewritten. Shows use of pointy block with no explanation of how pointy blocks work. in 5to6-perlfunc, I indicated that this would be the way to replicate the behavior of C<each>, but despite there being a number of examples of pointy blocks in the docs, there is no actual documentation of how they work. Have they been documented while I wasn't looking, and if so, shall I rewrite 5t 21:09
o6-perlfunc to make that clearer?
perlpilot arcetera: oh ... the other libcurl stuff I've seen uses CURLOPT_POSTFIELDS for the data and CURLOPT_POST is a boolean that says it's a POST request when true. I dunno if Net::Curl does that as well, but I'd guess it would be so 21:10
arcetera perlpilot: yes 21:11
MadcapJake` dha, doc.perl6.org/type/Block
arcetera that didn't work either after :%s/CURLOPT_POST/CURLOPT_POSTFIELDS/g 21:12
perlpilot MadcapJake`: that's a weak explanation of pointy blocks imho 21:13
MadcapJake` what do you feel is weak about it? 21:14
dha mho as well. Also doesn't deal with using them in actual for loops, for instance.
MadcapJake` for loops just take a block as an argument
dha I feel the connection would be unclear for someone coming to Perl 6 for the first time. 21:15
perlpilot MadcapJake`: it just starts talking about -> and <-> in the middle, there's no introduction nor explanation about where they fit. 21:16
21:16 CIAvash left
arcetera aight here's the new code sprunge.us/CeDc 21:16
same "{"error":"You have not specified a key."}"
dha Also, although the phrase "pointy block" occurs in the docs, it *doesn't* appear in the docs for Block.
arcetera docs for the service itself are at oops.moe; what am I doing wrong?
dha also, what perlpilot said.
21:17 musiKk_ left, ufobat left
perlpilot arcetera: I think it needs to be more like gist.github.com/perlpilot/aece584ec0e1d0cc7512 21:18
arcetera: but that's just a guess
arcetera lemme try 21:19
tadzik pmurias_: loosely :/
arcetera perlpilot: sprunge.us/ibNh 21:20
timotimo yo tadzik
arcetera doubt it wants a hash
MadcapJake` dha, perlpilot: perhaps some useful info could be trudged up from here design.perl6.org/S06.html#%22Pointy_blocks%22 21:21
leedo arcetera: in PHP it accepts a hash or urlencoded string (e.g. param=val&param2=val2) 21:22
arcetera ah
the problem's still present
"This type cannot unbox to a native string"
leedo php.net/manual/en/function.curl-setopt.php different lang but maybe helpful for the options
tadzik yo timo 21:23
arcetera leedo: i'm reading through the libcurl docs now
i'll brb
perlpilot looking at the source to Net::Curl, it looks like you need to give curl_easy_setopt either a string or integer as the third param.
tadzik I'm done with programming for today
I even wrote a rant about it
what a disaster 21:24
timotimo o_O
on the ttjjss?
blog, that is
tadzik nah
it's pure attention whoring and exhibitionism, so I went ahead and put it on facebook. And here: gist.github.com/tadzik/a1a9660fc0f543bbadaa
dha MadcapJake - yes, that's probably a good starting point. I'm just wondering if that should be added to the docs for C<for> or if we should figure out a place for it in Type/Block and point to that from C<for>
timotimo OK 21:25
urgh, lack of wrapping
oh yes, the wight to remain
good choice
tadzik hang on 21:26
try now
timotimo damn, poor you 21:27
tadzik it's punishment for being productive, I tell ya 21:28
I should've never left bed
perlpilot tadzik: Sorry about your day. It'll be better tomorrow :)
timotimo tadzik: i recently resurrected my parents' old music-keyboard thingie 21:29
tadzik nice! :) 21:31
timotimo the thing is, it doesn't have "velocity" for its keys :( 21:32
nine really ought to finally dust off his piano after the stress is over
timotimo that kind of makes it quite a bit less awesome than it could be
21:33 prammer left
moritz nine: does "after the stress is over" ever happen? :-) 21:34
21:34 prammer joined
tadzik timotimo: yeah, the proper key mechanics are quite a luxury in a digital instrument :/ 21:35
nine moritz: I've got a pink camel here. Makes you believe everything's possible :)
timotimo well, the mechanics are a separate thing still
those keys are "dumb". not like a piano at all
really just a regular electronic keyboard
tadzik right 21:37
timotimo but it's also almost as old as me, i think
tadzik hah
I have one at my parent's house that's 4 times my age
needless to say, it's not digital :)
timotimo oooh 21:38
i once had the opportunity to lay my hands on a hammond organ 21:39
it was neat 21:41
tadzik oooh
I once played an organ (electronic though) on one of my music school's concerts
21:41 dha left
timotimo well, it wasn't special that i was allowed to touch it. it was standing there in the Rock Shop and i passed by, stopped, sat down, turned it on ... :) 21:41
tadzik it was so glorious
:)
moritz at Debconf 2007 many of the hackers went to a pub that used to be a church. It had a broken organ. They repaired it :-) 21:43
timotimo ooooh, awesome 21:44
that's a really neat story
El_Che moritz: would it be ok to create sha512 hashes on the download dir of rakudo? the gpg key is a hassle (at a loss where to find it) 21:46
arcetera hmm
21:46 prammer left
tadzik ahahahah 21:46
that's awesome
moritz El_Che: I'm kinda at a loss here. What are you trying to achieve? 21:47
El_Che I want to make sure my docker image is downloading the correct rakudo tar (the download is http only, the hash would be hardcoded in the Dockerfile)
I am already checking hashes for other projects and I image many people do 21:48
(man in the middle + breakin-after-the-hash-was created thing)
hoelzro El_Che: ooc, did you know there's an official docker image for R*? 21:49
21:49 prammer joined, geekosaur left
El_Che hoelzro: yes. It does not answer my needs 21:49
moritz El_Che: sounds sensible
El_Che hoelzro: great it's there though
hoelzro El_Che: may I ask in which ways it's lacking? I would be happy to improve it!
21:49 geekosaur joined
tadzik oh, I need to try hoelzro's repl 21:50
El_Che hoelzro: it's not lacking at all. My use case is just different:
hoelzro howdy tadzik!
tadzik o/
hoelzro and please do; it needs to get any bugs shaken out =)
El_Che - I am starting from a locally admined base image (by our linux admin): local adaptation + security
- I only need rakudo + panda/zef, not star 21:51
hoelzro ah, ok
so that first req throws out any image I would make off the bat
El_Che the docker image works fine, but I am somewhat unconfortable about not checking the hash
hoelzro having a rakudo image sans star might be a good idea, though
El_Che hoelzro: yes, indeed. It woudn't mean I couldn't copy paste your code and put your name in a comment :) 21:52
hoelzro =)
El_Che hoelzro: I can put it online, small differences
hoelzro: this is what I use: gist.github.com/nxadm/a2abb4b34e962d4b5a2a 21:55
I much prefer debian based distros but we standarized on centos 7
hoelzro nice 21:56
El_Che still kind of the fence between panda and zef, so I have both
for a generice image both inside are ok
for my personal project, one will go probably 21:57
so I would like to add the checksum checking 21:58
21:58 prammer left
El_Che it's also a lot easier/lighter for docker images compared with gpg 21:58
(when you'll install gpg and remove the keyring afterwards) 21:59
21:59 kid51 joined
El_Che ( I see I need to remove some deps from the image) 22:00
22:00 pmurias__ left
El_Che hoelzro: dockerhub has the concept of "official images". Maybe there could be one for rakudo and one for star (based on the rakudo one). People will more easily used those 22:01
hoelzro yeah, I think maybe we should have both
having an unofficial rakudo-nightly might not be a bad idea either
El_Che indeed
hoelzro but let's see how the official rakudo one takes off first =)
El_Che There are 2 distinct use cases: one is people trying out rakudo (put as much in there as possible), one people building perl6 apps (put the minimal deps) 22:03
arcetera aaaaaaaAAA
hold up
22:03 arcetera left 22:04 arc__ joined 22:05 arc__ is now known as arcetera, arcetera left, arcetera joined
arcetera so let's say I have a function which calls curl and outputs JSON 22:05
how would I take that json and parse it using another functin
function*
El_Che Examples of soft with sha keys: shibboleth.net/downloads/identity-...er/latest/ download.eclipse.org/jetty/stable-9/dist/ 22:06
so if someone with access to the download link of rakudo and want help (or discuss) about the sha hashes: ping me 22:07
going to bed. bye!
arcetera better yet I'm still unable to get CURLOPT_POSTFIELDS to work right
but might as well begin parsing json
so that i can pretty print that the software's broken 22:08
dalek kudo/nom: 6b2b34a | moritz++ | src/core/Map.pm:
Fix RT #127704: Hash.clone keeps old and new hashes entangled
22:09
ast: ab74762 | moritz++ | S12-attributes/clone.t:
RT #127704: Tests for hash cloning
22:12
lizmat And another Perl 6 Weekly hits the net: p6weekly.wordpress.com/2016/03/14/...ueling-up/ 22:14
tadzik yay! 22:15
lizmat moritz: what's wrong with "nqp::create(self) ?
moritz lizmat: probably nothing :-) 22:16
lizmat tests :-)
moritz lizmat: though I wonder if my \clone = callsame; wouldn't be friendlier to inheritance
so that if you subclass Map or Hash and add your own attributes, it'll work there too 22:17
lizmat the "self" should take care of that, no ?
moritz no 22:18
it creates the clone of the correct type, but won't initialize the new attributes
./perl6-m -e 'class A is Hash { has $.a }; say A.new(a => 42).clone.a' 22:19
(Any)
lizmat well, Map.new is defined as "nqp::create(self)
so, I guess subclassing Hashes are fraught as it is
moritz that kinda makes me feel less bad 22:20
arcetera i really do not understand libcurl 22:23
like this code looks perfect 22:25
it should be absolutely perfect
i have no idea what i'm doing wrong sprunge.us/LZHe 22:26
22:27 Sgeo__ joined
lizmat over quota ? 22:31
dalek kudo/nom: b45ccc4 | lizmat++ | src/core/Map.pm:
Nitpick on Hash.clone, moritz++

Use the same method for creating a new object as with "new". See discussion at irclog.perlgeek.de/perl6/2016-03-14#i_12184723
22:34
lizmat is feeling a flu coming up
so bed time!
good night, #perl6!
arcetera night lizmat 22:35
jnthn lizmat: Thanks for the weekly again! :) Rest well, hope you manage to dodge the flu... o/
yoleaux 19:06Z <nine> jnthn: I know of at least one hang on nom when loading NativeCall in a REPL and starting another REPL. That's fixed on the relocateable-precomp branch.
jnthn .tell nine OK, maybe if that's going to land soonish I'll hold on :)
yoleaux jnthn: I'll pass your message to nine.
22:40 wamba left, wamba joined
jnthn 'night, #perl6 22:41
masak 'night, jnthn 22:44
RabidGravy toodles 22:47
22:54 zhmylove left
arcetera this sure as hell is puzzling me 22:56
masak 'night, #perl6 22:58
22:59 zhmylove joined 23:00 wamba left 23:06 vendethiel left
RabidGravy This "Allow Pointers to be cast to is native subroutines" as alluded to in the p6weekly, does this mean that if I have a native api that returns a struct with one or more pointers to functions I can actually call them as subroutines? 23:24
Obviously I could look at code and/or tests to answer this 23:25
Skarsnik Yes, there is an example in the doc
in NC
RabidGravy OooOOOooh
Skarsnik you can use nativecast on the pointer
RabidGravy I foresee a cheeky binding to LADSPA and/or LV2 on the cards then 23:26
then we can REALLY BRING THE NOISE
Skarsnik I hope someone with make a real solution x) 23:27
but at least it make them usable
RabidGravy that is a real solution
Skarsnik Well I prefer if it could declare with the signature or something ^^ 23:28
RabidGravy thing returns a CStruct, you make a method in the class which makes everything nice
Skarsnik like class B is rerp<cstruct> { has Callable() $.funcptr;
RabidGravy oh sure
or just has &.foo (.....) 23:29
sure
23:31 perlawhirl joined
perlawhirl hi perlers 23:33
hi masak... was just reading the logs and saw the hash.clone entanglement thing and I had a question 23:34
i thought the whole point of infix ':=' was that it entangled ? 23:35
timotimo well, nqp has only :=
perlawhirl well, the docs provide the example of := as follows 23:36
m: my $a = 42; my $b := $a; $b++; say $a;
camelia rakudo-moar b45ccc: OUTPUT«43␤»
perlawhirl oh wait
never mind... i understand now :D
i was gonna say that i don't see why 'my %b := %a.clone' should behave differently, but then it hit me that %a.clone is not %a ... so the world makes sense again 23:37
so following commit 6b2b34a791... 'my %b := %a' will still entangle, but 'my %b := %a.clone' will not... correct? 23:39
23:43 cdg_ joined 23:45 cdg_ left 23:47 cdg left, Skarsnik left
RabidGravy perlawhirl, that is the intention 23:50
23:55 firstdayonthejob left
RabidGravy anyway, I'm going to crash, this documentation will keep until the morning 23:57
toodles
23:58 labster left