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

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