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

--- Log opened Fri Mar 19 00:00:29 2010
00:01 -!- no_mind [~orion@] has joined #go-nuts
00:08 -!- nighty^ [~nighty@x122091.ppp.asahi-net.or.jp] has joined #go-nuts
00:11 < nf_> 'implode' ;)
00:11 < nf_> nasty phpism hehe
00:12 -!- bageera [~bageera@rrcs-24-173-161-170.se.biz.rr.com] has joined #go-nuts
00:15 -!- wuehlmaus [~wuehlmaus@p4FCC7E7D.dip.t-dialin.net] has quit [Ping
timeout: 276 seconds]
00:16 -!- wuehlmaus [~wuehlmaus@p4FCC7ECB.dip.t-dialin.net] has joined #go-nuts
00:19 -!- andrewh [~andrewh@94-194-56-42.zone8.bethere.co.uk] has joined #go-nuts
00:20 -!- skelterjohn [~jasmuth@c-76-124-23-95.hsd1.nj.comcast.net] has joined
00:20 -!- g0bl1n_ [~pr0kter@a213-22-69-176.cpe.netcabo.pt] has joined #go-nuts
00:20 -!- SRabbelier [~SRabbelie@ip138-114-211-87.adsl2.static.versatel.nl] has
joined #go-nuts
00:22 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has joined #go-nuts
00:34 -!- manveru1 [~manveru@b08s28ur.corenetworks.net] has left #go-nuts []
00:40 < fuzzybyte> is there like a list of wrappers for go somewhere?
00:41 < fuzzybyte> ah nvm
00:43 < uriel> fuzzybyte: http://go-lang.cat-v.org/library-bindings
00:43 -!- _Ray_ [~Fede@] has joined #go-nuts
00:43 < uriel> (this is in the process of probably moving to the new go
00:43 < _Ray_> What could I use if I was looking for arbitrary precision
00:44 -!- hcatlin [~hcatlin@pdpc/supporter/professional/hcatlin] has joined
00:44 -!- hevalbaranov [~hevalbara@] has joined #go-nuts
00:56 -!- c0nfl|ct [tiago@] has quit [Quit: Saindo]
00:56 -!- Xera` [~brit@87-194-208-246.bethere.co.uk] has quit [Quit: (
www.nnscript.com :: NoNameScript 4.21 :: www.esnation.com )]
00:59 -!- bageera [~bageera@rrcs-24-173-161-170.se.biz.rr.com] has quit [Quit:
01:00 -!- hcatlin [~hcatlin@pdpc/supporter/professional/hcatlin] has quit [Quit:
01:04 -!- hstimer [~hstimer@2002:465a:aa25:0:226:bbff:fe05:dd9b] has quit [Quit:
01:05 < d_m> _Ray_: i'm pretty sure imprecision is built into the floating
point model...  i don't think arbitrary precision numbers are represented in
floating point
01:09 -!- carllerche [~carllerch@enginey-9.border1.sfo002.pnap.net] has quit
[Quit: carllerche]
01:09 < _Ray_> Float was maybe a bad term - arbitrary precision real
numbers, in some internal representation (GMP uses strings)
01:15 < nf_> _Ray_: http://golang.org/pkg/bignum/
01:19 -!- lloyda2 [~adam@arethusa-232.dynamic2.rpi.edu] has joined #go-nuts
01:25 -!- b00m_chef__ [~watr@] has joined #go-nuts
01:25 -!- nighty^ [~nighty@x122091.ppp.asahi-net.or.jp] has quit [Quit: Disappears
in a puff of smoke]
01:36 -!- nighty^ [~nighty@x122091.ppp.asahi-net.or.jp] has joined #go-nuts
01:39 < _Ray_> Says it'll become deprecated, but alright :)
01:40 < uriel> _Ray_: it says that it *may* be deprecated, not that it
*will* be deprecated
01:51 -!- noldsel [1000@] has joined #go-nuts
02:07 -!- skelterjohn [~jasmuth@c-76-124-23-95.hsd1.nj.comcast.net] has quit [Ping
timeout: 260 seconds]
02:14 -!- brx [~brx@p5796FF55.dip.t-dialin.net] has quit [Ping timeout: 246
02:16 -!- brx [~brx@p5796FE98.dip.t-dialin.net] has joined #go-nuts
02:20 -!- hstimer [~hstimer@c-98-234-25-125.hsd1.ca.comcast.net] has joined
02:23 -!- nf_ [~nf@124-168-151-48.dyn.iinet.net.au] has quit [Remote host closed
the connection]
02:23 -!- nf [~nf@124-171-23-50.dyn.iinet.net.au] has joined #go-nuts
02:23 -!- arun_ [~arun@unaffiliated/sindian] has quit [Ping timeout: 246 seconds]
02:28 -!- g0bl1n_ [~pr0kter@a213-22-69-176.cpe.netcabo.pt] has quit [Ping timeout:
248 seconds]
02:36 -!- lloyda2 [~adam@arethusa-232.dynamic2.rpi.edu] has quit [Quit: ""]
02:39 -!- arun_ [~arun@unaffiliated/sindian] has joined #go-nuts
02:45 -!- boscop [~boscop@f055062137.adsl.alicedsl.de] has joined #go-nuts
02:45 < boscop> hi
02:51 -!- andrewh [~andrewh@94-194-56-42.zone8.bethere.co.uk] has quit [Ping
timeout: 265 seconds]
03:00 -!- brx [~brx@p5796FE98.dip.t-dialin.net] has quit [Ping timeout: 264
03:03 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has quit [Quit:
This computer has gone to sleep]
03:03 -!- rhelmer_ [~rhelmer@adsl-69-107-95-216.dsl.pltn13.pacbell.net] has quit
[Quit: rhelmer_]
03:07 -!- rhelmer [~rhelmer@adsl-69-107-95-216.dsl.pltn13.pacbell.net] has joined
03:07 -!- skelterjohn [~jasmuth@c-76-124-23-95.hsd1.nj.comcast.net] has joined
03:10 -!- yashi [~yashi@dns1.atmark-techno.com] has quit [Read error: Connection
reset by peer]
03:10 -!- rhelmer [~rhelmer@adsl-69-107-95-216.dsl.pltn13.pacbell.net] has quit
[Client Quit]
03:13 -!- yatoo [~marcus@host86-156-158-64.range86-156.btcentralplus.com] has quit
[Ping timeout: 258 seconds]
03:13 -!- nf [~nf@124-171-23-50.dyn.iinet.net.au] has quit [Read error: Connection
reset by peer]
03:13 -!- nf [~nf@124-171-32-30.dyn.iinet.net.au] has joined #go-nuts
03:15 -!- _Ray_ [~Fede@] has quit [Quit: Leaving]
03:17 -!- kmeyer [~konrad@homer23.u.washington.edu] has joined #go-nuts
03:17 -!- kmeyer [~konrad@homer23.u.washington.edu] has quit [Changing host]
03:17 -!- kmeyer [~konrad@fedora/kmeyer] has joined #go-nuts
03:39 < yebyen> hello everybody
03:39 < yebyen> can someone tell me how to print a type's string?
03:43 < yebyen> name of the type as a string
03:43 < yebyen> or otherwise how to inspect it
03:44 < exch> a := 123; fmt.Printf("%T", a); => "int"
03:44 < yebyen> oh
03:44 < yebyen> nice
03:44 < yebyen> %T
03:44 -!- rhelmer [~rhelmer@adsl-69-107-95-216.dsl.pltn13.pacbell.net] has joined
03:44 < exch> there's also %v, %+v and %#v
03:45 < exch> useful to print contents of structures with field names
03:45 < yebyen> here i've got some *os.Dir and *os.PathError
03:45 < yebyen> cool
03:46 -!- yashi [~yashi@dns1.atmark-techno.com] has joined #go-nuts
03:54 < yebyen> and apparently nil does not have a type, or you ought to
check for nil before you print %T
03:55 < yebyen> heh
03:55 -!- rhelmer [~rhelmer@adsl-69-107-95-216.dsl.pltn13.pacbell.net] has quit
[Quit: rhelmer]
03:56 -!- carllerche [~carllerch@] has joined #go-nuts
04:09 -!- b00m_chef__ [~watr@] has quit [Ping timeout: 240 seconds]
04:12 -!- noldsel [1000@] has quit [Remote host closed the connection]
04:14 -!- skelterjohn [~jasmuth@c-76-124-23-95.hsd1.nj.comcast.net] has quit [Ping
timeout: 258 seconds]
04:18 -!- skelterjohn [~jasmuth@c-76-124-23-95.hsd1.nj.comcast.net] has joined
04:23 -!- kssreeram [~kssreeram@] has quit [Quit: kssreeram]
04:32 -!- hevalbaranov [~hevalbara@] has quit [Ping timeout: 240
04:35 -!- hevalbaranov [~hevalbara@] has joined #go-nuts
04:43 -!- skelterjohn [~jasmuth@c-76-124-23-95.hsd1.nj.comcast.net] has quit [Ping
timeout: 258 seconds]
04:44 -!- carllerche [~carllerch@] has quit [Quit: carllerche]
04:46 -!- skelterjohn [~jasmuth@c-76-124-23-95.hsd1.nj.comcast.net] has joined
04:49 -!- robot12 [~robot12@szhilkin.broker.freenet6.net] has joined #go-nuts
04:58 -!- skelterjohn [~jasmuth@c-76-124-23-95.hsd1.nj.comcast.net] has quit [Ping
timeout: 256 seconds]
04:58 -!- hevalbaranov [~hevalbara@] has quit [Quit: WeeChat]
05:03 -!- robot12 [~robot12@szhilkin.broker.freenet6.net] has quit [Remote host
closed the connection]
05:04 -!- smw [~stephen@pool-96-232-88-231.nycmny.fios.verizon.net] has quit [Ping
timeout: 245 seconds]
05:40 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Ping timeout: 276
05:45 -!- araujo [~araujo@gentoo/developer/araujo] has joined #go-nuts
06:00 -!- robot12 [~robot12@szhilkin.broker.freenet6.net] has joined #go-nuts
06:13 -!- arun_ [~arun@unaffiliated/sindian] has quit [Ping timeout: 264 seconds]
06:20 -!- no_mind [~orion@] has quit [Read error: Operation timed
06:31 -!- TMKCodes [~toni@bbwirelessgw2-fee1dc00-62.dhcp.inet.fi] has quit [Ping
timeout: 256 seconds]
06:33 -!- no_mind [~orion@] has joined #go-nuts
06:33 -!- arun_ [~arun@unaffiliated/sindian] has joined #go-nuts
06:59 -!- path[l] [UPP@] has joined #go-nuts
07:24 -!- arun_ [~arun@unaffiliated/sindian] has quit [Ping timeout: 276 seconds]
07:25 -!- m1ndwarp [~m1ndwarp@65-121.eduroam.RWTH-Aachen.DE] has joined #go-nuts
07:26 -!- bortzmeyer [~bortzmeye@batilda.nic.fr] has joined #go-nuts
07:29 -!- trickie [~trickie@] has joined #go-nuts
07:42 -!- arun_ [~arun@unaffiliated/sindian] has joined #go-nuts
07:45 -!- ShadowIce [pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts
07:51 -!- arun_ [~arun@unaffiliated/sindian] has quit [Ping timeout: 258 seconds]
07:51 -!- path[l] [UPP@] has quit [Quit: path[l]]
07:55 -!- rid1 [~rid1@] has joined #go-nuts
07:58 -!- jajamana [~jcb@cm-] has joined #go-nuts
08:00 -!- jajamana [~jcb@cm-] has quit [Client Quit]
08:02 -!- rid1 [~rid1@] has left #go-nuts []
08:05 -!- Wiz126 [Wiz126@] has joined #go-nuts
08:05 -!- ashaw [~alexis@] has joined #go-nuts
08:05 < ashaw> hello.
08:05 < ashaw> anyone here?
08:05 < m1ndwarp> hi
08:05 < ashaw> does anyone know if there if a way to do FMA in go?
08:06 < m1ndwarp> whats fma?
08:06 < m1ndwarp> wikipedia tells me a lot of things that could be meant by
fma :)
08:06 < ashaw> specificaly to get a+b=y*y all float64s
08:07 < ashaw> fused multiply add
08:08 -!- ikaros [~ikaros@f050225172.adsl.alicedsl.de] has joined #go-nuts
08:09 < m1ndwarp> erm...  so fma is a thing that your machine should do like
multiply accumulate?
08:09 < m1ndwarp> and compiler should see the chance to use it and put it in
the assembly code?
08:10 < ashaw> yes but in this code it is different to mul + add
08:11 < ashaw> you can emulate it but it is about 20 times slower.
08:12 < m1ndwarp> mh...  did you grep the library for fma?
08:12 < JBeshir> ashaw: I believe you should just write it out and if it is
available, the compiler should use it.
08:13 < ashaw> how do you do that?
08:13 < ashaw> as I said it is not the same as a mul plus an add in this
08:13 < m1ndwarp> I think so too, that should just be a job for the
codeselection phase of compiler backend
08:14 < ashaw> yes, but what i want to know is how to write code such that
that may be possible in the future.
08:16 < m1ndwarp> mh...  a compiler usually builds a syntax tree and should
be able to see in codeselection that the fma or whatever machine instruction can
do a part of this tree very effectively
08:16 < m1ndwarp> so you shouldn't have to care about it
08:18 < m1ndwarp> of course it's good to analyze, what assembly code a
compiler generates from which high level code to be able to write the code that
performs best on the target machine
08:18 < JBeshir> ashaw: How is it different to a multiply + padd in this
08:19 < m1ndwarp>
08:19 < JBeshir> Reading that.
08:19 < JBeshir> How is it different for you?
08:19 < m1ndwarp> just a question of floating point stuff - where the
floating points values get normalized, etc...
08:20 < JBeshir> That could be a difference, but only if Go makes guarantees
about when rounding occurs.
08:20 < m1ndwarp> seems to be about precision and reducing the error
08:20 -!- mattikus [~mattikus@ip68-227-143-68.br.br.cox.net] has joined #go-nuts
08:20 < ashaw> as I said i want a+b = x*y
08:21 < ashaw> the equals is the importaint thing.
08:21 < m1ndwarp> ashaw: which of those are parameter and result?
08:21 < JBeshir> I'm not sure how that can work.
08:21 < ashaw> x, y are inputs
08:21 < JBeshir> It's...  not an instruction.
08:21 < ashaw> no but you can get this by doing
08:21 < m1ndwarp> so, result is any pair of a and b that matches the
08:22 < ashaw> no, b
08:22 < m1ndwarp> so a is input too
08:22 < ashaw> b<= 0.5 lsb(a)
08:22 < ashaw> no
08:22 < m1ndwarp> aaah, I understand
08:22 < ashaw> the code with a FMA is
08:22 < m1ndwarp> b is kind of an errorterm?
08:22 < ashaw> a=x*y
08:22 < ashaw> b=x*y-a
08:23 < ashaw> with a FMS
08:23 < m1ndwarp> ok
08:23 < JBeshir> If FMS exists, then you'd just write it like that, and the
compiler would compile "x*y-a" into it when available.
08:23 < m1ndwarp> that really sounds like you need an optimized library to
do this in one instruction
08:24 < JBeshir> If it didn't, you'd make it work in the compiler.
08:24 < ashaw> no, I NEED that garantee.
08:24 < ashaw> I can get it without it but it is vastly different code.
08:25 < m1ndwarp> mh...  I think go is too experimental to give real
08:25 -!- General1337 [~support@71-84-246-14.dhcp.gldl.ca.charter.com] has joined
08:25 < JBeshir> Does Go give guarantees about rounding in general?
08:25 < JBeshir> IRT "when it happens"?
08:26 -!- wrtp [~rog@] has joined #go-nuts
08:26 -!- arun_ [~arun@unaffiliated/sindian] has joined #go-nuts
08:26 < JBeshir> A big fun thing in C was floating points not equaling
identical floating points because the processor was allowed to store more
precision in registers, or something, I thought.
08:26 < ashaw> IEEE-754 arithmetic is garanteed.
08:28 < JBeshir> Sounds like you might need a library, then, since it'd have
to implement another way to do it when the FMA instruction wasn't available.
08:28 -!- yatoo [~marcus@host86-156-158-64.range86-156.btcentralplus.com] has
joined #go-nuts
08:28 < ashaw> question where is the go pastebin
08:28 < guaqua> one hasn't been written in go?
08:29 < guaqua> are there even any bots here?
08:29 < JBeshir> ashaw: "When converting a number to a floating-point or
complex type, the result value is rounded to the precision specified by the
destination type.  For instance, the value of a variable x of type float32 may be
stored using additional precision beyond that of an IEEE-754 32-bit number"
08:29 -!- General13372 [~support@71-84-246-14.dhcp.gldl.ca.charter.com] has quit
[Ping timeout: 276 seconds]
08:29 < JBeshir> (But float32(x) rounds it to normal size, is how that ends)
08:29 < ashaw> ah.
08:30 < ashaw> I did ask this question on the mailing list and was told that
arithmatic was performed in float64 precision for float64 variables
08:32 -!- kaigan|work
[~kaigan@c-8290e255.1411-10-64736c14.cust.bredbandsbolaget.se] has joined #go-nuts
08:32 < ashaw> the code that i have to do this is the following currently
08:32 < ashaw> Procedure for Multiplying two double precision floating point
08:32 < ashaw> numbers giving a Double-Double result
08:32 < ashaw> Arguments: Two double numbers, u and v
08:32 < ashaw> Results: a double double number rh, rl
08:32 < ashaw> Preconditions: u < 2^970
08:32 < ashaw> v < 2^970
08:32 < ashaw> Guarantees: rh = o(u * v)
08:32 < ashaw> rl = (u * v) - rh
08:32 < ashaw> rh + rl = u * v
08:32 < ashaw> |rl|≤ 2^(-53)*|rh|
08:32 < ashaw> */
08:32 < ashaw> func Mul12(u float64, v float64) (rh float64, rl float64) {
08:32 < ashaw> const c = 134217729.  // 1+2^27
08:32 < ashaw> var up, u1, u2, vp, v1, v2 float64
08:32 < ashaw> up = u * c
08:32 < ashaw> vp = v * c
08:33 < ashaw> u1 = (u - up) + up
08:33 < ashaw> v1 = (v - vp) + vp
08:33 < ashaw> u2 = u - u1
08:33 < ashaw> v2 = v - v1
08:33 < ashaw> rh = u * v
08:33 < ashaw> rl = (((u1*v1 - rh) + (u1 * v2)) + (u2 * v1)) + (u2 * v2)
08:33 < ashaw> return
08:33 < ashaw> }
08:34 -!- path[l] [~path@] has joined #go-nuts
08:35 < ashaw> any responce?
08:39 -!- ct529 [~quassel@77-44-78-159.xdsl.murphx.net] has joined #go-nuts
08:40 -!- nf_ [~nf@124-171-242-24.dyn.iinet.net.au] has joined #go-nuts
08:40 -!- nf [~nf@124-171-32-30.dyn.iinet.net.au] has quit [Ping timeout: 276
08:43 < ashaw> also how does one access the inexact flag?
08:46 -!- nf_ [~nf@124-171-242-24.dyn.iinet.net.au] has quit [Ping timeout: 240
08:48 -!- nf [~nf@124-168-145-44.dyn.iinet.net.au] has joined #go-nuts
08:51 -!- mattikus [~mattikus@ip68-227-143-68.br.br.cox.net] has quit [Quit:
09:24 -!- c0nfl|ct [~tiago@] has joined #go-nuts
09:25 -!- hcatlin [~hcatlin@pdpc/supporter/professional/hcatlin] has joined
09:43 -!- cchengz [~Changchen@] has joined #go-nuts
09:43 -!- cchengz [~Changchen@] has left #go-nuts []
09:47 -!- path[l] [~path@] has quit [Quit: path[l]]
09:48 -!- path[l] [~path@] has joined #go-nuts
09:49 -!- andrewh [~andrewh@94-194-56-42.zone8.bethere.co.uk] has joined #go-nuts
10:01 -!- viirya [~viirya@cml506-25.csie.ntu.edu.tw] has quit [Remote host closed
the connection]
10:07 -!- ahihi_ [~generic@cs27127176.pp.htv.fi] has left #go-nuts []
10:07 -!- andrewh [~andrewh@94-194-56-42.zone8.bethere.co.uk] has quit [Ping
timeout: 260 seconds]
10:07 -!- path[l] [~path@] has quit [Remote host closed the
10:07 -!- path[l] [~path@] has joined #go-nuts
10:08 -!- ahihi [~generic@cs27127176.pp.htv.fi] has joined #go-nuts
10:10 -!- dilenger [~dilenger@124-170-167-48.dyn.iinet.net.au] has joined #go-nuts
10:11 -!- k4jd095b_ [~k4jd095b@] has quit [Read error: Connection
reset by peer]
10:12 -!- k4jd095b_ [~k4jd095b@] has joined #go-nuts
10:16 -!- dilenger [~dilenger@124-170-167-48.dyn.iinet.net.au] has quit [Remote
host closed the connection]
10:17 -!- dilenger [~dilenger@124-170-167-48.dyn.iinet.net.au] has joined #go-nuts
10:20 -!- andrewh [~andrewh@] has joined #go-nuts
10:23 -!- tibshoot [~tibshoot@linagora-230-146.pr0.nerim.net] has joined #go-nuts
10:28 -!- TMKCodes [~toni@88-148-243-167.bb.dnainternet.fi] has joined #go-nuts
10:40 -!- KnightMage [~jon@host86-146-113-221.range86-146.btcentralplus.com] has
joined #go-nuts
10:40 -!- m1ndwarp [~m1ndwarp@65-121.eduroam.RWTH-Aachen.DE] has quit [Quit:
10:49 -!- ahihi [~generic@cs27127176.pp.htv.fi] has quit [Remote host closed the
10:50 -!- ashaw [~alexis@] has quit [Ping timeout: 245 seconds]
10:51 -!- ikaros [~ikaros@f050225172.adsl.alicedsl.de] has quit [Quit: Leave the
magic to Houdini]
10:51 -!- TR2N [email@89-180-137-56.net.novis.pt] has quit [Ping timeout: 246
10:51 -!- TMKCodes [~toni@88-148-243-167.bb.dnainternet.fi] has quit [Ping
timeout: 248 seconds]
10:54 -!- TR2N` [email@89-180-228-111.net.novis.pt] has joined #go-nuts
10:59 -!- TMKCodes [~toni@88-148-243-167.bb.dnainternet.fi] has joined #go-nuts
11:03 -!- ahihi [~generic@cs27127176.pp.htv.fi] has joined #go-nuts
11:04 -!- nf [~nf@124-168-145-44.dyn.iinet.net.au] has quit [Quit: received
11:04 -!- nf [~nf@124-168-145-44.dyn.iinet.net.au] has joined #go-nuts
11:12 -!- TMKCodes [~toni@88-148-243-167.bb.dnainternet.fi] has quit [Ping
timeout: 240 seconds]
11:15 -!- ni|_ [~james@dontpanic.union.edu] has joined #go-nuts
11:15 -!- irc [~irc@] has joined #go-nuts
11:15 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has quit [Quit: WeeChat]
11:17 -!- ct529_ [~quassel@77-44-78-159.xdsl.murphx.net] has joined #go-nuts
11:18 -!- exch_ [~nuada@h144170.upc-h.chello.nl] has joined #go-nuts
11:19 -!- andrewh [~andrewh@] has quit [Ping timeout: 260 seconds]
11:19 -!- rup_ [Rupert@deathcoil.net] has joined #go-nuts
11:19 -!- mtd_ [~martin@ops-13.xades.com] has joined #go-nuts
11:19 -!- JoLeClodo2 [~JoLeClodo@vian.wallinfire.net] has joined #go-nuts
11:19 -!- zeroXten_ [~zeroXten@0x10.co.uk] has joined #go-nuts
11:21 -!- TR2N [email@89-180-228-111.net.novis.pt] has quit [Ping timeout: 245
11:21 -!- exch_ [~nuada@h144170.upc-h.chello.nl] has quit [Client Quit]
11:23 -!- kaigan|work_
[~kaigan@c-8290e255.1411-10-64736c14.cust.bredbandsbolaget.se] has joined #go-nuts
11:23 -!- Netsplit *.net <-> *.split quits: homa_rano, ct529, kaigan|work,
Guest10136, exch, samferry, robot12, +iant, KirkMcDonald, SRabbelier, (+7 more,
use /NETSPLIT to show all of them)
11:23 -!- path[l]_ [~path@] has joined #go-nuts
11:26 -!- path[l] [~path@] has quit [Ping timeout: 265 seconds]
11:27 -!- homa_rano [~erice@LAPDANCE.MIT.EDU] has joined #go-nuts
11:27 -!- arun_ [~arun@unaffiliated/sindian] has quit [Ping timeout: 260 seconds]
11:28 -!- KirkMcDonald [~Kirk@pysoy/developer/KirkMcDonald] has joined #go-nuts
11:28 -!- iant [~iant@adsl-71-133-8-30.dsl.pltn13.pacbell.net] has joined #go-nuts
11:28 -!- mode/#go-nuts [+v iant] by ChanServ
11:28 -!- samferry [sam@invidia.samferry.net] has joined #go-nuts
11:28 -!- jessta [~jessta@li7-205.members.linode.com] has joined #go-nuts
11:28 -!- robot12 [~robot12@szhilkin.broker.freenet6.net] has joined #go-nuts
11:30 -!- dizm [~dizm@] has joined #go-nuts
11:31 -!- c0nfl|ct [~tiago@] has quit [Ping timeout: 240 seconds]
11:31 -!- fusion44 [~quassel@p5B28488F.dip.t-dialin.net] has joined #go-nuts
11:33 -!- arun__ [~arun@212-123-133-164.ip.telfort.nl] has joined #go-nuts
11:34 -!- smw [~stephen@pool-96-232-88-231.nycmny.fios.verizon.net] has joined
11:34 -!- m1ndwarp [~m1ndwarp@65-121.eduroam.RWTH-Aachen.DE] has joined #go-nuts
11:34 -!- dilenger [~dilenger@124-170-167-48.dyn.iinet.net.au] has quit [Quit:
11:36 -!- awidegreen_ [~quassel@p5B061E1C.dip.t-dialin.net] has joined #go-nuts
11:38 -!- awidegreen [~quassel@p5B061F8D.dip.t-dialin.net] has quit [Ping timeout:
252 seconds]
11:39 -!- fwiffo [~fwiffo@unaffiliated/fwiffo] has joined #go-nuts
11:43 -!- ukai [~ukai@] has joined #go-nuts
11:46 -!- ahihi [~generic@cs27127176.pp.htv.fi] has quit [Quit: Lost terminal]
11:56 -!- path[l] [~path@] has quit [Read error: Connection reset by
12:04 -!- path[l] [~path@] has joined #go-nuts
12:06 -!- afurlan [~afurlan@scorpion.mps.com.br] has joined #go-nuts
12:10 -!- fusion44 [~quassel@p5B28488F.dip.t-dialin.net] has quit [Remote host
closed the connection]
12:10 -!- path[l] [~path@] has quit [Quit: path[l]]
12:28 -!- ashaw [~alexis@] has joined #go-nuts
12:34 -!- awidegreen_ [~quassel@p5B061E1C.dip.t-dialin.net] has quit [Remote host
closed the connection]
12:39 -!- cchengz [~Changchen@] has joined #go-nuts
12:39 -!- cchengz [~Changchen@] has left #go-nuts []
12:44 -!- arun__ [~arun@212-123-133-164.ip.telfort.nl] has quit [Ping timeout: 256
12:46 -!- exch [~nuada@h144170.upc-h.chello.nl] has joined #go-nuts
12:46 -!- ahihi [~generic@cs27127176.pp.htv.fi] has joined #go-nuts
12:59 -!- ashaw [~alexis@] has quit [Ping timeout: 264 seconds]
13:00 -!- OpenSpace [~ja@] has quit [Ping timeout: 265 seconds]
13:04 -!- nanoo [~nano@95-89-189-46-dynip.superkabel.de] has joined #go-nuts
13:05 -!- nf [~nf@124-168-145-44.dyn.iinet.net.au] has quit [Remote host closed
the connection]
13:05 -!- nf [~nf@124-171-31-181.dyn.iinet.net.au] has joined #go-nuts
13:06 -!- meanburrito920_ [~john@unaffiliated/meanburrito920] has quit [Ping
timeout: 276 seconds]
13:08 < KnightMage> I've seen the videos and Go looks very promising.  One
question though, what's wrong with D Programming Language?  It has garbage
collection and a lot of features.
13:09 < KnightMage> By D, I mean this language:
13:10 < m1ndwarp> KnightMage: does it also support multithreading, closures,
shared memory and messagepassing?
13:10 < JBeshir> Is it also simple?
13:11 < JBeshir> I think D shares the "Static, compiled, high performance"
goals, but makes a lot of different design decisions.
13:11 < KnightMage> m1ndwarp, It does have multithreading, but I have looked
at multithreading aspects of it very much.
13:12 < exch> there's bound to be a lot of languages out there that share a
lot of functionality with Go, but i'm guessing each of them missed something vital
enough to warrent the creation of a new one
13:12 < JBeshir> Goroutines are not quite multithreading.
13:12 -!- souffledev [~soufflede@110-174-144-249.static.tpgi.com.au] has joined
13:13 < m1ndwarp> JBeshir: I'd call it asynchronous multithreading
13:13 < KnightMage> JBeshir, yeah, I am still reading up on goroutins.  I
need to understand them better in order to make comparisons.  :)
13:13 < JBeshir> m1ndwarp: What's asynchronous as opposed to?
13:14 -!- chickamade [~chickamad@] has joined #go-nuts
13:14 -!- OpenSpace [~ja@] has joined #go-nuts
13:15 < m1ndwarp> JBeshir: I mean the concept behind blocks & libdispatch...
like using closures (coroutines) and dispatching them to free threads
13:15 < m1ndwarp> from code that nearly looks like the one which would do
this stuff without parallelism
13:15 < KnightMage> exch, yeah.  D was started sometime in 2000, so it's
fairly new and I was curious as to what it lacked that warrented the need for Go.
I was curious about the differences between the two.
13:15 < m1ndwarp> it's not all about multithreading in one program but about
distribution and performance in multi-job scenarios
13:16 < exch> I've never used D, so I can't really answer that
13:16 < KnightMage> D is really the only new language that I know of that
compiles to binary code rather than needed a VM like C# and Java.
13:16 <+iant> I don't know D all that well, but it seems to take a quite
different approach from Go
13:16 < JBeshir> KnightMage: At a quick look, Go explicitly has decided that
function overloading, metaprogramming, resizable arrays, object orientation,
operator overloading, are bad things.
13:16 <+iant> D is sort of like a fixed C++
13:17 <+iant> Go started from scratch, threw out every feature, and only put
in what seemed necessary
13:17 <+iant> D is a much bigger language than Go
13:17 < m1ndwarp> to me go seems more like a programming language for
smaller, but very performing applications/servers
13:18 < KnightMage> m1ndwarp, then what are multithreads in one app still
called goroutines?
13:18 < taruti> is there any reason go type system was made so primitive?
13:18 < JBeshir> taruti: Deliberate simplicity.
13:18 < m1ndwarp> not like big languages offering the features JBeshir
13:18 < guaqua> KnightMage: goroutines are not threads
13:18 < m1ndwarp> KnightMage: as guaqua just said :)
13:18 < m1ndwarp> goroutines are closures which are executed by threads
13:18 < KnightMage> iant, I see your point.  D started out with C as a base
and then fixed what was wrong with C.
13:18 < guaqua> they are something like processes in erlang
13:18 < JBeshir> taruti: No time spent creating, defining, and, inevitably,
redefining over and over, object hierarchies
13:18 < KnightMage> ahhhh.
13:19 < JBeshir> m1ndwarp: Goroutines are functions executed by threads.
13:19 < JBeshir> Not just closures.
13:19 < KnightMage> Sorry, I am still in C++ mode with threads and mutexes
and all those fun things.  :)
13:19 < JBeshir> Pretty sure "go func(x)" does not behave like a closure.
13:19 < taruti> JBeshir: I'm not meaning object hierarchies, but coming from
a statically typed fp background go type system looks quite oversimplified.
13:19 < m1ndwarp> JBeshir: ok, right, but they are allowed to be closures
(closures are special functions)
13:20 < JBeshir> m1ndwarp: Right; through closures being a subset of
13:21 < KnightMage> So, then goroutines are very more powerful since they
are a function executed in a thread that is is taken care of for you rather than
manually se?tting up the thread and giving it something to do like in C++, ie more
room for errors in the C++ way
13:21 -!- dilenger [~dilenger@124-171-12-229.dyn.iinet.net.au] has joined #go-nuts
13:21 < JBeshir> KnightMage: No.
13:21 < KnightMage> ah
13:21 < JBeshir> Goroutines are more powerful because they *aren't* threads.
13:22 < JBeshir> They're very very lightweight, as well as being easy.
13:22 < m1ndwarp> it costs very few to change context between goroutines
13:22 < guaqua> powerful in this case is hard to define
13:22 < KnightMage> Ahha.
13:22 < JBeshir> The only real cost for each is the stack, and because Go
uses segmented stacks, I think that gives each goroutine about 4KB memory cost.
13:22 < guaqua> but they are a whole lot simpler
13:22 < JBeshir> They're handled as coroutines, multiplexed across a
configurable number of OS threads
13:23 < JBeshir> With a new thread automatically created and the goroutine
pushed onto it when one needs to block.
13:23 < dagle> goroutines can be seens as threads to, depending what you
call threads.
13:23 < m1ndwarp> dagle: of course a question of definition :)
13:24 -!- iant [~iant@adsl-71-133-8-30.dsl.pltn13.pacbell.net] has quit [Ping
timeout: 256 seconds]
13:24 < JBeshir> Due to the low cost, you can use them as a means to achieve
threading very easily by breaking problems up across a number of goroutines
suiting the problem; most notably for me, you can use them to do all I/O
13:24 < JBeshir> Without the massive massive overhead of having a thread per
connection or similar.
13:24 < KnightMage> Hmmm.  I like that it's a very small amount of cost.  It
seems like a lot of languages are under the impression that since there is more
ram in today's system, let's use, which makes the program slow.  <_<
13:24 < JBeshir> Yeah, I hate that too.
13:25 < taruti> to be fair "threads" in many languages are implemented like
go go-routines.
13:25 < vegai> taruti: oh, hi.
13:25 * m1ndwarp thinks so too
13:25 < taruti> vegai: hello
13:25 < KnightMage> So, programs today just run slowly even on todays
systems.  I can understand why Go is perfect for servers now.  Less memory means
more users can connect and have a fast session.
13:25 < vegai> except that most other languages don't multiplex to actual os
13:26 -!- Fraeon [~kzer-za@e212-246-65-153.elisa-laajakaista.fi] has joined
13:26 < m1ndwarp> KnightMage: and you can make a goroutine answering every
13:26 < m1ndwarp> which doesn't cost much
13:26 < taruti> vegai: e.g.  GHC (haskell) and Erlang do that.
13:26 < vegai> taruti: true, they do.
13:26 < JBeshir> Yeah, I don't think anyone claimed it was a unique feature.
13:26 < JBeshir> <distracted>You know what would be really cool?
13:27 < vegai> although ghc (at least 6.10) had some quite rough costs when
building with -threaded
13:27 < JBeshir> If Go's compiler looked at the function called when
starting a goroutine
13:27 < vegai> memory consumption explodes etc...
13:27 < JBeshir> And if it made no other function calls, arranged for it to
be allocated only the stack it needs for that function.
13:27 < taruti> vegai: memory consumption exploding sounds like a bug.
13:27 < KnightMage> Which is another huge advantage.  The differences are
becoming very clear now.  :) Thanks for answering my questions all.
13:28 < taruti> resource limited go-routines with an error handling
mechanism would be a very cool addition to the language.
13:28 < JBeshir> KnightMage: My personal view is that Go focuses on
simplicity, ease of writing, ease of reading code and being sure it is safe, and
ease of maintenance.
13:28 < vegai> taruti: I mean, the cost of each thread is much higher.  You
could call it a performance bug
13:28 < KnightMage> vegai, I believe that.
http://shootout.alioth.debian.org/ Shows how much it explodes.  :P They even have
Go code put to the speed test.  Nice benchmark for languages.
13:28 < m1ndwarp> JBeshir: I think it took care of making an abstraction for
the right set of features
13:28 < m1ndwarp> I love the channel model
13:29 < JBeshir> KnightMage: And decides that OO has an unacceptable
13:29 < m1ndwarp> and closures are really useful sometimes instread of
designing objects
13:29 < JBeshir> As well as taking a pragmatic and sensible approach to
executing fast as opposed to the "throw it all in a blender" approach to
implmenting features in most languages.
13:29 < KnightMage> JBeshir, I think Go code is very easy to read.  Normally
I find other's code hard to read, but I can follow all Go code that I have seen so
far, I went through the source of Go to get a better understanding of it.
13:29 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has joined
13:30 < JBeshir> KnightMage: That's awesome.
13:30 < JBeshir> My experience was that I flailed around a bit as normal in
a new language, a little "WTF is this", then realised I'd hit bottom and there was
actually no more complexity or dark corners to learn.
13:30 < taruti> KnightMage: for some hard to read code look at e.g.  gob
13:30 < JBeshir> I personally like it a lot, mildly annoyed I've not had an
opportunity to use it for anything substantial yet.
13:31 < KnightMage> JBeshir, that just shows that that part of developing Go
was a success!  C++, Java, and Perl can be so difficult to read when you look at
other's code.
13:31 < m1ndwarp> KnightMage: the thing about no pointer arithmetic is also
very good for code-readability
13:32 < m1ndwarp> besides the fact that it makes the result more safe :)
13:32 < KnightMage> taruti, I have my fair share of bad code trying to fix
other people's blunders.  It takes hours to trace their code sometimes.
13:32 < JBeshir> KnightMage: I find simplicity (the balance between it and
features seems like elegance would be a better term, because an overly simple
language does lead to evil constructs) makes things much more readable, as well as
their decision to omit various features.
13:32 -!- chickamade [~chickamad@] has quit [Quit: Leaving]
13:32 < JBeshir> Perhaps it'd be better if some of the deliberately
considered and denied things has "Does not have X" listed as a feature.  :P
13:33 < KnightMage> m1ndwarp, I can read some pointer arithmatic, but
sometimes it does get a bit out of hand and over used in places where it's not
needed, and it's like WTF, why is it used there?
13:33 < taruti> pointer arithmetic is not typically quite readable.
concurrency related things when not documented can be very bad.
13:33 < m1ndwarp> KnightMage: sometimes it made sense to fasten the code,
but compilers can do even better nowadays :)
13:34 -!- arun_ [~arun@unaffiliated/sindian] has joined #go-nuts
13:34 < taruti> "is this locking discipline really safe against various
kinds of issues"
13:34 < KnightMage> JBeshir, you are right there.  In the hour long
presentation on Go on Youtube, they show an example with foo.foo some variablbe
.....  when in Go, it was really short and nice.  :)
13:35 < KnightMage> m1ndwarp, true.  I guess people get in a certain way
writing because of the way compilers use to be and haven't changed their style
when better compilers have come out.
13:36 < m1ndwarp> although it's still useful to know what assembly code
compilers create, I think
13:36 < m1ndwarp> just to be able to work with the compiler, not against it
13:37 -!- tibshoot_ [~tibshoot@linagora-230-146.pr0.nerim.net] has joined #go-nuts
13:37 -!- tibshoot [~tibshoot@linagora-230-146.pr0.nerim.net] has quit [Quit:
13:38 < KnightMage> taruti, I read code and form the image in my head of
what it's doing, so I can follow pointer arithmatic, but I don't like it.  It uses
a lot of brain power to follow it and keep it strait.
13:38 < taruti> KnightMage: true.  but it is usually quite localized.
13:39 -!- ShadowIce` [pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts
13:39 -!- michael| [~maikeru@unaffiliated/maikeru/x-7708887] has quit [Read error:
Operation timed out]
13:39 < KnightMage> m1ndwarp, I agree with that.  I was having that
discussion with someone about that the other day.  The conclusion was that it's
still good to know how to do assembly and all the stuff that libraries do for us
so that knowledge is not lost.
13:40 -!- ShadowIce [pyoro@unaffiliated/shadowice-x841044] has quit [Ping timeout:
269 seconds]
13:41 < KnightMage> Something I have been thinking about when I saw the Go
videos, would it be possible to write a kernel in Go, I mean an actual kernel like
GNU/Linux is a kernel.
13:41 -!- brx [~brx@p4FEE7CA4.dip.t-dialin.net] has joined #go-nuts
13:41 -!- arun_ [~arun@unaffiliated/sindian] has quit [Ping timeout: 260 seconds]
13:41 < taruti> KnightMage: yes.  (with some helpers)
13:41 < m1ndwarp> I think so too
13:42 < bortzmeyer> KnightMage: this requires a bit of assembly (for
instance, you cannot save/restore the state of a process in Go).  And Go has no
interface to assembly.
13:42 < JBeshir> Pretty sure you can compile assembly stuff in with Go.
13:42 < KnightMage> hmmm
13:42 < JBeshir> Some parts of the language work that way, don't they?
13:42 -!- michael| [~maikeru@unaffiliated/maikeru/x-7708887] has joined #go-nuts
13:42 < JBeshir> In implementation.
13:42 < JBeshir> C, if not assembly.
13:42 -!- Xera^ [~brit@87-194-208-246.bethere.co.uk] has joined #go-nuts
13:43 < m1ndwarp> JBeshir: afaik yes
13:43 < m1ndwarp> just look in the source folder
13:43 < KnightMage> Well, you might need to do some parts out of Go, but,
would there be any benefit to a kernel written in a language that garbage
collects?  I guess it would never memory leak?
13:43 < taruti> bortzmeyer: Go has an interface with assembly actually.
13:43 < m1ndwarp> for example in pkg/bignum there is some assembly in *.s
13:44 < m1ndwarp> and c in pkg/syscall
13:45 < JBeshir> The only feature I really really wish I had is shared
objects, because I like runtime reloadable modules in software.
13:45 < KnightMage> I got the feeling when watching the video that Google
might want to write everything in Go, including an OS with a kernel in Go.
13:45 < JBeshir> (gccgo doesn't count until it implements the rest of Go)
13:46 < taruti> JBeshir: are they really that important?
13:46 < JBeshir> taruti: Yes.
13:46 < m1ndwarp> KnightMage: I thought it was mostly about server
13:46 < m1ndwarp> but I guess there will be kernel modules
13:46 < KnightMage> Is shared objects just a not completed yet feature or
one that will not be in Go at all?
13:46 < m1ndwarp> which support the usage of goroutines over multiple apps
13:46 < JBeshir> KnightMage: It's compiler-specific
13:46 < taruti> JBeshir: most of time they seem like a bad fit.
13:47 -!- skelterjohn [~jasmuth@c-76-124-23-95.hsd1.nj.comcast.net] has joined
13:47 < KnightMage> ah
13:47 < JBeshir> taruti: If you never want to make the featureset of your
software configurable without recompiling it, then sure.
13:47 < KnightMage> Will the 6G and 8G compilers ever impliment them then?
13:47 < JBeshir> Or, more importantly for me, the ability to reload most of
the program on the fly for update.
13:47 -!- vegai [vegai@archlinux/developer/vegai] has left #go-nuts []
13:47 < taruti> JBeshir: of course I can have that without dynamic loading.
13:48 < JBeshir> taruti: In Go?
13:48 < JBeshir> KnightMage: I don't think they will.  However, gccgo will
presumably get more mature eventually.
13:49 < taruti> JBeshir: running plugins as separate processes works fine
(and gives more control over buggy plugins) and there is the "fork-exec a new
version of the program and give it the state serialized"
13:49 < JBeshir> Separate processes is unbelievably fat and slow
13:49 < taruti> in-process things hinder optimization and make things break
more easily
13:50 < KnightMage> JBeshir, I hope they add that in to the *G compilers
because they are very fast at compiling.
13:50 < JBeshir> "hinder optimisation" is kinda irrelevant when the
alternative is incredibly expensive in both memory and CPU.
13:50 < JBeshir> Every hook involving a context switch
13:50 < JBeshir> No, you could not implement "most of the program" that way
for reloading on the fly.
13:51 < taruti> JBeshir: of course if you require very frequent switches you
might look into how your program is designed.
13:52 < JBeshir> taruti: Or it needs to maintain unbroken but wants new
features to be developed.
13:52 < taruti> (we have hot upgrading for some Haskell things with the
fork-exec-with-serialized-state and it works fine)
13:52 < exch> I'm facing this exact problem right now with my irc bot.  The
plugin system is turning out to be most effective when lpugins are run as
independant processes.  I'm still trying to determine how this can be made most
13:52 < JBeshir> Fork-exec-with-serialised-state could be practical, if just
13:53 < KnightMage> brb breakfast time
13:53 < taruti> JBeshir: handling versioned data structures is much more
painful without serialization
13:53 < JBeshir> taruti: I'm sure.
13:54 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has quit [Quit:
This computer has gone to sleep]
13:54 < JBeshir> It'd still need a rebuild-from-source by the user of the
software to enable/disable modules without the quite horrible overhead of running
them in separate processes, though.
13:54 < taruti> most of the time I actually prefer the performance hit if I
can control the resource usage of those plugins
13:55 < exch> keeping the user-code in independant of the program is
probably worth any reasonable performance hit when you consider safety and
13:56 < JBeshir> It isn't reasonable.
13:56 < exch> having a dodgy pluging loaded into the main process and
causing havoc just isn't very practical
13:56 < exch> *plugin
13:56 -!- ShadowIce` [pyoro@unaffiliated/shadowice-x841044] has quit [Quit:
13:57 < exch> I'm curious to see some performance tests on this though
13:58 < taruti> if it is crucial to performance it probably could be
statically compiled and get the benefits of inlining etc
13:58 < JBeshir> And lose the benefits of being configurable in presence and
reloadable in the first place.
13:58 < JBeshir> And...  you shouldn't need to see performance tests to know
that a context switch for every hook call, for every module, for every possible
event to hook on, could be more than a little expensive.
13:59 < JBeshir> Especially given scheduling wouldn't transfer context to
the right process immediately
13:59 < taruti> if you have just invasive plugins then most probably
something is wrong with the architecture :)
13:59 < JBeshir> Now let's say this plugin needs to be able to control
14:00 < JBeshir> Or some other instance in which the core *must* block on
14:00 < JBeshir> And cannot proceed to the next plugin until it is done.
And so.
14:00 < JBeshir> Now you're waiting for the scheduler to schedule each
process before you can move onto the next, and doing this for every plugin.
14:00 < taruti> permission checking needs typically be placed into places
that are *not* on the hot path
14:02 < JBeshir> Which places you in the entertaining position of
precalculating permission checks for everything the user could possibly do ahead
of time, or some sort of memoisation approach that leaves it vulnerable to a
performance hit by users deliberately running through all the possibilities?
14:03 < JBeshir> s/the user/every user/
14:03 -!- iant [~iant@] has joined #go-nuts
14:03 -!- mode/#go-nuts [+v iant] by ChanServ
14:04 < taruti> JBeshir: not really.  Typically access rights need to be
checked on the first access and not on every subsequent access.
14:05 -!- robot12 [~robot12@szhilkin.broker.freenet6.net] has quit [Quit: Ухожу я
от вас (xchat 2.4.5 или старше)]
14:08 -!- m1ndwarp [~m1ndwarp@65-121.eduroam.RWTH-Aachen.DE] has quit [Quit:
14:10 -!- g0bl1n [~anonymous@a213-22-69-176.cpe.netcabo.pt] has quit [Ping
timeout: 276 seconds]
14:16 -!- brx [~brx@p4FEE7CA4.dip.t-dialin.net] has quit [Quit: Lost terminal]
14:19 -!- Fraeon [~kzer-za@e212-246-65-153.elisa-laajakaista.fi] has quit [Read
error: Connection reset by peer]
14:19 -!- ct529_ [~quassel@77-44-78-159.xdsl.murphx.net] has quit [Remote host
closed the connection]
14:20 -!- Fraeon [~kzer-za@e212-246-65-153.elisa-laajakaista.fi] has joined
14:23 -!- cmarcelo [~cmarcelo@] has joined #go-nuts
14:23 -!- cmarcelo [~cmarcelo@] has quit [Changing host]
14:23 -!- cmarcelo [~cmarcelo@enlightenment/developer/cmarcelo] has joined
14:23 -!- Fraeon [~kzer-za@e212-246-65-153.elisa-laajakaista.fi] has quit [Client
14:26 -!- Fraeon [~kzer-za@e212-246-65-153.elisa-laajakaista.fi] has joined
14:28 -!- meanburrito920_ [~john@unaffiliated/meanburrito920] has joined #go-nuts
14:34 -!- arun_ [~arun@unaffiliated/sindian] has joined #go-nuts
14:44 -!- SRabbelier [~SRabbelie@ip138-114-211-87.adsl2.static.versatel.nl] has
joined #go-nuts
14:45 -!- m1ndwarp [~m1ndwarp@xdsl-78-35-132-239.netcologne.de] has joined
14:46 -!- m1ndwarp [~m1ndwarp@xdsl-78-35-132-239.netcologne.de] has quit [Read
error: Connection reset by peer]
14:46 -!- m1ndwarp_ [~m1ndwarp@xdsl-78-35-132-239.netcologne.de] has joined
14:47 -!- brx [~brx@p4FEE7CA4.dip.t-dialin.net] has joined #go-nuts
14:54 -!- iant [~iant@] has quit [Ping timeout: 240 seconds]
14:59 -!- OpenSpace [~ja@] has quit [Ping timeout: 248 seconds]
15:04 -!- Xera` [~brit@87-194-208-246.bethere.co.uk] has joined #go-nuts
15:05 -!- Fraeon [~kzer-za@e212-246-65-153.elisa-laajakaista.fi] has quit [Quit:
15:06 -!- Xera^ [~brit@87-194-208-246.bethere.co.uk] has quit [Ping timeout: 260
15:06 -!- arun_ [~arun@unaffiliated/sindian] has quit [Ping timeout: 260 seconds]
15:08 -!- kaigan|work_
[~kaigan@c-8290e255.1411-10-64736c14.cust.bredbandsbolaget.se] has quit [Quit:
15:11 -!- hstimer [~hstimer@c-98-234-25-125.hsd1.ca.comcast.net] has quit [Quit:
15:12 -!- Fraeon [~kzer-za@e212-246-65-153.elisa-laajakaista.fi] has joined
15:13 -!- OpenSpace [~ja@] has joined #go-nuts
15:15 -!- dilenger [~dilenger@124-171-12-229.dyn.iinet.net.au] has quit [Quit:
15:17 -!- meanburrito920_ [~john@unaffiliated/meanburrito920] has quit [Read
error: Operation timed out]
15:22 -!- souffledev [~soufflede@110-174-144-249.static.tpgi.com.au] has quit
[Quit: <>]
15:22 -!- meanburrito920_ [~john@unaffiliated/meanburrito920] has joined #go-nuts
15:23 -!- meanburrito920_ [~john@unaffiliated/meanburrito920] has quit [Remote
host closed the connection]
15:24 -!- meanburrito920_ [~john@unaffiliated/meanburrito920] has joined #go-nuts
15:24 -!- iant [~iant@nat/google/x-mgtmpxsewmetrfal] has joined #go-nuts
15:24 -!- mode/#go-nuts [+v iant] by ChanServ
15:29 -!- zeroXten_ [~zeroXten@0x10.co.uk] has quit [Quit: leaving]
15:29 -!- john280z [~jmitchell@static-71-120-222-85.rlghnc.dsl-w.verizon.net] has
joined #go-nuts
15:29 -!- zeroXten [~zeroXten@0x10.co.uk] has joined #go-nuts
15:29 < boscop> when inheritance is implicit, the compiler has to test each
type (class) for each available interface, right?  so, quadratic time.
15:31 <+iant> I missed the start: in what scenario does the compiler need to
test each type against each interface?
15:33 < boscop> the FAQ says: "Rather than requiring the programmer to
declare ahead of time that two types are related, in Go a type automatically
satisfies any interface that specifies a subset of its methods."
15:33 -!- crashR [~crasher@codextreme.pck.nerim.net] has quit [Remote host closed
the connection]
15:33 <+iant> that is true, but it does not follow that the compiler must
test each type against each interface
15:33 <+iant> the compiler only has to test when the program converts a type
to an interface
15:33 < boscop> ok
15:34 -!- arun_ [~arun@unaffiliated/sindian] has joined #go-nuts
15:34 -!- crashR [~crasher@codextreme.pck.nerim.net] has joined #go-nuts
15:35 < ThunderChicken> "Can they do this?" is an easier question than "What
could they do?"
15:37 -!- wrtp [~rog@] has quit [Quit: wrtp]
15:39 -!- wrtp [~rog@] has joined #go-nuts
15:44 -!- arun_ [~arun@unaffiliated/sindian] has quit [Ping timeout: 248 seconds]
15:44 -!- skelterjohn [~jasmuth@c-76-124-23-95.hsd1.nj.comcast.net] has quit [Ping
timeout: 248 seconds]
15:47 -!- TMKCodes [~toni@bbwirelessgw2-fee1dc00-62.dhcp.inet.fi] has joined
15:52 -!- Venom_X [~pjacobs@] has joined #go-nuts
15:54 -!- hstimer [~hstimer@2002:465a:aa25:0:226:bbff:fe05:dd9b] has joined
16:13 -!- meanburrito920_ [~john@unaffiliated/meanburrito920] has quit [Read
error: Operation timed out]
16:16 -!- KnightMage [~jon@host86-146-113-221.range86-146.btcentralplus.com] has
left #go-nuts ["Konversation terminated!"]
16:18 -!- m1ndwarp_ [~m1ndwarp@xdsl-78-35-132-239.netcologne.de] has quit [Quit:
16:25 < anticw> iant: speaking of which, when you pass type T into something
expected interface I, i see call into the runtime
16:25 < anticw> iant: it's not clear why these are necessary
16:26 < JBeshir> Does it happen every time, or just the first?
16:27 < anticw> in the calling sites for each call
16:27 < anticw> anyhow, for something expecting interface{} i wonder if
there isn't some optimization possible
16:30 -!- trickie [~trickie@] has quit [Ping timeout: 260 seconds]
16:32 -!- meanburrito920_ [~john@unaffiliated/meanburrito920] has joined #go-nuts
16:32 -!- bortzmeyer [~bortzmeye@batilda.nic.fr] has quit [Quit: Leaving.]
16:33 -!- arun_ [~arun@unaffiliated/sindian] has joined #go-nuts
16:34 -!- nanoo [~nano@95-89-189-46-dynip.superkabel.de] has quit [Quit: Leaving]
16:45 -!- warthurton [~warthurto@pdpc/supporter/active/warthurton] has joined
16:45 -!- ikaros [~ikaros@f050225172.adsl.alicedsl.de] has joined #go-nuts
16:49 -!- m1ndwarp [~m1ndwarp@dynamic-unidsl-85-197-29-20.westend.de] has joined
16:55 < wrtp> anticw: see src/pkg/runtime/iface.c:/^itab to see what goes on
16:57 -!- arun_ [~arun@unaffiliated/sindian] has quit [Ping timeout: 264 seconds]
17:02 -!- KnightMage [~jon@host86-146-113-221.range86-146.btcentralplus.com] has
joined #go-nuts
17:07 -!- trickie [~trickie@] has joined #go-nuts
17:08 -!- trickie [~trickie@] has quit [Client Quit]
17:16 <+iant> anticw: yes, some optimization is possible
17:20 -!- brx [~brx@p4FEE7CA4.dip.t-dialin.net] has quit [Read error: Operation
timed out]
17:21 -!- skelterjohn [~jasmuth@lawn-net168-in.rutgers.edu] has joined #go-nuts
17:22 < skelterjohn> morning
17:24 -!- g0bl1n [~anonymous@a89-152-236-173.cpe.netcabo.pt] has joined #go-nuts
17:24 -!- cmarcelo [~cmarcelo@enlightenment/developer/cmarcelo] has quit [Quit:
17:26 -!- cmarcelo [~cmarcelo@] has joined #go-nuts
17:26 -!- cmarcelo [~cmarcelo@] has quit [Changing host]
17:26 -!- cmarcelo [~cmarcelo@enlightenment/developer/cmarcelo] has joined
17:27 -!- samitheb1rber [~saada@melkinpaasi.cs.helsinki.fi] has left #go-nuts []
17:28 -!- samitheb1rber [~saada@melkinpaasi.cs.helsinki.fi] has joined #go-nuts
17:28 -!- andrewh [~andrewh@94-194-56-42.zone8.bethere.co.uk] has joined #go-nuts
17:28 -!- g0bl1n [~anonymous@a89-152-236-173.cpe.netcabo.pt] has quit [Ping
timeout: 260 seconds]
17:34 -!- arun_ [~arun@unaffiliated/sindian] has joined #go-nuts
17:40 -!- andrewh [~andrewh@94-194-56-42.zone8.bethere.co.uk] has quit [Ping
timeout: 245 seconds]
17:41 -!- KnightMage [~jon@host86-146-113-221.range86-146.btcentralplus.com] has
quit [Remote host closed the connection]
17:43 -!- dizm [~dizm@] has left #go-nuts []
17:50 -!- g0bl1n [~anonymous@a213-22-18-86.cpe.netcabo.pt] has joined #go-nuts
17:56 -!- carllerche [~carllerch@enginey-9.border1.sfo002.pnap.net] has joined
18:10 -!- andrewh [~andrewh@94-194-56-42.zone8.bethere.co.uk] has joined #go-nuts
18:13 -!- tibshoot_ [~tibshoot@linagora-230-146.pr0.nerim.net] has quit [Remote
host closed the connection]
18:15 -!- arun_ [~arun@unaffiliated/sindian] has quit [Ping timeout: 260 seconds]
18:17 -!- andrewh [~andrewh@94-194-56-42.zone8.bethere.co.uk] has quit [Ping
timeout: 245 seconds]
18:18 < anticw> wrtp: i know what's going on, but the most common case often
is interface{} which could be optimized
18:33 -!- arun_ [~arun@unaffiliated/sindian] has joined #go-nuts
18:37 -!- cmarcelo [~cmarcelo@enlightenment/developer/cmarcelo] has quit [Ping
timeout: 260 seconds]
18:38 -!- boscop_ [~boscop@f050151226.adsl.alicedsl.de] has joined #go-nuts
18:39 -!- boscop [~boscop@f055062137.adsl.alicedsl.de] has quit [Ping timeout: 246
18:48 -!- b00m_chef__ [~watr@d64-180-45-230.bchsia.telus.net] has joined #go-nuts
19:13 -!- afurlan [~afurlan@scorpion.mps.com.br] has quit [Quit: Leaving]
19:16 -!- willdye [~willdye@fern.dsndata.com] has joined #go-nuts
19:18 -!- nanoo [~nano@95-89-189-46-dynip.superkabel.de] has joined #go-nuts
19:21 -!- willdye [~willdye@fern.dsndata.com] has left #go-nuts []
19:26 -!- cmarcelo [~cmarcelo@] has joined #go-nuts
19:26 -!- cmarcelo [~cmarcelo@] has quit [Changing host]
19:26 -!- cmarcelo [~cmarcelo@enlightenment/developer/cmarcelo] has joined
19:27 -!- m1ndwarp [~m1ndwarp@dynamic-unidsl-85-197-29-20.westend.de] has quit
[Quit: m1ndwarp]
19:35 -!- suurMyy [~suurMyy@xdsl-83-150-84-113.nebulazone.fi] has joined #go-nuts
19:52 -!- Adys [~Adys@unaffiliated/adys] has quit [Quit: I ♥ Unicode]
19:53 -!- Adys [~Adys@unaffiliated/adys] has joined #go-nuts
19:55 -!- fwiffo [~fwiffo@unaffiliated/fwiffo] has quit [Quit: Lost terminal]
20:01 -!- tps_ [~tps@hoasb-ff08dd00-36.dhcp.inet.fi] has quit [Quit: Leaving]
20:02 -!- nettok [~netto@proxy.galileo.edu] has joined #go-nuts
20:03 < plexdev> http://is.gd/aPahu by [Robert Griesemer] in 2 subdirs of
go/ -- godoc: implemented command-line search
20:03 < plexdev> http://is.gd/aPahE by [Robert Griesemer] in 3 subdirs of
go/src/ -- godoc: improved comment formatting: recognize URLs
20:05 -!- Netsplit *.net <-> *.split quits: apexo, mrd`, Meidor, roto,
kkress, atsampson, chrome, CodeBlock_, DJCapelis, ssb, (+21 more, use /NETSPLIT to
show all of them)
20:05 -!- Venom_X [~pjacobs@] has quit [Read error: Connection reset
by peer]
20:06 -!- \toothrot [~mux@71-11-228-206.dhcp.ftwo.tx.charter.com] has joined
20:07 -!- Netsplit over, joins: d_m
20:08 -!- Netsplit over, joins: apexo
20:08 -!- Netsplit over, joins: CodeBlock_, tokuhirom, rbancroft, atsampson,
cbeck, akheron, clip9, JBeshir, borisc, chrome (+16 more)
20:09 -!- Netsplit over, joins: Wi11
20:26 -!- General13372 [~support@71-84-246-14.dhcp.gldl.ca.charter.com] has joined
20:28 -!- General1337 [~support@71-84-246-14.dhcp.gldl.ca.charter.com] has quit
[Ping timeout: 248 seconds]
20:39 -!- rhelmer [~rhelmer@adsl-69-107-95-216.dsl.pltn13.pacbell.net] has joined
20:43 -!- rhelmer [~rhelmer@adsl-69-107-95-216.dsl.pltn13.pacbell.net] has quit
[Read error: Connection reset by peer]
20:44 -!- m1ndwarp [~m1ndwarp@vpn-eu1.unidsl.de] has joined #go-nuts
20:45 -!- john280z [~jmitchell@static-71-120-222-85.rlghnc.dsl-w.verizon.net] has
quit [Read error: Connection reset by peer]
20:46 -!- rhelmer [~rhelmer@adsl-69-107-95-216.dsl.pltn13.pacbell.net] has joined
20:56 -!- nanooo [~nano@95-89-189-46-dynip.superkabel.de] has joined #go-nuts
21:00 -!- nanoo [~nano@95-89-189-46-dynip.superkabel.de] has quit [Ping timeout:
276 seconds]
21:03 -!- m1ndwarp_ [~m1ndwarp@vpn-eu1.unidsl.de] has joined #go-nuts
21:07 -!- m1ndwarp [~m1ndwarp@vpn-eu1.unidsl.de] has quit [Ping timeout: 252
21:16 -!- nutate [~rseymour@cacsag4.usc.edu] has joined #go-nuts
21:16 -!- nutate [~rseymour@cacsag4.usc.edu] has quit [Excess Flood]
21:18 -!- skelterjohn [~jasmuth@lawn-net168-in.rutgers.edu] has quit [Quit:
21:19 -!- boscop_ [~boscop@f050151226.adsl.alicedsl.de] has left #go-nuts []
21:19 -!- boscop [~boscop@f050151226.adsl.alicedsl.de] has joined #go-nuts
21:22 -!- nettok [~netto@proxy.galileo.edu] has quit [Quit: Ex-Chat]
21:23 -!- TMKCodes [~toni@bbwirelessgw2-fee1dc00-62.dhcp.inet.fi] has quit [Read
error: Connection reset by peer]
21:23 -!- TMKCodes [~toni@bbwirelessgw2-fee1dc00-62.dhcp.inet.fi] has joined
21:26 < plexdev> http://is.gd/aPfYI by [Alex Brainman] in go/src/pkg/ --
deps.bash: handle Makefiles with .go filenames that include $(GOOS) and $(GOARCH)
21:26 < plexdev> http://is.gd/aPfYP by [Fumitoshi Ukai] in
go/src/pkg/websocket/ -- websocket: use URL.RawPath to construct
WebSocket-Location: header
21:26 < plexdev> http://is.gd/aPfZ8 by [Ken Thompson] in go/src/cmd/6c/ --
issue 608
21:27 -!- guaqua [gua@lakka.kapsi.fi] has left #go-nuts []
21:34 -!- grahame [~grahame@billy.angrygoats.net] has quit [Ping timeout: 258
21:45 -!- grahame [~grahame@billy.angrygoats.net] has joined #go-nuts
21:50 -!- ampleyfly_ [ampleyfly@2002:55e5:8e6b::55e5:8e6b] has quit [Read error:
Connection reset by peer]
21:50 -!- ampleyfly_
[ampleyfly@c-6b8ee555.09-36-6c6b7013.cust.bredbandsbolaget.se] has joined #go-nuts
21:57 -!- nanoo [~nano@95-89-189-46-dynip.superkabel.de] has joined #go-nuts
22:00 -!- nanooo [~nano@95-89-189-46-dynip.superkabel.de] has quit [Ping timeout:
248 seconds]
22:04 -!- Rint__ [john@static-71-244-60-125.dllstx.fios.verizon.net] has joined
22:05 -!- k4jd095b_ [~k4jd095b@] has quit [Read error: Connection
reset by peer]
22:05 -!- k4jd095b_ [~k4jd095b@] has joined #go-nuts
22:07 -!- path[l] [UPP@] has joined #go-nuts
22:07 -!- nanoo [~nano@95-89-189-46-dynip.superkabel.de] has quit [Quit: Leaving]
22:13 < plexdev> http://is.gd/aPjuB by [Rob Pike] in go/src/ -- Factor the
Makefiles to make writing outside Makefiles easier.
22:13 < plexdev> http://is.gd/aPjuK by [Alex Brainman] in 2 subdirs of
go/src/pkg/ -- syscall: mksyscall_mingw.sh emitting shorter calls (to Syscall or
Syscall6) when there are fewer arguments
22:22 -!- meanburrito920_ [~john@unaffiliated/meanburrito920] has quit [Ping
timeout: 260 seconds]
22:25 -!- scm [justme@d019132.adsl.hansenet.de] has quit [Ping timeout: 258
22:29 < plexdev> http://is.gd/aPkAd by [Robert Griesemer] in 2 subdirs of
go/ -- godoc: show (some) line numbers for remote search
22:29 < plexdev> http://is.gd/aPkAi by [Alex Brainman] in
go/src/pkg/syscall/ -- syscall: mingw implemntation of Errstr()
22:29 < plexdev> http://is.gd/aPkAE by [Charles L. Dorian] in
go/src/pkg/math/ -- math: add Gamma function
22:31 -!- scm [justme@c190233.adsl.hansenet.de] has joined #go-nuts
22:37 -!- kanru [~kanru@61-228-158-15.dynamic.hinet.net] has joined #go-nuts
22:38 -!- meanburrito920_ [~john@unaffiliated/meanburrito920] has joined #go-nuts
22:38 -!- willwh [~quassel@S010600c09f8af75a.gv.shawcable.net] has joined #go-nuts
22:38 -!- willwh [~quassel@S010600c09f8af75a.gv.shawcable.net] has quit [Changing
22:38 -!- willwh [~quassel@unaffiliated/willskills] has joined #go-nuts
22:41 -!- gnuvince [~vince@] has quit [Quit: Lost terminal]
22:42 -!- m1ndwarp [~m1ndwarp@vpn-eu1.unidsl.de] has quit [Quit: m1ndwarp]
22:56 -!- ni|_ [~james@dontpanic.union.edu] has left #go-nuts []
22:57 -!- ni| [~james@dontpanic.union.edu] has joined #go-nuts
22:57 < ni|> can someone explain what gofmt -w <file> does?
22:57 < ni|> russ asked me to run it
22:57 < ni|> and idk what it does
22:57 < ni|> http://codereview.appspot.com/589043/show
22:57 < ni|> does he want me to start over
22:57 <+iant> it runs gofmt on a file and rewrites the file with the
formatted contents
22:57 < exch> it reformats content of <file> and replaces content in
file with new content
22:58 < KirkMcDonald> http://golang.org/cmd/gofmt/
22:59 < ni|> iant: yes i see that
22:59 -!- iant [~iant@nat/google/x-mgtmpxsewmetrfal] has quit [Remote host closed
the connection]
22:59 -!- The_Cog [~chatzilla@i-195-137-123-15.freedom2surf.net] has joined
22:59 < ni|> whoops he left
22:59 < ni|> i just don't know if he mains to do it instead of
23:00 < ni|> like should i start over
23:00 < ni|> or just run gofmt -w
23:00 < ni|> like he suggested
23:00 -!- iant [~iant@nat/google/x-cvjzxdfcakrfally] has joined #go-nuts
23:00 -!- mode/#go-nuts [+v iant] by ChanServ
23:00 < KirkMcDonald> ni|: Run it on your edited source file.
23:00 < ni|> iant: did russ mean to start over or just run that command and
resubmit with hg change ; hg mail
23:00 < ni|> KirkMcDonald: i've already done this
23:00 < plexdev> http://is.gd/aPmzQ by [Russ Cox] in go/ -- A+C: add James
Toy (individual CLA)
23:01 <+iant> he just meant to reformat the file using gofmt
23:01 < ni|> figured
23:01 < ni|> ok thanks
23:01 <+iant> and then run hg mail again
23:01 < ni|> plexdev: yes?
23:01 <+iant> (you don't need to run hg change again)
23:01 < ni|> iant: kk
23:01 < ni|> iant: sorry i'm dumb :P
23:01 < ni|> just new to the codereview app
23:01 -!- Xera` [~brit@87-194-208-246.bethere.co.uk] has quit [Read error:
Connection reset by peer]
23:02 -!- iant [~iant@nat/google/x-cvjzxdfcakrfally] has quit [Read error:
Connection reset by peer]
23:02 -!- iant [~iant@nat/google/x-wfvzdpcmaqdqbkgs] has joined #go-nuts
23:02 -!- mode/#go-nuts [+v iant] by ChanServ
23:03 < ni|> iant: so the codereview software knows i've modified the file
23:03 < ni|> after the gofmt -w
23:03 <+iant> well, hg knows
23:03 -!- crakrjak [~merc@rrcs-70-62-156-154.central.biz.rr.com] has quit [Remote
host closed the connection]
23:03 <+iant> running hg mail will send the change over to the codereview
23:04 < ni|> iant: this system is amazing
23:04 < ni|> that was so easy
23:04 < ni|> i didn't even have to say PTAL
23:04 < ni|> it knew
23:04 < ni|> :)
23:12 -!- thaostra [~joshua@pool-96-252-6-184.bstnma.fios.verizon.net] has joined
23:15 -!- thaostra [~joshua@pool-96-252-6-184.bstnma.fios.verizon.net] has quit
[Client Quit]
23:17 < plexdev> http://is.gd/aPnCd by [James Toy] in go/doc/ --
doc/htmlgen.go: remove unnecessary semicolons
23:20 -!- b00m_chef__ [~watr@d64-180-45-230.bchsia.telus.net] has quit [Ping
timeout: 240 seconds]
23:21 -!- Xera^ [~brit@87-194-208-246.bethere.co.uk] has joined #go-nuts
23:21 -!- iant [~iant@nat/google/x-wfvzdpcmaqdqbkgs] has quit [Read error:
Operation timed out]
23:27 -!- The_Cog [~chatzilla@i-195-137-123-15.freedom2surf.net] has quit [Quit:
ChatZilla 0.9.86 [Firefox 3.6/20100115133306]]
23:29 -!- TR2N [email@] has joined #go-nuts
23:33 < plexdev> http://is.gd/aPoBf by [Andrew Gerrand] in go/src/pkg/http/
-- http: add Error helper function
23:33 < plexdev> http://is.gd/aPoBj by [Russ Cox] in go/src/pkg/os/ -- os:
drop File finalizer after normal Close
23:33 < plexdev> http://is.gd/aPoBw by [Rob Pike] in go/src/ -- Make.cmd:
make 'all' the default target (was 'clean': BUG)
23:35 -!- cmarcelo [~cmarcelo@enlightenment/developer/cmarcelo] has quit [Quit:
23:38 -!- homiziado [~ernestofr@] has joined #go-nuts
23:40 -!- tor5 [~tor@c-987a71d5.04-50-6c756e10.cust.bredbandsbolaget.se] has
joined #go-nuts
23:46 -!- wrtp [~rog@] has quit [Quit: wrtp]
23:47 -!- hstimer [~hstimer@2002:465a:aa25:0:226:bbff:fe05:dd9b] has quit [Quit:
23:47 -!- iant [~iant@] has joined #go-nuts
23:47 -!- mode/#go-nuts [+v iant] by ChanServ
23:49 -!- belkiss [~kvirc@] has joined #go-nuts
23:54 -!- vomjom [~vomjom@99-157-248-71.lightspeed.stlsmo.sbcglobal.net] has quit
[Remote host closed the connection]
23:54 -!- Xera^ [~brit@87-194-208-246.bethere.co.uk] has quit [Quit: (
www.nnscript.com :: NoNameScript 4.21 :: www.esnation.com )]
23:57 -!- vomjom [~vomjom@99-157-248-71.lightspeed.stlsmo.sbcglobal.net] has
joined #go-nuts
--- Log closed Sat Mar 20 00:00:29 2010