»ö« 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.
lichtkind something like reader and writer in moose isnt in perl 6? 00:01
00:06 lizmat left 00:08 Liz joined 00:09 Liz is now known as Guest59432
[Coke] goes to find what those are so he can tell you. 00:17
getters and setters are builtin, yes. Are you asking if you can rename them? 00:19
r: class A { has $.foo } ; my $a = A.new(); $a.foo(3); say $a.foo() 00:20
p6eval rakudo ce1827: OUTPUT«Too many positional parameters passed; got 2 but expected 1␤ in method foo at src/gen/CORE.setting:1864␤ in block at /tmp/7Z4FKavmVB:1␤␤»
[Coke] bother.
00:23 fgomez joined
[Coke] r: class A { has $.foo is rw } ; my $a = A.new(); $a.foo=3; say $a.foo() 00:26
p6eval rakudo ce1827: OUTPUT«3␤»
rjbs At NYC Perl Hackathon, Saturday, the question came up "Can we ever have twigils, for $.foo and so on, in Perl 5?" Some dark soul suggested, "Why not kill of the Ada package separator and repurpose $'foo?" :-) 00:46
00:48 lustlife joined 00:54 anuby joined 00:55 arlinius joined
perigrin But that would break Acme::Don't ... and Poker::Texas::Hold'em 00:57
and Re'em (though that last one wasn't on CPAN) 00:58
01:06 hypolin joined 01:10 Targen joined 01:11 cognominal joined
labster If Poker::Texas::Hold'em breaks, then we won't have to worry about HORSE in our modules. en.wikipedia.org/wiki/HORSE 01:17
01:19 araujo joined 01:27 jeffreykegler joined
jeffreykegler TimToady: Best of luck with your health 01:28
01:28 jeffreykegler left
lue Does anyone know how useful the Each type (ordered form of Junction) could be? Just curious. 01:42
sorear Not useful enough for anyone to bother implementing it 01:44
lue That's my feeling too (the not useful enough part). S09 had a small example of where it might be useful, but @array.say would be a shorter alternative. 01:45
perigrin labster: sure you say that but have you been to Omaha? 01:51
02:06 cognominal__ joined
japhb_ The discussion in the backlog about how to clearly respond to "Is Perl 6 ready?" made me think that maybe we need an easy, glanceable page answering that in a way that is hopefully useful to outsiders. Of course, a little detail beyond the glances would be nice, so I mentally puttered for a bit, and came up with this concept: gist.github.com/japhb/c51ee251868680bd01aa 02:06
Thoughts and comments?
02:07 cognominal left 02:08 madhadder left 02:18 cognominal__ left 02:21 cognominal__ joined 02:22 sqirrel_ joined, FROGGS_ joined 02:24 sqirrel left 02:26 FROGGS left 02:44 japhb_ left 02:54 census left
TimToady japhb: nobody really has NFG support yet; rakudo is still mostly on the codepoint level 02:56
it fakes graphemes in a few spots, but won't have to fake it with real NFG
03:16 lee__ joined, orafu left 03:18 jaldhar_ left 03:20 orafu joined 03:26 TimToady left 03:27 TimToady joined 03:31 TimToady left, TimToady joined 03:49 adu joined 03:57 jaldhar_ joined 04:00 adu left 04:04 jfried left 04:08 adu joined 04:11 jaldhar_ left, rindolf joined, jfried joined 04:12 bloonix joined 04:14 jaldhar_ joined 04:33 arnsholt left, arnsholt joined 04:35 swarley-freenode joined, odoacre left, odoacre joined 04:37 Eddward left 04:45 swarley-freenode left 04:49 broquaint joined 04:54 swarley-freenode joined 04:58 preflex_ joined, preflex left 04:59 preflex_ is now known as preflex 05:05 aindilis joined 05:07 kaleem joined, SamuraiJack joined
mberends japhb: nice summary gist :) <nitpick>in the More Info section Portability, Ecosystem and Performance should be highlighted same as Community, Features and Documentation</nitpick> 05:08
the statement 'Rakudo-on-Parrot has decent startup time' is IMO subjective and false 05:10
consider abbreviating the paragraphs about Portability, Documentation and Performance to embody the style of Community, Features and Ecosystem 05:17
(less > more) 05:18
sorear subjective *and* false! 05:22
o/ mberends
mberends \o/ 05:24
like country *and* western? 05:25
sorear is country and western a contradiction? 05:26
mberends no, nor is subjective and false. it was meant as a humorous reference to the silly remark that C&W musicians play two types of music ;-) 05:30
I'm going to try to port Java Data Objects to Perl 5 and Perl 6. I'm not expecting great performance, at least not initially, but the functionality of JDO is very useful. 05:35
the idea behind targeting both Perl dialects in parallel is to put the spirit of the Perl Reunification Summit 2012 into practice. Liz++ for that. 05:38
05:39 araujo left, rjbs joined
japhb mberends, the "highlight" is actually a link. I didn't have anything that immediately came to mind to link to for the other ones. 05:43
mberends ah, ok :)
japhb I almost said "This needs a lot more links", but I figured not to put in the effort of heavy linking if people didn't like it. It *is* just a conceptual mock-up, anyway .... 05:44
Though I guess I'm heartened that you mostly suggested edits to the existing content, rather than said "This is a lousy idea." 05:45
mberends It is a good idea, especially at a glance, to inform people who have a short attention span, which seems to be an increasing majority of people nowadays. 05:47
I can imagine it finding a good place somewhere near the front of perl6.org 05:48
I think heavy linking such as slashdot style feels a bit ponderous to read 05:50
I would like for example: Community: Perl 6's strongest asset is its community, which is already one of the friendliest and most helpful you will find. Community members are responsive at all hours, but most active from 8 AM to midnight UTC. See <a href="target">Community</a>. 05:53
japhb Makes sense. 05:55
mberends Anyhow, good job! I should quieten down and give others opportunity to comment. 05:56
japhb FWIW the longer paragraphs were longer because there seemed to be more to say to give even a semi-accurate picture of reality. But that may have just been editing failure on my part. 05:57
Thank you.
(For the attaboy, not for quieting down. ;-) )
mberends ;-) the longer paras seemed a bit TL;DR 05:58
japhb Hmmm. Mayhaps you're right.
mberends you'll have more opinions to aggregate in another 12 hours or so 05:59
06:01 rindolf left 06:02 rindolf joined
japhb mberends, links and highlights rearranged as you prefer. 06:05
(gist updated, I mean)
Haven't edited the long paragraphs, yet, but need to go AFK. 06:06
lue japhb: "course-grained" in the Performance paragraph should be coarse-grained methinks 06:10
06:10 kaleem left, kaleem joined 06:11 drKreso joined 06:12 drKreso left 06:17 quester joined, rindolf left 06:18 rindolf joined
mberends japhb++ # not only for editing in my suggestions 06:24
06:26 erkan joined, erkan left, erkan joined
moritz japhb++ 06:27
06:28 rindolf left 06:29 rindolf joined 06:35 rindolf left 06:36 rindolf joined 06:37 adu left
mberends \o moritz 06:41
06:43 araujo joined, araujo left, araujo joined, FLOSSrookie joined
FLOSSrookie I am going to try and learn perl6 and because I like using databases I would like to try to connect to one. However, unlike the rich perl resources which are on the Internet perl6 is not one of them. Can someone either tell me or link me to some sample code on how to incorporate a database into a project with DBIish? Some sample code would be great! 06:45
06:46 rindolf left, rindolf joined
sorear i think moritz has done stuff with dbiish 06:49
FLOSSrookie sorear: Then he needs to put it out on the net. 06:50
Or send me some info. 06:51
mberends FLOSSrookie: adapt the database examples in modules.perl6.org/ (and don't criticise moritz++, he does plenty of good) 06:52
FLOSSrookie: and see github.com/jnthn/zavolaj/tree/master/examples
FLOSSrookie mberends: I am not criticizing him. It was just a "hint, hint"
mberends ok, ok ;-)
the second URL has examples that were used in the conception of DBIish 06:53
sorear (welcome, if you're new) 06:55
FLOSSrookie Oh, you bet, I am new! 06:56
mberends FLOSSrookie: the test scripts in github.com/perl6/DBIish/tree/master/t use the various database drivers 06:57
07:02 rindolf left, rindolf joined
japhb lue: fixed by removing. :-) 07:08
mberends, moritz: edited Portability, Documentation, and Performance sections to reduce TL;DR and make each info paragraph similar in length and style. 07:09
mberends Refreshes and Likes(tm) 07:10
japhb heh
tadzik FLOSSrookie: github.com/tadzik/zblog/blob/maste...%BAblog.pl contains a DBIish uses 07:13
practical-ish even
hello #perl6
mberends hello tadzik 07:14
07:17 ozmq joined 07:19 rindolf left, rindolf joined 07:20 FROGGS_ left
jnthn morning o/ 07:31
jnthn is about for a few moments before the day's teaching :)
japhb Hello and good night. :-)
&
mberends o/ jnthn 07:32
mberends ditto
07:34 rindolf left, rindolf joined 07:37 ozmq left 07:45 rindolf left, rindolf joined
FLOSSrookie Okay, what does this mean to any of you: paste.fedoraproject.org/4282/ 07:48
jnthn teaching time, bbl...mebbe evening... & 07:51
sorear SQLITE_ERROR => 1 , # SQL error or missing database 07:53
masak good morning in the best of all possible futures, #perl6! 07:54
sorear hello leibniz 07:55
masak call me Pangloss. 07:56
arnsholt \ 07:57
sorear presumably, FLOSSrookie, you have a syntax error or missing database.
arnsholt <3 Candide
07:57 rindolf left
sorear oh, that was arouet? :/ 07:57
07:58 rindolf joined
arnsholt Yeah, that was Voltaire. If it's any consolation, I had to look up Arouet on Wikipedia to see you meant Voltaire =) 07:59
masak <sorear> subjective *and* false! 08:01
heh, my thought exactly as I went through the backlog ;)
sorear: I don't know what frightens/delights me most: that you keep dropping CS/literary references like that, or that I get most of them. ;) 08:02
more of the literary ones than the CS ones, though. still need to learn parsing, category theory, and a lot of other math. 08:03
arnsholt mberends++ # Java Data Objects 08:04
FLOSSrookie Segmentation fault (core dumped) 08:05
This day just keeps getting better and better. I fixed the file path and now this ^
masak japhb++ # gist.github.com/japhb/c51ee251868680bd01aa 08:06
08:10 FROGGS joined
FLOSSrookie Yep, I know. I just don't know what is going to be done from here seeing how uninformative that general "Segmentation fault..." error is. If there had been more info I would take hope it could be fixed soon. But when you don't know where it went wrong .... This could take a while to fix. 08:10
arnsholt FLOSSrookie: Could you put your script in a gist or nopaste of some kind?
08:11 ozmq_ joined, ozmq_ left
arnsholt The segfault error message doesn't actually come from Perl 6 (so unfortunately we can't really fix it), even though it's triggered by a Perl 6 script 08:12
sorear masak: luck. I didn't know "subjective and false" was a reference to anything. I just thought mberends's phrasing was weird
arnsholt A segfault is what happens when a program attempts to read memory it's not allowed to read (so the OS terminates the program)
sorear does hpmor contain a similar line?
08:12 ObseLeTe joined 08:13 ozmq joined
sorear arnsholt: We just need to make sure perl 6 gets permission for all its memory accesses. :) 08:13
arnsholt mberends: As always, if you run into Zavolaj-related troubles or limitations on your path, please do tell me =)
sorear linux and windows at least let you install segfault handlers
arnsholt Read all the things! =D
FLOSSrookie arnsholt: paste.fedoraproject.org/4284 I removed some things from the script and it does not segfault but it is complaining about some prepare thing. 08:14
08:15 rindolf left
arnsholt "some prepare thing"? 08:15
08:15 rindolf joined
FLOSSrookie No such method 'prepare' for invocant of type 'Nil' 08:15
masak sorear: no, I didn't mean "subjective and false" was a literary reference. in that case, I just had the same thought, like "aren't those contradictory?"
FROGGS FLOSSrookie: then $db is "undef"
masak sorear: fwiw, I think it can be used in the way mberends does. language is pliable enough. 08:16
but it sounds kinda funny.
"false" here means something like "we can't put it among our claims".
FLOSSrookie FROGGS: It looks like I defined it. 08:17
masak sorear: re category theory: I'm currently enjoying arxiv.org/pdf/1302.6946.pdf 08:18
arnsholt FLOSSrookie: What do you get if you add "say so $db" after the connect statement? 08:19
That'll print the boolean value of your $db 08:20
FLOSSrookie arnsholt: False 08:21
And how do I fix it. 08:22
arnsholt That's less obvious. I'm not really familiar with DBIish (or SQLite, for that matter) 08:23
08:23 preflex left
FLOSSrookie Well, it says true now that I modified the path. And then it dumped the core again. 08:23
FROGGS I'd vote for a sample sqlite database within the DBIish repo, and tests for it 08:25
08:25 preflex joined
FROGGS (if there are non) 08:25
arnsholt Then it might be as simple as SQLite not creating a non-existent DB file without a flag
The segfault it a bit trickier to diagnose 08:26
FLOSSrookie arnsholt: Does the code look sound in the paste?
arnsholt: I at least want to get that right for now.
arnsholt I can't see anything obviously wrong, but again, I'm not really familiar with DBIish
masak r: my $yo = set; my $dawg = set $yo; say $dawg.elems
p6eval rakudo ce1827: OUTPUT«0␤»
masak :(
hm, is this tikkited?
arnsholt FLOSSrookie: What if you add say()s between the prepare, execute and fetchall. Which one is it that explodes? 08:27
08:27 cogno joined 08:28 rindolf left
FLOSSrookie arnsholt: Could you modify the paste of my code to show what you mean. 08:28
masak well, we have rt.perl.org/rt3/Ticket/Display.html?id=116096 which is close enough.
08:28 rindolf joined
arnsholt FLOSSrookie: Just add a say "foo" after the prepare and say "bar" after the 08:28
odoacre join #bitcoin
arnsholt ... execute
odoacre ops 08:29
arnsholt (fatfingered)
Then run the script again. Which strings get printed will show you which statement errors out
masak odoacre: hi!
odoacre hi there
masak lurking much? :) 08:30
odoacre heh
about a couple years i'd say
masak wow.
odoacre i lurk on your blog too, i really like it by the way
masak yay 08:31
odoacre: may I take this opportunity to poll you about your opinion on Perl 6? we're always curious about what people think, feel, and hope about Perl 6.
odoacre well, last time i tried it was about two years ago.
masak by the way, I hear bitcoins are stronger than ever.
FLOSSrookie arnsholt: Well, it appears that "foo" and "bar are shown I think it is the fetchall. 08:32
08:33 xinming left
tadzik FLOSSrookie: did you try running DBIish tests, ooc? 08:33
FLOSSrookie tadzik: "ooc"?
odoacre i looked into bitcoins a couple years ago too, decided it's a waste of time, i'm actually embarrased you caught me attempting to jon the channel :(
i mean the concept is cool
but meh
08:34 kresike joined
kresike hello all you perl6 people 08:34
+happy :)
odoacre about perl6 i honestly think it's also become unexciting perhaps
sorry to say that :(
sorear #perl6 is still pretty cool though. 08:35
masak agreed.
tadzik out of curiosity
FLOSSrookie: ^
sorear as long as masak and jnthn and pm and co are here, so will I
masak \o/
08:35 xinming joined
tadzik istr (I seem to recall) you're using R* provided by fedora, no? 08:35
FLOSSrookie tadzik: I have no clue what you just said. Sure, I would like to test DBIish that is what I am doing. 08:36
masak odoacre: why was Perl 6 exciting in 2004 but is unexciting now, in your view?
08:36 quester left
tadzik FLOSSrookie: did you install DBIish yourself, using panda? 08:36
FLOSSrookie tadzik: It came with the yum install I found out.
odoacre in 2004 i was still using perl a lot, nowadays not so much, it's kind of gone out of fashion/has a bad reputation and when you say, i'll do this in perl, your colleagues say, no! perl! horror! 08:37
tadzik I suppose that may not neceserilly have ran all the tests
odoacre perl6 was supposed to fix that
sorear masak: duh, it's because of the spec freeze. don't you agree maintaining november was exciting?
08:37 cogno left
masak sorear: hee hee. 08:37
tadzik odoacre: yeah, that happens. It's been like this since I remember 08:38
masak odoacre: thank you for your input.
odoacre: it rhymes with a lot that I keep hearing.
tadzik I learned to shrug, say "duh", get back to coding and then buy them beer saying "this round's on Perl"
FLOSSrookie tadzik: What do you mean by test? I mean test as in I am testing perl6 with DBIish.
08:39 rindolf left
tadzik FLOSSrookie: I mean that almost every module (library) out there comes with a set of tests, which are to make sure that the module actually works 08:39
masak I think the main thing to realize about the popularity of Perl, is that if you lead the way and have almost all the market share, like Perl did, then there's no way to go but down when the niche becomes populated by other players.
odoacre i still love perl, it's just that i have stopped fighting that battle i guess
08:39 rindolf joined
tadzik FLOSSrookie: it might be a good idea to run them, and make sure that it's either a bug in your code, or you're just using broken tools 08:39
masak it's a bit like saying "man, Elvis isn't half as popular as he was 50 years ago".
...which is *true*, but it isn't just because of Justin Bieber, it's because of all of the new artists, and the space created for all of them. 08:40
sorear perl 6 has about 20 users now, I think that statistically we're far more likely to go up than down :)
masak odoacre: welcome to #perl6. we haven't stopped fighting the battle, even when we're jaded and cynical like sorear and me :) 08:41
odoacre :D
masak sorear: because there are more positive integers above 20 than below? :P
I like where that argument is going...
FLOSSrookie tadzik: I will do that but it will be tomorrow (I have been here long enough at this computer). Thanks to all those who helped. 08:42
masak s/positive/non-negative/
FLOSSrookie: good luck!
kresike masak, count in Rat's too, there are people using other languages than perl ☺
masak kresike: dang, there goes the proof...
08:42 FLOSSrookie left
sorear masak: yes, even if you restrict yourself to positive numbers less than the world population :) 08:42
odoacre but really, i would turn that question around and ask, what is the problem that has perl6 as a solution ? 08:43
masak "Is Perl 6 ready for production?" -- "Fraction of world population assimilated: .0000000033"
DrEeevil odoacre: ruby
at least perl6 is readable ;)
odoacre that's what people tend to say about perl5 08:44
kresike masak, my gut tells me there are still more numbers above 20 then there are below it, it's just a little harder to prove ☺
masak odoacre: I like programming in Pumpkin Perl. I like programming in Perl 6 even more. so "the problem" is "most problems I solve with programming", I guess.
kresike: your gut is wrong.
sorear kresike's gut uses measure theory.
masak kresike: there are a countably infinite amount of rationals between 0 (exclusive) and 20 (exclusive). 08:45
kresike: the same cardinality as those above 20.
odoacre masak you are avoiding the question :)
sorear but I'm actually thinking more from the POV of "regression to the mean"
kresike masak, I know ... and yes I hate infinites !
masak odoacre: oops, sorry.
kresike: I've made peace with them.
odoacre: let me try again. 08:46
kresike
masak odoacre: Perl 6 has grammars, roles, and user-definable operators. many other languages do too, but Perl 6 has them in a unique way, which helps me think better about problems than in other languages. 08:47
odoacre: nowadays, when I code in some other language, like Java or JavaScript or Perl 5, I tend to formulate the solution in Perl 6, and then translate it down to the target language.
odoacre ok, and that's great, but it's still kind of metaphysical, no ?
masak yes. 08:48
I'm not sure there's a single problem Perl 6 solves that I can point to like you want.
it solves a lot of problems.
sometimes slightly better than other languages out there. sometimes a lot better.
08:48 rindolf left 08:49 rindolf joined
odoacre i really should give perl6 anover spin 08:50
i'll let you know masak :D 08:51
masak odoacre: pro tip: it helps to go in with a purpose. follow your own advice: solve a concrete problem.
odoacre yeah that's what i always try to do
masak make it a *small* concrete problem, it'll be challenging enough anyway ;)
++odoacre
odoacre yeah, last time i checked finding docs was kinda hard
sorear We've partially fixed that in the last year 08:55
moritz we now have doc.perl6.org 08:56
it's not complete, and not perfect
but good enough that if you complain about missing docs, we can add it there quickly-ish
odoacre thanks guys 08:57
i'll set about doing something small n the next couple weeks or so 08:58
08:59 rindolf left
masak sounds great. 08:59
08:59 rindolf joined 09:01 rindolf left 09:02 rindolf joined 09:03 woolfy joined 09:04 Guest59432 is now known as lizmat, daxim joined 09:08 cognominal__ left 09:10 rindolf left, rindolf joined 09:17 wk joined, ozmq left
masak I was thinking something like this. html5please.com/ 09:22
but for Perl 6 production readiness.
FROGGS cool 09:23
masak and (at least for me) the key would be to *back things up* not just with a finger-in-the-air hunch, but with observable milestones.
sjn masak: good idea
FROGGS milestones++
FROGGS likes to work onto goals
masak so, shiny three-state (use/caution/avoid) system with a shiny layout + concrete milestones. that's what I'd like to see. 09:24
09:24 cognominal joined
masak I'm willing to put actual tuits into this. 09:24
and, you see, when you expand any of those, there's a (short) paragraph explaining the most important fact, caveat, or workaround. 09:25
sjn masak: how do you envision keeping the list up-to-date? is here a good list to base something like this on? 09:26
masak well, not to overdesign things, but...
each update, bringing things closer to production-readiness, is news. 09:27
which would suggest an Atom feed to update things.
basically, a blog or tumblelog.
add a new update to the Atom feed, and the page updates.
come to think of it, I wish the whole web was made of Atom feeds. 09:28
then people who are interested in the production-readiness of Perl 6 can subscribe to that feed.
FROGGS volunteers
masak FROGGS: cool. I don't believe I have access to create projects under the perl6 org on github, but we might start by brainstorming in a repo elsewhere. 09:29
FROGGS: mind if I create the repo?
FROGGS go ahead 09:30
09:31 rindolf left, rindolf joined
moritz I can do stuff in the perl6 org 09:32
should I do anything for you?
FROGGS stuff++
perl6please repo?
moritz a repo named perl6please? 09:34
FROGGS masak? 09:35
09:37 cognominal left
masak hold on. 09:38
github.com/masak/production-readiness
moritz should I fork that into perl6 orga?
masak I considered perl6please, but I considered that too cute for a repo name.
moritz: yes, please.
unless we want to wait for the project to materialize beyond a README.md :) 09:39
but I have good hopes for it. I already wrote static webpage generation with an Atom feed in Perl 6 once :)
mostly we can scavenge psyde for good code.
DrEeevil I really really hate how a simple README now doesn't "work" anymore
masak we might need to pull in the p5 Markdown module, though. that's the compromise I currently make in psyde.
moritz forked to perl6 org 09:40
FROGGS about the milestones... one milestone is to gain speed, we need benchmarks and an acceptable time for them
moritz and added 'perl6' team (aka everybody :-) as committers
masak \o/
moritz++
09:57 dakkar joined, rindolf left 09:58 rindolf joined 10:06 Ovidius joined
masak uses 'git update set-url' for the first time to change his origin to [email@hidden.address] rather than manually editing the .git/config file 10:07
10:08 curtispoe left 10:09 fhelmberger joined
masak what I would like: a bliki platform where the Atom feed is the central part. it comes pre-configured as a blog, but any new resource/page can be created that projects the Atom feed in some way. 10:12
masak adds it to his mental TODO list
sorear [GitHub] Subscribed to perl6/production-readiness notifications 10:13
"does this mean I'm going to get email when perl 6 is production ready?"
masak :P
10:16 hoelzro joined
Ulti yeah I noticed I now have all sorts of perl6 github action in my inbox, is there some new social drive? 10:24
10:25 hypolin left 10:27 ObseLeTe left 10:29 thou_ left
masak Ulti: discussions ultimately rooted in a dagolden post yesterday culminated in a new project. 10:29
well, "ultimately rooted" is perhaps a bit strong. I've been wanting this for some time now, but haven't stopped and verbalized it. 10:30
10:43 ObseLeTe joined
dalek p: 422d97c | (Arne Skjærholt)++ | src/6model/reprs/VMArray.c:
Remove obsolete comment.
10:43
p: 311fabb | (Arne Skjærholt)++ | src/6model/reprs/VMArray.c:
Stub positional REPROps in VMArray.
pmichaud good morning, #perl6 10:46
arnsholt o/
tadzik good morning pmichaud
moritz good am, pm 10:48
pmichaud decides to try to catch up on latest discussions re: productionability 10:49
in japhb's "Perl 6 ready?" gist, I think the "serious performance work in Rakudo has really yet to begin" needs revision. 10:51
unless we want to deny the work of the past 2.5 years
10:54 brrt joined 10:57 mberends left 10:58 mberends joined
masak +1 10:59
I'm doing $work, but I intend to try and summarize people's "Perl 6 ready?" thoughts/backlog/gists into something we can use for perl6/production-readiness, with an eye towards concrete achievables. 11:00
...after $work :) 11:01
dalek p: 814b3bb | (Arne Skjærholt)++ | src/6model/reprs/P6 (2 files):
Remove no return value-warnings from P6{int,num}.c
pmichaud I'll be glad to contribute patches and thoughts, but once again my schedule is not my own for a while :-| 11:02
masak hugs pmichaud 11:03
Harzilein hmm... 11:05
i just tried perlito with add.pl from perl6advent.wordpress.com/2010/12/0...main-subs/
but it does not seem to generate code to call the main sub
tadzik I think perlito may not support MAIN 11:06
11:06 brrt left
Harzilein :( 11:08
tadzik rakudo and niecza seem to both support it
sorry for the inconvenience :) 11:09
11:11 anuby left
masak Harzilein: it's not entirely clear to me what perlito supports or does not support. however, I'm pretty sure the feature support is a lot lower than for either Rakudo or Niecza. 11:13
Harzilein: in other words, don't be surprised if you find not-yet-implemented things in perlito. 11:14
pmichaud is perlito far enough along to be in the feature matrix, ooc? 11:15
11:20 mberends left
masak I would think so, yes. 11:21
I have no idea how it'd fare compared to, say, Pugs.
moritz afaict perlito never strived to be a feature-complete implementation
Harzilein i just wondered if i could use some perlito generated command line parsing with my perl5 script :) 11:25
11:28 wk left 11:29 mberends joined
masak realizes that he submitted 5 RT tickets (and one spec issue) on his first day back 11:34
clearly I should vacation more often.
11:35 erkan left
colomon masak++ 11:43
moritz masak: is that more than your usual weekly average?
11:44 rindolf left 11:46 erkan joined, erkan left, erkan joined
masak moritz: for a few years, I averaged one RT ticket per day. in the past two or so years, it's been slightly lower. 11:48
arnsholt jnthn: REPROps_Positional->get_elem_stable appears to be unused in NQP, and AFAIK it was only needed to support the old way of doing at_pos_native. Any objections to me removing it entirely? 11:57
grondilu wow, lots of change in the metamodel. What's going on? 11:59
masak grondilu: what change are you referring to? 12:02
arnsholt Nah, this isn't really a major change I think 12:08
Just dead code I think
moritz and it's not really in the MOP, but in the layer below 12:09
masak oh, the change that arnsholt++ is proposing. 12:10
arnsholt: if it's not used, I have no objections.
arnsholt Yeah, I'm pretty sure it'll be fine, since it's not in 6model-JVM, just prefer to have a second opinion on this kind of change to check for unintended consequences 12:13
12:13 brrt joined 12:22 SmokeMachine joined
masak TimToady++ # applying a moderate version of Skegness^WOKness to only Match objects 12:22
(folk.uio.no/alied/TMoL.html defines "skegness" as "Nose excreta of a malleable consistency.") 12:23
grondilu masak: I don't know exactly: when git-pulling today I saw plenty of changes in src/Perl6/Metamodel 12:24
masak oh.
arnsholt Those aren't mine =) 12:25
Oh, looking at the list of commits, it seems it's moritz++ who merged more of kboga++'s piridectomy work 12:26
Those'll be mostly in the metamodel I think
masak rn: say Nil ~~ Parcel
p6eval rakudo ce1827, niecza v24-26-g713c785: OUTPUT«False␤»
masak r: say Nil.^mro 12:27
p6eval rakudo ce1827: OUTPUT«Nil (Iterator) (Iterable) (Cool) (Any) (Mu)␤»
masak Nil is... a kind of Iterator?
r: say List.^mro
p6eval rakudo ce1827: OUTPUT«(List) (Iterable) (Cool) (Any) (Mu)␤»
moritz masak: in the old spec, yes 12:28
masak: in the old spec, Nil was something like (), but undefined in scalar context
the new spec disagrees.
masak yeah. that's why I wanted to check. 12:30
12:37 m0li joined, cogno joined 12:45 SHODAN joined 12:50 cogno left 12:55 Targen left 13:04 dayangkun left, wk joined 13:07 dayangkun_ joined, SmokeMachine left 13:08 SmokeMachine joined 13:09 dayangkun_ is now known as dayangkun 13:10 dayangkun left, kaleem left, dayangkun joined 13:12 zamolxes joined 13:15 cognominal joined 13:16 immortal joined, immortal left, immortal joined 13:17 erkan left
masak today's autopun: "The worst thing about censorship is ■■■■■■■■■■." 13:18
lizmat :-) 13:22
lizmat off to Amsterdam PM meeting &
13:22 woolfy left, lizmat left
sjn just read that bdfoy is promising a fix for all modern perils! o/ 13:25
13:27 kaleem joined, kaleem left
masak sjn: url? 13:31
sjn ttps://twitter.com/briandfoy_perl/statuses/308929736829186048
:D
oops
add an h
masak :)
URL provided by IKEA.
sjn assembly may be required
twitter.com/briandfoy_perl/statuse...6829186048 # for the ircbots 13:32
masak I for one welcome our new peril-free modern overlords. 13:33
brrt peril free with perl 13:34
masak note that he doesn't promise to fix *all* perils. just the modern ones. 13:35
tadzik so 5.8 is EOLd, but still getting updates, eh?
masak like, I guess, Segwaying off a cliff. 13:36
tadzik: just like Perl itself! <ducks />
13:37 ObseLeTe left 13:38 xinming left, SmokeMachine left 13:39 xinming joined, kaleem joined, SmokeMachine joined
[Coke] (perlito) is perlito in a state where I can fudge roast tests for it? 13:41
13:44 telex_ left 13:46 telex joined 13:49 ObseLeTe joined 13:59 sqirrel_ left, hoelzro is now known as hoelzro|away 14:05 ObseLeTe left
[Coke] perl perlito6.pl -Cperl5 -e t/spec/S02-literals/listquote.t | perl 14:19
Undefined subroutine &GLOBAL::t called at - line 13.
14:19 brrt left 14:22 Psyche^ joined
[Coke] ah, my bad, leftover -e. 14:22
actual error:
perl perlito6.pl -Cperl5 t/spec/S02-literals/listquote.t | perl
Missing value after operator > at lib5/Perlito6/Expression.pm line 286.
14:22 xinming left
nwc10 I'm not sure if it's really a great idea spending time fudging for Perlito. It's not obvious that it's a very active project: github.com/fglock/Perlito/commits/master 14:22
[Coke] nwc10: I'm spending about 15m. that's it. :)
nwc10 aha
masak [Coke]++ 14:23
14:24 xinming joined 14:25 crab2313 joined
[Coke] I picked 3 or 4 spec tests, some issue on each of them so far. 14:25
14:25 Patterner left, Psyche^ is now known as Patterner, cognominal left 14:28 census joined 14:30 cognominal joined 14:35 benabik joined, census left 14:36 PacoAir joined 14:38 census joined
colomon rn: say (1, 2, "a", "b").sort 14:39
p6eval niecza v24-26-g713c785: OUTPUT«a b 1 2␤»
..rakudo ce1827: OUTPUT«1 2 a b␤»
14:39 kaare__ joined
masak sorting values from different types considered insane. 14:40
colomon masak: agreed.
yet here I am looking at spectests which do just that
masak consider those spectests insane :) 14:41
things need to be on the same "real line". 2 and "a" ain't.
and Perl 6 doesn't have enough static typing to get .sort to enforce that. 14:42
colomon what I really don't get is: these tests are five years old. rakudo todo'd them a year ago. yet they've just recently started failing on niecza. what's up with that?
14:42 wk left, smash__ left
colomon S32-hash/kv.t line 37, etc. 14:43
masak some update to Mono?
colomon not on my machine.
anyway, I'm thinking the right solution is to make the tests more correct 14:44
14:45 cognominal left
colomon but would love a second opinion. 14:45
PerlJam colomon: make the tests more correct <-- there's your second opinion ;) 14:47
dalek ast: 79de2c6 | (Solomon Foster)++ | S32-hash/kv.t:
Change tests so they no longer depend on the order of sorting numbers with strings.
14:48
[Coke] what does sort default to?
colomon [Coke]: cmp
masak then rakudo is correct.
oh wait.
infix:<cmp> isn't Perl 5's cmp.
colomon cmp doesn't default to comparing strings 14:49
masak rn: say 2 cmp "a"
p6eval rakudo ce1827: OUTPUT«Increase␤»
..niecza v24-26-g713c785: OUTPUT«Decrease␤»
masak colomon: right.
was thinking about leg.
rn: say 2 leg "a"
p6eval rakudo ce1827, niecza v24-26-g713c785: OUTPUT«Increase␤»
colomon on niecza, I'm pretty sure cmp compares the typenames when you try to compare different types. (with an except for Reals where they all compare alike.)
[Coke] rn: say +"a" 14:50
p6eval niecza v24-26-g713c785: OUTPUT«Unhandled exception: Cannot parse number: a␤ at /home/p6eval/niecza/lib/CORE.setting line 1479 (die @ 5) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3595 (ANON @ 10) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3597 (NumSyntax.str2num @ 5) ␤ at /h…
..rakudo ce1827: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏a' (indicated by ⏏)␤ in method gist at src/gen/CORE.setting:10514␤ in sub say at src/gen/CORE.setting:7592␤ in block at /tmp/IVQHmXvvHM:1␤␤»
colomon *exception
dalek ast: 6aab7ad | (Solomon Foster)++ | S14-roles/namespaced.t:
Fix test to conform to the B() to (B) change.
14:52
colomon is now wondering how many of the current Niecza test failures are actually bad tests.
ooo, this one is a legit niecza bug. 14:53
14:54 hoelzro|away is now known as hoelzro
masak colomon++ 14:57
[Coke] colomon++ 14:58
colomon n: say Bool 14:59
p6eval niecza v24-26-g713c785: OUTPUT«Bool()␤»
colomon n: say Int
p6eval niecza v24-26-g713c785: OUTPUT«(Int)␤»
colomon n: say Bool.STR 15:01
p6eval niecza v24-26-g713c785: OUTPUT«Unhandled exception: Unable to resolve method STR in type Bool␤ at /tmp/vuW_f5pJWJ line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4274 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4275 (module-CORE @ 581) ␤ at /home/p…
colomon n: say Bool.Str
p6eval niecza v24-26-g713c785: OUTPUT«Bool()␤»
dalek ecza: 2e5a010 | (Solomon Foster)++ | lib/CORE.setting:
Fix CommonEnum.gist to return (Type) instead of Type() for undefined.
15:05
PerlJam dagolden++ clarifying post -- www.dagolden.com/index.php/1923/my-...ut-perl-5/
dalek ast: 0d86772 | (Solomon Foster)++ | S12-attributes/class.t:
Refudge for Niecza.
15:06
pmichaud yeah, in retrospect the earlier article could've used a better title. 15:07
15:07 cosimo left
PerlJam indeed 15:07
pmichaud "What Perl 6 can tell us about Perl 5 evolution" or something like that.
colomon the framing is still kind of all weird. "Perl 6 is hopeless" still seems to mean "Perl 6 is not going to sweep in and make Perl 5 completely irrelevant in the short term". 15:10
colomon is excited about having a new computer arrive today... 15:12
felher is very pleased that rakudo is fast enough to do placeholder substitution in a file fast enough for his purposes. 15:14
colomon \o/
FROGGS (new computer)++ 15:15
I am still excited about my company-laptop
15:15 kaleem left 15:34 aindilis left 15:35 PacoAir left 15:40 cosimo joined 15:43 FROGGS left
colomon rn: say "m" ~~ /[M]/ 15:46
p6eval rakudo ce1827, niecza v24-26-g713c785: OUTPUT«#<failed match>␤»
colomon rn: say "m" ~~ /:i [M]/; say "m" ~~ /[M]/ 15:47
p6eval rakudo ce1827, niecza v24-26-g713c785: OUTPUT«「m」␤␤#<failed match>␤»
colomon rn: say ("m" ~~ /[M]/).Bool
p6eval rakudo ce1827, niecza v24-26-g713c785: OUTPUT«False␤»
dalek p: dda02aa | (Arne Skjærholt)++ | src/6model/reprs/VMArray. (2 files):
Import resizing code from QRPA and make method stubs slightly less stubby.

