»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
dalek rl6-roast-data: 5bdffcb | coke++ | / (6 files):
today (automated commit)
03:46
Mouq In progress: mouq.github.io/perl6-feast/ 05:08
(This version also seems to run much faster than the old one) 05:10
My hope is that where it says "(N skipped)" etc., I'd like to actually have the descriptions followed by the code of the actual tests being skipped 05:12
And, as always, feel free to PR :) 05:13
Mouq (Er, the actual repo is at github.com/Mouq/perl6-feast . I should probably link to it from the page) 05:15
pat_js hey I haven't been around lately is panda still the preferred application for installing perl6 modules? 05:17
Mouq pat_js: Yup
pat_js thanks Mouq++
Mouq np :)
pat_js do you, by any chance, know which branch is working with an rakudo from yesterday? master doesn't seem to work 05:21
Mouq nom?
I'm not sure what you mean
The "master" branch for rakudo is nom 05:22
And then nqp/parrot/moarvm's master branches are actually master
Or are you saying the latest Rakudo isn't compiling? 05:23
pat_js panda's bootstrap.pm has errors.
Mouq pat_js: Try rebootstrap.p6 05:24
FROGGS_ pat_js: panda was working for me yesterday, I installed latest rakudo and cloned panda on an ubuntu 14.04 box for testing 05:33
pat_js hmm I get an error that $*EXECUTABLE is not defined. I looked it up and it indeed should be $*EXECUTABLE_NAME 05:34
tadzik ( ° ー°)
Mouq pat_js: Then you're using an old Perl6 with a new Panda
tadzik you can checkout 2693bbc536bb02930a1a2ba38fcd2f194f748b48 05:35
r: say $*EXECUTABLE
camelia rakudo-jvm dfd343: OUTPUT«IO::Path</home/p6eval/rakudo-inst-2/bin/perl6-j>␤»
..rakudo-moar dfd343: OUTPUT«IO::Path</home/p6eval/rakudo-inst-1/bin/perl6-m>␤»
..rakudo-parrot dfd343: OUTPUT«IO::Path</home/p6eval/rakudo-inst/bin/perl6-p>␤»
pat_js yeah i see it now. I thought I had it updated this weekend but I still have some version from last November. 05:37
sorry, my bad.
tadzik I should probably tag panda, depending on how new $*EXECUTABLE is 05:40
so one can easily checkout the version that works on their older rakudos
I sometimes remember to do that before breaking changes :)
Mouq pat_js: No sweat :) 05:42
Mouq out
jnthn morning, #perl6 06:52
raydiak morning jnthn 06:53
jnthn slurps coffee 06:53
moritz \o 06:56
jnthn: are you still planning to do the R* release this month?
raydiak o/
sergot o/ 06:58
FROGGS morning 06:59
jnthn moritz: Yes, though don't have a lot of free time until Thursday, which is not this month any more :/
moritz ah well, a day or two won't kill anybody 07:00
FROGGS could be a new tradition to do it on the 1st :o)
jnthn Will see if I have a little time tonight after teaching. 07:01
igorsutton hi 07:13
moritz hello igorsutton 07:14
lizmat good * moritz igorsutton and the rest of #perl6 07:30
raydiak g'night #perl6 07:36
Ulti notices just how many lurkers there are 10:22
lizmat and then we don't even know how many people lurk on the irclogs 10:27
nwc10 Hello to all my friends and fans in domestic surveillanc 10:35
oops
Hello to all my friends and fans in domestic surveillance 10:36
Ulti lizmat well you can probably guess from IP and get requests
might be a neat addition to the log website
nwc10 highly unlikely they are keeping an eye on #perl6 unless we say BOMB NSA GCHQ TERROR ATTACK NUKE woops... 10:37
jercos proposal: reverse the operand order of %%, rename it to "gozinta" 10:39
jnthn We could just reverse the chars in the operator...
nwc10 worries that this is the start of LOLMOAR 10:41
lizmat
.oO( bazinga! )
jercos r: sub infix:<gozinta>($a, $b) {$b %% $a};say 7 gozinta 14
camelia rakudo-{parrot,jvm,moar} dfd343: OUTPUT«True␤»
jnthn I actually just serached for a Unicode char that is a backwards % sign :P
jercos r: sub infix:<gozinta>($a, $b) {$b %% $a};say 5 gozinta 14
camelia rakudo-{parrot,jvm,moar} dfd343: OUTPUT«False␤»
jnthn jercos: Note you can already spell it R%% 10:42
nwc10 is there lolcode for a current (enough) NQP toolchain?
jercos True enough. meta-ops <3
dalek ast: fb627e3 | (Elizabeth Mattijsen)++ | S32-list/first-index.t:
Add tests for first-index
11:01
dalek ast: 3fa50a0 | (Elizabeth Mattijsen)++ | S32-list/first-rindex.t:
Add tests for first-rindex
11:07
kudo/nom: c9f2239 | (Elizabeth Mattijsen)++ | t/spectest.data:
Add tests for first-(r)index to spectest
11:13
timotimo m: my &infix:<gozinta> = &[R%%]; say 5 gozinta 15 12:01
camelia rakudo-moar dfd343: OUTPUT«===SORRY!=== Error while compiling /tmp/1Z_S9wLKcv␤Variable '&infix:<R%%>' is not declared␤at /tmp/1Z_S9wLKcv:1␤------> my &infix:<gozinta> = &[R%%]⏏; say 5 gozinta 15␤ expecting any of:␤ postfix␤»
timotimo :( 12:02
lizmat jnthn: wrt to S17-supply/delay.t tests: I think something goes wrong internally and the error is not seen 12:06
the tap gets a "done" too soon, before it can even schedule
(this using ThreadPoolScheduler, CurrentThreadScheduler works fine) 12:07
dalek ast: 8ea1475 | (Elizabeth Mattijsen)++ | packages/Test/Tap.pm:
Added ":more" and ":done" feature to tap_ok

Mostly useful for debugging tests, I would think.
12:09
jnthn lizmat: Hmm...does the done get delayed too? 12:26
lizmat yes 12:33
lizmat jnthn: could it have to do with on-demandness of the Supply ? 12:51
jnthn Don't think so...but maybe 12:53
Need to teach...so I'll just make a pun about supply and demand and bbl :) 12:54
lizmat hehe... the plot thickens though, as it seems that the done is not delayed :-( 12:57
lizmat jnthn: could it be that I need to delay a closing as well? 13:06
dalek ast: cead30e | (Elizabeth Mattijsen)++ | S17-supply/delay.t:
Some more Supply.delay testing
13:08
lizmat afk for a while& 13:35
hoelzro morning #perl6 15:00
timotimo: I have wonderful news for you
I have had this one bug in an application since January that's been on the top of my OSS priority list
and last night I fixed it =)
hoelzro so guess what's next on the heap? 15:00
colomon hoelzro++
timotimo \o/ 15:01
timotimo that sounds like i'm going to be enjoying your contributions in the near future :) 15:01
hoelzro in other news, reading all of these posts/talks about supplies just makes me think of Starcraft
hoelzro indeed! 15:02
timotimo you must construct additional pylons
hoelzro use Supply::Depot;
timotimo :3
hoelzro I offer up that namespace to whomever puts it to good use =) 15:03
timotimo i don't have a good idea as of yet 15:04
jnthn hotel & 15:07
(btw, a gaming application of supplies would be awesome! :D) 15:08
tadzik I could probably find some :) 15:09
timotimo finally gets a fresh linux onto his desktop 15:44
TimToady has been working on that too; installed ubuntu 14.04 on a new partition, but have to copy over a bunch of conf files before really switching... 15:49
(upgrade in place didn't work for some reason) 15:50
timotimo i've killed the contents of a relatively fresh hard drive and put a fedora onto it 15:51
i expected the installer to find my old linux again and make it available on the boot menu 15:52
turns out ... no :)
jnthn just sticks Linux in a VM :)
TimToady well, fdisk should tell you if the old partition is still there
timotimo i'm pretty certain they are 15:53
TimToady good time to learn the "mount" command then :) 15:53
timotimo the installer showed a summary of partitioning actions it'd do and changing my sda wasn't on that list :)
FROGGS I use a linux cd/dvd/stick and then usually gpart to repair disks
timotimo fortunately i've been using gentoo for a couple years some time ago, so i kind of know what i'm doing :) 15:53
masak hi from... a train! \o 15:58
timotimo heyo masak :)
TimToady hopefully a train of thoughts 15:59
jnthn masak: have a raily good journey!
TimToady clacks at jnthn
timotimo now i'll have a system with btrfs, yay 16:01
itz is the czech workshop really on Tue/Wed? or is my calender old 16:03
jnthn It's really a tue/wed 16:04
lizmat yup
lizmat m: sub term:<1min>() { Duration.new(60) }; say 1min 16:07
camelia rakudo-moar c9f223: OUTPUT«60␤»
lizmat however, if I put this in the settings, I get:
$ perl6 -e 'say 1min' 16:08
===SORRY!=== Error while compiling -e
Confused
at -e:1
------> say 1⏏min
expecting any of:
whitespace
suggestions?
jnthn lizmat: Also need to define it in Grammar.pm
uh, .nqp
lizmat + token postfix:sym<1min> { <sym> >> <O('%methodcall')> }
like that?
oops
jnthn no, as a term, I think. 16:09
lizmat ack
TimToady thinks combining numbers and letters like that is a Really Bad Idea 16:12
lizmat ok, I'll take that as a veto then :-)
FROGGS I hope it is not too l8 for a veto :o) 16:13
lizmat TimToady: could you elaborate on why? Just for my understanding... 16:14
TimToady it seems to be confusing the concepts of term and postfix, and be a low-luminance feature 16:15
TimToady why not make a postfix "min" that can operate on a 1 16:15
lizmat TimToady: this was my diff: gist.github.com/lizmat/11404980
TimToady assuming one wants to introduce units into the setting, which is problematic
timotimo a "minutes" and "seconds" method for numbers? :) 16:16
lizmat so you could say: 1min or 2mins
TimToady a postfix is not necessarily a method
timotimo well, it could be a method; that'd make it more discoverable, too 16:16
FROGGS 1.min? nooooooo /o\
TimToady we're not gonna overload numeric methods with all the possible uses of numbers 16:17
timotimo :D
TimToady units, if we have 'em, should work more like postfixes
raydiak m: sub postfix:<mins>($count) { Duration.new(60*$count) }; say 3mins
camelia rakudo-moar c9f223: OUTPUT«180␤»
TimToady I think the use of plurals on units is somewhat misguided 16:18
2.54cm
lizmat raydiak: this is what is in my gist :-)
TimToady not 2.54cms
FROGGS yeah, at least that is consistent with 1st, 2nd, 42rd
raydiak I dislike the minimum/minutes collision tho
timotimo i was suggesting to make it a method "minutes". 16:19
TimToady well, there's no "minimum" in the postfix space currently
FROGGS oh oh oh... do we get the unit 'cups' then also? :D
timotimo :D
TimToady presumably you'd only use it where it makes sense
raydiak true, the collision only exists in my head :)
TimToady I suspect the sane thing to do is to import the units you're really interested in
lizmat so how would a unit like "cm" look like? 16:20
42.cm ?
TimToady no, units are not methods!!!!!
masak I think introducing units postfixes into the setting would require a lot more community buy-in than what we have so far.
lizmat or 42cm
[Coke] -1 on this being in core.
moritz -1 too
TimToady it's fine to import them 16:21
masak please do this kind of experimentation outside of core first. 16:21
moritz lizmat: 42.cm looks cute, but IMHO it's not the responsibility of the Int type to know how to turn itself into a length unit
TimToady and the . isn't necessary
lizmat well, it would live in Numeric but
masak lizmat: number types should not do units -- among the very many things they shouldn't do.
PerlJam moritz: but ... but ... ruby does it ;)
TimToady we use \ on postfixes if they're ambiguous
$x\i
masak FROGGS: you pervert :P 16:22
FROGGS: people start talking about units, and the first thing you think about is bra sizes :P
moritz thought something else
TimToady masak: keep trying...or better yet, don't... :P
moritz but that would require a 'girls' unit too... 16:23
lizmat so do we want units in core? 16:23
[Coke] nope.
masak no.
moritz no 16:24
lizmat do we need something like sub unit:<cm>($cm) { ... } ?
TimToady there you have it :)
lizmat ok
[Coke] sorry, lizmat!
masak lizmat: no.
TimToady not unless we distinguish units syntactically from postfixes, which we don't currently
lizmat fwiw, *if* we would do units
masak I'm still looking forward to an excellent/useful unit module. 16:25
lizmat I feel it should have whitespace between the value and the unit
masak haven't seen one yet.
PerlJam Didn't we have the "units" discussion at least once already? (prior to lizmat joining #perl6 I'm sure)
masak PerlJam: I think there is one on p6l, far back.
TimToady lizmat: allowing whitespace would be insane
lizmat too cobolly ? 16:26
masak PerlJam: I played around with them in strangelyconsistent.org/blog/6-buil...you-needed
TimToady don't want to mix postfixes in with infixes
masak TimToady, defender of the term/op self-clocking.
(TimToady++) 16:27
raydiak what sorts of things do we consider when deciding what does or does not belong in core?
PerlJam raydiak: Whether TimToady likes it or now ;)
er, s/now/not/
TimToady or contrariwise, defining them as infixes without a right argument would also be insane 16:28
raydiak PerlJam: beisdes the obvious :)
masak raydiak: the ratio between use and cost.
PerlJam masak++ I was going to say "bang buck ratio" next :)
masak .oO( note to self: predicting what PerlJam says and then saying it brings instant karma ) :P 16:29
TimToady even leaving out that "min" is a valid infix
PerlJam masak: If you can predict what I'm going to say, let me know so that I can not bother saying it.
TimToady the name belongs in the setting if it's universal, like basic math; this does not necessarily mean that the implementation has to live in core, if we can load the implementation lazily 16:30
masak I place units in the "I'll believe it when I see it" category of possible features. until I see a genuinely useful/interesting implementation, I'm not going to vote for its inclusion in core.
TimToady the problem is that some units are nearly universal, while others are deeply cultural 16:30
masak someone pointed out in a talk I went to recently that even if you have matching units, you can have completely incompatible *types*. 16:31
timotimo i'm really, really looking forward to the time when we can finally lazily load in features ... 16:32
masak which makes the naive assumption of "as long as the units match, everything's OK" useless.
moritz masak: for example Nm can either be an angular momentum, or be reducible to Joule (Energy), and you totally cannot add them up
TimToady not to be confused with nm :) 16:33
moritz because Nm as angular momentum is actually a vector product, where force and way are perpendicular, whereas in the case of Energy, they must be parallel
TimToady how does the 'units' program distinguish them?
masak moritz: that was the example the guy made, actually. in his live demo, the universe exploded as a result of adding the two magnitudes. 16:34
TimToady there's likely prior art on disambig
moritz anyway, the point is that this whole stuff is much more complicated than it might look on the surface
masak installs units
moritz: exactly.
timotimo much install ... 16:35
TimToady the user interface of units sucks, but a lot of thought has gone into disambiguation and commensuration...commensurateness...commensurability... 16:36
PerlJam suddenly wonders if the planck constant should be "in core" 16:37
TimToady well, we could put c, but physicists usually just define it as 1 anyway :)
lizmat wonders what she stepped into :-)
TimToady so to a physicist, it's not E = mc², but just E = m 16:38
[Coke] masak: (not in core) you're such a fiver! ;)
masak TimToady: how 'units' solves it: `Unknown unit 'Joule'`
PerlJam and how come we have pi, but not tau? (or does that cross the line from "universal" to "cultural"? :) 16:39
masak [Coke]: I think I am, yes. I deeply respect Perl 5, and I think they got this part very right.
moritz TimToady: depends on the context
moritz CGS, Gauss and SI units are commonly used 16:40
PerlJam: it's universally cultural :-)
masak [Coke]: but most of all, I really really like Perl 6, and I don't like seeing it encumbered by all kinds of cute-today regrets-tomorrow features.
TimToady I should qualify that as "theoretical physicists"
moritz TimToady: even there it depends
PerlJam masak: That one is almost enough to make me start a masak-quotes file. 16:41
moritz TimToady: those that do particle physics or astronomy or cosmology, yes
but for example solid state folks all think in eV instead
[Coke] depending on how theoretically, maybe e= sqrt( (mc²)² + (pc)² ) !
TimToady well, most of my sampling is from a black-hole quantum thermodynamicist :)
moritz [Coke]++
masak PerlJam: having 'tau' would move Perl 6 closer to the "we like to be different for being different's sake!" hair-on-end looks-like-a-hobo box. 16:42
lizmat FWIW, disregarding the whole units discussion
[Coke] I really like the idea of tau, but that ship is not sailing under our control.
TimToady all the other theoretical physicists are really applied physicists, they just don't know it :P
lizmat the reason I wanted to add things like "1min" was to be able to more clearly call subs/methods taking Durations
[Coke] something(1(Duration)) 16:43
?
masak [Coke]: (pc)² means "player character, squared", right? :P
lizmat feels to me that since we have Durations, but no units to handle them, we could get rid of Duration altogether for clarity
TimToady ick²
[Coke] masak: :P²
TimToady it's fine to have Durations, but require the units to be imported
masak m: say Duration.new(1) 16:44
camelia rakudo-moar c9f223: OUTPUT«1␤»
TimToady Durations are universal, but durational units are often cultural
masak whether we have units or not, Duration.new(1) is fairly straightforward, if you ask me. 16:45
lizmat TimToady: are you saying that "fortnight" would be a cultural duration ?
PerlJam masak: that's one femtosecond, right?
timotimo the difference is that duration actually has a unit, which is seconds (as you can see if you add it to an instant object)
lizmat masak: that's not very huffman coded, now is it
moritz German has no notion that corresponds to a fortnight
[Coke] moritz: no one does. :P 16:46
(said the american...)
TimToady a microfortnight is about 1.72 seconds, iirc
raydiak sounds like something my son plays with... 16:47
itz "My car gets 40 rods to the hogshead and that's the way I likes it!"
TimToady no, about 1.2 seconds
jnthn lizmat: What are you trying to huffman code, exactly? sleep happily takes a number of seconds, as well as a Duration. The time-related supply methods also do. 16:48
uh, well, they don't also take a Duration yet
jnthn But they should. 16:48
masak lizmat: what jnthn said.
jnthn And probably just re-dispatch to the number-taking one given that's the more low-level of the two.
lizmat I would almost argue that sleep should *only* take a duration
masak feels like we're proposing a solution with no real problem to solve.
jnthn lizmat: I'd call that "inventing a huffman problem to solve" ;) 16:49
lizmat indeed, sorry everybody for the hubris
I will go back to writing tests now :-)
masak there's nothing wrong with sleep() expecting seconds, IMHO.
lizmat sleep expects Any atm
jnthn And .Num's it, I guess? 16:50
masak I'd be fine with Cool, but whateves.
masak is grateful/happy lizmat is thinking about and hacking on stuff
jnthn also 16:51
masak is also grateful that there are community counterbalances in place for a Lone Patcher :)
lizmat well, this didn't even make it to a commit 16:53
masak :) 16:54
lizmat because I like to test things before I commit and it didn't work
afk& 16:55
woolfy Maybe a bit less vagueness and jocularity and a bit more specifics would be helpful for lizmat. I mean, if not "1min", how else should a timeframe be shortly specified in a Perl6-way? I don't understand all the fuzz, but I'm not a real programmer anyway. 16:58
So if somebody would be so nice to tell what it should be, and not just what it should NOT be, that would be extremely helpful and productive. Thanks. 17:00
PerlJam woolfy: Duration.new(60), or since most things take numbers meaning number of seconds, just 60. 17:01
TimToady that's where I started; 1min is not composed of a number plus a postfix if you define it as a term, which is a design smell
woolfy PerlJam: that sounds specific and helpful. 17:02
TimToady: so that's how it should be according to you?
Thanks.
TimToady if the language allows 1min, it should always be parsed as a number plus a postfix
mixing them together violates the independence of numbers and names 17:03
woolfy Too bad, I hoped for some shortcuts. I kinda like the idea of "1min"... :-)
TimToady and if you define 1min as a term, what about 2min? 17:03
woolfy 2min seems to be double of 1min...
TimToady it's not productive if you define it as a term, but it is if you define 'min' as a postfix that can be applied to a number 17:04
PerlJam woolfy: There's nothing that precludes someone from writing a module that makes "1min" work. It's just living with the consequences that might be annoying :)
retupmoca m: sub postfix:<min>($m){ Duration.new(60 * $m) }; say 1min; # something like this, put into a module?
camelia rakudo-moar c9f223: OUTPUT«60␤»
TimToady yes
woolfy you mean "1.min"? or "1(min)" or "1<min>" or or or?
TimToady no, 1min, precisely
the only alternate form is 1\min 17:05
m: say 1i
camelia rakudo-moar c9f223: OUTPUT«0+1i␤»
TimToady m: say 1\i
camelia rakudo-moar c9f223: OUTPUT«0+1i␤»
TimToady m: say 1.i
camelia rakudo-moar c9f223: OUTPUT«No such method 'i' for invocant of type 'Int'␤ in block at /tmp/JcGltkjX6h:1␤␤»
woolfy hmmm... I don't like slashes and backslashes in such a way, looks too much like we're going into regexes...
TimToady m: say 1\ i # well, this too
camelia rakudo-moar c9f223: OUTPUT«0+1i␤»
TimToady you only need the backslash (really an unspace) when it's ambiguous
m: say (1)i # also works 17:06
camelia rakudo-moar c9f223: OUTPUT«0+1i␤»
woolfy PerlJam: there's one thing you can count on, and that is that lizmat will make a lot of modules when things will not go into the core, and this might be very well one of the first... :-)
jnthn woolfy: 1foo and 1\foo are always equivalent, but if you have $variable\foo then it's needed to avoid amgiguity.
TimToady 2.54cm would define an inch just fine
and that's how it's usually written anyway
woolfy TimToady: thanks for the explain
TimToady tends to be too concise sometimes 17:07
PerlJam woolfy: It would be nice to have a Units module
TimToady we could bikeshed how to import sets of related units :D 17:08
jnthn woolfy: I think a lot of pepole are quite hesitant to see this in core. Especially because it ties into whether we want units to act like types too. And there's arguments for both ways, and I imho it'd be better to leave this stuff in module space.
woolfy: At least until we have something enough folks are very comfortable with. 17:09
colomon Units module +1 17:10
woolfy jnthn: I have been programming with units before (15+ years ago) and it was stuff like "1min". Maybe that was a module that lizmat built back then... can't remember... 17:11
jnthn: so if shortcuts are going to be allowed in the core, indeed, enough people should be comfortable with them...
TimToady or at least the language designer should be comfortable that a lot of people will become comfortable with them eventually :) 17:13
woolfy and lizmat were planning to go to Spiderman 2 in our local cinema. Plan is going to be executed in 10... 9... 8... :-)
TimToady o/
woolfy afk
jnthn woolfy: Enjoy :)
PerlJam woolfy, lizmat: have fun!
colomon Spiderman 2 is in theatres now? Guess I really need to get around to seeing Spiderman 1. 17:14
PerlJam btw, timotimo mentioned lazy loading ... is that in the spec somewhere?
TimToady that would be an implementation issue, at the moment 17:15
masak PerlJam: don't think so. it's mentioned now and again as the ultimate thing that would save startup time.
jnthn Don't we already have enough implemenation issues? :D
TimToady though, of course, performance is a user-visible interface, alas 17:16
jnthn I think it's worth doing, I just don't have a good design idea.
PerlJam Seems like it could also cause problems. How is the compiler to know when to load a module and when to die? How do you specify which items are to be lazily loaded and from where? Would that be part of the setting? 17:17
TimToady macros are the answer to everything :) 17:18
masak argh
PerlJam heh
jnthn ESPECIALLY when they're called marco! 17:19
I wonder if somehow trapping the lookup of the symbol would do it.
"omg, did he just say Bag?"
TimToady well, that's how macros talk 17:20
jnthn Except those aren't actually done as symbol lookups, but wvals..
TimToady
.oO( quasi-from-disk { ... } )
17:21
TimToady "omg, did she just say Bag?" # channeling au++ 17:23
timotimo jnthn: and sadly, Cool would for example pull in hundreds of classes just because there are coercer methods 17:24
... except if the trap is placed somewhere more clever than where i'm thinking
moritz stilldrinking.org/programming-sucks # me has been laughing manically
TimToady Cool would not be a good candidate for this treatment 17:25
laziness buys you nothing if you're always going to have to do it anyway, and in fact introduces useless overhead 17:26
TimToady (a problem we need to solve on lists too) 17:26
FROGGS .oO( qw(a problem we need to solve on lists too) ) 17:27
jnthn I guess on lists a lot of it is knowing when we can chunk, and how chunky we can be.
TimToady problem is that it is really a negotation between two parties; one party cannot dictate 17:28
"I don't care; do you care?" "Yeah." "Okay, then I care too."
and because context is itself lazy, we have to do that negotiation JIT 17:29
TimToady that's the short summary of pm++'s plan for revising list semantics 17:29
jnthn Aye
TimToady and part of the do-you-care is whether there are side effects 17:30
jnthn I really hope pm++ tuits will emerge...or somebody who groks the plan can supply stand-in tuits. :) 17:30
TimToady looks around, and whistles... 17:31
colomon wishes he grokked the plan and had tuits…. 17:32
TimToady there's something deep going on here with pull semantics vs push semantics too; lazy is pull, but eager is really push--at least, that's how I fixed the over-eager for, by making it the decision of the interator to be eager rather than the decision of 'for' 17:36
so ranges, for instance, know they can be eager, because they have no side effects
TimToady so when used in a 'for', a range returns a thousand or so values in a batch 17:38
unfortunately the top end of our iterators is not structured to take much advantage of tht yet
hence the need for negotation 17:39
TimToady the spelling of negotiation is negotable... 17:42
ashleydev it might be useful to note what node.js did with module loading which they initially had as asynchronous and decided to make it as one of the few synchronous things in node.
TimToady yes, that's the correct default, I think 17:43
ashleydev though that's not lazy/eager it's sync/async
TimToady to the extent that module loading changes your current language, it must really be synchronous 17:44
ashleydev they tried to hold out on that one for quite a while
[Coke] colomon: asm2 not here in the US yet, i think. 17:45
ashleydev
.oO(this is javascript so we need to be pure!)
[Coke] I am going to skip ASM2, but will have to see XM:DoFP
TimToady yes, well, it's not really obvious to most language designers that languages are different from other things :)
colomon [Coke]: XM:DoFP for sure, I absolutely adored the last XM movie (First Class?) 17:46
raydiak moritz++: thanks for sharing that link :) 17:48
[Coke] colomon: mmm. I also really liked CA:WS (and the M:AoS tie in) 17:49
also really looking forward to GoTG.
jnthn dinner &
masak moritz: I enjoyed that article; thanks :) 17:50
FROGGS cool, the labels really seem to work in perl6-m! 17:51
[Coke] ٩(ಥ_ಥ)۶ 17:57
dalek kudo/loop_labels_test: 2e22d99 | (Tobias Leich)++ | src/core/control.pm:
delegate to LABEL's method for redo/next also
17:58
FROGGS m: my $x = 0; FOO: while $x++ < 1 { say &?BLOCK } 18:00
camelia rakudo-moar c9f223: OUTPUT«===SORRY!=== Error while compiling /tmp/bfOIV2MQGi␤Undeclared routine:␤ &?BLOCK used at line 1␤␤»
FROGGS n: my $x = 0; FOO: while $x++ < 1 { say &?BLOCK }
camelia niecza v24-109-g48a8de3: OUTPUT«{ ... }␤»
FROGGS :/
FROGGS damnit, another can of worms 18:01
TimToady
.oO(the diet coke of worms)
18:06
[Coke] ears are burning. 18:09
TimToady shoulda said "the Diet [Coke] of Worms"
[Coke] wonders if there's a way to say "/me's ears"
TimToady zero-width space? 18:10
timotimo terminals with fixed-width spaces will probably ignore that?
dalek kudo/loop_labels_test: b55b500 | (Tobias Leich)++ | src/core/PseudoStash.pm:
fudge label ex throwing for parrot/jvm
timotimo fixed-width fonts*
TimToady 's
aw, deletes the backspace 18:11
maybe you could sneak an ANSI cursor movement through there
timotimo usually not :) 18:13
TimToady well, we sneak color escapes through, for some definition of 'through' not including the logs 18:15
(yet)
raydiak I am glad a cleverly crafted IRC message can't draw all over my terminal with abandon 18:16
raydiak imagines phishing for root passwords over IRC or other such nonsense 18:17
vaskozl raydiak: what do you mean?
TimToady Password:
raydiak vaskozl: ^
vaskozl oh..
MilkmanDan ******** 18:19
That's mine.
timotimo hunter2
mine ^
raydiak *facepalm*
vaskozl but in unix the password never appears in plain text on the screen
MilkmanDan timotimo: Type it again. All I see are *s.
vaskozl you never see * either
by default that is :/ 18:20
raydiak pretty sure the right control codes can turn echo off
vaskozl raydiak: have you seen one that works?
raydiak vaskozl: never tried. speculating out of ignorance, tbh 18:21
vendethiel "Every programmer starts out writing some perfect little snowflake like this" -- thanks for the laugh, moritz++ 18:22
(as a student, I can see some great "programmer starting out" codes)
(considering how many teachers there are here (people helping newcomers too !), I'm sure lots of you know it very well too) 18:23
vaskozl vendethiel: you a fellow noob?
vendethiel vaskozl: I've read the synopsis, but other than that, pretty much :). 18:24
vaskozl haha you are not alone
raydiak ponders snowflakes and decides Pray needs some attention 18:35
[Coke] finds www.availlang.org/ through a surprising blog source. 18:40
[Coke] quotes "Avail is a multi-paradigmatic general purpose programming language whose feature set emphasizes support for articulate programming." 18:42
brrt so... many... languages
vendethiel DSLs* :P 18:43
brrt srsly though 18:44
how many languages have come 'out' just the last year?
or the last five
julia, rust, avail 18:45
TimToady yes, well, it's not really obvious to most language designers that languages are different from other things :)
vendethiel it's good that languages come out 18:46
it's not like it's "new" either way ...
brrt well.... no, its not immediately obvious to me either
(racket) 18:47
brrt TimToady... i'm curious. what makes languages different from other things? 18:49
brrt to put my question in context, for a recent course i had to learn that no non-human form of communication was equivalent with the complexity of languages 18:50
i.e. apes cannot recurse
nwc10 apes insist that their regular expressions are regular? :-) 18:51
[Coke] that sounds a little hubristic.
not like we speak dolphin or anything. :)
brrt well... that was my initial reaction, too 18:52
brrt however, i haven't had an ape to test yet, and it seems that the famous 'nim chimpsky' and other sign-language apes really only ever made rather simple sentences 18:52
that is, non-recursive sentences 18:53
to get back on topic of computer languages - it seems funny that most high-level computer languages also have the 'properties' of human languages - hierarchy, recursion, and polysemy - while 'machine code' does not 18:55
vendethiel why "funny"? that just shows how complex these are, imho 18:56
brrt good question i think 18:57
ok, for one thing, a high level language and its (compiled) machine-code are 'equivalent' in a sense 18:58
timotimo yay, java 1.8 jdk 18:59
brrt i.e. it is possible to express everything you can express with the help of hierarchy, recursion, etc, by a 'simple' sequence - and references
vendethiel possible ? most definitely. "easy"? most probably not
brrt not the point i'm trying to make here :-) 19:00
basically, the trick of language is that it allows you to express anything
my local linguist argued that this was because of the recursion inherent in human languages 19:01
but machine code does not 'recurse' - or does it?
Gothmog_ there are jumps... 19:03
timotimo i think data-dependent jumps make it what it is, no? 19:04
brrt i don't think thats on the same level, but you might well argue
Gothmog_ it's not in the syntactical sense
Gothmog_ and that what's the chomsky hierarchy is about 19:05
but it can use recursion when you execute it
brrt (i'll be off now for a bit) 19:07
ashleydev re: the units discussion, I use a program calca.io and you can add arbitrary units to any number and it will keep them as symbols unless it can factor them out 19:15
so would it be possible that: `1s / 1s # 1' and `1s / 1h` # 1s/h 19:16
TimToady yes, units are not much use in the absence of dimensional analysis
or "dimensionalysis", as some of my professors had it 19:17
ashleydev so can we have arbitrary symbols that stay as symbols unless they are defined?
TimToady all languages are derivatives of Perl 6 :) 19:18
ashleydev m: say 1s / 1s; 19:19
camelia rakudo-moar c9f223: OUTPUT«===SORRY!=== Error while compiling /tmp/Q3BQStQPRt␤Confused␤at /tmp/Q3BQStQPRt:1␤------> say 1⏏s / 1s;␤ expecting any of:␤ whitespace␤»
timotimo Stage classfile : java.lang.OutOfMemoryError: GC overhead limit exceeded
didn't we just reduced the memory necessary to compile the setting?
seems like it's not enough if you're on java8
TimToady ashleydev: but you have to derive the languages that are derivatives
nwc10 Ooooh, twitter.com/elonmusk/status/461199...04/photo/1 -- Falcon 9 onboard camera shot right before splashdown. Full vid posting shortly to spacex.com . 19:20
ashleydev so maybe that's how the units module works, it just allows you to do symbolic math
TimToady and I think 1s/1h should reduce to 1/3600; you want different types if the seconds are not commensurate with the hours
nwc10 I'm still wondering how they manage to turn it round from pointy bit forward to firey end forward, while it's travelling at supersonic speeds 19:21
ashleydev h = 60s; 1s/1h # -> 1/3600
it's symbolic
no semantics
TimToady well, the mathematicians will like that a lot better than the physicists :) 19:22
vendethiel m: sub postfix:<s>(Int $n) { Duration.new($n); }; say 5s / 5s
camelia rakudo-moar c9f223: OUTPUT«1␤»
vendethiel m: sub postfix:<s>(Int $n) { Duration.new($n); }; say 5s / 5 19:23
camelia rakudo-moar c9f223: OUTPUT«1␤»
vendethiel mh, I guess it makes sense
(I'd have expected 1s in the second one, but it probably only prints its value)
ashleydev too 19:24
TimToady m: sub postfix:<s>(Int $n) { Duration.new($n); }; say (5s / 5s).WHAT
camelia rakudo-moar c9f223: OUTPUT«(Num)␤»
TimToady m: sub postfix:<s>(Int $n) { Duration.new($n); }; say (5s / 5).WHAT
camelia rakudo-moar c9f223: OUTPUT«(Num)␤»
TimToady arguably should return a Duration 19:25
m: sub postfix:<s>(Int $n) { Duration.new($n); }; say (5s + 5s).WHAT
camelia rakudo-moar c9f223: OUTPUT«(Duration)␤»
TimToady at least that's correct
m: say (now - now).WHAT 19:26
camelia rakudo-moar c9f223: OUTPUT«(Duration)␤»
vendethiel I really think 5s/5's WHAT should be duration 19:27
5s / 5s is a ratio, so it's expected to be a num
TimToady yes, it's just a duration that is 1/5 as long
nodnod
but we see how easy it is to screw up the dimensional analysis 19:28
which is why we should really write all these APIs automatically from the units database
(and import a few by default) 19:29
ashleydev or do it symolically
TimToady well, that's basically what dimensional analysis is doing 19:30
ashleydev agreed
I think mathmatica does this quite a bit
TimToady except a physicist would know that s and h are just different scalar values of the same dimension
kurahaupo TimToady: so how do I distinguish energy (Joules) from torque (Newton-metres)? 19:31
TimToady and that info is stored in the units database
I dunno, been several years since I read that file :)
and I don't do many everyday calculations on either energy or torque 19:32
TimToady only understands physics; he doesn't know what he's talking about though
kurahaupo actually torque is Newton-metres-per-radian, but the symbol for radian is usually omitted 19:33
s/omitted/forgotten/ 19:34
raydiak wikipedia suggests "The use of newton-metres for torque and joules for energy is useful in helping avoid misunderstandings and miscommunications." 19:35
also mentions "radians are dimensionless"
TimToady 'man units' is quite instructive, if you've installed the program 19:38
kurahaupo raydiak: yes, well, dimmensionless in terms of not using length, weight or time, however treating radians as a dimension in its own right makes the whole angular moment thing work properly.
raydiak (man units)++ 19:40
ashleydev what are Man Units? 19:45
(units DB in Calca: calca.io/units )
raydiak kurahaupo: I want to ask "how so?", but then you'll know how much I don't know what I'm talking about :) 19:46
timotimo in my experience, "man" is usually combined with a time unit, like "man hours"
ashleydev ah
raydiak heh 19:47
as in a man page
ashleydev no
:P
TimToady is pleased that the units database at least does not define any units with the name 'i', so we don't collide with our current postfixes
PerlJam
.oO( man is usually combined with woman )
PerlJam TimToady: It does define e doesn't it? and not as 2.718281828 19:48
TimToady we can have units like watt-hours, since we allow hyphens, but how do we indicate reciprocol units?
ashleydev OH Boy, now the math gets strainge, girl
TimToady with ' maybe
well, e is a term in Perl, not a postfix 19:49
PerlJam oh, right
TimToady but still, it is a collision
one or the other of those should be italic :)
I'm guess the charge of teh electron should be italic 19:50
*guessing
not to mention *the
.u 𝑒 19:51
yoleaux U+1D452 MATHEMATICAL ITALIC SMALL E [Ll] (𝑒)
raydiak re-reads the last few minutes of backlog to study all the cleverness that flew over his head the first time 19:52
TimToady but the mathematicians and physicists have a lot to answer for when it comes to introducing context dependencies into their nomenclature 19:52
ashleydev Maybe that's what makes their nomenclature hard, it's like looking at a decompiled program with single grapheme variable names 19:53
TimToady and most of them localized 19:54
ashleydev they don't allow variable names > 1 char
*grapheme
kurahaupo raydiak: e.g. angular force (N.m/rad) multiplied oby angular speed (rad/s) = power (W=J/s=N.m/s)
TimToady that's the big problem with mathematicians--they write for other mathematicians, who they are allowed to assume are intelligent
obviously, in hindsight, we shoulda invented computers before we invented math 19:56
kurahaupo ashleydev: but they're allowed *any* grapheme, not just Latin letters
ashleydev that's the language designer talking
kurahaupo recalls once running out of Latin and Greek letters and starting in on Hebrew 19:57
ashleydev kurahaupo: of course, they need to be able to name a bunch of registers and their units
or the straing unicode fonts :/ 19:58
FROGGS what? what makes me read this as unicode farts? 19:59
TimToady > u MATHEMATICAL | wc -l
1007
ashleydev nice!
jnthn returns from noms
ashleydev would have wondered if it came out 1337 19:59
FROGGS jnthn: hehe, am I allowed to catch your exception?
jnthn FROGGS: There's probably a combining unicode fart :P
FROGGS jnthn: possibly *g* 20:00
ashleydev or PILE OF POO
timotimo hmm. the syntax for an enum doesn't allow pod to be attached to the individual pieces.
TimToady m: say :9<1337> # off by 1 20:01
camelia rakudo-moar c9f223: OUTPUT«1006␤»
FROGGS timotimo: hmmm, sad... woulda been nice to add descriptions to enum's like SDL offers 'em
PerlJam sounds like a bug to me
[Coke] TimToady: you just forgot the FENCEPOST character.
timotimo well, you can add them manually, i would think
but it'd be a bit fiddly :(
FROGGS jnthn: do you have an idea how (on earth) I would stick labels to loops? 20:03
err, *to for loops
jnthn FROGGS: Hm. What level are we talking about?
Oh, and which language? :)
FROGGS I am talking about statement_control:sym<for> in P6::A
TimToady > u THE | wc -l 20:04
1325
jnthn Ah
Hmmm
TimToady off-by-12 error
jnthn FROGGS: Well, I guess the mapiter needs to know about it?
PerlJam FROGGS: does jnthn have many non-earthly ideas that you needed to be sure to only get the earthly ones? :)
timotimo err on the side of safety :P 20:05
TimToady darn it, I ate my lunch without noticing, and I suspect it would've tasted good
PerlJam good point
FROGGS PerlJam: I just wanna sit where I am atm :o)
jnthn: yeah ...
jnthn Well, on Neptune you'd just shove it into the QAST tree, but on earth it's harder... :P 20:06
FROGGS this is for other loops: (see that and few lines above) github.com/rakudo/rakudo/blob/loop....nqp#L1168
hehe
I guess I'd also pass it as a named arg to .map as the first step 20:07
jnthn How does just pushing the label as a child work out in 2-child vs 3-child loop nodes, ooc? 20:08
timotimo to get rid of nameds?
jnthn oh, :named('labal')
:)
Nice enough
FROGGS: Yes, that sounds fairly sensible
FROGGS okay, that MapIter code looks a bit icky but doable 20:10
timotimo i've got a sneaking suspicion that the hard drive i've installed my system to is actually a 5200u one ... 20:11
PerlJam What's the difference between :named('foo') and :name('foo') ?? 20:15
FROGGS hmmm, nqp::handle only emits a single MAST::HandlerScope on moar...
jnthn d
PerlJam are they semantically identical?
FROGGS PerlJam: the former mixes in a role, QAST::SpecialArg, which turns it into a named argument 20:16
jnthn PerlJam: No, :named(...) always means "named argument"
PerlJam got it.
thanks.
FROGGS the other one let you set the name of the sub, if :op is 'call', and for a method if :op is 'callmethod'
jnthn :name is on a couple of nodes, and its meaning depends on the node.
What FROGGS said for QAST::Op; on QAST::Block it's the name of the block, though. 20:17
FROGGS and for QAST::Var it's the name of the variable including sigils and stuff 20:18
jnthn aye
PerlJam aye, I guess :name() was clear to me, but :named() wasn't. 20:19
FROGGS ahh, now I see how nqp::handle works... so I could add 'LAST_LABELED' and code for it, and I'm done 20:20
that seems to be it for moar (and jvm)
and the pir is also easily done :o) 20:21
FROGGS is happy
jnthn yay
timotimo oh yays :3
timotimo can't wait to be confusing people with weird labeled-loop-control-flow :P 20:23
FROGGS timotimo: as I see it only for loops needs doing 20:26
the rest is in loops_labels/loops_labels/loop_labels_test (moar/nqp/rakudo)
timotimo how's the non-moar status? parrot has it, jvm not? 20:31
FROGGS nqp-p is fine, perl6-p should be but is untested
nqp-j and perl6-j needs doing 20:32
dalek ast: c9f504a | (David Warring [email@hidden.address] | integration/advent2012-day20.t:
adding 2012 advent day 20
20:42
dalek ast: c126bf1 | (David Warring [email@hidden.address] | integration/advent2012-day06.t:
typo+tweaks
20:54
timotimo gnite o/ 22:25
dalek p/async_ops: 65bcfae | (Donald Hunter)++ | src/vm/jvm/runtime/org/perl6/nqp/io/AsyncSocketHandle.java:
Fix async readChars on JVM.
23:12
BenGoldberg p6: $_ = "abcdEFghij"; print $0,$2 while s/(.)(.*)(.)/$1/; 23:51
camelia niecza v24-109-g48a8de3: OUTPUT«ajbichdgEF»
..rakudo-{parrot,jvm,moar} c9f223: OUTPUT«ajbichdg»
BenGoldberg What the EF?
BenGoldberg p6: $_ = "ab"; if s/(.)(.*)(.)/$1/ { say "Success: $0,$1,$2,$_" } else { say "fail: $_" } 23:54
camelia niecza v24-109-g48a8de3: OUTPUT«Success: a,,b,␤»
..rakudo-{parrot,jvm,moar} c9f223: OUTPUT«fail: ␤»