»ö« 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.
j_b_s testing hello 06:20
j_b_s what are main programming environments available for perl6 on windows 10? Looking to learn and familiarize with the language, but also start developing some tools to deploy on cloud (if possible) 06:23
teatime I don't really know, but I can point you to installation package for windows rakudo.org/how-to-get-rakudo/#Insta...ar-Windows 06:29
and some links to editors perl6.org/whatever/
teatime if you want an easy way to type fancy Unicode operators on windows, WinCompose worked well for me in the past 06:30
and perhaps mi.cro.services/ might interest you
j_b_s great, thanks teat 06:45
ime
Geth perl6-examples: 6ae35dec7e | (Shlomi Fish)++ | categories/euler/prob612-shlomif.p6
Refactor my code.
12:10
[Coke] . 12:16
rindolf Hi all! 12:18
p6eval: [*] [2,3,5]
m: [*] [2,3,5]
camelia Potential difficulties:
Useless use of [*] in sink context
at <tmp>:1
------> 3<BOL>7⏏5[*] [2,3,5]
rindolf m: [*] 2,3,5 12:19
camelia Potential difficulties:
Useless use of [*] in sink context
at <tmp>:1
------> 3<BOL>7⏏5[*] 2,3,5
lizmat m: say [*] 2,3,5
camelia 30
geekosaur it doesn't auto-say stuff
rindolf lizmat: thanks
geekosaur because then the bot can;t easily be used to test for sink context issues
rindolf m: say [*] [2,3,5]
camelia 30
rindolf great
geekosaur or for auto-sinking issues, which do occaisonally come up 12:20
rindolf is this the idiomatic way to do a product?
lizmat m: my @a = 2,3,5; say [@] @a # also works ? 12:23
camelia 5===SORRY!5=== Error while compiling <tmp>
Two terms in a row
at <tmp>:1
------> 3my @a = 2,3,5; say [@]7⏏5 @a # also works ?
expecting any of:
infix
infix stopper
postfix
statement end
lizmat m: my @a = 2,3,5; say [*] @a # better
camelia 30
geekosaur is trying to tell if that was a shell-y typo... 12:24
lizmat so yes, I would say it's the idiomatic to do a product on more than 2 values
Geth perl6-examples: 98a8fd04fd | (Shlomi Fish)++ | categories/euler/prob612-shlomif.p6
Rename var
12:35
perl6-examples: 1cedf866cf | (Shlomi Fish)++ | categories/euler/prob612-shlomif.p6
Refactoring
perl6-examples: 4e0ccae754 | (Shlomi Fish)++ | categories/euler/prob612-shlomif.p6
Extract a common function.
rindolf lizmat: thanks 12:36
Geth perl6-examples: 89d76569ce | (Shlomi Fish)++ | categories/euler/prob612-shlomif.p6
Refactoring
12:48
perl6-examples: f4edd80c4e | (Shlomi Fish)++ | categories/euler/prob612-shlomif.p6
Refactoring - avoid a temp
perl6-examples: 34383395b1 | (Shlomi Fish)++ | categories/euler/prob612-shlomif.p6
Refactoring
Geth perl6-examples: 096a3981da | (Shlomi Fish)++ | categories/euler/prob612-shlomif.p6
Refactor: convert to nCr and bag().
13:02
Geth perl6-examples: fe089d298e | (Shlomi Fish)++ | categories/euler/prob612-shlomif.p6
Refactoring
13:22
Geth perl6-examples: 259900d959 | (Shlomi Fish)++ | META6.json
Fix t/test-meta.t with a .git suffix.
14:11
Herby_ o/ 14:32
[Coke] \o 14:36
stmuk new perl6 video www.youtube.com/watch?v=AJm7M36DgD0 14:37
lizmat: for the weekly? ^^ 14:38
lizmat stmuk++ :-) 14:39
stmuk hmmm non-visible slides issues .. I'll see if I can get them 14:40
scovit hello 14:49
m: my @F = []; say @F; say @F.map({ $_ - 1 })
camelia []
()
Herby_ Hello
scovit m: my @F = "".split(" "); say @F; say @F.map({ $_ - 1 })
camelia []
(-1)
scovit I think I am missing something about the functioning of split..
how do you understand what is going on there ^ ?
[Coke] m: my @F = "".split(" ").perl.say 14:50
camelia ("",).Seq
[Coke] m: say ""-1;
camelia -1
[Coke] ^^
scovit Thank you Coke, now how to solve the issue that "".split(" ") still give me "" ?
geekosaur you split a empty string, you got an empty list back
lizmat and that stringifies to "" 14:51
geekosaur ^
scovit I understand that there is a logic behind all this
[Coke] m: my @F = "".split(" ", :skip-empty).perl.say
camelia ().Seq
[Coke] ^^
lizmat stmuk: if we could have slides to go with the video, that would be brill :-)
scovit Thank you Coke 14:52
[Coke] found on docs.perl6.org/routine/split
scovit I didn't bother checking the docs, since 14:53
m: say ("",).Seq
camelia ()
scovit it was not at all clear where to look
geekosaur split would have been my first guess
[Coke] when trying to track something like that, break it down into pieces first, and see where things start going contrary to expectations. 14:54
scovit geekosaur of course, but there was no reason to assume that perl was behaving according to a logic
geekosaur ... 14:55
[Coke] That's a weird phrasing that doesn't actually tell me what your expectation was. 14:56
jdv79 AlexDaniel`: yeah, i mistakenly badded instead of skipping 14:57
thanks
scovit my expectation was that [] would be different from ("",).Seq 14:58
which was, but then say wouldn't show
[Coke] it is different.
scovit in the output of say
[Coke] say shows you the gist of something, not the true thing.
AlexDaniel` jdv79: it's actually non-obvious if you're doing an automated run for example. You have to check the exit code of make *and* configure, or alternatively check if perl6 executable exists
[Coke] use .perl to get closer to the metal.
AlexDaniel` jdv79: this is why I love bisectable, it does all that automatically :) 14:59
jdv79: … except that it is no good for that particular case :(
jdv79 haha
geekosaur scovit, if you want to see the truth, use the .perl method. (which gives you a Str and the gist of a Str is itself, so you can safely 'say' it) 15:01
scovit geekosaur, of I can keep complaining, :skip-empty is not huffman coded
I think that what I am doing is fairly common 15:02
b2gills :skip-empty **is** huffman coded, because you shouldn't use it very often
scovit perl -nae 'print scalar @F' 15:03
it is the default here ^
[Coke] perl6 ain't perl5. 15:04
scovit I am just arguing that people will use it often
[Coke] docs.perl6.org/language/5to6-perlfunc#split
b2gills I just came back online, but I assume you used .split(''), which is better written as .comb
geekosaur your argument would be worth a bit more if it werent based on 'I think that...' 15:05
scovit b2gills nop
[Coke] Looks like that is missing the note about :skip-empty
Juerd Why is .split('') "better written as" .comb? timtowtdi!
b2gills I meant .split('',:skip-empty) is better written as .comb. It is about saying what you want rather than what you don't want. 15:07
scovit geekosaur I might better spend my time counting the time arguments about huffman coding are based on handwaving than counting the times split is intended as :skip-empty 15:09
like in all perl5 scripts
geekosaur enough. I am not the one who decides these things, and you are veering close ot saying that our time is best spent accepting your beliefs as truths 15:10
un critically
b2gills m: ''.comb(/<-[\ ]>+/).perl.say 15:11
camelia ()
scovit I am arguing that spending time in such a discussion would be less worth than trolling you, sorry for the honesty
b2gills There are many places where the default in Perl 5 is to throw away information, and the default in Perl 6 is to keep the information 15:14
AlexDaniel` .hug everyone 15:18
huggable hugs everyone
scovit b2gills, I interpret the perl 6 default as keeping an identity element 15:18
scovit I honestly like the new default 15:19
b2gills m: say '123'.split('abc').perl.say
camelia ("123",).Seq
True
b2gills m: my @a = 1,2,3; say [@a,4,5].perl; say [|@a,4,5]; # another place that Perl 5 would throw away data that Perl 6 doesn't 15:20
camelia [[1, 2, 3], 4, 5]
[1 2 3 4 5]
raschipi Yep, very good principle to have, requiring that discarding information be done explicitly. 15:22
AlexDaniel` it depends on what you look at. Strings, for example, are normalized by default 15:25
b2gills To be fair, Unicode says that all the ways of encoding a grapheme cluster should be seen as equivalent. It only really becomes a problem when dealing with interfaces that don't follow that part of the spec, like file-systems. 15:29
raschipi Unicode is round-trip capable exactly because that isn't true. 15:33
geekosaur unixlike filesystems mostly don't claim to follow that spec (OS X being a specific exception, and that only for HFS+) so that's a slightly weird statement 15:35
in fact posix doesn't promise anything except byte strings 15:36
raschipi That is because it has to support any encoding, not only Unicode ones. Unicode still didn't support Japanese properly until recently, for example (and the new standard that does isn't implemented in any POSIX operating systems anyway). So that's why they didn't change file names to require valid Unicode. 15:39
b2gills That was just an example, there are interfaces that take in utf8 data but treat it more like a list of numbers than text 15:40
raschipi There were talks on Usenix about requiring valid utf-8 in file names and about normalizing them. Apple is already implementing it, soon it will be available in other systems.
teatime unicode is so complex. I love it, but I, like, fear it somehow. 15:42
scovit I dubt linux will follow 15:42
b2gills There are certain times where it would be nice for a Str to keep around something like a shadow copy of it's original data for when round-tripping is useful. 15:43
scovit I tought there was an encoding specifically for that utf-c8 15:45
b2gills Or at least if Uni were usable with more of the setting
raschipi Linux will follow, it will just take a long time and many out-of-tree attempts to get the interfaces right before they committ to it. 15:46
pmurias b2gills: making Uni more usable seems a lot better than a solution that sometimes works but breaks when you mess more with the string 15:48
scovit I think the developers of linux are committed to keep the kernel abi compatibility. While this seems more related to filesystems than the general kernel, it will break some applications 15:51
teatime were you having a problem with reading filepaths that get normalized and end up not the same bytes as the real filepath? 15:52
geekosaur scovit, maybe. I've been imagining a separate set of APIs for utf8 15:53
because there will be apps that need to use byte strings for compatibility or etc. 15:54
teatime geekosaur: implicit hardlinks? :)
geekosaur and, knowing programmers, probably someone relying on U+00E1 and U+0061 U+0301 being different 15:55
raschipi m: Blob.new(0xf8, 0x67, 0x65, 0x6b).decode('utf8-c8').codes #what a mess 15:56
camelia ( no output )
teatime predicts unicoded and filepathctl
raschipi m:say Blob.new(0xf8, 0x67, 0x65, 0x6b).decode('utf8-c8').codes
evalable6 7
geekosaur predicts linux will find the most byzantine possible way to implement it >.> 15:57
b2gills m: Blob.new(0xf8, 0x67, 0x65, 0x6b).decode('utf8-c8').uninames.map: &say 15:58
camelia <Plane 16 Private Use-10FFFD>
LATIN SMALL LETTER X
LATIN CAPITAL LETTER F
DIGIT EIGHT
LATIN SMALL LETTER G
LATIN SMALL LETTER E
LATIN SMALL LETTER K
teatime m: say Blob.new(0xf8, 0x67, 0x65, 0x6b).decode('utf8-c8').encode('utf8-c8').codes 15:59
camelia No such method 'codes' for invocant of type 'Blob[uint8]'. Did you mean 'does'?
in block <unit> at <tmp> line 1
b2gills m: say Blob.new(0xf8, 0x67, 0x65, 0x6b).decode('utf8-c8').encode('utf8-c8').bytes
camelia 4
raschipi m: say Blob.new(0xf8, 0x67, 0x65, 0x6b).decode('utf8-c8').encode('utf8-c8').^name 16:01
camelia Blob[uint8]
raschipi Yeah, but it breakes down in the midlle. Only works as long as one doesn't touch it.
teatime I'm not necessarily seeing the problem, or at least one that could be avoided w/ automation 16:03
raschipi It's just that it's messy. The guts should be hidden. 16:04
m:say Blob.new(0xf8, 0x67, 0x65, 0x6b).decode('utf8-c8').codes # This should be '4', because I created it with 4 codes. 16:05
evalable6 7
raschipi But it's seven, the encapsulation is broken
teatime raschipi: when you decode it you're asking for the (perl-normalized/NFG, I guess) utf8 representation 16:06
raschipi m: say Blob.new(0xf8, 0x67, 0x65, 0x6b).decode('utf8-c8') 16:06
camelia 􏿽xF8gek
moritz that is weird, if you ask me 16:08
raschipi It should output '�gek'
moritz four bytes to 7 graphemes
timotimo just improving Uni isn't enough to make things round-trippable
teatime moritz: it's 7 codepoints, isn't it?
timotimo that only makes normalization optional. you still can't deal with input that isn't valid utf8 or whatever
that's why utf8-c8 exists
teatime m: say Blob.new(0xf8, 0x67, 0x65, 0x6b).decode('utf8-c8').chars
camelia 4
moritz teatime: "􏿽xF8gek" looks like 7 graphemes to me 16:09
teatime yeah I don't understand how xF8 gets into the string output 16:10
timotimo it's what you get when you encode something to utf8 that was created with utf8-c8
teatime that seems like a bug
timotimo no
it is the intention
teatime well it's invalid utf8. ok fair enough. 16:11
raschipi Well, it is documented at least: docs.perl6.org/language/unicode#UTF8-C8
teatime it's not like there's anything righter it could do 16:11
timotimo it could just output the binary garbage again, so that the next thing in the chain has to deal with it :P
timotimo users love it when their terminal suddenly shows only drawings and symbols instead of text 16:12
teatime I guess that's what would happen exactly if output encoding is utf8-c8, but since it's utf8 it doesn't output invalid utf8
raschipi If that's what they told the computer to do, that's what it should do.
timotimo yeah, then they just have to use utf8-c8 on the way out
teatime I'm still not seeing the problem, or at least the problem that could be hidden from the user (programmer).
(by which I mean I guess I missed the point, not that I think you don't have one) 16:13
timotimo m: say (Blob.new(0xf8).decode('utf8-c8') x 3).encode('utf8-c8')
camelia Blob[uint8]:0x<f8 f8 f8>
timotimo you can work properly with the strings it creates
complaining that it displays Xxf8 is a bit like complaining that .perl gives you \r where you would have expected the literal \r to be output to the console 16:14
similarly if you use that as the basis, you can end up splitting bytes in half. that's why Xxf8 is one grapheme. you can't accidentally grab only the first two codepoints 16:15
timotimo does that sound sensible to you? 16:16
raschipi How can I send it down the standard output? Because I want to mess my terminal on purpose
The original bytes
timotimo many ways, for example $*OUT.write($the-weird-string.encode('utf8-c8')) 16:17
m: $*OUT.encoding = 'utf8-c8'; my $weirdstuff = Buf.new(0xf8).decode('utf8-c8'); $*OUT.write($weirdstuff)
camelia Cannot modify an immutable Str (utf8)
in block <unit> at <tmp> line 1
timotimo ah, i feared setting encoding afterwards isn't possible
m: my $raw-out = open('/dev/stdout', 'utf8-c8'); my $weirdstuff = Buf.new(0xf8).decode('utf8-c8'); $raw-out.say($weirdstuff) 16:18
camelia open is disallowed in restricted setting
in sub restricted at src/RESTRICTED.setting line 1
in sub open at src/RESTRICTED.setting line 9
in block <unit> at <tmp> line 1
timotimo c: HEAD my $raw-out = open('/dev/stdout', 'utf8-c8'); my $weirdstuff = Buf.new(0xf8).decode('utf8-c8'); $raw-out.say($weirdstuff) 16:18
committable6 timotimo, ¦HEAD(50324bb): «Too many positionals passed; expected 1 argument but got 2␤ in block <unit> at /tmp/ZuQ_7h2ewx line 1␤ «exit code = 1»»
timotimo c: HEAD my $raw-out = open('/dev/stdout', :encoding('utf8-c8')); my $weirdstuff = Buf.new(0xf8).decode('utf8-c8'); $raw-out.say($weirdstuff) 16:19
committable6 timotimo, gist.github.com/eec058d4876f950729...6cebab5cb9
raschipi Thanks timotimo.
timotimo you'll also need to pass :w to the open call 16:20
wander Is there some way to use QAST in perl6? not for a concrete aim, just curious 16:22
timotimo yup! 16:23
looking for an example 16:24
timotimo hm, i thought i could use zoffix' irc bot as an example 16:24
m: use QAST:from<NQP>; say QAST::SVal.new(:value<hi>).dump 16:25
camelia - QAST::SVal(hi)
wander thank you~ I tried 'use QAST;' but fail XD 16:27
Geth doc: 920c6cb8ff | (Will "Coke" Coleda)++ | doc/Type/Any.pod6
Update signature to match that of the list variant.

Closes #1604
synopsebot Link: doc.perl6.org/type/Any
timotimo qast: ▸Op: :op<say>, ▸SVal: :value("Have fun!") 16:32
SourceBaby timotimo, OUTPUT: «Have fun!␤»
timotimo wander: zoffix built this bot with a little DSL for qast compilation and evaluation
SourceBaby: source
SourceBaby timotimo, See: github.com/zoffixznet/perl6-sourceable
wander got it 16:33
timotimo github.com/zoffixznet/perl6-source...ry.pm6#L49 - code starts here
Zoffix raschipi: the arg is :enc not :encoding tho 17:23
(consistently inconsistent)
m: $*OUT.encoding('utf8-c8'); my $weirdstuff = Buf.new(0xf8).decode('utf8-c8'); $*OUT.write($weirdstuff) 17:24
camelia Type check failed in binding to parameter '$buf'; expected Blob but got Str ("\xF9")
in block <unit> at <tmp> line 1
Zoffix m: $*OUT.encoding('utf8-c8'); my $weirdstuff = Buf.new(0xf8); $*OUT.write($weirdstuff)
camelia ( no output )
Zoffix Changing encoding after write is defined and works. It's just Yet Another Inconsistency that it takes it as an arg instead of being asigned to 17:25
Zoffix open('/dev/stdout') can be written as open(IO::Special.new: "<STDOUT>").say: "meow" 17:26
Zoffix or, in 6.c, as just open '-' 17:27
timotimo OK
timotimo i don't do very much I/O it seems :) 17:28
Zoffix :) 17:32
timotimo i mostly have ARGFILES do stuff for me 17:34
moritz something funny for the German-speaking 6ers: pbs.twimg.com/media/DM1GQCmXcAEYnCi.jpg 17:38
timotimo :D 17:39
Zoffix What does that word really mean?
ilmari now that'll give you a glowing clean
Zoffix same translation into Russian 17:40
moritz Zoffix: it's some kind of a hard soap 17:41
Zoffix heh
moritz curd soap, some other dictionaries say
no idea how accurate that is, but likely better than nuclear :-)
Zoffix :) 17:42
stmuk I saw Hauptversionsnummernerhöhungsangst: The German word for fear of increasing the major version number 18:12
recently
perlpilot Is there a corresponding geringerversionsnummernerhöhungsangst? 18:15
geekosaur what's the one for being afraid that the version number was increased by someone else? >.> 18:19
lizmat
.oO( Datenfernubertragungsanlage )
18:21
moritz geekosaur: that's called "Erfahrung" :-) 18:21
geekosaur *snort*
perlpilot moritz: how do you get from there to Weisheit? 18:23
moritz perlpilot: how am I supposed to know? :-) 18:24
perlpilot :-)
lizmat more importantly: *why* do you want to know :-)
perlpilot that's okay ... I'll just google it ;) 18:25
Geth doc: 4ec20e23db | (Elizabeth Mattijsen)++ | doc/Type/Iterable.pod6
hyper/race are no longer experimental

  - but keep the link for now, until the documentation has migrated here
18:55
synopsebot Link: doc.perl6.org/type/Iterable
raschipi Here waiting for this last change in the docs from lizmat to build so I can send the link to people... 19:09
lizmat raschipi: technically, we should probably wait until after the release 19:11
lizmat not everybody is working with HEAD :-) 19:12
raschipi well, just need to know the audience
raschipi Done, built. 19:42
Geth modules.perl6.org: PunKeel++ created pull request #90:
Use Travis' repositories API instead of the Builds API
20:41
bazzaar \o perl6 21:08
hi, was just reading gfldex's new post 'gfldex.wordpress.com/2017/10/22/th...me-time/', and spotted some minor typos 21:10
gfldex bazzaar: that's why I put it there before I put it on Rosettacode 21:11
bazzaar don't want to leave a comment just to point out their correction, so posting them here ( hope that's ok) 21:12
- pipe.Supply block ... line with contains('Rosetta .. has been clipped at 80 chars
- Proc::Async.new arguments .... 'find*HOME... missing a closing quote
- stdout.lines.tap block .... line with slurp.contains .... ends with }; ... should this be '); 21:13
gfldex: thanks for this informative post (and others too), it's much appreciated. 21:14
gfldex bazzaar: I can't see those mistakes. 21:16
bazzaar gfldex: that's strange, I'm using Firefox on OpenSuse Leap 42.3, KDE destop 21:18
gfldex: I cut and pasted the individual code sections into a single file and ran it, got error messages at those 3 spots. 21:20
gfldex bazzaar: could you check gist.github.com/4e734902dcbabe3ff1...ef1676a579 please? 21:21
bazzaar: sadly wordpress and code don't mix that well 21:22
bazzaar gfldex: that code runs without error (I didn't doubt that it would :), it just seems to be the blog where it gets mangled. I don't know enough to suggest how it can be fixed 21:30
geekosaur as gfldex said, wordpress and code samples don't mix 21:31
zostay Anyone have a suggestion how I could do some generic argument processing for .new? I've boiled the problem with what I'm trying to do down to the following snippet. 21:34
m: my %in = a => 1, b => <x y z>; class Z { has Int $.a; has Str @.b }; my %pin = do for Z.^attributes { my $v = %in{ .name.substr(2) }; .name.substr(2) => $v }; Z.new(|%pin);
camelia Type check failed in assignment to @!b; expected Str but got List ($("x", "y", "z"))
in submethod BUILDALL at <tmp> line 1
in block <unit> at <tmp> line 1
zostay I just can't figure out how to get the %pin assignment to do what I want it to. 21:35
lizmat and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2017/10/23/...ds-racing/ 21:37
gfldex that's the only advantage of wordpress 21:38
I get a 5 seconds warning on an incomming weekly. :)
lizmat hehe :-) 21:39
gfldex++
bazzaar Perl6 Weekly ... a great start to the week! lizmat++ 21:44
Herby_ lizmatt++ 21:53
lizmat++ rather 21:54
lizmat Herbby++
:-)
Herby_ :3
Herby_ Question, which I'll preface by saying I know little about regex and less about grammars 22:01
are grammars useful if you don't know the order of the text you're parsing?
for instance, if I have a string that could have: name date location language 22:02
but those variables could be in any order, and can change string to string
the order can change string to string 22:03
ugexe does [name | date | location | language] ** 5 suffice? 22:05
geekosaur record = field+ #`{ plus code to make sure the required ones are present} ; field = namefield | datefield | ...
very loosely
Herby_ hmm 22:06
ugexe er ** 0..4 22:07
Geth modules.perl6.org: 93d02d138a | PunKeel++ | lib/ModulesPerl6/DbBuilder/Dist/PostProcessor/p20TravisCI.pm
Use Travis' repositories API instead of the Builds API

