»ö« 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:17 MikeFair joined 00:28 dayangkun joined 00:30 tgt left 00:33 denis_boyun left 00:42 pecastro left 00:44 pecastro joined 00:51 raiph joined 00:59 jnap1 left 01:03 thou left 01:08 ajr_ left
raiph looks lik i killed r-j 01:13
01:22 raiph left 01:24 airdisa left 01:25 BenGoldberg joined 01:27 Ben_Goldberg left 01:47 TimK1 joined
TimK1 irc.perl.org #perl6 01:48
01:54 BenGoldberg left, zakharyas left 01:56 BenGoldberg joined
colomon is suffering a terrible urge to translate Hunt the Wumpus into p6 01:56
rjbs Best to succumb. 02:00
colomon error:imcc:loadlib directive could not find library `perl6_group'
in file 'perl6-debug.pir' line 1
Unable to open filehandle from path 'perl6-debug.pbc': No such file or directory(2)
current instr.: 'generate_code_gcc' pc 871 (tools/dev/pbc_to_exe.pir:294)
called from Sub 'main' pc 129 (tools/dev/pbc_to_exe.pir:49)
Compiling lib/Debugger/UI/CommandLine.pm to pir
rakudo debugger not so happy, it seems. 02:01
TimToady rosettacode.org/wiki/Mouse_position#Perl_6 <-- jvm specific solution 02:30
5 more to pass up J :) 02:31
with D hot on our heels
what up with these single-letter names?
maybe we should just name our language 6 :) 02:32
02:33 colomon left 02:48 xinming left 02:49 xinming joined 03:03 xenoterracide joined
lue TimToady: obviously the correct single-char name is ö (camelia with her wings tucked behind her back) 03:04
03:12 colomon joined 03:19 GlitchMr joined, robinsmidsrod left 03:20 robinsmidsrod joined, ribasushi joined 03:21 DrEeevil joined, bonsaikitten left 03:22 simcop2387 joined 03:50 araujo left, araujo joined, araujo left, araujo joined 03:51 colomon left 04:05 colomon joined 04:10 BenGoldberg left 04:20 colomon left 04:29 preflex_ joined, ChanServ sets mode: +v preflex_ 04:31 preflex left, preflex_ is now known as preflex, colomon joined 04:49 xinming left 04:50 xinming joined 05:11 fridim__ left 05:12 xenoterracide left 05:16 mattp__ joined 05:17 sergot_ joined, smash__ joined 05:18 [Sno] left 05:19 PZt left, genehack_ joined, PZt joined 05:20 ribasushi_ joined 05:22 ribasushi left, sergot left, ribasushi_ is now known as ribasushi, amkrankruleuen left, mattp_ left, smash left, silug_ left, genehack left, yves_ left 05:23 yves_ joined 05:32 silug_ joined 05:35 xinming left
moritz lue++ # *docs 05:36
05:36 xinming joined
lue moritz: I assume you mean heredocs, yes? :) 05:37
moritz lue: heredocs, theredocs, *docs :-) 05:38
lue :) 05:39
05:39 zakharyas joined
lue moritz: just while it's on my mind, is it just me or is S10 lacking in something? My guess is that whole "if it's the same in Perl 5, don't mention it" thing. Of course, I could've just been dense earlier today :) 05:40
05:41 xenoterracide joined
moritz lue: you really have to read S10 and S11 as one, IMHO 05:42
lue That would make sense. My main issue was that the point of packages wasn't really explained (there was just that CANDO bit, but it doesn't seem that useful without knowing more about packages.) 05:44
05:44 FROGGS left
lue I know they're what modules and classes are based off, but that's it :P 05:44
moritz IMHO the only use for packages in Perl 6 is as "unspecialized" modules/classes/grammers 05:45
*grammars
if you write grammar A::B { }, it autovivifies a package A, which can later be filled in with a class, or a grammar, or a module
lue For some reason at parts of S10 I was thinking "isn't this kinda walking the line between normal Perl 6 and 6model (knowhows)?" . I'm sure that's a false notion though. 05:48
05:50 zakharyas left 05:52 jnap joined 05:57 jnap left
moritz doesn't see the connection 05:57
lue I think at some point I got the idea that packages could be used to construct more specialized things (modules, classes). Like I said, false notion.
lue thinks it was the talk about CANDO that did it. 06:00
06:07 MikeFair left, MikeFair joined 06:11 SamuraiJack_ joined 06:21 darutoko joined 06:26 [Sno] joined
raydiak is there a built-in way to do deep cloning? 06:43
06:45 FROGGS joined
timotimo just as i get up my cable connection dies... 06:47
moritz raydiak: no
raydiak moritz: how...odd. but thanks, I can stop looking for it, then 06:48
timotimo hm, my 'ternet connection is back 06:52
hoelzro: oh my glob! there's a confirmation for the perl6 linguist ticket! 06:57
FROGGS yay!! 06:58
morning
Perl 6 will finally become a proper language!
06:59 kaleem joined, kaleem_ joined, kaleem left
Woodi hallo :) 06:59
FROGGS hi Woodi 07:00
Woodi about architecture.svg: there is cycle: parser calls actions and vice versa, also Core and World are used by both.
timotimo core shouldn't be used by the actions and/or parser, but they are parsed by them 07:01
Woodi so it means: "we get Perl6 sources, spin for a while and produce some QAST" :)
timotimo don't forget that parser and actions are in nqp rather than perl6
FROGGS the world too, but not ore 07:02
core*
Woodi would be nice to know what calls what, what produces result and returns to what. also: there are no representations and grammars!
timotimo and parser and actions interact directly; when a rule parse is finished, the action method runs and can set the .ast property of the match object it has as well as do things with the World object
FROGGS almost, when the document is parsed, the corresponding ation methods of the rules that have matched are called, in reverse order 07:05
world is a collection of helper methods used by the grammar and action, and also a stash for thing that are generated at compile time but should be accessible at runtime 07:09
(think of begin blocks)
and the action only "use" core in a sense that lookups to e.g. Nil are put into the ast, that will be done at runtime, when core is there that supplies a Nil 07:10
ahh, and the world uses the Perl6::Actions directly to parse heredocs 07:12
07:24 denis_boyun joined 07:33 denis_boyun left 07:45 kbenson left 07:46 rurban1 left 07:49 tgt joined 07:51 dmol joined 07:54 jnap joined 07:59 jnap left
sjn \o 08:02
timotimo the difference between stage parse from nqp/master to nqp/indy-args while compiling a rakudo on the opts branch is from 62.4 seconds down to 53.9 seconds
sjn good *, #perl6
timotimo r: say "good {*}, #perl6!".WHAT 08:03
sjn arnsholt: any plans to drop by Oslo.pm today? :)
camelia rakudo-jvm b227e6: OUTPUT«(timeout)»
..rakudo-parrot b227e6: OUTPUT«(Str)␤»
timotimo hm
hoelzro morning 08:06
timotimo: I know!
I'm glad they responded so quickly 08:07
timotimo that was sarcasm, right? 08:09
SevenWolf if a man speaks in a Forrest where no woman is around to hear is he still wrong? 08:11
frettled punctuationisforwussesbecausesexism? 08:13
SevenWolf lol lighten up that was a copy paste job
frettled lue: funny, I had the same false notion about packages :) Glad to see it wasn't just me. 08:15
08:17 [particle]1 left, sjn joined 08:18 [particle] joined
hoelzro timotimo: could be ;) 08:21
at least someone responded when I bumped the thread
they could've just let it sit. 08:22
moritz hoelzro: what was the reaction?
hoelzro they also could've put off the release they did an hour after the guy's response until, you know, after I had a chance to wake up and fix the PR
moritz: enthuastic, if delayed
*enthusiastic 08:23
moritz \o/
hoelzro it's coming up on a year since I embarked on this voyage.
frettled yay :) 08:25
tadzik yay :) 08:27
08:31 ssutch left
FROGGS timotimo: 9.5s is a nice win! 08:39
tadzik it is 08:41
it's like 15-20% :o
08:44 rurban left
tadzik so, I'm really thinking about writing a post about "how does the code go from the editor to the running program, through the compiler" sort of thing 08:45
what's the place of grammar, actions, nqp, CORE.setting etc
I guess I'll write a draft and see if that makes any sense 08:46
hoelzro tadzik: I think that sounds like a good idea
I tried to do something like that for last year; I think it may have been too high-level, though 08:47
08:47 rurban joined
FROGGS tadzik: +1 08:48
that would be a must-read for newcomers then (new "core hackers") 08:50
tadzik well, so architecture.svg blogified 08:52
FROGGS right :o) 08:53
I hope to fix some issues with my S11 impl, and then start writing human readable text...
08:55 jnap joined
frettled tadzik: if you could make a diagram or flow chart as well, that would be _really_ nice. 08:59
08:59 jnap left
frettled A diagram based on a blog post based on an SVG ;) 08:59
Remember to hang on to the movie rights.
09:01 daniel-s_ joined
FROGGS .oO( T. T. T. Sośnierz ) 09:02
09:04 aindilis` joined
moritz suddenly hums "Plagiarize" by Tom Lehrer. www.sing365.com/music/Lyric.nsf/Lob...7D0024B8B9 "Metro-Goldwyn-Moskva buys movie rights for six million rubles, 09:04
Changing title to 'The Eternal Triangle',
With Brigitte Bardot playing part of hypotenuse."
09:07 nwc10_ joined, sivoais_ joined, szbalint_ joined
raydiak tadzik: For my scene files, I'm using a modified JSON::Unmarshal which passes any extra keys in the file as args to the constructor, and doesn't pass args for keys which do not exist in the file. Shall I push my changes and send a pull request, or is it far enough removed from the pure idea of "marshalling" that I should fork and rename instead? 09:09
09:12 woolfy left, markov left, hugme left, tangentstorm left, aindilis left, szbalint left, sivoais left 09:14 nwc10_ is now known as nwc10 09:19 yogan joined, markov joined, woolfy joined 09:20 tangentstorm joined
tadzik raydiak: I'd be very interested in looking at those 09:24
and I think it is something J:U should cover in one way or another, maybe as sort of an "advanced" feature
my intention was to model it after Go's "encoding/json", which has a well-defined rules about what to do with extra/nonexistent keys 09:25
I don't remember implementing those in my version though
09:25 hugme joined, ChanServ sets mode: +v hugme, xenoterracide left
tadzik raydiak: from what you say, it sounds very nice and I probably want it right away :P 09:25
09:26 daniel-s__ joined, daniel-s_ left
mathw tadzik: well-defined rules about what to do with 'extra' keys sounds like a good idea to me :) 09:28
hmm, where are all my colleagues today?
tadzik I asked myself a similar question today 09:29
09:29 tgt left
raydiak use case is that scene files have an array of objects, typed as pray::scene::object, but each object is actually a subclass (eg pray::scene::sphere)...so I added a 'primitive' prop to object, and object's contructor calls the correct subclass constructor based on that...so Object.new(:primitive<sphere>) returns the same as Sphere.new()...it kinda feels like a dirty trick sometimes, though :) 09:29
tadzik and then there was the "oh, that's because I'm on time today" moment ;)
raydiak: the notion of Object being aware of all its subclasses feels a bit dirty, yes :) 09:32
but I see why you want it 09:33
09:36 xinming_ joined
raydiak at least it's not really "aware" in the sense that it has a hard-coded list of subclasses in it or anything...just manipulates $.primitive into the proper class name and passes the args on to that constructor (or crashes if there's a typo) 09:37
09:38 dakkar joined
raydiak I also am about to have a problem where I want some properties to be able to be either a number or another object (or array or something)...eg scaing, where a user might want to use just one value, or separate x, y, and z values...not sure how I plan to handle that yet 09:39
09:39 mberends left
masak good antenoon, #perl6 09:39
09:39 xinming left
FROGGS hi masak 09:39
moritz raydiak: well, if you don't add type constraints to your attributes or variables, that's not really a problem 09:40
raydiak: ... assuming the code that uses them can deal with the contents
FROGGS raydiak: I might create a Scaling class, where you set the factor for all x, y and z or a general value, and it sets all three to that value 09:41
masak raydiak: re deep cloning -- do you know of any language that provides this, out-of-the-box? it seems to me that shallow cloning is easy, but deep cloning raises all these "interesting" issues.
FROGGS raydiak: so later in your code you would always take the scaling for x, y and z into account, wether they are the same or not
09:42 xinming_ left, hummeleB1 joined 09:43 xinming joined 09:44 _daniel-s__ joined 09:45 daniel-s__ left
frettled A masak! \o/~ 09:46
masak where!? 09:47
frettled It hides!
raydiak tadzik: I pushed the changes to my fork on github so you can check it out
frettled I think Smalltalk does deep copy reasonably. 09:48
It's not infinitely deep, merely one level. 09:49
raydiak moritz: that's true, I could do without the type constraints, and then just die from my own code if they put a hash or string or something in there...but JSON::Unmarshal generally handling more complex type constraints should probably be addressed one way or another if possible
frettled IIRC, some LPC implementations do this as well. (Lars Pensjö's C, usd for LPMUDs)
raydiak FROGGS: I hadn't considered making the scaling itself a class...I'll have to mull that over some more 09:50
masak: you're right, of course...I guess Perl 6 just provides for so much powerful expression, I found it a bit surprising that something so common would be entirely excluded. but you're right about "interesting" issues, only some of which I am even aware of 09:53
masak frettled: oh -- by "deep", I basically meant "a whole object graph".
FROGGS raydiak: dont have to a class, but I'd compute the scaling factor for x, y and z in all cases so the code afterwards don't have to care
09:53 tangentstorm left 09:56 jnap joined
raydiak FROGGS: I'm thinking specifically of the complications involved with doing this through JSON::Unmarshal, which always tries to unmarshal a value based on the type constraint of the property 09:56
FROGGS k, seems I am lacking knowledge of your architecture 09:57
09:58 _daniel-s__ left, daniel-s_ joined
raydiak FROGGS: it's a little twisty, but I'm in the process of straightening it...like a wrecked car :) 09:59
frettled masak: copy/clone as value or as reference?
masak: that is, duplicate the entire graph, but as a new graph?
10:00 jnap left
frettled The latter is promised by copy() in the MudOS LPC driver: startfromlil.wordpress.com/mudos-do...eral__copy 10:00
masak yeah, my mind has "deep cloning" as "copy each node into the new graph". that is, ever object gets a new ID. 10:02
at this point, people generally mention filehandles and database handles. 10:03
moritz what about locks? :-)
masak and continuations. 10:04
raydiak wouldn't mind if it just died when attempting anything like that
masak yes, but the point is that "anything like that" needs to be internalized into the language (and then respected by new user-defined types). 10:06
10:06 smash__ is now known as smash
raydiak hmm 10:08
I'm going to mull that over while I lose conciousness 10:11
good *, #perl6 \o
tadzik o/
10:13 fhelmberger joined 10:16 SevenWolf left 10:17 daniel-s_ left, daniel-s__ joined 10:19 kivutar joined
hoelzro hmm 10:20
the GitHub guy asked what the primary extension for Perl 6 is.
I have .p6 currently 10:21
would .pl/.pm be more appropriate?
tadzik I think it's mostly .pl/.pm, sometimes .pm6, sometimes sometimes .p6 10:22
looking at the module ecosystem
hoelzro I think if anything, I should change it to .pl
10:25 denis_boyun joined, dayangkun left
frettled masak: that's the beauty of LPC in a MUD: no special files 10:27
10:27 sqirrel joined
FROGGS hoelzro: I vote for pl/pm too 10:28
hoelzro ok
we have to pick just one, though =/
10:30 pecastro left
masak frettled: I see :) 10:31
10:33 pecastro joined
frettled masak: everything is much simpler when everything is much simpler! 10:34
frettled could be a philosopher.
masak frettled: well, that's the key to successful DSLs, for what it's worth. 10:35
frettled masak: that said, there are two principal ways of handling recursive cloning, and variations of both could reasonably be offered, I think. 10:36
masak *nod*
frettled One is to copy references where they are, which would work with file handles etc.
But for copying deep values, file handles would probably have be copied as a state snapshot or something like that. 10:37
10:37 xinming left
frettled If "snapshot" isn't copytradepatentyrighted too much, that could perhaps work as a concept. 10:38
10:40 xinming joined
masak hm. I'm missing a concrete context to discuss all this "deep cloning" in. I don't really believe in providing features without solid use cases to back them up. 10:45
10:47 daniel-s__ left, _daniel-s__ joined 10:53 tgt joined, daniel-s_ joined
frettled Snapshotting is at least reasonably easy to say that is useful, since it implies that state can be transferred from one instance to another. 10:54
10:54 _daniel-s__ left
frettled Then again, I think that building deep structures with file handles and whatnot in them is rather nasty. 10:55
FROGGS hoelzro: I'd pick pm, because there are usually more modules than scripts 10:56
hoelzro hmm
true
FROGGS but dunno how much that matters 10:57
hoelzro I'm going by analogy with Perl 5, though
which uses .pl 10:58
10:58 daniel-s_ left 10:59 daniel-s_ joined 11:00 daniel-s_ left
hoelzro hmm 11:00
11:00 daniel-s_ joined
hoelzro linguist doesn't care for the duplicate primary extensions 11:01
masak frettled: right -- in the cases when you'll be wanting to do deep cloning, chances are you're not interested in file handles anyway :) 11:03
frettled: so it's a case of trying to solve a very general problem no-one asked to have solved.
hoelzro you know, I should actually feel pretty good about the attention GitHub is giving my PR 11:06
there are *three* pull requests to get Mercury in there 11:07
11:07 kivutar left
hoelzro all from the same guy 11:07
11:08 denis_boyun left 11:17 denisboyun joined 11:18 xinming left 11:19 xinming joined 11:20 haagenti joined, haagenti left, amkrankruleuen joined 11:22 denisboyun left 11:25 darutoko left, darutoko joined 11:28 xenoterracide joined 11:29 sqirrel left 11:31 xenoterracide left, xenoterracide joined 11:33 dayangkun joined 11:36 daniel-s__ joined, daniel-s_ left 11:38 daniel-s__ left, daniel-s__ joined 11:43 _daniel-s__ joined 11:44 _daniel-s__ left, _daniel-s__ joined 11:45 daniel-s__ left
Woodi tadzik: I think big amount of work is done in NQP so its internals could be covered too... 11:45
tadzik nqp internals actually look quite similar :)
11:45 atroxaper joined 11:46 dwoldrich joined
tadzik as long as you mean the "how does text become program" part 11:46
Woodi hmm, maybe one day someone will say that: here is the NQP, Perl5 succesor. Perl6 is just slang ;)
tadzik: NQP is black box for me :)
hoelzro "how is program formed?" 11:47
that should be the title.
11:47 kaleem_ left
tadzik :D 11:48
hoelzro: l4d today evening?
hoelzro hmm
I have to study for a Russian test tomorrow =/
so *maybe* ;) 11:49
tadzik haha
hoelzro this weekend, I definitely can!
tadzik I passed one of the most hardcore exams on my uni after I spent the night finishing Quake 1 :)
hoelzro sweet
11:55 mberends joined
jnthn hoelzro: If all else fails, just draw a huge bear saying ПРЕВЕД :D 11:56
hoelzro haha 11:57
unfortunately, I think my instructor's too old for that reference =P
12:10 FROGGS_ joined 12:17 _daniel-s__ left 12:18 _daniel-s__ joined, sftp_ left 12:20 sftp joined 12:31 rindolf joined 12:32 FROGGS_ left 12:41 _daniel-s__ left, _daniel-s__ joined 12:42 colomon left
frettled masak: I think so too, yes. 12:46
12:47 daniel-s_ joined
frettled masak: Also, I think this is something that is best solved in a language feature library, _perhaps_ the standard library, but not in language primitives. 12:47
12:47 _daniel-s__ left 12:49 colomon joined 12:55 denis_boyun joined 12:56 daniel-s_ left, daniel-s__ joined 12:58 jnap joined 12:59 colomon left
lizmat j: my @p = (^10).map: { start { sleep $_; .say }}; say "waiting"; Promise.allof(@p); say "done" # what's wrong here? 12:59
camelia rakudo-jvm b227e6: OUTPUT«(timeout)»
lizmat j: my @p = (^2).map: { start { sleep $_; .say }}; say "waiting"; Promise.allof(@p); say "done" # what's wrong here? 13:00
moritz j: say 'alive'
camelia rakudo-jvm b227e6: OUTPUT«(timeout)»
lizmat hmmmm....
moritz it's dead, Jim
lizmat $ perl6 -e 'my @p = (^10).map: { start { sleep $_; .say }}; say "waiting"; Promise.allof(@p); say "done"'
0
waiting
Not enough positional parameters passed; got 1 but expected 2
seems Promise.allof() is broken ? 13:01
13:03 jnap left 13:08 xenoterracide left 13:13 SamuraiJack_ left
lizmat lue: re irclog.perlgeek.de/perl6/2013-12-03#i_7952356 , that is my proposal, yes 13:17
having seen FROGGS++ work on it recently, I'm thinking on making that the default, rather than the authoritative specification 13:18
13:19 daniel-s__ left, _daniel-s__ joined
lizmat but that would bring the burden on the code calling CompUnitRepo.install to have to *specify* name, auth and ver 13:19
jnthn lizmat: You need to await that Promise.allof, but maybe somebody managed to break allof too...
FROGGS lizmat: the thing that calls .install must already know much about the to-be-installed dist, yes 13:20
that is what the META.info is for
jnthn lizmat: I thought we had tests for allof, though... 13:21
lizmat we have, and they passs
jnthn Oh...so I guess it's not allof after all...
Or if it is, something odd. 13:22
That looks exactly like an example I used and demo'd in a recent talk
Though using "sleep" is a really bad way to do it :) 13:23
As you'll fill the thread pool and then get the wrong results :)
Well, not with 10 things, I guess. But still...
lizmat well, yes, it was the sleepsort example, no? 13:27
jnthn Right, but do it with Promise.in($_) :)
Which needs like one thread instead of 10 ;)
13:28 _daniel-s__ left, denis_boyun left
lizmat ah, yes. Maybe that's the difference / problem 13:28
will check in mo
13:28 kivutar joined
timotimo also, don't you want to Promise.allof(@p).result? or does the sinking of the promise do the waiting for us? 13:29
FROGGS lizmat: btw, I'd still prefer a `unit` statement rather than putting auth/var/name/... in pod (and this unit statement is redundant if you use a semicolon form of pkg declaration, because that implies unitness) 13:30
13:31 _daniel-s__ joined
lizmat FROGGS: but what if the same compilation unit has more than 1 package like statement ? 13:31
*and* provide auth/var/name ? 13:32
FROGGS lizmat: only one can have a semicolon (already)
lizmat different from the first: should that then die?
ah, ok
gitcha
FROGGS and only the first one
lizmat gotcha rather
FROGGS so we know if the others are nested or not
I like `unit` because it is a rather important thing 13:33
and it is about what we are talking about: units
lizmat perhaps we should forget about putting any of that information in the source, and force all parameters to CompUnitRepo.install to be obligatory 13:34
FROGGS +1
because the .install don't have to know how to fetch code, it only should are about installing it
lizmat or let each CompUnitRepo.install figure out for itself what parameters it would need 13:35
FROGGS panda knows how to fetch, and it knows where the meta data is
yeah
makes sense+
lizmat ok, I'll change S11 accordingly 13:36
FROGGS ohh, thank you 13:37
lizmat BTW, for the advent, what kind of markup does that need?
FROGGS I am unable to parse your question 13:38
moritz lizmat: html
lizmat ah, ok, good old html
I can do that :-)
jnthn a gitcha sounds like a horrible thing where you have the letters making up the sha-1 in some horrible twisted image and you have to read them before you can git show or something...
moritz (with some caveats, it insert <br /> tags for newlines inside paragraphs)
13:40 dwoldrich left
masak yeah, was gonna say. you don't need to mark up paragraph breaks either. 13:42
but maybe that's a corollary of what moritz++ said. 13:43
ok, so lizmat++ is handlin' Thursday.
who wants Friday? :)
timotimo rebecca black 13:44
tadzik \o/
timotimo++
masak she already got her try, I'd say. :P 13:45
lizmat maybe I should do Friday as well, and elaborate on adverbs on slices ? 13:46
13:47 cognominal left, cognominal joined
jnthn p: say 'Friday'.comb[0, 1, 2 xx 10, 3..*].join 13:47
camelia rakudo-parrot b227e6: OUTPUT«Friiiiiiiiiiday␤»
moritz if I do <alias=original> in a regex, which action method is run? 'alias' or 'original'?
moritz guesses 'original' 13:48
jnthn moritz: original, 'cus the action method is run before teh rule returns
timotimo yes, original
jnthn So the rule has no clue about the alias.
Actions are triggered by !cursor_pass, which is the last thing that happens in a rule
timotimo it would be pretty hard to make that not WAT all over the place 13:49
13:57 _daniel-s__ left
timotimo hoelzro: on steam, you are "Rob"? last online 3 days ago, played defcon, sir you are being hunted and left 4 dead 2? 14:00
hoelzro timotimo: thats me
I know, original name, right? ;)
timotimo friend invite sent :) 14:01
hoelzro excellent =) I'll confirm when I'm $HOME 14:02
arnsholt Oooh, Sir you are being hunted =D
hoelzro it's pretty fun, but really hard
arnsholt D'you know if there's a Linux version?
tadzik there is 14:03
at least steam sells it as such
hoelzro there is
tadzik it doesn't neceserilly mean it works
hoelzro that's what I've been playing
arnsholt Brilliant
hoelzro it works well enough
arnsholt Then I'll probably buy a copy
14:03 kaare_ joined
timotimo sometimes steam shows no linux icon when there clearly is a linux port available, even. 14:03
tadzik (I'm looking at you, the-aircraft-game-from-humble-bundle)
arnsholt I've been wanting to try it from the RPS coverage
timotimo (even when you can just install it on steam on linux)
tadzik it can be "beta" 14:04
hoelzro I was astonished: I discovered a few weeks ago that *over half* of my steam library has Linux support
moritz what's a good way to get the next first date of a month after a given date?
timotimo linux games: 53, all games: 86
makes me a bit sad
tadzik where do I see this?
moritz p: say 53 / 86;
camelia rakudo-parrot b227e6: OUTPUT«0.616279␤»
timotimo next to the search field in your games library, tadzik 14:05
top left
arnsholt moritz: "When does the next month start?", you mean?
tadzik ah, I don't have a steam client at work
moritz arnsholt: yes
timotimo every workplace should have steam clients
hoelzro timotimo: sad?
why sad?
tadzik we only have an xbox :(
timotimo hoelzro: i want 75% at least
hoelzro time will tell =)
timotimo though given that linux is currently at 1% of steam user share ... 14:06
arnsholt moritz: I guess the sledgehammer approach is to set day to 1, month to +1 (or 1 if it's already 12), and increment year if it's december
tadzik do we have 1% of games?
14:06 colomon joined
timotimo 1% of users 14:06
arnsholt Of course, that'll fail for BC dates =)
tadzik yes, but is 1% of steam games available on linux?
moritz arnsholt: that sounds kinda ugly, because it duplicates the Date logic
timotimo tadzik: i don't know
hoelzro I wonder what the breakdown is across the whole store 14:07
quick! someone write a scraper!
hmm
hoelzro checks modules.perl6.org
timotimo there's a big amount of games on steam that came out before steam for linux was a thing and that have probably been abandoned by their developers or something
14:07 jnap joined
arnsholt moritz: Yeah, it's a bit ugly. But I'm not familiar enough with the logic in Date to know if there's a better solution 14:07
timotimo so it wouldn't surprise me very much if the number of total games ported to linux was very low
sjn \o
hoelzro no P6 scraper yet =D
ported? probably not
moritz p: my $d = Date.today; my $c = $d; ++$c while $c.month == $d.month; say $c
camelia rakudo-parrot b227e6: OUTPUT«2014-01-01␤»
moritz works, but not pretty 14:08
hoelzro but I think as more devs leverage existing frameworks, and those frameworks add Linux support, we'll get more games on Linux
moritz r: my $d = Date.today.delta(1, Month); say $d
timotimo yeah. unity is a big one. also the current unreal engine as well as the source engine
arnsholt sjn: I'm stopping by this evening, BTW
camelia rakudo-jvm b227e6: OUTPUT«(timeout)»
..rakudo-parrot b227e6: OUTPUT«===SORRY!=== Error while compiling /tmp/KhFWr9j0qx␤Undeclared name:␤ Month used at line 1␤␤»
sjn arnsholt: great! :)
timotimo i seem to recall something about the crytek engine and linux
sjn arnsholt: bring frettled, so we can see if we can make something #perl6-relevant happen next year :) 14:09
tadzik they hired some Big Deal linux game dev
arnsholt I have no idea how to bring frettled, but I'm coming at any rate
moritz p: my $d = Date.today.delta(1, months); say Date.new($d.year, $d.month, 1)
camelia rakudo-parrot b227e6: OUTPUT«2014-01-01␤»
arnsholt Nice! 14:10
moritz p: my $d = Date.new('2013-12-31').delta(1, months); say Date.new($d.year, $d.month, 1)
camelia rakudo-parrot b227e6: OUTPUT«2014-01-01␤»
moritz p: my $d = Date.new('2013-11-30').delta(1, months); say Date.new($d.year, $d.month, 1)
camelia rakudo-parrot b227e6: OUTPUT«2013-12-01␤»
moritz p: my $d = Date.new('2014-01-01').delta(1, months); say Date.new($d.year, $d.month, 1)
camelia rakudo-parrot b227e6: OUTPUT«2014-02-01␤»
moritz p: my $d = Date.new('2014-01-31').delta(1, months); say Date.new($d.year, $d.month, 1) 14:11
camelia rakudo-parrot b227e6: OUTPUT«day of 2014/2 out of range. Is: 31, should be in 1..28␤ in method check-value at gen/parrot/CORE.setting:14513␤ in method check-date at gen/parrot/CORE.setting:14522␤ in method new at gen/parrot/CORE.setting:14884␤ in method new at gen/parrot…»
sjn nice.
moritz is that a bug in Date.delta? masak?
FROGGS rp: my $d = Date.new("2013-12-13"); $d += $d.days-in-month; say $d.truncated-to(month)
camelia rakudo-parrot b227e6: OUTPUT«2014-01-01␤»
sjn moritz: how would you find the date of the first wednesday next month?
FROGGS rp: my $d = Date.new("2013-11-30"); $d += $d.days-in-month; say $d.truncated-to(month)
camelia rakudo-parrot b227e6: OUTPUT«2013-12-01␤»
moritz sjn: read the advent calendar and stay tuned.
sjn will do :) 14:12
arnsholt moritz: Yeah, that's definitely a bug I think
FROGGS why is it called 'truncated-to' rather then 'truncate-to' ?
timotimo because it returns a new object rather than modifying the existing one?
14:12 raiph joined
moritz FROGGS: because it returns a truncated-to copy 14:13
tadzik steamdb says: "25,953 packages in database", and "Linux Games: 332 games, 252 confirmed to be working"
FROGGS hmmm
tadzik hoelzro: ^ 14:14
hoelzro whoa
tadzik so it's just below 1% :P
timotimo wow
hoelzro that bad?
I like how my library is 50% Linux games
tadzik not sure which of those numbers contains all the dlcs
hoelzro what a poor representation!
if you ask me
timotimo it'd be interesting to categorize the games into release years 14:15
hoelzro Steam should work with Wine/Crossover/whatever to try and bring other games into the Linux fold
timotimo: indeed
tadzik 25k packages, but 13k apps in database
so maybe it's like 2% :P
moritz p: my $d = Date.today.truncated-to(month); say $d + $d.days-in-month
camelia rakudo-parrot b227e6: OUTPUT«2014-01-01␤»
tadzik I don't think wine/whatever will be of any help :/
moritz \o/
I think I like that solution best so far. 14:16
tadzik I'm now playing Witcher on wine, and it usually works perfectly except that it doesn't render HP bars
hoelzro tadzik: I run a few games on Wine
haha
tadzik makes fights a bit more exciting
hoelzro that's kinda important.
is Witcher good?
frettled arnsholt: I suspect sjn is trying to ping me because I'm idle on other channels somewhere or something :)
tadzik yeah, I like it a lot
hoelzro I've been considering giving it a shot
tadzik it feels similar to gothic, except that story has a very strong impact on the gameplay 14:17
timotimo i would like wine integration into steam
but it's not easy
tadzik you often make decisions, and then see the outcome a couple of hours later, when it's too late to change anything
and you get like "oh god what have I done"
arnsholt frettled: Sneaky! =)
hoelzro sweet
timotimo: indeed 14:18
I wouldn't even care if they had a big "not fully supported" sticker on it
tadzik I think it's an option to run the entire steam on wine, and games inside it
hoelzro because for Wine games, I have a wine installation with Steam on it.
moritz has a nice sample program for parsing, Date and rakudo release dates for the advent calendar
hoelzro tadzik: that's what I do now
it's just annoying to switch between/remember which games are on which
and if I have a game installed via Wine, and a native client comes out, steam could tell me 14:19
tadzik we'll have all that and more with steamos streaming \o
assuming one actually has a windows machine
timotimo well, you'll ... yeah
frettled arnsholt: yes, very sneaky! 14:20
timotimo personally, i'm excited to see valve put in work in all subsystems of modern desktop linuces
graphics drivers are an obvious spot where they've already done good stuff, but there's also input and audio
hoelzro could be interesting =)
timotimo networking on linux, on the other hand, i guess is pretty mature already, as is memory management
tadzik yesterday I had a huge fight with l4d2 and skype both working
I should try this teamspeak thing 14:21
hoelzro as long as it benefits everyone, and not just a particular distro
timotimo mumble :)
arnsholt Yeah, I'm moderatly hopeful about Linux and gaming ATM
hoelzro I've never *really* gotten Skype working on Linux
14:21 ajr joined
hoelzro now that I have a tablet, I only Skype on there 14:21
14:21 ajr is now known as Guest14142
timotimo you use your tablet only to skype? what a waste :P 14:22
hoelzro heh
14:23 Gwyxx joined 14:24 Gwyxx is now known as SL-RHanson 14:29 Guest14142 is now known as ajr_ 14:30 PacoAir joined 14:32 raiph left
Woodi can confirm teamspeak works very good 14:35
I realy wanted to rebuy Half-Life 1 3rd time (for linux this time) but debian package had invisible letters on my laptop... and on desktop I had problems with drivers for Radeon... 14:38
14:38 kaare__ joined, kaare_ left
tadzik there's a debian package with half life? 14:39
Woodi linux desktop overall is Just In Sorry State (TM)
steam package
tadzik I don't find the state sorry, tbh
huf it's the year of the linux desktop!
it's been the year since 2000 or so (in my head)
Woodi tadzik: ok, just instalation part is in terrible state... 14:40
tadzik again, I don't see it as such 14:41
huf the worst part is always getting closed source binary stuff to play nice with software :)
tadzik but I generally buy hardware that I know works well with it :)
huf tadzik: you build your own echo chamber!
tadzik haha
yes I do :)
Woodi but SteamOS had/will have Linux as base ?
moritz Woodi: yes 14:42
Woodi except it will be standalone hardware (without rooting capability) ? :) 14:43
huf if so, they'll soon break that open
Woodi I wonder do they do their own X server :) 14:44
huf do they need an x server? 14:45
moritz Woodi: I guess they'll either use an existing one (X, wayland, ..), or directly use OpenGL
writing a new X server certainly doesn't fit their economic niche
huf by the time the game has launched, you dont really need X
Woodi what Android done ? 14:46
huf the gamelauncher UI can be anything. i suppose if they want to support alt-tabbing to the game's wiki, they'll need some X or something :)
unless they expect you to have the game's wiki open on some other device
moritz maybe they'll just start a browser in always-fullscreen mode directly on top of the display, or something
huf :) 14:47
the gamelauncher UI can be a webapp too!
Woodi btw. I found commet containing "embadd*" in NQP src/main.nqp, is Rakudo embadable for use as scripting language in games ? :) 14:48
comment*
14:48 kbenson1 joined
moritz not easily 14:48
tadzik they said hardware will be totally open to rooting or whatnot 14:49
also the OS will be free for everyone to use wherever they want to
timotimo steam big picture already has a browser built-in 14:50
Woodi yea, military guys probably use open source OSes too... for cutting maintenance costs :) 14:52
just guesing :)
moritz everybody uses open source 14:53
it's simply not economical to write your own gzip compression or xml parser/writer "just because"
huf weeeeeeellllll
14:53 kbenson1 left
huf i have friends who work indirectly for the german military in some form 14:53
moritz recently there was a document on reddit that had a list of open source projects used in cars
huf they could tell you tales :)
internally developed terrible xml parsers and such :) 14:54
moritz but let me guess, written in Perl, or in C and compiled with GCC? :-)
huf c or c++ most likely
14:54 kaleem joined
huf but that codebase seems to have ada and fortran in it too 14:54
so it's dwarf-fortress-style fun 14:55
Woodi huf: parsers ? check goverments experimetts with OSes :)
btw. the only one proper book shop in my town (20k) in last year or so reduced IT books space to ~null... and few years ago there was explosion in IT books... probably small statistic sample but I wonder what is happening to this market... 14:59
Thinking in something is not so fun after all ? 15:00
huf i dont even know what our IT book scene is like, except that they insist on translating stuff :) 15:01
Woodi we have some country-made tutorials :) however in the very uncompressed tormat... 15:04
format*...
dalek ecs: 3e8a4d4 | (Elizabeth Mattijsen)++ | S11-modules.pod:
Use pod compunit credentials as defaults only

