»ö« 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. |
|||
llfourn | steven_: I forgot to mention the most important part. At the top of main.p6 you put 'use MyModule;'. Then you will get anything exported from MyModule.pm6 | 00:04 | |
00:04
wamba left
|
|||
steven_ | ok cool will add that | 00:05 | |
llfourn | steven_: you have to put 'is export' on things you want to export from MyModule.pm6 to get them in main.p6 | 00:07 | |
00:09
mcmillhj joined
|
|||
steven_ | i have been trying perl6advent.wordpress.com/2009/12/...exporting/ | 00:09 | |
but cannot get it to work | |||
llfourn | what error are you getting? | ||
steven_ | Could not find MyModule at line 1 | 00:10 | |
[Coke] | how are you running it? probably need to specify PERL6LIB env var. | 00:11 | |
(or use -I on the command line) | |||
steven_ | yeah i think you are right because the article references $PERL6LIB | ||
llfourn | steven_: if you do perl6 -Ilib main.p6 and MyModule.pm6 is in lib it will work | ||
[Coke] | also note that 2009 is ancient history. | 00:12 | |
steven_ | btw i am REALLY NEW TO PERL | ||
but not new to programming | |||
i will check into that env var and then come back to this chat | 00:13 | ||
success imminent | |||
!! | |||
00:13
mcmillhj left
|
|||
llfourn | steven_: good luck :) | 00:13 | |
profken | Anyone have any idea about why this isn't working? gist.github.com/anonymous/018c83c8...4530e4e6af | 00:14 | |
00:14
mcmillhj joined
|
|||
Geth | doc: bd88d704aa | (Will "Coke" Coleda)++ | doc/Type/Str.pod6 show OUTPUT |
00:18 | |
doc: cc0c04b676 | (Will "Coke" Coleda)++ | xt/space-after-comma.t convert from run to Proc::Async |
|||
profken | I don't know what 'This type cannot unbox to a native number: P6opaque, Int' means | ||
zollX | is there any facility to include DATA (lines) to a program as one can in perl 5 by adding stuff after __DATA__? | ||
llfourn | profken: that sort of error | 00:19 | |
you can get like: | |||
m: my int $a = "foo" | |||
camelia | This type cannot unbox to a native integer: P6opaque, Str in block <unit> at <tmp> line 1 |
||
00:19
mcmillhj left
|
|||
llfourn | m: my num $a = 3 | 00:19 | |
camelia | This type cannot unbox to a native number: P6opaque, Int in block <unit> at <tmp> line 1 |
||
llfourn | there you go ^ | ||
it looks like it wants floating point numbers but it's getting Ints at some point | 00:20 | ||
tbh I would expect it to auto convert | |||
m: my num $a = 3e0 | |||
camelia | ( no output ) | ||
profken | how do I convert an int to a num | 00:22 | |
llfourn | zollX: I think there is but tbh I don't recall. Something to do with $=pod I think. | ||
m: my int $a = 3; my num $b = $a.Num | |||
camelia | ( no output ) | ||
llfourn | profken: like this maybe^ | ||
geekosaur | r: my num $a = 3.Num | 00:23 | |
camelia | java.nio.file.NoSuchFileException: /nqp/lib/Perl6/BOOTSTRAP.jar in <anon> (gen/jvm/ModuleLoader.nqp:92) in load_module (gen/jvm/ModuleLoader.nqp:79) in <anon> (gen/jvm/CORE.setting) in <anon> (gen/jvm/ModuleLoader.nqp:257) in load_sett… |
||
( no output ) | |||
zollX | thanks, llfourn. that is something i do not expect perl 6 to provide but won't mind if it does indeed. | ||
llfourn | zollX: apaprently there was a SO about this: stackoverflow.com/questions/426914...ns#4269362 | ||
00:24
mcmillhj joined
|
|||
profken | Thank you llfourn, I got it working | 00:24 | |
llfourn | profken: \o/ nice! | ||
00:25
travis-ci joined
|
|||
travis-ci | Doc build errored. Will "Coke" Coleda 'convert from run to Proc::Async' | 00:25 | |
travis-ci.org/perl6/doc/builds/257959494 github.com/perl6/doc/compare/69b25...0c04b676e7 | |||
00:25
travis-ci left
|
|||
buggable | [travis build above] ☠ Did not recognize some failures. Check results manually. | 00:25 | |
zollX | llfourn++. that SO link was much helpful | 00:26 | |
llfourn | sweet. It's good to feel helpful :) | ||
00:28
cpage_ left
00:29
mcmillhj left
00:34
Cabanossi left
|
|||
Geth | doc: 513b730a85 | (Will "Coke" Coleda)++ | doc/Type/List.pod6 Note "not-grep" Fixes #1425 |
00:35 | |
lookatme | morning | ||
00:36
Cabanossi joined
|
|||
lookatme here is 8.37 | 00:37 | ||
00:39
mcmillhj joined,
Technaton left,
Technaton joined
00:44
cpage_ joined,
mcmillhj left
00:54
travis-ci joined
|
|||
travis-ci | Doc build passed. Will "Coke" Coleda 'Note "not-grep" | 00:54 | |
travis-ci.org/perl6/doc/builds/257962839 github.com/perl6/doc/compare/cc0c0...3b730a857b | |||
00:54
travis-ci left
00:56
mcmillhj joined
|
|||
timotimo | [Coke]: does anything speak against none(/foo bar/) there? | 00:56 | |
00:57
skids joined
|
|||
geekosaur | isn't dragging in a junction slower? | 00:58 | |
jeromelanteri | morning | 00:59 | |
timotimo | hm, perhaps | 01:00 | |
AlexDaniel | interesting, just today we've been talking about not-grep and I'm already using the none trick for something else | 01:01 | |
01:01
mcmillhj left
|
|||
timotimo | there's none trick here, move along | 01:02 | |
AlexDaniel | I have a feeling that pushing people towards learning none junction is far more useful than having not-grep (as it may be useful everywhere), but I'm not sure | ||
timotimo | move allong, none tricks to see, not anything at all | ||
AlexDaniel | it slightly bothers me that junctions are typically *really* slow, but maybe we can optimize none for this exact case | 01:03 | |
I mean, ~~ with none | |||
timotimo | maybe a fast-path for only one thing in the junction | 01:04 | |
AlexDaniel | yea | ||
timotimo | last time i looked at that hacker news post it had 208 comments, now it's 320 | 01:05 | |
AlexDaniel | m: say <a b c d e f>.grep({! /<[aeiou]>/}) | ||
camelia | (b c d f) | ||
AlexDaniel | m: say <a b c d e f>.grep(none /<[aeiou]>/) | ||
camelia | (b c d f) | ||
AlexDaniel | which one is more readable? :) | ||
timotimo | that regex is quite easy to negate internally, though | ||
AlexDaniel | well, that's not the point, but sure | ||
timotimo | of course | 01:06 | |
01:08
mcmillhj joined
|
|||
zollX | AlexDaniel: both grep-not are equally readable. of course, the 2nd one has fewer characters to (humanly) parse around | 01:09 | |
colomon | m: say (1, 2.3, 3, “b”).grep(Int) | 01:11 | |
camelia | (1 3) | ||
colomon | m: say (1, 2.3, 3, “b”).grep(none Int) | ||
camelia | (2.3 b) | ||
lookatme | m: say (1, 2.3, 3, “b”).grep(! Int) | ||
camelia | Cannot use Bool as Matcher with '.grep'. Did you mean to use $_ inside a block? in block <unit> at <tmp> line 1 |
||
AlexDaniel | zollX: it is also technically better because you can use it with anything, not just regexes | 01:12 | |
m: say (1, 2.3, 3, “b”).grep(none Int) # case in point | |||
camelia | (2.3 b) | ||
timotimo | i wish we could figure out that the thing passed to grep was created with ! there | ||
AlexDaniel | timotimo: huh? | ||
timotimo | .grep(! Int) | ||
says "can't use bool as a matcher!" | |||
01:13
mcmillhj left
|
|||
AlexDaniel | you mean that the error message is LTA? | 01:13 | |
lookatme | I prefer one have consistency | ||
colomon | are there any cases where “none” doesn’t work? | ||
AlexDaniel | colomon: this is what I'm wondering also | ||
zollX | m: say (1, 2.3, 3, “b”).grep(none Any) | 01:14 | |
camelia | () | ||
AlexDaniel | colomon: very often I had revelations like this only to realize later that it doesn't always work | ||
zollX | sweet | ||
01:14
Hotkeys left
|
|||
colomon | AlexDaniel: I hear you | 01:15 | |
zollX | thanks people. time to step away from 'puter ... | 01:16 | |
01:16
zollX left
|
|||
AlexDaniel | oh wow! | 01:18 | |
bench: HEAD compare (^9999).grep(none /1/) ||| (^9999).grep({!/1/}) | |||
ah the bot is down | 01:19 | ||
one sec… | |||
01:19
statisfiable6 joined,
ChanServ sets mode: +v statisfiable6
|
|||
AlexDaniel | not this one though | 01:19 | |
01:19
benchable6 joined
|
|||
AlexDaniel | bench: HEAD compare (^9999).grep(none /1/) ||| (^9999).grep({!/1/}) | 01:19 | |
benchable6 | AlexDaniel, starting to benchmark the 1 given commit | ||
AlexDaniel, ¦HEAD: ««run failed, exit code = 1, exit signal = 0»» | |||
01:19
ChanServ sets mode: +v benchable6,
Cabanossi left
|
|||
AlexDaniel | benchable6: wiki | 01:19 | |
benchable6 | AlexDaniel, github.com/perl6/whateverable/wiki/Benchable | ||
AlexDaniel | bench: compare HEAD (^9999).grep(none /1/) ||| (^9999).grep({!/1/}) | 01:20 | |
benchable6 | AlexDaniel, starting to benchmark the 1 given commit | ||
AlexDaniel, gist.github.com/82321be4c9cf975a9c...845a806c37 | |||
AlexDaniel | bench: compare HEAD (^99999).grep(none /1/) ||| (^9999).grep({!/1/}) | ||
benchable6 | AlexDaniel, starting to benchmark the 1 given commit | ||
AlexDaniel, gist.github.com/60b7a888ef4e30608c...60b4f696eb | |||
AlexDaniel | wrong | ||
bench: compare HEAD (^99999).grep(none /1/) ||| (^99999).grep({!/1/}) | |||
benchable6 | AlexDaniel, starting to benchmark the 1 given commit | ||
AlexDaniel, gist.github.com/9d465b380c2cd0f942...aabce3947e | |||
AlexDaniel | … anyway | 01:21 | |
e: (^99999).grep(none /1/); say now - BEGIN now | |||
evalable6 | 1.0512459 | ||
AlexDaniel | e: (^99999).grep({!/1/}); say now - BEGIN now | ||
01:21
Cabanossi joined
|
|||
evalable6 | 8.9576913 | 01:21 | |
AlexDaniel | timotimo: ↑ | ||
so using none junction is actually SIGNIFICANTLY faster | 01:22 | ||
unless I'm missing something | |||
colomon | woah | ||
AlexDaniel | e: (^99999).grep({!/1/}).elems.say; say now - BEGIN now | ||
skids | yay autothreading. | ||
evalable6 | 59048 9.1152870 |
||
AlexDaniel | e: (^99999).grep(none /1/).elems.say; say now - BEGIN now | ||
evalable6 | 59048 1.0630564 |
||
timotimo | that can't be true? | 01:23 | |
really strange, but i like it | |||
AlexDaniel | by the way | 01:24 | |
geekosaur | I would not want to trust a bot on a vps for timing | ||
timotimo | 💯 is not a valid number symbol to us :( | ||
AlexDaniel | e: (^99999).grep({/1/}).elems.say; say now - BEGIN now | ||
evalable6 | 40951 8.9982822 |
||
AlexDaniel | e: (^99999).grep(/1/).elems.say; say now - BEGIN now | ||
evalable6 | 40951 0.9552490 |
01:25 | |
01:25
mcmillhj joined
|
|||
AlexDaniel | geekosaur: this is not a vps. This is a dedicated server | 01:25 | |
geekosaur: it's not completely empty, but normally it has *very* low load | |||
colomon | geekosaur: I just got similiar results (with same code) on my Mac. | ||
AlexDaniel | geekosaur: and when you have 8 TIMES the difference I don't think there's any reason not to trust it | ||
sooo, matching a regex is always significantly faster than matching a block it seems? A none junction doesn't seem to do any difference at all | 01:26 | ||
skids | ah. foo. | ||
AlexDaniel | like, even if we were to optimize it here, it'd give like 5% of a difference but that's not much | ||
I don't know about you folks, but for me this is a huge discovery :) | 01:27 | ||
colomon | AlexDaniel++ # benchmarking for the win | ||
AlexDaniel | maybe benchable can do the right thing to graph it across releases though… | 01:28 | |
bench: releases (^40000).grep({!/1/}).elems.say | |||
benchable6 | AlexDaniel, starting to benchmark the 21 given commits | ||
skids | would seem to indicate a lot of time is spent in call setup for closures. | 01:29 | |
timotimo | a tracing specializer could do some good here | ||
01:30
mcmillhj left
|
|||
AlexDaniel | please benchable6 don't act stupid, just gist what you have… | 01:31 | |
or I'll change your code even more that you'll not recognize yourself in a mirror | |||
benchable6 | AlexDaniel, «hit the total time limit of 240 seconds» | 01:33 | |
AlexDaniel | bench: releases (^10000).grep({!/1/}).elems.say | ||
benchable6 | AlexDaniel, starting to benchmark the 21 given commits | ||
AlexDaniel | come on | ||
I want a graph of this | |||
benchable6 | AlexDaniel, benchmarked the given commits, now zooming in on performance differences | 01:35 | |
timotimo | that was quicker | ||
skids | m: (^99999).grep(-> $a {$a ~~ /1/}).elems.say; say now - BEGIN now | ||
camelia | 40951 1.2832665 |
||
skids | It's probably the magic conextual variable stuff. | 01:36 | |
benchable6 | AlexDaniel, gist.github.com/6001c5744e3c877d76...465de31e46 | ||
AlexDaniel | looks like a regression to me? | ||
let's see | |||
timotimo | fascinating | ||
it's the same result, though, right? | 01:37 | ||
AlexDaniel | c: b7201a8^,b7201a8 (^99999).grep({!/1/}).elems.say; say now - BEGIN now | ||
committable6 | AlexDaniel, ¦b7201a8^: «590485.0481256» ¦b7201a8: «590489.0262629» | ||
AlexDaniel | well, there you have it | ||
this? github.com/rakudo/rakudo/commit/b7...e8f5c77f41 | 01:38 | ||
timotimo | Completely re-imagine Str.match internals | ||
AlexDaniel | c: b7201a8f22338a906f2d8027a21387e8f5c77f41^,b7201a8f22338a906f2d8027a21387e8f5c77f41 (^99999).grep({!/1/}).elems.say; say now - BEGIN now | ||
let's double-check | |||
colomon is betting no | |||
committable6 | AlexDaniel, ¦b7201a8f22338a906f2d8027a21387e8f5c77f41^: «590485.0645579» ¦b7201a8: «590489.1315745» | ||
colomon is wrong | |||
AlexDaniel | yup | 01:39 | |
colomon | oh, those were already the two you compared | ||
AlexDaniel | note that it is still not fast at all | ||
it's like 4 times slower than junction version, at least | |||
timotimo | does it know how to bool-only for the iterator? | ||
01:39
merced joined
|
|||
AlexDaniel | no idea, but I'll submit a ticket now | 01:40 | |
Oct 23, 2016 damn that's a bit old | |||
timotimo | the coverage reporter could be interesting here | ||
to see what parts of that code it hits | |||
we have that bot yet? | |||
AlexDaniel | coverable6: help | ||
coverable6 | AlexDaniel, Like this: coverable6: f583f22 grep=SETTING say ‘hello’; say ‘world’ # See wiki for more examples: github.com/perl6/whateverable/wiki/Coverable | ||
timotimo | sounds great | 01:41 | |
AlexDaniel | timotimo: try it? | ||
01:41
mcmillhj joined
|
|||
timotimo | coverable6: b7201a8f22338a906f2d8027a21387e8f5c77f41 (^99999).grep({!/1/}).elems.say | 01:41 | |
coverable6 | timotimo, gist.github.com/68ff88fef35f41d700...c22676f3b0 | ||
timotimo | well, that certainly worked | ||
AlexDaniel | well, that's too old for coverage reporting? | ||
timotimo | (coverage NYI there) | ||
yep | |||
AlexDaniel | well, that's unfixable I think? | 01:42 | |
I can add an error message for this though | |||
timotimo | not easy to fix, no | ||
yeah, that'd be neato | |||
AlexDaniel | coverable6: HEAD (^99999).grep({!/1/}).elems.say | ||
still we can do it on head | |||
but look, benchable6 did a good job, it seems that I won't have to defenestrate it | |||
coverable6 | AlexDaniel, gist.github.com/f3db9e924cebe9b96a...b4cd67ae9c | ||
timotimo | yeah, head still has a bunch of that code | ||
i didn't build the cover-lines-multiple-times mode yet | 01:43 | ||
01:45
profken left,
ilbot3 left
|
|||
timotimo | i don't see anything very damning? | 01:47 | |
01:47
mcmillhj left
|
|||
timotimo | i mean, yeah, allocating the *%_ is maybe not so great | 01:48 | |
okay what the hell happened now | |||
my terminal's gone all wonky | |||
i should maybe sleep instead of this | 01:51 | ||
liz has a fantastic eye for performance, maybe she'll see something obvious | |||
01:51
ilbot3 joined,
ChanServ sets mode: +v ilbot3
|
|||
timotimo | oh, huh, parameter binding is really hot there | 01:52 | |
28% BOOTSTRAP.nqp:2196 (i assume that's find_best_candidate), 22% bind_one_param, another 12.7% bind, another <anon> inside BOOTSTRAP with 4%, and is_bindable with 4% | 01:53 | ||
AlexDaniel | I want to point out that the reason we have all this information now is because we cared to *properly* resolve the issue one of the users was having, instead of telling them to go learn how grep works and to fuck off in general | ||
timotimo | none of the 11 top frames get jitted, only half of them get speshed at all | ||
i'm glad i ran the profiler on this | 01:55 | ||
AlexDaniel | rejecting ideas and complaints is easy but not productive, addressing issues is what does the trick. Doesn't mean that we have to do the first thing that is proposed, but for the love of all that is good and decent, may I ask everyone to think a little bit deeper before being rejective about everything? | 01:56 | |
sorry, this was bothering me a bit too much | |||
timotimo | um, i might be too tired to see what you are refering to? | 01:57 | |
01:59
mcmillhj joined
|
|||
MasterDuke | timotimo: btw, i've started on implementing nqp::coverage_control | 01:59 | |
timotimo | that's nice! | ||
AlexDaniel | timotimo: irclog.perlgeek.de/perl6/2017-07-26#i_14925561 | ||
timotimo | ah, that was when i wasn't on line i guess | 02:00 | |
AlexDaniel | timotimo: TL;DR first reaction was “no, we don't need to add any features, go learn how it works”, and then we went with better “well, let's document how to do it. Ok, there is more than one way. Ok, one way is much slower. Ok, it is a regression” | ||
I attempted to express the idea of resolving issues this way in this blog post, but I'm not sure if anybody cares: perl6advent.wordpress.com/2016/12/...n-awesome/ | 02:01 | ||
MasterDuke | timotimo: and BOOTSTRAP.nqp:2196 is probably `Routine.HOW.add_method(Routine, 'find_best_dispatchee', nqp::getstaticcode(sub ($self, $capture, int $many = 0) {` | 02:02 | |
AlexDaniel | c: b7201a8f22338a906f2d^,b7201a8f22338a906f2d (^99999).grep({!/1/}).elems.say; say now - BEGIN now | 02:04 | |
timotimo | yes, find_best_dispatchee | 02:05 | |
committable6 | AlexDaniel, ¦b7201a8f22338a906f2d^: «590485.0902087» ¦b7201a8: «590489.23840074» | ||
AlexDaniel | c: b7201a8f22338a906f2d^,b7201a8f22338a906f2d (^99999).grep({/1/}).elems.say; say now - BEGIN now | ||
timotimo | whereever that pops up, things are terrible | ||
committable6 | AlexDaniel, ¦b7201a8f22338a906f2d^: «409514.905903» ¦b7201a8: «409519.032774» | ||
AlexDaniel | c: b7201a8f22338a906f2d^,b7201a8f22338a906f2d (^99999).grep(/1/).elems.say; say now - BEGIN now | ||
committable6 | AlexDaniel, ¦b7201a8f22338a906f2d^: «409511.12385689» ¦b7201a8: «409511.1106832» | ||
AlexDaniel | so only code blocks are affected | ||
well, at least | |||
[Coke] | m: say (1..*-1).WHAT; say (1..*-1).^name | ||
camelia | (WhateverCode) { ... } |
||
AlexDaniel | and doesn't matter if it's negated or not | ||
I submitted a ticket: RT #131805 | 02:06 | ||
synopsebot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=131805 | ||
02:07
mcmillhj left
|
|||
timotimo | right, the big amount of time sunk comes from the proto method match from Str | 02:07 | |
i wonder if moving the $/ out of the proto and into every candidate and making the proto much simpler will alleviate performance here | |||
[Coke] | ^^ is that a bug? for doc#1355 | ||
timotimo | but i'm already half on the way to bed | ||
no, 1..*-1 is supposed to WhateverCurry | 02:08 | ||
so you can have things like @foo[*-5..*-3] work out right | |||
MasterDuke | AlexDaniel++ nice writeup in the ticket | 02:09 | |
Geth | doc: 138208cef7 | (Will "Coke" Coleda)++ | 28 files Don't use .WHAT, use ^name Part of #1355 |
||
timotimo | oh, you weren't refering to the fact that it curries at all | 02:10 | |
yeah. i'm proving now that i ought to go sleep | |||
[Coke] | Zoffix: feedback on github.com/perl6/doc/issues/1355 ? | ||
timotimo: the bug is that ^name and .WHAT are giving different results. | 02:11 | ||
(where as in every other case in the docs, it was just (e.g.) Int vs (Int) | |||
timotimo | i'd say perhaps .^name also whatever-curries there | ||
m: say ((1..*-1).^name)(10) | |||
camelia | Range | ||
timotimo | that's ... quite useless :D | 02:12 | |
AlexDaniel | hm, I wonder if this is why unicodable6 is now very slow | ||
because that's exacly what it does, it greps with a code block if you give it one | |||
I remember it getting slower suddenly at some point, but didn't think of it much | |||
timotimo | but i thought the majority of the sluggishness comes from method match on Str .. i can't come up with a good way to make sure :| | ||
like does grep with a regex do something special? | 02:13 | ||
AlexDaniel | what if we eliminate match? | ||
timotimo | does it circumvent calling .match on every entry? or is it because it's Cool, not Str and somehow the conversion does something different? | ||
AlexDaniel | c: b7201a8f22338a906f2d^,b7201a8f22338a906f2d (^99999).grep({True}).elems.say; say now - BEGIN now | ||
committable6 | AlexDaniel, ¦b7201a8f22338a906f2d^: «999990.1037948» ¦b7201a8: «999990.09883378» | ||
AlexDaniel | c: b7201a8f22338a906f2d^,b7201a8f22338a906f2d (^99999).grep({(^1).pick}).elems.say; say now - BEGIN now | 02:14 | |
committable6 | AlexDaniel, ¦b7201a8f22338a906f2d^: «00.729757» ¦b7201a8: «00.75104530» | ||
AlexDaniel | so it's only a regex thing? | ||
c: b7201a8f22338a906f2d^,b7201a8f22338a906f2d (^99999).grep({.match(‘1’)}).elems.say; say now - BEGIN now | 02:15 | ||
committable6 | AlexDaniel, ¦b7201a8f22338a906f2d^: «409515.0481776» ¦b7201a8: ««timed out after 10 seconds» «exit signal = SIGHUP (1)»» | ||
AlexDaniel shrugs | |||
02:16
mcmillhj joined
02:18
gdonald left,
gdonald joined
|
|||
timotimo | good hunting! | 02:20 | |
[Coke] | m: say ((1..*-1)).^name; # close enough | ||
camelia | WhateverCode | ||
[Coke] | Zoffix: nevermind, all set. | 02:21 | |
02:21
mcmillhj left
|
|||
Geth | doc: 6c0d1d37fa | (Will "Coke" Coleda)++ | doc/Type/Whatever.pod6 fix last .WHAT instance #1355 |
02:25 | |
doc: 50731f8481 | (Will "Coke" Coleda)++ | 2 files Test for inappropriate usage of .WHAT in sample code Provide for :ok-test<WHAT> as a way to allow it in the very few examples where it makes sense. |
|||
02:30
mcmillhj joined
02:34
mcmillhj left
|
|||
jeromelanteri | try to use perl6-debug-m... failed with error: "Non ast passed to WANTED: NQPMu ===SORRY!=== Cannot find method 'named' on object of type NQPMu | 02:44 | |
lookatme | what's your rakudo version ? | 02:47 | |
jeromelanteri | how to see that ? | 02:48 | |
lookatme | perl6 -v | ||
jeromelanteri | 2017.06 built on MoarVM version 2017.06 | ||
implementing perl 3.c | 02:49 | ||
perl 6.v | |||
.c (zut !) | |||
yoleaux | I don't know | ||
02:49
mcmillhj joined
|
|||
geekosaur | I think that was still buggy, you need 2017.07? | 02:50 | |
02:50
mr_ron joined
|
|||
lookatme | yeah, you can update your rakudo to last version | 02:51 | |
jeromelanteri | from my packager, version has not moved... how to find the soucre ? | 02:52 | |
ok found | 02:53 | ||
lookatme | The github release ? | ||
02:53
mcmillhj left
|
|||
jeromelanteri | yes | 02:54 | |
11 days ago, a commit said: 2017.07 is now in the past | |||
02:59
noganex_ joined
03:01
mcmillhj joined
03:02
noganex left,
mr_ron left
|
|||
jeromelanteri | perl6 --version ==> eror unhandled exception: Missing or wrong version of dependency '/tmp/prl6/rakudo/install/bin../share/nqp/lib/MAST/Nodes.nqp' (from 'src/perl6/Pod.nqp') | 03:03 | |
03:04
eater left
|
|||
jeromelanteri | may i need to remove rakudo from my packager isntallation ? | 03:05 | |
and what about alacryd and perl6-json-fast (installef rom packager) ? | |||
03:05
mcmillhj left
|
|||
jeromelanteri | (installed from my packager) | 03:06 | |
03:06
eater joined
|
|||
MasterDuke | jeromelanteri: you could reinstall rakudo and manually edit the PKGBUILD to point to 2017.07 | 03:11 | |
03:11
steven_ left
|
|||
jeromelanteri | ok, i removed all from packager, and try to install all from github clone, compil and install... rakudo and alacryd, maybe zef also... | 03:11 | |
03:12
tharkun left
|
|||
jeromelanteri | MasterDuke, yes, i thank about that way to, but because packages are not supported offical ones for archlinux (repos AUR) and that they have many problem for find there own dependencies sources... i decide to remove dirty things and make all clean by hand. | 03:12 | |
I will do from packages when they will be maintained officialy by archlinux dudes... | 03:13 | ||
MasterDuke | jeromelanteri: fyi, i just flagged rakudo/nqp/moarvm as out of date | ||
jeromelanteri | yes | ||
MasterDuke | i have those packages installed, but i also have local checkouts that i build | ||
jeromelanteri | that ios why maybe also the debugger failed to run. | ||
MasterDuke, on archlinux ? | |||
03:15
statisfiable6 left
|
|||
MasterDuke | yeah | 03:16 | |
03:16
mcmillhj joined
|
|||
jeromelanteri | MasterDuke, and perl6-debug-m start running well ? | 03:17 | |
03:19
SpikeMaster joined
|
|||
SpikeMaster | join #emacs | 03:19 | |
03:19
SpikeMaster left
|
|||
MasterDuke | jeromelanteri: seems to work | 03:22 | |
03:22
mcmillhj left
|
|||
jeromelanteri | MasterDuke, version ? | 03:23 | |
MasterDuke | This is Rakudo version 2017.07-77-g5d89cef9f built on MoarVM version 2017.07-18-ga052a333 | 03:24 | |
jeromelanteri | MasterDuke, yeah ok, so it is not from package AUR. | ||
you modify the pkg-build then ? | |||
MasterDuke | no, just built it by hand | 03:25 | |
jeromelanteri | MasterDuke, so i not understand what you told me at 10:13:44 (UTC +7) | 03:26 | |
13 minutes ago. | |||
you have those packages installed or not ? | |||
MasterDuke | i have the packages installed (unmodified), but i also build rakudo in my home directory | 03:27 | |
jeromelanteri | then when you call it, how do you do that ? (comand perl6 linked on your home construction ?) | 03:28 | |
MasterDuke | i have an alias in my .bashrc | 03:29 | |
jeromelanteri | i do install it from git, but then i do not see where it has been install... do the git clone repo has to be cloned inside a /usr/share/rakudo directly ? | ||
MasterDuke | `alias p6='~/Source/perl6/install/bin/perl6'` | ||
03:29
mcmillhj joined
|
|||
MasterDuke | if you didn't specify a --prefix, it just went in rakudo/install | 03:30 | |
jeromelanteri | MasterDuke, so the git repo is a source to keep... insatllation does not copy files on places | ||
ok | |||
which --prefix should be a good idea for system wide installation ? | |||
MasterDuke | i specified a --prefix of `--prefix=/home/dan/Source/perl6/install/` | ||
03:31
pilne left
|
|||
jeromelanteri | MasterDuke, yes you told me that. but for a system wide installation ? may it be /usr/share/perl6 ? may it be a good idea you think ? | 03:32 | |
MasterDuke | well, if you don't use the aur packages you could always put it where they do, /usr/bin | ||
AlexDaniel | m: sub foo(+%z) { dd %z.keys }; foo %(:5a, :10b) | ||
camelia | (0, 1).Seq | ||
AlexDaniel | isn't it weird? ↑ | 03:33 | |
like, what's the point of doing +%z at all? | |||
jeromelanteri | MasterDuke, ok, then i just do copy content of rakudo/install in good places: /usr/bin for bin, etc... | ||
AlexDaniel | m: sub foo(*%z) { dd %z.keys }; foo %(:5a, :10b) | ||
camelia | Too many positionals passed; expected 0 arguments but got 1 in sub foo at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
AlexDaniel | m: sub foo(*%z) { dd %z.keys }; foo :5a, :10b | ||
camelia | ("a", "b").Seq | ||
MasterDuke | i don't think /usr/share usually has binaries | ||
03:34
mcmillhj left,
Cabanossi left
|
|||
MasterDuke | jeromelanteri: i don't think copying them will work, they aren't relocatable, they have hardcoded in the binaries the paths specified during configure/build | 03:34 | |
jeromelanteri | MasterDuke, ok then i have to rebuild them with --prefix | 03:35 | |
03:35
Cabanossi joined
|
|||
MasterDuke | yep | 03:35 | |
jeromelanteri | works... | 03:39 | |
MasterDuke | cool | ||
jeromelanteri | MasterDuke, same for alacryd ? i have to paste a --prefix ? | 03:40 | |
MasterDuke | that i don't know. i've never used it directly | 03:41 | |
i don't use a lot of modules, so the few i do use i just clone manually | 03:44 | ||
03:45
mcmillhj joined
|
|||
MasterDuke | jeromelanteri: if you're not using the aur packages, you probably want to use zef instead of alacryd | 03:47 | |
jeromelanteri | yes, i use zef allready... then i thank i had to install alacryd because on packages installation time, it installed it has dependency by default... | 03:49 | |
so ok, i no need alacryd then. | |||
MasterDuke, thank you for your recommandations and help | 03:50 | ||
MasterDuke | welcome | 03:51 | |
03:53
mcmillhj left
04:02
cpage__ joined
04:03
cpage_ left,
cpage__ is now known as cpage_
04:04
mcmillhj joined
04:05
khw left
04:10
mcmillhj left
04:24
anser joined
04:25
anser left
04:29
mcmillhj joined
04:31
adu joined
04:33
pompomcrab left
04:34
mcmillhj left
04:42
mcmillhj joined
04:47
mcmillhj left
04:48
Cabanossi left
04:50
Cabanossi joined
04:58
mcmillhj joined
05:05
mcmillhj left
05:25
skids left
05:27
mcmillhj joined
05:32
mcmillhj left
05:35
xtreak joined
05:40
cpage_ left
05:43
mcmillhj joined
05:50
adu left,
mcmillhj left
05:56
mcmillhj joined
06:00
mcmillhj left
06:01
ufobat joined
06:11
mcmillhj joined
06:13
jaldhar joined
06:14
lizmat left
|
|||
jaldhar | Hello. There is something I'm not understanding about Iterator. I have a class that has a bunch of attributes and one method that updates them (and some getters but thats not important.) ... | 06:15 | |
I want to make this iterator so I add does Iterator to my class and implement a pull-one method which calls my update method and returns self. Is that right? Because it doesn't seem to be iteratinf, I just get the same values each time. | 06:16 | ||
06:19
lowbro joined,
lowbro left,
lowbro joined
06:20
mcmillhj left
06:27
andrzejku joined
06:30
breinbaas joined
06:31
mcmillhj joined
06:36
mcmillhj left
06:38
lizmat joined
06:42
nadim joined
|
|||
lookatme | jaldhar, can u show us some code ? | 06:43 | |
06:45
mcmillhj joined
06:46
domidumont joined
06:48
Cabanossi left
06:50
Cabanossi joined,
mcmillhj left
06:52
domidumont left,
domidumont joined
06:58
mcmillhj joined
07:00
xtreak left,
xtreak joined
07:01
xtreak left,
xtreak joined
07:02
mcmillhj left
07:07
parv joined
|
|||
ingy | if I have 2 class Foo attributes@.foo and %.foo, and I make a $foo = Foo.new, can I access both attributes? | 07:07 | |
07:08
R0b0t1 joined
|
|||
R0b0t1 | How do I build rakduo star from a source that is verifiable? | 07:08 | |
I can only access the release page over HTTP and do not want to use that download | 07:09 | ||
I tried to clone the star repository from github but Configure.pl refuses to run | |||
lookatme | m: class Foo { has @.foo; has %.foo; } | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Two or more attributes declared that both want an accessor method 'foo' at <tmp>:1 |
||
lookatme | no way ingy | ||
m: class Foo { has @!foo; has %!foo; } | |||
camelia | ( no output ) | ||
ingy | thx | 07:10 | |
lookatme | It can not be declare with . | ||
ingy | got it | ||
makes sense | |||
lookatme | Welcome | 07:11 | |
jaldhar | lookatme: gist.github.com/jaldhar/bae299ee03...d751581e0b | ||
07:11
abraxxa joined
|
|||
jaldhar | lookatme: this is the current state of affairs pared down to the essentials. But it is way past my bedtime now. Will you be around in ~6 hours? | 07:12 | |
07:12
mcmillhj joined
|
|||
cono | R0b0t1: I usually build like this: perl Configure.pl --gen-moar --backends=moar | 07:12 | |
yoleaux | 12 Jun 2017 19:38Z <eveo> cono: you should add yourself to CREDITS file: github.com/rakudo/rakudo/blob/nom/CREDITS | ||
lookatme | jaldhar, if I find something, I will leave message to u or comment under your gist | 07:14 | |
07:14
pecastro left
07:15
pecastro_ joined,
nadim left
07:17
TimToady left
07:18
mcmillhj left,
|oLa| joined
07:19
TimToady joined
07:21
xtreak left,
darutoko joined
07:26
nadim joined,
rindolf joined
|
|||
R0b0t1 | cono: That is what I am trying to run. I see github.com/rakudo/star/blob/master...ure.pl#L53 | 07:27 | |
07:27
andrzejku left
|
|||
R0b0t1 | However, since having just looked at the source, I will try --force | 07:27 | |
cono: It fails with "Unable to read rakudo/tools/build/NQP_REVISION" | 07:28 | ||
07:28
mcmillhj joined
|
|||
R0b0t1 | I suppose that is directed at the channel in general | 07:29 | |
Hmm | 07:30 | ||
www.nntp.perl.org/group/perl.perl6....g8916.html | |||
Wow that is highly annoying | 07:31 | ||
It just downloads a tarball | |||
And one of the links 404s | |||
07:33
wamba joined
|
|||
R0b0t1 | I am positive that what is being done in the star repository is supposed to be done with submodules | 07:34 | |
07:34
Cabanossi left
|
|||
R0b0t1 | I am trying to see if there is a verifiable chain of trust in the build system and it looks like the answer is "no." | 07:34 | |
07:35
mcmillhj left,
Cabanossi joined
|
|||
R0b0t1 | wget --no-check-certificate https:// | 07:36 | |
Are you insane? | |||
I feel like a strongly worded email is in order | 07:37 | ||
I do declare | |||
lookatme | .tell jaldhar What do you mean same value. I test your code, and works fine. You not change public attribute, and it will be display same message when you `say` or `dd` them. | ||
yoleaux | lookatme: I'll pass your message to jaldhar. | ||
Juerd | --no-check-certificate is indeed insane. | 07:40 | |
07:43
zakharyas joined
|
|||
R0b0t1 | So erm | 07:44 | |
Juerd, do you have any recommendations here? Should I post to perl6-user about my issues with trying to verify the releases or to perl6-compiler to suggest that their build system is a poor one | 07:46 | ||
geekosaur | that didn't actually end up in star, did it? I know we had someone several months ago who insisted that we couldn't be a real project without a curl|sh install, so made an install site that did that... without https | ||
R0b0t1 | Not that I think you have any relevant expertise, I just need someone to pick for me | ||
But that's not to say you seem uninformed | |||
07:46
mcmillhj joined
|
|||
geekosaur | but there was general refusal to make the main rakudo site use it | 07:46 | |
R0b0t1 | geekosaur: If a project has a curl|sh line on its front page it makes me think it is developed by amateurs | 07:48 | |
07:49
dakkar_ joined
07:51
astj_ joined,
astj left,
astj joined
07:53
linuksz joined,
mcmillhj left
07:54
AlexDani` joined
07:55
astj_ left,
AlexDaniel left
|
|||
linuksz | why isn't it work: sprunge.us/EdUb | 07:57 | |
? | |||
R0b0t1 | Well having written the email it seems most appropriate for perl6-compiler | 08:01 | |
08:01
AlexDani` left
|
|||
linuksz | it don't give an usage message when launched with no arguments | 08:01 | |
08:01
AlexDani` joined
08:03
jonas1 joined
08:05
mcmillhj joined
08:06
pharv_ joined
08:13
AlexDani` left,
mcmillhj left
08:15
dwarring left
08:18
araujo_ joined
08:19
araujo_ left
|
|||
lookatme | linuksz, you can add constraint for your: Str:D $english_file_name or Str $english_file_name! | 08:19 | |
08:20
araujo_ joined,
mcmillhj joined,
parv left
08:21
araujo left
|
|||
linuksz | it doesn't work. sprunge.us/SWYL | 08:22 | |
stmuk | R0b0t1: rakudo.perl6.org/downloads/star/ is https if that's what you want | 08:23 | |
the star github repo is used to build the tarball and not star itself directly | |||
08:24
mcmillhj left
|
|||
stmuk | what do you mean "verify the release"? | 08:25 | |
08:26
nadim left
|
|||
lookatme | linuksz, is your script correct ? It report syntax error when I try it | 08:27 | |
linuksz | i think its syntax is correct | 08:28 | |
lookatme | Can you run `perl6 -c your.p6` ? | ||
linuksz | i get the following error when i run it: Variable '$translation_file_name' is not declared | ||
it isn't syntax error | |||
lookatme | No it's syntax error | 08:29 | |
so use perl6 -c check your syntax | |||
linuksz | i get the following error: | ||
===SORRY!=== Error while compiling /mnt/ramlemez/test.pl6 | |||
Variable '$translation_file_name' is not declared | |||
at /mnt/ramlemez/test.pl6:135 | |||
------> "### {⏏$translation_file_name.IO.basename} | |||
08:30
TEttinger left
|
|||
lookatme | linuksz, so there some error with your script | 08:30 | |
linuksz | this is the output of perl6 -c test.pl6 | ||
yes, and i don't know why doesn't it give an usage message when launched without arguments | 08:33 | ||
where should i search the errors? MAIN signature? | |||
lookatme | I think all parameter of your MAIN is optional | 08:34 | |
linuksz | but i used '!' | 08:36 | |
08:36
mcmillhj joined,
zengargoyle left
08:37
lizmat left
08:38
araujo_ left
|
|||
linuksz | i extracted the MAIN and the USAGE to a file, and deleted MAIN body: sprunge.us/TYdR | 08:39 | |
it works correctly | |||
08:41
pharv_ left
|
|||
lookatme | yeah, linuksz you can test your code piece by piece | 08:42 | |
linuksz | i am using the MAIN function first time | 08:43 | |
maybe the variables are declared at the wrong place | |||
08:43
mcmillhj left,
zengargoyle joined
|
|||
linuksz | if i use a variable in the signature of MAIN, and i use it in a subroutine, should it be declared globally? | 08:44 | |
lookatme | linuksz, no the parameter is lexical scope | 08:45 | |
you can pass it to your sub | 08:46 | ||
linuksz | i wrote this code originally without a MAIN sub | 08:47 | |
in that version, the $translation_file_name, $english_file_name, and $translator variables was global | 08:48 | ||
lookatme | Oh, I think you should modify your sub, add a signature | ||
08:49
Cabanossi left
|
|||
linuksz | if i declare a variable in MAIN's signature, will it be global? | 08:49 | |
lookatme | Not found a way you can both declare with MAIN parameter and can access in other sub | ||
linuksz, how to declare variable in signature ? | 08:50 | ||
08:50
Cabanossi joined
|
|||
linuksz | MAIN($english_file_name) | 08:50 | |
lookatme | No | 08:51 | |
linuksz | ? | ||
lookatme | The parameter is lexical scope | ||
you can access them outside a sub | |||
can not | |||
linuksz | oh, so i should declare the variable globally even if it is in MAIN signature? | 08:53 | |
moritz_ | no, mentioning it in a signature declares it for the block that the signature is attached to | 08:54 | |
08:54
mcmillhj joined
|
|||
gfldex | m: my $v; sub f($v is copy){ $v = 1 }; await start f(2); say $v; | 08:54 | |
camelia | (Any) | ||
moritz_ | m: sub f($x) { say $x }; f(42); # for linuksz | ||
camelia | 42 | ||
moritz_ | m: sub f($x) { say $x }; $x # for linuksz | 08:55 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Variable '$x' is not declared at <tmp>:1 ------> 3sub f($x) { say $x }; 7⏏5$x # for linuksz |
||
lookatme | linuksz, yeah, but it is not a good solution. | ||
linuksz | i declared the variables outside of MAIN, and it works. | ||
thanks. | |||
gfldex | linuksz: our scoped lexical parameters would make threading rather difficulty | ||
lookatme | I think I should add a feature for my Getopt module, so it can reference a global variable, and set value when user supply a option, just like Perl5 does | 08:56 | |
So you can add your `command line option` free | 08:57 | ||
gfldex | lookatme: please add a note to your module that it wont be threadsafe if globals are used | ||
lookatme | gfldex, I will do it | ||
08:58
dolmen joined
|
|||
lookatme | thanks | 08:58 | |
09:00
mr-foobar joined,
mcmillhj left
|
|||
lookatme | linuksz, if your want command line option support, you can checkout my module Getopt::Advance | 09:01 | |
github.com/araraloren/perl6-getopt...urce-code, There is a sample | 09:02 | ||
linuksz | ok, i will try it out | ||
lookatme | Add it to your original script, and MAIN is not necessary | ||
And sorry about the document of module is not too much, if you have some question, ask me on IRC linuksz | 09:04 | ||
I will add more document soon | |||
09:05
zakharyas left
09:06
araujo joined
09:12
mcmillhj joined
09:13
kaare_ left
09:16
zakharyas joined
09:18
kaare_ joined,
mcmillhj left
09:33
Cabanossi left,
lookatme left
09:34
LeCamarade joined
09:35
Cabanossi joined
|
|||
iviv | hey o/ sent a few PRs to github.com/perl6/docker | 09:44 | |
stmuk | no star doesn't use curl|sudo | 09:48 | |
09:50
mr-foobar left
09:52
mr-foobar joined
09:54
cpage_ joined
|
|||
daxim | tell raiph news.ycombinator.com/item?id=14856883 what's the real (error-free) code? can I observe the autothreading in htop? | 09:58 | |
10:02
Cabanossi left
|
|||
rightfold | Can you automatically generate a man page from a MAIN signature? | 10:03 | |
10:05
Cabanossi joined
10:08
jeromelanteri left
10:10
nowan left
10:14
nowan joined
10:18
Zoffix left
10:20
moritz_ is now known as moritz,
zakharyas left,
mr-fooba_ joined
10:21
mr-foobar left
10:22
zakharyas joined,
jeromelanteri joined
10:25
nadim joined
10:30
uktest joined,
uktest left
10:33
astj left
10:34
astj joined,
linuksz left
10:38
astj left,
astj joined
10:41
MasterDuke left
10:43
astj left
10:44
darutoko left
10:45
astj joined
10:53
astj left
|
|||
nadim | Hi, I get an error about and ambiguous call and I ama bit perplexed about why. first some info: nopaste.linux-dev.org/?1160057 . given that the signature differs with because of the :D I thought that would be enough to disambiguate | 11:03 | |
11:06
astj joined
11:11
andrzejku joined
11:16
astj left,
astj joined
11:21
astj left
|
|||
jnthn | The other one needs to be List:U | 11:22 | |
:D/:U don't count as tighter/looser | 11:23 | ||
11:34
pmurias joined
11:38
nadim left
|
|||
R0b0t1 | stmuk: Check the release .tar.gz against signed digests | 11:41 | |
stmuk: Odd, I tried changing one of the links to https and I got an error about an invalid certificate. It worked this time. | |||
stmuk: Or check the signature of the .tar.gz directly, but typically large releases have hashes of the release generated with a few different algorithms and then a file of those hashes is signed with GPG. | 11:42 | ||
Not to be condescending if you already knew how it works, but this is the third major language project that does extremely insecure things | 11:49 | ||
Overall it must be the fifth or sixth large project in general | |||
pmurias | R0b0t1: extremely insecure things being not signing releases properly or running random module code from the internet? | 11:51 | |
11:52
astj joined
11:53
araraloren joined
11:54
mr_ron joined,
mr_ron left
11:59
raschipi joined
12:01
astj left
|
|||
pmurias | stmuk: reading the sources in the tarballs doesn't actually get you any extra security as we bundle compiled bytecodes | 12:10 | |
stmuk: you would have to write a moarvm bytecode disassembler and read the the stage0 bytecode | 12:13 | ||
how is curl|sh less safe then downloading a .tar.gz full of code and executing it? | 12:20 | ||
12:21
nadim joined
|
|||
nadim | jnthn: thanks, let me try this | 12:21 | |
raschipi | pmurias: You're supposed to check the code before executing it. | 12:22 | |
12:22
espadrine left
|
|||
pmurias | raschipi: do you read the moarvm bytecode when downloading nqp? | 12:24 | |
raschipi: manually checking everything you download before executing it is for most people as practical as rewriting it instead of downloading or visiting a Perl 6 core developer bringing the code on a usb pen drive | 12:30 | ||
raschipi | Just making sure it's sane and you actually have the right to use it. | 12:32 | |
araraloren | evening | 12:35 | |
pmurias | raschipi: that only guards you against code that's obviously stupid not intentionally malicious | 12:36 | |
raschipi | sure | ||
12:37
astj joined
12:42
astj left
12:47
espadrine joined
12:49
Cabanossi left
12:50
Cabanossi joined
|
|||
stmuk | pmurias: yes I know .. there are two hints in my email about that | 12:57 | |
13:02
mcmillhj joined
13:10
astj joined,
astj_ joined,
astj left
13:20
mr-foobar joined
13:22
mr-fooba_ left
|
|||
nadim | I am putting stuff in a junction to match and I get this error nopaste.linux-dev.org/?1160059, maybe I have misunderstood what smart matching can match or not. | 13:26 | |
13:26
dolmen left
|
|||
nadim | jnthn: I thought ~~ could match the same objkect on both sides even when it is in a junction | 13:26 | |
stmuk | R0b0t1: I suspect most of the major language projects understand what you propose doesn't add much real security for quite a lot of effort and potential key management issues | ||
13:31
AlexDani` joined
|
|||
stmuk | what would be useful is if the SHA256 hashes are being distributed widely (not from our ftp servers) by third party systems | 13:31 | |
eg. github.com/Homebrew/homebrew-core/...star.rb#L5 | |||
13:33
Cabanossi left
13:35
Cabanossi joined
|
|||
stmuk | also fossies.org | 13:36 | |
pmurias | stmuk: doesn't signing help protect people who already got the keys before our servers got compromised? | 13:44 | |
stmuk | yes that's true and we could use third party keyservers but I'm still unconvinced its worth the effort | 13:46 | |
its not really the technical issues but the issues over lost keys etc. | 13:47 | ||
13:50
sufrostico left
13:53
mr-foobar left
13:54
mr-foobar joined
14:00
skids joined
14:04
vike left
14:06
yan__ joined
14:09
AlexDani` left
14:18
nicq20 joined
|
|||
nicq20 | When do $* vars exist? I'm trying to figure out the difference between $*LANG and $?LANG. | 14:21 | |
raschipi | $* is a dynamic variable. It will be looked in the current scope and if not found, in the scope of the caller. | 14:23 | |
Normal varibles if not found in the current scope will be looked in the outer scope | 14:24 | ||
$? is a compile-time variable | |||
nicq20 | Do $* vars get changed other than when changing scope? | 14:26 | |
raschipi | Sorry, I don't follow. | ||
Dynamic variables change just the same as other variables. | 14:28 | ||
nicq20 | For context: I'm fiddling with slangs still. I can't get a method to mixin right: irclog.perlgeek.de/perl6/2017-07-26#i_14926529 | 14:30 | |
14:30
cdg joined
|
|||
nicq20 | I was trying to figure out, why the role is applied to $?LANG, but not $*LANG. It does get applied when in a new scope though. | 14:33 | |
14:33
Cabanossi left
14:34
lowbro left
14:35
Cabanossi joined
|
|||
daxim | 6: "𝅘𝅥𝅲".chars | 14:36 | |
raschipi | m: "𝅘𝅥𝅲".chars | ||
camelia | ( no output ) | ||
raschipi | m: "𝅘𝅥𝅲".chars.say | ||
camelia | 1 | ||
14:37
lucasb joined
|
|||
nadim | m: my %h = <a 1> ; %h1 ~~ %h1 ; | 14:40 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Variable '%h1' is not declared at <tmp>:1 ------> 3my %h = <a 1> ; 7⏏5%h1 ~~ %h1 ; |
||
nadim | m: my %h1 = <a 1> ; %h1 ~~ %h1 ; | ||
camelia | ( no output ) | ||
nadim | m: my %h1 = <a 1> ; 'match'.say if %h1 ~~ %h1 ; | ||
camelia | ( no output ) | ||
nadim | m: my %h1 = <a 1> ; 'match'.say if %h1 ~~ 1 ; | ||
camelia | match | ||
nadim | m: my %h1 = <a 1> ; 'match'.say if %h1 ~~ 2 ; | ||
camelia | ( no output ) | ||
nadim | m: my %h1 = <a 1> ; 'match'.say if %h1 ~~ %h1 ; | ||
camelia | ( no output ) | ||
nadim | hmmm why doesn %h1 smart match itself? | 14:41 | |
14:43
vike joined
|
|||
nadim | m: my %h1 = <a 1> ; 'match'.say if %h1 ~~ %(a 1) ; | 14:48 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Undeclared routine: a used at line 1 |
||
14:48
jonas1 left
|
|||
nadim | m: my %h1 = <a 1> ; 'match'.say if %h1 ~~ %(<a 1>) ; | 14:49 | |
camelia | ( no output ) | ||
14:49
vike left
|
|||
nadim | m: my %h1 = <a 1> ; 'match'.say if %h1 eqv %h1 ; | 14:51 | |
camelia | match | ||
nadim | m: my %h1 = <a 1> ; 'match'.say if %h1 === %h1 ; | ||
camelia | match | ||
raschipi | nadim, it's not implemented yet in rakudo | 14:55 | |
github.com/perl6/roast/blob/master...ash-hash.t | |||
#?rakudo 2 todo "NYI" | 14:56 | ||
nicq20 | SourceBaby: help | 14:58 | |
SourceBaby | nicq20, Use s: trigger with args to give to sourcery sub. e.g. s: Int, 'base'. See modules.perl6.org/dist/CoreHackers::Sourcery | ||
15:00
lucasb left
|
|||
nicq20 | s: &~~ | 15:01 | |
SourceBaby | nicq20, Something's wrong: ERR: ===SORRY!=== Error while compiling -eMissing required term after infixat -e:6------> put sourcery( &~~ <HERE>)[1]; expecting any of: prefix term | ||
nicq20 | s: &~~, Set, Set | 15:02 | |
SourceBaby | nicq20, Something's wrong: ERR: ===SORRY!=== Error while compiling -ePreceding context expects a term, but found infix , insteadat -e:6------> put sourcery( &~~,<HERE> Set, Set )[1]; | ||
nicq20 | s: &~~, <HERE> Set, Set | ||
SourceBaby | nicq20, Something's wrong: ERR: ===SORRY!=== Error while compiling -ePreceding context expects a term, but found infix , insteadat -e:6------> put sourcery( &~~,<HERE> <HERE> Set, Set )[1]; | ||
nicq20 | To fix that, could we effectively just add `method ACCEPTS(Hash:D: Hash:D \h) { self ~~ h.Set }`? | 15:13 | |
nadim | raschipi: thanks, that was making me crazy | ||
nicq20 | Oh, wait. Ignore me. | 15:14 | |
moritz | /ignore nicq20 | 15:17 | |
15:17
khw joined
15:18
cdg left
15:19
sufrostico joined,
sufrostico left,
sufrostico joined,
dolmen joined
15:20
dolmen is now known as Guest81670
|
|||
jaldhar | lookatme: thanks for looking at this. But I am confused. Am I not changing the public attributes in the evolve function? It's still not iterating for me. | 15:24 | |
yoleaux | 07:37Z <lookatme> jaldhar: What do you mean same value. I test your code, and works fine. You not change public attribute, and it will be display same message when you `say` or `dd` them. | 15:25 | |
jaldhar | yoleaux: see above. I still don't get it. | 15:26 | |
15:27
nhywyll joined
|
|||
jaldhar | For anyone else who might be willing to help: see gist.github.com/jaldhar/bae299ee03...d751581e0b | 15:27 | |
I'm trying to make the Algorithm::DawkinsWeasel class iterable so I can do e.g. say $weasel.current-phrase while $weasel | 15:28 | ||
but I get back the same values each time. | 15:29 | ||
15:30
domidumont left
|
|||
moritz | jaldhar: $weasel.phrases that returns an iterator sounds like a better API design | 15:30 | |
15:30
abraxxa left
|
|||
moritz | jaldhar: then you could say for $weasel.phrases -> $current { say "Current phrase: $current } | 15:30 | |
and method phrases could be as simple as my $current = $something; gather while $current { take $current; $current = next_phrase_for($current) } | 15:31 | ||
15:33
Cabanossi left
|
|||
jaldhar | moritz: I don't necessarily want just the current-phrase but I think I understand you. Let me try it... | 15:35 | |
15:35
Cabanossi joined
|
|||
jaldhar | moritz: btw does your book go into these kinds of topics or is it more basic? I'm going to order it anyway but I was just interested to know. | 15:38 | |
moritz | jaldhar: it does mention gather/take, but not in detail | ||
mspo | did you write your book in POD6? | 15:39 | |
15:41
konsolebox left
15:44
itaipu joined,
konsolebox joined
|
|||
[Coke] | I seriously doubt anyone is doing that. | 15:49 | |
araraloren | jaldhar, why you think they are same value | 15:50 | |
mspo | [Coke]: write a book in pod? | 15:51 | |
[Coke]: www.perl.com/pub/2004/01/30/ttbook.html | |||
araraloren | Anyone know if there are a module can generate temp file path. Only file path. | ||
moritz | mspo: no, I wrote it in markdown, using LeanPub to render it | 15:52 | |
15:52
lizmat joined
|
|||
moritz | mspo: for the next book I'm starting, I'm considering using bookdown, wich is a somewhat richer markdown dialect | 15:53 | |
(but leanpub has the advantage that they handle payments, and allow you to publish and sell early and incrementally) | |||
[Coke] | mspo: POD6. | ||
mspo | moritz: it must be tough to find a good format | ||
[Coke] | I know some people write in a superset of pod5. | ||
mspo | rst is the python docstring format, right? | 15:54 | |
IO::Path::UNIX should probably grow mktemp | 15:55 | ||
15:55
salva0 left
|
|||
araraloren | For written I prefer asciidoc | 15:55 | |
moritz | mspo: I'm quite with markdown for 90% of the tasks; the rest needs a few extensions | 15:56 | |
15:56
itaipu left
|
|||
mspo | moritz: someone linked this to me earlier: beta.undeadly.org/cgi?action=artic...0304230520 | 15:57 | |
modules.zef.pm/search?terms=mktemp giving a 500 error | 15:58 | ||
araraloren | OK, There is $*TMPDIR, that's enough | ||
mspo | github.com/ugexe/Perl6-PathTools | 15:59 | |
araraloren | Oh, thanks | 16:00 | |
16:00
hythm left
16:02
Grrrr joined
16:03
noganex_ left
16:05
hythm joined
16:07
Guest81670 left
16:09
S007 left
16:10
zakharyas left
|
|||
jaldhar | does perl6 have something like end in C++ STL which is one past the last value? | 16:15 | |
because my iterator works now almost but it stops on the last value so I can't get that in a loop. | 16:16 | ||
16:17
noganex joined
16:18
S007 joined
16:19
cdg joined
16:20
domidumont joined
|
|||
araraloren | jaldhar, I think it's IteratorEnd | 16:20 | |
16:21
zakharyas joined
16:24
cdg left
|
|||
zengargoyle | jaldhar: have you seen Zoffix's article on Sequences and Iterator stuff? it has a few examples of writing iterator stuff that might be helpful if you haven't read it already. | 16:26 | |
16:28
Aaronepower left
16:29
vmeson joined
16:31
dakkar_ left
16:32
Zoffix joined,
itaipu joined
|
|||
Zoffix | mspo: IO::Path::* types are IO::Path + specific $.SPEC class. They're not gonna grow anything else. | 16:33 | |
mspo: with $*TEMP.mkdir('foo') { .do-things } or use one of the two temp path modules | |||
buggable: Temp::Path | |||
buggable: eco Temp::Path | 16:34 | ||
buggable | Zoffix, Temp::Path 'Make a temporary path, file, or directory': github.com/zoffixznet/perl6-Temp-Path | ||
Zoffix | jaldhar: as mentioned, it's IterationEnd: rakudo.party/post/Perl-6-Seqs-Drug...ll--Part-2 | 16:35 | |
jaldhar: but the more common approach is to just use gather/take instead of making your own iterators: rakudo.party/post/Perl-6-Seqs-Drug...akeusto... | |||
s/'$*TEMP'/\$*TMPDIR/ | 16:37 | ||
.oO( but $*HOME and not $*HOMEDIR -_- ) |
|||
nadim: hash's ACCEPT's broken. It's still on my todo to fix it :/ | 16:38 | ||
zengargoyle thinks shell-wise $TMP was too much like $FOO while $HOME had meaning. | 16:39 | ||
16:40
Guest81670 joined
|
|||
araraloren | Zoffix, I just want generate a temp file path, I choose that PathTools | 16:40 | |
16:40
Aaronepower joined
|
|||
araraloren | good night! | 16:41 | |
Zoffix backlogs | |||
R0b0t1: FWIW, Rakudo releases are signed | 16:42 | ||
16:42
araraloren left
|
|||
Zoffix | And GitHub is the "third party" with keys. I don't know what extra effort stmuk is talking about. It's like 1 command to run | 16:42 | |
nadim | Zoffix: do you think this problem is related too? nopaste.linux-dev.org/?1160059 | ||
Zoffix | nadim: that sounds like this bug hitting the code inside Junction: rt.perl.org/Ticket/Display.html?id...et-history | 16:44 | |
16:47
Cabanossi left
16:48
itaipu left
|
|||
Zoffix | skids: FWIW, we don't autothread Junctions yet. | 16:49 | |
16:50
Cabanossi joined
|
|||
Zoffix | m: say .^name with 1..*-1 | 16:50 | |
camelia | WhateverCode | ||
Zoffix | jeromelanteri: "eror unhandled exception: Missing or wrong version of dependency" <-- that usually means you're running `perl6` instead of `./perl6 | 16:52 | |
jeromelanteri: debugger was fixed like a few days after 2017.06 release | |||
buggable: deb | 16:53 | ||
nadim | sounds like an error right, the only thing in the junction is a hash, I was surprised to get a callable problem | ||
Zoffix | huggable: deb | ||
huggable | Zoffix, CentOS, Debian, Fedora and Ubuntu Rakudo packages: github.com/nxadm/rakudo-pkg/releases | ||
16:53
mr-foobar left
|
|||
nadim | huggable: youhoo! | 16:53 | |
huggable | nadim, nothing found | ||
16:53
thundergnat joined
|
|||
Zoffix | nadim: well, junction calls teh method on all the things inside it; that's your callable | 16:54 | |
thundergnat | .tell jaldhar You may (or may not, who knows) be interested in looking at rosettacode.org/wiki/Evolutionary_a...thm#Perl_6 | 16:55 | |
yoleaux | thundergnat: I'll pass your message to jaldhar. | ||
16:55
thundergnat left,
emeric joined
|
|||
Zoffix | R0b0t1: and there *is* an HTTPS download page: rakudo.perl6.org/downloads/star/ | 16:55 | |
16:56
Guest81670 left,
Guest81670 joined,
mr-foobar joined
|
|||
nadim | the code is used to flatten a data dump a bit, it's in the next release, I wanted to be able to say ddt @whatnot, :flat(Array, %my_hash, 7) to flatten all arrays, only my hash, and anything lower than level 7 | 16:56 | |
it will have to wait :) | 16:57 | ||
Zoffix | nadim: wait for what Hash.ACCEPTS fix? | 16:58 | |
jaldhar | Zoffix: thanks to moritz I'm using gather/take now but still apparently getting it wrong :( | 16:59 | |
yoleaux | 16:55Z <thundergnat> jaldhar: You may (or may not, who knows) be interested in looking at rosettacode.org/wiki/Evolutionary_a...thm#Perl_6 | ||
Zoffix | jaldhar: ok, then you don't need IterationEnd | ||
17:00
itaipu joined
|
|||
Zoffix | nadim: oh the callable thing. | 17:01 | |
jaldhar | zoffix: so you're saying my class should not actually do Iterator at all? | ||
thundergnat: that's cheating! | |||
Zoffix | jaldhar: I've not seen your code, so I don't know :) | ||
17:02
Guest81670 left
|
|||
Zoffix | nadim: `if Nil !=== @flatten.first: $depth|$s` | 17:03 | |
nadim: if that still gives the Junction callable error, try `if Nil !=== @flatten.first: { $_ ~~ $depth or $_ ~~ $s }` | |||
17:03
AlexDani` joined,
Guest81670 joined
|
|||
Zoffix | PSA: large changes were merged to MaroVM today. So if you spot something breaking be sure to report it. Also, performance landscape changed: github.com/rakudo/rakudo/commit/9658dd98c9 | 17:04 | |
MaroVM... MoarVM :) | |||
jaldhar | zoffix: if you're interested the working code is at github.com/jaldhar/Algorithm-DawkinsWeasel. What I'm trying to do now is make it iterable so I can simplify loops. | ||
Zoffix mutters things about intermixed POD and code | 17:05 | ||
17:05
AlexDani` is now known as AlexDaniel
|
|||
[Coke] | Zoffix: any feedback on the .WHAT check I added? Cover what you wanted? | 17:06 | |
Zoffix | [Coke]: no feedback | ||
[Coke]: any word on TPF status? | 17:07 | ||
the ticket and IO grant | |||
17:08
Guest81670 left
|
|||
jaldhar | Zoffix: I'll probably change that because I've noticed it's not idiomatic but personally I prefer having the POD for each method next to it. If you have a folding editor it is not inconvenient. | 17:08 | |
17:09
cdg joined
|
|||
Zoffix | jaldhar: and if you happen to read the code somewhere without a syntax highligher, it's entirely unreadable, because the POD code examples are indistinguishable from actual code :) | 17:09 | |
jaldhar | Zoffix: yeah I get it. | 17:10 | |
Zoffix | jaldhar: and yeah, I don't think your class should do Iterator role. You generally don't directly work with Iterator objects. | 17:11 | |
The loop looks simple enough to me. | 17:12 | ||
zengargoyle murmurs again about shadow blocks for documentation. :P | |||
Zoffix | You could make .evolution method that takes a &formatter callable returns a Seq with each of the steps. Then loop'd be just .say for $weasel.evolution: { .count.fmt('%04d'), ' ', .current-phrase, ' [', .hi-score, ']' } | 17:14 | |
17:15
zakharyas left
|
|||
Zoffix & | 17:15 | ||
17:15
Zoffix left
|
|||
jaldhar | Zoffix: ok I will look into this. | 17:16 | |
Zoffix: and thanks for your articles on perl6.party ^w rakudo.party. They were what gave me the idea to look into Iterators. | 17:17 | ||
tony-o | MoarVM panic: Internal error: invalid thread ID 1586853824 in GC work pass | ||
this happens with new moar running the 'ab.pl' script in the perl6/perl6-http-server-async repo | 17:18 | ||
actually, you want i should move this to the moar channel? | 17:19 | ||
17:22
mr-foobar left,
mr-foobar joined
17:23
cdg_ joined
|
|||
zengargoyle | .ask thundergnat is evolution thing your code? i don't get the '$parent ne target;' bit, it does nothing in a sink context.... hrmmm. | 17:23 | |
yoleaux | zengargoyle: I'll pass your message to thundergnat. | ||
17:24
S007 left,
cdg left
17:25
Aaronepower left,
itaipu left,
S007 joined
17:27
nicq20 left,
setty1 joined
|
|||
[Coke] | Zoffix: no feedback on the grant. I have been having trouble getting information from Dan. Last I heard he missed the initial request for disbursement and was working on int. | 17:28 | |
*it | |||
zengargoyle | .tell thundergnat nevermind. i mistook loop () {} for loop {} because the code was formatted to nicely. | ||
yoleaux | zengargoyle: I'll pass your message to thundergnat. | ||
17:29
unicodable6 left,
bisectable6 left,
coverable6 left,
greppable6 left,
benchable6 left,
evalable6 left,
committable6 left
|
|||
AlexDaniel | [Coke]: by the way, can you check if my CLA was received? | 17:30 | |
17:35
committable6 joined,
ChanServ sets mode: +v committable6,
bisectable6 joined,
greppable6 joined,
evalable6 joined,
coverable6 joined,
ChanServ sets mode: +v bisectable6,
ChanServ sets mode: +v greppable6,
ChanServ sets mode: +v evalable6,
ChanServ sets mode: +v coverable6,
unicodable6 joined,
ChanServ sets mode: +v unicodable6,
benchable6 joined,
ChanServ sets mode: +v benchable6,
statisfiable6 joined,
ChanServ sets mode: +v statisfiable6
17:40
esh joined
17:42
Aaronepower joined
17:43
sftp left
17:48
Aaronepower left
17:54
Aaronepower joined
17:56
suman__ joined
|
|||
suman__ | This woud be a good exercise for perl 6 too.stackoverflow.com/questions/453578...ing-with-r | 17:57 | |
18:09
suman__ left
18:10
evanm joined,
mscha joined
|
|||
mscha | m: say now - 1; # works | 18:11 | |
camelia | Instant:1501179098.695875 | ||
mscha | m: say now-1; # doesn't work | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Undeclared routine: now used at line 1. Did you mean 'not', 'HOW'? |
||
timotimo | yeah, now is a term | ||
m: say &now # does not exist | |||
camelia | 5===SORRY!5=== Error while compiling <tmp> Undeclared routine: now used at line 1. Did you mean 'not', 'HOW'? |
||
mscha | m: say pi-1; # works, even though pi and now are supposedly both terms | ||
camelia | 2.14159265358979 | ||
timotimo | m: say &term:<now> # exists | ||
camelia | sub term:<now> () { #`(Sub|36776120) ... } | ||
timotimo | m: say &term<pi> | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Undeclared routine: term used at line 1 |
||
timotimo | no, pi is probably a constant | ||
oops | 18:12 | ||
m: say &term:<pi> | |||
camelia | 5===SORRY!5=== Error while compiling <tmp> Undeclared routine: term:<pi> used at line 1. Did you mean 'term:<time>', 'term:<now>'? |
||
mscha | Doc says it's a term. | ||
timotimo | sounds like a docbug, then | ||
mscha | Still, why can't you say term-1? | ||
timotimo | m: say now\-1 | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Confused at <tmp>:1 ------> 3say now\7⏏5-1 expecting any of: postfix |
||
timotimo | not sure | 18:13 | |
perlpilot | LTM | 18:15 | |
- can appear in identifiers | 18:16 | ||
(that's my guess as to the reason now-1 barfs anyway) | |||
Though, I thought - had to have alphabetics on either side, so maybe that's wrong. | |||
timotimo | hm, and we don't backtrack, so we don't go back over it? | 18:17 | |
m: my $foo = 10; say $foo-1 | |||
camelia | 9 | ||
timotimo | but then why does this work :P | ||
geekosaur | now-1 is not reporting the undefined symbol to be "now-1", but "now". for whatever reason it has decided "now" must be a sub instead of a term? | 18:18 | |
timotimo | oh | ||
geekosaur | or some similar semantic hosage | 18:19 | |
timotimo | m: sub term:<now-1> { now / 2 }; say now; say now-1 | ||
camelia | Instant:1501179590.453435 750589795.227994 |
||
timotimo | now-1 is actually a valid term | ||
geekosaur | but it is only parsed as one via LTM if you define it | ||
m: say now-1; | 18:20 | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Undeclared routine: now used at line 1. Did you mean 'not', 'HOW'? |
||
geekosaur | undeclared routine: now | ||
not now-1 | |||
timotimo | good catch | ||
yeah, when it doesn't find a term with now-1, it'll try to find a sub "now", which it doesn't find | |||
m: sub now { 1 }; say now-1 | |||
camelia | 0 | ||
timotimo | m: sub now { 1 }; say now | ||
camelia | 1 | ||
timotimo | mhh | 18:21 | |
18:21
pecastro_ left
|
|||
geekosaur | that seems like ltm failure to me tbh. if a term now-1 exists then it should match, if not then now should match as a term | 18:22 | |
perlpilot | m: say time-1 | 18:23 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Undeclared routine: time used at line 1 |
||
timotimo | - is dangerous like that | ||
perlpilot | time and now are the only two terms I see defined in src/core | 18:24 | |
timotimo | rand | 18:27 | |
18:27
pecastro joined
|
|||
[Coke] | AlexDaniel: How was it sent? | 18:29 | |
AlexDaniel | [Coke]: snailmail | 18:30 | |
[Coke] | I'll have to reach out to someone at TPF who occasionally checks the mailbox. | ||
please send me an email at will at coleda .com, thanks. | |||
AlexDaniel | ok! | 18:32 | |
18:32
itaipu joined
|
|||
perlpilot | [Coke]: would TPF accept an image of a signed CLA (I seem to remember it being one page, but it's been so long) ? i.e. could a copy be emailed that way? | 18:33 | |
(just curious) | |||
nadim | m: my $a; ($a, []).map { say "{$_.VAR.name}" } | 18:34 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Unexpected block in infix position (missing statement control word before the expression?) at <tmp>:1 ------> 3my $a; ($a, []).map7⏏5 { say "{$_.VAR.name}" } expecting any of: inf… |
||
nadim | m: my $a; ($a, []).map: { say "{$_.VAR.name}" } | 18:35 | |
camelia | $a Use of Nil in string context in block at <tmp> line 1 |
||
18:35
mscha left
|
|||
nadim | ^^ Interesting that one can call 'nam' on VAR [] but that the returned name is Nil, not undef, not empty string. Someone can explain the idea behind it? | 18:36 | |
perlpilot | nadim: I think it's somewhat accidental | 18:38 | |
18:40
S007 left
|
|||
nadim | then I'll live with the extra two lines of test before using the result :) | 18:40 | |
the problem with Nil being that one can use // to shortcut it, nor ||, it seems that !=== Nil is it! | 18:41 | ||
[Coke] | perlpilot: yes, scanned in versions are fine. | 18:42 | |
I believe it's the preferred method. | |||
perlpilot | oh good. I wasn't sure if there was some "lawyers want paper documents" kind of thing. | 18:46 | |
evanm | perlpilot: I'm having trouble installing File::Temp, mind taking a look? github.com/perlpilot/p6-File-Temp/issues/23 | 18:47 | |
18:48
mcmillhj left,
Aaronepower left
18:50
mcmillhj joined
|
|||
perlpilot | hmm | 18:51 | |
evanm: sorry, I've got no wisdom right now. | 18:54 | ||
evanm: though, I just built the latest rakudo on my linux box at work and tried to install File::Temp and it had the same behavior. | 18:56 | ||
Maybe someone could bisect that and nail down what changed to make it so. | |||
Either way, I'll try to take a look at it tonight. | 18:57 | ||
19:00
dogbert2 joined
19:01
dogbert2 left
|
|||
evanm | perlpilot: Ok, thanks for looking at it. Maybe kick off a Travis build to see if it's failing there? | 19:03 | |
19:04
pecastro left
|
|||
nadim | .tell Zoffix using .first instead for any() did not go well, two different error! nopaste.linux-dev.org/?1160072 | 19:09 | |
yoleaux | nadim: I'll pass your message to Zoffix. | ||
perlpilot | evanm: my guess is that it's failing everywhere and something changed in rakudo to make it fail. | 19:10 | |
evanm: maybe something to do with GC? | |||
anyway ... I should be doing $work right now :) | |||
19:10
Zoffix joined
|
|||
Zoffix | . | 19:10 | |
yoleaux | 19:09Z <nadim> Zoffix: using .first instead for any() did not go well, two different error! nopaste.linux-dev.org/?1160072 | ||
evanm | perlpilot: Fair enough, I'll watch the GitHub issue for updates | 19:11 | |
Zoffix | nadim: why do you still have the &call error? There's no junctions on the line of code you included | ||
nadim | Hehe! | 19:12 | |
Zoffix: eliminating the junction seemed like a good tes ;) | 19:13 | ||
test | |||
Zoffix | evanm: FWIW there's also Temp::Path | ||
m: %() ~~ 42 | 19:14 | ||
camelia | ( no output ) | ||
evanm | Zoffix: Thanks. Right now I'm just trying to install Uzu, which has File::Temp as a dependency | ||
Zoffix | nadim: not following where the hash warning is from | 19:15 | |
nadim | Zoffix: the funny thing is that we get two different errors depending on what is passed to .first | ||
Zoffix | m: Hash ~~ 42 | ||
camelia | ( no output ) | ||
nadim | Zoffix: the Hash:U is in $_ | ||
19:15
S007 joined
|
|||
Zoffix | m: say so Nil !=== [Hash].first: 42 | 19:16 | |
camelia | False | ||
Zoffix | nadim: that doesn't generate a warning | ||
nadim: { $_ ~~ $s } is pointlessly verbose. .first already smartmatches, so just $s can be used | |||
nadim | Zoffix: it may be but it is the example you wrote ;) | 19:17 | |
Zoffix: didn't want to change anything before it passes the test | |||
Zoffix | nadim: no, it wasn't: irclog.perlgeek.de/perl6/2017-07-27#i_14931180 | 19:18 | |
ugexe | new GC errors are probably a result of github.com/rakudo/rakudo/commit/96...9718e328c2 | ||
nadim | Zoffix: [19:03] <Zoffix> nadim: if that still gives the Junction callable error, try `if Nil !=== @flatten.first: { $_ ~~ $depth or $_ ~~ $s }` | 19:19 | |
Zoffix | That has an or in it! | ||
But in any case, the code in channel doesn't produce neither the errors no warnings. | 19:20 | ||
nadim | Zoffix: surprisingly $_ ~~ $s generates an error but $s does not! | ||
Zoffix | evanm: perlpilot that test looks bogus to me. It expects 300 iterations will definitely cause GC, but why? That's not a guarantee | 19:22 | |
Just call .DESTROY directly if you wanna test that GC cleans up the file ¯\_(ツ)_/¯ | 19:23 | ||
nadim: what's in $s? | |||
perlpilot | Zoffix: yeah, probably | ||
nadim | Zoffix: Nil !=== @flatten.first: $depth|$s also generates an error and so does Nil !=== @flatten.first: |$s | 19:24 | |
$_ is [1..3] | |||
Zoffix | nadim: what's in $s? | 19:25 | |
nadim | it varies, can be an element that is dumped, let me check what it is in the test | 19:26 | |
Ha!! Nil !=== @flatten.first: $s generates an error but Nil !=== @flatten.first: {$s} does not | |||
Zoffix | :/ | 19:27 | |
Zoffix gives up debugging by clairvoyance | |||
nadim | $_ is [1..3], when $s is [1..3] ok, when $s is {a => 1} it dies | 19:30 | |
Zoffix: I'll do more tests, it seems that @flatten.first: { $s } does not generate an error, Ill check the results. If it still breaks I'll put a test branch somewhere or golf it down | 19:32 | ||
Zoffix | dude, just dump the variables before the call -_- | 19:33 | |
Or publish your code | |||
19:33
Cabanossi left
19:35
Cabanossi joined
|
|||
nadim | I wrote above what the variables were containing. | 19:39 | |
19:39
sufrostico left
|
|||
Zoffix | perlpilot: sent you a somewhat radical PR for evanm's issue that gets rid of all the assumptions about when GC runs: github.com/perlpilot/p6-File-Temp/pull/24 | 19:39 | |
all test pass with it | 19:40 | ||
Zoffix & | |||
19:40
Zoffix left
19:41
sufrostico joined
19:44
domidumont left
19:49
cpage_ left
19:50
cpage_ joined,
mcmillhj left
|
|||
mspo | Zaffix: mktemp is an important and easy security feature that should be encouraged by standard inclusion | 19:50 | |
anyway | 19:51 | ||
$*TMPDIR/foo isn't good enough | |||
19:58
sufrostico left
20:00
lichtkind joined,
mcmillhj joined,
andreoss joined
20:01
evanm left,
sufrostico joined
20:04
nhywyll left
20:05
mcmillhj left
20:18
nhywyll joined,
cdg_ left
20:19
mcmillhj joined
20:20
someuser joined
20:21
Zoffix joined
|
|||
Zoffix | mspo: what sort of security? | 20:21 | |
mspo: my main point was against adding OS-specific method to | |||
a cross-platforn language to a type that currently only differes from parent through the spec attribute | 20:22 | ||
and can be emulated with IO::Path + that spec | |||
20:24
mcmillhj left
|
|||
Zoffix | I think this is perfect place for a module; we already have two, showing vastly different preferences for control and featureset among userbase | 20:27 | |
20:29
mcmillhj joined
|
|||
Zoffix | and modules' security will be improved once we fix the issue in rakudo (same problem would exist for core mktemp too) | 20:32 | |
20:34
mcmillhj left
20:38
mr-foobar left
20:44
cpage_ left
20:45
cdg joined,
mcmillhj joined
20:50
mcmillhj left
|
|||
mspo | Zoffix: guessable tmp dirs are a very common attack vector | 20:50 | |
Zoffix: mktemp must be a core thing | |||
20:51
Possum left
|
|||
mspo | p5 has it in File::Temp, in core since a long time | 20:51 | |
it's available in most unix systems as a regular command | 20:52 | ||
R0b0t1 | pmurias: Both | ||
pmurias: An unsigned release makes all code "random module code" whereas if it were signed it would be code that came more or less directly from a developer | 20:53 | ||
20:53
mcmillhj joined
|
|||
mspo | tmpfile(3) and mktemp(3) are both in posix I think | 20:53 | |
R0b0t1 | stmuk: Really it doesn't add that much effort you just have to bother to set it up | 20:54 | |
stmuk: I think the larger issue is the strange build system that was created, because that makes it a lot harder to verify things even if they are verifiable | |||
Zoffix | mspo: why must it be a core thing? | 20:55 | |
R0b0t1 | i.e. now you have to add a bunch of code into the star setup makefile to verify those release files whereas if it all came from a git repository then it is more or less verifiable if you check it out over https | ||
Zoffix | mspo: even your mention of Perl 5 has it as a module, not core feature | ||
mspo | Zoffix: that's incorrect | 20:56 | |
okay | |||
R0b0t1 | If that strange build system didn't exist then my complaint about the lack of signed releases would *almost* be a nonissue because something close would be available from the git repository | ||
mspo | Zoffix: it should be in rakudo, not necessarily in perl6 | ||
Zoffix | mspo: why? because they packed it into core distro? how is that different from us packing File::Temp in Rakudo Star? | 20:57 | |
mspo | Home > Core modules (F) > File::Temp perldoc.perl.org/File/Temp.html | ||
Zoffix | why == why incorrwct | ||
yeah "modules" is a hint | |||
mspo | Zoffix: because it's an important security feature and small enough to be an easy include | ||
yeah "Core" is the other important word there | |||
20:57
raschipi left
|
|||
mspo | I'm not sure what I'm arguing here | 20:58 | |
I have no idea what distinction exists between "core" and "included in rakudo" | |||
Zoffix | mspo: yeah all features everyone wants to add are "small enough" and absolutely important | ||
mspo | just as with perl5 "Core modules" are exactly the same as "built in" or whatever | 20:59 | |
Zoffix | I don't know what you're arguing either. The module's included in the userfacing distro of Rakudo, just as it's included in userfacing distro of Perl 5 | ||
20:59
Zoffix left
|
|||
mspo | which module? | 20:59 | |
should I find it here somewhere? docs.perl6.org/ | 21:00 | ||
timotimo | no, modules.perl6.org | 21:02 | |
21:03
mcmillhj left
|
|||
mspo | is there some tag like "Core" or "Included" or something? | 21:03 | |
21:03
skids left,
pecastro joined
|
|||
timotimo | the only lib included in NativeCall | 21:04 | |
and Test | 21:05 | ||
mspo | 16:59 < Zoffix> I don't know what you're arguing either. The module's included in the userfacing distro of Rakudo | ||
so is that not true? | |||
21:07
pecastro left
21:10
Aaronepower joined
21:12
Aaronepower left
21:13
cdg left,
Aaronepower joined
|
|||
geekosaur | mspo, I am wondering if you are confusing the developer distribution (containing rakudo and pretty much nothing else) with rakudo star which is the user distribution and as such includes a basic ecosystem | 21:13 | |
ideally the rakudo distribution itself is just rakudo | |||
21:14
mingdao left,
pecastro joined
|
|||
timotimo | yeah, it's about rakudo star | 21:14 | |
21:14
Possum joined
|
|||
mspo | what modules are included in star? | 21:14 | |
21:15
rindolf left,
mingdao joined
|
|||
timotimo | github.com/rakudo/star/tree/master/modules | 21:15 | |
oh some strange character made it in there | 21:16 | ||
geekosaur | this seems to come up a lot in the haskell community too, people think raw ghc should contain the whole ecosystem (this is especially problematic with ghc because its dependency management is much nastier than most languages, so the more that is bundled with the raw compiler, the less you can upgrade without upgrading the compiler) | ||
21:16
cpage_ joined
|
|||
geekosaur | rakudo's not *quite* that bad but the current precomp stuff does have some similar issues; replacing stuff independently is difficult to impossible without recompiling more than you expected | 21:18 | |
21:19
vike joined
21:20
tzekid joined
|
|||
mspo | so what does rakudobrew install | 21:20 | |
I mean how can anyone confuse "rakudo" with "rakudo star"? | 21:21 | ||
geekosaur | a very raw rakudo from git | ||
and you should probably not use it unless you are actively involved with developing rakudo itself | |||
timotimo | you install rakudo star by grabbing a tarball/zipfile/msi or getting a package for your repo | ||
geekosaur | (and even then only with caveats; it has some odd behaviors) | ||
21:22
pharv joined
|
|||
mspo | it was the recommended way to do it when I was last here :) | 21:22 | |
21:23
TEttinger joined
|
|||
timotimo | i hope that's been long ago, we've been trying to get rakudobrew out of the hands of non-core-devs | 21:23 | |
mspo | <shrug> time is relative | ||
okay! | |||
so rakudo *star* includes File::Temp | |||
although that's only noted in the github directory listing :) | 21:24 | ||
it's like pedantic party time | |||
timotimo | yeah we should make it really hard to get rakudo itself | 21:26 | |
like, you can't get cl, you have to grab visual studio express | |||
you can't get adobe flash player, you have to get the ask toolbar | 21:27 | ||
stmuk | I wish perl6/doc didn't have the website building code in it but just docs | ||
timotimo | it also has the commandline tool, doesn't it? | ||
stmuk | yes p6doc | ||
that could either stay in or move elsewhere | 21:28 | ||
21:28
cpage_ left
|
|||
stmuk | maybe docs should be just doc/doc to encourage other ways of viewing it | 21:29 | |
other p6doc and other website building code | 21:30 | ||
mspo | I no longer have p6doc for some reason | ||
21:30
cpage_ joined
|
|||
stmuk | mspo: probably just a PATH issue | 21:30 | |
timotimo | yu might have to "rakudobrew rehash" | ||
mspo | Updating shims | 21:31 | |
:) | |||
anyway it's not in rakudobrew | |||
timotimo | since rakudobrew is there to let yu immediately switch bwteen lots of different rakudo versions, it has to manage all bin scripts for you | ||
but there's no mechanism to tell it to look for new scripts whenever something got installed | 21:32 | ||
mspo | yeah I'll probably just get rid of it | ||
maybe give getting p6 into pkgsrc another try | |||
stmuk | mspo: a very old one is in pkgsrc-wip .. I did have some patches for a recent version but never did anything with them | 21:33 | |
mspo | rakudo.org/how-to-get-rakudo/ still features rakudobrew pretty heavily | ||
stmuk | mspo: I'm quite a pkgsrc fan and it wasn't too hard | 21:34 | |
mspo | stmuk: yeah I started on it ages ago but had trouble with the star build process | ||
stmuk: wip/rakuod is 2017.06 | 21:35 | ||
lang/nqp is way out of date (requires parrot) and is included as part of the build for wip/rakudo | 21:36 | ||
stmuk: I think if we update nqp we can just keep the packages in lockstep. Not sure how to get the star stuff in there, though | 21:37 | ||
21:38
bobv joined
|
|||
mspo | my plan was to make lang/perl6 a meta-package or something (ages ago) | 21:38 | |
stmuk | the star stuff doesn't fit well with most packaging systems .. nqp/moarvm/rakudo and maybe zef would be an easier start | ||
21:38
dct joined,
thundergnat joined
|
|||
stmuk | with rakudo-star as a meta package | 21:38 | |
merced | so what's a good resource for someone who's never experienced perl | ||
thundergnat | . | 21:39 | |
yoleaux | 17:23Z <zengargoyle> thundergnat: is evolution thing your code? i don't get the '$parent ne target;' bit, it does nothing in a sink context.... hrmmm. | ||
17:28Z <zengargoyle> thundergnat: nevermind. i mistook loop () {} for loop {} because the code was formatted to nicely. | |||
mspo | stmuk: so this creates the issue we saw earlier where there's no "core" | ||
merced: to learn for youself or to pick up something? | |||
stmuk | mspo: not sure what you mean by "core" | ||
mspo | stmuk: the modules included in star that make perl6 useful | ||
merced | mspo: well, I'm definitely attracted to the text processing aspect.. really want to abandon python entirely too | 21:40 | |
mspo | stmuk: star is the "distribution" that is recommended | ||
21:40
pecastro left
|
|||
stmuk | mspo: yes I'm the current main maintainer | 21:40 | |
mspo | merced: perl6 is a pretty new language but has built in grammars and other cool stuff | ||
21:41
bobv left
|
|||
merced | yeah I really like the features I'm seeing, almost entirely convinced to finally learn perl now | 21:42 | |
mspo | merced: perl6.org/resources/ | ||
"For Newcomers" | |||
stmuk | mspo: I think each of the star modules should be packaged on their own as part of a meta package | ||
mspo | stmuk: you're the maintainer of star or of something in pkgsrc? | ||
stmuk | of star .. but I use pkgsrc as well | 21:43 | |
merced | is perl6 used in production anywhere yet? | ||
mspo | stmuk: that's a lot of packages to keep up to date individually. I'm just afraid of drift | ||
thundergnat | .tell zengargoyle The evolution one isn't one I wrote. I think that one was mostly grondilu and TimToady. Not too many people say my code is formatted too nicely so that was a big clue :-) | ||
yoleaux | thundergnat: I'll pass your message to zengargoyle. | ||
mspo | merced: I think it's starting to get some adoption but nothing like perl5 or python | 21:44 | |
stmuk | mspo: I can probably experiment a bit tomorrow .. I've been meaning to look at pkgsrc for a while | ||
mspo | stmuk: do you have commit to wip? | ||
stmuk: I'll try to update nqp this weekend and just abandon the 2013 version that's in there :) | 21:45 | ||
stmuk | mspo: no | ||
mspo | stmuk: do you want it? | ||
stmuk | mspo: that would be useful .. and I can test anything you do | ||
merced | should I learn perl5 or perl6 first? | ||
mspo | stmuk: anyway send an email to [email@hidden.address] and maybe cc [email@hidden.address] and [email@hidden.address] | ||
merced: it depends :) | 21:46 | ||
stmuk | ok thanks ... probably likely tomorrow morning European time | ||
mspo | merced: there's no way to really answer | ||
merced | aw, was hoping you could make the decision for me :P | ||
mspo | stmuk: one big "star" package that had all of the libs from github.com/rakudo/star/tree/master/modules would be easier | ||
merced: perl6 might be fun to learn first for messing with grammars and stuff | 21:47 | ||
merced: but it's hard to say "don't learn perl5" since it's so useful day-to-day | |||
merced: especially with mojolicious | |||
merced | how about package support? | 21:48 | |
mspo | perl5 will have many many many more packages | 21:49 | |
metacpan.org/ | |||
21:49
thundergnat left
|
|||
mspo | anyway g2g | 21:49 | |
merced | thanks for answering :) | 21:50 | |
stmuk | mspo: this is very odd .. github.com/NetBSD/pkgsrc/tree/trun...akudo-star exists as well as the WIP one | ||
21:50
hythm left
|
|||
stmuk | rakudo-star-2013.08 | 21:51 | |
! | |||
timotimo | you can use perl5 packages from perl6 and the other way around. just need Inline::Perl5 or Inline::Perl6 for that :) | 21:56 | |
21:57
hythm joined
22:03
Cabanossi left
22:04
emeric left
22:05
Cabanossi joined
22:07
pharv left
|
|||
merced | timotimo: really? that's definitely convenient | 22:13 | |
timotimo | same thing with Inline::Python | 22:14 | |
22:16
cpage_ left
|
|||
timotimo | but only in one direction | 22:19 | |
22:19
espadrine left
|
|||
timotimo | er, i mean | 22:19 | |
you can of course subclass python classes and subclass perl6 classes in python again | 22:20 | ||
but there's no "import inline.perl6" for python | |||
22:25
konsolebox left
22:27
tzekid left
|
|||
merced | wait what | 22:30 | |
22:31
yan__ left
|
|||
ttkp6 | merced - metacpan.org/pod/distribution/Inli...Python.pod | 22:33 | |
is that the "wait what" you meant? | |||
timotimo | that's the perl5 Inline::Python | ||
ttkp6 | oops | ||
22:33
Cabanossi left
|
|||
ttkp6 | sorry | 22:33 | |
timotimo | no worries. same author, probably lots of similarities in the usage | 22:34 | |
22:34
konsolebox joined
|
|||
ttkp6 | this appears to be for perl6 - github.com/niner/Inline-Python | 22:34 | |
timotimo | yup | 22:35 | |
the t/ folder has lots of code that shows what it can do, though it's not meant as documentation | |||
22:35
Cabanossi joined
22:36
Dunearhp left,
Dunearhp joined
22:40
andrzejku_ joined
22:41
jaldhar_ joined,
dalek left
|
|||
timotimo | Inline::Ruby also exists, but the readme points out rather strongly that it's not so far advanced | 22:41 | |
22:41
andrzejku left,
bartolin_ joined,
hoelzro_ joined,
jnthn_ joined,
pmichaud_ joined,
lucs_ joined,
arnsholt_ joined,
jdv79_ joined,
tinita_ joined,
arnsholt left,
pmichaud left,
hoelzro left,
ilbot3 left,
llfourn_ joined,
Ulti_ joined,
llfourn left
22:42
hcit_ joined,
zoosha_ joined,
sivoais_ joined,
ilmari_ joined,
itaipu_ joined,
dalek joined,
ChanServ sets mode: +v dalek,
pmurias_ joined,
broquain1 joined,
zengargo1le joined,
mst_ joined,
gfldex is now known as Guest12003,
Guest12003 left,
gfldex_ joined,
zengargoyle left,
sivoais left,
broquaint left,
pmurias left,
mst left,
ilmari left
22:43
ilmari_ is now known as ilmari,
jnthn left,
bartolin left,
lucs left,
imcsk8 left,
itaipu left,
perlpilot left,
ilbot3 joined,
ChanServ sets mode: +v ilbot3
22:44
imcsk8 joined,
eater left,
Geth left,
diegok left
22:46
pecastro joined
22:47
diegok joined,
eater joined,
garu joined
|
|||
mspo | stmuk: probably kill/replace that one with just the p6 packages | 22:47 | |
22:48
jaldhar left,
pochi joined,
perlawhirl joined,
ambs joined
22:53
itaipu_ left
|
|||
R0b0t1 | Every time I run Configure.pl it regenerates the already compiled moar executable which I need to mark with paxctl-ng, and removes the markings I added. Is there any way to avoid this or do I need to figure out what is happening and change the build scripts? | 22:55 | |
timotimo | R0b0t1: it should only ever create a moar if you run configure.pl with the convenience feature --gen-moar | 22:57 | |
R0b0t1 | I see | ||
timotimo | i seem to recall i wrote something about that in README or INSTALLING but i think it disappeared somehow | ||
R0b0t1 | timotimo: The step that generates moar does not complete, however despite using a Makefile it seems to recompile everything regardless of what completed the last time | ||
timotimo | oh, hm. | ||
well, that step most probably also runs configure.pl | 22:58 | ||
which creates the makefile anew, which causes all previous progress to be lost | |||
22:58
bwisti left
|
|||
timotimo | ah, the readme says | 22:58 | |
Please be aware, that this will install MoarVM and NQP into your given --prefix before Configure.pl exits. | |||
Alternatively, feel free to git clone github.com/perl6/nqp and github.com/MoarVM/MoarVM manually and install them individually. | |||
that's perhaps not warning as loudly as it should | |||
22:59
bwisti joined
|
|||
R0b0t1 | Granted I didn't read the README completely but I found elsewhere that it was strongly(?) recommended not to do what you just suggested | 22:59 | |
I suppose I will have to do it | |||
timotimo | it'd be cool if you found that again and gave me a link | ||
the problem is that nqp and rakudo grab configuration from moar and nqp post-installation by calling these programs | 23:00 | ||
that's why we do a full install of moar before we even configure nqp | |||
and do a full install of nqp before rakudo will finish Configure.pl | 23:01 | ||
quite clearly not optimal if you want to have rakudo-star as a single package | 23:02 | ||
nothing about the build system is optimal, honestly | |||
R0b0t1 | The order makes sense but what the build process does does not | ||
timotimo | but build system work is among the worst | ||
what exactly? | 23:03 | ||
R0b0t1 | It doesn't seem to pay attention to what it's done already | ||
23:03
lizmat left
|
|||
timotimo | oh, i even put a note into Configure.pl --help | 23:03 | |
but nobody reads that | |||
in a package manager situation you'd never call Configure.pl twice | 23:04 | ||
R0b0t1 | That assumes Configure.pl never fails | ||
timotimo | if cofigure.pl fails, the whole process ought to be aborted, no? | ||
R0b0t1 | That depends, typically if something aborts most of the work isn't wasted | 23:05 | |
The issue isn't that it aborts it's that it can't resume what it was doing | |||
timotimo | not wasted at all, just cd into the folder and "make install" | ||
really, all --gen-moar does is do a git clone, cd in there, Configure.pl, make, make install, cd back | |||
unless a moar with sufficiently new version already exists | |||
R0b0t1 | I'm trying that then, it's possible I got my pax markings wrong | 23:06 | |
timotimo | pax markings, is that refering to that security subsystem? | ||
R0b0t1 | Yes | ||
timotimo | ah, i have zero experience with that | 23:07 | |
R0b0t1 | libmoar.so wants executable stack space | ||
timotimo | ah indeed | ||
i forgot why exactly. could be because of dyncall/libffi | |||
R0b0t1 | Typically one avoids doing the things that are disallowed by PaX, because there are other equally valid ways to accomplish those goals that do not open a system up to entire classes of exploits | ||
timotimo | yeah, it'd be cool if we could get rid of that requirement | 23:08 | |
it also bites people who try to install rakudo on the windows ubuntu thing | |||
R0b0t1 | That's one I didn't think of | 23:09 | |
23:09
dct left
|
|||
R0b0t1 | I'm actually kind of interested as to the OS of most developers, as I'm not sure of any mainstream distributions that don't ship with some form of PaX | 23:09 | |
Also I can't find the thing I read that mentioned not cloning from Git explicitly | 23:10 | ||
timotimo | yeah dyncall asks for executable stack | ||
R0b0t1 | I thought it was on the mailing list but I was only able to turn up www.nntp.perl.org/group/perl.perl6....g8914.html | 23:11 | |
timotimo | well, we do tell end-users to get rakudo star tarballs | ||
23:11
nhywyll left
|
|||
R0b0t1 | I think I found it in relation to that | 23:11 | |
I am trying to be an end-user but I tend to insist that I am able to verify some kind of signature for the things I download | |||
timotimo | that post is just about forgetting to git submodule init or update or what the magic incantation is | ||
R0b0t1 | Right all it really showed me about was the --force flag | 23:13 | |
I had additional issues building from the star repository involving some missing download files | |||
timotimo | that's a major footgun | ||
you're not supposed to use Configure.pl from the rakudo star repository to build a rakudo star | |||
major red herring | |||
R0b0t1 | I made a post on the mailing list (that I need to follow up on) about how the build system is very strange | ||
Okay | |||
So | |||
Why does that repository exist? | |||
timotimo | you make rakudo star releases using that repo | ||
R0b0t1 | Moreover if I am trying to verify all of the code I run then I am only left with that repository | 23:14 | |
everything else is offered without signatures | |||
timotimo | the readme that it has at its root ought to be something entirely different | ||
23:14
lizmat joined
|
|||
R0b0t1 | However the code in that repository downloads *other* code with wget --no-check-certificate so I mean that's still useless | 23:14 | |
timotimo | yeah, that's pretty bad | 23:15 | |
i wonder why that's even there a tall | |||
R0b0t1 | I was wondering myself | ||
timotimo | i suspect that flag can just be tossed | ||
R0b0t1 | Well I was having issues with a perl.org domain's certificates but that went away | ||
Since it is such a large site I wonder why nobody looked into it | |||
timotimo | we don't host anything on perl.org any more i don't think | ||
R0b0t1 | Sorry, the site hosting the tars | 23:16 | |
Additionally as far as I know what is being done (downloading tarballs and unpacking them) should just as well be done with git submodules, as limited as people like to think they are, or the new subtree feature | |||
That would have the benefit of providing built in security | |||
timotimo | this makefile also wasn't updated when moarvm.org got a proper https certificate | ||
the current release is an odd one out anyway as it has the non-release nqp in it | 23:17 | ||
anyway, i just pushed a commit that removes the --no-check and uses an https address for moarvm also | 23:18 | ||
i'm also considering making the wording about "running configure.pl in a git repository" about five steps fiercer | 23:19 | ||
23:19
wamba left
|
|||
R0b0t1 | Okay before you do that there really needs to be a way to sign releases and make sure signed code is used in all steps of the build process | 23:20 | |
23:20
coverable6 left,
ufobat left
|
|||
R0b0t1 | Otherwise nothing has really been fixed, although a lot of code has been written to poorly implement a sort of ad-hoc package manager | 23:20 | |
23:20
andreoss left
|
|||
timotimo | which parts are you refering to as "ad-hoc package manager"? the git submodules for modules distributed with star, or the --gen-moar mechanism? | 23:21 | |
R0b0t1 | The mechanism used in the star repository to generate the distribution, firstly, but that same pattern seems to be reused for the --gen* mechanisms | 23:22 | |
merced | i need.. a project idea | ||
timotimo | no, --gen-* makes a git clone, whereas the star repository's mechanism is wgetting release tarballs | 23:23 | |
--gen-moar inside the star tarball will rely upon the nqp and moarvm that are already part of the release tarball itself | 23:25 | ||
aha, we do have a README.star that points you at the right spots ... but it doesn't show up as the default on github and i have no idea how to make that work | 23:26 | ||
R0b0t1 | Okay, but the tarball isn't signed | ||
timotimo | and i'm not sure if tar lets us specify a different name for individual files | 23:27 | |
right, that's on whoever actually cuts and uploads the release | |||
R0b0t1 | So even if the release tar is signed it was generated using a method that doesn't check to make sure the right code is used? | 23:28 | |
timotimo | now that we use https for every download, how would the wrong code be snuck in? | 23:29 | |
23:29
pmurias_ left
|
|||
R0b0t1 | timotimo: I'm in the MoarVM directory and make reports nothing to be done, and I have installed it and marked moar properly, however Configure.pl reports moar as uninstalled | 23:30 | |
timotimo: HTTPS may be used, but certificates are ignored. The file could be modified on the release server. | |||
timotimo | did you mark libmoar.so, too? | ||
that's where 95% of moar lives | |||
R0b0t1 | If the certificates are ignored a MITM will be able to replace the code | 23:31 | |
Yeah I marked libmoar.so as well | |||
timotimo | the certificates are not ignored any more | ||
R0b0t1 | Any more as in | 23:33 | |
right this mine? | |||
minute* | |||
timotimo | i pushed a commit a few minutes ago to remove the --no-check-certificates flag | ||
R0b0t1 | I cloned the star repository yesterday and saw it running wget --no-check-certificate- | ||
I see | |||
timotimo | Fetched in submodule path 'modules/perl6-lwp-simple', but it did not contain 5e06386e1c7e394cd3643d3f8da4b26a4858ab5a. Direct fetching of that commit failed. | 23:34 | |
wow, fantastic | |||
okay i have the wrong remote | 23:37 | ||
R0b0t1 | I think I'm going to have to set up a virtual machine to get this to work | 23:38 | |
Moreover I want to in any case because I can't verify the code | |||
timotimo | jesus christ how can git submodule be so stubborn? | 23:40 | |
merced | lol | ||
timotimo | OK it has a gitdir somewhere else that wasn't being cleaned at all | ||
finally it worked | |||
"git submodule deinit" does nothing at all :) | 23:41 | ||
R0b0t1 | I'm going to ask on the mailing list about the problems that were being had with submodules because apparently they were being used heavily, because I do not see what issues could possibly exist | ||
A lot of the criticism I read seems to stem from people not treating the submodule directory like a filesystem object like their source code | 23:42 | ||
(I don't know what else it would be) | |||
timotimo | R0b0t1: it had a different remote from what was in .gitmodules | 23:43 | |
clearly changing things in .gitmodule requires the users of the repo to jump through some extra hoops every time? | |||
zoll | i would like to know the those hoop steps please. | 23:44 | |
timotimo | rm -rf .git/modules/modules/perl6-lwp-simple | ||
then git submodule update again | |||
R0b0t1 | Seems like the same kind of fix one might use for merge conflicts if they don't want to do it through git | 23:45 | |
zoll | ah, i see. (i should remember summodule cleansing reference) | ||
thanks timotimo | 23:46 | ||
timotimo | so how do you do that through git? | ||
zoll in previous life resigned "submodule being dirty" after bashing against the GIanT wall to try to use git to do cleanup | 23:47 | ||
timotimo | for a moment i thought "oh, git submodule update has a --remote flag, that must be it!" | ||
nope, that's something else entirely | 23:48 | ||
oh, "git submodule sync" is for that | |||
zoll: forget what i told you, there *is* an official way to do this | 23:49 | ||
zoll ... around c. 2015 | |||
aye. go on please. | |||
timotimo | makes one wonder why "git submodule update" doesn't do this, and why "deinit" + "init" also doesn't do this | ||
it's "git submodule sync" | |||
zoll | do'h! | 23:50 | |
timotimo: sorry. my current projects are in hg; did not occur to me use git look up "sync" | 23:51 | ||
zoll is dropping words like there no tomorrow | 23:52 | ||
i meant "did not occur to me to use git to look up "sync"" | |||
timotimo | i found hg to be a thousand times worse than git, it was fighting me every single step of the way when i was contributing (tiny useless shreds) to pypy | 23:54 |