»ö« 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.
Xliff "Configuring and building MoarVM ... 00:06
udobrew/moar-nom/install --make-install"
Well THAT didn't work.
At any rate, if I try and use "--moar-option='--no-optimize'" the outer Configure.pl will still throw in --optimize on the call to MoarVM's Configure.pl 00:07
Which then breaks everything.
timotimo i don't think --no-optimize exists 00:09
but --optimize=0 definitely does
why are you still using --gen-moar?
i think it'd really be easier to just cd into moar's code and make sure the right --prefix gets set
then you should be golden
Xliff timotimo, Well, everytime I've tried doing it from MoarVM, the symbols get erased. 00:10
Xliff So I'm trying to do a complete top-down build to see what I get. 00:10
Call me a masochist. I will probably end up doing exactly as you suggest. 00:11
But I'm.....stubborn.
timotimo you can immediately see if your symbols live after "make install" under moar finishes
with "file", that'll tell you if it's been stripped or not 00:12
oh, btw
there's a tiny bit of C code in rakudo, too
if you end up in there, you'll only see symbols if you made sure that also gets compiled with --debug=something
it'll likely take its CFLAGS and such from moar's config, though
Xliff We'll see. 00:13
And it went fine with "--optimize=0", but right after that the "--optimize" flag gets specified again.
This is using MoarVM's Configure.pl from the top level Configure.pl 00:14
I may just try to rebuild moar after this.
dalek c: ea8c2e4 | (Tom Browder)++ | doc/Language/unicode_texas.pod:
tidy table inputs by removing extra white space and aligning column pipes separators
c: ee1fe48 | (Tom Browder)++ | doc/Language/unicode_texas.pod:
Merge pull request #466 from tbrowder/master

tidy table inputs by removing extra white space and aligning column p…
timotimo clearly --moar-options doesn't have a clue about --optimize 00:16
patches welcome
like "we really need moar to be compiled with optimization, so we add it. good idea, eh?"
hah, yeah 00:17
check tools/lib/NQP/Configure.pm
line 320 is literally
push @opts, "--optimize";
also, nqp has that same file, but both have some differences 00:19
Xliff Yeah.
Also:
gcc -L/home/cbwood/.rakudobrew/moar-nom/install/lib -shared -fPIC -O3 -DNDEBUG -g3 --optimize=0 -Wl,-rpath,/home/cbwood/.rakudobrew/moar-nom/install/lib -Wl,-rpath,/home/cbwood/.rakudobrew/moar-nom/install/share/perl6/site/lib -O3 -DNDEBUG -lm -lpthread -lrt -ldl -o dynext/libperl6_ops_moar.so dynext/perl6_ops.o dynext/container.o -lmoar
timotimo that makes zero sense
Xliff Note that the "--optimize=0" somehow gets passed to CFLAGS and yet the -O3 remains.
timotimo is that when you have two optimize flags passed to Configure? 00:20
skink Not to interrupt, but are there any docs yet on that new native string type? 00:20
timotimo i wasn't aware of a new native string type 00:21
Xliff timotimo, that resulted from "perl ./Configure.pl --gen-moar --backend=moar --moar-option='--debug=3 --optimize=0'"
timotimo oh, i know what's going on 00:21
Xliff So I didn't specify two optimize options.
timotimo see how it's called "--moar-option" and not "--moar-options"? 00:21
dalek ar: 4d70f16 | (Steve Mynott)++ | tools/star/release-guide.pod:
doc how-to-get-rakudo
timotimo you're litterally setting the debug to "3 --optimize=0"
Xliff O_O
timotimo and we're not quoting properly
so it should have become -g"3 --optimize=0" in the CFLAGS
Xliff tries again.
Xliff Er. Nope. 00:22
timotimo --moar-options doesn't exist. you have to pass --moar-option twice
Xliff Configure.pl pukes on "--moar-options"
Ooo. OK.
skink timotimo, Second bullet on the release announcement. 'str' instead of 'Str' 00:23
I can't find many references to it though
MadcapJake Xliff: try FILE.path('/dev/stdout') (perhaps on a VM, 1 isn't stdout's file descriptor)
stmuk_ not sure its worth retrospectively changing announcements 00:24
timotimo skink: you mean native string arrays, then?
skink mhm
Xliff MadcapJake, SURE 00:25
timotimo oh, compiler release, not star release?
timotimo no, must have been Star 00:25
skink: i literally can't find an announcement that has "str" in it 00:26
as in: in its second bullet
skink rakudo.org/2016/04/25/announce-raku...e-2016-04/ 00:26
Some of the new compiler features since the last Rakudo Star release include:
Much improved REPL with multi-line support.
Native string arrays.
timotimo yeah, that's not "'str' instead of 'Str'" :) 00:28
that's also not a "new native string type"
MadcapJake Xliff: that's just how I have the class named to match how it's written in C code :P
skink timotimo, Man I just got home and skimmed that :) 00:29
timotimo :)
Xliff is just going to have to suffer with the "-O3" and hopes he can still find the problem. 00:30
timotimo why? 00:36
i told you how to get around that problem
why do you do this to us :P 00:37
stmuk_ pass the options from rakudobrew ;) (joke) 00:38
timotimo rakudobrew giving people trouble made me look at a carreer in table-flipping 00:39
awwaiid Only the source for rakudo-star-2016.04 is released -- no .msi or .dmg yet eh? 00:47
timotimo FROGGS usually makes the .msi but he seems quite busy at the moment 00:48
awwaiid well I'm psyced and ready to update the purdy "how to get rakudo perl 6" page on rakudo.org :)
stmuk_ awwaiid: I will probably build the .dmg in the next hour or so 00:49
Xliff _IO_new_fdopen (fd=1, mode=0x0) at iofdopen.c:65 00:53
fd_flags = <optimized out> 00:54
o_O
MadcapJake This is nuts: spin.atomicobject.com/2016/04/26/s...pile-time/ 00:55
timotimo whoops 00:59
huh, so it's about type inference? 01:00
MadcapJake yeah i'm guessing that each added field required checking against all other fields' types 01:01
Xliff MadcapJake, FILE.path('/dev/stdout') worked.
MadcapJake Xliff: sweet! 01:03
timotimo on windows, you can allegedly open "CON" 01:10
MadcapJake timotimo: i read that, no windows machine to try it on though 01:13
timotimo mhm 01:19
geekosaur reads back, considers sending apple's devs a copy of ghc >.>
hotel does anyone know where I can set LDFLAGS for moarVM to compile with? 01:27
hotel I was digging around the stuff I think makes it build, but I can't be sure 01:30
timotimo if i have to change LDFLAGS, i usually vi Makefile :\ 01:32
hotel so yeah, I saw that the makefile set LDFLAGS=@ldflags@ and I didn't want to change it for fear of screwing stuff up? 01:33
timotimo may i ask what you're up to?
hotel still trying to compile perl6 on WSL 01:34
the ubuntu on windows
timotimo ah! 01:34
hotel it won't compile on the stack 01:35
so I'm trying the ldflags hack
Xliff What is the ldflags hack? 01:37
hotel from this site: wiki.gentoo.org/wiki/Hardened/GNU_...quickstart which says to add these: -Wl,-z,noexecstack 01:38
I found the site on a perl6 listserv talking about building on selinux 01:39
Xliff Try adding to the ldmiscflags key on line 274 of moar/nqp/MoarVM/build/setup.pm 01:41
This is NOT recommended, but since I've been digging in the build system tonight. I may as well pass on some of the stuff I've learned. 01:42
skink MadcapJake, reddit comments on that said problem can be resolved if you just add a type annotation
MadcapJake skink: I noticed that in the article comments too :P 01:43
skink Oh, right 01:44
hotel thanks for the help Xliff :)
skink needs to stop simply skimming
hotel I wouldn't be doing this if I wasn't balls deep in trying to game the WSL system lol 01:45
MadcapJake Here's another interesting article: www.evanmiller.org/elixir-ram-and-t...-doom.html
The author makes it sound like "this is so amazing" but really it sounds completely ridiculous, insert an empty string and performance more than doubles! WUT?!
dalek c: ecc765f | (Tom Browder)++ | doc/Language/unicode_texas.pod:
remove non-functional pod format codes
c: 47fd2ac | (Tom Browder)++ | doc/Language/unicode_texas.pod:
Merge pull request #467 from tbrowder/master