Leave all the nitty gritty to the actual implementation on the "install" interface.
15:08
lizmat FROGGS: hope that solves your issues ? 15:09
15:10 btyler joined 15:14 kaleem left
ajr_ Woodi: the NIH ("Not Invented Here" principle is alive and well in large organisations. If you've just wasted 4 years learning to write compilers, and landed a job, are you going to tell your boss that they don't need you to write another one? 15:19
15:22 [Sno] left
Woodi ajr_: no, no one want to say that :) but on positive side usually big organizations do researches and experiments, it need to take time. and security in NIH is important too 15:28
ajr_ Proprietary security usually isn't. 15:29
15:29 breinbaas joined
Woodi but sometimes there are real problems. eg. inventing and researching and again things when Linux is quite good for games :) 15:29
jnthn suspects jobs writing compilers are relatively rare. :) 15:33
timotimo jnthn: what piece of code is responsible for mapping the annotated methods to the coderefs? 15:34
jnthn timotimo: Lives in CompilationUnit.java, iirc
timotimo thanks
jnthn Which is in nqp repo
Woodi btw, I lastly asked student of mechanics of planes about softvare in planes and he do not know about "software crisis". on the other hand he pointed that computers have problems with managing physical machines eg. opening and closing something in engine 8k/second - even magnetic lock are too slow. 15:35
PerlJam suspects that jobs writing compilers either don't exist or are ubiquitous depending on your idea of "compiler" ;)
jnthn PerlJam: Well, there is that ;)
Woodi so computers are kind of virtual boxes, not quite connected to reality :)
hoelzro hmm 15:36
what's nibble for?
(in Perl6::Grammar)
15:36 jnap left
Woodi compilers was just example of jon in big organizations :) 15:36
15:36 jnap joined
Woodi job* 15:36
PerlJam I recently purchased a new family vehicle. It's essentially a set of computers with an engine and various other interfaces. 15:38
Woodi can you use calculating power from that comps ? :) 15:40
PerlJam when I looked under the hood, the engine itself looked like a black box (literally). The only "normal" enginey bits I recognized were the places where you either check or add fluids (oil, brake fluid, radiator fluid, etc)
geekosaur whee bsod at 90kph :p
timotimo geekosaur: i know this! you just have to delete the cookies! 15:42
15:44 sivoais_ is now known as sivoais, sivoais left, sivoais joined
timotimo jnthn: what's the significance of methods starting with qb_? 15:46
that could be the mistake i made. 15:47
Woodi timotimo...
we needs more timotimo++ 15:48
15:48 salv0 left
jnthn timotimo: shrot for "qast block" 15:48
Don't think it's significant
beerdecommute & 15:49
timotimo i think that fixed it 15:52
hoelzro hmm
speaking of beer
does anyone remember what that delicious dark beer we were drinking at Frankfurt & Friends was called?
soooo good
15:53 salv0 joined 15:55 tzhs joined
timotimo now with the given arity, the dispatcher ought to throw an exception, but doesn't :/ 15:57
15:58 vaclavstrachon joined 15:59 Psyche^_ joined 16:03 Psyche^ left
lizmat hoelzro: sorry, my mind's a blank. Beer was too good, I guess 16:03
16:04 denis_boyun joined
hoelzro looks it up 16:05
lizmat cycling&
timotimo pff. outputting the passed arity in the error message seems like quite the challenge in jvm bytecode >_<
hoelzro I think it was www.andechs.de/ 16:06
(Kloster Andechs, not the town)
16:06 thou joined 16:07 tzhs left
timotimo how do i concatenate an integer to the end of a string with the smallest number of jvm bytecode? :\ 16:08
16:10 kst` is now known as kst
TimToady timotimo: that's ambiguous, do you mean as a codepoint, or as a stringified number? 16:12
timotimo stringified number
TimToady (not that I have an answer)
timotimo searching for that thing gives me only posts about how java turns series of + into stringbuilders behind the scenes 16:13
16:14 salv0 left
TimToady imagines that one can help things a great deal by doing lazy concatenation 16:15
timotimo yeah. allegedly, java has trouble if you have a loop a la string += foobar 16:16
it will make one stringbuilder per iteration
TimToady and anything that does not require substr can just traverse the list as a ropey string
timotimo yeah 16:17
16:17 atroxaper left, salv0 joined
TimToady a substr might force the rope to get regularized 16:17
timotimo unless you happen to substr a single string inside the rope :)
iirc, it could also regularize only a part of the whole thing, right?
TimToady well, or it could build the offset index for strands of rope 16:18
lotsa ways to run it without leaking the abstraction, if you don't count performance
the proposed Cat type is really just a lazy rope 16:21
timotimo oh, String.concat seems helpful
TimToady and the concat can be lazy without making the individual bits lazy, if side effects are a concern 16:22
16:22 ajr_ left
TimToady something like say/print can just traverse the list without actually doing the concat 16:22
arnsholt timotimo: String.format lets you do printf-style formatting of strings
16:22 ajr joined 16:23 ajr is now known as Guest44389
Guest44389 ajr_ 16:23
arnsholt If you want a fixed string with a varying number in the middle that might be the simplest
Java lets you infix:<+>(String, int), but not sure what sequence of JVM ops that translates to 16:24
timotimo i want it at the end :)
i think i got it now.
16:25 Guest44389 is now known as ajr_
timotimo except i don't really know how to work the method instruction visit method dhing 16:26
because i have an integer on the stack, but it seems like i need an Integer 16:28
arnsholt Have you tried to just use the native int? I think the JVM should autobox 16:29
16:29 [Sno] joined, ssutch joined
timotimo ah, i need Integer.toString 16:31
The call to java.lang.StringBuilder.insert doesn't support the given arity: 3 in block at boot_interop_test.p6:1 16:33
\o/
16:33 sqirrel joined
timotimo The call to java.lang.StringBuilder.insert is ambiguous. Please specify any of the following instead: 16:33
(IJ)Ljava/lang/AbstractStringBuilder;, (IC)Ljava/lang/StringBuilder;, (II)Ljava/lang/StringBuilder;, (IJ)Ljava/lang/StringBuilder;, (IF)Ljava/lang/StringBuilder;, (I[C)Ljava/lang/StringBuilder;, (ILjava/lang/String;)Ljava/lang/StringBuilder;, (ILjava/lang/CharSequence;)Ljava/lang/StringBuilder;, (ILjava/lang/Object;)Ljava/lang/StringBuilder;, (IZ)Ljava/lang/StringBuilder;, (IZ)Ljava/lang/AbstractStringBuilder;, (IC)Ljava/lang/AbstractStringBuilder;, ...
16:33 vaclavstrachon left
timotimo ... (II)Ljava/lang/AbstractStringBuilder;, (ILjava/lang/String;)Ljava/lang/AbstractStringBuilder;, (ILjava/lang/Object;)Ljava/lang/AbstractStringBuilder;, (ILjava/lang/CharSequence;)Ljava/lang/AbstractStringBuilder;, (I[C)Ljava/lang/AbstractStringBuilder;, (ID)Ljava/lang/StringBuilder;, (ID)Ljava/lang/AbstractStringBuilder;, (IF)Ljava/lang/AbstractStringBuilder; 16:33
\o/ \o/
i guess those should also prepend /method/*methodname* before the suggestions 16:34
16:40 raiph joined
masak timotimo++ 16:45
that looks frightening but awesome :)
16:50 raiph left
Woodi masak: we will have Factories and other abstracts soon too ;) 16:56
ajr_ Does O-O stand for "Objectionably Obfuscated"? 16:57
timotimo i can't run spectests on java at the moment :\
Woodi ajr_: it's not obfuscation, it is orientation :> 16:58
timotimo does anyone in here have the capability to do a spectest run on jvm for me? 17:00
masak tends to specialize in object-disoriented programming 17:01
geekosaur objectively disoriented? 17:03
17:05 VSC joined
dalek p/jvm_interop_dispatchers: 2629714 | (Timo Paulssen)++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/BootJavaInterop.java:
first working version of the arity-based dispatcher in java-land.
17:06
p/jvm_interop_dispatchers: 286948c | (Timo Paulssen)++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/BootJavaInterop.java:
remove lots of debug output
Woodi looks current industry abstraction of choice is VM... 17:07
17:08 sqirrel left
Woodi maybe OSes should replace proceses with threads run on gced-vms 17:10
or maybe I wont premature unification :) 17:11
want*
but looks TimToady was working on signals yesterday ;) 17:12
timotimo jnthn: could it be that the arity counting of jvm and nqp disagree on wether or not to count the invocant? 17:13
it would seem so.
hoelzro friend added!
timotimo \o/
hoelzro Steam pisses me off sometimes
too many sales
timotimo "stop offering me great deals for games at ridiculous prices!" 17:14
hoelzro they're making me poor! 17:15
Woodi you can resell cards! 4 cents each!
timotimo you don't have that many games :P 17:16
17:16 zakharyas joined
hoelzro I feel pretty good about my game count =/ 17:16
I feel pretty bad about my *unfinished* game count, though!
timotimo hehehe
or perhaps i have to differentiate static vs virtual methods in this case? maybe one counts the invocant towards the arity and the other doesn't? 17:20
17:20 kaleem joined 17:22 rurban1 joined 17:23 fhelmberger_ joined
tadzik hoelzro: I think I sent you an invite too 17:23
17:23 fhelmberger left
hoelzro tadzik: I confirmed it =) 17:23
tadzik okay :) 17:24
17:27 fhelmberger_ left
moritz since day 6 of the advent calendar is free, and my post is almost ready, should I move from day 7 to 6? 17:32
17:32 rurban1 left 17:33 pmurias joined
moritz is impatient, and does it 17:34
dalek : 5fb1f9f | moritz++ | misc/perl6advent-2013/schedule:
move my post from 7 to 6

it is mostly done, and gives us more time to find somebody to fill the free slot
masak hands moritz some forgiveness ;)
ingy snatches it away
17:38 SamuraiJack_ joined
moritz alright, post scheduled for publication. 17:39
17:39 kivutar left 17:40 kivutar joined
FROGGS lizmat: yes, I like it :o) 17:41
17:41 ingy left
masak speaking of impatience: is there a draft for tomorrow's Advent post to read yet? :) 17:48
17:50 ingy joined
timotimo i find it annoying how many games require me to turn off my second monitor in order to work properly 17:50
17:51 ajr_ left 17:52 btyler left 17:57 Rotwang joined 17:59 sqirrel joined
timotimo i can't seem to figure out how to make this dispatcher work properly :\ 18:00
18:02 PZt left 18:03 sftp left, dakkar left, dalek left 18:04 sftp joined, dalek joined, ChanServ sets mode: +v dalek
diakopter timotimo: just dispatch it 18:05
timotimo 18:06
18:06 sergot_ left 18:07 sergot joined
pmurias how will quasi quoting other languags work in Perl6? 18:07
like [xml|<foo>bar</foo>] in haskell? 18:08
18:08 VSC left 18:09 VSC_ joined
moritz by having a compiler to the Perl 6 AST format, I suppose 18:09
and yes, I know that's pretty vague. 18:10
18:11 kaleem left 18:12 hummeleB1 left 18:13 VSC_ is now known as VSC
timotimo bleh, i say. 18:14
dalek p/jvm_interop_dispatchers: cb9d770 | (Timo Paulssen)++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/BootJavaInterop.java:
try to make this work. fails spectests.
18:16
timotimo if someone would like to try to fix this up, i'd be happy
18:19 PZt joined, cognominal__ joined, SamuraiJack_ left
pmurias moritz: what I'm really asking about is are there plans to support more specifically then general language extensions? 18:20
18:20 VSC left 18:22 cognominal left 18:24 xenoterracide joined
moritz pmurias: I'm not aware of any 18:27
18:29 araujo left
dalek kudo-star-daily: 14e2b5f | coke++ | log/ (5 files):
today (automated commit)
18:30
rl6-roast-data: 96a5756 | coke++ | / (3 files):
today (automated commit)
18:31 araujo joined 18:36 V_S_C joined 18:44 zakharyas left 18:51 darutoko left 18:52 V_S_C left
dalek ecza: d1cf73b | coke++ | t/spectest.data:
recent changes to roast make this mostly fail.
19:00
ast: 6312c18 | coke++ | S0 (4 files):
partial niecza fudge
19:01
pmurias moritz: having recently played around with quasi quoting in haskell it seems more usefull then just adhocly expanding the language 19:06
jnthn timotimo: If you're calling a static method then the args coming in will have one more positional than you need to have on the stack for the call, I guess... 19:07
But I'd imagine that's already partly taken care of...
19:11 kaare__ left
timotimo i'll be gone until tomorrow now. 19:19
FROGGS see ya o/
timotimo don't hesitate to fix my code for me :P 19:20
19:20 kaare__ joined
Rotwang hi 19:21
I'm going through: perl6advent.wordpress.com/2012/12/2...23-macros/ 19:22
and I wonder if the LOG macro is inside module how would I make it configurable from caller?
LOGGING is constant so I can never change it, so it is possible to assign False to LOGGING if I modify my module sources only? 19:23
19:25 bluescreen10 joined
FROGGS you could declare another constant LOGGING in your code, no? 19:25
rp: constant Foo = True; { constant Foo = False; say Foo } 19:26
camelia rakudo-parrot b227e6: OUTPUT«False␤»
FROGGS rp: constant Foo = True; { constant Foo = False; say Foo }; say Foo
camelia rakudo-parrot b227e6: OUTPUT«False␤True␤»
moritz Rotwang: you could do constant LOGGING = %*ENV<YOURAPP_LOG>;
FROGGS: won't help, since the macro always resolves the same constant
it doesn'T say COMPILING::<LOGGING> 19:27
19:28 ajr_ joined
moritz but masak++'s point was that you have to change only one piece of code (the constant) to enable/disable logging, and have 0 runtime overhead in the no-logging case 19:28
FROGGS rp: constant L = True; macro log($m) { if $m { say {{{$m}}} } }; log "foo"; { constant L = False; log "bar" } 19:29
camelia rakudo-parrot b227e6: OUTPUT«Block.new()␤===SORRY!===␤too few positional arguments: 2 passed, 3 (or more) expected␤»
FROGGS rp: constant L = True; macro log($m) { if $m { quasi say {{{$m}}} } }; log "foo"; { constant L = False; log "bar" }
19:29 kaare__ left
camelia rakudo-parrot b227e6: OUTPUT«===SORRY!=== Error while compiling /tmp/mjx4Gz9nKC␤Missing block␤at /tmp/mjx4Gz9nKC:1␤------> L = True; macro log($m) { if $m { quasi ⏏say {{{$m}}} } }; log "foo"; { constant ␤ expecting any of:␤ …» 19:29
19:30 kaare__ joined
FROGGS rp: constant L = True; macro log($m) { if $m { quasi { say {{{$m}}} } } }; log "foo"; { constant L = False; log "bar" } 19:30
camelia rakudo-parrot b227e6: OUTPUT«foo␤bar␤»
FROGGS :/
rp: constant L = True; macro log($m) { if L { quasi { say {{{$m}}} } } }; log "foo"; { constant L = False; log "bar" }
moritz FROGGS: think of the macro as a closure
camelia rakudo-parrot b227e6: OUTPUT«foo␤bar␤»
moritz it closes over the constant L
FROGGS yeah 19:31
19:31 xenoterracide left
FROGGS I wrote my first macro right now btw :o) 19:31
19:31 xenoterracide joined 19:36 TimK1 left 19:39 xenoterracide left
moritz tratt.net/laurie/blog/entries/the_b...amage_done 19:41
19:44 ingy left, ingy joined
moritz not a particularly good article, but I found it entertaining 19:45
Rotwang can I somehow grab constant from default namespace? 19:46
19:46 rurban1 joined
moritz well, there is a GLOBAL:: 19:47
PerlJam moritz: the line "In essence, a compiler is a simple batch pipeline process." made me smile :) 19:48
well, that one and all of the other assumptions that are made throughout :) 19:49
moritz and the lack of examples 19:50
lizmat masak: re draft for tomorrow's, no, I'm still working on it :-) 19:55
masak nice to hear it's coming along. :) 19:59
19:59 kivutar left 20:00 rurban1 left
masak FROGGS++ # first macro! 20:02
FROGGS :o)
dalek osystem: 00ca280 | (Tobias Leich)++ | META.list:
added JSON::Pretty
20:05
20:11 kivutar joined
jnthn
.oO( And coming soon: JSON::Ugly )
20:19
perigrin I think that's just called JSON. 20:20
FROGGS I like JSON
(for the reasons I hate XML) 20:21
20:21 jnap left
PerlJam FROGGS++ 20:21
20:21 jnap joined
jnthn TimToady: I've been looking at optimizing away capture creation somewhat, to cheapen calls and let us get close to how (in this case) the JVM likes to do arg passing for some of the simple and very common cases. 20:25
TimToady: The thing I'm running up against is that callsame/callwith/nextsame/nextwith always need the capture handy. 20:26
20:27 tipdbmp left 20:30 tipdbmp joined
jnthn TimToady: So, I guess my question is, how statically can be spot that? Can I rely on "is one of these called in the lexical scope of the routine"? 20:31
20:34 sqirrel left 20:42 SevenWolf joined
PerlJam I would guess that you can make a Block that could hide the call to callsame/callwith/nextsame/nextwith outside of the lexical scope, but my quick skim of the spec didn't reveal something explicit one way or another 20:45
jnthn PerlJam: I'm not sure sure how you could...'cus blocks have their own dispatchers too (have to for &foo.wrap({ say 'omgz'; callsame }) to work) 20:46
PerlJam oh. maybe so. 20:47
jnthn PerlJam: About the only way I can see you managing it is weirdness like my &foo := &callsame; # or so
moritz &::('callsame')
jnthn I'm think this wants to be in the same territory as eval. The optimzier can by default assume there'll be an actual direct call... 20:48
And if there's not, go optimizing.
We can always provide pragmas for people who want their code to run slower. :) 20:49
PerlJam sounds sane to me
jnthn As "use soft" does today :)
lue hello world o/
moritz jnthn: would it be very hard to create the capture on demand? 20:50
jnthn moritz: Well, it's...icky
moritz I mean you know the arity statically when you that optimization
jnthn I mean, we could go and look at the signature, and look up the lexicals...
But what if you didn't give them names? 20:51
20:51 rindolf left
moritz hm. 20:51
jnthn Or what if we then optimized lexicals into cheaper locals 'cus you never close over them?
moritz then you need to use the locals :-)
but I see your point(s)
jnthn Well, on Moar I can make that happen. On JVM...we don't have general stack inspection to do that. 20:52
Heck, once the JITs had its way the stack probably looks nothing like you'd imagine it might even if you could.
dalek kudo/nom: 262e600 | (Elizabeth Mattijsen)++ | src/core/Mu.pm:
Properly DEPRECATE bless(*) calls
20:53
20:54 ivanshmakov joined
lue lizmat (re =NAME, =AUTHOR): I'm not entirely sure I like using Pod to give info to non-Pod things, but it's alright I guess :) [I was imagining something like module Foo::Bar:auth<baz>; before] 20:54
20:57 zakharyas joined
ivanshmakov “… most complete / actively maintained … github.com/fperrad/lua …” — parrot.org/languages/. 20:58
With last commit being more than a year and a half ago, that doesn’t look quite like “actively maintained.” Is it “most complete”? 20:59
FROGGS ivanshmakov: where do you have that info from? 21:01
jnthn FROGGS: I asume the linked parrot.org/languages/ :) 21:02
jnthn has no idea of its status, though.
FROGGS ahh, yes
was looking at parrot's wiki, and it showed that this lua was built against parrot 3.3 and under development
ivanshmakov: no, I don't think that it is really actively maintained, but I can't answer your other question :/ 21:03
Rotwang is there specification for perl6 package manager? I'm trying to figure out if panda is going to call Makefile during installation 21:04
FROGGS Rotwang: it does not currently
moritz but iirc there is *something* it calls 21:05
FROGGS but you can supply your own Build.pl or what it was called
moritz maybe look at Perl6::Debugger
jnthn I think Rakudo::Debugger does, that, yeah.
FROGGS Rotwang: here github.com/jnthn/rakudo-debugger/b...r/Build.pm 21:06
Rotwang cool, thanks!
21:09 dmol left
ivanshmakov (My guess is that someone should ping the webmaster…) 21:10
moritz ivanshmakov: my guess is that the website is as unmaintained as parrot itself 21:11
jercos badum tish 21:13
ivanshmakov moritz: With a new release happening less than two weeks ago? Doesn’t seem all that unmaintained, I guess.
FROGGS ivanshmakov: yes, but there is not much happening
moritz ivanshmakov: have you looked at the changelogs? 21:14
lizmat masak: draft of tomorrow's perl6 advent: gist.github.com/lizmat/7795668
moritz ivanshmakov: most of it is merges of a 12+ month old merges, or build system
FROGGS I hope that someone will step in though
lizmat everybody else: comments welcome!
ivanshmakov FROGGS: Looking at $ git log right now. Indeed, alas.
FROGGS moritz: hey! I submitted a patch two months ago :o)
nwc10 I wonder if there are easily acchievable wins from suggestions in simeonfranklin.com/poster.pdf 21:16
moritz lizmat: I like it, except the three empty heading at the end 21:17
lizmat well, I figured I post this while I fill in the last sections :-)
Rotwang nwc10: so called "quick wins" 21:18
21:18 ssutch left 21:21 stevan_ left
masak lizmat: looking 21:22
lizmat: lines are very long, so it's easier to read raw: gist.github.com/lizmat/7795668/raw...tfile1.txt
lue lizmat: "until earlier this year I decided" -> "until earlier this year when I decided" (under <h1>Enter IS DEPRECATED</h1>) still reading :) 21:23
masak: I'm using /raw/ too :)
masak lizmat: "overseeable"? I don't know what you mean there. 21:24
lizmat: do you mean something like "small enough to get an overview of"?
lizmat I guess it's a dutchism 21:25
yes
removed
lue "manageable" seems the best fit; but I don't know Dutch too well :)
lizmat "The changes to calls to bless() in the core setting were implemented by moritz++." 21:26
masak lizmat: looks good.
lizmat: do you intend to write things under the remaining three headings? 21:27
lue Sounds right to me. lizmat++ for the post so far, by the way. (I have no problems believing the rest will turn out find ☺)
s/find/fine/
lizmat masak: yes
masak because it would be perfectly cromulent to stop there and save the other topics for another day if you want.
...thus filling more spots :>
lizmat ah, ok
hmmm.......
masak lizmat++ either way
lizmat yes, that would make life easier
masak 'night, #perl6 21:28
lizmat and give me more time to reasearch
lue lizmat: If you do end it there, a mention about how to accomplish bless(*) now would be nice. ("(by the way, if you need that candidate to be something other than *, use a custom SUBBUILDTIMETHING method)") If it can fit, that is. 21:29
masak o/
lizmat ok, I'm dropping the last 3
hmm... I'm actually not sure how you would specify another representation than P6Opaque 21:32
jnthn is repr('...') 21:33
lizmat you mean: 21:34
lue It's fine if you don't, it's just a small thing that's been nagging... oh hai jnthn o/
lizmat class is repr("P6Hash") ?
jnthn There's some examples in CORE.setting
Well, nearly
class Foo is repr('VMArray') { } # for example
Need a class anme to make it syntactically valid. 21:35
Or a ::
Otherwise it takes "is" as the class name.
lue jnthn: I think maybe the name was implied :)
jnthn Then gets sad :)
lizmat I think that that would be taken the blog post into a really different direction
jnthn I didn't read the post yet, but yeah, it's a kinda esoteric area :)
moritz I would leave it out too 21:36
lue lizmat: like I said, if it fits. Now that I know, I don't particularly care if it's in the post :P
moritz since that was never a real-world use case for the first argument to bless
lue just thought of a method new() that let you choose your own repr. self.bless(:$repr, ...) 21:38
21:40 ssutch joined 21:41 kivutar left 21:43 ssutch left, kaare__ left 21:44 ssutch joined
lizmat updated the draft: gist.github.com/lizmat/7795668/raw...tfile1.txt 21:44
last 2 paragraphs are new
lue lizmat++ again for the post 21:46
PerlJam lizmat++ maybe show the change you made to deprecate bless as an example for the 2nd to last paragraph? 21:50
lizmat that's the thing: "is DEPRECATED" doesn't work in the core
21:50 araujo left
lizmat so in the core, there is really a hack to get the same functionality 21:50
so I'd rather not do that
PerlJam oh, I see. 21:51
21:51 araujo joined 21:54 dmol joined
lizmat scheduled for 23:00 UTC, is that too early ? 21:55
PerlJam not for me :) 21:56
only 8 days unfilled on the schedule #perl6++ (for making it come together) 21:59
lizmat maybe I *should* do another one about Sets/Bags 22:00
as the interface sort of changed, apart from the naming as well
PerlJam lizmat: Sounds excellent to me. Plus it'll be from a different person and so a different perspective. 22:01
(I don't think that a topic has already been covered in past years should preclude it from showing up again if there's something new to say) 22:02
22:02 sricloud left
lue PerlJam: agreed 22:02
lue hopes Bags can be constructed with ⟅ ⟆ :P 22:03
PerlJam I mean ... we cover "The State of Perl 6" every Dec 1 ;)
22:05 dmol left
raydiak class Foo is repr('VMArray') # where can I read about this? 22:08
dalek : a658a16 | (Elizabeth Mattijsen)++ | misc/perl6advent-2013/schedule:
[12] Bagging the changes in the Set specification
22:10
PerlJam raydiak: in the zavolaj repo is a README that explains it IIRC.
TimToady rosettacode.org/wiki/K-d_tree#Perl_6 22:11
lizmat so day 12 should also be covered now 22:12
TimToady jnthn: I'm fine with requiring declarative pessimization of occult nextsame 22:14
PerlJam raydiak: oh, maybe not. I just acked and didn't see it.
raydiak ah, I see...let me rephrase the question as what I'm really wondering: is "class Foo is Array" good for my post on array-based objects?
jnthn TimToady: OK, thanks. Will work on it. 22:16
TimToady raydiak: that would depend on whether the subclass requires intimate knowledge of the superclass, since it can only access Array through its public interface
jnthn raydiak: You almost certianly don't want to be talking about is repr there, I think. 22:17
raydiak jnthn: that's what I figured, just thought I'd check
TimToady: I don't think it does...it's basically just an array with a few extra methods which access the contents of the array, methinks 22:18
TimToady short night was short; nap & 22:19
22:20 PacoAir left 22:27 denis_boyun left, thou left 22:31 daniel-s_ joined
dalek p/indy-args: 8510360 | jnthn++ | src/vm/jvm/QAST/Compiler.nqp:
Fix string-literal splitting to account for utf-8.
22:31
p/indy-args: 4b6085d | jnthn++ | src/NQP/ (2 files):
Avoid overly-cautious initializations.

This teaches NQP to distinguish 'my @a := [...];' from a 'my @a'. In the first case, we need not initialize @a with an empty array that we immediately throw away. Same for %h. For scalars it's less of a waste as we allocate nothing, but still can avoid the work.
22:37 daniel-s_ left 22:38 raiph joined 22:44 daniel-s_ joined 22:47 ajr_ left 22:53 raiph left
dalek p/indy-args: d77348a | jnthn++ | src/QAST/ (15 files):
Don't make throw-away slurpy arrays in QAST nodes.

Switch to using a sentinel and optional parameter. This should be a win on all backends.
23:05
kudo/opts: a473450 | jnthn++ | src/Perl6/Optimizer.nqp:
Don't pass nqp::null to a QAST node!
23:06
23:08 Rotwang left 23:12 rurban1 joined 23:18 stevan_ joined
[Coke] yawns 23:25
23:30 bluescreen10 left 23:31 ssutch left
lizmat just realizes that she scheduled her post 24 too late 23:39
*hours
jnthn fail :) 23:40
lue just change the time to <right day>@00:01 UTC! Hurry, you only have 20 minutes! 23:43
dalek p/indy-args: 647351b | jnthn++ | src/QAST/Node.nqp:
Optimize QAST node creation.

Worth it since it's a very hot path.
23:45
23:47 daniel-s_ left
tadzik what does indy stand for? 23:51
jnthn invoke dynamic
Though, last few commits in this branch aren't much to do with it... :)
lizmat well, it's published now 23:52
23:53 ssutch joined
lizmat I've updated the table of contents, but now it's no longer on top 23:53
23:56 rurban1 left
jnthn lizmat++ # nice post! 23:56
23:56 jeff_s1 joined
lizmat now I wish I knew how to get the TOC on top again 23:57
23:58 dayangkun left
jnthn ain't sure 'bout that; sorry... 23:58