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

--- Log opened Fri Dec 24 00:00:01 2010
00:05 -!- kingfishr [~kingfishr@c-98-207-87-183.hsd1.ca.comcast.net] has quit
[Remote host closed the connection]
00:06 -!- Scorchin [~Scorchin@host86-145-54-192.range86-145.btcentralplus.com] has
quit [Quit: Scorchin]
00:09 -!- noktoborus [debian-tor@gateway/tor-sasl/noktoborus] has joined #go-nuts
00:09 -!- Eko [~eko@adsl-76-251-235-206.dsl.ipltin.sbcglobal.net] has joined
#go-nuts
00:12 -!- _nil [~aiden@c-24-147-65-44.hsd1.ma.comcast.net] has quit [Ping timeout:
260 seconds]
00:14 < Urtie> Can an interface only specify methods, not fields?
00:18 < vsmatck> yeah, only methods.
00:23 < Tv> Urtie: basically, you're forced to do getters/setters, so actual
implementation details stay flexible
00:23 < Urtie> Understood.  Seems like a bit of unnecessary bookkeeping in
some cases, but not the end of the world :)
00:24 < Tv> you may also notice that the example interfaces in go itself
practically never need to do that
00:24 < Namegduf> I agree when writing types in general, but interfaces are
explicitly meant to be abstract, so...
00:24 < aiju> interfaces should stay _minimal_ anyway
00:24 < Namegduf> Yeah.
00:24 < Namegduf> One-method interfaces are common and popular.
00:25 < Namegduf> io.Reader and io.Writer, for example.  os.Error, too.
00:29 -!- tensorpudding [~user@99.148.202.191] has joined #go-nuts
00:31 < Eko> Hmm...  I'm having regexp issues after the update.  Anyone
else?
00:33 < Eko> This is weird...  I seem to be having issues with two versions
of regexp, even though I've done a ./clean.bash and have cleaned out the project
that I'm working on.  No idea where the old definition is coming from.  Anyone
around who can help if I nopaste my error?
00:34 < Tv> Eko: don't ask about asking; just ask
00:36 -!- alkavan [~alkavan@87.68.151.176] has quit [Quit: Leaving]
00:37 < Eko> regexp compile issue: http://pastebin.com/qZVXf8tp
00:37 < adg> Eko: run ./make.bash
00:38 < adg> and then goinstall your libraries _afterward_
00:38 -!- lifespective [~espeed@63.246.231.57] has quit [Ping timeout: 245
seconds]
00:39 < Eko> adg: Yep.  did that.  I rm'd them all, then did ./all.bash,
then did goinstall -u -a, then tried to compile the above.
00:40 < adg> rm -rf $GOROOT/src/pkg/github.com/droundy/goopt
$GOROOT/src/pkg/goconf.googlecode.com/hg
00:40 < adg> then do it all again ;)
00:41 < adg> i'll bet there's old package binaries in those directories
00:42 < Eko> Magical ^_^
00:42 < Eko> I rm'd them from $GOROOT/pkg/ but not from $GOROOT/src/pkg
00:42 < adg> yeah they're built under src/ before being installed to pkg/
00:43 * Eko goes to poke around in goinstall to see if there's an easy way to fix
that.
00:43 < adg> an idea i'm considering is doing a 'make clean' after a
successful 'make install'
00:43 * Eko suspects that he can add a make clean install when -u is in the
option.
00:43 < adg> so that no binaries are left behind after an install
00:44 < adg> that could also work
00:44 < Eko> or, since go is so ridiculously fast to compile, do a make
clean install every time ^_^
00:50 < Eko> yep, that was easy.
00:50 < Eko> will put in a CL.
00:51 < Eko> (tested by updating to an old version of go, it broke, fixed
manually, changed to add "make clean install", updated to new, worked)
00:52 -!- lifespective [~espeed@63.246.231.57] has joined #go-nuts
01:00 < plexdev> http://is.gd/jl5go by [Caine Tighe] in
go/src/cmd/goinstall/ -- goinstall/download.go: Add checkout concept and helper
functions to clean and fix implementation (Issue 1265)
01:06 < Eko> adg: not sure if that CL went through right.  I got an "abort:
HTTP Error 403: Forbidden" after the "Issue created." line.
01:23 -!- boscop_ [~boscop@g227116175.adsl.alicedsl.de] has joined #go-nuts
01:25 -!- niekie_ [~niek@CAcert/Assurer/niekie] has joined #go-nuts
01:25 -!- artefon [~thiago@189.115.131.154] has joined #go-nuts
01:26 -!- askhader_ [~askhader@taurine.csclub.uwaterloo.ca] has joined #go-nuts
01:26 -!- jessta_ [~jessta@li7-205.members.linode.com] has joined #go-nuts
01:27 -!- sjd [~sjd@204-195-89-40.wavecable.com] has quit [Quit: sjd]
01:27 -!- enferex_ [~enferex@users.757.org] has joined #go-nuts
01:27 -!- mpl_ [~mpl@smgl.fr.eu.org] has joined #go-nuts
01:27 -!- jyxent_ [~jyxent@129.128.191.96] has joined #go-nuts
01:28 -!- askhader [~askhader@taurine.csclub.uwaterloo.ca] has quit [Disconnected
by services]
01:31 -!- skelterjohn_ [~jasmuth@c-68-45-238-234.hsd1.nj.comcast.net] has joined
#go-nuts
01:31 -!- Netsplit *.net <-> *.split quits: noktoborus, ymasory,
skelterjohn, fabled, mpl, Innominate, jyxent, jessta, Venom_X, niekie, (+6 more,
use /NETSPLIT to show all of them)
01:32 -!- Netsplit over, joins: Venom_X
01:32 -!- Netsplit over, joins: tav
01:34 -!- BlaSux [7f000001@69.195.144.4] has joined #go-nuts
01:35 -!- shvntr [~shvntr@116.26.137.103] has joined #go-nuts
01:38 -!- Adys [~Adys@unaffiliated/adys] has joined #go-nuts
01:38 -!- sacho [~sacho@87-126-6-67.btc-net.bg] has joined #go-nuts
01:39 -!- Innominate [~sirrobin@cpe-076-182-074-143.nc.res.rr.com] has joined
#go-nuts
01:39 -!- ymasory [~ymasory@c-76-99-55-224.hsd1.pa.comcast.net] has joined
#go-nuts
01:39 -!- fabled [~fabled@83.145.235.194] has joined #go-nuts
01:39 -!- l00t [~i-i3id3r_@20150106099.user.veloxzone.com.br] has joined #go-nuts
01:40 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has joined #go-nuts
01:40 -!- jeff2 [~jeff@pool-108-13-140-226.lsanca.fios.verizon.net] has joined
#go-nuts
01:53 -!- Venom_X [~pjacobs@66.54.185.131] has quit [Quit: Venom_X]
01:55 -!- vdrab [~vdrab@pd3e9b4.kyotnt01.ap.so-net.ne.jp] has joined #go-nuts
02:02 -!- vdrab [~vdrab@pd3e9b4.kyotnt01.ap.so-net.ne.jp] has quit [Quit: vdrab]
02:07 < Eko> Can you use a pointer as the key of a map?
02:08 < adg> Eko: yes
02:08 < adg> any type that defines equality (==)
02:09 -!- artefon [~thiago@189.115.131.154] has quit [Read error: Connection reset
by peer]
02:10 < Eko> k.  I tried it in the playground and it worked, but I thought
that I had seen somewhere that it was a Bad Thing(tm).
02:14 -!- jeff2 [~jeff@pool-108-13-140-226.lsanca.fios.verizon.net] has quit
[Quit: This computer has gone to sleep]
02:16 -!- ExtraSpice [~XtraSpice@88.118.33.48] has quit [Quit: Leaving]
02:19 -!- skelterjohn [~jasmuth@c-68-45-238-234.hsd1.nj.comcast.net] has quit
[Quit: skelterjohn]
02:21 -!- vdrab [~vdrab@pd3e9b4.kyotnt01.ap.so-net.ne.jp] has joined #go-nuts
02:22 -!- skelterjohn [~jasmuth@c-68-45-238-234.hsd1.nj.comcast.net] has joined
#go-nuts
02:27 -!- skelterjohn [~jasmuth@c-68-45-238-234.hsd1.nj.comcast.net] has quit
[Quit: skelterjohn]
02:33 -!- vdrab [~vdrab@pd3e9b4.kyotnt01.ap.so-net.ne.jp] has quit [Quit: vdrab]
02:35 -!- DarthShrine [~angus@60-242-109-62.tpgi.com.au] has joined #go-nuts
02:35 -!- DarthShrine [~angus@60-242-109-62.tpgi.com.au] has quit [Changing host]
02:35 -!- DarthShrine [~angus@pdpc/supporter/student/DarthShrine] has joined
#go-nuts
02:36 < adg> Eko: nope, seems like a reasonable thing to do
02:40 -!- ExtraSpice [~XtraSpice@88.118.33.48] has joined #go-nuts
02:41 -!- foocraft [~dsc@78.100.194.174] has joined #go-nuts
02:55 -!- boscop_ [~boscop@g227116175.adsl.alicedsl.de] has quit [Ping timeout:
240 seconds]
03:01 -!- boscop_ [~boscop@f055251208.adsl.alicedsl.de] has joined #go-nuts
03:10 -!- ExtraSpice [~XtraSpice@88.118.33.48] has quit [Ping timeout: 276
seconds]
03:10 -!- Wiz126 [~Wiz@24.229.245.72.res-cmts.sm.ptd.net] has quit [Ping timeout:
276 seconds]
03:12 -!- brad_ [621a78e5@gateway/web/freenode/ip.98.26.120.229] has joined
#go-nuts
03:12 -!- Wiz126 [~Wiz@24.229.245.72.res-cmts.sm.ptd.net] has joined #go-nuts
03:12 < brad_> hi, does anyone know why fmt.Print won't print a variable
unless I explicitly set a type on the variable?
03:13 < brad_> hmm, nevermind, I think I figured it out
03:19 -!- werdan7 [~w7@freenode/staff/wikimedia.werdan7] has joined #go-nuts
03:23 -!- skelterjohn [~jasmuth@c-68-45-238-234.hsd1.nj.comcast.net] has joined
#go-nuts
03:28 -!- sjd [~sjd@204-195-89-40.wavecable.com] has joined #go-nuts
03:28 -!- skelterjohn [~jasmuth@c-68-45-238-234.hsd1.nj.comcast.net] has quit
[Client Quit]
03:41 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.3]
03:50 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit
[Ping timeout: 276 seconds]
04:03 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined
#go-nuts
04:20 < Eko> Here's a dodgy one...  when accessing a map through for key :=
range map, if I delete the current key from the map, am I opening myself up for
trouble?
04:21 < Eko> The specification only specifically says what happens if you
delete one you haven't gotten to or if you add keys.
04:23 < Tv> Eko: i think your safe
04:23 < Tv> *you're
04:23 < Eko> Tv: I was hoping so.  Thanks.
04:24 < Eko> I'm inches away from having a minimally-functional IRC server
in Go :D
04:25 < Eko> I already have connection registration, channel joining, nick
changes, and quit notifications.  Only thing left for my first major milestone is
channel/user PRIVMSG and PART, which should be pretty easy to build on what I have
now.
04:27 < Eko> (it's remarkable how different this is structured from the IRC
server I wrote in C. Also, it took me two weeks to get this far in C, and it's
been about 24 hours since I started the project in Go.)
04:31 -!- rejb [~rejb@unaffiliated/rejb] has quit [Ping timeout: 276 seconds]
04:34 -!- ios_ [~ios@180.191.130.60] has joined #go-nuts
04:37 -!- boscop_ [~boscop@f055251208.adsl.alicedsl.de] has quit [Ping timeout:
240 seconds]
04:43 -!- foocraft [~dsc@78.100.194.174] has quit [Quit: Leaving]
04:44 -!- foocraft [~dsc@78.100.194.174] has joined #go-nuts
04:45 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts
04:47 -!- fabled [~fabled@83.145.235.194] has quit [Quit: Ex-Chat]
04:54 -!- hokapoka [~hokapoka@hoka.hokapoka.com] has quit [Read error: Operation
timed out]
04:55 -!- hokapoka [~hokapoka@hoka.hokapoka.com] has joined #go-nuts
05:00 < adg> Eko: =D I'd like to take a look when you're done.
05:06 < Eko> adg: lol, I wish I ever got done with projects.  I'll let you
know when I check it in tonight (jaid.googlecode.com/hg)
05:06 < Eko> I wish I had the discipline to do with this what you did with
the sudoku solver (that was you right?  or was that rsc...)
05:07 < Eko> but I get on mean coding streaks and don't want to document, at
least when I'm tinkering.
05:14 < foocraft> Eko, is jaid intended to be distributed?
05:16 < Eko> foocraft: sure, maybe, if people like it
05:16 < Eko> I like making things that I think are cool, and sometimes other
people agree.  ^_^
05:19 -!- cco3-hampster [~conleyo@nat/google/x-iwxdeapefdntphco] has quit [Read
error: Connection reset by peer]
05:29 -!- adu [~ajr@pool-173-66-253-179.washdc.fios.verizon.net] has joined
#go-nuts
05:29 < adu> hi
05:30 < adu> is there a way to specify that a pointer is readonly?
05:31 < Eko> adu: In circumstances where you want data to be read-only, you
might want to consider having a goroutine that manages the data that you
communicate through with channels.
05:33 < Eko> adu: though I guess that didn't answer your question; no, I do
not believe that there is.
05:34 < adu> so nothing like "* interface{} const"
05:34 < adu> akin to C's "const void *"
05:49 -!- TheSaint [~thesaint@166.205.9.28] has joined #go-nuts
05:50 -!- ryanu [~ryan_@c-98-200-189-134.hsd1.tx.comcast.net] has joined #go-nuts
05:52 -!- cirno [~cirno@77.232.15.216] has quit [Quit: Leaving]
05:55 -!- cirno [~cirno@77.232.15.216] has joined #go-nuts
06:07 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Quit: Leaving]
06:08 < anticw> adu: there is no const
06:08 < adu> of course there is, but apparently it can't be used like that
06:08 < anticw> well, not const like in C
06:09 < anticw> because const in C (& C++) is very subtle and confusing
06:09 < adu> C++ morso
06:09 -!- joatmon54 [~engest@cpe-66-74-195-46.san.res.rr.com] has joined #go-nuts
06:10 < adu> because you can put it before, during, between, inside,
outside, and after pointers
06:14 < adu> and that includes functions, methods, and pointer-to-members
06:20 < cbeck> And it's left associative except when it's right associative
06:20 < adu> wow
06:22 < Eko> I love that go is so unambiguous.
06:22 < Eko> having a member that's Client *Client is so handy ^_^
06:27 < anticw> i have mixed feelings when i use the same name for a member
and a type
06:29 -!- l00t [~i-i3id3r_@20150106099.user.veloxzone.com.br] has quit [Ping
timeout: 265 seconds]
06:29 < adu> it happens in Haskell all the time, you get used to it
06:29 < adu> Eko: I love that Go has such rich literal syntax
06:30 * adu wonders if anyone has given a name to it like GoSON
06:31 < Eko> anticw: I quickly start running out of ways to abbreviate type
names when the type name is also a functional name and a referential name (like
"client" or "user")
06:34 < Eko> anyone who wants to help load-test and bug-check my (very
fledgeling) Go-based IRC server, hop over to irc.didntdoit.net:16667 #test :D
06:34 -!- nettok [~quassel@200.119.160.200] has joined #go-nuts
06:34 -!- joatmon54 [~engest@cpe-66-74-195-46.san.res.rr.com] has quit [Quit:
Ex-Chat]
06:35 < Eko> adg: (anyone else too) the source has been checked into
jaid.googlecode.com if you want to have a look
06:36 -!- TheSaint [~thesaint@166.205.9.28] has quit [Quit: Colloquy for iPhone -
http://colloquy.mobi]
06:37 < adu> what would be a good name for it...  GoON?  GoOF?
06:37 < anticw> shaggy
06:37 < Eko> lol, goof would be fun.
06:37 < adu> Go Object Format?
06:38 < Eko> that would fit nicely with the Go Object File Recompiler, which
is my outdated attempt at an auto-build tool, lol
06:38 < Eko> maybe in my 20% time I'll try to get that thing up to speed
with the way the community has decided to structure projects.
06:39 * Eko is still somewhat unclear on what he'll be allowed to work on.
06:39 < adu> my major qualm would be with arrays, i.e.  {1,2,3} or [1,2,3]
(so as to be a superset of JSON) and what to do about types, perhaps restrict to
struct/int#?
06:41 < Eko> design decisions ;-)
06:42 < anticw> im a bit lost ...  this is some alternative to json you're
proposing?
06:42 < adu> yes
06:42 < adu> basically typed JSON
06:42 < anticw> gobs
06:42 < adu> I've already put some my thoughts together here:
http://drosera.co.cc/drospecs/drosera_dson.html
06:43 < adu> its terribly incomplete
06:44 < Eko> anticw: I know they have a binary gob format, but does it have
a text format?
06:44 < anticw> no
06:44 < anticw> to be fair, i used json in more places that i should for
that reason
06:44 -!- keithcascio [~keithcasc@nat/google/x-kodlbojywbyddbgv] has quit [Quit:
Leaving]
06:45 < adu> is gob like MPEG4/ISOM?
06:45 < anticw> even with some very large sets (large for json)
06:45 < anticw> src/pkg/gob
06:46 < anticw> adu: you're sf bay area?
06:46 < adu> nope, I used to be, but now I'm in the DC area
06:46 < anticw> escaped!
06:46 < adu> lol
06:46 < adu> anticw: any reason you ask?
06:47 < anticw> oh, there are a few Go people in the bay area ...  sooner or
later we have to figure out some sort of meetup
06:47 < anticw> so mostly curious at this stage
06:47 < cbeck> I'm in redwood city for the holidays, then back to Portland,
OR
06:48 * adu <3 OR
06:49 < anticw> OR is one of those places where i rately hear a bad thing,
everyone there speaks highly of it
06:49 < adu> well my favorite meditation CDs are made in Oregon
06:50 < anticw> there needs to be a city named Logical in Oregon
06:50 < adu> also Haskell was made there
06:50 < adu> or at least Galois, Inc.  is there
06:51 < anticw> haskell i assume came from the UK, probably cambridge
06:51 < adu> i think every state should have a city named Mountain View
06:51 < Eko> haha.
06:52 < adu> well, maybe it's that I've seen several Haskell-based projects
out of Portland, OR
06:52 < Eko> I'm moving out to MtV in February to start at Google :O
06:52 < Eko> not doing Go, though.
06:53 < adu> Eko: I'm so jealous!
06:53 < adu> I want to work at Google very very much
06:53 < vsmatck> I applied to be a C++ programmer there.  I got screened
out.  Didn't get an interview.  *shrug*
06:53 < Eko> I was half hoping they'd find me a job in Australia, but alas.
I guess I'll have to live with San Francisco ;)
06:53 < anticw> Eko: why?
06:53 < Eko> <3 Australia.
06:54 < Eko> and New Zealand.
06:54 < vsmatck> I got a friend who works there.  Sounds decent.  They pay a
lot.
06:54 < adu> Eko: have you seen hobbiton?
06:54 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.3]
06:54 < Eko> lol, nope
06:54 < anticw> Eko: i've worked in mtv and san francisco and in between ...
and i can tell you the commute sucks if you can avoid it
06:54 < cbeck> I have a few friends who work for Galois, it's a great place
06:54 < cbeck> Puppetlabs is here as well
06:55 < anticw> portland is a pretty big tech city
06:55 < Eko> anticw: I'm going to try to get an apt near the google shuttle.
I'm looking at mostly apartments within a 15 minute drive, so the commute should
be better than it was when I worked at TI in Houston even on the worst days.
06:55 < adu> oOo shuttle
06:55 < Eko> indeed.
06:55 < Eko> They spoil us.
06:55 < anticw> Eko: there are a couple of shuttle routes, you can usually
get to one pretty easily
06:56 < anticw> 8th & market there is a stop i think, that's near a muni
exit
06:56 -!- eikenberry [~jae@ivanova.zhar.net] has quit [Quit: End of line.]
06:56 < Eko> I have a giant spreadsheet of all of the stops, I just need to
mark them on a map or something and compare distances to the apartments I'm
looking at.
06:57 < cbeck> <3 Engineers
06:57 < adu> lol
06:57 < Eko> >:-)
06:57 < Eko> I don't see how non-engineers survive.
06:58 < cbeck> I'm visiting family atm, and it continually astonishes me at
times.
06:58 < adu> Eko: by asking engineers or by asking people who lookup what
the engineers say on Google
06:58 < Eko> rofl.
06:59 < adu> srsly
07:01 * Eko idly dreams of #go-nuts someday being hosted entirely on (his!)
go-based IRC server
07:01 < Eko> gives another peripheral meaning to "self-hosting" language,
bwahahaa.
07:01 * adu dreams of Google buying the copyright to my go compiler
07:02 < Eko> which one's that?  gccgo?
07:02 < adu> no, it's in the works, it will be called dsgo
07:02 < Eko> ah.
07:03 < Eko> claim to fame?
07:03 < adu> compiles to C
07:03 < adu> maybe
07:03 < Eko> lol
07:03 < adu> we'll see
07:04 < Eko> wow, my IRC server only has 1k lines of code
07:04 < Eko> the core of my C++ IRC bot had 7k...
07:04 < Eko> that's not including all of the loadable modules that actually
DID stuff.
07:05 < Eko> though, to be fair, right now my IRC server doesn't really do
much either, but that's not the point.
07:05 < Eko> <3 Go.
07:05 < adu> me too
07:06 < Eko> Now time to go mindlessly watch a violent movie.  Cheers y'all!
If you're bored, irc.didntdoit.net:16667 #test , it should be up unless you can
figure out how to panic it :>
07:06 < cbeck> I was in the middle of writing a pure C IRC bot when I picked
up Go. It was a welcome respite from masochism
07:07 < cbeck> Code available anywhere?
07:07 < Eko> cbeck: I've written an IRC bot in every language I know (last
time I counted, there were at least 15 bots in my collection)
07:07 < Eko> cbeck: jaid.googlecode.com
07:07 < Eko> looking at the source code is cheating ;-)
07:07 < Eko> looking at the TODO even more so.
07:07 < vsmatck> String processing is really hard in C..
07:08 < Eko> meh
07:08 < vsmatck> I like how I can be fast and loose with slices in Go. heh
07:08 < Eko> IRC is braindead simple to parse
07:08 < cbeck> It is, but it was also my intro to raw socket IO
07:08 < Eko> heheheehh!
07:08 < Eko> yeah, neworking in C is a bitch and her mother.
07:09 < adu> ack
07:09 < adu> i can't talk
07:10 < adu> in #test that is
07:10 -!- Tv [~tv@cpe-76-168-227-45.socal.res.rr.com] has quit [Ping timeout: 240
seconds]
07:11 < Eko> adu: orly?
07:12 < adu> really
07:12 < adu> i could try with a different client
07:12 < Eko> I'm not seeing commands from you =/
07:12 < Eko> just PINGs.
07:12 < adu> Eko: I can't send any
07:12 < Eko> let me restart with some more debugging.
07:12 * cbeck fires up netcat
07:13 < adu> ok, so I can send /msg to people
07:13 < adu> but I can't send /msg to rooms
07:14 < Eko> that's really odd.
07:16 -!- Wiz126 [~Wiz@24.229.245.72.res-cmts.sm.ptd.net] has quit [Ping timeout:
265 seconds]
07:16 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts
07:16 -!- Wiz126 [~Wiz@24.229.245.72.res-cmts.sm.ptd.net] has joined #go-nuts
07:19 -!- Fish- [~Fish@9fans.fr] has joined #go-nuts
07:20 -!- TheSaint [~thesaint@166.205.9.28] has joined #go-nuts
07:23 -!- nettok [~quassel@200.119.160.200] has quit [Ping timeout: 255 seconds]
07:30 -!- adu [~ajr@pool-173-66-253-179.washdc.fios.verizon.net] has quit [Quit:
adu]
07:31 -!- adu [~ajr@pool-173-66-253-179.washdc.fios.verizon.net] has joined
#go-nuts
07:41 -!- nettok [~quassel@200.119.188.227] has joined #go-nuts
07:42 -!- zozoR [~zozoR@56346ed3.rev.stofanet.dk] has joined #go-nuts
07:53 < adu> is there a pragma syntax?
07:53 < Eko> not that I know of...
07:53 < vsmatck> There is no preprocessor.
07:54 < Eko> well, no standard preprocessor.
07:54 < Eko> droundy has one that does templates, and there are a few
others.
07:55 < adu> not #pragma, _Pragma
07:55 < adu> i suppose it could be a user-defined function
07:55 < adu> pragma("x")
07:58 < adu> pragma "x" would be nicer
08:00 < adu> import pragma "x"
08:00 < adu> ooo that's currently valid syntax
08:00 -!- enferex_ [~enferex@users.757.org] has quit [Ping timeout: 260 seconds]
08:00 < vsmatck> hm, that's just in there to resolve naming conflicts for
package names.
08:07 -!- sjd [~sjd@204-195-89-40.wavecable.com] has quit [Remote host closed the
connection]
08:07 -!- sjd [~sjd@204-195-89-40.wavecable.com] has joined #go-nuts
08:09 -!- piranha [~piranha@5ED42E59.cm-7-5a.dynamic.ziggo.nl] has joined #go-nuts
08:10 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts
08:17 -!- vdrab [~vdrab@pd3e9b4.kyotnt01.ap.so-net.ne.jp] has joined #go-nuts
08:19 -!- enferex [~enferex@users.757.org] has joined #go-nuts
08:19 -!- nettok [~quassel@200.119.188.227] has quit [Ping timeout: 260 seconds]
08:23 -!- femtoo [~femto@95-89-196-179-dynip.superkabel.de] has joined #go-nuts
08:24 -!- ExtraSpice [~XtraSpice@88.118.33.48] has joined #go-nuts
08:26 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts
08:27 -!- nettok [~quassel@200.119.188.227] has joined #go-nuts
08:30 -!- vdrab [~vdrab@pd3e9b4.kyotnt01.ap.so-net.ne.jp] has quit [Quit: vdrab]
08:33 -!- htoothrot [~mux@66-169-185-121.dhcp.ftwo.tx.charter.com] has quit [Ping
timeout: 255 seconds]
08:34 -!- \toothrot [~mux@66-169-185-121.dhcp.ftwo.tx.charter.com] has joined
#go-nuts
08:40 -!- photron_ [~photron@port-92-201-208-109.dynamic.qsc.de] has joined
#go-nuts
08:44 -!- Fish- [~Fish@9fans.fr] has quit [Quit: So Long, and Thanks for All the
Fish]
08:55 -!- ryanu [~ryan_@c-98-200-189-134.hsd1.tx.comcast.net] has quit []
08:55 -!- Project_2501 [~Marvin@82.84.84.96] has joined #go-nuts
09:14 -!- nettok [~quassel@200.119.188.227] has quit [Ping timeout: 240 seconds]
09:19 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has quit [Quit:
Verlassend]
09:23 -!- TheSaint [~thesaint@166.205.9.28] has quit [Quit: Colloquy for iPhone -
http://colloquy.mobi]
09:29 -!- femtoo [~femto@95-89-196-179-dynip.superkabel.de] has quit [Read error:
Connection reset by peer]
09:30 -!- skejoe [~skejoe@188.114.142.162] has joined #go-nuts
09:32 -!- Project-2501 [~Marvin@82.84.91.151] has joined #go-nuts
09:36 -!- Project_2501 [~Marvin@82.84.84.96] has quit [Ping timeout: 276 seconds]
09:44 -!- napsy [~luka@88.200.96.18] has joined #go-nuts
09:56 -!- ildorn [~ildorn@p5B2FCB16.dip.t-dialin.net] has joined #go-nuts
09:58 -!- tensorpudding [~user@99.148.202.191] has quit [Remote host closed the
connection]
10:02 -!- ExtraSpice [~XtraSpice@88.118.33.48] has quit [Remote host closed the
connection]
10:02 -!- Fish- [~Fish@9fans.fr] has joined #go-nuts
10:06 -!- PortatoreSanoDiI [~Marvin@82.84.75.231] has joined #go-nuts
10:09 -!- photron_ [~photron@port-92-201-208-109.dynamic.qsc.de] has quit [Ping
timeout: 255 seconds]
10:10 -!- Project-2501 [~Marvin@82.84.91.151] has quit [Ping timeout: 276 seconds]
10:14 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.3]
10:17 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Quit: |Craig|]
10:19 -!- sjd [~sjd@204-195-89-40.wavecable.com] has quit [Quit: sjd]
10:20 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit
[Ping timeout: 250 seconds]
10:20 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined
#go-nuts
10:40 -!- Project_2501 [~Marvin@82.84.72.194] has joined #go-nuts
10:43 -!- ExtraSpice [~XtraSpice@88.118.33.48] has joined #go-nuts
10:44 -!- PortatoreSanoDiI [~Marvin@82.84.75.231] has quit [Ping timeout: 260
seconds]
10:48 -!- Project_2501 [~Marvin@82.84.72.194] has quit [Ping timeout: 240 seconds]
10:51 -!- Scorchin [~Scorchin@host86-147-116-169.range86-147.btcentralplus.com]
has joined #go-nuts
10:51 -!- xash [~xash@d047026.adsl.hansenet.de] has joined #go-nuts
10:52 -!- ildorn [~ildorn@p5B2FCB16.dip.t-dialin.net] has quit [Quit: Leaving.]
10:54 -!- Project_2501 [~Marvin@82.84.72.194] has joined #go-nuts
11:01 -!- virtualsue [~chatzilla@nat/cisco/x-qivuimsetouvmxlp] has joined #go-nuts
11:19 -!- cirno [~cirno@77.232.15.216] has quit [Ping timeout: 265 seconds]
11:27 -!- r0h4n [~rohan@59.96.92.83] has joined #go-nuts
11:33 -!- Fish [~Fish@coss6.exosec.net] has quit [Disconnected by services]
11:34 -!- Fish- [~Fish@coss6.exosec.net] has joined #go-nuts
11:40 -!- r0h4n [~rohan@59.96.92.83] has left #go-nuts ["WeeChat 0.3.3"]
11:46 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has quit [Quit: WeeChat
0.3.2]
11:48 -!- sauerbraten [~sauerbrat@p508CF636.dip.t-dialin.net] has joined #go-nuts
11:53 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-158-226.clienti.tiscali.it] has
joined #go-nuts
11:53 -!- rutkowski [~adrian@178235049018.walbrzych.vectranet.pl] has joined
#go-nuts
11:54 -!- femtoo [~femto@95-89-196-179-dynip.superkabel.de] has joined #go-nuts
11:55 -!- go-irc-c [~go-irc-ch@195-132-97-104.rev.numericable.fr] has quit [Ping
timeout: 265 seconds]
11:55 -!- Project_2501 [~Marvin@82.84.72.194] has quit [Ping timeout: 240 seconds]
11:57 -!- Project_2501 [~Marvin@82.84.77.225] has joined #go-nuts
11:58 -!- rejb [~rejb@unaffiliated/rejb] has joined #go-nuts
11:58 -!- zozoR [~zozoR@56346ed3.rev.stofanet.dk] has quit [Quit: Morten.  Desu~]
11:59 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-158-226.clienti.tiscali.it] has
quit [Ping timeout: 250 seconds]
12:02 -!- skejoe_ [~skejoe@188.114.142.162] has joined #go-nuts
12:05 -!- skejoe [~skejoe@188.114.142.162] has quit [Ping timeout: 260 seconds]
12:16 -!- vdrab [~vdrab@pd3e9b4.kyotnt01.ap.so-net.ne.jp] has joined #go-nuts
12:19 -!- femtooo [~femto@95-89-196-179-dynip.superkabel.de] has joined #go-nuts
12:22 -!- femtoo [~femto@95-89-196-179-dynip.superkabel.de] has quit [Ping
timeout: 240 seconds]
12:23 -!- femtoo [~femto@95-89-196-179-dynip.superkabel.de] has joined #go-nuts
12:23 -!- femtooo [~femto@95-89-196-179-dynip.superkabel.de] has quit [Ping
timeout: 240 seconds]
12:38 -!- artefon [~thiago@189.59.183.130.dynamic.adsl.gvt.net.br] has joined
#go-nuts
12:48 -!- \toothrot [~mux@66-169-185-121.dhcp.ftwo.tx.charter.com] has quit [Ping
timeout: 276 seconds]
12:57 -!- thiago__ [~thiago@189.59.135.167] has joined #go-nuts
13:00 -!- artefon [~thiago@189.59.183.130.dynamic.adsl.gvt.net.br] has quit [Ping
timeout: 260 seconds]
13:00 -!- xash [~xash@d047026.adsl.hansenet.de] has quit [Read error: Operation
timed out]
13:01 -!- boscop_ [~boscop@f055251208.adsl.alicedsl.de] has joined #go-nuts
13:15 -!- DarthShrine [~angus@pdpc/supporter/student/DarthShrine] has quit [Quit:
DarthShrine]
13:28 -!- LeNsTR [~lenstr@unaffiliated/lenstr] has quit [Quit: LeNsTR]
13:31 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts
13:32 -!- thiago__ [~thiago@189.59.135.167] has quit [Quit: bye]
13:33 -!- nsf [~nsf@jiss.convex.ru] has quit [Client Quit]
13:35 -!- niemeyer_ [~niemeyer@187.53.253.26] has joined #go-nuts
13:41 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts
13:50 -!- skelterjohn [~jasmuth@c-68-45-238-234.hsd1.nj.comcast.net] has joined
#go-nuts
13:52 -!- foocraft [~dsc@78.100.194.174] has quit [Quit: Leaving]
13:57 -!- foocraft [~dsc@78.100.194.174] has joined #go-nuts
13:59 -!- thomas_b_ [~thomasb@cm-84.215.47.51.getinternet.no] has quit [Quit:
leaving]
14:04 -!- niemeyer_ [~niemeyer@187.53.253.26] has quit [Ping timeout: 240 seconds]
14:16 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.3]
14:27 -!- foocraft [~dsc@78.100.194.174] has quit [Quit: Leaving]
14:28 -!- cirno [~cirno@77.232.15.216] has joined #go-nuts
14:32 -!- Fish [~Fish@9fans.fr] has quit [Quit: So Long, and Thanks for All the
Fish]
14:34 -!- femtoo [~femto@95-89-196-179-dynip.superkabel.de] has quit [Read error:
Connection reset by peer]
14:42 -!- askhader [~askhader@taurine.csclub.uwaterloo.ca] has left #go-nuts []
14:48 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-167-37.clienti.tiscali.it] has
joined #go-nuts
14:50 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-167-37.clienti.tiscali.it] has
quit [Client Quit]
14:52 -!- Project_2501 [~Marvin@82.84.77.225] has quit [Ping timeout: 265 seconds]
14:54 < creack> hello
14:54 < creack> is there something like typedef in Go?
14:55 < creack> type mytype type works but I can't access to method from
type with mytype
14:55 < Namegduf> No.
14:56 < creack> :(
15:01 -!- SoniaKeys [Alliebloom@c-24-91-112-191.hsd1.ma.comcast.net] has joined
#go-nuts
15:10 -!- niemeyer_ [~niemeyer@187.53.253.26] has joined #go-nuts
15:13 -!- shvntr [~shvntr@116.26.137.103] has quit [Ping timeout: 260 seconds]
15:19 -!- araujo [~araujo@gentoo/developer/araujo] has joined #go-nuts
15:19 -!- shvntr [~shvntr@222.50.79.246] has joined #go-nuts
15:22 -!- foocraft [~dsc@78.100.194.174] has joined #go-nuts
15:33 < adu> creack: method?
15:38 < skelterjohn> you can do "type NewType { *OldType }"
15:38 < skelterjohn> and it will have all the same methods as OldType
15:39 < skelterjohn> you will have to cast it to pass it to functions that
need OldType
15:43 < adu> o yes, anonymous members
15:44 < adu> I love how Go-ish Go is
15:45 < adu> or should that be without a dash "Goish" like "Pythonic"
15:46 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit
[Ping timeout: 272 seconds]
15:47 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined
#go-nuts
15:48 < temoto> adu, how can language conform to abstract policy that never
existed before creating the language?
15:49 < adu> temoto: I was referring to the board game, actually
15:49 < temoto> oh
15:49 < temoto> language is go-game-ish?
15:49 < adu> yes
15:49 -!- skelterjohn [~jasmuth@c-68-45-238-234.hsd1.nj.comcast.net] has quit
[Quit: skelterjohn]
15:49 < adu> great complexity in gameplay from such simplicity in rules
15:51 < temoto> Yeah i was thinking the same about Erlang.
15:51 < adu> Erlang is complicated
15:52 < adu> doesn't Erlang have generic types?
15:54 -!- skelterjohn [~jasmuth@c-68-45-238-234.hsd1.nj.comcast.net] has joined
#go-nuts
15:54 -!- rutkowski [~adrian@178235049018.walbrzych.vectranet.pl] has quit [Quit:
WeeChat 0.3.3-dev]
15:55 -!- werdan7 [~w7@freenode/staff/wikimedia.werdan7] has quit [Ping timeout:
624 seconds]
15:56 -!- vdrab [~vdrab@pd3e9b4.kyotnt01.ap.so-net.ne.jp] has quit [Quit: vdrab]
15:59 -!- adu [~ajr@pool-173-66-253-179.washdc.fios.verizon.net] has quit [Quit:
adu]
16:02 -!- TheSeeker [~n@99-153-250-110.lightspeed.irvnca.sbcglobal.net] has quit
[Ping timeout: 240 seconds]
16:02 -!- TheSeeker [~n@99-153-250-110.lightspeed.irvnca.sbcglobal.net] has joined
#go-nuts
16:04 < skelterjohn> how is the language like go the game?
16:04 -!- noktoborus [debian-tor@gateway/tor-sasl/noktoborus] has joined #go-nuts
16:06 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-167-37.clienti.tiscali.it] has
joined #go-nuts
16:06 -!- sauerbraten [~sauerbrat@p508CF636.dip.t-dialin.net] has quit [Quit:
Leaving]
16:11 -!- shvntr [~shvntr@222.50.79.246] has quit [Quit: 妖魔鬼怪速速退散!]
16:11 -!- Project-2501 [~Marvin@82.84.86.160] has joined #go-nuts
16:11 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-167-37.clienti.tiscali.it] has
quit [Ping timeout: 260 seconds]
16:20 -!- skejoe_ [~skejoe@188.114.142.162] has quit [Quit: leaving]
16:25 -!- SoniaKeys [Alliebloom@c-24-91-112-191.hsd1.ma.comcast.net] has quit []
16:29 -!- Project-2501 [~Marvin@82.84.86.160] has quit [Quit: E se abbasso questa
leva che succ...]
16:29 -!- sav [~lsd@jagat.xored.org] has joined #go-nuts
16:29 -!- sav [~lsd@jagat.xored.org] has quit [Excess Flood]
16:31 -!- Tv [~tv@cpe-76-168-227-45.socal.res.rr.com] has joined #go-nuts
16:34 -!- virtualsue [~chatzilla@nat/cisco/x-qivuimsetouvmxlp] has quit [Ping
timeout: 255 seconds]
16:38 -!- virtualsue [~chatzilla@nat/cisco/x-bnettvuinfbrjzfk] has joined #go-nuts
16:44 -!- niemeyer_ [~niemeyer@187.53.253.26] has quit [Ping timeout: 240 seconds]
16:48 < brad_> why on earth does compiling a simple hello world program end
up producing a 1.7 meg binary on OSX?
16:52 < Namegduf> Static compilation and debug information.  Production
programs are not as huge as that might make you suspect.
16:53 < Namegduf> My fairly complicated server is 3.4MB with debug
information.
16:53 -!- ExtraSpice [~XtraSpice@88.118.33.48] has quit [Ping timeout: 276
seconds]
16:53 < brad_> how do I compile without debug info?
16:54 < brad_> I mean, still, gcc compiles an equivalent program to 8k
16:54 < brad_> that is a hell of a lot of overhead for a simple little
helloworld program
16:54 < Namegduf> With a huge glibc.
16:54 < brad_> well, at least it is shared, so each binary doesn't have all
that overhead with every compile
16:55 < Namegduf> True.  Such is the compromise of static linking.
16:55 < skelterjohn> i think we will probably see dynamic linking in go one
day.  first things first.
16:55 < Namegduf> It's irrelevant anyway; the overhead does not cause it to
scale up proportionally.
16:55 < brad_> a 1.7m hello world binary is larger than the qnx demo disk
that fit on a floppy
16:55 < Namegduf> And binary sizes are constant in their size for practical
purposes; irrelevant.
16:55 -!- rlab_ [~Miranda@91.200.158.34] has joined #go-nuts
16:56 < brad_> just wasteful use of resources
16:56 < Namegduf> Only in the small case, which is small and doesn't exist
in real world situations.
16:56 < Namegduf> I seem to recall it being something around 700k prior to
debug information.
16:57 < Namegduf> Remove fmt and you lost about 300k
16:57 < brad_> it would be nicer if it had more optimization options, so I
could pick and choose what to include in the binary.  I mean, half of what is
being included probably isn't even being used at all
16:57 < Namegduf> If the linker can do that, it should automatically.  I
think it does.
16:58 < Tv> brad_: did you already try dropping the debug info?
16:58 -!- rlab [~Miranda@91.200.158.34] has quit [Ping timeout: 265 seconds]
16:58 < brad_> I don't see where I can do that
16:58 < brad_> is it an option to 6g or 6l?
16:58 < brad_> or do I need another util to strip it out?
16:59 < Tv> like, one called "strip" ;)
17:00 < Tv> hmm doesn't seem to be quite that easy
17:00 < Tv> BFD: stSl2630: section .rodata vma 0x448000 overlaps previous
sections
17:00 < Tv> etc
17:02 -!- WonTu [~WonTu@p57B54C7A.dip.t-dialin.net] has joined #go-nuts
17:02 -!- WonTu [~WonTu@p57B54C7A.dip.t-dialin.net] has left #go-nuts []
17:03 -!- ExtraSpice [~XtraSpice@88.118.33.48] has joined #go-nuts
17:07 < creack> skelterjohn: it tells me "unexpected { "
17:08 < skelterjohn> sorry - "type NewType struct { OldType }"
17:08 < skelterjohn> forgot the struct
17:09 * TheSeeker wonders how well upx compresses go stuff *tries it*
17:11 < TheSeeker> 2919424 -> 755200 25.86% win32/pe gocode.exe
17:11 < TheSeeker> not bad :)
17:13 < creack> skelterjohn: now it does not want to cast
17:13 < skelterjohn> are you using OldType or *OldType
17:13 < skelterjohn> and are you trying to cast it to OldType or *OldType :)
17:14 < skelterjohn> or maybe you just can't do that.  let me experiment for
a sec
17:15 < skelterjohn> you can do newInstance.OldType
17:16 < skelterjohn> heading out for some stuff, sorry i can't stay and help
17:16 -!- skelterjohn [~jasmuth@c-68-45-238-234.hsd1.nj.comcast.net] has quit
[Quit: skelterjohn]
17:20 < creack> ok, working
17:20 < creack> but why "type NewType OldType" does not keep methods?
17:20 < uriel> 16:56 < brad_> just wasteful use of resources
17:20 < Namegduf> Because NewType is a nnew type.
17:20 < Namegduf> *new type
17:20 < uriel> brad_: what resources?  dynamic linking making fork() a few
magnitude orders slower is a waste of resources
17:21 < uriel> and again, the question is not the size of hello world, but
how does size scale up
17:21 < creack> Namegduf: so why specify oldtype?
17:21 < Namegduf> creack: Because it gets the implementation of OldType.
17:22 < cbeck> If you want to make a new type that retains the methods of
the oldtype, use type NewType struct { OldType }
17:22 < uriel> and a Go program has a ton more stuff than a simple C
program, it has got reflection info, its got unicode tables, and all kinds of
other stuff
17:22 < brad_> uriel: it could be that I am comparing apples to oranges.  If
I compiled a c version statically, perhaps I'd see a comparable size
17:22 -!- ios_ [~ios@180.191.130.60] has quit [Read error: Connection reset by
peer]
17:22 < uriel> brad_: again, even then you would be comparing apples to
oranges, C for example has no reflection
17:22 < creack> ok
17:22 < creack> thank you
17:24 -!- piranha [~piranha@5ED42E59.cm-7-5a.dynamic.ziggo.nl] has quit [Quit:
Computer has gone to sleep.]
17:24 < Namegduf> Basically, Go takes the view that if you declare a type as
different, you clearly WANT it to be a different type
17:24 < Namegduf> And the two are not interchangeable.
17:25 < uriel> brad_: also, if you replace fmt.Print with the print()
builtin the size of your hello world will probably fall dramatically too
17:25 < brad_> let me try that
17:26 < uriel> and right now you can't strip the debug symbols, and your
hello world includes not just the symbols for the hello world, but for everything
else it is linked against (or at least that is my understanding)
17:26 < uriel> so more than apples and oranges, is more like apples and
motorbikes
17:27 < brad_> wow, it DID fall a lot
17:27 < brad_> 270k
17:27 < brad_> that is insane
17:27 < uriel> in any case, binary size is like any other optimization, you
should only worry about it when it is actually a problem, and the size of
hello-world is not a problem, it is the size of real programs that matters
17:28 < uriel> and so far, people that have built sizable Go programs, have
never complained about binary size AFAIK
17:33 < exch> It tends to cap off at about 3 mb.  Any libs you import
usually import others etc.  Since you will used many of those yourelf anyways in a
real program, that's not a problem.  The additional size of your own packages is
usually tiny
17:34 < brad_> 3mb for one binary isn't so bad, but 3mb for 100 binaries, or
1000 binaries, that can add up quickly
17:34 < exch> The size vs usage ratio is bad in a hello world that imports
fmt, but for a proper program that ratio is just fine
17:34 < brad_> and 3mb no matter how you dice that is signicantly larger
than say 8k, 10k, 15k of a dynamically compiled C program
17:35 < brad_> sure, you get some really fancy things with that in go,
though
17:35 < exch> with the dynamic linking, you really should include the size
of the linked libs themselves
17:35 < exch> that would be a fair comparison
17:35 < brad_> well, and/or compile them statically
17:36 < brad_> so I can see what the overhead really is
17:37 < exch> fmt adds quite a bit of size.  If I remember correctly, that's
because it imports the unicode package which is rather sizable with all it's
character tables
17:37 < brad_> yep it definitely was
17:39 < TheSeeker> "My hello world java class is only 1K!" ;p
17:39 < brad_> ha, yep, and I guess when you factor in the JVM it is bigger
than that
17:41 < Namegduf> Heh.
17:41 < Namegduf> C's stdlib doesn't include any unicode support stuff,
right?
17:41 < Namegduf> I know standard C doesn't
17:41 < Namegduf> I don't know about glibc.
17:42 < uriel> most dynamic linked programs in the end have to be packaged
with the shared libs to avoid dll-hell anyway, see how it works in OS X and
windows (or Opera, etc on Linux...)
17:42 < uriel> Namegduf: it does, but you don't link against it by default,
the whole w_char and locale insanity
17:42 < Namegduf> Well, yeah, unless you use a Linux system from after 1990
17:42 < uriel> it has a huge performance penalty
17:42 < Namegduf> And have package management
17:43 < Namegduf> (Which is to say, all of them)
17:43 < uriel> yea, becaue package management never breaks, of course...
and yay versioned symbols:
http://harmful.cat-v.org/software/dynamic-linking/versioned-symbols
17:43 < Namegduf> No, it doesn't break.
17:43 < Namegduf> And if it does break, far more is wrong than just that.
17:43 < Namegduf> The state of the package management system is invalid
17:43 < Namegduf> And you have bigger problems
17:44 < Namegduf> It all just works and has for years in many production
environments.  I think you need to consider that in the instance of package
management the situation may have changed slightly since the original statements.
18:02 -!- DerHorst [~Horst@e176103194.adsl.alicedsl.de] has joined #go-nuts
18:04 -!- sacho [~sacho@87-126-6-67.btc-net.bg] has quit [Ping timeout: 240
seconds]
18:05 -!- brad_ [621a78e5@gateway/web/freenode/ip.98.26.120.229] has quit [Ping
timeout: 265 seconds]
18:11 -!- piranha [~piranha@5ED4B890.cm-7-5c.dynamic.ziggo.nl] has joined #go-nuts
18:16 -!- nettok [~quassel@200.119.153.171] has joined #go-nuts
18:23 < Eko> Did whoever was planning inotify support ever get around to
doing it?
18:24 < Eko> I see a long discussion on the mailing list, but nothing
more...
18:24 < vsmatck> inotify is in pkg/syscall.
18:26 -!- tasosos [~tasosos@188.4.129.93.dsl.dyn.forthnet.gr] has joined #go-nuts
18:26 -!- tasosos [~tasosos@188.4.129.93.dsl.dyn.forthnet.gr] has left #go-nuts []
18:29 -!- femtoo [~femto@95-89-196-179-dynip.superkabel.de] has joined #go-nuts
18:35 -!- sjd [~sjd@204-195-89-40.wavecable.com] has joined #go-nuts
18:36 -!- femtooo [~femto@95-89-196-179-dynip.superkabel.de] has joined #go-nuts
18:39 -!- femtoo [~femto@95-89-196-179-dynip.superkabel.de] has quit [Ping
timeout: 255 seconds]
18:44 < aiju> any preferred way of profiling Go code?
18:46 < Namegduf> 6prof
18:46 < aiju> is there an 8prof?
18:47 < aiju> i'm really tired of "The Go world is an AMD64"
18:47 < Namegduf> 6prof is used on all platforms.
18:47 < aiju> oic
18:47 < Namegduf> Also it's more like the 2010 world is an AMD64
18:47 < aiju> ◔ ◡ ◔
18:47 < Namegduf> I mean jeeze
18:47 < Namegduf> I've not used a 32bit OS other than Windows in the past
four years, and even then my servers were 64bit
18:51 < aiju> i don't possess a single working 64-bit machine
18:51 < aiju> s/64-bit/AMD64/g another annoyance
18:54 < aiju> 187.07% syscall.Syscall6
18:54 < aiju> wait, what
18:58 -!- iant [~iant@216.239.45.130] has quit [Ping timeout: 240 seconds]
19:00 < aiju> is there any way to get useful (i.e.  line number)
information?
19:03 -!- femtoo [~femto@95-89-196-179-dynip.superkabel.de] has joined #go-nuts
19:06 -!- femtooo [~femto@95-89-196-179-dynip.superkabel.de] has quit [Ping
timeout: 260 seconds]
19:06 -!- niemeyer_ [~niemeyer@187.53.253.26] has joined #go-nuts
19:09 -!- nettok [~quassel@200.119.153.171] has quit [Ping timeout: 264 seconds]
19:12 < Eko> aiju: Syscall6 is the six-argument syscall, which (I think) I
find is usually filesystem and network syscalls.
19:13 < Eko> however, I'm now on mac, and can't use 6prof (unless that's
changed and I never noticed).
19:13 < aiju> Eko: the funny part is that it's taking 187% of the time
19:14 < Eko> aiju: multicore CPU?
19:14 < aiju> ha no
19:14 < Eko> also see
http://groups.google.com/group/golang-nuts/browse_thread/thread/d06afe478d020627,
it may have more interesting results
19:14 < Eko> without the comma >_<
19:15 * cbeck remembers the first time her ever saw Load Avg: 31.02 31.00 31.90 on
a box
19:15 < cbeck> s/her/he/
19:15 < Namegduf> aiju: 6prof includes idle time
19:15 < Namegduf> It profiles real time, not CPU time
19:16 < Namegduf> As I understand it
19:16 -!- iant [~iant@adsl-71-133-8-30.dsl.pltn13.pacbell.net] has joined #go-nuts
19:16 -!- mode/#go-nuts [+v iant] by ChanServ
19:16 < Namegduf> And GOMAXPROCS does not stop multiple syscalls at once.
19:17 < Eko> =O.  neat.
19:17 -!- niemeyer_ [~niemeyer@187.53.253.26] has quit [Ping timeout: 240 seconds]
19:17 -!- femtoo [~femto@95-89-196-179-dynip.superkabel.de] has quit [Ping
timeout: 240 seconds]
19:20 < aiju> duh, without more detailed information this is all pretty
useless
19:20 -!- sjd [~sjd@204-195-89-40.wavecable.com] has quit [Quit: sjd]
19:21 -!- nettok [~quassel@200.119.156.12] has joined #go-nuts
19:23 -!- sjd [~sjd@204-195-89-40.wavecable.com] has joined #go-nuts
19:23 -!- illya77 [~illya77@67-149-133-95.pool.ukrtel.net] has joined #go-nuts
19:24 -!- napsy [~luka@88.200.96.18] has quit [Read error: Operation timed out]
19:24 -!- skelterjohn [~jasmuth@c-71-230-156-50.hsd1.nj.comcast.net] has joined
#go-nuts
19:26 -!- napsy [~luka@88.200.96.18] has joined #go-nuts
19:48 -!- wrtp [~rog@212.183.140.8] has joined #go-nuts
19:56 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts
20:04 -!- ryanu [~ryan_@c-98-200-189-134.hsd1.tx.comcast.net] has joined #go-nuts
20:06 -!- wrtp [~rog@212.183.140.8] has quit [Quit: wrtp]
20:10 -!- DarthShrine [~angus@60-242-109-62.tpgi.com.au] has joined #go-nuts
20:10 -!- DarthShrine [~angus@60-242-109-62.tpgi.com.au] has quit [Changing host]
20:10 -!- DarthShrine [~angus@pdpc/supporter/student/DarthShrine] has joined
#go-nuts
20:23 -!- dju [dju@fsf/member/dju] has quit [Quit: Quitte]
20:32 -!- femtoo [~femto@95-89-196-179-dynip.superkabel.de] has joined #go-nuts
20:34 -!- nettok [~quassel@200.119.156.12] has quit [Ping timeout: 255 seconds]
20:44 -!- ExtraSpice [~XtraSpice@88.118.33.48] has quit [Ping timeout: 276
seconds]
20:44 -!- nettok [~quassel@200.119.156.12] has joined #go-nuts
20:52 -!- skelterjohn [~jasmuth@c-71-230-156-50.hsd1.nj.comcast.net] has quit
[Quit: skelterjohn]
20:53 -!- skelterjohn [~jasmuth@c-71-230-156-50.hsd1.nj.comcast.net] has joined
#go-nuts
20:54 -!- ryanu [~ryan_@c-98-200-189-134.hsd1.tx.comcast.net] has quit []
21:08 -!- skelterjohn [~jasmuth@c-71-230-156-50.hsd1.nj.comcast.net] has quit
[Quit: skelterjohn]
21:09 -!- Eko [~eko@adsl-76-251-235-206.dsl.ipltin.sbcglobal.net] has left
#go-nuts []
21:09 -!- Eko [~eko@adsl-76-251-235-206.dsl.ipltin.sbcglobal.net] has joined
#go-nuts
21:11 -!- illya77 [~illya77@67-149-133-95.pool.ukrtel.net] has quit [Quit:
illya77]
21:16 -!- cirno [~cirno@77.232.15.216] has quit [Quit: Leaving]
21:17 -!- tensai_cirno [~cirno@77.232.15.216] has joined #go-nuts
21:20 -!- dju [dju@fsf/member/dju] has joined #go-nuts
21:22 -!- savio [~thc@18748176131.nit.megazon.com.br] has joined #go-nuts
21:23 -!- dju [dju@fsf/member/dju] has quit [Max SendQ exceeded]
21:24 -!- dju [dju@fsf/member/dju] has joined #go-nuts
21:29 -!- hachiya_ [~hachiya@encyclical.net] has quit [Ping timeout: 276 seconds]
21:29 -!- hachiya [~hachiya@encyclical.net] has joined #go-nuts
21:53 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts
21:56 -!- femtoo [~femto@95-89-196-179-dynip.superkabel.de] has quit [Read error:
Connection reset by peer]
22:06 -!- ymasory_ [~ymasory@c-76-99-55-224.hsd1.pa.comcast.net] has joined
#go-nuts
22:06 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts
22:07 -!- DerHorst [~Horst@e176103194.adsl.alicedsl.de] has quit [Remote host
closed the connection]
22:07 -!- rlab_ [~Miranda@91.200.158.34] has quit [Ping timeout: 250 seconds]
22:12 -!- virtualsue [~chatzilla@nat/cisco/x-bnettvuinfbrjzfk] has quit [Ping
timeout: 240 seconds]
22:21 -!- LeNsTR [~lenstr@unaffiliated/lenstr] has joined #go-nuts
22:22 -!- virtualsue [~chatzilla@host81-148-14-32.in-addr.btopenworld.com] has
joined #go-nuts
22:40 < piranha> which type of GC Go has?  refcounting, generational,
anything else?
22:40 -!- dju_ [~dju@fsf/member/dju] has joined #go-nuts
22:41 < TheSeeker> isn't it just mark-sweep?
22:41 < piranha> no idea, just asking :)
22:42 < piranha> can't find in documentation :(
22:42 < vsmatck> Last I heard it was.  I think rsc is working on a better
one?  http://code.google.com/r/rsc-go-gc/
22:42 < piranha> ok, thanks you :)
22:42 < vsmatck> I've heard rob pike say stuff about the Inferno concurrent
GC. Anyone have info about who's working on what?
22:42 < piranha> s/thanks/thank/
22:43 -!- dju [dju@fsf/member/dju] has quit [Ping timeout: 240 seconds]
22:44 -!- ymasory_ [~ymasory@c-76-99-55-224.hsd1.pa.comcast.net] has quit [Ping
timeout: 264 seconds]
22:44 < fuzzybyte> inferno GC? how does that work
22:45 < fuzzybyte> this?
http://doc.cat-v.org/inferno/concurrent_gc/concurrent_gc.pdf
22:46 < vsmatck> It uses separate threads for mark and sweep and doesn't
stop the world.  It also doesn't use locks, it relies on operations that are
atomic in hardware.
22:47 < vsmatck> The numbers in that paper look pretty crummy.  Looks like
it trades execution time for shorter pauses.  I think the idea is that it'll work
well on systems that have a couple CPUs.
22:47 < fuzzybyte> sounds interesting
22:49 -!- LeNsTR [~lenstr@unaffiliated/lenstr] has quit [Quit: LeNsTR]
22:49 < vsmatck> rob pike has guestimated that the GC will eventually only
cost 20% when compared to C + manual memory management.
22:49 < Eko> in terms of execution time?
22:50 < vsmatck> yeah
22:50 < vsmatck> Performance is never so simple tho.  I think his estimate
was a "rule of thumb" type of statement.
22:50 < Eko> of course.
22:51 < fuzzybyte> could you use "inferno GC" in applications with hard
real-time needs?  eg.  flight control or something mission critical like that
22:52 < fuzzybyte> what kinda response time does it guarantee?  or does it
guarantee anything?
22:53 < vsmatck> I don't know for sure.  My suspicion is that Go will never
make any headway in to hard real time.
22:53 * TheSeeker wouldn't use Go for anything mission-critical at this point ...
production maybe.
22:53 < Eko> I think too many people write off languages with a GC for
real-time applications...  sure, you don't want the GC interrupting something
that's "real-time" but that doesn't mean that you can't trade poor memory
management in those sections for the ease and correctness that a GC language can
provide.
22:53 < vsmatck> In that paper it shows 20-30ms pauses.
22:54 < Eko> and I agree with TheSeeker...  C is just too proven to be
displaced easily; for production code, though, I see no problem using Go,
especially if you have good code review practices.
22:55 < vsmatck> BASIC is alive an well for hard real time too.  heh
22:55 < TheSeeker> I was reading a USGS website that mentioned almost
everything being coded there in fortran.
22:57 < vsmatck> I work in industrial automation.  We use ladder-logic
mostly.
22:57 < TheSeeker> about 110,000 hits on google for 'site:.gov fortran'
22:57 < Eko> lol
22:58 < Eko> I used a real-time basic once.  it was called pbasic.
22:58 < TheSeeker> powerbasic?
22:58 < Eko> Not that I know of, we only called it pbasic.  The only
switching constructs it had were IF/GOTO.
22:58 < Eko> not even IF/ELSE.
22:58 < vsmatck> Computers generally aren't considered to be very reliable.
Once you get a PLC working it generally continues to work forever.  No complicated
OS between your program and the hardware.  And it's easy to predict exactly how
much latency things will have.
22:58 < Eko> it might have been suitable for real-time response, but it
wasn't suitable for writing correct or provable code.
22:58 < TheSeeker> ah, pbasic = Parallax Basic
22:59 -!- vdrab [~vdrab@pd3e9b4.kyotnt01.ap.so-net.ne.jp] has joined #go-nuts
22:59 < Eko> sounds like it
23:00 < TheSeeker> heh
23:00 < Eko> interestingly, my Go IRC server has a faster ping time than my
C++ one did.
23:00 < Eko> not as fast as freenode though.
23:01 < vsmatck> I'd probably attribute that to the programmer and not the
language.  :)) No doubt Go is more productive than C++ tho.
23:01 < Eko> eh, nevermind, they both vary between .01 and .12.
23:02 < Eko> vsmatck: oh, no that's definitely why I said "my C++ one"
because that was forever ago and I did lots of silly things
23:02 < Eko> though ironically, I tried to do lots of things (message
passing) that come for free in go, and that probably caused a lot of the overhead.
23:04 < vsmatck> Message passing is nice.  I wrote a message channel library
in C++.  It was pretty crummy tho.
23:04 < vsmatck> I used to basically do message passing in C++ with
boost::condition_variable/boost::mutex and a std::queue.  Worked the same pretty
much.
23:05 < nsf> reading concurrent_gc.pdf paper above
23:05 < nsf> 80ms pause time on 20mb heap
23:05 < nsf> :(
23:05 < vsmatck> But ya all this crap I had to deal with in C++ I get for
"free" in Go. I just trade runtime performance I didn't need anyways.
23:06 < nsf> max pause time should be less than half of a 1/60th of a second
23:06 < vsmatck> Sounds like there has to be a ton of analysis on the part
of the compiler to set the right variables for the inferno VCGC to work well.
23:06 < nsf> and compilation time is interesting, yeah
23:07 < nsf> also note the execution time
23:07 < vsmatck> We'll get Go to compile as slow as C++ in no time.  :)
23:07 < nsf> in most cases execution time is 2x-3x
23:08 < vsmatck> I never thought compile time for a compiled language was a
big deal.  Even for C++.  Each translation unit can be farmed out to different
CPUs.  The biggest bottleneck for distributed C++ compilation turns out to be the
preprocessor.
23:08 < nsf> vsmatck: until you saw Go
23:08 < nsf> I can't use C++ now
23:08 < nsf> I can't even compile gccgo
23:09 < nsf> because it takes too much time :D
23:09 < vsmatck> hah
23:11 < aiju> 00:07 < vsmatck> We'll get Go to compile as slow as C++
in no time.  :)
23:11 -!- SoniaKeys [Alliebloom@c-24-91-112-191.hsd1.ma.comcast.net] has joined
#go-nuts
23:11 < aiju> getting a compiler as bad and slow as a C++ compiler isn't
just something you do with a move of your hand
23:12 < nsf> as for reliability, some space flying stuff runs MSDOS and apps
written in pascal :) even these days
23:12 < aiju> this requires hard work
23:12 < aiju> nsf: i've heard some nuclear power plants still run PDP-11
23:12 < nsf> hehe
23:13 < vsmatck> I wasn't being serious BTW.  Go just has some properties
that mean it will never be as slow to compile as C++.  Fewer passes required, no
preprocessor, symbolic includes (not string substitution).
23:13 < nsf> yes
23:13 < nsf> no big design mistakes
23:13 < vsmatck> oh, and no templates.
23:13 < aiju> actually, C++ has worse stuff
23:13 < nsf> although it has few of them :)
23:13 < aiju> contet dependance
23:13 < aiju> +x
23:13 < aiju> vsmatck: what you listed is stuff C has as well
23:13 < nsf> like that one:
23:14 < aiju> and kencc is fast
23:14 < nsf> if myType{1, 2, 3} { println("Hello") }
23:14 < nsf> try parse that
23:14 < nsf> well it's incorrect
23:14 < nsf> something like:
23:14 < nsf> if myType{1, 2, 3} == myVar { println("Hello") }
23:14 -!- virtualsue [~chatzilla@host81-148-14-32.in-addr.btopenworld.com] has
quit [Ping timeout: 240 seconds]
23:15 < nsf> the point is, there is an ambiguity
23:15 < aiju> C++ is full of ambiguities
23:15 < nsf> that requires identifier information like in C.. you should be
able to tell whether it's a variable or a type
23:16 < nsf> Go avoids that disallowing that kind of statements
23:16 < aiju> take a "basic" STL type and look up what it actually is
23:18 < aiju> Go compilation is probably limited by hard disk speed…
23:18 < nsf> aiju: in theory, yes
23:18 < TheSeeker> easily verified by comparing SSD vs rotating disk compile
times in same system ?
23:19 < vsmatck> I've seen some C compilers that move preprocessing in to
the language effectively.  Getting rid of the preprocessing phase by making the C
parser understand it.
23:19 < nsf> in practice the current compiler is not fast enough :D
23:19 < vsmatck> So some of the stuff can be mitigated.  *shrug*
23:19 -!- go-irc-c [~go-irc-ch@195-132-97-104.rev.numericable.fr] has joined
#go-nuts
23:20 < nsf> oops, no
23:20 < nsf> it is fast enough
23:20 < nsf> but not that fast :))
23:20 < aiju> it's not hard to reach the hard disk limit
23:20 < aiju> even gcc can accomplish that on some systems...
23:21 < vsmatck> I wonder if flash memory will replace mechanical HDDs.
Seems like a question for a hardware person tho.
23:21 < vsmatck> I mean 10ms seek time = 100 IOPs.  Not very much.
23:23 < aiju> IOP?
23:23 -!- vdrab [~vdrab@pd3e9b4.kyotnt01.ap.so-net.ne.jp] has quit [Quit: vdrab]
23:23 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit
[Ping timeout: 260 seconds]
23:23 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined
#go-nuts
23:24 < vsmatck> IO operation per second.
23:24 -!- virtualsue [~chatzilla@host81-148-14-32.in-addr.btopenworld.com] has
joined #go-nuts
23:25 < Eko> in terms of sheer write speed, I think HDDs will probably beat
out flash drives.  There may be better SDD technologies that don't suffer from
some of the same write bottlenecks that FLASH does though.
23:25 < vsmatck> HDD benchmarks like to use the measure.  10ms = 100 IOP
assumes totally random writes tho.
23:26 < Eko> but I'd bet that flash will always beat hdds on read time.  Of
course, I could be crazy.
23:26 < Tv> a good HDD can do streaming reads faster than mediocre SSD
23:27 < vsmatck> Depends on what kind of work load.  SSDs do a lot better on
random stuff.
23:27 < TheSeeker> persistent spintronic memristor ramdisks?  >_>
23:27 < vsmatck> Tv: True.
23:28 < aiju> in the long run i think it's certain that SSDs will take over
23:28 < aiju> at least, that hard disks will become unpopular
23:29 < vsmatck> They do fine for sequential reads/writes.  As long as their
gB/$ ratio is better than SSDs they'll continue to be used.
23:29 < Tv> my bet for the next few years: laptops=ssd, servers=hybrid
23:30 < vsmatck> The hybrid stuff is interesting.  I've seen companies like
adaptec selling kits that work with good SSDs (like the intel) to use them as big
write cache for disk arrays.
23:31 -!- piranha [~piranha@5ED4B890.cm-7-5c.dynamic.ziggo.nl] has quit [Quit:
Computer has gone to sleep.]
23:33 < vsmatck> If I were a gozillionair (I'm not yet) I'd get a ioDrive in
my desktop.  :)
23:33 < Tv> the intel ssd in my laptop is worth about half of the rest of
the laptop ;)
23:33 -!- sacho [~sacho@87-126-6-67.btc-net.bg] has joined #go-nuts
23:34 < kimelto> dragonfly uses swapcache to cache meta data of the hdd into
a ssd.  apparently it boost performances nicely.
23:34 < vsmatck> heh, my bro got a 160gB ge2 MLC recently and it was 400$+.
I think the gen3 drives will be out q1 2011.
23:35 < aiju> i mostly don't give a shit about hardware
23:35 < aiju> unless your running the latest bloatware it really doesn't
matter
23:35 < aiju> *you're
23:36 * vsmatck has a game addiction.  lol
23:36 < kimelto> or if you want a decent battery lifetime on your laptopt,
or...
23:38 < Tv> frankly, i could tell the difference between 5400rpm and 7200rpm
laptop hard drives from just the interactivity of shell..
23:39 < aiju> yeah, especially since that stuff is usually held in RAM
23:42 < fuzzybyte> he's an extraordinaly sharp man then
23:43 -!- rlab [~Miranda@91.200.158.34] has quit [Read error: Connection reset by
peer]
23:43 < aiju> my laptop hard disk is 4200 rpm…
23:52 -!- nettok [~quassel@200.119.156.12] has quit [Ping timeout: 265 seconds]
23:57 -!- GoBIR [~gobir@adsl-76-251-235-206.dsl.ipltin.sbcglobal.net] has joined
#go-nuts
--- Log closed Sat Dec 25 00:00:01 2010