»ö« 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. |
|||
00:03
mowcat joined
00:06
Kaiepi left
00:12
Kaiepi joined
00:15
MidCheck left
00:19
zachk left
00:34
pecastro left
00:44
lucasb left
00:45
success joined
00:46
success is now known as Guest55896
00:48
MasterDuke joined,
MasterDuke left,
MasterDuke joined
00:50
w_richard_w joined
|
|||
guifa | So long story short … using EVAL in phasers in modules is … dicey. Went about a totally different way and it’s working fine now, although I should probably learn NQP so I can better parse it | 00:58 | |
01:04
mowcat left
01:18
cpan-p6 left
01:19
cpan-p6 joined,
cpan-p6 left,
cpan-p6 joined,
Guest55896 left,
failure joined
01:20
failure is now known as Guest46214
|
|||
ugexe | pretty sure using MONKEY-SEE-NO-EVAL is going to disable precomp altogether, so its not surprising it acts strangely inside a BEGIN | 01:23 | |
01:35
hythm joined
|
|||
guifa | Aaah, that could explain a lot. | 01:36 | |
When I was poking around another error I was finding, the solution someone found for their same error message was to delete precomp, but I noticed curiously I wasn’t seeing much activity in the precomp folder | 01:37 | ||
hythm | hello, is there array method that alternates between array elements, for exampe: my @ = < a b >; @a.next gives 'a'; @a.next gives 'b', @a.next gives 'a', and so on? | 01:38 | |
s/my @/my @a/ | 01:39 | ||
guifa | p6: my @a = |<a b> xx Inf; say @a.shift for 0..10; | 01:40 | |
evalable6 | a b a b a b a b a b a |
||
guifa | It’s not quite an alternator properly said but … if you’re not going to be doing anything else with the array it should work | 01:41 | |
hythm | Thanks guifa, that works | 01:42 | |
guifa | ugexe: do you think for down the road I should look towards having my modules generate their own QAST? Right now I’m basically holding onto a large tree of objects that, though lightweight, feel … excessive. | 01:51 | |
ugexe | you could try removing use MONKEY-SEE-NO-EVAL, and using &EVAL(...) instead of EVAL ... | 02:00 | |
your example isn't runable because it has a dependency | 02:01 | ||
anyways im suggesting this based on an assumption that precomp doesn't happen because MONKEY means augment might be used, not because of EVAL | 02:03 | ||
guifa | I’ll try that. I kept both Action classes just in case (and for performance tests down the road if I came up with an EVAL solution) | 02:04 | |
But first I’m going to take the number/currency formatting | 02:05 | ||
MasterDuke | amusing..."93% of Paint Splatters Are Valid Perl Programs" news.ycombinator.com/item?id=19576425 | 02:22 | |
02:29
japh left
02:36
htc^ left
02:41
buffet joined
02:42
buffet_ left
02:53
Guest46214 left
03:01
vsss joined
03:08
success joined,
success is now known as Guest67067
03:14
zanzubarf joined
03:16
Guest67067 left,
zanzubarf left
03:17
MidCheck joined
03:29
kurahaupo left
03:30
kurahaupo joined
03:42
w_richard_w left
03:52
hythm left
|
|||
discord6 | <Tyler (Aearnus)> hey all, wrote a blog post about things I've liked while learning perl6 aearnus.github.io/2019/04/03/a-whi...t-features | 03:53 | |
<Tyler (Aearnus)> i also posted it to the subreddit | 03:55 | ||
AlexDaniel | hm, why not * %% 2 | 03:56 | |
m: (1..2 X 1..2).map: { .grep(!(* % 2)).say } | |||
evalable6 | () (2) (2) (2 2) |
||
AlexDaniel | m: (1..2 X 1..2).map: { .grep(* %% 2).say } | ||
evalable6 | () (2) (2) (2 2) |
||
masak loves %% | 04:19 | ||
aearnus++ # blog post | 04:21 | ||
guifa | aearnus++ | 04:31 | |
04:33
molaf joined
|
|||
discord6 | <Tyler (Aearnus)> Hmm? | 04:35 | |
AlexDaniel | Tyler: you're using !(* % 2) which can be written better as * %% 2 | 04:38 | |
or what was your “Hmm?” about? :) | |||
discord6 | <Tyler (Aearnus)> the hmm was about the aearnus++. But I see what you're saying, let me edit the blog post real fast. Thanks | 04:41 | |
masak | "aearnus++" means "good job, aearnus!" | 04:45 | |
discord6 | <Tyler (Aearnus)> ah heck, thanks 😃 | ||
masak | we're incrementing your karma, which is stored in the substrate of the universe | 04:46 | |
discord6 | <Tyler (Aearnus)> AlexDaniel: fixed it & credited you in the post | 04:48 | |
<Tyler (Aearnus)> and I will gladly accept the cosmic karma heading my way 😃 | 04:49 | ||
04:51
curan joined
|
|||
masak | as if you have any choice in the matter... :P | 04:56 | |
05:08
sauvin joined
05:15
jmerelo joined
|
|||
jmerelo | squashable6: status | 05:15 | |
squashable6 | jmerelo, ⚠🍕 Next SQUASHathon in ≈6 hours (2019-04-06 UTC-14⌁UTC+12). See github.com/rakudo/rakudo/wiki/Mont...Squash-Day | ||
05:27
MidCheck left,
kurahaupo_ joined
05:29
kurahaupo left
05:31
domidumont joined
05:32
kurahaupo_ left
05:47
w_richard_w joined
05:49
domidumont left
05:52
MidCheck joined
|
|||
Geth | doc: 615058ecab | (JJ Merelo)++ | doc/Type/Junction.pod6 Adds explanation of autothreading closes #2708 |
06:01 | |
doc: 3fa8c94c42 | (JJ Merelo)++ | doc/Type/Any.pod6 Adds a simple note saying classify works with Junctions. Maybe add an example under request or when the Rakudo issue is clarified. |
|||
synopsebot_ | Link: doc.perl6.org/type/Junction | ||
Link: doc.perl6.org/type/Any | |||
06:10
domidumont joined
06:31
mack[m] left,
Demos[m] left,
Matthew[m] left,
MitarashiDango[m left,
tyil[m] left,
AlexDaniel` left,
Garland_g[m] left,
Seance[m] left,
tyil[m]1 left,
lance_w[m] left,
irdr left
|
|||
tony-o | jmerelo: #2814, that output seems sane to me | 06:33 | |
06:34
success joined
|
|||
tony-o | added an explanation to it | 06:34 | |
06:34
vsss left,
success is now known as Guest79393
06:35
vsss joined,
vsss left,
cgfbee left,
vsss joined,
vsss left
06:36
vsss joined,
vsss left,
vsss joined,
irdr joined,
netrino joined
06:39
AlexDaniel` joined
06:41
cgfbee joined
|
|||
jmerelo | tony-o: There seems to be two layers of autothreading going on | 06:42 | |
tony-o: and they don't seem to be working well with each other. For instance, why is the first element in the list only repeated once, while the rest are repeated either the junction cardinality of that minus one if it does not match? | 06:43 | ||
06:43
pistacchio left,
pistacchio joined
|
|||
jmerelo | tony-o: the difference with ~~ is that maybe it does not autothread, or works differently with Junctions | 06:43 | |
jmerelo has to leave for $work | |||
06:43
jmerelo left
|
|||
tony-o | it produces differently from junctions | 06:44 | |
it returns the result of any(True, False, False) rather than (True, False, False) itself | 06:45 | ||
06:45
Matthew[m] joined,
lance_w[m] joined,
Demos[m] joined,
MatrixTravelerbo joined,
tyil[m]1 joined,
tyil[m] joined,
Garland_g[m] joined,
MitarashiDango[m joined,
Seance[m] joined,
mack[m] joined
06:57
rindolf joined
07:01
rtw_ joined
|
|||
discord6 | <timotimo> cool post @Tyler (Aearnus) | 07:04 | |
<timotimo> may i ask what you like more about the ~~~ operator compared to heredocs? i happen to love heredocs | |||
07:05
rtw_ left
07:18
guifa left
07:19
guifa joined
|
|||
discord6 | <Tyler (Aearnus)> @timotimo what I ran into was that the indentation on the heredoc went kind of wonky -- I wanted to keep the indentation aligned with the indentation level of my function | 07:24 | |
<Tyler (Aearnus)> just looked prettier in the code imo | |||
<timotimo> heredocs will de-indent based on the indentation of the end marker, or at least they're supposed to | 07:25 | ||
<timotimo> can always have bugs | 07:26 | ||
masak | aearnus: strangelyconsistent.org/blog/here-be-heredocs -- might be a helpful read | 07:27 | |
(that's my favorite use of the Whatever star `*`, by the way) :) | 07:30 | ||
discord6 | <Tyler (Aearnus)> ah, that's a nice article. Thanks! | 07:31 | |
<Vendethiel> .oO( we should invent a *** ) | 07:32 | ||
<Tyler (Aearnus)> hyper-hyper-whatever | |||
timotimo | m: (** % 2)((1..2) X (1..2)).say | ||
evalable6 | (1 1 1 0 0 1 0 0) | ||
discord6 | <Vendethiel> Well, it’s currently valid, so... | ||
07:41
Sgeo_ left,
Sgeo_ joined
07:46
rtw_ joined
07:53
netrino left
07:57
maettu left
07:58
rtw_ left,
rtw_ joined
08:00
aindilis joined
08:06
rtw_ left
08:10
andrzejku joined,
zakharyas joined
08:11
rtw_ joined
08:14
rtw_ left
08:17
robertle_ joined
|
|||
masak is playing with NFAs today | 08:29 | ||
08:30
rindolf left
|
|||
masak | when people are writing grammars, do you usually establish a whitespace convention, like "every rule expects whitespace to have been parsed before itself, and commits to always handle whitespace at its end (either directly or through tailcalls)" | 08:33 | |
...? | |||
timotimo | what kind of play are we talking about here? :) | 08:35 | |
oh, i think i might never actually have merged nqp::nfatostatelist | |||
tadzik | masak: off the top of my head, "each rule handles whitespace between its children" seems natural to me | 08:37 | |
08:37
rindolf joined
|
|||
masak | timotimo: github.com/masak/007/issues/485 | 08:39 | |
timotimo | oooh, "is parsed"! | ||
masak | timotimo: my fairly immediate goal is to have a parser that can be (lexically) extended at parse-time | ||
NFAs enter the picture, because when you mutate your parser as you parse, you need something flexible to dispatch into the rules, new and old | 08:40 | ||
tadzik: hm, I need to think about that. :) in my grammar right now it looks more like "after children" | 08:42 | ||
masak wrote a grammar for grammars, to translate into the NFA | |||
heh. 15 years with Perl 6, and I'm still all "what the heck is a Seq?" :P | 08:43 | ||
it's an immutable... somethingsomething of, um, and containers, no, of elements. yeah. | 08:44 | ||
Chaz6 | it reminds me a bit of rust | 08:45 | |
08:45
w_richard_w left
|
|||
Chaz6 | i'm too dumb for rust :( | 08:45 | |
Woodi | hi #perl6 :) | ||
08:46
aborazmeh joined
|
|||
masak | Chaz6: Rust isn't the language we're smart enough for, but it's the language we deserve :D | 08:46 | |
Woodi | where to buy moritz++ book in paper form ? apress is somewhere in Europe ? :) | ||
masak | Woodi: ahoj | ||
Woodi | *book about grammars :) | ||
I realy need to learn this... | 08:47 | ||
tyil | trying to install LibUUID fails during testing phase: "Cannot locate native library 'libuuid.so': /usr/lib64/libuuid.so: invalid ELF header", if I install with --/test that error comes up when I want to use it | 08:49 | |
(I'm trying to use DB::Pg) | 08:50 | ||
08:50
aborazmeh left
|
|||
timotimo | tyil: cat that file, it's probably a so script | 08:50 | |
we don't have support for those yet | |||
tyil | :< | 08:51 | |
is there a way to work around it? | |||
timotimo | yeah, replace it with a symlink or put an explicit version into th "is native", or at least i think that'd do it | 08:52 | |
i don't remember where i last encountered those | 08:54 | ||
in theory we can put a parser for them into NativeCall | |||
tyil | they appear on Gentoo it seems | ||
(with a comment in the file, and a reference to a bug number) | |||
timotimo: that seems to work around the issue for now | 08:57 | ||
thanks :> | |||
timotimo | what's that gentoo bug about? | ||
tyil | bugs.gentoo.org/4411, sys-devel/gcc uses static libs in /usr/lib before it will use a dynamic lib in /lib | 08:58 | |
timotimo | i wonder if that's still necessary? | ||
Bug 290974 - linker scripts and dlopening direct library names - bugs.gentoo.org/290974 | 08:59 | ||
this is surely also relevant | |||
(Note: for ghc I have a patch that reads the linker script and uses a regular expression to find the GROUP ( ... ) command. Is this generalizable? Is it the right way to go?) | 09:00 | ||
tyil | I am not familiar with Gentoo internals on a level to give a valuable reply here, sorry | ||
timotimo | ^- if we make something that's bug-compatible with ghc, surely we will run into less problems with existing libraries and less resistance from distro maintainers to making stuff work | ||
tyil | I can test things if you want to, though | 09:01 | |
timotimo | i don't have a good idea yet, though it ought to be easy for me to set up my own gentoo; the installation procedure hasn't changed in the last 5 years, has it? :) | ||
i still remember when "modular x.org" was the "hot new thing" | 09:02 | ||
moritz | Woodi: apress is part of springer, which is US. You can also buy it from amazon | ||
tyil | installing Gentoo isn't the hardest part, and afaik not much has changed | 09:03 | |
if it'd help you, I have a binhost available on home.tyil.nl/packages/, it may contain some things | |||
timotimo | oh, binhost is actually not a thing i've tried yet | 09:04 | |
is eix still the search tool of choice? | |||
tyil | it is to me :) | ||
Woodi | moritz: oki, thanx | ||
09:05
pradip joined
09:08
pradip left
|
|||
moritz | also, author's rant here: I feel much better about my regexes + grammar book than about fundamentals, but fundamentals sells much better | 09:10 | |
tyil | possibly because fundamentals touches upon more aspects, whereas regex/grammar is a more specific aspect of the language not everyone needs to know in-depth? | 09:11 | |
moritz | regexes + grammars have a much clearer defined scope, and that makes it possible to go much more in depth and cover it well | ||
tyil: exactly | |||
I feel I could write a 500 pages "Perl 6 Fundamentals" book :/ | |||
tyil | I haven't read the fundamentals book, but I like the regex/grammar book so far :> | ||
moritz | tyil: you're not in the target audience for fundamentals, I believe :D | 09:12 | |
tyil | I wonder if someone's working on a Perl 6 book outlining all the ways to do multi-process stuff, with examples, pros/cons etc... | ||
I don't think I am in that target audience anymore, but I generally like to work through beginner stuff on Perl 6 to get a feel of how to best explain things to non-perlers | 09:13 | ||
09:14
aborazmeh joined,
aborazmeh left
09:15
aborazmeh joined
|
|||
tyil | then again, reading books is time-consuming | 09:15 | |
and I have plenty of bugs to resolve in my own code :'D | |||
Woodi | if someone wants idea for book: learn basic programming in 90% of languages at once. variables/types/if/for/while/functions/classes :) | ||
why limit reader to one language only ??? | 09:16 | ||
09:18
aborazmeh left
|
|||
discord6 | <Tyler (Aearnus)> huh, that blog post is on the front page of /r/programming | 09:25 | |
<Tyler (Aearnus)> I'd have never thought | |||
<timotimo> oh, congrats! | |||
09:30
Sgeo__ joined
09:33
rindolf left,
Sgeo_ left
|
|||
discord6 | <Vendethiel> masak: I always get confused and let tests help me (with regards to whitespace) | 09:38 | |
timotimo | you know ... | ||
perlbot | Patrickwoump pasted a new file at perlbot.pl/p/nj8vvg - | ||
timotimo | there should be a test module especially for dealing with grammars to make sure a given character was parsed by a particular rule | ||
that could be a cool thing | |||
or maybe just using xliff's gtk grammar visualization tool | 09:39 | ||
09:46
japh joined
09:49
aborazmeh joined,
aborazmeh left,
aborazmeh joined
09:52
domidumont left
|
|||
masak | Vendethiel: yeah, you don't say. I don't know any other way to develop grammars and get the whitespace *right*, except to use tests ;) | 09:52 | |
09:53
cpan-p6 left,
Demos[m] left,
tyil[m] left,
MatrixTravelerbo left,
mack[m] left,
lance_w[m] left,
Garland_g[m] left,
Matthew[m] left
|
|||
masak | I mean, that goes for most things that are even moderately complex. but especially for whitespace in grammars. | 09:53 | |
09:53
irdr left,
cpan-p6 joined,
cpan-p6 left,
cpan-p6 joined
09:54
sena_kun joined
09:56
vsss left
|
|||
jnthn | Having the places that rules match sigspace marked by the editor is also kinda helpful :) | 09:56 | |
09:56
irdr joined,
AlexDaniel` left
09:57
MitarashiDango[m left,
vsss joined,
vsss left,
rindolf joined,
vsss joined,
vsss left,
Seance[m] left,
tyil[m]1 left,
vsss joined
09:58
vsss left,
vsss joined
|
|||
masak | jnthn: conversely, _not_ having any feedback about that is kinda insane :P | 09:58 | |
jnthn | Well, one can know the rules also :) | 09:59 | |
10:00
AlexDaniel` joined
|
|||
jnthn | But yeah, it's much nicer :) | 10:00 | |
10:00
aindilis left
10:01
aindilis joined
|
|||
discord6 | <Vendethiel> masak: I think it's the thing I'm most excited about in Comma :) | 10:01 | |
<Vendethiel> having a visual cue for whitespace-ness | |||
10:23
aborazmeh left
10:28
Black_Ribbon left
|
|||
masak | jnthn: every time I hear an argument that's a variation of "it's sufficient for the programmer simply to not commit the mistakes", my brain goes "yeah... no" :) | 10:39 | |
10:40
Demos[m] joined,
Matthew[m] joined,
lance_w[m] joined
|
|||
masak | (and now someone is going to chew me over for my split infinitive, and we can have a nice discussion about vestigial rules from Latin) :P | 10:40 | |
10:40
Garland_g[m] joined,
tyil[m] joined,
tyil[m]1 joined,
MitarashiDango[m joined
10:41
Seance[m] joined,
mack[m] joined,
pistacchio left,
pistacchio joined
10:42
pecastro joined
10:50
kensanata joined
|
|||
discord6 | <Tyler (Aearnus)> it's very late here and I ought to sleep, but I finished up another thing that I've been writing and I want to share it with you all aearnus.github.io/2019/04/05/perl6...s-worst-ml | 10:53 | |
10:56
sftp left
10:58
psm joined
10:59
irco joined
11:00
zakharyas left
|
|||
sjn | After reading that, I'm left thinking "This Apple is the World's Worst Orange!" | 11:00 | |
lizmat | sjn: and your right thinking says? | 11:01 | |
sjn | I don't think right :) | ||
masak | "Thinking right is left as an exercise for the reader." | ||
sena_kun | well, a "good" programmer in FORTRAN can write a FORTRAN program in any... you get the idea. | 11:02 | |
masak | sena_kun: ah, "Real Programmers Don't Use Pascal". been a while since I read it. | 11:03 | |
hahainternet | masak: i'm going to chew you out for "that's" instead of "which" :) | ||
masak | haha | 11:04 | |
hahainternet | also, are there really 'good' programmers? | ||
what does that even mean? | |||
there are knowledgable programmers, and highly skilled programmers | |||
masak | hahainternet: they taste good | ||
hahainternet | but the closest to good i think we come is having good days | ||
masak: lots of fat and a hint of cheeto? :p | |||
sjn | There are also programmers that are aware of the True Scotsman fallacy | ||
discord6 | <Tyler (Aearnus)> only the ones who can redirect solar waves using butterfly wings really qualify as good | ||
masak | sjn: being aware of the True Scotsman fallacy is indicative of being a Real Programmer :P | 11:05 | |
sjn | There are No True Scotsmen :) | ||
lizmat | I thought there only could be one ? | 11:06 | |
masak | that's an approximation | ||
sjn | possible off-by-one error | ||
masak .oO( Real Programmers only make off-by-two errors ) | 11:10 | ||
hahainternet | real programmers have programmed subordinates to do the work for them | ||
lizmat | which explains why real programmers make bad real managers: programming real subordinates is not logical | 11:14 | |
masak | oh, like Agatha in Girl Genius -- who is such a strong Spark (inventive, Mad Scientist-style person) that even her mechanical inventions are Sparks | 11:15 | |
hahainternet | alternately: the best programmers are those who can deal with illogical programming languages | ||
ultimately my point here is that there's no generic attribute 'programming skill' | |||
it's a composite | |||
and a big factor is how are you feeling that day, get enough sleep? got too much stress? | |||
masak | that's why I like to write tests. I never know what kind of day I'm having. | 11:16 | |
hahainternet | so it's silly to talk as if there's an inherent attribute that makes people 'good' | ||
in reality there is only well written code, or non well written code | |||
and what that means is fully contextual | |||
11:21
Sgeo_ joined
11:24
Sgeo__ left
11:34
jmerelo joined
|
|||
jmerelo | squashable6: status | 11:34 | |
squashable6 | jmerelo, ⚠🍕 Next SQUASHathon is in 25 minutes (2019-04-06 UTC-14⌁UTC+12). See github.com/rakudo/rakudo/wiki/Mont...Squash-Day | ||
jmerelo | I have created instructions for this squashathon: github.com/rakudo/rakudo/wiki/Squa...ed-modules | ||
Basically is: work on the community modules, tell everyone via an issue which module you'll be focusing in, let someone else add the hook | 11:35 | ||
masak | right. Alan Turing wrote awful code, for example. all the code in his paper is made up of state machines; computed gotos and emulation. | ||
hahainternet | masak: totally agree, so we can use words like 'visionary' and 'paradigm shifting' | ||
but not 'good programmer' :p | |||
jmerelo | I think I know how to do that... But if I fail, please ask AlexDaniel to add the hook to that particular repo | ||
hahainternet | (i'm aware babbage and lovelace predated turing) | ||
jmerelo | Everyone's invited! | 11:36 | |
11:37
jmerelo left
11:40
vrurg left
11:44
domidumont joined,
agentzh left
11:45
sftp joined
11:46
agentzh joined,
pistacchio left,
pistacchio joined
11:50
Sgeo__ joined
11:53
Sgeo_ left,
psm left,
aborazmeh joined,
aborazmeh left,
aborazmeh joined
11:57
mowcat joined,
MidCheck left
11:58
jhill left
12:00
jhill joined
12:10
jhill left
12:12
SergiusUA joined,
jhill joined,
araraloren joined
12:16
__jrjsmr_ joined
|
|||
kawaii | is there anywhere selling those Camelia plushies? | 12:16 | |
12:20
pmurias joined
|
|||
discord6 | <timotimo> @Tyler (Aearnus) you don't have to given $maybe.WHAT when you're when-ing types, as types will already do typechecks as their smart match behaviour 😃 | 12:20 | |
12:27
aborazmeh left
|
|||
pmurias | masak: is code by alan turing available somewhere? | 12:34 | |
Juerd | kawaii: lizmat and woolfy know everything about the stuffed camelias :) | 12:35 | |
kawaii | lizmat: ... :) | 12:36 | |
12:42
Actualeyes joined
12:44
Sgeo_ joined
12:47
Sgeo__ left
12:50
zakharyas joined
|
|||
SmokeMachine | I think I proposed some time ago new named args to `classify`... I don't remember if someone has given any opinion... the suggestion was to add: `:&reduce`, `:&produce`and `:$initial-value`, so, `^10.classify: * %% 2, :reduce(&[+])` would return `{True => 25, False => 20}` | 12:52 | |
and `^10.classify: * %% 2, :produce(&[+])` would return `({}, {True => 0}, {True => 0, False => 1}, {True => 2, False => 1}, {True => 2, False => 4}, {True => 6, False => 4}, {True => 6, False => 9}, {True => 12, False => 9}, {True => 12, False => 16}, {True => 20, False => 16}, {True => 20, False => 25}).Seq` | 12:56 | ||
sena_kun | SmokeMachine, maybe github.com/perl6/problem-solving/b.../README.md can help? | 12:57 | |
SmokeMachine | sena_kun: yes, maybe... | 12:58 | |
sena_kun: thanks! | |||
tadzik | I thought 00000001 is the commit hash | 12:59 | |
now I'm super disappointed :( | |||
timotimo | there's a nice tool that'll bruteforce commit hashes | 13:03 | |
13:07
SergiusUA left
13:09
robertle_ left
13:10
ufobat_ joined
13:14
ufobat__ left,
abraxxa left
13:15
vrurg joined
|
|||
SmokeMachine | sena_kun: github.com/perl6/problem-solving/issues/6 | 13:16 | |
13:16
__jrjsmr_ left
|
|||
lizmat | kawaii: become the winner of the Squashathon this weekend, and we'll send you one for free! | 13:18 | |
13:18
lelf joined
|
|||
SmokeMachine | m: say given 42 {} | 13:19 | |
evalable6 | (exit code 1) 04===SORRY!04=== Error while compiling /tmp/d9n57jmzv7 Unsuppo… |
||
SmokeMachine, Full output: gist.github.com/7e5769aaf7227a5842...3194430a17 | |||
SmokeMachine | m: given 42 { .say } | ||
evalable6 | 42 | ||
SmokeMachine | m: say given 42 { .say } | 13:20 | |
evalable6 | (exit code 1) 04===SORRY!04=== Error while compiling /tmp/ONDn3BESBI Unsuppo… |
||
SmokeMachine, Full output: gist.github.com/e75122bfff4ea7d546...9bfb3b1f3b | |||
SmokeMachine | m: say do given 42 { .say } | ||
evalable6 | 42 True |
||
lelf | Hi. There is no built-in way to do (unicode) segmentation, is it? | ||
timotimo | lelf: by segmentation you mean going from utf8 to codepoints? | 13:21 | |
13:21
curan left
|
|||
lelf | timotimo: No. Word segmentation for example | 13:21 | |
SmokeMachine | I don't know why, but in my mind, I would expect the `do given 42 { "bla" }` (that is correct) and `given 42 { "bla" }` to return 42... | ||
13:22
skids joined
|
|||
timotimo | huh, like .words? | 13:22 | |
tadzik | yeah, after seeing more statements being expressions in other languages I always miss them when they aren't there | ||
SmokeMachine | m: sub bla(Int $bla is copy) { given $copy { $copy++ } }; bla 41 # it would be great if it return 42... | 13:23 | |
evalable6 | (exit code 1) 04===SORRY!04=== Error while compiling /tmp/xlwREfqr4d Variabl… |
||
SmokeMachine, Full output: gist.github.com/eb798b02010aaa855a...8c95ad88b5 | |||
lelf | timotimo: No. Like unicode.org/reports/tr29 :) | 13:25 | |
timotimo | ah, ok; i think we only have built-in grapheme cluster segmentation? | ||
masak | pmurias: I was thinking of his en.wikipedia.org/wiki/Turing%27s_proof paper ("On Computable Numbers, with an Application to the Entscheidungsproblem") | 13:26 | |
timotimo | but you can use the word_break property in reegxes | ||
13:27
Guest16965 joined
|
|||
timotimo | lelf: some parts of the word break algo are already forced by how perl6 does NFG, like "do not break within CRLF" or "do not break within emoji zwj sequences" | 13:27 | |
i believe also "do not break within emoji flag sequences" | 13:28 | ||
lelf | timotimo: that's not enough | ||
SmokeMachine | correcting my sentence: I don't know why, but in my mind, I would expect the `do given 42 { "bla" }` return "bla" (that is correct) and `given 42 { "bla" }` to return 42... | 13:29 | |
lelf | timotimo: would be great to have something like icu. but seems there are no perl6 libs yet | ||
timotimo | unicodable6: 는 | ||
unicodable6 | timotimo, U+B294 HANGUL SYLLABLE NEUN [Lo] (는) | ||
timotimo | unicodable6: help | 13:30 | |
unicodable6 | timotimo, Just type any Unicode character or part of a character name. Alternatively, you can also provide a code snippet. # See wiki for more examples: github.com/perl6/whateverable/wiki/Unicodable | ||
lelf | timotimo: like icu = ability segment chinese (using dictionary) | ||
timotimo | unidump: 는 | ||
unicodable6 | timotimo, gist.github.com/f9daaedbf2c122bcc9...c102d33b8e | ||
timotimo | ^- what info is missing from there? | ||
masak | SmokeMachine: the former is immediate to me, but the latter is not. it's not even clear to me that statements need to have a value at all. | 13:31 | |
13:31
mowcat left
|
|||
lelf | m: say '函数的调用使用空格符而不是括号'.uniprops('word_break') | 13:33 | |
SmokeMachine | masak: I think a `given` (if without a `do`) would make more sense if return what's being given... | ||
evalable6 | (Other Other Other Other Other Other Other Other Other Other Other Other Other Other Other) | ||
lelf | timotimo: ^^ yet there are 9 words | 13:34 | |
timotimo | OK, so without an actual dictionary we can't get this right? | ||
SmokeMachine | masak: I am repeating my self doing `sub bla($obj) { given $obj { ... }; $obj }` every time... | 13:35 | |
pmurias | masak: Turing didn't live to see the creation of high level programming languages, so comparing how good he was at something that didn't really exist is a bit of philosophical discussion | 13:36 | |
lelf | timotimo: yep. but look at icu, it can do it (although it'd be a lot to write). But even just TR29 would be great to have. I mean just 「.segment(:words)」 | 13:37 | |
13:39
kensanata left,
SergiusUA joined
13:40
molaf left
|
|||
SmokeMachine | masak: Id like to be able to use `given` as this: kotlinlang.org/api/latest/jvm/stdl.../also.html | 13:41 | |
13:44
__jrjsmrtn__ joined
13:45
__jrjsmrtn__ left
|
|||
masak | SmokeMachine: I hear you, about the intuition. not sure I share that intuition, though. for one, I'd be terribly confused if `do given` and `given` started giving back different values. | 13:48 | |
SmokeMachine | masak: yes... that would be confuse... | 13:49 | |
masak: that way Kotlin can attach methods to another classes without changing it is something I miss in perl6... | 13:50 | ||
13:50
__jrjsmrtn__ joined
|
|||
jnthn | SmokeMachine: .&foo lets you call something much as if it was a method, though | 13:52 | |
13:52
__jrjsmrtn__ left
|
|||
masak loves .&foo | 13:53 | ||
SmokeMachine | jnthn: yes... but that's not declared like that... I mean this: kotlinlang.org/docs/reference/func...x-notation | ||
masak | I love how .&foo is essentially a *discovered* feature, because it wasn't designed with the & sigil specifically in mind | ||
SmokeMachine: I've been looking at generic functions today, like CLOS and Dylan have. been musing whether to switch 007 over to them, instead of methods. | 13:54 | ||
13:55
__jrjsmrtn__ joined,
ctilmes joined
|
|||
pmurias | in the Kernel docs it would be good to have proper descriptions of what .arch and other uname using methods really return | 13:58 | |
masak .oO( it returns a vaulted doorway ) | 14:00 | ||
jnthn | SmokeMachine: Isn't that just `sub infix:<shl>($a, $b) { $a.shl($b) }`? | 14:01 | |
SmokeMachine | jnthn: it wouldn't change the self... | 14:02 | |
jnthn: no... it wouldn't call a method on $a... the method do not exist in $a... | 14:04 | ||
14:06
ravenousmoose_ left
14:07
lucasb joined
|
|||
cpan-p6 | New module released to CPAN! LibUUID (0.3) by 03CTILMES | 14:08 | |
skids | .oO( maybe sub bla ($_--> $_) { } could be made towork (currently "malformed retuen value") ) |
||
ctilmes | tyil: I uploaded a new LibUUID that explicitly uses libuuid v1 instead of relying on the link from libuuid.so to it | 14:09 | |
kawaii | ctilmes: unrelated but thank you for making Redis::Async :) | 14:10 | |
ctilmes | kawaii: ty -- I've learned a lot since I did that -- I may need to revisit it at some point. I used it to dump a bunch of data into redis much faster than the Perlish Redis module though.. | 14:11 | |
SmokeMachine | jnthn: sorry, that was the wrong anchor... | ||
I was meaning this: glot.io/snippets/fb0j9x5ujq | 14:12 | ||
jnthn: it's not an augment... its not changing the Int... | |||
14:14
ravenousmoose joined
|
|||
ugexe | ctilmes: that broke libuuid on my system | 14:16 | |
ctilmes | ugexe: Do you have libuuid.so.1? or just libuuid.so? | 14:17 | |
ugexe | just libuuid.so | ||
really libuuid.dynlib | |||
ctilmes | Oh... Mac... Any hints how I should handle it? | ||
SmokeMachine | AlexDaniel: Have I used the repo for the wrong propose? | 14:18 | |
ugexe | i dont think it'll be only broken on osx, and am willing to bet many linuxes also don't create the .1 etc | ||
AlexDaniel | SmokeMachine: no, it's the right repo | ||
SmokeMachine: but you're proposing a solution without stating a problem | |||
ugexe | im not sure there is a good solution for determining if you need mylib.so.1 vs mylib.so | 14:19 | |
ctilmes | Some people have libuuid.so, some have libuuid.so.1, some have both | ||
ugexe | right | ||
ctilmes | or .dylib, or .dll | ||
ugexe | its probably a problem NativeCall should be solving, but im not sure how it would do it | 14:20 | |
SmokeMachine | AlexDaniel: I have to do that by hand some times before, and ended up not using classify because it would be worst to write and have to loop throw each key and reduce each value (on reduce case)... | 14:21 | |
ugexe | m: use NativeCall; my $throwaway-sub = sub { }; $throwaway-sub does NativeCall::Native[$throwaway-sub, sub { "libuuid.dylib" } ]; $throwaway-sub() | ||
evalable6 | (exit code 1) WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, y… | ||
ugexe, Full output: gist.github.com/e819f3133144484f65...1f7ac9d9a7 | |||
AlexDaniel | SmokeMachine: in the ticket, please | ||
ugexe | you can use that to determine if they have specifically "libuuid.dylib" | ||
if the error says "Cannot locate symbol '' in native library 'libuuid.dylib'" then they have that lib | |||
ctilmes | ugexe: Should I make LibUUID use github.com/salortiz/NativeLibs | 14:22 | |
AlexDaniel | SmokeMachine: also maybe it'd be nice to see the code that does looping and stuff, so that's it's easier to see that there's actually an issue | ||
ctilmes | ugexe: I think it just does what you described | ||
ugexe | yeah then that might be an ok interm solution | 14:23 | |
SmokeMachine | AlexDaniel: Im answering... Ill try to find the example when I get home... | ||
ugexe | im not sure that module is doing what i did though... i think its actually looking for files whereas mine was seeing if known variants work | 14:24 | |
either way it seems to try to solve that problem | 14:25 | ||
SmokeMachine | jnthn: Now I've found it: kotlinlang.org/docs/reference/extensions.html | 14:28 | |
AlexDaniel | squashable6: status | 14:29 | |
squashable6 | AlexDaniel, 🍕🍕 SQUASHathon is in progress! The end of the event in 1 day and ≈23 hours. See github.com/rakudo/rakudo/wiki/Mont...Squash-Day | ||
ctilmes | ugexe: NativeLibs lets me specify a list of versions to try, but not 'no version' | 14:30 | |
14:31
squashable6 left
14:33
squashable6 joined,
ChanServ sets mode: +v squashable6
|
|||
ctilmes | ugexe: github.com/salortiz/NativeLibs/issues/4 | 14:34 | |
squashable6 | Webhook for perl6/ecosystem is now active! Responsive is better than fast. | 14:35 | |
cpan-p6 | New module released to CPAN! LibUUID (0.4) by 03CTILMES | 14:53 | |
ctilmes | ugexe -- Try LibUUID now -- should support both version 1 and no version | ||
ugexe: -- Try LibUUID now -- should support both version 1 and no version | 14:54 | ||
Now I have to re-release all my modules using NativeLibs to find their libraries | |||
14:55
pmurias left
|
|||
SmokeMachine | jnthn: this kind of extension would be great to define cast on core types for custom ones... | 14:56 | |
15:05
jmerelo joined,
abraxxa joined
|
|||
jmerelo | squashable6: status | 15:06 | |
squashable6 | jmerelo, 🍕🍕 SQUASHathon is in progress! The end of the event in 1 day and ≈22 hours. See github.com/rakudo/rakudo/wiki/Mont...Squash-Day | ||
jmerelo, Log and stats: gist.github.com/70131c2fe466cecf5a...84bff79736 | |||
jmerelo | Not unexpected... | ||
sena_kun | I am planning to write a LDIF module for some time already, just need some free time, which is a big no-no. It is on most wanted list, so will be removed later. | 15:08 | |
ugexe | ctilmes: actually that way is broken as well | ||
jmerelo | sena_kun: that would be great. During this weekend? | ||
ugexe | beacuse DBIish includes its own NativeLibs module | ||
sena_kun | jmerelo, also note that it is still Friday for a lot of people, not Saturday. | ||
ugexe | and gets chosen over the standalone lib | ||
sena_kun | jmerelo, well, I can try to get it after work, yes. | 15:09 | |
ugexe | you can see via `zef info DBIish` | ||
15:10
abraxxa left
|
|||
ctilmes | Ah. I see -- If I 'use NativeLibs:auth<github:salortiz>' would that do it? | 15:10 | |
ugexe | yeah | ||
and `depends : ["NativeLibs:auth<github:salortiz>"]` | 15:11 | ||
15:11
pmurias joined
15:12
ravenousmoose left
15:20
kurahaupo joined
|
|||
cpan-p6 | New module released to CPAN! LibUUID (0.5) by 03CTILMES | 15:23 | |
15:23
abraxxa joined
15:27
__jrjsmrtn__ left
15:30
hythm_ joined
|
|||
jmerelo | sena_kun: including me... thanks! | 15:30 | |
hythm_ | p6: $*IN.put: 'test'; # how to properly write text to STDIN? | 15:31 | |
evalable6 | (exit code 1) Failed to write bytes to filehandle: Bad file descriptor in block <unit> at /tmp/1vbjR1l2av line 1 |
||
ugexe | ctilmes: bad news -- NativeLibs doesn't pass its tests (on osx at least) | 15:32 | |
hythm_ | the above works in repl, but it adds 'True' to the end of text | ||
ctilmes | ugexe: Argh.. | 15:33 | |
ugexe | it might just be a poorly written test though | 15:34 | |
github.com/salortiz/NativeLibs/blo....t#L30-L31 | |||
they never adjust the test count | 15:35 | ||
15:35
andrzejku left
|
|||
ugexe | based on the system and differing number of tests | 15:35 | |
ctilmes | needs a 'skip "no test for darwin", 4;' in there? | ||
ugexe | i think it needs to remove the plan altogether, because windows doesn't have the same test count as linux either | 15:36 | |
ctilmes | ah | ||
should be refactored with subtest maybe? | |||
ugexe | that or remove `plan` in favor of just 'done-testing()' | 15:37 | |
15:45
lookatme_q left,
lookatme_q joined
15:47
pmurias left
|
|||
lucs | How do I declare a MAIN that can handle 0 or more of the same named argument, like 'foo.p6 -a=42 -b=abc -a=66 -b=def'? | 15:49 | |
15:52
zakharyas left
|
|||
araraloren | maybe using :@b ? | 15:52 | |
maybe using :@a ? | |||
El_Che | named parameters are optional, yes | 15:54 | |
lucs | r: @*ARGS = <-a=42 -a=66>; sub MAIN ( :@a ) { .say for @a } | 15:59 | |
perlbot | lucs: 4266 | ||
lucs | r: @*ARGS = <-a=42>; sub MAIN ( :@a ) { .say for @a } | ||
perlbot | lucs: Usage: /tmp/xXPOVxGlZi [-a=<Positional>][Exited 2] | ||
lucs | :( | ||
16:00
__jrjsmrtn__ joined
|
|||
lucs | (not sure how to test for 0) | 16:00 | |
r: @*ARGS = (); sub MAIN ( :@a ) { .say for @a } | |||
perlbot | lucs: No output. | ||
araraloren | bisectable6: @*ARGS = <-a=42>; sub MAIN ( :@a ) { .say for @a } | 16:01 | |
bisectable6 | araraloren, Bisecting by exit code (old=2015.12 new=7b4dd30). Old exit code: 2 | ||
araraloren, bisect log: gist.github.com/e261abca6d91d0fea8...161eb4a89e | |||
araraloren, (2019-03-26) github.com/rakudo/rakudo/commit/87...8106ce7dfa | |||
lucs | Holy moly, there's a neat tool. | 16:02 | |
16:03
jdv79 left
|
|||
araraloren | lucs seems like it fixed in new version | 16:04 | |
github.com/rakudo/rakudo/commit/87...8106ce7dfa | |||
AlexDaniel | github.com/rakudo/rakudo/issues/2797 | ||
lucs | This language is too cool. Things get fixed so quickly :) | 16:05 | |
lucs goes to rebuild his perl6 | 16:06 | ||
The language is cool, and so are all the great people who make it happen! | 16:07 | ||
araraloren | yeah, and if you want you will find replacement :) | ||
16:07
pistacchio left
16:08
pistacchio joined
|
|||
Woodi | sena_kun: about ldif: there is something like this: github.com/slunski/perl6-text-ldif but it dormant for some time. and what features your planned module need to have ? | 16:08 | |
16:09
Possum left
|
|||
sena_kun | Woodi, oh-oh... then we don't need one, I guess. Still have to check how much it's rotten. Its item in wanted modules list can be removed then. | 16:10 | |
>No candidates found matching identity: Text::LDIF | 16:11 | ||
seems like it isn't added to the ecosystem though | |||
16:11
cpan-p6 left
|
|||
Geth | perl6-most-wanted: 494970ef80 | Altai-man++ (committed using GitHub Web editor) | most-wanted/modules.md Remove LDIF module We already have one. |
16:12 | |
16:12
pistacchio left,
cpan-p6 joined,
cpan-p6 left,
cpan-p6 joined
16:13
pistacchio joined,
Kaiepi left,
pistacchio left,
Kaiepi joined
16:14
pistacchio joined
|
|||
sena_kun | pushed a PR that fixes tests | 16:15 | |
Woodi++ | |||
tony-o | Woodi sena_kun maybe just needs a maintainer, slunski is active but hasn't shipped since sep 2016 | 16:16 | |
shipped p6* | |||
sena_kun | tony-o, I'll gladly be a maintainer, just opening an issue would be fine? | 16:17 | |
Geth | doc: 9dabfb67d1 | Coke++ | xt/words.pws learn new variant |
||
doc: 06c05be73b | Coke++ | xt/words.pws T is typically used as a placeholder for a Type. TT used in recent addition to refer to a second Type in the same context. |
|||
Woodi | I am autor of that ldif stuff, just never had energy to desipher adding to ecosystem... and if it looks usefull just fork it and use properly | 16:18 | |
tony-o | sena_kun: i would think so, if you don't get a response you could fork and redistribute/update with some restriction | 16:19 | |
Woodi ah, hah. i can add to ecosystem | |||
sena_kun | but tests are failing | 16:20 | |
Woodi | tony-o: pleas, if you can ! I will be wery glad for that :) | ||
16:21
pistacchio left
|
|||
Woodi | 2 of them ? :) | 16:21 | |
sena_kun | Woodi, can you check github.com/slunski/perl6-text-ldif/pull/1 ? | ||
tony-o | send me a link to the other meta | ||
Geth | ecosystem: ed1b86457c | Altai-man++ (committed using GitHub Web editor) | META.list Add Text::LDIF |
16:22 | |
squashable6 | 🍕🍕🍕 First contribution by Altai-man++! ♥ | ||
sena_kun | added the module | ||
Woodi | sena_kun: checked ! what to do now ? | ||
sena_kun | Woodi, just accept it, there should be a button for that if you have admin/writer rights for the repo. | 16:23 | |
\o/ | 16:25 | ||
Woodi++, thanks. Sooner or later I'll use it and we'll see if it is good enough or something should be tweaked. | |||
tony-o | ++ | ||
Woodi | clicked merge, ok now ? | 16:26 | |
sena_kun | Woodi, yes. | ||
Woodi | sena_kun: when I was writing this it parsed all OpenLDAP test ldif files except few entries with binary attributes and empty dn. never saw such entries in real life but it's not complete... | 16:27 | |
tony-o | lizmat: thoughts on the behavior for 2814 ? | 16:28 | |
guifa | lelf and timotimo: if you’re needing a smarter word breaker, that’s in the plans for Intl::CLDR | 16:44 | |
Woodi | any chance that 'samewith' do tail call optimization ? | ||
16:46
jdv79 joined
|
|||
araraloren | Rakudo don't have that optimization | 16:49 | |
16:50
pistacchio joined
16:53
vrurg left,
khisanth_ left
16:55
abraxxa left,
abraxxa joined
|
|||
discord6 | <Tyler (Aearnus)> would be nice if it did | 16:56 | |
16:57
vrurg joined
|
|||
choiboi | Hey guys, I know I haven't been on for a while but I wrote a little toy language in Perl6 and documented how I made it and put the code on Github, if anyone wants to check out the post its xikuuky.insomnia247.nl/3.html | 16:58 | |
17:00
abraxxa left
|
|||
araraloren | so it's non-readable language :/ | 17:04 | |
tony-o | dutch isn't _that_ bad araraloren (hah) | 17:06 | |
17:07
khisanth_ joined
17:10
domidumont left
17:11
daemon is now known as pingu2
17:12
pingu2 is now known as tnViking
17:13
tnViking is now known as cortana
17:20
domidumont joined
17:30
domidumont left
|
|||
tony-o | m: say <a b c>.classify({ [True, False] }) | 17:32 | |
evalable6 | {True => {False => [a b c]}} | ||
tony-o | not what i'd expect | ||
ugexe | thats a bit contrived | 17:36 | |
conceptually that is categorize | 17:39 | ||
m: say <a b c>.categorize({ [True, False] }) | |||
evalable6 | {False => [a b c], True => [a b c]} | ||
17:50
Kaiepi left
17:51
Kaiepi joined
17:52
Kaiepi left
17:53
Kaiepi joined
17:55
kurahaupo left,
kurahaupo joined,
araraloren left
18:00
agentzh left
18:02
agentzh joined,
agentzh left,
agentzh joined
18:07
Possum joined
18:13
mowcat joined
18:19
natrys joined
|
|||
tyil | ctilmes: awesome! thanks! | 18:29 | |
tony-o | boils down to | 18:30 | |
m: my %x; %x{any(True, False, False)}.push: 5; %x{any(True, False, False)}.push: 15; %x.say | |||
evalable6 | {False => [5 15 15], True => [5 15]} | ||
18:31
sauvin left
18:43
jmerelo left
18:48
netrino joined
|
|||
lucs | Hmm... How can I tell if zef is being (unusually?) quiet or whether it's hung? | 18:53 | |
It's been stuck at ===> Searching for: p6doc for over 12 minutes now. | 18:54 | ||
18:56
zachk joined
18:58
zachk left,
zachk joined
|
|||
ugexe | you can always run with --verbose or --debug to get more output | 19:02 | |
19:03
zachk left,
zachk joined
|
|||
lucs | Ok, will start again (still stuck). | 19:04 | |
19:06
kurahaupo left,
kurahaupo joined
19:07
__jrjsmr_ joined
19:08
__jrjsmr_ left
19:10
andrzejku joined
19:17
Black_Ribbon joined
19:18
Xliff joined
|
|||
Xliff | \o | 19:18 | |
lucs | Hiya | ||
Xliff | I have the first part of a substitution regex that looks like this: s!'<template class='<quoted>' parent='<quoted>! | 19:19 | |
How do I refer to the first and second <quoted> values in the second part? | |||
s!'<template class='<quoted>' parent='<quoted>!<object class="$/<quoted>[1]" id="$/<quoted>[0]"! ?? | 19:20 | ||
m: my regex quoted { \" ~~ \" <-[\"]>+ }; my $a = '"This is a test"'; say $a ~~ /<quoted>/ | 19:22 | ||
evalable6 | (exit code 1) 04===SORRY!04=== Unrecognized regex metacharacter ~ (must be q… |
||
Xliff, Full output: gist.github.com/6a3e951ad4d69413d0...38ca492f10 | |||
Xliff | m: my regex quoted { \" ~ \" <-[\"]>+ }; my $a = '"This is a test"'; say $a ~~ /<quoted>/ | ||
evalable6 | 「"This is a test"」 quoted => 「"This is a test"」 |
||
Xliff | m: my regex quoted { \" ~ \" (<-[\"]>+) }; my $a = '"This is a test"'; say $a ~~ /<quoted>/ | ||
evalable6 | 「"This is a test"」 quoted => 「"This is a test"」 0 => 「This is a test」 |
19:23 | |
Xliff | So... | ||
s!'<template class='<quoted>' parent='<quoted>!<object class=$/<quoted>[1] id=$/<quoted>[0]! ?? | |||
tony-o | m: my $x = "abcdef"; $x ~~ s:x/ { token quote { "d"|"f" } } <quote> \w+ <quote> /{ $/<quote>[0] }{ $/<quote>[0] }/; $x.say; | 19:24 | |
evalable6 | abcdd | ||
Xliff | m: my regex quoted { \" ~ \" (<-[\"]>+) }; my $a = '<template class="A" parent="B" the rest>'; $a ~~ s!'<template class='<quoted>' parent='<quoted>!<object class=$/<quoted>[1] id=$/<quoted>[0]!; say $a | 19:26 | |
evalable6 | <object class="B" id="A" the rest> | ||
Xliff | \o/ | ||
tony-o++ | 19:27 | ||
19:29
pistacchio left,
pistacchio joined
19:30
epony joined
19:34
kurahaupo left,
kurahaupo_ joined
19:35
cortana is now known as daemon
|
|||
Kaiepi | what is $¢ ? | 19:42 | |
ugexe | cursor | 19:45 | |
19:48
vrurg left
19:49
vrurg joined
|
|||
tony-o | m: my $x = any("a", "f"); say $x.Str.WHAT | 19:49 | |
evalable6 | (Junction) | ||
tony-o | conjunction junction | 19:50 | |
Kaiepi | m: say defined my $ | 19:51 | |
evalable6 | False | ||
Kaiepi | m: say defined my @ | ||
evalable6 | True | ||
Kaiepi | m: say defined my % | ||
evalable6 | True | ||
Kaiepi | m: say defined my & | ||
evalable6 | False | ||
Kaiepi | should this be documented as a trap? | 19:52 | |
same with this: | |||
m: class Foo { has Str $.bar; submethod BUILD(:$!bar = 'baz') {} }; my Foo $foo .= new; say $foo.bar | |||
evalable6 | baz | ||
Kaiepi | oh wait what | ||
ugexe | that containers are defined? | ||
Kaiepi | that unassigned @ and % variables are still defined | 19:53 | |
i ran into a bug in my code that confused the hell out of me because i assumed they weren't like variables that use $ | |||
s/weren't/were/ | 19:54 | ||
er | |||
i was right originally | |||
ugexe | m: say {}.defined; # im not sure its surprising when put this way | ||
evalable6 | True | ||
Kaiepi | put that way, yeah | 19:56 | |
discord6 | <Tyler (Aearnus)> hey, is there a list of good beginner's bugs in rakudo anywhere? I want to do some bug squashing | ||
Kaiepi | m: class Foo { has Str $.bar; submethod BUILD(:$!bar = 'baz') {}; method new(:$bar) { self.bless: :$bar } }; my Foo $foo .= new; say $foo.bar | 19:57 | |
evalable6 | (exit code 1) Type check failed in assignment to $!bar; expected Str but got Any (Any) in submethod BUILD at /tmp/5tA907HR4J line 1 in method new at /tmp/5tA907HR4J line 1 in block <unit> at /tmp/5tA907HR4J line 1 |
||
Kaiepi | m: class Foo { has $.bar; submethod BUILD(:$!bar = 'baz') {}; method new(:$bar) { self.bless: :$bar } }; my Foo $foo .= new; say $foo.bar | ||
evalable6 | (Any) | ||
Kaiepi | could this be a trap or is it just a dumb mistake on my part | ||
19:59
pmurias joined
20:02
SergiusUA left
20:03
andrzejku left
|
|||
tony-o | you're not assigning anything $bar in the `new` | 20:04 | |
m: class Foo { has $.bar; submethod BUILD(:$!bar = 'baz') {}; method new(:$bar = 'dang it') { self.bless: :$bar } }; my Foo $foo .= new; say $foo.bar | |||
evalable6 | dang it | ||
tony-o | and BUILD is reflecting the passed value of Any | 20:05 | |
ugexe | its because parameters use binding, not assignment | ||
m: my $foo is default(42) = Nil; say $foo; | |||
evalable6 | 42 | ||
ugexe | m: my $foo is default(42) := Nil; say $foo; | ||
evalable6 | Nil | ||
Kaiepi | i know tony-o | 20:07 | |
but is it likely that other people will try to do that and run into the same issue? | 20:08 | ||
Xliff | Kaiepi: I know that looks like a trap. I would think that if a parameter is passed and hits a sig with a default value it should take that value. | ||
But technically, Any is a value. | |||
So without the default on method new... Any gets through and BUILD ignores the default. | |||
It's not a trap, but probably should be documented. | |||
Kaiepi | i assumed $bar would be Nil, not Any | ||
Xliff | Kaiepi: Even if its Nil, that would pass through as a value to BUILD | 20:09 | |
I have been caught by same. | |||
tony-o | what definition of trap are you using? | ||
Xliff | "Something new users would run into" | ||
Kaiepi | a mistake that people could make based off assumptions on how the language works | 20:10 | |
Xliff | ^ or that | ||
tony-o | ah, doesn't the doc for `.new` say you shouldn't be using that unless you know what you're doing? | ||
Xliff | tony-o: How do you "know what you are doing" if the docs don't explain things like this? | 20:11 | |
tony-o | because you are willing to do stuff you know you probably shouldn't and know the reasons why it's required for your purpose | 20:12 | |
Xliff | method new(:$bar) { } is the equivalent of saying method new (:$bar = Any) { } | ||
^^ THAT would be sufficient notice. | |||
tony-o | the docs do discourage use of `method new` with preference to `BUILD|TWEAK` | 20:13 | |
and say not to use `method`, preferring `multi method` | |||
Xliff | Discouraging is not enough, though. | ||
Kaiepi | in my case i was using BUILD because i was assigning to private attributes | ||
Xliff | Most people are familiar with C++ or C# and those use new as the constructor. Not BUILD. | ||
Until people understand WHY it is discouraged, just saying "we prefer you do this" really isn't good enough. | 20:14 | ||
tony-o | it explains why in the docs | ||
Declaring new as a method and not a multi method prevents us from using the default constructor; this implicit constructor uses the attributes as named parameters. That is one of the reasons why using new is discouraged. | 20:15 | ||
which, ironically, is related to that ^ `.new` | |||
Xliff | Yes, but sometimes using the default constructor in complex inheritance chains, is also a trap. | 20:16 | |
Never the less, that wording is a lot better than I remember, so.... | |||
tony-o | i'd like to know more about the inheritance chain trap | ||
ugexe | using .new makes inheritance more difficult | ||
tony-o | do you have a bug or example i can look at Xliff ? | 20:17 | |
20:17
redhands joined
|
|||
ugexe | but does make some advanced cases possible | 20:17 | |
the obvious one: having an api with positionals | |||
also s/using .new/defining your own .new/ | 20:18 | ||
Xliff | m: class A { has $.a; submethod BUILD (:$!a($a)) { }; multi method new (Int $a) { self.bless(:$a) }; }; my $a = A.new('aa'); | ||
evalable6 | (exit code 1) 04===SORRY!04=== Error while compiling /tmp/BSVefKAlJ7 Shape d… |
||
Xliff, Full output: gist.github.com/01601cdf61d92dcec5...0d8467b365 | |||
Xliff | m: class A { has $.a; submethod BUILD (:$!a:($a)) { }; multi method new (Int $a) { self.bless(:$a) }; }; my $a = A.new('aa'); | ||
evalable6 | (exit code 1) 04===SORRY!04=== Error while compiling /tmp/rCZD2xzmbG Attribu… |
||
Xliff, Full output: gist.github.com/6516fd3ecfb1e6c778...77c8a9eee9 | |||
Xliff | m: class A { has $.a; submethod BUILD (:$a)) { $!a = $a }; multi method new (Int $a) { self.bless(:$a) }; }; my $a = A.new('aa'); | 20:19 | |
evalable6 | (exit code 1) 04===SORRY!04=== Error while compiling /tmp/6fiYmj3ihj Missing… |
||
Xliff, Full output: gist.github.com/763a72003ce751f9c6...7775ed6dd4 | |||
Xliff | Grrrr.... | ||
AlexDaniel | Tyler (Aearnus): maybe try github.com/rakudo/rakudo/issues?q=...t+issue%22 | ||
20:19
clarkema_ joined
20:20
clarkema joined,
clarkema left,
clarkema_ is now known as clarkema
|
|||
Xliff | m: class A { has $.a; submethod BUILD (:$a) { $!a = $a }; multi method new (Int $a) { self.bless(:$a) }; }; my $a = A.new('aa'); | 20:20 | |
evalable6 | (exit code 1) Default constructor for 'A' only takes named arguments in block <unit> at /tmp/X9Lq_J81tY line 1 |
||
Xliff | There. | ||
timotimo | aye, needs a proto in there | 20:21 | |
Xliff | Yes. | ||
Was just about to make that point. | |||
Going by the docs though, that error message would be confusing because class A doesn't defined a constructor that takes named arguments. | |||
timotimo | you think it should perhaps inspect the class that had "new" called on it? | 20:22 | |
to generate a better error message? | |||
Xliff | Something like that. | ||
ugexe | the constructor is defined through declarative syntax of the class itself | ||
Xliff | Or maybe add "did you forget to add a proto new" method to class A? | ||
timotimo | kind of like when we have "candidates that would match if there were a writable argument" one | ||
Xliff | m: class A { has $.a; submethod BUILD (:$a) { $!a = $a }; method new (Int $a) { self.bless(:$a) }; }; my $a = A.new('aa'); | 20:23 | |
evalable6 | (exit code 1) Type check failed in binding to parameter '$a'; expected Int but got Str ("aa") in method new at /tmp/9vQrcSkS2C line 1 in block <unit> at /tmp/9vQrcSkS2C line 1 |
||
kybr | do we have a regex/grammar explorer like regexr.com or pegjs.org/online yet? i find myself craving the immediacy of these tools. | ||
Xliff | ^^ That's good, but it goes against the docs when they say use "multi method" | ||
kybr: What do you mean? | 20:24 | ||
I've done this: github.com/Xliff/p6-VisualGrammar/ | |||
But it's a bear of an install. | |||
tony-o | oh that's cool | ||
20:24
redhands left
|
|||
Xliff | tony-o: Thanks! :) | 20:25 | |
kybr | Xliff: i'd call that a qualified yes. | ||
tony-o | seems like introspecting and saying doesn't match signatures (like other methods do) would make that error clearer | ||
Xliff | kybr: Experimental and work in progress. I haven't touched it in a bit, so changes may have introduced bitrot. | 20:26 | |
kybr: If you run into ANY problems, or have suggestions, please create issues and notify me here via PM or .tell | |||
Please note, I have not tested it with large grammars, so that may be sketchy. | 20:27 | ||
20:38
molaf joined
|
|||
cpan-p6 | New module released to CPAN! FindBin (0.2.4) by 03LEMBARK | 20:40 | |
20:46
domidumont joined
|
|||
lizmat | weekly: aearnus.github.io/2019/04/03/a-whi...t-features | 20:50 | |
notable6 | lizmat, Noted! | ||
lizmat | weekly: aearnus.github.io/2019/04/05/perl6...s-worst-ml | ||
notable6 | lizmat, Noted! | ||
discord6 | <Tyler (Aearnus)> :o | 20:51 | |
ctilmes | ugexe: FYI: salortiz patched the failing test: github.com/salortiz/NativeLibs/issues/5 | 20:52 | |
20:53
domidumont left
21:01
skids left,
pecastro left
21:10
releasable6 left
21:14
releasable6 joined
|
|||
squashable6 | 🍕 lembark++ wrote a comment on a review for “Add FindBin to ecosystem”: github.com/perl6/ecosystem/pull/44...r272746792 | 21:17 | |
🍕🍕🍕 First contribution by lembark++! ♥ | |||
🍕 lembark++ submitted a review on pull request “Add FindBin to ecosystem”: github.com/perl6/ecosystem/pull/44...-223483191 | |||
🍕 AlexDaniel++ wrote a comment on a review for “Add FindBin to ecosystem”: github.com/perl6/ecosystem/pull/44...r272747208 | 21:19 | ||
🍕🍕🍕 First contribution by AlexDaniel++! ♥ | |||
🍕 AlexDaniel++ submitted a review on pull request “Add FindBin to ecosystem”: github.com/perl6/ecosystem/pull/44...-223483718 | |||
🍕 timo++ submitted a review on pull request “Add FindBin to ecosystem”: github.com/perl6/ecosystem/pull/44...-223484104 | 21:20 | ||
🍕🍕🍕 First contribution by timo++! ♥ | |||
🍕 timo++ wrote a comment on a review for “Add FindBin to ecosystem”: github.com/perl6/ecosystem/pull/44...r272747504 | |||
🍕 AlexDaniel++ submitted a review on pull request “Add FindBin to ecosystem”: github.com/perl6/ecosystem/pull/44...-223484231 | 21:21 | ||
🍕 AlexDaniel++ wrote a comment on a review for “Add FindBin to ecosystem”: github.com/perl6/ecosystem/pull/44...r272747609 | |||
Kaiepi | squashable6, help | 21:32 | |
squashable6 | Kaiepi, Available commands: status, log, quiet, loud # See wiki for more examples: github.com/perl6/whateverable/wiki/Squashable | ||
Kaiepi | squashable6, status | ||
squashable6 | Kaiepi, 🍕🍕 SQUASHathon is in progress! The end of the event in 1 day and ≈16 hours. See github.com/rakudo/rakudo/wiki/Mont...Squash-Day | ||
Kaiepi, Log and stats: gist.github.com/f1364de041785813e4...42a4c4965e | |||
Kaiepi | oh sweet | 21:33 | |
anyone up for working on my Net::Telnet package? i'll throw up some issues on features i want added before i can upload it to cpan | 21:35 | ||
i'll work on other people's modules in exchange | 21:40 | ||
timotimo | what kind of programming stuff do you enjoy? :) | 21:46 | |
21:51
mowcat left,
clarkema left
21:56
pochi joined,
ctilmes1 joined,
pistacch_ joined,
Kaypie joined
21:58
tobs` joined,
aindilis` joined
|
|||
Xliff | Ooh! Kaiepi! If you can look at the twisted example in p6-Pango, I'll be your huckleberry! :D | 21:58 | |
21:58
buffet_ joined
21:59
kaare__ joined
|
|||
Xliff | github.com/Xliff/p6-Pango/blob/mas...-twisted.t <-- Text don't twist. | 21:59 | |
22:00
irdr_ joined,
Praise- joined,
Praise- left,
Praise- joined
|
|||
Kaypie | timotimo, networking mainly | 22:00 | |
22:00
namibj_ joined,
samcv_ joined,
breinbaa1 joined,
choiboi_ joined,
telex left,
MilkmanD1n joined,
kybr_ joined,
telex joined,
smash_ joined,
pmurias_ joined
|
|||
Kaypie | Xliff, i'll see if i can install pango on openbsd or not | 22:00 | |
timotimo | i can't actually tell if i can help you at all for Net::Telnet, but ... any interest in HTTP3 for cro? :D | 22:01 | |
22:01
natrys_ joined,
benjikun_ joined,
irdr left,
MilkmanDan left,
choiboi left,
Ekho left,
kybr left,
pistacchio left,
khisanth_ left,
irco left,
aindilis left,
Voldenet left,
stux|RC-only left,
samcv left,
benjikun left,
APic left,
smash left,
Praise left,
renormalist left,
Ulti_ joined,
buffet left,
natrys left,
namibj left,
breinbaas left,
pmurias left,
dylanwh left,
woolfy left,
Ulti left,
Kaiepi left,
ctilmes left,
rindolf left,
pochi_ left,
jeek left,
kaare_ left,
tobs left,
lookatme_q left,
ambs left,
jeek joined,
tobs` is now known as tobs
|
|||
Kaypie | you mean http2 right? | 22:01 | |
22:01
renormalist joined,
ambs_ joined
|
|||
Kaypie | timotimo, here's the list of issues i wrote up github.com/Kaiepi/p6-Net-Telnet/issues | 22:01 | |
22:01
APic joined
|
|||
Xliff | Ooh! And the net decides to do a banana and split! :P | 22:01 | |
Kaypie | some of them require no knowledge on telnet | ||
22:01
cpan-p6 left
22:02
lookatme_q joined,
rindolf joined,
cpan-p6 joined,
cpan-p6 left,
cpan-p6 joined,
woolfy joined
|
|||
Kaypie | perfect, i can install pango-1.42.4p1 | 22:02 | |
22:02
khisanth_ joined
22:03
Praise- is now known as Praise
22:04
Voldenet joined,
Voldenet left,
Voldenet joined,
Ekho joined
22:05
stux|RC-only joined
|
|||
Kaypie | timotimo, idk much about http2 but i could skim through the rfc for it and see what i can do | 22:08 | |
Xliff, i'll be a while since i need to update all the packages on my system before i can get pango installed | |||
22:09
natrys_ left
|
|||
timotimo | don't feel obligated; after all, cro is a product of edument after all ;) | 22:09 | |
Xliff | Kaypie: No worries. | 22:10 | |
ugexe | cro already is http2 capable | ||
its not http3 | |||
timotimo | yeah | 22:11 | |
oh | |||
Kaypie | wait http3 exists? | ||
timotimo | Kaypie: i didn't see when you wrote "you mean http2" | ||
yeah, it's pretty fresh out of the oven | |||
Kaypie | huh | ||
timotimo | it's based on QUIC | 22:12 | |
Kaypie | what's QUIC? | ||
timotimo | "like SPDY, but UDP" | ||
(i don't know enough about it to give an adequate explanation) | |||
ugexe | the better to serve you ads with my dear | ||
timotimo | :D | ||
22:13
dylanwh joined
|
|||
Xliff | ugexe++ # LOL | 22:13 | |
Kaypie | ...what's spdy | 22:15 | |
i know i've heard of it before | |||
timotimo | it was what HTTP2 was based on | 22:16 | |
ugexe | but it didnt serve ads fast enough because it still suffers from head-of-line TCP shit | 22:17 | |
22:23
sena_kun left
22:28
hythm_ left
22:36
skyscout joined
|
|||
skyscout waves | 22:36 | ||
22:37
MilkmanD1n is now known as MilkmanDan
|
|||
skyscout | (don't mind me, just playing fly on the wall while I dig out my tutorials and try some more p6) | 22:37 | |
23:02
aindilis` left
23:03
netrino left
23:19
ctilmes1 left
23:21
ctilmes joined,
ctilmes left
23:22
ctilmes joined
23:25
AlexDaniel left
|
|||
cpan-p6 | New module released to CPAN! FindBin (0.2.5) by 03LEMBARK | 23:27 | |
23:28
ExtraCrispy left
23:29
AlexDaniel joined
23:35
rindolf left
23:41
aindilis joined
|
|||
Xliff | Kaypie: I have a doc making script for you. | 23:42 | |
It's not perfect, but... | |||
23:42
kurahaupo_ left,
kurahaupo joined
|
|||
Xliff | Kaypie: pastebin.com/bJCqJCRz | 23:43 | |
23:59
greppable6 left
|