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

--- Log opened Mon Dec 20 00:00:01 2010
00:00 < exch> yes
00:00 < calsaverini> the only advantage is that its very easy to do stuff
like: if a satisfies the interface X, then lets define the methods for []a to
satisfy it too
00:01 -!- tvw [~tv@e176007038.adsl.alicedsl.de] has quit [Ping timeout: 240
seconds]
00:01 < exch> yyes, that's true
00:09 -!- skelterjohn [~jasmuth@c-68-45-238-234.hsd1.nj.comcast.net] has quit
[Quit: skelterjohn]
00:13 -!- niemeyer [~niemeyer@201-2-134-72.pltce701.dsl.brasiltelecom.net.br] has
joined #go-nuts
00:17 -!- skejoe [~skejoe@188.114.142.162] has quit [Quit: Lost terminal]
00:26 -!- tgillespie_ [~tom@global-1-8.nat.csx.cam.ac.uk] has quit [Read error:
Operation timed out]
00:42 -!- nettok [~quassel@200.119.153.105] has joined #go-nuts
00:42 -!- skelterjohn [~jasmuth@c-68-45-238-234.hsd1.nj.comcast.net] has joined
#go-nuts
00:50 -!- Scorchin [~Scorchin@host109-154-144-120.range109-154.btcentralplus.com]
has quit [Ping timeout: 240 seconds]
01:03 -!- wrtp [~rog@92.17.4.160] has quit [Quit: wrtp]
01:16 < exch> A quine to end all quines :o
http://mamememo.blogspot.com/2010/09/qlobe.html?showComment=1288333141348#c6349301674988421409
01:17 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has joined #go-nuts
01:26 < exch> obviously the ?showcomment...  bit should be cut off
01:28 -!- skelterjohn [~jasmuth@c-68-45-238-234.hsd1.nj.comcast.net] has quit
[Quit: skelterjohn]
01:41 < uriel> is that in Go? ;P
01:42 < exch> I would like to see someone try that in Go :p
01:53 < uriel> and then run gofmt on it ;P
01:53 < uriel> better, lets see somebody write something like that in go,
but that can survive gofmt
01:57 -!- ExtraSpice [~XtraSpice@88.118.33.48] has quit [Remote host closed the
connection]
02:17 -!- xash [~xash@d075017.adsl.hansenet.de] has joined #go-nuts
02:23 -!- shvntr [~shvntr@222.50.75.76] has joined #go-nuts
02:24 -!- shvntr_ [~shvntr@113.84.149.54] has joined #go-nuts
02:27 -!- xash [~xash@d075017.adsl.hansenet.de] has quit [Ping timeout: 250
seconds]
02:28 -!- shvntr [~shvntr@222.50.75.76] has quit [Ping timeout: 264 seconds]
02:33 < calsaverini> is there any pastebin website that have syntax
highlighting for Go?
02:33 < nsf> calsaverini: pastie.org
02:34 < calsaverini> nsf: tkx
02:35 < calsaverini> ok, if anyone can take a look of what I'm doing wrong
in this small example:
02:35 < calsaverini> http://pastie.org/1390892
02:35 < calsaverini> this is supposed to be a monte carlo simulation
02:35 < calsaverini> I create a chanel that serve positions of an array
02:36 < calsaverini> than a filter function that gets a position from this
chanel, tries a change on that position of an array and, if the change is
accepted, sends the modified array through another chanel
02:36 < calsaverini> this compiles but I get no output :P
02:39 -!- niemeyer [~niemeyer@201-2-134-72.pltce701.dsl.brasiltelecom.net.br] has
quit [Ping timeout: 240 seconds]
02:41 < calsaverini> it would be nice if this worked, cause it would be the
smallest monte carlo simulation of the ising model I've ever seen
02:41 < calsaverini> :)
02:49 < uriel> calsaverini: hmmm...  only taken a breif look, but I don't
see anything obviously wrong
02:50 < calsaverini> am I using the concept of channels right?
02:50 < calsaverini> it's like a stream, right?
02:50 < uriel> yes, i think so
02:50 < calsaverini> a can send things to it, and grab them back
02:50 < uriel> I don't think they give much benefit in this case, but it
seemed more or less reasonable to me
02:51 < calsaverini> I liked the concept of creating a stream of random
configurations sampled from a distribution
02:51 < uriel> if you are getting no output, my random test would be if test
in filter is ever true
02:52 < calsaverini> hum...  let me see that
02:54 < calsaverini> hum...  that's probably the problem
02:54 < calsaverini> I exchanged if acceptStep(...) {} for if true {}
02:54 < calsaverini> and it worked
02:54 < calsaverini> thanks
02:55 < uriel> no problem, I'll ask you for help when run into physics
problems while trying to build a rocket to go to Saturn ;P
02:55 < calsaverini> hahaha
02:55 < calsaverini> not really my area but, I'll do what I can ;)
02:56 < calsaverini> boy, I loved this language
02:57 < calsaverini> I got less than 1% of the frustration I tipically get
with C
02:57 < nsf> I totally don't understand linux, how is it possible, I call
os.Stderr.Write and strace doesn't see that immediately
02:57 < nsf> :\
02:58 < nsf> it accumulates few Write calls and then spits them out as one
02:58 < nsf> after certain event
02:58 < nsf> I'm totally lost
02:58 < nsf> I thought it's impossible
02:58 -!- boscop_ [~boscop@g226224145.adsl.alicedsl.de] has joined #go-nuts
02:58 < nsf> oops, not as one, but as multiple calls, just spits them at one
time
03:01 -!- boscop [~boscop@f055001126.adsl.alicedsl.de] has quit [Ping timeout: 240
seconds]
03:01 < nsf> it sounds crazy, and it looks really weird
03:01 < nsf> :\
03:06 < anticw> nsf: works for me here, one syscall per Write
03:07 < nsf> anticw: well, my app is a bit special
03:07 < nsf> it uses non trivial termios settings
03:07 < anticw> that won't affect syscalls as seen by strace though
03:07 < nsf> but still I don't really understand
03:07 < anticw> it might affect input/output
03:07 < nsf> yeah
03:10 < nsf> maybe it blocks input somehow, I have no idea
03:11 < nsf> oops, output
03:11 < nsf> no, I'm totally lost
03:11 < nsf> so..  nevermind :D
03:15 < nsf> yeah, it turns out that this is not an output problem, but an
input problem
03:16 < nsf> when I paste stuff from selection buffer to the terminal,
underlying app receives only first 32 bytes of data
03:16 < nsf> and the number 32 is a beautiful one
03:16 < nsf> looks like some kind of buffering somewhere
03:22 < nsf> lol, that's my bug
03:23 < nsf> size_t r = fread(buf, 1, 32, in);
03:23 < nsf> and then it falls to select
03:23 < nsf> which blocks on fd, but FILE still may have some unread bytes
03:24 < nsf> what can I say, stupid me
03:30 < nsf> yay, it works now :)
03:33 < nsf> 3 hours of debugging
03:34 < nsf> another proof of the old saying: if something is wrong, it's in
your code
03:34 -!- calsaverini [~user@189.102.85.56] has quit [Ping timeout: 264 seconds]
03:34 < nsf> I've checked xterm's and urxvt's code, glibc's code :D
03:47 -!- flavius [~flav@unaffiliated/flavious] has quit [Ping timeout: 276
seconds]
03:51 -!- alex__ [~alex@modemcable202.70-37-24.mc.videotron.ca] has joined
#go-nuts
03:51 -!- alex__ [~alex@modemcable202.70-37-24.mc.videotron.ca] has left #go-nuts
[]
03:53 -!- soapy_illusions [~alex@modemcable202.70-37-24.mc.videotron.ca] has
joined #go-nuts
03:55 < soapy_illusions> Hi everyone, part of my go program is basically a
tail -f (and it is working fine using stat every second) I was just wondering if
there was a more efficient way to implement this which requires less IO
consumption on the server (it can be a linux only solution)
03:55 < nsf> soapy_illusions: os/inotify
03:55 < nsf> it was added in the recent Go release
03:56 < soapy_illusions> ohh very cool, is it platform independant?
03:56 < nsf> no, it's linux only
03:56 < nsf> but you said it's ok to you
03:56 < soapy_illusions> it is, it is
03:56 < nsf> inotify is a linux kernel feature
03:57 < soapy_illusions> is there a way to do a check, if (linux) use
os/inotify else use stat
03:57 < nsf> you can do that on a compilation stage
03:57 < nsf> if GOOS is linux, use one file which does inotify, if GOOS is
something else, use other file which does stat
03:57 < soapy_illusions> ok so in my Makefile
03:57 < soapy_illusions> perfect, thanks
03:58 -!- adu [~ajr@pool-173-66-11-168.washdc.fios.verizon.net] has joined
#go-nuts
03:58 < soapy_illusions> also nsf, you wrote the gocode daemon right?
03:58 < nsf> https://github.com/nsf/gocode/blob/master/Makefile
03:58 < nsf> soapy_illusions: yes, see this make file
03:58 < nsf> it detect windows that way
03:58 < nsf> I have two files, one for win, another for other OSes
03:58 < nsf> os_win32.go and os_posix.go
03:59 < nsf> detects*
03:59 < soapy_illusions> ohh cool, I had another question about gocode, you
seem to daemonize it yet in past group discussions on golang-nuts people have said
there is no easy way to deamonize a go program
04:00 < nsf> I'm running another instance of gocode, no forking involved
04:00 < nsf> https://github.com/nsf/gocode/blob/master/gocode.go#L239
04:00 < nsf> see this function
04:00 < nsf> 'tryRunServer'
04:00 < nsf> the only problem with that
04:00 < nsf> that it assumes that 'gocode' binary is available on $PATH
04:01 -!- skelterjohn [~jasmuth@c-68-45-238-234.hsd1.nj.comcast.net] has joined
#go-nuts
04:01 < nsf> forking has no problems like that, but it has others
04:02 < soapy_illusions> but as long as I just launch my application like:
foobar &, it will be fine?
04:02 < nsf> yes
04:02 < soapy_illusions> thanks, a lot, and if you are not too busy may I
ask you one last question (the help is greatly appreciated)
04:03 < nsf> sure
04:03 < nsf> btw, I don't know why people think that each daemon app should
be able to daemonize itself
04:03 < nsf> yes, a lot of daemons do that, but hey..  for no reason
04:04 < soapy_illusions> lol
04:05 < soapy_illusions> I have never really used Makefiles before, and for
my app I have a main program which has it's own makefile but it depends on a
package I made which itself has it's own makefile, and so as I am working I need
to run make for this package then remake the main file everytime I make a change,
could the main makefile call the makefile in my new package (or is it better to
build it all in one package)
04:05 < soapy_illusions> sry if that is uber confusing
04:05 < nsf> well, it's a complicated problem
04:05 < nsf> no, I understand what you want
04:05 < nsf> the problem is:
04:06 < nsf> one makefile has one dependencies tree
04:06 < nsf> another makefile has another dependencies tree
04:06 < nsf> and they don't know anything about each other
04:06 < nsf> and actually there is no way to solve that in a generic way
04:06 < nsf> but you know that your main lib
04:06 < nsf> oops
04:07 < nsf> main app
04:07 < nsf> depends on your lib
04:07 < nsf> so..  just write a shell script
04:07 < nsf> which runs lib makefile
04:07 < nsf> and then app makefile
04:08 < nsf> I don't know a better way to solve this
04:08 < nsf> https://github.com/nsf/gocode/blob/master/Makefile
04:08 < nsf> again
04:08 < nsf> in gocode, I have configfile.a lib too
04:08 < nsf> and a dependency in a main makefile
04:08 < nsf> but if I change something in configfile.go
04:08 < soapy_illusions> I was unsure how to package everything but might it
make more sense to have my entire app encapsulated together all in the main
package
04:08 < nsf> make won't be called
04:09 < nsf> soapy_illusions: maybe
04:09 -!- skelterjohn [~jasmuth@c-68-45-238-234.hsd1.nj.comcast.net] has quit
[Ping timeout: 240 seconds]
04:09 < nsf> actually I have plans to implement a very cool makefiles system
04:09 < nsf> for non-recursive builds
04:09 < nsf> which will be able to track all the dependencies properly
04:09 < nsf> I haven't done that yet though :(
04:09 < nsf> I really should
04:10 < soapy_illusions> ohh I thought all makefiles for all apps followed
the same design considering they all use the same make command, how does it know
it's compiling go code and not c code
04:11 < nsf> makefiles system for Go is a simple template stuff
04:11 < nsf> they have a bunch of predefined rules for things you may need
04:11 < nsf> and you simply define few variables and include the template
04:11 < nsf> it's kind of nice
04:11 < nsf> but it doesn't scale well
04:12 < nsf> with recent versions of make there is a better way to do this
04:12 < nsf> which is quite complicated, but works
04:13 < nsf> anyways
04:13 < nsf> there is no simple solution for your problem
04:13 < soapy_illusions> cool, thanks a lot for the info
04:13 < nsf> and it is a real problem
04:14 < nsf> because now a lot of projects have big codebases
04:14 < nsf> it's time to solve it :)
04:14 < soapy_illusions> hahah good luck :p
04:15 < nsf> there is one discouraging thing though
04:15 < nsf> Go changes quickly
04:15 < soapy_illusions> super quickly
04:15 < tdnrad> emerge :)
04:15 < nsf> and if I will do alternative makefile templates
04:15 < tdnrad> portage, rather
04:15 < nsf> I will have to maintain them too
04:16 < nsf> because otherwise people won't use them
04:16 < nsf> so..  I don't know, the more I wait the more stable Go becomes
04:16 < nsf> the less I will spend time for maintainance :D
04:17 < tdnrad> nsf: if you don't do it at all, you'll spend even less time!
04:17 < nsf> exactly
04:17 < nsf> :D
04:17 < tdnrad> haha
04:17 < tdnrad> I've been trying that for my work...  boss isn't too happy.
04:18 < nsf> hehe
04:18 < soapy_illusions> hahah just tell him you are writing extremely
concise code, so concise there is none to show him
04:18 < tdnrad> soapy_illusions: that's pretty much the excuse I've been
giving.  I'm REALLY thinking hard about it, and making sure its PERFECT.
04:19 < nsf> but unlike google devs, no one pays me for writing Go code
04:19 < soapy_illusions> lesson is, become a google dev :P
04:19 < tdnrad> yeah I think that's the take home message
04:19 < nsf> I don't mind
04:20 < soapy_illusions> they were having a recruiting session at my uni a
few weeks ago
04:20 < tdnrad> soapy_illusions: I wish they'd come up here.  I think it's
too cold up here for them though.
04:20 < soapy_illusions> hey I'm in Canada
04:21 < tdnrad> soapy_illusions: me too :)
04:21 < tdnrad> where at?
04:21 < soapy_illusions> they just have a google office down the street, so
they come pretty often
04:21 < nsf> -27 °C
04:21 < soapy_illusions> I'm at mcgill
04:21 < tdnrad> down the road, I suppose?
04:21 < nsf> at my place
04:21 < soapy_illusions> nsf, that's russia for you
04:21 < tdnrad> nsf: ouch
04:21 < nsf> soapy_illusions: yep
04:22 < soapy_illusions> tdnrad, where are you at?
04:22 < tdnrad> Dalhousie
04:22 < soapy_illusions> in comp sci?
04:22 < tdnrad> yep
04:23 < soapy_illusions> I have my last exam tomorow (and it's the only comp
sci course I got to take this semester )
04:24 < tdnrad> and you're on here talking about Go? Obviously not too
worried?
04:25 < soapy_illusions> hahaha, I'm in second year so it's basically: "what
is a binary tree..."
04:26 < tdnrad> Ahh, well its good you feel that way.  I work in the
Learning Centre here and some of the second years don't understand the concept of
setting a variable = 0 in C. In fact, forget the concept, they can't even do it.
04:26 -!- Tv [~tv@cpe-76-168-227-45.socal.res.rr.com] has quit [Ping timeout: 265
seconds]
04:27 < tdnrad> The last two years of students have been absolute crap ;)
04:27 < soapy_illusions> hahaha, I only get classes in C next year, so far
it's been 100% java (but most of my classes are general engineering classes, as I
am doing a software eng.  degree)
04:28 < tdnrad> ok, well, incase you need to know later:
04:28 < tdnrad> <variable name> = 0;
04:28 < tdnrad> You never know, it might save you.
04:28 -!- gr0gmint [~quassel@87.60.23.38] has joined #go-nuts
04:29 < soapy_illusions> hahah I know I have "The C Programming Language" by
K&R sitting on my desk, been going through it
04:29 < tdnrad> soapy_illusions: Once I learned C, I couldn't program in
Java anymore.  Be careful.  ;)
04:30 < soapy_illusions> man I found myself writing my pseudo code for
practice exams in go...
04:31 < tdnrad> I also did software eng, the school dropped the software eng
program though, and so I have a CS degree and 3/4 of a computer eng degree now :P
04:32 < soapy_illusions> damn that's awful, ya we have so few people in soft
eng, but I heard from many that it's a degree worth having
04:32 < tdnrad> one of the few :P
04:32 -!- rejb [~rejb@unaffiliated/rejb] has quit [Ping timeout: 276 seconds]
04:33 < soapy_illusions> haha
04:37 < tdnrad> how many people do you have in your year of software eng?
04:37 < soapy_illusions> maybe 4
04:37 < tdnrad> wow
04:38 < soapy_illusions> and McGill has a ton of students
04:38 -!- skelterjohn [~jasmuth@c-68-45-238-234.hsd1.nj.comcast.net] has joined
#go-nuts
04:38 < soapy_illusions> everyone is in Comp Sci
04:38 < tdnrad> yeah so does Dal
04:38 < tdnrad> we had about that in my second year, by third I was the only
one left.
04:39 < tdnrad> Carleton, however, had about 15 in first year from what I
remember.  Wonder how they're doing.
04:39 < soapy_illusions> uh oh, I hope it stays, as it is an official form
of engineering now in quebec, i get my iron ring and everything
04:40 < tdnrad> I hope it does too.  It's a degree more people should have,
but I guess not enough people are interested in.
04:40 < tdnrad> I plan on finishing my Computer Engineering degree and
calling myself a Software Engineer instead.
04:41 < tdnrad> I also would like my ring, and stamp.
04:41 < soapy_illusions> ya it's a ton more work to get that engineering
instead of just normal comp sci
04:42 < tdnrad> That is true.  And I'm already mostly done so I might as
well finish ;)
04:43 < soapy_illusions> haha I am still getting all my annoying math
classes out of the way, damn differential equations :p
04:43 < tdnrad> mm, don't know about McGill but the mean grade for DE here
was something around 46%
04:44 < tdnrad> It's the second year "gateway" course.
04:45 < soapy_illusions> I thought so too, but the mean for our final was
somewhere around 29
04:46 < soapy_illusions> kind of a little much if you ask me
04:46 < tdnrad> our prof was crazy though, he wrote with his left hand (he
was right handed) just so he could erase with his right hand.  Went across 5 chalk
boards from right to left nonstop in a loop until class was done.
04:47 < tdnrad> err
04:47 < tdnrad> left to right?
04:47 < tdnrad> I think its bed time.
04:47 < tdnrad> 29%?
04:47 < soapy_illusions> haha
04:47 < soapy_illusions> alright
04:48 < soapy_illusions> good hearing from some one else in soft.  eng
04:48 < tdnrad> good luck tomorrow!  night
04:48 < soapy_illusions> thnx
04:50 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.3]
04:54 -!- soapy_illusions [~alex@modemcable202.70-37-24.mc.videotron.ca] has quit
[Quit: Leaving]
04:55 -!- Nicotux [~AndChat@62.201.142.94] has joined #go-nuts
05:01 -!- Nicotux [~AndChat@62.201.142.94] has quit [Read error: Connection reset
by peer]
05:01 -!- Nicotux [~AndChat@62.201.142.94] has joined #go-nuts
05:04 -!- Nicotux [~AndChat@62.201.142.94] has quit [Read error: Connection reset
by peer]
05:05 -!- Nicotux [~AndChat@62.201.142.94] has joined #go-nuts
05:06 -!- zozoR [~zozoR@56346ed3.rev.stofanet.dk] has joined #go-nuts
05:11 -!- Nicotux [~AndChat@62.201.142.94] has quit [Read error: Connection reset
by peer]
05:12 -!- Nicotux [~AndChat@62.201.142.94] has joined #go-nuts
05:14 -!- vasu [~chatzilla@202.63.112.184] has joined #go-nuts
05:15 < vasu> Hello anybody online
05:16 < uriel> no, we are all dead
05:18 <@nf> i didn't realise the snow storms were _that_ bad
05:18 < vasu> how bad
05:18 <@nf> vasu: if you have a question, best to just ask it.  anyone who's
around and who can help will answer
05:22 -!- Nicotux [~AndChat@62.201.142.94] has quit [Read error: Connection reset
by peer]
05:26 -!- Nicotux [~AndChat@62.201.142.94] has joined #go-nuts
05:31 -!- Nicotux [~AndChat@62.201.142.94] has quit [Read error: Connection reset
by peer]
05:32 -!- Nicotux [~AndChat@62.201.142.94] has joined #go-nuts
05:34 -!- Nicotux [~AndChat@62.201.142.94] has quit [Read error: Connection reset
by peer]
05:35 -!- Nicotux [~AndChat@62.201.142.94] has joined #go-nuts
05:37 -!- Nicotux [~AndChat@62.201.142.94] has quit [Read error: Connection reset
by peer]
05:37 -!- Nicotux [~AndChat@62.201.142.94] has joined #go-nuts
05:39 -!- Nicotux [~AndChat@62.201.142.94] has quit [Read error: Connection reset
by peer]
05:55 -!- krutcha1 [~krutcha@S010600045a27676a.vs.shawcable.net] has joined
#go-nuts
06:06 -!- fabled [~fabled@mail.fi.jw.org] has joined #go-nuts
06:08 -!- zozoR [~zozoR@56346ed3.rev.stofanet.dk] has quit [Quit: Morten.  Desu~]
06:12 -!- fedler [~fedler@173.183.63.116] has joined #go-nuts
06:13 < fedler> hi
06:13 -!- fedler [~fedler@173.183.63.116] has left #go-nuts []
06:41 < plexdev> http://is.gd/j3bzM by [David Symonds] in go/src/pkg/expvar/
-- expvar: quote StringFunc output, same as String output.
07:05 -!- d_m [d6@SDF.ORG] has quit [Ping timeout: 255 seconds]
07:06 -!- d_m [d6@SDF.ORG] has joined #go-nuts
07:13 -!- d_m [d6@SDF.ORG] has quit [Quit: Lost terminal]
07:44 -!- nettok [~quassel@200.119.153.105] has quit [Ping timeout: 276 seconds]
07:49 -!- bortzmeyer [~bortzmeye@batilda.nic.fr] has joined #go-nuts
07:54 -!- reuben [~reuben@220-253-8-81.VIC.netspace.net.au] has joined #go-nuts
07:55 < reuben> is it possible to callback into Go code from C, or is that
not yet implemented?
07:55 -!- vasu [~chatzilla@202.63.112.184] has quit [Quit: ChatZilla 0.9.86
[Iceweasel 3.0.6/2010033100]]
07:56 -!- reuben [~reuben@220-253-8-81.VIC.netspace.net.au] has quit [Remote host
closed the connection]
07:56 -!- reuben [~reuben@220-253-8-81.VIC.netspace.net.au] has joined #go-nuts
07:57 -!- reuben [~reuben@220-253-8-81.VIC.netspace.net.au] has quit [Read error:
Connection reset by peer]
07:59 -!- reuben [~reuben@220-253-8-81.VIC.netspace.net.au] has joined #go-nuts
08:00 < reuben> I ask because I'm improving on the 'improved' SDL wrapper
for Go and want to provide callbacks for some SDL_Mixer events (via channels)
08:02 < reuben> Although a callback would make at least as much sense...
seeing as it's closer to the original
08:03 -!- vasu [~vasu@202.63.112.184] has joined #go-nuts
08:06 -!- vasu [~vasu@202.63.112.184] has quit [Read error: Connection reset by
peer]
08:08 -!- reuben1 [~reuben@220-253-8-81.VIC.netspace.net.au] has quit [Remote host
closed the connection]
08:08 -!- reuben1111 [~reuben@220-253-8-81.VIC.netspace.net.au] has joined
#go-nuts
08:12 -!- vasu [~vasu@202.63.112.184] has joined #go-nuts
08:21 -!- napsy [~luka@88.200.96.18] has joined #go-nuts
08:22 -!- wrtp [~rog@92.17.4.160] has joined #go-nuts
08:40 -!- devrim [~Adium@cpe-72-225-239-227.nyc.res.rr.com] has quit [Quit:
Leaving.]
08:55 -!- vasu [~vasu@202.63.112.184] has quit [Quit: Ex-Chat]
08:55 -!- photron_ [~photron@port-92-201-27-116.dynamic.qsc.de] has joined
#go-nuts
08:58 -!- vasu [~vasu@202.63.112.184] has joined #go-nuts
09:02 -!- vasu [~vasu@202.63.112.184] has quit [Quit: Ex-Chat]
09:03 -!- vasu [~vasu@202.63.112.184] has joined #go-nuts
09:03 -!- vasu [~vasu@202.63.112.184] has quit [Client Quit]
09:04 -!- reuben1111 [~reuben@220-253-8-81.VIC.netspace.net.au] has quit [Read
error: Connection reset by peer]
09:05 -!- aiju [~aiju@unaffiliated/aiju] has joined #go-nuts
09:08 -!- vasu [~vasu@202.63.112.184] has joined #go-nuts
09:08 < aiju> how to do pointer arithmetic?  yes i have to
09:09 < cde> aiju: with the unsafe package?
09:11 -!- vasu [~vasu@202.63.112.184] has quit [Client Quit]
09:13 < aiju> oh uintptr is an integer data type, nvm
09:20 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts
09:22 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Quit: |Craig|]
09:22 -!- tensorpudding [~user@99.148.202.191] has quit [Remote host closed the
connection]
09:26 < wrtp> aiju: what are you doing with pointer arithmetic?
09:27 < aiju> raping children
09:27 < aiju> writing Pixels with SDL ;)
09:27 -!- skejoe [~skejoe@188.114.142.162] has joined #go-nuts
09:30 < aiju> i could use FillRect but that's awfully slow
09:32 < nsf> for pointer arithmetic there is a language called C
09:33 < aiju> well, it's just two damn lines
09:34 < nsf> exactly
09:34 < aiju> v := unsafe.Pointer(uintptr(p.disp.Pixels) + uintptr(y) * 640
+ uintptr(x) * 4)
09:34 < aiju> *(*uint32)(v) = uint32(val) * 0x55555555
09:35 < nsf> crappy code :)
09:35 < aiju> i'll go to Go jail for that
09:36 < nsf> and why fillrect is slow?
09:36 < aiju> i have no clue
09:37 < nsf> "This function performs a fast fill of the given rectangle with
color."
09:37 < nsf> man says it's fast :)
09:37 < aiju> yeah "fast" for 100x100 i suppose
09:37 < aiju> not for calling it one jillion times for 1x1
09:38 < nsf> err..  of course 1x1 will be slow
09:38 < nsf> it's FillRect, not PutPixel
09:38 < aiju> ...  yes
09:38 < aiju> 10:27 < aiju> writing Pixels with SDL ;)
09:38 < nsf> writing pixels is always a bad idea
09:39 < nsf> I mean by one
09:39 < nsf> because usually there are many
09:39 < aiju> captain obvious
09:39 < nsf> anyways, what's wrong with unsafe.Pointer?
09:39 < aiju> uh nothing
09:40 < nsf> ok :)
09:40 < aiju> i showed you the code, it's working
09:40 < nsf> I'm just trollin'
09:41 < aiju> back to finding errors buried deep in the CPU module
09:42 < aiju> http://pastebin.com/213mu2Zc this already haunts my dreams
09:45 < wrtp> aiju: why not just make a uint32 slice point to p.disp.Pixels
rather than use ptr arith?
09:45 < aiju> wrtp: tell me how and i'll do that :)
09:45 < wrtp> what type is Pixels currently?
09:45 < aiju> unsafe.Pointer
09:49 < wrtp> are you using banthar's SDL package?  it looks like *byte to
me if so
09:49 < aiju> e29a9b's one
09:50 < wrtp> link?
09:50 -!- vasu [~vasu@202.63.112.184] has joined #go-nuts
09:50 < aiju> https://github.com/0xe2-0x9a-0x9b/Go-SDL
09:51 < wrtp> ah, hyphens!
09:52 < wrtp> it looks like it's a fork of the same code
09:53 < aiju> it is afaik
09:57 < wrtp> aiju: http://pastebin.com/1sCY0eAG
09:58 < aiju> wait, that's much longer than my original code
09:58 < aiju> and it seems even more ugly to me
09:58 < nsf> and slower
09:58 < aiju> but hey?  it's a slice?
09:58 < nsf> it's safe
09:58 < nsf> more or less
09:58 < nsf> I mean it checks bounds at least
09:58 < nsf> :D
09:59 < aiju> who gives a shit?
09:59 < nsf> no one
09:59 < wrtp> if you put that into a function, then all other access is safe
09:59 < aiju> i'm a C programmer, i don't care if it's safe
09:59 < wrtp> and all your access can just look like array refererences
09:59 < nsf> use C dammit
09:59 < nsf> :\
09:59 < wrtp> which is prettier than the way you were doing it IMHO
10:00 < wrtp> aiju: you're coding in Go, not C :-)
10:00 < aiju> those are freaking two lines hidden in a function "drawPixel"
10:01 < aiju> and i really hope Go doesn't do bounds checking on all array
references...
10:01 < nsf> it does
10:01 < aiju> ugh
10:01 < nsf> it's fast on x86_64 though
10:01 < wrtp> that's kinda the point.  if someone passes an out-of-bounds x
or y to your drawPixel, your program can crash
10:02 < wrtp> or get random strange memory corruption
10:02 < wrtp> so you'd want to put a bounds check in your drawPixel function
anyway
10:02 < nsf> yeah, and if you think that's irrelevant, you're a very k3wl
programmer
10:03 < nsf> I've spent 2 weeks once hunting memory corruption bug in my
opengl font drawing code
10:03 < nsf> :D
10:04 -!- ExtraSpice [~XtraSpice@88.118.33.48] has joined #go-nuts
10:04 < aiju> wrtp: see the small "d", it's a private function :P
10:04 < aiju> bounds checking is duplicated code in most cases imho
10:05 < nsf> it is
10:05 < aiju> because you'll be doing it anyway to handle it nicely...
10:05 < wrtp> it's still good to do it at the lowest level, i reckon
10:05 < aiju> *shrug*
10:06 < aiju> with bounds checking: OUT OF BOUNDS ERROR
10:06 < aiju> without bounds checking: Segmentation fault
10:06 < nsf> aiju: if you're lucky
10:07 < aiju> really, i don't have too many out of bounds problems in C…
10:07 < nsf> sometimes - no segfault, but data corruption
10:07 < bortzmeyer> without bounds checking: Security problem and crackers
inside
10:07 < nsf> sometimes very unnoticable
10:07 < wrtp> aiju: without bounds checking: Segmentation fault...  at some
random time later in an unrelated piece of code
10:07 < nsf> aiju: they you've written a very small amount of C code
10:07 < nsf> it happens, with anyone..
10:08 < aiju> nsf: no, i just collected enough experience to fucking know to
check my array indices
10:08 < nsf> and if you work with a team, it's annoying
10:08 < nsf> aiju: I don't believe you anyway
10:08 < aiju> heh, i'll refer to MMM on that
10:08 < nsf> we all do bugs from time to time
10:09 < nsf> and experience is irrelevant
10:09 < nsf> because mistakes are unintentional
10:09 < aiju> wtf
10:10 < aiju> an experienced (C) programmer knows where possible problems
are and avoids them
10:10 -!- cbeck1 [cbeck@gateway/shell/pdx.edu/x-adwauuliceipuhgv] has joined
#go-nuts
10:10 -!- cbeck [cbeck@gateway/shell/pdx.edu/x-lmmooazlphextrpe] has quit [Read
error: Connection reset by peer]
10:10 < nsf> he tries to avoid problems
10:11 < nsf> sometimes he fails
10:11 -!- adu [~ajr@pool-173-66-11-168.washdc.fios.verizon.net] has quit [Quit:
adu]
10:11 < fuzzybyte> actually the truth is, Go is meant for little girls
10:11 -!- reuben [~reuben@220-253-8-81.VIC.netspace.net.au] has joined #go-nuts
10:12 < aiju> if i want a safe language, i use Ada :P
10:12 < nsf> fuzzybyte: or for programmers who actually write code instead
of trolling
10:12 < bortzmeyer> fuzzybyte: and people unsure of their sexual
orientation.
10:12 < aiju> nsf: guess what i'm doing
10:12 < nsf> aiju: I'm guessing
10:14 < nsf> aiju: so..  why do you use Go then?
10:14 < nsf> if you don't make mistakes in C
10:14 < aiju> i never said that
10:14 < bortzmeyer> aiju: hmmm, unlike Go, Ada can be used in an IPv6
address (just saw that in my logs, 2001:db8:eecb:13c0:230:1bff:febd:ada)
10:14 < nsf> then you're trolling here
10:15 < nsf> you see on this channel there are two kinds of people..  Go
programmers and trolls :)
10:15 < mpl> nsf: I bet a lot of lurkers as well ;)
10:16 < nsf> mpl: they don't talk..  so..  I will just pretend they are not
here
10:16 < aiju> *sigh*
10:16 < reuben> I have a non-troll question...  pretty simple:
http://pastebin.com/3eFMsEa3 << is there a better way to insert the contents
of one slice into another than element-by-element copying?
10:16 < Namegduf> copy()
10:17 < mpl> nsf: fair enough.
10:17 < Namegduf> Bounds checking can be turned off
10:17 < Namegduf> Compiler argument
10:17 < aiju> nice
10:18 < nsf> vicevirtue: replace your inner loop with
copy(payload[i*6:i*6+6], addr[:6])
10:18 < vicevirtue> lovely :) how about initialising the contents of a slice
to a certain element, a`la memset()?
10:18 < aiju> Namegduf: which one?
10:18 < vicevirtue> thanks :)
10:18 < nsf> no memset here
10:18 < Namegduf> Use a constant
10:18 < vicevirtue> memset of the C world
10:18 < Namegduf> Same speed
10:18 < Namegduf> Or a literal.
10:18 < nsf> you can zero initialize struct
10:18 < vicevirtue> what do you mean, Namegduf?
10:18 < nsf> but nothing like that for slices
10:19 < vicevirtue> I'm refering to the first loop, which initialises the
first 6 bytes to 0xFF
10:19 < nsf> well, it's ok
10:19 < Namegduf> You could use copy() and a literal, but that's kinda silly
as speed increases go.
10:20 < nsf> another way to write it: for i := range payload[:6] {
payload[i] = 0xFF }
10:20 < Namegduf> aiju: Pass -B to 6g
10:20 < Namegduf> It seems undocumented which might mean it's gone
10:21 < Namegduf> Hmm.
10:21 < Namegduf> It's always been undocumented.
10:21 < nsf> wait, my variant is stupid
10:21 < Namegduf> And its future status is dubious.
10:21 < nsf> old C-like for loop is better
10:21 < Namegduf> But yes, -B to 6g.
10:22 -!- shrewduser [~shrewduse@220-253-8-81.VIC.netspace.net.au] has joined
#go-nuts
10:22 < nsf> vicevirtue: also in theory
10:22 < nsf> for a simple loop like yours
10:22 < vicevirtue> true, though I may as well just leave it as is...
unless I were to write:
10:22 < nsf> compiler should be able to do all sorts of magic
10:23 < drd> trying to build gocurse with latest-ish release, complaining
here:https://github.com/jabb/gocurse/blob/master/curses.go#L170
10:23 < nsf> unroll, eliminate bound checks, etc.
10:23 < drd> curses.go:164[curses.cgo1.go:167]: to pass 'v' as ...interface
{ }, use 'v...'
10:23 < vicevirtue> that's true, nsf, but gc is fairly unoptimised as far as
I know
10:23 < Namegduf> Just change v to v...  on that line.
10:23 < Namegduf> It was a compiler change.
10:23 < nsf> vicevirtue: yes
10:23 < drd> func (win *Window) Addstr(x, y int, str string, flags int32,
v...  ...interface{}) {
10:23 < drd> ?
10:23 < vicevirtue> It's not the speed which is a concern, that's trivial...
it's more that I want idiomatic Go
10:24 < Namegduf> I suggest leaving it alone.
10:24 < nsf> idiomatic Go is: write code that works without mistakes
10:24 < nsf> :)
10:24 < Namegduf> It's kinda a microoptimisation
10:24 < vicevirtue> hehehe, I know
10:24 < Namegduf> Go is less friendly to those than C, but they're a bad
idea anyway
10:24 < nsf> for loop is kind of ok
10:25 < Namegduf> (Because they often involve fancy memory tricks)
10:25 < drd> Namegduf: none of the obvious (to me) variations of v...  seem
to make the compiler happy
10:25 < nsf> every C programmer should try python before switching to Go :)
10:25 < Namegduf> Just "v..."
10:26 < nsf> Go isn't that slow..
10:26 -!- sl [~sl@68-179-130-17.bsr-c9-d1.evv.dhcp.sigecom.net] has quit [Ping
timeout: 260 seconds]
10:26 < drd> curses.go:170:63: '...' parameter is missing type
10:26 < drd> func (win *Window) Addstr(x, y int, str string, flags int32,
v...) {
10:26 < vicevirtue> I'm familiar with Python
10:26 < Namegduf> Er
10:26 < Namegduf> Ah, that's in a function type, not a call.
10:27 < Namegduf> ...yeah, just change it at the call.
10:27 < nsf> gocurses is badly maintained
10:27 < nsf> latest commit like 3-4 months old
10:27 < drd> Namegduf: how can i change it at the call if it doesn't
compile?  hehe
10:28 < drd> nsf, that's a same, i could really use this library right now
:p
10:28 < drd> *shame
10:28 < Namegduf> drd: My point is that applying that change to Addstr is
incorrect
10:28 < nsf> I have a lib that in theory can replace curses
10:28 < nsf> but it's just in theory
10:28 < Namegduf> v...  is not a valid thing in a function type
10:28 < nsf> drd: http://code.google.com/p/termbox/
10:29 < nsf> but it's a bit different than curses
10:29 < nsf> much more raw and simple
10:29 < Namegduf> nsf: This is why, at present, I don't think Go programs
can use these things without embedding them in their own programs and taking over
maintenance of a local copy.
10:30 < nsf> Namegduf: in most cases, yes
10:31 < nsf> all I can say is that my libs are well maintained
10:31 < Namegduf> Library maintenance is too hit-and-miss; you'd basically
never be building if you relied on external goinstall'd copies, and you'd have to
halt dev until some unrelated person did something- which could take weeks.  And a
backwards incompatible change breaks *all versions of your program source ever*,
even with older versions of Go, which is bad for being able to go back to older
versions.
10:31 < nsf> at the moment
10:31 < nsf> who knows what will happen
10:31 < nsf> Namegduf: yes, it's sad
10:31 < vicevirtue> list comprehensions is something I kinda miss from
Python & Haskell...  and lists in general.  It seems slightly inefficient to be
constantly reallocating the underlying array of a slice (and Go lists aren't first
class, and Generics don't yet exist to make lists safe)
10:32 < nsf> but maintaining an external library is not free too
10:32 < Namegduf> vicevirtue: Lists are godawful slow
10:32 < nsf> it costs time
10:32 < Namegduf> vicevirtue: So I don't think you will be disappointed by
speed there
10:32 < nsf> vicevirtue: python's lists are vectors
10:32 < vicevirtue> Namegduf: are you saying that they're slow in C, or in
Go?
10:32 < Namegduf> *always*
10:32 < nsf> they do reallocs as well
10:33 < Namegduf> Linked lists are basically the slowest data type you can
have for most uses
10:33 < nsf> and they are slower than in Go
10:33 < nsf> I'm sure
10:33 < Namegduf> They're very cache unfriendly
10:33 < drd> nsf: thanks, i think that will work nicely
10:33 < nsf> also linked list wastes memory
10:33 < nsf> 8-16 bytes per node
10:33 < Namegduf> Which is why things like Python implement their "lists" as
"slices" and eat the realloc cost.
10:34 < nsf> drd: although the recent release of Go has few changes in cgo
10:34 < nsf> and termbox doesn't work with them
10:34 < nsf> it requires more recent version of Go than the current release
10:34 < Namegduf> The difference is, in Go you can see it exists and program
to it.
10:34 < Namegduf> I use linked lists in several places, actually.
10:34 < vicevirtue> the notion of a list is what I want, not the underlying
implementation...  it could be implementeed as a list of vectors, that would
alleviate some of the speed issues
10:35 < Namegduf> A minute ago you were talking about inefficiency.
10:35 < Namegduf> If you want the "notion" of a list, you have to write your
own, yes.
10:35 < vicevirtue> or even just some type which would just automatically
reallocate/copy when I overran it
10:35 < nsf> drd:
http://code.google.com/p/go/source/detail?r=d9e59eeeb1d6deef542502f552927f9120d5731e
everything after that commit should work for termbox :)
10:35 < Namegduf> See: Vector
10:35 < Namegduf> That is what a Vector is
10:35 < Namegduf> You can also use append() with slices
10:35 < Namegduf> Which is probably the better answer
10:36 < Namegduf> As it will do that for you.
10:36 < kimelto> a linked list is cheaper than an array to insert in the
middle of the least
10:36 < Namegduf> That is true.
10:36 < kimelto> but if you only append, slices are the way to go
10:36 < nsf> kimelto: that's a very rare requirement
10:36 < kimelto> list*
10:37 < aiju> nsf: yeah, deleting from the middle is much more common
10:37 < nsf> because mostly, inserting in the middle means you have to
maintain a sorted order
10:37 < vicevirtue> nsf: I don't think it is...  insertion or removal from
the middle is not that rare.  Consider a collection of connected clients
10:37 < nsf> and here comes trees
10:37 < Namegduf> Yeah
10:37 < Namegduf> Why aren't you using a tree if you need the data sorted?
10:37 < Namegduf> Or a map?
10:37 < Namegduf> Maps make better sets, too.
10:38 < aiju> when in doubt, use brute force
10:38 < nsf> deleting from the middle of a vector is O(1) if you don't need
to maintain sorted order
10:38 < aiju> ugh
10:38 < aiju> cracking RSA is O(1)
10:38 < vicevirtue> true...  I forgot that :P
10:38 < Namegduf> A collection of connected clients should not be using a
list.
10:38 < nsf> swap with the latest element and decrement size
10:38 < fuzzybyte> is it not possible to have in go multiple statements
inside a for separated by comma like in C: for(int x = 10, int y = 4; x>y; x--,
y++) {} ?
10:38 < aiju> fuzzybyte: no
10:39 < Namegduf> No, but you can do this:
10:39 < nsf> fuzzybyte: nope :(
10:39 < Namegduf> x, y = 10, 4
10:39 < Namegduf> x, y = x-1, y+1
10:39 < aiju> http://aiju.phicode.de/code/sort <-- the only place where i
ever used the comma operator
10:39 < Namegduf> Multiple assignment should avoid most uses of that.
10:39 < kimelto> I am a bit confused by append, btw
10:40 < Namegduf> append takes a slice and a variable length list of
arguments of the type in said slice.
10:40 < nsf> kimelto: what's wrong with it?
10:40 < nsf> it appends..
10:40 < Namegduf> If there's room, it copies the arguments in in-place.
10:40 < kimelto> If I init my slice with make, it will not use the allocated
space but allocated more space at the end.
10:40 < nsf> kimelto: you're doing it wrong
10:40 < Namegduf> That's the point of append.
10:41 < nsf> make([]byte, 0, 100)
10:41 < vicevirtue> if you init with make, and give it additional capacity,
then yes
10:41 < nsf> preallocate 100 bytes for append
10:41 -!- artefon [~thiago@189.59.204.186] has joined #go-nuts
10:41 < nsf> len(s) == 0
10:41 < nsf> cap(s) == 100
10:41 < Namegduf> append() doesn't know you didn't already use the capacity
that's already in the slice's length
10:41 < drd> nsf: compiling on darwin: termbox.c: In function ‘tb_init’:
10:41 < drd> termbox.c:89: error: ‘SIGWINCH’ undeclared (first use in this
function)
10:41 < Namegduf> Why would it?
10:41 < nsf> drd: ah..  I forgot to mention one small thing :)
10:41 < drd> heh
10:41 < nsf> it's linux only
10:41 < aiju> Namegduf: what do you mean?
10:42 < kimelto> with make([]slice, 100) len() == cap() == 100 ?
10:42 < Namegduf> kimelto: Yes.
10:42 < nsf> although probably it will be possible to port it to macos
10:42 < nsf> but I'm not sure
10:42 < Namegduf> With make([]slice, 100), you have a 100-length slice with
no spare capacity,
10:42 < nsf> kimelto: yes
10:42 -!- shrewduser [~shrewduse@220-253-8-81.VIC.netspace.net.au] has quit [Quit:
shrewduser]
10:42 < vicevirtue> but semantically, the length of a slice is the used
capacity
10:43 < Namegduf> Yes.
10:43 < vicevirtue> oh, I see
10:43 < aiju> bad idea (n.): having a constant A and a variable a
10:43 < vicevirtue> hence the make([]type, 0, capacity)
10:43 < Namegduf> Yes.
10:43 < Namegduf> If you know it fits, though, use copy()
10:44 < nsf> also there is another way
10:44 < Namegduf> append is for adding to the end.
10:44 < nsf> a bit weird though
10:44 < nsf> make([]byte, 100)[:0]
10:44 < nsf> don't tell anyone :)
10:44 < kimelto> ;p
10:44 < nsf> maybe it won't work though
10:45 -!- thiago__ [~thiago@189.115.131.218] has joined #go-nuts
10:45 -!- ios_ [~ios@180.191.130.191] has joined #go-nuts
10:46 -!- virtualsue [~chatzilla@nat/cisco/x-hdfecizqkjnxcbkb] has joined #go-nuts
10:46 < Namegduf> No reason why it shouldn't.
10:46 < nsf> well, I haven't tried it
10:46 < nsf> that's what I meant
10:47 -!- artefon [~thiago@189.59.204.186] has quit [Ping timeout: 240 seconds]
10:47 -!- vasu [~vasu@202.63.112.184] has quit [Quit: Ex-Chat]
10:48 < nsf> oh..  I know even more weird way
10:48 < nsf> s := new([100]byte)[:0]
10:49 < nsf> len(s) == 0 && cap(s) == 100
10:49 -!- vasu [~chatzilla@202.63.112.184] has joined #go-nuts
10:52 < fuzzybyte> what if I have a function that returns two values (eg.
a,b := foo()) and i also want to initialize third variable c := 1.  i tried: for
c, a, b := 1, foo(); something; something {} but it does not work
10:52 < fuzzybyte> assignment count mismatch: 3 = 2
10:52 < nsf> you're playing with the syntax too much
10:53 < nsf> c := 1
10:53 < nsf> a, b := foo()
10:53 < nsf> what's wrong with that?
10:53 < nsf> ah, ok
10:53 < nsf> for loop
10:54 < nsf> but still, just declare the var outside of the loop
10:54 < fuzzybyte> ahh, veryy well
10:54 -!- vasu [~chatzilla@202.63.112.184] has quit [Quit: ChatZilla 0.9.86
[Iceweasel 3.0.6/2010033100]]
10:54 -!- sahid [~sahid@LNeuilly-152-21-22-10.w193-253.abo.wanadoo.fr] has joined
#go-nuts
10:54 -!- vasu [~chatzilla@202.63.112.184] has joined #go-nuts
10:57 -!- terrex [~terrex@84.122.72.127.dyn.user.ono.com] has joined #go-nuts
10:57 < nsf> few decades ago you was able to declare variables in C only at
the beginning of the function
10:57 < nsf> ;)
10:57 < aiju> those were the days
10:59 < nsf> I still think it's a good way to control an amount of variables
inside a function
10:59 < nsf> people think I'm weird when I say that
10:59 < nsf> :|
10:59 < drd> nsf: made some progress in getting termbox working on darwin,
but now running into what looks like go issue (?) http://pastie.org/1391634
10:59 < aiju> i think it's a good way to control the length of your
functions
10:59 < aiju> why the fuck do people write functions with over 9000 lines?
11:00 < nsf> drd: hm..  interesting
11:00 < kimelto> nsf: I still do that ;)
11:00 < kimelto> (in C)
11:00 * aiju read xfree86 code recently...  it is NOT nice
11:00 < drd> aiju: have you ever read the source to ffmpeg CLI?
11:00 < aiju> hahahaha
11:00 < aiju> no, i prefer staying sane
11:00 < drd> 1700 line function :\
11:00 < drd> 7 levels of nesting
11:00 < drd> \m/
11:00 < kimelto> modularity is overrated!
11:00 < nsf> drd: see, third gcc line
11:00 < nsf> it should look like that:
11:00 < aiju> http://aiju.phicode.de/b/gems
11:00 < nsf> gcc -m32 -g -fPIC -O2 -o _cgo1_.o _cgo_main.o input.c.o
ringbuffer.c.o term.c.o termbox.c.o utf8.c.o termbox.cgo2.o _cgo_export.o
11:00 < aiju> the best bit in the driver
11:01 < nsf> are you using the latest termbox git version?
11:01 < drd> nsf: yes
11:01 < nsf> weird
11:01 < nsf> drop a go/Makefile somewhere
11:01 < vicevirtue> nsf, a similar addition to the C spec, variable
initialisers in guards, means that we can reuse the names for counter variables
when appropriate without being scared
11:01 < vicevirtue> I think it's a good thing
11:02 < nsf> drd: ah!
11:02 < nsf> I think I know what's wrong
11:02 < nsf> as I've said
11:03 < nsf> you need a Go version more recent than the current release
11:03 < aiju> go fetch your time machine
11:03 < nsf> it contains few major cgo and makefile templates changes
11:03 < nsf> no, just use hg tip
11:04 < drd> nsf: ah, k.  and then do i still build from root of project, or
just gomake in /go ?
11:04 < drd> er, sorry, build first from root
11:04 < nsf> just gomake in go
11:04 < nsf> go/Makefile calls make_libtermbox.bash script which builds the
termbox itself
11:04 < drd> yep
11:05 < drd> should i worry about my existing cgo projects?
11:05 < nsf> erm..  maybe
11:05 < drd> or are you just relying on new features
11:05 < drd> heh :>
11:05 < nsf> well, it depends
11:05 < nsf> I was linking termbox statically to cgo_termbox.so
11:06 < nsf> and now there is no shared objects at all
11:06 < nsf> it simply linked statically using recent elf stuff in linker
11:06 < drd> nsf: yea i noticed that a few days ago
11:06 -!- skejoe [~skejoe@188.114.142.162] has quit [Read error: Operation timed
out]
11:06 < nsf> but in the current release there are problems with that
11:06 < drd> everything i was working on seemed to be happy with that
11:06 < nsf> problems were fixed few commits after
11:07 < nsf> drd: then you're lucky :)
11:07 < drd> the 1-bit commit?
11:07 < nsf> no, that was the release too
11:07 < drd> ah
11:07 < nsf> I've dropped a link for you already
11:08 < nsf>
http://code.google.com/p/go/source/detail?r=d9e59eeeb1d6deef542502f552927f9120d5731e
11:08 < nsf> that's the commit that is required
11:08 < drd> ohh, i misunderstood what you were pointing at..  thought you
meant from your lib.  derp!
11:08 * drd is building fresh Go
11:09 < nsf> well, I was hoping no one will use termbox until the next go
release :)
11:09 < drd> i may have a <5 line patch for darwin compat if this works
out
11:12 < drd> nsf, http://pastie.org/1391634
11:13 < nsf> uhm..
11:13 < nsf> :(
11:14 < nsf> you're using the latest Go tip from hg right?
11:14 < drd> just hg fetched
11:14 < drd> build looked happy
11:14 < drd> refresh pastie for build output
11:15 < nsf> well, funcs and keys are defined in term.c.o
11:15 < nsf> so it should work
11:16 < nsf> I don't know :(
11:16 -!- skejoe [~skejoe@188.114.142.162] has joined #go-nuts
11:17 < drd> weird.  0000000000000008 C _keys
11:17 < nsf> apparently linker is not happy about something
11:17 < drd> 0000000000000008 C _funcs
11:17 < drd> from nm -a term.c.o
11:17 < nsf> drd: interesting
11:17 < nsf> maybe a #define somewhere?
11:18 < nsf> try gcc -E term.c
11:18 < nsf> it does preprocessing
11:19 < nsf> I know that Mac uses modified gcc
11:20 < nsf> I guess it's their trickery
11:20 < nsf> but it's easy for me to blame someone
11:20 < nsf> actually I have no idea what's wrong and it's hard to tell
without having a Mac
11:20 < aiju> you don't need to blame Apple
11:20 < aiju> just blame gcc
11:21 < drd> added output for gcc -E term.c
11:21 < drd> http://pastie.org/1391634
11:22 < nsf> well, I don't need the whole output
11:22 < nsf> you see at the end
11:22 < nsf> there are keys and funcs
11:22 -!- tvw [~tv@e176006134.adsl.alicedsl.de] has joined #go-nuts
11:23 < nsf> why they become _keys and _funcs in elf objec
11:23 < nsf> object*
11:23 < nsf> that's strange
11:23 < nsf> hm..  that's interesting
11:24 -!- vicevirtue [~reuben@220-253-8-81.VIC.netspace.net.au] has quit [Ping
timeout: 265 seconds]
11:24 < nsf> The gcc compiler prepends underscore to all C-language symbols
11:24 < nsf> on Mac OS X.
11:24 < nsf> (google says)
11:24 < nsf> but there should be a switch
11:24 < nsf> something like
11:24 < drd> "interesting"
11:24 < drd> :)
11:24 < nsf> -fno-leading-underscore
11:25 < nsf> I guess you'll have to add it to the CMakeLists.txt
11:25 < drd> yep
11:26 < nsf> on line 5 for example
11:26 < nsf> should be fine
11:26 < nsf> for testing purposes
11:27 < nsf> then make clean && make install
11:27 < nsf> in go/
11:28 < drd> lots of undefined symbols then
11:28 < nsf> :(
11:29 < nsf> MacOS magic
11:29 < drd> time to call it for the night..  maybe we can work this out
later.  thanks!
11:29 < nsf> sure
11:30 < nsf> ncurses isn't a bad idea btw, but you'll have to fix bindings
too
11:30 < nsf> and I can't help you with termbox on Mac, I don't have a Mac :(
11:32 -!- jacek [d4bd2304@gateway/web/freenode/ip.212.189.35.4] has joined
#go-nuts
11:33 < jacek> Hello.  If I want to convert bool value to int (0/1) do I
need to do it using if / else ?
11:33 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts
11:34 < nsf> jacek: looks like yes
11:35 < jacek> Thank you.  There isn't anything like "a ? b : c" in Go - is
there?
11:35 < nsf> nope
11:36 < jacek> OK, thank you.  Just wanted to make sure
11:40 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.3]
11:43 -!- jacek [d4bd2304@gateway/web/freenode/ip.212.189.35.4] has quit [Quit:
Page closed]
11:45 -!- vasu [~chatzilla@202.63.112.184] has quit [Quit: ChatZilla 0.9.86
[Iceweasel 3.0.6/2010033100]]
11:48 -!- vasu [~chatzilla@202.63.112.184] has joined #go-nuts
11:49 -!- Fish [~Fish@coss6.exosec.net] has quit [Ping timeout: 264 seconds]
11:50 -!- vasu [~chatzilla@202.63.112.184] has quit [Client Quit]
11:50 -!- vasu [~chatzilla@202.63.112.184] has joined #go-nuts
11:56 < KBme> hi
11:56 < KBme> anyone any pointers as to what needs to be cleaned up from a
tcpsocket+bufio.ReadWriteBuffer?
11:57 < KBme> trying to track down a memory leak :)
12:00 < wrtp> KBme: presumably you've Closed them both?
12:02 < KBme> both?
12:02 < KBme> you can close an buffer?
12:04 < KBme> doesn't seem to be mentioned here
http://localhost:8000/pkg/bufio/
12:04 < KBme> er, http://golang.org/pkg/bufio/ ;)
12:11 -!- virtualsue [~chatzilla@nat/cisco/x-hdfecizqkjnxcbkb] has quit [Ping
timeout: 240 seconds]
12:15 -!- rlab [~Miranda@91.200.158.34] has quit [Ping timeout: 240 seconds]
12:27 -!- Fish [~Fish@9fans.fr] has joined #go-nuts
12:34 -!- Fish- [~Fish@coss6.exosec.net] has joined #go-nuts
12:34 -!- petrux [~petrux@host16-224-static.53-82-b.business.telecomitalia.it] has
joined #go-nuts
12:38 -!- sauerbraten [~sauerbrat@p508CF139.dip.t-dialin.net] has joined #go-nuts
12:52 -!- leczb [~leczb@nat/google/x-ywqggqixvmvnyiix] has quit [Remote host
closed the connection]
12:53 -!- leczb [~leczb@nat/google/x-olgumaddhinjraes] has joined #go-nuts
12:53 -!- gr0gmint [~quassel@87.60.23.38] has quit [Read error: Connection reset
by peer]
12:54 -!- Wiz126 [~Wiz@24.229.245.72.res-cmts.sm.ptd.net] has quit [Ping timeout:
276 seconds]
12:57 -!- virtualsue [~chatzilla@nat/cisco/x-ieeycjvymvlrkahy] has joined #go-nuts
13:05 -!- niemeyer [~niemeyer@201-2-134-72.pltce701.dsl.brasiltelecom.net.br] has
joined #go-nuts
13:06 < tensai_cirno> is there any example of working with unsafe pointers?
Wrapping against C library with big union struct
13:08 -!- vasu [~chatzilla@202.63.112.184] has quit [Quit: ChatZilla 0.9.86
[Iceweasel 3.0.6/2010033100]]
13:14 -!- devrim [~Adium@cpe-72-225-239-227.nyc.res.rr.com] has joined #go-nuts
13:17 -!- ymasory [~ymasory@c-76-99-55-224.hsd1.pa.comcast.net] has quit [Remote
host closed the connection]
13:18 -!- femtoo [~femto@95-89-196-143-dynip.superkabel.de] has joined #go-nuts
13:19 -!- DarthShrine [~angus@pdpc/supporter/student/DarthShrine] has quit [Quit:
DarthShrine]
13:21 -!- vasu [~vasu@202.63.112.184] has joined #go-nuts
13:22 -!- vasu [~vasu@202.63.112.184] has quit [Quit: Ex-Chat]
13:34 -!- vasu [~vasu@202.63.112.184] has joined #go-nuts
13:35 < aiju> how to access local variables with gdb?
13:37 < ampleyfly> do you mean local as in within a function?
13:37 < aiju> yeah
13:38 -!- vasu [~vasu@202.63.112.184] has quit [Remote host closed the connection]
13:38 < ampleyfly> well, such variables only exist when the function is
running, so you will need to break in that function
13:39 < aiju> i think i'll just make it global
13:39 -!- vasu_ [~vasu@202.63.112.184] has joined #go-nuts
13:39 -!- vasu_ [~vasu@202.63.112.184] has quit [Remote host closed the
connection]
13:39 -!- vasu [~vasu@202.63.112.184] has joined #go-nuts
13:41 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has quit [Quit: WeeChat
0.3.2]
13:42 -!- Fish [~Fish@9fans.fr] has quit [Ping timeout: 260 seconds]
13:42 -!- Fish [~Fish@9fans.fr] has joined #go-nuts
13:43 -!- vasu_ [~vasu@202.63.112.184] has joined #go-nuts
13:44 -!- vasu [~vasu@202.63.112.184] has quit [Remote host closed the connection]
13:44 -!- vasu_ [~vasu@202.63.112.184] has quit [Remote host closed the
connection]
13:45 -!- vasu [~vasu@202.63.112.184] has joined #go-nuts
13:46 -!- reuben [~reuben@220-253-8-81.VIC.netspace.net.au] has joined #go-nuts
13:48 -!- vasu [~vasu@202.63.112.184] has quit [Client Quit]
13:48 -!- vasu [~vasu@202.63.112.184] has joined #go-nuts
13:50 -!- virtualsue_ [~chatzilla@nat/cisco/x-ytjqalhvbicetmiz] has joined
#go-nuts
13:52 -!- virtualsue [~chatzilla@nat/cisco/x-ieeycjvymvlrkahy] has quit [Ping
timeout: 265 seconds]
13:58 -!- vasu_ [~vasu@202.63.112.184] has joined #go-nuts
13:58 -!- vasu_ [~vasu@202.63.112.184] has quit [Read error: Connection reset by
peer]
13:58 -!- vasu [~vasu@202.63.112.184] has quit [Remote host closed the connection]
13:58 -!- vasu [~vasu@202.63.112.184] has joined #go-nuts
14:01 -!- vasu_ [~vasu@202.63.112.184] has joined #go-nuts
14:01 -!- vasu [~vasu@202.63.112.184] has quit [Remote host closed the connection]
14:01 -!- vasu_ [~vasu@202.63.112.184] has quit [Remote host closed the
connection]
14:02 -!- vasu [~vasu@202.63.112.184] has joined #go-nuts
14:04 -!- vasu [~vasu@202.63.112.184] has quit [Remote host closed the connection]
14:06 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts
14:08 -!- noktoborus [debian-tor@gateway/tor-sasl/noktoborus] has quit [Remote
host closed the connection]
14:10 -!- zozoR [~zozoR@56346ed3.rev.stofanet.dk] has joined #go-nuts
14:14 -!- Project_2501 [~Marvin@82.84.76.48] has joined #go-nuts
14:16 -!- Scorchin [~Scorchin@host109-154-144-35.range109-154.btcentralplus.com]
has joined #go-nuts
14:16 -!- plainhao [~plainhao@208.75.85.237] has joined #go-nuts
14:17 -!- thiago__ [~thiago@189.115.131.218] has quit [Quit: bye]
14:19 -!- dreisner [~noclaf@ool-18bba97a.dyn.optonline.net] has joined #go-nuts
14:20 -!- dreisner [~noclaf@ool-18bba97a.dyn.optonline.net] has left #go-nuts []
14:28 -!- emjayess [~emjayess@pix1.i29.net] has joined #go-nuts
14:32 -!- niemeyer [~niemeyer@201-2-134-72.pltce701.dsl.brasiltelecom.net.br] has
quit [Ping timeout: 240 seconds]
14:35 -!- fighterlyt [~liuyuntan@111.148.247.34] has joined #go-nuts
14:35 < fighterlyt> hello,everyone
14:38 < wrtp> KBme: no, sorry, you're right.  you can't close a bufio Buffer
14:39 < fighterlyt> I know little about go programming language, but I has
been studying it hard.Hope I can help someone with some problems!
14:39 -!- morphbot [~morphbot@p57B57BFE.dip.t-dialin.net] has joined #go-nuts
14:39 -!- morphbot [~morphbot@p57B57BFE.dip.t-dialin.net] has left #go-nuts []
14:40 < KBme> wrtp: i think it's just garbage collected as usual
14:40 -!- fighterlyt [~liuyuntan@111.148.247.34] has left #go-nuts []
14:40 < wrtp> yup
14:40 < KBme> seems so, since i just make new buffers for each reconnection
14:40 -!- kanru [~kanru@118-168-233-48.dynamic.hinet.net] has joined #go-nuts
14:40 < KBme> and my memory doesn't get out of hand with lots of
reconnections
14:41 < wrtp> KBme: are you sure your memory is growing without bound?
14:41 < wrtp> 'cos if it isn't, it's not a memory leak - just a slow garbage
collector...
14:41 -!- tensai_cirno [~cirno@77.232.15.216] has quit [Quit: Leaving]
14:42 -!- shvntr_ [~shvntr@113.84.149.54] has quit [Ping timeout: 250 seconds]
14:44 < KBme> well, i kind of have this stupid code with goroutines all over
the place
14:44 -!- skelterjohn [~jasmuth@c-68-45-238-234.hsd1.nj.comcast.net] has quit
[Quit: skelterjohn]
14:44 < KBme> hard to debug..
14:46 < wrtp> can't you just keep track of memory over time?
14:47 -!- tvw [~tv@e176006134.adsl.alicedsl.de] has quit [Remote host closed the
connection]
14:48 < KBme> i do, i have a test version of my app running 24/7 on a
computer
14:48 < KBme> it's just not immediate
14:48 < KBme> i also stress-test it by flooding it with messages
14:48 -!- vasu [~vasu@202.63.112.184] has joined #go-nuts
14:49 -!- tvw [~tv@e176006134.adsl.alicedsl.de] has joined #go-nuts
14:49 -!- tvw [~tv@e176006134.adsl.alicedsl.de] has quit [Remote host closed the
connection]
14:49 -!- tvw [~tv@e176006134.adsl.alicedsl.de] has joined #go-nuts
14:50 -!- shvntr [~shvntr@222.50.75.151] has joined #go-nuts
14:50 -!- xash [~xash@d047208.adsl.hansenet.de] has joined #go-nuts
14:54 -!- tvw [~tv@e176006134.adsl.alicedsl.de] has quit [Remote host closed the
connection]
14:59 -!- noktoborus [debian-tor@gateway/tor-sasl/noktoborus] has joined #go-nuts
15:00 -!- artefon [~thiago@dhcp16.usuarios.dcc.ufmg.br] has joined #go-nuts
15:02 -!- vicevirtue [~reuben@220-253-8-81.VIC.netspace.net.au] has quit [Ping
timeout: 250 seconds]
15:06 -!- jacek_ [d4bd2304@gateway/web/freenode/ip.212.189.35.4] has joined
#go-nuts
15:06 < wrtp> so...  is the memory going up and up and up?
15:06 < wrtp> KBme: or just staying at some (albeit high) level?
15:07 < KBme> not really, not anymore I don't think
15:07 < KBme> it's pretty steady around 6M, even when I hit it with 20
messages per second
15:07 < jacek_> When I have a binary data (array of bytes) how can I cast it
into a structure so it'd be easier to parse it?  You know, like pointer casting in
C...  Is it possible?
15:08 < Namegduf> It's possible but entirely unportable.
15:08 < Namegduf> Padding will make the layout not what you might expect it
to be and will differ between architectures, compilers, or compiler versions
15:09 < Namegduf> This is the same as in C, so sure, you can do the same
thing.
15:09 < jacek_> OK. But if I want to have it unportable?
15:09 < Namegduf> Then yes, it is possible.
15:09 < Namegduf> You want to use package unsafe.
15:09 < jacek_> Do I need to use the unsafe pointers and just copy data?
15:09 < jacek_> Oh, OK.
15:10 < jacek_> Then I think I know how to do this.  Thank you!
15:10 < Namegduf> You shouldn't need to copy data; just get a pointer to it
then turn that pointer into another type of pointer.
15:10 < Namegduf> No problem.
15:10 -!- niemeyer [~niemeyer@201-2-134-72.pltce701.dsl.brasiltelecom.net.br] has
joined #go-nuts
15:12 < Namegduf> Go makes it pretty obvious when you're being unportable;
unsafe will be involved.
15:13 -!- d_m [d6@otaku.freeshell.org] has joined #go-nuts
15:16 -!- go-irc-c [~go-irc-ch@195-132-97-104.rev.numericable.fr] has joined
#go-nuts
15:17 < KBme> there :)
15:17 < KBme> when does the net package get fixed?
15:18 < KBme> right now it can't resolve ipv6 through an ipv4 server, for
example
15:18 < uriel> depends on your deffinition of 'fixed'
15:18 < uriel> it will probably soon start to use the host's resolver, which
is rather disappointing
15:18 < KBme> well, last i heard, they wanted to link it to the hosts'
resolver
15:19 < uriel> yes :(
15:19 < wrtp> KBme: it sounds like you haven't got a memory leak.
15:19 < KBme> i agress, but it seems networking is so horribly broken
15:19 < KBme> better to have all the brokenness at one place
15:19 < Namegduf> Doesn't seem broken here.
15:19 -!- noktoborus [debian-tor@gateway/tor-sasl/noktoborus] has quit [Remote
host closed the connection]
15:19 < uriel> KBme: ? what is horribly broken?  uhu?
15:19 < Namegduf> Hmm.  Does that mean it will be linking against glibc?
15:19 < uriel> ah, name resolution in most OSes, yes
15:19 < wrtp> jacek_: it's almost never a good idea to use unsafe
15:19 < KBme> uriel: yes
15:19 < uriel> KBme: I completely agree :(
15:20 < KBme> Namegduf: try resolving an ipv6 address using an ipv4 DNS
15:20 < KBme> no worky
15:20 < uriel> i hope they keep the option of using Go's own resolver
15:20 < uriel> and avoid linking to any host crap
15:20 < KBme> that'd be nice
15:20 -!- noktoborus [debian-tor@gateway/tor-sasl/noktoborus] has joined #go-nuts
15:20 -!- jacek_ [d4bd2304@gateway/web/freenode/ip.212.189.35.4] has left #go-nuts
[]
15:20 < Namegduf> KBme: That's cool, but not indicative of a problem in any
part of networking I actually care about.
15:20 < uriel> NIS anyone?  *yuck*
15:20 < Namegduf> IPv6 can be as weird as it likes in early stuff.
15:21 < Namegduf> Linking against glibc means Go programs stop working on
things without glibc "out of the box".
15:21 < KBme> uriel: netbios?  zeroconf?
15:22 < uriel> KBme: YUCKYUCK!
15:22 < KBme> ☺
15:23 < uriel> Namegduf: only the binaries, this is already (very sadly)
true of most C programs too :(((
15:23 < KBme> Namegduf: well i would need it, my needs trump yours :P
15:23 < uriel> glibc makes static linking a nightmare this days, which is a
real shame
15:23 -!- vasu [~vasu@202.63.112.184] has quit [Remote host closed the connection]
15:23 < uriel> (Solaris and others are even worse)
15:23 < Namegduf> KBme: I'm just saying it's not sensible grounds to call
networking "broken"
15:23 < Namegduf> No more than, say, lack of rDNS is.
15:23 -!- vasu [~chatzilla@202.63.112.184] has joined #go-nuts
15:23 < Namegduf> (Which I need)
15:23 < uriel> Namegduf: it is not Go's networking that is broken, it is
networking on most OSes this days
15:23 < KBme> Namegduf: i called networking in general broken, not go's
implementation
15:24 < KBme> what uriel said
15:24 < Namegduf> uriel: It is true for most C, but didn't use to be true
for Go.
15:24 < Namegduf> Which makes it kinda a pity.
15:24 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-175-115.clienti.tiscali.it] has
joined #go-nuts
15:24 < KBme> just saw a new paper about how broken linkers are
15:25 < KBme> http://www.nth-dimension.org.uk/downloads.php?id=77
15:25 -!- vasu [~chatzilla@202.63.112.184] has quit [Client Quit]
15:25 -!- skelterjohn [~jasmuth@lawn-gw.rutgers.edu] has joined #go-nuts
15:26 -!- Urmel| [~11087Urme@82-136-196-44.ip.telfort.nl] has joined #go-nuts
15:26 < Namegduf> Why are they discussing Slashdot consensus as some kind of
academic consensus in the abstract?
15:28 -!- Project_2501 [~Marvin@82.84.76.48] has quit [Ping timeout: 265 seconds]
15:28 -!- serbaut [~joakims@88.80.182.68] has joined #go-nuts
15:29 < MaybeSo> lol
15:29 < uriel> KBme: very interesting
15:31 < KBme> isn't it?
15:31 < KBme> haven't had the time to read through it yet, but it looks
interesting
15:32 -!- tvw [~tv@212.79.9.150] has joined #go-nuts
15:33 < uriel> will add it to:
http://harmful.cat-v.org/software/dynamic-linking/
15:34 < KBme> nice
15:35 < skelterjohn> Namegduf: what are you referring to?  (I just logged in
and I'm curious)
15:35 < Namegduf> 15:25 <KBme> just saw a new paper about how broken
linkers are
15:35 < Namegduf> 15:25 <KBme>
http://www.nth-dimension.org.uk/downloads.php?id=77
15:36 < KBme> Namegduf: that's not how i understood that sentence though.
15:36 < KBme> it just says that since a lot of users (on slashdot) seem to
be mislead, he made an article in his blog
15:37 < Namegduf> Which raises the question of why an abstract in a "paper"
discusses his blog post.
15:37 < KBme> because that's what got him to write an articla
15:37 < KBme> article
15:38 < KBme> anyways, i don't care, the paper is interesting
15:38 < skelterjohn> that abstract wouldn't fly in an academic conference
15:38 < skelterjohn> i am assuming that it isn't published anywhere
15:39 < uriel> skelterjohn: there is a reason academic conferences are
pretty much irrelevant
15:39 < skelterjohn> what a ridiculous statement
15:39 < Namegduf> They don't like people taling about Twitter users in their
papers?
15:39 < KBme> just what I was about to say...academy is..
15:39 < KBme> nitpicking
15:39 < KBme> anyways, i'm off, bye
15:39 < skelterjohn> motivation doesn't go in an abstract - a quick summary
of your contribution and why it's important is what goes there
15:40 < Namegduf> It looks like he turned a blog post into a pretenious
paper, which is a pity because it would actually be good as a blog post.
15:41 < uriel> Namegduf: it is rather long for a blog post, but I somewhat
agree
15:43 < skelterjohn> and when i said it wouldn't fly in an academic
conference, i don't mean that it would be rejected out of hand.  i mean that the
author would be instructed to modify it to make the paper more professional
15:44 < uriel> being somewhat familiar with security-related conferences,
I'm not so sure of that
15:45 < skelterjohn> conference quality varies, certainly
15:47 < uriel> conferences that obsess over silly supperficial things to
appease suits are not particularly good
15:48 < Namegduf> Nah, but papers should probably represent more than a nice
collation of a few hour's googling in between reading Slashdot stories.
15:48 < Namegduf> :P
15:52 -!- vasu [~vasu@202.63.112.184] has joined #go-nuts
15:52 -!- vasu_ [~chatzilla@202.63.112.184] has joined #go-nuts
15:53 -!- vasu_ [~chatzilla@202.63.112.184] has quit [Client Quit]
15:53 -!- vasu [~vasu@202.63.112.184] has quit [Read error: Connection reset by
peer]
15:53 < skelterjohn> a well written paper is easier to read and to
understand
15:53 < skelterjohn> if you're smart enough to have a good idea, you can
take the time to make something good to show it
15:55 < skelterjohn> in particular, a good conference will attract more
submissions - the ones that are better written have an advantage over the ones
that are poorly written
15:55 < skelterjohn> and on average that conference's papers will be better
written
15:55 < skelterjohn> has nothing to do with appeasing "suits'
15:57 -!- askhader [~askhader@taurine.csclub.uwaterloo.ca] has joined #go-nuts
15:58 -!- Wiz126 [~Wiz@pool-72-78-236-159.phlapa.fios.verizon.net] has joined
#go-nuts
15:59 -!- Fish [~Fish@9fans.fr] has quit [Quit: So Long, and Thanks for All the
Fish]
15:59 -!- ios_ [~ios@180.191.130.191] has quit [Quit: Leaving]
16:03 -!- Wiz126 [~Wiz@pool-72-78-236-159.phlapa.fios.verizon.net] has quit [Ping
timeout: 260 seconds]
16:03 -!- Fish [~Fish@9fans.fr] has joined #go-nuts
16:06 -!- rejb [~rejb@unaffiliated/rejb] has joined #go-nuts
16:06 < serbaut> what is the best way to do a blocking Read of n bytes from
a bufio.Reader?
16:10 -!- kanru [~kanru@118-168-233-48.dynamic.hinet.net] has quit [Quit: WeeChat
0.3.2]
16:11 < skelterjohn> have you tried calling
reader.Read(aByteSliceWithLengthN)?
16:11 < skelterjohn> i haven't tested, but that seems the most likely from a
scan of the doc
16:11 < serbaut> yes it returns with less than N bytes if the underlying
read returns less
16:12 < serbaut> "It returns the number of bytes read into p.  It calls Read
at most once on the underlying Reader, hence n may be less than len(p)"
16:13 < serbaut> im reading from a net.Dial connection btw
16:13 -!- awidegreen [~quassel@c-eacae555.08-2-73746f39.cust.bredbandsbolaget.se]
has joined #go-nuts
16:17 < serbaut> im using http://pastebin.com/vL0SrhAc but it should be
common enough to be in the standard library i think.  dont understand why
bufio.Read isnt blocking...
16:17 < skelterjohn> what is causing the underlying read to return?
16:17 < skelterjohn> a simple delay?
16:17 < skelterjohn> or an eof
16:17 < serbaut> maybe an interrupted syscall i dont know?
16:17 < serbaut> not eof
16:18 -!- shvntr [~shvntr@222.50.75.151] has quit [Quit: 咚咚咚,大人,入棺时辰己到]
16:18 -!- Wiz126 [~Wiz@24.229.245.72.res-cmts.sm.ptd.net] has joined #go-nuts
16:18 < serbaut> there are a lot of layers beneath that can return short
network reads
16:19 < skelterjohn> i ask because i have some code that depends on
bufio.Reader filling up my N-byte slice :)
16:19 < skelterjohn> it hasn't had any problems yet...  i wrote both sides
of the connection though
16:19 < skelterjohn> so the data is always sent
16:20 < serbaut> it will break under heavy load when a syscall is
interrupted :)
16:20 < Namegduf> You can't.
16:20 < Namegduf> Read again until it's full.
16:20 < Namegduf> It will block on *some* amount read.
16:21 < Namegduf> I think some of the other bufio methods supproting reading
until a certain point, though
16:21 < Namegduf> In which case they will do this for you.
16:21 < skelterjohn> the ones with delims
16:21 < serbaut> do you know the reason bufio.Read([]byte) is behaving like
that?
16:21 < Namegduf> Yes.
16:21 < Namegduf> It's because the syscall behaves like that.
16:22 < Namegduf> And bufio.Read() has no reason or offered guarantees that
it shouldn't.
16:22 < Namegduf> Reading "until the buffer is full" would be the wrong
thing to do in a lot of cases, I think.
16:22 < Namegduf> It would also prevent you from doing both normal reads and
the buffer-permitted ones on the same thing at different times
16:23 < Namegduf> As you'd no longer have the normally-behaving Read()
method
16:23 < skelterjohn> might be useful to add bufio.Reader.ReadFor(n int)
(data []bytes, err os.Error)
16:24 < skelterjohn> with the guarantees that serbaut suggests
16:26 < wrtp> serbaut: you want io.ReadFull
16:26 -!- prip [~foo@host118-121-dynamic.47-79-r.retail.telecomitalia.it] has quit
[Read error: Connection reset by peer]
16:27 < wrtp> in fact, bufio until recently did behave as serbaut expected,
but i changed it.  it's my fault, mwahaha.
16:27 < serbaut> :D
16:27 < wrtp> it's better that doesn't call Read on the underlying Reader
more than once
16:28 -!- bortzmeyer [~bortzmeye@batilda.nic.fr] has quit [Quit: Leaving.]
16:28 -!- prip [~foo@host118-121-dynamic.47-79-r.retail.telecomitalia.it] has
joined #go-nuts
16:32 < serbaut> ReadFull was what i needed, thx
16:33 -!- Venom_X [~pjacobs@66.54.185.131] has joined #go-nuts
16:40 < wrtp> np
16:52 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts
16:53 -!- keithcascio [~keithcasc@nat/google/x-mkdqlxfcoxxoxesx] has joined
#go-nuts
17:01 -!- DerHorst [~Horst@e176101168.adsl.alicedsl.de] has joined #go-nuts
17:02 -!- niemeyer [~niemeyer@201-2-134-72.pltce701.dsl.brasiltelecom.net.br] has
quit [Ping timeout: 240 seconds]
17:03 -!- ExtraSpice [~XtraSpice@88.118.33.48] has quit [Read error: Connection
reset by peer]
17:04 -!- nettok [~quassel@200.119.183.37] has joined #go-nuts
17:17 -!- foocraft [~dsc@89.211.188.252] has quit [Ping timeout: 240 seconds]
17:32 -!- bnjmn [~bnjmn@siegel.dreamhost.com] has quit [Remote host closed the
connection]
17:45 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-166-134.clienti.tiscali.it] has
joined #go-nuts
17:45 -!- ExtraSpice [~XtraSpice@88.118.33.48] has joined #go-nuts
17:47 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-175-115.clienti.tiscali.it] has
quit [Read error: Operation timed out]
17:55 -!- ExtraSpice [~XtraSpice@88.118.33.48] has quit [Max SendQ exceeded]
17:55 -!- ExtraSpice [~XtraSpice@88.118.33.48] has joined #go-nuts
17:59 -!- ildorn [~ildorn@dslb-188-099-204-216.pools.arcor-ip.net] has joined
#go-nuts
18:12 -!- bortzmeyer [~stephane@2a01:e35:8bd9:8bb0:8991:db15:73a4:1109] has joined
#go-nuts
18:14 -!- xash [~xash@d047208.adsl.hansenet.de] has quit [Ping timeout: 265
seconds]
18:15 -!- iant [~iant@adsl-71-133-8-30.dsl.pltn13.pacbell.net] has quit [Ping
timeout: 240 seconds]
18:16 -!- iant [~iant@216.239.45.130] has joined #go-nuts
18:16 -!- mode/#go-nuts [+v iant] by ChanServ
18:25 -!- tvw [~tv@212.79.9.150] has quit [Remote host closed the connection]
18:28 -!- Project-2501 [~Marvin@82.84.90.248] has joined #go-nuts
18:29 -!- serbaut [~joakims@88.80.182.68] has quit [Quit: Leaving.]
18:31 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-166-134.clienti.tiscali.it] has
quit [Ping timeout: 260 seconds]
18:33 -!- tgillespie_ [~tom@global-1-8.nat.csx.cam.ac.uk] has joined #go-nuts
18:33 -!- DerHorst [~Horst@e176101168.adsl.alicedsl.de] has quit [Remote host
closed the connection]
18:49 -!- jyxent [~jyxent@129.128.191.96] has joined #go-nuts
18:51 -!- exch [~exch@h78233.upc-h.chello.nl] has quit [Read error: Connection
reset by peer]
18:57 -!- exch [~exch@h78233.upc-h.chello.nl] has joined #go-nuts
19:05 -!- femtoo [~femto@95-89-196-143-dynip.superkabel.de] has quit [Read error:
Connection reset by peer]
19:08 -!- skelterjohn [~jasmuth@lawn-gw.rutgers.edu] has quit [Quit: skelterjohn]
19:24 -!- tgillespie_ [~tom@global-1-8.nat.csx.cam.ac.uk] has quit [Remote host
closed the connection]
19:26 -!- terrex [~terrex@84.122.72.127.dyn.user.ono.com] has quit [Quit:
Leaving.]
19:50 -!- Eridius [~kevin@unaffiliated/eridius] has joined #go-nuts
19:51 -!- illya77 [~illya77@76-193-133-95.pool.ukrtel.net] has joined #go-nuts
19:52 -!- femtoo [~femto@95-89-196-143-dynip.superkabel.de] has joined #go-nuts
19:53 -!- wrtp [~rog@92.17.4.160] has quit [Quit: wrtp]
20:00 -!- pingveno [~pingveno@c-98-246-133-8.hsd1.or.comcast.net] has quit [Read
error: Connection reset by peer]
20:01 -!- pingveno [~pingveno@c-98-246-133-8.hsd1.or.comcast.net] has joined
#go-nuts
20:02 -!- pingveno [~pingveno@c-98-246-133-8.hsd1.or.comcast.net] has quit [Read
error: Connection reset by peer]
20:03 -!- femtooo [~femto@95-89-196-143-dynip.superkabel.de] has joined #go-nuts
20:03 -!- arun [~arun@unaffiliated/sindian] has quit [Read error: Operation timed
out]
20:03 -!- arun [~arun@2001:610:110:4e2:280:5aff:fe69:e130] has joined #go-nuts
20:03 -!- arun [~arun@2001:610:110:4e2:280:5aff:fe69:e130] has quit [Changing
host]
20:03 -!- arun [~arun@unaffiliated/sindian] has joined #go-nuts
20:05 -!- niemeyer [~niemeyer@201-2-134-72.pltce701.dsl.brasiltelecom.net.br] has
joined #go-nuts
20:06 -!- pingveno [~pingveno@c-98-246-133-8.hsd1.or.comcast.net] has joined
#go-nuts
20:06 -!- femtoo [~femto@95-89-196-143-dynip.superkabel.de] has quit [Ping
timeout: 276 seconds]
20:07 -!- pothos_ [~pothos@111-240-210-54.dynamic.hinet.net] has joined #go-nuts
20:08 -!- pothos [~pothos@111-240-221-234.dynamic.hinet.net] has quit [Ping
timeout: 255 seconds]
20:12 -!- artefon [~thiago@dhcp16.usuarios.dcc.ufmg.br] has quit [Quit: bye]
20:15 -!- petrux [~petrux@host16-224-static.53-82-b.business.telecomitalia.it] has
quit [Quit: leaving]
20:17 -!- tensai_cirno [~cirno@77.232.15.216] has joined #go-nuts
20:20 < tensai_cirno> cgo maked with $(GOROOT)/src/Make.pkg installs to
$(GOROOT)/pkg, but i want to keep it in build tree
20:20 < tensai_cirno> or runtime depends on packages in $(GOROOT)?
20:22 -!- Tv [~tv@cpe-76-168-227-45.socal.res.rr.com] has joined #go-nuts
20:24 -!- ildorn [~ildorn@dslb-188-099-204-216.pools.arcor-ip.net] has quit [Quit:
Leaving.]
20:25 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts
20:26 -!- foocraft [~dsc@78.100.233.162] has joined #go-nuts
20:30 < fuzzybyte> why do i always get "gcc: _cgo_main.c: No such file or
directory" error with cgo?  I tried this example https://github.com/salviati/gogmp
20:30 < fuzzybyte> the examples in /misc/cgo/ say this too when i try to
make
20:31 < fuzzybyte> i dont even have a main.c
20:31 < nsf> everlasting Go updates pain
20:32 < nsf> fuzzybyte: cgo is kind of broken in the latest release
20:32 < nsf> after the release there is a bunch of fixes in hg repo
20:32 < cde> when will Go be self-hosting?
20:32 < fuzzybyte> oh
20:33 < nsf> cde: someday
20:33 -!- illya77 [~illya77@76-193-133-95.pool.ukrtel.net] has quit [Read error:
Connection reset by peer]
20:33 < cde> I long for that day
20:33 -!- res99 [~anonymous@201.237.130.70] has joined #go-nuts
20:33 < aiju> I have a dream…
20:37 < Xenith> Self-hosting?  What does that mean in relation to a
programming language?
20:38 < cde> a compiler written in its own language, able to compile itself
20:39 < cde> Go being a systems programming language, it's feasible (at
least in theory)
20:39 < cde> however, it's a lot of work for little perceived benefit
20:39 < Xenith> Oh, that
20:39 -!- plainhao [~plainhao@208.75.85.237] has quit [Quit: plainhao]
20:40 < Xenith> I was trying to figure out how Go can be used to host a code
repository.  :)
20:40 < nsf> cde: in fact there is a Go compiler written in Go
20:40 < nsf> it's called erGo
20:40 < cde> I didn't know.  thanks
20:40 < aiju> that's important for GoFY!
20:40 < nsf> and afaik it's closed source (probably commercial) windows-only
project
20:40 < uriel> aiju: hahaha
20:41 < nsf> but they've mentioned on their blog that it's written in Go and
is able to compile itself
20:41 < cde> until they disclose the source, we have no way if validating
whether it's truely written in Go
20:42 < nsf> true
20:42 < cde> still, it's good to know
20:42 -!- scala1024 [~scala@p4FD366A6.dip.t-dialin.net] has joined #go-nuts
20:43 -!- DarthShrine [~angus@pdpc/supporter/student/DarthShrine] has joined
#go-nuts
20:47 -!- virtualsue [~chatzilla@nat/cisco/x-ytjqalhvbicetmiz] has quit [Ping
timeout: 272 seconds]
20:54 -!- TheMue [~TheMue@p5DDF73AB.dip.t-dialin.net] has joined #go-nuts
20:57 -!- Wiz126 [~Wiz@24.229.245.72.res-cmts.sm.ptd.net] has quit []
20:57 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.3]
20:59 < temoto> world type is struct { ...  speed[*Muh] Point }, Point is
struct {X,Y,Z float}.  Why 'cannot assign to world.speed[muh].X' ?
21:02 < temoto> sorry, speed map[*Muh]Point
21:04 -!- femtoo [~femto@95-89-196-143-dynip.superkabel.de] has joined #go-nuts
21:07 -!- femtooo [~femto@95-89-196-143-dynip.superkabel.de] has quit [Ping
timeout: 260 seconds]
21:15 < tensai_cirno> i have byte array, how i can get pointer to
start/middle/end and cast it to int, uint, etc?
21:16 < cbeck1> You can use the unsafe package
21:17 < cbeck1> Although you may run into alignment issues
21:17 < temoto> tensai_cirno, int(buf[0])
21:18 < temoto> but i guess you didn't mean that
21:18 < tensai_cirno> cbeck1, alignment issues?
21:19 -!- artefon [~thiago@189.115.131.218] has joined #go-nuts
21:19 -!- res99 [~anonymous@201.237.130.70] has quit [Ping timeout: 240 seconds]
21:20 < temoto> Safe way is to use encoding/binary package and Read(buf,
endianness, &int_var).
21:20 < temoto> oh wait, Read wants Reader so you'd have to wrap a Reader
around []byte
21:20 < cbeck1> Ah, that's a much better idea
21:20 < tensai_cirno> cbeck1, by the way, where i can look at examples with
unsafe package?  Documentation pretty scarse
21:20 < cbeck1> A bytes.Buffer should work
21:21 < tensai_cirno> i'am wokring with C structs, this wouldn't be too
slow?
21:21 < tensai_cirno> mm
21:22 -!- femtoo [~femto@95-89-196-143-dynip.superkabel.de] has quit [Read error:
Connection reset by peer]
21:22 < cbeck1> tensai_cirno: It'll be slower, but unless you can guarantee
alignment, it's the only safe way to go
21:23 -!- artefon [~thiago@189.115.131.218] has quit [Read error: Connection reset
by peer]
21:23 -!- awidegreen [~quassel@c-eacae555.08-2-73746f39.cust.bredbandsbolaget.se]
has quit [Read error: Connection reset by peer]
21:23 < cbeck> tensai_cirno: It's pretty simple, think of unsafe.Pointer as
a void*
21:24 -!- Venom_X [~pjacobs@66.54.185.131] has quit [Quit: Venom_X]
21:24 < cbeck> If you want to cast between normally incompatible go types,
you need to first cast to an unsafe.Pointer, then cast that to the new type, which
must be a pointer type
21:25 < tensai_cirno> cbeck, oh, thanks
21:27 < uriel> cbeck: I'm not very familiar with unsafe.* but I think
interface{} is what is more usually 'kind-of-equivalent' to void*
21:27 < uriel> oh, but you are working with cgo?  ok, then I guess unsafe
tricks are the way to go from what I have seen others do
21:27 < cbeck> Yeah
21:28 < aiju> unsafe.Pointer is pretty much like void*
21:28 < aiju> but you shouldn't use it when you want to use void*
21:28 < cbeck> I agree
21:29 < cbeck> You shouldn't use an unsafe.Pointer where C would use a
void*, but an unsafe.Pointer is essentially a void*
21:29 < aiju> yeah
21:30 < tensai_cirno> I'm intend to use it only with cgo, i think
21:30 < tensai_cirno> by the way, gccgo ported to windows?
21:31 < aiju> why would one use gccgo after all?
21:31 < tensai_cirno> golang.org and presentations states that it better
21:32 < aiju> wtf?
21:32 < tensai_cirno> in terms of code generation
21:32 < tensai_cirno> and c++ interfacing
21:32 < cbeck> Yeah
21:32 < cbeck> I believe that's still the case
21:32 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts
21:32 < cbeck> Although it may still have not-as-good GC, I'm unsure
21:33 < aiju> well, *cough* C++
21:33 < cbeck> Meh
21:33 < cbeck> C++--
21:33 < cde> well Qt4 is C++ (done right imo)
21:33 < aiju> Qt4 is by no means done right
21:34 < cde> please elaborate
21:34 < aiju> QTachyonGenerator
21:34 < aiju> it's really bloated
21:34 < cde> perhaps.  but it sounds really cool!
21:34 < aiju> not too mention XML all over the place
21:34 < aiju> copy&place is totally broken
21:35 < aiju> *paste
21:35 < aiju> -o
21:35 < cde> it's a bit bloated.  still quite a good portable framework
(Java also comes to mind)
21:36 < aiju> portable shit is still shit :)
21:36 < cde> I think a huge amount of work went into both.  I'm really not
qualified to judge
21:37 < aiju> http://doc.qt.nokia.com/4.7/classes.html
21:37 < aiju> QAbstractTextDocumentLayout
21:37 < cde> anyway, this chan is about Go, so I suggest we continue the
discussion privately if you like
21:39 < scala1024> well, not too much traffic here.  why not go on
discussing it (til someone complains).
21:41 < aiju> i wonder whether gccgo output is as broken as gcc output
21:41 < aiju> (i bet a significant fraction of segfaults are actually gcc
bugs)
21:42 -!- coldturnip [~COLDTURNI@118-166-77-27.dynamic.hinet.net] has quit [Ping
timeout: 264 seconds]
21:43 -!- pothos [~pothos@111-240-210-54.dynamic.hinet.net] has quit [Ping
timeout: 240 seconds]
21:43 < uriel> "c++ done right"?  nice oxymoron!
21:45 < aiju> writing Qt or GTK interfaces for Go should be a criminal
offence
21:46 -!- artefon [~thiago@189.115.131.218] has joined #go-nuts
21:46 -!- TheMue [~TheMue@p5DDF73AB.dip.t-dialin.net] has quit [Quit: TheMue]
21:49 < plexdev> http://is.gd/j6aRe by [Rob Pike] in go/src/pkg/template/ --
template: fix trivial bug: integers are not "empty"
21:49 -!- artefon [~thiago@189.115.131.218] has quit [Read error: Connection reset
by peer]
21:50 -!- Wiz126 [~Wiz@24.229.245.72.res-cmts.sm.ptd.net] has joined #go-nuts
21:53 < scala1024> hafta ~
21:53 -!- scala1024 [~scala@p4FD366A6.dip.t-dialin.net] has quit [Quit:
Verlassend]
21:59 -!- pothos [~pothos@111-240-210-54.dynamic.hinet.net] has joined #go-nuts
21:59 -!- Fish [~Fish@9fans.fr] has quit [Quit: So Long, and Thanks for All the
Fish]
22:01 -!- niemeyer [~niemeyer@201-2-134-72.pltce701.dsl.brasiltelecom.net.br] has
quit [Ping timeout: 240 seconds]
22:08 -!- Project-2501 [~Marvin@82.84.90.248] has quit [Quit: E se abbasso questa
leva che succ...]
22:08 -!- bortzmeyer [~stephane@2a01:e35:8bd9:8bb0:8991:db15:73a4:1109] has quit
[Quit: Leaving.]
22:11 -!- skejoe [~skejoe@188.114.142.162] has quit [Quit: Lost terminal]
22:11 -!- zozoR [~zozoR@56346ed3.rev.stofanet.dk] has quit [Quit: Morten.  Desu~]
22:12 -!- sauerbraten [~sauerbrat@p508CF139.dip.t-dialin.net] has quit [Remote
host closed the connection]
22:22 < tensai_cirno> cbeck, is there pointer arithmetics with
unsafe.Pointer?
22:22 < aiju> tensai_cirno: yeah
22:22 < aiju> tensai_cirno: cast to uintptr
22:23 < aiju> unsafe.Pointer(uintptr(pointer) + 42)
22:33 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts
22:36 -!- niemeyer [~niemeyer@201-2-134-72.pltce701.dsl.brasiltelecom.net.br] has
joined #go-nuts
22:45 -!- iant [~iant@216.239.45.130] has quit [Ping timeout: 240 seconds]
22:54 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has quit [Quit:
Verlassend]
22:54 -!- Scorchin [~Scorchin@host109-154-144-35.range109-154.btcentralplus.com]
has quit [Quit: Scorchin]
22:55 -!- photron_ [~photron@port-92-201-27-116.dynamic.qsc.de] has quit [Ping
timeout: 265 seconds]
23:00 -!- xash [~xash@d047208.adsl.hansenet.de] has joined #go-nuts
23:04 -!- rlab [~Miranda@91.200.158.34] has quit [Read error: Connection reset by
peer]
23:06 < tensai_cirno> aiju, can you help me?  Go pointers looks weird for
me.
23:06 < tensai_cirno>
https://github.com/tensai-cirno/test_pointers/raw/master/src/main.go
23:07 < tensai_cirno>
https://github.com/tensai-cirno/test_pointers/raw/master/src/test/test_pointers_cgo.go
23:08 < aiju> tensai_cirno: i think it's (*uint)uintptr(unsafe.Pointer(...))
23:08 < aiju> but i have no clue
23:10 -!- napsy [~luka@88.200.96.18] has quit [Quit: leaving]
23:11 < tensai_cirno> no luck ._.
23:11 < tensai_cirno> program printing raw pointers
23:11 < tensai_cirno> 21176368, 10952752, etc
23:17 < tensai_cirno> return
(*int)(unsafe.Pointer((*C.int)((unsafe.Pointer)(st))))
23:17 < tensai_cirno> still broken
23:17 < tensai_cirno> argh
23:19 -!- LeNsTR [~lenstr@unaffiliated/lenstr] has quit [Quit: LeNsTR]
23:25 -!- LeNsTR [~lenstr@79.165.23.176] has joined #go-nuts
23:25 -!- LeNsTR [~lenstr@79.165.23.176] has quit [Changing host]
23:25 -!- LeNsTR [~lenstr@unaffiliated/lenstr] has joined #go-nuts
23:26 -!- foocraft [~dsc@78.100.233.162] has quit [Quit: Leaving]
23:26 -!- artefon [~thiago@189.115.131.218] has joined #go-nuts
23:32 -!- bbear [~bbear@21.0.98-84.rev.gaoland.net] has joined #go-nuts
23:33 < nsf> lol, I've just realised that iant's linker is called gold..
"Go ld" (ld is the name of the gnu linker)
23:33 < aiju> lol
23:39 < enferex> Aside from ian, is there much of a gccgo team at Google
working?
23:39 < nsf> enferex: looks like he's the only one gccgo developer
23:40 < nsf> and I know people don't want to work on gccgo
23:40 < nsf> it takes a lot of time to compile itself
23:40 < enferex> I like gccgo
23:40 < nsf> _A LOT_
23:40 < enferex> and i have been doing much of my research so far using both
gc and gccgo
23:40 < aiju> enferex: why?
23:41 < enferex> right now much of my rbmm stuff is for gccgo
23:41 < enferex> (region based memory management)
23:42 -!- artefon [~thiago@189.115.131.218] has quit [Read error: Connection reset
by peer]
23:49 -!- res99 [~anonymous@201.237.130.70] has joined #go-nuts
--- Log closed Tue Dec 21 00:00:01 2010