»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
00:01 jevin left, molaf left 00:03 [Coke] left 00:04 [Coke] joined 00:06 jevin joined 00:09 [Coke] left 00:11 [Coke] joined 00:13 soh_cah_toa_ joined, soh_cah_toa left 00:15 [Coke] left 00:16 eiro left, rhr left, Woodi left, domm left, literal left, soh_cah_toa_ is now known as soh_cah_toa 00:20 eiro joined, domm joined, rhr joined, Woodi joined 00:22 [Coke] joined 00:26 [Coke] left 00:28 [Coke] joined 00:32 [Coke] left 00:34 [Coke] joined 00:35 ccc joined 00:38 [Coke] left 00:40 [Coke] joined 00:42 donri left 00:45 [Coke] left 00:46 [Coke] joined 00:51 [Coke] left 00:53 [Coke] joined 00:56 thou joined 00:59 [Coke] left 01:00 [Coke] joined 01:01 woosley joined 01:05 [Coke] left 01:07 [Coke] joined 01:11 [Coke] left 01:13 [Coke] joined 01:14 araujo left 01:17 [Coke] left 01:19 [Coke] joined 01:22 mkramer1 joined 01:24 [Coke] left 01:25 mkramer2 joined 01:26 [Coke] joined, tomaw is now known as 13WAAIF5K 01:28 mkramer1 left 01:30 [Coke] left 01:32 [Coke] joined 01:37 [Coke] left 01:38 [Coke] joined 01:40 wolfman2000 joined 01:41 whiteknight left 01:43 [Coke] left 01:45 [Coke] joined 01:47 literal joined 01:49 [Coke] left 01:51 [Coke] joined 01:57 [Coke] left 01:58 [Coke] joined 02:00 [particle] left 02:01 [particle] joined 02:02 abercrombie left 02:03 [Coke] left 02:05 [Coke] joined 02:10 [Coke] left, abercrombie joined 02:11 [Coke] joined, agentzh joined 02:16 [Coke] left
lue hm, nom silently fails when I try to use for 1..2**30 . I have a feeling it's cos the range is too big. [I know it's an issue with nom, because there's debugging text it should print every iteration of the loop] 02:17
02:18 [Coke] joined 02:23 [Coke] left
colomon nom: say 2**30 02:23
p6eval nom 53b1d8: OUTPUT«1073741824␤»
colomon nom: (1..2**30).map({ .say }) 02:24
p6eval nom 53b1d8: ( no output )
colomon nom: (1..2**3).map({ .say })
p6eval nom 53b1d8: ( no output )
colomon nom: for 1..2**3 { .say }
p6eval nom 53b1d8: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤»
colomon nom: for 1..2**30 { .say } 02:25
02:25 [Coke] joined
p6eval nom 53b1d8: OUTPUT«(timeout)» 02:25
lue although 2**15 (halving the exponent) works just fine [unfortunately, project euler wants 2**30]
colomon you do realize that doing anything 2**30 times in rakudo will take at least days, right? 02:26
02:27 ccc left
lue yes :/ [I did the math while testing the code with more sane values] 02:27
I got it down to 1024 loops every 3-4 seconds, but that doesn't help much :) 02:28
02:30 [Coke] left
colomon nom: say 2**20 02:30
p6eval nom 53b1d8: OUTPUT«1048576␤»
colomon nom: say 2**20 / 3600
p6eval nom 53b1d8: OUTPUT«291.271111111111␤»
colomon nom: say 2**20 / 3600 / 24
p6eval nom 53b1d8: OUTPUT«12.1362962962963␤»
colomon so that's like 40 days to finish at 1024 every 3-4 seconds... 02:31
02:31 [Coke] joined
lue I'd question PE's sanity on picking 2**30, but then I remember they don't use P6 :) 02:32
[ah well, off to try another problem...] 02:33
colomon what problem is it?
lue number 301 02:35
lue fears the theoretical nim game with the smallest stack containing 2**30 stones 02:36
02:36 [Coke] left
colomon lue: I'd be really surprised if they picked 2**30 AND a brute-force solution is the only way to tackle the problem... 02:40
.oO(is just me, or do euler problems (at least the more recent ones) rely a bit too much on really large numbers?)
nom: say "bolton".reverse; say reverse("bolton"); 03:12
p6eval nom 53b1d8: OUTPUT«bolton␤bolton␤»
abercrombie nom: say "bolton".flip; say flip("bolton") 03:14
p6eval nom 53b1d8: OUTPUT«notlob␤notlob␤»
abercrombie Why there is a 'reverse' method for Str? 03:19
plobsing better question, why doesn't it return ipswitch? 03:20
lue nom: say "bolton".reverse.perl
p6eval nom 53b1d8: OUTPUT«("bolton",).list␤»
plobsing it is the *parrot* vm after all
lue reverse converts the Str to a one element array, apparently. [that's not very dwimmy] 03:21
03:21 Trashlord left 03:24 Su-Shee_ joined
Tene abercrombie: it's part of the general philosophy of making scalars behave like one-item lists. 03:25
jlaire lue: many project euler problems have a obvious but slow algorithm, and a less obvious but fast algorithm 03:26
including 301
Tene perl6: 1.map: *.say
p6eval niecza v9-5-gec4c616: OUTPUT«1␤»
..rakudo a55346: ( no output )
..pugs: OUTPUT«Inf␤*** Cannot cast from VList [VBool True] to Pugs.AST.Types.VCode (VCode)␤ at /tmp/aJKPeqTRmS line 1, column 1 - line 2, column 1␤»
03:26 Su-Shee left
Tene perl6: "foo".map: *.say 03:26
p6eval pugs: OUTPUT«Inf␤*** Cannot cast from VList [VBool True] to Pugs.AST.Types.VCode (VCode)␤ at /tmp/7Z7XyDZ1hA line 1, column 1 - line 2, column 1␤» 03:27
..niecza v9-5-gec4c616: OUTPUT«foo␤»
..rakudo a55346: ( no output )
Tene Huh; I wonder why rakudo fails there
nom: "foo".map: *.say
p6eval nom 53b1d8: OUTPUT«*␤»
Tene nom: "foo".map: { say $^i }
p6eval nom 53b1d8: ( no output )
abercrombie The memory leak problem finally got fixed? 03:32
03:34 araujo joined 03:41 wolfman2000 left 04:01 birdwindupbird joined
sorear good * #perl6 04:02
oopsie, forgot to report #phasers 04:06
04:07 cognominal___ joined
sorear colomon: template<typename S> class MyRole<S> : public S { ... }; class MyClass : public MyRole<SuperClass> { ... } 04:09
colomon: not strictly roles, but described in the roles paper as one of the most similar prior systems 04:10
04:10 cognominal_ left
sorear pmichaud: plobsing: IIUC (and currently implemented in Niecza), CATCH { die $! } has the effect of creating a second exception (from the die) while simultaneously rethrowing the original unhandled exception, and is an easy way to get a 2-simultaneous-exceptions scenario 04:14
plobsing: pmichaud: I'm not thrilled with this, or with the spec behavior of LEAVE { die } for that matter. 04:15
.oO( leave and let die )
so what happens to the second pending exception if the first bubbles all the way to the top? does it get dropped? 04:26
04:44 jedai left
sorear plobsing: the set of pending exceptions stays together as it bubbles up, and they are all printed before exit 05:08
TimToady: Consider my int $x,$y,$z; ...; $x = ($y + $z) div 2; 05:09
TimToady: the user probably intends for the sum to be calculated as a fixnum. Is it possible to get these semantics in Perl 6?
TimToady int is just a storage type; temporary calculations are done in Int semantics, by current spec, methinks 05:14
course, you have an undeclared $y and $z there... :P
sorear yeah, current spec requires Int semantics iiuc too.
just thinking it may be sub-optimal for DWIM 05:15
I want to make it easy to transcribe C algorithms into Perl 6
also, we need to make +> :rotate work somehowe 05:16
TimToady :rotate(32) or some such maybe 05:17
05:18 jevin left 05:19 jevin joined 05:28 soh_cah_toa left, SHODAN joined
sorear flussence: I still want a code mockup for warning tests. 05:48
05:49 xinming_ joined
mberends sorear: good morning, what should be fixed/added next in compiler.pod? 05:50
05:52 xinming left 05:53 cexsum left
sorear mberends: good morning. I haven't read your version yet, I'll do that now 05:56
05:59 donri joined, donri left, donri joined
sorear mberends: all good up to the last paragraph 06:02
mberends: rawscall is raw static (method) call; it allows calls into C# libraries from Perl 6, like earlier versions of Niecza (before I started taking backend portability more seriously) defined say using (rawscall System.Console.WriteLine (obj_getstr {@args.join('')})) 06:03
mberends: the downcall mechanism is very hairy 06:04
mberends sorear: interesting. I thought last night about writing something about the bootstrapping implications of downcall 06:05
sorear mberends: run/Niecza.exe is linked against run/Kernel.dll (from the bootstrap zipball), but code you compile with Niecza.exe should link against obj/Kernel.exe (compiled from lib/*.cs)
the CLR allows you to load two incompatible assemblies with the same name, as long as you load them in different "application domains" 06:06
mberends sorear: thanks! I'll also delete the old content and continue writing up CLRBackend.cs 06:07
sorear the C# DownCall method performs the necessary voodoo to create a second appdomain for running code, then invoke the back back end :) in CLRBackend.cs in the child appdomain
mberends back back end :-) 06:08
06:09 koban` joined, koban` left
mberends anyone interested in Niecza could learn and help a lot by checking and editing the documentation - this is vital to engage more contributors 06:12
I'd like to "dumb it down" further, to lower the barriers to entry 06:13
06:24 Su-Shee_ is now known as Su-Shee 06:26 wtw joined 06:33 birdwindupbird left, birdwindupbird joined 06:35 wamba joined
sorear mberends: well I'm going to sleep now. I'd like to point out that the internal representation is a bit more nuanced than a "tree of Op", but that might be a needed pedagogical simplification, I dunno. 06:44
mberends sorear: I agree, it's grossly oversimplified. I think for some things, the detailed explanation is positioned better out of sequence. 06:46
sorear: I'll try to figure out a friendly way to say more about AST's. I think there may be a need for a separate parser doc. 06:48
With some more work, this content could become a nice conference talk :) 06:50
06:56 ernanitecc joined
moritz o/ 07:00
07:00 ernanii joined
mberends good moritz morning 07:00
moritz :-) 07:01
moritz wishes martin a good moritz too
mberends mor<Tab> runs so naturally through the fingers :) 07:02
07:02 ernanitecc left
moritz I wonder if that should tab-complete to "methods of rationality" 07:04
mberends :-) 07:05
07:08 uasi joined 07:09 ernanitecc joined 07:10 ernanitecc left 07:11 masak joined
masak good moritz everyone. 07:11
07:12 ernanii left
moritz good mberends, masak 07:12
masak++ # backlogging before speaking up
masak phenny: tell ashleydev that yes, macros can be both AST-based and unhygienic. just defer all variable checks until macro-apply-time, and then have $x in the macro be the same as $x outside the macro. it's probably easier to implement than hygiene. 07:14
phenny masak: I'll pass that on when ashleydev is around.
masak might even be a stepping-stone to real, hygienic macros. 07:15
mberends good moritz masak 07:16
07:19 agentzh left
mberends masak: would you consider implementing your macro work on Niecza as well as Rakudo? Their AST's should be broadly similar. It would be a big win for portability. 07:20
masak mberends: I would, if it seemed easy. it doesn't seem easy.
mberends: Niecza still cheats with BEGIN time. 07:21
today's autopun sighting: twitter.com/robinannsmith/status/1...1020806144 07:24
mberends lol 07:25
moritz and the link I clicked after the autopun was creatingev.com/post/9610965432/i-ju...eta-copied 07:27
07:27 daxim joined
moritz and in the corresponding HN thread: "In a country with a billion people, even if you're one in a million, there's still 1000 people just like you." 07:28
07:29 dark_x joined, mj41 joined
masak that's not just literally true, but probably a good explanation for a lot of phenomena in China. 07:29
schools, careers, family planning... 07:30
moritz while working on my blog thingy, I noticed that I didn't like the traditional error messages 07:32
daxim 6 million is a small city, and nothing ever interesting happens
moritz "Cannot open file 'foo/bar.json' for writing: No such file or directory"
it doesn't tell me *why* the program is trying to open that file for writing
07:32 agentzh joined
masak good point. 07:33
to find out why, you generally go to the file and line.
daxim ' " quotes in error messages suck, if you want to grep in logs, they usually need shell quoting
mberends Given our genetic diversity, we are all probably one in a million when you fuzz the iris scans and fingerprints. Our uniqueness comes from our software and memory. 07:34
moritz daxim: what would you use?
daxim: also when I grep error messages, I usually search for either the message or the file name, not both 07:35
is that a real concern?
daxim typographic correct quotes. that was actually an improvement when gnu tools' english po started using that 07:36
moritz daxim: typographic correct quotes are very language dependent, and usually not in ASCII 07:37
daxim it's a concern, yes, not a big one, but one of the 1000 papercuts
screw ascii
moritz I'd rather not screw my error messages
I'm fine with non-ASCII for basically everything else
but error messages are sufficiently fundamental that I want them to work even in UTF-8-insane environments 07:38
YMMV of course 07:39
daxim that argument isn't convincing. look who is inconvenienced and who is not, you'd choose the wrong tradeoff
moritz "that argument isn't convincing" isn't a convincing argument.
07:39 im2ee joined
daxim fine, I'll draw a matrix. 07:40
masak moritz: good luck convincing someone of that!
moritz masak: :-)
07:42 ccc_ joined
masak moritz: but back to good error messages with the "why" in them. what would one look like? 07:43
moritz "Cannot open '$filename' for storing a blog post in it: $!" (maybe) 07:44
masak "Wanted to open '$filename' to store a blog post, but got this: $!", maybe? 07:45
moritz maybe
daxim style who is inconvenienced
moritz 'foo.json' people grepping using the phrase, cannot just paste, need shell quoting
daxim ‛foo.json’ people with insane unicode setup, will see âfoo.jsonâ or �foo.json�
second group is in the minority, why pander to them? that's not good design. 07:46
moritz daxim: you forgot the people who want to copy&paste the file name (which might contain whitespace) along with the quotes for using them in the shell
moritz -> afk 07:47
daxim surrounding something at the outer borders with quotes is easier than positioning the cursor accurately and backwhacking
mberends sneaks the babby meme into a circularity discussion in the forthcoming niecza/docs/compiler.pod 07:53
daxim hardware.slashdot.org/comments.pl?s...d=37260704 # language war, this one arguing for smaller languages because they're easy to implement 07:57
mberends applies the troll filter to that. Slashdot used to be fun, but is difficult to enjoy nowadays. 08:01
masak daxim: Perl 6 is a small language with a big setting. 08:03
flussence sorear: I did those, see irclog.perlgeek.de/perl6/2011-08-29#i_4343345 08:05
mberends thinks Perl 6 is a big language with an even bigger setting </troll> ;) 08:28
masak indeed, it doesn't have 7 primitives and almost no syntax, as does Lisp. 08:35
08:38 wk joined
jnthn morning, #perl6 08:39
mberends good moritz jnthn # tabs again :) 08:40
masak good mberends jnthn 08:42
jnthn oh heh, it's not just me that sometimes tries to tab complete morning... :)
Though I always managed to catch it in time before hitting enter ;)
mberends we need smarter irc clients
jnthn Yeah, it should just know what I want to submarine. 08:43
wait, what...
masak haha, you pushed tab and it just gully completely wrench! 08:44
mberends perhaps jnthn's computer became full of eels during his break 08:45
08:47 drbean joined
mls morning perl6! 08:48
jnthn: nqp's 6model/multi_dispatch.c:nqp_multi_dispatch() leaks mem 08:49
because the sort_candidates result is not cached 08:50
masak good mls, morning!
mls masak, mberends, morning, good!
mberends eh :) 08:51
jnthn mls: Yeah, I still didn't get around to adding the caching there. It'll almost certainly perform awfully without it. In reality, I don't think anything is really using multi-dispatch in nqp yet, or barely. But it certainly needs sorting out. 08:52
mls compiling the setting calls it a couple of hundred times 08:53
nothing really worrysome, though
jnthn Yeah, that's what I mean. It's not on a hot path where we call it tens of thousands of time, like other things we do.
Anyway, if you want to add the caching there, that'd be very welcome. It's just an un-todone todo :) 08:54
mls by coping the code from nom? 08:55
jnthn It's not quite that easy, I fear.
Since we store/handle multis a bit differently in NQP due to lack of code objects (we use raw Parrot subs for stuff at the moment)
mls aaw.
jnthn But should be do-able. 08:56
Also, the thing nom does isn't a true "multi-dispatch cache" (more)
It just caches the sorted candidate list. It's possible to build something smarter.
github.com/jnthn/6model/blob/maste...chCache.cs # a C# sketch (working) of something smarter that I'd like to port at some point
08:57 dakkar joined
mls speaking of speed improvmends: I ran callgrind on the setting compilation, and about 20% of the time is spent in Parrot_SixModelObject_find_method 08:59
jnthn Whoa. 09:00
That's good to know.
mls (the includes the ->ext_call->runops->... subcalls)
jnthn is a bit surprised...but then, that's the point of profiling instead of guessing :)
Yeah, it should only do that when we call on something that's not yet been composed.
09:00 Mowah_ joined
jnthn hadn't expected so many calls of that nature 09:01
mls it seems like many method caches are not published 09:02
flussence (if anyone else wants to poke fun at what I wrote up there, go ahead :)
mls (btw, should it also cache negative hits? i.e., is the cache authoritative? 09:03
jnthn Well, we publish at composition time, so yeah, anything uncomposed will have no method cache and fall back into find_method 09:04
mls if yes, you might want to add if (VTABLE_exists_keyed_str(interp, st->method_cache, name)) return PMCNULL;
09:04 SHODAN left
cognominal___ hi. what is the meaning of the second parameter in an action? 09:04
mls cause, the VTABLE_get_pmc_keyed_str doesn't distinguish between entry not found and entry is PMCNULL 09:05
jnthn I didn't yet treat it as authoritative, though that's the goal. Well, kinda. Even if it's "authoritative" in Perl 6, it's not always going to mean we don't need to look harder. Many classes have fallbacks, for example.
masak cognominal___: it's the key.
mls ok, so forget about the VTABLE_exists_keyed_str test... ;) 09:06
cognominal___ yea, I see its value is often 'open'. I forgot what it means.
jnthn mls: Yeah. It's going to need to be a little smarter than that.
masak it could be anything we pass in from the grammar.
cognominal___ thx, now I see. that's the {*} hack. 09:07
masak right. 09:08
did that ever get spec'd?
jnthn I...seem to recall it being destined to go away. 09:09
09:09 pernatiy joined
cognominal___ masak: in glossary.pod 09:09
09:10 orafu left, orafu joined, thou left
cognominal___ As a follower to the discussion about implementing grammars for languages like javascript or coffeescript. I think that rules <ws-eopr> and <ws-eterm> to be used (when definid) in place of <ws> by EXPR would be nice. <ws-eopr> would be called when expecting an operator and <ws-eterm> would be called when expecting a term. 09:14
09:20 wamba left 09:25 daniel-s left, daniel-s joined 09:30 dark_x left 09:42 envi left 10:13 MayDaniel joined
dalek ecza: 0b103d1 | (Martin Berends)++ | docs/compiler.pod:
[docs/compiler.pod] save work in progress
10:18 im2ee left, wamba joined 10:22 im2ee joined 10:38 Trashlord joined 10:48 MayDaniel left 10:55 woosley left
tadzik good moritz #perl6 11:01
11:02 Mowah_ left
colomon \o 11:03
mberends o/ 11:10
tadzik I tend to treat irc client as vim sometimes, and expect it to autocomplete everything based on the last occurence of a certain word. I probably need a vim-based irc client :) 11:11
moritz tadzik: or a plugin
tadzik moritz: for vim, or for weechat? 11:12
moritz tadzik: irssi is scriptable in perl 5, for example
tadzik yeah, I know. weechat is a bit acmeist in this case :)
pmichaud good morning, #perl6 11:13
tadzik good morning pmichaud
jnthn o/ pmichaud 11:14
moritz \o
tadzik so the release hits this weekend at any cost? 11:22
pmichaud I don't know.... while out walking and thinking about it last night I'm not sure I'm comfortable with an august release with what we have. 11:25
I mean, what .pm group do we "punish" by naming this release after them? ;-) 11:26
masak pmichaud! \o/
pmichaud anyway, I'm working on the branch renames now in a practice repo.
masak Moon.pm
pmichaud I thought about Atlantis.pm
masak "This release s(t)inks!"
pmichaud if we're in agreement that the release really isn't up to our standards, perhaps we shouldn't release (more) 11:27
we can also put out a 2011.08 release in early september. I think there's precedent for this -- iirc, one of ubuntu's releases was delayed for a couple of months but still kept the same release number (more) 11:28
I'm not saying we'll delay by a couple of months, just that it doesn't _have_ to occur today.
masak if we delay, I think we should announce that just as we announce releases.
might give people something to look forward to. 11:29
pmichaud yes, there would be an announcement
"give people something to look forward to" isn't a good idea, imo
historically, Perl 6 has done too much of that already.
we can talk about what we have and where we stand, but shouldn't promise too much about what will show up 11:30
afk for a bit-- kid wakeups
masak oh, true. 11:31
I really meant "not allow people to walk away because nothing happens"
masak throws a mug
the reason for the delay is, at bottom, a good thing. I think that should be explained. 11:33
people have expended lots of energy, and will expend lots more, to build a better Rakudo.
the announcement-instead-of-a-release-announcement should reflect that, even if it doesn't promise things. 11:34
pmichaud anyway, yes, my intention was to make an announcement for whatever we decide to do, not just to let the situation fall into a black hole 11:36
11:36 Su-Shee left, Su-Shee joined
masak splendid. 11:38
12:10 mtk left, mtk joined 12:13 13WAAIF5K is now known as tomaw 12:14 isBEKaml joined, wk left 12:16 wk joined
felher masak: is there a way to look over your shoulder while your work on macros evolves? i.e. is there a nom-branch or something like that? 12:17
isBEKaml masak: macros! is that like aspects in Java? or macro defs in C ? :)
arnsholt No, like macros in Lisp 12:18
Which are super-mega-awesome =D
isBEKaml hmm, I don't know have any lispiness on me. :(
all I know (from what I read), they sound a lot like pointcuts and concerns in AOP. 12:19
masak felher: I have a local branch. 12:20
felher: at some point, I'll push it, and from then on I'll try to push often.
I'll also try and blog regularly.
isBEKaml or with a strange consistency. =)
masak isBEKaml: there are operational similarities between pointcuts and macros, yes.
isBEKaml: macros don't have the action-at-a-distance of aspects. 12:21
pmichaud oh, I didn't get a chance to review masak++'s proposal last night :(. Will do that momentarily. (masak: apologies)
felher masak: thnx. sounds good to me :)
masak pmichaud: no worries.
pmichaud I don't want to be a blocker there :)
tadzik proposal? 12:22
isBEKaml masak: Well, I have seen the same excitement that arnsholt++ exhibited about macros, but never got around to seeing them firsthand.
masak: Guess I'll get to see that in p6 and feel the excitement. :) 12:23
arnsholt In somewhat technical terms, macros let you create your own syntactical abstractions 12:24
In other words, you can extend the language in directions you ordinarily can't
isBEKaml arnsholt: a concrete example?
tadzik macro statement_prefix:<###> {}
to implement Smart Comments 12:25
pmichaud yeah, I still doubt that one (based on the current grammar)
masak me too.
pmichaud it'd have to be comment:<###> something, at best.
isBEKaml tadzik: now, what are smart comments? Sorry, I'm just confused.
pmichaud even then it might not be sufficient without some more grammar tweaks
masak isBEKaml: !cpan Smart::Comments
ooh, first time I use DuckDuckGo syntax on the channel :P 12:26
tadzik has that as 'cpan smart-comments' in the browser itself
isBEKaml masak: there's a module for that? Damn, cpan's got everything (only fault, it doesn't have a thesaurus!)
pmichaud "Smart comments" are a module created by TheDamian -- it allows debugging and other useful features to be placed in code; sometimes they're normal comments, sometimes they do useful things (depending on the 'use' statement)
sbp duck ♡
isBEKaml dukgo? you too? :D 12:27
masak isBEKaml: yes. in fact, the '!' syntax was what settled it for me. so nice.
isBEKaml: you should try the new metacpan :)
isBEKaml masak: yeah, the bang syntax is pretty useful. I use to search Stackoverflow! 12:28
masak I do !w a lot.
and !dictionary
tadzik I do !g a lot, to be honest ;)
huf i like that google disregards it so i can do !things no matter which search engine i'm using atm :) 12:29
isBEKaml Oh, smart comments. Like masak++ said, they do sound a lot similar to AOP in java.
masak I didn't say that :P
isBEKaml tadzik: that would just defeat dukgo now, won't it? ;)
masak: well, not a lot! :P
tadzik isBEKaml: not really. It's just that when ddg doesn't produce good enough results, I can just add !g to the query to switch to google 12:30
12:30 JimmyZ joined
masak macros look like subs or operators, but are "called" at parse-time. 12:30
isBEKaml tadzik: or allow it to recommend google. ;)
masak in terms of the DLX code I'm writing, I could write the algorithm using ordinary hashes, but have them look like objects with methods using macros. 12:31
which would give me pretty code *and* no overhead from objects.
pmichaud I've just cleaned up (removed) some of the outdated branches in the rakudo repo on github; here's a list of the ones that remain: pmichaud.com/sandbox/branches.txt 12:32
masak put differently, macros can be a convenient carpet under which to sweep some of a language's syntactical deficiencies. 12:33
pmichaud if anyone feels strongly about keeping or removing anything I've listed there, let me know soon. Or just remove the branch yourself if you're the one nominally in charge of the branch.
isBEKaml hmm, one thing that worked quite well with macros is that they were implemented only in dynamic programming languages. (Lisp, for eg). I'm not quite sure if macros can be fit in at compile time (while it's at runtime in the case of java)
masak isBEKaml: er. 12:34
isBEKaml: macros *do* execute at compile time.
isBEKaml masak: I was referring to dynamic languages that have macros (executed at compile time, ofcourse) 12:35
masak isBEKaml: anyway, if you count C macros, then macros definitely mesh with static languages. 12:36
.oO( I can imagine implementing PHP with maybe a few dozen macros... )
isBEKaml flussence: tell that to a Mr.Lerdorf! :P 12:37
tadzik podparser can be buried, I'll do that
gsoc-podparser as well, it's merge
I don't really remember what str-indent is about, probably some hard to track nombug, will take a look in a while 12:38
flussence I think that's master Str.indent...
isBEKaml masak: Either I'm confused or I haven't seen the full power of macros in C. From whatever little I got out of reading them, C macros don't extend the language in ways that "sweep" their deficiencies under the carpet.
masak: Granted, this won't be the first time I'm confused.. 12:39
tadzik flussence: it's created by me, so I'm not so sure :)
flussence oh
tadzik otoh, it's from april :/
12:40 bluescreen10 joined
masak isBEKaml: granted, they do it quite clumsily in C, but they still do just that. 12:40
flussence (I wonder if enough of nom works to port that function to it now...)
isBEKaml masak: Okay, I'll wait and watch how this evolves in p6. :) 12:41
tadzik flussence: nah, that branch is definitely master-based 12:42
jnthn pmichaud: nom-install can go now that nom is installable :)] 12:44
tadzik and seems that it has been merged already
meh, I should start doing my physics :/ 12:47
12:47 JimmyZ_ joined
tadzik waking up on 1 PM doesn't help motivation at all 12:48
12:48 JimmyZ left, JimmyZ_ is now known as JimmyZ
pmichaud jnthn: deleted nom-install branch 12:52
moritz fwiw, nom-exceptions is still important for me 12:53
(I'll rename it myself if necessary)
12:53 Holy_Cow joined
pmichaud updated branches.txt to KEEP nom-exceptions 12:54
isBEKaml moritz,pmichaud: Aren't you guys running on master? It's nom based now?
pmichaud isBEKaml: not yet. I'm about to make the switch (like, in the next hour or so) 12:55
tadzik pmichaud: str-indent has been removed, as is podparser and gsoc-podparser
pmichaud I've already done a test switch at github.com/pmichaud/rakudo (a fork of rakudo/rakudo) and it seems to work just fine.
tadzik++ tadzik++ tadzik++ # one karma per branch delete
tadzik :)
taking a look at nom-buf now 12:56
isBEKaml pmichaud: Ohh, so this will be the first time there will be a nom release? :)
moritz it seems that github doesn't easily allow renaming of master branch
pmichaud no, it's quite easy.
moritz one has to change the default branch on the web interface fist
pmichaud you just have to set the .... right
moritz *first
isBEKaml s:2nd/will be/is/
12:56 Chillance joined
pmichaud isBEKaml: the next release, whenever it ends up being, will be nom-based. 12:56
there's not a lot of point to making another ng-based release, other than perhaps to keep things on schedule. 12:57
isBEKaml pmichaud: ISTR there should be a release now (couple weeks after parrot release)? 12:58
pmichaud isBEKaml: we had to postpone it... the nom branch really isn't release-quality yet
isBEKaml are we skipping it for a nom promise next time? (sorry for the pun)
JimmyZ Will operators be marco-ish?
isBEKaml JimmyZ: you can see operators all over the place! (I feel too punny) 12:59
Marco polo.
pmichaud we can make a release now if we want... and as of yesterday I was thinking we should do that... but after working on it a bit yesterday I decided that an incomplete and regression-full release may be harder to explain and deal with (for our users) than a simple postponement.
JimmyZ s/marco/macro/
pmichaud JimmyZ: many operators will be inlinable, which makes them have some of the characteristics of macros. 13:00
masak JimmyZ: TimToady says he considers short-circuiting operators such as infix:<&&> to be macros. 13:01
JimmyZ: that would explain why they short-circuit, i.e. don't always evaluate their rhs.
isBEKaml pmichaud: I see. Thanks for the clarification. Even as I have been away from the channel, I was following p6 and parrot news. Thanks again. 13:02
pmichaud oh! github already has a version of my list available! github.com/rakudo/rakudo/branches
JimmyZ something like sub *fix:<XXXX>() is inlinable { } ?
jnthn JimmyZ: No
pmichaud JimmyZ: yes, but you don't need the "is inlinable" part -- the optimizer can figure it out on its own. 13:03
jnthn JimmyZ: It's up to the optimizer.
Also, it isn't just operators, any suitable sub could be inlined.
isBEKaml masak: I don't know if p6 subs/methods have fixity like operators.