»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_log/perl6 | UTF-8 is our friend! 🦋
Set by Zoffix on 25 July 2018.
atweiden-air what's the best way to move where /usr/share/perl6/runtime/dynext/libperl6_ops_moar.so is installed? 00:06
can it be put under /usr/lib?
timotimo i think you only need to change the path inside the perl6 shell scripts 00:07
atweiden-air timotimo: which scripts? 00:08
this maybe github.com/rakudo/rakudo/blob/6e8d...re.pl#L311 00:11
(see: github.com/void-linux/void-packages/pull/9598)
Geth doc: Kaiepi++ created pull request #2656:
Document types in the JS nutshell
00:12
timotimo no, literally perl6, perl6-m, perl6-gdb-m, etc 00:14
atweiden-air timotimo: is it as simple as relocating the .so file after installing as normal? does it need to be found inside $NEW_PATH/dynext/ ? 00:16
(and update the bin/perl6* stuff as well)
timotimo oh, hm, it might look for the file in any of the --libpath arguments 00:17
in that case, it would actually need to be in a dynext/ i guess?
Geth doc: 4d472accc8 | (Ben Davies)++ | util/perl-nbsp.p6
Fix replacing spaces with NBSP between line breaks in util/perl-nbsp.p6
00:27
vrurg comma is not compatible with vim plugin. despair... 00:36
intellij with comma plugin can't find perl6 executable. Ok, not this time then... 00:39
timotimo vrurg: you can use File -> Project Structure to set up an SDK, that'll let you pick a path 00:41
or is that only in comma itself?
vrurg timotimo: let me see. I never used intellij before. 00:42
vrurg It's there. Time to find out what is meant by SDK. ;) 00:43
timotimo see you tomorrow :) 00:47
vrurg timotimo: Anyway, it can't add a new SDK.
see you! Thanks!
MasterDuke timotimo: btw, just tried the newest version of comma, saw the built-in profiler support, very cool 00:49
discord6 <Rogue> Any idea why I'm suddenly getting "Too many positionals passed; expected 1 argument but got 2" for this rule: token Field:sym<normal> { <print>+ }? 03:29
discord6 <Rogue> it used to be \w+ inside the rule and it worked then. 03:30
shinobicl Hi all 03:31
i did a module that has a weird behavoir, consistently.. Honestly i dont know how to deal with it but the behavoir is consistent. It a test that works sometimes, and most of the time fails :( If i run the same test 10 times in a loop, only 3 times the test passes 03:32
shinobicl github.com/shinobi/Data-StaticTable/issues/4 03:35
shinobicl the fail is because of the use of .race 03:43
I was trying to compare two arrays and added a .race on the foreach. the question is... is ".race" by nature subject to this behavoir or it is just a bug in the implementation? 03:54
discord6 <Rogue> Nevermind my question; I didn't realise my delimeter for those tokens was included in <print> 03:55
<Rogue> shinobicl - .race doesn't guarantee that things will come back in the same order (.hyper does) 03:59
<Rogue> But I see no reason your use of it should fail
<Rogue> Although I'm not sure it does anything when used in a for loop like that 04:00
Geth doc: 3b5b051cb3 | (Ben Davies)++ | doc/Type/Supply.pod6
Document the :&tap parameter of Supply.tap
06:58
doc: 112a72dc68 | Altai-man++ (committed using GitHub Web editor) | doc/Type/Supply.pod6
Merge pull request #2655 from Kaiepi/supply2

Document the :&tap parameter of Supply.tap
xinming What module is the replacement of dbmopen example in perl6? 08:14
erry bothers scimon 09:07
erry runs off
Xliff \o 09:23
m: (1, 2, 3, 4).List.^name
camelia ( no output )
Xliff m: (1, 2, 3, 4).List.^name.say
camelia List
Xliff m: (1, 2, 3, 4).List.hyper(degree => 4).map( *.say ) 09:24
camelia 1
2
3
4
Xliff m: (1, 2, 3, 4).List.hyper(degree => 4).map({ .say })
camelia 1
2
3
4
Xliff m: sub a { $^a.say }; (1, 2, 3, 4).List.hyper(degree => 4).map( a(*) ) 09:25
camelia *
Cannot resolve caller map(Rakudo::Internals::HyperRaceSharedImpl:U: HyperSeq:D, Rakudo::Internals::HyperIteratorBatcher:D, Bool:D, Hash:D); none of these signatures match:
($: Hash \h, *%_)
(\SELF: &block;; :$label, :$item, *%_)
Xliff m: sub a { $^a.say }; (1, 2, 3, 4).List.hyper(degree => 4).map({ a($_) }) 09:26
camelia 1
2
3
4
timotimo whatevercode doesn't pass sub call boundaries
yeah
Xliff Thanks.
timotimo FWIW, the default batch size is too big for that to split at all
Xliff Yeah. Trying to golf a larger problem.
timotimo and if the thread pool scheduler doesn't see you're backing up on tasks while using up CPU time, it usually won't start more workers 09:27
i hope that helps :)
Xliff ...
timotimo actually, "sleep"ing may do the same thing without burning the cpu
Xliff OK. So is it better to do @full_list.hyper(batch => x, degree => y).map() 09:28
Because I am doing @full_list.rotor(x) -> $b { $b.hyper(degree => y).map() }
In the second case, the map call isn't executed. 09:29
Or at least the code in map.
timotimo there's a "for" in front of that, right?
timotimo uh oh, the cat demands my presence on the sofa 09:30
Xliff timotimo: Yes. 09:40
Here's a quick gist: gist.github.com/Xliff/851ecd59e45c...fcc17f99da
Xliff This is after you have finished pleasing your master, of course. 09:40
lizmat_ 1000th Perl 6 StackOverflow question!
timotimo OK, i'm back 09:41
i see neither a rotor nor a hyper in that code
and, ugh, it doesn't show line numbers
do you know about automatic deindentation of heredocs? because i see your sql queries are all the way to the left even though they don't have to 09:43
timotimo anyway, the problem might just be you're mapping, but never consuming the resulting sequence 09:45
so the side-effects you're hoping for aren't happening
Xliff Yes. 09:47
Added a comment. 09:49
Whole bunch of comments added. 09:53
So you may be right about the sequence not getting consumed.
Long story short: "for" works. ".map" does not.
I don't understand how that could ever be possible. 09:54
timotimo m: for ^100 { <a b c d>.map(*.say) } 09:59
camelia a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c…
timotimo m: for ^100 { <a b c d>.hyper.map(*.say) }
camelia a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c…
timotimo m: for ^100 { <a b c d>.hyper.map(*.say) }; say "foo";
camelia a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c…
timotimo m: do for ^100 { <a b c d>.hyper.map(*.say) }; say "foo";
camelia a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c…
timotimo m: my $blah = do for ^100 { <a b c d>.hyper.map(*.say) }; say "foo";
camelia foo
Xliff Now you feel my pain. ;) 10:00
timotimo mhm
Xliff I have NOT been able to golf the issue on camelia.
timotimo m: [<a b c d>, <x y z>, <a s d f>]>>.map({ $++ }).say 10:02
camelia ((0 1 2 3) (4 5 6) (7 8 9 10))
timotimo hard to tell if it's nodal or not, actually
anyway, the major difference between map and for is that for will - by default - run through data for side-effects, too 10:04
unless you "do for", which is how you get map-like semantics with for syntax 10:05
Xliff OK. 10:16
Updating gist.
Updated. 10:17
timotimo Xliff: sorry, doing other stuff on the side as well 10:32
Xliff No worries.
I'm now getting results after a couple of days of working on that piece of code. 10:33
So progress now, after I started on Thursday ain't bad.
Still mystifying, though. Check latest gist update for working code.
timotimo btw, degree => BATCH isn't what you want, i don't think 10:37
which you had earlier in the code
Xliff Ah. 10:49
timotimo i mean you want batch => BATCH
Xliff Thanks. I will try again when I next refactor. There are still instabilities in the origin server I need to account for. 10:50
AlexDaniel .tell cfa any news on that readline issue? 10:53
yoleaux AlexDaniel: I'll pass your message to cfa.
xinming Is there a built-in module to map hash and file just like dbmopen in perl5? 11:02
I forgot
sena_kun modules.perl6.org/dist/GDBM:cpan:JSTOWE <- this may help 11:05
you might want to write a wrapper around it though, but this is not something horrible to do. 11:06
sena_kun the module passes its test and is installable for me with gdbm headers intalled. 11:08
sena_kun xinming, ^ 11:18
xinming sena_kun:thanks 11:24
m: sub test (DateTime $arg .= new(now)) { }
camelia 5===SORRY!5=== Error while compiling <tmp>
Malformed parameter
at <tmp>:1
------> 3sub test (DateTime $arg7⏏5 .= new(now)) { }
expecting any of:
constraint
xinming Can we make .= so it can work in sub signatures. :-)
Is it worth doing so?
sena_kun I don't think we can. Or, well, we _can_, but do you mean changes to the spec? 11:25
xinming yes
sena_kun this is a sugar candy for sure, but I'd doubt it is worth the work. Of course, it is only my opinion.
timotimo it'd be nice to have IMO
sena_kun I mean, parameters are parameters, but they do not behave as containers. 11:26
or, rather, containers one can do tricks with.
timotimo default values are already thunky, this is just a little syntax enhancement 11:27
sena_kun m: sub a ($arg = DateTime.new(now)) { say $arg }; a;
camelia 2019-03-11T11:27:49.969891Z
sena_kun why not ^?
timotimo because then the user can pass not-DateTime values, too 11:28
sena_kun ugh
timotimo so you'd have to write DateTime $arg = DateTime.new(now)
sena_kun well, I somehow implied inference for $arg on this point and though "But tools and compiler just have to infer it".
And then dynamic typing strikes in. :(
xinming After I use perl6 in these 2 days, I thought that perl6 might influence the future of language designs.
timotimo that's not a good idea in general IMO 11:29
xinming The more I use perl, The more I like it.
hahainternet i think there are a lot of rough edges to p6
timotimo m: my $foo = 1; $foo ~= " world"; say $foo
camelia 1 world
hahainternet but it's as close to feeling like the future as anything is
timotimo if the compiler just infers, then this would give an error
sena_kun well, this _is_ error. at least, for me. :) 11:30
hahainternet in fact i'd say that no other project has really inspired the same level of 'wow this is how things COULD be' that p6 has
xinming hahainternet: Yes, the only language which does do what people think.
sena_kun one cannot usually concat numbers and strings.
hahainternet when i write Python now it is an exercise in frustration
timotimo m: my $foo = 1; $foo /= 2; say $foo
camelia 0.5
timotimo sena_kun: is this also an error?
hahainternet yes, because it's using rationals isn't it, not floats :p
sena_kun that's where things start to become "strictness vs handiness".
I'd still prefer explicit typing though. 11:31
hahainternet sena_kun: the question is, how explicit
sena_kun well, never mind me, I guess I am brain damaged forever after Haskell years.
hahainternet because it turns out if you want to be real explicit, you have to start writing total functional languages
sena_kun :)
timotimo use Automyte; # now all variables without explicit type annotation will be inferred
:P
xinming hahainternet: For now, when I write perl6, I feel that the syntax design is really consistent, and it's just do what I mean always.
hahainternet i think my favourite thing is the attempt to be holistic, it's not just one or two neat features, everything is fully integrated, and if something is used in one place it's likely used everywhere 11:32
xinming perl6 is the language for this. 11:33
:-)
hahainternet every other area of computing i find that there are extant major problems from 30-40 years ago that people have decided to avoid because they're too hard
the developers here have done a superb job in repudiating that style of programming
by actually addressing a bunch of problems other languages balk at, unicode for example
xinming actually, before perl6, when I use perl5, I still feel that's really perfect. If people in 90s used perl5, he already learnt many modern popular features which are used nowadays.
hahainternet so, a simple parsing language, full support for unicode, suddenly you can write a trivial programming language in literally 10 mins that is more reliable than 10 year+ develpoed projects 11:34
this philosophy is literally at the top of my CV too, i really believe it's right, and it's no coincidence p6 turned out so awesome
discord6 <kawaii> AlexDaniel: the Rakudo release guide has some text about JVM, my understanding is that the JVM backend of Rakudo is non-functional currently, is there anywhere/any issues attached to this that I can read? Is there an expectation for the next release to resolve this? 11:39
AlexDaniel kawaii: it is functional 11:40
kawaii: you can build it and run `perl6-j -e 'say 42'` and at least that works
kawaii: and if that doesn't work then that needs to be fixed before the release for sure
kawaii: other than that, no expectations 11:41
discord6 <kawaii> huh, maybe something I read a while back said otherwise, something about building rakudo only with --backend=moar as JVM wasn't quite there yet 11:42
<kawaii> regardless, thanks for the information!
AlexDaniel kawaii: I think there was a time when `make spectest` worked on jvm 11:49
but we didn't have that luxury for many releases
discord6 <kawaii> AlexDaniel: I wasn't sure what keys you required from me either, so FYI my PGP can be found here keybase.io/kawaii/pgp_keys.asc and my SSH can be found here github.com/kawaii.keys (the first ed25519 key). 11:50
<kawaii> my CLA got sent on Friday some hopefully someone can verify that too :] 11:51
AlexDaniel discord6: nice! I also see that you have the same pgp key on github. Good, good. 11:52
discord6: oops, not talking to you, bot :)
the bridge is working nicely, btw, except for than slight inconvenience… 11:53
kawaii: yes, that's exactly what I was looking for
AlexDaniel .seen [Coke] 11:54
yoleaux I saw [Coke] 18 Feb 2019 15:08Z in #perl6: <[Coke]> .tell kaiepi I have sent you a few emails re: grant and received no response. please check spam filter, ping me at [email@hidden.address] (maybe I'm using wrong email address)
discord6 <kawaii> yes the bridge works nicely, but I will probably switch over to using IRC properly sometime this week if I can find a client I like :] 11:55
AlexDaniel just wondering, which text editor do you normally use? 11:57
and yes, you'll probably need that so that you can interact with the bots. Alternatively you can fix the bots to understand messages from the bridge 11:58
discord6 <kawaii> I use a mixture of vim, nano and comma depending on the task :] 11:59
AlexDaniel while it's not a perfect replacement for IRC, have you tried Riot/Matrix? 12:00
if I remember correctly, it looks exactly like discord 12:01
AlexDaniel` and messages are not sent by a bot!
discord6 <kawaii> Yes I've had some experience with Matrix in the past, I might try irssi though, looks quite nice 12:02
AlexDaniel I use both, it's kinda nice to be able to receive notifications on my phone and other devices
(riot and erc in emacs) 12:03
and yes, I'm using my text editor to chat on IRC, sue me :P
discord6 <kawaii> IRCCloud looks nice too, and is priced quite reasonably if you want a more 2019 IRC experience
xinming sena_kun: Do we have other modules which uses sqlite3 as backend? 12:04
or other relational db is ok.
sena_kun xinming, DBIish has sqlite backend.
and it is stable.
xinming What I mean is, tie hash to sqlite backend. :-) 12:05
If we don't, I'll have to write my own.
sena_kun ah
well, you can search for it
but I haven't heard about it
AlexDaniel sena_kun: what's your definition of stable :D
sena_kun AlexDaniel, well, when it comes to DBIish, other backends have issues with concurrency. sqlite was fixed by jnthn and it is pretty reliable now. 12:06
:)
AlexDaniel xinming: maybe Red is what you're looking for? github.com/FCO/Red
sena_kun: ah, ok. That's good to know
sena_kun: this was one of the issues with Toaster 12:07
sena_kun: I wonder if it is fully fixed now
jnthn AlexDaniel: I've been using the sqlite backend of DBIish without trouble since I patched u the concurrency stuff 12:13
*up
Also gave it some speedups
AlexDaniel that's awesome
jnthn Could still be faster, but it's working reliably
AlexDaniel jnthn: by the way github.com/perl6/problem-solving/issues/3
jnthn But yeah, can't vouch for any others. For Postgres I'd probably use DB::Pg
AlexDaniel: Yeah, I'm aware; travel to and speaking at GPW used all my energy last week. 12:14
So now I've a long queue of issues I want to reply to
Will catch up in the next days :)
cpan-p6 New module released to CPAN! Test-HTTP-Server (0.5.0) by 03SCIMON 12:15
AlexDaniel nice 12:20
timotimo my script fails to inflate some data with Compress::Zlib::Stream, but when i .elems.say the result of inflate (currently i'm ignoring it) the error goes away 12:54
timotimo ?!? 12:54
pmurias jnthn: how did the GPW go? ;) 13:39
jnthn pmurias: It was nice; my talks seemed to be well received :) 13:51
timotimo who wants to build Compress::ZStd? 13:52
timotimo maybe i'll quickly whip it up 14:02
xinming is :$var the same as :$!var when we passing args?
will :$var :$!var both convert pairs to :var($var) :var($!var) ?? 14:03
timotimo they will, yes
xinming Ok, Thanks, just for clarification.
Geth doc: 155ea45cac | cfa++ | xt/aspell.t
Workaround for aspell backslash escaping issues (#975).

Still a WIP; the test now
  - uses perl instead of awk;
  - strips \n and \t when they follow non-ws characters;
  - leverages aspell's URL mode to prevent FPs on encoded URLs.
As a result, `\suffix` and `\example` are spellchecked as
  "suffix" and "example", while `foo\tbar` is treated as "foo bar".
14:04
doc: a96a573bf6 | (Will Coleda)++ (committed using GitHub Web editor) | xt/aspell.t
Merge pull request #2630 from cfa/aspell

Workaround for aspell backslash escaping issues (#975).
Geth doc: fbd4c12602 | Coke++ | doc/Language/mop.pod6
Use full word for var name
14:33
doc: 2e39c87fff | Coke++ | 2 files
Learn more words

These were found as a result of the spell check pre-process improvements in PR #2630
discord6 <kawaii> With regards to the module ecosystem, how are updates handled? Does Zef simply install from the master branch of any module in the META.json file? 15:00
cpan-p6 New module released to CPAN! gtk-v3 (0.9.0) by 03MARTIMM 15:04
timotimo kawaii, yes it will. if you want "proper" releases, you can push your module builds up to cpan 15:10
discord6 <kawaii> timotimo: I don't suppose there are any aims to make Zef smarter, and to support reading from Github releases? i.e. zef install Net::RCON:0.0.2 or something? :] 15:14
timotimo you already can, you just have to spell it out fully :) 15:18
i.e. github.com/blah/releases/0.0.2.tar.gz or whatever 15:19
discord6 <kawaii> ah! that is pretty smart indeed! thanks!
AlexDaniel kawaii: actually that'd be awesome 15:23
discord6 <kawaii> AlexDaniel: I mean, it's just a shorter way of doing exactly what timotimo just showed me 😛 15:26
<kawaii> After all, the concept of 'releases' is proprietary to github AFAIK, so a tool like Zef should be source control agnostic IMO. 15:27
AlexDaniel yes but you can look at git tags
discord6 <kawaii> i.e. maybe my module entry in ecosystem's META.json file could be SNV, Mercurial, self-hosted git 15:28
<kawaii> oh yes, that's true, tags are universal git
SmokeMachine xinming: did Red do what you wanted to do? 15:29
clarkema AlexDaniel: just spotted what you mean about roast 15:32
but I think it's down to some test book-keeping rather than 'real' failures
once my poor MBP has finished wheezing through this test run I'll try some patches 15:33
cpan-p6 New module released to CPAN! gtk-glade (0.8.1) by 03MARTIMM 15:35
cfa 👋🏽 15:53
yoleaux 10:53Z <AlexDaniel> cfa: any news on that readline issue?
cfa AlexDaniel: nope, filed two issues 15:54
one for logging, one for encoding 15:55
also tried to get gdb running but there're issues on this box
after that, ran outo f time
github.com/rakudo/rakudo/issues/2759 fyi
(i just ended up using rlwrap so that i could get some work done) 15:56
Geth doc: 8c08183f9b | cfa++ | doc/Language/js-nutshell.pod6
Prefer "smartmatch" over "smart match".
16:06
cfa AlexDaniel: i should also try building libreadline from source and linking against that if nobody can reproduce 16:07
xinming SmokeMachine: Nope, I thought there maybe something like dbmopen with SQL backends. :-) 16:19
I wish to tie a hash to a db, and access that hash as cache
SmokeMachine xinming: ok... but if you need a ORM, please take a look on Red... 16:21
sena_kun won't in-memory one be faster? with save/load on end/startup if one wants persistence.
if we are talking about plain key/value pairs here. 16:22
xinming, also, have you considered redis?
timotimo runs head-first into NativeCall trouble regarding not being able to put CArray or Pointer into a struct 16:24
huh, i can't even modify a pointer inside a pointer now? 16:26
Geth ecosystem: kawaii++ created pull request #439:
Add Net::RCON module to P6 ecosystem
17:08
hahainternet is it possible to constrain the type a seq will 'hold'? 17:48
AlexDaniel hahainternet: I don't think so 17:55
hahainternet AlexDaniel: cheers, i feared as much 17:57
that does feel like a weak point at the moment, but i appreciate there's ungodly amounts of work that need to go in before everyone's happy :D
Geth ecosystem: 81968a2f0a | (Kane Valentine)++ | META.list
add Net::RCON module to ecosystem
17:58
ecosystem: 3c8b09c22e | Altai-man++ (committed using GitHub Web editor) | META.list
Merge pull request #439 from kawaii/master

Add Net::RCON module to P6 ecosystem
El_Che jnthn: are you considering of adding the comma plugin to the plugin list in intellij? Downloading a zip is not a very IntelliJ-y thing to do 19:05
Kaiepi is it possible to add a fallback to an enum? 19:19
like say you have an enum enum Foo (:a<A>, :b<B>, :c<C>) 19:20
is there a way to make it so Foo('D') would return a?
lizmat m: enum Foo (:a<A>, :b<B>, :c<C>); dd Foo<a> # Kaiepi I think that doesn't do what you think that does 19:25
camelia Any element{'a'} = Any
Kaiepi oh 19:26
wait
lizmat internally, there's a hash somewhere, but it is not externalized as a hash afaik 19:27
Kaiepi like say you have an enum enum Foo (:a<A>, :b<B>, :c<C>); dd Foo('a'); dd Foo('A')
er
m: enum Foo (:a<A>, :b<B>, :c<C>); dd Foo('a'); dd Foo('A')
camelia Foo
Foo::a
lizmat aahh.
Kaiepi i never said trying to use Foo() with the key would work
lizmat ok, sorry misunderstood 19:28
Kaiepi: only way I see is to mixin another CALL-ME method or to wrap that 19:29
Kaiepi m: enum Foo (:a<A>, :b<B>, :c<C>) does role { method CALL-ME(Str $v) { Foo($v) // Foo('A') } }; dd Foo('D')
camelia Foo
Kaiepi m: enum Foo (:a<A>, :b<B>, :c<C>) does role { method CALL-ME(Str $v) { Foo('A') } }; dd Foo('D') 19:32
camelia Foo
Kaiepi m: class Foo { has $!enum = enum Foo <a b c>; method CALL-ME(Str $v) { $!enum($v) // $!enum(0) } }; dd Foo(3) 19:33
camelia Type check failed in binding to parameter '$v'; expected Str but got Int (3)
in method CALL-ME at <tmp> line 1
in block <unit> at <tmp> line 1
Kaiepi m: class Foo { has $!enum = enum Foo <a b c>; method CALL-ME(Int $v) { $!enum($v) // $!enum(0) } }; dd Foo(3)
camelia Cannot look up attributes in a Foo type object
in method CALL-ME at <tmp> line 1
in block <unit> at <tmp> line 1
Kaiepi m: class Foo { method CALL-ME(Int $v) { state $enum = enum Foo <a b c>; $!enum($v) // $!enum(0) } }; dd Foo(3) 19:34
camelia 5===SORRY!5=== Error while compiling <tmp>
Attribute $!enum not declared in class Foo
at <tmp>:1
------> 3Foo <a b c>; $!enum($v) // $!enum(0) } }7⏏5; dd Foo(3)
expecting any of:
horizontal whitespace
postfix…
Kaiepi m: class Foo { method CALL-ME(Int $v) { state $enum = enum Foo <a b c>; $enum($v) // $enum(0) } }; dd Foo(3)
camelia No such method 'CALL-ME' for invocant of type 'Map'
in method CALL-ME at <tmp> line 1
in block <unit> at <tmp> line 1
Kaiepi m: class Foo { method CALL-ME(Int $v) { state enum Foo <a b c>; $enum($v) // $enum(0) } }; dd Foo(3)
camelia 5===SORRY!5=== Error while compiling <tmp>
Cannot use 'state' with enum declaration
at <tmp>:1
------> 3CALL-ME(Int $v) { state enum Foo <a b c>7⏏5; $enum($v) // $enum(0) } }; dd Foo(3)
Kaiepi m: class Foo { method CALL-ME(Int $v) { state \Foo = enum :: <a b c>; Foo($v) // Foo(0) } }; dd Foo(3)
camelia 5===SORRY!5=== Error while compiling <tmp>
state scoped term definitions (only 'my' is supported at the moment) not yet implemented. Sorry.
at <tmp>:1
------> 3oo { method CALL-ME(Int $v) { state \Foo7⏏5 = enum :: <a b c>; Foo($v) // Fo…
Kaiepi m: class Foo { method CALL-ME(Int $v) { my state \Foo = enum :: <a b c>; Foo($v) // Foo(0) } }; dd Foo(3) 19:35
camelia 5===SORRY!5===
Type 'state' is not declared
at <tmp>:1
------> 3 Foo { method CALL-ME(Int $v) { my state7⏏5 \Foo = enum :: <a b c>; Foo($v) // Foo(
Malformed my
at <tmp>:1
------> 3class Foo { method CALL-ME(Int $v) { my7⏏5 …
Kaiepi m: class Foo { my \_Foo = enum :: <a b c>; method CALL-ME(Int $v) { _Foo($v) // _Foo(0) } }; dd Foo(3) 19:38
camelia 5===SORRY!5===
Variable '&_Foo' is not declared
at <tmp>:1
------> 3um :: <a b c>; method CALL-ME(Int $v) { 7⏏5_Foo($v) // _Foo(0) } }; dd Foo(3)
Variable '&_Foo' is not declared
at <tmp>:1
------> 3>; method CALL-ME(Int $v) { _…
Kaiepi m: class Foo { my &_Foo = enum :: <a b c>; method CALL-ME(Int $v) { _Foo($v) // _Foo(0) } }; dd Foo(3)
camelia Type check failed in assignment to &_Foo; expected Callable but got Map ($(Map.new((:a(0),:b(1...)
in block <unit> at <tmp> line 1
Kaiepi m: class Foo { enum _Foo <a b c>; method CALL-ME(Int $v) { _Foo($v) // _Foo(0) } }; dd Foo(3) 19:40
camelia _Foo::a
Kaiepi there we go 19:41
lizmat Cool... 19:42
Kaiepi m: class A { enum A <a b c>; method CALL-ME(@vals) { A := enum :: (|@vals.kv.map(-> $i, $v { $v => $i })) } } 19:49
camelia ===SORRY!===
No such method 'kv' for invocant of type 'Mu'
Kaiepi what?
timotimo that happens at compile time 19:52
Kaiepi also shit that class won't work as a type
m: class A { enum A <a b c>; method CALL-ME(@vals) { my %vals = @vals.kv.map(-> $i, $v { $v => $i }); A := enum :: (|%vals) } } 19:53
camelia 5===SORRY!5===
Cannot use bind operator with this left-hand side
at <tmp>:1
------> 3$v { $v => $i }); A := enum :: (|%vals) 7⏏5} }
expecting any of:
postfix
Other potential difficulties:
No values supplied to e…
Kaiepi m: class A { enum A <a b c>; method CALL-ME(@vals) { my %vals = @vals.kv.map(-> $i, $v { $v => $i }); OUR::<A> = enum :: (|%vals) } }
camelia Potential difficulties:
No values supplied to enum (does |%vals need to be declared constant?)
at <tmp>:1
------> 3v => $i }); OUR::<A> = enum :: (|%vals) 7⏏5} }
timotimo enum syntax triggers at compile time, by the time CALL-ME gets called and @vals is supplied, that is long past 19:55
SmokeMachine Kaiepi: 20:04
m: enum Bla (:a<A>, :b<B>, :c<C>); Bla.^lookup(“CALL-ME”).wrap: -> | { my \ret = callsame; ret // Bla::a }; say Bla(“D”)
camelia a
Kaiepi ah perfect
thanks
lizmat just realized that a one-liner doing 'cat' is "print slurp"
AlexDaniel uh, not exactly 20:06
if I get it right, this is going to use much more memory
and will also mangle newlines even if your input is in ascii range 20:07
SmokeMachine `perl6 -pe ‘’ file` would work? 20:09
(I’m not with my computer to test it...)
AlexDaniel yes, it does work to some extent 20:10
cpan-p6 New module released to CPAN! DB-MySQL (0.3) by 03CTILMES 20:11
New module released to CPAN! DB (0.4) by 03CTILMES
lizmat AlexDaniel: true, about the memory 20:19
not sure how newlines would get mangled though ?
El_Che SmokeMachine: how are you settling in the UK? 20:20
SmokeMachine Everything is going ok... I got a flat, my daughters started on school today... 20:21
El_Che The family moved right away? Cool 20:22
AlexDaniel e: shell 「echo "foo\rbar\r\nbaz" > /tmp/foo」; dd slurp ‘/tmp/foo’
evalable6 "foo\\rbar\\r\\nbaz\n"
SmokeMachine But I don’t have internet connection yet...
El_Che good luck for your daughters, big chang
e
AlexDaniel e: shell 「echo "foo\rbar\r\nbaz" > /tmp/foo」; print slurp ‘/tmp/foo’
evalable6 foo\rbar\r\nbaz
SmokeMachine El_Che: yes! We had to be fast... I don’t know what’s happening with brexit...
AlexDaniel weird, why am I getting a different result locally 20:23
c: 2018.12,2019.03 shell 「echo "foo\rbar\r\nbaz" > /tmp/foo」; print slurp ‘/tmp/foo’
committable6 AlexDaniel, ¦2018.12,2019.03: «foo\rbar\r\nbaz␤»
AlexDaniel c: 2018.12,2019.03,HEAD shell 「echo "foo\rbar\r\nbaz" > /tmp/foo」; print slurp ‘/tmp/foo’ 20:24
committable6 AlexDaniel, ¦2018.12,2019.03,HEAD(6e8df01): «foo\rbar\r\nbaz␤»
AlexDaniel oh, these are literal in committable, but why? 20:26
AlexDaniel c: 2018.12,2019.03,HEAD shell 「echo -e "foo\rbar\r\nbaz" > /tmp/foo」; print slurp ‘/tmp/foo’ 20:27
committable6 AlexDaniel, ¦2018.12,2019.03,HEAD(6e8df01): «foo␍bar␤baz␤»
AlexDaniel lizmat: ↑
\r\n turns into \n, \r remains \r 20:28
it depends on what you are going to use that cat replacement for 20:30
lizmat it was just a thought, no serious application intended
AlexDaniel perl6 -e '$*IN = $*IN.open: enc => ‘utf8-c8’; print slurp' 20:37
that's more like it
AlexDaniel though I'm pretty sure someone will find a way to make the output of that differ from `cat` 20:38
lizmat And another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2019/03/11/...sed-a-lot/ 20:46
moritz lizmat++ 21:02
discord6 <Rogue> Very nice! Can't wait to update to Rakudo Star 2019.03 21:19
<Rogue> Will this include some of the partial escape analysis work? 21:21
<Rogue> I haven't been keeping up with whether that's actually made it into the release
chee the perl6 weekly very exciting 21:31
chee also it links to a tweet where i said "i'm only following a blog about perl 6" 21:31
which was the perl 6 weekly
big loop-de-looper 21:32
chee if i had a strong belief that a new SUB-MAIN-OPTS opt should be added, and that it should be allowing `-lwp` as well as `-l -w -p` 21:33
how would i go about starting to talk about that 21:35
vrurg If anybody could confirm my assumption that bytecode serialized by same perl6/moar version must be binary identical independetly of the platform used. 21:39
timotimo vrurg: it should be, except whatever is done in BEGIN blocks can have different contents. among other things, i'd expect somewhere to say whether the system is 32 or 64 bits, whether it's x86 or arm, linux windows bsd or mac etc 21:48
vrurg timotimo: I wanna try putting my hands on a issue where serialized code fails on macOS but works in my vmware linux box. So, it's gonna be all the way identical environment except for the OS. 21:50
timotimo you can get a part of the interesting stuff out with moar --dump 21:52
vrurg timotimo: thanks, will check it! 21:54
vrurg BTW, comma plugin doesn't work with intellij. I can't add Perl6 SDK to a project. No error, not SDK added either. 21:55
timotimo i think there's a bug regarding SDKs where recreating the project (delete the .idea folder i guess?) would fix it 21:58
vrurg I tried deleting .idea, didn't help. 21:59
timotimo if i understand correctly, we haven't been able to recreate it, it only happens every couple of months, and never in the debug build?
vrurg To me it happens right now. I deleted .idea and <project>.iml again, imported from sources. 22:02
timotimo maybe "import from sources" is the problem 22:02
vrurg Then project -> SDKs -> + -> Perl6, chose perl6 in my local installation ~/perl6/bin/perl6 -> nothing. 22:03
will try from VCS now. 22:05
vrurg timotimo: Same wtih version control checkout. 22:07
clarkema c 22:22
discord6 <kawaii> Has anyone made any basic blog application using P6 yet? 22:48
tadzik I have, close to 10 years ago :P 22:52
github.com/tadzik/zblog
I'm sure there are better ones too
timotimo i think masak's blog runs on p6? it's a static site generator iirc 22:53
discord6 <kawaii> Sounds like I need to add something to my to-do then, have been meaning to try Bailador for a while now. 22:54
<kawaii> When I last looked at it, it seemed unmaintained, but I hear someone has picked it up again.
tobs there's also this github.com/scmorrison/uzu 23:00
(haven't used it but thought for a while about porting my P5 static site generator to it) 23:01
vrurg timotimo: moar --dump fails on bytecode in .precomp. 23:03
timotimo oh, these files start with a little bit of unrelated data
you'd have to cut off the first bytes until it starts with "MOAR" or something
discord6 <kawaii> oh, uzu looks great
tobs btw kawaii: IIRC, you asked me something a few days ago. Sorry, I was already away at that point and I couldn't have answered anyway :-) 23:04
vrurg timotimo: I guessed it but hoped there is more straightforward way. Wonder though why can't I get the bytecode right from the perl6 compiler. 23:05
timotimo: thanks anyway!
timotimo there's more than just bytecode in there, there's also the serialized blob, which is a sizeable portion of the file
i've been meaning to write a tool to explore the file, but too many other things to do 23:06
vrurg I can understand this. Wish to have other things done but have generated so many tickets that now feel obligatory to get at least some of them fixed. ;) 23:09
timotimo i've written a trivial script in the past that opens a .moarvm file and grabs every object out of it 23:11
chee it could do with a readme, but i've published a vscode syntax that is a direct conversion of perl6/atom-language-perl6 23:52
so now it understands that this 「」 is a quote and #`() is a comment hooray 23:53