»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend! Set by moritz on 22 December 2015. |
|||
00:02
khw_ left
00:04
sammers left
00:10
lukaramu_ left
00:11
BenGoldberg joined
00:32
Cabanossi left
00:33
Cabanossi joined,
girafe left
00:38
skids joined
00:43
thundergnat left
00:53
gdonald left,
gdonald joined
01:01
mcsnolte left,
Cabanossi left
01:03
Cabanossi joined
01:19
drbaffico joined
|
|||
drbaffico | can anyone please tell me where to find a proper help file for referencing syntax for perl6? | 01:20 | |
preferrablyon the internet | |||
something that is easy to print and format on double page duplexed print? | 01:21 | ||
all i can find is the garbage file layout on docs.perl6.org, it is inappropriate for printing and reference | 01:22 | ||
i need a file like the .chm file for python | |||
thank you for any who respond. :-) ---> dr. mw baffico | |||
01:23
raiph joined
|
|||
drbaffico | ralph, are you aware of more appropriate perl6 documentation for advanced syntax sutiable for printing on the web? | 01:24 | |
skids wonders if anyone has updated the "perl6 periodic table" poster? | 01:32 | ||
www.ozonehouse.com/mark/periodic/ is probably too old to promulgate. | 01:33 | ||
AlexDaniel | skids: just redo it from scratch? If done in .svg, every operator can link to docs | 01:34 | |
skids | Well, I meant for drbaffico's immediate need. | 01:36 | |
AlexDaniel | “addenoid” :DD | ||
raiph | docs.perl6.org/perl6.xhtml shows an error | 01:37 | |
drbaffico: ignoring the error, is the big page I just linked ^^ of any use to you? | 01:39 | ||
drbaffico | ii'll check it out right now, thanks | ||
01:39
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
drbaffico | ahh,thanks guys, found just what i was looking for. i appreciate it very much!!! | 01:41 | |
lucs | drbaffico: Is it that page that raiph showed, or something else? | ||
mst | [Coke]: basically, it isn't relocatable currently, and I worked around that | 01:42 | |
[Coke]: I owe the perl6 community a proper release of that stuff though, should try and do that soon | |||
drbaffico | it was the page that ralph showed, with a link i did not see before, my error, my apologies, it is just what i was looking for. thanks again, guys | ||
lucs | Cool | 01:43 | |
drbaffico | the 'perodic' table is interesting,ifa bit quaint, but interesting, i'll look at that as well in further detail,, thanks for that | ||
ok, thank you guys, i'm going to log off for a while and have some dinner. will be back later to chat, and look forward to contributing to the community. thanks for the -> help! ;-) and i hope you all have a nice evening/day/etc... | 01:50 | ||
01:50
drbaffico left
02:15
Cabanossi left
|
|||
raiph | Do others get "rendering of the page up to the first error" when viewing the single doc page (link above)? | 02:17 | |
02:18
Cabanossi joined
|
|||
AlexDaniel | raiph: for me it does not render at all | 02:21 | |
MasterDuke | XML Parsing Error: not well-formed Location: docs.perl6.org/perl6.xhtml Line Number 10323, Column 43: | 02:22 | |
i think it's pointing out the error as here `<p>Perl 6 makes considerable use of the &171; and &187; characters.</p>`, at the 1 of the 171 | 02:24 | ||
raiph | I'm using Chrome (Version 47.0.2526.73); I've got "error on line 10323 at column 43: xmlParseEntityRef: no name" | 02:25 | |
02:28
mr-foobar joined
|
|||
MasterDuke | FF 52.0 | 02:28 | |
dwarring | shouldn't that be: Perl 6 makes considerable use of the « and » characters | 02:30 | |
? | |||
Perl 6 makes considerable use of the « and » characters. | 02:31 | ||
source github.com/perl6/doc/blob/master/d....pod6#L398 | 02:40 | ||
raiph | dwarring: github.com/perl6/doc/blob/master/d....pod6#L385 etc. as well? | 02:42 | |
02:44
ilbot3 left
|
|||
Geth | doc/dwarring-patch-1: 431d94df46 | (David Warring)++ | doc/Language/pod.pod6 Fix rendering problem See irclog.perlgeek.de/perl6/2017-03-21#i_14298152 |
02:46 | |
doc: dwarring++ created pull request #1255: Fix rendering problem |
|||
dwarring | should probably go | ||
I've created PR github.com/perl6/doc/pull/1255 | |||
for what I think it should be (not a doco expert) | |||
02:47
ilbot3 joined,
ChanServ sets mode: +v ilbot3
|
|||
pytuger | why is eval('say("hey");'); in perl5 just made all caps EVAL("say('hey');"); | 02:51 | |
in perl6 | |||
A subjective question since not technically related, just seems confusing. I've learned of some things that were in all caps such as " my $var = 10; $var.WHAT.say; " but haven't noticed a pattern, was wondering if there was one. | 02:53 | ||
02:54
bwisti joined
|
|||
MasterDuke | i think it was meant to stand out a bit more, to make it obvious something dangerous/hacky/etc is going on | 02:55 | |
a bunch of the other all cap functions, e.g., WHAT, HOW, WHICH are mostly meant for internal use, and probably shouldn't be seen in user code | 02:57 | ||
03:04
perlawhirl left,
teichner joined
03:06
teichner left,
cpage_ joined
03:10
AlexDaniel left
03:14
mcmillhj left
03:15
mcmillhj joined
03:20
mcmillhj left
03:22
xtreak joined,
aborazmeh left
|
|||
BenGoldberg | m: say test p5=> 42; | 03:23 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Undeclared routine: test used at line 1 |
||
03:23
travis-ci joined
|
|||
travis-ci | Doc build passed. David Warring 'Fix rendering problem | 03:23 | |
travis-ci.org/perl6/doc/builds/213254619 github.com/perl6/doc/commit/431d94df46be | |||
03:23
travis-ci left
03:24
mcmillhj joined
|
|||
BenGoldberg | It's a comic operator because it doesn't exist :P | 03:24 | |
03:30
BenGoldberg left
03:31
noganex joined,
mcmillhj left
03:32
Cabanossi left
03:33
Cabanossi joined
|
|||
skids | \o/ Finally, I have working (but still very ugly) code to fix diamond role composition. | 03:34 | |
03:34
noganex_ left
03:42
mcmillhj joined
03:47
mcmillhj left,
mcmillhj joined
03:52
mcmillhj left
04:01
Cabanossi left
04:03
Cabanossi joined
04:04
mcmillhj joined
04:08
mcmillhj left
04:13
raiph left
04:14
raiph joined
04:21
mcmillhj joined
04:25
mcmillhj left
04:26
mcmillhj joined
04:27
bwisti left
04:31
mcmillhj left
04:36
xtreak left
04:37
xtreak joined
04:42
mcmillhj joined
04:45
Cabanossi left
04:47
Cabanossi joined
04:52
cpage_ left
04:53
wamba joined
04:59
cpage_ joined
05:15
Cabanossi left
05:17
Cabanossi joined
05:28
Sgeo left
05:29
mcmillhj left
05:48
skids left,
curan joined
05:50
drrho joined
05:52
xtreak left,
xtreak joined,
cibs left
05:55
cibs joined
05:57
wamba left
06:00
kurahaupo__ joined
06:01
Sgeo joined
06:17
cpage_ left
06:24
mcmillhj joined
06:28
rindolf joined
06:31
mcmillhj left
|
|||
kaare_ | lizmat: How come the p6 weekly isn't in the blog section of perl6.org/ anymore? | 06:37 | |
06:47
mcmillhj joined
06:52
RabidGravy joined,
mcmillhj left
06:58
setty1 joined,
domidumont joined
07:03
mcmillhj joined
07:04
dct left,
domidumont left
07:06
domidumont joined
07:08
mcmillhj left
07:12
wamba joined
07:14
xtreak left,
rindolf left
07:16
xtreak joined
07:31
mcmillhj joined,
Cabanossi left
07:32
abraxxa1 joined,
Cabanossi joined
07:36
mcmillhj left
07:40
sukrishn joined
07:44
kurahaupo__ left
07:45
darutoko joined
|
|||
moritz | probably some RSS feed messup | 07:45 | |
they are also missing from pl6anet.org/ :( | 07:46 | ||
07:46
rindolf joined
07:47
wdna joined
|
|||
wdna | good morning | 07:48 | |
moritz | good morning wdna | 07:51 | |
07:52
mcmillhj joined
07:57
cpage_ joined,
abraxxa left
07:58
mcmillhj left
08:02
bjz joined
08:06
dct joined
|
|||
nine | lizmat-- # stealing half an hour of my time with the weekly | 08:07 | |
lizmat++ lizmat++ lizmat++ lizmat++ lizmat++ lizmat++ lizmat++ lizmat++ lizmat++ lizmat++ lizmat++ lizmat++ lizmat++ lizmat++ lizmat++ lizmat++ lizmat++ lizmat++ lizmat++ lizmat++ lizmat++ lizmat++ lizmat++ lizmat++ lizmat++ lizmat++ lizmat++ lizmat++ lizmat++ lizmat++ # giving me 30 minutes of fun with the weekly | |||
jast | oh noes, karma spam | 08:08 | |
08:09
mcmillhj joined
08:13
mcmillhj left
08:14
xtreak left
08:25
dct left
08:28
grumble joined
|
|||
lizmat clickbaits p6weekly.wordpress.com/2017/03/20/...e-a-hyper/ , to make things worse :-) | 08:29 | ||
08:31
zacts left
|
|||
lizmat | .tell stmuk_ is there a reason why the P6W is no longer syndicated to pl6anet.org ? | 08:35 | |
yoleaux | lizmat: I'll pass your message to stmuk_. | ||
08:35
mcmillhj joined
08:36
sukrishn left
08:37
dakkar joined
08:40
mcmillhj left
08:41
setty1 left
08:43
wamba left
08:44
zakharyas joined
08:45
zacts joined,
Cabanossi left
08:47
Cabanossi joined
08:49
mcmillhj joined
08:53
mcmillhj left
09:03
Sgeo left
09:05
mcmillhj joined
09:10
mcmillhj left,
sukrishn joined
09:14
sukrishn left
09:16
sukrishn joined
09:24
zakharyas left,
mcmillhj joined
09:27
xtreak joined
09:29
mcmillhj left
09:31
xiaomiao joined
09:38
wamba joined
09:39
mcmillhj joined
09:43
mcmillhj left
|
|||
dakkar | TIL: the invocant can be rw gist.github.com/dakkar/fa26e2b816f...89e891fcd0 | 09:48 | |
09:48
wamba left
|
|||
IOninja | Yup. That's how Str.subst-mutate does it | 10:00 | |
10:03
mcmillhj joined
|
|||
IOninja | pytuger: eval is Perl 5 is frequent. In Perl 6 is rare. We have `try` replacing most of Perl 5's eval usage and. Leaving just the dangerous stuff for EVAL, and so it's in caps, to stand out. | 10:03 | |
.ask gfldex why does Podtobig page generate perl6.xhtml? We use HTML, not XML. The bogus extension is causing parse errors: irclog.perlgeek.de/perl6/2017-03-21#i_14298152 | 10:06 | ||
yoleaux | IOninja: I'll pass your message to gfldex. | ||
10:09
mcmillhj left
10:12
sukrishn left
10:17
astj left
10:18
astj joined,
astj left,
astj joined
|
|||
IOninja | .tell gfldex here's what it looks like in Firefox: i.imgur.com/0v67PIa.png The idiocy of using XHTML instead of HTML was common because people were too stupid to know how to kick IE6 out of quirksmode with a proper HTML doctype and it was never a right thing to use. | 10:23 | |
yoleaux | IOninja: I'll pass your message to gfldex. | ||
Geth | doc: 5bd81fb834 | (Zoffix Znet)++ | doc/Language/pod.pod6 Work-around bug that incorrectly interprets E<> entities - Closes #1255 - Fixes rendering issue in perl6.xhtml (though it's still needs to be changed away from xhtml) |
10:24 | |
IOninja | s/Work-around//; | ||
No point in using an E<> there. | |||
10:26
xtreak left
|
|||
hobbs | or, people used xhtml because it was nice actually being able to process HTML without having to have an utterly insane massive parser, at least if you knew its provenance :) | 10:28 | |
IOninja | Nope, daily someone would come to #css with XHTML doctype and when asked why it was 'cause IE6 | 10:30 | |
10:31
xtreak joined,
mxco86 left
|
|||
hobbs | So clearly I don't exist. Thanks. | 10:31 | |
10:33
mxco86 joined
|
|||
masak | I think I've heard the "being able to process" argument before. it's an interesting one. | 10:34 | |
but to me the "browser just choked" argument is fairly overriding -- YMMV | |||
10:34
xtreak left
|
|||
IOninja | .ask gfldex does Pod::To::Big page do any processing? Pod::To::HTML outputs E<171> as « but on perl6.xhtml it ended up as &171; (not the missing #). | 10:36 | |
yoleaux | IOninja: I'll pass your message to gfldex. | ||
10:40
xtreak joined
|
|||
timotimo | nine: which part of the weekly was the one that gave you so much fun? | 10:42 | |
moritz | fwiw the IRC logs use content negotiation, and emit strict xml/xhtml when the browser wants it | 10:44 | |
it has helped me find a few places where the (x)html escaping wasn't working | 10:45 | ||
IOninja | And HTML validator wouldn't helped? | 10:46 | |
masak | does anyone know of a good *offline* HTML validator? all HTML validators I've found are some online service somewhere... | 10:47 | |
moritz | masak: iirc you can download the one that w3.org uses | 10:48 | |
masak | aye, I did find that one | ||
it's written in Perl 5 | |||
10:51
xtreak left
10:57
tojo joined
10:59
Sgeo joined
11:07
sukrishn joined
|
|||
nine | masak: though if you need to validate HTML 5, you'll also need the one from validator.nu (written in Java). The w3c-validator will act as frontend then. | 11:12 | |
11:13
cpage__ joined,
cpage_ left,
cpage__ is now known as cpage_
11:16
Cabanossi left
11:17
Cabanossi joined
11:42
labster left
|
|||
masak | nine: ah, and it's on Github: github.com/validator/validator | 11:44 | |
11:50
zakharyas joined
12:06
abraxxa1 left,
abraxxa joined,
abraxxa left
12:08
integral_ is now known as integral
12:17
bjz_ joined
12:19
bjz left
|
|||
Geth | modules.perl6.org: 025f677ec7 | (Zoffix Znet)++ | lib/ModulesPerl6/DbBuilder/Dist/Source.pm Log a warning when `tags` META key isn't an array |
12:21 | |
12:25
TEttinger left
|
|||
Geth | modules.perl6.org: 9ecae4736c | (Zoffix Znet)++ | lib/ModulesPerl6/DbBuilder/Dist/Source.pm Fix typo |
12:27 | |
12:29
raschipi joined
|
|||
Geth | modules.perl6.org: 4469e6a1e4 | (Zoffix Znet)++ | 2 files [REBUILD] uniq tags of a dist Since the mangler may normalize multiple listed tags to the same tag. Fixes the last 7 UNIQUE constraint db errors. |
12:30 | |
12:30
hord joined
|
|||
Geth | modules.perl6.org: bc576c5364 | (Zoffix Znet)++ | lib/ModulesPerl6/Controller/Root.pm Fix undef uc warning in controller |
12:32 | |
12:36
spebern joined
12:42
spebern left
|
|||
IOninja | "Since Perl 6 is a bit new, this LWP::Simple does both get and post requests." wat | 12:43 | |
That's LWP::Simple's readme | |||
timotimo | wants an "only"? | ||
IOninja | $ zef install LWP:Simple | 12:44 | |
Enabled fetching backends [git path wget curl] don't understand LWP:Simple | |||
You may need to configure one of the following backends, or install its underlying software - [pswebrequest] | 12:45 | ||
hm wtf... I do have wget git and curl :/ | |||
lizmat | LWP::Simple ? | ||
IOninja | Yeah | ||
lizmat | not LWP:Simple | ||
: vs :: ? | |||
IOninja | lizmat++ | ||
And I kept hitting "up" key and reusing the same typo even after upgrading zef :) | 12:46 | ||
timotimo | it could point out that LWP was being interpreted as a protocol name rather than part of the module name | ||
lizmat | yeah,. been there, done that :-) | ||
timotimo | like "can't grab module Simple with protocol LWP. only can handle http, https, git, ssh, ..."? | ||
12:49
cyphase_eviltwin left,
mcmillhj joined,
cyphase joined
|
|||
IOninja | .tell gfldex Never mind. Found and fixed the issue in github.com/perl6/perl6-pod-to-bigp...ca5ffcfee9 (P.S.: I didn't mean you were an idiot for using XHTML in my previous msg; but I'd still recommend using HTML5 doctype in Pod2BigPage) | 12:56 | |
yoleaux | IOninja: I'll pass your message to gfldex. | ||
13:02
ggoebel joined
|
|||
[Coke] yawns. | 13:06 | ||
hord | is there an easy way to see if a module is loaded? like checking %INC in p5? | ||
IOninja | hord: you can use if ::('Module::Name') ~~ Failure { say "not loaded" } 90% of the time | 13:07 | |
hord: the place where it won't work is if someone did `require Module::Name` earlier. ^ that won't be a failure, even if the module failed to load | |||
13:08
abraxxa joined
|
|||
hord | yeah, i'm doing require | 13:08 | |
IOninja | hord: and I guess the proper-proper way would be to use the CompUnit API | ||
hord: oh, you're just optionally loading something? | |||
hord: here's info on how to optionally load stuff: rakudo.org/2017/03/18/lexical-requi...rade-info/ | 13:09 | ||
hord | yes. i need to optionally load a module and then check to see if it's loaded later when creating a closure. | ||
13:09
Actualeyes left
|
|||
IOninja | try require ::('Foo'); … if ::('Foo') !~~ Failure { say "module is loaded" } | 13:09 | |
note that that's lexically scoped. | 13:10 | ||
13:10
eroux joined,
kurahaupo__ joined
13:11
robertle joined
13:13
Sound joined,
Sound_ joined,
Sound is now known as Guest37422
|
|||
IOninja | timotimo: jnthn the very last example in this doc looks like kinda iffy. Is it sane to use state/runtime require with subsets? docs.perl6.org/language/typesystem#subset | 13:13 | |
timotimo | if it is, it's only in a non-multithreaded program | 13:14 | |
the state there is just to cache it so it won't have to do the lookup later i guess? | 13:15 | ||
hord | wow, i forgot i actually have booleans now | ||
IOninja | :) | ||
hord | this is working: my $mob = %wurm<mob> // ::('Wvrm::mob') !~~ Failure; | 13:16 | |
IOninja | uuhh | ||
13:16
Sound_ left
|
|||
IOninja | Well, it looks really weird :) Are you sure it's working? | 13:16 | |
$mob is just an indicator that the stuff got loaded? | 13:17 | ||
hord | not really | ||
it's an indicator from the caller that a particular semantics are to be used | |||
13:17
Sound_ joined
|
|||
hord | it assumes the module was loaded earlier and would actually be used to turn off default behavior | 13:17 | |
IOninja | Ah | ||
hord | but now my closure isn't working so onward! | 13:18 | |
ugexe | CUR has a .loaded method that lists what it has loaded | ||
13:19
Sound_ is now known as Sound__
|
|||
ugexe | but youll have to iterate a list two or so levels deep | 13:19 | |
$*REPOs.repo-chain.map(*.loaded) or some such | |||
13:19
eroux left
|
|||
Geth | doc: 86b4228999 | (Zoffix Znet)++ | doc/Language/modules.pod6 Update `require` section - require is now lexical, so toss the routine-loaded module examples - Make it clear require is lexical, including the symbol that's been required - Include examples of correct checking for whether a module got loaded |
13:30 | |
13:31
mcmillhj left
13:32
Actualeyes joined
13:33
mcmillhj joined
13:34
itaipu joined
|
|||
IOninja | .ask jnthn would you check the very last example on this page? docs.perl6.org/language/typesystem#subset I vaguelly recall you saying subsets can be evaluated at compile time, so if relying on runtime stuff all bets are off: docs.perl6.org/language/typesystem#subset | 13:35 | |
yoleaux | IOninja: I'll pass your message to jnthn. | ||
SmokeMachine | IOninja: do you think "Fix #131009\ntriangle reduce with listinfix wasn't working" is a good enough commit msg? | ||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=131009 | ||
IOninja | SmokeMachine: it's terrible | 13:36 | |
13:36
tojo left
|
|||
SmokeMachine | :( | 13:36 | |
Im not good at that... | |||
IOninja | SmokeMachine: here: perl6.fail/release/stats click on "Commits" tab. Imagine you're filling out the ChangeLog. You need to tell the users of Rakudo what changed. Then go through the list and write down the changes. You'll learn quick which commits suck :) | 13:38 | |
*commit messages | |||
ugexe | timotimo: zef doesn't know what protocols its fetching backends support - it just asks any backends you list in your config "do you understand this string?". Otherwise it was hard to support syntax like `zef -v install github:ugexe:zef:0.1.5` (the urn-like format, briefly mentioned in s22) and handle C:/ | ||
timotimo | ah | ||
ugexe | re why it can't guess the error at protocol level | ||
timotimo | makes sense | ||
each fetching backend needs to get levenshtein implemented for it :P | 13:39 | ||
13:39
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
IOninja | SmokeMachine: first, don't put the ticket in the title. Some stuff only shows the title (e.g. github.com/rakudo/rakudo/commits/nom ), so just the ticket number doesn't say what changed. As for the message itself, well, most of the stuff is fixing something that wasn't working. What does "wasn't working" mean? | 13:40 | |
SmokeMachine: I also like to write down what was broken and how I fixed it, so that 3 years from now people don't look at the commit wondering if some line change or changed behaviour was intentional or not. | 13:41 | ||
13:42
eroux joined
13:43
kurahaupo__ left
13:44
Cabanossi left
|
|||
SmokeMachine | IOninja: "Fix triangle reduction with listinfix ops\nThe triangle reduction was appending the data inside of a array and applying the op on that. It was changed to push the data and apply the op on that array with each item deconted" better? | 13:45 | |
IOninja | SmokeMachine: yeah, that's great. And mention the ticket number at the end | ||
SmokeMachine | IOninja: ok! thanks! | ||
13:46
mcsnolte joined
13:47
Cabanossi joined
|
|||
SmokeMachine | IOninja: github.com/FCO/rakudo/commit/16f95...ef0ca5dfc9 | 13:48 | |
IOninja | Great. | 13:49 | |
IOninja & | |||
hord | How would I construct a class so that it acts like a class and a hash? | ||
e.g. $foo<bar> ~ $foo.bar() | 13:50 | ||
timotimo | implement the Associative role i guess? | ||
raschipi | hord: It needs to implement the assossiative role | 13:51 | |
ugexe | timotimo: searching meta data is centralized in another backend. but for levenshtein on the uri... doesnt perl6 have a built in exposed still? StrDistance or something... | ||
timotimo | that's something different | 13:52 | |
that's what we use to provide the integer return value to tr/// | |||
13:54
skids joined
|
|||
hord | unit class Wvrm::mob does Associative; # do i need something more here? i keep getting "Associative indexing implementation missing from type Wvrm::mob" | 13:55 | |
ilmari | hord: you need to implement the methods required by Associative | 13:56 | |
hord | where is this documented? i come with nothing on google. | ||
IOninja | hord: docs.perl6.org/language/subscripts | 13:57 | |
timotimo: StrDistance was levenshtein distance last I looked :/ | |||
timotimo | oh? | ||
ilmari | hord: specifically docs.perl6.org/language/subscripts...bscripting | ||
IOninja | timotimo: oh, looking at source now, maybe I just *assumed* it was | ||
timotimo | you're right | 13:58 | |
which one was the tr-related one :\ | |||
huh, it is both | 13:59 | ||
[Coke] | m: unit class Wvrm::mob does Associative; # works here | ||
camelia | ( no output ) | ||
IOninja | timotimo: it does use StrDistance, looks like: github.com/rakudo/rakudo/blob/nom/....nqp#L7866 | ||
hord | would it be easier to add methods to a Hash? | 14:00 | |
timotimo | it's very easy to apply a role to a hash object if you mean that | ||
hord | this looks like a nightmare to delegate to attributes | ||
timotimo | do you know about "handles"? | ||
hord | i want a hash object that acts like objects just like in perl 5 | ||
so i can use it as a hash or call methods on it | 14:01 | ||
timotimo | but you can already call methods on a hash | ||
hord | so do i need to sub-class Hash to make another object? | ||
IOninja | hord: you can give it a go. | ||
timotimo | do you want a method ".foo()" to grab the "foo" key out of the hash? | ||
hord | i have an API that can use either objects or hashes (perl 5) | ||
i'm converting it to perl 6 so i need to retain that behavior | |||
IOninja | Heh | 14:02 | |
timotimo | i'm not sure what "can use" means in this context | ||
do you need an object that does both, or can you just differentiate on whether it's a hash or an object? | |||
hord | in perl 5 i just get a variable (scalar) | ||
IOninja | It's a differnt beast in perl 5, since objects use hash (or other type) as underlying structure :) | ||
hord | i don't want to have to differentiate | ||
in one context i want to ALWAYS assume it is a hash | 14:03 | ||
IOninja | hord: don't you have to implement like 3 methods for it to work just fine with Associative role? | ||
hord | yes, but i have to delegate to the attributes which doesn't seem nice | ||
IOninja | hord: well, sounds like subclassing Hash or mixing in a role into it makes the most sense. | ||
hord | at least as how i understand it | ||
14:03
aborazmeh left
|
|||
IOninja isn't sure what delegation there is to do | 14:04 | ||
timotimo | docs.perl6.org/language/typesystem...it-handles | ||
did we implement "handles Role" yet? | |||
IOninja | m: dd Hash ~~ Iterable | 14:05 | |
camelia | Bool::True | ||
IOninja | m: say class :: does Associative {} ~~ Iterable | ||
camelia | False | ||
IOninja | You'd need more than just Associative to emulate a hash, so subclassing/mixinging roles makes sense | ||
hord: IIRC we didn't yet sort out the whole subclassing business for userspace, so you may need to implement your own `new` if you're adding attributes | 14:07 | ||
hord | i think i'm thinking inside out | ||
what i'm doing is weird because it's a direct port of perl 5 | |||
IOninja | m: class BetterHash is Hash { has $.food = 'Tuna'; method meows { "Ketteh {"♥" x self.keys} $!food" } }; my $h = BetterHash.new: "a" => "b"; dd $h<a>; dd $h; dd $h.food | 14:08 | |
camelia | Str <element> = "b" BetterHash $h = ${:a("b")} Any |
||
IOninja | Yeah, didn't init it | 14:09 | |
14:09
itaipu left,
bjz_ left
|
|||
IOninja | m: class BetterHash is Hash { has $.food = 'Tuna'; method new { self.Mu::new: |%_ }; method meows { "Ketteh {"♥" x self.keys} $!food" } }; my $h = BetterHash.new: "a" => "b"; dd $h<a>; dd $h; dd $h.food | 14:09 | |
camelia | Too many positionals passed; expected 1 argument but got 2 in method new at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
hord | well now i get a different error. progress? | ||
IOninja | eh, right | 14:10 | |
skids yawns and tries to get some motivation up for $DAYJOB | 14:11 | ||
14:11
cdg joined
|
|||
skids | gist.github.com/skids/18fa6fb1de77...6e82e9fcc2 # needs a lot of review. | 14:11 | |
IOninja | m: class BetterHash is Hash { has $.food; submethod TWEAK (:$!food = 'Tuna'){}; method meows { "Ketteh {"♥" x self.keys} $!food" } }; my $h = BetterHash.new: "a" => "b"; dd $h<a>; dd $h; dd $h.food | 14:12 | |
camelia | Str <element> = "b" BetterHash $h = ${:a("b")} Any |
||
IOninja | crap right | ||
14:12
bjz joined
14:14
Cabanossi left
14:16
itaipu joined
14:17
Cabanossi joined
|
|||
IOninja | m: class { method x (|) { |%_ } }.x | 14:17 | |
camelia | Type check failed in binding to 'x'; expected Any but got Mu (Mu) in method x at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
IOninja | lol? | ||
14:18
Khisanth left
|
|||
IOninja | m: class BetterHash is Hash { has $.food; method new (|c) { self.bless(|%_).STORE(|c); }; submethod TWEAK (:$!food = 'Tuna'){}; method meows { "Ketteh {"♥" x self.keys} $!food" } }; my $h = BetterHash.new: "a" => "b"; dd $h<a>; dd $h; dd $h.food | 14:18 | |
camelia | Cannot call method 'FLATTENABLE_LIST' on a null object in method new at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
IOninja | same cause, I believe | ||
m: class { method x (*%_, |c) { |%_ } }.x | |||
camelia | ( no output ) | ||
IOninja | m: class BetterHash is Hash { has $.food; method new (*%_, |c) { self.bless(|%_).STORE(|%_, |c); }; submethod TWEAK (:$!food = 'Tuna'){}; method meows { "Ketteh {"♥" x self.keys} $!food" } }; my $h = BetterHash.new: "a" => "b"; dd $h<a>; dd $h; dd $h.food | 14:19 | |
camelia | Str <element> = "b" BetterHash $h = ${:a("b")} "Tuna" |
||
IOninja | Yey \o/ | ||
m: class BetterHash is Hash { has $.food; method new (*%_, |c) { self.bless(|%_).STORE(|%_, |c); }; submethod TWEAK (:$!food = 'Tuna'){}; method meows { "Ketteh {"♥" x self.keys} $!food" } }; my $h = BetterHash.new: "a" => "b", food => 'Whitefish'; dd $h<a>; dd $h; dd $h.food | 14:20 | ||
camelia | Str <element> = "b" BetterHash $h = ${:a("b")} "Whitefish" |
||
IOninja | hord: well, something like that perhaps will work. You don't need the `method new` stuff unless you need to set public attributes | ||
14:20
sukrishn left
|
|||
hord | let me try it. i think i may need the new() stuff. i can make objects but they are empty right now. | 14:22 | |
raschipi | There's no lists of lists anymore | 14:25 | |
IOninja | What are you talking about? | ||
skids: man, I hate "face" even more than "interface". Reminds me of Sleeping Dogs game. | 14:28 | ||
skids | Yeah, well, bikeshedding welcome... it's more or less a s/// to change it. | ||
14:28
cdg left
|
|||
IOninja | m: role A { method x {say "B"} }; role B { method x {say "B"} }; class :: does A does B { }.x.say | 14:29 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Method 'x' must be resolved by class <anon|57747248> because it exists in multiple roles (B, A) at <tmp>:1 |
||
IOninja | skids: what's the ticket to Ovid's stuff? I only recall the one about multi candidates | ||
14:29
cdg joined
|
|||
skids | Yeah I think he was laboring under some confusion about that part. Hold on. | 14:29 | |
14:31
Khisanth joined
|
|||
skids | justrakudoit.wordpress.com/2015/03...heritance/ is colomon's part and links back to IRC. | 14:32 | |
github.com/perl6/specs/issues/80 Ovid's issue. | 14:33 | ||
14:34
Sound__ is now known as Sound
|
|||
IOninja | "To my mind they are completely different things, and if someone re-orders role “inheritance” without considering the consequences, they deserve what they get." | 14:34 | |
IOninja nods in agreement to that statemnt | |||
skids | Well, in this solution, they only "deserve what they get" if they do it despite seeing an "is face". | 14:35 | |
The root of the problem is the method overrides, not really the ordering. | |||
IOninja | Well, I know nothing about this stuff, so ignore my comments :) | 14:37 | |
skids | Heh. I'm grateful for any attention even from you :-) | ||
14:39
obfusk_ left,
obfusk joined
14:42
itaipu left
|
|||
jnthn | fwiw, I think we'd speculated a "claim" scope declarator rather than a trait in the past | 14:43 | |
yoleaux | 13:35Z <IOninja> jnthn: would you check the very last example on this page? docs.perl6.org/language/typesystem#subset I vaguelly recall you saying subsets can be evaluated at compile time, so if relying on runtime stuff all bets are off: docs.perl6.org/language/typesystem#subset | ||
jnthn | I think I even had a branch where I played with that a bit, but if it still exists it'll be ancient by now | ||
14:44
sena_kun joined
|
|||
jnthn | Yes, it's still here, as claim-prototype | 14:44 | |
IOninja | `claim method foo` does sound much nicer than `method foo is face` | 14:46 | |
jnthn | I think TimToady++ came up with the name :) | ||
skids | That was to be applied in a different place and with a different sense. And it was pointed out that it only "kicked the can down the road" | 14:47 | |
This attribute is applied where someone might try to modify code and expect that modifcatio to promulgate, and is there when it won't necessarily promulgate, as a warning. | |||
jnthn | IOninja: I don't think we can just blindly go checking any subset at compile time; I suspect only those that we can infer as being pure would be candidates | 14:48 | |
skids | (regardless of the name) | ||
IOninja | jnthn: thanks. | ||
jnthn | However, that use of state is dodgy there | ||
If you try to use the subset type from multiple threads you could get surpious failures | |||
14:49
itaipu joined
|
|||
jnthn | So it's risky and clouds the example with a premature optimization | 14:49 | |
So I'd get rid of that | |||
just where ::('...') | |||
hord | $self.STORE(env => $meal<env>); # too few positionals? expected 2 but got 1? | ||
14:49
bjz left
|
|||
hord | that doesn't even make any sense to me | 14:49 | |
Geth | doc: 59f692564b | (Zoffix Znet)++ | doc/Language/typesystem.pod6 Toss risky `state` irclog.perlgeek.de/perl6/2017-03-21#i_14300672 |
||
jnthn | hord: The invocant ($self) is the first parameter | 14:50 | |
IOninja | hord: that probably expects a Pair? Try $self.STORE("env" => $meal<env>) | ||
hord | jnthn: then it should have received 3 | ||
IOninja | hord: only in Perl 5. | 14:51 | |
hord: you're sending it a named argument `env`. So it complains it's missing a positional | |||
hord | so what does => do now? | ||
IOninja | Whereas if you quote the key, as "env" => $meal<env>, you're sending it 1 positional argument: a Pair | ||
hord | since it apparently doesn't auto-quote | ||
14:52
sukrishn joined
|
|||
IOninja | hord: it does, if you use it with Hashes or Maps. But in arguments list, an unquoted ones are passed as named arguments | 14:52 | |
hord: docs.perl6.org/language/traps#Named_Parameters | 14:53 | ||
hord | there's way too much to learn to do simple ports | ||
IOninja | buggable: eco Inline::Perl5 | 14:54 | |
buggable | IOninja, Inline::Perl5 'Use Perl 5 code in a Perl 6 program': github.com/niner/Inline-Perl5 | ||
IOninja | hord: ^ there's always that | ||
hord: my personal opinion is making a naive "port" will produce garbage. Because languages are so different. | |||
hord | a naive port of easy software also exposes a lot of weaknesses | 14:55 | |
IOninja | You're basically porting a Hash with a few hacks to make it work like a class to a proper OOP system | ||
hord: not really, you're just trying to use a different language under the paradigms of Perl 5. Hardly something I'd call a weakness. | 14:56 | ||
14:56
sukrishn left
|
|||
IOninja | m: say so "0" | 14:56 | |
camelia | True | ||
IOninja | ^ that statement is all I need to show just how different the languages are. | ||
Thinking you can just tweak a few sigils and get working code is a bit delusional. | 14:57 | ||
hord | IOninja: that's not what i think | ||
IOninja | (and there are "converters" that try to do just that and they suck) | ||
hord: OK :) | |||
hord | but perl 6 has become quite the stranger to perl 5 that it once was | ||
IOninja | hord: most definitely. It's closer to Ruby than to Perl 5 | ||
hord | so i guess for this sub-class i have both attributes and keys... but i want them to be the same | 15:00 | |
that's what i don't get | |||
skids | jnthn: anyway, inverting the sense would not be hard and then "claim" would instead mean "I don't want this method overridden by my users" rather than "This is my eggo now." I don't know if "claim role A" works as well as the method variety, though. | 15:01 | |
15:02
itaipu left
|
|||
IOninja | hord: right, and in Perl 5 that class is just a blessed hash innit? And you can't have attributes that AREN'T keys (without some sort of clever hack), etc. In Perl 6 you can. | 15:02 | |
skids | That would require less people to mod code, but more building awareness/expectations for role users that want purity, telling them they have to use "claim" to get purity warnings. | 15:03 | |
hord | IOninja: perl 5 doesn't have "attributes" so you can do whatever you want | ||
IOninja | hord: so maybe it'd make sense for you to not have attributes, but to just use the keys as if they were attributes? | ||
hord | personally i'm tired of "attributes" | ||
IOninja | So don't use 'em :) | ||
hord | i just want data slots with some code around them | ||
DrForr | You can bless things that aren't hash references, at least in perl 5. | ||
hord | yeah, i think i just want methods | 15:04 | |
IOninja | DrForr: I know that, but I'm talking specifically about hord's class | ||
DrForr | Ah. | ||
hord | wiring this stuff up just doesn't have the same feel to it | ||
15:05
zakharyas left
|
|||
IOninja | m: class BetterHash is Hash { method FALLBACK ($name, |) { self.{$name} }; method meows { "Ketteh {"♥" x self.keys} {self.food}" } }; my $h = BetterHash.new: "a" => "b", "food" => 'Whitefish'; dd $h<a>; dd $h; dd $h.food | 15:05 | |
camelia | Str <element> = "b" BetterHash $h = ${:a("b"), :food("Whitefish")} "Whitefish" |
||
El_Che | Looking at atom at work for perl 6: I see 3 perl6 packages. language-perl6 (by samcv iirc), language-perl6fe (by madcapjake) and atom-perl6-editor-tools (by azawawi). Do we know if one of those is obsolete of incompatible with the rest? | ||
(with docs for new users in mind) | 15:06 | ||
IOninja | El_Che: language-perl6fe is | ||
language-perl6 is its replacement | |||
huggable: atom ide | |||
huggable | IOninja, github.com/perl6/Atom-as-a-Perl6-IDE | ||
El_Che | that's what I though | ||
jnthn | skids: Yeah, I need to read what you wrote more carefully and think about it some more, but I'm tied up with $other-job stuff today | ||
El_Che | is the fe version abandoned? and if so, can we remove it from atom | ||
most people will install it because it has more installs (chicken-egg) | 15:07 | ||
hord | what is ($name, |) ? the , | confuses. | ||
skids | jnthn: thanks, same here, really should be focusing on 'teh jawb' | ||
IOninja | El_Che: it is in my opinion. language-perl6 is a hostile fork of it, because author was unresponsive... language-perl6 | ||
lizmat | it captures whatever extra parameters you sent | ||
IOninja | hord: a Capture | 15:08 | |
huggable: Capture | |||
huggable | IOninja, Argument list suitable for passing to a Signature: docs.perl6.org/type/Capture | ||
IOninja | hord: in this case, it's anonymous and makes the method ignore all the extra args. | ||
lizmat | what IOninja said :-) | ||
El_Che | and looking at the doc, is atom.io/packages/atom-perl6-editor-tools the only prviding sytnax check | 15:10 | |
I'll enable language-perl and editor tools to see if they work together | |||
15:10
gdonald left
|
|||
IOninja | El_Che: more detailed expl: github.com/github/linguist/pull/33...-267050328 | 15:10 | |
15:11
gdonald joined
|
|||
El_Che | IOninja: thx | 15:11 | |
hord | is FALLBACK special? it doesn't seem to be getting called. | ||
wait... i'm dumb | 15:12 | ||
IOninja | hord: it's like Perl 5's AUTOLOAD (or whatever it was): docs.perl6.org/language/typesystem...8method%29 | ||
hord | it helps if you remove the attributes with the same names. DUH. | ||
IOninja | heh | ||
hord | ok... this thing actually works now | ||
but i'm still confused about bless() | 15:13 | ||
15:13
wamba joined
|
|||
hord | method new(Hash $meal={}) { my $self = self.bless(); ... } | 15:13 | |
El_Che | IOninja: you're a man of keeping details. Good summary of the events | ||
IOninja | hord: method new(Hash $meal={}) { my $self = self.bless(|$meal); ... } | ||
hord | how can i just pass $meal to bless() and have $self copy all the attributes or just bless the hash | ||
|$meal explodes the hash container? | 15:14 | ||
IOninja | hord: I thought you didn't want any attributes? | ||
hord: it slips the keys/values into bless; keys are names of attributes and values are their values | |||
15:14
itaipu joined,
cdg_ joined
|
|||
hord | not attributes... keys | 15:14 | |
see... i don't think about attributes.. they are just data buckets to me | |||
probably too much javascript | 15:15 | ||
IOninja | hord: well, then you don't really need method new() at all, eh? The default Hash's one does just fine doesn't it? | ||
hord | honestly, that's what i want... javascript with perl 5 syntax | ||
IOninja | heh | ||
hord | IOninja: i'm actually adding a couple of things so having new is required. | ||
IOninja | hord: adding things like what? | 15:16 | |
hord | a few more keys to the hash | ||
IOninja | You don't need new for that | ||
1 sec | |||
m: class BH is Hash {}; dd BH.new: "a" => "b", :42c; | |||
camelia | {:a("b")} | ||
IOninja | Well, maybe you do, if you don't want ^ that to happen. | ||
SmokeMachine | whats the op ^^? | 15:17 | |
15:17
cdg left
|
|||
hord | here's what i'm doing... this is a plack framework. i want requests to either be objects or hashes based on performance constraints. | 15:17 | |
IOninja | m: class BH is Hash { method new (*@_, *%_) { nextwith |@_, |%_.pairs } }; dd BH.new: "a" => "b", :42c; | 15:18 | |
camelia | {:a("b"), :c(42)} | ||
hord | so if you decide you want objects, more classes are loaded and each request is wrapped in an object with even more objects embedded inside. | ||
so that's why i want this hash/obj thing | |||
IOninja | m: class BH is Hash { method new (*@_, *%_) { nextwith |@_, |%_.pairs }; submethod TWEAK { self.<MEOWS!> = "♥" } }; dd BH.new: "a" => "b", :42c; | ||
camelia | {:a("b"), :c(42)} | ||
IOninja | really? | ||
Oh right the Hash.new messes with build bleh | |||
15:18
curan left
15:19
cdg_ left
|
|||
IOninja | m: class BH is Hash { method new (*@_, *%_) { my \self = callwith |@_, |%_.pairs; self.<MEOWS!> = "♥"; self } }; dd BH.new: "a" => "b", :42c; | 15:19 | |
camelia | ===SORRY!=== Lexical 'self' already declared |
||
IOninja | m: class BH is Hash { method new (*@_, *%_) { my \SELF = callwith |@_, |%_.pairs; SELF.<MEOWS!> = "♥"; SELF } }; dd BH.new: "a" => "b", :42c; | ||
camelia | {"MEOWS!" => "♥", :a("b"), :c(42)} | ||
IOninja | hord: like that? | ||
hord: normally you don't need your own method new to do some initializtion. There's submethod TWEAK you could use (like my first example above). But the reason it didn't work here is because Hash.new is a bit antisocial ATM and doesn't go through the full build sequence. | 15:20 | ||
IOninja & | 15:21 | ||
jnthn | hord: I'm not sure which you're assuming is cheaper: hashes or objects? | ||
hord | jnthn: in perl 5, hashes. | ||
i don't actually care about perl 6, yet | 15:22 | ||
jnthn | OK. In Perl 6, objects. | ||
hord | this is a direct port to learn | ||
then i will optimize to learn the perl 6 way | |||
i know i am making this harder on myself. that's the point. | |||
if i wanted easy, i'd already be done :) | |||
jnthn | :-) | ||
Yeah, Perl 6 just considers hashes and objects as very different things | 15:23 | ||
hord | yeah. very, very different. | ||
jnthn | Both at a language level and an implementation level | ||
hord | i guess i should have expected that | ||
15:29
MilkmanDan joined,
st_elmo joined,
domidumont left,
alimon joined
|
|||
SmokeMachine | m: my &op = &infix:<X>; say [\&op](<1 2 3>, <10 11 12>) | 15:38 | |
camelia | Potential difficulties: To pass an array, hash or sub to a function in Perl 6, just pass it as is. For other uses of Perl 5's ref operator consider binding with ::= instead. Parenthesize as \(...) if you intended a capture of a single v… |
||
SmokeMachine | m: my &op = &infix:<X>; say [\ &op](<1 2 3>, <10 11 12>) | ||
camelia | Invocant requires a type object of type List, but an object instance was passed. Did you forget a 'multi'? in block <unit> at <tmp> line 1 |
||
SmokeMachine | ??? | 15:39 | |
m: my &op = &infix:<X>; say [\\&op](<1 2 3>, <10 11 12>) | |||
camelia | Potential difficulties: To pass an array, hash or sub to a function in Perl 6, just pass it as is. For other uses of Perl 5's ref operator consider binding with ::= instead. Parenthesize as \(...) if you intended a capture of a single v… |
||
jnthn | I think it needs to be [\[&op]] | ||
To be recognized as a reduce meta-op | |||
SmokeMachine | m: my &op = &infix:<X>; say [\[&op]](<1 2 3>, <10 11 12>) | 15:40 | |
camelia | ((1 2 3) ((1 10) (1 11) (1 12) (2 10) (2 11) (2 12) (3 10) (3 11) (3 12))) | ||
SmokeMachine | jnthn: thanks! | ||
15:43
lukaramu joined
15:45
captain-adequate joined
15:46
TheovdH joined
15:49
itaipu left
15:52
sufrostico left,
sufrosti1o left
15:53
sufrosti2o left
|
|||
IOninja eyes IO::CatPath/::CatHandle with skepticism | 15:54 | ||
lizmat | IOninja: conceptually, or implementationally ? | 15:55 | |
IOninja | If it weren't for IO::ArgFiles, I'd definitely say module space... but then, if we're doing IO::ArgFiles thing, may as well generalize it? | ||
lizmat: conceptually. | |||
lizmat | that was my idea, yes | ||
because you don't really want people to be messing with @*ARGS just to get the functionality | 15:56 | ||
IOninja | OK. Makes sense. | ||
TheovdH | Hi, when debugging I get "Unhandled exception: ctxlexpad needs an MVMContext". Rak 2017.1 on Ubuntu. Suggestions? | 15:57 | |
IOninja | I guess what turns me off is all these "not-here" methods and basically all write methods that we can't really do anything sane for: github.com/rakudo/rakudo/commit/a2...4aa83dL154 | ||
So it's not really `is IO::Handle` but different enough to not be. | 15:58 | ||
lizmat | unless we abstract stuff from IO::Handle into a role as well | ||
IOninja | Alright. | ||
lizmat | fwiw, IO::Handle.open is a major performance bottleneck for scripts handling many files | 15:59 | |
IOninja | TheovdH: under normal circumstances you should never see an error like that, so you're hitting a bug or have some really weird code. Do you have some sample of code you could pastebin for us to test? | ||
SmokeMachine | m: say [\X]((1, 2, 3), (4, 5, 6), (7, 8, 9)) | 16:00 | |
camelia | (((1 2 3)) ((1 2 3 4 5 6)) ((1 2 3 4 5 6 7 8 9))) | ||
SmokeMachine | m: say [\[&infix:<X>]]((1, 2, 3), (4, 5, 6), (7, 8, 9)) | 16:01 | |
camelia | This Seq has already been iterated, and its values consumed (you might solve this by adding .cache on usages of the Seq, or by assigning the Seq into an array) in block <unit> at <tmp> line 1 |
||
SmokeMachine | whats the difference? | ||
m: say [\X]((1, 2, 3), (4, 5, 6), (7, 8, 9)).map(*.cache).tail | |||
camelia | ((1 2 3 4 5 6 7 8 9)) | ||
SmokeMachine | m: say [\X]((1, 2, 3), (4, 5, 6), (7, 8, 9)).map(*.cache).tail.perl | ||
camelia | ((1, 2, 3, 4, 5, 6, 7, 8, 9),) | ||
SmokeMachine | m: say [\X]((1, 2, 3), (4, 5, 6), (7, 8, 9)).tail.perl | 16:02 | |
camelia | Seq.new-consumed() | ||
TheovdH | IOninja. Its a lot of code. I do not see a simple way of slicing it up. I will look at pastebin. | 16:03 | |
SmokeMachine | IOninja: i think Ill PR now and finish the tests later... is that ok? | ||
IOninja | SmokeMachine: I guess... but how do you know your thing is working if you ain't got tests? O:) | ||
TheovdH: FWIW, you can run perl6 --ll-exception switch and it should output more info about where the error happens. | 16:04 | ||
SmokeMachine | IOninja: I have some tests, but the tests Id like... | ||
IOninja | (unless it *does* include the file/line number) | ||
16:07
zakharyas joined
|
|||
m44st4 | Hi ! | 16:10 | |
IOninja | Ahoy, mst! | ||
mst's uncle :) | |||
m44st4 | Quick question, to xor two buffers, should i use ~^ ? | ||
IOninja | Probably +^, since ~ is string xor, innit? | 16:11 | |
~^ | |||
by "buffers" you mean Buf's ? | |||
m44st4 | yep | ||
hord | are sub{}s Callable? | ||
IOninja | hord: yes | 16:12 | |
m: say sub {} ~~ Callable | |||
camelia | True | ||
TheovdH | IOninja: Thanks, now I get new info: Strange text after block (missing semicolon or comma?) | ||
at SETTING::src/core/Exception.pm:63 (/home/theo/rakudo-star-2017.01/install/share/perl6/runtime/CORE.setting.moarvm:throw) | |||
IOninja | TheovdH: what's the full output? The lines after the last one you pasted | ||
hord | sub protos save so much typing | ||
IOninja | hord: so don't type them... | ||
hord: oh, never mind; misrtead | 16:13 | ||
hord | no, i really like them. perl 5 protos were garbage. | ||
TheovdH | IOninja: it goes on and on, but here are the following lines. | ||
from src/Perl6/World.nqp:4065 (/home/theo/rakudo-star-2017.01/install/share/nqp/lib/Perl6/World.moarvm:throw) | |||
from src/Perl6/Grammar.nqp:247 (/home/theo/rakudo-star-2017.01/install/share/nqp/lib/Perl6/Grammar.moarvm:typed_panic) | |||
from src/Perl6/Grammar.nqp:1279 (/home/theo/rakudo-star-2017.01/install/share/nqp/lib/Perl6/Grammar.moarvm:eat_terminator) | |||
from src/Perl6/Grammar.nqp:1180 (/home/theo/rakudo-star-2017.01/install/share/nqp/lib/Perl6/Grammar.moarvm:statementlist) | |||
from gen/moar/perl6-debug.nqp:392 (/home/theo/rakudo-star-2017.01/install/share/perl6/runtime/perl6-debug.moarvm:) | |||
from gen/moar/perl6-debug.nqp:390 (/home/theo/rakudo-star-2017.01/install/share/perl6/runtime/perl6-debug.moarvm:statementlist) | |||
from src/Perl6/Grammar.nqp:1353 (/home/theo/rakudo-star-2017.01/install/share/nqp/lib/Perl6/Grammar.moarvm:blockoid) | |||
from gen/moar/perl6-debug.nqp:413 (/home/theo/rakudo-star-2017.01/install/share/perl6/runtime/perl6-debug.moarvm:blockoid) | |||
from src/Perl6/Grammar.nqp:1316 (/home/theo/rakudo-star-2017.01/install/share/nqp/lib/Perl6/Grammar.moarvm:pblock) | |||
from src/Perl6/Grammar.nqp:1282 (/home/theo/rakudo-star-2017.01/install/share/nqp/lib/Perl6/Grammar.moarvm:xblock) | |||
from <unknown>:1 (/home/theo/rakudo-star-2017.01/install/share/nqp/lib/Perl6/Grammar.moarvm:statement_control:sym<given>) | |||
IOninja | Shiet | ||
lizmat | TheovdH: you probably want to put that in a gist :-) | ||
hord | multi methods mean i don't have to re-wrap scalars into hashes or arrays | 16:14 | |
IOninja | TheovdH: in the future, please pastebin large amounts of stuff into a pastebin: gist.github.com/ | ||
TheovdH | IOninja: lizmat: sorry about that. | ||
16:15
Cabanossi left
|
|||
IOninja | TheovdH: so the `ctxlexpad needs an` error is gone? Or does it disappear only if you use --ll-exception? | 16:15 | |
m44st4 | Ok so ~^ xoring is working | ||
IOninja | OK | ||
m44st4 | but +^ isn't | 16:16 | |
good to know | |||
IOninja | m44st4: yeah, I was wrong. | ||
Bufs are Stringy and have ~ bitwise ops: github.com/rakudo/rakudo/blob/nom/...#L704-L787 | |||
16:16
wdna left
|
|||
TheovdH | IOninja: I'm not sure what you mean. It is not my code that gives this message. It is only if I use perl6-debug-m. | 16:17 | |
IOninja | TheovdH: how can I reproduce this on my computer? | ||
16:17
Cabanossi joined
|
|||
TheovdH | IOninja: I will try and pastebin my stuff. It is a lot and I have to embed some modules. Need some time for that. | 16:18 | |
IOninja | OK, maybe someone else can help you out; as I'm leaving in a sec. FWIW, these are the only ctxlexpads in Rakudo's source, so your issue is something about module loading: gist.github.com/zoffixznet/7dfd75f...8d19f3b6a4 | 16:21 | |
And perl6-debug-m is busted on HEAD: ./perl6-debug-m -e 'say "hi"' | |||
Illegal option --nqp-lib | |||
IOninja & | |||
mst | IOninja: awaylog spammer! | 16:22 | |
16:23
mcmillhj left
16:24
tokomer joined,
mcmillhj joined
|
|||
tokomer | 16:24 | ||
16:25
sufrostico joined,
sufrosti1o joined
|
|||
IOninja | mst: Twitter-relay spammer: i.imgur.com/j98Ad6a.png | 16:27 | |
It's not my fault your uncle visited our channel :P | |||
^_^ | 16:28 | ||
16:29
mcmillhj left
|
|||
TheovdH | IOninja: gist.github.com/anonymous/71b09284...a3842957b7 | 16:29 | |
16:30
sufrosti2o joined
|
|||
IOninja | TheovdH: well, it dies, but with "No such method 'name' for invocant of type 'Str'" for me | 16:34 | |
16:35
domidumont joined
16:36
mcmillhj joined
|
|||
TheovdH | IOninja: yes. I know. My problem is not with this code, but with debugging it. I want to see what happened before it got there. | 16:37 | |
IOninja | Ah | ||
hm, my perl6-debug-m is busted: "Cannot find method 'setlang' on object of type Perl6::HookGrammar" | 16:38 | ||
IOninja builds a 2017.01 | |||
Never used it, though. No idea what it does :) | 16:39 | ||
TheovdH | IOninja: I had that before. I was recommended to not install from rakudobrew :0) | ||
IOninja | heh | ||
16:41
mcmillhj left,
mcmillhj joined
16:44
cale2 joined
|
|||
cale2 | u: wave | 16:44 | |
unicodable6 | cale2, U+219D RIGHTWARDS WAVE ARROW [So] (↝) | ||
cale2, U+219C LEFTWARDS WAVE ARROW [So] (↜) | |||
cale2, 36 characters in total: gist.github.com/ced13f8aa9980c79b1...7912ee2725 | |||
hord | wow... i think most of my port is now done and it seems to actually work. | ||
16:45
rindolf left
16:46
mcmillhj left
|
|||
IOninja | Hm. | 16:47 | |
16:48
rindolf joined
|
|||
IOninja | TheovdH: well, I've built 2017.01 rakudo and its perl6-debug-m is still busted with "Illegal option --nqp-lib" :/ wonder what Rakudo Star does to it that it actually works. | 16:48 | |
Oh fixed that, but now need Could not find Debugger::UI::CommandLine | 16:49 | ||
So what does the debug do? | |||
guess I can find out if I install that module eh :P | 16:50 | ||
hord: what module are you porting? | |||
lizmat | grrr I hate it when stuff breaks when trying to move things to a role :-( | ||
hord | IOninja: it's my own Plack web framework that i wrote the other day | ||
lizmat | Type check failed in binding; expected NQPMu but got IterationBuffer # WTF ? | ||
IOninja | hord: ah | 16:51 | |
TheovdH: success. I managed to reproduce your issue on 2017.01 :) | 16:53 | ||
IOninja tries HEAD | |||
TheovdH | IOninja: great. this "Unhandled exception: ctxlexpad needs an MVMContext" has reared its ugly head before. | ||
hord | has $.foo; # this gives me $obj.foo, but $.foo is immutable? | 16:54 | |
IOninja | And HEAD gives me "Cannot find method 'setlang' on object of type Perl6::HookGrammar" ehehe | ||
hord: from outside, yeah, immutable. You can still mutate it inside with $!foo = "meows" | 16:55 | ||
[Coke] | m: class hord {has $.foo}; my $a = hord.new; $a.foo = 3; say $a.foo | ||
camelia | Cannot modify an immutable Any in block <unit> at <tmp> line 1 |
||
[Coke] | That did not do what I meant. oops. | 16:56 | |
IOninja | Note that it's just an immmutable container; it doesn't magically make the stuff it contains immutable | ||
16:56
robertle left
|
|||
IOninja | m: class hord {has $.foo = [<a b c>]}; my $a = hord.new; $a.foo[1] = 3; say $a.foo | 16:57 | |
camelia | [a 3 c] | ||
IOninja | Wow perl6-debug-m is cool! | ||
I had no idea we had this | 16:58 | ||
jnthn | o.O :) | ||
16:58
abraxxa left,
mcmillhj joined
|
|||
jnthn | The setlang thingy sounds like a regression during the slang work | 16:58 | |
16:58
cale2 left
|
|||
IOninja | Yeah, and the fix should be fairly simple. | 16:58 | |
hord | hrm... that means i would have to mutate someone else's class... | 16:59 | |
jnthn | hord: I don't think anybody pointed it out yet: `has $.foo is rw` creates an l-value accessor | ||
hord | Crust::Response isn't like Plack::Response in that respect, i guess | ||
jnthn | IOninja: ah, nice :) | ||
hord | jnthn: yeah, those aren't on the attributes and this is someone else's class | 17:00 | |
i will have to find another solution | |||
IOninja | Well, I only think it is :) I don't know what it is. I guess I can grep the logs and find out.... | ||
[Coke] | hord: you shouldn't be mucking in the other classes internals. | 17:01 | |
jnthn | Ah, OK | ||
:) | |||
hord | [Coke]: it's probably something that I should send a patch for. Crust::Response doesn't seem to be useful unless you can mutate it. | 17:02 | |
and for now it seems you can only set attributes at .new() time | |||
IOninja | TheovdH: FWIW, your issue points to this line: github.com/jnthn/rakudo-debugger/b...ne.pm#L736 | ||
IOninja debugs it some more | |||
[Coke] | hord: sounds good! | ||
IOninja | m: class Foo { has $.a = 42; has $.b = 72 }; dd Foo.new: |.Capture, :90b with Foo.new | 17:04 | |
camelia | Foo.new(a => 42, b => 90) | ||
IOninja | hord: FWIW something like ^ that can be done to create a new class while modifying its attributes; doesn't keep the state of private stuff tho | ||
I mean... create a new object and fill it up with values of another object's public attreibutes | 17:05 | ||
hord | IOninja: i'll be honest, that's too confusing | ||
i don't have a clue what |., Capture or :90b are supposed to mean | |||
even if i can see what they do | |||
IOninja | m: class Foo { has $.a = 42; has $.b = 72 }; my $old = Foo.new; my $new = Foo.new: |$old.Capture, b => 90; dd $new | 17:06 | |
camelia | Foo $new = Foo.new(a => 42, b => 90) | ||
IOninja | How about now? | ||
The | is just a Slip | |||
huggable: Slip | |||
huggable | IOninja, A kind of List that automatically flattens into an outer container: docs.perl6.org/type/Slip | ||
hord | it's too much syntax to take in | ||
IOninja | OK :) | ||
And :90b is just another way to write b => 90 | |||
huggable: colonpairs | |||
huggable | IOninja, All the shortcuts of colonpairs: twitter.com/zoffix/status/839807414211854337 | ||
hord | what i need is a perl 6 => perl 5 idiom sheet | 17:07 | |
when i can see equivalent p5 code, i just know what it does | |||
IOninja | Not aware of that... | ||
perigrin | the truely fun stuff doesn't have an equivalent in p5 | ||
afaict | |||
IOninja | hord: There's 4 5-to-6 tutorials, but they're not really about whole idioms: docs.perl6.org/language.html | ||
hord | the guides i've seen are either confusing or too light (this was a while ago) | 17:08 | |
that's why i felt like just writing a bunch of code was the way to go | |||
IOninja | It probably is :) | ||
hord | but i can only take so much syntax in a day... and perl 6 adds an absolute TON | ||
TheovdH | IOninja: thanks. Looking at the debugger code I still cannot guess how to move forward. | 17:09 | |
17:09
vike left,
kyan left
|
|||
IOninja | hord: FWIW, there's a lot of consistency in syntax, so there's not SO much to take in. The biggest thing to grasp I think is the lack of automatic list flattening in Perl 6. | 17:10 | |
TheovdH: well, are you trying to find the problem in your code or to fix the debugger? :) | |||
hord | IOninja: it's more that I have 20+ years of perl 5 along with C, JavaScript and many other things | ||
IOninja: the syntax is easy, but i have to put it into context with every other thing i've learned | 17:11 | ||
i'm poly-paradigm, poly-glot | |||
IOninja | TheovdH: the reason I ask is... trying to debug the debugger on 2017.01 may be wasted effort. My plan for that would be to de-bitrot it on HEAD and keep the snippet you gave me to see if it's still has that issue and then debug that. | 17:13 | |
TheovdH | IOninja: OK. I am fine with that. | 17:14 | |
17:14
koki1 joined
|
|||
dwarring | hord: there's an old advent post that covers some Perl 5 -> 6 idoms | 17:15 | |
perl6advent.wordpress.com/2011/12/...ic-perl-6/ | |||
that's all I can think of | |||
IOninja | 2011... I wonder how much of that Perl 6 is no longer valid. | ||
17:15
Cabanossi left
|
|||
hord | dwarring: i was thinking something more along the lines of new concepts/syntax in Perl 6 being re-vamped in other languages | 17:16 | |
dwarring | yeah probably too old | ||
hord | from the top-down rather than the bottom up | ||
show why things are different and how | |||
17:17
Cabanossi joined
|
|||
IOninja | TheovdH: next best thing: use trace; | 17:20 | |
TheovdH: prints out the lines as they're executed. | 17:21 | ||
TheovdH: and I added the debugger's bug to my TODO list; unless I forget, should be fixed in 2017.04 Rakudo Star. | |||
IOninja & | |||
jnthn bbl | 17:22 | ||
TheovdH | IOninja: great and great. I was not aware of trace. It is going to help. Looking forward to 2017.04! | 17:23 | |
17:30
jast left
|
|||
TheovdH | IOninja: btw I will let you know if I find a simpler stretch of code that has the same effect on the debugger | 17:30 | |
17:30
jast joined
|
|||
El_Che | IOninja: you sneaky b*tard, releasing a new rakudo. Building pkgs now. | 17:30 | |
hord | can i create a class that is private to another class? e.g. Foo::bar objects can only be created by Foo? | ||
17:32
grondilu_ joined
|
|||
[Coke] | define the second class inside the first. | 17:32 | |
hord | unit class Foo; ... class Foo::bar; #? that's what i'm trying. | ||
[Coke] | m: class A { class B {} ; method frob { return B.new } } ; A.frob.WHAT.say; | 17:33 | |
camelia | (B) | ||
[Coke] | m: class A { class B {} ; method frob { return B.new } } ; A.frob.WHAT.say; B.new.say | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Undeclared name: B used at line 1 |
||
hord | namespacing is going to kill me in p6, too | 17:34 | |
17:34
grondilu left
|
|||
[Coke] | (you could go so far as to define B inside the frob method there, if that's how restricted you needed it | 17:35 | |
El_Che | I need a new laptop. Travis finished faster than my local build | ||
hord | [Coke]: yes... yes that might actually be what i need. | 17:36 | |
i mean it's kind of disgusting to have a type that is only defined in the scope of a single sub | |||
but i like it. i like it a lot. | |||
[Coke] | hord: we do it in core, even: github.com/rakudo/rakudo/blob/3fb0...ine.pm#L63 | 17:37 | |
hord | yep, that's basically what i need | ||
this means you can now create actionable message types | 17:38 | ||
i can pass you a data structure and you give me an empire built from it | |||
disgusting | |||
17:40
japhb_ left
17:41
japhb joined
17:44
sufrosti1o left,
sufrostico left
17:45
sufrosti2o left
17:48
zakharyas left,
wamba left
17:51
girafe joined
17:52
kurahaupo__ joined
17:53
sufrostico joined,
sufrosti1o joined,
sufrosti2o joined
17:54
domidumont left
|
|||
lizmat | :-) | 17:58 | |
lizmat wonders what hord would think of class :: does Iterator { ... }.new(...) :-) | |||
TimToady | or anon class Sekrit does Iterator { ... }.new(...) :-) | 18:04 | |
lizmat | m: class A { method a(--> self) {} }; dd A.a # sometimes I wish this would work | 18:08 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Type 'self' is not declared at <tmp>:1 ------> 3class A { method a(--> self7⏏5) {} }; dd A.a # sometimes I wish this w |
||
18:08
wcumming- is now known as wcummings_`,
wcummings_` is now known as wcummings
|
|||
IOninja | m: class A { method a(\z: --> z) {} }; | 18:09 | |
camelia | ===SORRY!=== No compile-time value for z |
||
IOninja | booo | 18:10 | |
m: class A { method a(\z: --> ::?CLASS) {z} }.new.a.say | 18:11 | ||
camelia | A.new | ||
TimToady | --> is in the category of --> $result | ||
which is NYI | |||
er, --> self is in... | |||
IOninja | El_Che: not sneaky. It's third Saturday of the month, every month. | 18:12 | |
El_Che: also: | |||
NeuralAnomaly: status | |||
NeuralAnomaly | IOninja, [✘] Next release will be in 3 weeks and 3 days. Since last release, there are 5 new still-open tickets (5 unreviewed and 0 blockers) and 17 unreviewed commits. See perl6.fail/release/stats for details | ||
TimToady | is anyone else not seeing the latest P6W in their pl6anet feed? | 18:16 | |
IOninja | TimToady: everyone. Something's broken with pl6anet | ||
m: class { method x { anon class Sekrit { constant x = anon role AlsoSekrit { method z { Sekrit.new but AlsoSekrit } }; also does x } } {} } }.new.x.z | |||
camelia | 5===SORRY!5=== Error while compiling <tmp> Undeclared names: AlsoSekrit used at line 1 Sekrit used at line 1 |
||
IOninja | booo | ||
18:17
dakkar left
|
|||
IOninja | m: class { method x { class Sekrit { constant x = role AlsoSekrit { method z { Sekrit.new but AlsoSekrit } }; also does x } } }.new.x.z.say | 18:17 | |
camelia | <anon|50635344>::Sekrit+{<anon|50635344>::Sekrit::AlsoSekrit}.new | ||
IOninja | \o/ | 18:18 | |
TimToady | 'also' is one of those things you almost never want, but when you want it, you want it very, very much :) | 18:19 | |
IOninja | El_Che: also, release happens in full view of the public #perl6-dev :) irclog.perlgeek.de/perl6-dev/2017-...i_14286273 | ||
18:19
zakharyas joined
|
|||
SmokeMachine | I am sorry, but I have to comment: had anyone noticed the charles chaplin made by lobster's and sorear's avatars on the rakudo's organization's page? github.com/rakudo | 18:19 | |
ilmari | SmokeMachine: neat | 18:20 | |
IOninja doesn't see it | 18:21 | ||
I don't even see no sorear | |||
hobbs | haha | 18:22 | |
IOninja: third column of light green geometric things | |||
in the People box | |||
TimToady | my People box apparently has different geometry | ||
timotimo | it has 16 entries on my end, in a 5x3 + 1 lone picture arrangement | 18:23 | |
hobbs | i.imgur.com/htNHxfk.png | ||
IOninja | i.imgur.com/dqyybwg.png | ||
timotimo | hey that's me in there \o/ | ||
IOninja | Ah. I have special powers and see more people that's why | ||
TimToady wonders what Rorshasch would make of your identification... | 18:24 | ||
hobbs | oh, I wonder if it's different if you're in the organization | ||
IOninja | SmokeMachine++ indeed it does look like it :) | ||
TimToady | ohh, pl6anet fixed, stmuk_++ | 18:25 | |
SmokeMachine | :) | ||
18:27
gdonald left
|
|||
SmokeMachine | lizmat: why do you think that should be 2 different Pos? | 18:27 | |
*PRs | |||
18:28
domidumont joined
18:32
FROGGS joined
18:34
eroux left
18:35
eroux joined
18:36
ranguard left
18:37
ranguard joined
|
|||
Geth | ecosystem: 6137040c18 | (Zoffix Znet)++ | META.list s/META.info/META6.json/ for P6-Data-Dump-Tree |
18:37 | |
modules.perl6.org: e06d6ab8a5 | (Zoffix Znet)++ | lib/ModulesPerl6/DbBuilder/Dist/Source.pm Fix incorrect warnings for tags Detects missing tags as "have but not an array" tags. |
18:43 | ||
El_Che | IOninja: I am #perl6 lurker, not a #perl6-dev l33t haxor | 18:52 | |
IOninja | heh | 18:53 | |
raschipi | m: say +$*THREAD | 18:55 | |
camelia | 1 | ||
lizmat | m: start { say $*THREAD } | 18:56 | |
camelia | Thread #3 | ||
Geth | modules.perl6.org: b6e5c60be4 | (Zoffix Znet)++ | templates/root/index.html.ep Remove superfluous text |
||
18:56
kurahaupo__ left
|
|||
hord | what keeps perl 6 from including '?' in identifiers? | 18:56 | |
18:57
kurahaupo__ joined
|
|||
lizmat | hord: there's actually a slang for that | 18:57 | |
hobbs | just use "p" ;) | ||
hord | i've always liked ruby's .nil? and things like that. | ||
lizmat | hord: github.com/FROGGS/p6-Slang-Piersing | ||
hord | lizmat: nice! | 18:58 | |
raschipi | If that gets popular, does it make into core? | ||
SmokeMachine | IOninja: the problem is: got: $(Seq.new-consumed(), Seq.new-consumed(), Seq.new-consumed()) | ||
lizmat | raschipi: don't think so | ||
it lives fine in module space :-) | 18:59 | ||
IOninja | Wonder if that module's been busted by the braid upgrade | ||
SmokeMachine: kinda yeah, it's the problem with the output though; it can still test if they differ. | 19:00 | ||
m: use Test; is-deeply [(1,).Seq], [(1,).Seq] | |||
camelia | ok 1 - | ||
IOninja | m: use Test; is-deeply [(1,).Seq], [(2,).Seq] | ||
camelia | not ok 1 - # Failed test at <tmp> line 1 # expected: $[2] # got: $[1] |
||
IOninja | m: use Test; is-deeply [(1,).Seq,], [(1,).Seq,] | ||
camelia | ok 1 - | ||
IOninja | m: use Test; is-deeply [(1,).Seq,], [(2,).Seq,] | 19:01 | |
camelia | not ok 1 - # Failed test at <tmp> line 1 # expected: $[Seq.new-consumed(),] # got: $[Seq.new-consumed(),] |
||
IOninja | Right | ||
SmokeMachine | IOninja: ok, thanks! | ||
IOninja | SmokeMachine: ^ so if it's failing, that means the outputs don't match. | ||
It just can't output them, because they've been consumed during comparison. | 19:02 | ||
hord | oh my. oh my my my. | ||
SmokeMachine | IOninja: ok, thanks! | ||
(is there any way to tell travis: if is there a new version of rakudo, run my modules tests again?) | |||
IOninja | SmokeMachine: yes: docs.travis-ci.com/user/triggering-builds/ | 19:03 | |
hord | so... you can modify the parser's grammar at run-time? | ||
IOninja | hord: yes | ||
SmokeMachine | IOninja: great! ill do that to my modules!!! | ||
IOninja: thanks! | 19:04 | ||
19:04
Tonik joined
|
|||
IOninja | m: sub infix:<♥> { $^a + $^b }; say 2 ♥ 2 | 19:04 | |
camelia | 4 | ||
19:04
sufrostico left
|
|||
IOninja | hord: that's ^ one way. And slangs is another. Slangs currently don't have an "official" API | 19:04 | |
huggable: slang | |||
huggable | IOninja, mouq.github.io/slangs.html | ||
IOninja | hord: ^ docs for them; though that might be outdated a bit due to recent braids upgrade (it would be just a couple of lines though, see the recent changes in Slang::Tuxic for a fix) | 19:05 | |
19:05
sufrosti2o left,
sufrosti1o left
|
|||
IOninja | buggable: eco Slang::Tuxic | 19:06 | |
buggable | IOninja, Slang::Tuxic 'allows to call subs as: foo (args)': github.com/FROGGS/p6-Slang-Tuxic | ||
hord | that's just wild | ||
i'm trying to imagine how you accomplish that... i'm guess a mutable grammar tree. | |||
IOninja | hord: even without any changes, parsing is done with a braid of three languages: Main, Quote, and Regex | ||
hord | i don't think i've ever built a parser that stored the semantics as a tree | 19:07 | |
or whatever | |||
yeah, i seem to recall reading about the multi-language ability with regards to regex | |||
IOninja | m: say "Oh {"my"}" | ||
camelia | Oh my | ||
IOninja | Note how the quotes don't interfere :) | 19:08 | |
(well, I guess you don't need braids for that, but still) | |||
19:09
mcmillhj left,
mr-foobar left,
mr-foobar joined
19:10
darutoko left
19:11
mr-foobar left
|
|||
El_Che | New rakudo 2017.03 Linux pkgs: github.com/nxadm/rakudo-pkg/releas...ag/2017.03 | 19:12 | |
IOninja | \o/ | 19:13 | |
El_Che++ | |||
El_Che: do Centos .rpms work on all the other Linuxes that use .rpms? | |||
hord | i'm behind (2017.01) | ||
SmokeMachine | m: say [\X~](<a b c>) eqv ((("a",).Seq, ("ab",).Seq, ("abc",).Seq)).Seq # <- IOninja, is that good enough? | ||
camelia | True | ||
El_Che | I will try to squeeze a Debian release soon, because I saw some users here on the channel asking about it | ||
19:14
FROGGS left
|
|||
El_Che | IOninja: they are built on CentOS7. It should (because everything is self-contained), but ymmv | 19:14 | |
IOninja | m: use Test; is-deeply [\X~](<a b c>), ((("a",).Seq, ("ab",).Seq, ("abc",).Seq)).Seq | ||
camelia | This Seq has already been iterated, and its values consumed (you might solve this by adding .cache on usages of the Seq, or by assigning the Seq into an array) in sub _is_deeply at /home/camelia/rakudo-m-inst-2/share/perl6/sources/C712FE6969F786C… |
||
El_Che | thing will break e.g. if the OSes have incompalitble libc or something | ||
IOninja | m: use Test; is-deeply ([\X~](<a b c>)), ((("a",).Seq, ("ab",).Seq, ("abc",).Seq)).Seq | 19:15 | |
camelia | This Seq has already been iterated, and its values consumed (you might solve this by adding .cache on usages of the Seq, or by assigning the Seq into an array) in sub _is_deeply at /home/camelia/rakudo-m-inst-2/share/perl6/sources/C712FE6969F786C… |
||
IOninja wonders wtf | |||
El_Che | I could add a Fedora build to cover most bases | ||
IOninja | SmokeMachine: yeah | ||
SmokeMachine: though I don't get why is-deeply isn't happy with them :/ | |||
El_Che | The whole idea of the docker build is that it's trivial to add a 64-bit linux OS | ||
raschipi | Speaking of debian, 2017-02 is just available from the repos, I'm upgrading now. | ||
IOninja | 2017.02? ancient! | 19:16 | |
El_Che | (and possible to add a 32 if there is a base 32 bit systemn like the one Ubuntu has for the cloud) | ||
IOninja | :) | ||
19:16
mcmillhj joined
|
|||
SmokeMachine | is-deeply really didn't like that... :( | 19:16 | |
IOninja | m: use Test; cmp-ok [\X~](<a b c>), 'eqv', ((("a",).Seq, ("ab",).Seq, ("abc",).Seq)).Seq | 19:17 | |
camelia | ok 1 - | ||
IOninja | SmokeMachine: you can use that | ||
is-deeply is bustified with Seqs I guess. | |||
SmokeMachine | IOninja: great! thanks! | ||
19:18
zakharyas left
|
|||
IOninja | SmokeMachine: and commit directly (or merge your PR) when you're done. You have the commit bit. | 19:22 | |
SmokeMachine | IOninja: ok... but if I did that the last time you wouldn't correct me... | 19:23 | |
19:23
espadrine joined
|
|||
IOninja | SmokeMachine: and if you ever decide to try to get a commit bit for rakudo, it's required that you sign a Contributor License Agreement and send it to The Perl Foundation first. It's here: www.perlfoundation.org/contributor_..._agreement you can email it to them instead of shipping it by normal mail | 19:23 | |
SmokeMachine | IOninja: should I send that to what email? | 19:26 | |
19:26
pytuger left
|
|||
IOninja | SmokeMachine: not really sure, maybe Jim Brandt? www.perlfoundation.org/contact_us You can ask [Coke], he's a member | 19:27 | |
19:27
pytuger joined,
pytuger left,
pytuger joined
19:28
mr-foobar joined
|
|||
SmokeMachine | .tell [Coke] Hi there! Id like to sign the Contributor License Agreement, do you know what email should I send that? Should those blanks be hand written? Thank you very much. | 19:32 | |
yoleaux | SmokeMachine: I'll pass your message to [Coke]. | ||
[Coke] | print it out, sign it, scan it in. | ||
yoleaux | 19:32Z <SmokeMachine> [Coke]: Hi there! Id like to sign the Contributor License Agreement, do you know what email should I send that? Should those blanks be hand written? Thank you very much. | ||
SmokeMachine | [Coke]: and send it to what email? | 19:33 | |
[Coke] | mail to trademark -at- perlfoundation.org | ||
SmokeMachine | [Coke]: thank you very much! | ||
19:36
andrzejku joined
19:37
wamba joined
19:38
andrzejku left
19:47
hankache joined
|
|||
hankache | hello #perl6 | 19:47 | |
raschipi | hey hankache! | 19:54 | |
19:54
mcmillhj left
19:56
mcmillhj joined
20:00
andrzejku joined,
Cabanossi left
20:01
mcmillhj left
20:03
domidumont left
|
|||
timotimo has never had an aching hank | 20:03 | ||
20:03
Cabanossi joined
20:07
setty1 joined
20:08
pyrimidine joined
|
|||
SmokeMachine | signed | 20:11 | |
www.irccloud.com/pastebin/ls7lxwRV/ | 20:12 | ||
20:12
mcmillhj joined
|
|||
SmokeMachine | [Coke]: the email bounced... :( | 20:13 | |
[Coke] wonders if DBIish supports oracle CLOBs | 20:14 | ||
20:15
Actualeyes left
|
|||
[Coke] | SmokeMachine: ok. send it to me at [email@hidden.address] I'll add it to my pile of TPF stuff to do. | 20:15 | |
SmokeMachine | [Coke]: thanks! | ||
sent! | 20:16 | ||
[Coke] | SmokeMachine: recebido | 20:18 | |
SmokeMachine | [Coke]: are you brazilian? | ||
[Coke] | no, although I think there are some Coledas down that way. | 20:19 | |
20:19
jonas1 left
|
|||
SmokeMachine | tColedas? | 20:20 | |
Coledas? | |||
hord | i don't see anything in the DBDish that lets you mess with CLOBs like the p5 driver does... good luck :) | ||
Oracle is... fun. | 20:21 | ||
SmokeMachine | google translate told me that Coledas should means "cops"... (In brazil we call cops: policiais) | ||
*mean | 20:22 | ||
20:22
avar joined,
avar left,
avar joined
20:23
zakharyas joined
20:24
hankache left
|
|||
timotimo | what are CLOBs? | 20:25 | |
do i even want to know ... | 20:26 | ||
hobbs | like a BLOB but without the first B | 20:27 | |
(character large object) | |||
20:27
hankache joined
|
|||
hord | timotimo: all the horror of BLOBs with Unicode | 20:27 | |
timotimo | so ... instead of bytes it has ascii characters? :P | 20:28 | |
oh yikes | |||
that's somehow even worse | |||
hord | actually, Oracle's unicode handling is fine once you learn how to pick The One True Encoding | ||
20:28
labster joined
|
|||
hobbs | I wrote an oracle stored-procedure wrapper for $WORK some years back, the LOB-fetcher was one of the more interesting parts of it | 20:29 | |
almost as hard to get right as the actual function introspector | |||
hord | yeah i had to deal with lobs for some web apps | ||
[Coke] | Whatever my name means, I'm pretty sure "police" ain't it. :) | ||
hord | i'm digging on MonoDB lately. is there a p6 driver? i haven't looked. | 20:30 | |
oh, there is.. | 20:31 | ||
timotimo | is that mongodb but without the g? | ||
hord | i meant MongoDB | ||
timotimo | OK | ||
20:31
domidumont joined
|
|||
timotimo | just make sure you either don't expose your mongodb to the public internet, or have a password set on it | 20:31 | |
hord | what if i want to run a wiki-style database? | 20:33 | |
20:35
TEttinger joined
20:38
domidumont left
20:41
st_elmo left
20:42
labster left
20:49
bjz joined,
Tonik left
20:53
tinita is now known as tinita_
20:54
tinita joined
20:57
tinita left
20:58
tinita joined
21:02
eroux left
21:04
skids left,
andrzejku left
21:05
girafe left
21:09
sufrostico joined
21:10
sufrosti1o joined,
sufrosti2o joined
|
|||
RabidGravy | I ought to release Sofa soon | 21:12 | |
timotimo | hord: why would you expose the database to the public internet in that case? | 21:16 | |
21:16
raschipi left
21:17
hankache left
|
|||
hord | timotimo: for fun and profit | 21:18 | |
timotimo | well, let's hope you have usernames and their passwords in a separate database in that case | 21:20 | |
and you don't mind someone dropping all your tables constantly | 21:21 | ||
hord | what if you made a database where the first record you create is your public key and only messages from you can mutate the database? | 21:26 | |
21:26
mcmillhj left
21:28
pyrimidine left
|
|||
timotimo | that would be fun | 21:28 | |
21:28
pyrimidine joined
21:29
bjz left
|
|||
hord | i have a single-user version using symmetric keys. the idea of using pki + multi-user hit me yesterday. | 21:30 | |
21:41
sufrosti2o left,
sufrostico left,
sufrosti1o left
21:43
sufrostico joined,
sufrosti1o joined,
sufrosti2o joined
|
|||
El_Che | creating debian stable packages | 21:44 | |
so, far it hasn't exploded in my face :) | |||
21:50
hankache joined
21:51
labster joined
|
|||
El_Che | github.com/nxadm/rakudo-pkg/releas...ag/2017.03 <-- includes debian8 amd64 rakudo pkg | 21:53 | |
IOninja | El_Che++ | 21:54 | |
22:00
zakharyas left
22:02
Sound left,
Guest37422 left
|
|||
m44st4 | Hi ! Do we have a good Crypto library with AES,Twofish,Serpent and Usual block-cipher modes, | 22:09 | |
? | |||
22:11
setty1 left
|
|||
samcv | hi! | 22:12 | |
m44st4, modules.perl6.org/#q=crypt | 22:13 | ||
IOninja | buggable: eco crypt | ||
buggable | IOninja, Found 8 results: Game::Crypt, Crypt::Bcrypt, Crypt::Libcrypt, Crypt::RC4, Crypt::TweetNacl. See modules.perl6.org/#q=crypt | ||
22:14
mcmillhj joined,
ccakes left
22:15
RabidGravy left
|
|||
m44st4 | Thanks ! | 22:16 | |
22:19
ccakes joined,
mcmillhj left
|
|||
El_Che | hi samcv | 22:19 | |
samcv | hey | ||
22:21
pyrimidine left
22:22
ccakes_ joined,
pyrimidine joined
22:23
ccakes left
22:24
ccakes_ left
22:25
ccakes joined
|
|||
IOninja wonders how Slang::Piersing got its name.... | 22:25 | ||
timotimo | somethign to do with a lisp? | ||
lol | 22:26 | ||
hobbs | I was wondering that too, my guess to myself is that it's something that Piers Cawley was excited about at some point | 22:27 | |
22:27
pyrimidine left
|
|||
timotimo | duckduckgo.com/?q=Piers+Cawley+lib...;ia=videos | 22:27 | |
22:28
b2gills left
22:30
mcmillhj joined
22:33
hankache left
22:34
mcmillhj left
22:42
Voldenet left
22:43
araujo left
22:44
araujo joined,
araujo left,
araujo joined
22:45
Cabanossi left
22:46
mcmillhj joined
22:47
Voldenet joined,
Voldenet left,
Voldenet joined,
Cabanossi joined
22:50
mcmillhj left,
skids joined
22:53
sena_kun left
23:07
raiph left
|
|||
SmokeMachine | accordingly to this (rt.perl.org/SelfService/Display.ht...t-history) should I remove lcm and gcd from Numeric.pm? | 23:07 | |
23:07
raiph joined
23:08
wamba left
|
|||
IOninja | I wouldn't call that a bug TBH. | 23:10 | |
The docs clearly state the behaviour too: "Coerces both arguments to Int and returns the least common multiple, that is the smallest integer that is evenly divisible by both arguments." | |||
IOninja & | 23:11 | ||
23:11
thowe_work joined
|
|||
SmokeMachine | ok, Ill leave that alone... | 23:14 | |
hord | that's a balance between being strict math and fuzzy perl | 23:15 | |
if you are a math person, i think it'd be technically wrong to allow anything but integers for gcd/lcm | 23:16 | ||
timotimo | i thought so, too, hord | ||
hord | but most programmers aren't strictly math people | ||
timotimo | m: say 2.5.narrow | ||
camelia | 2.5 | ||
23:23
espadrine left
23:28
cibs left
23:31
cibs joined
23:32
labster left
23:33
pytuger left
|
|||
IOninja | hord: that's not my reasoning for it. My reasoning is non-Int numbers don't make sense with these ops, so forcing the user to constantly add .Int with them is antisocial. | 23:35 | |
'cause 99.9% of the time people aren't writing "2.5 gcd 5" but "*some computation* … $stuff gcd $other-stuff" | 23:36 | ||
23:37
nadim left
23:38
tokomer left
23:40
raiph left
23:41
TheovdH left,
raiph joined
|
|||
SmokeMachine | is the code inside {} inside a regex evaluated at runtime, right? | 23:43 | |
so this dies at compile time: | |||
m: say "ooo" ~~ / "o" ** 1..0 / | |||
camelia | 5===SORRY!5=== Error while compiling <tmp> Empty range at <tmp>:1 ------> 3say "ooo" ~~ / "o" ** 1..07⏏5 / |
||
SmokeMachine | and this doesn't: | ||
m: say "ooo" ~~ / "o" ** {1..0} / | |||
camelia | 「ooo」 | ||
23:43
mcmillhj joined
|
|||
El_Che | This is Rakudo version 2017.03 built on MoarVM version 2017.03 | 23:43 | |
implementing Perl 6.c. | |||
f7d2a26e55ee9acbe34168c37761baf7100152a8 perl6-rakudo-moarvm-Fedora25-20170300-01.x86_64.rpm | |||
\o/ | |||
SmokeMachine | but the second one shouldn't match, right? | 23:44 | |
23:45
Cabanossi left
23:47
Cabanossi joined
|
|||
El_Che | For whoever writes p6weekly this week: addition of Fedora and Debian packages to github.com/nxadm/rakudo-pkg/releas...ag/2017.03 | 23:48 | |
23:48
skaji_ joined,
mcmillhj left
23:49
skaji_ left
23:50
skaji_ joined
23:53
pyrimidine joined
23:54
raiph left,
raiph joined
23:56
khw joined
23:58
pyrimidine left
|