remove non-functional pod format codes
hotel curses, it didn't work 01:52
ZoffixWin m: gist.github.com/zoffixznet/cff6ca5...1c32d0d778 01:54
camelia rakudo-moar ce5dc0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ckVwcQ05gb␤Unsupported use of . to concatenate strings; in Perl 6 please use ~␤at /tmp/ckVwcQ05gb:2␤------> 3 TOP { [<bold> | <italic> | . 7⏏5]+ }␤»
ZoffixWin Weird, no? Can't seem to reduce it to a smaller test case :/
Ahh.. I've missed "token" off TOP ~_~ 01:55
m: grammar { TOP { . } }
camelia rakudo-moar ce5dc0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/jikmv2xskv␤Unsupported use of . to concatenate strings; in Perl 6 please use ~␤at /tmp/jikmv2xskv:1␤------> 3grammar { TOP { . 7⏏5} }␤»
ZoffixWin Reported as LTA error: rt.perl.org/Ticket/Display.html?id=128003 01:57
hotel interesting 02:10
gcc: error: unrecognized command line option ‘-Wl’
timotimo www.drmemory.org/ - this drstrace thing might be interesting to use for figuring out why rakudo can't install with the "invalid file descriptor" error or what that was 02:12
hotel I haven't gotten that since then 02:13
in other words, since I started trying to build from the tarball instead of from github
geekosaur something is inappropriately splitting on commas?
hotel oh that could be it
I changed it so LDFLAGS=@ldflags@ -Wl -z noexecstack without knowing how to properly join things in make 02:14
hotel is still unsure tbh 02:18
geekosaur it's not make, just a quirk of the -W syntax that it requires commas 02:21
hotel oh
ooh
geekosaur -Wtool,option[,option...]
hotel generally likes to stay in a higher layer 02:23
hotel omg 02:27
it's working!!1!
Xliff hotel++ 02:40
hotel yo 02:41
it's running through tests now :D
Xliff Right on. 02:46
If you could write up what you did to get things working on the WSL, that would be great. 02:47
Xliff Considering that I may want to do the same if I go to Windows 10. 02:48
hotel yeah I will
where should I post it, do you think? 02:49
Herby_ o/ #perl6 02:50
hotel \o 02:51
hotel I guess I'll post on reddit after I confirm what exactly made it work 02:57
hotel is there a way to terminate a test and move to the next one? 03:26
dalek ar: 3379969 | (Steve Mynott)++ | ports/darwin_dmg/package_darwin_dmg.pl:
lowercase final filename to look like the windows etc ones
03:38
stmuk_ pl6anet.org/drop/rakudo-star-2016-04.dmg
can a mac user have a quick look at that please?
raydiak m: my %foo; %foo<bar>[*-0] = 42; say %foo.perl; 06:43
camelia rakudo-moar ce5dc0: OUTPUT«{:bar($[Any, 42])}␤»
raydiak ^ where did the Any come from?
raydiak m: my @foo; @foo[*-0] = 42; say @foo.perl; 06:43
camelia rakudo-moar ce5dc0: OUTPUT«[42]␤»
raydiak m: my %foo; %foo<bar>.push: 42; say %foo.perl; 06:45
camelia rakudo-moar ce5dc0: OUTPUT«{:bar($[42])}␤»
masak raydiak: looks bugly to me
raydiak thanks masak, I'll file a report then 06:46
ufobat good morning :) 06:47
raydiak good evening :)
BooK so following some hacking with lizmat I wrote a stress-test for Version.pm 08:36
what's the procedure to add that to roast? just commit on master?
BooK I wrote it with eq, lt, ge, etc, and then rewrite it with ==, <, >=, etc after lizmat's change from Str to Num semantics (which makes a lot of sense) 08:37
I wouldn't mind some code review to learn more idiomatic ways to write stuff, as this is my most substantial perl6 program ever :-) 08:40
RabidGravy boom 08:50
masak m: say "boom".flip 08:59
camelia rakudo-moar ce5dc0: OUTPUT«moob␤»
masak .oO( wooq ) 09:00
m: sub flip($s) { "wooq" }; say "boom".&flip
camelia rakudo-moar ce5dc0: OUTPUT«wooq␤»
masak is in a silly mood, apparently 09:01
DrForr m: say "TVA".flip
camelia rakudo-moar ce5dc0: OUTPUT«AVT␤»
DrForr And I was hoping for tableflip here :)... Maybe I should write one. 09:02
masak please do. 09:04
BooK github.com/book/roast/commit/b01dc...de92452386 # I'd be interested in a code review, before submitting a PR for roast 09:05
or should I push directly on master? 09:06
RabidGravy BooK, looks good 09:08
masak BooK: looks good
BooK there's no better way to write: @same.map({$_²}).sum ? 09:10
BooK m: my @a = <1 2>; say @a.map(*²).sum 09:10
camelia rakudo-moar ce5dc0: OUTPUT«Cannot call Numeric(Whatever: ); none of these signatures match:␤ (Mu:U \v: *%_)␤ in block <unit> at /tmp/3lZr02RoS1 line 1␤␤»
masak m: my @a = <1 2>; say @a>>².sum 09:11
camelia rakudo-moar ce5dc0: OUTPUT«5␤»
masak m: my @a = <1 2>; say @a»².sum 09:11
camelia rakudo-moar ce5dc0: OUTPUT«5␤»
BooK ah cool
m: @a=( < 1 2 >, < 3 4 > ); say @a»+»².sum 09:13
camelia rakudo-moar ce5dc0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/XS9czfJXU6␤Variable '@a' is not declared␤at /tmp/XS9czfJXU6:1␤------> 3<BOL>7⏏5@a=( < 1 2 >, < 3 4 > ); say @a»+»².sum␤»
BooK m: my @a=( < 1 2 >, < 3 4 > ); say @a»+»².sum
camelia rakudo-moar ce5dc0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/lCpe3JeeNZ␤Malformed postfix␤at /tmp/lCpe3JeeNZ:1␤------> 3my @a=( < 1 2 >, < 3 4 > ); say @a»7⏏5+»².sum␤ expecting any of:␤ postfix␤»
BooK sum of the squares of the number of elements 09:14
masak first off, don't need those parens
DrForr Hrm, I had code somewhere that extrapolated series using divided differences... yet something else to dig up :) 09:15
masak m: my @a = <1 2>, <3 4>; say @a».elems»².sum
camelia rakudo-moar ce5dc0: OUTPUT«8␤»
masak BooK: ^
masak m: my @a = <1 2>, <3 4>; say (+«@a)»².sum 09:15
camelia rakudo-moar ce5dc0: OUTPUT«4␤»
BooK masak: yep, came to the same conclusion 09:16
masak hurm :)
BooK ».elem»².sum I mean
masak m: my @a = <1 2>, <3 4>; say +«@a 09:17
camelia rakudo-moar ce5dc0: OUTPUT«[(1 2) (3 4)]␤»
masak ah. 09:18
curse you, nodal!
:)
BooK what's nodal?
masak my nemesis, clearly
arnsholt From memory, it's a sub trait that controls whether hypering that sub over a list will recurse down the list or simply apply to the first-level list items 09:19
IIRC is nodal means that it will recurse
masak arnsholt++ # what arnsholt said
BooK so here, it's + that's nodal ? 09:20
arnsholt And it seems that what masak wanted was a list of the lengths of the sublists, rather than a numified list of the same topology as the input
Yeah, operators being somewhat special subs
profan &win 16
wops
profan scurries away
arnsholt Hello, fellow irrsi user! =D 09:21
profan hello :D
masak :D
masak points the way to window 16
it's... over there -->
profan follows the sigils 09:22
AlexDaniel twitter.com/stelian/status/720913927639560194 rotary dial is probably my favorite 11:10
jnthn: in case of 4 ~~ (4,5,6,7), is it possible to give a warning? (instead of doing nothing which is LTA) 11:11
jnthn unlikely
AlexDaniel crap! 11:12
jnthn m: say 1234 ~~ m:g/\d/
camelia rakudo-moar f7613f: OUTPUT«(「1」 「2」 「3」 「4」)␤»
AlexDaniel jnthn: or should I open a [LTA] ticket anyway just in case somebody figures out how to make it throw a warning? 11:16
jnthn I'd prefer not to have open-ended tickets with no clear resolution. 11:16
AlexDaniel the problem is that not only it is very natural for somebody to try that, but it's also how it *kinda* works in Perl 5
jnthn: ok then, thanks 11:17
moritz ... except that smart-matching is deprecated in p5 11:17
AlexDaniel moritz: yeah, that's why “kinda” :)
AlexDaniel moritz: although I'm not sure if it is actually deprecated. v5.22 still says that it is “experimental” 11:18
moritz: and most recent docs say “The smartmatch operator is experimental and its behavior is subject to change” 11:19
which does not sound like “deprecated” 11:20
Xliff my @a = ^5; say @a» 11:27
m: my @a = ^5; say @a» 11:28
camelia rakudo-moar f7613f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/XPKMz_LtdL␤Malformed postfix␤at /tmp/XPKMz_LtdL:1␤------> 3my @a = ^5; say @a»7⏏5<EOL>␤ expecting any of:␤ postfix␤»
Xliff m: my @a = ^5; say @a»²
camelia rakudo-moar f7613f: OUTPUT«[0 1 4 9 16]␤»
Xliff m: my @a = ^5; say @a»².sum
camelia rakudo-moar f7613f: OUTPUT«30␤»
Xliff Neat 11:29
DrForr "We tried for years to attach some kind of cosmic significance to that..." 11:31
moritz AlexDaniel: you're right; I just tend to avoid code that throws warnings, so I treat "experimental" and "deprecated" pretty much the same 11:33
RabidGravy though there has been an increasing 'experimental' -> 'deprecated' -> removed trajectory over the releases since ~ 5.18.0 11:34
_nadim Good afternoon! 11:37
masak _nadim: hi!
_nadim is there a nice Perl6ish way to do something like thisnopaste.linux-dev.org/?1093534
masak .oO( unrecognized protocol thishttp )
timotimo that's like categorize or classify 11:38
masak was gonna say
_nadim masak: hello fellow frozen countryman
masak _nadim: indeed. this weather, huh? want my money back. 11:39
_nadim masak: I am going awy to Africa, I didn't sign up for this ;)
jnthn Aww, I'm missing cool weather? 11:40
_nadim search for categorize gave Baggy::categorize-list which is not documented
jast 4°C here right now
_nadim Brrrr 11:40
We need to plan aPerl6 conference in Africa 11:41
bazzaar \o
RabidGravy Libya is cheap and plenty of free accomodation right now 11:42
_nadim You obviously deserve to be send there! 11:43
bazzaar has anyone found Pg connect problem with DBIish in Rakudo Star 2016-04 ?
timotimo i haven't tried it yet; what's the symptom? error message? 11:44
bazzaar getting a 'This type cannot unbox to a native string' error, in script that worked with R* 2016-01
timotimo it doesn't give a backtrace, does it? 11:45
can you try running it with "perl6 --ll-exception blah.p6"?
RabidGravy DBIish had a high velocity over the last few months
bazzaar got the backtrace, not sure how to share it 11:47
timotimo there are many nice "no-paste" services on the 'net that you can use for free 11:49
nopaste.linux-dev.org/ - for example
ilmari fpaste.scsys.co.uk/perl6 11:51
ilmari then shadowpaste will automatically post the link 11:51
timotimo cool
_4d47 is there any differences between returns and --> apart style ? 11:52
timotimo _4d47: you can put "-->" into anonymous blocks and such, or signature literals, where "returns" isn't applicable
bazzaar timotimo: DBIish connect error backtrace - nopaste.linux-dev.org/?1093550 11:54
_4d47 ok thx :) 11:55
jdv79 is p6 faster than p5 yet? 11:56
bazzaar ilmari: thanks also for that link
[Coke] jdv79: nope
jast faster to write in, once you've gotten a bit of practice in 11:57
timotimo jdv79: it can be for very small - engineered - test cases
bazzaar: can you also share a bit of your code? 11:58
i'd have to install a postgres server somewhere to test stuff ... 11:59
RabidGravy has anyone got a raspberry pi 3 and in a position to share the contents of the /proc/cpuinfo ? 12:01
jdv79 is it normal to sleet and then be sunny in < an hour round brussels?
happened yday 2 times. i dont think ive ever seen that round nyc. 12:02
RabidGravy it was doing that in London yesterday
RabidGravy quite pleasant for ten minutes then awful sleety stuff and then pleasant again 12:02
not quite as bad today 12:03
jdv79 very confusing
RabidGravy but not sufficiently pleasant to make me want to go outside
bazzaar timotimo: DBIish connect error backtrace - example code - nopaste.linux-dev.org/?1093551 12:06
moritz DBDish::Pg::Native):145 looks to be the actual source of the error 12:12
bazzaar: try specifying the port as a string
bazzaar: :port('5432') 12:13
timotimo ah, interesting 12:16
moritz that's a bug in DBIish 12:17
tbrowder good morning all: I've noticed the Perl 6 world uses the word 'codepoint' in most places, but many other places on the Net (including Wikipedia and Microsoft) show the word as 'code point'. Any objection to correcting that in Perl 6 (as well as maybe adding it to the doc/STYLEGUIDE.md)? 12:18
timotimo oh, interesting
bazzaar moritz: specifying the port as a string, that works :) 12:20
AlexDaniel tbrowder: I think that codepoint is fine
moritz bazzaar: can you please open a bug at github.com/perl6/DBIish/issues/ for that? 12:21
AlexDaniel tbrowder: it is commonly used, and somebody even bothered to add it to wiktionary as an alternative spelling for “code point”
DrForr unicode.org/glossary/ # It's spelled 'code point' in the Unicode glossary. 12:22
tbrowder AlexDaniel: but our docs are not consistent, so we should pick one or the other and specify it IMHO
moritz then we should prefer the Unicode consortium's writing
bazzaar moritz: yes, I'll give it a go ... also for interest, perl6 reported 'DBDish::Pg::Connection.disconnect is DEPRECATED, please use .dispose' 12:23
AlexDaniel looks at www.google.ee/#q=%22codepoint%22+s...nicode.org 12:24
masak I'd say "codepoint" is one of those words (like "email") where something that used to be two parts is being streamlined into being just one part 12:25
AlexDaniel DrForr: 25600 results, eh… not all of them are relevant but still
moritz AlexDaniel: curious, on google.com I only get ~6k results 12:26
and 3k for "code point"
AlexDaniel hah!
AlexDaniel 2870 for "code point" here 12:27
moritz: it's really interesting that google is giving different results
and also that it automatically redirects me from .com
DrForr Different datacenters have different shards? 12:28
_nadim what does a proto like "proto method classify-list(|) { * }" force for type of signature?
AlexDaniel DrForr: sure, but it makes me want to do that through Tor next time :) 12:29
tbrowder the fact that the Unicode group uses 'code point' should be the deciding factor, not popularity--our docs should be technically sound and authoritative as much as possible
AlexDaniel tbrowder: I do not agree. Our docs are for people, there's no good enough reason to get it more “technically sound” in this case. Especially when it is such bikeshedding 12:31
RabidGravy it should be consistent foremost 12:32
AlexDaniel “code point” – 54 on perl6.org vs “codepoint” – 392 results 12:34
so I'd say that it is easier to change “code point” to “codepoint”…
RabidGravy :)
DrForr Maybe we should also have a glossary in order to encourage people to use the Perl 6-authorized spelling? :) 12:35
AlexDaniel is it “falsy” or “falsey”? 12:36
tbrowder I agree. Perfect uniformity in language is probably impossible, but one mark of good technical documentation is consistent terminology, and a glossary IMHO is a good thing. 12:37
AlexDaniel ok 12:38
there you go: design.perl6.org/S99.html#codepoint
_nadim DrForr: an excellent idea, in all the bigger project, I've been working in, we had a glosary 12:39
tbrowder ...and that's not bikeshedding.
AlexDaniel _nadim: we have two!
RabidGravy wouldn't that glossary be better in the docs
AlexDaniel on is here doc.perl6.org/language/glossary 12:40
and the other one is S99
one*
RabidGravy: yes. lizmat++ did a great job in moving all important stuff from S99 to docs
RabidGravy: feel free to continue it
AlexDaniel really hopes that we will get rid of S99 one day 12:41
perlpilot AlexDaniel: why? 12:44
AlexDaniel perlpilot: have you ever tried reading S99 from top to bottom? :)
perlpilot nope. But I haven't tried reading a dictionary or a thesaurus from front to back either. 12:45
RabidGravy I'd say that the S99 should be restricted to terms that are actually in the design docs
AlexDaniel heh, well S99 is not that long
perlpilot RabidGravy: why? 12:46
RabidGravy because it's a design doc
it shouldn't be in the business of glossarizing things that are just colloquialisms of the Perl 6 community 12:47
AlexDaniel perlpilot: we should not have two glossaries. Right now some stuff is duplicated, so we should probably start removing that from S99…
RabidGravy unless of course it seeks to mandate a particular use of language
_nadim what's $^a? 12:48
AlexDaniel perlpilot: after doing that it will just leave a bunch of words that are not described, so there would be no point to keep it
RabidGravy (and given the authoritarian streak of some geeks I wouldn't be surprised)
perlpilot AlexDaniel, RabidGravy: Have both you read the first paragraph of S99?
AlexDaniel m: sub foo { return $^a * *a }; say foo 42
camelia rakudo-moar f7613f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/X5GuWKTygY␤Two terms in a row␤at /tmp/X5GuWKTygY:1␤------> 3sub foo { return $^a * *7⏏5a }; say foo 42␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ sta…»
AlexDaniel m: sub foo { return $^a * $a }; say foo 42 12:49
camelia rakudo-moar f7613f: OUTPUT«1764␤»
grondilu Ok, so I was trying "my &f = multi () {}" and rakudo tells me that's not possible. So I tried my &f = proto () {*} and it tells me that's not possible either. Why not?
jnthn grondilu: Because multi candidate lists are associated with the correct proto by name 12:50
llfourn_ grondilu: runtime protos are not really a thing
AlexDaniel perlpilot: no, what's there?
grondilu that's slightly LTA 12:51
perlpilot AlexDaniel: S99:14
synopsebot6 Link: design.perl6.org/S99.html#line_14
perlpilot :-)
[Coke] _nadim: it's a positional so you can use a name for an arg without having to explicitly declare it in the signature.
llfourn_ grondilu: it's NYI I think, in the design docs it says you should be able to push candidates onto a dispatcher which implies to me that runtime proto creation should work. 12:52
[Coke] you'll see $^a and $^b in one-off sort subs, reminiscent of perl5's $a and $b
RabidGravy perlpilot, but that would suggest that really it wants to be in the docs and not the design
it wouldn't need that explanation then
perlpilot RabidGravy: perhaps.
AlexDaniel perlpilot: this was written in 2013 which was before we had proper docs and proper glossary in docs 12:53
perlpilot: also see this github.com/perl6/specs/commit/43de...bc14d4ca5d
_nadim [Coke]: I got that from the example above, thnaks
AlexDaniel which is your commit
_nadim I am trying to wrap my head around Baggy classify-list
grondilu I was building three functions from a common template so I had to do something like my (&f, &g, &h) = map -> &x { sub () { do-something-with-&x } }, &afunc, &anotherone, &yetanotherone. But then I realized that I would lost polymorphism for &f, &g and &h
llfourn_ grondilu: you can do something like my $new_proto = (my proto anon (|) {*}).clone; # But YMV and it might be evil 12:54
RabidGravy y'see I would argue that it should actually be reduced in scope to the first two sentences of the original paragraph, and anything else should go in the docs 12:55
AlexDaniel _nadim: one gotcha is that the order depends on the… uh… codepoint number I guess?
m: sub foo { say $^a; say $^b }; say foo 42, 69
camelia rakudo-moar f7613f: OUTPUT«42␤69␤True␤»
AlexDaniel m: sub foo { say $^b; say $^a }; say foo 42, 69 12:55
camelia rakudo-moar f7613f: OUTPUT«69␤42␤True␤»
AlexDaniel no??
perlpilot AlexDaniel: they are ordered Unicodely 12:56
_nadim seems so
AlexDaniel ah yeah, right
AlexDaniel got confused by his own example
_nadim: in other words, it is probably a bad idea to use readable names 12:57
_nadim lol!
doc.perl6.org/routine/categorize-list would deserve a little work specially explaining the difference with classify and also what a multi level classification/categorization is 12:58
BooK book 12:59
RabidGravy well unless $^aardvark and $^barbarian are natural names for your application
AlexDaniel _nadim: you are right. Please create an issue here: github.com/perl6/doc/issues/new
_nadim I also promised to help with this, been busy and now have a broken computer but maybe next week when I get a new one. 13:00
perlpilot RabidGravy: though, if "aardvark" and "barbarian" are natural names, you might want to use $:aardvark and $:barbarian instead. 13:01
RabidGravy yeah, exactly
perlpilot or, of course, even better would be to actually declare a signature ;)
_nadim AlexDaniel: done 13:02
RabidGravy it's one of those features I could really do without
AlexDaniel _nadim: 🖒👍
_nadim multi method classify-list( %test, *@list ) { self.classify-list( { %test{$^a} }, @list ); } This is the example where $^a made me scratch my head. 13:03
AlexDaniel RabidGravy: I thought that it is one of those features I couldn't really do without until I realized that the order is not what I want it to be 13:04
perlpilot Like all shortcuts in Perl, they are to be used judiciously 13:05
AlexDaniel _nadim: You can also use $_ here, I think
tbrowder I'll leave 'codepoint' vs 'code point' to simmer...bye
timotimo bye tbr:) 13:05
damn
dalek c: b28194f | (Tom Browder)++ | doc/Language/unicode_texas.pod:
define the code point properties in the description
13:06
c: 8aff7f6 | (Tom Browder)++ | doc/Language/unicode_texas.pod:
chg '((' to '('; add hyphen for adjective; add missing property <Lm> and its definition
c: ed99281 | (Tom Browder)++ | doc/Language/unicode_texas.pod:
Merge pull request #468 from tbrowder/master

