»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by masak on 12 May 2015.
00:09 jordman joined 00:14 jordman left, vendethiel left 00:24 jordman joined 00:36 vendethiel joined 00:55 colomon left 00:58 mtj_- joined, vendethiel left 01:01 colomon joined 01:09 BenGoldberg joined 01:11 llfourn joined 01:19 rmgk_ joined, rmgk is now known as Guest62902, Guest62902 left, rmgk_ is now known as rmgk 01:22 mtj_ joined 01:30 llfourn left 01:32 telex left 01:34 telex joined 01:39 Ben_Goldberg joined 01:43 BenGoldberg left 02:08 noganex joined 02:10 leedo joined 02:11 noganex_ left 02:15 raiph left 02:16 raiph joined
AlexDaniel how can I print to stderr? Cannot find it 02:24
geekosaur note "foo", or printing to *ERR (IIRC) 02:26
02:26 cognominal left
AlexDaniel note :o 02:26
geekosaur it's the level below "warn" :) 02:27
AlexDaniel geekosaur: thanks
02:30 cognominal joined 02:36 yqt left
PerlJam m: note "This goes to stderr" 02:37
camelia rakudo-moar 48c0ba: OUTPUT«This goes to stderr␤»
PerlJam oh, /me needs to read faster and scroll down more
02:38 average joined
average github.com/jaffa4/Dependency-Sort/...y/Sort.pm6 02:38
guys...
what happened there ?
i looked at the source of that.. i was like "wow, I never thought topological sorting could be sooo complicated" 02:39
am I just stupid or is that code convoluted ?
PerlJam no, you're not stupid :) 02:40
jercos well it is...
average hm
jercos m: (1+2i, 1+1i, -1+1i).sort
camelia ( no output )
jercos m: (1+2i, 1+1i, -1+1i).sort.say
camelia rakudo-moar 48c0ba: OUTPUT«-1+1i 1+1i 1+2i␤»
jercos sort of Complex
average webdocs.cs.ualberta.ca/~contest/co...cal_sort.c 02:41
topo_dfs
it's not big
02:41 gfldex left
average and it looks ok, people can understand it 02:41
compare that to Sort.pm6 above..
something seems wrong
PerlJam average: irclog.perlgeek.de/perl6/2015-07-17#i_10914788 02:42
average PerlJam: i see, so i'm not the first one to notice this 02:43
"the fun part of the topo sort on p6 modules is taking into account multiple package names inside the same file"
"otherwise you end up coloring the same module multiple times while inside a single file" 02:44
i don't find that fun .. honestly
ugexe: ^^
I would be scared to work on things where people would define "fun" like this ^^
PerlJam fun == challenging == non-obvious == makes you stretch your brain 02:45
average well yes 02:46
so my thoughts on that are
there is sufficient complication where it can't be avoided. if you add unneeded complication, things will undoubtedly get out of hand.
02:48 llfourn joined
PerlJam average: are you going to send jaffa4 a PR for a better topo sort? :) 02:48
02:49 raiph left 02:50 nys left 02:53 raiph joined
AlexDaniel m: say 'test' loop; 02:57
camelia rakudo-moar 48c0ba: OUTPUT«5===SORRY!5=== Error while compiling /tmp/nUjh0zvIDR␤Two terms in a row␤at /tmp/nUjh0zvIDR:1␤------> 3say 'test'7⏏5 loop;␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤ st…»
AlexDaniel hmmm
it is kinda weird that you can put "for" on the right side but can't do the same thing with "loop" 02:59
not too weird though
03:00 Ben_Goldberg left
PerlJam Why is that weird? 03:01
average presumably AlexDaniel is refering to consistency of features that basically do the same thing ("for" and "loop")
AlexDaniel average: yep 03:02
03:02 aborazmeh joined, aborazmeh left, aborazmeh joined
PerlJam That would be a foolish consistency IMHO. 03:02
average PerlJam: why ?
AlexDaniel "foolish consistency" :)
wasn't it "strangely consistent" 03:03
average: well, that would mean that you are allowed to write stuff like: say 'test' loop (my $i = 0; $i <= 5; $i++); 03:04
geekosaur there's strangely consistent, and there's the hobgoblin of little minds... :)
PerlJam average: firstly, it doesn't read well. secondly, there's a reason the C-style loop isn't called "for" anymore; it's because they more different than the same.
but ... if TimToady disagrees, I'll happily accept a loop statement modifier. :) 03:05
average: and thirdly, it makes the logic more convoluted. 03:07
.oO( The initializer comes *after* the body of the loop? Crazy! )
03:08
average design.perl6.org/S04.html#The_gener..._statement
loop ($i = 0; $i < 10; $i++) { }
loop {...} 03:09
03:09 jack_rabbit joined
average loop (;;) {...} 03:09
these are the 3 forms of loop that I was able to find
the 1st and 3rd are the same as the C-style loop "for"
the 2nd one seems pretty much the same as the 3rd one
while(1) {} would do the same thing as 2nd and 3rd 03:10
(in C)
PerlJam no, that would error :)
average what would the error be ?
PerlJam m: while(1) { say "hi" } 03:11
camelia rakudo-moar 48c0ba: OUTPUT«5===SORRY!5===␤Word 'while' interpreted as 'while()' function call; please use whitespace instead of parens␤at /tmp/zF33atdhaJ:1␤------> 3while7⏏5(1) { say "hi" }␤Unexpected block in infix position (two terms in a row)␤at /tmp/zF33atdha…»
AlexDaniel ...
average m: while 1 { say "hi" }
PerlJam that one is fine. 03:12
camelia rakudo-moar 48c0ba: OUTPUT«(timeout)hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi…»
AlexDaniel you can also just put a whitespace in between
average I'm still wondering what the killer-features of Perl6 are 03:13
it's due for official release at the end of the year
AlexDaniel average: grammars and multiple dispatch?
average I'm an foolishly a 'very' polyglot programmer. I would like to use Perl6, but I'm just not sure where the advantage would be. What can I leverage it for ? 03:14
multiple dispatch is already present in mainstream languages en.wikipedia.org/wiki/Multiple_dispatch 03:15
the grammars are already covered by bison/lex/antlr/lemon/spirit
PerlJam Perl has always taken the best ideas and combined them into "one" language. 03:16
average somehow, i'm not sure how Perl6's grammars compare to the industrial-grade ANTLR
claiming "the best ideas" is kindof demanding proof 03:17
03:18 amurf joined
AlexDaniel multi foo(Str $ where 'somestring') { ‘is it true that mainstream languages can do this?’ } 03:18
that is, subtypes
PerlJam AlexDaniel: what's a "mainstream language"? 03:19
I mean, Haskell can do that with ease. Is haskell mainstream?
AlexDaniel PerlJam: I don't know, I just quoted him
average PerlJam: I think Haskell is more popular than Perl6
sorry, AlexDaniel ^^
PerlJam average: could be.
AlexDaniel average: true
average AlexDaniel: and there are other mainstream languages that can pull that off 03:20
AlexDaniel average: just wondering, which ones?
average: because I've never actually seen that in some real code, maybe I'm just blind
average what does that method do ? if the parameter has "somestring" in it, then that method is selected to be used ?
foo("ABC somestring DEF"); 03:21
that would call the method
but
foo("");
what would that call ? ^^
AlexDaniel foo('somestring') will call that, everything else wont
average would that cause an error ?
foo(""); 03:22
AlexDaniel depends on other signatures
03:22 amurf left
average well, imho you can do that sort of thing easily in C++ .. and the check for 'somestring' can be part of the function body, it doesn't have to be in the declaration. 03:23
i don't find multiple dispatch as a killer feature
for grammars, it's very hard to beat a production & industrial-grade parser generator such as ANTLR
AlexDaniel m: multi foo(Str $ where 'somestring') { 'hi' }; multi foo(Str $) { 'hello' }; say foo 'somestring';
camelia rakudo-moar 48c0ba: OUTPUT«hi␤»
AlexDaniel m: multi foo(Str $ where 'somestring') { 'hi' }; multi foo(Str $) { 'hello' }; say foo 'somestring111'; 03:24
camelia rakudo-moar 48c0ba: OUTPUT«hello␤»
AlexDaniel multi foo(Str $ where 'somestring') { 'hi' }; multi foo(Str $) { 'hello' }; say foo 25;
average not sure how much people were inspired by ANTLR when they wrote Perl6's grammars..
AlexDaniel m: multi foo(Str $ where 'somestring') { 'hi' }; multi foo(Str $) { 'hello' }; say foo 25;
camelia rakudo-moar 48c0ba: OUTPUT«Cannot call foo(25); none of these signatures match:␤ (Str $ where { ... })␤ (Str)␤ in block <unit> at /tmp/9XP9J527NL:1␤␤»
average to me, Haskell and Ocaml seem like the bleeding edge of language design 03:25
Perl6 does not seem to be in that vein 03:26
PerlJam weird
AlexDaniel average: well, then you can use assembly and write any feature yourself, why not
PerlJam why does haskell or ocaml seem like the bleeding edge to you?
average PerlJam: Haskell has something I've always wanted 03:27
PerlJam which is?
average PerlJam: you can properly represent abstract data structures in it
you will never be able to do that in Perl5
I doubt(but I may be wrong) that you can do that in Perl6
03:28 raiph left
average Ocaml can do it too 03:28
PerlJam I haven't thought much about it, but I'm pretty sure you're wrong about Perl 6 :)
average can you represent a group in Perl6 properly ? 03:29
the group from group theory
with identity element
all the axioms
AlexDaniel I haven't thought much about it too, but is there any reason why this should be baked into the language? 03:30
average yes 03:31
Perl6 has types, that's a great advancement from Perl5
Perl5 is basically shit, excuse my french but.. yeah. It's great for scripts but beyond that it's just crap.
Perl6 actually has types
PerlJam Perl 5 hs types too. They're on CPAN and come in all sorts of shapes and sizes. :)
average when you get types, you start thinking about type safety and "if i pass this thing there, will it break" and that sort of thing 03:32
AlexDaniel average: not that you have to use them
m: multi foo($ where 'somestring') { 'hi' }; multi foo($) { 'hello' }; foo 'somestring';
camelia ( no output )
AlexDaniel m: multi foo($ where 'somestring') { 'hi' }; multi foo($) { 'hello' }; foo 'somestring'; 03:33
camelia ( no output )
AlexDaniel oops
PerlJam AlexDaniel: often you *Want* to use them though.
AlexDaniel m: multi foo($ where 'somestring') { 'hi' }; multi foo($) { 'hello' }; say foo 'somestring';
camelia rakudo-moar 48c0ba: OUTPUT«hi␤»
AlexDaniel PerlJam: and often I don't. That's why I like gradual typing 03:34
PerlJam yeah. me too.
average I really think the world is converging in the direction of Haskell/Ocaml 03:35
they're almost mainstream
but not quite..
the hype is there but the talent is not
the risk and time investment for someone learning Haskell/Ocaml is high
the reward is sketchy and hard to estimate
in terms of money
in terms of personal knowledge it's high 03:36
PerlJam well, like anything, you learn new concepts that you might be able to apply in other languages.
average if I knew Haskell/Ocaml really well, I would definitely use them in projects 03:37
PerlJam: I would argue that learning certain concepts in the wrong language is extremely harmful 03:38
for example threads. learning them in Perl5 is a huge waste of time and prone to huge misunderstandings
PerlJam yep, I'll voilently agree with you there :)
average even sockets 03:39
PerlJam of like learning OOP in C++ and then get exposure to smalltalk or java. You'll have lots of things to unlearn.
s/of/or/
average C++ and Java, yes there are things to unlearn, but not that many. Generally, the best decision is to stick to one. 03:42
If you're at some interview and you're sketchy about operator precedence
or the exact details of how polymorphism works in C++/Java(depending on the type of job)
that's like the language foundation 03:43
if you mess that up.. then.. yeah, your investment in that language is pretty much s**t i would say
you've basically lost all your time for nothing
I don't know of anyone writing smalltalk to be honest
except for Randall Schwartz who can do whatever he wants with his prestige and charisma 03:44
like "I'm Randal and I write in smalltalk for a living" . Yeah right, because you're Randall and you have I dunno how many books published, everyone knows you and you're really popular.
geekosaur smalltalk is mostly the domain of business applications
average the guy could write in COBOL and he'd still be fine. 03:45
geekosaur although it's being replaced by java, slowly
IBM was heavily into smalltalk for business apps
but people never see that side of IBM
TEttinger operator precedence: if you honestly rely on knowing every detail of this and hope someone can read your code without your gracing them with explicit grouping, you should not be hired
average TEttinger: trust me.. 03:46
tests are tests
TEttinger readability is more important than rote memorization
average you give a test, you get 3 operator precedence questions
and there are 100 candidates
you fail maybe 2 more questions, that you also consider to be worthless because of their low importance 03:47
you will fail the test
you will not get the job
#epicfail
AlexDaniel but you will get a better job
average how do you know ?
btw all online tests for pretty much all languages have operator precedence questions in them 03:48
and not just online tests
real-life job interviews have them too
AlexDaniel well, maybe not, but at least you will not be working in a group of freaks who feel that it's ok to leave parens out everywhere... 03:49
TEttinger fine, in java what will this return: 013 << 2 & 16 03:50
average i have no idea
i would fail that test
013 is octal iirc
TEttinger it's a very very tricky question. the answer is 0 but you'd expect 1
yes
that's why 03:51
average 013 << 2 is 013 * (2^2)
TEttinger & goes last yep
average & 16 is the last 5 bits of that number
TEttinger err yes not 0 and 1
the answer is 0 but you'd expect 16
and no
not the last 5 bits
average which bits then ? 03:52
TEttinger it's only the 5th bit
average oh, you're right
last 5 would've been & (2^5 - 1)
TEttinger and if you have to program with people who don't document that stuff you will at least wish you weren't hired
AlexDaniel TEttinger: I'd say that this code will return a new git commit
PerlJam "operator precedence" is not deep knowledge. I wouldn't care if someone didn't get that stuff right unless they claimed to live and breathe the language.
TEttinger yeah, deep knowledge of Java is horrible stuff like design patterns 03:53
AbstractSingletonFactoryBean
geekosaur (btw, IBM's policy of playing the Smalltalk card very close to its chest is why it's switching to Java; they finally realized that they screwed themselves, because there are no Smalltalk programmers to be had as a result...)
s/its/their/
average geekosaur: I wonder if IBM really thinks of it as a tragedy 03:54
i think IBM is basically making money at an inconceivable pace
ShimmerFairy This is incidentally why I'm not a fan of the "superstitious parens" idiom that floats around Perl 6; making it clear what your code does is incredibly useful, and to me more important that minimizing the number of parens you use.
average so high that they couldn't care less about what language Smalltalk dies or which one survives
geekosaur to the extent that they can't find Smalltalk programmers to maintain business apps any more, yes
PerlJam ShimmerFairy: unless the parens happen to change the meaning of the code, I agree with you :) 03:55
geekosaur no, they do care. because the companies they peddled it to are not happy to pay IBM the big bucks --- and these companies very much ARE the big bucks for IBM --- if IBM cannot maintain their code
average IBM can probably rewrite everything they have in whatever other language they want
in comparison however
geekosaur ...
TEttinger deep knowledge of Java also may encompass really nasty stuff depending on what company you're working with, like the crypto APIs that it doesn't even ship with by default
average the risk is much higher for the programmer in relation to which technologies he learns
the risk is extremely high actually 03:56
geekosaur you've never encountered change control in a Fortune 50, I see
ShimmerFairy PerlJam: that's what they're supposed to do :P I just don't like when someone cries out "superstitious parens!!" in stuff like 2 + (3 * 5) , as a simple example.
average that's why Perl5 programmers today should get paid tons of money
because nobody wants to touch Perl5
except there are also few Perl5 jobs
PerlJam notes that IBM was the company touting ASCII *and* EBCDIC platforms simultaneously in the 1960s
average and if you're living where I live(Romania), Perl5 are not only scarce, but they also have very very shitty salaries
like extremely shitty salaries
and they're those kinds of outsource projects led by Indian managers 03:57
*outsourced
ShimmerFairy PerlJam: IBM _still_ is very invested in EBCDIC systems, judging by their complaining at C++ removal of trigraphs (finally, geez) :)
geekosaur points up at remark about change control 03:58
PerlJam ShimmerFairy: that might just be because of all the legacy systems out there still using EBCDIC
geekosaur seriously, most programmers "out here" have no conception of how it works there. or how much money is involved in it
average 06:56 ( geekosaur) you've never encountered change control in a Fortune 50, I see
geekosaur: maybe expand on the change control ?
geekosaur let me put it this way: it's why IBM still needs to worry about EBCDIC 03:59
average because it's too expensive to rewrite all the s*it in order to get rid of EBCDIC ?
geekosaur they are not going to replace existing systems just because EBCDIC is inconvenient
PerlJam ShimmerFairy: I mean ... there are tons of financial institutions and at least one big blue company that still has to worry about finding COBOL programmers too :)
geekosaur the amount of changes and resulting downtime is, yes
ShimmerFairy PerlJam: yeah, that's what it is, legacy stuff. 04:00
geekosaur there is legacy stuff. a lot of it. and it's not going ANYWHERE
ShimmerFairy But as far as I'm concerned, if you're still running a system that can't handle basic ASCII characters, it's your own fault.
geekosaur as long as it works
geekosaur has only been on the outermost periphery of that world, but has some understanding of how it works. and that it flat out does not care about your opinions of how the world should work 04:01
it works its way
PerlJam There was a federal computer system that I had to login to download data from. The only interface was via modem. Later, that system got put on the internet. They just hooked a serial cable from the original system to another such that you could now telnet and get the same stuff as you would via modem. 04:04
That old system did its job and kept running. It may still be running now for all I know.
"If it ain't broke, don't fix it" 04:05
(though, I had a contract with a federal agency last year to convert a mass of fortran code to java because they apparently were already having trouble finding fortran programmers to maintain it) 04:06
average wonders how that Fortran job went 04:08
PerlJam it went well. They want to do it again (but this time with VB code). They're standardizing on Java I guess. 04:09
The most frustrating thing about the fortran project was that none of the people I was in contact with were the actual users of the code, so I would ask them stuff and they would say things like "we'll have to get Bob to weigh in on that" only Bob wasn't ever around. 04:13
average sod id you automate your Fortran -> Java conversion in some way ?
Bob was dead 04:14
or retired
or had died in fires
PerlJam Sure ... I had a student worker hand convert the code. It was completely automated for me :)
average really ? interesting
so .. what did you _do_ for that job ?
were you a manager ?
PerlJam But I did write a little test framework so that we could make sure that the java subroutines did the same thing as the equivalent fortran subroutines. 04:15
yeah, I was a "manager". I wrote the test stuff, I communicated quite a bit, and I wrote a good bit of a report 04:16
average I should definitely try to get out of the whole programming thing
04:16 khw left
average sounds like nobody wants to do it these days 04:16
PerlJam actually, I'd like to do more programming and less ... non-programming. It's fun.
04:18 coffee`_ joined 04:26 cognominal left 04:37 vendethiel joined 04:53 kaare_ joined 05:07 amurf joined
dalek kudo-star-daily: 23fd793 | coke++ | log/ (8 files):
today (automated commit)
05:07
rl6-roast-data: 6002473 | coke++ | / (9 files):
today (automated commit)
05:12 amurf left 05:16 aborazmeh left 05:17 atroxaper joined 05:22 atroxaper left
Woodi hallo #perl6 :) 05:34
first: I don't think Beans counts as design patter 05:35
second: Go4 book have overmhelming (for me) amount of Smalltalk examples... 05:36
third: design patterns are not something that born with Java... rather they are "patterns" _discovered_ in real code. somewhere before 1998... it's exactly like with algoritms: Hey, I saw that sequence of actions before, hmm... Yeah, it's a pattern there! 05:39
anyone considers algos harmful ? 05:40
05:43 AlexDaniel left 05:53 vendethiel left 05:56 vendethiel joined 05:58 diana_olhovik_ joined 06:12 szabgab joined
szabgab hi 06:13
when loading a module with "use" is perl6 calling any 'import' function implemented in the module ? 06:14
06:15 cognominal joined 06:18 vendethiel left 06:24 FROGGS joined
lizmat timotimo++ # P6W 06:27
szabgab: if this just about exporting subs, mark the subs with the "is export" trait 06:33
06:34 szabgab left 06:36 vendethiel joined 06:44 skids left 06:51 nebuchadnezzar left 06:53 nebuchadnezzar joined 06:55 dalek left 06:56 dalek joined, ChanServ sets mode: +v dalek 06:59 vendethiel left 07:04 Mhoram joined 07:12 ilogger2 joined, ChanServ sets mode: +v ilogger2 07:13 ilogger2 joined, ChanServ sets mode: +v ilogger2 07:19 rurban joined 07:41 vendethiel joined 08:04 darutoko joined 08:26 jaffa4 joined
jaffa4 hi all 08:27
How can I see an understandable mar assembly of a Perl6 code?
08:32 RabidGravy joined
FROGGS jaffa4: moar --dump Foo.moarvm 08:35
08:36 atroxaper joined 08:37 szabgab joined
szabgab it is about some custom code Bailador has in its import function github.com/tadzik/Bailador/blob/ma...dor.pm#L11 08:38
currently AFAIK I need to run Bailador::input() after use Bailador for that to run
08:40 atroxaper left
FROGGS szabgab: yes, I think I had to call import too in my app 08:41
szabgab FROGGS: do you have a Bailador based app? Can you give the URL? 08:42
08:45 amurf joined 08:49 amurf left 08:51 espadrine_ joined
FROGGS szabgab: github.com/perl6/cpandatesters.per...ter/app.pl 08:51
szabgab: though that is not used anymore, since we generate static html pages for performance reasons 08:52
masak good antenoon, #perl6 08:55
FROGGS o/ masak 08:57
nine PerlJam: why would we not want daemons written in Perl 6 to make life easier to their users by allowing to differentiate them in ps output? I see absolutely no reason to forbid changing $*PROGRAM-NAME while it has been used for good many times.
szabgab FROGGS: may I add it to the readme of github.com/tadzik/Bailador ?
09:00 spider-mario joined
masak I'm with nine on this one. 09:03
(which also means I did the right thing in my case, assigning to a new variable and using/changing that) 09:04
09:06 szabgab left
masak reads the night's backlog with average 09:11
RabidGravy on Linux at least you could make something with pthread_setname_np without troubling the core 09:12
jaffa4 masak: what is the current direction of development? 09:13
masak jaffa4: the... direction? definitely forwards, I'd say. :)
jaffa4 What is being improved in general? 09:14
masak well, I wrote quite a lot of Perl 6 yesterday.
it was for a script at $work. so that got improved quite a lot.
jaffa4 Who uses Perl6 now? 09:15
masak me!
little known secret: they made this language so that masak can use it. other people can use it too, because masak is nice that way.
jaffa4: if you're asking what currently happening in Rakudo space wrt development, may I recommend p6weekly.wordpress.com/ ? 09:17
jaffa4: and 6guts.wordpress.com/
jaffa4: but, in short, GLR is happening (in fits and starts), and compact arrays are happening. a lot of bugs are getting fixes. 09:18
RabidGravy I spent all day writing perl6 yesterday, a little patch here, a fix there. I did conclude one thing - I'm going to invent a terminator and send it back in time to off the person who though chunked transfer encoding was a good idea 09:19
masak ah, chunked transfer encoding.
been there, done that :)
RabidGravy hopefully it works proper in HTTP::UserAgent now
09:20 bjz joined
masak is it the kind of thing where a Unicode character may end up straddling two chunks? is there a test for that? 09:21
nine For me the answer to the P6 killer feature question is definitely, that you won't find anything radically new in Perl 6, but you get all those nice features of other languages in a cohesive whole. Except maybe the builtin ability to evolve. You won't need to invent a new language for the new killer feature. You can add it to Perl 6. 09:23
jaffa4 compact arrays? How does it dffer from normal arrays?
masak jaffa4: they use natives as their representation, so they take up very little space.
nine jaffa4: compact arrays are like the ones you find in C or Pascal. 09:24
jaffa4 you mean it is an optimisation
masak a space optimization, yes. and slightly faster, too, I guess.
jaffa4 of arrays
masak jaffa4: something like my `my int @measurements[100;100]`
RabidGravy and I guess making crossing the P6 - native barrier easier without so much copying 09:25
masak jaffa4: allocates 10_000 ints for you in memory.
jaffa4 So it happends only when you specify type
masak jaffa4: yes.
nine: I think you are right about lack of killer feature. and I think that's OK.
nine: there are many things (like junctions and metaops) that pull you in and make you go "whoooooa" at the start 09:26
nine: but then they sort of fade into the background as you start using the language for real
nine: and you kind of notice that any production code is always 99% ordinary statements and conditionals and loops and subs and methods and classes, just like in other languages 09:27
RabidGravy remember it's not a proper language until someone writes a mailling list manager
jaffa4 IS this going to work for all backends?
masak nine: and that's not, mind you, because you're *doing it wrong* and should put more metaops and junctions in your production code
nine: it's because you're responsible and using the right tool for the job 09:28
nine: (also, in the remaining 1%, you're very happy to have those junctions and metaops)
jaffa4: if by "all backends" you mean MoarVM and the JVM, then yes.
09:28 domidumont joined
masak RabidGravy: I wonder how the MVP for a mailing list manager would look. 09:29
RabidGravy 'orrible - they always look 'orrible ;-)
09:30 virtualsue joined, virtualsue left
masak :) 09:30
RabidGravy maybe I'll knock one up next week, not that many yaks to shave
masak .oO( no, don't knock up a yak! ) 09:32
jaffa4 what about parrot?
masak jaffa4: what about it? 09:33
jaffa4: it doesn't have any developers.
09:34 domidumont left 09:35 domidumont joined
RabidGravy I think I made some patches to parrot in like 2002-3 09:38
masak the last commit on the Parrot repo was the release last month. June 15. 09:39
jaffa4: pmichaud explains it better than I can: pmthium.com/2015/02/suspending-rakudo-parrot/ 09:42
RabidGravy does someone with commit on panda want to take a look at github.com/tadzik/panda/pull/184
right now gen-meta no worky
masak reading through the git log of Parrot, I realize that I made an unfair exaggeration saying the project doesn't have any developers. 09:44
it has one.
09:45 domidumont left
RabidGravy :) 09:46
masak or did, back in January. 09:47
RabidGravy is it every likely to catch up again? 09:48
masak anything's possible, I guess. 09:49
likely? not for me to say.
09:51 vendethiel left 09:53 vendethiel joined
masak ShimmerFairy: please don't take the "superstitious parens" thing as a put-down. the point is exactly that it isn't wrong to put them in, just... slightly redundant. 09:56
ShimmerFairy masak: I've always read it as a pejorative sort of thing, though.
masak ShimmerFairy: so the comment is less meant as "you're doing it wrong!" and more as "hey, you could've saved yourself some trouble there, because the language already does that for you" 09:57
ShimmerFairy: I would probably suggest the same if someone injected, say, redundant statements or redundant class declarations into their code.
so it's less about parens and more about redundancy.
ShimmerFairy I think it's the use of the word "superstitious" that makes it sound very negative to me. 09:59
masak well, superstitions are patterns of behavior that people have picked up that don't have any measurable effect on the world. 10:02
that's what those parentheses do, too.
ShimmerFairy masak: well, 1) when they help with readability that's not exactly "don't have any measurable effect", and 2) you can't make me see the word "superstition" differently :P . If I had been the one to coin the term, I would've gone with "unnecessary parens" or something. 10:06
masak Woodi: [backlog] of course Bean counts as a design pattern. it's just not a very good one :P
nine masak: yes, most code really is just boring and that's a good thing :) Most of the magical possibilities of Perl have historically been used by module authors to provide neat interfaces for their specific domains. Those are then just used by mortal programmers. 10:14
10:16 xinming joined
nine masak: a bit of it I've already used in Inline::Perl5. My users don't even have to know what magic I used. But I for sure am very glad that it's there when I need it :) 10:16
RabidGravy yeah, if you're forced to do "magic" in a script someone has done something wrong 10:17
masak nine: that's a nice way to view it. power features are double-edged swords. in the long run, they should be encapsulated, contained. their destructive power is too great. 10:19
kind of like the Infinity Stones in Guardians of the Galaxy. 10:20
RabidGravy :)
10:22 llfourn joined
RabidGravy it's like the thing about people wanting feature X in the language where in fact for the most part with a sufficiently cunning implementation it could be just in the ecosystem 10:22
I often find myself thinking when I'm doing something particularly black art-ish whether it has more general applicability and be released seperately 10:25
which is how e.g. AccessorFacade failed
masak AccessorFacade? 10:26
RabidGravy er s/failed/came about/
github.com/jonathanstowe/AccessorFacade
masak aha. 10:27
RabidGravy rule of three innit ;-) 10:29
masak heh. 10:30
I had a piece of code I was working on where I went, "hm, this feels like maybe it could be generalized into a template system and packaged up as a module..."
*looks at code*
"...no." :)
RabidGravy (or in this case rule of thirty)
Ulti ShimmerFairy what about parens which dont make sense mathematically regardless of precedence like 1 + ((2 - 3) + 5) I see that all the time and if it's variables rather than constants it just makes me wonder wtf is in the variable and if the operators are overloaded, like in JS (blah + foo) - 2 could be string concatenation then -2 off of the interp number 10:31
masak RabidGravy: with goodenuf macros, I could see how you could just name the subs consistently, and the macro would hook them up on its own.
RabidGravy my brane rebels against magic naming thingies - for myself I actually prefer the explicitness (in this case) of the traits 10:33
Ulti ooc with those parens would the Perl 6 compiled code be the same with and without?
timotimo i thought you'd usually only get told "superstitious parens!" when you do something like if ($condition) { ... } in perl6 10:39
nine timotimo: #perl6 sometimes gives more strict warnings ;) 10:42
itz I want to experiment with evaling rakudo in a browser (probably server-side rather than a JS VM). Is anyone aware of a more recent attempt than www-stud.rbi.informatik.uni-frankfu...ry-rakudo/ ?
masak itz: pmurias++' work 10:43
itz that uses a JS backend doesn't it? 10:44
Ulti itz github.com/moritz/try.rakudo.org ?
itz ah 10:45
Ulti I tried to get the wheels turning on that a year ago but gave up without really trying very hard 10:46
itz ok I'll fork and try booting the engine 10:47
10:48 diana_olhovik joined
jaffa4 Is there a way to see generated jit code? 10:49
timotimo the last attempt i did at this thing was when proc::async was still pretty shaky
10:49 virtualsue joined
timotimo jaffa4: yes, check out moar --help for environment variables you can set for that purpose 10:49
Ulti itz there is also Farabi6 which is an editor but it does have a repl server 10:50
itz ah 10:51
timotimo right, farabi6 is a good target for some love from additional developers :) 10:56
Woodi RabidGravy: thing like AccessorFacade could be used to construct native objects when CPointer is a *struct :) 11:00
jaffa4 Current Rakudo start windows does not work for me 11:04
I cannot install anything
11:07 RabidGravy left, RabidGravy joined
RabidGravy Woodi, indeed 11:09
itz wow farabi is rather impressive 11:16
11:16 camelia joined 11:17 ChanServ sets mode: +v camelia
itz azawawi++ 11:18
11:29 diana_olhovik left
jaffa4 WHat is sync context? 11:30
masak jaffa4: a made-up term? 11:34
jaffa4 sink context 11:36
masak jaffa4: sink context is when the value of an expression is not used.
jaffa4: like, `my $x = foo();` -- here `foo()` is *not* in sink context. 11:37
jaffa4: but in `foo(); 1`, it is.
jaffa4 so why do you keep track of sinc context if it is not used?
masak you mean "zink context".
jaffa4: well, things have different behavior in or out of sink context. 11:38
jaffa4: also, an optimizer could sometimes avoid doing a extra work (creating objects, etc) that then just gets thrown away.
jaffa4 it does not happen often 11:39
masak oftener than you'd think.
`for` loops tend to be in sink context, for example.
jaffa4 SO can you give me a typical example? 11:40
masak I thought I just did above?
what specifically do you want?
jaffa4 for for, where is the sink?
RabidGravy I think what is meant that "for" is a statement that has a return value, but it rarely gets used 11:41
anyway off out 11:42
masak jaffa4: for more information, read "Loops at the statementlist level vs the statement level" in S04.
jaffa4 you mean last statements in blocks and loops
masak m: do { say "A"; last; say "B" } 11:44
camelia rakudo-moar 48c0ba: OUTPUT«A␤last without loop construct␤ in block <unit> at /tmp/aBngaOgIG7:1␤␤»
masak TimToady: S04 says "C<do> is considered a one-time loop" -- is that a fossil? that's not how I think of `do` these days.
TimToady: S04:703 11:45
synbot6 Link: design.perl6.org/S04.html#line_703
11:46 RabidGravy left
flussence m: { say "A"; last &?BLOCK; say "B" } 11:47
camelia rakudo-moar 48c0ba: OUTPUT«A␤Cannot call last(Block); none of these signatures match:␤ ()␤ (Label:D \x)␤ in block <unit> at /tmp/TksmCUYIa1:1␤␤»
flussence m: do { say "A"; last &?BLOCK; say "B" }
camelia rakudo-moar 48c0ba: OUTPUT«A␤Cannot call last(Block); none of these signatures match:␤ ()␤ (Label:D \x)␤ in block <unit> at /tmp/p0hY84PljB:1␤␤»
flussence -ETRYINGTOBETOOCLEVER
masak it wants a label, not a block. 11:48
m: FOO: do { say "A"; last FOO; say "B" }
camelia rakudo-moar 48c0ba: OUTPUT«A␤No exception handler located for last_label␤␤»
masak m: FOO: do { say "A"; leave FOO; say "B" }
camelia rakudo-moar 48c0ba: OUTPUT«5===SORRY!5=== Error while compiling /tmp/fshKCdCh1Z␤Undeclared routine:␤ leave used at line 1␤␤»
masak oh... I thought we had leave now. still in a branch?
flussence
.oO( perl6 is one of the very rare languages where I have a decent success rate trying crazy things like that )
11:49
masak flussence: well, it does make some sense what you tried to do.
flussence: but even if it worked with the block/label confusion, it would still fail (IMO) because `do` is not a loop. 11:50
flussence "leave" is closer to what I meant, thinking about it...
masak aye.
flussence m: do { say "A"; &?BLOCK.leave; say "B" } # I wonder if this form's implemented?
camelia rakudo-moar 48c0ba: OUTPUT«A␤Method 'leave' not found for invocant of class 'Block'␤ in block <unit> at /tmp/DgCOsJ6fOb:1␤␤»
flussence aww. 11:51
11:51 kaare__ joined
jaffa4 m: goto b; b: say "hello"l 11:52
camelia rakudo-moar 48c0ba: OUTPUT«5===SORRY!5=== Error while compiling /tmp/1NlwHE6_Ua␤Two terms in a row␤at /tmp/1NlwHE6_Ua:1␤------> 3goto b; b: say "hello"7⏏5l␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤ …»
jaffa4 m: goto b; b: say "hello"
camelia rakudo-moar 48c0ba: OUTPUT«5===SORRY!5=== Error while compiling /tmp/XIeVzSXcdu␤Variable '&b' is not declared␤at /tmp/XIeVzSXcdu:1␤------> 3goto 7⏏5b; b: say "hello"␤»
tadzik oh gawd 11:53
11:53 bjz left
tadzik seen skids? 11:53
hrm
11:54 bjz joined
jnthn After much thinking and pondering over O(months), I've got a bunch of things (mostly additions) for S17 that I think take us to a better place. It's not a very short read; feedback is welcome, but please try and focus on semantics rather than bikeshedding naming. gist.github.com/jnthn/a56fd4a22e7c43080078 11:54
flussence m: do once { say 'A'; } # good way to confuse the unwary :)
camelia ( no output )
tadzik I think rakudobrew is slowly becoming the new neutro 11:55
a quick hack that everyone adopted as The Thing, and becoming the monstrosity that needs to be Properized somewhat
11:56 kaare__ left
masak tadzik: that was an endemic problem with proto, too. 11:57
flussence last night I was thinking we ought to have Something Better for modules too. panda is great when it works, but it doesn't look fun to hack on.
masak jnthn: asking people not to focus on bikeshedding naming? you optimist, you! :P
masak gives it a read
jaffa4 m: goto b; b: ; say "hello"l 11:58
camelia rakudo-moar 48c0ba: OUTPUT«5===SORRY!5=== Error while compiling /tmp/iW9nbZjOmF␤Two terms in a row␤at /tmp/iW9nbZjOmF:1␤------> 3goto b; b: ; say "hello"7⏏5l␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤ …»
jaffa4 m: goto b; b: ; say "hello";
camelia rakudo-moar 48c0ba: OUTPUT«5===SORRY!5=== Error while compiling /tmp/keUfxpNWaf␤Variable '&b' is not declared␤at /tmp/keUfxpNWaf:1␤------> 3goto 7⏏5b; b: ; say "hello";␤»
masak that one could use a better error message.
std: goto B; B: say "hello"
camelia std 28329a7: OUTPUT«5===SORRY!5===␤Illegally post-declared type:␤ 'B' used at line 1␤Check failed␤FAILED 00:00 135m␤»
masak right.
masak submits LTA rakudobug
12:03 itz_ joined
tadzik flussence: I think part of it is the fact that modules are very complicated :) 12:04
I think the main thing about panda failing to do what it's doing most of the time is because it's trying to be a module manager *and* a precompilation manager, as masak pointed out 12:05
the latter being very, very complex, very error prone and horrendously not fun to hack on
panda has been through a phase of "I ain't touching none of that, therein lies madness!", but has since returned to its roots simply because it's necessary to the users 12:06
even if done correctly only half the time :)
masak tadzik: what would happen if you just ripped the precompilation parts out of panda, saying "recent studies show that this belongs in a different project" ? 12:11
tadzik: would that increase the reliability of panda?
tadzik masak: oh, definitely
I mean, the consensus for the last few years has been 'precompiled bytecode is a cache and should be managed by rakudo itself' 12:12
masak I think you should do it.
maybe also lay out some plans for a precompilation manager, based on the experiences gained from panda.
timotimo jnthn: "asycnrhonous" is a peculiar word :) 12:13
tadzik cuncorrency
masak hey, no bikeshedding on jnthn's spelling! :P
tadzik masak: the downside is that we leave all panda users with slow code
timotimo sorry, i forgot about that rule! ;) 12:14
masak tadzik: naming suggestion for the precompilation manager: redpanda :)
tadzik panda doing precompilation is not doing what's right, it's doing what's needed :/
masak: well volunteered :P
masak tadzik: at the expense of breaking all the time, and making users unhappy.
tadzik true
masak tadzik: I think I would use panda more if it *didn't* do precompilation, actually.
tadzik: I'm sick of having to re-install all my modules after rebuilding rakudo (which I do a lot). 12:15
it has made me conclude that I'm not in the target group for panda, most of the time.
sometimes I just give up and *copy* the (un-precompiled) module into a temporary lib/ directory somewhere, so I can keep coding.
tadzik yes, historically panda has not been a tool of choice for rakudo developers themselves 12:16
12:17 brrt joined
ShimmerFairy +∞ panda is why I don't update my rakudo repo all that often; I want my modules to not be broken every update. 12:18
12:18 gfldex joined
ShimmerFairy I'd be willing to sacrifice (alleged) speed for a better panda :) 12:18
tadzik amazing what a little chat with the community can do :) 12:19
sjn bleedpanda
masak tadzik: other naming suggestion: polarbear
tadzik if it bleeds we can refactor it!
masak: because it hibernates? :) 12:20
masak yes!
tadzik like the bytecode, leave it for too long and it becomes useless :P
timotimo jnthn: on my first read-through, i like what you wrote
sjn å 12:21
masak also, precompiled code is "frozen"
ShimmerFairy panda (modules) + bear (precomp) = pandabear!
tadzik oooo 12:22
masak ShimmerFairy: I like how you think
panda (modules) + express (precomp) = panda express! :D
sjn precomp = prepared modules for actual use, right?
12:22 amurf joined
masak sjn: you can use them either way. 12:22
tadzik sped up
sjn it's like making stew
timotimo sjn: modules will also work when not precompiled
sjn pandastew
masak sjn: but precomp takes away the compilation cost when you run things. 12:23
tadzik you may just not live long enough to see it :D
ShimmerFairy masak: I think a long time ago I imagined a GUI frontend for panda named "bear" for the same reason, but it's clear I'm never going to actually do it, so I don't mind "giving up" that name :P
masak tadzik: is that... a threat? :P
timotimo but you could have a BEGIN block in your module that you want to only run once during installation; if you don't pre-comp, you'll run it every time a script runs that uses the module
tadzik it was a bit too grim :)
pre-comp should happen once
masak tadzik: "it's a nice module you got there. would be a shame if something were to... happen to it."
tadzik hmm 12:24
to explain myself I need to make an image macro
masak this happens a lot with you ;)
tadzik memegenerator.net/instance2/807348 12:25
timotimo yup, tadzik is like that
tadzik no, still grim
masak :P 12:26
tadzik: I sense some bitterness.
12:26 amurf left
masak tadzik: maybe another good question to ask: how should we best position the ecosystem so that Rakudo, once it's time, can take over the task of precompiling modules? 12:26
like, assuming the world is just and that making architecturally good long-term decisions is actually possible. 12:27
tadzik it could do that any day, I guess
I think I might preserve a precompiler as a plugin 12:28
masak sounds about right.
tadzik I'm tempted to also abandon it and specifically say that I'm not a maintainer of it
but that never works
I tried
masak maybe have the plugin default to "off"?
tadzik yeah 12:29
I mean, not install it by default
masak could *install* it by default, but maybe not use it by default.
JimmyZ jnthn: the new S17 looks much better 12:32
12:33 rurban left
jnthn JimmyZ: It's not a whole new S17, just some additions and suggestions of some removal/change :) 12:33
The largest part of which is much better syntactic relief for async programming. :) 12:34
JimmyZ I was hoping we have something like akka.io :P 12:36
timotimo the bad thing about having most cool stuff in core is that we can't get a bunch of hip sounding .io domains to advocate our "features"
JimmyZ or subset of it ;) 12:37
tadzik . o O ( wth is Panda::DepTracker :o ) 12:38
jnthn JimmyZ: That much certainly belongs in module space
tadzik this animal has grown beyond my comprehension :)
jnthn JimmyZ: What we can provide is really nice things to build it out of. OO::Actors shows part of the way there too :) 12:39
JimmyZ I would not mind it is a module haha, only if it exists :P 12:40
masak jnthn: first time I see a "make a for loop and then immediately die in it" pattern. I like. 12:42
JimmyZ though it is much more like another perl 6 big projects
tadzik /home/tadzik/.rakudobrew/bin/perl6: line 2: /home/tadzik/.rakudobrew/bin/perl6: Argument list too long 12:43
well that's new :o
masak `my class DepTracker is CompUnitRepo` -- that sounds like a type error reified as code... :) 12:44
jnthn masak: It's not so useful in the synchronous world :P 12:45
12:48 aborazmeh joined
vendethiel jnthn: the supply block in your gist reminds me of our "gather" (but finite), and of generators in other languages 12:48
12:49 aborazmeh left, aborazmeh joined, domidumont joined
jnthn vendethiel: Oh, it's very much like a gather in a sense, it's just that it produces a supply (observable) rather than a list (enumerable) 12:49
But it's essentially an async gather
Also, it needn't be finite
12:50 FROGGS joined
jnthn (Of course the initial run through the supply block may be, but the supply it produces can go on forever 12:50
)
masak jnthn: no, it could be. I'm referring to the (pseudo) implementation of `sub await` 12:51
jnthn: of course, only the first `die` would ever run.
jnthn: but the point is that of there are no offending elements, no `die` runs. 12:52
jnthn: so it's basically a pretty neat way to say "die on the first element"
"(if any)"
jnthn masak: ah, true :)
masak I really like the `supply` block. that feels right. 12:53
kind of analogous to a `gather` block.
ohb I was surprised when i find out that I can't just update a pm6 to debug it, because it was precompiled. I don't mind the precompilation per se, but it seems cumbersome when it's panda doing it upfront, instead of rakudo "jit" (and checking if the pm6 is changed)
masak jnthn: "same rules as gather and take" -- so it's dynamically scoped, too?
jnthn masak: I forgot about that bit and thought you were talking about another thing :) 12:54
masak: Um...I'd say so ;)
masak jnthn: which means that `emit`, `done`, and `quit` can occur anywhere in code, as long as there's a `supply` dynamically in the call stack?
just checking. I think it's a good idea.
vendethiel jnthn: what's the return type of supply? "Supply"? 12:55
jnthn masak: The supply block itself maybe won't be, but *something* will be
vendethiel: Yes
masak `supply`/`emit` really feels like the reactive version of `gather`/`take`
jnthn Where the something represents the target supply 12:56
masak oh, a `QUIT` phaser? 12:58
is there also a `DONE` phaser?
jnthn masak: That's just LAST, 'cus whenever is a loop :) 12:59
vendethiel jnthn: so, "next" skips the current "whenever" iteration?
also means that "whenever" couldn't be user-implemented, right? it has to be "magical"?
masak whenever is a *loop*!?
snakes are *sentient*!? 13:00
vendethiel (I guess the TTIAR makes it a special construct by definition)
timotimo "whenever" is more like a subscription to a supply; tapping it, so to speak
jnthn masak: It's right there when I introduce it. "For consuming supplies, there is an asynchronous looping construct, known as whenever."
timotimo so yeah, it's loop-like
masak jnthn: then why isn't QUIT simply CATCH or something? 13:01
it's kind of a reactive loop.
vendethiel m: do sub f { say 1 }
camelia ( no output )
jnthn masak: Interesting question. I wanted to keep CATCH about synchronous exceptions, I guess. So a CATCH in your whenever is all about what you are doing to process the value. 13:02
vendethiel
.oO( Perl 5 called, they want their do back :P )
masak jnthn: I'll have to mull over that. but that might make sense.
jnthn masak: It was one of the things I spent a while pondering over. I may be missing something nice that's possible and still unconfusing. 13:04
vendethiel: Well, you can catch control exceptions in user-land too 13:05
vendethiel jnthn: right, but I mean -- implementing whenever
masak well, I think this still counts as bikeshedding over semantics, not syntax :)
jnthn: I really dig the name `whenever`, by the way. definitely the right one.
vendethiel thinks he might like that S17 stuff be under a "use" 13:07
masak jnthn: would a `last` in a `whenever` mean `done`, or `quit`?
or neither?
jnthn masak: Neither, it means "unsubscribe from (or in Perl 6 terms, close the tap on) the supply we are reacting to" 13:08
masak I see now that this is addressed further down.
jnthn nod
masak I should finish reading :)
jnthn ;)
jnthn goes to nom lunch, now it's done cooking :)
bbl
masak it looks like a really powerful construct. 13:09
I can't recall seeing syntax for this in any other language.
I keep reading the examples and going "oh, so this is what reactive programming in native syntax looks like"
vendethiel the whenever Promise.in looks really powerful :D 13:14
it somewhat looks like a EDSL on top of our current S17 13:15
masak yes, exactly. 13:18
generalizing, this is probably how languages ought to evolve.
first you get the types, the methods, and the relationships.
then, later, you come up with better syntax. 13:19
13:21 domidumont left, zakharyas joined 13:36 AlexDaniel joined 13:38 virtualsue left, lucasb joined
masak walk & 13:40
13:42 RabidGravy joined 13:46 FROGGS left 13:52 telex joined 13:58 brrt left 14:00 llfourn left, FROGGS joined 14:02 araujo joined 14:03 araujo left 14:06 yqt joined, aborazmeh left 14:08 newbie joined 14:09 newbie is now known as Guest85195 14:10 zakharyas left, araujo joined 14:11 yqt left 14:12 yqt joined 14:13 raiph joined, skids joined, Guest85195 left 14:15 llfourn joined
dalek kudo/nom: ca6cdb4 | jnthn++ | src/Perl6/Actions.nqp:
Fix error for useless accessor generation.
14:26
ast: f0dcafa | jnthn++ | S12-attributes/class.t:
Tests for RT #125625.
14:27
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125625
14:30 domidumont joined, yqt left 14:45 yqt joined 14:46 nys joined
lucasb jnthn: you repeated 'our $.a' in both tests 14:47
jnthn oh?
d'oh
lucasb :)
dalek ast: 03d13c1 | jnthn++ | S12-attributes/class.t:
Fix copy-pasta in test; lucasb++.
14:48
kudo/nom: a9136d2 | jnthn++ | src/core/Exception.pm:
Fix Exception.gist when there's no message.

If the VM-level exception was missing a message, then Exception.gist would crash. Refactored a little to avoid a duplicate isconcrete check to make the code little tidier.
14:49
AlexDaniel m: our $.a = 5; 14:50
camelia rakudo-moar 48c0ba: OUTPUT«Potential difficulties:␤ Useless declaration of a has-scoped method in mainline (did you mean 'my a'?)␤ at /tmp/LHCmeHZC9E:1␤ ------> 3our 7⏏5$.a = 5;␤»
dalek ast: 0853325 | jnthn++ | S32-exceptions/misc.t:
Test covering RT #125620.
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125620
AlexDaniel jnthn: hm, shouldn't this error be similar to the one that you see when doing $!a? 14:52
"Cannot use ! twigil on our variable"
oh, probably not 14:53
right
jnthn You're allow to use . on a my or our, it's just sometimes useless 14:54
14:54 szabgab joined
jaffa4 jnthn: How can I see the jiteed code of Perl program? Does jitting happen always? 14:57
14:57 yqt left
jaffa4 Does it it depend on the sze of code? 14:58
jnthn jaffa4: Happens on x64 and depends on many factors, of which code size is one 14:59
jaffa4: There's an environment variable that you can set that will dump the generated machine code, iirc, which you can disassemble 15:00
jaffa4 but it is not always generated, right?
jnthn No, that'd be a waste of time.
We only generate it for hot code
jaffa4 I mean even if I set, it may be emptyu
jnthn May be, but unlikely 15:01
Because some parts of the compiler even for a trivial program get hot enough to JIT
jaffa4 hot code = cycle is needed
15:01 khw joined
AlexDaniel jnthn: so jit is x64 only? 15:02
jnthn AlexDaniel: yes 15:03
jaffa4: Yeah, or recursion
AlexDaniel: On other platforms you still get a bunch of optimization done, but then it interprets the optimized bytecode
jaffa4 jnthn: Do you optimise floating point operations? 15:04
jnthn In what sense? 15:05
The JIT compiler knows how to turn them into machine code. 15:06
jaffa4 Does the type need to be given at declaration?
jnthn If you write code using native nums, you can avoid a lot of boxing etc, but you need to do it consistently 15:07
And we'll produce better code statically 15:08
If you don't give type info, you can still get a bunch of optimization done on MoarVM
Since it looks at what types actually show up at runtime and produces optimized versions of the code assuming those types 15:09
It's capable of speculatively running an optimized version also; if it finds out it shouldn't be, it falls back to the interpreted version 15:10
Possible re-writing the call stack to undo any inlining it's now discovered invalid.
*Possibly 15:11
15:11 szabgab left
jaffa4 I wonder if it i is so, why nbody problem ran very slowly for me 15:11
ShimmerFairy This should be closed, but unfortunately I can't do it: rt.perl.org/Ticket/Display.html?id=71356
AlexDaniel is there any difference between ... and !!! ? 15:12
15:13 TimToady joined
PerlJam AlexDaniel: ... returns a failure, but !!! dies 15:14
jnthn ShimmerFairy: Um...but the test in question seems to fail?
ShimmerFairy Oh, it does? Hm.
m: class A { has $!b is readonly = "foo" }; A.new
camelia rakudo-moar ca6cdb: OUTPUT«Potential difficulties:␤ useless use of 'is readonly' on $!b␤ at /tmp/Y4i1jI_sT3:1␤ ------> 3class A { has $!b is readonly7⏏5 = "foo" }; A.new␤»
ShimmerFairy ^ warning but no error, which made me think it's resolved
jnthn rt.perl.org/Ticket/Display.html?id=124121 is interesting 15:15
S14 says "$fido does (Sentry, Tricks, TailChasing, Scratch);"
AlexDaniel PerlJam: why would somebody want to return a failure?
just wondering
or maybe the question should be other way round. I'm just a bit confused, don't know which one I want 15:16
skids Ergh. Have to figure out now how to deal with a merge conflict on PR#470 with that last change. And I'm not much of a git pro.
(nevermind git + github) 15:17
PerlJam AlexDaniel: so the caller can decide what to do about it. 15:18
ShimmerFairy jnthn: is "is readonly" supposed to be the opposite of "is rw", i.e. "no, you can't do $instance.attr = 42", or is it supposed to prevent the class from changing the attribute too? 15:19
jnthn ShimmerFairy: I'm not sure off hadn
*hand
ShimmerFairy jnthn: the "useless use" would suggest to me it's supposed to be the opposite (because then the "useless use" is telling you that affecting outside usage on a private attribute is useless). If not, then I'd suggest constants instead of variables :) 15:20
m: class A { has $!b is rw }; A.new; 15:21
camelia rakudo-moar ca6cdb: OUTPUT«Potential difficulties:␤ useless use of 'is rw' on $!b␤ at /tmp/iVj9bCLPRA:1␤ ------> 3class A { has $!b is rw 7⏏5}; A.new;␤»
skids jnthn: or are you looking at PR#470 and that's why you did that change and I should not worry about it? 15:23
vendethiel m: sub long-computation() { 5 + 5 };say $_ if long-computation() -> $_;
camelia rakudo-moar a9136d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/_JwmfdyqrH␤Unexpected block in infix position (missing statement control word before the expression?)␤at /tmp/_JwmfdyqrH:1␤------> 3) { 5 + 5 };say $_ if long-computation()7⏏5 -> $_;␤ expecting…»
jnthn skids: Which change? But now, not looking at it...should I? :)
vendethiel m: sub long-computation() { 5 + 5 }; -> $_ { say $_ } if long-computation();
camelia ( no output )
skids The Exception.gist fix.
jnthn Oh... 15:24
skids I thik it might already have been fixed differently in there.
AlexDaniel m: my @a = 5, 9, 2, 8; for @a <- 25, 30 { say "$^a $^b" } say @a; 15:25
camelia rakudo-moar a9136d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/4u6sFlNpYv␤Strange text after block (missing semicolon or comma?)␤at /tmp/4u6sFlNpYv:1␤------> 032, 8; for @a <- 25, 30 { say "$^a $^b" }7⏏5 say @a;␤»
AlexDaniel m: my @a = 5, 9, 2, 8; for @a <- 25, 30 { say "$^a $^b" }; say @a;
camelia rakudo-moar a9136d: OUTPUT«False 30␤5 9 2 8␤»
skids Yeah actually if you could give it a look and advise, that would be much appreciated. I could make a new PR, or cherrypick some things out of it first before I do or whatnot.
ShimmerFairy looks like 'readonly' is used in parameter lists (and is apparently the default), and keeps the sub itself from modifying that parameter. I'm not sure if that should be the case for class attributes, though...
15:26 oetiker joined
AlexDaniel what is this "<-" thing? 15:26
dalek kudo/nom: b3ba1b3 | (Lucas Buchala)++ | src/RESTRICTED.setting:
Add Proc to RESTRICTED setting
kudo/nom: 2cb9230 | jnthn++ | src/RESTRICTED.setting:
Merge pull request #474 from lucasbuchala/temp2

Add Proc to RESTRICTED setting
skids jnthn: but I was on my way out the door, so I'll check irc log later. 15:27
jnthn is a native speaker and never heard the word "Inchoate" :P
geekosaur it's not the most common word 15:28
ShimmerFairy m: say 5 <- 10 15:29
camelia rakudo-moar a9136d: OUTPUT«False␤»
vendethiel m: say 5 < -10;
camelia rakudo-moar a9136d: OUTPUT«False␤»
vendethiel ShimmerFairy: ;-)
jnthn m: say - 10
camelia rakudo-moar a9136d: OUTPUT«-10␤» 15:30
jnthn :)
ShimmerFairy AlexDaniel: <- isn't anything, your thing was interpreted as for (@a < -25), 30 { ... }
vendethiel "@a < -25" checks that @a.elems is < -25
15:30 lizmat joined
AlexDaniel oohh, well 15:30
jnthn sees a Perl 6 secret operators talking coming :P
vendethiel hehehe
RabidGravy jnthn, rest easy I did a degree in English Literature and I don't think I've ever actually using
er used it
AlexDaniel Well, the thing is that -> is a valid operator, <-> is as well
ShimmerFairy jnthn: for that talking, consider: +^@a (not to be confused with ^+@a)
AlexDaniel so I thought, why don't I try <-
vendethiel AlexDaniel: right, but neither -> nor <-> are ambiguous with < and - 15:31
15:31 skids left
ShimmerFairy If <- were anything, it would be "write-only", which would be... interesting, but likely useless :) 15:31
AlexDaniel vendethiel: yea
vendethiel ShimmerFairy: write-only can be interesting, but certainly in limited contexts...
ShimmerFairy vendethiel: I can't help but wonder how often you could emulate the write-only support you want by just ignoring the part where you can read it too :P 15:32
RabidGravy I did have a use for write only the other day funnily enough
I went for always returning a type object on read 15:33
vendethiel m: my $backing; my $a := Proxy.new(FETCH => { ... }, STORE => { $backing = $_ }); $a = 5; say $backing; say $a;
camelia rakudo-moar a9136d: OUTPUT«Too many positionals passed; expected 0 or 1 arguments but got 2␤ in block <unit> at /tmp/woCyZUFDm8:1␤␤»
RabidGravy coo, first live playout failure on the radio station this year 15:36
15:36 beastd joined, mr-foobar joined 15:39 petercommand joined 15:52 rurban joined 16:00 amurf joined 16:02 zakharyas joined 16:05 amurf left
llfourn hey guys, FYI with the help I was given here a few weeks ago I made: github.com/LLFourn/perl6-slang-dotty 16:05
so thanks!
dalek kudo/nom: 75c5e17 | jnthn++ | src/ (2 files):
Fix does/but confusion/issues with many-roles form.
16:06
ast: 0cee736 | jnthn++ | S14-roles/mixin.t:
Tests for RT #124121.
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=124121
masak llfourn: nice! 16:08
llfourn: first time I see someone overriding dotty. 16:09
llfourn I actually started out trying to do it in perl5 but it was too hard : stackoverflow.com/questions/3041441...erl-parser
ShimmerFairy how do I use a Signature object as the signature for a block of code? Ideally something like: 16:10
m: my &foo = -> :(Int) { say "made it!" }; &foo(1)
camelia rakudo-moar 2cb923: OUTPUT«Too few positionals passed; expected 1 argument but got 0 in sub-signature␤ in block <unit> at /tmp/ZjOucE1l6g:1␤␤»
ShimmerFairy (the example given in S02 for Signature objects doesn't work, and isn't quite what I want anyway)
llfourn masak: Wasn't too bad :). There were a few gotchas but got there in the end.
16:11 kaare__ joined
jnthn ShimmerFairy: -> |c where :(Int) { } # maybe :) 16:11
Though -> |c (Int) { } works too
I hope... :) 16:12
Whee, down to 1031 tickets
ShimmerFairy It doesn't, but :() form appears to work
jnthn m: my $x = -> |c (Int) { 'ok' }; say $x(1); say $x(4.5) 16:13
camelia rakudo-moar 2cb923: OUTPUT«ok␤cannot stringify this␤ in block <unit> at /tmp/MAfke12UDv:1␤␤»
jnthn Innerestin' failure mode, but... )
ShimmerFairy m: my $a = :(Int, Int); my &foo = -> |c where $a { say c.perl }; &foo(1, 2)
camelia rakudo-moar 2cb923: OUTPUT«\(1, 2)␤»
ShimmerFairy Now I just need to figure out how to generate that Signature, and then I can maybe actually fix a ticket :) (this one: rt.perl.org/Ticket/Display.html?id=71544 ) 16:14
m: say (1,2,3,4,5).map(-> *@a { @a.perl }) # I have to say, I wasn't expecting this outcome 16:17
camelia rakudo-moar 2cb923: OUTPUT«[1]<> [2]<> [3]<> [4]<> [5]<>␤»
jnthn Oh, a non-literal signature. 16:18
ShimmerFairy: ah, hmm...not sure that's going to be the best way to do it. 16:19
ShimmerFairy jnthn: yeah, the solution that first came to me feels weirdly tricky.
jnthn well, maybe we can do it like 16:20
ShimmerFairy the grep method currently just uses 'map' with a single $_ parameter in the block. Messing with Signatures was how I figured you could get the right number of args to pass on, instead of just one.
dalek kudo/nom: 4337b2a | (Stefan Seifert)++ | src/core/control.pm:
Use 'Perl5' as consistent name for EVAL and use :from
kudo/nom: 0bed6c5 | lizmat++ | src/core/control.pm:
Merge pull request #473 from niner/nom

Use 'Perl5' as consistent name for EVAL and use :from
jnthn ShimmerFairy: Well, or we could just take a generic block like -> |c { $filter($c) } and mix a role into it with the count/arity :) 16:21
uh |c on the $filter(...) call too
Since that's what MapIter pays attention to 16:22
o/ lizmat :)
lizmat o/ jnthn
only barely awake enough to click "merge" :) 16:23
llfourn that reminds me: If you make slang by applying a role to your %*LANG, how do you EVAL using your slangified land rather than vanilla p6? 16:26
jnthn llfourn: I made it a while ago so you can override EVAL to match on a different :lang(...) 16:27
llfourn: So if you do it that way it should just be exporting a multi EVAL
That...does whatever's needed )
llfourn jnthn: so I call EVAL :lang(%*Lang) 'some code'? 16:28
ShimmerFairy jnthn: your idea to mix in a role seems to work out, at least in testing. I'll start working on making sure there are tests and the fix itself :) 16:29
m: sub foo($a, $b) { $a + $b }; my &bar = -> |c { foo(|c) }; my @a = 1,2,3,4; say @a.map(&bar but role { method count(Code:D:) { 2 } })
camelia rakudo-moar 75c5e1: OUTPUT«3 7␤»
jnthn ShimmerFairy: OK. I'd make it a role CheatArity { has $.arity; has $.count; }, and then mix that in, and then set them 16:30
ShimmerFairy: Then we hit the multi-cache nicely :)
llfourn: No, more that you'd need to implement an EVAL that knows what to do with code in your lanuage
*language
llfourn: Simplest case, that's just prepending a "use Your::Slang" I guess 16:31
llfourn jnthn: Ah so I should export an EVAL from my slang?
ShimmerFairy jnthn: OK, I was just considering that, since the Code class has a method count(Code:D:), it'd be nice to replicate that. Should that role be defined within the grep method, or outside of any other class?
jnthn llfourn: Yeah
llfourn jnthn: kk thanks
ShimmerFairy Oh, and if you want to set them after mixin, shouldn't they have is rw on them? :)
jnthn ShimmerFairy: Define it as a lexical (my) role inside the grep method for now, we can widen it if we see a need.
ShimmerFairy: Hm, true :) 16:32
16:32 JimmyZ_ joined
ShimmerFairy or, a sneaky method set-cheat($arity, $count) { ... } in the role too, if you'd rather not give MapIter rewritable attributes :) 16:32
jnthn True ;) 16:37
ShimmerFairy I think I'll prefer the safe route and not let MapIter easily change those attributes (so if it does try to, it'll fail with and without the mixin) 16:39
16:44 rindolf joined 16:46 zakharyas left
lizmat m: say ("a" x *)(42) # is this intended behaviour ? 16:46
camelia rakudo-moar 75c5e1: OUTPUT«aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa␤»
lizmat jnthn: shouldn't that, in time, create a Cat object ? 16:47
ShimmerFairy Depends on if "a" x * is supposed to generate a WhateverCode object :)
lizmat the, "a" x * bit, I mean
well, it does create a WhateverCode object now, which bypassed a <x>($s, Whatever) candidate I just made 16:48
to fix #125628
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125628
jnthn lizmat: Dunno, the whatever code variant is quite useful, but it's odd to have it on x but not xx
lizmat jnthn: where would it be useful? In a substr or so ? 16:49
jnthn lizmat: Generally the direction has been to add whatever-thunking more than to remove it (e.g. * ~~ Foo)
But it's a lang design question so wants running by TimToady++ really
lizmat m: say "a" x * # not what I expect
camelia rakudo-moar 75c5e1: OUTPUT«WhateverCode.new␤»
jnthn m: say "a" ~ * # and this? 16:50
camelia rakudo-moar 75c5e1: OUTPUT«WhateverCode.new␤»
lizmat ok, I'll just push the fix and we'll discuss later
ShimmerFairy The current behavior feels like a very Haskell-y thing to me (and that is purely because I've been reading a Haskell tutorial lately :P)
jnthn lizmat: What is "the fix" ooc?
lizmat m: say ("a" ~ *)("foo")
camelia rakudo-moar 75c5e1: OUTPUT«afoo␤»
lizmat multi sub infix:<x>($s, Whatever) { fail X::NYI.new(:feature('Cat object')) }
jnthn But...do we ever hit that? 16:51
m: say ('a' x *)(3)
camelia rakudo-moar 75c5e1: OUTPUT«aaa␤»
lizmat no, we don't
jnthn Then it's adding dead code? :)
Well
It's reachable late-bound I guess
lizmat m: say "a" xx * 16:52
camelia rakudo-moar 0bed6c: OUTPUT«a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a ...␤»
lizmat m: say "a" x *
camelia rakudo-moar 0bed6c: OUTPUT«WhateverCode.new␤»
TimToady arguably, that's just another reason for distinguishing xx from x
ShimmerFairy Hm. I'm not sure if I want xx * to be WhateverCode too, or want x * to do the string equivalent of an infinite/lazy list (i.e. Cat) 16:53
TimToady I suspect it's fine to make people work harder to create an infinite string, if we ever find a use for one 16:54
ShimmerFairy leans towards WhateverCode in both cases, since there's always x Inf and xx Inf ...
lizmat ok, I'll just fix the "a" x Inf case
16:55 domidumont left
TimToady people do want an infinite list a lot more often than they want to curry xx 16:56
lucasb What is the unicode char for the infinity sign? That horizontal "8". I wish that char was in ASCII, then the issue would have been solved :)
jnthn hm, point :)
dalek kudo/nom: 059dac9 | lizmat++ | src/core/ (2 files):
Partially fix #125628

Did not fix the '"a" x *' case, as per discussion at:
   irclog.perlgeek.de/perl6/2015-07-18#i_10918034
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125628
ShimmerFairy m: say "∞".uniname
camelia rakudo-moar 0bed6c: OUTPUT«INFINITY␤»
ShimmerFairy unexpectedly simple :)
lucasb ShimmerFairy: yeah :D
I had to see it in the browser, because my terminal is not configured 16:57
TimToady so just add a .ASCII and you'll have the char you want :P
ShimmerFairy TimToady: fair enough, I just think it'd be nice/cool for * to generate a curryable thing in that case, esp. since we already have a handy term for "infinite", namely Inf :) 16:58
16:59 rindolf left
dalek kudo/nom: 9eb336f | jnthn++ | src/core/Variable.pm:
Implement does trait on variables.
17:00
TimToady we should add some more * characters to ASCII while we're at it
dalek line-Perl5: 077b844 | (Stefan Seifert)++ | / (3 files):
Use 'Perl5' as consistent name for EVAL and use :from

Fixes GH #28
Thanks to hoelzro++ for reporting!
ast: 4f22909 | jnthn++ | S14-roles/mixin.t:
Unfudge test for does trait on variables.
jnthn That was the last fudged tset in S14-roles/mixin.t :) 17:01
ShimmerFairy We'll have to add more bits to ASCII first :)
jnthn And back down to 1030 RTs. Guess I'm allowed dinner now :) 17:02
TimToady we could steal some of those control chars that nobody ever uses
ShimmerFairy What was that one control sequence that introduced an "alternate" thing? 17:03
geekosaur SO / SI?
(welcome back to BAUDOT >.> ) 17:04
TimToady m: say &[x].assuming("a")(42) 17:06
camelia rakudo-moar 0bed6c: OUTPUT«aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa␤»
TimToady and it's not like it's all that hard to do partial application without * 17:07
ShimmerFairy sure, that's why I said "would be nice/cool" instead of "is really important" :) 17:08
TimToady we could, I dunno, make \* always autoprime, or some such 17:09
jnthn lizmat: Dunno if you backlog, but if not: I posted an S17 thingy earlier today 17:10
jnthn goes to find the bankomat 'cus he decided to order takeout to avoid going out in the hot weather only to realize he needs money to pay for it... 17:11
bbiab
ShimmerFairy Oh, TimToady, does is readonly on a class attribute mean not even the class can modify it (like when used on parameters in subs/methods), or is it simply the opposite of is rw (i.e. the default for public attributes)
17:12 JimmyZ_ left
ShimmerFairy Right now, it behaves as if it's the opposite of is rw , but a test in roast expects the other thing. 17:12
TimToady has no clue what 'is readonly' would do, never having wanted it
ShimmerFairy TimToady: me neither; when I saw the (quite old) ticket, my first thought was "oh, was this before is rw and default-ro attributes or something?" 17:13
The ticket: rt.perl.org/Ticket/Display.html?id=71356 17:14
TimToady having such an attribute implies to me that a class has got way too big, if parts of it don't trust the other parts of it...
otoh it could be a message to maintainers, I suppose
otgh, we tried to get rid of 'is readonly' by defining ::= instead
ShimmerFairy It seems to me it should be the opposite of rw (and currently warns with 'useless use' on private attrs, just like rw) 17:15
Yeah, I can't help but think why you couldn't use constants and/or not use is rw :)
TimToady m: my $x ::= 42; say $x++
camelia rakudo-moar 0bed6c: OUTPUT«Cannot assign to an immutable value␤ in block <unit> at /tmp/NQO95OqGW1:1␤␤»
TimToady m: my $x ::= 42.item; say $x++
camelia rakudo-moar 0bed6c: OUTPUT«Cannot assign to an immutable value␤ in block <unit> at /tmp/ThUxP29elD:1␤␤»
TimToady m: my $x ::= Scalar(42); say $x++
camelia rakudo-moar 0bed6c: OUTPUT«Cannot find method 'Scalar'␤ in block <unit> at /tmp/nCDbWPmF4n:1␤␤»
TimToady not awake enough yet 17:16
ShimmerFairy I hope you had a good test at the doctor's yesterday, btw. (Though I'm guessing the results will take some time.) 17:17
TimToady well, they did find a constriction, and ballooned it, but yeah, gotta wait for biopsy results, so I'm kinda feeling my mortality today 17:18
ShimmerFairy Sorry to hear that. I hope it ends up being nothing serious, of course. 17:19
lizmat jnthn: "$*AWAITER environment variable" environment ?? 17:23
17:23 yqt joined 17:24 spider-mario left
lizmat jnthn: whenever Supply.interal(1) { # I guess "interval" ? 17:27
17:29 domidumont joined
timotimo nope, intercal 17:31
nine jnthn: I cannot help but think of an async database interface reading about whenever.
17:36 yqt left
dalek ast: 256d6a9 | PerlJam++ | / (4 files):
Update tests to reflect empty leading and trailing elements

See RT#112868
17:38
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=112868
17:40 konsolebox joined
dalek kudo/nom: 4b5e196 | PerlJam++ | src/core/Str.pm:
Fix for RT#112868
17:40
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=112868
dalek ast: a8ce6fb | (Stefan Seifert)++ | S01-perl-5-integration/ (13 files):
Use 'Perl5' as consistent name for EVAL and use :from
17:41
ast: 564b3b6 | (Stefan Seifert)++ | / (7 files):
Merge branch 'master' of github.com:perl6/roast
jnthn lizmat: I meant dynamic, not environment. And fixed the other typo; thanks :) 17:43
17:45 rurban left
lizmat "for @awaitables.grep(* !~~ Awaitable) {" I would probably would have done a if @awaitables.first(...) { die... } 17:45
jnthn lizmat: Dangerous :) 17:46
lizmat: Remember Promise.Bool :)
lizmat ah, hmmm... 17:47
then "for @awaitables.first(...) { die }" ?
jnthn You could if defined @awaitables.first(...) if you want, but it's longer :P 17:48
lizmat I mean, no need to look for further failures when you found the first one
afk for a bit&
flussence
.oO( slightly worrying: Supply.intercal doesn't sound like *that* much of a typo... )
17:48 spider-mario joined
jnthn lizmat: It's lazy anyway ;) 17:49
17:50 amurf joined 17:53 domidumont left
jnthn bbl 17:53
17:54 amurf left
jaffa4 What is happening to Pugs? 17:57
Why is it not here perl6.org/compilers/features?
geekosaur pugs hasn't been maintained in years 17:58
basically, only au++ understands it well enough to do anything with the code (some of us with Haskell experience have tried...) and au is busy 17:59
timotimo every few months someone brings it up to buildability again when something breaks
jaffa4 What about niecza? 18:03
timotimo hasn't been worked on for a long while, sadly 18:04
TimToady it bit-rotted wrt mono 18:05
timotimo :(
isn't .net very backwards compatible or something?
18:06 beastd left
japhb .ask flussence Did you manage to find the cause of that segfault in the Text-Tabs-Wrap tests? 18:14
yoleaux japhb: I'll pass your message to flussence.
flussence japhb: something to do with threads, so it's way out of my league. The only workaround I know of is forcing 1 thread max, but then it takes forever to run tests :( 18:15
yoleaux 18:14Z <japhb> flussence: Did you manage to find the cause of that segfault in the Text-Tabs-Wrap tests?
japhb flussence: Oh, eww. 18:16
18:16 yqt joined
flussence (and the whole reason it tries to be parallel in the first place is... because those tests take forever. *sigh*) 18:17
jaffa4 does any have the latest niecza.zip? 18:30
any = anyone 18:31
RabidGravy dunno, I was a big mono fan ten years ago haven't really tracked it recently] 18:33
18:44 domidumont joined 18:53 llfourn left
TimToady it wasn't just bitrot, there were some design corners that got themselves painted into; these days it probably makes more sense to target an nqp backend to the clr 18:57
vendethiel TimToady: I've heard that several times, but no one has been able to tell me more than "it got caught cheating". do you happen to know which part cheated, say? 18:58
jaffa4 bitrot?
TimToady vendethiel: I'm mostly quoting sorear++ on that 18:59
it didn't really support multi dispatch, for one 19:00
and there were some type issues that may or may not have been helped by the GLR 19:01
but we weren't ready for that
masak TimToady, ShimmerFairy: I can see a use case for `has $!attr is readonly = init-val();` for having a kind of "constant attribute", initialized once at construction and then never changing. I don't think "big class" and "mistrust" are the only causes.
flussence istr niecza did some things *very* well compared to rakudo... but some others not at all
TimToady there was certainly a lot of good art there 19:02
m: class Indiana { has $.pi ::= 3 }; say Indiana.new.pi
camelia rakudo-moar 4b5e19: OUTPUT«5===SORRY!5=== Error while compiling /tmp/FXWlrnIrT7␤Cannot use ::= to initialize an attribute␤at /tmp/FXWlrnIrT7:1␤------> 3class Indiana { has $.pi ::= 3 7⏏5}; say Indiana.new.pi␤» 19:03
19:03 yqt left
ShimmerFairy I still personally think "is readonly" should be the opposite of "is rw", if it even stays around. 19:03
TimToady that oughta be made to work
jaffa4 timbunce: unsolvable?
masak submits NYI rakudobug
TimToady tab completion is unsolvable, yes :P 19:04
jaffa4 TimToady: no, niecza problems?
TimToady where there's a will, there's a way
but so far, there's no will 19:05
jaffa4 agree
TimToady there's plenty of "will" here, but it's mostly aimed at getting something out by Christmas 19:06
and MoarVM is the only one we've promised to target by then 19:07
jaffa4 Sorry not September? 19:08
TimToady September is beta
or "birthday" :)
jaffa4 Is it now beta now?
TimToady it's "advent", er, alpha now
beta implies we pretty much have the language nailed down, and we can't say that till after the GLR 19:09
errands &
19:22 khw left 19:35 domidumont left
AlexDaniel there is not much time till September though 19:41
ShimmerFairy While I'm thinking about it, I'm curious as to why people here tend to use Markdown instead of Pod6 (or even POD); I wonder if any of said reasons are things that can be improved upon for Pod6. 19:42
AlexDaniel ShimmerFairy: does github support pod6?
ShimmerFairy nope
AlexDaniel isn't it the reason? 19:43
vendethiel ShimmerFairy: I don't need something complicated :)
ShimmerFairy AlexDaniel: that could certainly be one of the reasons, but it's too easy to come up with :P 19:44
vendethiel ref regarde le talk ;D 19:45
masak ShimmerFairy: if you ask me, the best thing that could happen to Pod6 would be if it became Markdown. :) 19:46
ShimmerFairy masak: I'm actually not a fan of Markdown though; not enough power to it :)
b2gills I have grown accustomed to Markdown from all of the answers I wrote on StackOverflow ( I know of quite a few tricks to get it to format the way I want it too ) 19:50
mst ingy's KWIM is interesting
since it's basically the result of him using markdown for a while and then getting angry at the missing features 19:51
b2gills Actually [I][] really like that [you][I] can do this with Markdown, and be able to update all of the links at once.␤[I]: example.com "tooltip" 19:52
Which you can't in POD
19:55 bin_005 joined
b2gills I also tend to write it in emails, and if you paid attention you would note that I even do some of that here with `code blocks` 19:56
19:57 kaare__ left 19:58 kaare__ joined
flussence I've tried using AsciiDoc and ReStructuredText too, but there's too many weird minor details to take in 19:58
(sometimes I'd rather give up and write abbreviated HTML) 19:59
b2gills Really for quick throw some text up with some minor formatting Markdown is quite usable. ( It also supports a subset of HTML, which I have had to use for some MetaStackExchange posts ) 20:00
nebuchadnezzar like org-mode o/ 20:01
b2gills I would like to see POD6 be well supported as well of course. 20:02
DrForr Shrug, I'm still old-school enough that I'd like to see LP revived :) 20:07
timotimo LP? when i read that i either think vinyl or Let's Play 20:08
20:11 Sqirrel joined 20:14 darutoko left 20:19 kaare__ left
masak looks up kwim 20:26
"Due to a certain unfortunate homonym, Kwim has been replaced by (renamed to) Swim."
I... see.
masak looks up Swim 20:27
I don't immediately see what in Swim is supposed to make me like it better than Markdown. 20:32
it converts to many formats. well, thanks to pandoc++, so does Markdown.
20:39 inokenty joined 20:43 rurban joined
japhb .tell tadzik I think you broke Panda.pm with commit 0e2cda5ae9723920dd93103511a98419dd53e800 ($p is now undeclared in that method) 20:44
yoleaux japhb: I'll pass your message to tadzik.
20:50 llfourn joined
masak .tell tadzik PR'd you with a fix: github.com/tadzik/panda/pull/187 20:54
yoleaux masak: I'll pass your message to tadzik.
masak (pls check that it's right -- I just did the obvious thing)
20:54 llfourn left 21:04 jaffa4 left 21:13 atroxaper joined 21:17 atroxaper left 21:27 amurf joined
tadzik ooops 21:31
yoleaux 20:44Z <japhb> tadzik: I think you broke Panda.pm with commit 0e2cda5ae9723920dd93103511a98419dd53e800 ($p is now undeclared in that method)
20:54Z <masak> tadzik: PR'd you with a fix: github.com/tadzik/panda/pull/187
21:32 amurf left
tadzik I think it is 21:32
masak yeah, it looked right. 21:33
RabidGravy boom 21:37
lucasb tadzik, masak: Two more mentions of the $p variable remained 21:54
21:59 lucasb left
tadzik argh 21:59
grrr 22:01
flussence
.oO( note to self: remove ungreppable variable names from own code )
22:02
hoelzro tadzik: I fixed those in #188
I can reopen, if you'd like
AlexDaniel "Modules interact with each other through named entities called symbols. The operation that makes symbols from a module available to another module is called import while the operation of using such a name is called import."
copy-pasta? 22:03
"is called import" twice, it seems like the first one should be "export" ?
22:05 Sqirrel left 22:08 spider-mario left
masak AlexDaniel: looks like. 22:10
japhb .tell jnthn Happened to see the link to your S17 supply/whenever proposal. I like it in general -- which is to say, I'd probably need to code a bit with it to find the holes if any. 22:12
yoleaux japhb: I'll pass your message to jnthn.
japhb Any other big proposals this week? I was mostly-to-completely AFK for several days. 22:13
*proposals/changes
22:13 Sqirrel joined
masak proposed to japhb several times during the week, but took the complete silence as a big snub :P 22:13
22:13 rurban left 22:15 khw joined
masak but yes, gist.github.com/jnthn/a56fd4a22e7c43080078 looks very exciting. 22:17
masak also loves how `race` and `hyper` fit into the `whenever` picture 22:26
22:29 sivoais joined
tadzik hoelzro: wihc those? 22:32
er 22:33
which 188?
masak this is why we url
22:35 TEttinger joined, RabidGravy left 22:41 MilkmanDan left, espadrine_ left
timotimo let's all url 22:45
what were we talking about? 22:48
22:50 Ben_Goldberg joined
tadzik this is how we url 22:52
22:57 yqt joined 22:58 telex left 23:00 telex joined
hoelzro tadzik: github.com/tadzik/panda/pull/188 23:00
just reopened
23:01 atroxaper joined 23:02 xiaomiao joined 23:05 atroxaper left 23:14 jo_ joined 23:15 jo_ left 23:16 xiaomiao left 23:19 xiaomiao joined
tadzik thanks! :) 23:36
23:39 Ben_Goldberg left
hoelzro no problem! 23:50
23:51 llfourn joined 23:55 mattp_ joined 23:56 llfourn left
hoelzro tadzik: another PR for you: github.com/tadzik/panda/pull/189 23:58