Camelia, the Perl 6 bug

IRC log for #perl6, 2011-09-01

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs

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

All times shown according to UTC.

Time Nick Message
00:13 molaf joined #perl6
00:22 pernatiy joined #perl6
00:30 abercrombie joined #perl6
00:31 tokuhirom joined #perl6
00:38 flussence joined #perl6
00:47 whiteknight joined #perl6
00:50 uasi joined #perl6
01:14 uasi joined #perl6
01:16 daniel-s joined #perl6
01:33 abercrombie joined #perl6
01:41 cexsum joined #perl6
01:57 woosley joined #perl6
02:12 lue what the heck is @@w supposed to mean? I remember reading not too long ago something about @@ and slices, but I don't know anything beyond that.
02:15 jaldhar joined #perl6
02:20 pjcj joined #perl6
02:31 REPLeffect joined #perl6
02:51 am0c joined #perl6
03:01 dark_x joined #perl6
03:04 dalek mu: 1df6eb2 | lue++ | examples/functional/ (7 files):
03:04 dalek mu: [examples] fixed most of examples/functional to work with rakudo/nom
03:04 dalek mu:
03:04 dalek mu: The entirety of the fixes include making sure functions returned
03:04 dalek mu: Bool values when they said they would, flattening where it would
03:04 dalek mu: otherwise cause infinite recursion, and avoiding redeclaration of
03:04 dalek mu: variables (how that managed to happen is beyond me). Only monads.pl
03:04 dalek mu: was untouched, due to an NYI error about typed arrays.
03:04 dalek mu: review: https://github.com/perl6/mu/commit/1df6eb2584
03:23 Su-Shee_ joined #perl6
03:28 agentzh joined #perl6
03:34 betterworld joined #perl6
03:37 jrockway joined #perl6
03:42 natureboy joined #perl6
03:43 swarles joined #perl6
03:44 natureboy hi swarles :]
03:48 swarles hey =]
03:57 sorear hello and welcome, natureboy and swarles.
03:58 natureboy hello, thanks
03:59 mberends \o
04:01 TimToady »ö«
04:02 sorear lue: @@x sounds like something from the Dark Age of Pugs, perhaps 2003
04:03 drbean joined #perl6
04:03 TimToady was a little later than that
04:03 swarles hello o/
04:04 TimToady perl6: say "Howdy doody!"
04:04 p6eval pugs, rakudo 2bac6a, niecza v9-7-g252c6a5: OUTPUT«Howdy doody!␤»
04:05 mberends ▷☋◁
04:05 TimToady a frog with fins?
04:06 mberends Iron Butterfly
04:06 TimToady looks kinda like a bat
04:07 sorear .u ☋
04:07 phenny U+260B DESCENDING NODE (☋)
04:09 sorear bleh
04:09 sorear .net's async IO model is very un-POSIX-like
04:09 sorear they have Select but it's sockets only
04:10 sorear other kinds of file descriptors use a stateful request/callback system
04:11 sorear natureboy: swarles: anything we can help you with?
04:11 swarles Nope I'm just here to watch/listern :)
04:11 swarles listen*
04:11 TimToady ⊱ö⊰
04:12 TimToady ⊱⍥⊰
04:12 * sorear has little idea what kind of interface to present to Perl 6
04:13 natureboy not really, but thanks sorear
04:15 TimToady ⊱⚉⊰
04:15 TimToady decomputing &
04:15 natureboy is that supposed to look like "Camelia" ?
04:16 TimToady vaguely
04:16 mberends Campelia
04:18 mberends sorear: structuring async I/O around callbacks would be useful, to unify with other NCI events (eg GUI input)
04:20 birdwindupbird joined #perl6
04:29 * lue severely detests Google's refusal to search symbols essential to any programmer's diet.
04:31 sorear mberends: I think I'm going to shift my month focus to general CLR integration and let someone else worry about API design.
04:32 sorear I don't like API design.
04:32 mberends lue: you should look beyond Google, even if only to resist the creation of another kind of monopoly
04:32 sorear you should detest Google for other reasons.
04:33 mberends sorear: I'll gladly participate in API bikeshedding, but would like to work mainly with example use cases.
04:34 lue I got NoScript to stop Google from the stupid "guess what you want as you're typing" when they brought it to the SSL version. [It severely slows down my connection and makes Google think I'm using a bot to do mass searches!]
04:34 * lue investigates other search engines
04:35 jrockway joined #perl6
04:40 jevin joined #perl6
04:43 mberends sorear: I'm very happy that you'll work on CLR integration instead. If you you devise something that goes beyond Zavolaj's NativeCall, it will create many application opportunities for Niecza and throw out a challenge for Rakudo to catch up. Therefore I hope you can make it as VM agnostic as possible.
04:47 mberends lue: I'm not sure 'wormhole' is the best choice of word, could you help me with some possible improvements? https://github.com/sorear/niecz​a/blob/master/docs/compiler.pod
04:50 * lue looks
04:54 mberends that sentence reads better with "Perl 6 virtual world" and "executable real world" as well
04:55 lue instead of wormhole, maybe passageway? [also, I noticed this: "How is the Niecza compiler babby formed?" Are you sure it's babby? ]
04:55 Exodist joined #perl6
04:57 mberends lue: yes, I'm sure. I was hoping for something more cosmic, to spice up the text. 'bridge' is too mundane, 'stargate' too exotic.
04:58 lue .oO(gateway perhaps?)
04:59 mberends yes, better. how about portal?
04:59 sorear rabbit-hole.
05:00 mberends yes, quite nice
05:01 lue I like rabbit-hole, reminds me of Alice in Wonderland (where CLR is real life, and P6 is Wonderland, according to your analogy)
05:01 mberends no, implies similar worlds too much, like wormhole
05:01 mberends oh, the looking-glass!
05:01 sorear it's not really like a boundary between P6 and real life
05:02 sorear and as I said yesterday, rawscall has nothing to do with system calls
05:02 sorear the "s" stands for "static"
05:02 sorear "rawcall" calls instance methods, "rawscall" calls class methods
05:03 mberends oh, I missed that totally
05:03 sorear CLR makes the distinction
05:03 mberends I'd kinda mapped VM to system
05:05 mberends ok, that will get a rewrite. I'm really attracted to 'looking-glass', I think it triggers appropriate thoughts.
05:06 sorear DownCall/UpCall is kind of like a wormhole, it's a portal through time
05:06 sorear it allows code compiled using last month's Niecza to call code compiled using the current Niecza, and vice versa (for eval)
05:06 sftp joined #perl6
05:08 mberends I assumed that was only during the bootstrap compile, and that in the next iteration of recompile the versions of caller and callee would be in sync.
05:09 sorear mberends: it would be possible to do it that way, and the release binaries are set up that way
05:09 mberends I like the time travel viewpoint of the bootstrap, that might be worth mentioning more explicitly.
05:09 sorear mberends: but for development I only want to build niecza once, which means that "self-compiled" is a bad idea
05:10 sorear in ghc/gcc parlance builds from source are always stage1s
05:10 mberends aye, I hacked on Small-C many years ago and had the same self-hosting stability risks
05:11 sorear ... "Small-C"?  haven't heard of that in ages.
05:12 mberends by James Hendrix, an excellent learning tool
05:12 sorear most of the "stability" problems went away when niecza started running roast
05:12 sorear I don't fear that I'm rebooting with a broken niecza
05:13 mberends yes, testing++
05:20 sorear mberends: hrm, I wonder then if CLR interop should be more like Zavolaj or Blizkost
05:21 mberends sorear: so far I've preferred Zavolaj because it's more explicitly declarative
05:21 TimToady literal but non-portable interfaces are okay for building portability layers on top of
05:23 mberends sorear: Zavolaj is independent on what lies beyond, for example hooking up PostgreSQL was a breeeze.
05:26 mberends *of, *breeze even
05:26 sorear mberends: preferred Zavolaj over...?
05:27 mberends sorear: Blizkost, the other option you mentioned for 'interop like'
05:28 araujo joined #perl6
05:28 araujo joined #perl6
05:29 sorear mberends: yeah just wondering where you would have the option to use both
05:29 sorear and goodnight.
05:29 mberends 'night
05:36 wamba joined #perl6
05:48 wtw joined #perl6
05:51 mberends phenny, tell sorear we have the option to use Zavolaj or Blizkost generally when a Perl 5 module abstracts a native library, for example a PostgreSQL or MySQL client. I preferred independence from the effect a Perl 5 layer might have on what is available to the Perl 6 code. In short, call direct. The question for the Niecza interop design is whether you can _always_ interrogate native code to tell you its methods and parameters, or not. I don't think
05:51 mberends you can.
05:51 phenny mberends: I'll pass that on when sorear is around.
06:03 mberends phenny, tell sorear otoh, CLR is easier to deal with than native code because CLR has Reflection. Calling from Niecza to native code involves jumping through two hoops, CLR and FFI. We don't want the solution to look like Perl 5 XS.
06:03 phenny mberends: I'll pass that on when sorear is around.
06:06 lue oh! I was reading up more on the capture sigil (¢) ooc, and found an irc log discussion mentioning ¢'s supposed alternative (@%) used to be @@. So, does that mean @@ is just ¢ ?
06:08 perlhack joined #perl6
06:08 perlhack 用中文 像大家问好
06:08 perlhack 各位辛苦了
06:08 perlhack :-)
06:17 koban` joined #perl6
06:17 koban` left #perl6
06:28 tadzik good mornings
06:30 tadzik man, HPatMoR chapters are coming out at insane pace
06:34 jerome_ joined #perl6
06:58 cexsum joined #perl6
07:06 cognominal joined #perl6
07:15 tadzik rakudo: class A { has $!b; submethod BUILD { say $!b } }; A.new(b => 5) # correct? istr it worked
07:15 p6eval rakudo 2bac6a: OUTPUT«Mu()␤»
07:23 pmichaud I think the new standard is that private attributes aren't automatically initialized that way.
07:24 pmichaud (nom implements the new version, ng had the old one)
07:25 wamba joined #perl6
07:25 pmichaud S12:882
07:26 daxim joined #perl6
07:28 perlhack_ joined #perl6
07:28 tadzik rakudo: class A { has $.b; submethod BUILD { say $.b } }; A.new(b => 5) # correct? istr it worked
07:28 p6eval rakudo 2bac6a: OUTPUT«Mu()␤»
07:28 tadzik doesn't seem so, unless I miss something
07:28 pmichaud I think "rakudo:
07:28 TimToady joined #perl6
07:29 pmichaud I think "rakudo:" now refers to nom.
07:29 tadzik yes, that's what I'm hoping for
07:29 pmichaud ng:  class A { has $.b; submethod BUILD { say $.b } }; A.new(b => 5) # correct? istr it worked
07:29 pmichaud b:  class A { has $.b; submethod BUILD { say $.b } }; A.new(b => 5) # correct? istr it worked
07:29 p6eval b a55346: OUTPUT«Any()␤»
07:29 tadzik b needs callsame for that, I believe
07:29 tadzik b: class A { has $.b; submethod BUILD { callsame; say $.b } }; A.new(b => 5) # correct? istr it worked
07:29 p6eval b a55346: OUTPUT«5␤»
07:30 pmichaud b:  class A { has $!b; submethod BUILD { say $!b } }; A.new(b => 5) # correct? istr it worked
07:30 p6eval b a55346: OUTPUT«Any()␤»
07:30 tadzik that doesn't help nom though
07:30 pmichaud well, in nom's case you're overriding BUILD, so you don't get the default BUILD
07:31 tadzik rakudo: class A { has $.b; submethod BUILD { callsame; say $.b } }; A.new(b => 5)
07:31 p6eval rakudo 2bac6a: OUTPUT«Mu()␤»
07:31 tadzik no, something else's broken
07:33 pmichaud rakudo: class A { has $.b; submethod BUILD($!b) { say $.b } };  A.new(b => 5)
07:33 p6eval rakudo 2bac6a: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤  in submethod BUILD at /tmp/WM9GqkKeFO:1␤  in method BUILDALL at src/gen/CORE.setting:483␤  in method bless at src/gen/CORE.setting:473␤  in method new at src/gen/CORE.setting:458␤  in <anon> at /tmp/WM…
07:34 pmichaud rakudo: class A { has $.b; submethod BUILD(:$!b) { say $.b } };  A.new(b => 5)
07:34 p6eval rakudo 2bac6a: OUTPUT«5␤»
07:34 pmichaud hmmmmmmmmmm
07:36 wamba joined #perl6
07:41 tadzik I don't like it, again :)
07:42 tadzik I believe BUILD { say $!b } used to Just Work in nom some time ago
07:46 mj41 joined #perl6
07:56 moritz \o
07:56 tadzik o\
07:56 moritz doesn't that need to be BUILD(:$!b) { say $!b } ?
07:57 tadzik I hope not. I don't like easy things hard to do
07:57 tadzik I think I'm missing a being
07:57 perlhack joined #perl6
07:57 perlhack hi
07:57 tadzik hi perlhack
08:01 wamba joined #perl6
08:02 perlhack hello tadzik,i am ready to get off duty.i wish you have fun.
08:05 woosley what is BUILD used for? just like BUILD in Moose?
08:06 tadzik woosley: I hope it to be, but it seems that it's a different magic
08:09 daxim joined #perl6
08:09 woosley tadzik: so what is the magic here?
08:10 tadzik woosley: it doesn't work as expected :) The attributes aren't neceserilly set in your BUILD, you may have to do that yourself. I mean, those passed to the .new
08:11 donri joined #perl6
08:17 swarles joined #perl6
08:19 apejens joined #perl6
08:23 dakkar joined #perl6
08:23 bbkr_ joined #perl6
08:24 am0c joined #perl6
08:27 senobmeht joined #perl6
08:30 apejens joined #perl6
08:33 mberends phenny, tell pmichaud the next timing accuracy improvement in Test.pm will be to move $time_before and $time_after assignments out from proclaim() to ok(), is*(), diag() etc, because some of those do lots of work before calling proclaim(). There should be negligible performance impact, but I'd like your opinion before proceeding. Also, there will probably be a few sub-microsecond times soon. We could record nanoseconds instead of microseconds (I pref
08:33 phenny mberends: I'll pass that on when pmichaud is around.
08:33 mberends er integers), even though clocks do not have nanosecond resolution (yet).
08:36 y3llow_ joined #perl6
08:39 pnu joined #perl6
08:41 eiro hello all
08:42 tadzik hello eiro
08:42 eiro i'm trying to use the comments of arguments for doc (http://pastebin.com/cYwvCGxj)
08:43 eiro it sends me the message: ===SORRY!===
08:43 eiro Whitespace character is not allowed as a delimiter at line 4, near " one of CR"
08:43 mberends joined #perl6
08:43 eiro hello tadzik. i was trying to write my first IA for the farm game.
08:44 eiro AI
08:45 eiro actually it's more like IS (artificial stupidity)
08:47 moritz well, natural stupidity we have more than enough :-)
08:49 tadzik eiro: docs for signatures are NYI
08:49 tadzik I may poke that soon, since someone actually needs this :)
08:51 lue docs for signatures? What's that? [Or rather, which spec would tell me about it, if it's too long to explain here]
08:54 eiro moritz, i can't just plug my brain to parrot :)
08:54 eiro tadzik, NYI ?
08:55 moritz NYI = Not Yet Implemented
08:55 eiro arg :)
08:55 eiro ok thanks
08:55 moritz lue: S26 allows attaching doc strings to just about anything
08:57 lue ohh, now that I know we're talking about doc strings, I can figure out exactly what docs for signatures are.
09:00 lue .oO(could you attach doc strings to doc strings?)
09:01 mberends lue: :) don't go there...
09:02 tadzik why, yes you can :)
09:02 lue .oO(#=this is a doc string explaining method foo of class xyzzy. Its purpose is to tell you the purpose of foo)
09:03 tadzik rakudo: https://gist.github.com/1185757
09:03 p6eval rakudo 2bac6a: OUTPUT«Array.new("doc #= double doc")␤»
09:03 tadzik documented documentation :)
09:05 lue oooh, I didn't know p6eval took files
09:06 * tadzik lives
09:08 lue I won't for much longer if I don't go to bed. Good night everyone o/
09:11 orafu joined #perl6
09:18 envi joined #perl6
09:29 im2ee joined #perl6
09:33 im2ee Could I find somewhere modules which are build in Perl6?
09:33 im2ee Like IO::Socket ? :)
09:34 mberends im2ee: IO::Socket in built in to Rakudo itself. Modules are here: http://modules.perl6.org/
09:35 im2ee I know modules.perl6.org. So, there is no site about modules which are build in to Rakudo? :)
09:38 mberends im2ee: avoid confusion, what is built into Rakudo is not *modules*. The complete set of Synopses describes what *should* be built in http://perlcabal.org/syn/ and this is the progress so far: http://perl6.org/compilers/features
09:39 im2ee mberends, ok. Thank You! :)
09:40 mberends im2ee: IO::Socket is specified in http://perlcabal.org/syn/S32/IO.html
09:40 im2ee Great. :)
09:42 birdwindupbird joined #perl6
09:42 mberends im2ee: examples of IO:Socket are https://github.com/cosimo/perl6-lwp-simple and https://github.com/mberends/http-server-simple
09:42 Exodist joined #perl6
09:42 rhr joined #perl6
09:42 eiro joined #perl6
09:42 benabik joined #perl6
09:42 Helios joined #perl6
09:42 risou_awy joined #perl6
09:42 tewk joined #perl6
09:42 fhelmberger joined #perl6
09:42 nine joined #perl6
09:42 lumi_ joined #perl6
09:42 LoRe_ joined #perl6
09:42 jasonmay joined #perl6
09:43 donri joined #perl6
09:43 im2ee mberends, thanks again. :)
09:43 mberends have lots of fun! :)
09:48 mberends finally, a 6model/c raw list implementation is free of memory leaks according to valgrind. Next up, a bigger test suite :)
09:50 im2ee Hmm, some more questions. :)
09:50 im2ee What about threading in Perl6? :)
09:50 im2ee Using fork, or some modules?
09:51 im2ee And... does exist something like DO (from p5)?
09:51 im2ee :
09:51 im2ee :)
09:51 woosley left #perl6
09:54 mberends im2ee: not much implemented yet, your can use run('command') or qx(command). I think Niecza has some threading support but not Rakudo. I did create this example using Zavolaj: https://github.com/jnthn/zavolaj/​blob/master/examples/unix-fork.p6
09:54 domidumont joined #perl6
09:57 mberends im2ee: oops, qx/command/
09:57 im2ee hmmm.. No problem in total. :)
09:57 im2ee I'll be glad to help You with Perl6. :)
09:57 mberends great! when can you start?
09:58 im2ee But ... now I must get to know perl6 better. :)
09:58 im2ee I use Perl5 for 1 y (maybe 2), now I'll learn P6. :)
09:59 im2ee Hmm, I know C too.
09:59 mberends oh good, then you may be able to get involved with Parrot as well.
10:00 im2ee Hm, don't now exactly when - but I would as soon as possible :)
10:00 mux joined #perl6
10:00 im2ee Where I can find informations about what is to do? :)
10:01 im2ee mberends, You wrote Zavolaj?
10:02 mberends im2ee: I am contributor. jnthn++ is the author.
10:03 im2ee Ok. :)
10:04 im2ee mberends, Where I can find informations about what is to do? :)
10:05 mberends im2ee: first make sure that you can use Perl 6, (Rakudo, Niecza or both). The try to create your own module to share with the community. Then try to add a Perl 6 language test to https://github.com/perl6/roast.
10:06 mux joined #perl6
10:06 im2ee Hmm, is there maybe a site where I can find information abouts who is working on what?
10:07 im2ee I won't to work on something over which one is working now :)
10:08 mberends im2ee: not really. I recommend searching the logs of this channel at http://irclog.perlgeek.de/perl6/
10:09 mberends what would you *like* to work on? maybe I can remember who is interested in similar things.
10:12 moritz im2ee: people generally publish their work early and often
10:12 moritz im2ee: so if something isn't on modules.perl6.org, you can be confident nobody has invested too much time in it
10:15 im2ee Hm, maybe for start on something like IRC bot module, etc.
10:16 im2ee You know - Im now professional, I hope You it'll be changed ! :)
10:16 im2ee And I hope You understand, that I'm not professional. :)
10:16 im2ee Right? :)
10:16 im2ee Hi moritz :)
10:16 * moritz is not professional either :-)
10:16 im2ee :)
10:16 mberends there are already several people playing with IRC clients, I cannot remember names but that irc log search will find them.
10:16 wk joined #perl6
10:17 im2ee Hmm, but there is IRC Bot framework, right ? :)
10:17 moritz right, by TiMBuS++
10:17 im2ee Net::IRC::Bot
10:17 im2ee Ok. So .. hm, something else :)
10:18 mberends other people often ask for modules to build web applications. There are some incomplete frameworks, they need more love.
10:18 TiMBuS yay im getting attention
10:18 mberends :)
10:18 moritz TiMBuS: not you, just your module :-)
10:18 mberends lol
10:18 TiMBuS im2ee, feel free to contribute to make my module suck less
10:19 TiMBuS i never added module unloading support! the whole reason i made it modular
10:19 TiMBuS thats a good palce to start
10:19 moritz for example you could write a simple bot, and see if you miss any functionality from the framework
10:19 moritz or find unintuitive, or so
10:20 mberends but please don't point a buggy bot at this lovely channel ;)
10:20 TiMBuS i miss the part where, the bot disconnects if it times out. because i have no async IO or threads >:[
10:20 TiMBuS mberends, the last bot someone sent here was a barrel of laughs
10:21 mberends oh yeah
10:21 im2ee TiMBuS, I don't thing that Your module sucks. :)
10:21 TiMBuS joke please
10:21 im2ee think*
10:21 TiMBuS thanks im2ee! but you can still probably make it better
10:23 im2ee TiMBuS, makeing irc module will be good lesson for me. :)
10:23 im2ee Hmm, does my English suck?
10:24 mberends nope
10:24 TiMBuS mines worse
10:25 saaki joined #perl6
10:25 im2ee mberends, thanks. :)
10:25 im2ee TiMBuS, where are You from? :)
10:26 mberends im2ee: :)
10:26 ccc_ joined #perl6
10:26 TiMBuS australia.
10:27 im2ee I must say something. This is the most friendly community that I have ever known. :)
10:28 mberends im2ee: thank you
10:28 im2ee No, I thank You. :)
10:28 im2ee So. :)
10:29 im2ee I'll learning P6 today. :)
10:29 mberends im2ee: one small thing, English people write 'you' with a small 'y'
10:29 im2ee Ok. :)
10:30 mberends im2ee: have you installed Rakudo or Niecza yet? It seems a logical first step.
10:30 im2ee I have Rakudo 07.2011
10:31 mberends good. Then also install Panda, as described on the Modules page.
10:31 cexsum joined #perl6
10:31 im2ee i have Panda too. :)
10:31 im2ee and i installed some modules :)
10:31 mberends impressive :)
10:32 im2ee :)
10:32 im2ee So. I'm on the good way. :)
10:32 im2ee a instead of the :)
10:32 im2ee or? :)
10:32 im2ee nevermind :)
10:33 mberends I guess a, but nevermind
10:33 saaki joined #perl6
10:35 im2ee Now, I'll write some code which will help me learn the language.
10:49 daxim im2e++ for practicality
10:49 mberends im2ee++ even
10:50 im2ee :)
10:53 wamba joined #perl6
11:01 sftp_ joined #perl6
11:05 awoodland joined #perl6
11:06 im2ee $sock.say("JOIN $chan\r") for @channels -> $chan;
11:06 im2ee what is wrong? :)
11:12 Trashlord uh
11:12 Trashlord for my $chan @channels;
11:13 Trashlord or
11:13 Trashlord for my $chan (@channels);
11:14 flussence maybe $sock.say("JOIN $^chan\r" for @channels);
11:15 im2ee Works, thanks. :)
11:19 im2ee write method on IO::Socket::INET is better, isn't it?
11:22 espadrine joined #perl6
11:23 frettled joined #perl6
11:23 flussence .write would be better than mixing an explicit \r and implicit \n...
11:24 im2ee flussence, thanks :)
11:24 flussence (having a working &wrap would be better, just make $sock.say do the right thing...)
11:57 pmichaud good morning, #perl6
11:57 phenny pmichaud: 08:33Z <mberends> tell pmichaud the next timing accuracy improvement in Test.pm will be to move $time_before and $time_after assignments out from proclaim() to ok(), is*(), diag() etc, because some of those do lots of work before calling proclaim(). There should be negligible performance impact, but I'd like your opinion before proceeding. Also, there will probably be a few sub-microsecond times soon. We could record nanoseconds instead of mic
12:00 pmichaud mberends: I'll go with your judgement on this one.
12:02 mberends pmichaud: ok, we'll give it a try. Results so far are encouraging :) I'm curious how Niecza measures up.
12:04 mberends the delay in is_deeply() is probably huge, and nondeterministic
12:17 bbkr_ rakudo: "aa" ~~ /(a)($0)/; $1.say # bug?
12:17 p6eval rakudo 2bac6a: OUTPUT«␤»
12:19 moritz yes
12:19 moritz rakudo: "aa" ~~ /(a)($0)/; $0.say
12:19 p6eval rakudo 2bac6a: OUTPUT«a␤»
12:20 * bbkr_ reported
12:20 moritz bbkr_++
12:40 awoodland joined #perl6
12:42 tadzik im2ee: good to see you around :)
12:45 PerlJam good * #perl6
12:46 mtk joined #perl6
12:49 JimmyZ joined #perl6
12:54 jferrero left #perl6
12:56 MayDaniel joined #perl6
12:57 im2ee tadzik, good to see you too. :)
13:00 mls morning perl6!
13:01 mls If you're interested whay perl6 does when it compiles the setting: http://www4.informatik.uni-erlan​gen.de/~mlschroe/Setting.out.gz
13:02 mls It's in kcachegrind input format
13:05 mls I've patched parrot's runloop to collect call statistics
13:05 bbkr_ rakudo: sub foo ( /abc/ ) { 1 }; foo( Regex ); # bug with method delegation?
13:05 p6eval rakudo 2bac6a: OUTPUT«===SORRY!===␤Cannot use a value type constraints whose value is unknown at compile time at line 1, near ") { 1 }; f"␤»
13:07 bbkr_ std: sub foo ( /abc/ ) { 1 }; # i don't know what kind of monster is it, but STD allows such declaration, therefore foo(Regex) should delegate
13:07 p6eval std e3c970e: OUTPUT«ok 00:01 123m␤»
13:07 flussence mls++
13:08 moritz bbkr_: I think it's a limitation in rakudo's current handling of constraints and literals
13:08 flussence (seems like the grammar is the slowest part...)
13:09 PerlJam using grammar is always faster than parsing grammar ;)
13:10 moritz mls++
13:11 moritz lineof is the function that takes the most time
13:12 mls it is?
13:13 mls I don't see it
13:13 moritz mls: that's what your report says when I sort by the 'self' column in kcachegrind
13:14 flussence it's the longest per-call, it only gets called 18k times though
13:14 mls it takes the most ops, but you can switch to 'cycles'
13:15 flussence oh, *now* it makes more sense...
13:15 moritz mls: do you know what <cycle 7> as a routine name means?
13:15 flussence (.new looked strangely lightweight before)
13:15 mls turn off cycle detection
13:16 moritz ah
13:16 mls you get a cycle when you do recursion
13:17 moritz so post_children takes up a lot of time
13:17 moritz ah, it shows the cycles in in the right window
13:18 * moritz finally learns how to kcachegrind :-)
13:19 PerlJam attr gets called a lot
13:20 PerlJam mls: can you patch rakudo to do the same thing but for perl 6 subs/methods?  :)
13:21 flussence protoregex appears to be where a lot of the slowness in parsing originates
13:21 im2ee What means Z? (e.g. in @@( <a b> Z <c d> )) And where can I use this? :)
13:21 moritz im2ee: it's the "zip" operator
13:22 flussence rakudo: say ('a'..'f' Z 1..6).perl
13:22 moritz rakudo: say (<a b c> Z 1, 2, 3).perl
13:22 p6eval rakudo 2bac6a: OUTPUT«(("a", 1), ("b", 2), ("c", 3), ("d", 4), ("e", 5), ("f", 6)).list␤»
13:22 p6eval rakudo 2bac6a: OUTPUT«(("a", 1), ("b", 2), ("c", 3)).list␤»
13:22 wk joined #perl6
13:24 im2ee Great! Thanks :)
13:26 flussence .oO( there's also the XZXZXZX operator, but we don't talk about that one here... )
13:30 arnsholt But no XYZZY? =)
13:33 PerlJam we've got Z X R and S I believe so far.  Dunno what Y would be.
13:35 PerlJam oh, and E too
13:36 flussence E?
13:36 * flussence only knows the first three
13:36 PerlJam S03:2152
13:36 flussence aha
13:37 im2ee I know only Z :) hah
13:37 im2ee Everything is waiting for me.
13:45 moritz http://robey.lag.net/2011/04​/30/dissolving-patterns.html # seems the Builder pattern could be replaced entirely with named arguments
13:50 tadzik my physics is waiting for me, heh
13:51 * moritz wishes tadzik best of luck
13:51 tadzik thanks. For now, I need some best of motivation :)
13:52 moritz rakudo: say (my @motivation).elems
13:52 p6eval rakudo 2bac6a: OUTPUT«0␤»
13:52 moritz seems motivation is out. Try sense of duty instead.
13:54 tadzik hmm, will think about it
13:55 tadzik rakudo: say "charmander".chars
13:55 p6eval rakudo 2bac6a: OUTPUT«10␤»
13:55 tadzik I liked "nom:", it was short
13:56 flussence rakudo: sub prefix:<+~>(Str $s) { $s.chars }; say +~'abcdef';
13:56 p6eval rakudo 2bac6a: OUTPUT«0␤»
13:56 flussence rakudo: sub prefix:<+~>(Str $s) { $s.chars }; say +~ 'abcdef';
13:56 p6eval rakudo 2bac6a: OUTPUT«0␤»
13:56 flussence hm
13:57 flussence rakudo: sub prefix:<+>(Str $s) { $s.chars }; say +'abcdef';
13:57 p6eval rakudo 2bac6a: OUTPUT«6␤»
13:58 flussence .oO(if only there was a unicode symbol for "number of chars" I could use there...)
13:58 bluescreen10 joined #perl6
13:59 flussence std: sub prefix:<+>(&infix<~>:($a, $b)) { } # I wonder...
13:59 p6eval std e3c970e: OUTPUT«[31m===[0mSORRY![31m===[0m�Unable to parse signature at /tmp/ZI_A6jK7jN line 1:�------> [32msub prefix:<+>[33m�[31m(&infix<~>:($a, $b)) { } # I wonder...[0m�Couldn't find final ')'; gave up at /tmp/ZI_A6jK7jN line 1:�------> [32msub prefix:<+>(&infix[33m�[…
14:00 flussence nope, too crazy of an idea :)
14:00 flussence std: sub prefix:<+>(&infix:<~>:($a, $b)) { }
14:00 p6eval std e3c970e: OUTPUT«Can't create infix:sym<~>:($a, $b): syntax error at (eval 233) line 18, near "qw<~>:"␤syntax error at (eval 233) line 30, near "qw<~>:"␤␤FAILED 00:01 122m␤»
14:01 flussence huh, that's the first time I've seen std output an error that didn't end in an ellipsis.
14:04 wamba joined #perl6
14:06 moritz std: 1
14:06 p6eval std e3c970e: OUTPUT«ok 00:01 117m␤»
14:06 moritz that was easy :-)
14:08 sorear good * #perl6
14:08 phenny sorear: 05:51Z <mberends> tell sorear we have the option to use Zavolaj or Blizkost generally when a Perl 5 module abstracts a native library, for example a PostgreSQL or MySQL client. I preferred independence from the effect a Perl 5 layer might have on what is available to the Perl 6 code. In short, call direct. The question for the Niecza interop design is whether you can _always_ interrogate native code to tell you its methods and parameters, or not
14:08 phenny sorear: 06:03Z <mberends> tell sorear otoh, CLR is easier to deal with than native code because CLR has Reflection. Calling from Niecza to native code involves jumping through two hoops, CLR and FFI. We don't want the solution to look like Perl 5 XS.
14:10 JimmyZ good morning, sorear
14:10 moritz \o
14:24 zby_home joined #perl6
14:31 Sarten-X joined #perl6
14:33 kaare_ joined #perl6
14:36 mberends hi sorear.  Maybe that should be three hoops - CLR, unmanaged code interop, and then FFI. I'm not sure.
14:38 envi joined #perl6
14:39 mberends The best way to find out is probably to attempt to create a working example.  I think that would take me at least several hours.
14:40 moritz aren't there CLR-based drivers for most interesting things already?
14:42 [particle]1 joined #perl6
14:48 mberends yes there are CLR drivers for many  things. When designing the overall API, I would prefer not to restrict it that way though. It would be best to be able to access as many different libraries as possible.  The most high performance software on Windows is still compiled native (unmanaged) code.
14:50 dalek niecza: d3b0031 | sorear++ | lib/Builtins.cs:
14:50 dalek niecza: Make sqrt return the *principal* square root in accordance with the spec
14:50 dalek niecza: review: https://github.com/sorear/niecza/commit/d3b003195e
14:54 molaf joined #perl6
15:02 sorear mberends: I'm seeing three general approaches here.
15:02 sorear "Blizkost like": CLR::System::Console.WriteLine("Hello, World");
15:03 sorear "Zavolaj like (1)": sub writeLine is clr("System::Console", "WriteLine", "string", "void") { ... }; writeLine("Hello, World")
15:05 sorear "Zavolaj like (2)": sub puts( Str $x ) is native() { }; puts("Hello, World")
15:07 mberends sorear: thinking
15:07 sorear mberends: when you talked about "Zavolaj like", which did you mean?
15:08 sorear the tricky part of #0 is getting fully automatic type-directed marshalling to work.  #1 can use hints
15:08 mberends sorear: I was thinking of (1)
15:09 mberends sorear: I like each one for different reasons, almost want to have them all :)
15:10 moritz how would any of them deal with structs?
15:11 sorear I guess you could have a Perl 6 object encapsulating a struct
15:11 mberends moritz: very good point. we probably should sort out a Perl 6 struct spec out first. It's tricky.
15:12 sorear my $t = CLR::System::DateTime.new(0);
15:12 sorear $t.AddDays(5);
15:12 sorear CLR::Some::Class.MethodWhi​chChangesARefDateTime($t);
15:13 sorear say $t.ToString();
15:13 TimToady it sounds like a fancy type-mapping responder interface
15:13 mberends there is the risk of being pulled into a "CLR Perl 6" mindset
15:13 TimToady yes, we'd like to avoid becoming Perl#
15:14 flussence I was thinking of writing a struct role, but I'm waiting for Bufs + pack/unpack to work reasonably in new master first...
15:14 moritz mberends: I think natively typed attributes bring us a long way there, but it might need a custom metaclass (or at least a trait)
15:15 mberends structs might have to be specified as a kind of annotation (trait) for opaque data *handwave*
15:15 mberends moritz: this connects back to our recent native types discussion
15:16 sorear TimToady: exactly a responder interface
15:16 * moritz finds the *handwave* part particularly interesting
15:16 sorear ummm, all of you, why are you trying to define structs in Perl 6?
15:17 sorear I thought the point of this exercise was to access *existing* code using *existing* types
15:17 flussence I want a nice way to mess with arbitrary binary files too
15:17 TimToady existing code uses structs :)
15:18 sorear flussence: oh, you said structs, I thought you meant C# structs
15:18 TimToady and it depends on what you mean by "existing types"
15:18 mberends talking to SQLite needs structs, that's why Zavolaj cannot atm
15:18 TimToady S12 talks about structs
15:18 sorear which have ~nothing to do with C structs
15:18 flussence I've no idea what C# structs are like, I just assumed everyone meant the C ones :)
15:18 JimmyZ how about Link-C like?
15:19 TimToady sorear: the intent is to converge on the C(ish) representation if you use native types
15:19 sorear TimToady: in the C model, every compilation unit defines the struct, so defining structs in Perl 6 makes sense
15:19 TimToady S12:702 and S09:129
15:19 sorear TimToady: C# structs are defined in one place and referred to by reference only
15:20 TimToady so just different models of unificaiton
15:20 TimToady *tion
15:21 moritz TimToady: what I dodn't like about S09:129 is that attributes are meant to be private/internal
15:21 sorear defining structs in perl 6 code seems to be pointless since we can just refer to the existing structs
15:21 TimToady moritz: which is what S12:702 is for
15:22 sorear and moreover, the CLR uses nominal identity - if you define your own struct, it is *not equivalent* to any predefined struct, and is therefore useless for FFI
15:22 TimToady sorear: assuming we can do the typemapping without p6-side hints, sure
15:22 moritz TimToady: which isn't quite the same as saying "the order of attribute declarations within the class matter"
15:22 Aridai joined #perl6
15:23 TimToady moritz: and there's issues of alignment too, if you get bored with the order :)
15:23 moritz TimToady: right
15:23 TimToady we're just trying to make it possible to get there from here, in a fashion that could be efficient someday
15:24 TimToady and without having to write more than a minimal amount of glue or even hints
15:24 sorear how would you write an anonymous bit-field?
15:25 TimToady by using only the sigil?
15:26 * TimToady is full of facile answers this morning :)
15:28 jevin joined #perl6
15:29 TimToady I'm fine with deriving types from external sources though; that's what 'use' is for, after all...
15:30 * JimmyZ hopes most java projects in apache foundation will be rewritten in perl 6 eventually ;)
15:31 TimToady and to the extent that XS has taught us anything, it's that it's preferable to have any glue code in one or the other high-level language rather than inventing a 3rd language for it...or at least a 3rd language like XS :)
15:32 TimToady the other question is when the glue code (if any) is run, and who runs it?  Compile time?  Use time?
15:32 mberends TimToady: you answered my question before I had time to finish typing it :)
15:33 TimToady the Inline modules point toward 'use' type semantics
15:33 TimToady or BEGIN-time even
15:33 moritz and afaict they have quite some problems
15:34 moritz because they want to run a compiler when you 'use' the module, making it slow and prone to permission errors
15:34 TimToady yes, an internal C/whatever compiler would be less error prone in that sense
15:34 TimToady we need a language that makes it easy to write parsers :)
15:35 uasi joined #perl6
15:35 TimToady anyway, not really trying to design it all for you; my job is handwaving :)
15:35 am0c joined #perl6
15:37 TimToady but I see it as mostly a funny kind of unification problem between two type systems, and the rest is details
15:38 TimToady maybe I should run for President with a "Yes we can!" motto...
15:38 TimToady oh wait, been done
15:38 moritz and it was successful
15:38 * TimToady apologizes for having his brane in sideways this morning
15:38 moritz so, good chances for you, TimToady
15:40 * TimToady hates both parties, so not much chance of it, even if I were suited for the job, which I ain't
15:40 * moritz would certainly love to see a president who's not hungry for power
15:41 mberends sorear: do you think you will treat CLR interop and unmanaged code interop as two separate matters, or a single combined one?
15:42 im2ee Maybe you (or we in future :) ) could make site for Perl6 Developers, where each developers can find informations about - tasks (progress, whats to do, what is not completed)?
15:42 im2ee Where each developers can write : "I'm working on SOME::MODULE" etc.
15:43 im2ee He can write about progress etc.
15:43 im2ee Or it's unnecessary ? :)
15:43 mberends im2ee: several of our members blog a lot
15:44 TimToady so far, blogs + github + irc plus project-specific files seems to scale
15:44 tadzik well, if you examine the irc channel you're on, you'll notice that we tend to know who works on what. Note the #phasers meetings too
15:44 im2ee Of course, but is it enough mberends ? :)
15:44 TimToady but it might be possible to find a better organization for that info
15:44 tadzik http://irclog.perlgeek.de/phasers/2011-08-30
15:45 im2ee Hm, right - but on this site would be all in one place :)
15:45 TimToady perlgeek.de is one place
15:45 im2ee Hm, ok. :)
15:46 TimToady and there's a sense in which these things evolve organically as needed
15:46 TimToady it's useful to push such an idea, but if you get too far out in front of the need, then it tends to get bypassed later
15:46 TimToady we've had lots of bypassed web sites in Perl 6 history
15:47 TimToady the real trick is to see the need at the point in time where people are ready for it
15:47 im2ee Ok, i'm new. So i didn't know. :)
15:48 TimToady well, we need a few visionaires too :)
15:48 TimToady *aries
15:49 im2ee :)
15:49 mberends im2ee: hope that answered your question :)
15:49 TimToady the people who do best here are the ones who are comfortable both with their head in the clouds and their feet on the ground
15:49 im2ee Yes. :) Thanks
15:50 TimToady and don't mind getting rammed by a few birds from time to time :)
15:50 TimToady sorry, told you my brane was in sideways today
15:51 im2ee :) no problem
15:51 * TimToady should go do something useful instead of imagining impossible things before breakfast
15:55 * flussence leaves this here because I seem to keep forgetting about it - https://gist.github.com/1186468
15:56 tadzik I like the way you think
15:57 moritz flussence: the default .new requires hashes
15:57 moritz flussence: you you probably need  my %values = self.^attributes.map(*.name) Z unpack($format, $blob);
15:59 im2ee moritz, what means ^? (one?)
15:59 cognominal_ joined #perl6
15:59 im2ee I saw somewhere it today, but where? :) I forget.
15:59 moritz im2ee: $obj.^method is a method call on the meta class
16:00 moritz rakudo: say 1.^method(:local)
16:00 p6eval rakudo 2bac6a: OUTPUT«Method 'method' not found for invocant of class 'Perl6::Metamodel::ClassHOW'␤  in method dispatch:<.^> at src/gen/CORE.setting:615␤  in <anon> at /tmp/0jeuZCIm_i:1␤  in <anon> at /tmp/0jeuZCIm_i:1␤␤»
16:00 moritz rakudo: say 1.^methods(:local)
16:00 p6eval rakudo 2bac6a: OUTPUT«Int Num Rat abs Bridge chr succ pred sqrt base Bool Str␤»
16:00 moritz these are methods defined in the Int class, of which 1 is an instance
16:00 im2ee Amazing. :) Thanks
16:04 im2ee And what means "given"? I can't find it.
16:04 im2ee "given $attr.type {"
16:05 apejens joined #perl6
16:05 tadzik it's our switch-case, but better
16:06 pmurias joined #perl6
16:06 tadzik http://perlcabal.org/syn/S​04.html#Switch_statements
16:07 im2ee Thanks! :)
16:07 pmurias sorear: re C# binding, what i would like to have is the ability to use a C# library without writing bindings for the individual functions even if that means an unperlish interface
16:09 pmurias OTOH a CPAN module might want to specify a nice perlish interface
16:12 uasi joined #perl6
16:27 pmichaud re-good morning
16:28 mberends re-o/
16:28 tadzik rehey
16:40 Holy_Cow joined #perl6
16:40 Holy_Cow left #perl6
16:42 pmichaud 13:05 <mls> I've patched parrot's runloop to collect call statistics
16:42 pmichaud (1) that's really awesome
16:42 pmichaud (2) how is it different from Parrot's profiling runloop?
16:42 pmichaud (other than "it seems to work")
16:47 pmichaud there's definitely a problem with lineof
16:47 pmichaud looking.
16:48 pmichaud ....and I bet that problem is directly related to whatever is slowing down our compilation speed
16:49 pmichaud because if lineof is having these problems, it implies that there are at least 18K source code objects lying about somewhere.
16:49 pmichaud (although they might not be exactly clones)
16:52 pmichaud phenny: tell mls  would you be able to do the same sort of callgraph analysis for compilation of Rakudo ng's setting?
16:52 phenny pmichaud: I'll pass that on when mls is around.
16:53 pmichaud phenny: tell mls  it would be really useful to be able to compare the differences between ng and master
16:53 phenny pmichaud: I'll pass that on when mls is around.
16:57 dukeleto joined #perl6
17:09 mj41 joined #perl6
17:17 cexsum joined #perl6
17:21 dalek 6model: b19eb80 | (Martin Berends)++ | c/ (8 files):
17:21 dalek 6model: [6model/c] initial refcount memory manager with tests
17:21 dalek 6model: review: https://github.com/jnthn/6model/commit/b19eb80591
17:22 daniel-s joined #perl6
17:31 jevin joined #perl6
17:32 localhost joined #perl6
17:35 donri joined #perl6
17:39 cognominal___ joined #perl6
17:40 im2ee To write a standard function (like say, print etc.) what i must do?
17:40 im2ee It depends on Rakudo?
17:41 im2ee Or something like standard module?
17:43 pmurias im2ee: what do you mean by a standard function? one which is always avalible in all lexical scopes?
17:44 colomon joined #perl6
17:44 im2ee Yes. :)
17:45 im2ee Which is available in every programs written in p6. :)
17:46 ZaphrodZenovka joined #perl6
17:46 TimToady then it has to be put into the "setting", which is like a Haskell prelude, except we think of it as lexically around the user's code, not in front of it
17:48 tadzik im2ee: what do you plan to do?
17:55 masak joined #perl6
17:57 masak oh hai #perl6
17:57 im2ee tadzik, hmm, i have some ideas, but i must learn a bit more. :)
17:57 masak eiro: great! looking forward to hearing about your progress!
17:58 masak eiro: as far as I know, I'm the only one who's build such an AI so far. I didn't publish mine yet. (it's very naive)
18:01 Su-Shee call it "young and innocent" ;)
18:02 masak it's very young and innocent.
18:03 Su-Shee let
18:03 Su-Shee let's knit a nice cuddly toy!
18:06 * masak imagines one knit cuddly toy for each animal type in Little Animal Farm
18:06 Su-Shee which can be automated by your young and innocent AI in need of some cuddly toys!
18:06 Su-Shee also, skynet will be fluffed and cuddled into submission.
18:08 masak awww
18:10 Trashlord joined #perl6
18:10 birdwindupbird joined #perl6
18:12 * Su-Shee sees terminator kittens and bunnies. but maybe that was just my three hours at the dentist..
18:14 ZaphrodZenovka joined #perl6
18:16 masak TimToady: if strings are immutable, and cursors are immutable, and each cursor keeps an $.orig reference, what is it that actually changes when string-emitting macros change the source code?
18:20 im2ee Does exist something like auto-closing file? E.g. i open file, and i forget about close this file on the end of a scope . Does perl close it automatically? :)
18:20 localhost joined #perl6
18:20 moritz im2ee: it should be closed eventually. It isn't now in rakudo and parrot (known bug)
18:21 im2ee moritz, ok. Fine. :)
18:21 tadzik is it a lack of DESTROY?
18:22 masak im2ee: Perl 5 closes it when its variable goes out of score. Perl 6 closes it when the value gets GC'd, which is any time starting from when its variable goes out of scope. :)
18:22 moritz tadzik: mixture of lack of DESTROY and lack of global destruction
18:22 tadzik mhm
18:23 colomon joined #perl6
18:29 zby_home joined #perl6
18:39 Vlavv` joined #perl6
18:45 masak I don't know if I've posted "Enough is Enough: A Thinking Ape’s Critique of Trans-Simianism" here before... but it seems many in here would like the tone of that text.
18:46 masak it's even slightly on-topic if you believe Perl 6 will have a hand in the Singularity :P
18:46 TimToady we're working toward the Plurality instead...
18:58 daniel-s joined #perl6
19:22 lue hello planet o/
19:22 colomon \o
19:23 TimToady plant o/ greets you
19:23 TimToady *planet
19:27 lue TimToady: I noticed the P6 cheatsheet is no longer at wall.org/~larry/cheatsheet [had to use the Wayback Machine to get it]
19:28 pmichaud it should be in the perl6 repo somewhere
19:28 lue makes sense /me checks
19:29 TimToady okay, should be there now again (been restoring things piecemeal since a headcrash)
19:30 daniel-s joined #perl6
19:32 lue yep, it's in the mu repo. And TimToady++ for getting it back online (sometimes typing in a simple URL is faster than a dig through the mu repo)
19:35 TimToady I note that 'slice' should now be 'lol'
19:46 * lue suddenly knows a bit more about what 'slice' used to mean, thanks to the new, more descriptive name 'lol'
19:56 wamba joined #perl6
19:59 bluescreen10 joined #perl6
20:09 daniel-s joined #perl6
20:37 pmichaud I'm having a hard time finding the time spent in 'lineof' as claimed by mls' kcachegrind file
20:39 pmichaud what do the counts represent, ooc?
20:39 im2ee Have to go, bye! :) Have a nice day
20:39 im2ee or night :)
20:40 tadzik o/
20:53 flussence does anyone know what happened to that old spec graph that used to be on the rakudo site? I remember seeing it a long time ago, dunno if it's been lost since
20:54 pmichaud some of the internals changed, so it was left to bitrot
20:54 pmichaud i.e., we could no longer keep the totals up to date reliably
20:55 pmichaud the program that created those graphs is tools/progress_graph.pl
20:55 pmichaud er, tools/progress-graph.pl
20:55 flussence yeah, just curious to see what it looked like so I can tell if I missed anything important on my ones... :)
20:55 pmichaud oh, I have some old graphs in slideshows
20:55 pmichaud just a sec
20:57 pmichaud http://pmichaud.com/2009/pres/o​scon-rakudo/slides/slide6.html
20:57 pmichaud there's an example.
20:57 flussence that looks like it, thanks
20:58 pmichaud also: http://pmichaud.com/2009/pres/im​ages/rakudo-tests-2009-04-17.png
20:59 tadzik there was one in my talk too
21:00 tadzik https://github.com/tadzik/Perl6-​slides/blob/master/progress.png
21:00 flussence I'm not entirely sure what the regr(ession)? number is on those old ones, I've looked at the code too...
21:07 huf joined #perl6
21:13 cognominal___ sacré faciste de Callaghan! sur France 3
21:14 cognominal___ *fasciste
21:16 cognominal___ il suffit qu'il se promène dans le quartier chinois de SF pour qu'il y ait un hold up
21:17 tadzik ww?
21:18 cognominal___ oops
21:18 cognominal___ wrong channel, again :(
21:18 tadzik happens to the best of us :)
21:18 flussence (meanwhile, some other channel is getting a long essay about hyperoperators...)
21:19 dorlamm joined #perl6
21:19 tadzik an actual laughter was produced, aloud
21:20 tadzik flussence++ # plain 'lol' is not sufficient these days
21:27 TimToady laughed out loud really == lolr, and then we can quantify it with lolr(1)
21:27 sjohnson heh
21:27 sjohnson $self->_lolr == 1
21:27 tadzik look ohead?
21:27 tadzik fatface!
21:28 * pmichaud just _knows_ that we're going to end up with a .lolr contextualizer now.
21:28 pmichaud probably instead of .tree(1)  :-)
21:29 tadzik ( `ー´)
21:29 tadzik gets me every time :)
21:30 sjohnson heheh
21:32 tomaw joined #perl6
21:32 tomaw joined #perl6
21:34 natureboy joined #perl6
21:35 Sparky_ joined #perl6
21:36 Sparky_ natureboy: hi
21:36 swarles joined #perl6
21:36 natureboy Sparky_: hi
21:36 Sparky_ i l y l o l =]
21:36 natureboy swarles: people probably think we come in a package or something
21:37 swarles hahaha
21:37 swarles TimToady, what text editor do you use?
21:37 tomaw joined #perl6
21:38 sjohnson he uses vim!
21:39 swarles I thought so haha
21:39 * sjohnson too
21:39 swarles I could never get into vi because im not good with the key triggers or whatever you would call them
21:40 Sparky_ it just takes some getting used to
21:40 Sparky_ i use nano for my text-ui editor
21:40 Sparky_ gedit or kate for my gnome one
21:41 swarles nano is very easy to use, i use it as well
21:48 sjohnson after a long learning curve with vi
21:48 sjohnson you become convinced that it is the best way to write code
21:49 swarles I have heard that a lot, why is that?
21:49 tadzik I had a moment of enlightenment when I realized that typing itself cannot be optimized really much. It's the editing, jumping through the document that the time is wasted on. vim changes that
21:50 Sparky_ ö.ö
21:51 swarles Does it let you jump to certain code blocks or something?
21:51 swarles I'll have to look it up
21:51 tadzik well. You can really easily jump for example 3 words forward. Or to the next opening bracket. To change the word on the cursor and nothing else
21:52 flussence typing can't be optimised, sure, but vim's drawing of those chars to screen leaves a lot to be desired...
21:52 tadzik I don't think I understand
21:53 flussence on my netbook the vim process tends to average 10% cpu just editing perl6 code
21:53 tadzik oh, I think our hilighting is a bit less than awesome in that sense
21:53 tadzik but I won't really seek vim's fault in that
21:54 flussence (anyone feel like writing a vimscript LLVM backend? :)
21:55 cognominal___ tiens on voit la voie rapide détruite par le tremblement de terre sur France 3
21:55 mkramer1 joined #perl6
21:56 tadzik hehe
21:56 cognominal___ Callaghan fait son jogging sur Embarcadero
22:00 sjohnson swarles: if if you're wondering why that is, then.. simply because when you get fast at doing what Vim can do with your fingers
22:00 sjohnson it's just so much slower doing the same things in things like notepad, or nano
22:01 sjohnson jump around, copy blocks of code quickly, delete lines quickly, and a hundred other things
22:01 swarles I'm trying it out right now, I'm reading a tutorial on it as we speak ^.^
22:02 donri a very strange enchanted boy..
22:02 sjohnson swarles: took me many months to get used to using it
22:02 sjohnson it has a steep learning curve, so try not to become too frustrated
22:03 sjohnson also, i have found that setting up a .vimrc with simple macros to make qutting easier essential for my piece of mind
22:03 sjohnson map :Q! :q!
22:03 sjohnson shit like that
22:03 swarles o.o
22:03 swarles :ZZ is quit and save right
22:03 swarles ?
22:04 flussence no, you can just write ZZ for that
22:04 flussence or :x
22:04 swarles oic
22:04 swarles I'm making sure that i read the tut carefully, because i know if i deviate i'll get mad when it doesnt work, haha
22:04 donri vim is best at editing, emacs at everything else
22:04 sjohnson my favourite custom mapping is:  map q :q<CR>
22:05 sjohnson i even read someone else figured that out, and even posted a blog about it
22:05 jasonmay do you have recording mapped somewhere else? I am intrigued
22:06 donri http://yehudakatz.com/2010/07/29/everyone-wh​o-tried-to-convince-me-to-use-vim-was-wrong/ mandatory reading
22:07 tadzik I have a feeling that people are talking about vim a bit too much
22:08 donri because they are... vimpy.
22:10 sjohnson jasonmay: you mean, do i have my mappings online somewhere?
22:10 lue I for the record use emacs as a secondary OS :) [remote editing and archive viewing go!, to name a couple of great things]
22:10 tadzik I use mc for that :)
22:12 dorlamm joined #perl6
22:13 dual joined #perl6
22:14 lue I tried vim (for, what, a minute, long time ago) and didn't like it too much (in particular the need to switch into an editing mode to do anything). There was something about emacs though that made me stick with it.
22:14 lue [Now if only I were allowed to change my Caps Lock key to Ctrl...]
22:15 bbkr joined #perl6
22:18 donri modal editing is effective if you can manage to train yourself to defer fixing errors to after you're done inputting, for example
22:18 donri i.e. stay in one mode longer instead of switching all the time between editing and inserting
22:19 felher lue: Well, most of the vim users love vim for its two modes. One may very well remap some key to escape though, so one doesn't have to leave the home-row for leaving insert-,command-,visual-mode.
22:19 donri ^C works for leaving insert mode
22:20 lue O.o
22:20 donri i rarely ever use escape in vim
22:20 djanatyn lue: You're not allowed to change your capslock key to control?
22:20 felher donri: well, yeah. But just for leaving. It is not the same as <esc> since it behaves quite differently.
22:21 TimToady I use CTRL-[, and I do have my capslock remapped
22:21 donri felher: in deed
22:21 TimToady so I don't leave the homerow to escape
22:21 * djanatyn remapped his capslock key to ctrl
22:21 donri ^[ is like insanely complicated to type on a swedish keyboard
22:21 lue I think my keyboard is wired to not allow remapping Caps Lock. On Apple keyboards (at least this powerbook's), the CapsLock LED is in the key itself, which tells me the functionality is hardwired
22:21 donri ctrl+altgr+9
22:22 TimToady lue: not necessarily
22:22 lue [Trying to remap results in a dead Caps Lock key that does nothing]
22:22 bbkr joined #perl6
22:22 TimToady I've had capslock keys like that that remapped fine
22:22 lue Or perhaps I haven't been doing it right :)
22:22 TimToady the light went on or off every other time though :)
22:22 * felher just did :imap fj <esc>. fj is very fast to type, one does not have to leave the homerow and i never had to realy insert fj.
22:22 * djanatyn just used xmodmap
22:23 sjohnson TimToady: is your capslock remapped to ESC?
22:23 sjohnson that's why i do
22:23 TimToady no, it's ctrl, like it oughta be :)
22:23 lue (other items on my keyboard agenda include learning Dvorak (just for the heck of it, haven't decided between English or Programmer), and designing my own keyboard
22:23 sjohnson i find it much easier for my left pinky to hit the caps
22:23 sjohnson as ESC, that is
22:24 TimToady I switched to vi because emacs was wearing out my left pinky
22:24 lue I'd love to avoid the "Emacs Pinky" by CapsLock -> Ctrl. [as soon as my computer is done with the mass upgrade, I'll try all that again]
22:24 lue (Not that I've had "emacs pinky" yet, I'm not a shortcut-maniac)
22:24 sjohnson so far i'm the only guy i know who uses CAPS -> Esc for blissful vi editing
22:24 sjohnson though one girl at work who doesn't use Vi still does it, and she said it's rocking her world.  going over to her computer to do stuff is blissful cause it's just like my setup
22:25 donri i have caps as compose in x11
22:26 lue .oO(The world would be much better off with clicky noise-making Space Cadet keyboards...)
22:26 plobsing you people must be really smart. My mind can never output sufficiently fast to put any kind of strain on my hands.
22:26 TimToady lue: not when you have an SO trying to sleep
22:26 pmichaud I've mapped individual pixels on the top row of my monitor to input characters, so that clicking at e.g. 0,65  sends an "A".  Thus I can enter up to 1920 unique characters all with a single button.  :-P
22:27 felher pmichaud: :D awesome idea!
22:27 lue perhaps s/The world/I/ then (or s/The World/Some/)
22:28 felher someone really should imlement a virtual-keyboard working that way :)
22:29 lue .oO[You quickly run out of buttons on a kb when you want to assign them to middle click, right click, compose, and uim/anthy]
22:31 felher lue: Yeah, but as pmichaud statet: With 1920x1080 res, mapping the first row of pixels of your screen to characters gives you 1920 characters :D If you use left,middle,right, even 5760 :)
22:33 lue rakudo: my $pixels = 1024 * 768; my $unicodechars = 0x110000; say ?($pixels >= $unicodechars);
22:33 p6eval rakudo 2bac6a: OUTPUT«Bool::False␤»
22:35 * lue ponders an -Ofun keyboard
22:35 donri http://typematrix.com/
22:39 lue I'll check that in more detail later (curse thee inadequate CPU!), but looks cool. [My favorite from looking for fun so far is Das Keyboard]
22:46 TimToady lue: if you have a color screen you can count each pixel 3 times :)
22:46 TimToady rakudo: my $pixels = 3 * 1024 * 768; my $unicodechars = 0x110000; say ?($pixels >= $unicodechars);
22:46 p6eval rakudo 2bac6a: OUTPUT«Bool::True␤»
22:47 lue I would love to see a Unicode keyboard (0x110000 keys, all produce a different character)
22:47 natureboy what is ?() ?
22:48 TimToady ? is a prefix operator that is the opposite of !
22:48 TimToady so like !! in Perl 5
22:48 natureboy oh, that's convenient
22:49 donri rakudo: say 3 >= 2
22:49 p6eval rakudo 2bac6a: OUTPUT«Bool::True␤»
22:50 donri rakudo: say 1.Bool
22:50 p6eval rakudo 2bac6a: OUTPUT«Bool::True␤»
22:50 donri rakudo: say 0.Bool
22:50 p6eval rakudo 2bac6a: OUTPUT«Bool::False␤»
22:51 donri and of course "??" is the same as "!" (but only on a certain day in april)
22:56 TimToady "yeah, sure."  <-- double positive
22:56 donri "do you mind" "yes of course!"
22:57 TimToady "You can say that again." === "That goes without saying."
22:57 lue .oO(really unsure people should use the ???????????? prefix)
22:58 donri http://theoatmeal.com/comics/literally
22:58 TimToady perl6: ???????????
22:58 p6eval rakudo 2bac6a: OUTPUT«===SORRY!===␤Found ?? but no !! at line 1, near "???"␤»
22:58 p6eval ..niecza v9-8-gd3b0031: OUTPUT«[31m===[0mSORRY![31m===[0m��Prefix requires an argument at /tmp/j9VGcHPr8v line 1 (EOF):�------> [32m???????????[33m�[31m<EOL>[0m��Parse failed��»
22:58 p6eval ..pugs: OUTPUT«*** ␤    Unexpected "???????????"␤    expecting program␤    at /tmp/jnKDHxFXH6 line 1, column 1␤»
22:58 lue .oO(I *literally* destroyed Jupiter when I saw that link to theoatmeal)
22:59 lue perl6: my $a = 3; say ????????????$a;
22:59 p6eval pugs: OUTPUT«*** ␤    Unexpected "????????????$"␤    expecting bare or pointy block construct, ":", identifier or operator␤    at /tmp/nS3U9Fktti line 1, column 16␤»
22:59 p6eval ..niecza v9-8-gd3b0031: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Expecting a term, but found either infix ?? or redundant prefix ?â�¤  (to suppress this message, please use space between ? ?) at /tmp/fL5Vlc1Ix5 line 1:â�¤------> [32mmy $a = 3; say ????????????[33mâ��[31m$a;[0mâ�¤â�¤Parse failedâ�¤â�¤â€¦
22:59 p6eval ..rakudo 2bac6a: OUTPUT«===SORRY!===␤Found ?? but no !! at line 1, near ";"␤»
22:59 donri oh wait ??!! is the ternary right?
22:59 donri otherwise the rakudo error was hilarious
22:59 TimToady and ??? is a listop
23:00 lue Darn. I was kinda hoping you could stack the ?'s ... [for no other reason than because you can, so it's not a loss]
23:00 TimToady perl6: ? ? ? ? ? ? ? ? ? 42
23:00 p6eval pugs, rakudo 2bac6a, niecza v9-8-gd3b0031:  ( no output )
23:01 TimToady perl6: ??? ??? ???
23:01 p6eval rakudo 2bac6a: OUTPUT«Could not find sub &warn␤  in <anon> at /tmp/9Fog6nNLRc:1␤  in <anon> at /tmp/9Fog6nNLRc:1␤␤»
23:01 p6eval ..pugs: OUTPUT«*** Cannot cast from VUndef to GHC.IO.Handle.Types.Handle (VHandle)␤    at /tmp/RudZp1qt_6 line 1, column 9 - line 2, column 1␤»
23:01 p6eval ..niecza v9-8-gd3b0031: OUTPUT«Unhandled exception: >>>Stub code executed␤  at /tmp/pQUH5dzr4l line 1 (MAIN mainline @ 1) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2045 (CORE C954_ANON @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2046 (CORE module-CORE @ 57) ␤  at /home/p6ev…
23:01 donri perl6: ! ? ! ! 0 ?? 1 !! 0
23:01 p6eval pugs, rakudo 2bac6a, niecza v9-8-gd3b0031:  ( no output )
23:02 lue What does work though (and I've used it a couple of times) is !?$a
23:02 donri 2bac6a "oh that one"
23:02 donri chewbacca
23:03 ralfradio joined #perl6
23:03 donri lue: what be the point though?
23:04 TimToady not so $a   # much more poetical
23:04 lue To boolify the variable and negate it (I honestly can't recall why I do it, but I recall having good reason to)
23:05 lue rakudo: my $a = 1; say "hi" if not so $a;
23:05 p6eval rakudo 2bac6a:  ( no output )
23:06 lue Although from I've read here just now !$a would do the same thing (i.e. the ? is redundant). I still like the look and clarification of !?$a :)
23:07 wolfman2000 joined #perl6
23:07 TimToady rakudo: if False == so not True { say so True }
23:07 p6eval rakudo 2bac6a: OUTPUT«Bool::True␤»
23:08 lue :D
23:08 lue .oO(only in P6...)
23:08 donri rakudo: say .WHAT
23:08 p6eval rakudo 2bac6a: OUTPUT«Any()␤»
23:09 donri rakudo: .say given *
23:09 p6eval rakudo 2bac6a: OUTPUT«*␤»
23:09 lue I'm also still searching (passively however) for a suitable English translation of %_
23:11 donri topical pair map!
23:11 natureboy what are the "postcircumfix" methods?
23:11 lue [$_ -> it,  @_ -> them, %_ -> ???, &_ -> ???, ¢_ -> ???]
23:11 donri punctuation that goes around something, after something else
23:13 donri f.x. calling() is i think postcircumfix:<()>
23:13 donri the parenthesis are "post" the identifier and "circum" the arguments
23:14 natureboy i see
23:16 TimToady lue: there is no ¢, you've been reading ancient documentation
23:16 lue it's mentioned briefly in S08, as well as its ASCII equivalent @%
23:16 donri %_ -> "the respective"?
23:17 TimToady "thus"
23:17 donri ah
23:17 lue .oO(get all the key-value pairs of thus)
23:18 mkramer joined #perl6
23:18 donri "thus get all the facts"? :)
23:20 lue I really like P6 because at times it feels like a natural language, almost as if a linguist designed it...
23:20 TimToady as if an almost linguist designed it, you mean :)
23:22 lue I agree with the "it's not a first language, it's a last language" sentiment. You'll never not want to use P6 once you know it.
23:26 donri a language to last
23:30 lue .oO(It's also the only language with a lol type) There should be a grand list of "cool things about P6", where everyone adds a particularly amazing/cool/fun feature they've found
23:34 Psyche^ joined #perl6
23:38 lue afk
23:52 [Coke] joined #perl6
23:52 [Coke] .
23:54 [Coke] joined #perl6
23:58 tokuhirom joined #perl6

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

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs