--- Log opened Tue Dec 28 00:00:02 2010 00:07 -!- reiddraper [~reid@c-68-33-177-129.hsd1.md.comcast.net] has quit [Quit: reiddraper] 00:18 -!- jeff2 [~jeff@pool-108-13-140-226.lsanca.fios.verizon.net] has quit [Read error: Connection reset by peer] 00:20 -!- Scorchin [~Scorchin@host86-173-187-147.range86-173.btcentralplus.com] has joined #go-nuts 00:22 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Ping timeout: 241 seconds] 00:23 -!- jeff2 [~jeff@pool-108-13-140-226.lsanca.fios.verizon.net] has joined #go-nuts 00:28 -!- jeff2 [~jeff@pool-108-13-140-226.lsanca.fios.verizon.net] has quit [Ping timeout: 260 seconds] 00:32 -!- jeff2 [~jeff@pool-108-13-140-226.lsanca.fios.verizon.net] has joined #go-nuts 00:37 -!- Project_2501 [~Marvin@82.84.67.225] has quit [Quit: E se abbasso questa leva che succ...] 00:39 -!- tensai_cirno [~cirno@77.232.15.216] has quit [Quit: Leaving] 00:41 -!- Scorchin [~Scorchin@host86-173-187-147.range86-173.btcentralplus.com] has quit [Quit: Scorchin] 00:43 -!- tensai_cirno [~cirno@77.232.15.216] has joined #go-nuts 00:58 -!- araujo [~araujo@190.38.51.34] has joined #go-nuts 00:58 -!- araujo [~araujo@190.38.51.34] has quit [Changing host] 00:58 -!- araujo [~araujo@gentoo/developer/araujo] has joined #go-nuts 01:15 -!- ExtraSpice [~XtraSpice@88.118.33.48] has quit [Ping timeout: 276 seconds] 01:19 < Namegduf> Hmm, wow. I should test this in gccgo. 01:19 < Namegduf> Profiler says 40% of CPU time is being spent inside getters, and since they're between packages I can't get rid of them. 01:20 < Namegduf> Maybe I can move the loops in question between package or something, but inlining should make all that go away. 01:22 < uriel> wtf are 'getters'? 01:23 < uriel> and why can't you get rid of them because they are between packages? 01:23 * uriel smells the steench of java 01:26 < Namegduf> Functions that return a member of a struct. I can't get rid of them because said members need to be read only; changes to them will break things horribly. 01:26 < exch> foo.GetSomeVal() <- getter.. presumably a getter to revent write acces to set 'someval' 01:27 -!- jeff2 [~jeff@pool-108-13-140-226.lsanca.fios.verizon.net] has quit [Read error: Connection reset by peer] 01:28 < Namegduf> Or in other cases, changes to them require synchronisation because concurrent writes would be bad, and hooks being invoked; this is even worse because "You must modify it the right way" is a nastier thing to use convention for than "You must not modify it" 01:31 -!- napsy [~luka@88.200.96.18] has quit [Quit: leaving] 01:31 -!- xuwen [~xuwen@pool-151-200-28-66.res.east.verizon.net] has quit [Remote host closed the connection] 01:32 -!- xuwen [~xuwen@pool-151-200-28-66.res.east.verizon.net] has joined #go-nuts 01:32 < nsf> emacs support for the gocode was added recently, if anyone is interested 01:33 -!- Tv [~tv@cpe-76-168-227-45.socal.res.rr.com] has quit [Ping timeout: 240 seconds] 01:34 < Eko> Namegduf: that's one reason I went with a "Here's what happened, change your data accordingly" sort of model instead of a "Hey, who's on your channel?" "Hey, what's your topic?" "Oh, by the way, here's the new topic" 01:34 < Namegduf> Eko: The problem is that that prevents any form of modularity 01:35 < Eko> yep. 01:35 < Eko> but since go doesn't have loadable module support and it doesn't seem to be coming, I liked the way that worked better. 01:36 < Eko> also, from a brand recognition standpoint, I've never really liked that you can sign onto 10 different HybridIRCDs and they'll all have different features 01:36 < Eko> I'd much prefer to keep the IRCd simple and hope that people get whatever else they want from the services of their choice. 01:36 -!- rhencke [~rhencke@ppp-70-247-243-221.dsl.ltrkar.swbell.net] has joined #go-nuts 01:36 -!- keithcascio [~keithcasc@nat/google/x-vnfvhhrkdixwesos] has quit [Quit: Leaving] 01:36 < rhencke> anyone know of any exp/draw examples? 01:37 < Namegduf> Eko: I can get a similar effect to that by simply providing more facilities in core; "iterate my clients on this channel" is the interesting one in this case. 01:38 < Eko> rhencke: other than the ones in the source tree? http://golang.org/src/pkg/exp/draw/draw_test.go?h=draw 01:38 < rhencke> eko: oh... duh, sorry. thanks. 01:38 < Namegduf> But your approach will probably be faster still at the end of the day. 01:38 < Eko> rhencke: they're not always helpful, just wanted to make sure you'd seen it. 01:39 < rhencke> eko: i had glazed over it. was experimenting with making a different drawing backend, so this will work perfectly. thanks. :) 01:39 < Eko> Namegduf: on a fast computer, that'll probably be moot. I'd prefer your solution, but I suck at knowing the final design that I'll want, and so I went with a design that I knew I'd be able to do and that I thought would hopefully be extensible if I needed to change it. 01:40 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Quit: Leaving] 01:40 < Eko> I do plan on making "accessor" Events (and have a few already), so theoretically having loadable modules isn't out of the question should that become an option. 01:41 < anticw> rhencke: wrt exp/draw i've used it here in a couple of hacks, if you have specific questions ask 01:41 * Eko hint hints at antone who might have the ear of anyone who has that on their TODO list. 01:41 < Namegduf> I want to see if I can get mine to be able to restart without dropping connections, but it seems like it'd be hard. 01:41 < rhencke> anticw: thanks :) 01:41 < Eko> Namegduf: woah, if you can do that, I will be thoroughly impressed 01:42 < Eko> especially in a language without ldso. 01:42 < Eko> Namegduf: also, I got SSL working, and it took about 5 lines of code if you're interested. 01:42 < Namegduf> The modular design of mine is such that it'd be usable for Services of various sorts if it had network linking, so my first focus is on that. 01:43 < Namegduf> You could just disable the client subsystem and it'd lose the ability to have local clients. 01:43 < Eko> neat. 01:43 < Namegduf> And yeah, I'd like to see that. 01:44 < Eko> I wrote services for the IRCd I worked on a long time ago (back when TS6 was in its formative stages), and they had a secret backdoor option to do the opposite: allow local clients that would pretend to be services >=) 01:44 -!- photron_ [~photron@port-92-201-42-169.dynamic.qsc.de] has quit [Ping timeout: 276 seconds] 01:44 < Namegduf> Haha. 01:45 < Eko> I PM'd you a link to where it is in my server 01:45 < Namegduf> Thanks. 01:45 < Eko> the only difference is the creation of a tls.Config and using a tls.Listen with that as an extra argument instead of a net.Listen 01:46 < Eko> the Handshake is optional, but I put it there for debugging. It'll do it by default the first time you read or write to it. 01:46 < Namegduf> That's good. 01:46 < Eko> yeah, it's slick; it gives you something that's compatible with the net.Conn interface, which is what I was using anyway. 01:46 < Eko> <3 interfaces 01:48 < Namegduf> Yeh, that is nice. 01:48 < Namegduf> *Yeah 01:49 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has joined #go-nuts 01:49 < Namegduf> And will be helpful. 01:49 < Eko> the nextproto and ciphersuites are also not necessary, lol. I forgot I left those in there. 02:03 -!- araujo [~araujo@gentoo/developer/araujo] has joined #go-nuts 02:20 -!- shvntr [~shvntr@116.26.132.113] has joined #go-nuts 02:23 -!- ios_ [~ios@180.191.39.7] has quit [Read error: Connection reset by peer] 02:24 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has quit [Ping timeout: 260 seconds] 02:32 -!- niemeyer_ [~niemeyer@200-203-59-56.pltce701.dsl.brasiltelecom.net.br] has joined #go-nuts 02:41 -!- Tv1 [~tv@cpe-76-168-227-45.socal.res.rr.com] has joined #go-nuts 02:48 -!- niemeyer_ [~niemeyer@200-203-59-56.pltce701.dsl.brasiltelecom.net.br] has quit [Ping timeout: 240 seconds] 02:53 -!- boscop_ [~boscop@f050128034.adsl.alicedsl.de] has joined #go-nuts 02:56 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has joined #go-nuts 02:56 -!- boscop [~boscop@g226235020.adsl.alicedsl.de] has quit [Ping timeout: 240 seconds] 02:57 < Namegduf> I'm right in thinking that reading at the same time as you're writing to a map is bad? 02:58 < nsf> yes 02:58 < Namegduf> Okay, "neat". 02:59 < nsf> maps are not thread-safe 02:59 < skelterjohn> i feel like primitive types should be threadsafe 02:59 < nsf> it's in FAQ afair 02:59 < Namegduf> Making them so is kind of hard 02:59 < Namegduf> I knew concurrent writes were unsafe 02:59 < Namegduf> Not sure about reads + one write 02:59 < nsf> http://golang.org/doc/go_faq.html#atomic_maps 02:59 < skelterjohn> no doubt it's not an easy thing, and probably the best decision for the moment 03:00 < skelterjohn> but it's a built in type! 03:00 < Namegduf> It'd be slow. 03:00 < skelterjohn> should be safe any which way you try it 03:00 < Namegduf> Go's not really about "make it slow so it works the way you'd think" 03:00 < Namegduf> That's more a Python thing 03:00 < skelterjohn> :) 03:00 < skelterjohn> i don't know that it has to be that slow 03:00 < skelterjohn> manipulating a map starts out non-trivial 03:01 < Namegduf> I don't know how slow it'd need to be, key thing is that it is and I need to roll my own data structure again. 03:01 < skelterjohn> type SafeMap struct { map[key]val; block chan bool } ? 03:02 < Namegduf> Way slower than what I'm currently using, which is a linked list, and the reason I'm looking to replace it is that it's proving a significant limiting factor, performance wise. 03:04 < Namegduf> Reads are common and the common case is fairly small, so wrapping some kind of synchronisation around reads is going to be worse than doing nothing. 03:05 < skelterjohn> i think it should be possible to roll something that is threadsafe but only has to block on writes - let's reads go through 03:06 < nsf> http://nsf.github.com/go/sync.html?t:RWMutex! 03:07 < skelterjohn> that' 03:07 < skelterjohn> that's not the same as what i was suggesting, but also useful 03:22 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Quit: Leaving] 03:22 -!- SoniaKeys [Alliebloom@c-24-91-112-191.hsd1.ma.comcast.net] has quit [] 03:41 -!- ios_ [~ios@180.191.137.196] has joined #go-nuts 04:09 < adg> skelterjohn: how is it possible to do any other way? you need to mark the structure as being read (multiple read locks) and avoid lock starvation for writes (a la RWMutex) 04:24 < uriel> adg: I might end up going to FOSDEM after all, and was wondering, are there any plans to arrange a Go 'devroom'? 04:24 < uriel> ah, seems that it might be too late for that :/ 04:27 < Namegduf> Writes can be done atomically, such that any reader will observe it either before or after the full write, if they're limited to a single pointer, I think? 04:27 < Namegduf> I hope so, I rely on it. 04:30 -!- rejb [~rejb@unaffiliated/rejb] has quit [Ping timeout: 276 seconds] 04:32 -!- ios_ [~ios@180.191.137.196] has quit [Quit: Leaving] 05:01 -!- chickamade [~chickamad@116.118.26.104] has joined #go-nuts 05:03 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts 05:04 -!- chickamade [~chickamad@116.118.26.104] has quit [Client Quit] 05:12 -!- fighterlyt [~liuyuntan@111.148.247.248] has joined #go-nuts 05:13 -!- fighterlyt [~liuyuntan@111.148.247.248] has quit [Client Quit] 05:30 -!- ymasory [~ymasory@adsl-2-40-178.mia.bellsouth.net] has joined #go-nuts 05:41 < rhencke> i wonder why mouse events are the only timestamped event in exp/draw 05:42 < rhencke> my best guess is to simplify double-click detection 05:43 -!- fabled [~fabled@83.145.235.194] has quit [Quit: Ex-Chat] 05:45 -!- fabled [~fabled@mail.fi.jw.org] has joined #go-nuts 05:46 -!- iant [~iant@adsl-71-133-8-30.dsl.pltn13.pacbell.net] has quit [Quit: Leaving.] 05:58 -!- ymasory [~ymasory@adsl-2-40-178.mia.bellsouth.net] has quit [Ping timeout: 272 seconds] 05:59 < Eko> Namegduf: are you using standard ircd.conf or something else? (e.g. O:lines and I:lines and C:lines or a custom config) 06:00 < Eko> I'm trying to figure out if I want to use JSON or if that's too gross to hand-edit. 06:01 < Namegduf> A custom config- when I get around to adding it. 06:01 < Namegduf> Most recent IRCDs have their own format, or share the format of one they were forked from. 06:01 < Eko> I don't like the quotes around the keys in json, i tlooks ugly 06:01 < Namegduf> JSON is no good. 06:01 < Namegduf> It lacks comments. 06:01 < Namegduf> Kind of important. 06:01 < Eko> oh, I thought it had them. 06:01 < Eko> laaame. 06:01 < Namegduf> It's a data serialisation format, not a config format. 06:02 < Eko> I guess I'll use goconf. 06:02 < Eko> it's a community standard, more or less, and I don't think I really need anything to be defined recursively. 06:13 -!- Tv [~tv@cpe-76-168-227-45.socal.res.rr.com] has quit [Ping timeout: 255 seconds] 06:21 -!- rhencke [~rhencke@ppp-70-247-243-221.dsl.ltrkar.swbell.net] has quit [Quit: rhencke] 06:21 -!- boscop_ [~boscop@f050128034.adsl.alicedsl.de] has quit [Ping timeout: 240 seconds] 06:32 -!- devrim [~Adium@cpe-72-225-239-227.nyc.res.rr.com] has joined #go-nuts 06:53 -!- reiddraper [~reid@c-68-33-177-129.hsd1.md.comcast.net] has joined #go-nuts 06:59 < reiddraper> I'm finding myself wanting access to unexported fields a lot, such as file descriptors for objects in the "net" package. is there some pattern to use so I don't find myself duplicating the work of "net" just to get at that field? 07:06 -!- ios_ [~ios@180.191.136.13] has joined #go-nuts 07:12 < devrim> hi guys, is anyone interested in a serious Go gig ? 07:13 < devrim> we are rewriting our whole backend for http://kodingen.com 07:14 < Namegduf> reiddraper: thing.File().Fd() 07:15 < reiddraper> Namegduf: i'm using http://golang.org/pkg/net/#Listener.Listen, but perhaps I should be using http://golang.org/pkg/net/#TCPListener.ListenTCP instead? 07:15 < reiddraper> the Listener interface doesn't give access to File() 07:15 < Namegduf> reiddraper: I would. 07:16 < Namegduf> What's a more interesting thing I'm pondering is rebuilding net structs *from* an FD. 07:16 < Namegduf> So I can transmit them between processes. 07:16 < Namegduf> I think I'm going to end up using assembly and breaking every time the net package changes. :( 07:17 < reiddraper> interesting 07:17 < reiddraper> so you want to create a new Listener, for example, from a fd? 07:18 < Namegduf> Listeners I could drop and reopen, hypothetically, but actual connections I couldn't. 07:19 < Namegduf> The other option, probably easier, is to unsafe it into a block of bytes 07:19 < Namegduf> Then have architecture-specific code to manipulate them 07:23 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts 07:35 < reiddraper> am I understanding correctly that if i'm listening on a tcp port, and get the tcplistener fd (or rather a copy of it), and pass that into forkexec, the exec'd process can bind to the same port as the parent process? 07:35 -!- snearch [~snearch@f053006124.adsl.alicedsl.de] has joined #go-nuts 07:39 < taruti> reiddraper: what are you trying to accomplish? 07:40 < reiddraper> taruti: a webserver that has binary-upgrade capability with no downtime, like nginx or unicorn 07:43 < taruti> reiddraper: your best bet is probably have a C wrapper/heartbeat process that launches the go process 07:44 < reiddraper> any particular reason the forkexec approach won't work? 07:44 < taruti> one needs heartbeat in any case. 07:45 < taruti> and forkexec becomes a mess 07:46 < reiddraper> maybe i don't understand what you mean by heartbeat in this context? 07:46 < reiddraper> both nginx and unicorn use the fork() exec() pattern 07:46 < Namegduf> ForkExec is the name of a Go function 07:46 < Namegduf> So I'd assume it isn't inherently that messy. 07:47 < reiddraper> Namegduf: and i'm able to use go's ForkExec just fine, except for getting my new process to be able to bind on the same port 07:47 < reiddraper> or at least i think that's my problem... 07:47 < taruti> so how are you handling state transfer of possible user code? 07:48 < Namegduf> "user code"? 07:48 < Namegduf> State transfer can be accomplished by serialising it. 07:48 < taruti> isn't the basic pattern, 1) fork, 2) exec, 3) transfer state or core+plugins serialized, 4) parent dies, 5) child starts using state 07:49 < taruti> and a heartbeat process = checks periodically whether the server is alive and restarts+logs if it needs poking 07:49 < reiddraper> a heartbeat process is outside the scope of what i'm working on, and there are other tools for that 07:50 < reiddraper> and, let's assume for the sake of simplicity, there is no "user code state" 07:50 < reiddraper> say, just serving "hello, world" 07:50 -!- rlab [~Miranda@91.200.158.34] has quit [Read error: Connection reset by peer] 07:52 < taruti> reiddraper: so use TCPListener.File() ? 07:52 < taruti> that has an Fd() method 07:53 < reiddraper> taruti: that's what i'm using now, and i'm passing that File.Fd() into to fd array of http://golang.org/pkg/syscall/#ForkExec 07:53 < reiddraper> quite likely i'm still missing something, but i was hoping that that would allow access to that fd to the new exec()'d process 07:56 < taruti> so how does it look according to strace 07:56 < taruti> my guess would be that the dupped fd is close-on-exec and needs flag changing 07:57 < Namegduf> Oh, yeah. 07:57 < Namegduf> I forgot that that happened. 07:58 < reiddraper> ok, I recall reading something about that in http://golang.org/src/pkg/syscall/exec_unix.go 07:58 < reiddraper> didn't realize i had to do it myself 08:00 < reiddraper> http://golang.org/src/pkg/syscall/exec_unix.go#L196, if i understand correctly, says that the fd's you pass into ForkExec are not close-on-exec 08:00 < taruti> ok 08:01 < reiddraper> taruti: will try strace 08:02 < reiddraper> err, forgot i was on mac now, no strace 08:08 < reiddraper> bedtime. Namegduf, taruti, thanks for your help 08:08 < Namegduf> Sleep well. 08:09 -!- reiddraper [~reid@c-68-33-177-129.hsd1.md.comcast.net] has quit [Quit: reiddraper] 08:10 -!- devrim [~Adium@cpe-72-225-239-227.nyc.res.rr.com] has quit [Quit: Leaving.] 08:13 -!- zozoR [~zozoR@56346ed3.rev.stofanet.dk] has joined #go-nuts 08:14 -!- piranha [~piranha@5ED42E59.cm-7-5a.dynamic.ziggo.nl] has joined #go-nuts 08:25 -!- araujo [~araujo@gentoo/developer/araujo] has joined #go-nuts 08:31 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Quit: |Craig|] 08:31 -!- xuwen [~xuwen@pool-151-200-28-66.res.east.verizon.net] has quit [Remote host closed the connection] 08:37 -!- ShadowIce [~pyoro@HSI-KBW-109-193-120-162.hsi7.kabel-badenwuerttemberg.de] has joined #go-nuts 08:37 -!- ShadowIce [~pyoro@HSI-KBW-109-193-120-162.hsi7.kabel-badenwuerttemberg.de] has quit [Changing host] 08:37 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts 08:41 -!- ronnyy [~quassel@drsd-4d05f0d9.pool.mediaWays.net] has joined #go-nuts 08:44 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-149-172.clienti.tiscali.it] has joined #go-nuts 08:51 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.3] 08:54 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts 08:58 -!- ExtraSpice [~XtraSpice@88.118.33.48] has joined #go-nuts 09:04 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.3] 09:09 -!- Zoopee [alsbergt@zoopee.org] has quit [Ping timeout: 255 seconds] 09:09 -!- ExtraSpice [~XtraSpice@88.118.33.48] has quit [Max SendQ exceeded] 09:09 -!- ExtraSpice [~XtraSpice@88.118.33.48] has joined #go-nuts 09:11 -!- suiside_ [tajnyman@bakery.awkwardcake.net] has quit [Quit: leaving] 09:12 -!- suiside [tajnyman@unaffiliated/suiside] has joined #go-nuts 09:26 -!- Zoopee [alsbergt@192.117.108.58] has joined #go-nuts 09:29 -!- napsy [~luka@88.200.96.18] has joined #go-nuts 09:32 -!- adu [~ajr@pool-173-66-253-179.washdc.fios.verizon.net] has joined #go-nuts 09:49 -!- snearch [~snearch@f053006124.adsl.alicedsl.de] has quit [Quit: Verlassend] 09:55 -!- TheSaint [~thesaint@166.205.9.28] has joined #go-nuts 10:00 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts 10:00 -!- wtfness [~dsc@78.100.220.119] has joined #go-nuts 10:02 -!- foocraft [~dsc@78.101.66.85] has quit [Ping timeout: 240 seconds] 10:17 -!- ronnyy [~quassel@drsd-4d05f0d9.pool.mediaWays.net] has quit [Remote host closed the connection] 10:20 -!- TheSaint [~thesaint@166.205.9.28] has quit [Quit: Colloquy for iPhone - http://colloquy.mobi] 10:23 -!- tdc [~santegoed@host217-44-173-250.range217-44.btcentralplus.com] has joined #go-nuts 10:24 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-174-52.clienti.tiscali.it] has joined #go-nuts 10:25 -!- TheSaint [~thesaint@166.205.9.28] has joined #go-nuts 10:28 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-149-172.clienti.tiscali.it] has quit [Ping timeout: 265 seconds] 10:34 -!- TheSaint [~thesaint@166.205.9.28] has quit [Quit: Colloquy for iPhone - http://colloquy.mobi] 10:46 -!- niemeyer_ [~niemeyer@200-203-59-56.pltce701.dsl.brasiltelecom.net.br] has joined #go-nuts 10:54 -!- snearch [~snearch@f053006124.adsl.alicedsl.de] has joined #go-nuts 10:59 -!- photron_ [~photron@port-92-201-28-69.dynamic.qsc.de] has joined #go-nuts 11:00 -!- tvw [~tv@e176004108.adsl.alicedsl.de] has joined #go-nuts 11:11 -!- pjm0616 [~user@110.9.28.120] has quit [Ping timeout: 250 seconds] 11:23 -!- DerHorst [~Horst@e176101177.adsl.alicedsl.de] has joined #go-nuts 11:36 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit [Ping timeout: 246 seconds] 11:36 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined #go-nuts 11:52 -!- rinzai [~rinzai@89-181-177-62.net.novis.pt] has joined #go-nuts 12:04 -!- xash [~xash@d142231.adsl.hansenet.de] has joined #go-nuts 12:05 -!- Scorchin [~Scorchin@host86-166-61-12.range86-166.btcentralplus.com] has joined #go-nuts 12:06 -!- ildorn [~ildorn@node-ocv.ipv4.congress.ccc.de] has joined #go-nuts 12:07 -!- zozoR [~zozoR@56346ed3.rev.stofanet.dk] has quit [Quit: Morten. Desu~] 12:09 -!- tvw [~tv@e176004108.adsl.alicedsl.de] has quit [Remote host closed the connection] 12:10 -!- ildorn [~ildorn@node-ocv.ipv4.congress.ccc.de] has quit [Ping timeout: 272 seconds] 12:10 -!- zozoR [~zozoR@56346ed3.rev.stofanet.dk] has joined #go-nuts 12:13 -!- ildorn [~ildorn@node-ocv.ipv4.congress.ccc.de] has joined #go-nuts 12:22 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.3] 12:29 -!- ildorn [~ildorn@node-ocv.ipv4.congress.ccc.de] has quit [Read error: Connection reset by peer] 12:29 -!- ildorn1 [~ildorn@node-ocv.ipv4.congress.ccc.de] has joined #go-nuts 12:40 -!- boscop_ [~boscop@f050128034.adsl.alicedsl.de] has joined #go-nuts 12:41 -!- ildorn1 [~ildorn@node-ocv.ipv4.congress.ccc.de] has quit [Ping timeout: 250 seconds] 12:42 < KBme> Namegduf: Eko: do you guys know if PRIVMSG target1,target2.. :message is an accepted way of doing messages? 12:42 < KBme> doesn't seem to work for me :-/ 12:43 -!- ildorn [~ildorn@2.208.4.125] has joined #go-nuts 12:50 -!- ildorn [~ildorn@2.208.4.125] has quit [Quit: Leaving.] 12:51 -!- rinzai [~rinzai@89-181-177-62.net.novis.pt] has quit [Quit: Leaving] 13:10 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts 13:17 -!- adu [~ajr@pool-173-66-253-179.washdc.fios.verizon.net] has quit [Quit: adu] 13:23 -!- wtfness [~dsc@78.100.220.119] has quit [Quit: Leaving] 13:29 < skelterjohn> i'd guess, from your evidence, that it is not an accepted way of doing messages 13:54 -!- DarthShrine [~angus@pdpc/supporter/student/DarthShrine] has quit [Quit: DarthShrine] 13:57 -!- ucasano [~ucasano@151.12.47.139] has joined #go-nuts 13:59 -!- rlab [~Miranda@91.200.158.34] has quit [Ping timeout: 246 seconds] 14:00 -!- devrim [~Adium@cpe-72-225-239-227.nyc.res.rr.com] has joined #go-nuts 14:01 -!- rejb [~rejb@unaffiliated/rejb] has joined #go-nuts 14:06 < KBme> it's stated in the rfc, though 14:06 < KBme> irc implementations weirdness 14:12 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Ping timeout: 246 seconds] 14:12 -!- adu [~ajr@pool-173-66-253-179.washdc.fios.verizon.net] has joined #go-nuts 14:14 -!- plainhao [~plainhao@208.75.85.237] has joined #go-nuts 14:18 -!- araujo [~araujo@gentoo/developer/araujo] has joined #go-nuts 14:19 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts 14:20 -!- skejoe [~skejoe@188.114.142.162] has joined #go-nuts 14:23 -!- tdc [~santegoed@host217-44-173-250.range217-44.btcentralplus.com] has quit [Ping timeout: 240 seconds] 14:25 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts 14:25 -!- adu [~ajr@pool-173-66-253-179.washdc.fios.verizon.net] has quit [Quit: adu] 14:27 -!- emjayess [~emjayess@pix1.i29.net] has joined #go-nuts 14:27 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.3] 14:29 -!- pjm0616 [~user@114.200.203.243] has joined #go-nuts 14:41 -!- foocraft [~dsc@78.100.220.119] has joined #go-nuts 14:43 -!- Fish [~Fish@9fans.fr] has joined #go-nuts 14:56 -!- napsy [~luka@88.200.96.18] has quit [Ping timeout: 250 seconds] 15:06 -!- Project_2501 [~Marvin@82.84.97.167] has joined #go-nuts 15:09 -!- femtoo [~femto@95-89-248-96-dynip.superkabel.de] has joined #go-nuts 15:09 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-174-52.clienti.tiscali.it] has quit [Ping timeout: 246 seconds] 15:19 -!- shvntr [~shvntr@116.26.132.113] has quit [Ping timeout: 276 seconds] 15:21 -!- plexdev [~plexdev@arthur.espians.com] has quit [Remote host closed the connection] 15:30 -!- plexdev [~plexdev@arthur.espians.com] has joined #go-nuts 15:31 -!- rlab [~Miranda@91.200.158.34] has quit [Ping timeout: 240 seconds] 15:31 -!- tdc [~santegoed@host86-154-92-30.range86-154.btcentralplus.com] has joined #go-nuts 15:31 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts 15:32 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts 15:40 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit [Ping timeout: 264 seconds] 15:46 -!- javuchi [~noname@39.Red-83-45-69.dynamicIP.rima-tde.net] has joined #go-nuts 15:54 -!- napsy [~luka@88.200.96.18] has joined #go-nuts 15:56 -!- skejoe [~skejoe@188.114.142.162] has quit [Quit: Lost terminal] 16:12 -!- tensai_cirno [~cirno@77.232.15.216] has quit [Quit: Leaving] 16:18 -!- Tv [~tv@cpe-76-168-227-45.socal.res.rr.com] has joined #go-nuts 16:18 -!- tensai_cirno [~cirno@77.232.15.216] has joined #go-nuts 16:26 -!- skejoe [~skejoe@188.114.142.162] has joined #go-nuts 16:28 -!- Fish [~Fish@9fans.fr] has quit [Remote host closed the connection] 16:31 -!- Fish [~Fish@9fans.fr] has joined #go-nuts 16:34 -!- piranha [~piranha@5ED42E59.cm-7-5a.dynamic.ziggo.nl] has quit [Quit: Computer has gone to sleep.] 16:36 -!- ucasano [~ucasano@151.12.47.139] has quit [Quit: ucasano] 16:40 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has quit [Quit: WeeChat 0.3.2] 16:43 -!- snearch [~snearch@f053006124.adsl.alicedsl.de] has quit [Read error: Connection reset by peer] 16:47 -!- ymasory [~ymasory@adsl-2-40-178.mia.bellsouth.net] has joined #go-nuts 16:48 -!- WonTu [~WonTu@p57B54D7D.dip.t-dialin.net] has joined #go-nuts 16:48 -!- WonTu [~WonTu@p57B54D7D.dip.t-dialin.net] has left #go-nuts [] 16:49 -!- DerHorst [~Horst@e176101177.adsl.alicedsl.de] has quit [Remote host closed the connection] 16:53 -!- femtoo [~femto@95-89-248-96-dynip.superkabel.de] has quit [Ping timeout: 260 seconds] 16:54 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.3] 16:55 -!- tdc [~santegoed@host86-154-92-30.range86-154.btcentralplus.com] has quit [Read error: Connection reset by peer] 17:13 -!- LeNsTR [~lenstr@unaffiliated/lenstr] has quit [Quit: LeNsTR] 17:13 -!- LeNsTR [~lenstr@unaffiliated/lenstr] has joined #go-nuts 17:14 -!- deso [~deso@x0561a.wh30.tu-dresden.de] has joined #go-nuts 17:14 -!- rup [~rupert@78.159.100.188] has joined #go-nuts 17:17 -!- piranha [~piranha@5ED4B890.cm-7-5c.dynamic.ziggo.nl] has joined #go-nuts 17:18 -!- devrim [~Adium@cpe-72-225-239-227.nyc.res.rr.com] has quit [Quit: Leaving.] 17:18 -!- devrim [~Adium@cpe-72-225-239-227.nyc.res.rr.com] has joined #go-nuts 17:21 -!- Venom_X [~pjacobs@99-8-218-190.lightspeed.hstntx.sbcglobal.net] has joined #go-nuts 17:21 -!- femtoo [~femto@95-89-248-96-dynip.superkabel.de] has joined #go-nuts 17:27 -!- keithgcascio [~keithcasc@nat/google/x-hndyaujouapfxsuc] has joined #go-nuts 17:28 < taruti> gocode seems very nice :) 17:29 -!- piranha [~piranha@5ED4B890.cm-7-5c.dynamic.ziggo.nl] has quit [Quit: Computer has gone to sleep.] 17:30 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined #go-nuts 17:31 < neur> :) 17:35 -!- xash [~xash@d142231.adsl.hansenet.de] has quit [Ping timeout: 246 seconds] 17:52 -!- ios_ [~ios@180.191.136.13] has quit [Quit: Leaving] 17:53 -!- Arm [~arm@unaffiliated/grpala] has joined #go-nuts 18:11 -!- Venom_X [~pjacobs@99-8-218-190.lightspeed.hstntx.sbcglobal.net] has quit [Quit: Venom_X] 18:48 -!- Fish [~Fish@9fans.fr] has quit [Quit: So Long, and Thanks for All the Fish] 18:54 -!- deso [~deso@x0561a.wh30.tu-dresden.de] has quit [Remote host closed the connection] 18:55 -!- ismtrn [~andreas@85.218.134.71] has joined #go-nuts 18:57 < ismtrn> Hi, so i'm just getting started with go, and im wondering about how scopes work? Specificly regarding to structs, are fields starting with lower case "private"? 19:02 < ismtrn> Another thing i'm wondering about is this quote from effective go: "The rule about pointers vs. values for receivers is that value methods can be invoked on pointers and values, but pointer methods can only be invoked on pointers. This is because pointer methods can modify the receiver; invoking them on a copy of the value would cause those modifications to be discarded." Does that mean i can't call methods on non-pointer objects that change their state??? 19:03 < exch> field sarting with a lowercase letter are always private 19:03 < exch> s/sart/start/ 19:03 < ismtrn> ok, thanks 19:03 -!- femtoo [~femto@95-89-248-96-dynip.superkabel.de] has quit [Read error: Connection reset by peer] 19:04 < exch> If you have a method on a struct it's defined on a value of that struct instead of a pointer receiver, you can edit the fields all you want, bu the changes will not persist 19:04 < exch> Because Go will pass a copy of your struct as the receiver value 19:05 -!- emjayess [~emjayess@pix1.i29.net] has quit [Quit: Leaving] 19:06 < ismtrn> But can i write a method with a pointer receiver, and call that method from a non-pointer instance? 19:06 -!- ExtraSpice [~XtraSpice@88.118.33.48] has quit [Ping timeout: 276 seconds] 19:07 -!- Arm [~arm@unaffiliated/grpala] has left #go-nuts ["WeeChat 0.3.2"] 19:07 < exch> yes 19:07 -!- itrekkie [~itrekkie@ip72-211-155-116.tc.ph.cox.net] has joined #go-nuts 19:07 < exch> the runtime will automatically make sure a pointer to your value is used 19:08 -!- ildorn [~ildorn@node-4tg.ipv4.congress.ccc.de] has joined #go-nuts 19:09 < ismtrn> Nice, but the way i read the paragraph from effective go, is that i can't "but pointer methods can only be invoked on pointers". I guess it's technically correct since the runtime creates a pointer though.... 19:09 < ismtrn> thanks for the help anyways :) 19:12 < exch> np 19:16 -!- matti_____ [~mumboww@c-98-207-108-218.hsd1.ca.comcast.net] has quit [Remote host closed the connection] 19:19 -!- salviati [~salviati@212.253.24.131] has joined #go-nuts 19:19 < salviati> hi 19:19 < salviati> anyone recently tried swig-svn? 19:23 -!- deso [~deso@x0561a.wh30.tu-dresden.de] has joined #go-nuts 19:28 -!- Project-2501 [~Marvin@82.84.70.190] has joined #go-nuts 19:29 -!- femtoo [~femto@95-89-248-96-dynip.superkabel.de] has joined #go-nuts 19:31 -!- Project_2501 [~Marvin@82.84.97.167] has quit [Ping timeout: 260 seconds] 19:35 < Eko> KBme: yes, that format is supposed to work in a standard, compliant IRCd 19:35 < Eko> and I thought it worked in most of them 19:36 < Eko> (for instance, it works here) 19:36 < salviati> which version? 19:37 < Eko> PRIVMSG target1,target2 :message 19:37 < salviati> and have you actually tried using the pckage? 19:37 < salviati> ouch 19:37 < Eko> ? 19:37 < salviati> sorry, misunderstood 19:37 * Eko was responding to a question addressed to him awhile ago 19:38 < salviati> been talking about swig 19:38 < tensai_cirno> fuzzybyte, http://img695.imageshack.us/img695/7241/201012282226221280x800s.png 19:38 < tensai_cirno> me > auto-complete-mode 19:38 < tensai_cirno> :D 19:39 < neur> is that dwm? 19:40 < tensai_cirno> (insert any tiling wm you like) xmonad 19:40 < tensai_cirno> with xmobar 19:40 < tensai_cirno> and emacs, of course 19:41 < neur> oh emacs, nice operating system. 19:41 < tensai_cirno> yep :) 19:41 -!- wrtp [~rog@drynoch.demon.co.uk] has joined #go-nuts 19:41 < neur> and such a perfect math class 19:42 < neur> oh that's the hostname 19:43 -!- tensorpudding [~user@99.56.169.128] has joined #go-nuts 19:43 -!- ExtraSpice [~XtraSpice@88.118.33.48] has joined #go-nuts 19:45 -!- Fish [~Fish@9fans.fr] has joined #go-nuts 19:46 -!- ExtraSpice [~XtraSpice@88.118.33.48] has quit [Max SendQ exceeded] 19:46 -!- ExtraSpice [~XtraSpice@88.118.33.48] has joined #go-nuts 19:50 < aiju> it's always difficult to remember "Scan" 19:54 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit [Ping timeout: 240 seconds] 19:56 -!- ExtraSpice [~XtraSpice@88.118.33.48] has quit [Max SendQ exceeded] 19:57 -!- ExtraSpice [~XtraSpice@88.118.33.48] has joined #go-nuts 19:57 < fuzzybyte> tensai_cirno: cool 20:02 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined #go-nuts 20:03 -!- femtooo [~femto@95-89-248-96-dynip.superkabel.de] has joined #go-nuts 20:06 -!- femtoo [~femto@95-89-248-96-dynip.superkabel.de] has quit [Ping timeout: 240 seconds] 20:06 -!- ExtraSpice [~XtraSpice@88.118.33.48] has quit [Max SendQ exceeded] 20:07 -!- ExtraSpice [~XtraSpice@88.118.33.48] has joined #go-nuts 20:10 -!- neur [~neuro@unaffiliated/neurosys/x-283974] has quit [Ping timeout: 255 seconds] 20:13 -!- ExtraSpice [~XtraSpice@88.118.33.48] has quit [Max SendQ exceeded] 20:13 -!- ExtraSpice [~XtraSpice@88.118.33.48] has joined #go-nuts 20:18 -!- ildorn [~ildorn@node-4tg.ipv4.congress.ccc.de] has quit [Quit: Leaving.] 20:19 -!- ExtraSpice [~XtraSpice@88.118.33.48] has quit [Max SendQ exceeded] 20:20 -!- ExtraSpice [~XtraSpice@88.118.33.48] has joined #go-nuts 20:22 -!- tensai_cirno [~cirno@77.232.15.216] has quit [Ping timeout: 255 seconds] 20:24 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit [Remote host closed the connection] 20:24 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined #go-nuts 20:24 -!- reiddraper [~reid@c-68-33-177-129.hsd1.md.comcast.net] has joined #go-nuts 20:31 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit [Ping timeout: 264 seconds] 20:32 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined #go-nuts 20:34 -!- ExtraSpice [~XtraSpice@88.118.33.48] has quit [Quit: Leaving] 20:42 -!- plainhao [~plainhao@208.75.85.237] has quit [Quit: plainhao] 20:48 -!- emjayess [~emjayess@pix1.i29.net] has joined #go-nuts 20:49 -!- emjayess_ [~emjayess@pix1.i29.net] has joined #go-nuts 20:49 -!- emjayess [~emjayess@pix1.i29.net] has quit [Client Quit] 20:49 -!- emjayess_ [~emjayess@pix1.i29.net] has quit [Read error: Connection reset by peer] 20:49 -!- emjayess [~emjayess@pix1.i29.net] has joined #go-nuts 20:49 -!- salviati [~salviati@212.253.24.131] has quit [Read error: Connection reset by peer] 20:50 -!- tensai_cirno [~cirno@77.232.15.216] has joined #go-nuts 20:50 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit [Ping timeout: 265 seconds] 20:51 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined #go-nuts 20:52 -!- reiddraper [~reid@c-68-33-177-129.hsd1.md.comcast.net] has quit [Ping timeout: 240 seconds] 21:03 -!- bnjmn [~bnjmn@siegel.dreamhost.com] has joined #go-nuts 21:03 < bnjmn> is GC optional? 21:06 < taruti> depends on what you are after 21:06 < taruti> it can be disabled if one is so inclined 21:08 < fuzzybyte> how you manually alloc and free stuff like in C? 21:11 < Namegduf> You can't. 21:12 < bnjmn> is there a language like go but without gc? 21:12 < Namegduf> Not really. 21:12 < bnjmn> darn 21:13 < Namegduf> Languages differ by so many different things that you're not going to find anything with the same ideas and goals but with/without one specific thing. 21:14 -!- LeNsTR [~lenstr@unaffiliated/lenstr] has quit [Quit: LeNsTR] 21:15 < fuzzybyte> I recall D language at least giving you the option to do allocations manually too. 21:15 < fuzzybyte> why not go? 21:15 < Namegduf> I unno. 21:16 < Namegduf> D is a different language, far more complicated and far more featureful. 21:16 < Namegduf> It's not Go. 21:16 < cbeck> Because Go isn't trying to be everything to everyone like D does 21:16 < fuzzybyte> true. 21:16 < cbeck> And manual memory management breaks type safety 21:18 < taruti> being careful one can write Go code that does not use GC to alloc things 21:18 -!- LeNsTR [~lenstr@unaffiliated/lenstr] has joined #go-nuts 21:18 < uriel> bnjmn: what is the problem with the GC? 21:18 < taruti> and one can use cgo to bind malloc&free 21:18 < taruti> but that is mostly pointless 21:19 < uriel> bnjmn: if you want to avoid it, you can also 'statically' allocate all the memory you need in advance 21:19 < uriel> 21:18 < taruti> being careful one can write Go code that does not use GC to alloc things 21:19 < uriel> taruti: exactly 21:36 -!- femtooo [~femto@95-89-248-96-dynip.superkabel.de] has quit [Read error: Connection reset by peer] 21:36 -!- deso [~deso@x0561a.wh30.tu-dresden.de] has quit [Read error: Connection reset by peer] 21:36 -!- DarthShrine [~angus@60-242-109-62.tpgi.com.au] has joined #go-nuts 21:36 -!- DarthShrine [~angus@60-242-109-62.tpgi.com.au] has quit [Changing host] 21:36 -!- DarthShrine [~angus@pdpc/supporter/student/DarthShrine] has joined #go-nuts 21:37 < bnjmn> i like to manage resources myself that's all 21:37 -!- deso [~deso@x0561a.wh30.tu-dresden.de] has joined #go-nuts 21:38 < taruti> bnjmn: how about writing a better GC by yourself? 21:38 < tensai_cirno> anyone with emacs and gocode? 21:38 < tensai_cirno> need to test script 21:38 < tensai_cirno> https://github.com/tensai-cirno/gocode/blob/master/emacs/go-autocomplete.el 21:43 -!- deso [~deso@x0561a.wh30.tu-dresden.de] has quit [Read error: Connection reset by peer] 21:43 < taruti> tensai_cirno: I pulled few hours ago from the main gocode repo and it seemed to work 21:43 -!- deso [~deso@x0561a.wh30.tu-dresden.de] has joined #go-nuts 21:43 < tensai_cirno> taruti, sorting broken 21:44 < tensai_cirno> i'am maintaining this script 21:46 -!- Tv [~tv@cpe-76-168-227-45.socal.res.rr.com] has quit [Ping timeout: 240 seconds] 21:58 -!- _dx [~e@173.246.194.131] has joined #go-nuts 21:59 -!- piranha [~piranha@5ED4B890.cm-7-5c.dynamic.ziggo.nl] has joined #go-nuts 22:07 -!- javuchi [~noname@39.Red-83-45-69.dynamicIP.rima-tde.net] has left #go-nuts ["have_a_life(now);"] 22:08 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts 22:08 < bnjmn> i don't want a GC at all so why would i write one 22:09 < tensai_cirno> you need to write memory allocator anyway 22:10 -!- xash [~xash@d025211.adsl.hansenet.de] has joined #go-nuts 22:26 -!- itrekkie [~itrekkie@ip72-211-155-116.tc.ph.cox.net] has quit [Quit: itrekkie] 22:30 -!- ismtrn [~andreas@85.218.134.71] has quit [Quit: Leaving] 22:33 -!- zozoR [~zozoR@56346ed3.rev.stofanet.dk] has quit [Quit: Morten. Desu~] 22:34 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has quit [Quit: Verlassend] 22:40 -!- LeNsTR [~lenstr@unaffiliated/lenstr] has quit [Quit: LeNsTR] 22:41 -!- sauerbraten [~sauerbrat@p508CEBAD.dip.t-dialin.net] has joined #go-nuts 22:45 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit [Ping timeout: 276 seconds] 22:46 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined #go-nuts 22:47 < exch> bnjmn: in that case, you probably don't want Go :) 22:47 < bnjmn> but i like go for other reasons so i wonder what is the closest thing to go without gc 22:51 < xash> I thought, the mainargument, why not implement func a([]T) - where T is any type (don't know the formal word for this) - is, that it is fucked up for the compiler (and here again, don't know exactly why .. just picked it up here someday .. I think because it's difficult to handle it or whatevs) .. but now, when append() is added anyway, why not implent such functionality? 22:57 -!- Nicotux [~AndChat@62.201.142.80] has joined #go-nuts 22:58 -!- itrekkie [~itrekkie@ip72-211-155-116.tc.ph.cox.net] has joined #go-nuts 22:58 -!- itrekkie [~itrekkie@ip72-211-155-116.tc.ph.cox.net] has quit [Client Quit] 22:58 -!- fission6 [4073ff0c@gateway/web/freenode/ip.64.115.255.12] has joined #go-nuts 22:59 < Eko> xash: not sure I understand your question. You can absolutely write a func f(v []T) 22:59 < fission6> are there any solid web application frameworks available for GO 22:59 -!- Fish [~Fish@9fans.fr] has quit [Quit: So Long, and Thanks for All the Fish] 22:59 < Eko> fission6: web.go 22:59 < Eko> fission6: https://github.com/hoisie/web.go 23:00 < Eko> it's the #1 installed package on http://godashboard.appspot.com/package 23:00 < fission6> thanks ill review 23:00 < fission6> http://godashboard.appspot.com/benchmarks is giving a traceback if anyone is interested 23:01 < xash> Eko: Yeah, sorry, my english sucks :-) Uhrm, but you can't write a func, where T is also a variable, like in append() and not a static type 23:01 < xash> But when I think about it, it's also a problem with typesafety .. hrm 23:01 < Eko> er. 23:02 < Eko> you can do func f(args ...interface{}) that accepts any number of arguments of any type 23:02 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit [Ping timeout: 255 seconds] 23:02 < Eko> ala printf 23:02 -!- deso [~deso@x0561a.wh30.tu-dresden.de] has quit [Remote host closed the connection] 23:02 -!- niemeyer_ [~niemeyer@200-203-59-56.pltce701.dsl.brasiltelecom.net.br] has quit [Ping timeout: 240 seconds] 23:03 -!- Davidian1024 [~Davidian1@173.88.174.84] has joined #go-nuts 23:03 -!- piranha [~piranha@5ED4B890.cm-7-5c.dynamic.ziggo.nl] has quit [Quit: Computer has gone to sleep.] 23:04 < fission6> is there a mysql or mongodb driver for go 23:04 < adg> fission6: yes, both 23:04 < adg> fission6: http://dashboard.appspot.com/project 23:04 < fission6> k 23:04 < fission6> link doesnt work 23:06 < Eko> godashboard 23:07 < xash> ofc .. but f.e.: You implement a binarytree .. You must write the functions of the tree for every type you want to have stored .. because when you save data under interface{}, you can only return them as interface{}, and NOT as a given Type 23:07 < fission6> right 23:08 -!- emjayess [~emjayess@pix1.i29.net] has quit [Quit: Leaving] 23:10 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-157-166.clienti.tiscali.it] has joined #go-nuts 23:12 -!- Nicotux [~AndChat@62.201.142.80] has quit [Read error: Connection reset by peer] 23:12 -!- Nicotux [~AndChat@62.201.142.80] has joined #go-nuts 23:12 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Ping timeout: 240 seconds] 23:12 < Eko> xash: all you have to implement is Less() and then you can use the functions in sort 23:13 -!- Project-2501 [~Marvin@82.84.70.190] has quit [Ping timeout: 260 seconds] 23:13 < Namegduf> xash: You can automatically preprocess the source to generate variants if you like. 23:14 < Eko> that too. 23:14 < Namegduf> gofmt can do it in a pinch. In even more of a pinch (gofmt rewrite rules broke for me for no apparant reason in an upgrade) you can use sed. 23:14 < Eko> droundy has a preprocessor that can take templatized code and make type-specific stuff. 23:14 -!- fission6 [4073ff0c@gateway/web/freenode/ip.64.115.255.12] has quit [Quit: Page closed] 23:15 < Namegduf> Making your program dependent on an external preprocessor is probably more harm than good 23:15 < Eko> I think you put it in a package and then use a special import statement, and his preprocessor will do the rest 23:15 < Eko> Namegduf: like gofmt? ;-) 23:15 < Namegduf> Eko: I said external. 23:15 < Eko> I honestly haven't found the need to do templates yet, and I used them all the time in C++ 23:16 < Namegduf> It's pretty damn obvious that gofmt doesn't suffer from any of the obvious problems with depending on third-party programs 23:16 < xash> Templates! That was the word I searched for :-D 23:16 < Namegduf> Like "getting a copy that builds at the same time and with the same Go version that your program builds" 23:16 < Eko> Namegduf: if it's not built into the compiler, it's "external" to me because it can break or change or not upgrade right. 23:16 < Namegduf> Eko: It is distributed with the compiler, in the same source tree, and matching the same version. 23:16 < xash> And preprocessor wouldn't help, if you write an implementation in a library fe, you don't want to change 23:17 < Namegduf> A preprocessor is how C++ templates work and they work well enough 23:17 < xash> Uh, I meant tools like gofmt 23:17 < Namegduf> I don't see how that makes any difference. 23:18 -!- Zoopee [alsbergt@192.117.108.58] has quit [Ping timeout: 255 seconds] 23:18 < xash> Preprocessor doesn't change the files .. 23:18 < Namegduf> ...you use the preprocessor to generate files for the alternative versions from the base version.# 23:20 < xash> Uhh, yeah, that makes sense .. sorry, my brain suffers from sleeplessness :-) 23:20 < Namegduf> Not fun, but works. 23:24 -!- Nicotux [~AndChat@62.201.142.80] has quit [Read error: Connection reset by peer] 23:24 -!- Nicotux [~AndChat@62.201.142.80] has joined #go-nuts 23:26 -!- araujo [~araujo@gentoo/developer/araujo] has joined #go-nuts 23:29 -!- Nicotux [~AndChat@62.201.142.80] has quit [Read error: Connection reset by peer] 23:29 -!- Nicotux [~AndChat@62.201.142.80] has joined #go-nuts 23:30 -!- Scorchin [~Scorchin@host86-166-61-12.range86-166.btcentralplus.com] has quit [Quit: Scorchin] 23:30 -!- bgentry [~bgentry@75.85.173.206] has joined #go-nuts 23:30 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-157-166.clienti.tiscali.it] has quit [Quit: E se abbasso questa leva che succ...] 23:33 -!- napsy [~luka@88.200.96.18] has quit [Quit: leaving] 23:34 -!- skejoe [~skejoe@188.114.142.162] has quit [Quit: Lost terminal] 23:36 < Eko> Namegduf: I just came up with a really evil way to do concurrent map accesses while still preserving write semantics 23:37 < Namegduf> Eko: Oh? 23:37 < aiju> Eko: critical sections? 23:37 < aiju> ◔ ◡ ◔ 23:37 < Eko> Namegduf: no, more evil than that 23:37 < Namegduf> That was not me 23:37 < Namegduf> My face is less terrifying 23:37 < aiju> haha 23:38 < aiju> there's a greater evil than critical sections? 23:38 < Eko> well, the initial idea is to have two maps 23:38 < Eko> that are both updated (serially) by the write process 23:39 -!- ios_ [~ios@180.191.43.195] has joined #go-nuts 23:39 < Eko> the read process can either read from one map or the other if it doesn't care about possibly getting bad values, or it can compare the two and only use the value if they're the same 23:39 < aiju> shouldn't it be possible to make map accesses atomic? 23:39 < Namegduf> Possible, yes, but you'd need to write your own map implementation 23:39 < aiju> patch go and submit the patch 23:39 < Namegduf> I use a trie in various places partly for that reason 23:40 < Namegduf> It wouldn't be accepted 23:40 < Eko> nope. 23:40 < aiju> why not? 23:40 < Namegduf> There are performance tradeoffs involved. It was a deliberate design decision that's right in most cases. 23:40 < aiju> oic 23:40 < Namegduf> I don't know what tradeoffs, but I've not designed a hashtable. 23:40 < Eko> though adding a syncmap package would probably be accepted. 23:40 < Namegduf> That'd be a nice thing in the sync package, actually. 23:41 < Namegduf> A non-unidiomatic use of it. 23:41 < aiju> as i know hashmaps, there is one critical operation, namely changing the entry in the table 23:41 < aiju> if one did that last and made it atomic… 23:41 < Eko> aiju: the performance tradeoff is in checking to see if it's in a critical section while you're reading 23:42 < aiju> Eko: atomic operations and critical sections are entirely different things… 23:42 < Eko> I think it can be done with a wait channel and a non-blocking channel write, I just haven't sat down and written it yet. 23:43 < Namegduf> I don't even use atomic operations persay 23:43 < Eko> aiju: indeed, but making a new atomic operation is not really what I want to do, i Just don't want to read if there's a write going on 23:43 < Namegduf> I just require writes to be wrapped in mutexes, which in Go behave as full memory fences, and ensure that reading at any arbitrary point is safe 23:44 -!- itrekkie [~itrekkie@ip72-211-155-116.tc.ph.cox.net] has joined #go-nuts 23:46 < Eko> the sync package already has an assembly compare-and-swap that is (presumably) cross-platform, so perhaps it could be done without having a mutex internally 23:47 < aiju> assembly and cross-platform are mutually exclusive 23:47 < aiju> but the Go world is an AMD64 so it probably doesn't matter :P 23:48 < Namegduf> It's ported to all supported architectures for Go 23:48 < Namegduf> You can rip it out and expose it in your own package if you like. 23:48 < Namegduf> I do. 23:49 -!- photron_ [~photron@port-92-201-28-69.dynamic.qsc.de] has quit [Ping timeout: 272 seconds] 23:52 -!- Nicotux [~AndChat@62.201.142.80] has quit [Read error: Connection reset by peer] 23:56 -!- Zoopee [alsbergt@zoopee.org] has joined #go-nuts 23:59 -!- rlab [~Miranda@91.200.158.34] has quit [Quit: Miranda IM! Smaller, Faster, Easier. http://miranda-im.org] --- Log closed Wed Dec 29 00:00:01 2010