»ö« 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.
leont m: sub foo () { given 1 { state $foo = 1; say $foo++ } }; foo; foo; foo 01:50
camelia 1
1
1
tbrowder i’m sorry to hear AlexDaniel is leaving his post as release manager. his firm but patient hand on the stick (as ancient flyers say) helped me to get a grip on reality more times than i care to admit. heact like we hop 01:52
leont m: sub foo () { if True { state $foo = 1; say $foo++ } }; foo; foo; foo 01:53
camelia 1
1
1
leont That is … somewhat surprising behavior of state
timotimo state is about cloning of blocks, i'd say it's more consistent that way 01:54
otherwise you'd have to learn what causes a block to be cloned. for does, if doesn't?
tbrowder to me he appeared to act like the judge we hope all will be: fair, impartial, demanding of the truth.
AlexDaniel: I salute you!
leont timotimo: I see the argument, but this definitely needs to be documented
It's quite surprising when you expect it to work like static in other languages 01:55
timotimo ah, yes, documentation is surely necessary
leont All the examples in the documentation are top-level, so this isn't addressed
masak I think I've asked this before, but never really gotten an answer: why is the rule spelled `EXPR` (capitalized) and not `expr`? more to the point, what is it that makes `EXPR` exceptional an worthy of capitalization, like `BEGIN` or `MAIN`? 02:54
MasterDuke i have no idea the answer, but i'd ask if it's the same with TOP? 02:57
masak TOP is easy to explain: it's called automatically by .parse et al :) 03:05
kinda similar to how MAIN is called automatically
MasterDuke very true 03:14
namibj so state is to be used if a lambda, which i create once and then give to more than one future caller, should share a state between these instances of it, even if they happen to be pass-by-value? 04:08
uzl m: my @a[2] = (1, 2); 04:22
camelia ( no output )
uzl m: my @a[2] = (1, 2); say @a;
camelia [1 2]
uzl m: my @a[2] = (1, 2); say @a; my @b = Array.new(2);
camelia [1 2]
uzl m: my @a[2] = (1, 2); say @a; my @b = Array.new(2); say @b;
camelia [1 2]
[2]
uzl m: my @a[2] = (1, 2); say @a; my @b = Array[2].new; say @b; 04:23
camelia 5===SORRY!5=== Error while compiling <tmp>
Can not parameterize Array with 2
at <tmp>:1
------> 3@a[2] = (1, 2); say @a; my @b = Array[2]7⏏5.new; say @b;
uzl Can I create a fixed-size array using the Array.new constructor? 04:24
Geth doc: bd7d510d21 | (Bruce Gray)++ | 20 files
Fix typos
04:27
MasterDuke m: my @b[2] .= new(:2shape, 2,3); say @b.perl 04:37
camelia Array.new(:shape(2,), [2, 3])
MasterDuke m: my @b[2] .= new(:2shape, 1,2,3); say @b.perl
camelia Index 2 for dimension 1 out of range (must be 0..1)
in block <unit> at <tmp> line 1
MasterDuke .tell uzl you can find examples github.com/perl6/roast/blob/master...y-shapes.t and github.com/perl6/roast/blob/master...re/shape.t 04:39
yoleaux MasterDuke: I'll pass your message to uzl.
sno .tell timotimo I used most examples from Rosettacode - nothing self created beside one exception which I would like to discuss with lizmat on next niederrhein.pm first :) 05:40
yoleaux sno: I'll pass your message to timotimo.
SmokeMachine m: my @a[2] = 1,2; dd @a 05:57
camelia Array element = Array.new(:shape(2,), [1, 2])
kriztmark hello aliens 08:49
whats wrong on the other side
moritz the gras is too green 08:57
Kaiepi stayed up too late coding
El_Che they don't have cokies 08:58
o
Kaiepi i'm thinking of turning the crypt::mode library i was writing into a general crypto library rather than one solely dedicated to abstracting block cipher modes from other modules 09:03
mainly because it turned crypt::cast5 into this hastebin.com/exixeluzod.pl 09:04
Kaiepi and it's picky about how you write your c, which would make api changes complete hell 09:05
AlexDaniel squashable6: status 09:34
squashable6 AlexDaniel, ⚠🍕 Next SQUASHathon in 1 day and ≈0 hours (2019-02-09 UTC-12⌁UTC+14). See github.com/rakudo/rakudo/wiki/Mont...Squash-Day
AlexDaniel .tell jmerelo ahem… so??
yoleaux AlexDaniel: I'll pass your message to jmerelo.
El_Che AlexDaniel: I saw your passing the release manager hat soon. Thx for the great job! 09:39
AlexDaniel thank you!
nevada1 Hey, Windows user here. I'm looking for a Perl6 module that would allow me to load an image and access its pixels' channels data. I'm trying to build a small lsb image steganography tool. 09:42
AlexDaniel nevada1: what about OpenCV module? github.com/azawawi/perl6-opencv 09:46
I haven't tried using OpenCV from perl 6, but it does give you a way to read and write images, and it's possible to access the pixels 09:47
nevada1 Thanks. I would be so thrilled if this worked. 09:48
AlexDaniel nevada1: in the past I also did `use Image::Magick:from<Perl5>;` for one of my projects github.com/AlexDaniel/orgsleep
nevada1 Zef install won't do because it's missing the DLL, yet the repo mentions that a precompiled 64-bit windows DLL binary is already provided. 10:04
cpan-p6 New module released to CPAN! Staticish (0.0.7) by 03JSTOWE 10:05
namibj nevada1: try to check if the dll is there wsomewhere where the code is hosted, or whether it's mentioned in some readme how to compile yourself (not that you'll do so, but it often helps with finding out why it's not working right now). I can recommend opencv though for accessing pixel data; the API I remember is really nice. 10:07
nevada1 Yeah, it would be ideal if I got it to work. I worked a bit with OpenCV in C++ and Java, but never thought Perl6 had a wrapper for it. 10:08
AlexDaniel I hope someone starts putting more love into the OpenCV module… I have some opencv stuff written in python, and also some in c++ (because apparently python bindings are not full enough) 10:16
I'd port it all to perl 6 in a heartbeat
nevada1 Found the DLL in an earlier commit. Apparently at some random point in time, the creator just dumped the resources folder. 10:34
woolfy1 Claudio Ramirez: we had cookies at FOSDEM, and they were Camelia cookies, and they were gone in less than 2 hours. Next time I have to make a thousand cookies to lure people to our side! 10:38
moritz do you have a cookie cutter in Camelia shape? 10:40
I'd love to have such a thing :) 10:41
lizmat moritz: yeah, we still have 1 left (for ourselves)
but it's 3d printed, and I understand the layout should be on thingyverse soon
Altreus Is anyone available to have a shufty at my problem here? gist.github.com/Altreus/09df5154ce...68bbf5dd74 11:08
I don't understand why the note is run despite the next
lizmat could you try naming the label something different than "match" ? 11:09
scimon Ok. This weekend I'm going to make a new VM and try doing a manual Perl6 build + run roast. If I can manage that without too much hassle I'll maybe able to pick up being release manager. But I don't want to make any promises I find too hard to keep.
Altreus okay :) 11:10
lizmat: I used «xform», same result 11:11
what if I use caps
lizmat ok, that was a long shot
no, that shouldn't make a difference, I don't think
Altreus same with caps
chee is there an expectation that files in `./lib` will load using `use`? i keep having to add `use lib "lib"` to the front of scripts
lizmat Altreus: hmmm... could you try running it with --optimize=0 ? 11:12
also: which version of rakudo are you using?
Altreus chee: ./lib is not in the default search paths. You should use perl6 -I lib script.p6 until you've installed your distribution
righto, hold on
lizmat I seem to recall that jnthn fixed something in that area last week 11:13
Altreus This is Rakudo Star version 2018.04.1 built on MoarVM version 2018.04.1 implementing Perl 6.c.
chee Altreus: cool, thank-you ^.^
Altreus wait, 04? 11:13
I'm sure I installed a later one than that
lizmat that's pretty old :)
scimon Yeah
Altreus It took long enough
I must have done that wrong. Let me install the version I thought I was installing...
Altreus oh I just got hit by how much installing stuff that is -_- 11:18
can I export my currently installed modules so I can pipe it to zef after I replace rakudo?
er, a list of them
lizmat if it is a replacement of the current install, you shouldn't have to do anything 11:26
it will recompile installed modules as you need them if they weren't precompiled for the new Rakudo version yet 11:27
lizmat has like 10 new versions of Rakudo a day, and is very glad she doesn't have to re-install anything
Altreus ah smart 11:52
if I just re-run the commands with a different tarball it should Just Work then? 11:53
lizmat never runs with tarballs 11:54
so I'm not 100% sure, but I think you should be ok then
namibj is there any sane way to get perl6 in termux on android? it's specifically armv8 with weird system paths 11:56
Altreus: go the easy eay. untarball, then do the install-moar config option. 11:58
the target path will be hardcoded though, so be careful...
Altreus OK I upgraded to 2018.10 12:26
according to perl6 -v
same behaviour though
lizmat Altreus: yeah, if it is the bug that jnthn fixed the other day, you would need to git clone the repo and install from that 12:28
Altreus scary :o 12:29
lizmat Altreus: the test.ofx file seems to be missing from the gist ? 12:32
or is that the xml file ?
ah, it is 12:33
lizmat Altreus: on HEAD, I get the same output that you do 12:37
lizmat however, it only gets into the inner if once, and then correctly goes to the next iterationn afaics 12:38
lizmat Altreus: so it feels like some sort of logic issue in your program to me 12:39
Altreus my output shows at least that iteration 1 hits both the stanza output and the note 12:47
hmm 12:48
wait, if it only gets to the inner if once, how does it produce both MARKS&SPENCER and WAITROSE stanzas?
... and why do I get two 0s 12:49
that's strange. I'm definitely going to have to hack at this
lizmat Altreus: /me is going to be afk for at least the next 10 hours 12:50
timotimo Altreus: can you try --optimize=0 on the perl6 command? perhaps our for-loop optimization is screwing something up somehow 13:03
yoleaux 05:40Z <sno> timotimo: I used most examples from Rosettacode - nothing self created beside one exception which I would like to discuss with lizmat on next niederrhein.pm first :)
Altreus duh 13:14
obviously I should be skipping to the next *transaction*
not to the next *transformation*
only one of those is likely to match
but when I find one I'm done
liz was right of course :)
thanks for everyone's eyes 13:15
Altreus I do have a new question about the NEXT phaser though gist.github.com/Altreus/b624700c36...f5c7a64c52 13:22
eh
actually I should check with the latest master before I claim this is a problem
BTW it seems like neither the homepage nor the downloads page at perl6.org actually link to the github 13:24
scimon Well they will generally be aimed at general users who are looking for stability over cutting edge. 13:27
Altreus ya but open-source projects should link to the source as a matter of course IMO 13:41
ufobat m: say '\' 13:57
camelia 5===SORRY!5=== Error while compiling <tmp>
Unable to parse expression in single quotes; couldn't find final "'" (corresponding starter was at line 1)
at <tmp>:1
------> 3say '\'7⏏5<EOL>
expecting any of:
argument list…
ufobat m: say '\\'
camelia \
ufobat oh i didnt know i need to quote that 13:58
moritz m: say Q'\'
camelia \
moritz that's the only way to avoid having to quote a backslash, iirc
ufobat do i need to do that in regexes as well 13:59
like rx/ '\\' / for a single \
moritz m: / '\' /
camelia 5===SORRY!5=== Error while compiling <tmp>
Unable to parse expression in single quotes; couldn't find final "'" (corresponding starter was at line 1)
at <tmp>:1
------> 3/ '\' /7⏏5<EOL>
expecting any of:
single quotes…
moritz m: / '\\' /
camelia ( no output )
moritz m: / \\ / 14:00
camelia ( no output )
ufobat that will be confusing in my grammar :-(
moritz seems like "yes"
timotimo put a backslash into a variable and use that :) 14:02
ufobat const \backslash = '\\'; # like that? 14:03
timotimo no, needs a $ so that the regex slang will interpolate it
otherwise would have to need $(...) 14:04
timotimo also, a slang could be built that makes a literal backslash available via some extra syntax 14:08
jnthn Or just wrote a token bs { \\ } and do <.bs> :) 14:12
*write
ufobat thats good :) 14:16
moritz but please name it <.backslash>, not <.bs> :D 14:33
mind the maintainer :)
who might not want all that bs 14:34
Altreus 6.d has fixed significant issues in our discord bot 14:41
so ... very pleased :D
excellent work
timotimo Altreus: did you see the perl6 discord? 14:44
jnthn Altreus: Quite possibly it's the non-blocking await/react
Though could be other things too 14:45
Altreus: Does that mean I've a problem less to look at? :)
Altreus jnthn: it could be so
it could also just be temporal and actually it's still broken :D
timotimo: no, what is this?
timotimo discord.gg/tbNrjc 14:46
Geth doc: 5d80ef5bc5 | Coke++ | doc/Language/nativecall.pod6
don't try to test missing library
15:49
synopsebot Link: doc.perl6.org/language/nativecall
Geth doc: 048a52a7a2 | cfa++ | 6 files
Spelling/typo fixes.
17:41
doc: f650dfee1c | cfa++ | 10 files
Further spelling/typo fixes.
17:50
Geth doc: 4127892270 | cfa++ | xt/aspell.t
Re-enable the spelling test.

