»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
00:05 aindilis joined 00:07 dmol1 left 00:20 vky left
dalek kudo-star-daily: ba94777 | coke++ | log/ (5 files):
today (automated commit)
00:23
kudo-star-daily: c4b207d | coke++ | log/ (5 files):
today (automated commit)
rl6-roast-data: 62607f6 | coke++ | / (3 files):
today (automated commit)
rl6-roast-data: d05faaa | coke++ | p (2 files):
today (automated commit)
00:24 rurban1 left
[Coke] logs broken? 00:32
ah, somethign just slow.
00:33 _ilbot joined 00:37 FROGGS left 00:38 roboticus joined, rurban1 joined 00:40 beastd left 00:53 thou left
[Coke] I am finally free from work for a few days, have a few hours to kill... and have no desire to sixperl. :( 01:01
timotimo take all the time you need 01:03
diakopter [Coke]: sounds like your "list of things I could do" needs attention 01:04
01:24 felher joined
TimToady p: "=date col1 col2 col3" ~~ m:s/^ '=date' (\S+)+ % \s /; say @().join(':'); 01:27
camelia rakudo-parrot e5fd34: OUTPUT«col1:col2:col3␤»
TimToady @() is slightly prettier thatn @$/
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(':');
camelia rakudo-parrot e5fd34: OUTPUT«=date col1 col2 col3␤»
TimToady arguably .join should prefer the list nature of $/
japhb Is there any value in carving out a top-level namespace for data formats?
Just to make them easy for users to find, I mean. 01:29
I suppose we'd need one for protocols as well, though Net:: worked decently for that in the early Perl 5 days.
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*
Data seems a bit general as a term, and not very "meta" 01:31
Haskell usage of the term notwithstanding :)
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
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
(or e.g. Format::Time:: , which is just the wrong direction) 01:34
diakopter use formats;
TimToady and "form" is like what you fill in
and "serial" implies that you're serializing it 01:35
japhb Well, often you are serializing to/from it.
.oO( Wire:: )
TimToady obviously the right thing is to use the URL of the definitional specification for the format :) 01:36
01:38 xenoterracide joined
japhb *bill-the-cat-akpth* 01:38
TimToady O_o 01:39
diakopter eek-the-cat 01:43
colomon o/ 01:48
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:52
TimToady ⊙⨀ 01:53
🔵🔵 01:54
lue .u 🔵🔵
r: say "🔵🔵".names # :)
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…»
..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…»
TimToady ⧁⧀ 01:57
02:00 raiph left
TimToady ⊙⨀ 02:03
⧁°⧀
hmm, shoulda used a non-breaking space for the logfile, which removes initial spaces 02:06
02:10 prevost left
japhb Exchange:: # Sigh 02:13
02:15 tgt left, colomon left
japhb RW:: 02:17
Binary:: 02:18
(Of course, that leaves out all the text data formats, for which Text:: is misleading. Plus, Binary:: is misleading by itself.)
TimToady
.oO(Doormats)
02:19
Coding 02:20
Code
japhb Encoding?
TimToady Code::YAML2 02:21
japhb Encoding::BSON, Encoding::MessagePack, Encoding::ProtocolBuffers (or Encoding::PB), Encoding::BERT, ....
Code:: feels like source code manipulation or cryptography
TimToady Coding saves 2 lettres 02:22
and En is only one direction :)
japhb Not enough win for the confusion
Codec::
TimToady Encoding means "Unicode" to a lot of folks
japhb Although more often used for audio and video 02:23
TimToady Deco :)
japhb Although I kinda like the symmetry of using Codec:: for any arbitrary data format
TimToady Patois
Lingo
japhb Heh 02:24
TimToady Pidgin
boy belong dog 02:25
japhb
.oO( Net::RPC::Thrift using Codec::Thrift )
.oO( Net::RPC::Thrift using Lingo::Thrift )
TimToady anyway, the idea is some kind of language shared by different cultures
japhb Yeah, I see that 02:26
TimToady then there's all the bridge metaphors...
connections... 02:27
not to mention Net(work)
02:27 raiph joined
japhb Seems best to limit Net:: to actual networking protocols 02:27
TimToady define "network" 02:28
TimToady notes the stack doesn't stop at any particular level
02:29 mattp_ joined
TimToady Layer::ProtocolBuffers 02:30
Via::ProtocolBuffers 02:33
raiph use std::XXX # XXX is normalized version of the title of a standard's wikipedia page 02:37
02:39 Bill__ joined
japhb_ Hmmm, Layer:: and Via:: are interesting, though the latter feels like it belongs inside another namespace defining a higher-level protocol 02:40
raiph: use IETF::RFC1149; 02:41
So far, Data::, Encoding::, Codec::, Lingo::, Layer:: have passed my initial sniff test 02:45
None is ideal, mind you. 02:46
TimToady doesn't like the cultural overloading of the first three
japhb_ My favorite is probably Lingo::, I'm just not entirely sure why.
perigrin Viva::Le::ProtocolBuffers!
japhb_: it reminds you that you're just a small turtle being told where to go? 02:47
japhb_ obBikeShed::
perigrin oh wait no that's logo.
japhb_
.oO( Logo::WithSwooshAndBall )
.oO( A thousand junior graphic designers suddenly cried out and were silenced )
02:48
02:49 Bill__ left
TimToady is not sure whether japhb_ is more disturbed or disturbing... 02:49
japhb_ heh
perigrin TimToady: those are in any way exclusive? 02:50
dalek osystem: 5f98d12 | colomon++ | META.list:
Update META.list