define the code point properties in the description
bazzaar moritz: DBIish bug reported, github.com/perl6/DBIish/issues/62 - github mangled my text with silly font sizes though, ... shrug 13:07
_nadim AlexDaniel: doesn't make more sense to use $_ vs $^a. I actually wouldn't mind a walk through those two multies. I get 90% of them (or so I believe ;) ) and the rest is "Mhuua WTF?!"
moritz bazzaar: if you indent the text four spaces, github will leave it alone 13:08
AlexDaniel bazzaar: try using ``` ``` around it
which is sometimes a bit easier than indenting the whole text :) 13:09
moritz is used to vim's block editing feature 13:09
timotimo yeah, i love block editing in vim 13:10
grondilu I've found a solution: proto f {*}; proto g {*}; my ($f, $g) = map -> &x {...}, &a, &b; multi f { $f() }; multi g { $g() };
basically storing the result of the map in a hidden storage array.
(or several hidden variables) 13:11
AlexDaniel moritz: do you use something to get vim features in your browser? 13:12
llfourn_ grondilu: it works but it would be nice to be able to just push $f and $g onto the proto
grondilu: I actually made a module that should work in your circumstance which hacks the feature in, github.com/LLFourn/p6-CompUnit-Util#push-multi 13:14
llfourn_ but YMV 13:14
grondilu something like proto f { somefunc({*}) } should work theoretically, shouldn't it?
llfourn_ I think so
moritz AlexDaniel: yes, I use the It's All Text extension 13:15
moritz AlexDaniel: which can open arbitrary editors for text areas 13:15
grondilu however that's not what I want to do since the other multi I'm planning to make will not use somefunc.
moritz AlexDaniel: and I use that with gvim
_nadim Who maintains doc.perl6.org/? 13:18
takadonet morning all
_nadim morning! 13:19
bazzaar moritz: that's done the trick 13:20
moritz _nadim: all of us do 13:20
I hope :-)
_nadim :) I didn't mean the content but the page itself 13:21
moritz that's generated from the content
I maintain the webserver behind it
_nadim anyway, it would be nice if the focus was on the search field by default so one can type directly when the page is displayed
moritz _nadim: we had that before, and didn't like it
_nadim so we avoid what I call the IMDB syndrom 13:22
bazzaar AlexDaniel: thanks also for the tip, .. I did try it but somehow I mustn't have done it correctly, next bug I'll try again :)
moritz people want to use the space bar to scroll through the page, for example
_nadim then IMDB syndrom it is (trillions of users cursing it)
moritz or use / to introduce find-as-you-type
AlexDaniel bazzaar: I've edited it already, by the way
dalek osystem: 626f89a | RabidGravy++ | META.list:
Rename META for Linux::Cpuinfo
13:24
_nadim moritz: I think it would be fine with / to search but people that want to use space to scroll are blocking the people who want to use ALL the other keys. and scrolling works with page-down even idf the search is on. But this is but just a small detail.
moritz _nadim: as I said, it was like that before, and the feedback was mostly negative 13:25
bazzaar AlexDaniel: oops didn't realise, maybe my edits over-wrote, anyway it looks as I'd intended it too :)
_nadim moritz: as I said, itis not important but I can't help but find that silly and illogical, there is nothing to scroll! its a one page page. 13:26
moritz _nadim: depends on your screen size. And the same widget is used all over the site 13:27
even on big pages
RabidGravy I might be procrastinating finishing the documentation for a module but in the meantime all the other modules get a spring clean :) 13:30
_nadim Of course but I beg to disagree, I have a small resolution and it is still one page. Of course the people complaining may have 400% zoom due to their old age. I am slowly getting there ;) 13:31
Mmm, 'file_name'.IO.lines works but 'file_name'.IO::Path.e doesn't, that's not very consistent. Or am I doing something wrong? 13:34
moritz _nadim: yes, you are.
_nadim: you are trying to call a method from a totally different class on a string
_nadim I am happy that I am.
moritz _nadim: fwiw on my Galaxy S6, the front page doesn't fit on a single page, and for a smart phone it has a rather big screen 13:36
_nadim Arff, I looked in the doc and missed method IO
it's be nice if IO::xxx added method IO::xxx to STr
moritz: Its OK, i'll double tab to get in the search widget 13:37
moritz what's wrong with calling .IO.xxx?
less key strokes, less confusion
_nadim IO::xxx like if was the constructor for IO:xxx 13:38
_nadim IO::xxx class 13:38
_nadim Eg: IO::Path.new("/etc/passwd").e vs "/etc/passwd".IO::Path.e 13:39
RabidGravy hahaha 13:40
moritz ... and a pony 13:41
_nadim '...'.IO.lines was the pony, this would be a unicorn 13:42
RabidGravy of course the plan in Linux::Cpuinfo's "this machine" test is totally bogus 13:43
boo
bazzaar DBIish seems to have slowed considerably for fetchall_arrayref(), 6000 records takes a good deal longer than it did in R* 2016-01 [I think] 13:48
grondilu m: role A { multi method new { class :: does A {}.new } } 13:57
camelia rakudo-moar f7613f: OUTPUT«Use of uninitialized value of type Any in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in any try_select at gen/moar/m-Metamodel.nqp line 2606␤5===SORRY!5=== Error while compiling /tmp/7lyf3v6Uah…»
grondilu m: role A {...}; role A { multi method new { class :: does A {}.new } }
camelia rakudo-moar f7613f: OUTPUT«Use of uninitialized value of type Any in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in any try_select at gen/moar/m-Metamodel.nqp line 2606␤5===SORRY!5=== Error while compiling /tmp/QM69nrntvU…»
Woodi hi everyone :)
grondilu ^looks like a bug to me
or at least an unhelpful error message. 13:58
I had a role used as an interface (that is, with a virtual method). And I wanted to provide a default implementation. 13:59
role A { method foo {...}; multi method new { class :: does A { has $.foo }.new }
Woodi stmuk++ # R*2016.04; but installing all 32 module takes ages... It would be nice if rakudo's make install install just rakudo; modules can be done with modules-install 14:00
arnsholt grondilu: That code looks very weird. What exactly did you want a default implementation of? 14:01
masak Woodi: if you only want the compiler, why are you downloading R* ?
Woodi timotimo: do System Shock 2 ! it is worth any money :)
masak: hmm :)
grondilu arnsholt: of the the A role.
masak Woodi: you're like the people who write travel reviews about the beach, giving it a 2 out of 5, saying "too much sand"
timotimo Woodi: i more-or-less promised someone to do co-op, but we never got around to it 14:02
Woodi masak: I think I want package with modules. but probably, for some reason, I belive in some betternes&magic from R* :) but also I want more flexibility from 'modules-install' target... 14:03
arnsholt grondilu: That sounds like a weird way to do it. If you want to provide a default implementation of the role, do that as a separate class I think
grondilu arnsholt: that's what I did with class :: does A {} :P, but maybe you meant in a different compunit? 14:04
Woodi timotimo: single player is perfect there. eg. after that you will have small, cute monkeys "voice" burned all over your brain :) 14:05
timotimo hah
arnsholt grondilu: Well, that'll make new return an instance of a *different* class than the class you're composing into (since you're creating a new anonynous one)
So just "role R { ... }; class DefaultR { ... }" 14:06
grondilu that would work but it will make a mess in terms of names and compunits. 14:07
Woodi timotimo: 2. any explanation on mechanism why german words are better ? :) I hear it is true from few sources :)
timotimo nope, just misguided arrogance
Woodi heh :) I think at least some german experience in some domains work like this 14:09
timotimo german was lingua franca for something for some time. was it maths? philosophy? 14:10
Woodi and psychology probably
geekosaur and chemistry for a while 14:11
perlawhirl nadim: a bit belated, but...
m: (^10).categorize({ ($_ %% 2 ?? 'even' !! 'odd'; $_ < 5 ?? 'small' !! 'big'; 'seven' if $_ == 7) })
camelia ( no output )
perlawhirl m: say (^10).categorize({ ($_ %% 2 ?? 'even' !! 'odd'; $_ < 5 ?? 'small' !! 'big'; 'seven' if $_ == 7) })
camelia rakudo-moar f7613f: OUTPUT«{big => [5 6 7 8 9], even => [0 2 4 6 8], odd => [1 3 5 7 9], seven => [7], small => [0 1 2 3 4]}␤»
grondilu arnsholt: on second thought it should be fine. Just need to re-organize things a bit.
Xliff Well, crap. 14:16
This is NativeCall. If I'm given a pointer to a character aray and a length, how can I convert that to a Blob? 14:17
Blob to contain the data in the charater array.
timotimo copy it over byte-by-byte; there's a module for that purpose in the ecosystem 14:18
NativeHelpers::something
Xliff @a := nativecast(CArray[uint8], $p); bytecopy using @a and the length? 14:19
Xliff timotimo, I will look into NativeHelpers. Thanks. 14:19
tbrowder AlexDaniel: doc/Language/unicode_texas.pod pull request is ready for your review
RabidGravy NativeHelpers::Array 14:20
timotimo i think you can do pointer arithmetic, too, but nativecast to CArray also works well 14:21
Xliff Yeah. I'd rather not have another dependency if I can help it. 14:23
So as long as I keep within the buffer, I should be fine.
Xliff @a := nativecast(CArray[uint8], $p); my $b = Buf.new(@a[^$p_len]); <- ??? 14:25
AlexDaniel tbrowder: I like that unicode_texas.pod is getting attention to details
timotimo does that work? looks good to me 14:25
AlexDaniel tbrowder: but I'm not sure if this commit is right
Xliff timotimo, Won't know it till I try it.
AlexDaniel tbrowder: “Any codepoint that has the C<Nd> (Number, decimal digit) property, can be used as a digit in any number.” – OK. But the example is demonstrating 𝑒 14:26
tbrowder: which is not related to Nd
tbrowder: it is just a constant
tbrowder: one possible example to demonstrate codepoints with Nd property is 14:27
m: say ١٩
camelia rakudo-moar f7613f: OUTPUT«19␤»
AlexDaniel m: say ‘١٩’.uninames 14:28
camelia rakudo-moar f7613f: OUTPUT«(ARABIC-INDIC DIGIT ONE ARABIC-INDIC DIGIT NINE)␤»
AlexDaniel m: say ‘١٩’.uniprops
camelia rakudo-moar f7613f: OUTPUT«Method 'uniprops' not found for invocant of class 'Str'␤ in block <unit> at /tmp/3pt9kxFtFO line 1␤␤»
AlexDaniel m: say ‘١’.uniprop; say ‘٩’.uniprop
camelia rakudo-moar f7613f: OUTPUT«Nd␤Nd␤»
AlexDaniel alright: RT #128009 14:33
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128009
AlexDaniel tbrowder: your second example is ok, altough I'd probably write it in one line (the variable makes no difference in this case) 14:35
AlexDaniel m: say ⅒ + 2 14:35
camelia rakudo-moar f7613f: OUTPUT«2.1␤»
timotimo i don't see anything there )% 14:36
AlexDaniel tbrowder: what I meant by pointing to this phrase “These aren't decimal digit characters, so can't be combined” was this:
stmuk_ awwaiid: are you actually editing rakudo.org or can I steal your lock? :)
AlexDaniel m: say ٩٩ 14:36
camelia rakudo-moar f7613f: OUTPUT«99␤»
AlexDaniel m: say ⅡⅡ
camelia rakudo-moar f7613f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/GxVPwvDD4t␤Bogus postfix␤at /tmp/GxVPwvDD4t:1␤------> 3say Ⅱ7⏏5Ⅱ␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤ statement mod…»
AlexDaniel tbrowder: ↑ that is, you **can** use unicode digits, but not all unicode numeric things can be used as digits. And this depends on their property 14:38
timotimo that's right
AlexDaniel and my problem with that phrase is that it does not make it clear enough
timotimo we may want to give a clearer error message for cases where any N with non-d is put after another of the same group
AlexDaniel afk for a while 14:39
tbrowder AlexDaniel: see change 14:42
awwaiid stmuk_: haha 14:47
stmuk_: I just updated the .dmg 14:48
stmuk_: I'll close the page now
stmuk_ thanks :) 14:53
awwaiid it's closed. hopefully that releases any lock. 14:54
stmuk_ it was just locked for the page I was going to edit but you made the change anyway 14:55
masak Woodi: it still sounds to me that what you want is rakudo the compiler, and then Task::Star 15:00
grondilu in A.pm6: unit class A; our sub f {} 15:02
in B.pm6: unit role B; use A; my &f = &A::f; 15:03
and then 'use B; class :: does B {};'
===SORRY!=== Error while compiling -e 15:04
Could not instantiate role 'B':
Cannot find method 'package_at_key': no method cache and no .^find_method
at -e:1
notice that it works fine without compunits 15:05
m: class A { our sub f {} }; role B { use A; my &f = &A::f }
camelia rakudo-moar f7613f: OUTPUT«===SORRY!===␤Could not find A at line 1 in:␤ /home/camelia/.perl6␤ /home/camelia/rakudo-m-inst-2/share/perl6/site␤ /home/camelia/rakudo-m-inst-2/share/perl6/vendor␤ /home/camelia/rakudo-m-inst-2/share/perl6␤ CompUnit::Repository:…» 15:06
grondilu m: class A { our sub f {} }; role B { my &f = &A::f }
camelia ( no output )
grondilu m: class A { our sub f {} }; role B { import A; my &f = &A::f }
camelia ( no output )
zacts hi perl6 hackers 15:07
et nerds, etc..
mst zacts: HEY! I RESEMBLE THAT REMARK! 15:09
zacts lol =D
mst: are you getting involved with Perl6 now too along with Perl5?
Xliff For modules entered into the ecosystem, is it preferred to use .pm6 and .pl6 instead of the Perl5 equivalents? 15:10
mst zacts: only vaguely, so far 15:11
zacts ah ok, cool 15:12
perlpilot Xliff: I use *.pm6 when I think about it, but often I forget 15:15
(and I've never used .pl or .pl6 because usually my programs don't have some special suffix)
AlexDaniel tbrowder: I have to go unfortunately, so can't review that right now 15:18
perlpilot (actually ... I did use .pl for a while, but it was with Perl 4 when the .pl suffix stood for "Perl Library" and the .pl file occupied a similar space then as the .pm files do now)
AlexDaniel tbrowder: examples look alright as far as I can see 15:19
geekosaur I use .pl still for programs that are not yet complete
mst Xliff: if you use .pm6, file type guessers (e.g. for synhi) are more likely to get it right
geekosaur removing the .pl suffix means it's reasonably complete
mst Xliff: if you don't use .pm6, you really should 'use v6'
so it depends, do you want to indicate you're perl6 code in your file name or a line of code 15:20
AlexDaniel timotimo: do you know any character that has more than one property? 15:20
Woodi masak: no. for sure I wanted ability to install rakudo and modules one after one. and looking into Makefile I found: install: rakudo-install modules-install welcome-message :) someone++ so looks I just assumed other naming/prioritization. all good now 15:28
Woodi masak: actually you may be right... I also wanted ability to not installing modules... 15:36
dalek osystem: 200a5f7 | RabidGravy++ | META.list:
Rename the META for Linux::Fuser
15:39
timotimo AlexDaniel there are many different properties defined in Unicode. almost all characters have more than one i am willing to claim 15:41
TimToady tbrowder: due to its frequency of use, it is quite intentional that we coined the compound 'codepoint', just as it is intentional that we use 'grapheme' to mean that long consortium phrase that I can't even remember to make fun of it 15:43
TimToady we've coined a number of other terms in the past as well 15:44
TimToady standards bodies rarely have the courage to coin new terms where they are necessary, so they just string random works together 15:45
stmuk_ I quite like "rune"
TimToady funny thing is, the situation doesn't even arise in a language like Chinese, where compounding is automatic by frequency, and no decision needs to be made about spacing 15:46
ZoffixW m: role NamedAttribute { has Str $.json-name is rw; }; multi sub trait_mod:<is>(Attribute $a, Str :$json-name!) { $a does NamedAttribute; $a.json-name = $json-name; }; class Bar { has $.meow is json-name('foo') = 42; }; say Bar.new.meow.foo-name; 15:47
camelia rakudo-moar f7613f: OUTPUT«Method 'foo-name' not found for invocant of class 'Int'␤ in block <unit> at /tmp/XVt1ebaami line 1␤␤»
TimToady linguistically, in English, I'd argue that we should start thinking about compounding the moment you start using a multi-noun phrase as an adjective
ZoffixW Why doesn't this make foo-name method available? I think that's the exact copy of JSON::Name's code :/
TimToady "codepoint property" vs "code point property" 15:47
and I don't really give a rip how the Unicode consortium does it :) 15:48
TimToady wonders what the derivation of "give a rip" is... 15:49
bazzaar Hi, just noticed that R* 2016-04 creates a precomp dir in .perl6 dir, whereas R*2016-01 put precomp in .perl6/2016.01.1 ... was that intended? 15:51
Xliff mst: Both. 15:52
mst Xliff: both is also good :)
Xliff but I will start with "use v6" and maybe update extensions when I do code cleanup. 15:52
ZoffixW Has anyone done talks or written blogs about making custom traits? I really need some good info :/ 15:53
TimToady also grumbles about disbelief in nested parens, which can be used to great comic effect 15:56
hoelzro ZoffixW: what kind of info do you need? 15:56
ufobat hum! Could not map file '/home/martin/.workspace/p6/VoteImproved/../Bailador/lib/.precomp/D7820A4EF6D97B780F45CAC4B50C4E6E59589690.1461213213.60262/3B/3BC5C3D7FF8F38932639644824058B0EEF588B45' into memory: FIXME
not so awesome ;)
ZoffixW hoelzro, how to use them? What's possible? Why my code above isn't working? Everything :) 15:57
hoelzro looks
ZoffixW: that last line should be Bar.new.meow.json-name, right? 15:59
ZoffixW hoelzro, ah, right. But it still fails:
hoelzro yes 16:00
ZoffixW m: role NamedAttribute { has Str $.json-name is rw; }; multi sub trait_mod:<is>(Attribute $a, Str :$json-name!) { $a does NamedAttribute; $a.json-name = $json-name; }; class Bar { has $.meow is json-name('foo') = 42; }; say Bar.new.meow.json-name;
camelia rakudo-moar f7613f: OUTPUT«Method 'json-name' not found for invocant of class 'Int'␤ in block <unit> at /tmp/Ywgn0IZYUb line 1␤␤»
hoelzro so the reason *that* is
...is because you're applying a role to the Attribute
not to the values it contains
ZoffixW Isn't it the same that's happening here? github.com/jonathanstowe/JSON-Name...ON/Name.pm
hoelzro role NamedAttribute { has Str $.json-name is rw; }; multi sub trait_mod:<is>(Attribute $a, Str :$json-name!) { $a does NamedAttribute; $a.json-name = $json-name; }; class Bar { has $.meow is json-name('foo') =
m: role NamedAttribute { has Str $.json-name is rw; }; multi sub trait_mod:<is>(Attribute $a, Str :$json-name!) { $a does NamedAttribute; $a.json-name = $json-name; }; class Bar { has $.meow is json-name('foo') = 42; }; say Bar.^attributes[0].WHAT; 16:01
camelia rakudo-moar f7613f: OUTPUT«(Attribute+{NamedAttribute})␤»
hoelzro ZoffixW: yes, that's the same thing 16:02
but what's probably happening is serializer is looking at an object's attributes
and checking $attr.?json-name
ZoffixW Ah
hoelzro falling back to $attr.name.subst(/^ <[$@%]> '!'/, '') 16:03
ZoffixW I don't understand what the difference is here: 16:04
m: role Foo { has $.bar = 'meow'; }; multi sub trait_mod:<is>(Variable $a, :$foo!) { $a does Foo; }; my $x is foo; my $y does Foo; say $x; say $y;
camelia rakudo-moar f7613f: OUTPUT«(Any)␤Scalar+{Foo}.new(bar => "meow")␤»
ZoffixW What is a `Variable`? I'd think both $x and $y would be the same....
RabidGravy it's the meta thingy for that variable 16:06
ZoffixW -_- 16:07
ZoffixW reads src/core/Variable.pm 16:08
hoelzro it's like a container 16:11
m: my $x; say $x.VAR.WHAT;
camelia rakudo-moar f7613f: OUTPUT«(Scalar)␤»
hoelzro m: my $x; say $x.VAR.WHAT ~~ Variable;
camelia rakudo-moar f7613f: OUTPUT«False␤»
hoelzro apparently not a container in its own right =/
geekosaur m: my $x; say $x.VAR ~~ Variable;
camelia rakudo-moar f7613f: OUTPUT«False␤»
RabidGravy isn't it the HOW of the container 16:15
hoelzro ah, maybe that's it
geekosaur m: my $x; say $x.VAR.HOW ~~ Variable;
camelia rakudo-moar f7613f: OUTPUT«False␤»
geekosaur m: my $x; say $x.HOW ~~ Variable;
camelia rakudo-moar f7613f: OUTPUT«False␤»
geekosaur mrrr
ZoffixW m: role Foo { has $.bar = 'meow'; }; multi sub trait_mod:<is>(Variable $v, :$foo!){ $v.var.VAR does Foo; }; my $x is foo; say $x.bar; 16:15
camelia rakudo-moar f7613f: OUTPUT«meow␤»
ZoffixW Success \o/ :)
Well, almost... you can't assign anything to $x anymore :/ 16:16
geekosaur m: role Foo { has $.bar = 'meow'; }; multi sub trait_mod:<is>(Variable $v, :$foo!){ $v.var.VAR does Foo; }; my $x is foo; say $x.bar; $x = 0; 16:17
camelia rakudo-moar f7613f: OUTPUT«meow␤Cannot assign to an immutable value␤ in block <unit> at /tmp/Z9JMAtX1In line 1␤␤»
geekosaur m: role Foo { has $.bar = 'meow'; }; multi sub trait_mod:<is>(Variable $v, :$foo!){ $v.var.VAR is rw does Foo; }; my $x is foo; say $x.bar; $x = 0;
camelia rakudo-moar f7613f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/xKZjuzBcdt␤Two terms in a row␤at /tmp/xKZjuzBcdt:1␤------> 3od:<is>(Variable $v, :$foo!){ $v.var.VAR7⏏5 is rw does Foo; }; my $x is foo; say $x␤ expecting any of:␤ infix␤ infi…»
geekosaur m: role Foo { has $.bar is rw = 'meow'; }; multi sub trait_mod:<is>(Variable $v, :$foo!){ $v.var.VAR does Foo; }; my $x is foo; say $x.bar; $x = 0; 16:17
camelia rakudo-moar f7613f: OUTPUT«meow␤Cannot assign to an immutable value␤ in block <unit> at /tmp/666P7yOhLJ line 1␤␤»
geekosaur bleh 16:18
dalek osystem: 83c7528 | RabidGravy++ | META.list:
OOPS
RabidGravy :-^ 16:19
Xliff Is there a while-loop equivalent in P6? 16:45
timotimo yes, it's called "loop" 16:46
er
it's called "while"
Xliff LOL!
timotimo m: while my $i < 10 { say $i; $i++ }
camelia rakudo-moar f7613f: OUTPUT«Use of uninitialized value of type Any in numeric context in block <unit> at /tmp/OrkhRpRIwt line 1␤(Any)␤1␤2␤3␤4␤5␤6␤7␤8␤9␤»
Xliff That's test first then loop, correct.
timotimo pff, whatevs.
Xliff Excellent.
DD'oh! 16:47
while wasn't mentioned here en.wikibooks.org/wiki/Perl_6_Progr...ures#Loops
timotimo perl6advent.wordpress.com/2015/12/...repeating/
that wikibook ought to be deleted
Xliff But is, here: doc.perl6.org/language/control#while%2C_until
awwaiid in theory it can be edited :) 16:48
(assuming the "wiki" in it's name means the normal thing)
timotimo yeah, but that's a whole lot of work
awwaiid well we could add a link to each section or something. hmmm
timotimo we don't seem to have enough people/time to get such a thing working
timotimo puts an entry into "ye olde" about the wikibook 16:49
dalek osystem: 01703d5 | RabidGravy++ | META.list:
rename META for Log::Syslog::Native
awwaiid "ye olde"?
Xliff "It goes without saying that this is a situation up with which Perl 6 will not put. Let’s see what Perl 6 provides us with." 16:50
Might want to be rewritten as:
"It goes without saying that this is a situation that Perl6 will not put up with. …"
geekosaur don't like implicit Churchill ref?
timotimo github.com/perl6/ye-olde/issues/5
arnsholt Xliff: It's intentional =) 16:51
Xliff Is that what it was?
timotimo no, it does not want to be rewritten
geekosaur yes
arnsholt What geekosaur++ said, basically
timotimo awwaiid: see my link there
Xliff OK.
As long as its deliberate.
Xliff On first read I get more "clumsy" than "Churchill". However, I am not well read about him. 16:52
geekosaur it's a famous quote 16:53
roughly "This is the sort of nonsense up with which I shall not put"
timotimo churchill is someone whom you are not well read about?
stmuk_ I was wondering if everything preXmas on rakudo.org/downloads/ should be put in an archive directory under each directory? 16:54
timotimo might be a good idea 16:55
"attic/"? :)
ZoffixW It's not possible to get the name of the variable, is it? something like my $foo; my $var-name = $foo.^name; and $var-name would have "foo" in it. 16:56
skids I generally tend to error on the side of "don;t break urls"
timotimo m: my $foo; my $var-name = $foo.VAR.name; say $var-name 16:57
camelia rakudo-moar f7613f: OUTPUT«$foo␤»
stmuk_ "attic" is very CVS :P
timotimo yeah, that'd be appropriately ye-olde to refer to pre-christmas rakudo releases
geekosaur ..."advent"? 16:58
timotimo well, then nobody at all would know what it's about :D
stmuk_ that's consistant with the rest of perl 6 then ;)
timotimo needs a nap
geekosaur I can;t say "ye-olde" leads me in that direction either
ZoffixW :o timotimo++ 16:59
ZoffixW Ah, I see what I did wrong... I dumped ^methods and saw name, but called it as ^name instead of name :) 16:59
ZoffixW m: gist.github.com/zoffixznet/f95da02...9539c6be24 17:08
camelia rakudo-moar f7613f: OUTPUT«Bender␤beer␤»
ZoffixW Neat, eh? :)
RabidGravy yeah cool :) 17:10
bazzaar \o 17:17
ZoffixW o/
bazzaar Hi perl6, I posted earlier that I thought DBIish was much slower in R* 2016-04, than it was in R* 2016-01 ... my simple data retrieval is 70 times slower ( see timings : nopaste.linux-dev.org/?1094000 ) 17:25
AlexDaniel ouch 17:26
ZoffixW :o
bazzaar, it's worth reporting as a bug, with a sample code that could be used to reproduce the issue. 17:27
bug for Rakudo that is github.com/rakudo/rakudo/#reporting-bugs 17:28
mst yeah, that's not supposed to happen 17:28
RabidGravy I'd say it was the way that fetchall_* was reimplemented in DBIish 17:29
ZoffixW bazzaar, are both of your Perl 6 installation using the same DBIish version? 17:30
Xliff Is there a difference between ~< and +< (and their siblings)
ZoffixW Xliff, one is for strings the other is for numbers, if I recall. 17:31
RabidGravy massive changes in DBIish since January,
Xliff Thanks, ZoffixW
bazzaar ZoffixW: I reinstated my R* 2016-01 installation, so I think the DBIish versions were different in the two tests 17:32
ZoffixW bazzaar, then it might be the issue coming from DBIish, since it looks like there was a lot changed in it.
RabidGravy they will be
ZoffixW You could clone the repo, checkout an older, working commit and install that (panda --force install .) 17:33
bazzaar ZoffixW: So I should repot as a bug in DBIish instead of Rakudo?
report
RabidGravy I'd say so 17:34
ZoffixW bazzaar, if possible, test it with the same versions of DBIish on both perls. Just update the one on 2016-01 install
That will tell you where the problem lies, even though it's likely with DBIish :)
Lixquid What does the error "Merging GLOBAL symbols failed: duplicate definition of symbol X" mean? I'm getting it when I'm attempting to use a package 17:35
From what I can see, the package doesn't have the symbol defined anywhere
RabidGravy m: say X.WHAT
camelia rakudo-moar f7613f: OUTPUT«(X)␤»
RabidGravy m: say X.HOW.WHAT 17:36
camelia rakudo-moar f7613f: OUTPUT«(PackageHOW)␤»
RabidGravy there
ZoffixW :/
RabidGravy it exists because X::AdHoc does for example 17:36
bazzaar ZoffixW: ok, I'll try that before I create the ticket 17:37
ZoffixW Lixquid, do you have anything like Foo::X? I see this ticket: rt.perl.org/Ticket/Display.html?id=127484 17:38
Lixquid Not as far as I'm aware, I'm just attempting to use the module from the REPL 17:39
(The symbol X was generic, it's actually erroring for me on the symbol "Fast") 17:40
ZoffixW Not sure. I had the same error pre-Christmas, but I forget what was causing it. 17:41
Do you have any BEGIN{} blocks that print anything to STDOUT/STERR?
RabidGravy Lixquid, what is the actual module? 17:42
Lixquid The Discord module, in this case
RabidGravy which uses JSON::Fast via some dependencies
it's a weird problem 17:43
Lixquid panda --installed --verbose shows JSON::Fast as installed on version 0.4 17:44
Is something trying to load multiple versions of JSON::Fast or something? 17:45
RabidGravy say you have some module that uses JSON::Fast and that gets precompiled, then another module uses an explicit and later version of JSON::Fast
Lixquid, I know this because it is actually JSON::Marshal (my module) that creates the problem 17:46
Lixquid Oh, okay, I can see why this is a problem
RabidGravy It has to use v0.4 or better, but JSON::Unmarshal doesn't care which version
and Discord uses both 17:47
it's better now that Panda has the v0.4 JSON::Fast 17:48
Lixquid So, there's two versions of JSON::Fast, JSON::Marshal uses the newer version, Unmarshal uses the older version, and when Discord uses both they collide?
RabidGravy yep
Lixquid Right, ok 17:49
RabidGravy it's probably a bug in the way that precompilation works
Lixquid That kinda sucks :(
is there a way to somehow remove the old version, or force Unmarshal to use the newer version
RabidGravy I just deleted everything 17:51
in theory you could use zef uninstall
RabidGravy but I had a bad experience with that and ended up deleting everything anyway 17:52
Lixquid When you say delete everything, are you referring to the modules 17:53
..speaking of, where are hte modules installed anyway, on windows?
RabidGravy no "rakudobrew nuke moar; rakudobrew build moar" 17:53
RabidGravy haven't the faintest, don't use windows 17:54
Lixquid I'd love to not use Windows, but unfortunately, VS is windows only 17:55
RabidGravy all this reminds me I was going to make a thing that does similar to "cpan autobundle" 17:56
MadcapJake Lixquid: look for a .precomp directory 17:56
Lixquid I've tried renaming the precomp folder in ~/.perl6, but from what I see that only removed the precompiled stuff
MadcapJake yeah, what did you want it to do? 17:57
tbrowder AlexDaniel: doc: any problem with merging the changes as they are at the moment?
AlexDaniel tbrowder: I'll take a look in like 30 minutes
Lixquid It then just redownloads / recompiled all the installed packages next time panda runs
MadcapJake not redownloads but it does recompile
AlexDaniel tbrowder: but last time I looked it was more like an improvement, so it's probably good :)
MadcapJake any time you use a module it checks if it's been precompiled and if it hasn't it precompiles it 17:58
Lixquid yeah, ideally I can nuke all modules I've told it to download
reset the modules, as it were
MadcapJake Lixquid: try changing the order of your JSON::Fast, JSON::Marshal use statements 17:59
RabidGravy it doesn't help
RabidGravy I spent a whole day trying to find a workaround 18:00
MadcapJake Lixquid: `zef uninstall` works 18:00
Lixquid Yeah, there's a collision independant of the order
ZoffixW Just make both modules require the same version of JSON::Fast?
HTTP::UserAgent's tests still seem to hang on 32-bit boxes :/ 18:01
MadcapJake CURs are supposed to be able to solve this though. What was the error message? 18:02
RabidGravy MadcapJake, supposed to sure 18:03
there appears to be abug
ZoffixW, github issue with exact test that is doing that please 18:04
MadcapJake yeah, I'm working on CURs right now so maybe I can help. Is there some minimum code somewhere that triggers this?
RabidGravy no 18:05
MadcapJake ok :\
RabidGravy I can't think of a way of reproducing in a single piece of code 18:06
MadcapJake not even just `use Discord` in a script?
dalek c: 3a40207 | (Jan-Olof Hendig)++ | doc/Type/Code.pod:
Fixed errors in the usage sections for methods file and line. Also added code example for line.
18:07
RabidGravy no that won't help either because it may not happen to you
MadcapJake so it's a caused by a specific history of installs/uses 18:08
RabidGravy If you have a module B that depends on module A installed and precomped and a module C that is changed to require a specific version of A or greater and you install the newer version of A 18:09
RabidGravy then using both C and B will give rise to the error 18:09
i.e. B loads the old version and C tries to load the new version
MadcapJake well it *shouldn't* because both versions of A should still be around
RabidGravy or vice versa
exactly 18:10
but *something* doesn't like the two versions being loaded
MadcapJake e.g., A:ver<0.1.0> and A:ver<0.1.1>
RabidGravy well A
RabidGravy it fails in GLOBAL merge 18:11
RabidGravy because that's not versioned 18:11
it's all a bit sucky really 18:13
MadcapJake well if you do ever get that error again (and you too Lixquid) please paste the output somewhere (and use --ll-exception)
ZoffixW RabidGravy, done: github.com/sergot/http-useragent/issues/145 18:14
RabidGravy cheers matey
no way I can test but it probably give me a clue where the problem lies 18:15
MadcapJake and even RAKUDO_MODULE_DEBUG=1 if you could
RabidGravy or y'know I could just delete all the modules 18:15
MadcapJake maybe zef/panda should have a clean/nuke command too 18:16
stmuk_ zef can uninstall modules 18:17
RabidGravy I think it's too early for MODULE_DEBUG BTW 18:18
MadcapJake stmuk_: right I mean `zef --all uninstall` :)
too early? 18:19
Lixquid This is the output on my system (Win8, rakudo 2016.01) hastebin.com/ixokajobap.hs 18:21
It's identical with and without --ll-exception
RabidGravy yeah
RabidGravy fwiw I think load_module got changed after 2016.01 18:24
MadcapJake ahh so it appears the module process is fine it's *after* when it's collecting all globally available symbols 18:26
grondilu m: role A { proto method f {*} }; class :: does A {}; # I kind of was expecting this to fail with a message that the method f must be implemented. 18:27
camelia ( no output )
grondilu m: role A { proto method f {*}; multi method f {...} }; class :: does A {}; 18:28
camelia rakudo-moar f7613f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/4PYqL6A6qn␤Multi method 'f' with signature :(<anon|74541168> $: *%_) must be implemented by <anon|74541168> because it is required by a role␤at /tmp/4PYqL6A6qn:1␤»
RabidGravy MadcapJake, yeah, it can't handle the different versions 18:28
grondilu having to declare a stub multi to force the error is a bit redundant imho 18:29
RabidGravy though strangely "perl6 -e 'use JSON::Fast:ver(v0.3); use JSON::Fast:ver(v0.4)'" works fine here 18:30
so my new working hypothesis is that it's associated with the dependencies of the module being precomped 18:33
Xliff Can someone help, pls? 18:37
gist.github.com/Xliff/608addc037f0...9a75b9a05e
masak Xliff: you're expecting .WHAT to be stringifiable 18:38
Xliff: try .^name
grondilu m: role A { method add($x) { self + $x } }; say reduce { $^a.add($^b) }
camelia rakudo-moar f7613f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ZzpHdCGSUP␤Missing comma after block argument to reduce␤at /tmp/ZzpHdCGSUP:1␤------> 3lf + $x } }; say reduce { $^a.add($^b) }7⏏5<EOL>␤ expecting any of:␤ postfix␤»
grondilu m: role A { method add($x) { self + $x } }; say reduce { $^a.add($^b) }, map { $_ but A }, ^10; 18:39
camelia rakudo-moar f7613f: OUTPUT«Method 'add' not found for invocant of class 'Int'␤ in block <unit> at /tmp/_z9qJqSLl0 line 1␤␤»
grondilu m: say (10 but role { method add($x) { self + $x } }).add(2) 18:39
camelia rakudo-moar f7613f: OUTPUT«12␤»
Xliff D'oh! masak++ 18:40
OK. But that was just debugging weirdness. What I really need is help with the next line that throws an error:
grondilu m: role A { method add($x) { self + $x } }; say reduce { $^a.add($^b) but A }, map { $_ but A }, ^10;
camelia rakudo-moar f7613f: OUTPUT«45␤»
Xliff @pre_buffer[0][$i] = 0; # This type cannot unbox to a native number 18:41
Output from fixed script shows that @pre_buffer[0][$i] == 'Num'
Er...
Output from fixed script shows that @pre_buffer[0][$i].^name == 'Num'
RabidGravy yes
0.0 18:42
or Num(0)
Xliff \o/ 18:43
RabidGravy++ 18:44
So when dealing with LHS nativecall expressions, force type.
RabidGravy yeah, I've got some code that does that somewhere - just trying to locate 18:45
Xliff Well, that makes the write test work, but the output is broken. 18:46
RabidGravy github.com/jonathanstowe/Audio-Snd...le.pm#L373
Xliff More work to do...
timotimo we might want to output "native floating point number" instead of "native number"
Xliff Thanks, RabidGravy
timotimo because that could cause people to go "wtf, since when is 5 not a number?"
RabidGravy yeah
ZoffixW m: sub trait_mod:<from> (Variable $, :$config!) { }; my $x from config; 18:52
camelia rakudo-moar f7613f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/x28DCEcjz8␤Two terms in a row␤at /tmp/x28DCEcjz8:1␤------> 3from> (Variable $, :$config!) { }; my $x7⏏5 from config;␤ expecting any of:␤ infix␤ infix stopper␤ stateme…»
ZoffixW Am I correct in assuming only `is` verb can be used for traits?
timotimo we could output "native num" instead of "number", because "num" doesn't seem like it's obviously refering to the concept of numbers. at least not as much as "number" does
you would be mostly correct
i'm not sure how exactly "will" is handled
ZoffixW m: sub trait_mod:<will> (Variable $, :$config!) { }; my $x will config; 18:53
camelia rakudo-moar f7613f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/okYX1VFESP␤Missing block␤at /tmp/okYX1VFESP:1␤------> 3ble $, :$config!) { }; my $x will config7⏏5;␤ expecting any of:␤ block or pointy block␤»
ZoffixW k...
timotimo ah, yes, you can also trait_mod:<will>
ZoffixW Really?
timotimo there's also "trusts" and "hides"
check src/core/traits.pm
even "handles" and "returns" are in there
ZoffixW Yeah, but how do you use them? It seems they aren't user redefinable. And if you look in the grammar, the <is> has a whole bunch of logic, while the rest have just a simple check 18:54
Like here: github.com/rakudo/rakudo/blob/6d21....nqp#L3113 18:55
Xliff My gists are turning into a journal of NativeCall GOTCHA!s 18:56
ZoffixW $*BORG 0.o
Xliff $*RESISTANCE is futile;
timotimo shrugs 18:57
RabidGravy ZoffixW, I did have a comprehensive list of the trait words somewhere, but the calling conventions differ slightly 19:00
so e.g. 19:01
m: multi sub trait_mod:<will> (Variable $v, &foo, :$bar) { say "bar"; foo()}; my $b will bar { say "glarg" }; 19:02
camelia rakudo-moar f7613f: OUTPUT«bar␤glarg␤»
RabidGravy "will" always gets the block there 19:03
timotimo yes, that's what "will" is for
to add a block to a thing
usually we'd install a phaser there
RabidGravy yes
timotimo that's probably why it's different in the grammar
AlexDaniel tbrowder: it is ok! 19:04
ZoffixW Aha. Cool. RabidGravy++
timotimo ah, also: we explain mistery and cry sorrows there because the thing with "is" will immediately be executed
AlexDaniel tbrowder: I still don't understand “where case distinctions do not matter” part though
timotimo but we don't want to execute anything at all if we've stumbled over some problems in the code so far
AlexDaniel tbrowder: it has been there before your changes, but I'd still like to know what it means
ZoffixW where .lc eq .uc ? 19:05
AlexDaniel ZoffixW: which means? 19:05
ZoffixW AlexDaniel, where is that from?
AlexDaniel ZoffixW: doc.perl6.org/language/unicode_texas 19:06
RabidGravy I still think that some mechanism to add new trait introducing words would be cool 19:07
ZoffixW m: sub ƻa { say 'two' }; ƻa
camelia rakudo-moar f7613f: OUTPUT«two␤»
grondilu m: role A { proto method f returns Real {*} }; say class :: does A { multi method f { "not a number at all" } }.f() 19:08
camelia rakudo-moar f7613f: OUTPUT«not a number at all␤»
RabidGravy sometimes it's a real struggle coming up with things that make sense
ZoffixW AlexDaniel, ¯\_(ツ)_/¯ I think it's just poor wording attempting to say that unlike Lc/Lu, Lo chars don't have a "case"
AlexDaniel ZoffixW: why would that matter on unicode_texas page? 19:09
tbrowder: so perhaps you can even get rid of that part
unless somebody has a better explanation 19:10
pmurias what does the name nqp::p6bindattrinvres expand to? 19:11
ZoffixW toss it
I'd also move the Numeric Values section right after Numeric Characters, or even combine them. Right now it's odd how Whitespace section is inbetween 19:13
Watch a magic trick:
m: say 'Life, the Universe, and Everything'.WHY == ፵ + ፪
camelia rakudo-moar f7613f: OUTPUT«True␤»
ZoffixW :D
AlexDaniel m: say ‘Life, the Universe, and Everything’.WHY 19:23
camelia rakudo-moar f7613f: OUTPUT«42␤»
AlexDaniel who did that 19:23
timotimo Deep Thought
masak or the mice, depending how you see it 19:24
geekosaur both (Pinky asked the wrong question :p) 19:25
AlexDaniel m: say ‘Life, the Universe, and Everything’.WHO 19:27
camelia rakudo-moar f7613f: OUTPUT«Str␤»
AlexDaniel m: say ‘Life, the Universe, and Everything’.WHERE 19:28
camelia rakudo-moar f7613f: OUTPUT«140702311043192␤»
timotimo Error while reading from file: Invalid UTF-8 encountered on line 3, character 15 19:37
# oh no, a comm􏿽xE9t
^ here maybe?
RabidGravy bing bang bong 19:38
timotimo github.com/perl6/nqp/commit/403bf33cd4 - nqp/helpful_utf8_read_failure - please put it through its paces for me 19:39
timotimo Unhandled exception: java.lang.NoClassDefFoundError: Could not initialize class java.lang.Shutdown 19:40
^- seems like i can't build nqp? o_O
aha 19:42
here's the first wrong already
when i feed it a utf16 string, it'll apparently succeed in reading the whole thing, but it then goes on to output the caret 2x as far to the right as it ought to 19:43
tbrowder AlexDaniel: check doc changes and see if that's a bit better
AlexDaniel tbrowder: this looks right 19:44
tbrowder okay to merge what we have now? 19:45
AlexDaniel sure
tbrowder I'll wait for the build check...
AlexDaniel some people complained about “Portability” thing but I haven't found it
am I blind or was it removed? 19:46
tbrowder It was a suggestion, but not in a change. 19:46
AlexDaniel ah
timotimo um ... how come we seem to decode utf16 just fine when utf8 is selected as encoding? 19:47
bartolin timotimo: maybe not what you are looking at, but utf8-c8 is not supported with nqp-j (you have that in your commit) 19:53
timotimo oh!
yes, good point
bartolin nqp::setencoding($new-handle, "utf8-c8") # dies with 'Unsupported encoding utf8-c8' 19:54
tbrowder unicode: Can anyone explain the extra white space associated with 0x1d452 in some renderings? 19:55
timotimo i will catch that and give the original error instead.
m: say uniname(0x1d452)
camelia rakudo-moar f7613f: OUTPUT«MATHEMATICAL ITALIC SMALL E␤»
timotimo huh 19:55
no clue
perhaps some library wrongly states that it's a wide character? 19:56
twitter.com/loltimo/status/725413721921753089 19:58
[Coke] .seen leont 20:00
yoleaux I saw leont 24 Apr 2016 14:45Z in #perl6: * leont has lived with --std=c++11 for a while now, and wouldn't ever want to look back
tbrowder m: say uniname(0xff19) 20:01
camelia rakudo-moar f7613f: OUTPUT«FULLWIDTH DIGIT NINE␤»
dalek c: 85b3f2b | (Tom Browder)++ | doc/Language/unicode_texas.pod:
add some examples; format some text for ease of maintenance
20:02
c: 78c100c | (Tom Browder)++ | doc/Language/unicode_texas.pod:
use Nd chars per AlexDaniel
c: d3d074d | (Tom Browder)++ | doc/Language/unicode_texas.pod:
add reference to properties
c: b807a73 | (Tom Browder)++ | doc/Language/unicode_texas.pod:
make changes per AlexDaniel and Zoffix
c: 097b496 | (Tom Browder)++ | doc/Language/unicode_texas.pod:
Merge pull request #470 from tbrowder/master