Loading should be faster (smaller page), and the build endpoints includes PRs from what I can tell. Related issue: #51
22:13
modules.perl6.org: 00d721fc83 | (Zoffix Znet)++ (committed using GitHub Web editor) | lib/ModulesPerl6/DbBuilder/Dist/PostProcessor/p20TravisCI.pm
Merge pull request #90 from PunKeel/pk-travis-api

Use Travis' repositories API instead of the Builds API
modules.perl6.org: 330a881f0c | (Zoffix Znet)++ (committed using GitHub Web editor) | use-me-for-commit-triggers
[REBUILD] it
22:14
El_Che thx lizmat for th weekly! 22:19
timotimo "Easy things should be hard, hard things should be possible." i've got the feeling this might have been typo'd 22:27
geekosaur or thinked 22:28
thinkoed
stanrifkin Is there a online perl website to test code directly in the browser? 22:52
gfldex glot.io
stanrifkin I didn't know that. Thank you. 22:53
Herby__ didnt know that either 22:54
learn something new every day!
Herby__ m: say "foobar" ~~ /foo <?before bar>/; 22:59
camelia 「foo」
bazzaar \o perl6 23:13
Herby__ o/ 23:14
bazzaar Hi, I'm wondering if anyone sees the value of showing 'coding' tags on modules.perl6.org, in addition to (and seperate from) the 'utilisation/purpose' tags currently on the page 23:17
bazzaar coding tags could be automatically populated, and so wouldn't need input from the module authors 23:21
they could be based on the occurence of a limited number of keywords in the module code, which could be further reduced to a bag of code subjects (tags) 23:24
so if I wanted to look for modules that employ grammars, or action objects, or asynchronous code, or given blocks, or *, then I could 23:27
potentially the code subjects (tags) could be further expanded to detail the occurrence of their component list of keywords 23:29
ugexe the tags (code) doesn't mean anything until it has been parsed/ran 23:32
otherwise there is greppable6, our irc version of grep.metacpan.org, if you just want to grep source code 23:33
bazzaar I quess I'm just looking at this from a learning perl6 perspective, I might want to find different ways of writing action objects code, for example 23:37
It might be nice to be able to do that by using a tag interface to point me at the relevant modules 23:39
raschipi another online place to run perl6 is to message camelia here in this channel 23:40
geekosaur or in /query or /msg 23:41
raschipi yes, that's what I meant, /msg for message 23:42
bazzaar the list of code subjects (primary tags), and component keywords (secondary tags upon which the tagging is based) needn't be large or too complicated
geekosaur I suspect it's more likely to happen if someone contributes code... 23:44
ugexe since you can't parse perl6 code without running it i'm not sure a simple tag can convey much significance 23:45
bazzaar I realise that I'm just asking a question, and that doesn't necessarily move things along, sorry for that 23:48
bazzaar maybe full parsing isn't necessary, just the occurrence? But yes a full parse solution would undoubtedly provide more utility if needed. 23:52
ugexe well for instance you want to find other grammars. but i doubt you're interested in `my $grammar = ` and rather `grammar ...` 23:55
and consider how many ways you can write each of those 23:56
i imagine something ok could be done but it'd probably be pretty gnarly 23:57