--- Log opened Mon Jan 17 00:00:04 2011 00:02 -!- jhawk28 [~jhawk28@user-387c58d.cable.mindspring.com] has joined #go-nuts 00:12 -!- watr_ [~watr@66.183.100.58] has quit [Ping timeout: 264 seconds] 00:26 -!- waqas [~waqas@jaim.at] has joined #go-nuts 00:30 -!- skejoe_ [~skejoe@188.114.142.162] has quit [Quit: Lost terminal] 00:38 -!- Scorchin [~Scorchin@host86-186-246-184.range86-186.btcentralplus.com] has quit [Quit: Scorchin] 00:46 -!- l00t [~i-i3id3r_@189.105.2.99] has joined #go-nuts 00:52 -!- Tv [~tv@cpe-76-168-227-45.socal.res.rr.com] has quit [Ping timeout: 272 seconds] 00:57 -!- skelterjohn [~jasmuth@c-68-45-238-234.hsd1.nj.comcast.net] has joined #go-nuts 00:57 -!- nettok [~quassel@200.119.190.170] has quit [Quit: No Ping reply in 180 seconds.] 00:58 -!- nettok [~quassel@200.119.190.170] has joined #go-nuts 01:05 < skelterjohn> evening 01:06 < temoto> \o 01:10 < skelterjohn> hows coding? 01:12 -!- LeNsTR [~lenstr@unaffiliated/lenstr] has quit [Quit: LeNsTR] 01:16 -!- LeNsTR [~lenstr@unaffiliated/lenstr] has joined #go-nuts 01:23 -!- skelterjohn [~jasmuth@c-68-45-238-234.hsd1.nj.comcast.net] has quit [Quit: skelterjohn] 01:23 < temoto> Awesome. robots.txt library is ready for production use. 01:29 -!- skelterjohn [~jasmuth@c-68-45-238-234.hsd1.nj.comcast.net] has joined #go-nuts 01:31 -!- skelterjohn [~jasmuth@c-68-45-238-234.hsd1.nj.comcast.net] has quit [Client Quit] 01:32 -!- skelterjohn [~jasmuth@c-68-45-238-234.hsd1.nj.comcast.net] has joined #go-nuts 01:32 -!- saturnfive [~saturnfiv@210.74.155.131] has joined #go-nuts 01:41 -!- shvntr [~shvntr@123.89.110.64] has quit [Quit: leaving] 01:51 -!- jhawk28 [~jhawk28@user-387c58d.cable.mindspring.com] has quit [Quit: Leaving...] 01:56 < crazy2be> temoto: robots.txt library? 01:57 < temoto> crazy2be, yes. 01:58 < temoto> it parses robots.txt into internal 'database' and allows to query whether some user agent is allowed to visit some url path 01:59 < crazy2be> ah 01:59 < crazy2be> don't have any use for that at the moment, but i could see why it would be useful 02:11 -!- vpit3833 [~user@203.111.33.203] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 02:18 -!- ios_ [~ios@180.191.33.144] has joined #go-nuts 02:21 -!- skelterjohn [~jasmuth@c-68-45-238-234.hsd1.nj.comcast.net] has quit [Quit: skelterjohn] 02:25 -!- vpit3833 [~user@203.111.33.203] has joined #go-nuts 02:28 -!- waqas [~waqas@jaim.at] has left #go-nuts [] 02:35 -!- Paradox924X [~Paradox92@c-68-35-229-34.hsd1.fl.comcast.net] has quit [Remote host closed the connection] 02:36 -!- skelterjohn [~jasmuth@c-68-45-238-234.hsd1.nj.comcast.net] has joined #go-nuts 02:37 -!- boscop [~boscop@f055214238.adsl.alicedsl.de] has quit [Ping timeout: 240 seconds] 02:40 -!- tensorpudding [~user@99.23.127.179] has quit [Remote host closed the connection] 02:53 -!- ios_ [~ios@180.191.33.144] has quit [Ping timeout: 240 seconds] 02:53 -!- cafesofie [~cafesofie@dhcp-140-254-204-17.osuwireless.ohio-state.edu] has quit [Remote host closed the connection] 02:59 < sifi> can someone explain how to create a new StringVector? 03:00 < JBeshir> new(vector.StringVector), likely 03:00 < Namegduf> Or just var x vector.StringVector 03:00 < sifi> cool, thanks 03:03 < mosva> What is that animal on go logo? 03:03 <@adg> mosva: a gopher 03:05 < mosva> nice! 03:05 < TheSeeker> instantrimshot.com 03:09 -!- LeNsTR [~lenstr@unaffiliated/lenstr] has quit [Quit: LeNsTR] 03:20 < mosva> [0:12] silces the array with length 12 and indexes 0....10, 11. right? 03:20 < mosva> When passing an array to a function we need to slice it? Always? 03:26 <@adg> mosva: yes to your first question 03:27 <@adg> mosva: if you need to use an array where a slice is expected, you need to turn it into a slice, yes 03:27 <@adg> eg foo[:] 03:27 < mosva> If so why do they call it low:high and not index:length 03:28 -!- cco3 [~conley@c-69-181-138-209.hsd1.ca.comcast.net] has quit [Read error: Operation timed out] 03:28 <@adg> oh it's not the length (i misunderstood your question) - it's the end index 03:29 <@adg> mosva: http://blog.golang.org/2011/01/go-slices-usage-and-internals.html 03:29 < mosva> wow, nice 03:29 < mosva> Thanks for writing that 03:29 <@adg> :) 03:30 -!- m4dh4tt3r [~Adium@c-69-181-223-245.hsd1.ca.comcast.net] has quit [Quit: Leaving.] 03:32 < mosva> Go was released in Nov 2009. So its been only ~1 year. right? 03:33 -!- m4dh4tt3r [~Adium@c-69-181-223-245.hsd1.ca.comcast.net] has joined #go-nuts 03:33 * mosva is looking for a way to delete the stupid question above 03:42 < mosva> The only confusing thing is low will be included and high won't be included in the slice 03:43 -!- devrim1 [~Adium@cpe-72-225-239-227.nyc.res.rr.com] has quit [Quit: Leaving.] 03:43 -!- cafesofie [~cafesofie@rnwifi-164-107-92-51.resnet.ohio-state.edu] has joined #go-nuts 03:44 < saturnfive> how to open non utf-8 text file? 03:44 < crazy2be> saturnfive: What other type is there? 03:44 < saturnfive> gb18030 03:44 < crazy2be> unless you want binary 03:45 <@adg> mosva: just remember it's a half-open range, and that a[0:len(a)] is the identity slice 03:46 < crazy2be> saturnfive: It's not opening the file that would be an issue, but doing something useful with the data 03:46 < crazy2be> afaik, os.Open() will open any file, including text or binary 03:46 < saturnfive> e.g. GB18030 text file 03:47 < crazy2be> it might require the O_BINARY flag or something 03:47 < crazy2be> but you might have to write your own decoder, or steal someone elses 03:47 < crazy2be> i'm assuming you tried it and it didn't work 03:48 <@adg> saturnfive: there's nothing special you need to do to open a file like that 03:48 < saturnfive> 3Q, i'm going to eat rice, bye 03:49 < crazy2be> it uses unicode code points and such as far as i can tell 03:56 < mosva> adg, any articles where I can learn the new/make and value/reference from the compiler's perspective? 03:58 <@adg> there's no value/reference thing 03:58 <@adg> they're all values 03:58 <@adg> just know that slices, channels, functions, and maps are reference types 03:58 <@adg> and strings i guess 03:58 <@adg> strings and functions are immutable so it doesn't matter that they're reference types 03:59 <@adg> and obviously pointers are reference types 03:59 -!- iant [~iant@216.239.45.130] has quit [Ping timeout: 246 seconds] 04:02 <@adg> i would like to write a blog post about this, though 04:03 < Namegduf> It'd be nice to have something written approachably that could be linked 04:04 < mosva> Thanks. adg 04:04 < mosva> Will Google be renaming 'Go'? 04:06 < fzzbt> why? 04:08 -!- l00t [~i-i3id3r_@189.105.2.99] has quit [Ping timeout: 265 seconds] 04:09 < mosva> because I don't like to say I'm going 04:09 < crazy2be> you're going where? 04:10 < crazy2be> going to program go code? 04:10 < crazy2be> i mean, you don't say you're Cing or C++ing or Javaing 04:11 < Namegduf> Go is a good name. 04:16 <@adg> we (the Go team) like the name Go, and are not going to change it 04:16 -!- Paradox924X [~Paradox92@vaserv/irc/founder] has joined #go-nuts 04:17 < crazy2be> and the debugger called ogle :) 04:18 < crazy2be> or, at least, that's what it used to be called 04:18 < crazy2be> ah yes 04:18 -!- iant [~iant@adsl-71-133-8-30.dsl.pltn13.pacbell.net] has joined #go-nuts 04:19 -!- mode/#go-nuts [+v iant] by ChanServ 04:23 -!- cafesofie [~cafesofie@rnwifi-164-107-92-51.resnet.ohio-state.edu] has quit [Remote host closed the connection] 04:23 -!- cafesofie [~cafesofie@rnwifi-164-107-92-51.resnet.ohio-state.edu] has joined #go-nuts 04:26 -!- Paradox924X [~Paradox92@vaserv/irc/founder] has quit [Ping timeout: 265 seconds] 04:26 -!- rejb [~rejb@unaffiliated/rejb] has quit [Ping timeout: 276 seconds] 04:30 -!- cafesofie [~cafesofie@rnwifi-164-107-92-51.resnet.ohio-state.edu] has quit [Remote host closed the connection] 04:30 -!- Paradox924X [~Paradox92@c-68-35-229-34.hsd1.fl.comcast.net] has joined #go-nuts 04:30 -!- Paradox924X [~Paradox92@c-68-35-229-34.hsd1.fl.comcast.net] has quit [Changing host] 04:30 -!- Paradox924X [~Paradox92@vaserv/irc/founder] has joined #go-nuts 04:30 -!- cafesofie [~cafesofie@rnwifi-164-107-92-51.resnet.ohio-state.edu] has joined #go-nuts 04:34 -!- jeff2 [~sername@c-67-164-29-36.hsd1.ca.comcast.net] has joined #go-nuts 04:36 -!- elimisteve [~elimistev@pool-71-102-138-52.snloca.dsl-w.verizon.net] has joined #go-nuts 04:43 -!- ios_ [~ios@180.191.88.7] has joined #go-nuts 05:06 -!- cafesofi_ [~cafesofie@rnwifi-164-107-92-51.resnet.ohio-state.edu] has joined #go-nuts 05:06 -!- cafesofie [~cafesofie@rnwifi-164-107-92-51.resnet.ohio-state.edu] has quit [Read error: Connection reset by peer] 05:07 -!- cafesofi_ [~cafesofie@rnwifi-164-107-92-51.resnet.ohio-state.edu] has quit [Remote host closed the connection] 05:07 -!- kixo [~kixo@78-0-206-31.adsl.net.t-com.hr] has quit [Ping timeout: 240 seconds] 05:07 -!- cafesofie [~cafesofie@rnwifi-164-107-92-51.resnet.ohio-state.edu] has joined #go-nuts 05:26 -!- ios_ [~ios@180.191.88.7] has quit [Quit: Leaving] 05:34 -!- segy [~segfault@pdpc/supporter/active/segy] has quit [Quit: leaving] 05:35 -!- segy [~segfault@pdpc/supporter/active/segy] has joined #go-nuts 05:44 -!- SRabbelier [~SRabbelie@188.142.63.148] has quit [Ping timeout: 255 seconds] 05:47 -!- cco3 [~conley@c-69-181-138-209.hsd1.ca.comcast.net] has joined #go-nuts 06:02 -!- cafesofie [~cafesofie@rnwifi-164-107-92-51.resnet.ohio-state.edu] has quit [Remote host closed the connection] 06:10 -!- niemeyer [~niemeyer@189.30.51.233] has joined #go-nuts 06:14 -!- fabled [~fabled@mail.fi.jw.org] has joined #go-nuts 06:21 -!- watr_ [~watr@66.183.100.58] has joined #go-nuts 06:29 -!- watr_ [~watr@66.183.100.58] has quit [Quit: Leaving] 06:32 -!- jeff2 [~sername@c-67-164-29-36.hsd1.ca.comcast.net] has quit [Quit: This computer has gone to sleep] 06:32 -!- foocraft [~dsc@89.211.156.34] has joined #go-nuts 06:33 -!- crazy2be [~justin@d75-152-162-237.abhsia.telus.net] has quit [Remote host closed the connection] 06:39 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts 06:41 -!- krig_ [kegie@stalin.acc.umu.se] has quit [Ping timeout: 264 seconds] 06:46 -!- werdan7 [~w7@freenode/staff/wikimedia.werdan7] has joined #go-nuts 06:52 -!- krig [kegie@honecker.acc.umu.se] has joined #go-nuts 06:57 -!- cco3 [~conley@c-69-181-138-209.hsd1.ca.comcast.net] has quit [Ping timeout: 265 seconds] 07:03 -!- kixo [~kixo@78-1-147-32.adsl.net.t-com.hr] has joined #go-nuts 07:04 -!- zozoR [~zozoR@56346ed3.rev.stofanet.dk] has joined #go-nuts 07:14 -!- teejae [~teejae@220.109.219.245] has joined #go-nuts 07:15 -!- piranha [~piranha@5ED4B890.cm-7-5c.dynamic.ziggo.nl] has joined #go-nuts 07:17 < teejae> niemeyer: are you in the chat room? 07:17 < niemeyer> teejae: Yep, here 07:17 < teejae> niemeyer: are you the person that did gozk? 07:17 < niemeyer> teejae: I am indeed 07:17 < teejae> niemeyer: nice work, first of all :) 07:17 < niemeyer> teejae: Thanks :) 07:18 < teejae> niemeyer: seems like there's a problem w/ the makefile for STATIC 07:18 < niemeyer> teejae: Hmm, ok 07:18 < niemeyer> teejae: What's up? 07:18 < teejae> niemeyer: i'm bad at makefiles, wondering how to get it right 07:18 < teejae> niemeyer: seems like STATIC=1 depends on a _lib dir 07:18 < teejae> niemeyer: but it's happening in the wrong order 07:19 < teejae> niemeyer: i can do make install STATIC=1, and get lots of undef'd symbol errors 07:19 < niemeyer> teejae: Ok, hold on 07:19 < teejae> niemeyer: and run a second time, and it works 07:19 < teejae> niemeyer: STATIC=0 works cleanly from the get-go 07:23 < mosva> for _, value := range m { 07:23 < mosva> What does '_' mean? 07:23 < teejae> mosva: _ = ignore the value 07:23 < teejae> range in that case would be (key, value) 07:23 < teejae> however, you don't want the key 07:24 < niemeyer> teejae: I see.. I have a local change to support some cgo improvements I'm pushing which may be the reason why it works for me. Give me a sec 07:24 < teejae> and you can't have a variable declared if you don't use it 07:24 < teejae> niemeyer: ah ok. if you could pastebin a patch, i can test it. 07:25 < teejae> niemeyer: i think the dependency order of the _lib is wrong. but i don't know how to fix it :P 07:25 < teejae> seems like the _lib dir or its contents are being created after it's already needed 07:25 < teejae> hence a second run will work 07:25 < niemeyer> teejae: Yeah, the change touches that 07:25 < mosva> thanks teejae 07:26 < teejae> mosva: sure, hope that makes sense! 07:26 < niemeyer> teejae: It's not wrong for me, but I see why it's wrong for you 07:26 < teejae> niemeyer: ah ok. were you planning on pushing that change to bzr soon? 07:26 < niemeyer> teejae: It's a change in Go itself.. it depends on the review cycle 07:27 < teejae> niemeyer: also, the example.go has a syntax error, 2nd err is already def'd (you use the :=) 07:28 < teejae> niemeyer: https://wiki.ubuntu.com/gozk where it shows the zk.Create 07:29 < niemeyer> teejae: Oops, sorry about that 07:29 < niemeyer> That's what I get for hacking code in a browser 07:29 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Ping timeout: 264 seconds] 07:29 < teejae> niemeyer: hehe, its the simple stuff that always gets ya 07:30 < teejae> niemeyer: otherwise, i can say your gozk seems to work pretty well. just testing it out right now 07:31 < teejae> niemeyer: i did get a bit stuck w/ initializing zookeeper in an Init fn, which caused all sorts of panics, but that's also because i didn't know much about Init (that it's single threaded, and thus won't allow reading from a channel) 07:31 < niemeyer> Ah, yeah, that may get tricku 07:31 < niemeyer> tricky 07:32 < teejae> niemeyer: bang'd head against wall for a few hours before reading thru the spec more 07:34 < niemeyer> I should mention that in the docs 07:34 < teejae> niemeyer: i did read your blog post about dev'ing cgo and gozk when it came out, and it just didn't click for me that the init was the problem 07:35 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts 07:39 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Ping timeout: 246 seconds] 07:41 < teejae> niemeyer: stupid question, but how do i generate the go docs like you have at goneat? 07:42 < niemeyer> teejae: Ok, the Makefile should be working better now. 07:42 < niemeyer> teejae: Just pushed the changes 07:42 < mosva> func (file *File) Write(b []byte) (n int, err Error) 07:42 < mosva> => means we can call the write function with file.Write(b[:]) right? 07:42 < niemeyer> teejae: You can get the docs locally in this format by running godoc -server=:6060 and browsing to localhost:6060 07:43 < niemeyer> mosva: What's b's type? 07:43 < quantumelixir> I'm using Makefile's suffix macros and the binaries build fine but they keep rebuilding even if unnecessary! How do I specify the dependencies? 07:43 < teejae> niemeyer: i see. i have to place the code in GOROOT/pkg tho? 07:43 < niemeyer> teejae: Yes, or tweak the -path flag to point to your source 07:44 < mosva> niemeyer, []byte 07:44 < niemeyer> teejae: Or rather, to the parent of your source 07:44 -!- devrim [~Adium@cpe-72-225-239-227.nyc.res.rr.com] has joined #go-nuts 07:44 < niemeyer> mosva: You don't need the [:] then 07:44 < quantumelixir> I tried placing the dependency like so --> .c: $< but that doesn't work either 07:44 < niemeyer> mosva: file.Write(b) will do 07:44 < Namegduf> mosva: In that case, just pass b itself, yeah, no need to slice. 07:44 < Namegduf> someslice[:] returns the same slice 07:45 -!- SRabbelier [~SRabbelie@188.142.63.148] has joined #go-nuts 07:45 < mosva> Can a function parameter take array as input? 07:45 < niemeyer> quantumelixir: This doesn't make much sense.. $< expands to the dependency of the rule, which is specified after the colon 07:45 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.3] 07:45 < niemeyer> quantumelixir: You're referencing the dependency with $< in the place where it's supposed to be defined 07:46 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts 07:46 -!- bortzmeyer [~bortzmeye@batilda.nic.fr] has joined #go-nuts 07:46 < niemeyer> quantumelixir: You prevent the rule from running by having a file/directory with the target's name which has a more recent timestamp than the dependent target 07:46 < quantumelixir> niemeyer: Oh right! Here's what I want to do: Build binaries for each source file 07:47 < quantumelixir> like there's test{1..10}.c and I want test{1..10} binaries 07:47 < niemeyer> quantumelixir: test%: test%.c 07:47 < quantumelixir> What is this called? (so I can google it :) 07:49 < teejae> mosva: yes, you can get an array. is there something you need that's specifically an array vs a slice? 07:50 -!- vpit3833 [~user@203.111.33.203] has quit [Read error: Operation timed out] 07:50 < niemeyer> mosva: You can, but it's a bad idea 07:50 < quantumelixir> niemeyer: How do I refer to the target? Like $x where x = ? 07:51 < niemeyer> mosva: An array type like [N]foo takes N into consideration when matching against other types 07:51 < niemeyer> mosva: Which means the parameter will only be able to be used with the precise [N].. 07:51 < niemeyer> mosva: The common idiom is really to accept a slice 07:52 < niemeyer> quantumelixir: The target is $@ 07:52 < niemeyer> quantumelixir: You can find all those details in the make manual: http://www.gnu.org/software/make/manual/make.html 07:52 < teejae> niemeyer: your new Makefile works beautifully :) i really appreciate it 07:53 < quantumelixir> niemeyer: Thanks! The makefile builds properly but it still doesn't get the dependencies right :/ http://pastebin.com/iuHPRxPJ 07:55 < niemeyer> teejae: That's great to hear! 07:56 < teejae> niemeyer: so you guys are using zookeeper at canonical? 07:56 < niemeyer> quantumelixir: That's not even about Go :-) 07:56 -!- jkakar [~jkakar@165.Red-79-157-7.dynamicIP.rima-tde.net] has quit [Ping timeout: 240 seconds] 07:57 -!- piranha [~piranha@5ED4B890.cm-7-5c.dynamic.ziggo.nl] has quit [Quit: Computer has gone to sleep.] 07:57 < niemeyer> teejae: Yeah, we've been playing with it on Ensemble 07:57 < quantumelixir> niemeyer: you got me :D 07:57 < quantumelixir> But still a Makefile, nonetheless. =D 07:57 < teejae> niemeyer: nice to meet you. i'm in tokyo. you're in sao paulo? 07:58 < niemeyer> quantumelixir: For a start, you're mixing rules which build binaries with source and object files.. 07:58 < niemeyer> quantumelixir: But it's really time to study a bit more about Makefiles, or to take this to a proper forum 07:58 < niemeyer> teejae: My pleasure. I'm in the south of Brazil 07:58 < quantumelixir> niemeyer: I agree. I thought I knew stuff about make but I guess I don't. Better learn it properly I suppoes :) 07:59 < |Craig|> quantumelixir: I though make was simple, then I wrote this: https://github.com/Craig-Macomber/Grains--Vegetarian-Zombie-Rising/blob/master/Server/Makefile and decided gnu make is crazy complex 08:00 < quantumelixir> hehe 08:00 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts 08:00 < |Craig|> I never though you could write loops in makefiles, but you can 08:01 < quantumelixir> I'm sure it's Turing complete and all that jazz 08:01 < quantumelixir> But I thought I'd get away without ever delving too deep into it 08:03 <@adg> i thought Makefiles weren't turing complete 08:04 < quantumelixir> http://stackoverflow.com/questions/3480950/are-makefiles-turing-complete 08:05 < quantumelixir> :'( 08:08 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Quit: |Craig|] 08:13 -!- petrux [~petrux@host16-224-static.53-82-b.business.telecomitalia.it] has joined #go-nuts 08:17 < zozoR> how many people are working on go? 08:17 <@adg> zozoR: in what sense? 08:18 < zozoR> those people i can see adding stuff to the build status 08:18 < zozoR> or maybe the whole team that wworks at google '' 08:19 <@adg> there's about 10 of us on the team at google 08:19 <@adg> and probably another 10-20 regular contributors outside google 08:19 <@adg> over 150 people have contributed code, though 08:19 -!- temoto [~temoto@95-25-160-208.broadband.corbina.ru] has quit [Ping timeout: 240 seconds] 08:21 -!- piranha [~piranha@5ED42E59.cm-7-5a.dynamic.ziggo.nl] has joined #go-nuts 08:21 -!- Mr_Dark` [~dk@poviko.demon.nl] has joined #go-nuts 08:22 < zozoR> cool ^^ 08:25 -!- Mr_Dark [~dk@poviko.demon.nl] has quit [Ping timeout: 250 seconds] 08:27 -!- skejoe [~skejoe@188.114.142.162] has joined #go-nuts 08:30 < uriel> adg: in fairness, Russ counts for like a dozen people ;P 08:31 -!- unofficialmvp [~dev@94-62-164-227.b.ipv4ilink.net] has joined #go-nuts 08:32 <@adg> uriel: hah too true! 08:33 -!- unofficialmvp [~dev@94-62-164-227.b.ipv4ilink.net] has left #go-nuts [] 08:40 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts 08:46 -!- Belg [~kim@gw-gbg.ilait.se] has quit [Read error: Operation timed out] 08:49 -!- kixo [~kixo@78-1-147-32.adsl.net.t-com.hr] has quit [Quit: kixo] 08:49 -!- kixo [~kixo@78-1-147-32.adsl.net.t-com.hr] has joined #go-nuts 08:52 -!- kixo [~kixo@78-1-147-32.adsl.net.t-com.hr] has left #go-nuts [] 08:55 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-148-187.clienti.tiscali.it] has joined #go-nuts 08:56 -!- jkakar [~jkakar@85.48.252.209] has joined #go-nuts 08:57 -!- Belg [~kim@gw-gbg.ilait.se] has joined #go-nuts 09:02 -!- skejoe [~skejoe@188.114.142.162] has quit [Quit: Lost terminal] 09:07 -!- m4dh4tt3r [~Adium@c-69-181-223-245.hsd1.ca.comcast.net] has quit [Quit: Leaving.] 09:19 -!- ondrej [~ondrej@ki.nic.cz] has joined #go-nuts 09:20 < ondrej> Hey, just a quick question. Do you know if there's somebody working on packaging Go for Debian. And if you think this would be a good idea (at least to have it in experimental branch). 09:22 < Namegduf> Probably not; Go is pretty fast moving and does not yet shy away from breaking compatibility in the stdlib 09:22 < Namegduf> IMHO, of course. 09:23 -!- petrux [~petrux@host16-224-static.53-82-b.business.telecomitalia.it] has quit [Ping timeout: 276 seconds] 09:23 < ondrej> I found ITP bug (Intent To Package) meanwhile it seems that Ivan Wong is working on that. 09:24 -!- teejae [~teejae@220.109.219.245] has quit [Quit: teejae] 09:27 -!- ExtraSpice [~XtraSpice@88.118.33.48] has joined #go-nuts 09:27 -!- ondrej [~ondrej@ki.nic.cz] has quit [Quit: leaving] 09:27 -!- tvw [~tv@e176002116.adsl.alicedsl.de] has joined #go-nuts 09:31 -!- sl [~sl@68-179-130-17.bsr-c9-d1.evv.dhcp.sigecom.net] has quit [Ping timeout: 272 seconds] 09:33 -!- temoto [~temoto@81.19.91.15] has joined #go-nuts 09:40 -!- pjm0616 [~user@110.9.28.45] has quit [Ping timeout: 276 seconds] 09:44 -!- pjm0616 [~user@110.9.28.45] has joined #go-nuts 09:49 -!- tvw [~tv@e176002116.adsl.alicedsl.de] has quit [Remote host closed the connection] 09:50 -!- wrtp [~rog@92.17.53.205] has joined #go-nuts 09:56 -!- dforsyth [~dforsyth@c-76-21-40-117.hsd1.ca.comcast.net] has quit [Remote host closed the connection] 09:57 -!- dforsyth [~dforsyth@c-76-21-40-117.hsd1.ca.comcast.net] has joined #go-nuts 10:03 -!- teejae [~teejae@220.109.219.245] has joined #go-nuts 10:04 -!- temoto [~temoto@81.19.91.15] has quit [Quit: Leaving] 10:12 -!- petrux [~petrux@host16-224-static.53-82-b.business.telecomitalia.it] has joined #go-nuts 10:13 -!- niemeyer [~niemeyer@189.30.51.233] has quit [Ping timeout: 240 seconds] 10:17 -!- nettok [~quassel@200.119.190.170] has quit [Ping timeout: 260 seconds] 10:22 -!- teejae [~teejae@220.109.219.245] has quit [Quit: teejae] 10:22 -!- saturnfive [~saturnfiv@210.74.155.131] has quit [Read error: Connection reset by peer] 10:33 -!- temoto [~temoto@81.19.91.15] has joined #go-nuts 10:36 -!- artefon [~thiago@189.59.206.109] has joined #go-nuts 10:36 -!- tvw [~tv@212.79.9.150] has joined #go-nuts 10:36 -!- tvw [~tv@212.79.9.150] has quit [Remote host closed the connection] 10:37 < mosva> r// Unnecessarily complex: 10:37 < mosva> var p *[]int = new([]int) 10:37 < mosva> *p = make([]int, 100, 100) 10:37 -!- tvw [~tv@212.79.9.150] has joined #go-nuts 10:37 < mosva> Will the above work if the second line is var p *[]int 10:38 < temoto> Just p := make([]int, 100) is enough. 10:39 < mosva> but p is not a slice its a pointer to slice 10:39 < temoto> There is no need to create pointers to slices. 10:39 < temoto> slice is a pointer already 10:39 < mosva> yeah, so what does new([]int) return? 10:40 < temoto> A pointer to nil slice. 10:40 < mosva> the default value of it is a pointer to nil slice. right? 10:41 -!- unofficialmvp [~dev@94-62-164-227.b.ipv4ilink.net] has joined #go-nuts 10:41 < temoto> The zero value of slice is nil. 10:41 < mosva> In the above statement p should return the memory address of the slice? 10:42 < temoto> Yes. 10:42 < temoto> But that doesn't make sense. It's a pointer to pointer to array. 10:43 -!- unofficialmvp [~dev@94-62-164-227.b.ipv4ilink.net] has left #go-nuts [] 10:44 < temoto> So the answer to your original question: var p *[]int ; p = &make([]int, 100) this will work. But this doesn't make sense. 10:48 < mosva> Thanks 10:53 < mosva> temoto, The difference b/w make and new. Make is used for reference type. It creates a new object which is referenced by the datatype like map or slice, allocates space for those data type(array for slice) and returns the address of the slice(in memory) to the variable 10:53 < mosva> whereas new allocates the memory for simple datatypes and returns the address 10:56 -!- skejoe [~skejoe@188.114.142.162] has joined #go-nuts 11:09 < wrtp> temoto: that doesn't work 11:09 < wrtp> p = &make([]int, 100) is not a valid statement 11:09 < wrtp> you could do: v := make([]int, 100); p := &v 11:10 < wrtp> p := new(*[]int) 11:10 < wrtp> *p = make([]int, 100) 11:13 -!- quantumelixir [~chillu@203.110.240.41] has quit [Ping timeout: 240 seconds] 11:20 -!- rlab_ [~Miranda@91.200.158.34] has joined #go-nuts 11:22 -!- rlab [~Miranda@91.200.158.34] has quit [Ping timeout: 265 seconds] 11:25 -!- quantumelixir [~chillu@203.110.240.41] has joined #go-nuts 11:31 -!- NuLLBiT [~mosva@122.172.124.197] has joined #go-nuts 11:33 -!- mosva [~mosva@unaffiliated/mosva] has quit [Ping timeout: 240 seconds] 11:34 -!- NuLLBiT [~mosva@122.172.124.197] has quit [Client Quit] 11:35 -!- mosva [~mosva@unaffiliated/mosva] has joined #go-nuts 11:43 -!- shvntr [~shvntr@123.89.99.198] has joined #go-nuts 11:44 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.3] 11:47 -!- shvntr [~shvntr@123.89.99.198] has quit [Ping timeout: 240 seconds] 11:48 -!- shvntr [~shvntr@113.84.149.38] has joined #go-nuts 11:51 -!- DarthShrine [~angus@pdpc/supporter/student/DarthShrine] has quit [Quit: DarthShrine] 11:53 < temoto> mosva, i'm not sure why you quoted some documentation. 12:04 < mosva> temoto, lol. I summarized what I understood 12:04 -!- MaybeSo [~jimr@lions.Stanford.EDU] has quit [Ping timeout: 276 seconds] 12:05 -!- MaybeSo [~jimr@lions.Stanford.EDU] has joined #go-nuts 12:08 < zozoR> i dont think curses likes concurrent programming 12:08 < zozoR> : | 12:10 * wrtp curses curses 12:10 < jumzi> i don't think anyone likes curses 12:10 < zozoR> i do :D 12:10 < wrtp> cursor addressing is the way of the past :-) 12:11 < zozoR> any ideas what i should use instead then? 12:12 < zozoR> i dont see any other terminal based guis out there 12:12 < zozoR> :3 12:12 < zozoR> for go that is 12:12 < wrtp> why try to make a gui? 12:13 < wrtp> in a tty, that is? 12:13 < wrtp> that way you lose all the power of the shell 12:13 < zozoR> im making a downloader thingy 12:13 < zozoR> it lists all the downloads 12:14 < zozoR> without curses, i'd have to clear the screen and print all the entries every other second 12:14 < wrtp> or you could just print all the entries 12:14 < wrtp> and then you can always use grep or whatever 12:15 < wrtp> what does it gain from being interactive? 12:15 < zozoR> i'd have to print all entries, everytime i can update how long the download is coming 12:16 < zozoR> also, if its a long list, its nice to be able to scroll down 12:16 < zozoR> but what i like is that i can just tell where in the terminal something should be printed 12:17 < wrtp> why not just print out an overall percentage 12:17 < wrtp> ? 12:17 < zozoR> because that doesnt tell me anything about the individual files, now does it? :P 12:18 < wrtp> do you need to know that? 12:19 < wrtp> personally, i prefer programs that keep silent unless there's something useful they have to say. 12:19 < wrtp> i admit that's just personal taste. 12:19 < zozoR> i prefer knowing whats going on 12:19 < zozoR> also, some individual files may fail 12:20 < zozoR> i'd like to know that on the spot 12:20 < wrtp> that's something useful to say, so you could just print it 12:20 -!- saturnfive [~saturnfiv@222.90.16.30] has joined #go-nuts 12:21 < wrtp> anyway, if you really want to use curses, it's straightforward - just have one goroutine that deals with the GUI 12:21 < quantumelixir> what's with the peculiar compiler names (6g and 8g)? 12:21 < wrtp> define an interface for other goroutines to tell the GUI goroutine about updates (e.g. through a channel) 12:22 < wrtp> quantumelixir: the number signifies the architecture 12:22 < quantumelixir> wrtp: but it seems rather arbitrary 12:22 < quantumelixir> why 6 for 64-bit and 8 for 32-bit? 12:22 < wrtp> quantumelixir: it is arbitrary. but consistent. 12:22 < quantumelixir> hehe 12:22 < wrtp> 6 for amd64; 8 for 386. 12:22 < quantumelixir> my peeve is that the 6 is hard to reach on my keyboard :D 12:22 < quantumelixir> of course I aliased that on my shell :) 12:23 < wrtp> http://plan9.bell-labs.com/magic/man2html/1/2c gives a full list 12:23 < wrtp> is the 6 harder to reach than the 8? 12:24 < quantumelixir> yep 12:24 < zozoR> right now, i have the main thread being the gui, and it runs and runs forever, while a go routine handles the other data .. but ill try your idea 12:24 < zozoR> :D 12:24 < wrtp> strange 12:24 < quantumelixir> 6 is in the middle 12:24 < quantumelixir> I reach for the 8 with the middle finger of my right hand 12:24 < wrtp> quantumelixir: fair enough 12:25 < wrtp> personally i almost never type 6g - i use make, or a little shell script called "gc" which does both the 6g and the 6l 12:26 < wrtp> zozoR: that sounds similar to what i was describing 12:26 < quantumelixir> wrtp: same here :) 12:26 < zozoR> ye, but mine has a runtime panic somewhere, and i cant figure out what it says 12:26 < wrtp> you'll be ok just as long as only one goroutine talks to curses 12:26 < zozoR> problem really is i dont know what causes the errors 12:26 < wrtp> doesn't the panic give you a helpful stack trace? 12:27 < zozoR> yes.. but curses eats it 12:27 < zozoR> i see some of it, but not all 12:28 < zozoR> and i cant figure out a way to end curses so i can see the stacktrace, cause i dont know where the problem is 12:29 < zozoR> and right now i have mutexes everywhere, so i suppose what you said about channels would be a better idea 12:32 < wrtp> why don't you just redirect stderr to a file - then the stack trace will go there and curses should operate as normal. 12:33 < wrtp> zozoR: you only need to use mutexes very rarely 12:33 < quantumelixir> how does Go handle constants without overflowing? how do they interact with the other limited precision variables? 12:34 < zozoR> wrtp: true, thanks for your helå 12:34 < zozoR> though its IKEA time :D 12:34 < wrtp> zozoR: joy 12:35 < wrtp> quantumelixir: untyped constants have their own implementation in the compiler. 12:35 < wrtp> quantumelixir: you can assign an untyped constant to a type if it can fit within the type without loss of precision. 12:36 < wrtp> actually, i don't think that's strictly true 12:36 < quantumelixir> wrtp: So, it's an arbitrary precision data type? 12:36 < quantumelixir> I'm interested in how the compiler implements the constant types and how their conversions are handled 12:36 < wrtp> yeah - and it caters for floating point too 12:36 < quantumelixir> interesting 12:37 < wrtp> why don't you just look at the source? 12:37 < quantumelixir> oh, er.. forgot about that :D 12:38 < wrtp> the manual says "It is an error if the constant value cannot be accurately represented as a value of the respective type." 12:38 < wrtp> but i think that's strictly speaking untrue 12:39 < wrtp> because you can assign 3.141592653589793238463 to a float32, which cannot accurately represent the value 12:39 < quantumelixir> hmm.. so it must handle all kinds of conversions 12:40 < wrtp> yeah it does 12:41 < quantumelixir> what is each of lib{9,bio,mac} for? (in the source tree) 12:42 < wrtp> lib9 has some plan 9 compatibility libraries 12:42 <@adg> quantumelixir: lib9 is the plan9 libc that the go compilers link against 12:42 < wrtp> libbio has a buffered I/O library 12:42 < wrtp> (plan 9 style) 12:42 <@adg> quantumelixir: libmach is for writing mach-o files, for osx 12:42 <@adg> but they're only used by the compilers themselves, not for actual go programs 12:42 < wrtp> quantumelixir: you can find the compiler source in cmd/gc 12:43 < wrtp> and see mparith[123].c 12:43 < uriel> adg: might be worth adding an FAQ about why Google is not building yet another IDE/GUI-toolkit/whatever-other-pet-wish-item-random-people-have 12:43 < quantumelixir> thanks wrtp adg 12:43 < uriel> (oh, JDBC was the other one) 12:44 -!- niemeyer [~niemeyer@189.30.51.233] has joined #go-nuts 12:45 -!- LeNsTR [~lenstr@unaffiliated/lenstr] has joined #go-nuts 12:50 -!- sauerbraten [~sauerbrat@p508CEC58.dip.t-dialin.net] has joined #go-nuts 13:11 -!- mosva [~mosva@unaffiliated/mosva] has quit [Read error: Connection reset by peer] 13:11 -!- virtualsue [~chatzilla@nat/cisco/x-mqvwfctncwpcrpty] has joined #go-nuts 13:17 -!- ExtraSpice [~XtraSpice@88.118.33.48] has quit [Read error: Connection reset by peer] 13:28 -!- boscop [~boscop@f055164118.adsl.alicedsl.de] has joined #go-nuts 13:34 -!- DerHorst [~Horst@e176102094.adsl.alicedsl.de] has joined #go-nuts 13:38 -!- Skola [~ik@5352A3FB.cm-6-3c.dynamic.ziggo.nl] has joined #go-nuts 14:06 -!- mosva [~mosva@unaffiliated/mosva] has joined #go-nuts 14:13 -!- skejoe [~skejoe@188.114.142.162] has quit [Quit: Lost terminal] 14:13 < mosva> Is someone writing a book for Go? 14:15 < jumzi> I AM, I WANT THE MONEY! 14:16 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts 14:18 -!- shvntr [~shvntr@113.84.149.38] has quit [Ping timeout: 250 seconds] 14:21 -!- jesmon [~user@static-71-244-114-122.albyny.fios.verizon.net] has joined #go-nuts 14:22 < fzzbt> mosva: i think there's already two or so 14:22 < fzzbt> http://go-lang.cat-v.org/books 14:23 -!- Skola [~ik@5352A3FB.cm-6-3c.dynamic.ziggo.nl] has left #go-nuts [] 14:24 < mosva> jumzi, I won't buy your book ;) 14:25 < jumzi> Ah, do'h! 14:25 < jumzi> Maybe i should just keep myself to programming stuff 14:25 < jumzi> Or rather trolling irc channels 14:26 < fzzbt> make a free book and publish it online. i will donate a penny for you. 14:26 < fzzbt> maybe two if it's any good 14:29 < skelterjohn> i generally don't find books on programming very useful 14:30 < jumzi> There is to few good books on the subject that's true 14:30 < uriel> I have to say that from what I have heard, and rather unsurprisingly, none of the books so far are really worth it 14:31 < uriel> I would wait a bit for the language to settle down a bit 14:31 < uriel> I'm quite sure Rob will get around to it sooner or later 14:31 < uriel> (hopefully sooner rather than later ;)) 14:32 < fzzbt> mosva: maybe write your own go book to master the language? 14:33 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts 14:33 -!- Fish-- [~Fish@exo3753.pck.nerim.net] has quit [Quit: So Long, and Thanks for All the Fish] 14:33 -!- Fish [~Fish@exo3753.pck.nerim.net] has joined #go-nuts 14:34 -!- artefon [~thiago@189.59.206.109] has quit [Read error: Connection reset by peer] 14:34 -!- rlab_ [~Miranda@91.200.158.34] has quit [Ping timeout: 260 seconds] 14:34 < mosva> skelterjohn, they are good for learning the basics of language 14:35 -!- jkakar [~jkakar@85.48.252.209] has quit [Ping timeout: 264 seconds] 14:35 < skelterjohn> tutorial, examples 14:35 < mosva> Go Tutorial does not cover many of the features 14:35 < skelterjohn> it does cover the basics 14:35 < mosva> But it isn't clear 14:35 -!- femtoo [~femto@95-89-197-23-dynip.superkabel.de] has joined #go-nuts 14:35 < skelterjohn> i found it useful 14:36 < mosva> Its useful 14:37 < mosva> but things like defer and init are not even mentioned there 14:37 < mosva> I still haven't read anything about ... in function parameters 14:38 < mosva> Nothing about passing function as parameter is mentioned anywhere in that 14:50 -!- jkakar [~jkakar@193.153.244.102] has joined #go-nuts 14:54 -!- napsy [~luka@88.200.96.18] has joined #go-nuts 15:00 -!- virtualsue [~chatzilla@nat/cisco/x-mqvwfctncwpcrpty] has quit [Ping timeout: 240 seconds] 15:03 -!- jackzh [~jackzh@222.241.96.238] has joined #go-nuts 15:07 -!- virtualsue [~chatzilla@nat/cisco/x-ryejeuhmukkxuyez] has joined #go-nuts 15:08 -!- petrux [~petrux@host16-224-static.53-82-b.business.telecomitalia.it] has quit [Quit: ù] 15:10 < quantumelixir> Where, in the source tree, is the slice defined as a struct? 15:12 -!- artefon [~thiago@dhcp16.usuarios.dcc.ufmg.br] has joined #go-nuts 15:20 < wrtp> quantumelixir: src/pkg/runtime/runtime.h 15:20 < wrtp> look for struct Slice 15:21 -!- rejb [~rejb@unaffiliated/rejb] has joined #go-nuts 15:25 < zozoR> wrtp: how would i go about redirecting stdout? 15:25 -!- tav [~tav@92.7.128.181] has quit [Ping timeout: 240 seconds] 15:28 < femtoo> hey 15:29 < femtoo> I want to send a string from one go routine to many others 15:29 < femtoo> if i use a channel 15:29 < femtoo> the first goroutine to execute takes the string and the others don't receive it 15:29 < femtoo> whats the best way to fix this? 15:30 < quantumelixir> wrtp: I did grep for -ir 'struct.*slice' but got too many results. I should have restricted the search to just the headers.. 15:30 -!- tav [~tav@92.7.151.166] has joined #go-nuts 15:36 -!- saturnfive [~saturnfiv@222.90.16.30] has left #go-nuts [] 15:39 < zozoR> curses doesnt work if i redirect output : | 15:41 < quantumelixir> p[i], p[j] = p[j], p[i] doesn't work when p is a slice of a user defined type --> Is this because the fields of the struct are unexported? 15:41 < quantumelixir> i.e. begin with a lowercase alphabet 15:42 -!- windbg [~jackzh@222.241.96.238] has quit [Quit: leaving] 15:42 < quantumelixir> oops nevermind 15:52 < wrtp> zozoR: what shell are you using? 15:52 < zozoR> standard thing shelled with ubuntu 15:52 < wrtp> bash? 15:52 < wrtp> try running your program as 15:52 < zozoR> shipped with ubuntu* 15:53 < zozoR> as? 15:53 < wrtp> 6.out 2> err.out 15:53 < wrtp> which redirects stderr only 15:53 < jumzi> "echo $SHELl" 15:53 < zozoR> 2> means? 15:53 < jumzi> SHELL* 15:53 < zozoR> ye its bash 15:53 < wrtp> femtoo: the answer depends on what you're trying to do. 15:54 < wrtp> what are you trying to do that requires this kind of broadcast? 15:54 < femtoo> I start a goroutine for each client that connects 15:54 < zozoR> ah, it showed me something :D 15:54 < zozoR> panic: runtime error: makeslice: cap out of range :D 15:54 < zozoR> yay 15:54 < femtoo> if a new client arrives I want the other client to know 15:54 -!- awidegreen [~quassel@c-eacae555.08-2-73746f39.cust.bredbandsbolaget.se] has joined #go-nuts 15:55 -!- qjcg [~qjcg@208.88.110.46] has joined #go-nuts 15:57 < zozoR> epicness, thanks wrtp :D 15:59 -!- cco3 [~conley@c-69-181-138-209.hsd1.ca.comcast.net] has joined #go-nuts 16:02 < wrtp> femtoo: the easiest solution is probably to have a channel for each client and to send on each one 16:02 < femtoo> ok thank you I will try that 16:04 < wrtp> the problem with broadcast as a primitive is that it's either racy (you don't know when all the clients have read the value) or leaky (if you're broadcasting many values, and one of the readers isn't reading fast enough, then you can use large amounts of memory) 16:08 -!- tobel [~tobel@pD9E89D64.dip.t-dialin.net] has joined #go-nuts 16:08 -!- tobel [~tobel@pD9E89D64.dip.t-dialin.net] has quit [Client Quit] 16:08 < wrtp> i made a blog post a while ago about one way of doing a broadcast. i don't recommend it, but it's fun. http://rogpeppe.wordpress.com/2009/12/ 16:10 -!- awidegreen [~quassel@c-eacae555.08-2-73746f39.cust.bredbandsbolaget.se] has quit [Read error: Connection reset by peer] 16:12 -!- awidegreen [~quassel@c-eacae555.08-2-73746f39.cust.bredbandsbolaget.se] has joined #go-nuts 16:14 -!- bortzmeyer [~bortzmeye@batilda.nic.fr] has quit [Quit: Leaving.] 16:18 < femtoo> wrtp, your blog entry look interesting 16:22 < wrtp> femtoo: thanks 16:26 -!- Venom_X [~pjacobs@66.54.185.131] has joined #go-nuts 16:26 < quantumelixir> If I want a type foo to implement an interface, what's the difference between defining a method as func (f *foo) method() { .. } and func (f foo) method() { .. } 16:26 < femtoo> I think the first option you mentioned in the arcticle is enough for my needs 16:27 -!- toyoshim [~toyoshim@y252053.dynamic.ppp.asahi-net.or.jp] has joined #go-nuts 16:29 -!- DerHorst [~Horst@e176102094.adsl.alicedsl.de] has quit [Remote host closed the connection] 16:29 < wrtp> femtoo: it usually is 16:29 < wrtp> the general broadcaster technique is just an interesting curiosity really 16:29 < atsampson> wrtp: that sort of process is called a delta in occam (see section 4.1.10 of http://offog.org/publications/ats-thesis.pdf) 16:29 -!- toyoshim_ [~toyoshim@y252053.dynamic.ppp.asahi-net.or.jp] has quit [Ping timeout: 255 seconds] 16:32 < wrtp> atsampson: cool thanks. 16:32 < wrtp> BTW: "Parallel deltas are often slightly 16:32 < wrtp> less efficient though; a parallel delta must either perform a choice across a group of 16:32 < wrtp> output guards, or fork and wait for a number of child processes." 16:32 < wrtp> the implementation in my blog post does neither 16:32 -!- xash [~xash@d045007.adsl.hansenet.de] has joined #go-nuts 16:34 < atsampson> yeah, but you have buffered channels ;) 16:34 < taruti> what is the status of those plan9 patches? 16:34 < wrtp> atsampson: yeah! aren't they just so incredibly useful? 16:35 < wrtp> i thought i remembered that occam had buffered channels too 16:35 < wrtp> it's been a long time though 16:35 < atsampson> yeah, there's some discussion of that elsewhere 16:35 < wrtp> and no dynamic channels in occam (at least there weren't then) 16:35 < atsampson> nope, occam's never had buffered channels; it does have channel end mobility now, though 16:36 < wrtp> but channels still aren't first class values, right? 16:37 < atsampson> yes, channel ends are first-class values (it's pi-calculus-like, to a degree) 16:39 < wrtp> cool. so you can store channels in data structures, have channels of channels, etc? presumably you can now create new processes dynamically too? 16:40 < wrtp> and have dynamic memory allocation? 16:40 < atsampson> yup, all of the above (although occam-pi's data structures are very limited) 16:41 < atsampson> that's what makes it just about possible to do actual work with it, although I'd rather use a more modern language 16:41 < wrtp> how are the data structures limited? 16:42 < wrtp> and, another limitation i remember: can you ALT on output? 16:43 < atsampson> it only has arrays, structs, and single-owner references, which makes it hard to build anything non-trivial (e.g. hash tables) 16:44 < atsampson> nope, you can't ALT over an output (the runtime system supports it but the compilers don't) 16:46 -!- femtoo [~femto@95-89-197-23-dynip.superkabel.de] has quit [Read error: Connection reset by peer] 16:49 < wrtp> ah, single owner references. 16:50 < wrtp> still, you could build the structure in my blog (using the buffered channel extension) 16:51 < atsampson> yeah, you can build anything you like out of processes 16:56 < quantumelixir> what does foo.(int) mean? 16:57 -!- piranha [~piranha@5ED42E59.cm-7-5a.dynamic.ziggo.nl] has quit [Quit: Computer has gone to sleep.] 16:57 < wrtp> dynamic cast to int 16:57 < wrtp> if foo is an interface type, it asserts that the underlying type is int. if not, you get a panic. 16:59 < quantumelixir> oh ok 17:00 < quantumelixir> the difference from int(foo) being that the conditions are now checked at runtime instead of compile-time? 17:01 < wrtp> yes 17:01 < wrtp> atsampson: only one process required 17:01 < wrtp> atsampson: does occam-pi garbage collect processes waiting on unreferenced channels? 17:02 < quantumelixir> why might the compiler not be able to ascertain the type of foo at compile-time? 17:02 < aiju> packages 17:02 < wrtp> quantumelixir: interfaces 17:03 < wrtp> quantumelixir: an interface has both a compile-time type and a run-time type 17:03 < wrtp> the compile-time type is statically known at compile time; the run-time type is not. 17:03 < quantumelixir> but we are passing a concrete type to the func foo(x interface{}) { .. } right? 17:03 < quantumelixir> *variable of concrete type 17:04 < wrtp> yes, but the compiler doesn't know which type has been passed in 17:04 < quantumelixir> you mean which interface it resembles? 17:04 < wrtp> i mean which concrete type is inside the interface value 17:05 < wrtp> i can do: a := []interface{4, "hello", 56.7}; for _, x := range a {foo(x)} 17:06 < quantumelixir> oh, right 17:06 < wrtp> then how can the compiler know inside foo what the static type of x is? 17:09 < quantumelixir> i guess this is because of how []interface{} stores the data internally (as void pointers) which necessitates the need for a dynamic cast 17:09 < quantumelixir> on the other hand, []int, does retain the information about the data it holds 17:13 < wrtp> quantumelixir: at runtime, there's no such thing as a "void pointer". there are just pointers. interfaces bundle a pointer along with its type and a table of methods. 17:15 < wrtp> and it's not about []interface{} particularly. any value of interface type stores the data in a similar way. 17:16 < quantumelixir> you're right, I meant that the information about the particular kind of pointer it is is discarded during compilation 17:16 < wrtp> well, not quite "discarded" - stored in a different place. 17:17 -!- toyoshim_ [~toyoshim@y252053.dynamic.ppp.asahi-net.or.jp] has joined #go-nuts 17:17 -!- toyoshim [~toyoshim@y252053.dynamic.ppp.asahi-net.or.jp] has quit [Ping timeout: 255 seconds] 17:17 < quantumelixir> so your definition of a := .. previously instructs the compiler to save the actual data types elsewhere? 17:18 < atsampson> wrtp: garbage-collecting unused servers -- nope, but it's been suggested several times 17:18 < atsampson> (again, the runtime has all the information it needs to do it, it's just not supported in the language) 17:19 < wrtp> atsampson: that's the problem with "you can build anything you like out of processes"... the runtime consequences might be severe :-) 17:20 -!- femtoo [~femto@95-89-197-23-dynip.superkabel.de] has joined #go-nuts 17:20 < wrtp> quantumelixir: every time you convert a non-interface type to an interface type, it saves the actual data type inside the interface value. 17:21 < wrtp> the conversion happens implicitly, so you might not have noticed it happening :-) 17:21 < quantumelixir> yep.. seems very mysterious 17:22 < wrtp> it's not really 17:22 < wrtp> it's just the opposite of the dynamic cast you were asking about earlier 17:23 < wrtp> but because it can't fail at run time, it's done automatically by the compiler 17:23 < wrtp> x := interface{}(67) 17:23 < wrtp> y := x.(int) 17:24 < quantumelixir> why save the data types within the interface value if we're going to have to dynamic cast anyway 17:24 < wrtp> the first line there is what's happening when you pass a number to a function which takes an inteface argument 17:24 < quantumelixir> ok go on 17:24 -!- cco3 [~conley@c-69-181-138-209.hsd1.ca.comcast.net] has quit [Quit: Leaving.] 17:24 < wrtp> quantumelixir: because interfaces also have methods 17:24 < wrtp> and without the data type, we can't check that you're trying to dynamic cast to the correct type 17:25 < quantumelixir> oh right.. safety! 17:25 < wrtp> yup 17:25 < wrtp> go is type safe 17:25 < wrtp> although it's not statically type safe - because a dynamic type assertion can fail 17:25 < wrtp> but if it does, the program panics 17:26 < zozoR> i like the word panic 17:26 < aiju> i prefer the gofy variant 17:26 < aiju> "fuck" 17:26 < zozoR> ye 17:26 < zozoR> i imagin the code running up the stack going "fuck fuck fuck fuck fuck" 17:26 -!- virtualsue [~chatzilla@nat/cisco/x-ryejeuhmukkxuyez] has quit [Ping timeout: 272 seconds] 17:26 < quantumelixir> fuck("out of memory") :D 17:26 < aiju> exactly 17:26 < zozoR> ;D 17:27 < quantumelixir> lmao 17:27 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts 17:27 < quantumelixir> wrtp: I didn't get a word of what you last said 17:28 < quantumelixir> s/last/last before/ 17:31 -!- teejae [~teejae@softbank219185095092.bbtec.net] has joined #go-nuts 17:31 < wrtp> "statically type safe" means safe at compile time. 17:31 < quantumelixir> right 17:31 < wrtp> "dynamic type assertion" means like x.(int) or x.(string) 17:32 -!- piranha [~piranha@5ED4B890.cm-7-5c.dynamic.ziggo.nl] has joined #go-nuts 17:32 < quantumelixir> what does that make statically type unsafe? 17:32 < quantumelixir> *why 17:32 -!- cco3 [~conley@c-69-181-138-209.hsd1.ca.comcast.net] has joined #go-nuts 17:35 < wrtp> if you've got a function that takes an interface type, then inside the function the compiler doesn't know what the type is, so if you want to operate on the original type, you've got to do a dynamic type assertion (or a type case) which may fail, because who knows what type has actually been passed to the function at run time? 17:41 < quantumelixir> I got this earlier.. I was asking what the dynamic type assertion fail has to do with static type safety 17:44 -!- mattn_jp [~mattn@112-68-86-111f1.hyg1.eonet.ne.jp] has joined #go-nuts 17:45 < quantumelixir> Or, I could've stopped making sense some time ago 17:46 < teejae> this is a philosophical question: what does it mean to have a map[map[int]]string? and is that possible in Go? I think the answer is no 17:47 < quantumelixir> Does it even mean anything? 17:47 < teejae> if i understand the language spec correctly, you can only use scalar types as keys 17:48 < quantumelixir> Or, am I continuing to not make any sense? 17:48 * quantumelixir goes to bed 17:50 -!- toyoshim_ [~toyoshim@y252053.dynamic.ppp.asahi-net.or.jp] has quit [Ping timeout: 255 seconds] 17:51 < zozoR> you can only have keys that you can perform equallity operations on 17:52 < teejae> zozoR: and is equality on maps in terms of "value-base"? 17:52 < zozoR> i suppose 17:52 < zozoR> you cant use structs, cause struct1 == struct2 doesnt make sense 17:53 < teejae> zozoR: since there's no java "equals" on structs? 17:53 < zozoR> i dont know abracadabra 17:53 < zozoR> (java) 17:53 -!- toyoshim_ [~toyoshim@y252053.dynamic.ppp.asahi-net.or.jp] has joined #go-nuts 17:53 < teejae> i mean, there's no way to provide an equivalence function 17:54 < zozoR> well you could make one yourself, but its not part of the language 17:54 < zozoR> i think 17:54 -!- Project-2501 [~Marvin@82.84.98.218] has joined #go-nuts 17:54 < teejae> right, but i can't use a regular map then, is that right? 17:54 -!- sav1o [~savio@67.18.186.81] has quit [Quit: Ex-Chat] 17:54 -!- cco3 [~conley@c-69-181-138-209.hsd1.ca.comcast.net] has quit [Ping timeout: 255 seconds] 17:54 < zozoR> dunno 17:54 < zozoR> lets try 17:55 < zozoR> i dont think so 17:55 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-148-187.clienti.tiscali.it] has quit [Ping timeout: 260 seconds] 17:56 < zozoR> apparently that is possible 17:56 < zozoR> ah 17:57 < zozoR> because its a reference 17:57 < zozoR> you can compare pointers, but it doesnt make sense to use a pointer as a key 17:57 < teejae> yea, i just tried map[map[int]int]string 17:58 < teejae> and it's putting pointers in 17:58 < zozoR> :3 17:58 < teejae> is that equivalent then with map[*map[int]int]string 17:58 < teejae> i mean, both are pointers right? 18:00 < niemeyer> zozoR: It is actually very useful to use pointers as keys in many situations 18:00 < zozoR> niemeyer: situation? 18:01 < teejae> niemeyer: so are map[*map[int]int]string and map[map[int]int]string the "same"? or is one really a pointer-pointer? 18:01 < niemeyer> zozoR: Whenever you want to keep a map of any kind of object to a value 18:01 < niemeyer> zozoR: By identity 18:02 < niemeyer> teejae: The latter 18:02 < zozoR> wouldnt it make more sense to map the object to a key 18:02 < zozoR> gawd, i need to restart kvirc ... piece of crap client -.- 18:03 -!- zozoR [~zozoR@56346ed3.rev.stofanet.dk] has quit [Quit: Morten. Desu~] 18:03 < niemeyer> zozoR: Why? 18:03 -!- zozoR [~zozoR@56346ed3.rev.stofanet.dk] has joined #go-nuts 18:03 < niemeyer> zozoR: Why? 18:03 < zozoR> since you'd have to iter through the map to get to your objects 18:04 < zozoR> or have a pointer for the object you want 18:04 < niemeyer> zozoR: Not really.. a pointer is a unique word-sized value which is perfect as a key 18:04 < zozoR> which gives you a value you could just have as a member of the struct 18:04 < niemeyer> zozoR: Again, why bother? 18:05 < zozoR> since i cant access my object without iterating? 18:06 < niemeyer> zozoR: Why do you have to iterate when the pointer is the key? 18:06 < teejae> i'm asking this question since i'm implementing a Go language binding for thrift, which is like protobufs, only it has the concept of sets/maps/lists as definable types. i'm trying to figure out the "right way" to have them used in Go 18:06 < niemeyer> zozoR: v := m[&obj] 18:06 < zozoR> yes 18:07 < zozoR> but would make more sense to just obj.value 18:07 -!- xash [~xash@d045007.adsl.hansenet.de] has quit [Ping timeout: 240 seconds] 18:07 < zozoR> and have a struct field, unless its temporary ofcourse :o 18:07 -!- femtoo [~femto@95-89-197-23-dynip.superkabel.de] has quit [Read error: Connection reset by peer] 18:07 < niemeyer> zozoR: Not if you're not in control of the object's type 18:07 < teejae> zozoR: but you might be mapping objects -> related objects 18:07 < wrtp> exactly 18:07 < zozoR> ah 18:08 < zozoR> your right :D 18:08 < teejae> like 18:08 < teejae> Person -> Pet 18:08 < zozoR> i think you mean person=girl and -> = = 18:08 < zozoR> :D 18:09 < teejae> wrtp and niemeyer, what are your thoughts on map keys being non-base types, like maps/arrays, with respect to something equivalent to protobufs 18:10 < wrtp> there's always the question: why not store the mapped object along with its key; but here's one example: you've got a directed graph with nodes represented as *Node types. if you've got several goroutines operating on the graph (e.g. doing shortest path calculations) then it makes sense to represent visited nodes with a map[*Node]bool 18:10 < niemeyer> teejae: Mutable types like these are generally bad keys 18:10 < wrtp> +1 18:11 < teejae> niemeyer: i completely agree, but they happen to be definable in this spec 18:11 < teejae> trying to make the best of the situation 18:11 < teejae> at least more abstractly 18:11 < teejae> like in python, mapping tuples -> objects 18:12 < teejae> i'm generating language bindings 18:12 < teejae> and constants are part of the generation 18:12 < niemeyer> teejae: I don't think the current spec allows map/array values as keys. 18:12 < teejae> niemeyer: i just tested it, and it does, using something like pointers 18:12 < teejae> at least it does w/ map 18:13 < niemeyer> teejae: Sure, the reference may be used as a key, which is fine 18:13 < teejae> ok 18:13 < teejae> i'm just trying to figure it out from a user perspective 18:13 < teejae> like 18:13 < teejae> map[tuple]string 18:13 < teejae> but tuple = [1,2,3] 18:14 < teejae> so let's say there were a constant map 18:14 < wrtp> teejae: that's the biggest thing that would be nice to do with go maps 18:15 < teejae> do you suggest i implement a map that does "java/abstract equals"? 18:15 < wrtp> it's a good question 18:15 < teejae> map[EqualsInterface]Object 18:15 * wrtp is looking at the spec 18:15 < taruti> I suppose no-one has written an interval tree implementation in Go? 18:16 < teejae> since we can't do arbitrary equals at the moment 18:16 < teejae> taruti: if they have, it'd already have this right? ;) 18:16 < wrtp> teejae: you can't use a map like that 18:16 < teejae> wrtp: right, but i mean, i'd implement a map that did 18:17 < niemeyer> teejae: That's by design.. there are higher level Maps floating around already, which do what you suggest. 18:17 < wrtp> it would have to be a user-defined type, not a map 18:17 < teejae> right 18:17 < taruti> and no generics atm... 18:17 < teejae> i lose the ability to use the bracket notation 18:17 < wrtp> and what niemeyer says - i can't remember where any are 18:17 < wrtp> thought 18:17 < wrtp> s/ght/gh 18:18 < wrtp> teejae: yes, you lose that ability 18:18 < niemeyer> teejae: Something like this likely won't make into the stdlib before the situation with generics is resolved (either included or gone for good). That's just an opinion, though. 18:18 < teejae> right 18:18 < teejae> i can't use json as the abstraction function right? :P 18:19 -!- kixo [~kixo@78-1-147-32.adsl.net.t-com.hr] has joined #go-nuts 18:19 < teejae> http://groups.google.com/group/golang-nuts/browse_thread/thread/68defff7c2198503/2e2c697d9aaeb0a2 18:19 < teejae> ah i see that's a relevant thread 18:21 < temoto> Oh boy, i just figured what struct field tags are. 18:21 < wrtp> teejae: if you don't care too much about garbage collecting keys, i've got an idea for a different kind of interface. 18:21 < temoto> all this time json.Marshal would encode unexported (lowercase) fields, despite the documentation said otherwise and on 5 Jan they fixed it 18:22 < teejae> wrtp: what would that be? 18:22 < kixo> can i have optional parameters in function? 18:22 < taruti> kixo: no 18:22 < temoto> kixo, no. 18:22 -!- PortatoreSanoDiI [~Marvin@dynamic-adsl-94-36-150-191.clienti.tiscali.it] has joined #go-nuts 18:22 < wrtp> teejae: i'll paste some code in a moment 18:22 < kixo> ok, thanks 18:23 < temoto> After Python, no kwargs seems wrong at first, but fine then. 18:23 < temoto> Must write type Result struct { Key string "key", ... } <- the string is "tag of field" 18:24 -!- gmilleramilar [~gmiller@184-106-207-119.static.cloud-ips.com] has joined #go-nuts 18:24 < teejae> temoto: field tags are purely for reflection purposes? 18:25 -!- toyoshim [~toyoshim@y252053.dynamic.ppp.asahi-net.or.jp] has joined #go-nuts 18:25 < temoto> teejae, i guess so. But reflection is widely used in libraries. 18:25 -!- Project-2501 [~Marvin@82.84.98.218] has quit [Ping timeout: 240 seconds] 18:25 -!- toyoshim_ [~toyoshim@y252053.dynamic.ppp.asahi-net.or.jp] has quit [Ping timeout: 255 seconds] 18:26 < temoto> I hope this is the last change in json.Marshal behaviour. 18:26 < teejae> temoto: now json.Marshal is not using field tags, per spec? 18:27 < teejae> temoto: or did you want it to do field tags? 18:27 < temoto> teejae, i think it always used tags. Now it skips unexported (starts with lower case letter) fields, per spec. 18:27 < temoto> Two my projects exploited marshalling of unexported fields. 18:28 < teejae> i see 18:28 < temoto> Though, it doesn't convert field name to lower case, per spec. 18:29 -!- TheMue [~TheMue@p5DDF76E1.dip.t-dialin.net] has joined #go-nuts 18:30 < kixo> why r.URL.String() in http handler func does not return whole url but only path?! 18:31 < temoto> kixo, such is URL Stringer implementation. It may be documented. There's url.Raw for whole. 18:33 < kixo> nope 18:33 < kixo> Raw returns the same 18:33 -!- wrtp [~rog@92.17.53.205] has quit [Ping timeout: 259 seconds] 18:33 < kixo> i id this workaround to fix it 18:33 < kixo> http://pastie.org/1470758 18:34 < temoto> This could mean only one thing: other fields are empty. 18:34 < kixo> yes they are, but why? 18:35 < temoto> Because some parser above didn't fill them. 18:35 < kixo> is it a bug in http package? 18:35 < temoto> It even makes some wierd sense: in http you get 18:35 < temoto> GET /path?query HTTP/1.1\r\nHost: foobar.nom 18:36 < temoto> although GET http://blabla is permitted too, it is rarely used. 18:36 < temoto> So parser fill exactly what it received. 18:37 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts 18:37 < temoto> I'd call it rather incompleteness of documentation (if that's not described) than bug in http package. 18:39 -!- wrtp [~rog@92.17.53.205] has joined #go-nuts 18:39 < wrtp> hmm i was just disconnected. what was the last piece of text that i typed here, anyone? 18:40 < temoto> <wrtp> teejae: i'll paste some code in a moment 18:40 < wrtp> ah, ok 18:40 < wrtp> teejae: something like this: http://pastebin.com/W5bmgRPq 18:40 < wrtp> the idea is that you have a Mapping type that maps from non-basic types to Keys 18:41 < wrtp> and your code uses map[Key] T when the Go maps aren't sufficient 18:41 < wrtp> to look up a key, say a tuple, you first get its Key, then use that to index the map 18:41 < temoto> kixo, i agree that giving url object with some fields absent is misleading. 18:41 < wrtp> it relies on the fact that you can compare interface types with different types 18:41 < wrtp> (different types compare unequal) 18:42 -!- gits [~gits@77.94.219.158] has joined #go-nuts 18:43 < teejae> wrtp: wow, this is great. even overly general 18:44 < teejae> wrtp: that is, i just want all the keys to be the same type. you've done the arbitrary object version 18:44 < wrtp> it has the problem that mapping entries can accumulate forever 18:44 < wrtp> teejae: yeah, well there are no generics, so an arbitrary object version is all you can have :-) 18:44 < kixo> temoto: yes it is strange :) 18:45 < teejae> that's ok, especially for my use case where it only needs to build the map once, and is expected to be read only 18:46 < wrtp> also, the user needs to read the map using the same Mapping object it was created with 18:46 -!- sav1o [~savio@67.18.186.81] has joined #go-nuts 18:46 -!- rlab [~Miranda@91.200.158.34] has quit [Ping timeout: 250 seconds] 18:48 < wrtp> you'd probably want to pass it as an argument to the Unmarshal function, or when creating the Decoder object 18:48 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts 18:48 -!- illya77 [~illya77@216-149-112-92.pool.ukrtel.net] has joined #go-nuts 18:56 < teejae> wrtp: thanks for your impl. i'll see how best to use it 18:56 < wrtp> np 19:00 < skelterjohn> teejae: take a look at gohash.googlecode.com 19:00 < teejae> skelterjohn: looking 19:01 -!- skejoe [~skejoe@188.114.142.162] has joined #go-nuts 19:01 < skelterjohn> i may not have completely understood what you are interested in 19:01 < skelterjohn> but i saw keys, hashes and mappings 19:03 < teejae> skelterjohn: yea, where keys are potentially more maps 19:04 < skelterjohn> with gohash you can use anything as long as you can provide a Hashcode() and Equals(o interface{}) method 19:04 < skelterjohn> hashing a map doesn't seem straightforward without some wrapping 19:04 < skelterjohn> something to do it incrementally as you add and remove items 19:05 < skelterjohn> it might be worth my time to add those functions to the hashmap/hashset structs from gohash :) 19:05 < teejae> skelterjohn: agreed. this really started w/ having constants 19:06 < teejae> skelterjohn: due to the thrift protobuf equivalent i'm implementing 19:06 < teejae> its possible to declare constants which happen to be maps/lists/sets 19:06 < teejae> and the keys are arbitrary, including more maps/lists/sets 19:06 < skelterjohn> ok 19:06 < skelterjohn> well, let me know if you decide to use gohash 19:07 < skelterjohn> or if you have a q about it 19:07 < teejae> skelterjohn: thanks. i really appreciate the help. looks just like what i expect it to look like, w/ respect to java maps 19:08 < skelterjohn> glad you might find it useful! 19:09 < skelterjohn> it's tricky, making open source tools and then just hoping someone uses them 19:09 < skelterjohn> with no easy way to know 19:09 < teejae> skelterjohn: yea, understand what you mean 19:10 < teejae> skelterjohn: frankly, what i'm working on is the first open-source project i've ever contributed to 19:10 < skelterjohn> requires a bit of arrogance, heh 19:11 < skelterjohn> what project, teejae? 19:11 < teejae> https://github.com/teejae/thrift/tree/go_thrift_codegen 19:11 -!- sav1o [~savio@67.18.186.81] has quit [Remote host closed the connection] 19:11 < teejae> thrift Go language binding 19:11 < teejae> thrift = fb's version of protobuf 19:12 < skelterjohn> right, i think you've mentioned this to me before, now 19:12 < teejae> right 19:12 < teejae> i had compilable code, until i decided to break everything cuz i didn't think it was as usable to a go developer 19:13 < teejae> trying to walk line between consistency and ease of use 19:13 < skelterjohn> making things compilable is the easy bit 19:14 < teejae> like i had made it generate types like map[*int]*string 19:14 < teejae> that made no sense :) 19:15 < skelterjohn> that is a bit odd, i agree :) 19:15 < teejae> but it made all the code so elegant 19:15 < teejae> the implementation code, not the generated code :P 19:15 < teejae> because it could do map[*struct]*struct 19:16 < wrtp> skelterjohn: the advantage of the map code that i posted above is that it allows the value type to be statically defined. 19:16 < wrtp> and all standard key types just work, with no need to define Hashcode and Equals methods 19:17 < wrtp> i only just thought of it, but i quite like the idea. 19:18 -!- sav1o [~savio@67.18.186.81] has joined #go-nuts 19:18 < teejae> wrtp: you may want to make a true lib out of it ;) 19:18 < wrtp> yeah, why not. 19:20 -!- mncaudill [~nolan@c-67-188-35-154.hsd1.ca.comcast.net] has quit [Ping timeout: 276 seconds] 19:22 < skelterjohn> wrtp: I have to admit, I don't quite follow what you're saying 19:22 -!- mncaudill [~nolan@c-67-188-35-154.hsd1.ca.comcast.net] has joined #go-nuts 19:23 -!- gits [~gits@77.94.219.158] has quit [Ping timeout: 260 seconds] 19:24 < skelterjohn> or how that example code is supposed to operate 19:24 < wrtp> that's not example code; that's the library 19:24 < skelterjohn> the example code that makes up your library 19:24 < skelterjohn> perhaps it's even the finished product :) 19:24 < skelterjohn> but i still don't get how it's supposed to work 19:25 < skelterjohn> w/r/t "allows the value type to be statically defined" 19:28 -!- Scorchin [~Scorchin@host86-148-177-221.range86-148.btcentralplus.com] has joined #go-nuts 19:28 < wrtp> hold on, i'm just writing an example 19:28 < skelterjohn> sure 19:29 -!- tvw [~tv@212.79.9.150] has quit [Remote host closed the connection] 19:31 < wrtp> http://pastebin.com/36CKhFw9 19:32 < skelterjohn> ah, i see 19:32 -!- artefon [~thiago@dhcp16.usuarios.dcc.ufmg.br] has quit [Quit: bye] 19:32 < wrtp> you can do goinstall rog-go.googlecode.com/hg/key if you want to play with it 19:33 < skelterjohn> that's a good way to do things 19:34 < skelterjohn> esp since you can keep those keys around 19:35 < wrtp> yes - although you have to remember to do so 19:35 < wrtp> and to use the same Mapping object to access the map that you used to create it 19:35 < wrtp> so it has its down sides. 19:36 < wrtp> one current problem - if you range through the map, you can't get the actual key values, but that's a trivial fix (almost in) 19:36 < teejae> you guys are insane in speed ;) 19:37 < wrtp> it's easy if you know what you need to do... :-) 19:37 -!- m4dh4tt3r [~Adium@c-69-181-223-245.hsd1.ca.comcast.net] has joined #go-nuts 19:37 < wrtp> much harder when things aren't so well defined! 19:40 -!- rlab [~Miranda@91.200.158.34] has quit [Read error: Connection reset by peer] 19:42 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts 19:44 -!- m4dh4tt3r [~Adium@c-69-181-223-245.hsd1.ca.comcast.net] has quit [Quit: Leaving.] 19:44 -!- nettok [~quassel@200.119.191.129] has joined #go-nuts 19:47 -!- Eridius [~kevin@unaffiliated/eridius] has joined #go-nuts 19:47 -!- m4dh4tt3r [~Adium@c-69-181-223-245.hsd1.ca.comcast.net] has joined #go-nuts 19:50 < wrtp> skelterjohn: fixed. example here: http://pastebin.com/FXFfpZtc 19:54 -!- Urtie [~kim@90-227-159-22-no57.tbcn.telia.com] has quit [Remote host closed the connection] 19:58 -!- gits [~gits@77.94.219.158] has joined #go-nuts 20:03 -!- tvw [~tv@e176002116.adsl.alicedsl.de] has joined #go-nuts 20:03 < skelterjohn> calling it Value() might be a bit misleading :) 20:06 < wrtp> yeah, i thought that too 20:06 < aiju> misleading names are always good 20:06 < wrtp> but i haven't thought of anything better for the time being 20:06 < aiju> * GFX_IS_DISPLAY_MODE_SUPPORTED 20:06 < aiju> * This routine sets the specified display mode. 20:06 < aiju> (Xfree86) 20:06 -!- gmilleramilar [~gmiller@184-106-207-119.static.cloud-ips.com] has quit [Ping timeout: 240 seconds] 20:07 < aiju> try to reach that standard 20:07 < wrtp> "OtherKey"? "OriginalKey"? "Hasher"? 20:13 -!- femtoo [~femto@95-89-197-23-dynip.superkabel.de] has joined #go-nuts 20:16 -!- illya77 [~illya77@216-149-112-92.pool.ukrtel.net] has quit [Read error: Connection reset by peer] 20:28 -!- m4dh4tt3r [~Adium@c-69-181-223-245.hsd1.ca.comcast.net] has quit [Ping timeout: 240 seconds] 20:32 < wrtp> "Original" it is 20:34 -!- Fish- [~Fish@9fans.fr] has joined #go-nuts 20:34 -!- m4dh4tt3r [~Adium@c-69-181-223-245.hsd1.ca.comcast.net] has joined #go-nuts 20:35 -!- foocraft [~dsc@89.211.156.34] has quit [Ping timeout: 276 seconds] 20:37 -!- foocraft [~dsc@78.101.105.166] has joined #go-nuts 20:38 -!- tensorpudding [~user@99.23.127.179] has joined #go-nuts 20:42 -!- photron [~photron@port-92-201-92-220.dynamic.qsc.de] has joined #go-nuts 20:46 -!- tvw [~tv@e176002116.adsl.alicedsl.de] has quit [Ping timeout: 240 seconds] 20:50 -!- skejoe [~skejoe@188.114.142.162] has quit [Quit: Lost terminal] 20:52 -!- sferry [sam@atheme/member/samferry] has quit [Read error: Operation timed out] 20:53 -!- Archwyrm [~archwyrm@archwyrm.net] has quit [Ping timeout: 272 seconds] 20:53 -!- sav1o [~savio@67.18.186.81] has quit [Ping timeout: 250 seconds] 20:55 -!- suiside [tajnyman@unaffiliated/suiside] has quit [Ping timeout: 255 seconds] 20:55 -!- i__ [~none@unaffiliated/i--/x-3618442] has quit [Ping timeout: 265 seconds] 20:55 -!- mattn_jp [~mattn@112-68-86-111f1.hyg1.eonet.ne.jp] has quit [Ping timeout: 276 seconds] 20:58 -!- xash [~xash@d179069.adsl.hansenet.de] has joined #go-nuts 20:59 -!- Archwyrm [~archwyrm@archwyrm.net] has joined #go-nuts 21:02 -!- samferry [sam@atheme/member/samferry] has joined #go-nuts 21:02 -!- i__ [~none@69.164.206.224] has joined #go-nuts 21:02 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has quit [Ping timeout: 240 seconds] 21:02 -!- adu [~ajr@pool-72-83-254-159.washdc.fios.verizon.net] has joined #go-nuts 21:05 -!- suiside [tajnyman@unaffiliated/suiside] has joined #go-nuts 21:15 -!- femtooo [~femto@95-89-197-23-dynip.superkabel.de] has joined #go-nuts 21:17 -!- femtoo [~femto@95-89-197-23-dynip.superkabel.de] has quit [Ping timeout: 255 seconds] 21:24 -!- enherit [~enherit@cpe-98-149-170-48.socal.res.rr.com] has joined #go-nuts 21:27 -!- sauerbraten [~sauerbrat@p508CEC58.dip.t-dialin.net] has quit [Quit: Leaving] 21:31 -!- atsampson [~ats@94-194-126-16.zone8.bethere.co.uk] has quit [Read error: Connection reset by peer] 21:31 -!- teejae [~teejae@softbank219185095092.bbtec.net] has quit [Quit: teejae] 21:32 -!- atsampson [~ats@94-194-126-16.zone8.bethere.co.uk] has joined #go-nuts 21:39 -!- Davidian1024 [~Davidian1@cpe-173-88-174-84.neo.res.rr.com] has joined #go-nuts 21:40 -!- vpit3833 [~user@203.111.33.203] has joined #go-nuts 21:45 -!- femtooo [~femto@95-89-197-23-dynip.superkabel.de] has quit [Read error: Connection reset by peer] 21:54 -!- xash [~xash@d179069.adsl.hansenet.de] has quit [Ping timeout: 255 seconds] 21:54 -!- bmizerany [~bmizerany@204.14.152.118] has joined #go-nuts 22:01 -!- sav1o [~savio@67.18.186.81] has joined #go-nuts 22:04 -!- zozoR [~zozoR@56346ed3.rev.stofanet.dk] has quit [Quit: Morten. Desu~] 22:05 -!- Tuller [~tuller@c-69-143-52-174.hsd1.va.comcast.net] has joined #go-nuts 22:07 -!- piranha [~piranha@5ED4B890.cm-7-5c.dynamic.ziggo.nl] has quit [Quit: Computer has gone to sleep.] 22:08 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.3] 22:11 -!- TheMue [~TheMue@p5DDF76E1.dip.t-dialin.net] has quit [Quit: TheMue] 22:13 -!- Skola [~ik@5352A3FB.cm-6-3c.dynamic.ziggo.nl] has joined #go-nuts 22:17 -!- Venom_X_ [~pjacobs@75.92.43.21] has joined #go-nuts 22:18 -!- Venom_X [~pjacobs@66.54.185.131] has quit [Ping timeout: 240 seconds] 22:21 -!- rlab [~Miranda@91.200.158.34] has quit [Read error: Connection reset by peer] 22:21 -!- adu [~ajr@pool-72-83-254-159.washdc.fios.verizon.net] has quit [Quit: adu] 22:22 -!- jyxent [~jyxent@129.128.191.96] has quit [Read error: Connection reset by peer] 22:26 -!- jyxent [~jyxent@129.128.191.96] has joined #go-nuts 22:27 -!- virtualsue [~chatzilla@nat/cisco/x-vghuylostvfubinz] has joined #go-nuts 22:30 -!- qjcg [~qjcg@208.88.110.46] has quit [Quit: qjcg] 22:39 -!- napsy [~luka@88.200.96.18] has quit [Quit: leaving] 22:43 -!- Scorchin [~Scorchin@host86-148-177-221.range86-148.btcentralplus.com] has quit [Quit: Scorchin] 22:49 -!- photron [~photron@port-92-201-92-220.dynamic.qsc.de] has quit [Ping timeout: 276 seconds] 22:54 -!- DarthShrine [~angus@pdpc/supporter/student/DarthShrine] has joined #go-nuts 22:56 -!- Fish- [~Fish@9fans.fr] has quit [Quit: So Long, and Thanks for All the Fish] 22:57 -!- i__ [~none@69.164.206.224] has quit [Changing host] 22:57 -!- i__ [~none@unaffiliated/i--/x-3618442] has joined #go-nuts 23:08 -!- Tuller [~tuller@c-69-143-52-174.hsd1.va.comcast.net] has quit [Quit: Computer has gone to sleep.] 23:08 -!- awidegreen [~quassel@c-eacae555.08-2-73746f39.cust.bredbandsbolaget.se] has quit [Read error: Connection reset by peer] 23:12 -!- kimelto [~kimelto@sd-13453.dedibox.fr] has quit [Ping timeout: 246 seconds] 23:12 -!- kimelto [~kimelto@sd-13453.dedibox.fr] has joined #go-nuts 23:13 -!- wrtp [~rog@92.17.53.205] has quit [Quit: wrtp] 23:17 -!- mncaudill [~nolan@c-67-188-35-154.hsd1.ca.comcast.net] has quit [Quit: leaving] 23:18 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has quit [Quit: Verlassend] 23:25 -!- kixo [~kixo@78-1-147-32.adsl.net.t-com.hr] has left #go-nuts [] 23:35 -!- artefon [~thiago@189.59.206.109] has joined #go-nuts 23:41 -!- sav1o [~savio@67.18.186.81] has quit [Quit: bbl] 23:42 -!- virtualsue [~chatzilla@nat/cisco/x-vghuylostvfubinz] has quit [Ping timeout: 246 seconds] 23:52 -!- Skola [~ik@5352A3FB.cm-6-3c.dynamic.ziggo.nl] has quit [Quit: Skola] 23:52 < cbeck> Happiness, thy name is redonkulous numbers of goroutines 23:53 -!- Tuller [~tuller@c-69-143-52-174.hsd1.va.comcast.net] has joined #go-nuts 23:53 < jesusaurus> that++ 23:54 < cbeck> I was spawning 100,000, but the startup time got to be a bit too much --- Log closed Tue Jan 18 00:00:04 2011