--- Log opened Mon Jul 19 00:00:12 2010 00:08 -!- General1337 [~support@71-84-50-230.dhcp.mtpk.ca.charter.com] has joined #go-nuts 00:09 -!- General13372 [~support@71-84-50-230.dhcp.mtpk.ca.charter.com] has quit [Ping timeout: 276 seconds] 00:34 -!- boscop [~boscop@f055205178.adsl.alicedsl.de] has quit [Ping timeout: 265 seconds] 00:36 -!- mikespook [~mikespook@219.137.254.145] has joined #go-nuts 00:38 -!- allengeorge_ [~allengeor@74.12.153.91] has quit [Quit: allengeorge_] 00:38 -!- allengeorge [~allengeor@74.12.153.91] has joined #go-nuts 00:39 -!- allengeorge [~allengeor@74.12.153.91] has quit [Client Quit] 00:54 -!- General1337 [~support@71-84-50-230.dhcp.mtpk.ca.charter.com] has quit [Ping timeout: 252 seconds] 00:55 -!- fenicks [~christian@log77-3-82-243-254-112.fbx.proxad.net] has left #go-nuts [] 00:56 -!- General1337 [~support@71-84-50-230.dhcp.mtpk.ca.charter.com] has joined #go-nuts 01:11 -!- Agon_-laptop [~marcel@HSI-KBW-095-208-003-128.hsi5.kabel-badenwuerttemberg.de] has joined #go-nuts 01:11 -!- accAgon-laptop [~marcel@HSI-KBW-095-208-003-128.hsi5.kabel-badenwuerttemberg.de] has quit [Read error: Connection reset by peer] 01:11 -!- aho [~nya@fuld-4d00d3f8.pool.mediaWays.net] has joined #go-nuts 01:43 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has joined #go-nuts 01:46 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has joined #go-nuts 01:54 -!- Agon_-laptop [~marcel@HSI-KBW-095-208-003-128.hsi5.kabel-badenwuerttemberg.de] has quit [Remote host closed the connection] 01:55 -!- SRabbelier [~SRabbelie@ip138-114-211-87.adsl2.static.versatel.nl] has quit [Read error: Connection reset by peer] 01:56 -!- SRabbelier [~SRabbelie@ip138-114-211-87.adsl2.static.versatel.nl] has joined #go-nuts 01:59 < exch> im beginning to be a big fan of recover(). Very elegant when used with defer 02:03 -!- byrongibson [~byrongibs@cpe-98-155-138-202.hawaii.res.rr.com] has joined #go-nuts 02:06 < Ginto8> exch: I haven't seen any use for it myself, could you paste some code? 02:07 -!- byrongibson [~byrongibs@cpe-98-155-138-202.hawaii.res.rr.com] has left #go-nuts [] 02:08 -!- Byron [~Byron@cpe-98-155-138-202.hawaii.res.rr.com] has joined #go-nuts 02:10 < exch> sure, sec 02:13 < exch> this is a custom http post/get function in which I need to catch any kind panic() if it occurs due to messy network performance or some peculiar response data. It converts the panic into a plain old os.Error return value, so the program can handle it elegantly and continue going. http://pastiebin.com/?page=p&id=4c4361a8f3d76 02:18 < Ginto8> oh that's neat 02:18 < Ginto8> nice 02:20 < exch> ya. handy 02:23 < Ginto8> I never quite understood how recover() worked 02:23 < Ginto8> but now that I see it, it's far more elegant than try/catch 02:24 < exch> yea I think so to 02:33 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has quit [Quit: This computer has gone to sleep] 02:43 -!- angasule [~angasule@190.2.33.49] has quit [Ping timeout: 264 seconds] 02:56 -!- ronny [~quassel@p4FF1D8E0.dip.t-dialin.net] has joined #go-nuts 02:57 -!- ronnyy [~quassel@p4FF1D10B.dip.t-dialin.net] has quit [Ping timeout: 265 seconds] 02:57 -!- anschelsc [~anschel@pool-98-116-141-175.nwrknj.fios.verizon.net] has joined #go-nuts 02:59 < anschelsc> is there a way (without shuffling back and forth to float64) to turn raise one int to the power of another? like python z=x**y 02:59 < anschelsc> where x,y, and z are ints 03:00 -!- rejb [~rejb@unaffiliated/rejb] has quit [Ping timeout: 276 seconds] 03:03 < anschelsc> is this just impossible? 03:03 < jchico> what do you mean by "to turn raise one int to the power of another"? 03:04 < anschelsc> if I have x,y int 03:04 < anschelsc> in python I can say z = x**y 03:05 < exch> on a related note, why does this compile without error and yield '10'? println(2^^^^^^8) 03:05 < jchico> ohh you just want the syntax sugar? just call the function 03:05 < anschelsc> what function jchico? 03:05 < anschelsc> that's what I'm asking 03:06 < anschelsc> math.Pow(x, y) only works on float64 03:06 < anschelsc> so I can do z := int(math.Pow(float64(x), float64(y))) 03:06 < anschelsc> but that seems like a waste of typing and computation 03:07 < exch> unfortunately the strict typing of go doesn't give you any other option 03:07 < jchico> yeah if that bothers you just make a wrapper function to return an int 03:07 < exch> apart from implementing pow() yourself for ints 03:07 < exch> I'm sure they had a good reason to stick to floats though 03:07 < jchico> O 03:08 < jchico> I'm guessing because you can just always cast it to whatever you want 03:08 < jchico> but if you want infinite integer precision you would use something like bignum and implement it yourself 03:10 < jchico> exch the ^ operator is bit masking in Go right? 03:10 < exch> I believe so 03:11 < anschelsc> exch: ^ is also a unary operator, see language spec 03:11 < exch> technically the result should be correct then of it does something funky like println(2^(^(^(^(^(^(^(^(^8))))))) 03:13 < jchico> yeah what anschelsc said, that's why I'm confused with that operator you can use it as unary operator and that confused me 03:14 < jchico> heh I should stop drinkin 03:22 -!- anschelsc [~anschel@pool-98-116-141-175.nwrknj.fios.verizon.net] has quit [Quit: leaving] 03:24 -!- jchico [~jchico@cpe-98-14-12-209.nyc.res.rr.com] has quit [Quit: Leaving] 03:30 -!- Byron [~Byron@cpe-98-155-138-202.hawaii.res.rr.com] has left #go-nuts [] 03:33 -!- dark [~dark@unaffiliated/eliasamaral] has quit [Ping timeout: 265 seconds] 03:46 -!- dark [~dark@unaffiliated/eliasamaral] has joined #go-nuts 03:55 -!- exch [~exch@h144170.upc-h.chello.nl] has quit [Ping timeout: 276 seconds] 04:01 -!- ender2070 [~ender2070@bas22-toronto12-2925103372.dsl.bell.ca] has quit [Remote host closed the connection] 04:16 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-157-122.clienti.tiscali.it] has joined #go-nuts 04:20 < Project_2501> goodmorning u.u/ 04:27 -!- Davidian1024 [~Davidian1@cpe-98-27-192-193.neo.res.rr.com] has quit [Read error: Operation timed out] 04:32 < plexdev> http://is.gd/dxDOc by [James Whitehead] in go/src/pkg/http/ -- http/transferWriter: Write body when content length unknown 04:32 < plexdev> http://is.gd/dxDOj by [James Whitehead] in go/ -- hgignore: adds bin/ to support setting $GOBIN to $GOROOT/bin 04:33 -!- Jefus [~dereck@ip68-0-236-81.ri.ri.cox.net] has joined #go-nuts 04:34 -!- Jefus [~dereck@ip68-0-236-81.ri.ri.cox.net] has quit [Remote host closed the connection] 04:56 -!- zero7 [~crazy@78.101.33.101] has quit [Read error: Connection reset by peer] 04:58 -!- scm [justme@d057238.adsl.hansenet.de] has quit [Ping timeout: 260 seconds] 05:00 -!- scm [justme@d039053.adsl.hansenet.de] has joined #go-nuts 05:02 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-157-122.clienti.tiscali.it] has quit [Ping timeout: 276 seconds] 05:05 -!- path[l] [UPP@120.138.102.50] has joined #go-nuts 05:10 -!- Davidian1024 [~Davidian1@cpe-98-27-192-193.neo.res.rr.com] has joined #go-nuts 05:18 -!- trustin [~trustin@redhat/jboss/trustin] has quit [Quit: Leaving] 05:22 -!- allengeorge [~allengeor@74.12.153.91] has joined #go-nuts 05:23 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-179-70.clienti.tiscali.it] has joined #go-nuts 05:37 -!- exch [~exch@h144170.upc-h.chello.nl] has joined #go-nuts 05:43 -!- Sacho [~sacho@95-42-109-184.btc-net.bg] has quit [Remote host closed the connection] 05:55 -!- iant [~iant@81-233-149-58-no82.tbcn.telia.com] has joined #go-nuts 05:55 -!- mode/#go-nuts [+v iant] by ChanServ 06:04 -!- franksalim [~frank@adsl-75-61-93-123.dsl.pltn13.sbcglobal.net] has quit [Quit: Ex-Chat] 06:13 -!- iant [~iant@81-233-149-58-no82.tbcn.telia.com] has quit [Quit: Leaving.] 06:15 < nsf> is it possible in Go to specifiy what return code app will return in case of dying after panic? 06:15 < nsf> or should I wrap anything and use recover and then return needed code manually 06:15 < nsf> everything* 06:16 -!- slashus2 [~slashus2@static-71-103-247-250.lsanca.dsl-w.verizon.net] has joined #go-nuts 06:17 -!- allengeorge [~allengeor@74.12.153.91] has quit [Quit: allengeorge] 06:18 -!- fhs [~fhs@pool-71-167-78-154.nycmny.east.verizon.net] has joined #go-nuts 06:18 < nsf> I think I've answered my question again ) 06:18 -!- slashus2 [~slashus2@static-71-103-247-250.lsanca.dsl-w.verizon.net] has quit [Read error: Connection reset by peer] 06:18 -!- allengeorge [~allengeor@74.12.153.91] has joined #go-nuts 06:20 < KirkMcDonald> What code does it return on panic, out of curiosity? 1? 06:20 < nsf> I didn't check actually :) 06:22 < exch> 2 apparently 06:22 < nsf> yep, it's 2 06:23 < exch> Also just noticed that os.Exit() cannot return a negative value. -1 gets wrapped to 255 06:24 < exch> probably a good idea to change os.Exit()'s signature to accept only a byte 06:24 -!- drry [~drry@unaffiliated/drry] has quit [Ping timeout: 246 seconds] 06:24 -!- X-Scale [email@89.180.210.24] has joined #go-nuts 06:26 -!- allengeorge [~allengeor@74.12.153.91] has quit [Quit: allengeorge] 06:28 -!- drry [~drry@unaffiliated/drry] has joined #go-nuts 06:28 -!- drry [~drry@unaffiliated/drry] has quit [Excess Flood] 06:28 -!- drry [~drry@unaffiliated/drry] has joined #go-nuts 06:33 -!- aho [~nya@fuld-4d00d3f8.pool.mediaWays.net] has quit [Quit: EXEC_over.METHOD_SUBLIMATION] 06:36 -!- smw [~smw@pool-71-183-88-124.nycmny.fios.verizon.net] has joined #go-nuts 06:38 -!- path[l] [UPP@120.138.102.50] has quit [Quit: path[l]] 06:41 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts 06:54 -!- iant [~iant@62.20.124.50] has joined #go-nuts 06:54 -!- mode/#go-nuts [+v iant] by ChanServ 07:12 -!- zozoR [~zozoR@x1-6-00-0e-2e-a3-e0-23.k377.webspeed.dk] has joined #go-nuts 07:14 -!- sioraiocht [~tomh@unaffiliated/sioraiocht] has joined #go-nuts 07:29 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.2] 07:35 -!- temoto [~temoto@93-80-118-12.broadband.corbina.ru] has joined #go-nuts 07:36 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-179-70.clienti.tiscali.it] has quit [Quit: E se abbasso questa leva che succ...] 07:44 -!- trustin [~trustin@redhat/jboss/trustin] has joined #go-nuts 07:48 -!- tvw [~tv@e176006032.adsl.alicedsl.de] has joined #go-nuts 07:49 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has quit [Ping timeout: 264 seconds] 08:05 -!- ikaros [~ikaros@drms-4d0140dc.pool.mediaWays.net] has joined #go-nuts 08:17 -!- tvw [~tv@e176006032.adsl.alicedsl.de] has quit [Read error: Connection reset by peer] 08:20 -!- Sacho [~sacho@213.91.244.15] has joined #go-nuts 08:23 -!- napsy [~napsy@193.2.66.101] has joined #go-nuts 08:26 -!- sioraiocht [~tomh@unaffiliated/sioraiocht] has quit [Remote host closed the connection] 08:27 -!- Byron [~Byron@cpe-98-155-138-202.hawaii.res.rr.com] has joined #go-nuts 08:27 -!- Byron [~Byron@cpe-98-155-138-202.hawaii.res.rr.com] has left #go-nuts [] 08:28 -!- ikaros [~ikaros@drms-4d0140dc.pool.mediaWays.net] has quit [Quit: Leave the magic to Houdini] 08:32 -!- temoto [~temoto@93-80-118-12.broadband.corbina.ru] has quit [Ping timeout: 248 seconds] 08:36 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has joined #go-nuts 08:43 -!- chressie [~chressie@dreggn.in-ulm.de] has quit [Quit: WeeChat 0.3.2] 08:57 < plexdev> http://is.gd/dxQAq by [Kai Backman] in go/misc/arm/ -- minor error checking to android launcher 08:58 -!- sauerbraten [~sauerbrat@p508CF57C.dip.t-dialin.net] has joined #go-nuts 09:03 -!- chressie [~chressie@dreggn.in-ulm.de] has joined #go-nuts 09:18 -!- tvw [~tv@212.79.9.150] has joined #go-nuts 09:18 -!- ExtraSpice [~ExtraSpic@88.118.32.225] has joined #go-nuts 09:24 -!- TR2N [email@89.180.210.24] has left #go-nuts [] 09:38 -!- mikespook [~mikespook@219.137.254.145] has quit [Quit: Leaving.] 09:47 -!- SerraAvenger [~DavidJone@dslb-084-056-112-175.pools.arcor-ip.net] has joined #go-nuts 09:51 -!- angasule [~angasule@190.2.33.49] has joined #go-nuts 09:58 -!- SerraAvenger [~DavidJone@dslb-084-056-112-175.pools.arcor-ip.net] has quit [Remote host closed the connection] 09:58 -!- GeoBSD [~geobsd@lns-bzn-61-82-250-68-124.adsl.proxad.net] has joined #go-nuts 09:59 -!- SerraAvenger [~DavidJone@dslb-084-056-112-175.pools.arcor-ip.net] has joined #go-nuts 10:06 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has quit [Ping timeout: 245 seconds] 10:09 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has joined #go-nuts 10:13 -!- peterdn [~peterdn@cpc1-oxfd18-2-0-cust914.4-3.cable.virginmedia.com] has quit [Quit: ChatZilla 0.9.86-rdmsoft [XULRunner 1.9.2/20100222071121]] 10:15 -!- Guest12023 [~quassel@p4FF1D8E0.dip.t-dialin.net] has quit [Remote host closed the connection] 10:16 -!- ronny [~quassel@p4FF1D8E0.dip.t-dialin.net] has joined #go-nuts 10:17 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts 10:18 -!- visof [~visof@unaffiliated/visof] has joined #go-nuts 10:37 -!- temoto [~temoto@81.19.90.175] has joined #go-nuts 11:04 -!- RealOpty [~will@69-92-54-203.cpe.cableone.net] has joined #go-nuts 11:05 -!- trustin [~trustin@redhat/jboss/trustin] has quit [Quit: Leaving] 11:05 -!- angasule [~angasule@190.2.33.49] has quit [Ping timeout: 252 seconds] 11:11 -!- trustin [~trustin@redhat/jboss/trustin] has joined #go-nuts 11:12 -!- ShadowIce` [pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts 11:12 -!- tabo [~tabot@camelot.tabo.pe] has quit [Read error: Connection reset by peer] 11:12 -!- tabo [~tabot@camelot.tabo.pe] has joined #go-nuts 11:13 -!- RealOpty [~will@69-92-54-203.cpe.cableone.net] has left #go-nuts [] 11:15 -!- ShadowIce [pyoro@unaffiliated/shadowice-x841044] has quit [Ping timeout: 240 seconds] 11:16 -!- nf [~nf@203-158-40-182.dyn.iinet.net.au] has quit [Ping timeout: 246 seconds] 11:16 -!- nf [~nf@203-158-40-182.dyn.iinet.net.au] has joined #go-nuts 11:46 -!- rejb [~rejb@unaffiliated/rejb] has joined #go-nuts 11:46 -!- thiago [~thiago@189.107.139.251] has joined #go-nuts 11:52 < nsf> http://omploader.org/vNHo3eg/gocode.png 11:52 < nsf> type inference in type switch statements... check 11:52 < nsf> :P 11:52 -!- ssb [~ssb@213.167.39.150] has quit [Ping timeout: 258 seconds] 11:52 < skelterjohn> ^5 11:53 -!- ssb [~ssb@213.167.39.150] has joined #go-nuts 11:57 -!- wrtp [~rog@92.17.18.73] has joined #go-nuts 12:02 -!- jA_cOp [~yakobu@unaffiliated/ja-cop/x-9478493] has quit [Quit: Leaving] 12:14 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has joined #go-nuts 12:20 < chressie> i updated the archlinux package <http://aur.archlinux.org/packages.php?ID=33695> the installation creates a 'golang' group so goinstall can be used by non-root logins to install 3rd party packages (see announce message) 12:23 -!- Guest42170 [~quassel@p4FF1D8E0.dip.t-dialin.net] has quit [Remote host closed the connection] 12:24 -!- ronny [~quassel@p4FF1D8E0.dip.t-dialin.net] has joined #go-nuts 12:31 -!- Guest8610 [~quassel@p4FF1D8E0.dip.t-dialin.net] has quit [Remote host closed the connection] 12:33 -!- serbaut [~joakims@88.80.182.68] has joined #go-nuts 12:42 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has quit [Quit: WeeChat 0.3.2] 12:42 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has quit [Quit: This computer has gone to sleep] 12:43 -!- crashR [~crasher@codextreme.pck.nerim.net] has joined #go-nuts 12:47 -!- SerraAvenger [~DavidJone@dslb-084-056-112-175.pools.arcor-ip.net] has left #go-nuts [] 12:50 -!- napsy [~napsy@193.2.66.101] has quit [Quit: leaving] 12:53 -!- geocalc [~geobsd@lns-bzn-40-82-251-136-165.adsl.proxad.net] has joined #go-nuts 12:55 -!- GeoBSD [~geobsd@lns-bzn-61-82-250-68-124.adsl.proxad.net] has quit [Ping timeout: 246 seconds] 12:57 -!- General13372 [~support@71-84-50-230.dhcp.mtpk.ca.charter.com] has joined #go-nuts 12:58 -!- dark [~dark@unaffiliated/eliasamaral] has quit [Ping timeout: 265 seconds] 13:00 -!- General1337 [~support@71-84-50-230.dhcp.mtpk.ca.charter.com] has quit [Ping timeout: 276 seconds] 13:04 < nf> nsf: niiiice 13:04 < nf> nsf: which editor? 13:04 < nf> emacs? 13:04 < nsf> it's getting nice, yes 13:04 < nsf> nope, it's vim :D 13:04 < nf> oh _really_ ? 13:05 < nf> (vim user) 13:05 < nf> i don't use omni completion or anything fancy 13:05 < nf> looks cool, though 13:05 < nsf> yes 13:05 < nsf> but I'm working on a daemon it isn't tied with any editor 13:05 < nsf> I just use vim, and test it on vim 13:05 < nf> project page anywhere? 13:06 < nsf> http://github.com/nsf/gocode 13:06 < nsf> sources are here 13:06 < nsf> and apparently it should work 13:06 < nsf> but I don't give any usage instructions yet 13:06 < nsf> shortly: make install it and install vim scripts 13:06 < nsf> and it should work 13:07 < nsf> make sure you have 'filetype plugin on' in vim 13:07 < nf> cool! 13:07 < nf> i'll check it out 13:07 < nsf> the usage is quite limited however :) 13:07 < nsf> but as I've said.. it's getting better 13:08 < nf> i'm most interested in how it works, more than what it does ;) 13:09 < nsf> it uses lots of cheating hackerish stuff 13:09 < nsf> :D 13:09 < nsf> for example it parses archive files (.a) with go/parser :D 13:09 < nsf> but it can't do that out of the box, so I do preprocessing 13:10 < nf> hahaha amusing 13:10 < nf> but you should make the .a parser nicer and then submit it to the go project! 13:10 < nsf> type inference is implemented too, it works quite well, but I'm not sure how correct is it 13:11 < nsf> nf: the .a parser works 100% well, with exception that it can't parse const numbers :) 13:11 < nsf> I just replace them with 0 13:12 < nsf> but it's because gc compiler uses floating point number textual representation that is not in the Go standard 13:12 < nsf> and go/scanner doesn't recognize it 13:12 < nsf> other than that it parses 100% of go packages (see dir 'test') 13:17 -!- dark [~dark@unaffiliated/eliasamaral] has joined #go-nuts 13:31 -!- mlip [~mlip@62.218.44.194] has joined #go-nuts 13:39 -!- kanru [~kanru@118-160-163-107.dynamic.hinet.net] has joined #go-nuts 13:52 -!- geocalc [~geobsd@lns-bzn-40-82-251-136-165.adsl.proxad.net] has quit [Quit: Lost terminal] 13:53 -!- macroron [~ron@c-98-242-168-49.hsd1.fl.comcast.net] has joined #go-nuts 13:54 -!- Xurix [~Luixsia@AToulouse-254-1-87-198.w86-201.abo.wanadoo.fr] has joined #go-nuts 13:56 < araujo> is os/signal the only package currently dealing with signals operations?? 13:57 < exch> as far as I know, yes 14:01 < araujo> exch, I was checking the source code ... it seems to me a bit .. "minimalist" , that wouldn't surprise about Go.. :P , but trying to figure out how to use it right now, pretty much I want to "catch" a signal, but as far as I can see, here it is more like "channeling" a signal .... 14:02 -!- plainhao [~plainhao@mail.xbiotica.com] has joined #go-nuts 14:02 * araujo tests something .... 14:03 < jessta> araujo: yep 14:03 <+iant> araujo: yes, signals get sent on a channel 14:04 < jessta> araujo: catching signals gets really messy in a concurrent program, reading from a channel is a much nicer option 14:04 < exch> sig := <-signal.Incoming; switch sig { /* pick one and do stuff */ } 14:05 < exch> pretty straightforward really 14:08 -!- Sacho [~sacho@213.91.244.15] has quit [Read error: No route to host] 14:10 < araujo> Thanks guys!! 14:10 < araujo> wow, that was easy :) 14:15 * araujo will use os/signal as an example when talking about the power of abstractions that channels offer in Go 14:19 -!- Sacho [~sacho@213.91.244.15] has joined #go-nuts 14:21 < Ginto8> araujo: channels don't offer abstraction really, but they do offer a lot of utility 14:25 -!- gid [~gid@220.253-225-62.VIC.netspace.net.au] has joined #go-nuts 14:26 < araujo> Ginto8, I see os/signal and that looks like some nice abstracted signal package 14:26 < araujo> for me ... 14:27 < Ginto8> well it is really compact and system-independent, so I suppose it's nicely abstracted 14:28 -!- visof [~visof@unaffiliated/visof] has quit [Quit: Leaving] 14:29 < jessta> channel abstract various forms of communication in to channel communication instead 14:33 < Ginto8> I find that the io package's abstractions simplify a crapload of data transfer 14:36 -!- Guest29233 [~thiago@189.107.139.251] has quit [Quit: bye] 14:42 -!- wrtp [~rog@92.17.18.73] has quit [Ping timeout: 276 seconds] 14:43 -!- Adys [~Adys@unaffiliated/adys] has joined #go-nuts 14:46 -!- zozoR [~zozoR@x1-6-00-0e-2e-a3-e0-23.k377.webspeed.dk] has quit [Quit: Morten. Desu~] 14:47 -!- wrtp [~rog@92.17.22.172] has joined #go-nuts 14:52 -!- Ginto8 [~joe@pool-72-82-235-34.cmdnnj.fios.verizon.net] has left #go-nuts [] 14:52 -!- Ginto8 [~joe@pool-72-82-235-34.cmdnnj.fios.verizon.net] has joined #go-nuts 14:54 -!- lukew_cn [~lukew_cn@222.128.135.52] has joined #go-nuts 14:54 -!- willdye [~willdye@zuul.dsndata.com] has joined #go-nuts 14:57 -!- yashi [~yashi@210.191.215.173] has joined #go-nuts 14:59 -!- lukew_cn_ [~lukew_cn@114.245.250.253] has joined #go-nuts 15:02 -!- skelterjohn [~jasmuth@c-76-116-182-139.hsd1.nj.comcast.net] has quit [Quit: skelterjohn] 15:02 -!- lukew_cn [~lukew_cn@222.128.135.52] has quit [Ping timeout: 240 seconds] 15:04 -!- zozoR [~zozoR@x1-6-00-0e-2e-a3-e0-23.k377.webspeed.dk] has joined #go-nuts 15:06 -!- mlip [~mlip@62.218.44.194] has left #go-nuts [] 15:11 -!- Adys [~Adys@unaffiliated/adys] has quit [Quit: I ♥ Unicode] 15:12 -!- Adys [~Adys@unaffiliated/adys] has joined #go-nuts 15:17 < plexdev> http://is.gd/dybpo by [Adam Langley] in go/src/pkg/time/ -- time: fix parsing of minutes in time zones. 15:17 < plexdev> http://is.gd/dybps by [Adam Langley] in go/src/pkg/asn1/ -- asn1: Enumerated, Flag and GeneralizedTime support. 15:25 -!- iant [~iant@62.20.124.50] has quit [Ping timeout: 264 seconds] 15:26 -!- MizardX [~MizardX@unaffiliated/mizardx] has quit [Ping timeout: 252 seconds] 15:35 -!- awidegreen [~quassel@62.176.237.78] has joined #go-nuts 15:40 -!- Venom_X [~pjacobs@71.21.124.111] has joined #go-nuts 15:45 -!- lukew_cn [~lukew_cn@114.245.250.253] has quit [Quit: Bye~~] 15:46 -!- ShadowIce [pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts 15:47 -!- jvogel [~jonathan@friedpancakes.com] has joined #go-nuts 15:47 -!- jvogel [~jonathan@friedpancakes.com] has quit [Client Quit] 15:47 -!- skelterjohn [~jasmuth@lawn-net168-in.rutgers.edu] has joined #go-nuts 15:49 -!- ShadowIce` [pyoro@unaffiliated/shadowice-x841044] has quit [Ping timeout: 240 seconds] 15:49 -!- zozoR [~zozoR@x1-6-00-0e-2e-a3-e0-23.k377.webspeed.dk] has quit [Quit: Morten. Desu~] 15:50 < hokapoka> Hey, just picking up golang, found the tutorials really clear. 15:51 < Ginto8> yep 15:52 < Ginto8> I think they did a fantastic job with the documentation as a whole 15:52 < hokapoka> I've just been having a hunt for some kinda vim autocompletion, kinda wanna cheat abit while I get to grips. Found an IRC log of the chan where someone had started to create one, any info on it's status? 15:53 < skelterjohn> did nsf set you up? 15:53 < skelterjohn> :) 15:53 < hokapoka> http://go-lang.cat-v.org/irc-logs/go-nuts/2010-07-05 -> http://omploader.org/vNHU3eA/quick.png 15:53 < skelterjohn> he (or she) is the one to talk to 15:53 < hokapoka> skelterjohn: I thought as much from the logs. 15:53 < skelterjohn> i don't believe it has been turned into something distributable, but i imagine nsf would love to have a tester 15:54 < nsf> I'm working on it.. really 15:54 < hokapoka> Oh great. nsf I'd love to give it a whirl :) 15:54 < nsf> when it'll be ready for testers, I'll make a usage guide and drop a message to ML 15:54 < nsf> hokapoka: http://github.com/nsf/gocode 15:54 < hokapoka> Oh hey, there. Sweet. 15:55 < nsf> sources are available and it sort of works 15:55 < nsf> but there are lot of things to be done 15:55 < nsf> still 15:55 < hokapoka> Wow, many thanks. I'll have play, let you know how I get on. 15:56 < nsf> using this autocompletion while learning Go isn't a best idea 15:56 < skelterjohn> i haven't missed autocompletion so far, really 15:56 < hokapoka> Yeah, kinda lazy I guess. 15:56 < skelterjohn> though xcode does guess a bit and provides some things 15:56 < skelterjohn> recently typed words that begin the same 15:57 < nsf> skelterjohn: it's nice when the code becomes bigger 15:57 < hokapoka> Aye, I've got that on my current setup, any string in open files are avaliable via <tab> 15:57 < nsf> for example I was always refering to a browser while working with go/ast package 15:57 < nsf> because there are a lot of similar things 15:57 < skelterjohn> the thing i'd really like for when code becomes bigger is a refactoring tool 15:58 < nsf> and yet, they have differences 15:58 -!- Adys [~Adys@unaffiliated/adys] has quit [Read error: Connection reset by peer] 15:58 < nsf> and it's nice to have a reminder that will tell you what fields are here 15:58 < hokapoka> nsf, I'll carry on geting to know it a bit better, and prolly set your autocomplete up on another box. 15:58 < nsf> skelterjohn: refactoring is a next step :) 15:59 < skelterjohn> nsf, is there any sort of common protocol for these kinds of things? 15:59 < skelterjohn> if not, you should design one :) 15:59 < nsf> no, I shouldn't 16:00 < nsf> I don't think it's necessary 16:00 < nsf> because there are zillions of refactoring tools and zillions of editors 16:00 < nsf> I'm interesting in linux and vim and I don't want to make the one solution for all 16:00 < nsf> interested* 16:01 < skelterjohn> and it'd be nice if someone could make an editor and just drop in a refactoring tool by using a certain protocol or interface 16:01 < skelterjohn> *shrug* 16:01 < nsf> skelterjohn: but that is possible with minor changes to my daemon 16:01 < nsf> it was designed to work that way (with external editors) 16:02 < skelterjohn> cool - but no one wants to change your code to make it work with their own. they'd rather it be the other way around 16:02 -!- wrtp_ [~rog@92.17.22.172] has joined #go-nuts 16:02 < nsf> actually sec, I have a screenshot 16:02 < nsf> http://omploader.org/vNHltYg/gocode-emacs.png 16:02 < nsf> the same autocompletion on emacs :) 16:03 < nsf> but it was a proof of concept, I don't want to support it :) 16:03 < nsf> and frankly there is no thing to support 16:03 < nsf> skelterjohn: the changes are really minor 16:03 < nsf> like output format 16:03 < nsf> if you want something special I can provide that 16:04 < nsf> for example in vim it makes sense to do output using vim script statements 16:04 < skelterjohn> my point is that just the fact that they'd have to edit your code is a turnoff 16:04 -!- cco3 [~conley@c-69-181-138-209.hsd1.ca.comcast.net] has quit [Ping timeout: 260 seconds] 16:04 < skelterjohn> no one wants to look at someone else's code :) 16:04 < nsf> I can do a generic output format like json or xml 16:04 < exch> skelterjohn: thats why we have gofmt :) 16:04 < skelterjohn> that's not the problem =p 16:04 < nsf> skelterjohn: well, if "they" want to write a go completion by themselves 16:04 < nsf> that their choice I don't care 16:04 < nsf> that's* 16:05 < nsf> and "no one wants to look at someone else's code" is just a lie 16:06 -!- wrtp [~rog@92.17.22.172] has quit [Ping timeout: 276 seconds] 16:06 < skelterjohn> it was not my intention to be antagonistic 16:06 < nsf> while I was working on a panel for X11 I was forced to look at the code of almost every major WM out there 16:06 < nsf> and it's ok :) 16:06 < skelterjohn> forced implies you didn't want to 16:06 < nsf> actually that's why I really like open source 16:06 -!- iant [~iant@81-233-149-58-no82.tbcn.telia.com] has joined #go-nuts 16:06 -!- mode/#go-nuts [+v iant] by ChanServ 16:07 < nsf> you _can_ look at someone else's code 16:07 < exch> nobody wants to look at X11 code voluntarilly 16:07 < nsf> exch: :D 16:07 < nsf> true 16:07 < nsf> but hey, gocode is Go 16:07 < nsf> Go is really nice and readable 16:07 < nsf> there is no preprocessor, no templates, no overloading, etc. 16:07 < nsf> it's as readable as book 16:07 < nsf> ) 16:08 < hokapoka> How does make distinguish between 8g and 6g? 16:08 < nsf> hokapoka: environment variables 16:08 < hokapoka> $GOARCH? 16:09 < nsf> yes 16:09 < nsf> well there are "template" makefiles in Go's source tree 16:09 < nsf> Make.386 Make.amd64 Make.arm 16:10 -!- trustin [~trustin@redhat/jboss/trustin] has quit [Quit: Leaving] 16:11 < hokapoka> Okay, thanks. 16:12 < nsf> skelterjohn: my point was: even if you have "standards" (X11 and all that linux desktop thing has _LOTS_ of them, believe me), you still will be forced to look at someone else's code 16:12 < nsf> it's inevitable 16:12 < skelterjohn> sure. i don't disagree. 16:13 -!- Guest36778 [~irc@209.17.191.58] has quit [Quit: leaving] 16:13 -!- irc [~irc@209.17.191.58] has joined #go-nuts 16:13 < nsf> so.. be it a standard or not, I'd like to see if it will form itself naturally 16:14 < skelterjohn> now you've lost me, heh 16:15 -!- iant [~iant@81-233-149-58-no82.tbcn.telia.com] has quit [Ping timeout: 245 seconds] 16:17 -!- Xurix [~Luixsia@AToulouse-254-1-87-198.w86-201.abo.wanadoo.fr] has quit [Quit: Leaving] 16:23 -!- willdye [~willdye@zuul.dsndata.com] has left #go-nuts [] 16:33 -!- artefon [~thiagon@150.164.2.20] has joined #go-nuts 16:35 -!- Fish [~Fish@9fans.fr] has joined #go-nuts 16:37 -!- tvw [~tv@212.79.9.150] has quit [Remote host closed the connection] 16:41 -!- Sacho [~sacho@213.91.244.15] has quit [Remote host closed the connection] 16:53 -!- tav [~tav@84.13.41.68] has quit [Quit: Hakuna Matata] 16:54 < skelterjohn> some more thoughts on generics in go... what if generic packages really did just use interface{} as their type? then the only thing the compiler would have to do is some type checking and automatic type assertions 16:54 < nsf> no, thanks 16:55 < skelterjohn> it seemed to me that one of the main sticking points was that we want to be able to precompile the package in use, since you refer to other go packages, rather than other go source code, when importing 16:55 < nsf> the point of generics (like in C++) is generating optimal code for different similar variants of data 16:55 < nsf> interface{} is not optimal 16:55 < skelterjohn> the point, in your opinion 16:55 < skelterjohn> in my opinion it's type safety 16:56 < nsf> that's how the Java people did it 16:56 < nsf> only type safety 16:56 < skelterjohn> ok 16:57 < skelterjohn> but if we have to precompile any code, the compiled code would need to know the size of the data type being...generified? 16:57 < nsf> well that's the problem number one with generics 16:57 < nsf> like it is in C++ 16:57 < skelterjohn> if instead of passing around the basic type, we pass pointers to that type, that problem goes away 16:57 < nsf> you can't compile them in a library 16:57 < nsf> they stay in headers 16:58 < skelterjohn> and an interface{} is just a fancy untyped pointer 16:58 < skelterjohn> the code that checks the type could be optimized out by the compiler when doing generics 16:59 < nsf> yes, it is possible, but what if I want contigous arrays of some structs via generics? 16:59 < skelterjohn> thinking 16:59 < Namegduf> Sounds like you'd need unsafe. 16:59 < nsf> you see generics is about two things 16:59 < nsf> making collections type safe 16:59 < nsf> and generating code 17:00 < nsf> some people think one is more important than another 17:00 < nsf> other think otherwise :) 17:00 < nsf> I see generics as a type-safe preprocessor :) 17:00 < nsf> or should I say type aware 17:01 -!- aho [~nya@fuld-4d00d2e3.pool.mediaWays.net] has joined #go-nuts 17:01 < Namegduf> That's a C++ view. 17:01 < nsf> Namegduf: unsafe won't help if my arrays will contain interface{}s 17:01 < nsf> Namegduf: yes 17:01 < Namegduf> Sure it will. 17:01 < Namegduf> Interface values are superpointers, remember? 17:02 < nsf> they are pointers.. 17:02 < nsf> I don't want an array of pointers 17:02 < skelterjohn> if you want a contiguous array of some type, can you use a combination of the reflect and unsafe packages to create it? 17:02 < Namegduf> Then your array won't contain interface values... 17:02 < Namegduf> You will need to unbox the interface value. 17:02 < nsf> but it's not efficient 17:02 < skelterjohn> Namegduf: he was referring to my suggestion about having generic types be interface{} under the hood 17:03 < skelterjohn> and then the implications of what a [3]MyType would be 17:03 < nsf> my point is that interface{} is inefficient 17:03 < nsf> but it's ok if you want just type safety 17:06 < nsf> the way I see generics is actually more like they need to utilize JIT technology 17:06 < nsf> but it doesn't look like a simple solution to a problem 17:06 < skelterjohn> i don't think it's possible to have a contiguous array of some unknown type in go, since you don't use source to refer to a package 17:07 < skelterjohn> yeah, i like having everything compiled first 17:07 < jessta> yeah, JIT is a nice way to solve the problem 17:08 < jessta> but it's probably not the Go way to solve it 17:08 < nsf> yes 17:08 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-157-238.clienti.tiscali.it] has joined #go-nuts 17:09 < jessta> you'd need to have some code on the caller side to prepare the data for the generic callee 17:09 < jessta> limbo has generics, but only for pointer types 17:09 < nsf> it may sound funny, but: it is a complex problem if you want to have a simple solution :D 17:10 < jessta> pointers are the easy part 17:10 < nsf> Java uses pointers afaik 17:10 < jessta> value types make it tricker 17:10 < jessta> java boxes everything, pretty much like interface{} 17:10 < skelterjohn> i think having pointer types for generics would be a good way to do it 17:11 < nsf> I really don't think that way :) 17:11 < skelterjohn> the only thing i can think of that that would preclude is the array argument nsf made 17:11 < jessta> yep 17:11 < nsf> the array is the most important structure for CPUs 17:11 < nsf> because it dictates data locality 17:12 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-183-134.clienti.tiscali.it] has joined #go-nuts 17:12 < skelterjohn> but there really is no way to do that without distributing source instead of binaries 17:12 < jessta> you want to be able to have a function work on an array without knowing what's in the array 17:13 < nsf> and data locality is important and it will be more important when we will have more cores 17:13 < skelterjohn> even if you treated arrays as just a pointer and a type size 17:13 < skelterjohn> you can't compile away constant index lookups 17:14 < skelterjohn> but i guess if you did that (pointer + size), memory paging would be ok, since things would be in tight chunks 17:14 < skelterjohn> maybe the addition of an anonymous array type wouldn't be a horrible thing 17:14 < skelterjohn> like []interface{}, but different 17:15 < jessta> that's a good idea... 17:15 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-157-238.clienti.tiscali.it] has quit [Ping timeout: 260 seconds] 17:15 -!- iant [~iant@81-233-149-58-no82.tbcn.telia.com] has joined #go-nuts 17:15 -!- mode/#go-nuts [+v iant] by ChanServ 17:15 < nsf> but it's just an array 17:16 < nsf> consider other examples: like having generic min max functions 17:16 < nsf> how would you do them? 17:16 < nsf> :) 17:16 < skelterjohn> so operators would be interesting 17:16 < nsf> I mean collections are only a part of what generics do 17:16 < skelterjohn> but i feel like that's not a fundamental issue, like not knowing the type size is 17:17 < jessta> perhaps some typeclasses 17:17 < jessta> for the built in types 17:18 < jnwhiteh> Which of these three makes you cry the least? 17:18 < jnwhiteh> http://pastebin.ca/1903794 17:18 -!- PortatoreSanoDiI [~Marvin@82.84.74.85] has joined #go-nuts 17:18 < nsf> and in fact it's hard to imagine how any kind of generic implementation will fit into Go 17:18 < nsf> I think it may take years 17:19 < skelterjohn> jnwhiteh: in that first one, close may be called before the writing is done 17:19 < jnwhiteh> fair point 17:19 < skelterjohn> nothing says that the goroutine begins before the calling function ends 17:19 < jnwhiteh> then consider it 17:19 < jnwhiteh> go func() { io.WriteString("Hello World! 17:19 < jnwhiteh> blah blah 17:19 < jnwhiteh> then the close 17:19 < jnwhiteh> =) 17:19 < jnwhiteh> which is the same as the second 17:20 < skelterjohn> and do you mean "writer.WriteString"? 17:20 < jnwhiteh> so between the other two, which makes you cry less =) 17:20 < jnwhiteh> no 17:20 < jnwhiteh> there is no writer.WriteString 17:20 < skelterjohn> you can just say io.WriteString? 17:20 < jnwhiteh> I mean io.WriteString(writer, "Hello World!") 17:20 < skelterjohn> what does it do? 17:20 < skelterjohn> oh i see 17:20 < skelterjohn> ok 17:20 < jnwhiteh> its conceptual, not compiled code =) 17:20 < skelterjohn> in the second one you explicitly close before writing 17:20 < skelterjohn> which seems odd 17:20 -!- kanru [~kanru@118-160-163-107.dynamic.hinet.net] has quit [Ping timeout: 240 seconds] 17:21 < nsf> frankly I don't understand what your code is supposed to do 17:21 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-183-134.clienti.tiscali.it] has quit [Ping timeout: 276 seconds] 17:21 < skelterjohn> i don't understand the purpose of the last one 17:21 < jnwhiteh> okay 17:21 < jnwhiteh> http://pastebin.ca/1903799 17:21 < jnwhiteh> that's what we're looking at :P 17:21 < skelterjohn> for the new second one, you wait until a signal from outside before writing the data? 17:22 < skelterjohn> the signal being, someone tries to read the chan? 17:22 < skelterjohn> that is a weird kind of signal 17:22 < jnwhiteh> its because there's no concept of ownership in Go =/ 17:22 < jnwhiteh> so I have to do crap like this 17:22 < jnwhiteh> a generator function may need to alter the mutable object conn 17:22 * nsf still doesn't understand what the code is supposed to do 17:22 < nsf> :) 17:23 < jnwhiteh> but then it needs to relinquish control over that object so it can progress through the pipeline 17:23 < jnwhiteh> then it does the write to the writecloser, and closes it 17:23 -!- ronny [~quassel@p4FF1D8E0.dip.t-dialin.net] has joined #go-nuts 17:23 < jnwhiteh> the calling code can be altered to work with either of these, I'm just trying to gauge how painful either of these would be to work with 17:24 < skelterjohn> they both look weird 17:24 < skelterjohn> what exactly do you want? 17:24 < nsf> HelloGenerator sounds promising 17:24 < nsf> :D 17:24 < jnwhiteh> I thought I just explained that. 17:25 < nsf> nope 17:25 < skelterjohn> not really, no :) 17:25 < nsf> you've tried though 17:25 < jnwhiteh> Ah, well then. 17:25 < skelterjohn> what object does it need to own 17:25 < jnwhiteh> its tough to talk about your research when you're buried in it 17:25 -!- PortatoreSanoDiI [~Marvin@82.84.74.85] has quit [Ping timeout: 260 seconds] 17:26 < skelterjohn> be abstract 17:26 < skelterjohn> i meant what was the name of the variable, really 17:26 < jnwhiteh> conn 17:26 < jnwhiteh> its a HTTP connection that moves through the web server 17:26 < skelterjohn> and you want only one goroutine to do stuff to conn at a time? 17:27 < jnwhiteh> and a process needs to be able to alter it and then pass it onto the next process in the pipeline 17:27 < skelterjohn> ok 17:27 < skelterjohn> one thing you can do is take advantage of the sync package 17:27 < jnwhiteh> aye, I know that 17:27 < skelterjohn> it provides familiar looking mutexes 17:27 < skelterjohn> another thing you can do is have a buffered channel with a capacity of 1 17:27 < nsf> but why don't you just pass conn over some channel? 17:27 < jnwhiteh> it is being passed over a channel 17:27 < skelterjohn> and send something to it before you work on conn, and read from it when you're done 17:28 < jnwhiteh> but that relies on programmer discipline 17:28 < skelterjohn> lots of things rely on programmers not writing buggy code 17:28 < jnwhiteh> none of this is the problem I'm trying to solve, so I guess I'm just confusing things at the moment. 17:28 < skelterjohn> yeah i'm pretty confused :) 17:28 < nsf> :D 17:28 < jnwhiteh> then just ignore me =) 17:28 < jnwhiteh> I was just asking a stylistic question really 17:28 < skelterjohn> i'd like to help, if i could 17:28 < skelterjohn> i'd like to make sure your code actually does what you want 17:29 < skelterjohn> it doesn't seem like it does, with those pasties 17:29 < jnwhiteh> it does, that's just a different layer of the problem 17:29 < jnwhiteh> =) 17:29 < jnwhiteh> I'll come back when I actually have a substantial and prepared question 17:30 < skelterjohn> the first one will not observe any ownership on conn or writer at all 17:30 < skelterjohn> it will write that string at some arbitrary point in the future 17:30 < skelterjohn> perhaps never 17:30 < skelterjohn> but probably sometime 17:31 < jnwhiteh> the pasted examples were poorly constructed 17:31 < jnwhiteh> and hastily pasted 17:31 < jnwhiteh> which is a fun phrase :P 17:31 < skelterjohn> ok, then it's hard for me to give code advice about them 17:31 < jnwhiteh> I wasn't looking for code advice, just general style impressions 17:31 < jnwhiteh> on which seemed less painful to you to work with 17:32 < jnwhiteh> using the channel to say 'I'm done with the conn object' or spawning a new goroutine to do the work and returning to again indicate the same. 17:32 < nsf> but they are not :) 17:33 < jnwhiteh> ? 17:33 < nsf> in one case you spawn a new goroutine in another you don't 17:33 < skelterjohn> yeah i don't know what that last thing you said had to do with the pasted code :) 17:33 < jnwhiteh> I'm just asking for a style impression 17:33 < jnwhiteh> the code does what I said it does =) 17:33 < skelterjohn> goroutines are stylish, so are chans 17:33 < jnwhiteh> lol 17:34 < nsf> I tend to use goroutines as less as possible 17:34 < skelterjohn> chans are the preferred way to send information between goroutines 17:35 < nsf> not just send information, but transfer ownership of the objects 17:35 < skelterjohn> right 17:35 < jnwhiteh> i wish the compiler would enforce the transfer of ownership, with optional linear typing, or something similar. 17:35 < jnwhiteh> but that's another story entirely =) 17:35 < jessta> wooo, linear typing is nice 17:35 < skelterjohn> not familiar with linear typing 17:36 < jessta> I like linear typing 17:36 < jessta> skelterjohn: things go out of scope when you give them to other code 17:36 -!- carllerche [~carllerch@99.13.242.166] has joined #go-nuts 17:36 < skelterjohn> interesting 17:36 < jessta> The programminging language 'Clean' does it 17:37 -!- ender2070 [~ender2070@bas22-toronto12-2925103372.dsl.bell.ca] has joined #go-nuts 17:37 < jessta> which makes it far less confusing than haskel 17:39 < jnwhiteh> It would just help the compiler help the programmer =) 17:40 < jessta> I was making a language a while ago, and linear typing was the main thing I wanted, but with C style code 17:40 < jessta> 'clean' was way to haskelly 17:40 < jnwhiteh> skelterjohn: nsf: An HTTP Handler inspects the state of the incoming request, makes possible changes to the response and then creates an abstract representation of the content of the response. It then passes the connection on to the next HTTP Handler in the pipeline. 17:40 < Ginto8> jessta: wouldn't spawning a goroutine to send on the channel be sorta equivalent to using a channel with a buffer of size 1? 17:40 < jnwhiteh> that's the general overall game, not that it'll help you very much, but to remove a bit of the mystery :P 17:41 < skelterjohn> jnwhiteh: the writer is the way to express the abstract representation? 17:41 < vrtical> That's very interesting. I have sometimes wondered whether it was possible for memory management in a programming language to be organised purely based on scope (mooting the whole manual/garbage collected argument), does linear typing make that possible? 17:42 < jnwhiteh> yes it is, at some point in the future it will be read and the content will be processed (written to the wire) 17:42 < jessta> vrtical: yes! 17:42 < vrtical> wow. 17:42 < skelterjohn> the writing and conn modifications don't need to happen at the same time, or in the same order? 17:42 -!- Sacho [~sacho@95-42-98-182.btc-net.bg] has joined #go-nuts 17:42 < jessta> vrtical: an object has one owner, once that owner is done with it, you free it automatically 17:43 < jnwhiteh> skelterjohn: the writes to the writer MUST happen after the connection has been passed onto the next process in the pipeline. Otherwise the request being processed will deadlock 17:43 < skelterjohn> oh i see 17:43 < skelterjohn> i didn't get that before 17:43 < jnwhiteh> there's not really any way to guarantee that other than by 'convention' 17:43 < skelterjohn> now it makes sense to do that in a goroutine 17:44 < jnwhiteh> and both the channel saying 'I'm done' or spawning the goroutine and returning are ways to accomplish that. 17:44 < jessta> but if you do that use lose a lot of other useful things, like any kind of shared data structures 17:44 < skelterjohn> the first way does not ensure that 17:44 < skelterjohn> the second way does, if someone reads from the chan passed 17:45 < skelterjohn> in the first version of the function, the goroutine could execute completely before the function retursn 17:45 < jnwhiteh> they will, I control the caller 17:45 < skelterjohn> returns 17:45 < jnwhiteh> the first was just plain wrong =) 17:45 < jnwhiteh> I know the issues with it 17:45 < jnwhiteh> it wasn't thought through at all 17:47 -!- crashR [~crasher@codextreme.pck.nerim.net] has quit [Quit: (◣_◢) BigBrowser is watching ⓎⓄⓊ] 17:47 < skelterjohn> ok, then i prefer the second version =p 17:47 < jnwhiteh> the channel versus the goroutine? 17:47 < skelterjohn> the one that works vs the one that doesn't 17:48 < jnwhiteh> there are three options 17:48 < jnwhiteh> ignore the first 17:48 < jnwhiteh> the other two both work properly 17:48 < skelterjohn> oh i was discussing the first of the other two 17:48 < skelterjohn> your second paste 17:48 < skelterjohn> that goroutine may finish executing before the larger function returns 17:48 < jnwhiteh> ah 17:48 < jnwhiteh> there we go 17:49 < jnwhiteh> sorry for being dense, my approach to this conversation hasn't been very disciplined =) 17:49 < skelterjohn> that's alright, it's fun this way 17:51 -!- Sacho [~sacho@95-42-98-182.btc-net.bg] has quit [Ping timeout: 265 seconds] 17:54 -!- sioraiocht [~tomh@unaffiliated/sioraiocht] has joined #go-nuts 17:56 -!- Adys [~Adys@unaffiliated/adys] has joined #go-nuts 17:57 < jnwhiteh> skelterjohn: http://pastebin.ca/1903825 is a bit of the surrounding code. I think (beyond it being the only working one) that using the channel is much nicer since it forces synchronization. 17:58 < jnwhiteh> s/test/rest/ 17:58 < jnwhiteh> What happened to gopaste.org? 17:58 < skelterjohn> it broke my heart 17:58 < skelterjohn> and stopped working 17:58 < skelterjohn> i liked that site 17:59 < skelterjohn> you can use http://www.gosnippets.org/drafts/create/ if you create an account and sign in 17:59 < skelterjohn> which is a bit cumbersome 18:00 < jnwhiteh> and its written in Python 18:00 < jnwhiteh> for shame =) 18:00 < skelterjohn> eek 18:04 -!- Sacho [~sacho@87-126-49-175.btc-net.bg] has joined #go-nuts 18:04 < Ginto8> pastie has go highlighting iirc 18:06 < temoto> paste.ly has highlight-as-you-type 18:06 -!- Guest59659 [~quassel@p4FF1D8E0.dip.t-dialin.net] has quit [Remote host closed the connection] 18:07 -!- deso [~deso@x0561a.wh30.tu-dresden.de] has joined #go-nuts 18:09 -!- aho [~nya@fuld-4d00d2e3.pool.mediaWays.net] has quit [Quit: EXEC_over.METHOD_SUBLIMATION] 18:09 -!- Project_2501 [~Marvin@82.84.90.88] has joined #go-nuts 18:10 -!- Project_2501 [~Marvin@82.84.90.88] has quit [Read error: Connection reset by peer] 18:14 -!- carllerche [~carllerch@99.13.242.166] has quit [Quit: carllerche] 18:17 -!- lmoura [~lauromour@200.184.118.130] has quit [Ping timeout: 258 seconds] 18:17 -!- lmoura [~lauromour@200.184.118.130] has joined #go-nuts 18:23 -!- gid [~gid@220.253-225-62.VIC.netspace.net.au] has quit [Quit: brain faaaaaadeeeee] 18:24 -!- iant [~iant@81-233-149-58-no82.tbcn.telia.com] has quit [Ping timeout: 245 seconds] 18:28 -!- iant [~iant@81-233-149-58-no82.tbcn.telia.com] has joined #go-nuts 18:28 -!- mode/#go-nuts [+v iant] by ChanServ 18:31 -!- Adys [~Adys@unaffiliated/adys] has quit [Quit: I ♥ Unicode] 18:36 < plexdev> http://is.gd/dynGo by [Robert Griesemer] in go/src/pkg/tabwriter/ -- tabwriter: fix a comment to fix godoc output 18:40 -!- artefon [~thiagon@150.164.2.20] has quit [Read error: Connection reset by peer] 18:40 -!- dark [~dark@unaffiliated/eliasamaral] has quit [Ping timeout: 265 seconds] 18:42 -!- artefon [~thiagon@150.164.2.20] has joined #go-nuts 18:42 -!- Eridius [~kevin@unaffiliated/eridius] has joined #go-nuts 18:43 -!- fenicks [~christian@log77-3-82-243-254-112.fbx.proxad.net] has joined #go-nuts 18:44 < fenicks> hello 18:46 < skelterjohn> hi 18:46 -!- macroron [~ron@c-98-242-168-49.hsd1.fl.comcast.net] has quit [Quit: Leaving] 18:48 -!- path[l] [~path@120.138.102.50] has joined #go-nuts 18:50 -!- artefon [~thiagon@150.164.2.20] has quit [Ping timeout: 240 seconds] 18:55 -!- skelterjohn [~jasmuth@lawn-net168-in.rutgers.edu] has quit [Quit: skelterjohn] 19:01 -!- dark [~dark@unaffiliated/eliasamaral] has joined #go-nuts 19:08 -!- photron [~photron@port-92-201-55-53.dynamic.qsc.de] has joined #go-nuts 19:08 -!- bortzmeyer [~stephane@2a01:e35:8bd9:8bb0:a535:32f3:7fef:3d4d] has joined #go-nuts 19:13 -!- bortzmeyer [~stephane@2a01:e35:8bd9:8bb0:a535:32f3:7fef:3d4d] has quit [Quit: Leaving.] 19:17 -!- bortzmeyer [~stephane@2a01:e35:8bd9:8bb0:a535:32f3:7fef:3d4d] has joined #go-nuts 19:17 -!- bortzmeyer [~stephane@2a01:e35:8bd9:8bb0:a535:32f3:7fef:3d4d] has quit [Client Quit] 19:18 -!- bortzmeyer [~stephane@2a01:e35:8bd9:8bb0:a535:32f3:7fef:3d4d] has joined #go-nuts 19:22 -!- plainhao [~plainhao@mail.xbiotica.com] has quit [Quit: plainhao] 19:24 -!- Adys [~Adys@unaffiliated/adys] has joined #go-nuts 19:35 -!- iant [~iant@81-233-149-58-no82.tbcn.telia.com] has quit [Quit: Leaving.] 19:56 -!- turbinio [~tobias@141.76.6.35] has joined #go-nuts 19:56 -!- turbinio [~tobias@141.76.6.35] has left #go-nuts [] 19:59 -!- Davidian1024 [~Davidian1@cpe-98-27-192-193.neo.res.rr.com] has quit [Quit: leaving] 20:00 -!- Davidian1024 [~Davidian1@cpe-98-27-192-193.neo.res.rr.com] has joined #go-nuts 20:01 -!- urandom_ [~user@p548A3FF4.dip.t-dialin.net] has joined #go-nuts 20:04 -!- willdye [~willdye@zuul.dsndata.com] has joined #go-nuts 20:05 -!- skelterjohn [~jasmuth@c-76-116-182-139.hsd1.nj.comcast.net] has joined #go-nuts 20:05 -!- willdye [~willdye@zuul.dsndata.com] has left #go-nuts [] 20:07 -!- willdye [~willdye@162.40.127.30] has joined #go-nuts 20:08 -!- willdye [~willdye@162.40.127.30] has quit [Client Quit] 20:15 -!- Byron [~Byron@cpe-98-155-138-202.hawaii.res.rr.com] has joined #go-nuts 20:16 -!- Byron [~Byron@cpe-98-155-138-202.hawaii.res.rr.com] has left #go-nuts [] 20:23 -!- Davidian1024 [~Davidian1@cpe-98-27-192-193.neo.res.rr.com] has quit [Quit: leaving] 20:23 -!- Davidian1024 [~Davidian1@cpe-98-27-192-193.neo.res.rr.com] has joined #go-nuts 20:38 -!- Adys [~Adys@unaffiliated/adys] has quit [Quit: I ♥ Unicode] 20:46 -!- Fish [~Fish@9fans.fr] has quit [Remote host closed the connection] 20:49 -!- bortzmeyer [~stephane@2a01:e35:8bd9:8bb0:a535:32f3:7fef:3d4d] has quit [Quit: Leaving.] 21:10 -!- Venom_X [~pjacobs@71.21.124.111] has quit [Ping timeout: 265 seconds] 21:23 -!- belkiss [~belkiss@drn13-1-78-235-168-105.fbx.proxad.net] has joined #go-nuts 21:35 -!- ShadowIce [pyoro@unaffiliated/shadowice-x841044] has quit [Quit: Verlassend] 22:03 -!- angasule [~angasule@190.2.33.49] has joined #go-nuts 22:08 -!- rlab [~Miranda@91.200.158.34] has quit [Quit: Miranda IM! Smaller, Faster, Easier. http://miranda-im.org] 22:08 -!- deso [~deso@x0561a.wh30.tu-dresden.de] has quit [Read error: Connection reset by peer] 22:24 -!- artefon [~thiago@189.107.241.45] has joined #go-nuts 22:30 -!- awidegreen [~quassel@62.176.237.78] has quit [Remote host closed the connection] 22:52 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has joined #go-nuts 22:56 -!- belkiss [~belkiss@drn13-1-78-235-168-105.fbx.proxad.net] has quit [Quit: KVIrc Equilibrium 4.1.0, revision: 4632, sources date: 20100519, built on: 2010-07-09 07:13:47 UTC http://www.kvirc.net/] 23:11 -!- bmizerany [~bmizerany@dsl081-064-072.sfo1.dsl.speakeasy.net] has joined #go-nuts 23:11 -!- jA_cOp [~yakobu@unaffiliated/ja-cop/x-9478493] has joined #go-nuts 23:20 < plexdev> http://is.gd/dyEeD by [Ken Thompson] in go/src/cmd/gc/ -- change floating literal normalization 23:26 -!- wrtp [~rog@92.17.22.172] has quit [Quit: wrtp] 23:27 -!- yashi [~yashi@210.191.215.173] has quit [Read error: Connection reset by peer] 23:29 -!- yashi [~yashi@210.191.215.173] has joined #go-nuts 23:38 -!- KillerX [~anant@145-116-234-40.uilenstede.casema.nl] has joined #go-nuts 23:39 -!- gnuvince_ [~vince@72.0.215.203] has quit [Quit: Via SOAP! VIA SOAP!!] 23:40 -!- gnuvince [~vince@72.0.215.203] has quit [Quit: What the fruit is goin' on here!?] 23:44 -!- KillerX [~anant@145-116-234-40.uilenstede.casema.nl] has quit [Quit: Leaving.] 23:54 -!- HeckleJeckle [~hangeles@ool-44c55f66.dyn.optonline.net] has joined #go-nuts 23:56 -!- photron [~photron@port-92-201-55-53.dynamic.qsc.de] has quit [Read error: Operation timed out] 23:58 -!- HeckleJeckle [~hangeles@ool-44c55f66.dyn.optonline.net] has left #go-nuts [] --- Log closed Tue Jul 20 00:00:05 2010