This has been broken since 6a69c0b (May 2018); awk's `gsub` returns the replacement count, not the substituted string, so we were spellchecking integers rather than doc content.
This commit also drops deletion of `:` to prevent numerous false positives from type smilies. Backslash is still stripped per #975.
18:45
jmerelo .seen dfa 18:47
yoleaux 09:34Z <AlexDaniel> jmerelo: ahem… so??
I haven't seen dfa around.
jmerelo .seen cfa
yoleaux I saw cfa 4 Feb 2019 23:57Z in #perl6: <cfa> enh
jmerelo .tell cfa good catch with the awk bug. To be fair, it was broken before that. It fixed something, broke something else... 18:48
yoleaux jmerelo: I'll pass your message to cfa.
cfa o/ 18:49
yoleaux 5 Feb 2019 07:28Z <jmerelo> cfa: I run the profiler, it's not very helpful. It's allocating lots of array, and using 20% of the time garbage-collection. But arrays have lexical scope, so I don't get what's the matter.
18:48Z <jmerelo> cfa: good catch with the awk bug. To be fair, it was broken before that. It fixed something, broke something else...
cfa jmerelo: noted 18:49
jmerelo .tell AlexDaniel I've been _very_ busy with the GSoC
yoleaux jmerelo: I'll pass your message to AlexDaniel.
cfa jmerelo: i was just confused by the lack of spelling errors in the test suite; this is just from git blame
jmerelo: didn't mean to, er, cfa blame you
anyway, there're a lot of aspell complaints now :) 18:50
jmerelo cfa: I blame myself, don't worry.
cfa :)
jmerelo cfa: as I said, good job. I would have said it in the comment to the commit, but that seems to annoy people, so I do it here :-) 18:51
cfa np
jmerelo cfa: also, in general, great job you're doing on the doc site
cfa quite a few candidates to add to our local wordlist but i don't have bandwidth for the next few days
jmerelo: oh, ta
cfa jmerelo: you might still want to strip :, not sure 18:58
it's just that we get lots of complaints aobut IntD etc.
which doesn't seem ideal
AlexDaniel .
yoleaux 18:49Z <jmerelo> AlexDaniel: I've been _very_ busy with the GSoC
AlexDaniel oh right, gsoc…
cfa jmerelo: so i left it as \ removal
AlexDaniel jmerelo: so what do we do with squashathon yet?
s/yet// :D 18:59
jmerelo: I don't know, maybe the alternative is to cancel it this month (because fosdem and gsoc) 19:00
jmerelo: what I had in mind is that you could take the output from Blin and populate the issue tracker with that 19:01
most of the modules are installable now (compared to the previous unbitrot squashathon), so it will be more manageable 19:02
jmerelo AlexDaniel: I'm checking it out now 19:03
AlexDaniel: I don't think we should cancel.
AlexDaniel: If we don't have the automatic population, we'll do it by hand. Just check out modules that are failing.
AlexDaniel jmerelo: edit-issues.p6 is not going to work, populate-issues.p6 is also not good enough
jmerelo AlexDaniel: Right.
AlexDaniel: we need first a mapping from module to issues 19:04
AlexDaniel: there might be some casses where issues have not been created yet.
AlexDaniel doing it by hand is a downgrade from the previous unbitrot squashathon…
jmerelo AlexDaniel: We can start the squashathon by creating the unbitrot script 19:04
AlexDaniel jmerelo: check out this script: github.com/perl6/whateverable/blob...ce/pull-gh 19:05
jmerelo AlexDaniel: Dealing with issues is no big deal. 19:06
AlexDaniel jmerelo: well, with this script you can see which tickets already exist 19:07
jmerelo AlexDaniel: OK, I'll start with that
AlexDaniel I believe it saves every issue as a json file, or something like that
jmerelo But first, we don't cancel. 19:08
There are still some issues outstanding from the previous unbitrot
In Spain we say "the best is the enemy of the good enough".
AlexDaniel ok, I'm fine with that, and I'll be able to give you some hints 19:09
but likely not write code…
jmerelo So, admitting it would be the best to have a great automatic script (which I should have done ages ago), the "good enough" is let's work with the existing issues, and let's automate unbitrotting for next unbitrot
Also, the previous toast is, well, toast, right?
AlexDaniel: right, latest update was 2018.06 19:10
So, toast.
AlexDaniel that instance was maintained by Zoffix, toaster itself is fine 19:10
but we don't need really need toaster, we have blin 19:11
AlexDaniel s/need// :) 19:11
jmerelo: let me get this straight
jmerelo: using that script that I linked, you will get a directory with JSON files, one json file per issue
jmerelo: I can also give you the output file from Blin 19:12
it is just `ModuleName – Status`, one per line
jmerelo AlexDaniel: issues are no big deal. As I said, I got my own scripts which I did for the TPF grant. But the ModuleName-Status would be great. 19:13
AlexDaniel so, just to understand it correctly, what's the reason exactly why we can't update the status of tickets automatically?
jmerelo AlexDaniel: no reason, just I need to write the script. 19:14
AlexDaniel you also have this script: github.com/perl6/ecosystem-unbitro...-issues.p6
which edits issues
and this one that submits new ones: github.com/perl6/ecosystem-unbitro...-issues.p6
just glue it all together?
jmerelo AlexDaniel: yep. But it _needs_ to be done. I already checked that out, see the comments in the issues. 19:15
For the time being, give me the outputfile or upload it to the unbitrot repo
AlexDaniel jmerelo: gist.github.com/AlexDaniel/e7b152f...8b9c28894b 19:18
Geth ecosystem-unbitrot: 5b3585a5bd | (JJ Merelo)++ | data/blin-output.txt
Adds data to populate issues. This should be updated to the latest version
19:20
jmerelo AlexDaniel: ^^^
AlexDaniel … I… don't see how it helps…
also keep in mind that “Bisected” lines are outdated 19:24
AlexDaniel I can run it again, of course… if there's anything we can feed the output to 19:25
jmerelo AlexDaniel: no problem. It needs to be somewhere. 19:27
Geth ecosystem-unbitrot: 074d6b4694 | (JJ Merelo)++ | 2 files
Spins off and tests
19:30
Geth ecosystem-unbitrot: d12dfac5f2 | (JJ Merelo)++ | 4 files
More tests
19:41
doc: 86f72e0476 | cfa++ | 2 files
Spelling: add a few words to {code,words}.pws
19:43
doc: ea52bc10c2 | cfa++ | 2 files
Fix typos.
19:45
Geth ecosystem-unbitrot: b2711e8303 | (JJ Merelo)++ | 2 files
Adds test for getting modules
19:57
jmerelo AlexDaniel: OK, moving forward.
squashable6: status
squashable6 jmerelo, ⚠🍕 Next SQUASHathon in ≈14 hours (2019-02-09 UTC-12⌁UTC+14). See github.com/rakudo/rakudo/wiki/Mont...Squash-Day
jmerelo Yay!!!
jmerelo goes AFK for today.
andrzejku hi :) 20:13
I hadn't time to learn Perl6 last time 20:14
andrzejku but when I am tired as fuck then I think about learning it again :) 20:14
Ven`` :+1: definitely go for it 20:17
cpan-p6 New module released to CPAN! Lumberjack (0.0.7) by 03JSTOWE 20:43
andrzejku oh shit 21:26
make: *** No rule to make target '3rdparty/cmp/cmp.h', needed by 'src/main.o'. Stop.
moarvm 3rd are empty 21:32
sena_kun andrzejku, are you sure you need to build from sources? 21:36
Kaiepi do git submodule update --init --recursive 21:37
if 3rdparty is empty
Kaiepi but yeah, do you need to build from source? it's not always stable between releases 21:38
Geth Blin: 57c07072cf | (Aleks-Daniel Jakimenko-Aleksejev)++ | lib/Blin/Processing.pm6
Save both old and new logs separately
21:43
Geth doc: e9b367f3b0 | cfa++ | 2 files
Spelling: add a few more words to {code,words}.pws
22:05
doc: 87e230f1cd | cfa++ | doc/Type/IO/Handle.pod6
Fix 'endian(n)ess' typo.
synopsebot Link: doc.perl6.org/type/IO::Handle
doc: ac8942e3a6 | cfa++ | xt/code.pws
Spelling: add a few more words to code.pws
Geth Blin: 80417a8ea7 | (Aleks-Daniel Jakimenko-Aleksejev)++ | bin/blin.p6
Produce some json output

