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

--- Log opened Wed Oct 06 00:00:09 2010
00:02 -!- kanru [~kanru@118-168-236-242.dynamic.hinet.net] has joined #go-nuts
00:02 -!- BlaSux [~7f000001@dr.kleiner.lambdacomplex.org] has joined #go-nuts
00:16 -!- tvw [~tv@e176003227.adsl.alicedsl.de] has quit [Ping timeout: 245
00:20 -!- skelterjohn [~jasmuth@c-76-124-135-199.hsd1.nj.comcast.net] has joined
00:20 < adg> test
00:20 -!- Tv [~tv@gige.bur.digisynd.com] has quit [Ping timeout: 240 seconds]
00:20 -!- steveno [~stevenoli@c-24-131-221-195.hsd1.pa.comcast.net] has joined
00:20 -!- steveno [~stevenoli@c-24-131-221-195.hsd1.pa.comcast.net] has quit
[Changing host]
00:20 -!- steveno [~stevenoli@paludis/cheerleader/steveno] has joined #go-nuts
00:20 < exch> 123
00:21 < scyth> 321
00:21 < scyth> :)
00:23 -!- Venom_bbl [~pjacobs@] has quit [Quit: Venom_bbl]
00:24 < adg> someone msg'd me and asked if they could send messages to the
channel - must not have had a registered nick
00:24 < exch> probably
00:26 <+iant> yeah, that's the usual problem
00:27 <+iant> I always point them to
00:30 < uriel> would be nice to change whatever flag that does that for this
00:30 < uriel> it makes life harder for newbies that just want to ask a
00:30 <+iant> on the other hand it supposedly cuts down on spam comments
00:30 <+iant> I don't know, I didn't set it up this way
00:30 < uriel> I have run quite a few channels, never had any problems with
00:30 < KirkMcDonald> Isn't it +r?
00:31 < KirkMcDonald> I don't think this channel has that mode set on it.
00:31 < uriel> and if an spammer shows up, you ban it, and done, in irc is
much less of an issue than on a mailing list
00:31 -!- skelterjohn [~jasmuth@c-76-124-135-199.hsd1.nj.comcast.net] has quit
[Quit: skelterjohn]
00:31 < Namegduf> +r blocks entry.
00:31 < uriel> which btw, reminds me, any chance we can get golang-dev and
gonuts moderated for new posters (at least golang-dev)
00:31 < adg> uriel: i think it's an issue of "hit and run" spammers
00:32 -!- skelterjohn [~jasmuth@c-76-124-135-199.hsd1.nj.comcast.net] has joined
00:32 < adg> no point banning them, they always use different IPs
00:32 < Namegduf> The muting extban is set, though.
00:32 < adg> i've experienced it before; not on freenode, though
00:32 < adg> the way i've dealt with it in the past is to make the channel
+m and then allow people to message a bot to get +v
00:32 < uriel> yea, but again, i have not noticed any hit-and-run spammers
in any of my other freenode channels for a while, and in irc the damage they cause
is rather minimal as the noise is lost in the backlog pretty fast
00:34 < adg> i'm happy to turn whatever flag it is off and see how it goes
00:38 -!- mode/#go-nuts [+o adg] by ChanServ
00:49 -!- mode/#go-nuts [-q unban!*@*] by nf
00:49 -!- mode/#go-nuts [-q unban!*@*] by nf
00:49 -!- kingless [~kingless@adsl-242-215-95.rmo.bellsouth.net] has joined
00:49 -!- mode/#go-nuts [-q $~a] by nf
00:49 < uriel> nf: it is in Group Settings->Spam Controls
00:49 -!- mode/#go-nuts [-q base3!*@*] by nf
00:50 <@nf> uriel: i don't use whatever IRC client you're using :)
00:50 <@nf> it's fixed now
00:50 < uriel> nf: I would enable it for golang-dev, as it is a lower
traffic list where spam is more prominent, and where the number of new posters
probably will be low so should not be much work for you
00:50 < uriel> nf: I was talking about the groups.google.com 'irc client' ;)
00:51 <+iant> rsc has argued in the past that the spam blocking is good
enough that we should just permit all posts
00:51 <+iant> I don't really care either way
00:51 <+iant> but please don't change it without checking in with him
00:52 <@nf> oh, no i think how we manage golang-dev at the moment is fine
00:53 -!- kingless [~kingless@adsl-242-215-95.rmo.bellsouth.net] has quit [Client
00:53 <@nf> (i missed your earlier msg where you referred to the mailing
00:53 -!- kingless [~kingless@adsl-242-215-95.rmo.bellsouth.net] has joined
01:00 -!- Tv [~tv@cpe-76-168-227-45.socal.res.rr.com] has joined #go-nuts
01:01 -!- iant [~iant@] has quit [Quit: Leaving.]
01:04 -!- kingless [~kingless@adsl-242-215-95.rmo.bellsouth.net] has quit [Ping
timeout: 265 seconds]
01:07 -!- kanru [~kanru@118-168-236-242.dynamic.hinet.net] has quit [Ping timeout:
276 seconds]
01:15 -!- kingless [~kingless@] has joined #go-nuts
01:21 -!- kingless [~kingless@] has quit [Ping timeout: 264 seconds]
01:32 -!- steveno [~stevenoli@paludis/cheerleader/steveno] has quit [Quit:
01:36 < uriel> oh well, golang-dev and go-nuts are pretty much the only
lists I'm in where spam gets through, but maybe I'm just picky :)
01:36 < uriel> adg: btw, any plans to speak at FoSDEM:
01:36 -!- enferex [~enferex@users.757.org] has left #go-nuts []
01:38 -!- enferex [~enferex@users.757.org] has joined #go-nuts
01:45 -!- fenicks [~christian@log77-3-82-243-254-112.fbx.proxad.net] has quit
[Quit: Leaving.]
01:52 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has joined #go-nuts
02:02 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has joined
02:04 -!- cenuij [~cenuij@base/student/cenuij] has quit [Remote host closed the
02:05 <@adg> uriel: no immediate plans; might be worth doing, though
02:06 < uriel> it is probably the biggest open source conference in europe
02:07 < uriel> I know rob is going to some conf in Denmark this week or so,
but only java PHBs and other silly people goes to that (I think the entrance fee
is over 200EUR)
02:09 <@adg> JAOO is more than just that
02:19 < uriel> ok, I know, but I'm a cynic, and I really dislike the
attitude of the conference, Java and OO elitists?  you really got to be kidding me
02:20 < uriel> anyway, nevermind, should work harder to keep my pet hates
away from this channel and locked up in #cat-v ;P
02:20 < uriel> adg: ah, I was wondering if the recordings for any of the
talks given in .au have been published?
02:21 < uriel> I know you gave one a while ago, and rob gave one recently,
IIRC i saw in some mailinglist that at least yours was recorded,
02:22 <@adg> unfortunately mine wasnt
02:22 <@adg> rob's is here:
02:23 -!- aho [~nya@fuld-4d00d442.pool.mediaWays.net] has quit [Quit:
02:23 < uriel> ah, fantastic, thanks!
02:23 <@adg> =)
02:25 < uriel> oh, you meant this one:
https://sites.google.com/site/gdevelopereventsyd/Home/1-day-go-course ? I think I
was thinking of an older one at some gtug, can't find which one now
02:27 < uriel> oh, rob gave another intro to Go in Feb:
02:27 < uriel> but I think that wasn't the one I was thinking about
02:28 <@adg> no i meant the gtug one
02:28 <@adg> it was supposed to be recorded, but my colleague forgot to
press the button.  sigh
02:28 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Quit: Leaving]
02:29 -!- Simon_Wang [~linfves@] has joined #go-nuts
02:29 < uriel> heh, that happens surprisingly often ^_^
02:29 <@adg> it has plagued my talks
02:29 <@adg> i haven't had a single one recorded properly
02:29 < uriel> more motivation to give even more talks then!
02:30 < uriel> sooner or later one will come out right ;)
02:30 <@adg> i suppose it means by the time i finally get one recorded right
it'll be damn good!
02:30 < uriel> exactly
02:31 < uriel> much better that way, I had the opposite experience with a
series of talks I gave about Plan 9 some years ago, the first one, which in my
opinion was awful, got recorded, the following ones, specially one I was very
happy with (the audience stayed for an extra 40 minutes because they wanted to
hear more) didn't get recorded :(
02:32 < uriel> (worse, the first one is still online and prominently linked
in various places, I hide my head in shame every time I think about it :))
02:33 <@adg> lol
02:33 <@adg> yeah well the very first talk I did on Go was recorded
02:33 <@adg> in high def, no less
02:33 <@adg> but i forbade the guy who recorded it from releasing it :P
02:34 < uriel> damn, you are smarter than me!
02:34 < uriel> I have frequently wished I had stolen the tape and burnt it
02:36 < uriel> adg: so rob's talk at the gtug wasn't recorded either?
02:37 -!- araujo [~araujo@gentoo/developer/araujo] has joined #go-nuts
02:39 < exch> it's a shame rob's seminar in sydney is missing what's going
on on the beamer
02:41 <@adg> the projector?  yeah
02:43 <@adg> exch: these may not be the exact slides, but
02:43 <@adg> uriel: i'm not sure; i will check
02:45 < exch> adg: thanks
02:45 * uriel wants to learn to give talks without any slides or projector
02:45 <@adg> i prefer not using slides
02:46 <@adg> but it's hard to talk about specific programming language stuff
without code
02:46 < uriel> of course when presenting code there are few alternatives,
although you could do it live with a text editor and that is it
02:46 < uriel> yea
02:48 <@adg> yeah i have given talks with just the go playground
02:48 <@adg> it works well
02:48 <@adg> requires more nerves
02:51 -!- emmanueloga [~emmanuelo@] has quit [Ping timeout: 276
02:51 <@adg> uriel: no, rob's gtug talk wasn't recorded either.  how
02:57 -!- itrekkie [~itrekkie@ip72-211-128-31.tc.ph.cox.net] has joined #go-nuts
03:00 < uriel> time to give more talks then!
03:00 < uriel> lets see if we can arrange for one in Stockholm next time
iant visits (if he dares to come back ^_^)
03:01 -!- rejb [~rejb@unaffiliated/rejb] has quit [Ping timeout: 276 seconds]
03:08 -!- skelterjohn [~jasmuth@c-76-124-135-199.hsd1.nj.comcast.net] has quit
[Quit: skelterjohn]
03:13 -!- Eridius [~kevin@unaffiliated/eridius] has quit [Ping timeout: 264
03:24 -!- skelterjohn [~jasmuth@c-76-124-135-199.hsd1.nj.comcast.net] has joined
03:26 -!- noktoborus [~noktoboru@host-208-107.hosts.vtc.ru] has quit [Quit: Ухожу
я от вас]
03:27 -!- noktoborus [~noktoboru@host-208-107.hosts.vtc.ru] has joined #go-nuts
03:27 -!- noktoborus_ [~noktoboru@host-208-107.hosts.vtc.ru] has joined #go-nuts
03:28 -!- noktoborus [~noktoboru@host-208-107.hosts.vtc.ru] has quit [Client Quit]
03:28 -!- noktoborus_ [~noktoboru@host-208-107.hosts.vtc.ru] has quit [Read error:
Connection reset by peer]
03:28 -!- noktoborus [~noktoboru@host-208-107.hosts.vtc.ru] has joined #go-nuts
03:35 -!- yihuang [~yihuang@] has joined #go-nuts
03:35 -!- yihuang [~yihuang@] has left #go-nuts []
03:35 -!- skelterjohn [~jasmuth@c-76-124-135-199.hsd1.nj.comcast.net] has quit
[Quit: skelterjohn]
03:45 -!- emmanueloga [~emmanuelo@] has joined #go-nuts
03:45 -!- sacho [~sacho@79-100-50-200.btc-net.bg] has joined #go-nuts
03:47 -!- skelterjohn [~jasmuth@c-76-124-135-199.hsd1.nj.comcast.net] has joined
03:56 -!- emmanueloga [~emmanuelo@] has quit [Read error: Connection
reset by peer]
03:56 -!- skelterjohn [~jasmuth@c-76-124-135-199.hsd1.nj.comcast.net] has quit
[Quit: skelterjohn]
04:19 -!- rlab [~Miranda@] has joined #go-nuts
04:28 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts
04:29 -!- jcao219 [~jcao219@pool-173-74-61-111.dllstx.fios.verizon.net] has quit
[Remote host closed the connection]
04:29 -!- jcao219 [~jcao219@pool-173-74-61-111.dllstx.fios.verizon.net] has joined
04:31 < cbeck> If anyone is in Portland, OR anytime, the PSU ACM would love
to host a talk
04:34 -!- mduft_ [~mduft@gentoo/developer/mduft] has joined #go-nuts
04:35 -!- mduft__ [~mduft@] has joined #go-nuts
04:35 <@adg> wasn't OSCON just in portland?
04:35 -!- mduft [~mduft@gentoo/developer/mduft] has quit [Read error: Connection
reset by peer]
04:37 -!- zozoR [~zozoR@4705ds1-ris.0.fullrate.dk] has joined #go-nuts
04:37 < cbeck> It was, I was stuck in classes for most of it
04:38 < cbeck> Missed both go sessions =/
04:38 -!- mduft_ [~mduft@gentoo/developer/mduft] has quit [Read error: Connection
reset by peer]
04:39 -!- mduft_ [~mduft@gentoo/developer/mduft] has joined #go-nuts
04:39 <@adg> dang
04:39 <@adg> a shame
04:39 <@adg> might have to come to the states and do a speaking tour
04:40 -!- mduft__ [~mduft@] has quit [Read error: Connection reset
by peer]
04:41 -!- mduft [~mduft@gentoo/developer/mduft] has joined #go-nuts
04:44 -!- mduft_ [~mduft@gentoo/developer/mduft] has quit [Ping timeout: 245
04:44 -!- jcao219 [~jcao219@pool-173-74-61-111.dllstx.fios.verizon.net] has quit
[Remote host closed the connection]
04:44 -!- sacho [~sacho@79-100-50-200.btc-net.bg] has quit [Ping timeout: 245
04:51 -!- zozoR [~zozoR@4705ds1-ris.0.fullrate.dk] has quit [Quit: Morten.  Desu~]
04:54 < anticw> is the foo...  change complete?
04:54 < anticw> it seems not to be
04:54 < anticw> foo(va...) and foo(va) do the same thing for me
04:55 * anticw wonders if parallel builds are screwing up his env
05:01 -!- scm [scm@d070166.adsl.hansenet.de] has quit [Ping timeout: 272 seconds]
05:02 -!- fabled [~fabled@xdsl-83-150-94-238.nebulazone.fi] has quit [Ping
timeout: 240 seconds]
05:02 < anticw> heh
05:02 < anticw> internal compiler error: mkdotargslice: typecheck failed
05:02 -!- scm [scm@d019086.adsl.hansenet.de] has joined #go-nuts
05:06 <@adg> that's weird
05:06 <@adg> did you file the bug?  i'm looking at it now
05:07 < anticw> i will now
05:07 < anticw> i just did it another way to match the bug
05:08 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has quit [Quit:
This computer has gone to sleep]
05:08 < anticw> adg: 8g only working?
05:09 -!- fabled [~fabled@xdsl-83-150-94-237.nebulazone.fi] has joined #go-nuts
05:09 <@adg> i didn't try 8g
05:09 < anticw> updating bug now
05:09 <@adg> the bug reportee says 8g is broken, it's broken on 6g here
05:09 < anticw> oh, there is another bug?
05:09 < anticw> i was going to update 640
05:09 <@adg> which one are you talking about?
05:09 < anticw> issue 640
05:10 <@adg> there's an open one
05:10 <@adg> http://code.google.com/p/go/issues/detail?id=1165
05:10 < anticw> should really just be 640
05:10 < anticw> IMO
05:10 <@adg> no, 640 is the feature request
05:10 <@adg> the feature is in; the compiler has a bug in its implementation
of it
05:10 < anticw> well ...  640 has the change in it that broke the
05:11 < anticw> adg: it doesn't unwrap for []interface{} either
05:11 <@adg> let me put it another way: we already have an open bug
reporting this precise issue.  let's keep discussing there
05:11 < anticw> there you get one element of []inteface{}
05:12 < anticw> adg: when you kick to accepted state you can assign ?
05:12 -!- rlab_ [~Miranda@] has joined #go-nuts
05:13 <@adg> anticw: what do you mean?
05:13 <@adg> i can, because i'm one of the project owners
05:14 -!- iant [~iant@adsl-71-133-8-30.dsl.pltn13.pacbell.net] has joined #go-nuts
05:14 -!- mode/#go-nuts [+v iant] by ChanServ
05:14 -!- rlab [~Miranda@] has quit [Ping timeout: 272 seconds]
05:14 < anticw> adg: i wonder if something was dropped from the merge/fix?
05:15 < anticw> i'm looking over the older issues from rsc to see ...  it
seems he must have tested this
05:15 <@adg> anticw: he recently submitted a change that fixed a bunch of
related bugs, perhaps there was a regression
05:15 <@adg> shouldn't be a big deal
05:15 < anticw> there is no test case :/
05:16 <@adg> not for this particular one, no
05:16 <@adg> test cases were added for the bugs he fixed
05:16 <@adg> fwiw, it works in the latest release tag
05:18 < anticw> 308 tests for this
05:18 < anticw> i wonder why that doesn't show up
05:19 <@adg> not this exact issue
05:21 < anticw> what is the hg syntax to move to a version?
05:22 <@adg> hg update [revision]
05:22 <@adg> or hg update -r [revision]
05:22 <@adg> they might both work
05:23 < anticw> yeah, googled it ...  shoulda done that first sorry
05:23 < anticw> real 0m12.643s
05:23 < anticw> heh ...  me likes fast build times
05:25 < anticw> adg: should hg log reflect the update?
05:25 < anticw> i would have though so
05:26 < anticw> ie.  i should see 'less'
05:27 < anticw> adg: 'hg update -r release' + rebuild still fails here
05:27 <@adg> k, looks like a fresh one then
05:28 <@adg> do you have a distinct test case that's differen to the ones in
1165 ?
05:28 < anticw> different but same underlying issue
05:29 < anticw> using interface{} doesn't barf the compiler because that's
valid either way
05:29 <@adg> writing compilers is hard :P
05:30 < anticw> yes
05:38 -!- itrekkie [~itrekkie@ip72-211-128-31.tc.ph.cox.net] has quit [Quit:
05:50 -!- iant [~iant@adsl-71-133-8-30.dsl.pltn13.pacbell.net] has quit [Ping
timeout: 272 seconds]
05:50 -!- iant [~iant@] has joined #go-nuts
05:50 -!- mode/#go-nuts [+v iant] by ChanServ
05:52 -!- photron [~photron@port-92-201-30-121.dynamic.qsc.de] has joined #go-nuts
06:05 -!- wjlroe [~will@78-86-14-131.zone2.bethere.co.uk] has joined #go-nuts
06:05 -!- photron [~photron@port-92-201-30-121.dynamic.qsc.de] has quit [Ping
timeout: 255 seconds]
06:25 -!- azathoth99 [~g@pool-173-60-208-79.lsanca.fios.verizon.net] has joined
06:26 < azathoth99> uriel are you awake?
06:32 < azathoth99> I want to get bad into cat-v, and am willing to listen
to things I should not do.
06:38 -!- navigator [~navigator@p54892B26.dip.t-dialin.net] has joined #go-nuts
06:41 < azathoth99> is go at all similar to forth?
06:41 < azathoth99> microcomoils of each definition as oen goes along
06:41 < azathoth99> ?
06:42 < anticw> no
06:49 -!- gabriel9 [~gabriel9@] has joined #go-nuts
06:49 < Gertm> is there a rounding function in Go?
06:56 -!- rlab_ [~Miranda@] has quit [Quit: Miranda IM! Smaller,
Faster, Easier.  http://miranda-im.org]
07:02 -!- bortzmeyer [~bortzmeye@batilda.nic.fr] has joined #go-nuts
07:05 < vsmatck> Gertm: hm, dunno.  You could do the old add 0.5 and cast to
int though.
07:07 < anticw> for strings there are some explicit functions but for
float/int i would do as vsmatck suggested
07:07 < anticw> care w/ overflows of course
07:10 -!- ikaros [~ikaros@] has joined #go-nuts
07:20 -!- wjlroe [~will@78-86-14-131.zone2.bethere.co.uk] has quit [Quit: Computer
has gone to sleep]
07:32 < vsmatck> I sorta feel like talking about generics.  I read russ
cox's blog post on it and thought about it for a few hours.  So that makes me an
internet expert on the subject.
07:33 < anticw> pretty much :)
07:33 < vsmatck> Is the idea that it's not going to be done if it causes
excessive compilation time, code bloat, or runtime overhead?
07:34 < vsmatck> I been trying to think of a way of doing it without any of
those draw backs.  My mind is blank.
07:35 < anticw> whatever happens it's going to be a compromise ...  i assume
like exceptions it will take time to see where suitable lines might be drawn
07:35 -!- azathoth99 [~g@pool-173-60-208-79.lsanca.fios.verizon.net] has quit
[Quit: Lost terminal]
07:36 < vsmatck> It seems like because the imports in go are symbolic that
the compile time specialization (like C++ does) would be problematic.  Like you
couldn't just point at a *.a file of a package.  You'd need the *.go file.
07:36 < vsmatck> I mean symbolic, like they're not text substitution like
07:40 <@adg> vsmatck: re generics, we're basically trying to find the right
07:40 < vsmatck> I wonder if there could be a not-quite-JIT way where the
code for a function could be stored (as go code or some intermediate) and
compiled/cached on runtime.
07:40 <@adg> a more likely approach is java-style boxing
07:42 < vsmatck> I like the boxing idea from a ehh "marketing" perspective.
Like if you look at the space Go fills and the spaces other languages fill.
07:42 < vsmatck> Also it seems like it'd be the least difficult to
implement.  And you could do very convenient stuff like call a generic function
that exists in a shared object (when that exists later).
07:50 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-177-190.clienti.tiscali.it] has
joined #go-nuts
07:52 < vsmatck> I like the C++ concept idea where it makes you specify what
named functions and operators a class has to support.  That actually seems similar
to go interfaces.
07:53 < nsf> concepts are indeed compile-time go interfaces :)
07:53 < vsmatck> C++ as it is now with templates you pretty much specify
what stuff the generic type has to support in documentation.  Errors are crappy
because the type gets substituted in to 5000 places.
07:54 < vsmatck> I wonder if Go interfaces could be overloaded for generics.
07:54 < vsmatck> Like have them be Go runtime interfaces.
07:55 < vsmatck> There'd have to be support for specifying operators in the
interface tho.
07:57 < nsf> well, operators are not necessary
07:57 < nsf> as well as function overloading
07:58 < nsf> operator overloading is basically a syntax sugar
07:58 < nsf> you can always use methods for that: x = myVector.At(i);
myVector.SetAt(i, x);
07:59 < vsmatck> I'm not thinking of operator overloading.  I'm just
thinking you will need to specify what your type has to support in the
"concept-map like thing".
07:59 < nsf> ugly, but works
07:59 < nsf> well, if you want interfaces to do that job, they have an
ability to specify which methods type should have
08:00 < nsf> for most cases it's enough
08:00 < vsmatck> Are there any problems with generic functions being
specialized to built in types that support operators then.  *thinks*
08:01 < nsf> yes, there are problems like that
08:01 < nsf> but I guess in python they had the same issue before 3.0
08:01 < nsf> the problem was that built-in types and user defined types are
not the same
08:02 < nsf> and in Go it's the same here, and it will be a problem for
08:02 < nsf> in C++ for example you can define types with the same semantics
as built-in types
08:02 < nsf> due to constructors, operator overloading, type cast operators,
08:03 < nsf> but..  again, it requires a lot from the language :)
08:03 < vsmatck> I like the no-operator-overloading idea.
08:03 < nsf> operator overloading, reference types, constructors, function
08:03 < nsf> so..  in Go I guess something simpler should be a better idea
08:03 < vsmatck> You could still support specifying operators in the
concept-map without supporting operators on user defined types tho.
08:04 < nsf> I don't like the idea of a concept-map
08:04 < nsf> well, partially
08:04 < nsf> I don't know
08:04 < nsf> never used it
08:04 < vsmatck> I want to ask if you have a better idea.  (but I don't want
to sound like an ass)
08:05 < nsf> no I don't
08:05 < vsmatck> doh :)
08:05 < nsf> I don't have any ideas regarding templates for Go
08:05 < nsf> even more
08:05 < nsf> I think they are not necessary :)
08:05 < vsmatck> Well I just think since the concept-map idea is so similar
to Go that it could be a way to extend existing Go language features to integrate
with generics.
08:05 < nsf> a proper type-aware preprocessor will do the job
08:06 -!- wjlroe [~will@] has joined #go-nuts
08:06 < vsmatck> If we're assuming we're using the boxing idea then we won't
have the *.go file when linking to a pkg with a generic function in it.
08:07 < nsf> the only positive argument for generics against implementing
everything using runtime type information
08:07 < nsf> is performance
08:07 < nsf> the question is
08:08 < nsf> do we really need a generics system for performance important
parts of an application
08:08 < vsmatck> Well, there'd still need to be some language modifications.
I don't think _all_ of it could be done with reflection.
08:08 < nsf> because most likely speed optimizations involve hardcoding for
special cases
08:08 < vsmatck> Doesn't seem like it needs to be no-runtime-peformance-cost
like in C++.  But it shouldn't be slow.
08:09 < nsf> how fast it should be?
08:09 < vsmatck> I have the idea that Go fits some where between C++ and
scripting languages on the performance scale.
08:09 < nsf> we can take the java approach for that
08:09 < vsmatck> ya
08:09 < nsf> it is reasonably fast (compared to python for example)
08:10 < nsf> but on the other hand
08:10 < nsf> I really want templates like in C++
08:10 < nsf> for simple stuff
08:10 < nsf> my favourite example is min max functions
08:11 < nsf> there is no reason why we should bother writing them again and
again for different types
08:11 < nsf> as well as sorting functions
08:12 -!- wjlroe [~will@] has quit [Ping timeout: 240 seconds]
08:12 < vsmatck> I'd a library like "bytes" but for all types of slices.
08:12 < nsf> C's qsort is fast, but C++'s std::sort is much faster for
certain cases
08:12 < nsf> e.g.  sorting an array of floats
08:12 < nsf> and things like that are important for some areas
08:12 < nsf> e.g.  3d graphics
08:12 < nsf> :P
08:13 < nsf> vsmatck: well, you need generic containers
08:13 < nsf> I'd like to see them too
08:13 < vsmatck> Seems like something like a sort function should be written
in C and not go.
08:13 < vsmatck> Err oh,,..  I understand.
08:13 < nsf> why can't it be written in Go?
08:13 -!- wjlroe [~will@] has joined #go-nuts
08:14 < vsmatck> ya because you want to be able to sort user defined types.
08:14 < vsmatck> My brain is not very quick when thinking generically.  :)
08:14 <@adg> nsf: the question is, do you complicate the language just for
max and min?
08:14 < nsf> adg: yep, I know that there are questions
08:14 < nsf> :)
08:15 < vsmatck> adg: false dichotomy there.
08:15 < nsf> well, I don't know what I want from the language
08:15 < nsf> but looks like other people want that
08:16 < vsmatck> Wait.  I think you were being humorous.  I get it.
08:16 < nsf> people are using C++ for some reason
08:16 < nsf> and for the same reason sometimes they don't use C for their
08:17 <@adg> vsmatck: i'm making an allegorical point.  you can save
yourself a small amount of trouble when solving certain problems, but at what
08:17 < vsmatck> adg: Ah I understand 100% what you mean now.
08:18 < nsf> actually I will perfectly understand if Go authors eventually
decide not implementing generics for Go
08:19 < nsf> but, I'm sure it will result in something in future
08:20 < nsf> I bet a lot of people don't use Go because it doesn't have
08:20 < nsf> :\
08:20 < vsmatck> I wouldn't understand.  Generics make programs higher
08:20 < nsf> no, they are not
08:20 < nsf> programmers do
08:20 < vsmatck> False dichotomy.  They both do.
08:20 <@adg> vsmatck: i have seen some truly awful code written using
generics :P
08:20 < uriel> nsf: maybe we are better off without all those people that
are incapable of trying something that doesn't tick all their arbitrary checkboxes
08:21 < uriel> nsf: I'm sure there are many people that wont use Go because
"Go has no classes", can't say I will miss them
08:22 <@adg> i'm not concerned about people not using go because it doesn't
have x or y
08:22 < uriel> vsmatck: generics add complexity to the language, higher
language complexity increases the possibilities for higher program complexity,
which is the opposite of higher quality
08:22 <@adg> what i'm concerned with is people being enthusiastic about go,
using it to solve their problems, but then feeling that there are better
08:22 < vsmatck> adg: heh, ya some generic C++ code is...  hard to even
describe without lots of profanity.
08:22 < uriel> (note that I said potential, obviously this will as nsf well
pointed out, depend on the programmer)
08:23 < uriel> vsmatck: I think new kinds of profanity need to be invented
to properly describe much C++ out there
08:24 < nsf> uriel: maybe..  maybe..
08:24 < vsmatck> Well.  I suppose with generics there are opposing forces
for quality.  Like you said implementing something like an algorithm generically
may be harder.  But it only has to be done once.  It increases code reuse.  So I
guess it's a tradeoff.
08:26 < uriel> vsmatck: in the end it will depend completely (besides on the
programmer) on how generics actually look like, and how they interact with the
rest of the language, etc
08:26 < nsf> vsmatck: sometimes writing your own STL is a very good thing,
as practice tells us a lot of C++ programmers don't even know how to use STL, what
reuse are we talking about here?
08:26 < nsf> reuse fails a lot
08:26 < vsmatck> I'm really confident generic programming can be made easier
than it is to do in C++.
08:26 < uriel> just 'adding generics' is unlikely to do any good other than
shutting up people whinning about stuff they don't care to understand
08:26 < nsf> I've never seen proof for that
08:26 < taruti> look at ML for examples
08:27 < taruti> and Go *has* generics, just not user-definable generics.
08:27 < vsmatck> nsf: writing your own STL seems clearly like a bad idea.
Are you joking here?
08:27 < nsf> vsmatck: no, I'm not
08:27 < nsf> of course not the fully compliant STL
08:27 < nsf> but your own map, string, vector classes
08:27 < nsf> simply to understand how they work
08:27 < nsf> is a very good exercise for any programmer
08:28 < uriel> obsession with 'code reuse' has caused as much, or perhaps
more, damage to the software world as obsession with (often premature and
misguided) "performance optimizations"
08:28 < vsmatck> nsf: oh!  I understand what you're saying.  Yeah it can be
a good learning experience for sure.  I just wouldn't want all the C++ programs I
use to have written their own STL.  But I understand your point.
08:28 < taruti> C++ is one of the most horrible generics implementations
08:29 < nsf> I'm not saying that you should use that hand made STL in your
projects, but programmers that use STL should have experience writing their own
08:29 < nsf> otherwise sometimes they do crazy stuff
08:29 < vsmatck> uriel: I think an example of the idea of code reuse going
too far OO inheritance.  I'm not convinced of the idea of inheritance.
08:29 < taruti> one can do "inheritance" in Go too
08:30 < vsmatck> nsf: ya I gotcha.  I fully agree with you.
08:31 < nsf> hehe
08:31 < uriel> vsmatck: as with "optimizations", things that supposedly are
designed to improve code reuse often end up being counterproductive and causing
even more code, and specially more convoluted code
08:32 < nsf> personally I don't understand inheritance
08:32 -!- tasosos [~tasosos@] has joined #go-nuts
08:32 < nsf> like in LLVM, "TargetData" is a subclass of Pass
08:32 < nsf> wtf O_o
08:32 <@adg> i was told the other night that class hierarchy is essential to
solve problems in software
08:32 <@adg> i didn't really know how to respond :)
08:32 < nsf> someone lied to you
08:32 < uriel> i (think) I understand inheritance, what I don't understand
is why anyone would think it is a good idea to totally conflate and convolute the
type system with the organization and reuse of code
08:33 <@adg> how i ended up responding
08:33 < nsf> uriel: yes, people do crazy stuff with inheritance
08:33 -!- sahid [~sahid@LNeuilly-152-21-22-10.w193-253.abo.wanadoo.fr] has joined
08:33 < nsf> and for some other reason
08:33 <@adg> is that master programmers can wield a type system to do
amazing things
08:33 < vsmatck> People reading code are like CPUs in a way.  Inheritance
wreaks some havoc on your brains cache.  So do header files etc.
08:33 < nsf> they think that using inheritance itself makes code documented
and clear
08:33 <@adg> but interface design is the hardest part of programming, and
conventional OO is almost entirely interface design
08:34 < vsmatck> It's almost nicer to have to write a little extra code and
know that when you're looking at a text file that it contains every function that
an object has.
08:34 <@adg> with class-based OO the game is rigged so that any
not-brilliant programmer writes sub-part code
08:34 <@adg> "sub-par"
08:34 -!- Xurix [~Luixsia@AToulouse-254-1-14-60.w83-203.abo.wanadoo.fr] has joined
08:35 < nsf> adg: hehe, that's why I like (in a "special" way) gtk's glib
and gobject thing
08:35 < nsf> writing class hierarchies is so hard with it
08:35 < nsf> that you will think twice
08:35 < vsmatck> OO works great for toy problems.  I can never design those
relationships up front on most real stuff I've made.
08:35 <@adg> this idea appealed to him, as it didn't speak against his
ability to write good OO code, and he could see the problems I was getting at :)
08:35 < nsf> :)
08:35 < vsmatck> But GUI code may be an exception.  I'm very impressed with
the GTKMM class hierarchies for example.
08:35 < nsf> vsmatck: gtkmm is horrible
08:35 < vsmatck> GUI code seems to lend itself very well to OO.
08:36 < nsf> they are using const std::string& as a function argument just
to pass it to the C api's const char*
08:36 < nsf> isn't that stupid?
08:37 < nsf> well, in GUI of course string allocations means nothing
08:37 < vsmatck> naw, that's normal.
08:37 < nsf> but I think it's stupid :)
08:37 < nsf> mean*
08:37 < nsf> because if you're passing a string literal to a function that
takes const std::string&
08:37 < nsf> it does malloc
08:38 < nsf> copies you string and then passes it to the C api
08:38 < nsf> :\
08:38 < nsf> and then frees it immediately
08:39 < nsf> uhm..  does anyone know a good alternative for LLVM?
08:40 < nsf> libjit?  c--?
08:40 < vsmatck> c-- pff.  Do any humans actually use that for programming?
08:41 < nsf> i believe one of the haskell compilers use it
08:41 < nsf> but then it translates c-- to llvm bytecode >_<
08:42 < vsmatck> I read some blurb a while ago about llvm getting a front
end that generates llvm middle end code directly.
08:42 < vsmatck> I know very little about this.
08:42 < nsf> looks like llvm is the best free solution for architecture
independent code generation out there :(
08:44 < nsf> at least it is well supported
08:53 < plexdev> http://is.gd/fNAaZ by [Stephen Ma] in go/src/pkg/bufio/ --
bufio: minor documentation fix.
08:55 -!- Simon_Wang [~linfves@] has quit [Quit: Leaving]
08:59 -!- scyth [~scyth@rots.in.rs] has quit [Quit: Leaving]
09:05 -!- jmettraux [~jmettraux@] has quit [Remote host closed the
09:05 -!- slashus2 [~slashus2@74-141-107-118.dhcp.insightbb.com] has joined
09:09 -!- Xurix [~Luixsia@AToulouse-254-1-14-60.w83-203.abo.wanadoo.fr] has quit
[Read error: Connection reset by peer]
09:10 < uriel> adg: I have not seen any 'brilliant' programmers make good
use of OO, actually 'brilliant' programmers that think they are being smart often
create the most byzantine class hierarchies
09:11 < uriel> (the whole 'patterns' bandwagon is an example of this)
09:22 -!- scyth [~scyth@zeljko.eunet.rs] has joined #go-nuts
09:22 -!- Fish9 [~Fish@] has joined #go-nuts
10:10 <@adg> uriel: i dunno, we have some good OO code at Google
10:14 -!- res99 [~anonymous@] has quit [Ping timeout: 245 seconds]
10:31 * nsf doubts that OO can be good
10:31 < nsf> unless of course it's something like 1 level of inheritance
using pure virtual base class
10:31 < Bombe> OO is not good or bad.  It just is.
10:32 < nsf> having 2 levels or more doesn't work for my head :\
10:34 -!- dju [dju@fsf/member/dju] has quit [Quit: Quitte]
10:41 < plexdev> http://is.gd/fNHW9 by [Andrew Gerrand] in go/ -- A+C:
Albert Strasheim
10:41 < plexdev> http://is.gd/fNHWf by [Albert Strasheim] in
go/src/pkg/syscall/ -- syscall: add ucred structure for SCM_CREDENTIALS over UNIX
10:42 -!- slashus2 [~slashus2@74-141-107-118.dhcp.insightbb.com] has quit [Quit:
10:51 < EthanG> OO is just like beaurocracy, to my mind.  a large hierarchy
with a different, complex procedure for each interaction, and everyone seems to
think you improve the system by growing it
10:57 < plexdev> http://is.gd/fNJ6x by [Mikio Hara] in go/src/pkg/net/ --
net: fix comment
10:59 < scyth> disregarding frigid and over-complex OO code, base strengths
of it (isolated namespaces, constructors, type methods) are implemented in Go. So
what's wrong there?  It's not called OO, so it's "better"?
11:07 -!- ExtraSpice [~XtraSpice@] has joined #go-nuts
11:08 < EthanG> I think Go is better to many because it's impossible to
create a hierarchy as such, but there was something in the blog, one sec
11:08 -!- jmettraux [~jmettraux@PPPbm5391.kanagawa-ip.dti.ne.jp] has joined
11:09 < EthanG> this is it.
11:10 < scyth> so what then, if we have a OO language which has the same
restrictions on hierarchies like go, then OO would be acceptable?:)
11:11 < EthanG> I don't entirely understand it, I'll admit, but they say it
took 20 minutes to do something which would not only be a lot of work in Java or
C++ but would result in more brittle code
11:12 < EthanG> Um, I use a fairly strict definition of OO myself.  I
include object hierarchy, at least
11:13 < EthanG> perhaps I should not use the term OO & instead mention Java
& C++, but then you get things like Gtk+ which are C but are all hierarchal *
11:13 < EthanG> &
11:14 < plexdev> http://is.gd/fNKg5 by [Stephen Ma] in go/src/pkg/http/ --
http: return the correct error if a header line is too long.
11:15 < scyth> for the example from blog, it wouldn't take much longer to do
similar thing in java/c++.  It more like "solution for such things is built in Go.
You don't have to waste time on thinking much how to solve such ideas"
11:16 -!- tasosos_ [~tasosos@] has joined #go-nuts
11:16 < EthanG> well ok
11:16 -!- tasosos [~tasosos@] has quit [Ping
timeout: 265 seconds]
11:17 < scyth> EthanG, well.  what do you think you're dealing with when you
write data:=new(StructName), if not pointer to type, eg.  object
11:19 < scyth> good thing about go is that it keeps constraints visible (eg,
there can be no type inheritance) so it keeps you away from writing bad OO code
11:20 < EthanG> I thought type inheritance was intrinsic to OO
11:22 < EthanG> I've avoided OO altogether, I'll admit, lol.
11:23 < EthanG> well not entirely.  Learned a bit about it a long time ago,
thinking it was a good thing, got absolutely nowhere with it, and was quite happy
to find people who hated it.  I'm more of a hardware guy anyway
11:23 < scyth> well..  I think in its definition it is actually, however..
you're not forced to use it...  so it's cool that Go takes what devs thought it's
really usable from OO approach and disregards the rest
11:23 < EthanG> yeah :)
11:36 -!- wrtp [~rog@] has joined #go-nuts
11:37 -!- tasosos_ [~tasosos@] has quit [Ping timeout: 240 seconds]
11:46 -!- artefon [~thiago@] has joined #go-nuts
11:51 -!- tasosos_ [~tasosos@] has joined #go-nuts
12:05 < nsf> C++, lol..  codegen.o compiled with -g, size: 876156; without
-g: 32228
12:05 < nsf> :P
12:06 < nsf> the same logic written in C _with_ -g takes 40 kilobytes
12:07 < nsf> viva template bloat!
12:07 < scyth> and in go?:)
12:07 < nsf> I haven't written that in Go yet
12:07 < nsf> but it will be the same as C
12:08 < nsf> a bit bigger
12:08 < nsf> due to runtime reflection
12:08 < nsf> and static linkage
12:08 < nsf> ehm..  or a lot bigger, don't know :)
12:09 -!- jhawk28 [~jhawk28@user-142gfrf.cable.mindspring.com] has joined #go-nuts
12:19 -!- skejoe [~skejoe@] has joined #go-nuts
12:21 -!- artefon [~thiago@] has quit [Quit: bye]
12:23 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.3]
12:25 -!- skelterjohn [~jasmuth@c-76-124-135-199.hsd1.nj.comcast.net] has joined
12:31 < Soultaker> debug data is not "bloat" imo.
12:31 < Soultaker> (and even if you don't strip it before
distribution/installation I doubt it's even loaded under normal use)
12:45 -!- ronnyy [~quassel@p4FF1DE1D.dip.t-dialin.net] has joined #go-nuts
12:46 < uriel> 'OO' has become a totally meaningless term
12:50 -!- skejoe [~skejoe@] has quit [Quit: leaving]
12:54 -!- skelterjohn [~jasmuth@c-76-124-135-199.hsd1.nj.comcast.net] has quit
[Quit: skelterjohn]
13:04 -!- gmilleramilar [~gmiller@184-106-207-119.static.cloud-ips.com] has quit
[Remote host closed the connection]
13:05 -!- gmilleramilar [~gmiller@184-106-207-119.static.cloud-ips.com] has joined
13:06 -!- res99 [~anonymous@] has joined #go-nuts
13:19 -!- skelterjohn [~jasmuth@c-76-124-135-199.hsd1.nj.comcast.net] has joined
13:20 -!- ikaros [~ikaros@] has quit [Quit: Leave the magic to
13:20 -!- nighty^ [~nighty@x122091.ppp.asahi-net.or.jp] has joined #go-nuts
13:23 -!- ikaros [~ikaros@] has joined #go-nuts
13:25 -!- plainhao [~plainhao@mail.xbiotica.com] has joined #go-nuts
13:28 -!- sacho [~sacho@79-100-50-200.btc-net.bg] has joined #go-nuts
13:29 -!- rlab [~Miranda@] has joined #go-nuts
13:30 -!- iant [~iant@] has quit [Ping timeout: 240 seconds]
13:36 < gmilleramilar> Is it just my install, or are gofmt rewrite rules
broken with the current revision?  when I do 'gofmt -r="8->9"', I get "parsing
pattern 8: input:1:1: expected 'EOF', found newline"
13:39 -!- virtualsue [~chatzilla@nat/cisco/x-axejmltwnnpjudbu] has joined #go-nuts
13:40 -!- melter [~Melter@2001:4930:116:0:21c:c0ff:feef:eaf5] has quit [Remote
host closed the connection]
13:40 -!- iant [~iant@] has joined #go-nuts
13:40 -!- mode/#go-nuts [+v iant] by ChanServ
13:41 -!- tvw [~tv@] has joined #go-nuts
13:49 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts
13:49 -!- jhawk28 [~jhawk28@user-142gfrf.cable.mindspring.com] has quit [Remote
host closed the connection]
13:49 -!- emmanueloga [~emmanuelo@] has joined #go-nuts
13:56 -!- skelterjohn [~jasmuth@c-76-124-135-199.hsd1.nj.comcast.net] has quit
[Quit: skelterjohn]
14:01 < plexdev> http://is.gd/fNXi8 by [Russ Cox] in 4 subdirs of
go/src/cmd/ -- ld: share asmlc
14:02 < plexdev> http://is.gd/fNXij by [Russ Cox] in 4 subdirs of
go/src/cmd/ -- gc: O(1) string comparison when lengths differ
14:03 -!- zozoR [~zozoR@4705ds1-ris.0.fullrate.dk] has joined #go-nuts
14:03 -!- tvw [~tv@] has quit [Remote host closed the connection]
14:03 -!- tvw [~tv@] has joined #go-nuts
14:15 -!- agl [~agl@207-237-83-222.c3-0.nyw-ubr1.nyr-nyw.ny.cable.rcn.com] has
joined #go-nuts
14:16 -!- mode/#go-nuts [+v agl] by ChanServ
14:16 -!- nighty^ [~nighty@x122091.ppp.asahi-net.or.jp] has left #go-nuts ["Oh
14:17 <+agl> adg: ping
14:20 -!- jmettraux [~jmettraux@PPPbm5391.kanagawa-ip.dti.ne.jp] has quit [Remote
host closed the connection]
14:20 -!- napsy [~luka@] has joined #go-nuts
14:21 -!- wrtp [~rog@] has quit [Ping timeout: 272 seconds]
14:26 -!- wrtp [~rog@] has joined #go-nuts
14:30 -!- zozoR [~zozoR@4705ds1-ris.0.fullrate.dk] has quit [Ping timeout: 264
14:36 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has quit [Ping timeout: 240
14:42 -!- zozoR [~zozoR@4705ds1-ris.0.fullrate.dk] has joined #go-nuts
14:43 -!- Venom_X [~pjacobs@] has joined #go-nuts
14:52 -!- asm [nop@asm.dj] has left #go-nuts []
14:52 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has joined
14:58 -!- slashus2 [~slashus2@74-141-107-118.dhcp.insightbb.com] has joined
14:58 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has quit [Ping
timeout: 264 seconds]
15:00 -!- rejb [~rejb@p5B05AF51.dip.t-dialin.net] has joined #go-nuts
15:00 -!- rejb [~rejb@p5B05AF51.dip.t-dialin.net] has quit [Changing host]
15:00 -!- rejb [~rejb@unaffiliated/rejb] has joined #go-nuts
15:05 -!- deso [~deso@x0561a.wh30.tu-dresden.de] has joined #go-nuts
15:08 -!- iant [~iant@] has quit [Quit: Leaving.]
15:17 -!- awidegreen [~quassel@] has joined #go-nuts
15:17 -!- iant [~iant@nat/google/x-ipioggsgxuxuxsel] has joined #go-nuts
15:17 -!- mode/#go-nuts [+v iant] by ChanServ
15:19 < plexdev> http://is.gd/fO3on by [Russ Cox] in 2 subdirs of go/ -- gc:
...  bug
15:21 -!- awidegreen [~quassel@] has quit [Read error: Connection
reset by peer]
15:21 -!- bortzmeyer [~bortzmeye@batilda.nic.fr] has quit [Quit: Leaving.]
15:22 -!- napsy [~luka@] has quit [Read error: Operation timed out]
15:22 -!- awidegreen [~quassel@] has joined #go-nuts
15:31 -!- deso [~deso@x0561a.wh30.tu-dresden.de] has quit [Remote host closed the
15:36 < plexdev> http://is.gd/fO4Sc by [Russ Cox] in go/src/pkg/ -- build:
disable archive/zip for nacl (fix build)
15:44 -!- Tv [~tv@cpe-76-168-227-45.socal.res.rr.com] has quit [Ping timeout: 240
15:47 -!- agl [~agl@207-237-83-222.c3-0.nyw-ubr1.nyr-nyw.ny.cable.rcn.com] has
quit [Read error: Operation timed out]
15:47 -!- irc [~irc@] has joined #go-nuts
15:47 -!- agl [~agl@207-237-83-222.c3-0.nyw-ubr1.nyr-nyw.ny.cable.rcn.com] has
joined #go-nuts
15:47 -!- Guest40272 [~irc@] has quit [Read error: Connection reset
by peer]
15:47 -!- Xenith [~xenith@2001:470:1:9:8002::1] has quit [Read error: Operation
timed out]
15:47 -!- Xenith [~xenith@2001:470:1:9:8002::1] has joined #go-nuts
15:48 < wjlroe> agl: hello Adam.  How goes?
15:59 -!- napsy [~luka@] has joined #go-nuts
16:02 -!- Venom_X [~pjacobs@] has quit [Quit: Venom_X]
16:06 -!- Venom_X [~pjacobs@] has joined #go-nuts
16:08 < plexdev> http://is.gd/fO7nf by [Russ Cox] in 2 subdirs of go/ --
runtime: correct iteration of large map values
16:08 < plexdev> http://is.gd/fO7nn by [Russ Cox] in go/src/pkg/net/ -- net:
comment pedantry
16:09 -!- deso [~deso@x0561a.wh30.tu-dresden.de] has joined #go-nuts
16:14 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts
16:34 -!- dahankzter [~henrik@92-244-3-192.customers.ownit.se] has joined #go-nuts
16:35 -!- dahankzter [~henrik@92-244-3-192.customers.ownit.se] has quit [Client
16:42 -!- Tv [~tv@gige.bur.digisynd.com] has joined #go-nuts
16:43 < wrtp> anyone used netchan?
16:44 < wrtp> i get an error when trying to use this code:
16:45 < wrtp> and i can't see what i'm doing wrong.
16:46 < cbeck> wrtp: compile or runtime?
16:46 < wrtp> runtime
16:47 < anticw> connection failed?
16:47 < wrtp> i get this error from the client:
16:47 < wrtp> (the importer)
16:47 < wrtp> 2010/10/06 17:43:44 netchan import: response error: wrong
direction for channel: c
16:47 < wrtp> and this from the exporter:
16:48 < wrtp> 2010/10/06 17:43:44 netchan export: sending error to client:
wrong direction for channel: c
16:48 < wrtp> 2010/10/06 17:43:44 netchan export: error decoding client
header: gob: type mismatch in decoder: want struct type netchan.header; got
16:48 < wrtp> the last error looks like it's a bug.
16:48 < wrtp> but the other two are puzzling, because i specified the same
direction in each case.
16:48 < cbeck> both your importer and exporter are called with netchan.Send
16:48 < wrtp> which should be ok if, as the documentation says, the Dir is
from the client's point of view
16:49 < wrtp> ah, maybe by "client" if means the client of the netchan
package, not the client as in "client and server"
16:49 -!- Fish [~Fish@9fans.fr] has joined #go-nuts
16:50 < wrtp> yes, that's it
16:50 < wrtp> i think that documentation is ambiguous...
16:50 < agl> wjlroe: huh, hi there Will :)
16:51 < cbeck> It had been a while since I worked with netchan, think I did
the exact same thing
16:51 < wjlroe> agl: I though it was really odd that you weren't in this
channel before.  but I guess timezones etc...
16:52 < wjlroe> agl: are you using Go for lots of projects atm?
16:57 < agl> wjlroe: this channel was sufficient crazy at launch time that I
ended up avoiding it until now
16:57 < wjlroe> oh i see :)
16:58 < agl> wjlroe: and I'm only here now because adg asked me about
ChanServ access
16:58 -!- Venom_X [~pjacobs@] has quit [Quit: Venom_X]
16:58 < agl> wjlroe: I'm afraid that Chromium is pretty much eating me
alive^W^W up all my time these days
16:58 < wjlroe> oh ok, still that's a great project
17:01 < cbeck> Quick question: is there any way to recover from a deadlock
17:01 < cbeck> Nothing I've tried has worked, since the panic is thrown in
the runtime
17:02 < anticw> agl: to be fair ...  chrome has (in my mind) gone from a
wtf!?!  event to what is clearly the most usable browser out there for me
17:02 < anticw> the initial negativity was mostly because linux support was
badly lacking early too
17:05 < nsf> +1, there was a time when chromium's fonts were very ugly on
linux, but since it was fixed, it's my browser of choice (bye bye, firefox)
17:11 -!- tvw [~tv@] has quit [Remote host closed the connection]
17:12 * MaybeSo_ wonders when someone will come up with the equiv of firebug
17:12 < Soultaker> Ctrl-Shift-C?
17:13 < Soultaker> doesn't do everything Firebug does, though.
17:14 < nsf> i've never used firebug, but yeah, chromium has a nice built-in
17:14 -!- artefon [~thiago@] has joined #go-nuts
17:14 < Soultaker> it doesn't have network panel like firebug's afaik.
17:15 -!- sahid [~sahid@LNeuilly-152-21-22-10.w193-253.abo.wanadoo.fr] has quit
[Quit: Ex-Chat]
17:16 -!- artefon [~thiago@] has left #go-nuts []
17:17 < MaybeSo> last time I used it it wasn't quite the same
17:18 -!- MaybeSo [~jimr@lions.Stanford.EDU] has quit [Quit: leaving]
17:18 -!- MaybeSo [~jimr@lions.Stanford.EDU] has joined #go-nuts
17:19 -!- virtualsue [~chatzilla@nat/cisco/x-axejmltwnnpjudbu] has quit [Quit:
ChatZilla 0.9.86 [Firefox 3.5.13/20100914122142]]
17:19 -!- Venom_X [~pjacobs@] has joined #go-nuts
17:20 -!- ExtraSpice [~XtraSpice@] has quit [Quit: Leaving]
17:35 < jnwhiteh> this is a _really_ stupid question, but there is no way to
take a pointer to a struct and convert it to a byte array so it can be written out
to a file, is there?
17:36 < jnwhiteh> I know there's a few other ways to do it, just trying to
see if I can do something like this quick for a proof of concept.
17:38 < KirkMcDonald> jnwhiteh: I suspect you have to use the unsafe
17:38 -!- napsy [~luka@] has quit [Ping timeout: 272 seconds]
17:38 < jnwhiteh> even with it I can't see how to do it =)
17:41 -!- markcol [~markcol@] has joined #go-nuts
17:41 < exch> the gob package should do what you need
17:42 -!- wjlroe [~will@] has quit [Read error: Operation timed out]
17:42 < KirkMcDonald> The gob package does indeed provide the most
convenient serialization format.  It isn't equivalent to casting the pointer to
the struct to a byte array, but that's probably a good thing.
17:43 -!- MaksimBurnin [~max@44.188-224-87.telenet.ru] has joined #go-nuts
17:43 < jnwhiteh> well in this case the format I need to output is very
precise =)
17:43 < jnwhiteh> so I suspect I'll need to implement my own readers/writers
17:43 < jnwhiteh> which is where I was headed.
17:43 < exch> with unsafe it gets a lil messy, but doable: var t T; slice :=
(*(*[1<<31 - 1]byte)(unsafe.Pointer(&t)))[0:sizeOfStruct]
17:44 -!- ronnyy [~quassel@p4FF1DE1D.dip.t-dialin.net] has quit [Remote host
closed the connection]
17:44 < jnwhiteh> exch: thanks, I'll make a note of that
17:44 < exch> note that this will not actually allocate 1<<31-1 bytes.
it just a pointer.  which makes it extra nice
17:44 < exch> incidentally 1<<31-1 is the largest possible size an
array/slice can have
17:45 -!- slashus2 [~slashus2@74-141-107-118.dhcp.insightbb.com] has quit [Quit:
17:45 < jnwhiteh> exch: I actually need a 1024 byte array/slice to write out
17:46 < jnwhiteh> I'm not sure where in your voodoo I could use that =)
17:46 < jnwhiteh> if at all
17:46 < exch> You should take note that reassembling the struct in this same
manner will fail miserably if the struct contains a pointer type field.  That
pointer will obviously not be valid anymore
17:46 < jnwhiteh> aye, that is not a concern
17:47 < exch> unsafe is called 'unsafe' for a reason :)
17:47 < exch> It should probably have been named 'ThereBeMonstersHere'
17:47 < jnwhiteh> =)
17:47 < KirkMcDonald> The unsafe package's documentation does not make it
clear that unsafe.Pointer may be converted to any pointer type.
17:48 < jnwhiteh> thanks for the help guys, I'm off for the day!
17:48 < KirkMcDonald> It says that any pointer type may be converted to
17:48 < KirkMcDonald> But it doesn't explicitly spell out that the reverse
is also possible.
17:49 < exch> I think the less is said about unsafe in the docs, the better
17:50 <+iant> KirkMcDonald: the spec says "and vice versa".
17:50 < KirkMcDonald> iant: True.  But the docs for the unsafe package do
17:50 <+iant> ah
17:51 <+iant> should be fixed
17:58 -!- napsy [~luka@] has joined #go-nuts
17:59 < wrtp> jnwhiteh: you could use enconding/binary
17:59 < wrtp> s/enconding/encoding/
17:59 -!- acts_as [~acts_as@] has quit [Remote host closed the
18:00 -!- acts_as [~acts_as@] has joined #go-nuts
18:00 -!- Fish [~Fish@9fans.fr] has quit [Ping timeout: 240 seconds]
18:04 -!- zozoR [~zozoR@4705ds1-ris.0.fullrate.dk] has quit [Ping timeout: 252
18:05 -!- tasosos_ [~tasosos@] has quit [Ping
timeout: 264 seconds]
18:07 -!- artefon [~thiago@] has joined #go-nuts
18:08 -!- scyth [~scyth@zeljko.eunet.rs] has quit [Quit: Leaving]
18:09 -!- artefon [~thiago@] has quit [Client Quit]
18:23 -!- tasosos_ [~tasosos@] has joined #go-nuts
18:25 -!- Fish [~Fish@9fans.fr] has joined #go-nuts
19:02 < Gertm> I don't get unidirectional channels.  If you make a channel
you can only send on, who's going to read those messages then?
19:03 < wrtp> Gertm: you don't make a channel you can only send on.
19:03 < wrtp> you make a bi-directional channel, and then assign it to a
unidirectional channel
19:03 < Gertm> wrtp: ok.  But they're in the docs, I wanna know what their
use is.
19:04 < Gertm> wrtp: can you show me an example?
19:04 < wrtp> func Values() <-chan int {c := make(chan int); go func() {c
<- 99; close(c)}(); return c}
19:05 < wrtp> the channel returned from Values can only be read
19:05 < wrtp> but the channel c inside Values can be read and written
19:05 < wrtp> the channel returned from Values is the read-only side of c.
19:05 < Gertm> ah!
19:06 < Gertm> yeah, that makes sense.  Ok thanks!
19:06 < wrtp> god
19:06 < wrtp> oops
19:06 < wrtp> good
19:06 -!- plainhao [~plainhao@mail.xbiotica.com] has quit [Quit: plainhao]
19:06 < Gertm> so you don't make unidir channels, you return 1 direction of
a bidir chan
19:06 < wrtp> yup
19:07 < Gertm> making sure whoever is on the other side can't abuse it
19:07 < wrtp> yup
19:07 -!- Zoopee [alsbergt@zoopee.org] has quit [Quit: Ejected]
19:07 -!- Zoopee [alsbergt@zoopee.org] has joined #go-nuts
19:08 < Gertm> the example you gave only sends 1 value, but the receiver of
the <-chan will read just that 1, then it gets closed?
19:08 < Gertm> (just making sure I get everything here)
19:08 < wrtp> yes
19:08 < wrtp> the body of that goroutine might send any number of values on
that channel.
19:09 -!- htoothrot [~mux@71-8-117-228.dhcp.ftwo.tx.charter.com] has quit [Read
error: Connection reset by peer]
19:09 -!- htoothrot [~mux@71-8-117-228.dhcp.ftwo.tx.charter.com] has joined
19:10 < wrtp> here's another example: func Reader(c <-chan int) {for x :=
range c {fmt.Println(x)}}; func Writer(c chan<- int) { for i := 0; i < 999;
i++ {c <- i}}; func Connect() {c := make(chan int); go Reader(c); go Writer(c)}
19:10 < wrtp> Connect()
19:12 < Gertm> so the reader and writer funcs only pick up that 1 side of
the channel
19:12 < wrtp> yes
19:12 < Gertm> pretty cool how that works
19:12 < wrtp> it works well
19:13 < wrtp> it's all in the type system - the underlying runtime value is
exactly the same regardless of the directionality of the channel
19:13 < Gertm> but the compiler will stop you if you try to do the wrong
operation on those unidir chans, right?
19:14 < wrtp> yes
19:15 < wrtp> and the type system won't let you convert back from a unidir
chan to a bidir chan
19:16 < Gertm> ok, I'll try this in some code now, thanks for your help!
19:17 < wrtp> np
19:32 -!- XenoPhoenix [~Xeno@cpc5-aztw24-2-0-cust39.aztw.cable.virginmedia.com]
has joined #go-nuts
19:33 -!- dju [dju@fsf/member/dju] has joined #go-nuts
19:34 -!- skejoe [~skejoe@] has joined #go-nuts
19:35 -!- jacekm [jacekm@parrot.dobremiasto.net] has quit [Ping timeout: 264
19:36 -!- jacekm [jacekm@parrot.dobremiasto.net] has joined #go-nuts
19:36 -!- dju [dju@fsf/member/dju] has quit [Max SendQ exceeded]
19:37 -!- dju [dju@fsf/member/dju] has joined #go-nuts
19:41 -!- dahankzter [~henrik@92-244-3-192.customers.ownit.se] has joined #go-nuts
19:52 < ptrb> ugh, ok, clearly I'm not understanding the xml package
19:53 < ptrb> but if the xml is
19:53 < ptrb> what does the go struct hierarchy look like?
19:54 < MaybeSo> do you mean after using the reflection converter?
19:54 < exch> type Foo struct { Bar struct{ A string; B int } }
19:54 < ptrb> I mean how do I build my structs to model that data
19:54 < ptrb> right, that's what I thought :|
19:54 < exch> mind the capital field names.  They have to be public fields
19:54 < ptrb> and then xml.Unmarshal(str, &Foo{}) right?
19:55 < exch> var f Foo; xml.Unmarshal(data, &f)
19:55 < ptrb> right.
19:55 < ptrb> Will <foobar> match 'type Foobar' as well as 'type
19:56 < exch> good question.  I haven't tried that
19:57 < ptrb> alright, and if it's
19:57 < ptrb> i guess it matches on the variable name rather than the
19:57 < ptrb> *type name
19:57 < exch> type Foo struct{ Bar []MyBar }
19:57 < exch> yes
19:59 -!- dahankzter [~henrik@92-244-3-192.customers.ownit.se] has quit [Quit:
20:00 -!- zippity [5ab4c407@gateway/web/freenode/ip.] has joined
20:00 -!- Xurix [~Luixsia@AToulouse-254-1-23-104.w81-250.abo.wanadoo.fr] has
joined #go-nuts
20:00 -!- napsy [~luka@] has quit [Ping timeout: 252 seconds]
20:00 < ptrb> and it does partial matching, right...  I don't have to
specify the whole XML structure
20:01 < exch> You should be able to pass in subsets of the xml.  As long as
it's a valid piece of xml.  So all opening tags must have matching closing tags
20:02 < ptrb> yeah.  urgh.  wish I could debug this :|
20:08 -!- markcol [~markcol@] has quit [Read error: Connection reset by
20:16 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has joined
20:22 -!- zippity [5ab4c407@gateway/web/freenode/ip.] has quit [Quit:
Page closed]
20:23 -!- Eridius [~kevin@unaffiliated/eridius] has joined #go-nuts
20:25 -!- slashus2 [~slashus2@74-141-107-118.dhcp.insightbb.com] has joined
20:32 -!- ExtraSpice [~XtraSpice@] has joined #go-nuts
20:37 -!- photron [~photron@port-92-201-30-121.dynamic.qsc.de] has joined #go-nuts
20:40 -!- gabriel9 [~gabriel9@] has quit [Read error: Connection
reset by peer]
20:40 -!- deso [~deso@x0561a.wh30.tu-dresden.de] has quit [Read error: Connection
reset by peer]
20:42 -!- gabriel9 [~gabriel9@] has joined #go-nuts
20:45 -!- gabriel9 [~gabriel9@] has quit [Read error: Connection
reset by peer]
20:46 -!- gabriel9 [~gabriel9@] has joined #go-nuts
20:48 -!- gabriel9 [~gabriel9@] has quit [Read error: Connection
reset by peer]
20:50 -!- steveno [~stevenoli@paludis/cheerleader/steveno] has joined #go-nuts
20:51 -!- tasosos_ [~tasosos@] has quit [Remote
host closed the connection]
20:55 -!- Fish [~Fish@9fans.fr] has quit [Remote host closed the connection]
21:00 -!- jcao219 [~jcao219@pool-173-74-61-111.dllstx.fios.verizon.net] has joined
21:01 -!- napsy [~luka@] has joined #go-nuts
21:02 -!- skejoe [~skejoe@] has quit [Quit: Lost terminal]
21:04 < gmilleramilar> Is it just my install, or are gofmt rewrite rules
broken with the current revision?  when I do 'gofmt -r="8->9"', I get "parsing
pattern 8: input:1:1: expected 'EOF', found newline"
21:07 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has quit [Ping
timeout: 272 seconds]
21:10 -!- ronnyy [~quassel@p4FF1DE1D.dip.t-dialin.net] has joined #go-nuts
21:10 -!- dahankzter [~henrik@92-244-3-192.customers.ownit.se] has joined #go-nuts
21:12 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has joined
21:14 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has quit [Read
error: Connection reset by peer]
21:15 < Soultaker> gmilleramilar: I updated just to check, and I think
you're right.
21:16 -!- slashus2 [~slashus2@74-141-107-118.dhcp.insightbb.com] has quit [Quit:
21:18 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has quit [Quit:
21:18 < gmilleramilar> Soultaker: same result?
21:18 < Soultaker> yes.  and previously it worked.
21:19 < gmilleramilar> ok, I'll file it.
21:20 -!- dahankzter [~henrik@92-244-3-192.customers.ownit.se] has quit [Quit:
21:23 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has joined
21:29 -!- gabriel9 [~gabriel9@] has joined #go-nuts
21:30 -!- mikeg [~michael@ip68-110-226-15.dc.dc.cox.net] has quit [Read error:
Connection reset by peer]
21:31 -!- gabriel9 [~gabriel9@] has quit [Read error: Connection
reset by peer]
21:31 -!- mikeg [~michael@ip68-110-226-15.dc.dc.cox.net] has joined #go-nuts
21:35 -!- gabriel9 [~gabriel9@] has joined #go-nuts
21:38 -!- gabriel9 [~gabriel9@] has quit [Read error: Connection
reset by peer]
21:38 -!- ikaros [~ikaros@] has quit [Quit: Leave the magic to
21:38 -!- gabriel9 [~gabriel9@] has joined #go-nuts
21:39 -!- gabriel9 [~gabriel9@] has quit [Read error: Connection
reset by peer]
21:40 -!- gabriel9 [~gabriel9@] has joined #go-nuts
21:40 < gmilleramilar> Soultaker: if you're interested:
21:43 -!- gabriel9 [~gabriel9@] has quit [Read error: Connection
reset by peer]
21:44 -!- gabriel9 [~gabriel9@] has joined #go-nuts
21:45 -!- gabriel9 [~gabriel9@] has quit [Remote host closed the
21:46 -!- gabriel9 [~gabriel9@] has joined #go-nuts
21:47 -!- gabriel9 [~gabriel9@] has quit [Remote host closed the
21:50 -!- ExtraSpice [~XtraSpice@] has quit [Ping timeout: 240
21:50 -!- gabriel9 [~gabriel9@] has joined #go-nuts
21:53 -!- gabriel9 [~gabriel9@] has quit [Read error: Connection
reset by peer]
21:53 -!- photron [~photron@port-92-201-30-121.dynamic.qsc.de] has quit [Ping
timeout: 250 seconds]
21:53 -!- awidegreen [~quassel@] has quit [Remote host closed the
21:54 -!- gabriel9 [~gabriel9@] has joined #go-nuts
21:57 < plexdev> http://is.gd/fOAxM by [Rob Pike] in go/doc/ --
playground.html: filesystem is not a word.
22:07 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.3]
22:14 < plexdev> http://is.gd/fOBJ0 by [Russ Cox] in go/lib/codereview/ --
codereview: disallow submit of *.[chys] files indented with spaces
22:22 -!- ronnyy [~quassel@p4FF1DE1D.dip.t-dialin.net] has quit [Remote host
closed the connection]
22:26 -!- MaksimBurnin [~max@44.188-224-87.telenet.ru] has quit [Ping timeout: 272
22:35 -!- belkiss [~belkiss@drn13-1-78-235-168-105.fbx.proxad.net] has joined
22:35 -!- belkiss [~belkiss@drn13-1-78-235-168-105.fbx.proxad.net] has quit
[Client Quit]
22:52 -!- Xurix [~Luixsia@AToulouse-254-1-23-104.w81-250.abo.wanadoo.fr] has quit
[Read error: Connection reset by peer]
22:56 -!- wrtp [~rog@] has quit [Quit: wrtp]
23:01 -!- napsy [~luka@] has quit [Ping timeout: 264 seconds]
23:19 -!- jmettraux [~jmettraux@] has joined #go-nuts
23:25 -!- iant [~iant@nat/google/x-ipioggsgxuxuxsel] has quit [Read error:
Operation timed out]
23:33 -!- thomas_b_ [~thomasb@cm-] has joined #go-nuts
23:33 -!- iant [~iant@nat/google/x-lvhbyrystqydywgr] has joined #go-nuts
23:33 -!- mode/#go-nuts [+v iant] by ChanServ
23:33 -!- rlab [~Miranda@] has quit [Read error: Connection reset by
23:33 -!- dacc [~Adium@D-128-95-10-232.dhcp4.washington.edu] has joined #go-nuts
23:34 -!- thomas_b [~thomasb@cm-] has quit [Ping
timeout: 245 seconds]
23:34 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-177-190.clienti.tiscali.it] has
quit [Quit: E se abbasso questa leva che succ...]
23:34 -!- iant1 [~iant@] has joined #go-nuts
23:38 -!- iant [~iant@nat/google/x-lvhbyrystqydywgr] has quit [Ping timeout: 265
23:39 -!- skelterjohn [~jasmuth@c-76-124-135-199.hsd1.nj.comcast.net] has joined
23:47 -!- msolo [~msolo@nat/google/x-xaxtujlmctboepps] has joined #go-nuts
23:52 -!- jcao219 [~jcao219@pool-173-74-61-111.dllstx.fios.verizon.net] has quit
[Ping timeout: 252 seconds]
23:58 -!- skelterjohn [~jasmuth@c-76-124-135-199.hsd1.nj.comcast.net] has quit
[Quit: skelterjohn]
--- Log closed Thu Oct 07 00:00:09 2010