--- 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