»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
00:00 Layla_91 joined 00:01 IngisKahn left 00:14 packetknife joined 00:24 bluescreen10 left 00:48 whiteknight joined 00:49 envi_ left, whiteknight is now known as Guest35629 00:51 molaf_ joined 00:54 molaf left 01:03 Layla_91 left 01:11 alvis left 01:25 alvis joined 01:41 replore joined 01:55 Guest35629 left 02:07 IngisKahn joined 02:14 hundskatt left 02:42 icwiener left 03:05 mkramer joined 03:10 satyavvd joined 03:36 guidj0s joined 03:46 fridim_ joined 03:53 fridim_ left 04:11 guidj0s left 04:52 kaleem joined 05:09 sftp left 05:21 wk left 05:22 kfo_ joined 05:25 kfo left 05:34 kaleem left 05:48 packetknife left 05:50 benabik joined 06:00 localhost left 06:01 localhost joined 06:03 mkramer left 06:05 mkramer joined, replore left 06:20 kaleem joined 06:21 packetknife joined 06:25 mkramer left 06:27 mkramer joined 06:29 mkramer1 joined, mkramer left 06:32 satyavvd left 06:38 koban joined 06:53 mkramer1 left, mkramer joined 06:55 Trashlord joined 07:04 replore joined 07:05 wk joined 07:07 am0c joined, packetknife left 07:11 replor___ joined, replore left
Woodi can confirm 'nom' work a lot faster then Rakudo Star 2011.07 :) 07:16
10k's of pings to Redis via Simple::Redis takes 80s on 2011.07 and only max 13 on yesterday version of 'nom' 07:18
moritz \o/ 07:20
Woodi however I was starting that tests becouse I saw that on Ryby it takes 1.1852 s without pipelining and 0.250783 s with pipelining... 07:21
07:21 mkramer left, mkramer joined
Woodi but just tested on Perl5 and result without pipelining was 0.3428199291 s 07:21
so I feel I am in kind of depression :) 07:24
07:24 mkramer left, hundskatt joined 07:25 mkramer joined
Woodi but, again, I think Rakudo is world-scripting-ready 07:26
07:27 mkramer1 joined, mkramer left 07:28 wtw joined 07:33 mkramer1 left 07:41 PacoLinux left 07:50 grondilu joined
grondilu so now there is bigint support ?? 07:50
japhb nom: 2**70 07:51
p6eval nom de3997: ( no output )
japhb nom: say 2**70
p6eval nom de3997: OUTPUT«1180591620717411303424␤»
grondilu great
japhb grondilu, ^^
grondilu you guys make fast progress, that's fantastic :) Keep on the good work :-) 07:52
nom: say 0.5.WHAT 07:53
p6eval nom de3997: OUTPUT«Rat()␤»
japhb grondilu, on behalf of those who actually do the fast and good work, but who are currently not around, thank you. :-) 07:54
grondilu a decimal litteral being parsed as a Rat is kind of annoying, as it slows some computations. I spent quite some time finding out why a computation hung, yesterday. 07:55
japhb grondilu, you can simply add 'e0' to the end of the decimal literal, and it will be a Num instead.
grondilu yeah I guess, but it's not much intuitive. Had I wanted a rational, I would have typed <1/2> or something. 07:56
but e0 or .Num is fine 07:57
Woodi nom: say now
p6eval nom de3997: OUTPUT«Instant:1322205588.89651␤» 07:58
07:58 grondilu left
japhb grondilu, the idea is that *by default* Perl 6 tries to not lose precision unnecessarily. If you want speed instead, you can ask for it several ways. You can even declare something to use a (VM-)native int or num. 07:58
damn, just missed him
Woodi is Time::HiRes built in v6 ? 08:00
japhb Woodi, if you mean "Is 'now' by default in high resolution?" the answer is yes. 08:01
Woodi sleep 0.01 works too :)
08:03 sayu joined
Woodi so: Data::Dumper and Time::HiRes are built in. Moose too :) something else ? :) 08:03
japhb Woodi: lots else. :-) 08:04
08:04 grondilu joined
grondilu perl6: say (0.5, { 4*$^x*(1-$x) } ... *)[10], (0.5.Num, { 4*$^x*(1-$x) } ... *)[10] 08:05
p6eval rakudo de3997: OUTPUT«00␤» 08:06
..niecza v11-27-gdaa9117: OUTPUT«0/10␤»
..pugs b927740: OUTPUT«*** ␤ Unexpected "["␤ at /tmp/WmlfGGhENa line 1, column 34␤»
grondilu perl6: say (0.5, { 4*$^x*(1-$x) } ... *)[^10] 08:07
p6eval rakudo de3997: OUTPUT«0.5 1 0 0 0 0 0 0 0 0␤»
..pugs b927740: OUTPUT«*** ␤ Unexpected "[^"␤ at /tmp/eem5kD8zl0 line 1, column 34␤»
..niecza v11-27-gdaa9117: OUTPUT«1/2 1/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1␤»
grondilu ahh nevermind
08:08 grondilu left 08:17 am0c left
japhb OK, I'm thinking myself in circles here. What *should* the behavior be for: my $equal := 'a' == 0; 08:18
I can see several possibilities:
1. 'a' coerces to 0 and $equal is True
2. 'a' coerces via Str.Numeric to Failure, but Failure used in == returns True 08:19
2. 'a' coerces via Str.Numeric to Failure, and Failure used in == returns False
2. 'a' coerces via Str.Numeric to Failure, and Failure used in == throws
er, those should of course be 1,2,3,4 08:20
:-)
Thoughts?
Erg, I should have collected my thoughts first.
In the second line, I meant that Failure used in == acts as 0 and thus the == returns True. 08:21
geekosaur 2 and 2a [ :) ] remind me of SQL's NULL and the lovely bugs it engenders 08:22
japhb geekosaur, yeah, it's that kind of thing that's bothering me. I can see arguments for all of the possibilities I listed. :-/ 08:26
Generally, I want to be able to give the programmer more information about suspect coercions. However, I also don't want to break DWIM just to grind an axe. 08:27
08:30 sayu left 08:44 mj41 joined 08:53 mkramer joined, replor___ left 09:10 Mowah_ joined
jnthn morning 09:21
japhb: I think that should come out True, but that still leaves two mechanisms for it to do so :) 09:23
09:28 Moukeddar joined 09:29 mkramer left 09:31 mkramer joined
masak nom: sub do-twice(&f, $x) { f f $x }; sub double($x) { 2 * x }; say do-twice &double, 10 09:42
p6eval nom de3997: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&x' called (line 1)␤»
09:42 shabble_ joined, shabble_ left
masak nom: sub do-twice(&f, $x) { f f $x }; sub double($x) { 2 * $x }; say do-twice &double, 10 09:43
p6eval nom de3997: OUTPUT«40␤»
masak nom: sub do-twice(&f, $x) { f f $x }; sub add-one($x) { $x + 1 }; say do-twice &add-one, 10
p6eval nom de3997: OUTPUT«12␤»
09:45 mkramer left 09:47 mkramer joined 09:50 mkramer left 09:51 dakkar joined 09:52 mkramer joined
jnthn masak: cute :) 09:55
09:57 mkramer left, wk left
jnthn Woodi: I'm sure there's plenty more performance improvements to come in Rakudo yet. :) Real-world code is often better than microbenchmarks; I'd be happy to see the profiler output for your program, or if you give me instructions on how to reproduce your test locally I can take a look at it. 09:58
10:12 satyavvd joined
masak interesting discussion on p6u. 10:16
I'm not sure I believe in a "when it arrives" -- for me, Perl 6 has arrived for the most part. 10:20
it's more like, the future is unevenly distributed, and we'd like to roll it out it to more people in a structured way. 10:21
meaning that people have their "early adopter setting" set to different values, and the early adopters will help us prepare the spec and the implementations for the mainstream users. 10:22
but it'll be a gradual thing, not a "whoa! release! look, Perl 6 is out!" thing
10:28 Moukeddar_ joined, Moukeddar left
moritz many people don't remember this, but even the now-popular languages didn't have a "woah, $language is out and production ready" moment 10:47
for example the early versions of java where known to be rather slow and too memory hungry to be used for bigger things 10:48
10:52 koban left
masak in a way, we have ourselves to blame, because we set up a story arc for Perl 6 that was bound to lead to people becoming disappointed/disillusioned. 10:54
2000: "We're gonna develop Perl 6 and it'll be awesome! Just imagine all current problems of Perl 5 gone, and everything just better!"
maybe that was inevitable. people have a tendency to fill in the blanks when you say "next version of X", and imagine their particular problems solved. 10:55
jnthn At least a few hundred of those blanks got put into the RFCs. 10:56
10:56 daxim joined
masak I still think it would be extremely interesting to go through the RFCs and see how modern Perl 6 addresses those issues. 10:58
I've done it twice in blog posts; once here: strangelyconsistent.org/blog/the-do...test-sigil
oh, and once here: strangelyconsistent.org/blog/speaki...-in-perl-6 11:00
both mentions of RFCs are at the end of those posts.
11:05 thou joined
masak the RFCs by their very nature had to be merged into something like the Apocalypses, because each of them made a local change on the current Perl 5, and providing 361 new Perl 6s wasn't an option :) 11:08
11:20 mkramer joined 11:28 Moukeddar_ left 11:31 satyavvd left 11:34 colomon_Droid joined
colomon_Droid o/ 11:34
11:43 Bzek joined, Bzek left 11:49 Mowah_ left
rafl how are your GCI efforts coming along? are you all set with the tasks you want to do? it's just two more days til the next publication deadline. 11:51
cognominal in nom, it seems there is a problem with scope handling for a var evaluated in a block within a string : "{$s}" with $s a lexical variable of a recursive routine. I am trying to reproduce in a simple program. 11:56
11:56 mkramer left 11:58 mkramer joined 12:03 colomon_Droid left
moritz rafl: I've published one task, and plan to do more today or tomorrow 12:07
Woodi masak: you are right about 'not a "whoa! release! look, Perl 6 is out!"'. BUT maybe, if we name this scenario a certain future or something what was happens, we can change the future NOW ? some planning for BIG ANOUNCEMENT someday ? not, yet I know, but someday ? :)
probably anouncing not complete product is not good thing too :) 12:08
anyway, i can call a certain future and 'something what was happen' a fact that ppls will be complain :) so maybe not worry to much ? 12:10
daxim I've read that three times now and yet have to grok it 12:11
moritz nom: sub f($x) { return if $x == 0; say $x; say "{$x}"; f($x - 1) }; f(3) 12:14
p6eval nom de3997: OUTPUT«3␤3␤2␤2␤1␤1␤»
Woodi but as part of planning will be good to partition a spec and mark few parts as 'v6', other as 'probably will change', other experimental and other research. what I mean, realy: mark some spec aspects as research/experimental - other partw will 'look' more stable and it will made Perl6 arrive faster :) just marketing proposition, don't shoot !
moritz nom: sub f($x) { return if $x == 0; my $s = $x; say $s; say "{$s}"; f($x - 1) }; f(3)
12:14 Patterner left
p6eval nom de3997: OUTPUT«3␤3␤2␤2␤1␤1␤» 12:14
12:18 Psyche^ joined, Psyche^ is now known as Patterner 12:27 whiteknight joined, whiteknight is now known as Guest65586 12:32 mkramer left 12:34 mkramer joined 12:36 leprevost joined
cognominal moritz: I have to throw some more ingredient to trigger the problem. Don't know wich yet. 12:38
12:46 bitpart joined 12:49 bitpart left 13:05 thou left 13:07 thou joined
cognominal So far I have reduced the problem to : gist.github.com/1393482 13:08
13:09 thou left 13:12 daxim left 13:13 daxim joined 13:15 icwiener joined 13:19 bluescreen10 joined
cognominal nom: sub test($p) { my $s ~= "$p"; test $p -1 if $p-1 > 0; return "$s" }; test 3 13:23
p6eval nom de3997: ( no output )
cognominal nom: sub test($p) { my $s ~= "$p"; test $p -1 if $p-1 > 0; return "$s" }; say test 3
p6eval nom de3997: OUTPUT«3␤»
cognominal nom: sub test($p) { my $s ~= "$p"; test $p -1 if $p-1 > 0; return "{$s}" }; say test 3
p6eval nom de3997: OUTPUT«1␤»
cognominal now that's simpler enough for jnthn to chase the bug. 13:25
*simple
need to get something to eat. 13:26
13:29 mkramer left 13:30 mkramer joined 13:35 mkramer left
jnthn cognominal: Thanks for golfing...please ticket it, as I won't get Perl 6 time until this evening. 13:35
13:35 mkramer joined 13:40 diakopter__ joined 13:44 diakopter__ left 13:50 am0c joined 13:52 benabik left, mkramer left, benabik joined 13:53 mkramer joined 14:07 donri joined
flussence
.oO( unpack() could be a little more efficient if it could parse the format string once for multiple inputs... )
14:15
14:21 Guest65586 left 14:22 kaleem left 14:23 whiteknight joined, whiteknight is now known as Guest94414 14:28 benabik left
masak flussence: it could do that internally, perhaps. using a hash or some such. 14:33
flussence: or maybe it's really two primitives, one "compile" and one "run", and you can apply them separately and pass around the compiled form.
flussence more FP! :D 14:34
(I did just find Convert::Binary::C for perl5, but its learning curve is a bit overwhelming...) 14:35
14:36 benabik joined
masak I wonder what the constant folder could do in terms of precompiling regexes. at least regexes with no interpolation in them are practically constants already. 14:36
14:36 user45689135 joined
masak hm, but wait. we already compile regexes at compile-time. so that's not a problem, really. 14:37
14:38 PacoLinux joined
masak though maybe some regexes could be optimized away altogether. 14:40
user45689135 (useless message but I've got to tell this to someone) please, anyone, change the design of the perl6.org website or I definitively move to python 14:41
how can you tell your coworkers to use Perl with such a website 14:42
masak user45689135: could you be more specific? 14:43
I'm not disputing that it could be improved, I'm just wondering what about it you want to improve.
sjn user45689135: so your coworkers decide on the usefulness and power of a language mainly by seeing if the language webpage looks shiny? :) 14:44
masak web presence is a factor, surely.
flussence user45689135: if you're looking for a site that appeals to shallow people, try dev.perl.org/perl6/
user45689135 Sorry for this aggressive stance, i'm half jocking though 14:45
masak not sure the dividing line is shallowness, either :)
donri i like the haskell.org design and how they reuse it in api docs etc
user45689135 yes, dev.perl.org is surely better
masak user45689135: that's fine, as long as you don't believe you can bribe us into changing it :)
14:45 domidumont left
masak user45689135: I would like to hear what about it you feel can be improved, though. 14:45
sjn purdy pictures are nice, yes... 14:46
14:46 sftp joined
sjn might accept bribes <_< 14:46
14:46 domidumont joined
sjn *whistles* 14:46
flussence
.oO( maybe "easily frightened" was the adjective I was looking for there... )
user45689135 masak: this don't look professionnal at all, all these different colors. The butterfly !
donri user45689135: why does it need to look "professional"? 14:47
it's -Ofun ;)
user45689135 donri: yes, that's a true question
masak user45689135: that's the idea.
it's made to look this way, not to look professional.
if you dislike that fact, your best bet probably is dev.perl.org/perl6/
user45689135 can't we find a way between the two worls ?
sjn wonders if user45689135 isn't completely aware of the importance of fun in programming
donri and if by "professional" you mean something like what microsoft or oracle etc do i'm all against it :P
masak user45689135: I think we can, and that middle ground is always worth exploring. 14:48
user45689135: but as you can see here, people have certain... doubts as to the automatic usefulness of professionalism.
user45689135 masak: agree with you that oracle website is on the opposite extrem
masak well, donri said that, not me. :) 14:49
but yes, we do prefer to enjoy ourselves more than to please others' expectations of professionalism.
I believe that attitude is still less offputting than the rockstaritude of e.g. the Ruby community :) 14:50
14:50 mkramer left
sjn there's a point in having an _aestethic_ website though. an sell done aestethic website surely helps in communicating the message of that website 14:50
14:51 mkramer joined
masak aye. 14:51
daxim I applied an aesthetic patch once.
masak that's part of why I ask for specific points of improvement.
awwaiid I just looked at sites for python, ruby, scala, ocaml, java, squeak, perl5, perl6... ruby is the prettiest imo and notably the only one with any code on the front page 14:52
flussence Make it look more like learnyouashaskell.com :) /me ducks
masak I believe we still can improve the page aesthetically, even while retaining the "happy colors" theme and the butterfly.
huf are we talking about perl6.org?
user45689135 masak: I don't want to be misunderstood. I love Perl humor and i understand that we want to revendicate it. I just found it ugly, and think the sentiment is so strong that it might be somewhat objective.
masak awwaiid: I've always admired what the Ruby front page does with code examples. it's attractive.
awwaiid perl6 is actually more colorful and playful than squeak :)
huf, yes perl6.org 14:53
huf ah yeah. it breaks if you set your minimum font size high enough
(like i do, with my shitty eyes)
masak user45689135: I do hope that I haven't misunderstood you. I try not to. :) 14:54
user45689135: you want a nicer perl6.org page, but you haven't yet said how. you've only said what you dislike about it.
user45689135: best would be if you could provide us with a new, better design -- maybe through a patch.
user45689135 masak: i will try to purpose some improvments. thanks for having answering me 14:55
awwaiid user45689135, I'm under the impression that the current look of perl6 fits the current embriotic state of perl6 -- child-like joy in growing and exploring the (platonic) universe
masak huf: yeah, I don't like using floats like that. they're not meant for that kind of thing.
huf masak: yep. and i dont have a better solution either
masak: unless html5
daxim I set to min 30pt and it still looks okay
huf but that has to wait a bit
masak awwaiid: I've never thought of it like that -- though it could be argued that Perl 6 is an 11-year-old and prefers a slightly more mature style at this point :) 14:56
huf daxim: as the font gets too large, lines get wrapped into more and more lines and that pushes the >>MORE<< below the edge of the box
awwaiid masak, could be!
daxim aha
masak huf: giveupandusetables.com/
huf yep :D
i'm used to sites breaking, so it's not a big deal for me 14:57
but then, i hate the web with a passion :D
14:57 mtk left
masak I kinda like the web. I like emergent things. 14:57
huf i liked what it could have been, the hyperlinked set of documents thing. i dont like what it's become, an application platform
not because i dont think we need that, but because it sucks at it 14:58
awwaiid me too -- I love the chaos that magically still leads to such utility
donri this www.conversationmarketing.com/2010/...esigns.htm not this www.oracle.com/us/products/servers-...index.html
masak I do believe that the dream of separating content from presentation that fuels the desire not to use tables for layouts is, ultimately, unattainable.
donri separating content from presentation is easy: keep the content in a database :P 14:59
generating different presentations is a simple matter of templating
flussence CSS3 does have some stuff that can be used for table-like layout... but it's not finished and every browser does it differently :( 15:00
donri but, css does make a lot of things easier
flussence (display: box & related things)
daxim use.perl.org/comments.pl?cid=70360&sid=43716
donri flexbox is in deed cuteness 15:01
masak donri: CSS does make a lot of things easier. what I mean is that it's impossible to pull exactly *all* of the presentation aspects out into the CSS. some thing (such as ordering) will always be in the HTML. 15:02
donri but, css positioning is far from as difficult to manage as many seem to think, at least if you keep your design simple which you should anyway
15:02 fridim_ joined, mkramer left
donri masak: in deed, also the need for nested containers etc 15:03
masak right. nesting carries some presentation information, too. 15:04
15:04 mkramer joined
masak maybe "keep it in a database" is actually the answer, though. if you turn absolutely all text into some gettext/i18n system, I imagine you could get fairly close to a "pure content" model. 15:04
but you'd still need to build the HTML, which would still contain a bunch of presentation details. 15:05
donri the problem is when you store content as (non-semantic) html 15:06
jnthn Presentation may be too hand-wavey to be useful. Maybe splitting it as content/structure/semantics (fine in HTML) and appearance (what's meant to go in the CSS) is more helpful.
masak jnthn: well, that's kinda my point. "presentation" is too hand-wavey, and as such, an unattainable ideal. 15:07
donri if your only copy of the content is html filled with font color=red it's rather difficult to present it in any other way
awwaiid this "content" of which you speak has both data and the _meaning_ of the data, the semantics. This "presentation" of which you speak has both color scheme and font goo, and layout relative to the _meaningin_ of the data. The data is useless without the structure around it, and cannot be presented without it.
masak donri: the problem in general is when one doesn't separate concerns :P
donri but if you have a copy in markdown or docbook or something, outputting "bad" html is less of an issue 15:08
jnthn masak: Well, sure, it's hard to achieve things if you don't know what they are. ;)
donri that's the original issue, i believe; then the purists came along and made it into an issue of correctness :P
masak and the problem of becoming aware of it is that concerns are only really visible when they've been separated. :)
awwaiid thus the venn diagrams overlap, and a balance must be found
donri the only reasons to care about the cleanliness of *output* html is bandwidth and scrapability (SEO i guess) 15:09
which are certainly important reasons, but not the ones people usually think of it seems
masak also, because it's so *pretty* :>
masak hugs `tidy` 15:10
donri masak: true; we should try to make the binary/byte code our compilers output similarly pretty
masak donri: seriously though, sometimes I care about cleanliness of such things because of some sense of craftmanship. 15:11
I "know" that it will pay off, not least psychologically because I'm not afraid to go back and look at the HTML when I need it.
donri of course, i'm one of the worst offenders in this obsession about puristic correctness and cleanliness
i'm half arguing against myself here :)
the thing is generated html is about as easy to change as the stylesheet 15:12
masak donri: but yes, what we're talking about is web standards for their own sake, which is not always a good thing: www.eod.com/devil/archive/web_standards.html
donri css might still be more maintainable in some areas; just throw a class on your markup and reuse existing style rules; but you can similarly reuse html templates in some situations 15:13
the great thing is that we get to use both and whatever best solves the problem, as long as, yes, we're less anal-retentive about omg-standards 15:16
daxim standard angels and other mythical creatures: web.archive.org/web/20110514114618/...8/16/specs 15:18
damn you, mark pilgrim, why'd you pull a why_ and take down your whole goddamn 10 year blog?! 15:19
masak he did? :/ 15:21
I'm not sure you can "pull a why_" unless you have an online persona distinct from your actual identity. 15:24
awwaiid I've often fantasized about creating a separate internet persona. Unfortunately it takes enough effort for just one to keep me busy. 15:25
15:27 daxim left
donri i used to juggle several in my youth 15:28
jnthn suspects that if he created an alternate persona and hung around on #perl6, the alternate persona would probably still make awful puns and get outed in no time... :) 15:29
15:29 wtw left 15:30 fridim_ left
donri notes that jnthn is talking about his alternate persona in third person 15:31
jnthn Oh. :)
jnthn gets too confused about how to refer to himself-but-not-himself, and goes back to whining about why on earth somebody would make an Excel sheet in order to send him a bunch of SQL queries 15:33
masak .oO( Exquel ) 15:34
jnthn guesses its the same somebody that wrote 200-line stored procedures involving cursors because they'd never come accross GROUP BY... :) 15:35
flussence heh... I just got told to turn an excel sheet into some JSON structure at $dayjob. Copy/paste/regex'ed it in vim in about 5 minutes...
jnthn What, you weren't tempted to write a JSON transformer in VBA? 15:36
donri why didn't you export it to something like csv and load it up in some proglang?
flussence this was the quickest way :)
(it's one of those horrible spreadsheets that uses tables for layout...) 15:37
Woodi would like to note that actual perl6.org is state of art of early XXI century - it have round corners and animated menus 16:08
second note: it is improved, previous version was more disasterous
Woodi now feels free to complains (too) :) 16:09
16:11 odoacre left 16:13 odoacre joined
Woodi damn, I am sure I remember animated menus... :) 16:14
moritz Woodi: I've been involved with perl6.org since it got its current structure and layout, and it never had any animated menus 16:16
Woodi nvm :) 16:19
16:38 MayDaniel joined 16:41 mj41 left
jnthn nom & 16:50
16:56 mkramer1 joined 16:57 mkramer left 17:02 benabik left 17:17 kmwallio joined 17:27 drbean left
Woodi on contrary - about Web-hate-ing - probably yesterday I asked on #perl for best Perl _bindings_ for UI programming; got *strong* sugestion to use W3 :) 17:27
17:32 drbean joined 17:39 uniejo left 17:51 ksi joined, dakkar left 18:17 fsergot joined
fsergot Hi perl6 o/ ! 18:18
18:28 mkramer joined, mkramer1 left 18:30 user45689135 left 18:31 kaleem joined, kaleem left 18:34 birdwindupbird joined, birdwindupbird left 18:45 zby_home joined 18:48 mkramer left, mkramer joined
moritz \o 18:55
19:01 drbean left 19:02 mkramer1 joined, mkramer left 19:06 drbean joined 19:17 kmwallio left 19:20 saaki left 19:24 dorlamm joined 19:31 vmspb joined 19:40 mj41 joined 20:08 Guest94414 left 20:10 mkramer1 left
japhb Anyone else (thanks jnthn++!) have any thoughts on irclog.perlgeek.de/perl6/2011-11-25#i_4755358 ? 20:10
20:10 mkramer joined 20:12 bluescreen10 left 20:20 mkramer1 joined, mkramer left
moritz japhb: S03 say "Note that, like most other operators, a comparison naturally returns failure if either of its arguments is undefined, and the general policy on unthrown exceptions is that the exception is thrown as soon as you try to use the exception as a real value. However, various parallelizable contexts such as hyper (or other "mass production" contexts such as sort) will pass through unthrown exceptions rather than throwing them." 20:20
since a Failure is undefined, the first part applies 20:21
"a comparison naturally returns failure if either of its arguments is undefined"
but it needs to wrap the original failure, so that no information is lost 20:22
20:31 donri left 20:34 mkramer joined, leprevost left 20:35 mkramer1 left
jnthn home 20:36
20:38 mkramer1 joined 20:39 mkramer left
moritz I think we need a smarter handling of failures in comparison ops than writing down many, many dispatch candidates 20:40
20:40 rsimoes left
moritz for each op we need three Failure candidates 20:40
(Failure, Mu), (Mu, Failure) and (Failure, Failure) 20:41
or two of them, one of them marked as "is default"
20:41 alvis left
jnthn Was there not some consideration that Failure be !~~ Any but instead hang about in the same kind of space junctions to? 20:42
*do
If so it could be a dispatch failover thing. 20:43
moritz there was some such consideration, yes
20:48 alvis joined 20:53 mkramer1 left, mkramer joined
cognominal jnthn: I have filed the lexical bug : #104594 20:58
jnthn cognominal: merci bcp 20:59
cognominal and I should not paste code from aquamacs to gmail. It looks good until I see the result in RT :(
21:02 kmwallio joined
masak cognominal: maybe 'cus you have Gmail in "pretty text" mode. 21:03
moritz RT doesn't seem to preserve whitespace
masak HTML emails always come back to bite you in the end. they're not worth it. 21:04
moritz agreed
Woodi jnthn: about performance tests I was talking in the morning: scripts are now in tools/performance directory (v6 and v5 tests). Perl5 stats are: PP Redis: 0.416, XS: 0.20281, XS+pipelining: 0.02340 (??) 21:05
masak plus, they're not nice to the little gnomes inside of your computer who translate your email to Morse code and send it off over the wire. HTML is too verbose.
Woodi repo is @ github.com/slunski/perl6-simple-redis
masak Woodi++
jnthn Woodi: Thanks. 21:06
Woodi pls be nice for newbie programmer :) C in Perl, childish code, etc. I know... but every improvement sugestions are welcome 21:07
oki, gn #perl6
21:07 am0c left
cognominal hopefully many perl6 bugs can be golfed in one line. 21:07
jnthn night, Woodi
21:17 dorlamm left
mj41 Rakudo - 75% of Perl 6 features implemented j.mp/oBiIfn j.mp/tIlqUT 21:29
You can retweet twitter.com/#!/mj41cz 21:30
jnthn mj41++ # pretty graphs :) 21:33
And visualizes nicely where nom needs a shove. Thanks. :)
21:35 zby_home left
mj41 jnthn: Thanks for your work on Rakudo. 21:35
masak mj41++ # nice! 21:37
21:47 kmwallio left 21:52 ksi left 22:03 donri joined 22:04 mkramer left, mkramer joined 22:06 drbean left 22:11 drbean joined
japhb grumbles good-naturedly 22:13
Wouldn't you know I'd get pulled away right after asking a question?
Anyway ...
masak it's amazing how similar Rakudo 2011.07 and Niecza look in those pie charts. 22:15
japhb moritz, My question wasn't *just* about == comparison where one of the arguments is Failure, though that was definitely part of it. The other part is whether == should do a strict Numeric conversion of its arguments, so 'a' becomes Failure, or a non-strict conversion, where 'a' becomes 0, or 0 but Failure, or some other mystery meat that won't cause a throw.
Earlier last night I was going with a strict conversion policy, and starting to track down all the places in the Setting that non-strict conversion was assumed, and correct them. 22:16
But I soon realized there was a LOT of stuff that would need to be corrected, and it would probably get a fair toss slower. 22:17
So then I wondered if that's really what DWIMs best for the user anyway, and that's when I started going in mental circles arguing the various cases different ways. 22:18
I had done a survey of the Synopses, but while any particular quote argued for one or two of the interpretations, taken together, I couldn't see a clear pattern of intent that pointed to just one interpretation. 22:20
japhb takes a virtual breath or two
jnthn Is the virtual air good in here?
jnthn reads what japhb writed
japhb generally yes 22:21
:-)
jnthn Hm :)
Good questions.
They...kinda need a TimToady ;) 22:22
japhb I was afraid of that
jnthn japhb: could you elaborate a little on the "get slower" bit? 22:24
Often being stricter/less dwimmy gives us more info/assurances. 22:25
japhb jnthn, sure. 22:29
There are a few places where the body of an operator is very, very simple. 22:30
Actually, == is a good example. 22:31
multi infix:<==>(\$a, \$b) { $a.Numeric == $b.Numeric }
If we want to avoid throwing the Failure if $a or $b cannot be cleanly coerced, I can see a couple routes to take: 22:32
1. You might bind $a.Numeric and $b.Numeric to lexicals, check whether either or both is Failure, and pick a result to return; False, say.
2. You could coerce them, then redispatch against something with more dispatch choices, including all variants of Failure (moritz++ mentioned this, I believe) 22:33
(Of course, there's the question of where and how #2 bottoms out when $a and $b are different, non-built-in Numeric types.) 22:34
jnthn Note that more candidates - if they're all based on simple types and no where constriants - is unlikely to impact performance much, if at all 22:35
japhb Or you could make sure that $a.Numeric always returns something that will not throw when compared, but somehow can act as a Failure elsewhere -- which is odd and somewhat counter to moritz's S03 quote
jnthn Rakudo multi-dispatches pretty efficiently these days.
japhb jnthn, yes, but it's the redispatch that got me -- an extra dispatch and function call. 22:36
s/function/operator/
jnthn But $a.Numeric == $b.Numeric is *already* re-dispatching.
Or maybe I'm missing what you're getting at. 22:37
japhb jnthn, it's possible, or I could be mistaken as well. 22:38
flussence
.oO( hm, I just realised that most of the ideas I put into Str.indent would work for Text::Wrap too. Time to get rid of that horrible 10-line regex eval... )
22:39
japhb I'm thinking 'a' == 'b' becomes Failure == Failure becomes 0 == 0 become true (if we go with the non-throwing behavior)
felher mj41++, nice graph :)
japhb As opposed to 'a' == 'b' becomes 0 == 0 becomes True. 22:40
Or maybe our Failure variants just directly return a boolean rather than themselves redispatching.
That would probably be more expedient ... but it depends on the type of the non-Numeric result actually being Failure or a subclass. 22:41
What happens if someone tries to == compare an Exception against something? Or something that makes no sense to ==
er, something *else* that makes no sense to == ? 22:42
What is the path to a resolved final value?
jnthn japhb: Ah, OK, now I see the extra re-dispatch you're getting at. 22:43
22:45 Lothar left
japhb I mean, there's always the argument that error cases don't need to be optimized ... as long as checking for and/or handling the error cases properly doesn't slow down the "normal" case too much. 22:45
dangit, AFK again, will backlog 22:46
22:46 Lothar joined
jnthn Well, yeah, exceptions kinda should be exceptional :) 22:50
japhb jnthn, yes. But I was guided partly by TimToady++'s ideas on parallelism, plus the classic issue that a parallel implementation that operates in lockstep is slowed to the speed of the slowest work item. So if exceptional cases get too slow, they will slow down parallel implementations as well. Of course, that argument is thinking of a horizon rather farther than the near future. :-) 22:56
Gripping hand I guess is that all of this depends on what TimToady decides the behavior *should* be. 23:01
23:05 skangas left
masak or what the community redesigns it to be :) 23:16
23:19 MayDaniel left
dalek kudo/nom: a227e73 | jnthn++ | src/core/Str.pm:
substr was rather wasteful before, and didn't give the optimizer half as much to go on as it could; this improves things a bit. Found while profiling Simple::Redis by Woodi++.
23:19
masak 'night, #perl6 23:27
felher 'night, masak 23:37
23:45 mj41 left
dalek kudo/nom: da4426a | jnthn++ | src/core/ListIter.pm:
Some small optimizations to ListIter. Knocks about 10% more off Simple::Redis benchmark, which has iteration on hot path.
23:46
23:50 snearch joined 23:52 drbean left 23:58 drbean joined 23:59 Ingis joined