--- Log opened Mon Jan 10 00:00:02 2011 00:00 -!- wrtp [~rog@92.17.58.122] has quit [Quit: wrtp] 00:00 <@adg> kamaji: you can't? 00:00 < kamaji> type os.File has no field or method Flush 00:00 <@adg> oh, well, yeah that's why ;) 00:00 < kamaji> :< 00:01 < kamaji> gahh~ 00:01 < kamaji> so how do I ..... flush stdout? :D 00:03 <@adg> i'm not sure you can 00:03 < kamaji> noooooo 00:03 < kamaji> it must have been changed, people are using it on the mailing list 00:03 < kamaji> that sucks! 00:03 <@adg> try syscall.Fsync(os.Stdout.Fd()) 00:04 -!- Sieben [leone2009@arkana.iiens.net] has left #go-nuts [] 00:04 <@adg> http://golang.org/search?q=Flush some other, buffered types define a Flush method 00:05 < kamaji> the bufio? 00:06 < kamaji> the cgo one just calls a C function 00:06 <@adg> the cgo one is part of a demo program, ignore that 00:06 <@adg> i refer to bufio, http, flate, etc 00:13 < temoto> kamaji, i've been told that os.Stdout is not buffered, so there's no way or need to flush it. 00:13 < temoto> But if you can determine if it is buffered, i'd be happy to learn. 00:14 < niekie> Being really bored does odd things to me. 00:14 < niekie> I just wrote a time machine that actually works in Go: http://pastebin.com/JNK5mtkW (only travels into the future so far ;)) 00:15 -!- watr_ [~watr@66.183.100.58] has joined #go-nuts 00:15 < kamaji> temoto: oh, cheers 00:16 < kamaji> just like Occam :D 00:16 < kamaji> good ole occam. 00:16 < temoto> niekie, they usually write nanoseconds = seconds * 1e9 00:17 < niekie> temoto: ah, thanks ;) 00:19 < temoto> niekie, played in Braid? 00:19 < niekie> The game Braid? I've played that, yes :) 00:20 < temoto> Is that what inspired you on time machine? 00:21 < niekie> temoto: not really. It was just generally intended as a somewhat lame joke, heh. 00:21 < niekie> But Braid is quite a nice game, yeah. 00:21 < kamaji> temoto: it's unbuffered 00:22 < kamaji> hoorah 00:24 < niekie> temoto: unfortunately it's not available on Linux except on the HIB2. Luckily I grabbed that :) 00:24 -!- robzor [~robin@109.130.41.179] has joined #go-nuts 00:24 < kamaji> ok...... really dumb question: where does the thing scanned by scanln go? 00:24 < robzor> is this the right place for questions regarding building gccgo? 00:25 -!- robzor [~robin@109.130.41.179] has quit [Quit: robzor] 00:26 < temoto> kamaji, to arguments. 00:27 < temoto> var x *int; Scanln(x) 00:27 -!- robonobo [~robin@109.130.41.179] has joined #go-nuts 00:27 < kamaji> temoto: if I put a string in, will it still use space seperated values? 00:27 < temoto> kamaji, docs says yes. 00:29 < temoto> I think you need Read and a small tokenizer. 00:30 <@adg> robonobo: sure 00:30 < kamaji> temoto: I think you're right :P 00:35 < kamaji> altho, Scan is just saying there was nothing on input when I run it 00:35 < kamaji> it's not even waiting 00:35 < kamaji> I feel i've missed something here 00:36 < temoto> Did you pass any arguments to it? 00:36 < kamaji> oh I forgot to check err 00:36 < temoto> Maybe you closed stdin. 00:36 < kamaji> I forgot to pass a pointer :| 00:37 < kamaji> that was a little dumb 00:40 < kamaji> yey, tworks 00:40 < temoto> cool 00:41 < temoto> niekie, do you know akinator? 00:41 < temoto> the character guessing website 00:46 -!- virtualsue [~chatzilla@93-97-62-8.zone5.bethere.co.uk] has quit [Quit: ChatZilla 0.9.86 [Firefox 3.5.16/20101130074220]] 00:47 < kamaji> gonna go play some BC2, thanks for the help everyone! 00:47 -!- kamaji [~kamaji@cpc2-aztw22-2-0-cust775.aztw.cable.virginmedia.com] has quit [Quit: fwoop] 00:58 -!- niemeyer [~niemeyer@201-40-141-234.pltce701.dsl.brasiltelecom.net.br] has joined #go-nuts 01:13 -!- niemeyer [~niemeyer@201-40-141-234.pltce701.dsl.brasiltelecom.net.br] has quit [Ping timeout: 240 seconds] 01:16 -!- rbraley [~rbraley@ip72-222-134-229.ph.ph.cox.net] has joined #go-nuts 01:23 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has joined #go-nuts 01:24 -!- Tuller [~tuller@c-69-143-52-174.hsd1.va.comcast.net] has joined #go-nuts 01:26 -!- napsy [~luka@88.200.96.18] has quit [Quit: Lost terminal] 01:39 -!- Tuller [~tuller@c-69-143-52-174.hsd1.va.comcast.net] has quit [Remote host closed the connection] 01:44 -!- watr_ [~watr@66.183.100.58] has quit [Ping timeout: 240 seconds] 01:46 < temoto> map is automatically expanded to hold more elements, right? Does it get automatically shrinked too? How to do so, if it does not? 01:51 -!- cafesofie [~cafesofie@rnwifi-164-107-93-114.resnet.ohio-state.edu] has joined #go-nuts 01:53 < skelterjohn> I don't believe you have any control over this 02:06 < foocraft> is there any way I can snooze the garbage collector? 02:07 < yebyen> ?? 02:07 < yebyen> he shouldn't be collecting anything you haven't dropped your references to... 02:08 < yebyen> you just want it to lay off your buses for a little while? 02:08 < foocraft> yes, because I think its stop-the-world behavior is coming in the way of some analysis I'm doing 02:10 -!- Electrik [~iddqd@wikia/Kyano] has joined #go-nuts 02:10 -!- Electrik [~iddqd@wikia/Kyano] has left #go-nuts ["leaving"] 02:10 -!- bmizerany [~bmizerany@112.sub-69-99-159.myvzw.com] has joined #go-nuts 02:21 -!- shvntr [~shvntr@116.26.130.38] has joined #go-nuts 02:27 <@adg> foocraft: i think there's a way of disabling the GC entirely 02:27 -!- toyoshim_ [~toyoshim@y168217.dynamic.ppp.asahi-net.or.jp] has quit [Ping timeout: 255 seconds] 02:27 <@adg> foocraft: but i don't think you can turn it off temporarily 02:28 <@adg> foocraft: you can call runtime.GC() to initiate a collection manually, that might help avoid stopping during critical points 02:28 < taruti> one can think wishfully of a better GC 02:28 <@adg> (for example, were I writing a game I would call runtime.GC() after a vsync 02:28 <@adg> taruti: as the sysadmins here say, 'Hope is not a strategy.' 02:29 < foocraft> adg, alright, so I guess I need to figure out whn does the GC get triggered automatically 02:30 < foocraft> runtime.GC() doesn't guarantee that I wouldn't be interrupted, but it makes it less often that I will get interrupted, I would think. 02:32 <@adg> ohh actually 02:32 <@adg> foocraft: try setting runtime.MemStats.EnableGC = false 02:32 <@adg> foocraft: and then set it back to true and call runtime.GC() when you're done 02:33 < foocraft> nice, thanks a lot adg 02:33 <@adg> np 02:33 * foocraft checks the runtime package 02:33 <@adg> http://golang.org/pkg/runtime/#MemStatsType 02:34 <@adg> i wasn't sure if the instance of MemStats was read-only, but it looks like the GC consults it to determine wether it should run 02:34 <@adg> whether 02:34 <@adg> let me know how it goies :) 02:34 <@adg> goes 02:35 -!- waqas [~waqas@jaim.at] has left #go-nuts [] 02:38 < tylergillies> im unmarshaling twitter json into a generic interface{}, but i can't figure out the method to get the values out of the interface 02:39 <@adg> tylergillies: you need to use type inference 02:40 <@adg> tylergillies: http://golang.org/doc/go_spec.html#Type_assertions 02:41 <@adg> tylergillies: also see "Type switches" http://golang.org/doc/go_spec.html#Switch_statements 02:41 < tylergillies> what type do i assert in the interface to? 02:42 <@adg> map[string]interface{} is the default for a JSON object 02:42 <@adg> i'm writing a blog post about this right now, actually ;) 02:42 < tylergillies> awesome, can't wait to read it 02:42 <@adg> here's an example of using a type assertion to access some bencoded data, basically the same way json.Decode works: https://github.com/nf/torrentfix/blob/master/torrentfix.go 02:43 <@adg> (line 32) 02:45 < skelterjohn> i wonder how I can improve on this: func IsNaN(x float64) bool { return fmt.Sprintf("%v", x) == "NaN" } 02:46 < tylergillies> panic: interface conversion: interface is []interface { }, not map[string] interface { } 02:47 <@adg> tylergillies: that's because a JSON array is of type []interface{} 02:47 <@adg> (as distinct from a JSON object) 02:51 -!- enherit [~enherit@75.92.111.122] has joined #go-nuts 02:53 -!- rbrewster [~rbrewster@pool-96-255-165-204.washdc.fios.verizon.net] has joined #go-nuts 02:54 -!- cafesofie [~cafesofie@rnwifi-164-107-93-114.resnet.ohio-state.edu] has quit [Remote host closed the connection] 02:55 < |Craig|> skelterjohn: One language I used had x!=x when x is Nan 02:55 < skelterjohn> interesting idea 02:55 < |Craig|> I don't know if that works in go 02:58 < rbrewster> x == x when x is NaN. 02:59 < rbrewster> Scratch that, the opposite of what I said. 02:59 < skelterjohn> no - x != x for go 02:59 < skelterjohn> NaN is never equal to anything 03:05 < |Craig|> thats handy 03:06 < temoto> skelterjohn, will you remove the IsNaN function now? :) 03:07 < skelterjohn> depends how long the name of the variable i'm checking is ;) 03:09 < temoto> I found a way to put a timeout on socket read/writes: tcpConn.SetTimeout(sec * 1e9) 03:09 < temoto> produces awkward "resource is temporary unavailable" error, but works just fine. 03:19 -!- ios_ [~ios@180.191.131.201] has joined #go-nuts 03:20 -!- ios_ [~ios@180.191.131.201] has left #go-nuts [] 03:30 -!- toyoshim_ [~toyoshim@ac131134.dynamic.ppp.asahi-net.or.jp] has joined #go-nuts 03:55 -!- jhawk28 [~jhawk28@user-387c58d.cable.mindspring.com] has joined #go-nuts 03:57 -!- teejae [~teejae@softbank219185095092.bbtec.net] has joined #go-nuts 04:04 -!- jhawk28 [~jhawk28@user-387c58d.cable.mindspring.com] has quit [Ping timeout: 264 seconds] 04:22 -!- swdunlop [~swdunlop@96.26.45.40] has quit [Ping timeout: 276 seconds] 04:24 -!- swdunlop [~swdunlop@c-24-18-157-143.hsd1.wa.comcast.net] has joined #go-nuts 04:27 -!- rejb [~rejb@unaffiliated/rejb] has quit [Ping timeout: 276 seconds] 04:34 -!- bmizerany [~bmizerany@112.sub-69-99-159.myvzw.com] has quit [Remote host closed the connection] 04:37 -!- cafesofie [~cafesofie@rnwifi-164-107-93-114.resnet.ohio-state.edu] has joined #go-nuts 04:46 -!- Scorchin [~Scorchin@host86-145-52-72.range86-145.btcentralplus.com] has quit [Quit: Scorchin] 04:48 < tylergillies> adg: thanks for the help i got it working nicely 04:48 <@adg> tylergillies: great 04:52 < tylergillies> is there a way to return the type of a variable? 04:53 < KirkMcDonald> tylergillies: The type of a variable is static. 04:55 < tylergillies> if i unmarshall into an interface i don't know what type some of the values in that interface are before hand 04:57 <@adg> tylergillies: you can use the reflect package to inspect values 04:57 <@adg> tylergillies: ie, reflect.TypeOf 04:57 < taruti> or a type switc 04:57 < taruti> h 04:57 <@adg> tylergillies: but if you know they're one of a few specific types, use a type switch (i mentioned a link to teh go spec earlier) 04:57 <@adg> ie, switch v := v.(type) { case int: ... } 04:58 <@adg> tylergillies: this blog post mentions them a little http://nf.id.au/go-maps 04:59 < tylergillies> adg: thanks 05:01 < tylergillies> switch and select statements in go are awesome 05:16 <@adg> =D 05:29 -!- enherit [~enherit@75.92.111.122] has quit [Ping timeout: 264 seconds] 05:39 -!- gits [~gits@77.94.219.158] has left #go-nuts ["Leaving"] 05:42 < teejae> adg: per your suggestions, have reorg'd the thrift library structure 05:42 < teejae> adg: https://github.com/teejae/thrift/tree/go_thrift/ 05:50 -!- swdunlop [~swdunlop@c-24-18-157-143.hsd1.wa.comcast.net] has quit [Ping timeout: 255 seconds] 05:50 <@adg> teejae: cool, will take a look 05:51 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-155-186.clienti.tiscali.it] has joined #go-nuts 05:55 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts 05:57 -!- zozoR [~zozoR@56346ed3.rev.stofanet.dk] has joined #go-nuts 06:03 -!- swdunlop [~swdunlop@96.26.45.40] has joined #go-nuts 06:07 -!- mosva [~mosva@unaffiliated/mosva] has joined #go-nuts 06:07 < mosva> Hi nuts! 06:12 < Project_2501> _o/ 06:18 -!- unofficialmvp [~dev@94-62-164-227.b.ipv4ilink.net] has joined #go-nuts 06:19 -!- unofficialmvp [~dev@94-62-164-227.b.ipv4ilink.net] has left #go-nuts [] 06:34 < teejae> adg: you think for go code-generated files, it matters whether we use tabs/spaces? seems like for thrift compiler, all other generators use spaces. 06:35 < exch> http://www.mprescient.com/journal/2011/1/9/concurrency-in-go-a-call-center-tutorial.html 06:36 <@adg> teejae: some projects have a "gofmt must be a no-op" precommit hook 06:36 <@adg> teejae: if you want it to look like all other Go code, use tabs 06:36 < teejae> adg: ah true 06:37 -!- wtfness [~dsc@78.101.137.236] has quit [Remote host closed the connection] 06:47 -!- fabled [~fabled@83.145.235.194] has joined #go-nuts 06:48 -!- foocraft [~dsc@78.101.137.236] has quit [Quit: Leaving] 06:50 -!- eikenberry [~jae@ivanova.zhar.net] has quit [Quit: End of line.] 06:53 -!- watr_ [~watr@66.183.100.58] has joined #go-nuts 07:03 -!- robonobo [~robin@109.130.41.179] has left #go-nuts [] 07:03 -!- robonobo [~robin@109.130.41.179] has joined #go-nuts 07:16 -!- lmoura_ [~lauromour@186.212.117.111] has joined #go-nuts 07:17 -!- dforsyth [~dforsyth@c-76-21-40-117.hsd1.ca.comcast.net] has quit [Quit: Updating Textual - http://www.codeux.com/textual/ — :-)] 07:17 -!- dforsyth [~dforsyth@c-76-21-40-117.hsd1.ca.comcast.net] has joined #go-nuts 07:19 -!- lmoura [~lauromour@187.59.113.96] has quit [Ping timeout: 250 seconds] 07:30 -!- bmizerany [~bmizerany@c-76-21-40-207.hsd1.ca.comcast.net] has joined #go-nuts 07:31 -!- adu [~ajr@c-76-23-82-40.hsd1.in.comcast.net] has joined #go-nuts 07:32 -!- petrux [~petrux@host16-224-static.53-82-b.business.telecomitalia.it] has joined #go-nuts 07:39 -!- bortzmeyer [~bortzmeye@batilda.nic.fr] has joined #go-nuts 07:42 -!- zozoR [~zozoR@56346ed3.rev.stofanet.dk] has quit [Remote host closed the connection] 07:43 -!- zozoR [~zozoR@56346ed3.rev.stofanet.dk] has joined #go-nuts 07:48 -!- krig [kegie@stalin.acc.umu.se] has joined #go-nuts 07:50 -!- robonobo_ [~robin@109.130.189.16] has joined #go-nuts 07:50 -!- robonobo [~robin@109.130.41.179] has quit [Ping timeout: 240 seconds] 08:04 -!- watr_ [~watr@66.183.100.58] has quit [Ping timeout: 240 seconds] 08:14 -!- mosva [~mosva@unaffiliated/mosva] has quit [Quit: mosva] 08:16 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts 08:17 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Quit: sudo rm -R /] 08:20 -!- fabled [~fabled@83.145.235.194] has quit [Quit: Ex-Chat] 08:26 -!- Fish [~Fish@exo3753.pck.nerim.net] has quit [Quit: So Long, and Thanks for All the Fish] 08:26 -!- Fish [~Fish@exo3753.pck.nerim.net] has joined #go-nuts 08:30 -!- fabled [~fabled@mail.fi.jw.org] has joined #go-nuts 08:36 -!- jkakar [~jkakar@93.158.36.53] has joined #go-nuts 08:40 -!- jkakar [~jkakar@93.158.36.53] has quit [Read error: Connection reset by peer] 08:50 -!- rbrewster [~rbrewster@pool-96-255-165-204.washdc.fios.verizon.net] has quit [Quit: Leaving] 08:58 -!- tvw [~tv@212.79.9.150] has joined #go-nuts 09:00 -!- robonobo [~robin@109.130.189.16] has quit [Quit: robonobo] 09:02 -!- wrtp [~rog@92.17.62.109] has joined #go-nuts 09:04 -!- adu [~ajr@c-76-23-82-40.hsd1.in.comcast.net] has quit [Quit: adu] 09:06 -!- nettok [~quassel@200.119.185.164] has quit [Ping timeout: 265 seconds] 09:06 -!- robonobo [~robin@109.130.189.16] has joined #go-nuts 09:07 -!- foocraft [~dsc@dyn-86-36-43-92.wv.qatar.cmu.edu] has joined #go-nuts 09:07 < foocraft> http://fpaste.org/OfRm/ 09:08 < foocraft> for some reason, I never get a "Hello from thread 2" from this program 09:09 < jumzi> Hello from thread 1 09:09 < jumzi> wtf? 09:09 < foocraft> hi jumzi, from foocraft 09:10 < foocraft> but yeah, can you spot anything wrong with this? 09:10 < jumzi> Fedora? 09:11 < jumzi> Acutally i have to admitt that i haven't a clue, i tell myself to start using go all the time but stuff keeps getting inbetween so i sit here to sniff it abit 09:14 < foocraft> jumzi, use it seriously, and I think it'll pay off really well. 09:15 < jumzi> Well it isn't ported to either obsd or plan9 yet :'( 09:15 < foocraft> wait, actually, if I set gomaxprocs to 3, in the case where I have 2 cores, it worked 09:16 < foocraft> jumzi, I tend to think that the plan9 part is utter BS. Because 6{g,l} are for plan9 09:16 <@adg> foocraft: what happens if you do select{} instead of for{} ? 09:17 < foocraft> adg, it works, even when I set it to 2 hmm 09:18 < jumzi> foocraft: Wah? It *is* for plan9? 09:18 -!- LeNsTR [~lenstr@unaffiliated/lenstr] has joined #go-nuts 09:18 < foocraft> jumzi, http://golang.org/doc/go_faq.html#What_kind_of_a_name_is_6g 09:18 -!- bortzmeyer [~bortzmeye@batilda.nic.fr] has quit [Read error: Operation timed out] 09:19 <@adg> foocraft: it's because none of the threads yield, as far as the scheduler is concerned 09:19 <@adg> foocraft: basically you've created an unrealistic pathalogical case 09:20 -!- bortzmeyer [~bortzmeye@batilda.nic.fr] has joined #go-nuts 09:20 < jumzi> foocraft: Yeah, the name comes from plan9s set of compilers, doesn't mean it works on plan9 09:21 < foocraft> adg, can you elaborate a bit more on that? 09:21 < foocraft> looking at the documentation for select, I get a feeling for why it worked, but not sure 09:22 <@adg> foocraft: the scheduler is a simple one, but it relies on the fact that your goroutines are going to perform a channel send or blocking syscall or some such, something the scheduler can use to know when to switch goroutines 09:23 <@adg> foocraft: so if your program just loops forever printing - something that no real concurrent program would actually do - the scheduler screws up and only schedules the one goroutine 09:23 <@adg> select{} is equivalent to for{} except that instead of being a spin-loop it's a wait-loop 09:23 <@adg> (ie it's waiting for nothing) 09:24 <@adg> it's the standard way to make main() block forever without wasting cycles 09:26 < foocraft> so select is like sigsuspend, in C. (I think) 09:26 <@adg> select{} 09:26 <@adg> select itself is a whole lot more useful than just that 09:27 < foocraft> I'm trying to get my head around that 09:27 < foocraft> because obviously select{} is one use case 09:28 < foocraft> so in general it's select { code that has send/receive } 09:29 < foocraft> or a switch statement with some send/receive, for that matter 09:29 < foocraft> but what is special about that one vs. a normal switch statement 09:30 < foocraft> or a for { send/receive } statement, as well 09:32 <@adg> select is like a switch statement, but it blocks until one of its cases is ready to send or receive 09:32 <@adg> this is a very powerful construct 09:32 <@adg> a normal switch statement is just like an if/else 09:33 < foocraft> but wouldn't an if also block if one of its conditionals has something to do with a chan op? 09:33 <@adg> yes, but it would block on the _first_o ne 09:33 <@adg> one 09:33 < foocraft> ooooh 09:33 <@adg> select{} will choose whichever case is ready 09:33 <@adg> :) 09:33 < foocraft> very powerful construct indeed 09:33 <@adg> commonly you have for { select{ case blah blah } } 09:34 -!- napsy [~luka@88.200.96.18] has joined #go-nuts 09:34 <@adg> so you loop forever sending and receiving messages 09:35 < foocraft> so I suppose select basically spawns a thread for each chanop 09:35 < foocraft> something similar, I would imagine 09:37 <@adg> it puts its hooks into the scheduler 09:37 <@adg> doesn't spawn any new threads or anything 09:39 < foocraft> I'll look into it, but thanks for making it clear :) 09:40 < foocraft> jumzi, more reason to use go: select statements and channels 09:40 < foocraft> well and go routines 09:42 < foocraft> using for { select { the simple 2 go routine program } } forced me to set my gomaxprocs to 3 09:43 -!- kashia__ [~Kashia@port-92-200-125-182.dynamic.qsc.de] has quit [Quit: This computer has gone to sleep] 09:43 < foocraft> when select {} at the end of the program allowed the program to run without modification to gomaxprocs 09:45 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.3] 09:50 -!- foocraft [~dsc@dyn-86-36-43-92.wv.qatar.cmu.edu] has quit [Ping timeout: 240 seconds] 09:50 -!- Zoopee [alsbergt@zoopee.org] has quit [Quit: Ejected] 09:51 -!- Zoopee [alsbergt@zoopee.org] has joined #go-nuts 09:57 -!- bortzmeyer [~bortzmeye@batilda.nic.fr] has quit [Read error: Operation timed out] 10:03 -!- bortzmeyer [~bortzmeye@batilda.nic.fr] has joined #go-nuts 10:03 < wrtp> foocraft: if you used fmt.Println rather than println, then your program would work 10:04 < wrtp> print and println are intended for debugging only 10:07 -!- photron [~photron@port-92-201-12-254.dynamic.qsc.de] has joined #go-nuts 10:08 -!- ExtraSpice [~XtraSpice@88.118.33.48] has joined #go-nuts 10:12 -!- Adys [~Adys@unaffiliated/adys] has quit [Quit: Quit] 10:28 < robonobo> hi 10:29 < robonobo> i'm trying to build gccgo on mac osx in to a specified prefix, but make errors out because it can't find libgcc 10:29 -!- bmizerany [~bmizerany@c-76-21-40-207.hsd1.ca.comcast.net] has quit [Remote host closed the connection] 10:29 < robonobo> anyone have an idea what could cause this? 10:32 -!- tensorpudding [~user@99.23.127.179] has quit [Remote host closed the connection] 10:32 -!- artefon [~thiago@dhcp16.usuarios.dcc.ufmg.br] has joined #go-nuts 10:45 -!- boscop [~boscop@f055147031.adsl.alicedsl.de] has joined #go-nuts 10:48 -!- virtualsue [~chatzilla@nat/cisco/x-ceggddcxkfxztfuc] has joined #go-nuts 10:58 < teejae> robonobo: i've never installed gccgo, but do you have xcode installed? 10:58 < robonobo> yes 10:58 < robonobo> i've built tons of stuff on this machine 10:59 < teejae> robonobo: sorry, no idea :) 11:01 < robonobo> i'll try again when the east coast wakes up 11:07 -!- virtualsue [~chatzilla@nat/cisco/x-ceggddcxkfxztfuc] has quit [Ping timeout: 255 seconds] 11:08 -!- andreas_hindborg [~andreas@x1-6-00-1e-2a-29-58-14.k776.webspeed.dk] has quit [Ping timeout: 265 seconds] 11:09 -!- robonobo [~robin@109.130.189.16] has quit [Quit: robonobo] 11:10 -!- andreas_hindborg [~andreas@x1-6-00-1e-2a-29-58-14.k776.webspeed.dk] has joined #go-nuts 11:10 -!- robonobo [~robin@109.130.189.16] has joined #go-nuts 11:14 < wrtp> robonobo: i tried and failed to install gccgo on macos. but that was ages ago. 11:23 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Quit: Leaving] 11:24 -!- niemeyer [~niemeyer@201-40-141-234.pltce701.dsl.brasiltelecom.net.br] has joined #go-nuts 11:49 -!- teejae [~teejae@softbank219185095092.bbtec.net] has quit [Quit: teejae] 12:01 -!- virtualsue [~chatzilla@nat/cisco/x-ndcfhukyacqdyibq] has joined #go-nuts 12:11 -!- araujo [~araujo@gentoo/developer/araujo] has joined #go-nuts 12:22 -!- virtualsue [~chatzilla@nat/cisco/x-ndcfhukyacqdyibq] has quit [Ping timeout: 260 seconds] 12:51 -!- sauerbraten [~sauerbrat@p508CE9B2.dip.t-dialin.net] has joined #go-nuts 12:53 -!- gr0gmint [~quassel@87.60.23.38] has joined #go-nuts 12:59 -!- cafesofie [~cafesofie@rnwifi-164-107-93-114.resnet.ohio-state.edu] has quit [Remote host closed the connection] 13:07 -!- cane9 [~john@unaffiliated/johnnybuoy] has joined #go-nuts 13:15 -!- toyoshim_ [~toyoshim@ac131134.dynamic.ppp.asahi-net.or.jp] has quit [Ping timeout: 255 seconds] 13:17 -!- skejoe [~skejoe@188.114.142.162] has joined #go-nuts 13:17 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts 13:18 -!- virtualsue [~chatzilla@nat/cisco/x-pipqmhijtnynoowy] has joined #go-nuts 13:21 -!- grouzen [~grouzen@ip23-159.200.109.crimea.com] has quit [Ping timeout: 240 seconds] 13:35 -!- DarthShrine [~angus@pdpc/supporter/student/DarthShrine] has quit [Quit: DarthShrine] 13:46 -!- rlab_ [~Miranda@91.200.158.34] has joined #go-nuts 13:49 -!- rlab [~Miranda@91.200.158.34] has quit [Ping timeout: 276 seconds] 13:50 -!- robonobo [~robin@109.130.189.16] has quit [Quit: robonobo] 13:51 -!- artefon [~thiago@dhcp16.usuarios.dcc.ufmg.br] has quit [Quit: bye] 13:57 -!- shvntr [~shvntr@116.26.130.38] has quit [Ping timeout: 260 seconds] 14:01 -!- plainhao [~plainhao@208.75.85.237] has joined #go-nuts 14:15 -!- skelterjohn [~jasmuth@c-68-45-238-234.hsd1.nj.comcast.net] has quit [Quit: skelterjohn] 14:16 -!- shvntr [~shvntr@222.50.224.128] has joined #go-nuts 14:18 -!- shvntr [~shvntr@222.50.224.128] has quit [Client Quit] 14:20 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has quit [Ping timeout: 246 seconds] 14:26 -!- skejoe [~skejoe@188.114.142.162] has quit [Quit: Lost terminal] 14:31 -!- femtoo [~femto@95-89-196-150-dynip.superkabel.de] has joined #go-nuts 14:32 -!- jesmon [~user@static-71-244-114-122.albyny.fios.verizon.net] has joined #go-nuts 14:33 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts 14:35 -!- rlab_ [~Miranda@91.200.158.34] has quit [Ping timeout: 272 seconds] 14:54 -!- skelterjohn [~jasmuth@lawn-gw.rutgers.edu] has joined #go-nuts 14:56 -!- skelterjohn [~jasmuth@lawn-gw.rutgers.edu] has quit [Client Quit] 14:57 -!- skelterjohn [~jasmuth@lawn-gw.rutgers.edu] has joined #go-nuts 14:59 < skelterjohn> morning 14:59 < GilJ> afternoon :) 14:59 -!- virtualsue [~chatzilla@nat/cisco/x-pipqmhijtnynoowy] has quit [Ping timeout: 264 seconds] 15:08 -!- virtualsue [~chatzilla@nat/cisco/x-eqfdhvjzpgsphmgh] has joined #go-nuts 15:11 -!- rejb [~rejb@unaffiliated/rejb] has joined #go-nuts 15:13 -!- virtualsue [~chatzilla@nat/cisco/x-eqfdhvjzpgsphmgh] has quit [Ping timeout: 240 seconds] 15:14 -!- drry [~drry@unaffiliated/drry] has joined #go-nuts 15:27 -!- grouzen [~grouzen@ip23-159.200.109.crimea.com] has joined #go-nuts 15:31 -!- DerHorst [~Horst@e176099245.adsl.alicedsl.de] has joined #go-nuts 15:37 -!- kamaji [~kamaji@cpc2-aztw22-2-0-cust775.aztw.cable.virginmedia.com] has joined #go-nuts 15:39 -!- enherit [~enherit@75.92.111.122] has joined #go-nuts 15:39 < kamaji> Can I use datafmt to write an arbitrary parser? 15:40 < skelterjohn> what is datafmt? 15:40 < kamaji> i'm not really sure 15:40 < kamaji> that's the problem :p 15:40 < skelterjohn> if it's what scanf uses, no 15:41 < skelterjohn> an arbitrary parser needs to be supplied a grammar of some sort 15:41 < skelterjohn> where do you see datafmt? 15:42 < skelterjohn> ah, found it 15:42 < skelterjohn> one sec 15:42 -!- robonobo [~robin@109.130.189.16] has joined #go-nuts 15:42 < skelterjohn> i believe that is used for serialization of data structures 15:42 < skelterjohn> rather than arbitrary concepts 15:42 < kamaji> oh right 15:43 -!- enherit [~enherit@75.92.111.122] has quit [Client Quit] 15:43 < kamaji> Is there something that can take a grammar and give me tokens? 15:43 < skelterjohn> goyacc :) 15:44 < skelterjohn> what are you interested in doing, by the way? 15:44 < skelterjohn> i might be able to give better advice if i know what the goal is 15:44 < kamaji> writing a little prompt thingie 15:44 < kamaji> that behaves a bit like a shell at least 15:45 < kamaji> so it will clear on ^L and exit on ^D, stuff like that 15:45 < skelterjohn> you don't need an expressive grammar to mimic a shell 15:45 < skelterjohn> the grammar is very simple 15:45 < kamaji> no but I wanted to have commands 15:45 < kamaji> but if I can just write a grammar it would be easier to add things 15:45 < skelterjohn> line := <executable> <argument>* 15:45 -!- cane9 [~john@unaffiliated/johnnybuoy] has quit [Quit: Ex-Chat] 15:46 < skelterjohn> would regexps be appropriate? 15:46 < kamaji> right, but if I wanted to start having settings like "a = foo" 15:46 < skelterjohn> ok - you can do that with regexps 15:46 < kamaji> well it needs to look at it on a character by character basis 15:46 < kamaji> so the things like ^L will work 15:46 < skelterjohn> that is a different issue 15:46 < kamaji> and it just seems like a state-machine type parser will do better 15:46 < kamaji> cause it can wait on input and then notify as soon as a token is matched 15:47 < skelterjohn> state-machines are equivalent to regexps 15:47 < kamaji> but with a regex I'd have to test all the matches each time a character is received 15:47 < skelterjohn> why not just watch for ^L, ^D until return is hit 15:47 < kamaji> whereas a state machine will traverse as input is received 15:47 < skelterjohn> then throw that thing to the regexp 15:47 < kamaji> seems hacky :P 15:47 < skelterjohn> not to me, it doesn't 15:47 < skelterjohn> there are two distinct phases 15:48 < skelterjohn> typing and running 15:48 < skelterjohn> seems reasonable to have two different things take care of them 15:48 < kamaji> if you ^L you don't want to lose buffer though 15:48 < kamaji> although yeah 15:48 < kamaji> then that means my way is superdumb 15:48 < skelterjohn> :( 15:48 < kamaji> lol 15:48 < kamaji> good advice~ 15:49 < skelterjohn> is that the slashdot '~' or a typo for '!'? 15:49 < kamaji> slashdot ~? 15:49 < kamaji> it's not sarcasm if that's what you mean 15:49 < skelterjohn> it is :) 15:49 < kamaji> not to me~ 15:50 < kamaji> It's just a nice little decoration :P 15:50 < skelterjohn> now i'm confused. 15:50 < kamaji> oh sorry 15:50 < kamaji> it's not sarcasm 15:50 < kamaji> to me 15:50 < skelterjohn> haha 15:50 < kamaji> there... I think we're clear? :D 15:50 < skelterjohn> yes 15:50 < kamaji> hehehe 15:55 -!- artefon [~thiago@187.59.184.163] has joined #go-nuts 15:55 -!- DerHorst [~Horst@e176099245.adsl.alicedsl.de] has quit [Remote host closed the connection] 15:58 -!- Venom_X [~pjacobs@75.92.43.21] has joined #go-nuts 16:07 -!- petrux [~petrux@host16-224-static.53-82-b.business.telecomitalia.it] has quit [Quit: leaving] 16:11 -!- awidegreen [~quassel@c-eacae555.08-2-73746f39.cust.bredbandsbolaget.se] has joined #go-nuts 16:16 -!- LuitvD [~me@beigetower/luitvd] has joined #go-nuts 16:23 -!- virtualsue [~chatzilla@nat/cisco/x-djbmnddozthzqcde] has joined #go-nuts 16:26 -!- bortzmeyer [~bortzmeye@batilda.nic.fr] has quit [Quit: Leaving.] 16:28 -!- iant [~iant@adsl-71-133-8-30.dsl.pltn13.pacbell.net] has quit [Ping timeout: 265 seconds] 16:28 -!- iant [~iant@216.239.45.130] has joined #go-nuts 16:28 -!- mode/#go-nuts [+v iant] by ChanServ 16:33 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.3] 16:40 -!- ronnyy [~quassel@p4FF1C513.dip0.t-ipconnect.de] has joined #go-nuts 16:43 -!- ronnyy [~quassel@p4FF1C513.dip0.t-ipconnect.de] has quit [Remote host closed the connection] 16:55 -!- TheMue [~TheMue@p5DDF51E8.dip.t-dialin.net] has joined #go-nuts 16:55 -!- cco3-hampster [~conleyo@nat/google/x-mhnhqrwzlrhgtnjp] has joined #go-nuts 17:00 -!- ymasory [~ymasory@c-76-99-55-224.hsd1.pa.comcast.net] has joined #go-nuts 17:03 -!- WonTu [~WonTu@p57B55FAB.dip.t-dialin.net] has joined #go-nuts 17:03 -!- WonTu [~WonTu@p57B55FAB.dip.t-dialin.net] has left #go-nuts [] 17:16 < kamaji> can I have a callback inside a struct like this: "Print func() string" 17:18 < skelterjohn> certainly 17:19 < kamaji> schweet 17:21 -!- daxt [~daxt@112.135.68.25] has joined #go-nuts 17:29 < skelterjohn> though, it won't satisfy an interface with "Print() string", for instance 17:38 -!- daxt_ [~daxt@112.135.75.38] has joined #go-nuts 17:39 -!- daxt_ [~daxt@112.135.75.38] has quit [Remote host closed the connection] 17:40 -!- daxt [~daxt@112.135.68.25] has quit [Ping timeout: 240 seconds] 17:40 < skelterjohn> if you've got a go builder that will build a projects dependencies in normal operation, would you expect it to clean that project's dependencies on a clean step, or just clean that one project without touching its dependencies? 17:46 < wrtp> skelterjohn: good question... 17:46 < skelterjohn> i am leaning towards cleaning the deps 17:47 < skelterjohn> because cleaning is the opposite of building 17:47 < skelterjohn> and adding -c should undo whatever happened without the -c 17:47 < wrtp> yeah, but that implies that cleaning a single package could clean the entire go tree... 17:47 < exch> I often make multi-pkg projects which depend on one another. I'd hate to have to manually clean each one individually, when a build tool can do it just as well 17:47 < skelterjohn> which is why i added a -e option: be exclusive 17:48 < skelterjohn> for my build tool, if you just say "gb" or "gb -c", it will build or clean everything 17:48 < wrtp> maybe -e is the right answer 17:48 < skelterjohn> this only applies when you specify a specific package on the command line 17:48 < skelterjohn> -e causes it to not try to build (or clean) any unlisted deps 17:51 -!- awidegreen [~quassel@c-eacae555.08-2-73746f39.cust.bredbandsbolaget.se] has quit [Remote host closed the connection] 17:52 -!- aconran [~aconran-o@adsl-67-119-205-150.dsl.pltn13.pacbell.net] has joined #go-nuts 17:52 -!- grouzen [~grouzen@ip23-159.200.109.crimea.com] has quit [Ping timeout: 272 seconds] 17:53 -!- awidegreen [~quassel@c-eacae555.08-2-73746f39.cust.bredbandsbolaget.se] has joined #go-nuts 17:54 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts 17:54 -!- daharon [~daharon@173-11-102-86-SFBA.hfc.comcastbusiness.net] has joined #go-nuts 17:55 -!- fabled [~fabled@mail.fi.jw.org] has quit [Quit: Ex-Chat] 17:58 -!- tvw [~tv@212.79.9.150] has quit [Read error: Connection reset by peer] 18:00 -!- keithcascio [~keithcasc@nat/google/x-yehamvuayscrbrog] has joined #go-nuts 18:02 -!- femtoo [~femto@95-89-196-150-dynip.superkabel.de] has quit [Read error: Connection reset by peer] 18:03 -!- swdunlop [~swdunlop@96.26.45.40] has quit [Ping timeout: 250 seconds] 18:04 -!- exch [~exch@h78233.upc-h.chello.nl] has quit [Ping timeout: 246 seconds] 18:19 -!- Ccod [~peter@131.91.71.249] has joined #go-nuts 18:22 < Ccod> I think when I tried to edit my .bash_profile I fouled things up... I don't have access to many of my terminal commands anymore, not even vim to edit the file I messed up. What other ways can I access and edit that file? 18:25 < temoto> /usr/bin/vim 18:25 < temoto> most probably, you messed your PATH variable 18:25 < temoto> Ccod, ^ 18:26 < taruti> Has anyone created an API to do async IO (which may be implemented with go-routines)? 18:26 < Ccod> thx I will give that a shot 18:26 -!- sav [~lsd@jagat.xored.org] has joined #go-nuts 18:26 -!- sav [~lsd@jagat.xored.org] has quit [Excess Flood] 18:27 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-155-186.clienti.tiscali.it] has quit [Read error: Connection reset by peer] 18:28 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-155-186.clienti.tiscali.it] has joined #go-nuts 18:29 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts 18:32 < taruti> just need to integrate channel based concurrency and IO 18:35 -!- devrim [~Adium@cpe-72-225-239-227.nyc.res.rr.com] has quit [Quit: Leaving.] 18:39 -!- virtualsue [~chatzilla@nat/cisco/x-djbmnddozthzqcde] has quit [Quit: ChatZilla 0.9.86 [Firefox 3.5.16/20101130074220]] 18:40 < Ccod> is there a way to edit my $PATH without vim? 18:41 < aiju> PATH=.... 18:41 < aiju> you can also use any other editor! 18:41 < aiju> like ED! 18:41 < jumzi> What? 18:41 < jumzi> you can edit $PATH with vim? 18:42 < skelterjohn> vim ~/.bashrc 18:42 < jumzi> Well that wasn't very direct :p 18:42 < aiju> PATH=$(echo $PATH | vi -) 18:43 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-155-186.clienti.tiscali.it] has quit [Read error: Connection reset by peer] 18:43 < aiju> this one really edits $PATH 18:43 < Ccod> k 18:43 < jumzi> NO 18:43 < aiju> haha 18:43 < aiju> not a good idea 18:43 < jumzi> Ccod: Please check up on enviroment variables 18:44 < jumzi> You'll save allot of headache 18:44 < Ccod> will do thx 18:44 -!- Ccod [~peter@131.91.71.249] has quit [Quit: Ccod] 18:45 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-169-197.clienti.tiscali.it] has joined #go-nuts 18:45 -!- jrslepak [~jrslepak@rover-204-227.rovernet.mtu.edu] has joined #go-nuts 18:54 < robonobo> hi, 'm trying to build gccgo on mac osx in to a specified prefix, but make errors out because it can't find libgcc 18:54 < robonobo> anyone know how to fix this? 18:54 < aiju> use 6g 18:54 < taruti> are you building from the top of gcc tree according to gcc build instructions? 18:54 < taruti> with separate objdir etc 18:55 < robonobo> taruti: i'm not sure what that means 18:55 < robonobo> am i building rom the top directory? 18:55 < jumzi> You could also use 6g for that extra carriage return compile speed 18:56 < robonobo> jumzi: yes, i know, i have that already built, but i'm writing a go formula for homebrew, 18:56 < aiju> "go formula"? 18:56 < jumzi> homebrew? 18:57 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-169-197.clienti.tiscali.it] has quit [Read error: Connection reset by peer] 18:57 < aiju> and why does it need gccgo 18:57 < taruti> robonobo: 1) create an empty directory and cd there, 2) use /path/to/gcc/source/configure --lots-of-flags, 3) make, 4) make install 18:58 < taruti> robonobo: i.e. call the gcc configure, not the gccgo one 18:58 < robonobo> homebrew is a pretty new package manager for osx. it's on github 18:58 < robonobo> taruti: yeah, i got that far 18:59 < robonobo> it's the -lots-of-flags i'm gaving problems with 19:00 -!- nettok [~quassel@200.119.150.123] has joined #go-nuts 19:01 < taruti> you might want to ask iant if you have a abnormal gcc configuration 19:01 <+iant> gccgo doesn't support Mac OS yet 19:02 <+iant> it would be great if somebody familiar with Mac OS X sorted that out 19:02 -!- exch [~exch@h78233.upc-h.chello.nl] has joined #go-nuts 19:03 < aiju> just print a message to use 6g 19:03 -!- daharon_ [~daharon@173-11-102-86-SFBA.hfc.comcastbusiness.net] has joined #go-nuts 19:05 -!- jrslepak [~jrslepak@rover-204-227.rovernet.mtu.edu] has quit [Quit: jrslepak] 19:05 -!- daharon [~daharon@173-11-102-86-SFBA.hfc.comcastbusiness.net] has quit [Ping timeout: 264 seconds] 19:07 -!- markcol [~markcol@74.125.59.1] has joined #go-nuts 19:09 < robonobo> iant: thanks 19:09 <+iant> It's issue 463 19:16 -!- skelterjohn [~jasmuth@lawn-gw.rutgers.edu] has quit [Quit: skelterjohn] 19:18 < wrtp> taruit: re: async io: the standard interface *is* an interface to async io 19:19 < taruti> wrtp: yes, but I'd like to have a channel based io interface where I can send/receive io requests rather than blocking calls 19:19 -!- robonobo [~robin@109.130.189.16] has quit [Quit: robonobo] 19:20 < wrtp> taruti: go func() {n, err := fd.Read(...); c <- n}() 19:20 < wrtp> :-) 19:20 < taruti> wrtp: when adding various Sync():s to that it gets complex quite fast 19:21 < wrtp> Sync? 19:21 < taruti> syscall.Sync (fsync) 19:21 < taruti> basically "have all outgoing io requests been done and call Sync" 19:23 < wrtp> i'm not sure i see the problem 19:25 < taruti> one needs to have bookkeeping of the pending calls mainly 19:25 < wrtp> if you're generating requests asynchronously, then there's no good time to call Sync 19:25 < wrtp> you could just call it every few seconds 19:25 < wrtp> why do you need to call Sync anyway? 19:25 < wrtp> i've never called it ever 19:25 < wrtp> in C or Go 19:26 * taruti has called it lots of times in C 19:26 < wrtp> only from the command line when i'm about to shut down 19:26 < wrtp> syscall.Sync is not fsync BTW 19:27 < taruti> sorry. Fsync. 19:27 -!- creack [~charme_g@163.5.84.215] has quit [Ping timeout: 272 seconds] 19:28 < taruti> should probably sleep on this 19:29 -!- aconran_ [~aconran-o@adsl-67-119-205-150.dsl.pltn13.pacbell.net] has joined #go-nuts 19:29 -!- devrim [~Adium@160.79.7.234] has joined #go-nuts 19:30 -!- aconran [~aconran-o@adsl-67-119-205-150.dsl.pltn13.pacbell.net] has quit [Read error: Operation timed out] 19:34 -!- robonobo [~robin@109.130.189.16] has joined #go-nuts 19:38 -!- illya77 [~illya77@85-74-133-95.pool.ukrtel.net] has joined #go-nuts 19:39 < wrtp> tuaruti: something like the WaitGroup implementation (see http://codereview.appspot.com/3770045/) would make it quite easy to wait for pending calls to complete. 19:39 < wrtp> s/tuaruti/taruti/ 19:39 < taruti> thanks 19:40 -!- creack [~charme_g@163.5.84.215] has joined #go-nuts 20:05 -!- Eridius [~kevin@unaffiliated/eridius] has joined #go-nuts 20:07 < wrtp> Namegduf: done! 20:08 < Namegduf> That CR got accepted? 20:08 < wrtp> yup 20:08 < Namegduf> Nice. 20:08 < wrtp> submitted 20:09 -!- markcol [~markcol@74.125.59.1] has quit [Quit: markcol] 20:10 -!- markcol [~markcol@74.125.59.1] has joined #go-nuts 20:11 < wrtp> Namegduf: hg sync; have fun! 20:22 -!- Fish- [~Fish@88.162.170.133] has joined #go-nuts 20:26 -!- binarypie [~binarypie@c-24-6-151-185.hsd1.ca.comcast.net] has joined #go-nuts 20:32 -!- sauerbraten [~sauerbrat@p508CE9B2.dip.t-dialin.net] has quit [Remote host closed the connection] 20:33 -!- sauerbraten [~sauerbrat@p508CE9B2.dip.t-dialin.net] has joined #go-nuts 20:33 -!- artefon [~thiago@187.59.184.163] has quit [Read error: Connection reset by peer] 20:36 -!- xash [~xash@d004026.adsl.hansenet.de] has joined #go-nuts 20:37 -!- illya77 [~illya77@85-74-133-95.pool.ukrtel.net] has quit [Read error: Connection reset by peer] 20:37 < kamaji> blarg 20:38 < kamaji> how do you read character by character from stdin? 20:38 < aiju> .Read? 20:38 < kamaji> that's bytes 20:38 < aiju> oh yeah 20:38 < kamaji> so it doesn't work for utf8 20:38 < kamaji> bufio has ReadRune but it seems to wait for a newline 20:39 < aiju> unix? 20:39 < kamaji> you mean am I using unix? 20:39 < kamaji> yea 20:39 < aiju> you need to turn off line buffering 20:39 < aiju> if you want it not to read per line 20:40 < kamaji> I thought it was unbuffered? 20:40 < aiju> why should it? 20:42 < kamaji> I dunno... I was just expecting it to because occam does 20:44 < aiju> why do you want to do this anyway? 20:44 < kamaji> catch control characters 20:44 < kamaji> like tab and ^L 20:44 < aiju> oic 20:44 < aiju> yeah, you need to disable line buffering for that 20:45 < kamaji> but it's so un-csp~ 20:45 < aiju> how so? 20:45 < aiju> what does this even has to do with CSP 20:45 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.3] 20:45 < kamaji> well you'd model stdin and stdout as character channels 20:46 < kamaji> and then have a buffer process 20:46 < kamaji> in csp 20:46 < aiju> this is not a Go decision 20:46 < aiju> this is fundamental to UNIX terminals 20:46 < Namegduf> Does CSP require horrendously inefficient design or is that just an application of it? 20:46 < kamaji> you can turn it off by default 20:46 < Namegduf> I mean... that sounds like a reasonable place to think about efficiency 20:47 < kamaji> you can interleave those processes 20:47 < kamaji> it's not necessarily running in parallel 20:47 < kamaji> it's just you design it so it can be split up 20:47 < Namegduf> That doesn't make processing things character by character fast 20:47 < Namegduf> Which it isn't. 20:48 < aiju> the point of line buffering is making working via a 110 baud connection more pleasant 20:48 < kamaji> aiju: I mean Go can turn it off by default 20:48 < aiju> kamaji: i don't think Go should do that 20:48 < kamaji> ok 20:48 < Namegduf> That would be slow. 20:48 < aiju> it would interfere too much with the underlying model 20:49 < kamaji> I thought CSP was the underlying model? 20:49 < wrtp> i'm not sure there's a portable way of putting the current tty into raw mode from Go 20:49 < aiju> no, the model underlying UNIX I/O 20:49 < aiju> stdin/stdout 20:49 < kamaji> oh right 20:49 < Namegduf> CSP-based concurrency is orthagonal to everything else in Go. 20:49 < wrtp> i may be wrong though 20:50 -!- cafesofie [~cafesofie@dhcp-140-254-204-149.osuwireless.ohio-state.edu] has joined #go-nuts 20:50 < kamaji> wrtp: so stdin is definitely buffered regardless of whether bufio is used? 20:50 < aiju> kamaji: bufio is another kind of buffering 20:50 < aiju> bufio is done to avoid tons of kernel syscalls 20:51 < wrtp> kamaji: no. because the tty might be in raw mode before the prog is started. try "stty cbreak; 6.out" 20:51 < aiju> when reading few amounts of characters at once 20:51 -!- ronnyy [~quassel@p4FF1C513.dip0.t-ipconnect.de] has joined #go-nuts 20:51 < aiju> line buffering is done at the terminal to avoid communication with the computer 20:51 < aiju> (remember that all UNIX terminals still have 110 baud terminals connected via serial line in mind) 20:52 < Namegduf> The amusing thing there is that it doesn't work for SSH 20:52 < Namegduf> Because the line buffering there is done remotely. 20:53 -!- robonobo [~robin@109.130.189.16] has quit [Quit: robonobo] 20:53 < kamaji> wrtp: oh, that works 20:53 < kamaji> thanks 20:54 < kamaji> aiju: how can a program set its input to be unbuffered then? 20:54 < kamaji> if it's controlled by the terminal 20:55 < kamaji> I know it's possible in C, but I don't really understand :P 20:55 < aiju> kamaji: it sends a certain control sequence 20:55 < aiju> dependent on the terminal 20:55 < aiju> so you should use a library to do it 20:55 < kamaji> oh, by terminal do you mean the os-controlled thingie 20:55 < kamaji> rather than "xterm"? :P 20:55 < aiju> i mean xterm 20:55 < kamaji> oh :| 20:55 < aiju> termios(3) for C 20:56 < aiju> dunno whether there are Go bindings 20:56 < kamaji> but how does it send a control sequence? I mean where does it go? 20:56 < aiju> you simply output it 20:56 -!- pothos_ [~pothos@111-240-165-86.dynamic.hinet.net] has joined #go-nuts 20:56 < kamaji> like to stdout? 20:56 < aiju> there are many control sequences 20:56 < aiju> yeah 20:56 < aiju> console_codes(4) lists 'em 20:56 < kamaji> wouldn't it be possible to inject control sequences to a program then? 20:56 < aiju> what do you mean? 20:57 < kamaji> well if I did /nick <controlsequence> 20:57 < aiju> usually they start with ESC 20:57 -!- TheMue [~TheMue@p5DDF51E8.dip.t-dialin.net] has quit [Quit: TheMue] 20:57 < Namegduf> If you can cause a program to output arbitrary binary garbage 20:57 < Namegduf> Then yes, you can cause it to reconfigure the terminal of the viewing user 20:57 < kamaji> Namegduf: but if I set my nick to that control sequence, it might pop up in your client? 20:57 < kamaji> if your client didn't check the string 20:58 < Namegduf> No, because the server wouldn't allow it, and if it did my client would probably not allow it. 20:58 < kamaji> right, bad example 20:58 < kamaji> but some protocol allowing it 20:58 < Namegduf> Whether you could say it would be a better test because the server won't check that 20:58 < Namegduf> But still I'm sure the client would 20:58 -!- pothos [~pothos@111-240-168-252.dynamic.hinet.net] has quit [Ping timeout: 260 seconds] 20:58 < kamaji> but if neither checked for arbitrary characters, I could just screw with people's terminals? 20:58 -!- robonobo [~robin@109.130.189.16] has joined #go-nuts 20:58 < aiju> lol eyah 20:58 < kamaji> oh man that is so cool 20:59 < wrtp> there were some great security holes using this stuff and old style real text terminals 20:59 < kamaji> I gotta try dat 20:59 < aiju> DOS allows executing programs 20:59 < aiju> look up ANSI bombs 20:59 -!- robonobo [~robin@109.130.189.16] has left #go-nuts [] 20:59 < kamaji> haha 20:59 < kamaji> that's so cool 21:00 < aiju> with UNIX terminals it's mostly colours and shit 21:00 < kamaji> right 21:02 -!- Venom_X [~pjacobs@75.92.43.21] has quit [Ping timeout: 272 seconds] 21:03 < kamaji> aw, now I have to write a mini-IRC client to test some of this 21:03 < kamaji> so much to do 21:04 -!- markcol [~markcol@74.125.59.1] has quit [Quit: markcol] 21:04 -!- markcol [~markcol@74.125.59.1] has joined #go-nuts 21:05 < wrtp> quite a few (most?) people don't view IRC through a cursor-addressing interface 21:05 < wrtp> and any decent IRC client will filter out ESC chars 21:05 < wrtp> old unix write(1) was fun. 21:06 < aiju> how so? 21:06 < kamaji> especially when nobody else knows about mesg n 21:06 < wrtp> it wrote directly to people's ttys 21:06 < aiju> oh write(1) 21:06 < aiju> i read write(2) 21:06 < kamaji> wait, are you telling me write can send control sequences? 21:06 < aiju> haha 21:06 < kamaji> holy balls 21:06 < wrtp> it certainly could back in 1988... 21:06 -!- cafesofie [~cafesofie@dhcp-140-254-204-149.osuwireless.ohio-state.edu] has quit [Remote host closed the connection] 21:06 < kamaji> it better still be able to 21:07 -!- Venom_X [~pjacobs@66.54.185.131] has joined #go-nuts 21:08 < kamaji> awwwwwww 21:08 < kamaji> my dreams... shattered... 21:09 -!- cafesofie [~cafesofie@dhcp-140-254-204-149.osuwireless.ohio-state.edu] has joined #go-nuts 21:13 -!- plainhao [~plainhao@208.75.85.237] has quit [Quit: plainhao] 21:15 -!- tvw [~tv@e176000225.adsl.alicedsl.de] has joined #go-nuts 21:17 -!- bmizerany [~bmizerany@208.66.27.62] has joined #go-nuts 21:19 -!- tvw [~tv@e176000225.adsl.alicedsl.de] has quit [Remote host closed the connection] 21:20 -!- tvw [~tv@e176000225.adsl.alicedsl.de] has joined #go-nuts 21:23 -!- grouzen [~grouzen@ip23-159.200.109.crimea.com] has joined #go-nuts 21:26 -!- sauerbraten [~sauerbrat@p508CE9B2.dip.t-dialin.net] has quit [Remote host closed the connection] 21:26 < wrtp> kamaji: ttys were out of date 20 years ago 21:27 < aiju> nowadays you use CLOUDS 21:28 -!- fzzbt [~fuzzybyte@77.79.7.8] has quit [Ping timeout: 250 seconds] 21:28 < kamaji> heh 21:28 -!- emjayess [~emjayess@pix1.i29.net] has joined #go-nuts 21:33 -!- ronnyy [~quassel@p4FF1C513.dip0.t-ipconnect.de] has quit [Remote host closed the connection] 21:35 -!- fzzbt [~fuzzybyte@77.79.7.8] has joined #go-nuts 21:42 -!- iLeNsTR [~lenstr@unaffiliated/lenstr] has quit [Quit: iLeNsTR] 22:00 -!- gr0gmint [~quassel@87.60.23.38] has quit [Remote host closed the connection] 22:08 -!- photron [~photron@port-92-201-12-254.dynamic.qsc.de] has quit [Ping timeout: 255 seconds] 22:13 -!- Fish- [~Fish@88.162.170.133] has quit [Quit: So Long, and Thanks for All the Fish] 22:16 -!- exch [~exch@h78233.upc-h.chello.nl] has quit [Read error: Connection reset by peer] 22:17 -!- DarthShrine [~angus@pdpc/supporter/student/DarthShrine] has joined #go-nuts 22:18 -!- awidegreen [~quassel@c-eacae555.08-2-73746f39.cust.bredbandsbolaget.se] has quit [Remote host closed the connection] 22:18 -!- tensorpudding [~user@99.23.127.179] has joined #go-nuts 22:20 -!- jumzi [~jumzi@c-89-233-234-125.cust.bredband2.com] has quit [Read error: Operation timed out] 22:21 -!- virtualsue [~chatzilla@nat/cisco/x-zivcnsrvgibjppgi] has joined #go-nuts 22:22 -!- exch [~exch@h78233.upc-h.chello.nl] has joined #go-nuts 22:24 -!- jumzi [~jumzi@c-89-233-234-125.cust.bredband2.com] has joined #go-nuts 22:28 -!- dforsyth_ [~dforsyth@bastion.inap.yelpcorp.com] has joined #go-nuts 22:29 -!- gid [~gid@220-253-152-68.VIC.netspace.net.au] has joined #go-nuts 22:34 -!- skejoe [~skejoe@188.114.142.162] has joined #go-nuts 22:41 -!- zozoR [~zozoR@56346ed3.rev.stofanet.dk] has quit [Quit: Morten. Desu~] 22:41 -!- xash [~xash@d004026.adsl.hansenet.de] has quit [Ping timeout: 276 seconds] 22:45 -!- sxs [~sxs@dslb-188-104-178-198.pools.arcor-ip.net] has joined #go-nuts 22:45 < sxs> hi 22:46 -!- unhygienix [~unhygieni@host86-185-228-150.range86-185.btcentralplus.com] has joined #go-nuts 22:50 -!- napsy [~luka@88.200.96.18] has quit [Quit: leaving] 22:51 -!- zav [~lsd@189001130056.usr.predialnet.com.br] has joined #go-nuts 22:51 < sxs> i have some consts and a map for printing them as sting: http://pastebin.com/fetLX23k how can i 'search' a string in the map. I wanna have a func (f *Fruite)ToInt(name string) int {} which looks if the value string is in the map and returns the key. I only found http://localhost:6060/doc/effective_go.html#maps to check if a key is present. 22:52 < aiju> sxs: just walk through all elements until it matches … 22:52 < sxs> no other way? what is if i have 1000 froots? 22:52 < aiju> do you? 22:53 < aiju> in that case you'd need to sort them and use a binary search 22:53 < sxs> no, up to 256. in real i wanna write a byte code interpreter. the froot names are the real opcode names ;) 22:53 < sxs> so i will have max 256 'fruits' 22:53 < aiju> and why do you need to get numbers from strings? 22:54 -!- cafesofie [~cafesofie@dhcp-140-254-204-149.osuwireless.ohio-state.edu] has quit [Remote host closed the connection] 22:54 < sxs> because i wanna have the possibility to translate vice versa from real byte code in []byte and humanreadable byte code like"iadd 1,2,3\niload 1,2\n..." 22:55 -!- sav [~lsd@jagat.xored.org] has joined #go-nuts 22:55 -!- sav [~lsd@jagat.xored.org] has quit [Excess Flood] 22:55 < aiju> sxs: it's unlikely to be the bottleneck 22:56 < sxs> ok, i'l trust you :) 22:57 < sxs> i thought mybe i missed something in the documentation, so i ksed. 22:57 < sxs> asked 23:00 < sxs> another question: when i make the map[Fruite]string{} then i got a compile error, if i omit the , at the end of the last key value line. why that? 23:01 < sxs> if i remove the , after "Pinaple" in my paste bin code i got an error. allthough there is no more item after that. 23:02 -!- binarypie [~binarypie@c-24-6-151-185.hsd1.ca.comcast.net] has quit [Ping timeout: 246 seconds] 23:03 -!- toyoshim_ [~toyoshim@ac133116.dynamic.ppp.asahi-net.or.jp] has joined #go-nuts 23:03 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts 23:04 -!- boscop [~boscop@f055147031.adsl.alicedsl.de] has quit [Ping timeout: 240 seconds] 23:07 -!- toyoshim_ [~toyoshim@ac133116.dynamic.ppp.asahi-net.or.jp] has quit [Ping timeout: 255 seconds] 23:09 -!- Kashia [~Kashia@port-92-200-125-182.dynamic.qsc.de] has joined #go-nuts 23:12 -!- emjayess [~emjayess@pix1.i29.net] has quit [Quit: Leaving] 23:13 -!- arun [~arun@unaffiliated/sindian] has quit [Ping timeout: 260 seconds] 23:13 -!- creack [~charme_g@163.5.84.215] has quit [Ping timeout: 255 seconds] 23:14 -!- gr0gmint [~quassel@87.60.23.38] has joined #go-nuts 23:14 -!- LuitvD [~me@beigetower/luitvd] has quit [Quit: Leaving] 23:17 -!- skelterjohn [~jasmuth@c-68-45-238-234.hsd1.nj.comcast.net] has joined #go-nuts 23:20 -!- arun [~arun@unaffiliated/sindian] has joined #go-nuts 23:22 -!- cafesofie [~cafesofie@rnwifi-164-107-92-229.resnet.ohio-state.edu] has joined #go-nuts 23:22 -!- wrtp [~rog@92.17.62.109] has quit [Quit: wrtp] 23:27 -!- creack [~charme_g@163.5.84.215] has joined #go-nuts 23:28 -!- unhygienix [~unhygieni@host86-185-228-150.range86-185.btcentralplus.com] has quit [Quit: unhygienix] 23:42 -!- Adys [~Adys@cpc3-chap8-2-0-cust26.aztw.cable.virginmedia.com] has joined #go-nuts 23:42 -!- Adys [~Adys@cpc3-chap8-2-0-cust26.aztw.cable.virginmedia.com] has quit [Changing host] 23:42 -!- Adys [~Adys@unaffiliated/adys] has joined #go-nuts 23:51 -!- sxs [~sxs@dslb-188-104-178-198.pools.arcor-ip.net] has quit [Quit: sxs] 23:54 < kamaji> Oh, I found this: https://github.com/kless/go-linoise 23:54 < kamaji> it's basically what I wanted :D 23:55 < kamaji> and there's a terminal wrapper https://github.com/kless/go-term 23:56 -!- jesmon [~user@static-71-244-114-122.albyny.fios.verizon.net] has quit [Remote host closed the connection] 23:56 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has quit [Quit: Verlassend] 23:58 < kamaji> but it doesn't compile ;_; 23:59 -!- rlab [~Miranda@91.200.158.34] has quit [Read error: Connection reset by peer] --- Log closed Tue Jan 11 00:00:01 2011