Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2013-11-27

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:05 aindilis joined #perl6
00:33 _ilbot joined #perl6
00:33 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:,  niecza:, std:, or /msg camelia perl6: ... | irclog: http://irc.perl6.org | UTF-8 is our friend!
00:38 roboticus joined #perl6
00:38 rurban1 joined #perl6
01:01 [Coke] I am finally free from work for a few days, have a few hours to kill... and have no desire to sixperl. :(
01:03 timotimo take all the time you need
01:04 diakopter [Coke]: sounds like your "list of things I could do" needs attention
01:24 felher joined #perl6
01:27 TimToady p: "=date col1 col2 col3" ~~ m:s/^ '=date' (\S+)+ % \s /; say @().join(':');
01:27 camelia rakudo-parrot e5fd34: OUTPUT«col1:col2:col3␤»
01:27 TimToady @() is slightly prettier thatn @$/
01:28 * japhb is looking at several different serialization/wire formats at the moment
01:28 TimToady p: "=date col1 col2 col3" ~~ m:s/^ '=date' (\S+)+ % \s /; say $/.join(':');
01:28 camelia rakudo-parrot e5fd34: OUTPUT«=date col1 col2 col3␤»
01:28 TimToady arguably .join should prefer the list nature of $/
01:28 japhb Is there any value in carving out a top-level namespace for data formats?
01:29 japhb Just to make them easy for users to find, I mean.
01:29 japhb I suppose we'd need one for protocols as well, though Net:: worked decently for that in the early Perl 5 days.
01:30 japhb Data:: ?
01:30 TimToady if it's critical for users to keep the identities straight, it would seem reasonable to give them names that are guaranteed unique *somewhere*
01:31 TimToady Data seems a bit general as a term, and not very "meta"
01:31 TimToady Haskell usage of the term notwithstanding :)
01:32 japhb Yeah, and it does get used elsewhere for similar purposes, but I agree it's a bit weak
01:32 diakopter waa
01:32 fridim__ joined #perl6
01:33 TimToady "data format" is not much of an improvement though in specificity...
01:33 japhb Format:: would probably make people think of text or visual formatting
01:34 japhb (or e.g. Format::Time:: , which is just the wrong direction)
01:34 diakopter use formats;
01:34 TimToady and "form" is like what you fill in
01:35 TimToady and "serial" implies that you're serializing it
01:35 japhb Well, often you are serializing to/from it.
01:35 japhb .oO( Wire:: )
01:36 TimToady obviously the right thing is to use the URL of the definitional specification for the format :)
01:38 xenoterracide joined #perl6
01:38 japhb *bill-the-cat-akpth*
01:39 TimToady O_o
01:43 diakopter eek-the-cat
01:48 colomon o/
01:52 lue japhb: how's about DataSpec or something? [ thinking of the phrase "data storage specification", which a lot of data formats tend to be :) ]
01:53 TimToady ⊙⨀
01:54 TimToady 🔵🔵
01:54 lue .u 🔵🔵
01:54 lue r: say "🔵🔵".names # :)
01:54 camelia rakudo-jvm e5fd34: OUTPUT«No such method 'names' for invocant of type 'Str'␤  in block  at /tmp/gxs19LSBT8:1␤  in any eval at gen/jvm/stage2/NQPHLL.nqp:1086␤  in any evalfiles at gen/jvm/stage2/NQPHLL.nqp:1292␤  in any command_eval at gen/jvm/stage2/NQPHLL.nqp:1196␤  in an…»
01:54 camelia ..rakudo-parrot e5fd34: OUTPUT«No such method 'names' for invocant of type 'Str'␤  in block  at /tmp/99rLfEun4P:1␤  in any  at /tmp/99rLfEun4P:1␤  in any  at gen/parrot/stage2/NQPHLL.nqp:1146␤  in any eval at gen/parrot/stage2/NQPHLL.nqp:1133␤  in any evalfiles at gen/parrot…»
01:57 TimToady ⧁⧀
02:03 TimToady ⊙⨀
02:03 TimToady ⧁°⧀
02:06 TimToady hmm, shoulda used a non-breaking space for the logfile, which removes initial spaces
02:13 japhb Exchange::   # Sigh
02:17 japhb RW::
02:18 japhb Binary::
02:18 japhb (Of course, that leaves out all the text data formats, for which Text:: is misleading.  Plus, Binary:: is misleading by itself.)
02:19 TimToady .oO(Doormats)
02:20 TimToady Coding
02:20 TimToady Code
02:20 japhb Encoding?
02:21 TimToady Code::YAML2
02:21 japhb Encoding::BSON, Encoding::MessagePack, Encoding::ProtocolBuffers (or Encoding::PB), Encoding::BERT, ....
02:21 japhb Code:: feels like source code manipulation or cryptography
02:22 TimToady Coding saves 2 lettres
02:22 TimToady and En is only one direction :)
02:22 japhb Not enough win for the confusion
02:22 japhb Codec::
02:22 TimToady Encoding means "Unicode" to a lot of folks
02:23 japhb Although more often used for audio and video
02:23 TimToady Deco :)
02:23 japhb Although I kinda like the symmetry of using Codec:: for any arbitrary data format
02:23 TimToady Patois
02:23 TimToady Lingo
02:24 japhb Heh
02:24 TimToady Pidgin
02:25 TimToady boy belong dog
02:25 japhb .oO( Net::RPC::Thrift using Codec::Thrift )
02:25 japhb .oO( Net::RPC::Thrift using Lingo::Thrift )
02:25 TimToady anyway, the idea is some kind of language shared by different cultures
02:26 japhb Yeah, I see that
02:26 TimToady then there's all the bridge metaphors...
02:27 TimToady connections...
02:27 TimToady not to mention Net(work)
02:27 raiph joined #perl6
02:27 japhb Seems best to limit Net:: to actual networking protocols
02:28 TimToady define "network"
02:28 * TimToady notes the stack doesn't stop at any particular level
02:29 mattp_ joined #perl6
02:30 TimToady Layer::ProtocolBuffers
02:33 TimToady Via::ProtocolBuffers
02:37 raiph use std::XXX # XXX is normalized version of the title of a standard's wikipedia page
02:39 Bill__ joined #perl6
02:40 japhb_ Hmmm, Layer:: and Via:: are interesting, though the latter feels like it belongs inside another namespace defining a higher-level protocol
02:41 japhb_ raiph: use IETF::RFC1149;
02:45 japhb_ So far, Data::, Encoding::, Codec::, Lingo::, Layer:: have passed my initial sniff test
02:46 japhb_ None is ideal, mind you.
02:46 * TimToady doesn't like the cultural overloading of the first three
02:46 japhb_ My favorite is probably Lingo::, I'm just not entirely sure why.
02:46 perigrin Viva::Le::ProtocolBuffers!
02:47 perigrin japhb_: it reminds you that you're just a small turtle being told where to go?
02:47 japhb_ obBikeShed::
02:47 perigrin oh wait no that's logo.
02:47 japhb_ .oO( Logo::WithSwooshAndBall )
02:48 japhb_ .oO( A thousand junior graphic designers suddenly cried out and were silenced )
02:49 * TimToady is not sure whether japhb_ is more disturbed or disturbing...
02:49 japhb_ heh
02:50 perigrin TimToady: those are in any way exclusive?
02:50 dalek ecosystem: 5f98d12 | colomon++ | META.list:
02:50 dalek ecosystem: Update META.list
02:50 dalek ecosystem:
02:50 dalek ecosystem: Add Math::ChebyshevPolynomial.
02:50 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/5f98d1295a
02:51 japhb_ perigrin: It's a matter of degree, you see.
02:51 colomon joined #perl6
02:51 benabik joined #perl6
02:52 TimToady in fact, asking which one is more implies some amount of overlap
02:54 * japhb_ wonders if Lingo:: is overbroad, despite really starting to like it
02:55 japhb_ I especially like that it is short and implies that data formats are just another form of language.
02:55 japhb_ (As TimToady++ sorta said earlier)
02:56 ingy is Ingy:: taken?
02:57 japhb_ Ingy, I think you've earned your own namespace.  ;-)
02:58 raiph I liked Format:: -- is anyone really going to be confused (that it's about p5 formats) for more than a second?
02:58 japhb_ :auth<ingy:...>
02:58 ingy I hereby offer it to the highest bidder at the next Perl6 auction
02:59 japhb_ raiph: No, but they might be confused by Format::DateTime or Format::Currency or suchlike
02:59 ingy I actually own perl5i.org and tried to auction it at oscon, but nobody took it
02:59 ingy or maybe it was perlster.org
02:59 btyler joined #perl6
03:00 ingy anyone want perl11.org
03:00 ingy or pyrl.org?
03:00 japhb_ ingy, DNS auctioneer ...
03:00 ingy jujudot.com
03:00 ingy bpan.org
03:00 ingy I think I have about 60
03:00 ingy it's a sickness
03:00 japhb_ Sheesh
03:01 ingy I even have döt.net
03:01 ingy and ingydotnet.{com,net,org}
03:02 ingy :{
03:02 japhb_ .oO( Domain Hoarders Anonymous )
03:02 ingy dha++
03:05 japhb_ raiph: Of course, perhaps we say that my examples above belong in Text:: or Text::Format:: instead
03:06 japhb_ But if we want people to think in terms of languages, maybe everything that has a grammar and/or can be parsed is a Lingo
03:06 japhb_ The line blurs with traditional Net:: spaces
03:07 japhb_ Lingo::SSH2
03:07 japhb_ ... and that brings me back to overbroad
03:07 lue japhb_: I kinda like Lingo:: . But if nothing works, you could always just make up a word :)
03:07 japhb_ ... but culture defines the word
03:08 japhb_ Zlort::
03:08 japhb_ Enthalpy:
03:09 lue .oO(STRUctured Data Organizational Format → STRUDOF:: :D)
03:09 raiph presumably the key characteristic is lack of ambiguity of where things go
03:09 raiph as far as possible
03:10 raiph hmm. i retract that.
03:12 * japhb_ wonders if Lingo:: falls prey to YTICN
03:13 japhb_ Will people be confused by Lingo:: versus slang?
03:13 diakopter In the face of expansive proliferation, names shouldn't be descriptive, but instead otherwise memorable
03:14 japhb_ diakopter: [zoom in]
03:14 diakopter *prospective expansive proliferation
03:14 raiph does anyone see merit in a std:: namespace?
03:14 japhb_ PEP, for short
03:14 diakopter japhb_: P, for short
03:15 lue raiph: that feels very risky for Perl 6 —
03:15 japhb_ std:: feels ... C++
03:15 lue std: say "hi"
03:15 camelia std 3b262af: OUTPUT«ok 00:01 122m␤»
03:15 japhb_ diakopter: Dang, Python joke fell flat
03:15 diakopter since when did Ranch+mayo taste so good?
03:15 diakopter oh yeah, since I haven't eaten all day.
03:15 japhb_ Heh
03:16 raiph or something like it (Standard:: etc.)
03:17 japhb_ raiph: My feeling is that it's on the rare side for people to thing about something in terms of the name of the standard (Ecmascript, anyone?), and then there's the question of how we encode standard release version implementation version
03:18 lue .oO(BIT Stream Interpretation Scheme -> BITSIS:: ; Agreed-upon Structure Manipulator -> ASM or AUSM::)
03:18 japhb_ Handshake
03:18 perigrin ingy: OSCON really seems like the wrong place to auction a perl5i.org domain ...
03:19 japhb_ Treaty
03:19 raiph lue: that's why i suggested canonicalizing via wikipedia
03:19 lue raiph: I don't see what that has to do with figuring out a top-level namespace.
03:19 japhb_ wikipedia is mutable in a way I think we don't want.
03:19 japhb_ And what lue said, of course.
03:19 raiph japhb_: not in practice
03:20 raiph lue: i thought you were raising the issue that it wouldn't be obvious what to call standards
03:20 japhb_ raiph: It only takes one article name change to open that can of worms
03:21 perigrin see also the recent edit wars on the article about Cans of Worms.
03:21 japhb_ :-D
03:21 lue raiph: No. I'm scratching for a TLN :)
03:22 lue STNDRD:: and FileSpec:: also come to mind.
03:25 lue .oO(I can't be the only one who really dislikes the look of BNF)
03:26 japhb_ lue: Yeah, I never liked classic BNF
03:26 raiph japhb_: I don't (yet) agree about the impact of a name change.
03:26 japhb_ Bad application of waterbed complexity
03:27 japhb_ raiph: Noted.  :-)
03:27 raiph japhb_: anyhoo, if you don't see the merit of a standard namespace the canonicality of WP is moot
03:28 japhb_ raiph: I think part of the problem is that "standard" means a lot of different things, while pretending to be just one.
03:28 japhb_ Ooop, bus stop coming up.
03:28 lue japhb_: for context (:P), I'm having a really hard time convincing myself that it is possible to read the grammar in http://www.unicode.org/Public/UCD/latest/ucd/NamesList.html, purely because BNF looks awful.
03:43 diakopter lue: could it be simpler or something?
03:44 lue diakopter: I think it may be just that I prefer the Perl 6 way of defining a grammar :) Although that doesn't seem like the only reason...
03:45 lue My biggest issue seems to be that the <rule name> ::= stuff format doesn't feel right. Too... "line oriented" perhaps
03:46 lue (not helping is the fact that the particular use of BNF I'm looking at appears to be incomplete :/)
03:49 lue Perhaps it's the stuffy language used to describe BNF ("terminal" v. "nonterminal") and the typical stuffiness of surrounding texts. Or how it lends itself to being wall-of-text-ish. Again, hard to say, I just don't like it.
03:56 ingy perigrin: true. but I just remembered the actual domain. not perl5i.org…
03:56 ingy foocamp.com
03:57 ingy anyway, in 2009, ORA asked me to sell it to them
03:58 ingy I was like well sure, I've been trying to give it to you for 6 years
03:58 ingy I sold it for $75 and a foocamp ticket :)
03:58 ingy $75 was the current expenditure on the name
04:03 ingy japhb_: btw, what are you guys trying to decide on?
04:03 kaleem joined #perl6
04:03 ingy naming stuff is my favorite pasttime
04:04 ingy anyone else can answer for japhb_ :)
04:04 ingy he seems to have been busstopped
04:04 lue ingy: what top level namespace would be most appropriate for file-format-manipulating modules?
04:05 ingy example?
04:05 lue ingy: <japhb> Is there any value in carving out a top-level namespace for data formats?
04:06 ingy i see
04:06 lue I don't have specific formats at hand, but there are plenty of TLN:: suggestions above already :)
04:06 ingy pod2md, json2yaml, etc?
04:08 lue ingy: at least I was thinking of modules that focus on a particular format. So TLN::Netstring, TLN::HTML, TLN::GIF, so on.
04:08 lue [ no clue what japhb was thinking about :) ]
04:08 ingy :)
04:10 ingy I've always been of the opinion that namespacing should not be strictly (or even unstrictly) enforced. it is just one way of categorizing things.
04:11 ingy as the creator of too many p5 tln-s…
04:11 ingy a framework for instance, should almost always have a tln
04:11 ingy imho
04:12 ingy because you are planning for world domination
04:12 ingy it would be like calling perl6 Programming::Language::Perl::Version::Six
04:12 ingy or somesuch
04:13 ingy unfortunately other languages like python and ruby have no respect for namespacing
04:13 ingy and I think that's to their detriment
04:13 lue ingy: I'm thinking of the TLN not as something to be enforced, but as something module writers could use if they don't have a better place to put it under. It'd be nice to not suggest a terrible TLN.
04:14 ingy noted
04:14 lue (i.e. I'd prefer people to flock to FileSpec::MyFormat instead of, say Format::MyFormat or other terribly generic TLNs)
04:14 ingy It would be hard to imagine what TLN::HTML would do though
04:15 ingy I'd look for HTML::thinger
04:15 BenGoldberg Well, FileSpec::HTML would likely be a parser which checks if your html follows the spec ;)
04:15 lue Of course you should be a bit more specific: InetData::Netstring, Markup::HTML, and Image::GIF for my initial examples.
04:15 ingy *or*!!! I'd look for the intersection in the tag cloud of HTML and Thinger
04:16 ingy BenGoldberg: so would HTML::FileSpec :)
04:16 lue HTML::Tidy::NoNotThatOne
04:17 ingy in a sense A::B::C is 3 tags: A, B, C
04:18 ingy C::B::A is probably similar
04:18 * ingy ♥'s the symlink
04:19 lue ingy: all of a sudden I got the idea for alternate namespace syntax: anywhere you can do A::B, you could do B.A or similar :P. class foothing::perl6::org, or class org.perl6.foothing >:P
04:20 MikeFair joined #perl6
04:20 lue ingy: agreed, many problems would be easier if we didn't have to consider Certain Operating Systems™ that don't posess symlinks :)
04:20 lue *sses rather
04:20 ingy lue: RSN!
04:20 ingy one can hope anyway
04:21 lue Reverse... Something Names?
04:21 ingy Real Soon Now
04:21 ingy M$ WILL DIE!
04:22 ingy one would think that OS has outlived its niche
04:22 ingy sorry diakopter
04:22 ingy sorry jnthn
04:22 ingy shit, I'm in the wrong place to show that sentiment
04:23 lue .oO(Transforming a BNF grammar, that which does not posses quantifiers, to Perl 6, which does, is interesting.)
04:23 ingy I ♥♥♥ Windows. MMMMMM. SOOOO GOOOD!
04:23 lue ingy: Windows need not die. Just accept the awesome magic of ln -s :)
04:24 ingy BNF has no quantifiers?
04:24 lue ingy: nope. Well, not formally, but people who write out BNF syntax do tend to use them.
04:24 ingy btw, wtf are windows shortcuts anyway
04:25 lue See http://www.unicode.org/Public/UCD/latest/ucd/NamesList.html . The first BNF rule (named NAMELIST) uses the * quantifier, but just below that you'll see recursive rule calling in place of quantifiers
04:26 ingy lue: Markup::{Pod,Markdown} Data::{YAML,JSON}
04:26 ingy I would use those TLNs
04:26 ingy I hope P6 is not first squat, first p0wn on the naming
04:27 lue ingy: I feel some would object to Data::, but I do lean towards specialized-er TLNs anyway.
04:27 diakopter ingy: windows shortcuts are like old mac aliases
04:27 ingy diakopter: expound
04:27 lue I get the sense that the One True Rule at this stage is to avoid the really generic terms for TLNs as much as possible.
04:28 diakopter windows shortcuts are simply single-line scripts
04:28 lue .oO( Module:: )
04:28 diakopter shell scripts
04:28 ingy huh
04:28 ingy interesting
04:28 diakopter typically simply paths to other executables
04:29 raydiak diakopter: are you sure?  all my .lnk files are binary gibberish
04:29 * lue kinda wants to see ACME:: -> Ofun:: for Perl 6, because that would be more, well, -Ofun :)
04:29 ingy instead of symlinks, let's use something that can embed a virus
04:29 diakopter raydiak: yes... I didn't say it was human readable... .lnk files have their own editor
04:29 ingy Ofun::++
04:30 raydiak hmmm...so if I paste the contents into a command prompt, it'll run?
04:30 diakopter raydiak: my point was it has the same functionality as a single-line shell script. but it can do other things like control aspects of the terminal
04:30 diakopter raydiak: what?
04:30 raydiak ah, I see...I misunderstood your point.  my bad :)
04:31 diakopter I guess
04:32 raydiak diakopter: was just thinking if they in fact were single-line shell scripts, then you should be able to paste the contents into a shell and execute it, but I see that wasn't quite what you meant
04:32 diakopter yes, you can paste its contents, if you copy the contents from an editor that can read it.\
04:33 raydiak just used type on the command line (windows version of cat)
04:33 ingy I had a brilliant idea this morning…
04:33 ingy Long running computer jokes need test suites to ensure they remain funny
04:34 ingy because when computing is no longer funny, we all lose
04:34 ingy Tfun::
04:34 ingy maybe
04:34 diakopter raydiak: I'm having trouble discerning your intent
04:35 ingy diakopter: I think raydiak didn't understand you and now she does
04:36 raydiak diakopter: I was just exploring your assertion that "windows shortcuts are simply single-line scripts".  it wasn't congruent with my understanding, and I was checking to see if there was something more I could learn, is all.
04:37 diakopter sorry, I was assuming you'd seen the .lnk editor before
04:38 raydiak unless you mean the properties dialog, nope
04:38 * ingy soaks in the awkwardness :D
04:38 diakopter yes, the properties dialog is what I meant
04:38 bonsaikitten ingy: just don't run your tests in germany ;)
04:38 * ingy needs some sour cream and onion corn puffs
04:39 diakopter I can't possibly imagine what else I could have meant
04:39 diakopter <- now needs to learn something
04:39 ingy bonsaikitten: every test repo would (obviously) have a German branch
04:40 ingy /nick bonsaingy
04:40 ingy hrmm, nah
04:41 lue diakopter: to be fair, "Link Editor" make me think of some small program called LINKEDIT.EXE :)
04:42 diakopter if anything that makes it less fair
04:43 raydiak I am not sure what is unfair or awkward here, but I apoligize for the interruption.  I seem to have had a (very unintended) chaotic effect on conversation in this instance.
04:43 ingy raydiak: *hugs*
04:44 diakopter no need to apologize, I was being touchy and troll-paranoid/overreactive; I'm sorry
04:45 diakopter not to mention pedantic.
04:45 ingy see we even scared off colomon :(
04:45 raydiak it's all good :)  I know I'm new around here, and expect people to be taken a little aback when I jump into their conversations
04:46 diakopter ingy: colomon usually signs off at night :P
04:47 * ingy shuts tfu and writes some code :)
04:50 * diakopter shuts tfu and writes some business plan
04:53 * raydiak shuts tfu and makes some pictures of shiny spheres
04:58 billy__ joined #perl6
04:58 billy__ hey everyone
04:58 billy__ i'm new to perl, perl6, and irc in general
04:58 TimToady howdy
04:59 preflex_ joined #perl6
04:59 Entonian joined #perl6
05:00 TimToady this is probably the quietest time in the 24-hour cycle, since most of our .eu folk are asleep
05:00 diakopter vicious felonies are members of an elite squad
05:00 billy__ left #perl6
05:01 diakopter er
05:04 TimToady planning to become elite?
05:05 diakopter no i was quoting the law and order voiceover intro, wrong window, never mind
05:05 TimToady whew! :)
05:05 berekuk joined #perl6
05:29 xenoterracide joined #perl6
05:34 lue .oO[ converting that BNF grammar, I've for the first time felt that 'emacs pinky' issue. I need to stop soon :) ]
05:36 lue (although it's only because I like the ALL_CAPS look of the original grammar's rule names, and I staunchly refuse to use caps lock :P)
05:41 SamuraiJack_ joined #perl6
05:44 dwoldrich joined #perl6
06:14 zamolxes joined #perl6
06:16 Tene joined #perl6
06:21 raydiak can anyone tell me what the state of garbage collection is in rakudo, and if there's anything I can do in my code to help it along?
06:23 FROGGS[mobile] joined #perl6
06:36 xinming joined #perl6
06:38 rurban1 joined #perl6
06:40 rurban2 joined #perl6
06:40 MikeFair joined #perl6
06:57 moritz raydiak: allocate fewer objects :-)
07:00 raydiak moritz: thanks :) ...but everything is an object :P
07:02 xinming joined #perl6
07:18 raydiak iow, from my testing, even a simple "my $foo = []" in a loop will eventually run out of memory.  is there nothing I can do about it?  I've been trying to roll with the punches, but this may be a fatal blow to my current project for the time being.
07:33 SamuraiJack_ joined #perl6
07:43 kaleem joined #perl6
07:48 FROGGS joined #perl6
07:50 FROGGS a very nice morning to you all O/
07:51 FROGGS err, o/
07:51 raydiak good morning \o
07:52 denisboyun joined #perl6
07:52 FROGGS hi raydiak
07:52 xinming joined #perl6
07:52 raydiak hello
07:53 ssutch joined #perl6
07:59 moritz raydiak: well, that's a bug, and the best thing you can do is write a bug report
08:01 raydiak moritz: thanks, will do.  so no way to manually release an object?
08:02 xinming joined #perl6
08:02 jnthn morning o/
08:02 FROGGS hi jnthn
08:02 raydiak g'morning
08:04 moritz raydiak: you can try with $foo = Any  at the end of the loop
08:04 moritz raydiak: no idea if it'll do any good
08:06 zakharyas joined #perl6
08:06 raydiak moritz: thanks, giving it a shot.  failing that, I suppose I can just write a wrapper script that calls the real one repeatedly for smaller portions of the dataset and assembles the files at the end
08:07 xinming joined #perl6
08:07 raydiak moritz: nope, no luck.  but thanks for the help in either case :)
08:07 FROGGS raydiak: maybe you could use map() to transform the list?
08:08 FROGGS (sorry if that doesn't fit, I don't know your problem)
08:10 raydiak I appreciate it, but that was just an example, the real app is far more complex...doing lots of vector math in nested loops and writing the results out to a file as it goes, but it doesn't seem to release memory, usage just balloons until it's done or it crashes OOM
08:13 jnthn A my $x = [] in a loop can indeed swallow lots of memory if not in sink context...
08:14 jnthn 'cus then for works like a map...
08:14 jnthn You can tell if it's that by shoving Nil; at the end of the loop
08:14 jnthn And yes, this will be fixec
08:15 raydiak jnthn: thanks!  trying that out...
08:15 kurahaupo joined #perl6
08:16 raydiak jnthn: curious: how does putting Nil at the end of the loop change the context of a "my" somewhere else in the loop?
08:17 FROGGS raydiak: the last thing in the loop will be returned, like in map
08:17 jnthn raydiak: Oh, I assumed that the my was the only thing in there... :)
08:17 jnthn raydiak: And you had reduced the problem to that.
08:17 FROGGS so in order to return something, it must keep it
08:17 moritz r: my @x = do for ^10 { $_ ** 2 }; say @x.perl
08:17 camelia rakudo-parrot e5fd34, rakudo-jvm e5fd34: OUTPUT«Array.new(0, 1, 4, 9, 16, 25, 36, 49, 64, 81)␤»
08:17 raydiak okay, I get it...thanks guys
08:18 raydiak the Nil didn't fix it
08:19 FROGGS I think we could help better if you had a "working" snippet to show
08:20 raydiak I have a working test.  The "real" code is hundreds of lines and a dozen or two files.
08:21 raydiak (so I don't know which part I would even show you)
08:23 raydiak my test: http://pastebin.com/3tAjCSPr (sorry for the trailing whitespace, I get lazy after midnight)
08:26 moritz oh yes, that leaks like hell
08:26 djanatyn joined #perl6
08:27 moritz doesn't leak on perl6-j
08:27 moritz raydiak: so if that's an option for you, try the JVM backend
08:27 FROGGS it it the qqx?
08:27 FROGGS is it*
08:27 moritz no
08:28 moritz if I remove the my $a = []; $a = Any;  it stops leaking so badly
08:28 raydiak that's the part that I'm testing though...creating objects in a loop
08:28 FROGGS what about 'my $a = Any'?
08:28 FROGGS or just the = []
08:29 moritz FROGGS: my $a = Any doesn't leak
08:29 FROGGS so it is the list...
08:30 moritz FROGGS: just  my $a = [];  leaks
08:30 FROGGS k
08:30 * FROGGS heats up valgrind
08:30 moritz [];  also leaks
08:30 kurahaupo left #perl6
08:31 raydiak {} leaks a lot less, but more than none
08:34 moritz raydiak: I've submitted a bug report for you
08:35 raydiak moritz: thanks, I'll discard the one I was writing.  I always agonize over the verbiage
08:39 dmol joined #perl6
08:40 moritz raydiak: https://rt.perl.org/Public/Bug/Display.html?id=120638
08:41 moritz pratise helps a lot :-)
08:42 nnunley joined #perl6
08:42 raydiak wow, the leaks are HUGE for you...mine only jumps a few dozen megs per line
08:46 FROGGS ==6371== 1,115,200,000 bytes in 1,394 blocks are still reachable in loss record 2,271 of 2,271
08:46 FROGGS ==6371==    by 0x9212F4A: Parrot_QRPA_set_integer_native (qrpa.c:827)
08:48 FROGGS that is a lot IMO: 1,115,200,000 bytes
08:50 moritz oh, and it doesn't even say "from malloc" or so \o/
08:51 FROGGS it does
08:51 FROGGS just reduced the output
08:52 FROGGS these go in between:
08:52 FROGGS ==6371==    at 0x4C2A2DB: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
08:52 FROGGS ==6371==    by 0x4EBD66B: gc_gms_allocate_memory_chunk (gc_gms.c:1947)
08:52 moritz ok
08:52 moritz who knows QRPA? :-)
08:58 raydiak are there any serious limitations in the JVM backend that I should know about before spending hours compiling it?
08:58 moritz raydiak: it doesn't have a native call interface, and thus no support for database connnectivity, for example
08:59 raydiak moritz: if I don't know precisely what that means, does it mean I don't need to worry about it?
08:59 moritz raydiak: if you don't use any external modules, no
08:59 FROGGS or C libraries
09:00 FROGGS JVM is better anyway if you have large datasets or longer running things
09:00 FROGGS expect if you do a lot of string split and concat, this is rather slow on jvm atm
09:01 raydiak nope, but heavy numeric ops, including trig functions, sqrt, etc
09:01 FROGGS that just do well on jvm
09:01 FROGGS s/just/should/
09:02 moritz qrpa.pmc
09:02 raydiak neat, maybe I can make more shinier spheres with this JVM magic you speak of
09:02 moritz slots = (slots)
09:02 moritz ? mem_gc_realloc_n_typed(INTERP, slots, ssize, PMC *)
09:02 moritz : mem_gc_allocate_n_typed(INTERP, ssize, PMC *);
09:02 moritz that's what seems to leak
09:03 moritz I wonder if auto_attrs and having a custom destroy vtable goes together well
09:05 FROGGS I added a debug statement to see if destroy is called at all
09:05 FROGGS I see calls to it when compiling nqp, but we'll see if my snippet shows calls to it too
09:19 FROGGS hmmm, destroy does not get called for: perl6-p -e 'for ^500 { my $a = []; 1 }'
09:19 FROGGS so, the gc does not collect it?
09:27 pjcj joined #perl6
09:38 dakkar joined #perl6
09:40 darutoko joined #perl6
09:46 timotimo o/
09:47 FROGGS hi timotimo
09:49 fhelmberger joined #perl6
09:51 hummeleB1 joined #perl6
09:54 timotimo wow, the gc not collecting qrpa is *bad*
09:54 REPLeffect joined #perl6
09:54 FROGGS it feels like as if that only happens in userland
09:55 timotimo weird.
09:55 * timotimo generates some pir
09:55 timotimo (well, gotta get rakudo-p built first
09:55 timotimo so ... will take a while)
09:55 FROGGS I added a debug stmt now to see if VMArray->destroy gets called
09:57 fhelmberger_ joined #perl6
09:57 timotimo raydiak: it's a good catch in any case! :)
09:57 timotimo thanks for the report
09:58 FROGGS yes, that needs fixing :o)
09:59 FROGGS I wanna have Perl 6 now at work :o(
09:59 FROGGS I wanna pass named args as :$folder, now!
10:00 timotimo :)
10:00 timotimo i feel you :(
10:02 FROGGS it doesn't call VMArray->destroy either,
10:06 masak good antenoon, #perl6
10:06 FROGGS hi masak
10:10 tadzik masak!
10:11 timotimo i've got an idea
10:11 timotimo when an empty qrpa is built
10:11 timotimo it doesn't seem to call PObj_custom_mark_destroy_SETALL(SELF)
10:11 timotimo it only does that as soon as it's resized once
10:11 timotimo could that be the cause of the problem?
10:11 * timotimo attempts a patch
10:12 timotimo er, i'm not sure how to give it a custom init method
10:13 FROGGS VTABLE void init() { ?
10:13 timotimo oh, just VTABLE ... yeah
10:13 FROGGS nqp/src/vm/parrot/pmc/nqplexinfo.pmc:31:    VTABLE void init() {
10:14 timotimo i looked at a different pmc and only saw VTABLE void init_int(int ...) { ... }
10:14 timotimo and i wasn't sure what that meant
10:14 FROGGS timotimo: btw, that Parrot_QRPA_set_integer_native is called
10:14 timotimo with what argument?
10:14 FROGGS no idea
10:15 timotimo it may return too early
10:15 timotimo if there's already enough slots in the array
10:15 FROGGS ahh, now I see it too!
10:15 FROGGS timotimo++
10:16 timotimo first thing in the morning: a GC bug (possibly) fixed.
10:16 timotimo what a nice start to a day :)
10:16 FROGGS that'd be cool, yes :o)
10:16 FROGGS though it is not what I would call "morning"
10:16 timotimo I haven't even had breakfast or read my RSS's yet, so it's morning for me :P
10:17 FROGGS I am awake for 4.6 hours now :/
10:18 timotimo i know, i'm a bloody student :|
10:19 masak I love the smell of a GC bug (possible) fixed in the morning.
10:19 masak possibly*
10:20 REPLeffect joined #perl6
10:23 * moritz harvests some web spammer's IP addresses, and wonders if there's any use in contacting the abuse address of their providers
10:23 timotimo perl6-p -e 'loop { my @a = []; Nil }'  -  this still grows about 1 MB/s
10:23 timotimo but it shouldn't grow at all, right?
10:24 FROGGS maybe it is producing a list of Nils?
10:25 timotimo but but but sink context?
10:25 FROGGS a meg per second is not what I see for the snippet I posted, that was about a gig within two seconds
10:25 masak hehe, Go has a web framework called "Gadget" :P
10:25 timotimo well, the process starts out at about 4gb
10:25 timotimo which is crazy to me
10:25 FROGGS go go!
10:25 FROGGS uhh
10:26 tadzik that's innovative naming for Golang's world
10:26 timotimo actually ... no, it starts at like 300 and then ridiculously fastly grows up to 4gb and then starts growing very slowly
10:26 tadzik a nice change from the beaten to death "Let's Go x" line
10:26 timotimo so i guess i didn't fix it.
10:27 FROGGS timotimo: no, that patch does not change anything, still in use at exit: 750M for: for ^500 { my $a = []; 1 }
10:27 timotimo right.
10:28 timotimo it would seem like the custom mark_destroy only needs to happen if there's anything at all in slots that points to other stuff
10:28 timotimo so perhaps it was entirely legit before.
10:30 timotimo so it would also be correct if it didn't call the custom destroy in that case.
10:30 timotimo it would *not*, however, be correct if it didn't free up the qrpa at all
10:30 timotimo but pm wrote this code, so i'm kind of doubting that he didn't know how to use the gc ...
10:49 moritz argument by authority is the weakest form of argument (according to Wikipedia)
10:50 timotimo well, i'm weak minded, so ... :)
10:51 * timotimo is trying to get fcitx set up so he can type unicode emoji comfortably and fails to understand how to work the thing
10:51 timotimo i have figured out the unicode input mode where i can just type the hex and get the character
10:51 timotimo except it doesn't seem to work in this terminal for some reason
11:14 timotimo fwiw, it also happens if the list has an item in it
11:37 cognominal joined #perl6
11:40 electricface joined #perl6
11:43 rindolf joined #perl6
11:46 colomon joined #perl6
12:08 kaare_ joined #perl6
12:09 fhelmberger joined #perl6
12:12 denisboyun joined #perl6
12:14 moritz http://mortoray.com/2013/11/27/the-string-type-is-broken/ somebody here wants grapheme-level strings
12:14 FROGGS +1
12:14 FROGGS :o)
12:15 tgt joined #perl6
12:16 FROGGS moritz: are you going to comment?
12:18 moritz nope
12:27 salv0 joined #perl6
12:37 aborazmeh joined #perl6
12:45 sivoais joined #perl6
13:00 pmichaud_ question on RT #120638 --- does for/sink context now properly throw away intermediate values?
13:00 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=120638
13:01 moritz pmichaud_: I don't know, but since the []; isn't part of the return value, that's not the problem in this context
13:02 pmichaud_ well, we still end up with a list of Nil's
13:02 moritz we might, that doesn't account for much
13:02 FROGGS pmichaud: \o/
13:02 moritz if I remove the []; I see just a few extra MB allocated once in a while
13:03 pmichaud agreed, that shouldn't make the difference
13:03 pmichaud I wonder if something is keeping closures alive somewhere
13:03 moritz that might be possible, yes
13:03 FROGGS I end up with more that 1GB for 500 iterations over { []; 1 }
13:03 moritz though the []; isn't even in a variable
13:04 moritz so nothing should close over it
13:04 pmichaud well, it'd at least be in a temporary register
13:04 pmichaud so as long as the closure is alive, the temporary is alive and it doesn't get gc'd
13:04 denis_boyun_ joined #perl6
13:05 pmichaud FROGGS -- that doesn't surprise me... Parrot's allocation model is not that great.
13:05 moritz on the upside, the jvm backend doesn't leak :-)
13:05 FROGGS well, it does a great job when allocating mem :o)
13:07 pmichaud see, for exmaple, https://github.com/parrot/parrot/issues/795   where a program that has only one live RPA causes an out of memory panic
13:08 pmichaud indeed, I wonder if 120638 is just a manifestation of #795
13:11 pmichaud Indeed, now that I think about it, I bet it is.
13:12 atroxaper joined #perl6
13:13 FROGGS :/
13:13 * pmichaud adds a note to the RT ticket
13:17 Guest48784 joined #perl6
13:19 timotimo hi pm :)
13:19 pmichaud hola, timotimo
13:19 pmichaud and good morning, #perl6
13:22 timotimo so, the bug has been around for 1 year, leto said the behavior is "not acceptable", but we didn't pour power into fixing it? :(
13:22 timotimo 8 months ago the pull request from rurban++ was opened and then not merged apparently
13:23 pmichaud I'm not sure that pull request actually fixed the underlying bug.
13:26 moritz fwiw I'm not sure if that pull request actually fixes it
13:27 moritz what it does is incorporating memory limits (ulimit) into calculation of available memory
13:27 timotimo ah, hm.
13:27 pmichaud is there a ulimit in place when running the code in 120638 ?
13:27 timotimo so is the calculation off, so that it tries to malloc, fails, then doesn't have enough memory to run the gc?
13:27 moritz pmichaud: I don't think I set one
13:28 pmichaud moritz: I'm a little surprised you ran out of memory then, unless there's no swap.
13:28 moritz pmichaud: I have disabled swap on most of my machines
13:28 pmichaud okay, that makes it much more likely.
13:29 moritz I find that when all memory is used up, something is usually very wrong, and then swapping just delays the OOM killer
13:29 pmichaud I wonder what Parrot is calculating as the memory limit, then.
13:30 nwc10 oooh, good UGT, pM
13:31 moritz iirc total memory * $constant_less_than_1
13:31 nwc10 er, Pm
13:31 nwc10 naughty fingers.
13:31 ggoebel110 joined #perl6
13:34 denis_boyun joined #perl6
13:41 ajr joined #perl6
13:49 rindolf joined #perl6
13:56 tgt joined #perl6
13:56 jnthn oh wow, a pmichaud!
13:56 pmichaud ...WHERE?
13:57 jnthn Darn, just a mirage!
13:57 jnthn :)
13:57 * jnthn waves from $teaching
13:57 * pmichaud waves from $Texas
13:58 FROGGS $!teaching, or is it public?
13:58 nwc10 bet it's not snowing in Texas
13:58 nwc10 (not that it's snowing here, today)
13:58 pmichaud currently -2degC now
13:58 timotimo pmichaud: would you be fine with having "is nodal" merged in rakudo separately from putting "is nodal" on the appropriate classes and methods?
13:58 jnthn Well, anybody coulda signed up if they were willing to pay... :P
13:58 nwc10 pmichaud: you what? It's probably warmer here
13:58 timotimo i feel the latter task is scaring me away from going ahead and re-basing the is nodal branch
13:59 pmichaud timotimo: I'm not familiar with "is nodal" at the moment, sorry.  Could just be that I haven't completely awoken yet.
13:59 pmichaud nwc10: yes, it's been coldish here.  We had ice and sleet earlier this week, but no snow yet this year.
13:59 timotimo ah. it's the unary hyperops thing that makes methods like .elems on lists-of-lists only run over the lists in the list instead of every element in the lists in the list
14:00 pmichaud actually, freezing temperatures in November have been somewhat rare here the past several years, so it's a nice change
14:01 jnthn it's freezing here but no snow :(
14:01 pmichaud timotimo: oh yes, I remember now, vaguely.  I don't have an immediate answer.  If you're asking if it's okay to do things in stages, I generally prefer that.
14:01 * masak is happy about the "no snow" part
14:01 timotimo doing it in stages would in this case mean pushing the first stage into rakudo-nom
14:02 pmichaud timotimo: I'm way out of date on the current codebase, so I'd defer to others opinions at the moment until I catch up again
14:02 timotimo OK :)
14:03 moritz we had some snow yesterday
14:03 moritz like, 3mm :-)
14:03 pmichaud we're in the thick of robotics competition season here so it may be a couple of weeks
14:04 jnthn Affirmative.
14:04 jnthn Hm, in a couple of weeks Rakudo may fully build on Moar :)
14:04 * lizmat waves from Echt, on her way to Newcastle, and then to London
14:05 nwc10 what's in Newcastle? (presume "on Tyne")
14:05 * pmichaud waves to lizmat
14:05 jnthn Impossible to understand people!
14:05 timotimo so, should i put an implementation of is nodal that passes some tests where methods and classes specifically made to be nodal will be nodally evaluated, but not patch the setting to include "is nodal" wherever it's necessary?
14:05 lizmat pmichaud o/
14:05 timotimo jnthn: would you like to give me the green lights? :)
14:05 timotimo (there are four green lights!)
14:05 jnthn timotimo: Got a link tot eh branch ocmpate?
14:05 jnthn ffs
14:05 jnthn got a link to the branch compare?
14:06 pmichaud I have to run off now... got a busy day ahead  :-/
14:06 pmichaud will check in again soon
14:06 timotimo a second
14:06 jnthn pmichaud: Good luck... o/
14:06 timotimo i'll probably need to touch it up still. it's not tested sufficiently and probably subtly wrong in places
14:07 jnthn ok, get back to me when there's something to merge
14:07 jnthn In theory I sorta kinda took care of most $dayjob stuff besides teaching and will have tuits tonight
14:07 jnthn In practice I'm tired and seem to be getting a cold...
14:09 timotimo jnthn: https://github.com/timo/rakudo/compare/nodal it'll look somewhat like this
14:09 timotimo i had some different code somewhere that individually resolves nodality on a per-item basis
14:15 woolfy left #perl6
14:18 kaleem joined #perl6
14:22 jnthn If you "is nodal" a class and compose a role into it, are the methods composed in meant to also get the nodality?
14:23 colomon moritz: I was thinking a perl 6 response to http://mortoray.com/2013/11/27/the-string-type-is-broken/ might make a decent advent calendar post.
14:23 colomon r: say "noël".flip
14:23 camelia rakudo-parrot e5fd34, rakudo-jvm e5fd34: OUTPUT«l̈eon␤»
14:24 colomon r: say "😸😾"
14:24 camelia rakudo-parrot e5fd34, rakudo-jvm e5fd34: OUTPUT«😸😾␤»
14:24 colomon r: say "baffle".uc
14:24 camelia rakudo-parrot e5fd34, rakudo-jvm e5fd34: OUTPUT«BAFFLE␤»
14:28 nnunley joined #perl6
14:28 moritz colomon: even better if grapheme strings actually worked :-)
14:29 nwc10 yes, I think it better to wait until at least some of NFG works
14:30 nwc10 "we've got X" is far harder to whine about than "we plan to do X"
14:31 nwc10 even if that means missing the boat on commenting, if the site refuses comments after a few weeks
14:31 timotimo jnthn: good q.
14:32 bluescreen__ joined #perl6
14:33 jnthn somebody else will talk about it soon enough... :)
14:33 timotimo my gut instinct tells me it could be a WAT if it was infectious
14:34 jnap joined #perl6
14:34 jnthn timotimo: I ask 'cus at the moment it will "is nodal" composed-in methods
14:34 jnthn I think it may be what we want?
14:34 jnthn Like the of from Positional wants to be nodal?
14:34 jnthn I guess worth getting an opinion from le TimToady++
14:34 timotimo agreed
14:41 araujo joined #perl6
14:51 benabik joined #perl6
15:00 TimK1 joined #perl6
15:01 FROGGS[mobile] joined #perl6
15:02 PacoAir joined #perl6
15:03 spider-mario joined #perl6
15:06 TimK1 left #perl6
15:07 kivutar joined #perl6
15:13 masak so, I have a pretty specific request.
15:14 masak I want to build a custom meta-class such that (a) someone creating a class can choose to use it, and (b) the meta-class overrides the standard accessors with its own.
15:14 masak i.e.
15:15 masak #`[some code here]; class MyClass is meta(SpecialMetaClass) { has $.x is rw }; my $o = MyClass.new; $o.x = 42; # outputs "'x' set to 42" or something
15:15 masak currently reading S12 for hints on how possible this is.
15:16 masak I don't believe I've ever seen class-specific metaclass overridings, for example.
15:16 masak nor have I seen someone making a cutpoint in the default accessors.
15:17 masak ooh, S12:2566 has an example that feels pretty close.
15:17 synopsebot Link: http://perlcabal.org/syn/S12.html#line_2566
15:18 masak hm, technically I guess I only have to override find_method, not the accessors themselves.
15:26 masak p: my module EXPORTHOW::COMPOSE { role class { method find_method($obj, $name) { say "Calling $name"; nextsame } } };  class A { method foo { say "OH HAI" } }; A.new.foo
15:26 camelia rakudo-parrot e5fd34: OUTPUT«OH HAI␤»
15:26 masak aww.
15:26 masak jnthn: ping.
15:27 arnsholt joined #perl6
15:29 rurban1 joined #perl6
15:31 jnthn masak: ::COMPOSE is only spec'd, not implemented yet :(
15:32 thou joined #perl6
15:35 jnthn masak: I think if you find my slides on this from GPW you can see how I did simple AOP and it'll give you a godo hint how to do it.
15:35 jnthn *good
15:35 masak thanks for the tip.
15:35 masak I will do that.
15:36 jnthn Note though that if you want to just do it for a specific class, then you probably want to introduce a trait to say so
15:36 masak ah; http://jnthn.net/papers/2012-gpw-meta-programming.pdf
15:37 masak trait -- gotcha.
15:37 masak yes, that sounds like exactly what I want.
15:37 arnsholt jnthn: Do you have a minute to chat about nqp::readlinefh stuff?
15:37 arnsholt (I've a bugfix more or less planned mentally, but I'd like to clear it with you in case I'm missing something)
15:41 jnthn p: multi sub trait_mod:<is>(Mu:U $class, :$logged!) { $class.HOW does role { method find_method($, $name, |) { my $meth = callsame; -> |c { say "calling $name"; $meth(|c) } }; method publish_method_cache(|) { }; } }; class C is logged { method m() { say 42 } }; C.m
15:41 camelia rakudo-parrot e5fd34: OUTPUT«calling m␤42␤»
15:41 jnthn masak: ^^
15:41 jnthn arnsholt: moment, gotta go help...
15:43 silug joined #perl6
15:43 masak jnthn: nice.
15:43 masak jnthn: I had already gotten halfway there in another terminal window ;)
15:43 masak yeah, that's all I need.
15:43 masak jnthn++
15:46 jnthn masak: If you don't mind false positives you dont' need the closure in there
15:46 jnthn masak: Trouble is that then you get the lookups for things asking "can" rather than intending to call.
15:46 jnthn Depends what you care to intercept really.
15:47 masak yeah, I'm pondering that now.
15:47 jnthn arnsholt: ok, now is fine, though can get called away at any time :)
15:47 masak what I really want to do is closer to a Proxy, actually.
15:47 masak because the accessor will return a container, and assignment will happen to that container.
15:48 masak and it's the assignment I want to intercept.
15:48 jnthn oh
15:48 jnthn Then, yeah :)
15:48 zakharyas joined #perl6
15:49 jnthn With sufficient cunning you can override accessor method generation of attributes.
15:49 jnthn I *think* japhb may be doing that in his PeanutButter^WProtoBuffer module, but not quite sure...
15:51 FROGGS joined #perl6
15:51 FROGGS hehe
15:53 arnsholt jnthn: It should be quick
15:54 arnsholt So, the problem is that readlinefh, according to the tests, should handle \r, \n and \r\n lineendings properly in the same file
15:54 arnsholt But there's also an op to set the lineending
15:55 arnsholt So my idea is to handle \n, \r and \r\n automagically if no terminator has been set explicitly, and accept only the set terminator without any magic if it has been set
15:55 jnthn I guess that overrides the default "handle all the things" behavior?
15:55 jnthn yeah, at first blush that sounds sane
15:55 arnsholt Cool. Then I'll implement that
15:59 masak jnthn: yeah, I need something to return the Proxy instead of the attribute.
15:59 masak I'll have a look at the PeanutButter.
16:02 masak hm, I don't see it on github.
16:02 masak nor on modules.perl6.org
16:04 masak oh, found it. https://github.com/samuraisam/p6-pb
16:05 FROGGS arnsholt: IIRC the setinputlinesep is NYI on moar, not sure if you care though :o)
16:06 masak yes, this is instructive.
16:06 masak japhb++
16:07 jnthn yes, that module may well be the best use of MOP stuff so far :)
16:07 jnthn Clearly I need to write more modules :D
16:09 arnsholt FROGGS: This is on JVM, so not entirely irrelevant but mostly =)
16:15 FROGGS :o)
16:16 Alina-malina joined #perl6
16:18 jnthn Time to decommute...bbl &
16:53 dalek nqp: eafa953 | (Arne Skjærholt)++ | / (2 files):
16:53 dalek nqp: Handle \n, \r and \r\n lineendings properly on JVM.
16:53 dalek nqp:
16:53 dalek nqp: This closes #148.
16:53 dalek nqp: review: https://github.com/perl6/nqp/commit/eafa953be6
16:53 dalek nqp: dd9c94a | (Arne Skjærholt)++ | src/vm/jvm/runtime/org/perl6/nqp/io/SyncHandle.java:
16:53 dalek nqp: White space cleanup in src/vm/jvm/runtime/org/perl6/nqp/io/SyncHandle.java.
16:53 dalek nqp: review: https://github.com/perl6/nqp/commit/dd9c94acc8
16:55 FROGGS[mobile] arnsholt++
17:07 Woodi joined #perl6
17:08 silug joined #perl6
17:09 arnsholt timotimo: You were working on NQP #122 (for loop with optional arguments) at some point, weren't you?
17:11 berekuk joined #perl6
17:12 Suhosin joined #perl6
17:13 prammer /msg camelia r: say "hi"
17:17 segomos The biggest challenge faced by many software development projects is unforeseen complexity.
17:18 moritz Perl 6 on the other hand faces lots of forseen complexity
17:19 TimToady we're still turning most of it into hindseen complexity :)
17:19 segomos i found that on kickstarter, thought you guys might like to know what you've gotten yourselves into
17:19 TimToady segomos: seriously, you want a language that scales up more than you expected to need to scale up at the beginning, for sure
17:20 TimToady segomos: we noticed a lot of people hitting the limits of Perl 5, which is why Perl 6 is different in many ways
17:20 segomos i prefer perl 6 over 5 for a lot of things
17:21 * TimToady would like to prefer it for speed one of these days :)
17:21 spider-mario :D
17:21 segomos me too, haha
17:21 segomos i wrote some modules for it like 5 months ago, i started running into threading and socket issues that were in the process of being resolved
17:22 TimToady threading is largely resolved now on the jvm
17:22 TimToady sockets are somewhat healthier
17:22 segomos i'll pick it back up again and see where i'm at :-)
17:23 TimToady it is unlikely that parrot will support good threading any time soon
17:23 segomos yea i had given up on parrot, i'm excited about moarvm and i started only compiling jvm
17:24 segomos the other thing i had worked on was another package manager to handle versioning, that was mostly working until we ran into unknowns about how perl 6 was going to handle different module versions
17:24 segomos or if it was going to stay in scope for perl 6
17:25 TimToady several people have been working that issue lately
17:26 TimToady mostly from the library loader end
17:27 TimToady we're still pretty handwavey on the subject of using different versions in the same process; doubtless we'll need a better understanding of which resources can be shared, and which can't
17:27 TimToady and the more we can push it toward an Erlangish model, the less needs to be shared, I suspect
17:28 TimToady (or doesn't matter if it's shared, in the case of immutables)
17:28 TimToady but two versions will probably never be able to share, say, your average database handle
17:29 TimToady in such a case we need to break the shared resource into a different module with its own versioning, I expect
17:29 TimToady </handwaving>
17:30 segomos i had started working on it in a way where classes would be assigned to a variable and all of that would happen from the variable and on the 'use' you'd specify a version so you could have 2 or 3 different versions of something, the calls and syntax would look funny
17:31 fhelmberger joined #perl6
17:32 segomos but it was similar to the way nodejs does versioning for modules
17:32 segomos syntax wise
17:34 SamuraiJack_ joined #perl6
17:35 TimToady in practice any given unit will generally only use a single version, so can rely on the unversioned alias that 'use' allows, if I take you correctly
17:35 TimToady but certainly everything can be "anonymous" underneath in a referential sense
17:36 TimToady but I don't see a large need to make that infrastructure easy on the eyes :)
17:37 TimToady much like the MOP is more verbose than "directly" accessing attributes
17:40 fhelmberger joined #perl6
17:42 segomos the other option i was liking, since you mentioned it, is installing the modules to the local directory or into the user's home directory so that you could use different versions of a module with different programs or at least be reasonably sure your old stuff will still work after upgrading modules, etc.
17:43 segomos it requires the extra use lib './lib' or setting the environment variable but it was convenient during testing
17:43 TimToady yes, we're aiming for an old-stuff-is-permantently-there model
17:44 TimToady which is why a new version is considered to have a completely different identity
17:44 TimToady so you can still ask for the old one
17:44 TimToady it's like git ids
17:44 segomos iirc it's compounded with author/name/version
17:44 TimToady possibly with a cryptochecksum too
17:45 TimToady s/author/authority/ but yeah
17:45 segomos that's how i handled it too
17:49 TimToady I think it's FROGGS++ doing most of that kind of stuff lately
17:49 FROGGS correct :o)
17:49 TimToady so maybe you folks can compare notes
17:50 segomos FROGGS is the guy that helped me out X months ago :-)
17:50 * FROGGS likes to play the first level guy :o)
17:53 sqirrel joined #perl6
17:54 FROGGS segomos: see the second code block here: https://github.com/FROGGS/p6-S11Versioning#current-state
17:55 FROGGS it can load modules that way (even different versions of the same module), but the installer hook is still missing
17:56 segomos does it always just append the -# to the file names?
17:57 FROGGS that is up to the installer
17:57 FROGGS if it write the modules as files to disk, it might just do that, yes
17:58 FROGGS if it will write installed modules to a database, the there is no filename :o)
17:59 segomos so does the loader just run through all of the files in Module/Name to find anything that provides Module::Name ?
17:59 segomos assuming it's written to disk
17:59 FROGGS no, that wouldn't work
18:00 FROGGS there are json file that specify every installed distribution, along with the module names it provides
18:00 FROGGS and a mapping to the storage location for that compilation unit
18:02 segomos ah - nice
18:02 TimToady a handy place to do Unicode name mangling if necessary, among other things
18:02 FROGGS this mapping must be provided by the distribution when it is going to be installed, there is no sane way to determine that
18:02 FROGGS TimToady: that is exactly why I did it that way
18:02 segomos where does that json eventually end up?
18:03 FROGGS somewhere on your disk, and there is a libraries.cfg file that specify where these json files are
18:04 FROGGS this is the only file the compiler must know about
18:04 FROGGS so this one will likely be in your install/bin or so
18:04 FROGGS (or install/lib)
18:05 zakharyas joined #perl6
18:05 FROGGS if you are on a debian system, then the debian folks will provide their own json file of modules that are under apt's control, and your libraries.cfg just point to that json file (or not)
18:06 FROGGS so in the end, you never need to be root when you want to install modules, since you an install to your home, and you just point to that json file *too*
18:07 FROGGS and when you load a module, it either loads the best module of all installation paths
18:07 FROGGS well, scratch that "either"
18:12 * masak has some small progress on t4
18:13 masak I've realized that any analysis of the problem and the solutions has to be example-focused.
18:14 silug joined #perl6
18:14 TimToady jnthn: re 'is nodal', the specs mainly only envisage dealing with derivitives of Iterable, since that is the API for visiting children. I'm not sure we have to solve the general case right now, or evar.
18:15 segomos FROGGS: that is pretty awesome and what we were working towards with our pkg manager, now we're obsolete before being useful :-)
18:15 FROGGS *g*
18:15 jnthn TimToady: So, "don't worry about that"? :)
18:18 Gwyxx joined #perl6
18:22 stevan_ joined #perl6
18:23 stevan__ joined #perl6
18:24 PacoAir joined #perl6
18:26 vky joined #perl6
18:28 Rotwang joined #perl6
18:30 Juerd Downtime announcement: feather will be down from Friday 22:00 UTC till approximately Saturday 1:00 UTC
18:32 jnthn dinner &
18:37 ssutch joined #perl6
18:39 timotimo arnsholt: yes, i was
18:42 segomos what is feather
18:43 moritz the machine behind perlcabal.org/syn/ for example
18:43 moritz also a shared development server that some Perl 6 folks use
18:43 moritz generously provided by Juerd++
18:44 colomon_windows joined #perl6
18:44 colomon_windows where does the windows MSI install perl6?
18:45 * colomon_windows is trying to get something p6ish done while his son watches Wallace and Gromit on colomon's MBP
18:45 moritz C:\Rakudo iirc
18:47 FROGGS lowercase, but yes
18:47 Juerd \R is anything but \r, right? :)
18:48 FROGGS that is the idea, yes :o)
18:48 FROGGS "C:\rakudo" would show up as "akudo" though :/
18:49 Juerd :)
18:49 colomon_windows moritz++ FROGGS++
18:49 colomon_windows whoever made the MSI++
18:49 FROGGS \o/ karma for talking rubbish \o/
18:50 moritz that was FROGGS++, and originally pmichaud++
18:50 FROGGS :o)
18:50 denis_boyun joined #perl6
18:50 FROGGS I lit the candle the last time, yeah
18:51 rurban1 joined #perl6
18:52 stevan_ joined #perl6
18:53 arnsholt timotimo: If progress stopped, could you add a comment to #122 giving a short explanation of what a solution needs to tackle, what you did, and why it failed?
18:53 timotimo oh
18:54 arnsholt Just a paragraph or two, so that what you learned gets attached to the bug
18:54 timotimo yeah, it's still about the retry handling
18:55 arnsholt Ok?
18:55 vky joined #perl6
19:03 timotimo arnsholt: i documented my findings
19:17 lue joined #perl6
19:19 arnsholt timotimo++
19:19 arnsholt Cheers!
19:19 timotimo got any comments to make my job easier? :)
19:20 arnsholt No deep ineffable wisdowm right off the bat I'm afraid
19:20 timotimo that's all right
19:20 denis_boyun joined #perl6
19:20 arnsholt But it's one of the bugs on my list of things to look into, so I might add to it once I look into the code-gen more deeply
19:21 timotimo i found code-gen surprisingly approachable
19:21 timotimo i've had my hands in the regex code-gen, too
19:26 ajr joined #perl6
19:38 timotimo how hard would it be to make the moarvm GC aware of swapping? that is, if memory runs out and it begins to swap (or just in general) it should put the data it needs to go through for a marking phase into a smaller region of the ram?
19:38 timotimo like, store pointers from objects to other objects in a separate place and the rest of the memory of the object doesn't need to be touched to mark?
19:38 timotimo (and possibly also not to sweep? i guess?)
19:38 rurban1 libsigsegv is usually used to catch those events
19:39 timotimo oh no, we copy all of the marked things into a new semispace anyway
19:40 rurban joined #perl6
19:46 stevan_ joined #perl6
19:59 xenoterracide joined #perl6
20:16 jnthn Most of an object is pointers, in many cases...
20:16 preflex jnthn: you have 3 new messages. '/msg preflex messages' to read them.
20:17 timotimo mhm
20:22 itz_ /last state
20:23 jnthn missing variable name :P
20:27 dalek nqp: 6cd6c06 | dwarring++ | examples/rubyish/ (3 files):
20:27 dalek nqp: rubyish package vars: Math::PI=3.1415
20:27 dalek nqp: review: https://github.com/perl6/nqp/commit/6cd6c06cc8
20:34 sricloud joined #perl6
20:38 sqirrel joined #perl6
20:44 dalek nqp: dd33635 | jonathan++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
20:44 dalek nqp: Map openpipe on MoarVM.
20:44 dalek nqp: review: https://github.com/perl6/nqp/commit/dd336352ca
20:55 raydiak how can I pass the "-Xms500m -Xmx2g" to java in the configure step, so it uses it while building nqp?  readme only says how to pass it for the make step, unless I'm mistaken
20:58 dalek nqp: 0b611f8 | (Tobias Leich)++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
20:58 dalek nqp: implement nqp::xor
20:58 dalek nqp: review: https://github.com/perl6/nqp/commit/0b611f839b
21:02 raydiak moritz++ FROGGS++ jnthn++ thanks for helping me last night, guys...forgot the karma before I fell asleep :)
21:02 FROGGS raydiak: building nqp is the make step, no?
21:02 FROGGS :o)
21:02 timotimo FROGGS: not if you --gen-nqp
21:02 raydiak FROGGS: I thought Configure.pl --gen-nqp was the building nqp step...???...\
21:03 raydiak timotimo beat me to it :)
21:03 timotimo raydiak: feel free to just cd nqp && perl Configure.pl --stuff && make install
21:03 raydiak thanks! timotimo++
21:04 silug joined #perl6
21:04 timotimo you may want to --prefix=../install in nqp/
21:04 raydiak ah, thanks again...I usually spend half an hour or more trying to figure stuff like that out before I ask :)
21:11 logie joined #perl6
21:18 dalek rakudo/moar-support: b6741f2 | (Tobias Leich)++ | src/vm/moar/ (2 files):
21:18 dalek rakudo/moar-support: stub p6stateinit
21:18 dalek rakudo/moar-support: review: https://github.com/rakudo/rakudo/commit/b6741f2333
21:22 [Sno] joined #perl6
21:30 szbalint joined #perl6
21:32 vky joined #perl6
21:37 benabik joined #perl6
22:04 bluescreen100 joined #perl6
22:06 bluescreen10 joined #perl6
22:25 dalek nqp: b177fd8 | (Tobias Leich)++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
22:25 dalek nqp: map nqp::backtrace
22:25 dalek nqp: review: https://github.com/perl6/nqp/commit/b177fd814c
22:45 lue how do I specify the author(ity) in META.info?
22:46 FROGGS as author
22:48 dalek nqp: 3517621 | (Tobias Leich)++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
22:48 dalek nqp: map nqp::symlink and nqp::link
22:48 dalek nqp: review: https://github.com/perl6/nqp/commit/351762195f
22:50 lue FROGGS: Thanks. [ It was hard to tell because I couldn't find a single module that even had the field, in a random sampling :) ]
22:51 FROGGS ummm
22:51 FROGGS lue: name it auth
22:51 lue alright
22:51 FROGGS it is not used yet, not even in panda
22:52 FROGGS so lets stick to what "use" gets
22:52 lue agreed. Especially considering use's :auth is specifically not just 'author'
22:53 FROGGS right
22:54 FROGGS though I an imagine that we will accept auth, author and authority in META.info once we care about it
22:54 FROGGS can*
22:54 lue .oO(but why would anyone type more characters than 'auth' ?)
22:55 FROGGS ohh, you have no idea :o)
22:59 * lue just found the preliminary datafiles for Unicode *7* : http://www.unicode.org/Public/7.0.0/
23:00 FROGGS ahh, I wish we had NFGs already, would be even more fun :o)
23:01 dalek rakudo/moar-support: 8398e8d | (Tobias Leich)++ | src/vm/moar/ (2 files):
23:01 dalek rakudo/moar-support: stub p6decodelocaltime
23:01 dalek rakudo/moar-support: review: https://github.com/rakudo/rakudo/commit/8398e8d7ef
23:02 lue Quick! Let's create that NIH-ish libicu replacement and boast Unicode 7 support before anyone else!
23:02 denis_boyun joined #perl6
23:02 * FROGGS .oO( libnfg.so )
23:04 lue I remember TimToady talking about replacing ICU with our own library, for various "be awesomer at Unicode" reasons. I kinda like the sound of libNFG :) [considering it's apparently a P6-invented term]
23:10 dalek rakudo/moar-support: 9364cc2 | (Tobias Leich)++ | src/vm/moar/ (2 files):
23:10 dalek rakudo/moar-support: stub p6listitems
23:10 dalek rakudo/moar-support: review: https://github.com/rakudo/rakudo/commit/9364cc2d6c
23:10 dalek rakudo/moar-support: 2833281 | (Tobias Leich)++ | src/vm/moar/ops/perl6_ops.c:
23:10 dalek rakudo/moar-support: fix type of epoch
23:10 dalek rakudo/moar-support: review: https://github.com/rakudo/rakudo/commit/2833281a0b
23:11 denis_boyun joined #perl6
23:18 BenGoldberg joined #perl6
23:25 dalek nqp: 7a203f4 | (Tobias Leich)++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
23:25 dalek nqp: map nqp::gethostname
23:25 dalek nqp: review: https://github.com/perl6/nqp/commit/7a203f4e8c
23:31 rurban1 joined #perl6
23:34 tadzik FROGGS: https://github.com/tadzik/panda/pull/62 this one?
23:34 FROGGS yes
23:34 tadzik "We need to cleanup the path, because the returned elems are too"
23:34 tadzik did you accidentally an adjective?
23:35 FROGGS are cleaned up too
23:36 tadzik ok, what exactly does that fix/improve?
23:36 FROGGS we had a problem where $from was "./foo", and the elems in that dir get returned as "foo/bar", "foo/baz"
23:36 tadzik oh
23:44 BenGoldberg If I wanted to make a request for a change to the perl6 spec, is there a web site or email to send the request to?  Or would I just ask here?
23:45 diakopter BenGoldberg: traditionally people have emailed the p6-language list, but you can also create an issue on the github specs repo, or even just message TimToady here.
23:45 diakopter depends on how much peanut gallery and faux-ivory-tower commentary you're willing to stomach from the mailing list
23:46 diakopter BenGoldberg: but since you brought it up here, just ask here :)
23:46 sftp joined #perl6
23:46 BenGoldberg Right... it's a simple request, really: Replace the Iterator.infinite method with Iterator.finite
23:47 diakopter rename of the same function[ality]? or replace with the converse functionality?
23:47 diakopter masak: .oO( or is that inverse??!? )
23:48 BenGoldberg It would return True if the Iterator is finite, False if the Iterator is infinite, and Mu if the iterator is not known to be either finite or infinite.
23:48 denisboyun joined #perl6
23:48 BenGoldberg If someone doesn't check if the return value of .finite is Mu, then they'll confuse an infinite list with a list of unknown length... which is a good thing, since, in my opinion, lists of unknown lenghth should be treated as infinite lists.
23:50 diakopter sounds like a TimToady/liz decision
23:51 BenGoldberg With the current interface (having a .infinite method), Iterators of unknown length can be confused with finite Iterators, which is what leads to the following rakudobug:
23:51 BenGoldberg rn: for (gather { .take for 1..5; say 'oy' }) { .say; last }
23:51 camelia niecza v24-98-g473bd20: OUTPUT«1␤»
23:51 camelia ..rakudo-parrot e5fd34, rakudo-jvm e5fd34: OUTPUT«oy␤1␤»
23:52 BenGoldberg For some reason, for() sees the gather as Finite, and decides to reify the whole thing... before any calls to the block are made.
23:54 lue BenGoldberg: I feel as though unknown(≈indefinite) length is not the same as infinite length. (Supeset of infinite at best.)
23:55 BenGoldberg I know it's not the same -- .finite would return Mu if the Iterator's length is unknown.
23:56 BenGoldberg But if the person who called .finite merely tests for the truthfulness of it's return value, then they would perceive False and Mu identically
23:57 BenGoldberg And thus avoid the temptation to reify the Iterator
23:57 lue Ah, I see. Although I can't help but wonder if .(in)definite would be a better test operator in that situation.
23:57 lue s/operator/method/
23:58 lue Assuming infinite ⊂ indefinite, it would do what you want without muddying the meaning of .(in)finite (esp. if that method is supposed to return only Bool values)
23:59 BenGoldberg Actually, I think it would be better to have Infinite and Finite roles, and remove the .(in)finite method entirely... but that might be asking to much

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo