»ö« 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. |
|||
AlexDaniel | I don't really see any reason why it cannot work with $x ~~ | 00:00 | |
00:00
rindolf left
|
|||
AlexDaniel | this LTA error message is trying to say something but honestly I don't get it | 00:00 | |
oh, and it's just a warning | |||
00:01
llfourn left
00:02
RabidGravy left
00:03
AndyDee joined
|
|||
AlexDaniel | and given that I'm not the first person to try this I think that I'll just submit a bug report. Well, if I'm asking for something wrong then it can always be closed with some justification :) | 00:04 | |
00:06
Ben_Goldberg joined
|
|||
timotimo | it's telling you that S/o/u/ will return a string | 00:07 | |
but unless your substitution doesn't do any change at all, it won't smartmatch afterwards | |||
if it does no change, it was useless in the first place :P | |||
AlexDaniel | oooooh | 00:08 | |
timotimo | literally | 00:09 | |
the smart match with S/// can never succeed | |||
and that's because the subsequent string match will fail | |||
AlexDaniel | hahaha | ||
timotimo: perhaps we can add little timotimo to this warning | 00:10 | ||
timotimo | the error message could suggest "given", though | ||
AlexDaniel | so that he can explain that to people like me… | ||
00:10
wamba left
|
|||
timotimo | if i get teleported to the programmer when such an error occurs, i may be able to get to know a lot of nice people at their most irritated moments ... | 00:10 | |
00:11
mcmillhj_ joined
|
|||
AlexDaniel | so, basically what you are saying is that “S///” is executed alone and then the result is smartmatched, right? | 00:11 | |
why don'twe see the same thing happening with $x ~~ s/// ? | 00:12 | ||
timotimo | yeah | ||
because s/// mutates rather than returning a copy | |||
that way it has a direction to shove the result off to | |||
AlexDaniel | riiight | ||
timotimo | other than returning, what cat S/// do when it doesn't mutate? | ||
AlexDaniel | … can't it just shove the result through smartmatch? | 00:14 | |
timotimo | "through"? | ||
AlexDaniel | yeah, so that the smartmatch returns a string | 00:15 | |
as weird as it sounds, but it's not like smartmatch is limited to some datatype | |||
timotimo | that's how matches with :g return whole lists | ||
00:15
firstdayonthejob left
|
|||
Zoffix | I had the same problem with S///. The error tells me nothing about how to use it properly and I couldn't find it in the docs | 00:16 | |
timotimo | mhm | ||
00:16
adu joined
|
|||
AlexDaniel | yeah, so that's who it was :) | 00:16 | |
timotimo | so a suggestion for "given" like alex showed, would that help enough? | ||
AlexDaniel | well, a DWIM solution would be to make it return a string… | ||
I mean the whole smartmatch in this case | 00:17 | ||
Zoffix | zwu, a capture | ||
AlexDaniel | perhaps that's ugly in some other sense, but at least that's what I would expect as a user | ||
timotimo | hmpf. how do we actually do that and still make it work in other cases? | ||
Zoffix | zwu, doc.perl6.org/type/Capture | ||
timotimo | i mean, if it returns a Str that can also handle smart match, that'll be a weird string to keep around | 00:18 | |
AlexDaniel | timotimo: are there any other cases when you do ~~ S/// ? | ||
ah | |||
Zoffix | "Smartmatch with S/// can never succeed because the string it returns on successful match will fail" | ||
or something like that | |||
timotimo | i wouldn't mention "successful match" | 00:19 | |
Zoffix | the "subsequent" is what I have issue parsing | ||
timotimo | maybe "successful substitution"? | ||
Zoffix | sure | ||
m: ('hack Perl6', 'play warframe').pick | |||
camelia | ( no output ) | ||
Zoffix | m: ('hack Perl6', 'play warframe').pick.say | ||
camelia | rakudo-moar 49fcd5: OUTPUT«hack Perl6» | ||
Zoffix | Dammit. Now I'll never know what the first answer was :P | ||
timotimo | cool. | ||
i have an off-topic question ... | 00:20 | ||
Zoffix | Whatisit? | ||
00:20
woodruffw joined
|
|||
timotimo | am i the only one who constantly gets very bad buffering in the steam shop's video widget? | 00:20 | |
Zoffix | My buffering's fine | ||
timotimo | like, i haven't been able to watch a single video in the shop from start to finish without waiting at least as long as the video itself is for it to buffer | ||
Zoffix | :o | 00:21 | |
No, definitely not like that forme | |||
00:21
Zoffix left
00:23
lichtkind left
00:24
jack_rabbit joined
00:26
xdg joined
|
|||
xdg | what's the equivalent of "perldoc"? Is is the "p6doc" module? | 00:26 | |
leont | perl6 --doc, I think | 00:27 | |
00:27
mcmillhj_ left,
atweiden left,
mcmillhj_ joined
|
|||
xdg | `perl6 --doc say` ---> "Could not open say. Failed to stat file: no such file or directory" | 00:28 | |
timotimo | perl6 --doc is how you extract the documentation out of a file | 00:29 | |
you want to run p6doc, i think that's what the script is called | |||
but then you need to install the module that has it | |||
dalek | kudo/nom: ac4f9f8 | timotimo++ | src/Perl6/Actions.nqp: Make ~~ S/// message a bit simpler and more helpful Zoffix++, AlexDaniel++ |
00:30 | |
AlexDaniel | ahhh | ||
xdg | hmm... is this a rakudobrew thing or a rakudo thing or a perl6 thing about $0? www.dropbox.com/s/9q677dso9p103en/...1.png?dl=0 | ||
00:31
virtualsue left
|
|||
xdg | And "perl6 --doc" just drops me into the REPL with no error | 00:31 | |
AlexDaniel deletes a huge text for a bug report that he has just crafted | |||
timotimo++… | |||
yeah, the fix was easier than a bug report | |||
timotimo | xdg: yeah, it'll run the repl in "doc extraction" mode for you | 00:33 | |
helpful, eh? | |||
yeah, totally. | |||
the filename thing is a rakudo thing | |||
about how we install things and fail to give the pre-uniquified name | |||
xdg | timotimo, where should bugs/usage-snafus be reported? | 00:35 | |
The uniquification is particularly nasty in stack traces. E.g. www.dropbox.com/s/qeiz17arobp846z/...7.png?dl=0 | 00:36 | ||
timotimo | yeah. no need to report it, i think it happens everywhere and we know :| | ||
AlexDaniel | xdg: you mean that the stacktrace is unreadable because of the hashes instead of filenames? | 00:38 | |
timotimo | yeah | ||
AlexDaniel | or the “already installed” problem | ||
xdg | AlexDaniel, (a) exception on "already installed" is surprising; (b) hashes instead of filenames is confusing | 00:39 | |
AlexDaniel | xdg: b) rt.perl.org/Public/Bug/Display.html?id=126908 | ||
00:39
peter__ joined
|
|||
xdg | glad there's a ticket | 00:39 | |
AlexDaniel | xdg: not that it helped much. We just need somebody to work on it, I guess | 00:40 | |
xdg | lots of rough edges still, I guess | ||
timotimo | especially the new precompilation code is rather new | 00:41 | |
landed very soon before the 2015.12 release | |||
00:41
n0tjack joined
|
|||
AlexDaniel | xdg: for a) there is this report which is somewhat associated: github.com/tadzik/panda/issues/274 | 00:41 | |
xdg: ah, here is the right one: github.com/tadzik/panda/issues/269 | 00:42 | ||
xdg | ah, mst is on the case | ||
00:43
mohij joined
|
|||
AlexDaniel | xdg: anyway, ugly stacktraces is a rakudo problem because rakudo does the precompilation | 00:43 | |
xdg: and “already installed” thing is a panda problem | |||
00:44
patrickz left
|
|||
AlexDaniel | that's to answer your question “where should bugs/usage-snafus be reported?” | 00:44 | |
xdg | (sigh) `p6doc p6doc` --> "Cannot locate p6doc in any of the following paths:..." | ||
timotimo | urgh :) | ||
00:46
n0tjack left
|
|||
xdg | I'm getting the sense that I should just toss out any p5 expectations. | 00:46 | |
does no one who works on p6 regularly read command line docs the way p5 people use perldoc? | 00:47 | ||
00:47
mohij left,
laouji joined
|
|||
gfldex | xdg: you have answered that question yourself already | 00:48 | |
we can't read what isn't there | |||
TimToady | a lot of work has gone into the docs, but they certainly aren't complete yet, and the web interface was given priority over command-line | 00:49 | |
xdg | TimToady, o/ | 00:50 | |
timotimo | aye, especially since you can check out the web interface version of the docs even when you didn't get yourself a rakudo yet | ||
TimToady | and vendors rarely give you the command-line docs anyway unless you do something special | 00:51 | |
00:51
peter__ left
|
|||
TimToady | and yes, it's not really Unix-think :) | 00:52 | |
it's one of those different mistakes we decided to make this time, where the definition of 'decided' doesn't have much consciousness attached to it :) | 00:53 | ||
00:53
n0tjack joined
|
|||
TimToady | what you have currently is a summing up of what 800 people decided to work on over 15.5 years :) | 00:53 | |
00:54
bpmedley joined
|
|||
TimToady | the next 800 people will likely work on what they want instead :) | 00:55 | |
AlexDaniel | m: say DateTime.now.earlier(years => 15.5) | ||
camelia | rakudo-moar ac4f9f: OUTPUT«2031-01-05T01:55:56.631077+01:00» | ||
AlexDaniel | what? | 00:56 | |
hmmm WHAT? | |||
is it 2046 already? | 00:57 | ||
TimToady | speaking of different mistakes... | ||
AlexDaniel | m: say DateTime.now.earlier(years => 15) | ||
camelia | rakudo-moar ac4f9f: OUTPUT«2031-01-05T01:57:22.872850+01:00» | ||
gfldex | m: say DateTime.now.earlier(years => 1) | ||
camelia | rakudo-moar ac4f9f: OUTPUT«2017-01-05T01:57:23.861752+01:00» | ||
AlexDaniel | wtf :DD | ||
TimToady | sign wrong? | ||
gfldex | time arrow points the wrong way it seams | ||
m: say DateTime.now.earlier(years => -1) | |||
camelia | rakudo-moar ac4f9f: OUTPUT«2015-01-05T01:57:42.487076+01:00» | ||
AlexDaniel | m: say DateTime.now.later(years => 15) | ||
camelia | rakudo-moar ac4f9f: OUTPUT«2031-01-05T01:57:47.730487+01:00» | ||
00:57
llfourn joined
|
|||
AlexDaniel | m: say DateTime.now.earlier(years => 15) | 00:57 | |
camelia | rakudo-moar ac4f9f: OUTPUT«2031-01-05T01:57:52.358746+01:00» | ||
TimToady | I guess we only tested later :) | 00:58 | |
gfldex | m: say DateTime.now.later(years => -1) | ||
camelia | rakudo-moar ac4f9f: OUTPUT«2015-01-05T01:58:19.012859+01:00» | ||
AlexDaniel | ehhh… anybody going to fix it right now? | ||
00:58
Ben_Goldberg left
|
|||
gfldex | m: say DateTime.now.later(years => 1) | 00:58 | |
camelia | rakudo-moar ac4f9f: OUTPUT«2017-01-05T01:58:25.178936+01:00» | ||
AlexDaniel | gfldex: later with negative numbers is also a very interesting thing | ||
gfldex | nagative later is a workaround it seams | ||
TimToady suspects this one has to get fixed "retroactively" as it were | |||
00:59
yeahnoob joined
|
|||
gfldex | from the standpoint of the current earlier implementation is has been fixed already | 00:59 | |
AlexDaniel | yes, it was working earlier | ||
TimToady | that one needs a big fat RT just so we can hold it up as an example to past generations | 01:00 | |
AlexDaniel | sure | ||
01:02
llfourn left
|
|||
TimToady | it would appear there is no test for earlier with a years argument | 01:03 | |
01:03
yqt left
|
|||
TimToady | we test seconds, minutes, hours, days, and weeks though, so that's something | 01:03 | |
AlexDaniel | m: say DateTime.now.earlier(days => 30) | 01:04 | |
camelia | rakudo-moar ac4f9f: OUTPUT«2015-12-06T02:04:01.942518+01:00» | ||
AlexDaniel | haha | ||
TimToady | m: say DateTime.now.earlier(days => 365.24 * 15.5) | ||
camelia | rakudo-moar ac4f9f: OUTPUT«2000-07-06T02:04:35.300058+01:00» | ||
01:04
n0tjack left
|
|||
TimToady | a veritable workaround! | 01:04 | |
AlexDaniel | right | ||
zwu | thanks. Capture is cool! | 01:06 | |
TimToady | m: say Capture ~~ Cool | ||
camelia | rakudo-moar ac4f9f: OUTPUT«False» | ||
TimToady | no it ain't :P | ||
AlexDaniel | It is probably not fat enough but there you go: rt.perl.org/Public/Bug/Display.html?id=127160 | 01:07 | |
TimToady | thanks | ||
01:07
BenGoldberg joined
|
|||
dalek | ast: 295f51d | skids++ | S06-multi/value-based.t: Add tests for RT's 127025 127024 127129, with a couple fudges |
01:07 | |
01:08
kid51_ joined,
risou is now known as risou_awy,
peter__ joined
|
|||
AlexDaniel | sooo… what about negative amounts | 01:08 | |
01:08
risou_awy is now known as risou
01:09
protium left,
n0tjack joined
|
|||
AlexDaniel | m: say DateTime('2016-03-30') | 01:10 | |
camelia | rakudo-moar ac4f9f: OUTPUT«Cannot find method 'DateTime' in block <unit> at /tmp/77c7cMSSsg line 1» | ||
AlexDaniel | hmm *method* 'DateTime' | ||
01:11
kid51 left,
kid51_ is now known as kid51
|
|||
AlexDaniel | m: say DateTime.new(‘2016-01-31T05:00:00Z’).earlier(months => -1) | 01:12 | |
camelia | rakudo-moar ac4f9f: OUTPUT«Month out of range. Is: 0, should be in 1..12 in block <unit> at /tmp/CfLpbWf_RV line 1» | ||
AlexDaniel | err? | 01:13 | |
m: say DateTime.new(‘2016-01-31T05:00:00Z’).earlier(years => -1) | |||
camelia | rakudo-moar ac4f9f: OUTPUT«2015-01-31T05:00:00Z» | ||
AlexDaniel | m: say DateTime.new(‘2016-01-31T05:00:00Z’).earlier(days => -1) | ||
camelia | rakudo-moar ac4f9f: OUTPUT«2016-02-01T05:00:00Z» | ||
AlexDaniel | m: say DateTime.new(‘2016-01-31T05:00:00Z’).earlier(seconds => -1) | ||
camelia | rakudo-moar ac4f9f: OUTPUT«2016-01-31T05:00:01Z» | ||
AlexDaniel | m: say DateTime.new(‘2016-01-31T05:00:00Z’).later(seconds => -1) | 01:14 | |
camelia | rakudo-moar ac4f9f: OUTPUT«2016-01-31T04:59:59Z» | ||
AlexDaniel | m: say DateTime.new(‘2016-01-31T05:00:00Z’).later(months => -1) | ||
camelia | rakudo-moar ac4f9f: OUTPUT«Month out of range. Is: 0, should be in 1..12 in block <unit> at /tmp/jdJBjXGCdA line 1» | ||
AlexDaniel | so you can't go 24 months forward? | ||
01:16
peter__ left
|
|||
BenGoldberg | skids, You should also have a dies-ok test, for when you try to have a class which composes two different roles with conflicting constrained methods... Say, role BB { multi method f(3) { 33 } }; dies-ok { class C7 does B does BB }; | 01:16 | |
01:16
peter__ joined
|
|||
skids | BenGoldberg: good point | 01:16 | |
TimToady | m: class Foo {}; say Foo("bar") | ||
camelia | rakudo-moar ac4f9f: OUTPUT«Cannot find method 'Foo' in block <unit> at /tmp/CKAbMyOuSL line 1» | ||
TimToady | that's what's going on there | 01:17 | |
01:17
[particle] left,
peter__ left
|
|||
TimToady | it knows Foo is a type, so it figures string must have a coercion to Foo type, which is bogus | 01:18 | |
it's basically assuming that any Foo type that has no coercion from string will have monkey-typed Str, is why it's bogus | |||
skids | BenGoldberg: oh actually, there's never a conflict. | ||
BenGoldberg | Why not? | 01:19 | |
skids | Because signatures cannot be asked to solve the halting problem | ||
TimToady | they can, but they might not answer... | ||
01:20
Ch0c0late joined
|
|||
BenGoldberg | m: role B { multi method f(3) { 3 } }; role BB { multi method f(3) { 33 } }; class C does B does BB; say C.new.f(3); | 01:20 | |
camelia | rakudo-moar ac4f9f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Fp27J6H8LEToo late for unit-scoped class definition;Please use the block form.at /tmp/Fp27J6H8LE:1------> 3d f(3) { 33 } }; class C does B does BB;7⏏5 say C.new.f(3);» | ||
BenGoldberg | m: role B { multi method f(3) { 3 } }; role BB { multi method f(3) { 33 } }; class C does B does BB {}; say C.new.f(3); | ||
camelia | rakudo-moar ac4f9f: OUTPUT«33» | ||
BenGoldberg | m: role B { multi method f(3) { 3 } }; role BB { multi method f(3) { 33 } }; class C does BB does B {}; say C.new.f(3); | ||
camelia | rakudo-moar ac4f9f: OUTPUT«3» | ||
skids | Though if it is later decided that using a where clause to implement the value constraint is cheating, it could be done. | 01:21 | |
m: sub a(3) { }; &a.signature.say | |||
camelia | rakudo-moar ac4f9f: OUTPUT«(Int $ where { ... })» | ||
01:22
AndyDee left,
AndyDee joined
|
|||
AlexDaniel | m: say DateTime.new(‘2016-02-29T05:00:00Z’).later(years => -1) | 01:22 | |
camelia | rakudo-moar ac4f9f: OUTPUT«2015-02-28T05:00:00Z» | ||
AlexDaniel | m: say DateTime.new(‘2016-02-29T05:00:00Z’).later(years => -1, days => 1) | ||
camelia | rakudo-moar ac4f9f: OUTPUT«More than one time unit supplied in block <unit> at /tmp/FhINrn8K5I line 1» | ||
AlexDaniel | pfffffffft | ||
TimToady | that's by design | 01:23 | |
AlexDaniel | well, it makes sense because order matters | ||
TimToady | you have to stack .later for that | ||
BenGoldberg | m: say DateTime.new(‘2016-02-29T05:00:00Z’).later([ years => -1, days => 1 ]) | ||
camelia | rakudo-moar ac4f9f: OUTPUT«Too many positionals passed; expected 1 argument but got 2 in block <unit> at /tmp/J28gnKqZzU line 1» | ||
TimToady | say wot? | 01:24 | |
01:25
n0tjack left
|
|||
AlexDaniel | “Instead of taking low quality medication try visiting our really trusted and popular pharmacy!” | 01:25 | |
could have been a nice title for a bug report about wrong sign in DateTime.earlier(years => …) | 01:26 | ||
anyway: rt.perl.org/Public/Bug/Display.html?id=127161 | |||
if anybody wants to submit one hunder bug reports then go search for bugs in DateTime. I'm sure that you can do it in a week or so | 01:28 | ||
01:29
n0tjack joined,
peter__ joined
|
|||
AlexDaniel | by the way, is there any way I can manage my bug reports myself? e.g. close them | 01:31 | |
flussence | why does .later allow "year" and "years", but DateTime.new doesn't? | ||
AlexDaniel | flussence: that's one | ||
01:32
AndyDee left
01:33
adu left
|
|||
AlexDaniel | m: say DateTime.new(years => 25) | 01:34 | |
camelia | rakudo-moar ac4f9f: OUTPUT«Cannot make a DateTime object using .new in block <unit> at /tmp/39unjgUFR4 line 1Actually thrown at: in block <unit> at /tmp/39unjgUFR4 line 1» | ||
AlexDaniel | m: say DateTime.new(year => 2015, month => 1, day => 25); | ||
camelia | rakudo-moar ac4f9f: OUTPUT«2015-01-25T00:00:00Z» | ||
AlexDaniel | m: say DateTime.new(year => 2015, month => 1); | 01:35 | |
camelia | rakudo-moar ac4f9f: OUTPUT«2015-01-01T00:00:00Z» | ||
AlexDaniel | m: say DateTime.new(); | ||
camelia | rakudo-moar ac4f9f: OUTPUT«Cannot make a DateTime object using .new in block <unit> at /tmp/9_WkH1deQg line 1Actually thrown at: in block <unit> at /tmp/9_WkH1deQg line 1» | ||
AlexDaniel | m: say DateTime.new(year => -9⁹); | ||
camelia | rakudo-moar ac4f9f: OUTPUT«-387420489-01-01T00:00:00Z» | ||
AlexDaniel | m: say DateTime.new(years => -9⁹); | ||
camelia | rakudo-moar ac4f9f: OUTPUT«Cannot make a DateTime object using .new in block <unit> at /tmp/DsgP3DYMsL line 1Actually thrown at: in block <unit> at /tmp/DsgP3DYMsL line 1» | ||
AlexDaniel | m: say DateTime.new(year => -9⁹).later(years => 9⁹); | ||
camelia | rakudo-moar ac4f9f: OUTPUT«0000-01-01T00:00:00Z» | ||
AlexDaniel | flussence: once upon a time somebody noticed exactly the same issue. I mean, that “Xs” variant was not allowed somewhere else | 01:36 | |
flussence: and then it was decided that we should remove “years” and stuff like that from everywhere | 01:37 | ||
at least that's how I remember it, I could be wrong | |||
I remember lizmat commits that removed some of those… I'm not sure if there was any final decision though (and if those were reverted) | |||
flussence: are you going to submit a bug report? | 01:39 | ||
01:39
AndyDee joined
|
|||
flussence | I don't care enough about the date stuff to get involved :) | 01:40 | |
AlexDaniel | flussence: well… me too. But I guess that somebody has to do it, so I think that I'll just submit it | 01:42 | |
m: say DateTime.new(years => -50).later(years => 50); | 01:45 | ||
camelia | rakudo-moar ac4f9f: OUTPUT«Cannot make a DateTime object using .new in block <unit> at /tmp/iztv4txQHa line 1Actually thrown at: in any at gen/moar/m-Metamodel.nqp line 3041 in block <unit> at /tmp/iztv4txQHa line 1» | ||
01:47
peter__ left
|
|||
skids | AlexDaniel: if you have enough permissions on RT to login and comment on RTs through the web interface you may be able to close them while making a comment by selecting "resolved" from the dropdown. | 01:47 | |
AlexDaniel | I don't think that I have such permissions | 01:48 | |
anyway: rt.perl.org/Public/Bug/Display.html?id=127162 | 01:49 | ||
01:50
leont left
|
|||
AlexDaniel | skids: I've tried creating an account once but RT becomes unusable once you login | 01:52 | |
Juerd | I've found that the only realistic way of interacting with RT is to send emails. Unfortunately that only works on threads you started. | 01:53 | |
skids | AlexDaniel: yeah I have to log in/out al the time so I can search outside my own tickets. | ||
AlexDaniel | Juerd: I figured that you can write comments by sending emails too | 01:54 | |
Juerd: just include [perl #127162] in the title and boom… | |||
Juerd | Oh, that's great | ||
AlexDaniel | VERY intuitive | ||
Juerd | Well, it doesn't need to be intuitive. Anything that doesn't make me angry is better than trying to log in. | 01:55 | |
AlexDaniel | it makes me angry. I'd much rather login than have to do that stuff with emails | ||
Juerd | I feel very comfortable with email | ||
AlexDaniel | I've also figured a way to see all my bug reports | 01:56 | |
here's a link to bookmark: rt.perl.org/Public/Search/Simple.h...il.com+any | |||
Juerd | :) | ||
AlexDaniel | it will yell about CSRF but just click “click here to resume your request” | ||
Juerd | RT used to be great. I used to have it for my web hosting business. I don't understand what exactly is wrong with the one on rt.perl.org, but I'm quite convinced that the whole bitcard thing is part of the issue. | 01:57 | |
[Coke] | jnthn: lots of stmop | ||
01:58
xpen joined,
llfourn joined
02:01
Actualeyes joined
|
|||
[Coke] | bitcard is for auth; that's it. If your problem isn't with auth, I'd be surprised if the problem is with bitcard. | 02:01 | |
02:04
llfourn left
|
|||
Juerd | My problem is mainly with authentication. | 02:04 | |
[Coke] | there is a ticket queue for RT itself, btw; I've found the perl rt admins quite responsive when asked. | ||
Juerd | Apparently the user 'juerd' exists, but I can't reset the password for it. When you create a new user account, it needs an email address that's never been seen by the system before. | 02:05 | |
That's when I just gave up. | |||
[Coke] | For issues related to this RT instance (aka "perlbug"), please contact perlbug-admin at perl.org | 02:07 | |
^^ I'd email them. | |||
japhb | jnthn++ # 6guts post | 02:08 | |
02:08
molaf_ joined
|
|||
Juerd | [Coke]: When I find a system very frustrating, I try not to use it. In this case, using the system that annoys me to report that it annoys me seems like a good way to ruin my day :) | 02:11 | |
gfldex | where is the doc for META.info? | 02:12 | |
02:12
molaf left,
kaare_ joined
|
|||
gfldex | found it | 02:13 | |
02:13
atweiden joined
02:16
laouji left
02:18
mojca left,
Actualeyes left
|
|||
japhb | m: role Foo { has $.s = 42; has @.a = 7, 8, 9; }; class Bar does Foo { }; class BarDate is Date does Foo { }; dd | 02:18 | |
camelia | rakudo-moar ac4f9f: OUTPUT«block <unit>» | ||
japhb | m: role Foo { has $.s = 42; has @.a = 7, 8, 9; }; class Bar does Foo { }; class BarDate is Date does Foo { }; dd Bar.new.a; dd BarDate.today.a; | 02:19 | |
camelia | rakudo-moar ac4f9f: OUTPUT«Array @!a = [7, 8, 9]Array @!a = []» | ||
japhb | Anyone have any idea why ^^ is happening? | ||
02:19
[particle] joined
|
|||
gfldex | BarDate.today returns a new object that is of the wrong type | 02:20 | |
or the right type, depends on how you see it | |||
m: role Foo { has $.s = 42; has @.a = 7, 8, 9; }; class Bar does Foo { }; class BarDate is Date does Foo { }; dd Bar.new.a; dd Bar.today.a; | |||
camelia | rakudo-moar ac4f9f: OUTPUT«Array @!a = [7, 8, 9]Method 'today' not found for invocant of class 'Bar' in block <unit> at /tmp/WFIIjIxEW3 line 1» | ||
gfldex | m: role Foo { has $.s = 42; has @.a = 7, 8, 9; }; class Bar does Foo { }; class BarDate is Date does Foo { }; dd Bar.new.a; dd BarDate.new.today.a; | ||
camelia | rakudo-moar ac4f9f: OUTPUT«Array @!a = [7, 8, 9]Cannot make a BarDate object using .new in block <unit> at /tmp/afkTiZ_W4I line 1Actually thrown at: in any at gen/moar/m-Metamodel.nqp line 3041 in block <unit> at /tmp/afkTiZ_W4I line 1» | ||
japhb | gfldex: But clearly whatever it's returning has an (uninitialized) @!a field .... | 02:21 | |
gfldex | that must mean it's calling the constructor of Date but not Foo | 02:23 | |
japhb | Oh, I wonder if this is a side effect of lizmat's optimizations | 02:24 | |
02:25
Zoffix joined
02:30
sprocket_ left
|
|||
Zoffix | m: sub foo { 'meow' ~~ /$<foo>=(meow)/; say "(\$<foo> is now $<foo>)"}; 'foobar' ~~ /$<foo>=(foo) $<bar>=(bar)/; say $<foo bar>; foo; say $<foo bar> | 02:31 | |
camelia | rakudo-moar ac4f9f: OUTPUT«(「foo」 「bar」)($<foo> is now meow)(「foo」 「bar」)» | ||
Zoffix | This is neat. I kinda went it with an assumption that $<whatever> would get clobbered by the next regex match, but it DWIM! :D | 02:32 | |
02:36
colomon_ joined
02:37
colomon left,
colomon_ is now known as colomon
02:39
AlexDaniel left
02:41
cdg joined
02:46
sprocket_ joined,
kid51 left
02:47
secwang joined
02:48
skids left
|
|||
Zoffix | m: sub foo { ^2 }; my @facts = foo or fail 'Nada'; | 02:48 | |
camelia | rakudo-moar ac4f9f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/sJS_o9IZAbUndeclared routine: or used at line 1» | ||
Zoffix | m: sub foo { ^2 }; my @facts = foo() or fail 'Nada'; | ||
camelia | ( no output ) | ||
Zoffix | Weird, eh? | ||
gtodd | hmm so if Perl6.z is ever needed there's a holiday called "Zarathosht Diso" | 02:49 | |
Juerd | Zoffix: $/ is lexical, so the sub has its own. | ||
Zoffix | Juerd, cool | ||
m: fail or fail; | 02:50 | ||
camelia | rakudo-moar ac4f9f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/_93RbEmClxUndeclared routine: or used at line 1» | ||
02:51
sgt_baker joined
|
|||
autogen | Hey guys, I've been reading through rakudo source, and I must comment on how impressed I am | 02:51 | |
It's extremely clear, concise, and great to learn from | 02:52 | ||
Zoffix | m: fail && fail; | ||
camelia | rakudo-moar ac4f9f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/U_9D2pIK_lTwo terms in a rowat /tmp/U_9D2pIK_l:1------> 3fail &&7⏏5 fail; expecting any of: infix infix stopper postfix statement end state…» | ||
diakopter | which repos? rakudo, nqp, or moarvm? | ||
[Coke] | autogen: thanks. | ||
gtodd | so if roast changes occur every 10-15 years the Perl6 spec could go on for 100s of years | ||
[Coke] | nite, everyone. | ||
Juerd | Good night | ||
Zoffix | night | ||
autogen | [Coke]: is this your doing? :D | ||
gtodd | m: say "can you do Inline::Perl5" | 02:53 | |
camelia | rakudo-moar ac4f9f: OUTPUT«can you do Inline::Perl5» | ||
gtodd | m: use Inline::Perl5 | ||
camelia | rakudo-moar ac4f9f: OUTPUT«===SORRY!===Could not find Inline::Perl5 in: /home/camelia/.perl6/2015.12-96-gac4f9f8 /home/camelia/rakudo-m-inst-1/share/perl6/site /home/camelia/rakudo-m-inst-1/share/perl6/vendor /home/camelia/rakudo-m-inst-1/share/perl6 …» | ||
gtodd | ok :) | ||
Zoffix | autogen, I think the release credits have about 900 people :P | ||
autogen | Zoffix: my initial thought, but hey, my gratitude is up for grabs :) | 02:54 | |
All I wanted for x-mas was Perl6. | |||
autogen is happy. | |||
Zoffix | Filed: rt.perl.org/Ticket/Display.html?id=127163 | 02:56 | |
star: use Inline::Perl5; | 02:57 | ||
camelia | star-m 2015.09: OUTPUT«===SORRY!===Could not find Inline::Perl5 in any of: file#/home/camelia/.perl6/2015.09/lib inst#/home/camelia/.perl6/2015.09 file#/home/camelia/star-2015.09/share/perl6/lib file#/home/camelia/star-2015.09/share/perl6/vendor/lib file#/home…» | ||
Zoffix | star: use Bailador | ||
camelia | ( no output ) | ||
Zoffix | gtodd, ^ well, that's supposed to have R*, but I guess IP5 failed to install | ||
oh, still 2015.09 >_< | 02:58 | ||
gtodd | ok | ||
awwaiid: ... that's just soo ... gist.github.com/awwaiid/01fe0e56e2c1220548a1 | 02:59 | ||
Zoffix | ahaha | ||
awwaiid++ | |||
03:00
llfourn joined
|
|||
gtodd | nuts! :-) ... should be part of standard Perl6 install ;-) | 03:00 | |
errm rakudo | |||
03:00
vendethiel joined
03:02
adu joined
03:03
kaare_ left
03:05
llfourn left
|
|||
Zoffix | m: class Foo { method bar { return ^0; } }; Foo.new.bar or fail | 03:05 | |
camelia | ( no output ) | ||
Zoffix | m: class Foo { method bar { return (); } }; my $x = Foo.new.bar or fail; say $x ~~ True | 03:06 | |
camelia | rakudo-moar ac4f9f: OUTPUT«Failed in block <unit> at /tmp/FyBShztynR line 1» | ||
Zoffix | m: class Foo { method bar { return (); } }; my $x = Foo.new.bar; say $x ~~ True | ||
camelia | rakudo-moar ac4f9f: OUTPUT«True» | ||
Zoffix | whatshappening? | ||
03:06
noganex joined
|
|||
Zoffix | ah | 03:07 | |
m: say False ~~ True | |||
camelia | rakudo-moar ac4f9f: OUTPUT«True» | ||
Zoffix | I see | ||
03:09
noganex_ left
|
|||
timotimo | "smartmatch against True always matches" | 03:12 | |
m: say "hello" ~~ True | |||
camelia | rakudo-moar ac4f9f: OUTPUT«True» | ||
timotimo | there's a warning in Actions.nqp, but it doesn't seem to fire | ||
m: my int $foo; say $foo ~~ True | |||
camelia | rakudo-moar ac4f9f: OUTPUT«True» | ||
Juerd | Zoffix: Did you want 'so $x' instead of $x ~~ True? | ||
Or what did you expect $x ~~ True to do? | 03:13 | ||
Zoffix | Juerd, I thought ~~ was thinking $x was true so I was surprised the 'or fail' was executing | 03:14 | |
mst, I'm starting to like coding P6 without highlights... It's so much easier to notice when your code is a mess ^_^ | 03:15 | ||
Juerd | Zoffix: The problem with testing whether something "is true", is that True and False aren't the only true and false values, respectively. To test whether some value is Bool::True, your best bet is $x =:= True, but such a test doesn't make sense in actual software you'd write... | 03:17 | |
Regarding syntax highlighting... I really miss it on IRC and in the REPL. | 03:18 | ||
03:18
psy_ joined
|
|||
Juerd | And in Vim it's far from perfect. It doesn't even understand things like "foo { bar("baz") }" | 03:19 | |
Zoffix | It's totally broken in Sublime Text 2, so right now, this is what I'm staring at: i.imgur.com/cX2Frjw.png | ||
Juerd | Yeah, that does look like a mess. But so does anything with lots of inline regexes. | 03:20 | |
03:21
colomon_ joined,
cpage_ left
|
|||
Juerd | Could the if/elsif tree on %res<what> be a given/when? | 03:21 | |
03:21
colomon left
|
|||
Zoffix | Juerd++ ah! my Perl5-ism | 03:21 | |
Juerd | That would at least get rid of the repeated %res<what>, which contributes to the visual mess. | 03:22 | |
Zoffix | Add a new indent level tho :( | ||
03:22
protium joined
03:23
cpage_ joined
|
|||
Juerd | Another thing that clears up code a lot is to move your database queries to functions | 03:23 | |
03:23
colomon_ is now known as colomon,
user74747 left
|
|||
Zoffix | Already doing it | 03:23 | |
We need an ORM :( | 03:24 | ||
Juerd | Ugly things don't look as ugly if they're grouped by kind :) | ||
Zoffix | heh | ||
Juerd | Regexes with regexes, sql with sql, etc. | ||
03:24
vendethiel left
|
|||
Juerd | This is why I don't clean my desk. Clutter doesn't look out of place amidst more clutter ;) | 03:26 | |
But I do group the kinds of clutter by appearance. Sheets of paper get stacked, pens and screwdrivers are sufficiently alike that they can go together, cables are together in one corner. | 03:27 | ||
I keep discovering that I use a lot of the same patterns in code and in real life. | |||
I hate cleaning up when I'm busy doing other things because it makes me lose focus, but in general I don't mind to clean up when I'm done with the other stuff. In code, I also tend to process data in a tight loop, and clean everything up afterwards instead of in the loop body. | 03:29 | ||
Zoffix | :) | ||
Juerd | Another pattern is that I hate boilerplate code, and I hate tasks that require preparation. | 03:30 | |
I want my tools nearby and ready for grabbing, not in toolboxes that I first need to fetch from a neatly organized rack. | 03:31 | ||
Only if the tool is very specific it gets put in a box. General purpose stuff, however, is okay to "contaminate" my main workspace. Or namespace, in code. | |||
03:35
cpage_ left
|
|||
gtodd | feeds | 03:35 | |
I used to do this: | 03:36 | ||
time perl6 -e 'my @arr := "/usr/share/dict/web2".IO.slurp.lines(:eager); @arr ==> grep({m/<<zygote>>/}) ==> my $stuff; say $stuff' | |||
to see how snappy things were :) | |||
but not I get "Type check failed in binding; expected Positional but got Seq" | 03:37 | ||
errm now | |||
is that a change from long ago GLR ? | |||
Zoffix | @("/usr/share" ... :eager)) | 03:38 | |
gtodd | ok :) | ||
Zoffix | Seems to be cleaner with given/when and subs: gist.github.com/zoffixznet/662d9e8c923d97746b4e | 03:40 | |
timotimo | :eager is gone already :) | 03:41 | |
it's also possibly a bit faster to do .lines than to do .slurp.lines | |||
gtodd | I was wondering when it started to fail ... I don't know why I didn't notice this not working :-) | 03:42 | |
probably GLR and Xmas rush | |||
timotimo | also, if you want the old behavior of "i want to store this iterator", you'll assign to a $-sigiled var in today's code | 03:43 | |
so my $lines = "/usr/...".IO.lines; $lines ==> ... | |||
03:43
ELBeavers left
|
|||
gtodd | hmm ok | 03:43 | |
timotimo | i *would* suggest you use the shiny new hyper, but alas hyper and grep don't work together right now :( | ||
Zoffix | :( | ||
03:43
cpage_ joined
|
|||
timotimo | i'm now daring enough to upgrade from fedora 22 to fedora 23 | 03:43 | |
wish me luck! | 03:44 | ||
Zoffix | Good luck | ||
hoelzro | Hals und Beinbruck =) | ||
Zoffix | Didn't even realize they still made Fedora :) | ||
Juerd | Zoffix: Instead of ~$<foo>, you could have Str() in the signature instead of Str, and it will stringify whatever you give it. | ||
hoelzro doesn't know if that expression applies here | |||
Zoffix | I've used it once, just when it split off Red Hat | ||
03:44
bpmedley left
|
|||
gtodd | good lukc ... and don't worry there's always freebsd :) | 03:44 | |
Zoffix | Juerd++ thanks | ||
03:44
AndyDee left
|
|||
Zoffix | Hm | 03:45 | |
Juerd | Zoffix: I think that in many cases, Str() is a more logical thing to use than Str | ||
timotimo | Total download size: 3.4 G | ||
oh lord | |||
Zoffix | But then why declare the sig at all? | ||
s/sig/type/ | |||
I think the way I have it now will cry when I give it a non-string. | |||
Which can catch some bugs | |||
Juerd | Well, there are things that can't be stringified | ||
m: sub foo (Str() $foo) { say $foo }; foo(-> { ... }) | 03:46 | ||
camelia | rakudo-moar ac4f9f: OUTPUT«Block object coerced to string (please use .gist or .perl to do that) in sub foo at /tmp/hX1gx1U8f3 line 1» | ||
Zoffix | K, gonna try using Str() and see how that stuff fairs | ||
Juerd | I don't like that you can't really use :D with Str(), not sure if that's a bug or a feature. | 03:47 | |
That is, the () appear to be ignored if you use :D | |||
gfldex | m: role Foo[::T where T ~~ Str] {} | 03:48 | |
camelia | rakudo-moar ac4f9f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/12EWCmOpF4Cannot do non-typename cases of type_constraint yetat /tmp/12EWCmOpF4:1------> 3role Foo[::T where T ~~ Str7⏏5] {}» | ||
gtodd | hmn just naively goofing around with feeds (==>) got slower but I'm likely doing it wrong | ||
Juerd | Zoffix: If you build your code specifically for this use case, you could also use Str(Match), in which case it will accept Str or Match, stringifying the latter. | ||
gfldex | and how do i do typename cases of type_contraint? | ||
gtodd | time perl6 -e 'my $arr = "/usr/share/dict/web2".IO.lines; $arr ==> grep({m/<<zygote>>/}) ==> my $stuff; say $stuff' ... 27 seconds | ||
:-\ | |||
cognominal | m: my &[==] = &[<] | ||
camelia | rakudo-moar ac4f9f: OUTPUT«Cannot modify an immutable Sub+{<anon|65623632>}+{Precedence} in block <unit> at /tmp/qnnsl1lO9w line 1» | ||
Juerd | cognominal: Is this part of some evil plan? | 03:49 | |
cognominal | Juerd, I am surprised I can't lexically redefined an op with that syntax | ||
03:49
bpmedley joined
|
|||
cognominal | m: sub infix:<==> { $^a < $^b }; say (1 == 2 ) # I know I can do that | 03:50 | |
camelia | rakudo-moar ac4f9f: OUTPUT«True» | ||
Juerd | cognominal: I didn't even know that syntax existed until two minutes ago :) | ||
m: my &infix:<==> := &infix:«<»; say 2 == 4; say 4 == 2; | |||
camelia | rakudo-moar ac4f9f: OUTPUT«TrueFalse» | ||
03:50
cdg left
|
|||
Juerd | I'm going to bed. Good *, * | 03:51 | |
cognominal | I know that redefining == as < is stupid, but that's not the point. | ||
geekosaur | isn't that &[==] just a trivial case of the reduce syntax? | ||
03:51
cpage__ joined
|
|||
geekosaur | so it would not be expected to work for assignment | 03:51 | |
03:51
cpage_ left,
cpage__ is now known as cpage_
|
|||
Zoffix | m: my &infix:«==» := &infix:«<»; say so 3 == 5 | 03:51 | |
camelia | rakudo-moar ac4f9f: OUTPUT«True» | ||
cognominal | m: say( &[==] =:= &infix:<==> ) | 03:52 | |
camelia | rakudo-moar ac4f9f: OUTPUT«True» | ||
timotimo | just 1.5 hours until the download is done ... | ||
hoelzro | timotimo: time to play disgaea? | 03:53 | |
=) | |||
cognominal | m: say &[==] .^name | ||
camelia | rakudo-moar ac4f9f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/aVXmI3Vx8WMalformed postfix call (only alphabetic methods may be detached)at /tmp/aVXmI3Vx8W:1------> 3say &[==] .7⏏5^name» | ||
cognominal | m: say &[==].^name | ||
camelia | rakudo-moar ac4f9f: OUTPUT«Sub+{<anon|65623632>}+{Precedence}» | ||
03:55
cpage_ left
03:56
cpage_ joined
|
|||
timotimo | hoelzro: watching AGDQ right now; ori and the blind forest race between grimelios and ankamius | 03:57 | |
hoelzro | oooo I need to play that game | ||
timotimo | it looks very pretty | 03:58 | |
hoelzro | I started it a few weeks back, but I haven't felt the urge to boot into Windows to continue =/ | ||
it's soooo pretty | |||
timotimo | windows only :( | ||
hoelzro | I want to play it on my TV, but my wife is deep into Fallout 4 right now | ||
yeah ='( | |||
03:59
adu left
|
|||
hoelzro | it's a shame that Linux can't serve as a steam link host | 03:59 | |
so even if I want to play a Linux game, if it's on the TV, I have to boot into Windows | 04:00 | ||
jeek | It's a shame that Chromecast can't serve as a Steam link host. | ||
04:01
llfourn joined
|
|||
hoelzro | jeek: host? or client? | 04:01 | |
timotimo | either would be cool, really | 04:02 | |
hoelzro | yeah | ||
timotimo | just interconnect all the things | ||
jeek | Client, I guess. | 04:04 | |
I have a Steam Controller, I have a pile of computers, one even running Windows. | |||
Kind of bummed that I pretty much just have to leave the Windows computer plugged into the TV. | |||
My wife is hogging it right now to play Life is Strange, so I'm setting up a VM for playing with perl 6 on my lab at the office. | 04:05 | ||
04:05
llfourn left
04:08
secwang left
04:09
n0tjack left
04:10
secwang joined
|
|||
timotimo | mhm | 04:10 | |
At least 325MB more space needed on the / filesystem. | 04:11 | ||
ah well ... | |||
a-ha! i can just kick out the journal :P | 04:14 | ||
hoelzro | heh | 04:15 | |
who needs it? | |||
timotimo | it'll grow back. no worries :) | ||
hoelzro | =) | 04:16 | |
you know, it's been months since the GLR landed and I *still* haven't figured out how to flatten nested arrays | |||
m: my @rows = [1, 2, 3], [4, 5, 6]; say +(flat @rows); | |||
camelia | rakudo-moar ac4f9f: OUTPUT«2» | ||
hoelzro | the best I can do is flat @rows.map(*.list), which just feels *wrong* | 04:17 | |
timotimo | my @rows = [1, 2, 3], [4, 5, 6]; my @result = gather @rows>>.take; say @result.perl | 04:18 | |
m: my @rows = [1, 2, 3], [4, 5, 6]; my @result = gather @rows>>.take; say @result.perl | |||
camelia | rakudo-moar ac4f9f: OUTPUT«[1, 2, 3, 4, 5, 6]» | ||
04:18
atweiden left
|
|||
hoelzro | hmm, that works too | 04:18 | |
timotimo | m: my @rows = [1, 2, 3], [4, 5, 6]; say @rows.map(*.Slip).perl | 04:19 | |
camelia | rakudo-moar ac4f9f: OUTPUT«(1, 2, 3, 4, 5, 6).Seq» | ||
hoelzro | timotimo: there's nothing that just involves flat, though? because Arrays don't flatten, ever? | ||
timotimo | m: my @rows = [1, 2, 3], [4, [9, 9, 9], 6]; say @rows.map(*.Slip).perl | ||
camelia | rakudo-moar ac4f9f: OUTPUT«(1, 2, 3, 4, $[9, 9, 9], 6).Seq» | ||
timotimo | something like that | 04:20 | |
hoelzro | thanks for the input timo! | 04:21 | |
timotimo | YW | ||
TT showed me the take trick some time ago | |||
orbus | is there a good writeup on thread safety in perl6 anywhere? | 04:31 | |
04:31
cpage_ left
|
|||
orbus | There's a little bit in doc.perl6.org/language/concurrency#...y_Concerns | 04:31 | |
but not much | |||
I've read some advent calendar posts that seem to imply there's some internal locking around things like scalars and hashes, but not much detail on what is and is not safe to do | 04:32 | ||
04:34
cdg joined
04:41
sprocket_ left
04:43
cdg left
04:47
g4 joined,
g4 left,
g4 joined
04:49
BenGoldberg left
04:51
Psyche^ joined
|
|||
jeek | say [+] grep * < 4000000, (0, 1, *+* ...4000000) | 04:53 | |
How do I cap off the list of fibonacci numbers? | |||
04:55
Psyche^_ left
|
|||
jeek | Got it | 05:00 | |
say [+] grep * %% 2, (0, 1, *+* ...^ * >= 4000000) | 05:01 | ||
b2gills | timotimo: @a>>.take is not safe, as it can get called out of order | ||
05:02
llfourn joined
|
|||
b2gills | jeek: if you want to include 4000000 you want ...^ * > 4000000 | 05:03 | |
jeek | So, inverse match to make the lazy list generator stop? | 05:04 | |
05:07
llfourn left
05:11
_mg_ joined
05:13
DrArch left
05:14
nige1 joined
05:15
_mg_ left
05:16
psy_ left
05:17
khw left
05:18
secwang left
05:24
thesparta joined
05:25
sprocket_ joined,
thesparta left
05:26
cpage_ joined,
DrArch joined
05:27
protium left
05:33
zwu left
05:37
secwang joined
05:39
Cabanossi left
05:41
Cabanossi joined
05:44
zengargoyle joined
05:46
zengargoyle left
05:48
telex left
05:50
krunen left,
telex joined
05:55
secwang left
05:56
DrArch left
05:57
molaf_ left
|
|||
sammers | hello | 06:00 | |
how do I use a variable ($foo) as the key name in something like this: HTTP::Request.new($method => URI.new($uri)) | 06:02 | ||
06:03
llfourn joined
06:04
Ch0c0late left
06:05
sgt_baker left
06:06
secwang joined
06:08
llfourn left
|
|||
sammers | ok, figured it out: HTTP::Request.new(|($method => URI.new(uri))) | 06:12 | |
TimToady | if you're intending to pass a named option, you I suspect you could say HTTP::Request.new(|($method => URI.new($uri)) | ||
yeah, that :) | |||
sammers | ha | ||
yeah, thanks... was scratching my head there for a bit. so I guess this is referred to as dynamic named arguemnt? | 06:13 | ||
TimToady | you're the first person to ask for it :) | ||
sammers | ha | ||
finally, I am first as something! | |||
06:19
cdg joined
06:23
cdg left
06:25
secwang left
06:26
n0tjack joined
06:28
krunen joined
06:30
n0tjack left
06:32
secwang joined
06:34
sprocket_ left,
sprocket_ joined
06:35
sprocket_ left
|
|||
gfldex | m: multi f(:$named){ note &?ROUTINE.signature }; multi f(:$also-named){ note &?ROUTINE.signature }; for 'named', 'also-named' -> $n { f(|($n => rand))} | 06:36 | |
camelia | rakudo-moar ac4f9f: OUTPUT«(:$named)(:$also-named)» | ||
06:37
krunen left
06:39
Tonik joined
06:40
sprocket_ joined
06:45
FROGGS left,
sprocket_ left
06:50
sjoshi joined
06:53
llfourn joined
|
|||
dalek | c: 30c4baf | (Wenzel P. P. Peppmeyer)++ | doc/Type/Signature.pod: doc casting a Hash or Pair into named arguments (sammers++) |
06:54 | |
c: 004c7b7 | (Wenzel P. P. Peppmeyer)++ | / (6 files): Merge remote-tracking branch 'upstream/master' |
|||
c: 3d81284 | (Wenzel P. P. Peppmeyer)++ | doc/Type/Signature.pod: better wording for casting a Pair into named arguments |
|||
c: 8e29886 | (Wenzel P. P. Peppmeyer)++ | doc/Type/Signature.pod: Merge pull request #315 from gfldex/master doc casting a Hash or Pair into named arguments (sammers++) |
|||
06:55
CIAvash joined
06:56
geraud left
06:58
peter__ joined
07:00
domidumont joined
07:05
domidumont left
07:06
domidumont joined
|
|||
[Tux] | csv-ip5xs 50000 19.544 19.429 | 07:10 | |
test 50000 24.363 24.248 | |||
test-t 50000 13.311 13.196 | |||
csv-parser 50000 50.393 50.279 | |||
I get this (as I wrote that almost intuively: | |||
m: say [+] ^64 | |||
camelia | rakudo-moar ac4f9f: OUTPUT«2016» | ||
[Tux] | m: say [+] (3..6).map(* **3) | 07:11 | |
camelia | rakudo-moar ac4f9f: OUTPUT«432» | ||
[Tux] | m: say [+] (3..9).map(* **3) | ||
camelia | rakudo-moar ac4f9f: OUTPUT«2016» | ||
[Tux] | but why is | ||
m: say [+] (3..9).map(***3) | |||
camelia | rakudo-moar ac4f9f: OUTPUT«7» | ||
[Tux] | 7? | ||
llfourn | m: say [+] (2..8).map(***3) | 07:12 | |
camelia | rakudo-moar ac4f9f: OUTPUT«7» | ||
llfourn | m: say (2..8).map(***3) | 07:15 | |
camelia | rakudo-moar ac4f9f: OUTPUT«((6) (9) (12) (15) (18) (21) (24))» | ||
llfourn | I guess because it has seven elems each of which is a one elem list which ends up being 1 + 1 + 1... | ||
07:17
peter__ left
|
|||
gfldex | that's a very fancy way of counting that is | 07:22 | |
m: say [+] (3..9).map((*)**3) | 07:23 | ||
camelia | rakudo-moar ac4f9f: OUTPUT«2016» | ||
gfldex | m: say [+] (2..9).map(***3) | 07:24 | |
camelia | rakudo-moar ac4f9f: OUTPUT«8» | ||
llfourn | m: (2..9).map(**+0).perl.say | 07:25 | |
camelia | rakudo-moar ac4f9f: OUTPUT«((2,).Seq, (3,).Seq, (4,).Seq, (5,).Seq, (6,).Seq, (7,).Seq, (8,).Seq, (9,).Seq).Seq» | ||
gfldex | - QAST::Op(call &HYPERWHATEVER) :BY<methodop/longname wa> :WANTED | 07:26 | |
[Tux]: the longest token matcher matches the longest token. see design.perl6.org/S02.html#The_HyperWhatever_Type | 07:27 | ||
[Tux] | thnx | 07:28 | |
gfldex | --target=ast -e 'very-short-example()' can be very helpful | 07:29 | |
07:30
FROGGS joined
|
|||
dalek | c: d094daf | (Wenzel P. P. Peppmeyer)++ | doc/Language/faq.pod: doc --target=ast see irclog.perlgeek.de/perl6/search/?ni...rget%3Dast |
07:36 | |
c: 4c2cb34 | (Wenzel P. P. Peppmeyer)++ | /: Merge remote-tracking branch 'upstream/master' |
|||
c: 8a88776 | (Wenzel P. P. Peppmeyer)++ | doc/Language/faq.pod: Merge pull request #316 from gfldex/master doc --target=ast |
|||
07:37
RabidGravy joined
07:39
nige1 left
|
|||
dalek | line-Perl5: a33ac33 | (Stefan Seifert)++ | / (2 files): Fix possible type mismatch of NVs It's possible that NVs are not doubles, so better check their real size. As Perl 5 also supports 80 bit NVs and NativeCall doesn't, we bail out in that case with an error message pointing to this situation. |
07:40 | |
07:40
_mg_ joined
07:42
pierre-vigier joined
|
|||
FROGGS | TimToady: morning, here is something to muse about :o) - rt.perl.org/Public/Bug/Display.html?id=127165 | 07:44 | |
07:45
peter__ joined
07:46
TimToady left
07:47
peter__ left
07:48
TimToady joined
07:51
nige1 joined
|
|||
stmuk_ | .tell Zoffix this is an odd one :) par.perl.org/ | 07:55 | |
yoleaux | stmuk_: I'll pass your message to Zoffix. | ||
08:01
jack_rabbit left
08:03
firstdayonthejob joined,
sno left
|
|||
RabidGravy | yawn! | 08:06 | |
08:07
pierre-vigier left
08:08
zakharyas joined,
pierre-vigier joined
08:12
_mg_ left
08:17
darutoko joined
|
|||
lizmat | good *, #perl6! | 08:21 | |
RabidGravy | MARNIN! | ||
08:21
pierre-vigier left
|
|||
lizmat | m: dd |( 42 => 42) | 08:22 | |
camelia | rakudo-moar ac4f9f: OUTPUT«This type cannot unbox to a native string in block <unit> at /tmp/uoPZkjvlxc line 1» | ||
08:22
xdg left,
pierre-vigier joined
08:23
araujo_ left
|
|||
gfldex | m: (|(41 => 41)).WHAT.say | 08:23 | |
camelia | rakudo-moar ac4f9f: OUTPUT«(Slip)» | ||
08:27
pierre-vigier left
|
|||
DrForr | Re: the LWP videos it's wonderful to see we've got an intro sequence, even if it feels a bit blurry :) | 08:30 | |
08:32
peter__ joined,
peter__ left
08:34
SwellJoe left
08:36
brrt joined
08:38
pierre-vigier joined,
firstdayonthejob left
|
|||
dalek | kudo/nom: 18957e3 | lizmat++ | src/core/DateTime.pm: Fix for RT #127160 |
08:40 | |
08:41
virtualsue joined
08:44
pierre-vigier left,
luiz_lha joined
08:45
luiz_lha is now known as Guest64716
08:49
sno joined
08:55
nige1 left
08:57
pierre-vigier joined
09:02
n0tjack joined
09:03
_mg_ joined,
AlexDaniel joined
|
|||
dalek | kudo/nom: d1ff735 | lizmat++ | src/core/Setty.pm: Fix for RT #127166 |
09:04 | |
09:05
veeru joined,
veeru left
09:06
wamba joined,
n0tjack left
09:07
abraxxa joined
|
|||
stmuk_ | I was very disappointed by the LWP quality | 09:08 | |
err LPW video quality I mean .. wasn't any better than the London Tech Meet Iphone video experiments | |||
gfldex | PR send to have Backtrace::AsHTML tests fixed | 09:09 | |
dalek | ast: b774bcc | lizmat++ | S02-types/set (2 files): Add tests for RT #127166 |
09:10 | |
09:19
pierre-vigier left
|
|||
dalek | ast: afe667b | lizmat++ | S32-temporal/Date.t: Add tests for #127160 and #127161 |
09:20 | |
AlexDaniel | lizmat++ | 09:21 | |
09:21
vytas joined
09:23
pierre-vigier joined
|
|||
RabidGravy | are there any modules in the ecosystem that bind to c++ libraries? | 09:26 | |
nine | .seen flussence | 09:27 | |
yoleaux | I saw flussence 01:40Z in #perl6: <flussence> I don't care enough about the date stuff to get involved :) | ||
FROGGS | RabidGravy: not is the ecosystem yet and I have lots of unpushed changes: github.com/FROGGS/p6-Box2D | 09:28 | |
AlexDaniel | oh wow, Box2D | 09:29 | |
FROGGS++ | |||
RabidGravy | :) | ||
I'm going to attempt to redo (the unreleased) Audio::SoundTouch without the C wrapper | 09:30 | ||
lizmat | afk for a few hours& | ||
FROGGS | RabidGravy++ | 09:31 | |
09:36
yeahnoob left
09:41
secwang left
|
|||
gfldex | m: role R {}; R.^add_method('foo', method (){}) | 09:44 | |
camelia | rakudo-moar d1ff73: OUTPUT«Method 'add_method' not found for invocant of class 'Perl6::Metamodel::ParametricRoleGroupHOW' in block <unit> at /tmp/cHW4pjhJvi line 1» | ||
gfldex | that makes tests for Crust fail | ||
09:44
secwang joined
|
|||
gfldex | last commit to Crust was on 2015-12-22 see github.com/tokuhirom/p6-Crust/commits/master | 09:45 | |
09:47
pierre-vigier left
09:49
pierre-vigier joined
09:52
_mg_ left,
_mg__ joined
09:54
Peter_WR joined,
nige1 joined
|
|||
RabidGravy | well that's a quick way to get a coredump | 09:56 | |
nine | Oh how I hate packaging issues | 09:58 | |
09:58
leont joined
|
|||
AlexDaniel | “The default mode for C++ is now -std=gnu++14 instead of -std=gnu++98” – well, that's a big step | 10:00 | |
10:03
lnrdo joined
10:05
kailash19 joined,
kailash19 left
10:07
espadrine joined,
virtualsue left
|
|||
RabidGravy | FROGGS, I think to save having to put an "is symbol('soundtouch::SoundTouch::foo')" on every method there may be an "is symbol" on a class that guess_name_mangler can use | 10:08 | |
FROGGS | RabidGravy: it will take the class name into account if you do it right | 10:09 | |
if the class is a CPPStruct | |||
RabidGravy | yeah, but then you have to name your class like the C++ class and namespace and in this case it is ugly | 10:11 | |
10:12
pierre-vigier left,
pierre-vigier joined
|
|||
gfldex | are there any tests for the MOP? | 10:12 | |
RabidGravy | i.e the C++ is "namespace soundtouch { class SoundTouch { ... } }" | ||
so it works if I have "module soundtouch { class SoundTouch is repr('CPPStruct') { ... }}" but eugh | 10:14 | ||
nine | Is anyone here who managed to package rakudo and/or panda for a distribution? | ||
10:14
Sqirrel_ joined
10:15
rindolf joined
|
|||
RabidGravy | so you can put "is symbol('soundtouch::SoundTouch')" on the CPPStruct and it will use that instead of the package name | 10:17 | |
10:17
talexb__ joined
10:18
Sqirrel left
|
|||
FROGGS | RabidGravy: no, an 'is symbol' trait is not (yet) supported on classes | 10:19 | |
10:20
talexb_ left,
secwang_ joined
10:21
secwang left
10:24
leont left
|
|||
FROGGS | gfldex: that might be a starting point: gist.github.com/FROGGS/1a5122a8db23a49d128b | 10:24 | |
10:27
_mg__ left
10:28
virtualsue joined
10:31
lnrdo left,
lnrdo joined
|
|||
gfldex | can i import a symbol with an aliased name? | 10:34 | |
FROGGS | gfldex: not yet implemented sadly | 10:40 | |
gfldex | there goes my workaround :( | 10:41 | |
moritz | nine: pre-curli, yes | ||
star is such a distribution | 10:42 | ||
nine | moritz: it's post-curli that gives me a headache :) | ||
I fear that all distributions people have so far created packages for use some chroot trickery during package build. openSUSE doesn't. | 10:44 | ||
But if the others don't either, I'd really like to know how people solved the problems with absolute paths in precomp .deps files | 10:45 | ||
gfldex | nine: some archlinux guy wrote here he uses chroot | 10:46 | |
10:47
araujo joined,
araujo left,
araujo joined,
araujo left,
virtualsue left
10:48
araujo joined,
araujo left,
araujo joined
|
|||
nine | I know we added RAKUDO_PREFIX for packaging and the docs say: "This is intended as an escape hatch for build-time bootstrapping issues, where Rakudo may be built as an unprivileged user without write access to the runtime paths in NQP's config." | 10:48 | |
But I can't figure out how this solves the problem with the absolute paths. | |||
My guess is: it doesn't and the non-chroot packages built so far carry the same bug. | |||
10:49
araujo left
10:50
araujo joined
|
|||
RabidGravy | FROGGS, I know :) I was proposing to make it but worded in such a way that anyone who was more motivated could leap in and do so before I did :) | 10:51 | |
FROGGS | aha! | ||
:D | |||
10:52
araujo left,
araujo joined,
araujo left,
araujo joined
10:54
araujo left
|
|||
gfldex | m: use MONKEY-TYPING; role R {}; augment role R { method m(){} } | 10:59 | |
camelia | rakudo-moar d1ff73: OUTPUT«5===SORRY!5=== Error while compiling /tmp/nNvF99UZjiCannot augment R because it is closedat /tmp/nNvF99UZji:1------> 3MONKEY-TYPING; role R {}; augment role R7⏏5 { method m(){} } expecting any of: generic role» | ||
grondilu | m: use MONKEY-TYPING; augment class Int { method foo { say "bar" } }; 3.foo | 11:00 | |
camelia | rakudo-moar d1ff73: OUTPUT«bar» | ||
grondilu | m: role R {}; { use MONKEY-TYPING; augment role R { method foo { say "bar" } } }; R.foo | 11:01 | |
camelia | rakudo-moar d1ff73: OUTPUT«5===SORRY!5=== Error while compiling /tmp/glz6fuhJhyCannot augment R because it is closedat /tmp/glz6fuhJhy:1------> 3 {}; { use MONKEY-TYPING; augment role R7⏏5 { method foo { say "bar" } } }; R.foo expecting any of: gen…» | ||
11:01
brrt left
|
|||
grondilu | m: class C {}; { use MONKEY-TYPING; augment class C { method foo { say "bar" } } }; C.foo | 11:02 | |
camelia | rakudo-moar d1ff73: OUTPUT«bar» | ||
11:02
znpy joined
11:04
n0tjack joined
|
|||
DrForr | Are people planning to be around the day or two before FOSDEM or after? | 11:06 | |
11:08
n0tjack left
|
|||
FROGGS | grondilu: I guess it is this one: github.com/rakudo/rakudo/commit/09...68db03604e | 11:09 | |
lizmat | DrForr: we'll be arriving on Fri and probably leaving late Sun | 11:10 | |
llfourn | so is it META.info or META.json? | 11:11 | |
(or either) | |||
DrForr | lizmat: Good to know, especially since I want to hook up with you so I can get my game collection back :) | ||
RabidGravy | llfourn, META.info or META6.json I think | 11:12 | |
llfourn | RabidGravy: thanks! | ||
RabidGravy | Oooh, applying a role which has a "public" attribute to a ClassHOW I get "Method 'declares_method' not found for invocant of class 'NQPClassHOW'" which I guess is from Attribute.compose | 11:15 | |
bug or PEBKAC? | 11:17 | ||
dalek | c: 9a28a00 | lizmat++ | doc/Language/unicode_texas.pod: Add τ and π, fix table formatting |
||
moritz | m: constant t = Int.^HOW but role { }; | ||
camelia | rakudo-moar d1ff73: OUTPUT«5===SORRY!5=== Error while compiling /tmp/E2wlB1spDDCannot use .^ on a non-identifier method callat /tmp/E2wlB1spDD:1------> 3constant t = Int.^HOW7⏏5 but role { }; expecting any of: method arguments» | ||
moritz | m: constant t = Int.HOW but role { }; | 11:18 | |
camelia | rakudo-moar d1ff73: OUTPUT«5===SORRY!5=== Error while compiling /tmp/p6RPcYr4wHAn exception occurred while evaluating a constantat /tmp/p6RPcYr4wH:1Exception details: 5===SORRY!5=== Error while compiling  Method 'package' not found for invocant of class 'NQP…» | ||
moritz | RabidGravy: seems that mixing Perl 6 roles into NQP classes doesn't work at all | ||
RabidGravy: a saner approach is to inherit from ClassHOW; or is that what you're doing alreday? | 11:19 | ||
arnsholt | Yeah, NQP and Perl 6 classes have completely different HOWs, so that sounds painful, yeah... | 11:21 | |
11:21
araujo joined
|
|||
RabidGravy | well I'm trying to do: | 11:21 | |
m: role Bar { has Str $.bar; }; sub trait_mod:<is> (Mu $t, Str :$bar!) { $t.HOW does Bar; $t.^native_symbol = $bar; }; class Foo is bar('goo') { } | 11:22 | ||
camelia | rakudo-moar d1ff73: OUTPUT«5===SORRY!5=== Error while compiling /tmp/93s31yikZ8Method 'declares_method' not found for invocant of class 'NQPClassHOW'at /tmp/93s31yikZ8:1» | ||
Zoffix pets the robot | |||
yoleaux | 07:55Z <stmuk_> Zoffix: this is an odd one :) par.perl.org/ | ||
Zoffix | Weird | ||
moritz | RabidGravy: uhm, that sounds *very* dangerous | 11:24 | |
RabidGravy | which is kind of the only way I can think of adding "is symbol" to classes for the suppport of weirdly namespaced C++ classes | 11:25 | |
11:25
molaf joined
|
|||
moritz | RabidGravy: the MOP is allowed to have only one meta class instance for several types (to support prototype-style OO, for example) | 11:25 | |
RabidGravy: so mixing into a meta object might cause *all* types of that kind to get the new behavior | 11:26 | ||
Zoffix | stmuk_, seems to be an Apache mod_rewrite. A change I make on perl6.org is instantly visible on par.perl.org | 11:27 | |
moritz | RabidGravy: you could either create a new HOW type (much like GrammarHOW extends ClassHOW to add some functionality), or keep a global-ish object hash from type to native symbol name | ||
nine | Zoffix: no rewrite necessary: par.perl.org is an alias for par.perlcabal.org. par.perlcabal.org has address 213.95.82.53 perl6.org has address 213.95.82.53 | 11:28 | |
11:29
joydo joined
|
|||
dalek | href="https://perl6.org:">perl6.org: d0be197 | (Zoffix Znet)++ | source/downloads/index.html: Fix markup alignment / Modules box placement |
11:30 | |
kudo/nom: 4b443f2 | lizmat++ | src/core/Pair.pm: Make sure we can flatten a Pair with a non-Str key Changes the output of 'say |(42 => 42)' from: This type cannot unbox to a native string to: Unexpected named parameter '42' passed |
11:31 | ||
Zoffix | nine, that's really weird. I'd think par.perl.org was about the par project. That whole "compile your perl script" | ||
RabidGravy | Hmm. let's have a poke around and see if there's anything else that does something similar | 11:32 | |
11:33
xpen left
|
|||
dalek | href="https://perl6.org:">perl6.org: 4dcf169 | (Zoffix Znet)++ | / (2 files): Fix markup errors |
11:33 | |
11:34
adhoc left
|
|||
dalek | href="https://perl6.org:">perl6.org: f9dd2f4 | (Zoffix Znet)++ | source/downloads/index.html: Use consistent markup |
11:35 | |
11:35
_mg_ joined,
adhoc joined
|
|||
daxim | Zoffix, I want to possibly reopen github.com/perl6/doc/issues/286 1. default key for me is RShift+RCtrl, for you AltGr+Shift - which one is correct? 2. we should provide an XCompose file with all Perl6 and their texas mnemonics for key sequences input so that each user does not need to tediously configure it for himself, and every user gets the same key sequences | 11:37 | |
what do you think? | |||
Zoffix | +1 | ||
And well-volunteered! :D | 11:38 | ||
daxim | okay, let's first figure out why it's AltGr for you. do you get ™ when you type AltGr+Shift+8? | 11:39 | |
11:40
LeoNerd joined
|
|||
LeoNerd | I'm told here's the place to come to talk to the FOSDEM/perl organisers..? | 11:40 | |
lizmat | m: my int $a = -10; say $a % 12 # wrong | ||
camelia | rakudo-moar d1ff73: OUTPUT«-10» | ||
LeoNerd | Ah - hi lizmat :) | ||
lizmat | m: my Int $a = -10; say $a % 12 # right | ||
camelia | rakudo-moar d1ff73: OUTPUT«2» | ||
Zoffix | daxim, I just put whatever nemo gave me. I redefined my compose to right Windows key | ||
arnsholt | RabidGravy: Sounds like maybe what you what it to modify the WHAT, not the HOW? | 11:41 | |
Zoffix | And I get nothing for Compose+Shift+8 | ||
oh, maybe I should be... it's broken again -_- | |||
lizmat | LeoNerd: possibly, woolfy is offline atm, but if you have a proposal, you could gist it and let me know where to find it | ||
LeoNerd | Oh, not as such. More just wondering how full the schedule is looking currently. If you're short on speakers I could submit something, but I'm not -oooverly- keen ;) | 11:42 | |
Zoffix | oh, fixed.. No nothing for that sequence. I do get ⁸ with Compose+^+8 tho | ||
LeoNerd | If you've got plenty then I won't mind | ||
lizmat | LeoNerd: I think there's no shortage of proposals, afaik | ||
LeoNerd | Ah OK.. then I'll sit this one out and just listen for a change ;) | 11:43 | |
RabidGravy | arnsholt, in the case of a class trait wouldn't the WHAT be the same as the type that is passed as the first argument? | 11:44 | |
or maybe I'm missing some subtlety | |||
nine | The results of the past 3 hours: precompilation at install time is almost impossible to combine with distribution provided module packages | ||
daxim | tell nemo: re m8y.org/tmp/perl6.txt default key for me is RShift+RCtrl, for you AltGr+Shift - which one is correct? | ||
how do I use the tell bot? | 11:45 | ||
arnsholt | RabidGravy: Yeah, probably | ||
moritz | daxim: .tell somebody text here | ||
daxim | .tell nemo: re m8y.org/tmp/perl6.txt default key for me is RShift+RCtrl, for you AltGr+Shift - which one is correct? | ||
yoleaux | daxim: What kind of a name is "nemo:"?! | ||
arnsholt | Oh, but you're trying to do an is trait on a class? I'm not sure if that's possible | ||
daxim | .tell nemo re m8y.org/tmp/perl6.txt default key for me is RShift+RCtrl, for you AltGr+Shift - which one is correct? | ||
yoleaux | daxim: I'll pass your message to nemo. | ||
arnsholt | Since the is syntax is already used for inheritance | ||
LeoNerd | OK, thanks lizmat - I'll leave you to it :) | 11:46 | |
11:46
LeoNerd left
|
|||
RabidGravy | oh it works fine, 'is' inheritance is just a trait that does add_parent or something to the class | 11:46 | |
HOW that is | |||
arnsholt | Ah, cool | ||
11:47
pierre-vigier left
|
|||
Zoffix | m: my Int $y = 10; my int $x = -10; $x % $y == $x - floor($x / $y) * $y | 11:47 | |
camelia | rakudo-moar d1ff73: OUTPUT«WARNINGS for /tmp/PUUh8TSrZ0:Useless use of "==" in expression "% $y == $x -" in sink context (line 1)» | ||
Zoffix | m: my Int $y = 10; my int $x = -10; say $x % $y == $x - floor($x / $y) * $y | ||
camelia | rakudo-moar d1ff73: OUTPUT«True» | ||
11:48
adhoc left
|
|||
Zoffix | m: my Int $y = 10; my int $x = -10; say floor($x / $y) * $y | 11:48 | |
camelia | rakudo-moar d1ff73: OUTPUT«-10» | ||
dalek | kudo/nom: d80c728 | lizmat++ | src/core/Date.pm: At least temporary fix for RT #127161 Which is really caused by RT #127168 |
11:51 | |
11:52
secwang_ left
|
|||
nine | New conclusion: precompilation is impossible to combine with distribution provided module packages | 11:53 | |
dalek | ast: 233d409 | lizmat++ | S32-temporal/Date.t: Unfudged now passing tests for RT #127161 |
11:54 | |
lizmat | nine: :-( | ||
sergot | m: use File::Find; | 11:55 | |
camelia | rakudo-moar 4b443f: OUTPUT«===SORRY!===Could not find File::Find in: /home/camelia/.perl6/2015.12-99-g4b443f2 /home/camelia/rakudo-m-inst-1/share/perl6/site /home/camelia/rakudo-m-inst-1/share/perl6/vendor /home/camelia/rakudo-m-inst-1/share/perl6 Co…» | ||
11:55
znpy left
|
|||
sergot | when File::Find is installed it seems to crash p6 programs with "P6M Merging GLOBAL symbols failed: duplicate definition of symbol Find" | 11:56 | |
nine | Our architecture assumes that we can write to the installation repository and can recompile modules at will while distro packages really only want to copy files. | ||
arnsholt | nine: Why is that? | ||
Ah, right | |||
sergot | hmm, maybe not... | 11:58 | |
nine | sergot: that has been fixed in rakudo nom and current panda | ||
Considering that the precompiled files in the install repository are usually never even used (because the home repository is first in the chain), I'm quite tempted to rework this architecture...again. | 12:00 | ||
I sometimes think that doing a hackathon for this may be the best way to finally nail it. | 12:01 | ||
lizmat | maybe we should organize something before FOSDEM? | 12:02 | |
12:02
bpmedley left
|
|||
nine | lizmat: the coming weekend is the only one before FOSDEM where I'd have time | 12:03 | |
And jnthn is not even back in busineess yet (will reappear presumably next week) | |||
12:07
Skarsnik joined
|
|||
Skarsnik | Hello | 12:07 | |
12:09
pmurias joined
|
|||
DrForr | Afternoon. | 12:09 | |
sergot | nine: thanks | 12:12 | |
12:12
vividsnow left
|
|||
sergot | nine: I updated rakudo, but forgot about panda | 12:12 | |
12:12
vividsnow joined
12:13
pierre-vigier joined
12:14
pierre-vigier left
12:17
joydo left
12:19
bioexpress joined
12:20
bioexpress left,
_mg__ joined,
cognominal left
12:21
cognominal joined
12:22
_mg_ left,
_mg__ is now known as _mg_
|
|||
dalek | c: 35bf77f | RabidGravy++ | doc/Type/Blob.pod: Mark unpack and pack as experimental Closes #317 |
12:22 | |
12:22
lnrdo left,
lnrdo joined
12:23
Sqirrel_ left,
g4 left
12:25
zakharyas left,
dakkar joined,
kid51 joined
|
|||
pmurias | nine: you mean it's impossible to combine precompilation in it's current form or in general? | 12:25 | |
nine | pmurias: in its current form | 12:26 | |
12:26
vividsnow left
12:27
vividsnow joined
|
|||
nine | The best I can think of while keeping the current architecture is splitting install and recompilation and do the recompilation in a postinstall-script. | 12:27 | |
RabidGravy | I was just going to say something to that effect | ||
nine | The devil is as always in the details. And there are so many different use cases with their very own details connected to all of this | 12:28 | |
12:29
vividsnow left
|
|||
pmurias | nine: is there a description of how precompilations works other than the source code? | 12:30 | |
12:31
vividsnow joined
12:33
lnrdo_ joined
12:35
lnrdo left,
skids joined
12:36
_mg__ joined
12:37
lnrdo joined
|
|||
nine | pmurias: docs/module_management.md | 12:37 | |
12:38
lnrdo_ left
12:39
_mg_ left,
_mg__ is now known as _mg_
12:41
kid51 left
12:42
lnrdo left
12:47
skids left
|
|||
sergot | is there any documentation for "special" variables, like $*CWD? | 12:48 | |
12:48
nige1 left
|
|||
RabidGravy | doc.perl6.org/language/variables#Sp..._Variables :) | 12:49 | |
sergot | thanks RabidGravy++ I didn't know how to type it into the searchbox | ||
probably, just variables or so | |||
RabidGravy | I think perhaps in the fullness of time that stuff should go in its own document so they can be expanded upon | 12:50 | |
12:51
nige1 joined
12:57
pmurias left
|
|||
pnu | can someone please check this: github.com/tadzik/panda/pull/285 | 12:58 | |
RabidGravy | pnu, looks reasonable to me | 13:00 | |
nine | pnu: merged it | 13:02 | |
pnu | nine: ok, thanks.. I'm adding perl6 support (from my heroku-buildpack-rakudo) to the generic perl buildpack and this was blocking it. | ||
13:03
iH2O joined
|
|||
tadzik | pnu++ | 13:05 | |
good catch | |||
13:07
zakharyas joined
13:09
lichtkind joined
13:11
iH2O left
|
|||
Peter_WR | Does anyone know if there will be any Perl 6 talks at FOSDEM? | 13:11 | |
nine | There will be | ||
El_Che | Peter_WR: 100% sure there will be :) | 13:12 | |
_nadim | Good day! | ||
Is ther sometihing brewing in the IPC/serialization, distrbution side? | 13:13 | ||
RabidGravy | wahay! "*** Error in `/home/jonathan/.rakudobrew/moar-nom/install/bin/moar': corrupted double-linked list: 0x000000000420f020 ***" | ||
Ulti | o___O | 13:14 | |
|Tux| | RabidGravy, utf8-c8? | ||
RabidGravy | not entirely sure, this was just "say" on a "const char *" returned from a C++ method | 13:16 | |
oh weird, on a second and subsequent run it doesn't do that | 13:17 | ||
13:17
_mg_ left
|
|||
RabidGravy | and actually works and everything | 13:17 | |
Skarsnik | can you write doc on c++ nc support if you feel like? x) | 13:21 | |
13:21
kaare_ joined
|
|||
RabidGravy | oh, no it does it every once in a while | 13:21 | |
13:21
pmurias joined
|
|||
pmurias | nine: making recompilation integrate with npm seems like it will be a bit tricky | 13:22 | |
13:22
asie left,
_mg_ joined
13:24
asie joined
13:27
_Vi joined,
zakharyas left
|
|||
dalek | kudo/nom: 75c6b9e | lizmat++ | src/core/Dateish.pm: Make Date/DateTime.new(years => 10) fail less LTA Cannot call DateTime.new with these named parameters: years As a reaction to RT #127162 |
13:27 | |
13:29
zakharyas joined,
Perl6IRC left
13:31
pierre-vigier joined
13:33
lnrdo joined
13:34
znpy joined
13:40
xinming joined
13:42
sammers left
13:43
xinming_ left,
xpen joined
13:45
woolfy joined,
xinming left
|
|||
AlexDaniel | lizmat: thanks for your work | 13:45 | |
13:46
xinming joined
13:47
lnrdo_ joined,
lnrdo left
|
|||
lizmat | commute to Amsterdam& | 13:49 | |
13:49
lizmat left
|
|||
dalek | rl6-roast-data: 8eff548 | coke++ | / (7 files): today (automated commit) |
13:51 | |
13:52
araujo left
13:53
sammers joined
13:54
sprocket_ joined
13:58
woolfy left
14:00
araujo joined,
araujo left,
araujo joined,
araujo left
|
|||
pmurias | Rotwang: I consider build scripts simply horrible, luckily automatic compilation in the modern languages is slowly getting rid of them | 14:04 | |
profan | ^ god bless progress | 14:05 | |
nine | pmurias: embrace the Makefile! | ||
[Coke] | wow, turning on pygmentize slows down the doc build by a LOT. | 14:07 | |
[Coke] looks forward to the next Perl 6 event hosted in the tri state area. | 14:08 | ||
abraxxa | anyone fancy looking at RT#127001? | ||
[Coke] | . o O ( where I will reveal my latest invention, the Gramminator! ) | ||
RT#localhost | |||
abraxxa | [Coke]: yes ;) | ||
RT#::1 | 14:09 | ||
[Coke] | FYI, that ticket is about nativecall types. | ||
pmurias | nine: great idea, we can just embrace the Makefiles and make precompilation manual, things will be so much easier ;) | 14:10 | |
14:11
sprocket_ left
|
|||
nine | Manual precompilation! A stroke of genius! | 14:11 | |
tadzik | abraxxa: it sounded like a name of a conference :) | 14:12 | |
abraxxa | tadzik: that's localhost in IPv6 | ||
nine: why would you precompile a manual? :P | |||
tadzik | abraxxa: oh, I was talking about the former, and in the context of your question :) | 14:13 | |
14:14
rindolf left
|
|||
RabidGravy | Hmm so I get that MoarVM panic from even just instantiating a CPPStruct just a lot less frequently | 14:16 | |
masak | "Though we continue to invest in Angular 1, we've pushed the features possible within its architecture about as far as we can. Angular 2 represents growth in capabilities." -- the analogy ng1:ng2::p5:p6 continues | 14:17 | |
Skarsnik | RabidGravy, I had the idea of having some debug trace for what was NC related. maybe it can be useful to catch bugs/weird stuff? any thought x) | 14:22 | |
RabidGravy | in this case I don't think it would help as moar is getting into a tizz when it tries to Free some memory | 14:28 | |
but go for it | |||
but I think I know what it is, the native size of my CPPStruct is 48 and sizeof(soundtouch::SoundTouch) is 64 | 14:29 | ||
abraxxa | no precompilation; in StatementHandle.pm6 IS a workaround for RT#127001 | ||
14:29
sftf joined
|
|||
abraxxa | i'm using that for now so I can continue on DBDish::Oracle until it's fixed | 14:30 | |
Skarsnik | Oo | ||
sergot | To module makers: I've just created a tool that generates META.info for you, also (To everyone)it can install every dependency when you work on an existing project. Here it is: github.com/sergot/bamboo --- feedback very appreciated, please :)) | ||
14:30
rindolf joined
|
|||
sergot | if you run the tool after writing some code and before publishing it to github - it generates "depends" and "provides" section for you | 14:31 | |
Skarsnik | I think autarch and some people are working on an module authoring tool | ||
Ah that nice :) | |||
nine | I thought panda can do the same? | ||
sergot | no way, really? :)))) | ||
maybe it does, I wasn't awere of this | |||
Skarsnik: module authoring tool, what do you mean? | 14:32 | ||
nine | panda gen-meta and panda installdeps | ||
Skarsnik | stuff to handle work on modules, generate basic files, generate meta.. stuff like that? | 14:34 | |
sergot | yeah, installdeps I know, didn't hear about gen-meta | ||
14:35
Peter_WR left
14:36
Melezhik joined
|
|||
sergot | I'm not sure if gen-meta works the same tho | 14:36 | |
:) | |||
14:36
sprocket_ joined
|
|||
Melezhik | Hi ! Happy new year to all. A little question about perl6. If perl6 has something similar to "do 'file.pl' " in perl5 ? | 14:38 | |
Skarsnik | what do 'file.pl' does? | ||
nine | Melezhik: it does: EVALFILE. But why would you need that? | 14:39 | |
DrForr | Most times that people think they want "do 'file.pl'" they're after a configuration system, for which a module is usually more appropriate. | ||
nine | Especially in a language with such great parsing capabilities as Perl 6 | ||
DrForr | If you want to load functions from that file, then just like in Perl 5, what you usually want to do is create your own module and export functions. | 14:40 | |
Juerd | Yet most of the time when I needa configuration system, I chose Perl ubiquitous, and I don't want to install *any* configuration module because they're not quite as ubiquitous as Perl itself. | ||
RabidGravy | sergot, I made github.com/jonathanstowe/META6 if you don't want to track the META spec yourself ;-) | ||
Juerd | So I've used "do FILE" a lot, for configuration. | ||
Especially because my %config = do 'config.pl'; is nice. | |||
No module gets such a simple syntax. And it's great that you can use things like 24 * 60 * 60 in a config file. Somewhat more self-documenting than 86400. | 14:41 | ||
Melezhik | Yeah, thanks, guys. My code is based on do " /path/to/file" - perldoc.perl.org/functions/do.html , to unconditionally execute the same piece of code which located at file . | 14:42 | |
Juerd | So I disagree that config should always be done with a module. Something (I don't know what, yet) in the core will be good enough, and I'll use that instead :) | ||
nine | Juerd: as long as you are the only users, that may be enough. As a user who had to deal with "configuration" files in Erlang and PHP, I really don't consider this friendly | ||
Melezhik | I do not need export or something like that, just to execute the same code in main process, without forking | ||
Juerd | nine: I keep them pure k/v lists. | 14:43 | |
nine | Melezhik: what kind of code is in this file? | ||
Melezhik | And that is what do file in perl5 does exactly | ||
Perl code | |||
Juerd | Melezhik: EVALFILE does this. | 14:44 | |
1;0 juerd@cxie:~$ echo "foo => 'bar'," > config.p6 | |||
1;0 juerd@cxie:~$ perl6 -e'my %config = EVALFILE "config.p6"; say %config<foo>' | |||
bar | |||
14:44
virtualsue joined
|
|||
Melezhik | I mean perl5 'require' is not enough . Yeah Juerd, I got it, thanks! | 14:44 | |
nine | Melezhik: I know that it's Perl code. But what does this code do? | 14:45 | |
RabidGravy | Juerd, didn't that ask you for a "MONKEY-SEE-NO-EVAL" ? | ||
Juerd | RabidGravy: No, that would be weird. | 14:46 | |
Melezhik | Nine, call some routines, end call some others ' do's | ||
Juerd | RabidGravy: MONKEY-SEE-NO-EVAL is for EVAL with interpolation | ||
nine | Melezhik: ok, I'll phrase it differently: why can't you move this code into a proper module? | ||
RabidGravy | but you've got even less control over what might be in a file | ||
Juerd | RabidGravy: That's not unlike 'require'. | 14:47 | |
Melezhik | Nine, because this is type of code which is better to not keep as module, at least at current design | ||
nine | Melezhik: I'm really curious. I can't imagine any code that's not suitable for a module but needs to be EVALFILEd | ||
pmurias | nine: it will be interesting to try to combine precompilation with npm ;) | 14:48 | |
Juerd | nine: Configuration and simple few-line plugins are my use cases | ||
nine | pmurias: does npm support post-install scripts? | ||
Melezhik | Nine, I know this sounds weird a :))) , still it sounds weird for me too! | ||
Juerd | nine: I have some daemons that execute some code when specific events happen. I want that compiled and executed only once each time. | 14:49 | |
nine | Melezhik: then probably it _is_ weird and you should re-think your architecture. | ||
Juerd | The daemons have lots of startup overhead and I want to change what happens during runtime. | ||
RabidGravy | anyway, I'm beginning to regret trying to bind this C++ library, I've found the missing 16 bytes it's in the privates of the superclass | ||
Juerd | nine: I do similar things with Irssi, to use it as an IRC bot. | ||
Skarsnik | RabidGravy, oh you get struct size issue? | 14:50 | |
Melezhik | Say I have an abstract legal code, which I want to be executed upon some conditions. And this is not only functions and methods calls | ||
nine | Juerd: if you need to reduce overhead, you _have_ to do it as proper modules, so you can benefit from precompilation. And there's nothing keeping you from requireing modules at run time. Requireing a second time won't load them again. | ||
Melezhik | I mean Perl code, not legal | ||
Juerd | Okay, granted, I'm not using 'do' here: juerd.nl/i/f91fea75500b5766e65d8c5448a670fd.png | ||
Melezhik | It was a typo , sorry | 14:51 | |
RabidGravy | well a CPPStruct, "class SoundTouch : public FIFOProcessor" the missing 16 bytes are FIFOProcessor | ||
Juerd | nine: Read what I said again. | ||
nine: I do need them to be loaded again. | |||
pmurias | nine: it seems to | ||
14:51
peter__ joined
|
|||
RabidGravy | I foresee goat sacrificing | 14:51 | |
Juerd | nine: I don't see why you're not a fan of timtowtdi anymore :P | 14:52 | |
Skarsnik | do a RT? | ||
pdcawley | m: sub foo {...} sub bar {...} | ||
camelia | rakudo-moar 75c6b9: OUTPUT«5===SORRY!5=== Error while compiling /tmp/pnpUyxjFBsStrange text after block (missing semicolon or comma?)at /tmp/pnpUyxjFBs:1------> 3sub foo {...}7⏏5 sub bar {...} expecting any of: infix infix stopper …» | ||
Melezhik | Modules are fine if code you want to reuse is "packed" in functions and methods, but if this is just a code you need to execute repeteously upon some conditions, modules are not fine for this | ||
pdcawley | Right... More repl hackery needed then... | 14:53 | |
sftf | I agree with Juerd: does not require write your own parser each time since perl parse and create data structures for you, does not require manipulate @INC to load the module from somewhere, the freedom of action in the "configuration" file... | ||
Juerd | Melezhik: I agree completely. Sometimes even writing "sub ... { ... }" around the code is simply too ugly. | ||
[Coke] | is "C<=>>" properly rendered in html as <code>=</code>> ? | ||
nine | Melezhik: why wouldn't modules be fine for this? I can execute a sub repetously upon some condition just fine. | ||
Juerd | nine: Because that requires extra code that distracts | 14:54 | |
nine: pastebin.com/Fjj4tPx0 | |||
[Coke] | nine: I agree with you, but this is a matter of taste, I think. | ||
Juerd | nine: This irc bot has a few dozen of such small files. Could be modules but I don't want them to be. | ||
The great upshot is that now, even unexperienced Perl programmers will write commands for this bot | 14:55 | ||
pdcawley | "sub foo {...}\\\nsub bar {...}\n" collapses to 'sub foo {...} sub bar {...}' which fails to parse. Need to reinstate the \n | ||
Juerd | And if one tiny file fails to compile, the rest keeps working | ||
And it'll just be loaded again when it's needed again, so that's great for ad-hoc development | |||
14:55
peter__ left
|
|||
Juerd | No need to reload the bot | 14:55 | |
14:56
peter__ joined
|
|||
Melezhik | yeas, exactly as Juerd told sometimes I do not want to force people to write code via functions or methods, I want that people just write a code, because these files are kind of public stuff, which everyone could write | 14:56 | |
sftf | Where is documentation about EVALFILE on doc.perl6.org/ ? | ||
Juerd | This approach is great for when you have a long living daemon and want people to work on different parts of the runtime execution. | ||
Melezhik | All I I can do with them is to execute , that is it | ||
Juerd | It's completely unacceptable to have a syntax error break the long living daemon. | 14:57 | |
So it must be eval'ed | |||
It's also slightly unwanted to have 'sub main { ... }' or something like that in every file. | |||
This structure encourages having lots of tiny files that don't try to interact with eachother. | |||
In any case, if I wanted a programming language that prescribed what I should and shouldn't do, I'd probably use Python :) | 14:59 | ||
abraxxa | Skarsnik: can you please take a look at my DBIish fork repo can the test changes I made in 99-common.t? | ||
nine | and have no proper interface at all and are written to a precise implementation | ||
Juerd | Fortunately, Perl 6 probably has everything I need, just like Perl 5. | 15:00 | |
Melezhik | <Juerd> you sure on my way :)))) | ||
Juerd | I'm just afraid that I'll get used to Perl 6 even more, and will get frustrated with 5 for dayjob code. | ||
Skarsnik | abraxxa, I think the is-deeply not working came form NC giving sometime str with the explicitlymanaged role | ||
abraxxa | Skarsnik: ah! | ||
15:00
sprocket_ left
|
|||
abraxxa | Skarsnik: I'd change the test to explicitly test the type and value of each column | 15:01 | |
instead of testing the whole struct | |||
Skarsnik | gist.github.com/Skarsnik/7f2fee97d56c5acc1587 | ||
abraxxa | OR change the expected struct to match what's returned | ||
15:02
znpy left
|
|||
Skarsnik | expect/got is inverted x) | 15:02 | |
Melezhik | Juerd, thanks lot, again will take a look at evalfile | ||
Skarsnik | but you get the idea | ||
15:02
FROGGS left
|
|||
abraxxa | Skarsnik: where does that output come from? | 15:02 | |
Skarsnik | Data::Dump | 15:03 | |
Juerd | Melezhik: nine suggested EVALFILE | ||
abraxxa | we should return Str instead of the NativeCall-roled ones | ||
nice format | |||
Juerd | Melezhik: I just checked whether it would do what you wanted | ||
Skarsnik | abraxxa, it's kind of related to that: github.com/perl6/DBIish/issues/44 | ||
15:05
n0tjack joined
|
|||
abraxxa | Skarsnik: yeah, I've read that | 15:05 | |
Skarsnik | abraxxa, you can write mycroutine().Str to get a Str copy probably | ||
abraxxa | the NativeCall docs are missing what happens with the memory after you mark a Str as explicitly-managed | ||
Skarsnik | The gc does nothing with it | ||
abraxxa | how can it be freed then? | 15:06 | |
is there a free($exp-managed-str) function? | |||
Skarsnik | I am not even sure if that could not lead to some weird leak, like the c memory is free but the perl6 part that describe the Str is not freed | 15:07 | |
It count on the lib offering something to free these data | |||
[Coke] opens a LHF doc ticket: github.com/perl6/doc/issues/318 | |||
Skarsnik | like mysql free what it give you when you call mysql_finish | 15:08 | |
15:09
bpetering joined,
Melezhik left,
n0tjack left
|
|||
Skarsnik | what did you change in 99.t? aside the magic_cmp that seem weird | 15:09 | |
15:10
skids joined
|
|||
abraxxa | I've added two new records, one only with an integer, one only with a float | 15:10 | |
this had an impact on all tests after that | |||
and I've changed the comparisons regarding types & values | |||
bpetering | .tell timotimo I don't know about keccak in Perl 6 yet, but in addition to libgit2 I'm working on bindings for libsodium, which lets you do more modern hashing | 15:11 | |
yoleaux | bpetering: I'll pass your message to timotimo. | ||
RabidGravy | yep getting size of the CPPStruct right prevents the panic :) | ||
Skarsnik | RabidGravy, how did you do that? x) | ||
RabidGravy | find the superclasses definition, add a new class with their member variables and inherit from it :) | 15:13 | |
Skarsnik | abraxxa, all the fetch_ returns Str value on all the other drivers | ||
yes, I think the cpp part of nc handle to herit other class x) | 15:14 | ||
dalek | c: 07feca7 | (Zoffix Znet)++ | doc/Language/subscripts.pod: Fix incorrect C<> escaping Fixes #318 |
||
abraxxa | Skarsnik: so only DBDish::Oracle returns what you've pasted? | ||
Skarsnik | there is a row and allrows method that return typed value, the fetch* are 'old' stuff to stay closed to p5 DBI | 15:15 | |
abraxxa | Skarsnik: i'd also like to discuss finish because I'd like to not expose it in the API but do it internally in the required places | ||
Skarsnik | *close | ||
RabidGravy | Skarsnik, yes it does and the previous crashy methods now work over many many iterations :) | 15:16 | |
abraxxa | imho that makes no sense | ||
Perl 6 is a new, incompatible programming language, why would it have the same API than DBI? | |||
Skarsnik | You are not forced to have them | 15:17 | |
15:18
xpen left,
lucasb joined
|
|||
Skarsnik | abraxxa, my issue with finish was like mysql free stuff on finish and if a copy of the data is not returned... it's not good x) | 15:19 | |
15:19
Ch0c0late joined
15:20
regreg joined
|
|||
lucasb | I came here just to bikeshed that S/// message :) | 15:21 | |
m: say 'foo' ~~ S/o+/oo/ | 15:22 | ||
camelia | rakudo-moar 75c6b9: 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/sGoxTuaW_Z:1 ------> 3say 'foo' ~~ 7⏏5S/o+/oo/True» | ||
TimToady | or with, assuming it's defined | ||
lucasb | well, that snippet just succeed and successfully matched | ||
abraxxa | Skarsnik: I'll try to fix the types for Oracle by returning copies | 15:23 | |
geekosaur | because it was a null change. but it has to be a short message, not a dissertation about how if it does succeed it's because it was a no-op | 15:24 | |
TimToady | hmm, shouldn't've matched, methinks | ||
oh, wait, it didn't change anything | |||
lucasb | yes, no change. | ||
TimToady | so yes, it can match, but rather uselessly | ||
lucasb | yes, uselessly. but sometimes I use 's/\s+/ /' to clean whitespace in files... | 15:25 | |
TimToady | but if it changes anything, it won't match | ||
smartmatch with a string is always an 'eq' | 15:26 | ||
lucasb | yes, agree with everything. I just thought the generalization 'can never succeed' was poor worded | 15:27 | |
TimToady | but the new message is more problematic in a different way | 15:28 | |
m: given "foo" { when S/o+/o/ { say "here" } } | |||
camelia | rakudo-moar 75c6b9: 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/U9ppRNVMKi:1 ------> 3given "foo" { when 7⏏5S/o+/o/ { say "here" } }» | ||
TimToady | it assumes use of ~~, and smartmatch is used lots more places than that | 15:29 | |
abraxxa | Skarsnik: interesting that the first Str isn't +{NativeCall::ExplicitlyManagedString} | ||
Skarsnik | I am not even sure why x) | ||
TimToady | lucasb: in that respect the old message was better | 15:30 | |
and you'll note my example *already* has a given, which is even more confusing... | 15:31 | ||
15:31
wamba left
15:32
user3 joined
|
|||
user3 | when is release 1.0 expected for the rakudo compiler? | 15:33 | |
TimToady | we don't count versions that way | ||
user3 | when is perl 6 release 1.0 expected? | ||
TimToady | we don't count versions that way! | ||
user3 | O_O | ||
abraxxa | user3: Perl 6.c has already been released, look at 'rakudobrew list-available' | ||
user3 | will you ever have a release 1.0 of some kind? | 15:34 | |
TimToady | we don't count versions that way!!!!! | ||
you can think of Perl 6c as 1.0 if you like | |||
you can think of rakudo 2015.12 as 1.0 if you like | |||
flussence | .oO( how do these people get here and completely miss the huge box at the top of the website? ) |
||
15:34
sjoshi left
|
|||
nine | flussence! | 15:35 | |
abraxxa | Skarsnik: I just saw that you test floats for Num, I've opted for Rat as that's what Perl 6 generates on my $foo = 4.85; | ||
flussence | nine! | ||
lucasb | yoleaux! | ||
yoleaux | lucasb! | ||
jast | flussence: to be fair, the box can still be interpreted as "this is not a really-for-real-release", since the versioning scheme can easily be taken for releases that are more ephemeral. the term "release" has been overloaded a lot by various projects, after all. | ||
user3 | ok, seriously i tend to shun color text (cuz its usually spamming) | 15:36 | |
ok | |||
Skarsnik | abraxxa, write 4.85e0 but as you can see I marked this test as todo because Num make probably more sense than Rat for float value. But Rat offer more precision probably | 15:37 | |
abraxxa | flussence: it's not large enough | ||
hoelzro | o/ #perl6 | ||
abraxxa | seriously | ||
Skarsnik | m: say Num ~~ Rat | ||
camelia | rakudo-moar 75c6b9: OUTPUT«False» | ||
nine | flussence: how did you solve the problem of absolute paths in .deps files in your rakudo package? | ||
15:37
araujo joined,
araujo left,
araujo joined
|
|||
abraxxa | the title is way larger | 15:37 | |
bpetering | user3: are there specific features you're looking for? | ||
Skarsnik | m: say Rat ~~ Num | ||
camelia | rakudo-moar 75c6b9: OUTPUT«False» | ||
jast | font-size: 5000em; | 15:38 | |
abraxxa | m: say Num ~~ Rat; | ||
camelia | rakudo-moar 75c6b9: OUTPUT«False» | ||
15:38
lnrdo_ left,
araujo left,
lnrdo joined
|
|||
flussence | nine: I... didn't actually do anything there beyond making all the fatal errors stop. Should I be worried? | 15:38 | |
nine | flussence: does your package build process use chroot? | 15:39 | |
flussence | nope, just a limited user | ||
nine | openSUSE's rpmlint notified me of BUILDROOT paths contained in installed files. They are contained in precomp files and their .deps files, so the out of date check for precomp files will not find the corresponding source files. | 15:41 | |
abraxxa loves {} to call functions/method inside of "" | |||
flussence | ohh... yeah, that might be a problem. | ||
lucasb | related to release confusion, I'm sorry to say this again, but I really think the rakudo tag 6.c should be removed. I saw a directory like ~/.perl6/v6.c-93-g812a48b scroll by somewhere, so some tool is not giving preference for 2015.12 style git tags | 15:42 | |
nine | flussence: I fear nothing short of a redesign will fix this | 15:43 | |
15:43
nige1 left,
n0tjack joined
15:44
user3 left
|
|||
lucasb | m: say True ~~ True | 15:44 | |
camelia | rakudo-moar 75c6b9: OUTPUT«True» | ||
lucasb | m: given True { when True {} } | ||
camelia | rakudo-moar 75c6b9: OUTPUT«Potential difficulties: Smartmatch against True always matches; if you mean to test the topic for truthiness, use :so or *.so or ?* instead at /tmp/wAv0uvlIPS:1 ------> 3given True { when 7⏏5True {} }» | ||
abraxxa | Skarsnik: i don't know why but the expected is really the one that containts the Str+{NativeCall::ExplicitlyManagedString} | ||
15:44
pwr joined,
Peter_WR joined
15:45
Peter_WR left,
pwr left
|
|||
lucasb | back to the smartmatch thing, why the message triggers with given/when but not with ~~ ? | 15:45 | |
TimToady | dunno | ||
15:45
Melezhik joined,
Peter_WR joined
|
|||
Skarsnik | abraxxa, displaying the @ref show NC stuff in it?! | 15:45 | |
abraxxa | Skarsnik: i've added diag Dump(@ref-aoh); after defining the array in line 221 and it dumps that | ||
lucasb | ah, ok. because you showed that the S/// is triggering with both constructs, and it should only trigger with ~~. (right?) | ||
TimToady | no, it *should* trigger on any smartmatch | 15:46 | |
abraxxa | Skarsnik: github.com/abraxxa/DBIish/blob/mas...n.pl6#L219 | ||
right after that statement | |||
lucasb | oh, yes. I confused myself. | ||
TimToady | m: say False ~~ False | ||
camelia | rakudo-moar 75c6b9: OUTPUT«False» | ||
abraxxa | haha | 15:47 | |
lucasb | the issue is with suggesting given when already using given | ||
Skarsnik | abraxxa, I don't even... | ||
nine | flussence: I'm currently testing a band aid of removing the precomp files after the build, so they won't get installed at all. They are pretty useless as-is anyway, even if the paths were correct. | 15:48 | |
15:48
kubrat joined
|
|||
Peter_WR | m: multi fib (0) { 0 } say fib 0; | 15:48 | |
camelia | rakudo-moar 75c6b9: OUTPUT«5===SORRY!5=== Error while compiling /tmp/uNKt89ZZ5mStrange text after block (missing semicolon or comma?)at /tmp/uNKt89ZZ5m:1------> 3multi fib (0) { 0 }7⏏5 say fib 0; expecting any of: infix infix stopper …» | ||
TimToady | lucasb: the fundamental problem is a semipredicate problem of distinguishing certain values as success/failure but not others | 15:49 | |
Peter_WR | m: multi sub fib (0) { 0 } say fib 0; | ||
camelia | rakudo-moar 75c6b9: OUTPUT«5===SORRY!5=== Error while compiling /tmp/A0GSTwCb1YStrange text after block (missing semicolon or comma?)at /tmp/A0GSTwCb1Y:1------> 3multi sub fib (0) { 0 }7⏏5 say fib 0; expecting any of: infix infix stopper…» | ||
15:49
khw joined
|
|||
Skarsnik | m: use NativeCall; my $str1 = "lol"; explictly-manage($str1); my Str $str2; my Str $str3; say $str3.^name; | 15:49 | |
camelia | rakudo-moar 75c6b9: OUTPUT«5===SORRY!5=== Error while compiling /tmp/dfLsk0GAa2Undeclared routine: explictly-manage used at line 1. Did you mean 'explicitly-manage'?» | ||
Skarsnik | m: use NativeCall; my $str1 = "lol"; explicitly-manage($str1); my Str $str2; my Str $str3; say $str3.^name; | ||
camelia | rakudo-moar 75c6b9: OUTPUT«Str» | ||
flussence | nine: couldn't it just omit the full path when writing a deps file in the same directory? | ||
TimToady | lucasb: in that sense, True/False and S/// are on opposite sides of the fence | ||
15:50
lnrdo left
|
|||
TimToady | because Bool always indicates success/failure, and strings never do | 15:50 | |
15:50
xpen joined,
lnrdo_ joined
|
|||
Skarsnik | m: use NativeCall; my $str1 = "lol"; explicitly-manage($str1); my $str2 = "bb"; my $str3 = "aa"; say $str3.^name; | 15:50 | |
camelia | rakudo-moar 75c6b9: OUTPUT«Str» | 15:51 | |
15:51
psy_ joined,
peter__ left
|
|||
AlexDaniel | Skarsnik: I have a problem with DBIish. I have a function that returns TABLE. However, when I try to fetch results from it I just get Str | 15:51 | |
Skarsnik: that is, all columns are smashed into a comma-separated string | |||
nine | flussence: in the .deps file we record the precomp id of a dependency and the path to the source file, so we can quickly check if the precomp file is out of date. The dependency may come from any repository, so nothing short of a full path will be enough to unambiguously locate the source file. | ||
15:51
lnrdo_ left
|
|||
dalek | p: ff1c436 | (Pawel Murias)++ | src/vm/js/ (10 files): [js] Use a Map instead of an Object to implement the nqp hash. This fixes a bug with using hasOwnProperty as a hash key. |
15:51 | |
Skarsnik | abraxxa, that make no sense, why string outside NC receive this the EM role | 15:52 | |
15:52
Melezhik left,
gregf_ left
|
|||
Peter_WR | m: multi sub fib(0) { 0 } say fib 0; | 15:52 | |
camelia | rakudo-moar 75c6b9: OUTPUT«5===SORRY!5=== Error while compiling /tmp/RHQQJ0q9EdStrange text after block (missing semicolon or comma?)at /tmp/RHQQJ0q9Ed:1------> 3multi sub fib(0) { 0 }7⏏5 say fib 0; expecting any of: infix infix stopper…» | ||
15:52
lnrdo_ joined
|
|||
Skarsnik | could it be the GC reusing a previous variable in a bad way? | 15:52 | |
Peter_WR | m: multi sub fib(0) { 0 }; say fib 0; | ||
camelia | rakudo-moar 75c6b9: OUTPUT«0» | ||
lucasb | TimToady++ thanks for clarifying. My brain needs some minutes to think :) | ||
nine | flussence: the only other solution I could think of is record an id of the repo that contains the source file + a relative source file path and for the repo id we could use a logical name like 'site' if there is any. That way we could move the site repo later on. | 15:53 | |
Peter_WR | m: multi sub fib(any(0,1)) { 0 }; say fib 0; | ||
camelia | rakudo-moar 75c6b9: OUTPUT«5===SORRY!5=== Error while compiling /tmp/aR6lxHvWTTInvalid typename 'any' in parameter declaration. Did you mean 'Any'?at /tmp/aR6lxHvWTT:1------> 3multi sub fib(any7⏏5(0,1)) { 0 }; say fib 0;» | ||
Skarsnik | AlexDaniel, seem fine, everything fall back to Str when 'unknow'. What is the TABLE type? | ||
nine | flussence: but building packages for modules will still not work because when installing a module to an Installation repo, we need to re-compile the reverse dependencies. | ||
15:53
virtualsue left
|
|||
flussence should go re-read how git's internals do things like this... | 15:54 | ||
abraxxa | Skarsnik: NativeCall isn't even loaded in 99-common.t | 15:55 | |
Peter_WR | m: multi sub fib($ where * < 2) { $_ }; say fib 0; | 15:56 | |
camelia | rakudo-moar 75c6b9: OUTPUT«(Any)» | ||
Peter_WR | m: multi sub fib($n where * < 2) { $n }; say fib 0; | ||
camelia | rakudo-moar 75c6b9: OUTPUT«0» | ||
Peter_WR | m: multi sub fib($n where * < 2) { $n }; say fib 1; | ||
camelia | rakudo-moar 75c6b9: OUTPUT«1» | ||
Peter_WR | m: multi sub fib($n where * < 2 && * >= 0) { $n }; say fib 1; | ||
camelia | rakudo-moar 75c6b9: OUTPUT«1» | ||
Peter_WR | m: multi sub fib($n where * < 2 && * >= 0) { $n }; say fib 2; | 15:57 | |
camelia | rakudo-moar 75c6b9: OUTPUT«2» | ||
AlexDaniel | Skarsnik: so I do 「.allrows(:array-of-hash)」 and I get 「my_function => "(somevalue, othervalue, etc)"」 multiple times | ||
nine | flussence: seems to work: rm -rf $RPM_BUILD_ROOT/usr/share/perl6/precomp/* ; rm -rf $RPM_BUILD_ROOT/usr/share/perl6/site/precomp/* | ||
Peter_WR | m: multi sub fib($n where * < 2 ) { $n }; say fib 2; | ||
camelia | rakudo-moar 75c6b9: OUTPUT«Cannot call fib(2); none of these signatures match: ($n where { ... }) in block <unit> at /tmp/A3xSvOU41f line 1» | ||
AlexDaniel | Skarsnik: no it's not ok because there's no way to parse that | ||
flussence | nine: right, I'll throw that in the gentoo stuff for now | ||
Skarsnik | AlexDaniel, what was the query? | 15:58 | |
AlexDaniel | Skarsnik: www.postgresql.org/docs/9.2/static/...NING-TABLE | ||
nine | flussence: build service is rebuilding: build.opensuse.org/package/live_bu...ory/x86_64 | ||
ilmari | m: multi sub fib ($ where * < 2) { $^a }; say fib 1 | ||
camelia | rakudo-moar 75c6b9: OUTPUT«5===SORRY!5=== Error while compiling /tmp/L8fvMCpOTiPlaceholder variable '$^a' cannot override existing signatureat /tmp/L8fvMCpOTi:1------> 3multi sub7⏏5 fib ($ where * < 2) { $^a }; say fib 1» | ||
Peter_WR | m: multi sub fib(1) { 1 }; multi sub fib(0) { 0 }; multi sub fib($n) { return fib($n-1) + fib($n-2) }; say fib 2; | ||
camelia | rakudo-moar 75c6b9: OUTPUT«1» | ||
Peter_WR | m: multi sub fib(1) { 1 }; multi sub fib(0) { 0 }; multi sub fib($n) { return fib($n-1) + fib($n-2) }; say fib 3; | ||
camelia | rakudo-moar 75c6b9: OUTPUT«2» | ||
AlexDaniel | Skarsnik: 「SELECT sum_n_product_with_tab(42)」 | ||
Peter_WR | m: multi sub fib($n where * == any(0,1)) { return $n }; multi sub fib($n) { return fib($n-1) + fib($n-2) }; say fib 3; | 15:59 | |
camelia | rakudo-moar 75c6b9: OUTPUT«2» | ||
dalek | osystem: 9f68e8e | LLFourn++ | META.list: Add CompUnit::Util to ecosystem github.com/LLFourn/p6-CompUnit-Util |
||
15:59
gregf_ joined
|
|||
Skarsnik | AlexDaniel, well fill an issue on DBIish, I am not even sure if we can catch this type of thing with libpq ~~ | 16:00 | |
16:00
bpmedley joined
|
|||
AlexDaniel | Skarsnik: perhaps the workaround is to SELECT from SELECT… Let's see… | 16:00 | |
16:00
YP-QMUL-W joined
|
|||
llfourn | nine: github.com/LLFourn/p6-CompUnit-Util may be relvant to you interests! | 16:01 | |
relevent to your* | 16:02 | ||
relevant to your # urgh | |||
Peter_WR | m: multi sub fib($ where * == any(0,1)) { return $ }; multi sub fib($n) { return fib($n-1) + fib($n-2) }; say fib 3; | 16:03 | |
camelia | rakudo-moar 75c6b9: OUTPUT«Use of uninitialized value of type Any in numeric context in sub fib at /tmp/LGTvdk4Aos line 1Use of uninitialized value of type Any in numeric context in sub fib at /tmp/LGTvdk4Aos line 1Use of uninitialized value of type Any in numeric context i…» | ||
Peter_WR | m: multi sub fib($ where * == any(0,1)) { return $_ }; multi sub fib($n) { return fib($n-1) + fib($n-2) }; say fib 3; | ||
camelia | rakudo-moar 75c6b9: OUTPUT«Use of uninitialized value of type Any in numeric context in sub fib at /tmp/Q_NtdSpWA6 line 1Use of uninitialized value of type Any in numeric context in sub fib at /tmp/Q_NtdSpWA6 line 1Use of uninitialized value of type Any in numeric context i…» | ||
nine | llfourn: looks to me like it only uses interfaces that we actually intend to support. | ||
lucasb | Peter_WR: you can also play with camelia in a private window | ||
Peter_WR | Sorry :( | ||
lucasb | it's ok :) | 16:04 | |
nine | llfourn: but a warning about possible changes might be good anyway until we find a solution to the packaging mess. | ||
llfourn | nine: well it uses $*W and $*UNIT though I guess they aren't going anywhere! | ||
yes I should probably add that I may have my hand forced to change things | 16:05 | ||
16:06
pmurias left
16:07
cdg joined
16:08
pmurias joined
|
|||
Skarsnik | abraxxa, if you don't want to bother with this, mark the test as todo and fill an issue x) | 16:10 | |
16:10
adu joined
|
|||
AlexDaniel | Skarsnik: I figured it out. For example this is going to work: 「SELECT * FROM sum_n_product_with_tab(42)」. | 16:11 | |
TimToady | $*W is possibly in the category of things that should've come in through the cursor rather than as a dynamic variable, but that's not quite as certain as it is for $*LANG or other variables involved in implementing lexically scoped languages | 16:12 | |
abraxxa | Skarsnik: what exactly? | ||
16:12
YP-QMUL-W left
|
|||
AlexDaniel | Skarsnik: not that it is justified for DBIish to join data like this… | 16:12 | |
TimToady | er %*LANG that is | ||
flussence | nine: wait, I don't need to rm these to workaround do I? I can just sed the buildroot out of the paths | ||
AlexDaniel | Skarsnik: but at least I have a workaround. If I manage to get some time I'll submit an issue. Thanks! | ||
16:13
domidumont left
|
|||
flussence | oh wait, the mbc files hardcode it too. never mind... | 16:13 | |
llfourn | TimToady: well I'm kinda glad it didn't I think because otherwise it's kinda hard to use it to hack things in from modules. (unless there is a $*CURSOR I don't know about) | ||
Skarsnik | abraxxa, the EM role that appear like that in the ref data | 16:14 | |
TimToady | llfourn: that scares me, on some level | ||
abraxxa | Skarsnik: again a rakudo/moarvm bug that's hard to golf | ||
16:15
xpen left,
YP-QMUL-W joined
|
|||
nine | We haz openSUSE packagez! download.opensuse.org/repositories/....1/x86_64/ | 16:16 | |
llfourn | TimToady: It's mostly to do things that rakudo probably will provide an interface for in the future (I hope) | ||
flussence | okay, that's weird. I just blew away my ~/.perl6 and I somehow still have Linenoise in the repl... | ||
TimToady | if people hang their coats on something that is fundamentally the wrong peg, eventually people will start losing their coats | ||
Hotkeys | Not necessarily | 16:17 | |
Perhaps the wrong peg is really good at being a peg | |||
llfourn | TimToady: I agree. But we don't have a way to install a lexical symbol to CALLER at compile time yet so $*W.install_lexical_symbol will have to do for now :\ | ||
16:18
lizmat joined
|
|||
llfourn | (apart from sub EXPORT of course but that doesn't cover everything) | 16:18 | |
TimToady | in particular, it assumes the dynamic scope is basically the same pass as the original compilation pass, not a subsequent optimization pass, say, that might be called from outside the original dynamic scope of $*W | 16:20 | |
I mean, such a pass can fake it by setting $*W again, but that's a handoff that can get dropped easily | |||
I ran into similar problems with the @!BLOCKS attribute in World assuming a single pass | 16:21 | ||
(and had to hack around it with a dynvar, oy vey!) | |||
but that was the basis for the loop bug I fixed after 6.c came out | 16:22 | ||
well, "fixed" | |||
llfourn | TimToady: yes I hope rakudo provides an interface to do set lexical symbols to the caller because whatever you just said is a bit over my head :) | ||
TimToady | the real fix will be to unify the different outer lookups | ||
during the initial pass it does outer lookups by counting down layers in the @!BLOCKS stack | 16:23 | ||
later it follows 'outer' annotations | |||
16:23
pierre-vigier left
|
|||
TimToady | but the whole 'wanted' pass is interleaved with the initial pass, so sometimes @!BLOCKS is not accurately representing the current lexical scope in that pass | 16:24 | |
doubtless searching @!BLOCKS is faster currently than looking up annotations, but that just means we probably shouldn't be using the annotation system for looking up outers, or we need a faster annotation system | 16:25 | ||
llfourn: that's okay, it was way over my head too until I stared at it for about 4 days... | 16:26 | ||
fortunately, although we've got conflicting "simplest ways that could possibly work", unifying those will probably help with compiler performance too | 16:27 | ||
16:27
araujo joined,
araujo left,
araujo joined
|
|||
lucasb | TimToady: talking about loopy list comprehensions, ({ 42 } while $condition) should return a list of Ints, not Blocks, right? | 16:27 | |
TimToady | probably | 16:28 | |
in particular, -> $value { $value } while $condition should probably return $condition | 16:29 | ||
llfourn | I thouhgt: { 42 } while $condition should return a list of blocks, do while $condition { 42 } should return a listof ints | 16:30 | |
TimToady | m: say do while ++$_ < 5 -> $parm { $parm } | 16:31 | |
camelia | rakudo-moar 75c6b9: OUTPUT«Too few positionals passed; expected 1 argument but got 0 in code at /tmp/kYL7GkUX7y line 1 in block <unit> at /tmp/kYL7GkUX7y line 1» | ||
mst | gather while $condition -> $value { take $value } ? | ||
TimToady | mst: you can do it that way too | ||
m: say do if ++$_ < 5 -> $parm { $parm } | |||
camelia | rakudo-moar 75c6b9: OUTPUT«True» | ||
TimToady | looks like a bug on while's param there too | 16:32 | |
llfourn: the { 42 } there is technically a bare block, so should run immediately | |||
m: say do { 42 } for 1..5 | 16:33 | ||
camelia | rakudo-moar 75c6b9: OUTPUT«4242424242» | ||
TimToady | there it does | ||
but that's the while bug lucasb++ is pointing out, that while doesn't do the same | |||
m: say do -> $parm { $parm } for 1..5 | |||
camelia | rakudo-moar 75c6b9: OUTPUT«(1 2 3 4 5)» | ||
TimToady | m: say do -> $parm { $parm } while ++$_ < 5 | 16:34 | |
camelia | rakudo-moar 75c6b9: OUTPUT«(-> $parm { #`(Block|76827112) ... } -> $parm { #`(Block|76827184) ... } -> $parm { #`(Block|76827256) ... } -> $parm { #`(Block|76827328) ... })» | ||
TimToady | that should do the same | ||
llfourn | m: say ( { 42 } for 1..5 ) | ||
camelia | rakudo-moar 75c6b9: OUTPUT«(42 42 42 42 42)» | ||
TimToady | well, except that would be a bunch of Trues, since < doesn't return anything terribly interesting | ||
llfourn | ok point taken bug then :) | ||
TimToady | it's all tricksiness to try to get list comprehensions to just "naturally" fall out of the looping constructs | 16:35 | |
and secondarily to demonstrate that the list comprehension syntax used by Python is bass-ackwards | |||
16:36
YP-QMUL-W left
|
|||
TimToady | the way we have it, the guard naturally goes inside the loop | 16:36 | |
m: say do -> $parm { $parm } when * %% 2 for 1..5 | 16:37 | ||
camelia | rakudo-moar 75c6b9: OUTPUT«(-> $parm { #`(Block|55065256) ... } -> $parm { #`(Block|55065328) ... })» | ||
TimToady | hmm, another bug? | ||
m: say do -> $parm { $parm } if $_ %% 2 for 1..5 | |||
camelia | rakudo-moar 75c6b9: OUTPUT«(-> $parm { #`(Block|66933472) ... } -> $parm { #`(Block|66933544) ... })» | ||
TimToady | yeah | ||
m: say do $_ if $_ %% 2 for 1..5 | |||
camelia | rakudo-moar 75c6b9: OUTPUT«(2 4)» | ||
TimToady | m: say do $_ when * %% 2 for 1..5 | 16:38 | |
camelia | rakudo-moar 75c6b9: OUTPUT«(2 4)» | ||
TimToady | m: say do -> $parm { $parm if $parm %% 2 } for 1..5 | 16:39 | |
camelia | rakudo-moar 75c6b9: OUTPUT«(2 4)» | ||
TimToady | at least that works | ||
(due to the wonders of Slip) | |||
nemo | Zoffix: heh. I see it made it into the doc typos, unlinked URLs and all ☺ | 16:41 | |
yoleaux | 11:45Z <daxim> nemo: re m8y.org/tmp/perl6.txt default key for me is RShift+RCtrl, for you AltGr+Shift - which one is correct? | ||
nemo | yoleaux: *shrug* I remapped mine ages ago | 16:42 | |
oh | |||
yoleaux is a bot? | |||
daxim: en.wikipedia.org/wiki/Compose_key#GNU.2FLinux " On Xorg the default Compose Key is ⇧ Shift+AltGr" | |||
llfourn | m: say (-> $parm { $parm } when * %% 2 for 1..5)' # this looks fine to me :S | 16:43 | |
camelia | rakudo-moar 75c6b9: OUTPUT«5===SORRY!5=== Error while compiling /tmp/HzNRlMJ_BkTwo terms in a rowat /tmp/HzNRlMJ_Bk:1------> 3-> $parm { $parm } when * %% 2 for 1..5)7⏏5' # this looks fine to me :S expecting any of: infix infix stopper…» | ||
llfourn | m: say (-> $parm { $parm } when * %% 2 for 1..5) # this looks fine to me :S | ||
camelia | rakudo-moar 75c6b9: OUTPUT«(-> $parm { #`(Block|61539760) ... } -> $parm { #`(Block|61539832) ... })» | ||
japhb | m: role Foo { has $.s = 42; has @.a = 7, 8, 9; }; class Bar does Foo { }; class BarDate is Date does Foo { }; dd Bar.new.a; dd BarDate.today.a; | 16:44 | |
camelia | rakudo-moar 75c6b9: OUTPUT«Array @!a = [7, 8, 9]Array @!a = []» | ||
japhb | Ah, still an issue. | ||
nemo | daxim: "As this is rather inconvenient (especially for keyboards without an AltGr) it is common to select a keyboard layout where another key such as the right-hand Ctrl or ⊞ Win is mapped to the Compose key" | 16:46 | |
daxim: so I guess that explains yours | |||
daxim | can anyone who has not remapped compose confirm what's written in wikipedia? | 16:47 | |
nemo | and with an AltGr key ☺ | ||
daxim: given how often I type digraphs, a 2 key combo was just silly. admittedly I mostly just use 'em for emoji and french, but perl6 seems likely to change that | 16:48 | ||
dalek | nqp: b200648 | pdcawley++ | src/HLL/Compiler.nqp: | ||
nqp: Retain newlines in continued code | |||
nqp: | |||
nqp: Say we want to define a class in our REPL, we might input: | |||
nqp: | |||
16:48
dalek left
|
|||
mspo | nice | 16:48 | |
16:49
dalek joined,
ChanServ sets mode: +v dalek
|
|||
mspo | someone got the blank line stuff in from yesterday for the repl? | 16:49 | |
AlexDaniel | daxim: I see no reason for this to be true universally. It is probably different in different distrubutions, DEs, whatever… | ||
16:50
SwellJoe joined,
muraiki joined
|
|||
TimToady uses the Win key | 16:50 | ||
nemo | TimToady: I need my win key for the mac command key ♥ synergy | ||
daxim | I don't think my /usr/share/X11/xkb/symbols/* files were modified, let me check with upstream repository | ||
nemo | TimToady: also I occasionally use the win key to actually do MATE stuff like opening the app menu | 16:51 | |
dalek | c: cc4bf1c | (Zoffix Znet)++ | doc/Language/nativecall.pod: Fix grammar |
||
AlexDaniel | I don't have a dedicate key for compose, unfortunately :( traditional keyboards have so many keys in useless positions and so few in convenient ones. That is, besides all usual stuff I also heavily rely on Super and Hyper keys, so my thumb row has no place for compose really :( | 16:55 | |
TimToady | well, the silly lenovo carbon 2 put ~ and ` on the thumb row where a useful key should be instead | 16:56 | |
alpha123 | TimToady: WTF | ||
dalek | c: 282b9bd | (Zoffix Znet)++ | doc/Language/unicode_entry.pod: Add formatting to XCompose section |
||
alpha123 | who does that | ||
TimToady | and they put home/end where capslock used to be | ||
'course that should be a control :) | |||
alpha123 | man, lenovo keyboards used to be so good | ||
I'm a fan of remapping caps lock to ctrl if another key is pressed with it and escape otherwise | 16:57 | ||
TimToady | and the function key row is just a capacitive strip that never does what you want | ||
alpha123 | *twitch* | ||
nemo | alpha123: escape... I can see that. bit faster in vim | ||
AlexDaniel | haha capacitive strip! | ||
how convenient! | 16:58 | ||
alpha123 | nemo: exactly | ||
AlexDaniel | :( | ||
TimToady | when it does work, it sets off stray function codes when you fingers are on the number row | ||
AlexDaniel | TimToady: did they already make japanese version of this keyboard? | ||
16:58
hyan left,
znpy joined
|
|||
nemo | alpha123: what do you use for Compose then? | 16:58 | |
TimToady | AlexDaniel: dunno | 16:59 | |
japhb | TimToady: How are you not defenestrating this laptop? | ||
TimToady | so basically I prefer to disable the function key strip entirely, which makes a bunch of things harder | ||
alpha123 | nemo: right alt | 17:00 | |
17:00
pi4 left,
nige1 joined
|
|||
RabidGravy | somewhere I've got an an HP laptop that has an extra column of special function keys down the left side of the keyboard, totally messes up the touch typing | 17:00 | |
AlexDaniel | well, japanese keyboards usually have a couple of extra thumb buttons, which is basically the only upgrade you can make on a laptop keyboard | ||
nemo | alpha123: oh... hm.. yeah. I guess I rarely press right alt | ||
17:00
pi4 joined
|
|||
nemo | alpha123: right ctrl I need for virtualbox | 17:00 | |
alpha123 | same | 17:01 | |
nemo | TimToady: I'm currently using a mac aluminium keyboard my boss gifted me. It required heavy remapping to be functional | 17:02 | |
TimToady: for example the idjits replaced a bunch of actually useful keys with an additional F13-F19 | |||
mspo | alt/option seems to allow for utf8 input | ||
17:02
pmurias_ joined
|
|||
nemo | TimToady: which is pretty crazy given every mac user I've met argues function keys are useless and that's why they should be hidden behind an alt in subservience to stuff they use way more like adjusting screen brightness | 17:02 | |
alpha123 | wut, what on earth does F13-19 even do | 17:03 | |
nemo | alpha123: not much, since no apps seem to exist that take advantage of it | ||
mspo | for many symbols, anyway: «Ω» √ | ||
nemo | guess you could use it in gimp | ||
17:03
zakharyas left
|
|||
nemo | alpha123: that is, map common functions to 'em | 17:03 | |
alpha123: and to offer those keys, they removed things like Insert and Print | 17:04 | ||
TimToady | with my current setup I can only change screen brightness via command line, since that's on the disabled function strip | ||
nemo | alpha123: backspace was replaced w/ an eject button - not that anything ever ejects media anymore | ||
TimToady | no F11 for full screen either | ||
nemo | mspo: alt/option on what? | 17:05 | |
mst | huh. mine overloads stuff (f5/f6 are brightness up/down) but holding the fn key switches mode for those keys | ||
AlexDaniel | TimToady: you can probably map any other shortcut to do these | ||
nemo | mst: see. I get having those as options, what I don't get is making them the default. I adjust screen brightness like never. so why not hide *that* behind the fn | ||
dalek | c: d4c1e5f | (Zoffix Znet)++ | doc/Language/nativecall.pod: Fix typo (ilmari++) |
17:06 | |
nemo | mst: but luckily the MATE/GNOME2 kbd prefs includes an option to fix that | ||
17:06
pmurias left
|
|||
nemo | mst: actually you can fix it in OSX too if you dig around in prefs a bit | 17:06 | |
mst | nemo: Fn+Esc toggles FnLk on/off so the default is pickable | ||
TimToady just hopes that he can use Xcompose with anthy someday... | 17:07 | ||
mst | also, honestly, I adjust the sound volume more than I use anything else from that row | ||
17:07
pmurias_ left
|
|||
nemo | TimToady: huh. there's no xim bridge for anthy? | 17:07 | |
"Anthy is commonly used with an input method framework such as ibus, fcitx or SCIM" | 17:08 | ||
TimToady | none of those have ever worked with .Xcompose, though I could be behind the times | ||
17:08
lizmat left
|
|||
mspo | nemo: on a mac keyboard | 17:08 | |
nemo | TimToady: ibus dæmon seems to have xim support... | ||
AlexDaniel | æ hm… | 17:09 | |
nemo | TimToady: github.com/ibus/ibus-anthy 'Add a new /etc/xdg/autostart/ibus.desktop to invoke 'ibus-daemon --xim'' | ||
TimToady: random searching | |||
AlexDaniel: habit | |||
AlexDaniel | nemo: great one, I like it :) | 17:10 | |
nemo | AlexDaniel: at this point it would actually require a bit of reflex to inhibit hitting capslock first | ||
TimToady | my ibus-daemon already has --xim | ||
AlexDaniel loves more unicode in regular texts | |||
nemo | AlexDaniel: similar to typing ç for c, | ||
TimToady: hm. wonder if you have to toggle modes or something. dunno | |||
TimToady: my japanese was always abysmal so I abandoned input managers years ago. just didn't have time for it | |||
TimToady | well, I haven't fiddled with it for a year or so | ||
been busy with something else, for some reason... | 17:12 | ||
dalek | kudo/query_repos: 62bcf18 | (Stefan Seifert)++ | src/core/CompUnit/ (3 files): Centralize more precompilation code |
||
alpha123 | Is there anything like xcompose for tmux? | 17:13 | |
AlexDaniel | alpha123: why tmux when you can have it system-wide? | 17:14 | |
alpha123 | AlexDaniel: well that's fine too | ||
i.e. Xcompose when you don't have an X session running | |||
nemo | alpha123: so... screen has digraph support | 17:16 | |
alpha123: when I switched to tmux, I made some crappy scripts that try to find digraphs | |||
alpha123: it is possible someone out there has made a non-crappy script | |||
I wouldn't want to inflict these on anyone | |||
alpha123 | googling hasn't been the most productive so far | 17:17 | |
nemo | bind v split -l 0 '~/bin/compose.pl && tmux pasteb -t.- -d' | ||
bind V command-prompt -p compose 'if-shell "~/bin/compose2.pl \"%%\"" "pasteb -d" ' | |||
that's for ctrl-a v and ctrl-a V | |||
(yeah, I switched to ctrl-a so I wouldn't have to relearn that stuff too) | |||
alpha123 | I switched to Ctrl-a even though I started with tmux because it's easier to press :p | ||
nemo | heh | ||
alpha123: I've started needing this more as I actually use my phone as a computer | 17:19 | ||
although luckily inside the linux chroot I have digraphs | |||
AlexDaniel | by the way, another valuable option to input unicode characters is to use custom keyboard layout. e.g. altgr+(key) and altgr+shift+(key) basically give you another two layers of keys (most of them are free by default). This also works without X session :) | 17:20 | |
this, of course, is not an alternative to xcompose. But it is a good way to input commonly used characters | 17:21 | ||
alpha123 | 'murica keyboards don't have altgr, how do I remap right alt to that without xmodmap? | ||
AlexDaniel | 「」«»‘’“”∞–… are good candidates for that :) | ||
alpha123: well, if you are going to create your own keyboard layout then it's not a problem | 17:22 | ||
alpha123: because you can basically set any key as altgr | |||
nemo | AlexDaniel: I just find digraphs more intuitive | ||
AlexDaniel: like. way easier to remember that >> becomes » or -> becomes → | 17:23 | ||
AlexDaniel | nemo: sure, for stuff that is not common it makes sense | ||
nemo | AlexDaniel: yeah, but I use even for like c, ç - I don't think I could get used to doing that w/ like altgr c or something | ||
AlexDaniel | nemo: everything else does not have to be intuitive. e.g. your keyboard layout is not in alphabetical order (although that could have been intuitive) | ||
17:23
n0tjack left
|
|||
nemo | AlexDaniel: fair 'nuff, but after 3 decades qwerty is pretty much burned into my muscles ☺ | 17:24 | |
17:24
pierre-vigier joined
|
|||
AlexDaniel | not that QWERTY is better than a layout that has all letters sorted… | 17:24 | |
nemo | AlexDaniel: eh. mildly disagree there | ||
that is, the claim that dvorak is easier on the hands... | |||
AlexDaniel | nemo: well, qwerty IS in alphabetical order, mostly | 17:25 | |
alpha123 | dvorak is probably easier on the hands but i don't think there's sufficient evidence to say that it's faster | ||
17:25
pi4 left
17:26
pi4 joined
|
|||
nemo | hardware.slashdot.org/comments.pl?s...d=40613155 | 17:26 | |
an old argument I recalled and ran a search for | 17:27 | ||
AlexDaniel | nemo: well, it does not take much to understand that it is. Basically if you move all common letters on the home row (makes sense, right?) and reduce the amount of words that you have to type with just one hand (e.g. by having vowels on one side, also makes sense?) then you are going to get a better layout. Whether that makes a significant difference – that's a whole different question, but… | 17:28 | |
17:28
pierre-vigier left
|
|||
flussence uses dvorak layout on phone, just to keep things interesting | 17:29 | ||
alpha123 | I wonder what a layout optimized for gesture typing would be like | ||
AlexDaniel | flussence: this is actually not a bad idea due to hand alternation | ||
flussence: unless you use swipe-ish kind of input :) | |||
in which case it just makes it worse :D | 17:30 | ||
flussence | nope, none of that on mine :) | ||
nemo | AlexDaniel: well. depends what causes stress on the hand for me, for example, is using pinkie fingers | ||
17:30
adu left
|
|||
nemo | AlexDaniel: so having stuff on home row vs top row pretty irrelevant | 17:30 | |
AlexDaniel: I just want most common keys in centre of kbd | 17:31 | ||
AlexDaniel | nemo: yeah, in that sense the placement of letters is pretty much irrelevant. Most symbols, however, are typed with pinkies, so… | 17:32 | |
nemo: here comes the question about physical design of the keyboard | |||
alpha123 | I tried dvorak for a while, couldn't type `ls` quickly, and gave up | ||
nemo | alpha123: hardware.slashdot.org/comments.pl?s...d=40615469 | 17:33 | |
AlexDaniel | nemo: easy to solve, just get a keyboard with a bunch of thumb buttons and extra columns in the middle, but of course no such thing for laptops :( | ||
alpha123 | also vim was annoying with dvorak and I was too lazy to remap everything | ||
[Coke] | minor doc issue; having the timestamp in the page makes it very hard to compare two versions of the generated HTML to insure I haven't broken anything. | ||
also, it's the time -that particular page- was generated. | |||
moritz | [Coke]: feel free to add a --no-timestamp option or so | ||
[Coke] | (rather than when htmlify was kicked off) | 17:34 | |
moritz | [Coke]: but in general, it's a good thing to have | ||
nemo | AlexDaniel: personally when I use my phone (galaxy note 4) as a mini laptop, I use this nifty bluetooth kbd for heavy duty typing... | ||
AlexDaniel: www.amazon.com/TOZO-Ultra-slim-Smar...B0124TNLK0 | |||
[Coke] | ideally, it'd be an app and we'd include that bit of static content rather than dupe it in every page. | ||
nemo | there's a whole ton of companies selling this model on amazon. | ||
17:34
Ch0c0late left
|
|||
flussence | moritz: I'm being pedantic, but that bit would be better kept in the HTTP headers... | 17:34 | |
nemo | AlexDaniel: other nice thing about the note 4 is the stylus works great as a lightweight mouse - like, supports hover for easy menu navigation in a linux chroot | 17:35 | |
moritz | flussence: patches welcome | ||
mspo | Last-Modified?? | ||
moritz | flussence: or maybe not; it'd make it harder to find the date on the page | ||
mspo | both is probably the way to go :) | 17:36 | |
AlexDaniel | nemo: here is a good example of what I mean when I speak about thumb buttons and extra middle columns: ergodox.org/Images/ErgoDox_001.png (that's if you want to reduce strain on your pinkies) | ||
nemo | ah. interesting | 17:37 | |
mspo | the modified date should go in the html footer for humans to read, and Last-Modified: for computers to read | ||
nemo | AlexDaniel: well. the other thing to keep in mind ofc is the more esoteric a layout you train on, the more helpless you are when plunked in front of a random machine ☹ | ||
or the more your coworkers hate you when they have to be at your desk for some reason | |||
17:38
aindilis left
|
|||
AlexDaniel | nemo: after years on heavily modified dvorak I still can type on QWERTY :) This, however, is a real problem if you never really learned QWERTY… | 17:38 | |
lucasb | the server do send a Last-Modified header for static html files | ||
AlexDaniel | nemo: my kids will probably hate me for this :) | ||
alpha123: by the way, I use vim-like keys in emacs. Not a big problem besides hjkl (which I wouldn't use anyway, I have altgr-ed arrow keys that work everywhere…) | 17:42 | ||
alpha123 | AlexDaniel: evil-mode? | 17:43 | |
AlexDaniel | alpha123: yeah | ||
alpha123 | AlexDaniel: I don't actually use vim anymore though, I use the similar-but-imo-more-awesome kakoune (kakoune.org/) which I don't think there's an emacs mode for (*gasp*) | ||
AlexDaniel | alpha123: oh, how interesting | 17:44 | |
alpha123: bookmarked, I will definitely check it out later | |||
alpha123 | AlexDaniel: It's probably one of the best designed pieces of software I've used, really fantastic editor | ||
AlexDaniel | alpha123: perl6 mode? | ||
alpha123 | AlexDaniel: primitive at best :( | 17:45 | |
AlexDaniel | eh! | ||
Skarsnik | I should learn to use advanced stuff in editor x) | ||
17:46
lucasb left
|
|||
alpha123 | AlexDaniel: its syntax highlighting for perl6 is a little hit-or-miss, basically, and there's nothing more than that | 17:46 | |
that said, it's easy enough to write modes for ;) | |||
17:47
virtualsue joined
|
|||
nemo | alpha123: medium.com/@mkozlows/why-atom-cant...3852f4b4d1 applies to emacs too IMO ☺ | 17:48 | |
alpha123 | lol atom | ||
nemo | eh. his main point is composability | 17:49 | |
'By contrast, Emacs and its philosophical descendants (including Sublime Text and Atom) use monolithic, special-purpose commands.' | |||
alpha123 | eh, that's only the default for emacs, you can change it (and evil-mode does). I don't really have anything against emacs, I just like regular vim more than evil-mode | 17:50 | |
and non-modal editing is basically useless for me now | |||
nemo | alpha123: well. that's just saying "emacs has a mode to emulate vi" | 17:51 | |
alpha123 | nemo: that's basically the point of emacs isn't it | ||
nemo | doesn't take away from main point about how emacs approached things natively | ||
alpha123 | "emacs has a mode to …" | ||
nemo | heh | ||
17:52
lichtkind_ joined
|
|||
abraxxa | i've also switched to Atom after using Komodo Edit 9 for some month after I got annoyed of Padre deleting all files in the perlbrewed bin directory every few days | 17:52 | |
nemo | heck, I'm sure "extensible vi layer" accronym was not accidental 😝 | ||
17:53
DrArch joined,
FROGGS joined
17:56
abraxxa left
17:58
dakkar left,
psy_ left
|
|||
[Coke] | github.com/perl6/doc/issues/300 looks good here; Will apply that tonight if no objections. (feel free to apply it sooner if you like) | 17:59 | |
18:04
lichtkind left,
lichtkind_ is now known as lichtkind
18:05
psy_ joined
18:08
sftf left,
adhoc joined
18:09
firstdayonthejob joined
|
|||
AlexDaniel | FIRST++ # useful! | 18:09 | |
[Coke] | m: FIRST #'{comment} | 18:10 | |
camelia | rakudo-moar 75c6b9: OUTPUT«5===SORRY!5=== Error while compiling /tmp/mXpFyqqpAZMissing block or statementat /tmp/mXpFyqqpAZ:1------> 3FIRST #'{comment}7⏏5<EOL>» | ||
AlexDaniel | m: FIRST { #'{comment} } | 18:11 | |
camelia | rakudo-moar 75c6b9: OUTPUT«5===SORRY!5=== Error while compiling /tmp/gMRMi4R8gzMissing blockat /tmp/gMRMi4R8gz:1------> 3FIRST { #'{comment} }7⏏5<EOL>» | ||
AlexDaniel | m: FIRST { #'{comment} } { } | ||
camelia | rakudo-moar 75c6b9: OUTPUT«5===SORRY!5=== Error while compiling /tmp/6hd8jszYGHMissing blockat /tmp/6hd8jszYGH:1------> 3FIRST { #'{comment} } { }7⏏5<EOL>» | ||
AlexDaniel | m: { FIRST { #'{comment} } } | ||
camelia | rakudo-moar 75c6b9: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Iy6IYzE417Missing blockat /tmp/Iy6IYzE417:1------> 3{ FIRST { #'{comment} } }7⏏5<EOL>» | ||
AlexDaniel | missing loop perhaps? | ||
18:12
lizmat joined
|
|||
lizmat waves from TechInc in Amsterdam | 18:12 | ||
18:13
bpetering left
|
|||
lizmat | m: dd ^10 .map(** * 5) # WAT ? I have *no* idea what's going on here | 18:13 | |
camelia | rakudo-moar 75c6b9: OUTPUT«((0,).Seq, (5,).Seq, (10,).Seq, (15,).Seq, (20,).Seq, (25,).Seq, (30,).Seq, (35,).Seq, (40,).Seq, (45,).Seq).Seq» | ||
18:14
nige1 left
|
|||
gfldex | m: (**).WHAT.say # see: www.youtube.com/watch?v=RHVSshgPlQs | 18:15 | |
camelia | rakudo-moar 75c6b9: OUTPUT«(HyperWhatever)» | ||
lizmat | aahhhh | ||
duh :-) | |||
AlexDaniel | perhaps HyperWhatever should be *more* documented? | ||
how many times I've seen that question | 18:16 | ||
lizmat | yeah... and get burned into my brain :-) | ||
AlexDaniel | (I've even asked it once myself…) | ||
gfldex | if you tell me what it acutally does, i will be happy to doc it | ||
moritz | it's somewhere in the design docs | ||
S02 most likely | |||
AlexDaniel | gfldex: it is in S** somewhere | ||
yeah | |||
alpha123 | it's in S02, but the section is very short | ||
design.perl6.org/S02.html#The_Hype...tever_Type | 18:17 | ||
gfldex | design.perl6.org/S02.html#The_HyperWhatever_Type | ||
i know where it is in the design docs but still don't know what it actually does | |||
AlexDaniel | “In general a Whatever should be interpreted as maximizing the degrees of freedom in a dwimmy way, not as a nihilistic "don't care anymore--just shoot me".” – priceless | ||
troydm | don't consider it offense but I kinda like p5 more, it has it has nostalgic unix flavour | 18:18 | |
Skarsnik | lol what | ||
AlexDaniel | or this “Other uses for * and ** will doubtless suggest themselves over time.” instead of explaining how is it supposed to be used. | 18:19 | |
18:19
xinming_ joined
|
|||
[Coke] | AlexDaniel: well, we did retroname those the speculations. | 18:19 | |
alpha123 | I think I'm beginning to understand it | ||
AlexDaniel | troydm: and that's totally OK! Perl 5 was going strong for quite some time, I think that it will continue to grow for some years :) | ||
troydm | plus p6 syntax looks weird sometimes | ||
AlexDaniel | m: say (* * *)(4,2) # like when? | ||
camelia | rakudo-moar 75c6b9: OUTPUT«8» | ||
alpha123 | AlexDaniel: That makes sense though | 18:20 | |
why did * get used instead of _ for whatever though | |||
(_ * _)(4, 2) seems nicer | |||
but... whatever | |||
AlexDaniel | m: say ༧༪² × ½ # weird? Like? | ||
camelia | rakudo-moar 75c6b9: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ccf2R4V3nYBogus postfixat /tmp/ccf2R4V3nY:1------> 3say ༧7⏏5༪² × ½ # weird? Like? expecting any of: infix infix stopper postfix statement end…» | ||
AlexDaniel | m: say ༪² × ½ # weird? Like? | 18:21 | |
camelia | rakudo-moar 75c6b9: OUTPUT«0.125» | ||
AlexDaniel | alpha123: because _ is used for translations and other stuff | ||
alpha123 | Okay, I think HyperWhatever basically just automatically turns a regular operation involving a Whatever into a mapped Whatever | ||
18:21
xinming left
|
|||
alpha123 | it's like a funky list monad except not | 18:21 | |
AlexDaniel | alpha123: though we should probably have some unicode version of whatever | 18:22 | |
18:22
_Vi left
|
|||
AlexDaniel | though maybe not, since you can do this: | 18:22 | |
m: (* × *)(4,2).say | |||
camelia | rakudo-moar 75c6b9: OUTPUT«8» | ||
troydm | so after many years p6 is finally out? | ||
18:23
hankache joined
|
|||
AlexDaniel | troydm: yeah | 18:23 | |
gfldex | m: my &c = (** * 1); dd &c(1) # so it can listify things | ||
camelia | rakudo-moar 75c6b9: OUTPUT«(1,).Seq» | ||
18:23
xinming_ left,
vendethiel joined
|
|||
troydm | seems like I'm in Back To The Future movie | 18:23 | |
18:24
xinming joined
|
|||
alpha123 | troydm: Perl6 seems weird but it's loaded with so many brilliant ideas I can't help but like it :) | 18:24 | |
troydm | only in 10 years past | ||
mspo | troydm: #3? | ||
flussence | troydm: it's been out for years; some people simply refuse to accept that unless there's a big official press release telling them it is. | ||
alpha123 | AlexDaniel: Maybe double low line makes sense... kinda sorta... (‗ * ‗)(4,2) | 18:25 | |
gfldex | troydm: it's 15 years. Before you complain, when you where 15 years old, where you production ready? | ||
troydm | so how much of p5 community is going to migrate to p6? | ||
AlexDaniel | alpha123: or maybe ⍰ | ||
Peter_WR | Is it wrong to describe Perl and 6 on programming languages when asked why it looks the way it does by people? :P | ||
*huffman encoding on programming | 18:26 | ||
gfldex .oO( Perl 6 is sweet 16 and ready to rock! ) | |||
masak | troydm: if I were a heavy Perl 5 user, I would perhaps look into Perl 6, but I wouldn't abandon all my Perl 5 code overnight. | ||
japhb | troydm: That will take quite a long time. Perl 5 is quite good at what it does, and there is a LOT of Perl 5 code out there. | ||
alpha123 | troydm: They serve different purposes, and are pretty much different languages entirely, so I'm not really sure migrating makes sense | ||
[Coke] | gfldex: not cool. | ||
troydm | alpha123: without CPAN there is not much progress in usability | 18:27 | |
gfldex | [Coke]: if I failed to be funny, please accept my apology | ||
alpha123 | AlexDaniel: bother, seems either tmux, weechat, or putty is messing up the encoding for that | ||
flussence | I wonder how much of the C community migrated to C++. GCC took a quarter century. | ||
troydm | and CPAN is created by ppl's needs | ||
masak | gfldex: Perl 6 won't be 16 until July 18th this year. | ||
mspo | flussence: they should have been migrating to D | ||
gfldex | just a thought then | 18:28 | |
flussence | mspo: they need a compiler for that first :D | ||
alpha123 | mspo: yuck, I wouldn't use D for most of the things I use C for | ||
[Coke] | so, troydm, if you'd like to see our previous responses to this conversation, please feel free to dig through the IRC log. | ||
troydm | if there is no needs there won't be any 15k modules for all purposes | ||
[Coke] | Or check the FAQ. | ||
mspo | I have some p5 stuff I'd like to write in 5, but there are no modules :) | ||
AlexDaniel | alpha123: █ * █ :) | ||
18:30
wamba joined
|
|||
troydm | I think I'll go and watch some Warmingthon's presentations on P6, that dude is entertaining | 18:30 | |
frew | I'm trying to build the latest star (from november) under alpine linux and am getting this error: gist.github.com/frioux/b8e055c7a71a1fabe862 | ||
is this something that using a checkout would fix? | |||
moritz | mspo: did you confuse 5 and 6 here at least once? | ||
mspo | moritz: yes | 18:31 | |
sorry | |||
flussence | frew: that's odd... what GCC are you using? | ||
frew | 4.9.2 | ||
mspo | basically I have some web stuff I'd like to be working on but mojolicious is difficult to not use | ||
frew | but muslibc, not glibc | ||
mspo | even though it would be more fun to be learning perl6 at the same time | 18:32 | |
moritz | mspo: are you aware of Inline::Perl5? | ||
troydm | will there be a port of mojolicious to p6? | ||
flussence | frew: I have a feeling there's some assumption GCC5 is in use, they changed the default --std in that. You might be able to get it building with CFLAGS=--std=c99 or so | ||
frew | flussence: I'll try that | ||
Skarsnik | troydm, do it :) | ||
frew | flussence: I need to do that at configure time or make time? | ||
troydm | Skarsnik: nah, u first | 18:33 | |
flussence | should work if you pass it to the make command | ||
alpha123 has a tendency to just edit makefiles with random GCC flags until things build | |||
18:33
peter__ joined
|
|||
frew | I very rarely compile stuff like this these days | 18:33 | |
but I got annoyed at using python for little things and figured I'd go the opposite direction | 18:34 | ||
flussence | troydm: go ask #mojo that question | ||
alpha123 has also been spoiled by BSD ports system | |||
frew | hah | ||
c99 made it fail sooner | |||
flussence | :( | ||
alpha123 | try gnu11 then! | ||
troydm | iirc there is Sinatra kinda framework for p6 eady? | ||
already* | 18:35 | ||
flussence | frew: oh, it's -std not --std, that might be why. my bad | ||
frew | huh | ||
I wonder why it even made a difference then? | |||
alpha123 can't remember how he built Star on FreeBSD, but it involved messing with GCC flags for a while | |||
troydm | isn.'t FreeBSD using clang? | 18:36 | |
[Coke] | (mojo) there won't be a thing called mojo, no; they want to keep that branding for their own product. There will be something mojolike, for sure. | ||
flussence | just checked the manpage, -std=gnu11 is the default for gcc5.3 | ||
hankache | troydm yes it's called "Bailador" | ||
[Coke] | note that bailador was more of a translation of Dancer, as I understand it. | ||
alpha123 | troydm: some things rely on GCC extensions that clang hasn't implemented | ||
[Coke] | but "some web framework", fersure. | ||
alpha123 | troydm: but yes, the base system is compiled with clang and ships with clang by default | ||
18:37
peter__ left
|
|||
troydm | alpha123: those things will eventually be ported? | 18:38 | |
hankache | [Coke]++ | ||
alpha123 | troydm: well, eventually the goal is for clang to implement all of GCC's extensions, but that doesn't really have much to do with FreeBSD | ||
gfldex | it may not be the best idea to port a Perl 5 framework to Perl 6 as none of them are very 6ish. | ||
RabidGravy | this is my view too | 18:39 | |
muraiki | gfldex++ | ||
18:39
peter__ joined
|
|||
hankache | gfldex++ | 18:39 | |
none of them are very 6xy :D | 18:40 | ||
frew | hm | ||
Skarsnik | 6xy is a nice word :) | ||
frew | so none of those flags worked | 18:41 | |
muraiki | haha, 6xy :) | ||
frew | I'll try just rakudo, not star | ||
18:41
pierre-vigier joined
|
|||
gfldex | i have a few idea how to 6xify a web framework but got discracted by modules in the eco system failing tests | 18:41 | |
18:42
ZoffixW joined
|
|||
ZoffixW | troydm, the port of Mojolicious is currently undecided. But why do we need a "port"? Mojolicious is a toolkit, much of whose bits are provided by the Perl 6 core | 18:42 | |
muraiki | good point zoffixw | 18:43 | |
18:43
peter__ left
|
|||
mspo | bottle.py is probably a good thing to port :) | 18:43 | |
ZoffixW | m: 'foobar' ~~ / 'f' 'o' ~ 'a' $<foo>=(.+)/; say $<foo> | 18:44 | |
camelia | rakudo-moar 75c6b9: OUTPUT«「ob」» | ||
frew gives up for now | 18:45 | ||
ZoffixW | I'm not entirely sure of the workings of ~ in regexes and I don't see it documented anywhere. Specifically, does the rest of the regex have to be between the stuff shown by the ~? | ||
frew | if anyone wants to work together to get perl6 building on alpine let me know. | ||
ZoffixW | Spotted it here: github.com/tadzik/perl6-Config-INI...INI.pm#L16 | 18:46 | |
timotimo | mspo: isn't bottle kind of in Bailador territory? | ||
yoleaux | 15:11Z <bpetering> timotimo: I don't know about keccak in Perl 6 yet, but in addition to libgit2 I'm working on bindings for libsodium, which lets you do more modern hashing | ||
timotimo | .tell bpetering great to hear we're getting libsodium bindings :) | ||
yoleaux | timotimo: I'll pass your message to bpetering. | ||
mspo | timotimo: it's more like Mojolicious::Lite ? | ||
ideally I'd like to see something like gun + cowboy + $frameworks | 18:47 | ||
ZoffixW | I wanna see something higher-level. Something you write business logic in and you get the web interface for free. | ||
18:47
peter__ joined
|
|||
ZoffixW | With all the websites looking the same these days, I doubt something like that is too outrageous to think about. | 18:47 | |
mspo | ZoffixW: like an auto-CRUD? | 18:48 | |
18:48
domidumont joined
|
|||
timotimo | like the django auto-admin-interface? | 18:48 | |
ZoffixW | mspo, like making websites without having to write any HTML/CSS/JS :) | ||
alpha123 | I'd like to see something higher-level also, like a sort of XSL in perl6 that specifies how you want to translate models into views | 18:49 | |
18:49
peter__ left
|
|||
mspo | ZoffixW: use CGI! | 18:49 | |
ZoffixW | mspo, I don't see the connection... | ||
mspo | print b("I'm a block); | 18:50 | |
etc | |||
ZoffixW | mspo, you mean CGI.pm from Perl 5? :) Way to be vague | ||
mspo | ZoffixW: 'use' is overloaded | ||
18:50
cdg left
|
|||
awwaiid | yeah. you'd need: use CGI:from<Perl5> | 18:50 | |
18:50
peter__ joined
|
|||
awwaiid | (muahahaha) | 18:50 | |
alpha123 | perl6 grammars use packrat parsing right? | 18:51 | |
_sri | allright, i'll bite, what makes mojolicious "not very perl6-ish"? | ||
alpha123 | was there ever any consideration to generalized parsing? like earley or gll etc | ||
_sri | are there any perl6 features that completely change how one would design a web framework? | 18:52 | |
muraiki | Zoffix: you might find inspiration in Magritte: book.seaside.st/book/advanced/magritte | ||
awwaiid | alpha123: I believe it is recursive-descent, but I could be wrong | ||
ZoffixW | m: 'zomg [foobar] blah' ~~ /'zomg ' '[' ~ ']' 'blah'/; say $<foo> | ||
camelia | rakudo-moar 75c6b9: OUTPUT«Nil» | ||
_sri | and remember that mojolicious is heavily async | ||
ZoffixW | m: 'zomg [foobar] blah' ~~ /'zomg ' '[' ~ ']' 'foobar'/; say $<foo> | ||
camelia | rakudo-moar 75c6b9: OUTPUT«Nil» | ||
AlexDaniel | _sri: multiple dispatch perhaps, maybe not | ||
18:52
spider-mario joined
|
|||
_sri | AlexDaniel: that already fits in well | 18:52 | |
muraiki | ZoffixW that is. whoops | 18:53 | |
_sri | the router dispatches to methods on controller objects, unpacking query parameters or whatever to take advantage of multiple dispatch is super easy | ||
awwaiid | alpha123: I think there has been some posts at jeffreykegler.github.io/Ocean-of-Awareness-blog/ critical of the built-in rakudo parsing (from the author of Marpa, an Earley variant). You can definitely use other parser engines from Perl 6, and I think there is even a p6-Marpa binding as an example (though maybe it isn't all sugared up) | 18:54 | |
18:54
n0tjack joined
|
|||
timotimo | ZoffixW: would you expect that to have a value? if so, why? | 18:55 | |
awwaiid | alpha123: like you could totally either dynamically extend the rakudo grammar (macro stuff) to add some cool BNF stuff that serves as a DSL | 18:56 | |
mspo | _sri: it's not very 6-ish because it's written in 5 :) | ||
awwaiid afk | |||
mspo | _sri: so feel free to start 6ojo; I'll use it | ||
ZoffixW | timotimo, I don't know what '~' is in the regex | ||
_sri | some folks like RabidGravy seem to think that all perl5 code is outdated legacy garbage | ||
alpha123 | awwaiid: Thanks! | 18:57 | |
mspo | 6jos web framwork, use six coffee cups as a logo | ||
ZoffixW | timotimo, well, I can understand '[' ~ ']' means "from [ to ]", but what about the named capture specified AFTER the '[' ~ ']', why does it get the value from between ~ ? | ||
alpha123 doesn't think there's anything wrong with top-down parsing in general, but has a slight distrust of PEG | |||
(when PEG parsers break it's usually in mysterious ways without telling you) | |||
lichtkind | why 1 is not recognized as Num? | ||
ZoffixW | lichtkind, because it's an Int | ||
lichtkind, you want 1e0 | |||
RabidGravy | er, _sri I think *citation needed - I don't believe I have ever said that | 18:58 | |
mspo | ☕ ☕ ☕ ☕ ☕ ☕ | ||
lichtkind | ZoffixW i thought Num is like base class for all number | ||
timotimo | ZoffixW: the syntax of ~ is "a ~ b c" turns into "match a, then match c, then match b" | ||
basically | |||
hankache | m: say 1.WHAT | ||
camelia | rakudo-moar 75c6b9: OUTPUT«(Int)» | ||
arnsholt | alpha123: Earley's algorithm is also (fundamentally) top-down, so I wouldn't think that's the argument against the Perl 6 formalism | ||
lichtkind | 1 is recognized as Real | ||
ZoffixW | lichtkind, I believe that's Numerical | ||
m: my Real $x = 1; say $x | |||
camelia | rakudo-moar 75c6b9: OUTPUT«1» | ||
ZoffixW | m: my Real $x = 1; say $x.WHAT | ||
camelia | rakudo-moar 75c6b9: OUTPUT«(Int)» | ||
18:59
xinming_ joined
|
|||
lichtkind | there is no type numerical | 18:59 | |
flussence | m: say Int.^roles | ||
camelia | rakudo-moar 75c6b9: OUTPUT«((Real) (Numeric))» | ||
lichtkind | there its numeric | ||
thanks | |||
hankache | m: my $x = 1.Num; say $x.WHAT | ||
camelia | rakudo-moar 75c6b9: OUTPUT«(Num)» | ||
_sri | RabidGravy: allright, then maybe you could elaborate on what would make a perl5 framework more perl6-ish? | ||
ZoffixW | lichtkind, Numeric | ||
alpha123 | arnsholt: I think I'd argue that Earley is more bottom-up than top-down | ||
ZoffixW | lichtkind, looking at the type graph, I see that Int is not a descendant of Num, but is a decendant of Real: docs.perl6.org/type/Real | 19:00 | |
arnsholt | No, it's definitely top-down. IIRC, it's usually termed top-down with bottom-up filtering, or some such | ||
hankache | m: say 1 ~~ NUm | ||
camelia | rakudo-moar 75c6b9: OUTPUT«5===SORRY!5=== Error while compiling /tmp/onqWLZJ5CiUndeclared name: NUm used at line 1. Did you mean 'Num', 'num'?» | ||
hankache | m: say 1 ~~ Num | ||
camelia | rakudo-moar 75c6b9: OUTPUT«False» | ||
mspo | _sri: probably using the built-in HTTP types and stuff | ||
RabidGravy | _sri, I haven't said a word about Perl 5 frameworks | ||
_sri | mspo: "built-in"? | ||
hankache | m: say 1 ~~ Real | ||
camelia | rakudo-moar 75c6b9: OUTPUT«True» | ||
alpha123 | what is 'Numeric' anyway | 19:01 | |
does it just include stuff closed over addition or what | |||
or multiplication | |||
arnsholt | Numeric is a role for anything that can be a number | ||
doc.perl6.org/type/Numeric | |||
mspo | _sri: oh sorry I thought Grammar::HTTP and HTTP::Server were built-in but they're not | 19:02 | |
_sri | RabidGravy: irclog.perlgeek.de/perl6/2016-01-05#i_11834256 | ||
arnsholt | Num OTOH is for floating point numbers | ||
19:02
xinming left
|
|||
hankache | _sri anyone can port whatever they want to Perl 6. I think what they meant is that they'd rather build something *New* instead of porting an existing way of doing things. | 19:02 | |
19:02
psy_ left
|
|||
_sri | gfldex: you too, what makes a web framework perl6-ish? | 19:03 | |
19:03
peter__ left,
lnrdo_ left
|
|||
_sri | hankache: what i hear is that you'd rather not have experienced framework developers join the community | 19:03 | |
ZoffixW | _sri, I believe the comments were made because, say Mojolicious, implement their own stuff (like event loop), but in Perl 6 that's in core. So there's no point in "porting" the event loop. | 19:04 | |
hankache | _sri where did you here that? | ||
ZoffixW | I think there's confusion between the meaning of word "port" here. | ||
_sri | ZoffixW: imo that's silly, of course you only port the basic ideas and concepts behind the framework, using perl6 idioms | 19:05 | |
hankache | _sri because we actually want everybody to join the community experienced or not | ||
_sri | porting something line for line would be a huge waste of time | ||
muraiki | I think my ++ there was as one of the "not experienced" people. :) I think my main concern is to make sure a p6 framework takes advantage of new abstractions, like supplies, in its design | ||
_sri | hankache: every time i see RabidGravy say something i'm getting that vibe | 19:06 | |
muraiki | it was certainly not meant as a dismissal of anybody's work | ||
and I apologize if it was interpreted in that manner | |||
gfldex | _sri: type safety for a start, use introspection to deduce binding of arguments that come over the wire. see the following fairly old blog post gfldex.wordpress.com/2010/08/04/wh...t-1-maybe/ | ||
hankache | _sri we like to joke a lot and have fun. One doesn't have to over analyze what people say | 19:07 | |
_sri | guess what, when a bunch of rails core folks joined the elixir community they built a rails clone, and over tie it has grown into phoenix | ||
19:07
Tonik left
|
|||
_sri | *time | 19:07 | |
hankache | _sri if anyone decide to port anything they are more than welcomed, we actually encourage that | 19:08 | |
mspo | github.com/msporleder/6coffees | ||
_sri | no, you really don't | ||
and you're going to regret that soon i believe | 19:09 | ||
hankache | _sri how so ? | ||
FROGGS | O.o | ||
mst | _sri: if you don't feel welcomed, you're welcome to leave | ||
continuing to attack people for not being welcoming enough | |||
_sri | like i regretted discouraging too simple mojolicious plugins back in the days :) | ||
FROGGS | mst: kssshhh! | ||
mst | is going to make them increasingly disinterested in trying | ||
and I'd rather we saved our efforts for people who want to contribute rather than make vague complaints | |||
_sri | choo choo, the mst hate train arrived | ||
muraiki | I think in the back of my mind I was thinking about Seaside. it takes advantage of some unique features of Smalltalk and does things in a Smalltalky way. I like that it does that, even if that makes it fairly unorthodox in design. | 19:10 | |
it'd be neat to see such a thing with p6, but I honestly haven't connected the dots fully :) | |||
mst | FROGGS: sri's had this same rant before already, and still won't explain what he wants people to do differently, sadly | ||
FROGGS | I see | ||
ZoffixW | _sri, so join the Perl 6 community and build the Mojolicious clone :) You're most qualified | 19:11 | |
hankache | _sri I don't get it, I tell you we encourage people to port stuff, you tell me we don't. Yet here I am telling you that we do. | ||
alpha123 | arnsholt: Does anything assume that multiplication on Numerics is commutative? | ||
FROGGS | _sri: usually ppl pop in here and want to work on their projects which are often "small ports" of existing stuff... we help them getting with little thinkos and the design... | ||
_sri | for the record, i really wanted to know what the community thinks would make a web framework perl6-ish | 19:12 | |
mst | I'd love to see _sri explain in concrete terms what we can do to avoid him feeling that we'd "rather not have experienced framework developers" | ||
esp. since there's a fair few of us already in here, myself included | |||
ZoffixW | mst, well, I can point to these comments: irclog.perlgeek.de/perl6/2016-01-05#i_11834253 | ||
Which also rebuke hankache's comments above. | |||
El_Che | perl6 needs whatever libs it can get to get traction, new and ports (imho) | ||
ZoffixW | I can see how that can be interpreted as "we don't want P5 folks porting their stuff to P6" | ||
_sri | well, for starters, i'd feel way more welcomed if the community didn't let mst attack me with a huge wall of rants | 19:13 | |
FROGGS | _sri: a nice extendable API, using the concurrency primitives etc... | ||
19:13
psy_ joined
|
|||
FROGGS | _sri: I mean, it is not easy to define "sixish" | 19:13 | |
alpha123 | maybe some nifty grammar stuff for routes | ||
ZoffixW | Grammars are slow | ||
FROGGS | I'd also have trouble defining P5ish | ||
alpha123 | *for defining routes | ||
flussence isn't interested in welcoming people who only ever show up to pick fights. *plonk* | |||
Skarsnik | FROGGS, any idea how non NC Str end with the nc:explicitmanaged role? gist.github.com/Skarsnik/7f2fee97d56c5acc1587 (The expected Data are not from NC call, but hard put in the code) | ||
_sri | FROGGS: right, and mojolicious for example uses concurrency very extensively | 19:14 | |
arnsholt | alpha123: I have no idea! Hopefully not =) | ||
FROGGS | Skarsnik: hmmm, no, no idea... that's quite surprising | ||
flussence | you can only hug trolls so many times before it becomes obvious they have no intention of changing | ||
19:15
peter__ joined
|
|||
_sri | FROGGS: the perl6 primitives don't really bring much new to the table, besides a little syntax sugar | 19:15 | |
FROGGS | _sri: still that does not make it very 6ish or 5ish or so | ||
RabidGravy | FROGGS, as a complete aside, would you say that multis from C++ overloads is going to work? | ||
Skarsnik | RabidGravy, it could work, since they are mangled | 19:16 | |
FROGGS | RabidGravy: I'm not sure, also because I lack a lot of C++ knowledge... but if you'd add a testcase to t/04-nativecall... | ||
arnsholt | Are C++ overloads late-bound or early-bound though? | ||
19:16
colomon left
|
|||
muraiki | _sri: a bit of a tangent, but have you taken a look at p6sgi/p6w? it could use some input, especially re: websocket. github.com/zostay/P6SGI | 19:16 | |
FROGGS | arnsholt: I'd guess the latter | 19:17 | |
hankache | _sri let's backtrack a bit. Do you see any advantages of Perl 6 over Perl 5? | ||
RabidGravy | yeah the mangling somehow encodes the signature, but how I don't know | ||
nine | _sri: I'm curious as I've never tried mojolicious. How can it do concurrency well, when Perl 5 doesn't have any useful threading? You mean async network handling? | ||
alpha123 | arnsholt: Just from a cursory reading of the docs, it seems to suggest Numerics consist only of Real and Complex | ||
FROGGS | RabidGravy: if we are talking about multi methods in Perl 6 that map to their overloads in C++, then I'd say they should work | ||
arnsholt | FROGGS: Then generating a multi would give semantics from the C++ side. I'd be *very* careful about that | 19:18 | |
_sri | hankache: yes, i don't believe in that kind of abstraction, it's antiquated | ||
hankache: you just have to look at rails right now, they are in so much trouble because rack is holding them back | |||
FROGGS | arnsholt: I think I was thinking something else... render my sentence rubbish | 19:19 | |
muraiki | _sri: did you mean those comments for me? heh | ||
_sri | nine: concurrency, not parallelism | ||
19:19
pi4 left
|
|||
_sri | oops, i meant nine | 19:20 | |
argh | |||
masak | :) | ||
ZoffixW | :D | ||
19:20
pi4 joined
|
|||
_sri | let me sort through the conversations ;p | 19:20 | |
FROGGS .oO( time for a cuppa? ) | |||
masak | take your time | ||
PerlJam | _sri: the one thing you'll find lots of on #perl6 is ... forgiveness :) | ||
masak | we ran out of permission long ago | 19:21 | |
_sri | muraiki: yes, i actually did mean you there :) | ||
19:22
pierre-vigier left
|
|||
muraiki | _sri: hehe, thanks. I'd be really interested in knowing more about the ruby/rack situation, if you could point me in any kind of direction. I also am not fully sure about the advantages of that abstraction, but I'm just a framework consumer, not author | 19:22 | |
_sri | hankache: that is a very interesting question, and actually, so far, i do not see any features in perl6 yet that would be a huge advantage for a web framework | ||
nine | _sri: ok, so concurrency as in async. What about parallelism? Wouldn't that bring interesting new possibilities to a framework? | ||
FROGGS | tadzik: ping | ||
PerlJam | nine: I don't think so (regardless of what _sri will tell you :) | 19:23 | |
(assuming you mean "web framework" there) | |||
_sri | nine: it could make a few things easier, but it's not actually groundbreaking | ||
19:23
peter__ left
|
|||
hankache | _sri how would one know if they never tried ? | 19:24 | |
_sri | nine: like i said before, bigh performance web servers in C tend to use the "prefork a bunch of event loops" architecture | ||
masak | that makes sense | ||
_sri | hankache: because there's a lot of experience already out there from implementing web servers in all kinds of ways | 19:25 | |
FROGGS | sure, you dont need any interaction between the workers | ||
PerlJam | hankache: the problem is that at the level of "web framework" the problem space has been well-expored. You'd have to build something at a higher level of abstraction for Perl 6 to do anything ground breaking (IMHO) | ||
*explored | |||
ZoffixW nods | |||
PerlJam should just stop typing and let _sri speak for him ;) | 19:26 | ||
_sri | and note that i specifically mention web servers, because if you don't implement your own web server, you'll prolly not be able to benefit much from your concurrency/parallelism primites anyway | ||
ZoffixW | And not at the Yet Another CMS level. Something lower than that | ||
muraiki | PerlJam: yeah, that's why I mentioned Seaside for Smalltalk. for instance, if you hit a bug in a method, you can fix that method -- whether from the smalltalk environment or even in your browser -- and then resume execution as if the error hadn't occurred | ||
nine | I would love to be able to render page content on a different thread than the surrounding layout. | ||
hankache | indeed but this is an opportunity | ||
alpha123 | nine: I feel like that causes more potential problems than it solves, plus rendering is hardly much of a bottleneck anyway | 19:27 | |
DrForr | Vote for YAPC::EU keynote speakers at blog.cluj.pm/post/vote-your-keynote...urope-2016 | ||
_sri | muraiki: while seaside was a breath of fresh air, it ultimately failed | ||
nine | Or even different parts of the layout on different threads and combine them later. | ||
alpha123: well it is in our case | |||
muraiki | _sri: yes, a failure I lament :( I think it was bad timing... it explicitly was "heterodox" as the world moved to things like REST | ||
19:27
sprocket_ joined,
peter__ joined
|
|||
alpha123 | nine: Oh? What are you doing that takes so long? | 19:28 | |
PerlJam | muraiki: hasn't that *always* been smalltalks problem? ;) | ||
19:28
peter__ left
|
|||
_sri | muraiki: naah, you want to avoid server-side state, it just doesn't fit | 19:28 | |
muraiki | PerlJam: haha :) yeah, things like not being able to use your existing tools (unless smalltalk works with gnu smalltalk) are a big barrier | ||
nine | alpha123: it's...complicated and would take too long to explain, as I should be with my girlfriend right now :) Parts are explained in niner.name/DTML_Compiler.pdf though | ||
muraiki | _sri: yup | ||
alpha123 | nine: Alright, have fun | 19:29 | |
_sri | regarding threads, how expensive is a thread in perl6 these days memory wise? | ||
these days you have to assume 10-100k concurrent sockets | 19:30 | ||
PerlJam | I dunno if anyone has done a memory profile of threads yet | ||
_sri is actually regularly running mojolicious benchmarks with 20k sockets | |||
19:31
ZoffixW left
|
|||
_sri | if you throw a bunch of threads at every socket, you migth get in trouble fast | 19:31 | |
worse if you sockets are http/2, then you might have a few dozen streams multiplexed on every socket, each using a bunch of threads for rendering a template or whatever ;p | 19:32 | ||
muraiki | is there any info on how p6 threads work? IIRC supplies use a thread pool. are these full os level threads, or something more lightweight? | ||
lizmat | afaik, the ThreadPool is a pool of OS threads | 19:33 | |
now, scheduling something to be executed asyncly, just means that: it's scheduled | |||
19:33
yqt joined
|
|||
lizmat | it will be executed when a thread becomes available from the ThreadPool | 19:33 | |
_sri | i'd also be interested in more information about garbage collection in perl6 and threads... historically garbage collection pauses are a big problem for web servers | 19:34 | |
nine | _sri: we usually have just a couple of page requests per second. Our challange is to make individual requests faster, not handle Millions | ||
timotimo | right. additionally, you're free to build your own scheduler, or use one of the pre-made ones, like the CurrentThreadScheduler | ||
lizmat | timotimo might know the most about gc | ||
and delays caused by it | |||
timotimo | right, i can give you an overview | ||
don't know very much about delays; our gc is somewhat fast, in general | 19:35 | ||
we don't have "proper" multi-threaded profiling yet, though | |||
each thread has its own nursery of 4 MB (inspired by the typical size of the l3 cache) | |||
19:35
colomon joined
|
|||
timotimo | when one nursery runs out, the corresponding thread will signal all other threads that a GC run is supposed to start | 19:36 | |
_sri | nine: modern browsers can open 6 sockets to your web server for one page | ||
nine: not to mention websockets of course | |||
timotimo | then all threads will collect stuff in their nurseries in parallel, and there's some "work stealing" that i haven't bothered to look at yet | ||
when one thread is currently "blocked" (for example, executing native code via NativeCall, or doing something else that makes it unable to participate in GC), it'll have its work done by another thread | 19:37 | ||
lizmat | are these cleanup jobs scheduled like other jobs? | ||
timotimo | it's an entirely separate system that does GC "orchestration" | 19:38 | |
it's also per-os-native-thread | |||
lizmat | ah, because it's on MoarVM level, rather than Perl6 :-) | ||
timotimo | right | 19:39 | |
_sri | timotimo: does the gc algorithm have a fancy name i can google? :) | ||
[Coke] | _sri: I'm not sure people think mojolicious isn't six-ish. I just recall a conversation where you said basically, don't use the mojo name on whatever you end up working on in Perl 6, and I respect that. | ||
(this in relation to your first send today) | |||
timotimo | _sri: jnthn gave a presentation on GCs and says a whole lot about MoarVM's GC in that talk | ||
_sri | [Coke]: right, i was not referring to that | ||
timotimo | jnthn.net/papers/2013-bs-secret-life-of-gc.pdf | 19:40 | |
www.infoq.com/presentations/termino...-collector | |||
[Coke] | _sri: hokay. Just wanted to me sure you and I were OK. | ||
timotimo | in general, moar's GC is a "bump-the-pointer compacting" nursery with a non-moving generation two with a free-list. on top of that, it's parallel, but not concurrent | 19:41 | |
and the nurseries are separate | |||
arnsholt | _sri: Basically, it's a hemi-space copying GC for the nursery, with an older generation that is collected less frequently | ||
nine | _sri: so 6 sockets * 10 requests per second * 5 threads is still a very manageable 300 tasks per second that can be distributed to 24 threads for our 24 core server. | 19:42 | |
Really afk now... | |||
19:42
vendethiel left,
vendethiel joined
|
|||
timotimo | oh, semi-space, i forgot that word | 19:43 | |
mspo | hemi-space would be more awesome | 19:44 | |
timotimo | hemi-spheres? | ||
arnsholt | Well, hemi- is Greek and semi- is Latin for the same, so not a big difference, really | 19:45 | |
mspo | en.wikipedia.org/wiki/Hemispherica...on_chamber | ||
timotimo | ah, ok | ||
what's the latin word for this kind of "space"? | |||
arnsholt | But I think timotimo is right that the actual term is semi-space, not hemi-space | ||
_sri | nine: 10 rps is very very slow, i think for a real app 600 rps is a better goal | 19:46 | |
arnsholt | Latin for "space" is "spatio" | ||
timotimo | this isn't about which word is right | ||
but which word is cool | |||
muraiki | timotimo++ | ||
El_Che | locus? | ||
timotimo | so, hemi-spatio garbage collection? :P | ||
arnsholt | No, locus is place | ||
semi-spatio =) | |||
timotimo | demi-spatio? | ||
El_Che | place and space are synonims | ||
arnsholt | For hemi- we'd need the *Greek* word, which I have no idea what is, sadly =) | ||
timotimo | El_Che: except if one means location and the other means expanse | ||
El_Che | firmamentum is pretty cool | 19:47 | |
_sri | arnsholt/timotimo: interesting, is there another language runtime that uses something similar? | ||
timotimo | arnsholt: in this case it's the same joke as "polyamorism is wrong!! you can't mix greek and latin like that!" | ||
_sri: no idea. | |||
El_Che | (still use in spanish and french for space/universe) | ||
19:48
DrArch left
|
|||
arnsholt | _sri: Semi-space copying is what most Lisp machines used, AIUI | 19:48 | |
timotimo: Pretty much, yeah =) | |||
_sri | [Coke]: absolutely, i was only referring to the pattern i see repeating here every other day... someone asks for a framework port, some folks say that no framework out there is perl6-ish, so ports make no sense, and then nobody elaborates on what that actually means | 19:49 | |
and what always bugs me a little is the anti-perl5-ish undertone | 19:50 | ||
arnsholt: wait, like cheney's algorithm? | 19:52 | ||
tadzik | FROGGS: pong | ||
hankache | _sri most of the time people are joking, really don't take it word for word | ||
FROGGS | tadzik: I want to add a --bin-prefix option to panda | ||
arnsholt | _sri: Skimming the Wikipedia page for that, that's it yeah | 19:53 | |
_sri | arnsholt: ah! | ||
i thought that was considered antiquated now | 19:55 | ||
tadzik | FROGGS: what for? Please don't say "for bins" :P | ||
FROGGS | *g* | ||
tadzik: for rakudo star actually... we install into a common bin folder | |||
_sri | (not that i know anything about gc algorithms) | ||
FROGGS | tadzik: so the modules go into site, but the scripts dont | ||
tadzik | I see | 19:56 | |
I guess it makes sense | |||
FROGGS | I think so... | 19:57 | |
arnsholt | _sri: Not too antiquated I think. Most importantly it's an improvement over stop-the-world for very little additional algorithmic complexity, I think | ||
Not to mention that I think jnthn has prioritized correctness over speed =) | |||
FROGGS | even when you have other repositories... you potentially want to put just a few bin directories in path | ||
timotimo | the thing is, if you don't have stop-the-world, you need to check much more often in your C code whether or not an object you've been working on has been moved in the mean time | 19:59 | |
19:59
pierre-vigier joined
|
|||
gfldex | is there a buildin to hexdump a Buf or Blob? | 20:00 | |
timotimo | so the C code becomes more complicated and easier to do wrong | ||
gfldex: you can .fmt("%x", "") | |||
PerlJam | gfldex: I wrote github.com/perlpilot/p6-HexDump-Tiny a while ago | 20:01 | |
20:01
_Dave_ joined
|
|||
gfldex | m: my Buf $rn .=new("\r\n".encode); say $rn.fmt("%x"); | 20:02 | |
camelia | rakudo-moar 75c6b9: OUTPUT«Method 'fmt' not found for invocant of class 'Buf' in block <unit> at /tmp/wdBgSoOKoT line 1» | ||
timotimo | PerlJam: it doesn't look like your code would actually work on a buf or blob? | ||
oh, sorry, it'd have to be .list.fmt("%x") | |||
m: my Buf $rn .=new("\r\n".encode); say $rn.list.fmt("%x"); | 20:03 | ||
camelia | rakudo-moar 75c6b9: OUTPUT«d a» | ||
timotimo | m: my Buf $rn .=new("\r\n".encode); say $rn.list.fmt("%2x"); | ||
camelia | rakudo-moar 75c6b9: OUTPUT« d a» | ||
timotimo | m: my Buf $rn .=new("\r\n".encode); say $rn.list.fmt("%02x"); | ||
camelia | rakudo-moar 75c6b9: OUTPUT«0d 0a» | ||
gfldex | m: my Buf $rn .=new("\r\n".encode); say $rn.list.fmt("%X"); | ||
camelia | rakudo-moar 75c6b9: OUTPUT«D A» | ||
timotimo | m: my Buf $rn .=new("\r\n".encode); say $rn.list.fmt("0x%02x"); | ||
camelia | rakudo-moar 75c6b9: OUTPUT«0x0d 0x0a» | ||
PerlJam | timotimo: I actually don't remember, but if someone wants to *make* it work on a Buf or a Blob ... :) | 20:04 | |
timotimo | should be easy with a little bit of multi sub | 20:05 | |
gfldex | i'm trying to fix HTTP::Server::Async and got 2 bugs fixed and am now stuck with the last test that fails | 20:08 | |
github.com/tony-o/perl6-http-serve...uestecho.t is giving me troubles and i have no idea if the test is faulty or not | |||
i don't understand how \r\n and :bin work together | 20:09 | ||
hance the need for hexdump :) | |||
CIAvash | _sri: I'v been waiting for a Mojolicious port since your interview :) | 20:12 | |
www.josetteorama.com/all-about-mojo...el-part-2/ | |||
RabidGravy | gfldex, I had a look at that too, I'm pretty certain that's what it is, but I think the chunk parser is a little fragile anyway | 20:13 | |
gfldex | RabidGravy: i had to add a .trim in the chunk parser to get rid of leading newlines. That may however not be a fix at all because .write is the binary form of .print . | 20:15 | |
RabidGravy | FROGGS, I think the GNU symbol mangler needs a few extra cases, as I'm seeing different param letters than there are | 20:16 | |
FROGGS | RabidGravy: quite likely | 20:17 | |
RabidGravy | e.g. uint32 -> 'j' | ||
I'll add some new tests | |||
Skarsnik | :) NC could need some more test x) | ||
RabidGravy | is there an equivalent to 'nm' for Windows so one can see the mangled names? | 20:18 | |
timotimo | it'd surprise me if gnu nm doesn't support windows executables | 20:19 | |
FROGGS | RabidGravy++ | 20:20 | |
_sri | CIAvash: heh, is there anything specific in perl6 that you're looking forward to using? | ||
FROGGS | RabidGravy: dumpbin /exports 11-cpp.dll | 20:21 | |
timotimo: I guess you can't use nm if the dll was compiled with MSVC | |||
timotimo | oh | 20:22 | |
FROGGS | but I never tried actually | ||
20:23
darutoko left
|
|||
mspo | _sri: it might be nice to able to use multi subs somehow in ->to() | 20:23 | |
RabidGravy | I don't have windows but I am going to add some tests that will almost certainly fail on windows | 20:24 | |
_sri | mspo: i think the route would maybe define how to unpack parameters into arguments | ||
mspo: and you just define your .to('foo#bar') as usual | 20:25 | ||
mspo | _sri: http 2 support would be nice | ||
not 6 specific, though | |||
20:25
Twirl joined
|
|||
_sri | mspo: as it happens, multiple dispatch is actually used in phoenix framework | 20:26 | |
20:26
domidumont left,
ZoffixW joined
|
|||
mspo | _sri: I'd like to see an erlang gun-style split for protocol picking | 20:26 | |
ZoffixW | I think this conversation sprung up a few times in the past, but... is there a way to reload a module without restarting the whole program? | ||
My usecase is an IRC bot that I have to restart and reconnect to just to have it crash due to a syntax error in one of the modules it uses. | 20:27 | ||
mspo | _sri: and since perl-ish is super flexible it could be http/1.1, http/2, and eventually zeromq etc | ||
ZoffixW | Would be nice to have something that'd let it stay connected while I develop that module. | ||
mspo | basically | 20:28 | |
flussence | ZoffixW: that's kind of a rare feature in any language | ||
_sri | mspo: i'm not actually familiar with gun | ||
mspo | I want easier/better erlang :) | ||
_sri | elixir is pretty great | ||
mspo | _sri: sorry I mean ranch | ||
flussence | ZoffixW: best you could probably do is have a syntax check in the restart command | ||
mspo | _sri: ninenines.eu/ | ||
FROGGS | RabidGravy: I can test these with MSVC and gcc on windows | ||
ZoffixW | flussence, I've seen python bots do that and I'm sure it's possible to do in Perl 5 too. | ||
mspo | to be able to connect to my web server and reload code, restart stuff, insepct things, live change configs | 20:29 | |
_sri: cowboy is what phoenix is using | |||
_sri: but that's all on the network and web server side, not the framework side | |||
flussence | ZoffixW: maybe my definition of "reload a module" is too picky here :) | ||
Skarsnik | Zoffix, for the crash part a try could maybe work? | ||
but with precomp I am not sure if you can for the reload of a module | 20:30 | ||
mspo | _sri: I'd like to see more hooks in the execution cycle and I'm also a fan of the "middleware" concept found in golang web dev :) | ||
Skarsnik | *force | ||
ZoffixW | Skarsnik, that doesn't help, since I want it to use the updated code, once I fix the error | ||
20:30
grondilu left
|
|||
Skarsnik | Zoffix, my guess is like in perl5, remove the module from the loaded list and require the file again | 20:30 | |
awwaiid | middleware all the things! | ||
_sri | mspo: ah, we are actually redesigning that part of mojolicious right now :) | 20:31 | |
mspo | _sri: which part? | ||
_sri | mspo: socket/protocol stack | ||
Skarsnik | I am not sure how you can clear the symbol loaded from the file thouh | ||
mspo | _sri: is that *in* mojo or somehow split in hypnotoad/morbo? | ||
20:32
grondilu joined
|
|||
_sri | mspo: the issue doesn't look very fancy, but it's just that, more pluggable protocols github.com/kraih/mojo/issues/876 | 20:32 | |
ugexe | GLOBAL::<Symbol>:delete | ||
CIAvash | _sri: That's hard to answer :) I like a lot of new features that are in Perl 6, and that Perl 6 looks much cleaner. It's like what you said: "I love Perl6 the language, it solves all the problems I have with Perl5" | ||
mspo | cool | ||
_sri | mspo: if you want to help, jberger is leading the effort atm | ||
ZoffixW | ugexe, you make it sound so easy :) | 20:33 | |
GLOBAL::<IRC::Client::Plugin::Factoid>:delete; require IRC::Client::Plugin::Factoid; isn't working | 20:36 | ||
Skarsnik | You need to remove the file from the loaded stuff | ||
too | |||
ZoffixW | Skarsnik, what's "loaded stuff"? Any docs? | 20:37 | |
Skarsnik | that how it work in perl5, you delete the entry in @INC | ||
20:37
pjscott joined
|
|||
Skarsnik | the undocumented? $*REPO stuff maybe? | 20:37 | |
20:40
itaipu joined
|
|||
gfldex | RabidGravy: i think i found the problem "34 0d 0a 00 57 69 6b 69 0d 0a" that's a hexdump from inside the chunk parser and i'm quite sure those zero bytes don't belong there. Sadly I have no idea where they might come from. | 20:40 | |
ZoffixW | :o whatsthis? github.com/rakudo/rakudo/blob/nom/...ion.pm#L23 | 20:41 | |
Looks mighty scary | |||
ugexe | its the wrapper for bin files, so when the bin files get precompiled eventually there is a perl6 entry point to load it | ||
20:43
zakharyas joined
|
|||
ZoffixW | Ah | 20:43 | |
dalek | ar/release: 27046e3 | FROGGS++ | / (5 files): first working post 6.c star |
20:44 | |
20:44
wamba left
|
|||
ZoffixW | woooo | 20:44 | |
muraiki | yay | ||
20:44
Ch0c0late joined
|
|||
FROGGS | it contains two patches though, one for panda and one for rakudo | 20:44 | |
hankache | FROGGS++ | 20:45 | |
20:46
pjscott left
|
|||
Skarsnik | Zoffix, hm, does not look there is something public to remove an entry | 20:46 | |
ZoffixW | :9 | 20:47 | |
*:( | |||
Ah well. | |||
20:47
CIAvash left
|
|||
Skarsnik | ask nine x) | 20:48 | |
RabidGravy | gfldex, no I don't know where it comes from either | ||
_sri | mspo: cowboy looks pretty well designed, i'd really like to get more of that kind of abstraction into mojolicious | ||
mspo | _sri: yeah it's generally considered best of breed in that world | 20:49 | |
20:50
ZoffixW left
20:51
pjscott joined
|
|||
dalek | jo6: 014fb0a | coke++ | README.md: update status |
20:52 | |
kudo-star-daily: a66c76e | coke++ | log/ (10 files): today (automated commit) |
|||
20:53
kaare_ left
|
|||
[Coke] | _sri: ^^ in case anyone finds the mostly abandoned mojo6 repo. | 20:53 | |
_sri | [Coke]++ | 20:54 | |
20:56
geraud joined,
Twirl left
20:58
pjscott left
20:59
pjscott joined
21:00
bzipitidoo joined
|
|||
AlexDaniel | m: for ^10 { FIRST { say ‘first!’ }; SECOND { say ‘second!’ }; .say } | 21:02 | |
camelia | rakudo-moar 75c6b9: OUTPUT«5===SORRY!5=== Error while compiling /tmp/RJf6pMd8ZsUndeclared name: SECOND used at line 1» | ||
AlexDaniel | :) | ||
21:02
espadrine left
21:07
pjscott left,
aartist joined
|
|||
[Coke] | I am actually really looking forward to getting a web framework in place. My previous requirement of having to run in a j2ee container is gone (we have docker now), so I could pretty easily spin up a prototype at work using Perl 6. (My biggest concern is DB stuff, which I hope will be set by the time I get there. :) | 21:10 | |
21:10
ennio joined
|
|||
[Coke] | I hope after the next monthly release I'll have time to hack on Perl 6 apps and modules, not just project-y stuff. | 21:10 | |
gfldex | RabidGravy: found it in 'method listen' we find '$data ~= $bytes;' that are of type (Buf) and (Buf[uint8]) resulting in \0 injected into $data. I'm not sure if string concatenation should be allowed with Buf in the first place. | ||
Skarsnik | It's weird we don't get more contribution in the 'main' modules yet | 21:11 | |
like DBIish | |||
moritz | but we do | 21:12 | |
a year ago, DBIish was nearly dormant | |||
21:12
leat joined
|
|||
Skarsnik | I mean since the release | 21:12 | |
RabidGravy | FROGGS, my working hypothesis for GNU name mangling is that the unsigned foo gets the next letter from foo | ||
gfldex | m: my Buf $buff1 = "abc\r\n".encode; my Buf[uint8] $buff2 = "123\r\n".encode; $buff1 ~= $buff2; $buff1.list.fmt("%02x").say; | ||
camelia | rakudo-moar 75c6b9: OUTPUT«Type check failed in assignment to $buff1; expected Buf but got utf8 in block <unit> at /tmp/BXq3iF8sSZ line 1» | ||
RabidGravy | Skarsnik, I've even had issues and PRs on my modules and nobody uses them :) | 21:13 | |
gfldex | i need $buff2 to be of type Buf[uint8], any idea how to cast that? | ||
leat | build failing with No writeable path found in block <unit> at tools/build/install-core-dist.pl line 12 (2015.12) bpaste.net/raw/df1d3069d00a | ||
moritz | gfldex: can't you type that as Blob[uint8]? | ||
gfldex | moritz: it has to be that to golf a bug | ||
FROGGS | RabidGravy: there are tables on wikipedia about name mangling | ||
RabidGravy | I've gone so far as Buf[uint8].new($buff1.list) before :) | 21:14 | |
gfldex | moritz: it's comming from from a IO::Socket::Async so it may even be some vmish stuff spilling into Perl 6 | ||
Skarsnik | interesting document www.agner.org/optimize/calling_conventions.pdf | 21:15 | |
RabidGravy | FROGGS, oh right, I'm quite liking my experimental approach at the moment | ||
:) | |||
moritz | gfldex: but why does it need to be a Buf and not a Blob? | ||
FROGGS | :o) | ||
gfldex | moritz: because that's the type that spills out of the socket (into the .tap callback). I can hardly golf that with the wrong type. | 21:16 | |
21:19
pjscott joined
|
|||
gfldex | m: my Buf $buff1 .= new("abc\r\n".encode.list); my Buf[uint8] $buff2 .= new("123\r\n".encode.list); $buff1 ~= $buff2; $buff1.list.fmt("%02x").say; | 21:19 | |
camelia | rakudo-moar 75c6b9: OUTPUT«61 62 63 0d 0a 31 32 33 0d 0a» | ||
gfldex | ENOREPRODUCE | ||
21:19
pjscott left
|
|||
gfldex | :-/ | 21:19 | |
21:21
aenaxi joined
|
|||
gfldex | m: my Buf $buff1 .= new("abc\r\n".encode.list); my Buf[uint8] $buff2 .= new("123\r\n".encode.list); $buff1 ~= $buff2; $buff1.list.fmt("%02x").say; say " length of buff1: {$buff1.elems} length of buff2: {$buff2.elems} "; | 21:23 | |
camelia | rakudo-moar 75c6b9: OUTPUT«61 62 63 0d 0a 31 32 33 0d 0a length of buff1: 10 length of buff2: 5 » | ||
gfldex | rakudo is bad at counting! | ||
21:24
xfix joined,
ilbelkyr is now known as u
|
|||
gfldex | or does it store utf8 in Buf as uint16? | 21:24 | |
Skarsnik | why? 5 and 10 seems right | ||
gfldex | nvm | 21:25 | |
aartist | Is there windows installation of Perl 6 ? | ||
Skarsnik | abc\r\n is five 123\r\n is 5 too x) | ||
aartist, yes but we only have old msi file, you will need to build rakudo yourself | |||
21:26
pierre-v_ joined
|
|||
gfldex | aartist: windows msis tend to be released a week after a Rakudo Star release | 21:27 | |
moritz | ... and we're still working on the star release for 2015.12 | ||
21:27
pierrot_ joined
21:28
pierrot left
|
|||
aartist | thanks. Any aprox. date? | 21:28 | |
21:28
pierre-vigier left
|
|||
moritz | "this month" | 21:29 | |
lizmat | Amsterdam.pm shutting down& | ||
21:29
lizmat left,
zakharyas left
|
|||
RabidGravy | right, unsigned long, and unsigned long long and I think we're good | 21:29 | |
aartist | moritz: Thank you. | 21:30 | |
RabidGravy | I assume uint32 and uint64 | 21:31 | |
aartist | Is perl6 a comfortable journey, if you are coming from perl5 background? | 21:32 | |
moritz | aartist: on the language level, yes. The tooling still tends to be a bit on the adventurous side | 21:33 | |
gfldex | aartist: that's a very subjective question | ||
chansen_ | aartist: It depends on prior experience with other languages besides Perl5 | ||
21:34
sno left
|
|||
aartist | chansen_: which language? | 21:34 | |
alpha123 | perl6 borrowed a lot from Haskell, so maybe that | 21:35 | |
and maybe common lisp or some other language with multimethods | 21:36 | ||
21:36
firstdayonthejob left
|
|||
moritz | you don't need any Haskell knowledge to learn Perl 6 | 21:36 | |
aartist | More interesting question is that does Perl6 provide a good experience to an experienced programmer. | ||
alpha123 | Obviously that's a very subjective question but in my experience the answer is YES! | 21:37 | |
21:37
hankache left
|
|||
moritz | it gives you lots of ways to express yourself (and also enough rope to hang yourself, obviously) | 21:37 | |
alpha123 | moritz: No, but it might make it more comfortable | ||
aartist | alpha123: Thanks. Hopefully it will be an industry standard soon. | 21:38 | |
alpha123 hopes one day Perll6 and Idris will take over the world | |||
21:39
u is now known as ilbelkyr
|
|||
ugexe | windows handling of %*ENV and/or run seem to be slightly off. on my installation of windows anyway %*ENV<PATH> == Any, and %*ENV<Path> contains the path info. S02-magicals has a few tests that use %*ENV<PATH> | 21:40 | |
chansen_ | aartist: Haskell/lisp, knowledge about traits/roles help. The Perl6 language is large, much larger than Perl5. | ||
21:41
rindolf left
|
|||
alpha123 | In some ways it's also smaller, if you know what things desugar to (since a lot of P6 is written in P6) | 21:42 | |
aartist | chansen_: Please explain/point to "much larger" part. | ||
alpha123 | (Perl6 has a LOT of features) | ||
Skarsnik | unsigned int I ui ui Ui j j (2 last value are gnu3+) | 21:44 | |
chansen_ | aartist: I don't know how to quantify it besides pointing you to the spec/design <design.perl6.org> | ||
21:44
patrickz joined
|
|||
aartist | Thanks alpha123 Loooking at : www.perlfoundation.org/perl6/index....ature_list | 21:44 | |
Skarsnik | RabidGravy, www.agner.org/optimize/calling_conventions.pdf you have the mangling list x) | 21:45 | |
patrickz | Hey! Anyone going to FOSDEM this year? Or even giving a talk? | ||
yoleaux | 31 Dec 2015 08:57Z <ugexe> patrickz: gist.github.com/ugexe/d57168ebc0ac0e6261a0 | ||
moritz | aartist: Perl 6 has so much built in that Perl 5 doesn't have, or only through modules: a decent OO system, grammers, concurrency constructs, Unicode operations etc. | ||
21:45
cognominal left
|
|||
RabidGravy | Skarsnik++ yay! | 21:45 | |
21:46
cognominal joined
|
|||
aartist | moritz: Nice to know, definitely a good learning curve. | 21:46 | |
Is Perl6 expected to replace other langauge or discourage growth of any other languages like PHP, Pyhon, Ruby with its superior featre list? | 21:50 | ||
Zoffix | aartist, jobs are always a competition :) | ||
moritz | aartist: we don't want to discourage anybody from using the languages they love | 21:51 | |
21:51
_Vi joined
|
|||
moritz | aartist: we just want to encourage everybody to love Perl 6 best :-) | 21:51 | |
21:51
firstdayonthejob joined
|
|||
RabidGravy | :) | 21:51 | |
Skarsnik, the actual type encodings are best described here | 21:52 | ||
mentorembedded.github.io/cxx-abi/ab...l#mangling | |||
chansen_ | aartist: Perl6 is the language other dynamic languages like Ruby/Python will steal from in the future, just as they did when Perl5 was young | ||
Skarsnik | RabidGravy, put the link on the test file if you write one ^^ | 21:53 | |
21:53
sno joined
|
|||
alpha123 is already stealing from Perl6 in his scripting language.... | 21:53 | ||
At the very least it sets a new standard for less-broken Unicode support | 21:54 | ||
21:54
lostinfog joined
|
|||
PerlJam | chansen++ well put :) | 21:55 | |
aartist | What is the chance of an expert perl6 programmer finding a good place on the industry solely based on Pel6 knowledge? | ||
alpha123 | give or take about 0% | ||
PerlJam | aartist: right now? pretty close to 0 | ||
chansen_ | alpha123: Apple has Swift deployed on billion of devices which implements strings pretty decent! | ||
Zoffix | aartist, yes, if you forget all of your Perl 5 :) RE: <aartist> Is perl6 a comfortable journey, if you are coming from perl5 background? | ||
PerlJam | aartist: Unless your name is Jonathan Worthington :) | ||
alpha123 | chansen_: Yeah swift also has less broken unicode, though it is at a lower level than Perl6 | 21:56 | |
Zoffix | aartist, the first production release of Perl 6 happened a week and a half ago :) It's too soon talking industry jobs. Give it a 1-3 years | ||
aartist, ...which you could use to become an expert perl6 programmer ^_^ | |||
21:57
zengargoyle joined
|
|||
aartist | Zoffix: THhanks: It is an investment time. | 21:57 | |
[Coke] | Someone should find... jnthn's? comparison of swift strings vs. moar strings. ISTR that swift has a runtime penalty working on long strings because of how you have to deal with your position in the string. | ||
zengargoyle | good * #perl6 | 21:58 | |
zengargoyle setting up new laptop *yay* | 21:59 | ||
Skarsnik | :) | ||
22:01
SwellJoe left
|
|||
chansen_ | alpha123: Theoretical or practical broken? Why is Perl6's model superior the Unicode specification? | 22:01 | |
ennio | Hello! is there a way to define something like shared traits? like to avoid repeating "is native(foo) is export" on every line of a module using NativeCall? | 22:02 | |
alpha123 | chansen_: I didn't say it was, but Perl6 unicode is more pleasant to work with largely thanks to excellent grapheme support | 22:03 | |
PerlJam | ennio: macros might do it when they are mature. | ||
alpha123 | While theoretically swift is quite sound, and I understand the choices it makes, sometimes you want some string functions that make reasonable assumptions | ||
Zoffix | alpha123, are you saying Swift has more or less broken Unicode than Perl 6? | 22:04 | |
ennio | PerlJam: thx... I'll be patient then :) | ||
PerlJam | ennio: you might be able to do some "meta-programming" where, as part of the module installation, you iterate over the routines you want "is native" and "is export" | ||
(and make them so) | |||
alpha123 | Zoffix: I'm saying swift has less broken unicode than most languages, as does P6 | ||
Zoffix | Got it. | ||
chansen_ | alpha123: What's excellent with Perl6's grapheme support? | 22:06 | |
PerlJam | ennio: and I'll stress *might* in what I said above as I'm not sure when the "is native" part needs to happen. (I think it's easy-ish for exporting though) | ||
22:06
donaldh joined
|
|||
alpha123 | chansen_: Well, most languages work on characters or codepoints (and thus are broken) and dont have a notion of graphemes | 22:07 | |
so substr(), regexes, etc | 22:08 | ||
all work properly in p6 | |||
chansen_ | alpha123: Let me rephrase the question: What's spectacular with Perl6's grapheme support? | 22:10 | |
22:11
skids left
|
|||
PerlJam | chansen_: even for those languages that do have a notion of grapheme, they may still compare strings that a human would consider equivalent as being different because of the specific combining characters used to generate the strings. | 22:11 | |
chansen_: NFG fixes that and does so efficiently. | |||
alpha123 | chansen_: Well, it has grapheme support, for one thing. Most string operations work on the grapheme level. It handles combining characters correctly too. | 22:12 | |
22:14
SwellJoe joined
|
|||
alpha123 | oh and '.' in regexes matches a grapheme by default | 22:15 | |
22:15
leont joined
22:16
pierre-v_ left
|
|||
Mouq | chansen_: Makes it harder to accidently cut a visual character in two at the byte level | 22:18 | |
bzipitidoo | rakudo: say "hi" | 22:21 | |
camelia | rakudo-moar 75c6b9: OUTPUT«hi» | ||
22:26
yurivish left
22:33
_mg_ left
22:35
cpage_ left
|
|||
chansen_ | PerlJam: I'm not familiar with NFG | 22:36 | |
gfldex | m: multi sub trait_mod:<is>(Routine $r, :$foo!){}; multi sub trait_mod:<is>(Routine $r, :$bar!){}; multi sub trait_mod:<is>(Routine $r, :$combined!){ (&trait_mod:<is>)($r, :foo); (&trait_mod:<is>)($r, :bar) }; sub target () is combined {} | 22:37 | |
camelia | ( no output ) | ||
gfldex | ennio: see ^^^ | ||
traits are subs with a funny syntax | |||
Skarsnik | RabidGravy, do you want me to add c++ support on gptrixie? x) | 22:40 | |
bzipitidoo | m: grammar Test { | 22:41 | |
rule TOP { ^ <content>* $ } | |||
rule block { '(' ~ ')' <content>* } | |||
rule content { <-[()]>+ || <block> } | |||
} | |||
22:41
bzipitidoo left
|
|||
camelia | rakudo-moar 75c6b9: OUTPUT«5===SORRY!5=== Error while compiling /tmp/G9zuFTpbScMissing blockat /tmp/G9zuFTpbSc:1------> 3grammar Test {7⏏5<EOL>» | 22:41 | |
22:41
wamba joined,
bzipitidoo joined
|
|||
chansen_ | Mouq: I agree, I have read both Unicode and ISO 10646 and not familiar with the NFG, guess it's an invented Perl6 acronym | 22:42 | |
timotimo | correct | ||
gfldex | m: gist.github.com/gfldex/17854500ab8050a228ed | ||
camelia | ( no output ) | ||
timotimo | it's the normalization form grapheme | ||
ennio | gfldex: nice! | ||
gfldex | bzipitidoo: camelia speaks gist ^^^ | ||
bzipitidoo | eh, suppose I'll test code some other way | ||
22:43
xfix left
|
|||
Skarsnik | You can use camelia with private message | 22:44 | |
22:45
muraiki left
|
|||
Zoffix | bzipitidoo, you can create a gist and execute it like this: | 22:45 | |
m: gist.github.com/zoffixznet/0b5a4f27246ef235a8bc | |||
camelia | rakudo-moar 75c6b9: OUTPUT«Hallo!» | ||
bzipitidoo | m: gist.github.com/anonymous/4beb237a975e65e6e775 | 22:48 | |
camelia | rakudo-moar 75c6b9: OUTPUT«(a (b))(c (d))* * * * *[[a [b]] [c [d]]]» | ||
chansen_ | timotimo: Why, just why? We all know the effect of the embrace and extend syndrome!? | ||
Zoffix | bzipitidoo, and you can /notice or /msg camelia | 22:49 | |
Zoffix wonders why /notice m: say "42"; results in an ACTION response in /msg rather than a /notice back :S | 22:50 | ||
Mouq | chansen_: As in en.wikipedia.org/wiki/Embrace%2C_e...extinguish ? NFG is internal to Perl 6 programs… | ||
bzipitidoo | well, that's a little different result than parrot 6.6.0 gave: [a [b]] [c [d]] Why did camelia add more brackets? | ||
alpha123 | chansen_: Wait, what are we embracing and extending here? | 22:51 | |
flussence | chansen_: we can do it the sane way, or the ICU way. | ||
timotimo | chansen_: NFG is the only normalization form that gives you string algorithms with O(1) access to individual graphemes | ||
BBIAB, food time | 22:53 | ||
nine | _sri: you misunderstood: I meant that we get a couple of user requests per second. We just don't have more traffic. But we'd like to serve those users faster. | ||
22:53
wamba left
|
|||
chansen_ | timotimo: Only O(1)? | 22:53 | |
alpha123 | .. | 22:54 | |
rjbs | "We'll get it down to O(0) in the next release." | ||
RabidGravy | it's all going to be O(0) when someone gets round JITing on a black hole | ||
alpha123 | I wonder if there are any O(1/n) algorithms for anything at all | 22:55 | |
RabidGravy | what larks | ||
rjbs | alpha123: stackoverflow.com/questions/905551/...algorithms | ||
22:55
SwellJoe left
|
|||
Mouq | bzipitidoo: How is that even happening… ?? | 22:56 | |
alpha123 saw a dank O(√n) for everything data structure once, wish he could find that | 22:57 | ||
Mouq | OH! | ||
m: gist.github.com/Mouq/7eb9d723d7f05a511529 | 22:58 | ||
camelia | rakudo-moar 75c6b9: OUTPUT«(a (b))(c (d))* * * * *[a [b]][c [d]]» | ||
Mouq | m: say ("[a]","[b]") | ||
camelia | rakudo-moar 75c6b9: OUTPUT«([a] [b])» | ||
Mouq | m: say ["[a]","[b]"] | ||
camelia | rakudo-moar 75c6b9: OUTPUT«[[a] [b]]» | ||
lucs | alpha123: Some quantum algorithms allow linear search in O(N**1/2) | 23:01 | |
alpha123 head explodes | |||
23:01
jshy joined
|
|||
RabidGravy | FROGGS, github.com/rakudo/rakudo/pull/675 - you may want to check on Windows MSVC as I can't test that | 23:03 | |
masak | 'night, #perl6 | ||
Mouq | 'night masak :) | 23:04 | |
RabidGravy | toodles | ||
23:04
cpage_ joined
|
|||
ennio | so I played a little bit with NativeCall and libldap, and my conclusion is that it's not too hard to make them talk to each other :) | 23:05 | |
github.com/scriplit/Native-LDAP | |||
RabidGravy | no not at all | ||
a few libraries are a bit iffy but hey | 23:06 | ||
23:10
leont left
23:11
SwellJoe joined
23:13
znpy left,
AlexDaniel left,
kid51 joined
|
|||
Skarsnik | ennio, the ldap lib does not have a version number? | 23:14 | |
23:15
cpage_ left
|
|||
Skarsnik | Or put $*VM.platform-library-name('ldap'.IO).Str; in a constant. otherwise it get call for each routine x) | 23:16 | |
23:16
n0tjack left
|
|||
FROGGS | RabidGravy: will do tomorrow | 23:16 | |
RabidGravy | :) | ||
23:17
pierre-vigier joined
|
|||
ennio | actually is uses libldap_r-2.4.so.2 | 23:17 | |
23:17
n0tjack joined
|
|||
_nadim | hi, a silly question, what was the thinking behind the 'multi' keyword, when multiple methods/sub have the same name, 'multi' is redundant. | 23:17 | |
ennio | there is a libldap symlink to that | ||
_nadim | RabidGravy: any idea about why? | ||
alpha123 | without multi don't overloads single-dispatch? | 23:18 | |
RabidGravy | I guess that that it simplifies the parsing, but I have no inside insight | 23:19 | |
Mouq | _nadim: redeclaration errors are generally considered a good thing where applicable | ||
(is my guess) | |||
Skarsnik | ennio, hm that a weird lib you can put is native('ldap_r-2.4', v2) if it always a weird name like that | ||
RabidGravy | Skarsnik, ennio, yeah I have that library too | 23:20 | |
sprocket_ | hello, p6 | ||
RabidGravy | constant LIB = ('ldap_r-2.4', v2); and is native(LIB) to save typing | ||
23:21
pierre-vigier left
|
|||
RabidGravy | hello sprocket_ | 23:21 | |
Skarsnik | I should probably remove the Callable stuff in the doc. it's pretty bad in insight x) | ||
23:21
n0tjack left
|
|||
sprocket_ | RabidGravy: hey! was that your RPI module that landed the other day? | 23:21 | |
RabidGravy | yeah | 23:22 | |
sprocket_ | great | ||
how’s that project going anyways? | |||
RabidGravy | the SMBus thing works as much as I need it to, I only have the one i²c device | 23:23 | |
sprocket_ | gotcha | ||
Skarsnik | ennio, and Perl 6 have enum if you want to group the ldpa define ^^ | ||
RabidGravy, you need to make a video or your led thing working! | |||
*of | |||
RabidGravy | maybe I'll find something at Maplins that I can test it with | ||
oh yeah I forgot about that | |||
23:25
itaipu left
|
|||
ennio | Skarsnik, RabidGravy: thanks for suggestions! I'm still learnins :) | 23:27 | |
* learning | |||
23:28
jshy left
|
|||
gfldex | m: my Buf $b = Buf.new("123".encode.list); $b=Buf.new($b[0..3]); dd $b | 23:28 | |
camelia | rakudo-moar 75c6b9: OUTPUT«Buf $b = Buf.new(49, 50, 51, 0)» | ||
gfldex | RabidGravy: it was wrong. It's not a problem with concatenation but if off by one array subscript in github.com/tony-o/perl6-http-serve...c.pm6#L136 | 23:29 | |
s/if/of/ | 23:30 | ||
RabidGravy | I suspected that may have been the case | ||
gfldex | that took me only 4 hours to find! | ||
Skarsnik | !( | ||
gfldex | i check $data before and after that line, it kindly add a 0 | 23:31 | |
Skarsnik | ennio, you could give a try to github.com/Skarsnik/gptrixie if you want to not bother write NC stuff | ||
I should add is export on sub x) | |||
gfldex | that leaves the question if [] on a Buf should fail silently like that | ||
RabidGravy | I'm thinking that we might want to split off a really good http chunked encoding parser into the ecosystem | ||
gfldex | RabidGravy: really good and fast may be a contradiction | 23:32 | |
23:32
patrickz left
|
|||
RabidGravy | indeed, the one in HTTP::UA that takuhirom contributed is pretty robust | 23:33 | |
Skarsnik | Maybe http::ua should be split in HTTP::Stuff | 23:36 | |
gfldex | there are other problems with that stuff | ||
23:37
FROGGS left,
skids joined
|
|||
gfldex | let me finish HTTP::Server::Async (all tests are passing OK) and i will elaborate | 23:37 | |
23:37
perlawhirl joined
|
|||
RabidGravy | gfldex++ # fixing stuff | 23:38 | |
Skarsnik | nice | ||
23:41
leont joined
23:42
itaipu joined
|
|||
perlawhirl | hi perlers | 23:47 | |
have a question with sorting hashes in a for-loop | |||
23:47
donaldh left
|
|||
perlawhirl | for loop on hash returns pair | 23:48 | |
m: for { foo => 'bar' }.sort() { say .WHAT; say .perl; } | |||
camelia | rakudo-moar 75c6b9: OUTPUT«(Pair):foo("bar")» | ||
perlawhirl | and does the same if the hash is sorted | ||
m: for { foo => 'bar' }.sort() { say .WHAT; say .perl; } | |||
camelia | rakudo-moar 75c6b9: OUTPUT«(Pair):foo("bar")» | ||
timotimo | you accidentally pasted the same code twice | ||
perlawhirl | erm | ||
m: for { foo => 'bar' }.sort().kv -> $k, $v { say "KEY: $k, VAL: $v"; } | |||
camelia | rakudo-moar 75c6b9: OUTPUT«KEY: 0, VAL: foo bar» | ||
perlawhirl | calling .kv after the sort does not do what i expect | 23:49 | |
timo: oops | |||
m: for { foo => 'bar' } { say .WHAT; say .perl; } | |||
camelia | rakudo-moar 75c6b9: OUTPUT«(Pair):foo("bar")» | ||
Mouq | perlawhirl: sort() returns a list of pairs — there's no 'sorted hash' type | ||
timotimo | that calls .kv on the list that .sort results in | ||
perlawhirl | so can i call .kv without nesting loops, ie for {...} -> $h { for $h.kv -> $k, $v {} } | 23:50 | |
timotimo | you may be confused | ||
perlawhirl | i know i can call the .key and .value methods on the iterable after a sort... just wondering if there's another way | 23:51 | |
Mouq | m: for { foo => 'bar' }.sort -> (:key($k), :value($v)) { say "KEY: $k, VAL: $v"; } | ||
camelia | rakudo-moar 75c6b9: OUTPUT«KEY: foo, VAL: bar» | ||
23:51
joydo joined,
vendethiel left
|
|||
perlawhirl | alright that seems fine. thanks Mouq | 23:52 | |
23:52
Xor_ joined
|
|||
skids | m: for { foo => 'bar' }.sort -> $p (:key($k), :value($v)) { say "PAIR: $p KEY: $k, VAL: $v"; } | 23:52 | |
camelia | rakudo-moar 75c6b9: OUTPUT«PAIR: foo bar KEY: foo, VAL: bar» | ||
perlawhirl | timo: yes i realise the sort returns a list, by virtye of the fact that it's sorted at all ;) | ||
Skarsnik | m: %!_qdb-fields.keys.sort -> $k { my $v = %h{$k}} | ||
camelia | rakudo-moar 75c6b9: OUTPUT«5===SORRY!5=== Error while compiling /tmp/7E64IJ8m92Variable %!_qdb-fields used where no 'self' is availableat /tmp/7E64IJ8m92:1------> 3%!_qdb-fields7⏏5.keys.sort -> $k { my $v = %h{$k}}» | ||
leont | ennio: I would prefer a Net::LDAP style extensible LDAP/ASN.1 framework, but having LDAP in general sounds very useful, yes | 23:53 | |
23:53
Kcop left
|
|||
Skarsnik | m: my %h = { a, 1, c, 3, b, 2 }; %h.keys.sort -> $k { say %h{$k}} | 23:53 | |
camelia | rakudo-moar 75c6b9: OUTPUT«5===SORRY!5=== Error while compiling /tmp/HtgipIyZ1eUnexpected block in infix position (missing statement control word before the expression?)at /tmp/HtgipIyZ1e:1------> 3 %h = { a, 1, c, 3, b, 2 }; %h.keys.sort7⏏5 -> $k { say %h{$k}}…» | ||
Skarsnik | m: my %h = { a, 1, c, 3, b, 2 }; for %h.keys.sort -> $k { say %h{$k}} | 23:54 | |
camelia | rakudo-moar 75c6b9: OUTPUT«5===SORRY!5=== Error while compiling /tmp/2tdzcvdykqUndeclared routines: a used at line 1 b used at line 1 c used at line 1» | ||
Skarsnik | m: my %h = { a => 1, c => 3, b => 2 }; for %h.keys.sort -> $k { say %h{$k}} | ||
camelia | rakudo-moar 75c6b9: OUTPUT«Potential difficulties: Useless use of hash composer on right side of hash assignment; did you mean := instead? at /tmp/4bwSI0262V:1 ------> 3my %h = { a => 1, c => 3, b => 2 }7⏏5; for %h.keys.sort -> $k { say %h{$k}}123» | ||
Skarsnik | m: my %h = a => 1, c => 3, b => 2; for %h.keys.sort -> $k { say %h{$k}} | ||
camelia | rakudo-moar 75c6b9: OUTPUT«123» | ||
gfldex | is it wise right now to tell travos to care about JVM builds? | 23:55 | |
leont | Probably not yet | 23:57 | |
Unless something changed in the past 2 months (I doubt it) | |||
23:58
n0tjack joined
23:59
spider-mario left
|