A bit LTA but good enough for some purposes. Resolves #5.
22:27
leszekdubiel Hello! 22:32
what is the simplest way to check if month 2019-10 is valid in perl6? 22:33
perl6 -e 'say Date.new("2019-01-20"); <--------- this works ok for whole date 22:34
perl6 -e 'say Date.new("2019-01"); <<<--- this doesn't work without day component
tadzik what do you mean by "month is valid?" 22:41
you can always add a -01 to the end, there's a 1st in every month... I think ;)
AlexDaniel m: say Date.new(2019, 01) 22:43
camelia Potential difficulties:
Leading 0 has no meaning. If you meant to create an octal number, use '0o' prefix; like, '0o1'. If you meant to create a string, please add quotation marks.
at <tmp>:1
------> 3say Date.new(2019, 017⏏5)…
AlexDaniel m: say Date.new(2019, 1)
camelia Cannot resolve caller new(Date:U: Int:D, Int:D); none of these signatures match:
(Date: Int:D(Any):D $year, Int:D(Any):D $month, Int:D(Any):D $day, :&formatter, *%_ --> Date:D)
(Date: Int:D(Any):D :$year!, Int:D(Any):D :$month = 1, Int:D(A…
AlexDaniel hm, I wonder why it doesn't default to 1
ah 22:44
m: say Date.new(year => 2019, => 1)
camelia 5===SORRY!5=== Error while compiling <tmp>
Preceding context expects a term, but found infix => instead.
at <tmp>:1
------> 3say Date.new(year => 2019, =>7⏏5 1)
AlexDaniel m: say Date.new(year => 2019, month => 1)
camelia 2019-01-01
AlexDaniel m: say Date.new(year => 2019, month => 13)
camelia Month out of range. Is: 13, should be in 1..12
in block <unit> at <tmp> line 1
AlexDaniel m: say Date.new(year => 2019, month => 0)
camelia Month out of range. Is: 0, should be in 1..12
in block <unit> at <tmp> line 1
AlexDaniel m: say Date.new(year => 2019, month => 2.5)
camelia 2019-02-01
tobs :D
leszekdubiel actually I can add -01 to the end... right
in perl5 i was doing like this: perl -e 'use Time::Piece; localtime()->strptime(@ARGV[0], "%Y-%m"); print "ok\n"; ' "2019-01" 22:45
and I was recently searching for strptime in perl6 but I didn't sucseed 22:46
AlexDaniel tobs: heh, “:D” it is. I remember a few years ago I was hunting for bugs like this one. For example: RT#125682 22:47
synopsebot RT#125682 [resolved]: rt.perl.org/Ticket/Display.html?id=125682 [Weird] Date overflows – 1999--14035828--4570789517646521952
AlexDaniel I like how it says “Resolving ticket :D”
RT#125681 RT#125683 RT#125686 and so on 22:49
synopsebot RT#125681 [resolved]: rt.perl.org/Ticket/Display.html?id=125681 -001-12-31 is not a good way to represent a date
RT#125683 [resolved]: rt.perl.org/Ticket/Display.html?id=125683 No timezone validation – 1994-05-03T00:00:00+100:39
RT#125686 [resolved]: rt.perl.org/Ticket/Display.html?id=125686 [Weird] DateTime overflows – month 7017915 is out of range
AlexDaniel all resolved now, of course
tobs AlexDaniel: but in this case it's not an overflow but just that 2.5 matches the range 1..12 right? 22:51
tobs m: say 2.5 ~~ Int & 1..12 22:53
camelia Invocant of method 'Bridge' must be an object instance of type 'Int', not a type object of type 'Int'. Did you forget a '.new'?
in block <unit> at <tmp> line 1
leszekdubiel And if I want to use Date::Calendar, then i should use somehow import that module from perl5, right?
tobs too bad
AlexDaniel leszekdubiel: Inline::Perl5 should be able to do that, yeah 22:55
leszekdubiel: also if you think that perl 6 is really missing that module, perhaps ask lizmat to port it :)
tobs m: say 2.5 ~~ all(Int, 1..12) 22:55
camelia False
leszekdubiel lizmat? I will google that perhaps... i dont know who lizmat is 22:57
AlexDaniel leszekdubiel: she ported many p5 modules: modules.perl6.org/search/?q=p5 22:58
or, actually, builtins, though maybe modules too? 22:59
hmm I actually never realized before that these were builtins
AlexDaniel ah, yes, some modules too: modules.perl6.org/search/?q=author...IZABETH%22 23:00
leszekdubiel Yess... date::Calendar are very important, because they allow to do business date calculations -- working days, holidays, calculating amounts of working time between dates
sena_kun I wonder if it's a lot of work to port(Date::Calendar, I mean), but my understanding of Perl 5 is nearly non-existent in any case. :| 23:01
tobs oh cool, even P5__DATA__ exists, using a slang! 23:02
leszekdubiel I think calendar operations are quite complicated. But I didn't look inside that modules. 23:03
phogg Date::Calendar is pretty tiny, but it depends Date::Calc::Object which is much less so. 23:05
sena_kun well, Perl 6 has quite a nice DateTime out of the box, in my experience, with stuff like `.later(year => 3).earlier(days => 5).day-of-week` just working correctly. 23:06
leszekdubiel Perl5 strings are very, very fast. But they have some problems with COW implementation --- rt.perl.org/Public/Bug/Display.html?id=129802 . Hope perl6 doesn't have such problems.
Also this one: www.perlmonks.org/?node_id=1197369 -- perl5 optimizes unicode hashes... and there are bugs hart to workaround 23:07
leszekdubiel printf "\x9c\x5a" | perl6 -ne '/<[^#]>*/; print 1; ' 23:11
why it dies when unicode is broken? Shouldn't it go on event if input is incorrect?
AlexDaniel leszekdubiel: what's the expected behavior? You can reopen $*IN with utf8-c8 encoding which will probably do what you want 23:20
leszekdubiel: see docs.perl6.org/language/unicode#in...ry-UTF8-C8
leszekdubiel: for example: 23:21
leszekdubiel: printf "\x9c\x5a" | perl6 -ne 'INIT { $*IN .= open(enc => ‘utf8-c8’) }; /<[^#]>*/; print 1;'
leszekdubiel Yeah! That is good... prints 1.
How to set that enc utf8-c8 for all streams, opened files, command line arguments? 23:22
In perl5 I used -CSDA on command line
AlexDaniel so that everything defaults to utf8-c8? I don't think there's a way right now… 23:23
leszekdubiel Yes... to everything that we have on input be converted as utf8-c8... because anything user supplies should be handled somehow and I don't want perl to die only because UTF-8 is malformed 23:25
as you seee... i only match against # in input... this is simple... even if user supplies malformed utf8 then perl should do its job -- check if there is no # in input 23:26
leszekdubiel anyway - thank you for hints 23:27
leszekdubiel I hope perl6 is going to be as popular as perl5 23:27
AlexDaniel leszekdubiel: IO objects (like paths) are already ut8-c8 by deault if I'm not mistaken, but yeah everything else will tend to throw 23:31
leszekdubiel: this does mean that you can CATCH these exceptions
leszekdubiel Ok, thank you. 23:32
AlexDaniel though now that I think about it, these exceptions will tend to be thrown from core methods so catching them is somewhat a PITA… 23:34
leszekdubiel I think it would be nice to tell perl6 -- "when something is wrong with unicode, then ignore and go on" or "when something is wrong, then thow exception". 23:40
timotimo it's implemented in the backend, but i'm not sure if you can pass the flag on from perl6 itself
leszekdubiel newbie question -- when reading lines $*IN.lines I know end of line is truncated, chopped of, chomp; in perl5 on linux only \n what chopped of; in perl6 both \r\n and \n are choped off? 23:41
timotimo \r\n is one grapheme, perl6 will not chop half graphemes unless you bend over backwards 23:44
leszekdubiel how to read CSV file? (first row are kolumn headers, and separated by tabs)? 23:48
printf "col1\tcol2\ncel11\tcel12\ncel21\tcel22\n" | perl6 -e 'my @colnames = $*IN.get.split("\t"); for $*IN.lines.map({ $_.split("\t") }) { dd $_; };'
i would like to have same as in perl5 : perl -e 'my @a = ( { col1 => "cell11", col2 => "cell12" }, {col1 => "cell21", col2 => "cell22" }); use Data::Dumper; print Dumper(\@a); ' 23:49
$VAR1 = [ { 'col2' => 'cell12', 'col1' => 'cell11' }, { 'col1' => 'cell21', 'col2' => 'cell22' } ]; 23:50
leszekdubiel that is array of rows, and each row is a hash of columnname => columnvalue 23:50
jnthn Something like `hash @colnames Z=> .split("\t")` in the map 23:54
leszekdubiel printf "col1\tcol2\ncel11\tcel12\ncel21\tcel22\n" | perl6 -e 'my @colnames = $*IN.get.split("\t"); my @csv = $*IN.lines.map({ hash @colnames Z=> .split("\t"); }) ; dd @csv;' 23:59
works ok: