--- Log opened Mon Jul 12 00:00:12 2010 00:06 < zerofluid> I make a new slice with var zerocoins = make([]int, 8) and then want a copy of it. Unfortunately it appears zerocoins = coins just provides a reference to coins 00:07 < zerofluid> is there an easy way to copy a slice? 00:07 < Namegduf> I think copy() exists. 00:07 < zerofluid> that would be funny 00:09 < EthanG> slices uses references, arrays are copied 00:10 < zerofluid> cool - found it in the docs 00:11 < zerofluid> / The copy function is predeclared and works for any slice type. 00:11 < zerofluid> been using the slides and guessing the rest - probably should read a little more before bothering you guys, but it appears to be a slow day... thanks 00:12 < KirkMcDonald> The first thing I did when I heard about Go was read the spec. 00:12 < KirkMcDonald> It's not that long, and it is eminently readable. 00:13 < EthanG> yeah, the spec's much nicer than python's already 00:14 < KirkMcDonald> Python has more going on, I think. 00:15 < EthanG> yeah, it's a more complex syntax. the spec used to be kinda readable though... 00:15 < KirkMcDonald> Python is also much older. 00:15 < KirkMcDonald> It's had more time to accrue documentation. 00:15 -!- emmanueloga [~emmanuelo@190.247.41.202] has quit [Quit: WeeChat 0.3.3-dev] 00:16 < EthanG> yeah... 00:16 < zerofluid> hey - the docs have been great - I can be accused of not reading everything before I started 00:16 < zerofluid> but when I finally find what I need ... they've been good 00:17 -!- jA_cOp [~yakobu@unaffiliated/ja-cop/x-9478493] has quit [Quit: Leaving] 00:17 -!- emmanueloga [~emmanuelo@190.247.41.202] has joined #go-nuts 00:23 -!- TR2N [email@89.180.179.16] has quit [Ping timeout: 264 seconds] 00:24 -!- rv2733 [~ron@c-98-242-168-49.hsd1.fl.comcast.net] has joined #go-nuts 00:24 -!- X-Scale [email@89-180-212-78.net.novis.pt] has joined #go-nuts 00:30 -!- mikespook [~mikespook@219.137.235.116] has joined #go-nuts 00:34 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has joined #go-nuts 00:41 -!- gduffy [~greg@67.207.134.177] has joined #go-nuts 00:42 -!- zerofluid [~zerofluid@ip24-56-54-185.ph.ph.cox.net] has quit [Quit: Leaving] 01:16 -!- sioraiocht [~tomh@unaffiliated/sioraiocht] has quit [Remote host closed the connection] 01:22 -!- trustin [~trustin@redhat/jboss/trustin] has joined #go-nuts 01:22 -!- rogue780 [~rogue780@c-68-34-234-213.hsd1.md.comcast.net] has joined #go-nuts 01:24 < rogue780> I'm looking for a lightweight editor for programming/learning go. Any suggesttions? Preferably something easy to use. Doesn't have to be graphical, but if it is, keep in mind that I'm running lxde. Thanks 01:25 < Ginto8> kate 01:25 < Ginto8> you can run it under lxde 01:25 < EthanG> acme ;) 01:25 < Namegduf> vim 01:25 < Ginto8> I'm running it under awesome 01:25 < Ginto8> also gedit/vim 01:25 < Ginto8> or gvim 01:25 < Ginto8> gvim is probly the most lightweight graphical one 01:26 < EthanG> lol 01:26 < Ginto8> acme is probly the lightest of the nongraphical 01:26 < Ginto8> idk tho 01:26 * Ginto8 hasn't really used it 01:27 < EthanG> it's graphical, in the sense that you use the mouse 01:27 < Ginto8> yeah and it's in X 01:27 < EthanG> no syntax hilighting though 01:27 < Ginto8> wait you mean acme? 01:28 < Ginto8> cuz I thrive on syntax highlighting and auto-indentation 01:28 < Ginto8> so I really wouldn't use it 01:28 < EthanG> *nods* 01:33 < nsf> geany, scite 01:33 < nsf> (easy to use editors) 01:33 < nsf> but I would recommend vim or emacs 01:33 < jessta> nano is easy to use 01:34 < nsf> although once you've learn vim or emacs you'll stay vimer or emacser forever 01:34 < nsf> for example I'm a vimer and I know that vim sucks, but just I can't use anything else ) 01:34 < nsf> s/just I/I just/ 01:35 < Ginto8> vim sucks? 01:35 < rogue780> does kate do syntax highlighting? I'm a fan of syntax highlighting. 01:35 < Ginto8> kate can do syntax highlighting 01:35 < Ginto8> if you set it up with the go.xm 01:35 < Ginto8> go.xml* 01:36 < nsf> Ginto8: yep, in terms of extensibility, emacs is much better (flymake, debuggers support, etc.) 01:36 < rogue780> I've mostly done development in Eclipse over the years, but recently I've found I don't use most of its features so I want something lightweight and just easy to use 01:36 < Ginto8> well emacs is the smallest OS ever made so =/ 01:36 < Ginto8> rogue780, vim or kate 01:36 < rogue780> emacs confused the crap out of me 01:36 < Ginto8> gedit's okay, but kate is superior 01:36 < rogue780> i think i'll try kate. be back in a bit 01:36 < EthanG> smallest???? :D 01:37 < nsf> emacs is horrible in a sense that you need to program lisp in order to use it 01:37 < nsf> whether in vim you can just set basic options and go on 01:37 < Ginto8> ok it's a moderately sized OS 01:37 -!- aho [~nya@f051073049.adsl.alicedsl.de] has quit [Read error: Connection reset by peer] 01:37 < Ginto8> yeah vim is so useful 01:37 < Ginto8> go in, edit, leave and done 01:37 < nsf> but I'm currently working on a Go completion for vim 01:37 < Ginto8> vim is my quick-edit thing 01:37 < nsf> and vim scripting is horrible :D 01:38 < Ginto8> vim is my utility for when I need to edit something quickly and easily 01:38 < Ginto8> I use an X text editor otherwise (kate atm) 01:38 -!- aho [~nya@f051073049.adsl.alicedsl.de] has joined #go-nuts 01:38 < EthanG> mm, vim starts up nice & quick, so much so that I still used it a lot when emacs was my main editor, but I never touched the scripting. 01:40 < nsf> does anyone know is it possible to interact with extern app in vim script (like 'subprocess' module in python), currently I use python support in vim for that, but not everyone has vim with python support compiled-in 01:40 < nsf> ? 01:41 < nsf> I guess it's a wrong place to ask 01:41 < nsf> ugh.. I'll just dig manual more deeply 01:41 * nsf is answering his own questions again 01:42 -!- rogue780 [~rogue780@c-68-34-234-213.hsd1.md.comcast.net] has quit [Read error: Connection reset by peer] 01:42 -!- rhelmer [~rhelmer@adsl-69-107-80-157.dsl.pltn13.pacbell.net] has quit [Quit: rhelmer] 01:44 -!- rogue780 [~rogue780@c-68-34-234-213.hsd1.md.comcast.net] has joined #go-nuts 01:47 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.2] 01:59 < rogue780> ok...so to install kate, it's in the kdesdk package...took me forever to find it 02:01 -!- EthanG [~ethan@sourcemage/guru/eekee] has left #go-nuts [] 02:01 < rogue780> hmmm...takes about 5 seconds for a drop-down menu to open. maybe I should go vim...but it's a bit complicated and i'm retarded 02:02 < Ginto8> gedit 02:02 < Ginto8> gedit's good and simple, tho kate is better 02:03 < rogue780> does gedit have go syntax highlighting? I'm sorry for all these noob questions...but, well, i'm a bit of a noob 02:03 < Ginto8> yeah 02:03 < Ginto8> rogue780, http://go-lang.cat-v.org/text-editors/ 02:06 -!- rhelmer [~rhelmer@adsl-69-107-89-49.dsl.pltn13.pacbell.net] has joined #go-nuts 02:14 < rogue780> Ginto8, thanks. im heading to bed now. tomorrow i will hopefully get go installed and all that. my goal is to make a database cacher initially. made one in java, but i really really really hate the java langauge 02:14 < Ginto8> yeah the overuse of OOP really annoys me =P 02:16 < rogue780> indeed 02:16 < rogue780> anyway, off to bed 02:17 -!- rogue780 [~rogue780@c-68-34-234-213.hsd1.md.comcast.net] has quit [Quit: Leaving] 02:18 -!- rhelmer [~rhelmer@adsl-69-107-89-49.dsl.pltn13.pacbell.net] has quit [Quit: rhelmer] 02:27 -!- KinOfCain [~KinOfCain@rrcs-64-183-61-2.west.biz.rr.com] has quit [Remote host closed the connection] 02:28 -!- nf [~nf@124-168-168-17.dyn.iinet.net.au] has quit [Read error: Connection reset by peer] 02:28 -!- nf [~nf@203-158-40-182.dyn.iinet.net.au] has joined #go-nuts 02:31 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts 02:36 -!- rhelmer [~rhelmer@adsl-69-107-89-49.dsl.pltn13.pacbell.net] has joined #go-nuts 02:37 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has joined #go-nuts 02:41 < jer> object oriented programming isn't inherently a problem. the focus on objects instead of messages is the problem 02:41 < jer> objects are a side product of what you should be focusing on, the messages themselves. focus on the messages, you're not limited to one kind of object -- some opaque structure 02:53 -!- emmanueloga [~emmanuelo@190.247.41.202] has quit [Quit: WeeChat 0.3.3-dev] 03:00 -!- rejb [~rejb@unaffiliated/rejb] has quit [Ping timeout: 276 seconds] 03:12 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has quit [Quit: This computer has gone to sleep] 03:15 -!- cco3 [~conley@c-69-181-138-209.hsd1.ca.comcast.net] has quit [Ping timeout: 240 seconds] 03:30 -!- agent_orange [~joel@lolnet.org] has quit [Read error: Connection reset by peer] 03:32 -!- mpl [~mpl@213.251.175.204] has quit [Ping timeout: 260 seconds] 03:33 -!- korfuri [~korfuri@eth0.korfuri.fr] has quit [Ping timeout: 276 seconds] 03:33 -!- danderson [~dave@atlas.natulte.net] has quit [Ping timeout: 276 seconds] 03:36 -!- ShadowIce` [pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts 03:39 -!- ShadowIce [pyoro@unaffiliated/shadowice-x841044] has quit [Ping timeout: 240 seconds] 03:56 -!- jchico [~jchico@cpe-98-14-12-209.nyc.res.rr.com] has quit [Remote host closed the connection] 03:59 -!- agent_orange [~joel@lolnet.org] has joined #go-nuts 04:05 -!- mpl [~mpl@213.251.175.204] has joined #go-nuts 04:05 -!- korfuri [~korfuri@eth0.korfuri.fr] has joined #go-nuts 04:08 -!- danderson [~dave@atlas.natulte.net] has joined #go-nuts 04:08 -!- mode/#go-nuts [+v danderson] by ChanServ 04:08 -!- emmanueloga [~emmanuelo@190.247.41.202] has joined #go-nuts 04:10 -!- cco3 [~conley@c-69-181-138-209.hsd1.ca.comcast.net] has joined #go-nuts 04:14 -!- Tiger_ [~chatzilla@118.126.12.54] has quit [Quit: quit] 04:17 -!- yashi [~yashi@dns1.atmark-techno.com] has joined #go-nuts 04:20 -!- ssb [~ssb@213.167.39.150] has quit [Read error: Operation timed out] 04:20 -!- Davidian1024 [~Davidian1@cpe-98-27-192-193.neo.res.rr.com] has quit [Read error: Operation timed out] 04:20 -!- ssb [~ssb@213.167.39.150] has joined #go-nuts 04:20 -!- Davidian1024 [~Davidian1@cpe-98-27-192-193.neo.res.rr.com] has joined #go-nuts 04:20 -!- mikespook [~mikespook@219.137.235.116] has quit [Ping timeout: 252 seconds] 04:20 -!- Zoopee [alsbergt@192.117.108.58] has quit [Ping timeout: 252 seconds] 04:21 -!- TR2N` [email@89.180.212.78] has joined #go-nuts 04:21 -!- mikespook [~mikespook@219.137.235.116] has joined #go-nuts 04:21 -!- Zoopee [alsbergt@zoopee.org] has joined #go-nuts 04:22 -!- X-Scale [email@89-180-212-78.net.novis.pt] has quit [Ping timeout: 276 seconds] 04:23 -!- rhelmer_ [~rhelmer@adsl-69-107-89-49.dsl.pltn13.pacbell.net] has joined #go-nuts 04:25 -!- rhelmer [~rhelmer@adsl-69-107-89-49.dsl.pltn13.pacbell.net] has quit [Ping timeout: 264 seconds] 04:30 -!- MizardX [~MizardX@unaffiliated/mizardx] has quit [Read error: Connection reset by peer] 04:30 -!- MizardX [~MizardX@unaffiliated/mizardx] has joined #go-nuts 04:32 -!- dju [dju@fsf/member/dju] has quit [Quit: Quitte] 04:51 -!- agent_orange [~joel@lolnet.org] has quit [Read error: Connection reset by peer] 04:51 -!- agent_orange [~joel@lolnet.org] has joined #go-nuts 04:53 -!- emmanueloga [~emmanuelo@190.247.41.202] has quit [Quit: WeeChat 0.3.3-dev] 04:54 -!- monokrome [~monokrome@monokro.me] has left #go-nuts [] 04:56 -!- MizardX [~MizardX@unaffiliated/mizardx] has quit [Ping timeout: 260 seconds] 04:56 -!- agent_orange [~joel@lolnet.org] has quit [Ping timeout: 240 seconds] 04:56 -!- korfuri [~korfuri@eth0.korfuri.fr] has quit [Ping timeout: 240 seconds] 04:57 -!- mpl [~mpl@213.251.175.204] has quit [Ping timeout: 260 seconds] 04:58 -!- danderson [~dave@atlas.natulte.net] has quit [Ping timeout: 260 seconds] 04:58 -!- scm [justme@d039124.adsl.hansenet.de] has quit [Ping timeout: 248 seconds] 05:00 -!- scm [justme@d018229.adsl.hansenet.de] has joined #go-nuts 05:10 -!- NfNitLoop [~bip@2001:470:b9cc:beef::1] has quit [Read error: Operation timed out] 05:15 -!- korfuri [~korfuri@eth0.korfuri.fr] has joined #go-nuts 05:15 -!- mpl [~mpl@smgl.fr.eu.org] has joined #go-nuts 05:15 -!- agent_orange [~joel@lolnet.org] has joined #go-nuts 05:16 -!- kmeyer [~konrad@fedora/kmeyer] has quit [Read error: Operation timed out] 05:16 -!- NfNitLoop [~bip@2001:470:b9cc:beef::1] has joined #go-nuts 05:16 -!- danderson [~dave@atlas.natulte.net] has joined #go-nuts 05:16 -!- mode/#go-nuts [+v danderson] by ChanServ 05:17 -!- eikenberry [~jae@ivanova.zhar.net] has quit [Quit: End of line.] 05:19 -!- kmeyer [~konrad@dante03.u.washington.edu] has joined #go-nuts 05:19 -!- kmeyer [~konrad@dante03.u.washington.edu] has quit [Changing host] 05:19 -!- kmeyer [~konrad@fedora/kmeyer] has joined #go-nuts 05:21 < Eko> nf: Is there an RSS/Atom feed for your blog? I can't seem to find one. 05:22 -!- mikespook [~mikespook@219.137.235.116] has quit [Ping timeout: 265 seconds] 05:22 < nf> http://nf.id.au/rss.xml 05:22 < nf> weird, you're the second one who has failed to find it 05:22 < nf> it's in the right-hand sidebar on the front page 05:23 < str1ngs> nf: I have a funny story about your mytools package 05:23 -!- mikespook [~mikespook@58.62.5.54] has joined #go-nuts 05:23 < str1ngs> I ran across it at github. and I thought I found someones stash. until I just noticed the one function. which I thought was odd. 05:24 < str1ngs> then I ran across your screencast and I had a good chuckle 05:24 < nf> lol 05:24 < nf> i actually thought that might happen 05:24 < str1ngs> was great 05:24 < nf> i should have called it "my indispensible stash of useful functions" 05:24 < nf> i'm about to add something more to that 05:25 < str1ngs> I thought I had found someone stash of go goodies 05:27 < Eko> nf: d'oh. It's in that webpage no-man's land between what you can see when it loads and the bottom of the page when people are done reading the content 05:27 < Eko> thanks though ;) 05:27 < nf> ;) i don't know why it's not in the html <head> tag 05:27 < nf> stupid posterous 05:28 < Eko> yeah, I usually just copy/paste the main URL into Google Reader and it figures it out for me via the <link> or whatever 05:28 < Eko> apparently posterous is above that. 05:30 -!- thomas_b [~thomasb@cm-84.215.37.40.getinternet.no] has joined #go-nuts 05:31 -!- jesusaur [jesusaur@firefly.cat.pdx.edu] has joined #go-nuts 05:31 < nf> wow, reader didn't do that? tsk tsk 05:31 < nf> i will attempt to fix my site's stylesheet 05:35 < Boney> I had this same experience wrt google reader. 05:35 < Boney> Eko: I think I'm the other person that nf said couldn't find the rss feed. 05:38 -!- Netsplit *.net <-> *.split quits: trustin, ssb, jesusaurus, gduffy, jsharkey 05:42 -!- Netsplit *.net <-> *.split quits: preflex, gnuvince_, Yappo__ 05:49 < Eko> Boney: I guess we're too dependent on Google's intelligence ;) 05:50 < Eko> I, for instance, am usually at a complete loss to find something if I can't find the magic words on Google and Wikipedia yields no results, lol 05:52 -!- jhawk28 [~jhawk28@c-069-063-212-182.sd2.redwire.net] has joined #go-nuts 05:53 -!- mxweas [~max@c-98-225-102-170.hsd1.az.comcast.net] has joined #go-nuts 06:08 -!- jhawk28 [~jhawk28@c-069-063-212-182.sd2.redwire.net] has quit [Remote host closed the connection] 06:12 -!- belkiss [~belkiss@drn13-1-78-235-168-105.fbx.proxad.net] has joined #go-nuts 06:14 -!- Project_2501 [~Marvin@82.84.95.155] has joined #go-nuts 06:14 -!- talin [daghenri@caracal.stud.ntnu.no] has joined #go-nuts 06:17 * Project_2501 is back! o.o 06:20 < talin> hello. what is the go implementation written in? 06:20 < Archwyrm> talin: C and some asm. 06:20 < talin> i see. thank you 06:29 -!- bortzmeyer [~bortzmeye@batilda.nic.fr] has joined #go-nuts 06:45 -!- incluye [~inklewyay@NW-ESR1-74-215-114-218.fuse.net] has quit [Remote host closed the connection] 06:51 -!- sioraiocht [~tomh@unaffiliated/sioraiocht] has joined #go-nuts 06:52 -!- rv2733 [~ron@c-98-242-168-49.hsd1.fl.comcast.net] has quit [Quit: Leaving] 07:00 -!- rlab [~Miranda@98-170-113-92.pool.ukrtel.net] has joined #go-nuts 07:12 -!- crashR [~crasher@codextreme.pck.nerim.net] has joined #go-nuts 07:18 -!- TR2N [email@89.180.212.78] has left #go-nuts [] 07:24 -!- ExtraSpice [~ExtraSpic@88.118.32.225] has joined #go-nuts 07:26 -!- belkiss [~belkiss@drn13-1-78-235-168-105.fbx.proxad.net] has quit [Quit: KVIrc Equilibrium 4.1.0, revision: 4632, sources date: 20100519, built on: 2010-07-09 07:13:47 UTC http://www.kvirc.net/] 07:31 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-151-49.clienti.tiscali.it] has joined #go-nuts 07:34 -!- Project_2501 [~Marvin@82.84.95.155] has quit [Ping timeout: 276 seconds] 07:39 -!- ssb [~ssb@213.167.39.150] has joined #go-nuts 07:39 -!- trustin [~trustin@redhat/jboss/trustin] has joined #go-nuts 07:39 -!- gduffy [~greg@67.207.134.177] has joined #go-nuts 07:39 -!- jsharkey [jsharkey@208.43.219.52] has joined #go-nuts 07:41 -!- iant [~iant@62-20-124-50.customer.telia.com] has joined #go-nuts 07:41 -!- mode/#go-nuts [+v iant] by ChanServ 07:41 -!- talin [daghenri@caracal.stud.ntnu.no] has left #go-nuts [] 07:44 -!- mduft [~mduft@193.186.16.254] has joined #go-nuts 07:44 -!- gnuvince_ [~vince@70.35.167.149] has joined #go-nuts 07:44 -!- Yappo__ [~yappo@221x243x122x124.ap221.ftth.ucom.ne.jp] has joined #go-nuts 07:44 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has joined #go-nuts 07:45 -!- cco3 [~conley@c-69-181-138-209.hsd1.ca.comcast.net] has quit [Ping timeout: 264 seconds] 07:46 -!- tav [~tav@2001:0:53aa:64c:0:3ffb:abf2:d6bb] has quit [Quit: tav] 07:46 -!- temoto [~temoto@81.19.90.136] has joined #go-nuts 07:55 -!- ikaros [~ikaros@drms-4d015414.pool.mediaWays.net] has joined #go-nuts 08:00 -!- bmizerany [~bmizerany@c-24-6-37-113.hsd1.ca.comcast.net] has quit [Remote host closed the connection] 08:02 < nsf> var date, ok = iface.(*Date) 08:02 < nsf> is it legal at global scope? 08:02 < nsf> compiler gives a very strange error on that 08:03 < nsf> http://codepad.org/YetdiAjH 08:03 < nsf> looks like that 08:03 <+iant> nsf: that is definitely a compiler bug, please report it 08:03 < nsf> ok 08:03 <+iant> the declaration ought to be valid at global scope, but even if it isn't the compiler should not crash like that 08:04 < nsf> i see 08:04 -!- sioraiocht [~tomh@unaffiliated/sioraiocht] has quit [Remote host closed the connection] 08:07 -!- mduft [~mduft@193.186.16.254] has quit [Remote host closed the connection] 08:09 < nsf> http://code.google.com/p/go/issues/detail?id=915 08:09 < nsf> done 08:10 < nsf> implementing a type inference in a Go completion project is kind of funny :D 08:10 -!- mduft [~mduft@gentoo/developer/mduft] has joined #go-nuts 08:11 < nsf> dark corners of the language come up pretty often :D 08:12 < nsf> also, a question 08:12 < nsf> it looks like in Go this kind of function definition is legal: 08:12 < nsf> func MyFunc(value struct { a, b, c int }) { ... } 08:12 < nsf> but how should I call this function? 08:12 -!- path[l] [~path@59.162.86.164] has joined #go-nuts 08:13 < KirkMcDonald> With something that is assignment-compatible with that struct., 08:13 < nsf> or struct with the same signature will be simply assignable to this? 08:13 < nsf> ah, yes.. thanks 08:13 < nsf> I see :) 08:13 < KirkMcDonald> http://golang.org/doc/go_spec.html#Assignability 08:14 < nsf> yes, yes, I saw that, just haven't considered this option for some reason 08:20 -!- noodll [~james@users.vu.union.edu] has left #go-nuts [] 08:26 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has quit [Quit: WeeChat 0.3.2] 08:26 -!- ikaros [~ikaros@drms-4d015414.pool.mediaWays.net] has quit [Quit: Leave the magic to Houdini] 08:26 -!- ExtraSpice [~ExtraSpic@88.118.32.225] has quit [Quit: Leaving] 08:28 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has joined #go-nuts 08:47 -!- jA_cOp [~yakobu@unaffiliated/ja-cop/x-9478493] has joined #go-nuts 08:49 -!- ExtraSpice [~ExtraSpic@88.118.32.225] has joined #go-nuts 08:57 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has quit [Ping timeout: 252 seconds] 09:07 -!- rlab [~Miranda@98-170-113-92.pool.ukrtel.net] has quit [Quit: Miranda IM! Smaller, Faster, Easier. http://miranda-im.org] 09:08 -!- rhelmer_ [~rhelmer@adsl-69-107-89-49.dsl.pltn13.pacbell.net] has quit [Ping timeout: 264 seconds] 09:15 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has joined #go-nuts 09:19 -!- General13372 [~support@71-84-50-230.dhcp.mtpk.ca.charter.com] has joined #go-nuts 09:22 -!- General1337 [~support@71-84-50-230.dhcp.mtpk.ca.charter.com] has quit [Ping timeout: 260 seconds] 09:29 -!- Fish-Work [~Fish@86.65.182.207] has quit [Ping timeout: 264 seconds] 09:29 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has quit [Ping timeout: 240 seconds] 09:34 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has joined #go-nuts 09:40 -!- mikespook [~mikespook@58.62.5.54] has quit [Quit: Leaving.] 09:45 -!- aho [~nya@f051073049.adsl.alicedsl.de] has quit [Ping timeout: 265 seconds] 09:55 -!- sauerbraten [~sauerbrat@p508CF30B.dip.t-dialin.net] has joined #go-nuts 10:10 -!- visof [~visof@unaffiliated/visof] has joined #go-nuts 10:10 -!- rbraley [~rbraley@ip72-222-128-78.ph.ph.cox.net] has quit [Read error: Connection reset by peer] 10:16 -!- jdp [~gu@24.238.32.162.res-cmts.segr.ptd.net] has quit [] 10:16 -!- mduft [~mduft@gentoo/developer/mduft] has quit [Quit: Leaving] 10:47 -!- mduft [~mduft@gentoo/developer/mduft] has joined #go-nuts 10:59 -!- Soultaker [~maks@hell.student.utwente.nl] has quit [Read error: Connection reset by peer] 11:12 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has quit [Ping timeout: 265 seconds] 11:17 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.2] 11:18 -!- belkiss [~belkiss@drn13-1-78-235-168-105.fbx.proxad.net] has joined #go-nuts 11:18 -!- path[l] [~path@59.162.86.164] has quit [Quit: path[l]] 11:24 -!- path[l] [~path@59.162.86.164] has joined #go-nuts 11:35 -!- path[l] [~path@59.162.86.164] has quit [Quit: path[l]] 11:37 -!- path[l] [~path@59.162.86.164] has joined #go-nuts 11:38 -!- rv2733 [~ron@c-98-242-168-49.hsd1.fl.comcast.net] has joined #go-nuts 11:43 -!- GeoBSD [~geobsd@lns-bzn-33-82-252-55-34.adsl.proxad.net] has joined #go-nuts 11:48 -!- belkiss [~belkiss@drn13-1-78-235-168-105.fbx.proxad.net] has quit [Quit: KVIrc Equilibrium 4.1.0, revision: 4632, sources date: 20100519, built on: 2010-07-09 07:13:47 UTC http://www.kvirc.net/] 12:11 -!- Fish-Work [~Fish@86.65.182.207] has joined #go-nuts 12:22 -!- tvw [~tv@e176000205.adsl.alicedsl.de] has joined #go-nuts 12:23 -!- MizardX [~MizardX@unaffiliated/mizardx] has joined #go-nuts 12:25 -!- anykey [~anykey@unaffiliated/anykey] has joined #go-nuts 12:50 -!- taruti [taruti@aoi.yi.org] has joined #go-nuts 12:52 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts 12:52 -!- Shyde [~Shyde^^@HSI-KBW-078-043-070-132.hsi4.kabel-badenwuerttemberg.de] has joined #go-nuts 12:53 -!- path[l] [~path@59.162.86.164] has quit [Quit: path[l]] 13:05 -!- sladegen [~nemo@unaffiliated/sladegen] has quit [Ping timeout: 265 seconds] 13:08 -!- napsy_ [~napsy@193.2.66.101] has joined #go-nuts 13:11 -!- sladegen [~nemo@unaffiliated/sladegen] has joined #go-nuts 13:16 -!- rlab [~Miranda@98-170-113-92.pool.ukrtel.net] has joined #go-nuts 13:16 -!- tvw [~tv@e176000205.adsl.alicedsl.de] has quit [Ping timeout: 265 seconds] 13:18 -!- path[l] [~path@122.182.0.38] has joined #go-nuts 13:28 -!- skelterjohn [~jasmuth@c-76-116-181-134.hsd1.nj.comcast.net] has joined #go-nuts 13:28 -!- artefon [~thiago@189.107.226.217] has joined #go-nuts 13:28 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has joined #go-nuts 13:33 -!- i__ [~none@nkvd.ath.cx] has quit [Changing host] 13:33 -!- i__ [~none@unaffiliated/i--/x-3618442] has joined #go-nuts 13:43 < nsf> http://nsf.github.com/images/gocode3.png <- type inference in action :D 13:44 < jessta> cool 13:45 -!- skelterjohn [~jasmuth@c-76-116-181-134.hsd1.nj.comcast.net] has quit [Quit: skelterjohn] 13:45 < nsf> but there are still a lot of work to be done 13:45 < nsf> :( 13:46 < nsf> the next big step is local variables 13:48 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has quit [Quit: This computer has gone to sleep] 13:54 -!- Robbo_ [~Robbocogs@CPE-124-179-73-25.lns5.cht.bigpond.net.au] has joined #go-nuts 13:59 * anykey is torn between "Go needs more work" and "Hey, let's use this for productive coding at the job". Can anyone offer some insight? 14:00 -!- incluye [~inklewyay@NW-ESR1-74-215-114-218.fuse.net] has joined #go-nuts 14:01 < nsf> anykey: both are true :) 14:01 < nsf> I mean it certainly can be used for productive coding 14:01 < nsf> and it needs more work 14:01 < nsf> :) 14:02 < nsf> compiler and runtime is getting more and more stable 14:02 < nsf> but a lot of libraries and tools are still missing 14:02 < anykey> yeah, I am more concerned about oracle database connectivity 14:02 < anykey> yes, missing libraries. 14:03 < anykey> I have not found documentation about go's FFI and how to use it. Is there any? 14:03 < anykey> But I have only been looking into Go sice Sunday morning 14:03 -!- kanru [~kanru@61-228-163-199.dynamic.hinet.net] has joined #go-nuts 14:03 < nsf> there are few examples of interfacing with C in GOROOT/misc/cgo 14:04 < anykey> ah, the distribution. good idea. 14:04 < anykey> They must've done it somehow after all. 14:05 < anykey> umm 14:05 < anykey> that seems... almost easy. 14:06 < nsf> it is straightforward 14:06 < nsf> and ugly 14:06 < nsf> :) 14:07 < temoto> nsf, whoa, russian vim 14:07 < nsf> :D 14:08 < temoto> nsf, how can i get that thing too? 14:08 < nsf> temoto: as soon as it will be release, it's in the early development stage for now 14:08 < nsf> a lot of things messy and everything is changing very fast 14:08 < nsf> are messy* 14:09 -!- tvw [~tv@e176000205.adsl.alicedsl.de] has joined #go-nuts 14:09 < nsf> I'll probably a drop a message on the ML when it's ready 14:09 -!- Robbo_ [~Robbocogs@CPE-124-179-73-25.lns5.cht.bigpond.net.au] has left #go-nuts [] 14:09 < temoto> nsf, thanks. 14:10 -!- sioraiocht [~tomh@unaffiliated/sioraiocht] has joined #go-nuts 14:10 -!- plainhao [~plainhao@mail.xbiotica.com] has joined #go-nuts 14:23 -!- tvw [~tv@e176000205.adsl.alicedsl.de] has quit [Ping timeout: 265 seconds] 14:28 -!- rlab [~Miranda@98-170-113-92.pool.ukrtel.net] has quit [Read error: Connection reset by peer] 14:45 < sauerbraten> is there a .pdf-version of the standard go tutorial (http://golang.org/doc/go_tutorial.html) ? 14:45 -!- awidegreen [~quassel@62.176.237.78] has joined #go-nuts 14:50 -!- Yoann512 [~yoann512@nyx.sheraf.net] has joined #go-nuts 14:51 -!- Yoann512 [~yoann512@nyx.sheraf.net] has left #go-nuts [] 14:53 -!- napsy_ [~napsy@193.2.66.101] has quit [Quit: leaving] 14:54 < temoto> sauerbraten, there's $GOROOT/doc/GoCourseDay{1,2,3}.pdf <- very good introductional reading. 14:54 < sauerbraten> mhm k should i first read the normal tut or the pdfs? 14:57 -!- tav [~tav@2001:0:53aa:64c:0:3ffb:abf2:d6bb] has joined #go-nuts 14:58 -!- visof [~visof@unaffiliated/visof] has quit [Quit: Leaving] 14:59 * anykey wonders why there isn't a "Go Book" at all. 15:00 < MizardX> Go isn't old enough for any author to have finished a book about it. 15:00 < sauerbraten> anykey: i've seen at amazon.de that there will be one in german in november :) 15:01 < sauerbraten> anykey: http://www.amazon.com/Go-Programming-John-P-Baugh/dp/1453636676/ref=sr_1_1?ie=UTF8&s=books&qid=1278947125&sr=8-1 15:01 < sauerbraten> also one in english 15:02 -!- ampleyfly [~ampleyfly@h-148-139.A163.priv.bahnhof.se] has quit [Ping timeout: 276 seconds] 15:02 < anykey> whew, thanks :-) 15:04 < anykey> they really should pick a better searchable name for this language. Every time I search for something, I get a ton of hits unrelated. "golang" helps a bit, but some things don't show up... 15:05 < sauerbraten> i just searched for "go programming" ;-) 15:06 < sauerbraten> can someone explain the echo.go programm in $GOBIN/doc/progs a little bit? the NArgs part confuses me... 15:06 < anykey> heh, I tried "go language". 15:06 < sauerbraten> maybe better in private chat, that will be less embarrassing for me :/ 15:07 -!- iant [~iant@62-20-124-50.customer.telia.com] has quit [Read error: Operation timed out] 15:08 < sauerbraten> forget it i got it now... -.- 15:09 < plexdev> http://is.gd/dpbgv by [Ian Lance Taylor] in go/test/fixedbugs/ -- Test case that gccgo fails (crashes rather than printing error). 15:17 -!- bortzmeyer [~bortzmeye@batilda.nic.fr] has quit [Quit: Leaving.] 15:19 < sauerbraten> map in go = dictionary in python? 15:19 -!- artefon [~thiago@189.107.226.217] has quit [Quit: bye] 15:27 -!- RobertLJ [~RobertLJ@c-68-44-163-191.hsd1.nj.comcast.net] has joined #go-nuts 15:30 < anykey> not entirely. The type on the "left hand side" must be non-struct, iirc 15:30 < anykey> that's because a mapped type must implement ==, and structs don't. 15:31 < anykey> at least I remember reading that last nicht, very late, so it might be outdated. 15:31 < anykey> s/nicht/night 15:35 < sauerbraten> ok thanks... btw you are right: $GOBIN/doc/go_lang_faq.html#builtin_maps 15:38 -!- sioraiocht [~tomh@unaffiliated/sioraiocht] has quit [Remote host closed the connection] 15:42 -!- kanru [~kanru@61-228-163-199.dynamic.hinet.net] has quit [Ping timeout: 240 seconds] 15:45 < temoto> anykey, python dict put restrictions on keys too. 16:06 -!- artefon [~thiagon@150.164.2.20] has joined #go-nuts 16:11 -!- RobertLJ [~RobertLJ@c-68-44-163-191.hsd1.nj.comcast.net] has quit [Quit: RobertLJ] 16:11 -!- RobertLJ [~RobertLJ@c-68-44-163-191.hsd1.nj.comcast.net] has joined #go-nuts 16:13 -!- sioraiocht [~tomh@unaffiliated/sioraiocht] has joined #go-nuts 16:14 -!- Venom_X [~pjacobs@71.21.124.111] has joined #go-nuts 16:14 -!- Adys [~Adys@unaffiliated/adys] has joined #go-nuts 16:21 -!- RobertLJ [~RobertLJ@c-68-44-163-191.hsd1.nj.comcast.net] has quit [Ping timeout: 265 seconds] 16:29 -!- path[l] [~path@122.182.0.38] has quit [Quit: path[l]] 16:31 < Ginto8> what does this runtime error mean? 16:31 < Ginto8> panic: runtime error: SIGNONE: no trap 16:34 -!- path[l] [~path@59.162.86.164] has joined #go-nuts 16:37 -!- ampleyfl1 [~ampleyfly@h-148-139.A163.priv.bahnhof.se] has joined #go-nuts 16:38 -!- Fish [~Fish@9fans.fr] has joined #go-nuts 16:44 -!- Adys [~Adys@unaffiliated/adys] has quit [Quit: I ♥ Unicode] 16:52 -!- Adys [~Adys@unaffiliated/adys] has joined #go-nuts 16:53 -!- path[l] [~path@59.162.86.164] has quit [Quit: path[l]] 16:54 -!- mxweas [~max@c-98-225-102-170.hsd1.az.comcast.net] has quit [Quit: Mac has gone to sleep] 16:54 -!- mxweas [~max@c-98-225-102-170.hsd1.az.comcast.net] has joined #go-nuts 16:54 -!- mxweas [~max@c-98-225-102-170.hsd1.az.comcast.net] has quit [Client Quit] 16:55 -!- path[l] [~path@59.162.86.164] has joined #go-nuts 17:01 -!- Adys [~Adys@unaffiliated/adys] has quit [Ping timeout: 240 seconds] 17:03 -!- Maxdamantus [~m@203-97-238-106.cable.telstraclear.net] has quit [Ping timeout: 276 seconds] 17:08 -!- skelterjohn [~jasmuth@c-76-116-181-134.hsd1.nj.comcast.net] has joined #go-nuts 17:08 -!- sladegen [~nemo@unaffiliated/sladegen] has quit [Ping timeout: 258 seconds] 17:09 -!- sladegen [~nemo@unaffiliated/sladegen] has joined #go-nuts 17:10 -!- Maxdamantus [~m@203-97-238-106.cable.telstraclear.net] has joined #go-nuts 17:11 < temoto> Ginto8, i believe that's exactly the same as pressing Ctrl+\ (sends SIGQUIT) and seeing panic: runtime error: SIGQUIT: ... 17:12 < Ginto8> well what sends SIGNONE? 17:12 < Ginto8> and what does it mean by "no trap"? 17:14 < temoto> Ginto8, "no trap" ought to be a text signal description, like SIGHUP: "terminal line hangup" 17:14 < temoto> so it's not Go specific 17:14 < Ginto8> hmm 17:15 < temoto> Googling for SIGNONE was surprisingly hard, here's what i got: http://docs.google.com/viewer?a=v&q=cache:TIyzD-TqD7sJ:www.redbooks.ibm.com/redpapers/pdfs/redp4059.pdf+signone+unix+signal&hl=en&gl=ru&pid=bl&srcid=ADGEEShh9Sp9-Rm4CK6HSvqGPhliUKqHFtOM6Bj_G422cLF8mVyK1hoNDUIF9CtCvyQDzzfR_xKbcX33Zjm6jAKTfa7zDo40TVlNw53NMs0mxSJzmVK_75yCWclEbGjnX6nCRp_W-mBJ&sig=AHIEtbTakY4hDjEbabZ7vCIf_vo-C8PAtQ 17:15 < temoto> ouch 17:15 < temoto> > Signals -1,0, OUTOFMEMORY and SIGNONE are the memory signals (see Example 1 on page 8). If you see one of these signals, go to “Out of memory error” on page 14. 17:15 < Ginto8> o.o 17:17 < Ginto8> could this be a go bug? 17:17 < temoto> While this http://xoomer.virgilio.it/infinity77/wxPython/Widgets/wx.Process.html tells that wx.SIGNONE = 0 —> verify if the process exists under Unix 17:17 < Ginto8> hm 17:17 < Ginto8> very confusing 17:17 < Ginto8> I saw it as a go bug in some version 17:17 < Ginto8> then it got fixed by a new revision 17:18 < temoto> Well if you asked could this be a Perl or GCC bug, i'd tend to no, but considering Go youth, why not. 17:18 < temoto> Very confusing, indeed. 17:19 < temoto> Ginto8, can you reproduce it? 17:19 < Ginto8> well IDK where the bug happens 17:20 < anykey> temoto: really? ok, I didn't know that. I remember using Python dicts with all sorts of stuff. 17:20 < Ginto8> it shows the current goroutines and what they're doing, but all I know about the error is that it's caused by a sigpanic() call 17:20 -!- TR2N [email@89.180.161.235] has joined #go-nuts 17:21 < temoto> anykey, with all sorts of immutable hashable stuff as keys. 17:22 < Ginto8> one interesting thing I noticed tho is that in all of the goroutines they're calling syscalls 17:22 < temoto> Ginto8, could you share the code that causes it? 17:22 < anykey> temoto: that's probably true. However, I didn't experience that as restrictive. Okay. 17:22 < Ginto8> temoto, yeah but it's a few hundred lines and probly crappy overall 17:22 < Ginto8> one sec 17:23 < temoto> Ginto8, prev. bug was related to garbage collector. 17:23 < Ginto8> yeah 17:23 < Ginto8> it sounds like it 17:23 < Ginto8> I'm not sure you really want my code 17:23 < Ginto8> it's ugly 17:24 < Ginto8> but here's the full error readout: 17:24 < Ginto8> http://pastebin.com/3NAdV7ex 17:24 < Ginto8> it might also have something to do with cgo 17:24 < Ginto8> =/ 17:28 < NfNitLoop> Hrmm, the docs say that Map keys have to imlpement equality. (==). How does an interface implement equality? (I've tried searching through docs, but haven't found the relevant bits.) Is it operator==() like in C? 17:28 < NfNitLoop> (er, C++) 17:28 < Ginto8> nope 17:29 < Ginto8> you can't use interfaces or structs as keys 17:29 < Ginto8> and you can't overload operators 17:29 < NfNitLoop> "The key can be of any type for which the equality operator is defined, such as integers, floats, strings, pointers, and interfaces" 17:29 < NfNitLoop> http://golang.org/doc/effective_go.html 17:29 < NfNitLoop> is that wrong, then? 17:29 < Ginto8> hmmm 17:29 < Ginto8> idk 17:29 < Ginto8> check the docs 17:30 < NfNitLoop> ... those are the docs. 17:30 < Ginto8> effective go != docs 17:30 < Ginto8> docs == docs 17:30 < Ginto8> http://golang.org/doc/go_spec.html 17:30 < Ginto8> spec == docs 17:30 < NfNitLoop> Mmm, tautologies. 17:31 < temoto> Ginto8, that's a sacred knowledge. I would expect effective go to be full blown part of docs. 17:31 < NfNitLoop> I'll read more of the spec. 17:31 < NfNitLoop> but my initial search through it for "operator" and "==" didn't find relevant bits. 17:31 < NfNitLoop> temoto: Yeah, me too. 17:32 < temoto> NfNitLoop, that's because Go has no operator overloading. 17:32 < NfNitLoop> I mean, it's right there on golang.com, even *before* the language spec. 17:32 < NfNitLoop> temoto: That's good, IMO. 17:32 < Ginto8> yep 17:32 < NfNitLoop> temoto: then I'm a bit confused how a map key would "implement equality" as an interface. 17:33 < temoto> NfNitLoop, for example, Equals method. 17:33 < temoto> like in Java, y'kno 17:33 < Ginto8> yeah but for a map key? 17:33 < NfNitLoop> right, but the docs don't seem to define what the "equality" interface might be. 17:34 < NfNitLoop> from the spec: "If the key type is an interface type, these comparison operators must be defined for the dynamic key values" 17:34 < NfNitLoop> dynamic key values? 17:34 < temoto> I don't know what's equality interface is, either. :( 17:34 < Ginto8> NfNitLoop, oh that 17:34 < Ginto8> basically it has o be an integer, float, string, pointer, or an interface containing one of those things 17:34 -!- mxweas [~max@c-98-225-102-170.hsd1.az.comcast.net] has joined #go-nuts 17:34 < Ginto8> to* 17:35 -!- rlab [~Miranda@98-170-113-92.pool.ukrtel.net] has joined #go-nuts 17:35 < NfNitLoop> I thought interfaces only contained methods? 17:35 < NfNitLoop> Ooooooh. 17:35 < temoto> NfNitLoop, did you get it? 17:36 < temoto> because i didn't 17:36 < Ginto8> an interface is basically a pointer with a specified method set 17:36 < NfNitLoop> maybe. So if I have type X interface {}; type Y int; 17:36 < Ginto8> yep 17:36 < Ginto8> that's it 17:36 < NfNitLoop> I could put y into a map [X] string; ? 17:36 < Ginto8> as the key 17:36 < Ginto8> yes 17:36 < NfNitLoop> right. 17:37 < NfNitLoop> weird. 17:37 < NfNitLoop> but some other X... 17:37 < Ginto8> I know 17:37 < NfNitLoop> which wasn't implemented by a primitive type... 17:37 < Ginto8> it's.... odd 17:37 < NfNitLoop> wouldn't go. 17:37 < KirkMcDonald> We were talking about this the other day... 17:37 < temoto> Wait, those two statements unrelated yet. 17:37 < KirkMcDonald> Say the language defines a type Hashable interface { Equals() bool; Hash() int } 17:38 < KirkMcDonald> Well, Equals(Hashable) bool 17:38 < KirkMcDonald> Or... something. 17:38 < homa_rano> I don't think the language can support Equals in an interface without some generics 17:39 < temoto> KirkMcDonald, so the question is, does the language actually defines such interface? 17:39 < NfNitLoop> homa_rano: Java did. Everything was just passed as Object. :/ 17:39 < KirkMcDonald> temoto: Oh, it doesn't. 17:39 -!- rv2733 [~ron@c-98-242-168-49.hsd1.fl.comcast.net] has quit [Quit: Leaving] 17:39 < temoto> KirkMcDonald, so what are dynamic key values then? 17:39 < KirkMcDonald> I'm just thinking out loud about how you could define your own hashing behavior. 17:40 < Ginto8> I think right now we're just floundering as we try to find the answer to an impossible question 17:40 -!- scm [justme@d018229.adsl.hansenet.de] has quit [Ping timeout: 240 seconds] 17:40 < NfNitLoop> impossible? 17:40 < KirkMcDonald> Oh, I see. 17:40 < skelterjohn> what about go makes it impossible to have an interface { Hash() int; Equals(other Hashable) bool }? 17:40 < Ginto8> nothing 17:41 < Ginto8> we're just trying to find a way to have a map with a struct as a key 17:41 < Ginto8> which is, by definition, impossible 17:41 < skelterjohn> if you mean the primitive map type, yes 17:41 < Ginto8> yep 17:41 < KirkMcDonald> This interface concerns me because you will basically always have to do a type assertion inside of the implementation of Equals. 17:42 < skelterjohn> KirkMcDonald: yep. something with generics would presumably be faster 17:42 < Ginto8> well if you have a hash function that also uses type information to generate the hash, you don't have to 17:43 < skelterjohn> you'd still have to unpack teh struct to compare its internals 17:43 < skelterjohn> even if you knew for sure that the type was correct 17:43 < KirkMcDonald> Anyway, the phrase "dynamic key values" refers to the fact that the values inside of an interface{} are of a dynamic type. 17:43 -!- path[l] [~path@59.162.86.164] has quit [Quit: path[l]] 17:44 < skelterjohn> where does the phrase "dynamic key values" occur? forgive me for joining the conversation late 17:44 < KirkMcDonald> http://golang.org/doc/go_spec.html#Map_types 17:44 < KirkMcDonald> " If the key type is an interface type, these comparison operators must be defined for the dynamic key values; failure will cause a run-time panic." 17:44 < skelterjohn> right. so having an interface{} that happens to contain an int is fine 17:44 < skelterjohn> but a random struct is not 17:44 -!- scm [justme@d018229.adsl.hansenet.de] has joined #go-nuts 17:45 < KirkMcDonald> As in: m := make(map[interface{}]bool); m["foo"] = true; m[12] = true // uh oh 17:45 < skelterjohn> that too 17:45 < Ginto8> hm yeah 17:46 < skelterjohn> introducing some form of generics to the language would open up a world of useful 3rd party libraries 17:46 < Ginto8> yeah 17:46 < skelterjohn> many of which would be containers of various sorts 17:46 < Ginto8> well there is gotgo 17:47 < Ginto8> which is a pretty good form of them 17:47 < skelterjohn> i suggested in the mailing list that gotgo could be incorporated into goinstall, for an effective way to do many types of generics 17:47 < skelterjohn> but i got shot down 17:48 < Ginto8> that would be awesome 17:48 < skelterjohn> the main reason cited was that it would not allow generics to have local types as parameters 17:49 < skelterjohn> for instance, cannot have Matrix<Matrix<float64>> 17:49 < KirkMcDonald> I've pointed the Go devs at D's implementation of generics. 17:49 < KirkMcDonald> Which I like quite a bit. 17:49 < Ginto8> well you could have it be partially integrated in goinstall 17:49 < KirkMcDonald> (Well, not generics, but templates.) 17:49 < Ginto8> and also install the generic form 17:49 < Ginto8> so that you can then also specify types 17:49 < KirkMcDonald> (Whether having full-blown templates is preferable to generics is another matter.) 17:50 < skelterjohn> ok - how about this - your matrix package takes as a parameter the type T 17:50 < skelterjohn> and within it you want a Matrix<Matrix<T>> 17:50 < skelterjohn> which passes Matrix<T> to a sub-import 17:50 < Ginto8> okay 17:50 < skelterjohn> which wants a Matrix<Matrix<Matrix<T>>> 17:50 < skelterjohn> etc 17:50 < skelterjohn> well that's a silly example anyway 17:50 < Ginto8> huh? 17:51 < skelterjohn> i'm having trouble reconstructing the argument, unfortunately 17:51 < Ginto8> a matrix<T> wants a matrix<matrix<matrix<T>>>? 17:51 < skelterjohn> it was a silly example because that would have an infinite recursiion no matter how you did it 17:51 < skelterjohn> skip the thought, please. 17:51 < skelterjohn> :) 17:52 < Ginto8> ok 17:53 -!- belkiss [~belkiss@drn13-1-78-235-168-105.fbx.proxad.net] has joined #go-nuts 17:53 < KirkMcDonald> The D concept of templates does a couple of things right. 17:54 < KirkMcDonald> Or maybe it is more correct to say that C++ got some things wrong, and D avoids those mistakes. 17:56 < skelterjohn> how does D work? 17:57 < Ginto8> C++ got a number of things wrong 17:57 < KirkMcDonald> First, forget what you know about C++ templates. :-) 17:57 < Ginto8> D has templates and generics 17:57 < KirkMcDonald> In D, a template is a namespace. 17:57 -!- tvw [~tv@e176000205.adsl.alicedsl.de] has joined #go-nuts 17:57 < Ginto8> a const namespace 17:57 < KirkMcDonald> Ginto8: The "generics" are just syntactic sugar for templates. 17:57 -!- jchico [~jchico@cpe-98-14-12-209.nyc.res.rr.com] has joined #go-nuts 17:57 < Ginto8> good point 17:58 < KirkMcDonald> Ginto8: "Const"? 17:58 < KirkMcDonald> Anyway. 17:58 < Ginto8> well the values don't change once the template exists do they? 17:58 < KirkMcDonald> A template without anything in it might look like: template Foo(T) {} 17:58 -!- path[l] [~path@122.182.0.38] has joined #go-nuts 17:59 < KirkMcDonald> Ginto8: Depends on which values you're talking about. 17:59 < KirkMcDonald> Ginto8: Template parameters are compile-time constants. 17:59 < KirkMcDonald> Ginto8: But a template can contain any declarations, including non-const variable declarations. 17:59 < Ginto8> oh 17:59 < Ginto8> THAT I didn't know 17:59 < Ginto8> ok then thanks for clarifying 17:59 -!- path[l] [~path@122.182.0.38] has quit [Client Quit] 18:00 < KirkMcDonald> So, in the example above, Foo is the name of the template, and T is a (type) parameter. 18:00 < Ginto8> yeah 18:00 -!- snearch [~snearch@f053006172.adsl.alicedsl.de] has joined #go-nuts 18:00 < KirkMcDonald> Inside the curly braces, you can put any declarations. Variables, functions, classes, other types, and other templates. 18:01 < KirkMcDonald> And you can put any number of declarations. 18:01 < temoto> I think it could be said in two words that generics/template is a program with types as first class values. With all bonuses derived from this definition. 18:01 < KirkMcDonald> temoto: Not just types, but also compile-time values. 18:01 < KirkMcDonald> D permits floats and strings as template parameters. 18:02 < temoto> KirkMcDonald, you mean literals? 18:02 < KirkMcDonald> Yes. 18:02 < KirkMcDonald> And compile-time string manipulation can be useful. 18:02 < temoto> Yeah, operating on literals is useful at times. 18:03 < KirkMcDonald> (Since you can slice or concatenate two compile-time string values and get another compile-time value.) 18:03 < KirkMcDonald> (Which permits all manner of wackiness.) 18:04 < Ginto8> yeah 18:04 < KirkMcDonald> Anyway. Take this template: template Foo(T) { class Foo { T t; } } 18:04 < temoto> The downside is that no matter how languages sugars it, effectively compilation is a two-step process, which means that final output is now two steps away from what you wrote. 18:04 < KirkMcDonald> There we have a parameterized class. 18:04 < KirkMcDonald> Normally, you'd refer to the class as, say: Foo!(int).Foo 18:05 < KirkMcDonald> The !() is D's syntax for instantiating a template. 18:05 < temoto> whoa explicit instantiation 18:05 < KirkMcDonald> The .Foo is there because the Foo class is inside the Foo template (which is a namespace, remember). 18:05 -!- geocalc [~geobsd@lns-bzn-26-82-254-89-236.adsl.proxad.net] has joined #go-nuts 18:06 < KirkMcDonald> But D has a special case where, if a template contains exactly one declaration, and that declaration has the same name as the template, you can refer to that declaration implicitly. 18:06 -!- GeoBSD [~geobsd@lns-bzn-33-82-252-55-34.adsl.proxad.net] has quit [Ping timeout: 260 seconds] 18:06 < KirkMcDonald> So Foo!(int) can be used to refer to the class. 18:06 < KirkMcDonald> And then on top of this, there is some syntactic sugar: class Foo(T) { T t; } 18:06 < KirkMcDonald> Which is equivalent to the template I mentioned above. 18:07 < temoto> Which is "just parametrized type". 18:07 < KirkMcDonald> Similarly for functions: void bar(T)(T t) {} 18:08 < KirkMcDonald> With functions, there is Implicit Function Template Instantiation, which means that it will infer the template parameters from the types of the arguments. 18:08 < KirkMcDonald> bar(12); // works 18:08 < KirkMcDonald> bar!(int)(12); // equivalent 18:09 < temoto> Very nice. (except for tons of parens syntax) I thought that D is much worse than this. 18:09 < KirkMcDonald> D does a couple things right. 18:09 < KirkMcDonald> Templates are one of them. 18:09 < KirkMcDonald> delegates are another. 18:09 < temoto> Delegates as in lambdas? 18:09 < KirkMcDonald> Dynamic arrays (very similar to Go's slices) are a third. 18:10 < KirkMcDonald> temoto: Not exactly. 18:10 < Ginto8> temoto, delegates as in closures or bound method pointers 18:10 < KirkMcDonald> So there are function pointers, and there are delegates. 18:10 < KirkMcDonald> A delegate is just a struct containing a function pointer and a context pointer. 18:11 < KirkMcDonald> They are used for both closures, and for bound method pointers. 18:11 -!- monteslu [~monteslu@ip68-109-175-168.ph.ph.cox.net] has quit [Remote host closed the connection] 18:11 < temoto> Ginto8, for some reason i used to concatenate meanings of 'lambda' and 'closure'. Maybe because i haven't seen a language where anonymous functions aren't closures. 18:11 < Ginto8> hm 18:11 < Ginto8> okay 18:12 < KirkMcDonald> temoto: Astonishingly, D1.0's closures are "weak" closures. 18:12 < KirkMcDonald> Meaning that when they reference variables from the enclosing function's stack frame, those references are only valid so long as the frame is valid. 18:12 < KirkMcDonald> So you can pass them down the call stack, but not up the call stack. 18:13 < KirkMcDonald> (D2 fixes this, but I don't think anyone uses D2.) 18:14 < KirkMcDonald> The advantage, I guess, is that this makes them very, very cheap. But they can be ever so dangerous. 18:14 < KirkMcDonald> Which is a pity, because it manages to have such a nice syntax for them. 18:14 < temoto> KirkMcDonald, and by saying that D does lambdas right, you mean D2 then? 18:14 < KirkMcDonald> temoto: I said it did *delegates* right. 18:14 < KirkMcDonald> As in, the type to which lambdas are assigned. 18:15 < KirkMcDonald> The syntax for a lambda is just some code inside of curly braces, e.g.: f({ writefln("hello world"); }); // pass this anonymous function to f() 18:16 < KirkMcDonald> Where f might be: void f(void delegate() dg) { dg(); } 18:16 < temoto> Well, in a strictly typed language any function is supposed to be typed, so lambda should have a well defined type... i don't see anything 'done right' more than it could be done. 18:17 < KirkMcDonald> temoto: The trick is that the 'delegate' types can also act as pointers to bound methods. 18:17 < KirkMcDonald> temoto: It is very much like the 'func' types in Go. 18:17 < Ginto8> yeah cuz func types can actually reference methods 18:18 < Ginto8> func(T, params...) 18:18 < Ginto8> right? 18:18 < temoto> KirkMcDonald, okay, i guess it needs strong C++ background to value that sort of thing which is just given in languages i used. 18:18 < KirkMcDonald> temoto: Right. C++ is hopeless when it comes to callbacks-with-context. 18:18 < Ginto8> yeah C++ isn't very good with that sorta thing 18:19 < KirkMcDonald> If you're lucky, you'll get a template where you can pass any callable type. 18:19 < KirkMcDonald> If you're not, you'll get a void set_callback(void (*fn)(void*), void *ptr) 18:20 < KirkMcDonald> And if you're really unlucky you'll just get a function pointer and a wish for good luck. 18:20 -!- path[l] [~path@120.138.102.50] has joined #go-nuts 18:21 -!- jackman [~jackman@c-24-21-216-140.hsd1.or.comcast.net] has quit [Quit: leaving] 18:22 < temoto> And still D overcomplicate things (for my opinion). Delegates, bound methods... It could be: there is a function, there is type. Compose them any way you like. End of story. Like in Go and a bunch of other languages. 18:22 -!- qIIp [~qIIp@134.29.57.71] has joined #go-nuts 18:24 < Ginto8> temoto, I agree 18:25 < KirkMcDonald> I am not sure how this is overcomplicating matters. 18:25 -!- ender2070 [~ender2070@bas22-toronto12-2925103372.dsl.bell.ca] has joined #go-nuts 18:25 < Ginto8> well I think it's just that we prefer just func() types 18:25 < KirkMcDonald> The one complication is that there are distinct function-pointer and delegate types. 18:26 < KirkMcDonald> But delegates are about 100% more useful. 18:26 < Ginto8> yeah that's what he's talkin bout 18:27 < plexdev> http://is.gd/dpmXX by [Micah Stetson] in go/src/pkg/json/ -- json: Add HTMLEscape 18:27 -!- artefon [~thiagon@150.164.2.20] has quit [Ping timeout: 240 seconds] 18:27 < temoto> Yeah, there are people talking about delegates and there are people doing useful work. :) 18:32 -!- artefon [~thiagon@150.164.2.20] has joined #go-nuts 18:39 -!- dju [dju@fsf/member/dju] has joined #go-nuts 18:42 -!- aho [~nya@fuld-4d00d1f5.pool.mediaWays.net] has joined #go-nuts 18:42 -!- dju [dju@fsf/member/dju] has quit [Max SendQ exceeded] 18:43 -!- dju [dju@fsf/member/dju] has joined #go-nuts 18:45 -!- deso [~deso@x0561a.wh30.tu-dresden.de] has joined #go-nuts 18:47 -!- mxweas [~max@c-98-225-102-170.hsd1.az.comcast.net] has quit [Quit: mxweas] 18:49 -!- hcatlin [~hcatlin@pdpc/supporter/professional/hcatlin] has joined #go-nuts 18:51 -!- path[l] [~path@120.138.102.50] has quit [Quit: path[l]] 18:54 -!- iant [~iant@81-233-149-58-no82.tbcn.telia.com] has joined #go-nuts 18:54 -!- mode/#go-nuts [+v iant] by ChanServ 18:54 -!- sladegen [~nemo@unaffiliated/sladegen] has quit [Ping timeout: 258 seconds] 18:55 -!- sladegen [~nemo@unaffiliated/sladegen] has joined #go-nuts 18:59 -!- Eridius [~kevin@unaffiliated/eridius] has joined #go-nuts 19:01 -!- RobertLJ [~RobertLJ@c-68-44-163-191.hsd1.nj.comcast.net] has joined #go-nuts 19:04 -!- iant1 [~iant@81-233-149-58-no82.tbcn.telia.com] has joined #go-nuts 19:04 -!- iant [~iant@81-233-149-58-no82.tbcn.telia.com] has quit [Read error: Connection reset by peer] 19:06 -!- tav_ [~tav@84.13.41.68] has joined #go-nuts 19:06 < anykey> I can't believe it. This is the fastest response to a proposal EVER received. My boss approves the usage of Go. 19:07 -!- tav [~tav@2001:0:53aa:64c:0:3ffb:abf2:d6bb] has quit [Remote host closed the connection] 19:08 < plexdev> http://is.gd/dppn2 by [Charles L. Dorian] in go/src/pkg/math/ -- math: amd64 version of log 19:14 -!- snearch [~snearch@f053006172.adsl.alicedsl.de] has quit [Quit: Verlassend] 19:21 -!- hcatlin [~hcatlin@pdpc/supporter/professional/hcatlin] has quit [Quit: hcatlin] 19:25 -!- path[l] [UPP@120.138.102.50] has joined #go-nuts 19:26 -!- path[l] [UPP@120.138.102.50] has quit [Client Quit] 19:28 -!- plainhao [~plainhao@mail.xbiotica.com] has quit [Quit: plainhao] 19:32 -!- iant1 [~iant@81-233-149-58-no82.tbcn.telia.com] has quit [Ping timeout: 258 seconds] 19:36 -!- artefon [~thiagon@150.164.2.20] has quit [Ping timeout: 252 seconds] 19:37 -!- artefon [~thiagon@150.164.2.20] has joined #go-nuts 19:37 -!- rhelmer [~rhelmer@adsl-69-107-64-67.dsl.pltn13.pacbell.net] has joined #go-nuts 19:40 -!- Xurix [~Luixsia@AToulouse-254-1-67-220.w81-49.abo.wanadoo.fr] has joined #go-nuts 19:41 -!- rhelmer [~rhelmer@adsl-69-107-64-67.dsl.pltn13.pacbell.net] has quit [Client Quit] 19:42 -!- rhelmer [~rhelmer@adsl-69-107-64-67.dsl.pltn13.pacbell.net] has joined #go-nuts 19:42 -!- iant [~iant@81-233-149-58-no82.tbcn.telia.com] has joined #go-nuts 19:42 -!- mode/#go-nuts [+v iant] by ChanServ 19:44 -!- belkiss [~belkiss@drn13-1-78-235-168-105.fbx.proxad.net] has quit [Quit: KVIrc Equilibrium 4.1.0, revision: 4632, sources date: 20100519, built on: 2010-07-09 07:13:47 UTC http://www.kvirc.net/] 19:46 -!- qIIp [~qIIp@134.29.57.71] has quit [Quit: leaving] 19:46 -!- iant1 [~iant@81-233-149-58-no82.tbcn.telia.com] has joined #go-nuts 19:48 -!- iant [~iant@81-233-149-58-no82.tbcn.telia.com] has quit [Ping timeout: 260 seconds] 19:48 -!- mode/#go-nuts [+v iant1] by ChanServ 19:49 -!- mbarkhau [~koloss@dslb-088-068-251-010.pools.arcor-ip.net] has joined #go-nuts 19:50 -!- mbarkhau [~koloss@dslb-088-068-251-010.pools.arcor-ip.net] has quit [Client Quit] 19:52 -!- rhelmer [~rhelmer@adsl-69-107-64-67.dsl.pltn13.pacbell.net] has quit [Ping timeout: 240 seconds] 19:55 -!- sauerbraten [~sauerbrat@p508CF30B.dip.t-dialin.net] has quit [Ping timeout: 265 seconds] 19:56 -!- artefon [~thiagon@150.164.2.20] has quit [Quit: Leaving] 19:57 -!- photron [~photron@port-92-201-115-153.dynamic.qsc.de] has joined #go-nuts 20:04 -!- anticw [~anticw@c-67-169-41-113.hsd1.ca.comcast.net] has quit [Quit: Lost terminal] 20:04 -!- anticw [~anticw@c-67-169-41-113.hsd1.ca.comcast.net] has joined #go-nuts 20:11 -!- RobertLJ [~RobertLJ@c-68-44-163-191.hsd1.nj.comcast.net] has left #go-nuts [] 20:21 -!- iant1 [~iant@81-233-149-58-no82.tbcn.telia.com] has joined #go-nuts 20:21 -!- iant [~iant@81-233-149-58-no82.tbcn.telia.com] has quit [Read error: Connection reset by peer] 20:26 < plexdev> http://is.gd/dpu2b by [Vinu Rajashekhar] in go/test/fixedbugs/ -- test/fixedbugs/bug243.go: instead of closing stdout, 20:33 -!- slashus2 [~slashus2@m0e0e36d0.tmodns.net] has joined #go-nuts 20:37 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-151-49.clienti.tiscali.it] has left #go-nuts [] 20:50 -!- iant1 [~iant@81-233-149-58-no82.tbcn.telia.com] has quit [Quit: Leaving.] 20:58 -!- tvw [~tv@e176000205.adsl.alicedsl.de] has quit [Remote host closed the connection] 20:59 < plexdev> http://is.gd/dpvTb by [Robert Griesemer] in 2 subdirs of go/src/pkg/ -- container/vector: remove Iter() from interface 21:02 -!- ender2070 [~ender2070@bas22-toronto12-2925103372.dsl.bell.ca] has quit [Ping timeout: 265 seconds] 21:04 -!- bmizerany [~bmizerany@dsl081-064-072.sfo1.dsl.speakeasy.net] has joined #go-nuts 21:10 < anykey> go sure is undergoing a lot of changes in little time. 21:10 -!- ender2070 [~ender2070@bas22-toronto12-2925103372.dsl.bell.ca] has joined #go-nuts 21:11 < anykey> the version within my distribution has a "fmt" package that doesn't know Scanf. 21:15 -!- rlab [~Miranda@98-170-113-92.pool.ukrtel.net] has quit [Read error: Connection reset by peer] 21:19 -!- General1337 [~support@71-84-50-230.dhcp.mtpk.ca.charter.com] has joined #go-nuts 21:19 -!- deso [~deso@x0561a.wh30.tu-dresden.de] has quit [Remote host closed the connection] 21:22 -!- General13372 [~support@71-84-50-230.dhcp.mtpk.ca.charter.com] has quit [Ping timeout: 265 seconds] 21:24 -!- ShadowIce` [pyoro@unaffiliated/shadowice-x841044] has quit [Quit: Verlassend] 21:31 -!- slashus2 [~slashus2@m0e0e36d0.tmodns.net] has quit [Ping timeout: 240 seconds] 21:35 -!- Shyde [~Shyde^^@HSI-KBW-078-043-070-132.hsi4.kabel-badenwuerttemberg.de] has quit [Quit: Shyde] 21:36 -!- scm [justme@d018229.adsl.hansenet.de] has quit [Remote host closed the connection] 21:42 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.2] 21:43 -!- Ginto8 [~ginto8@pool-72-82-235-34.cmdnnj.fios.verizon.net] has quit [Ping timeout: 265 seconds] 21:49 -!- awidegreen [~quassel@62.176.237.78] has quit [Read error: Connection reset by peer] 21:59 -!- ender2070 [~ender2070@bas22-toronto12-2925103372.dsl.bell.ca] has quit [Remote host closed the connection] 22:01 < plexdev> http://is.gd/dpzs0 by [Robert Griesemer] in go/test/fixedbugs/ -- fix build 22:07 -!- ender2070 [~ender2070@bas22-toronto12-2925103372.dsl.bell.ca] has joined #go-nuts 22:14 -!- Xurix [~Luixsia@AToulouse-254-1-67-220.w81-49.abo.wanadoo.fr] has quit [Quit: Leaving] 22:16 -!- werdan7 [~w7@freenode/staff/wikimedia.werdan7] has quit [Ping timeout: 612 seconds] 22:25 -!- bmizeran_ [~bmizerany@dsl081-064-072.sfo1.dsl.speakeasy.net] has joined #go-nuts 22:26 -!- bmizerany [~bmizerany@dsl081-064-072.sfo1.dsl.speakeasy.net] has quit [Ping timeout: 245 seconds] 22:28 -!- werdan7 [~w7@freenode/staff/wikimedia.werdan7] has joined #go-nuts 22:28 -!- scm [~svencm@78.31.65.29] has joined #go-nuts 22:33 -!- scm [~svencm@78.31.65.29] has quit [Ping timeout: 240 seconds] 22:33 -!- scm [~svencm@78.31.65.29] has joined #go-nuts 22:34 -!- rv2733 [~ron@c-98-242-168-49.hsd1.fl.comcast.net] has joined #go-nuts 22:38 -!- scm [~svencm@78.31.65.29] has quit [Client Quit] 22:44 -!- Fish [~Fish@9fans.fr] has quit [Remote host closed the connection] 22:45 -!- scm [justme@d018229.adsl.hansenet.de] has joined #go-nuts 22:55 -!- Venom_X [~pjacobs@71.21.124.111] has quit [Quit: Venom_X] 22:56 -!- anykey [~anykey@unaffiliated/anykey] has quit [Quit: leaving] 22:58 -!- sakirious [~saki@c-98-223-212-96.hsd1.il.comcast.net] has quit [Quit: leaving] 23:00 -!- rv2733 [~ron@c-98-242-168-49.hsd1.fl.comcast.net] has quit [Quit: Leaving] 23:04 -!- sioraiocht [~tomh@unaffiliated/sioraiocht] has quit [Remote host closed the connection] 23:05 -!- [Pete_27] [~noname@115-64-1-61.static.tpgi.com.au] has joined #go-nuts 23:19 < plexdev> http://is.gd/dpDxl by [Robert Griesemer] in go/src/pkg/big/ -- big: added a few missing functions: 23:19 -!- boscop [~boscop@f055064232.adsl.alicedsl.de] has joined #go-nuts 23:31 -!- crashR [~crasher@codextreme.pck.nerim.net] has quit [Quit: (◣_◢) BigBrowser is watching ⓎⓄⓊ] 23:36 < plexdev> http://is.gd/dpEny by [Andrew Gerrand] in go/src/pkg/http/ -- http: fix ParseURL to handle //relative_path properly 23:36 < plexdev> http://is.gd/dpEnA by [Rob Pike] in go/src/cmd/gc/ -- add missing argument to usage message. 23:36 < plexdev> http://is.gd/dpEnI by [Peter Mundy] in 4 subdirs of go/src/pkg/ -- crypto/rand for Windows 23:50 -!- Pete_27 [~noname@115-64-1-61.static.tpgi.com.au] has joined #go-nuts 23:50 -!- [Pete_27] [~noname@115-64-1-61.static.tpgi.com.au] has quit [Read error: Connection reset by peer] 23:51 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has joined #go-nuts 23:53 < plexdev> http://is.gd/dpFam by [Russ Cox] in go/src/pkg/encoding/pem/ -- pem: print \n after 1 header line too 23:53 -!- scm [justme@d018229.adsl.hansenet.de] has quit [Remote host closed the connection] 23:57 -!- scm [justme@d018229.adsl.hansenet.de] has joined #go-nuts --- Log closed Tue Jul 13 00:00:12 2010