Also fixes two copy-pasto return values.
15:49
colomon ugh, this looks to be an ugly, ugly niecza- bug
15:49 SamuraiJack_ joined 15:52 SamuraiJack left
colomon n: say "m" ~~ /[M]/; say 'ß' ~~ m:i/SS/; say 'SS' ~~ m:i/ß/; say "m" ~~ /[M]/; 15:52
p6eval niecza v24-26-g713c785: OUTPUT«#<failed match>␤False␤False␤「m」␤␤»
colomon yup, officially ugly
15:52 dayangkun left
masak wt... 15:55
benabik ignore case gets stuck? 15:56
masak something sets case insensitivity and then doesn't unset it?
n: say "a" ~~ /[A]/; say "b" ~~ m:i/B/; say "a" ~~ /[A]/
p6eval niecza v24-26-g713c785: OUTPUT«#<failed match>␤「b」␤␤「a」␤␤»
masak yep. 15:57
15:58 dayangkun joined 16:00 neilb_ joined 16:02 neilb_ left, neilb__ joined
TimToady I hope you don't think those are character classes... 16:07
16:08 kmwallio joined 16:09 kmwallio left 16:11 cosimo left 16:12 cosimo joined 16:16 thou joined
felher Is the reason that STD has some '{}' in the regex that the closure is a sequence point after which $/ guaranteed to be defined? 16:17
TimToady no, it terminates the declarative part that feeds longest token matching 16:18
felher TimToady: ah, okay. Thanks :)
16:19 sizz joined, sizz_ left
benabik Why not :: ? 16:19
TimToady that also commits to the current token, which prevents backtracking to a shorter but better match
or even one of the same length 16:20
benabik Ah.
TimToady there's more than one way to match an identifier, for instance
colomon TimToady: roast thinks they are character classes, see ignorecase.t 16:22
n: say "a" ~~ /A/; say "b" ~~ m:i/B/; say "a" ~~ /A/ 16:23
p6eval niecza v24-27-g2e5a010: OUTPUT«#<failed match>␤「b」␤␤「a」␤␤»
colomon n: say "a" ~~ /A/; say "b" ~~ m/:iB/; say "a" ~~ /A/
p6eval niecza v24-27-g2e5a010: OUTPUT«===SORRY!===␤␤Unrecognized regex modifier :iB at /tmp/jZplhY2FGN line 1:␤------> say "a" ~~ /A/; say "b" ~~ m/:iB⏏/; say "a" ~~ /A/␤␤Action method mod_internal:oops not yet implemented at /tmp/jZplhY2FGN line 1:␤------>…
colomon n: say "a" ~~ /A/; say "b" ~~ m/:i B/; say "a" ~~ /A/
p6eval niecza v24-27-g2e5a010: OUTPUT«#<failed match>␤「b」␤␤#<failed match>␤»
colomon hmm, that might be a pretty good hint to the location of the problem... 16:24
TimToady indeed
16:25 rindolf joined
colomon TimToady: what regexes should I be looking for for that? 16:28
regex_def? 16:30
kresike bye folks
16:30 kresike left
colomon that looks like it's actually for grammars. 16:30
16:31 SmokeMachine left
colomon quote? 16:32
TimToady eh, you should be looking down in the Regex subgrammar
colomon quote:m, no? 16:33
16:33 SmokeMachine joined
TimToady if it's like STD, things to do with the %*RX dynamic array, specifically %*RX<i> 16:33
but I have vague recollection that not all impls follow the %*RX strategy 16:34
colomon niecza's got it.
grammar Regex is STD
elsif $i.defined { %*RX<i> = $i; self }
that's in a method tweak? 16:35
16:35 SmokeMac_ joined
TimToady but it should be in something that declares a my %*RX over the correct scope 16:35
it would seem to be missing something like that
colomon nibbler has 16:36
:temp %*RX;
rule nibbler, I mean.
16:37 SmokeMachine left
colomon hmmm 16:38
n: say "a a" ~~ /a/; say "b b" ~~ m:g/b/; say "a a" ~~ /a/
p6eval niecza v24-27-g2e5a010: OUTPUT«===SORRY!===␤␤Regex modifier g not yet implemented at /tmp/d1WyLHoD4i line 1:␤------> say "a a" ~~ /a/; say "b b" ~~ m:g⏏/b/; say "a a" ~~ /a/␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.s…
TimToady token quote:sym</ /> {
probably needs a temp %*RX; 16:39
colomon "Only $ and @ variables may be used in regexes for now" 16:40
though surely that isn't the right syntax? 16:41
benabik :temp %*RX; I'd imagine
colomon feels wildly out of his depth here. 16:42
TimToady actually, quote:m for the m:i// form
colomon TimToady: maybe not completely out of my depth, that much I figured out on my own. ;)
TimToady :temp %*RX; is just like :my %*RX; but copies in the current values like your environment vars do
colomon niecza> say "a" ~~ /A/; say "b" ~~ m:i/B/; say "a" ~~ /A/ 16:43
#<failed match>
「b」
#<failed match>
\o/
benabik++, TimToady++
TimToady feel free to backpatch STD as well 16:44
TimToady has to run off to a meeting soonish
colomon probably needed for quote:ms, quote:s, quote:ss, and quote:tr as well, right?
TimToady can't hurt
colomon TimToady: I don't know how to test STD to make sure my changes are correct?
TimToady well, you can't really, since STD is just a parser :) 16:45
well, you could look at the output of viv to see what the tree looks like, I suppose, but STD stops when it comes to deep semantics
but if you do the same thing to STD as you do elsewhere, it should be good enough for STD's purposes 16:46
which is mostly just to be a prototype
16:46 hoelzro is now known as hoelzro|away
dalek ecza: 2a7e0fd | (Solomon Foster)++ | src/STD.pm6:
Add :temp %*RX; to quote:rx, quote:m, etc.
16:47
16:48 supernovus joined
supernovus Anyone else having a problem installing panda lately? 16:48
masak colomon++ 16:50
supernovus: there was some known panda breakage in the backlog a few days back.
supernovus: don't remember if it got resolv'd.
dalek d: 692eb4f | (Solomon Foster)++ | STD.pm6:
Add :temp %*RX; to quote:rx, quote:m, etc.
16:52
arnsholt phenny: tell jnthn I'm working on VMArray directly on nqp/master. Think it should be fine, since nothing's actually using it yet. Also, I think I can kill REPROps_Positional->get_elem_stable. You agree?
phenny arnsholt: I'll pass that on when jnthn is around.
supernovus pastebin.com/pF3NQkrM 16:53
So at the moment, panda is entirely unusable. Sigh. 16:54
16:54 FROGGS joined 16:55 kst joined
supernovus I can also confirm that the bug in IO::Socket::INET that makes the get() method freeze up on a blank line is still there. 16:56
16:58 chee left
FROGGS supernovus: right 16:58
supernovus In the recent discussion about "production readiness", a lot of people seem to put speed at the top of the list, but in my opinion, speed sits well below essential features being broken. 17:02
17:04 zby_home_ joined 17:05 thou left 17:06 SmokeMac_ left 17:08 SmokeMachine joined 17:11 wk joined
masak supernovus: usually referred to in positive terms, as "stability". 17:16
supernovus: if it's any help, stability has gotten *much* better since 2008. in fits and starts. pmichaud and jnthn and sorear and moritz are taking it very seriouisly. we can still get better, of course.
didn't IO::Socket::INET get broken because of some Parrot carpet-pull? 17:17
pmichaud yeah, I'm still not happy with the socket I/O breakages we've had lately.
That whole io-refactor branch has just been a lot of hurt.
colomon FedEx pulling up outside!
masak it's the feds! 17:18
FROGGS well, I can think of a patch but this involves hardcoding parrots chunksize into IO::Socket::INET
TimToady are they pulling up carpets?
masak no, that's CIA.
17:18 grondilu left
TimToady
.oO(Carpet Intelligence Agency?)
17:19
colomon it's a new Linux box!
TimToady feels bad for the old one
PerlJam supernovus: Well, for me, improved IO is probably next on the list after speed, but I'm not running up against "essential features" that are missing so much. 17:20
17:20 bluescreen10 joined
pmichaud PerlJam: well, features that were working but are now broken is definitely Bad. 17:20
TimToady would, running the other way with it, like to see more POSIXy things in the essentials category
masak +1 17:21
TimToady would also like to know how to read errno
colomon TimToady: If the old one hadn't decided to start shutting down every time I asked it to do something hard, it wouldn't be getting replaced.
moritz the real problem with socket errors is that while people are quick to point at problems, it's very rare that somebody constructs a minimal-ish test case
TimToady colomon: maybe you should replace me too :) 17:22
moritz which exposes the problem
TimToady yes, stability is the mother of testing
or something like that
moritz effort is 17:23
pmichaud I just know that I was surprised at one of the Star releases late last year failing most of the socket tests.
TimToady as for speed, we can fix things faster if we have more speed :)
pmichaud s/most of/several of/
TimToady more to the point, with more speed we can recruit more people to fix things faster :) 17:24
we try to encourage Impatience as a virtue, and sometimes that backfires
PerlJam TimToady: Niecza is faster than Rakudo, but doesn't seem to be recruiting more people :) 17:25
TimToady there may be people here who are willing to work on rakudo because niecza proves it could be faster :) 17:26
colomon is thinking he may give the new machine a while to warm up before booting it...
masak PerlJam: Niecza doesn't have, and never had, the public mindshare Rakudo has.
tadzik and marketing 17:27
masak PerlJam: which is a pity. it's a fine implementation.
PerlJam masak: Sorry, I was just handwaving like TimToady taught me to. :)
tadzik people were always surprised that there's Perl 6 on .NET and it's fast
jnthn evening o/
phenny jnthn: 16:52Z <arnsholt> tell jnthn I'm working on VMArray directly on nqp/master. Think it should be fine, since nothing's actually using it yet. Also, I think I can kill REPROps_Positional->get_elem_stable. You agree?
colomon \o
PerlJam TimToady: I'm going to play the part of doubting Thomas on that one. 17:28
diakopter put your fingers in my side
masak eeeww
PerlJam diakopter: Are you in need of an operation? Does your spleen or appendix need removal? 17:29
masak .oO( doubting Thomas the Tank Engine )
diakopter _o_o 17:30
japhb (I'm backlogging, so apologies if this was already resolved later ....) pmichaud, re: irclog.perlgeek.de/perl6/2013-03-05#i_6551157 , I meant no denial -- I wrote my honest impression: that while certain very large performance gotchas had been filed off (can't compile in less than 1.5 GB RAM, jnthn's 30x performance boost for IIRC the X metaop from a couple months ago, etc.) that *considerable* work in the last 2.5 years had been a
bout correctness, maintainability, portability, and optimizability (but not major *optimization*, other than to prove that the optimizability work actually functioned correctly and capture a few easy but modest gains). I apologize my wording came off denialist. :-(
PerlJam wonders where you would "market" niecza ... 17:32
17:32 neilb__ left
PerlJam I don't run across many .net/mono hackers, so that leads me to believe that they aren't the same kinds of tinker that would hack on something like Perl 6. (sorear being an exception, of course) 17:32
or maybe sorear just needs to talk about niecza at some .net/mono conference or something to drum up hackers. 17:34
17:34 Chillance joined
diakopter PerlJam: well, there's jnthn :P 17:34
pmichaud japhb: it depends on if you're talking about optimization. Your gist says "serious performance work in Rakudo really has yet to begin", and that's just not true imo.
All of the refactors have been in preparation for being able to do optimizations. 17:35
PerlJam diakopter: I haven't seen jnthn hack on niecza either (but I also haven't been watching his every move :)
japhb FROGGS, re: irclog.perlgeek.de/perl6/2013-03-05#i_6551064 , there is github.com/japhb/perl6-bench/ , which needs more love, but I think can help in that area.
pmichaud Clearly inlining to native ops is a significant optimization that has been made.
japhb pmichaud, ah, so s/performance/optimization/ is one obvious improvement to phrasing.
diakopter I was referring to I don't run across many .net/mono hackers, so that leads me to believe that they aren't the same kinds of tinker that would hack on something like Perl 6.
masak you don't run across many .Net hackers? clearly you don't live in .se 17:36
we're so monoculturally .Net here that it makes me a little ashamed.
diakopter didn't know that 17:37
japhb masak, the SF Bay Area has a serious love/hate relationship with Microsoft.
tadzik pl is very python-strong
PerlJam masak: so ... are there .net conferences in .se?
pmichaud japhb: even better would be to get rid of the "really has yet to begin". Much of it has begun. What you really want to indicate is that there's a lot more to be done.
tadzik they're doing some big conferences here, in a circus tent
japhb pmichaud, hmmm, fair enough.
masak PerlJam: I'm pretty sure there are. I'm not a .Net programmer, though.
17:37 arlinius left
japhb pmichaud, how about "is still in the early stages"? 17:38
moritz does anybody else get lots of passing TODOs in t/spec/S32-num/stringify.rakudo ?
pmichaud moritz: they probably pass due to the commit I made 2 days ago
I didn't have a chance to update the tests.
moritz pmichaud: I'll do that then
pmichaud r: say (1/5).perl
p6eval rakudo ce1827: OUTPUT«0.2␤»
jnthn It's bull that we haven't invested serious effort into performance related work in Rakudo. Think of the serialization work that improved startup time dramatically, or the things that happened when moving to the nom line of development, or the optimizer, or the many, many smaller profile-driven improvements over time...
17:38 shlomif joined
japhb jnthn, again, I'm sorry. My late-night phrasing clearly was insulting, and was not meant to be. 17:39
pmichaud japhb: yeah, I'm not even sure I agree with "in the early stages". There just a whole lot of foundation that has to be correct before you can layer in the higher-level optimizations.
jnthn Some of the things have *favored* performance over stability. We could make augment work properlyer if we undid some optimizations. We could have more stability if we never pre-compiled (and heck would I like that, given nobody but me ever works on the serializer, and everybody tends to only ever be horrified when it fails...
diakopter japhb: perhaps characterize what you imagine could be done to do the "serious/focused" optimization effort 17:40
japhb My impression was that the serialization work was about correctness and addressing a serious immediate pain point (get "critically bad" down to "not great, but not awful"), rather than trying to make it perl5-level super-fast.
PerlJam japhb: not "super-fast", but definitely faster than it was. 17:41
supernovus masak: I realize it's gotten far more stable in the last few years, and MUCH faster too.
jnthn japhb: At the time it happened it was a dramatic improvement. 17:42
japhb And I thought the optimizer was serious work to get working, but was really just the stage upon which heavy optimization could happen, not something big and sophisticated and JVM/LuaJIT-like in its power.
moritz those tests are nasty to fudge
they are in a function that is called many times
japhb jnthn, yes, but I was trying to say that that was sawing off a blade of pain, not sanding it down to a smooth sheen.
moritz and not all calls succeed
jnthn japhb: Sure, that means "more to do", not "nothing serious done" 17:43
colomon moritz: probably easier just to fix rakudo. ;)
supernovus PerlJam: I guess it depends on what people consider essential features. Most of my libraries are related to Internet services, so for me, a working networking stack is essential :-)
pmichaud let me look at the tests
japhb jnthn, yeah, I am really sorry. I think we're in violent agreement, but I clearly was insulting, and I didn't mean to be.
jnthn *nod*
17:43 rindolf left 17:44 shlomif is now known as rindolf
pmichaud I'm also still not convinced that p5-speed is our best benchmark or indicator of progress at the moment. 17:44
moritz it's not, but it is what many people will compare rakudo to, whether we like it or not
[Coke] I think it's a reasonable benchmark, even if our goal isn't parity.
PerlJam um ... what coke and moritz said :) 17:45
pmichaud I agree it's a useful comparison. I'm not sure I agree that "until you reach p5 speed, rakudo is useless or not production ready". 17:46
japhb pmichaud, I'm fairly sure I can't convince my department head at $day-job to let me program in Perl 6 most of the time until it is less than 2-10x the speed of perl5, depending on task and situation.
jnthn Please also remember that you need to talk about specific benchmarks, not faster in general.
pmichaud japhb: 2-10x is in the realm of what we're shooting for, yes. 17:47
I'm not arguing for a 20x difference being okay.
but I've seen a few people say that "faster than p5" is an essential criteria, and I'm not sure I agree with that.
japhb Right, again we're in agreement, thankfully. :-)
Yeah, that I don't buy.
[Coke] moritz: you could skip instead of todo. :| 17:48
pmichaud "as fast as p5" works as long as we accept some looseness in the "as fast as" part. Without the looseness, "as fast as" means literally "no slower than".
jnthn Faster than p5 at what? I suspect if I nail native type handling on the JVM port we may be able to beat Perl 5 at certain things. Other areas are gonna be much tougher to get close on.
pmichaud I also would like to point to my lightning talk. Rakudo is clearly faster than p5 for a lot of OOP stuff. 17:49
PerlJam So, what's the comparative speed target we should be marketing to the world? 2x-10x is a fairly wide margin
pmichaud especially startup time.
japhb jnthn, my goal was/is to have a benchmark suite that treated <= 2x as "green", <= 10x as "yellow", and make sure for every test we through at it, our implementations aren't showing red.
jnthn japhb: That sounds much more reasonable than talking about factors in general.
moritz [Coke]: I could, yes 17:50
japhb++ # full of good ideas these past few days
pmichaud pmthium.com/2012/09/a-rakudo-performance/ # in case the reference is needed again :)
japhb pmichaud, that was comparing against full-blown Moose, which I think is a very important comparison, but does not satisfy that part of the audience that says "I use Mo/Mouse/hand-coded OO specifically to avoid Moose startup, and you can't beat that." 17:51
moritz, That was an old good idea, but thank you. ;-)
pmichaud japhb: I'd want to see the actual performance comparison before saying "you can't beat that" though.
because I suspect we can. :)
japhb Oooh, I'd like to see that. :-) 17:52
17:52 dakkar left
japhb But I was speaking in terms of a theoretical audience member reacting to your slide deck, not having a specific test in mind myself. 17:52
PerlJam I'd like to see a benchmark against Perl 5 "hand-coded" OOP I think. 17:53
moritz maybe once we can inline accessors (or on a platform where calls aren'
supernovus Well, P6 has a full MOP, has a "full blown Moose", it's part and parcel, so a fair comparison would be P5+Moose+MooseX::Declare+Regexp::Grammars+Lots::More::Stuff
moritz t so slow)
pmichaud japhb: yeah, but such an audience member isn't speaking from actual measurements, just speculation.
japhb pmichaud, sure. But remember, most people follow their gut, even when there is evidence right in front of them.
17:53 thou joined
japhb Hell, that's half or more of US politics explained in one sentence. 17:53
moritz supernovus: others argue that it's only a fair comparison if you actually use that stuff 17:54
avi_ People who complain about startup costs should consider the alternatives available to them, such as running a daemon and a lightweight client.
pmichaud right, but generic statements like "Perl 6 has slower startup than Perl 5" is just perpetuating the apples-to-oranges comparison meme. 17:55
it's not helpful.
supernovus moritz: Possibly, but with Perl 6, the features are there, and are used by pretty much anyone who writes in Perl 6.
japhb moritz, The big mistake that people make when thinking of perl5 OO performance is assuming that people use accessors *at all*. Almost none of the "raw perl5 OO" code I use on a daily basis does. The OO is used in the classic sense: some data with some methods.
avi_ Java people are well aware of start up costs, and it is a very popular language as well. So imho startup cost is just a performance point one could improve in the future, but the market has spoken, java is everywhere and startup cost be damned. 17:56
jnthn avi_: Yeah, but not many people do Java one-liners ;) 17:57
avi_ mmmmmm true but imho a perl one-liner is a maintenance smell
jnthn avi_: It all depends what your use case is. If you're writing a daemon, or anything long running, startup time is, indeed, not important. :)
avi_ there's probably like a 10% chance you're going to have to script that..
japhb supernovus, pmichaud was indeed trying to do a fair apples-to-apples comparison in that slide deck. The problem is that a lot of people are currently using oranges, and are perfectly happy with the results, and don't know why they want to start using apples just to be "fair". 17:58
tadzik you look from the wrong angle
there's not point _having_ it
you fire and forget
avi_ jnthn: oh but the point is that if you need to execute this program a lot, you can treat it as a service, like spamd for spamassassin.
17:58 not_gerd joined
supernovus Nearly all of my uses for Perl are for services that you start once, and leave running. 17:58
not_gerd o/
17:59 PacoAir joined
pmichaud japhb: I don't have a problem with people continuing to use oranges, either. I'm not claiming our apples are good enough to supplant their oranges either. I only have trouble with people who say "your apples aren't as good as our oranges, and are therefore unsuitable for anything." 17:59
not_gerd personally, what kills startup time for me is the parsing stage
supernovus japhb: I would say then, if they are happy with oranges, why worry about them? They can continue enjoying oranges, because apples aren't going to replace them.
FROGGS japhb: about perl6-bench, that will help, yes
supernovus pmichaud: beat me to the punch 18:00
not_gerd I've a not-too-large script where it's at 1s, and a 1k codebase where it's 7+s
japhb I use Perl for services, cronjobs, CLI tools, one-off experiments ... a full range of tasks, some of which require low latency to not be annoying, and shouldn't just be registered as services.
not_gerd the 7+s weren't so bad if there was automatic precompilation
18:00 takadonet joined
takadonet hey everyone 18:00
not_gerd but without it, user experience is worse than C++
18:02 daxim left
japhb supernovus, you found the boundary of the metaphor, not of my intent. People are interested in what Perl 6 has to offer on a wide range of subjects. But saddling "lean and mean" perl5 with extra stuff in order to perform an apples-to-apples comparison only works on audience members already using that extra stuff. Some of the rest want to know if Perl 6 can fill the orange niche in the market also. 18:02
PerlJam
.oO( when life gives you apples and oranges ... make a fruit salad? )
18:03
japhb The pace of this conversation is at the very limit of my ability to read and respond, so I apologize if I have lost a thread someone started.
[Coke] (time on my box with some random perl5 and a semi-recent rakudo to print 1 is ~85 times slower... less than half a sec vs. 0.005s.
pmichaud japhb: we can terminate our thread; we've both said what we need to say :)
[Coke] japhb: I don't think we're targetting those users specifically. 18:04
supernovus I use Perl 5 in a lot of projects, including places where Moose is overkill. I have plenty of code using plain old bless calls, and direct calls to $object->{field}, and for those cases, that's fine. For building a large scale web application on the other hand, I prefer a bit more substance, which Perl 5 + Moose + $Preferred_Web_Framework can provide, and which I'm trying to bring to Perl 6 by contributing as many web service rela
ted libraries as I can. :-)
[Coke] (nqp is just under 20x slower) 18:05
japhb pmichaud, circling back to the very beginning of this ... how would you phrase the situation with the performance and optimization work in Rakudo, so that it is useful for outsiders, and accurate WRT all the work y'all have put in?
18:06 grondilu joined
PerlJam [Coke]: now ... if only we had some profiling tools that helped us zero-in on where the bottle necks are :) 18:06
japhb supernovus, and good on you for that work. :-)
pmichaud japhb: I don't want P5 to be our benchmark, so the very first sentence throws me off for the rest of the paragraph.
japhb [Coke], yes, those numbers seem about right, last time I checked. 18:07
pmichaud, OK, fair enough.
PerlJam pmichaud: so what *should* be the benchmark?
perigrin does there have to be a benchmark?
pmichaud Perl 6 implementations suffer from very poor performance compared to p5 for those types of things that p5 has been extensively optimized for, and ignoring the additional capabilities that p6 brings
[Coke] nqp-jvm is at 2s, or 440x.
PerlJam perigrin: yes.
perigrin PerlJam: why? it just opens up to false comparisons ... like pmichaud just illustrated. 18:08
PerlJam perigrin: or ... people will make comparisons whether we want them to or not. The trick is giving them a useful comparison to make.
japhb pmichaud, I agree with that statement, but was that intended as a quote to put in, or just how you're thinking about it?
PerlJam, agreed 18:09
pmichaud not a quote -- just what the statement would need to say to be accurate
japhb Hmmm.
perigrin PerlJam: "Strange Game. The only way to win is not to play at all."
japhb "Shall ... We ... Play ... A ... Game?"
supernovus gotta run, back later
18:09 supernovus left
[Coke] benchmarks are a useful thing, even if the goal isn't to answer a fiver who is questioning whether or not they should move. 18:10
pmichaud for a quote, something like "Existing Perl 6 implementations continue to have slower startup times, execution speeds, and memory usage for many common applications."
[Coke] (our answer to that has been "it's ok, you don't have to" for some time now.)
perigrin pmichaud: "slower than desired" it's still faster than I can do it by hand :)
PerlJam perigrin: I'm not sure that quote applies. "playing the game" here is about communication. How do we communicate to others where Rakudo fits in their world so that they have a good framework for evaulating it?
[Coke]: definitely! 18:11
pmichaud "However, Perl 6 has many features built-in that are currently external libraries to languages such as Perl 5, and in these areas Perl 6 implementations can be competitive."
(could enumerate some of the features, such as full OO, grammars, gradual typing, signatures, etc.) 18:12
japhb pmichaud, updated with all but your last parenthetical comment
pmichaud "Many of the more egregious performance issues have been dealt with, and performance work in Rakudo continues at a steady pace." 18:13
perigrin PerlJam: go look at my early blog posts about Moose. I focused less on the starup times and more on the expressivity of the code for *everyday* tasks
pmichaud something like that.
18:13 spider-mario joined
perigrin and we reported the improvements we were seeing relative to Moose itself 18:13
japhb pmichaud, I wondered whether to leave that sentence in at all ... I don't want to get back to having too much in the overview paragraph that it becomes TL;DR again.
pmichaud I'm fine with omitting it. 18:14
perigrin people still trotted out benchmarks for Moose vs CAF or Class::AccessorXS or whatever
pmichaud from my perspective, the important aspects are:
perigrin and we pointed out what Moose was doing that XYZ comparison wasn't illustrating ... and worked on improving Moose in those cases.
japhb OK, just edited to make first sentence comma list more parallel.
pmichaud P6 implementations are still too slow for many common/traditional applications
18:15 lichtkind left
pmichaud However, they can be faster in areas where p6 offers capabilities that are external libraries in other languages 18:15
PerlJam perigrin: okay. I still think we need a good story about what they can expect from Rakudo.
18:15 lichtkind_ joined
pmichaud We're working steadily on speed improvements; significant progress has been made here and we know more is coming 18:15
japhb s/we know//?
pmichaud sure 18:16
japhb OK, trying that edit, hold on a sec
perigrin PerlJam: sure, but tying that against something arbitrary is just doing the naysayer's work for them.
what pmichaud just said is good
pmichaud also, p6 (the language) focuses on programmer productivity, expressivity, and learnability more than p5 does 18:17
perigrin "We know we're slow for common things, but we have more baked in that other languages do, and we're working on the slowness"
pmichaud indeed, whenever p5 tries to improve those latter items in a general way, its speed approaches that of perl 6 :)
perigrin heh
PerlJam "we're working on the slowness" is an unsatisfying answer when I want to know can I use it to parse a file and make some substitutions. 18:18
perigrin can someone coming from Perl5, Ruby, or python satisfyingly use it for that task?
jnthn dinner & 18:19
pmichaud PerlJam: in some sense it depends on the kinds of substitutions you're wanting to make.
18:19 not_gerd_ joined
colomon My impression is that memory usage may play a big role in the slowness? 18:19
japhb Do I keep the stuff about the status of parallelism?
pmichaud japhb: I don't know to what degree parallelism should plan in the notion of 'ready'.
timotimo maybe the world would understand perl6 better if we had (and regularly looked after) some perl6.tumblr.com thing with animated gifs and texts 18:20
japhb pmichaud, my *impression* is that several community members think so, but certainly not all.
pmichaud For some people, it's critical. For many people (like me), I've yet to make use of any sort of parallelism in Perl (5 or 6) because my applications have never needed it.
PerlJam timotimo: like this one: this-plt-life.tumblr.com/post/36425...-semantics
?
18:20 not_gerd left
pmichaud So, if we can only consider a language to be "ready" when it has parallelism built-in, then it needs to be there. If a language can be 'ready' without parallelism, then it may not need to be there. 18:21
In the 20+ years I've been doing Perl programming, I've never needed its threading features.
PerlJam pmichaud: whenever I've wanted parallelism in Perl 5, fork and POE and such have been "good enough"
perigrin you have however used fork I bet.
timotimo i don't understand why he's laughing his butt off, PerlJam 18:22
japhb OK, gist updated. How does the Performance paragraph look now?
pmichaud perigrin: I have used "fork", but I don't consider that to be language-level parallelism :)
diakopter "However, they can be faster in areas where p6 offers capabilities that are external libraries in other languages" - which features/libraries?
18:22 neilb_ joined
PerlJam timotimo: he's happy! :-) 18:22
pmichaud colomon: yes, memory usage plays a big role in the slowness. I'm hoping jvm will help with that too. 18:23
18:23 not_gerd_ is now known as not_gerd
colomon pmichaud: me too. 18:23
pmichaud japhb: I like this version a lot better. Thanks. 18:24
I have to run, alas -- bbl
japhb diakopter, perhaps we need a (separate) page that helps people understand that.
not_gerd thinks it would help if someone actually tracked rakudo performance
japhb pmichaud, you're welcome.
not_gerd some of my project euler stuff has regressed since december 18:25
PerlJam japhb++ btw 18:26
japhb not_gerd, again, that's what I intended with perl6-bench -- it is able to check out, build, and perftest arbitrarily many versions of multiple implementations -- but I have not had tuits to really finish it up and get it to the arewefastyet.com level.
PerlJam, thank you, I'm trying. :-)
diakopter japhb: I asked the question because I didn't know of any 18:28
PerlJam
.oO( isperl6readyyet.com would make a good name :)
18:29
huf
japhb diakopter, I *think* pmichaud was referring to Perl 5 there, where not just the OO, signatures, and type system, but even just the contents of List::Util etc. are all external libraries.
PerlJam, I thought about that very thing last night.
masak or perl6please.com
diakopter japhb: right, I didn't know those were faster in p6 18:30
huf p6p? :)
japhb masak, that was indeed a good idea, but I think we still need an isperl6readyyet to give the overview, since html5please is more about rubber meeting road.
not_gerd
.oO( p6pls, p6pies )
PerlJam I prefer pecan pie myself. 18:31
japhb diakopter, I don't want to speculate about performance I haven't personally tested. :-)
not_gerd only trusts lies he tells himself
japhb
.oO( Lies, Damn Lies, and The Lies I Tell Myself )
18:32
jnthn, is the current wording in gist.github.com/japhb/c51ee251868680bd01aa acceptable to you as well? 18:33
masak, as a matter of fact, I'd *personally* really like to use a perl6please.com, because I really hate running into gotchas. I'm not one that finds "working around my tools" to be all that fun. :-/ 18:34
18:36 SamuraiJack_ left
masak *nod* 18:36
18:38 rindolf left
[Coke] "perl6's fine grained parallelism" - wozzat? 18:39
(last time I asked about the spec stuff for this, I got the impression it wasn't spec'd)
timotimo well, the rough ideas for how it may be implemented some time are there, kind of :P
japhb commute & # Will backlog in a bit; more comments welcome 18:42
18:42 spider-mario left 18:45 lichtkind_ is now known as lichtkin, lichtkin is now known as lichtkind
colomon rn: say 1, { 1 / ((1 / $_) + 1) } ... 1/5).map({.perl}).join(', ') 18:48
p6eval rakudo ce1827: OUTPUT«===SORRY!===␤Unexpected closing bracket␤at /tmp/_l036ZXKe9:1␤------> say 1, { 1 / ((1 / $_) + 1) } ... 1/5⏏).map({.perl}).join(', ')␤»
..niecza v24-28-g2a7e0fd: OUTPUT«===SORRY!===␤␤Unexpected closing bracket at /tmp/pX9hCYmdLi line 1:␤------> say 1, { 1 / ((1 / $_) + 1) } ... 1/5⏏).map({.perl}).join(', ')␤␤Parse failed␤␤»
18:48 spider-mario joined
colomon rn: say (1, { 1 / ((1 / $_) + 1) } ... 1/5).map({.perl}).join(', ') 18:48
p6eval rakudo ce1827: OUTPUT«1, 0.5, 1/3, 0.25, 0.2␤»
..niecza v24-28-g2a7e0fd: OUTPUT«1, 0.5, <1/3>, 0.25, 0.2␤»
18:48 PacoAir left 18:51 PacoAir joined
colomon ah 18:51
moritz rakudo doesn't auto-type stuff inside <...> yet 18:52
masak rn: say (1, { 1 / ((1 / $_) + 1) } ... 1/5)».perl.join(', ') 18:53
p6eval rakudo ce1827: OUTPUT«1, 0.5, 1/3, 0.25, 0.2␤»
..niecza v24-28-g2a7e0fd: OUTPUT«1, 0.5, <1/3>, 0.25, 0.2␤»
18:55 uvtc joined, Moukeddar joined, ObseLeTe joined 18:56 gdey joined, Moukeddar left
grondilu reads rosettacode.org/wiki/Category:Perl_6 18:57
nope, sorry
grondilu was actualy talking about rosettacode.org/wiki/Include_a_file#Perl_6
is "macro include(AST $file) { slurp $file.eval }" really correct? 18:58
moritz no
grondilu would have written: macro include(AST $file) { slurp($file).eval }
moritz at least I think not 18:59
after all $file is an AST
that example treats it as a string (file name)
grondilu then macro include(AST $file) { $file.slurp.eval }
?
uvtc Re. the start-up time issue, I think the need for fast start-up time is lessened by having a good repl. With Perl 5, new users would edit/run edit/run edit/run their script as they go. And a long start-up time would be a pain. But I can see using a P6 repl to try more things out interactively, with new users needing to repeatedly run their script less often than with P5. 19:00
Er, hope that sentence made sence. 19:01
sense* 19:02
moritz it did
but in my experience, new users often have a hard time trying out one concept in isolation
colomon but I'd argue that's only a very small lessening in the need for a fast start-up time
not_gerd grondilu: `slurp $file.eval` looks right to me 19:03
$file is an AST containing, say, a string literal
calling eval gives you that string, calling slurp the file contents
assuming the return value of the macro gets inserted textually if it's a string, it should work as advertized 19:04
benabik Scala uses a lot of tricks to get around their startup time for scripts: fsc is a daemon that sits in the background waiting for compile requests. The REPL will start it if it's not there, and I think it shuts down after inactivity.
I suppose by "lots of", I mean "this one interesting one" 19:05
uvtc I think Clojure has something similar named "drip". (Have not tried it.) 19:06
masak not_gerd: also assuming that AST objects have an .eval that does the corresponding thing to Str.eval 19:08
not_gerd: which is a fair assumption. but not (yet) spec'd.
19:09 japhb_ joined
moritz but then it still returns whatever the .eval returns, not an AST 19:09
masak grondilu: in Rakudo, any macro that doesn't return a quasi is suspect and probably wrong.
moritz: oh, true.
moritz shouldn't it be something more like macro include($file) { quasi { {{{$file}}}.slurp.eval } } ? 19:10
masak tries to run that in his brain
the inclusion would happen at runtime.
19:10 denisboyun_ joined
masak which probably isn't what you want. 19:11
masak makes an attempt
macro include($file) { my $contents = $file.eval.slurp; quasi { eval $contents } }
note; two 'eval'. the first to eval the AST into a filename. the second to eval the included program. 19:12
also, the first happens at macro application. the second happens at runtime.
this also makes me wonder if we wouldn't like an "eval to AST" primitive.
I already knew that we will want the "eval from AST" primitive. 19:13
moritz I even see use case for 3 stages
timotimo may i ask what, approximately, i have missed in the last ~4 days? 19:14
moritz text -> ast -> code -> result
not_gerd masak: I assumed that returning $str from a macro would insert $str.to-ast
masak not_gerd: no, it's dirtier than that.
not_gerd: it inserts the *text* into the program, and parses it in context.
uvtc masak: were you and alester working on an article/blog-post? I think it came up last week ... maybe I missed it?
masak uvtc: I was away last wekk. 19:15
moritz timotimo: nqp on jvm is bootstrapped. We've been discussing how to communicate Perl 6's production readiness to a broader audience
masak uvtc: during which alester once again reminded me that he has not forgotten me.
week*
uvtc Ah, ok, I didn't miss it then. Thanks.
timotimo moritz: a clue how far nqpjvm is from compiling a rakudo?
masak uvtc: I'm pretty busy with $work after being back. no time for Perl 6 until next week.
ggoebel_ jnthn: curious if you are running the jvm in client mode? faster startup and smaller memory footprint at the cost of less aggressive optimization 19:20
19:21 fhelmberger left 19:26 hash_table joined
diakopter ggoebel_: the java running on p6eval says "The default VM is client." 19:27
(and it's using default)
19:29 hash_table left 19:38 ObseLeTe left, Liz joined 19:39 Liz is now known as Guest4262 19:49 cognominal joined
lichtkind an alle die sich wunderten: ich meinte den traktor www.native-instruments.com/de/produ...tor-pro-2/ 19:49
19:49 benabik left
not_gerd wundert sich 19:50
masak :)
19:50 benabik joined
moritz nr: say ().pick.perl 19:50
p6eval niecza v24-28-g2a7e0fd: OUTPUT«Any␤»
..rakudo ce1827: OUTPUT«Nil␤»
moritz TimToady: under the new specs, what is the correct behavior?
masak did any of us ever draw the connection between generating uniformly random balanced-brackets strings, and uniformly random binary trees? en.wikipedia.org/wiki/Random_binary_tree 19:51
(yes, I'm thinking about balanced brackets again. it seems to be a recurring thing my brain does.)
19:52 gdey left
moritz S02 says: «There is a special value named Nil. It means "there is no value here". It is the undefined equivalent of the empty () list, except that the latter is defined and means "there are 0 arguments here".» 19:53
however there was a commit "Simplify Nil semantics; never means () now" (48958abed853ecc0e2632e6f77beaf855a4afd72)
moritz thoroughly confused
masak moritz: probably the S02 quote is fossilized. 19:54
moritz that's very unfortunate, because it seems to be the most intuitive explanation of what Nil is supposed to mean
masak yeah, I'm not sure what Nil means anymore either.
how does it differ, for example, from Mu? or Any? 19:55
how does it differ from Failure?
moritz and are there instances of Nil?
masak no, it's singletonness probably hasn't changed. 19:56
nr: say Nil.new === Nil.new
p6eval niecza v24-28-g2a7e0fd: OUTPUT«Unhandled exception: No value for parameter '$l' in 'infix:<===>'␤ at /home/p6eval/niecza/lib/CORE.setting line 0 (infix:<===> @ 1) ␤ at /tmp/mb26DdPwUv line 1 (mainline @ 5) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4274 (ANON @ 3) ␤ at /home/p6e…
..rakudo ce1827: OUTPUT«True␤»
masak heh.
nr: say Nil.new === Nil
p6eval niecza v24-28-g2a7e0fd: OUTPUT«Unhandled exception: No value for parameter '$l' in 'infix:<===>'␤ at /home/p6eval/niecza/lib/CORE.setting line 0 (infix:<===> @ 1) ␤ at /tmp/2I8O4fzIGL line 1 (mainline @ 4) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4274 (ANON @ 3) ␤ at /home/p6e…
..rakudo ce1827: OUTPUT«True␤»
moritz it's Nil, there is no value here! 19:57
masak :P
moritz on some level that is so consequent it's admiriable
masak .oO( not even an empty list )
s/consequent/consistent/ # German false cognate? 19:58
moritz aye
grondilu wonders if degenerate behavior could not fill an entire synopsis.
masak Swedish also.
moritz also
masak :P
moritz C<Nil.Stringy> and C<Nil.Str> fail with a resumable warning
that returns a value of C<''> on resumption.
is that a warn() or a fail() ?
all warnings are resumable 19:59
but warnings aren't returned
benabik warn() ; return '' # ?
moritz benabik: then it could just say "warns and returns ''" :-) 20:00
masak masak's law of unintended consequences: For every DWIM you design into your language, there's at least one corresponding WAT. 20:01
moritz masak++ 20:02
masak the `perl -e 'print "Nancy" + 1'` on Twitter today made me think of this. 20:03
diakopter eval print "Nancy" + 1
20:04 gdey joined
masak ?eval "Nancy" + 1 20:04
moritz p5eval_: "Nancy" + 1
masak ENOBUUBOT
moritz p5eval_: eval "Nancy" + 1
20:04 gdey left
masak do it locally :) 20:04
benabik perl v5.12.4: OUTPUT«nan» 20:05
masak indeed.
which makes a sick, nauseating kind of sense, I guess. 20:06
moritz nr: say "Inf" - 1
p6eval rakudo ce1827, niecza v24-28-g2a7e0fd: OUTPUT«Inf␤»
moritz nr: say "Infamous" - 1
p6eval rakudo ce1827: OUTPUT«Cannot convert string to number: trailing characters after number in 'Inf⏏amous' (indicated by ⏏)␤ in method Numeric at src/gen/CORE.setting:10512␤ in sub infix:<-> at src/gen/CORE.setting:2842␤ in sub infix:<-> at src/gen/CORE.setting:2842␤ in block at /tmp/N…
..niecza v24-28-g2a7e0fd: OUTPUT«Unhandled exception: Cannot parse number: Infamous␤ at /home/p6eval/niecza/lib/CORE.setting line 1479 (die @ 5) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3595 (ANON @ 10) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3597 (NumSyntax.str2num @ 5) ␤…
masak \o/ 20:07
FROGGS nr: say "Inf1" - 1
p6eval niecza v24-28-g2a7e0fd: OUTPUT«Unhandled exception: Cannot parse number: Inf1␤ at /home/p6eval/niecza/lib/CORE.setting line 1479 (die @ 5) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3595 (ANON @ 10) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3597 (NumSyntax.str2num @ 5) ␤ at…
..rakudo ce1827: OUTPUT«Cannot convert string to number: trailing characters after number in 'Inf⏏1' (indicated by ⏏)␤ in method Numeric at src/gen/CORE.setting:10512␤ in sub infix:<-> at src/gen/CORE.setting:2842␤ in sub infix:<-> at src/gen/CORE.setting:2842␤ in block at /tmp/DnPWU…
FROGGS k
dalek kudo/new-nil: af2e7e1 | moritz++ | src/core/Nil.pm:
bring Nil more in line with newest spec
20:08
FROGGS jnthn: what I dont understand about NQPRegex(HOW), I can make an object, bin an AST to $!do using a helper method, and can then call method ALT_NFAS 20:10
jnthn: but where is the code which calculates the NFA? 20:11
jnthn FROGGS: In NFA.pm
FROGGS: Called by Cursor.pm 20:12
moritz supresses the urge to answer to www.perlmonks.org/?node_id=1021888 with "There is a well-known solution in Perl 6". 20:13
FROGGS moritz: explain the solution so they may can adopt it 20:15
20:15 gdey joined, not_gerd left 20:17 bluescreen100 joined
FROGGS jnthn: method !precompute_nfas()? 20:17
moritz I don't think "introduce signatures/parameter lists in perl 5; implement a concise syntax for it; wait 8 years until your employer uses a new enough Perl; then use it" is a helpful answer to anybody in the thread 20:18
FROGGS hehe, okay
jnthn FROGGS: That one triggers computing the at compile time so they get serialized, yes 20:19
masak moritz: the art of knowing when "solved in Perl 6!" will be exciting to people, and when it comes off as taunting :P
20:20 Guest4262 left 20:21 bluescreen10 left
moritz nr: say ({}()).perl 20:21
p6eval niecza v24-28-g2a7e0fd: OUTPUT«Unhandled exception: Unable to resolve method postcircumfix:<( )> in type Hash␤ at /tmp/julBQwbdvT line 1 (mainline @ 8) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4274 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4275 (module-CORE @ 58…
..rakudo ce1827: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'Hash'␤ in at src/gen/BOOTSTRAP.pm:895␤ in any at src/gen/BOOTSTRAP.pm:879␤ in block at /tmp/CfjZmFLGyQ:1␤␤»
moritz nr: say ({;}()).perl
p6eval rakudo ce1827, niecza v24-28-g2a7e0fd: OUTPUT«Nil␤»
moritz is the empty block still supposed to return Nil? 20:22
the spec patch only mentions that conditionals that don't execute any branches return ()
20:22 Liz_ joined
moritz nr: my $x = 0; say do { if $x { } }; 20:22
p6eval rakudo ce1827, niecza v24-28-g2a7e0fd: OUTPUT«Nil␤»
20:22 shinobicl joined
moritz for performance reasons, we should make () a singleton 20:23
at least for those empty branches codegen paths 20:24
Parcels are immutable, so that should be OK
nr: say () == ()
p6eval rakudo ce1827, niecza v24-28-g2a7e0fd: OUTPUT«True␤»
moritz nr: say () === ()
p6eval rakudo ce1827, niecza v24-28-g2a7e0fd: OUTPUT«False␤»
20:29 Liz_ left
masak nr: say (1) === (1) 20:29
p6eval rakudo ce1827, niecza v24-28-g2a7e0fd: OUTPUT«True␤»
masak oh wait
nr: say (1,) === (1,)
p6eval rakudo ce1827, niecza v24-28-g2a7e0fd: OUTPUT«False␤»
20:30 Liz_ joined
dalek p: 30d0f65 | (Arne Skjærholt)++ | src/6model/reprs/VMArray.c:
Implement at_pos_boxed in VMArray.
20:30
20:37 Gwyxx joined 20:38 Liz_ left 20:39 zby_home_ left
japhb_ TimToady, re: irclog.perlgeek.de/perl6/2013-03-05#i_6552216 could you explain in a little more detail, or patch github.com/perl6/perl6-most-wanted appropriately? 20:48
20:55 kaare__ left
shinobicl Hi. What kind of errors are catched at compile time. Can i deduce that from the message error? 20:56
jnthn Compile itme errors typically start with SORRY
shinobicl rakudo: Int $a = 'x';
p6eval rakudo ce1827: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/nfg7kRfMjC:1␤------> Int ⏏$a = 'x';␤ expecting any of:␤ postfix␤ infix or meta-infix␤ infix stopper␤ statement end␤ statement modifier␤ stateme…
jnthn Like that :) 20:57
shinobicl thanks :) 20:58
moritz or you can catch the execptions (in case of doubt with 'try eval "..."'), and see if they conform to X::Comp 21:02
r: try eval '1 1'; say $! ~~ X::Comp; # two terms in a row 21:03
p6eval rakudo ce1827: OUTPUT«True␤»
moritz r: try eval 'die "runtime"'; say $! ~~ X::Comp;
p6eval rakudo ce1827: OUTPUT«False␤»
moritz can't resist showing off
dalek ast: d869702 | (Solomon Foster)++ | S03-sequence/basic.t:
Fix tests to conform to current Rat.perl.
ast: dfcb7af | (Solomon Foster)++ | S05-metasyntax/litvar.t:
Fudge for niecza.
japhb_ moritz, you earned it. :-) 21:04
jnthn r: sub foo(Int $x) { }; foo('oops')
p6eval rakudo ce1827: OUTPUT«===SORRY!===␤CHECK FAILED:␤Calling 'foo' will never work with argument types (str) (lines 1, 1)␤ Expected: :(Int $x)␤»
jnthn can show off too :P
21:06 denisboyun__ joined
japhb_ r: ':16«f.8*:4[2]**:2<1*2**2>»/-:60[1,0]'.perl.say 21:06
p6eval rakudo ce1827: OUTPUT«":16«f.8*:4[2]**:2<1*2**2>»/-:60[1,0]"␤»
japhb_ r: ':16«f.8*:4[2]**:2<1*2**2>»/-:60[1,0]'.Numeric.perl.say
p6eval rakudo ce1827: OUTPUT«-62/15␤»
japhb_ Beat that. ;-)
21:06 denisboyun_ left
shinobicl what is X::Comp ? 21:07
moritz shinobicl: doc.perl6.org/type/X::Comp
pmichaud oooh, moritz++ achieves the coveted double-show-off :) 21:08
X::Comp *and* perl6doc
japhb_ pmichaud, and he's *also* showing off one of mine as well. :-) (Though that happens to be not one of the best examples of it.) 21:09
pmichaud japhb++
japhb_ doc.perl6.org/images/type-graph-Real.svg has got to still be my favorite 21:10
dalek c: 3118235 | moritz++ | lib/containers.pod:
documentation on containers, assignment and binding
21:11
japhb_
.oO( Whodathunkit? In between all the chatting, occasionally we produce some cool stuff. )
moritz a terrifying thought :-) 21:13
colomon is building Rakudo on his new machine... 21:17
21:18 takadonet left 21:19 clkao joined, skids joined
skids o/ what did I miss? rakudo/jvm yet? 21:19
pmichaud wonders if he should write "The Soul of a New Virtual Machine"....
uvtc japhb_: Hm. No "Complex" in that svg diagram. 21:20
japhb_ uvtc, that diagram is centered on Real 21:21
uvtc Oops. Right. Just realized that. :)
japhb_ You may be thinking of doc.perl6.org/images/type-graph-Numeric.svg
Which, come to think of it, is also a pretty good one. 21:22
pmichaud I like that one a bit better than the Real one :)
japhb_ Funny how I would optimize the SVG generator to work well for numeric types ... ;-)
21:28 cognominal left 21:29 PacoAir left
FROGGS jnthn: gist.github.com/FROGGS/5094474 21:32
nqp: gist.github.com/FROGGS/5094474 21:33
p6eval nqp: OUTPUT«[ 1, 0 ]␤»
FROGGS \o/
diakopter nqp-jvm: gist.github.com/FROGGS/5094474
p6eval nqp-jvm: OUTPUT«Lexical 'self' not found␤ in <anon>␤ in <anon>␤ in <anon>␤ in eval␤ in evalfiles␤ in command_eval␤ in command_line␤ in MAIN␤ in <anon>␤ in <anon>»
FROGGS nqp: gist.github.com/FROGGS/5094474
p6eval nqp: OUTPUT«[ 2, 0 ]␤»
jnthn :) 21:34
diakopter dunno what nqp-jvm is doing..
21:34 denisboyun__ left, cognominal joined
FROGGS jnthn: but local testing told me that it doesnt evaluate concats for example 21:35
if that true?
jnthn concat should work out fine
21:36 skids left
jnthn NFA handles them...if it didn't a lot wouldn't work ;) 21:36
Got an exaple where it doesn't so as you expect?
FROGGS jnthn: ya, concats are working !! 21:37
maybe the ast was buggy or something
jnthn
.oO( pain in the ast )
FROGGS nqp: gist.github.com/FROGGS/5094474
p6eval nqp: OUTPUT«[ 5, 3, 0 ]␤»
FROGGS jnthn: ohh yes
21:38 thou left
FROGGS jnthn: "I" still have to do the hard work after getting the fates, right? 21:38
jnthn FROGGS: yes 21:40
FROGGS k
jnthn FROGGS: Though if you know one of them is a literal then you can just go and pick it as a result right off
FROGGS damn, I almost wanted to surrender that today
jnthn it's only if it's a regex object that you're interpolating that you gotta really run it and check out the cursor that comes back 21:41
FROGGS ahh, of course, it has to match (sinced it matched already)
dalek ecza: 061b688 | (Solomon Foster)++ | test.pl:
Fix tests to match current (std).
jnthn FROGGS: Well, you may well now be third most knowledgable person in the world on Rakudo's NFAs ;)
FROGGS *g* 21:42
pmichaud guesses he is the second. :)
jnthn pmichaud: I like to think you're the first given you designed the thing :P
pmichaud is feeling the effects of perl6 tuit depravation.
er, deprivation
diakopter ha!
pmichaud something like that. 21:43
jnthn the *worst* thing about it all is that I spent, like, a few weeks looking at those things almost every day whlie doing the work to get NQP and Rakudo's grammar parsing using the LTM.
diakopter that made my day
jnthn by the end, I could read the NFAs by looking at the sequence of numbers they serialized too
pmichaud :)
...and that's a bad thing? ;) 21:44
jnthn Worse, I started walking around town, seeing phone nmbers on buildings, and reading *those* as NFAs...
pmichaud oooh, that could be a Bad Thing.
colomon 's new Linux box now has working Rakudo and Niecza installs
pmichaud OTOH, we now have a secret encryption code.
colomon: faster? better?
diakopter colomon: is the fan loud?
pmichaud colomon: louder? :-)
colomon the fan is incredibly loud at startup
jnthn Yeah, then I got Rakudo/NQP to work nicely with them and didn't look too much until I had to port the NFA runner to the JVM :) 21:45
colomon pmichaud: in this case, "better" would simply mean "does not shut down under a moderately heavy load".
but it's got 32 gigs memory, which is 4x more than I've ever had on a machine before.
japhb_ colomon, thankfully super-quiet fans are often a cheap swap, assuming you have an open enough case and large enough fan holes. 21:46
colomon japhb_: it's just at startup, it gets quiet in about two seconds.
japhb_ nod
colomon and it will live in the basement once I've got everything I need installed on it.
japhb_ heh
FROGGS jnthn: I know what you mean, I sometimes have these "visual experiences" when walking outside in rl 21:47
colomon I'm actually installing stuff using a SSH shell from my MBP anyway. :)
FROGGS not NFA sequences though
japhb_
.oO( Yes, I have noise-dampening insulation for my computer. It's called "Two floors, three doors and a half a foot of fiberglass insulation and sheetrock between us."
21:47 benabik left
masak jnthn: I once got so into an abstract board game that when I closed my eyes, I saw the board. when I crossed the street, I saw the board. when I watched football, I saw the board. 21:48
FROGGS It's is like "ohh, there might be treasure" when walking through a park, after playing diable II too long 21:49
*diablo
masak yeah.
FROGGS *g*
japhb_
.oO( My brain is my ARG. )
jnthn masak: Did you get board of that after a while? 21:50
FROGGS remembers that quake video .oO( I've got no feet, I've got no feet! )
haha
jnthn++
can you board that to jvm too? 21:51
masak jnthn: no. it's still my favorite game :)
jnthn: the "minimax principle" is still one of the most beautiful, zen pieces of strategy I know of.
it goes something like "if you attack as strongly as possible, you lose. if you attack as weakly as possible (but no weaker), you may win." 21:52
21:54 benabik joined
FROGGS gnight fellows 21:57
21:57 FROGGS left 21:58 bluescreen__ joined 21:59 bluescreen100 left
colomon right, panda broken 22:02
22:03 lustlife left 22:04 Chillance left 22:06 shinobicl left 22:07 spider-mario left
colomon has anyone made progress figuring out the panda bug? 22:07
benabik Not enough bamboo? 22:08
22:10 SmokeMachine left 22:11 bluescreen100 joined
TimToady arguably ().roll should be Nil, but ().pick is more problematic, since pick has semantics that terminate when you run out of values, so this could just be a degenerate case of asking for 1 when there are only 0 elements 22:14
22:14 donaldh joined, bluescreen__ left
benabik r: (1,2,3).pick(4) 22:15
TimToady however, returning () is probably okay for that, since if you actually try to use it for a real value, you'll end up with Nil anyway
p6eval rakudo ce1827: ( no output )
benabik r: say (1,2,3).pick(4)
p6eval rakudo ce1827: OUTPUT«2 3 1␤»
TimToady yeah, that
or we could special case .pick to be more magical than .pick(1)
if .pick just calls .roll instead, for instance, then it would automatically produce a Nil 22:16
doesn't matter much one way or the other
as for what distinguished Nil from, say, Mu...well, $x ~~ Mu is always true, and $x ~~ Nil is always false
Nil is closer to a bottom type than a top type 22:17
*guishes
masak makes sense.
japhb_ TimToady, I assume you except Mu and Nil themselves from those smartmatches? 22:18
TimToady Nil is specially excepted like Match, True, and False 22:19
Mu just naturally matches anything
and a few things that aren't Any too :)
std: 42 ~~ Nil
p6eval std 692eb4f: OUTPUT«Potential difficulties:␤ Smartmatch against Nil always fails; perhaps you should use * === Nil or :!defined instead at /tmp/bHhspVEVOF line 1:␤------> 42 ~~⏏ Nil␤ok 00:00 42m␤»
japhb_ std: Mu ~~ Nil 22:20
p6eval std 692eb4f: OUTPUT«Potential difficulties:␤ Smartmatch against Nil always fails; perhaps you should use * === Nil or :!defined instead at /tmp/THaDNnRzvI line 1:␤------> Mu ~~⏏ Nil␤ok 00:00 42m␤»
japhb_ std: Nil ~~ Mu
p6eval std 692eb4f: OUTPUT«ok 00:00 42m␤»
japhb_ r: say so Nil ~~ Mu 22:21
TimToady smartmatch hasn't been symmetrical for years and years
p6eval rakudo ce1827: OUTPUT«True␤»
japhb_ r: say so Mu ~~ Nil
p6eval rakudo ce1827: OUTPUT«False␤»
uvtc asymart-match
japhb_ TimToady, I know. I was curious what STD had to say about that case.
TimToady r: say so Nil ~~ Nil
p6eval rakudo ce1827: OUTPUT«True␤»
TimToady that's a bu
*ug
(by new spec)
that's is, it only became a bug recently... 22:22
japhb_
.oO( Running out of bugs? I WILL MAKE MORE. )
benabik moritz++ fixed that particular one on new-nil branch. 22:23
diakopter nwc10: heh, new java release
22:25 uvtc left 22:38 toebu left
donaldh jnthn: in nqp-jvm are 4 protoregex tests expected to fail? 22:44
jnthn donaldh: No, but under what target? 22:45
selftest?
donaldh Yes
jnthn selftest was clean for me, last I knew
donaldh Okay, I'll debug. I'm on MacOS 22:46
jnthn how do they fail, ooc?
donaldh jnthn: not ok 3 - successful protoregex match 22:51
3,4,6,7
jnthn hm 22:53
I remember fixing that
donaldh $<symbols> appears to be an empty string 22:54
jnthn github.com/jnthn/nqp-jvm-prep/comm...85e1b4b88e
that was the commit that fixed it
It's possible something regressed since, but I'm surprised I didn't see it. 22:55
22:56 crab2313 left
donaldh ah, I'm based off ce3ee72 22:56
I thought I'd fetched the latest. My mistake.
22:58 cognominal left
jnthn Hm. Seems the whole evening disappeared prepping for tomorrow's teaching... 23:02
ah well...sleep time
'night o/
diakopter o/
23:03 cognominal joined 23:11 benabik left 23:12 donaldh left
masak 'night, #perl6 23:15
diakopter o/
23:27 skids joined 23:31 exodist_ left 23:33 bluescreen100 left 23:40 neilb_ left 23:46 Exodist joined