--- Log opened Wed Jun 08 00:00:02 2011
--- Day changed Wed Jun 08 2011
00:00 < TheCritic> but I think I am missing something (or 3)
00:01 -!- shvntr [~shvntr@119.121.26.150] has joined #go-nuts
00:03 -!- mgray [~mgray@li226-224.members.linode.com] has quit [Quit: Lost
terminal]
00:04 < TheCritic> holy crap
00:04 < TheCritic> I think I figured this out...
00:07 < nsf> http://pastie.org/2035228
00:07 < TheCritic> Do you see any obvious errors in this?
http://pastebin.com/27jyWmyX
00:07 < nsf> oops
00:07 < nsf> wrong channel :)
00:07 < TheCritic> :)
00:08 < nsf> sorry
00:08 -!- shvntr [~shvntr@119.121.26.150] has quit [Quit: leaving]
00:08 < nsf> TheCritic: looks fine
00:08 < nsf> what's wrong with it?
00:08 < TheCritic> nice!
00:08 < TheCritic> nothing
00:08 < TheCritic> looks like it works
00:09 < nsf> it prints the number though
00:09 < TheCritic> the number is the crc64 for the file, correct?
00:09 < nsf> right
00:09 < nsf> ah, I guess it's some different language
00:10 < nsf> where hash class had two Sum methods
00:10 < nsf> one for nice hex strings and the other for numbers :)
00:10 -!- Sisten [~Sisten@s213-103-208-147.cust.tele2.se] has quit [Read error:
Connection reset by peer]
00:10 < TheCritic> ah
00:11 -!- Sisten [~Sisten@s213-103-208-147.cust.tele2.se] has joined #go-nuts
00:12 < TheCritic> this must be wrong
00:12 < TheCritic> it always prints the same number
00:12 < TheCritic> :(
00:12 < TheCritic> wait..  nevermind
00:14 <@adg> nsf: wtf is with that import block!?
00:14 < nsf> adg: it's not Go :)
00:14 <@adg> what is it?
00:14 < nsf> adg: crawl, a programming language I'm working on..  it's more
like C with Go syntax
00:15 < nsf> it can import C headers directly
00:15 <@adg> nsf: nice!  got a web site?
00:15 < nsf> adg: https://github.com/nsf/crawlc
00:15 < nsf> there is some stuff
00:15 < nsf> but it's far from useful
00:16 < nsf> http://home.nosmileface.ru/typesystem.html <- also this doc
00:16 < nsf> it reflect recent changes in the type system
00:16 < nsf> reflects*
00:17 < nsf> adg: in other words, it's all largely WIP
00:17 <@adg> cool, seems interesting
00:17 < nsf> it's like a low level Go's brother :D
00:17 <@adg> :)
00:19 -!- TheCritic_ [~TheCritic@c-24-30-34-40.hsd1.ga.comcast.net] has joined
#go-nuts
00:19 -!- robteix [~robteix@201-213-183-45.net.prima.net.ar] has quit [Ping
timeout: 276 seconds]
00:20 -!- TheCritic [~TheCritic@c-24-30-34-40.hsd1.ga.comcast.net] has quit [Ping
timeout: 250 seconds]
00:20 < TheCritic> writing data to disk....  like a ini, csv, yaml,
sqlite....  something and easy in go...  recomendations?
00:21 < TheCritic> trying to serialize my file/crc64 list
00:21 < nsf> do you want it readable?  or just a way to
serialize/deserialize?
00:22 < nsf> http://golang.org/pkg/gob/
00:22 < nsf> there is this package
00:22 < TheCritic> nice
00:22 < TheCritic> ill read it
00:22 < nsf> but it's binary
00:22 < nsf> the format I mean
00:22 < TheCritic> yeah, binary is prefered
00:22 < TheCritic> no need for humans to read it
00:23 <@adg> TheCritic: gob or json
00:24 <@adg> TheCritic: gob is great
00:24 < TheCritic> I like gob, looking for gob persist examples now :)
00:24 < TheCritic> well, the 90 seconds I have read anyway
00:29 -!- whitespacechar [~whitespac@24-247-159-7.dhcp.klmz.mi.charter.com] has
joined #go-nuts
00:31 -!- whitespacechar [~whitespac@24-247-159-7.dhcp.klmz.mi.charter.com] has
quit [Client Quit]
00:34 -!- rputikar [~240182H@203-206-21-179.dyn.iinet.net.au] has joined #go-nuts
00:36 -!- kr [~Keith@204.14.152.118] has quit [Ping timeout: 246 seconds]
00:36 -!- Sisten [~Sisten@s213-103-208-147.cust.tele2.se] has quit [Quit: Lämnar]
00:36 -!- Tv [~Tv@ip-66-33-206-8.dreamhost.com] has quit [Ping timeout: 252
seconds]
00:39 -!- whitespacechar [~whitespac@24-247-159-7.dhcp.klmz.mi.charter.com] has
joined #go-nuts
00:39 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Quit:
skelterjohn]
00:40 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined
#go-nuts
00:41 -!- rcrowley [~rcrowley@c-71-202-44-233.hsd1.ca.comcast.net] has quit [Ping
timeout: 260 seconds]
00:46 -!- rputikar [~240182H@203-206-21-179.dyn.iinet.net.au] has quit [Quit:
rputikar]
00:48 -!- sebastianskejoe [~sebastian@89.249.0.154] has quit [Quit: Lost terminal]
00:49 -!- tgall_out [~tgall@linaro/tgall-foo] has quit [Ping timeout: 244 seconds]
00:52 -!- dfr|mac [~dfr|work@ool-182e3fca.dyn.optonline.net] has joined #go-nuts
00:52 -!- werdan7 [~w7@freenode/staff/wikimedia.werdan7] has joined #go-nuts
00:57 -!- Tv [~Tv@cpe-76-168-227-45.socal.res.rr.com] has joined #go-nuts
00:59 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Quit:
skelterjohn]
01:04 -!- chressie [~chressie@dreggn.in-ulm.de] has joined #go-nuts
01:04 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined
#go-nuts
01:11 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Quit:
skelterjohn]
01:12 -!- iant [~iant@67.218.103.62] has quit [Quit: Leaving.]
01:17 -!- robteix [~robteix@host16.190-230-219.telecom.net.ar] has joined #go-nuts
01:19 -!- franciscosouza [~francisco@187.105.21.125] has joined #go-nuts
01:21 -!- dreadlorde [~dreadlord@c-24-11-39-160.hsd1.mi.comcast.net] has joined
#go-nuts
01:21 -!- robteix [~robteix@host16.190-230-219.telecom.net.ar] has quit [Client
Quit]
01:21 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined
#go-nuts
01:23 < TheCritic> ok, so I have a struct that defines a "filerecord".  I
want to make one and add it to a list...
01:25 < skelterjohn> what's the hang-up?
01:26 -!- jsj [~johan@78-70-255-20-no149.tbcn.telia.com] has joined #go-nuts
01:28 < TheCritic> http://pastebin.com/Xc7p5DWv
01:28 < TheCritic> this is a bit of the code extracted
01:30 < TheCritic> oops, this is better
01:30 < TheCritic> http://pastebin.com/iRDxjQFq
01:30 < TheCritic> I am particularly confused about this bit: fr :=
FileRecord "/", 0, 0
01:32 < skelterjohn> doesn't look like it compiles
01:32 < TheCritic> nope
01:32 < skelterjohn> you're missing {}
01:32 < skelterjohn> FileRecord{ "/", 0, 0 }
01:32 < skelterjohn> is one way to initialize a struct
01:32 < skelterjohn> you have to fill every element, in order
01:32 < TheCritic> nice
01:32 < skelterjohn> you can also do FileRecord{path:"/"; crc64:0} etc
01:32 < TheCritic> that worked
01:32 < TheCritic> cool
01:33 < TheCritic> thanks
01:33 < skelterjohn> my pleasure
01:34 < TheCritic> ok, I am storing these in a list
01:34 < TheCritic> so it comes out as an element
01:35 < TheCritic> do I need to coax it back into a FileRecord to access the
path?
01:37 < skelterjohn> theList[i].path
01:37 < skelterjohn> is that what you're talking about?
01:37 < skelterjohn> i'm not really sure what you're saying, to be honest :)
01:38 < TheCritic> ah, just needed a type assertion...
01:38 < TheCritic> I am almost leaning this thing....  fun fun fun
01:38 < TheCritic> learning
01:38 < skelterjohn> oh i see - you're using container/list and it has
interface{} as its type
01:38 < TheCritic> yup
01:39 < skelterjohn> just so you know, regular slices can be used as
expandable java or C++ style vectors
01:39 < skelterjohn> container/list is only useful if you specifically want
a linked list
01:39 < TheCritic> nice
01:39 < skelterjohn> someSlice = append(someSlice, someItem)
01:39 < TheCritic> now I need to persist mi list....  looking at a glob ....
01:39 < skelterjohn> will add something to a slice
01:40 < TheCritic> nice
01:40 -!- whitespacechar [~whitespac@24-247-159-7.dhcp.klmz.mi.charter.com] has
quit [Quit: whitespacechar]
01:42 < TheCritic> ok, here is my code so far....
01:42 -!- nannto [~nanto@pee5b70.tokyff01.ap.so-net.ne.jp] has joined #go-nuts
01:42 < TheCritic> http://pastebin.com/Dxb5hNLf
01:42 -!- whitespacechar [~whitespac@24-247-159-7.dhcp.klmz.mi.charter.com] has
joined #go-nuts
01:43 < TheCritic> I am unsure if a list is the right way to go
01:43 < TheCritic> maybe just an array...  but I couldn't figure that one
out....
01:43 < skelterjohn> probably not - from what i see in that code you just
want a slice
01:43 < skelterjohn> which is like an array but a reference type
01:43 < skelterjohn> var filerecords []FileRecord
01:44 < skelterjohn> instead of PushFront, filerecords = append(filerecords,
fr)
01:44 < TheCritic> ok, you didnt dimension it....
01:44 < skelterjohn> that's right - if i had it would be an array
01:44 < TheCritic> nice
01:44 < TheCritic> that is so much earier
01:45 < TheCritic> thanks!
01:45 < skelterjohn> instead of line 63, "for _, e := range filerecords { "
01:48 < TheCritic> wow, that seems faster
01:48 < TheCritic> ok
01:48 < TheCritic> for _, e := range filerecords {
01:48 < TheCritic> what does the _ represent?
01:49 < TheCritic> ah
01:49 < TheCritic> nevermind
01:49 < TheCritic> range returns 2 values
01:49 < TheCritic> and _ lets you throw it away
01:49 < TheCritic> correct?
01:50 < vsmatck> yup
01:50 < TheCritic> nice
01:51 -!- bjarneh [~bjarneh@1x-193-157-202-30.uio.no] has joined #go-nuts
01:52 < skelterjohn> the first one is the index counter for whichever one
you're on
01:52 < skelterjohn> and in your case it looked like you didn't need it
01:53 < TheCritic> later I would like to reference the data by using a key
01:53 < skelterjohn> is it ok if that key is the array index?
01:54 < skelterjohn> :)
01:54 < skelterjohn> otherwise you should learn about map types
01:54 < TheCritic> filerecords("/Users/bshuler/code/pcp/ocr.tgz").crc64
01:54 < skelterjohn> ah
01:54 < TheCritic> the file path will be the kep
01:54 < TheCritic> key
01:54 < skelterjohn> yes - a map type is what you need
01:54 < TheCritic> so, reading map types now
01:54 < TheCritic> cool, thx
01:56 < TheCritic> make(map[string] FileRecord )
01:57 < skelterjohn> looks right
01:57 < TheCritic> nice
01:58 < TheCritic> so, to declare filerecords as a map instead of a slice...
01:58 -!- bmizerany [~bmizerany@204.14.152.118] has quit [Remote host closed the
connection]
01:59 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Quit:
skelterjohn]
02:06 -!- Netsplit *.net <-> *.split quits: Natch|, aslakr_, apexo, exch,
preflex, madari, Boney, Archwyrm, ekontsevoy, scoeri, (+10 more, use /NETSPLIT to
show all of them)
02:06 -!- aslakr [~aslak@static.42.114.40.188.clients.your-server.de] has joined
#go-nuts
02:06 -!- Netsplit over, joins: kkress, Archwyrm
02:06 -!- Netsplit over, joins: Xenith
02:06 -!- Netsplit over, joins: TheSeeker
02:06 -!- Netsplit over, joins: schilly
02:06 -!- mkrautz [~mkrautz@enchantment.sasquash.dk] has joined #go-nuts
02:06 -!- keithcascio [~keithcasc@nat/google/x-tywqhpulmjyohxky] has joined
#go-nuts
02:06 -!- Netsplit over, joins: madari
02:06 -!- Netsplit over, joins: Boney
02:06 -!- scoeri [~jdekoste@progftp.vub.ac.be] has joined #go-nuts
02:06 < TheCritic> is there a cool append type method for maps?
02:07 -!- Netsplit over, joins: yiyus, ekontsevoy, exch, yugui_zzz, apexo
02:07 -!- Netsplit over, joins: Natch|
02:08 -!- Netsplit over, joins: kanru
02:08 < KirkMcDonald> TheCritic: What would it do?
02:08 < TheCritic> ah, ok
02:08 < askhader> This call to Fprint produces the accompanied error.  Any
ideas why this may be?  http://pastebin.com/Jmwz56MN
02:09 < TheCritic> so, I have declared my map
02:09 < TheCritic> now I want to fill it dynamically
02:09 < KirkMcDonald> TheCritic: And made it with make()?
02:09 < KirkMcDonald> TheCritic: Then just assign to the keys.
02:09 < KirkMcDonald> m[k] = v
02:09 < TheCritic> that easy
02:10 < TheCritic> seriously?
02:10 < TheCritic> cool
02:10 < askhader> Oh I can see what is happening here
02:11 < TheCritic> if v is a struct?
02:11 -!- keithcascio [~keithcasc@nat/google/x-tywqhpulmjyohxky] has quit [Client
Quit]
02:11 -!- Rennex [rennex@giraf.fi] has joined #go-nuts
02:11 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has joined #go-nuts
02:11 < KirkMcDonald> TheCritic: It must be assignable.
02:11 < KirkMcDonald> Just like any other assignment.
02:12 < TheCritic> ok
02:13 -!- aat [~aat@cpe-72-225-174-173.nyc.res.rr.com] has joined #go-nuts
02:17 < TheCritic> any ideas?  http://pastebin.com/8Y0UbXvT
02:18 < TheCritic> I trying to convert my slice to a map...
02:19 -!- GoTest [~gotest@rrcs-97-79-174-130.sw.biz.rr.com] has joined #go-nuts
02:19 -!- GoTest [~gotest@rrcs-97-79-174-130.sw.biz.rr.com] has quit [Remote host
closed the connection]
02:22 -!- bmizerany [~bmizerany@c-76-21-40-53.hsd1.ca.comcast.net] has joined
#go-nuts
02:23 < Tv> TheCritic: what you have is a datatype not a value, yet you are
trying to assign it
02:23 < Tv> TheCritic: take out the =
02:24 < Tv> TheCritic: though you'll probably be happier if you create a
type Foo struct {..} and then map[string]Foo
02:24 -!- franciscosouza [~francisco@187.105.21.125] has quit [Read error:
Connection reset by peer]
02:24 < TheCritic> cool
02:25 < TheCritic> thanks, I will try that!
02:26 -!- nteon [~nteon@c-98-210-195-105.hsd1.ca.comcast.net] has joined #go-nuts
02:31 < TheCritic> Tv: so given this: http://pastebin.com/NfhiS5DT
02:31 < TheCritic> This part is giving me a bit of trouble..
filerecords["/"] = 0, 0
02:33 -!- franciscosouza [~francisco@187.105.21.125] has joined #go-nuts
02:35 < TheCritic> ah
02:35 < TheCritic> needed {}
02:35 < TheCritic> figured it ....  fun fun fun
02:38 < kuroneko> ...  is there a preferred idiom for select with 'timeout'?
02:39 < kuroneko> or is the standard approach to just create another
goroutine with a sleep in it that writes to a channel that you select on as a
timeout action
02:48 < kuroneko> s/channel/buffered channel/
02:49 < vsmatck> yeah that's the standard way.
02:52 -!- jsj [~johan@78-70-255-20-no149.tbcn.telia.com] has quit [Remote host
closed the connection]
03:06 < Namegduf> hokapoka: Have one of the cases be <-time.After()
03:07 < Namegduf> And have that case handle a timeout.
03:07 -!- angasule [~angasule@190.2.33.49] has quit [Ping timeout: 244 seconds]
03:07 < Namegduf> After takes the desired timeout time.
03:10 -!- Nisstyre [~nisstyre@109.74.204.224] has joined #go-nuts
03:10 < Namegduf> That is basically the same thing, but time's package only
uses a single (or, well, few as it can) goroutine.
03:11 < vsmatck> ^ forgot about time.After().
03:12 -!- jrabbit [~babyseal@unaffiliated/jrabbit] has quit [Ping timeout: 276
seconds]
03:16 < TheCritic> I am losing my mind
03:16 < TheCritic> what am I missing here?
03:16 < TheCritic> http://pastebin.com/qq4BHGnq
03:18 < vsmatck> Go doesn't allow unused variables.
03:18 < TheCritic> yes
03:18 < TheCritic> agreed
03:19 < nteon> TheCritic: so after Create(), add f.Stat()
03:19 < TheCritic> but I am also getting this on compile
03:19 < nteon> or some other such
03:19 < nteon> that allows it to compile forme
03:19 < TheCritic> write_file.go:7: undefined: os.Create
03:19 -!- iant [~iant@adsl-71-133-8-30.dsl.pltn13.pacbell.net] has joined #go-nuts
03:19 -!- mode/#go-nuts [+v iant] by ChanServ
03:20 < TheCritic> so there is something wrong with my go
03:20 < nteon> TheCritic: yup :)
03:20 < TheCritic> my go wont go
03:20 < TheCritic> wow, that is enough agrivation for one night
03:20 < nteon> TheCritic: I suggest rebuilding & running the unit tests
03:21 < nteon> all.bash
03:21 < vsmatck> TheCritic =
http://images.wikia.com/memoryalpha/en/images/b/bf/Grebnedlog.jpg
03:21 < nsf> :D
03:21 < vsmatck> I'm just joking.  I can tell he's just frustrated.
03:21 < TheCritic> :)
03:21 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.5]
03:22 < TheCritic> ok, nite all, I'll rebuild go tomorrow....
03:22 -!- TheCritic [~TheCritic@c-24-30-34-40.hsd1.ga.comcast.net] has quit [Quit:
TheCritic]
03:23 < vsmatck> I find sleep is good when frustrated and not making
progress.
03:23 < vsmatck> Come at it with a fresh mind.
03:23 -!- icey [~user@ip68-104-183-151.ph.ph.cox.net] has joined #go-nuts
03:35 -!- tobym [~tobym@cpe-72-229-2-6.nyc.res.rr.com] has joined #go-nuts
03:36 < nteon> I may have asked this before, but is the rule for a struct
that it is heap allocated if its scope escapes the function or method it was
defined in?
03:37 < nteon> and stack allocated otherwise?
03:39 -!- niemeyer [~niemeyer@201-40-174-53.pltce701.dsl.brasiltelecom.net.br] has
quit [Ping timeout: 263 seconds]
03:41 < kuroneko> ah
03:41 < kuroneko> thanks for the time.After() suggestion.
03:45 < nteon> more relevant question, why is |= not defined for bool?
03:46 < nteon> someBool |= someOtherBool gives me a compiler error
03:50 -!- mnoel [~mnoel@c-75-65-250-60.hsd1.la.comcast.net] has joined #go-nuts
03:51 -!- danilo04 [~danilo04@66.44.228.140] has joined #go-nuts
03:51 < _nil> adg: got your mail, will repsond tomorrow, dicking around with
camlistore atm
03:52 -!- dreadlorde [~dreadlord@c-24-11-39-160.hsd1.mi.comcast.net] has quit
[Ping timeout: 276 seconds]
03:54 -!- rcrowley [~rcrowley@c-71-202-44-233.hsd1.ca.comcast.net] has joined
#go-nuts
04:01 -!- danilo04 [~danilo04@66.44.228.140] has quit [Ping timeout: 268 seconds]
04:04 -!- whitespacechar [~whitespac@24-247-159-7.dhcp.klmz.mi.charter.com] has
quit [Quit: whitespacechar]
04:05 -!- jrabbit [~babyseal@unaffiliated/jrabbit] has joined #go-nuts
04:10 -!- rejb [~rejb@unaffiliated/rejb] has quit [Disconnected by services]
04:11 -!- rejb [~rejb@unaffiliated/rejb] has joined #go-nuts
04:19 -!- bmizerany [~bmizerany@c-76-21-40-53.hsd1.ca.comcast.net] has quit
[Remote host closed the connection]
04:24 -!- whitespacechar [~whitespac@24-247-159-7.dhcp.klmz.mi.charter.com] has
joined #go-nuts
04:31 -!- zozoR [~Morten@2906ds2-arno.0.fullrate.dk] has joined #go-nuts
04:36 -!- boscop_ [~boscop@f055129094.adsl.alicedsl.de] has joined #go-nuts
04:38 -!- boscop [~boscop@unaffiliated/boscop] has quit [Ping timeout: 255
seconds]
04:39 < jessta_> nteon: I think currently anything you take the address of
will be heap allocated, escape analysis isn't great at the moment
04:40 -!- whitespacechar [~whitespac@24-247-159-7.dhcp.klmz.mi.charter.com] has
quit [Quit: whitespacechar]
04:41 < jessta_> nteon: bitwising bools doesn't make much sense because
bools have no specific bit representation
04:41 -!- whitespacechar [~whitespac@24-247-159-7.dhcp.klmz.mi.charter.com] has
joined #go-nuts
04:43 < jessta_> nteon: someBool = someOtherBool || someBool
04:45 -!- franciscosouza [~francisco@187.105.21.125] has quit [Quit:
franciscosouza]
04:48 -!- Loonacy [~loonacy@c-67-172-248-248.hsd1.ut.comcast.net] has quit [Quit:
Leaving]
04:49 -!- Loonacy [~zephyros@Loonacy.broker.freenet6.net] has joined #go-nuts
04:52 -!- meatmanek_ [~meatmanek@70-36-143-95.dsl.dynamic.sonic.net] has joined
#go-nuts
04:54 -!- tobym [~tobym@cpe-72-229-2-6.nyc.res.rr.com] has quit [Ping timeout: 260
seconds]
04:56 -!- meatmanek [~meatmanek@70-36-143-178.dsl.dynamic.sonic.net] has quit
[Ping timeout: 276 seconds]
05:02 -!- mav_ [~mav@c-98-245-125-65.hsd1.co.comcast.net] has joined #go-nuts
05:07 -!- KirkMcDonald [~Kirk@python/site-packages/KirkMcDonald] has quit [Ping
timeout: 246 seconds]
05:07 -!- KirkMcDonald [~Kirk@python/site-packages/KirkMcDonald] has joined
#go-nuts
05:08 -!- ExtraSpice [XtraSpice@78-57-204-104.static.zebra.lt] has joined #go-nuts
05:09 -!- Bigbear1 [~Cody@d173-181-43-12.abhsia.telus.net] has quit [Read error:
Connection reset by peer]
05:22 -!- franciscosouza [~francisco@201.7.186.67] has joined #go-nuts
05:25 < nteon> jessta_: yea, I mean what I really wanted was '||=', but go
doesn't have that operator.  so I just changed someBool's type to int, because I'm
just calling a bunch of functions in a row and want to know if any return true
05:34 -!- firwen [~firwen@2a01:e34:eea3:7e10:4a5b:39ff:fe51:e8ae] has joined
#go-nuts
05:47 -!- franciscosouza [~francisco@201.7.186.67] has quit [Quit: franciscosouza]
05:51 -!- franciscosouza [~francisco@201.7.186.67] has joined #go-nuts
05:52 -!- Count_Niedar [~bleh@ip68-99-166-222.hr.hr.cox.net] has joined #go-nuts
05:53 -!- firwen [~firwen@2a01:e34:eea3:7e10:4a5b:39ff:fe51:e8ae] has quit [Quit:
Geek insinde®]
05:53 -!- mnoel [~mnoel@c-75-65-250-60.hsd1.la.comcast.net] has quit [Read error:
Connection reset by peer]
05:53 -!- mnoel [~mnoel@c-75-65-250-60.hsd1.la.comcast.net] has joined #go-nuts
05:54 -!- mnoel [~mnoel@c-75-65-250-60.hsd1.la.comcast.net] has quit [Client Quit]
05:56 -!- Niedar [~bleh@ip68-99-166-222.hr.hr.cox.net] has quit [Ping timeout: 250
seconds]
06:02 -!- pingveno [~pingveno@c-98-246-133-8.hsd1.or.comcast.net] has quit [Ping
timeout: 246 seconds]
06:04 -!- pingveno [~pingveno@c-98-246-133-8.hsd1.or.comcast.net] has joined
#go-nuts
06:05 -!- zozoR [~Morten@2906ds2-arno.0.fullrate.dk] has quit [Ping timeout: 255
seconds]
06:06 -!- jemeshsu [~jemeshsu@bb220-255-88-127.singnet.com.sg] has joined #go-nuts
06:07 -!- jsj [~johan@78-70-255-20-no149.tbcn.telia.com] has joined #go-nuts
06:08 -!- meatmanek_ [~meatmanek@70-36-143-33.dsl.dynamic.sonic.net] has joined
#go-nuts
06:12 -!- meatmanek [~meatmanek@70-36-143-95.dsl.dynamic.sonic.net] has quit [Ping
timeout: 276 seconds]
06:23 -!- noodles775 [~michael@g225068104.adsl.alicedsl.de] has joined #go-nuts
06:23 -!- noodles775 [~michael@g225068104.adsl.alicedsl.de] has quit [Changing
host]
06:23 -!- noodles775 [~michael@canonical/launchpad/noodles775] has joined #go-nuts
06:29 -!- thomas_b [~thomasb@cm-84.215.47.51.getinternet.no] has joined #go-nuts
06:41 -!- fvbommel [~fvbommel_@86.86.15.250] has quit [Ping timeout: 240 seconds]
06:41 -!- napsy [~luka@88.200.96.18] has joined #go-nuts
06:41 -!- ronnyy [~quassel@p4FF1C592.dip0.t-ipconnect.de] has joined #go-nuts
06:48 -!- aat [~aat@cpe-72-225-174-173.nyc.res.rr.com] has quit [Quit: Computer
has gone to sleep.]
06:49 -!- mav_ [~mav@c-98-245-125-65.hsd1.co.comcast.net] has quit [Remote host
closed the connection]
06:53 < vegai> hi
06:54 < vegai> http://discord.fi/go_proposal_const_function.txt
06:54 < vegai> I'd like to ask y'all whether this is completely insane and
against what everyone wants for go
06:54 < vegai> before I edit it a bit more and put it in the mailing list
06:57 -!- piranha [~piranha@D57D1AB3.static.ziggozakelijk.nl] has joined #go-nuts
06:57 -!- piranha [~piranha@D57D1AB3.static.ziggozakelijk.nl] has quit [Remote
host closed the connection]
06:58 -!- piranha [~piranha@D57D1AB3.static.ziggozakelijk.nl] has joined #go-nuts
07:00 < KirkMcDonald> vegai: What of reference types?
07:00 < KirkMcDonald> vegai: Maps, slices, interfaces...
07:01 < KirkMcDonald> Basically you seem to be getting at "no side effects."
07:02 < vegai> good question
07:02 < vegai> yes, that's the point
07:02 < dforsyth> is something like func fn(p structT) *structT { return &p
} safe?
07:04 < vegai> yeah, it seems like pointers to newly created data would be
ok as a pure function.  There wouldn't be referential transparency, though
07:04 < vegai> not "ok as a pure function" obviously, but as a const
function perhaps
07:05 < vegai> oh wait, that doesn't create data
07:06 < vegai> dforsyth: yes, I would say that's ok
07:09 < vegai> KirkMcDonald: the data under reference types can change at
any time, right?
07:09 < vegai> at least for slices
07:09 < KirkMcDonald> For any reference type.
07:09 < vegai> right
07:10 < KirkMcDonald> Unless it's a reference to something immutable, which
I don't think exists in Go.
07:10 < |Craig|> vegai: another corner case to cover: can not be passed non
constant functions
07:10 < KirkMcDonald> Well, aside from strings.
07:10 < vegai> KirkMcDonald: they would have to be prohibited along side
with pointers, then, I'm afraid
07:10 < vegai> |Craig|: thanks
07:11 < KirkMcDonald> vegai: What, strings would?
07:11 < KirkMcDonald> vegai: They're immutable.  They'd be fine.
07:11 < vegai> reference types
07:11 < KirkMcDonald> Oh, yes.
07:11 < |Craig|> vegai: also consider the restrictions on what types of
closures are valid inside const functions
07:12 -!- franciscosouza [~francisco@201.7.186.67] has quit [Quit: franciscosouza]
07:12 < |Craig|> vegai: and if the goal it to allow optimizing the call to
the function out when its results are unused, what about exceptions?
07:15 < vegai> hmm
07:15 < |Craig|> and you can allow "go SomeConstFunction()" I guess
07:15 < vegai> perhaps a function call where the return value is not used
could be an error
07:15 < vegai> like it is currently for unused variables
07:19 < |Craig|> vegai: personally I think it would be more useful (and
easier to get accepted) to have and option/addon to goDoc to detect const
functions and mark them than add a language change to support them
07:23 < vegai> can function purity be deferred automatically?
07:23 < vegai> it smells like a non-halting problem, but I'm not sure
07:25 < vegai> gotta go back to work now and let this brew for a while
07:25 < vegai> thanks, everybody
07:25 < |Craig|> vegai: if it can be a compiler error if non constant, you
can check them all
07:26 < vegai> hmm?
07:26 < vegai> in my proposal, all functions without the "const" keyword
would be non-const
07:27 < |Craig|> if you can make a compiler that will raise an error if you
do something non const in a const function, why cant you mark them all const, and
unmark the ones that throw the error until it compiles, thus finding all const
functions
07:28 < |Craig|> sure, it could be slow, but if your proposal is possible,
it could be used to detect it automatically
07:29 < Namegduf> What's more, if the proposal isn't possible, you can still
do partial optimisations on proven-const functions
07:29 < Namegduf> If you can only prove some are const
07:29 < Namegduf> Which is...  where we are now, I think.
07:31 < |Craig|> there is still the exception issue.  To get the real
optimization benifits, you need to either know or assume no panic will occur
07:31 < vegai> oh, right.  Yes, I suppose you could do that.
07:32 < |Craig|> const could mean assume I won't panic when optimizing, but
that would be strange...
07:32 < vegai> my personal interest is more in safety instead of
optimization
07:32 < vegai> but the whole thing is obviously more complex than it seemed
at first
07:33 -!- Tv [~Tv@cpe-76-168-227-45.socal.res.rr.com] has quit [Ping timeout: 276
seconds]
07:36 -!- franciscosouza [~francisco@187.105.21.125] has joined #go-nuts
07:37 -!- napsy [~luka@88.200.96.18] has quit [Ping timeout: 255 seconds]
07:37 -!- dfc [~dfc@eth59-167-133-99.static.internode.on.net] has quit [Ping
timeout: 252 seconds]
07:39 -!- fvbommel [~fvbommel_@131.155.71.85] has joined #go-nuts
07:39 < uriel> humm:: http://news.ycombinator.com/item?id=2631964
07:46 -!- bjarneh [~bjarneh@1x-193-157-202-30.uio.no] has quit [Quit: leaving]
07:49 -!- napsy [~luka@193.2.66.6] has joined #go-nuts
07:51 < jessta_> vegai: why would you need to declare a function as const if
those restrictions are on it
07:51 < jessta_> a program could just generate that information
07:53 < jessta_> how would you call a const function?
07:53 < jessta_> it would have to be different to a non-const function
otherwise it could be modified to not be const and the callers wouldn't know
07:56 -!- ronnyy [~quassel@p4FF1C592.dip0.t-ipconnect.de] has quit [Remote host
closed the connection]
07:57 -!- rputikar [~240182H@203-206-21-179.dyn.iinet.net.au] has joined #go-nuts
07:59 -!- mikespook1 [~mikespook@219.137.255.110] has joined #go-nuts
08:00 -!- mikespook [~mikespook@119.131.232.191] has quit [Ping timeout: 276
seconds]
08:15 -!- GeertJohan [~geertjoha@s51478c91.adsl.wanadoo.nl] has joined #go-nuts
08:23 -!- fvbommel [~fvbommel_@131.155.71.85] has quit [Ping timeout: 276 seconds]
08:33 -!- Project-2501 [~Marvin@82.84.78.8] has joined #go-nuts
08:34 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined
#go-nuts
08:37 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Quit: |Craig|]
08:37 -!- fvbommel [~fvbommel_@131.155.245.204] has joined #go-nuts
08:39 -!- bobody [~alexc@ppp121-45-218-72.lns20.cbr1.internode.on.net] has joined
#go-nuts
08:39 -!- bobody [~alexc@ppp121-45-218-72.lns20.cbr1.internode.on.net] has quit
[Changing host]
08:39 -!- bobody [~alexc@unaffiliated/alexc] has joined #go-nuts
08:52 -!- crashR [~crasher@codextreme.pck.nerim.net] has quit [Read error:
Operation timed out]
08:58 -!- bobody [~alexc@unaffiliated/alexc] has quit [Quit: WeeChat 0.3.4]
09:08 -!- marko_ [~marko@2a00:1620:c0:50:66b9:e8ff:feca:1812] has joined #go-nuts
09:15 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Quit:
skelterjohn]
09:20 -!- virtualsue [~chatzilla@nat/cisco/x-fpwhxouuexajgxjl] has joined #go-nuts
09:25 -!- PortatoreSanoDiI [~Marvin@82.84.89.46] has joined #go-nuts
09:28 -!- Project-2501 [~Marvin@82.84.78.8] has quit [Ping timeout: 260 seconds]
09:36 -!- wrtp [~rog@92.23.127.186] has joined #go-nuts
09:38 < mpl> I don't understand those ppl repeating the same questions on
the ML until someone just gives them all the code on a platter.  where's the fun
in that?  :(
09:39 -!- bobody [~alexc@unaffiliated/alexc] has joined #go-nuts
09:42 -!- hallas [~hallas@x1-6-30-46-9a-b2-c5-1f.k891.webspeed.dk] has joined
#go-nuts
09:43 -!- rputikar [~240182H@203-206-21-179.dyn.iinet.net.au] has quit [Quit:
rputikar]
09:51 -!- fvbommel [~fvbommel_@131.155.245.204] has quit [Ping timeout: 276
seconds]
09:53 -!- richard_iii [~richard_i@76.5.150.78] has quit [Ping timeout: 276
seconds]
09:54 -!- shvntr [~shvntr@119.121.26.150] has joined #go-nuts
10:03 -!- marko_ [~marko@2a00:1620:c0:50:66b9:e8ff:feca:1812] has quit [Ping
timeout: 255 seconds]
10:05 -!- fvbommel [~fvbommel_@131.155.71.82] has joined #go-nuts
10:06 -!- marko_ [~marko@2a00:1620:c0:50:66b9:e8ff:feca:1812] has joined #go-nuts
10:24 -!- jrabbit [~babyseal@unaffiliated/jrabbit] has quit [Ping timeout: 240
seconds]
10:28 < xyproto> mpl: dunno, maybe this?  ;)
http://ubuntuforums.org/archive/index.php/t-1018506.html
10:47 < jessta_> starting arguments is often a good way to obtain
information
10:48 -!- jstemmer [~cheetah@mrpwn.stemmertech.com] has joined #go-nuts
10:48 < mpl> xyproto: it's not the same.  I'd understand an end user just
wants the answer because he wants things to just work.  but when it comes to
coding, the guy will have to eventually learn to do things by himself, he can't
expect ppl to do his homework/job for him all the time...
10:48 -!- jrabbit [~babyseal@unaffiliated/jrabbit] has joined #go-nuts
10:55 -!- alehorst [~alehorst@187.58.246.160] has joined #go-nuts
11:02 -!- zozoR [~Morten@2906ds2-arno.0.fullrate.dk] has joined #go-nuts
11:10 -!- shvntr [~shvntr@119.121.26.150] has quit [Ping timeout: 276 seconds]
11:12 -!- shvntr [~shvntr@119.121.31.56] has joined #go-nuts
11:15 -!- dfc [~dfc@124-149-49-45.dyn.iinet.net.au] has joined #go-nuts
11:20 -!- shvntr [~shvntr@119.121.31.56] has quit [Quit: leaving]
11:30 -!- Cobi [~Cobi@2002:1828:88fb:0:aede:48ff:febe:ef03] has quit [Read error:
Operation timed out]
11:32 -!- virtualsue [~chatzilla@nat/cisco/x-fpwhxouuexajgxjl] has quit [Ping
timeout: 260 seconds]
11:33 -!- tncardoso [~thiago@189.115.131.114] has joined #go-nuts
11:35 -!- virtualsue [~chatzilla@nat/cisco/x-dotzlgppvkuolspz] has joined #go-nuts
11:36 < xyproto> mpl: perhaps it's the lack of code samples on the web that
leads people to wanting to see more code on the ML? Perhaps they are afraid to
display their ignorance.
11:36 -!- Cobi [~Cobi@2002:1828:88fb:0:aede:48ff:febe:ef03] has joined #go-nuts
11:37 -!- tncardoso [~thiago@189.115.131.114] has quit [Ping timeout: 255 seconds]
11:38 -!- angasule_ [~angasule@190.2.33.49] has joined #go-nuts
11:43 -!- ronnyy [~quassel@p4FF1C592.dip0.t-ipconnect.de] has joined #go-nuts
11:44 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts
11:46 -!- tvw [~tv@212.79.9.150] has joined #go-nuts
11:49 -!- tncardoso [~thiago@189.115.131.71] has joined #go-nuts
11:49 -!- bobody [~alexc@unaffiliated/alexc] has quit [Quit: WeeChat 0.3.4]
11:51 < xyproto> What's a nice crossplatform GUI lib for Go? Does GTK work
on Windows?
11:51 < xyproto> wx?
11:51 < Tonnerre> There is GTK for Windows
11:52 -!- rputikar [~240182H@203-206-21-179.dyn.iinet.net.au] has joined #go-nuts
11:57 < xyproto> Tonnerre: I cloned go-gtk from github and installed Go from
http://code.google.com/p/gomingw/downloads/list (which is the only Go-compiler for
Windows I've seen working properly).  However, I see that go-gtk requires both
make and gomake and neither comes with the go compiler installation.  What's
standard routine for this situation?  Install make from gnuwin32?
11:57 < xyproto> (For the record, I run Windows in VirtualBox) ;)
11:59 -!- dfr|mac [~dfr|work@ool-182e3fca.dyn.optonline.net] has quit [Remote host
closed the connection]
12:00 -!- sungji [~unknown@drz-cadpig.inf.ethz.ch] has joined #go-nuts
12:02 -!- nannto__ [~nanto@pee5b70.tokyff01.ap.so-net.ne.jp] has joined #go-nuts
12:03 -!- nannto [~nanto@pee5b70.tokyff01.ap.so-net.ne.jp] has quit [Ping timeout:
240 seconds]
12:03 -!- flaguy48 [~gmallard@user-0c6s350.cable.mindspring.com] has left #go-nuts
[]
12:04 < vegai> 10:58 <jessta_> it would have to be different to a
non-const function otherwise it could be modified to not be const and the callers
wouldn't know
12:04 < vegai> when would this be a problem?
12:08 < jessta_> if it's not a problem than what is the point of const
functions?
12:10 < vegai> I mean, why wouldn't the caller know?
12:12 < vegai> ah, because of the compile model that doesn't have any
dependency analysis etc
12:13 < vegai> or that it?
12:14 < jessta_> func sum(a, b int) const int {}
12:14 < jessta_> a := sum(2,5)
12:15 < jessta_> ah, I see what you mean
12:16 < jessta_> you mean const at compile time, not const as in immutable?
12:16 < vegai> and I think the compile model won't harm either
12:16 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.5]
12:17 -!- TheCritic [~TheCritic@c-24-30-34-40.hsd1.ga.comcast.net] has joined
#go-nuts
12:17 -!- tobym [~tobym@cpe-72-229-2-6.nyc.res.rr.com] has joined #go-nuts
12:18 < jessta_> vegai: I don't like the idea that my code may never compile
12:19 < TheCritic> http://pastebin.com/SF6cwTcn I expected this code to
persist my filerecords to a file called filedir ...  it compiles and runs fine,
but no file filedir is ever created...  any ideas?
12:20 < jessta_> TheCritic: perhaps the error you're ignoring might hold the
key
12:20 < xyproto> TheCritic: does the errors returned from the functions
reveal anything?
12:21 -!- sebastianskejoe [~sebastian@188.114.142.217] has joined #go-nuts
12:21 < TheCritic> ha, look at the errors :) who would have thought...
12:22 < TheCritic> thanks guy, will do
12:22 -!- LambdaSundae [5ab817bb@gateway/web/freenode/ip.90.184.23.187] has joined
#go-nuts
12:23 -!- cinch [~cinch@78.46.138.149] has joined #go-nuts
12:23 < TheCritic> So what is your feeling?  will go fully support windows
in the near future?  I am asking because I am interested in my code running on
windows :) and I am wondering if in learning go I am just waisting time :)
12:24 < vegai> jessta_: may never?
12:24 < jessta_> vegai: recursive calls, endless loops
12:24 < xyproto> TheCritic: I tried this compiler, an hour ago, and it
worked very well: http://code.google.com/p/gomingw/downloads/list
12:25 < TheCritic> xyproto: Nice, thanks!
12:25 < jessta_> TheCritic: Go even has some support for windows GUI
12:25 < vegai> sadly, I'm not familiar with the compiler's inner workings
12:25 < vegai> but it would seem to me that the only thing the compiler has
to check at compile time is the calling function's signature
12:26 < vegai> if it has const in the return type, it's ok to call it
12:27 < TheCritic> ah, another question for the experts :) so each lang has
a way of setting a callback to get triggered when a file is modified...  does go
have some kind of functionality as this?  Otherwise I am stuck with polling for
file changes :(
12:27 < exch> http://www.syntax-k.de/projekte/go-review
12:28 < jessta_> vegai: func sum(a,b int) const int {return sum(a,b)}
12:28 < jessta_> vegai: that would never compile
12:28 < vegai> huh, why?
12:29 -!- nekoh [~nekoh@dslb-178-004-066-171.pools.arcor-ip.net] has joined
#go-nuts
12:29 < vegai> I would think that it does compile
12:30 < vegai> ah, you thought that all const functions would be computed at
compile-time.  Now I get it
12:30 < vegai> no, that wasn't my idea.
12:30 < vegai> 15:21 <jessta_> you mean const at compile time, not
const as in immutable?
12:30 < vegai> so yes, "const as immutable" is the idea
12:32 < jessta_> vegai: ok, so if a function that was previously const and
changed to be no const anyone calling that function would want to know that it
changed
12:32 -!- tobym [~tobym@cpe-72-229-2-6.nyc.res.rr.com] has quit [Ping timeout: 252
seconds]
12:34 < vegai> I suppose they would the next time a compile was issued?
12:35 < jessta_> TheCritic: os/inotify
12:35 -!- foocraft [~ewanas@89.211.225.198] has joined #go-nuts
12:35 < jessta_> vegai: that's my question, how would they know?
12:37 < vegai> so function f is a const and it calls function g that is
const
12:37 < vegai> function g is changed to non-const, so its signature changes
12:37 -!- Sisten [~Sisten@s213-103-208-147.cust.tele2.se] has joined #go-nuts
12:38 < vegai> the next time function f is compiled, it sees that the
signature is non-const
12:38 < vegai> granted, I don't know the insides of go compiler.  Perhaps
this is not reasonable to do in it
12:38 < TheCritic> jessta_: nice.  Ill read that next!
12:38 < vegai> but I would imagine it's roughly the same problem when the
signature would change in any other way
12:38 < vegai> say, the number of parameters changes
12:38 < vegai> or the return value
12:39 < jessta_> so, function f is not-const and it calls function g that is
const
12:39 < jessta_> function g is changed to non-const, how does function f
know this?
12:39 < vegai> from inspecting the signature of g at compile time
12:40 < vegai> it's the same thing if g's parameter list changed, isn't it?
12:40 < vegai> func f() { g(1) }
12:40 < jessta_> how does the compiler know that function f expects function
g to be const?
12:40 < vegai> func g(x int) {...} => func g(x, y int) {...}
12:40 < vegai> because function f is const itself
12:41 < jessta_> what if function f isn't const
12:41 < vegai> then g doesn't have to be either
12:41 < jessta_> vegai: what makes const functions useful?
12:44 < vegai> that's a fine question.  I suppose I take them for granted
from my long stay in Haskell land
12:44 < vegai> referential transparency (if they're defined strongly enough)
12:44 < vegai> that would mean that I'm guaranteed the same response every
time I call the function with the same parameters
12:45 < vegai> makes the function a bit more safe to use especially in a
concurrent environment
12:45 < elimisteve> vegai: you mean safe in a non-technical sense, yes?
12:46 < vegai> as opposed to?
12:46 < elimisteve> As opposed to "safe" in the technical sense used
frequently when talking about Go
12:47 < vegai> thread safety?
12:47 < wrtp> vegai: so could a const function have a loop in it?
12:47 < jessta_> vegai: so, if I was calling a const function then I would
expect that it had referential transparency?
12:47 < vegai> wrtp: yes
12:47 < elimisteve> or type safety
12:47 < vegai> elimisteve: well, it would be "effects safety"
12:47 -!- jsj [~johan@78-70-255-20-no149.tbcn.telia.com] has quit [Read error:
Connection reset by peer]
12:48 -!- LambdaSundae [5ab817bb@gateway/web/freenode/ip.90.184.23.187] has quit
[Quit: Page closed]
12:48 < wrtp> vegai: what about references to global variables?
12:48 < elimisteve> I think people often mean you can't get a pointer to
just any old memory location
12:48 < vegai> wrtp: no, those would be prohibited
12:48 < wrtp> vegai: goroutines?
12:48 -!- jsj [~johan@78-70-255-20-no149.tbcn.telia.com] has joined #go-nuts
12:48 < vegai> wrtp: I've been thinking about those
12:48 < jessta_> vegai: if a function I expected to have referential
transparency didn't, do you think this would be a problem?
12:48 < vegai> perhaps channels would be ok, but not launching goroutines
from inside const functions
12:49 < wrtp> vegai: i don't think you could allow channels
12:49 < vegai> jessta_: yes, I suppose it would
12:49 < wrtp> vegai: what about pointers?
12:49 < vegai> pointers are right out too :)
12:50 < wrtp> so in fact you can't do much...
12:50 < wrtp> i'm not sure i see the point
12:50 < wrtp> convention should be ok here
12:50 < wrtp> and the compiler can figure out genuine const functions and
inline them or whatever
12:51 < vegai> is there a convention?
12:51 < jessta_> vegai: so how do I know when a const function changes to
being a not const function?
12:51 < wrtp> by "convention" i mean for example the convention that, say,
strings.Fields will always return the same result given the same input
12:52 < wrtp> i don't think there's a need for a compiler annotation there.
12:52 < wrtp> if you have a compiler annotation, you'll get "const
poisoning"
12:53 -!- robteix [~robteix@nat/intel/x-dsjudjagvojypfqa] has joined #go-nuts
12:53 < wrtp> i.e.  anything that might be const must be marked as const
12:53 < wrtp> jessta_: presumably because the compiler refuses to compile it
12:53 < wrtp> because it breaks the const rules
12:55 < vegai> jessta_: by the compile error
12:56 < vegai> wait, no, sorry.
12:56 < vegai> you mean if where you're calling it from is also in a
non-const context
12:56 < vegai> indeed, you wouldn't know this
12:57 < vegai> and indeed, that does seem to make most of the benefits
disappear
13:00 -!- replore_ [~replore@ntkngw256114.kngw.nt.ftth.ppp.infoweb.ne.jp] has
joined #go-nuts
13:05 -!- dj2 [~dj2@CPE001f5b35feb4-CM0014048e0344.cpe.net.cable.rogers.com] has
quit [Remote host closed the connection]
13:05 < jessta_> vegai: indeed
13:14 -!- chressie [~chressie@dreggn.in-ulm.de] has quit [Quit: WeeChat 0.3.5]
13:17 -!- niemeyer [~niemeyer@201-40-174-53.pltce701.dsl.brasiltelecom.net.br] has
joined #go-nuts
13:25 -!- iant [~iant@adsl-71-133-8-30.dsl.pltn13.pacbell.net] has quit [Quit:
Leaving.]
13:29 -!- robteix [~robteix@nat/intel/x-dsjudjagvojypfqa] has quit [Ping timeout:
255 seconds]
13:30 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts
13:31 -!- virtualsue [~chatzilla@nat/cisco/x-dotzlgppvkuolspz] has quit [Read
error: Operation timed out]
13:31 -!- jsj [~johan@78-70-255-20-no149.tbcn.telia.com] has quit [Read error:
Connection reset by peer]
13:31 -!- jsj_ [~johan@78-70-255-20-no149.tbcn.telia.com] has joined #go-nuts
13:32 < skelterjohn|work> morning
13:34 -!- Project_2501 [~Marvin@82.84.85.17] has joined #go-nuts
13:35 -!- chressie [~chressie@217.10.9.24] has joined #go-nuts
13:36 -!- PortatoreSanoDiI [~Marvin@82.84.89.46] has quit [Read error: Operation
timed out]
13:37 -!- virtualsue [~chatzilla@nat/cisco/x-dteenhaehonlhywj] has joined #go-nuts
13:37 -!- dj2 [~dj2@216.16.242.254] has joined #go-nuts
13:39 -!- iant [~iant@67.218.103.62] has joined #go-nuts
13:39 -!- mode/#go-nuts [+v iant] by ChanServ
13:39 -!- awidegreen [~quassel@h-170-226.A212.priv.bahnhof.se] has joined #go-nuts
13:42 < xyproto> skelterjohn|work: good afternoon
13:43 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-163-187.clienti.tiscali.it] has
joined #go-nuts
13:47 -!- Project_2501 [~Marvin@82.84.85.17] has quit [Ping timeout: 276 seconds]
13:47 -!- iant [~iant@67.218.103.62] has quit [Ping timeout: 240 seconds]
13:48 -!- iant [~iant@216.239.45.130] has joined #go-nuts
13:48 -!- mode/#go-nuts [+v iant] by ChanServ
13:48 -!- PortatoreSanoDiI [~Marvin@82.84.82.53] has joined #go-nuts
13:52 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-163-187.clienti.tiscali.it] has
quit [Ping timeout: 240 seconds]
13:54 -!- angasule_ [~angasule@190.2.33.49] has quit [Remote host closed the
connection]
13:55 -!- Project_2501 [~Marvin@82.84.91.43] has joined #go-nuts
13:56 -!- napsy [~luka@193.2.66.6] has quit [Ping timeout: 260 seconds]
13:56 -!- pharris [~Adium@rhgw.opentext.com] has joined #go-nuts
13:57 -!- PortatoreSanoDiI [~Marvin@82.84.82.53] has quit [Ping timeout: 244
seconds]
13:59 -!- tncardoso [~thiago@189.115.131.71] has quit [Read error: Connection
reset by peer]
14:01 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-179-17.clienti.tiscali.it] has
joined #go-nuts
14:04 -!- Project_2501 [~Marvin@82.84.91.43] has quit [Ping timeout: 276 seconds]
14:07 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-163-55.clienti.tiscali.it] has
joined #go-nuts
14:07 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has quit [Ping
timeout: 240 seconds]
14:09 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-179-17.clienti.tiscali.it] has
quit [Read error: Operation timed out]
14:11 -!- napsy [~luka@88.200.96.18] has joined #go-nuts
14:12 -!- Project-2501 [~Marvin@82.84.97.86] has joined #go-nuts
14:13 -!- sebastianskejoe [~sebastian@188.114.142.217] has quit [Quit: leaving]
14:13 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has joined #go-nuts
14:14 -!- sebastianskejoe [~sebastian@188.114.142.217] has joined #go-nuts
14:15 -!- gtaylor [~gtaylor@97-89-184-26.static.gnvl.sc.charter.com] has joined
#go-nuts
14:16 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-163-55.clienti.tiscali.it] has
quit [Ping timeout: 255 seconds]
14:19 -!- Project_2501 [~Marvin@82.84.80.238] has joined #go-nuts
14:22 -!- Project-2501 [~Marvin@82.84.97.86] has quit [Ping timeout: 260 seconds]
14:30 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-176-173.clienti.tiscali.it] has
joined #go-nuts
14:30 < skelterjohn|work> anyone use the new exec stuff lately?
14:30 < skelterjohn|work> i'm having trouble with Cmd.StderrPipe()
14:31 < skelterjohn|work> i can use the stdout pipe fine - when i copy from
it to another writer there is no problem
14:31 < skelterjohn|work> but when i try to do the same with stderr it borks
"read |0: bad file descriptor"
14:31 < skelterjohn|work> but i get no error when calling
theCmd.StderrPipe()
14:32 < skelterjohn|work> (i'm just trying to pass the cmd's stdout and
stderr through to the host's stdout and stderr)
14:32 -!- fvbommel [~fvbommel_@131.155.71.82] has quit [Ping timeout: 276 seconds]
14:33 < skelterjohn|work> guess i could try theCmd.Stderr = os.Stderr...
14:33 -!- Project_2501 [~Marvin@82.84.80.238] has quit [Ping timeout: 252 seconds]
14:33 < skelterjohn|work> that worked
14:34 < skelterjohn|work> i must be abusing the pipe stuff, since there was
a much easier way to do what i wanted
14:34 -!- gtaylor [~gtaylor@97-89-184-26.static.gnvl.sc.charter.com] has quit
[Read error: Connection reset by peer]
14:34 -!- gtaylor [~gtaylor@97-89-184-26.static.gnvl.sc.charter.com] has joined
#go-nuts
14:35 -!- aat [~aat@rrcs-184-75-54-130.nyc.biz.rr.com] has joined #go-nuts
14:37 -!- GeertJohan [~geertjoha@s51478c91.adsl.wanadoo.nl] has quit [Quit:
Leaving.]
14:39 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-176-173.clienti.tiscali.it] has
quit [Ping timeout: 255 seconds]
14:41 -!- Venom_X [~pjacobs@75-27-133-72.lightspeed.austtx.sbcglobal.net] has
joined #go-nuts
14:41 -!- rlab [~Miranda@91.200.158.34] has quit [Ping timeout: 246 seconds]
14:42 -!- dfr|mac [~dfr|work@ool-182e3fca.dyn.optonline.net] has joined #go-nuts
14:45 -!- foocraft [~ewanas@89.211.225.198] has quit [Quit: Leaving]
14:56 < wrtp> skelterjohn|work: StderrPipe works fine for me
14:57 < skelterjohn|work> well, i don't know what the issue was
14:57 < wrtp> skelterjohn|work: e.g.  http://pastebin.com/N2H8e2kg
14:57 < wrtp> maybe you were getting the args to io.Copy the wrong way
around?
14:58 < skelterjohn|work> that seems functionally equivalent to what i was
doing
14:58 < skelterjohn|work> no - same way
14:58 < skelterjohn|work> i had io.Copy(os.Stderr, theErrPipe)
14:58 -!- iant [~iant@216.239.45.130] has quit [Ping timeout: 252 seconds]
14:58 < wrtp> that's the wrong way around
14:58 < wrtp> oh no
14:58 < skelterjohn|work> then your code doesn't work =p
14:58 < wrtp> it isn't :-)(
14:58 < skelterjohn|work> :)
14:59 < wrtp> does my code work on your system?
15:00 < skelterjohn|work> yes
15:01 < wrtp> ah, so i guess you were doing something wrong...  did you call
StderrPipe *before* starting the command?
15:01 < skelterjohn|work> when i called it after, the error message was
descriptive :)
15:01 < wrtp> ah
15:01 < wrtp> if you wanna paste some code that fails, i could have a look
15:01 < skelterjohn|work> i'd have to rewrite it :)
15:02 < skelterjohn|work> and then there is the danger that it would work
15:03 -!- noam [noam@87.69.42.61.cable.012.net.il] has quit [Ping timeout: 260
seconds]
15:03 < skelterjohn|work> hmm - does goinstall keep a list of packages it
has downloaded somewhere?
15:04 < skelterjohn|work> goinstall -a is downloading something i'm
specifically deleting in order to keep it from trying to compile it
15:04 < xyproto> I wrote this go-related question on stackoverflow:
http://stackoverflow.com/questions/6130621/algorithm-for-finding-the-color-between-two-others-in-the-colorspace-of-painted
After finding a working answer, I was happy, but there's a strange thing in the
code I ended up with that I don't have an explanation for.  Here is the code:
http://go.pastie.org/1976031 The question is why using math.Pi changes the
15:04 < xyproto> result so much, compared to using 3.1415.  Why is that?
15:05 < skelterjohn|work> math.Pi != 3.1415?
15:05 < wrtp> not by some way
15:05 < skelterjohn|work> (looking at the code)
15:05 < xyproto> skelterjohn|work: no, math.Pi has better accuracy
15:05 < skelterjohn|work> sorry, i meant that as a rhetorical question
15:05 < skelterjohn|work> i was suggesting that the difference in numbers
caused the difference in output
15:06 -!- iant [~iant@nat/google/x-npccmahlpjfebygo] has joined #go-nuts
15:06 -!- mode/#go-nuts [+v iant] by ChanServ
15:06 < wrtp> xyproto: are you saying that using Pi gives a worse answer?
15:06 < xyproto> skelterjohn|work: yes, but the output is completely
different, when the formulas are supposed to follow the same principle.  Using
math.Pi gives a worse answer.
15:06 < xyproto> wrtp: yes
15:06 < skelterjohn|work> that code is too long/dense to grok what's going
on quickly
15:07 < xyproto> skelterjohn|work: yeah, sorry if't overwhelming, but it's
been bothering me in the back of my mind for weeks now ;)
15:07 -!- iant [~iant@nat/google/x-npccmahlpjfebygo] has quit [Client Quit]
15:07 -!- iant [~iant@nat/google/x-gssusafkllooluen] has joined #go-nuts
15:07 -!- mode/#go-nuts [+v iant] by ChanServ
15:07 -!- franciscosouza [~francisco@187.105.21.125] has quit [Quit:
franciscosouza]
15:07 < xyproto> oh well, no big deal, I guess I was hoping for something
like "oh, but don't you see, it's obvious, it's because of blahblah" ;)
15:07 < skelterjohn|work> is paintmix the only function i'd need to look at?
15:07 -!- mehalelal [~mehalelal@76.103.175.11] has joined #go-nuts
15:08 < xyproto> skelterjohn|work: yes, I think so.  Not 100% certain,
though
15:08 < xyproto> skelterjohn|work: and you don't have to :D
15:08 < wrtp> xyproto: how do you judge "better" or "worse"?
15:08 < xyproto> wrtp: the color mix between yellow and blue becomes less
green and more black
15:08 < xyproto> wrtp: the higher the accuracy of pi
15:08 -!- gtaylor [~gtaylor@97-89-184-26.static.gnvl.sc.charter.com] has quit
[Quit: gtaylor]
15:09 < wrtp> xyproto: so if it's exactly pi, the colour is fully black?
15:09 < xyproto> skelterjohn|work: even though it's appreciated :)
15:09 -!- noam [noam@87.69.42.61.cable.012.net.il] has joined #go-nuts
15:09 < xyproto> wrtp: yes, as I understand
15:10 < skelterjohn|work> what is hls?
15:10 < wrtp> doesn't look black to me - there's no red component
15:10 < wrtp> the colour #00FEFF
15:11 -!- franciscosouza [~francisco@187.105.21.125] has joined #go-nuts
15:11 < xyproto> skelterjohn|work: hue lightness saturation
15:14 < xyproto> wrtp: hm, you're right, it does not approach black.  But,
it moves away from green.
15:14 -!- purplegrape [~baalsoffi@cm133.gamma204.maxonline.com.sg] has joined
#go-nuts
15:14 < xyproto> Oh well.  Thanks for looking at it guys.  :)
15:15 < skelterjohn|work> i don't know enough about color to begin to answer
15:16 < aiju> are you relating pie to colours?
15:16 < skelterjohn|work> cherry pie is red, etc
15:16 -!- franciscosouza [~francisco@187.105.21.125] has quit [Quit:
franciscosouza]
15:17 < xyproto> aiju: yes, somehow
15:18 < skelterjohn|work> as best i can tell, pi is used in the form of
cos(2*pi*x)
15:18 < skelterjohn|work> and x ranges from 0 to 1
15:18 < skelterjohn|work> so the cos will range from -1 to 1
15:18 < skelterjohn|work> why this is being done, i cannot tell you
15:19 < skelterjohn|work> though now that i think of it, the HLS figures I
see usually involve a point on a circle
15:19 < skelterjohn|work> so maybe that point is described in radial
coordinates
15:19 < skelterjohn|work> and the angle has real meaning *shrug*
15:20 < xyproto> skelterjohn|work: I think that's a pretty good analysis.
It just beats me why more pi makes the color more red.
15:20 < skelterjohn|work> like i said - cherries
15:20 < xyproto> skelterjohn|work: yeah...  ;)
15:21 -!- rcrowley [~rcrowley@c-71-202-44-233.hsd1.ca.comcast.net] has quit [Quit:
Computer has gone to sleep.]
15:22 < xyproto> next topic, the color of e ?
15:22 < aiju> octarin
15:22 < xyproto> of course
15:23 -!- chomp [~chomp@dap-209-166-184-50.pri.tnt-3.pgh.pa.stargate.net] has
joined #go-nuts
15:23 -!- unofficialmvp [~dev@94-62-164-227.b.ipv4ilink.net] has joined #go-nuts
15:23 -!- unofficialmvp [~dev@94-62-164-227.b.ipv4ilink.net] has left #go-nuts []
15:23 -!- user67643434 [~br@adsl-89-132-57-178.monradsl.monornet.hu] has joined
#go-nuts
15:24 < wrtp> making the value of pi inaccurate can not make the algorithm
better
15:24 < wrtp> i can only assume there's a bug in the algorithm
15:25 < xyproto> wrtp: I think you're right.
15:26 -!- virtualsue [~chatzilla@nat/cisco/x-dteenhaehonlhywj] has quit [Ping
timeout: 240 seconds]
15:26 < aiju> 17:27 < xyproto> of course
15:26 < aiju> thinking about it, octarin is the colour of i
15:29 < ww> could use taylor series to approximate cos(x) to arbitrary
accuracy but that might be a bit of an overkill, eh/
15:29 < ww> wouldn't need π then
15:29 < aiju> what are you talking about?
15:29 < aiju> you'd still need pi
15:30 < mpl> I know I need pie.  but pi...
15:30 < skelterjohn|work> i don't think you need pi to find a taylor series
approx to cosine
15:30 < aiju> but you need it for the argument
15:31 < skelterjohn|work> oh, yeah
15:32 -!- noodles775 [~michael@canonical/launchpad/noodles775] has quit [Quit:
leaving]
15:32 < mehalelal> How accurate do you need pi?  And for your problem is it
necessary to use a trig function to calculate it?
15:35 -!- jsj_ [~johan@78-70-255-20-no149.tbcn.telia.com] has quit [Read error:
Connection reset by peer]
15:35 -!- jsj [~johan@78-70-255-20-no149.tbcn.telia.com] has joined #go-nuts
15:35 -!- piranha [~piranha@D57D1AB3.static.ziggozakelijk.nl] has quit [Quit:
Computer has gone to sleep.]
15:35 -!- angasule_ [~angasule@190.2.33.49] has joined #go-nuts
15:38 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-169-99.clienti.tiscali.it] has
joined #go-nuts
15:40 < xyproto> ww: taylor series are tempting, if I need a lot of suits
http://instantrimshot.com/classic/?sound=rimshot
15:41 < xyproto> aiju: I agree, i is more suitable to octarin.
15:44 -!- gmilleramilar [~gmiller@pool-74-101-133-165.nycmny.fios.verizon.net] has
joined #go-nuts
15:47 < wrtp> xyproto: i haven't fixed your problem, but i've rearrange the
code to do the colour conversion in a more idiomatic way, using color models:
http://go.pastie.org/2038207
15:48 -!- fvbommel [~fvbommel_@86.86.15.250] has joined #go-nuts
15:48 < gmilleramilar> I may be misunderstanding bufio.Read (
http://golang.org/src/pkg/bufio/bufio.go?s=3281:3334#L124 ), but isn't it the case
that if the buffer is empty (b.w == b.r) and a previous read has resulted in an
error (b.err != nil) that it will never again issue a Read to the underlying
reader.
15:49 < wrtp> gmilleramilar: yes, that's right
15:49 < wrtp> errors are sticky
15:49 < gmilleramilar> isn't that a problem if the error is temporary, like
an EAGAIN from a socket?
15:50 < wrtp> gmilleramilar: yeah, it could be
15:51 < wrtp> i've suggested adding a ResetError (or something similar) in
the past
15:51 < gmilleramilar> what was the response?
15:52 < wrtp> not sure there was one
15:54 < gmilleramilar> i'm going to file a bug...
15:54 -!- iant [~iant@nat/google/x-gssusafkllooluen] has quit [Ping timeout: 240
seconds]
15:54 < aiju> 17:54 < gmilleramilar> isn't that a problem if the error
is temporary, like an EAGAIN from a socket?
15:55 < aiju> isn't EGAIN used only for non-blocking I/O?
15:56 < wrtp> xyproto: i'm not sure that HSV or HLS or whatever is the right
solution for you.
15:57 < gmilleramilar> isnt that what Read([]byte) does?
15:57 < wrtp> xyproto: i don't think there's any connection between the hue
parameter and colour mixing
15:57 < wrtp> you can get a temporary error if you're doing timeouts on
sockets
15:58 -!- dfr|mac [~dfr|work@ool-182e3fca.dyn.optonline.net] has quit [Remote host
closed the connection]
16:00 < wrtp> xyproto: looks like you might want to convert into CIE space,
but that's not easy
16:06 -!- sebastianskejoe [~sebastian@188.114.142.217] has quit [Quit: Lost
terminal]
16:07 -!- virtualsue [~chatzilla@nat/cisco/x-xitjgynunggfrork] has joined #go-nuts
16:13 -!- angasule_ [~angasule@190.2.33.49] has quit [Remote host closed the
connection]
16:16 -!- alehorst [~alehorst@187.58.246.160] has quit [Remote host closed the
connection]
16:16 -!- franciscosouza [~francisco@201.7.186.67] has joined #go-nuts
16:23 -!- piranha [~piranha@5ED43A0B.cm-7-5a.dynamic.ziggo.nl] has joined #go-nuts
16:24 -!- alehorst [~alehorst@187.58.246.160] has joined #go-nuts
16:25 -!- awidegreen [~quassel@h-170-226.A212.priv.bahnhof.se] has quit [Remote
host closed the connection]
16:26 -!- awidegreen [~quassel@h-170-226.A212.priv.bahnhof.se] has joined #go-nuts
16:32 -!- cenuij [~cenuij@base/student/cenuij] has quit [Remote host closed the
connection]
16:33 -!- tncardoso [~thiagon@150.164.2.20] has joined #go-nuts
16:37 -!- sungji [~unknown@drz-cadpig.inf.ethz.ch] has quit [Ping timeout: 260
seconds]
16:37 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts
16:45 < homa_rano> I can't get the fmt.*scan* functions to work
16:47 < homa_rano> specifically scanf borks on newlines
16:48 < hallas> Pastebin some code homa_rano :-)
16:49 < homa_rano> working on some short example
16:49 -!- Tv [~Tv@ip-66-33-206-8.dreamhost.com] has joined #go-nuts
16:51 < homa_rano> http://pastebin.com/PrcEUZXt
16:51 < homa_rano> it does different things with or without a \n in the
format string
16:51 < homa_rano> both are wrong
16:51 < homa_rano> you can shove that into the playground
16:53 < hallas> On my screen its prints the pairs and then lots of zero
pairs
16:53 < homa_rano> yeah I didn't bother to tell it to stop
16:53 < hallas> You dont want it to print the pairs?
16:53 < hallas> 1,2 3,4 5,6 ?
16:53 < homa_rano> without the format there are zero pairs between the real
pairs
16:53 < hallas> ah
16:54 < hallas> So you just need to matc the newline
16:54 < homa_rano> weirder things happen with the newline
16:55 < homa_rano> I can fake it, but I'm clearly using scan wrong
16:55 < hallas> well
16:55 < hallas> it prints the 5 pairs of 0,0 when trying to match newline,
because thats the amount of chars inbetween those two pairs
16:55 < hallas> on which matching failes
16:55 < homa_rano> ah
16:56 < homa_rano> so why does it fail the first time?
16:56 < jessta_> homa_rano: the returned err would tell you that
16:56 -!- kamaji [~kamaji@cpc2-aztw22-2-0-cust775.aztw.cable.virginmedia.com] has
quit [Quit: once more into the breach]
16:56 < homa_rano> I was looking at the err, but it says it doesn't match
16:56 < homa_rano> which is unhelpful
16:56 < hallas> homa_rano: use Fscanln perhaps?
16:57 < homa_rano> that doesnt let me get the parens
16:58 < hallas> Well, I think newlines are treated as spaces, I read that
somewhere, perhaps in the fmt documentation
16:59 -!- adu [~ajr@64.134.96.52] has joined #go-nuts
17:00 < wrtp> homa_rano: part of the problem is that you're using
strings.NewReader
17:00 -!- ronnyy [~quassel@p4FF1C592.dip0.t-ipconnect.de] has quit [Remote host
closed the connection]
17:00 < homa_rano> it would make sense if scanf could parse a printf of the
same format string
17:00 < skelterjohn|work> can't
17:00 < wrtp> homa_rano: it can
17:00 < skelterjohn|work> \n is an issue
17:00 < wrtp> ish
17:00 < skelterjohn|work> and strings can't have spaces
17:01 < hallas> homa_rano: try this format: (%d,%d)-
17:01 < skelterjohn|work> the format is ambiguous
17:01 < wrtp> from the documentation: Scanln, Fscanln and Sscanln stop
scanning at a newline and require that the items be followed by one; Sscanf,
Fscanf and Sscanf require newlines in the input to match newlines in the format;
the other routines treat newlines as spaces.
17:01 < skelterjohn|work> how does "%s %s" match "hi there you"?
17:01 < skelterjohn|work> two ways
17:01 < skelterjohn|work> it chooses one, certainly
17:01 < skelterjohn|work> but either could come out of a printf
17:02 < wrtp> homa_rano: use "(%d,%d)\n" for the format
17:02 < wrtp> homa_rano: and use bytes.NewBuffer(...) as the reader
17:02 < homa_rano> wrtp: doesnt work, try it
17:02 < wrtp> (or update to tip, which adds UnreadRune to strings.Reader
17:02 < wrtp> )
17:02 < wrtp> homa_rano: it does work if you're using bytes.Buffer
17:03 -!- chressie [~chressie@217.10.9.24] has quit [Quit: WeeChat 0.3.5]
17:03 < wrtp> (or at least, it did for me, but i've gone and erased my go
playground code)
17:03 < homa_rano> what's the difference?  just unreadrune?
17:04 < hallas> homa_rano: tried (%d,%d)- ?
17:04 < kevlar_work> or, you know, use io.ReadAll and regexp.MatchAllString
17:04 < homa_rano> my actual code was using bufio
17:04 -!- hpvincent [~zig@nap13-11-83-156-121-34.fbx.proxad.net] has quit [Ping
timeout: 240 seconds]
17:04 < wrtp> homa_rano: try this: http://bit.ly/lThcYp
17:05 < wrtp> hallas: why would that work?
17:05 < kevlar_work> the scan functions, even in C, are really, really NOT
meant for reading in formatted input
17:05 -!- chressie [~chressie@dreggn.in-ulm.de] has joined #go-nuts
17:05 < wrtp> kevlar_work: they work ok actually
17:05 < kevlar_work> wrtp, because people have added various features over
time, but they still are really not meant for it.
17:05 -!- tncardoso [~thiagon@150.164.2.20] has quit [Quit: Leaving]
17:06 < wrtp> kevlar_work: what are they meant for then?
17:06 < kevlar_work> They require extremely controlled input, and they do
not degrade or fail nicely
17:06 < kevlar_work> wrtp, reading in sequences of space delimited values
17:06 < kevlar_work> usually from the console or a pipe
17:06 < wrtp> simple formatted input can work ok too
17:06 < wrtp> obviously it's not a full parser
17:07 < wrtp> but fmt.Scan* is a lot nicer than C's scanf
17:07 < kevlar_work> wrtp, simple things like a + before a number or a \t
instead of a space can completely throw off your scanning
17:07 < wrtp> kevlar_work: not in Go's scan
17:07 < kevlar_work> wrtp, I said "things like"
17:08 < kevlar_work> sure those cases might've been addressed, but a lot
more hasn't.
17:08 < wrtp> for example?
17:08 < kevlar_work> another fun one is reading a %d when the input suddenly
has a decimal
17:08 < homa_rano> I'm using it to parse something I've printf'd, so
invertibility is all I want
17:08 < kevlar_work> homa_rano, why not printf it in a more friendly format?
lol
17:09 < kevlar_work> normally people printf and scanf when they want humans
involved
17:09 < kevlar_work> which is a recipe for disaster.
17:09 < wrtp> kevlar_work: an unexpected decimal is also a problem if you're
writing your own lexer
17:09 < wrtp> i think scan is just fine for simple input with a modicum of
flexibility
17:10 < homa_rano> I'd also like it to be human readable, which parens
accomplish nicely
17:10 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts
17:10 < kevlar_work> wrtp, but pretty much everything gives you better error
messages than scanf, which iirc always says "wanted int" or whatever
17:10 < wrtp> kevlar_work: that's all a lexer would print
17:11 < kevlar_work> I think they fixed this recently, but for a long time
the scan functions also didn't handle EOF nicely.
17:11 < wrtp> kevlar_work: a decent error message has to be generated at a
higher level
17:11 < wrtp> it's true that "input does not match format" isn't very
informative :-)
17:11 < kevlar_work> wrtp, most lexers I've used would allow you to say
something like "in rule DECIMAL got token DOT, wanted SPACE or EOL"
17:12 < kevlar_work> er, well, not the lexer I guess, but the lexer doesn't
care, it just outputs symbols; the parser says that.
17:13 < wrtp> actually, the scan functions could produce better error
messages
17:13 < kevlar_work> speaking of which, did ebnf finally get a parser?  or
is it still just a grammar expression
17:13 < kevlar_work> (the package)
17:14 < wrtp> it could say "expected digit, got '.'"
17:14 < skelterjohn|work> i used fmt.Scan to write a lexer last week
17:14 < skelterjohn|work> works fine
17:14 < skelterjohn|work> very simple and regular input though
17:14 < wrtp> skelterjohn|work: yeah, i've done the same
17:14 < skelterjohn|work> machine generated, in fact
17:14 < kevlar_work> skelterjohn|work, that's called a tokenizer, lol
17:14 < skelterjohn|work> tokenizer, sure
17:14 < wrtp> kevlar_work: same difference
17:14 < skelterjohn|work> what's a lexer then?
17:14 < wrtp> a tokeniser
17:14 < wrtp> :-)
17:14 < skelterjohn|work> i see, an s instead of a z
17:15 < wrtp> lol
17:15 < kevlar_work> no, it has to do with the delimiters
17:15 < wrtp> kevlar_work: do you mean something that turns the ebnf into an
actual parser?
17:15 < kevlar_work> a lexer can process arbitrarily undelimited input into
symbols, a tokenizer splits regular, delimited input into tokens
17:15 < kevlar_work> wrtp, yeah.
17:16 -!- iant [~iant@nat/google/x-ufstdfpwmtryqspf] has joined #go-nuts
17:16 -!- mode/#go-nuts [+v iant] by ChanServ
17:16 < wrtp> kevlar_work: we've got goyacc
17:16 < kevlar_work> wrtp, there's a built-in package called ebnf; I was
just curious if it got its parser yet.
17:16 < wrtp> kevlar_work: by that definition it sounds like
skelterjohn|work's thing is a lexer
17:17 < wrtp> kevlar_work: it's there just to check the go grammar for
consistency
17:17 < skelterjohn|work> my tokens were all delimited by some kind of white
space
17:17 < wrtp> that grammar is ambiguous as written
17:17 < skelterjohn|work> i just had repeated calls to fmt.Scanf(in, "%s",
&astring)
17:18 < wrtp> ok, well that's delimited.  but it doesn't need to be.
17:18 < skelterjohn|work> don't follow
17:18 < skelterjohn|work> but that's ok
17:19 -!- dfr|mac [~dfr|work@nat/google/x-fnnkgpfrszdgftrb] has joined #go-nuts
17:19 < skelterjohn|work> it's simple, it works
17:19 < skelterjohn|work> best kind of working, and the best kind of simple
17:19 < kevlar_work> wrtp, what if my input is 1.23341112.2155.121 and I
want to read three decimals out of there with three digits of precision each?
17:20 < skelterjohn|work> don't use scan?
17:20 < kevlar_work> skelterjohn|work, exactly.
17:20 < skelterjohn|work> he didn't say it was the end-all-be-all of lexers
17:20 -!- hpvincent [~zig@nap13-11-83-156-121-34.fbx.proxad.net] has joined
#go-nuts
17:20 < kevlar_work> skelterjohn|work, his argument was that it didn't need
to be delimited
17:21 -!- dfr|mac [~dfr|work@nat/google/x-fnnkgpfrszdgftrb] has quit [Remote host
closed the connection]
17:21 -!- kamaji [~kamaji@cpc2-aztw22-2-0-cust775.aztw.cable.virginmedia.com] has
joined #go-nuts
17:21 < skelterjohn|work> what "it" was he referring to?  that wasn't clear
ot me
17:21 < kevlar_work> I think scanf may actually be able to do that
particular case because I think our scanf uses format specifiers, though I'm not
sure.
17:21 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-169-99.clienti.tiscali.it] has
quit [Ping timeout: 252 seconds]
17:21 < kevlar_work> skelterjohn|work, "it" - the input
17:21 < skelterjohn|work> which input
17:21 < kevlar_work> to scanf.
17:22 < skelterjohn|work> not clear to me that that is what he meant
17:22 < skelterjohn|work> thought he might have been referring to my
specific input
17:22 -!- marko_ [~marko@2a00:1620:c0:50:66b9:e8ff:feca:1812] has quit [Ping
timeout: 255 seconds]
17:24 < kevlar_work> *shrug*.  "my tokens were all delimited." "okay...  but
it doesn't need to be." Perhaps I misinterpreted.
17:24 < wrtp> kevlar_work: if you wanted to do that, you could, but it's a
bit of a silly format
17:25 -!- gtaylor [~gtaylor@99-126-136-139.lightspeed.gnvlsc.sbcglobal.net] has
joined #go-nuts
17:25 < skelterjohn|work> saves some space while still being ascii
17:25 < kevlar_work> wrtp, only if you want humans to read it.  if you're a
scientific instrument using the keyboard usb driver, it works fine.
17:25 < wrtp> not really - it's highly error prone
17:26 -!- gtaylor [~gtaylor@99-126-136-139.lightspeed.gnvlsc.sbcglobal.net] has
quit [Client Quit]
17:26 < wrtp> if you're doing that, you may as well use binary
17:26 < kevlar_work> wrtp, with a keyboard driver, you're limited to the 104
standard keys on the keyboard.
17:26 < skelterjohn|work> "using the keyboard usb driver" means you can only
send stuff that could be typed, right?
17:26 < kevlar_work> yep.
17:27 < wrtp> yeah, well then you'd use \n or a space as a delimited
17:27 < wrtp> s/d/r
17:27 < kevlar_work> wrtp, you could, sure, but you don't need to.
17:27 < wrtp> i've done lots and lots of machine readable ascii in my time
and i would never make a format like that
17:27 < skelterjohn|work> probably if you need to use fmt.Scan to tokenize
you'd want to
17:27 < kevlar_work> if you're sending #.### most of the time, adding a \n
slows you down by 20%.
17:29 < kevlar_work> my point is, there are plenty of very simple formats
that scanf can't do, and there are plenty of times where input needn't be
delimited to be useful.  I'm clearly not going to convince you if I haven't
already, so let's not bore everyone else ;-).
17:30 < wrtp> you could do it with %d.%c%c%c
17:31 < wrtp> if you really wanted to
17:32 < wrtp> and a custom Scanner to make it reusable
17:33 < wrtp> fmt.Scan* is all about the easy "middle way", somewhere
between strings.Fields and a custom parser
17:33 < wrtp> it doesn't need to do everything, but that doesn't mean it's
not useful in its domain
17:34 < wrtp> and this statement is really not justified: "the scan
functions, even in C, are really, really NOT meant for reading in formatted
input"...
17:34 < wrtp> 'cos they really really are!
17:35 -!- tncardoso [~thiago@189.115.131.71] has joined #go-nuts
17:36 < skelterjohn|work> instead of that, you could just use a whitespace
delimiter, skip the decimal point, and pretend it's at the right place
17:37 -!- virtualsue [~chatzilla@nat/cisco/x-xitjgynunggfrork] has quit [Read
error: Connection reset by peer]
17:37 -!- nekoh [~nekoh@dslb-178-004-066-171.pools.arcor-ip.net] has quit [Ping
timeout: 276 seconds]
17:39 < wrtp> really?
17:40 < skelterjohn|work> for the pretend input spec we're talking about
17:40 < skelterjohn|work> if there are three numbers after the decimal every
time, then we don't need to see the decimal to know where it is
17:41 < wrtp> you do if there's a variable number of digits *before* the
decimal
17:43 -!- Venom_X [~pjacobs@75-27-133-72.lightspeed.austtx.sbcglobal.net] has quit
[Ping timeout: 240 seconds]
17:43 < kevlar_work> wrtp, nope, he's talking about fixed point, and that
would be a perfect solution.
17:43 -!- user67643434 [~br@adsl-89-132-57-178.monradsl.monornet.hu] has quit
[Quit: quiting]
17:43 -!- Venom_X [~pjacobs@66.54.185.130] has joined #go-nuts
17:44 -!- virtualsue [~chatzilla@nat/cisco/x-pjycjjfbzddsqfby] has joined #go-nuts
17:45 < skelterjohn|work> if the token i got is 12345, then i turn it into
12.345.  if it was 123456, i turn it into 123.456
17:46 < kevlar_work> it would be more efficient in the sub-1 case, as 45
would be .045 and wouldn't need the extra two characters.
17:46 < skelterjohn|work> what's a good code editor for linux?
17:46 < skelterjohn|work> what i want is something that is kind of like
eclipse, but without all the garbage
17:46 < kevlar_work> skelterjohn|work, don't ask me, I use screen + vim ^_^
17:47 < skelterjohn|work> that is, i want a part of the window to be
directory hierarchy
17:47 < kevlar_work> (note, vim has code completion and split screens)
17:47 < skelterjohn|work> and the rest to be whichever file i click on
17:47 < kevlar_work> vim can do that.
17:47 < skelterjohn|work> right now i'm using emacs
17:47 -!- Fish- [~Fish@9fans.fr] has joined #go-nuts
17:47 < kevlar_work> I figure emacs can doo.
17:47 < skelterjohn|work> i'm not going to use vim
17:47 < skelterjohn|work> i don't really like things that are entirely
terminal based
17:48 < kevlar_work> so, you use xemacs then
17:48 < skelterjohn|work> i'm considering using eclipse - this machine can
space the 1/2 gig of ram
17:48 < kevlar_work> you could try code::blocks
17:48 < skelterjohn|work> i am using xemacs, but if it displays directory
hierarchies it will be ugly
17:48 < kevlar_work> there is also liteide, which I think is written in Go.
17:48 < skelterjohn|work> it's mostly written in C++
17:49 < skelterjohn|work> and it enforces some sillyness
17:49 < kevlar_work> all editors enforce some sillyness, no?
17:49 < kevlar_work> especially IDEs.
17:49 < kevlar_work> this is why I like vim; minimal sillyness, and what is
silly is configurable.
17:49 < skelterjohn|work> yes, but some sillyness is sillier than others
17:50 < skelterjohn|work> i'll take a look at code::blocks
17:50 < skelterjohn|work> but the name makes me think of C++
17:50 < kevlar_work> yep.
17:50 < skelterjohn|work> i suppose that isn't a bad thing by itself
17:50 < kevlar_work> it's a lighter-weight editor than eclipse.
17:51 < kevlar_work> I don't know if it does Go, but I seem to recall it
being really easy to add your own syntax.
17:51 < skelterjohn|work> cool, i'll report back if anyone is interested
17:51 -!- jsj [~johan@78-70-255-20-no149.tbcn.telia.com] has quit [Read error:
Connection reset by peer]
17:51 < skelterjohn|work> ah, there is an apt-get package for it :)
17:51 < skelterjohn|work> ubuntu's eclipse apt-get package doesn't work
17:51 -!- jsj [~johan@78-70-255-20-no149.tbcn.telia.com] has joined #go-nuts
17:52 -!- mehalelal [~mehalelal@76.103.175.11] has quit [Quit: Leaving]
17:53 < wrtp> yeah, implying the decimal point would be easy, but that would
be delimited and avoid the point i guess
17:55 < skelterjohn|work> yes
17:55 < skelterjohn|work> there are things scan can't do...i doubt you could
use it to tokenize go code, for instance
17:55 < skelterjohn|work> but there are things it can do, like parse gdsii
files (what i use it for)
17:56 < skelterjohn|work> code::blocks seems poorly suited for non-C++
17:57 < aiju> ed is the standard text editor
17:57 -!- justinlilly [justinlill@70.32.34.100] has quit [Remote host closed the
connection]
17:59 < skelterjohn|work> not the most user friendly thing i've ever
interacted with
18:00 -!- justinlilly [justinlill@70.32.34.100] has joined #go-nuts
18:02 -!- virtualsue [~chatzilla@nat/cisco/x-pjycjjfbzddsqfby] has quit [Quit:
ChatZilla 0.9.87 [Firefox 4.0.1/20110413222027]]
18:03 -!- gtaylor [~gtaylor@99-126-136-139.lightspeed.gnvlsc.sbcglobal.net] has
joined #go-nuts
18:03 < skelterjohn|work> kate seems pretty nice
18:06 -!- piranha [~piranha@5ED43A0B.cm-7-5a.dynamic.ziggo.nl] has quit [Remote
host closed the connection]
18:07 < TheCritic> is there a go version of Data::Dumper ?
18:07 < skelterjohn|work> what does Data::Dumper do?
18:08 < mdxi> it pretty-prints datastructures, and is largely unneccessary
with Go
18:08 < TheCritic> it exposes a function Dump....  print Dump($MyVariable)
will give you a readable version of the data
18:08 < mdxi> TheCritic: just print whatever you want to see.  it should be
handled fairly well by default.
18:08 < TheCritic> cool
18:08 < TheCritic> I will try that
18:09 < skelterjohn|work> use fmt.Print
18:09 < skelterjohn|work> rather than println
18:09 < TheCritic> so far, the vast majority of my problems are because I
expect go to be harder than it is....
18:09 < skelterjohn|work> fmt.Print* functions will (in many cases) look for
.String() methods
18:09 < TheCritic> I am trying to print a map
18:09 -!- delinka [~delinka@pidsley.praxxium.com] has left #go-nuts []
18:09 < skelterjohn|work> fmt.Printf("%v", theMap)
18:09 < TheCritic> I used gob decode, but I suspect I am doing it wrong
18:10 < TheCritic> :) thanks
18:10 < skelterjohn|work> gob is for making packed binary representations of
data, not for printing it
18:10 < TheCritic> yeah, I used gob to persist my map
18:10 < TheCritic> and now when I "thaw" it, I am not getting what I
expect....  probably my fault
18:11 -!- MaL0 [~ircd@unaffiliated/mal0] has joined #go-nuts
18:11 < MaL0> hi
18:11 < skelterjohn|work> hi
18:12 -!- flaguy48 [~gmallard@user-0c6s350.cable.mindspring.com] has joined
#go-nuts
18:12 < skelterjohn|work> looks like kate is exactly what i want
18:12 < TheCritic> ha!  looks like I need to decode until EOF or something
:) I just got one value :)
18:12 < skelterjohn|work> once i figure out how to make it load the pattern
file included with go
18:12 < skelterjohn|work> TheCritic: you should need to decode as many
values as you encoded
18:13 < TheCritic> hrmm, then this is odd
18:13 < skelterjohn|work> maybe you are appending to a file?
18:13 < skelterjohn|work> without first truncating it
18:14 < TheCritic> this is my snippit...  anything jump out at you?
http://pastebin.com/hBXDK3Y4
18:15 -!- mgray [~mgray@li226-224.members.linode.com] has joined #go-nuts
18:16 < chomp> you're only decoding one value
18:16 -!- wrtp [~rog@92.23.127.186] has quit [Quit: wrtp]
18:16 < chomp> one call to Decode = one value decoded
18:16 < TheCritic> yeah, that one value I expect to be the fully loaded map
I encoded....
18:16 < skelterjohn|work> he is also encoding one value, it looks like
18:17 < chomp> oh, sorry.  i missed the part where the map is not complete
18:17 < skelterjohn|work> i haven't used gob, but that looks like how i'd
expect it to be used
18:20 < TheCritic> map is not complete?
18:20 < TheCritic> What does that mean?
18:20 < TheCritic> Sorry for the simple questions...  I am very new.
18:21 < chomp> oh hey i got it
18:21 < chomp> Decode wants the address of filerecords
18:22 < jessta_> TheCritic: you really should check error
18:22 < chomp> correct usage: http://pastie.org/2038908
18:22 < chomp> minus the part where i also ignore errors, which yes is bad
18:23 < TheCritic> reading
18:23 < TheCritic> ...
18:24 < TheCritic> wow
18:24 < chomp> the only difference is that i give Decode the address of its
destination
18:24 < TheCritic> just needed a &
18:24 < jessta_> TheCritic: Decode() needs to take a pointer, the error
would have told you that
18:25 < TheCritic> really
18:25 < TheCritic> cool, Ill write a quick check
18:25 < TheCritic> thanks jessta_
18:25 -!- TheMue [~TheMue@p5DDF4B91.dip.t-dialin.net] has joined #go-nuts
18:25 < jessta_> TheCritic: always check for error returns, it will save you
a lot of time
18:26 < chomp> pfft just write perfect code instead!
18:26 -!- foocraft [~ewanas@89.211.225.198] has joined #go-nuts
18:26 < TheCritic> the error object looks like if e != nil
{fmt.Print(e.String()) ; exit}
18:26 < TheCritic> or something like that
18:27 -!- rputikar [~240182H@203-206-21-179.dyn.iinet.net.au] has quit [Quit:
rputikar]
18:27 -!- flaguy48 [~gmallard@user-0c6s350.cable.mindspring.com] has quit [Quit:
Leaving.]
18:27 < chomp> yes, the error returned is nil iff there is no error
18:27 -!- awidegreen [~quassel@h-170-226.A212.priv.bahnhof.se] has quit [Read
error: Connection reset by peer]
18:28 < TheCritic> "gob: attempt to decode into a non-pointer"
18:28 < TheCritic> nice
18:29 < TheCritic> ok, new rule, never ever throw away an error....
18:30 -!- piranha [~piranha@5ED43A0B.cm-7-5a.dynamic.ziggo.nl] has joined #go-nuts
18:30 < TheCritic> there must be a way of writing one error routine and
making it default for everything until I figure a reason to differentiate...
18:31 < skelterjohn|work> if err != nil { return }
18:31 < skelterjohn|work> and, at the top, defer func() { if err != nil {
fmt.Println(err) } }()
18:31 -!- exch [~blbl@87.209.181.34] has quit [Read error: Operation timed out]
18:32 -!- awidegreen [~quassel@85.24.170.226] has joined #go-nuts
18:32 < skelterjohn|work> i'd like it if we had exceptions for those kinds
of things
18:33 < jessta_> func chkerr(e os.Error){if e != nil{panic(e.String())}}
18:33 < skelterjohn|work> I think you can just do panic(e), can't you?
18:33 < aiju> no
18:33 < skelterjohn|work> well then
18:36 < jessta_> you can if your os.Error happens to be a string
18:37 -!- exch [~blbl@ip34-181-209-87.adsl2.static.versatel.nl] has joined
#go-nuts
18:38 < fvbommel> According to the spec, panic() takes an interface{}.  You
can pass whatever you want to it.
18:39 < skelterjohn|work> since os.Error has a String() method, it will use
it
18:40 < skelterjohn|work> yeah you can give any Stringer() to panic and it
will work as expected
18:43 -!- angasule_ [~angasule@190.2.33.49] has joined #go-nuts
18:47 -!- nebusoft
[~nebusoft@216-15-65-73.c3-0.drf-ubr2.atw-drf.pa.static.cable.rcn.com] has joined
#go-nuts
18:48 -!- Project-2501 [~Marvin@82.84.82.112] has joined #go-nuts
18:56 < TheCritic> gob *seems* to be dropping the second part of my struct
.....  code here: http://pastebin.com/3pxqCB3K output here:
http://pastebin.com/L1eHSnxy
18:57 < TheCritic> This is the line in the output that is whacked: BEFORE
map[two:{20 0} three:{30 0} one:{10 0}]
18:58 < skelterjohn|work> weird
18:58 -!- rutkowski [~adrian@078088210047.walbrzych.vectranet.pl] has joined
#go-nuts
18:59 < TheCritic> yeah
18:59 < aiju> TheCritic of pure reason
18:59 < TheCritic> I just compiled latest and it passes all tests
18:59 < skelterjohn|work> i do notice that you ignore an error value
19:00 < TheCritic> aiju: funny
19:00 < TheCritic> skelterjohn|work: crap, better fix that
19:00 < skelterjohn|work> the error is nil, though
19:00 < TheCritic> the e.Encode(filerecords) line?
19:01 < skelterjohn|work> oh, there's that one too
19:02 < skelterjohn|work> i meant os.Create
19:02 < TheCritic> ah
19:02 < TheCritic> ill fix that too
19:03 < TheCritic> yup, still weird
19:04 < TheCritic> so in my real code, that second param is a crc64 for each
file scanned...  and it keeps dropping it..  so I condensed it to this test to see
if i was being crazy...
19:05 < skelterjohn|work> try encoding to a bytes.Buffer, and then
immediately decoding from it
19:05 < skelterjohn|work> also, try using a different type for crc64
19:05 < skelterjohn|work> to see if that's an issue
19:06 -!- GeertJohan [~Squarc@ip4da06866.direct-adsl.nl] has joined #go-nuts
19:06 < TheCritic> changed type to int64 ...  no joy
19:06 < TheCritic> checking bytes.Buffer
19:09 < skelterjohn|work> i added a third element to the struct - and it
gets decoded properly, but crc64 still misses out
19:10 < skelterjohn|work> figured it out
19:10 < skelterjohn|work> crc64 is not exported
19:10 < skelterjohn|work> so gob can't read its value
19:10 < skelterjohn|work> if you change it to Crc64, it works
19:12 -!- Urmel| [~11087Urme@82-136-196-44.ip.telfort.nl] has quit [Read error:
Connection reset by peer]
19:12 < TheCritic> seriously?
19:13 < skelterjohn|work> yes
19:13 < TheCritic> the case?
19:13 < TheCritic> wow
19:13 < skelterjohn|work> that is how go determines what fields are exported
19:13 < skelterjohn|work> the case of the first letter
19:13 -!- SrTroll [~SrTroll@209.189.232.132] has joined #go-nuts
19:13 -!- SrTroll [~SrTroll@209.189.232.132] has left #go-nuts []
19:14 < TheCritic> wow
19:15 < TheCritic> go is looking more like perl every day :)
19:15 < TheCritic> which is good, bc I like perl :)
19:15 -!- nebusoft
[~nebusoft@216-15-65-73.c3-0.drf-ubr2.atw-drf.pa.static.cable.rcn.com] has quit
[Quit: Leaving]
19:16 < skelterjohn|work> does perl have a similar rule?
19:17 -!- bmizerany [~bmizerany@204.14.152.118] has joined #go-nuts
19:17 < chomp> no
19:17 < chomp> and go looks nothing like perl, thank the heavens
19:17 < chomp> err unless perl 6 has something like that, i dunno
19:18 < skelterjohn|work> i've only ever written one perl program
19:18 < skelterjohn|work> back in double-ought-two
19:18 < chomp> exec("/bin/rm /usr/bin/perl") ?
19:18 < skelterjohn|work> it contained a regular expression that spanned
three 80-char lines
19:19 < chomp> nice.
19:19 < skelterjohn|work> i was both proud and disgusted
19:19 < skelterjohn|work> i used it to remove XML tags
19:19 -!- firwen [~firwen@2a01:e34:eea3:7e10:4a5b:39ff:fe51:e8ae] has joined
#go-nuts
19:19 < chomp> is that even possible to do (perfectly) with a regex?
19:20 < chomp> i guess so
19:21 < skelterjohn|work> find and remove <X>.*</X>
19:21 < skelterjohn|work> and it would never be nested within itself
19:21 < chomp> ah
19:21 < skelterjohn|work> because of the particular doc structure
19:21 < skelterjohn|work> of course, this was a while ago, so i might not
remember it perfectly
19:22 -!- dlowe [~dlowe@ita4fw1.itasoftware.com] has joined #go-nuts
19:23 -!- wrtp [~rog@92.23.127.186] has joined #go-nuts
19:24 -!- tvw [~tv@212.79.9.150] has quit [Remote host closed the connection]
19:28 < TheCritic> ah, I meant that perl has plenty of magic that isn't
intuitive....  using case to denote if an item in a struct is exportable or not is
not exactly common practice in computer languages :)
19:29 < TheCritic> perl is easy to pick on...  but I like it.
19:34 < chomp> i would agree that case-based visibility is a bit unintuitive
19:34 < chomp> i like it, but one thing i wonder is how 'case' is determined
19:34 < skelterjohn|work> unicode definition
19:34 < chomp> ah
19:35 < skelterjohn|work> there is a character class called "upper case" for
unicode
19:35 < chomp> so it is at least sane in that regard :
19:35 < skelterjohn|work> you can have upper case greek, chinese letters,
etc
19:35 < chomp> yeah, didn't know if it was lazy or well defined
19:35 < chomp> good to know
19:35 < aiju> skelterjohn|work: there are no upper case chinese letters
19:35 < skelterjohn|work> shows how much you know
19:35 < aiju> it's not possible to export names like that
19:35 < aiju> it's in the FAQ
19:35 < skelterjohn|work> which is more than me, when it comes to chinese
19:36 < skelterjohn|work> if by "like that" you mean chinese, i believe you
19:36 < skelterjohn|work> but you can certainly export names with only greek
letters
19:36 < aiju> sure
19:36 < aiju> or cyrillic
19:37 < chomp> so i can export Σ double?
19:37 < skelterjohn|work> yes
19:37 < chomp> i think from now on all of my code will use greek and
cyrillic symbols
19:37 < aiju> var Водка int
19:37 < skelterjohn|work> gostat exports the greek letter for capital gamma,
for the gamma function
19:37 < skelterjohn|work> but that was actually kind of a silly choice in
retrospect
19:37 < chomp> I like it
19:37 < skelterjohn|work> hard to type
19:38 < chomp> yes, but i blame editors for that fact :)
19:38 < skelterjohn|work> it's the world we live in
19:38 < aiju> i blame children
19:38 < chomp> we must bring the world into the future
19:38 < chomp> where typing capital gamma is a breeze!
19:38 < aiju> it's easy here
19:38 < aiju> altgr + shift + g: Γ!
19:38 < skelterjohn|work> altgr?
19:39 < chomp> silly euro keyboard
19:39 < skelterjohn|work> you have a key for alt-greek?
19:39 < aiju> skelterjohn|work: hahaha
19:39 < aiju> no
19:39 < aiju> alternative graphics :)
19:39 < aiju> it's a key on german keyboards
19:39 < skelterjohn|work> ah
19:39 < aiju> i call right alt like that
19:39 < aiju> and map it accordingly
19:39 < aiju> (i prefer US keyboards)
19:39 < skelterjohn|work> on my mac i set it up so cmd-opt-space switches to
the greek keyboard
19:39 < chomp> ah, never considered actually remapping my keyboard to be
more useful
19:39 < aiju> i also have SCIM set up for 日本語
19:40 < aiju> hahaha i just noticed
19:40 < aiju> 語 is pronounced go
19:40 < aiju> and means "language"
19:40 < chomp> slick
19:40 < aiju> now we know the true reason Go is called the way it is
19:41 < skelterjohn|work> what do they call the game go in chinese?
19:41 < chomp> wiki says "weiqi"
19:41 < skelterjohn|work> i wonder where "go" came from
19:41 < chomp> omg wikipedia is named after go!
19:42 < skelterjohn|work> uh
19:42 < skelterjohn|work> oh, weiqipedia
19:42 < aiju> skelterjohn|work: from japanese
19:42 -!- bmizerany [~bmizerany@204.14.152.118] has quit [Remote host closed the
connection]
19:43 < aiju> 囲碁 (igo) is the game
19:44 < aiju> the japanese just took the chinese letters and pronounced them
as they would pronounce them
19:44 -!- huin [~huin@82.153.193.223] has joined #go-nuts
19:45 < chomp> logically the next step is to know how 語 is pronounced in
japanese
19:46 < aiju> chomp: Go
19:46 < aiju> 日本語 is japanese and means ..  japanese
19:46 < aiju> ("japan language")
19:46 < chomp> ah, then in chinese?  same?
19:46 < aiju> no clue
19:46 < chomp> ah ok.
19:46 < skelterjohn|work> so the game and "language" are spoken the same?
19:47 < aiju> skelterjohn|work: the game is "igo"
19:47 < chomp> sounds like 語 in chinese is pronounced "yu"
19:47 < aiju> chomp: dict.leo.org says "yu"
19:47 < aiju> yeah
19:47 < chomp> nice
19:47 < chomp> yulang it is!
19:47 < Tv> do note that chinese is a tonal language; there might be
multiple words you think of as "go"
19:48 < aiju> Tv: japanese is not
19:48 < Tv> yeah japanese pronounciation is way easier
19:48 -!- bmizerany [~bmizerany@204.14.152.118] has joined #go-nuts
19:48 < aiju> japanese is just terribly ambiguous in exchange
20:00 -!- robteix [~robteix@nat/intel/x-hnkgrgpjbrnftsjn] has joined #go-nuts
20:03 -!- keithcascio [~keithcasc@nat/google/x-odmhkbsnufsnzddl] has joined
#go-nuts
20:05 -!- micrypt [~micrypt@02ddac93.bb.sky.com] has joined #go-nuts
20:05 < micrypt> Negative slices.  Possible?
20:06 < Tv> nope
20:06 < Tv> or, well, depending on what exactly you mean
20:06 * micrypt spoilt Python brat crawls back into his corner.
20:06 < Tv> s[:-1] is doable iirc
20:06 <+iant> no, it's not
20:06 <+iant> sorry
20:06 < Tv> as in meaning s[:len(s)-1]
20:07 <+iant> nope, you have to write out the expression as you just did
20:07 < Tv> ok i misremember
20:07 < Tv> but that's "negative indices" in my mind
20:07 <+iant> it's a Python thing
20:07 < micrypt> Fair enough.  Thanks.
20:07 < Tv> negative slices sounds like an array that expands in both
directions from 0, which is definitely not in core go
20:08 < skelterjohn|work> whats the difference between negative slices and
negative indices?
20:08 < skelterjohn|work> they both have stuff before zero
20:09 < Tv> one would "wrap around", one would extend below zero
20:09 < Tv> like in c you could say foo[-42] and point at something
20:10 -!- dj2_ [~dj2@216.16.242.254] has joined #go-nuts
20:11 -!- dj2 [~dj2@216.16.242.254] has quit [Ping timeout: 260 seconds]
20:15 -!- tncardoso [~thiago@189.115.131.71] has quit [Ping timeout: 255 seconds]
20:18 < micrypt> When would you use a type assertion?
20:20 < skelterjohn|work> when you want to convert from an interface type to
a grounded type
20:23 < wrtp> AnotherBraggart: or from an interface to another interface
type
20:27 -!- rutkowski [~adrian@078088210047.walbrzych.vectranet.pl] has quit [Quit:
WeeChat 0.3.3-dev]
20:27 < wrtp> micrypt: negative slice indices obscure errors that should be
fatal
20:28 -!- tncardoso [~thiago@189.59.160.5] has joined #go-nuts
20:29 < chomp> how so?
20:30 < aiju> because the index is negative?
20:30 < aiju> and probably wasn't supposed to be
20:30 < chomp> but out of bounds is out of bounds
20:30 -!- PortatoreSanoDiI [~Marvin@dynamic-adsl-94-36-151-192.clienti.tiscali.it]
has joined #go-nuts
20:31 < aiju> with the thing micrypt suggested -1 would be in bounds
20:31 < chomp> if the index is too large and not supposed to be, does the
language obscure those errors?
20:31 < aiju> yeah
20:31 < aiju> currently it will trap all negative or too large indices
20:31 < chomp> a[-1] would be in bounds iff len(a) >= 1
20:31 < chomp> just like a[1] is in bounds iff len(a) > 1
20:32 < chomp> i know how it works, and i'm not even arguing that it should
be treated like python.  but error obscurity doesn't seem like a valid reason
20:32 < aiju> the thing is with variables which accidentally got negative
20:33 -!- Project-2501 [~Marvin@82.84.82.112] has quit [Ping timeout: 244 seconds]
20:35 -!- mgray [~mgray@li226-224.members.linode.com] has quit [Quit: Lost
terminal]
20:42 < skelterjohn|work> theSlice[base-someOffset()]
20:42 < skelterjohn|work> a bug causes someOffset() to be larger than base
20:42 < skelterjohn|work> which shouldn't happen
20:43 -!- jstemmer [~cheetah@mrpwn.stemmertech.com] has quit [Quit: leaving]
20:44 -!- TheMue [~TheMue@p5DDF4B91.dip.t-dialin.net] has quit [Quit: TheMue]
20:46 -!- firwen [~firwen@2a01:e34:eea3:7e10:4a5b:39ff:fe51:e8ae] has quit [Quit:
Geek insinde®]
20:48 < chomp> sure but consider theSlice[base+someOffset()]
20:48 -!- xash [~xash@d025196.adsl.hansenet.de] has joined #go-nuts
20:49 < chomp> i don't see how a bug causing (base+someOffset()) to be
larger than len(theSlice) is much different
20:49 < chomp> obviously different, but the significance of the distinction
seems arbitrary
20:50 -!- alehorst [~alehorst@187.58.246.160] has quit [Quit: Leaving.]
20:51 < chomp> of course i think simplicity is a perfectly legitimate reason
for indexing to be strictly positive :) not necessarily a fan of hidden magic.
20:51 -!- message144 [~message14@pool-98-112-179-26.lsanca.fios.verizon.net] has
joined #go-nuts
20:52 < message144> Is there a git tracking repo for gccgo ?
20:53 -!- dfr|mac [~dfr|work@nat/google/x-bbmrieuzzuwhjksw] has joined #go-nuts
20:54 -!- alehorst [~alehorst@187.58.246.160] has joined #go-nuts
20:54 < skelterjohn|work> chomp, they're similar bugs - both cause a panic
right now
20:54 < skelterjohn|work> but if we had negative indices, the -someOffset()
case would not panic
20:55 < chomp> but in that case a -someOffset() might not be an error
20:55 -!- PortatoreSanoDiI [~Marvin@dynamic-adsl-94-36-151-192.clienti.tiscali.it]
has quit [Quit: E se abbasso questa leva che succ...]
20:55 < chomp> shrug
20:55 < pharris> message144: http://gcc.gnu.org/wiki/GitMirror
20:55 < message144> pharris, thanks
20:55 < skelterjohn|work> it's an error that would be hard to find, if it
was the actual problem.  that, and the "no new features" dogma, is why it isn't a
feature
20:55 < skelterjohn|work> of course there are times when it'd be nice,
otherwise python wouldn't have added it
20:56 < skelterjohn|work> using str[-3:] is a very convenient way to get a 3
char suffix
20:58 -!- dfr|mac [~dfr|work@nat/google/x-bbmrieuzzuwhjksw] has quit [Remote host
closed the connection]
20:58 -!- dj2_ [~dj2@216.16.242.254] has quit [Remote host closed the connection]
20:58 < chomp> indeed.  i like negative indices but don't see them being
useful enough to justify the new feature
20:58 -!- dfr|mac [~dfr|work@nat/google/x-rtktvmyowroghaxm] has joined #go-nuts
20:59 < wrtp> it would be better if the compiler could tell statically when
you intend to use an index from the end
20:59 < wrtp> e.g.  str[$-3:]
21:00 < wrtp> where '$' stands for len(str)
21:00 < wrtp> but i don't think it's worth the complexity
21:00 < chomp> nah
21:00 < chomp> len(str)-3 just isn't hard enough to type for any of this to
be worth it :p
21:00 < skelterjohn|work> giveMeBackAString()[-3:]
21:01 < skelterjohn|work> have to make an intermediate var to do that
21:01 < skelterjohn|work> which is one of those inconveniences that often
makes code more readable
21:02 -!- GeertJohan [~Squarc@ip4da06866.direct-adsl.nl] has quit [Quit: Leaving.]
21:04 -!- squeese [~squeese@cm-84.209.17.156.getinternet.no] has joined #go-nuts
21:04 < uriel> yay, new regexp package is coming!
http://codereview.appspot.com/4538123/
21:05 < dforsyth> nice
21:05 < kevlar_work> I'm excited
21:06 < kevlar_work> its got a ways to go though
21:07 < kevlar_work> I think, currently, only the parser is implemented
(though since we have a regexp package already, the internals behind the parser
may be similar)
21:08 -!- piranha [~piranha@5ED43A0B.cm-7-5a.dynamic.ziggo.nl] has quit [Quit:
Computer has gone to sleep.]
21:10 < dforsyth> anyone interested in a snappy package?
21:12 < skelterjohn|work> what's a snappy package
21:12 -!- jsj [~johan@78-70-255-20-no149.tbcn.telia.com] has quit [Read error:
Connection reset by peer]
21:16 < uriel> kevlar_work: more that only the parser has been posted for
review ;) I'm sure russ is hard at work on th einternals (which I somhow doubt
will be the same as the current somewhat simplistic regexp package)
21:16 < uriel> in any case, quite exciting news
21:17 -!- gtaylor [~gtaylor@99-126-136-139.lightspeed.gnvlsc.sbcglobal.net] has
quit [Quit: gtaylor]
21:17 < skelterjohn|work> i'd be more excited by progress into making go
code invokable from C, or go shared objects
21:18 -!- huin [~huin@82.153.193.223] has quit [Quit: leaving]
21:18 -!- dlowe [~dlowe@ita4fw1.itasoftware.com] has quit [Quit: Leaving.]
21:18 -!- zozoR [~Morten@2906ds2-arno.0.fullrate.dk] has quit [Ping timeout: 255
seconds]
21:19 < skelterjohn|work> or if someone coded up the algorithm for
triangularization of a concave polygon that is going to be my day tomorrow
21:21 < message144> Is it possible for 6l to output a shared object file?
21:22 < Tonnerre> In theory yes but it's not implemented?
21:24 < chomp> skelterjohn|work, just one polygon?
21:25 -!- hallas [~hallas@x1-6-30-46-9a-b2-c5-1f.k891.webspeed.dk] has quit [Ping
timeout: 255 seconds]
21:25 < skelterjohn|work> yes
21:26 < jnwhiteh> Does anyone know why https://github.com/tav/go is no
longer being updated?
21:26 < skelterjohn|work> found a paper that claims to have the optimal alg
21:26 < skelterjohn|work> gonna read it tomorrow
21:26 < uriel> message144: basically no
21:26 < uriel> message144: gccgo can do it, 6l probably will be able some
day, but I wouldn't hold my breath
21:27 < message144> uriel, ok...  thats what i was afraid of..  having
trouble installing gccgo, so i guess im out of luck for now
21:27 < Tonnerre> When is golang for llvm due?  ;)
21:27 < aiju> never!
21:27 < uriel> message144: why do you need that?
21:27 < message144> uriel, shared objects?
21:27 < uriel> Tonnerre: when somebody plugs the Go frontend used for gcc,
have not heard of anyone trying so far, bu supposedly shouldn't be hard
21:28 < uriel> message144: again, why?
21:28 < Tonnerre> uriel: hm ok
21:28 < message144> uriel, i want to access it from python ctypes...  really
just for fun more than anything else
21:30 < chomp> i kinda like the inability to dynamically link
21:30 < Tonnerre> Heh
21:30 * uriel agrees with chomp
21:30 < message144> uriel, for performance reasons i do a lot of ctypes
linking from python to C...  but ive been looking for an excuse to try something
other than C for this
21:30 < message144> chomp, why?
21:31 < uriel> message144: why not give using Go directly a try?  in many
ways it is nicler, cleaner and simpler than Python
21:31 < chomp> it has its drawbacks, but the complete lack of binary
dependency outside of OS/arch itself is awfully nice
21:32 < message144> uriel, well, ive got a huge project in place, but there
are some pieces which need much better performance which python cannot offer
21:33 < message144> uriel, rewriting the entire thing is not an option, but
i thought linking to go would be kind of fun for this
21:33 -!- wrtp [~rog@92.23.127.186] has quit [Quit: wrtp]
21:33 < |Craig|> I wonder if its possible to do anything with Cython+cgo
21:33 < uriel> aha, I understand, well, it is always better to start with a
new language that is not too tied to an existing project (specially one mostly
written in another language)
21:33 < uriel> IMHO
21:34 < message144> |Craig|, that would be fun
21:34 < uriel> there is the campher stuff brad did for perl too
21:34 < uriel> wonder if a similar thing could be done for python
21:34 < uriel> still I'm not sure that would work for what you want
21:35 < message144> uriel, yeah that makes sense...  although, in this case,
i would be getting paid to learn go :)
21:35 -!- chomp [~chomp@dap-209-166-184-50.pri.tnt-3.pgh.pa.stargate.net] has quit
[Quit: Leaving]
21:36 < |Craig|> message144: depending on your needs, you might be able to
just launch and communicate with a go application from python
21:36 < message144> maybe one day when i have the patience, ill try to get
gccgo working
21:36 < message144> |Craig|, well yeah i was thinking about named pipes or
unix sockets or shared memory
21:37 < message144> there are some options there..  but i thought directly
accessing it via ctypes would have been ultra sexy
21:37 < |Craig|> use a network socket and call its ability to use a remote
server for heavy processing a feature :)
21:37 < |Craig|> it really depends on how much communication you need
21:38 -!- hcatlin [~hcatlin@pdpc/supporter/professional/hcatlin] has joined
#go-nuts
21:38 < message144> In my head i was thinking "finally, an excuse to ditch C
for all our clustering algorithms"
21:38 < Tonnerre> Heh
21:38 < message144> but, to justify it, it would have to be somewhat elegant
and sensible
21:39 < message144> oh well..  ill revisit this in a few months i suppose :)
21:39 < message144> but i think ill get started learning the language in the
mean time
21:39 -!- awidegreen [~quassel@85.24.170.226] has quit [Remote host closed the
connection]
21:40 -!- cenuij [~cenuij@103.184.122.78.rev.sfr.net] has joined #go-nuts
21:40 -!- cenuij [~cenuij@103.184.122.78.rev.sfr.net] has quit [Changing host]
21:40 -!- cenuij [~cenuij@base/student/cenuij] has joined #go-nuts
21:42 < uriel> json over a pipe should be quite nice
21:42 < uriel> or you could use the C implementation of gobs
21:43 < uriel> but tha is more low-level
21:43 -!- dfc [~dfc@124-149-49-45.dyn.iinet.net.au] has quit [Quit: dfc]
21:44 < message144> uriel, heh yeah i actually did that same thing for
python <-> php
21:46 -!- tncardoso [~thiago@189.59.160.5] has quit [Quit: bye]
21:47 < Venom_X> message144, what about thrift?
21:48 < message144> Venom_X, oh yeah good idea
21:48 -!- pothos_ [~pothos@111-240-174-124.dynamic.hinet.net] has joined #go-nuts
21:48 < Venom_X> pretty sure there's thrift implementations in the languages
you've mentioned
21:49 * uriel would stick to json unless there are clear performance reasons
21:49 -!- pothos [~pothos@111-240-170-45.dynamic.hinet.net] has quit [Ping
timeout: 246 seconds]
21:51 -!- pharris [~Adium@rhgw.opentext.com] has quit [Quit: Leaving.]
21:53 -!- Fish- [~Fish@9fans.fr] has quit [Quit: So Long, and Thanks for All the
Fish]
21:55 -!- jbooth1 [~jay@209.249.216.2] has left #go-nuts []
21:57 -!- iant [~iant@nat/google/x-ufstdfpwmtryqspf] has quit [Ping timeout: 268
seconds]
22:11 -!- iant [~iant@nat/google/x-ygenzifktjiaijzt] has joined #go-nuts
22:11 -!- mode/#go-nuts [+v iant] by ChanServ
22:11 -!- rlab [~Miranda@91.200.158.34] has quit [Quit: Miranda IM! Smaller,
Faster, Easier.  http://miranda-im.org]
22:11 -!- foocraft_ [~ewanas@89.211.214.224] has joined #go-nuts
22:11 -!- foocraft [~ewanas@89.211.225.198] has quit [Ping timeout: 252 seconds]
22:17 -!- dfr|mac [~dfr|work@nat/google/x-rtktvmyowroghaxm] has quit [Ping
timeout: 255 seconds]
22:19 -!- pjjw [klang@68.64.241.250] has joined #go-nuts
22:23 -!- tncardoso [~thiago@189.59.160.5] has joined #go-nuts
22:25 -!- whitespacechar [~whitespac@24-247-159-7.dhcp.klmz.mi.charter.com] has
quit [Quit: whitespacechar]
22:27 -!- tvw [~tv@e176006185.adsl.alicedsl.de] has joined #go-nuts
22:31 -!- iant [~iant@nat/google/x-ygenzifktjiaijzt] has quit [Ping timeout: 252
seconds]
22:35 -!- tncardoso [~thiago@189.59.160.5] has quit [Quit: bye]
22:35 -!- franciscosouza [~francisco@201.7.186.67] has quit [Quit: franciscosouza]
22:35 -!- dreadlorde [~dreadlord@c-24-11-39-160.hsd1.mi.comcast.net] has joined
#go-nuts
22:37 -!- Venom_X [~pjacobs@66.54.185.130] has quit [Quit: Leaving]
22:38 -!- ExtraSpice [XtraSpice@78-57-204-104.static.zebra.lt] has quit [Read
error: Connection reset by peer]
22:39 -!- xQuasar [xQuasar@123-243-2-159.static.tpgi.com.au] has joined #go-nuts
22:40 < xQuasar> Upon first glance, Go seems like a mesh of syntax from c++
and java
22:42 -!- fvbommel [~fvbommel_@86.86.15.250] has quit [Ping timeout: 268 seconds]
22:44 -!- iant [~iant@nat/google/x-osuqkusmddmqytan] has joined #go-nuts
22:44 -!- mode/#go-nuts [+v iant] by ChanServ
22:46 -!- xQuasar [xQuasar@123-243-2-159.static.tpgi.com.au] has quit []
22:47 -!- whitespacechar [~whitespac@24-247-159-7.dhcp.klmz.mi.charter.com] has
joined #go-nuts
22:49 < whitespacechar> (testing)
22:49 -!- whitespacechar [~whitespac@24-247-159-7.dhcp.klmz.mi.charter.com] has
left #go-nuts []
22:50 -!- whitespacechar [~whitespac@24-247-159-7.dhcp.klmz.mi.charter.com] has
joined #go-nuts
22:50 < whitespacechar> (testing)
22:50 -!- robteix [~robteix@nat/intel/x-hnkgrgpjbrnftsjn] has quit [Ping timeout:
255 seconds]
22:53 -!- angasule_ [~angasule@190.2.33.49] has quit [Ping timeout: 255 seconds]
22:53 -!- shvntr [~shvntr@119.121.31.56] has joined #go-nuts
22:53 -!- Sisten [~Sisten@s213-103-208-147.cust.tele2.se] has quit [Read error:
Connection reset by peer]
22:55 < str1ngs> whitespacechar: ping
22:56 < whitespacechar> hello.
22:56 < str1ngs> hello
22:56 < whitespacechar> does anyone know of an existing Go http rest client
library?
22:59 < str1ngs> whitespacechar: there is
http://code.google.com/p/tideland-rwf/
22:59 < str1ngs> but not sure how far developed it is I have not used it
myself
22:59 -!- dreadlorde [~dreadlord@c-24-11-39-160.hsd1.mi.comcast.net] has quit
[Ping timeout: 250 seconds]
22:59 -!- bytbox [~s@96.26.105.154] has joined #go-nuts
23:00 < str1ngs> ah client . think that is a server
23:00 < whitespacechar> yes, it looks like.
23:00 < whitespacechar> thanks for checking, though.
23:00 -!- squeese [~squeese@cm-84.209.17.156.getinternet.no] has quit [Remote host
closed the connection]
23:01 -!- fvbommel [~fvbommel_@86.86.15.250] has joined #go-nuts
23:01 < str1ngs> would not be hard to make your own though.  at least
tailored to the api you need services from
23:02 < micrypt> whitespacechar: What are your needs?  The built in http
lib's fairly decent.
23:02 < whitespacechar> sure.  sometimes it's nice to hide a few of the
details.
23:03 < micrypt> True, I've found myself rewriting elements and wrapping
stuff one more than one occasion.
23:03 < micrypt> s/one more/on more
23:06 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined
#go-nuts
23:07 -!- angasule_ [~angasule@190.2.33.49] has joined #go-nuts
23:08 < dforsyth> sorry when i brought up a snappy package earlier i was
talking about googles compression lib
23:10 -!- flaguy48 [~gmallard@user-0c6s350.cable.mindspring.com] has joined
#go-nuts
23:11 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Ping timeout: 260
seconds]
23:14 -!- aat [~aat@rrcs-184-75-54-130.nyc.biz.rr.com] has quit [Quit: Computer
has gone to sleep.]
23:15 -!- whitespacechar [~whitespac@24-247-159-7.dhcp.klmz.mi.charter.com] has
quit [Quit: whitespacechar]
23:18 -!- adu [~ajr@64.134.96.52] has quit [Quit: adu]
23:19 -!- iant [~iant@nat/google/x-osuqkusmddmqytan] has quit [Quit: Leaving.]
23:24 -!- replore_ [~replore@ntkngw256114.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit
[Remote host closed the connection]
23:27 -!- Semmy [~Semy@sunner.semmy.ru] has joined #go-nuts
23:28 < Semmy> hello.  it's my first programm on go.  just "Hello, world!"
I've copied from golang.org.  and I've got an error:
23:28 < Semmy> % 8g hello.go
23:28 < Semmy> hello.go:3: syntax error: unexpected literal, expecting name
23:29 < Semmy> in line: import "fmt"
23:29 < Semmy> can you give a hint?
23:29 < Rennex> weird old version of the compiler?
23:30 < Semmy> GOOS=freebsd
23:30 < Semmy> GOARCH=386
23:30 < Semmy> GOROOT=/usr/local/lib/go
23:30 < Semmy> from freebsd ports: go-20110515
23:30 < Semmy> not so old
23:30 < xash> What's in line 1 and 2?
23:31 -!- iant [~iant@67.218.107.72] has joined #go-nuts
23:31 -!- mode/#go-nuts [+v iant] by ChanServ
23:31 < xash> Oh, wait, I see ..  copied ..  uhrm
23:32 < Semmy> package main
23:32 < Semmy> <empty string>
23:32 < Semmy> looks like a buggy freebsd port
23:32 < dforsyth> freebsd port is good last time i checked
23:33 < Rennex> Semmy: you copied text that has chinese characters in it
-> sounds like a charset problem (invisible utf BOM at the start and the
compiler doesn't understand it?)
23:34 < Semmy> well, a complete list:
23:34 < Semmy> % cat hello.go
23:34 < Semmy> package main
23:34 < Semmy> import "fmt"
23:34 < Semmy> func main() {
23:34 < Semmy> fmt.Printf("hello, world\n")
23:34 < Semmy> }
23:35 < Semmy> I'v just build go from hg sources and the problem gone
23:36 -!- Semmy [~Semy@sunner.semmy.ru] has left #go-nuts []
23:38 -!- franciscosouza [~francisco@187.105.21.125] has joined #go-nuts
23:42 -!- robteix [~robteix@host16.190-230-219.telecom.net.ar] has joined #go-nuts
23:46 -!- rcrowley [~rcrowley@208.106.28.36] has joined #go-nuts
23:52 <@adg> yeah, don't use ports
23:52 <@adg> *sigh*
23:52 <@adg> how many times have i asked people NOT to package Go for
distributions yet?
23:53 < str1ngs> hmm I did not know that
23:53 < str1ngs> what about gccgo
23:54 <@adg> gccgo is a bit different
23:57 -!- aat [~aat@cpe-72-225-174-173.nyc.res.rr.com] has joined #go-nuts
--- Log closed Thu Jun 09 00:00:53 2011