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

--- Log opened Wed Nov 17 00:00:16 2010
00:07 -!- noktoborus [debian-tor@gateway/tor-sasl/noktoborus] has quit [Ping
timeout: 245 seconds]
00:10 < enferex> I want to loop on all the lines in a file, I want to test
my err condition that retrns from ReadString().  Of course: "for line, err :=
input.ReadString('\n')" is not a valid condition.  Is there some other idiom that
I can use that I amnot aware of.  I dont want to "break" out of the loop.  I want
it to terminate on the condition.
00:11 < uriel> what is the difference between "break" and "terminate"?
00:11 < enferex> I was hoping to do something more like the traditional
00:11 < uriel> and I think what you want is line, err := ...; err != nil;
00:11 < enferex> uriel: yes
00:12 < enferex> yup
00:12 < enferex> thanks
00:23 -!- noktoborus_ [debian-tor@gateway/tor-sasl/noktoborus] has joined #go-nuts
00:24 -!- iant [~iant@nat/google/x-iymepkgfsewpfldq] has quit [Ping timeout: 260
00:31 -!- iant [~iant@] has joined #go-nuts
00:31 -!- mode/#go-nuts [+v iant] by ChanServ
00:33 -!- mbohun [~user@ppp115-156.static.internode.on.net] has joined #go-nuts
00:34 -!- virtualsue [~chatzilla@nat/cisco/x-nhsgxvsxhefwzhla] has quit [Ping
timeout: 255 seconds]
00:38 -!- Tv [~tv@gige.bur.digisynd.com] has quit [Ping timeout: 276 seconds]
00:47 -!- binarypie [~binarypie@adsl-99-20-131-253.dsl.pltn13.sbcglobal.net] has
quit [Remote host closed the connection]
00:48 -!- mikespook [~mikespook@] has joined #go-nuts
00:56 -!- itrekkie [~itrekkie@ip72-200-114-63.tc.ph.cox.net] has joined #go-nuts
00:57 -!- itrekkie [~itrekkie@ip72-200-114-63.tc.ph.cox.net] has quit [Client
01:01 -!- kanru [~kanru@118-160-164-12.dynamic.hinet.net] has quit [Ping timeout:
245 seconds]
01:03 < enferex> uriel: Oddly, my condition is not even executing the loop.
"for line, err := input.ReadString('\n'); err!=nil; { ...  }
01:04 < skelterjohn> you probably want "for l, e := input.ReadString('\n');
e!=nil; l, e = input.ReadString('\n') { ...  }
01:04 < skelterjohn> otherwise you will only readstring once, at the
01:04 < enferex> if I do "for { line, err := input.ReadLine('\n'); if err !=
nil { break; } }" it works fine
01:04 < enferex> yeah
01:04 < enferex> ok that makes sense
01:05 < skelterjohn> the way you just said is probably a nicer way to write
it, though
01:05 < skelterjohn> no reason to have the same piece of code in two spots
if you can help it
01:05 -!- wrtp [~rog@] has quit [Ping timeout: 272 seconds]
01:05 < enferex> skelterjohn: yeah
01:06 < skelterjohn> note: you don't need the semicolon after "break"
01:06 < enferex> yup
01:06 -!- skelterjohn [~jasmuth@lawn-gw.rutgers.edu] has quit [Quit: skelterjohn]
01:08 -!- ExtraSpice [~XtraSpice@] has quit [Ping timeout: 240
01:09 -!- wrtp [~rog@] has joined #go-nuts
01:13 -!- cco3 [~conley@c-69-181-138-209.hsd1.ca.comcast.net] has joined #go-nuts
01:15 -!- SoniaKeys [~soniakeys@c-76-118-178-209.hsd1.ma.comcast.net] has joined
01:17 -!- Tv [~tv@cpe-76-168-227-45.socal.res.rr.com] has joined #go-nuts
01:30 -!- devrim [~Adium@] has quit [Quit: Leaving.]
01:35 -!- bjarneh [~bjarneh@232.80-203-20.nextgentel.com] has joined #go-nuts
01:40 -!- tav [~tav@] has quit [Quit: tav]
01:41 -!- tav [~tav@] has joined #go-nuts
01:43 -!- b00m_chef [~watr@] has joined #go-nuts
01:43 -!- enherit [~enherit@cpe-98-149-170-48.socal.res.rr.com] has quit [Quit:
01:44 < enferex> Odd, I have a string "42" and when I convert it to an int
via strconv.Atoi() I get an error: ": invalid argument" as if the newline
character was not ignored
01:45 < cbeck> It isn't
01:46 < cbeck> Need to strings.TrimSpace() or the like first
01:46 < enferex> yup
01:47 -!- skelterjohn [~jasmuth@c-76-98-219-171.hsd1.pa.comcast.net] has joined
01:51 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has joined #go-nuts
01:51 -!- niemeyer [~niemeyer@189-10-175-46.pltce701.dsl.brasiltelecom.net.br] has
quit [Ping timeout: 240 seconds]
01:57 -!- philth [~philth@d24-235-136-68.home1.cgocable.net] has quit [Ping
timeout: 265 seconds]
02:06 -!- iant [~iant@] has quit [Quit: Leaving.]
02:07 -!- frank [~fstephen2@bas1-brampton13-1177785513.dsl.bell.ca] has joined
02:09 -!- frank [~fstephen2@bas1-brampton13-1177785513.dsl.bell.ca] has left
#go-nuts []
02:14 -!- Maxdamantus [~m@] has quit [Ping timeout: 255 seconds]
02:18 -!- danslo [~daniel@s5593965d.adsl.wanadoo.nl] has quit [Quit: Leaving.]
02:25 -!- werdan7 [~w7@freenode/staff/wikimedia.werdan7] has joined #go-nuts
02:32 -!- jeff2 [~sername@c-98-210-113-215.hsd1.ca.comcast.net] has joined
03:02 -!- skelterjohn [~jasmuth@c-76-98-219-171.hsd1.pa.comcast.net] has quit
[Quit: skelterjohn]
03:04 -!- b00m_chef [~watr@] has quit [Ping timeout: 245 seconds]
03:06 -!- Maxdamantus [~m@203-97-238-106.cable.telstraclear.net] has joined
03:12 < enferex> Hmm, I just want to run the set of benchmarks and using
"gomake bench" is not performing this.  I see the bench target in Make.pkg
03:13 < |Craig|> enferex: I think you pass a bench flag to gotest or
something like that.  I havent done it though, I just saw in in the docs a few
days ago
03:14 < enferex> yeah but it requires a makefile
03:14 < enferex> |Craig|: I figured there would already be a benchmark
makefile for the gotest tool
03:24 -!- skelterjohn [~jasmuth@c-76-98-219-171.hsd1.nj.comcast.net] has joined
03:25 -!- skelterjohn [~jasmuth@c-76-98-219-171.hsd1.nj.comcast.net] has quit
[Client Quit]
03:34 -!- iant [~iant@adsl-71-133-8-30.dsl.pltn13.pacbell.net] has joined #go-nuts
03:34 -!- mode/#go-nuts [+v iant] by ChanServ
03:44 -!- jeff2 [~sername@c-98-210-113-215.hsd1.ca.comcast.net] has quit [Quit:
03:56 -!- slashus2 [~slashus2@74-141-107-118.dhcp.insightbb.com] has joined
04:01 -!- skelterjohn [~jasmuth@c-76-98-219-171.hsd1.pa.comcast.net] has joined
04:02 -!- devrim [~Adium@cpe-72-225-239-227.nyc.res.rr.com] has joined #go-nuts
04:05 -!- skelterjohn [~jasmuth@c-76-98-219-171.hsd1.pa.comcast.net] has quit
[Client Quit]
04:06 -!- skelterjohn [~jasmuth@c-76-98-219-171.hsd1.nj.comcast.net] has joined
04:09 -!- museun [~what@c-76-122-126-43.hsd1.ga.comcast.net] has quit [Ping
timeout: 255 seconds]
04:09 -!- aho [~nya@fuld-4d00d288.pool.mediaWays.net] has joined #go-nuts
04:14 -!- slashus2_ [~slashus2@74-141-107-118.dhcp.insightbb.com] has joined
04:15 -!- iant [~iant@adsl-71-133-8-30.dsl.pltn13.pacbell.net] has quit [Quit:
04:18 -!- slashus2 [~slashus2@74-141-107-118.dhcp.insightbb.com] has quit [Ping
timeout: 276 seconds]
04:29 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has quit [Read error:
Connection reset by peer]
04:29 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has joined #go-nuts
04:31 -!- slashus2 [~slashus2@74-141-107-118.dhcp.insightbb.com] has quit [Quit:
04:33 -!- rejb [~rejb@unaffiliated/rejb] has quit [Ping timeout: 276 seconds]
04:52 -!- SoniaKeys [~soniakeys@c-76-118-178-209.hsd1.ma.comcast.net] has quit []
04:55 -!- noktoborus_ [debian-tor@gateway/tor-sasl/noktoborus] has quit [Ping
timeout: 245 seconds]
04:58 -!- noktoborus_ [debian-tor@gateway/tor-sasl/noktoborus] has joined #go-nuts
05:18 -!- zozoR [~zozoR@5634798d.rev.stofanet.dk] has joined #go-nuts
05:19 -!- devrim [~Adium@cpe-72-225-239-227.nyc.res.rr.com] has quit [Read error:
Connection reset by peer]
05:19 -!- devrim [~Adium@cpe-72-225-239-227.nyc.res.rr.com] has joined #go-nuts
05:20 -!- Eridius [~kevin@unaffiliated/eridius] has quit [Ping timeout: 264
05:36 -!- brighteyed [59ff4f3e@gateway/web/freenode/ip.] has joined
05:42 -!- iant [~iant@adsl-71-133-8-30.dsl.pltn13.pacbell.net] has joined #go-nuts
05:42 -!- mode/#go-nuts [+v iant] by ChanServ
05:43 -!- watr_ [~watr@] has joined #go-nuts
05:51 -!- captn1 [~root@pD9FE2674.dip.t-dialin.net] has joined #go-nuts
05:52 -!- matti___ [~mumboww@c-98-207-108-218.hsd1.ca.comcast.net] has joined
05:53 -!- captn [~root@p4FDCBC9A.dip.t-dialin.net] has quit [Ping timeout: 250
05:56 -!- fabled [~fabled@mail.fi.jw.org] has joined #go-nuts
06:05 -!- pingveno [~pingveno@c-98-246-133-8.hsd1.or.comcast.net] has quit [Ping
timeout: 260 seconds]
06:07 -!- pingveno [~pingveno@c-98-246-133-8.hsd1.or.comcast.net] has joined
06:10 < matti___> where can i find what '%02x' means for the following line?
06:10 < matti___> fmt.Sprintf("%02x", hash.Sum())
06:11 < |Craig|> matti___: its one of those crazy formatting strings that
says how to format the number as text, but I don't know how to find out what that
particular one means
06:12 <+iant> matti___: http://golang.org/pkg/fmt/
06:13 < matti___> iant: thanks
06:20 -!- lagagnon [~larry@] has joined #go-nuts
06:23 -!- eikenberry [~jae@ivanova.zhar.net] has quit [Quit: End of line.]
06:25 -!- fabled [~fabled@mail.fi.jw.org] has quit [Ping timeout: 265 seconds]
06:28 < TheSeeker> hmmm
06:28 < TheSeeker> I guess if nobody else is going to do it...
06:33 -!- Tv [~tv@cpe-76-168-227-45.socal.res.rr.com] has quit [Ping timeout: 265
06:37 -!- ako [~nya@fuld-4d00d7e2.pool.mediaWays.net] has joined #go-nuts
06:38 -!- bjarneh [~bjarneh@232.80-203-20.nextgentel.com] has quit [Quit: leaving]
06:38 -!- fabled [~fabled@] has joined #go-nuts
06:39 -!- aho [~nya@fuld-4d00d288.pool.mediaWays.net] has quit [Ping timeout: 240
06:55 -!- lagagnon [~larry@] has quit [Quit: "Back to the Real
07:15 < TheSeeker> ah, looks like someone's already on it.
07:16 < |Craig|> I think I've found a case where I really would like some
kind of generics in Go. I've got a design for an unordered collection optimized
for sequential memory access (meaning fast fetches when iterating), adding and
removing items, but I can't implement it for arbitrary types.
07:22 -!- ExtraSpice [~XtraSpice@] has joined #go-nuts
07:22 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Quit: Leaving]
07:24 -!- snearch [~snearch@f053008254.adsl.alicedsl.de] has joined #go-nuts
07:28 -!- rlab [~Miranda@] has joined #go-nuts
07:30 -!- zozoR [~zozoR@5634798d.rev.stofanet.dk] has quit [Quit: Morten.  Desu~]
07:35 -!- bortzmeyer [~bortzmeye@batilda.nic.fr] has joined #go-nuts
07:38 -!- drd [~eric@compassing.net] has joined #go-nuts
07:38 -!- mikespook [~mikespook@] has quit [Read error: Connection
reset by peer]
07:43 < TheSeeker> launchpad uses ...  bazaar?  what's that?  :| yet another
@#%!  dcvs?
07:44 -!- tobel [~tobel@pD9E8B9D3.dip.t-dialin.net] has joined #go-nuts
07:45 -!- tobel [~tobel@pD9E8B9D3.dip.t-dialin.net] has quit [Client Quit]
07:47 -!- snearch [~snearch@f053008254.adsl.alicedsl.de] has quit [Quit:
07:48 -!- awidegreen [~quassel@p5DF1C827.dip.t-dialin.net] has joined #go-nuts
07:50 -!- noktoborus_ [debian-tor@gateway/tor-sasl/noktoborus] has quit [Ping
timeout: 245 seconds]
07:52 < cbeck> A really slow one, at that
07:56 -!- mikespook [~mikespook@] has joined #go-nuts
08:00 -!- noktoborus_ [debian-tor@gateway/tor-sasl/noktoborus] has joined #go-nuts
08:02 < drd> easy way to write []uint16 to stdout?
08:05 < drd> eg, some way to cast to []byte?
08:08 < TheSeeker> string(uint16[:]) doesn't work I take it?
08:08 < Namegduf> What would you mean by such a cast?
08:08 < drd> Namegduf, i'm trying to write the array to stdout as binary
08:09 < Namegduf> In general, writing arbitrary data to stdout requires
unsafe, because it is.
08:10 < Namegduf> Such data will not be portable across architectures.
08:10 < drd> Namegduf, true
08:10 < Namegduf> You will need to use that.
08:10 -!- krutcha [~ceekay@S010600045a27676a.vs.shawcable.net] has joined #go-nuts
08:10 < Namegduf> And be aware, from being made to use that, that what
you're doing is non-portable.
08:11 -!- photron [~photron@port-92-201-204-183.dynamic.qsc.de] has joined
08:11 < drd> Namegduf: fair
08:12 < krutcha> does the go compiler accept global defines via -D or
something similar?
08:12 < TheSeeker> hmm, I was using fmt.Print(string(buf[:len-1])) to echo
packets sent to my test program to the screen (-1 to skip the newline netcat sends
too) ...  that didn't require unsafe.
08:12 < Namegduf> No, it does not.
08:12 < Namegduf> TheSeeker: Was buf uint8 or uint16?
08:13 < Namegduf> uint8 == byte == directly convertable to string, safely.
08:13 < TheSeeker> ah
08:13 < TheSeeker> that makes sense.
08:14 < Namegduf> uint8, specifically, doesn't have the endian and "what
precisely do you mean by that; interpret as Unicode characters or as pairs of
bytes issues.
08:14 < drd> woo,
08:14 < drd> Go wants you to know what you're doing is considered ugly :)
08:14 < TheSeeker> though, not sure why []uint16 to string wouldn't be just
as safe.
08:14 < Namegduf> Because it isn't portable.
08:14 -!- Netsplit *.net <-> *.split quits: brighteyed
08:14 < Namegduf> Or, rather, writing it out directly isn't portable.
08:14 < TheSeeker> oh, right, endieness
08:14 < Namegduf> Endianness.
08:14 < Namegduf> You could impose a fixed interpretation, as int has.
08:14 < TheSeeker> ianieniandian
08:15 < Namegduf> int is always interpreted as a character, not as arbitrary
08:15 < Namegduf> You could do the same with uint16, hypothetically.
08:15 < Namegduf> It would not be printing the same thing, though.
08:15 < |Craig|> I wonder if I can get a sort of generic collection by
symlinking a source file into a bunch of identically named packages in different
directories which also contain a config source file that defines a structure that
contains the type I want my collection to hold, and any other needed config
08:16 < Namegduf> |Craig|: Compile-time code generation is quite possible,
although I don't know that I'd do it that way.
08:16 < Namegduf> You could just use gofmt
08:17 < Namegduf> Take vector.go and generate vector-int.go and friends from
it by search-and-replacing the type in the base vector with the desired type.
08:17 < Namegduf> drd: Go wants where things are unsafe to be obvious, so
they're easily managed and observed in future development.
08:17 < Namegduf> Explicit casts and unsafe, I like it myself.
08:19 < TheSeeker> So you can search for "unsafe" in all the public code,
and see what kinds of things should be made safe to clean up the most mess ? :)
08:19 -!- rlab [~Miranda@] has quit [Quit: Miranda IM! Smaller,
Faster, Easier.  http://miranda-im.org]
08:20 < |Craig|> Namegduf: what I implemented is basically an unordered
vector with different optimization priorities.  I don't think I can use casts as
the whole point of my structure it to avoid randomly placed in memory allocation
by actually placing the items in an array (not pointers in an array)
08:20 < |Craig|> its a linked list of arrays acting as a unordered
08:21 < Namegduf> |Craig|: Not casts.
08:21 < Namegduf> gofmt can search and replace one thing with another.
08:21 < Namegduf> And save the result as another file.
08:21 < |Craig|> Namegduf: yes, I know
08:21 < |Craig|> I was just commenting on your "Explicit casts and unsafe, I
like it myself."
08:22 < Namegduf> That had nothing to do with your usecase.
08:22 < Namegduf> Not being able to use casts at all has no connection to
implicit vs explicit casts where they are used, I mean.
08:23 < |Craig|> I auctually could make it using unsafe and casts I guess by
basically using void* for pointing to my arrays
08:23 < |Craig|> interface {}
08:24 < drd> Namegduf: i don't mind it, i'm just not used to it as much.  in
fact i quite like go
08:24 < |Craig|> Add and remove would have to take the empty interface
though, would prabably be a speed hit.  using gofmt to gen code is prabably better
08:25 < Namegduf> It isn't generics, but it works in a pinch.
08:25 < Namegduf> Not too bad if the average project can restrain the amount
of custom data structures it implements to a small percentage of its code, too.
08:27 < |Craig|> I think my custom data structure could be rather handy for
anyone who wants high performance iteration over collections to which they add and
remove stuff somewhat often.
08:29 < |Craig|> I wonder if it will actually benefit me at all though.  I
just made it because it seemed cool
08:30 < TheSeeker> Is it a package available on godashboard?
08:31 < |Craig|> nah, I just wrote it now, I havent even run it.  I'm in
design mode.
08:31 -!- Netsplit over, joins: brighteyed
08:32 < |Craig|> The very first code written for my Go MMO server project
(Because I need another project I won't finish)
08:32 < TheSeeker> ok, speaking in past tense made me think you had finished
something :)
08:32 -!- willdye [~willdye@fern.dsndata.com] has joined #go-nuts
08:33 < TheSeeker> kindof like my very first code written for a go
implementation of Freenet that will probably never get anywhere ...  except mine's
hardly more complex than 'hello world' over udp, and still fails x_x
08:34 < |Craig|> well, it compiles at least.  http://dpaste.com/276305/
08:35 < |Craig|> I roughed out my data sync model for the client today too.
Python Client with Panda3D+Go Server :)
08:35 < TheSeeker> python :(
08:35 < |Craig|> python is awesome :)
08:35 < TheSeeker> write it in go :)
08:36 < |Craig|> nah, Panda3D has great python bindings, and I don't need
the performance
08:36 -!- Project_2501 [~Marvin@] has joined #go-nuts
08:37 -!- Project-2501 [~Marvin@] has joined #go-nuts
08:38 < krutcha> does pkg net have any loopback facility for running basic
_tests through net.Conn?
08:41 -!- Project_2501 [~Marvin@] has quit [Ping timeout: 255 seconds]
08:41 -!- noktoborus_ [debian-tor@gateway/tor-sasl/noktoborus] has quit [Ping
timeout: 245 seconds]
08:41 -!- willdye [~willdye@fern.dsndata.com] has quit [Read error: Connection
reset by peer]
08:42 -!- willdye [~willdye@fern.dsndata.com] has joined #go-nuts
08:43 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts
08:44 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Quit: |Craig|]
08:56 -!- noktoborus_ [debian-tor@gateway/tor-sasl/noktoborus] has joined #go-nuts
09:00 -!- tvw [~tv@e176007243.adsl.alicedsl.de] has joined #go-nuts
09:01 -!- sahid [~sahid@LNeuilly-152-21-22-10.w193-253.abo.wanadoo.fr] has quit
[Quit: Ex-Chat]
09:01 -!- tvw [~tv@e176007243.adsl.alicedsl.de] has quit [Remote host closed the
09:02 -!- araujo [~araujo@] has joined #go-nuts
09:02 -!- araujo [~araujo@] has quit [Changing host]
09:02 -!- araujo [~araujo@gentoo/developer/araujo] has joined #go-nuts
09:09 < nsf> I'm wondering why conditional expression is optional in Go's
09:09 < nsf> IfStmt = "if" [ SimpleStmt ";" ] [ Expression ] Block [ "else"
Statement ] .
09:09 < nsf> shouldn't it be:
09:10 < nsf> IfStmt = "if" [ SimpleStmt ";" ] Expression Block [ "else"
Statement ] .
09:10 < nsf> I mean, that's the point of if statement..
09:10 -!- willdye [~willdye@fern.dsndata.com] has quit [Read error: Connection
reset by peer]
09:11 -!- willdye [~willdye@fern.dsndata.com] has joined #go-nuts
09:12 -!- photron [~photron@port-92-201-204-183.dynamic.qsc.de] has quit [Quit:
09:12 -!- photron [~photron@port-92-201-204-183.dynamic.qsc.de] has joined
09:12 < nsf> spec says that missing condition is equivalent to true, but
what's the point, I don't get it
09:12 < nsf> :\
09:17 < mpl> I wonder where does this tendency for one to spill his
life/opinions on the go-nuts ML come from.  I rarely see ppl doing that on the
other MLs I'm following...
09:18 < nsf> go-nuts ML is a bit active lately, got 79 mails today
09:19 < nsf> mpl: I don't understand that either, people like to explain why
Go should be something else, but what's the point..  like someone cares..  if you
don't like it - it's opensource, Go and fork it
09:19 < nsf> :\
09:20 < mpl> "I like go because this or that" or "my great thoughts on go
are..." should go to a freaking blog, not to a technical ML.
09:20 < mpl> but yeah it's not like I can't ignore it.
09:20 < nsf> ah..  and that
09:20 < nsf> but it's less annoying
09:21 < nsf> I get annoyed more by people trying to fit Go into their needs
saying that it misses absolutely critical features, etc.
09:22 < mpl> I think the recurrent questions of newcomers who can't be arsed
to read one bit of documentation is what makes me cringe the most.  but that's
common to other MLs actually.
09:22 -!- aho [~nya@fuld-4d00d30f.pool.mediaWays.net] has joined #go-nuts
09:22 < nsf> yeah, I got used to it
09:23 < Gertm> I hope Go stays as clean and small as it is now.  It's near
perfect for me.
09:23 < mpl> I can understand ppl proposing features when it's really well
thought and argumented and coming from someone with experience.  but every
newcomer proposing the same things all over again because it's in python or
whatever is a bit tiring.
09:24 < wrtp> nsf: i tend to agree with you about optional conditional
expression in an if
09:24 -!- ako [~nya@fuld-4d00d7e2.pool.mediaWays.net] has quit [Ping timeout: 240
09:24 < Gertm> People need to learn the idioms before trying to change the
rules of the game.  I think a lot of them expect Go to be python with braces or
09:25 < mpl> like the freaking generics argument.  ppl should read what's
been said about it previously, and only if they have something new to bring to the
discussion then bring the subject back up again.
09:25 < nsf> well, I have a lot of opinions about how Go should look like,
but I (as a developer) understand that talks are cheap, someone should implement
all these ideas and if I'm not ready to do it myself, then I'll better be silent
09:25 * wrtp thinks it's important that the arguments are reiterated - it's about
raising shared awareness of how the language works...  and is intended to work.
09:26 < mpl> nsf: totally agreed.
09:26 < wrtp> even though it's annoying too
09:26 < Gertm> wrtp: a good FAQ would help too :)
09:26 < wrtp> yeah, an FAQ that actually answered the questions that people
ask would be good
09:27 < mpl> wrtp: that's why there's documentation and google groups that
one can read back.
09:27 < mpl> I wonder how the core team actually gets any work done if they
actually read every single mail that goes through the ML.
09:27 < Gertm> yeah, I'm having troubles keeping up
09:28 < nsf> mpl: they don't read mail :D
09:28 < nsf> Rob Pike said that few times in his talks
09:29 < nsf> well, I mean you don't have to read mail every 30 minuts
09:29 < mpl> nsf: well, they answer often enough that they must read most of
09:29 < nsf> once in a day is fine
09:30 < nsf> well, I don't know
09:30 < nsf> reading mail don't take too much time
09:30 < mpl> at least russ, iant and adg
09:33 -!- mikespook [~mikespook@] has quit [Quit: Leaving.]
09:34 < nsf> wrtp: btw, non-recursive make still waits for you :)
09:34 < wrtp> nsf: go on then
09:34 < nsf> personally I've lost interest to that idea
09:34 < wrtp> why?
09:34 < nsf> but I don't know
09:34 < nsf> well, there are few bad sides
09:35 < wrtp> the idea of automatically transforming the standard makefiles,
or non-recursive make in general?
09:35 < nsf> and giving the fact that go compiles very fast, the good sides
aren't that good
09:35 < nsf> wrtp: it's not automatic
09:35 < wrtp> oh, i thought that's what your templates were doing
09:35 < nsf> it can't be done 100% in an automatic way
09:36 < nsf> but I had converted all go lib makefiles in two days
09:36 < nsf> that's not the problem, my non-recursive makefile templates are
more or less compatible with existing ones
09:36 < wrtp> what are the bad sides then?
09:36 < nsf> like there is still TARG and GOFILES
09:37 < nsf> maintainance cost is higher
09:37 < nsf> because each target shares variables namespace with others
09:37 < nsf> for example
09:37 < nsf> some go libs have this thing: GOOS_windows GOOS_linux
09:37 < wrtp> ah, that's an interesting point
09:37 < nsf> oops
09:37 < nsf> I mean something like CFLAGS_windows CFLAGS_linux
09:38 < nsf> and then: CFLAGS+=CFLAGS_$(GOOS)
09:38 < nsf> but the next package defines let's say only CFLAGS_windows
09:38 < nsf> and on linux it gets this var from the previous package :)
09:38 < nsf> there are not so many cases like that, I was able to fix them
all pretty quickly though
09:39 < wrtp> i still think that a good initial approach would be to have an
automatic dependency analysis and just run make in the dirs that need it
09:39 < nsf> but what it means, that you have to thing about these
09:39 < wrtp> not changing the system makefiles at all
09:39 < nsf> it's not possible
09:39 < wrtp> no?
09:39 < nsf> you have to change them one way or another
09:39 < nsf> at least prefixing $(curdir) everywhere
09:39 < wrtp> i'm pretty sure it's possible
09:40 < wrtp> the analysis can be conservative
09:40 < nsf> because if you want to track all packages in a single deps
tree, you have to use paths relative to single directory
09:40 < wrtp> so it might run make more times than necessary, but that
doesn't matter too much
09:40 < wrtp> why's that?
09:40 < nsf> anyways, I have a small tarball for you that includes:
templates, converted makefiles for few packages
09:41 < nsf> wrtp: because, you can't change current directory
09:41 < nsf> within make
09:41 < wrtp> you don't need to
09:41 < nsf> then how would you track dependencies?
09:41 < wrtp> i'd use a separate tool
09:42 < wrtp> it might analyse source files, or it might analyse makefiles
09:42 < wrtp> i think it'd have to analyse source files actually, but that's
pretty quick
09:42 < nsf> so, you're proposing adding another tool on top of make to
figure out what is out-dated
09:42 < wrtp> yeah
09:42 < nsf> and run make in these dirs?
09:42 < wrtp> yup
09:42 < nsf> well, that's not what I was planning to do
09:43 < wrtp> the point is not to speed things up, but to scratch my itch,
which is that i can't automatically recompile things a particular command depends
09:43 < wrtp> without running all.bash, or manually running make in the
directories that need it
09:43 < wrtp> all.bash is much slower than need-be
09:43 < nsf> it can be done with make :)
09:44 < wrtp> probably
09:44 < nsf> but only using non-recursive approach
09:44 < wrtp> you pointed out some of the shortcomings of that approach.
09:44 < nsf> http://ompldr.org/vNjdjdg/non-recursive.tar.bz2
09:45 < nsf> anyway, here's the small tarball
09:45 < nsf> (200kb)
09:45 < nsf> it shows how it may look like
09:45 < wrtp> i reckon about 100 or so lines of go code should do the job
09:45 < nsf> includes a very complex package runtime which is converted to
non-recursive thing
09:45 < nsf> package "runtime"*
09:46 < nsf> see all.bash here as well, I use ROOT instead of GOROOT, well,
it's just an example
09:46 < nsf> no dependency generation yet
09:47 < nsf> generating dependencies for Go isn't hard, having a good tool
to build stuff is a problem
09:47 < nsf> maintaining makefiles is a problem too
09:47 < TheSeeker> making go without bash would be nice.  not possible?
09:48 < nsf> eventually it is possible, yes
09:48 < nsf> my all.bash and clean.bash are 3 lines of code
09:48 < nsf> mine*
09:49 < nsf> purely documentational purpose, show you that you have to set
ROOT env var :)
09:49 < TheSeeker> mingw has make, but posixy stuff is *bleh* on windows.
09:49 < wrtp> what about commands?
09:49 < nsf> commands?
09:52 < nsf> also there is another problem
09:53 < nsf> for example these templates require make 3.81 or newer
09:53 < nsf> it's not the latest version, the latest is 3.82
09:53 < nsf> but still, for some people it will be a problem
09:55 < TheSeeker> GNU Make 3.82
09:55 < TheSeeker> Built for x86_64-w64-mingw32
09:55 -!- wrtp [~rog@] has quit [Read error: Connection reset by peer]
09:55 < TheSeeker> yey
09:55 -!- wrtp [~rog@] has joined #go-nuts
09:56 < nsf> TheSeeker: well, it's not a problem for windows obviously, but
some weird linux and/or *bsd people have issues with that
09:56 < nsf> they tend to use old, "stable" software
09:57 < nsf> like linux kernel 2.4.*
09:57 < nsf> python 2.4
09:57 < nsf> and god knows what else :D
09:58 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has quit [Quit: WeeChat
09:59 < nsf> wrtp: so, what do you think?  the most interesting stuff in
template-pkg.make, pkg/Makefile and pkg/runtime/Make.def
09:59 < nsf> these give you an impression how it would look like
09:59 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has joined #go-nuts
10:00 < wrtp> i think it's an interesting experiment
10:00 < nsf> well, with these templates I can build the whole Go lib
10:01 < nsf> but it's not everything, there is a $GOROOT/cmd also
10:01 < nsf> and deps are still missing
10:01 < nsf> I mean crosspackage deps
10:03 < nsf> and it is possble to create local makefiles for that system
10:03 < nsf> in fact it's pretty easy
10:03 < nsf> include $(ROOT)/templates.make
10:04 < nsf> $(eval $(call TEMPLATE_GO_PACKAGE_IN_DIR,))
10:04 < nsf> done..
10:04 < nsf> :)
10:04 -!- wrtp [~rog@] has quit [Ping timeout: 245 seconds]
10:04 < nsf> :(
10:05 -!- Fish [~Fish@9fans.fr] has joined #go-nuts
10:07 < TheSeeker> hmm, I was able to build my own copy of goinstall after
messing with the existing make scripts to use windows path seperators, and trying
to edit goinstall source to do the same ...  I wonder if I could make all the
other commands too?
10:08 < nsf> ah, that's is another problem
10:08 < nsf> with make
10:08 < nsf> personally I don't care much about it
10:08 < nsf> but people do
10:08 < nsf> make isn't really windows friendly
10:08 < nsf> therefore moving away from it
10:09 < nsf> maybe will make it possible to build go on windows without
cygwin or mingw
10:09 < nsf> or at least will make things simpler
10:10 < TheSeeker> what's wrong with mingw?
10:10 -!- wrtp [~rog@] has joined #go-nuts
10:10 < TheSeeker> are you thinking msys?
10:11 < nsf> TheSeeker: well, these are more like GNU/nix emulation layers
for windows
10:11 < nsf> most people don't want to see them on their PCs
10:11 < nsf> wrtp: check this out, non-recursive make is better with -j2:
10:12 < nsf> how nicely it builds everything with 8g as a first step and
then moves one
10:12 < nsf> on*
10:12 < TheSeeker> mingw is GNU GCC for windows.
10:12 < nsf> TheSeeker: I know
10:12 < nsf> but it's not just gnu gcc
10:12 < nsf> it stands for minimalist GNU for windows
10:12 < TheSeeker> msys make is GNU Make version 3.79.1 :|
10:12 < nsf> hehe
10:14 < TheSeeker> I have mingw in my path, as well as cygwin, and msys (for
msysgit) ...  it's sometimes hard to tell which comflicting version of what will
be executed from inside one of the commands offered by each of them :/
10:14 < wrtp> nsf: -j2?
10:14 < nsf> wrtp: yes, make -j2
10:14 < nsf> uses two jobs, tries to do build in parallel
10:15 < nsf> see, it parallelizes not just individual dirs, but the lib as a
10:15 < nsf> starts from building GOFILES
10:15 < nsf> and then packs them
10:17 < nsf> I mean that was the non-recursive thing is all about
10:17 < nsf> everything in a single dependencies tree
10:17 < nsf> or graph, or whatever
10:18 < nsf> it will be even possible to add go libraries as a dependencies
for your app
10:18 -!- tvw [~tv@] has joined #go-nuts
10:18 < nsf> like you've changed something in $GOROOT/src/pkg/bytes
10:18 -!- wrtp [~rog@] has quit [Ping timeout: 240 seconds]
10:18 < nsf> and your app builds that, installs that and then goes on to
10:18 < nsf> :\
10:19 < nsf> imho there is an advantage clearly, the problem is to convince
go developers, that this kind of transition is necessary :D
10:25 -!- wrtp [~rog@] has joined #go-nuts
10:27 < TheSeeker> foss dev cycle: "this sucks, fix it!" -> "do it
yourself" -> "fine then I will!" -> "ok, I did it, now use it" -> "no
thanks" -> <everyone that's not a core developer starts using it> ->
"ok, fine, we'll use it"
10:27 < nsf> haha
10:27 < nsf> the pre-last step is the most hard one
10:28 < nsf> especially in my case
10:28 < TheSeeker> not when you're starting with a small user base to begin
with :)
10:29 < nsf> the problem here is that I want to rewrite the build system for
the whole go source tree
10:29 < nsf> I can't just hold it as a patch somewhere on the net
10:29 < nsf> no one will use it
10:30 < nsf> so, I guess I should start with simple make templates for 3rd
party projects
10:30 < nsf> because few people have projects with local libraries in them
10:30 < nsf> and they don't want recursive make
10:31 < nsf> because it fails to track dependencies correctly
10:32 < TheSeeker> If you can show that it's faster, simpler, or easier to
get working on windows, I'll gladly pull from your fork of go instead of the main
one :)
10:32 < nsf> yeah..  the thing is I don't really care about windows :D
10:32 < nsf> and I know that this is a large user base
10:32 < nsf> but..
10:33 < nsf> I don't use windows and therefore I can't make a build system
for it
10:35 -!- artefon [~thiago@] has joined
10:35 -!- artefon [~thiago@] has quit [Read
error: Connection reset by peer]
10:36 -!- artefon [~thiago@] has joined
10:36 < TheSeeker> I do use windows, so I could tell you if your system is
easier to get working from a dumb windows user perspective :)
10:36 < nsf> well, it will be base on make anyway, so if make 3.81 is
available on windows, why not
10:36 < nsf> based*
10:37 < nsf> 3.81, because this version contains an important bug fix for
$(foreach $eval case
10:38 -!- TheSaint [~thesaint@] has joined #go-nuts
10:40 < Archwyrm> nsf: Have you seen godag?  It builds most of the standard
10:40 < nsf> nope
10:40 < Archwyrm> Just doesn't support cgo right now.
10:40 < nsf> I'm aware that this tool exists
10:40 < nsf> never used it, I just don't see a point
10:41 < Archwyrm> Point is you don't need make or makefiles.
10:41 < Archwyrm> It just 'works'.
10:41 < nsf> it just works for building Go source code
10:41 < nsf> but then your project grows
10:41 < nsf> and include let's say asciidoc -> man page toolchain
10:41 < nsf> and other things
10:41 < Archwyrm> Yeah, it doesn't support C obviously, so you can't build
all of go with it.
10:42 < nsf> includes*
10:42 < Archwyrm> Heh
10:42 < Archwyrm> Well, make relies on external tools for this.  I would
assume any other build tool would want to allow custom targets.
10:42 < nsf> it is important, people on the ML that are talking about
10:42 < nsf> are right partially
10:43 < nsf> indeed, the problem with make as I've said before
10:43 < nsf> is that it's not very windows friendly
10:43 < nsf> but being truly crossplatform is very hard
10:44 < nsf> make relies on POSIX stuff
10:44 < nsf> especially posix command tools (sh, mkdir, cp, rm, etc.)
10:44 < nsf> I don't think it's evil
10:44 < Archwyrm> cmake manages it.  I suppose scons is fine too because it
is just python.
10:44 < Archwyrm> Can't really say, I only have experience with make and
cmake out of those.
10:45 < nsf> cmake provides alternatives for these tools
10:45 < vegai> why not go full crazy and mk?  :P
10:45 < nsf> because even gnu make has not enough features for building
non-recursive systems
10:45 < nsf> for example it lacks per-file namespaces
10:45 < nsf> there is a project on the net
10:45 < nsf> called makepp
10:45 < nsf> it addresses some of these issues
10:46 < nsf> but apparently no one uses it :D
10:46 < nsf> gnu make is a sane choice because at least on linux
10:46 < Archwyrm> Some tools get rather entrenched.
10:46 < nsf> it is available on the most major distributions
10:46 < Archwyrm> *cough*autotools/conf*cough*
10:47 < nsf> I've never used autotools, I think it's a complete crap
10:47 < nsf> for C/C++ projects I use cmake
10:47 < Archwyrm> Same.  I have never even tried.
10:47 < nsf> I've tried
10:47 < Archwyrm> Fixing the build of some projects that were already using
it was scarring enough.
10:47 < nsf> it just dumps tons of useless files to your project dir
10:48 -!- TheSaint [~thesaint@] has quit [Quit: Colloquy for iPhone -
10:48 < Archwyrm> That and all the junk you have to know to actually use it.
10:48 < nsf> m4 is the most scary one
10:49 < Archwyrm> Yeah, I was trying to think of the name.
10:50 -!- wrtp [~rog@] has quit [Ping timeout: 276 seconds]
10:51 < bortzmeyer> I use autotools and I am quite happy with it.  But I
always appreciate testing alternatives.
10:53 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has quit [Ping timeout: 240
10:55 -!- wrtp [~rog@] has joined #go-nuts
10:57 -!- adu [~ajr@pool-173-66-11-168.washdc.fios.verizon.net] has quit [Quit:
11:04 < wrtp> nsf: you can have less features and nonetheless have at least
as much power
11:05 < nsf> I'm sure I can
11:05 < nsf> but rewriting make isn't affordable at the moment
11:05 -!- stalled [~stalled@unaffiliated/stalled] has quit [Read error: Connection
reset by peer]
11:05 < wrtp> i.e.  mk is not necessarily insufficient
11:06 < nsf> well, regarding mk you shouldn't listen me
11:06 < nsf> I've seen it once
11:06 < wrtp> in fact i think it's fine - they don't use it only because it
adds another dependency.
11:06 < nsf> and I'm sure I haven't seen even 30% of its features
11:06 < nsf> :)
11:07 < wrtp>
11:07 < wrtp> if you're interested
11:07 < nsf> not really :)
11:07 < nsf> it would be interesting if I was planning to rewrite the make
11:07 < wrtp> it's nice because it cuts out a lot of make's cruft
11:07 < nsf> my interest is purely practical
11:07 < wrtp> while expanding its power
11:07 < wrtp> sure
11:10 -!- adu [~ajr@pool-173-66-11-168.washdc.fios.verizon.net] has joined
11:10 -!- esplinter [~pablo@] has quit [Quit: Leaving]
11:13 -!- esplinter [~pablo@] has joined #go-nuts
11:14 < uriel> wrtp: er, there are better versions of that paper than a
.ps.gz ;)
11:14 -!- rlab [~Miranda@] has joined #go-nuts
11:14 < uriel> http://doc.cat-v.org/plan_9/4th_edition/papers/mk
11:15 < wrtp> uriel: sorry, i had a look on your website and i didn't see it
11:19 < uriel> wrtp: you can also use http://mk.cat-v.org as a shortcut ;)
11:20 -!- wrtp [~rog@] has quit [Ping timeout: 265 seconds]
11:20 -!- niemeyer [~niemeyer@189-10-175-46.pltce701.dsl.brasiltelecom.net.br] has
joined #go-nuts
11:23 -!- stalled [~stalled@unaffiliated/stalled] has joined #go-nuts
11:24 -!- wrtp [~rog@] has joined #go-nuts
11:24 < wrtp> uriel: did you see any of that?  i was disconnected for a bit
11:31 < wrtp> is this working?  anyone see this?
11:31 < nsf> yes yes
11:32 < nsf> your last phrase before disconnect was:
11:32 < nsf> wrtp | uriel: sorry, i had a look on your website and i didn't
see it
11:34 < wrtp> ah!
11:34 < wrtp> i said:
11:34 < wrtp> uriel: anyway, that's the wrong paper
11:34 < wrtp> i wanted to point to the original mk paper that describes its
raison d'etre
11:34 < wrtp> "mk; a successor to make" by andrew hume
11:34 < wrtp> you should add it
11:34 < wrtp> it was also published in the 10th ed books
11:34 < wrtp> nsf: thanks
11:35 -!- mbohun [~user@ppp115-156.static.internode.on.net] has quit [Remote host
closed the connection]
11:36 < TheSeeker> mk, because typing 4 chars to start a build is 2 chars
too many?
11:39 < wrtp> mk, because it's difficult to think of new names...
11:41 < TheSeeker> fair enough
11:52 < nsf> yamake, makemm (minus minus), makepp :D
11:52 < nsf> and just for the record, I'm not proposing these
11:56 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has joined #go-nuts
11:58 < uriel> wrtp: ah, cool
11:59 < uriel> wrtp: do you have a link to that paper?
12:00 -!- Nitro [~Nitro@modemcable105.5-82-70.mc.videotron.ca] has quit [Quit:
This computer has gone to sleep]
12:03 < mpl> wrtp: I think the go team said they didn't want to use mk
because they didn't want to add an additional "not widely known" dep, didn't they?
12:05 -!- napsy [~luka@] has quit [Ping timeout: 250 seconds]
12:10 -!- adu [~ajr@pool-173-66-11-168.washdc.fios.verizon.net] has quit [Quit:
12:12 -!- skejoe [~skejoe@] has joined #go-nuts
12:15 -!- adu [~ajr@pool-173-66-11-168.washdc.fios.verizon.net] has joined
12:17 < uriel> mpl: nor any more extra dependencies
12:17 < uriel> mpl: as russ pointed out, the most important aspect for a
build system is ubiquity, and at that make is very hard to beat
12:18 < uriel> they could have added mk plus a simple bootstrap step like
p9p does, but really it hardly seems worth the trouble
12:19 -!- brighteyed [59ff4f3e@gateway/web/freenode/ip.] has quit
[Ping timeout: 265 seconds]
12:22 < mpl> yes.
12:22 < wrtp> uriel: your original comment was in respect to a link that i
wrote here!
12:23 -!- rlab [~Miranda@] has quit [Ping timeout: 245 seconds]
12:23 < wrtp>
12:25 -!- rlab [~Miranda@] has joined #go-nuts
12:25 -!- tensorpudding [~user@] has quit [Remote host closed the
13:08 -!- foocraft [~dsc@] has quit [Remote host closed the
13:21 -!- lmoura [~lauromour@] has quit [Read error: Operation timed
13:22 -!- lmoura [~lauromour@] has joined #go-nuts
13:25 -!- thom [~thom@70-139-188-39.lightspeed.hstntx.sbcglobal.net] has joined
13:28 -!- artefon [~thiago@] has quit [Quit:
13:30 -!- Nitro [~Nitro@] has joined #go-nuts
13:30 -!- rlab_ [~Miranda@] has joined #go-nuts
13:32 -!- rlab [~Miranda@] has quit [Ping timeout: 260 seconds]
13:34 -!- wrtp [~rog@] has quit [Ping timeout: 255 seconds]
13:40 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has quit [Quit: WeeChat
13:40 -!- wrtp [~rog@] has joined #go-nuts
13:45 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has joined #go-nuts
13:47 < uriel> wrtp: ah, interesting
13:47 -!- Nitro [~Nitro@] has quit [Quit: Leaving]
13:53 < uriel> wrtp: added it: http://doc.cat-v.org/bell_labs/mk/
13:54 < uriel> (and pointed mk.cat-v.org thre)
14:03 -!- captn1 [~root@pD9FE2674.dip.t-dialin.net] has quit [Quit: Leaving.]
14:03 -!- fabled [~fabled@] has quit [Quit: Ex-Chat]
14:04 -!- DerHorst [~Horst@e176098049.adsl.alicedsl.de] has joined #go-nuts
14:05 < wrtp> uriel: it would be great if you could find all the papers that
were in the 10th ed.  vol 2...
14:05 < wrtp> oops sorry, very off topic for here
14:07 < nsf> wrtp: IRC has a nice implicit rule, off topic is allowed in
case if there are no "on topic" talks on the channel at the moment :D
14:07 < Fish> I have the 10th books
14:07 < nsf> simply because making demands for people to be always "on
topic" is cruel
14:08 < Fish> I could scan it, but after you have to ocr the images
14:09 -!- plainhao [~plainhao@] has joined #go-nuts
14:09 < Fish> iirc, most of 10th edition specific papers are very hard to
14:13 < wrtp> Fish: i have the 10th ed books too.  i'm so glad i bought them
when i saw them on sale at the time.
14:13 < wrtp> but many of the papers are indeed hard to find - it'd be
useful to have them online to point people to
14:14 -!- fabled [~fabled@mail.fi.jw.org] has joined #go-nuts
14:14 < Fish> best way would be to convince those who have 10th edition
sources to put the troff sources online
14:15 < wrtp> maybe they don't exist any more
14:16 -!- hokapoka [~hokapoka@hoka.hokapoka.com] has joined #go-nuts
14:17 < mpl> cs-archeology :)
14:18 < hokapoka> At last I've managed to get some old project off my desk
so I can re-look at using go.  I was initially looking at using mongodb with go,
but I had some issues with the implymentation.  I've not had a chance to try and
fix it yet, wondered what others were using for databases?
14:18 < mpl> sqlite
14:22 -!- snearch [~snearch@f053008254.adsl.alicedsl.de] has joined #go-nuts
14:25 -!- iant [~iant@adsl-71-133-8-30.dsl.pltn13.pacbell.net] has quit [Quit:
14:38 -!- iant [~iant@] has joined #go-nuts
14:38 -!- mode/#go-nuts [+v iant] by ChanServ
14:45 -!- femtoo [~femto@95-89-197-196-dynip.superkabel.de] has joined #go-nuts
14:45 -!- markus [53fedc8c@gateway/web/freenode/ip.] has joined
14:46 -!- markus [53fedc8c@gateway/web/freenode/ip.] has quit
[Client Quit]
14:52 -!- artefon [~thiagon@] has joined #go-nuts
14:57 -!- skelterjohn [~jasmuth@c-76-98-219-171.hsd1.nj.comcast.net] has quit
[Quit: skelterjohn]
14:57 -!- iant [~iant@] has quit [Ping timeout: 240 seconds]
14:58 -!- iant [~iant@] has joined #go-nuts
14:58 -!- mode/#go-nuts [+v iant] by ChanServ
15:02 -!- markus [~markus@c83-254-220-140.bredband.comhem.se] has joined #go-nuts
15:03 < markus> hey everybody
15:03 < markus> has somebody time to answer a beginners question in go?
15:03 <+iant> you can just ask, you don't have to ask whether you can ask
15:04 -!- zozoR [~zozoR@5634798d.rev.stofanet.dk] has joined #go-nuts
15:04 < markus> alright
15:05 < markus> i have small go program
15:05 < markus> written in a text file
15:05 < markus> and wondering what the result of the program is
15:06 < wrtp> markus: have you tried compiling it?
15:06 < markus> and whether its compileder dependent
15:06 < markus> compiler
15:07 < markus> may somebody have a look on it when I send it to you?
15:07 < wrtp> markus: why don't you put on a web pasteboard?
15:07 < markus> alright
15:08 < markus> http://pastebin.com/9saPZymc
15:09 <+iant> The type Concrete does not appear to have a show method
15:09 <+iant> so I don't see how this code could compile
15:10 <+iant> plus the syntax is wrong
15:10 < markus> alright
15:10 <+iant> what is your real question?
15:11 < markus> this multi interface satisfaction case which method will be
15:11 < markus> the first show or the second one if Concrete would have a
show method
15:11 < wrtp> markus: i think you mean to say func (this *One) not func (One
15:11 < markus> yeah
15:12 < wrtp> but even then it's wrong because you want to use One, not *One
15:12 < wrtp> and as iant says, Concrete has no show method
15:12 <+iant> You can't write your own method for an interface type
15:12 < markus> ah okay
15:12 < wrtp> markus: why don't you try making an example that compiles,
then get back here?
15:12 <+iant> Interface types get methods from concrete types
15:13 < markus> okay question solved when you cannot make a method for an
interface type
15:13 < markus> thanks
15:13 < markus> cya
15:13 -!- cenuij [~cenuij@base/student/cenuij] has quit [Remote host closed the
15:13 -!- markus [~markus@c83-254-220-140.bredband.comhem.se] has quit []
15:16 <+iant> that was odd
15:22 -!- femtoo [~femto@95-89-197-196-dynip.superkabel.de] has quit [Quit:
15:23 -!- sauerbraten [~sauerbrat@p508CF40D.dip.t-dialin.net] has joined #go-nuts
15:26 < wrtp> just someone wondering how the language works, i guess
15:28 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has quit [Ping timeout: 264
15:31 -!- werdan7 [~w7@freenode/staff/wikimedia.werdan7] has quit [Ping timeout:
265 seconds]
15:33 -!- tvw [~tv@] has quit [Remote host closed the connection]
15:33 -!- tvw [~tv@] has joined #go-nuts
15:35 -!- tvw [~tv@] has quit [Remote host closed the connection]
15:36 -!- tvw [~tv@] has joined #go-nuts
15:39 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts
15:41 -!- tvw [~tv@] has quit [Remote host closed the connection]
15:41 -!- tvw [~tv@] has joined #go-nuts
15:41 -!- Venom_X [~pjacobs@] has joined #go-nuts
15:52 -!- rejb [~rejb@unaffiliated/rejb] has joined #go-nuts
15:59 -!- bortzmeyer [~bortzmeye@batilda.nic.fr] has quit [Quit: Leaving.]
16:02 -!- deso [~deso@x0561a.wh30.tu-dresden.de] has joined #go-nuts
16:06 -!- kanru [~kanru@118-160-164-12.dynamic.hinet.net] has joined #go-nuts
16:06 -!- ios_ [~ios@] has joined #go-nuts
16:09 -!- iant [~iant@] has quit [Quit: Leaving.]
16:10 -!- ako [~nya@fuld-4d00d3a6.pool.mediaWays.net] has joined #go-nuts
16:11 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.3]
16:12 -!- itrekkie [~itrekkie@71-214-188-46.tcso.qwest.net] has joined #go-nuts
16:13 -!- aho [~nya@fuld-4d00d30f.pool.mediaWays.net] has quit [Ping timeout: 240
16:18 -!- iant [~iant@nat/google/x-ahuieibdengebftj] has joined #go-nuts
16:18 -!- mode/#go-nuts [+v iant] by ChanServ
16:22 -!- bjarneh [~bjarneh@1x-193-157-205-232.uio.no] has joined #go-nuts
16:27 -!- captn [~root@pD9FE2674.dip.t-dialin.net] has joined #go-nuts
16:32 -!- Venom_X_ [~pjacobs@] has joined #go-nuts
16:36 -!- Venom_X [~pjacobs@] has quit [Ping timeout: 264 seconds]
16:51 -!- noktoborus_ [debian-tor@gateway/tor-sasl/noktoborus] has quit [Remote
host closed the connection]
16:52 -!- noktoborus_ [debian-tor@gateway/tor-sasl/noktoborus] has joined #go-nuts
16:52 -!- ayo [~nya@fuld-4d00d090.pool.mediaWays.net] has joined #go-nuts
16:55 -!- ako [~nya@fuld-4d00d3a6.pool.mediaWays.net] has quit [Ping timeout: 240
16:59 -!- brighteyed [~brighteye@] has joined #go-nuts
16:59 -!- brighteyed [~brighteye@] has left #go-nuts []
16:59 -!- brighteyed [~brighteye@] has joined #go-nuts
16:59 -!- brighteyed [~brighteye@] has left #go-nuts []
17:00 -!- krutcha [~ceekay@S010600045a27676a.vs.shawcable.net] has quit [Quit:
17:06 -!- artefon [~thiagon@] has quit [Read error: Connection reset
by peer]
17:06 -!- danslo [~daniel@s5593965d.adsl.wanadoo.nl] has joined #go-nuts
17:06 -!- ako [~nya@fuld-4d00d2ec.pool.mediaWays.net] has joined #go-nuts
17:08 -!- ayo [~nya@fuld-4d00d090.pool.mediaWays.net] has quit [Read error:
Connection reset by peer]
17:10 -!- noktoborus_ [debian-tor@gateway/tor-sasl/noktoborus] has quit [Remote
host closed the connection]
17:11 -!- noktoborus_ [debian-tor@gateway/tor-sasl/noktoborus] has joined #go-nuts
17:23 -!- femtoo [~femto@95-89-197-196-dynip.superkabel.de] has joined #go-nuts
17:29 -!- awidegreen_ [~quassel@p5DF1EA63.dip.t-dialin.net] has joined #go-nuts
17:29 -!- Tv [~tv@gige.bur.digisynd.com] has joined #go-nuts
17:31 -!- awidegreen [~quassel@p5DF1C827.dip.t-dialin.net] has quit [Ping timeout:
276 seconds]
17:39 -!- kanru [~kanru@118-160-164-12.dynamic.hinet.net] has quit [Ping timeout:
255 seconds]
17:41 -!- slashus2 [~slashus2@74-141-116-172.dhcp.insightbb.com] has joined
17:42 -!- mssm [~mssm@ip-95-221-75-124.bb.netbynet.ru] has joined #go-nuts
17:50 -!- enherit [~enherit@cpe-98-149-170-48.socal.res.rr.com] has joined
17:51 -!- tvw [~tv@] has quit [Remote host closed the connection]
17:51 -!- skelterjohn [~jasmuth@tvwna-ip-b-128.princeton.org] has joined #go-nuts
17:53 -!- devrim [~Adium@cpe-72-225-239-227.nyc.res.rr.com] has quit [Read error:
Connection reset by peer]
17:53 -!- devrim [~Adium@cpe-72-225-239-227.nyc.res.rr.com] has joined #go-nuts
17:54 -!- ios_ [~ios@] has quit [Quit: Leaving]
17:55 -!- ct529 [~quassel@envpc1758.york.ac.uk] has joined #go-nuts
17:59 -!- napsy [~luka@] has joined #go-nuts
18:00 -!- femtooo [~femto@95-89-197-196-dynip.superkabel.de] has joined #go-nuts
18:02 -!- skelterjohn [~jasmuth@tvwna-ip-b-128.princeton.org] has quit [Quit:
18:02 -!- femtoo [~femto@95-89-197-196-dynip.superkabel.de] has quit [Ping
timeout: 240 seconds]
18:09 -!- danslo [~daniel@s5593965d.adsl.wanadoo.nl] has quit [Quit: Leaving.]
18:09 -!- adu [~ajr@pool-173-66-11-168.washdc.fios.verizon.net] has quit [Quit:
18:13 -!- evilclone [~graham@dyn1065-37.hor.ic.ac.uk] has joined #go-nuts
18:14 < evilclone> is there a way for me to write a lib for my program to
use without having the lib be installed to the global package area?  basically I'd
like to break certain bits of functionality off into separate packages but I don't
want to pollute the "global" package area with my packages...
18:15 < cbeck> import "./yourpackage"
18:16 < cbeck> Or in the makefile TARGET=yourname/packagename
18:16 < cbeck> if you want them to be easily included from anywhere but not
at the top level
18:17 -!- saschpe [~quassel@77-23-177-40-dynip.superkabel.de] has joined #go-nuts
18:17 < evilclone> is there a way to still use makefiles but not have it
automatically do the "make install" step?
18:20 < evilclone> because I'd quite like to have the nice easy-rebuild I
gain from having stuff setup with make
18:20 < evilclone> but as it is the packages get pushed to the global
package store
18:22 < cbeck> make install is a seperate step
18:22 -!- krutcha [~krutcha@remote.icron.com] has joined #go-nuts
18:24 < evilclone> cbeck: it seems to run it due to the lib being in my DEPS
variable in my main program's make file...  should I be setting the makefiles out
differently somehow?
18:25 -!- gmilleramilar [~gmiller@184-106-207-119.static.cloud-ips.com] has joined
18:26 < gmilleramilar> what should the output of this program on x86 be?
18:27 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts
18:27 <+iant> gmilleramilar: what happens when you run it?
18:27 < gmilleramilar> 4
18:27 <+iant> sounds good
18:28 < gmilleramilar> is that because unsafe.Maxalign limits it?
18:28 <+iant> unsafe.Alignof is telling you something about the compiler you
are using, not something inherent in the type
18:28 <+iant> that is why it is unsafe
18:28 <+iant> it's telling you the alignment the compiler will use for the
18:29 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts
18:29 < gmilleramilar> but the golang spec says that it should be the lesser
of the size and unsafe.Maxalign, right?
18:29 <+iant> I don't know what unsafe.Maxalign is, but, yes, I expect that
4 is the maximum alignment that 8g uses
18:29 < gmilleramilar> yeah, that's the next problem, the spec references
that constant, but it does not exist in the libraries.
18:30 <+iant> hmmm, that is od
18:30 <+iant> d
18:30 < gmilleramilar> I can file a bug about it.
18:30 <+iant> thanks
18:35 -!- ct529 [~quassel@envpc1758.york.ac.uk] has quit [Remote host closed the
18:35 < gmilleramilar> ( http://code.google.com/p/go/issues/detail?id=1285
), this actually came up because I was looking to see if writes to float64 would
be atomic on x86, which apparently it is (according to Intel) if the bytes are
aligned on an 8 word boundary.
18:36 < gmilleramilar> so I guess they are not.
18:36 -!- bortzmeyer [~stephane@2a01:e35:8bd9:8bb0:ac41:6758:6298:fbbd] has joined
18:41 -!- slashus2 [~slashus2@74-141-116-172.dhcp.insightbb.com] has quit [Quit:
18:47 <+iant> Go doesn't guarantee any sort of atomic writes
18:54 -!- skelterjohn [~jasmuth@lawn-gw.rutgers.edu] has joined #go-nuts
19:02 < gmilleramilar> I understand that, but I'm more interested in whether
they are.
19:02 < gmilleramilar> (on a particular architecture)
19:09 < plexdev> http://is.gd/hiKPE by [Robert Griesemer] in
go/src/cmd/godoc/ -- godoc: bug fix in relativePath
19:11 -!- mssm [~mssm@ip-95-221-75-124.bb.netbynet.ru] has quit [Ping timeout: 272
19:13 -!- nsf [~nsf@jiss.convex.ru] has quit [Ping timeout: 240 seconds]
19:21 -!- krutcha [~krutcha@remote.icron.com] has quit [Ping timeout: 250 seconds]
19:25 < evilclone> cbeck..?
19:26 < cbeck> had to catch a bus
19:26 < evilclone> oh right
19:27 -!- Venom_X [~pjacobs@] has quit [Quit: Venom_X]
19:27 < evilclone> got any response to: cbeck: it seems to run it due to the
lib being in my DEPS variable in my main program's make file...  should I be
setting the makefiles out differently somehow?
19:27 < cbeck> Hmm
19:27 < evilclone> with regard to make install automatically being run when
my lib's sub folder is mentioned in the "DEPS" line of my program's makefile
19:28 < evilclone> I'd rather not go down the ugly-hack route of namespacing
all of my libs to stop them polluting the global lib area
19:29 < evilclone> tbh, I'd be happy if I was able to just have multiple
files that provide different packages all built into a single executable rather
than building seperate libs first
19:29 < cbeck> I don't find that particularly ugly, tbh
19:29 < evilclone> I'm just trying to get some form of separation of my
different objects in this project into separate namespaces from each other
19:29 < evilclone> because things are gonna get crowded otherwise...  :/
19:30 < evilclone> yeah but this libs are very specific to the application
at hand
19:30 < evilclone> so having them in the global lib store seems...
19:30 -!- lmoura [~lauromour@] has quit [Ping timeout: 240 seconds]
19:30 < cbeck> Then just use the import "./blah" syntax
19:31 < evilclone> ok, but then I'd have to remove the DEPS line from my
makefile and go around building all the dependant libs manually...
19:31 < cbeck> And perhaps roll your own makefile
19:31 < evilclone> oh
19:31 < evilclone> joy :(
19:31 < evilclone> I take it that the helper makefiles can only get me so
far, then?
19:32 < cbeck> They're for a rather particular purpose
19:32 < evilclone> right-ho
19:33 < evilclone> I'm awfully conscious of the fact that I feel like I'm
abusing the package system of go
19:33 < evilclone> essentially, I'm attempting to separate the different
parts of my app into logical namespaces of some variety
19:33 -!- lmoura [~lauromour@] has joined #go-nuts
19:33 < cbeck> I do exactly what you're talking about fairly regularly
19:34 < cbeck> And just use a simple makefile
19:34 < evilclone> obviously importing them as libs gives me the nice
separation so that I've got something like "webserv.Foo" access to those objects
to do with the webserver part and then "somethingelse.Bar" for parts related to
something else
19:35 < evilclone> is there no mechanism in go to do this without building
the "webserv" component as a separate lib and then linking it in?
19:35 -!- prudhvi [~nobody@nullpointer.in] has joined #go-nuts
19:35 < cbeck> for that exact use case, no
19:35 < prudhvi> Hi, i am wondering if go has any support for Accessing XML
webservices?  ( consuming from WSDL?  )
19:41 -!- artefon [~thiago@] has joined #go-nuts
19:44 -!- itrekkie_ [~itrekkie@ip72-200-114-63.tc.ph.cox.net] has joined #go-nuts
19:46 -!- fabled [~fabled@mail.fi.jw.org] has quit [Quit: Ex-Chat]
19:48 -!- itrekkie [~itrekkie@71-214-188-46.tcso.qwest.net] has quit [Ping
timeout: 240 seconds]
19:49 -!- TheMue [~TheMue@p5DDF609E.dip.t-dialin.net] has joined #go-nuts
19:49 -!- adu [~ajr@] has joined #go-nuts
19:58 -!- MaksimBurnin [~max@44.188-224-87.telenet.ru] has quit [Ping timeout: 255
20:01 -!- adu [~ajr@] has quit [Quit: adu]
20:08 -!- Paradox924X [~Paradox92@vaserv/irc/founder] has quit [Ping timeout: 240
20:14 -!- Paradox924X [~Paradox92@c-68-35-229-34.hsd1.fl.comcast.net] has joined
20:32 -!- Xurix [~Luixsia@AToulouse-254-1-2-18.w83-203.abo.wanadoo.fr] has joined
20:33 -!- Xurix [~Luixsia@AToulouse-254-1-2-18.w83-203.abo.wanadoo.fr] has quit
[Read error: Connection reset by peer]
20:40 -!- DerHorst [~Horst@e176098049.adsl.alicedsl.de] has quit [Remote host
closed the connection]
20:42 -!- MaksimBurnin [~max@44.188-224-87.telenet.ru] has joined #go-nuts
20:43 < plexdev> http://is.gd/hj0lf by [Robert Griesemer] in
go/src/pkg/go/token/ -- position.go: test cases for token.Pos
20:47 -!- saschpe [~quassel@77-23-177-40-dynip.superkabel.de] has quit [Read
error: Connection reset by peer]
20:49 -!- plainhao [~plainhao@] has quit [Quit: plainhao]
21:04 -!- gr0gmint [~quassel@] has joined #go-nuts
21:10 -!- skejoe [~skejoe@] has quit [Quit: leaving]
21:11 -!- skejoe [~skejoe@] has joined #go-nuts
21:14 -!- aho [~nya@fuld-4d00d6ac.pool.mediaWays.net] has joined #go-nuts
21:15 -!- ako [~nya@fuld-4d00d2ec.pool.mediaWays.net] has quit [Ping timeout: 240
21:20 -!- gr0gmint [~quassel@] has quit [Remote host closed the
21:22 -!- skejoe [~skejoe@] has quit [Quit: leaving]
21:26 -!- boscop_ [~boscop@g226245092.adsl.alicedsl.de] has joined #go-nuts
21:28 -!- boscop [~boscop@f055198166.adsl.alicedsl.de] has quit [Ping timeout: 240
21:28 -!- snearch [~snearch@f053008254.adsl.alicedsl.de] has quit [Quit:
21:29 -!- femtooo [~femto@95-89-197-196-dynip.superkabel.de] has quit [Quit:
21:29 -!- bortzmeyer [~stephane@2a01:e35:8bd9:8bb0:ac41:6758:6298:fbbd] has quit
[Quit: Leaving.]
21:32 -!- Venom_X [~pjacobs@] has joined #go-nuts
21:33 -!- bjarneh [~bjarneh@1x-193-157-205-232.uio.no] has quit [Quit: leaving]
21:39 -!- Xurix [~Luixsia@AToulouse-254-1-2-18.w83-203.abo.wanadoo.fr] has joined
21:56 -!- werdan7 [~w7@freenode/staff/wikimedia.werdan7] has joined #go-nuts
21:58 -!- zozoR [~zozoR@5634798d.rev.stofanet.dk] has quit [Quit: Morten.  Desu~]
22:02 -!- Paradox924X [~Paradox92@c-68-35-229-34.hsd1.fl.comcast.net] has quit
[Changing host]
22:02 -!- Paradox924X [~Paradox92@vaserv/irc/founder] has joined #go-nuts
22:06 -!- sjansen [~sjansen@ip65-44-231-178.z231-44-65.customer.algx.net] has
joined #go-nuts
22:09 -!- Fish [~Fish@9fans.fr] has quit [Quit: So Long, and Thanks for All the
22:09 -!- foocraft [~dsc@] has joined #go-nuts
22:17 -!- captn [~root@pD9FE2674.dip.t-dialin.net] has quit [Quit: Leaving.]
22:27 -!- Eridius [~kevin@unaffiliated/eridius] has joined #go-nuts
22:32 -!- deso [~deso@x0561a.wh30.tu-dresden.de] has quit [Remote host closed the
22:34 < enferex> is anyone working on a SSA form for the gc compiler?
22:36 < skelterjohn> what's SSA?
22:36 -!- photron [~photron@port-92-201-204-183.dynamic.qsc.de] has quit [Ping
timeout: 265 seconds]
22:42 < enferex> Static single assignment
22:44 -!- ExtraSpice [~XtraSpice@] has quit [Ping timeout: 240
22:48 -!- dju [~dju@fsf/member/dju] has joined #go-nuts
22:50 -!- Tuller [~tuller@c-69-143-52-174.hsd1.va.comcast.net] has joined #go-nuts
22:50 < anticw> enferex: use gccgo?
22:52 < enferex> ah I suppose the GIMPLE output from the gccgo front end
would be converted to SSA in the middle-end of gcc?
22:53 -!- dju [~dju@fsf/member/dju] has quit [Max SendQ exceeded]
22:53 -!- Tuller [~tuller@c-69-143-52-174.hsd1.va.comcast.net] has quit [Client
22:54 -!- Tuller [~tuller@c-69-143-52-174.hsd1.va.comcast.net] has joined #go-nuts
22:54 -!- dju [~dju@fsf/member/dju] has joined #go-nuts
22:55 -!- awidegreen_ [~quassel@p5DF1EA63.dip.t-dialin.net] has quit [Read error:
Connection reset by peer]
22:56 -!- TheMue [~TheMue@p5DDF609E.dip.t-dialin.net] has quit [Quit: TheMue]
22:57 -!- sauerbraten [~sauerbrat@p508CF40D.dip.t-dialin.net] has quit [Remote
host closed the connection]
23:01 -!- krutcha [~krutcha@remote.icron.com] has joined #go-nuts
23:01 -!- Tuller [~tuller@c-69-143-52-174.hsd1.va.comcast.net] has quit [Quit:
Computer has gone to sleep.]
23:02 -!- artefon [~thiago@] has quit [Quit: bye]
23:04 < krutcha> is there a way to disable local echo when reading from
stdin by line?  or would one have to read char by char and sendout backspaces?
23:05 -!- ystsntv [ystsntv@S01060019db8e14ab.vc.shawcable.net] has joined #go-nuts
23:06 < enferex> i think you might be able use a serttermio call
23:06 < enferex> er setterm
23:06 -!- rlab_ [~Miranda@] has quit [Quit: Miranda IM! Smaller,
Faster, Easier.  http://miranda-im.org]
23:08 < krutcha> I'll give that a go
23:08 < krutcha> thx
23:08 -!- foocraft [~dsc@] has quit [Quit: Leaving]
23:08 < enferex> thats aguess probably not really the solution you are
looking for
23:09 < enferex> You can always just redirect output
23:11 -!- tensorpudding [~user@] has joined #go-nuts
23:11 < enferex> I assume you are implementing a password input
23:11 -!- mcot [~mcot@pool-71-171-113-161.clppva.fios.verizon.net] has quit [Read
error: Connection reset by peer]
23:11 < enferex> or some kind of keylogger ;-)
23:11 -!- mcot [~mcot@pool-71-171-113-161.clppva.fios.verizon.net] has joined
23:11 < krutcha> correct, just a simple scanf at the moment for a console
jabber client password
23:11 < krutcha> figured why not try to mask the password if I can
23:13 -!- foocraft [~dsc@] has joined #go-nuts
23:16 -!- madari [madari@AM.irc.fi] has quit [Ping timeout: 255 seconds]
23:16 -!- madari [madari@AM.irc.fi] has joined #go-nuts
23:18 -!- wrtp [~rog@] has quit [Quit: wrtp]
23:20 -!- wtfness [~dsc@] has joined #go-nuts
23:20 -!- foocraft [~dsc@] has quit [Read error: Connection reset by
23:23 -!- mbohun [~user@ppp115-156.static.internode.on.net] has joined #go-nuts
23:24 -!- Tuller [~tuller@c-69-143-52-174.hsd1.va.comcast.net] has joined #go-nuts
23:27 -!- slashus2 [~slashus2@74-141-107-118.dhcp.insightbb.com] has joined
23:28 -!- Project-2501 [~Marvin@] has quit [Quit: E se abbasso questa
leva che succ...]
23:35 -!- watr_ [~watr@] has quit [Quit: Leaving]
23:38 -!- krutcha [~krutcha@remote.icron.com] has quit [Ping timeout: 272 seconds]
23:43 -!- bmizerany [~bmizerany@] has joined #go-nuts
23:49 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has quit [Quit:
23:50 -!- Tuller [~tuller@c-69-143-52-174.hsd1.va.comcast.net] has quit [Remote
host closed the connection]
--- Log closed Thu Nov 18 00:00:16 2010