--- Log opened Mon Apr 11 00:00:50 2011 00:02 -!- nettok [~quassel@200.119.177.7] has joined #go-nuts 00:03 -!- ampleyfly [ampleyfly@gateway/shell/blinkenshell.org/x-tobhfuxufhxlfaxc] has joined #go-nuts 00:07 < Glasswalker> ok 00:08 < Glasswalker> have all the errors fixed with the exception of the uint8 thing 00:08 < Glasswalker> Getting: cannot use command (type uint8) as type DAMBSPacketCommand in assignment 00:10 < jessta_> Glasswalker: what is DAMBSPacketCommand? 00:10 < kevlar> !golang assignability 00:10 < GoBIR> kevlar: Spec Section Assignability - http://golang.org/doc/go_spec.html#Assignability 00:11 < Glasswalker> An alias of uint8 00:11 -!- mykl [~chatzilla@cpe-76-184-163-169.tx.res.rr.com] has quit [Read error: Operation timed out] 00:11 < kevlar> TL;DR : you can use a literal as a PacketCommand but not a uint8 without an explicit cast. 00:11 -!- mykl [~chatzilla@cpe-76-184-163-169.tx.res.rr.com] has joined #go-nuts 00:11 < Glasswalker> http://pastebin.com/3vgLNu5z 00:12 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 00:12 < kevlar> That's part of the motivation behind type aliases; you can't pass something as the type if it's another type, even a compatiblle one 00:13 < kevlar> so you know that when someone passes you a PacketCommand, they weren't accidentally sending you an ErrorCode, both of which could concievably be uint8s. 00:13 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 00:14 < raylu> sigh. now i'm getting different behavior for "make --debug" than "make" 00:15 < kevlar> raylu: have you tried make -B and/or removing all of the @-lines from the makefile? 00:16 < raylu> well, i'm trying to get it to build incrementally so -B won't help me 00:16 < kevlar> define "incrementally..." 00:17 < Glasswalker> kevlar, ok that makes sense... So that said, how do I convert between byte, and PacketCommand. (or uint8 and PacketCommand) 00:17 < Glasswalker> essentially I have a byte stream coming in over TCP and I need to decode a byte into a PacketCommand... 00:17 < kevlar> !golang Conversions 00:17 < GoBIR> kevlar: Spec Section Conversions - http://golang.org/doc/go_spec.html#Conversions 00:18 < Glasswalker> oh 00:18 < raylu> i want it to build my main program and the client package when change client/*.go 00:18 < Glasswalker> I can use the conversion syntax on my own defined types? 00:18 < kevlar> Glasswalker: Of course. 00:18 -!- niemeyer [~niemeyer@189.27.129.27.dynamic.adsl.gvt.net.br] has quit [Ping timeout: 240 seconds] 00:18 < Glasswalker> that's what I was missing 00:18 < kevlar> Your named types are just as special as go builtin types 00:18 < Glasswalker> for some reason I assumed that the conversions were functionally specified on those types somehow 00:19 < kevlar> the only "first-class citizens" are literals (9, 1.3, "foo") 00:19 < Glasswalker> meaning without defining my own conversion it wouldn't work 00:19 < raylu> hm. it works when i run it twice :P 00:19 < kevlar> raylu: so, when you're building a library and a binary with Make you can get some interesting things going on 00:20 < kevlar> the big thing you have to do is specify additional dependencies for the binary 00:20 < kevlar> let me grab you an example... 00:20 < raylu> i'm specifying them for _go_.$O, which should be the same 00:21 < kevlar> I entirely use the built-in makefile system 00:21 -!- dreadlorde [~dreadlord@c-68-43-250-33.hsd1.mi.comcast.net] has joined #go-nuts 00:21 < kevlar> I made an autobuilder, but ditched it because I didn't want to make other people use it to use my packages 00:22 < kevlar> and using the standard Makefile syntax is, at least for now, the best way to be consistent with everyone else. 00:22 < raylu> i'm using it, but wondering how to use the standard makefiles to handle my dependencies too 00:22 < kevlar> So, for example, in my src/cmd/ircd/Makefile that depends on my src/pkg/ircd/* package, I use the following: 00:22 < kevlar> PREREQ=$(PKGDIR)/kevlar/ircd.a 00:22 < raylu> there's a prereq =\ what. 00:23 < kevlar> which doesn't cause it to build the library if it's out of date, but will cause it to rebuild the binary when the library has changed 00:24 < kevlar> my top-level Makefile handles calling the child makefiles in order. 00:24 < kevlar> without that prereq, when I update the library, the binary wouldn't ever be relinked unless I changed one of its source files too. 00:24 < raylu> how do you handle calling the child makefiles in order? 00:25 < kevlar> http://pastebin.com/epbUVeae 00:27 < kevlar> src/pkg/ircd/Makefile.sub is similar to that makefile, except it builds all of the subpackages of ircd 00:27 < raylu> where is PREREQ set? 00:27 < kevlar> in src/cmd/ircd/Makefile 00:27 < kevlar> each Makefile only builds one target OR calls other makefiles 00:27 < kevlar> you can't mix them 00:27 < kevlar> (cleanly) 00:29 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Operation timed out] 00:29 < kevlar> if you want to peruse a source tree that has this sort of makefile system, look at jaid: https://bitbucket.org/kylelemons/jaid/src/555a4d7472dc/Makefile 00:30 < kevlar> in the one I pastebin'd I collapsed make, nuke, clean, and install into the same rule to simplify things 00:30 < kevlar> either way works though. 00:30 -!- exch [~exch@31-151-123-254.dynamic.upc.nl] has quit [Ping timeout: 276 seconds] 00:31 -!- vinisterx [~ryan@74-129-201-27.dhcp.insightbb.com] has quit [Read error: Operation timed out] 00:31 -!- exch [~exch@31-151-123-254.dynamic.upc.nl] has joined #go-nuts 00:33 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 00:38 < plexdev> http://is.gd/b97tMb by [Dave Cheney] in go/src/pkg/net/ -- net: disable multicast tests by default. 00:43 -!- napsy [~luka@88.200.96.18] has quit [Quit: Lost terminal] 00:44 < raylu> kevlar: thanks for the help. here's what i ended up with: https://github.com/raylu/rbot/blob/master/Makefile 00:45 < raylu> the @true fixed it 00:45 -!- vinisterx [~ryan@74-129-201-27.dhcp.insightbb.com] has joined #go-nuts 00:50 -!- Wiz126 [Wiz@h187.120.232.68.ip.windstream.net] has quit [Ping timeout: 252 seconds] 00:52 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 00:52 -!- Viriix [~joseph@c-67-169-172-251.hsd1.ca.comcast.net] has quit [Quit: This computer has gone to sleep] 00:53 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 00:53 -!- Wiz126 [Wiz@h187.120.232.68.ip.windstream.net] has joined #go-nuts 00:54 < krutcha1> I must be bored, do I need a go torrent client? no. Lol 00:57 -!- tensorpudding [~user@99.32.63.28] has joined #go-nuts 01:03 -!- saturnfive [~saturnfiv@210.74.155.131] has joined #go-nuts 01:12 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 01:13 -!- Emmental [~Emmental@c-69-136-240-113.hsd1.nj.comcast.net] has joined #go-nuts 01:13 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 01:22 -!- bugQ [~bug@c-71-195-207-98.hsd1.ut.comcast.net] has joined #go-nuts 01:24 -!- ampleyfly [ampleyfly@gateway/shell/blinkenshell.org/x-tobhfuxufhxlfaxc] has quit [Ping timeout: 248 seconds] 01:24 -!- ampleyfly [ampleyfly@gateway/shell/blinkenshell.org/x-tmjimvojahgqkyii] has joined #go-nuts 01:30 -!- rurban [~demo@178-191-154-52.adsl.highway.telekom.at] has quit [Ping timeout: 264 seconds] 01:32 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 01:32 -!- vinisterx [~ryan@74-129-201-27.dhcp.insightbb.com] has quit [Ping timeout: 248 seconds] 01:33 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 01:34 -!- bugQ [~bug@c-71-195-207-98.hsd1.ut.comcast.net] has quit [Ping timeout: 276 seconds] 01:34 -!- krutcha1 [~krutcha@S010600045a27676a.vs.shawcable.net] has quit [Quit: Leaving] 01:35 -!- simply_b__ [~simply_b@66-189-220-223.dhcp.knwc.wa.charter.com] has quit [Read error: Connection reset by peer] 01:36 -!- simply_b__ [~simply_b@66-189-220-223.dhcp.knwc.wa.charter.com] has joined #go-nuts 01:37 -!- Viriix [~joseph@c-67-169-172-251.hsd1.ca.comcast.net] has joined #go-nuts 01:39 -!- nettok [~quassel@200.119.177.7] has quit [Ping timeout: 276 seconds] 01:42 -!- niemeyer [~niemeyer@189-10-155-52.pltce701.dsl.brasiltelecom.net.br] has joined #go-nuts 01:45 -!- vinisterx [~ryan@74-129-201-27.dhcp.insightbb.com] has joined #go-nuts 01:51 -!- kuroneko_ [~chris@yayoi.xware.cx] has joined #go-nuts 01:52 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 01:52 < kuroneko> has anything much changed with cgo and strings? 01:52 < kuroneko> since.. erm. late 2009? 01:53 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 01:55 -!- fhs [~fhs@pool-74-101-66-112.nycmny.east.verizon.net] has joined #go-nuts 01:57 < kevlar> kuroneko: uh, sure... anything in particular you are curious about? 01:57 -!- Viriix [~joseph@c-67-169-172-251.hsd1.ca.comcast.net] has left #go-nuts ["Leaving"] 01:57 < kuroneko> I remember it being better documented for a start :) 01:58 < kuroneko> I assume we still need to use the C.CString casting? 01:58 < Namegduf> Hmm. SMTP package is nice, but how can I get the mail server to send to and follow proper failover rules for multiple mail servers? 01:58 < kuroneko> and varargs still don't work? 01:58 < Namegduf> It isn't a cast, it's a conversion. 01:58 < Namegduf> Go strings aren't null-terminated, no, and that's unlikely to change, I think. 02:04 -!- itrekkie [~itrekkie@ip72-200-105-157.tc.ph.cox.net] has joined #go-nuts 02:07 * Namegduf found net.LookupMX, which does the job. 02:12 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 02:13 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 02:22 -!- benjack [~benjack@bb119-74-104-165.singnet.com.sg] has joined #go-nuts 02:27 -!- dreadlorde [~dreadlord@c-68-43-250-33.hsd1.mi.comcast.net] has quit [Ping timeout: 260 seconds] 02:27 -!- BSP [~androirc@58.145.148.59] has joined #go-nuts 02:29 -!- JusticeFries [~JusticeFr@c-24-9-171-36.hsd1.co.comcast.net] has joined #go-nuts 02:31 -!- Emmental [~Emmental@c-69-136-240-113.hsd1.nj.comcast.net] has quit [Quit: ChatZilla 0.9.86.1 [Firefox 3.6.16/20110323143040]] 02:37 -!- nettok [~quassel@200.119.177.7] has joined #go-nuts 02:47 -!- nettok [~quassel@200.119.177.7] has quit [Ping timeout: 258 seconds] 02:49 -!- Viriix [~joseph@c-67-169-172-251.hsd1.ca.comcast.net] has joined #go-nuts 03:11 < uriel> kuroneko: a lot has changed with cgo, not sure if anything specifically with strings 03:12 < uriel> russ pretty much rewrote the whole thing a while ago 03:21 -!- tensai_cirno [~cirno@77.232.15.216] has quit [Ping timeout: 246 seconds] 03:26 -!- nettok [~quassel@200.119.177.7] has joined #go-nuts 03:29 -!- JusticeFries [~JusticeFr@c-24-9-171-36.hsd1.co.comcast.net] has quit [Quit: JusticeFries] 03:30 -!- ampleyfly [ampleyfly@gateway/shell/blinkenshell.org/x-tmjimvojahgqkyii] has quit [Ping timeout: 260 seconds] 03:30 -!- ampleyfly [ampleyfly@gateway/shell/blinkenshell.org/x-kiswfgnkqsvycysi] has joined #go-nuts 03:35 -!- boscop [~boscop@f055160016.adsl.alicedsl.de] has quit [Read error: Connection reset by peer] 03:35 -!- boscop [~boscop@f055160016.adsl.alicedsl.de] has joined #go-nuts 03:36 -!- boscop [~boscop@f055160016.adsl.alicedsl.de] has quit [Read error: Connection reset by peer] 03:37 -!- boscop [~boscop@f055160016.adsl.alicedsl.de] has joined #go-nuts 03:50 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 03:51 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 03:53 -!- boscop_ [~boscop@f055160016.adsl.alicedsl.de] has joined #go-nuts 03:54 -!- boscop [~boscop@f055160016.adsl.alicedsl.de] has quit [Ping timeout: 246 seconds] 03:58 -!- boscop_ [~boscop@f055160016.adsl.alicedsl.de] has quit [Ping timeout: 240 seconds] 03:59 -!- boscop [~boscop@f055160016.adsl.alicedsl.de] has joined #go-nuts 04:02 -!- boscop [~boscop@f055160016.adsl.alicedsl.de] has quit [Read error: Connection reset by peer] 04:02 -!- randfur [~androirc@58.145.148.59] has quit [Ping timeout: 260 seconds] 04:03 -!- boscop [~boscop@f055160016.adsl.alicedsl.de] has joined #go-nuts 04:06 -!- boscop_ [~boscop@f055160016.adsl.alicedsl.de] has joined #go-nuts 04:06 -!- boscop [~boscop@f055160016.adsl.alicedsl.de] has quit [Read error: Connection reset by peer] 04:10 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 04:10 -!- crodjer [~rohanjain@203.110.240.205] has joined #go-nuts 04:11 -!- boscop [~boscop@f055160016.adsl.alicedsl.de] has joined #go-nuts 04:11 -!- boscop_ [~boscop@f055160016.adsl.alicedsl.de] has quit [Ping timeout: 246 seconds] 04:12 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 04:13 -!- tensai_cirno [~cirno@194.154.66.189] has joined #go-nuts 04:14 -!- zozoR [~Morten@5634631b.rev.stofanet.dk] has joined #go-nuts 04:15 -!- boscop [~boscop@f055160016.adsl.alicedsl.de] has quit [Ping timeout: 246 seconds] 04:24 -!- rejb [~rejb@unaffiliated/rejb] has quit [Ping timeout: 246 seconds] 04:24 -!- Jantire [~Jantire@c-71-202-156-84.hsd1.ca.comcast.net] has quit [Quit: Leaving] 04:28 < kuroneko> uriel: it feels liek stuff has changed since I last tried to write go seriously 04:28 < kuroneko> I'm sure I'm just imagining it. :) 04:30 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 04:31 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 04:37 -!- nettok [~quassel@200.119.177.7] has quit [Ping timeout: 260 seconds] 04:41 -!- nettok [~quassel@200.119.177.7] has joined #go-nuts 04:41 -!- tensai_cirno [~cirno@194.154.66.189] has quit [Read error: Connection reset by peer] 04:42 -!- tensai_cirno [~cirno@194.154.66.189] has joined #go-nuts 04:42 -!- meanburrito920 [~john@unaffiliated/meanburrito920] has quit [Quit: Lost terminal] 04:49 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 04:50 -!- cafesofie [~cafesofie@ool-4a5a6ee5.dyn.optonline.net] has quit [Remote host closed the connection] 04:51 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 05:00 -!- tensai_cirno [~cirno@194.154.66.189] has quit [Read error: Connection reset by peer] 05:03 -!- dfr|mac [~dfr|work@c-71-57-46-63.hsd1.il.comcast.net] has quit [Remote host closed the connection] 05:04 -!- itrekkie [~itrekkie@ip72-200-105-157.tc.ph.cox.net] has quit [Quit: itrekkie] 05:07 -!- niemeyer [~niemeyer@189-10-155-52.pltce701.dsl.brasiltelecom.net.br] has quit [Ping timeout: 240 seconds] 05:08 -!- benjack [~benjack@bb119-74-104-165.singnet.com.sg] has quit [Quit: Leaving.] 05:09 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 05:11 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 05:12 -!- dfr|mac [~dfr|work@c-71-57-46-63.hsd1.il.comcast.net] has joined #go-nuts 05:16 -!- fabled [~fabled@83.145.235.194] has joined #go-nuts 05:16 -!- zozoR [~Morten@5634631b.rev.stofanet.dk] has quit [Remote host closed the connection] 05:16 -!- dfr|mac [~dfr|work@c-71-57-46-63.hsd1.il.comcast.net] has quit [Remote host closed the connection] 05:17 -!- tensai_cirno [~cirno@194.154.66.189] has joined #go-nuts 05:21 -!- nettok [~quassel@200.119.177.7] has quit [Ping timeout: 246 seconds] 05:29 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 05:31 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 05:40 -!- tensai_cirno [~cirno@194.154.66.189] has quit [Ping timeout: 246 seconds] 05:48 -!- krolaw [~krolaw@203.100.208.229] has joined #go-nuts 05:49 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 05:51 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 05:54 -!- tensorpudding [~user@99.32.63.28] has quit [Read error: Connection reset by peer] 06:02 -!- mykl [~chatzilla@cpe-76-184-163-169.tx.res.rr.com] has quit [Ping timeout: 248 seconds] 06:07 -!- tvw [~tv@e176001181.adsl.alicedsl.de] has joined #go-nuts 06:09 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 06:11 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 06:12 -!- _xizor [~Xizor@aqu33-7-78-232-32-5.fbx.proxad.net] has joined #go-nuts 06:28 -!- boscop [~boscop@f055160016.adsl.alicedsl.de] has joined #go-nuts 06:29 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 06:31 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 06:31 -!- bortzmeyer [~bortzmeye@batilda.nic.fr] has joined #go-nuts 06:32 -!- tensai_cirno [~cirno@77.232.15.216] has joined #go-nuts 06:32 -!- boscop [~boscop@f055160016.adsl.alicedsl.de] has quit [Read error: Connection reset by peer] 06:34 -!- boscop [~boscop@f055160016.adsl.alicedsl.de] has joined #go-nuts 06:36 -!- krolaw [~krolaw@203.100.208.229] has quit [Quit: krolaw] 06:37 -!- boscop_ [~boscop@f055160016.adsl.alicedsl.de] has joined #go-nuts 06:38 -!- boscop [~boscop@f055160016.adsl.alicedsl.de] has quit [Read error: Connection reset by peer] 06:41 -!- boscop_ [~boscop@f055160016.adsl.alicedsl.de] has quit [Ping timeout: 246 seconds] 06:47 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts 06:49 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 06:51 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 06:52 -!- firwen [~firwen@adevlaptop.cern.ch] has joined #go-nuts 06:58 -!- piranha [~piranha@D57D1AB3.static.ziggozakelijk.nl] has joined #go-nuts 06:59 -!- espeed [~espeed@63.246.231.57] has quit [Ping timeout: 246 seconds] 07:02 -!- benjack [~benjack@bb119-74-104-165.singnet.com.sg] has joined #go-nuts 07:03 -!- kaichenxyz [~kaichenxy@115.199.111.22] has joined #go-nuts 07:03 -!- kaichenxyz [~kaichenxy@115.199.111.22] has quit [Remote host closed the connection] 07:03 -!- kaichenxyz [~kaichenxy@li261-87.members.linode.com] has joined #go-nuts 07:06 -!- skejoe [~skejoe@188.114.142.217] has joined #go-nuts 07:07 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-151-101.clienti.tiscali.it] has joined #go-nuts 07:09 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 07:11 -!- espeed [~espeed@63.246.231.57] has joined #go-nuts 07:11 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 07:13 -!- benjack [~benjack@bb119-74-104-165.singnet.com.sg] has left #go-nuts [] 07:17 -!- raylu [raylu@c-24-131-193-106.hsd1.pa.comcast.net] has left #go-nuts [] 07:24 -!- |Craig| [~|Craig|@panda3d/entropy] has left #go-nuts [] 07:29 -!- kawon [~fnowak@d5369cab.access.ecotel.net] has joined #go-nuts 07:29 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 07:31 -!- kawon [~fnowak@d5369cab.access.ecotel.net] has left #go-nuts [] 07:31 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 07:40 -!- crodjer [~rohanjain@203.110.240.205] has quit [Quit: Leaving] 07:43 < nsf> haha, there was a discussion some time ago about &&x 07:44 < nsf> I've just realized that from the lexer point of view 07:44 < nsf> '&&' and '&' are different tokens 07:44 < nsf> so it won't work simply for syntactic reasons 07:44 < nsf> :) 07:46 < kuroneko> gah. dumb question time from me. Is there a way to pass []string into ...string ? 07:48 -!- espeed [~espeed@63.246.231.57] has quit [Ping timeout: 246 seconds] 07:49 < nsf> kuroneko: yes 07:49 < nsf> func Foo(args ...string) 07:49 < nsf> var x []string 07:49 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 07:49 < nsf> Foo(x...) 07:49 < nsf> something like that 07:49 < kuroneko> yeah, it's the postfixed ... I kinda missed 07:51 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 07:53 < str1ngs> kuroneko: figured it ou? 07:54 < str1ngs> out* 07:55 -!- virtualsue [~chatzilla@nat/cisco/x-xokiuuwtloguykqs] has joined #go-nuts 07:57 < kuroneko> str1ngs: yup. 08:05 -!- KirkMcDonald [~Kirk@python/site-packages/KirkMcDonald] has quit [Ping timeout: 264 seconds] 08:07 -!- KirkMcDonald [~Kirk@python/site-packages/KirkMcDonald] has joined #go-nuts 08:09 < xyproto> nsf: I won't join in on the && debate again, but nice to know :D 08:09 < nsf> :D 08:09 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 08:11 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 08:23 -!- Project-2501 [~Marvin@82.84.79.76] has joined #go-nuts 08:27 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-151-101.clienti.tiscali.it] has quit [Ping timeout: 276 seconds] 08:29 -!- tvw [~tv@e176001181.adsl.alicedsl.de] has quit [Remote host closed the connection] 08:29 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 08:29 -!- virtualsue [~chatzilla@nat/cisco/x-xokiuuwtloguykqs] has quit [Ping timeout: 276 seconds] 08:30 -!- aho [~nya@fuld-590c6951.pool.mediaWays.net] has quit [Quit: EXEC_over.METHOD_SUBLIMATION] 08:31 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 08:41 -!- boscop [~boscop@f055160016.adsl.alicedsl.de] has joined #go-nuts 08:41 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-157-96.clienti.tiscali.it] has joined #go-nuts 08:44 -!- Project-2501 [~Marvin@82.84.79.76] has quit [Ping timeout: 248 seconds] 08:44 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-165-242.clienti.tiscali.it] has joined #go-nuts 08:46 -!- hopso [576c168c@gateway/web/freenode/ip.87.108.22.140] has joined #go-nuts 08:47 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-157-96.clienti.tiscali.it] has quit [Ping timeout: 252 seconds] 08:49 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 08:50 -!- boscop [~boscop@f055160016.adsl.alicedsl.de] has quit [Ping timeout: 248 seconds] 08:51 -!- boscop [~boscop@f055160016.adsl.alicedsl.de] has joined #go-nuts 08:51 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 08:51 -!- PortatoreSanoDiI [~Marvin@82.84.65.36] has joined #go-nuts 08:52 -!- boscop [~boscop@f055160016.adsl.alicedsl.de] has quit [Read error: Connection reset by peer] 08:55 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-165-242.clienti.tiscali.it] has quit [Ping timeout: 260 seconds] 08:56 -!- KirkMcDonald [~Kirk@python/site-packages/KirkMcDonald] has quit [Ping timeout: 246 seconds] 08:58 -!- KirkMcDonald [~Kirk@python/site-packages/KirkMcDonald] has joined #go-nuts 08:59 -!- sanjoyd [~sanjoyd@unaffiliated/sanjoyd] has joined #go-nuts 09:00 < sanjoyd> Hi! I'm trying to look up how Go implements goroutines (i.e. how they are mapped to OS threads, etc.). Can anyone point out the files / directories I should focus on? 09:00 < sanjoyd> (In the Go source). 09:01 < taruti> sanjoyd: src/pkg/runtime 09:01 < sanjoyd> proc.c, it seems. 09:01 < nsf> sanjoyd: yeah 09:01 < sanjoyd> taruti: yes, got it. Thanks! 09:01 < sanjoyd> nsf: thanks! 09:09 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 09:09 -!- tensai_cirno [~cirno@77.232.15.216] has quit [Quit: Leaving] 09:11 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 09:17 -!- prip [~foo@host194-122-dynamic.35-79-r.retail.telecomitalia.it] has quit [Read error: Connection reset by peer] 09:18 -!- virtualsue [~chatzilla@nat/cisco/x-arrgrgutriitzmxl] has joined #go-nuts 09:21 -!- krolaw [~krolaw@203.100.208.229] has joined #go-nuts 09:23 -!- zozoR [~Morten@5634631b.rev.stofanet.dk] has joined #go-nuts 09:25 -!- crodjer [~rohanjain@203.110.240.205] has joined #go-nuts 09:29 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 09:31 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 09:32 -!- prip [~foo@host188-121-dynamic.42-79-r.retail.telecomitalia.it] has joined #go-nuts 09:38 < nsf> [nsf @ crawl]$ echo 'func Test() { a, b := 1, 2; c, b := 3, 4; }' | ./crawl -no-ast 09:38 < nsf> stdin:1:32: error: 'b' redeclared in this block 09:38 < nsf> func Test() { a, b := 1, 2; c, b := 3, 4; } 09:38 < nsf> ^ 09:38 < nsf> :P 09:38 < nsf> [nsf @ crawl]$ echo 'func Test() { a, b := 1, 2; c, (b) := 3, 4; }' | ./crawl -no-ast 09:38 < nsf> second one is legal 09:38 < nsf> that's how ':=' works in crawl 09:39 < nsf> (a), (b) := 3, 4; // that will be legal as well :) 09:39 < nsf> well.. it is 09:39 < nsf> hehe 09:41 < nsf> the only difference between ':=' and '=' is that ':=' when sees an identifier on the LHS, introduces a new declaration 09:41 < nsf> I think it's a much better way to do so than in Go 09:48 < jessta_> nsf: but that's not really the problem people come up against 09:48 < nsf> it is 09:49 < nsf> there were two problems 09:49 < nsf> one that named return values are not declared in function scope and can be therefore redeclared 09:49 < nsf> that's a problem of named return values, not a ':=' 09:49 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 09:50 < nsf> the one with ':=' was that you can't control reuse vs. redeclaration in ':=' statements 09:50 < nsf> now you can 09:50 < Namegduf> Hmm 09:50 < Namegduf> Ban redeclaration entirely 09:50 < nsf> I did 09:51 < Namegduf> And permit not using an identifier 09:51 < Namegduf> And that could work, yeah. 09:51 < nsf> wait 09:51 < Namegduf> Go doesn't let you use anything not an identifier. 09:51 < nsf> yeah 09:51 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 09:51 < nsf> well, I've described my approach in that issue comment 09:51 < nsf> 1. allow any addressable expression on the LHS 09:52 -!- tvw [~tv@212.79.9.150] has joined #go-nuts 09:52 < nsf> 2. disallow implicit reuse of variables 09:52 < Namegduf> Post to the mailing list? 09:52 < Namegduf> I think I like this idea 09:52 < nsf> uhm.. 09:52 < nsf> I don't want to go to the ML :) 09:53 < nsf> http://code.google.com/p/go/issues/detail?id=377#c24 09:53 < nsf> My "proposal" is here in comment 24 09:53 < nsf> if you like it, you can post it on the ML :) 09:53 < nsf> I don't think it has any dark corners, it's pretty simple anyway 09:55 < Namegduf> Writing x, (err) := is kinda weird. 09:55 < Namegduf> That's about it. 09:56 < Namegduf> For the added explictness, I feel it is easily worth it 09:56 < nsf> "Yes, it's a bit longer. But keep in mind that the alternative is typing 'var a Type', 'var b Type'. Using parens is perfectly fine to me for such a complex case." 09:56 < nsf> that's the alternative 09:56 -!- zozoR [~Morten@5634631b.rev.stofanet.dk] has quit [Ping timeout: 246 seconds] 09:57 -!- zozoR [~Morten@5634631b.rev.stofanet.dk] has joined #go-nuts 09:57 < nsf> typing parens is easier than typing the whole 'var' declaraion 09:57 < nsf> for both x and err 09:58 < nsf> anyway, I hope we'll see how it works in practice, I will start code generation for crawl soon 09:58 < nsf> of course bits are missing, but something will work ) 09:58 -!- foocraft [~dsc@89.211.233.19] has joined #go-nuts 10:00 -!- wrtp [~rog@92.17.67.64] has joined #go-nuts 10:03 -!- shvntr [~shvntr@222.50.224.101] has joined #go-nuts 10:08 -!- shvntr [~shvntr@222.50.224.101] has quit [Ping timeout: 260 seconds] 10:09 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 10:10 -!- shvntr [~shvntr@116.26.143.3] has joined #go-nuts 10:11 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 10:17 -!- katakuna [pie@kjal.demon.co.uk] has joined #go-nuts 10:19 -!- krolaw [~krolaw@203.100.208.229] has quit [Quit: krolaw] 10:29 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 10:30 -!- saturnfive [~saturnfiv@210.74.155.131] has quit [Read error: Connection reset by peer] 10:30 -!- wchicken [~chicken@c-24-7-112-207.hsd1.ca.comcast.net] has joined #go-nuts 10:31 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 10:32 < wchicken> hey guys, decided to try out go on a whim today 10:33 < wchicken> if I have an array of strings and I want to change those into an array of float64s, what's the easiest way to do that? I have a for loop but 6g is complaining 10:35 < wchicken> http://pastie.org/1782209 (6g says that line 17 "isn't used") 10:35 < Namegduf> It isn't. 10:36 < Namegduf> == tests for equality. 10:36 < Namegduf> You then do nothing with that. 10:36 < wchicken> Namegduf: should I use := instead? 10:36 < hopso> Simply = 10:37 < wchicken> hopso: hey that works! thanks! 10:38 -!- stalled [~stalled@unaffiliated/stalled] has quit [Read error: Connection reset by peer] 10:39 -!- i__ [~none@unaffiliated/i--/x-3618442] has quit [Ping timeout: 252 seconds] 10:42 < wchicken> if I allocate an array using make(), that gives me a slice, correct? and I can pass that slice to other functions and not worry about needless copying? 10:43 -!- araujo [~araujo@gentoo/developer/araujo] has joined #go-nuts 10:43 -!- hopso [576c168c@gateway/web/freenode/ip.87.108.22.140] has quit [Ping timeout: 252 seconds] 10:49 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 10:51 < wrtp> wchicken: yes, the data in a slice is passed by reference 10:51 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 10:56 -!- boscop [~boscop@f055160016.adsl.alicedsl.de] has joined #go-nuts 10:59 -!- boscop_ [~boscop@f055160016.adsl.alicedsl.de] has joined #go-nuts 11:00 -!- boscop_ [~boscop@f055160016.adsl.alicedsl.de] has quit [Read error: Connection reset by peer] 11:00 -!- boscop [~boscop@f055160016.adsl.alicedsl.de] has quit [Ping timeout: 246 seconds] 11:03 -!- zimsim [~simon@87.72.77.195] has joined #go-nuts 11:04 -!- stalled [~stalled@unaffiliated/stalled] has joined #go-nuts 11:04 -!- anticw_ [~anticw@c-67-169-68-180.hsd1.ca.comcast.net] has quit [Ping timeout: 276 seconds] 11:04 -!- boscop [~boscop@f055160016.adsl.alicedsl.de] has joined #go-nuts 11:09 -!- boscop [~boscop@f055160016.adsl.alicedsl.de] has quit [Ping timeout: 258 seconds] 11:09 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 11:10 -!- boscop [~boscop@f055160016.adsl.alicedsl.de] has joined #go-nuts 11:11 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 11:12 -!- saturnfive [~saturnfiv@222.90.91.181] has joined #go-nuts 11:12 -!- saturnfive [~saturnfiv@222.90.91.181] has left #go-nuts [] 11:13 -!- boscop [~boscop@f055160016.adsl.alicedsl.de] has quit [Read error: Connection reset by peer] 11:18 -!- niemeyer [~niemeyer@189-10-155-52.pltce701.dsl.brasiltelecom.net.br] has joined #go-nuts 11:21 -!- dlowe [~dlowe@c-66-30-116-162.hsd1.ma.comcast.net] has joined #go-nuts 11:22 -!- boscop [~boscop@g227114087.adsl.alicedsl.de] has joined #go-nuts 11:28 -!- randfur [~androirc@58.145.148.89] has joined #go-nuts 11:29 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 11:31 -!- anticw [~anticw@c-67-169-68-180.hsd1.ca.comcast.net] has joined #go-nuts 11:31 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 11:46 -!- randfur [~androirc@58.145.148.89] has quit [Ping timeout: 252 seconds] 11:49 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 11:51 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 11:54 -!- zerosanity [~josh@8.20.178.82] has joined #go-nuts 12:05 -!- dreadlorde [~dreadlord@c-24-11-39-160.hsd1.mi.comcast.net] has joined #go-nuts 12:09 -!- jgonzalez [~jgonzalez@173-14-137-134-NewEngland.hfc.comcastbusiness.net] has joined #go-nuts 12:09 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 12:11 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 12:29 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 12:31 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 12:33 -!- fhs [~fhs@pool-74-101-66-112.nycmny.east.verizon.net] has quit [Quit: leaving] 12:38 -!- skejoe [~skejoe@188.114.142.217] has quit [Quit: Lost terminal] 12:44 -!- Scorchin [~Scorchin@host109-158-112-82.range109-158.btcentralplus.com] has joined #go-nuts 12:47 -!- arun_ [~arun@unaffiliated/sindian] has quit [Ping timeout: 246 seconds] 12:50 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 12:51 < exch> For anyone working on Go's HTTP stuff: http://www.conceivablytech.com/6696/products/google-chrome-gets-spdy-and-an-onscreen-keyboard 12:51 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 12:51 < exch> in particularly the bit about SPDY 12:52 -!- tensai_cirno [~cirno@195.19.62.212] has joined #go-nuts 12:54 -!- marten [~marten@82-170-80-86.ip.telfort.nl] has joined #go-nuts 12:54 -!- sanjoyd [~sanjoyd@unaffiliated/sanjoyd] has quit [Ping timeout: 252 seconds] 13:00 -!- arun_ [~arun@unaffiliated/sindian] has joined #go-nuts 13:00 -!- crodjer [~rohanjain@203.110.240.205] has quit [Ping timeout: 252 seconds] 13:01 -!- crodjer [~rohanjain@203.110.240.205] has joined #go-nuts 13:01 -!- artefon [~thiago@bananal.lbd.dcc.ufmg.br] has joined #go-nuts 13:08 < str1ngs> good read thanks 13:10 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 13:11 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 13:23 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts 13:26 -!- femtoo [~femto@95-89-249-242-dynip.superkabel.de] has joined #go-nuts 13:30 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 13:31 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 13:40 -!- pharris [~Adium@rhgw.opentext.com] has joined #go-nuts 13:55 -!- rlab [~Miranda@91.200.158.34] has quit [Ping timeout: 258 seconds] 13:55 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts 13:59 -!- rejb [~rejb@unaffiliated/rejb] has joined #go-nuts 14:04 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Quit: Leaving] 14:08 -!- shvntr [~shvntr@116.26.143.3] has quit [Read error: Connection reset by peer] 14:11 -!- dreadlorde [~dreadlord@c-24-11-39-160.hsd1.mi.comcast.net] has quit [Ping timeout: 276 seconds] 14:12 -!- araujo [~araujo@gentoo/developer/araujo] has joined #go-nuts 14:13 -!- hopso [~hopso@a91-152-176-165.elisa-laajakaista.fi] has joined #go-nuts 14:21 -!- tensai_cirno [~cirno@195.19.62.212] has quit [Quit: Leaving] 14:21 -!- hcatlin [~hcatlin@pdpc/supporter/professional/hcatlin] has joined #go-nuts 14:31 -!- lmoura [~lauromour@187.113.73.226] has joined #go-nuts 14:31 < plexdev> http://is.gd/P8Z1PD by [Russ Cox] in go/ -- A+C: Luit van Drongelen (individual CLA) 14:31 < plexdev> http://is.gd/RxuMUP by [Luit van Drongelen] in go/src/pkg/asn1/ -- asn1: Implement correct marshalling of length octets 14:31 -!- dreadlorde [~dreadlord@c-24-11-39-160.hsd1.mi.comcast.net] has joined #go-nuts 14:36 -!- Viriix [~joseph@c-67-169-172-251.hsd1.ca.comcast.net] has left #go-nuts ["Leaving"] 14:38 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 14:38 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 14:40 < nsf> uhm.. 14:41 < nsf> I know there were some fuzz about alternative method syntax 14:41 < nsf> but nothing useful, what do you think about it? Is the current one good enough to forget about that idea? 14:41 -!- Venom_X [~pjacobs@75-27-133-72.lightspeed.austtx.sbcglobal.net] has joined #go-nuts 14:41 < uriel> what alternative method syntax? 14:41 < nsf> maybe something like (random thought): func MethodX(receiver *StructX: a, b, c int) 14:42 < uriel> all suggestions I have heard were by people that clearly had not written any Go code in their lives 14:42 < nsf> instead of: func (receiver *StructX) MethodX(a, b, c int) 14:42 < exch> I find nothing wrong with the current implementation 14:42 < uriel> ugh 14:42 < nsf> too many parens is not an argument? :) 14:42 < nsf> func (receiver) name(args) (return values) 14:42 < nsf> six of them! 14:42 < exch> any alternative is just an aeshetic concern. It really has no baering on making Go more useful or not 14:42 < nsf> yeah 14:43 < nsf> but in a spirit of removing parens from many statement 14:43 < nsf> why can't we apply it here? 14:43 < uriel> I didn't see any real benefit, aesthetic or not (and aesthetics are important) from any of the sugggestions 14:44 < nsf> I'm just trying to be open minded, maybe there is a nice unheard idea somewhere around :) 14:46 < nsf> I guess there is no such thing 14:46 < nsf> :) 14:48 < hopso> I like the current method syntax. 14:48 * taruti too 14:49 < nsf> of course I like it too, but there is nothing I can compare it with 14:50 -!- delinka [~delinka@pidsley.praxxium.com] has joined #go-nuts 14:51 < nsf> no other strongly-typed language allows methods on non-structure types, am I right? 14:51 -!- dfr|mac [~dfr|work@c-71-57-46-63.hsd1.il.comcast.net] has joined #go-nuts 14:51 < delinka> Go n00b here - reading through the tutorial and it just keeps reminding me about semi-colons. rather the fact that I don't need to type them. are there really people that are so semi-colon averse? 14:52 -!- jbooth1 [~jay@209.249.216.2] has joined #go-nuts 14:52 < nsf> delinka: Go's tutorial has only one section on semicolons 14:52 -!- wrtp [~rog@92.17.67.64] has quit [Quit: wrtp] 14:52 < nsf> what's wrong with that? 14:53 < str1ngs> delinka: not adverse, simply you don't need them in go 14:53 < exch> delinka: you can type them if you want to. but you don't have to. The compiler inserts em for you, because it can and so you don't have to 14:54 < nsf> I don't understand the complaint 14:54 < nsf> is it about tutorial or semicolons 14:54 < nsf> or maybe the whole Go community? :) 14:54 < delinka> nsf: nothing wrong with it. it's the second such section I've read and feels like a Really Big Deal now that I've seen it mentioned. it's not a complaint, it's a question. 14:54 < nsf> ah, ok 14:54 < nsf> it's mentioned because Go's syntax has semicolons, but compiler inserts them for you 14:55 < nsf> and it's important to understand how it does that cheating 14:55 < nsf> otherwise at some point you'll be surprised by some syntax errors 14:55 -!- dreadlorde [~dreadlord@c-24-11-39-160.hsd1.mi.comcast.net] has quit [Ping timeout: 240 seconds] 14:55 < str1ngs> that's a good point nsf 14:55 < uriel> nsf: it is not even that important to understand that, it very rarely matters 14:56 < nsf> well it's not like a big deal rule, but you have to keep in mind the principle of inserting semicolons 14:56 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 14:56 < delinka> I guess if I had a "complaint" it's that this particular feature necessitates a bracing style that has ignited religious wars. I'm personally an opening-brace-same-line-as-if guy, but I've met people that Must Have It The Other Way. but I'm still not registering it as a compaint. ;-) 14:57 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined #go-nuts 14:57 < nsf> delinka: Go has a problem solver for that 14:57 < nsf> it's called gofmt 14:57 < nsf> it formats code for you 14:57 < nsf> and it has only one true style 14:57 < nsf> :) 14:57 < delinka> sensible 14:57 < str1ngs> which means we can fight less over tabs and spaces and such. and just fight over generics :P 14:58 * uriel is amazed at how much some people love to spend time arguing over totally irrelevant crap 14:58 < str1ngs> one of the reason I like gofmt so much 14:59 < exch> ya. it's genius 14:59 < delinka> I figure the Suits that seem to want to enforce style on underlings should probably just use formatting tools to show them what they like. then stfu and get some work done. :-D 14:59 < skelterjohn> easier to write a formatting tool in go than some other languages 15:00 < nsf> skelterjohn: I don't think it's true 15:00 < nsf> more like it's hard to write a formatting tool for C/C++ 15:00 < nsf> because it has a preprocessor 15:01 < skelterjohn> nsf: all i have to do is come up with *one* language for which it is harder, and then my statement is true 15:01 < nsf> ok 15:01 < nsf> :) 15:01 < exch> for some languages it makes no sense 15:01 < exch> to have a formatter that is 15:01 < nsf> like python :) 15:01 < skelterjohn> and i meant exactly what i said. there are certainly other languages that are also easy to write a formatter for, and i'm not talking about those 15:01 < exch> concatenative languages like factor to 15:02 < nsf> lisp - doesn't matter how you format it, it's the same, lol 15:02 < nsf> :D 15:02 < exch> yea exactly 15:03 < exch> The one thing about factor that I don't like is that it causes a syntax error when you use tabs instead of spaces. Shit like that really shouldn't be in the language design 15:03 < str1ngs> I totally agree 15:04 < nsf> haha, yaml disallows tabs as well 15:04 < nsf> but I like it 15:04 < nsf> I guess for a markup language it makes more sense 15:04 < exch> a language where you only have whitespace, it can be important to I guess :p 15:06 < aiju> fucking around about syntaxes is a waste of time 15:06 < aiju> eventually you get used to all language syntaxes and they became fine then 15:07 < aiju> except Haskell, that one sucks too much ;P 15:09 -!- chressie [~chressie@dreggn.in-ulm.de] has quit [Quit: WeeChat 0.3.4] 15:10 -!- reds [~reds@pool-74-101-147-57.nycmny.fios.verizon.net] has joined #go-nuts 15:14 < skelterjohn> i concur, on both counts 15:14 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Quit: skelterjohn] 15:15 -!- hopso [~hopso@a91-152-176-165.elisa-laajakaista.fi] has quit [Quit: hopso] 15:16 -!- plainhao [~plainhao@208.75.85.237] has joined #go-nuts 15:25 -!- dlowe [~dlowe@c-66-30-116-162.hsd1.ma.comcast.net] has quit [Quit: *poof*] 15:28 -!- bortzmeyer [~bortzmeye@batilda.nic.fr] has quit [Quit: Leaving.] 15:28 -!- chressie [~chressie@dreggn.in-ulm.de] has joined #go-nuts 15:33 < plexdev> http://is.gd/ZOTw6L by [Mikkel Krautz] in go/src/pkg/crypto/x509/ -- crypto/x509: expose complete DER data 15:36 -!- piranha [~piranha@D57D1AB3.static.ziggozakelijk.nl] has quit [Quit: Computer has gone to sleep.] 15:40 -!- mattn_jp [~mattn@112-68-78-114f1.hyg1.eonet.ne.jp] has joined #go-nuts 15:51 -!- femtoo [~femto@95-89-249-242-dynip.superkabel.de] has quit [Ping timeout: 246 seconds] 15:53 -!- marten [~marten@82-170-80-86.ip.telfort.nl] has quit [Quit: marten] 15:55 -!- skelterjohn [~jasmuth@lawn-gw.rutgers.edu] has joined #go-nuts 15:55 -!- fabled [~fabled@83.145.235.194] has quit [Quit: Ex-Chat] 15:56 -!- marten [~marten@82-170-80-86.ip.telfort.nl] has joined #go-nuts 15:58 -!- femtoo [~femto@95-89-249-242-dynip.superkabel.de] has joined #go-nuts 16:00 -!- rlab_ [~Miranda@91.200.158.34] has joined #go-nuts 16:00 -!- piranha [~piranha@5ED43A0B.cm-7-5a.dynamic.ziggo.nl] has joined #go-nuts 16:00 -!- rlab [~Miranda@91.200.158.34] has quit [Ping timeout: 246 seconds] 16:04 -!- artefon [~thiago@bananal.lbd.dcc.ufmg.br] has quit [Ping timeout: 240 seconds] 16:07 -!- artefon [~thiago@bananal.lbd.dcc.ufmg.br] has joined #go-nuts 16:07 -!- rurban [~demo@178-191-217-247.adsl.highway.telekom.at] has joined #go-nuts 16:10 -!- ShadowIce [~pyoro@HSI-KBW-109-193-120-162.hsi7.kabel-badenwuerttemberg.de] has joined #go-nuts 16:10 -!- ShadowIce [~pyoro@HSI-KBW-109-193-120-162.hsi7.kabel-badenwuerttemberg.de] has quit [Changing host] 16:10 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts 16:14 -!- fabled [~fabled@83.145.235.194] has joined #go-nuts 16:15 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Quit: Leaving] 16:17 -!- rurban [~demo@178-191-217-247.adsl.highway.telekom.at] has quit [Ping timeout: 276 seconds] 16:22 -!- tvw [~tv@212.79.9.150] has quit [Remote host closed the connection] 16:22 -!- rurban [~demo@178-191-217-247.adsl.highway.telekom.at] has joined #go-nuts 16:23 -!- araujo [~araujo@190.38.51.34] has joined #go-nuts 16:23 -!- araujo [~araujo@190.38.51.34] has quit [Changing host] 16:23 -!- araujo [~araujo@gentoo/developer/araujo] has joined #go-nuts 16:23 -!- firwen [~firwen@adevlaptop.cern.ch] has left #go-nuts [] 16:23 -!- m4dh4tt3r [~Adium@c-69-181-223-245.hsd1.ca.comcast.net] has quit [Ping timeout: 252 seconds] 16:24 -!- m4dh4tt3r [~Adium@c-69-181-223-245.hsd1.ca.comcast.net] has joined #go-nuts 16:27 -!- i__ [~none@unaffiliated/i--/x-3618442] has joined #go-nuts 16:31 -!- zimsim [~simon@87.72.77.195] has quit [Ping timeout: 276 seconds] 16:32 -!- JusticeFries [~JusticeFr@173-8-247-218-Colorado.hfc.comcastbusiness.net] has joined #go-nuts 16:35 -!- tensai_cirno [~cirno@80.250.216.102] has joined #go-nuts 16:42 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Quit: Leaving] 16:45 -!- zimsim [~simon@87.72.77.195] has joined #go-nuts 16:48 < Glasswalker> Ok, I have a type, which has a Quit(bool) channel, and it spawns off several goroutines (fixed number). If I want all the goroutines to quit, I need to send X values down that channel (one for each goroutine) correct? 16:48 -!- araujo [~araujo@gentoo/developer/araujo] has joined #go-nuts 16:48 < Glasswalker> Also I know the ones waiting on data from other channels are easy, the multiplexing example covers that (use a select on the 2 channels, one on quit, one on the data) 16:49 < Glasswalker> But I have one goroutine that calls a function, which returns 2 values (an actual return value, and a boolean "success" flag). I want to multiplex on that. (so loop over that function over and over, but if something comes in on the quit channel, then quit) 16:49 < Glasswalker> how do I handle that situation? 16:53 < skelterjohn> have the result of that function come in on a channel 16:53 < skelterjohn> and select on that channel and your quit channel 16:55 < exch> you can do a non-blocking read on the quit channel. If it yields anything, just quit. otherwise the code just continues looping and yuo can call whatever you need: for { if q, ok := <- quitchan; q || !ok { exitGoroutine() }; doOtherStuff() } 16:56 < skelterjohn> "q, ok := <- quichan" is not a non-blocking read 16:56 < skelterjohn> you need to select for that 16:56 < exch> it is 16:56 < skelterjohn> it was 16:56 < exch> just tried it 16:56 < skelterjohn> it is no longer 16:56 < skelterjohn> it compiles 16:56 < skelterjohn> but ok now tells you if the chan closed in the meantime 16:56 < exch> it also runs in a loop 16:56 < skelterjohn> when was the last time you updated =[ 16:56 < exch> few days ago 16:56 < skelterjohn> =[ -> =p 16:57 < exch> cd89452cfea3 weekly/weekly.2011-04-04 16:59 -!- m4dh4tt3r [~Adium@c-69-181-223-245.hsd1.ca.comcast.net] has quit [Ping timeout: 240 seconds] 17:00 < skelterjohn> run this code http://pastebin.com/jPBSCVTn 17:00 < skelterjohn> if it was non-blocking, it would exit immediately 17:01 < skelterjohn> since it is not, it waits 5 seconds 17:01 < skelterjohn> if it exits immediately, then something is strange because it waits 5 seconds on my machine 17:01 < skelterjohn> and i updated a day or two ago 17:01 < exch> oh dur. nvm. I put the test in my current project.. in a function that is called repeatedly -.- 17:01 -!- m4dh4tt3r [~Adium@c-69-181-223-245.hsd1.ca.comcast.net] has joined #go-nuts 17:01 < skelterjohn> ^_^ 17:02 -!- dfr|mac [~dfr|work@c-71-57-46-63.hsd1.il.comcast.net] has quit [Remote host closed the connection] 17:02 < skelterjohn> i couldn't find it anywhere in the spec, though :\ 17:03 < skelterjohn> "receive" is overloaded 17:04 -!- carrus85 [~carrus85@64.0.193.15] has joined #go-nuts 17:04 -!- JusticeFries_ [~JusticeFr@173-8-247-218-Colorado.hfc.comcastbusiness.net] has joined #go-nuts 17:06 -!- JusticeFries [~JusticeFr@173-8-247-218-Colorado.hfc.comcastbusiness.net] has quit [Ping timeout: 276 seconds] 17:07 -!- iocor [~sam@unaffiliated/iocor] has joined #go-nuts 17:07 < iocor> can you send a netchan over a netchan? 17:08 < nsf> yes 17:08 < nsf> ah, netcahn 17:08 < nsf> netchan* 17:08 < nsf> probably not :) 17:08 < nsf> channel over channel is possible 17:09 -!- Adys [~Adys@unaffiliated/adys] has quit [Ping timeout: 260 seconds] 17:09 < iocor> is there something special about netchans? 17:09 < skelterjohn> sending a netchan over a netchan would require some pretty heavy-duty infrastructure to support TCP streams with more than two parties 17:09 -!- wrtp [~rog@92.17.67.64] has joined #go-nuts 17:10 < skelterjohn> it would be very difficult, for instance, to ensure that only one machine that is reading from this chan received a value 17:10 < skelterjohn> distributed locks are very slow, and it's a good idea to find a more appropriate solution 17:11 < skelterjohn> in other news, apparently this allowed: http://code.google.com/p/go/issues/detail?id=1681 17:11 < Glasswalker> Ok, so for my above question, see http://svn.makerengineering.com/filedetails.php?repname=SWARM&path=%2Ftrunk%2Fsrc%2Fdambs%2Fdambs_connection.go 17:12 < Glasswalker> in the function PacketRXHandler() I call the Read() function 17:12 < Glasswalker> Err... ReadPacket() 17:12 < Glasswalker> which returns a DAMBSPacket, and a bool... 17:12 < skelterjohn> you should move on from svn, but that's a different issue 17:13 < skelterjohn> oh, you can use a select like that? 17:13 < Glasswalker> How I'm using it in the select obviously doesn't work, so how do I pipe that into a channel to select on it? 17:13 < skelterjohn> oh 17:13 < skelterjohn> does that not compile? 17:13 < skelterjohn> hehe 17:13 < Glasswalker> nope :) does not compile 17:13 < skelterjohn> ok, not surprised 17:13 < skelterjohn> one sec, i can make a pastebin 17:13 < Glasswalker> trying to figure out how to get the functionality I'm attempting there though 17:13 < Glasswalker> And what's wrong with SVN? ;) 17:15 < skelterjohn> http://pastebin.com/aUfU05dn 17:15 < skelterjohn> it has fallen out of favor 17:16 < Glasswalker> so? :) 17:16 < skelterjohn> i can discuss why, if you like 17:16 < skelterjohn> but let's focus on the go question first 17:16 < Glasswalker> lol yes 17:16 < skelterjohn> brb 17:17 < Glasswalker> Ahh 17:17 < Glasswalker> I think I see 17:17 < Glasswalker> and I wouldn't need to return a bool success/fail 17:17 < Glasswalker> internally if it fails just don't send it to the chan 17:18 -!- lazy1 [~miki@bzq-79-183-199-97.red.bezeqint.net] has joined #go-nuts 17:20 < skelterjohn> err 17:20 < skelterjohn> i guess 17:20 < skelterjohn> though that's kind of asking for trouble 17:20 < skelterjohn> if you need to inspect the error, i suggest having it built into the thing you send on valChan 17:21 < skelterjohn> valChan := make(chan struct {p DAMBSPacket, ok bool}) 17:21 < skelterjohn> or define the struct elsewhere 17:21 -!- Venom_X [~pjacobs@75-27-133-72.lightspeed.austtx.sbcglobal.net] has quit [Quit: Venom_X] 17:21 < skelterjohn> alternatively, you could have a separate chan fire if there is an error 17:22 < Glasswalker> ok 17:22 < Glasswalker> now why are you firing a goroutine there immediately before the select 17:23 < Glasswalker> and re-making the chan each iteration of the loop? 17:23 < skelterjohn> i didn't bother to remember the context 17:23 < skelterjohn> you wouldn't remake the chan each time 17:23 < Glasswalker> ok 17:23 < Glasswalker> as for the goroutine? the source for the chan doesn't NEED to be another thread does it? 17:23 < skelterjohn> and i'm firing a goroutine because chans for communication are only viable when they go between goroutines 17:25 < skelterjohn> a better design might have a goroutine calling ReadPacket() over and over again, pushing the results to a channel 17:25 < skelterjohn> and don't think of a goroutine as a thread 17:25 < Glasswalker> so if I feed something into a channel on line 1, and on line 5 I read back out of that channel (within the same function) that won't work? (I know it's a silly example) 17:25 < skelterjohn> it's much lighter weight than that 17:25 < skelterjohn> just think of it as a way to induce concurrency 17:25 -!- hopso [~hopso@a91-152-176-165.elisa-laajakaista.fi] has joined #go-nuts 17:25 < skelterjohn> Glasswalker: if you send something to a chan and nothing is ready to receive, the send won't happen 17:25 < skelterjohn> the code will stall there 17:26 < skelterjohn> but - you could make it a buffered chan 17:26 < skelterjohn> in fact that might be a really nice solution for your problem 17:26 < Glasswalker> wait that's what I missed 17:26 < skelterjohn> no extra goroutine required 17:26 < Glasswalker> I read it, but it hadn't sunk in 17:26 < Glasswalker> so normal chans are blocking 17:26 < Glasswalker> to the goroutine using them (Sender or reciever) 17:26 -!- Adys [~Adys@unaffiliated/adys] has joined #go-nuts 17:26 < skelterjohn> yes 17:26 < Glasswalker> unless it's buffered 17:26 < Glasswalker> or your using a select to check if it's still blocked 17:26 < Glasswalker> that makes MUCH more sense ;) 17:26 < skelterjohn> buffered chans can block too, if the buffer is full (for a send) or empty (for a receive) 17:27 < Glasswalker> ok wait 17:27 < Glasswalker> the whole reason I'm trying to do this is so I can send a remote kill to the channel which is looping 17:28 < Glasswalker> PacketRXHandler() is a goroutine which infinitely loops polling the TCP connection for incoming "Packets" (formatted chunks of TCP data). Using the ReadPacket function (which grabs bytes from the TCP buffer, and converts to a "Packet") 17:29 < Glasswalker> I need a way for the Connection (which spawned the PacketRXHandler) to kill it, so I implimented a quit channel. 17:29 < Glasswalker> but if the ReadPacket function is in it's own goroutine looping, then how do I remote kill it then? 17:29 < Glasswalker> or am I missing something lol 17:29 < skelterjohn> it will lose the packet it's trying to read 17:29 < skelterjohn> you can't really avoid this issue 17:30 < skelterjohn> without inducing some sort of race condition 17:30 < skelterjohn> you aren't missing anything 17:30 < skelterjohn> (that i am not also missing) 17:30 < Glasswalker> :S 17:30 < kamaji> h shi 17:30 < kamaji> :| 17:31 < kamaji> half wrong window :D 17:31 < Glasswalker> So... this solution just pushes the problem one layer deeper in the stack 17:31 < Glasswalker> and doesn't really solve it 17:31 < Glasswalker> :) 17:31 < skelterjohn> Glasswalker: think about it - there is a point at which your code will start reading the packet 17:31 < Glasswalker> is what your saying 17:31 < skelterjohn> if you try to stop after this happens, the packet will be lost 17:31 < Glasswalker> oh I get that 17:32 < skelterjohn> unless, once a quit message is received, just don't start trying to read any *new* packets 17:32 < skelterjohn> but you're allowed to finish the old oen 17:32 < skelterjohn> that is doable 17:32 < Glasswalker> right 17:32 < Glasswalker> that's what I'm going for 17:32 < skelterjohn> ok, what you want to do 17:32 < Glasswalker> but if I don't have some way to explicitly kill a looping goroutine it will stay exeucting when the program dies 17:32 < skelterjohn> is right before you try to read a packet 17:32 < Glasswalker> hence the quit channel 17:32 < skelterjohn> select on the quitchan and on default 17:33 < skelterjohn> select { case <- quitChan: /*break out of the read loop */ default: } 17:33 < skelterjohn> that is a non-blocking read of the quit channel 17:33 < skelterjohn> if there isn't anything read on it, default will fire 17:33 < Glasswalker> AHH 17:33 < skelterjohn> default only fires if non of the other channels have something ready 17:33 < Glasswalker> that's what I was missing! 17:34 < skelterjohn> this is what exch was suggesting earlier, modulo syntax 17:34 -!- rurban [~demo@178-191-217-247.adsl.highway.telekom.at] has quit [Ping timeout: 252 seconds] 17:34 < Glasswalker> yeah it just didn't *click* earlier :) 17:34 -!- dahankzter [~henrik@92-244-3-192.customers.ownit.se] has joined #go-nuts 17:34 -!- rurban [~demo@178.191.217.247] has joined #go-nuts 17:35 -!- skelterjohn_ [~jasmuth@lawn-gw.rutgers.edu] has joined #go-nuts 17:36 -!- skelterjohn [~jasmuth@lawn-gw.rutgers.edu] has quit [Read error: Connection reset by peer] 17:36 < skelterjohn> flakey internet on campus, too? i think my computer needs an upgrade 17:36 -!- Fish [~Fish@9fans.fr] has joined #go-nuts 17:37 -!- firwen [~firwen@gex01-1-78-234-55-225.fbx.proxad.net] has joined #go-nuts 17:37 < Glasswalker> nice! that compiles :) 17:37 < Glasswalker> thanks! 17:38 < Glasswalker> Ok so my first question... 17:39 < Glasswalker> The Connection fires 4 goroutines (PacketTXHandler, PacketRXHandler, MessageTXHandler, MessageRXHandler) (messages are broken into packets, or encoded from packets) 17:39 < Glasswalker> so if I send Connection.Close() (which is what feeds the quit chan) I need to send 4 values down the quit channel right? 17:39 < Glasswalker> so that all 4 goroutines get a flag and kill themselves. 17:39 < skelterjohn> yes 17:40 < Glasswalker> perfect 17:40 < Glasswalker> but... 17:40 < skelterjohn> it's possibly to build a multiplexing channel, but it's not default behavour 17:40 < Glasswalker> what if one of the goroutines fails? 17:40 < Glasswalker> (I mean the app will have broken badly at that point, but that aside) 17:40 < Glasswalker> if it fails out, and isn't running 17:40 < Glasswalker> and I try and send 4 quit messages 17:40 -!- JusticeFries [~JusticeFr@173-8-247-218-Colorado.hfc.comcastbusiness.net] has quit [Read error: Connection reset by peer] 17:41 < skelterjohn> then one of them won't get read 17:41 < Glasswalker> won't the Close() function block on the "spare" quit message? 17:41 < skelterjohn> yes 17:41 -!- JusticeFries [~JusticeFr@173-8-247-218-Colorado.hfc.comcastbusiness.net] has joined #go-nuts 17:41 < Glasswalker> so then Close() will never complete 17:41 < Glasswalker> and the app will lock up 17:41 < skelterjohn> not as written, no 17:41 < skelterjohn> correct 17:41 < Glasswalker> but like I said, if that happens I have other issues too 17:41 < Glasswalker> lol 17:41 < Glasswalker> but still just trying to get my head around the behavior 17:42 -!- tensai_cirno [~cirno@80.250.216.102] has quit [Quit: Leaving] 17:43 < skelterjohn> what have you ended up using as a build tool, btw? 17:43 < skelterjohn> not that it matters - both godag and gb are going to be replaced by the inhouse update to gomake 17:44 -!- emjayess [~emjayess@pix1.i29.net] has joined #go-nuts 17:46 -!- dfr|mac [~dfr|work@nat/google/x-ghoavuzfsuorlzil] has joined #go-nuts 17:52 -!- artefon [~thiago@bananal.lbd.dcc.ufmg.br] has quit [Quit: bye] 17:55 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Quit: Leaving] 18:02 -!- kaichenxyz [~kaichenxy@li261-87.members.linode.com] has quit [Quit: kaichenxyz] 18:02 -!- kaichenxyz [~kaichenxy@li261-87.members.linode.com] has joined #go-nuts 18:14 -!- araujo [~araujo@gentoo/developer/araujo] has joined #go-nuts 18:15 -!- rlab_ [~Miranda@91.200.158.34] has quit [Ping timeout: 248 seconds] 18:18 -!- TheMue [~TheMue@p5DDF56C9.dip.t-dialin.net] has joined #go-nuts 18:19 -!- JusticeFries [~JusticeFr@173-8-247-218-Colorado.hfc.comcastbusiness.net] has quit [Ping timeout: 252 seconds] 18:20 -!- daharon [~daharon@173-11-102-86-SFBA.hfc.comcastbusiness.net] has joined #go-nuts 18:26 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts 18:29 < kamaji> Are double pointers possible? 18:29 <+iant> what is a double pointer? 18:29 < kamaji> a pointer to a pointer 18:29 < skelterjohn> var X **int 18:29 -!- rurban [~demo@178.191.217.247] has quit [Ping timeout: 258 seconds] 18:29 < skelterjohn> of course 18:29 <+iant> sure 18:30 < kamaji> next question: are they a good idea? :P 18:30 < aiju> you can combine Go types in any way you can think of 18:30 < aiju> kamaji: i've used triple pointers in code 18:30 < kamaji> aiju: badass. 18:30 < aiju> i think quadruple pointers at some point 18:30 < aiju> in C, though 18:30 < kamaji> I used doubles in some logic simplifying code in C once 18:30 < kamaji> my head hurt :< 18:30 < skelterjohn> i don't think i have had reason to use more than a double pointer, yet 18:30 < aiju> *[]*int is basically a triple pointer 18:30 < kamaji> hnnnnngggggggg 18:30 < aiju> skelterjohn: GCC performs really bad on 200 times indirected pointers ;P 18:31 < kamaji> wait, aren't slices already reference types? 18:31 < aiju> kamaji: no 18:31 < kamaji> WAT 18:31 < aiju> i don't know why everyone is propagating this 18:31 < kamaji> ARE YOU FUCKING KIDDING ME 18:31 < kamaji> DAMMMITTTTTTTT 18:31 < skelterjohn> aiju: I imagine it's hard to get code using that many redirects to be efficient 18:31 < aiju> skelterjohn: uh huh? 18:31 < kamaji> wait: I thought *slices* were, but arrays weren't? 18:31 < exch> a slice is a value type, but it contains a pointer to the underlying array 18:31 < skelterjohn> slices are values, but ... what exch said 18:31 < kamaji> ok right. phew 18:31 < kamaji> you scared my balls off 18:31 < skelterjohn> so it's part reference type, part value type 18:31 < aiju> slices are just fancy pointers 18:31 < kamaji> it's like a pointer with extra stuff 18:32 < kamaji> ^ 18:32 < skelterjohn> it's not like maps and chans, which are truly reference types 18:32 < niemeyer> kamaji: They are reference types, yeah 18:32 -!- JusticeFries [~JusticeFr@173-8-247-218-Colorado.hfc.comcastbusiness.net] has joined #go-nuts 18:32 < skelterjohn> actually, i'm not sure what distinction i'm trying to make here 18:33 < kamaji> ok question 3, since . is context aware, will myDoublePointer.Value work? 18:33 < skelterjohn> w/e it's not an interesting conversation 18:33 < kamaji> skelterjohn: lol 18:33 < aiju> kamaji: i don't think so 18:33 -!- artefon [~thiago@189.59.135.192] has joined #go-nuts 18:33 < skelterjohn> kamaji: (*myDblPointer).thing 18:33 < kamaji> ok 18:33 < kamaji> maybe this is a bad idea :\ 18:33 < skelterjohn> which is different than (**myDblPointer).thing 18:33 < skelterjohn> if you put it on the LHS, for instance 18:34 < kamaji> how is that different? 18:34 < kamaji> oh 18:34 < kamaji> can modify the second but not the first? 18:34 -!- krutcha [~krutcha@remote.icron.com] has joined #go-nuts 18:35 < skelterjohn> dereferencing a pointer into a value operates on a copy of the value, i think 18:35 -!- arun_ [~arun@unaffiliated/sindian] has quit [Read error: Connection reset by peer] 18:35 < skelterjohn> i should write a quick program to check that - i've been proven wrong with go before 18:35 < skelterjohn> some things are a bit unintuitive (for me) 18:36 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Quit: Leaving] 18:37 -!- arun_ [~arun@unaffiliated/sindian] has joined #go-nuts 18:38 < skelterjohn> i'm wrong 18:38 < skelterjohn> http://pastebin.com/vM0JNd6m 18:38 < kamaji> both work 18:38 < kamaji> in modifying 18:38 < kamaji> I'm too slow again :P 18:40 -!- virtualsue [~chatzilla@nat/cisco/x-arrgrgutriitzmxl] has quit [Ping timeout: 240 seconds] 18:40 < skelterjohn> go does a bunch of things with pointers vs values that don't make sense to me 18:40 -!- snearch [~snearch@f053006112.adsl.alicedsl.de] has joined #go-nuts 18:40 < skelterjohn> but it never makes it harder for me to write actual code, so it's easy to get over 18:42 < skelterjohn> a bit more informative as to why i thought it wouldn't work the way it does: http://pastebin.com/RsiDh036 18:42 < skelterjohn> i guess i'm still in the C++ mindset where . and -> mean different things 18:43 < skelterjohn> here they're kind of merged into one operator 18:43 -!- mattn_jp [~mattn@112-68-78-114f1.hyg1.eonet.ne.jp] has quit [Quit: Ex-Chat] 18:45 -!- keithgcascio [~keithcasc@nat/google/x-sysnsudckfmeoevm] has joined #go-nuts 18:46 -!- tensai_cirno [~cirno@77.232.15.216] has joined #go-nuts 18:48 -!- Venom_X [~pjacobs@adsl-99-20-147-171.dsl.aus2tx.sbcglobal.net] has joined #go-nuts 18:49 -!- arun_ [~arun@unaffiliated/sindian] has quit [Read error: Connection reset by peer] 18:51 < krutcha> that code confuses my brain also 18:53 < skelterjohn> go does it correctly 18:53 < skelterjohn> i just had a momentary brain fart 18:54 -!- Project_2501 [~Marvin@82.84.88.129] has joined #go-nuts 18:54 -!- araujo [~araujo@gentoo/developer/araujo] has joined #go-nuts 18:57 < krutcha> yeah it makes sense 18:58 < krutcha> just feels wiggy if you think like C where pointers have to be treated specially 18:58 -!- progettino [~Marvin@82.84.65.36] has quit [Ping timeout: 276 seconds] 18:58 < aiju> krutcha: it makes sense though 18:58 < krutcha> yep 18:59 < aiju> C style is context free 18:59 -!- boscop [~boscop@g227114087.adsl.alicedsl.de] has quit [Ping timeout: 246 seconds] 18:59 < skelterjohn> i don't like context 18:59 < skelterjohn> and implicit meaning 18:59 < aiju> context is quantum satis to me 18:59 < skelterjohn> i don't know what that means 18:59 < skelterjohn> "the only thing you need"? 18:59 < aiju> as little as possible, as much as needed 19:00 < skelterjohn> close neough 19:00 < aiju> at the end of the day HQ9+ is the only context free language 19:00 < nsf> hehe, I'm changing type cast syntax in crawl :\ 19:00 < nsf> x := [type]y; 19:00 -!- boscop [~boscop@g227114087.adsl.alicedsl.de] has joined #go-nuts 19:00 < nsf> does anyone think something about that? :) 19:01 < nsf> the reason why previous <type>expr doesn't work is this expression: 19:01 < nsf> a < <uint>b 19:01 < nsf> looks ugly 19:01 < nsf> a < [uint]b is better 19:01 < krutcha> skelterjohn: http://pastebin.com/khR5nibF makes it clear to me, but still I find room to make a mental OOPS when dealing with pointers in GO, correct or not 19:01 < skelterjohn> nsf: as long as types are not first class values, that seems fine 19:02 < nsf> what do you mean first class values? 19:02 < skelterjohn> you can't say x := int 19:02 < skelterjohn> var y x 19:02 < nsf> of course you can't 19:02 < skelterjohn> since types aren't first class values 19:02 < skelterjohn> you can in some language 19:02 < skelterjohn> s 19:02 < skelterjohn> makes type checking NP-complete, i think 19:03 < nsf> I don't think compilation is even possible with that kind of feature 19:03 < nsf> JIT only 19:03 < nsf> well, you can't hold the type in the var and use it 19:03 < skelterjohn> dynamic languages 19:03 < nsf> because compiler needs to know all the types 19:03 < skelterjohn> err 19:03 < nsf> yeah 19:04 < skelterjohn> interpretted languages with dynamic variables/types 19:04 < skelterjohn> i didn't expect you to say "oh, wait crawl does allow types as first class values" :) 19:04 < nsf> :) 19:04 < aiju> this is reasonably possible in a static language 19:04 < nsf> aiju: but storage for that type will become dynamic 19:04 < skelterjohn> right 19:04 < aiju> how so? 19:04 < nsf> like the case with interfaces 19:04 < skelterjohn> if everything is a pointer 19:05 < nsf> because if your type is dynamic 19:05 < skelterjohn> aiju: because to know how much space something takes, you have to know its type, and type inference is NP-complete in this context 19:05 < nsf> its size is dynamic 19:05 < aiju> 21:05 < skelterjohn> var y x 19:05 < aiju> oh yeah, in that situation 19:05 < aiju> just thought about x := int 19:05 < skelterjohn> also, you could pass a type to a function 19:05 < nsf> otherwise why do you need dynamic types? :) 19:05 < aiju> for use with e.g. interface type checking 19:06 < aiju> currently type switches are some kind of hack 19:06 < aiju> with this you could make them normal switches on a type() function 19:06 < skelterjohn> call it with types of different size 19:06 < skelterjohn> then that function can't know the size of its variable at compile time 19:06 < skelterjohn> unless you explode it to deal with all possibilities 19:06 < aiju> ofc i don't know whether that is actually useful 19:07 -!- skelterjohn_ [~jasmuth@lawn-gw.rutgers.edu] has joined #go-nuts 19:07 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has quit [Read error: Operation timed out] 19:07 -!- arun_ [~arun@unaffiliated/sindian] has joined #go-nuts 19:08 -!- skelterjohn [~jasmuth@lawn-gw.rutgers.edu] has quit [Read error: Connection reset by peer] 19:10 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has joined #go-nuts 19:11 -!- tensai_cirno [~cirno@77.232.15.216] has quit [Read error: Operation timed out] 19:12 -!- wrtp [~rog@92.17.67.64] has quit [Quit: wrtp] 19:18 < krutcha> I spent a fair bit of time on friday banging my head against empty interfaces/type assertions etc. What's the big fuss about not having generics? They seem sufficient for the needs I had. 19:19 < cbeck> Because all that is runtime rather than compile time 19:21 < krutcha> but can't you use a non-empty interface to enforce conformity at compile time? 19:22 < aiju> krutcha: generics are mainly a performance issue 19:22 < taruti> and type safety 19:23 -!- boscop [~boscop@g227114087.adsl.alicedsl.de] has quit [Read error: Connection reset by peer] 19:23 -!- boscop [~boscop@g227114087.adsl.alicedsl.de] has joined #go-nuts 19:24 < krutcha> fair enough I guess, I haven't gotten to the point of caring about performance in that code yet 19:24 < krutcha> perhaps I'll find some bottleneck and curse the additional legwork/assertions later 19:25 -!- plainhao [~plainhao@208.75.85.237] has quit [Quit: plainhao] 19:25 -!- boscop [~boscop@g227114087.adsl.alicedsl.de] has quit [Excess Flood] 19:27 -!- boscop [~boscop@g227114087.adsl.alicedsl.de] has joined #go-nuts 19:27 < zimsim> Isn't it possible to change attributes for projects on godashboard? 19:27 < zimsim> links, description etc? 19:28 < skelterjohn> probably 19:28 < skelterjohn> if you send a note to adg 19:28 -!- boscop [~boscop@g227114087.adsl.alicedsl.de] has quit [Excess Flood] 19:28 < zimsim> oh, right. so all entries all manually checked? 19:29 < skelterjohn> yeah i don't think there is anything automated about it 19:29 -!- jgonzalez [~jgonzalez@173-14-137-134-NewEngland.hfc.comcastbusiness.net] has quit [Ping timeout: 276 seconds] 19:30 -!- jgonzalez [~jgonzalez@173-14-137-134-NewEngland.hfc.comcastbusiness.net] has joined #go-nuts 19:30 -!- boscop [~boscop@g227114087.adsl.alicedsl.de] has joined #go-nuts 19:32 < zimsim> I like the brevity of that index, but letting people change attributes is probably ok for the future 19:33 < skelterjohn> invites spam 19:33 < zimsim> I especially like how goinstall adds a package to the index if its installed from a public location. 19:33 < zimsim> Is spam a problem in for package index's? 19:33 < zimsim> I have no idea, just asking 19:33 -!- boscop_ [~boscop@g227114087.adsl.alicedsl.de] has joined #go-nuts 19:34 < skelterjohn> as in, there is no system in place to associate a project with the person who created it 19:34 < skelterjohn> because it goes threw andrew first, he can verify that the attributes suggested are reasonable 19:35 < zimsim> Fully understandable, I rest my case. 19:35 < skelterjohn> maybe if we had a file in the repos called dashboard.txt that had the right information, that could work 19:35 -!- tensai_cirno [~cirno@77.232.15.216] has joined #go-nuts 19:36 -!- boscop [~boscop@g227114087.adsl.alicedsl.de] has quit [Ping timeout: 246 seconds] 19:36 < zimsim> I think redis documentation and list of clients is organized like that. 19:36 < iocor> do package names have to be unique to one file 19:36 < iocor> or can I have several files all with package "bees" 19:36 < zimsim> nope 19:36 < zimsim> unique as far as I know. 19:36 < skelterjohn> packages can ahve whatever name they like 19:37 < skelterjohn> no restrictions on uniqueness 19:37 < skelterjohn> except that any files that you compile together must have teh same package name 19:37 < skelterjohn> best practice is to limit yourself to one set of files per directory 19:37 < zimsim> I think I misunderstood. I thought the question was about godashboard. 19:37 -!- rlab [~Miranda@91.200.158.34] has quit [Ping timeout: 252 seconds] 19:38 < zimsim> As I believe entering the same project name as a project in the register will give you an err .. 19:38 -!- boscop_ [~boscop@g227114087.adsl.alicedsl.de] has quit [Read error: Connection reset by peer] 19:39 -!- boscop [~boscop@g227114087.adsl.alicedsl.de] has joined #go-nuts 19:39 < skelterjohn> ah. probably 19:39 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts 19:42 -!- boscop [~boscop@g227114087.adsl.alicedsl.de] has quit [Excess Flood] 19:43 -!- huin [~huin@91.85.185.181] has joined #go-nuts 19:44 -!- boscop [~boscop@g227114087.adsl.alicedsl.de] has joined #go-nuts 19:46 -!- hcatlin [~hcatlin@pdpc/supporter/professional/hcatlin] has quit [Quit: hcatlin] 19:48 < Glasswalker> if I have a function which has multiple return values. one of which is a "*mytype" and I want to assign that to a variable of type "mytype" how do I go about dereferencing it? 19:48 < skelterjohn> x, y := foo(); z := *x 19:48 < skelterjohn> ie, you can only do this in two steps 19:49 < Glasswalker> ahh 19:49 < Glasswalker> ok that's what I thought, so use a temp variable. 19:49 < zimsim> or change the func to return the val 19:51 < Glasswalker> it's a standard go library function 19:51 < Glasswalker> so temp variable it is :) 19:52 < plexdev> http://is.gd/fjpOYl by [Fazlul Shahriar] in go/src/pkg/syscall/ -- syscall: fix StartProcess in Plan 9 19:52 < Glasswalker> if I define a variable inside of an if conditional block, does it carry out, or is it limited in scope to be only within the conditional block? 19:53 < huin> limited in scope 19:53 -!- tensai_cirno [~cirno@77.232.15.216] has quit [Ping timeout: 260 seconds] 19:54 < gmilleramilar> what's the status of building CGO packages with goinstall? specifically if it doesn't pick up the Makefile in the package, how do I specify CFLAGS, LDFLAGS, etc? 19:54 -!- Venom_X_ [~pjacobs@99.20.147.171] has joined #go-nuts 19:55 < skelterjohn> golang.org/cmd/cgo 19:55 < skelterjohn> tells you how 19:56 < gmilleramilar> ah, sorry I was looking at the docs for goinstall, but not cgo 19:56 < gmilleramilar> thanks. 19:57 -!- Venom_X [~pjacobs@adsl-99-20-147-171.dsl.aus2tx.sbcglobal.net] has quit [Ping timeout: 276 seconds] 19:57 < zimsim> Glasswalker, another thing to note about scope in if's is that the following assignment might not do what you expect. http://paste.pocoo.org/369887 19:58 < skelterjohn> page not found 19:58 < zimsim> http://paste.pocoo.org/show/369887/ 19:58 < zimsim> sorry 19:59 -!- arun__ [~arun@i172010.upc-i.chello.nl] has joined #go-nuts 20:00 -!- boscop [~boscop@g227114087.adsl.alicedsl.de] has quit [Ping timeout: 246 seconds] 20:00 -!- iant [~iant@216.239.45.130] has quit [Ping timeout: 276 seconds] 20:01 < zimsim> Thats at least a case I've gotten wrong plenty of times when doing res, err := foo() inside an if. 20:02 < skelterjohn> i'm actually not sure what will happen there 20:02 < skelterjohn> i used to think anything to the left of a := was redeclared 20:02 < skelterjohn> but i'm wrong in some cases 20:02 < skelterjohn> and i forget which 20:02 < zimsim> output: 1 false\n 0 20:03 -!- Adys [~Adys@unaffiliated/adys] has quit [Quit: Quit] 20:03 < zimsim> i is redeclared. 20:03 < skelterjohn> ok, that's what i would have originally thought 20:03 < skelterjohn> but i think if you have that outside the if, it works differently 20:04 < skelterjohn> right 20:04 < skelterjohn> if it's declared in the same scope, it won't redeclare 20:04 < zimsim> correct 20:04 < zimsim> actually had to recompile to confirm myself 20:05 < Glasswalker> hmm, now I'm getting a ton of implicit assignment of unexported field 'enc' of aes.Cipher in assignment 20:05 < Glasswalker> during compile 20:05 < zimsim> its easy to mixup and I have to re-read the docs for it. 20:05 -!- wchicken [~chicken@c-24-7-112-207.hsd1.ca.comcast.net] has quit [Quit: leaving] 20:05 < skelterjohn> Glasswalker: just deal with *aes.Cipher instead of aes.Cipher 20:05 < skelterjohn> don't dereference that pointer - you can't since it has unexported things 20:05 < Glasswalker> oh 20:05 < Glasswalker> damn 20:06 < skelterjohn> it's designed so you work on the pointer 20:06 < Glasswalker> that flubs up my whole implimentation a bit 20:06 < Glasswalker> lol 20:06 * cbeck imagines "Don't dereference that pointer" to the tune of "Don't copy that floppy" 20:06 < skelterjohn> someone made a song out of that? 20:07 < cbeck> Somewhere.. 20:07 < skelterjohn> :) 20:07 < Glasswalker> because I have a type "CryptoProvider" which the server has an instance of, then for each client, they get a copy of the servers CryptoProvider but with a changed AES Cipher. 20:07 < Glasswalker> (so each client has it's own AES Cipher, but the rest of the cryptoprovider is copied from the server) 20:08 < Glasswalker> because it impliments an RSA public/private key system for handshaking the AES cipher 20:08 < Glasswalker> hmm 20:08 < plexdev> http://is.gd/Dkm6N7 by [Robert Hencke] in go/src/pkg/http/ -- http: fix incorrect prints found by govet 20:09 < skelterjohn> too bad - the information within is easily copied in a meaningful way 20:09 < skelterjohn> indicates the API is poorly designed, in my opinion 20:09 -!- iant [~iant@216.239.45.130] has joined #go-nuts 20:09 -!- mode/#go-nuts [+v iant] by ChanServ 20:12 -!- zerosanity [~josh@8.20.178.82] has quit [Remote host closed the connection] 20:12 < iocor> w00t 20:12 < iocor> first go file written 20:13 < iocor> https://github.com/samphippen/unstoppable 20:14 < skelterjohn> lol 20:14 < skelterjohn> all great journeys begin with a single step 20:14 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.4] 20:14 < iocor> I should probably add getters and setters to that thing 20:15 < zimsim> too much Java ... 20:15 < skelterjohn> iocor: why 20:15 < skelterjohn> just make the fields exported 20:15 < exch> they are all private fields, so not very useful to the outside world 20:15 < iocor> I know I know 20:16 < iocor> specifically some of those fields shouldn't be set directly. Ie number and school need to be validated 20:18 < skelterjohn> i don't know how useful it is to treat a library the same way you'd treat a GUI 20:18 < skelterjohn> that is, idiot-proof 20:19 < skelterjohn> but if they are things that don't change over the course of the instance's lifetime, have them set in an initializer funciton 20:19 < zimsim> I'd rather write code which does something and add tests which prove it does it, than writing code which does nothing. 20:19 < zimsim> getters and setter do nothing 20:20 < iocor> zimsim: they often validate. 20:20 < zimsim> why? 20:21 < skelterjohn> there is a good reason to do that, in many cases 20:21 -!- hcatlin [~hcatlin@pdpc/supporter/professional/hcatlin] has joined #go-nuts 20:21 < exch> in some case they can be useful 20:21 -!- hcatlin [~hcatlin@pdpc/supporter/professional/hcatlin] has quit [Client Quit] 20:21 < skelterjohn> if you have a well-used library without validation, eventually some crafty dev will think up a way to change the struct fields in a weird way 20:21 < zimsim> And in many cases it is not 20:21 < exch> dont think they should be considered a standard practise though 20:21 < skelterjohn> then you change your definition a bit 20:21 < skelterjohn> and the crafty dev code breaks 20:21 < skelterjohn> and they get mad 20:21 < skelterjohn> and it's just not worth the aggravation 20:23 < skelterjohn> C# had a nice way of doing this, where it looked like you just set a member variable, but it could run some validation code to check 20:23 < skelterjohn> but lots of people, quite rightly, don't like it when code runs when no code should run 20:24 -!- tensai_cirno [~cirno@77.232.15.216] has joined #go-nuts 20:25 < zimsim> I just know from my two years of programming experience, when writing Java I wrote the highest quantity of code doing nothing. 20:25 < zimsim> or just doing things like Setting and Getting a variable. 20:25 < hopso> Oh wow, I just created my first web page ever. From making a gui for go application to playing 20:25 < hopso> around to an actual website. :O 20:26 -!- arun__ [~arun@i172010.upc-i.chello.nl] has quit [Quit: Leaving] 20:26 < skelterjohn> i wish there was a nice way to make go guis 20:26 < skelterjohn> i tried installing gtk, but it didn't work 20:26 < skelterjohn> <- os x 20:29 < hopso> Everyone loves guis, it probably would attract at least some more developers to try Go. 20:29 < zimsim> thats a bold statement. "Everyone" is who exactly? 20:30 < skelterjohn> a quantifier not worth arguing over, that's who =p 20:30 < KirkMcDonald> I for one hate coding GUIs. :-) 20:30 < zimsim> I think many do. I agree with skelterjohn though. Dont want to start an argument. 20:31 < skelterjohn> even if i could have a reliable way to put pixels on the screen that would work for all platforms 20:31 < skelterjohn> (exp/draw/x11 does not count) 20:31 < skelterjohn> then at least i could try my hand at making a portable gui library 20:32 < KirkMcDonald> SDL bindings might be a thing. 20:32 < skelterjohn> i've had horrible luck getting any of that stuff to work 20:32 < skelterjohn> i hear it works great on linux though 20:32 < KirkMcDonald> I've used SDL on Windows mostly, but I'd expect it to work anywhere. 20:33 < hopso> The Go-SDL bindings had some problems on windows last time I tried. 20:33 < KirkMcDonald> I've never used SDL in Go. 20:33 < skelterjohn> yeah it's not SDL in general - i've used it before and it's nice 20:33 < skelterjohn> it's SDL + go 20:34 < KirkMcDonald> But it doesn't really do anything particularly clever, as a library. It is a straightforward C API. 20:34 < skelterjohn> SDL doesn't play nicely in some important ways 20:34 < skelterjohn> having to do with threading 20:34 < KirkMcDonald> Such as? 20:34 < KirkMcDonald> Ah. 20:34 -!- TheMue [~TheMue@p5DDF56C9.dip.t-dialin.net] has quit [Quit: TheMue] 20:34 < KirkMcDonald> Of course it would be that. 20:34 < skelterjohn> it *must* occupy the primary thread 20:34 < KirkMcDonald> skelterjohn: Ah, that's what SDL_main was all about, wasn't it. 20:34 < exch> GLFW + opengl works as well. No need for sdl 20:34 < skelterjohn> you cannot write a C program that runs SDL in a thread that isn't main's 20:35 < skelterjohn> exch: I'd love to see it working on my machine :) 20:35 < KirkMcDonald> Does GLFW give input events, too? 20:35 < dforsyth> are you actually going to give writing a portable gui library a shot? 20:35 < skelterjohn> i would if i could get a portable drawing library 20:36 < KirkMcDonald> GUI libraries are hard, let's go shopping. 20:36 < skelterjohn> i don't know how good i would be at it 20:36 < skelterjohn> probably "not very" 20:36 -!- zozoR [~Morten@5634631b.rev.stofanet.dk] has quit [Remote host closed the connection] 20:36 < exch> glfw does window handling (resizing, etc() and has input handling (kb, mouse, joysticks) 20:36 < exch> nothing more than that really 20:36 < KirkMcDonald> exch: Those are good things. 20:36 < skelterjohn> exch: are you going to make your bindings public soon 20:36 < skelterjohn> ? 20:36 < exch> it does create an opengl context you can use with the opengl bindings 20:37 -!- dreadlorde [~dreadlord@c-24-11-39-160.hsd1.mi.comcast.net] has joined #go-nuts 20:37 < hopso> Building a gui library could be pretty educational project. 20:37 < exch> skelterjohn: I can put em on github now, but Im not sure it'l be very useful yet. There are a few functions which require callbacks to work from C ->Go. You can use it without those, but having em would be even better 20:37 < skelterjohn> first i'd just want to make a library for drawing primitives 20:37 < hopso> Especially using channels. 20:38 < skelterjohn> exch: it'd be nice to experiment with, in any case 20:38 < skelterjohn> and feedback is always helpful :) 20:38 < exch> fair enough 20:38 < skelterjohn> what platform do you develop on? 20:39 < exch> linux 20:39 < exch> 64 bit 20:40 < skelterjohn> then i can at least tell you if it works on os x 20:40 < exch> https://github.com/jteeuwen/glfw there ya go 20:40 < exch> have fun :p 20:40 < skelterjohn> os x has this "nice" feature where the kernel is in 32bit, but you can run code in 64bit 20:40 < skelterjohn> do i need to install something else first to make it work? 20:40 < plexdev> http://is.gd/AscBO9 by [Luuk van Dijk] in go/src/cmd/ld/ -- ld: fix dwarf decoding of strings for struct's fieldnames 20:40 < exch> libglfw itself would be good 20:40 < skelterjohn> like, glfw? heh 20:41 < exch> one of the examples also uses banthar's Go-OpenGL 20:41 < skelterjohn> nothing about os x on its website that I see :\ 20:41 < exch> for the actual drawing and all :p 20:41 -!- femtoo [~femto@95-89-249-242-dynip.superkabel.de] has quit [Read error: Connection reset by peer] 20:42 < exch> If anyone can get the callback bits working, by all means send a pull request :) 20:43 < exch> I've tried reading through some examples, but my head almost exploded 20:43 -!- huin [~huin@91.85.185.181] has quit [Quit: leaving] 20:45 < skelterjohn> "ld warning: in /usr/local/lib/libglfw.a, file is not of required architecture" 20:45 < skelterjohn> after installing glfw for cocoa according to instructions that came with the source download :\ 20:45 < skelterjohn> i bet it's the 32bit/64bit thing 20:46 < exch> possibly :< 20:46 < skelterjohn> frickan macs 20:46 < skelterjohn> i've tried building go for 32bit, before, but that didn't work at all 20:52 -!- pharris [~Adium@rhgw.opentext.com] has quit [Quit: Leaving.] 20:54 -!- eikenberry [~jae@68.118.117.234] has joined #go-nuts 20:54 -!- imsplitbit [~imsplitbi@66.78.236.243] has joined #go-nuts 20:58 < skelterjohn> well, i got libglfw on my ubuntu machine, and exch's glfw built fine 20:58 < skelterjohn> but then i tried to install Go-OpenGL (so the examples could build) 20:58 < skelterjohn> and it isn't up to date with tip 20:59 < skelterjohn> but simplewindow runs 20:59 < skelterjohn> a little strangely... 20:59 < skelterjohn> when i expand the window, it appears to reuse whatever was in the vram already to fill it in 21:00 < skelterjohn> and i'm getting bits from various web pages all stuck together 21:00 < exch> O.o 21:01 < mpl> graphical obfuscation, new technique! :) 21:01 < exch> tryig it myself now. resizing works fine here 21:02 < skelterjohn> *shrug* i'm sure if i wanted to write a program, i'd clear the draw buffer before using it 21:02 -!- iocor [~sam@unaffiliated/iocor] has quit [Remote host closed the connection] 21:02 < exch> yes, that would generally be a good thing to do 21:04 -!- imsplitbit [~imsplitbi@66.78.236.243] has quit [Quit: Linkinus is updating...] 21:04 < exch> that would be a gl.Clear() call, but simplewindow uses no opengl stuff 21:04 -!- imsplitbit [~imsplitbi@66.78.236.243] has joined #go-nuts 21:06 < skelterjohn> right 21:10 -!- cafesofie [~cafesofie@ool-4a5a6ee5.dyn.optonline.net] has joined #go-nuts 21:11 -!- emjayess [~emjayess@pix1.i29.net] has quit [Quit: Leaving] 21:12 < skelterjohn> alright, got the fsaa example working 21:12 -!- crodjer [~rohanjain@203.110.240.205] has quit [Remote host closed the connection] 21:12 < exch> yay 21:12 < skelterjohn> and resizing that window has no strangeness :) 21:13 < skelterjohn> says "Context reports FSAA is unsupported" though 21:13 < skelterjohn> but it brought up a pair of spinning squares 21:13 < exch> if your vidcard doesnt support GL_MULTISAMPLE_ARB, it'll gracefully degrade to using no multisampling 21:13 < exch> so the program will still run 21:14 < skelterjohn> i am running this remotely over X on my mac 21:14 < skelterjohn> so no surprise there 21:14 < exch> multisampling should give the right quad smooth(er) edges if it's > 0 21:15 -!- snearch [~snearch@f053006112.adsl.alicedsl.de] has quit [Quit: Verlassend] 21:17 < skelterjohn> what does GLFW stand for? i can't find it on their site 21:18 < skelterjohn> presumably graphics library f____ window? 21:18 < skelterjohn> funky? 21:18 -!- hypertux [~hypertux@vps1.joelegasse.com] has quit [Ping timeout: 240 seconds] 21:19 -!- piranha [~piranha@5ED43A0B.cm-7-5a.dynamic.ziggo.nl] has quit [Quit: Computer has gone to sleep.] 21:19 -!- rlab [~Miranda@91.200.158.34] has quit [Quit: Miranda IM! Smaller, Faster, Easier. http://miranda-im.org] 21:19 -!- dreadlorde [~dreadlord@c-24-11-39-160.hsd1.mi.comcast.net] has quit [Ping timeout: 252 seconds] 21:19 < exch> no idea 21:20 < exch> presumably something like 'opengl framework' 21:20 < skelterjohn> exch: is it possible to use your glfw package to draw a bitmap to screen without using Go-OpenGL? 21:20 < skelterjohn> or any direct gl call? 21:20 < mpl> can anyone remind me what's the common idiom when assigning from map, to check that the assignment worked (ie the key was valid)? 21:20 < exch> As far as I can gather, the window specifically creates an OpenGL context 21:21 < exch> mpl: v, ok := mymap[key] 21:21 < skelterjohn> mpl: val, ok := m[k] 21:21 < mpl> ah, the ok thing, wasn't sure anymore. thanks. 21:21 -!- firwen [~firwen@gex01-1-78-234-55-225.fbx.proxad.net] has quit [Quit: Geek insindeĀ®] 21:21 < exch> skelterjohn: If you want to display an image, just load it up as a texture and slap it onto a simple quad 21:22 < mpl> a shame that isn't either in the map section or in the assignment section of the spec. 21:22 < skelterjohn> i'm familiar with working opengl, in general 21:22 < exch> glfw doesnt have anything to do with that. Probably a good idea to just look up some opengl tuts 21:22 -!- virtualsue [~chatzilla@nat/cisco/x-yckxhdgavbrkjrcx] has joined #go-nuts 21:22 < skelterjohn> just trying to see how much i can bypass for some simple things 21:22 < exch> k 21:22 < mpl> it's in indexes section 21:22 < mpl> always forget about that... 21:23 < skelterjohn> exch: I just feel like it's a good idea to limit the amount of cgo interaction, if possible 21:23 < skelterjohn> so a library that uses glfw to implement the interfaces in exp/draw would be great 21:23 -!- wrtp [~rog@92.17.67.64] has joined #go-nuts 21:23 < skelterjohn> though the image interface there has a bit to be desired 21:24 < exch> yea, would indeed be nice 21:25 < skelterjohn> i'll see if i can manage that 21:32 -!- yiyus [1242712427@je.je.je] has quit [Ping timeout: 276 seconds] 21:32 -!- Fish [~Fish@9fans.fr] has quit [Quit: So Long, and Thanks for All the Fish] 21:32 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has quit [Quit: Verlassend] 21:33 -!- yiyus [1242712427@je.je.je] has joined #go-nuts 21:33 -!- tobier [~tobier@c-1e9de055.712-1-64736c11.cust.bredbandsbolaget.se] has quit [Read error: Connection reset by peer] 21:35 -!- Venom_X [~pjacobs@99.20.147.171] has quit [Quit: Venom_X] 21:39 -!- hypertux [~hypertux@vps1.joelegasse.com] has joined #go-nuts 21:52 < matti__> hi guys, i have a newbie question 21:52 < exch> lo 21:52 < matti__> if i add an element to a List 21:52 < aiju> do you mean a slice? 21:52 < matti__> container/list 21:52 < matti__> and then i retrieve the element 21:53 < matti__> how can i print out the element? 21:53 < aiju> fmt.Println(x) 21:53 < matti__> right now im just getting addresses as output 21:53 < exch> fmt.Printf("%v\n" x) 21:54 < exch> %+v and %#v give progressively more verbose output 21:54 < krutcha> is the element a pointer? 21:54 < matti__> oh ok, let me try those 21:54 < matti__> the element is a string 21:54 -!- hopso [~hopso@a91-152-176-165.elisa-laajakaista.fi] has quit [Remote host closed the connection] 21:55 < aiju> could, by chance, you be using println? 21:55 < matti__> YES, i was using println 21:55 < aiju> you shouldn't use println 21:55 < matti__> is there a difference? 21:55 < matti__> ohh 21:55 < aiju> println is not official part of Go 21:55 < matti__> doh 21:55 < KirkMcDonald> Println doesn't have an 'f' in it. 21:55 -!- lazy1 [~miki@bzq-79-183-199-97.red.bezeqint.net] has left #go-nuts ["Ex-Chat"] 21:55 < aiju> println != fmt.Println 21:55 < KirkMcDonald> Ah. 21:55 < KirkMcDonald> Crazy builtins. 21:56 < aiju> println is, yeah, a crazy builtin not meant for production use 21:56 < matti__> oh darn... i had no idea 21:56 < KirkMcDonald> It still doesn't have an 'f' in it. :-) 21:56 < aiju> KirkMcDonald: haha 21:56 < aiju> matti__: println does fine for most stuff .. but it outputs just addresses for more complicated things 21:57 < matti__> aiju: that is good to know.. thank you for the tip 21:57 < zimsim> who added println, was that ken? 21:58 < aiju> zimsim: println is for debugging the library and such 21:58 -!- imsplitbit [~imsplitbi@66.78.236.243] has quit [Quit: Leaving...] 21:58 < zimsim> ah, right. 21:59 < zimsim> so its independent of any std funcs 21:59 < aiju> println also writes to standard error 21:59 < mpl> I'm too lazy to type anything else so I always use println everywhere for debugging :) 21:59 < aiju> mpl: me too ;P 22:00 < skelterjohn> if you just want to output a message to see if something reached a point in code, println is fine 22:01 < skelterjohn> but they say println may go one day 22:03 < wrtp> matti__: use elem.Value 22:03 < wrtp> e.g. list.Front().Value 22:03 < skelterjohn> exch: can glfw operate only on a single window at a time? 22:04 < zimsim> In tests using `log` library is pretty nice 22:04 < exch> skelterjohn: as far as I know, yea 22:05 * wrtp thinks that print and println should be part of the runtime package 22:05 -!- zimsim [~simon@87.72.77.195] has quit [Remote host closed the connection] 22:05 < exch> Is it even possible to get multiple hardware graphics contexts at the same time, in any lib? 22:05 < wrtp> that way people wouldn't be endlessly confused about what they're for, perhaps 22:06 -!- scyth [~scyth@rots.in.rs] has joined #go-nuts 22:06 < wrtp> exch: why not? 22:06 < wrtp> if you've got more than one graphics card 22:06 < exch> fair enough 22:06 < skelterjohn> i'm pretty sure that you can have more than one window open at a time, anyway :) 22:08 < skelterjohn> wrtp: it's nice to have a print function for which you don't have to explicitly add an import (and remove when you don't want to print anymore) 22:09 < wrtp> skelterjohn: why should print be special? 22:09 < skelterjohn> because people use one-off print statements for debugging 22:09 < wrtp> "it's nice be able to do X without an import" for any X 22:09 < skelterjohn> i said i find it convenient 22:11 < wrtp> of course it's convenient - something that means you don't have to use an import is more convenient than something that does, but that doesn't mean it should be used. 22:11 < skelterjohn> so don't use it 22:12 < wrtp> personally i think it's better to use log for things like that - that way i can delete the log import when i want to stop debugging and the compiler will tell me where my debug prints are 22:12 < skelterjohn> a number of languages have found it useful to have print functions be special cased 22:12 < scyth> I'm with sj here :) at least there should be -nostrict compile time option 22:12 < wrtp> the main reason for removing it is that newcomers find it confusing 22:12 < skelterjohn> no compiler warnings 22:12 < skelterjohn> if it's worth warning about, it's worth fixing 22:12 < wrtp> e.g. matti__ above: "oh darn... i had no idea" 22:14 < wrtp> it wouldn't be too hard to write a little tool which produced code that turned unused variables & imports into non-errors 22:14 -!- artefon [~thiago@189.59.135.192] has quit [Quit: bye] 22:15 < wrtp> skelterjohn: most languages that special-case print functions do it because of the variable argument syntax AFAIK 22:16 < skelterjohn> python *shrug* 22:16 < wrtp> skelterjohn: case in point 22:16 < skelterjohn> print format % args 22:16 < skelterjohn> ? 22:16 < wrtp> actually, i'm thinking of the % operator there 22:16 -!- tensorpudding [~user@99.32.63.28] has joined #go-nuts 22:16 < wrtp> yeah, print is a special function isn't it? 22:17 < skelterjohn> not with respect to % 22:17 < skelterjohn> x = format % args 22:17 < wrtp> no, but print itself is 22:17 < skelterjohn> works anywhere 22:17 < skelterjohn> right 22:17 < wrtp> yeah 22:17 < skelterjohn> or if you move to python 3, print(format % args) 22:17 < skelterjohn> though i don't believe python 3 is catching on 22:17 < wrtp> presumably in python 3, print is no longer special 22:17 < skelterjohn> you don't have to import anything to get it 22:18 < wrtp> that's the reason it's special - it's not really a good reason, except for low level stuff 22:18 < wrtp> particularly in go 22:19 < wrtp> problem is that people coming into the language think that it's the thing to use to print stuff 22:19 < skelterjohn> well 22:19 < skelterjohn> it *does* print stuff 22:19 < wrtp> yeah, but in a limited way 22:19 < wrtp> and to stderr only 22:20 < wrtp> so it's not the "thing to use" 22:21 < KirkMcDonald> print in Python 2 is a statement, not a "special function." 22:21 < KirkMcDonald> And yes, the % operator is a sprintf analog. 22:22 < KirkMcDonald> In newer Pythons, strings have a .format() method, too. 22:22 < KirkMcDonald> "{foo} {bar}".format(foo=12, bar=20) # for example 22:22 < wrtp> KirkMcDonald: i bet everyone still uses % though :-) 22:22 < nickbp> luv % 22:23 < KirkMcDonald> Or: "{} {}".format(1, 2) 22:23 -!- dfr|mac [~dfr|work@nat/google/x-ghoavuzfsuorlzil] has quit [Remote host closed the connection] 22:23 < KirkMcDonald> Or: "{1} {0}".format('a', 'b') == 'b a' 22:23 < skelterjohn> that sounds perfectly reasonable and not at all confusing 22:24 < KirkMcDonald> It is a rich tapestry. 22:24 -!- dfr|mac [~dfr|work@nat/google/x-mnaiohczekuemlqs] has joined #go-nuts 22:24 < KirkMcDonald> And I didn't even start getting into format specifiers. 22:25 -!- itrekkie [~itrekkie@ip72-200-105-157.tc.ph.cox.net] has joined #go-nuts 22:27 < aiju> oh god this reminds me of COMMON LISP format 22:27 < aiju> which does everything 22:27 < aiju> including english numbers, roman numerals, taking out the dog and pancakes 22:28 < aiju> it's probably turing complete 22:28 -!- dfr|mac [~dfr|work@nat/google/x-mnaiohczekuemlqs] has quit [Ping timeout: 240 seconds] 22:30 < skelterjohn> don't you ever find yourself not able to pluralize words on your own? 22:31 -!- Project-2501 [~Marvin@82.84.91.105] has joined #go-nuts 22:31 < wrtp> aiju: yeah CL format is horrible. but python's format doesn't look nearly as bad. 22:31 -!- Pie`` [~pie@kjal.demon.co.uk] has joined #go-nuts 22:31 -!- krutcha [~krutcha@remote.icron.com] has quit [Quit: Leaving] 22:32 -!- katakuna [pie@kjal.demon.co.uk] has quit [Ping timeout: 252 seconds] 22:34 -!- Project_2501 [~Marvin@82.84.88.129] has quit [Ping timeout: 240 seconds] 22:34 -!- skelterjohn [~jasmuth@lawn-gw.rutgers.edu] has quit [Quit: skelterjohn] 22:36 -!- Soultaker [~Soultaker@hell.student.utwente.nl] has quit [Read error: Connection reset by peer] 22:36 -!- Soultaker [~Soultaker@130.89.161.226] has joined #go-nuts 22:42 -!- imsplitbit [~imsplitbi@66.78.236.243] has joined #go-nuts 22:43 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts 22:44 -!- i__ [~none@unaffiliated/i--/x-3618442] has quit [Remote host closed the connection] 22:45 -!- marten [~marten@82-170-80-86.ip.telfort.nl] has quit [Quit: marten] 22:45 -!- i__ [~none@unaffiliated/i--/x-3618442] has joined #go-nuts 22:57 -!- mthreat [~chris@cpe-70-124-89-68.austin.res.rr.com] has quit [Quit: leaving] 23:03 -!- boscop [~boscop@g227114087.adsl.alicedsl.de] has joined #go-nuts 23:08 -!- wrtp [~rog@92.17.67.64] has quit [Quit: wrtp] 23:08 -!- dahankzter [~henrik@92-244-3-192.customers.ownit.se] has quit [Read error: Operation timed out] 23:09 -!- boscop_ [~boscop@g227141251.adsl.alicedsl.de] has joined #go-nuts 23:10 -!- scyth [~scyth@rots.in.rs] has quit [Read error: Operation timed out] 23:10 -!- scyth [~scyth@rots.in.rs] has joined #go-nuts 23:11 -!- boscop [~boscop@g227114087.adsl.alicedsl.de] has quit [Ping timeout: 246 seconds] 23:12 -!- dahankzter [~henrik@92-244-3-192.customers.ownit.se] has joined #go-nuts 23:18 -!- _xizor [~Xizor@aqu33-7-78-232-32-5.fbx.proxad.net] has quit [] 23:27 < Glasswalker> what does "Cannot Refer to Unexported Name" mean (referring to a function in a package I wrote). I didn't know I had to explicitly export things.. 23:27 < Glasswalker> (the odd part is this worked before, but I reorganized my folder structure, now it's throwing this... Doesn't error on the import, but throws that error instead) 23:28 < cbeck> Glasswalker: what's the name? 23:29 < exch> functions, types, fields, constants, etc all need to start with a capital letter if you want them to be public (eg available from an external package) 23:30 < Glasswalker> AHH 23:30 < Glasswalker> lmao that's a bit obscure, but good to know 23:30 < Glasswalker> :) 23:30 -!- jesusaurus [jesusaur@firefly.cat.pdx.edu] has left #go-nuts ["WeeChat 0.3.2"] 23:30 < Glasswalker> All of my "newSomething" functions (factories for my types) are lower case n 23:30 < exch> It's very elegant really. The name of a function not only tells you the name, but immediately also tells you it's access modifiers 23:31 < exch> you dont have to look for silly keywords like public, private, protected, and whatever other nonsense there is out there 23:33 -!- jgonzalez [~jgonzalez@173-14-137-134-NewEngland.hfc.comcastbusiness.net] has quit [Ping timeout: 276 seconds] 23:36 -!- vinisterx [~ryan@74-129-201-27.dhcp.insightbb.com] has quit [Ping timeout: 246 seconds] 23:43 < Glasswalker> Here's another one... So how do I convert an int value, into it's numerical string equivalent? 23:43 < Glasswalker> I tried string(myint) but that gives me a random character (assuming character value) 23:43 -!- lmoura [~lauromour@187.113.73.226] has quit [Read error: Connection reset by peer] 23:44 -!- Project-2501 [~Marvin@82.84.91.105] has quit [Ping timeout: 240 seconds] 23:45 < Glasswalker> nevermind, just found strconv package 23:45 -!- lmoura [~lauromour@186.215.206.130] has joined #go-nuts 23:45 -!- m4dh4tt3r [~Adium@c-69-181-223-245.hsd1.ca.comcast.net] has quit [Quit: Leaving.] 23:45 < exch> that converts strings to other types 23:45 < exch> fmt.Sprintf("%d", 1234) yields a string 23:50 -!- dfc [~dfc@eth59-167-133-99.static.internode.on.net] has joined #go-nuts 23:50 < Glasswalker> Actually strconf includes conversion into string from int 23:50 < Glasswalker> err conv 23:51 < Glasswalker> Another questin though, in this code: http://www.pastie.org/1784908 23:51 < Glasswalker> it appears to be blocking on the read from the server.Quit channel 23:52 < exch> try _, ok = <- server.Quit 23:52 -!- MX80 [~MX80@cust151.253.117.74.dsl.g3telecom.net] has joined #go-nuts 23:52 -!- daharon [~daharon@173-11-102-86-SFBA.hfc.comcastbusiness.net] has left #go-nuts ["Leaving"] 23:52 < exch> actually. not sure if that helps 23:52 < exch> it used to, but some of those mechanics have changed 23:52 < Glasswalker> Hmm 23:52 < exch> ok will tell you if the chan is closed or not 23:52 -!- dfc [~dfc@eth59-167-133-99.static.internode.on.net] has quit [Client Quit] 23:53 -!- dfc [~dfc@eth59-167-133-99.static.internode.on.net] has joined #go-nuts 23:53 < exch> the break is unneccesary btw 23:53 < Glasswalker> ? 23:53 < exch> *unnecessary 23:53 < Glasswalker> the break is meant to break out of the for 23:53 < Glasswalker> not the select 23:54 < exch> ah. not sure if it will. Chances are it only breaks out of the select. I should try 23:54 < Glasswalker> Hmm 23:54 < exch> you can do a labeled break. put 'loop:' just above the 'for {' bit and then use 'break loop' 23:54 < Glasswalker> so any thought on how I can achieve what I'm attempting to do there? (which is when signal received on the Quit channel, drop out of that for loop, otherwise execute code in default:) 23:55 -!- foocraft [~dsc@89.211.233.19] has quit [Ping timeout: 240 seconds] 23:56 -!- imsplitbit [~imsplitbi@66.78.236.243] has quit [Quit: Bye!] 23:56 -!- vsayer [~vivek@c-98-248-228-200.hsd1.ca.comcast.net] has quit [Read error: Connection reset by peer] 23:57 -!- Scorchin [~Scorchin@host109-158-112-82.range109-158.btcentralplus.com] has quit [Quit: Scorchin] --- Log closed Tue Apr 12 00:00:50 2011