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

--- Log opened Mon May 24 00:00:59 2010
00:01 -!- slashus2 [~slashus2@74-137-24-74.dhcp.insightbb.com] has joined #go-nuts
00:03 -!- ikaros [~ikaros@e179179103.adsl.alicedsl.de] has quit [Quit: Leave the
magic to Houdini]
00:11 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has joined #go-nuts
00:11 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has quit [Read
error: Connection reset by peer]
00:12 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has joined #go-nuts
00:22 -!- mxweas_ [~max@c-76-103-73-248.hsd1.ca.comcast.net] has quit [Quit: Mac
has gone to sleep]
00:22 -!- mxweas [~max@c-76-103-73-248.hsd1.ca.comcast.net] has joined #go-nuts
00:25 -!- mxweas [~max@c-76-103-73-248.hsd1.ca.comcast.net] has quit [Client Quit]
00:32 -!- fernan [~ca7a95c3@gateway/web/freenode/x-gcknijnqjqcdcaoc] has joined
#go-nuts
00:39 -!- mxweas [~max@c-76-103-73-248.hsd1.ca.comcast.net] has joined #go-nuts
00:39 -!- zyichi [~zyichi@124.205.180.154] has joined #go-nuts
00:41 -!- itrekkie [~itrekkie@ip70-190-110-124.ph.ph.cox.net] has joined #go-nuts
00:41 -!- itrekkie [~itrekkie@ip70-190-110-124.ph.ph.cox.net] has quit [Client
Quit]
00:47 -!- fernan [~ca7a95c3@gateway/web/freenode/x-gcknijnqjqcdcaoc] has quit
[Ping timeout: 252 seconds]
00:50 -!- fernan [~ca7a95c3@gateway/web/freenode/x-txlsaocutydbosqd] has joined
#go-nuts
00:52 < Eko> Quick question about the semantics of slices
00:52 -!- mxweas [~max@c-76-103-73-248.hsd1.ca.comcast.net] has quit [Quit: Mac
has gone to sleep]
00:53 -!- zyichi [~zyichi@124.205.180.154] has quit [Ping timeout: 258 seconds]
00:53 < Eko> From the docs and experimenation, this is how they seem to
behave but I want to make sure I'm not misunderstanding:
00:53 < Eko> a slice is always indexed from zero and has a length that
represents the length of the slice itself; this is irrespective of the start/end
index of the data that the slice is representing
00:54 < Namegduf> Yes.
00:54 < jessta> Eko: a slice is a pointer and a length
00:54 < Eko> Cool.  Thanks.
00:54 < Namegduf> (And a capacity?)
00:55 < Namegduf> (Roughly that, anyway)
00:56 < jessta> Eko:
http://research.swtch.com/2009/11/go-data-structures.html
00:57 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has joined #go-nuts
01:02 -!- kobkrit [~kobkrit@2001:200:141:6151:224:21ff:fe1e:4d16] has joined
#go-nuts
01:04 -!- ako [~nya@f052122045.adsl.alicedsl.de] has quit [Quit:
EXEC_over.METHOD_SUBLIMATION]
01:06 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has quit [Quit: WeeChat
0.3.2]
01:07 -!- BrowserUk [~irc1_20_B@92.15.74.184] has quit [Quit: BrowserUk]
01:07 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has joined #go-nuts
01:08 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has quit [Client Quit]
01:10 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has joined #go-nuts
01:14 -!- kota1111 [~kota1111@gw2.kbmj.jp] has joined #go-nuts
01:18 < Soultaker> jessta: that's a nice article
01:19 < Soultaker> on first sight, the make(*T) syntax actually seems more
appealing to me than new(T)
01:19 < Soultaker> (nicer to have one consistently used operators than two
that do similar but slightly different things)
01:20 -!- emiel_ [~emiel@c-3d4071d5.610-2-64736c10.cust.bredbandsbolaget.se] has
quit [Ping timeout: 248 seconds]
01:26 -!- emiel_ [~emiel@c-3d4071d5.610-2-64736c10.cust.bredbandsbolaget.se] has
joined #go-nuts
01:26 -!- mxweas [~max@c-76-103-73-248.hsd1.ca.comcast.net] has joined #go-nuts
01:34 -!- mxweas [~max@c-76-103-73-248.hsd1.ca.comcast.net] has quit [Quit: Mac
has gone to sleep]
01:36 -!- kobkrit [~kobkrit@2001:200:141:6151:224:21ff:fe1e:4d16] has quit [Quit:
Ex-Chat]
01:37 -!- Boney [~paul@124-168-39-93.dyn.iinet.net.au] has quit [Ping timeout: 240
seconds]
01:39 -!- Ginto8 [~Ginto8@pool-72-82-235-34.cmdnnj.fios.verizon.net] has quit
[Ping timeout: 265 seconds]
01:39 -!- Boney [~paul@124-168-54-34.dyn.iinet.net.au] has joined #go-nuts
01:39 -!- mxweas [~max@c-76-103-73-248.hsd1.ca.comcast.net] has joined #go-nuts
01:40 -!- meanburrito920 [~john@unaffiliated/meanburrito920] has quit [Quit: Lost
terminal]
02:00 -!- mxweas [~max@c-76-103-73-248.hsd1.ca.comcast.net] has quit [Quit: Mac
has gone to sleep]
02:01 -!- Wiz126 [~Wiz126@24.115.240.60.res-cmts.sm.ptd.net] has quit [Ping
timeout: 265 seconds]
02:03 -!- werdan7 [~w7@freenode/staff/wikimedia.werdan7] has quit [Ping timeout:
620 seconds]
02:06 -!- Wiz126 [~Wiz126@24.115.240.60.res-cmts.sm.ptd.net] has joined #go-nuts
02:10 -!- werdan7 [~w7@freenode/staff/wikimedia.werdan7] has joined #go-nuts
02:23 -!- Wiz126 [~Wiz126@24.115.240.60.res-cmts.sm.ptd.net] has quit [Ping
timeout: 260 seconds]
02:23 -!- anticw [~anticw@cwedgwood.broker.freenet6.net] has quit [Ping timeout:
276 seconds]
02:28 -!- Wiz126 [~Wiz126@24.115.240.60.res-cmts.sm.ptd.net] has joined #go-nuts
02:33 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has quit [Read
error: Connection reset by peer]
02:34 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has joined #go-nuts
02:40 -!- mxweas [~max@c-76-103-73-248.hsd1.ca.comcast.net] has joined #go-nuts
02:48 -!- abunner [~abunner@c-71-198-231-134.hsd1.ca.comcast.net] has quit [Quit:
abunner]
02:50 -!- ender2070 [~ender2070@74.12.186.122] has joined #go-nuts
02:57 -!- cmpitg [~cmpitg@113.22.60.206] has joined #go-nuts
02:59 -!- zyichi [~zyichi@124.205.180.154] has joined #go-nuts
03:00 -!- ender2070 [~ender2070@74.12.186.122] has quit [Remote host closed the
connection]
03:08 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has quit [Read
error: Connection reset by peer]
03:09 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has joined #go-nuts
03:14 -!- anticw [~anticw@cwedgwood.broker.freenet6.net] has joined #go-nuts
03:17 -!- mxweas [~max@c-76-103-73-248.hsd1.ca.comcast.net] has quit [Quit: Mac
has gone to sleep]
03:26 -!- Chryson [~Chryson@c-71-61-11-114.hsd1.pa.comcast.net] has joined
#go-nuts
03:29 -!- rhelmer [~rhelmer@adsl-69-107-89-5.dsl.pltn13.pacbell.net] has quit
[Quit: rhelmer]
03:30 -!- rhelmer [~rhelmer@adsl-69-107-89-5.dsl.pltn13.pacbell.net] has joined
#go-nuts
03:35 -!- drevell [~d@adsl-76-212-6-10.dsl.pltn13.sbcglobal.net] has quit [Read
error: Operation timed out]
03:36 -!- mxweas [~max@c-76-103-73-248.hsd1.ca.comcast.net] has joined #go-nuts
03:41 -!- drevell [~d@adsl-76-212-6-10.dsl.pltn13.sbcglobal.net] has joined
#go-nuts
03:48 -!- cmpitg [~cmpitg@113.22.60.206] has quit [Quit: Ex-Chat]
04:03 -!- wkharold [~wkharold@cpe-173-174-49-77.austin.res.rr.com] has left
#go-nuts []
04:22 -!- pmyshkin [~a@unaffiliated/pmyshkin] has joined #go-nuts
04:24 < pmyshkin> hi, newbie here, how do I create an array with a variable
length?
04:27 < exch> for automatic resizing, look at the vector package
http://golang.org/pkg/container/vector/
04:29 < pmyshkin> exch, actually I just want to create an array with a
variable for the size
04:30 < exch> ah: use a slice then: myarr := make([]byte, 1234)
04:31 < pmyshkin> like "var a [size]int"
04:31 < pmyshkin> okay thanks
04:32 < pmyshkin> another question, if I assign multi-dimensional arrays to
each other, will that cause a deep copy?
04:33 < pmyshkin> like "var a[10][10]int; a = b"
04:35 < exch> I'm unsure how that works with arrays.  I'm going to guess
you'll end up with a full copy of b.  So no reference.
04:35 < exch> with slices it's difference because they are just 'windows'
into an underlying fixed array
04:35 < exch> *different
04:36 < pmyshkin> right, I guess I'll try it out with a test case
04:37 < exch> just to be clear: var a [12]int <- a is an array.  var b
[]int <- b is a slice to an underlying array
04:37 < pmyshkin> yeah, slices are pretty much pointers with a length right?
04:38 < exch> someting like that, yes.  You can't index beyond it's
boundaries
04:40 < pmyshkin> it seems like it does do a deep copy
04:46 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has quit [Ping
timeout: 265 seconds]
04:58 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has joined #go-nuts
05:01 -!- scm [justme@80.171.71.133] has quit [Ping timeout: 276 seconds]
05:03 -!- scm [justme@80.171.57.77] has joined #go-nuts
05:05 < pmyshkin> is it possible to make the compiler not worry about unused
declarations?
05:05 -!- eikenberry [~jae@mail.zhar.net] has quit [Read error: Operation timed
out]
05:06 < exch> you assign the unused variable to _
05:06 < exch> _ = myvar
05:07 < pmyshkin> that doesn't work for import statements though
05:07 < exch> or if you don't need it at all, use _ as the var container to
begin with: a, b, _ := foo() <- that will ignore the third value
05:07 < exch> ah no it wont
05:07 < pmyshkin> this is a little annoying as I have to keep adding back
fmt whenever I want to print some debug messages
05:10 < Eko> pmyshkin: try the log package
05:10 < exch> 4yea I know.  What i do in those cases is add 'var pf =
fmt.Printf' somewhere at the top.  That way fmt will be used and the compiler
stops complaining
05:10 -!- slashus2_ [~slashus2@74-137-77-71.dhcp.insightbb.com] has joined
#go-nuts
05:10 < exch> just remember to remove it when you're done debugging
05:11 < Eko> http://golang.org/pkg/log/ has some basic functionality that
you can use to do debugging and control what is actually printed
05:11 < pmyshkin> well the compiler will definitely remind me!
05:11 < Eko> indeed, lol
05:11 < pmyshkin> Eko, thanks, I'll take a look
05:12 < Eko> it may not be quite what you're looking for though
05:12 < Eko> I wish it were as robust as the Java Logger class
05:12 < Eko> that's one of the things that I want to write at some point.
05:12 < pmyshkin> I still feel a little weird treating arrays as first class
values
05:12 < Eko> me too; I'm so used to C >_<
05:12 < pmyshkin> Eko, I don't need anything fancy at this point
05:12 < pmyshkin> like I'm wondering if == will actually do a
element-by-element comparison
05:13 < Eko> well, with the Java Logger class you can send all debug
messages to the Logger and then have the Logger send messages through filters to
different outputs
05:13 < pmyshkin> or just check reference equality
05:13 < Eko> so all messages can go to file with only warnings and errors to
the console, etc
05:13 -!- slashus2 [~slashus2@74-137-24-74.dhcp.insightbb.com] has quit [Ping
timeout: 265 seconds]
05:13 < Eko> so when you're done debugging you just change the filter levels
and don't need to edit code
05:14 < pmyshkin> Eko, actually what I'm trying to do is to suppress the
compiler from complaining about unused declarations
05:14 < Eko> I think it would translate brilliantly with the concept of
channels
05:14 < pmyshkin> so it has nothing to do with what I'm outputting myself
05:14 < Eko> pmyshkin: well, the impression I got was that the unused
declaration was because you're going back and forth between debugging outputs and
not
05:15 < pmyshkin> oh I see
05:15 < pmyshkin> but I don't like to leave debug print statements in the
code anyway
05:15 < pmyshkin> they tend to mess up readability
05:16 -!- rhelmer [~rhelmer@adsl-69-107-89-5.dsl.pltn13.pacbell.net] has quit
[Ping timeout: 264 seconds]
05:16 < Eko> eh; after awhile, you get used to putting them in sensible
places and you format them nicely and make the output concise
05:16 < Eko> it makes development easier and can even help with other people
reading or tracing your code
05:17 < Eko> I know it's saved my butt from debugging in the wrong direction
countless times ^_^
05:17 < pmyshkin> I can see that when the project starts to mature, but at
this point I'm just trying to figure out stupid mistakes
05:17 < Eko> mhmm.
05:18 < pmyshkin> so the messages would not be generally useful
05:25 < Eko> Does the <- operator work on *chan int as well as chan int?
It would seem to from the example code in the tutorial:
http://pastebin.com/Kd3DKNcJ
05:27 < jessta> Eko: there is not *chan in that code
05:28 < Eko> oooh, I keep thinking make(T) results in a *T
05:28 < Eko> that's new(T)
05:29 < Eko> My bad ^_^
05:29 < jessta> indeed, make() is for making things
05:29 < jessta> new() is for allocating memory
05:30 < Eko> what exactly does make() do that's different from just var?
does it have internals that reflect on the variable and do special things for each
thing that should be make()d?
05:30 < jessta> it's pretty much a constructor for the built in types
05:30 < Eko> I understand the semantics of using it for maps, but I'm a
little more blurry on the subject of channels.
05:31 < Eko> if you said var x chan int; that would be a channel that has no
connection to anything
05:31 < Eko> ?
05:31 < Eko> so we x := make(chan int); and it actually makes the channel
and the connection to it?
05:31 < jessta> var x chan int; would be a chunk of memory on the stack big
enough for a channel
05:32 -!- illya77 [~illya77@116-72-133-95.pool.ukrtel.net] has joined #go-nuts
05:33 < jessta> the make() intialises some parts of the channel structure
05:33 < Eko> so using the first one for <-'s would be a Bad Idea(tm)
05:33 < jessta> yep
05:35 < jessta> it's not great but it's easy enough to remember
05:35 < Eko> indeed.
05:38 < Eko> can you only access members of structures through pointers to
them?  the example I'm reading (I can pastebin it if you want) keeps doing a.field
where a is a *structure
05:38 < Eko> IOW, where I am used to seeing a -> in C.
05:39 < jessta> yeah you can
05:39 < jessta> it's no different
05:40 < Eko> so the dot operator works both on structs and pointers to
structs?
05:40 < jessta> yeah
05:40 < Eko> interesting.
05:41 < Eko> does it work on pointers to (pointers to)* structs?
05:42 < jessta> no, I don't think it does
05:43 -!- ShadowIce [pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts
05:50 -!- alhoang [~ahoang@cpe-72-225-158-204.nj.res.rr.com] has quit [Quit:
alhoang]
06:01 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has quit [Read
error: Connection reset by peer]
06:02 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has joined #go-nuts
06:04 -!- kel__ [~kel@cpc2-leat2-0-0-cust98.hers.cable.ntl.com] has joined
#go-nuts
06:08 -!- werdan7 [~w7@freenode/staff/wikimedia.werdan7] has quit [Ping timeout:
620 seconds]
06:14 -!- werdan7 [~w7@freenode/staff/wikimedia.werdan7] has joined #go-nuts
06:15 -!- Null-A [~Null-A@c-98-210-102-188.hsd1.ca.comcast.net] has quit [Quit:
Null-A]
06:18 < pmyshkin> cannot use &data (type *[20][2]int) as type [][]int in
function argument
06:19 < taruti> pmyshkin: use data[0:]
06:19 < exch> a fixed size array is not a slice
06:20 -!- TR2N [email@89.180.157.246] has quit [Ping timeout: 265 seconds]
06:20 < pmyshkin> nn.go:123: cannot use (node SLICEARR) (type [][2]int) as
type [][]int in function argument
06:20 < pmyshkin> after I passed in data[0:]
06:20 < pmyshkin> I guess I'm a little confused here
06:20 < exch> cos [2]int is still a fixed size array
06:20 < exch> you are trying to cast it to []int
06:21 < jessta> pmyshkin: a slice isn't the same as an array, which can be a
bit confusing
06:22 < pmyshkin> as far as I understand a slice is like a reference to an
array, right?
06:22 < jessta> pmyshkin: a slice contains a pointer,a length and a capacity
06:23 < jessta> and yeah, it points to the array
06:23 < pmyshkin> so the [][] can never point to a [m][n]?
06:24 < pmyshkin> because it's a reference to an array of slices?
06:24 < exch> it can point to it, but you can't just assign an array to a
slice variable
06:25 < exch> they are two totally independant types
06:25 < pmyshkin> okay, let me try to back up a bit
06:26 < pmyshkin> if I want to write a function that takes a 2 dimensional
array with arbitrary lengths in both dimensions, what should the arguments look
like?
06:27 < exch> func foo(data [][]int) { ...  }
06:27 < pmyshkin> so that's what I have
06:28 < pmyshkin> now I'm trying to pass a [M][N]int matrix into it, how
would I do that?
06:29 < kmeyer> [][]int
06:29 < exch> you can't pass it in directly cos the types do not match.  You
will either have to manually convert [m][n]int to a slice ([][]int), or change the
definition of that matrix altogether
06:29 < pmyshkin> okay, I think I get it
06:29 < kmeyer> the type [M][N]int isn't the same as [M+1][N]int
06:29 < kmeyer> but both values can be expressed as [][]int
06:29 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has quit [Read
error: Connection reset by peer]
06:30 < kmeyer> if that makes sense
06:30 < exch> so don't create it like [8][8]int, but create it as a slice: a
:= make([][]int, 8); for i ...  { a[i] = make([]int, 8) }
06:30 < pmyshkin> kmeyer, it makes sense, but at the moment I don't think I
understand all the ramifications
06:30 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has joined #go-nuts
06:30 < kmeyer> k
06:30 < pmyshkin> exch, thanks, I'll do that
06:31 < exch> takes spome getting used to the idea that slices and arrays
are fundamentally different
06:32 < pmyshkin> yeah, I think it's just the syntax that tricked me into
thinking things would just work
06:35 < pmyshkin> from what I've seen so far, I'm liking go a lot
06:36 < pmyshkin> I especially like the ability to return multiple values
06:36 < exch> ya it's handy
06:36 < pmyshkin> go almost feels like python
06:37 -!- mxweas [~max@c-76-103-73-248.hsd1.ca.comcast.net] has quit [Quit: Mac
has gone to sleep]
06:42 -!- andrewh_ [~andrewh@94-194-56-42.zone8.bethere.co.uk] has quit [Ping
timeout: 265 seconds]
06:56 -!- mxweas [~max@c-76-103-73-248.hsd1.ca.comcast.net] has joined #go-nuts
06:57 -!- wrtp [~rog@89.242.170.31] has joined #go-nuts
07:06 -!- ni| [~james@users.vu.union.edu] has quit [Ping timeout: 276 seconds]
07:17 -!- ni| [~james@users.vu.union.edu] has joined #go-nuts
07:32 -!- pmyshkin [~a@unaffiliated/pmyshkin] has quit [Quit: pmyshkin]
07:33 -!- napsy [~luka@88.200.96.14] has joined #go-nuts
07:42 -!- slashus2_ [~slashus2@74-137-24-74.dhcp.insightbb.com] has joined
#go-nuts
07:45 -!- slashus2 [~slashus2@74-137-77-71.dhcp.insightbb.com] has quit [Ping
timeout: 265 seconds]
07:51 -!- slashus2 [~slashus2@74-137-24-74.dhcp.insightbb.com] has quit [Quit:
slashus2]
07:52 < Eko> Is it possible to (as in Java) determine the calling function's
name through reflections?
07:54 < taruti> Eko: see runtime.Callers
07:56 < Eko> brilliant!  thanks taruti.
07:58 -!- Discoloda [~vincent@adsl-75-37-71-165.dsl.frs2ca.sbcglobal.net] has quit
[Remote host closed the connection]
07:59 -!- General13372 [~support@71-84-50-230.dhcp.mtpk.ca.charter.com] has joined
#go-nuts
08:00 -!- ktg1 [~idr@e179150035.adsl.alicedsl.de] has joined #go-nuts
08:03 -!- General1337 [~support@71-84-50-230.dhcp.mtpk.ca.charter.com] has quit
[Ping timeout: 252 seconds]
08:16 -!- Project_2501 [~Marvin@82.84.74.54] has joined #go-nuts
08:18 -!- path[l] [UPP@120.138.102.34] has quit [Quit: path[l]]
08:21 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has quit [Read
error: Connection reset by peer]
08:22 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has joined #go-nuts
08:24 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts
08:27 -!- mxweas [~max@c-76-103-73-248.hsd1.ca.comcast.net] has quit [Quit: Mac
has gone to sleep]
08:30 -!- Boney_ [~paul@124-168-74-61.dyn.iinet.net.au] has joined #go-nuts
08:32 -!- Boney [~paul@124-168-54-34.dyn.iinet.net.au] has quit [Ping timeout: 245
seconds]
08:33 -!- mxweas [~max@c-76-103-73-248.hsd1.ca.comcast.net] has joined #go-nuts
08:33 < Eko> is != nil a proper nil-check?
08:34 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has quit [Ping
timeout: 252 seconds]
08:40 -!- rlab [~Miranda@91.200.158.34] has quit [Read error: Connection reset by
peer]
08:46 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts
08:47 -!- path[l] [~path@59.162.86.164] has joined #go-nuts
08:48 -!- path[l]_ [~path@59.162.86.164] has joined #go-nuts
08:48 -!- path[l] [~path@59.162.86.164] has quit [Read error: Connection reset by
peer]
08:48 -!- path[l] [~path@59.162.86.164] has quit [Client Quit]
08:49 -!- path[l] [~path@59.162.86.164] has joined #go-nuts
08:49 -!- OpenSpace [~ja@93.86.64.44] has quit [Ping timeout: 265 seconds]
08:50 -!- path[l] [~path@59.162.86.164] has quit [Remote host closed the
connection]
08:50 -!- path[l] [~path@59.162.86.164] has joined #go-nuts
08:51 -!- path[l] [~path@59.162.86.164] has quit [Read error: Connection reset by
peer]
08:51 -!- path[l] [~path@59.162.86.164] has joined #go-nuts
08:55 -!- illya77 [~illya77@116-72-133-95.pool.ukrtel.net] has quit [Read error:
Connection reset by peer]
09:03 -!- photron [~photron@port-92-201-4-198.dynamic.qsc.de] has joined #go-nuts
09:03 -!- OpenSpace [~ja@79.101.234.7] has joined #go-nuts
09:04 -!- Gracenotes [~person@wikipedia/Gracenotes] has quit [Remote host closed
the connection]
09:04 -!- g0bl1n [~anonymous@a213-22-77-195.cpe.netcabo.pt] has joined #go-nuts
09:08 -!- Ideal [~Ideal@ideal-1-pt.tunnel.tserv6.fra1.ipv6.he.net] has joined
#go-nuts
09:13 -!- Gracenotes [~person@wikipedia/Gracenotes] has joined #go-nuts
09:21 -!- mxweas [~max@c-76-103-73-248.hsd1.ca.comcast.net] has quit [Quit:
mxweas]
09:26 -!- surma [~surma@91-64-31-242-dynip.superkabel.de] has joined #go-nuts
09:27 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has quit [Ping timeout: 276
seconds]
09:29 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has joined #go-nuts
09:34 -!- noam__ [~noam@77.127.205.252] has quit [Read error: Connection reset by
peer]
09:34 -!- noam__ [~noam@77.127.205.252] has joined #go-nuts
09:39 -!- Boney_ [~paul@124-168-74-61.dyn.iinet.net.au] has quit [Ping timeout:
240 seconds]
09:42 -!- Boney [~paul@124-168-69-152.dyn.iinet.net.au] has joined #go-nuts
09:47 -!- Boney_ [~paul@124-168-17-108.dyn.iinet.net.au] has joined #go-nuts
09:47 -!- Boney [~paul@124-168-69-152.dyn.iinet.net.au] has quit [Ping timeout:
240 seconds]
09:49 -!- OpenSpace [~ja@79.101.234.7] has quit [Ping timeout: 265 seconds]
09:50 -!- Svarthandske [~nn@dsl-tkubrasgw1-fe3cdc00-28.dhcp.inet.fi] has joined
#go-nuts
10:03 -!- Xera` [~brit@87-194-208-246.bethere.co.uk] has joined #go-nuts
10:05 -!- path[l] [~path@59.162.86.164] has quit [Quit: path[l]]
10:06 -!- Xera^ [~brit@87-194-208-246.bethere.co.uk] has quit [Ping timeout: 272
seconds]
10:06 -!- path[l] [~path@59.162.86.164] has joined #go-nuts
10:06 -!- OpenSpace [~ja@77.46.254.5] has joined #go-nuts
10:07 -!- ikaros [~ikaros@g226155063.adsl.alicedsl.de] has joined #go-nuts
10:08 -!- cco3-hampster [~conleyo@nat/google/x-udxkmobbrcaaojsk] has quit [Ping
timeout: 248 seconds]
10:08 -!- cco3-hampster [~conleyo@nat/google/x-glkjqfdksbvlkpxd] has joined
#go-nuts
10:16 -!- bmizerany [~bmizerany@c-24-6-37-113.hsd1.ca.comcast.net] has quit [Quit:
Leaving...]
10:20 -!- Gracenotes [~person@wikipedia/Gracenotes] has quit [Read error:
Connection reset by peer]
10:28 < wrtp> Eko: what do you mean by a "proper nil-check"?
10:28 -!- zyichi [~zyichi@124.205.180.154] has quit [Ping timeout: 258 seconds]
10:34 < jessta> Eko: are you refering to the issue of nil values wrapped in
non-nil interfaces?
10:35 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has joined #go-nuts
10:39 -!- marsu [~marsu@93.11.242.116] has joined #go-nuts
10:52 -!- BrowserUk [~irc1_20_B@92.15.74.184] has joined #go-nuts
10:55 -!- ikke [~ikkibr@189.58.213.47.dynamic.adsl.gvt.net.br] has joined #go-nuts
10:55 -!- ikke [~ikkibr@189.58.213.47.dynamic.adsl.gvt.net.br] has quit [Changing
host]
10:55 -!- ikke [~ikkibr@unaffiliated/ikkebr] has joined #go-nuts
11:00 -!- Boney [~paul@124-168-88-92.dyn.iinet.net.au] has joined #go-nuts
11:01 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has quit [Read
error: Connection reset by peer]
11:01 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has joined #go-nuts
11:01 -!- Boney_ [~paul@124-168-17-108.dyn.iinet.net.au] has quit [Ping timeout:
240 seconds]
11:03 -!- ktg1 [~idr@e179150035.adsl.alicedsl.de] has quit [Remote host closed the
connection]
11:11 -!- i__ [~none@unaffiliated/i--/x-3618442] has joined #go-nuts
11:16 -!- rlab [~Miranda@91.200.158.34] has quit [Quit: Miranda IM! Smaller,
Faster, Easier.  http://miranda-im.org]
11:19 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts
11:22 -!- MizardX [~MizardX@unaffiliated/mizardx] has joined #go-nuts
11:22 -!- nighty^ [~nighty@x122091.ppp.asahi-net.or.jp] has joined #go-nuts
11:23 -!- Gracenotes [~person@wikipedia/Gracenotes] has joined #go-nuts
11:23 -!- General13372 [~support@71-84-50-230.dhcp.mtpk.ca.charter.com] has quit
[Ping timeout: 265 seconds]
11:24 -!- General1337 [~support@71-84-50-230.dhcp.mtpk.ca.charter.com] has joined
#go-nuts
11:34 * BrowserUk thinks there are some very interesting and clever details tacked
away in the Go language spec that hardly rate a mention anywhere else I've seen.
The special case under "Calls" is one such.
11:38 -!- napsy [~luka@88.200.96.14] has quit [Ping timeout: 260 seconds]
11:38 -!- mertimor [~mertimor@p4FE75BA7.dip.t-dialin.net] has joined #go-nuts
11:41 -!- napsy [~luka@88.200.96.14] has joined #go-nuts
11:49 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has quit [Quit: WeeChat
0.3.2]
11:53 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has quit [Read
error: Connection reset by peer]
11:53 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has joined #go-nuts
11:55 -!- norayr [~d4494a1c@gateway/web/freenode/x-spxxiutzasfjtgoy] has joined
#go-nuts
11:57 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has quit [Read
error: Connection reset by peer]
11:57 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has joined #go-nuts
12:03 < jessta> BrowserUk: wow, that's interesting
12:03 < jessta> I'll remember that
12:03 < jessta> anyway,bed time for me
12:04 -!- noam__ [~noam@77.127.205.252] has quit [Read error: Connection reset by
peer]
12:05 -!- noam__ [~noam@77.127.205.252] has joined #go-nuts
12:06 -!- crashR [~crasher@codextreme.pck.nerim.net] has joined #go-nuts
12:12 -!- General1337 [~support@71-84-50-230.dhcp.mtpk.ca.charter.com] has quit
[Read error: Connection reset by peer]
12:14 -!- Netsplit *.net <-> *.split quits: jimi_hendrix, scm, SecretAgent,
ThunderChicken, nsz, Project_2501, segy, daowee_, Yoda-BZH, Chryson, (+163 more,
use /NETSPLIT to show all of them)
12:15 -!- zozoR [~zozoR@0x5da69cf2.cpe.ge-0-1-0-1105.hsnqu1.customer.tele.dk] has
joined #go-nuts
12:15 -!- General1337 [~support@71-84-50-230.dhcp.mtpk.ca.charter.com] has joined
#go-nuts
12:16 -!- Netsplit over, joins: Gracenotes, stalled, path[l], tsung, SRabbelier,
krejler, Fish-Work, soul9, mjf-, wrtp (+163 more)
12:18 -!- Boney_ [~paul@210-84-58-91.dyn.iinet.net.au] has joined #go-nuts
12:21 -!- Boney [~paul@124-168-88-92.dyn.iinet.net.au] has quit [Ping timeout: 276
seconds]
12:22 -!- sladegen [~nemo@unaffiliated/sladegen] has quit [Disconnected by
services]
12:22 -!- sladegen [~nemo@unaffiliated/sladegen] has joined #go-nuts
12:30 -!- Wiz126 [~Wiz126@24.115.240.60.res-cmts.sm.ptd.net] has quit [Ping
timeout: 260 seconds]
12:31 -!- Wiz126 [~Wiz126@24.115.240.60.res-cmts.sm.ptd.net] has joined #go-nuts
12:33 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has quit [Read
error: Connection reset by peer]
12:33 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has joined #go-nuts
12:35 -!- zyichi [~zyichi@124.205.180.154] has joined #go-nuts
12:42 -!- alehorst [~alehorst@187.59.66.96] has joined #go-nuts
12:48 -!- path[l] [~path@59.162.86.164] has quit [Quit: path[l]]
12:49 -!- eikenberry [~jae@mail.zhar.net] has joined #go-nuts
12:51 < wrtp> BrowserUk: i'd forgotten about the ...  case.  useful in
fmt.Println(anyfunctioncall())...
12:51 -!- lmoura [~lauromour@200.184.118.130] has joined #go-nuts
12:53 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has joined
#go-nuts
13:02 -!- kota1111 [~kota1111@gw2.kbmj.jp] has quit [Quit: Leaving...]
13:02 -!- skelterjohn [~jasmuth@c-76-99-92-14.hsd1.nj.comcast.net] has joined
#go-nuts
13:07 -!- abunner [~abunner@c-71-198-231-134.hsd1.ca.comcast.net] has joined
#go-nuts
13:20 -!- Joelmob [~Joelmob@s83-179-10-115.cust.tele2.se] has joined #go-nuts
13:20 -!- skelterjohn [~jasmuth@c-76-99-92-14.hsd1.nj.comcast.net] has quit [Quit:
skelterjohn]
13:21 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has quit [Quit:
This computer has gone to sleep]
13:22 -!- Joelmob [~Joelmob@s83-179-10-115.cust.tele2.se] has left #go-nuts []
13:24 -!- zyichi [~zyichi@124.205.180.154] has quit [Quit: zyichi]
13:25 -!- vdrab [~vdrab@cap005-221.kcn.ne.jp] has joined #go-nuts
13:26 -!- cco3 [~conley@modemcable227.50-70-69.static.videotron.ca] has joined
#go-nuts
13:31 -!- awidegreen [~quassel@62.176.237.78] has joined #go-nuts
13:31 -!- path[l] [~path@59.162.86.164] has joined #go-nuts
13:35 -!- gospch [~gospch@unaffiliated/gospch] has joined #go-nuts
13:36 -!- gospch [~gospch@unaffiliated/gospch] has quit [Remote host closed the
connection]
13:36 -!- skelterjohn [~jasmuth@c-76-99-92-14.hsd1.nj.comcast.net] has joined
#go-nuts
13:36 -!- norayr [~d4494a1c@gateway/web/freenode/x-spxxiutzasfjtgoy] has quit
[Ping timeout: 252 seconds]
13:39 -!- dju [dju@fsf/member/dju] has quit [Quit: Quitte]
13:42 -!- skelterjohn [~jasmuth@c-76-99-92-14.hsd1.nj.comcast.net] has quit [Quit:
skelterjohn]
13:46 -!- napsy [~luka@88.200.96.14] has quit [Ping timeout: 240 seconds]
13:52 < BrowserUk> wrtp: Indeed.  There are 3 special cases in 3 consecutive
sections:"Type assertions", "Calls" & "Passing arguments to ...  parameters" that
have the potential to combine to solve my problem.  I'm already able to define a
function that I can call passing any other function plus that passed functions
parameters; the remaining challenge is to be able to invoke the passed function
with those passed parameters without having to have a combinatorial
13:52 < BrowserUk> explosion of type switches to deal with all the possible
variations.
13:53 -!- marsu [~marsu@93.11.242.116] has quit [Ping timeout: 265 seconds]
13:54 < wrtp> i'm not sure how those special cases help you there
13:54 < wrtp> can't you just use reflect?
13:55 < wrtp> BrowserUk: what's the problem you're trying to solve?
13:58 -!- ktg1 [~idr@e179153024.adsl.alicedsl.de] has joined #go-nuts
14:00 -!- ktg1 [~idr@e179153024.adsl.alicedsl.de] has quit [Remote host closed the
connection]
14:01 -!- slashus2 [~slashus2@74-137-24-74.dhcp.insightbb.com] has joined #go-nuts
14:02 -!- ktg1 [~idr@e179153024.adsl.alicedsl.de] has joined #go-nuts
14:02 -!- ktg1 [~idr@e179153024.adsl.alicedsl.de] has quit [Remote host closed the
connection]
14:03 -!- crashR [~crasher@codextreme.pck.nerim.net] has quit [Quit: Leaving.]
14:05 -!- abunner [~abunner@c-71-198-231-134.hsd1.ca.comcast.net] has quit [Quit:
abunner]
14:07 * wrtp loves to find a nice meaty compiler bug
14:16 -!- ShadowIce` [pyoro@p4FF16AEF.dip.t-dialin.net] has joined #go-nuts
14:16 -!- ShadowIce` [pyoro@p4FF16AEF.dip.t-dialin.net] has quit [Changing host]
14:16 -!- ShadowIce` [pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts
14:18 -!- marsu [~marsu@93.11.242.116] has joined #go-nuts
14:20 -!- ShadowIce [pyoro@unaffiliated/shadowice-x841044] has quit [Ping timeout:
248 seconds]
14:31 -!- napsy [~luka@88.200.96.14] has joined #go-nuts
14:36 -!- aho [~nya@f051120174.adsl.alicedsl.de] has joined #go-nuts
14:41 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has quit [Read
error: Connection reset by peer]
14:42 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has joined #go-nuts
14:43 < BrowserUk> wrtp: Basically, a generic version of
http://pastie.org/974617
14:46 < BrowserUk> fibonacci is not a good use because it is better
optimised by memoisation or just iteration; but the principle holds.  To be able
to parallelise a divide&conquer recursive algorithm.
14:47 < BrowserUk> But in a generic way.
14:49 < wrtp> BrowserUk: if your aim is performance, it's almost never worth
spawning off goroutines recursively.
14:50 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has quit [Read
error: Connection reset by peer]
14:50 < emiel_> .
14:51 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has joined #go-nuts
14:51 -!- rv2733 [~rv2733@c-98-242-168-49.hsd1.fl.comcast.net] has joined #go-nuts
14:52 -!- skelterjohn [~jasmuth@lawn-net168-in.rutgers.edu] has joined #go-nuts
14:53 -!- skelterjohn [~jasmuth@lawn-net168-in.rutgers.edu] has quit [Client Quit]
14:53 -!- ampleyfly [~ampleyfly@h-148-139.A163.priv.bahnhof.se] has quit [Ping
timeout: 260 seconds]
14:53 -!- deso [~deso@x0561a.wh30.tu-dresden.de] has joined #go-nuts
14:54 -!- Kai` [~kmallea@mmossl.mmo.com] has joined #go-nuts
14:55 -!- SRabbelier [~SRabbelie@ip138-114-211-87.adsl2.static.versatel.nl] has
quit [Excess Flood]
14:55 -!- SRabbelier [~SRabbelie@ip138-114-211-87.adsl2.static.versatel.nl] has
joined #go-nuts
14:57 -!- ktg1 [~idr@g225100064.adsl.alicedsl.de] has joined #go-nuts
14:58 -!- OpenSpace [~ja@77.46.254.5] has quit [Ping timeout: 240 seconds]
15:03 < BrowserUk> wrtp: If you look carefully at the paste, you'll see that
I'm only threading at the top level.  Normal recursion is used below that.
Consider doing matmult on large matrixes.  There are recursive algorithms that
subdivide the data space into 4 at each level of recursion.  If the top split can
be threaded, you get close to 1/4 of the time on a 4 core system.
15:05 -!- Sadjow [~aedef@200.137.1.108] has joined #go-nuts
15:05 -!- marsu [~marsu@93.11.242.116] has quit [Ping timeout: 276 seconds]
15:11 < wrtp> BrowserUk: so how do you envisage that you'd use your generic
parallelisation code?
15:12 -!- ampleyfly [~ampleyfly@h-149-63.A163.priv.bahnhof.se] has joined #go-nuts
15:12 < jessta> I really love the ordering of the name and type in variable
delcarations, it reads really well
15:12 -!- OpenSpace [~ja@109.92.194.181] has joined #go-nuts
15:19 -!- SecretofMana [~mana@142.46.164.30] has joined #go-nuts
15:22 -!- Sadjow [~aedef@200.137.1.108] has quit [Quit: »¡« Scøøp Script 2004 »!«
não veja mais o irc em preto e branco!  (www.scoop.com.br) ]
15:24 -!- g0bl1n [~anonymous@a213-22-77-195.cpe.netcabo.pt] has quit [Quit:
g0bl1n]
15:25 -!- g0bl1n [~anonymous@a213-22-77-195.cpe.netcabo.pt] has joined #go-nuts
15:26 -!- g0bl1n [~anonymous@a213-22-77-195.cpe.netcabo.pt] has quit [Client Quit]
15:31 -!- Kai` [~kmallea@mmossl.mmo.com] has left #go-nuts []
15:33 -!- Venom_X [~pjacobs@71.20.102.220] has joined #go-nuts
15:37 < mpl> jessta: every time I try a bit of Go, it's after writing some
C, so I'm having a hard time with that so far.  not saying it's not a good thing,
just saying it's confusing when you're not doing mainly Go imho.
15:44 < jessta> mpl: I keep putting brackets around my for and if statements
15:45 < jessta> and semicolons keep appearing
15:45 < jessta> I think it's good, it makes go more distinct from C
15:46 -!- Boney_ [~paul@210-84-58-91.dyn.iinet.net.au] has quit [Ping timeout: 264
seconds]
15:47 < jessta> my brain should eventually figure out that they are
differnet
15:47 < jessta> or it might be part of the plan, i.e "once to go Go, you can
never go back"
15:48 < mpl> yeah well, as good as Go may be, C is not yet burried.
15:48 < jessta> COBOL is not yet burried
15:49 < mpl> hmm I'd say the difference is ppl still write COBOL because
they have not chance, just for maintaining old stuff.  C still has a purpose other
than that...
15:49 < emiel_> no, but once you leave it, you never go back ;)
15:49 < mpl> s/not chance/no choice/
15:56 -!- Discoloda [~vincent@adsl-75-37-71-165.dsl.frs2ca.sbcglobal.net] has
joined #go-nuts
15:57 -!- Shyde [~Shyde^^@HSI-KBW-078-043-070-132.hsi4.kabel-badenwuerttemberg.de]
has joined #go-nuts
15:59 -!- Discoloda [~vincent@adsl-75-37-71-165.dsl.frs2ca.sbcglobal.net] has quit
[Remote host closed the connection]
16:09 -!- ayo [~nya@g226210205.adsl.alicedsl.de] has joined #go-nuts
16:10 < BrowserUk> wrtp: Here's a real-life example of a recursive fuzzy
search/scoring algorithm (in C) that benefited from having a top-level split
across multiple cores.  It was an absolute pain to thread.  I've coded many
similar algorithms, especially GA stuff associated with genome processing that can
similarly benefit.  But it is a pain every time.  Go has the potential to move
much of the donkey work for these things under the covers.  And when I'm exploring
a
16:10 < BrowserUk> new language, rather than just translate old-lang to
new-lang over and over, I try to pick something that I know was a pain in the old
language(s) and see if the new one offers better solutions.  It forces me to
explore the edges and get a quicker appreciation of what is possible.  I do have a
long-standing back-burner project that I'm considering go for; but at the moment
I'm trying to get a feel for what it can and can't do.
16:11 < BrowserUk> wrtp: The example: http://pastie.org/974716
16:11 -!- aho [~nya@f051120174.adsl.alicedsl.de] has quit [Disconnected by
services]
16:11 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has quit [Read
error: Connection reset by peer]
16:11 -!- g0bl1n [~anonymous@a213-22-77-195.cpe.netcabo.pt] has joined #go-nuts
16:12 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has joined #go-nuts
16:14 -!- jessta [~jessta@li7-205.members.linode.com] has quit [Ping timeout: 265
seconds]
16:16 < wrtp> BrowserUk: i presume the recursion tree is unpredictably
shaped
16:17 -!- illya77 [~illya77@213-143-112-92.pool.ukrtel.net] has joined #go-nuts
16:18 < wrtp> BrowserUk: rather than have a generic algorithm, maybe all you
need is a token pool.  each token in the pool represents an unused processor.
when you're about to recurse, try to take a token from the pool.  if you succeed,
start a new goroutine to do the work.  if not, just recurse as normal.
16:19 -!- jessta [~jessta@li7-205.members.linode.com] has joined #go-nuts
16:21 -!- skelterjohn [~jasmuth@lawn-net168-in.rutgers.edu] has joined #go-nuts
16:26 < wrtp> BrowserUk: something like this, perhaps:
http://pastie.org/974742
16:27 < BrowserUk> wrtp: certainly for the generic solution, you cannot make
assumptions about the number of processors available; nor the best way to divide
the recursion...and I really like the processor token idea :)
16:29 < kimelto> morning!
16:30 < wrtp> BrowserUK: a buffered channel works really well for that kind
of thing.  you can store useful information in the tokens too if you like.
16:30 -!- Leon9 [~leon@189.224.119.97] has quit [Quit: leaving]
16:31 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has quit [Read
error: Connection reset by peer]
16:31 < wrtp> BrowserUk: note the way that i avoided the need to use any
generic stuff by just using a simple func().  if you wanted to get the result of
the function, that'd be easy too.
16:36 -!- napsy [~luka@88.200.96.14] has quit [Ping timeout: 265 seconds]
16:38 -!- dju [dju@fsf/member/dju] has joined #go-nuts
16:38 < BrowserUk> wrtp: I have much to learn about the best way to use go
features.  I've previously had some good experiences of use promises (futures) in
Oz (there called dataflow varables), for this kind of thing, and the fib paste was
an attempt to code them in go.  (I still like the idea of wrapping go's channels
in a way that makes them slightly more transparent to use.)
16:38 -!- Venom_X [~pjacobs@71.20.102.220] has quit [Ping timeout: 240 seconds]
16:39 -!- dju [dju@fsf/member/dju] has quit [Max SendQ exceeded]
16:40 -!- dju [dju@fsf/member/dju] has joined #go-nuts
16:40 < wrtp> BrowserUk: you can't really make them much transparent because
you can't select on a function call
16:41 -!- TR2N [email@89-180-188-173.net.novis.pt] has joined #go-nuts
16:42 < wrtp> s/much/much more/
16:43 < BrowserUk> Select as in select{ case ...
16:44 -!- g0bl1n [~anonymous@a213-22-77-195.cpe.netcabo.pt] has quit [Quit:
g0bl1n]
16:46 -!- mertimor [~mertimor@p4FE75BA7.dip.t-dialin.net] has quit [Quit:
mertimor]
16:47 -!- napsy [~luka@88.200.96.14] has joined #go-nuts
16:50 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has joined #go-nuts
16:52 < wrtp> BrowserUk: yup
16:55 < BrowserUk> wrtp: Essentially what I was trying (perhaps naively and
hopelessly) was something like var promise = go func( ...  ); where promise gets
the type & value of the return(s) of func( ...  ) at some point in the future.
And will block until they are available, if they aren't when you try to /use/
promise.  That can all be done explicitly, on a case-by-case basis, using
channels; but I thought (think?) I saw a way to simplify it.  (Note: I wouldn't
want
16:55 < BrowserUk> to change channels as they currently exist; just add
promises (that (perhaps) use channels under the covers.))
16:56 -!- path[l] [~path@59.162.86.164] has quit [Quit: path[l]]
16:58 < Namegduf> BrowserUk: That's not hard...
16:58 < wrtp> it is
16:58 < wrtp> because no generics
16:59 < Namegduf> You create a channel and pass it to the goroutine, then
read from it into the variable directly before you need to use the variable.
17:00 < wrtp> you can do it, but you need to do it explicitly each time.  or
use a dynamic type convesion.
17:00 -!- path[l] [~path@59.162.86.164] has joined #go-nuts
17:00 < Namegduf> I don't really see what you mean, wrtp.
17:00 -!- path[l] [~path@59.162.86.164] has quit [Client Quit]
17:00 < Namegduf> "promise" has to have a type, the channel also having to
have a matching type doesn't add any further constraints.
17:00 < wrtp> but the thing is, if you had a thing that gave you a promise,
you'd want a way to wait for several promises at once...
17:01 < Namegduf> If you want to wait for the first promise to arrive and
act immediately, use select
17:01 < Namegduf> If you want to wait for them all, you can just read from
them sequentially
17:02 < Namegduf> And you'll get through the whole block of reads as soon
as, but only after, each of the channels has had a "return" value sent down it
17:02 < wrtp> Namegduf: i mean you couldn't have a function like: x :=
promise(somefunc, a, b, c) and have the type of x match the return type of
somefunc
17:02 < Namegduf> No, you can't, but that's not "generic".
17:03 < Namegduf> x has a compiletime type, it's just specified by the
return type of "promise"
17:03 < wrtp> Namegduf: yes - but you're just talking about channels there.
BrowserUk was talking about something that looks just like a value but blocks
until the value is actually available
17:03 < wrtp> Namegduf: yeah, so it's gonna be interface{}
17:03 < Namegduf> I'm not sure that's actually sensible to implement, or
useful
17:03 < Namegduf> In the sense that I'm not sure you COULD implement it.
17:04 < Namegduf> You'd need to...  what, wrap it in a mutex under the
covers and have a "set by goroutine" bit attached?
17:04 < Namegduf> Sounds like a slow and ugly attempt to do behaviour which
"isn't how computers work" to me.
17:05 -!- allengeorge [~allengeor@74.12.152.111] has quit [Quit: Leaving]
17:05 -!- Venom_X [~pjacobs@adsl-99-20-147-171.dsl.aus2tx.sbcglobal.net] has
joined #go-nuts
17:05 -!- allengeorge [~allengeor@74.12.152.111] has joined #go-nuts
17:05 < Namegduf> I don't understand why you can't just have the goroutine
provide its result on a channel, and read it from the channel right before you
need to use it.  It's an equivalent construct with slightly more typing, but much
simpler to understand semantics.
17:06 < plexdev> http://is.gd/cnmYk by [Andrew Gerrand] in
go/src/pkg/syscall/ -- syscall: update freebsd_amd64
17:07 < BrowserUk> Namegduf I don't understand ...true
17:08 < Namegduf> BrowserUk: I totally understand the idea you outlined.  If
that's not really what you're thinking or you're thinking of additional semantics,
then that would be your mistake, not mine.
17:08 < Namegduf> Can you just write up an outline for what you want, as
usual lacking any idea how it actually contributes to real software or is even
feasible to implement, and send it to the mailing list where it can be summarily
ignored, like everyone else with whack ideas?
17:10 < Namegduf> It sounds like the idea basically boils down to "I want to
write parallelized code like non-parallelized code and have the compiler
automagically synchronise everything so I can treat them like non-parallel
functions and have the difference made up before I use them"
17:15 < BrowserUk> Namegduf.  Take a look at (No.  *read*)
http://en.wikipedia.org/wiki/Promise_(programming).  Then take a look at Mozart/OZ
and the way they use dataflow variables.  And then realise that just because your
personal experience is limited, it doesn't make everything that you haven't heard
of and don't understand a "whack idea".  And if you are the arbiter of what may or
may not be discussed here, then kick me.  If not, just put me on ignore then you
won't
17:15 < BrowserUk> have to suffer my "whack ideas".
17:18 < Namegduf> BrowserUk: "Let's use a synchronisation model different to
the communication-based one just because" counts as a "whack idea" in Go, much
like everyone who continually requests Python-like behaviour for no reason at all
(or, worse, Ruby).
17:20 < BrowserUk> Namegduf: That you think promises are "a synchronisation
model different to the communication-based one", just conforms your earlier
truism.
17:22 < emiel_> hmm, there is no way to peek in a (TCP)Conn's read buffer to
see whether a call to .Read() might be nonblocking?
17:24 -!- Xera` [~brit@87-194-208-246.bethere.co.uk] has quit [Read error:
Connection reset by peer]
17:26 -!- cmarcelo [~cmarcelo@200.184.118.130] has joined #go-nuts
17:26 -!- cmarcelo [~cmarcelo@200.184.118.130] has quit [Changing host]
17:26 -!- cmarcelo [~cmarcelo@enlightenment/developer/cmarcelo] has joined
#go-nuts
17:27 -!- General13372 [~support@71-84-50-230.dhcp.mtpk.ca.charter.com] has joined
#go-nuts
17:29 < emiel_> or, what i actually need, there's no way to select { ...  }
between go input channels and a net.Conn's input stream?
17:30 <+iant> emiel_: no, you need to have a goroutine which reads the
net.Conn and writes to a channel
17:30 < emiel_> hm, figured
17:30 -!- General1337 [~support@71-84-50-230.dhcp.mtpk.ca.charter.com] has quit
[Ping timeout: 265 seconds]
17:30 < emiel_> wouldn't this be something for in the net pkg?
17:31 <+iant> seems reasonable to me
17:31 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has quit [Ping
timeout: 240 seconds]
17:42 < emiel_> hm, it would seem to be pushing around a lot of bytes though
17:43 -!- Chryson [~Chryson@c-71-61-11-114.hsd1.pa.comcast.net] has quit [Quit:
Leaving]
17:43 < kmeyer> I think maybe a chan of []byte would be more useful than a
chan of byte
17:44 -!- diegovio1a [~diego@adsl-143-18.click.com.py] has joined #go-nuts
17:44 < emiel_> yes, but doesn't .Read block till it fills its buffer?
17:45 -!- Eridius [~kevin@unaffiliated/eridius] has joined #go-nuts
17:45 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has joined #go-nuts
17:45 -!- kashia_ [~Kashia@p4FEB6C5C.dip.t-dialin.net] has joined #go-nuts
17:45 -!- robot12 [~robot12@inferno.kgts.ru] has joined #go-nuts
17:48 < emiel_> ah, it does not i think, which makes it possible to send
everything that comes in to a chan []byte, yes.  But it will then take some
juggling at the receiver's end, although probably not more than when correctly
implementing with .Read
17:48 -!- Kashia [~Kashia@p4FEB6E3F.dip.t-dialin.net] has quit [Ping timeout: 245
seconds]
17:48 < kmeyer> emiel_: I think the reader interface returns as soon as it
gets some bytes
17:49 < kmeyer> bufio.Reader tries to fill the buffer, though
17:50 < emiel_> i see
17:51 -!- illya77 [~illya77@213-143-112-92.pool.ukrtel.net] has quit [Read error:
Connection reset by peer]
17:54 -!- path[l] [UPP@120.138.102.34] has joined #go-nuts
17:55 < emiel_> but using channels would prevent me from using bufio.Reader,
since there is no mechanism to use a chan<- []byte as io.Reader
18:00 < kmeyer> but it'd be pretty trivial to do :)
18:03 -!- Xurix [~Luixsia@AToulouse-254-1-27-90.w81-250.abo.wanadoo.fr] has quit
[Remote host closed the connection]
18:03 -!- marsu [~marsu@93.11.242.116] has joined #go-nuts
18:07 -!- Agon-laptop
[~marcel@HSI-KBW-095-208-003-128.hsi5.kabel-badenwuerttemberg.de] has joined
#go-nuts
18:10 -!- diegovio1a [~diego@adsl-143-18.click.com.py] has left #go-nuts []
18:10 -!- diegoviola [~diego@adsl-143-18.click.com.py] has joined #go-nuts
18:10 < diegoviola> hi, how does go compares to something like python/ruby,
what are the benefits of using go?
18:13 -!- slashus2 [~slashus2@74-137-24-74.dhcp.insightbb.com] has quit [Quit:
slashus2]
18:18 -!- noam__ [~noam@77.127.205.252] has quit [Read error: Operation timed out]
18:19 < fuzzybyte> diegoviola: it's much faster and simple to learn like C.
But has interfaces and other niceties too.
18:22 < diegoviola> interesting, how is the performance?
18:22 < fuzzybyte> diegoviola: it's comparable to C..
18:23 < fuzzybyte> maybe not as fast yet, but it improves all the time.
18:24 < fuzzybyte> I think the syntax has taken good things from both C and
python.  For example slices are awesome.  But it still very easy to learn.
18:25 < diegoviola> does it have pointers like c?
18:25 < fuzzybyte> please read http://golang.org/doc/effective_go.html
18:26 -!- Ginto8 [~Ginto8@pool-72-82-235-34.cmdnnj.fios.verizon.net] has joined
#go-nuts
18:26 < kmeyer> diegoviola, fuzzybyte: the go tutorial might be a better
place to start
18:27 < fuzzybyte> diegoviola: yes, but you can't do pointer arithmetics
with them.
18:27 < fuzzybyte> ah, sure.
18:27 < fuzzybyte> check out the FAQ too
18:29 < diegoviola> thanks
18:33 -!- Venom_X [~pjacobs@adsl-99-20-147-171.dsl.aus2tx.sbcglobal.net] has quit
[Quit: Venom_X]
18:34 -!- kashia_ [~Kashia@p4FEB6C5C.dip.t-dialin.net] has quit [Quit: This
computer has gone to sleep]
18:38 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has quit [Excess
Flood]
18:39 < plexdev> http://is.gd/cnti3 by [Adam Langley] in go/src/pkg/big/ --
big: prevent errors in Exp in the face of aliasing
18:39 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has joined #go-nuts
18:43 -!- Fish [~Fish@9fans.fr] has joined #go-nuts
18:43 -!- peterdn [~peterdn@cpc1-oxfd18-2-0-cust914.4-3.cable.virginmedia.com] has
joined #go-nuts
18:44 -!- carllerche [~carllerch@enginey-9.border1.sfo002.pnap.net] has joined
#go-nuts
18:54 -!- surma [~surma@91-64-31-242-dynip.superkabel.de] has quit [Quit:
Leaving.]
18:55 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has quit [Read
error: Connection reset by peer]
18:56 < plexdev> http://is.gd/cnuB2 by [Nigel Tao] in
go/src/pkg/exp/draw/x11/ -- Make draw/x11 treat $DISPLAY the same way
x-go-bindings does.
18:56 < plexdev> http://is.gd/cnuBb by [Alex Brainman] in
go/src/pkg/syscall/ -- fix windows build
18:56 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has joined #go-nuts
18:57 -!- lmoura [~lauromour@200.184.118.130] has quit [Ping timeout: 258 seconds]
19:09 -!- ayo [~nya@e179176127.adsl.alicedsl.de] has joined #go-nuts
19:09 -!- lmoura [~lauromour@200.184.118.130] has joined #go-nuts
19:11 -!- vsayer [~vivek@c-76-103-244-154.hsd1.ca.comcast.net] has quit [Read
error: Connection reset by peer]
19:12 -!- Svarthandske [~nn@dsl-tkubrasgw1-fe3cdc00-28.dhcp.inet.fi] has quit
[Quit: Svarthandske]
19:12 -!- aho [~nya@g226210205.adsl.alicedsl.de] has quit [Ping timeout: 240
seconds]
19:12 -!- g0bl1n [~anonymous@a213-22-77-195.cpe.netcabo.pt] has joined #go-nuts
19:22 -!- alehorst [~alehorst@187.59.66.96] has quit [Ping timeout: 248 seconds]
19:22 -!- General13372 [~support@71-84-50-230.dhcp.mtpk.ca.charter.com] has quit
[Ping timeout: 252 seconds]
19:23 -!- Venom_X [~pjacobs@99.20.147.171] has joined #go-nuts
19:24 -!- alehorst [~alehorst@187.59.16.173] has joined #go-nuts
19:25 -!- General1337 [~support@71-84-50-230.dhcp.mtpk.ca.charter.com] has joined
#go-nuts
19:27 -!- cco3 [~conley@modemcable227.50-70-69.static.videotron.ca] has quit [Ping
timeout: 264 seconds]
19:37 -!- tux21b [~tux21b@90.146.60.30] has joined #go-nuts
19:50 -!- werdan7 [~w7@freenode/staff/wikimedia.werdan7] has quit [Ping timeout:
620 seconds]
19:51 -!- robot12 [~robot12@inferno.kgts.ru] has quit [Quit: Ухожу я от вас (xchat
2.4.5 или старше)]
19:54 -!- SecretofMana [~mana@142.46.164.30] has quit [Ping timeout: 265 seconds]
19:59 -!- rv2733 [~rv2733@c-98-242-168-49.hsd1.fl.comcast.net] has quit [Quit:
Leaving]
19:59 -!- werdan7 [~w7@freenode/staff/wikimedia.werdan7] has joined #go-nuts
20:00 -!- i__ [~none@unaffiliated/i--/x-3618442] has quit [Quit: Lost terminal]
20:00 -!- g0bl1n [~anonymous@a213-22-77-195.cpe.netcabo.pt] has quit [Quit:
g0bl1n]
20:02 -!- bortzmeyer [~stephane@2a01:e35:8bd9:8bb0:9c99:f8ad:567:29a2] has joined
#go-nuts
20:03 -!- alexbobp [~alex@adsl-75-34-101-206.dsl.austtx.sbcglobal.net] has quit
[Read error: Connection reset by peer]
20:06 < emiel_> kmeyer: hm, i don't think it is that trivial, since actually
using a bufio.NewReader(bytes.NewBuffer(...)) for waiting on your data prevents
you from sinking the receiving chan []byte and shooting data into the bytes.Buffer
in the first place
20:07 < Eko> froyo!  lol
20:08 -!- SecretofMana [~mana@142.46.164.30] has joined #go-nuts
20:09 < froyo> Eko: what's up?
20:09 < Eko> nice nick ^_^.  you an Android fan?
20:09 < Eko> or just a fan of healthy deserts.
20:09 < Eko> desserts*
20:10 < froyo> not a fan, just developing an app
20:11 < froyo> this channel is not at conference mode?
20:12 < kmeyer> emiel_: I'm a little confused by the grammar of that
sentence, but I don't think there's an inherant problem...
20:13 < emiel_> sorry :) ok, so i can see how to implement a goroutine to
shoot []byte's from a connection's Read() into a channel
20:13 < kmeyer> mhm
20:14 < kmeyer> you'd have to implement your own struct to take []byte back
out of the channel and pass it along to an io.Writer of some kind
20:14 < emiel_> but then on the receiving end of the channel, i would want
to do some packet parsing, so i would create a bufio.Reader from <some kind of
buffer that will contain the bytes from the socket>
20:15 < kmeyer> ah, but that breaks select ;)
20:15 < Eko> speaking of select; if I have an arbitrary number of chan
strings, can I use select to trigger when any of them are ready?
20:16 < emiel_> i guess it does, but i would not mind just waiting a bit for
some bytes to arrive since it is a complete packet
20:16 < emiel_> but you are saying i should not do this in a blocking
fashion?
20:17 < emiel_> so save the packet parsing state, and handle parts at the
time
20:17 -!- ktg1 [~idr@g225100064.adsl.alicedsl.de] has quit [Remote host closed the
connection]
20:20 < emiel_> Eko: an array of chans you mean?
20:20 < Eko> emiel_: yep
20:21 < Eko> slice probably, but yes.
20:21 -!- skelterjohn [~jasmuth@lawn-net168-in.rutgers.edu] has quit [Quit:
skelterjohn]
20:23 -!- noam [~noam@77.127.205.252] has joined #go-nuts
20:31 < BrowserUk> wrtp: We were interrupted after: "note the way that i
avoided the need to use any generic stuff by just using a simple func().  if you
wanted to get the result of the function, that'd be easy too." I'd like a bit more
info about that; particularly the second sentence, if you have the
time/inclination.  Perhaps in private if such discussion in subject to
prohibitions.
20:33 -!- General1337 [~support@71-84-50-230.dhcp.mtpk.ca.charter.com] has quit
[Read error: Connection reset by peer]
20:33 -!- piglet [~piglet@93-136-58-123.adsl.net.t-com.hr] has joined #go-nuts
20:34 -!- General1337 [~support@71-84-50-230.dhcp.mtpk.ca.charter.com] has joined
#go-nuts
20:34 -!- bortzmeyer [~stephane@2a01:e35:8bd9:8bb0:9c99:f8ad:567:29a2] has quit
[Quit: Leaving.]
20:36 -!- narsil [~Narsil@rke75-4-82-234-110-106.fbx.proxad.net] has joined
#go-nuts
20:42 < Eko> emiel_: I found my answer...  selects on arrays of chans are
not supported for performance reasons and they suggest arranging for all senders
to send on the same channel.  Which, of course, makes complete sense in retrospect
^_^
20:42 -!- piglet [~piglet@93-136-58-123.adsl.net.t-com.hr] has quit [Read error:
Connection reset by peer]
20:43 < emiel_> ah :)
20:44 -!- zozoR [~zozoR@0x5da69cf2.cpe.ge-0-1-0-1105.hsnqu1.customer.tele.dk] has
quit [Quit: Morten.  Desu~]
20:46 -!- awidegreen [~quassel@62.176.237.78] has quit [Remote host closed the
connection]
20:47 -!- noam [~noam@77.127.205.252] has quit [Read error: Connection reset by
peer]
20:48 -!- noam [~noam@77.127.205.252] has joined #go-nuts
20:50 -!- pmyshkin [~a@unaffiliated/pmyshkin] has joined #go-nuts
20:51 < pmyshkin> is interface implementation tested at compile time or
runtime?
20:51 -!- Fish [~Fish@9fans.fr] has quit [Remote host closed the connection]
20:52 < Ginto8> http://golang.org/doc/go_spec.html#Type_assertions
20:53 < Ginto8> runtime
20:53 < yebyen> really
20:53 < yebyen> that doesn't sound right
20:53 < jessta> it's compile time
20:58 < plexdev> http://is.gd/cnDjF by [Robert Griesemer] in 2 subdirs of
go/test/ -- bug277: tests for conversion syntax
20:58 < pmyshkin> so it's impossible to dynamically add methods to a
receiver type right?
21:02 -!- slashus2 [~slashus2@74-137-24-74.dhcp.insightbb.com] has joined #go-nuts
21:03 < wrtp> pmyshkin: yes
21:04 -!- General1337 [~support@71-84-50-230.dhcp.mtpk.ca.charter.com] has quit
[Ping timeout: 240 seconds]
21:05 < wrtp> BrowserUk: like this: http://pastie.org/975187
21:07 -!- alehorst [~alehorst@187.59.16.173] has quit [Quit: Leaving.]
21:07 -!- smw [~stephen@pool-96-232-88-231.nycmny.fios.verizon.net] has quit
[Remote host closed the connection]
21:12 -!- alehorst [~alehorst@187.59.16.173] has joined #go-nuts
21:19 -!- werdan7 [~w7@freenode/staff/wikimedia.werdan7] has quit [Ping timeout:
604 seconds]
21:20 -!- Venom_X [~pjacobs@99.20.147.171] has quit [Quit: Venom_X]
21:22 -!- slashus2 [~slashus2@74-137-24-74.dhcp.insightbb.com] has quit [Quit:
slashus2]
21:25 -!- ikke [~ikkibr@unaffiliated/ikkebr] has quit []
21:28 -!- Surma [~surma@91-64-31-242-dynip.superkabel.de] has joined #go-nuts
21:28 -!- werdan7 [~w7@freenode/staff/wikimedia.werdan7] has joined #go-nuts
21:29 < plexdev> http://is.gd/cnFnu by [Russ Cox] in 2 subdirs of go/ -- gc:
fix unsafe.Sizeof on ideal constants
21:29 < plexdev> http://is.gd/cnFny by [Russ Cox] in 2 subdirs of go/ -- gc:
bug278
21:32 -!- General1337 [~support@71-84-50-230.dhcp.mtpk.ca.charter.com] has joined
#go-nuts
21:34 < Eko> how do we handle multiple files in the same package in go?
21:35 < Eko> I know they all have "package whatever" at the top, but do I
just compile them individually or what?
21:35 < Ginto8> makefiles
21:35 < Ginto8> GOFILES=\
21:35 < Ginto8> x.go
21:35 < Ginto8> y.go
21:35 < Ginto8> etc.
21:36 < Ginto8> and if you're using cgo, you want to list those files in
21:36 < Ginto8> CGOFILES
21:41 < Eko> well, I am using a makefile
21:41 < Eko> I actually have a nice one already set up, I'm just curious how
the dependencies work
21:42 < Eko> for instance, if I have main.go and mylib.go, I already have to
mylib.go -> mylib.6 before I can main.go -> main.6 -> main
21:42 < Eko> but if mylib.go is in mylib.go and mylib_extras.go, how does it
work?
21:42 < Eko> er, if package mylib is in*
21:43 -!- rlab [~Miranda@91.200.158.34] has quit [Quit: Miranda IM! Smaller,
Faster, Easier.  http://miranda-im.org]
21:43 < Ginto8> well you'd probably use a mylib folder
21:43 < Ginto8> maybe
21:43 < Ginto8> idk really
21:43 < pmyshkin> can't you compile them together with one 6g command?
21:44 < pmyshkin> 6g mylib.go mylib_extra.go
21:44 < Ginto8> but what I do with my lib is I have the makefile (listing
all lib files in GOFILES and cgo files in CGOFILES), and do "make install", then
compile main
21:44 < Ginto8> but you might just want to have main in GOFILES
21:46 < plexdev> http://is.gd/cnGnW by [Russ Cox] in go/src/libmach/ --
libmach: skip __nl_symbol_ptr section on OS X
21:46 < plexdev> http://is.gd/cnGnZ by [Russ Cox] in go/src/pkg/runtime/ --
runtime: free old hashmap pieces during resizing
21:46 < plexdev> http://is.gd/cnGo9 by [Russ Cox] in go/doc/ -- spec: index
of non-addressable array is not addressable
21:46 < plexdev> http://is.gd/cnGoy by [Russ Cox] in go/ -- A+C: add Peter
Williams (individual CLA)
21:46 < plexdev> http://is.gd/cnGoC by [Peter Williams] in
go/lib/codereview/ -- codereview: work better with mq
21:49 -!- Shyde [~Shyde^^@HSI-KBW-078-043-070-132.hsi4.kabel-badenwuerttemberg.de]
has quit [Remote host closed the connection]
21:49 -!- ShadowIce` [pyoro@unaffiliated/shadowice-x841044] has quit [Quit:
Verlassend]
21:52 < pmyshkin> it says here in the FAQ that maps can't use structs for
keys because struct equality is not well defined
21:53 < pmyshkin> but is it possible to specify a method for your struct
like Less so that it can be used as a key?
21:54 <+iant> pmyshkin: no, sorry
21:55 < pmyshkin> that's too bad
21:58 < pmyshkin> and there's no built-in package for handling more general
maps
21:59 -!- deso [~deso@x0561a.wh30.tu-dresden.de] has quit [Read error: Connection
reset by peer]
22:01 -!- napsy [~luka@88.200.96.14] has quit [Quit: Lost terminal]
22:02 < plexdev> http://is.gd/cnHrQ by [Robert Griesemer] in go/doc/ -- go
spec: fix and clarify syntax of conversions
22:04 -!- Kashia [~Kashia@port-92-200-204-24.dynamic.qsc.de] has joined #go-nuts
22:10 -!- mpl [~mpl@smgl.fr.eu.org] has quit [Ping timeout: 248 seconds]
22:10 -!- mpl [~mpl@smgl.fr.eu.org] has joined #go-nuts
22:13 -!- nighty^ [~nighty@x122091.ppp.asahi-net.or.jp] has quit [Quit: Disappears
in a puff of smoke]
22:13 -!- Gracenotes [~person@wikipedia/Gracenotes] has quit [Ping timeout: 248
seconds]
22:13 -!- Surma [~surma@91-64-31-242-dynip.superkabel.de] has quit [Quit:
Leaving.]
22:14 -!- skelterjohn [~jasmuth@c-76-99-92-14.hsd1.nj.comcast.net] has joined
#go-nuts
22:15 -!- skelterjohn [~jasmuth@c-76-99-92-14.hsd1.nj.comcast.net] has quit
[Client Quit]
22:17 -!- Boney [~paul@124-168-63-187.dyn.iinet.net.au] has joined #go-nuts
22:19 < plexdev> http://is.gd/cnIqr by [Nigel Tao] in
go/src/pkg/exp/draw/x11/ -- Fix typo in exp/draw/x11.
22:20 -!- andrewh_ [~andrewh@94-194-56-42.zone8.bethere.co.uk] has joined #go-nuts
22:30 -!- Agon-laptop
[~marcel@HSI-KBW-095-208-003-128.hsi5.kabel-badenwuerttemberg.de] has quit [Remote
host closed the connection]
22:35 < plexdev> http://is.gd/cnJpr by [Russ Cox] in 2 subdirs of go/ -- gc:
bug280
22:35 < plexdev> http://is.gd/cnJpx by [Russ Cox] in 3 subdirs of go/ -- gc:
bug277 - new conversion syntax
22:35 < plexdev> http://is.gd/cnJpM by [Russ Cox] in go/test/ -- fix build -
forgot golden.out
22:35 < plexdev> http://is.gd/cnJpU by [Russ Cox] in go/src/cmd/6g/ -- 6g:
avoid unnecessary conversion in shift bounds check
22:41 -!- Gracenotes [~person@wikipedia/Gracenotes] has joined #go-nuts
22:42 -!- kel__ [~kel@cpc2-leat2-0-0-cust98.hers.cable.ntl.com] has quit [Ping
timeout: 265 seconds]
22:44 -!- Project_2501 [~Marvin@82.84.74.54] has quit [Quit: E se abbasso questa
leva che succ...]
22:45 -!- Piglet [~Piglet@93-136-58-123.adsl.net.t-com.hr] has joined #go-nuts
22:47 -!- ikaros [~ikaros@g226155063.adsl.alicedsl.de] has quit [Quit: Leave the
magic to Houdini]
22:54 -!- rhelmer [~rhelmer@adsl-69-107-89-5.dsl.pltn13.pacbell.net] has joined
#go-nuts
22:55 -!- andrewh_ [~andrewh@94-194-56-42.zone8.bethere.co.uk] has quit [Ping
timeout: 245 seconds]
22:56 -!- Eridius [~kevin@unaffiliated/eridius] has quit [Quit: brb rebooting]
22:58 -!- Boney_ [~paul@210-84-57-245.dyn.iinet.net.au] has joined #go-nuts
22:59 -!- Boney [~paul@124-168-63-187.dyn.iinet.net.au] has quit [Ping timeout:
276 seconds]
23:06 -!- Eridius [~kevin@173-13-153-133-sfba.hfc.comcastbusiness.net] has joined
#go-nuts
23:06 -!- Eridius [~kevin@173-13-153-133-sfba.hfc.comcastbusiness.net] has quit
[Changing host]
23:06 -!- Eridius [~kevin@unaffiliated/eridius] has joined #go-nuts
23:08 -!- ikke [~ikke@unaffiliated/ikkebr] has joined #go-nuts
23:09 < manveru> anybody knows a good way to get a little endian []uint8 to
int?
23:10 < Eridius> bit-shifting?
23:10 < manveru> there is nothing in the stdlib?
23:10 < Namegduf> blah = foo[a] + 256*foo[b] + 256*256*foo[c] and so on?
23:10 < manveru> uh, ok
23:10 < taruti> manveru: encoding/binary
23:11 <+iant> http://golang.org/pkg/encoding/binary/
23:11 < manveru> about time someone writes pack/unpack :)
23:11 < taruti> but that is slow
23:11 -!- xenplex_ [~xenplex@195.46.241.226] has joined #go-nuts
23:11 < manveru> thanks
23:11 < manveru> it's not really something that needs speed...
23:11 < manveru> readability beats speed anyway
23:12 < exch> no reason not to try and have both :)
23:13 < manveru> heh
23:13 < manveru> yeah, go has a pretty good ratio already
23:15 < manveru> i'm trying to make a parser for the blend format
23:16 < manveru> according to the stuff shown at
http://www.atmind.nl/blender/mystery_ot_blend.html
23:16 -!- cmarcelo [~cmarcelo@enlightenment/developer/cmarcelo] has quit [Remote
host closed the connection]
23:16 < manveru> because creating 3d objects by text editor is a real pain
:(
23:17 -!- xenplex_ [~xenplex@195.46.241.226] has quit [Quit: xenplex_]
23:18 -!- Netsplit *.net <-> *.split quits: fernan
23:20 -!- marsu [~marsu@93.11.242.116] has quit [Quit: Leaving]
23:22 -!- ikke [~ikke@unaffiliated/ikkebr] has quit [Ping timeout: 240 seconds]
23:22 -!- carllerche [~carllerch@enginey-9.border1.sfo002.pnap.net] has quit
[Quit: carllerche]
23:25 -!- ikke [~ikke@189-72-2-229.smace700.dsl.brasiltelecom.net.br] has joined
#go-nuts
23:25 -!- ikke [~ikke@189-72-2-229.smace700.dsl.brasiltelecom.net.br] has quit
[Changing host]
23:25 -!- ikke [~ikke@unaffiliated/ikkebr] has joined #go-nuts
23:35 -!- g0bl1n [~anonymous@a213-22-77-195.cpe.netcabo.pt] has joined #go-nuts
23:38 -!- g0bl1n [~anonymous@a213-22-77-195.cpe.netcabo.pt] has quit [Client Quit]
23:40 -!- Boney_ [~paul@210-84-57-245.dyn.iinet.net.au] has quit [Ping timeout:
240 seconds]
23:40 -!- dju [dju@fsf/member/dju] has quit [Read error: Connection reset by peer]
23:41 -!- dju [dju@fsf/member/dju] has joined #go-nuts
23:41 -!- g0bl1n [~anonymous@a213-22-77-195.cpe.netcabo.pt] has joined #go-nuts
23:41 -!- tux21b [~tux21b@90.146.60.30] has quit [Read error: Connection reset by
peer]
23:43 -!- g0bl1n [~anonymous@a213-22-77-195.cpe.netcabo.pt] has quit [Client Quit]
23:44 -!- SecretofMana [~mana@142.46.164.30] has quit [Ping timeout: 260 seconds]
23:47 < Eko> How do I have a multifile package the way it describes in the
FAQ?  I have a pair of files, both of which have the same package line at the top,
but when I 6g the dependent one I get errors about undefined types.
23:48 <+iant> Eko: pass both to 6g at once: 6g file1.go file2.go
23:50 -!- skelterjohn [~jasmuth@c-76-99-92-14.hsd1.nj.comcast.net] has joined
#go-nuts
23:51 -!- skelterjohn [~jasmuth@c-76-99-92-14.hsd1.nj.comcast.net] has quit
[Client Quit]
23:52 < Eko> d'oh.  Thanks!
23:52 < plexdev> http://is.gd/cnNNC by [Evan Shaw] in go/src/pkg/big/ --
big: Rat test improvements
23:54 -!- vdrab [~vdrab@cap005-221.kcn.ne.jp] has quit [Quit: vdrab]
23:57 -!- Boney [~paul@124-168-65-117.dyn.iinet.net.au] has joined #go-nuts
--- Log closed Tue May 25 00:00:21 2010