»ö« 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. |
|||
[Coke] starts working on 2016.02 release process... | 00:04 | ||
yoleaux | 20 Feb 2016 20:25Z <lizmat> [Coke]: I fixed one more bug in .first(:end). Hope it's still good to include in release. If not, revert/exclude 8fdaada | ||
00:05
dindinx left
00:06
rr joined,
rr left
|
|||
dalek | p: ed92966 | coke++ | VERSION: bump VERSION |
00:13 | |
[Coke] | nqp jvm failure: t/nqp/76-capture.t | 00:24 | |
[Coke] opens github.com/perl6/nqp/issues/277 | 00:26 | ||
why is make release on nqp complaining that it can't find nqp js files? | 00:28 | ||
me tries doing a js build to see if that somehow became required this month. | 00:30 | ||
js build hangs. | 00:36 | ||
[Coke] is reminded to start trying to cut a release like every week . :P | 00:37 | ||
00:37
wamba left
|
|||
MadcapJake | almost done: github.com/MadcapJake/sixbug/tree/all-tickets | 00:50 | |
if anyone has any input on issue templates, please submit a PR, issue, or message me. | 00:51 | ||
00:55
neilb left
01:03
SCHAAP137 left
01:05
japhb joined
|
|||
AlexDaniel | MadcapJake: what about Q:s< {"id":"$id","subject":"$subject","created":"$created"}> ? | 01:17 | |
MadcapJake: this is unrelated to the main issue but still :) | |||
sufrostico | The NativeCall Library works with static libraries? | 01:18 | |
01:21
BenGoldberg joined
01:27
revhippie joined
01:28
dh7320 left
01:31
revhippie left
01:32
kid51 joined,
Actualeyes joined
01:37
cpage_ joined
01:38
Sgeo joined
01:39
alpha123 left
01:41
Sgeo__ left
|
|||
[Coke] | guessing we're missing a dependency on the makefile template somewhere; after a git clean -xdf, nqp HEAD seems fine. | 01:50 | |
02:13
kurahaupo joined
02:15
yqt left,
molaf_ joined
02:20
molaf left
|
|||
AlexDaniel | star: sub foo(Int() $x) { say $x }; foo(True) | 02:21 | |
camelia | star-m 2015.09: OUTPUT«1» | ||
AlexDaniel | m: sub foo(Int() $x) { say $x }; foo(True) | ||
camelia | rakudo-moar 77581b: OUTPUT«True» | ||
AlexDaniel | huh? | ||
star: sub foo(Int $x) { say $x }; foo(True) | |||
camelia | star-m 2015.09: OUTPUT«5===SORRY!5=== Error while compiling /tmp/zX3xorjh3fCalling foo(Bool) will never work with declared signature (Int $x)at /tmp/zX3xorjh3f:1------> 3sub foo(Int $x) { say $x }; 7⏏5foo(True)» | ||
AlexDaniel | I thought that Int() should do the trick? | 02:22 | |
dalek | kudo/nom: be7dd67 | coke++ | docs/ (2 files): Add release announcement for 2016.02 |
||
kudo/nom: 4d5cb05 | coke++ | docs/release_guide.pod: rely on default file name, be less specific |
|||
kudo/nom: 2953d0a | coke++ | docs/ChangeLog: fix typo |
|||
kudo/nom: 80a4998 | coke++ | tools/build/NQP_REVISION: [release] bump NQP revision |
|||
kudo/nom: f04a894 | coke++ | VERSION: [release] bump VERSION |
|||
MadcapJake | AlexDaniel, isn't that an old star release? | ||
AlexDaniel | MadcapJake: it is | ||
MadcapJake: but I feel like Int() was actually working right before Christmas | 02:23 | ||
02:31
alpha123 joined
|
|||
[Coke] | m: say Bool ~~ Int | 02:43 | |
camelia | rakudo-moar f04a89: OUTPUT«True» | ||
[Coke] | start: say Bool ~~ Int | ||
star: say Bool ~~ Int | |||
camelia | star-m 2015.09: OUTPUT«False» | ||
[Coke] | guess not. | 02:44 | |
02:45
kid51 left
|
|||
[Coke] | note that 2015.09 is not "right before" | 02:45 | |
AlexDaniel | [Coke]: I remember some trick which was like Int() or something | 02:46 | |
that actually worked, hmmm | |||
02:46
ilbot3 left
|
|||
AlexDaniel | star: sub foo(int $x) { say $x }; foo(True) # hehe | 02:47 | |
camelia | star-m 2015.09: OUTPUT«1» | ||
02:47
ilbot3 joined
|
|||
AlexDaniel | m: sub foo(int $x) { say $x }; foo(True) # I meant this | 02:48 | |
camelia | rakudo-moar f04a89: OUTPUT«1» | ||
02:50
sufrostico left
|
|||
dalek | ast/6.c-errata: 527da4c | coke++ | S11-modules/require.t: This test is now passing on rakudo HEAD |
03:08 | |
03:12
ChoHag left
03:14
colomon joined
|
|||
[Coke] | release isn't happening today, there are failnig tests. | 03:15 | |
Please be mindful and perhaps don't commit to nom branch until we get this resolved except for the bug fixes. | 03:16 | ||
03:19
DoverMo joined
|
|||
DoverMo | i got good at locking in my souls | 03:19 | |
[Coke] | Anyone wants to poke, the meta ticket is rt.perl.org/Ticket/Display.html?id=127589 | 03:21 | |
moritz | [Coke]: the last spectest run on hack was successful, so it must be platform specific tests or flappers | 03:25 | |
[Coke] | moritz: are you running roast/master tests? | 03:30 | |
moritz | [Coke]: yes | ||
[Coke] | that's not what needs testing. | ||
moritz | oh | ||
[Coke] | we need to make sure we're not breaking the 6.c tag / 6.c-errata branch | ||
03:30
rpburkholder left
|
|||
moritz | m: say dir()[0].^name | 03:49 | |
camelia | rakudo-moar f04a89: OUTPUT«IO::Path» | ||
dalek | ast/6.c-errata: 31fa3f9 | moritz++ | S32-io/dir.t: #127591: Relax test a bit this tested against IO::Local, and the test never passed. These days, IO::Local is gone, so the previously failing test now errors out. Instead, relax the test to check for IO::Path. And unfudge, because it passes that way. |
03:51 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127591 | ||
03:52
avenj left
03:54
noganex joined
03:57
noganex_ left
|
|||
[Coke] | moritz: when was IO::Local remoed? | 04:00 | |
skids | Anyone understand the part of design.perl6.org/S12.html#proto_Signatures that talks of mapping named to positionals? I can't a code example for it. | 04:22 | |
04:25
lichtkind left
04:33
zpmorganASDF joined
04:34
zpmorgag left
04:35
zpmorgag joined
04:38
zpmorganASDF left,
kurahaupo left
|
|||
skids | [Coke]: looks like commit 5ed58f6d maybe? | 04:38 | |
04:42
Ben_Goldberg joined
|
|||
jdv79 | was newio merged? | 04:43 | |
04:43
TEttinger left
04:45
BenGoldberg left,
Ben_Goldberg left
04:53
atweiden joined
04:54
DoverMo left
|
|||
atweiden | anyone know how to fix this? | 04:55 | |
m: class ABC { method mod($container, :$value!) { my $root := $container; $root = $value; }; }; my %container; ABC.mod(%container, :value({:a(7)})); say %container.perl; | |||
camelia | rakudo-moar f04a89: OUTPUT«Cannot assign to a readonly variable or a value in method mod at /tmp/j0adloWvJ5 line 1 in block <unit> at /tmp/j0adloWvJ5 line 1» | ||
Juerd | atweiden: Well, 'method mod($container is rw, ...' would be a start, but then you run into that hashes aren't writable containers :) | 05:03 | |
You could work around that by using $container instead of %container. | 05:04 | ||
dalek | osystem: 9ae882c | okaoka++ | META.list: Add Algorithm::ZobristHashing to ecosystem See github.com/okaoka/p6-Algorithm-ZobristHashing |
05:14 | |
osystem: 55c9189 | (Fritz Zaucker)++ | META.list: Merge pull request #159 from okaoka/add-zobrist Add Algorithm::ZobristHashing to ecosystem |
|||
atweiden | Juerd: i can do that, but i don't think it would make for a sane api. would dropping down to nqp be a possible solution? | 05:18 | |
05:20
TEttinger joined
|
|||
llfourn | skids: I've pondered that sentence before when writing proto docs. Never understood it either. | 05:24 | |
skids | m: proto sub a (:$a!, :$b!) {*}; multi sub a ($a, $b) { 42.say; "$a $b".say }; a(:a,:b) # that's how I interpreted it but either I'm wrong or its an NYI | 05:27 | |
camelia | rakudo-moar f04a89: OUTPUT«Cannot call a(:a, :b); none of these signatures match: ($a, $b) in block <unit> at /tmp/7y8VLQ5AQY line 1» | ||
llfourn | cool that kinda makes sense | 05:29 | |
skids | Maybe it needs an explicit dispatch in the proto, but the language kinda makes it sound like inferred behavior. | ||
Also, that mystery mechanism is cited as the reason "6.0.0" (6.c) sort of supports named parameter mmd even though it isn't required. | 05:32 | ||
llfourn | where is this citation out of interest? | ||
skids | design.perl6.org/S12.html#Multi_Sub..._et_Cetera | 05:33 | |
llfourn | ah thanks so that does sound more like what you gave as an example. | 05:34 | |
I think the present implementation makes sense is there a reason to change it? | 05:36 | ||
05:37
zpmorgag left
|
|||
skids | No, I'm just looking into it while improving the metamodel signature comparator. | 05:39 | |
llfourn | ah awesome. That required multis from roles thing? | 05:41 | |
rt.perl.org/Public/Bug/Display.html?id=127303 | 05:42 | ||
skids | No, just stuff like this is currently wrong: | 05:44 | |
m: role A { multi method a ($a, $b) { }; multi method a ($b, $a) { } }; role B { }; class C does A does B { }; # should conflict like: | |||
camelia | ( no output ) | ||
skids | m: role A { multi method a ($, $) { }; multi method a ($, $) { } }; role B { }; class C does A does B { }; # should conflict like: | ||
camelia | rakudo-moar f04a89: OUTPUT«5===SORRY!5=== Error while compiling /tmp/bXod6RANiAMulti method 'a' with signature :(C $: $, $, *%_) must be resolved by class C because it exists in multiple roles (A, A)at /tmp/bXod6RANiA:1» | ||
05:44
autarch left
|
|||
skids | The names of positional parms should not matter. | 05:45 | |
Currently this is done by comparing signature.perl's | |||
llfourn | ah well that is sorta the same problem as RT #127303 | 05:46 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127303 | ||
skids | (And not done in many places, but I'm not addressing that yet) | ||
llfourn | oh hey bot welcome back | ||
skids++ I'll leave you to it :) | |||
skids | anyway, time to hit the hay. | 05:49 | |
05:49
skids left
|
|||
llfourn | skids: 'night | 05:49 | |
06:00
atweiden left
06:02
Cabanossi left
06:04
Cabanossi joined
|
|||
average | AlexDaniel: yeah, I agree.. there are some bash code style things that could be better | 06:08 | |
AlexDaniel: I'm curious what you think about the rest | 06:09 | ||
06:11
cbk left
|
|||
AlexDaniel | average: well, I can only talk about my experience. Any time I needed something more complicated than a couple lines of bash code I usually regretted that I decided to solve the task with bash… All these times I ended up rewriting it in something else and hugely profiting from that rewrite. And that's given that I know bash really well. So even though these code snippets are far from being over-complicated, still I'd ask myself several | 06:21 | |
times if it would be easier to do that in, like, Perl 6. Where's Perl 6 version, by the way? | |||
06:22
adu joined
|
|||
jdv79 | ditto. i do not know bash well but i've delved deep a bunch of times to give it a chance and never was it a great experience or product. | 06:22 | |
AlexDaniel | average: that being said, I'm sure that somebody will find it very useful, if you remove all quoting footguns of course :) | ||
average | AlexDaniel: hehe | ||
AlexDaniel: well yeah, i agree with you that bash offered little control.. that's what i felt throughout looking for ways of making that queue thing | 06:23 | ||
06:24
ggoebel16 joined
|
|||
average | AlexDaniel: the main reason for such a solution is a low-overhead, minimalist, only using stuff that a system is most likely to be equipped with | 06:24 | |
so basically that was the main excuse for trying to do it | |||
AlexDaniel: to your question, yeah there's no p6 version, but there's a p5 version :) | |||
jdv79: I keep the bash code snippets in the blog post quite small | 06:26 | ||
AlexDaniel | average: I'm not sure if on this channel it counts as a reason for not having p6 version :) | 06:27 | |
jdv79 | average: nice | ||
average | jdv79: I don't go very deep with Bash's idioms, I'm sure there are plenty tho | ||
AlexDaniel: well, what's right is right.. | 06:28 | ||
AlexDaniel: thanks for skimming through it and offering feedback :) | |||
AlexDaniel | for a long time I wanted to start a blog about bash refactoring. E.g. every week I'd pick a random free software project, find a bash script in there, figure out that half of the variables are not quoted, find actual problems caused by that, refactor, send PR, done. | 06:31 | |
that's what I did many times actually, I just didn't blog about it, eh. Should start it one day anyway | |||
06:33
adu left
|
|||
AlexDaniel | the problem with bash is that most people think that it is a very simple fool-proof tool that requires no learning. Yeah, right… Yeah… | 06:34 | |
06:34
khw left
|
|||
average | well, generally, there are situations where low-cost simplistic solutions fit well | 06:34 | |
I am happy to pluck a hole with a Bash script, in cases where I don't care very much and where I do not have time | 06:35 | ||
AlexDaniel | yeah, it is so. I'm just saying that in this situations you should be very careful. Much more careful than when you write in other languages | ||
these* | 06:36 | ||
e.g. in other languages just using a variable can't result in an execution of some random code | 06:37 | ||
average | oh, yeah, I agree. the oportunity for security problems is hiding around almost every corner | ||
on the other hand, if you were to cover all of those, the code blocks in your blog post would probably take up a significant amount of page space | 06:38 | ||
AlexDaniel | like, good job, you've just incremented a number, yeah: mywiki.wooledge.org/BashPitfalls#re...2B-1.29.29 | 06:39 | |
average: and not so much space if you were using something else :) | |||
average | between a rock and a hard place :P | ||
AlexDaniel | but for really really short script sure enough it is hard to beat bash | 06:40 | |
k, back to programming microcontrollers | 06:43 | ||
xiaomiao | s/bash/posix sh/ ;) | 06:45 | |
AlexDaniel | xiaomiao: fair enough. Though I don't see non-bash shell scripts very frequently | 06:47 | |
xiaomiao | AlexDaniel: I see lots of people religiously putting #!/bin/bash there and then not using any bash features (e.g. [[ or += ) | 06:48 | |
and since bash is relatively slow, why use it for /bin/sh ... | |||
AlexDaniel | xiaomiao: or other way round! Putting #!/bin/sh there and then using bashisms | ||
llfourn | ^^ this is the worst problem | ||
xiaomiao | AlexDaniel: yeah, all of the nagios community | ||
my favourite is still "shell has no loops" => wrap a single statement in a ruby loop => sigh | 06:49 | ||
llfourn | $((a++)) # works in many /bin/sh but not dash | ||
xiaomiao | now for every iteration you spawn a subshell :( | ||
AlexDaniel | xiaomiao: oh, subshells! People love that! | 06:50 | |
MadcapJake | how do you turn a string into a regex? | 06:51 | |
AlexDaniel | MadcapJake: are you sure that you don't want to store the regex itself? | ||
llfourn | m: my $str = ".+"; say "foo" ~~ rx/$str/; | 06:52 | |
camelia | rakudo-moar f04a89: OUTPUT«Nil» | ||
06:52
abaugher left
|
|||
AlexDaniel | m: my $str = /.+/; say "foo" ~~ $str; | 06:53 | |
camelia | rakudo-moar f04a89: OUTPUT«True» | ||
llfourn | m: my $str = ".+"; say "foo" ~~ rx/<{$str}>/; | ||
camelia | rakudo-moar f04a89: OUTPUT«「foo」» | ||
llfourn | I think that might be it | ||
but perhaps there's a better way | 06:54 | ||
MadcapJake | m: my regex foobar { <{ <foo bar>.join('|') }> }; say('bar' ~~ &foobar); # yep, wanted to take a list and turn it into an alternation, thanks! | ||
camelia | rakudo-moar f04a89: OUTPUT«「bar」» | ||
llfourn | cool. | 06:55 | |
06:55
abaugher joined
06:58
sno left
07:02
ggoebel16 left
|
|||
Hotkeys | why not just use any() there? | 07:11 | |
AlexDaniel | yea? | 07:12 | |
m: say so ‘foo’ . contains: any <oo aa ee> | 07:15 | ||
camelia | rakudo-moar f04a89: OUTPUT«True» | ||
07:19
nowan left
|
|||
[Tux] | test 22.404 | 07:22 | |
test-t 12.042 | |||
csv-parser 49.675 | |||
07:23
nowan joined,
CIAvash joined
07:24
alpha123 left
07:28
Actualeyes left
07:29
ggoebel16 joined
07:37
firstdayonthejob joined
07:40
nakiro joined
07:42
Actualeyes joined
|
|||
MadcapJake | Hotkeys, because it's part of a greater regex and I need the matched contents | 07:43 | |
Hotkeys | ah | ||
07:44
_mg_ joined
07:52
kentnl joined
07:53
kentnl left,
kentnl joined,
kent\n left,
kentnl is now known as kent\n
|
|||
CIAvash | MadcapJake: If you use the list directly it will do the alternation | 07:53 | |
m: my regex foobar { @(<foo bar>) }; say('bar' ~~ &foobar); | |||
camelia | rakudo-moar f04a89: OUTPUT«「bar」» | ||
MadcapJake | haha! nice xD | 07:54 | |
07:55
FROGGS joined
07:56
RabidGravy joined
|
|||
CIAvash | m: my regex foobar { || @(<foo bar>) }; say('bar' ~~ &foobar); # if you don't want the longest alternation | 07:57 | |
camelia | rakudo-moar f04a89: OUTPUT«「bar」» | ||
07:57
domidumont joined
07:58
mr-foobar joined,
fireartist joined
08:02
darutoko joined
08:03
domidumont left,
domidumont joined
08:06
ely-se joined
08:12
Skarsnik joined
08:17
neilb joined
|
|||
RabidGravy | BOOM! | 08:17 | |
fireartist | ~fizzle~ | 08:18 | |
08:22
neilb left
08:24
zakharyas joined
08:30
domidumont left,
firstdayonthejob left
|
|||
moritz | blörg! | 08:35 | |
08:37
matta is now known as matt_
08:38
abraxxa joined
08:40
Ethan joined
08:41
Ethan left,
neilb joined
|
|||
FROGGS | broom! | 08:42 | |
RabidGravy | bleep! | 08:44 | |
MadcapJake | issue submitter progress: youtu.be/8SlFZEra-98 | 08:47 | |
MadcapJake is off to bed | |||
llfourn watches vid | |||
MadcapJake: 4 seconds in and this is epic | |||
MadcapJake»++ | 08:48 | ||
RabidGravy considers he may have coded himself into a corner with this code | 08:49 | ||
FROGGS | MadcapJake++ | 08:50 | |
08:50
sortiz joined
|
|||
Skarsnik | MadcapJake++ | 08:53 | |
sortiz | \o #perl6 | ||
llfourn | o/ # check out youtu.be/8SlFZEra-98 | ||
08:54
dh7320 joined
|
|||
sortiz | moritz, The problem with rt.perl.org/Ticket/Display.html?id=127593 is that IO::Dir was removed at the same time that IO::Local, but 6.c-errata still check for it. | 08:57 | |
08:57
vendethiel- left
08:58
Amendil joined
|
|||
sortiz | MadcapJake++ | 08:58 | |
moritz | sortiz: yes. I just don't know what to do with it | ||
this whole WHICH.t file is, like, totally worthless | |||
sortiz | Um, IMO the sane approach now is remove IO::Dir from the @normal list. | 09:00 | |
09:01
pmurias_ joined,
pmurias joined
|
|||
sortiz | moritz, I dunno if other tests check for the classes expected in settings. | 09:02 | |
09:02
vendethiel joined
|
|||
pmurias | [Coke]: that failing test is caused by nqp-jvm missing an op, I'll try to add this op | 09:02 | |
[Coke]: when does the js build hang? | 09:03 | ||
CIAvash | MadcapJake++ | 09:05 | |
09:05
tmch joined
09:06
neilb left,
gregf_ joined
09:10
Praise left
09:11
Praise joined
09:13
neilb joined
09:15
|Tux| left
|
|||
Woodi | so modern GUI :) MadcapJake++ | 09:19 | |
mst++ # human-file-names++, promises | 09:20 | ||
09:21
|Tux| joined
09:22
wamba joined
09:23
brrt joined
09:24
sortiz left
09:25
vendethiel left,
ocbtec joined
09:27
fireartist left
09:29
vendethiel joined
09:44
Skarsnik left
09:53
vendethiel left
09:54
sno joined
09:57
vendethiel joined
|
|||
DrForr | o/ | 09:58 | |
brrt | \o DrForr | 09:59 | |
DrForr | If I have time this weekend App::prancer might make it into the modules.perl6.org repo. | 10:00 | |
llfourn | DrForr: What's prancer? | 10:01 | |
brrt | hey #perl6, i have something odd | 10:10 | |
if I have this file: '#!/usr/bin/env perl6\nsay "OH HAI";' and run it as an executable, no code is run | 10:12 | ||
if i perl6 ./foo.pl6 then it is | |||
DrForr | One mo... | 10:13 | |
github.com/drforr/perl6-App-prancer | 10:14 | ||
10:14
pmurias left,
pmurias_ left
|
|||
brrt | in fact, i'm not sure whether the ./foo.pl6 syntax invokes the perl6 interpreter at all | 10:14 | |
10:14
pmurias joined
10:15
pmurias_ joined,
pmurias left,
pmurias_ left
|
|||
El_Che | DrForr: It could be useful for writing rest services. Is it threaded? | 10:16 | |
DrForr | It's just a .. er, shell on top of Crust. However it operates things right now, I haven't really tested the guts because at FOSDEM the author said it still wasn't handling concurrency as well as it should be. But it's one of the few (okay, it's the only) PSGI server I could build on. | 10:18 | |
El_Che | yeah, I remember. It froze around 100-200 requests or something | 10:19 | |
10:19
pmurias joined
10:20
pmurias_ joined
|
|||
DrForr | I.E. whatever model Crust uses, I'm piggybacking on. I assume that the callback is running in its own thread which means GET requests each run in their own thread, but that's unsubstantiated, I'd have to RTFS. | 10:20 | |
El_Che | I asked because I would like to create a rest interface in perl6 | ||
DrForr | Well, I actually have plans for a REST handler layer on top of the existing functional. | ||
El_Che | that's great news | 10:21 | |
DrForr | I can read the variable names, so 'sub POST( "/post", Str:D $username ) is REST { }' will eventually DTRT and listen for '/post/username/$username'. | ||
El_Che | we've been prototyping with java spring for that stuff, where almost everything is autogenerated. It would be great to do it in perl6 | ||
DrForr | And. *AND*. Last night I was thinking about that and realized that a lot of the boilerplate code the current Dancer app I'm building could be removed if we could do soemthing like: | 10:22 | |
10:22
cpage_ left
|
|||
DrForr | multi GET( '/post', User $user ) is REST { } # where the app takes the rest of the /post arguments and passes them to the User.new() method directly, populating $user. | 10:23 | |
And www.youtube.com/watch?v=vAUVaBFtjfc picked that time to start :) | 10:25 | ||
FROGGS | brrt: problem (on osx) is that your wrapper is calling a wrapper | ||
brrt: and that does not seems to work out | |||
10:27
abraxxa left,
abraxxa1 joined
|
|||
brrt | indeed | 10:28 | |
FROGGS | works on linux fwiw | 10:29 | |
brrt refrains from saying nasty things about OS-X, for the time being | |||
average | I like queues a lot | 10:30 | |
can someone make a cool blog post about queues in p6 so I can munch a burger while skimming it ? | |||
brrt | what kind of queues are you talking about average? | 10:31 | |
the term has become a bit overloaded recently | |||
average | brrt: blog.garage-coding.com/2016/02/05/b...queue.html | ||
brrt: these kinds of queues | |||
brrt | from 'dequeue' data structure, to 'job queue' to, 'enterprise microservices coodrination thingy' | ||
average | well, i mean.. the idea of inserting into a message queue and like.. just popping stuff off of it and consuming the contents | 10:32 | |
brrt: well.. the enterprise things are really enterprise.. they give you that feeling that someone just dropped a ton of paperwork on your face | 10:33 | ||
i mean.. lightweight stuff is more attractive, at least to me | |||
also, can people here when you make blog posts, can you put a lot of drawings in them ? i like drawings a lot, when i see drawings i'm like "yess!! drawings" | 10:34 | ||
RabidGravy | DrForr++ # that stuff is looking good BTW | 10:35 | |
Woodi | average: probably you shoud google for some Perl6 docs :) | ||
moritz | average: I could use some help with pretty drawings; if you help (or find somebody else who helps), I'll be very happy to include some pretty drawings in my blog posts | ||
DrForr | RabidGravy: Thanks. | 10:36 | |
brrt | average: i suppose the equivalent thing would be a supply with an await that reads the supply and dispatches to start | 10:37 | |
otherwise, if you want a fifo-based operating system level queue system, i humbly suggest you use the operating system :-) | |||
psch | m: my $ch = Channel.new; $ch.send($_) for ^5; for ^5 { start { say "$_ got {$ch.poll}" } }; | 10:38 | |
camelia | rakudo-moar f04a89: OUTPUT«1 got 12 got 20 got 03 got 3» | ||
DrForr | I'm just glad that ok so True == ( map { ?$_.<node> }, $s.graph.values).all worked the first time I tried it :) | ||
psch | i'm *still* not quite sure on Channel vs. Supply, though... | ||
also i don't know where the 4 went vOv | 10:39 | ||
further, hi #perl6 o/ | |||
10:39
Mokok joined
|
|||
timotimo | .tell [Coke] did you mean that to read "It includes bugfixes and optimizations on top of the 2015.12 release of Rakudo, but no new features."? as in: .12? also, that sentence lacks a full-stop in front | 10:39 | |
yoleaux | timotimo: I'll pass your message to [Coke]. | ||
jast | heh, first time I've seen 'vOv' -- cute :) | 10:40 | |
10:40
vendethiel left
10:41
vendethiel joined
|
|||
RabidGravy | psch, probably want an "await" in there | 10:44 | |
10:45
FROGGS left,
cognominal left
|
|||
dalek | ast/6.c-errata: 6af3c5b | lizmat++ | S32-temporal/DateTime.t: Fix faulty test When in a leap second, adding a day should not move your forward to next day, but will put you in the last second of the next day. Just as moving one month from Jan 31 will not put you in March, but in the last day of February. This incorrect behaviour was fixed post 2015.12: this test was incorrect, and is now fixed. |
10:45 | |
psch | RabidGravy: right, thanks, that gets all 5 elements | ||
it also seems to put things back in order, which i guess is sensible | |||
m: my $ch = Channel.new; $ch.send($_) for ^5; for ^5 { await start { say "$_ got {$ch.poll}" } }; # | |||
camelia | rakudo-moar f04a89: OUTPUT«0 got 01 got 12 got 23 got 34 got 4» | ||
lizmat | .tell [Coke] RT #127590 is fixed | ||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127590 | ||
yoleaux | lizmat: I'll pass your message to [Coke]. | ||
RabidGravy | psch, however | ||
m: my $ch = Channel.new; $ch.send($_) for ^5; await for ^5 { start { say "$_ got {$ch.poll}" } }; | 10:47 | ||
camelia | rakudo-moar f04a89: OUTPUT«5===SORRY!5=== Error while compiling /tmp/waHNV_9JhnUnexpected block in infix position (missing statement control word before the expression?)at /tmp/waHNV_9Jhn:1------> 3l.new; $ch.send($_) for ^5; await for ^57⏏5 { start { say "$_ got {…» | ||
RabidGravy | m: my $ch = Channel.new; $ch.send($_) for ^5; await do for ^5 { start { say "$_ got {$ch.poll}" } }; | ||
camelia | rakudo-moar f04a89: OUTPUT«1 got 10 got 02 got 23 got 34 got 4» | ||
psch | ah | ||
neat | |||
10:48
rindolf joined
|
|||
RabidGravy | in the way you had it was awaiting on each one in turn before starting the next, the latter way starts them all and awaits for all of them | 10:49 | |
thus, not necessarily in order | |||
psch | yeah, i get that, thanks :) | 10:51 | |
jnthn | Beware that .poll doesn't block for a value (and in this simple example of course there always will be values) | ||
psch | yes, that was deliberate on my part. the un-awaiting example is silent with .receive instead of .poll - and i had forgotten await exists... :) | 10:52 | |
RabidGravy | :) | ||
.seen supernovus | 10:53 | ||
yoleaux | I saw supernovus 28 Dec 2015 18:21Z in #perl6: <supernovus> At some point I should look at rakudobrew to replace my moon script that I've been using for the last 4 years. | ||
moritz | today's autopun: twitter.com/carlmaxim/status/701707649331625984 | 10:54 | |
RabidGravy | may have some suggestions regarding namespace handling in the XML module at some point | ||
10:54
andrewalker joined
|
|||
RabidGravy | just hacking around my difficulties with a role at the moment | 10:55 | |
dalek | ast/6.c-errata: a069b92 | lizmat++ | integration/weird-errors.t: Replace one weird error with another It really feels to me that this type of test is really bogus. But something got fixed along the way from 2015.12, and now this piece of code fails in a better way, differently from before. Perhaps we should only test that it fails, period? This takes care of RT #127592 |
10:58 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127592 | ||
brrt | iirc there was an operator to get the maximum of two values, is that correct? | 11:01 | |
m: say 1 max 4; | |||
camelia | rakudo-moar f04a89: OUTPUT«4» | ||
brrt | ok, now, how do i apply that listwise | 11:02 | |
e.g. | |||
psch | m: say [max] 1,2,3,4 | ||
camelia | rakudo-moar f04a89: OUTPUT«4» | ||
psch | m: say (1,2,3,4).max | ||
camelia | rakudo-moar f04a89: OUTPUT«4» | ||
brrt | ok, how do i apply that zip-listwise | ||
dalek | ast/6.c-errata: c73db6b | lizmat++ | S02-types/WHICH.t: Remove tests for IO::Dir & IO::File These were leftovers of a merge attempt of the newio branch. The code was basically in 2015.12, but wasn't used. It has since been removed. These were the only 2 tests for these classes in roast. They shouldn't have been there in the first place. Mea culpa. This fixes RT #127593 |
||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127593 | ||
brrt | m: say q:w[1 2 3 4] Z q:w[4 3 2 1]; | ||
camelia | rakudo-moar f04a89: OUTPUT«((1 4) (2 3) (3 2) (4 1))» | ||
lizmat | .tell [Coke] afaics, all blockers for 2016.02 have been dealt with | 11:03 | |
yoleaux | lizmat: I'll pass your message to [Coke]. | ||
brrt | m: say (q:w[1 2 3 4] Z q:w[4 3 2 1]).>>max; | ||
camelia | rakudo-moar f04a89: OUTPUT«5===SORRY!5=== Error while compiling /tmp/2qP2sV14DGMissing dot on method callat /tmp/2qP2sV14DG:1------> 3say (q:w[1 2 3 4] Z q:w[4 3 2 1]).>>7⏏5max; expecting any of: postfix» | ||
psch | oh, of each zip'd pair only the max | ||
brrt | m: say (q:w[1 2 3 4] Z q:w[4 3 2 1])>>.max; | 11:04 | |
camelia | rakudo-moar f04a89: OUTPUT«(4 3 3 4)» | ||
brrt | ah, cool | ||
m: say 0 xx 4; | |||
camelia | rakudo-moar f04a89: OUTPUT«(0 0 0 0)» | ||
brrt | perl6++ | ||
lunch & | 11:05 | ||
11:06
RabidGravy left
|
|||
AlexDaniel | brrt: I find it a little bit too verbose | 11:07 | |
I'd do this instead | |||
m: say q:w[1 2 3 4] Zmax q:w[4 3 2 1] | |||
camelia | rakudo-moar f04a89: OUTPUT«(4 3 3 4)» | ||
psch | max is a bit weird, mostly because of a prefix *and* infix op existing i think | 11:08 | |
Hotkeys | What does the :w adverb do | ||
psch | m: say max 1,2,3; say [max] 1,2,3 | ||
camelia | rakudo-moar f04a89: OUTPUT«33» | ||
psch | the latter is the listop'd infix | ||
jnthn | Hotkeys: split by whitespace | ||
Hotkeys | Ah | ||
jnthn | But you could write it as <1 2 3 4> more neatly :) | ||
psch | that threw me for a loop a bit when trying to find the solution AlexDaniel++ mentioned | ||
Hotkeys | Right | ||
I knew that one | |||
I also know just qw | 11:09 | ||
timotimo | yeah, :w is the same thing as in qw | ||
Hotkeys | Didn't realize it could be q:w | ||
psch | m: say 1,2,3 Z[max] 4,5,6 | ||
camelia | rakudo-moar f04a89: OUTPUT«(4 5 6)» | ||
jnthn | We have colonless shortcuts for a handful of them, yeah | ||
psch | i mean, that just looks confusing... | ||
timotimo | better colonless than spineless, eh? | ||
jnthn | psch: What's confusing about it? :) | ||
psch | jnthn: well, with "max can be infix *and* prefix" it's understandable, i think | 11:10 | |
jnthn | It's not a prefix op though? | ||
m: say &max | |||
camelia | rakudo-moar f04a89: OUTPUT«sub max (+ is raw, :&by = { ... }) { #`(Sub|71270736) ... }» | ||
jnthn | Yeah, just a plain old sub call in that form | ||
psch | right, i mix those up i suppose | ||
11:10
Mokok left
|
|||
psch | in Z[max] it gets the infix as list-op then or what exactly happens there..? | 11:11 | |
jnthn | Z[max] is just another spelling of Zmax | ||
psch | but they do different things :S | ||
m: say 1,2,3 Z[max] 4,5,6; say 1,2,3 Zmax 4,5,6 | |||
camelia | rakudo-moar f04a89: OUTPUT«(4 5 6)(4 5 6)» | ||
psch | grr | ||
no | |||
precedence | |||
uhm, i'll investigate this on my own a bit i guess :P | 11:12 | ||
jnthn | :-) | ||
I'm pretty sure those two forms are identical | |||
AlexDaniel | psch: you can put any other infix op there | ||
timotimo | it's only for disambiguation when you put a [ ] into a metaop-op-combination | ||
AlexDaniel | m: say <1 2 3 4> ZZZ <4 3 2 1> | 11:13 | |
camelia | rakudo-moar f04a89: OUTPUT«((((1 4))) (((2 3))) (((3 2))) (((4 1))))» | ||
psch | oh duh | ||
Hotkeys | Lol | ||
psch | well, the confusion was actually from the data | ||
timotimo | super important to have the "snore" operator | ||
Hotkeys | m: <1 2 3 4> Z, <4 3 2 1> | 11:14 | |
camelia | ( no output ) | ||
Hotkeys | Argh | ||
psch | i didn't realize that of (1,4), (2,5), (3,6) it's always the second value that's bigger | ||
timotimo | hehehe | ||
Hotkeys | I wish the repl wasn't a repl or camelia was a repl | ||
I never remember to use say | |||
11:14
FROGGS joined
|
|||
psch | m: say 1,2,3 Z&[max] 4,5,6 # this one had me stumble a bit too | 11:15 | |
camelia | rakudo-moar f04a89: OUTPUT«(all(1, 6))» | ||
psch | but then i remember that [&sub] is the right form for infixification | ||
Hotkeys | m: say 1...4 Z, 4...1 | ||
camelia | rakudo-moar f04a89: OUTPUT«5===SORRY!5=== Error while compiling /tmp/IazsFworzIOnly identical operators may be list associative; since '...' and 'Z,' differ, they are non-associative and you need to clarify with parenthesesat /tmp/IazsFworzI:1------> 3say 1...4 Z7⏏…» | ||
psch | +ed | ||
lizmat | .tell [Coke] All tests successful. Files=1103, Tests=51466, 277 wallclock secs (13.54 usr 3.82 sys + 1717.11 cusr 146.56 csys = 1881.03 CPU) (on 6.c-errata) | ||
yoleaux | lizmat: I'll pass your message to [Coke]. | ||
Hotkeys | Wow way to get angry camelia | ||
AlexDaniel | Hotkeys: yeah, you have to use parens | 11:16 | |
and I hate it | |||
Hotkeys | m: say <1 2 3 4> Z, <4 3 2 1> | ||
camelia | rakudo-moar f04a89: OUTPUT«((1 4) (2 3) (3 2) (4 1))» | ||
Hotkeys | Nice and redundant | ||
zipping with comma | |||
AlexDaniel | m: say (1…4) Z=> (4…1) | ||
camelia | rakudo-moar f04a89: OUTPUT«(1 => 4 2 => 3 3 => 2 4 => 1)» | ||
AlexDaniel | m: say (1…4) Z<= (4…1) | 11:17 | |
camelia | rakudo-moar f04a89: OUTPUT«(True True False False)» | ||
AlexDaniel | m: say (1…4) Z<=> (4…1) | ||
camelia | rakudo-moar f04a89: OUTPUT«(Less Less More More)» | ||
AlexDaniel | xD | ||
psch | m: say (1…4) ZR=> (4…1) | ||
camelia | rakudo-moar f04a89: OUTPUT«(4 => 1 3 => 2 2 => 3 1 => 4)» | ||
Hotkeys | I was gonna do that but I'm glad you did | ||
Typing code on Android is a pain in the arse | |||
psch | m: say (1…4) ZRRZ=> (4…1) | ||
camelia | rakudo-moar f04a89: OUTPUT«((1 => 4) (2 => 3) (3 => 2) (4 => 1))» | ||
timotimo | m: sub infix:<fst>($a, $b) { $a }; say (1…4) Zfst (4…1) | ||
camelia | rakudo-moar f04a89: OUTPUT«(1 2 3 4)» | ||
Hotkeys | Lol | ||
timotimo | this is th Zfst operator i've ever made | 11:18 | |
psch | is there any doc stuff around for the CUR stuff? i know it's been around a bit, but i've only now again time for jvminterop and apparently i need to make Java classes fit into that somehow | 11:19 | |
AlexDaniel | m: sub infix:<fst>($a, $b) { ($a,$b).pick }; my $x = 5; $x fst= 10 | ||
camelia | ( no output ) | ||
AlexDaniel | m: sub infix:<fst>($a, $b) { ($a,$b).pick }; my $x = 5; $x fst= 10; say $x | 11:20 | |
camelia | rakudo-moar f04a89: OUTPUT«5» | ||
AlexDaniel | m: sub infix:<fst>($a, $b) { ($a,$b).pick }; my $x = 5; $x fst= 10; say $x | ||
camelia | rakudo-moar f04a89: OUTPUT«5» | ||
pmurias_ | is there a way to skip a test file on the jvm? | ||
(for jvm) | |||
psch | pmurias_: you can limit to e.g. moar in t/spectest.data | ||
jnthn | pmurias_: Normally we just don't include them in the spectest.data | ||
11:20
pmurias left,
pmurias_ left
|
|||
timotimo | well, we don't have a separate spectest.data for jvm or moar, eh? | 11:20 | |
jnthn | Oh, right | 11:21 | |
Forgot...it's markers in there | |||
timotimo | but doesn't spectest.data something in it, too? | ||
at least for "stress" | |||
jnthn | Yeah, you mark stuff # moar to run on Moar only, for example | 11:22 | |
AlexDaniel | me ZZZ bed & | 11:23 | |
timotimo | so do we have !jvm? | ||
see ya, AlexDaniel | |||
lizmat | moritz: regarding S02-types/WHICH.t being worthless: it is supposed to track minimal functionality of classes *and* flag if they're gone | 11:25 | |
moritz: which is exactly what it did, so not worthless in my book | 11:26 | ||
11:26
pmurias joined
|
|||
jnthn | timotimo: No; if there are matchers then you have to match at least one of them to run the test | 11:26 | |
So one marked with # moar will never match on JVM | |||
timotimo | ah, ok | ||
11:29
AlexDaniel left
|
|||
psch | hrm, new, new, bless, BUILDALL loop | 11:32 | |
timotimo | interesting | 11:33 | |
psch | i think that's probably where all the StackOverflowErrors i've seen up to now happen :P | ||
timotimo | sounds likely | ||
psch | well, it's really that i'm not sure what exactly i have to hand to a CU::Handle to make it deal successfully with a Java class wrapper | ||
hence the "is there docs" question :) | 11:34 | ||
timotimo | hm | ||
psch | i'd rather not blindly spend a few days trying to manually build a CallFrame that could serve as a context for a ContextRefInstance, at least as long as i'm not sure that *actually* helps | 11:35 | |
timotimo | i expect you'd need to copy how :from<nqp> registers itself, for example, eh? | 11:36 | |
psch | yeah, that's what i started with | ||
timotimo | hmm | ||
11:37
brrt left,
brrt joined
|
|||
dalek | kudo/jvminterop: b11477f | peschwa++ | src/vm/jvm/CompUnit/Repository/Java.pm: Add basic infrastructure to support JVM interop via CURs. |
11:37 | |
kudo/jvminterop: cbf1171 | peschwa++ | t/03-jvm/01-interop.t: :from<java> is gone in favor of :from<Java>. |
|||
kudo/jvminterop: f772323 | peschwa++ | / (4 files): Get JVM interop via CUR started. As of this commit the CUR seems workish, in so far that it breaks because it doesn't get anything useful from RakudoJavaInterop.computeInterop. |
|||
psch | hrm, *CUR *part* | 11:38 | |
anyway, yeah, that dies with "ctxledpad needs a ContextRef" or somesuch | |||
and a ContextRef needs a CallFrame context | |||
timotimo | :S | ||
psch | or rather, a ContextRefInstance needs a CallFrame context | ||
11:39
roguelazer left,
jnap left,
WizJin left
11:40
mrsolo left,
hobbs left,
beatdown left,
caasih left,
skarn left,
solarbunny left,
ilmari left,
flussence left
|
|||
psch | to summarize, as far as i understand all the architecture, from what i pushed just now i need to add something that builds a lexpad around the Java class so that CU::Handle can deal with it correctly | 11:40 | |
11:40
hoelzro left,
dustinm` left,
polyfloyd left
|
|||
psch | and i know awefully little about that... :) | 11:41 | |
11:41
boegel left,
flussence joined,
jnap joined,
ely-se left
11:42
polyfloyd joined,
ilmari joined,
hoelzro joined
11:43
mrsolo joined,
boegel joined,
ely-se joined,
caasih joined
11:44
beatdown joined
|
|||
[Coke] | pmurias: ignore the js build thing from before; if it was an issue, it was only an issue for someone doing a release who had done a build, and then a git pull over that commit. Or it was all just me. | 11:45 | |
yoleaux | 10:39Z <timotimo> [Coke]: did you mean that to read "It includes bugfixes and optimizations on top of the 2015.12 release of Rakudo, but no new features."? as in: .12? also, that sentence lacks a full-stop in front | ||
10:46Z <lizmat> [Coke]: RT #127590 is fixed | |||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127590 | ||
yoleaux | 11:03Z <lizmat> [Coke]: afaics, all blockers for 2016.02 have been dealt with | ||
11:15Z <lizmat> [Coke]: All tests successful. Files=1103, Tests=51466, 277 wallclock secs (13.54 usr 3.82 sys + 1717.11 cusr 146.56 csys = 1881.03 CPU) (on 6.c-errata) | |||
timotimo | oh hey coke :) | ||
11:45
hobbs joined
11:46
Amendil left,
roguelazer joined
11:47
dustinm` joined
|
|||
[Coke] | timotimo: lizmat++ moritz++ # erratizing. | 11:49 | |
timotimo: I don't understand your question about my grammar. | |||
(whoops, timotimo was only meant for send#2 there.) | |||
timotimo | whatever ;) | 11:50 | |
i wonder, should we also mention that Set.hash's returned hash is now properly decoupled from the set? | |||
so that changing the hash no longer changes the set? | |||
[Coke] | timotimo: I deliberately did not include all of Changelog. | 11:52 | |
11:52
skarn joined
|
|||
[Coke] | but if that's a big change, sure, we can add it back. | 11:52 | |
timotimo | right | ||
lizmat | - + Map.Hash now correctly separates from the Map | ||
+ + Set/Map.Hash now correctly separates from the Set/Map | |||
timotimo | it's not terrible | ||
lizmat | in ChangeLog | ||
? | |||
[Coke] | ah, need to put the "not all changes" line back into the release ann. | ||
timotimo | that sounds sensible, lizmat | ||
11:53
kaare_ joined
|
|||
lizmat | timotimo: actually, thinking about it, Set.Hash already separated from Set | 11:53 | |
it just created a has with stringified objects as its keys | 11:54 | ||
*that* was fixed, and that was already in the changelog | |||
*hash | |||
timotimo | you know better than me | ||
pmurias | [Coke]: I'm working on implementing nqp::capturenamedshash on the jvm to unbreak the test | ||
lizmat | yeah | ||
dalek | kudo/nom: 280a487 | coke++ | docs/announce/2016.02.md: bring back text about changelog |
11:55 | |
pmurias | [Coke]: it seems like having travis warn when the nqp-jvm test suit is broken would be great | 11:58 | |
11:59
_mg_ left
12:00
WizJin joined
|
|||
[Coke] | aye | 12:02 | |
12:05
TEttinger left
12:07
CIAvash left
12:09
vendethiel left,
_mg_ joined,
vendethiel joined
12:13
mr-foobar left
|
|||
timotimo | so we'll remove it from the "allowed to fail" parts? | 12:14 | |
pmurias | jnthn: nqp::capturenamedshash is supposed to return only those named parameters that would end up in the slurpy nameds? | 12:21 | |
timotimo | pmurias: it looks like its first argument is a capture and it returns the nameds part of it | 12:22 | |
no, not a capture | 12:23 | ||
MVMCallCapture is the underlying REPR, not like a perl6-level capture | |||
jnthn | pmurias: All named args, captures don't know about slurpies and stuff, that's a signature side thing | 12:24 | |
12:24
ely-se left
12:25
ely-se joined
|
|||
pmurias | jnthn: that should be 2 oks? paste.scsys.co.uk/506031 | 12:29 | |
12:30
zpmorgag joined
|
|||
jnthn | pmurias: Hm, interesting | 12:31 | |
12:31
vendethiel left,
vendethiel joined
|
|||
jnthn | I think it's not typically used in conjunction with a signature | 12:31 | |
Probably it should say ok for both of those, though | |||
But clearly we don't depend on it doing so anywhere :) | 12:32 | ||
pmurias hates backend differences | 12:34 | ||
12:35
luiz_lha left
|
|||
brrt | my first real perl6 program :-) github.com/bdw/lab/blob/master/per...-table.pl6 | 12:38 | |
12:38
sufrostico joined,
abraxxa1 is now known as abraxxa
|
|||
timotimo | for $csv-filename.lines -> $line { @rows.push($line.split(',')); } # somewhere in the distance you hear Tux cry out in pain and suddenly be silenced | 12:38 | |
DrForr | Careful, more of those and people might think this is production ready. | 12:39 | |
brrt | hahaha timotimo | ||
i'll tell you the real problem.... i install rakudo and nqp and stuff from source, right? | |||
|Tux| shuts up | |||
brrt | means i don't get panda | ||
timotimo | um, what? :) | ||
that does not mean you don't get panda | 12:40 | ||
that'd be silly | |||
brrt | well, i would have to figure out where panda is, how to install it, yadayadaya; and, lazy as i am, i haven't figured all those steps | ||
suggestion, we could make install-panda target in rakudo? | 12:41 | ||
timotimo | git clone [email@hidden.address] cd panda; ./bootstrap.pl | ||
there you go | |||
brrt | fair point | ||
i am being unreasonably lazy | 12:42 | ||
12:43
sufrostico left
12:44
sufrostico joined
|
|||
pmurias | manually installing panda is annoying. it's the biggest reason to use rakudobrew | 12:47 | |
timotimo | i did not know that | 12:48 | |
DrForr | rakudobrew on my linode is having an issue. | 12:51 | |
12:51
kolikov joined
|
|||
timotimo | running out of ram perhaps? | 12:51 | |
kolikov | Hi perl6 ! | ||
timotimo | ohai kolikov | ||
12:52
domidumont joined
|
|||
DrForr | Don't remember what the issue was. | 12:52 | |
masak | hi kolikov | 12:53 | |
12:53
vendethiel left
|
|||
brrt | pmurias, but i have good reasons not to use rakudbrew, chief among which, i hack moarvm :-) | 12:53 | |
12:54
RabidGravy joined
|
|||
brrt is now installing Text::CSV | 12:54 | ||
DrForr | Hrm, can't find moar-nom/nom in git. | ||
brrt | moar is on master? | ||
timotimo | yeah, moar doesn't have nom | 12:55 | |
kolikov | I have a question : I installed panda twice using rakudobrew (on linux), I now have 2 pandas : one (old from december) in /opt/rakudobrew/bin/panda and one in /opt/rakudobrew/moar-nom/install/share/perl6/site/bin/panda (new from febuary), can I safely delete the old one ? | ||
DrForr | Sigh. time to RTFM but I was hoping that 'rakudobrew build moar' worked out of the box. | 12:56 | |
dalek | p: a838545 | (Pawel Murias)++ | t/nqp/76-capture.t: Stop brokenly testing for something we don't support across all backends. |
||
p: 6327fc9 | (Pawel Murias)++ | / (3 files): Implement nqp::capturenamedhash on the JVM. Test for accessing native nums and strs using it. |
|||
12:59
vendethiel joined
|
|||
DrForr | rakudo.org needs to rename 'How to get Rakudo Perl 6' to 'Download' :) | 13:01 | |
nine | pmurias: what's so annoying about installing panda? It's just git clone [email@hidden.address] && cd panda && perl6 bootstrap.pl | 13:02 | |
DrForr | Inasmuch as it took *me* a minute or two of staring at the page looking for the 'Download' link. | 13:03 | |
brrt | kolikov: yes, sure you can | 13:09 | |
nine | kolikov: I'm no rakudobrew user but I'd still say yes, you can. Old versions left over by rakudobrew regularily cause problems. And worst case your panda won't work anymore and you'll have to install it again. You'd just lose a bit of time. | 13:10 | |
13:10
luiz_lha joined
|
|||
brrt | DrForr: well volunteered :-P | 13:10 | |
in seriousness, i very much agree | |||
13:10
luiz_lha is now known as Guest39525
|
|||
brrt | we need lazy-people-installers | 13:10 | |
timotimo | DrForr: i think you have to "rakudobrew self-upgrade" or what's it called | ||
DrForr | timotimo: I didn't have the correct repo installed. | 13:11 | |
brrt | of the type curl get.rakudo.org/ | bash | ||
kent\n | "Download / Source", that way you can put either of those things there and people will find it. | ||
brrt | https maybe | ||
well, i can also accept, curl get.rakudo.org/ | perl | |||
DrForr | brrt: I'm not even talking about that. I'm talking about "It took me 20 seconds or so to find the download link under a different name." | 13:12 | |
brrt | i'm running too far ahead :-) | ||
but yeah | |||
13:12
Guest39525 is now known as luiz_lha
|
|||
DrForr | I agree about the 'curl...' thing as well, but baby steps :) | 13:12 | |
brrt nods | 13:13 | ||
13:13
bhm joined
|
|||
kolikov | Thanks ! | 13:13 | |
brrt | on the other hand, sooner the better | ||
timotimo | DrForr: but rakudobrew is supposed to install repos for you | 13:14 | |
13:14
average left
|
|||
DrForr | timotimo: Yes, and it has, but I had the wrong version installed initially. | 13:14 | |
13:15
bhm left
13:16
bhm joined
13:17
bhm left
13:18
bhm joined
|
|||
timotimo | huh | 13:19 | |
still not sure how your configuration looked, but i guess you made it work now :) | |||
13:19
dbrock joined
|
|||
DrForr | Naah, just nuked the .rakudobrew directory and recloned. | 13:20 | |
But my point about 'Download' still stands :) Is there a repo I can make the change in? | 13:21 | ||
13:22
dbrock left
|
|||
[Coke] | hoelzro: so, if your perl6 docker image relies on unix-A, and my stack tends to prefer unix-B, am I probably better off writing my own docker container with a different FROM? | 13:23 | |
El_Che | [Coke]: you too working on a perl6 docker? :) | 13:25 | |
[Coke] | There already is one. | ||
El_Che | [Coke]: I know | ||
I was working to include apps | 13:26 | ||
< on something | |||
dalek | kudo/nom: 7d8d67e | lizmat++ | docs/ChangeLog: Punctuation fix |
||
[Coke] | ah. Not particularly, no; our work environment is being converted from standalone web apps into docker images; Wondering what the best practice is if I want to introduce P6 in that mix. | ||
El_Che | so far, I compile rakudo, add panda and my application and set some default user that will run the application an a default entrypoint with gosu | 13:27 | |
seems to works fine, but I want to get rid of the rakudo compiling step | |||
looking at options on how to create a basic package automatically | 13:28 | ||
that would make every dependant image a lot less verbose (and it will not takes ages to build) | |||
I had a look at the opensuse build ecosystem, but oh boy that was overkill | 13:29 | ||
brrt wonders, in seriousness, if 'dependant' is british english spelling | |||
i only know 'dependent' | 13:30 | ||
[Coke] thinks so | |||
El_Che | you should see my monocle in combination, with my stiff lip | ||
brrt | El_Che: what about building an rpm/deb (if necessary, in one docker container), and installing it in the other | ||
El_Che | brrt: yes, that's the idea | ||
brrt | i think that is something of a standard practice nowadays | 13:31 | |
El_Che | so far the effort was to get a perl6 dockerized on a more of less standard way | ||
13:31
Ven joined
|
|||
Ven | .u 🤔 | 13:31 | |
yoleaux | U+FFFC OBJECT REPLACEMENT CHARACTER [So] () | ||
brrt | .u sun | 13:32 | |
yoleaux | U+0E82 LAO LETTER KHO SUNG [Lo] (ຂ) | ||
U+0E96 LAO LETTER THO SUNG [Lo] (ຖ) | |||
U+0E9C LAO LETTER PHO SUNG [Lo] (ຜ) | |||
brrt | .u star | ||
yoleaux | U+0001 START OF HEADING [Cc] (␁) | ||
U+0002 START OF TEXT [Cc] (␂) | |||
U+0086 START OF SELECTED AREA [Cc] (<control>) | |||
13:33
kid51 joined
13:36
ChoHag joined
13:42
Ven left
|
|||
hoelzro | [Coke]: yes | 13:47 | |
13:51
Psyche^_ joined
13:55
Psyche^ left
13:58
WizJin left
14:06
autarch joined
14:16
kid51 left
|
|||
dalek | Iish/oracle: 983e4b1 | (Salvador Ortiz)++ | .gitignore: Update .gitignore |
14:18 | |
DBIish/oracle: abf4dde | (Salvador Ortiz)++ | lib/DB (2 files): | |||
DBIish/oracle: Fix dinamic drivers loading | |||
14:18
dalek left
14:19
dalek joined,
ChanServ sets mode: +v dalek
|
|||
Woodi | damn, linuxmint.com down... I just few days ago started thinking: it's takes *two* distros to make working desktop in Debian... and now it's hacked... | 14:21 | |
[Coke] | hoelzro: seems like a downside of docker. | ||
Woodi | www.banyanops.com/blog/analyzing-docker-hub/ ;) | 14:22 | |
hoelzro | [Coke]: a bit yes; through wizardry, you *may* be able to convince docker to use a different layer for the base FS layer, but that's going to be low in the internals | ||
moritz | fwiw I'm considering using docker for testing rakudo | 14:25 | |
I want to have a multi-stage test, and need to move a built rakudo between the stages | |||
and since rakudo always wants to know its absolute installation path (and that's not relocatable), simply copying the install/ dir doesn't seem feasible | 14:26 | ||
hoelzro | moritz: so you want to have varying base images below the rakudo installation directory? | ||
moritz | hoelzro: I don't understand your question | 14:27 | |
my docker fu is rather weak :( | |||
hoelzro | moritz: I'm asking if you need multiple docker images, each based on a different distro, for example | 14:28 | |
moritz | the idea is that each commit to rakudo/rakudo triggers the creation of a docker image | ||
no, not at first | |||
just one base image | |||
and build and install rakudo there | |||
and then, next stage: run "make spectest", once against the "master" branch of roast, and once against the 6.c-errata branch | |||
14:29
vendethiel left
|
|||
moritz | and if both succeed, bootstrap a panda (or maybe straight R*) inside the container | 14:29 | |
does that sound vaguely sane and workable? | |||
hoelzro | I think I understand - is this just for smoke testing against master and 6.c-errata, or is it also for having a nightly passing docker image? | 14:30 | |
Woodi | mid-dayly to :) | 14:32 | |
moritz | hoelzro: smoke testing mostly; but if there's interest, I might publish them too | ||
hoelzro | ah, ok | ||
is this something you need docker for? it seems like you could do this with Travis | |||
moritz | I want to fast-forward a branch to the last successful commit that passed all my tests | 14:33 | |
can travis do that? | |||
and does travis allow full spectest runs? | |||
Woodi | moritz: I don't understand "need to move" part (which requires docker)... | ||
14:33
dh7320 left
|
|||
hoelzro | if we can get full spectest runs to finish in < 20 minutes, travis can totally do that =) | 14:34 | |
moritz | hoelzro: on how many cores? :-) | ||
hoelzro | the 20 minute (iirc) limit is imposed on the free tier | ||
moritz: no idea, but probably just one =/ | |||
you could use the travis API to query builds and see which commits are and are not passing the build | |||
s/build$/spectest/ | |||
we could also set up another smoker like Jenkins or Hudson; I don't have any experience with those, though | 14:35 | ||
moritz | Woodi: well, if you compile rakudo with --prefix=/foo/bar, you can tar up /foo/bar, but you have to untar it to the exact same location to be able to run it again | ||
[Coke] | rakudo.org/downloads/rakudo/ - 2016.02 | ||
moritz | Woodi: and that's not how such tools work; they create a new temporary directory for each run | ||
[Coke] | please give it a shot before I push the rakudo tag. | 14:36 | |
moritz | [Coke]++ | ||
flussence | fwiw, spectest takes just over 21 minutes of cpu time on my desktop, so it'll be a tight fit if it works at all | ||
Woodi | moritz: chroot inside temp dir can't help ? | ||
moritz | though I supposed I could just build to /tmp/rakudo-$version-$randomgarbage and unpack it there again, and forfeit the tool's ability clean up | ||
Woodi: chroot needs root :( | 14:37 | ||
though docker might too | |||
geekosaur | and a fair amount of setup | ||
moritz | flussence: it needs a build and two spectest runs for what I have in mind | ||
hoelzro | if we want to use travis for a full spectest, we'll need to go for a paid account, set up our own instance, or seek an alternative CI | ||
dalek | osystem: 8beed42 | lizmat++ | META.list: Add PackUnpack (P5's pack/unpack) |
||
timotimo | lizmat++ # PackUnpack | ||
hoelzro | iirc, the time limit only applies on a per-job basis, not a per-build basis | 14:38 | |
lizmat | still very much a WIP, and no tests yet, but release soon, release often and all that jazz | ||
hoelzro | so if you have a multi-job test matrix (in this case, one for master, one for 6.c-errata), I think that we'd get a 20 minute limit for each job | ||
Woodi | right... debian have fakeroot which "fakes" root :) | ||
14:38
vendethiel joined
|
|||
Woodi | used for building packages | 14:39 | |
14:39
cdg joined,
d4l3k_ joined
14:40
dalek left
14:41
d4l3k_ is now known as dalek,
ChanServ sets mode: +v dalek
14:42
masak left
|
|||
brrt | yay, pack/unpack implementation! | 14:42 | |
lizmat++ | |||
fwiw, lizmat, why use MONKEY-TYPING | |||
DrForr | Great, so I can work on another module... | ||
lizmat | brrt: ah, not needed now, but later when augmenting classes to get the method versions in | 14:43 | |
14:43
masak joined,
masak is now known as Guest1226
|
|||
brrt | aha, ok :-) | 14:43 | |
jnthn | lizmat: Consider if they're really needed, given that MONKEY-TYPING is precomp-hostile | 14:44 | |
(e.g. you can't load two precomp'd modules that both monkey-patch the same type together, so generally modules that do it need to be marked as `no precompilation`) | |||
14:44
kurahaupo joined
|
|||
lizmat | jnthn: ah, then I guess I'll leave the monkey patching up to the users :-) | 14:45 | |
since it is a P5 emulation, having only the sub versions should be fine, I guess | |||
jnthn | :) | 14:46 | |
[Coke] | jnthn: should MONKEY-TYPING imply no precomp? | ||
seems like something users will forget and then get shot by | |||
jnthn | [Coke]: Very possible, yes | 14:47 | |
*possibly | |||
timotimo | we don't merge that stuff properly at all, eh? probably can't. | ||
jnthn | timotimo: I don't think we sensibly can | ||
14:47
dh7320 joined
|
|||
jnthn | It'll provide some pressure to put any monkey patches close to the application level rather than deep in the dependency chain. | 14:48 | |
14:49
synopsebot6 left,
synopsebot6 joined,
xinming left,
xinming_ joined
14:50
zpmorgag left
14:51
Guest1226 is now known as masak_grrr,
ocbtec is now known as ocbtec_AFK
14:54
skids joined
|
|||
[Coke] reads this as monkey patching being our source filters. :) | 14:56 | ||
14:59
prammer joined
|
|||
pmurias | it would be usefull to have a way to enable a warning when something is not being precompiled | 14:59 | |
if MONKEY-TYPING stops precompilation it's seems it will provide some pressure to not use it *EVER* ;) | 15:02 | ||
(not that's necessarily a bad thing ;) | 15:04 | ||
15:06
ocbtec_AFK is now known as ocbtec
|
|||
lizmat | perhaps augment blocks should really be stored as source, to be compiled when loading precomp ? | 15:10 | |
at the INIT phase ? | |||
El_Che | moritz: you can put the rakudo directory in a docker volume or in a volume container | ||
brrt | m: my $a = 45; my $b = 8; say $a mod $b; | 15:11 | |
camelia | rakudo-moar 7d8d67: OUTPUT«5» | ||
brrt | hmmm | ||
15:13
luiz_lha left
15:14
luiz_lha joined
15:15
luiz_lha is now known as Guest5741
|
|||
lizmat | hmmm... do we have a quick way to check if something is white space in the .unixxx department, I mean ? | 15:18 | |
15:20
sjoshi joined
|
|||
jnthn | m: say uniprop ' ' | 15:21 | |
camelia | rakudo-moar 7d8d67: OUTPUT«Zs» | ||
jnthn | m: say uniprop "\n" | ||
camelia | rakudo-moar 7d8d67: OUTPUT«Cc» | ||
lizmat | Zs or Cc then ? | ||
jnthn | Well, Cc is any control char | ||
Taht's the general category | |||
15:21
cognominal joined
|
|||
lizmat | ah... hmmm.... | 15:21 | |
jnthn | Hm, lemme check what \s does | ||
brrt | omg, perl6 is actually fun | 15:23 | |
jnthn | m: say uniprop "\n", "White_Space" | ||
camelia | rakudo-moar 7d8d67: OUTPUT«1» | ||
jnthn | m: say uniprop " ", "White_Space" | ||
camelia | rakudo-moar 7d8d67: OUTPUT«1» | ||
jnthn | m: say uniprop "x", "White_Space" | ||
camelia | rakudo-moar 7d8d67: OUTPUT«0» | ||
[Coke] | lizmat: do you need a pushed tag for your p6w or a release announcement? | ||
jnthn | lizmat: That's what \s does, modulo an ASCII-space optimization | ||
lizmat | [Coke]: release announcement, really | ||
[Coke] | er, or just a tarball. | 15:24 | |
15:24
vendethiel left
|
|||
[Coke] | guessing... right. | 15:24 | |
Alright. no one objects to the tarballs (they never do) I'll send out an announcement shortly. | |||
lizmat | [Coke]++ | 15:27 | |
brrt | .... did you know that | 15:30 | |
499 is prime, as is 4,999, as is 49,999, but not 49 or 499,999 | |||
DrForr | repunit primes :) | 15:31 | |
Woodi | oo, so easy to get some big, random prime ? | 15:32 | |
brrt | i had no idea | ||
15:34
rindolf left
|
|||
jnthn | .oO( RepUnit::Compo ) |
15:34 | |
dalek | kudo/nom: 6b05c84 | coke++ | docs/announce/2016.02.md: fix grammar-o |
15:35 | |
Woodi | do gpg still gives choice of _two_ "hi-quality large prime numbers" ? :) | ||
[Coke] | 2016.02 compiler release cut | ||
Woodi | tada ! :) | ||
lizmat | [Coke]++ | ||
|Tux| | [Coke]++ | 15:36 | |
RabidGravy | Boom! | ||
[Coke]++ | |||
15:36
khw joined
15:37
Skarsnik joined,
vendethiel joined
15:38
wamba left
|
|||
stmuk_ | [Coke]++ | 15:38 | |
brrt | [Coke]++ | 15:39 | |
15:39
brrt left
|
|||
hoelzro | [Coke]++ | 15:39 | |
[Coke] | You're welcome, but I just pulled the trigger. :) | ||
lizmat | looks like PackUnpack's pack is 3x as fast as the experimental in P6, and 4x as fast when using the template preprocessing outside of the test loop | 15:44 | |
|Tux| | "+ Use the order of arguments in usage display, rather than hash order" <- was this what Juerd showed us? | 15:45 | |
lizmat | |Tux| not sure | ||
Skarsnik | It's me that did that I think, for the ?USAGE thingy with main | 15:57 | |
15:57
nakiro left
|
|||
Skarsnik | Did I broke something? x) | 15:58 | |
15:59
vendethiel left
16:00
mr-foobar joined
16:01
kid51 joined
16:06
vendethiel joined
16:10
raiph joined
16:11
zakharyas left
16:12
CIAvash joined
|
|||
dalek | Iish/oracle: b3bcd38 | RabidGravy++ | lib/DBDish.pm6: needs to be 'package' to avoid merge fault |
16:14 | |
Iish/oracle: 61c27c9 | RabidGravy++ | lib/DBIish.pm6: Reformat |
|||
RabidGravy | I'm still getting test failures on that so still can't merge abraxxa's work if someone wants to take a look at some point | 16:16 | |
abraxxa | sorry, hadn't time to work on it | ||
RabidGravy | it's just some of the type comparisons and I still can't work out where they are coming from | 16:17 | |
16:18
Actualeyes left
|
|||
Skarsnik | RabidGravy, paste the error or they are visible on travis? | 16:21 | |
16:22
noninc joined,
ely-se left
|
|||
RabidGravy | travis-ci.org/perl6/DBIish yeah it's there on the 'oracle' branch | 16:23 | |
Skarsnik | RabidGravy, the ref data are wrongly typed - not ok 30 - selected data matches what was written all the result of fetch_ are expected to be Str | ||
RabidGravy | I'm sure someone who is sufficiently motivated could fix it in a few minutes | ||
lizmat | [Coke]: are you going to post the 2016.02 announcement somewhere with a URL ? | ||
if so, please s/noq/now/ :-) | 16:24 | ||
16:24
Actualeyes joined
|
|||
RabidGravy | Skarsnik, I'm not sure, part of abraxxa's change was altering that | 16:24 | |
abraxxa | imho there is no sense to make an API that only returns Str | 16:25 | |
RabidGravy | unfortunately I couldn't find a set of commits that I could pick out to merge that passed the tests so it is just languishing there | ||
abraxxa | Skarsnik thinks DBIish despite its name and unversioned-ness has to not break its API | 16:26 | |
dalek | kudo/nom: 5a683a8 | lizmat++ | docs/announce/2016.02.md: Fix typo in announcement |
||
Skarsnik | It's not really me | ||
abraxxa | as I need to be typed coming from OCI anyways it would be an additional conversion stop in DBDish::Oracle's code | ||
16:26
pullphinger joined
|
|||
Skarsnik | but the error is that :) | 16:27 | |
noninc | hello! I was eager trying perl6 so I downloaded "rakudo-star-2016.01-x86 (no JIT).msi", installed and started it. it suggested installing readline or linenoise by panda. So I did. Both crash with the error "C:\rakudo\bin\perl6.bat: line 1: @: command not found" after "==> Testing LibraryCheck". Any help would be greatly appreciated | ||
16:27
vendethiel left
|
|||
Skarsnik | abraxxa, fill an issue so people can talk about it probably | 16:27 | |
geekosaur | o.O it's feeding a cmd.exe bat file to a posix-like shelll? | 16:28 | |
noninc | geekosaur: using cmd. no posix like shell that i know of in the process | ||
16:29
adu joined
|
|||
noninc | see also gist.github.com/NonsenseInc/408c39...892fc8e497 | 16:29 | |
16:29
average joined
|
|||
geekosaur | the error message is not cmd.exe style, but /bin/sh style | 16:30 | |
RabidGravy | Skarsnik, that PR has been there for ages, it's failing its tests because of this, it could have been discussed but no-one seems to be discussing it | ||
16:30
vendethiel joined
|
|||
Skarsnik | Yes, I actually commented about the issue, but nobody care to answer x) | 16:30 | |
RabidGravy | alternatively the branch could be changed so that it passes the tests with the status quo and merged | 16:31 | |
noninc | geekosaur: okay. yet where is the sh(.exe?) is it part of rakudo? I mean I have msys installed but am not using it and it's not part of path | ||
geekosaur | I don'tknow, that's part of why the o.O | ||
it's ... odd, to say the least | 16:32 | ||
ugexe | im guessing Shell::Command doesnt work on windows | ||
stmuk_ | noninc: which C compiler where you using? | ||
ugexe | notice in that gist above that zef gets further | ||
Skarsnik | The easy fix is remove all the fetch_ code and just call row and allrows in them x) | ||
ugexe | fails testing at Shell::Command | ||
noninc | stmuk_: none. downloaded the installer | ||
nemo | hm | ||
haven't seen zoffix in ages | |||
what happened to him? | |||
16:32
_mg_ left
|
|||
Skarsnik | .seen ZoffixW | 16:33 | |
yoleaux | I saw ZoffixW 16 Feb 2016 17:29Z in #perl6: <ZoffixW> Thanks! | ||
stmuk_ | noninc: you will need one to build either readline or linenoise unfortunately | ||
MadcapJake | .tweet @zoffix | ||
.tw @zoffix | |||
yoleaux | Sick AF :( #FML (@zoffix) | ||
MadcapJake | nemo, ^^ | ||
noninc | stmuk_: okay. no problem. have msvc and mingw available. yet, why the error? | 16:34 | |
ugexe | again, i think Shell::Command does not work on windows | ||
nemo | hm | ||
yeah. been a while | |||
ah. that sucks | |||
stmuk_ | noninc: I'm not sure .. I think you are more likely to succeed with mingw with linenoise at least | 16:35 | |
noninc | stmuk_: yah, i found the sh.exe in my git installation. removed it and now it complains "Could not execute (C:\rakudo\bin\perl6.bat t/01-basic.t): open3: exec of C:\rakudo\bin\perl6.bat t/01-basic.t failed at /usr/lib/perl5/5.8.8/TAP/Parser/Iterator/Process.pm line 168 | 16:37 | |
t/01-basic.t .." I guess it is no ready for windows environment atm. Will try msys | |||
thanks anyway | 16:38 | ||
Skarsnik | hm | ||
ugexe | `zef --force install Linenoise` might work for what you want | ||
Skarsnik | well the repl does not work? | ||
ugexe | if nothing actually uses Shell::Command | ||
noninc | it does. just doing what was suggested by perl | 16:39 | |
ugexe | Shell::Command/panda are why it is failing | ||
16:39
virtualsue joined,
kurahaupo left
16:40
kurahaupo joined,
kurahaupo left,
kurahaupo joined
|
|||
noninc | ugexe: gist.github.com/NonsenseInc/b0eafc...22d5dfac9e | 16:40 | |
yah missing the compiler now | |||
will fix | |||
MadcapJake | APL Demonstration 1975: www.youtube.com/watch?v=_DTpQ4Kk2wA | 16:41 | |
ugexe | heh, yeah the --force will blow past any error, including that new `nmake` one | ||
perlpilot wonders how long before we get "Strawberry Perl 6" ... | 16:42 | ||
yoleaux | 21 Feb 2016 18:59Z <MadcapJake> perlpilot: I got another email about GSoC from Mark Keating, they decided to hold off this year and start preparations in the fall to make for a stronger, more-organized effort for the 2017 GSoC | ||
ugexe | LibraryMake will also use whatever compiler was used to create the .msi i think, so even if you normally use cmake it will try to use nmake | ||
perlpilot | MadcapJake: bummer. | ||
stmuk_ | I don't believe linenoise works under MSVC either (at the least the version I tried 2010 when I tried it probably 2/3 months ago) | ||
noninc | ugexe: At least I am glad it is not forcing me to use the msys posix shell and mingw compilers. Thanks. Will try to learn zef. | 16:43 | |
MadcapJake | Anyone know if Perl 6 was inspired by APL? | ||
perlpilot, yeah definitely, they did say we could go ahead and do it on our own, but isn't the application due tomorrow? :P | |||
ugexe | noninc: if you have VS2013 you can use the "VS2013 x64 Cross Tools Command Prompt" which should have nmake in its PATH | ||
Hotkeys | That's what I used for a while | 16:44 | |
perlpilot | MadcapJake: Feb 19 1900 UTC was the mentoring org application deadline | ||
MadcapJake | haha nice | 16:45 | |
i got the go ahead to do it on our own on the 20th xD | |||
ugexe | this is the main reason i'm against Build.pm having dependencies on package managers fwiw | ||
Hotkeys | I was thinking of doing gsoc next year | ||
noninc | success! gist.github.com/NonsenseInc/c04d7d...6795552cea | ||
MadcapJake is considering creating a module that implements APL operators :P | 16:46 | ||
Hotkeys | Lol | ||
noninc | ugexe: Now it's only the tests failing but the install seems to succeed | ||
MadcapJake | Hotkeys, seriously though a bunch of this stuff is *very* close to how P6 already does it | ||
ugexe | noninc: yeah, im hoping for your case the failed test is for functionality that isnt needed for Linenoise | 16:47 | |
MadcapJake | shaped arrays, meta/hyper operators | ||
Hotkeys | Can we do partial views of shaped arrays yet? | ||
16:47
_mg_ joined
|
|||
noninc | ngexe: nope. C:\Program Files (x86)\Microsoft Visual Studio 14.0>perl6 | 16:48 | |
I ran into a problem while trying to set up Linenoise: Cannot locate symbol 'linenoiseSetCompletionCallback' in native library 'C:\rakudo\share\perl6\site\resources\BB4743C34A9EAD531A66F4387276AE3DB1ED7FFC.dll' | |||
Continuing without tab completions or line editor | |||
You may want to consider using rlwrap for simple line editor functionality | |||
ugexe | darn. Shell::Command must be getting used somewhere to copy/move a file... | 16:49 | |
noninc | was hoping it was a known problem. But at least I'm getting some more verbose errors, a good place to get started learning this stuff | 16:50 | |
16:50
Actualeyes left
16:51
Actualeyes joined,
domidumont left
|
|||
ugexe | i'll dig around myself as well | 16:51 | |
stmuk_ | noninc: there are known problems with MSVC and linenoise check IRC logs for more info | ||
noninc | that's great! though I'm afraid I'll have to leave for a moment. I'll be back later. Thank you. | 16:52 | |
16:52
noninc left
16:53
vendethiel left
16:54
kid51 left
16:56
vendethiel joined,
neilb left
16:58
virtualsue left
17:00
neilb joined
|
|||
dalek | Iish/oracle: 4b2c474 | RabidGravy++ | t/lib/Test/DBDish.pm6: Fix test expected results for the time being |
17:02 | |
17:03
wamba joined
|
|||
Skarsnik | RabidGravy, for row typed return is expected x). I should fix that x) | 17:04 | |
tadzik | hmm, was there ever a conclusion regarding MAIN and the order of named arguments (which only work before positionals)? Is there a good reason for that, or it was just implemented this way and no one got around to fixing it? | 17:05 | |
lizmat | I recall TimToady saying something that it could be implemented with a preprocessor | 17:06 | |
psch | the cli arg parser in general is a bit under designed and under implemented | ||
moritz | well, it was done for a reason (you can discuss if it's a good one) | ||
Skarsnik | oh putting positionnal before named? | 17:07 | |
moritz | perl6 itself only considers options before the first positional argument | ||
(everything after the program file is considered options to the program, not to perl6) | |||
Skarsnik | yes, usage show named before positionnal | ||
RabidGravy | Skarsnik, there appears to be two problems with what remains, that it returns a Str for the undefined value always, and the Num rather than Rat when defined | 17:09 | |
Skarsnik | RabidGravy, the proper fix is to add another reference, because the fetch* return Str, and row/allrows are expected to return typed | ||
tadzik | I've got multiple bug reports for panda saying that it sucks, and I don't disagree with them | 17:10 | |
especially since it's not really fixable without reimplementing the MAIN parser | |||
(in the general case) | |||
Skarsnik | tadzik, oh you mean having to do panda --force install instead of panda install --force? | ||
psch | S19 speaks of < ++CMD --command-line-parser ++/CMD > (and has for around 7 years, apparently) | 17:11 | |
so there was at least an idea to have that pluggable anyway | |||
El_Che | I was under the impression that with the batteries included functionality of perl6, there would be no use for getopt. I was wrong (imho) | ||
RabidGravy | Skarsnik, I am only concerned about this because I want to merge abraxxa's Oracle work, at this time I have no further interest in working on DBIish | ||
psch | which means the MAIN parser probably needs decoupling and interface design or somesuch... | 17:12 | |
well, except if the design is to be changed... :) | |||
hoelzro | there's nothing preventing a module from implementing its own MAIN_HELPER than invokes MAIN in the way the author wants | ||
tadzik | Skarsnik: among other things, yes :) | ||
Skarsnik | RabidGravy, I will do that tomorrow if you prefer | ||
hoelzro | it's not spec'd, but IMHO, it really should be | ||
MadcapJake | .tell DrForr I'm excited for your release of Prancer, I tried cloning the repo but didn't have any luck getting it working. I'm using Crust now and it's great! | ||
yoleaux | MadcapJake: I'll pass your message to DrForr. | ||
psch | hoelzro: the S19 bit seems to be useful for exactly that, afaiu | 17:13 | |
hoelzro: as in, there's at least a hint that it's specced from how i read it | |||
tadzik | (speculated) | ||
hoelzro | I'll have to give S19 a look over | ||
tadzik | so now we only need some to write a module that implements a likeable MAIN_HELPER :) | ||
RabidGravy | Skarsnik, travis-ci appears to have 1 test failure of "unhandled data type 253" for mysql | 17:14 | |
Skarsnik | duh | ||
17:16
johan left
|
|||
MadcapJake | Skarsnik, tadzik, psch et al: wrt command-line parsing: github.com/rakudo/rakudo/pull/688 | 17:16 | |
RabidGravy | MYSQL_TYPE_VAR_STRING | ||
hoelzro | tadzik: indeed =) | ||
17:16
vendethiel left
|
|||
MadcapJake | any thoughts on that? I've tried it and it works for my module P6Dx | 17:19 | |
Skarsnik | RabidGravy, oh that get changed, unhandled type were to be Str, github.com/perl6/DBIish/blob/oracl...ve.pm6#L35 but it's weird to get a VAR_STRING | 17:20 | |
17:20
Actualeyes left,
Actualeyes joined
|
|||
hoelzro | my only opinion on subcommands as variants of a multi sub MAIN is how do options that *should* precede the subcommand work? | 17:21 | |
for example, --git-dir in Git | |||
17:21
sjoshi left
17:22
Actualeyes left
|
|||
hoelzro | I think that subcommands should be prototyped as a module until the interface is more solid, and the functionality of the module should then be integrated into rakudo itself | 17:22 | |
El_Che | a succesful perl 6 program is a program that is not by far recognizable as perl 6 by the mandatory switch order | ||
17:22
Skarsnik left
|
|||
RabidGravy | Skarsnik, just chucking it in explicitly to see | 17:23 | |
psch | i don't have a strong opinion | ||
i mean, arguably any given perl6 program is a subcommand for the interpreter | |||
MadcapJake | hoelzro, is there an actual way to hook into the MAIN command line parser? | ||
17:23
Actualeyes joined
|
|||
psch | and for those switches can't be arbitrarily placed | 17:23 | |
on the other hand, with a shebang we it doesn't look like that | 17:24 | ||
tadzik | what's the idea with subcommands? Do we need support for them? | ||
panda uses them since the dawn of time | |||
dalek | Iish/oracle: 5697bd5 | RabidGravy++ | lib/DBDish/mysql/Native.pm6: Add the missing MySQL type |
||
hoelzro | MadcapJake: yes | 17:25 | |
provide your own MAIN_HELPER | |||
gist.github.com/hoelzro/7fd925b4f4617a5c46b5 | |||
MadcapJake: ↑ | |||
17:26
vendethiel joined
|
|||
stmuk_ | maybe panda should include its own MAIN_HELPER which is used as a protype for specing the 6.d one? | 17:28 | |
tadzik | it used to have a line that reordered @*ARGS manually, but it sucked and I removed it | ||
hoelzro | stmuk_: I think that such functionality would be useful as a standalone module | 17:29 | |
but I don't know how lax we are to add another dependency to panda | |||
s/lax/loathe/ | |||
stmuk_ | hoelzro: true but panda is a special case and probably should have minimal deps | 17:30 | |
hoelzro | agreed | ||
MadcapJake | hoelzro, how does that callframe routine work? | ||
hoelzro | MadcapJake: callframe itself, or the MAIN_HELPER I wrote? | ||
MadcapJake | well the former but then due to it, also the latter :P | 17:31 | |
hoelzro | I don't know how callframe works | ||
but MAIN_HELPER is implicitly set up by rakudo | |||
MadcapJake | oh, yeah no docs on it | 17:32 | |
hoelzro | github.com/rakudo/rakudo/blob/nom/...s.nqp#L741 | ||
it's not spec'd | |||
but it should be, imo | |||
I think the MAIN processing logic should be overridable by modules | |||
MadcapJake | oh it's not? | 17:33 | |
what does the MAIN_HELPER do then? | |||
hoelzro | github.com/rakudo/rakudo/blob/nom/...re/Main.pm | ||
MAIN_HELPER is the routine that goes through @*ARGS and calls MAIN with the proper arguments | 17:34 | ||
the fact that you can export a MAIN_HELPER that modifies how MAIN is called is an implementation detail | 17:36 | ||
not only is it not in the language spec, it's not guaranteed to work in future Rakudos | 17:37 | ||
jnthn | Yes, I'd not rely on that. | ||
I'm not sure that's the interface we want | 17:38 | ||
17:38
ely-se joined
|
|||
hoelzro | jnthn: how do you think it should be done? | 17:38 | |
jnthn | helper is a bad name for jsut about everything | ||
hoelzro | agreed on that =) | ||
jnthn | hoelzro: Not sure...though we probably don't want anything too much more complex | ||
stmuk_ | handler? :) | ||
hoelzro | MAIN-SETUP? | 17:39 | |
CALL-MAIN-MAYBE? | |||
17:40
SCHAAP137 joined
|
|||
dalek | Iish/oracle: 67953e2 | RabidGravy++ | lib/DBDish/mysql/StatementHandle.pm6: MySQL didn't handle Num |
17:43 | |
RabidGravy | sorry about the noise with this but I really don't want to install MySQL to test this | 17:44 | |
17:47
vendethiel left
|
|||
Hotkeys | I should probably like | 17:47 | |
actually write the pluralize module that I made a repo for | |||
17:48
sufrostico left
|
|||
ilmari | RabidGravy: can't you just store the type objects in %mysql-type-conv and then just do $value = $is-null ? $type : $native_row[$i].$type; | 17:49 | |
s/\?/??/; s/:/!!/; | |||
RabidGravy | ilmari, very probably someone could do that yes, please feel free. | 17:50 | |
[Coke] | lizmat: I can post it on blogs.perl.org, if that'll help | 17:51 | |
lizmat | well, I just realised that we never did this before, right ? | ||
ilmari | RabidGravy: I don't actually use perl6 (yet) nor mysql (any more), so… | ||
lizmat | OTOH, things have changed | ||
ilmari | just doing drive-by code review ;-P | ||
lizmat | [Coke]: personally, I wouldn't mind seeing compiler release announcements post-christmas at blog.perl.org | 17:52 | |
RabidGravy | cheers for that but I couldn't care less about mysql so I'm not inclined to install it just to fix something that someone else might be more motivated to do | 17:53 | |
17:53
vendethiel joined
|
|||
ilmari | RabidGravy: fair enough | 17:53 | |
17:54
_mg_ left
17:58
abraxxa left
|
|||
lizmat | PSA: I'm working on the next Perl 6 Weekly, please let me know if you think that something really should be mentioned this week | 17:59 | |
18:01
sufrostico joined
|
|||
[Coke] | lizmat: blogs.perl.org/users/coke/2016/02/r...16-02.html | 18:02 | |
lizmat | [Coke]++ | ||
[Coke] | fixing formatting... | ||
El_Che | [Coke]: looking forward to put it in a container :) | ||
[Coke] tries to figure out how the hell to edit a post on blogs.perl.org | 18:03 | ||
lizmat | [Coke]: you can't, afaik :-( | ||
DrForr | And from me the 3rd article on REs. Don't have a link handy ATM, but give me a minute. | 18:04 | |
yoleaux | 17:12Z <MadcapJake> DrForr: I'm excited for your release of Prancer, I tried cloning the repo but didn't have any luck getting it working. I'm using Crust now and it's great! | ||
[Coke] | Going forward in changelog, can we use .md style bullets? | ||
DrForr | theperlfisher.blogspot.ro/2016/02/f...pt_20.html | 18:05 | |
[Coke] | lizmat: had to click "post" in the menu. | 18:06 | |
18:06
musiKk joined
|
|||
lizmat | DrForr: already in :-) | 18:06 | |
DrForr | .tell MadcapJake Thanks, what problems are you having getting it to work? Likely I don't have Crust listed as a dependency, will fix that in a moment. | ||
yoleaux | DrForr: I'll pass your message to MadcapJake. | ||
18:06
sufrostico left
|
|||
DrForr | lizmat: Heh, thanks. | 18:06 | |
MadcapJake | yeah that and the GET('/') wasn't working, I got it to work with GET() though | ||
yoleaux | 18:06Z <DrForr> MadcapJake: Thanks, what problems are you having getting it to work? Likely I don't have Crust listed as a dependency, will fix that in a moment. | ||
18:06
sufrostico joined
|
|||
DrForr | Oh. That counts as an oops on my part, adding to the test suite. | 18:07 | |
MadcapJake | Also, when I did «multi GET() is handler { slurp('static/index.html') }» it wouldn't set the mime-type correctly | ||
it just would send `text/plain` | |||
18:08
sufrosti1o joined
|
|||
DrForr | Oh. Yeah, that's hardwired ATM. I'm actually going to send that through the StateMachine to set headers properly, which is why it's NIY. | 18:09 | |
18:09
raiph left
18:10
raiph joined
|
|||
DrForr | Dependency fixed, will be added when I push. Along with the '/' bug. | 18:11 | |
18:11
spider-mario joined
|
|||
DrForr | I don't really have a decent way to test it though, one problem with the trait is that it runs at compile-time, and I've got no easy way to tell the compiler to stop building one app and go on with the next. | 18:12 | |
lizmat | dinner, will be checking for any other news fit to be printed here after that& | 18:14 | |
18:16
vendethiel left
18:18
musiKk left,
Actualeyes left
18:19
Actualeyes joined
18:23
kid51 joined
18:24
vendethiel joined
|
|||
average | I would like to see p6 have a good and robust Pg driver and Greenplum driver | 18:25 | |
I strongly believe Pg is by far the most intense DB planet earth has seen, and 9.6 is really packing some awesome stuff | 18:26 | ||
from my point of view, since p6 is emerging and slowly moving into mainstream, this is a good move | |||
Greenplum is one of the most underrated under-the-radar but amazing Pg forks of them all | |||
DrForr | Well volunteered, sir! :) | 18:27 | |
average | haha ! | ||
I can only raise some awareness to what will happen in 2016 | |||
in 2016 you will hear more about Pg than you will about Hillary and Trump | 18:28 | ||
DrForr | Does DBIish cover Pg yet? | ||
average | this will soon take place, just wait till 9.6 rolls out, everyone will go crazy | ||
they'll be like "omfg, omg, Pg Pg" .. that moment is some months from now | 18:29 | ||
DrForr | DBIish already has a Pg driver. What's wrong with what it has now? | ||
18:29
Actualeyes left
|
|||
average | especially the hipsters who come out of the woodwork and get excited all at the same time like some sort of weird hivemind | 18:30 | |
18:30
xinming_ left
|
|||
average | DrForr: that's pretty good | 18:30 | |
18:30
crux joined
|
|||
average | DrForr: if there's already a driver for it, that's neat | 18:30 | |
18:30
xinming joined
|
|||
average | mind you, hipsters have already started to embrace Pg | 18:32 | |
DrForr | blogs.perl.org II: Electric Boogaloo will run on it. | ||
timotimo | i've actually tried to watch Electric Boogaloo, but i didn't get past the initial dance battle | 18:33 | |
the first movie was decent, though | |||
18:36
atweiden joined
|
|||
DrForr | I haven't actually watched it, I just use it as my canonical Version II string. | 18:38 | |
18:44
dh7320 left
|
|||
mspo | average: our whole industry is driven by that culture | 18:47 | |
18:48
gensym joined
18:53
sufrosti1o left,
sufrostico left
19:00
AlexDaniel joined
|
|||
MadcapJake | is there a syntax for creating partial functions? | 19:00 | |
19:02
firstdayonthejob joined,
cdg left
19:04
domidumont joined,
saki joined
|
|||
timotimo | what culture, mspo? | 19:04 | |
19:04
saki is now known as saaki
|
|||
mspo | timotimo: trends and fads | 19:04 | |
timotimo | ah | 19:05 | |
mspo | although pg isn't exactly "new" | ||
timotimo | i've been telling people "pg is so much better than mysql" for *years* | ||
even though i never knew if that's exactly true | |||
nowadays i'd just say that mysql was years ahead of the "NoSQL" fad | 19:06 | ||
[Coke] is sure pg is fine, but he work in an oracle shop, so that doesn't really matter to him. | |||
DrForr | MadcapJake: There's the equivalent of curry(), I forget what it's called, maybe partial(). | ||
timotimo | DrForr: "assuming" | ||
jdv79 | has there been a shift in the popularity of mysql and/or pg lately? | ||
mspo | pg is more popular now | ||
than it used to be, I mean | 19:07 | ||
nine | As far as databases go, PostgreSQL is the answer. | ||
MadcapJake | DrForr, timotimo: thanks | 19:08 | |
mspo | mysql has poor data integrity | 19:09 | |
pg is more complex to use | 19:10 | ||
RabidGravy | I think I first used pg approximately twenty years ago, mysql was almost unusable then | 19:11 | |
(arguably still unusable now) | 19:12 | ||
nine | How can it be more complex? It has far fewer surprises and gotchas you need to know and it has a much more user friendly command line client. | ||
timotimo | nine: adding users and stuff is, like, so hard! | ||
mspo | yeah adding users and stuff :) | 19:13 | |
coming from mysql, pg seems to add extra layers of stuff to think about | |||
nine | Yeah, it's like: "createuser foo" instead of inserting into some table and debugging what the hell went wrong until you notice that you forgot the flush-privileges | 19:14 | |
jdv79 | my interest was more stemming from that i hear more pg advocacy these days. | 19:15 | |
nine | But I guess most mysql users just use the root user, because when you use a "database" that does not even do it's most basic job well, i.e. keeping data, you won't worry about security and users and stuff | ||
RabidGravy | :) | ||
Juerd | Could you just move your holy war to another channel? :) | 19:16 | |
jdv79 | is it cause pg seems to have gained usable replication in core or is it that oracle bought mysql or some other factors...? | ||
timotimo | i *think* mysql can keep data. you're just not allowed to be bad at putting it in. or modify a table when it already has data in it. | ||
nine | timotimo: or have a server crash | ||
mspo | I have replicas go out of sync all the time | ||
19:17
firstdayonthejob left
|
|||
geekosaur | pg's been recognized as more reliale than mysql for a long time. what pg had going against it was complexity of setup ad a tendency toward poor query plans | 19:17 | |
mspo | you can't change the plans either | ||
19:18
buharin joined
|
|||
nine | jdv79: The difference in philosophy is that Pg people usually try to do it right. I.e. first make it work right, then make it fast. MySQL concentrated on fast first. Then came the point when Pg's base was so much more solid that it became a stable, fast and featureful database while MySQL was stuck with bad technical decisions. A couple years later, people started to notice... | 19:18 | |
19:19
firstdayonthejob joined
|
|||
mspo | pg has 40 years of history | 19:19 | |
probably just takes a long time to start getting things right :) | |||
El_Che is waiting for the good part of the discussion and gets pop corn: Oracle | 19:20 | ||
[Coke] agrees with Jeurd, we're kind of off topic with the DB disc. | |||
RabidGravy | well having had this discussion about a squillion times I'd concur | 19:21 | |
mspo | DBIsh should support all possible databases with maximum awesomeness on each | 19:22 | |
and translate/support ? and $1 ! | |||
RabidGravy | I do intend to make an odbc driver for DBIish at some point but it's a long way down the TODO list | ||
19:23
virtualsue joined
|
|||
DrForr | And _n :) | 19:23 | |
mspo | who uses _n ? | 19:24 | |
El_Che | _nobody? | ||
DrForr | I might be thinking of ?n which I've seen somewhere. | 19:25 | |
nine | I wonder if it would be ok to clean out existing precompilation stores if we detect that it uses an out-dated on-disk format, i.e. having to recompile those modules again for upgrading. | 19:26 | |
timotimo | as opposed to doing a proper deprecation cycle? | 19:27 | |
nine | As opposed to be smarter about upgrading the on-disk contents to a new format and having to carry this upgrade code around forever. | ||
But I guess it actually would be ok, since such a change of on-disk format can only occur when upgrading rakudo and then we have to recompile anyway. | 19:28 | ||
19:28
remmie joined
|
|||
lizmat | nine: I think cleaning out would be an ok approach... | 19:29 | |
timotimo | ah, right | ||
ugexe | i'll throw in my opinion: get rid of it as soon as possible | ||
19:29
virtualsue left
|
|||
nine | So...I don't even have to clean anything, as the new rakudo version will be writing to a new directory (named after the compiler-id) anyway :) And since we keep the old directories, you can even switch back to older rakudo versions and keep the precomped files. | 19:31 | |
jdv79 | can they just be renamed out of the way? maybe for an upgrade rollback? | ||
i can see an upgrade going badly and then them rolling back and being screwed for a while while precomp happens again. maybe its not worth it though. | 19:32 | ||
19:32
adu left
|
|||
gfldex | nine: how can the user tell if he can clean up safely? | 19:33 | |
nine | I wish it was that easy with the installation repository format. But there we really want to carry the installed modules forward to newer rakudo versions | ||
lizmat | nine: feels to me the old dirs should be nuked on an upgrade | ||
MadcapJake | .u ‹ | ||
yoleaux | U+2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK [Pi] (‹) | ||
jdv79 | or maybe that should be part of rpm/apt/whatever's jobs | ||
nine | lizmat: that assumes that only one version of rakudo accesses those precomp stores which is not necessarily true. | ||
lizmat | nine: otoh, if an older version would access it again, wouldn't it recreate them on the fly ? | 19:34 | |
MadcapJake | .u › | ||
yoleaux | U+203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK [Pf] (›) | ||
nine | lizmat: yes, it would. But you don't want your two rakudo versions to nuke the other's precomp files all the time :) | 19:35 | |
lizmat | no: but I would like to see a newer one nuke the older | ||
otherwise a lot of files will stay behind... :( | 19:36 | ||
timotimo | that's true, too | ||
a year of perl6 development will net you 12 folders full of module sources and precompiled binaries | |||
nine | Nothing's as cheap as storage these days. | ||
nemo | maybe he's using an SSD | 19:37 | |
nine | timotimo: you can share the module sources and resources between all your rakudo versions. Only precomp files are tied to a version. And they are not that large. | ||
timotimo | well, not if we have a different folder structure each month :) | ||
gfldex | nine: please don't waste other humans time. We may be able to buy GB but we will never be able to buy years. | ||
19:38
virtualsue joined
|
|||
nine | timotimo: why would we have that? | 19:38 | |
gfldex: I'm not sure what you're getting at? | |||
lizmat | well, I recently cleaned out my spectest dirs from .precomp dirs... that killed ~1500 files | ||
19:38
remmie left
|
|||
lizmat | i run a lot of spectest :-) | 19:38 | |
nine | lizmat: it's 5157 files here and that's just 36MB of data. | 19:40 | |
gfldex | every file you leave behind (in a hidden folder) must be found and remove by hand. The user must care for it. That takes time, that could be spend productive. That's the whole point of tormenting the implementor on behalve of the user. | ||
nine | gfldex: blindly removing precomp files _will_ waste the user's time when those files were actually still in use. | ||
lizmat | nine: depending on the file system, 5157 files could be a drag on performance | ||
nine | lizmat: that's also 33 different rakudo versions that were spec tested. Hardly a normal user's profile. | 19:41 | |
lizmat | true | 19:43 | |
nine | I'm quite sure we all share this urge to keep our file systems "clean" but the fact is, deleting just one video I'm never gonna watch again anyway will free more space than the precomp files will take during my SSD's life time. | 19:45 | |
gfldex | nine: you left my question how the user can tell what files can safely be removed unanswered. And the user is a Bob from marketing. Suddenly you got a system administrator who has to clean 50 odd windows VMs. That admin may be me and I _will_ express my feeling clearly. | ||
nine | gfldex: why would Bob even want to remove such files? | ||
19:46
kid51 left
|
|||
gfldex | nine: because Bob, Alice and the CEO of the small company in question don't see the need to spend the money on hardware if they can buy something they believe will make them look good in the eyes of their customers. | 19:47 | |
nine | gfldex: If Bob needs to free some space, he'd be better advised to delete some of those emails with "funny" power points that go around the office. Because those take up much more space. | ||
gfldex | you assumtion that storage is cheap falls appart rather quickly if you put it to the test in 90% of real world companies. | 19:48 | |
mspo | what if I run my app as a user with no home dir? | 19:49 | |
timotimo | never precompile ever | 19:50 | |
ugexe | not even once | ||
timotimo | 6d96270004515a0486bb7f76196a72b40c55a47f is not normal. but on precompilation, it is. | 19:51 | |
gfldex | nine: those are all sound arguments that real ppl don't care about. All they see is that their "harddrive is full" and even if they are talked to like a child, all they will get is that this "Perl 6 Thing, whatever that is" is the problem. | ||
hoelzro has memories of family thinking "that Java thing is a virus" | |||
timotimo | yes, me, too, hoelzro, | 19:52 | |
19:53
yqt joined
|
|||
nine | gfldex: if 100MB of precomp files make user's harddrives full, I'm happy to blame them or their sysadmins, because it would have been full a month later even if we kept precomp dirs squeaky clean. | 19:53 | |
[Coke] | nine: if a user doesn't want precomp, do they have an option to force no precomp even on libs they 'use' ? | ||
gfldex | nine: you still didn't answer my question how the user knows what files can be safely removed. Where did you document that? | 19:54 | |
[Coke] | I know we can do it for our outer app scope... | ||
define "safely". all precomp files can be safely removed. | |||
19:54
musiKk joined
|
|||
[Coke] | no? | 19:54 | |
Wouldn't the worst thing that would happen be that you end up regenerating it? | |||
gfldex | that's not the question | ||
nine | gfldex: it's always safe to delete .precomp directories | 19:55 | |
gfldex | "how does the user _know_" is the important part | ||
[Coke] | because it's always safe. | ||
gfldex | now i feel like talking to a child | ||
psch | so Bob from accounting somehow is running enough different Perl 6 apps to generate 100mb of precomp files | ||
[Coke] | Yes, so perhaps rephrase your question. | ||
19:56
buharin left,
remmie joined
|
|||
psch | that is approximately 18000 files precompiled | 19:56 | |
diakopter | gfldex: perhaps you mean "find out" by know | ||
psch | err, 15500 actually vOv | ||
perlpilot | gfldex: Maybe it's in the FAQ? "What are all these .precomp directories? Can I delete them?" | ||
19:56
sufrostico joined,
sufrosti1o joined
|
|||
atweiden | i can see glfdex's point, someone may think not too highly of a ~/.perl6 directory being created with sha1sum filenames, and will wonder what that is or want to turn it off | 19:56 | |
could a /etc/rakudo.conf disable precomp globally and ~/.rakudo.conf disable precomp on a per-user basis? | |||
timotimo | oh, btw, i'd like to advocate making the precomp folders have p6 in their names, so that people won't go "wtf" at them | 19:57 | |
[Coke] | timotimo: better, "rakudo" ? | ||
perlpilot | timotimo: +1 if we're going to make them, we should own them. | ||
[Coke] | timotimo: better, rakudo-moar ? | ||
psch | i think there's two points, one being that knowledgable users want a way to manage precomp storage and the other that it should be recognizable for laypeople what precomp storage is about and for | ||
timotimo | hmm, not 100% sure about that | ||
[Coke] | timotimo: it's kind of moot at the moment, but when we start precomping jvm, we might care. | 19:58 | |
19:58
darutoko left
|
|||
atweiden | or maybe write precomp to /tmp | 19:59 | |
timotimo | well, for that we have precomp files being called barbaz.moarvm | ||
RabidGravy | shouldn't it be in ~/.cache/perl6 or some such anyway? | ||
or at least be configurable to be there | |||
gfldex | on windows, for all that is holy, please put them into %tmp%. The avg. windows admin is anything but knowledgable. | 20:00 | |
timotimo | i've just noticed ... in the release announcement it says "but no new features", but in the "New in 2016.02" section it says "Additions:" | ||
if you don't know what's up with that, you might be confused %) | |||
stmuk_ | 1. make it work 2. make it work fast 3. make it not use any diskspace! | ||
20:01
rindolf joined
|
|||
stmuk_ | we at stage 1 | 20:01 | |
nine | My ~/.cache directory has 1.2 GB. Firefox uses more than half a gig on my machine even though I don't even use it as my browser. Why are we arguing about a couple of megabytes?? | ||
DrForr | Denial? :) | ||
nine | stmuk_++ | ||
Btw. my ~/.thumbnails directory takes 220MB and contains files with lovely names like 23d74740d3d515f34172d14dab4a00c7.png | 20:05 | ||
atweiden | i'm wondering, `container = $value.clone` DWIM with array values here: | 20:06 | |
class ABC { method add(\container, :$value!) returns Any { add-to-positional(container, :$value); }; sub add-to-positional(\container, :$value!) returns Any { container = $value.clone; |container; }; }; my @container; ABC.add(@container, :value(qw<zero one two>)); say 'Array @container.WHAT: ', @container.WHAT; say 'Array @container: ', @container.perl; say 'Array @container[0]: ', @container[0].perl; say 'Array @container[1]: ', @container[1].pe | |||
rl; say 'Array @container[2]: ', @container[2].perl; | |||
m: class ABC { method add(\container, :$value!) returns Any { add-to-positional(container, :$value); }; sub add-to-positional(\container, :$value!) returns Any { container = $value.clone; |container; }; }; my @container; ABC.add(@container, :value(qw<zero one two>)); say 'Array @container.WHAT: ', @container.WHAT; say 'Array @container: ', @container.perl; say 'Array @container[0]: ', @container[0].perl; | 20:07 | ||
camelia | rakudo-moar 5a683a: OUTPUT«Array @container.WHAT: (Array)Array @container: ["zero", "one", "two"]Array @container[0]: "zero"» | ||
mspo | perl6 isn't the same as firefox unless you are the developer | ||
[Coke] | (confused) this is why I post these things in advance of sending them out. :) | ||
mspo | to a user it is nothing | ||
atweiden | but this doesn't (s/\.clone//): | ||
m: class ABC { method add(\container, :$value!) returns Any { add-to-positional(container, :$value); }; sub add-to-positional(\container, :$value!) returns Any { container = $value; |container; }; }; my @container; ABC.add(@container, :value(qw<zero one two>)); say 'Array @container.WHAT: ', @container.WHAT; say 'Array @container: ', @container.perl; say 'Array @container[0]: ', @container[0].perl; | |||
camelia | rakudo-moar 5a683a: OUTPUT«Array @container.WHAT: (Array)Array @container: [("zero", "one", "two"),]Array @container[0]: $("zero", "one", "two")» | ||
atweiden | i'm not clear on what cloning does. why does cloning seem like the only way to get the DWIM result? | 20:08 | |
20:09
dfcarpenterak joined,
brrt joined
20:10
kolikov left
20:11
pullphinger left
|
|||
flussence | I sent a pull request back in december to put all the precomp stuff in ~/.cache/perl6 (and do the right thing on win32 too), but it was turned down | 20:11 | |
20:11
buharin joined
|
|||
gfldex | nine: the problem is not the size of that folder. It takes exactly the same effort to delete 1.2GB then 12MB. The problem is that somebody has to care about it. In a bad case on 50 VMs. Suddenly some poor soul has to spend the better part of 2 hours to clean up after a software that could have done so by itself. You don't improve productivity by save disk space, you improve productivity by making things run | 20:11 | |
smoothly. | |||
nine | gfldex: then please also make a suggestion on how exactly the software could clean up automatically. | 20:12 | |
20:12
zpmorgag joined
|
|||
gfldex | sadly i do not know the specifics of the implementation to provide such details. If you want me to stop careing please say so and I will not pester you anymore. | 20:14 | |
brrt | i think the whole idea of automatic background (pre)compilation is kind of objectionable | ||
20:14
dh7320 joined
|
|||
brrt | to some people, damnit cutof | 20:14 | |
not to me | |||
i would argue that python does the same and while at first it is annoying to remove __pycache__ and *.pyc and *.pyo and whatnot | 20:15 | ||
lizmat | *drumroll* | ||
p6weekly.wordpress.com/2016/02/22/2016-8-yacr/ | |||
brrt | at one point one throws these things into .gitignore and forgets about them | ||
lizmat | another Perl 6 Weekly hits the net | ||
brrt | \o/ | ||
anyway, i fully agree with nine that 100 mb diskspace is in the same category of annoying | 20:16 | ||
but not in any way a real usability failure | |||
diakopter | the .Net ngen cache can get into the GB | ||
20:17
domidumont left,
kurahaupo left
|
|||
gfldex | "that pile of shit is quite big already. Lets add more!" <-- i don't like that argument | 20:17 | |
jnthn | lizmat++ | ||
brrt | ok, gflxdex, please explain why .precomp directories are a usability issue, for you | 20:18 | |
20:18
kurahaupo joined
|
|||
nine | gfldex: you don't even have to know the implementation. You just have to be able to answer one question: how can rakudo know that the precomp files created for an older rakudo version will never be used again? | 20:18 | |
brrt | i'm not sure we can resolve this unless i can understand | ||
20:19
ab6tract joined
|
|||
brrt | (nine; evil locking schemes, obviously) | 20:19 | |
20:19
xiaomiao joined
20:20
kurahaupo left,
crux left,
avar left,
peteretep left,
DarthGandalf left,
esh left,
mithaldu_ left,
dg left,
jnthn left,
shadowpaste left,
brabo left,
leedo left,
lucs left,
Celelibi left,
rafl left,
sjohnson left,
leedo joined,
dpk joined,
sm0x joined,
diegok joined,
diakopter joined,
Bucciarati joined,
konobi joined,
eyck joined,
mls joined,
cfloare joined,
jantore joined,
nemo joined,
brabo joined
20:21
jferrero joined,
lucs joined,
sjohnson joined,
jnthn joined,
keix joined,
rhr joined,
alnewkirk joined,
erdic joined,
kurahaupo joined,
kurahaupo left,
mls left,
mls joined,
tharkun joined,
decent joined,
konobi is now known as Guest6368,
inokenty joined,
kurahaupo joined,
nemo is now known as Guest47022,
DarthGandalf joined,
rafl joined,
kurahaupo left,
shadowpaste joined,
jervo joined,
kurahaupo joined,
esh joined,
huf joined
20:22
ribasushi joined,
Celelibi joined,
dg joined
|
|||
gfldex | nine: it can't and their can the avg. user. However, precomp files are created on demand so removing them does no lasting harm. Unless two rakudo versions start to play ping pong, removing each others .precomp whenever a script is run. | 20:23 | |
how are two different versions of rakudo handled anyway? | |||
20:23
kurahaupo left
|
|||
gfldex | s/their/neither/ | 20:23 | |
20:23
kurahaupo joined,
kurahaupo left
20:24
kurahaupo joined
|
|||
nine | gfldex: so if you're fine with wasting the user's time waiting for precompilation to finish, what exactly is so hard about having a cron job deleting the precomp directories now and then? | 20:24 | |
rudi_s | Is there a function like grep but which also returns the non-matching entries (i.e. two lists are returned)? | ||
20:24
dfcarpenterak left
20:25
peteretep joined
|
|||
perlpilot | rudi_s: classify could be used for that | 20:25 | |
gfldex | nine: are you going around, adding those cronjobs on your users machines. And how do I do a cronjob on windows? | ||
psch | m: my ($even, $odd) = ^5 .classify: { $_ %% 2 }; say $even # perlpilot++ | ||
camelia | rakudo-moar 5a683a: OUTPUT«True => [0 2 4]» | ||
brrt | you use a wizard | ||
20:25
avar joined,
avar left,
avar joined,
avarab joined,
avarab left,
avarab joined,
wtw joined,
literal joined,
avarab left,
avar left,
crux joined,
avar joined,
avar left,
avar joined
|
|||
[Coke] | let me back up a step here. gfldex - are you suggesting we don't do precomp at all? | 20:26 | |
Or that we continue to do it, but in some other fashion. | |||
gfldex | i do not. precomp is a massive improvement on startup time. Unless that changes it's pretty much a requirement to have it. | ||
lizmat | fwiw, I think it would be bad practice if you would need an external cron job cleaning up after rakudo spreading precomp files everywhere | 20:27 | |
even *if* they only take a little bit of disk space | |||
20:27
john51_ left
|
|||
ab6tract | lizmat: thanks for the p6weekly. a ton of great links this week! | 20:27 | |
20:27
mithaldu_ joined
|
|||
rudi_s | perlpilot: psch: Thanks. But I'd have to still extract it out of the hash. | 20:28 | |
perlpilot | indeed. lizmat++ | ||
gfldex | walking 2TB of files on NTFS (small company of 20is ppl) will take 30-60 minutes | ||
20:28
john51 joined
|
|||
pyrimidine | lizmat++ # p6weekly | 20:28 | |
gfldex | (that's 1.5M files) | ||
brrt | lizmat: i have to cleanup after python every so often, too | ||
gfldex | brrt: should you? do you enjoy it? | ||
lizmat | brrt: that's the wrong agument :-) | ||
RabidGravy | as a matter of related interest, how can one get the compiler version that you get from "perl -v", $*PERL.compiler.version mangles it as a version | 20:29 | |
lizmat | *argument | ||
ab6tract | just finished reading 'Intro to Sixy Perl'. it says many things i've wanted said :) | ||
not sure who Finanalyst is though? | |||
brrt | gfldex: i accept it, is what imean | ||
lizmat | ab6tract: I'm just the messenger, no idea | ||
rudi_s | I guess I'll stick with classify and then assign the two lists manually. Not perfect but works. Thanks. | ||
psch | rudi_s: well, you can do that with a .values in the assignment to the two vars for example | 20:30 | |
m: my ($even, $odd) = (^5 .classify: { $_ %% 2 }).values; say $even # | |||
camelia | rakudo-moar 5a683a: OUTPUT«[0 2 4]» | ||
rudi_s | psch: Thought about that too but the order of .values is not guaranteed, is it? | ||
[Coke] | does intro to sixy perl live anywhere other than pastebin? | ||
psch | oh, right | ||
ab6tract | lizmat: the question was intended as a wideband enquiry :) | ||
rudi_s | m: sort (True, False) | ||
camelia | ( no output ) | ||
rudi_s | m: say sort (True, False) | 20:31 | |
camelia | rakudo-moar 5a683a: OUTPUT«(False True)» | ||
lizmat | [Coke]: again, I didn't find it, but then I didn't look for it very well | ||
rudi_s | I guess I could sort it first. | ||
But feels a little ugly. | |||
ab6tract | while i have your attention though, i was curious if you had encountered this behavior on os x: rt.perl.org/Public/Bug/Display.html?id=127587 | ||
perlpilot | rudi_s: you could just pull out the True/False values explicitly (no sorting) | 20:32 | |
20:32
Tld joined,
Tld left,
Guest6368 is now known as konobi_
20:33
kurahaupo left
|
|||
RabidGravy | m: say sprintf("%s-%s-%s-%s%s%s", $*PERL.compiler.version.parts) | 20:33 | |
camelia | rakudo-moar 5a683a: OUTPUT«Your printf-style directives specify 6 arguments, but 9 arguments were supplied» | ||
20:33
kurahaupo joined
|
|||
RabidGravy | say $*PERL.compiler.version.parts | 20:33 | |
m: say $*PERL.compiler.version.parts | |||
camelia | rakudo-moar 5a683a: OUTPUT«[2016 2 3 g 5 a 683 a 8]» | ||
rudi_s | perlpilot: Yeah. Still I'd like something like Haskel's partition in core perl6. | ||
psch | m: my ($even, $odd); my @a = ^6; $odd = @a (-) ($even = @a.grep: * %% 2); say $odd | ||
camelia | rakudo-moar 5a683a: OUTPUT«set(5, 3, 1)» | ||
psch | m: my ($even, $odd); my @a = ^6; $odd = @a (-) ($even = @a.grep: * %% 2); say $odd, $even | 20:34 | |
camelia | rakudo-moar 5a683a: OUTPUT«This Seq has already been iterated, and its values consumed(you might solve this by adding .cache on usages of the Seq, orby assigning the Seq into an array) in block <unit> at /tmp/MzlH2rDY3j line 1» | ||
ab6tract | hmmm.. now that i think about it that use of an anonymous state variable in my react block is probably a race condition.. | ||
psch | ah shucks | ||
[Coke] | ab6tract: why "echo" and not "/bin/echo" ? | ||
20:34
labster joined
|
|||
ab6tract | shouldn't matter with a periodic supply though | 20:34 | |
lizmat | ab6tract: feels to me you're mixing stuff the wrong way: feels like you could use a react inside the whenever? | 20:35 | |
perlpilot | rudi_s: sounds like a good idea to me. | ||
brrt | lizmat: you can watch the perl6 mp4s with vlc | ||
psch | well, that makes a set, and it doesn't look that great either | ||
rudi_s | perlpilot: Where are changes to the language spec discussed? | ||
nine | gfldex: I really don't get why wasting user's time playing with ping pong games would be ok, while wasting a hypothetical 100 MB of disk space would be an issue that _has_ to be dealt with. | ||
[Coke] | rudi_s: here. | ||
perlpilot | rudi_s: Right here. :) | ||
[Coke] | or on the language list. Or via a pull request. | 20:36 | |
brrt | ah, no, you can't | ||
they're broken halfway | |||
ab6tract | .seen finanalyst | ||
yoleaux | I saw finanalyst 18 Jan 2016 08:49Z in #perl6: <finanalyst> Fair comment | ||
20:36
sufrosti1o left,
sufrostico left
|
|||
rudi_s | Well, then ;-) - what is process on getting this into perl? | 20:37 | |
perlpilot | rudi_s: I seem to recall that Damian even had an implementation in out of the Exegeses separating wheat from chaff or sheep from goats or something. Clearly it's a useful special case of classify. | ||
s/out/one/ | |||
weird brain-o that | |||
20:37
molaf_ left
|
|||
gfldex | i'm trying to see the whole thing from the perspective of a sysadmin who joins that not so small company, that got a tradition of years of system administration neglect. If you want Perl 6 to grow you will need to support of those small companies, because they are the vast majority. Any problem that "This Perl 6 thing" is causing is a reason for a small company boss to "make a dicision" (read: a guess). You | 20:37 | |
ab6tract | .tell finanalyst your 'Intro to Sixy Perl' pastebin is awesome! you should consider publishing it somewhere more permanent! | ||
gfldex | may want to care about them too, because adoption of Perl 6 may very well be the source of your grant. | ||
yoleaux | ab6tract: I'll pass your message to finanalyst. | ||
ab6tract | lizmat: what do you mean? that code runs fine on linux | 20:38 | |
lizmat | ah, ok, I guess I missed it being an OS X only issue | ||
[Coke] | ab6tract: not all in one file, it doesn't. | ||
20:39
dfcarpenterak joined
|
|||
[Coke] | (you could have 2 mains if you did a multi, and had MAIN("qq"), etc. | 20:39 | |
perlpilot | rudi_s: fork rakudo, implement it, make a PR, talk about it here, etc. There's not really a formal process as such. | ||
ab6tract | there's only a handful of jnthn++'s code and slides to go on for this stuff.. this is all based on his post series | ||
[Coke]: why would you think two code snippets with MAIN were intended for the same file? | 20:40 | ||
rudi_s | perlpilot: I thought perl6 is mostly defined through the language spec, that's why I thought before it should be implemented it must be somehow added to specs. | ||
ab6tract | :) | ||
nine | gfldex: and this hypothetical boss would be fine with 2 minutes startup time of an essential web service because rakudo again deleted precomp files that would still be used? In a world where I can get 25 GB of webspace for € 4.64 per month? | ||
[Coke] | ab6tract: why would you not attach them as 2 files? | ||
perlpilot | rudi_s: That happens the other way around. You implement something to prove that it should be part of the specs | ||
[Coke] | rudi_s: the spec is roast, not the synopses. | ||
ab6tract | (and i thought i had made it as easy as possible!) | ||
[Coke] | nine: no, he said we have to -do- precomp. | 20:41 | |
ab6tract | btw, there is massive chat lag happening right now. i'm only getting conversation updates in bursts :( | ||
[Coke] | I'm still trying to suss out the exact nature of the complaint (only keep as much precomp as needed, maybe? store it in a specific location maybe/) | ||
perlpilot | [Coke]: it sounds to me like less of a "complaint" and more of "keep this in mind!" | 20:42 | |
RabidGravy | I think it comes down to "this perl6 thing appears to have made a bunch of files, which ones can I delete?" | ||
nine | [Coke] he also said that we cannot reliably detect whether we can delete those precomp files, thereby implying that if we do, we may actually delete files that would still be used. | ||
ab6tract | [Coke]: i didn't know that RT could do attachments that way! excellent | 20:43 | |
RabidGravy | I've actually thought of making a script that loads *all* the modules to force a precomp after a rebuild | 20:44 | |
nine | And like I said an hour ago: I'd _like_ us to leave the file system clean. It's just that without someone coming up with an idea on how to actually pull that off, we simply can't. And I won't start implementing guessing games and take the blame for when it guesses wrongly. | ||
[Coke] | RabidGravy: I do the vague equivalent of that with some of my web apps, sure. Deploy, then force myself to pay the precomp hit before the users do. | 20:45 | |
flussence | .oO( if only we were still allowed to manually compile files ) |
20:46 | |
[Coke] | nine: yup, seems reasonable to me. | ||
gfldex | nine: would it be possible to provide a cmd line switch and a ENV var to tell rakudo where to put those files? (/var/cache comes to mind) | 20:48 | |
rudi_s | perlpilot: [Coke]: Thanks. Will look into implementing it. - From a first look at the code it doesn't look trivial to me as I don't understand the abstractions around classify in Any. | 20:49 | |
20:49
colomon_ joined
|
|||
perlpilot | rudi_s: AS a first approximation, you can do this ... | 20:49 | |
my ($even, $odd) = (^5 .classify: { $_ %% 2 }).{True,False}; say $even; say $odd; | |||
oops | 20:50 | ||
m: my ($even, $odd) = (^5 .classify: { $_ %% 2 }).{True,False}; say $even; say $odd; | |||
camelia | rakudo-moar 5a683a: OUTPUT«[0 2 4][1 3]» | ||
perlpilot | wrap that in a routine. | ||
gfldex | lizmat: vlc 2.2.2 does play the videos (sort of) | ||
20:50
dfcarpenterak left,
colomon left,
colomon_ is now known as colomon
|
|||
lizmat | gfldex: describe "sort of" ? | 20:51 | |
nine | gfldex: we already have! perl6 -I/var/cache or PERL6LIB=/var/cache perl6 | ||
rudi_s | perlpilot: Ah, nice. Thank you. | 20:52 | |
nine | flussence: the whole module infrastructure is qute flexible and every part of it can be replaced. If you want to implement a manual precomp scheme on top of the current architecture, you should be able to do that quite easily. | ||
flussence: do you remember the rationale for refusing your pull request back then? | 20:53 | ||
flussence | IIRC it was something like "this is the wrong way to do this", and the right way never came. *shrug* | 20:54 | |
pmurias | re having a global /etc/rakudo.conf to disable preconf, what would the point of that be? | ||
20:55
sufrostico joined,
sufrosti1o joined
|
|||
ab6tract | nine: doesn't feel a bit like overloading PERL6LIB? | 20:55 | |
gfldex | lizmat: the video takes 1/4 of the player window (not scaled up while encoding) and the audio a quite low and spotty at times. | ||
ab6tract | nine: i would want the env var for the precomp _destination_ | ||
flussence | github.com/rakudo/rakudo/pull/611 -- oh here, it got fixed a different way and then the useful part got lost in the noise | 20:56 | |
lizmat | gfldex: I'm hoping the ShadowCat videos will come out better | ||
nine | flussence: seems like you closed that pull request yourself | ||
ab6tract | i guess you can mix and match, eh? | ||
flussence | nine: yes, and I said there it was the wrong fix :) | ||
20:56
FROGGS left
|
|||
rudi_s | perlpilot: Can I somehow use that to put the result directly in an array my (@a, @b) = ... doesn't work and puts everything into @a. But $a.join looks a little unexpected to me. | 20:57 | |
ab6tract | PERL6LIB=./readable-sources:./precomps ? | ||
perlpilot | ab6tract: putting the precomp files in some specific location is only useful if rakudo can find them :) | ||
ab6tract | but i'll digress, as i imagine you've had many forms of this conversation already | 20:58 | |
perlpilot | rudi_s: my (@even,@odd) := ... # probably | ||
rudi_s | perlpilot: Perfect. Thank you. | 20:59 | |
ab6tract | perlpilot: naturally :) i guess i just blanched at the idea of PERL6LIB pointing to some directory containing nothing human readable in it | 21:00 | |
but it mkaes sense | |||
*makes | |||
21:01
ab6tract left
|
|||
pmurias | nine: wasting a few mb now an then likely won't be a problem. Avoiding having system admins needlessly involved or having somone wage war on .precomp dirs is something we should aim for | 21:06 | |
brrt | what if we did store it in ~/.rakudo | 21:08 | |
or even ~/.local/rakudo/precomp | |||
pmurias | nine: having a cron job remove .precomp directories would be ultra horrible | ||
brrt | why should that not work.... | ||
21:09
snarkyboojum joined
|
|||
dalek | kudo/nom: 620f4e6 | lizmat++ | src/core/ (2 files): Implement Buf.pop Wish I had noticed it being missing before. I guess the only thing still missing now, is Buf.splice. |
21:09 | |
21:11
kurahaupo left
|
|||
flussence | brrt: we need two things - a $*SPEC.cachedir method, and precomp needs to use it. | 21:12 | |
21:13
snarkyboojum left
21:15
Ven joined
21:19
Ven left
21:21
ely-se left,
_dolmen_ joined
21:22
kaare_ left
21:25
musiKk left
21:29
autarch1 joined
21:30
cdg joined
21:31
dh7320 left
21:33
autarch left,
sortiz joined
|
|||
sortiz | \o #perl6 | 21:34 | |
21:35
CIAvash left,
sno left
|
|||
pmurias | o/ | 21:35 | |
21:37
autarch1 left,
sufrostico left,
sufrosti1o left
|
|||
nine | pmurias: having a cronjob for cleanup may sound horrible. I find creating precomp files on installation and then never using them much worse yet that problem doesn't draw nearly as much brain power. | 21:37 | |
sortiz | [Coke]++ lizmat++ moritz++ # 2016-02 | 21:38 | |
21:38
sufrostico joined
21:39
sufrosti1o joined
21:45
mr-foobar left,
brrt left
|
|||
jnthn | nine: That problem actually needs brainpower. :) | 21:45 | |
I don't think the "remove precomp files unused due to uninstalling an older Rakudo version" is a problem for Rakudo itself to solve. It's more one for the MSI uninstaller on Windows to take care of. | 21:46 | ||
And whatever the equivalent mechanism is on other platforms. | |||
21:47
mr-foobar joined
21:48
ely-se joined
|
|||
nine | jnthn: thanks for putting the compiler id in the precomp store paths. It's very nice being able to freely change the on-disk format as much as I want :) | 21:49 | |
jnthn | :-) | ||
If you don't have time to make a good design, make an easy-to-make-right-later design. :) | |||
(That was largely my approach for the installation/precomp gist :)) | 21:50 | ||
nine | I've finally started tackling the "use those installed precomp files" problem. Worst thing that can happen is that we find out what the really hard part will be... | ||
21:50
labster left
|
|||
jnthn | *nod* | 21:51 | |
Sounds good. | |||
nine | Current plan is to store not only the precomp ids of a precomp files transitive dependencies, but also the dependency specifications used to find them and $*REPO.id at the time of dependency resolution. | 21:52 | |
When $*REPO.id is still the same, we can use the precomp ids directly to load the dependencies. Otherwise we have to run dependency resolution again and check if we arrive at the same precomp ids. If not we have to recompile. | 21:53 | ||
$*REPO.id changes when adding/removing repos from the repo-chain and when installing a module to one of the chain's repositories. | 21:54 | ||
I think the hardest part will actually be storing the dependency specification. For that we need to figure out the usefull and serializable subset of what's currently allowed. So no code blocks and maybe not even regexes. | 21:55 | ||
21:56
autarch joined,
sufrosti1o left
21:57
sufrostico left,
skids left
21:58
buharin left,
sufrostico joined
21:59
zpmorgag left,
sufrosti1o joined
|
|||
dalek | c: 531e97f | (Simon Ruderich)++ | doc/Type/List.pod: List: add example to classify to split a list based on condition |
22:00 | |
22:01
Ven joined
|
|||
rudi_s | perlpilot: Thanks for the classify example, I've added it to the documentation: github.com/perl6/doc/commit/531e97...8ed1df5d72 | 22:01 | |
22:02
raiph left
22:04
Ven left
|
|||
nine | m: say CompUnit::DependencySpecification.new(:short-name<Inline::Perl5>, :version-matcher(v0.2..*), :auth-matcher(/nine/)).perl | 22:05 | |
camelia | rakudo-moar 620f4e: OUTPUT«CompUnit::DependencySpecification.new(short-name => "Inline::Perl5", from => "Perl6", version-matcher => Version.new('0.2')..Inf, auth-matcher => /nine/, api-matcher => Bool::True)» | ||
22:07
tmch left
22:09
labster joined
22:15
rindolf left
22:21
labster left
22:22
ely-se left
|
|||
rudi_s | I'm writing a class which uses NativeCall to call into a C lib. In my constructor I allocate data using the C API and now I have to deallocate it when the object is destroyed. Is adding a method DESTORY() { c_api_free($!data) } enough to properly free the data when the object is garbage collected? | 22:24 | |
moritz | yes | ||
22:24
average left
22:25
raiph joined
|
|||
rudi_s | moritz: Perfect, thanks. - I see that it's not yet documented in NativeCall at doc.perl6.org. Should I add it as example to "Basic use of Pointers"? | 22:27 | |
pmurias | nine: re cronjob, wasting a bit of space isn't a big problem to me for now. using the installed precomp files would help solve the problem much better then doing a cleanup on version update | 22:29 | |
22:30
remmie left
|
|||
rudi_s | Hm. This isn't trivial. The example would need a check to prevent double frees. | 22:30 | |
22:30
ocbtec left
|
|||
sortiz | rudi_s, In practice can be better to add a method, let say "close", that free the memory and set $!data = Nil; and in DESTROY only call "close" if $!data isn't Nil, ie the user forgot to terminate the object. | 22:37 | |
dalek | p: 7fb352c | (Pawel Murias)++ | src/vm/js/ (8 files): Implement nqp::callercode by putting extra info on Ctxs rather then using arguments. This speeds up parsing JSON. |
22:39 | |
sortiz | rudi_s, This allows your user to implement a pattern that, at scope LEAVE the object is closed. Depends on DESTROY to be called at the proper time, can cause problems. | ||
rudi_s | sortiz: Yeah, I was thinking along the same lines. Will have a patch for the docs shortly. Btw. you wrote LEAVE, is that a special function too? | 22:41 | |
RabidGravy | well a "phaser" block, not a function | 22:42 | |
sortiz | It is a phaser, see doc.perl6.org/language/phasers#LEAVE | ||
rudi_s | Ah, thank you. | ||
RabidGravy | m: sub foo { LEAVE { say "byee" }; say "foo" }; foo() | ||
camelia | rakudo-moar 620f4e: OUTPUT«foobyee» | ||
22:43
alpha123 joined
|
|||
rudi_s | moritz: sortiz: Proposed patches: pbot.rmdir.de/7YdAtV3LRD4XORT8xRWBJg 0002-nativecall-add-DESTROY-to-example.patch | 22:44 | |
22:45
konobi_ is now known as konobi
22:48
dh7320 joined
|
|||
sortiz | rudi_s, Some on the line of: sub Dowork { my $obj = FooH.new; LEAVE { $obj.free }; #... lot of work with $obj ... }; | 22:48 | |
rudi_s | sortiz: Yeah, thanks. | 22:49 | |
lizmat calls it a day | 22:50 | ||
good night, #perl6! | |||
22:52
labster joined
|
|||
sortiz | 'night lizmat, well deserved rest. | 22:52 | |
22:53
vendethiel left
22:55
_dolmen_ left
|
|||
jnthn | Sleep for me also... 'night o/ | 22:58 | |
22:58
vendethiel joined
|
|||
sortiz | 'night jnthn | 22:59 | |
23:00
thundergnat joined
|
|||
sortiz | rudi_s, In your example I would add "submethod DESTROY () { self.free if $!initialized; }" | 23:00 | |
23:01
firstdayonthejob left
|
|||
thundergnat | For anyone who may be interested re irclog.perlgeek.de/perl6/2016-02-09#i_12009620 See rosettacode.org/wiki/Pathological_f...t_problems | 23:02 | |
23:02
firstdayonthejob joined
|
|||
RabidGravy | right that's enough for the day. toodles. | 23:03 | |
23:03
virtualsue left
|
|||
sortiz | CY RabidGravy. | 23:04 | |
rudi_s | sortiz: Did you look at the second patch? | 23:05 | |
Should I use method DESTROY() or submethod DESTROY? | 23:06 | ||
Ah, I'm stupid, forgot the second URL. | |||
sortiz: pbot.rmdir.de/r3hNiM5diZKEK4nu_WSung | |||
23:07
dh7320 left
|
|||
sortiz | rudi_s, submethod is better. | 23:07 | |
23:07
RabidGravy left
|
|||
rudi_s | Because it can't be overwritten by subclasses so free is always called in the way the superclass has intended? But what if a subclass changes the allocation? | 23:08 | |
sortiz | Yes, If the class does the allocation, only that class can handle the de-allocation, it's safer imo. | 23:11 | |
23:12
TEttinger joined
|
|||
rudi_s | sortiz: Can the subclass overwrite new without calling the new of the parent-class? | 23:13 | |
23:15
sno joined
|
|||
sortiz | rudi_s, Yes. For these cases I write a wrapper high level class that encapsulate the low level CPointer one, you can see a full example in my own LDMB: github.com/salortiz/p6-LMDB/blob/m...B.pm6#L323 | 23:18 | |
23:19
skids joined,
vendethiel left
23:21
prammer left
23:22
pmurias left
|
|||
timotimo | grondilu: what if i told you i've reached almost 40 fps? :) | 23:23 | |
23:25
adu joined
|
|||
rudi_s | sortiz: My point was. If the subclass can override new (and thus the allocation), shouldn't it be method DESTROY() { } so the subclass has a chance to adapt the free? | 23:28 | |
23:29
neilb left
23:34
dh7320 joined
|
|||
sortiz | rudi_s, Yes, you're right. I was thinking in my model, where the real allocation is done in a submethod BUILD, and no one can change that. | 23:36 | |
23:39
skids left,
vendethiel joined
|
|||
rudi_s | Ok. Then I'll push it as is. Thanks for reviewing. | 23:40 | |
dalek | c: 109febd | (Simon Ruderich)++ | doc/Language/nativecall.pod: nativecall: remove trailing whitespace |
23:41 | |
c: 7867eca | (Simon Ruderich)++ | doc/Language/nativecall.pod: nativecall: prevent potential double free in example |
|||
c: 5dab080 | (Simon Ruderich)++ | doc/Language/nativecall.pod: nativecall: add DESTROY to example |
|||
rudi_s | When using nativecall, how can I handle different APIs depending on the architecture? Like different time_t? | 23:50 | |
timotimo | for example with a custom sub EXPORT | 23:52 | |
that gives you either one or the other bunch of subs/classes | |||
23:53
firstdayonthejob left
|
|||
rudi_s | So I'd create e.g. two is native('lib') functions and then use either one depending on the current platform? Sounds easy, thanks. | 23:53 | |
timotimo | that's how i'd do it | 23:55 | |
oh | 23:56 | ||
another thing that's probably easier: | |||
you can have constant this_api_is_broken = int32 | |||
and that can depend on $*PERL or $*VM or whatever you need to figure out the architecture | |||
rudi_s | timotimo: Can I use that constant as parameter for the sub? | 23:57 | |
Juerd | www.reddit.com/r/dailyprogrammer/c...ith_light/ | 23:58 | |
rudi_s | Btw. what am I'doing wrong when size_t causes this error: "Invalid typename 'size_t' in parameter declaration." | ||
Juerd | ^ Another challenge where the Perl 6 code is so much more readable than all the other ones. | ||
23:58
thundergnat left
|
|||
timotimo | yes, you can | 23:58 | |
rudi_s: i suppose we just don't expose size_t? | 23:59 | ||
23:59
sufrosti1o left,
sufrostico left
|
|||
timotimo | oh | 23:59 | |
we do expose that |