Add Math::ChebyshevPolynomial.
japhb_ perigrin: It's a matter of degree, you see. 02:51
02:51 colomon joined, benabik joined
TimToady in fact, asking which one is more implies some amount of overlap 02:52
japhb_ wonders if Lingo:: is overbroad, despite really starting to like it 02:54
I especially like that it is short and implies that data formats are just another form of language. 02:55
(As TimToady++ sorta said earlier)
ingy is Ingy:: taken? 02:56
japhb_ Ingy, I think you've earned your own namespace. ;-) 02:57
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:...>
ingy I hereby offer it to the highest bidder at the next Perl6 auction
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
or maybe it was perlster.org
02:59 btyler joined
ingy anyone want perl11.org 03:00
or pyrl.org?
japhb_ ingy, DNS auctioneer ...
ingy jujudot.com
bpan.org
I think I have about 60
it's a sickness
japhb_ Sheesh
ingy I even have döt.net 03:01
and ingydotnet.{com,net,org}
:{ 03:02
japhb_
.oO( Domain Hoarders Anonymous )
03:02 dayangkun left
ingy dha++ 03:02
japhb_ raiph: Of course, perhaps we say that my examples above belong in Text:: or Text::Format:: instead 03:05
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
The line blurs with traditional Net:: spaces
Lingo::SSH2 03:07
... and that brings me back to overbroad
lue japhb_: I kinda like Lingo:: . But if nothing works, you could always just make up a word :)
japhb_ ... but culture defines the word
Zlort:: 03:08
Enthalpy:
lue
.oO(STRUctured Data Organizational Format → STRUDOF:: :D)
03:09
raiph presumably the key characteristic is lack of ambiguity of where things go
as far as possible
hmm. i retract that. 03:10
japhb_ wonders if Lingo:: falls prey to YTICN 03:12
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
japhb_ diakopter: [zoom in] 03:14
diakopter *prospective expansive proliferation
raiph does anyone see merit in a std:: namespace?
japhb_ PEP, for short
diakopter japhb_: P, for short
lue raiph: that feels very risky for Perl 6 — 03:15
japhb_ std:: feels ... C++
lue std: say "hi"
camelia std 3b262af: OUTPUT«ok 00:01 122m␤»
japhb_ diakopter: Dang, Python joke fell flat
diakopter since when did Ranch+mayo taste so good?
oh yeah, since I haven't eaten all day.
japhb_ Heh
raiph or something like it (Standard:: etc.) 03:16
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:17
lue
.oO(BIT Stream Interpretation Scheme -> BITSIS:: ; Agreed-upon Structure Manipulator -> ASM or AUSM::)
03:18
japhb_ Handshake
perigrin ingy: OSCON really seems like the wrong place to auction a perl5i.org domain ...
japhb_ Treaty 03:19
raiph lue: that's why i suggested canonicalizing via wikipedia
lue raiph: I don't see what that has to do with figuring out a top-level namespace.
japhb_ wikipedia is mutable in a way I think we don't want.
And what lue said, of course.
raiph japhb_: not in practice
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
perigrin see also the recent edit wars on the article about Cans of Worms. 03:21
japhb_ :-D
lue raiph: No. I'm scratching for a TLN :)
STNDRD:: and FileSpec:: also come to mind. 03:22
.oO(I can't be the only one who really dislikes the look of BNF)
03:25
japhb_ lue: Yeah, I never liked classic BNF 03:26
raiph japhb_: I don't (yet) agree about the impact of a name change.
japhb_ Bad application of waterbed complexity
raiph: Noted. :-) 03:27
raiph japhb_: anyhoo, if you don't see the merit of a standard namespace the canonicality of WP is moot
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
Ooop, bus stop coming up.
lue japhb_: for context (:P), I'm having a really hard time convincing myself that it is possible to read the grammar in www.unicode.org/Public/UCD/latest/u...List.html, purely because BNF looks awful.
diakopter lue: could it be simpler or something? 03:43
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:44
My biggest issue seems to be that the <rule name> ::= stuff format doesn't feel right. Too... "line oriented" perhaps 03:45
(not helping is the fact that the particular use of BNF I'm looking at appears to be incomplete :/) 03:46
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:49
ingy perigrin: true. but I just remembered the actual domain. not perl5i.org… 03:56
foocamp.com
anyway, in 2009, ORA asked me to sell it to them 03:57
I was like well sure, I've been trying to give it to you for 6 years 03:58
I sold it for $75 and a foocamp ticket :)
$75 was the current expenditure on the name
japhb_: btw, what are you guys trying to decide on? 04:03
04:03 kaleem joined
ingy naming stuff is my favorite pasttime 04:03
anyone else can answer for japhb_ :) 04:04
he seems to have been busstopped
lue ingy: what top level namespace would be most appropriate for file-format-manipulating modules?
ingy example? 04:05
lue ingy: <japhb> Is there any value in carving out a top-level namespace for data formats?
ingy i see 04:06
lue I don't have specific formats at hand, but there are plenty of TLN:: suggestions above already :)
ingy pod2md, json2yaml, etc?
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
[ no clue what japhb was thinking about :) ]
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:10
as the creator of too many p5 tln-s… 04:11
a framework for instance, should almost always have a tln
imho
because you are planning for world domination 04:12
it would be like calling perl6 Programming::Language::Perl::Version::Six
or somesuch
unfortunately other languages like python and ruby have no respect for namespacing 04:13
and I think that's to their detriment
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.
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)
ingy It would be hard to imagine what TLN::HTML would do though
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 ;)
lue Of course you should be a bit more specific: InetData::Netstring, Markup::HTML, and Image::GIF for my initial examples.
ingy *or*!!! I'd look for the intersection in the tag cloud of HTML and Thinger
BenGoldberg: so would HTML::FileSpec :) 04:16
lue HTML::Tidy::NoNotThatOne
ingy in a sense A::B::C is 3 tags: A, B, C 04:17
C::B::A is probably similar 04:18
ingy ♥'s the symlink
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:19
04:20 MikeFair joined
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
*sses rather
ingy lue: RSN!
one can hope anyway
lue Reverse... Something Names? 04:21
ingy Real Soon Now
M$ WILL DIE!
one would think that OS has outlived its niche 04:22
sorry diakopter
sorry jnthn
shit, I'm in the wrong place to show that sentiment
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!
lue ingy: Windows need not die. Just accept the awesome magic of ln -s :)
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.
ingy btw, wtf are windows shortcuts anyway
lue See www.unicode.org/Public/UCD/latest/u...sList.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:25
ingy lue: Markup::{Pod,Markdown} Data::{YAML,JSON} 04:26
I would use those TLNs
I hope P6 is not first squat, first p0wn on the naming
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
ingy diakopter: expound
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.
diakopter windows shortcuts are simply single-line scripts 04:28
lue
.oO( Module:: )
diakopter shell scripts
ingy huh
interesting
diakopter typically simply paths to other executables
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 :)
ingy instead of symlinks, let's use something that can embed a virus
diakopter raydiak: yes... I didn't say it was human readable... .lnk files have their own editor
ingy Ofun::++
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
raydiak: what?
raydiak ah, I see...I misunderstood your point. my bad :)
diakopter I guess 04:31
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.\
raydiak just used type on the command line (windows version of cat) 04:33
ingy I had a brilliant idea this morning…
Long running computer jokes need test suites to ensure they remain funny
because when computing is no longer funny, we all lose 04:34
Tfun::
maybe
diakopter raydiak: I'm having trouble discerning your intent
ingy diakopter: I think raydiak didn't understand you and now she does 04:35
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:36
diakopter sorry, I was assuming you'd seen the .lnk editor before 04:37
raydiak unless you mean the properties dialog, nope 04:38
ingy soaks in the awkwardness :D
diakopter yes, the properties dialog is what I meant
bonsaikitten ingy: just don't run your tests in germany ;)
ingy needs some sour cream and onion corn puffs
diakopter I can't possibly imagine what else I could have meant 04:39
<- now needs to learn something
ingy bonsaikitten: every test repo would (obviously) have a German branch
/nick bonsaingy 04:40
hrmm, nah
lue diakopter: to be fair, "Link Editor" make me think of some small program called LINKEDIT.EXE :) 04:41
diakopter if anything that makes it less fair 04:42
04:43 djanatyn left
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*
diakopter no need to apologize, I was being touchy and troll-paranoid/overreactive; I'm sorry 04:44
04:44 kaleem left 04:45 colomon left
diakopter not to mention pedantic. 04:45
ingy see we even scared off colomon :(
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
diakopter ingy: colomon usually signs off at night :P 04:46
ingy shuts tfu and writes some code :) 04:47
diakopter shuts tfu and writes some business plan 04:50
04:51 xenoterracide left
raydiak shuts tfu and makes some pictures of shiny spheres 04:53
04:57 BenGoldberg left 04:58 billy__ joined
billy__ hey everyone 04:58
i'm new to perl, perl6, and irc in general
TimToady howdy
04:59 preflex_ joined, preflex left, ChanServ sets mode: +v preflex_, Entonian joined
TimToady this is probably the quietest time in the 24-hour cycle, since most of our .eu folk are asleep 05:00
05:00 preflex_ is now known as preflex
diakopter vicious felonies are members of an elite squad 05:00
05:00 billy__ left
diakopter er 05:01
TimToady planning to become elite? 05:04
diakopter no i was quoting the law and order voiceover intro, wrong window, never mind 05:05
TimToady whew! :)
05:05 berekuk joined 05:06 btyler left 05:11 araujo left 05:16 Entonian left 05:26 berekuk left 05:29 raiph left, xenoterracide joined
lue .oO[ converting that BNF grammar, I've for the first time felt that 'emacs pinky' issue. I need to stop soon :) ] 05:34
(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:36
05:41 SamuraiJack_ joined 05:44 dwoldrich joined 05:59 fridim__ left 06:07 rurban1 left 06:14 zamolxes joined 06:16 Tene joined 06:21 dwoldrich left
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:21
06:23 FROGGS[mobile] joined 06:30 MikeFair left 06:36 xinming left, xinming joined 06:38 rurban1 joined 06:40 rurban2 joined, MikeFair joined 06:42 rurban1 left 06:44 rurban2 left
moritz raydiak: allocate fewer objects :-) 06:57
raydiak moritz: thanks :) ...but everything is an object :P 07:00
07:01 xinming left 07:02 xinming joined
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:18
07:25 xenoterracide left 07:27 SamuraiJack_ left 07:33 SamuraiJack_ joined 07:36 FROGGS[mobile] left 07:39 MikeFair left 07:43 kaleem joined 07:48 FROGGS joined
FROGGS a very nice morning to you all O/ 07:50
err, o/ 07:51
raydiak good morning \o
07:52 xinming left, denisboyun joined
FROGGS hi raydiak 07:52
07:52 xinming joined, ssutch left
raydiak hello 07:52
07:53 ssutch joined
moritz raydiak: well, that's a bug, and the best thing you can do is write a bug report 07:59
08:01 xinming left
raydiak moritz: thanks, will do. so no way to manually release an object? 08:01
08:02 xinming joined
jnthn morning o/ 08:02
FROGGS hi jnthn
raydiak g'morning
moritz raydiak: you can try with $foo = Any at the end of the loop 08:04
raydiak: no idea if it'll do any good
08:06 zakharyas joined
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:06
08:07 xinming left, xinming joined
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?
(sorry if that doesn't fit, I don't know your problem) 08:08
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:10
jnthn A my $x = [] in a loop can indeed swallow lots of memory if not in sink context... 08:13
'cus then for works like a map... 08:14
You can tell if it's that by shoving Nil; at the end of the loop
08:14 nnunley left
jnthn And yes, this will be fixec 08:14
raydiak jnthn: thanks! trying that out... 08:15
08:15 kurahaupo joined
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:16
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... :)
raydiak: And you had reduced the problem to that.
FROGGS so in order to return something, it must keep it
moritz r: my @x = do for ^10 { $_ ** 2 }; say @x.perl
camelia rakudo-parrot e5fd34, rakudo-jvm e5fd34: OUTPUT«Array.new(0, 1, 4, 9, 16, 25, 36, 49, 64, 81)␤»
raydiak okay, I get it...thanks guys
the Nil didn't fix it 08:18
FROGGS I think we could help better if you had a "working" snippet to show 08:19
raydiak I have a working test. The "real" code is hundreds of lines and a dozen or two files. 08:20
(so I don't know which part I would even show you) 08:21
my test: pastebin.com/3tAjCSPr (sorry for the trailing whitespace, I get lazy after midnight) 08:23
moritz oh yes, that leaks like hell 08:26
08:26 djanatyn joined
moritz doesn't leak on perl6-j 08:27
raydiak: so if that's an option for you, try the JVM backend
FROGGS it it the qqx?
is it*
moritz no
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
FROGGS what about 'my $a = Any'?
or just the = []
moritz FROGGS: my $a = Any doesn't leak 08:29
FROGGS so it is the list...
moritz FROGGS: just my $a = []; leaks 08:30
FROGGS k
FROGGS heats up valgrind
moritz []; also leaks
08:30 kurahaupo left
raydiak {} leaks a lot less, but more than none 08:31
moritz raydiak: I've submitted a bug report for you 08:34
raydiak moritz: thanks, I'll discard the one I was writing. I always agonize over the verbiage 08:35
08:39 dmol joined
moritz raydiak: rt.perl.org/Public/Bug/Display.html?id=120638 08:40
pratise helps a lot :-) 08:41
08:42 nnunley joined
raydiak wow, the leaks are HUGE for you...mine only jumps a few dozen megs per line 08:42
FROGGS ==6371== 1,115,200,000 bytes in 1,394 blocks are still reachable in loss record 2,271 of 2,271 08:46
==6371== by 0x9212F4A: Parrot_QRPA_set_integer_native (qrpa.c:827)
08:47 nnunley left
FROGGS that is a lot IMO: 1,115,200,000 bytes 08:48
moritz oh, and it doesn't even say "from malloc" or so \o/ 08:50
FROGGS it does 08:51
just reduced the output
these go in between: 08:52
==6371== at 0x4C2A2DB: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==6371== by 0x4EBD66B: gc_gms_allocate_memory_chunk (gc_gms.c:1947)
moritz ok
who knows QRPA? :-)
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
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
FROGGS or C libraries
JVM is better anyway if you have large datasets or longer running things 09:00
expect if you do a lot of string split and concat, this is rather slow on jvm atm
raydiak nope, but heavy numeric ops, including trig functions, sqrt, etc 09:01
FROGGS that just do well on jvm
s/just/should/
moritz qrpa.pmc 09:02
raydiak neat, maybe I can make more shinier spheres with this JVM magic you speak of
moritz slots = (slots)
? mem_gc_realloc_n_typed(INTERP, slots, ssize, PMC *)
: mem_gc_allocate_n_typed(INTERP, ssize, PMC *);
that's what seems to leak
I wonder if auto_attrs and having a custom destroy vtable goes together well 09:03
FROGGS I added a debug statement to see if destroy is called at all 09:05
I see calls to it when compiling nqp, but we'll see if my snippet shows calls to it too
hmmm, destroy does not get called for: perl6-p -e 'for ^500 { my $a = []; 1 }' 09:19
so, the gc does not collect it?
09:27 pjcj joined 09:32 REPLeffect left 09:38 dakkar joined 09:40 darutoko joined 09:45 ssutch left
timotimo o/ 09:46
FROGGS hi timotimo 09:47
09:49 fhelmberger joined 09:51 hummeleB1 joined
timotimo wow, the gc not collecting qrpa is *bad* 09:54
09:54 REPLeffect joined
FROGGS it feels like as if that only happens in userland 09:54
timotimo weird. 09:55
timotimo generates some pir
(well, gotta get rakudo-p built first
so ... will take a while)
FROGGS I added a debug stmt now to see if VMArray->destroy gets called
09:57 fhelmberger_ joined
timotimo raydiak: it's a good catch in any case! :) 09:57
thanks for the report
09:58 fhelmberger left
FROGGS yes, that needs fixing :o) 09:58
I wanna have Perl 6 now at work :o( 09:59
I wanna pass named args as :$folder, now!
timotimo :) 10:00
i feel you :(
FROGGS it doesn't call VMArray->destroy either, 10:02
masak good antenoon, #perl6 10:06
FROGGS hi masak
tadzik masak! 10:10
timotimo i've got an idea 10:11
when an empty qrpa is built
it doesn't seem to call PObj_custom_mark_destroy_SETALL(SELF)
it only does that as soon as it's resized once
could that be the cause of the problem?
timotimo attempts a patch
er, i'm not sure how to give it a custom init method 10:12
FROGGS VTABLE void init() { ? 10:13
timotimo oh, just VTABLE ... yeah
FROGGS nqp/src/vm/parrot/pmc/nqplexinfo.pmc:31: VTABLE void init() {
timotimo i looked at a different pmc and only saw VTABLE void init_int(int ...) { ... } 10:14
and i wasn't sure what that meant
FROGGS timotimo: btw, that Parrot_QRPA_set_integer_native is called
timotimo with what argument?
FROGGS no idea
timotimo it may return too early 10:15
if there's already enough slots in the array
FROGGS ahh, now I see it too!
timotimo++
timotimo first thing in the morning: a GC bug (possibly) fixed. 10:16
what a nice start to a day :)
FROGGS that'd be cool, yes :o)
though it is not what I would call "morning"
timotimo I haven't even had breakfast or read my RSS's yet, so it's morning for me :P
FROGGS I am awake for 4.6 hours now :/ 10:17
10:17 REPLeffect left 10:18 denisboyun left
timotimo i know, i'm a bloody student :| 10:18
masak I love the smell of a GC bug (possible) fixed in the morning. 10:19
possibly*
10:20 REPLeffect joined
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
but it shouldn't grow at all, right?
FROGGS maybe it is producing a list of Nils? 10:24
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
masak hehe, Go has a web framework called "Gadget" :P
timotimo well, the process starts out at about 4gb
which is crazy to me
FROGGS go go!
uhh
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
tadzik a nice change from the beaten to death "Let's Go x" line
timotimo so i guess i didn't fix it.
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.
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
so perhaps it was entirely legit before.
so it would also be correct if it didn't call the custom destroy in that case. 10:30
it would *not*, however, be correct if it didn't free up the qrpa at all
but pm wrote this code, so i'm kind of doubting that he didn't know how to use the gc ...
10:41 cognominal left 10:46 REPLeffect left
moritz argument by authority is the weakest form of argument (according to Wikipedia) 10:49
timotimo well, i'm weak minded, so ... :) 10:50
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
i have figured out the unicode input mode where i can just type the hex and get the character
except it doesn't seem to work in this terminal for some reason
fwiw, it also happens if the list has an item in it 11:14
11:37 cognominal joined 11:40 electricface joined 11:41 electricface left 11:43 rindolf joined 11:46 colomon joined 11:54 SmokeMachine left 12:08 fhelmberger_ left, kaare_ joined 12:09 fhelmberger joined 12:12 denisboyun joined 12:13 fhelmberger left
moritz mortoray.com/2013/11/27/the-string-...is-broken/ somebody here wants grapheme-level strings 12:14
FROGGS +1
:o)
12:15 tgt joined
FROGGS moritz: are you going to comment? 12:16
moritz nope 12:18
12:21 salv0 left 12:27 salv0 joined 12:37 aborazmeh joined 12:43 rindolf left 12:45 sivoais joined
pmichaud_ question on RT #120638 --- does for/sink context now properly throw away intermediate values? 13:00
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=120638
13:00 SamuraiJack_ left
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:01
pmichaud_ well, we still end up with a list of Nil's 13:02
moritz we might, that doesn't account for much
FROGGS pmichaud: \o/
moritz if I remove the []; I see just a few extra MB allocated once in a while
pmichaud agreed, that shouldn't make the difference 13:03
I wonder if something is keeping closures alive somewhere
moritz that might be possible, yes
13:03 aborazmeh left
FROGGS I end up with more that 1GB for 500 iterations over { []; 1 } 13:03
moritz though the []; isn't even in a variable
so nothing should close over it 13:04
pmichaud well, it'd at least be in a temporary register
so as long as the closure is alive, the temporary is alive and it doesn't get gc'd
13:04 denis_boyun_ joined
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 :-)
FROGGS well, it does a great job when allocating mem :o)
13:05 denisboyun left
pmichaud see, for exmaple, github.com/parrot/parrot/issues/795 where a program that has only one live RPA causes an out of memory panic 13:07
indeed, I wonder if 120638 is just a manifestation of #795 13:08
13:09 denis_boyun_ left
pmichaud Indeed, now that I think about it, I bet it is. 13:11
13:12 atroxaper joined
FROGGS :/ 13:13
pmichaud adds a note to the RT ticket
13:16 kaleem left 13:17 Guest48784 joined
timotimo hi pm :) 13:19
pmichaud hola, timotimo
and good morning, #perl6
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
8 months ago the pull request from rurban++ was opened and then not merged apparently
pmichaud I'm not sure that pull request actually fixed the underlying bug. 13:23
moritz fwiw I'm not sure if that pull request actually fixes it 13:26
what it does is incorporating memory limits (ulimit) into calculation of available memory 13:27
timotimo ah, hm.
pmichaud is there a ulimit in place when running the code in 120638 ?
timotimo so is the calculation off, so that it tries to malloc, fails, then doesn't have enough memory to run the gc?
moritz pmichaud: I don't think I set one
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
pmichaud okay, that makes it much more likely.
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.
nwc10 oooh, good UGT, pM 13:30
moritz iirc total memory * $constant_less_than_1 13:31
nwc10 er, Pm
naughty fingers.
13:31 ggoebel110 joined 13:34 denis_boyun joined 13:41 ajr joined, ajr is now known as Guest93198, Guest93198 is now known as ajr_ 13:49 rindolf joined 13:52 tgt left 13:56 tgt joined
jnthn oh wow, a pmichaud! 13:56
pmichaud ...WHERE?
jnthn Darn, just a mirage! 13:57
:)
jnthn waves from $teaching
pmichaud waves from $Texas
FROGGS $!teaching, or is it public? 13:58
nwc10 bet it's not snowing in Texas
(not that it's snowing here, today)
pmichaud currently -2degC now
timotimo pmichaud: would you be fine with having "is nodal" merged in rakudo separately from putting "is nodal" on the appropriate classes and methods?
jnthn Well, anybody coulda signed up if they were willing to pay... :P
nwc10 pmichaud: you what? It's probably warmer here
timotimo i feel the latter task is scaring me away from going ahead and re-basing the is nodal branch
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
nwc10: yes, it's been coldish here. We had ice and sleet earlier this week, but no snow yet this year.
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
pmichaud actually, freezing temperatures in November have been somewhat rare here the past several years, so it's a nice change 14:00
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.
masak is happy about the "no snow" part
timotimo doing it in stages would in this case mean pushing the first stage into rakudo-nom
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 :)
moritz we had some snow yesterday 14:03
like, 3mm :-)
pmichaud we're in the thick of robotics competition season here so it may be a couple of weeks
jnthn Affirmative. 14:04
Hm, in a couple of weeks Rakudo may fully build on Moar :)
lizmat waves from Echt, on her way to Newcastle, and then to London
nwc10 what's in Newcastle? (presume "on Tyne") 14:05
pmichaud waves to lizmat
jnthn Impossible to understand people!
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?
lizmat pmichaud o/
timotimo jnthn: would you like to give me the green lights? :)
(there are four green lights!)
jnthn timotimo: Got a link tot eh branch ocmpate?
ffs
14:05 lizmat left
jnthn got a link to the branch compare? 14:05
pmichaud I have to run off now... got a busy day ahead :-/ 14:06
will check in again soon
timotimo a second
jnthn pmichaud: Good luck... o/
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
In theory I sorta kinda took care of most $dayjob stuff besides teaching and will have tuits tonight
In practice I'm tired and seem to be getting a cold...
timotimo jnthn: github.com/timo/rakudo/compare/nodal it'll look somewhat like this 14:09
i had some different code somewhere that individually resolves nodality on a per-item basis
14:15 woolfy left 14:18 kaleem joined 14:19 benabik left
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:22
colomon moritz: I was thinking a perl 6 response to mortoray.com/2013/11/27/the-string-...is-broken/ might make a decent advent calendar post. 14:23
r: say "noe􏿽xCC􏿽x88l".flip
camelia rakudo-parrot e5fd34, rakudo-jvm e5fd34: OUTPUT«l̈eon␤»
colomon r: say "😸😾" 14:24
camelia rakudo-parrot e5fd34, rakudo-jvm e5fd34: OUTPUT«😸😾␤»
colomon r: say "baffle".uc
camelia rakudo-parrot e5fd34, rakudo-jvm e5fd34: OUTPUT«BAFFLE␤»
14:28 nnunley joined
moritz colomon: even better if grapheme strings actually worked :-) 14:28
nwc10 yes, I think it better to wait until at least some of NFG works 14:29
"we've got X" is far harder to whine about than "we plan to do X" 14:30
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
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
jnthn timotimo: I ask 'cus at the moment it will "is nodal" composed-in methods 14:34
I think it may be what we want?
Like the of from Positional wants to be nodal?
I guess worth getting an opinion from le TimToady++
timotimo agreed
14:35 bluescreen100 left 14:41 araujo joined 14:51 benabik joined 15:00 TimK1 joined 15:01 FROGGS[mobile] joined, FROGGS left 15:02 PacoAir joined 15:03 spider-mario joined 15:06 TimK1 left 15:07 kivutar joined
masak so, I have a pretty specific request. 15:13
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
i.e.
15:15 Guest48784 left
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
currently reading S12 for hints on how possible this is.
I don't believe I've ever seen class-specific metaclass overridings, for example. 15:16
nor have I seen someone making a cutpoint in the default accessors.
ooh, S12:2566 has an example that feels pretty close. 15:17
synopsebot Link: perlcabal.org/syn/S12.html#line_2566
masak hm, technically I guess I only have to override find_method, not the accessors themselves. 15:18
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␤»
masak aww.
jnthn: ping.
15:27 arnsholt joined 15:29 rurban1 joined
jnthn masak: ::COMPOSE is only spec'd, not implemented yet :( 15:31
15:32 thou joined
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
*good
masak thanks for the tip.
I will do that.
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; jnthn.net/papers/2012-gpw-meta-programming.pdf
trait -- gotcha. 15:37
yes, that sounds like exactly what I want.
arnsholt jnthn: Do you have a minute to chat about nqp::readlinefh stuff?
(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 benabik left
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␤»
jnthn masak: ^^
arnsholt: moment, gotta go help...
15:43 silug joined
masak jnthn: nice. 15:43
jnthn: I had already gotten halfway there in another terminal window ;)
yeah, that's all I need.
jnthn++
15:45 zakharyas left 15:46 ajr_ left
jnthn masak: If you don't mind false positives you dont' need the closure in there 15:46
masak: Trouble is that then you get the lookups for things asking "can" rather than intending to call.
Depends what you care to intercept really.
masak yeah, I'm pondering that now. 15:47
jnthn arnsholt: ok, now is fine, though can get called away at any time :)
masak what I really want to do is closer to a Proxy, actually.
because the accessor will return a container, and assignment will happen to that container.
and it's the assignment I want to intercept. 15:48
jnthn oh
Then, yeah :)
15:48 zakharyas joined
jnthn With sufficient cunning you can override accessor method generation of attributes. 15:49
I *think* japhb may be doing that in his PeanutButter^WProtoBuffer module, but not quite sure...
15:51 FROGGS joined
FROGGS hehe 15:51
arnsholt jnthn: It should be quick 15:53
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
But there's also an op to set the lineending
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?
yeah, at first blush that sounds sane
arnsholt Cool. Then I'll implement that
masak jnthn: yeah, I need something to return the Proxy instead of the attribute. 15:59
I'll have a look at the PeanutButter.
hm, I don't see it on github. 16:02
nor on modules.perl6.org
oh, found it. github.com/samuraisam/p6-pb 16:04
FROGGS arnsholt: IIRC the setinputlinesep is NYI on moar, not sure if you care though :o) 16:05
masak yes, this is instructive. 16:06
japhb++
jnthn yes, that module may well be the best use of MOP stuff so far :) 16:07
Clearly I need to write more modules :D
arnsholt FROGGS: This is on JVM, so not entirely irrelevant but mostly =) 16:09
16:12 denis_boyun left
FROGGS :o) 16:15
16:16 Alina-malina joined
jnthn Time to decommute...bbl & 16:18
16:41 kaleem left
dalek p: eafa953 | (Arne Skjærholt)++ | / (2 files):
Handle \n, \r and \r\n lineendings properly on JVM.

