Go Language Resources Go, golang, go... NOTE: This page ceased updating in October, 2012

--- Log opened Sat Sep 04 00:00:03 2010
--- Day changed Sat Sep 04 2010
00:00 -!- dj2 [~dj2@CPE001f5b35feb4-CM0014048e0344.cpe.net.cable.rogers.com] has
joined #go-nuts
00:09 -!- jcao219 [~jcao219@pool-173-74-61-111.dllstx.fios.verizon.net] has joined
#go-nuts
00:15 -!- jcao219 [~jcao219@pool-173-74-61-111.dllstx.fios.verizon.net] has quit
[Ping timeout: 265 seconds]
00:20 -!- slashus2 [~slashus2@74-137-24-74.dhcp.insightbb.com] has quit [Ping
timeout: 265 seconds]
00:23 < plexdev> http://is.gd/eTY6X by [Rob Pike] in go/doc/ -- tutorial:
regenerate HTML to pick up change to progs/file.go.
00:37 -!- dolo [~ruzz@210-84-26-83.dyn.iinet.net.au] has quit [Remote host closed
the connection]
00:38 -!- jmettraux [~jmettraux@PPPbm5391.kanagawa-ip.dti.ne.jp] has joined
#go-nuts
00:38 -!- napsy [~luka@212.235.174.112] has joined #go-nuts
00:38 -!- slashus2 [~slashus2@74-137-24-74.dhcp.insightbb.com] has joined #go-nuts
00:40 -!- antonyp [~antony@78.32.134.243] has joined #go-nuts
00:40 < plexdev> http://is.gd/eTZ7W by [Rob Pike] in 4 subdirs of go/test/
-- test: remove semiocolons.
00:40 < plexdev> http://is.gd/eTZ7Z by [Rob Pike] in go/test/ --
test/turing: refactor
00:43 -!- enherit [~enherit@cpe-98-149-170-48.socal.res.rr.com] has quit [Quit:
leaving]
00:47 -!- antonyp [~antony@78.32.134.243] has quit [Quit: antonyp]
00:55 -!- tgall_foo [~tgall@gentoo/developer/dr-who] has quit [Quit: Leaving]
00:58 -!- antonyp [~antony@78.32.134.243] has joined #go-nuts
01:06 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has joined
#go-nuts
01:14 -!- antonyp [~antony@78.32.134.243] has quit [Quit: antonyp]
01:26 -!- Bombe [~droden@weltgehirnmaschine.de] has quit [Excess Flood]
01:26 -!- Bombe [~droden@weltgehirnmaschine.de] has joined #go-nuts
01:31 -!- mattikus` [~mattikus@ip24-250-73-154.br.br.cox.net] has joined #go-nuts
01:36 -!- kanru [~kanru@61-228-152-114.dynamic.hinet.net] has joined #go-nuts
01:40 -!- ExtraSpice [~XtraSpice@88.118.32.225] has quit [Ping timeout: 240
seconds]
01:53 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has quit [Quit:
This computer has gone to sleep]
01:57 < nsf> :(
01:57 * nsf has discovered one more flaw in gocode's design
01:58 < nsf> it's really bad at handling anonymous structs and interfaces :)
01:58 < nsf> well, it's not noticable for autocompletion
01:58 < nsf> but for refactoring it sucks really
01:58 < nsf> :(
02:00 < nsf> need to do something about it, hm...
02:00 -!- ukai [~ukai@nat/google/x-cuukacfaypxnvoat] has quit [Ping timeout: 276
seconds]
02:02 -!- araujo [~araujo@gentoo/developer/araujo] has joined #go-nuts
02:02 -!- ukai [~ukai@nat/google/x-txzotrcoeatsimsn] has joined #go-nuts
02:04 -!- luruke [~luruke@151.53.53.142] has quit [Quit: Leaving]
02:05 < steven_t> :(
02:09 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.3]
02:22 -!- jturner [~james@command.huskycoding.com] has joined #go-nuts
02:25 -!- bjarneh [~bjarneh@96.89-10-27.nextgentel.com] has joined #go-nuts
02:39 -!- napsy [~luka@212.235.174.112] has quit [Ping timeout: 272 seconds]
02:42 -!- enherit [~enherit@71-83-188-75.dhcp.lnbh.ca.charter.com] has joined
#go-nuts
02:43 -!- steveno [~stevenoli@paludis/cheerleader/steveno] has quit [Quit:
steveno]
03:01 -!- gabriel9 [~gabriel9@93.157.192.28] has quit [Read error: Connection
reset by peer]
03:02 -!- rejb [~rejb@unaffiliated/rejb] has quit [Ping timeout: 276 seconds]
03:04 -!- mattikus` [~mattikus@ip24-250-73-154.br.br.cox.net] has quit [Quit:
Computer has gone to sleep.]
03:06 -!- mattikus` [~mattikus@ip24-250-73-154.br.br.cox.net] has joined #go-nuts
03:10 -!- gabriel9 [~gabriel9@93.157.192.28] has joined #go-nuts
03:16 -!- mattikus` [~mattikus@ip24-250-73-154.br.br.cox.net] has quit [Quit:
Leaving...]
03:16 -!- mattikus` [~mattikus@ip24-250-73-154.br.br.cox.net] has joined #go-nuts
03:17 -!- mattikus` [~mattikus@ip24-250-73-154.br.br.cox.net] has quit [Client
Quit]
03:17 -!- mattikus [~mattikus@ip24-250-73-154.br.br.cox.net] has joined #go-nuts
03:28 -!- sacho [~sacho@87-126-48-186.btc-net.bg] has joined #go-nuts
03:39 -!- napsy [~luka@212.235.174.112] has joined #go-nuts
03:40 -!- jmettraux [~jmettraux@PPPbm5391.kanagawa-ip.dti.ne.jp] has quit [Remote
host closed the connection]
03:44 -!- jcao219 [~jcao219@pool-173-74-61-111.dllstx.fios.verizon.net] has joined
#go-nuts
04:08 -!- niemeyer [~niemeyer@200-203-56-246.pltce701.dsl.brasiltelecom.net.br]
has quit [Ping timeout: 260 seconds]
04:15 -!- RobertLJ [~quassel@c-68-44-163-191.hsd1.nj.comcast.net] has joined
#go-nuts
04:17 -!- jcao219 [~jcao219@pool-173-74-61-111.dllstx.fios.verizon.net] has quit
[Quit: Konversation terminated!]
04:17 -!- jcao219 [~jcao219@pool-173-74-61-111.dllstx.fios.verizon.net] has joined
#go-nuts
04:44 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts
04:50 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.3]
04:57 -!- jcao219 [~jcao219@pool-173-74-61-111.dllstx.fios.verizon.net] has quit
[Ping timeout: 265 seconds]
04:58 -!- piyushmishra [~piyushmis@117.200.226.199] has quit [Ping timeout: 264
seconds]
04:58 -!- buffi [~buffi@94-247-169-107-static.serverhotell.net] has quit [Read
error: Operation timed out]
05:00 -!- buffi [~buffi@94-247-169-107-static.serverhotell.net] has joined
#go-nuts
05:01 -!- scm [justme@d071225.adsl.hansenet.de] has quit [Ping timeout: 252
seconds]
05:03 -!- scm [justme@d071145.adsl.hansenet.de] has joined #go-nuts
05:29 -!- jackman [~jackman@c-67-189-24-232.hsd1.or.comcast.net] has quit [Ping
timeout: 265 seconds]
05:30 -!- jackman [~jackman@c-67-189-24-232.hsd1.or.comcast.net] has joined
#go-nuts
05:39 -!- napsy [~luka@212.235.174.112] has quit [Ping timeout: 276 seconds]
05:47 -!- ExtraSpice [~XtraSpice@88.118.32.225] has joined #go-nuts
06:01 -!- ExtraSpice [~XtraSpice@88.118.32.225] has quit [Ping timeout: 240
seconds]
06:14 -!- RobertLJ [~quassel@c-68-44-163-191.hsd1.nj.comcast.net] has quit [Remote
host closed the connection]
06:15 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-177-247.clienti.tiscali.it] has
joined #go-nuts
06:19 -!- skejoe [~skejoe@188.114.142.231] has joined #go-nuts
06:23 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts
06:33 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts
06:39 -!- napsy [~luka@212.235.174.112] has joined #go-nuts
06:50 -!- plexdev [~plexdev@arthur.espians.com] has quit [Remote host closed the
connection]
06:55 -!- piyushmishra [~piyushmis@117.200.231.48] has joined #go-nuts
06:59 -!- plexdev [~plexdev@arthur.espians.com] has joined #go-nuts
07:00 -!- piyushmishra [~piyushmis@117.200.231.48] has quit [Ping timeout: 240
seconds]
07:05 -!- jcao219 [~Jimmy_Cao@pool-173-74-61-111.dllstx.fios.verizon.net] has
joined #go-nuts
07:07 -!- boscop_ [~boscop@g225234097.adsl.alicedsl.de] has left #go-nuts []
07:07 -!- boscop [~boscop@g225234097.adsl.alicedsl.de] has joined #go-nuts
07:14 -!- slashus2 [~slashus2@74-137-24-74.dhcp.insightbb.com] has quit [Quit:
slashus2]
07:15 -!- piyushmishra [~piyushmis@117.200.231.124] has joined #go-nuts
07:19 -!- jcao219 [~Jimmy_Cao@pool-173-74-61-111.dllstx.fios.verizon.net] has quit
[Quit: Leaving.]
07:29 -!- slashus2 [~slashus2@74-137-24-74.dhcp.insightbb.com] has joined #go-nuts
07:40 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.3]
07:55 -!- slashus2 [~slashus2@74-137-24-74.dhcp.insightbb.com] has quit [Quit:
slashus2]
08:12 -!- snearch [~snearch@f053001119.adsl.alicedsl.de] has joined #go-nuts
08:14 -!- jessta [~jessta@203-158-39-200.dyn.iinet.net.au] has quit [Ping timeout:
265 seconds]
08:15 -!- ucasano [~ucasano@host153-182-static.227-95-b.business.telecomitalia.it]
has joined #go-nuts
08:18 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts
08:22 -!- saschpe [~quassel@mgdb-4d0cfdcc.pool.mediaWays.net] has joined #go-nuts
08:30 -!- sacho [~sacho@87-126-48-186.btc-net.bg] has quit [Ping timeout: 252
seconds]
08:33 -!- saschpe [~quassel@mgdb-4d0cfdcc.pool.mediaWays.net] has quit [Remote
host closed the connection]
08:35 -!- jessta [~jessta@203.214.34.83] has joined #go-nuts
08:41 -!- sacho [~sacho@95-42-122-63.btc-net.bg] has joined #go-nuts
08:42 -!- virtualsue [~chatzilla@nat/cisco/x-ckvfimrpdjvqodli] has joined #go-nuts
08:44 -!- photron [~photron@port-92-201-96-92.dynamic.qsc.de] has joined #go-nuts
08:57 -!- idr [~idr@g225100054.adsl.alicedsl.de] has joined #go-nuts
09:00 -!- ukai [~ukai@nat/google/x-txzotrcoeatsimsn] has quit [Ping timeout: 240
seconds]
09:02 -!- mattikus [~mattikus@ip24-250-73-154.br.br.cox.net] has quit [Quit:
Computer has gone to sleep.]
09:04 -!- ukai [~ukai@nat/google/x-zhtlnzvtuguznfaa] has joined #go-nuts
09:06 -!- rlab [~Miranda@91.200.158.34] has quit [Read error: Connection reset by
peer]
09:15 -!- ronnyy [~quassel@p4FF1DC8A.dip.t-dialin.net] has joined #go-nuts
09:22 -!- idr [~idr@g225100054.adsl.alicedsl.de] has quit [Remote host closed the
connection]
09:29 -!- femtoo [~femto@95-89-248-51-dynip.superkabel.de] has joined #go-nuts
09:31 -!- saschpe [~quassel@mgdb-4d0cfdcc.pool.mediaWays.net] has joined #go-nuts
09:42 -!- snearch [~snearch@f053001119.adsl.alicedsl.de] has quit [Quit:
Verlassend]
09:46 -!- ikaros [~ikaros@188.107.60.149] has joined #go-nuts
09:50 -!- acts_as [~acts_as@208.236.105.27] has joined #go-nuts
10:36 -!- snearch [~snearch@f053001119.adsl.alicedsl.de] has joined #go-nuts
10:57 -!- General13372 [~support@71-84-244-55.dhcp.gldl.ca.charter.com] has joined
#go-nuts
11:01 -!- General1337 [~support@71-84-244-55.dhcp.gldl.ca.charter.com] has quit
[Ping timeout: 258 seconds]
11:15 -!- skejoe [~skejoe@188.114.142.231] has quit [Ping timeout: 265 seconds]
11:16 -!- sukuri [~travis@194.10.188.72.cfl.res.rr.com] has quit [Quit: Leaving.]
11:17 -!- skejoe [~skejoe@188.114.142.231] has joined #go-nuts
11:22 -!- ucasano [~ucasano@host153-182-static.227-95-b.business.telecomitalia.it]
has quit [Quit: ucasano]
11:26 -!- rejb [~rejb@unaffiliated/rejb] has joined #go-nuts
11:32 -!- DerHorst [~Horst@e176104208.adsl.alicedsl.de] has joined #go-nuts
11:33 -!- femtoo [~femto@95-89-248-51-dynip.superkabel.de] has quit [Ping timeout:
240 seconds]
11:34 -!- saschpe [~quassel@mgdb-4d0cfdcc.pool.mediaWays.net] has quit [Ping
timeout: 252 seconds]
11:36 -!- ronnyy [~quassel@p4FF1DC8A.dip.t-dialin.net] has quit [Remote host
closed the connection]
11:38 -!- royger [~royger@29.19.21.95.dynamic.jazztel.es] has joined #go-nuts
11:38 < royger> hi
11:38 -!- piyushmishra [~piyushmis@117.200.231.124] has quit [Ping timeout: 258
seconds]
11:41 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts
11:47 -!- luruke [~luruke@151.53.17.92] has joined #go-nuts
11:53 -!- virtualsue [~chatzilla@nat/cisco/x-ckvfimrpdjvqodli] has quit [Ping
timeout: 240 seconds]
11:58 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Read error:
Connection timed out]
11:59 -!- araujo [~araujo@gentoo/developer/araujo] has joined #go-nuts
12:06 -!- samferry [sam@atheme/member/samferry] has quit [Read error: Operation
timed out]
12:09 -!- samferry [sam@atheme/member/samferry] has joined #go-nuts
12:11 -!- napsy [~luka@212.235.174.112] has quit [Quit: Lost terminal]
12:13 -!- napsy [~luka@212.235.174.112] has joined #go-nuts
12:28 -!- piyushmishra [~piyushmis@117.200.224.241] has joined #go-nuts
12:29 -!- antonyp [~antony@78.32.134.243] has joined #go-nuts
12:30 -!- saschpe [~quassel@mgdb-4d0cfdcc.pool.mediaWays.net] has joined #go-nuts
12:33 < plexdev> http://is.gd/eUFFG by [Rob Pike] in go/src/pkg/fmt/ -- fmt:
delete erroneous sentence about return value for Sprint*.
12:42 -!- piyushmishra [~piyushmis@117.200.224.241] has quit [Ping timeout: 265
seconds]
12:44 -!- nmosf [fkhsd@121.245.73.179] has joined #go-nuts
12:44 -!- RobertLJ [~quassel@c-68-44-163-191.hsd1.nj.comcast.net] has joined
#go-nuts
12:45 -!- nmosf [fkhsd@121.245.73.179] has left #go-nuts []
12:48 < Soultaker> this code triggers an internal compiler error:
http://pastie.org/1137813
12:48 < Soultaker> that's probably a bug right?
12:49 < napsy> no
12:49 < napsy> your coude is faulty
12:49 < napsy> code?
12:49 < napsy> *
12:49 < Soultaker> yes, but I was thinking it should be rejected by the
compiler?
12:49 < Soultaker> or is that not the way things work with Go?
12:50 < napsy> well it was but the error message could be better
12:51 < Soultaker> well I don't know.  it depends on your development policy
I suppose.
12:51 < Soultaker> for GCC ICEs are always considered bugs in the compiler.
12:51 < Soultaker> but if Go devs don't consider those bugs then just forget
about it :)
12:56 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has quit [Ping
timeout: 265 seconds]
12:56 -!- piyushmishra [~piyushmis@117.200.227.68] has joined #go-nuts
13:02 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has joined #go-nuts
13:04 -!- royger [~royger@29.19.21.95.dynamic.jazztel.es] has quit [Quit: leaving]
13:09 -!- antonyp [~antony@78.32.134.243] has quit [Quit: antonyp]
13:20 -!- ucasano [~ucasano@host153-182-static.227-95-b.business.telecomitalia.it]
has joined #go-nuts
13:27 -!- DerHorst [~Horst@e176104208.adsl.alicedsl.de] has quit [Remote host
closed the connection]
13:28 -!- luruke [~luruke@151.53.17.92] has quit [Quit: This computer has gone to
sleep]
13:30 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Ping timeout: 240
seconds]
13:31 -!- araujo [~araujo@gentoo/developer/araujo] has joined #go-nuts
13:34 -!- bjarneh [~bjarneh@96.89-10-27.nextgentel.com] has quit [Ping timeout:
272 seconds]
13:50 < plexdev> http://is.gd/eUKQu by [Rob Pike] in go/src/pkg/netchan/ --
netchan: use acknowledgements on export send.
13:55 -!- ronnyy [~quassel@p4FF1DC8A.dip.t-dialin.net] has joined #go-nuts
14:00 -!- femtoo [~femto@95-89-248-51-dynip.superkabel.de] has joined #go-nuts
14:00 -!- snearch [~snearch@f053001119.adsl.alicedsl.de] has quit [Quit:
Verlassend]
14:05 -!- steveno [~stevenoli@c-24-131-221-195.hsd1.pa.comcast.net] has joined
#go-nuts
14:05 -!- steveno [~stevenoli@c-24-131-221-195.hsd1.pa.comcast.net] has quit
[Changing host]
14:05 -!- steveno [~stevenoli@paludis/cheerleader/steveno] has joined #go-nuts
14:13 -!- p4p4 [~P4p4@82.113.106.31] has joined #go-nuts
14:14 -!- saschpe [~quassel@mgdb-4d0cfdcc.pool.mediaWays.net] has quit [Remote
host closed the connection]
14:27 -!- samferry [sam@atheme/member/samferry] has quit [Read error: Connection
reset by peer]
14:29 -!- idr [~idr@g225100054.adsl.alicedsl.de] has joined #go-nuts
14:37 -!- kanru [~kanru@61-228-152-114.dynamic.hinet.net] has quit [Ping timeout:
260 seconds]
14:57 -!- steveno [~stevenoli@paludis/cheerleader/steveno] has quit [Quit:
steveno]
15:01 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has joined
#go-nuts
15:05 -!- jcao219 [~jcao219@pool-173-74-61-111.dllstx.fios.verizon.net] has joined
#go-nuts
15:32 -!- MizardX [~MizardX@unaffiliated/mizardx] has quit [Ping timeout: 260
seconds]
15:36 -!- piyushmishra1 [~piyushmis@117.200.224.30] has joined #go-nuts
15:36 -!- piyushmishra [~piyushmis@117.200.227.68] has quit [Ping timeout: 272
seconds]
15:40 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts
15:50 -!- luruke [~luruke@151.53.17.92] has joined #go-nuts
15:55 -!- steveno [~stevenoli@c-24-131-221-195.hsd1.pa.comcast.net] has joined
#go-nuts
15:55 -!- steveno [~stevenoli@c-24-131-221-195.hsd1.pa.comcast.net] has quit
[Changing host]
15:55 -!- steveno [~stevenoli@paludis/cheerleader/steveno] has joined #go-nuts
16:04 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has quit [Quit:
This computer has gone to sleep]
16:08 -!- steveno [~stevenoli@paludis/cheerleader/steveno] has quit [Quit:
steveno]
16:15 -!- ukai [~ukai@nat/google/x-zhtlnzvtuguznfaa] has quit [Ping timeout: 252
seconds]
16:18 -!- ukai [~ukai@nat/google/x-tsakdttbgmyplhew] has joined #go-nuts
16:18 -!- p4p4 [~P4p4@82.113.106.31] has quit [Read error: Connection timed out]
16:19 -!- p4p4 [~P4p4@82.113.106.31] has joined #go-nuts
16:22 -!- yiyus [~124271242@67.202.106.57] has quit [Ping timeout: 276 seconds]
16:22 -!- yiyus [~124271242@67.202.106.57] has joined #go-nuts
16:23 < steven_t> am i justified in being confused that theres 3 types:
values, pointers, and references (maps, slices, channels)?
16:24 < Namegduf> There's not three types.
16:24 < Namegduf> There are many more types.
16:24 < steven_t> now im very confused
16:24 < Namegduf> Values are not a type, too.
16:24 < steven_t> i meant at the top level
16:24 < steven_t> i dont know what word besides type to use
16:24 < steven_t> but i know type isnt the right word
16:24 < nbjoerg> type classes?
16:25 < jessta> steven_t: what is confusing about it?
16:26 < Namegduf> I would say "maybe", but you need to learn them anyway
because those are roughly the three types of type you can get.
16:26 < steven_t> i guess im confused by this:
http://golang.org/doc/go_lang_faq.html#references
16:26 < Namegduf> Even if the reference types did not exist in the language
itself, user types which contain pointers function the same way.
16:27 < steven_t> see, thats what confuses me
16:27 < Namegduf> They're effectively value types which contain pointers,
and thus refer to the same thing even when passed by value.
16:28 < steven_t> also im pretty confused on why you need to declare "type
ByteSlice []byte" so you can declare a method on a ByteSlice, rather than defining
a method on a []byte directly
16:28 < jessta> steven_t: it's about keeping types self contained in side a
package
16:28 < jessta> *inside
16:29 < Namegduf> Because []byte is not defined by your package, and thus
your package cannot define how it behaves.
16:29 < Namegduf> This would cause []byte to act inconsistently between code
which imported your package, and code which didn't, too, so it's both conceptually
and semantically ugly.
16:29 < jessta> steven_t: how do you work out which methods []byte has, if
any package could declare a method on it?
16:30 < steven_t> so wait, ByteSlice and []byte are thus distinct types in
Go, even though they can be converted between one another implicitly?
16:30 < Namegduf> Yes.
16:30 < steven_t> (assuming i typed it as such)
16:30 < Namegduf> But they CAN'T be converted implicitly.
16:30 < jessta> they can be converted explicitly
16:30 < Namegduf> You're right that they're distinct, though.
16:30 < steven_t> so if i have a []byte and i want to use it in a ByteSlice
method, i have to convert it manually first?
16:30 < Namegduf> Yes.
16:31 < steven_t> such as ByteSlice(mybytes).SomeMethod() ?
16:31 < jessta> []byte(yourByteSlice)
16:31 < Namegduf> Other way around, jessta.
16:31 < jessta> yeah, that
16:31 < steven_t> huh.
16:31 < jessta> steven_t: what languages do you come from?
16:31 < steven_t> so thats a way of protecting []byte to only work the way
the byte package wants?
16:31 < steven_t> jessta: so many
16:32 < Namegduf> []byte is a builtin, it doesn't have any methods defined
at all.
16:32 -!- snearch [~snearch@f053001119.adsl.alicedsl.de] has joined #go-nuts
16:32 < Namegduf> It's not so much a protection on []byte as on your type.
16:32 < steven_t> ruby, python, c, objc, lua, javascript, qbasic, lisp,
smalltalk
16:32 < Namegduf> Like, if your []byte always has a specific kind of
contents
16:32 < steven_t> probably more im sure, cant recall
16:33 < Namegduf> People have to explicitly convert the normal []byte to it,
which is asserting that whatever is in it is compatible with what your methods
expect.
16:33 < steven_t> huh.
16:33 < steven_t> ok
16:33 < jessta> steven_t: have you seen russ's blog post about Go types?
16:33 < steven_t> no but im very curious now
16:33 < Namegduf> In short, different types with different methods have
different expected and valid values; conversions have to be explicit as a result.
16:33 < steven_t> i read a blog post on Go declarations and that helped me a
ton
16:34 < Namegduf> It is not designed to be convenient to add convenience
functions to types from outside the package, and it would be unwise, I think, to
use a custom type to do so.
16:34 < Namegduf> I would suggest not using methods.
16:34 < steven_t> and i learned through experimentation that v := val is a
statement whereas var v = val is a declaration
16:34 < steven_t> because the former cannot be performed in the root body of
a package, at the earliest it can be done inside init()
16:34 < jessta> steven_t:
http://research.swtch.com/2009/11/go-data-structures.html
16:35 < steven_t> hmm
16:36 < steven_t> i want to convert my tictactoe game to Go now :)
16:37 < steven_t> btw, new() is somewhat analagous to calloc(), right?
16:37 < steven_t> returns a zeroed out pointer (GC'd though and automatic
size detection)
16:37 < steven_t> whereas make() has no equivalent in C, amiritie?
16:38 < steven_t> it just seems like for the 3 types that make() works with,
it should be split into its own individual creation functions..
16:38 < steven_t> like new_slice() or new_channel() etc
16:39 < steven_t> i dunno though, im way too new to Go to fully grasp it.
thats just my initial gut reaction
16:39 < exch> that would add 3 new builtin functions whereas make() can do
all of it
16:40 < jessta> steven_t: it's looking like the new()/make() thing is going
to change soon
16:40 < steven_t> well from where i come from, it makes sense to just have a
new() function and to let a specific type define an init() function of its own if
need be, which slice, map, and channel could thus do, making it not even any kind
of special-casd
16:41 < steven_t> *case
16:41 < steven_t> (where i come from in this case is ruby, not c++, mind
you)
16:41 < jessta> Go avoids having constructors intentionally
16:41 < steven_t> why for?
16:41 < jessta> because they are terrible things
16:41 < steven_t> that seems to be exactly what slices, maps, and channels
use make() for
16:41 < steven_t> and why they are different from new()
16:42 < jessta> people like to do crazy things in their constructors
16:42 < jessta> makes code hard to test etc.
16:42 < steven_t> i see
16:42 < steven_t> well perhaps itll take me a while to get used to that
16:42 < steven_t> but the rest of Go seems absolutely worth it
16:43 < steven_t> (its like C but not retarded!)
16:43 < jessta> it's convention to have a NewYourType() function for a type
16:43 < jessta> if it needs some kind of construction
16:43 < steven_t> which, let me guess, is some kind of initializer?
16:43 < steven_t> i see
16:44 < jessta> but it has to be explicitly called
16:44 < steven_t> right
16:44 < steven_t> still has me thinking "why not just an implicit
initializer"
16:44 < steven_t> but meh
16:44 < jessta> implicit initalizer is hard to avoid
16:45 < jessta> some people are crazy and put things like making database
connections in their constructors
16:45 < Namegduf> Go does not provide destructors
16:45 < Namegduf> Which kinda hampers half the use of constructors
16:46 < jessta> that too
16:46 < Namegduf> constructors are also totally unnecessary when you can use
package.NewType() as an idiom with no special magic, too.
16:46 < exch> I presonally wuoldn't mind automatic constructors and
destructors.  They are convenient.  But it would have to be both or none at all
16:46 < Namegduf> And it's also explicit that you're invoking special code
to construct the type.
16:47 < jessta> it's also convention to have the zero'ed value of a type be
a usable version of that type
16:47 < jessta> the vector.Vector is a great example of this
16:47 -!- gabriel9 [~gabriel9@93.157.192.28] has quit [Ping timeout: 240 seconds]
16:48 -!- gabriel9 [~gabriel9@93.157.192.28] has joined #go-nuts
16:48 < steven_t> well you dont really need a destructor in a GC language
16:48 < jessta> being able to call methods on a nil pointer is rad
16:48 < steven_t> you can?
16:48 < steven_t> like in objc?
16:49 < Namegduf> Yes, if the method is not going to be angry.
16:49 < steven_t> methods to nil are fine in Go and if return anything, just
return nil or equiv?
16:49 < Namegduf> They can return whatever they like.
16:50 < jessta> steven_t: the vector.Vector.Append() method checks for a nil
pointer and then allocates if that's the case
16:51 < jessta> so you can just do, var myvector vector.Vector; // which is
still a nil slice
16:51 -!- piyushmishra1 [~piyushmis@117.200.224.30] has quit [Ping timeout: 240
seconds]
16:51 < Namegduf> The only problem I see with constructors is that types you
can safely new() and types with their own factory functions look inconsistent.
16:52 < Namegduf> *without
16:52 < Namegduf> And you need to remember which are which.
16:52 < Namegduf> This is not too bad, though.
16:52 < Namegduf> "Does a NewType function exist in the type's package?"
answers it quite quickly.
16:56 -!- ExtraSpice [~XtraSpice@88.118.32.225] has joined #go-nuts
16:58 -!- eikenberry [~jae@ivanova.zhar.net] has quit [Quit: End of line.]
16:58 -!- snearch [~snearch@f053001119.adsl.alicedsl.de] has quit [Quit:
Verlassend]
17:05 -!- luruke [~luruke@151.53.17.92] has quit [Ping timeout: 272 seconds]
17:06 -!- piyushmishra [~piyushmis@117.200.226.207] has joined #go-nuts
17:08 -!- gabriel9 [~gabriel9@93.157.192.28] has quit [Read error: Connection
reset by peer]
17:10 -!- RobertLJ [~quassel@c-68-44-163-191.hsd1.nj.comcast.net] has quit [Remote
host closed the connection]
17:10 -!- yiyus [~124271242@67.202.106.57] has quit [Ping timeout: 258 seconds]
17:11 -!- yiyus [~124271242@67.202.106.57] has joined #go-nuts
17:18 -!- MizardX [MizardX@unaffiliated/mizardx] has joined #go-nuts
17:18 -!- crazy2be [~crazy2be@d205-206-130-118.abhsia.telus.net] has joined
#go-nuts
17:18 < crazy2be> How can i log a client's IP address when they request
something from my server?
17:20 -!- p4p4 [~P4p4@82.113.106.31] has quit [Read error: Connection timed out]
17:21 -!- p4p4 [~P4p4@82.113.106.31] has joined #go-nuts
17:21 -!- p4p4 [~P4p4@82.113.106.31] has quit [Client Quit]
17:23 -!- MizardX [MizardX@unaffiliated/mizardx] has quit [Read error: Connection
reset by peer]
17:24 -!- ucasano [~ucasano@host153-182-static.227-95-b.business.telecomitalia.it]
has quit [Quit: ucasano]
17:26 -!- DerHorst [~Horst@e176104208.adsl.alicedsl.de] has joined #go-nuts
17:29 -!- emmanueloga [~emmanuelo@host193.201-252-56.telecom.net.ar] has quit
[Ping timeout: 252 seconds]
17:31 < crazy2be> nvm, found it
17:32 -!- gabriel9 [~gabriel9@93.157.192.28] has joined #go-nuts
17:32 -!- crazy2be [~crazy2be@d205-206-130-118.abhsia.telus.net] has left #go-nuts
[]
17:33 -!- RobertLJ [~quassel@c-68-44-163-191.hsd1.nj.comcast.net] has joined
#go-nuts
17:35 -!- tvw [~tv@e176002005.adsl.alicedsl.de] has joined #go-nuts
17:37 -!- steveno [~stevenoli@c-24-131-221-195.hsd1.pa.comcast.net] has joined
#go-nuts
17:37 -!- steveno [~stevenoli@c-24-131-221-195.hsd1.pa.comcast.net] has quit
[Changing host]
17:37 -!- steveno [~stevenoli@paludis/cheerleader/steveno] has joined #go-nuts
17:41 -!- jturner [~james@command.huskycoding.com] has left #go-nuts []
17:45 -!- DerHorst [~Horst@e176104208.adsl.alicedsl.de] has quit [Remote host
closed the connection]
17:47 -!- steveno [~stevenoli@paludis/cheerleader/steveno] has quit [Quit:
steveno]
17:51 -!- ExtraSpice [~XtraSpice@88.118.32.225] has quit [Remote host closed the
connection]
17:53 -!- ronnyy [~quassel@p4FF1DC8A.dip.t-dialin.net] has quit [Remote host
closed the connection]
17:58 -!- slashus2 [~slashus2@74-137-24-74.dhcp.insightbb.com] has joined #go-nuts
18:07 -!- gabriel9 [~gabriel9@93.157.192.28] has quit [Remote host closed the
connection]
18:16 -!- jcao219_ [~jcao219@pool-173-74-61-111.dllstx.fios.verizon.net] has
joined #go-nuts
18:16 -!- jcao219 [~jcao219@pool-173-74-61-111.dllstx.fios.verizon.net] has quit
[Read error: Connection reset by peer]
18:23 -!- napsy [~luka@212.235.174.112] has quit [Ping timeout: 276 seconds]
18:24 -!- napsy [~luka@212.235.174.112] has joined #go-nuts
18:26 < steven_t> is there some way to test if a variable responds to a
method?
18:48 -!- femtoo [~femto@95-89-248-51-dynip.superkabel.de] has quit [Quit:
Leaving]
18:55 -!- virtualsue [~chatzilla@nat/cisco/x-lapfhzzarcuvutfj] has joined #go-nuts
18:58 -!- gabriel9 [~gabriel9@93.157.192.28] has joined #go-nuts
18:58 -!- MX80 [~MX80@cust253.253.117.74.dsl.g3telecom.net] has quit [Read error:
Connection reset by peer]
19:04 -!- antonyp [~antony@78.32.134.243] has joined #go-nuts
19:07 -!- MX80 [~MX80@cust253.253.117.74.dsl.g3telecom.net] has joined #go-nuts
19:07 < cbeck> steven_t: Sort of, but not as simply as ruby or whatnot, what
you can do is a type assertion: var2, ok := var.(TYPE)
19:08 < cbeck> Where TYPE can be an interface
19:09 < cbeck> http://golang.org/doc/go_spec.html#Type_assertions
19:14 -!- antonyp [~antony@78.32.134.243] has left #go-nuts []
19:17 -!- Guest46885 [~irc@209.17.191.58] has quit [Remote host closed the
connection]
19:18 -!- aguai [~aguai@li74-37.members.linode.com] has quit [Disconnected by
services]
19:26 -!- irc [~irc@209.17.191.58] has joined #go-nuts
19:40 -!- aguai [~aguai@li74-37.members.linode.com] has joined #go-nuts
19:42 < steven_t> ooooh
19:42 < steven_t> thanks cbeck
19:43 < steven_t> is there such a thing as a golang interpreter for the CLI?
19:44 < napsy> yes and no
19:44 < steven_t> great
19:44 < steven_t> thanks
19:45 < napsy> there is a very small interpreter included in the standard
packages
19:45 < napsy> but not in a form of a CLI, you cen construct the CLI
yourself
19:45 < napsy> can*
19:45 < steven_t> whoa
19:45 < steven_t> so theres an interpreter?  but its not an interpreted
language
19:46 < steven_t> so how in the heck does that work
19:46 < napsy> it's not and the interpreter is very limited for now
19:46 < steven_t> great
19:46 < napsy> steven_t: http://golang.org/pkg/exp/eval/
19:46 < steven_t> hi
19:51 -!- aruiz_ [~aruiz@94-192-234-22.zone6.bethere.co.uk] has joined #go-nuts
19:54 -!- terrex [~terrex@84.122.67.111.dyn.user.ono.com] has joined #go-nuts
19:59 -!- lmoura_ [~lauromour@187.112.10.168] has quit [Quit: Leaving]
20:01 -!- virtualsue [~chatzilla@nat/cisco/x-lapfhzzarcuvutfj] has quit [Ping
timeout: 272 seconds]
20:07 -!- virtualsue [~chatzilla@93-97-62-8.zone5.bethere.co.uk] has joined
#go-nuts
20:10 -!- ukai [~ukai@nat/google/x-tsakdttbgmyplhew] has quit [Ping timeout: 265
seconds]
20:11 -!- ukai [~ukai@nat/google/x-jqyklrizlwfkyzzh] has joined #go-nuts
20:12 -!- piyushmishra [~piyushmis@117.200.226.207] has quit [Ping timeout: 276
seconds]
20:24 -!- Sseur [~david@mic92-12-88-161-108-143.fbx.proxad.net] has joined
#go-nuts
20:27 -!- idr [~idr@g225100054.adsl.alicedsl.de] has quit [Remote host closed the
connection]
20:28 < Sseur> Hellothere, i would like to know how can i made a modules
architecture (the main program loads the modules) in go, in java , i use the
serviceloader that find the modules to be loaded (modules are just classes that
implements an interface).  So, the question is, how can i make a program, that can
load modules in a given directory ?
20:29 -!- l00t [~i-i3id3r_@189.105.2.11] has quit [Ping timeout: 240 seconds]
20:30 < steven_t> is it possible for there to be a bridge from go to c?
20:30 < napsy> Sseur: the linker will search for modules using your import
path
20:30 < napsy> steven_t: yes it is
20:30 -!- l00t [~i-i3id3r_@189.105.85.75] has joined #go-nuts
20:31 < Sseur> napsy, yes, but in this case, you have to recompile your
soft, the idea is to have the main program scanning a directory, then load any
plugins it founds at runtime (compiled modules)
20:32 < napsy> oh
20:32 < napsy> I don't think that's possible at this moment
20:32 < Sseur> oh i see :(
20:32 < napsy> only if you use shared objects
20:32 < Sseur> maybe i should move to a IPC model ?
20:33 < napsy> I don't know
20:33 < Sseur> like having the main program spawning the modules
20:33 -!- jcao219 [~jcao219@pool-173-74-61-111.dllstx.fios.verizon.net] has quit
[Ping timeout: 265 seconds]
20:33 < Sseur> thanks anyway napsy :)
20:33 < napsy> you're welcome
20:36 < Sseur> so basically, the idea can be, the main program forkexecs the
modules, and then by memory pipes, it send object adresses to the modules to be
processed, does someone know if it is possible ?
20:36 < napsy> what kind of modules do you have in mind?
20:37 < napsy> modules as shared objects (.so files) or executables?
20:38 < Sseur> napsy, that's a good question, i don't know a lot about IPC
20:38 < exch> IPC over unix pipes is the cleanest approach to this I think.
Use protocol buffers or the gob package thingy to serialize the/send message back
and forth
20:38 -!- RobertLJ [~quassel@c-68-44-163-191.hsd1.nj.comcast.net] has quit [Remote
host closed the connection]
20:39 < exch> With the IPC approach, the modules will be independant
executables that simply connect to a common pipe/port for communication
20:40 -!- aruiz_ [~aruiz@94-192-234-22.zone6.bethere.co.uk] has quit [Quit:
Ex-Chat]
20:40 < Sseur> exch, hmm..  i would like the modules to call methods from
the main program
20:41 < napsy> then you need a RPC system
20:41 < Sseur> so , i was thinking of shared memory IPC ?
20:43 < Sseur> hmm
20:44 < Sseur> can be, but i would like to do something more "lightweight"
20:45 < Sseur> i saw that google chrome follows the IPC model, when you add
a module, it spawn a process (the module in fact) and then communicate with it by
pipes (i think, correct me if i'm wrong)
20:51 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has joined
#go-nuts
20:51 < exch> it does
20:53 < Sseur> exch thats very intersting, do you know if chrome shares
memory with the modules ?
20:53 < exch> I doubt it.  The whole point is to isolate the modules from
the main process for security and stability reasons
20:55 < Sseur> hmm i see, i will dig on this
20:56 -!- skejoe [~skejoe@188.114.142.231] has quit [Quit: Lost terminal]
20:57 -!- progettino [~Marvin@dynamic-adsl-94-36-177-247.clienti.tiscali.it] has
quit [Ping timeout: 265 seconds]
21:01 -!- nomo [~nomo@93-141-93-236.adsl.net.t-com.hr] has joined #go-nuts
21:06 -!- thomas_b [~thomasb@cm-84.215.47.51.getinternet.no] has quit [Quit:
leaving]
21:09 -!- mattikus [~mattikus@ip24-250-73-154.br.br.cox.net] has joined #go-nuts
21:10 -!- thomas_b [~thomasb@cm-84.215.47.51.getinternet.no] has joined #go-nuts
21:10 < steven_t> im quite confused on some things regarding pointers, which
i havent run across yet in any of the guides
21:10 < steven_t> for instance, i noticed that you access a member of a
struct pointer such as s.member rather than s->member as you would in C
21:11 < steven_t> however, what if you have a plain struct, rather than a
struct pointer?  do you still do s.member?
21:12 < napsy> there's no -> operator in go
21:12 < exch> . will serve you in any situation
21:15 -!- nomo [~nomo@93-141-93-236.adsl.net.t-com.hr] has quit [Quit: Colloquy
for iPhone - http://colloquy.mobi]
21:17 < steven_t> ok
21:17 < steven_t> i have to say, im pretty frustrated by the documentatin on
golang.org
21:17 < steven_t> its using several definitions that are never really
defined, and sometimes loosely
21:18 < steven_t> like "type" or "interface"
21:18 < steven_t> its making it difficult to understand comprehensively and
thoroughly
21:18 < steven_t> is there an official book on Go? that might be easier to
understand
21:21 -!- duaneb [80ef2874@gateway/web/freenode/ip.128.239.40.116] has joined
#go-nuts
21:23 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-177-247.clienti.tiscali.it] has
joined #go-nuts
21:24 < steven_t> ok i think i understand the pointer vs value concept now..
21:24 < exch> I believe there is only one book some third party person
wrote/published.  Not sure how good it is
21:24 -!- Sseur [~david@mic92-12-88-161-108-143.fbx.proxad.net] has quit [Ping
timeout: 276 seconds]
21:25 < duaneb> soooo is there an ffi aside from cgo planned for go?
21:25 < exch> Considering that Go is still in active development, you'll
probably won't find a whole lot of concrete documentation apart from the
packagesource and it's docs
21:25 < steven_t> in C you could create a local var by doing mystruct_t st;
and then you could pass a mystruct_t* to some functions via &st if you wanted.
21:25 < steven_t> but in Go you dont do that because then it will *copy the
entire struct every times its passed anywhere* which could be inefficient
21:26 < steven_t> so in Go the main reason to pass a pointer is because
copying a pointer value is pretty efficient compared to copying an entire struct
or value of some kind
21:26 < steven_t> plus, naturally, if you pass a raw value, you need to
return an edited one if you want to edit it.  whereas with a pointer, you can
modify the contents and not need to return it
21:26 < duaneb> sure
21:26 < nsf> steven_t: I don't understand you
21:27 < nsf> pointers in Go are pretty much the same as in C
21:27 < duaneb> but wasn't the option of returning tuples supposed to
obsolete pass-by-pointer for modifications?
21:27 < nsf> there is just no pointer arithmetic
21:27 < nsf> and few other safety things
21:27 < steven_t> which is precisely why methods on a type usually use
*sometype rather than sometype, since it still acts as its passing it to a
function as an implicit first param
21:28 < steven_t> nsf: afaik pointers arent *exactly* the same as in C.. but
i forgot the nuance
21:28 < exch> yes.  Is that a problem?
21:28 < nsf> steven_t: they are
21:28 < steven_t> im just trying to understand, thats all
21:29 < nsf> pointer is a variable with an address of a memory location in
it
21:29 < steven_t> so then it does in fact make sense to create a local copy
of my struct and then pass &st to a function if it takes a ptr to that struct
21:29 < steven_t> but its uglier to type mystruct{} than new(mystruct)
21:29 < nsf> why do you want to copy something?
21:30 < steven_t> i do not
21:30 * steven_t sighs
21:30 < nsf> :)
21:30 < steven_t> bbl, reading
21:30 < nsf> I mean I don't understand your statement
21:30 < nsf> that in C you can create local var an pass an address of it to
a function
21:30 < nsf> you can do that in Go too
21:30 < steven_t> yes i just said that
21:31 < steven_t> im having a really tough time communicationg right now
please give me a break
21:31 < nsf> with exception that it will be allocated on the heap
21:31 < nsf> instead of on a stack
21:31 < steven_t> is anything on Go created on the stack ever?
21:31 < nsf> yes
21:31 < steven_t> oh cool
21:31 < nsf> but if you're trying to pass a pointer to that value somewhere
21:31 < nsf> it will be moved to the heap
21:31 < steven_t> then it will be moved to the heap for GC right?
21:31 < steven_t> awesome
21:31 < nsf> because of the safety issues
21:32 < steven_t> glad i understand even more
21:35 < nsf> unlike C, Go just tries very hard to prevent siutations where
you have an invalid pointer and therefore prevents memory corruptions
21:35 < nsf> unless you're using package 'unsafe'
21:36 -!- peterdn [~peterdn@host81-151-238-51.range81-151.btcentralplus.com] has
quit [Ping timeout: 265 seconds]
21:37 -!- mattikus [~mattikus@ip24-250-73-154.br.br.cox.net] has quit [Quit:
Computer has gone to sleep.]
21:38 -!- peterdn [~peterdn@host81-151-238-51.range81-151.btcentralplus.com] has
joined #go-nuts
21:38 < steven_t> when a function doesnt return a value, instead of writing
func name(arg type) void; do we just write func name(arg type); ?
21:39 < duaneb> just submitted
http://code.google.com/p/go/issues/detail?id=1081
21:40 < nsf> yes
21:44 -!- duaneb [80ef2874@gateway/web/freenode/ip.128.239.40.116] has quit [Quit:
Page closed]
21:55 -!- gabriel9 [~gabriel9@93.157.192.28] has quit [Read error: Connection
reset by peer]
21:56 -!- tvw [~tv@e176002005.adsl.alicedsl.de] has quit [Remote host closed the
connection]
21:56 -!- terrex [~terrex@84.122.67.111.dyn.user.ono.com] has quit [Quit:
Leaving.]
21:57 < steven_t> oh
21:57 < steven_t> that explains it
21:58 < KirkMcDonald> "void" isn't even a keyword in Go.
22:13 -!- boscop_ [~boscop@g225223243.adsl.alicedsl.de] has joined #go-nuts
22:13 -!- boscop [~boscop@g225234097.adsl.alicedsl.de] has quit [Ping timeout: 265
seconds]
22:23 -!- ikaros [~ikaros@188.107.60.149] has quit [Quit: Leave the magic to
Houdini]
22:34 -!- photron [~photron@port-92-201-96-92.dynamic.qsc.de] has quit [Ping
timeout: 252 seconds]
22:39 -!- mattikus [~mattikus@ip24-250-73-154.br.br.cox.net] has joined #go-nuts
22:41 -!- bjarneh [~bjarneh@96.89-10-27.nextgentel.com] has joined #go-nuts
22:42 -!- bjarneh [~bjarneh@96.89-10-27.nextgentel.com] has left #go-nuts []
22:43 -!- slashus2 [~slashus2@74-137-24-74.dhcp.insightbb.com] has quit [Quit:
slashus2]
22:45 -!- tensorpudding [~user@99.23.122.78] has quit [Ping timeout: 272 seconds]
22:51 -!- slashus2 [~slashus2@74-137-24-74.dhcp.insightbb.com] has joined #go-nuts
22:58 -!- General1337 [~support@71-84-244-55.dhcp.gldl.ca.charter.com] has joined
#go-nuts
22:58 -!- rlab [~Miranda@91.200.158.34] has quit [Quit: Miranda IM! Smaller,
Faster, Easier.  http://miranda-im.org]
23:01 -!- General13372 [~support@71-84-244-55.dhcp.gldl.ca.charter.com] has quit
[Ping timeout: 240 seconds]
23:05 -!- slashus2 [~slashus2@74-137-24-74.dhcp.insightbb.com] has quit [Quit:
slashus2]
23:12 < steven_t> hey dude.  i remember you from when i could tolerate
python
23:30 -!- mattikus [~mattikus@ip24-250-73-154.br.br.cox.net] has quit [Quit:
Computer has gone to sleep.]
23:31 < nsf> http://pastie.org/1138687
23:31 < nsf> :D
23:31 * nsf hardly understands what his code means
23:31 -!- napsy [~luka@212.235.174.112] has quit [Ping timeout: 272 seconds]
23:31 < nsf> although now it works correctly
23:32 < nsf> the next task is to make it beautiful and simple :)
23:33 < steven_t> range is a keyword of Go, right?
23:33 < steven_t> is there a way to make your own types work with range as
well?
23:35 < nsf> yes
23:35 < nsf> no
23:35 < steven_t> gr
23:35 < exch> your type has to have a method that returns something usable
with range.  Either that, or expose a field.  You can't make the type itself
usable with range, unless it's an alias for a rangeable type.  like: Type Foo
[]int;
23:35 < steven_t> compared to Ruby, Go has way too many special cases
23:35 < steven_t> like range
23:35 < nsf> it's just a syntax sugar issue
23:35 < steven_t> yeah
23:35 * steven_t sighs
23:36 < steven_t> i want to love Go, i really do
23:36 < exch> tis not for everyone :p Nobody will think less of you if you
don't like it
23:37 -!- virtualsue [~chatzilla@93-97-62-8.zone5.bethere.co.uk] has quit [Ping
timeout: 272 seconds]
23:38 -!- luruke [~luruke@151.53.17.92] has joined #go-nuts
23:39 < steven_t> thats the thing..  i DO like a lot of parts of it
23:39 < steven_t> i certainly like it more than C
23:40 < steven_t> and for the speed and performance benefits and the
multithreading capabilities, it definitely beats python or ruby
23:40 < steven_t> im just a little sad that its not as clean as i would
prefer, and as i think ruby to be
23:40 < steven_t> but despite that its still worth learning and using
23:41 < nsf> i think it's very clean
23:41 < steven_t> i hope to believe that over time too.
23:41 < steven_t> initially i thought ruby was horribly ugly.  but after
reading the pickaxe book for 3 weeks, i completely changed my mind and decided it
was the cleanest language i ever learned
23:41 < steven_t> (granted thats to say nothing of ruby's stdlib)
23:42 < steven_t> (which is really clean generally but has a couple warts)
23:42 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has quit [Quit:
Verlassend]
23:42 < steven_t> so i hope to feel this way about Go adfter i learn it
thoroughly
23:42 < steven_t> its just harder to learn than i guessed it would be, and i
think thats due to the documentation
23:43 < nsf> you should try to learn D 2.0
23:43 < nsf> it has no any sensible documentation at all
23:43 < nsf> except the D book, which costs money
23:43 < nsf> and Go has very nice language spec
23:43 < nsf> which is complete and correct
23:44 < nsf> so..  I don't think that there is a problem with documention in
Go
23:44 < nsf> maybe it is a bit more for people who come frm C/C++ background
23:44 < nsf> I don't know
23:48 < steven_t> im fine with paying money for a book
23:48 < steven_t> i learned Ruby via the pickaxe book, remember?  ;)
23:48 < steven_t> i come from plenty of backgrounds
23:48 < steven_t> but many of the Go guides seem written in vague confusing
ways slightly
23:48 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has quit [Quit:
This computer has gone to sleep]
23:53 < KirkMcDonald> steven_t: Read the spec.
--- Log closed Sun Sep 05 00:00:05 2010