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

--- Log opened Sun Jun 12 00:00:46 2011
--- Day changed Sun Jun 12 2011
00:00 < uriel> true, still, given how fast the language is changing, having
to keep the compilers up with changes in the language would be an extra hassle
00:01 < nsf> is it still changing?  :)
00:02 < kevlar> I thought with bootstrapped compilers you ship a compiler
which can build the compiler which then builds itself and then the libraries
00:02 < nsf> true
00:03 < nsf> but maintaining two compilers is hard
00:03 < kevlar> why two compilers?
00:03 < kevlar> you just need the one
00:03 < kevlar> (p.s.  we have two compilers now...)
00:03 < nsf> well then if the compiler is written in the language it
00:03 < nsf> you need to compile it somehow
00:03 < nsf> chicken and egg, bla bla bla
00:04 < nsf> but that's the point
00:04 < nsf> you don't need to compile it
00:04 < nsf> just use binaries :)
00:04 < kevlar> you have the bootstrap binary which compiles the compiler,
then you use the compiled compiler to compile itself (for any new optimizations)
and then the libraries
00:04 < kevlar> then the compiler you just compiled is kept locally as the
next bootstrap compiler
00:04 < nsf> yes
00:05 < kevlar> I don't see how that requires two compilers
00:05 < nsf> now someone should write the compiler
00:05 < nsf> it doesn't
00:05 < KBme> but then the old compiler's bugs aren't fixed
00:05 < KBme> so you do need two compilers
00:06 < kevlar> KBme: yeah, they are
00:07 < KBme> oops
00:07 < KBme> heh, i didn't think of compiling the compiler with the
compiler ☺
00:07 < kevlar> it is concievable that somehow a compiler bug could cause
any compiler it compiled to have the same bug, but that would be pretty tough and
probably not too difficult to work around
00:08 < kevlar> KBme: I used to use Gentoo linux on my servers, and the
first thing you did there was download an OTS gcc and then used that to compile an
optimized gcc and then used that optimized gcc to compile an optimized libc
00:09 < kevlar> it took for-freaking-ever, lol
00:10 -!- crashR [~crasher@codextreme.pck.nerim.net] has quit [Quit: (◣_◢)
BigBrowser is watching ⓎⓄⓊ]
00:10 < KBme> kevlar, yeah i use gentoo
00:11 < KBme> but i still wonder sometimes
00:11 < KBme> where the gcc used to compile the stage3's come from
00:11 < kevlar> KBme: I stopped in early 2010
00:11 < kevlar> KBme: it's just a gcc compiler optimized for size and
statically linked and stripped
00:12 < uriel> the thing is, C (at least the C gcc is written is) is not
changing every week
00:12 < kevlar> (for a compatible target architecture; the 64-bit one was
usually the 32-bit one)
00:13 < kevlar> uriel: the compiler isn't changing a whole lot
00:13 < uriel> and you don't need to distribute a 'bootstrap' compiler that
implements the langauge changes, *but* is implemented without the changes
00:13 < uriel> kevlar: no, but still would be a hassle
00:13 < kevlar> uriel: I don't see the argument.
00:14 < uriel> well, nevermind, this is a pointless discussion in any case
00:14 < kevlar> as long as you don't use bleeding edge features in the
compiler itself, you're fine
00:14 < uriel> kevlar: the thing is, you don't just add features to the
00:14 < uriel> unlike other languages, Go actually changes and simplifies
shit, not just add new layers of shit
00:15 < kevlar> I don't disagree that you would have some special cases left
in for compiling the compiler in some rare circumstances, but I think that go has
stabilized beyond that being a problem.
00:15 < kevlar> that is just my opinion.
00:16 < KBme> i think this topic has something to do with the 'trusting
trust' paper
00:17 < uriel> I think its got fucking nothing to do with it
00:17 < uriel> its got to with being practical, resources available and
00:17 < KBme> thank you for abusing me with oyur language
00:17 < KBme> it feels so good
00:17 < kevlar> especially when it's me you're mad at...
00:18 < uriel> I'm not mad at anyone in particular
00:18 -!- crashR [~crasher@codextreme.pck.nerim.net] has joined #go-nuts
00:19 < uriel> it is just a silly discussion, if somebody wants a Go
compiler in Go, they can go and write it, like the erGo folks did, I just happen
to think there are better things to do at the moment
00:19 < uriel> and to assume the language wont change in non-backwards
compatible ways ever again is naive, and ignores one of the things that make Go
great (and better all the time), that if a way to improve and polish something is
found, it is done, and we are not stuck with stuff for historical reasons
00:20 < KBme> i'd love to be more knowledgeable in these fields, but i do
think it has to do with that paper since we're discussing self-hosting compilers
and compiler bugs
00:20 < uriel> here gofix helps, having the compilers written in Go wouldn't
00:20 < uriel> KBme: I never mentioned compiler bugs
00:21 < uriel> and just because a paper is about self-hosting compilers
doesn't mean it is relevant to this discussion
00:21 < uriel> that paper was about security, and self-hosting Go compilers
or not, if somebody put a backdoor in the compilers of any language it would make
little difference
00:23 < KBme> yeah, i'm not into compilers enough so i shouldn't blab into
this discussion, sorry
00:24 < kevlar> I infered from the name of the paper KBme referenced that he
meant that the recursive nature of a trust model is similar to the recursive
nature of bootstrapping a compiler, which I think is a fair comparison.
00:24 < uriel> kevlar: if you don't know that paper, you really should read
00:24 < uriel> but it is not really relevant to this discussion
00:24 < uriel> the point is: if you compile shit, you are trusting the
compiler, and the compiler that compiled that compiler, and so on and on
00:25 < KBme> how i understood it, it's not only about malicious intent, but
also compiler bugs.  whatever.
00:25 < uriel> the languages involved are not really too relevant to the
argument of the paper, which is mostly theoretical and amusing
00:25 < KBme> kevlar, and yes, you should read that paper it's awesome (even
for me, an amateurà
00:25 < KBme> àツ
00:25 < uriel> KBme: compiler bugs can display similar properties of
self-perpetuation, but well, that is just a bug, and you fix it
00:27 < KBme> i wonder how twisted the ergo code actually is
00:29 -!- robteix [~robteix@host16.190-230-219.telecom.net.ar] has joined #go-nuts
00:30 < uriel> I wonder too
00:30 -!- whitespacechar [~whitespac@24-247-159-7.dhcp.klmz.mi.charter.com] has
quit [Quit: whitespacechar]
00:30 < kevlar> it hasn't been touched since, what, early 2010?
00:31 < kevlar> my guess is that (like gccgo originally) it had no garbage
collector and probably also a crippled runtime so that it could compile itself
00:31 -!- crashR [~crasher@codextreme.pck.nerim.net] has quit [Ping timeout: 250
00:31 < KBme> and used unsafe all over the place
00:32 < KBme> i remember aiju trying to build a kernel using go
00:32 < kevlar> `tiny`?
00:32 < kevlar> or was that someone else
00:32 < KBme> yeah, that does ring some bells
00:34 < uriel> KBme: no, that was http://gofy.cat-v.org
00:34 < uriel> er s/ KBme/ kevlar/
00:35 < uriel> tiny was part of the Go distribution
00:35 < uriel> somebody forked it
00:36 < KBme> oh, right, gofy!
00:36 < KBme> how could i forget that?  god damn
00:36 < kevlar> lol, I remember reading that now too
00:37 -!- whitespacechar [~whitespac@24-247-159-7.dhcp.klmz.mi.charter.com] has
joined #go-nuts
00:38 < kevlar> oh, that's disappointing
00:38 < kevlar> I went to the erGo forums to see if there was a user
00:38 < kevlar> and saw "oh look!  recent posts!"
00:38 < kevlar> not a single legitimate post in sight, all spam for handbags
and online games and whatnot.
00:44 < |Craig|> write a go interpreter in go, call it go-go.  (And run it
in itself and call it go-go-go)
00:44 < kevlar> |Craig|: there's already a gogo project
00:45 < kevlar> though it was someone's school assignment and was abandoned
when they turned it in.
00:45 < kevlar> (it was a go compiler that could compile itself)
00:45 < kevlar> though it wasn't really full featured.
00:45 < kevlar> in my mind, the hardest part of a go compiler for go would
be the runtime...
00:46 < kevlar> I would want to write the runtime in go, but that would
require a runtime, which is a chicken and egg problem my brain can't find the end
of :D
00:50 -!- Tv [~Tv@cpe-76-168-227-45.socal.res.rr.com] has quit [Quit: Tv]
00:51 -!- Tv [~Tv@cpe-76-168-227-45.socal.res.rr.com] has joined #go-nuts
00:51 -!- dannyft [~dannyft@3e6b0f67.rev.stofanet.dk] has quit [Quit: Leaving]
00:51 < |Craig|> kevlar: good point
00:52 < |Craig|> kevlar: you can implement the runtime in a subset of the
language that can be compiled without needing the runtime.  What scraps are left
would have to be done in assembly or something else lower level than go.
00:54 < |Craig|> clearly if you use a chan to implement a chan, you arn't
getting anywhere
00:55 -!- arctanx [~tk@] has joined #go-nuts
00:56 -!- bytbox [~s@] has quit [Remote host closed the connection]
00:57 * exch ports 'harmony' to Go/opengl for shits 'n giggles
01:02 -!- wchicken [~chicken@c-24-7-112-207.hsd1.ca.comcast.net] has joined
01:06 -!- Wiz126 [~Wiz@] has joined #go-nuts
01:23 -!- replore [~replore@ntkngw256114.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit
[Remote host closed the connection]
01:27 < exch> Anyone good with licenses?  If I write a port of a GPL3
licensed app, can I distribute it only with the same license?
01:28 -!- NiteRain [~kvirc@c-98-254-236-21.hsd1.fl.comcast.net] has joined
01:38 < KBme> yes, i'm pretty sure gpl is virulent in every possible way
01:38 < KBme> though i'm not that good with law either
01:38 < Namegduf> I think the relevant question is whether it counts as a
derivative work
01:39 < nsf> you looked into a GPL app - you're a derivative work now
01:39 < nsf> ;)
01:39 < Namegduf> You'd have the same question with a non-open licence or
closed source software
01:40 < KBme> heheh nsf ☺
01:40 < KBme> nsf, a port is pretty much the software unchanged
01:41 < KBme> imagine that something that links to gnu needs to use gpl
01:41 < KBme> so..yes, you'll need to use gpl
01:41 < exch> meh
01:42 < uriel>
01:42 < uriel> *facepalm*
01:42 < nsf> "I'm a firm believer that the bracing-style used should really
be decided by the coding-standard adopted by the people or company working on the
code-base rather than being forced upon by the language itself."
01:42 < nsf> >_<
01:43 < KBme> hahahahah
01:43 < KBme> lol
01:44 < KBme> show me one language where that is possible
01:44 < KBme> other than microsoft crap which i'm guessing supports every
fucking thing
01:44 < icey> KBme: nemerle...  which is .net but not msft
01:44 < KBme> heh
01:44 < uriel> yea, maybe the whole syntax of the language should be
01:45 < KBme> uriel, exactly
01:45 < Namegduf> Does he insist on such a style when working in, say, Lisp?
01:45 < nsf> uriel: technically it is possible :)
01:45 < icey> KBme: nemerle can use braces or white-space indentation just
by issuing a pragma at the top of a file
01:45 < uriel> nsf: yes, and totally stupid
01:45 < nsf> compiler that takes an AST instead of a source code
01:45 < nsf> :D
01:45 < nsf> lol, you can even make it in XML
01:45 < nsf> :D
01:46 < KBme> icey, that's so awesome i'm going to fall asleep faping to
01:46 < icey> KBme: careful, you could lose an eye
01:46 < uriel> in any case, people are really in love with their bike sheds
01:46 < KBme> hahah lisp optional braces
01:46 < Namegduf> No no
01:46 < Namegduf> Lisp with braces
01:46 < Namegduf> And the rest of the Allman style
01:46 < Namegduf> Because that's what he wants
01:47 < Namegduf> And obviously all languages should permit him to use it.
01:47 < KBme> yes, all languages should just have optional syntax
01:47 < nsf> maybe this guy is Eric Allman
01:47 < nsf> :D
01:48 * KBme wikipedia's Eric Allman
01:48 < uriel> he wrote sendmail iirc
01:48 < uriel> that should be enough
01:48 < nsf> and he is gay
01:49 < uriel> I'm not religious, but I think writting sendmail is a capital
01:49 < KBme> is sendmail the MTA that uses m4 for it's configuration?
01:51 < KBme> yep
01:59 -!- dfc [~dfc@124-149-60-140.dyn.iinet.net.au] has joined #go-nuts
01:59 -!- araujo [~araujo@] has joined #go-nuts
01:59 -!- araujo [~araujo@] has quit [Changing host]
01:59 -!- araujo [~araujo@gentoo/developer/araujo] has joined #go-nuts
02:03 -!- robteix [~robteix@host16.190-230-219.telecom.net.ar] has quit [Quit:
Computer has gone to sleep.]
02:04 < kevlar> uriel: those people who love their bike sheds can sleep
soundly now that in go you can import "bike/shed"
02:05 < kevlar> incidentally, now I can send an email that says `import
"bike/shed"; func main() { _ = shed.Blue }`
02:11 < KBme> huh
02:12 < KBme> you're lying
02:12 < KBme> i see it in your eyes
02:12 < KBme> there is no bike pkg
02:12 -!- krolaw [~krolaw@] has joined #go-nuts
02:14 -!- wchicken [~chicken@c-24-7-112-207.hsd1.ca.comcast.net] has quit [Ping
timeout: 244 seconds]
02:15 < nsf> KBme:
02:15 < nsf> http://codereview.appspot.com/4557047/patch/33001/27006
02:16 -!- stalled [~stalled@unaffiliated/stalled] has joined #go-nuts
02:17 < KBme> gagagagagag
02:17 < KBme> s,g,h,g
02:18 < KBme> where are the unicorns?  a bikeshed without a unicorn?  wtf‽
02:20 -!- rputikar [~240182H@203-206-21-179.dyn.iinet.net.au] has quit [Quit:
02:21 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.5]
02:32 -!- dreadlorde [~dreadlord@c-24-11-39-160.hsd1.mi.comcast.net] has quit
[Ping timeout: 252 seconds]
02:39 < kevlar> http://tip.goneat.org/pkg/bike/shed/
02:40 -!- kcant [d4dcc8b8@gateway/web/freenode/ip.] has joined
02:40 -!- whitespacechar [~whitespac@24-247-159-7.dhcp.klmz.mi.charter.com] has
quit [Quit: whitespacechar]
02:45 -!- squeese [~squeese@cm-] has quit [Remote host
closed the connection]
02:46 < KBme> ha
02:46 -!- dshep [~user@c-76-103-91-143.hsd1.ca.comcast.net] has joined #go-nuts
02:48 < kevlar> I totally thought it was a joke when I saw the CL.
02:48 < kevlar> I suppose it provides an example of what a package looks
02:51 < KBme> exactly
02:51 < KBme> it has only educational purposes
02:51 < KBme> no humour whatsoever
02:52 -!- kcant [d4dcc8b8@gateway/web/freenode/ip.] has quit [Quit:
Page closed]
02:55 < kevlar> I still think he should've linked to salmon.bikeshed.org and
not red.bikeshed.org.
02:55 < KBme> green is the way to go!
02:56 < |shad0w|> everyone knows bike sheds should be yellow
02:56 < KBme> you guys with your sissy colors
02:56 < Namegduf> Ew, yellow
02:57 < kevlar> you guys are so easy ;-)
02:59 < KBme> no, you're too easy
02:59 < KBme> and you're yellow
03:00 < Tv> your mom's too easy
03:00 < kevlar> actually, I'm just south of 720nm, but it's a common
03:00 < KBme> did you just insult my mom?
03:00 * KBme slaps Tv around with a fat herring
03:00 < Tv> i think the canonical continuation to that is "i did last night"
03:01 < KBme> no, ur mom is a fat herring
03:52 -!- justinlilly [justinlill@] has joined #go-nuts
03:57 -!- danilo04 [~danilo04@] has quit [Ping timeout: 240 seconds]
04:06 -!- franciscosouza [~francisco@] has quit [Quit:
04:08 -!- _dfc [~dfc@124-149-60-140.dyn.iinet.net.au] has joined #go-nuts
04:09 -!- rejb [~rejb@unaffiliated/rejb] has quit [Disconnected by services]
04:10 -!- rejb [~rejb@unaffiliated/rejb] has joined #go-nuts
04:11 -!- dfc [~dfc@124-149-60-140.dyn.iinet.net.au] has quit [Ping timeout: 255
04:20 -!- NiteRain [~kvirc@c-98-254-236-21.hsd1.fl.comcast.net] has quit [Ping
timeout: 240 seconds]
04:20 -!- Queue29 [~Queue29@173-8-182-114-SFBA.hfc.comcastbusiness.net] has joined
04:23 -!- dfr|mac [~dfr|work@ool-182e3fca.dyn.optonline.net] has joined #go-nuts
04:29 -!- _dfc [~dfc@124-149-60-140.dyn.iinet.net.au] has quit [Quit: Silly man, I
am a Baron!]
04:30 -!- franciscosouza [~francisco@] has joined #go-nuts
04:35 -!- franciscosouza [~francisco@] has quit [Read error:
Connection reset by peer]
04:35 -!- franciscosouza_ [~francisco@] has joined #go-nuts
04:37 -!- NiteRain [~kvirc@c-98-254-236-21.hsd1.fl.comcast.net] has joined
04:41 -!- dfr|mac [~dfr|work@ool-182e3fca.dyn.optonline.net] has quit [Remote host
closed the connection]
04:52 -!- gtaylor [~gtaylor@99-5-124-9.lightspeed.gnvlsc.sbcglobal.net] has joined
04:55 -!- dreadlorde [~dreadlord@c-24-11-39-160.hsd1.mi.comcast.net] has joined
05:00 -!- skelterjohn [~jasmuth@] has joined #go-nuts
05:02 -!- ExtraSpice [XtraSpice@78-57-204-104.static.zebra.lt] has joined #go-nuts
05:23 -!- ghais [~ghais@c-68-32-79-77.hsd1.ga.comcast.net] has quit [Quit:
Computer has gone to sleep.]
05:26 -!- skelterjohn [~jasmuth@] has quit [Quit: skelterjohn]
05:32 -!- dfc [~dfc@124-149-60-140.dyn.iinet.net.au] has joined #go-nuts
05:34 -!- alanlian1 [~yogafire@c-71-204-189-190.hsd1.ca.comcast.net] has joined
05:37 -!- alanliang [~yogafire@c-71-204-189-190.hsd1.ca.comcast.net] has quit
[Ping timeout: 258 seconds]
05:39 -!- dreadlorde [~dreadlord@c-24-11-39-160.hsd1.mi.comcast.net] has quit
[Ping timeout: 276 seconds]
05:42 -!- danilo04 [~danilo04@] has joined #go-nuts
05:47 < elazarl> Is there a way to write program that uses plugins with go?
05:48 < vsmatck> What is a pluggin?
05:48 < elazarl> So that you can use a plugin, without recompiling the whole
05:48 < Namegduf> Yes- you push them out to another process.
05:48 < vsmatck> Your question is too generic.
05:49 < elazarl> vsmatck: Classic example, I have /usr/bin/cat which reads
.so files from /etc/cat/plugins, they all provide the function func
proc_line(string) string, loads them and uses this function
05:50 < elazarl> vsmatck: if I want to write a plugin to cat, I just
implement this function and run cat as "cat --plugin /path/to/my/plugin.so"
05:50 < elazarl> vsmatck: Specific enough?
05:50 < vsmatck> Yes.  So the question is if go supports dymanic linking?  I
do not know the answer but perhaps someone here will.
05:50 -!- Tv [~Tv@cpe-76-168-227-45.socal.res.rr.com] has quit [Ping timeout: 255
05:51 < elazarl> vsmatck: Dynamic linking is a way to implement it.  Maybe
there's another way
05:52 < elazarl> vsmatck: (contrived example you can use "gocombine
binary_prog plugin" which will combine both to a single static file and run it)
05:52 < vsmatck> Ah, I see why you use the word "pluggin" then.  Is a
requirement that the pluggin be written in go?
05:52 < vsmatck> It sounds like it is.
05:53 < elazarl> Namegduf: I thought about it, but it's way less convenient,
as I can't force an API.  I must re-invent the communication protocol between them
05:53 < Namegduf> elazarl: Er
05:53 < Namegduf> You can expose an arbitrary API via RPC
05:53 < elazarl> vsmatck: Yes, it will hardly make sense to write them in
other languages
05:53 < Namegduf> It's exactly as much an API specified exactly as much as
05:53 < Namegduf> I suppose you need to pick your RPC mechanism
05:53 < Namegduf> But aside that...
05:54 -!- Bigbear1 [~Cody@d75-156-128-238.abhsia.telus.net] has joined #go-nuts
05:54 < elazarl> Namegduf: That's what I call "reinvent the API".  I have an
excellent RPC mechanism which is called "function calls", and it's way more
05:54 < vsmatck> I don't think RPC is a good idea.  For that you'd have to
have full programs running for each pluggin, and communicate over network.  Sounds
really heavey for pluggins.
05:54 < Namegduf> elazarl: That's not a Remote Procedure Call mechanism.
05:54 < Namegduf> Due to not being remote.
05:55 < Namegduf> You don't need to reinvent an RPC mechanism and shouldn't.
05:55 < Namegduf> There's a whole bunch of perfectly usable ones.
05:55 < Namegduf> Pick one.
05:55 < Namegduf> Bam.
05:55 < vsmatck> It'd be nice if there was a go compiler as part of the go
standard library.  That'd make this easy.  heh
05:55 < Namegduf> They just proxy function calls.
05:55 < Namegduf> That's it.
05:55 < elazarl> vsmatck: Yeah I thought about it too, it would be awesome
05:56 < elazarl> vsmatck: And I can run plugins written in plaintext
05:56 < Namegduf> Anyways, no, there's no dynamic linking.
05:56 < elazarl> Namegduf: As I said, dynamic linking is a way to implement
plugin architecture, there are other solutions
05:58 < elazarl> Namegduf: Let me give you an example why is that a bad
idea.  Say my plugin invovles go's AST.  With RPC I have to copy and rebuild the
AST with each call, with plugin architecture, I just use it.  With RPC I can't
give you a reader interface that the plugin host implements (at least it's not
simple), with plugin I can.
05:58 -!- skelterjohn [~jasmuth@] has joined #go-nuts
05:58 < Namegduf> elazarl: RPC *is* a plugin architecture.  See: Basically
all major browsers.
05:58 < Namegduf> elazarl: Dynamic linking is not available in Go. Just
05:58 < Namegduf> You asked for suggestions, I gave one.
05:59 < Namegduf> If you don't like it, that's okay, but it won't bring
dynamic linking to you.
05:59 < vsmatck> It will be eventually, I'd think.  Go may be a little too
young for what elazarl wants to do.
06:00 < elazarl> Namegduf: Implementing plugins in RPC is a new trick which
was hard to do.  It was done only for security, and I think it was a pain for
implement (see the hoops they had to go through to implement OpenGL).  The old
architecture was based on dynamic linking.
06:00 < elazarl> vsmatck: Yeah, probably
06:01 < Namegduf> elazarl: It was a pain because the old thing wasn't RPC.
But implementing plugins through RPC in general isn't that hard, no.
06:01 < Namegduf> RPC just proxies function calls, and that's not too clever
or complex.
06:01 < uriel> what is the actual *problem* you folks are trying to solve?
06:01 -!- zozoR [~Morten@2906ds2-arno.0.fullrate.dk] has joined #go-nuts
06:01 < uriel> or is this the usual purely speculative "I need blah,
because, well, just because it sounds good"
06:01 < skelterjohn> opengl via RPC?  :O
06:02 < Namegduf> OpenGL was really hard because OpenGL is Special, not
because RPC is hard
06:02 < skelterjohn> let's interface to hardware through the internet!
06:02 < skelterjohn> well...  i guess that's all of internet technology
06:02 < skelterjohn> so, bad example
06:02 < elazarl> Namegduf: I'll say that last time, dynamic linking is only
one option to have plugin architecture, and RPC is not the only other alternative.
06:02 < uriel> 05:48 < vsmatck> Your question is too generic.
06:03 < Namegduf> elazarl: Dynamic linking isn't an option right now unless
you want to do some major compiler work.
06:03 < uriel> I see little progress beyond this in the backlog
06:03 < Namegduf> elazarl: I dunno what other options there are.  You asked
for one, I suggested the major one.
06:03 < elazarl> uriel: yes...
06:03 < uriel> why would anyone want dynamic linking anyway?
06:03 < Namegduf> elazarl actually wants dynamic loading, not linking
06:03 < skelterjohn> uriel: besides the obvious?
06:03 < Namegduf> But eh
06:03 < uriel> whatever, why would anyone want it?
06:04 < uriel> skelterjohn: feature parity with the various DLL hells out
06:04 < Namegduf> You can recompile every time you want to load/unload a
06:04 < skelterjohn> imagine all of the programs in /usr/bin static linking
the go runtime
06:04 -!- Bigbear1 [~Cody@d75-156-128-238.abhsia.telus.net] has quit [Read error:
Connection reset by peer]
06:04 < uriel> Namegduf: a module that does what?
06:04 < uriel> skelterjohn: I don't have to imagine that, in Plan 9 all /bin
is statically linked, what is the problem?
06:04 -!- Bigbear1 [~Cody@d75-156-128-238.abhsia.telus.net] has joined #go-nuts
06:04 < Namegduf> uriel: Obviously depends on the scenario and even the
program.  This is discussion of plugin architectures.
06:05 -!- Bigbear1 [~Cody@d75-156-128-238.abhsia.telus.net] has left #go-nuts []
06:05 < skelterjohn> the size of /usr/bin goes from several megabytes to
several hundred megabytes?
06:05 < vsmatck> Namegduf: Good point.  Sounds like something like dlopen
would be nice for.
06:05 < uriel> actually, there are plenty of problems with dynamic linking,
static linking is just infinitely saner
06:05 < skelterjohn> Namegduf: i'm the one who derailed it - don't blame
uriel :)
06:05 < uriel> Namegduf: as somebody else said: "wtf is a 'plugin'"
06:05 < Namegduf> vsmatck: Go has no dlopen, that was what I kept saying
06:05 < uriel> dlopen?  yuck
06:06 < uriel> please, keep that shit away from Go, thank you
06:06 < elazarl> uriel: Let me explain the problem.  I want to distribute a
binary that implements a special proxy in Go. I want to enable people to write
plugins that does things to the traffic the proxy sees, and I want them to be able
to distribute them without changing the actual proxy.
06:06 < vsmatck> uriel: dynamic linking is needed eventually.  I have a good
example for this.  Imagine, if you will, a linux distribution.  A security update
gets released for libstdgo.  fin
06:06 < uriel> now, what again is the actual problem you are tring to solve?
06:06 < Namegduf> vsmatck: No, that's not "needed".
06:06 < uriel> elazarl: a proxy for what?
06:06 < Namegduf> If you have a distro with package management, you can push
recompiled versions of everything out all you like.
06:07 < vsmatck> For some definition of "needed" I'm sure you're right.
06:07 < elazarl> uriel: some special network traffic of our
06:07 * vsmatck leaves.
06:07 -!- skelterjohn [~jasmuth@] has quit [Quit: skelterjohn]
06:07 < uriel> elazarl: write your 'proxy' as a library, have the various
filters link against it for whatever it does
06:07 < uriel> if you do the design right, you can stack the proxies, just
like you can do cat | grep -v foo | tr a-z A-Z | sed ...
06:08 < elazarl> uriel: And then how would I combine plugins?  Filter first
with foo_plugin, then with bar_plugin?
06:08 < elazarl> My proxy frontend can allow that
06:10 < KBme> hahhah someone has not read the static linking versus dynamic
linking FAQ page
06:10 < KBme> AGAIN…
06:11 < elazarl> uriel: I'm not sure I can see how to do that, the proxy
listens to network traffic, and strips https, you also have to define its
destination (it's not exactly a proxy...) combining proxies is painful it would be
something like ./proxy_plugin --with-tls-listen -l 8081
localhost:80802|./proxy_plugin2 --without tls-listen -l 8082 destination:8083
06:11 < KBme> and even skelterjohn is guilty
06:12 < KBme> dynamic loading is a pain, and it won't be alleviated by some
linker or compiler magic
06:12 < uriel> elazarl: how you combine sed with tr?
06:12 < Namegduf> Dynamic linking is
06:12 < Namegduf> Dynamic loading in C is simples
06:12 < Namegduf> In Go there's a whole pile of problems
06:13 < KBme> yay plural of simple
06:13 < uriel> Namegduf: dynamic loading in C is a fucking nightmare
06:13 < uriel> in Go it is a non-issue
06:14 < KBme> Namegduf, not only in go, in somany lanugages it maeks u
06:14 < elazarl> uriel: so you're actually suggesting RPC.  It's fine, but
using actual go functions is way nicer, and I'm not sure you can afford
performance costs in all cases.
06:15 < elazarl> uriel: Think about implementing emacs plugins with unix
06:15 < uriel> elazarl: you can call pipes RPC, but calling read() and
write() is cetainly nicer than anything else
06:15 < uriel> unix has done it for >40 years, and it still rocks
06:15 < KBme> so in openGL's case: do you really want a user-specified code
to be run on bare hardware?
06:15 < uriel> elazarl: wtf does emacs have to do with anything?  and since
when is emacs an example of good software design?
06:16 < uriel> http://harmful.cat-v.org/software/dynamic-linking/
06:16 < elazarl> uriel: I gave an example where unix pipes doesn't make
06:16 < KBme> emacs doesn't make sense
06:16 < uriel> elazarl: so, are you actually trying to solve a problem, or
trying to make up problems to prove a point?
06:17 < elazarl> KBme: does vim make sense?  It has the same plugin-like
06:17 < uriel> elazarl: it certainly doesn't
06:17 < KBme> nope, it doesn't
06:17 < uriel> at least fucking emacs uses a lisp dialect for scripting
06:17 < KBme> it's not a lisp-machine
06:17 < uriel> in any case, even with dlopen you would never write emacs
extenssions in C, not even emacs is that broken
06:18 < uriel> does emacs use dlopen?  not to do 'plugins' that for sure
06:18 < KBme> uriel, much better, it just hacks into the lisp code as if
nothing mattered
06:19 < elazarl> uriel: I don't care whether or not to use dlopen, let me
06:19 < uriel> whatever it does, and whatever it is a good idea or not, it
is obviously irrelevant to any arguments regarding dynamic loading of compiled
06:20 < uriel> elazarl: you don't have to re-explain, it is clear enough you
have made up your mind (or been brainwashed into thinking) that there is only one
way to solve whatever problem you have
06:20 < uriel> no amount of arguing will change this
06:21 < elazarl> I want plugin writer to receive a parsed struct, change it,
and give it back to the host proxy, the host will unparse it, and send it away.
06:21 < elazarl> uriel: I just want to understand how you would do it, don't
want to argue
06:22 < KBme> rpc
06:22 < KBme> or netchans
06:22 < KBme> and yes, you will get the overhead of unix sockets
06:23 < elazarl> uriel: Then if I understand you correctly, I'll spawn a
plugin process for each request, the plugin will use functions "MyParse" and
"MyUnParse" that I'll provide, and it'll use them to parse and send the raw data
it receives from the pipe.
06:23 < elazarl> KBme: uriel had a slightly different idea than unix pipes.
06:23 < KBme> so what, X11 uses sockets and it has decent performance
eventhough it has all sorts of stupid hacks
06:24 < elazarl> KBme: than RPC
06:24 < uriel> elazarl: there are many ways you can do it, there is
absolutely nothing that requres you to spawn a new process per request (although
if it makes things simpler, it should not be an issue either, fork is ridiculously
06:24 < uriel> fuck rpc and sockets, just use pipes damn it
06:24 < uriel> what is this?  MS windows?  or what?
06:24 < KBme> uriel, fork is not fcucking ridicoulously cheap on unix
06:24 < uriel> (and I guess even windows has pipes)
06:24 < KBme> but it is on go
06:25 < elazarl> uriel: Actually yes..  but I think I can afford forking
06:25 < uriel> KBme: guess how werc manages to do hundreds of forks per
request and still have lower latency that similar apps written in a single process
using say php (or java, or whatever)
06:25 < uriel> claims that fork is slow are bullshit FUD by Windows and AIX
06:26 < uriel> you have fork tens of thousands of processes per second
without even noticing
06:26 < uriel> plus, using multiple processes lets you automagically take
advantage of multic-core systems
06:27 < elazarl> uriel: Just curious, how would you do it without spawning
new process per request?  New pipes per new requests, and new thread per pipe?
06:27 < uriel> if you are going to have an arbitrary set of routines
manipulating a stream or data, pipes are very hard to beat
06:27 < uriel> specially if you want to be able to distribute the components
of the pipeline independently
06:27 < uriel> another advantage: then people can write the filters in
whatever langauge they like, as long as they can read()/write()
06:28 < uriel> elazarl: you can keep a pool of processes, and reuse them,
set up the pipeline, reuse it as new requests come in
06:28 < KBme> uriel, yes, but that doesn't change a thing.  fork on unix is
expensive and on go it isn't, and you start feeling it at million requests, not
thousands or hundreds
06:29 < uriel> just like (in rc shell syntax, I'm sure even sh supports
something similar) I can do { cat foo; cat bar; for (i in /d/*) { cat $i } } | tr
A-Z a-z | sed s/bbb/ccc/ ...
06:29 < KBme> elazarl, just go yourfunc() and that's it, let the compiler
take care of the rest
06:29 < uriel> KBme: it is not expensive, stop fucking spreading bullshit
06:29 < uriel> fork is insanely CHEAP
06:30 < uriel> specially if your programs are *not* dynamically linked
06:30 < uriel> (statically linked programs fork() about a magnitude order
faster than dynamically linked ones last I checked)
06:30 < uriel> (but in any case, it is insanely fast)
06:30 < KBme> last you checked is in some quack plan9 paper
06:31 < uriel> KBme: no, it was on fucking lunix, so shut up
06:31 -!- piranha [~piranha@5ED43A0B.cm-7-5a.dynamic.ziggo.nl] has joined #go-nuts
06:31 < KBme> ☺
06:32 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Quit: |Craig|]
06:33 < KBme> i only comment for the sake of ignorance, nothing else
06:33 < uriel> I noticed
06:35 -!- justcode4me [~zero@99-6-94-238.lightspeed.irvnca.sbcglobal.net] has
joined #go-nuts
06:38 < manveru> is there an equivalent of /etc/resolv.conf on windows?
06:38 < KBme> god damn all these morons won't understaend that one process
is teh wai to go!  one proecess for teh kenrel, precesses aend any dynamic loaeded
librabrary i cna think of!
06:38 < KBme> ANY‼
06:41 * KBme is teh Homer Simpson of programmmming
06:41 < KBme> (i should probably add another m to make it sound more
06:42 -!- justcode4me [~zero@99-6-94-238.lightspeed.irvnca.sbcglobal.net] has left
#go-nuts []
06:44 < uriel> manveru: no idea, I know there is a hosts file
06:45 < |shad0w|> manveru, you should be able to change dns services on the
interface settings
06:47 < manveru> |shad0w|: yeah, but i want to look up the current settings
06:47 < manveru> in go, that is :)
06:48 < |shad0w|> ohh
06:48 < manveru> oh well, maybe i'll just leave that to people who actually
have win boxes
06:56 < elazarl> uriel: and just curious, how would you implement plugins to
an editor?  A plugin that can, say, add a menu entry?
06:57 < uriel> I wouldn't
06:57 < uriel> I hate configuring and adding extenssions to something as
basic and simple as a text editor, if there is something I need which the editor
doesn't do, the editor is broken
06:57 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts
06:58 < uriel> but assumming I wanted to have extenssions for a text editor,
and ignoring the acme-like file system interface, I would use something like:
06:58 < uriel> (or more likely, scheme)
07:00 < uriel> for other 'scripting' languages implemented in Go see:
07:00 < uriel> the Languages section
07:01 < uriel> (and yes, if somebody else complains about how annoying you
are, I'll ban you, there is more than enough noise in backlog already)
07:11 -!- elazarl [d4b35bc2@gateway/web/freenode/ip.] has left
#go-nuts []
07:12 -!- GilJ [~GilJ@zeus.ugent.be] has joined #go-nuts
07:17 -!- krolaw [~krolaw@] has quit [Quit: krolaw]
07:28 -!- uriel_ [~uriel@li43-28.members.linode.com] has joined #go-nuts
07:33 -!- Netsplit *.net <-> *.split quits: rejb, Cork[home], Knirch,
vsmatck, jessta_, werdan7, Cobi, jeremy_c, jlaffaye, scoeri, (+184 more, use
/NETSPLIT to show all of them)
07:36 -!- awidegreen [~quassel@h-170-226.A212.priv.bahnhof.se] has joined #go-nuts
07:38 -!- Netsplit over, joins: yebyen, Katibe, xyproto, rejb, werdan7, kevinwatt,
mibocote, [muttox], pingveno, prip (+12 more)
07:38 -!- Pathin_ [~root@gladsheim.nullbytestudios.net] has joined #go-nuts
07:38 -!- Netsplit over, joins: Kissaki
07:38 -!- Kami_ [~kami@] has joined #go-nuts
07:38 -!- Natch [~natch@c-adcee155.25-4-64736c10.cust.bredbandsbolaget.se] has
joined #go-nuts
07:38 -!- Netsplit over, joins: Knirch, edsrzf, anticw, cco3, fhs, Stiletto,
kanru, apexo
07:38 -!- ServerMode/#go-nuts [+o adg] by pratchett.freenode.net
07:39 -!- |shad0w| [~|shad0w|@unaffiliated/shad0w/x-9754281] has joined #go-nuts
07:39 -!- xb95_ [~xb95@qq.is] has joined #go-nuts
07:39 -!- brandini_ [~orbit@adsl-69-221-166-239.dsl.akrnoh.ameritech.net] has
joined #go-nuts
07:39 -!- mpl_ [~mpl@sd-18712.dedibox.fr] has joined #go-nuts
07:39 -!- d_m_ [~d_m@] has joined #go-nuts
07:39 -!- Netsplit over, joins: impl
07:39 -!- krolaw [~krolaw@] has joined #go-nuts
07:39 -!- venk [~user@] has joined #go-nuts
07:39 -!- Netsplit over, joins: arctanx, Niedar, aa_, taruti, stalled, ivan`,
|Craig|, zozoR, danilo04, Queue29 (+63 more)
07:39 -!- jtoy_ [~jtoy@li167-197.members.linode.com] has joined #go-nuts
07:39 -!- Netsplit over, joins: kamaji, Rennex, schilly, bartbes, zeroXten, mjard,
Crnobog|Work, russell_h
07:39 -!- comex [~root@ec2-67-202-46-7.compute-1.amazonaws.com] has quit [Excess
07:39 -!- comex_ [~root@ec2-67-202-46-7.compute-1.amazonaws.com] has joined
07:39 -!- Pathin_ [~root@gladsheim.nullbytestudios.net] has quit [Max SendQ
07:39 -!- djbrown_ [~djbrown@h236n2-g-va-a12.ias.bredband.telia.com] has joined
07:39 -!- dshep` [~user@c-76-103-91-143.hsd1.ca.comcast.net] has joined #go-nuts
07:39 -!- Netsplit over, joins: yiyus, Fish, aiju, jlouis, piranha, preflex,
tgall_foo, segy, drhodes, jlaffaye (+3 more)
07:39 -!- str1ngs [~strings@li88-131.members.linode.com] has joined #go-nuts
07:39 -!- fluf^arr [~camelid@s.pl0rt.org] has joined #go-nuts
07:39 -!- Netsplit over, joins: tav, alanlian1, gtaylor, justinlilly, hallas,
sacho, flaguy48, +iant, Adys, i__ (+10 more)
07:39 -!- Netsplit *.net <-> *.split quits: bartbes, russell_h,
Crnobog|Work, jtoy_, kamaji, Rennex, zeroXten, schilly, mjard
07:39 -!- Netsplit over, joins: Pathin
07:39 -!- Netsplit over, joins: shachaf, ttblrs_, araujo, jstemmer, XenoPhoenix,
KirkMcDonald, Archwyrm, aslakr, Soultaker, rl
07:39 -!- dfc [~dfc@124-149-60-140.dyn.iinet.net.au] has joined #go-nuts
07:39 -!- Kami_ [~kami@] has quit [Changing host]
07:39 -!- Kami_ [~kami@unaffiliated/kami-/x-9078513] has joined #go-nuts
07:39 -!- Netsplit *.net <-> *.split quits: Innominate, xyproto, werdan7,
rejb, kevinwatt, prip, pingveno, [muttox], mibocote
07:39 -!- Netsplit over, joins: ExtraSpice
07:39 -!- Netsplit *.net <-> *.split quits: yebyen, vinisterx, Katibe, ptrb,
tsung, mfoemmel, prasmussen, Crnobog, pothos
07:39 -!- Netsplit over, joins: fvbommel
07:39 -!- shachaf [~shachaf@] has quit [Max SendQ exceeded]
07:40 -!- shachaf [~shachaf@] has joined #go-nuts
07:41 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Quit: |Craig|]
07:43 -!- KBme [~KBme@2001:470:cabe:666:666:666:666:666] has joined #go-nuts
07:43 -!- GilJ [~GilJ@zeus.ugent.be] has joined #go-nuts
07:43 -!- Loonacy [~zephyros@Loonacy.broker.freenet6.net] has joined #go-nuts
07:43 -!- moraes [~moraes@] has joined #go-nuts
07:43 -!- mnemoc [~amery@shell.opensde.net] has joined #go-nuts
07:43 -!- Cobi [~Cobi@2002:1828:88fb:0:aede:48ff:febe:ef03] has joined #go-nuts
07:43 -!- TheSeeker [riiight@99-153-250-110.lightspeed.irvnca.sbcglobal.net] has
joined #go-nuts
07:43 -!- kkress [~kkress@2001:470:1:41::403e:ad36] has joined #go-nuts
07:43 -!- arun [~arun@unaffiliated/sindian] has joined #go-nuts
07:43 -!- mtrichardson [~mtrichard@li22-133.members.linode.com] has joined
07:43 -!- grncdr [~stephen@sdo.csc.UVic.CA] has joined #go-nuts
07:43 -!- rphillips [~rphillips@unaffiliated/rphillips] has joined #go-nuts
07:43 -!- cbeck [cbeck@gateway/shell/pdx.edu/x-xfpmsgzjbgivfejd] has joined
07:43 -!- dfr|work [~dfr|work@nat/google/x-inssfgjezjmyxvbg] has joined #go-nuts
07:43 -!- niekie [~niek@CAcert/Assurer/niekie] has joined #go-nuts
07:43 -!- kevlar_work [~kevlar@unaffiliated/eko] has joined #go-nuts
07:43 -!- fzzbt [~jahman@melkinpaasi.cs.helsinki.fi] has joined #go-nuts
07:43 -!- kevlar_work [~kevlar@unaffiliated/eko] has quit [Changing host]
07:43 -!- kevlar_work [~kevlar@nat/google/x-zmkwlfemmragsgiw] has joined #go-nuts
07:44 -!- Cobi [~Cobi@2002:1828:88fb:0:aede:48ff:febe:ef03] has quit [Max SendQ
07:44 -!- niekie [~niek@CAcert/Assurer/niekie] has quit [Max SendQ exceeded]
07:44 -!- rejb [~rejb@unaffiliated/rejb] has joined #go-nuts
07:44 -!- Innominate [~sirrobin@cpe-076-182-074-143.nc.res.rr.com] has joined
07:44 -!- werdan7 [~w7@freenode/staff/wikimedia.werdan7] has joined #go-nuts
07:44 -!- prip [~foo@host80-120-dynamic.42-79-r.retail.telecomitalia.it] has
joined #go-nuts
07:44 -!- pingveno [~pingveno@c-98-246-133-8.hsd1.or.comcast.net] has joined
07:44 -!- xyproto [~alexander@] has joined #go-nuts
07:44 -!- [muttox] [~dheppell@] has joined
07:44 -!- mibocote [~matt@li161-224.members.linode.com] has joined #go-nuts
07:44 -!- kevinwatt [~kevin@59-125-147-75.HINET-IP.hinet.net] has joined #go-nuts
07:44 -!- jtoy_ [~jtoy@li167-197.members.linode.com] has joined #go-nuts
07:44 -!- kamaji [~kamaji@cpc2-aztw22-2-0-cust775.aztw.cable.virginmedia.com] has
joined #go-nuts
07:44 -!- Rennex [rennex@giraf.fi] has joined #go-nuts
07:44 -!- schilly [~schilly@boxen.math.washington.edu] has joined #go-nuts
07:44 -!- bartbes [~bartbes@love/developer/bartbes] has joined #go-nuts
07:44 -!- zeroXten [~zeroXten@0x10.co.uk] has joined #go-nuts
07:44 -!- mjard [~k@misadventuregames.com] has joined #go-nuts
07:44 -!- Crnobog|Work [u1041@gateway/web/irccloud.com/x-wyymhkoudltrsmcb] has
joined #go-nuts
07:44 -!- russell_h [~russell_h@osuosl/staff/russellh] has joined #go-nuts
07:44 -!- KBme [~KBme@2001:470:cabe:666:666:666:666:666] has quit [Client Quit]
07:45 -!- pingveno [~pingveno@c-98-246-133-8.hsd1.or.comcast.net] has quit [Max
SendQ exceeded]
07:45 -!- vinisterx [~ryan@74-129-201-27.dhcp.insightbb.com] has joined #go-nuts
07:45 -!- pothos [~pothos@111-240-174-224.dynamic.hinet.net] has joined #go-nuts
07:45 -!- Crnobog [~crnobog@cpc3-nmal12-0-0-cust48.croy.cable.virginmedia.com] has
joined #go-nuts
07:45 -!- ptrb [~peter@archimedes.bourgon.org] has joined #go-nuts
07:45 -!- Katibe [~Katibe@] has joined #go-nuts
07:45 -!- tsung [~jon@] has joined #go-nuts
07:45 -!- yebyen [~yebyen@martyfunkhouser.csh.rit.edu] has joined #go-nuts
07:45 -!- mfoemmel [~mfoemmel@chml01.drwholdings.com] has joined #go-nuts
07:45 -!- prasmussen [pii@rasm.se] has joined #go-nuts
07:45 -!- niekie [~niek@CAcert/Assurer/niekie] has joined #go-nuts
07:45 -!- pingveno [~pingveno@c-98-246-133-8.hsd1.or.comcast.net] has joined
07:47 -!- LeNsTR [~lenstr@unaffiliated/lenstr] has quit [Quit: ZNC -
07:47 -!- KBme [~KBme@2001:470:cabe:666:666:666:666:666] has joined #go-nuts
07:47 -!- Cobi [~Cobi@2002:1828:88fb:0:aede:48ff:febe:ef03] has joined #go-nuts
07:47 -!- djbrown [~djbrown@h236n2-g-va-a12.ias.bredband.telia.com] has quit
[Changing host]
07:47 -!- djbrown [~djbrown@unaffiliated/djbrown] has joined #go-nuts
07:48 -!- LeNsTR [~lenstr@unaffiliated/lenstr] has joined #go-nuts
07:51 -!- justinlilly [justinlill@] has quit [Ping timeout: 255
07:53 -!- djbrown [~djbrown@unaffiliated/djbrown] has quit [Quit: leaving]
07:53 -!- gtaylor [~gtaylor@99-5-124-9.lightspeed.gnvlsc.sbcglobal.net] has quit
[Quit: gtaylor]
07:53 -!- justinlilly [justinlill@s2.rdlbnc.com] has joined #go-nuts
07:56 -!- danilo04 [~danilo04@] has quit [Quit: Leaving]
07:56 -!- djbrown [~djbrown@unaffiliated/djbrown] has joined #go-nuts
08:00 -!- shvntr [~shvntr@] has joined #go-nuts
08:10 -!- djbrown [~djbrown@unaffiliated/djbrown] has quit [Quit: leaving]
08:10 -!- str1ngs [~strings@li88-131.members.linode.com] has quit [Quit: WeeChat
08:12 -!- str1ngs [~strings@unaffiliated/str1ngs] has joined #go-nuts
08:19 -!- djbrown [~djbrown@unaffiliated/djbrown] has joined #go-nuts
08:19 -!- dfc [~dfc@124-149-60-140.dyn.iinet.net.au] has quit [Quit: Silly man, I
am a Baron!]
08:26 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Quit: Leaving]
08:28 -!- justinlilly [justinlill@s2.rdlbnc.com] has quit [Ping timeout: 240
08:32 -!- justinlilly [justinlill@] has joined #go-nuts
08:32 -!- shvntr [~shvntr@] has quit [Quit: leaving]
08:41 -!- shvntr [~shvntr@] has joined #go-nuts
08:46 -!- dshep` [~user@c-76-103-91-143.hsd1.ca.comcast.net] has quit [Ping
timeout: 240 seconds]
08:57 -!- edsrzf [~edsrzf@122-61-221-144.jetstream.xtra.co.nz] has quit [Remote
host closed the connection]
09:13 -!- shvntr [~shvntr@] has quit [Quit: leaving]
09:21 -!- pjjw [klang@] has joined #go-nuts
09:22 -!- Queue29 [~Queue29@173-8-182-114-SFBA.hfc.comcastbusiness.net] has quit
[Remote host closed the connection]
09:26 -!- Queue29 [~Queue29@173-8-182-114-SFBA.hfc.comcastbusiness.net] has joined
09:26 -!- franciscosouza_ [~francisco@] has quit [Read error:
Connection reset by peer]
09:26 -!- awidegreen [~quassel@h-170-226.A212.priv.bahnhof.se] has quit [Ping
timeout: 276 seconds]
09:27 -!- franciscosouza [~francisco@] has joined #go-nuts
10:01 -!- napsy [~luka@tm.] has joined #go-nuts
10:06 -!- whitespacechar [~whitespac@24-247-159-7.dhcp.klmz.mi.charter.com] has
joined #go-nuts
10:11 -!- whitespacechar [~whitespac@24-247-159-7.dhcp.klmz.mi.charter.com] has
quit [Ping timeout: 240 seconds]
10:13 -!- djbrown_ [~djbrown@h236n2-g-va-a12.ias.bredband.telia.com] has joined
10:13 -!- rputikar [~240182H@203-206-21-179.dyn.iinet.net.au] has joined #go-nuts
10:15 -!- djbrown [~djbrown@unaffiliated/djbrown] has quit [Ping timeout: 276
10:16 -!- djbrown_ [~djbrown@h236n2-g-va-a12.ias.bredband.telia.com] has quit
[Read error: Connection reset by peer]
10:18 -!- djbrown [~djbrown@h236n2-g-va-a12.ias.bredband.telia.com] has joined
10:18 -!- djbrown [~djbrown@h236n2-g-va-a12.ias.bredband.telia.com] has quit
[Changing host]
10:18 -!- djbrown [~djbrown@unaffiliated/djbrown] has joined #go-nuts
10:22 -!- napsy [~luka@tm.] has quit [Quit: Lost
10:23 -!- djbrown_ [~djbrown@h236n2-g-va-a12.ias.bredband.telia.com] has joined
10:25 -!- djbrown [~djbrown@unaffiliated/djbrown] has quit [Ping timeout: 276
10:30 -!- djbrown [~djbrown@h236n2-g-va-a12.ias.bredband.telia.com] has quit
[Changing host]
10:30 -!- djbrown [~djbrown@unaffiliated/djbrown] has joined #go-nuts
10:38 -!- dju [~dju@fsf/member/dju] has joined #go-nuts
10:41 -!- dju [~dju@fsf/member/dju] has quit [Max SendQ exceeded]
10:42 -!- dju [~dju@fsf/member/dju] has joined #go-nuts
11:04 -!- shvntr [~shvntr@] has joined #go-nuts
11:06 -!- virtualsue [~chatzilla@nat/cisco/x-fuekhzpapaehtvbx] has joined #go-nuts
11:07 -!- djbrown_ [~djbrown@h236n2-g-va-a12.ias.bredband.telia.com] has joined
11:11 -!- ronnyy [~quassel@p4FF1C4EB.dip0.t-ipconnect.de] has joined #go-nuts
11:11 -!- djbrown [~djbrown@unaffiliated/djbrown] has quit [Ping timeout: 268
11:17 -!- rlab [~Miranda@] has joined #go-nuts
11:23 -!- squeese [~squeese@cm-] has joined #go-nuts
11:25 -!- shvntr [~shvntr@] has quit [Quit: leaving]
11:27 -!- bobody [~alexc@unaffiliated/alexc] has joined #go-nuts
11:27 -!- djbrown [~djbrown@h236n2-g-va-a12.ias.bredband.telia.com] has quit
[Changing host]
11:27 -!- djbrown [~djbrown@unaffiliated/djbrown] has joined #go-nuts
11:36 -!- dju [~dju@fsf/member/dju] has quit [Read error: Connection reset by
11:36 -!- dju [~dju@at.dmz.me] has joined #go-nuts
11:36 -!- dju [~dju@at.dmz.me] has quit [Changing host]
11:36 -!- dju [~dju@fsf/member/dju] has joined #go-nuts
11:38 -!- whitespacechar [~whitespac@24-247-159-7.dhcp.klmz.mi.charter.com] has
joined #go-nuts
11:39 -!- Project-2501 [~Marvin@] has joined #go-nuts
11:44 -!- XenoPhoenix [~Xeno@cpc13-aztw24-2-0-cust23.aztw.cable.virginmedia.com]
has quit [Quit: "Wait...  what?!"]
11:48 -!- noam [noam@] has quit [Ping timeout: 276
11:51 -!- rutkowski [~adrian@078088207086.walbrzych.vectranet.pl] has joined
11:53 -!- rputikar [~240182H@203-206-21-179.dyn.iinet.net.au] has quit [Quit:
11:53 -!- noam [noam@] has joined #go-nuts
11:57 -!- cenuij [~cenuij@base/student/cenuij] has quit [Remote host closed the
11:58 < str1ngs> signal.Incoming should that not handle SIGINT?
12:03 -!- virtualsue [~chatzilla@nat/cisco/x-fuekhzpapaehtvbx] has quit [Remote
host closed the connection]
12:04 -!- PortatoreSanoDiI [~Marvin@] has joined #go-nuts
12:07 -!- aa_ [~ali@pida.vm.bytemark.co.uk] has quit [Changing host]
12:07 -!- aa_ [~ali@pida/aa] has joined #go-nuts
12:08 -!- Project-2501 [~Marvin@] has quit [Ping timeout: 240 seconds]
12:13 -!- bortzmeyer [~stephane@2a01:e35:8bd9:8bb0:a401:cbc8:2e72:6fce] has joined
12:19 -!- krolaw [~krolaw@] has quit [Quit: krolaw]
12:20 -!- squeese [~squeese@cm-] has quit [Remote host
closed the connection]
12:22 -!- squeese [~squeese@cm-] has joined #go-nuts
12:26 -!- bobody [~alexc@unaffiliated/alexc] has quit [Quit: WeeChat 0.3.4]
12:57 -!- rm445 [rm445@pip.srcf.societies.cam.ac.uk] has joined #go-nuts
12:59 -!- kanru_ [~kanru@kanru-1-pt.tunnel.tserv15.lax1.ipv6.he.net] has joined
13:00 -!- anticw_ [~anticw@c-98-210-108-13.hsd1.ca.comcast.net] has joined
13:00 -!- Knirch_ [fatal@debian.as] has joined #go-nuts
13:00 -!- comex [~root@ec2-67-202-46-7.compute-1.amazonaws.com] has joined
13:00 -!- foocraft [~ewanas@] has joined #go-nuts
13:01 -!- ap3xo [~apexo@2a01:238:436b:8301:5054:ff:fe87:82fb] has joined #go-nuts
13:05 -!- Netsplit *.net <-> *.split quits: apexo, cco3, Stiletto, comex_,
Natch|, anticw, fhs, Knirch, kanru
13:05 -!- Netsplit over, joins: Stiletto
13:05 -!- Netsplit over, joins: Natch|
13:05 -!- Nisstyre [~nisstyre@] has quit [Ping timeout: 250 seconds]
13:11 -!- cco3 [~conleyo@nat/google/x-gzfkhqnujdbcnubt] has joined #go-nuts
13:11 -!- fhs [~fhs@2001:0:4137:9e76:3458:6fb3:93f1:4624] has joined #go-nuts
13:12 -!- napsy [~luka@] has joined #go-nuts
13:14 -!- hallas [~hallas@x1-6-30-46-9a-b2-c5-1f.k891.webspeed.dk] has quit [Ping
timeout: 255 seconds]
13:21 -!- strzalek [~strzalek@cqr236.neoplus.adsl.tpnet.pl] has joined #go-nuts
13:22 -!- squeese [~squeese@cm-] has quit [Remote host
closed the connection]
13:27 -!- rputikar [~240182H@203-206-21-179.dyn.iinet.net.au] has joined #go-nuts
13:43 -!- zimsim [~simon@ip1.c294.amb153.cust.comxnet.dk] has joined #go-nuts
14:00 -!- araujo [~araujo@gentoo/developer/araujo] has joined #go-nuts
14:00 -!- ryan3 [~ryan@up.skipfin.com] has quit [Read error: Connection reset by
14:03 -!- boscop_ [~boscop@f055108091.adsl.alicedsl.de] has joined #go-nuts
14:05 -!- boscop [~boscop@f050129014.adsl.alicedsl.de] has quit [Ping timeout: 250
14:27 -!- zimsim [~simon@ip1.c294.amb153.cust.comxnet.dk] has quit [Ping timeout:
246 seconds]
14:47 -!- franciscosouza_ [~francisco@] has joined #go-nuts
14:47 -!- franciscosouza [~francisco@] has quit [Read error:
Connection reset by peer]
14:50 -!- Fish- [~Fish@9fans.fr] has joined #go-nuts
15:00 -!- zimsim [~simon@ip1.c294.amb153.cust.comxnet.dk] has joined #go-nuts
15:02 -!- brandini [~orbit@adsl-69-221-166-239.dsl.akrnoh.ameritech.net] has quit
[Changing host]
15:02 -!- brandini [~orbit@metabug/brandon] has joined #go-nuts
15:04 -!- dju_ [dju@fsf/member/dju] has joined #go-nuts
15:06 -!- goon12 [~goon12@71-87-215-29.dhcp.oxfr.ma.charter.com] has quit [Quit:
15:06 -!- dju [~dju@fsf/member/dju] has quit [Ping timeout: 246 seconds]
15:21 -!- Queue29 [~Queue29@173-8-182-114-SFBA.hfc.comcastbusiness.net] has quit
[Ping timeout: 250 seconds]
15:27 -!- Queue29 [~Queue29@173-8-182-114-SFBA.hfc.comcastbusiness.net] has joined
15:34 -!- TheMue [~TheMue@p5DDF7E21.dip.t-dialin.net] has joined #go-nuts
15:37 -!- dfr|mac [~dfr|work@ool-182e3fca.dyn.optonline.net] has joined #go-nuts
15:51 -!- rputikar [~240182H@203-206-21-179.dyn.iinet.net.au] has quit [Quit:
15:57 -!- awidegreen [~quassel@h-170-226.A212.priv.bahnhof.se] has joined #go-nuts
16:04 -!- F [~f@unaffiliated/f] has joined #go-nuts
16:04 -!- felipe [~felipe@unaffiliated/felipe] has joined #go-nuts
16:04 < F> hi all.  what is the standard literature to read in order to
learn Go?
16:04 < str1ngs> tutorial then effective go
16:06 < str1ngs> after that the spec and using godoc should be enough
16:06 < Queue29> and lots and lots of googling
16:07 < str1ngs> I rarely need to google.  could just be me though.
16:09 -!- ronnyy [~quassel@p4FF1C4EB.dip0.t-ipconnect.de] has quit [Remote host
closed the connection]
16:15 -!- Viriix [~joseph@c-67-169-172-251.hsd1.ca.comcast.net] has joined
16:21 -!- Tv [~Tv@cpe-76-168-227-45.socal.res.rr.com] has joined #go-nuts
16:24 -!- NiteRain [~kvirc@c-98-254-236-21.hsd1.fl.comcast.net] has quit [Ping
timeout: 276 seconds]
16:24 -!- robteix [~robteix@host16.190-230-219.telecom.net.ar] has joined #go-nuts
16:34 < exch> go's source along with godoc has always been enough for me
16:35 -!- dju__ [~dju@fsf/member/dju] has joined #go-nuts
16:35 < F> sweet
16:35 < F> thanks guys
16:36 < str1ngs> F: godoc works from terminal ie godoc os or godoc os File
16:37 < F> is godoc something similar to vimtutor?
16:37 < str1ngs> not really
16:38 < F> alright.  i'll just have to dive in and see whats up.
16:38 < F> thanks.
16:38 < str1ngs> godoc is http server that powers golang.org and can be used
as a terminal client
16:39 -!- dju_ [dju@fsf/member/dju] has quit [Ping timeout: 240 seconds]
16:42 -!- rutkowski [~adrian@078088207086.walbrzych.vectranet.pl] has quit [Quit:
WeeChat 0.3.3-dev]
16:44 -!- boscop__ [~foo@g225234195.adsl.alicedsl.de] has joined #go-nuts
16:44 -!- bill_h [~bill_h@c-66-177-105-100.hsd1.fl.comcast.net] has joined
16:44 < bill_h> Anyone familiar with jsonrpc
16:44 < str1ngs> bill_h: best to just ask your question
16:45 -!- boscop_ [~boscop@f055108091.adsl.alicedsl.de] has quit [Ping timeout:
255 seconds]
16:45 < bill_h> I'm trying to create an rpc call with no arguments, i.e.
{"method":"help","params":[],"id":1}.  However, looking at the jsonrpc
WriteRequest method, it doesn't look like that's possible.
16:50 < bill_h> Is there something I could pass to WriteRequest in "param"
that would create {"method":"help","params":[],"id":1}?  For example passing nil
creates {"method":"help","params":[null],"id:1} and passing []interface{}{}
creates {"method":"help","params":[[]],"id":1}
16:50 < str1ngs> bill_h: nil is probably the best bet
16:51 < str1ngs> bill_h: but I have not used jsonrpc just rpc
16:51 < str1ngs> but I assume you are doing some encode decoding of structs?
16:51 < bill_h> str1ngs: The problem is the that server I'm calling expects
16:51 -!- micrypt [~micrypt@] has joined #go-nuts
16:51 < micrypt> Has anyone had a play with handling dependencies on app
16:52 < str1ngs> micrypt: it should just do it if they are in the root of
the apps
16:52 < str1ngs> micrypt: see the mustachio example
16:53 < str1ngs> bill_h: "params":[null] would cover that no?
16:54 < micrypt> str1ngs: mustachio example?
16:54 < micrypt> I didn't come across it in the docs...  must have missed
16:54 < str1ngs> micrypt: its part of the sdk in examples
16:54 < str1ngs> it uses 3rd party depends
16:55 < micrypt> Ah, gotcha, thanks.
16:55 < str1ngs> there should be a README of sorts take a look at it
16:57 -!- danilo04 [~danilo04@] has joined #go-nuts
17:07 -!- Netsplit *.net <-> *.split quits: arun, kkress, grncdr, GilJ,
rphillips, dfr|work, mnemoc, TheSeeker, KBme, Cobi, (+9 more, use /NETSPLIT to
show all of them)
17:17 -!- apexo [~apexo@2a01:238:436b:8301:5054:ff:fe87:82fb] has joined #go-nuts
17:17 -!- virtualsue [~chatzilla@nat/cisco/x-sdmcjzehvpwsxjje] has joined #go-nuts
17:21 -!- Wiz126 [~Wiz@] has quit [Ping timeout:
240 seconds]
17:21 -!- Wiz126 [~Wiz@] has joined #go-nuts
17:21 -!- jemeshsu [~jemeshsu@bb220-255-88-127.singnet.com.sg] has quit [Read
error: Connection reset by peer]
17:21 -!- jemeshsu [~jemeshsu@bb220-255-88-127.singnet.com.sg] has joined #go-nuts
17:29 < bill_h> str1ngs: It looks like the rpc / jsonrpc packages aren't
going to work for me anyway since the RPC server I'm connecting to doesn't
implement HTTP CONNECT.  It uses HTTP POST.
17:29 < str1ngs> bill_h: does it return json though?
17:30 < bill_h> str1ngs: Yep.
17:31 < Tv> bill_h: i think go's rpc/json isn't "JSON-RPC", and there's at
least a few incompatible things called "JSON-RPC" out there
17:31 < str1ngs> bill_h: ok what you can do is use http package then create
a struck and decode into that struck match the json object
17:31 < str1ngs> struct*
17:31 < str1ngs> bill_h: its abit more work but still doable
17:32 < Tv> or, more like, the JSON-RPC specs just assume some transport
17:33 < Tv> many transport it over POST, some over raw TCP, some via HTTP
17:33 < bill_h> str1ngs: Yeah, that's what I think I'm going to look at next
....  using the http package for transport and the json package for encode/decode
17:33 < str1ngs> bill_h: thats what I did with a none standard json rpc.
17:34 < str1ngs> bill_h: also this way can be faster for larger json query
because you can use json.RawMessage
17:35 -!- XenoPhoenix [~Xeno@cpc13-aztw24-2-0-cust23.aztw.cable.virginmedia.com]
has joined #go-nuts
17:35 < str1ngs> bill_h: https://github.com/str1ngs/gur/blob/master/aur.go
might help you some
17:37 < bill_h> str1ngs: Thanks
17:38 < str1ngs> bill_h: you'll have to weed through what you dont need.
but mainly the structs and Results method will be helpful
17:38 -!- cco3 [~conleyo@nat/google/x-gzfkhqnujdbcnubt] has joined #go-nuts
17:38 -!- KBme [~KBme@2001:470:cabe:666:666:666:666:666] has joined #go-nuts
17:38 -!- niekie [~niek@CAcert/Assurer/niekie] has joined #go-nuts
17:38 -!- GilJ [~GilJ@zeus.ugent.be] has joined #go-nuts
17:38 -!- moraes [~moraes@] has joined #go-nuts
17:38 -!- mnemoc [~amery@shell.opensde.net] has joined #go-nuts
17:38 -!- TheSeeker [riiight@99-153-250-110.lightspeed.irvnca.sbcglobal.net] has
joined #go-nuts
17:38 -!- kkress [~kkress@2001:470:1:41::403e:ad36] has joined #go-nuts
17:38 -!- arun [~arun@unaffiliated/sindian] has joined #go-nuts
17:38 -!- mtrichardson [~mtrichard@li22-133.members.linode.com] has joined
17:38 -!- grncdr [~stephen@sdo.csc.UVic.CA] has joined #go-nuts
17:38 -!- rphillips [~rphillips@unaffiliated/rphillips] has joined #go-nuts
17:38 -!- cbeck [cbeck@gateway/shell/pdx.edu/x-xfpmsgzjbgivfejd] has joined
17:38 -!- dfr|work [~dfr|work@nat/google/x-inssfgjezjmyxvbg] has joined #go-nuts
17:38 -!- kevlar_work [~kevlar@nat/google/x-zmkwlfemmragsgiw] has joined #go-nuts
17:38 -!- fzzbt [~jahman@melkinpaasi.cs.helsinki.fi] has joined #go-nuts
17:38 < str1ngs> it also uses gzip to encoding to speed things up
17:39 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts
17:40 -!- exch [~blbl@ip34-181-209-87.adsl2.static.versatel.nl] has quit [Ping
timeout: 250 seconds]
17:44 -!- Cobi [~Cobi@2002:1828:88fb:0:aede:48ff:febe:ef03] has joined #go-nuts
17:49 -!- dshep` [~user@c-76-103-91-143.hsd1.ca.comcast.net] has joined #go-nuts
17:51 -!- napsy [~luka@] has quit [Quit: Lost terminal]
17:56 -!- exch [~blbl@ip34-181-209-87.adsl2.static.versatel.nl] has joined
18:04 -!- franciscosouza [~francisco@] has quit [Read error:
Connection reset by peer]
18:05 -!- franciscosouza [~francisco@] has joined #go-nuts
18:10 -!- Nisstyre [~nisstyre@] has joined #go-nuts
18:17 -!- napsy [~luka@] has joined #go-nuts
18:26 -!- icy [~icy@lighttpd/icy] has joined #go-nuts
18:28 < icy> if I have a function which returns 2 values but I want to
ignore one of them, how can I use it without assigning it to temporary variables?
e.g.  "x := f(1) / f(2)"
18:29 < icy> where f would be for example "func f(i int) (int, int) { return
i*2, i*3 }"
18:30 -!- sacho [~sacho@] has quit [Ping timeout: 255 seconds]
18:32 -!- Fish- [~Fish@9fans.fr] has quit [Quit: So Long, and Thanks for All the
18:32 -!- awidegreen [~quassel@h-170-226.A212.priv.bahnhof.se] has quit [Ping
timeout: 276 seconds]
18:34 -!- Fish- [~Fish@] has joined #go-nuts
18:34 -!- virtualsue [~chatzilla@nat/cisco/x-sdmcjzehvpwsxjje] has quit [Quit:
ChatZilla 0.9.87 [Firefox 4.0.1/20110413222027]]
18:36 < icey> icy: the underscore operator is used to ignore a return value,
but i'm not sure it would map well to your example
18:36 < icey> (i'm a go noob though, so it's possible that i'm wrong)
18:37 < icy> icey: first: nice nick :), second: yea I tried to come up with
something using the underscore but couldn't find anything
18:38 < icey> icy: i think we're supposed to have a name fight now or
something ;).  Given your example I'd probably avoid a 1-liner
18:38 -!- Sisten [~Sisten@s213-103-208-147.cust.tele2.se] has joined #go-nuts
18:40 < str1ngs> twins!
18:40 < icey> i.e.  dividend, _ := f(1) & divisor,_ := f(2)
18:41 < icy> yea I wanted to avoid those temporary variables
18:45 -!- zaero [~eclark@2001:470:1f11:b82:21e:c9ff:fe53:1f03] has quit [Ping
timeout: 255 seconds]
18:45 -!- sacho [~sacho@] has joined #go-nuts
18:49 < rm445> you could return something like a slice of two ints instead
(for your example), but then you'd have to define division on them.
18:50 < icy> rm445: and it wont work with functions I didn't write :)
18:50 < rm445> Easier in something like matlab where you could do something
like x = (f(1) ./ f(2))(1) (syntax?)
18:51 -!- zaero [~eclark@servo.m.signedint.com] has joined #go-nuts
18:51 < rm445> anyway, yes, not very helpful for actual go programming, but
having two lines isn't the end of the world :-)
18:52 -!- danilo04 [~danilo04@] has quit [Quit: Leaving]
18:57 -!- jpiche [~jpiche@c-75-73-4-247.hsd1.mn.comcast.net] has joined #go-nuts
19:01 -!- exch [~blbl@ip34-181-209-87.adsl2.static.versatel.nl] has quit [Ping
timeout: 240 seconds]
19:10 -!- PortatoreSanoDiI [~Marvin@] has quit [Quit: E se abbasso
questa leva che succ...]
19:15 -!- robteix [~robteix@host16.190-230-219.telecom.net.ar] has quit [Quit:
Computer has gone to sleep.]
19:17 -!- exch [~blbl@ip34-181-209-87.adsl2.static.versatel.nl] has joined
19:28 < kevlar> oh look, we're still painting the nested func bikeshed on
the mailing lists.
19:35 -!- NiteRain [~kvirc@c-98-254-236-21.hsd1.fl.comcast.net] has joined
19:35 -!- alkavan [~alkavan@IGLD-84-229-168-152.inter.net.il] has joined #go-nuts
19:35 < str1ngs> blue I hope?
19:37 -!- dannyft [~dannyft@3e6b0f67.rev.stofanet.dk] has joined #go-nuts
19:48 -!- rcrowley [~rcrowley@c-71-202-44-233.hsd1.ca.comcast.net] has quit [Quit:
Computer has gone to sleep.]
19:49 -!- danilo04 [~danilo04@] has joined #go-nuts
19:50 -!- cenuij [~cenuij@] has joined #go-nuts
19:50 -!- cenuij [~cenuij@] has quit [Changing host]
19:50 -!- cenuij [~cenuij@base/student/cenuij] has joined #go-nuts
19:57 -!- micrypt [~micrypt@] has quit [Quit: leaving]
20:12 -!- dju_ [dju@fsf/member/dju] has joined #go-nuts
20:15 -!- dju__ [~dju@fsf/member/dju] has quit [Ping timeout: 276 seconds]
20:19 -!- tncardoso [~thiago@] has joined #go-nuts
20:19 -!- Viriix [~joseph@c-67-169-172-251.hsd1.ca.comcast.net] has quit [Quit:
This computer has gone to sleep]
20:26 -!- zimsim [~simon@ip1.c294.amb153.cust.comxnet.dk] has quit [Quit:
20:27 -!- thakis_ [~thakis@] has joined #go-nuts
20:27 -!- virtualsue [~chatzilla@nat/cisco/x-fmhupbznsfirfqme] has joined #go-nuts
20:27 < thakis_> hi guys.  i just pulled & ran ./all.bash and got "--- FAIL:
net.TestMulticastJoinAndLeave (0.0 seconds)"
20:27 < thakis_> is this a known issue?
20:27 < thakis_> (2nd line: joingroup udp setsockopt: can't
assign requested address)
20:29 < thakis_> hm, http://go-lang.cat-v.org/irc-logs/go-nuts/2011-03-05
from 3 months ago claims it's a common problem that can be worked around by
20:43 < Tv> thakis_: it's hard to test multicast if you don't have multicast
set up
20:43 -!- danilo04 [~danilo04@] has quit [Ping timeout: 252 seconds]
20:43 < thakis_> Tv: maybe the test runner should try to detect that and not
run that test then?
20:44 < GilJ> I was trying to compile a file using a generic makefile using
make, but I got an error saying it couldn't find the compiler.  I think i set all
the required environment variables though =/ Did I forget one?
20:44 < Tv> thakis_: i think that'd make it hard to detect when the code
doesn't legitimately work..
20:44 < zozoR> why isnt there a openfile() readstring function : |
20:44 < Tv> thakis_: but yes, it's inconvenient that what you thought were
unit tests are system tests
20:44 < thakis_> Tv: i didn't think anything, i'm just mindlessly following
the "how to install" steps :-)
20:46 -!- bortzmeyer [~stephane@2a01:e35:8bd9:8bb0:a401:cbc8:2e72:6fce] has quit
[Quit: Leaving.]
20:46 -!- awidegreen [~quassel@h-170-226.A212.priv.bahnhof.se] has joined #go-nuts
20:47 -!- zozoR [~Morten@2906ds2-arno.0.fullrate.dk] has quit [Remote host closed
the connection]
20:48 < thakis_> different question: It looks like |reflect.ValueOf(1)| used
to be valid go code but isn't now (ValueOf() is gone).  what's the new way to do
20:50 < cenuij> thakis_: use gofix tool to fix up your code, gofix --help
20:50 < cenuij> thakis_: there's a reflect fix in gofix :)
20:50 < thakis_> ls: /Users/thakis/go/bin/gofix: No such file or directory
20:51 * thakis_ reads the web on gofix
20:51 < thakis_> thanks!
20:51 < cenuij> hmmm gofix should be part of the standard distribution
20:51 < exch> it is
20:53 < thakis_> i just did `hg pull && cd src && ./all.bash` and don't have
it.  must've done something wrong
20:54 < exch> try hg pull && hg update weekly
20:54 < thakis_> aha
20:54 < exch> or 'update release' if you want a release build
21:01 -!- danilo04 [~danilo04@] has joined #go-nuts
21:08 -!- message144 [~message14@cpe-75-83-155-145.socal.res.rr.com] has joined
21:09 -!- tncardoso [~thiago@] has quit [Read error: Connection
reset by peer]
21:17 < thakis_> thanks guys, that did it
21:19 -!- chressie [~chressie@dreggn.in-ulm.de] has quit [Quit: WeeChat 0.3.5]
21:22 -!- piranha [~piranha@5ED43A0B.cm-7-5a.dynamic.ziggo.nl] has quit [Quit:
Computer has gone to sleep.]
21:26 -!- franciscosouza_ [~francisco@] has joined #go-nuts
21:26 -!- chressie [~chressie@dreggn.in-ulm.de] has joined #go-nuts
21:27 -!- franciscosouza [~francisco@] has quit [Read error:
Connection reset by peer]
21:28 -!- danilo04 [~danilo04@] has quit [Quit: Leaving]
21:29 -!- TheMue [~TheMue@p5DDF7E21.dip.t-dialin.net] has quit [Quit: TheMue]
21:30 -!- strzalek [~strzalek@cqr236.neoplus.adsl.tpnet.pl] has quit [Ping
timeout: 255 seconds]
21:39 -!- welterde [welterde@thinkbase.srv.welterde.de] has quit [Ping timeout:
246 seconds]
21:46 -!- jpiche [~jpiche@c-75-73-4-247.hsd1.mn.comcast.net] has quit [Quit:
21:49 -!- _inforwarrior_ [~OHM@] has joined #go-nuts
21:51 -!- bytbox [~s@] has joined #go-nuts
21:53 -!- awidegreen [~quassel@h-170-226.A212.priv.bahnhof.se] has quit [Ping
timeout: 276 seconds]
21:54 < message144> Would it be uncouth to use spaces instead of tabs?
21:54 < vsmatck> message144: No. If you check the flags of gofmt there is
options for both.  So people can choose to view with either.
21:55 -!- virtualsue [~chatzilla@nat/cisco/x-fmhupbznsfirfqme] has quit [Quit:
ChatZilla 0.9.87 [Firefox 4.0.1/20110413222027]]
21:55 < vsmatck> Generally people auto-format in to one format or another
with a hook in their version control.
21:55 < message144> vsmatck, oh ok thanks..  im trying to figure out how to
make go-mode.el use spaces instead of tabs
21:57 -!- welterde [welterde@thinkbase.srv.welterde.de] has joined #go-nuts
21:58 -!- MX80 [~MX80@cust151.253.117.74.dsl.g3telecom.net] has quit [Quit:
21:58 -!- MX80 [~MX80@cust151.253.117.74.dsl.g3telecom.net] has joined #go-nuts
21:59 < message144> oh cool..  figured it out :)
22:00 < vsmatck> I like how go has a canonical format.  I just got used to
it so now it's very easy for me to quickly read everyone else's code in the format
I'm used to.
22:01 < message144> vsmatck, yes I can appreciate that.  tabs are a hard
pill for me to swallow though
22:01 < vsmatck> gofmt -spaces=true :)
22:02 < vsmatck> I think it'd be nice if gofmt was more integrated in with
my text editor (gedit) to where every go file I opened got formatted
22:03 < vsmatck> I wouldn't be suprised if someone had that working.  I know
there's a intellisense out there for gedit already.  :)
22:03 < message144> vsmatck, not sure if you use emacs, but go-mode.el with
a few minor tweaks works wonderfully
22:03 < message144> at least it seems that way so far
22:03 < vsmatck> I'm pretty used to gedit.  Been using it for years.  Not
sure I could change that much.
22:04 < message144> hey..  im sure this is a stupid question...  does Go
have runtime introspection?
22:04 -!- hallas [~hallas@x1-6-30-46-9a-b2-c5-1f.k891.webspeed.dk] has joined
22:04 < vsmatck> yeah it does.  Check out the reflect package.
22:05 < message144> oh rad
22:05 < message144> thanks
22:05 < vsmatck> np.  Reflection in go is quite nice.  Much more powerful
than what C++ has (where I came from).
22:06 < message144> i had an idea for my first go project, but it will
require that
22:08 < exch> are there any plans to improve the exp/gui package?
Specifically the creation of a window.  It could do with atleast the ability to
specify the initial size of a window and a title.  Also, the resize event does not
work (should yield a gui.ConfigEvent according to the docs, but doesnt)
22:14 -!- napsy [~luka@] has quit [Ping timeout: 252 seconds]
22:15 -!- dannyft [~dannyft@3e6b0f67.rev.stofanet.dk] has quit [Remote host closed
the connection]
22:16 -!- icey [~user@ip68-104-183-151.ph.ph.cox.net] has quit [Read error:
Operation timed out]
22:21 -!- _inforwarrior_ [~OHM@] has quit [Quit: _inforwarrior_]
22:23 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Read error: Operation
timed out]
22:25 -!- bytbox [~s@] has quit [Remote host closed the connection]
22:25 -!- bytbox [~s@] has joined #go-nuts
22:27 -!- araujo [~araujo@gentoo/developer/araujo] has joined #go-nuts
22:27 < message144> Is it lame if I put all my variable declarations at the
top of each function like what might be done in C or JS ?
22:31 < vsmatck> This might be a matter of taste.  But one thing to consider
is that you don't have to spell out the whole type if you use the declare and
initialize syntax with :=.  That can make things a bit cleaner.
22:31 -!- rlab [~Miranda@] has quit [Quit: Miranda IM! Smaller,
Faster, Easier.  http://miranda-im.org]
22:33 -!- Fish- [~Fish@] has quit [Quit: So Long, and Thanks for All
the Fish]
22:35 < exch> I predeclare most of my vars as well.  Specially if they are
assigned in a loop.  But also to prevent possible shadowing bugsies
22:35 < vsmatck> Is the compiler smart enough to know when it can reuse a
variable declared within a loop?  Am I hurting performance by creating new
variable in loop?
22:36 < aiju> it doesn't hurt performance and you really shouldn't worry
about things like that
22:37 < vsmatck> but..  I wanna go fast.  :)
22:38 < aiju> if you want assembly, you know where to find it
22:38 < vsmatck> *facepalm*
22:38 < aiju> PROTIP: good performance is achieved by an overall good design
22:38 < vsmatck> I want the intersection of maximal productivity and
22:38 -!- dju_ [~dju@fsf/member/dju] has joined #go-nuts
22:39 < aiju> and not by worrying about single clock cycles
22:39 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Ping timeout: 250
22:39 -!- dju [dju@fsf/member/dju] has quit [Ping timeout: 252 seconds]
22:40 < vsmatck> The truth of that statement is relative to what you're
working on.
22:40 < vsmatck> But true sometimes.
22:42 -!- ExtraSpice [XtraSpice@78-57-204-104.static.zebra.lt] has quit [Remote
host closed the connection]
22:42 < aiju> also, i doubt that using two variables hurts performance in
any way
22:57 < Tv> using a multitasking operating system hurts performance ;)
22:58 < fvbommel> Actually, IIRC in Go declaring a variable in a loop *can*
make it go slower: if the address is taken then a new variable is heap-allocated
every time.  If it's declared outside the loop that only happens once.
22:59 < vsmatck> Ah, I figured as much for using "new".  I wonder about when
you use ":=" in a loop.
23:00 < fvbommel> Yes, then too.
23:01 < message144> Is ":=" more idiomatic than "var s string" ?
23:01 < fvbommel> It's handy when you want to capture it with a closure (for
example so a goroutine will have the value at time of creation), but should
otherwise probably be avoided.
23:01 < message144> err "var s string = "
23:13 < vsmatck> It'd be nice if someone wrote a performance document that
specified best practices for avoiding extra allocations.
23:15 < vsmatck> I don't like the kind of stuff that second guesses the
compiler and makes gross code tho.
23:15 < vsmatck> Like I know the current go compilers have trouble leaving
stuff on the stack for peephole type stuff.
23:16 < vsmatck> But that sort-of stuff will get better over time.  Compiler
optimization seems like a long and difficult thing.  *shrug*
23:17 -!- Sisten [~Sisten@s213-103-208-147.cust.tele2.se] has quit [Quit: Lämnar]
23:18 -!- thakis_ [~thakis@] has quit [Quit: thakis_]
23:28 -!- tildeleb [~leb@c-24-7-85-179.hsd1.ca.comcast.net] has joined #go-nuts
23:31 -!- nictuku [~nict@unaffiliated/nictuku] has joined #go-nuts
23:32 -!- exch [~blbl@ip34-181-209-87.adsl2.static.versatel.nl] has quit [Ping
timeout: 252 seconds]
23:40 < message144> In Go, are arrays stored on the stack, and slices on the
23:40 < aiju> no
23:40 < aiju> in Go data is stored where appropriate
23:40 < aiju> could very well mean heap for both
23:41 < vsmatck> Arrays are on the stack.  No reason for them not to be if
size is known at compile time.
23:41 < message144> ok
23:42 < aiju> if you slice an array, it will be on the heap
23:43 < vsmatck> true
23:43 < aiju> there is probably not much of a reason to think about this
23:43 -!- bobody [~alexc@unaffiliated/alexc] has joined #go-nuts
23:43 < message144> aiju, i dont have a practical reason, other than
23:44 -!- araujo [~araujo@] has joined #go-nuts
23:44 -!- araujo [~araujo@] has quit [Changing host]
23:44 -!- araujo [~araujo@gentoo/developer/araujo] has joined #go-nuts
23:44 < vsmatck> I sort-of wonder when it gets put on the heap.  Say I take
a slice of a subset of an array.  Not sure if that'd be on the heap or not.
23:44 < aiju> vsmatck: if you take the address of anything, it gets moved to
the heap
23:45 < aiju> i don't know of any exceptions
23:45 < vsmatck> ah
23:45 < aiju> of course, discarding the address maybe
23:46 < aiju> and there is always the data/bss section you should not forget
23:50 < vsmatck> That stuff shouldn't be GC'd so don't have to worry about
it.  Only reason I care about heap allocation is because GC is slow.
23:53 < message144> Is is possible to make a generic pointer to an array
such as "var p *array", or does it need to be like "var p *[4]int" ?
23:53 < aiju> message144: []int
23:53 < aiju> use a slice
23:54 < message144> aiju, ok thanks..  and sorry for the rookie questions
23:54 < aiju> i hardly ever use arrays in my go code
23:54 < aiju> most of the time you want a slice
23:54 < message144> aiju, yeah ive been seeing people on stackoverflow
saying the same thing
23:55 < aiju> arrays are just there for the COBOL programmers
23:55 < aiju> who can't live without array sizes fixed to some arbitrary
23:56 < message144> ha
23:56 < message144> i would say it seems like they are there for the C guys
too, except they dont really behave the same as C (it seems)
23:57 < aiju> thing is, Go arrays behave in many ways like COBOL tables
23:57 < message144> i figure ill start using slices for everything, but i
want to make sure i at least have the fundamentals down first
23:58 < vsmatck> Arrays are still useful.  If you know exactly how many
elements you have at compile time it's right to use an array.
23:58 < aiju> vsmatck: and you have that situation how often?
23:59 * vsmatck ignores question.
23:59 < aiju> haha
23:59 < aiju> sure, there are vectors (the math thing)
--- Log closed Mon Jun 13 00:00:07 2011