add some examples; format some text for ease of maintenance
grondilu 455+
^ignore that, that was me trying to input a unicode character 20:03
AlexDaniel grondilu: does not look like a strong password
grondilu still does not quite get the Alt+'+' method on windows
timotimo tbrowder: can you try the branch with my newest commits?
MadcapJake AlexDaniel: xD 20:04
tbrowder timotimo: um, can you point me to it? this git collab with LOTS of players and action is a little new to me 20:06
timotimo wait 20:07
sorry, it was bartolin who notified me, not ou
sorry for the noise!
bartolin: ^ please test my latest commit if it properly catches that exception
RabidGravy :-\
bartolin timotimo: will do, though it will take a while :-) 20:09
timotimo thank you!!
tbrowder AlexDaniel: the pull has built and the fresh page awaits: doc.perl6.org/language/unicode_texas 20:14
RabidGravy tbrowder, looks good (leaving aside the default font in chrome means I can't actually see the unicode characters properly) 20:18
MadcapJake Why is there a since column if it's got nothing in it?
geekosaur presumably for stuff added in e.g. 6.d? 20:19
AlexDaniel let's fill it with 6.c then?
MadcapJake yeah agreed, seems bizarre that the whole column is empty 20:20
AlexDaniel also, here are some weird things
“as part of «» or .»” 20:21
what is .» ?
timotimo hyper method calls
AlexDaniel ». then?
timotimo you can even type it .».
but it really should be »., yeah
AlexDaniel but why would you
and here's another one
MadcapJake also should it mention that those can also be wrapped around operators?
timotimo there's only ++«, not sure if you can put a . in between there 20:22
m: my Int @foo = <4 5 6>; ++.<<@foo; say @foo
camelia rakudo-moar f7613f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/M2PDPyYqe8␤Unable to parse quote-words subscript; couldn't find right double-angle quote␤at /tmp/M2PDPyYqe8:1␤------> 3 Int @foo = <4 5 6>; ++.<<@foo; say @foo7⏏5<EOL>␤ expecting any of:␤ …»
timotimo m: my Int @foo = <4 5 6>; ++<<@foo; say @foo
camelia rakudo-moar f7613f: OUTPUT«[5 6 7]␤»
MadcapJake maybe remove the since column and add `(added in 6.d)` in the remarks column if the need arises
timotimo m: my Int @foo = <4 5 6>; ++<<.@foo; say @foo
camelia rakudo-moar f7613f: OUTPUT«Invocant requires a type object of type Array[Int], but an object instance was passed. Did you forget a 'multi'?␤ in block <unit> at /tmp/Gb6La8NWqf line 1␤␤»
timotimo turns out you can not.
AlexDaniel obviously notb
not*
tbrowder: are you taking notes? :) 20:23
tbrowder unicode_texas: I believe the remarks column needs real examples--any takers? 20:24
AlexDaniel I don't think that examples are going to fit horizontally
timotimo don't put me in there! 20:25
wu_ I wanted to run EVAL as: my $cmd="say 'hello'"; EVAL($cmd); But the EVAL gives error, though calling with string literally EVAL("say 'hello'") can success. How can the EVAL be used? 20:27
tbrowder could we use the remarks column to reference an example following the list, or on a separate page? 20:28
RabidGravy do what it tells you to do in the message
AlexDaniel tbrowder: it is also important to note that you can nest ‘’ “” and others
m: say ‘hello ‘world’’
camelia rakudo-moar f7613f: OUTPUT«hello ‘world’␤»
bazzaar \o
github.com/perl6/DBIish/issues/63 20:29
timotimo wu_: that's our "if you're really, really sure you want to use eval, you have to specify it at the beginning of your file" thing
m: use MONKEY-SEE-NO-EVAL; my $text = "say 'hello'"; EVAL($text)
camelia rakudo-moar f7613f: OUTPUT«hello␤»
timotimo m: my $text = "say 'hello'"; EVAL($text) 20:30
camelia rakudo-moar f7613f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/LzVFsyGYVw␤EVAL is a very dangerous function!!! (use MONKEY-SEE-NO-EVAL to override,␤but only if you're VERY sure your data contains no injection attacks)␤at /tmp/LzVFsyGYVw:1␤------> 3my $text = "say …»
timotimo ^- wu_ see the difference?
tbrowder AlexDaniel: I just started this exercise to make a better-looking table; I don't know enough about the fancy operators and unicodes to detect many errors
wu_ timotimo thanks, I will try.
AlexDaniel tbrowder: well, you can always ask something here and people will jump in trying to help 20:31
tbrowder AlexDaniel: ...and in my case, I don't intend to use much of unicode (if any) for math or operators 20:31
AlexDaniel tbrowder: the problem is that these answers are usually not suitable for docs :) 20:32
tbrowder: sure, but you're doing a great job there ;)
tbrowder but what do you think about making examples following the lists? or on another page? I'm happy to start either and get help from you all
AlexDaniel tbrowder: set operators have separate pages 20:33
e.g. doc.perl6.org/routine/%E2%8A%86
tbrowder from my Perl journey so far, I think there are many places that need real examples
AlexDaniel some constants are documented here: doc.perl6.org/language/terms#Identifier_terms 20:34
tbrowder AlexDaniel: then a reference to those pages might be the answer
AlexDaniel tbrowder: yes 20:35
tbrowder I'll see what I can do
AlexDaniel but note that doc.perl6.org/routine/%CF%84 has nothing… which has to be fixed
perhaps you should just duplicate this: doc.perl6.org/routine/tau 20:36
∘ is not documented! 20:37
wu_ can require rename imported symbols? Suppose I have two scripts files, both export a same class name, I want to use as: require "abs_file_one_path.p6" <MyClass> and require "abs_file_two_path.p6<MyClass>; of cause, the second MyClass should be alias to another name?
AlexDaniel tbrowder: yeah, after looking at it again I think that every thing has to have it's own page 20:40
well, maybe not every, but most of them
tbrowder: superscripts should probably be mentioned here: doc.perl6.org/routine/** 20:41
tbrowder: × and ÷ must probably have their own pages to be searchable 20:42
oh, actually it looks like there is a way to make stuff searchable without creating a separate page 20:43
AlexDaniel tbrowder: it may be a significant amount of work but it will be highly appreciated, I'm sure 20:44
RabidGravy wu_, in short no 20:45
AlexDaniel tbrowder: perhaps you can start by linking to stuff that already exists 20:46
timotimo wu_, RabidGravy: though you can use constant FooClass = do { require ... }, i think 20:47
tbrowder AlexDaniel: it sounds like a good project, and I'll put it on my TODO list, but I really would like to fix the pod parsing so pod codes are usable inside table cells.
fhorck \1
timotimo fhorck: in perl6, you'd always use "$0" for that
RabidGravy timotimo, yeah that's why I said "in short" ;-p
wu_ after calling "use MONKEY-SEE-NO-EVAL;" I can call EVAL on embedded code. How can I later disable the pragma to restore the safety? 20:48
bartolin timotimo: I was able to build nqp-j (and rakudo-j) from your branch. should I test something else?
AlexDaniel no MONKEY-SEE-NO-EVAL ?
RabidGravy yeah
AlexDaniel m: no MONKEY-SEE-NO-EVAL
camelia ( no output )
wu_ RabidGravy: thanks, I will have a test on using FooClass = do {require ...}
RabidGravy it's also lexical in effect so keeping it within a small scope is good 20:49
timotimo wu_: don't forget the "constant" in front, or alternatively "my \FooClass = ", note the \
AlexDaniel: clearly we have to add MONKEY-SEE-EVAL
:P
RabidGravy obPixiesReference 20:50
timotimo and the devil is six? 20:53
RabidGravy well MONKEY-GONE-TO-HEAVEN
grondilu a travis build for one of my module with this message: 20:54
/home/travis/build.sh: line 45: perl6: command not found
wu_ RabidGravy: can you please give an full example on constant FooClass = do { require ... },
thanks.
wu_ RabidGravy: what I have tested is to show the FooClass is actually the filename str. 20:55
RabidGravy yeah, I think that is possibly correct 20:56
'ang on 20:57
timotimo oh, in that case it'd have to be 20:57
do { require "blah blah" <FooClass>; FooClass } 20:58
sortiz \o #perl6
timotimo yo sortiz, how are you doing?
sortiz timotimo, Fine, thanks, fixing DBIish #62 :-)
timotimo wait, what? 20:59
you must have me confused with someone else
wu_ timotimo: thanks 21:01
sortiz "timotimo> yo sortiz, how are you doing?" just answering. 21:02
timotimo oh!
grondilu chmod -- 755 /home/travis/.rakudobrew/moar-nom/install/bin/perl6-m
tools/build/create-moar-runner.pl "/home/travis/.rakudobrew/moar-nom/install/bin/moar" perl6.moarvm /home/travis/.rakudobrew/moar-nom/install/bin/perl6-gdb-m "/home/travis/.rakudobrew/moar-nom/install/share/perl6/runtime" "gdb" "/home/travis/.rakudobrew/moar-nom/install/share/nqp/lib" "/home/travis/.rakudobrew/moar-nom/install/share/perl6/lib" "/home/travis/.rakudobrew/moar-nom/install/share/perl6/runtime"
timotimo i read "thanks for fixing DBIish #62"
grondilu sh: 1: tools/build/create-moar-runner.pl: Permission denied
make: *** [m-install] Error 126
is there something wrong with travis?
timotimo grondilu: create-moar-runner flip-flopped between a perl6 version and a perl5 version today
grondilu ok 21:03
dalek Iish/data-sets: 120c3d1 | (Salvador Ortiz)++ | / (3 files):
Pg: Make sure all connection params are Str

Closes #62, bazzaar++ for the report
timotimo hmm, shouldn't it read the port from the environment, too? 21:04
[Coke] our "make" doesn't do a good job of detecting when you have to regen config 21:06
timotimo that, too
but that shouldn't cause trouble with travis, should it?
because it always does it from scratch?
sortiz I'm seeing an issue whit travis-ci: "rakudobrew: No vesion set. The command "rakudobrew build-panda" failed and exited with 1 during ." 21:11
s/whit/with/ 21:13
RabidGravy eugh 21:14
sortiz The error with travis-ci in only with "latest", '2016-01' works without problems. 21:16
RabidGravy that may be what grondilu was alluding to above 21:16
as it has been working fine most of the day 21:17
RabidGravy ah yes "sh: tools/build/create-moar-runner.pl: Permission denied" 21:35
sortiz Yep, seems to be same problem: At the end of the MoarVM build, the install fails, so no perl6 installed. 21:36
timotimo so we ought to revert the revert? 21:38
RabidGravy it might be the reversion failed to reset the permissions on the file or something 21:41
timotimo huh 21:43
could be; wanna try?
RabidGravy ah, got it
RabidGravy the first time it calls it, it does so with the path to the perl5 the second time it doesn't 21:44
timotimo aaah!
RabidGravy specifically for the perl6-gdb-m target 21:45
so actually the third time
but on the bright side you are actually left with a working rakudo, just not a perl6-gdb-m (or anything else that might come after that) 21:49
dalek c/hash-block: 496ec07 | (Dabrien 'Dabe' Murphy)++ | doc/ (2 files):
Incorporate feedback re: idiomaticity

zoffixznet++
  ab5tract++
21:51
Xliff m: say 1e-1 == 0.1e0
camelia rakudo-moar f7613f: OUTPUT«True␤»
RabidGravy is idiomaticity even a thing?
timotimo it is now 21:52
RabidGravy actually regarding the make install not working, it's rather odd as it appears to be correct in the Makefile 21:56
$(PERL5) tools/build/create-moar-runner.pl "$(MOAR)" perl6.moarvm perl6-gdb-m . "gdb" "$(M_LIBPATH)" .
timotimo does any of that get unset/reset over the course of make going its course? 21:57
travis-ci Doc build errored. Dabrien 'Dabe' Murphy 'Incorporate feedback re: idiomaticity 21:57
travis-ci.org/perl6/doc/builds/126231204 github.com/perl6/doc/compare/0712b...6ec0768d62
RabidGravy or PERL5 isn't actually set at all 21:57
ah no 21:58
it actually does "$(PERL) tools/build/create-moar-runner.pl "$(MOAR)" perl6.moarvm $(DESTDIR)$(PREFIX)/bin/perl6-gdb-m "$(PERL6_LANG_DIR)/runtime" "gdb" "$(M_LIBPATH)" "$(PERL6_LANG_DIR)/lib" "$(PERL6_LANG_DIR)/runtime"" 21:59
in another place which is the actual target that is causing the problem
yeah in the m-install target 22:00
So if someone has commit in rakudo is lines 274 and 275 of Configure.pl need s/PERL/PERL5/ 22:02
sortiz $(PERL) vs $(PERL5)
Xliff Right... now generated .ogg file contains vorbis data but data is still borked from equivalent C code. *sigh* 22:05
timotimo Xliff: you could try to run it under valgrind to see if you're overflowing some buffers or something 22:06
Xliff timotimo++, thanks! I'll keep that in mind.
However the header data was broken by a badly transliterated "last if $ret != 0" when it should have been "last if $ret == 0" 22:07
timotimo if you're on a system that doesn't have valgrind, there's also this "drmemory" thing that also works on windows for example
Xliff So I'm not ruling out logic errors at this point.
timotimo and is allegedly a whole lot faster than valgrind is
Xliff No. I have my VM. \)
=) too
timotimo 'k
Xliff BUT -- I might be able to release a v0.0.1 version of Audio::OggVorbis to the ecosystem. over the weekend. 22:08
I just need to solve this one, last, pesky problem.
timotimo cool :) 22:09
RabidGravy cool 22:11
Xliff The "ogg_packet" is interpreted as NULL right --> "vorbis_analysis($vb, ogg_packet);" 22:19
RabidGravy if that's a type object yeah
Xliff ogg_packet is "class ogg_packet repr('CStruct') {…}"
RabidGravy yeah that should be fine (if the omission of the 'is' above is just an artefact of copying) 22:20
Xliff Well. Taking a break then. I don't know why I get more data rounds out of the P6 code than I do out of the C code. It must be something I'm doing.
Yes. Is omitted coz... FAT FINGERS! 22:21
Xliff When dealing with bugs like this, I find it is better to take frequent breaks and get mind off subject and then come back to tackle it. 22:21
Xliff Solved header issues, that way. 22:21
timotimo mhm 22:22
dalek Iish: f07d94e | (Salvador Ortiz)++ | / (3 files):
Pg: Make sure all connection params are Str

Closes #62, bazzaar++ for the report
22:23
Iish: 03a6b22 | (Salvador Ortiz)++ | .travis.yml:
travis-ci: Test env vars
Xliff Although P6 header writes out 3574 bytes instead of C's 3573. 22:24
Wonder how that happened.
RabidGravy off by one copying a buff or array to the CArray> 22:25
Xliff No. Those values come from libvorbis.
That data doesn't hit a CArray until right before the...write.
Xliff I've checked all of the reprs used and their nativesizeof matches C's sizeof, so we are good there. 22:26
Xliff HAH! Mystery solved. My vorbis comment was one character larger than the original. 22:30
Well, at least for the header size difference. 22:31
ZoffixLappy m: class BetterInt is Int { method even { self %% 2 } }; my BetterInt $x = 42; 22:33
camelia rakudo-moar f7613f: OUTPUT«Type check failed in assignment to $x; expected BetterInt but got Int (42)␤ in block <unit> at /tmp/mTbvCFQjSm line 1␤␤»
ZoffixLappy Is there any possible way to make it work? But which I mean for it to somehow recognize that given value is an Int that it can operate on? I tried redefining method new() but that didn't do anything 22:34
sortiz Setting a proper PERL environment variable let the travis-ci build pass. RabidGravy++ for diagnose.
timotimo ZoffixLappy: you just have to box a native int into the BetterInt 22:36
Xliff Wow! perl version of encoder throws out COMPLETELY random data.
*Sigh*
timotimo m: use nqp; class BetterInt is Int { method even { self %% 2 } }; my BetterInt $x = nqp::box_I(42, BetterInt);
camelia rakudo-moar f7613f: OUTPUT«===SORRY!===␤No registered operation handler for 'box_I'␤»
timotimo m: use nqp; class BetterInt is Int { method even { self %% 2 } }; my BetterInt $x = nqp::box_i(42, BetterInt);
camelia ( no output )
timotimo m: use nqp; class BetterInt is Int { method even { self %% 2 } }; my BetterInt $x = nqp::box_i(42, BetterInt); say $x; say $x.WHAT
camelia rakudo-moar f7613f: OUTPUT«42␤(BetterInt)␤»
RabidGravy yeah I couldn't work out where the PERL stopped being defined, it wasn't in the commit that was reverted
ZoffixLappy eh... that's not user-friendly
timotimo yah
ZoffixLappy I kinda came up with: my BetterInt $x .= new: 42; $x .= new: 71; seems passable 22:37
RabidGravy ZoffixLappy, wouldn't it be easier to either make it a role or an augment 22:40
timotimo probably would be easier with a role, but noooo don't augment :) 22:41
ZoffixLappy A role? the $x = 42 but role {... } ?
timotimo yeah 22:42
RabidGravy yeah
timotimo yeah
ZoffixLappy yeah!
:D
RabidGravy who do we think we are? the beatles or something?
ZoffixLappy :) 22:43
timotimo well, i'm certainly not beatless at the moment
wamba m: -> Numeric @a { say @a }([1,2]) 22:52
camelia rakudo-moar f7613f: OUTPUT«Type check failed in binding @a; expected Positional[Numeric] but got Array ($[1, 2])␤ in block <unit> at /tmp/CPTIJInq8t line 1␤␤»
RabidGravy yes it is literal about the type constraints if poistionals 22:56
ZoffixLappy wamba, "Numeric @a" does not mean "array that contains only Numerics"
grondilu m: sub (@a where .all ~~ Numeric) { say @a }([1, 2]) 22:58
camelia rakudo-moar f7613f: OUTPUT«[1 2]␤»
grondilu m: sub (Numeric @a) { say @a }(my Numeric @ = [1, 2])
camelia rakudo-moar f7613f: OUTPUT«[1 2]␤»
RabidGravy yeah 22:59
it uses the .of of the container
ZoffixLappy Well, I'm not exactly right... *in signature* it doesn't EXACTLY mean that... 23:01
m: my Numeric @x = 1, 2; -> Numeric @a { say @a }( @x )
camelia rakudo-moar f7613f: OUTPUT«[1 2]␤»
ZoffixLappy In declaration it does, and that's what it'd expect in signature
timotimo m: my Numeric @a; say @a.VAR.WHAT
camelia rakudo-moar f7613f: OUTPUT«(Array[Numeric])␤»
grondilu did not know we can type parameters in a pointy block 23:02
timotimo ah, yes, that'll give you Array, not Positional. but since Array does Positional, that's fine
grondilu: you can even give a return type annotation for a pointy block
grondilu: on top of that, sub-signatures also work, but you probably already knew about those
hmm
grondilu: did i talk to you about the particle system? or only about the white noise thing?
grondilu I vaguely remember about the white noise. 23:03
timotimo ah, ok 23:03
well, i also made a little particle system based on SDL2::Raw's function that takes an int array of positions and draws points there 23:04
and by replacing pretty much every single thing ever with an nqp op, i got a very decent framerate out of it; at least compared to what rakudo with "naive" code can do
it's in the SDL2::Raw repo in a branch, if you're interested
i'll be AFK now
grondilu Do I need XWindow to run SD2::Raw? 23:07
wamba ok thanks, Thus, i can use "where .all ~~ Numeric".
grondilu I currently have two machines: a windows 10 one and a Pi with no X
ZoffixLappy m: class Int is Int { method even { self %% 2 } }
camelia rakudo-moar f7613f: OUTPUT«===SORRY!===␤P6opaque: must compose before allocating␤»
grondilu Not sure I can use SDL2 then
ZoffixLappy m: class Int is CORE::Int { method even { self %% 2 } }
camelia rakudo-moar f7613f: OUTPUT«===SORRY!===␤Could not locate compile-time value for symbol CORE::Int␤»
grondilu I certainly would love to try graphics stuff in Perl 6 23:08
ZoffixLappy Is there anyway to make that work? Re-define an Int lexically instead of messing with ^augment?
grondilu wamba: consider making a subset. subset Vector of Array where .all ~~ Numeric. 23:08
xenowoolfy I hope all is well. 23:09
grondilu ZoffixLappy: use MONKEY-TYPING
oh wait
yeah, MONKEY-TYPING will do 23:10
just use augment, it's not that dirty.
grondilu m: { my class Int is Int {} } 23:11
camelia ( no output )
grondilu m: { my class Int is Int { method even { self %% 2 } }; say 4.even }
camelia rakudo-moar f7613f: OUTPUT«===SORRY!===␤P6opaque: must compose before allocating␤»
grondilu wow never seen this one
ZoffixLappy grondilu, but it affects ALL Ints,, doesn't it? 23:12
grondilu it does
ZoffixLappy Well, that's why it's evil :) And I'm exploring something other than augment
grondilu m: { use MONKEY-TYPING; augment class Int { method talk { say "hi" } }; 4.talk; } 5.talk
camelia rakudo-moar f7613f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Q0W6_oH3rY␤Strange text after block (missing semicolon or comma?)␤at /tmp/Q0W6_oH3rY:1␤------> 3 { method talk { say "hi" } }; 4.talk; }7⏏5 5.talk␤ expecting any of:␤ infix␤ i…»
grondilu m: { use MONKEY-TYPING; augment class Int { method talk { say "hi" } }; 4.talk; }; 5.talk 23:13
camelia rakudo-moar f7613f: OUTPUT«hi␤hi␤»
grondilu indeed it affects everything 23:13
ZoffixLappy Yeah... JavaScript folks would love it :P
grondilu I've never successfully inherited anything from a core class. It usually doesn't work well. 23:14
ZoffixLappy I wonder if it'd be possible to use `temp` to localize CORE:: and swap the Int in it with your custom Int.... 23:18
m: CORE::<Int> = class :: is Int { method even { self %% 2 } }; 23:19
camelia rakudo-moar f7613f: OUTPUT«Cannot modify an immutable Int␤ in block <unit> at /tmp/hUckoj4kHq line 1␤␤»
ZoffixLappy Oh well
grondilu you can define even as a sub and use the .& notation. 23:20
wamba graodilu: ye, its good idea, but i try this and it do not work same. Directly write works, but make Vector fails with expected Positional[Array] but got Array ($[1])
ZoffixLappy grondilu++ thanks. That's a good idea to include in my article!
grondilu wamba: it should work fine 23:21
grondilu wamba: what do you mean by "make Vector"? 23:25
m: subset Vector of Array where .all ~~ Numeric; my Vector @a = rand xx 4;
camelia rakudo-moar f7613f: OUTPUT«Type check failed in assignment to @a; expected Vector but got Num (0.237613331200051e0)␤ in block <unit> at /tmp/TjWySHY08M line 1␤␤»
hotel I'm getting this error when running make install for rakudo, any ideas why? gist.github.com/HotelCalifornia/5a...d21bf24420
grondilu oh I see
grondilu m: subset Vector of Array where .all ~~ Numeric; my Vector $a = rand xx 4; 23:25
camelia rakudo-moar f7613f: OUTPUT«Type check failed in assignment to $a; expected Vector but got List ($(0.853054247658877e0...)␤ in block <unit> at /tmp/ffRnDr3WP1 line 1␤␤»
grondilu m: subset Vector of Array where .all ~~ Numeric; my Vector $a = [rand xx 4];
camelia ( no output )
wamba m: subset Vector of Array where .all ~~ Numeric; sub rotate_sum ( Vector @a is copy, NaturalNumber $n ) { @a.prepend: 0 xx $n; [Z+] @a, { .rotate } ... { .[0] != 0 } ;} say (1,2).&rotate_sum(2);
camelia rakudo-moar f7613f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/g6rFflotQf␤Invalid typename 'NaturalNumber' in parameter declaration.␤at /tmp/g6rFflotQf:1␤------> 3e_sum ( Vector @a is copy, NaturalNumber7⏏5 $n ) { @a.prepend: 0 xx $n; [Z+] @␤»
grondilu you just have to be careful, but it works fine
wamba m: subset Vector of Array where .all ~~ Numeric; sub rotate_sum ( Vector @a is copy, $n ) { @a.prepend: 0 xx $n; [Z+] @a, { .rotate } ... { .[0] != 0 } ;} say (1,2).&rotate_sum(2);
camelia rakudo-moar f7613f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/af0sa2tUNg␤Strange text after block (missing semicolon or comma?)␤at /tmp/af0sa2tUNg:1␤------> 3+] @a, { .rotate } ... { .[0] != 0 } ;}7⏏5 say (1,2).&rotate_sum(2);␤ expecting any of:␤ …»
grondilu 'Vector @a' means for instance an array of vectors
it's not a vector named @a
you must write 'Vector $a' if you meant a single vector
and you must affect an array to it, not a list
so you need the []
hotel funny that a single vector should be considered a $calar
grondilu makes total sense imho
hotel not mathematically, lol 23:26
grondilu even mathematically.
RabidGravy tum ti tum
grondilu don't assimilate a vector to its coordinates.
hotel iirc, a vector is composed of a scalar magnitude and a direction, no?
grondilu that's one way to sumarize it. But truly a vector is something that can be added to an other vector or multiplied by a scalar. 23:27
RabidGravy toodles 23:28
ZoffixLappy bye 23:28
hotel hm
I sit corrected
hotel is but young
grondilu but frankly I think Perl 6's keyword "Scalar" to designate variables with a $ sigil is unfortunate. 23:30
hotel so, does anyone know why running make install for rakudo should give this error? gist.github.com/HotelCalifornia/5a...d21bf24420
grondilu hotel: current issues with rakudo. Being studied I think. 23:31
see backlog
hotel interesting
hotel think it's fixed in 2016.04? 23:33
grondilu dunno
everything worked fine this moring so.
*morning
hotel hm, guess I'll try it with that then 23:35
arnsholt grondilu: What is it you don't like with the name Scalar? 23:36
grondilu it collides with the mathematical meaning imho 23:38
though tbh I remember it used to bother me but now it does not anymore.
ZoffixLappy grondilu, not really, if you realize its contents IS an object :P 23:39
...even if that object has multiple things
grondilu well I'm not the one who pointed out the irony of having to store a Vector into a Scalar variable.
ZoffixLappy :D 23:40
ZoffixLappy m: use MONKEY-TYPING; augment class Numeric { method even { self.Int %% 2 } } 23:46
camelia rakudo-moar f7613f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/kLdy3TEDFZ␤Cannot augment Numeric because it is closed␤at /tmp/kLdy3TEDFZ:1␤------> 3use MONKEY-TYPING; augment class Numeric7⏏5 { method even { self.Int %% 2 } }␤ expecting any of:␤ g…»
ZoffixLappy Closed? Is there a way to re-open it? 23:47
Hm, it's a role... nm... I should choose something else for my current purposes (though, if there's an answer, I'll gladly learn)
grondilu m: use MONKEY-TYPING; augment role Numeric { method even { self.Int %% 2 } }
camelia rakudo-moar f7613f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/DEL9KqvlJf␤Cannot augment Numeric because it is closed␤at /tmp/DEL9KqvlJf:1␤------> 3use MONKEY-TYPING; augment role Numeric7⏏5 { method even { self.Int %% 2 } }␤ expecting any of:␤ ge…»
grondilu can you summarize what you want to do? 23:48
tbrowder doc: Travis is failing, and I don't think it's my pull request...
grondilu and why defining an Even subset or an is-even sub would do? 23:49
ZoffixLappy grondilu, make method .even available for all types that are Numeric
grondilu, "would do"? If you meant "won't do", it's because I'm writing an article and want to explore all options (and learn myself)
sortiz tbrowder, Yep, is a rakudo problem.
grondilu m: use MONKEY-TYPING; augment class Any { method even(Numeric:) { self.Int %% 2 } } 23:50
camelia ( no output )
grondilu m: use MONKEY-TYPING; augment class Any { method even(Numeric:) { self.Int %% 2 } }; say pi.even
camelia rakudo-moar f7613f: OUTPUT«Method 'even' not found for invocant of class 'Num'␤ in block <unit> at /tmp/EygckIDT7S line 1␤␤»
ZoffixLappy m: say pi.WHAT
camelia rakudo-moar f7613f: OUTPUT«(Num)␤»
grondilu isn't a Num and Any?
ZoffixLappy m: use MONKEY-TYPING; augment class Any { method even(Numeric:) { self.Int %% 2 } }; Num.^compose; say pi.even
camelia rakudo-moar f7613f: OUTPUT«False␤»
ZoffixLappy You have to re-compose all the children. 23:51
grondilu oh, I did not know about that.
ZoffixLappy s/children/descendants/; 23:51
BenGoldberg One would think that MONKEY-TYPING, besides providing an 'augment' keyword, would also provide a means to re-compose all of a class's children, perhaps automatically. 23:54
ZoffixLappy Impossibru. You can have anonymous classes that inherit from the augmented type 23:55
Hm
Unless they're listed somewhere in namespaces... At least when I wanted to write Evil.pm6 that would do just that, I was told it was impossible 23:56
m: say 􏿽xBD %% 2
camelia rakudo-moar f7613f: OUTPUT«False␤»
zwu If two scripts defined classes with same name and export them, for example MyClass in T1.pm6 and MyClass in T2.pm6. I cannot using require "file_T1.pm6" <MyClass> and require "file_T2.pm6 " <MyClass> 23:57
even when I tried constant T1MyClass = do { require ... <MyClass> } and constant T2MyClass = do {require ... <MyClass>} 23:58
ZoffixLappy zwu, what do you expect the result to be, when there's an obvious name clash?
zwu the error returns is P6M Merging Global symbols failed: duplicate definitioin of symbol MyClass
ZoffixLappy Aye... I recall someone else today had the same error.
zwu that
that's me, was wu_ 23:59
ZoffixLappy Ah
ZoffixLappy has no solution :(
sortiz zwu, if the classes are our, you can use both by the full name: T1::MyClass and T2::MyClass.
BenGoldberg Write a custom exporter, so that classes are lexically exported, just like subs.