»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend! Set by moritz on 22 December 2015. |
|||
00:00
tardisx left
00:08
tardisx joined
00:25
sufrostico left
00:27
sufrostico joined
00:35
sufrostico left
00:36
sufrostico joined
00:37
vytas joined
00:38
dfcarpenterak left
00:44
Sgeo_ joined
00:46
Sgeo left
00:48
Sgeo__ joined
00:49
dfcarpenterak joined
00:50
Sgeo_ left
00:52
dfcarpenterak left
00:59
abaugher left
01:09
itaipu joined
01:10
telex left
01:13
tardisx left
01:15
telex joined
|
|||
perlawhirl | who's awake | 01:18 | |
01:20
sufrostico left
01:21
tardisx joined
01:23
itaipu left
01:24
Actualeyes joined
|
|||
sortiz | perlawhirl, I'm o/ | 01:25 | |
geekosaur | fsvo "awake" | 01:26 | |
perlawhirl | sortiz: this is not explicitly a perl question, but git. specifically making pull request to the ecosystem | ||
do i need to fork the ecosystem repo to make a PR | |||
I'm relatively green to this git stuff | 01:27 | ||
geekosaur | yes. you fork it, make your change(s), and make the pull request from that | ||
perlawhirl | righto | 01:28 | |
sortiz | Not necessarily an explicit fork. If you change only a file, you can edit it on github, that make the dance. | 01:29 | |
Util for example when you are changing META.list | 01:30 | ||
perlawhirl | actually, it looks like the last commit is wrong, there's a leading "i" on the last added module in META.list | 01:32 | |
or is that some hackery for newly added module? | |||
sortiz | Let me see... | ||
01:33
labster left
|
|||
sortiz | Indeed, seems a bug, changing that... | 01:33 | |
Xliff_ | Hotkeys, if I didn't hate the fscking Metro look so much, I would be right there with you. | 01:35 | |
dalek | osystem: 9334cbe | (Salvador Ortiz)++ | META.list: Update META.list Remove trailing 'i' in P6-Text-Template entry. |
||
Xliff_ | Read somewhere that some dude thought that Templates were just another form of spaghetti code. | ||
While yes, some Templates can look god awful (depending on the complexity of the intended output), I find MVC a better design pattern than anything else. | 01:36 | ||
I don't care if it "compiles" to something unreadable. I just don't want to maintain it. | |||
sortiz | perlawhirl++ # For the report. | 01:37 | |
Xliff_ | www.workingsoftware.com.au/page/You...de_yes_you | ||
sortiz | Xliff_, To me the main issue with *some* template engines is that pretend to do too much, and the template ceases to be declarative, to become procedural. :) | 01:39 | |
01:39
tardisx left
|
|||
Xliff_ | sortiz, perl5 Template Toolkit, maybe? | 01:39 | |
01:40
kid51 left
|
|||
Xliff_ | In the case where the template engine offers too much. Remember: Just because you can doesn't mean you have to. | 01:40 | |
perlawhirl | sortiz: leading, not trailing... but who cares :D | 01:41 | |
Xliff_ | perlawhirl, o/ | ||
prl a wrl | |||
perlawhirl | haha... about to add a pr to the ecosystem | ||
it lives: github.com/0racle/p6-wig | 01:42 | ||
Xliff_ | W00 h00~! | ||
perlawhirl++ | |||
sortiz | Yes, but the if an abstraction barrier can be trivially bypassed is bad design. | ||
leading, yep :D | 01:43 | ||
imo a good template engine should offer you a good *macro* system, not a new programming language. | 01:45 | ||
01:45
ilbot3 left
01:47
ilbot3 joined
|
|||
dalek | osystem: 3795dba | 0racle++ | META.list: Add wig to ecosystem See github.com/0racle/p6-wig |
01:51 | |
osystem: 99aea7f | (Salvador Ortiz)++ | META.list: Merge pull request #183 from 0racle/patch-1 Add wig to ecosystem |
|||
perlawhirl | sortiz: there was an error in the url of my PR :( | 02:01 | |
02:02
BenGoldberg left
|
|||
sortiz | perlawhirl, what is the correct one? | 02:03 | |
perlawhirl | raw.githubusercontent.com/0racle/p...META6.json | 02:04 | |
02:04
labster joined
|
|||
perlawhirl | there was a '.git' after the module name before | 02:04 | |
so the url was invalid | |||
dalek | osystem: fbb91a5 | 0racle++ | META.list: Add wig to ecosystem See github.com/0racle/p6-wig |
02:05 | |
osystem: 9db9800 | (Salvador Ortiz)++ | META.list: Merge pull request #184 from 0racle/patch-2 Fix wig URL |
|||
perlawhirl | sortiz++ | 02:06 | |
sortiz | Now you can remove your branches. | ||
02:07
labster left
02:10
BenGoldberg joined
02:14
tardisx joined
|
|||
perlawhirl | oh, hrm... | 02:16 | |
oh, you mean the forked repos i now have? | |||
02:17
yqt left
|
|||
sortiz | Yep. | 02:21 | |
perlawhirl | ok done | 02:25 | |
sortiz | All ready :) | 02:26 | |
ZoffixWin | m: subset Foo of Int where { $_ > 10_000 or warn "You need a number more than 10,000" };my Foo $x = 42; | 02:45 | |
camelia | rakudo-moar ae3a79: OUTPUT«You need a number more than 10,000 in block at /tmp/7G_HLCRktW line 1Type check failed in assignment to $x; expected Foo but got Int (42) in block <unit> at /tmp/7G_HLCRktW line 5» | ||
02:45
noganex joined
|
|||
ZoffixWin | Is there a way to make this a better error message? I could live with at least the "more than 10,000" line number being line 5; but if that Type check failed message could also be removed (and changed into the "more than 10,000") that would be great. | 02:46 | |
02:48
noganex_ left
|
|||
ZoffixWin | m: subset Foo of Int where { $_ > 10_000 or fail "You need a number more than 10,000 on line {(callframe 4).line}" };my Foo $x = 42; | 02:52 | |
camelia | rakudo-moar ae3a79: OUTPUT«You need a number more than 10,000 on line 5 in block <unit> at /tmp/NdbPQyk3Bi line 1» | ||
ZoffixWin | ¯\_(ツ)_/¯ | ||
AlexDaniel | m: subset Foo of Int where { $_ > 10_000 or fail "You need a number more than 10,000 but you passed $_ on line {(callframe 4).line}" }; my Foo $x = 42; | 02:54 | |
camelia | rakudo-moar ae3a79: OUTPUT«You need a number more than 10,000 but you passed 42 on line 1 in block <unit> at /tmp/uPvYWlvgr3 line 1» | ||
AlexDaniel | ZoffixWin: that's a very important bit :) | ||
ZoffixWin | AlexDaniel++ | 02:55 | |
m: subset Foo of Int where * > 10_000; try { my Foo $x = 10; CATCH { fail "That value does not match the subset" } }; say "That value did match the subset" | 03:01 | ||
camelia | rakudo-moar ae3a79: OUTPUT«That value does not match the subset in block at /tmp/DcnZUWk_xA line 1 in block <unit> at /tmp/DcnZUWk_xA line 1» | ||
ZoffixWin | This feels a bit like a hack... is there a better way to check whether the value can be used for a type (a subset in particular)? | ||
03:02
RandalSchwartz joined
|
|||
RandalSchwartz | tommy is giving a perl6 talk | 03:02 | |
a question he couldn't answer: | 03:03 | ||
are instance methods and class methods sharing the same namespace? | |||
or is there a way to say "this foo method is for instances" vs "this foo method is for class"? | |||
or if they share, what can I test inside the method to go either way? | 03:04 | ||
ZoffixWin | m: class Foo { method bar { self.DEFINITE ?? 'instance' !! 'class' } }; say Foo.bar; say Foo.new.bar | ||
camelia | rakudo-moar ae3a79: OUTPUT«classinstance» | ||
ZoffixWin | This is possible. Unsure about whether it's shared. | ||
RandalSchwartz | ahh ok | 03:05 | |
passed that along to tommy | 03:07 | ||
thanks | |||
Xliff_ | Wonder how difficult it would be to add perl 6 support to HexChat.... Hmmm.... | 03:08 | |
ZoffixWin | There's Inline::Perl6 in P5 :) | ||
Xliff_ | ZoffixWin, well, I'd have to be sure that the P5 module in HexChat could handle that. | 03:09 | |
03:09
nadim left
03:10
Ben_Goldberg joined
|
|||
Xliff_ | ZoffixWin, so does Inline::Perl6 convert P6 code to P5, then? | 03:12 | |
Juerd | RandalSchwartz: The same method is used as a class method an as an instance method. The signature can specify that the invocant must be undefined (type object => class method) or defined (not a type object => instance method) | ||
03:13
BenGoldberg left
|
|||
ZoffixWin | Xliff_, I've never used it, but from the docs, I see "This module embeds a MoarVM based Rakudo Perl 6 and allows you to run Perl 6 code, load Perl 6 modules, use methods of Perl 6 objects and much more.": metacpan.org/pod/Inline::Perl6 | 03:13 | |
Xliff_ | Ah. OK... so it includes XS code. | ||
That might be tricky on a Windows system. | 03:14 | ||
Although I -could- run it in a VM and export to the desktop via X-Ming.... hmmmmm...., | |||
Juerd | RandalSchwartz: class Example { method cm (Example:U: $arg1, $arg2) { ... }; method im (Example:D: $arg1, $arg2) { ... } } | 03:15 | |
Xliff_ | ZoffixWin, thanks for the input. | 03:16 | |
Juerd | RandalSchwartz: If you want a class method and instance method to have the same name, 'multi' can be used as such: | ||
m: class Example { multi method m (Example:U:) { say "class method" }; multi method m (Example:D:) { say "instance method" } }; Example.m; Example.new.m; | 03:17 | ||
camelia | rakudo-moar ae3a79: OUTPUT«class methodinstance method» | ||
Juerd | RandalSchwartz: If you're not using a multi method, you can determine whether it was called as a class or instance method, simply using 'defined', like: | 03:18 | |
m: class Example { method m { say .defined ?? "instance method" !! "class method" } } | 03:19 | ||
camelia | ( no output ) | ||
Juerd | m: class Example { method m { say .defined ?? "instance method" !! "class method" } }; Example.m; Example.new.m | ||
camelia | rakudo-moar ae3a79: OUTPUT«class methodclass method» | ||
Juerd | Hm. | ||
Ouch, bitten by $_ | 03:20 | ||
m: class Example { method m { say self.defined ?? "instance method" !! "class method" } }; Example.m; Example.new.m | |||
camelia | rakudo-moar ae3a79: OUTPUT«class methodinstance method» | ||
Juerd | There :) | ||
03:21
tardisx left
03:26
cosarara left
03:28
vytas left
03:31
Fleurety left
03:33
_notbenh joined
|
|||
ZoffixWin | Someone mentioned during my talks there are these for 100s of languages and we should have one for Perl 6 too: rubykoans.com/ | 03:33 | |
03:33
clkao_ joined
|
|||
diakopter | ZoffixWin: TimToady and others spent many hundreds of hours on the rosettacode examples | 03:33 | |
03:33
cosarara_ joined
|
|||
ZoffixWin | diakopter, the guy said they were hard to navigate | 03:33 | |
sortiz | .tell abraxxa I finally have a working oracle test environment! | ||
yoleaux | sortiz: I'll pass your message to abraxxa. | ||
03:33
MadcapJake_ joined,
orbus_ joined
|
|||
ZoffixWin | (not the same guy, but someone brought up they were not ideal_ | 03:33 | |
perlawhirl | ZoffixWin: did you just volunteer yourself :D | ||
03:33
Vitrifurr joined,
AiHasBeenSolved joined
|
|||
ZoffixWin | nope :) | 03:33 | |
03:33
nadim joined
|
|||
diakopter | ZoffixWin: there are per-language lists | 03:33 | |
AiHasBeenSolved | wiki.opencog.org/wikihome/index.php/Ghost | ||
AiHasBeenSolved Ghost AI coder doing his bit to promote Perl6 and Perl AI. Bye | |||
q | |||
quit | |||
diakopter | rosettacode.org/wiki/Category:Perl_6 | ||
03:33
AiHasBeenSolved left,
retupmoc_ joined,
M-tadzik joined,
vytas` joined
|
|||
diakopter | -_- lol | 03:33 | |
ZoffixWin | *shrug* I'm unsure what the exact issue was. I suggested opening an Issue on the User experience repo so it could be addressed. | ||
03:33
andrewalker_ joined,
sQuEE` joined,
roguelazer_ joined,
daxim_ joined,
sunnavy__ joined,
jnap_ joined,
kipd_ joined
|
|||
saaki | rubykoans is really geared for learning the language in an active fashion. rosettacode is about examples of common patterns. kind of different. | 03:33 | |
03:33
Spot___ joined,
MadcapJake_ is now known as MadcapJake,
roguelazer_ is now known as roguelazer,
clkao_ is now known as clkao,
jnap_ is now known as jnap,
kipd_ is now known as kipd
03:34
Spot___ is now known as Spot__
03:35
jack_rabbit joined
|
|||
skids wonders if oeis.org would welcome Perl6 worked code or not. | 03:35 | ||
03:35
ChanServ sets mode: +o diakopter,
diakopter sets mode: -o diakopter
|
|||
diakopter | oops | 03:35 | |
03:35
Fleurety_ joined
03:36
musca joined
|
|||
Xliff_ | **SPLIT** !!! | 03:37 | |
03:43
ecojud joined
03:47
Ben_Goldberg left
03:50
Fleurety_ is now known as Fleurety
|
|||
Xliff_ | W00 h00! supernovus merged my PR | 03:51 | |
ecojud | well done, I'm jealous | 03:52 | |
03:52
tardisx joined
03:55
skids left
03:58
pierrot left,
pierrot joined
04:04
tardisx left,
labster joined
04:06
tardisx joined
04:07
tardisx left
04:08
khw left
04:09
tardisx joined
04:12
tardisx left,
ecojud_ joined
04:13
tardisx joined
04:15
tardisx left,
ecojud left
04:20
tardisx joined
04:25
jamesalbert joined
04:29
AlexDaniel left
|
|||
jamesalbert | Hey, how would I extend a module's class from a different directory. Doing Preexisting::Module::NewClass doesn't allow Preexisting::Module to load NewClass dynamically with `require ::Preexisting::Module::("NewClass")` | 04:29 | |
and by "Doing Preexisting::Module::NewClass" I mean creating a class by that name, in another directory | 04:30 | ||
04:33
RandalSchwartz left
04:38
quester joined
04:43
jamesalbert left
04:44
Cabanossi left
04:46
Cabanossi joined
04:51
molaf joined,
tardisx left
05:14
tardisx joined
05:28
jack_rabbit left
05:35
tardisx left
05:36
ecojud_ left
05:39
jack_rabbit joined
|
|||
Xliff_ | jamesalbert: Read up on "augment". | 05:39 | |
perlawhirl | he's gone... | 05:40 | |
i was gonna reply, then some work stuff came up, then when i tured back he had quit | |||
Xliff_ | Oh. LOL. I didn't even see the quit message. | ||
perlawhirl | Xliff: my modules is now on the modules directory. | 05:41 | |
pretty happy about it, am inspured to do start working on some other unfinished modules i have lying around | 05:42 | ||
Xliff_ | Yeah. I saw. | 05:43 | |
05:43
Xliff_ is now known as Xliff
|
|||
perlawhirl | yes, but did you see my cool mascot for wig {[: ) | 05:44 | |
it's wearing a wig! | |||
Xliff | *snerk* | ||
You should make it so that appears next to the project name in the modules list. | 05:45 | ||
modules.perl6.org/#q=wig | |||
perlawhirl | i will | ||
Xliff whips up a quick SVG version | |||
05:46
tardisx joined
05:47
znpy joined
05:56
jack_rabbit left
|
|||
Xliff | {[: )wiki.shadowplayinternational.org/te...20logo.svg | 06:01 | |
06:01
znpy left
|
|||
Xliff | Er. | 06:01 | |
wiki.shadowplayinternational.org/te...20logo.svg | |||
It's an SVG so you can download and do whatever. | |||
The second one has character. | 06:02 | ||
perlawhirl: Logo goes in logotype/logo_32x32.png and the site should automatically pick it up. | 06:03 | ||
(I am assuming logo then needs to be sized 32 x 32....) | 06:04 | ||
perlawhirl, note error when trying to install from panda: | 06:06 | ||
fetch stage failed for wig: Failed cloning git repository 'git://github.com/0rac1e/wig.git' | |||
This is after "panda update" | |||
perlawhirl | dagnabbit! | 06:13 | |
the source-url is wrong :( | |||
fixed, but it will be another hour before modules directory updates | 06:15 | ||
in the meantime, you could just panda install github.com/0racle/p6-wig.git | |||
06:17
rindolf joined
06:18
RabidGravy joined
|
|||
perlawhirl | Xliff, i remember now. when i first created the repo it was just called wig. i renamed it to p6-wig... becuase i dunno. forgot to update the meta | 06:21 | |
this is my first github repo, first perl module... training wheel are getting a workout | |||
06:27
araujo left,
araujo joined
|
|||
Xliff | perlawhirl, LOL! | 06:35 | |
06:36
domidumont joined,
domidumont left
|
|||
Xliff | Hrm. | 06:36 | |
Using the URL doesn't work, either. | 06:37 | ||
perlawhirl, tried github.com/0racle/p6-wig.git | |||
and github.com/0racle/wig.git | |||
06:37
domidumont joined
|
|||
Xliff | Now why did I read that name as nomadonut? | 06:37 | |
Xliff just got his eyes checked. | 06:38 | ||
06:38
wamba joined
06:39
darutoko joined
|
|||
Xliff wants an infix:<∞> operator. | 06:40 | ||
It should do something NIFTY! | 06:41 | ||
perlawhirl | hmm, panda must look at the repo's META if you give it a url | ||
i guess the only option until the moduless dir rebuilds is to git clone, cd pg-wig, panda install . | 06:42 | ||
but just wait under ~30 mins :D | |||
06:42
domidumont left
06:47
teatime joined
06:48
sue_ joined
06:52
domidumont joined
06:54
domidumont left
06:55
CIAvash joined
06:56
domidumont joined,
nadim left,
tardisx left
|
|||
moritz | ecosystem-api.p6c.org/projects.json now has wig | 06:58 | |
06:59
nadim joined
|
|||
perlawhirl | thanks moritz... though i made a booboo and messed up the source url. i've fixed it... now sitting idly waiting for the build to run again :D | 06:59 | |
not long now | |||
moritz | 8,28,48 * * * * bash update.sh > update.log 2>&1 | 07:01 | |
that's the update cron job for ecosystem-api.p6c.org | |||
moritz kicks it off manually | |||
... done | 07:03 | ||
RabidGravy | boom | ||
07:05
Actualeyes left,
perlawhirl left
07:06
perlawhirl joined
|
|||
perlawhirl | moritz++ | 07:09 | |
07:11
perlawhirl left
07:13
zakharyas joined
07:14
perlawhirl joined
|
|||
perlawhirl | Xliff: it works now {[: ) | 07:15 | |
07:17
yeahnoob joined,
perlawhirl left
07:18
yeahnoob left,
perlawhirl joined
07:20
nadim left
07:26
sunnavy__ is now known as sunnavy
07:29
Actualeyes joined,
fireartist joined
07:33
anaeem1 joined
07:34
anaeem1 left
07:44
abraxxa joined
07:45
perlawhirl left
|
|||
sortiz | abraxxa, ping | 07:46 | |
abraxxa | good morning! | ||
yoleaux | 30 Mar 2016 23:52Z <sortiz> abraxxa: Changes that only touch DBDish/Oracle* can be pushed directly to master | ||
03:26Z <sortiz> abraxxa: I finally have a working oracle test environment! | |||
abraxxa | great! | ||
sortiz | abraxxa, I have only 5 tests failing now. | ||
abraxxa | wow, great! | ||
that means I've wasted lots of time yesterday | 07:47 | ||
sortiz | :( Why? | ||
07:48
TEttinger left
|
|||
sortiz | The 'is rw' is now working for handlers, the problem was the base datatype. | 07:48 | |
07:49
dakkar joined
07:51
perlawhirl joined
07:52
sue_ left
07:59
leont joined
|
|||
abraxxa | i'll update my checkout | 08:02 | |
sortiz: have you not pushed it yet? | 08:03 | ||
sortiz | I haven't pushed yet. | ||
abraxxa | so what was required to get the Oracle docker container working on your Fedora? | ||
08:03
telex left
08:04
telex joined
|
|||
sortiz | As commented yesterday, my problem was with the client library vs selinux, but googling found a solution. | 08:04 | |
Pushing my WIP... | 08:05 | ||
dalek | Iish: b9ea19b | (Salvador Ortiz)++ | lib/DBDish/Oracle (4 files): Oracle: WIP, Updated some bindings |
08:07 | |
sortiz | abraxxa, My remaining problem is that somehow the returned strings don't match the reference ones, but seems identical. :-( | 08:12 | |
08:12
sue joined
|
|||
sortiz | Aha! | 08:13 | |
The returned ones are marked, for example: Str+{NativeCall::ExplicitlyManagedString} <element> = "BEOM" | 08:14 | ||
08:14
sjoshi joined
08:15
sjoshi left
|
|||
abraxxa | sortiz: yes | 08:15 | |
sortiz: don't know where this comes from | |||
sortiz: you wrote the OO code a bit different than I did yesterday, for example I moved OCIEnvNlsCreate into OCIEnv.new | 08:16 | ||
sortiz | Yes, I don't want to change the overall approach, yet :) | 08:17 | |
08:20
azawawi joined
|
|||
sortiz | And there are lots of calls not converted yet to avoid the CArray wrapper. | 08:20 | |
azawawi | hi | ||
RabidGravy: ping | |||
.seen RabidGravy | |||
yoleaux | I saw RabidGravy 07:03Z in #perl6: <RabidGravy> boom | ||
sortiz | azawawi, o/ | 08:21 | |
azawawi | sortiz: hi | ||
.tell RabidGravy github.com/azawawi/perl6-file-which/issues/4 # whence is now done as per your earlier request :) | |||
yoleaux | azawawi: I'll pass your message to RabidGravy. | ||
08:22
|Tux| joined
08:23
perlawhirl left
08:29
perlawhirl joined
|
|||
abraxxa | sortiz: FYI the OCI naming convention is: postfixed with p => pointer, pp => pointer to pointer | 08:34 | |
08:34
azawawi left
|
|||
abraxxa | so you might want to rename $envhpp to $envhp now that you're using is rw | 08:34 | |
sortiz++ # that refactor lead to really nice code! | 08:35 | ||
I wonder why the is rw didn't work for me yesterday, did the same thing you did | |||
sortiz: you seem to have tab/space problems in your editor | 08:36 | ||
08:36
nadim joined
|
|||
sortiz | For the 'is rw' see Native.pm6#L19 | 08:37 | |
08:40
g4 joined
|
|||
abraxxa | that does the double pointer trick? | 08:40 | |
sortiz | That plus 'is rw' | 08:41 | |
Xliff | perlawhirl, panda is still failing on the git clone. | 08:43 | |
==> Fetching wig | |||
fatal: remote error: | |||
Repository not found. | |||
fetch stage failed for wig: Failed cloning git repository 'git://github.com/0rac1e/wig.git' | |||
sortiz | And now we can convert all subs that take an OCIEnv as first parameter to methods in that class, for example. | ||
abraxxa | I defined it as class OCIEnv is repr('CPointer') is export {}; and is rw on OCIEnvNlsCreate and it didn't work | ||
perlawhirl | try umm --force or --reinstall or something | ||
maybe sortiz knows, but theres a dist folder, in ~/.perl6/dist on linux | 08:44 | ||
that has a file in it | |||
that still says 'wig.git' in it, it hasn't updated | |||
Xliff | "git clone github.com/0racle/wig.git; panda install ." <-- worked | ||
perlawhirl | that's weird, because the repo is now called p6-git... | 08:45 | |
maybe github remembers i renamed it and still lets you clone it via the old name ?? | |||
sortiz | abraxxa, then I don't know what happened, but now is working. | ||
Xliff | perlawhirl, did you see the SVG? | ||
abraxxa | sortiz: please check your tab/space editor settings | 08:46 | |
sortiz | Xliff, try 'panda update' | ||
Xliff | Oh! I see a logo. Was it one of mine or did you refont from the SVG? | ||
perlawhirl | i did, but i didn't have an editer to crop it to 32x32 | ||
nah i just knocked seomthing up in one of those icon maker sites | |||
sortiz | abraxxa, sure, don't worry about that, we have some more serious problems ;-) | 08:47 | |
08:47
perlawhirl2 joined
|
|||
abraxxa | sortiz: it makes reviewing commits harder when lines only have whitespace changes | 08:48 | |
Xliff | *gasp* | 08:49 | |
perlawhirl has a client that ignores CTCP VERSION!!! | |||
Philistine! | |||
sortiz | abraxxa, Yes, i know, promise fix that. | ||
abraxxa | sortiz: thanks! | ||
Xliff | Now how can I know what OS you have so that I can taunt you mercilessly? ^_^ | ||
perlawhirl2 | Xliff: i just got off the train. Switched from irssi on my laptop to some app on my phone | 08:50 | |
Xliff | perlawhirl, on a serious note. www.google.com/url?sa=t&rct=j&...HKKMi7uwDQ | ||
arnsholt | I used to have a client that replied to CTCP VERSION with a claim that it was running on an ENIAC =D | ||
Xliff | arnsholt++ | ||
perlawhirl2 | Any recommendation for irc client on Android | ||
Xliff | perlawhirl2, Inkscape is multiplatform SVG editor that can export to PNG. | 08:51 | |
perlawhirl2 | Something lite, i don't need a million protocols | ||
arnsholt | I think I had something weird for CTCP TIME as well. Can't remember what, though | ||
Xliff | perlawhirl2, I used to have one but that was WAY back in the day., | ||
play.google.com/store/apps/details...&hl=en | |||
08:52
perlawhirl left
|
|||
Xliff | That's the default option. | 08:52 | |
Works better with a tablet. IRC demands width-based real estate. | |||
perlawhirl2, heading to work or heading home?! | 08:53 | ||
perlawhirl2 | Heading home, albeit a bit late. 19:53 here | 08:54 | |
nadim | Morning! | 08:57 | |
RabidGravy | erp | 09:02 | |
yoleaux | 08:21Z <azawawi> RabidGravy: github.com/azawawi/perl6-file-which/issues/4 # whence is now done as per your earlier request :) | ||
RabidGravy | azawawi :) | ||
.tell azawawi RARRRR! | 09:03 | ||
yoleaux | RabidGravy: I'll pass your message to azawawi. | ||
09:03
ab6tract joined
|
|||
nine | perlawhirl2: I just use vxconnectbot to ssh to my server where irssi is running | 09:05 | |
Xliff | Rebuilding rakudo to check my Match infix:<eqv> implementation. | 09:07 | |
To my knowledge there are no formal test cases for Match... or are there? | 09:08 | ||
09:10
leont left,
donaldh joined
09:19
CIAvash left
09:23
xinming_ is now known as xinming
|
|||
Xliff | *sigh* | 09:23 | |
Now I've found a failed test case.... just when I was getting ready to push the PR. | |||
ARGH! | |||
I need sleep. I'll figure this out tomorrow. | |||
'night (or 'morn for some o ya) #perl6 | |||
09:24
Xliff is now known as Xliff_z_OUT
09:25
perlawhirl joined
09:27
quester left
09:28
perlawhirl2 left
09:31
labster left
09:32
espadrine joined
09:36
sue left
|
|||
ab6tract | lizmat: updated the PR again :) | 09:42 | |
09:55
perlawhirl left
|
|||
dalek | Iish: ce20a74 | (Salvador Ortiz)++ | lib/DB (3 files): Oracle: Passing the standard test suite Not yet "in an ideal world", TODO #50 |
09:55 | |
10:00
kid51 joined
10:04
perlawhirl joined,
cibs_ joined
|
|||
nadim | can someone make a review on Text::Template that is in the ecosystem? it's pretty short. | 10:09 | |
10:11
cibs joined
10:14
cibs_ left
|
|||
dalek | Iish: 91594d7 | (Alexander Hartmaier)++ | lib/DBIish/CommonTesting.pm6: fix typo |
10:17 | |
ab6tract | jnthn: not sure if you have any objections to the PR? | 10:38 | |
lizmat | ab6tract: right in the middle of something else, will try in a mo | 10:52 | |
jnthn | ab6tract: Didn't have time to look yet, sorry :( | ||
ab6tract | lizmat, jnthn: no problem! sorry, just a little excited about my first NQP patch (however trivial :) ) | 10:53 | |
Ulti | how much of a big deal would it to be to get some helper methods added to Duration to convert to minutes/hours/days | 11:03 | |
11:04
dvinciguerra__ joined
11:07
M-tadzik is now known as tadzik
|
|||
ab6tract | Ulti: sounds useful to me... a bit surprised that functionality is not already there | 11:12 | |
11:13
woodruffw joined,
woodruffw left
11:14
woodruffw joined
|
|||
lizmat | Ulti: isn't that what polymod is ? | 11:20 | |
11:20
nemo left
11:21
nemo joined
|
|||
moritz | well, days is dependent on which day you're talking about | 11:21 | |
11:21
fireartist left,
Some-body_ joined
|
|||
moritz | even minutes (there are minutes, hours, days with leap seconds) | 11:21 | |
timotimo | polymod isn't enough when you have to deal with leap seconds/days/... | ||
11:21
nemo is now known as Guest27595
11:22
cosarara_ left,
pierrot left,
DarthGandalf left,
Upasaka_ joined,
Some-body_ is now known as DarthGandalf,
cosarara joined
11:23
ZoffixWin joined,
ZoffixWin left,
ZoffixWin joined,
wtw joined,
jervo joined,
Timbus joined,
skarn joined,
nadim left
|
|||
lizmat | myabe I'm understanding Duration wrong then ? | 11:23 | |
11:24
Guest27595 is now known as nemo
|
|||
ab6tract | m: sub f() { True }; say f ?? 'yay!' !! 'nay!'; | 11:28 | |
camelia | rakudo-moar ae3a79: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Nvl4jDwA5lExpected a term, but found either infix ?? or redundant prefix ? (to suppress this message, please use a space like ? ?)at /tmp/Nvl4jDwA5l:1------> 3sub f() { True }; say f ??7⏏5 'ya…» | ||
moritz | or f() | 11:29 | |
ab6tract | I would have hoped that specifying no args would provide the same behavior as an empty prototype in p5 | ||
moritz: aye, that works. but it feels weird that p6 is less capable than p5 here | |||
moritz | your hopes have been squashed | ||
11:30
tony-o joined
|
|||
ab6tract | ok. well usually i like my tears to flow with an explanation | 11:30 | |
moritz | m: sub term:f { True }; say f ?? 'yay' !! 'nay' | ||
camelia | rakudo-moar ae3a79: OUTPUT«5===SORRY!5=== Error while compiling /tmp/u9x4khtkwZExpected a term, but found either infix ?? or redundant prefix ? (to suppress this message, please use a space like ? ?)at /tmp/u9x4khtkwZ:1------> 3sub term:f { True }; say f ??7⏏5 …» | ||
moritz | m: sub term:<f> { True }; say f ?? 'yay' !! 'nay' | ||
camelia | rakudo-moar ae3a79: OUTPUT«yay» | ||
moritz | ab6tract: we allow post-declaration of subroutines | 11:31 | |
ab6tract: so we can't have the declaration influence the parsing | |||
also, things get tricky once you're in multi territory | |||
ab6tract | gotcha. i had forgotten about the term category for ops | 11:32 | |
thanks for clarifying | |||
moritz | you're welcome | ||
ZoffixWin | If anyone's interested, the recording of my last night's "Wow, Perl 6!" talk has been posted and I've written up answers to some of the questions I didn't answer during the talk: blogs.perl.org/users/zoffix_znet/20...tions.html | 11:36 | |
jnthn | ZoffixWin: "Can you check whether or not a value fits the subset?" - just smartmatch against the subset type | 11:47 | |
ZoffixWin | :o | ||
timotimo | you, too, can be smart | 11:48 | |
jnthn | m: subset Even where * %% 2; say 3 ~~ Even; say 42 ~~ Even | ||
camelia | rakudo-moar ae3a79: OUTPUT«FalseTrue» | ||
ZoffixWin | jnthn++ | ||
Ulti | moritz as a unit though a duration in days would be 86400 seconds right? | 11:49 | |
like after a day you can't really talk about a unit month or year | 11:50 | ||
11:50
woodruffw left
|
|||
Ulti | but a lot of epoch times are numbers of days since X as a real value with a decimal day | 11:50 | |
specifically MS Excel dates are :) which is what I'm playing with | |||
11:54
kaare_ joined
|
|||
timotimo | ZoffixWin: sadly the noise cancellation or something else has done bad things with the audience questions in your recording :( | 11:55 | |
moritz | Ulti: not all days are 86400 seconds | ||
Ulti: which is why day isn't really a unit that can be carelessly converted from/to seconds | 11:56 | ||
ZoffixWin | I hear next time there'll be a better setup. | ||
moritz has a dream that one, all our days are created equal | 11:57 | ||
moritz has a dream | |||
Ulti | moritz which days arent? leap second is a specific date not a day and if you really care you can average the leap second over the calculation from knowing the full Duration | 12:01 | |
moritz | Ulti: days with leap seconds, days on which DST is switched on or off | ||
Ulti | sure those are specific dates not a day | ||
moritz | days on which a country changes what timezone it considers itself to be in | ||
Ulti | you dont change the duration of a second in phyiscs because there is a leap nanosecond | 12:02 | |
moritz: those are all specific dates not the length of any day | 12:03 | ||
moritz | Ulti: well, if you make the distiction between a date and a day, you can't add durations based on days to datetimes anymore | ||
Ulti | even a year you can define fairly well | ||
moritz | well, a year is rougly made of 365.25 days; but if you use that definition in a datetime library, you make everybody unhappy | 12:04 | |
Ulti | they arent based on days at the moment it only holds seconds, I'm suggesting if you want to know how many days those seconds add up to for no particular date you can avoid magic numbers | ||
delta_days in Perl 5 DateTime for example | |||
though I think that does do the full calculation | |||
but DateTime::Duration in Perl 5 also has delta_days which is more like what I'm talking about | 12:05 | ||
12:05
kid51 left
|
|||
timotimo | ZoffixWin: your "custom terms and operators" slide has an image, so i can't copy-paste all those values in order to try writing that program :| | 12:05 | |
Ulti | DateTime delta_days tells you the actual number of days between dates but the Duration just treats a day as a unit | ||
ZoffixWin | timotimo, go nuts :) unicodeemoticons.com/ | ||
timotimo | oh, fantastic | 12:06 | |
but what the hell should these actually do? | |||
you can just turn each of them into a term and an infix alternatingly | |||
ZoffixWin | Cure cancer? That'd look good in history books :) | ||
timotimo | i was hoping i could get a way with short one-liners for the implementations | 12:07 | |
.u ❨ | 12:09 | ||
yoleaux | U+2768 MEDIUM LEFT PARENTHESIS ORNAMENT [Ps] (❨) | ||
timotimo | fantastic | ||
12:10
andreoss joined
|
|||
andreoss | perl6-j dies with Unhandled exception: java.lang.StackOverflowError | 12:13 | |
in repl | |||
12:14
xinming_ joined
|
|||
ab6tract | andreoss: not sure if the jvm backend has ever gotten on its legs after the GLR.. | 12:16 | |
timotimo | only partially | 12:17 | |
could very well be that the REPL is just "too much" for it right now | |||
12:18
xinming left
12:22
xinming joined
|
|||
andreoss | will be rakudo-jvm released? or it's not a priority | 12:23 | |
12:24
xinming_ left
|
|||
timotimo | if i understand correctly, it's currently a single of our devs who's investing time into that | 12:24 | |
12:26
Sgeo__ left
|
|||
ab6tract | andreoss: indeed, the moar backend gets the vast majority of work at the moment. i believe that the reasoning is more or less "one full featured and fast backends is better than multiple slow, ever so slightly broken ones" | 12:28 | |
timotimo | well, a lot of the work really is cross-backend, or backend-agnostic | 12:30 | |
12:41
M-matthew left,
nemo left
12:43
dvinciguerra__ left
|
|||
timotimo | ZoffixWin: about aborting/killing promises; nope, not possible. if you need that kind of thing, you'll have to use processes, or you'll have to build the code so that it exposes some kind of flag "should i continue working?" | 12:43 | |
12:44
nemo joined,
nemo is now known as Guest52450
12:46
Guest52450 is now known as nemo
12:47
M-matthew joined
12:49
sufrostico joined
12:51
rindolf left
12:53
xinming left
|
|||
timotimo | oh, i just now remember, ZoffixWin, yo ucould have also shown off the ANTLR4 thingie for turning ANTLR grammars into a perl6 grammar | 12:54 | |
ZoffixWin | k | ||
timotimo | in general, "kill a thread" is something you're not really getting anywhere | ||
donaldh | ab6tract: the JVM backend did just fine after the GLR | 12:55 | |
12:55
rindolf joined
|
|||
donaldh | ab6tract: there were some issues on the JVM backend with the precompilation changes. One those manifested as a stack overflow error. | 12:55 | |
andreoss: ^ | 12:56 | ||
13:02
sufrostico left
13:13
xinming joined
13:17
sufrostico joined
13:21
cdg joined
|
|||
timotimo | ZoffixWin: your security tip thingie about RESTRICTED.setting is moot since you're allowed to "use nqp" and use anything moar offers | 13:21 | |
13:21
xinming left
|
|||
donaldh | The jvm repl blows up here: github.com/rakudo/rakudo/blob/7e8c...PL.pm#L243 | 13:31 | |
hoelzro | hmm...maybe we should disable REPL.pm on the JVM for now | 13:32 | |
donaldh | hoelzro: Why is it: has $.compiler | 13:33 | |
hoelzro: then $!compiler = ... | |||
timotimo | because $.compiler isn't "rw" | 13:34 | |
hoelzro | donaldh: well, I did it that way because the Completions role needs to access the compiler... | ||
timotimo | so you can only assign to the $! one | ||
hoelzro | ...but now that I think about it, you could still use $!compiler | ||
timotimo | with roles, yeah, you get access to the $!vars, too | ||
hoelzro | but if we went ahead and did that, it means that the Completions role would be more tightly bound to the REPL, but since it's the only usage of that role, it should probably be fine | 13:35 | |
does changing it to has $!compiler fix the issue? | |||
13:37
Roamer` joined,
pierrot joined
|
|||
donaldh | I'll try that | 13:37 | |
13:46
AlexDaniel joined
|
|||
donaldh | It's currently getting into an infinite stack recursion trying to create X::TypeCheck::Assignment | 13:47 | |
13:47
xinming joined
|
|||
donaldh | Trying to store to $!compiler | 13:47 | |
13:47
skids joined
13:55
robertle joined
|
|||
RabidGravy | can anyone think of a way to re-construct a Backtrace from a bunch of Backtrace::Frame objects? | 13:55 | |
I know that may seem a little strange but I want to deserialise a Backtrace | 13:56 | ||
13:57
[Tux] joined
|
|||
hoelzro | interesting... | 13:58 | |
robertle | tadzik: I have a environment created by rakudobrew, which I just wanted to upgrade. so I do 'rakudobrew self-upgrade', which does something, followed by 'rakudobrew build moar', which fails to compile something (pastebin.com/M5i2qzxF). deleting the directory and re-doing it from scratch works though. is this expected? odd? anything you want to have before I nuke the broken setup? | 13:59 | |
RabidGravy | robertle, how old was the previous rakudo? | 14:00 | |
robertle | RabidGravy: 2015.11-541-g03cbe70 built on MoarVM version 2015.11-44-ge7edb06 | ||
14:00
xinming left
|
|||
RabidGravy | yeah, that would probably require nuking | 14:00 | |
the way the modules are stored and loaded changed slightly after that | 14:01 | ||
robertle | ok, no problem! but to understand it a bit better: why? does upgrading use the already present stuff for bootstrapping, while the re-install (obviously) does not? | ||
RabidGravy | the design of CompUnit::Repository changed, it was a one off thing just prior to Christmas | 14:03 | |
14:04
wamba left
|
|||
robertle | k, thanks! | 14:04 | |
14:06
buharin joined
14:07
xinming joined
14:12
xinming left
14:13
Vlavv_ left
14:15
dupa joined
14:20
xinming joined
14:21
sufrostico left
14:26
xinming left
|
|||
RabidGravy | Actually I think I'm going ditch the intermediate Backtrace and just keep the frames, much simpler | 14:26 | |
14:26
Vlavv_ joined
14:27
dupa left,
buharin left
|
|||
perlawhirl | pretty quiet in here | 14:30 | |
timotimo | sorry about that, what can we do for you? | 14:31 | |
perlawhirl | lol, i'm just thowing together a quick network audit and perl6 keeps amazing me with how little i have to work to get results | ||
timotimo | <3 | ||
perlawhirl | like, i had a list of interfaces and their bandwidth in an array, in a lazy stringy way, and wanted to quickly check there bandwidths matched | 14:32 | |
m: my @ints = 'Gi0/1: 10000','Tu110: 10000','Tu120: 10000'; say [==] @ints».words»[1] | |||
camelia | rakudo-moar 7d4b3a: OUTPUT«True» | ||
14:32
xinming joined
|
|||
perlawhirl | rather than make a data structure that makes comparison easy, i was able to compare the data structures as i wanted without too much messing around | 14:33 | |
so enjoyable | |||
14:33
sufrostico joined
|
|||
timotimo | :) | 14:33 | |
[Coke] | ZoffixWin++ | ||
14:33
teatime left
|
|||
[Coke] | (presentation) | 14:33 | |
perlawhirl | yes! Zoffix++ gw | 14:34 | |
14:36
lizmat left
14:40
yqt joined
14:41
xinming left
14:44
buharin joined,
dupa joined
|
|||
TreyHarris | Anyone used JSON::Infer? It worked very nicely to produce a class schema matching my JSON... but I am stupidly at a loss to get any actual data out of the thing by doing My::TopLevel::Generated::Class.from-json($contents). I get structure, but structure only. An example of use beyond the tests (which are so abstract that I'm not seeing where my code is different) would be very helpful. | 14:45 | |
RabidGravy | Well I actually wrote it and have used it quite a bit | 14:46 | |
psch | RabidGravy: if you've got a moment, can you take a look at this gist? gist.github.com/peschwa/a8fabd272c...14bdb0195b | ||
RabidGravy: i'm mostly unsure if i'm mistreating either Audio::PortMIDI or the MIDI standard itself... :) | |||
14:47
g4 left
14:48
sufrostico left
|
|||
RabidGravy | psch, I so totally haven't tested with system exclusive stuff | 14:49 | |
but I think you want to create the event with timestanp and message rather than event | 14:50 | ||
psch | and event-type too, probably | ||
right, then the MfID, data and endSysEx goes into :message | 14:51 | ||
RabidGravy | yes | ||
psch | alright, i'll give that a try | ||
RabidGravy | well, maybe event-type "SysEx" and data-one, data-two with the actual data | 14:52 | |
It's entirely possible that SysEx doesn't work very well | 14:53 | ||
psch | yeah, i've only skimmed a few explanations of the packet format, didn't dig into the actual specification | ||
but i had the hunch that the hard 64 bit for .Int could easily be wrong, especially for SysEx | 14:54 | ||
RabidGravy | TreyHarris, it it's not too big data can you stick it in a gist | ||
14:54
Timbus left,
dupa left,
buharin left
|
|||
TreyHarris | RabidGravy: Yep, but I get Any, Any, Any and more Any instead of any actual scalar contents | 14:54 | |
psch | ohh, and obviously i'm not sending the binary string as binary data... | 14:55 | |
i should've seen that :/ | |||
TreyHarris | The structure's right. But the content's just Anys or uninitialized objects | ||
psch | m: say "010".Int | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«10» | ||
psch | m: say "0b010".Int | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«2» | ||
ilmari | m: say "0o010".Int | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«8» | ||
14:56
dvinciguerra__ joined
|
|||
psch | RabidGravy: i think i'll have to PR after writing a wrapper for Pm_WriteSysEx, probably :) | 14:57 | |
hoelzro | ZoffixWin++ # talking | ||
RabidGravy | TreyHarris, then it's likely that the data doesn't match the generated class | ||
which is odd but not impossible | |||
14:57
xinming joined
|
|||
psch | hm, or use write(@) | 14:58 | |
TreyHarris | RabidGravy: interesting. If you have a Mac, it's just the output of "brew info --json=v1 --installed". I don't see anything odd there, it's just strings. | ||
14:59
Timbus joined
|
|||
psch | nope, that also doesn't work 'cause Event always pads to 64bit and that gives 32 0 bits and that is invalid MIDI... | 14:59 | |
RabidGravy | TreyHarris, I don't have a Mac, can you just stick the data in a gist so I can take a look | 15:00 | |
15:04
xinming left
|
|||
RabidGravy | psch, www.midi.org/specifications/item/t...di-message - explains how the SysEx is packed, | 15:06 | |
15:07
khw joined
|
|||
psch | RabidGravy: right, that's why it's linked in clock.pl6 :) | 15:07 | |
15:07
xinming joined
|
|||
RabidGravy | basically you sent status => 0b11110000, data-one => MfID, then a bunch of 7-bit data then status => 0b11110111 | 15:08 | |
perlawhirl | can I determine which index of an array matches a particular regex? | ||
psch | alright, i'll try that | ||
jnthn | perlawhirl: .first or .grep, and pass :k to get indexes | 15:09 | |
perlawhirl | jnthn++ | ||
i'm ashamed that i knew that already | |||
psch | RabidGravy++ thanks, that does what i want it to | 15:11 | |
well, having to send the endSysEx seperately is a bit annoying, but i think i can deal | |||
TreyHarris | RabidGravy: sorry, took a minute because gist doesn't support directories. See bottom for output: gist.github.com/treyharris/7b57dd3...c13938362f | ||
RabidGravy | yay! I'd go an example | 15:12 | |
tony-o | perlawhirl: example? | ||
oh, missed jnthn's comment | 15:13 | ||
perlawhirl | m: my @a = 'foo', 'bar', 'baz'; @a.grep(/baz/, :k) | ||
camelia | ( no output ) | ||
perlawhirl | m: my @a = 'foo', 'bar', 'baz'; say @a.grep(/baz/, :k) | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«(2)» | ||
perlawhirl | oh, i missed your 2nd comment :D | 15:14 | |
jnthn | .oO( Reading on IRC is overrated, just write stuff... ) |
||
15:15
yqt left
|
|||
arnsholt | Perl is a write-only language, so why shouldn't our IRC channel also be so? =) | 15:15 | |
RabidGravy | TreyHarris, ah, the JSON::Class doesn't deal with data which is an array at the top level | 15:16 | |
perlawhirl | arnsholt: ouch... my heart | 15:17 | |
TreyHarris | RabidGravy: ah, so all I need to do is a split on the file contents and use a loop? | 15:18 | |
arnsholt | =) | ||
TreyHarris | erm... "all". this isn't so easy, there are not only nesting but also escaped square brackets in the file :-/ | 15:19 | |
15:20
xinming left
|
|||
TreyHarris | RabidGravy: any suggestion for an easy way to separate the text into a list of texts? or is this a JSON::Class bug? | 15:20 | |
15:20
xinming joined
|
|||
RabidGravy | 'ang on, let me have a fiddle - I think there may be a simpler, albeit less efficient way | 15:22 | |
It's fake up a top level object | 15:24 | ||
15:24
nemo left
|
|||
TreyHarris nods | 15:25 | ||
RabidGravy: I see where you're going. I don't like it. | |||
15:25
nemo joined
|
|||
TreyHarris is kidding | 15:25 | ||
15:25
nemo is now known as Guest85074
15:26
Guest85074 is now known as nemo
15:27
TEttinger joined
15:28
buharin joined,
dupa joined
|
|||
TreyHarris | RabidGravy: Though my stupid attempt, just wrapping the entire file in qq[\{ "contents": $contents \}], didn't change anything | 15:33 | |
15:34
domidumont left
|
|||
garu | tadzik: annoying ping of the day :) any chance you can take a quick look at github.com/tadzik/Bailador/pull/50? | 15:36 | |
tadzik | oh, oh! | ||
I missed it | |||
garu | \o/ | ||
tadzik | looking at it right now | ||
robertle | really stupid question, but I can't work it out: which dot-method tells me what type a scalar is? so e.g. (1/3).WHICH says 'Rat|1/3', is there something that just says the type? WHICH feels wrong | 15:37 | |
garu | thanks! if it sucks, just let me know and I'll do my best to fix it | ||
tadzik | All changes and new features have tests included in the commit | ||
garu | yup | ||
tadzik | somebody buy this man a beer or ten | ||
garu | \o/ | ||
15:37
perlawhirl left
|
|||
garu | this is actually my very first public pull request in perl 6 | 15:38 | |
so I'm kind of excited :) | |||
(and scared) | |||
but mostly excited | |||
tadzik | m: my $a = "foo"; my $b = $a.subst(/foo/, "bar"); say $b | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«bar» | ||
tadzik | garu: you may like that ^ ) | ||
garu | O_O | ||
*YES* | |||
moritz | robertle: .^name | 15:39 | |
m: say (1/3).^name | |||
camelia | rakudo-moar 7d4b3a: OUTPUT«Rat» | ||
15:39
dupa left,
buharin left
|
|||
tadzik | that's a ton of good stuff, I love it! | 15:39 | |
garu++ | |||
RabidGravy | TreyHarris, there I've updated the gist, basically if you change the top level class to Honebrew::Formula and then add the new Homebrew::Formulas at the bottom | ||
moritz | robertle: and .WHAT gives you the type object (.^name gives you the name of the type) | ||
RabidGravy | then use "from-brew" it's all good | 15:40 | |
psch | m: given 3 { when *.&[+&]: 1 { say "got 0 bit"; proceed }; when *.&[+&]: 2 { say "got 1 bit"; proceed } } # linenoise you say | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«got 0 bitgot 1 bit» | ||
tadzik | I'll go do a quick shopping and will merge your stuff when I'm back, I think :) | ||
psch | yes, *.&[+&]: looks pretty good indeed :) | ||
garu | tadzik: I think I need it to be case insensitive though | ||
just in case | |||
tadzik: which is why I did the $field ~~ s:i/^HTTPS?_//; | 15:41 | ||
wish there was a way to do s///r like there is in p5 | |||
robertle | moritz: great, thanks! | ||
psch | garu: there's S/// | ||
timotimo | you mean like S///? | ||
garu | psch, timotimo: yeah, vendethiel mentioned it but it didn't work :( | 15:42 | |
I can't find it in docs.perl6.org/language/regexes#Substitution | |||
timotimo | yeah, you have to set $_ instead of using ~~ | ||
garu | m: my $key = q<HTTP_USER_AGENT>; my $field = $key ~~ S/HTTP//; say $field | 15:43 | |
camelia | rakudo-moar 7d4b3a: OUTPUT«Potential difficulties: Smartmatch with S/// can never succeed because the string it returns will fail to match. You can use given instead of ~~. at /tmp/OZ4eXxsIhr:1 ------> 3q<HTTP_USER_AGENT>; my $field = $key ~~ 7⏏5S/HTTP//; say …» | ||
15:43
ab6tract left
|
|||
psch | m: my $key = q<HTTP_USER_AGENT>; my $field = S/HTTP// given $key; say $field | 15:43 | |
camelia | rakudo-moar 7d4b3a: OUTPUT«_USER_AGENT» | ||
psch | garu: just like the message says... :) | ||
TreyHarris | RabidGravy: perfect! thanks! | ||
timotimo | i told him, the message told him, he still went for it :P | ||
psch | hm, maybe it should expand to something like "$rhs given $lhs" | 15:44 | |
garu | psch: ha! sorry, but that message was less than awesome for me (someone who just got started in perl6 and doesn't really know much about 'given') | ||
timotimo | maybe we should highlight "instead" in bold or color | ||
psch | garu: yeah, that's why i was thinking it should tell the user to swap the args | 15:45 | |
garu | m: my $key = q<HTTP_USER_AGENT>; my $field = $key given S/HTTP//; say $field | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«Method 'match' not found for invocant of class 'Any' in block <unit> at /tmp/kMDlgBWveb line 1» | ||
RabidGravy | TreyHarris, it's a bit slow for large data, but hey. I'll have a think of doing something more sensible out of the box | ||
garu | that's what I tried when I saw "use given instead of ~~" :P | ||
timotimo | do we parse Rgiven properly? :D | 15:46 | |
garu | psch, timotimo: how can I volunteer to update the docs for S///? I mean, where do I send my PRs to? :) | 15:47 | |
moritz | garu: perl6/doc | 15:48 | |
15:49
domidumont joined
|
|||
garu | moritz: thanks! | 15:49 | |
15:51
pmurias joined
|
|||
pmurias | nqp-js-on-js now passes all the t/nqp tests :) | 15:52 | |
RabidGravy | yay! | 15:53 | |
hoelzro | pmurias++ | 15:54 | |
moritz | \o/ | ||
pmurias++ | |||
donaldh | pmurias++ # this is when you discover nqp doesn't have enough tests | 15:55 | |
moritz | donaldh: pmurias discovered this long ago. And wrote more tests! | ||
still too few, probably, but much better than before | |||
donaldh | Yep. It will be interesting to flush out remaining gaps. | 15:56 | |
15:56
pmurias_ joined
15:58
pmurias left
|
|||
jnthn | pmurias_: \o/ | 15:58 | |
Nice work! :) | |||
15:59
pmurias_ is now known as pmurias
|
|||
pmurias | thanks ;) | 16:05 | |
16:05
pmurias left,
robertle left
16:09
nowan_ joined
|
|||
psch | RabidGravy: gist.github.com/peschwa/960ffaa7a7...faa92e84b2 basically abusing SysEx to for pattern programming here | 16:10 | |
it works, it's probably never been intended like that, and the standard probably also specifies something else you should use for that, but eh :) | 16:11 | ||
RabidGravy | :) | 16:13 | |
tadzik | garu: .subst can do that too | 16:23 | |
donaldh | hoelzro: This patch seems to let jvm get to the repl prompt. gist.github.com/donaldh/90687a8ecd...6c0fbf357d | 16:24 | |
tadzik | subst(a, b, :i) or so | ||
donaldh | hoelzro: unfortunately I can't install panda to install linenoise, so I can't test it. | ||
hoelzro | weird, but thanks for digging in! | ||
donaldh++ | |||
donaldh | I'll keep investigating | 16:25 | |
hoelzro | donaldh: wanna commit and push that? I can't do anything until after I get home from work | ||
16:25
g4 joined,
g4 left,
g4 joined
|
|||
donaldh | Not just now. I haven't tested it on moar. | 16:25 | |
16:26
abraxxa left
|
|||
hoelzro | ok | 16:26 | |
16:32
leont joined
|
|||
donaldh | Ugh, rakudobrew build panda blows up on JVM backend. | 16:42 | |
timotimo | pmurias++ # fantastic work on nqp-js in general and nqp-js-on-js in particular | 16:45 | |
16:46
AlexDaniel left
|
|||
awwaiid | pmurias++ # definitely | 16:46 | |
garu | tadzik: do you prefer we use .subst there? Or is S/// fine? | 16:47 | |
awwaiid | I keep taking a look at the progress there, but it seems like you have to load a whole lot of context into your brain to make useful contributions | ||
tadzik | garu: S/// is fine, I learned about it today :P | 16:48 | |
timotimo | psch: why can't you just write * +& 2? | 16:49 | |
garu | tadzik: then it's pushed! travis is just finishing up testing it, but it should be fine :) | ||
tadzik | garu: marvelous! | ||
psch | timotimo: i clearly can :) | ||
tadzik | btw, do I remember correctly that you'll be on the QAH? | ||
16:49
maybekoo2 joined
|
|||
timotimo | psch: is that code reacting to a metronome or something? | 16:50 | |
psch | timotimo: sort of, yeah. --server starts the server which sends each of the array fields in turn | ||
timotimo: and each of those fields encodes which note duration fits onto that moment in the measure | 16:51 | ||
well, with the caveat that note durations only fit completely into a measure, which isn't how music really works... :) | |||
timotimo | i don't even a little bit of music :\ | 16:52 | |
garu | tadzik: yup! I'll meet you there :) | ||
psch | as in, a 4/4 measure can have a half on the 1 and the 3, but not on the 2 'cause then you can't fill the measure with only halfs anymore | ||
tadzik | sweet! | ||
psch | and --client reacts and play the corresponding instruments when the right moment in the measure is reached | 16:53 | |
+s | |||
s/reacts/reacts to that encoding/ # probably | |||
timotimo | mhm | ||
RabidGravy | at some point I'm going to hook it up to some real synthesizers | 16:54 | |
timotimo | CRSB are cymbal, ride, snare and base? | ||
RabidGravy | I found all my three port usb - midi adapters yesterday | ||
psch | timotimo: i read C as "closed hihat", but yeah | 16:55 | |
ah | |||
but that was a mistake when i did that | |||
afair :P | |||
tadzik | garu: merged :) Thanks! | ||
RabidGravy | (stupid modern day manufacturers seem to omit the midi-through port) | 16:56 | |
tadzik | now, I still have yours for rakudobrew | ||
psch | i think C is crash and R sounds more like a closed hihat to me vOv | ||
tadzik | which looked good but I still didn't testit :| | ||
psch | i won't bother to look up the GM mapping though :) | ||
timotimo | General MIDI? | 16:57 | |
RabidGravy | psch, computermusicresource.com/GM.Percus...eyMap.html | ||
that's quite useful | |||
16:57
edehont joined
|
|||
garu | tadzik++ # thanks! | 17:00 | |
17:01
domidumont left
|
|||
garu | tadzik: yeah, github.com/tadzik/rakudobrew/pull/84 | 17:01 | |
17:02
dakkar left
|
|||
garu | tadzik: should be easy to check, just install a few tags of rakudo (both available and not available in panda as well) and see what happens :P | 17:02 | |
tadzik | yep :) | 17:03 | |
garu | tadzik: what I like about this patch is that it get's even better if panda's maintainers keep track of rakudo's tags | 17:04 | |
s/get's/gets/ | |||
tadzik | yeah, we should :} | ||
garu | :) | ||
but before you did so because it was nice | |||
now it's not just nice, but useful :P | |||
tadzik | it was documentation, y;eah | 17:05 | |
garu | (and if no tag is found, it'll fallback to the current behaviour of fetching HEAD) | ||
tadzik | yep | ||
garu | tadzik: again, if there's anything I can do to help get this merged, just say the word :) | 17:06 | |
17:06
rindolf left,
domidumont joined
|
|||
tadzik | feel free to pester me if it's unmerged tomorrow morning :P | 17:06 | |
garu | gotcha :) | 17:07 | |
17:11
TeamBlast joined
|
|||
dalek | c: eb93d54 | timotimo++ | doc/Language/performance.pod: fix remaining references to BEGIN where it should be INIT |
17:11 | |
c: 15d362b | timotimo++ | doc/Language/performance.pod: remove a stray "e" |
|||
c: 7658f8a | timotimo++ | doc/Language/performance.pod: remove section "Process lazily" that looks a bit bit-rotted anyone can feel free to write up a new version of this with a more up-to-date and correct example, though. |
|||
17:11
rindolf joined
|
|||
andreoss | m: my ($x, $y) = flat gather "1234 abcd" ~~ /(\d+) \s (\S+) { take ~$0,~$1 } /; say "0-$x 1-$y" | 17:14 | |
camelia | rakudo-moar 7d4b3a: OUTPUT«0-1234 1-abcd» | ||
timotimo | the part at the very end might want revisiting, too. for example, i think in general our gather/take can be quite fast nowadays. but perhaps only in certain situations? | 17:15 | |
andreoss | can i have that but without gather/take? | ||
17:15
domidumont left,
dvinciguerra__ left
|
|||
timotimo | of course you can :) | 17:15 | |
andreoss | my ($a, $b, @c) = $var ~~ /.../; # matches go to $a, $b, @c | ||
17:16
donaldh left
|
|||
timotimo | m: my ($x, $y) = "1234 abcd".match(/(\d+) \s (\S+)/).list; say "0-$x 1-$y" | 17:16 | |
camelia | rakudo-moar 7d4b3a: OUTPUT«0-1234 1-abcd» | ||
timotimo | m: my ($x, $y) = "1234 abcd".match(/(\d+) \s (\S+)/); say "0-$x 1-$y" | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«Use of uninitialized value $y of type Any in string contextAny of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block <unit> at /tmp/lidVfSLkUD line 10-1234 abcd 1-» | ||
timotimo | m: my ($x, $y) := "1234 abcd".match(/(\d+) \s (\S+)/); say "0-$x 1-$y" | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«Unexpected named argument '' passed in block <unit> at /tmp/IfY_gdcoBX line 1» | ||
timotimo | OK, so you need the .list | ||
andreoss | not with ~~? | 17:17 | |
17:17
edehont left
17:18
dupa joined,
buharin joined
|
|||
timotimo | m: my ($x, $y) = ("1234 abcd" ~~ (/(\d+) \s (\S+)/)).list; say "0-$x 1-$y" | 17:19 | |
camelia | rakudo-moar 7d4b3a: OUTPUT«0-1234 1-abcd» | ||
timotimo | also works with ~~ | ||
17:21
sufrostico joined
|
|||
andreoss | m: my ($x, $y) = list ("123 abc" ~~ /(\d+) \s (\S+)/); say $x.perl; | 17:21 | |
camelia | rakudo-moar 7d4b3a: OUTPUT«Match.new(ast => Any, list => (Match.new(ast => Any, list => (), hash => Map.new(()), orig => "123 abc", to => 3, from => 0), Match.new(ast => Any, list => (), hash => Map.new(()), orig => "123 abc", to => 7, from => 4)), hash => Map.new(("" => [])), orig …» | ||
andreoss | m: my ($x, $y) = list ("123 abc" ~~ /(\d+) \s (\S+)/); say "0-$x 1-$y"; | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«Use of uninitialized value $y of type Any in string contextAny of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block <unit> at /tmp/btQ1pverw_ line 10-123 abc 1-» | ||
17:22
ocbtec joined
|
|||
andreoss | m: my (Int() $x, Str() $y) = ("123 abc" ~~ /(\d+) \s (\S+)/).list; say $x.perl; | 17:23 | |
camelia | rakudo-moar 7d4b3a: OUTPUT«Match.new(ast => Any, list => (), hash => Map.new(()), orig => "123 abc", to => 3, from => 0)» | ||
andreoss | can i coerce the matches to Str or Int on the way? | 17:24 | |
17:24
doctor-professor joined,
sufrosti1o joined
|
|||
andreoss | without .map | 17:24 | |
doctor-professor | Hi, I'm translating a p5 module to p6. I'm done but I'd like to know how to create a README.md file from the markdown at the end of my main script (the html tag stuff after =finish), and how to generate the META.json and minil.toml files. Anyone know how? | 17:26 | |
andreoss | panda gen-meta | 17:27 | |
[Coke] | pmurias++ | 17:29 | |
doctor-professor | I always did like you andreoss | 17:30 | |
17:31
buharin left,
dupa left
17:32
JRaspass joined,
wamba joined
|
|||
[Coke] | (nqp-js-on-js) - any pointers on how to run this? README is still tooled to nqp-js via moarvm. | 17:35 | |
ugexe | gen-meta does not account for name spaces that dont match the file system layout (or multiple declared namespaces in a single file), and bin/ wrappers strip --name from @*ARGS (which gen-meta takes as a named argument) | ||
17:38
leont left
17:39
sortiz left
17:41
doctor-professor left
|
|||
masak | evening, #perl6 | 17:41 | |
17:41
xinming_ joined
17:42
xinming_ left,
xinming_ joined
17:43
xinming is now known as Guest33836
17:44
Guest33836 left
17:45
xinming_ is now known as xinming
|
|||
[Coke] | morning. | 17:46 | |
17:47
buharin joined,
dupa joined
|
|||
[Coke] | pmurias: npm ERR! git fetch -a origin (git://github.com/pmurias/nqp-js-io.git) fatal: Unable to look up github.com (port 9418) (nodename nor servname prov | 17:48 | |
(I don't expect you to have a fix for this, but just another case of "everyone's corporate network sucks in a different way" | |||
andreoss | m: perl6 -e 'multi MAIN(Numeric $x) { say $x }; multi MAIN(Str $s) { say "str $s" }' 1.4 | 17:49 | |
camelia | rakudo-moar 7d4b3a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/hxsB41ibThTwo terms in a rowat /tmp/hxsB41ibTh:1------> 3perl6 -e7⏏5 'multi MAIN(Numeric $x) { say $x }; mul expecting any of: infix infix stopper postfix …» | ||
17:49
zakharyas left
|
|||
andreoss | m: perl6 -e 'multi MAIN(Numeric $x) { say $x }; multi MAIN(Str $s) { say "str $s" }' ; say foo 1.4 | 17:49 | |
camelia | rakudo-moar 7d4b3a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/WiHRgQnsbBTwo terms in a rowat /tmp/WiHRgQnsbB:1------> 3perl6 -e7⏏5 'multi MAIN(Numeric $x) { say $x }; mul expecting any of: infix infix stopper postfix …» | ||
andreoss | damn | ||
m: multi foo(Numeric) { "Numeric" }; multi foo(Str) { "Str" } ; say foo(1.2) | |||
camelia | rakudo-moar 7d4b3a: OUTPUT«Numeric» | ||
andreoss | why this doesn't work with MAIN? | 17:50 | |
# perl6 -e 'multi MAIN(Numeric) { "Numeric" }; multi MAIN(Str) { "Str" } ;' 1.2 | |||
[Coke] | main is taking IntStrs. | ||
or other *Strs. | 17:51 | ||
that'd be my guess. | |||
geekosaur | command line parameters are strings | ||
inferring them as something else is problematic at best | |||
andreoss | geekosaur: so MAIN(Int $s) means nothing? | 17:52 | |
masak | m: perl6 -e 'multi MAIN(Numeric $x) { say $x }; multi MAIN(Str $s) { say "str $s" }; 1.4 | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/VxNI2v8g99Two terms in a rowat /tmp/VxNI2v8g99:1------> 3perl6 -e7⏏5 'multi MAIN(Numeric $x) { say $x }; mul expecting any of: infix infix stopper postfix …» | ||
masak | m: multi MAIN(Numeric $x) { say $x }; multi MAIN(Str $s) { say "str $s" } | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«Usage: /tmp/s4ieHhCYCV <x>  /tmp/s4ieHhCYCV <s> » | ||
[Coke] | multi MAIN (Numeric $x) { say "got Numeric"; }; multi MAIN ($x) { say "Got something"; } | 17:53 | |
17:53
JRaspass left
|
|||
psch | m: multi MAIN(Numeric $x) { say $x }; multi MAIN(Str $s) { say "str $s" }; MAIN <1.4> | 17:53 | |
camelia | rakudo-moar 7d4b3a: OUTPUT«Ambiguous call to 'MAIN'; these signatures all match::(Numeric $x):(Str $s) in block <unit> at /tmp/dExw5grWUp line 1» | ||
[Coke] | ^^ that works, though. not sure what your issue is. | ||
geekosaur | I would guess that, in absence of a Str multi, it would convert. but if a multi accepts Str then it probably gets it directly | ||
psch | m: say <1.4>.WHAT | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«(RatStr)» | ||
[Coke] | yes, a RatStr is a Str. | ||
geekosaur | because there is no way to specify whether the 1.4 you passed there was intended to be a number or a string | ||
psch | [Coke]: so MAIN as entry point does something extra to resolve that dispatch..? | ||
[Coke] | note that my second one isn't a string. | 17:54 | |
if you change ($x) to (Str $x) you get "ambiguous call" | |||
psch | [Coke]: right. i suppose what i'm really wondering is what exactly in andreoss' "why doesn't it work with MAIN" that doesn't work :) | ||
[Coke] | nothing extra, it's just a multi | ||
andreoss: perhaps gist the exact problem. | |||
psch | s/exactly/exactly it is/ | ||
[Coke] | m: multi MAIN (Numeric $x) { say "got Numeric"; }; multi MAIN ($x) { say "Got something"; }; MAIN(<1.2>); MAIN("x") | 17:55 | |
camelia | rakudo-moar 7d4b3a: OUTPUT«got NumericGot somethingUsage: /tmp/dtO1ocuZUI <x>  /tmp/dtO1ocuZUI <x> » | ||
andreoss | paste.debian.net/423049/ | 17:56 | |
Numeric case can't get match | 17:57 | ||
*matched | 17:58 | ||
[Coke] | what are you invoking it with on the command line? | ||
I get "Ambiguous call to 'MAIN'; these signatures all match" | 17:59 | ||
which is exactly correct. | |||
(if annoying) | |||
remove the "Str" from the second sub's signature. | 18:00 | ||
andreoss | it works. but what the type is now? | 18:01 | |
geekosaur | probably Str. the difference is that, it having not specified the type, it no longer ties with the Numeric one | ||
[Coke] | andreoss: you can easily check the type, but it's Str. | 18:02 | |
Do you get why it's a tie for MAIN args? | |||
andreoss | works with MAIN(Any) too | 18:03 | |
m: say Numeric.^mro, Str.^mro | |||
camelia | rakudo-moar 7d4b3a: OUTPUT«Method 'mro' not found for invocant of class 'Perl6::Metamodel::ParametricRoleGroupHOW' in block <unit> at /tmp/nWOFwJytY4 line 1» | 18:04 | |
[Coke] | m: my $main-arg=<1.2>; say $main-arg ~~ Numeric; say $main-arg ~~ Str | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«TrueTrue» | ||
[Coke] | m: my $main-arg=1.2; say $main-arg ~~ Numeric; say $main-arg ~~ Str | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«TrueFalse» | ||
andreoss | i get it | ||
[Coke] | ok. | ||
andreoss | why just don't consider the first multi as a match? | 18:05 | |
psch | m: multi f(Mu \x) { "Mu" }; multi f(Str $x) { "Str" }; f "foo" | 18:06 | |
camelia | ( no output ) | ||
[Coke] | because they both match. | 18:07 | |
psch | "the first" would always match Mu there | ||
[Coke] | How can we know you didn't mean *any* string on the second one? | ||
If you want "any str that isn't also a Numeric" you can make a subset for that. | |||
18:08
espadrine left
|
|||
andreoss | order of multies doesn't matter at all? | 18:08 | |
geekosaur | right. Haskell does provide a way to do that, btw (OVERLAP pragma); both the class and any overlapping instances must opt in, to avoid unexpected behavior | ||
[Coke] | andreoss: not if they're both an exact match, no | ||
geekosaur | I personally think order of declaration mattering is a really *bad* idea | ||
18:09
leont joined
|
|||
TimToady | order only matters if there are extra constraints | 18:09 | |
yoleaux | 29 Mar 2016 21:17Z <ab5tract> TimToady: I might have found another mistaken 'useless use in sink context' warning: 'm: my $f = '25 25 25'; $f ~~ s:nth(*-1)[\d+] = 42; say $f' | ||
[Coke] | (as I understand it, could be wrong) | ||
timotimo | order of multies is important mostly for methods with named arguments | ||
TimToady | nominal matching is unordered | ||
geekosaur | sorry, no, thinko. OVERLAP allows Perl 6's more-specific behavior. This is IncoherentInstances and that is considered a really bad idea for really good reasons | 18:10 | |
18:11
dvinciguerra joined
|
|||
[Coke] | andreoss: subset StrOnly where {$_ ~~ Str && $_ !~~ Numeric}; multi MAIN(StrOnly $interval) ... | 18:12 | |
You could go further and make sure that the String matches your format required for strings also, and emit the usage if not. | |||
18:16
leont left,
leont joined,
cdg left,
{dpk} is now known as dpk
18:17
cdg joined
18:18
buharin left,
dupa left
18:21
cdg left
|
|||
TreyHarris | I was interested to see ordering of multis matters for named arguments even when arity is different. "multi sub dwim(:$foo) {...} multi sub dwim(:$foo, :$bar)" doesn't work, the first is always called even in the presence of :bar | 18:22 | |
18:25
nadim joined
|
|||
TreyHarris | (you also need to specify :D on :bar or even with the correct ordering it doesn't work, everything goes to the first one) | 18:25 | |
psch | m: multi sub dwim(:$foo) { "foo" }; multi sub dwim(:$foo, :$bar) { "foobar" }; say dwim :foo, :bar | 18:27 | |
camelia | rakudo-moar 7d4b3a: OUTPUT«foobar» | ||
psch | m: class C { multi method dwim(:$foo) { "foo" }; multi method dwim(:$foo, :$bar) { "foobar" }; }; say C.dwim: :foo, :bar | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«foo» | ||
psch | m: class C { multi method dwim(:$foo) { "foo" }; multi method dwim(:$foo, :$bar!) { "foobar" }; }; say C.dwim( :foo, :bar ) | 18:28 | |
camelia | rakudo-moar 7d4b3a: OUTPUT«foo» | ||
masak | TreyHarris: I think that's when ordering matters. if you re-oreder those, you get the other one being called all the time. | ||
TreyHarris | yes, it was a multi method now that I look at the code in question | ||
masak | TreyHarris: also, in Perl 6, if you write several sub/method declarations on the same line, you need a semicolon to separate them | 18:29 | |
TreyHarris | masak: oh, using ! instead of :D is clearer, obviously. didn't think of that | ||
masak | that wasn't me, that was psch :) | 18:30 | |
TreyHarris | masak: sorry, I wasn't meaning to quote literal code, just separate it from the English surrounding it. | ||
masak | oh, ok | ||
TreyHarris | psch: indeed, that's better :) | ||
vendethiel | .tell hoelzro hoelz.ro/blog/binding-to-cpp-with-nativecall you probably want noexcept instead of throw() :) | 18:32 | |
yoleaux | vendethiel: I'll pass your message to hoelzro. | ||
hoelzro | vendethiel: thanks! what's the difference? just C++11 version of throw (), or is there more to noexcept? | 18:33 | |
yoleaux | 18:32Z <vendethiel> hoelzro: hoelz.ro/blog/binding-to-cpp-with-nativecall you probably want noexcept instead of throw() :) | ||
vendethiel | throw() is deprecated and will probably be removed in C++17 (well, actually, I think the paper was declined, but a lot of people are pushing to get a different kind of system instead) | 18:34 | |
18:35
dupa joined,
buharin joined
|
|||
vendethiel | (so it's more of a general "warning" against throw(...), "throw()" is the only "good" case and that's why noexcept was added. noexcept also can be used to query the value | 18:35 | |
i.e. noexcept(sizeof(T) < 4 && noexcept(fn())) | |||
18:40
andreoss left
18:43
Ven joined
|
|||
masak | this is a lovely little project: github.com/thejameskyle/the-super-tiny-compiler | 18:43 | |
HN: news.ycombinator.com/item?id=11395656 | |||
recommended reading for anyone who's ever wanted to jump into compilers but wasn't sure where to start | 18:44 | ||
the comments in the code are very friendly -- in fact, they're exemplary | 18:47 | ||
Guest73352 | m: say (1, 22/7, 42, 300).first: * > 5, :kv, :end; # doesn't work for some reason | 18:49 | |
camelia | rakudo-moar 7d4b3a: OUTPUT«Unexpected adverb 'kv' passed to first :end on List in block <unit> at /tmp/H_nj45b8zZ line 1Actually thrown at: in block <unit> at /tmp/H_nj45b8zZ line 1» | ||
Guest73352 | anyone know why | ||
moritz | m: say (1, 22/7, 42, 300).first: * > 5, :kv | 18:50 | |
camelia | rakudo-moar 7d4b3a: OUTPUT«Unexpected adverb 'kv' passed to first on List in block <unit> at /tmp/bJq3SgpmDu line 1Actually thrown at: in block <unit> at /tmp/bJq3SgpmDu line 1» | ||
moritz | m: say (1, 22/7, 42, 300).first: * > 5 | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«42» | ||
moritz | m: say (1, 22/7, 42, 300).first: * > 5, :end | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«300» | ||
moritz | m: say (1, 22/7, 42, 300).first: * > 5, :kv | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«Unexpected adverb 'kv' passed to first on List in block <unit> at /tmp/we9Riz2lcS line 1Actually thrown at: in block <unit> at /tmp/we9Riz2lcS line 1» | ||
masak | Guest73352: .first doesn't seem to have a :kv | ||
moritz | right | ||
masak | Guest73352: arguably it should | ||
I looked at the source. it doesn't. | |||
IMO, .first ought to have everything .grep hs | 18:51 | ||
has* | |||
Guest73352 | according to the docs :kv should be there | ||
18:51
labster joined
|
|||
masak | a rare case of the docs being ahead :P | 18:51 | |
Guest73352 | :-) | ||
masak .oO( quick, down-date the docs! ) :P | 18:52 | ||
18:53
labster left
|
|||
Guest73352 | will it magically appear in the future you think? | 18:53 | |
moritz | Guest73352: depends on whether lizmat backlogs and reads this conversation :-) | 18:55 | |
Guest73352 | let's hope she does or I might have to report it somewhere :-) | 18:57 | |
masak | knowyourmeme.com/memes/why-not-both...-have-both | 18:59 | |
18:59
Ven left
|
|||
masak .oO( ¿Por qué no las dos? ) | 19:00 | ||
19:04
Actualeyes left
19:05
ufobat joined
19:10
Ven joined
19:14
Ven left
|
|||
Xliff_z_OUT | in "perl6 -V" what variable would be the equivalent of perl5's default @INC? | 19:16 | |
masak | @*INC | ||
vendethiel | there are dongers in that compiler | 19:17 | |
moritz | masak: @*INC is gone | ||
masak | oh! | ||
<!-- Static navbar --> | |||
<nav class="navbar navbar-default"> | |||
<div class="container-fluid"> | |||
<div class="navbar-header"> | |||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> | |||
moritz | m: say $*REPO.repo-chain | ||
masak | <span class="sr-only">Toggle navigation</span> | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«(inst#/home/camelia/.perl6 inst#/home/camelia/rakudo-m-inst-2/share/perl6/site inst#/home/camelia/rakudo-m-inst-2/share/perl6/vendor inst#/home/camelia/rakudo-m-inst-2/share/perl6 CompUnit::Repository::AbsolutePath.new(next-repo => CompUnit::Repository::NQ…» | ||
masak | <span class="icon-bar"></span> | ||
</button> | |||
vendethiel | oops :) | ||
masak | <a class="navbar-brand" href="#">Kenya Believe It!</a> | ||
vendethiel | masak pulling a dalek | ||
masak | </div> | ||
<div id="navbar" class="navbar-collapse collapse"> | |||
diakopter | lolz | ||
masak | <ul class="nav navbar-nav"> | ||
<li class="active"><a href="#">Tours</a></li> | |||
vendethiel | masak: sometimes it's just better to close the IRC client :P | ||
masak | <li><a href="#">My Bookings</a></li> | ||
Xliff_z_OUT | aaiee! | ||
masak | </ul> | ||
huf | will the send queue never end? | ||
masak | <ul class="nav navbar-nav navbar-right"> | ||
Xliff_z_OUT | masak flood! | ||
masak | <li><a href="#"><span class="glyphicon glyphicon-shopping-cart" aria-hidden="true"></span> Cart</a></li> | ||
</ul> | |||
</div> | 19:18 | ||
19:18
Xliff_z_OUT is now known as Xliff,
ChanServ sets mode: +o moritz
|
|||
masak | </div> | 19:18 | |
19:18
masak was kicked by moritz (masak))
|
|||
diakopter | even if he closes irc, there's likely still lots of stuff queued somewhere | 19:18 | |
19:18
masak joined
|
|||
masak | sorry about that | 19:18 | |
vendethiel | look, it's all good now :P | ||
mst | diakopter: nah, a /kick will clear that queue | ||
moritz | diakopter: that's why a kick seemed to be best solution :-) | ||
mst | that's why you /kick rather than +b | ||
19:18
moritz sets mode: -o mohae,
moritz sets mode: -o moritz
|
|||
mst | #ircopslyfe #themoreyouknow | 19:18 | |
vendethiel | poor mohae :P | ||
masak | yes, I'm currently writing Bootstrap :P | ||
mst | masak: remember to replace the grid with something else (pocketgrid is ok) | 19:19 | |
bootstrap with its own grid is an Error | |||
masak | I... see. | ||
irssi is great, by the way | |||
19:19
yqt joined,
Vlavv_ left
|
|||
masak | -!- Irssi: Pasting 25 lines to #perl6. Press Ctrl-K if you wish to do this or Ctrl-C to cancel. | 19:20 | |
it's just me who is an idiot | |||
huf | it tries | ||
masak | I pressed Ctrl-K :( | ||
huf | :) | ||
masak | it means Kancel, right? | ||
moritz | lol | ||
huf | kanker | ||
[Coke] | Kick me | ||
diakopter | Kancowl | ||
moritz | kool bean | 19:21 | |
geekosaur | release the Kraken <.< | ||
mst | that's not bad rum, actually | ||
huf | i dont remember who has the ability to control kaa in the jungle book | ||
19:29
maybekoo2 left
19:31
spider-mario joined
19:32
Actualeyes joined
|
|||
Xliff | What is the format to check if a class has a method defined? | 19:32 | |
ClassInst.?meth | |||
? | |||
19:33
Vlavv_ joined
|
|||
Xliff | m: say Match.?eqv | 19:33 | |
camelia | rakudo-moar 7d4b3a: OUTPUT«Nil» | ||
Xliff | m: say Match.?perl | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«Match» | ||
Xliff | m: say Match.?gist | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«(Match)» | ||
Xliff | m: say Match.?bob | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«Nil» | ||
geekosaur | that isn't check if defined, it's call-if-defined-else-nil | 19:34 | |
moritz | m: say so Match.can('gist') | 19:35 | |
camelia | rakudo-moar 7d4b3a: OUTPUT«True» | ||
moritz | m: say so Match.can('bob') | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«False» | ||
psch | m: say Match.^can('gist') eqv Match.can('gist') | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«True» | ||
psch | why do those do the same, ooc? | ||
moritz | psch: probably hysterical raisins | 19:36 | |
I'd be fine with only having the MOP variant | 19:37 | ||
19:37
ZoffixWin left
|
|||
tony-o | m: class A { }; class B { method a { } }; say A.^can("a"); say B.^can("a"); | 19:38 | |
camelia | rakudo-moar 7d4b3a: OUTPUT«()(a)» | ||
tony-o | Xliff^ | ||
Xliff | tony-o, Thanks. | ||
19:39
Ven joined
19:42
ZoffixWin joined,
ZoffixWin left,
ZoffixWin joined
|
|||
ufobat | after writing p5 code for the whole day i started to use -> for method invokation again ;.( | 19:43 | |
moritz | ufobat: it takes some time to get used to the language switching :/ | ||
leont | Try C/C++, where they both exist ;-) | 19:44 | |
Xliff | What is "so" | ||
masak | I find language switching gets easier the more one does it | ||
Xliff: it's like prefix:<?> | |||
but much looser | |||
Xliff | m: sat Match.can('gist') | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/BLBQPi5iliUndeclared routine: sat used at line 1. Did you mean 'set', 'say'?» | ||
moritz | switching between Perl 6 and python, I tend to forget to add 'self' in the parameter list | ||
Xliff | m: say Match.can('gist') | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«(gist gist gist)» | ||
Xliff | m: say so Match.can('gist') | 19:45 | |
camelia | rakudo-moar 7d4b3a: OUTPUT«True» | ||
moritz | also, doc.perl6.org/language/faq#What_is_so%3F | ||
Xliff | OK. That's what I was missing. | ||
moritz, Thank you. | |||
So put changed Match.pm in wrong place and .... as expected... getting odd test results. | 19:46 | ||
Placing it in right place solved the problem *sigh* | |||
19:47
dvinciguerra left
|
|||
Xliff | There are too many places where rakudo src exists in .rakudobrew | 19:47 | |
19:48
raoulvdberge joined
|
|||
dalek | osystem: e744dd3 | (Martin Barth)++ | META.list: Update META.list Add Time::Crontab to ecosystem See github.com/ufobat/p6-time-crontab |
19:49 | |
osystem: 7afc976 | (Zoffix Znet)++ | META.list: Merge pull request #185 from ufobat/master Update META.list |
|||
ufobat | whee! | 19:54 | |
masak | ufobat: that's you? | 19:55 | |
ufobat | i am afraid, yes :( | ||
masak | oh, clearly yes | ||
given the github URL :) | |||
looks like nice code | 19:56 | ||
ufobat | the module is my approach to learn perl6 | ||
masak | I don't cuddle my elses, but people vary in that regard | ||
it's mostly because I read "Perl Best Practices" long ago :) | |||
(and I bought the argument in there) | |||
ufobat | thank you, but i guess there is still much to do better. i am currently working on the method next-datetime to figure out which is the next date after $something | ||
19:56
dvinciguerra joined
|
|||
moritz | m: say Datetime.now.delta(days => 1) | 20:00 | |
camelia | rakudo-moar 7d4b3a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/AxwH9vsY0dUndeclared name: Datetime used at line 1. Did you mean 'DateTime'?» | ||
moritz | m: say DateTime.now.delta(days => 1) | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«Method 'delta' not found for invocant of class 'DateTime' in block <unit> at /tmp/9rjJPnkQmZ line 1» | ||
moritz | m: say DateTime.now.later(days => 1) | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«2016-04-01T22:00:36.511876+02:00» | ||
moritz | m: say Date.today.later(days => 1) | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«2016-04-01» | ||
moritz | m: say Date.today + 1 | 20:01 | |
camelia | rakudo-moar 7d4b3a: OUTPUT«2016-04-01» | ||
moritz | ufobat: does any of those answer your question? :-) | ||
ufobat | ah no | ||
i was thinking of my time::crontab | |||
given a "10 10 * */2 *" what next after DateTime.now, thats what i meant | 20:04 | ||
20:04
kaare_ left
|
|||
ZoffixWin | m: say v6 before v6.c | 20:08 | |
camelia | rakudo-moar 7d4b3a: OUTPUT«False» | ||
ZoffixWin | ufobat, ^ that's how Perl sees your "perl" version in META for that module. Plain 6 is after 6.c. | ||
You may wanna change yours to 6.* or 6.c | |||
psch | m: say DateTime.now.later(months => 2) | 20:09 | |
camelia | rakudo-moar 7d4b3a: OUTPUT«2016-05-31T22:09:14.555494+02:00» | ||
masak | m: say DateTime.now.later(:2months) | 20:10 | |
camelia | rakudo-moar 7d4b3a: OUTPUT«2016-05-31T22:10:46.768683+02:00» | ||
ZoffixWin | m: say DateTime.now.later: :2months | 20:11 | |
camelia | rakudo-moar 7d4b3a: OUTPUT«2016-05-31T22:11:09.346483+02:00» | ||
ZoffixWin | :O | ||
*:D | |||
masak | m: my &later = DateTime.now.can("later")[0]; say later DateTime.now, :2months | 20:12 | |
camelia | rakudo-moar 7d4b3a: OUTPUT«2016-05-31T22:12:22.039022+02:00» | ||
masak | m: my &later = -> $_ = DateTime.now, *%_ { .later: |%_ }; say later :2months | 20:14 | |
camelia | rakudo-moar 7d4b3a: OUTPUT«2016-05-31T22:14:36.916353+02:00» | ||
tony-o | p cool | 20:17 | |
20:17
darutoko left
|
|||
tony-o | m: say DateTime.later: :13months | 20:20 | |
camelia | rakudo-moar 7d4b3a: OUTPUT«Cannot look up attributes in a type object in block <unit> at /tmp/548UvfnK_9 line 1» | ||
tony-o | sweet | ||
20:20
cdg joined
|
|||
tony-o | m: say DateTime.now.later: :13months | 20:20 | |
camelia | rakudo-moar 7d4b3a: OUTPUT«2017-04-30T22:20:35.996770+02:00» | ||
tony-o goes to look at DateTime source | |||
20:22
cdg left
|
|||
ufobat | ZoffixWin, you mean the "perl" : "6" should be "perl" : "6.c"? | 20:22 | |
20:22
cdg joined
|
|||
ZoffixWin | ufobat, yes | 20:22 | |
RabidGravy | tadzik, I just popped a tiny PR to JSON::Unmarshal when you have a minute | 20:23 | |
ufobat | i am wondering, most other META files dont even have a "perl" in it, should i better remove it as well? | ||
ZoffixWin | ufobat, it's a mandatory key. | 20:24 | |
20:24
spintronic left
|
|||
ZoffixWin | I'm unsure what the behaviour would be for when it is omitted, but the spec declares it mandatory. | 20:24 | |
20:26
labster joined
|
|||
ufobat | huh! where am i mistaken, but look at e.g. raw.githubusercontent.com/masak/00.../META.info or.. anything else, there is no "perl" : something | 20:26 | |
20:27
spintronic joined,
espadrine joined,
spintronic left
20:29
spintronic joined
|
|||
RabidGravy | right, most of the tools ignore the fact that it's missing silently, but it should be there | 20:30 | |
ZoffixWin | ufobat, here's the spec that declares it mandatory: design.perl6.org/S22.html#perl Sure, there are modules in the Ecosystem that don't include it. Sure, our current tools likely ignore the value of the 'perl' key entirely. But, the spec is the spec, and the tools might get molded to follow it with some unknown consequences for distros that omit the 'perl' key or have value '6' instead of '6.c' for it. I'm not saying your distro is | ||
uninstallable right now. I'm saying it does not confirm to the spec, thus what happens due to this non-conformance in the future is simply unknown. | |||
ZoffixWin would personally have the key optional, with the missing key taken to mean "any perl version" | 20:31 | ||
ufobat | of course i will fix it, i was just confused that all METAS I picked where wrong concerning the spec | 20:32 | |
thanks for pointing it out :) | |||
20:33
dupa left,
buharin left
|
|||
spintronic | -/exit | 20:34 | |
20:34
spintronic left
|
|||
RabidGravy | github.com/jonathanstowe/META6/blo...A6.pm#L184 - If you used Test::META it would fail without it | 20:34 | |
masak | I think design.perl6.org/S22.html#perl was added after 007's META.info, and the latter simply hasn't been updated | 20:36 | |
PRs welcome :) | |||
ufobat | i do use Test::META, i guess i just added the "6" without reading anything at first, after it failed | ||
RabidGravy | I'm not sure whether anything *other* then Test::META actually cares TBH | 20:37 | |
20:38
Actualeyes left
|
|||
masak | hm. `perl` was added back in March 2014, so I'm wrong, it seems. | 20:39 | |
20:39
pmurias joined
|
|||
pmurias | [Coke]: hi | 20:39 | |
masak | though it has been updated lately with the 6.c and 6.d details | ||
Ven | ahoy | 20:40 | |
masak | frankly I'm not sure what I ought to have done to be better informed about this `perl` thing, as a module author | ||
except read S22 more carefully, I guess | |||
pmurias | [Coke]: I'll try to clean up nqp-js-io and put it up on npm or make it optional somehow | ||
ZoffixWin | masak, here you go: github.com/masak/007/pull/135 | ||
masak | ZoffixWin: merged; thank you. | 20:41 | |
ZoffixWin | \o/ | ||
20:41
jsimonet joined
|
|||
pmurias | [Coke]: can you clone stuff from github? | 20:42 | |
Xliff | 007 | 20:52 | |
Yet Another Macro Language? | |||
Or is it a Macro Language with a Silencer? | |||
s/Silencer/Suppresor/ | 20:53 | ||
20:53
agentzh joined,
agentzh left,
agentzh joined
|
|||
nadim | jnthn: this is very surprizing. this line multi sub rhs_header_filter(\r, Match $s, ($depth, i$path, $glyph, @renderings), $) compiles and runs. I don't knowif you can spot it but there is an 'i' before $path (yes I hate vi) | 20:55 | |
masak | Xliff: it's kind of a sandbox for macro ideas, yes. | ||
nadim | jnthn: the surprising part is that it suns in 6 seconds while the same thing without the 'i' runs in 1.5s | 20:56 | |
masak | m: sub foo(i$path) {} | ||
camelia | ( no output ) | ||
perlpilot | look at the sig | ||
I bet it's taking the leading i to be a Complex type constraint | |||
masak | m: sub foo(i$path) { say $path }; foo("hi") | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«Type check failed in binding $path; expected Complex but got Str ("hi") in sub foo at /tmp/ERbgTNOTH5 line 1 in block <unit> at /tmp/ERbgTNOTH5 line 1» | ||
masak | perlpilot: bingo. | ||
psch | m: say :(i$).perl | 20:57 | |
camelia | rakudo-moar 7d4b3a: OUTPUT«:(Complex $ where { ... })» | ||
psch | i wonder what the where contains | ||
masak | where { $_ == i } | ||
nadim | hehe! | ||
Xliff | So here's a question. If I am making an eqv method that compares to objects. | ||
nadim | it contains something that runs very slowly I can tell you | ||
psch | m: say 1i ~~ :(i$) | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«False» | ||
pmurias | [Coke]: make js-bootstrap; node nqp-bootstraped.js -e 'say("Hello World")', I'll updated the README tomorrow | ||
psch | m: say 0i ~~ :(i$) | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«False» | ||
20:57
pmurias left
|
|||
Xliff | Doesn't it make sense to start it with $self === $b where $b is the method argument? | 20:58 | |
perlpilot | nadim: it's the same thing that allows this to work ...' | ||
m: sub foo( 42 $x) { } | |||
camelia | ( no output ) | ||
nadim | perlpilot: and what does "work" mean in this case+ | ||
perlpilot | which, I admit, is surprising. | ||
Xliff | Er. self doesn't need a sigil, does it? | 20:59 | |
nadim | Xliff: no | ||
Xliff | nadim, thx | ||
perlpilot | m: sub foo( 42 $x) { say "yay" }; foo(42); foo(35) | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«yayConstraint type check failed for parameter '$x' in sub foo at /tmp/ZWhgRP8HMa line 1 in block <unit> at /tmp/ZWhgRP8HMa line 1» | ||
psch | m: multi f (Int $) { "some Int" }; multi f (42) { "Life, the universe, and everything" }; say f 12; say f 42 | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«some IntLife, the universe, and everything» | ||
21:00
skids left
|
|||
psch | thing is | 21:00 | |
constants are valid type constraints | |||
masak | unless they start with a minus sign | ||
21:00
skids joined
|
|||
psch | and types are constants, kind of | 21:00 | |
nadim | how is 42 or i a constraint? | 21:01 | |
psch | nadim: kinda the same way Str is | ||
i mean, maybe constraint isn't quite the right word there | |||
masak | it's kind of a pretend-that-this-value-is-a-type thing | 21:02 | |
psch | m: sub f(-42) { }; f 12 | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«Constraint type check failed for parameter '<anon>' in sub f at /tmp/1tixu0JZPH line 1 in block <unit> at /tmp/1tixu0JZPH line 1» | ||
psch | m: sub f(-42) { }; f -42 | ||
camelia | ( no output ) | ||
masak | oh, that works now? nice. | ||
someone++ | |||
[Coke] | .tell pmurias I can do it when not at work, but I can also do it at work if I use certain URLs. | ||
yoleaux | [Coke]: I'll pass your message to pmurias. | ||
21:03
agentzh left
|
|||
psch | masak: i'm kinda thinking the other way around, fwiw. like, to install an anon class into the lexpad you assign it to a constant, so constants are the same as types (on some level) | 21:03 | |
nadim is checking all the spurious 'i' to speedup his code | |||
[Coke] | pmurias++ more JS goodness. | ||
psch | m: constant Foo = class { method foo { "bar" } }; sub f(Foo $) { }; f Foo.new | ||
camelia | ( no output ) | ||
21:03
Actualeyes joined
|
|||
Xliff | gist.github.com/Xliff/2907106c84e9...nt-1739145 | 21:03 | |
21:03
agentzh joined,
skids left
|
|||
psch | and clearly literals are constants in the same sense | 21:03 | |
nadim | I can conceptualize 42 $something but 'i' is kinda barewordy | 21:04 | |
psch | m: say i | 21:05 | |
camelia | rakudo-moar 7d4b3a: OUTPUT«0+1i» | ||
psch | m: say i.perl | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«<0+1i>» | ||
psch | m: say i.WHAT | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«(Complex)» | ||
nadim | mehhh! | ||
psch | stupid maths! | ||
21:05
yqt left
21:06
nadim left
21:08
Ven left,
_nadim joined
21:10
petercommand joined
21:11
molaf left
|
|||
perlpilot | m: sub foo(pi) { } # there are other wordy things that can constrain, so i isn't the only one to watch out for :-) | 21:11 | |
camelia | ( no output ) | ||
21:11
Actualeyes left
|
|||
masak | m: sub foo(NaN) { } | 21:15 | |
camelia | ( no output ) | ||
geekosaur | nancy typing perl 6 style | 21:16 | |
21:18
g4 left
21:31
wamba left
|
|||
ufobat | good night! | 21:35 | |
21:36
ufobat left,
sufrosti1o left,
ocbtec left
21:37
sufrostico left
21:38
sufrostico joined,
sufrosti1o joined
21:39
tphilipp joined
21:40
cdg left,
cdg joined
21:43
Cabanossi left
21:45
Cabanossi joined
|
|||
dalek | c: f711a3a | (Wenzel P. P. Peppmeyer)++ | doc/Language/ (2 files): X<C<foo>|foo> requires the alternate name |
21:47 | |
21:56
Actualeyes joined
21:59
tphilipp left
22:01
lizmat joined,
AlexDaniel joined
|
|||
tony-o | does passing a set to a function run that function in parallel for items in the set? | 22:02 | |
lizmat | tony-o: why would it ? | ||
psch | tony-o: a set is a normal object | ||
lizmat | a set is not a junction | ||
psch | tony-o: you might be thinking of junctions | ||
lizmat++ | |||
:)( | |||
tony-o | mm, i am thinking of junctions | ||
MadcapJake | how experimental is the cached trait? | 22:04 | |
psch | m: sub f is cached { rand } | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/YUa0UHaGoMUse of the 'is cached' trait is experimental; please 'use experimental :cached'at /tmp/YUa0UHaGoM:1» | ||
psch | MadcapJake: i think all the experimental things are "we want to have this but aren't completely sure how the semantics and implementation have to look" | 22:05 | |
MadcapJake: iirc there was discussion for something in modulespace recently | |||
MadcapJake | hmm | 22:06 | |
psch | MadcapJake: github.com/azawawi/perl6-memoize | ||
not sure where i saw the discussion or how long ago "recently" actually was... :) | |||
there's probably a lot to find in the clog, anyway | 22:07 | ||
MadcapJake | yeah found something from the memoize repo | 22:08 | |
lizmat: does cached work a little or is it really not good to try? | |||
lizmat | is cached works, for what it is supposed to do | 22:09 | |
22:09
ecojud joined
|
|||
MadcapJake | cool, I have a list of objects and I just want to make sure it only runs the operation if the list changes | 22:10 | |
(only in size) | |||
psch | m: use experimental :cached; sub f($) { say "calculating..."; sleep 2; "done" }; say f("foo"); say f("foo") | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«calculating...donecalculating...done» | ||
psch | oh duh | ||
actually use the trait, me... | |||
m: use experimental :cached; sub f($) is cached { say "calculating..."; sleep 2; "done" }; say f("foo"); say f("foo") | 22:11 | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«calculating...donedone» | ||
psch | i also have to admit i forgot a lot of what the discussion was about | ||
i think what Memoize eventually wants to solve is the process boundary, but i might be misremembering | 22:12 | ||
_nadim | do we have an equivalent of Xpath for data in P6? | ||
masak | not yet | 22:14 | |
'night, #perl6 | |||
timotimo | cat says: ecwoooooooooooooooooooooooooooooooooooooooooooooooooooooo | ||
mst | timotimo: say *meow* back from me | 22:15 | |
Xliff | _nadim, you mean like LINQ for C#? | ||
MadcapJake | can you create a subset inside a class context? i.e., have access to self? | ||
has? | 22:16 | ||
Xliff | _nadim, Actually would love to have XPath for P6 period. Or better yet... Xquery | ||
Is there a good primer for learning how to wrap C++ libraries for P6? | |||
timotimo | i did, mst | 22:17 | |
Xliff | Because there is the XQuilla project which looks like a good target., | ||
psch | m: class A { my $subset; method set-subset { $subset := subset :: of Int where * > 0 }; method subset { $subset } }; A.set-subset; say 2 ~~ A.subset | 22:18 | |
camelia | rakudo-moar 7d4b3a: OUTPUT«True» | ||
Xliff | Man, the web is slow, today | ||
leont still doesn't believe good C++ will be wrappable | |||
Though C-with-classes might | |||
psch | MadcapJake: not sure what exactly you'd need self for. if you want to build a subset relying on attributes it can't be a class variable like it is in my example | 22:19 | |
s/'d// | |||
22:20
pdcawley joined,
RabidGravy left
|
|||
Xliff | leont, why do you believe that? | 22:20 | |
leont | What would you do with say rvalue references? | ||
Or templates | |||
MadcapJake | yeah that's what I want, I was able to due an anon subset inside a method signature, that seems to allow access to self | 22:21 | |
Xliff | Good questions. Depends on what they are used for. | ||
I won't want to wrap the entire library. Just the important bits that would be useful. | |||
psch | m: class A { has $.foo; my $subset; method subset { $subset }; method set-subset { $subset = subset :: of A where *.foo < 5 } }; A.set-subset; my $x = A.new(:foo(5)); say $x ~~ A.subset; | ||
camelia | rakudo-moar 7d4b3a: OUTPUT«False» | ||
psch | MadcapJake: ^^^ that? | ||
leont | I'm sure you can wrap a useful subset, but you wouldn't be able to wrap the sort of thing I'd typically use C++ for | ||
psch | MadcapJake: oh, just putting the subset into the sig, yeah | ||
Xliff | Though c++ libs are more likely to be better served by perl6 than perl5. | ||
22:22
ecojud left
|
|||
timotimo | clearly we want Inline::Cpp::GCC or Inline::Cpp::CLang or something | 22:22 | |
so that we can use templates and such | |||
Xliff | leont, most c++ projects are probably better done as c-with-classes. | ||
leont | I strongly disagree on that! | ||
Xliff | *shrug* | 22:23 | |
leont | If I want that, I'd use plain old C without classes | ||
Classes are pretty much the least interesting feature in C++ IMO | |||
It's not coincidence C++ has been slowly moving towards more functional styles | 22:24 | ||
*a | |||
timotimo | what kinds of things do you enjoy in C? all i can think of would be the STL or Qt, and those are quite very classes-stuff | 22:25 | |
class-related? | |||
leont | STL uses classes as types, but doesn't really use typical OO features like inheritance much, prefering techniques like templates | 22:26 | |
timotimo | mhm | ||
leont | non-virtual methods are really just functions with a funny namespace | 22:27 | |
Xliff | For a first draft XQuilla module, I'd only want something that could take an XQuery expression, and use it to parse a document and give me the resultset. | ||
I think something like that would be great for perl6. | |||
API example: xqilla.sourceforge.net/docs/simple-...ample.html | 22:28 | ||
_nadim | Xliff: then you know what your next module should be :9 | 22:33 | |
22:33
autarch left,
kid51 joined
|
|||
Xliff | _nadim, do you have a link to something that gives the general gist of how to wrap C++ code for Perl6? | 22:34 | |
I've never done it before, but wouold be willing to try. | |||
22:35
AlexDaniel left
22:37
autarch joined
|
|||
psch | Xliff: github.com/rakudo/rakudo/blob/nom/...mangling.t is probably the barest of starts | 22:40 | |
well, except if "wrap" means more than "bind it with NativeCall" :) | |||
22:42
dalek left
22:43
dalek joined,
ChanServ sets mode: +v dalek
22:45
dvinciguerra_ joined
22:46
jamesalbert joined
|
|||
jamesalbert | Hey, I ported a perl 5's JSON::WebToken to perl 6 and all the tests are done and passing using prove, but travis-ci is failing saying "Parse errors: No plan found in TAP output". Could I get some help with this and also putting it out in the ecosystem? | 22:48 | |
timotimo | sure, can you give us a link to travis' output? | ||
22:48
dvinciguerra left
|
|||
jamesalbert | Awesome, thanks! Yes travis-ci.org/jamesalbert/JSON-WebToken | 22:48 | |
22:49
pdcawley left
|
|||
timotimo | oh, does -Ilib,t actually work? | 22:50 | |
oh, it does! | |||
22:51
tardisx joined
|
|||
jamesalbert | At least on my end it does =] first time using travis-ci btw | 22:51 | |
22:51
Actualeyes left
|
|||
timotimo | "no plan found in tap output" usually means you're getting some kind of error output and an exit, and prove doesn't like that | 22:52 | |
it should be possible to tell prove with some flag to give you all the output, so we can see what that error message is | |||
that'll get us much further, i expect | |||
22:52
pdcawley joined
|
|||
jamesalbert | Here let me set it to verbose and get rid of --rc option (it seems to pick up .proverc by default) | 22:54 | |
timotimo | i didn't know about proverc yet | ||
22:55
Actualeyes joined,
dvinciguerra__ joined
22:56
dvinciguerra_ left
|
|||
jamesalbert | you what else else is that I was using some options in the .proverc from the previous repo so that might be it, running it now | 22:57 | |
22:58
rindolf left
22:59
sortiz joined
|
|||
timotimo | you what else mate? :P | 23:00 | |
sortiz | \o #perl6 | ||
timotimo | hello sortiz! | ||
aha! | 23:01 | ||
you're just missing JSON::Fast | |||
and probably all the other things, too | |||
so i suppose you'll want to "panda install-deps ." before running prove | |||
jamesalbert | derp a lerp | ||
timotimo | sorry, "installdeps" is the name | ||
jamesalbert | wow thank you I'll add that | 23:02 | |
23:02
perlawhirl joined
|
|||
timotimo | um, wait, perhaps you'll also need "rakudobrew build panda" | 23:02 | |
jamesalbert | add that as the last item in scripts in travis.yml? | ||
oh no not last | |||
so it would be: | |||
- rakudobrew build panda | |||
- panda installdeps . | 23:03 | ||
- prove | |||
timotimo | sounds about right | ||
jamesalbert | awesome, I'll try that | ||
timotimo | perhaps we have some other flags travis understands, though. haven't used travis much myself, tbh | ||
23:04
leont left
23:05
tphilipp joined
|
|||
TimToady | .tell ab5tract The optimizer was not quite the best place to fix the Useless use, so I cleaned it up for you. Thanks. | 23:05 | |
yoleaux | TimToady: I'll pass your message to ab5tract. | ||
jamesalbert | yeah me neither, we'll see what happens though in a couple minutes... | 23:06 | |
sortiz | timotimo, do you know if rakudo uses some kind of shared table for store strings literals? | ||
timotimo | yeah, every precompiled .moarvm file has a "string heap" at its start | 23:07 | |
so literals in the code are deduplicated | |||
everything after that is fair game for generating lots and lots of redundant copies of strings | |||
sortiz | Aha!, that explain the bug I found yesterday, Tnks. | 23:09 | |
timotimo | oh?! | ||
diakopter | there's an argument for string de-duping in a background thread (as well as during SC loading), which (assisted by the GC) could save both memory and GC time | 23:10 | |
sortiz | The problem isn't the deduplication, that seems perfect. | 23:11 | |
23:12
tphilipp left
|
|||
diakopter | obviously it wouldn't dedupe Str objects, it would dedupe VMString objects | 23:12 | |
sortiz: okay. I was just opining for some future work | |||
sortiz | The problem is that 'explicitly-manage' is evil :-) | ||
If you pass to them one Str var originated in a literal, all other instances are affected! | 23:13 | ||
timotimo | oh, that's ... funnny | 23:14 | |
perlawhirl | hi perlers | ||
sortiz | Yep, The weird "action at distance" bug I ever found! | ||
diakopter | sortiz: can you make a good bug reproduction test caes? | 23:15 | |
23:15
spider-mario left
|
|||
sortiz | I'm not using explicitly-manage any more, I didn't found any valid use case for them, but was used a lot in DBDish. | 23:16 | |
diakopter, sure, I'll try. | |||
perlawhirl | can someone glance at this gist and tell me... am i missing something, or is this a bug: gist.github.com/0racle/0bebed6d7f5...9d04584a88 | ||
see first comment for output | 23:17 | ||
the first line in the heredoc is always the missing one... whichever you put first in the heredoc | |||
TimToady | perlawhirl: 0 is false | 23:19 | |
23:19
tphilipp joined
|
|||
perlawhirl | of course it is! | 23:19 | |
TimToady | try 'with' instead of 'if' | ||
perlawhirl | TimToady++ | ||
thanks... i wrote it that way initially and it wasn't working, but then i thought "oh i can just use a set intersection" but just wanted to make sure it wasn't a bug | 23:21 | ||
23:21
vendethiel- joined
|
|||
sortiz | m: gist.github.com/salortiz/202c0c871...a2f01664d1 | 23:21 | |
camelia | rakudo-moar 103781: OUTPUT«Str $var2 = "Hola a todos"Str+{NativeCall::ExplicitlyManagedString} $var2 = "Hola a todos"» | ||
sortiz | diakopter, timotimo ^^^ | ||
timotimo | jamesalbert: looks much better now! | 23:22 | |
jamesalbert | yo timo, thanks a lot man. Got my tests working! Now how would I go about putting this thing out into the perlosphere? | ||
yes thanks to you! =] | |||
timotimo | easy, just fork perl6/ecosystem, put the URL to your meta6.json into the META.list or what it's called (follow the other lines for inspiration) | 23:23 | |
23:23
vendethiel left
|
|||
timotimo | and commit it with a link to your repo (because then when the weekly report is made we can just click directly through from the commits list of ecosystem to all the new modules) | 23:23 | |
23:23
tphilipp left
|
|||
timotimo | optionally, write a blog post about it, mention it here and it'll also appear in the weekly on monday/tuesday :) | 23:23 | |
jamesalbert | sweetness sounds straightforward enough. Thanks a lot! | 23:24 | |
timotimo | you're welcome! | 23:25 | |
sortiz | otoh, Why someone needs to "explicitly-manage" a literal that can't go anywhere? :-) | 23:30 | |
And obviously a function can't know where a var was originated. | 23:31 | ||
timotimo | it can at least grab the .VAR itself | 23:32 | |
that doesn't have too much info, though | |||
timotimo gets ready for bedtime | |||
23:34
dustinm` joined
|
|||
jamesalbert | updated META.list, timo you're the shit bruh. Now it's time for wienerschnitzel jalapeno tater tots drenched in tapitio | 23:34 | |
23:34
jamesalbert left
|
|||
_nadim | what's a Seq.new-consumed, which has given me plenty grey hair already, for construct? | 23:38 | |
it's particularely boring as it appears when I .flat an Array | 23:39 | ||
23:43
AlexDaniel joined,
tphilipp joined,
tphilipp left
|
|||
sortiz | IMO the documentation of explicitly-manage is confused and misleading. | 23:45 | |
bbkr | gist.github.com/bbkr/19ba690335844...09b0c0ec9c - compile time hangs forever when using such module. I think it has something to do with warning grouping mechanism. Reproducible on OS X (.precomp cleaned before test). can anyone test this and confirm? | ||
AlexDaniel | hmm lots of new modules lately :) | 23:48 | |
sortiz | _nadim, Seq.new-consumed was added by moritz++ to get a better error messages, see RT#127492 | ||
bbrk, I can 'use Foo.pm' that without problems, only lots of expected warnings. | 23:52 | ||
s/that// | 23:53 | ||
23:54
Sgeo__ joined
|
|||
bbkr | sortiz: what OS do you have? | 23:55 | |
sortiz | bbrk, Linux (F23) | 23:56 | |
23:56
Actualeyes left
|
|||
AlexDaniel | m: say pick 42, 69 for ^100 | 23:56 | |
camelia | rakudo-moar 103781: OUTPUT«(69)(69)(69)(69)(69)(69)(69)(69)(69)(69)(69)(69)(69)(69)(69)(69)(69)(69)(69)(69)(69)(69)(69)(69)(69)(69)(69)(69)(69)(69)(69)(69)(69)(69)(69)(69)(69)…» | ||
bbkr | sortiz: does it also work if you extend this ladder by few lines with even more ints? | 23:57 | |
_nadim | sortiz: thanks. I certainly will read it as it has been bugging me all evening. | ||
AlexDaniel | m: say pick 1,42, 69 for ^10 | ||
camelia | rakudo-moar 103781: OUTPUT«(42)(42)(42)(42)(42)(69)(42)(69)(42)(69)» | ||
23:58
pdcawley left
|