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

--- Log opened Sat Apr 10 00:00:42 2010
00:01 -!- nettok_ [~netto@200.119.151.153] has joined #go-nuts
00:02 -!- millertimek1a2m3 [~adam@rrcs-67-79-54-130.sw.biz.rr.com] has joined
#go-nuts
00:05 -!- nettok [~netto@200.119.151.153] has quit [Ping timeout: 259 seconds]
00:07 -!- nettok__ [~netto@200.119.151.153] has joined #go-nuts
00:10 -!- nettok_ [~netto@200.119.151.153] has quit [Ping timeout: 264 seconds]
00:16 -!- nettok__ [~netto@200.119.151.153] has quit [Ping timeout: 246 seconds]
00:34 -!- nettok__ [~netto@200.119.151.153] has joined #go-nuts
00:38 -!- millertimek1a2m3 [~adam@rrcs-67-79-54-130.sw.biz.rr.com] has quit [Ping
timeout: 276 seconds]
00:40 -!- tgall_foo [~tgall@gentoo/developer/dr-who] has joined #go-nuts
00:44 -!- iant [~iant@67.218.102.148] has quit [Ping timeout: 248 seconds]
00:45 -!- carllerche [~carllerch@enginey-9.border1.sfo002.pnap.net] has quit
[Quit: carllerche]
00:52 -!- Paradox924X [~Paradox92@vaserv/irc/founder] has joined #go-nuts
00:57 -!- millertimek1a2m3 [~adam@rrcs-67-79-54-130.sw.biz.rr.com] has joined
#go-nuts
01:01 -!- surma [~surma@77-21-87-217-dynip.superkabel.de] has quit [Quit:
Leaving.]
01:09 -!- yaroslav [~yaroslav@ppp85-140-190-157.pppoe.mtu-net.ru] has quit [Quit:
yaroslav]
01:13 -!- nettok_ [~netto@200.119.151.153] has joined #go-nuts
01:17 -!- nettok__ [~netto@200.119.151.153] has quit [Ping timeout: 276 seconds]
01:26 -!- b00m_chef [~watr@128.189.72.162] has joined #go-nuts
01:29 -!- Nitro [~nitro@208.92.17.21] has joined #go-nuts
01:42 -!- NinoScript [~Adium@190.163.108.49] has joined #go-nuts
01:42 -!- NinoScript [~Adium@190.163.108.49] has left #go-nuts []
01:43 -!- timepilot [~timepilot@c-24-1-94-64.hsd1.il.comcast.net] has joined
#go-nuts
01:48 -!- logand [~user@g226048225.adsl.alicedsl.de] has quit [Ping timeout: 252
seconds]
01:57 -!- nettok_ [~netto@200.119.151.153] has quit [Ping timeout: 260 seconds]
02:03 < plexdev> http://is.gd/bmq3h by [Michael Hoisie] in
go/src/pkg/strings/ -- strings: add IndexRune, Trim, TrimLeft, TrimRight, and the
generic equivalents TrimFunc, TrimLeftFunc, TrimRightFunc
02:13 -!- Nitro [~nitro@208.92.17.21] has quit [Quit: Leaving.]
02:16 -!- nettok_ [~netto@200.119.151.153] has joined #go-nuts
02:19 -!- zyichi [~zyichi@125.39.108.16] has joined #go-nuts
02:22 -!- nettok__ [~netto@200.119.151.153] has joined #go-nuts
02:26 -!- nettok_ [~netto@200.119.151.153] has quit [Ping timeout: 264 seconds]
02:26 -!- aho [~nya@f051147102.adsl.alicedsl.de] has quit [Quit:
EXEC_over.METHOD_SUBLIMATION]
02:28 -!- Nitro [~nitro@208.92.17.21] has joined #go-nuts
02:29 -!- timepilot [~timepilot@c-24-1-94-64.hsd1.il.comcast.net] has quit [Quit:
timepilot]
02:40 -!- bjarneh [~bjarneh@227.80-203-30.nextgentel.com] has joined #go-nuts
02:51 -!- jA_cOp [~yakobu@unaffiliated/ja-cop/x-9478493] has quit [Read error:
Connection reset by peer]
03:02 -!- nettok_ [~netto@200.119.151.153] has joined #go-nuts
03:05 -!- nettok__ [~netto@200.119.151.153] has quit [Ping timeout: 248 seconds]
03:06 -!- kimelto [~kimelto@sd-13453.dedibox.fr] has joined #go-nuts
03:14 -!- marsu [~marsu@50.96.202-77.rev.gaoland.net] has quit [Ping timeout: 252
seconds]
03:16 -!- andrewh [~andrewh@85.92.214.131] has quit [Ping timeout: 246 seconds]
03:17 -!- NinoScript [~Adium@190.163.108.49] has joined #go-nuts
03:21 -!- Nitro [~nitro@208.92.17.21] has quit [Quit: Leaving.]
03:24 -!- nettok__ [~netto@200.119.151.153] has joined #go-nuts
03:28 -!- Venom_X [~pjacobs@74.61.90.217] has joined #go-nuts
03:28 -!- nettok_ [~netto@200.119.151.153] has quit [Ping timeout: 260 seconds]
03:28 -!- Venom_X [~pjacobs@74.61.90.217] has quit [Client Quit]
03:37 -!- Eridius [~kevin@unaffiliated/eridius] has quit [Ping timeout: 252
seconds]
03:47 -!- nettok_ [~netto@200.119.151.153] has joined #go-nuts
03:50 -!- nettok__ [~netto@200.119.151.153] has quit [Ping timeout: 252 seconds]
03:52 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has joined
#go-nuts
03:58 -!- thaostra [~thaostra@pool-173-76-244-108.bstnma.fios.verizon.net] has
joined #go-nuts
03:59 -!- thaostra [~thaostra@pool-173-76-244-108.bstnma.fios.verizon.net] has
left #go-nuts []
04:01 -!- nettok__ [~netto@200.119.151.153] has joined #go-nuts
04:05 -!- nettok_ [~netto@200.119.151.153] has quit [Ping timeout: 276 seconds]
04:15 < kimelto> what could cause fmt to not be found when GOROOT GOOS and
GOARCH are correctly set?
04:17 -!- iant [~iant@adsl-71-133-8-30.dsl.pltn13.pacbell.net] has joined #go-nuts
04:17 -!- mode/#go-nuts [+v iant] by ChanServ
04:17 < smw> kimelto: can you paste your code?
04:18 < smw> kimelto: also paste the output of env | grep "^GO"
04:28 -!- b00m_chef [~watr@128.189.72.162] has quit [Ping timeout: 258 seconds]
04:30 -!- bjarneh [~bjarneh@227.80-203-30.nextgentel.com] has quit [Quit: leaving]
04:32 -!- nettok_ [~netto@200.119.151.153] has joined #go-nuts
04:35 -!- nettok__ [~netto@200.119.151.153] has quit [Ping timeout: 248 seconds]
04:40 -!- millertimek1a2m3 [~adam@rrcs-67-79-54-130.sw.biz.rr.com] has quit [Ping
timeout: 245 seconds]
04:45 < kimelto> smw: http://pastebin.com/awVM68qp
04:49 -!- carllerche [~carllerch@208.87.61.146] has joined #go-nuts
04:51 < smw> kimelto: it should be in ${GOROOT}/pkg/${GOOS}_${GOARCH}/
04:51 < smw> I think
04:52 < smw> yep
04:57 < kimelto> eh!  I know a port maintainer who is going to receive a
complaint :>
04:58 < kimelto> also this version is quite old (january)
05:01 < smw> kimelto: I suggest you compile from source
05:01 < smw> January is ancient
05:01 -!- Dr_Who [~tgall@gentoo/developer/dr-who] has joined #go-nuts
05:01 < smw> you may make incompatable files.
05:01 < smw> It probably won't even compile in current version
05:02 -!- tgall_foo [~tgall@gentoo/developer/dr-who] has quit [Read error:
Operation timed out]
05:04 < kimelto> yeah.
05:04 < kimelto> anyway, I'll submit a patch to update and fix the port
05:05 < smw> kimelto: you shoudl at least use the latest "release"
05:11 -!- nettok__ [~netto@200.119.151.153] has joined #go-nuts
05:15 -!- nettok_ [~netto@200.119.151.153] has quit [Ping timeout: 258 seconds]
05:15 -!- SecretofMana [~mana@142.46.164.30] has quit [Ping timeout: 240 seconds]
05:20 -!- carllerche [~carllerch@208.87.61.146] has quit [Quit: carllerche]
05:21 -!- rv2733 [~rv2733@c-98-242-168-49.hsd1.fl.comcast.net] has joined #go-nuts
05:25 -!- zyichi [~zyichi@125.39.108.16] has quit [Quit: zyichi]
05:26 -!- carllerche [~carllerch@208.87.61.146] has joined #go-nuts
05:42 -!- exch [~nuada@h144170.upc-h.chello.nl] has quit [Read error: Connection
reset by peer]
05:43 -!- exch [~nuada@h144170.upc-h.chello.nl] has joined #go-nuts
06:13 -!- b00m_chef [~watr@d64-180-45-230.bchsia.telus.net] has joined #go-nuts
06:21 -!- kanru [~kanru@61-228-155-193.dynamic.hinet.net] has quit [Ping timeout:
240 seconds]
06:21 -!- asmo_ [~asmo@c-f6c5e055.1155-1-64736c11.cust.bredbandsbolaget.se] has
joined #go-nuts
06:25 -!- carllerche [~carllerch@208.87.61.146] has quit [Quit: carllerche]
06:27 -!- nutate [~rseymour@cacsag4.usc.edu] has quit [Quit: I'm outta heee-eere]
06:28 -!- carllerche [~carllerch@208.87.61.146] has joined #go-nuts
06:28 -!- rlab [~Miranda@240-21-95-178.pool.ukrtel.net] has joined #go-nuts
06:34 -!- nettok_ [~netto@200.119.151.153] has joined #go-nuts
06:34 -!- asmo_ [~asmo@c-f6c5e055.1155-1-64736c11.cust.bredbandsbolaget.se] has
quit [Remote host closed the connection]
06:37 -!- carllerche [~carllerch@208.87.61.146] has quit [Quit: carllerche]
06:37 -!- nettok__ [~netto@200.119.151.153] has quit [Ping timeout: 248 seconds]
06:40 -!- b00m_chef [~watr@d64-180-45-230.bchsia.telus.net] has quit [Ping
timeout: 268 seconds]
06:52 -!- rv2733 [~rv2733@c-98-242-168-49.hsd1.fl.comcast.net] has quit [Quit:
Leaving]
06:57 -!- yaroslav [~yaroslav@ppp85-140-190-157.pppoe.mtu-net.ru] has joined
#go-nuts
07:03 -!- ShadowIce [pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts
07:20 -!- Gracenotes [~person@wikipedia/Gracenotes] has quit [Remote host closed
the connection]
07:22 -!- kanade [~rohan@59.95.62.21] has joined #go-nuts
07:30 < kanade> does anyone talk in here?
07:30 -!- nettok__ [~netto@200.119.151.153] has joined #go-nuts
07:32 < taruti> no
07:32 < kanade> seems everyone is busy coding
07:34 -!- nettok_ [~netto@200.119.151.153] has quit [Ping timeout: 248 seconds]
07:36 -!- nettok_ [~netto@200.119.151.153] has joined #go-nuts
07:39 -!- nettok__ [~netto@200.119.151.153] has quit [Ping timeout: 264 seconds]
07:46 < kimelto> but why oh why the build system is written in crappy bash
:/
07:47 -!- nettok_ [~netto@200.119.151.153] has quit [Quit: Ex-Chat]
07:47 < kanade> what do you want it in?
07:48 < kimelto> sad to say, but autoconf is in plain old sh, which is
better.
07:49 < taruti> autoconf is quite horrible
07:50 < kimelto> so are these home grown bash scrips
07:50 -!- awidegreen [~quassel@62.176.237.78] has joined #go-nuts
08:20 -!- GilJ [~gilles@78-22-170-204.access.telenet.be] has joined #go-nuts
08:22 -!- Xilon [~Adium@116.212.218.179] has joined #go-nuts
08:48 -!- gnuvince [~vince@70.35.166.48] has quit [Ping timeout: 258 seconds]
08:49 -!- gnuvince [~vince@72.0.216.63] has joined #go-nuts
08:50 -!- nanoo [~nano@95-89-197-196-dynip.superkabel.de] has joined #go-nuts
08:55 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has quit [Quit:
This computer has gone to sleep]
08:55 < uriel> kimelto: the build system is fairly simple, specially
compared to auto*hell
09:03 < Xilon> Someone requested that IRC libray I was playing with
yesterday.  Here it is http://github.com/sebnow/ircgo
09:08 -!- asmo [~asmo@c-f6c5e055.1155-1-64736c11.cust.bredbandsbolaget.se] has
joined #go-nuts
09:09 < plexdev> http://is.gd/bmMtT by [David Symonds] in go/lib/codereview/
-- codereview: Mention that deleting a CL is a use of 'hg change' in its header.
09:09 -!- landswipe [~Landswipe@60-242-188-130.static.tpgi.com.au] has quit [Ping
timeout: 246 seconds]
09:10 -!- Gracenotes [~person@wikipedia/Gracenotes] has joined #go-nuts
09:11 -!- cco3-work [~conleyo@nat/google/x-glxbkdocvgotnvla] has quit [Ping
timeout: 276 seconds]
09:14 -!- landswipe [~Landswipe@60-242-188-130.static.tpgi.com.au] has joined
#go-nuts
09:20 -!- kanade [~rohan@59.95.62.21] has quit [Quit: Leaving]
09:31 -!- rlab_ [~Miranda@99-70-95-178.pool.ukrtel.net] has joined #go-nuts
09:33 -!- rlab [~Miranda@240-21-95-178.pool.ukrtel.net] has quit [Ping timeout:
258 seconds]
09:35 -!- rlab_ [~Miranda@99-70-95-178.pool.ukrtel.net] has quit [Client Quit]
09:35 -!- rlab [~Miranda@99-70-95-178.pool.ukrtel.net] has joined #go-nuts
09:39 -!- Project_2501 [~Marvin@82.84.91.170] has joined #go-nuts
09:42 -!- ikaros [~ikaros@g228079116.adsl.alicedsl.de] has joined #go-nuts
09:48 -!- OpenSpace [~ja@93.86.170.241] has quit [Quit: Leaving]
10:21 -!- prip [~foo@host87-128-dynamic.36-79-r.retail.telecomitalia.it] has quit
[Ping timeout: 246 seconds]
10:22 -!- General13372 [~support@71-93-97-216.dhcp.mtpk.ca.charter.com] has joined
#go-nuts
10:25 -!- General1337 [~support@71-93-97-216.dhcp.mtpk.ca.charter.com] has quit
[Ping timeout: 246 seconds]
10:33 -!- prip [~foo@host87-128-dynamic.36-79-r.retail.telecomitalia.it] has
joined #go-nuts
10:46 -!- andrewh [~andrewh@94-194-56-42.zone8.bethere.co.uk] has joined #go-nuts
11:06 -!- kanru [~kanru@61-228-151-155.dynamic.hinet.net] has joined #go-nuts
11:20 -!- marsu [~marsu@188.51.202-77.rev.gaoland.net] has joined #go-nuts
11:21 < manveru> I'm going through the go course day2 and found an error in
the example on page 35
11:22 -!- oal [~olav@5.79-160-122.customer.lyse.net] has joined #go-nuts
11:23 < manveru> for i, x should be for _, x
11:25 < manveru> Though nobody explained the meaning of _ in the course yet,
so I guess that's missing as well
11:26 -!- perdix [~perdix@sxemacs/devel/perdix] has joined #go-nuts
11:29 -!- GilJ [~gilles@78-22-170-204.access.telenet.be] has quit [Remote host
closed the connection]
11:31 -!- kssreeram [~kssreeram@122.174.67.94] has quit [Ping timeout: 276
seconds]
11:31 -!- tsung [~jon@112.104.53.151] has quit [Remote host closed the connection]
11:31 -!- tsung [~jon@112.104.53.151] has joined #go-nuts
11:33 -!- surma [~surma@91-64-17-55-dynip.superkabel.de] has joined #go-nuts
11:34 < Xilon> With the xml package, how do I know which Token is being
returned?  Do I need to use reflection?
11:37 -!- asmo [~asmo@c-f6c5e055.1155-1-64736c11.cust.bredbandsbolaget.se] has
quit [Remote host closed the connection]
11:39 < exch> type assertion
11:40 < exch> t1, ok := tok.(xml.SyntaxError); if ok { /* this is a valid
cast to xml.SyntaxError */ }
11:41 < exch> Here's an example of a funciton that reads the token stream:
http://github.com/jteeuwen/go-pkg-xmlx/blob/master/src/document.go#L90
11:41 < Xilon> Cool, thanks
11:59 -!- path[l] [UPP@120.138.102.34] has joined #go-nuts
12:11 -!- exch [~nuada@h144170.upc-h.chello.nl] has quit [Quit: nipples rock]
12:15 -!- andrewh [~andrewh@94-194-56-42.zone8.bethere.co.uk] has quit [Ping
timeout: 240 seconds]
12:16 -!- tvw [~tv@e182077119.adsl.alicedsl.de] has joined #go-nuts
12:18 -!- rv2733 [~rv2733@c-98-242-168-49.hsd1.fl.comcast.net] has joined #go-nuts
12:20 -!- kssreeram [~kssreeram@122.174.67.94] has joined #go-nuts
12:29 < Xilon> I have a function which returns a structure that implements
an interface.  Why do I get an "cannot use *Foo as type *Bar in function argument"
when attempting to pass the structure to a function that expects the interface?
12:30 < Xilon> I could just pass in the structure, but that defeats the
purpose of interfaces
12:33 -!- letoh [~letoh@59-105-29-212.adsl.dynamic.seed.net.tw] has joined
#go-nuts
12:34 < jessta> Xilon: are you sure *Foo implements the interface Bar and
not Foo ?
12:35 < jessta> oh, on I'm guessing you probably what that to be Bar instead
of *Bar
12:35 -!- tvw [~tv@e182077119.adsl.alicedsl.de] has quit [Ping timeout: 245
seconds]
12:35 < jessta> but pastebin your code
12:36 < Xilon> Well the struct and interface is Conn and ReadWriter in
http://github.com/sebnow/ircgo/blob/master/irc.go
12:37 < Xilon> I'm passing in a *Conn to a function wanting *ReadWriter and
I get "cannot use server (type *irc.Conn) as type *irc.ReadWriter in function
argument"
12:38 < Xilon> The only difference between the interface and implementation
is that I use named return variables...
12:39 -!- merlin83 [~merlin83@unaffiliated/merlin83] has quit [Read error:
Connection reset by peer]
12:40 < jessta> Xilon: well, *Conn is a ReadWriter, but not a *ReadWriter
12:44 < Xilon> Hmm, so *ReadWriter doesn't mean "a pointer to something that
implements ReadWriter"?
12:45 < Xilon> Or is the implementation supposed to be on Conn and not
*Conn?
12:45 < jessta> nope, *ReaderWriter means a pointer to a readwriter
interface
12:46 < jessta> Xilon:
http://research.swtch.com/2009/12/go-data-structures-interfaces.html
12:46 < jessta> go interfaces are nothing like Java interfaces
12:49 < jessta> Xilon: you can pass a *Conn to a function expecting a
ReadWriter, and go will wrap the *Conn in the ReadWriter interface
12:53 < Xilon> I wonder I I could have possibly not tried that :P
12:53 < Xilon> how*
12:53 < Xilon> Well thanks, that article looks pretty interesting too
13:01 -!- crashR [~crasher@codextreme.pck.nerim.net] has joined #go-nuts
13:05 -!- exch [~nuada@h144170.upc-h.chello.nl] has joined #go-nuts
13:09 -!- lux` [lucs@151.95.176.1] has joined #go-nuts
13:11 -!- SecretofMana [~mana@142.46.164.30] has joined #go-nuts
13:14 -!- Nitro [~nitro@208.92.17.21] has joined #go-nuts
13:15 -!- mfoemmel [~mfoemmel@chml01.drwholdings.com] has quit [Ping timeout: 260
seconds]
13:15 -!- ikaros [~ikaros@g228079116.adsl.alicedsl.de] has quit [Ping timeout: 276
seconds]
13:16 -!- crashR [~crasher@codextreme.pck.nerim.net] has quit [Quit: Leaving.]
13:28 -!- awidegreen_ [~quassel@62.176.237.78] has joined #go-nuts
13:29 -!- awidegreen [~quassel@62.176.237.78] has quit [Ping timeout: 246 seconds]
13:42 -!- andrewh [~andrewh@94-194-56-42.zone8.bethere.co.uk] has joined #go-nuts
13:42 -!- nictuku [~nnnnnnict@cetico.org] has quit [Changing host]
13:42 -!- nictuku [~nnnnnnict@unaffiliated/nictuku] has joined #go-nuts
13:47 -!- path[l] [UPP@120.138.102.34] has quit [Ping timeout: 258 seconds]
13:48 -!- path[l] [UPP@120.138.102.34] has joined #go-nuts
13:49 -!- path[l]_ [UPP@120.138.102.34] has joined #go-nuts
13:52 -!- path[l] [UPP@120.138.102.34] has quit [Ping timeout: 258 seconds]
13:53 -!- path[l] [UPP@120.138.102.34] has joined #go-nuts
13:54 -!- path[l]__ [UPP@120.138.102.34] has joined #go-nuts
13:55 -!- path[l]_ [UPP@120.138.102.34] has quit [Ping timeout: 258 seconds]
13:56 < exch> uriel: http://github.com/jteeuwen/go-pkg-mpd This one
implements almost all of the MPD api, has synchronous and asynchronous calls for
each function.  The existing MPD package listed on your site is very limited and
returns a map[string]string from each call.  My version casts everything properly
into a structure with appropriate bools/ints/etc
13:57 -!- path[l] [UPP@120.138.102.34] has quit [Ping timeout: 258 seconds]
14:00 -!- rlab [~Miranda@99-70-95-178.pool.ukrtel.net] has quit [Quit: Miranda IM!
Smaller, Faster, Easier.  http://miranda-im.org]
14:00 -!- path[l]__ [UPP@120.138.102.34] has quit [Ping timeout: 258 seconds]
14:01 -!- path[l] [UPP@120.138.102.34] has joined #go-nuts
14:02 -!- idea_squirrel [~ct2rips@77-22-20-104-dynip.superkabel.de] has joined
#go-nuts
14:16 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has joined
#go-nuts
14:22 -!- andrewh [~andrewh@94-194-56-42.zone8.bethere.co.uk] has quit [Ping
timeout: 245 seconds]
14:23 -!- fwiffo [~none@unaffiliated/fwiffo] has joined #go-nuts
14:25 -!- NinoScript [~Adium@190.163.108.49] has left #go-nuts []
14:37 -!- mfoemmel [~mfoemmel@chml01.drwholdings.com] has joined #go-nuts
14:41 -!- asmo [~asmo@c-f6c5e055.1155-1-64736c11.cust.bredbandsbolaget.se] has
joined #go-nuts
14:47 -!- bawr [~bawr@unaffiliated/mrfawkes] has joined #go-nuts
14:47 < bawr> Is it just me, or was Go written with map-reduce fans in mind?
:)
14:49 < exch> heh it is easy, but not exactly practical sometimes :p
14:50 < bawr> So far, I'm focusing on having fun.  This reminds me of how I
was learning C from K&R...  with a hint of Python, oddly enough.  :)
14:50 -!- andrewh [~andrewh@94-194-56-42.zone8.bethere.co.uk] has joined #go-nuts
14:52 -!- mrd` [~matthew@shinobi.dempsky.org] has quit [Ping timeout: 252 seconds]
14:55 -!- path[l] [UPP@120.138.102.34] has quit [Ping timeout: 258 seconds]
14:57 -!- Xera^ [~brit@87-194-208-246.bethere.co.uk] has joined #go-nuts
14:58 -!- pdusen [~pdusen@crob4-55.flint.umich.edu] has quit [Quit: Leaving]
14:58 -!- mrd` [~matthew@shinobi.dempsky.org] has joined #go-nuts
14:59 -!- jA_cOp [~yakobu@unaffiliated/ja-cop/x-9478493] has joined #go-nuts
15:00 < bawr> ...I can't move the { to the next line when defining a
function?  It's like adjusting to forced indentation of code all over again.
15:00 < bawr> No, it's worse.  forced indentation matched what I was doing.
This goes against it.  :/
15:00 < manveru> hehe
15:01 < manveru> a whole line for a single {...  seems like waste to me :)
15:01 < jessta> bawr: you'll get used to it pretty quickly
15:01 < bawr> I never maintained that it's a good thing, just that it was
natural for me.
15:01 < bawr> Ah, well.
15:02 < bawr> I liked being able to match {} just by looking down, though.
15:02 -!- millertimek1a2m3 [~adam@rrcs-67-79-54-130.sw.biz.rr.com] has joined
#go-nuts
15:05 < bawr> Also, hmm.  Reading the docs, Go strings are made of bytes.
Is there a way to address the Unicode characters inside a string, though?
15:06 < bawr> So that when x:="aźc", x[0] is "a", and x[1] is "ź", not just
the first byte of my platform's representation of "ź".
15:07 -!- Venom_X [~pjacobs@74.61.90.217] has joined #go-nuts
15:11 -!- andrewh [~andrewh@94-194-56-42.zone8.bethere.co.uk] has quit [Ping
timeout: 245 seconds]
15:11 < exch> rune := utf8.DecodeRuneInString("ź")
15:11 < exch> rune is now an int value with the proper unicode number for
that character
15:11 -!- Venom_X [~pjacobs@74.61.90.217] has quit [Ping timeout: 260 seconds]
15:12 < bawr> Okay, but is there something like a string, except indexed by
runes?
15:14 < exch> you can't index a string directly and have it return runes
unfortunately
15:14 < exch> bit odd, I know
15:14 < exch> specially considering all strings are unicode by default in Go
15:14 < bawr> Yeah, this is...  odd.
15:15 < jessta> bawr: an int slice
15:16 < bawr> Slices on strings return full characters, as opposed to bytes?
15:18 < jessta> nah, I mean if you want to reference by unicode character
decode the string in to an array of ints
15:18 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts
15:19 < bawr> And that decodes it to runes?
15:19 < exch> you'll have to do that manually though as far as I know.  You
can't do an implicit conversion from string to []int
15:19 < bawr> Right'.
15:20 -!- ikaros [~ikaros@g228079116.adsl.alicedsl.de] has joined #go-nuts
15:22 < exch> hmm seems you can do it implicitely
15:23 < exch> foo := []int("aźc")
15:23 < exch> foo -> []int{97, 378, 99}
15:23 -!- pdusen [~pdusen@crob4-55.flint.umich.edu] has joined #go-nuts
15:24 < bawr> Ahh, awesome.  Would have been rather silly otherwsie.
15:24 < exch> yea
15:24 < exch> I like this
15:24 < exch> One learns something new every day :p
15:28 -!- Nitro [~nitro@208.92.17.21] has quit [Ping timeout: 240 seconds]
15:30 -!- asmo [~asmo@c-f6c5e055.1155-1-64736c11.cust.bredbandsbolaget.se] has
quit [Remote host closed the connection]
15:35 -!- rlab [~Miranda@91.200.158.34] has quit [Quit: Miranda IM! Smaller,
Faster, Easier.  http://miranda-im.org]
15:51 -!- rv2733 [~rv2733@c-98-242-168-49.hsd1.fl.comcast.net] has quit [Quit:
Leaving]
15:52 -!- surma [~surma@91-64-17-55-dynip.superkabel.de] has quit [Quit: Leaving.]
15:54 -!- timepilot [~timepilot@c-24-1-94-64.hsd1.il.comcast.net] has joined
#go-nuts
15:59 -!- senshikaze [~senshikaz@c-98-239-54-128.hsd1.ms.comcast.net] has joined
#go-nuts
16:00 -!- Demp_ [~Demp@bzq-79-182-184-104.red.bezeqint.net] has joined #go-nuts
16:03 -!- zimbatm [zimbatm@stan.oree.ch] has quit [Quit: Terminated with extreme
prejudice - dircproxy 1.0.5]
16:03 -!- Demp [~Demp@bzq-79-182-184-40.red.bezeqint.net] has quit [Ping timeout:
240 seconds]
16:04 -!- nettok [~netto@200.119.156.156] has joined #go-nuts
16:05 -!- zimbatm [~zimbatm@193-0.105-92.cust.bluewin.ch] has joined #go-nuts
16:11 -!- Demp [~Demp@bzq-79-182-184-246.red.bezeqint.net] has joined #go-nuts
16:13 -!- yaroslav [~yaroslav@ppp85-140-190-157.pppoe.mtu-net.ru] has quit [Quit:
yaroslav]
16:14 -!- Demp_ [~Demp@bzq-79-182-184-104.red.bezeqint.net] has quit [Ping
timeout: 260 seconds]
16:14 -!- Demp_ [~Demp@bzq-109-65-184-141.red.bezeqint.net] has joined #go-nuts
16:15 -!- yaroslav [~yaroslav@ppp85-140-190-157.pppoe.mtu-net.ru] has joined
#go-nuts
16:15 -!- yaroslav [~yaroslav@ppp85-140-190-157.pppoe.mtu-net.ru] has quit [Client
Quit]
16:18 -!- Demp [~Demp@bzq-79-182-184-246.red.bezeqint.net] has quit [Ping timeout:
260 seconds]
16:20 -!- Demp_ [~Demp@bzq-109-65-184-141.red.bezeqint.net] has quit [Ping
timeout: 240 seconds]
16:21 -!- timepilot [~timepilot@c-24-1-94-64.hsd1.il.comcast.net] has quit [Ping
timeout: 265 seconds]
16:27 -!- oal [~olav@5.79-160-122.customer.lyse.net] has quit [Remote host closed
the connection]
16:35 -!- nettok_ [~netto@200.119.156.156] has joined #go-nuts
16:39 -!- nettok [~netto@200.119.156.156] has quit [Ping timeout: 264 seconds]
16:41 -!- TMKCodes [~toni@bbwirelessgw2-fee1dc00-62.dhcp.inet.fi] has quit [Quit:
Leaving]
16:45 -!- b00m_chef [~watr@d64-180-45-230.bchsia.telus.net] has joined #go-nuts
16:46 -!- Xilon [~Adium@116.212.218.179] has quit [Quit: Leaving.]
16:51 -!- andrewh [~andrewh@94-194-56-42.zone8.bethere.co.uk] has joined #go-nuts
16:55 -!- peterdn [~peterdn@host81-159-104-203.range81-159.btcentralplus.com] has
quit [Quit: ChatZilla 0.9.86-rdmsoft [XULRunner 1.9.0.15/2009101909]]
16:58 -!- napsy_ [~luka@tm.213.143.73.175.lc.telemach.net] has joined #go-nuts
17:00 -!- hdon [~donny@c-67-163-244-40.hsd1.pa.comcast.net] has quit [Ping
timeout: 248 seconds]
17:13 -!- hdon [~donny@c-67-163-244-40.hsd1.pa.comcast.net] has joined #go-nuts
17:17 < kimelto> is there a simpla way to export variables at launch time
(for make.bash), ala make
17:17 < kimelto> ie.  make FOO=BAR install
17:19 < bawr> FOO=BAR make install
17:19 < bawr> Works in most shells.
17:19 -!- andrewh [~andrewh@94-194-56-42.zone8.bethere.co.uk] has quit [Ping
timeout: 265 seconds]
17:21 < kimelto> bawr: stoopid me :)
17:22 < kimelto> thanks
17:22 < bawr> No problem.
17:23 < kimelto> in my head that was kind of weird cause I was in a
makefile, but the makefile spawn a shell to exec commands so...  :)
17:24 < bawr> Heh, I feel you.  I get a brain freeze near make, too.  :)
17:26 -!- scm [justme@c190030.adsl.hansenet.de] has quit [Ping timeout: 252
seconds]
17:26 < kimelto> 2 known bugs; 71 unexpected bugs; test output differs \o/
17:26 -!- napsy_ [~luka@tm.213.143.73.175.lc.telemach.net] has quit [Ping timeout:
260 seconds]
17:27 -!- scm [justme@c155177.adsl.hansenet.de] has joined #go-nuts
17:34 -!- zimbatm [~zimbatm@193-0.105-92.cust.bluewin.ch] has quit [Remote host
closed the connection]
17:35 -!- zimbatm [~zimbatm@193-0.105-92.cust.bluewin.ch] has joined #go-nuts
17:41 < uriel> exch: I still don't understand why you need to provide an
async version of apis, Go makes it trivial for anyone that needs to run something
on a different goroutine to do it themselves
17:52 -!- cco3 [~conley@c-69-181-139-23.hsd1.ca.comcast.net] has joined #go-nuts
17:53 -!- napsy [~luka@tm.213.143.73.175.lc.telemach.net] has joined #go-nuts
17:53 < exch> yes, but why leave them to do the extra work?  :p
17:54 < exch> it's the same as with the existing mpd lib.  it just returns
string maps.  technically it's correct, but it just leaves me, as the user, with
more work to do
17:55 -!- KnightMage [~jon@host86-151-182-176.range86-151.btcentralplus.com] has
joined #go-nuts
17:57 -!- rv2733 [~rv2733@c-98-242-168-49.hsd1.fl.comcast.net] has joined #go-nuts
18:02 -!- daowee [~daowee@ua-83-227-154-166.cust.bredbandsbolaget.se] has quit
[Read error: Connection reset by peer]
18:03 -!- perdix [~perdix@sxemacs/devel/perdix] has quit [Quit: A cow.  A
trampoline.  Together they fight crime!]
18:06 -!- nettok__ [~netto@200.119.156.156] has joined #go-nuts
18:08 -!- kssreeram [~kssreeram@122.174.67.94] has quit [Quit: kssreeram]
18:08 -!- deso [~deso@x0561a.wh30.tu-dresden.de] has joined #go-nuts
18:08 -!- kssreeram [~kssreeram@122.174.67.94] has joined #go-nuts
18:10 -!- nettok_ [~netto@200.119.156.156] has quit [Ping timeout: 248 seconds]
18:28 -!- rv2733 [~rv2733@c-98-242-168-49.hsd1.fl.comcast.net] has quit [Quit:
Leaving]
18:29 -!- nettok_ [~netto@200.119.156.156] has joined #go-nuts
18:31 -!- scm [justme@c155177.adsl.hansenet.de] has quit [Ping timeout: 246
seconds]
18:33 -!- nettok__ [~netto@200.119.156.156] has quit [Ping timeout: 264 seconds]
18:37 -!- scm [justme@c136205.adsl.hansenet.de] has joined #go-nuts
18:43 -!- nettok__ [~netto@200.119.156.156] has joined #go-nuts
18:46 -!- nettok_ [~netto@200.119.156.156] has quit [Ping timeout: 252 seconds]
18:48 -!- lloyda2 [~adam@lloyda2.stu.rpi.edu] has joined #go-nuts
18:48 -!- millertimek1a2m3 [~adam@rrcs-67-79-54-130.sw.biz.rr.com] has quit [Ping
timeout: 245 seconds]
18:59 -!- landswipe [~Landswipe@60-242-188-130.static.tpgi.com.au] has quit [Ping
timeout: 276 seconds]
18:59 -!- landswipe [~Landswipe@60-242-188-130.static.tpgi.com.au] has joined
#go-nuts
19:02 -!- saljam [~s@91.106.36.122] has joined #go-nuts
19:03 -!- saljam [~s@91.106.36.122] has left #go-nuts []
19:03 -!- saljam [~s@91.106.36.122] has joined #go-nuts
19:10 < kimelto> is go intensively tested on freebsd?  doesnt seems so.
19:13 -!- nf [~nf@124-170-37-239.dyn.iinet.net.au] has quit [Ping timeout: 260
seconds]
19:13 -!- nf [~nf@124-168-129-75.dyn.iinet.net.au] has joined #go-nuts
19:24 < uriel> exch: then all APIs should have async versions, it makes no
sense to me
19:24 -!- millertimek1a2m3 [~adam@rrcs-67-79-54-130.sw.biz.rr.com] has joined
#go-nuts
19:27 < exch> they probably should
19:27 < exch> provided it makes sense for the particular app
19:40 -!- Nitro [~nitro@208.92.17.21] has joined #go-nuts
19:46 -!- zimbatm [~zimbatm@193-0.105-92.cust.bluewin.ch] has quit [Remote host
closed the connection]
19:47 -!- jackman [~jackman@c-24-21-216-140.hsd1.or.comcast.net] has quit [Ping
timeout: 245 seconds]
19:47 -!- zimbatm [~zimbatm@193-0.105-92.cust.bluewin.ch] has joined #go-nuts
19:47 -!- zimbatm [~zimbatm@193-0.105-92.cust.bluewin.ch] has quit [Remote host
closed the connection]
19:47 -!- zimbatm [~zimbatm@193-0.105-92.cust.bluewin.ch] has joined #go-nuts
19:49 -!- jackman [~jackman@c-24-21-216-140.hsd1.or.comcast.net] has joined
#go-nuts
19:53 < bawr> Is there a big version of the Go mascot somewhere I'm not
seeing it?
19:55 < andreer> bawr: if you download the distribution, i think there's a
large version in the documentation.  i'll check
19:56 < Luixsia> Go mascot?
19:56 < Luixsia> Go has a mascot?
19:56 < andreer> bawr: yep, 3861x3861.
19:57 < andreer> Luixsia: his name is Gopher, i believe
19:57 < andreer> look in go/doc/gordon/
19:57 < andreer> (oops, not Gopher, Godron.  I think he might be a gopher
though)
19:58 < bawr> Ah. Now I'll know where to look.
19:59 -!- Kashia [~Kashia@p4FEB372F.dip.t-dialin.net] has joined #go-nuts
19:59 -!- asmo_ [~asmo@c-f6c5e055.1155-1-64736c11.cust.bredbandsbolaget.se] has
joined #go-nuts
20:00 -!- warthurton [~warthurto@pdpc/supporter/active/warthurton] has joined
#go-nuts
20:02 -!- warthurton [~warthurto@pdpc/supporter/active/warthurton] has quit
[Client Quit]
20:02 -!- warthurton [~warthurto@pdpc/supporter/active/warthurton] has joined
#go-nuts
20:03 -!- napsy [~luka@tm.213.143.73.175.lc.telemach.net] has quit [Quit: Lost
terminal]
20:04 -!- warthurton [~warthurto@pdpc/supporter/active/warthurton] has quit
[Client Quit]
20:04 -!- shasbot [~shasbot@ip70-171-218-55.tc.ph.cox.net] has quit [Ping timeout:
264 seconds]
20:05 -!- nettok_ [~netto@200.119.156.156] has joined #go-nuts
20:06 -!- shasbot [~shasbot@ip70-171-218-55.tc.ph.cox.net] has joined #go-nuts
20:06 -!- rthc [~rthc@rrcs-67-52-50-170.west.biz.rr.com] has quit [Ping timeout:
246 seconds]
20:08 -!- rthc [~rthc@rrcs-67-52-50-170.west.biz.rr.com] has joined #go-nuts
20:09 -!- meatmanek [~meatmanek@mesingw.student.cwru.edu] has joined #go-nuts
20:09 -!- nettok__ [~netto@200.119.156.156] has quit [Ping timeout: 258 seconds]
20:09 -!- mertimor [~mertimor@p578ED24E.dip.t-dialin.net] has joined #go-nuts
20:11 -!- nettok__ [~netto@200.119.156.156] has joined #go-nuts
20:14 -!- nettok_ [~netto@200.119.156.156] has quit [Ping timeout: 276 seconds]
20:20 -!- millertimek1a2m3 [~adam@rrcs-67-79-54-130.sw.biz.rr.com] has quit [Ping
timeout: 265 seconds]
20:21 -!- saljam [~s@91.106.36.122] has quit [Quit: saljam]
20:34 -!- TMKCodes [~tmkcodes@bbwirelessgw2-fee1dc00-62.dhcp.inet.fi] has joined
#go-nuts
20:36 -!- nettok__ [~netto@200.119.156.156] has quit [Ping timeout: 246 seconds]
20:37 -!- b00m_chef [~watr@d64-180-45-230.bchsia.telus.net] has quit [Ping
timeout: 248 seconds]
20:47 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has quit [Ping
timeout: 248 seconds]
20:48 -!- KnightMage [~jon@host86-151-182-176.range86-151.btcentralplus.com] has
quit [Remote host closed the connection]
20:49 -!- andrewh [~andrewh@94-194-56-42.zone8.bethere.co.uk] has joined #go-nuts
20:50 -!- saljam [~s@91.106.36.122] has joined #go-nuts
20:50 < Nitro> Hi! Is there an elegant way to grab the last element from an
array, other than by [len(array)-1] ? I though [-1] would work, but it gives me a
uint overflow error...
20:50 < bawr> Transferring from Python?  :)
20:51 < Nitro> yup ;)
20:52 < bawr> (No idea here, I just started myself.  Transferring from
Python, too.)
20:52 -!- saljam [~s@91.106.36.122] has quit [Client Quit]
20:52 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has joined #go-nuts
20:53 -!- nettok__ [~netto@200.119.156.156] has joined #go-nuts
20:57 -!- rv2733 [~rv2733@c-98-242-168-49.hsd1.fl.comcast.net] has joined #go-nuts
20:59 -!- An_Knight [~Luixsia@AToulouse-254-1-17-250.w81-250.abo.wanadoo.fr] has
joined #go-nuts
21:01 -!- nanooo [~nano@95-89-197-196-dynip.superkabel.de] has joined #go-nuts
21:02 -!- Luixsia [~Luixsia@AToulouse-254-1-54-197.w81-49.abo.wanadoo.fr] has quit
[Ping timeout: 252 seconds]
21:04 -!- nanoo [~nano@95-89-197-196-dynip.superkabel.de] has quit [Ping timeout:
260 seconds]
21:07 -!- peterdn [~peterdn@host81-159-104-203.range81-159.btcentralplus.com] has
joined #go-nuts
21:07 -!- deso [~deso@x0561a.wh30.tu-dresden.de] has quit [Remote host closed the
connection]
21:07 -!- deso [~deso@x0561a.wh30.tu-dresden.de] has joined #go-nuts
21:07 -!- nettok_ [~netto@200.119.156.156] has joined #go-nuts
21:11 -!- nettok__ [~netto@200.119.156.156] has quit [Ping timeout: 258 seconds]
21:18 -!- asmo_ [~asmo@c-f6c5e055.1155-1-64736c11.cust.bredbandsbolaget.se] has
quit [Remote host closed the connection]
21:19 -!- andrewh [~andrewh@94-194-56-42.zone8.bethere.co.uk] has quit [Ping
timeout: 240 seconds]
21:19 -!- andrewh [~andrewh@94-194-56-42.zone8.bethere.co.uk] has joined #go-nuts
21:21 -!- zimbatm [~zimbatm@193-0.105-92.cust.bluewin.ch] has quit [Remote host
closed the connection]
21:21 -!- nettok__ [~netto@200.119.156.156] has joined #go-nuts
21:22 -!- zimbatm [~zimbatm@193-0.105-92.cust.bluewin.ch] has joined #go-nuts
21:25 -!- nettok_ [~netto@200.119.156.156] has quit [Ping timeout: 265 seconds]
21:26 < exch> I was just listening to the 'changelog' interview with Rob
Pike.  What peaked my interest was rob's remark about someone making a Go compiler
for Mono/.NET.  basically it would just convert the Go AST tree into a suitable
ILASM file and pass it to Mono's ilasm for compiling.
21:26 < exch> Is anyone aware of a project doing this?
21:27 < exch> I'm also a bit curious why Rob would be interested in this
21:30 < exch> It seems like a bit of a pointless endevour.  Go's language
constructs aren't particularly compatible with the whole CLR way of doing things
21:35 < uriel> I think somebody was working on it
21:35 < uriel> or thinking about it
21:39 -!- b00m_chef [~watr@128.189.89.5] has joined #go-nuts
21:52 -!- nettok_ [~netto@200.119.156.156] has joined #go-nuts
21:55 -!- nettok__ [~netto@200.119.156.156] has quit [Ping timeout: 240 seconds]
21:56 -!- Project_2501 [~Marvin@82.84.91.170] has quit [Quit: E se abbasso questa
leva che succ...]
21:58 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has quit [Quit:
Leaving]
22:00 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts
22:01 -!- rlab [~Miranda@91.200.158.34] has quit [Read error: Connection reset by
peer]
22:01 -!- espadrine [~opera@AMontsouris-157-1-116-178.w90-46.abo.wanadoo.fr] has
joined #go-nuts
22:02 -!- espadrine [~opera@AMontsouris-157-1-116-178.w90-46.abo.wanadoo.fr] has
left #go-nuts []
22:04 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has joined
#go-nuts
22:07 < Zoopee> exch: isn't the the "conversion" of the AST into an ILASM
part, basically the compilation of the program?
22:07 -!- nanooo [~nano@95-89-197-196-dynip.superkabel.de] has quit [Quit:
Leaving]
22:08 < exch> not entirely.  the actualy compilation has to be done by the
il assembler
22:08 < exch> ILASM in itself is just another programming language
22:08 < Zoopee> your statement "just convert" made it sound like a kind of
special magic
22:09 < exch> 'just' prolly understates it a bit, but it really is just a
conversion from 1 language to another
22:12 < exch> It is a godsend that go includes packages for parsing go code
though.  Shaves off a ton of work
22:13 < Zoopee> Isn't ILASM just a textual representation of binary CIL, in
the same way that Java bytecode is printed out as text by javap?
22:13 < exch> not exactly.  You can write your .NET/Mono program in ILASM if
you want.  it's as much a programming language as go, C or C# is
22:14 < exch> It's semi-object oriented and fully stack based.  (like Lua
and postscript)
22:15 < Zoopee> (or to take it one level lower, ILASM : CIL :: assembly :
machine code loaded to memory for the CPU to execute)
22:15 -!- idea_squirrel [~ct2rips@77-22-20-104-dynip.superkabel.de] has quit
[Quit: Verlassend]
22:15 < exch> the bytecode bit happens when you run your ilasm code through
the IL assembler
22:17 -!- tux21b [~christoph@90.146.60.30] has joined #go-nuts
22:19 < Zoopee> exch: of course, CIL code is definitely higher level than
MIPS machine code, with stuff like garbage collection, bounds checking, virtual
invocation, and so on built in.
22:19 < exch> of course
22:19 < exch> i've played around with ilasm quite a bit years ago.  Not sure
how it's changed over time though.  last time I wrote anything with it was in 2003
I think
22:20 < Zoopee> But the conversion from ILASM to CIL is a rather
straightforward mechanical process, isn't it?
22:20 < exch> I would assume so.  I've never investigated beyond the ilasm
stage tbh
22:21 < Zoopee> I'd expect it changed just as much as the CIL did.  But it's
basically an assembly language for the CIL "processor".
22:21 < exch> you are suggesting that a go -> CIL conversion should just
skip the msil stage?  I suppsoe that's doable
22:22 < exch> yea.  It started to get a little funky when they introduced
generics into the runtime.  After that I move don to other things
22:22 -!- General1337 [~support@71-93-97-216.dhcp.mtpk.ca.charter.com] has joined
#go-nuts
22:22 < Zoopee> Whereas converting C# (and in the same manner, Go) to ILASM
is the part where interesting things happen, i.e.  the compilation.
22:23 -!- ShadowIce [pyoro@unaffiliated/shadowice-x841044] has quit [Quit:
Verlassend]
22:23 < exch> it certainly isn't gonna be easy to map go constructs into
useful and semi-optimized il code
22:24 < exch> and since the modern class library in .NET/Mono relies rather
heavily on generics, Go won't be very useful because it doesn't (yet) have any
constructs that could simulate this
22:25 < uriel> ah, I think I remember who it was: nickjohnson
22:25 < uriel> not sure how far he got
22:25 -!- General13372 [~support@71-93-97-216.dhcp.mtpk.ca.charter.com] has quit
[Ping timeout: 264 seconds]
22:26 < exch> i'll see if I can find something
22:27 -!- samferry [sam@atheme/member/samferry] has joined #go-nuts
22:28 < Zoopee> Not suggesting to skip it.  That's a matter of preference
when writing the compiler.  i.e.  some compilers (e.g.  gcc, I think also
Microsoft's C/C++) output assembly, others (e.g.  tcc, MIPSPro, Borland, Watcom)
output machine code directly, it's mostly a matter of convenience whether to
output text or binary.
22:28 -!- deso [~deso@x0561a.wh30.tu-dresden.de] has quit [Read error: Connection
reset by peer]
22:28 < exch> true
22:30 < exch> From a debugging standpoint it is probably easier to stick to
ilasm.  When in doubt about something, it's easy enough to write what you want in
C# -> compiler -> disassemble into Ilasm and read the code
22:32 < Zoopee> The direct binary code generation approach has the advantage
of somewhat faster compilation (saving another pass of elaborate text processing),
but the text output (fed to the assembler to get binary) has the advantage of an
intermediate stage that is more human readable and can be inspected, or intervened
with before binary generation.
22:33 < exch> ya
22:33 -!- taruti [taruti@aoi.yi.org] has quit [Ping timeout: 245 seconds]
22:35 -!- rv2733 [~rv2733@c-98-242-168-49.hsd1.fl.comcast.net] has quit [Quit:
Leaving]
22:35 < Zoopee> As you said though, the Go concepts don't quite map directly
to the .NET model.  So a Go->CIL/ILASM compiler would actually likely be more
complex than say, the C# compiler.
22:35 -!- saljam [~s@91.106.36.122] has joined #go-nuts
22:36 < exch> either more complex, or extremely limited if proper mappings
cannot be made efficiently
22:37 < Zoopee> (I only seriously used .NET for a few months, learning C#
and working on a small project and debugging some library on Mono -- so my
knowledge of the model is rather rudimentary and limited to what existed at ca.
2004; I never used any of the Generics or reflection stuff)
22:38 < exch> I kinda got addicted to C# when it was still in beta and never
really stopped using it.  Had a few jobs as C# programmer in the meantime.  Until
Go came along that is :p I found my new love
22:39 < kimelto> dont you miss linq?  :)
22:39 < exch> lol no
22:39 < kimelto> the only cool thing about C# imho
22:40 < Zoopee> I suppose the main question would be whether .NET has a
thread model suitable for CSP-style concurrency.  Channels could be implemented
and that would work relatively well.
22:40 < exch> it has it's uses, but so far I haven't found a lot of them
22:40 -!- taruti [taruti@aoi.yi.org] has joined #go-nuts
22:41 < kimelto> anyway, any progress/eta for the new go garbage collector?
22:41 < exch> Zoopee: that's a good question.  Just mapping them to regular
old threads cuold work, but it'll be one hell of a job
22:43 -!- ikaros [~ikaros@g228079116.adsl.alicedsl.de] has quit [Ping timeout: 246
seconds]
22:48 < Zoopee> Otherwise, the higher level stuff are garbage collection
(which the CLR already does) and stuff like defer and the proposed panic/recover
(which I think the CLR also has the support for as it implements exceptions).  The
low-level stuff is just a matter of generating some instructions as for any other
machine architecture.
22:49 < exch> defer is pretty easy to implement with the try/finally
constructs
22:50 < exch> expensive though.  It adds a faire few extra instructions
22:50 -!- tux21b [~christoph@90.146.60.30] has quit [Quit: Ex-Chat]
22:51 -!- zimbatm [~zimbatm@193-0.105-92.cust.bluewin.ch] has quit [Quit:
Leaving...]
22:54 < Zoopee> However, the point of .NET languages is really
interoperability, being able to just use a library or class/functions from another
language.  And here the actual interface matters a lot.  So if the Go types or
interfaces do not map well to that, even if code can easily be generated on the
CLR to implement them, you end up not being able to call Go functions/methods or
create objects of Go's types from a C# program, and it's not worth so much.
22:55 < exch> Everything you can map onto ilasm will (mostly) be compatible
with any other .NET language
22:56 < Zoopee> exch: Is the CLR thread model lightweight and scalable
enough for goroutines to be efficient?
22:56 < exch> ILASM does support a few constructs that C# does not have
22:56 < exch> like global vars/functions for instance
22:56 < exch> Zoopee: I don't think it is quite as efficient
22:56 -!- aho [~nya@e179061006.adsl.alicedsl.de] has joined #go-nuts
22:56 < Zoopee> I have the feeling that Windows native threads aren't,
anyway.  (Though I only ever made basic use of them)
22:57 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has quit [Quit:
This computer has gone to sleep]
22:57 -!- ikaros [~ikaros@g227064130.adsl.alicedsl.de] has joined #go-nuts
22:57 -!- ikaros [~ikaros@g227064130.adsl.alicedsl.de] has quit [Remote host
closed the connection]
23:02 < Zoopee> exch: The thing is how you "map" it onto ILASM.  i.e.  some
types can be just opaque handles, the implementation of which is within the
generated code.  So you get an efficient CIL assembly (that's their term for an
"object"/"exectuable", right?) of a Go program, but the runtime is not "aware" of
them.
23:04 < Zoopee> Does the CLR support multiple return values, for instance?
How would you call a function that returns (int, int64, string) from a C# program?
23:04 < exch> C# can't handle that
23:04 < exch> but ILASM is fully stack based
23:04 < exch> , so in effect it can have as many return values as you need
23:05 < Zoopee> exch: Sure, but beyond ILASM, you also have some calling
conventions, for instance.
23:06 -!- nettok_ [~netto@200.119.156.156] has quit [Quit: Ex-Chat]
23:06 < exch> When you start doing this, you need to make a choice.  Do you
want maximum compatibility with other .NEt languages, or do you just want to
adhere to the CLI standard?
23:06 < exch> those are mutually exclusive
23:06 < exch> an IL program that uses all features avilable to the CLI will
not be very useful when imported in a C# program
23:07 < exch> *program = Assembly
23:07 < exch> If you go for compatibility then things become tricky.  Like
you mentioned, you can't deal with multiple return values in functions properly
23:08 < exch> at least not in a way that would make sense to a C# program
importing your code
23:10 < Zoopee> exch: I can think of some reasons you'd just want an "IL
program", but mostly it seems to me if you can't interoperate with code in other
.NET langauges, and you don't depend on CLR support otherwise, you'd be just as
well off just compiling to machine executables.
23:10 < exch> yea that's what I thought.  I don't really see a whole lot of
use for a go -> CLI compiler
23:10 < exch> not anything that'll make it worth the trouble anyways
23:12 < Zoopee> And Go obviously is targeted as a native compiled language,
not depending on heavy runtime abstraction offered by virtual machines / JITs.
23:13 < exch> yup
23:14 < Zoopee> (as opposed to C#, which you'd run into terrible mess trying
to compile natively)
23:14 -!- viirya [~viirya@cml506-25.csie.ntu.edu.tw] has quit [Ping timeout: 264
seconds]
23:15 -!- viirya [~viirya@cml506-25.csie.ntu.edu.tw] has joined #go-nuts
23:15 -!- TMKCodes [~tmkcodes@bbwirelessgw2-fee1dc00-62.dhcp.inet.fi] has left
#go-nuts ["Lähdössä"]
23:16 < Zoopee> exch: the only really worthwhile use I can see for
go->CIL is if you can write .NET libraries with it and use other .NET libraries
in a Go program, as easily as you can in C# IronPython.
23:17 -!- wuehlmaus [~wuehlmaus@p4FCC671D.dip.t-dialin.net] has quit [Ping
timeout: 246 seconds]
23:18 < Zoopee> s/C# IronPython/C# or Python/
23:18 < exch> If you are to take some artistic license, you can probably
make it work.  And by artistic license I mean changing the Go language just enough
to accomodate from some of the things that would otherwise be nigh impossible.
23:18 < exch> Like adding generics syntax to the go language.
23:18 < exch> but then it won't really be go anymore :p
23:18 -!- andrewh [~andrewh@94-194-56-42.zone8.bethere.co.uk] has quit [Ping
timeout: 265 seconds]
23:20 -!- wuehlmaus [~wuehlmaus@p4FCC3BFC.dip.t-dialin.net] has joined #go-nuts
23:20 < Zoopee> I don't think that'd be a very graceful change.
23:21 < exch> probably not
23:22 -!- Xera^ [~brit@87-194-208-246.bethere.co.uk] has quit [Quit: (
www.nnscript.com :: NoNameScript 4.21 :: www.esnation.com )]
23:24 -!- andrewh [~andrewh@94-194-56-42.zone8.bethere.co.uk] has joined #go-nuts
23:25 < Zoopee> The boon in Go seems to be that it's just as high-level as
you can get with a static, directly native compiled language, without introducing
fuzzy leaky ugliness like C++ does.  There are some features that Go would
probably not include (like virtual methods, reflection, generics) because they
don't succumb well to local static compilation.
23:26 < exch> that's one of Go's selling points I suppose.  It's nice and
clean.  And also why I absolutely loathe C++
23:26 < exch> it just feelslike one disgusting hack ontop of the other
23:28 < kmeyer> Zoopee: actually, go has virtual/static methods, though it
doesn't describe them as such
23:28 -!- andrewh [~andrewh@94-194-56-42.zone8.bethere.co.uk] has quit [Client
Quit]
23:28 < Zoopee> kmeyer: You mean the pointer indirection in interfaces?
23:28 < exch> C++: http://mimg.ugo.com/200905/9449/pizza-the-hutt.jpg Go:
http://www.celebutopia.net/wp-content/uploads/2009/06/gillan.jpg :p
23:30 < Zoopee> Once you're already under a virtual runtime / JIT or
whatever, you want to make use of the dynamic flexibility and abstraction that
gives you, and Go is (rightfully) too restricted for that.
23:30 < kmeyer> Zoopee: mhm
23:34 -!- TMKCodes [~tmkcodes@bbwirelessgw2-fee1dc00-62.dhcp.inet.fi] has joined
#go-nuts
23:36 < Zoopee> Just make threads lightweight (if they aren't already) and
add CSP (channels and select) to .NET -- you get more than you could with Go for
CIL.  But you don't have the advantage of static native binaries, which you have
with Go (but obviously would also lose with Go on CIL)
23:36 < Zoopee> kmeyer: yeah?
23:37 < kmeyer> What?
23:38 < Zoopee> Is that what you meant by "virtual/static methods" in Go?
23:38 < Zoopee> (Or is there something deeper I don't know of?)
23:39 < Zoopee> (wasn't sure what the "mhm" was to convey)
23:41 < kmeyer> Ah, sorry.
23:41 < kmeyer> Yeah, that's all I meant.
23:45 -!- mertimor [~mertimor@p578ED24E.dip.t-dialin.net] has left #go-nuts []
23:46 < Zoopee> Ah, OK -- I suppose that does qualify as virtual invocation.
But once you have a class hierarchy and inheritance, it's a bit more complicated
than that, i.e.  you actually need to know about the types at runtime.
23:47 -!- marsu [~marsu@188.51.202-77.rev.gaoland.net] has quit [Quit: Leaving]
23:52 -!- awidegreen_ [~quassel@62.176.237.78] has quit [Remote host closed the
connection]
23:52 -!- jA_cOp [~yakobu@unaffiliated/ja-cop/x-9478493] has quit [Quit: Leaving]
23:55 < exch> if I have multiple case statements in a select{} block, will
all channels in there be watched for incoming data, or will it block at the first
case until something happens there?
23:55 < Zoopee> I think Go's concept of interfaces is most practical though.
That's the most common use for full-blown classes, without the complexity.
23:55 < Zoopee> exch: all channels
23:55 < exch> goodie.
--- Log closed Sun Apr 11 00:00:43 2010