»ö« 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^: «59048␤5.0481256» ¦b7201a8: «59048␤9.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^: «59048␤5.0645579» ¦b7201a8: «59048␤9.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^: «59048␤5.0902087» ¦b7201a8: «59048␤9.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^: «40951␤4.905903» ¦b7201a8: «40951␤9.032774»
AlexDaniel c: b7201a8f22338a906f2d^,b7201a8f22338a906f2d (^99999).grep(/1/).elems.say; say now - BEGIN now
committable6 AlexDaniel, ¦b7201a8f22338a906f2d^: «40951␤1.12385689» ¦b7201a8: «40951␤1.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^: «99999␤0.1037948» ¦b7201a8: «99999␤0.09883378»
AlexDaniel c: b7201a8f22338a906f2d^,b7201a8f22338a906f2d (^99999).grep({(^1).pick}).elems.say; say now - BEGIN now 02:14
committable6 AlexDaniel, ¦b7201a8f22338a906f2d^: «0␤0.729757» ¦b7201a8: «0␤0.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^: «40951␤5.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 -e␤Missing required term after infix␤at -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 -e␤Preceding context expects a term, but found infix , instead␤at -e:6␤------> put sourcery( &~~,<HERE> Set, Set )[1];␤
nicq20 s: &~~, <HERE> Set, Set
SourceBaby nicq20, Something's wrong: ␤ERR: ===SORRY!=== Error while compiling -e␤Preceding context expects a term, but found infix , instead␤at -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