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

--- Log opened Fri Dec 18 00:00:33 2009
00:05 -!- mbarkhau [n=koloss@p54A7EEB3.dip.t-dialin.net] has quit ["Leaving."]
00:14 -!- skelterjohn [n=jasmuth@c-76-99-92-193.hsd1.nj.comcast.net] has joined
#go-nuts
00:19 < plexdev> http://is.gd/5rQPx by [Kai Backman] in 4 subdirs of go/src/
-- first stub for softfloats, intercepts float instructions and skips
00:24 -!- snearch_ [n=olaf@g225063166.adsl.alicedsl.de] has quit ["Ex-Chat"]
00:26 -!- smcq_ [n=smcq@c-67-164-97-141.hsd1.ca.comcast.net] has quit [Remote
closed the connection]
00:27 -!- ThePok [n=fufuuuer@p5DD278F5.dip.t-dialin.net] has quit [Read error: 110
(Connection timed out)]
00:31 -!- gkmngrgn [n=gkmngrgn@unaffiliated/gkmngrgn] has quit [Remote closed the
connection]
01:00 -!- KillerX [n=anant@nat/mozilla/x-yghhpddtrvsnthey] has joined #go-nuts
01:01 -!- jlouis [i=jlouis@130.225.165.29] has quit ["leaving"]
01:01 -!- jlouis [i=jlouis@130.225.165.29] has joined #go-nuts
01:01 -!- eulenspiegel [n=irssi@p579CA43E.dip.t-dialin.net] has quit ["Lost
terminal"]
01:05 < plexdev> http://is.gd/5rTkH by [Russ Cox] in go/src/cmd/cgo/ -- cgo:
include line number information to keep go/printer happy
01:12 -!- scarabx [n=scarabx@c-24-147-239-120.hsd1.ma.comcast.net] has joined
#go-nuts
01:16 -!- raichoo [n=raichoo@i577B91C4.versanet.de] has quit
["http://raichoo.blogspot.com"]
01:19 < john6> Does Go have a readline-like function?
01:19 -!- BMeph [n=BMeph@65.103.151.24] has joined #go-nuts
01:20 < john6> from a file.
01:21 < fgb> see the pkg bufio
01:21 < fgb> you can read a string until the delimiter has been found
01:28 -!- smooge [n=smooge@int.smoogespace.com] has quit ["-ENOBRAIN"]
01:28 -!- ajstarks [n=ajstarks@pool-98-109-198-180.nwrknj.fios.verizon.net] has
joined #go-nuts
01:30 -!- carllerche [n=carllerc@enginey-9.border1.sfo002.pnap.net] has quit []
01:30 -!- Associat0r [n=Associat@h163153.upc-h.chello.nl] has quit []
01:30 -!- mertimor [n=mertimor@p578ED068.dip.t-dialin.net] has joined #go-nuts
01:31 -!- mertimor [n=mertimor@p578ED068.dip.t-dialin.net] has quit [Client Quit]
01:32 -!- Tuller [n=Tuller@pool-72-84-246-12.rcmdva.fios.verizon.net] has joined
#go-nuts
01:33 -!- smcq_ [n=smcq@c-67-164-97-141.hsd1.ca.comcast.net] has joined #go-nuts
01:37 < plexdev> http://is.gd/5rV05 by [Russ Cox] in go/src/ -- Make.pkg:
fix cgo for TARG=a/b
01:38 -!- ajstarks [n=ajstarks@pool-98-109-198-180.nwrknj.fios.verizon.net] has
quit []
01:39 -!- triplez [n=triplez@bb116-14-66-67.singnet.com.sg] has joined #go-nuts
01:40 -!- ajstarks [n=ajstarks@pool-98-109-198-180.nwrknj.fios.verizon.net] has
joined #go-nuts
01:43 -!- ajstarks [n=ajstarks@pool-98-109-198-180.nwrknj.fios.verizon.net] has
quit [Client Quit]
01:53 -!- fwiffo [n=fwiffo@unaffiliated/fwiffo] has joined #go-nuts
01:55 < john6> fgb, thank you.
01:58 -!- stevenyvr [n=schan@76-10-184-108.dsl.teksavvy.com] has quit ["Computer
has gone to sleep"]
02:01 -!- smcq_ [n=smcq@c-67-164-97-141.hsd1.ca.comcast.net] has quit [Remote
closed the connection]
02:03 < john6> how to convert from a string to an int?
02:04 <+iant> john6: strconv.Atoi
02:05 < john6> iant, thank you very much
02:22 -!- lolsuper_ [n=super_@unaffiliated/lolsuper-/x-9881387] has quit
["Leaving"]
02:23 -!- aho [n=nya@g227036046.adsl.alicedsl.de] has quit
["EXEC_over.METHOD_SUBLIMATION"]
02:31 -!- KillerX [n=anant@gentoo/developer/KillerX] has quit ["Leaving."]
02:33 -!- anticw [n=anticw@c-76-126-87-56.hsd1.ca.comcast.net] has quit ["taxes"]
02:40 < spikebike> hrm, does go have a hashtable/associative array?  Can
they be bigger than ram?
02:41 -!- anticw [n=anticw@c-76-126-87-56.hsd1.ca.comcast.net] has joined #go-nuts
02:41 -!- defectiv [n=clays@75.101.111.19] has quit ["This computer has gone to
sleep"]
02:41 -!- mitchellh [n=mitchell@97-118-158-109.hlrn.qwest.net] has joined #go-nuts
02:44 < skelterjohn> well, there is a hashtable (map)
02:44 < KirkMcDonald> spikebike: There is the built-in map type, which
exists entirely in memory.
02:44 < skelterjohn> the bigger than ram part can happen with virtual memory
- i don't think go would have to know about it
02:44 < KirkMcDonald> Indeed.
02:46 < spikebike> well of course, I was thinking more of a map that allows
controlling the memory usag
02:46 < spikebike> e
02:47 < spikebike> Wanted to mess with some tables that might be bigger than
memory or even memory '+ swap
02:47 < spikebike> does go have mmap?
02:47 -!- mitchellh [n=mitchell@97-118-158-109.hlrn.qwest.net] has left #go-nuts
[]
02:48 -!- tor7 [n=tor@c-987a71d5.04-50-6c756e10.cust.bredbandsbolaget.se] has quit
[]
02:48 < skelterjohn> that's an interesting question, and i doubt it, but i
don't know
02:49 < skelterjohn> just because memory-mapped io is an unlikely feature to
do first
02:50 < KirkMcDonald> On the other hand, it is a syscall, is it not?
02:50 < spikebike> ya
02:51 < spikebike> I'm working on a backup program and the various ways I'd
access the metadata are performance sensitive, but not particularly bounded
02:51 -!- Daminvar [n=Daminvar@129.21.121.159] has joined #go-nuts
02:52 < spikebike> I originally went with mysql to control that kidn of
thing but at least for not the mysqlgo bindings seem to hav e abug with unsigned
64 bit ints
02:52 < spikebike> guess I could try the sqllite bindings but they look less
mature than the mysql
02:58 < dho> skelterjohn: :)
03:00 < dho> > time ./main ~/golang/src/pkg
03:00 < dho> Building file / dependency list.
03:00 < dho> topsorted: container/vector unsafe runtime sync syscall once os
unicode utf8 strings io math bytes strconv reflect fmt go/token sort go/scanner
exp/datafmt io/ioutil debug/proc path go/ast exp/parser bignum time log exp/eval
bufio encoding/binary debug/dwarf debug/elf debug/gosym exp/ogle net xgb
crypto/subtle hash rand big crypto/rsa container/ring encoding/base64 http
websocket encoding/ascii85 flag testing/quick container/list debug/macho image
os/signal tabwriter
03:00 < dho> 1.126u 0.091s 0:01.15 105.2% 312+724k 0+0io 0pf+0w
03:00 < dho> i hate this paste buffer shit in synergy
03:00 < dho> shit
03:06 < skelterjohn> i have no idea what's going on
03:06 < dho> takes ~1s to build a dependency graph for src/pkg
03:06 < skelterjohn> wow pretty good....
03:07 < skelterjohn> that includes parsing every single source for the
impots?
03:07 < skelterjohn> imports
03:07 < dho> yep
03:07 -!- smooge [n=smooge@int.smoogespace.com] has joined #go-nuts
03:07 < skelterjohn> excellent
03:07 < dho> it *can* do that in parallel
03:07 < skelterjohn> heh
03:07 -!- tedster [n=tedster@67.23.158.117] has joined #go-nuts
03:07 < skelterjohn> you're writing it in go, so that should be easy to
implement :)
03:08 < dho> for some reason that takes longer.
03:08 < skelterjohn> hmm
03:08 < skelterjohn> i bet it's causing the disk head to thrash
03:08 < dho> by 3 hundredths of a second
03:08 < skelterjohn> trying to read from to distant parts of the disk at the
same time
03:08 < skelterjohn> oh
03:08 < skelterjohn> well then that's probably just sample variance
03:08 < dho> consistently
03:08 < skelterjohn> that's weird
03:09 < skelterjohn> and could be what i mentioned
03:09 < dho> it's not that big a deal; it's probably not worth doing in
parallel.
03:09 < fgb> how's the sync happening ?
03:10 < dho> waiting on channels.
03:10 < fgb> well, maybe your logic is broken
03:10 < skelterjohn> maybe your face is broken
03:10 < skelterjohn> (sorry, couldn't help myself)
03:10 < fgb> relax
03:10 < skelterjohn> haha
03:11 < skelterjohn> couldn't help myself, because it's a funny thing to
say.  not because i was boiling inside with rage :)
03:11 < dho> weird.  so if i take the parallelism out, and then take the
goroutine spawning out, it's .2 seconds slower
03:11 < fgb> my guess is that's a communication problem
03:12 -!- Xera^ [n=lol@87-194-208-246.bethere.co.uk] has quit ["( www.nnscript.com
:: NoNameScript 4.21 :: www.esnation.com )"]
03:12 < fgb> you can have tons of goroutines, but if they are all waiting,
then it's not parallel
03:13 -!- Tuller [n=Tuller@pool-72-84-246-12.rcmdva.fios.verizon.net] has quit
["to the batcave?"]
03:13 < skelterjohn> check GOMAXPROCS too, heh
03:14 < dho> set it to 3 (it's a 3 core machine)
03:14 < dho> fgb: probably the case, but for 0.2 seconds I don't care that
much right now
03:14 < skelterjohn> i've heard of those not-power-of-two core machines
03:14 < skelterjohn> boggling concept
03:14 < dho> works fine enough for me
03:15 < skelterjohn> they take 4-core chips with an imperfect 4th core and
disable it, i think
03:15 < dho> yep
03:16 < dho> the amd celeron of quad core processors
03:16 < skelterjohn> heh
03:18 < dho> i guess the next thing is just to spawn compilers and linkers
and whatnot
03:19 < dho> actually, i should probably read more about this channel sync,
since if i'm not getting it right there, i'm probably not getting it right in the
compiling part either.
03:20 -!- defectiv [n=clays@c-24-5-65-40.hsd1.ca.comcast.net] has joined #go-nuts
03:22 < dho> > wc -l main.go graph.go|grep total ; ls -l main 213 total
03:22 < dho> -rwxr-xr-x 1 dho dho 991910 Dec 17 22:19 main
03:22 < dho> that's kind of silly
03:23 < skelterjohn> i feel like i should know what thatsays
03:24 < dho> 213 lines of code, almost 1 meg for the binary
03:24 < anticw> dho: try gcc -static on something trivial
03:24 < skelterjohn> all the libraries you use are statically linked
03:24 < dho> yep
03:25 * dho would really like to see support for dlopen at some point
03:25 < anticw> dho: but that's something different again
03:25 < dho> yes, i know.
03:26 < anticw> one thing i wonder about is a dynamic (at runtime) linker
...  something that takes foo.6 and links it in-core against the on-disk 'libs'
03:26 < anticw> iant: would such a think make sense?
03:26 < dho> when i talked to russ about a pure-go rtld-style-thing he sort
of eschewed it
03:27 < anticw> talked here?  i didnt see that conversation
03:27 < dho> i talk to him on gmail
03:27 < skelterjohn> eschewed the question or the idea of dynamic linking
03:27 < dho> the idea of a pure-go rtld
03:27 < anticw> purego doesnt make sense
03:27 < dho> or, one that's not the system's in any case
03:27 < anticw> not right now
03:27 < anticw> there are so may c/c++ libs that are useful to talk to ...
so whatever solution must accommodate those
03:28 < dho> cgo ;)
03:28 -!- mitchellh [n=mitchell@97-118-158-109.hlrn.qwest.net] has joined #go-nuts
03:29 < anticw> sure, but if you have rtld you might as well support dyn
loading of .so's
03:30 < dho> agreed
03:30 < dho> deserves a lot of thought in any case
03:31 < dho> alright, a little reading and then i'm off to bed
03:31 < anticw> dho: one issue is linking would be slow ...  but some sort
of cache would alleviate most of that i think
03:31 -!- Ortzman [n=ortzinat@cpe-065-191-006-129.nc.res.rr.com] has joined
#go-nuts
03:31 < skelterjohn> why would it be any more of an issue in go than any
other language?
03:34 < anticw> rtld or shared libs?
03:34 -!- mitchellh [n=mitchell@97-118-158-109.hlrn.qwest.net] has left #go-nuts
[]
03:36 < dho> interesting
03:37 < dho> this post in the `Channel performance' thread
03:38 < anticw> is this the single vs global lock issue?
03:38 < dho> No
03:38 < dho> Pete Wilson <pete@kivadesigngroupe.com> Re: [go-nuts]
Channel performance
03:38 < anticw> looks like cache ping-pong
03:39 < anticw> microbenchmarks like lmbench show similar results for 1 core
vs n-cores
03:39 < anticw> (r/w to a pipe for example)
03:39 < dho> be interesting to see hwpmc counters for that
03:40 < anticw> oprofile would work these except can't extract line/call
details for go (i assume)
03:40 -!- Ortzinator [n=ortzinat@unaffiliated/ortzinator] has quit [Read error:
110 (Connection timed out)]
03:42 < dho> you can probably do it by symbol+offset though.
03:43 -!- Netsplit kornbluth.freenode.net <-> irc.freenode.net quits: mat_,
zum, RooTer
03:43 < dho> it may not even make sense for me to spawn that part out.  it
gets slightly faster on single core, which actually makes sense because it allows
you to do some extra processing in between context switches
03:44 < dho> i dunno
03:44 < dho> i'm too tired to think logically right now
03:44 * dho -> bed
03:44 < anticw> wuss :)
03:44 < anticw> nn
03:48 -!- Netsplit over, joins: zum, mat_, RooTer
03:48 -!- mat_ [n=mat@mx3.absolight.net] has quit [Remote closed the connection]
03:48 -!- mat_ [n=mat@mx3.absolight.net] has joined #go-nuts
03:51 -!- Netsplit kornbluth.freenode.net <-> irc.freenode.net quits: mat_,
zum, RooTer
03:57 -!- b00m_chef [n=watr@d64-180-45-230.bchsia.telus.net] has quit [Connection
timed out]
03:58 -!- fwiffo [n=fwiffo@unaffiliated/fwiffo] has quit [Read error: 104
(Connection reset by peer)]
03:59 -!- hstimer [n=hans@c-98-234-25-125.hsd1.ca.comcast.net] has joined #go-nuts
03:59 -!- delsvr [n=delsvr@cpe-24-59-168-135.twcny.res.rr.com] has quit
["Leaving..."]
04:00 -!- Netsplit over, joins: mat_, zum, RooTer
04:00 -!- delsvr [n=delsvr@cpe-24-59-168-135.twcny.res.rr.com] has joined #go-nuts
04:03 -!- Gracenotes [n=person@wikipedia/Gracenotes] has joined #go-nuts
04:07 -!- [[sroracle]] [n=sroracle@unaffiliated/sroracle] has quit
["<sresp.co.cc>"]
04:08 -!- b00m_chef [n=watr@d64-180-45-230.bchsia.telus.net] has joined #go-nuts
04:08 -!- skelterjohn [n=jasmuth@c-76-99-92-193.hsd1.nj.comcast.net] has quit []
04:12 -!- xerox_ [n=xerox@151.61.160.246] has joined #go-nuts
04:14 -!- Fraeon [n=kzer-za@e212-246-65-153.elisa-laajakaista.fi] has quit []
04:15 -!- fwiffo [n=fwiffo@unaffiliated/fwiffo] has joined #go-nuts
04:18 -!- xerox [n=xerox@unaffiliated/xerox] has quit [Nick collision from
services.]
04:18 -!- codedread [i=180dd699@gateway/web/freenode/x-aytkwvmlkcvyjtvp] has
joined #go-nuts
04:18 -!- codedread [i=180dd699@gateway/web/freenode/x-aytkwvmlkcvyjtvp] has left
#go-nuts []
04:25 -!- triplez_ [n=triplez@bb116-14-66-103.singnet.com.sg] has joined #go-nuts
04:25 -!- xerox [n=xerox@unaffiliated/xerox] has quit []
04:25 -!- kanru [n=kanru@61-228-149-169.dynamic.hinet.net] has joined #go-nuts
04:26 -!- b00m_chef [n=watr@d64-180-45-230.bchsia.telus.net] has quit [Read error:
110 (Connection timed out)]
04:28 -!- triplez [n=triplez@bb116-14-66-67.singnet.com.sg] has quit [Read error:
60 (Operation timed out)]
04:39 -!- Guest67025 [n=quassel@91.104.195.34] has quit [Remote closed the
connection]
04:39 -!- mike [n=quassel@91.111.11.66] has joined #go-nuts
04:39 -!- mike [n=quassel@91.111.11.66] has quit [Remote closed the connection]
04:49 -!- ejb [n=ejb@unaffiliated/ejb] has quit [Read error: 110 (Connection timed
out)]
04:52 -!- ejb [n=ejb@unaffiliated/ejb] has joined #go-nuts
04:52 < defectiv> can someone tell me what obviously stupid thing i did here
around line 11?  http://pastie.org/748298
04:53 < defectiv> er, 21
04:54 <+iant> defectiv: you can't define a method on an interface
04:54 < defectiv> i thought that was the whole point of interfaces.
04:54 <+iant> interfaces are a set of methods; you can't define additional
methods on them
04:55 <+iant> you can write a function triple_rating which takes an
interface as an argument
04:55 < defectiv> ah, i see what you mean.
04:55 < defectiv> i totally had it all backward
04:55 < defectiv> thank you
04:55 < mjburgess> an interface is a contract, you can specify the type of a
parameter to be an interface, which means it should meet some criteria
04:56 < defectiv> is anyone working on a web framework in Go? comparable to
django/rails?
04:56 < defectiv> i totally get what it is.
04:56 < defectiv> i just had the usage wrong.
04:56 < mjburgess> ok, that was my first use of go, to make a wsgi style
framework
04:57 < mjburgess> that was also my last use, many weeks ago now
05:00 < defectiv> how robust was the framework?
05:00 < defectiv> templating?  models?
05:00 < defectiv> ORM?
05:05 -!- crc_ [n=charlesc@c-68-80-139-0.hsd1.pa.comcast.net] has joined #go-nuts
05:09 -!- crc [n=charlesc@c-68-80-139-0.hsd1.pa.comcast.net] has quit [Nick
collision from services.]
05:12 -!- scarabx [n=scarabx@c-24-147-239-120.hsd1.ma.comcast.net] has quit [Read
error: 104 (Connection reset by peer)]
05:14 -!- scarabx [n=scarabx@c-24-147-239-120.hsd1.ma.comcast.net] has joined
#go-nuts
05:16 < defectiv> does Go have private/protected variables?
05:17 < Gracenotes> no
05:17 < defectiv> what is the alternative then?
05:17 < Gracenotes> then i touch ur varbls
05:17 < uriel> Public / private
05:17 < defectiv> uriel, that's what i was thinking but i don't see how that
would work.
05:18 <+iant> defectiv: variables can be global or only visible within the
package
05:18 <+iant> same with fields
05:18 < Gracenotes> you can prevent them from being exported from a package
05:18 -!- itrekkie [n=itrekkie@ip72-200-110-1.tc.ph.cox.net] has joined #go-nuts
05:18 < defectiv> say some package defines a struct, called Foo, that has a
variable called bar.
05:18 < defectiv> so i can include that package and create instances of Foo
but not access bar?
05:18 <+iant> right
05:18 < Gracenotes> not per data-structure, but people using the language
should have a good idea of what involves shooting themselves in the foot
05:19 < Gracenotes> well.  that's not always true..  see C++
05:19 < defectiv> Go sounds like it would be very useful for the voting
method simulations i deal with.
05:21 < defectiv> you can make each package for a different voting method
just implement certain core methods and then you can generically treat them all as
an Election_method interface
05:22 -!- tumdum [n=tumdum@unaffiliated/tumdum] has joined #go-nuts
05:30 -!- tumdum [n=tumdum@unaffiliated/tumdum] has quit []
05:33 -!- Fringehead [n=fringe@24.126.235.188] has quit [Read error: 110
(Connection timed out)]
05:33 -!- scarabx [n=scarabx@c-24-147-239-120.hsd1.ma.comcast.net] has quit [Read
error: 54 (Connection reset by peer)]
05:34 -!- scarabx [n=scarabx@c-24-147-239-120.hsd1.ma.comcast.net] has joined
#go-nuts
05:38 -!- lilpenguina [n=penguina@75.97.68.130.res-cmts.senj.ptd.net] has joined
#go-nuts
05:42 -!- lotrpy [n=lotrpy@202.38.97.230] has joined #go-nuts
05:44 -!- Nixpunk [n=macpunk@cpe-72-177-27-209.austin.res.rr.com] has joined
#go-nuts
05:48 -!- Fringehead [n=fringe@c-24-126-235-188.hsd1.ga.comcast.net] has joined
#go-nuts
05:52 -!- droid0011 [n=g1@p4FDC96CA.dip.t-dialin.net] has joined #go-nuts
05:53 -!- tanamo [n=tanamo@125.252.70.230] has joined #go-nuts
05:54 < tanamo> semicolons are not required anymore?
06:00 -!- lilpenguina [n=penguina@75.97.68.130.res-cmts.senj.ptd.net] has quit
["Leaving."]
06:02 < jessta> tanamo: indee
06:02 < jessta> *indeed
06:02 < jessta> stupid keyboard, it needs a clean
06:03 -!- ejb [n=ejb@unaffiliated/ejb] has quit [Read error: 110 (Connection timed
out)]
06:04 -!- ejb [n=ejb@unaffiliated/ejb] has joined #go-nuts
06:04 < anticw> iant: there was some talk before about runtime linking ...
is there some fundamental reason why that's a bad idea?
06:05 <+iant> there is no fundamental reason, although it does add some
complexities
06:05 -!- mitchellh [n=mitchell@c-24-9-124-156.hsd1.co.comcast.net] has joined
#go-nuts
06:05 -!- itrekkie [n=itrekkie@ip72-200-110-1.tc.ph.cox.net] has quit []
06:05 <+iant> for example, there can be multiple identical type descriptors,
one in each shared library, which complicates determining when two types are the
same
06:05 < anticw> iant: well, im talking runtime not so much shared
06:05 < anticw> perhaps i should phrase things better
06:06 < jessta> huh?
06:06 -!- droid001 [n=g1@p4FDCAF3A.dip.t-dialin.net] has quit [Connection timed
out]
06:06 < anticw> because shared seem 'hard' and far off for now, i wondered
about something that would link foobar.6 on demand and cache the result
06:06 -!- sliceofpi [n=sliceofp@c-98-194-205-176.hsd1.tx.comcast.net] has joined
#go-nuts
06:07 < anticw> though i guess then there are potential versioning issues
wieth packages
06:07 -!- binaryjohn [n=binaryjo@cpe-24-30-132-50.san.res.rr.com] has joined
#go-nuts
06:07 <+iant> link it at runtime?
06:07 -!- zuiki [n=wiz@93.90.47.114] has quit ["Lost terminal"]
06:08 < anticw> iant: right, so some stub that when i invoke foo it links it
(in core) against the packages optionally caching the result
06:08 -!- lotrpy [n=lotrpy@202.38.97.230] has quit []
06:09 <+iant> I'm not sure that is all that much easier than shared
libraries
06:09 < jessta> yeah, sounds the same to me
06:10 < anticw> shared libries on some platforms require the code to be
generated differently and you tend to share (some) pages between processes
06:10 < anticw> i guess this is a lesser measure
06:11 <+iant> I'm not sure it could work in general without doing the kinds
of things which you have to do for shared libraries
06:12 -!- defectiv [n=clays@c-24-5-65-40.hsd1.ca.comcast.net] has quit ["This
computer has gone to sleep"]
06:13 < anticw> godoc is using 124M here as a web-server ...  that seems
high
06:17 < jessta> well, isn't godoc generating docs from the pkgs?
06:18 < jessta> running it here, it slowly creeps up to 84MB
06:21 -!- Makavel [n=eddw@hoasb-ff08dd00-36.dhcp.inet.fi] has joined #go-nuts
06:21 -!- delsvr [n=delsvr@cpe-24-59-168-135.twcny.res.rr.com] has quit [Remote
closed the connection]
06:28 -!- ejb [n=ejb@unaffiliated/ejb] has quit [Read error: 110 (Connection timed
out)]
06:28 -!- ejb [n=ejb@unaffiliated/ejb] has joined #go-nuts
06:30 < vegai> OT but this is just marvellous:
http://www.bobhobbs.com/files/kr_lovecraft.html
06:34 -!- binaryjohn [n=binaryjo@cpe-24-30-132-50.san.res.rr.com] has quit []
06:36 -!- bugQ [n=bug-@c-67-171-127-76.hsd1.ut.comcast.net] has quit [Remote
closed the connection]
06:37 -!- RolaBlade [n=eddw@hoasb-ff08dd00-36.dhcp.inet.fi] has quit [Read error:
110 (Connection timed out)]
06:38 -!- binaryjohn [n=binaryjo@cpe-24-30-132-50.san.res.rr.com] has joined
#go-nuts
06:53 -!- carllerche [n=carllerc@c-69-181-129-204.hsd1.ca.comcast.net] has joined
#go-nuts
06:54 -!- Nixpunk [n=macpunk@cpe-72-177-27-209.austin.res.rr.com] has quit
["Leaving"]
07:05 -!- trickie [n=trickie@86.93.227.181] has quit ["Computer has gone to
sleep"]
07:14 -!- apetrescu
[n=adrian@CPE001c10241fdf-CM001a666a6a02.cpe.net.cable.rogers.com] has joined
#go-nuts
07:18 < apetrescu> Hey, anyone know if there's been a native .deb package
made for Go yet, or if building from scratch is still the recommended way?
07:19 < apetrescu> I'm sure _some_ dude with a PPA has put something up by
now :P
07:23 -!- scarabx [n=scarabx@c-24-147-239-120.hsd1.ma.comcast.net] has quit ["This
computer has gone to sleep"]
07:24 < Ycros> apetrescu: I think it's still very much in development, and
so far releases have only really been tagged in the repository as such
07:24 < apetrescu> I see.  Thanks, Ycros
07:24 < Ycros> since it's changing so fast, I don't think there's an
advantage to packaging it yet
07:25 < Ycros> I keep mine in ~/opt/go/ :)
07:32 -!- mitchellh [n=mitchell@c-24-9-124-156.hsd1.co.comcast.net] has quit
["Leaving."]
07:36 -!- mitchellh [n=mitchell@c-24-9-124-156.hsd1.co.comcast.net] has joined
#go-nuts
07:36 -!- mitchellh [n=mitchell@c-24-9-124-156.hsd1.co.comcast.net] has quit
[Remote closed the connection]
07:39 -!- decriptor [n=decripto@53.250.sfcn.org] has joined #go-nuts
07:43 -!- mitchellh [n=mitchell@c-24-9-124-156.hsd1.co.comcast.net] has joined
#go-nuts
07:45 -!- iwikiwi [n=iwikiwi@202.3.77.160] has joined #go-nuts
07:46 -!- mitchellh [n=mitchell@c-24-9-124-156.hsd1.co.comcast.net] has quit
[Client Quit]
07:50 -!- mitchellh [n=mitchell@c-24-9-124-156.hsd1.co.comcast.net] has joined
#go-nuts
07:50 -!- mitchellh [n=mitchell@c-24-9-124-156.hsd1.co.comcast.net] has quit
[Remote closed the connection]
07:54 -!- binaryjohn [n=binaryjo@cpe-24-30-132-50.san.res.rr.com] has quit []
07:55 -!- fwiffo [n=fwiffo@unaffiliated/fwiffo] has quit []
07:58 -!- decriptor [n=decripto@53.250.sfcn.org] has quit [Read error: 110
(Connection timed out)]
07:58 -!- trickie [n=trickie@94.100.112.225] has joined #go-nuts
08:00 -!- carllerche [n=carllerc@c-69-181-129-204.hsd1.ca.comcast.net] has quit []
08:03 -!- rog [n=rog@89.241.238.36] has joined #go-nuts
08:10 -!- apetrescu
[n=adrian@CPE001c10241fdf-CM001a666a6a02.cpe.net.cable.rogers.com] has quit [Read
error: 110 (Connection timed out)]
08:11 -!- AmirMohammad [n=amir@unaffiliated/gluegadget] has joined #go-nuts
08:13 -!- Cyanure [n=cyanure@81-65-189-254.rev.numericable.fr] has joined #go-nuts
08:28 -!- johan-s [n=johan@106.80-203-21.nextgentel.com] has joined #go-nuts
08:30 -!- Metaphis [n=cyanure@81-65-189-254.rev.numericable.fr] has joined
#go-nuts
08:30 -!- Cyanure [n=cyanure@81-65-189-254.rev.numericable.fr] has quit [Read
error: 54 (Connection reset by peer)]
08:37 -!- apetrescu
[n=adrian@CPE001c10241fdf-CM001a666a6a02.cpe.net.cable.rogers.com] has joined
#go-nuts
08:40 -!- slashus2 [n=slashus2@74-137-26-8.dhcp.insightbb.com] has quit []
08:43 -!- jophish [n=jophish@hermi.gotadsl.co.uk] has joined #go-nuts
08:44 -!- tibshoot [n=tibshoot@linagora-230-146.pr0.nerim.net] has joined #go-nuts
08:58 -!- geocalc [n=geocalc@lns-bzn-37-82-253-28-44.adsl.proxad.net] has joined
#go-nuts
09:02 -!- ShadowIce [i=shadowic@unaffiliated/shadowice-x841044] has joined
#go-nuts
09:04 -!- iwikiwi [n=iwikiwi@202.3.77.160] has quit ["leaving"]
09:15 -!- GeoBSD [n=geocalc@lns-bzn-52-82-65-104-5.adsl.proxad.net] has quit [Read
error: 110 (Connection timed out)]
09:30 -!- iwikiwi [n=iwikiwi@202.3.77.128] has joined #go-nuts
09:41 -!- apetrescu
[n=adrian@CPE001c10241fdf-CM001a666a6a02.cpe.net.cable.rogers.com] has quit [Read
error: 110 (Connection timed out)]
09:44 -!- iwikiwi [n=iwikiwi@202.3.77.128] has quit ["brb, visit to profs room"]
09:46 -!- bjorn` [i=bjorn@archlinux.no] has quit [Read error: 60 (Operation timed
out)]
09:47 -!- bjorn` [i=bjorn@archlinux.no] has joined #go-nuts
09:49 -!- leitaox [n=leitaox@189.20.94.66] has joined #go-nuts
09:51 -!- triplez [n=triplez@bb116-14-66-103.singnet.com.sg] has quit []
09:52 -!- Gracenotes [n=person@wikipedia/Gracenotes] has quit [Remote closed the
connection]
09:57 -!- pdusen [n=pdusen@crob4-55.flint.umich.edu] has joined #go-nuts
09:58 -!- Associat0r [n=Associat@h163153.upc-h.chello.nl] has joined #go-nuts
10:03 -!- ThePok [n=fufuuuer@p5DD6ABCF.dip.t-dialin.net] has joined #go-nuts
10:04 -!- fgb [n=fgb@190.246.85.45] has quit [Read error: 104 (Connection reset by
peer)]
10:07 -!- melba [n=blee@unaffiliated/lazz0] has joined #go-nuts
10:09 -!- pvandusen [n=pdusen@crob4-55.flint.umich.edu] has quit [Read error: 113
(No route to host)]
10:10 -!- ikke [n=ikkibr@unaffiliated/ikkebr] has joined #go-nuts
10:11 -!- ThePok [n=fufuuuer@p5DD6ABCF.dip.t-dialin.net] has quit []
10:13 -!- snearch [n=olaf@g225051032.adsl.alicedsl.de] has joined #go-nuts
10:19 -!- JPascal [n=jpascal@195.239.8.22] has joined #go-nuts
10:19 < JPascal> Hello all!
10:20 < JPascal> Who I can swap two elements in map[string]?
10:21 -!- JSharpe [n=jamie@5ad1d7cf.bb.sky.com] has joined #go-nuts
10:23 -!- leitaox [n=leitaox@189.20.94.66] has quit [Client Quit]
10:26 -!- scm [i=justme@d018183.adsl.hansenet.de] has quit [Read error: 60
(Operation timed out)]
10:26 < jessta> JPascal: I imagine the same way you usually swap two
variables
10:27 -!- scm [i=justme@d018183.adsl.hansenet.de] has joined #go-nuts
10:28 < JPascal> jessta:
http://groups.google.com/group/golang-nuts/browse_thread/thread/b4c86e8051b33e0e
10:29 < jessta> oh, I see
10:29 < jessta> maps aren't ordered
10:29 < dagle> JPascal: Hmm.  Think you did a typo.
10:29 < dagle> Aha.
10:29 < nf> vegai: wow, that is brilliant
10:30 < JPascal> =\
10:32 < jessta> JPascal: if you need to sort something then you probably
want a list
10:32 < JPascal> hm...
10:32 -!- ShadowIce [i=shadowic@unaffiliated/shadowice-x841044] has quit
["Leaving"]
10:33 < dagle> JPascal: You want it sorted when you do rang on the map?
10:33 < dagle> range*
10:33 < jessta> I'm surprised that lists aren't in the language
10:34 -!- pvandusen [n=pdusen@crob4-55.flint.umich.edu] has joined #go-nuts
10:34 < JPascal> dagle: yes
10:34 < Ycros> lists are in the library
10:34 < jessta> yeah I know
10:34 < dagle> Ycros: but not a built in type.
10:34 < JBeshir> I don't think lists benefit hugely from being built in.
10:34 < JBeshir> While maps do, if you're not going to let people override
[]
10:34 < dagle> Depends on the language.
10:35 < JBeshir> The language is fixed, so that's kinda a meaningless
statement; tis Go
10:35 < jessta> it seems strange to have a hashmap builtin and not a list
10:36 < dagle> Go is a young lang.  Hopefully alot will happen.
10:37 -!- ShadowIce [i=pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts
10:38 < JPascal> Has gone to invent a bicycle))
10:39 < jessta> two wheels?
10:40 < jessta> implementing the wheel is very different from inventing it
10:44 -!- nf [n=nf@124-168-152-103.dyn.iinet.net.au] has quit [Remote closed the
connection]
10:50 -!- nanoo [n=nano@95-89-198-45-dynip.superkabel.de] has joined #go-nuts
10:51 -!- pdusen [n=pdusen@crob4-55.flint.umich.edu] has quit [Read error: 113 (No
route to host)]
10:59 -!- Gracenotes [n=person@wikipedia/Gracenotes] has joined #go-nuts
10:59 -!- alc [n=alc@114.245.252.202] has joined #go-nuts
11:06 -!- tor7 [n=tor@c-987a71d5.04-50-6c756e10.cust.bredbandsbolaget.se] has
joined #go-nuts
11:10 -!- tomestla [n=tom@87.100.115.221] has joined #go-nuts
11:12 -!- lotrpy [n=lotrpy@202.38.97.230] has joined #go-nuts
11:13 -!- lotrpy [n=lotrpy@202.38.97.230] has quit [Client Quit]
11:15 -!- c0nfl|ct [n=tiago@83.240.182.109] has joined #go-nuts
11:18 -!- General13372 [n=support@71-84-247-187.dhcp.gldl.ca.charter.com] has
joined #go-nuts
11:26 -!- afurlan [n=afurlan@scorpion.mps.com.br] has joined #go-nuts
11:35 -!- oal [n=olav@5.79-160-122.customer.lyse.net] has joined #go-nuts
11:36 -!- General1337 [n=support@71-84-247-187.dhcp.gldl.ca.charter.com] has quit
[Read error: 110 (Connection timed out)]
11:40 < rog> i have to say i miss having lists
11:41 < rog> but when (if?) we get parametric polymorphism, they'll be easy
to have, and they don't require anything in the way of runtime support
11:45 -!- snearch [n=olaf@g225051032.adsl.alicedsl.de] has quit ["Ex-Chat"]
11:49 -!- Fish-Work [n=Fish@86.65.182.194] has joined #go-nuts
11:50 -!- Gracenotes [n=person@wikipedia/Gracenotes] has quit [Connection timed
out]
11:50 < jessta> rog: parametric polymorphism?
11:51 < rog> generics
11:51 -!- Gracenotes [n=person@wikipedia/Gracenotes] has joined #go-nuts
11:53 -!- nanoo [n=nano@95-89-198-45-dynip.superkabel.de] has quit ["Leaving"]
11:53 -!- JSharpe2 [n=jamie@5ad1d7cf.bb.sky.com] has joined #go-nuts
11:54 < rog> the one thing you do gain by having a built in list type is
that there's one standard way to return a list of stuff, so you get more
compatibility between interfaces.  obviously arrays are another way, but lists are
often better (being immutable but easy to add to)
12:00 -!- nanoo [n=nano@95-89-198-45-dynip.superkabel.de] has joined #go-nuts
12:05 -!- JSharpe [n=jamie@5ad1d7cf.bb.sky.com] has quit [Connection timed out]
12:16 -!- leitaox [n=leitaox@189.20.94.66] has joined #go-nuts
12:17 -!- murodese [n=James@124-169-139-152.dyn.iinet.net.au] has joined #go-nuts
12:23 < tor7> rog: true.  I believe most people asking for generics would
stop asking and be happy if Go had a list[T] type for lists, like the map[T] for
dictionaries.
12:25 < jessta> yeah, likely
12:28 -!- leitaox [n=leitaox@189.20.94.66] has quit [Client Quit]
12:29 -!- ViciousPlant [n=z@61.177.142.229] has joined #go-nuts
12:29 -!- Fish-Work [n=Fish@86.65.182.194] has quit [Read error: 104 (Connection
reset by peer)]
12:30 -!- Fish-Work [n=Fish@86.65.182.194] has joined #go-nuts
12:32 < rog> tor7: i'm not sure.  i think more people asking for lists would
stop asking and be happy if Go had generics...
12:32 < rog> tor7: generics are useful in many ways
12:32 < rog> much harder, and harder to get right, than lists!
12:35 -!- chachan [n=chachan@ccscliente156.ifxnetworks.net.ve] has joined #go-nuts
12:36 -!- murodes1 [n=James@124-169-139-152.dyn.iinet.net.au] has quit [Read
error: 110 (Connection timed out)]
12:37 -!- jophish [n=jophish@hermi.gotadsl.co.uk] has quit [Remote closed the
connection]
12:39 < jessta> generics seems fairly simple on pointer types, but difficult
on value types
12:42 < rog> it's the interaction of generics and interfaces that's hard
12:42 < rog> value types are "just" an implementation detail
12:42 < Ycros> rog: what are the issues?
12:42 < Ycros> ah, yes.
12:42 < Ycros> hmm.
12:43 < rog> indeed.
12:43 -!- wm_eddie [n=wm_eddie@kanna.wm-eddie.info] has left #go-nuts []
12:49 < hyperbolist> newb alert: aren't 'slices' lists?
12:51 < adiabatic> no
12:52 < tor7> rog: I'm not contesting the usefulness of generics, but a
generic list type would get 90% of their use cases
12:53 < tor7> I believe the major problem is that it's too much of a hassle
to realloc a slice if it needs to grow beyond its capacity
12:53 < JBeshir> And a generic set type, and a generic queue type...
12:54 < taruti> jessta: actually they are not harder on value types
12:54 < tor7> lists and dictionaries can sub in for those in everything but
name
12:54 < JBeshir> Er, no, they can't, at least not in a non-hackish manner
12:54 < tor7> and if you get tricky like lua, dictionaries can be used for
lists as well
12:54 < JBeshir> Lists can substitute for queues, but sets want BST-like
performance or better.
12:55 < JBeshir> You could do them with a map, but it'd be ugly
12:55 < tor7> "BST"?
12:55 < JBeshir> Binary search tree.
12:56 < tor7> I'm not understanding your problem then, what's the big
difference between a set and a map[boolean]?
12:57 < JBeshir> The boolean is unused and ugly.
12:58 < tor7> well, I've never had the need to use a set so don't see the
urgent need for bloating up the standard library with a million data structures
that have only minor differences
12:58 -!- Fish-Work [n=Fish@86.65.182.194] has quit [Read error: 104 (Connection
reset by peer)]
13:00 -!- Fish-Work [n=Fish@86.65.182.194] has joined #go-nuts
13:06 < rog> tor7: intersection and union operators can be done much more
efficiently if you know you've got a set rather than a map
13:06 < rog> and there are loads of nice algorithms that are nicely
expressed using generics.  see haskell for a zillion examples.
13:06 -!- hcatlin [n=hcatlin@pdpc/supporter/professional/hcatlin] has joined
#go-nuts
13:08 < rog> all the stuff in container/* would be better done with generics
13:08 -!- rakd [n=rakd@219.117.252.7.static.zoot.jp] has joined #go-nuts
13:09 -!- plainhao [n=plainhao@mail.xbiotica.com] has joined #go-nuts
13:09 < jessta> rog: what is the issue with the interaction between generics
and interfaces?
13:10 -!- gkmngrgn [n=gkmngrgn@unaffiliated/gkmngrgn] has joined #go-nuts
13:14 < rog> jessta: to do things well, you'd want generics and interfaces
to interact together well.  for instance, if you're generic over type t, it's
usual to allow restriction of the possible types t to those implementing a
particular set of functions.  that looks very like an interface...  but the
characteristics are slightly different.
13:14 < hyperbolist> nerb alert: why doesn't a "Comparable" interface or
some set of interfaces remove any need for generics?
13:14 < rog> hyperbolist: generics give you static type safety
13:15 -!- lux` [n=lux@151.71.141.147] has joined #go-nuts
13:15 -!- lux` [n=lux@151.71.141.147] has quit [Read error: 104 (Connection reset
by peer)]
13:15 < rog> hyperbolist: ...  removing the need for runtime checks and
therefore potentially speeding things up
13:15 < hyperbolist> rog: i thought interfaces were go's type-safety
mechanism?
13:15 < tor7> hyperbolist: it still requires dynamic downcasting, as you can
see in the container/* packages
13:15 < rog> hyperbolist: they're dynamically typed.
13:16 < rog> if i have a list.List, i can push an int and a string no
problem.  but if i try to get the string out, expecting that it's an int, then
it'll blow up
13:16 < hyperbolist> so, unboxing is sadness?
13:16 < rog> yup
13:17 < rog> and boxing is too, because it has performance implications
13:17 < hyperbolist> i see.
13:17 < rog> and boxed and unboxed types aren't compatible, which is also
sad
13:17 < hyperbolist> thanks for the clarity.
13:18 < rog> so: type T interface {foo() T} is not compatible with type Foo
struct {...}; func (f Foo) Foo {return f}
13:18 < rog> which is a pity
13:19 < rog> and that's the essence of the generic vs.  interface problem -
with generics, those two things *would* be compatible.
13:20 < jessta> ah, ok then
13:21 < jessta> that doesn't look like a good thing
13:21 < rog> i suppose one possibility would be to define those two things
as compatible, and generate two entry points for each method.
13:22 < rog> i'm not entirely sure what the implications of that would be.
13:23 < rog> oops my line above should have read: type T interface {foo() T}
is not compatible with type Foo struct {...}; func (f Foo) foo() Foo {return f}
13:23 < ViciousPlant> too many foos
13:23 < hyperbolist> rog: i was just about to ask why you thought they
should be compatible...
13:24 < rog> well, if you substitute the types, T becomes Foo, and the two
look identical
13:24 < hyperbolist> rog: yes, now i see.  i was looking for a corresponding
foo() and didn't see it until you corrected it.
13:25 < rog> the other difficulty is that in generics, you've often got
several generic types going on at once - go interfaces are all about one type
only.
13:26 < rog> basically, it's not an easy problem.
13:26 < rog> you gotta get the syntax, semantics and performance just
right...
13:27 < rog> and they all trade off against each other
13:29 < jessta> do you need to have generic interfaces like that?
13:29 < rog> jessta: maybe not
13:30 < rog> but then you've got to define some other,
mostly-similar-looking syntax in order to define generic interfaces.
13:30 < jessta> everytime I've thought I could use generics was with some
kind of container
13:31 < rog> yes, generics are all about containment because the types flow
down the stack, not up
13:31 < rog> but there are many forms of containment
13:31 -!- Netsplit kornbluth.freenode.net <-> irc.freenode.net quits: mat_,
zum, RooTer
13:31 < jessta> if I planned to do anything to those elements i'd be using
an interface
13:32 -!- Netsplit over, joins: mat_, zum, RooTer
13:32 < rog> that's kind of the point of the interaction of generics and
interfaces.
13:33 < jessta> ah, I see.  Getting back the original type from an
interface...hmm...
13:33 < rog> there are all kinds of things that an algorithm might wish to
do with an object when it has hold of it.
13:34 < rog> with generics, you can be statically sure that the object
*will* implement those methods
13:34 < jessta> with interfaces you can be statically sure
13:35 < tor7> and that's what interfaces also give you, in a different
manner.
13:35 < rog> of course, you can with interfaces too, but with generics, two
types with the same interface can be distinct
13:35 < tor7> the intersection of non-orthogonal features is what makes
language design so hard
13:36 < rog> so for instance, in haskell, Pair a b, denotes a structure with
two arbitrary types, a and b, that are different from the point of view of any
code using a Pair
13:37 < rog> but using interfaces, struct {x, y interface{}} the x and y are
of interchangeable type
13:37 < rog> tor7: yes
13:38 < tor7> I tried once, a few years back, to design a language with
generics, polymorphism and dynamic method dispatch on arguments.  null and
non-orthogonal feature intersection bit me hard so I gave up heh.
13:39 -!- iwikiwi [n=iwikiwi@202.3.77.160] has joined #go-nuts
13:39 -!- Fish-Work [n=Fish@86.65.182.194] has quit [Read error: 104 (Connection
reset by peer)]
13:40 -!- Fish-Work [n=Fish@86.65.182.194] has joined #go-nuts
13:41 < tor7> so anyway, I'll be perfectly happy if they don't implement
generics in Go.
13:42 < rog> yeah, it's not easy.  but i hope they do anyway.
13:42 < tor7> interfaces cover most of the uses, the only thing major
missing are containers, IMO
13:42 < hyperbolist> go's interfaces allow for me to forget about the lack
of generics, i believe.  as long as i'm diligent, of course.
13:42 -!- kanru [n=kanru@61-228-149-169.dynamic.hinet.net] has quit ["WeeChat
0.3.1-dev"]
13:42 < tor7> and maps and slices are good enough for me
13:43 -!- Netsplit kornbluth.freenode.net <-> irc.freenode.net quits: mat_,
zum, RooTer
13:43 < rog> but containers also includes lots of useful concurrent
algorithms
13:44 < rog> and it'd be great to be able to write generic concurrent
algorithms in a type safe way
13:44 -!- Netsplit over, joins: mat_, zum, RooTer
13:45 < tor7> I'm scared of what might happen to the language though, it's
already a lot more complicated than C
13:45 -!- Fish-Work [n=Fish@86.65.182.194] has quit [Read error: 54 (Connection
reset by peer)]
13:45 -!- JSharpe2 [n=jamie@5ad1d7cf.bb.sky.com] has quit [Success]
13:45 < rog> (e.g.  this code would be more nicely expressed if it didn't
have to use interface{}: http://gopaste.org/view/3p52Z)
13:45 -!- ViciousPlant [n=z@61.177.142.229] has quit []
13:46 < tor7> the "magic" nature of slices, maps and interface types that
act like pointers without the pointer syntax.  that's bound to cause trouble for
newbies who don't know C that well.
13:46 -!- Netsplit kornbluth.freenode.net <-> irc.freenode.net quits: mat_,
zum, RooTer
13:46 < rog> tor7: i agree.  i have faith in the inventors' minimalism tho.
13:46 -!- nullpo [n=nullpo@221x252x46x83.ap221.ftth.ucom.ne.jp] has quit [Success]
13:46 -!- Netsplit over, joins: mat_, zum, RooTer
13:46 -!- Fish-Work [n=Fish@86.65.182.194] has joined #go-nuts
13:46 -!- scm_ [i=justme@d019119.adsl.hansenet.de] has joined #go-nuts
13:47 < tor7> they are voodoo, but pragmatic voodoo.  and given the
inventors' history I have some faith too.
13:47 < rog> tor7: you're just talking about mutable values there.  there's
nothing new there.  most imperative languages have them
13:48 < tor7> I understand them, but I can also see how they'd be
incomprehensible if you don't understand the pointer-like nature of the so called
reference types
13:49 -!- JSharpe [n=jamie@5ad1d7cf.bb.sky.com] has joined #go-nuts
13:49 < rog> you can pass a list around in python and have it modified by a
function you call.  what's the difference?
13:49 < tor7> knowing the implementation details help
13:49 < rog> i think it's a pity they distinguished make and new
13:50 < tor7> ah, but python doesn't have pass-by-value types.
13:50 < rog> i think there should have been one operator, new, and its first
argument should also be its return type
13:50 < rog> tor7: yes it does
13:50 < rog> tor7: integers for one
13:50 < tor7> s/types/compound types/
13:51 < tor7> you can't pass lists, dictionaries or objects by value
13:51 < tor7> nor can you pass pointers to integers in python
13:51 -!- lolsuper_ [n=super_@unaffiliated/lolsuper-/x-9881387] has joined
#go-nuts
13:51 < tor7> which makes it a lot simpler to understand all the intricacies
of the type system
13:52 < rog> yeah maybe
13:52 < rog> in python it's helped by the fact that you don't need to
describe it statically
13:53 < rog> having been dealing in depth with go's type system in the last
week, i can say that it's actually very elegant
13:53 < tor7> I'm not complaining, but I am afraid Go is dangerously close
to having a byzantine type system
13:53 < tor7> very useful though :)
13:54 < tor7> anyway, I need to write more code in it...
13:54 < rog> if you look at the code for godef, you won't see many odd
things happening.  it's all pretty straightforward.
13:55 < rog> for instance, i thought it that type casts would be hard to
do...  nope, two lines of code.
13:55 < tor7> I'm debugging memory leaks in c code, that's why I'm here
procrastinating instead
13:55 < rog> :-)
13:57 < rog> the syntax is great too - the fact that a type is also a valid
expression makes things much easier
13:57 < tor7> rog: in that reduce sample, couldn't you define separate types
for the boxes?
13:57 < tor7> type A, B, C interface{} ; func Reduce(...  func (A, B) C) C
{}
13:58 -!- scm [i=justme@d018183.adsl.hansenet.de] has quit [Read error: 110
(Connection timed out)]
13:58 < tor7> or well something like it
13:59 < rog> tor7: actually, what you want is func Reduce(...  func (a, b T)
T) T) T { }
13:59 < rog> but there's no way to specify a function that takes two inputs
of the same type and produces an output of the same type
13:59 -!- iwikiwi [n=iwikiwi@202.3.77.160] has quit ["I ascend to reality!"]
14:00 < tor7> hmm.
14:00 < rog> that's what generics give you
14:01 < rog> in haskell, it would look like: Reduce :: (Chan a) -> (a
-> a -> a) -> a
14:01 -!- binaryjohn [n=binaryjo@cpe-24-30-132-50.san.res.rr.com] has joined
#go-nuts
14:01 < tor7> right, because any type will satisfy the empty interface.
d'oh!  was confusing stuff with the type distinction of say type MyInt int and
type MyOtherInt int;
14:01 < tor7> maybe I should get back to debugging before I embarass myself
:)
14:01 < rog> :-)
14:01 -!- gkmngrgn [n=gkmngrgn@unaffiliated/gkmngrgn] has quit [Remote closed the
connection]
14:02 < rog> BTW, i was quite please with that reduce code
14:02 < rog> it's really quite quick.
14:03 < rog> i'd like to see if anyone can do it better...
14:03 < rog> s/please/pleased/
14:05 < tor7> is there a reason you don't write "for v1 := range in {..."
instead?
14:05 < JBeshir> What'd be cool would be if generics and interfaces were
somehow related
14:06 -!- fredmorcos [n=fred@193.170.135.107] has joined #go-nuts
14:06 < tor7> rog: nevermind
14:06 < rog> yes - for...range doesn't work properly at the moment with
multiple concurrent readers
14:07 < rog> and in that code, the workers start reading from the same
channel as soon as they're started
14:09 < rog> if you do for range, you can lose a value, because it does for
{x := <-c; if closed(c) break; ...} but another process might have read a
(last) value from c between the <- and the closed()
14:09 -!- kanru [n=kanru@61-228-149-169.dynamic.hinet.net] has joined #go-nuts
14:09 < rog> in which case you lose the (valid) value of x
14:09 -!- woremacx [n=woremacx@unaffiliated/woremacx] has quit ["save the
woremacx, save the world."]
14:09 < rog> JBeshir: indeed it would
14:11 -!- crakrjak [n=merc@rrcs-70-62-156-154.central.biz.rr.com] has quit [Read
error: 104 (Connection reset by peer)]
14:11 -!- woremacx [n=woremacx@unaffiliated/woremacx] has joined #go-nuts
14:13 -!- c0nfl|ct [n=tiago@83.240.182.109] has quit ["Saindo"]
14:14 < tor7> rog: that's an oops if I ever saw one :)
14:14 -!- Kibiz0r [n=Adium@wndsnyhed01-pool1-a130.wndsny.tds.net] has joined
#go-nuts
14:15 < hyperbolist> whoa, no ternary operator.
14:16 < rog> deliberate choice.
14:16 < exDM69> why so?
14:16 < rog> i guess they find it makes for hard-to-read code
14:16 -!- woremacx [n=woremacx@unaffiliated/woremacx] has quit [Client Quit]
14:16 < JBeshir> Go is working with PETA and the RSPCA to reduce the number
of codebases that kill puppies
14:16 < JBeshir> I think it's a part of that
14:17 < ffission6> does Go do animal testing to ensure quality?
14:17 < jessta> ...the RSPCA kills puppies all the time
14:17 < JBeshir> ffission6: If thou wishes to know who Go tests on, thou
need but look in a mirror
14:17 < exDM69> a convinient ternary operator could use keyword based syntax
instead of foo ? bar : baz.  like haskell-style if foo then bar else baz or python
14:17 < exDM69> bar if foo else baz
14:17 < jessta> I'm pretty sure the RSPCA kills more puppies than any other
organisation
14:18 < rog> it doesn't do it with malevolent, slow torture like cdebases do
14:18 < exDM69> OTOH, ternary operator is not the most simple one to
implement compiler-wise
14:18 < jessta> codebases that torture puppies
14:18 < rog> it's totally straightforward compiler-wise
14:19 < rog> i think
14:19 < exDM69> the type checker is not quite straightforward and the
codegen needs to know where to store the value
14:19 -!- cmarcelo [n=cmarcelo@200.184.118.130] has joined #go-nuts
14:20 < exDM69> rog: depends on the backend of course, but LLVM or a stack
based VM do not provide a convinient way to implement ternary if's
14:20 -!- emilh [i=emil@Amanita.Update.UU.SE] has quit [Read error: 104
(Connection reset by peer)]
14:20 < rog> the type checker *is* straightforward!  it just needs to check
that the condition is boolean and the other two types are compatible
14:20 < tor7> the ternary operator as in C just looks ugly, that's reason
enough.  the if/else keywords are already used for statements.
14:21 < rog> yes, you couldn't use if/then because an expression is a valid
statement, and then you couldn't tell if you were starting an if block or starting
an if expression
14:21 < exDM69> tor7: you can have many unambiguous syntax using same
keywords in different places (like the python ternary op)
14:22 < rog> exDM69: so what would your syntax look like?
14:22 < ffission6> what about keyword used as suggested by above, decide
(test) do {true} or {false}
14:22 < exDM69> rog: the type checking is simple in theory, but the
implementation may be a bit difficult depending on other design choices
14:23 < rog> ffission6: what, introduce 3 new keywords just for the one
operator?!
14:23 < exDM69> you can't type check that with simple postorder AST
traversal and a stack
14:23 < tor7> to be honest, the python ternary op always throws me off when
I see it.  then I prefer perl's postfix if-expression.
14:23 < rog> exDM69: i'm sure that in go it would be straightforward
14:24 < exDM69> rog: the python syntax: on_true_expr if cond_expr else
on_false_expr
14:24 < rog> exDM69: because all types are well defined
14:24 < exDM69> yeah, I'm sure that's definately doable in the Go
typechecker if someone wanted to
14:25 < rog> exDM69: so this would be valid?  x := if true 7 else 9
14:25 < JBeshir> You know, I always thought that'd be better as a built-in
function
14:25 < JBeshir> Because it reads better that way.
14:25 < JBeshir> if(true, 7, 9)
14:25 < rog> JBeshir: one that lazily evaluates its arguments?
14:26 < exDM69> rog: no, that would be x := 7 if true else 9
14:26 < exDM69> in python syntax
14:26 < JBeshir> rog: Hmm, point, that'd be breaking.
14:26 < JBeshir> Python's way is just backasswards
14:26 < exDM69> JBeshir: yeah, it's a bit awkward but it's unambiguous
14:26 < exDM69> it's also quite close to written english
14:27 < rog> exDM69: is it really worth it?
14:27 < JBeshir> No English I write.
14:27 < JBeshir> And in any non-trivial usage, it fails the puppy killing
criterion, IMHO
14:27 < JBeshir> (I write "if this, then this.  Otherwise, other thing.")
14:27 < rog> "go into the dungeon if you have an axe, else flee"
14:27 < rog> it does read ok actually
14:27 < JBeshir> (Not "This, but only if this, otherwise this.", that's just
hard to read.)
14:28 -!- crakrjak [n=merc@rrcs-70-62-156-154.central.biz.rr.com] has joined
#go-nuts
14:28 < JBeshir> rog: Yeah, but that's an action, I don't think it works in
English if the action is replaced by a statement.
14:29 < JBeshir> Hmm, maybe, but it still flows a lot less well in a block
with other code that way around.
14:29 < exDM69> rog: I find the ternary if very convinient in many places,
so I recon it might be worth adding one syntactic structure.  even if it
complicates a bit, we're all smart programmers, right?
14:29 < exDM69> "the absolute value of x is x if x is greater than zero,
else it's negative x"
14:29 < rog> "steal his money if he has some else kill him"
14:29 < JBeshir> exDM69: Write like five sentences like that in a row
14:30 < exDM69> JBeshir: when was the last time you wrote five ternary if's
in a row?
14:30 < JBeshir> exDM69: It flows into itself and other imperative
statements terribly
14:30 < JBeshir> Do foo.  Do bar.  Do x if y else z.  Do a.  Do b.
14:30 < rog> exDM69: generally, an if statement works fine.  sometimes it
adds a little to the verbosity.  but it's never a particular difficulty.
14:30 < JBeshir> The middle one is just "ow" mentally parsing it.
14:31 < JBeshir> At least for me.
14:31 -!- Fraeon [n=kzer-za@e212-246-65-153.elisa-laajakaista.fi] has joined
#go-nuts
14:32 < rog> if you had generics, you could do: ifthen(cond boo, a, b func()
<T>) <T>
14:32 < rog> :-)
14:32 < rog> then you'd do: x := ifthen(condition, func(){return 45},
func(){return 3})
14:33 < rog> not very concise tho' !
14:33 -!- skelterjohn [n=jasmuth@c-76-99-92-193.hsd1.nj.comcast.net] has joined
#go-nuts
14:34 < tor7> ifthen(cond boo, a, b func()interface{})interface{} and then x
:= ifthen(condition, func(){return 45}, func(){return 3}).(T) works today!
14:34 < tor7> minus the static type checking
14:34 < rog> sure
14:35 < rog> it's not x := condition ? 45 : 3 though!
14:35 < tor7> true
14:35 < rog> anyway, it's not a huge issue
14:36 -!- fredmorcos [n=fred@193.170.135.107] has quit ["Ex-Chat"]
14:36 < skelterjohn> I always thought of the ternary operator as a way to
jam more code onto a single line in an attempt to make it slightly less readable
14:37 < rog> yup
14:37 < skelterjohn> i'm sure you see it all over the place in obfuscation
contests
14:38 < rog> although in Go, since initialisations at global scope are
limited to expressions, it'd sometimes be useful there.
14:38 < rog> to avoid an init() function
14:38 < rog> but if you've got an if-then operator, why not a switch
operator too!
14:41 -!- JSharpe2 [n=jamie@5ad1d7cf.bb.sky.com] has joined #go-nuts
14:42 -!- iant [n=iant@71.133.8.30] has quit [Read error: 113 (No route to host)]
14:42 -!- msw [n=msw@66.192.95.199] has quit [Read error: 104 (Connection reset by
peer)]
14:42 -!- codehai [n=codehai@xdsl-78-34-37-157.netcologne.de] has joined #go-nuts
14:43 -!- Fraeon [n=kzer-za@e212-246-65-153.elisa-laajakaista.fi] has quit
["Connection reset by peer."]
14:43 -!- Fraeon [n=kzer-za@e212-246-65-153.elisa-laajakaista.fi] has joined
#go-nuts
14:55 -!- Rob_Russell [n=chatzill@206-248-157-156.dsl.teksavvy.com] has joined
#go-nuts
14:55 -!- JSharpe [n=jamie@5ad1d7cf.bb.sky.com] has quit [Connection timed out]
14:57 -!- iant [n=iant@67.218.110.40] has joined #go-nuts
14:57 -!- mode/#go-nuts [+v iant] by ChanServ
14:57 < dho> hey ian
15:01 <+iant> morning
15:02 < rog> morning
15:03 -!- Fish-Work [n=Fish@86.65.182.194] has quit [Read error: 54 (Connection
reset by peer)]
15:04 -!- Fish-Work [n=Fish@86.65.182.194] has joined #go-nuts
15:07 < fluffle> ooi, can someone explain how I can get godoc to generate
the html docs for an extra pkg ?
15:08 < fluffle> i've symlinked it into src/pkg and edited src/pkg/Makefile
so it's built correctly, but i still don't get it showing up in `godoc -http=:8080
&`
15:08 < fluffle> i'd quite like to see how my comments look so I can
re-write them to make them more useful
15:09 < fluffle> ooh, interesting
15:10 -!- skelterjohn [n=jasmuth@c-76-99-92-193.hsd1.nj.comcast.net] has quit []
15:10 < fluffle> i can tell my browser to go to localhost:8080/pkg/irc
manually, and I get html docs
15:10 < fluffle> but it doesn't show up in the package lit
15:10 < fluffle> +s
15:10 <+iant> fluffle: perhaps godoc doesn't follow symlinks?
15:11 < fluffle> iant: oh, hadn't thought of that.  It appears to if you
force it to, but i suspect it's deliberately only looking for subdirs of pkg/
rather than links in that dir...
15:11 < fluffle> iant: cheers :D
15:12 -!- tumdum_ [n=tumdum@unaffiliated/tumdum] has joined #go-nuts
15:12 <+iant> yes, that is it, godoc is working from the lstat of the name
as returned by os.File.Readdir
15:12 < fluffle> at any rate, my comments need much better formatting
15:12 < fluffle> \o/.
15:19 -!- johan-s [n=johan@106.80-203-21.nextgentel.com] has quit ["awaaaay"]
15:23 < dho> cool, I have my build tool doing a parallel time computation on
the graph for all of src/pkg
15:23 -!- delsvr [n=delsvr@cpe-24-59-168-135.twcny.res.rr.com] has joined #go-nuts
15:23 < dho> takes ~1.5 seconds to compute it on this box
15:23 -!- Fish-Work [n=Fish@86.65.182.194] has quit [Read error: 104 (Connection
reset by peer)]
15:25 -!- Fish-Work [n=Fish@86.65.182.194] has joined #go-nuts
15:32 -!- hstimer [n=hans@c-98-234-25-125.hsd1.ca.comcast.net] has quit
["Leaving..."]
15:32 -!- kanru [n=kanru@61-228-149-169.dynamic.hinet.net] has quit ["WeeChat
0.3.1-dev"]
15:34 -!- JSharpe [n=jamie@5ad1d7cf.bb.sky.com] has joined #go-nuts
15:41 -!- Fraeon [n=kzer-za@e212-246-65-153.elisa-laajakaista.fi] has quit
["Connection reset by peer."]
15:41 -!- nanoo [n=nano@95-89-198-45-dynip.superkabel.de] has quit ["Leaving"]
15:41 < dho> can you sort a map?
15:41 < dho> probably not.
15:41 <+iant> alas, no
15:41 < dho> that's a pain
15:42 <+iant> you need to use some sort of indirection from the map to
something which you can sort
15:42 < dho> explain?
15:43 <+iant> e.g., map to an int which is really an array index, and then
have another array which holds indexes into the first array, and sort the second
array
15:43 < rog> dho: if your values are pointers, then as well as storing them
in the map, you can store them in an array, which you can then sort
15:43 <+iant> or that, yeah
15:46 < dho> Hm. I'd need an array of vectors
15:48 < rog> dho: why's that?
15:48 < dho> my map is packages -> timeslots that they can be built at.
15:49 < dho> i guess i could just build it up as an array of vectors since i
know the array size's upper bound at that point
15:49 < rog> one -> many mapping?
15:49 < dho> yes
15:49 -!- skelterjohn [n=jasmuth@lawn-net168-in.rutgers.edu] has joined #go-nuts
15:49 < rog> so do you need to sort on package or timeslot?
15:49 -!- JSharpe2 [n=jamie@5ad1d7cf.bb.sky.com] has quit [Connection timed out]
15:50 -!- rakd [n=rakd@219.117.252.7.static.zoot.jp] has quit ["See you..."]
15:50 < rog> (wild stab in the dark) can't you just use a priqueue?
15:50 < dho> timeslot -> package package package is the final mapping
15:51 < dho> if the priq can tell me when an entire time slot is done
15:51 < rog> any then you want to sort that, right?
15:51 < dho> i think i'll just do []Vector
15:51 -!- sheki [n=sheki@115.240.66.211] has joined #go-nuts
15:52 < rog> with each element of the array corresponding to one timeslot?
15:53 < dho> yep
15:53 < sheki> when i compile cgo foo.go
15:53 < sheki> i get cannot find import "C"
15:53 < sheki> any suggestions?
15:53 < dho> can you paste your foo.go somewhere
15:54 < sheki> its the helloworld program given in the exampls
15:54 < rog> sounds like a pri queue could be just the thing, 'cos you don't
really need to sort everything - you just need to extract things in order
15:54 < sheki> package main import "fmt"func main() {
fmt.Printf("Hello,\n")}
15:55 <+iant> sheki: you don't need cgo for that program, cgo is for Go code
which wants to call C code
15:55 < dho> why are you running cgo on that?
15:55 < sheki> oh
15:55 < sheki> so i just run go and the file name?
15:55 -!- JPascal [n=jpascal@195.239.8.22] has quit ["Leaving."]
15:55 < sheki> go foo.go?
15:55 -!- Gracenotes [n=person@wikipedia/Gracenotes] has quit [Remote closed the
connection]
15:55 < dho> rog: I already have an in-order list from my depth-first search
15:55 <+iant> sheki: 6g foo.go; 6l foo.6; ./6.out
15:56 <+iant> if 32-bit s/6/8/
15:56 < dho> rog: but a priq doesn't seem different from that
15:57 < dho> rog: the issue isn't that i have them in order, topsort does
that fine.  the issue is that if i want to compile things in parallel, i need to
know what can be compiled in parallel :)
15:57 -!- triplez [n=triplez@bb219-74-214-167.singnet.com.sg] has joined #go-nuts
15:57 < sheki> iant: thanks
15:57 < sheki> iant: just starting
15:57 < dho> i don't see how i would tell that i've spawned jobs for
everyone in say time slot 0 before i do time slot 1
15:58 < dho> well, finished those jobs, but you get the drift
15:58 <+iant> sheki: see the tutorial
15:58 < rog> or more to the point, that jobs in time slot 0 have finished,
yes
15:58 < dho> I think i'm going to need []vector
15:58 < dho> but i don't think that's a huge deal
15:59 < dho> and i think I can get rid of the map entirely if i do that
15:59 < rog> i was wondering that
15:59 < dho> since i know the upper bound of elements in the array
15:59 < rog> yup
16:02 < skelterjohn> had to read that entire conversation to figure out that
priq was short for priority queue
16:02 -!- Fish-Work [n=Fish@86.65.182.194] has quit [Read error: 104 (Connection
reset by peer)]
16:02 < skelterjohn> (it happened when i was about to suggest you use a
priority queue)
16:04 < skelterjohn> but i'm not sure that's the easiest way
16:04 -!- Fish-Work [n=Fish@86.65.182.194] has joined #go-nuts
16:04 < skelterjohn> the way that comes to mind for me, is to have a
function BuildThisStuff(aPackage)
16:04 < skelterjohn> which first checks if aPackage has already been built
or is being built
16:04 < skelterjohn> if not, it calls go BuildThisStuff
16:05 < dho> that's a step ahead of where i am :)
16:05 < skelterjohn> for its dependencies
16:05 < skelterjohn> and then compiles itself
16:05 < skelterjohn> that will take care of everything i think
16:05 -!- Pete_27 [n=noname@115.64.1.61] has joined #go-nuts
16:06 < skelterjohn> if you call BuildThisStuff on something that is already
being built, it just sits there and blocks until that component is done
16:06 <+iant> this kind of problem is really a dependency graph, you could
model it that way
16:07 < dho> i have a dependency graph
16:07 -!- chachan [n=chachan@ccscliente156.ifxnetworks.net.ve] has quit [Read
error: 104 (Connection reset by peer)]
16:07 < dho> i have a sort of that graph
16:07 < dho> i'm just trying to assign time slots to them
16:07 <+iant> then why do you need a priority queue?
16:07 -!- chachan [n=chachan@ccscliente156.ifxnetworks.net.ve] has joined #go-nuts
16:07 < dho> i don't
16:07 < dho> i need []Vector
16:07 <+iant> why assign time slots, though?  you don't know how long each
task will take
16:07 < dho> it's not a problem anymore :)
16:07 < skelterjohn> i don't think time slots is the right way to go
16:07 <+iant> ok
16:07 < skelterjohn> for exactly what ian just said
16:07 < dho> iant: `time slots' has nothing to do with time
16:08 < dho> probably not the best word
16:08 < skelterjohn> dho: maybe you should call them something else, then...
16:08 <+iant> ok
16:08 < dho> just has to do with explicit ordering
16:08 < skelterjohn> so, a toposort isn't what you need
16:08 < skelterjohn> you need to retain the graph structure
16:08 < skelterjohn> if you flatten it, you lose the information about what
can be done in parallel
16:08 < dho> yes, i do need to topsort.  and then i need to take that list
and sort it.
16:08 < dho> i already have that.
16:09 < dho> i was just trying to figure out what datastructure to put that
info in
16:09 < dho> that's []Vector.
16:09 <+iant> you should use an in-memory SQL database!
16:09 < dho> dude, i so should
16:09 < skelterjohn> i could be missing something, but i don't see how that
will help you do concurrent compiling
16:09 <+iant> it's the answer to all data structure questions
16:09 < uriel> iant: hahaha
16:09 -!- decriptor [n=decripto@137.65.133.164] has joined #go-nuts
16:10 < uriel> iant: that goes right into my fortunes file!
16:10 * skelterjohn hopes that this stuff about an in-memory sql db is some kind
of inside joke
16:10 < dho> skelterjohn: pm
16:10 < uriel> more like an outer joke...  well, all of SQL is one big
fuckign joke
16:10 < skelterjohn> it has its uses
16:13 -!- Xera^ [n=lol@87-194-208-246.bethere.co.uk] has joined #go-nuts
16:14 < uriel> yes, creating jobs for database admins, database designers,
database analysts, databases optimizers, ...
16:14 < uriel> hell, SQL might have created more jobs than C++!
16:15 < skelterjohn> lol
16:15 < skelterjohn> i love that parody interview of stroustroup (sp)
16:16 < uriel> a fake interview where every word is true!
16:16 < skelterjohn> hehe
16:17 < dho> every time i look at main.go, i get hungry
16:17 < uriel> dho: hahaha.
16:17 < skelterjohn> hah
16:17 < skelterjohn> uriel: another programmer quote for cat-v?
16:17 < uriel> dho: that is pretty good, here you go, I'll add it to my
quots list, have a cookie :)
16:17 < uriel> skelterjohn: yup :)
16:17 < dho> lol
16:18 * dho infamy.
16:19 -!- Makavel [n=eddw@hoasb-ff08dd00-36.dhcp.inet.fi] has quit [Client Quit]
16:20 -!- ShadowIce [i=pyoro@unaffiliated/shadowice-x841044] has quit
["Verlassend"]
16:21 -!- hcatlin [n=hcatlin@pdpc/supporter/professional/hcatlin] has quit ["peace
in teh middle east"]
16:21 -!- chickamade [n=chickama@123.16.85.231] has joined #go-nuts
16:25 < dho> iant, skelterjohn: that is a better approach.
16:25 < dho> getting the synchronization right will be interesting though
16:26 -!- Kibiz0r [n=Adium@wndsnyhed01-pool1-a130.wndsny.tds.net] has quit
["Leaving."]
16:26 -!- ShadowIce [i=pyoro@p54A21678.dip.t-dialin.net] has joined #go-nuts
16:26 < skelterjohn> map[string] sync.Mutex
16:26 < skelterjohn> where package names go in the string
16:28 < dho> i'd rather just use channels
16:29 -!- [Pete_27] [n=noname@115.64.1.61] has quit [Read error: 110 (Connection
timed out)]
16:30 < rog> i think i'd be inclined just to walk the tree (assuming it has
no cycles), sending those jobs with no dependencies to a worker pool, and
modifying the tree when results come back in
16:30 -!- leitaox [n=leitaox@189.20.94.66] has joined #go-nuts
16:31 < skelterjohn> you can always use a channel instead of a mutex :)
16:31 < skelterjohn> make(chan bool, 1)
16:32 < skelterjohn> "ch<-true" is like lock
16:32 < skelterjohn> "<-ch" is like unlock
16:32 < dho> right
16:32 < rog> mutex is quite a bit more efficient, i recently discovered
16:32 < skelterjohn> not surprising
16:32 < rog> agreed
16:32 < skelterjohn> but you can use the chan trick to have a multi-mutex?
16:32 < rog> factor of 3 to 5
16:32 < skelterjohn> instead of 1, have n
16:32 < rog> that's true and it's a nice trick
16:32 < skelterjohn> and then you have n processes allowed in the protected
code
16:33 < rog> it works even better when you have actual objects in the
channel
16:33 < skelterjohn> mm yep that makes sense
16:33 * skelterjohn rewrites reduce
16:33 < rog> e.g.  objects to work on
16:33 < skelterjohn> yep
16:33 -!- sheki [n=sheki@115.240.66.211] has quit [Read error: 104 (Connection
reset by peer)]
16:34 < rog> or tokens representing some external resource.  that's a useful
idiom too.
16:34 < rog> skelterjohn: did you see this implementation of reduce?  it's
the best i've done so far: http://gopaste.org/view/3p52Z
16:36 < rog> dho: how many nodes are you likely to have in your tree, order
of magnitude?
16:38 < dho> i dunno, how many packages are in src/pkg?
16:38 -!- Kibiz0r [n=kibiyama@99-48-204-31.lightspeed.brhmmi.sbcglobal.net] has
joined #go-nuts
16:38 -!- diabolix [n=jsoyke@206.210.81.55] has joined #go-nuts
16:39 < rog> 300 ish
16:39 < rog> i say just spawn a process for each node
16:39 < dho> yep
16:39 < dho> i'm going with the way iant / skelterjohn suggested
16:39 -!- Kibiz0r [n=kibiyama@99-48-204-31.lightspeed.brhmmi.sbcglobal.net] has
quit [Client Quit]
16:39 < dho> no sort needed
16:39 < rog> each one just waits for its dependencies, executes and marks
itself as done
16:44 -!- iwikiwi [n=iwikiwi@202.3.77.160] has joined #go-nuts
16:45 < rog> something like this perhaps: http://gopaste.org/view/3ZPjY
16:46 < dho> yep
16:53 -!- oal [n=olav@5.79-160-122.customer.lyse.net] has quit [Remote closed the
connection]
16:54 -!- oal [n=olav@5.79-160-122.customer.lyse.net] has joined #go-nuts
16:55 < skelterjohn> rog: how does that work if there are fewer workers than
inputs?
16:55 < skelterjohn> it looks like you only read one input per worker and
don't read input otherwise
16:56 -!- tibshoot [n=tibshoot@linagora-230-146.pr0.nerim.net] has quit [Remote
closed the connection]
16:56 -!- b00m_chef [n=watr@d64-180-45-230.bchsia.telus.net] has joined #go-nuts
16:57 < skelterjohn> and regarding the compilation thing, you need to
consider the multi-path problem
16:58 < rog> skelterjohn: the done channels aren't inputs, they're flags,
like your mutexes except they hold the execution status of a dependency too
16:58 < skelterjohn> a package can be reached by multiple dependencies
16:58 < rog> skelterjohn: that's fine
16:58 < skelterjohn> it will get built twice!
16:58 < rog> not the "d.done <- ok" line
16:58 -!- oal [n=olav@5.79-160-122.customer.lyse.net] has quit [Remote closed the
connection]
16:58 < rog> oops
16:58 -!- Fish-Work [n=Fish@86.65.182.194] has quit [Read error: 104 (Connection
reset by peer)]
16:58 < skelterjohn> regarding reduce, again
16:58 < skelterjohn> i meant the reading from in
16:58 -!- skelterjohn [n=jasmuth@lawn-net168-in.rutgers.edu] has quit [Read error:
104 (Connection reset by peer)]
16:58 -!- raichoo [n=raichoo@i577AFD4F.versanet.de] has joined #go-nuts
16:59 < rog> yes, the start() function needs to start a node only if it
hasn't already been started
16:59 -!- skelterjohn [n=jasmuth@lawn-net168-in.rutgers.edu] has joined #go-nuts
16:59 < rog> oh sorry
16:59 < skelterjohn> oh wait i see another part where it says <-in that i
didn't see before
16:59 < skelterjohn> let me look again
16:59 -!- Fish-Work [n=Fish@86.65.182.194] has joined #go-nuts
16:59 -!- Fish-Work [n=Fish@86.65.182.194] has quit [Remote closed the connection]
16:59 < rog> all the workers are reading the same channel
16:59 < rog> it works well
17:01 -!- oal [n=olav@5.79-160-122.customer.lyse.net] has joined #go-nuts
17:01 < rog> there, that should be better: http://gopaste.org/view/T7PBP
17:03 -!- bugQ [n=bug@c-67-171-127-76.hsd1.ut.comcast.net] has joined #go-nuts
17:04 * skelterjohn goes to lunch
17:04 < rog> actually it seems to me that if you did postorder traversal,
you could easily limit the number of overall workers with no risk of deadlock
17:12 -!- defectiv [n=clays@75.101.111.19] has joined #go-nuts
17:12 -!- iant [n=iant@67.218.110.40] has quit [Read error: 110 (Connection timed
out)]
17:13 -!- Spaghettini [n=Spaghett@vaxjo6.150.cust.blixtvik.net] has joined
#go-nuts
17:17 -!- Paradox924X [n=Paradox9@vaserv/irc/founder] has quit ["~"]
17:18 -!- adiabatic [n=adiabati@dsl-206-55-130-248.tstonramp.com] has quit
["Rockin’ music will set you free."]
17:20 < dho> rog: don't you mean ok := <-d.done?
17:20 < dho> or rather ok = <-d.done
17:21 < rog> the var is redundant
17:21 < rog> i wrote it in a hurry, sorry!
17:22 < dho> so you meant var ok chan bool?
17:22 -!- raichoo [n=raichoo@i577AFD4F.versanet.de] has quit []
17:22 < rog> no, if you just delete the "var ok bool" line, it should be ok
17:22 < rog> not that i've compiled it or anything :-)
17:22 < dho> no, because you cant do !ok where ok is type chan bool :)
17:23 < rog> oh yes!
17:23 -!- iant [n=iant@nat/google/x-jfaqejdionwozvfn] has joined #go-nuts
17:23 -!- mode/#go-nuts [+v iant] by ChanServ
17:23 < rog> i do mean <-d.done
17:23 < rog> of course
17:23 < rog> d'oh
17:23 < dho> ok :)
17:23 < dho> that's what i thought
17:23 < rog> i've assumed that all the done channels are initialised with
make(chan bool, 1)
17:23 < rog> (in case you hadn't realised that)
17:25 * dho didn't feel like fixing up all his datastructures
17:25 < dho> but i did use the idiom, it works great.
17:25 < dho> thanks
17:26 < rog> cool
17:26 < dho> also for synchronizing back in main
17:26 < rog> yup.
17:26 -!- johan-s [n=johan@cm-84.215.111.48.getinternet.no] has joined #go-nuts
17:26 < dho> i can just do for package, waitchan := range waitMap { <- c;
fmt.Printf("%s done\n", p) }
17:26 < rog> you can just walk all the nodes reading the done chan
17:26 < dho> etc
17:26 < dho> yep
17:26 < dho> anyway, lunchtime
17:27 * dho brbl
17:27 < dho> :)
17:27 < rog> of course, you have to remember to put the value back!
17:27 < rog> lunch, i remember that
17:27 < rog> not today tho
17:36 -!- binaryjohn [n=binaryjo@cpe-24-30-132-50.san.res.rr.com] has quit []
17:36 -!- tumdum_ [n=tumdum@unaffiliated/tumdum] has quit []
17:37 -!- Diablo150 [n=Diablo15@ABordeaux-253-1-57-186.w82-125.abo.wanadoo.fr] has
joined #go-nuts
17:38 -!- codedread [i=180dd699@gateway/web/freenode/x-rbffucdxdrzevylq] has
joined #go-nuts
17:40 -!- gkmngrgn [n=gkmngrgn@unaffiliated/gkmngrgn] has joined #go-nuts
17:41 -!- Fraeon [n=kzer-za@e212-246-65-153.elisa-laajakaista.fi] has joined
#go-nuts
17:41 -!- gkmngrgn [n=gkmngrgn@unaffiliated/gkmngrgn] has quit [Read error: 104
(Connection reset by peer)]
17:42 -!- gkmngrgn [n=gkmngrgn@unaffiliated/gkmngrgn] has joined #go-nuts
17:42 -!- Dakoki [n=chavier2@192.Red-83-44-208.dynamicIP.rima-tde.net] has joined
#go-nuts
17:45 -!- fejes [n=fejes@134.87.4.251] has joined #go-nuts
17:45 -!- chickamade [n=chickama@123.16.85.231] has quit ["Leaving"]
17:46 < fejes> Simple Go question: what's the Golang equivalent to java's
System.in?  I can find how to print to the terminal, but nothing to get
information from the user at the terminal.
17:47 -!- chachan [n=chachan@ccscliente156.ifxnetworks.net.ve] has quit ["KVIrc
Insomnia 4.0.0, revision: , sources date: 20090520, built on: 2009/06/06 11:44:47
UTC http://www.kvirc.net/"]
17:50 < albino> os.Stdin has something to do with it from my googling
17:50 < ThunderChicken> fejes: the tutorial has you open /dev/stdin
17:50 < rog> os.Stdin is right
17:50 < fejes> oh!
17:50 < fejes> thanks...  I saw that but thought it was something else.
17:51 < defectiv> Are there any advanced first-person 3d shooter games
written in Go?
17:52 -!- smooge [n=smooge@int.smoogespace.com] has quit ["-ENOBRAIN"]
17:52 -!- smooge [n=smooge@int.smoogespace.com] has joined #go-nuts
17:52 < vegai> yeah, I wrote Doom 6 yesterday
17:52 * wayneeseguin blinks
17:53 < vegai> it ran at 90FPS on my old 586
17:53 -!- chickamade [n=chickama@123.16.85.231] has joined #go-nuts
17:59 -!- delsvr [n=delsvr@cpe-24-59-168-135.twcny.res.rr.com] has quit [Remote
closed the connection]
17:59 -!- RolaBlade [n=eddw@dsl-hkibrasgw2-fe23de00-241.dhcp.inet.fi] has joined
#go-nuts
18:01 < skelterjohn> vegal is elite
18:06 -!- trickie [n=trickie@94.100.112.225] has quit [Read error: 113 (No route
to host)]
18:11 -!- smcq_ [n=smcq@c-67-180-32-131.hsd1.ca.comcast.net] has joined #go-nuts
18:13 -!- trickie [n=trickie@86.93.227.181] has joined #go-nuts
18:18 -!- gkmngrgn [n=gkmngrgn@unaffiliated/gkmngrgn] has quit [Remote closed the
connection]
18:18 -!- Gracenotes [n=person@wikipedia/Gracenotes] has joined #go-nuts
18:21 -!- delsvr [n=delsvr@rrdhcp-68-424.redrover.cornell.edu] has joined #go-nuts
18:22 -!- jajamana [n=chrisb@cm-84.215.40.160.getinternet.no] has quit
["Leaving."]
18:22 -!- delsvr [n=delsvr@rrdhcp-68-424.redrover.cornell.edu] has quit [Remote
closed the connection]
18:23 -!- fwiffo [n=fwiffo@unaffiliated/fwiffo] has joined #go-nuts
18:23 -!- gkmngrgn [n=gkmngrgn@unaffiliated/gkmngrgn] has joined #go-nuts
18:24 -!- smcq_ [n=smcq@c-67-180-32-131.hsd1.ca.comcast.net] has quit [Remote
closed the connection]
18:26 -!- JSharpe [n=jamie@5ad1d7cf.bb.sky.com] has quit [Read error: 104
(Connection reset by peer)]
18:26 -!- JSharpe [n=jamie@90.209.215.207] has joined #go-nuts
18:29 -!- nanoo [n=nano@95-89-198-45-dynip.superkabel.de] has joined #go-nuts
18:29 -!- b00m_chef [n=watr@d64-180-45-230.bchsia.telus.net] has quit [Connection
timed out]
18:32 -!- p4p4 [n=P4p4@24.121.113.82.net.de.o2.com] has joined #go-nuts
18:33 -!- mitchellh [n=mitchell@c-24-9-124-156.hsd1.co.comcast.net] has joined
#go-nuts
18:35 -!- mitchellh [n=mitchell@c-24-9-124-156.hsd1.co.comcast.net] has quit
[Client Quit]
18:35 -!- kayo [n=kayo@201009071109.user.veloxzone.com.br] has joined #go-nuts
18:35 -!- bugQ [n=bug@c-67-171-127-76.hsd1.ut.comcast.net] has quit [Remote closed
the connection]
18:37 -!- gasreaa [n=atwong@nat/slide/x-yoeyyrlseibgcljl] has joined #go-nuts
18:37 -!- senneth [i=senneth@irssi/staff/senneth] has quit [Remote closed the
connection]
18:37 -!- senneth [i=senneth@irssi/staff/senneth] has joined #go-nuts
18:37 -!- mitchellh [n=mitchell@c-24-9-124-156.hsd1.co.comcast.net] has joined
#go-nuts
18:38 -!- pvanduse [n=pdusen@crob4-55.flint.umich.edu] has joined #go-nuts
18:38 -!- gasreaa [n=atwong@nat/slide/x-yoeyyrlseibgcljl] has left #go-nuts []
18:38 -!- JSharpe2 [n=jamie@5ad1d7cf.bb.sky.com] has joined #go-nuts
18:39 -!- super__ [n=super_@unaffiliated/lolsuper-/x-9881387] has joined #go-nuts
18:39 -!- carllerche [n=carllerc@enginey-9.border1.sfo002.pnap.net] has joined
#go-nuts
18:42 -!- lilpenguina [n=penguina@75.97.68.130.res-cmts.senj.ptd.net] has joined
#go-nuts
18:43 -!- Daminvar [n=Daminvar@129.21.121.159] has quit ["Leaving"]
18:43 -!- leitaox [n=leitaox@189.20.94.66] has quit [Client Quit]
18:46 -!- lilpenguina [n=penguina@75.97.68.130.res-cmts.senj.ptd.net] has quit
[Client Quit]
18:49 -!- Gracenotes [n=person@wikipedia/Gracenotes] has quit [Remote closed the
connection]
18:54 -!- triplez [n=triplez@bb219-74-214-167.singnet.com.sg] has quit []
18:55 -!- pvandusen [n=pdusen@crob4-55.flint.umich.edu] has quit [Read error: 110
(Connection timed out)]
18:55 -!- lolsuper_ [n=super_@unaffiliated/lolsuper-/x-9881387] has quit [Read
error: 110 (Connection timed out)]
18:55 -!- JSharpe [n=jamie@90.209.215.207] has quit [Connection timed out]
18:56 -!- mitchellh [n=mitchell@c-24-9-124-156.hsd1.co.comcast.net] has quit
["Leaving."]
18:57 -!- raichoo [n=raichoo@i577AFD4F.versanet.de] has joined #go-nuts
18:57 -!- alc [n=alc@114.245.252.202] has quit []
18:57 -!- crakrjak [n=merc@rrcs-70-62-156-154.central.biz.rr.com] has quit
["http://www.securitywire.com"]
18:58 -!- chachan [n=chachan@ccscliente156.ifxnetworks.net.ve] has joined #go-nuts
18:58 < kimelto> moin
18:59 < skelterjohn> hi
18:59 < skelterjohn> assuming that's short for "morning"
18:59 < plexdev> http://is.gd/5sErC by [Robert Griesemer] in 2 subdirs of
go/src/pkg/ -- removed semantic check from parsers
18:59 < plexdev> http://is.gd/5sErE by [Robert Griesemer] in
go/src/pkg/go/scanner/ -- report an error for illegal octal numbers instead of
treating them as floats
19:04 -!- Dakoki [n=chavier2@192.Red-83-44-208.dynamicIP.rima-tde.net] has quit
["( www.nnscript.com :: NoNameScript 4.22 :: www.esnation.com )"]
19:05 -!- Netsplit kornbluth.freenode.net <-> irc.freenode.net quits: zum,
RooTer, mat_
19:08 -!- mitchellh [n=mitchell@c-24-9-124-156.hsd1.co.comcast.net] has joined
#go-nuts
19:10 -!- bugQ [n=bug@c-76-23-49-226.hsd1.ut.comcast.net] has joined #go-nuts
19:12 -!- JSharpe2 [n=jamie@5ad1d7cf.bb.sky.com] has quit [Read error: 60
(Operation timed out)]
19:15 -!- Netsplit over, joins: mat_, zum, RooTer
19:16 -!- Netsplit kornbluth.freenode.net <-> irc.freenode.net quits: zum,
RooTer, mat_
19:18 -!- Netsplit over, joins: mat_, zum, RooTer
19:21 -!- JSharpe [n=jamie@5ad1d7cf.bb.sky.com] has joined #go-nuts
19:21 -!- bug- [n=bug@c-67-171-127-76.hsd1.ut.comcast.net] has joined #go-nuts
19:21 -!- xerox [n=xerox@151.61.160.246] has joined #go-nuts
19:24 -!- triplez [n=triplez@cm52.sigma225.maxonline.com.sg] has joined #go-nuts
19:31 -!- smooge [n=smooge@int.smoogespace.com] has quit [Read error: 113 (No
route to host)]
19:31 < plexdev> http://is.gd/5sG4q by [Robert Griesemer] in
go/src/pkg/exp/eval/ -- fix build, enable an exp/eval's assignment check
19:31 -!- Diablo150 [n=Diablo15@ABordeaux-253-1-57-186.w82-125.abo.wanadoo.fr] has
quit ["Quitte"]
19:40 -!- mitchellh [n=mitchell@c-24-9-124-156.hsd1.co.comcast.net] has left
#go-nuts []
19:42 -!- stevenyvr [n=schan@76-10-184-108.dsl.teksavvy.com] has joined #go-nuts
19:44 -!- RolaBlade [n=eddw@dsl-hkibrasgw2-fe23de00-241.dhcp.inet.fi] has quit
["Leaving"]
19:47 -!- bugQ [n=bug@c-76-23-49-226.hsd1.ut.comcast.net] has quit [Read error:
110 (Connection timed out)]
19:47 -!- iwikiwi [n=iwikiwi@202.3.77.160] has quit ["Computer has gone to sleep"]
19:51 < dho> http://pastebin.com/f172b5f00
19:51 -!- adiabatic [n=adiabati@dsl-206-55-130-248.tstonramp.com] has joined
#go-nuts
19:52 < dho> obviously things like syscall aren't right
19:52 -!- ziyu4huang [n=ziyu_hua@220-133-3-82.HINET-IP.hinet.net] has joined
#go-nuts
19:54 -!- smcq_ [n=smcq@c-67-164-97-141.hsd1.ca.comcast.net] has joined #go-nuts
20:02 < skelterjohn> cool, i think
20:02 < skelterjohn> lot of text
20:03 -!- smcq_ [n=smcq@c-67-164-97-141.hsd1.ca.comcast.net] has quit
["Leaving..."]
20:03 < dho> looks correct to me
20:03 < dho> trying to think of how things like syscall/os/file/net should
work
20:04 < skelterjohn> ?
20:04 < dho> i either need to bake that in (gross) or make a gobuildfile
20:04 < dho> and making a gobuildfile = thought on how that's supposed to
work
20:06 < skelterjohn> what is the problem
20:06 < skelterjohn> what happens with syscall/os/file/net
20:06 < dho> packages like syscall/os/file/net have os and arch specific .go
files.
20:06 < dho> and os+arch specific .go files
20:07 < skelterjohn> i see
20:07 < skelterjohn> so rather than C-style macros that switch on OS, we
have completely different source files that need to be specified in the builder
20:08 -!- smcq_ [n=smcq@c-67-164-97-141.hsd1.ca.comcast.net] has joined #go-nuts
20:08 < dho> doing it with macros would be a huge pain in the ass
20:08 < dho> especially for syscall
20:08 < skelterjohn> not saying the C solution is better
20:08 < skelterjohn> just making sure i understood
20:08 < dho> but yes
20:08 < dho> overhead + pain-in-the-assness != worth it
20:08 < dho> unfortunately
20:09 -!- Fl1pFl0p [n=FlipFlop@ip68-8-225-187.sd.sd.cox.net] has joined #go-nuts
20:11 -!- iwikiwi [n=iwikiwi@202.3.77.160] has joined #go-nuts
20:12 < skelterjohn> i think some sort of gb file could work
20:12 < skelterjohn> something that just says which files in a directory to
consider, based on a number of flags
20:13 < skelterjohn> not like a makefile, because it doesn't say *how* to do
anything, and if you don't have one it's just "all relevant looking files"
20:15 < dho> I guess the only real exceptional things (for now) are GOOS and
GOARCH
20:15 -!- gasreaa [n=atwong@nat/slide/x-swpovappkrbibxpc] has joined #go-nuts
20:15 < skelterjohn> you could have other flags too
20:15 < skelterjohn> a DEBUG flag would be useful
20:16 -!- gasreaa [n=atwong@nat/slide/x-swpovappkrbibxpc] has left #go-nuts []
20:16 < dho> i hate parsing.
20:17 < skelterjohn> http://pastebin.com/m7090af4b
20:17 < skelterjohn> simple parsing.  just need a split funciton
20:18 -!- zuser [n=nonet@c-69-181-203-73.hsd1.ca.comcast.net] has joined #go-nuts
20:19 < dho> good start; thinking i'd need something more like
http://pastebin.com/m128cc8f0
20:19 < skelterjohn> that seems more appropriate, yeah
20:19 < skelterjohn> debug=TRUE instead of flags=DEBUG
20:20 < dho> hm, true
20:20 < skelterjohn> unless = means "contains" rather than "equals"
20:20 < dho> yeah, but then how do you delimit that.
20:20 < skelterjohn> won't want to
20:20 < dho> parens and spaces seems dumb
20:20 < dho> yeah
20:20 < skelterjohn> single value flags would cover all reasonable cases i
can think of
20:21 < skelterjohn> a shorthand could be just "debug" which fires if debug
has been set to anything
20:23 < dho> *nods*
20:24 < skelterjohn> have fun deciding how to deal with multi-line file
lists :)
20:25 < dho> strict parens :)
20:25 < skelterjohn> consistent with go code
20:25 < dho> backticks
20:25 < skelterjohn> ew
20:26 < skelterjohn> don't need backticks.  if you don't want to use parens,
you can say "either a line defines the triggers, and i use those, or it doesn't
(there is no ':'), in which case i use the previous line's"
20:27 < dho> for now my solution is `dont do that'
20:27 < skelterjohn> :)
20:27 < skelterjohn> does your stuff compile the c files too?
20:27 < dho> no.
20:27 < dho> (so runtime doesn't work)
20:28 < skelterjohn> perhaps for non go code, the pkg.gb file can specify a
makefile taht can be run
20:28 < skelterjohn> that way you don't have to worry about implementing
everyone's mom's code builder
20:28 < skelterjohn> or not a makefile, but a command line
20:28 < skelterjohn> even easier
20:28 < dho> i like that sort of
20:28 < dho> i'd like to be able to build src/cmd with it too
20:28 < skelterjohn> people can built the rest with whatever they want
(scons, etc)
20:29 < dho> at the moment, don't really care about `people'
20:29 < skelterjohn> pays to be forward thinking
20:29 < dho> well it's not designed to not be extended
20:29 < skelterjohn> especially since it's likely that this could make it
into the distribution
20:30 < dho> well, since russ asked if i wanted to write it, that's the
intention
20:30 < dho> <_<
20:30 < skelterjohn> :)
20:30 < dho> the bootstrapping part will be funny
20:33 < plexdev> http://is.gd/5sJCA by [Adam Langley] in 3 subdirs of go/ --
runtime: fix race condition
20:33 < dho> hm
20:34 -!- illya77 [n=illya77@133-154-133-95.pool.ukrtel.net] has joined #go-nuts
20:34 < dho> things like pkg/runtime will also be interesting since they
have subdirs that have things that are part of the package.
20:35 -!- ikke [n=ikkibr@unaffiliated/ikkebr] has quit []
20:35 < dho> so it sort of breaks the convention a bit
20:36 -!- mauke_ [n=mauke@p3m/member/mauke] has joined #go-nuts
20:36 < skelterjohn> in runtime, it looks like those subdirs don't have go
code
20:36 < skelterjohn> just c code
20:36 < skelterjohn> aka not your problem
20:36 < dho> i still need to build the c code
20:37 < skelterjohn> right, so runtime.gb has a line "exec: make" or
something
20:37 < skelterjohn> and the makefile takes care of it
20:37 < dho> i think for now i'm going to assume if there's a .gb file, any
subdirectories are pointless
20:37 < dho> if i can't replace makefiles, i'm not doing any good
20:38 -!- chickamade [n=chickama@123.16.85.231] has quit ["Leaving"]
20:38 < skelterjohn> i don't think gb should have to know how to build non
go source
20:39 < skelterjohn> too many other possible languages.  if you wanted to
support them all you'd have to have a complex set of rules like scons or make
20:39 < skelterjohn> just have it shunt that load to scons, or make
20:39 < skelterjohn> go source is simpler
20:39 -!- nanooo [n=nano@95-89-198-45-dynip.superkabel.de] has joined #go-nuts
20:40 < dho> building stuff in runtime isn't hard
20:40 < dho> it's not like i'm compiling with gcc anyway
20:41 < skelterjohn> maybe runtime is simple, but some random guy's set of C
files that have all sorts of special cases is not as simple to build
20:41 < skelterjohn> maybe the C code in this guy's package is really just
to interface with some fortran that also needs to get built
20:41 < dho> i'll cross that bridge when the language gets to it :)
20:42 <+iant> to make a build system useful it needs to consider generated
files created during the build and then compiled
20:42 < skelterjohn> just cross it now - allow the gb file to specify a
command line to compile the non-go code
20:42 -!- mauke [n=mauke@p3m/member/mauke] has quit [Nick collision from
services.]
20:42 < dho> iant: like the stuff in syscall, agreed.
20:43 < dho> but i don't think the answer to that is `let make do it'
20:44 < dho> aw shit, it's going to have to accept deps in the .gb too.
20:44 < skelterjohn> if you don't, you multiply the complexity of your
builder by <insert some large number pulled out of my butt)
20:44 < skelterjohn> >
20:44 -!- mitchellh [n=mitchell@97-118-158-109.hlrn.qwest.net] has joined #go-nuts
20:45 < dho> skelterjohn: the most complex things are runtime, which needs
Xc and Xa, and syscall, which may have extra dependencies depending on whether
you've deleted zsys*.go
20:46 -!- mitchellh [n=mitchell@97-118-158-109.hlrn.qwest.net] has left #go-nuts
[]
20:46 < skelterjohn> if this is a tool whose only purpose is to build the go
distribution, then that's all you need
20:47 * dho doesn't understand why its so imperative to have all or nothing right
away
20:47 < dho> it's intended for that, yes, but it should also be generally
useful at some point
20:47 < dho> either way, it will need to become a little more complex
20:51 < dho> hm
20:51 < dho> iant: to be fair, there isn't really anything right now that
generates files.  the build process doesn't know how to generate
zsyscall/zerrors/zsysnum/ztypes
20:51 < fejes> ok, I'm stumped.
20:52 < dho> hm, runtime/ does generate some stuff.
20:52 < fejes> Can anyone point me to an example where someone uses golang
to do a simple write to the screen as a prompt, and then read a simple line of
user input?
20:54 -!- afurlan [n=afurlan@scorpion.mps.com.br] has quit ["Leaving"]
20:55 -!- nanoo [n=nano@95-89-198-45-dynip.superkabel.de] has quit [Connection
timed out]
20:55 -!- nanoo [n=nano@95-89-198-45-dynip.superkabel.de] has joined #go-nuts
20:56 < fejes> no one?
20:58 < skelterjohn> http://gopaste.org/view/26goj
20:58 < skelterjohn> gotta give me time to type
21:02 -!- nanooo [n=nano@95-89-198-45-dynip.superkabel.de] has quit [Read error:
110 (Connection timed out)]
21:02 < fejes> i'm definitely patient...
21:02 < fejes> and thank you for the link.
21:03 < fejes> bufio.
21:03 < fejes> thanks.  that was the key I was completely missing.
21:03 < fejes> thanks.
21:03 < skelterjohn> np
21:04 -!- iwikiwi [n=iwikiwi@202.3.77.160] has quit ["Computer has gone to sleep"]
21:06 -!- illya77 [n=illya77@133-154-133-95.pool.ukrtel.net] has quit []
21:06 -!- tedster1 [n=tedster@cpe-009231.dhcp009.wadsnet.net] has joined #go-nuts
21:07 -!- tedster1 [n=tedster@cpe-009231.dhcp009.wadsnet.net] has left #go-nuts []
21:09 -!- codehai [n=codehai@xdsl-78-34-37-157.netcologne.de] has quit [Client
Quit]
21:11 -!- mitchellh [n=mitchell@97-118-158-109.hlrn.qwest.net] has joined #go-nuts
21:12 -!- mitchellh [n=mitchell@97-118-158-109.hlrn.qwest.net] has left #go-nuts
[]
21:13 -!- codehai [n=codehai@xdsl-78-34-37-157.netcologne.de] has joined #go-nuts
21:15 -!- webbpa [n=chatzill@74-92-20-90-NewEngland.hfc.comcastbusiness.net] has
joined #go-nuts
21:18 -!- |chachan| [n=chachan@ccscliente156.ifxnetworks.net.ve] has joined
#go-nuts
21:18 -!- chachan [n=chachan@ccscliente156.ifxnetworks.net.ve] has quit [Read
error: 104 (Connection reset by peer)]
21:18 -!- |chachan| [n=chachan@ccscliente156.ifxnetworks.net.ve] has quit [Client
Quit]
21:21 -!- bugQ [n=bug@c-67-171-127-76.hsd1.ut.comcast.net] has quit ["but don't be
sad."]
21:23 -!- tedster [n=tedster@67.23.158.117] has quit [Read error: 110 (Connection
timed out)]
21:24 -!- fwiffo [n=fwiffo@unaffiliated/fwiffo] has quit []
21:25 -!- rog [n=rog@89.241.238.36] has quit []
21:29 -!- rog [n=rog@89.241.238.36] has joined #go-nuts
21:31 -!- webbpa [n=chatzill@74-92-20-90-NewEngland.hfc.comcastbusiness.net] has
quit ["ChatZilla 0.9.86 [Firefox 3.5.5/20091102152451]"]
21:32 -!- cmarcelo [n=cmarcelo@enlightenment/developer/cmarcelo] has quit
["leaving"]
21:40 -!- codedread [i=180dd699@gateway/web/freenode/x-rbffucdxdrzevylq] has quit
["Page closed"]
21:43 -!- chachan [n=chachan@ccscliente156.ifxnetworks.net.ve] has joined #go-nuts
21:44 -!- rog [n=rog@89.241.238.36] has quit []
21:45 -!- nf [n=nf@124-168-152-7.dyn.iinet.net.au] has joined #go-nuts
21:47 -!- defectiv [n=clays@75.101.111.19] has quit ["This computer has gone to
sleep"]
21:47 -!- smooge [n=smooge@int.smoogespace.com] has joined #go-nuts
21:47 -!- defectiv [n=clays@75.101.111.19] has joined #go-nuts
21:49 < plexdev> http://is.gd/5sOoS by [Rob Pike] in go/src/pkg/bytes/ --
new comments for bytes.NewBuffer and NewBufferString.
21:53 -!- zuser [n=nonet@c-69-181-203-73.hsd1.ca.comcast.net] has left #go-nuts []
22:01 < fejes> how do you create a new io.Writer object that points to a
file?
22:02 -!- chachan [n=chachan@ccscliente156.ifxnetworks.net.ve] has quit ["KVIrc
Insomnia 4.0.0, revision: , sources date: 20090520, built on: 2009/06/06 11:44:47
UTC http://www.kvirc.net/"]
22:02 -!- sliceofpi [n=sliceofp@c-98-194-205-176.hsd1.tx.comcast.net] has quit
["Computer has gone to sleep"]
22:02 < fejes> I've found plenty of examples for opening io.Stdout, but
nothing for a file name.
22:02 < fluffle> iow := io.NewWriter(file) ?
22:02 < fejes> I tried that.
22:02 < fluffle> ah you need to actually open the file first
22:03 < fejes> that makes sense..
22:03 < fluffle> see os.File etc.
22:03 < fejes> fd, err := os.Open(name, os.O_RDONLY, 0);
22:03 < fejes> ?
22:03 < fluffle> in particular i suspect os.Open()
22:04 < fluffle> and io.NewWriter(fd) should sort you
22:04 -!- melba [n=blee@unaffiliated/lazz0] has quit [Read error: 104 (Connection
reset by peer)]
22:04 < fejes> thanks..
22:04 < fluffle> see also bufio
22:04 < fejes> logical.
22:04 < fejes> yes, I was just pointed to bufio a liittle while ago.
22:04 -!- melba [n=blee@unaffiliated/lazz0] has joined #go-nuts
22:04 < fluffle> which is nicer than io if you e.g.  need to read the file
in a line-oriented manner
22:04 < fejes> very helpful advice, that.
22:09 -!- codedread [i=180dd699@gateway/web/freenode/x-btyfuqjfjymjscei] has
joined #go-nuts
22:10 -!- carllerche_ [n=carllerc@enginey-9.border1.sfo002.pnap.net] has joined
#go-nuts
22:12 -!- hooopy [i=hoopy@173-30-98-140.client.mchsi.com] has joined #go-nuts
22:12 -!- hooopy_ [i=hoopy@173-30-98-140.client.mchsi.com] has quit [Read error:
54 (Connection reset by peer)]
22:12 -!- nanoo [n=nano@95-89-198-45-dynip.superkabel.de] has quit ["Leaving"]
22:12 -!- eulenspiegel [n=irssi@p579CAC22.dip.t-dialin.net] has joined #go-nuts
22:12 -!- smooge [n=smooge@int.smoogespace.com] has quit ["-ENOBRAIN"]
22:13 -!- carllerche [n=carllerc@enginey-9.border1.sfo002.pnap.net] has quit [Read
error: 60 (Operation timed out)]
22:13 -!- carllerche_ [n=carllerc@enginey-9.border1.sfo002.pnap.net] has quit
[Read error: 54 (Connection reset by peer)]
22:16 -!- smooge [n=smooge@int.smoogespace.com] has joined #go-nuts
22:16 -!- codedread [i=180dd699@gateway/web/freenode/x-btyfuqjfjymjscei] has quit
["Page closed"]
22:18 -!- delsvr [n=delsvr@cpe-24-59-168-135.twcny.res.rr.com] has joined #go-nuts
22:21 -!- Vova [n=Vova@80.178.30.152.adsl.012.net.il] has quit [Read error: 110
(Connection timed out)]
22:23 -!- Adys [n=Adys@unaffiliated/adys] has quit [Read error: 60 (Operation
timed out)]
22:31 -!- tabo` [n=tabot@camelot.tabo.pe] has joined #go-nuts
22:31 -!- JBeshir_ [n=namegduf@138-38-226-61.resnet.bath.ac.uk] has joined
#go-nuts
22:31 -!- zidoh_ [n=bjornar@pyrrophlagalon.nithia.net] has joined #go-nuts
22:31 -!- cpach_ [n=FOO@c-e2a472d5.031-102-73746f34.cust.bredbandsbolaget.se] has
joined #go-nuts
22:31 -!- JoLeClodo [n=JoLeClod@vian.wallinfire.net] has joined #go-nuts
22:31 -!- exitstat1 [n=xorl@xorl.xen.prgmr.com] has joined #go-nuts
22:31 -!- nickjohn1on [n=arachnid@coilette.notdot.net] has joined #go-nuts
22:32 -!- SRabbelier [n=SRabbeli@ip138-114-211-87.adsl2.static.versatel.nl] has
quit [Nick collision from services.]
22:32 -!- sfuentes [n=sfuentes@cpe-98-154-70-216.socal.res.rr.com] has joined
#go-nuts
22:32 -!- [dmp] [n=dennis@static.251.110.40.188.clients.your-server.de] has joined
#go-nuts
22:32 -!- SJS [n=bofh@dsl093-032-217.snd1.dsl.speakeasy.net] has joined #go-nuts
22:32 -!- Solver [n=robert@capella.opentrend.net] has joined #go-nuts
22:32 -!- Norgg_ [n=norgg@norgg.org] has joined #go-nuts
22:32 -!- eek [n=eivind@213-155-151-233.customer.teliacarrier.com] has joined
#go-nuts
22:32 -!- shawn_ [n=shawn@208-78-98-92.slicehost.net] has joined #go-nuts
22:32 -!- beneth`_ [n=beneth`@beneth.fr] has joined #go-nuts
22:32 -!- bengl_ [n=benglish@oasis.nexus.carleton.ca] has joined #go-nuts
22:32 -!- Netsplit kornbluth.freenode.net <-> irc.freenode.net quits:
mpurcell|bed, tabo, mjburgess, mauke, tav, Norgg, [dmp]_, JoLeClodo2, Guest39427,
Wiz126, (+25 more, use /NETSPLIT to show all of them)
22:32 -!- _mjburgess [n=michael@m1.mjburgess.co.uk] has joined #go-nuts
22:32 -!- trez_ [n=trez@c-89-233-232-78.cust.bredband2.com] has joined #go-nuts
22:32 -!- whiteley_ [n=bart@nat/novell/x-mugnaumsloaawpcw] has joined #go-nuts
22:32 -!- mauke_ [n=mauke@95-88-118-220-dynip.superkabel.de] has joined #go-nuts
22:32 -!- korfuri [n=korfuri@eth0.korfuri.fr] has joined #go-nuts
22:32 -!- tav_ [n=tav@89.243.205.194] has joined #go-nuts
22:32 -!- Netsplit over, joins: madmoose
22:32 -!- irc [n=irc@209.17.191.58] has joined #go-nuts
22:32 -!- SRabbelier1 [n=SRabbeli@ip138-114-211-87.adsl2.static.versatel.nl] has
joined #go-nuts
22:32 -!- Netsplit over, joins: cworth
22:32 -!- mpurcell [n=mpurcell@sholes.info] has joined #go-nuts
22:32 -!- dho [n=dho@onager.omniti.com] has joined #go-nuts
22:32 -!- Netsplit over, joins: evilhackerdude
22:32 -!- clip9 [n=tj@12.81-166-62.customer.lyse.net] has joined #go-nuts
22:33 -!- Netsplit over, joins: lmoura
22:36 -!- Netsplit over, joins: gnibbler
22:37 -!- Netsplit over, joins: Demp
22:38 -!- Netsplit over, joins: Wiz126
22:38 -!- jlouis [i=jlouis@130.225.165.29] has quit ["leaving"]
22:38 -!- Netsplit over, joins: preflex
22:39 -!- jlouis [i=jlouis@130.225.165.29] has joined #go-nuts
22:40 -!- adiabatic [n=adiabati@dsl-206-55-130-248.tstonramp.com] has quit
["Rockin’ music will set you free."]
22:41 < dho> skelterjohn: http://bitbucket.org/dhobsd/goober/overview/ in
case you care
22:42 < skelterjohn> goober, lol
22:43 -!- slashus2 [n=slashus2@74-137-26-8.dhcp.insightbb.com] has joined #go-nuts
22:44 < dho> i ended up adding topsort back in just to barf on cycles
22:44 < skelterjohn> that is reasonable
22:44 < dho> this code is really not very pretty
22:45 < dho> there's http://code.google.com/p/gomake, i looked at that, and
it's much nicer
22:46 -!- delsvr [n=delsvr@cpe-24-59-168-135.twcny.res.rr.com] has quit [Remote
closed the connection]
22:46 < dho> comments welcome
22:46 -!- Adys [n=Adys@unaffiliated/adys] has joined #go-nuts
22:48 -!- woremacx [n=woremacx@unaffiliated/woremacx] has joined #go-nuts
22:48 < skelterjohn> i don't have git :(
22:48 < dho> it's hg.
22:48 < skelterjohn> oh there are hg instructinos
22:49 < skelterjohn> why did i think it was git...
22:49 < dho> bitbucket = hg
22:49 < dho> github = git
22:49 < dho> it's the same site with different rcs
22:49 < dho> that's why
22:49 < dho> i get confused all the time because they look exactly the same
22:49 < skelterjohn> right
22:50 < skelterjohn> how do i use it
22:50 -!- Demp [i=sbnc@213.8.254.240] has quit [K-lined]
22:50 < dho> there should be a clone url for you in the overview page.
22:50 -!- tomestla [n=tom@87.100.115.221] has quit ["Leaving."]
22:50 < skelterjohn> i meant
22:50 < skelterjohn> once i've built it
22:50 < skelterjohn> how do i use it to compile something
22:50 < dho> you don't; it doesn't actually compile anything :)
22:50 < skelterjohn> oh
22:51 < skelterjohn> it needs some work.
22:51 -!- [[sroracle]] [n=sroracle@c-98-215-178-14.hsd1.in.comcast.net] has joined
#go-nuts
22:51 < dho> it needs me to put the exec.Run in build.go in all the right
places
22:51 < dho> and it only compiles packages; it doesn't compile package main
right now
22:52 < skelterjohn> is there anything i can do to get it to do something?
22:52 < dho> but, assuming you have a package, if I add that, it should just
work (maybe)
22:52 -!- werdan7 [n=w7@freenode/staff/wikimedia.werdan7] has quit [Success]
22:53 -!- Demp [i=sbnc@high.society.vgames.co.il] has joined #go-nuts
22:53 < fejes> sorry, what's the best way to close a file?
22:53 < fejes> I was expecting to find an os.Close() to match os.Open()
22:53 < fejes> but I don't seem to see one.
22:53 < dho> file.Close?
22:53 < jlouis> the file itself has a closer
22:53 -!- werdan7 [n=w7@freenode/staff/wikimedia.werdan7] has joined #go-nuts
22:53 < fejes> oh, on the file.
22:53 < fejes> hah.
22:53 < fejes> trivial, yet again.
22:53 < jlouis> fejes: look up the defer keyword as well, it might help you
22:53 < fejes> just not getting the ZEN of this yet.
22:53 < fejes> defer.  ok, thanks
22:54 -!- [[sroracle]] [n=sroracle@unaffiliated/sroracle] has quit [Client Quit]
22:54 -!- [[sroracle]] [n=sroracle@c-98-215-178-14.hsd1.in.comcast.net] has joined
#go-nuts
22:54 < fluffle> uriel: http://github.com/fluffle/goirc/ -- could you add
this to your page?
22:57 -!- Demp [i=sbnc@high.society.vgames.co.il] has quit [K-lined]
22:58 -!- skelterjohn [n=jasmuth@lawn-net168-in.rutgers.edu] has quit []
22:59 < dho> aw
22:59 < dho> i was going to tell him to re-pull
23:00 -!- oal [n=olav@5.79-160-122.customer.lyse.net] has quit [Remote closed the
connection]
23:01 < fluffle> fejes: are you reading the package documentation?  start a
local godoc with eg: godoc -http=:8080 &; then browse to
http://localhost:8080/pkg/ for documentary goodness
23:01 < fejes> no, I haven't been looking at that.
23:01 < fejes> thanks.
23:02 < fluffle> np
23:02 < fluffle> it's just a local mirror of http://golang.org/pkg/ but v.
handy for development away from the internets
23:02 < fejes> oh, yeah,
23:02 < fejes> I have internet, and I have been looking at golang.org
23:03 < fejes> I seem to learn new languages best from examples, and in this
case, I'm having difficulty finding examples.
23:03 < fluffle> there aren't so many around
23:03 < fluffle> the docs are good though
23:03 < fluffle> here's a great place to get some code
23:04 < fejes> yeah, the docs are fairly complete, but I'm still floundering
a bit with applying everything.
23:04 < fejes> anyhow, I appreciate that you guys are able to point me in
the right direction.
23:04 < fluffle> uriel has a site that is trying to collect libs etc.
written by the community: http://go-lang.cat-v.org/
23:04 -!- Netsplit kornbluth.freenode.net <-> irc.freenode.net quits: mat_,
zum, RooTer
23:04 < fluffle> you can find a fair bit of example code linked from there
23:04 < fejes> my ultimate goal is to create some golang libraries for
biological computing.
23:04 -!- Netsplit over, joins: mat_, zum, RooTer
23:05 < fluffle> oo, nice
23:05 < ShadowIce> dho: http://code.google.com/p/gobuild/ ;)
23:05 < fejes> I've done the same for java and 2nd generation sequencing
libraries...
23:05 < fejes> but switching languages is always a slow process for the
first couple of hours for me.
23:05 < fejes> after that, I'll get the flow, and won't have to ask so many
dumb questions.
23:07 < fejes> anyhow, I haven't written code in a text editor in ages, so
I'm enjoying the retro nostalgia.  (-;
23:08 -!- p4p4 [n=P4p4@24.121.113.82.net.de.o2.com] has quit ["ChatZilla 0.9.84
[SeaMonkey 2.0a3/20090223135443]"]
23:08 < fluffle> get some vim on :D
23:08 < fejes> heh.
23:08 < fejes> I figured nano would be fun for now.  (-;
23:09 -!- Netsplit kornbluth.freenode.net <-> irc.freenode.net quits: mat_,
zum, RooTer
23:09 < fejes> if I'm feeling masochistic, maybe I'll try to learn emacs at
the same time.
23:09 -!- Netsplit over, joins: mat_, zum, RooTer
23:10 -!- mat_ [n=mat@mx3.absolight.net] has quit [Remote closed the connection]
23:11 -!- Netsplit kornbluth.freenode.net <-> irc.freenode.net quits: zum,
RooTer
23:11 -!- Netsplit over, joins: zum, RooTer
23:12 -!- mat_ [n=mat@mx3.absolight.net] has joined #go-nuts
23:12 -!- Netsplit kornbluth.freenode.net <-> irc.freenode.net quits: mat_,
zum, RooTer
23:13 -!- Netsplit over, joins: mat_, zum, RooTer
23:14 -!- woremacx [n=woremacx@unaffiliated/woremacx] has left #go-nuts
["Leaving..."]
23:15 -!- diabolix [n=jsoyke@206.210.81.55] has left #go-nuts ["Leaving"]
23:18 -!- General1337 [n=support@71-84-247-187.dhcp.gldl.ca.charter.com] has
joined #go-nuts
23:19 < fejes> ok, I think I've got a working program, but no file is being
created.
23:19 < fejes> I'm flushing at the end...
23:19 < fejes> and closing the file.
23:19 < fejes> and it doesn't throw an error at compile or run time.
23:20 < fejes> am I missing a step?
23:22 <+iant> are you creating the file in a goroutine?
23:22 < fejes> yes...
23:22 < fejes> should I pastebin the code?
23:23 <+iant> returning from main will exit the program even if there are
goroutines still running
23:23 < fejes> oh,
23:23 < fejes> this is all in func main
23:23 <+iant> no go statements?
23:24 < fejes> http://pastebin.com/d3b3ecf34
23:24 < fejes> this is all really trivial stuff, but I thought it it should
create a file at the end.
23:24 <+iant> err == nil means that the call to os.Open succeeded
23:24 < fejes> ah.
23:24 <+iant> so the sense of your test is reversed
23:24 < fejes> *laughs*
23:24 < fejes> thanks.
23:25 <+iant> something like fmt.Println("failed:", err) will print the
error
23:25 <+iant> that is, errors print as meaningful strings
23:25 -!- binaryjohn [n=binaryjo@cpe-24-30-132-50.san.res.rr.com] has joined
#go-nuts
23:25 <+iant> you probably want to add O_CREATE to your flags unless the
file already exists
23:25 <+iant> to the flags passed to os.Open
23:26 < fejes> yeah, thanks...
23:26 < fejes> that's exactly what I discovered, now that you've shown me
how to print the error.
23:28 < fejes> it creates it with 000 permisions, tho.
23:28 < fejes> that was unexpected.
23:29 -!- scarabx [n=scarabx@c-24-147-239-120.hsd1.ma.comcast.net] has joined
#go-nuts
23:29 < fejes> so, I guess I have to create the file, set the permissions,
then open it again as write only?
23:32 -!- ShadowIce [i=pyoro@unaffiliated/shadowice-x841044] has quit
["Verlassend"]
23:33 -!- smcq_ [n=smcq@c-67-164-97-141.hsd1.ca.comcast.net] has quit [Remote
closed the connection]
23:33 < fejes> ok, that works.  except that file.Chmod(666); is setting odd
permissions, it's working.
23:34 < fejes> Chmod(0666) works, tho
23:35 -!- ggbbgg [n=russ@c-24-6-33-44.hsd1.ca.comcast.net] has joined #go-nuts
23:35 < fejes> and this is why I like to use examples!
23:35 <+iant> fejes: the third argument to os.Open is the mode to use when
creating the file
23:35 <+iant> you can just pass 0666 there rather than calling os.Chmod
23:36 < fejes> ah, missed that.
23:36 < fejes> but you still have to re-open it with O_RWONLY, right?
23:36 <+iant> do you mean O_WRONLY?  you can use O_WRONLY | O_CREATE, 0666;
that should work fine
23:37 -!- General13372 [n=support@71-84-247-187.dhcp.gldl.ca.charter.com] has quit
[Connection timed out]
23:37 < fejes> sorry, yes, that's what I meant.  typographical error.
23:39 < fejes> ah, and doing it that way just appends to the top.
23:39 -!- codehai [n=codehai@xdsl-78-34-37-157.netcologne.de] has quit [Client
Quit]
23:43 < fluffle> fejes: i feel i ought to point out that the parameters to
open are documented fairly clearly : http://golang.org/pkg/os/#File.Open
23:44 < fejes> yes, I read them, I hadn't realized you could combine them
23:44 < fejes> nor did it suggest that 666 is different than 0666.
23:44 < fejes> just small details that you probably take for granted.
23:44 -!- skelterjohn [n=jasmuth@c-76-99-92-193.hsd1.nj.comcast.net] has joined
#go-nuts
23:46 < fluffle> well, yes, they are the same as many other languages.
admittedly the former could be documented better (giving an example that ORs
together two flags, perhaps), and the latter is the difference between decimal 666
and octal 0666 and isn't really an issue with Open()
23:47 < fluffle> i suspect the people commenting the code are inherently
familiar with how opening a file generally works on a unix system and thus didn't
make their explanations clear enough
23:47 < dho> skelterjohn: pull -u, i got buildy stuff in.
23:51 -!- defectiv [n=clays@75.101.111.19] has quit ["This computer has gone to
sleep"]
23:51 -!- ggbbgg [n=russ@c-24-6-33-44.hsd1.ca.comcast.net] has quit [Remote closed
the connection]
23:53 -!- defectiv [n=clays@75.101.111.19] has joined #go-nuts
23:53 < skelterjohn> how do i use it?
23:57 < dho> ugh
23:57 < dho> you don't.  nevermind.
23:57 < dho> it tries to build GOROOT/src/pkg as it is now
23:57 < dho> i forgot about that
23:58 -!- melba [n=blee@unaffiliated/lazz0] has quit ["MICROSOFT WORD IS A FUN
GAME"]
23:58 < dho> this is stupid.
--- Log closed Sat Dec 19 00:00:34 2009