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

--- Log opened Wed Dec 01 00:00:03 2010
--- Day changed Wed Dec 01 2010
00:00 < Tonnerre> hendrikus, what does uname -a say?
00:00 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.3]
00:00 -!- Scorchin [~Scorchin@host109-152-113-23.range109-152.btcentralplus.com]
has quit [Ping timeout: 245 seconds]
00:00 < hendrikus> Tonnerre: Linux edubuntu 2.6.35-23-generic #41-Ubuntu SMP
Wed Nov 24 10:18:49 UTC 2010 i686 GNU/Linux
00:01 -!- gnuvince [~vince@64.235.202.209] has quit [Quit: ""]
00:01 -!- ExtraSpice [~XtraSpice@88.118.33.48] has quit [Read error: Connection
reset by peer]
00:01 -!- gnuvince [~vince@70.35.165.162] has joined #go-nuts
00:01 < Tonnerre> hendrikus, then check your path
00:02 < hendrikus> Tonnerre: where do i check the path in my bash_profiele?
00:03 < fenicks> hendrikus: try your $HOME/.bashrc
00:03 < krutcha> echo $PATH
00:03 < hendrikus> krutcha: iwill do
00:04 < hendrikus> krutcha:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
00:05 < krutcha> there's some instructions here:
http://golang.org/doc/install.html#environment
00:05 < krutcha> helping you get your path set up once you have the binaries
installed for go.
00:06 < fenicks> héhé, hendrikus: add "export PATH=${GOROOT}/bin:${PATH}" in
$HOME/.bashrc
00:06 < fenicks> source it and enjoy
00:06 < hendrikus> fenicks: i wil do that
00:09 < hendrikus> fenicks: No command '8go' found, did you mean: Command
'qgo' from package 'qgo' (universe)
00:10 < rspec22> is there a good way to get the go scanner pkg to constrain
max token size?  currently there is no limit and scanner.Scan() can exhaust all
available memory
00:10 < fenicks> try "cd ${GOROOT}/bin" you must find the go binaries
00:11 -!- iant [~iant@nat/google/x-vadjvjysnlfkiwpr] has quit [Quit: Leaving.]
00:12 < hendrikus> fenicks: O.k i begin to unstand what it means!
00:13 < hendrikus> fenicks: here it is: hendrikus@edubuntu:/bin$
00:17 -!- iant [~iant@67.218.104.238] has joined #go-nuts
00:17 -!- mode/#go-nuts [+v iant] by ChanServ
00:18 < fenicks> :-~ reinstall go in appropriate dir
00:20 < hendrikus> fenicks: wich is a appropriate dir?
00:21 -!- mbohun [~user@ppp115-156.static.internode.on.net] has joined #go-nuts
00:22 -!- kanru [~kanru@118-168-236-72.dynamic.hinet.net] has quit [Ping timeout:
264 seconds]
00:23 < uriel> hendrikus: there is no 'appropriate dir', put the Go bin dir
into your path
00:23 < uriel> if you have trouble with that, consult whatever documentation
for your shell/OS/distribution, this is not related to Go
00:24 < hendrikus> uriel: i will do that - thanks
00:25 < fenicks> I install GO as normal user.  My .bashrc before compilation
and install : https://gist.github.com/722714
00:26 < fenicks> with your current install you can try : "export
PATH=/bin:${PATH}" in $HOME/.bashrc
00:27 < fenicks> but I think good idea is to put GOBIN in /usr/bin,
/usr/local/bin or $HOME/bin
00:30 < hendrikus> fenicks: this is what i wil do >>> but I think
good idea is to put GOBIN in /usr/bin, /usr/local/bin or $HOME/bin
00:30 < hendrikus> fenicks: i copied your past the bin ---- thanks
00:30 < fenicks> oh ok
00:32 < hendrikus> fenicks: do you mean: the directory go with there in bin
ore do you mean only the bin directory?
00:33 < TheSeeker> only the bin dir needs to be in your path
00:34 < fenicks> yes, only the bin
00:34 < TheSeeker> but you should have the $GOROOT, $GOBIN, $GOOS, and
$GOARCH environment vars set.
00:35 < fenicks> If all vars are set $GOBIN must be in $PATH
00:36 < hendrikus> fenicks: i am bussy with >>>
00:36 < hendrikus> TheSeeker: I am bussy with it thanks
00:39 -!- antonkovalyov [~antonkova@75-101-56-240.dsl.static.sonic.net] has joined
#go-nuts
00:40 -!- wrtp [~rog@92.17.41.184] has quit [Quit: wrtp]
00:48 < hendrikus> fenicks: Tomorow i will go one -- thanks for your help
00:48 < fenicks> hendrikus: just take time and be patient
00:48 < fenicks> ok
00:50 -!- krutcha [~krutcha@remote.icron.com] has quit [Quit: Leaving]
01:03 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has quit [Ping
timeout: 245 seconds]
01:07 -!- Tv [~tv@gige.bur.digisynd.com] has quit [Read error: Operation timed
out]
01:07 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has joined #go-nuts
01:10 -!- iant [~iant@67.218.104.238] has quit [Quit: Leaving.]
01:13 -!- Nitro [~Nitro@modemcable105.5-82-70.mc.videotron.ca] has joined #go-nuts
01:13 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has quit [Ping
timeout: 255 seconds]
01:18 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has joined #go-nuts
01:20 < plexdev> http://is.gd/i1cuU by [Benny Siegert] in go/src/pkg/path/
-- path: Windows support for Split
01:21 < Tonnerre> Heh, Benny Siegert
01:26 -!- niemeyer [~niemeyer@189.73.142.213] has quit [Ping timeout: 245 seconds]
01:27 -!- hendrikus [~hendrikus@84-107-57-221.dsl.quicknet.nl] has quit [Remote
host closed the connection]
01:33 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has joined #go-nuts
01:37 -!- derferman [~derferman@citris-wlan-176-093.AirBears.Berkeley.EDU] has
joined #go-nuts
01:38 -!- htoothrot [~mux@66-169-185-121.dhcp.ftwo.tx.charter.com] has quit [Read
error: Connection reset by peer]
01:41 -!- skelterjohn [~jasmuth@c-76-98-219-171.hsd1.pa.comcast.net] has joined
#go-nuts
01:41 -!- htoothrot [~mux@66-169-185-121.dhcp.ftwo.tx.charter.com] has joined
#go-nuts
01:43 -!- Tv [~tv@cpe-76-168-227-45.socal.res.rr.com] has joined #go-nuts
01:48 -!- tvw [~tv@e176002109.adsl.alicedsl.de] has quit [Ping timeout: 245
seconds]
01:51 -!- shvntr [~shvntr@113.84.151.82] has joined #go-nuts
01:53 -!- hachiya [~hachiya@encyclical.net] has quit [Ping timeout: 265 seconds]
01:54 -!- hachiya [~hachiya@encyclical.net] has joined #go-nuts
01:58 -!- Venom_X [~pjacobs@66.54.185.131] has quit [Quit: Venom_X]
02:00 -!- derferman [~derferman@citris-wlan-176-093.AirBears.Berkeley.EDU] has
quit [Read error: Connection timed out]
02:01 -!- derferman [~derferman@2607:f140:400:1176:21b:63ff:fec6:5c6c] has joined
#go-nuts
02:03 -!- jdp [PHUNK@24.238.32.162.res-cmts.segr.ptd.net] has quit [Ping timeout:
265 seconds]
02:10 -!- markcol [~markcol@74.125.59.1] has quit [Quit: markcol]
02:13 -!- derferman [~derferman@2607:f140:400:1176:21b:63ff:fec6:5c6c] has quit
[Quit: derferman]
02:17 -!- derferman [~derferman@citris-wlan-176-093.AirBears.Berkeley.EDU] has
joined #go-nuts
02:20 -!- derferman_ [~derferman@citris-wlan-176-093.AirBears.Berkeley.EDU] has
joined #go-nuts
02:23 -!- derferman [~derferman@citris-wlan-176-093.AirBears.Berkeley.EDU] has
quit [Read error: Connection reset by peer]
02:26 -!- werdan7 [~w7@freenode/staff/wikimedia.werdan7] has quit [Ping timeout:
265 seconds]
02:27 -!- derferman_ [~derferman@reccev-wism-wlan-189-160.AirBears.Berkeley.EDU]
has joined #go-nuts
02:28 -!- derferman [~derferman@citris-wlan-176-093.AirBears.Berkeley.EDU] has
quit [Ping timeout: 250 seconds]
02:36 -!- derferman_ [~derferman@citris-wlan-176-093.AirBears.Berkeley.EDU] has
joined #go-nuts
02:39 -!- derferman [~derferman@reccev-wism-wlan-189-160.AirBears.Berkeley.EDU]
has quit [Ping timeout: 240 seconds]
02:47 -!- skelterjohn [~jasmuth@c-76-98-219-171.hsd1.pa.comcast.net] has quit
[Quit: skelterjohn]
02:47 -!- derferman [~derferman@citris-wlan-176-093.AirBears.Berkeley.EDU] has
quit [Read error: Connection reset by peer]
02:47 -!- derferman [~derferman@2607:f140:400:1176:21b:63ff:fec6:5c6c] has joined
#go-nuts
02:54 -!- antonkovalyov [~antonkova@75-101-56-240.dsl.static.sonic.net] has quit
[Remote host closed the connection]
03:04 -!- derferman [~derferman@2607:f140:400:1176:21b:63ff:fec6:5c6c] has quit
[Quit: derferman]
03:04 -!- skelterjohn [~jasmuth@c-76-98-219-171.hsd1.pa.comcast.net] has joined
#go-nuts
03:18 -!- Tv [~tv@cpe-76-168-227-45.socal.res.rr.com] has quit [Ping timeout: 255
seconds]
03:26 -!- meanburrito920 [~john@unaffiliated/meanburrito920] has joined #go-nuts
03:39 -!- adu [~ajr@pool-173-66-11-168.washdc.fios.verizon.net] has joined
#go-nuts
03:50 -!- skelterjohn [~jasmuth@c-76-98-219-171.hsd1.pa.comcast.net] has quit
[Quit: skelterjohn]
04:01 -!- meanburrito920 [~john@unaffiliated/meanburrito920] has quit [Quit: Lost
terminal]
04:04 -!- Nitro [~Nitro@modemcable105.5-82-70.mc.videotron.ca] has quit [Quit:
This computer has gone to sleep]
04:12 -!- MaksimBurnin [~max@44.188-224-87.telenet.ru] has quit [Quit: Leaving.]
04:12 -!- MaksimBurnin1 [~max@44.188-224-87.telenet.ru] has joined #go-nuts
04:14 -!- derferman [~derferman@2607:f140:400:1176:21b:63ff:fec6:5c6c] has joined
#go-nuts
04:21 -!- mbohun [~user@ppp115-156.static.internode.on.net] has quit [Ping
timeout: 265 seconds]
04:22 -!- MaksimBurnin1 [~max@44.188-224-87.telenet.ru] has quit [Ping timeout:
245 seconds]
04:29 -!- rejb [~rejb@unaffiliated/rejb] has quit [Ping timeout: 276 seconds]
04:45 -!- noktoborus_ [debian-tor@gateway/tor-sasl/noktoborus] has joined #go-nuts
04:45 -!- mbohun [~user@ppp115-156.static.internode.on.net] has joined #go-nuts
05:09 -!- Eridius [~kevin@unaffiliated/eridius] has quit [Ping timeout: 250
seconds]
05:28 -!- zozoR [~zozoR@5634798d.rev.stofanet.dk] has joined #go-nuts
05:51 -!- [Pete_27] [~noname@110-174-103-31.static.tpgi.com.au] has quit [Ping
timeout: 255 seconds]
05:53 -!- noktoborus__ [debian-tor@gateway/tor-sasl/noktoborus] has joined
#go-nuts
05:54 -!- noktoborus_ [debian-tor@gateway/tor-sasl/noktoborus] has quit [Ping
timeout: 245 seconds]
06:02 -!- cco3 [~conley@c-69-181-138-209.hsd1.ca.comcast.net] has joined #go-nuts
06:14 -!- derferman [~derferman@2607:f140:400:1176:21b:63ff:fec6:5c6c] has quit
[Quit: derferman]
06:24 -!- rspec22 [~rothspec@69.55.231.142] has quit [Quit: leaving]
06:26 -!- aconran [~aaron@c-76-21-4-69.hsd1.ca.comcast.net] has quit [Quit:
aconran]
06:29 -!- noktoborus__ [debian-tor@gateway/tor-sasl/noktoborus] has quit [Ping
timeout: 245 seconds]
06:30 -!- noktoborus__ [debian-tor@gateway/tor-sasl/noktoborus] has joined
#go-nuts
06:31 -!- noktoborus__ [debian-tor@gateway/tor-sasl/noktoborus] has quit [Remote
host closed the connection]
06:31 -!- noktoborus_ [debian-tor@gateway/tor-sasl/noktoborus] has joined #go-nuts
06:33 -!- [Pete_27] [~noname@110-174-103-31.static.tpgi.com.au] has joined
#go-nuts
06:56 -!- sabalaba [~sabalaba@114.250.108.27] has joined #go-nuts
07:04 -!- matti__ [~mumboww@c-98-207-108-218.hsd1.ca.comcast.net] has joined
#go-nuts
07:19 -!- krutcha [~krutcha@S010600045a27676a.vs.shawcable.net] has joined
#go-nuts
07:37 -!- vsrinivas [~me@rose.makesad.us] has quit [Read error: Connection reset
by peer]
07:40 -!- chressie [~chressie@dreggn.in-ulm.de] has quit [Quit: WeeChat 0.3.3]
07:47 -!- chressie [~chressie@dreggn.in-ulm.de] has joined #go-nuts
07:59 -!- adu [~ajr@pool-173-66-11-168.washdc.fios.verizon.net] has quit [Quit:
adu]
08:00 -!- siyb [~siyb@83.216.216.131] has quit [Read error: Connection reset by
peer]
08:05 -!- siyb [~siyb@83.216.216.131] has joined #go-nuts
08:07 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Quit: |Craig|]
08:09 -!- siyb [~siyb@83.216.216.131] has quit [Read error: No route to host]
08:09 -!- siyb [~siyb@83.216.216.131] has joined #go-nuts
08:19 -!- photron [~photron@port-92-201-120-127.dynamic.qsc.de] has joined
#go-nuts
08:24 -!- zozoR [~zozoR@5634798d.rev.stofanet.dk] has quit [Quit: Morten.  Desu~]
08:30 -!- tvw [~tv@e176000166.adsl.alicedsl.de] has joined #go-nuts
08:34 -!- krutcha [~krutcha@S010600045a27676a.vs.shawcable.net] has quit [Quit:
Leaving]
08:39 -!- krutcha [~krutcha@S010600045a27676a.vs.shawcable.net] has joined
#go-nuts
08:43 -!- ExtraSpice [~XtraSpice@88.118.33.48] has joined #go-nuts
09:07 -!- wrtp [~rog@92.17.41.184] has joined #go-nuts
09:35 -!- mbohun [~user@ppp115-156.static.internode.on.net] has quit [Ping
timeout: 245 seconds]
09:35 -!- tensorpudding [~user@99.148.202.191] has quit [Read error: Connection
reset by peer]
09:56 -!- noktoborus_ [debian-tor@gateway/tor-sasl/noktoborus] has quit [Remote
host closed the connection]
10:09 -!- Eridius [~kevin@unaffiliated/eridius] has joined #go-nuts
10:19 -!- napsy [~luka@88.200.96.18] has joined #go-nuts
10:23 -!- mbohun [~mbohun@ppp115-156.static.internode.on.net] has joined #go-nuts
10:26 -!- Eridius [~kevin@unaffiliated/eridius] has quit [Quit: leaving]
10:43 -!- Fish [~Fish@9fans.fr] has joined #go-nuts
10:57 -!- ucasano [~ucasano@host150-147-static.225-95-b.business.telecomitalia.it]
has joined #go-nuts
11:13 -!- path[l] [~path@59.162.86.164] has joined #go-nuts
11:14 -!- napsy [~luka@88.200.96.18] has quit [Quit: Lost terminal]
11:16 -!- sabalaba [~sabalaba@114.250.108.27] has quit [Read error: Connection
reset by peer]
11:22 -!- niemeyer [~niemeyer@189.73.142.213] has joined #go-nuts
11:34 -!- ivan` [~ivan@unaffiliated/ivan/x-000001] has quit [Quit: Coyote finally
caught me]
11:35 -!- ivan` [~ivan@unaffiliated/ivan/x-000001] has joined #go-nuts
11:54 -!- skejoe [~skejoe@188.114.142.162] has joined #go-nuts
12:04 -!- sabalaba [~sabalaba@114.240.91.145] has joined #go-nuts
12:12 -!- HollyRain [~HollyRain@212.106.243.111] has joined #go-nuts
12:12 < HollyRain> why go is well suited for networking applications?
12:12 -!- noam [noam@77.126.219.215] has quit [Ping timeout: 264 seconds]
12:14 < HollyRain> *better designed for it than another languages
12:16 -!- noam [noam@77.126.219.215] has joined #go-nuts
12:24 < ww> HollyRain: the goroutines are nice for even driven networking
things.  same argument as for erlang.  unlike erlang go compiles to machine code
so will also be faster
12:27 -!- virtualsue [~chatzilla@nat/cisco/x-jdcpkijhkvzcheop] has joined #go-nuts
12:29 -!- noam [noam@77.126.219.215] has quit [Ping timeout: 276 seconds]
12:35 -!- noam [noam@77.126.219.215] has joined #go-nuts
12:39 -!- Nitro [~Nitro@modemcable105.5-82-70.mc.videotron.ca] has joined #go-nuts
12:47 -!- Nitro [~Nitro@modemcable105.5-82-70.mc.videotron.ca] has quit [Quit:
This computer has gone to sleep]
13:16 -!- sabalaba [~sabalaba@114.240.91.145] has quit [Ping timeout: 240 seconds]
13:17 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has quit [Ping timeout: 240
seconds]
13:25 < niemeyer> ww: FWIW, Erlang has a native code compiler for quite a
while
13:30 -!- Nitro [~Nitro@142.137.222.12] has joined #go-nuts
13:30 -!- sabalaba [~sabalaba@114.240.91.145] has joined #go-nuts
13:38 -!- DerHorst [~Horst@e176099088.adsl.alicedsl.de] has joined #go-nuts
13:38 -!- artefon [~thiago@189.59.206.57] has joined #go-nuts
13:39 -!- savechina [~savechina@123.116.125.253] has joined #go-nuts
13:47 -!- ucasano [~ucasano@host150-147-static.225-95-b.business.telecomitalia.it]
has quit [Ping timeout: 250 seconds]
13:48 -!- ucasano [~ucasano@151.12.47.139] has joined #go-nuts
13:52 -!- trontonic [~alexander@77.40.159.131] has quit [Read error: No route to
host]
13:54 -!- ios_ [~ios@180.191.87.129] has joined #go-nuts
13:54 < wrtp> niemeyer: dynamically typed languages don't tend to produce
machine code that's as fast as for statically typed languages...
13:54 < uriel> Erlang is great, but it is a ver different language
13:55 < uriel> for example, Go allows you to easily control the layout of
your memory, which for some things is quite important
13:55 < uriel> also Go doesnt require so much runtime support
13:56 < niemeyer> I'm won't run into a comparison between the two languages.
Was just fixing a misinformation.
13:56 < uriel> in any case, both Go and Erlang have their style and their
place, Go is closer to C, Erlang is closer to...  Prolog?
13:56 < niemeyer> s/I'm won't/I won't/
13:57 < taruti> the lack of built in timeouts seems like a wart in Go
13:57 -!- sabalaba [~sabalaba@114.240.91.145] has quit [Ping timeout: 260 seconds]
13:57 < niemeyer> taruti: time.After(x), golang.org/pkg/time
13:57 -!- iant [~iant@adsl-71-133-8-30.dsl.pltn13.pacbell.net] has joined #go-nuts
13:57 -!- mode/#go-nuts [+v iant] by ChanServ
13:58 < taruti> niemeyer: that is newish?
13:58 < niemeyer> taruti: The function is relatively new indeed, but the
approach is not
13:58 < taruti> niemeyer: the whole "create new goroutine" is not very
scalable when compared to the erlang approach
13:59 < niemeyer> taruti: Sounds like FUD to me, without context or any kind
of tangible measurements
13:59 -!- kanru [~kanru@118-168-236-72.dynamic.hinet.net] has joined #go-nuts
14:00 < taruti> niemeyer: just some experience with other runtimes with soft
threads, 50k threads is fine, 50k threads creating each frequently timers that are
soft threads usually is not very performance-friendly.
14:01 -!- plainhao [~plainhao@208.75.85.237] has joined #go-nuts
14:01 < taruti> niemeyer: especially since those "old" timeout threads will
linger till the timeout if special care is not taken.
14:02 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts
14:02 -!- iant [~iant@adsl-71-133-8-30.dsl.pltn13.pacbell.net] has quit [Client
Quit]
14:03 < ww> niemeyer: i stand corrected on native compiler...  my main point
was that goroutines/threadlets/etc.  are good for network programming
14:03 -!- Nitro [~Nitro@142.137.222.12] has quit [Quit: Leaving]
14:04 < taruti> niemeyer: e.g.  for typically receiving a packet each
second, 300 second timeout done naively with time.After means ~300 goroutines per
client.  now add 10k clients.  that is 10k*300 extra goroutines.
14:05 -!- ExtraSpice [~XtraSpice@88.118.33.48] has quit [Quit: Leaving]
14:05 < niemeyer> taruti: What's the cost of a goroutine?
14:05 -!- artefon [~thiago@189.59.206.57] has quit [Quit: bye]
14:06 < taruti> niemeyer: probably few pages of memory, scheduling overhead,
GC overhead etc
14:07 < niemeyer> taruti: Measurably, what's the cost of a goroutine?
14:07 -!- napsy [~luka@88.200.96.18] has joined #go-nuts
14:08 < niemeyer> taruti: My point is that the fact you can't tell indicates
that you're worrying about a problem you don't have.
14:08 < taruti> niemeyer: the *design* is not good, and that is quite
language neutral
14:08 < nsf> 10k of goroutines is 40 megs of mem
14:09 < nsf> 10k * 300 is 12 gigs
14:09 -!- skelterjohn [~jasmuth@c-76-98-219-171.hsd1.pa.comcast.net] has joined
#go-nuts
14:09 < niemeyer> taruti: I disagree..  the design feels very elegant.
You're not worried about the design, you're worried about the impact of the
design, without actually knowing what is the impact because it's never been an
issue.
14:10 -!- sabalaba [~sabalaba@66.220.12.133] has joined #go-nuts
14:10 < taruti> niemeyer: actually the "do timeout with spawning a new soft
thread" has been done quite a lot and it has issues with most runtimes.
14:11 < taruti> niemeyer: the erlang solution is quite elegant to that.
14:12 -!- sabalaba [~sabalaba@66.220.12.133] has quit [Max SendQ exceeded]
14:12 -!- sabalaba [~sabalaba@66.220.12.133] has joined #go-nuts
14:12 < niemeyer> taruti: It feels good as well
14:14 < taruti> the current runtime also has syscall overhead on the sleep
but that is just an implementation artifact
14:15 -!- skelterjohn [~jasmuth@c-76-98-219-171.hsd1.pa.comcast.net] has quit
[Quit: skelterjohn]
14:28 -!- sauerbraten [~sauerbrat@p508CFC3C.dip.t-dialin.net] has joined #go-nuts
14:35 -!- iant [~iant@66.109.105.230] has joined #go-nuts
14:35 -!- mode/#go-nuts [+v iant] by ChanServ
14:38 -!- ExtraSpice [~XtraSpice@88.118.33.48] has joined #go-nuts
14:38 -!- DarthShrine [~angus@pdpc/supporter/student/DarthShrine] has quit [Quit:
DarthShrine]
14:43 -!- soapy_illusions [~alex@vpn128115.Wireless.McGill.CA] has joined #go-nuts
14:43 -!- zozoR [~zozoR@5634798d.rev.stofanet.dk] has joined #go-nuts
14:46 < soapy_illusions> hey, I know there is no generic type in go, so is
there any way to create an array (or array like object) which will be filled with
unknown types of variables
14:47 < cbeck> you can use interface{}
14:47 < cbeck> But you lose type safety
14:48 -!- savechina [~savechina@123.116.125.253] has quit [Quit: Leaving]
14:48 < soapy_illusions> that's ok with me, but I'm sorry could you explain
a little more how to use the empty interface (I have read about it a few places)
14:49 < cbeck> You use it just like any other type in declarations, etc
14:49 -!- mbohun [~mbohun@ppp115-156.static.internode.on.net] has quit [Quit:
Leaving]
14:49 < cbeck> When pulling a value out however, you need to use a type
assertion
14:51 < soapy_illusions> ok perfect thanks a lot
14:51 -!- ucasano [~ucasano@151.12.47.139] has quit [Ping timeout: 272 seconds]
14:52 -!- tvw [~tv@e176000166.adsl.alicedsl.de] has quit [Read error: Connection
reset by peer]
14:52 < soapy_illusions> I am also doing a lot of regular expressions in my
code, and was wanted to know if there was any support for things like (\d+) where
d is a digit, kind of like with PCRE (regexp does not seem to support it)
14:53 < exch> soapy_illusions: the current regexp package is very simple.
It's missing a lot of those constructs.  There's been talk of RE2 imlpementation
for Go, but I haven't seen it yet
14:53 < exch> There's probably some wrappers to other regexp libs around
though
14:54 < exch> http://go-lang.cat-v.org/library-bindings <- probably a
good place to start looking
14:54 < soapy_illusions> exch: that's what I was wondering, because I assume
you could simply link to the C one right (or does that kill any performance gain)
14:54 < soapy_illusions> haha there is one on that site but the link is
broken :'(
14:54 < exch> There will be a performance hit, because calling into C code
requires the runtime to do some extra trickery (different calling conve ntions).
Not sure just how much that will be though
14:56 < exch> The absence of \d nd such is not really that big a problem.
Your patterns will be a bit bigger, but still do the same.  The one thing I did
miss often was non greedy matches, which you can't really trick your away around
easily
14:58 < soapy_illusions> ohh well thanks for the help, I will continue
searching for a wrapper for PCRE while I wait for the re2 implementation
14:59 < exch> That PCRE wrapper you saw is mine.  I took it down because
it's very old (Go has changes considerably since I wrote it), and there were some
problems I couldn't solve back then.  I should probably go through it and fix all
the brokenness, It seems there still is a need for it
15:00 -!- ymasory [~ymasory@c-76-99-55-224.hsd1.pa.comcast.net] has quit [Quit:
Leaving]
15:00 < exch> I also expected the RE2 lib to be around by now
15:00 -!- HollyRain [~HollyRain@212.106.243.111] has left #go-nuts []
15:01 < soapy_illusions> I was reading the article posted here :
http://swtch.com/~rsc/regexp/regexp1.html about why RE2 would be better, it sounds
very cool, but would the syntax for the regexes be similar?
15:02 < exch> For the most part.  There's always some tiny differences
between various regex implementations
15:03 < soapy_illusions> ohh well I found this
http://code.google.com/p/sre2/ guess thats a good start
15:04 -!- boscop [~boscop@f055013080.adsl.alicedsl.de] has joined #go-nuts
15:05 -!- artefon [~thiago@dhcp20.usuarios.dcc.ufmg.br] has joined #go-nuts
15:08 -!- femtoo [~femto@95-89-197-196-dynip.superkabel.de] has joined #go-nuts
15:09 < exch> ah nice
15:14 -!- soapy_illusions [~alex@vpn128115.Wireless.McGill.CA] has quit [Ping
timeout: 255 seconds]
15:15 -!- boscop [~boscop@f055013080.adsl.alicedsl.de] has quit [Ping timeout: 250
seconds]
15:15 -!- shvntr [~shvntr@113.84.151.82] has quit [Ping timeout: 255 seconds]
15:19 -!- ucasano [~ucasano@151.12.47.139] has joined #go-nuts
15:22 -!- rejb [~rejb@unaffiliated/rejb] has joined #go-nuts
15:23 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.3]
15:26 -!- soapy_illusions [~alex@vpn128115.Wireless.McGill.CA] has joined #go-nuts
15:27 -!- Venom_X [~pjacobs@66.54.185.131] has joined #go-nuts
15:30 -!- ios_ [~ios@180.191.87.129] has quit [Read error: Connection reset by
peer]
15:34 -!- artefon [~thiago@dhcp20.usuarios.dcc.ufmg.br] has quit [Ping timeout:
240 seconds]
15:35 -!- artefon [~thiago@dhcp20.usuarios.dcc.ufmg.br] has joined #go-nuts
15:35 < wrtp> taruti: i tend to agree with you about the design of
time.After.
15:36 < wrtp> particularly if you have many requests with long timeouts
15:36 < wrtp> you could easily accumulate 100s of thousands of goroutines.
15:38 -!- markcol [~markcol@74.125.59.1] has joined #go-nuts
15:44 -!- ucasano [~ucasano@151.12.47.139] has quit [Quit: ucasano]
15:48 -!- skejoe [~skejoe@188.114.142.162] has quit [Quit: Lost terminal]
15:51 -!- DerHorst [~Horst@e176099088.adsl.alicedsl.de] has quit [Remote host
closed the connection]
15:58 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has quit [Ping
timeout: 245 seconds]
16:03 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has joined #go-nuts
16:06 -!- zozoR [~zozoR@5634798d.rev.stofanet.dk] has quit [Ping timeout: 250
seconds]
16:06 -!- iant [~iant@66.109.105.230] has quit [Quit: Leaving.]
16:08 -!- zozoR [~zozoR@5634798d.rev.stofanet.dk] has joined #go-nuts
16:09 -!- exch [~exch@h78233.upc-h.chello.nl] has quit [Read error: Connection
reset by peer]
16:11 -!- noam [noam@77.126.219.215] has quit [Read error: Connection reset by
peer]
16:11 -!- noam [noam@77.126.219.215] has joined #go-nuts
16:13 < niemeyer> wrtp: The first person which is *actually* affected by
this can very easily fix the problem.
16:14 < wrtp> i'm not sure that the fix is straightforward
16:14 < wrtp> how would you go about fixing it?
16:15 -!- exch [~exch@h78233.upc-h.chello.nl] has joined #go-nuts
16:15 -!- iant [~iant@nat/google/x-trewwbmikbdfrnug] has joined #go-nuts
16:15 -!- mode/#go-nuts [+v iant] by ChanServ
16:15 < niemeyer> wrtp: A single goroutine is all that is needed
16:17 < wrtp> how does that work without polling?
16:17 < wrtp> s/does/can/
16:19 < wrtp> the runtime has to provide some way of sleeping that is not
time.Sleep.
16:19 < sauerbraten> is it possible to iterate over channels?  like every
time something new is received on this channel the program does something?
16:20 < wrtp> sauerbraten: for x := range c { ...  }
16:20 -!- ucasano [~ucasano@151.12.47.139] has joined #go-nuts
16:20 < wrtp> where c is a channel, and x is the value received.
16:20 < sauerbraten> so the answer is YES :)
16:20 < sauerbraten> ok
16:21 < niemeyer> wrtp: There are many ways to sleep already..  every single
blocking call is a way to sleep.
16:22 < wrtp> niemeyer: ...  and none of those are interruptable, AFAIK,
which is what you need for a timeout.
16:23 < niemeyer> wrtp: Trick question: is Read() interruptible?
16:23 < KBme> what?  you can range over a channel?
16:23 < exch> yes
16:23 < KBme> damn why didn't I know that?!  ;)
16:23 < exch> you do now :p
16:24 < KBme> also, what does it do when the channel is closed?
16:24 < wrtp> KBme: the loop exits
16:24 < KBme> just
16:24 < KBme> sweet
16:24 < wrtp> niemeyer: i don't know
16:24 -!- soapy_illusions [~alex@vpn128115.Wireless.McGill.CA] has quit [Ping
timeout: 255 seconds]
16:24 < wrtp> niemeyer: depends what go does when signals happen
16:25 < wrtp> of course, it depends which Read you mean...
16:25 < wrtp> i assumed os.File.Read
16:26 < sauerbraten> time.Ticker writes the absoulte time at the exact
moment or the time elapsed since making the Ticker?
16:26 < sauerbraten> to channel Ticker.C
16:26 < wrtp> in general, Read is not interruptible.
16:27 < niemeyer> wrtp: Ok, even more clear then: can a process waiting on a
read() system call be awaken?
16:27 < wrtp> sauerbraten: absolute time, i think...
16:27 < sauerbraten> mhm I'll try it
16:27 < wrtp> niemeyer: yes, assuming no automatic restarting of syscalls.
(i can't remember how that's enabled)
16:28 < wrtp> in C, at any rate.
16:28 < niemeyer> wrtp: What if there is *DATA* to be read?
16:28 < wrtp> then it stays where it was.
16:28 < niemeyer> wrtp: Ok, please submit a refactored After() call now that
fixes your worries, please.  ;)
16:31 < wrtp> can't do it without changing the go runtime
16:32 < niemeyer> Heh, no need for that
16:32 < wrtp> in fact, the design of After makes it difficult to do decently
- you'd have to hook the interrupting into the channel's finaliser
16:33 < niemeyer> wrtp: No reason..  I can't explain right now (voice
meeting), but it's trivial to do this with a single goroutine
16:34 < wrtp> i'd like to see it done
16:35 < wrtp> no, you're right, you the interrupting doesn't have to be part
of the finaliser.
16:35 -!- noam [noam@77.126.219.215] has quit [Read error: Connection reset by
peer]
16:35 -!- noam [noam@77.126.219.215] has joined #go-nuts
16:45 < wrtp> niemeyer: so you're thinking about a single goroutine and a
mutex-locked heap right?
16:46 < wrtp> and using LockOSThread so that you can kill the sleeping
goroutine
16:47 < wrtp> how would you stop the signal from going to the usual signal
handler?
16:52 -!- ucasano [~ucasano@151.12.47.139] has quit [Quit: ucasano]
16:53 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts
16:54 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Client Quit]
16:54 < sauerbraten> why doesn't this program end?
http://pastie.org/1338831
16:56 < wrtp> sauerbraten: presumably because Ticker doesn't close the
channel
16:56 < wrtp> you could do it yourself.
16:58 < jnwhiteh> so I just got an email, and my address is listed as: II II
II <jim.whitehead@blahblah.com>,
16:59 < jnwhiteh> II II II
16:59 < jnwhiteh> now, I know I have a suffix on my name, and that borks
some people up..  but seriously?  II II II?
16:59 < jnwhiteh> wtfzors.
17:04 < sauerbraten> wrtp: but why doesn't it close it?  I can't get behind
it :-/ a little bit strange
17:06 < wrtp> sauerbraten: i think it probably could.  depends on whether
you might want to use the channel for something else, i guess.
17:11 -!- boscop [~boscop@f055084011.adsl.alicedsl.de] has joined #go-nuts
17:29 -!- devrim [~Adium@cpe-72-225-239-227.nyc.res.rr.com] has quit [Quit:
Leaving.]
17:29 < sauerbraten> wrtp: could what?  sorry I don't understand you :D
17:31 < wrtp> i mean that it would be ok if the implementation called close
on the channel.  (but there might easily be some subtlety that means it's not a
good idea)
17:32 < wrtp> you could raise an issue.
17:32 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has quit [Ping
timeout: 245 seconds]
17:33 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts
17:34 < sauerbraten> so I have to close the channel manually?  how do I do
that?
17:36 < wrtp> close(t.C)
17:36 < wrtp> where t is the ticker returned by time.NewTicker
17:37 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has joined #go-nuts
17:38 < sauerbraten> ok good.  I didn't find that closing when looking up t
channels :/
17:38 < sauerbraten> thank you
17:40 -!- MaksimBurnin [~max@44.188-224-87.telenet.ru] has joined #go-nuts
17:40 < wrtp> niemeyer: something like this perhaps?  (with appropriate
magic sprinking).  http://pastebin.com/mtqeWwna
17:42 -!- Oejet [~oejet@212.45.122.120] has joined #go-nuts
17:45 -!- virtualsue [~chatzilla@nat/cisco/x-jdcpkijhkvzcheop] has quit [Ping
timeout: 240 seconds]
17:48 < sauerbraten> are there events for Go? like a pressed key?
17:50 < anticw> you can read bytes from devices
17:50 < anticw> but that's not really going to do what you want just like
that
17:50 < anticw> for a console you want the tty in raw mode or similar
17:52 -!- rbraley [~rbraley@ip72-222-135-139.ph.ph.cox.net] has quit [Ping
timeout: 245 seconds]
17:54 -!- rbraley [~rbraley@ip72-222-135-139.ph.ph.cox.net] has joined #go-nuts
17:54 -!- Oejet [~oejet@212.45.122.120] has quit [Quit: Leaving.]
17:54 -!- Oejet [~oejet@212.45.122.120] has joined #go-nuts
17:59 -!- fabled [~fabled@mail.fi.jw.org] has quit [Quit: Ex-Chat]
18:00 -!- cco3 [~conley@c-69-181-138-209.hsd1.ca.comcast.net] has quit [Ping
timeout: 240 seconds]
18:00 -!- soapy_illusions [~alex@vpn128115.Wireless.McGill.CA] has joined #go-nuts
18:01 -!- kanru [~kanru@118-168-236-72.dynamic.hinet.net] has quit [Ping timeout:
264 seconds]
18:05 -!- plainhao [~plainhao@208.75.85.237] has quit [Remote host closed the
connection]
18:05 -!- plainhao [~plainhao@208.75.85.237] has joined #go-nuts
18:08 -!- ronnyy [~quassel@drsd-4dbdba3f.pool.mediaWays.net] has joined #go-nuts
18:08 -!- skelterjohn [~jasmuth@c-71-230-156-50.hsd1.nj.comcast.net] has joined
#go-nuts
18:13 -!- saschpe_ [~quassel@opensuse/member/saschpe] has joined #go-nuts
18:13 < plexdev> http://is.gd/i3wiv by [Roger Peppe] in go/src/pkg/log/ --
log: ensure writes are atomic.
18:13 -!- Project_2501 [~Marvin@82.84.79.101] has joined #go-nuts
18:15 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts
18:33 -!- markcol [~markcol@74.125.59.1] has quit [Quit: markcol]
18:34 -!- Oejet [~oejet@212.45.122.120] has quit [Read error: Connection reset by
peer]
18:38 -!- Oejet [~oejet@212.45.122.120] has joined #go-nuts
18:41 -!- jhawk28 [~jhawk28@user-387c58d.cable.mindspring.com] has joined #go-nuts
18:42 < niemeyer> wrtp: Yep, that's the direction
18:51 -!- path[l] [~path@59.162.86.164] has quit [Quit: path[l]]
18:55 -!- skelterjohn [~jasmuth@c-71-230-156-50.hsd1.nj.comcast.net] has quit
[Quit: skelterjohn]
18:58 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has quit [Ping
timeout: 240 seconds]
19:00 -!- soapy_illusions [~alex@vpn128115.Wireless.McGill.CA] has quit [Quit:
Leaving]
19:00 -!- markcol [~markcol@74.125.59.1] has joined #go-nuts
19:01 -!- soapy_illusions [~alex@vpn128115.Wireless.McGill.CA] has joined #go-nuts
19:02 -!- soapy_illusions [~alex@vpn128115.Wireless.McGill.CA] has quit [Client
Quit]
19:02 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has joined #go-nuts
19:02 -!- soapy_illusions [~alex@vpn128115.Wireless.McGill.CA] has joined #go-nuts
19:03 -!- markcol_ [~markcol@74.125.59.1] has joined #go-nuts
19:04 -!- markcol_ [~markcol@74.125.59.1] has quit [Client Quit]
19:05 -!- eikenberry [~jae@ivanova.zhar.net] has joined #go-nuts
19:05 -!- markcol_ [~markcol@74.125.59.1] has joined #go-nuts
19:06 -!- markcol_ [~markcol@74.125.59.1] has quit [Client Quit]
19:06 -!- markcol [~markcol@74.125.59.1] has quit [Ping timeout: 265 seconds]
19:07 -!- noam [noam@77.126.219.215] has quit [Read error: Connection reset by
peer]
19:07 -!- noam [noam@77.126.219.215] has joined #go-nuts
19:10 -!- Tv [~tv@gige.bur.digisynd.com] has joined #go-nuts
19:13 -!- cthom [~cthom@wsip-70-169-149-118.hr.hr.cox.net] has quit [Quit:
Leaving]
19:15 -!- artefon [~thiago@dhcp20.usuarios.dcc.ufmg.br] has quit [Quit: bye]
19:19 -!- kkress [~kkress@kkress2.xen.prgmr.com] has joined #go-nuts
19:19 -!- TheMue [~TheMue@p5DDF7CD7.dip.t-dialin.net] has joined #go-nuts
19:28 -!- virtualsue [~chatzilla@nat/cisco/x-ywvvxspezqyiirur] has joined #go-nuts
19:30 -!- soapy_illusions [~alex@vpn128115.Wireless.McGill.CA] has quit [Quit:
Leaving]
19:36 -!- ronnyyy [~quassel@drsd-4db3fa24.pool.mediaWays.net] has joined #go-nuts
19:36 -!- eikenberry [~jae@ivanova.zhar.net] has quit [Quit: End of line.]
19:37 -!- eikenberry [~jae@ivanova.zhar.net] has joined #go-nuts
19:38 -!- HollyRain [~HollyRain@212.106.243.111] has joined #go-nuts
19:38 -!- eikenberry [~jae@ivanova.zhar.net] has quit [Client Quit]
19:39 -!- eikenberry [~jae@ivanova.zhar.net] has joined #go-nuts
19:39 -!- ronnyy [~quassel@drsd-4dbdba3f.pool.mediaWays.net] has quit [Ping
timeout: 255 seconds]
19:45 -!- Project_2501 [~Marvin@82.84.79.101] has quit [Quit: E se abbasso questa
leva che succ...]
19:49 -!- boscop_ [~boscop@f055162139.adsl.alicedsl.de] has joined #go-nuts
19:52 -!- boscop [~boscop@f055084011.adsl.alicedsl.de] has quit [Ping timeout: 245
seconds]
19:56 -!- femtooo [~femto@95-89-197-196-dynip.superkabel.de] has joined #go-nuts
19:59 -!- femtoo [~femto@95-89-197-196-dynip.superkabel.de] has quit [Ping
timeout: 265 seconds]
20:00 < plexdev> http://is.gd/i3McE by [Kyle Consalus] in 8 subdirs of go/
-- Removed bytes.Add and bytes.AddByte; we now have 'append'.
20:04 -!- devrim [~Adium@cpe-72-225-239-227.nyc.res.rr.com] has joined #go-nuts
20:05 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has quit [Read error:
Operation timed out]
20:11 -!- saschpe_ [~quassel@opensuse/member/saschpe] has quit [Read error:
Connection reset by peer]
20:12 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has joined #go-nuts
20:12 -!- Eridius [~kevin@unaffiliated/eridius] has joined #go-nuts
20:15 -!- nigelkerr [~nigelkerr@jstormichfw.jstor.org] has joined #go-nuts
20:15 -!- emjayess [~emjayess@pix1.i29.net] has quit [Quit: Leaving]
20:19 -!- gilles_ [~gilles@zeus.ugent.be] has joined #go-nuts
20:19 < HollyRain> is possible to set another variable when you use range?
instead of:
20:19 < HollyRain> last := len(fields) - 1
20:19 < HollyRain> for i, field := range fields {
20:20 < HollyRain> to set last in the same line than "range"
20:23 <+iant> no, you only get one assignment there
20:41 -!- napsy [~luka@88.200.96.18] has quit [Quit: Lost terminal]
20:41 < nsf> I don't understand what people like about these init statements
in control structures :\
20:42 < nsf> ok, scoping..  maybe, but it's a very rare case when you really
need that
20:56 -!- femtooo [~femto@95-89-197-196-dynip.superkabel.de] has quit [Read error:
Connection reset by peer]
20:58 -!- Project_2501 [~Marvin@82.84.79.101] has joined #go-nuts
20:58 -!- Scorchin [~Scorchin@host86-173-186-254.range86-173.btcentralplus.com]
has joined #go-nuts
21:03 < HollyRain> nsf: because it's a variable which is only to be used
inner that loop
21:03 < nsf> yeah, so what?
21:03 < nsf> you can add another scope if you really need that
21:03 < nsf> { last := ...; for ...  { ...  } }
21:04 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has quit [Ping
timeout: 255 seconds]
21:04 -!- TheMue [~TheMue@p5DDF7CD7.dip.t-dialin.net] has quit [Quit: TheMue]
21:04 < nsf> I understand that these init statements is a try to make things
beautiful, I'm just very sceptic about it
21:06 -!- plainhao [~plainhao@208.75.85.237] has quit [Quit: plainhao]
21:09 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has joined #go-nuts
21:11 -!- noam [noam@77.126.219.215] has quit [Read error: Connection reset by
peer]
21:11 -!- noam [noam@77.126.219.215] has joined #go-nuts
21:13 -!- Makoryu [~bloodgog@pool-71-174-191-10.bstnma.fios.verizon.net] has
joined #go-nuts
21:14 < wrtp> niemeyer: so how do you work the "magic" bit?
21:15 -!- napsy [~luka@88.200.96.18] has joined #go-nuts
21:23 -!- pothos [~pothos@111-240-220-12.dynamic.hinet.net] has quit [Remote host
closed the connection]
21:23 -!- pothos_ [~pothos@111-240-220-12.dynamic.hinet.net] has joined #go-nuts
21:25 -!- Soultake1 [~Soultaker@hell.student.utwente.nl] has quit [Ping timeout:
276 seconds]
21:25 -!- cde [~cde@unaffiliated/cde] has quit [Ping timeout: 276 seconds]
21:25 -!- ville- [~ville@a107.ath.cx] has quit [Ping timeout: 276 seconds]
21:25 -!- Soultaker [~Soultaker@hell.student.utwente.nl] has joined #go-nuts
21:25 -!- kimelto [~kimelto@sd-13453.dedibox.fr] has quit [Ping timeout: 276
seconds]
21:25 -!- jhawk28_ [~jhawk28@user-387c58d.cable.mindspring.com] has joined
#go-nuts
21:26 -!- ville- [~ville@a107.ath.cx] has joined #go-nuts
21:26 -!- kimelto [~kimelto@sd-13453.dedibox.fr] has joined #go-nuts
21:26 -!- evilclone [~graham@dyn1065-37.hor.ic.ac.uk] has joined #go-nuts
21:26 -!- jhawk28 [~jhawk28@user-387c58d.cable.mindspring.com] has quit [Ping
timeout: 260 seconds]
21:27 -!- emjayess [~emjayess@24-116-86-22.cpe.cableone.net] has joined #go-nuts
21:28 -!- felipe [~felipe@my.nada.kth.se] has quit [Ping timeout: 276 seconds]
21:29 -!- Netsplit *.net <-> *.split quits: Eridius, ExtraSpice, noam, exch,
XenoPhoenix, siyb, tokuhiro__, bartbes
21:32 -!- artefon [~thiago@189.59.206.57] has joined #go-nuts
21:32 -!- cde [~cde@sd-23431.dedibox.fr] has joined #go-nuts
21:32 -!- Netsplit over, joins: noam, Eridius, exch, ExtraSpice, siyb, tokuhiro__,
XenoPhoenix, bartbes
21:32 -!- ExtraSpice [~XtraSpice@88.118.33.48] has quit [Max SendQ exceeded]
21:32 -!- ExtraSpice [~XtraSpice@88.118.33.48] has joined #go-nuts
21:33 < evilclone> how come when my function returns os.Error it can return
nil but when it returns my own custom type logError (which impliments the os.Error
interface) it can't return nil?
21:33 < plexdev> http://is.gd/i3YNj by [Rob Pike] in 2 subdirs of go/src/ --
template: change the signature of formatters for future development.
21:35 -!- felipe [~felipe@my.nada.kth.se] has joined #go-nuts
21:35 < exch> os.Error is an interface, not a struct value
21:35 < exch> You can't assign nil in place of a struct value.  try making
it a pointer to logError
21:36 < cde> hi folks
21:36 < exch> lo
21:37 < nsf> cde: hello
21:37 < cde> hey nsf
21:37 < cde> should Go be self-hosting?  discuss
21:37 < nsf> hahaha
21:37 < nsf> yes it should
21:38 < nsf> but not now
21:38 < cde> maybe it's too premature.  still, it would be very nice
21:38 < nsf> yes, the problem is bootstrapping
21:38 < Makoryu> I wouldn't like to write a compiler in a language without
support for generics
21:38 < nsf> although if it the compiler will generate some kind of bytecode
(like LLVM's)
21:38 < nsf> bootstrapping is easy
21:38 < nsf> s/it//
21:39 < cde> doesn't Go already have an IR? like llvm
21:39 < nsf> but I think it will never happen
21:39 < nsf> no, of course not
21:39 < cde> oh.  then it is slightly more difficult
21:39 < nsf> no
21:40 < nsf> there are bytecode formats targetting compilation to the
machine code
21:40 < nsf> like C-- (sort of, not really a bytecode) and LLVM's IR
21:40 < nsf> hell, we can even generate C code
21:40 < cde> ok
21:41 < nsf> but again, I don't think it will happen any time soon
21:41 < cde> so 6g converts the AST to asm without an IR?
21:41 < nsf> cde: yeah, sort of
21:41 -!- ronnyyy [~quassel@drsd-4db3fa24.pool.mediaWays.net] has quit [Remote
host closed the connection]
21:41 < cde> I guess that's why it's both fast and difficult to port to
other archs
21:42 < nsf> no, it's fast because it's designed to be fast
21:42 < nsf> in theory it should be somewhere between Java, C# and C++
21:43 < cde> it might be a pipe dream, but I believe Go is the perfect
language for the fast evolution of computer programs
21:43 < nsf> we'll see
21:44 < cde> it compiles fast, is safe and is also almost as fast as C
21:44 < nsf> I'm a hardcore C guy, but I hate garbage collectors, I don't
trust them
21:44 < Makoryu> cde: Right now it is without a doubt the most expressive
and cutting-edge language ever designed
21:45 < cde> right.  imo the GC and scheduling are the weakest parts
21:45 < nsf> hopefully someone will be able to deliver good GC
21:45 < cde> but those can be improved as well
21:45 < Makoryu> Actually I was lying through my teeth just now but if you
think of it that way that's fine too :V
21:46 < cde> well bootstrapping is the hard part.  then if you have AI it
can evolve its own language
21:46 < Makoryu> cde: Good god
21:47 < Makoryu> That step is a little far off, don't you think?
21:47 < cde> people keep telling me that.  maybe, I don't know
21:48 -!- HollyRain [~HollyRain@212.106.243.111] has left #go-nuts []
21:48 < cde> before we managed to fly, people thought flying was so
difficult, even impossible
21:48 < cde> so goes AI
21:49 < nsf> cde: those are different things
21:49 < nsf> "slightly"
21:49 -!- photron [~photron@port-92-201-120-127.dynamic.qsc.de] has quit [Ping
timeout: 255 seconds]
21:50 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts
21:52 -!- sauerbraten [~sauerbrat@p508CFC3C.dip.t-dialin.net] has quit [Remote
host closed the connection]
21:55 < cde> nsf: yes, I know
21:56 < cde> like I said, it's merely a pipe dream
21:57 -!- cde [~cde@sd-23431.dedibox.fr] has quit [Changing host]
21:57 -!- cde [~cde@unaffiliated/cde] has joined #go-nuts
21:57 -!- nigelkerr [~nigelkerr@jstormichfw.jstor.org] has quit [Quit: nigelkerr]
21:59 -!- zozoR [~zozoR@5634798d.rev.stofanet.dk] has quit [Quit: Morten.  Desu~]
22:01 < evilclone> exch: how come you can assign nil in place of an
interface, though?  are interfaces nil-able but structs not?
22:02 < nsf> evilclone: yes
22:02 < Axsuul> hmm what does Go do to minimize race conditions in
concurrency?
22:03 < wrtp> Axsuul: it provides channels, which make it easy to work out
who's doing what with what...
22:03 < nsf> Axsuul: different philosophy for concurrent programming and
language support for it
22:03 < nsf> although I think it's inefficient :D
22:03 < nsf> but I can't prove it
22:03 < Axsuul> Ah :)
22:03 < ww> there's an interesting article somewhere on the blog showing how
to use race conditions to implement what c would call pointers
22:04 < ww> (or you could just use the unsafe package)
22:04 < Makoryu> That's madness
22:07 -!- devrim [~Adium@cpe-72-225-239-227.nyc.res.rr.com] has quit [Quit:
Leaving.]
22:14 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.3]
22:15 -!- sacho [~sacho@46.10.20.221] has quit [Ping timeout: 245 seconds]
22:16 -!- Makoryu [~bloodgog@pool-71-174-191-10.bstnma.fios.verizon.net] has left
#go-nuts ["Quit: Quit: Quit: Qui*** Exception: Stack overflow."]
22:17 -!- fenicks [~christian@log77-3-82-243-254-112.fbx.proxad.net] has left
#go-nuts []
22:17 -!- napsy [~luka@88.200.96.18] has quit [Quit: Lost terminal]
22:19 -!- DarthShrine [~angus@60-242-109-62.tpgi.com.au] has joined #go-nuts
22:19 -!- DarthShrine [~angus@60-242-109-62.tpgi.com.au] has quit [Changing host]
22:19 -!- DarthShrine [~angus@pdpc/supporter/student/DarthShrine] has joined
#go-nuts
22:29 < wrtp> ww: you talking about this?
http://research.swtch.com/2010/02/off-to-races.html
22:31 -!- wrtp [~rog@92.17.41.184] has quit [Quit: wrtp]
22:36 < Rennex> heh, that's nifty
22:39 -!- ronnyy [~quassel@drsd-4db3fa24.pool.mediaWays.net] has joined #go-nuts
22:40 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts
22:48 -!- ronnyy [~quassel@drsd-4db3fa24.pool.mediaWays.net] has quit [Remote host
closed the connection]
22:57 -!- meanburrito920 [~john@unaffiliated/meanburrito920] has joined #go-nuts
22:58 -!- rspec22 [~rothspec@69.55.231.142] has joined #go-nuts
22:59 -!- tensorpudding [~user@99.148.202.191] has joined #go-nuts
23:00 -!- Oejet [~oejet@212.45.122.120] has quit [Ping timeout: 255 seconds]
23:05 -!- Project_2501 [~Marvin@82.84.79.101] has quit [Quit: E se abbasso questa
leva che succ...]
23:09 -!- sacho [~sacho@79-100-173-234.btc-net.bg] has joined #go-nuts
23:09 -!- virtualsue [~chatzilla@nat/cisco/x-ywvvxspezqyiirur] has quit [Quit:
ChatZilla 0.9.86 [Firefox 3.5.15/20101026200251]]
23:39 -!- emjayess [~emjayess@24-116-86-22.cpe.cableone.net] has quit [Quit:
Leaving]
23:45 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has quit [Quit:
Verlassend]
23:49 -!- Venom_tamale [~pjacobs@66.54.185.131] has quit [Quit: Venom_tamale]
23:50 < rspec22> is it accurate to say that go permits only one package per
directory?
23:50 < KirkMcDonald> No.
23:53 < rspec22> not sure what I've done wrong, then; from gotest I get
'package bar; expected foo' when I introduce a .go file specifying a package bar
into a dir that previously only contained .go files using package foo
23:54 -!- Fish [~Fish@9fans.fr] has quit [Quit: So Long, and Thanks for All the
Fish]
--- Log closed Thu Dec 02 00:00:35 2010