This closes #148.
16:53
p: dd9c94a | (Arne Skjærholt)++ | src/vm/jvm/runtime/org/perl6/nqp/io/SyncHandle.java:
White space cleanup in src/vm/jvm/runtime/org/perl6/nqp/io/SyncHandle.java.
16:53 silug left
FROGGS[mobile] arnsholt++ 16:55
16:55 zakharyas left 17:03 Suhosin left 17:07 atroxaper left, Woodi joined 17:08 silug joined
arnsholt timotimo: You were working on NQP #122 (for loop with optional arguments) at some point, weren't you? 17:09
17:11 berekuk joined 17:12 Suhosin joined
prammer /msg camelia r: say "hi" 17:13
segomos The biggest challenge faced by many software development projects is unforeseen complexity. 17:17
moritz Perl 6 on the other hand faces lots of forseen complexity 17:18
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
TimToady segomos: seriously, you want a language that scales up more than you expected to need to scale up at the beginning, for sure
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
TimToady would like to prefer it for speed one of these days :) 17:21
spider-mario :D
segomos me too, haha
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
TimToady threading is largely resolved now on the jvm 17:22
sockets are somewhat healthier
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
segomos yea i had given up on parrot, i'm excited about moarvm and i started only compiling jvm
17:23 berekuk left
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
or if it was going to stay in scope for perl 6
TimToady several people have been working that issue lately 17:25
mostly from the library loader end 17:26
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
and the more we can push it toward an Erlangish model, the less needs to be shared, I suspect
(or doesn't matter if it's shared, in the case of immutables) 17:28
but two versions will probably never be able to share, say, your average database handle
in such a case we need to break the shared resource into a different module with its own versioning, I expect 17:29
</handwaving>
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:30
17:31 fhelmberger joined
segomos but it was similar to the way nodejs does versioning for modules 17:32
syntax wise
17:35 SamuraiJack_ joined
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
but certainly everything can be "anonymous" underneath in a referential sense
but I don't see a large need to make that infrastructure easy on the eyes :) 17:36
much like the MOP is more verbose than "directly" accessing attributes 17:37
17:40 fhelmberger left, fhelmberger joined
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:42
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
which is why a new version is considered to have a completely different identity 17:44
so you can still ask for the old one
it's like git ids
segomos iirc it's compounded with author/name/version
TimToady possibly with a cryptochecksum too
17:45 fhelmberger left
TimToady s/author/authority/ but yeah 17:45
segomos that's how i handled it too
TimToady I think it's FROGGS++ doing most of that kind of stuff lately 17:49
FROGGS correct :o)
TimToady so maybe you folks can compare notes
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
FROGGS segomos: see the second code block here: github.com/FROGGS/p6-S11Versioning...rent-state 17:54
it can load modules that way (even different versions of the same module), but the installer hook is still missing 17:55
segomos does it always just append the -# to the file names? 17:56
FROGGS that is up to the installer 17:57
if it write the modules as files to disk, it might just do that, yes
if it will write installed modules to a database, the there is no filename :o) 17:58
segomos so does the loader just run through all of the files in Module/Name to find anything that provides Module::Name ? 17:59
assuming it's written to disk
FROGGS no, that wouldn't work
there are json file that specify every installed distribution, along with the module names it provides 18:00
and a mapping to the storage location for that compilation unit
segomos ah - nice 18:02
TimToady a handy place to do Unicode name mangling if necessary, among other things
FROGGS this mapping must be provided by the distribution when it is going to be installed, there is no sane way to determine that
TimToady: that is exactly why I did it that way
segomos where does that json eventually end up?
FROGGS somewhere on your disk, and there is a libraries.cfg file that specify where these json files are 18:03
this is the only file the compiler must know about 18:04
so this one will likely be in your install/bin or so
(or install/lib)
18:05 zakharyas joined
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:05
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:06
and when you load a module, it either loads the best module of all installation paths 18:07
well, scratch that "either"
masak has some small progress on t4 18:12
I've realized that any analysis of the problem and the solutions has to be example-focused. 18:13
18:13 silug left 18:14 silug joined, SamuraiJack_ left
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:14
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*
jnthn TimToady: So, "don't worry about that"? :)
18:17 PacoAir left 18:18 stevan_ left, Gwyxx joined 18:19 Gwyxx is now known as SL-RHanson 18:22 stevan_ joined 18:23 stevan__ joined 18:24 PacoAir joined 18:26 vky joined, dakkar left, vky left, stevan_ left 18:28 Rotwang joined, FROGGS[mobile] left
Juerd Downtime announcement: feather will be down from Friday 22:00 UTC till approximately Saturday 1:00 UTC 18:30
jnthn dinner & 18:32
18:32 rurban1 left 18:35 PacoAir left 18:36 zakharyas left 18:37 ssutch joined
timotimo arnsholt: yes, i was 18:39
segomos what is feather 18:42
moritz the machine behind perlcabal.org/syn/ for example 18:43
also a shared development server that some Perl 6 folks use
generously provided by Juerd++
18:44 stevan__ left, colomon_windows joined
colomon_windows where does the windows MSI install perl6? 18:44
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
FROGGS lowercase, but yes 18:47
Juerd \R is anything but \r, right? :)
FROGGS that is the idea, yes :o) 18:48
"C:\rakudo" would show up as "akudo" though :/
Juerd :) 18:49
colomon_windows moritz++ FROGGS++
whoever made the MSI++
FROGGS \o/ karma for talking rubbish \o/
moritz that was FROGGS++, and originally pmichaud++ 18:50
FROGGS :o)
18:50 denis_boyun joined
FROGGS I lit the candle the last time, yeah 18:50
18:51 rurban1 joined 18:52 stevan_ joined
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
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 darutoko left
arnsholt Ok? 18:55
18:55 vky joined 18:58 denis_boyun left
timotimo arnsholt: i documented my findings 19:03
19:16 rurban left 19:17 lue joined
arnsholt timotimo++ 19:19
Cheers!
timotimo got any comments to make my job easier? :)
arnsholt No deep ineffable wisdowm right off the bat I'm afraid 19:20
timotimo that's all right
19:20 denis_boyun joined
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:20
timotimo i found code-gen surprisingly approachable 19:21
i've had my hands in the regex code-gen, too
19:26 ajr joined 19:27 ajr is now known as Guest56624, Guest56624 is now known as ajr_ 19:28 denis_boyun left 19:31 stevan_ left
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
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?
(and possibly also not to sweep? i guess?)
rurban1 libsigsegv is usually used to catch those events
timotimo oh no, we copy all of the marked things into a new semispace anyway 19:39
19:40 rurban joined, sqirrel left 19:41 kivutar left 19:46 stevan_ joined 19:47 hummeleB1 left 19:53 thou left 19:59 xenoterracide joined 20:11 ggoebel110 left
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.
timotimo mhm 20:17
itz_ /last state 20:23
jnthn missing variable name :P
dalek p: 6cd6c06 | dwarring++ | examples/rubyish/ (3 files):
rubyish package vars: Math::PI=3.1415
20:27
20:34 sricloud joined 20:38 sqirrel joined 20:40 vky left
dalek p: dd33635 | jonathan++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
Map openpipe on MoarVM.
20:44
20:48 sqirrel left, silug left 20:50 xenoterracide left
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:55
dalek p: 0b611f8 | (Tobias Leich)++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
implement nqp::xor
20:58
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?
:o)
timotimo FROGGS: not if you --gen-nqp
raydiak FROGGS: I thought Configure.pl --gen-nqp was the building nqp step...???...\
timotimo beat me to it :) 21:03
timotimo raydiak: feel free to just cd nqp && perl Configure.pl --stuff && make install
raydiak thanks! timotimo++
21:04 silug joined
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 21:15 rindolf left
dalek kudo/moar-support: b6741f2 | (Tobias Leich)++ | src/vm/moar/ (2 files):
stub p6stateinit
21:18
21:22 [Sno] left, [Sno] joined 21:30 szbalint joined 21:32 vky joined 21:37 benabik joined 21:43 ssutch left 21:54 kaare_ left 22:04 bluescreen100 joined 22:06 bluescreen10 joined 22:07 bluescreen__ left 22:09 bluescreen100 left
dalek p: b177fd8 | (Tobias Leich)++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
map nqp::backtrace
22:25
22:26 dmol left 22:28 colomon_windows left 22:40 rurban1 left 22:43 ajr_ left 22:45 spider-mario left
lue how do I specify the author(ity) in META.info? 22:45
FROGGS as author 22:46
dalek p: 3517621 | (Tobias Leich)++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
map nqp::symlink and nqp::link
22:48
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:50
FROGGS ummm 22:51
lue: name it auth
lue alright
FROGGS it is not used yet, not even in panda
so lets stick to what "use" gets 22:52
lue agreed. Especially considering use's :auth is specifically not just 'author'
FROGGS right 22:53
though I an imagine that we will accept auth, author and authority in META.info once we care about it 22:54
can*
22:54 Rotwang left
lue
.oO(but why would anyone type more characters than 'auth' ?)
22:54
FROGGS ohh, you have no idea :o) 22:55
22:56 vky left
lue just found the preliminary datafiles for Unicode *7* : www.unicode.org/Public/7.0.0/ 22:59
FROGGS ahh, I wish we had NFGs already, would be even more fun :o) 23:00
dalek kudo/moar-support: 8398e8d | (Tobias Leich)++ | src/vm/moar/ (2 files):
stub p6decodelocaltime
23:01
lue Quick! Let's create that NIH-ish libicu replacement and boast Unicode 7 support before anyone else! 23:02
23:02 denis_boyun joined
FROGGS .oO( libnfg.so ) 23:02
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:04
23:08 denis_boyun left
dalek kudo/moar-support: 9364cc2 | (Tobias Leich)++ | src/vm/moar/ (2 files):
stub p6listitems
23:10
kudo/moar-support: 2833281 | (Tobias Leich)++ | src/vm/moar/ops/perl6_ops.c:
fix type of epoch
23:11 denis_boyun joined 23:18 BenGoldberg joined 23:19 denis_boyun left 23:21 silug left
dalek p: 7a203f4 | (Tobias Leich)++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
map nqp::gethostname
23:25
23:31 rurban1 joined
tadzik FROGGS: github.com/tadzik/panda/pull/62 this one? 23:34
FROGGS yes
tadzik "We need to cleanup the path, because the returned elems are too"
did you accidentally an adjective?
FROGGS are cleaned up too 23:35
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"
tadzik oh
23:42 sftp left
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:44
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
depends on how much peanut gallery and faux-ivory-tower commentary you're willing to stomach from the mailing list
BenGoldberg: but since you brought it up here, just ask here :) 23:46
23:46 sftp joined
BenGoldberg Right... it's a simple request, really: Replace the Iterator.infinite method with Iterator.finite 23:46
diakopter rename of the same function[ality]? or replace with the converse functionality? 23:47
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
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:48
diakopter sounds like a TimToady/liz decision 23:50
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
rn: for (gather { .take for 1..5; say 'oy' }) { .say; last }
camelia niecza v24-98-g473bd20: OUTPUT«1␤»
..rakudo-parrot e5fd34, rakudo-jvm e5fd34: OUTPUT«oy␤1␤»
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:52
23:53 rurban1 left, denisboyun left
lue BenGoldberg: I feel as though unknown(≈indefinite) length is not the same as infinite length. (Supeset of infinite at best.) 23:54
BenGoldberg I know it's not the same -- .finite would return Mu if the Iterator's length is unknown. 23:55
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:56
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.
s/operator/method/
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:58
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 23:59