--- 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