--- Log opened Thu Dec 16 00:00:01 2010 00:02 -!- d_m [d6@faeroes.freeshell.org] has quit [Read error: Connection reset by peer] 00:06 < KirkMcDonald> So I've been reading about this: http://apenwarr.ca/log/?m=201012#14 00:06 < KirkMcDonald> It is a new build system, a make replacement, more or less. 00:07 < KirkMcDonald> It has some compelling ideas in there, and some things which limit its utility to Go. 00:07 < KirkMcDonald> However, I was wondering: Is there a way to get gc to output which other packages were imported when compiling a package? 00:08 < KirkMcDonald> Actually, I'm not sure that would actually help. 00:09 < kimelto> "So I wrote it" :) 00:10 < KirkMcDonald> I was thinking it would be useful to extend the way redo automatically tracks dependencies on header files in C code to dependencies on other packages in Go code, but that won't actually work. 00:10 < KirkMcDonald> (Since packages are generated files.) 00:11 < kimelto> KirkMcDonald: how redo achieve this? 00:12 < KirkMcDonald> kimelto: It uses gcc's -MD -MF options to generate a list of the files included by the preprocessor. 00:12 < KirkMcDonald> This list is then stored in a sqlite database. 00:12 < KirkMcDonald> And used for future dependency checks. 00:13 < kimelto> eww! why a sqlite database? 00:13 < KirkMcDonald> kimelto: Because the current version is a quick hack written in Python, and Python has sqlite in the standard library. 00:13 < kimelto> it is cheap to run -MM 00:14 < KirkMcDonald> kimelto: -MM requires parsing the .c file, yes? 00:14 < kimelto> yep 00:14 < KirkMcDonald> Looking up a previously-stored dependency list is going to be quite a lot faster than that. 00:15 < kimelto> but gcc does that when it compiles the .c in .o, so it is not an extra job. 00:15 < kimelto> I guess 00:15 < KirkMcDonald> kimelto: It's actually very clever. 00:15 < KirkMcDonald> The first time you compile the .c into the .o, there is no dependency information. 00:16 < KirkMcDonald> So it compiles it, and during compilation, remembers which header files it depended on. 00:16 < kimelto> but we dont care as we want to compile anyway 00:16 < kimelto> and if we need to update the deps, we also want to recompile 00:16 < KirkMcDonald> Yeah. 00:17 < kimelto> the sqlite is imho, to read a single file instead of 10k mysourcefile.dep 00:17 < kimelto> svn proved it wrong :-) 00:18 -!- enherit [~enherit@cpe-98-149-170-48.socal.res.rr.com] has joined #go-nuts 00:18 < kimelto> KirkMcDonald: in fact I was planning to write a similar tool in C with the "Makefile" in Lua 00:19 < nsf> hm.. redo looks interesting 00:19 < nsf> kimelto: bad idea 00:19 < KirkMcDonald> Anyway, I was evaluating how redo would apply to Go. 00:19 < KirkMcDonald> There are a few shortcomings. 00:19 < kimelto> nsf: because? 00:20 < nsf> because no one wants to learn another programming language 00:20 < nsf> even if it's as simple as lua 00:20 < KirkMcDonald> The main one is that every target has its own .do file, which takes the name of targetname.do. 00:20 < KirkMcDonald> But in Go, the name of the target depends on the architecture. 00:20 < KirkMcDonald> So you might end up with foo.6.do, foo.5.do, foo.8.do... 00:21 < KirkMcDonald> So, as redo is currently written, there isn't a sensible solution for that. 00:21 < nsf> redo is written in python :( 00:21 < KirkMcDonald> It is. 00:21 < nsf> it is a failure 00:21 < nsf> :) 00:21 < Namegduf> I'm pretty sure you could just not have the name of the target depend on the architecture 00:21 < KirkMcDonald> Heh 00:21 < nsf> one of the most important make features is availability 00:21 < nsf> it just exists on every nix machine 00:21 < KirkMcDonald> Namegduf: That would require changing Go, wouldn't it? 00:22 < Namegduf> I don't think so. 00:22 < KirkMcDonald> Namegduf: Since gc looks up package names like that? 00:22 < Namegduf> WhyUnless I missed something. 00:22 < Namegduf> *Unless I missed something. 00:22 < kimelto> nsf: my point, if the Foofile is written in Lua it is not another format/language 00:22 < Namegduf> It definitely doesn't look up package names like that. 00:22 < Namegduf> Those aren't package names, they're object files. 00:22 < kimelto> nsf: the language part is for the extensibility of the tool 00:23 < nsf> kimelto: it will be in lua.. because it will be parsed by lua 00:23 < KirkMcDonald> Namegduf: Oh, right. 00:23 < nsf> lua's syntax is not something like ruby's where (like in rake) you can write stuff which doesn't even look like ruby 00:23 < KirkMcDonald> Namegduf: I am mixing up my Go stuff. 00:23 < KirkMcDonald> Namegduf: Right, your targets for Go would look like foo.a.do 00:23 < KirkMcDonald> So that's okay. 00:23 < nsf> and there is a tool that uses makefiles in lua 00:23 < nsf> called premake 00:24 < nsf> nah.. redo is crap too 00:25 < KirkMcDonald> Still, I'm pretty sure that there isn't a sensible way to automatically determine dependencies for Go packages. 00:25 < nsf> every target has its own .do file... good bye 00:25 < KirkMcDonald> nsf: Well, not *every* target. 00:25 < KirkMcDonald> nsf: With respect to C code, you usually just define a default.o.do file which handles everything. 00:25 < KirkMcDonald> nsf: And then (say) an all.do which links all the .o files. 00:26 < nsf> two of them 00:26 < nsf> it's already more than I want 00:26 -!- iant [~iant@nat/google/x-skgkabbbygbxefzh] has quit [Read error: Operation timed out] 00:26 < KirkMcDonald> In Go, you'd define one .do file for each package, and another to link an application. 00:26 < KirkMcDonald> Which is basically how the Makefile stuff already works. 00:27 < nsf> I should finish my non-recursive templates for make definitely 00:27 < kimelto> nsf: premake is yet another makefile generator (erk!) 00:27 < nsf> kimelto: it doesn't matter really 00:28 < nsf> it uses make for one purpose: use deps tree to build and rebuild stuff 00:28 < nsf> it can be written manually not a big deal 00:28 < nsf> the biggest part of the build system are build config files 00:29 < nsf> their maintainance, integration with other tools, etc. 00:29 -!- xash [~xash@d142043.adsl.hansenet.de] has quit [Ping timeout: 255 seconds] 00:30 < nsf> make is so cool, because it uses shell commands for build recipes 00:30 < nsf> (let's forget about windows at this point) 00:30 -!- alkavan [~alkavan@IGLD-84-228-133-229.inter.net.il] has joined #go-nuts 00:30 < kimelto> I like their lua format <3 00:30 < nsf> there were a lot of tries to propose something different 00:30 < nsf> scons, waf, premake, cmake, etc. 00:31 < nsf> nothing beats simplicity of make 00:31 < nsf> even though gnu make is far from simple now 00:31 < nsf> the problem with current make stuff is that it lacks the design goal 00:31 < nsf> people just add features on top of other features 00:32 < nsf> there is an interesting project which tries to fix it 00:32 < nsf> called makepp 00:32 < nsf> but.. in the end 00:32 < nsf> make still wins 00:33 < nsf> because it's everywhere 00:33 < KirkMcDonald> nsf: Also, there is this: http://cr.yp.to/redo/honest-script.html 00:33 < kimelto> there is an attempt for FreeBSD JBuild 00:33 < kimelto> based on bsdmake 00:33 < kimelto> iirc it tracks system() calls or something like that 00:34 < nsf> KirkMcDonald: makepp fixes that as well 00:34 < nsf> it tracks build commands and if the build command changes (due to env vars or something) it is considered as out-of-date 00:34 < nsf> s/changes/is changed/ 00:35 -!- artefon [~thiago@187.59.187.20] has quit [Quit: bye] 00:35 -!- iant [~iant@67.218.104.35] has joined #go-nuts 00:35 -!- mode/#go-nuts [+v iant] by ChanServ 00:35 < nsf> but I'm not suggesting to use makepp, just saying that there are ways to fix make and what's more important all of them are known 00:35 < nsf> all make flaws are known 00:35 < nsf> it's like C 00:36 < nsf> we all know problems with C 00:36 < nsf> preprocessor, ugly declarations syntax 00:36 < nsf> but still no one wants to fix it 00:36 < nsf> backward compatibility tales, etc 00:36 < nsf> :\ 00:37 < kimelto> C is fine :) 00:37 < nsf> no it's not 00:38 < nsf> slightly changing declarations syntax we will be able to speed up build times massively 00:38 < nsf> and conversion can be automated to some point actually 00:39 < nsf> but people are afraid to do this 00:39 < nsf> for some reason, I don't know 00:40 < nsf> btw, its syntax is freaking unreadable 00:41 < nsf> C: int (*(*ptr)[10])() 00:41 < nsf> Go: var ptr *[10]func() int 00:41 < nsf> simple example 00:41 < nsf> a pointer to an array (10 elements) of function pointers which point to a funtion with no arguments and returning int 00:41 < nsf> try read the C version :) 00:43 < nsf> I know why people can't fix it 00:44 < nsf> everytime someone wants to do this, there is a temptation to add new features 00:44 < nsf> and we end up with stuff like Java, C++, D, C#, etc. 00:44 < nsf> Go is a miracle in that sense 00:44 < kimelto> C++ ... :-) 00:46 < nsf> well, C++'s creator hasn't tried to fix C actually 00:46 < nsf> so it's worse than others 00:47 < nsf> Java is one of the best examples as a matter of fact 00:48 < nsf> it's the only widely adopted language that has a _lot_ of development tools 00:48 < nsf> static analyzers, cool IDEs, refactoring tools, etc. 00:48 < KirkMcDonald> An uncharitable person would say that is because it requires all of these things. :-) 00:48 < nsf> and almost all of that is a result of a nice syntax 00:50 < nsf> I don't know, maybe it requires them, ok 00:50 < nsf> but it also shows how language should be designed in order to be able to have all this stuff 00:51 < KirkMcDonald> I would certainly agree that a sensible syntax makes writing tools ever so much easier. 00:51 < nsf> bad syntax and preprocessor crap should be eliminated 00:51 < kimelto> KirkMcDonald: http://www.bsdcan.org/2010/schedule/events/198.en.html sounds hack-ish :-) but the make tool does not need compiler support to track dependencies 00:52 < KirkMcDonald> Oof. 00:52 < kimelto> nsf: the daily nightmare in C is headers crap. especially the scope of the headers included in a header. 00:53 < kimelto> nsf: but the other features of the preprocessor are cool :p 00:53 < nsf> it's a major design flaw of the language 00:53 < nsf> lack of modules system 00:53 < KirkMcDonald> If there's one thing D proved, it's that the stuff in the preprocessor is much better when it is actually part of the language. 00:54 < KirkMcDonald> See also: static if 00:54 < nsf> KirkMcDonald: I disagree, but maybe 00:54 < KirkMcDonald> And when you use a module system instead of #include, of course. 00:54 < nsf> the code with lots of static ifs is still hard to read 00:54 -!- watr_ [~watr@66.183.100.58] has quit [Ping timeout: 240 seconds] 00:55 < nsf> have you seen coolish GNU projects where the source code contains tons of ifdefs 00:55 < KirkMcDonald> nsf: It depends. Certainly any compile-time chicanery should be done with care. 00:55 < nsf> static ifs is just the same stuff 00:55 < nsf> take a look at vim's source code for example 00:55 < nsf> it's horrible 00:55 < KirkMcDonald> nsf: There is one important difference. 00:55 < nsf> yes, static ifs are part of the syntax 00:55 -!- nettok [~quassel@200.119.164.238] has joined #go-nuts 00:56 < KirkMcDonald> nsf: #ifdefs are strictly textual... yeah, that. 00:56 < nsf> but it's a show stopper for tool writers 00:56 < nsf> mostly 00:56 < nsf> when the conceptual existance of ifdefs or static ifs in the code is a problem for code readers 00:56 < KirkMcDonald> nsf: The other key thing is that static if can access template parameters. 00:56 < KirkMcDonald> D unifies many of these things into the single concept of a compile-time value. 00:57 < nsf> existence* 00:57 < kimelto> quick go question: if I have a 1MB string and only a slice which ref 10bytes, the whole string will remain in memory till the slice is not reachable? 00:57 < cbeck> kimelto: Yes 00:57 -!- skelterjohn [~jasmuth@c-68-45-238-234.hsd1.nj.comcast.net] has quit [Quit: skelterjohn] 00:57 < nsf> KirkMcDonald: I understand, but it doesn't change anything for me.. static ifs just make code really hard to read 00:57 < KirkMcDonald> nsf: So certain kinds of code that you'd write in C++ using a lot of template specializations can become very simple uses of static if on D. 00:57 < KirkMcDonald> s/on/in/ 00:58 < nsf> I don't know 00:58 < nsf> I haven't written code like that in C++ 00:58 < nsf> templates were useful for containers, that's for sure 00:59 < KirkMcDonald> My experience with D is perhaps colored by writing what was essentially a massive metaprogramming exercise in it. 00:59 < nsf> in C++ metaprogramming is a huge pain 00:59 < nsf> in C++0x it's the same 00:59 < KirkMcDonald> In D, it was almost pleasant. 00:59 < nsf> http://www.gamedev.ru/community/nsfgd/blog/?id=5018 01:00 < KirkMcDonald> Like, look at this: http://dsource.org/projects/pyd/browser/trunk/infrastructure/pyd/func_wrap.d#L94 01:00 < KirkMcDonald> That function may not be immediately obvious, but it's brilliant. 01:00 < nsf> my try of C++0x usage :D 01:00 -!- adu [~ajr@pool-173-66-11-168.washdc.fios.verizon.net] has joined #go-nuts 01:00 < KirkMcDonald> It calls a D function with the arguments provided by a Python tuple. 01:01 < KirkMcDonald> And it's, what, 30 lines long? 01:01 < nsf> well, yeah, D is better than C++ 01:01 < nsf> I'm sure 01:01 < nsf> but is C++ good in any way? 01:01 < KirkMcDonald> I have long asserted that C++ is terrible in every sense of the word. 01:01 -!- tvw [~tv@e176003040.adsl.alicedsl.de] has quit [Remote host closed the connection] 01:02 < nsf> and D is better than terrible? :) in what direction? 01:02 < nsf> better at being terrible? :) 01:02 < nsf> or.. 01:02 < KirkMcDonald> D is certainly different. 01:02 < KirkMcDonald> D's issues are not the same as C++ issues, to be sure. 01:02 < KirkMcDonald> C++'s* 01:02 < nsf> I hope so 01:03 < exch> http://www.openanimals.com/ these guys need a gopher 01:03 < nsf> open animals.. 01:03 < nsf> what a name 01:03 < exch> :P 01:04 < kimelto> D issuues are (or were, I dont know if they are fixed): the lack of a good open source compiler, the standard lib mess 01:04 < nsf> lack of a valid specification 01:06 < nsf> maybe it sounds strange, but after some time of Go usage.. I tend to appreciate the fact that it doesn't have generics 01:06 < nsf> at least general kind of generics 01:06 < nsf> sure, there are built-in generic types and functions 01:06 < nsf> but that's fine 01:06 < KirkMcDonald> The built in maps, arrays, and slices help. 01:06 < nsf> yeah 01:06 < nsf> in fact they are all you need for containers 01:07 < KirkMcDonald> Well. Mostly. 01:07 < nsf> other data structures are pointer based anyway 01:07 < KirkMcDonald> Yeah. 01:07 < KirkMcDonald> Oh, also channels. 01:07 < KirkMcDonald> Can't forget those. 01:07 < nsf> I don't use them much 01:07 < KirkMcDonald> And of course the func type gives you closures. 01:08 < nsf> all I want from Go now is the good GC 01:08 < nsf> and it will be a really good language for me 01:08 < kimelto> same here 01:09 < KirkMcDonald> That has always been one of D's weaker parts. 01:09 < kimelto> maybe shared standard lib? 2.6M is ridiculous for a hello world :p 01:09 < KirkMcDonald> Its GC fairly well sucks. 01:09 < nsf> kimelto: it's fine 01:09 < exch> KirkMcDonald: so does go's :p 01:09 < nsf> for big projects shared libs hurt more than give anyway 01:09 < KirkMcDonald> exch: Right. But Go, at least, has some hope of improving it. 01:09 < nsf> I have bad experience with them 01:10 < exch> true 01:10 < KirkMcDonald> exch: I can see Go moving to a compacting collector at some point in the future, say. 01:10 < nsf> especially in linux environment 01:10 < nsf> where each distro has different versions of libraries :) 01:10 < nsf> possibly with patches 01:10 < nsf> it's a nightmare 01:10 < KirkMcDonald> I am a fan of static binaries. 01:10 < KirkMcDonald> Particularly in a production environment. 01:10 < nsf> me too.. recently though 01:10 < kimelto> KirkMcDonald: compacting? 01:11 < KirkMcDonald> kimelto: A moving collector. 01:11 < kimelto> KirkMcDonald: kind of copy-on-write? 01:11 < kimelto> or copy-on-free should I ay 01:11 < KirkMcDonald> A collector which is able to move allocated memory around. 01:11 < nsf> KirkMcDonald: I don't think that compacting collector is currently possible in Go 01:11 < nsf> because they want to keep stack scanning conservative 01:11 < kimelto> like garbage first from java? 01:11 < nsf> it means there is no way to detect a pointer 100% 01:12 < KirkMcDonald> Ahh. 01:12 < nsf> and moving GC has to change pointers 01:12 < KirkMcDonald> The D collector is about a conservative as it gets. 01:12 < KirkMcDonald> as* 01:12 < nsf> but maybe it's possible to keep stack objects pinned 01:12 < nsf> I don't know 01:13 < KirkMcDonald> And given the extent to which D can interact with C code, moving to a non-conservative collector is highly unlikely. 01:13 < nsf> I mean objects which have a pointer to them on the stack 01:13 < KirkMcDonald> Or, at least, moving to a moving collector. 01:13 < KirkMcDonald> nsf: Yes. 01:13 < nsf> moving collectors are fine 01:13 < nsf> Mono has one 01:13 < nsf> you just need to provide an interface for pinning 01:13 < KirkMcDonald> Right. 01:14 < KirkMcDonald> And in fact D has a pinning API for its GC, it just doesn't do all that much. 01:14 < nsf> and in the machine there are things like this one: http://en.wikipedia.org/wiki/Translation_lookaside_buffer 01:14 < nsf> which make moving collector a sensible choice 01:14 < nsf> imho 01:14 < nsf> I don't know, I'm not a big specialist in that :) 01:15 * kimelto reads mono sgen-gc whitepaper 01:15 < KirkMcDonald> The main reason to prefer a moving collector, as I understand it, is that it can vastly speed up allocations. 01:15 < nsf> and well.. provide memory locality 01:15 < nsf> :) 01:15 < KirkMcDonald> Yes, that too. 01:15 < KirkMcDonald> Also good. 01:16 < nsf> the biggest problem for GC is to minimize runtime impact on the app itself 01:16 < nsf> pauses should be minimal 01:16 < nsf> and the total collection time should be minimal as well 01:16 < nsf> quite hard to achieve 01:17 -!- InaVegt [~InaVegt@dsl-087-195-206-242.solcon.nl] has quit [Read error: Connection reset by peer] 01:17 -!- InaVegt [~InaVegt@dsl-087-195-206-242.solcon.nl] has joined #go-nuts 01:17 < nsf> with many cores we can actually forget about collection time problem 01:17 < nsf> I mean "time" as "CPU time" 01:18 < exch> dedicate a single core to nothing but GCing 01:18 < nsf> yeah 01:18 < nsf> but still, there will be impact on the app itself 01:18 < KirkMcDonald> Don't you need to lock things at some point? 01:18 < nsf> yes 01:18 < nsf> that's another problem :) 01:19 < nsf> there are few papers for that 01:19 < nsf> http://research.microsoft.com/en-us/um/people/simonpj/papers/parallel-gc/index.htm 01:19 < nsf> this one iirc 01:20 -!- kkress [~kkress@kkress2.xen.prgmr.com] has quit [Ping timeout: 250 seconds] 01:20 < nsf> I think the only thing they use 01:20 < nsf> is a write barrier 01:21 < nsf> but it's the only paper I've seen that descibes nice parallel GC 01:21 < nsf> maybe there are others, I don't know 01:23 < nsf> ah.. wait 01:23 < nsf> it's not a concurrent GC 01:23 < nsf> where mutator and collector run at the same time 01:23 < nsf> it simply allows to parallelize GC work 01:24 < nsf> mutator should be paused still 01:24 < nsf> :( 01:24 < nsf> no magic 01:26 -!- ExtraSpice [~XtraSpice@88.118.33.48] has quit [Ping timeout: 276 seconds] 01:26 < kimelto> what are "pinned" objects you were refering to? 01:27 < bawr> Objects which can't be mofred by the GC. basically. 01:28 < bawr> *moved, even 01:28 < plexdev> http://is.gd/iOGg5 by [Alex Brainman] in 4 subdirs of go/src/pkg/ -- runtime: move windows goargs implementation from runtime and into os package 01:28 < nsf> yeah 01:28 < plexdev> http://is.gd/iOGga by [Alex Brainman] in go/src/cmd/ld/ -- 8l: remove unneeded windows check 01:29 -!- enherit [~enherit@cpe-98-149-170-48.socal.res.rr.com] has quit [Quit: leaving] 01:30 < nsf> "for sgen, objects pointed to by stack values will remain pinned, fragmenting the nursery and hurting collector performance." 01:30 < nsf> yeah, as it was expected 01:30 < nsf> then moving GC can be true for Go too 01:30 < nsf> with that exception 01:33 -!- kkress [~kkress@kkress2.xen.prgmr.com] has joined #go-nuts 01:40 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has joined #go-nuts 01:45 < plexdev> http://is.gd/iOIV6 by [Andrew Gerrand] in 2 subdirs of go/ -- release.2010-12-15 01:47 -!- rejb [~rejb@unaffiliated/rejb] has quit [Quit: .] 01:47 -!- felipe [~felipe@my.nada.kth.se] has quit [Remote host closed the connection] 02:01 -!- l00t [~i-i3id3r_@187.127.167.73] has joined #go-nuts 02:01 < plexdev> http://is.gd/iOLJ2 by [Andrew Gerrand] in go/ -- tag release.2010-12-15 02:01 < plexdev> http://is.gd/iOLJe by [Andrew Gerrand] in go/doc/devel/ -- doc/devel: release notes tweak 02:07 -!- DarthShrine [~angus@60-242-109-62.tpgi.com.au] has joined #go-nuts 02:07 -!- DarthShrine [~angus@60-242-109-62.tpgi.com.au] has quit [Changing host] 02:07 -!- DarthShrine [~angus@pdpc/supporter/student/DarthShrine] has joined #go-nuts 02:08 -!- shvntr [~shvntr@113.84.150.147] has joined #go-nuts 02:28 -!- iant [~iant@67.218.104.35] has quit [Quit: Leaving.] 02:29 -!- Tv [~tv@cpe-76-168-227-45.socal.res.rr.com] has quit [Ping timeout: 240 seconds] 02:41 < nsf> os/inotify.. nice :) 02:42 < nsf> and of course cgo 02:42 < nsf> let's see how it works with my bindings 02:51 -!- jartur [~jartur@81-045-adsl.vntc.ru] has joined #go-nuts 02:55 -!- skelterjohn [~jasmuth@c-68-45-238-234.hsd1.nj.comcast.net] has joined #go-nuts 02:58 < nsf> CGO_DEPS was removed from the Make.pkg :((( 03:00 -!- boscop [~boscop@g230090153.adsl.alicedsl.de] has quit [Ping timeout: 240 seconds] 03:00 -!- boscop [~boscop@g227142020.adsl.alicedsl.de] has joined #go-nuts 03:02 < nsf> damn, I was linking my code to cgo_*.so statically.. now it will be a problem 03:09 <@adg> nsf: explain more 03:09 < nsf> I'm writing the question to the ML now 03:15 -!- adu [~ajr@pool-173-66-11-168.washdc.fios.verizon.net] has quit [Quit: adu] 03:15 -!- skelterjohn [~jasmuth@c-68-45-238-234.hsd1.nj.comcast.net] has quit [Quit: skelterjohn] 03:17 -!- fenicks [~christian@log77-3-82-243-254-112.fbx.proxad.net] has quit [Ping timeout: 265 seconds] 03:18 < nsf> adg: well, previously there were: 03:18 < nsf> mylib.a 03:18 < nsf> cgo_mylib.so 03:18 < nsf> mylib.so 03:19 < nsf> mylib.a contains Go glue to cgo_mylib.so which contains glue to mylib.so :) 03:19 < nsf> it was possible to remove mylib.so and link the library directly to cgo_mylib.so 03:19 < nsf> (who needs two dlls anyway) 03:19 < nsf> and that's what I was doing for termbox bindings and llvm bindings 03:20 < nsf> the problem is 03:20 < nsf> now there is no cgo_mylib.so 03:20 < nsf> it's in mylib.a now, because linker now can link that relatively simple glue code 03:21 < nsf> my library is also simple and I want it to include in the mylib.a as well 03:21 < nsf> the question is.. is it possible? :) 03:21 < drd> so.. has there been a lot of changes to the linker lately? 03:21 < nsf> mostly in the cgo area 03:22 < drd> for instance, i don't see the cgo.so files being generated with a fresh install of go.. and 03:22 < drd> yeah 03:22 -!- adu [~ajr@pool-173-66-11-168.washdc.fios.verizon.net] has joined #go-nuts 03:22 < nsf> it has limited capabilities to link ELF and O-Mach files 03:22 < nsf> now 03:22 < drd> i'm getting some weird errors which lead me to believe that there may be some problems with that capability :) 03:22 -!- sahid [~sahid@LNeuilly-152-21-22-10.w193-253.abo.wanadoo.fr] has quit [Read error: Operation timed out] 03:22 < nsf> that is gcc/linux's and mac's object files 03:23 < drd> nsf: do you know when that functionality got added, i'd like to test this further to confirm my suspiscions 03:23 < nsf> well, I use release branch of go 03:24 < nsf> it was added in the release today 03:24 < nsf> so.. it was added somewhere in between 2010-12-15 and 2010-12-08 03:24 -!- ath [ath@omega.lambda.fi] has quit [Ping timeout: 250 seconds] 03:24 < drd> nsf: ok, i can work with that.. thanks! 03:25 -!- ath [ath@omega.lambda.fi] has joined #go-nuts 03:26 -!- sahid [~sahid@LNeuilly-152-21-22-10.w193-253.abo.wanadoo.fr] has joined #go-nuts 03:27 -!- skelterjohn [~jasmuth@c-68-45-238-234.hsd1.nj.comcast.net] has joined #go-nuts 03:28 -!- InaVegt [~InaVegt@dsl-087-195-206-242.solcon.nl] has quit [Ping timeout: 240 seconds] 03:32 -!- fenicks [~christian@log77-3-82-243-254-112.fbx.proxad.net] has joined #go-nuts 03:33 < plexdev> http://is.gd/iP0oW by [Russ Cox] in go/src/cmd/ld/ -- ld: text segment should not be writable 03:44 -!- keithcascio [~keithcasc@nat/google/x-pdhorcybrxipaswg] has quit [Quit: Leaving] 03:46 -!- iant [~iant@adsl-71-133-8-30.dsl.pltn13.pacbell.net] has joined #go-nuts 03:46 -!- mode/#go-nuts [+v iant] by ChanServ 03:49 -!- Chopinn [~Chopin@ti0018a380-dhcp1590.bb.online.no] has joined #go-nuts 03:50 < plexdev> http://is.gd/iP2TV by [Andrew Gerrand] in go/ -- release.2010-12-15.1 03:50 < plexdev> http://is.gd/iP2U2 by [Andrew Gerrand] in go/ -- tag release.2010-12-15.1 03:50 < nsf> hehe 03:50 < nsf> one liner release 03:52 <@adg> :) 03:52 <@adg> one _character_ release ;) 03:52 < nsf> indeed 03:53 <@adg> rsc just corrected me: a 1-bit release 03:53 < nsf> :D 03:53 < drd> lol 03:53 < drd> we just had that conversation 04:04 <@adg> who's we? 04:07 < drd> a bunch of college students working on an audio pipeline in go 04:08 < drd> and in my case, possibly running into linker problems on darwin 64 04:08 < drd> but i may just be doing something stupid, too :) 04:09 < drd> http://code.google.com/p/go-fightclub/ if you're interested 04:11 <@adg> hey cool, i've been working on something similar 04:12 <@adg> similar but much simpler :) 04:12 < drd> adg, cool. it's been fun learning how to wrap libav* and portaudio w/ cgo 04:13 <@adg> i've been writing a synthesizer but it merely outputs wav files 04:13 < TheSeeker> tag and release? 04:13 < drd> adg, nice.. it wouldn't be too hard to co-opt portaudio to do direct output 04:17 < drd> what kind of synthesizer? 04:21 < plexdev> http://is.gd/iP79K by [Nigel Tao] in go/src/pkg/exp/draw/ -- exp/draw: remove Border function. 04:24 <@adg> drd: just a simple one, it generates sine waves at the moment 04:24 <@adg> drd: but i'm experimenting with the design 04:24 <@adg> i'm interested in the idea of passing around []byte audio buffers via channels 04:24 <@adg> and also sending instructions to each module via channels 04:24 <@adg> but it's a complicated thing 04:25 < cbeck> We're using two channels, one for header info, one for audio buffers 04:25 < drd> adg: yeah i've been wondering about how to do something like lfo's with the design we have 04:27 <@adg> the concept i'm thinking about now is that each instruction has a time span associated with it 04:28 <@adg> so each unit won't process the next instruction until it's finished with the current one 04:29 <@adg> but that has limitations, and requires some intermediatry layer to serialize instructions that overlap 04:30 -!- oldumy [~oldumy@2001:da8:204:1191:21f:16ff:fe1f:5819] has joined #go-nuts 04:30 <@adg> old-school trackers used to break everthing down into single note periods, and each channel would get a complete instruction on every 'tic' 04:30 -!- sav [~lsd@jagat.xored.org] has left #go-nuts ["ERC Version 5.3 (IRC client for Emacs)"] 04:31 <@adg> i'll have to take a closer look at your code :) 04:31 < cbeck> Constructive criticism very welcome 04:42 -!- james [~espeed@63.246.231.57] has joined #go-nuts 04:42 < oldumy> Is there a way to use the buffer in C code directly? 04:43 -!- tav [~tav@92.7.114.67] has quit [Quit: tav] 04:46 < cbeck> oldumy: Yes, you just pass &buffer[0], it gets ugly with 2d slices though 04:50 < oldumy> cbeck: thanks 04:59 -!- foocraft [~dsc@89.211.165.246] has quit [Read error: Operation timed out] 05:02 -!- werdan7 [~w7@freenode/staff/wikimedia.werdan7] has joined #go-nuts 05:33 -!- felipe [~felipe@my.nada.kth.se] has joined #go-nuts 05:41 -!- fabled [~fabled@mail.fi.jw.org] has joined #go-nuts 05:49 -!- foocraft [~dsc@89.211.188.252] has joined #go-nuts 05:51 -!- Wiz126 [~Wiz@24.229.245.72.res-cmts.sm.ptd.net] has joined #go-nuts 06:02 -!- Garen [noway@cpe-69-76-18-3.natnow.res.rr.com] has quit [] 06:10 -!- zozoR [~zozoR@56346ed3.rev.stofanet.dk] has joined #go-nuts 06:31 -!- Eridius [~kevin@unaffiliated/eridius] has quit [Ping timeout: 276 seconds] 06:31 -!- Nitro [~Nitro@unaffiliated/nitro] has quit [Quit: This computer has gone to sleep] 06:55 -!- zozoR [~zozoR@56346ed3.rev.stofanet.dk] has quit [Ping timeout: 264 seconds] 07:00 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.3] 07:05 -!- Kashia [~Kashia@port-92-200-39-124.dynamic.qsc.de] has quit [Ping timeout: 240 seconds] 07:11 -!- zozoR [~zozoR@56347ac9.rev.stofanet.dk] has joined #go-nuts 07:11 -!- Kashia [~Kashia@port-92-200-39-124.dynamic.qsc.de] has joined #go-nuts 07:17 -!- nettok [~quassel@200.119.164.238] has quit [Ping timeout: 272 seconds] 07:18 -!- zozoR [~zozoR@56347ac9.rev.stofanet.dk] has quit [Quit: Morten. Desu~] 07:20 -!- werdan7 [~w7@freenode/staff/wikimedia.werdan7] has quit [Read error: Connection reset by peer] 07:34 -!- hagna [~hagna@74-92-245-181-Utah.hfc.comcastbusiness.net] has quit [Ping timeout: 276 seconds] 07:35 -!- hagna [~hagna@74-92-245-181-Utah.hfc.comcastbusiness.net] has joined #go-nuts 07:44 -!- sofire [~sofire@220.181.147.2] has joined #go-nuts 07:46 -!- sofire [~sofire@220.181.147.2] has quit [Client Quit] 07:47 -!- sofire [~sofire@220.181.147.2] has joined #go-nuts 07:48 -!- bortzmeyer [~bortzmeye@batilda.nic.fr] has joined #go-nuts 07:59 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Quit: |Craig|] 07:59 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts 07:59 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Client Quit] 08:01 -!- Chopinn [~Chopin@ti0018a380-dhcp1590.bb.online.no] has quit [Quit: Leaving] 08:01 -!- alkavan [~alkavan@IGLD-84-228-133-229.inter.net.il] has quit [Quit: Leaving] 08:09 -!- LeNsTR [~lenstr@unaffiliated/lenstr] has quit [Quit: LeNsTR] 08:12 -!- photron_ [~photron@port-92-201-133-149.dynamic.qsc.de] has joined #go-nuts 08:13 -!- saschpe [~quassel@opensuse/member/saschpe] has joined #go-nuts 08:18 -!- tav [~tav@92.7.114.67] has joined #go-nuts 08:18 -!- mcot__ [~mcot@pool-71-171-113-161.clppva.fios.verizon.net] has quit [Quit: Leaving] 08:19 -!- werdan7 [~w7@freenode/staff/wikimedia.werdan7] has joined #go-nuts 08:21 -!- ExtraSpice [~XtraSpice@88.118.33.48] has joined #go-nuts 08:27 -!- sofire [~sofire@220.181.147.2] has quit [Ping timeout: 240 seconds] 08:30 -!- ExtraSpice [~XtraSpice@88.118.33.48] has quit [Max SendQ exceeded] 08:31 -!- ExtraSpice [~XtraSpice@88.118.33.48] has joined #go-nuts 08:33 -!- Kashia [~Kashia@port-92-200-39-124.dynamic.qsc.de] has quit [Quit: Leaving] 08:34 -!- ios_ [~ios@180.191.131.10] has joined #go-nuts 08:37 -!- SoniaKeys [Alliebloom@c-24-91-112-191.hsd1.ma.comcast.net] has joined #go-nuts 08:55 -!- wrtp [~rog@92.17.83.201] has joined #go-nuts 08:59 -!- serbaut [~joakims@88.80.182.68] has quit [Read error: Connection reset by peer] 09:07 -!- adu [~ajr@pool-173-66-11-168.washdc.fios.verizon.net] has quit [Quit: adu] 09:08 -!- actress [~robert@79.117.176.253] has joined #go-nuts 09:12 -!- actress [~robert@79.117.176.253] has left #go-nuts [] 09:12 -!- actress [~robert@79.117.176.253] has joined #go-nuts 09:30 -!- DarthShrine [~angus@pdpc/supporter/student/DarthShrine] has quit [Quit: DarthShrine] 09:30 -!- DarthShrine [~angus@60-242-109-62.tpgi.com.au] has joined #go-nuts 09:30 -!- DarthShrine [~angus@60-242-109-62.tpgi.com.au] has quit [Changing host] 09:30 -!- DarthShrine [~angus@pdpc/supporter/student/DarthShrine] has joined #go-nuts 09:31 -!- Kashia [~Kashia@port-92-200-39-124.dynamic.qsc.de] has joined #go-nuts 09:37 -!- actress_ [~robert@79.117.156.23] has joined #go-nuts 09:39 -!- actress [~robert@79.117.176.253] has quit [Ping timeout: 240 seconds] 10:01 -!- espeed [~espeed@63.246.231.57] has quit [Read error: Connection reset by peer] 10:14 -!- jartur [~jartur@81-045-adsl.vntc.ru] has quit [Ping timeout: 240 seconds] 10:23 -!- actress [~robert@79.117.156.23] has quit [Quit: actress] 10:24 < mpl> hello 10:25 < mpl> how does one remove an entry from a map? 10:27 < SoniaKeys> It's in the spec under "Indexes" 10:27 < DarthShrine> mpl: yourmap[foo] = nil, false, I'd say 10:29 < KBme> nil, false? 10:29 < KBme> it seems to work fine with nil 10:30 < mpl> nil should be enough, but it can't hurt to set the ok to false, can it? 10:31 < SoniaKeys> mpl. no. it's the false that's important. the nil is actually ignored. 10:31 < mpl> good, thx 10:31 < KBme> what? 10:32 * KBme calls bullsh*t 10:32 < SoniaKeys> yeah, it's one of go's quirks, that you are required to supply a value that will be ignored in this case. 10:32 < SoniaKeys> it's in the name of orthogonality 10:33 < KBme> that's fine, imagine a map of booleans, if you just did map[key] = false it wouldn't work 10:33 < KBme> butµ...more to the point: i do map[key] = nil and it works fine. 10:33 < KBme> s,butµ,but, 10:34 < cde> "in the name of orthogonality" 10:34 < cde> that sounds so religious ;) 10:35 -!- artefon [~thiago@187.59.187.20] has joined #go-nuts 10:37 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has quit [Ping timeout: 255 seconds] 10:38 < KBme> where is this in the spec? 10:42 < Namegduf> cde: I prefer "By the power of othogonality" 10:43 < Namegduf> KBme: If you set it to nil, it will be set to nil. 10:43 < Namegduf> This will look like no entry, as looking up a value that doesn't exist gets the zero type, which is nil for all types where nil is valid. 10:43 < Namegduf> But it is not no entry. 10:44 < wrtp> Namegduf: +1 10:45 < Namegduf> http://golang.org/doc/go_spec.html#Indexes <- Has the stuff for removing an entry from a map. 10:46 < Namegduf> "Similarly, if an assignment to a map has the special form "a[x] = v, ok" and boolean ok has the value false, the entry for key x is deleted from the map; if ok is true, the construct acts like a regular assignment to an element of the map." 11:00 -!- tvw [~tv@212.79.9.150] has joined #go-nuts 11:04 -!- homa_rano [~erice@hmsvelociraptor.csail.mit.edu] has quit [Read error: Operation timed out] 11:05 -!- artefon [~thiago@187.59.187.20] has quit [Quit: bye] 11:06 -!- arun_ [~arun@unaffiliated/sindian] has joined #go-nuts 11:06 -!- homa_rano [~erice@hmsvelociraptor.csail.mit.edu] has joined #go-nuts 11:08 -!- wrtp [~rog@92.17.83.201] has quit [Ping timeout: 260 seconds] 11:12 -!- shawn [~shawn@208-78-98-92.slicehost.net] has quit [Ping timeout: 265 seconds] 11:12 -!- wrtp [~rog@92.17.83.201] has joined #go-nuts 11:21 < fuzzybyte> let's say i have made a go library program. how could I make it possible to call functions in my library from Python program? are there cgo like programs for other languages as well? or should i just port it first to C and then to Python. 11:22 < fuzzybyte> I have not done anything yet. I'm just curious to know what would be simplest way to do something like that. 11:24 -!- l00t [~i-i3id3r_@187.127.167.73] has quit [Remote host closed the connection] 11:28 -!- oldumy [~oldumy@2001:da8:204:1191:21f:16ff:fe1f:5819] has left #go-nuts [] 11:31 -!- sauerbraten [~sauerbrat@p508CEC25.dip.t-dialin.net] has joined #go-nuts 11:32 < fuzzybyte> oh, looks like SWIG supports go now. 11:39 * TheSeeker ditches cygwin in favor of msys ... hopes things work a little better. 11:42 -!- virtualsue [~chatzilla@nat/cisco/x-xqwfzkvelshbyopx] has joined #go-nuts 11:59 < wrtp> fuzzybyte: not easily 12:01 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-152-169.clienti.tiscali.it] has joined #go-nuts 12:06 < KBme> oh i see 12:06 -!- kanru [~kanru@61-231-53-154.dynamic.hinet.net] has joined #go-nuts 12:07 < KBme> Namegduf: so i can have map["foo"] = type{anything}, false and it will delete the entry? 12:07 < Namegduf> Believe so. 12:09 < KBme> cool i have to change my code 12:09 < KBme> thankfully only at one place ☺ 12:11 < Namegduf> x = v, v != nil is a fun thing. 12:21 < KBme> what does it doN 12:21 < KBme> ? 12:21 < Namegduf> Er, I mean x[foo] = v, v != nil 12:21 < Namegduf> Sets x[foo] to v if v isn't nil, otherwise deletes it. 12:22 < KBme> huh? so nil or false sets it to nil? 12:22 < KBme> er 12:22 < KBme> s,sets it to nil,deletes it, 12:30 < mpl> Namegduf: ah thx, I had missed that sentence in the spec. 12:33 < fuzzybyte> wrtp: swig looks pretty easy.. not that i have any experience 12:34 -!- gnuvince [~vince@64.235.203.1] has quit [Quit: Lost terminal] 12:37 < wrtp> fuzzybyte: i think swig works the other way around - for calling C from another language 12:37 < fuzzybyte> oh 12:40 < fuzzybyte> really? their page and wikipedia seems to suggest that is not true 12:41 < fuzzybyte> or hmm.. 12:42 < fuzzybyte> ah i guess no.. blah.. 12:43 -!- zozoR [~zozoR@56347ac9.rev.stofanet.dk] has joined #go-nuts 12:47 < fuzzybyte> maybe one day there will a goSWIG then 12:50 -!- DerHorst [~Horst@e176101254.adsl.alicedsl.de] has joined #go-nuts 12:55 < wrtp> fuzzybyte: it's quite a hard problem, as a) the type systems don't match well and b) the concurrency systems don't match well 13:04 < fuzzybyte> i see 13:06 -!- skejoe [~skejoe@188.114.142.162] has joined #go-nuts 13:14 -!- DarthShrine [~angus@pdpc/supporter/student/DarthShrine] has quit [Quit: DarthShrine] 13:25 -!- shvntr [~shvntr@113.84.150.147] has quit [Ping timeout: 265 seconds] 13:31 -!- shvntr [~shvntr@222.50.230.212] has joined #go-nuts 13:52 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts 13:59 -!- kanru [~kanru@61-231-53-154.dynamic.hinet.net] has quit [Ping timeout: 250 seconds] 14:03 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts 14:12 < mpl> will it go ok, if I do something like this: for k,v := range amap { if string.Contains(k¸ "foobar") { amap[k] = whatev, false } } ? 14:13 < mpl> i.e, can I remove some elements of the map while going through the whole range? 14:13 < mpl> or should I first collect all the elements that match and remove them directly ? 14:16 < wrtp> "The iteration order over maps is not specified. If map entries that have not yet been reached are deleted during iteration, the corresponding iteration values will not be produced. If map entries are inserted during iteration, the behavior is implementation-dependent, but the iteration values for each entry will be produced at most once." 14:16 < wrtp> mpl: in http://golang.org/doc/go_spec.html#For_statements 14:17 -!- zozoR [~zozoR@56347ac9.rev.stofanet.dk] has quit [Ping timeout: 260 seconds] 14:17 -!- zozoR [~zozoR@56347ac9.rev.stofanet.dk] has joined #go-nuts 14:19 < mpl> well I delete an iteration after I've reached it, not before. 14:20 -!- Nitro [~Nitro@unaffiliated/nitro] has joined #go-nuts 14:20 < mpl> I was just worried that it could somehow stop the iteration process. 14:34 -!- zozoR [~zozoR@56347ac9.rev.stofanet.dk] has quit [Ping timeout: 250 seconds] 14:37 -!- emjayess [~emjayess@pix1.i29.net] has quit [Quit: Leaving] 14:45 -!- d_m [d6@SDF.ORG] has joined #go-nuts 14:47 -!- zozoR [~zozoR@56346ed3.rev.stofanet.dk] has joined #go-nuts 14:51 < wrtp> mpl: although it doesn't say so explicitly, i'm sure that would be ok 14:53 -!- linnk [~linnk@ip-56-115.bnaa.dk] has joined #go-nuts 14:54 < mpl> yes, looks that way. 14:54 < linnk> hey 14:55 < linnk> what's the "idiomatic" way of reading a file line by line in Go? 14:56 < SoniaKeys> linnk: bufio.ReadString 14:57 < linnk> SoniaKeys: doesn't that only read the first line? with '\n' as delimiter? 14:58 < SoniaKeys> no, it "consumes" the data from the buffer, so you can go through all the data line by line. 14:58 < linnk> SoniaKeys: ah, okay, I misunderstood the docs then 14:58 < linnk> thanks :) 15:02 -!- kanru [~kanru@118-160-164-24.dynamic.hinet.net] has joined #go-nuts 15:09 -!- skelterjohn [~jasmuth@c-68-45-238-234.hsd1.nj.comcast.net] has quit [Quit: skelterjohn] 15:20 -!- IRWolfie1 [irwolfie@ircnoob.com] has quit [Quit: leaving] 15:24 < uriel> fuzzybyte: there is go support in the latest SWIG 15:26 < uriel> oh, sorry, I'm an idiot for not reading the whole backlog, nevermind 15:28 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts 15:33 -!- femtoo [~femto@95-89-196-48-dynip.superkabel.de] has joined #go-nuts 15:34 -!- artefon [~thiagon@150.164.2.20] has joined #go-nuts 15:34 -!- emjayess [~emjayess@pix1.i29.net] has joined #go-nuts 15:36 -!- plainhao [~plainhao@208.75.85.237] has joined #go-nuts 15:46 < plexdev> http://is.gd/iQL0x by [Adam Langley] in go/src/pkg/crypto/tls/ -- crypto/tls: check in support code. 15:47 -!- skelterjohn [~jasmuth@lawn-gw.rutgers.edu] has joined #go-nuts 15:57 < cde> btw, now would be a good time to insert a backdoor in Go's crypto code 15:57 * cde notifies the FBI 15:57 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.3] 15:58 -!- coldturnip [~COLDTURNI@118-166-67-82.dynamic.hinet.net] has quit [Ping timeout: 264 seconds] 15:59 -!- plainhao [~plainhao@208.75.85.237] has quit [Quit: plainhao] 15:59 -!- plainhao [~plainhao@208.75.85.237] has joined #go-nuts 16:00 -!- bjarneh [~bjarneh@1x-193-157-207-177.uio.no] has joined #go-nuts 16:03 -!- Venom_X [~pjacobs@99-8-218-190.lightspeed.hstntx.sbcglobal.net] has joined #go-nuts 16:10 -!- niemeyer [~niemeyer@201-2-134-72.pltce701.dsl.brasiltelecom.net.br] has joined #go-nuts 16:10 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-169-135.clienti.tiscali.it] has joined #go-nuts 16:11 -!- coldturnip [~COLDTURNI@114-136-238-165.dynamic.hinet.net] has joined #go-nuts 16:13 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-152-169.clienti.tiscali.it] has quit [Ping timeout: 240 seconds] 16:18 < tav> cde: hehe 16:19 < tav> the openbsd mail was hilarious though 16:24 < wrtp> tav: what openbsd mail? 16:24 < pingveno> Poor OpenBSD 16:24 < pingveno> wrtp: Did you hear about the thing with OpenBSD? 16:25 -!- bortzmeyer [~bortzmeye@batilda.nic.fr] has quit [Quit: Leaving.] 16:25 < kimelto> that's bullshit imho. FUD. 16:25 -!- coldturnip [~COLDTURNI@114-136-238-165.dynamic.hinet.net] has quit [Read error: Connection reset by peer] 16:25 < skelterjohn> openbsd is open source, right? 16:26 < skelterjohn> if people are looking for this backdoor and cannot find it, it's probably apocryphal 16:26 < kimelto> sure it is. 16:27 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-148-120.clienti.tiscali.it] has joined #go-nuts 16:27 < pingveno> skelterjohn: It's possible to hide subtle things in complex code. 16:27 -!- jcouture [~jcouture@142.213.178.125] has joined #go-nuts 16:27 < wrtp> pingveno: no 16:27 < _sl> why on earth would anyone assume that this kind of thing doesn't go on all the time, with all operating systems? if we accept the plausibility of the openbsd story, it stands to reason more popular operating systems have also been targeted. <- that's just logical; but it's well known that backdoors have shipped in all sorts of operating systems without becoming known to the general public. 16:27 < skelterjohn> all generalizations are false 16:28 < SoniaKeys> lol 16:28 < wrtp> pingveno: a casual google doesn't find me anything; got a link? 16:28 < _sl> the backlash is predictable: "i'll stop using openbsd." <- and use what instead? haha. 16:30 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-169-135.clienti.tiscali.it] has quit [Ping timeout: 250 seconds] 16:30 < kimelto> someone wanted a free audit of the openbsd code, that's all :) 16:30 < pingveno> http://marc.info/?l=openbsd-tech&m=129236621626462&w=2 16:30 < pingveno> That's the link from #openbsd's topic 16:30 < skelterjohn> http://news.cnet.com/8301-31921_3-20025767-281.html 16:32 < skelterjohn> for a newsy article instead of the email text 16:32 < wrtp> the original mail was good thanks 16:32 < tav> thanks for linking pingveno 16:32 < wrtp> obviously go already has the backdoors :) 16:32 < tav> hehe 16:33 < tav> adam's been putting in the backdoors from the start 16:33 < pingveno> I'm still amused by the one-bit release :) 16:33 < skelterjohn> what is the one-bit release? 16:33 < kimelto> the 15.1 one 16:33 < pingveno> A bug fix release 16:34 < kimelto> check the diff of ld ;) 16:34 < pingveno> If you're measuring things by the change of the actual character byte, it was a two-bit release 16:34 -!- femtoo [~femto@95-89-196-48-dynip.superkabel.de] has quit [Read error: Connection reset by peer] 16:36 -!- ampleyfly [ampleyfly@gateway/shell/blinkenshell.org/x-tcdwdptakprmsreh] has quit [Quit: leaving] 16:37 -!- skejoe [~skejoe@188.114.142.162] has quit [Quit: leaving] 16:38 -!- rejb [~rejb@p5B05A0AE.dip.t-dialin.net] has joined #go-nuts 16:38 -!- kanru [~kanru@118-160-164-24.dynamic.hinet.net] has quit [Ping timeout: 272 seconds] 16:38 -!- rejb [~rejb@p5B05A0AE.dip.t-dialin.net] has quit [Changing host] 16:38 -!- rejb [~rejb@unaffiliated/rejb] has joined #go-nuts 16:39 < skelterjohn> is there an easier way to write negative infinity in the code than math.Log(0)? 16:40 -!- ampleyfly [ampleyfly@gateway/shell/blinkenshell.org/x-cnzaozsywcdegkdp] has joined #go-nuts 16:40 -!- awidegreen [~quassel@c-eacae555.08-2-73746f39.cust.bredbandsbolaget.se] has joined #go-nuts 16:49 -!- shvntr [~shvntr@222.50.230.212] has quit [Quit: leaving] 16:55 < skelterjohn> ok 16:55 < skelterjohn> wrong window 16:59 -!- rlab [~Miranda@91.200.158.34] has quit [Read error: Operation timed out] 16:59 -!- coldturnip [~COLDTURNI@118-166-67-82.dynamic.hinet.net] has joined #go-nuts 17:02 < wrtp> skelterjohn: i reckon you should be able to do 1/0.0 but it doesn't allow it, although var x = 1.0; var inf = 1.0 / x; is fine 17:02 -!- coldturnip [~COLDTURNI@118-166-67-82.dynamic.hinet.net] has quit [Read error: Connection reset by peer] 17:04 -!- jcouture [~jcouture@142.213.178.125] has quit [Quit: jcouture] 17:06 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts 17:13 < exch> Have there been attempts or plans to improve the formatting of the flags package's usage() output? 17:15 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts 17:16 < exch> hmm seems they expect a user to do formatting themselves if needed. Usage() is a variable which cna be reassigned to a custom function 17:16 < exch> oh well. i'll keep using my own package then 17:17 -!- coldturnip [~COLDTURNI@118-166-67-82.dynamic.hinet.net] has joined #go-nuts 17:22 -!- coldturnip [~COLDTURNI@118-166-67-82.dynamic.hinet.net] has quit [Read error: Connection reset by peer] 17:23 -!- coldturnip [~COLDTURNI@118-166-65-180.dynamic.hinet.net] has joined #go-nuts 17:27 -!- enherit [~enherit@cpe-98-149-170-48.socal.res.rr.com] has joined #go-nuts 17:32 -!- rlab_ [~Miranda@91.200.158.34] has joined #go-nuts 17:34 -!- saschpe [~quassel@opensuse/member/saschpe] has quit [Read error: Connection reset by peer] 17:34 -!- coldturnip1 [~COLDTURNI@118-166-65-63.dynamic.hinet.net] has joined #go-nuts 17:34 -!- rlab [~Miranda@91.200.158.34] has quit [Ping timeout: 260 seconds] 17:35 -!- coldturnip [~COLDTURNI@118-166-65-180.dynamic.hinet.net] has quit [Ping timeout: 260 seconds] 17:39 -!- ios_ [~ios@180.191.131.10] has quit [Quit: Leaving] 17:40 -!- saschpe [~quassel@opensuse/member/saschpe] has joined #go-nuts 17:44 -!- sauerbraten [~sauerbrat@p508CEC25.dip.t-dialin.net] has quit [Remote host closed the connection] 17:44 -!- cco3 [~conley@c-69-181-138-209.hsd1.ca.comcast.net] has quit [Ping timeout: 260 seconds] 17:46 -!- sahid [~sahid@LNeuilly-152-21-22-10.w193-253.abo.wanadoo.fr] has quit [Remote host closed the connection] 17:47 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts 17:50 -!- ildorn [~ildorn@dslb-188-099-193-011.pools.arcor-ip.net] has joined #go-nuts 17:52 -!- xash [~xash@d201237.adsl.hansenet.de] has joined #go-nuts 17:55 -!- SoniaKeys [Alliebloom@c-24-91-112-191.hsd1.ma.comcast.net] has quit [] 17:57 -!- femtoo [~femto@95-89-196-48-dynip.superkabel.de] has joined #go-nuts 17:57 -!- thiago__ [~thiago@dhcp16.usuarios.dcc.ufmg.br] has joined #go-nuts 17:57 -!- artefon [~thiagon@150.164.2.20] has quit [Remote host closed the connection] 17:57 -!- SRabbelier [~SRabbelie@188.142.63.148] has joined #go-nuts 17:57 -!- deso [~deso@x0561a.wh30.tu-dresden.de] has joined #go-nuts 17:59 -!- l00t [~i-i3id3r_@187.127.167.73] has joined #go-nuts 18:00 -!- SRabbelier [~SRabbelie@188.142.63.148] has quit [Client Quit] 18:04 -!- virtualsue [~chatzilla@nat/cisco/x-xqwfzkvelshbyopx] has quit [Quit: ChatZilla 0.9.86 [Firefox 3.5.15/20101026200251]] 18:07 -!- rlab_ [~Miranda@91.200.158.34] has quit [Read error: Connection reset by peer] 18:07 -!- wrtp [~rog@92.17.83.201] has quit [Quit: wrtp] 18:11 -!- fenicks [~christian@log77-3-82-243-254-112.fbx.proxad.net] has quit [Quit: Leaving.] 18:12 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts 18:17 -!- LeNsTR [~lenstr@unaffiliated/lenstr] has joined #go-nuts 18:23 -!- sauerbraten [~sauerbrat@p508CEC25.dip.t-dialin.net] has joined #go-nuts 18:34 -!- xash [~xash@d201237.adsl.hansenet.de] has quit [Read error: Operation timed out] 18:52 -!- Fish- [~Fish@9fans.fr] has joined #go-nuts 18:52 -!- keithcascio [~keithcasc@nat/google/x-ecfgzwlhndynynzg] has joined #go-nuts 18:53 -!- kashia_ [~Kashia@port-92-200-77-108.dynamic.qsc.de] has joined #go-nuts 18:56 -!- Kashia [~Kashia@port-92-200-39-124.dynamic.qsc.de] has quit [Ping timeout: 250 seconds] 19:00 -!- Project-2501 [~Marvin@82.84.76.144] has joined #go-nuts 19:03 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-148-120.clienti.tiscali.it] has quit [Ping timeout: 250 seconds] 19:07 -!- skelterjohn [~jasmuth@lawn-gw.rutgers.edu] has quit [Quit: skelterjohn] 19:08 -!- XenoPhoenix [~Xeno@cpc5-aztw24-2-0-cust39.aztw.cable.virginmedia.com] has quit [Ping timeout: 260 seconds] 19:11 < anticw> iant: when going asm for gccgo ... how do i get the call signatures 'right' ? 19:11 < anticw> iant: for 6g you have a .s file and a 'decl.go' file and pack them ... should i do similar for gccgo? 19:11 < anticw> i can i do pure foo.s -> foo.o (that's importablt) 19:14 -!- femtoo [~femto@95-89-196-48-dynip.superkabel.de] has quit [Read error: Connection reset by peer] 19:15 -!- Tv [~tv@76.168.227.45] has joined #go-nuts 19:15 -!- l00t [~i-i3id3r_@187.127.167.73] has quit [Ping timeout: 260 seconds] 19:34 -!- thiago__ [~thiago@dhcp16.usuarios.dcc.ufmg.br] has quit [Read error: Operation timed out] 19:37 -!- ildorn [~ildorn@dslb-188-099-193-011.pools.arcor-ip.net] has quit [Quit: Leaving.] 19:37 -!- ildorn [~ildorn@dslb-188-099-193-011.pools.arcor-ip.net] has joined #go-nuts 19:37 < nsf> -rwxr-xr-x 1 nsf nsf 3743 Дек 17 00:39 libtermbox.so 19:37 < nsf> >_< 19:42 -!- l00t [~i-i3id3r_@187.127.138.231] has joined #go-nuts 19:44 < temoto> Is there a literal for arrays? 19:45 < nsf> can anyone please fix cgo examples? 19:51 < uriel> temoto: [...]myarray{1,2,3,4,5} 19:51 < uriel> that is all in the intro Go docs AFAIK 19:52 < temoto> I didn't find in spec, thanks. 19:55 < temoto> Is there an empty []byte literal? 19:55 < exch> var b []byte 19:55 < temoto> for passing into function 19:56 < exch> or b := []byte{} 19:56 < temoto> I could define a constant of that, i guess. 19:56 < exch> http://golang.org/doc/go_tutorial.html http://golang.org/doc/effective_go.html 19:56 -!- Eridius [~kevin@unaffiliated/eridius] has joined #go-nuts 19:56 < temoto> oh wait, nil should do 19:57 -!- Eridius [~kevin@unaffiliated/eridius] has quit [Client Quit] 19:57 -!- skejoe [~skejoe@188.114.142.162] has joined #go-nuts 19:58 -!- Eridius [~kevin@unaffiliated/eridius] has joined #go-nuts 20:02 -!- sacho [~sacho@95-42-119-153.btc-net.bg] has quit [Ping timeout: 240 seconds] 20:04 -!- cco3-hampster [~conleyo@nat/google/x-cbtkfddaxiwnvsgm] has quit [Ping timeout: 260 seconds] 20:04 -!- cco3-hampster [~conleyo@nat/google/x-rbqpbbsmoqdjytpn] has joined #go-nuts 20:04 -!- plainhao [~plainhao@208.75.85.237] has quit [Quit: plainhao] 20:06 -!- zozoR [~zozoR@56346ed3.rev.stofanet.dk] has quit [Ping timeout: 260 seconds] 20:12 -!- TheMue [~TheMue@p5DDF73C7.dip.t-dialin.net] has joined #go-nuts 20:15 -!- pothos [~pothos@111-240-210-81.dynamic.hinet.net] has quit [Remote host closed the connection] 20:15 -!- arun [~arun@unaffiliated/sindian] has quit [Read error: Operation timed out] 20:15 -!- hokapoka [~hokapoka@hoka.hokapoka.com] has quit [Read error: Operation timed out] 20:15 -!- hokapoka [~hokapoka@hoka.hokapoka.com] has joined #go-nuts 20:15 -!- arun [~arun@2001:610:110:4e2:280:5aff:fe69:e130] has joined #go-nuts 20:15 -!- arun [~arun@2001:610:110:4e2:280:5aff:fe69:e130] has quit [Changing host] 20:15 -!- arun [~arun@unaffiliated/sindian] has joined #go-nuts 20:15 -!- pothos [~pothos@111-240-210-81.dynamic.hinet.net] has joined #go-nuts 20:20 -!- zozoR [~zozoR@56347ac9.rev.stofanet.dk] has joined #go-nuts 20:21 -!- sauerbraten_ [~sauerbrat@p508CC939.dip.t-dialin.net] has joined #go-nuts 20:22 -!- sauerbraten [~sauerbrat@p508CEC25.dip.t-dialin.net] has quit [Ping timeout: 240 seconds] 20:27 -!- skejoe [~skejoe@188.114.142.162] has quit [Quit: leaving] 20:27 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-173-216.clienti.tiscali.it] has joined #go-nuts 20:30 -!- Project-2501 [~Marvin@82.84.76.144] has quit [Ping timeout: 272 seconds] 20:31 -!- xash [~xash@d201237.adsl.hansenet.de] has joined #go-nuts 20:41 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-173-216.clienti.tiscali.it] has quit [Read error: Connection reset by peer] 20:41 -!- ildorn [~ildorn@dslb-188-099-193-011.pools.arcor-ip.net] has quit [Ping timeout: 276 seconds] 20:41 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-173-216.clienti.tiscali.it] has joined #go-nuts 20:42 -!- zozoR [~zozoR@56347ac9.rev.stofanet.dk] has quit [Quit: Morten. Desu~] 20:44 -!- hokapoka [~hokapoka@hoka.hokapoka.com] has quit [Read error: Operation timed out] 20:44 -!- hokapoka [~hokapoka@hoka.hokapoka.com] has joined #go-nuts 20:45 -!- tvw [~tv@212.79.9.150] has quit [Remote host closed the connection] 20:50 < plexdev> http://is.gd/iRz1u by [Christopher Wedgwood] in go/src/cmd/govet/ -- govet: fix comment 20:50 < plexdev> http://is.gd/iRz1J by [Rob Pike] in go/test/bench/ -- test/bench: update numbers for regex-dna after speedup to regexp 20:50 < plexdev> http://is.gd/iRz2k by [Russ Cox] in 4 subdirs of go/src/pkg/runtime/ -- darwin, freebsd: ignore write failure (during print, panic) 20:59 -!- tgillespie_ [~tom@global-1-8.nat.csx.cam.ac.uk] has joined #go-nuts 20:59 < tgillespie_> Hi all, is there a reference document anywhere for the template language? Or is what's in the package documentation everything? 21:00 < exch> tgillespie_: that's all really. If you want examples, refer to the source for the template package. in particular the _test.go file 21:00 < exch> That goes for most packages really 21:03 -!- deso [~deso@x0561a.wh30.tu-dresden.de] has quit [Remote host closed the connection] 21:04 -!- XenoPhoenix [~Xeno@cpc5-aztw24-2-0-cust39.aztw.cable.virginmedia.com] has joined #go-nuts 21:07 < plexdev> http://is.gd/iRBe3 by [Adam Langley] in go/src/pkg/crypto/elliptic/ -- crypto/elliptic: add serialisation and key pair generation. 21:07 -!- DarthShrine [~angus@pdpc/supporter/student/DarthShrine] has joined #go-nuts 21:07 -!- sauerbraten_ [~sauerbrat@p508CC939.dip.t-dialin.net] has quit [Quit: Leaving] 21:16 < tgillespie_> exch thanks :) so the template system is quite basic then? 21:16 < exch> It depends on how you define basic I suppose. I've found it quite adequate 21:17 < exch> granted, I don't use it all that much 21:17 < tgillespie_> exch I'll have a look through the source then, thanks :) 21:17 < tgillespie_> I assume I can extend it easy enough if I need to 21:17 < exch> true 21:18 < exch> the glory of opensource right there 21:20 < tgillespie_> Yup :D 21:24 -!- bjarneh [~bjarneh@1x-193-157-207-177.uio.no] has quit [Quit: leaving] 21:31 -!- TheMue [~TheMue@p5DDF73C7.dip.t-dialin.net] has quit [Quit: TheMue] 21:35 -!- saschpe [~quassel@opensuse/member/saschpe] has quit [Remote host closed the connection] 21:39 < plexdev> http://is.gd/iREWn by [Rob Pike] in go/src/pkg/time/ -- time: explain the formats a little better. 21:40 -!- alkavan [~alkavan@IGLD-84-229-249-171.inter.net.il] has joined #go-nuts 21:49 -!- ShadowIce` [~pyoro@HSI-KBW-109-193-120-162.hsi7.kabel-badenwuerttemberg.de] has joined #go-nuts 21:49 -!- ShadowIce` [~pyoro@HSI-KBW-109-193-120-162.hsi7.kabel-badenwuerttemberg.de] has quit [Changing host] 21:49 -!- ShadowIce` [~pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts 21:50 -!- Namegduf [~namegduf@eu.beshir.org] has quit [Ping timeout: 255 seconds] 21:50 -!- stalled [~stalled@unaffiliated/stalled] has quit [Ping timeout: 265 seconds] 21:50 -!- ubitux [~ubitux@did75-21-88-189-231-41.fbx.proxad.net] has quit [Ping timeout: 265 seconds] 21:50 -!- zeroXten [~zeroXten@0x10.co.uk] has quit [Ping timeout: 255 seconds] 21:50 -!- Tonnerre [tonnerre@netbsd/developer/tonnerre] has quit [Ping timeout: 255 seconds] 21:51 -!- kashia_ [~Kashia@port-92-200-77-108.dynamic.qsc.de] has quit [Ping timeout: 255 seconds] 21:51 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has quit [Ping timeout: 255 seconds] 21:51 -!- Fish- [~Fish@9fans.fr] has quit [Ping timeout: 264 seconds] 21:51 -!- welterde [welterde@thinkbase.srv.welterde.de] has quit [Ping timeout: 252 seconds] 21:52 -!- chressie [~chressie@dreggn.in-ulm.de] has quit [Ping timeout: 264 seconds] 21:57 -!- Netsplit *.net <-> *.split quits: segy, rejb, tux21b, djcapelis, pothos, kimelto, Rennex, Cobi, jesusaurus, arun, (+87 more, use /NETSPLIT to show all of them) 21:57 -!- Paradox924X [~Paradox92@c-68-35-229-34.hsd1.fl.comcast.net] has joined #go-nuts 21:57 -!- Netsplit over, joins: yiyus 21:57 -!- zeroXten [~zeroXten@0x10.co.uk] has joined #go-nuts 21:57 -!- Namegduf [~namegduf@94.75.205.131] has joined #go-nuts 21:57 -!- ubitux [~ubitux@did75-21-88-189-231-41.fbx.proxad.net] has joined #go-nuts 21:57 -!- Tonnerre [tonnerre@ds1789693.dedicated.solnet.ch] has joined #go-nuts 21:57 -!- Netsplit over, joins: toyoshim_, alkavan, XenoPhoenix, hokapoka, pothos, arun, cco3-hampster, Eridius, l00t, keithcascio (+84 more) 21:57 -!- ExtraSpice [~XtraSpice@88.118.33.48] has quit [Max SendQ exceeded] 21:58 -!- ExtraSpice [~XtraSpice@88.118.33.48] has joined #go-nuts 22:00 -!- kashia_ [~Kashia@port-92-200-77-108.dynamic.qsc.de] has joined #go-nuts 22:04 -!- tensorpudding [~user@99.148.202.191] has joined #go-nuts 22:06 -!- chressie [~chressie@dreggn.in-ulm.de] has joined #go-nuts 22:07 -!- krutcha [~krutcha@remote.icron.com] has joined #go-nuts 22:10 -!- stalled [~stalled@unaffiliated/stalled] has joined #go-nuts 22:14 -!- ShadowIce` [~pyoro@unaffiliated/shadowice-x841044] has quit [Quit: Verlassend] 22:17 -!- awidegreen [~quassel@c-eacae555.08-2-73746f39.cust.bredbandsbolaget.se] has quit [Remote host closed the connection] 22:17 -!- pothos_ [~pothos@111-240-221-234.dynamic.hinet.net] has joined #go-nuts 22:18 -!- welterde [welterde@thinkbase.srv.welterde.de] has joined #go-nuts 22:20 -!- pothos [~pothos@111-240-210-81.dynamic.hinet.net] has quit [Ping timeout: 272 seconds] 22:26 < plexdev> http://is.gd/iRKPF by [Adam Langley] in 2 subdirs of go/src/pkg/crypto/ -- crypto/tls: add ECDHE support 22:26 < plexdev> http://is.gd/iRKPS by [Adam Langley] in go/src/pkg/crypto/tls/ -- crypto/tls: missed a file 22:37 -!- wrtp [~rog@92.17.83.201] has joined #go-nuts 22:37 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-180-154.clienti.tiscali.it] has joined #go-nuts 22:40 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-173-216.clienti.tiscali.it] has quit [Ping timeout: 240 seconds] 22:41 -!- iant [~iant@adsl-71-133-8-30.dsl.pltn13.pacbell.net] has quit [Ping timeout: 276 seconds] 22:41 -!- DarthShrine [~angus@pdpc/supporter/student/DarthShrine] has quit [Quit: DarthShrine] 22:44 -!- iant [~iant@adsl-71-133-8-30.dsl.pltn13.pacbell.net] has joined #go-nuts 22:44 -!- mode/#go-nuts [+v iant] by ChanServ 22:48 -!- emjayess [~emjayess@pix1.i29.net] has quit [Quit: Leaving] 22:51 -!- xash [~xash@d201237.adsl.hansenet.de] has quit [Ping timeout: 255 seconds] 22:52 -!- tgillespie_ [~tom@global-1-8.nat.csx.cam.ac.uk] has quit [Quit: Konversation terminated!] 23:02 -!- tgillespie_ [~tom@global-1-8.nat.csx.cam.ac.uk] has joined #go-nuts 23:05 -!- ivan` [~ivan@unaffiliated/ivan/x-000001] has quit [Quit: Coyote finally caught me] 23:05 -!- ivan` [~ivan@unaffiliated/ivan/x-000001] has joined #go-nuts 23:16 -!- krutcha [~krutcha@remote.icron.com] has quit [Quit: Leaving] 23:20 -!- tgillespie_ [~tom@global-1-8.nat.csx.cam.ac.uk] has quit [Ping timeout: 265 seconds] 23:24 -!- gnuvince [~vince@64.235.203.1] has joined #go-nuts 23:32 -!- photron_ [~photron@port-92-201-133-149.dynamic.qsc.de] has quit [Ping timeout: 260 seconds] 23:39 -!- wrtp [~rog@92.17.83.201] has quit [Quit: wrtp] 23:47 -!- rlab [~Miranda@91.200.158.34] has quit [Quit: Miranda IM! Smaller, Faster, Easier. http://miranda-im.org] 23:47 -!- adu [~ajr@pool-173-66-11-168.washdc.fios.verizon.net] has joined #go-nuts 23:52 -!- alkavan [~alkavan@IGLD-84-229-249-171.inter.net.il] has quit [Quit: Leaving] 23:56 -!- ExtraSpice [~XtraSpice@88.118.33.48] has quit [Ping timeout: 276 seconds] --- Log closed Fri Dec 17 00:00:01 2010