Go Language Resources Go, golang, go... NOTE: This page ceased updating in October, 2012

--- Log opened Mon Apr 18 00:00:50 2011
00:03 -!- ExtraSpice [XtraSpice@88.118.35.153] has quit [Ping timeout: 276
seconds]
00:06 -!- boscop [~boscop@f055020115.adsl.alicedsl.de] has quit [Ping timeout: 246
seconds]
00:10 -!- angasule [~angasule@190.2.33.49] has quit [Read error: Connection reset
by peer]
00:11 -!- angasule [~angasule@190.2.33.49] has joined #go-nuts
00:11 -!- sqqqrly [~dohlemach@c-75-67-216-29.hsd1.nh.comcast.net] has joined
#go-nuts
00:13 -!- boscop [~boscop@f055057242.adsl.alicedsl.de] has joined #go-nuts
00:24 -!- angasule [~angasule@190.2.33.49] has quit [Remote host closed the
connection]
00:34 -!- sqqqrly [~dohlemach@c-75-67-216-29.hsd1.nh.comcast.net] has quit [Ping
timeout: 240 seconds]
00:35 -!- Pixelgel [~Pixelgel@c-71-229-206-102.hsd1.co.comcast.net] has joined
#go-nuts
00:36 -!- dj2 [~dj2@199.243.188.202] has quit [Remote host closed the connection]
00:37 -!- Rakko [~rakko@71-90-73-192.dhcp.ftbg.wi.charter.com] has joined #go-nuts
00:39 -!- dfc [~dfc@eth59-167-133-99.static.internode.on.net] has joined #go-nuts
00:56 -!- dreadlorde [~dreadlord@c-24-11-39-160.hsd1.mi.comcast.net] has joined
#go-nuts
01:03 -!- mikespook [~mikespook@219.137.252.101] has joined #go-nuts
01:05 -!- saturnfive [~saturnfiv@210.74.155.131] has joined #go-nuts
01:37 -!- ampleyfly [ampleyfly@gateway/shell/blinkenshell.org/x-bxqhogdnrjbsmrcp]
has quit [Ping timeout: 252 seconds]
01:42 -!- ampleyfly [ampleyfly@gateway/shell/blinkenshell.org/x-otpaicfbcqjnjwym]
has joined #go-nuts
01:46 -!- gaxxx [~woo@219.143.166.16] has joined #go-nuts
01:54 < crazy2be> how do you get git to ignore go binaries in the source
tree?
01:55 < crazy2be> i could ignore each one explicitly
01:55 < crazy2be> but that seems hackish
02:00 < delinka> don't add binary files :-/
02:07 < Rakko> yeah, I guess you're supposed to only git add files one by
one
02:07 < Rakko> not whole directories
02:07 -!- benjack [~benjack@bb121-6-49-43.singnet.com.sg] has joined #go-nuts
02:08 < crazy2be> that's a pain
02:08 < crazy2be> and then the binaries sit around in the "Untracked files"
section of git status
02:08 < crazy2be> when i will never want to commit them
02:11 < Rakko> you can put their names in .gitignore
02:11 < crazy2be> yeah, one-by-one :/
02:12 -!- dreadlorde [~dreadlord@c-24-11-39-160.hsd1.mi.comcast.net] has quit
[Ping timeout: 252 seconds]
02:12 < crazy2be> is there some clever .gitignore pattern to ignore them?
02:13 < delinka> add a 'clean' rule that removes those binaries before
adding whole directories
02:13 < crazy2be> they are all in src/<name>/<name>
02:13 < delinka> make clean; git add ...
02:13 < delinka> well, included Go makefiles already have clean :)
02:16 -!- fmoo [~Adium@c-76-102-41-101.hsd1.ca.comcast.net] has joined #go-nuts
02:27 < dfc> can the .gitinclude source other files ?
02:28 < dfc> source Makefile and exlcude $(TARG)
02:28 < dfc> but this should only be necessary for Make.cmd right ?
02:28 < |Craig|> I just have things like *.6 in my .gitignore
02:29 < dfc> take a look at $GOROOT/.hgignore
02:29 < dfc> that is a pretty complete set
02:45 < crazy2be> ah
02:46 < crazy2be> it solves it with a regex
02:46 < crazy2be> wonder if git supports regexes
02:48 < Rakko> does go not support shared libraries yet?
02:48 < dfc> depends what you mean
02:50 < dfc> the final executables produced by go a mostly (cgo permitted)
statically linked
02:50 < dfc> but each package is essentially a shared library that is fixed
up at linker time, rather than runtime
02:50 < dfc> at least, that is how I look at it
02:51 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Quit:
skelterjohn]
02:51 < crazy2be> hmm i guess i could ignore src/, then !src/*/*.go,
!src/*/Makefile
02:52 < Rakko> I would think shared would mean runtime linking
02:53 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has joined
#go-nuts
02:54 -!- scarabx [~scarabx@c-76-19-43-200.hsd1.ma.comcast.net] has quit [Remote
host closed the connection]
02:56 < crazy2be> what is the usage difference between a linked list and a
[]*SomeObj
02:56 < crazy2be> like, where would each one have advantages?
02:57 < crazy2be> it seems like the expense in []*SomeObj with lots of
objects would still be relatively small
02:58 < |Craig|> crazy2be: if you want to access the 10 item, in a linked
list, it takes 10 step
02:58 < |Craig|> linked lists have linear access time compared to their
size, slices have constant access time
02:58 < |Craig|> and slices take less memory
02:59 < |Craig|> but inserts require moving items, and so does removing,
which is not the case with linked lists
03:01 < crazy2be> |Craig|: Well, how performance-intensive is that if it is
an array/slice of pointers?
03:02 < |Craig|> it does not mater if the array is pointers, or ints, of
floats, of structs, except that structs might be a little bigger
03:02 < |Craig|> theres nothing special about a slice of pointers.  Its just
a slice, that happens to contain pointers
03:04 < crazy2be> well, nothing special except that points are smaller, and
thus (i am assuming), they are faster to move or copy
03:04 < crazy2be> smaller than sctructs that is
03:05 < crazy2be> *pointers
03:05 < crazy2be> *structs
03:05 < |Craig|> structs can be the same size, and maybe even smaller
03:05 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined
#go-nuts
03:05 < crazy2be> well, can be
03:05 < crazy2be> but are usually larger
03:06 < |Craig|> any changes to performance are simply constants, where
moving to a linked list changes the behaviour drastically
03:06 < crazy2be> on 32-bit systems, pointrs are 4 bytes i belive
03:06 < |Craig|> can you have empty structs of 0 size?
03:07 < crazy2be> hmm not sure, but you can have structs of 1 byte
03:07 < |Craig|> but they will get aligned to 32 bit spacing prabably
03:08 < crazy2be> does that happen with bytes too?
03:08 < crazy2be> or just if you have a struct with only a byte?
03:09 < crazy2be> e.g.  would a var blar int take up the same amount of
memory as a var blar byte?
03:09 < |Craig|> I don't know.  All I know is that fetching unaligned values
can be slow depending on your instruction set architecture.
03:09 -!- foocraft [~dsc@178.152.70.10] has joined #go-nuts
03:13 < skelterjohn> i'd guess that a clever compiler would turn a struct{}
into no data at all
03:13 < skelterjohn> and things like sending/receiving for chan struct{}
would be a data-free communication
03:14 -!- boscop [~boscop@f055057242.adsl.alicedsl.de] has quit [Ping timeout: 246
seconds]
03:15 < crazy2be> or a compiler error
03:15 < crazy2be> since there is no use to such a construct
03:15 -!- boscop [~boscop@f055057242.adsl.alicedsl.de] has joined #go-nuts
03:15 < skelterjohn> sure there is
03:15 < skelterjohn> exactly the use i mentioned
03:16 < crazy2be> unless you want to send something on a channel but don't
care what
03:16 < skelterjohn> doneChans for instance
03:16 < crazy2be> but that's not data-free
03:16 < skelterjohn> but it can be payload-free
03:16 < crazy2be> since you still have data about the messages themselves
03:16 < skelterjohn> and struct{} is a completely valid type right now
03:17 < skelterjohn> i used to make "chan bool"s for waiting on goroutines
03:17 < skelterjohn> now i make "chan struct{}"s
03:23 -!- Glasswalker [~Glasswalk@99.246.189.83] has quit [Ping timeout: 260
seconds]
03:23 < crazy2be> huh
03:24 -!- gaxxx [~woo@219.143.166.16] has quit [Ping timeout: 258 seconds]
03:24 < crazy2be> it would be interesting if you could have a chan nil
03:25 < crazy2be> although nil is a value, not a type
03:26 -!- benjack [~benjack@bb121-6-49-43.singnet.com.sg] has quit [Quit:
Leaving.]
03:26 -!- Viriix [~joseph@c-67-169-172-251.hsd1.ca.comcast.net] has joined
#go-nuts
03:27 < crazy2be> anyway night
03:28 < skelterjohn> night
03:29 -!- Glasswalker
[~Glasswalk@CPE002369b3cd1a-CM00222d53f155.cpe.net.cable.rogers.com] has joined
#go-nuts
03:31 -!- gaxxx [~woo@219.143.166.16] has joined #go-nuts
03:33 -!- ampleyfly [ampleyfly@gateway/shell/blinkenshell.org/x-otpaicfbcqjnjwym]
has quit [Ping timeout: 260 seconds]
03:35 -!- crazy2be [~crazy2be@d209-89-248-73.abhsia.telus.net] has quit [Remote
host closed the connection]
03:36 -!- kevlar [~kevlar@unaffiliated/eko] has quit [Quit: This computer has gone
to sleep]
03:38 -!- ampleyfly [ampleyfly@gateway/shell/blinkenshell.org/x-hfpflqnaccrqkwvj]
has joined #go-nuts
03:41 -!- sqqqrly [~dohlemach@c-75-67-216-29.hsd1.nh.comcast.net] has joined
#go-nuts
03:52 -!- watr_ [~rom@66.183.100.58] has joined #go-nuts
04:16 -!- sqqqrly [~dohlemach@c-75-67-216-29.hsd1.nh.comcast.net] has quit [Quit:
Ex-Chat]
04:22 -!- rejb [~rejb@unaffiliated/rejb] has quit [Ping timeout: 246 seconds]
04:26 -!- gregschlom [~quassel@118.68.205.177] has joined #go-nuts
04:29 -!- zozoR [~Morten@56344480.rev.stofanet.dk] has joined #go-nuts
04:38 -!- binarypie [~binarypie@c-24-6-151-185.hsd1.ca.comcast.net] has joined
#go-nuts
04:43 -!- gregschlom [~quassel@118.68.205.177] has quit [Ping timeout: 250
seconds]
04:45 -!- fmoo [~Adium@c-76-102-41-101.hsd1.ca.comcast.net] has quit [Quit:
Leaving.]
04:52 -!- dj2 [~dj2@CPE001f5b35feb4-CM0014048e0344.cpe.net.cable.rogers.com] has
joined #go-nuts
04:54 -!- gregschlom [~quassel@118.68.205.177] has joined #go-nuts
04:58 -!- fabled [~fabled@83.145.235.194] has quit [Quit: Ex-Chat]
05:02 -!- fabled [~fabled@83.145.235.194] has joined #go-nuts
05:07 -!- gregschlom [~quassel@118.68.205.177] has quit [Ping timeout: 246
seconds]
05:18 -!- foocraft [~dsc@178.152.70.10] has quit [Quit: Leaving]
05:23 -!- firwen [~firwen@gex01-1-78-234-55-225.fbx.proxad.net] has joined
#go-nuts
05:23 -!- krolaw [~krolaw@203.100.208.229] has joined #go-nuts
05:31 -!- watr_ [~rom@66.183.100.58] has quit [Ping timeout: 276 seconds]
05:46 -!- dj2 [~dj2@CPE001f5b35feb4-CM0014048e0344.cpe.net.cable.rogers.com] has
quit [Remote host closed the connection]
05:46 -!- firwen [~firwen@gex01-1-78-234-55-225.fbx.proxad.net] has quit [Remote
host closed the connection]
06:01 -!- boomtopper
[~boomtoppe@cpc12-nrte22-2-0-cust249.8-4.cable.virginmedia.com] has quit [Ping
timeout: 250 seconds]
06:10 -!- DrZoidberg [~lol@h31.37.90.75.dynamic.ip.windstream.net] has joined
#go-nuts
06:10 -!- DrZoidberg [~lol@h31.37.90.75.dynamic.ip.windstream.net] has left
#go-nuts []
06:10 -!- krolaw [~krolaw@203.100.208.229] has quit [Quit: krolaw]
06:10 -!- JusticeFries [~JusticeFr@c-24-9-171-36.hsd1.co.comcast.net] has joined
#go-nuts
06:14 < JusticeFries> is there an established HTML parser for Go yet?
06:17 -!- Project_2501 [~Marvin@82.84.90.169] has joined #go-nuts
06:24 -!- DrZoidberg [~lol@h31.37.90.75.dynamic.ip.windstream.net] has joined
#go-nuts
06:24 -!- DrZoidberg [~lol@h31.37.90.75.dynamic.ip.windstream.net] has left
#go-nuts []
06:24 < vsmatck> JusticeFries: search go packages.
06:24 < JusticeFries> perfect thanks.  :)
06:26 < uriel> JusticeFries: http://golang.org/pkg/html/
06:26 < JusticeFries> ah nice.
06:29 -!- DrZoidberg [~lol@h31.37.90.75.dynamic.ip.windstream.net] has joined
#go-nuts
06:31 -!- boomtopper
[~boomtoppe@cpc12-nrte22-2-0-cust249.8-4.cable.virginmedia.com] has joined
#go-nuts
06:32 -!- gregschlom [~quassel@118.68.205.177] has joined #go-nuts
06:36 -!- [kevlar] [~kevlar@70-90-168-189-SFBACalifornia.hfc.comcastbusiness.net]
has joined #go-nuts
06:36 -!- firwen [~firwen@adevlaptop.cern.ch] has joined #go-nuts
06:41 < taruti> Can one add formatting to the godoc comments?  If so how?
06:42 < dfc> like javadoc comments ?
06:44 < taruti> yes
06:45 -!- DrZoidberg [~lol@h31.37.90.75.dynamic.ip.windstream.net] has quit [Ping
timeout: 246 seconds]
06:45 -!- Viriix [~joseph@c-67-169-172-251.hsd1.ca.comcast.net] has quit [Quit:
Leaving]
06:46 < dfc> yes, you can use html
06:46 < dfc> there are some conventions
06:47 < dfc> hmm, actaully not html
06:47 < dfc> it looks more like markdown
06:47 < dfc> http://code.google.com/p/go/source/browse/src/pkg/gob/doc.go
06:50 -!- Rakko [~rakko@71-90-73-192.dhcp.ftbg.wi.charter.com] has quit [Ping
timeout: 250 seconds]
06:55 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts
06:57 -!- piranha [~piranha@D57D1AB3.static.ziggozakelijk.nl] has joined #go-nuts
07:03 < taruti> nsf: can gortfm be coerced to produce something like markup
(would be handy for bitbucket wiki pages) ?
07:03 < nsf> I don't think it's that flexible
07:04 < nsf> but it's not that big though
07:04 < nsf> you can change tweak it as much as you want
07:04 < nsf> :)
07:04 < nsf> s/change//
07:05 < taruti> or is there some site running a community godoc?
07:06 < taruti> just want to point my bitbucket repos to api
documentation...
07:16 -!- crodjer [~rohanjain@203.110.240.205] has joined #go-nuts
07:17 -!- foocraft [~dsc@dyn-86-36-41-74.wv.qatar.cmu.edu] has joined #go-nuts
07:18 -!- boomtopper
[~boomtoppe@cpc12-nrte22-2-0-cust249.8-4.cable.virginmedia.com] has quit [Ping
timeout: 250 seconds]
07:21 -!- ross` [~ross@83.246.64.67] has quit [Remote host closed the connection]
07:26 -!- nixness [~dsc@86.36.49.200] has joined #go-nuts
07:29 -!- foocraft [~dsc@dyn-86-36-41-74.wv.qatar.cmu.edu] has quit [Ping timeout:
276 seconds]
07:30 -!- fmoo [~Adium@c-76-102-41-101.hsd1.ca.comcast.net] has joined #go-nuts
07:33 -!- firwen [~firwen@adevlaptop.cern.ch] has quit [Quit: Geek insinde®]
07:37 -!- binarypie [~binarypie@c-24-6-151-185.hsd1.ca.comcast.net] has quit
[Remote host closed the connection]
07:39 -!- bortzmeyer [~stephane@lan31-2-82-224-72-72.fbx.proxad.net] has joined
#go-nuts
07:43 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Quit: |Craig|]
07:46 -!- dfc [~dfc@eth59-167-133-99.static.internode.on.net] has quit [Ping
timeout: 260 seconds]
07:58 -!- dchest [~dchest@109.228.79.14] has joined #go-nuts
07:59 -!- bortzmeyer [~stephane@lan31-2-82-224-72-72.fbx.proxad.net] has quit
[Ping timeout: 240 seconds]
07:59 -!- zimsim [~simon@87.72.77.195] has joined #go-nuts
08:10 -!- crodjer [~rohanjain@203.110.240.205] has quit [Remote host closed the
connection]
08:20 -!- femtoo [~femto@95-89-249-242-dynip.superkabel.de] has joined #go-nuts
08:23 -!- ExtraSpice [XtraSpice@88.118.35.153] has joined #go-nuts
08:40 -!- dfc [~dfc@124-149-101-80.dyn.iinet.net.au] has joined #go-nuts
08:40 -!- leczb [~leczb@nat/google/x-niyiwvszckhifcxb] has quit [Remote host
closed the connection]
08:41 < plexdev> http://is.gd/B7cTbr by [Nigel Tao] in go/ -- CONTRIBUTORS:
Raph Levien (Google CLA)
08:42 -!- gregschlom [~quassel@118.68.205.177] has quit [Read error: Connection
reset by peer]
08:44 -!- leczb [~leczb@nat/google/x-xvkbyhhcjldodvpd] has joined #go-nuts
08:49 -!- rlab [~Miranda@149-167-113-92.pool.ukrtel.net] has joined #go-nuts
08:50 -!- leczb [~leczb@nat/google/x-xvkbyhhcjldodvpd] has quit [Read error:
Operation timed out]
08:52 -!- leczb [~leczb@nat/google/x-ammocosepxsatevc] has joined #go-nuts
08:57 -!- rlab [~Miranda@149-167-113-92.pool.ukrtel.net] has quit [Ping timeout:
264 seconds]
09:02 -!- JusticeFries [~JusticeFr@c-24-9-171-36.hsd1.co.comcast.net] has quit
[Quit: JusticeFries]
09:04 -!- pphalen [~pphalen@66.92.11.149] has quit [Quit: pphalen]
09:08 -!- itrekkie [~itrekkie@ip72-211-130-204.tc.ph.cox.net] has joined #go-nuts
09:14 -!- dfc [~dfc@124-149-101-80.dyn.iinet.net.au] has quit [Quit: dfc]
09:19 -!- rlab [~Miranda@220-191-113-92.pool.ukrtel.net] has joined #go-nuts
09:22 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.4]
09:24 -!- tav [~tav@92.7.142.193] has quit [Quit: tav]
09:33 -!- mikespook [~mikespook@219.137.252.101] has quit [Quit: Leaving.]
09:35 -!- leczb [~leczb@nat/google/x-ammocosepxsatevc] has quit [Remote host
closed the connection]
09:42 -!- krolaw [~krolaw@203.100.208.229] has joined #go-nuts
09:42 -!- krolaw [~krolaw@203.100.208.229] has quit [Client Quit]
09:44 -!- krolaw [~krolaw@203.100.208.229] has joined #go-nuts
09:51 -!- foocraft [~dsc@86.36.49.200] has quit [Ping timeout: 246 seconds]
10:04 -!- femtoo [~femto@95-89-249-242-dynip.superkabel.de] has quit [Ping
timeout: 250 seconds]
10:08 -!- foocraft [~dsc@dyn-86-36-41-74.wv.qatar.cmu.edu] has joined #go-nuts
10:10 -!- shvntr [~shvntr@113.84.145.224] has joined #go-nuts
10:15 -!- foocraft [~dsc@dyn-86-36-41-74.wv.qatar.cmu.edu] has quit [Quit:
Leaving]
10:16 -!- foocraft [~dsc@dyn-86-36-41-74.wv.qatar.cmu.edu] has joined #go-nuts
10:30 -!- saturnfive [~saturnfiv@210.74.155.131] has quit [Read error: Connection
reset by peer]
10:30 -!- femtoo [~femto@95-89-249-242-dynip.superkabel.de] has joined #go-nuts
10:31 -!- foocraft [~dsc@dyn-86-36-41-74.wv.qatar.cmu.edu] has quit [Read error:
Operation timed out]
10:33 -!- foocraft [~dsc@86.36.49.200] has joined #go-nuts
10:41 -!- fmoo [~Adium@c-76-102-41-101.hsd1.ca.comcast.net] has quit [Quit:
Leaving.]
10:43 -!- Scorchin [~Scorchin@host86-160-234-145.range86-160.btcentralplus.com]
has joined #go-nuts
10:46 -!- foocraft [~dsc@86.36.49.200] has quit [Quit: Leaving]
10:48 -!- foocraft [~dsc@86.36.49.200] has joined #go-nuts
11:00 -!- katakuna [~pie@kjal.demon.co.uk] has quit [Ping timeout: 276 seconds]
11:01 -!- GilJ [~GilJ@zeus.ugent.be] has quit [Ping timeout: 276 seconds]
11:05 -!- katakuna [~pie@kjal.demon.co.uk] has joined #go-nuts
11:09 -!- foocraft [~dsc@86.36.49.200] has quit [Quit: Leaving]
11:17 -!- foocraft [~dsc@86.36.49.200] has joined #go-nuts
11:19 -!- virtualsue [~chatzilla@nat/cisco/x-cpvdkgivccorrhtt] has joined #go-nuts
11:19 -!- GilJ [~GilJ@zeus.ugent.be] has joined #go-nuts
11:21 -!- dfc [~dfc@124-149-101-80.dyn.iinet.net.au] has joined #go-nuts
11:22 -!- hopso [~hopso@a91-154-2-70.elisa-laajakaista.fi] has joined #go-nuts
11:30 -!- TheMue [~TheMue@p5DDF6C56.dip.t-dialin.net] has joined #go-nuts
11:31 < hopso> Oh my god.  Earlier today one programmer I know started
babbling around about Google taking over the world like a madman when I mentioned
Go. :D
11:32 -!- sebastia1 [~sebastian@188.114.142.217] has joined #go-nuts
11:32 < virtualsue> ha
11:33 < hopso> I probably wont talk about Go with him again.
11:34 < exch> oh but you should.  Just to annoy him
11:35 < hopso> He probably annoys himself enough already.  :D
11:35 < xyproto> hopso: perhaps it's based on the same misunderstanding as
the legal system in the US: that a company is a person
11:35 < aiju> google world domination?
11:35 < Namegduf> I prefer to call it "world optimisation".
11:36 < aiju> i for one welcome our new overlords
11:36 < xyproto> don't forget the sock gnomes, welcome them too
11:36 < xyproto> (the ones that steals single socks from the washing
machine)
11:36 -!- artefon [~thiago@189.59.186.130.dynamic.adsl.gvt.net.br] has joined
#go-nuts
11:36 -!- Project_2501 [~Marvin@82.84.90.169] has quit [Read error: Connection
reset by peer]
11:37 < hopso> Namegduf: I like that.
11:37 -!- Project_2501 [~Marvin@82.84.90.169] has joined #go-nuts
11:41 -!- artefon [~thiago@189.59.186.130.dynamic.adsl.gvt.net.br] has quit [Ping
timeout: 240 seconds]
11:44 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts
11:53 -!- artefon [~thiago@187.59.208.38] has joined #go-nuts
11:56 -!- femtoo [~femto@95-89-249-242-dynip.superkabel.de] has quit [Read error:
Connection reset by peer]
12:02 < exch> "closure needs too many variables; runtime will reject it." mm
What is the limit for that?
12:03 < dfc> exch: ohh, that is an interesting error
12:03 < dfc> got some sample code ?
12:04 < exch> nothing I can easily extract that will make sense without
context
12:04 < exch> it's just a closure defined inside a function.  it referenced
quite a lot of variables from the uoter function
12:04 < exch> 13 of em to be exact
12:05 < dfc> ok, lemmie see if I can knock something up
12:07 < exch> It seems 12 is the limit
12:08 < exch> http://pastie.org/1806817 here's a simple example
12:08 < dfc> http://pastie.org/1806819
12:08 < dfc> snap
12:08 < hopso> Is it good idea to base Packet type on bytes.Buffer or should
I just have bytes.Buffer field in the Packet type?
12:09 -!- dfc [~dfc@124-149-101-80.dyn.iinet.net.au] has quit [Quit: dfc]
12:11 -!- zerosanity [~josh@8.20.178.82] has joined #go-nuts
12:20 -!- katakuna [~pie@kjal.demon.co.uk] has quit [Ping timeout: 248 seconds]
12:20 -!- thiago__ [~thiago@187.59.187.85] has joined #go-nuts
12:20 -!- artefon [~thiago@187.59.208.38] has quit [Read error: Operation timed
out]
12:20 -!- thiago__ [~thiago@187.59.187.85] has quit [Read error: Connection reset
by peer]
12:24 -!- katakuna [~pie@kjal.demon.co.uk] has joined #go-nuts
12:38 -!- foocraft [~dsc@86.36.49.200] has quit [Read error: Operation timed out]
12:39 -!- foocraft [~dsc@86.36.49.200] has joined #go-nuts
12:42 -!- dfc [~dfc@124-149-101-80.dyn.iinet.net.au] has joined #go-nuts
12:53 -!- krolaw [~krolaw@203.100.208.229] has quit [Quit: krolaw]
12:53 -!- artefon [~thiago@dhcp55.usuarios.dcc.ufmg.br] has joined #go-nuts
12:56 -!- rlab [~Miranda@220-191-113-92.pool.ukrtel.net] has quit [Ping timeout:
240 seconds]
13:04 -!- dfc [~dfc@124-149-101-80.dyn.iinet.net.au] has quit [Quit: dfc]
13:05 -!- tav [~tav@92.7.142.193] has joined #go-nuts
13:06 -!- zerosanity [~josh@8.20.178.82] has quit [Remote host closed the
connection]
13:09 -!- pharris [~Adium@rhgw.opentext.com] has joined #go-nuts
13:10 < sebastia1> eexCeiC
13:10 < sebastia1> exit
13:10 < sebastia1> exit
13:10 -!- sebastia1 [~sebastian@188.114.142.217] has quit [Quit: Lost terminal]
13:13 -!- lmoura [~lauromour@186.212.246.40] has joined #go-nuts
13:14 -!- lmoura [~lauromour@186.212.246.40] has quit [Remote host closed the
connection]
13:16 -!- tvw [~tv@212.79.9.150] has joined #go-nuts
13:19 -!- niemeyer [~niemeyer@189-30-249-127.pltce701.dsl.brasiltelecom.net.br]
has joined #go-nuts
13:24 -!- rejb [~rejb@unaffiliated/rejb] has joined #go-nuts
13:25 -!- sebastia1 [~sebastian@188.114.142.217] has joined #go-nuts
13:29 -!- gregschlom [~quassel@118.68.205.177] has joined #go-nuts
13:29 -!- lmoura [~lauromour@186.215.206.130] has joined #go-nuts
13:34 -!- sebastia1 [~sebastian@188.114.142.217] has quit [Quit: Lost terminal]
13:35 -!- TheMue [~TheMue@p5DDF6C56.dip.t-dialin.net] has quit [Quit: TheMue]
13:36 -!- espeed [~espeed@63.246.231.57] has quit [Ping timeout: 240 seconds]
13:42 -!- lmoura [~lauromour@186.215.206.130] has quit [Remote host closed the
connection]
13:43 -!- angasule [~angasule@190.2.33.49] has joined #go-nuts
13:50 -!- Glasswalker
[~Glasswalk@CPE002369b3cd1a-CM00222d53f155.cpe.net.cable.rogers.com] has quit
[Ping timeout: 240 seconds]
13:52 -!- jyxent [~jyxent@129.128.191.96] has quit [Ping timeout: 260 seconds]
13:58 -!- dj2 [~dj2@216.16.242.254] has joined #go-nuts
13:59 -!- jyxent [~jyxent@129.128.191.96] has joined #go-nuts
14:10 -!- tvw [~tv@212.79.9.150] has quit [Ping timeout: 246 seconds]
14:17 -!- mikespook [~mikespook@116.22.54.68] has joined #go-nuts
14:21 -!- pharris [~Adium@rhgw.opentext.com] has quit [Quit: Leaving.]
14:24 -!- pharris [~Adium@rhgw.opentext.com] has joined #go-nuts
14:41 -!- ww [~ww@river.styx.org] has quit [Read error: Connection reset by peer]
14:50 -!- mikespook [~mikespook@116.22.54.68] has quit [Quit: Leaving.]
14:53 -!- Venom_X [~pjacobs@75-27-133-72.lightspeed.austtx.sbcglobal.net] has
joined #go-nuts
14:55 -!- pphalen [~pphalen@66.92.11.149] has joined #go-nuts
14:57 -!- tvw [~tv@e176009205.adsl.alicedsl.de] has joined #go-nuts
14:58 -!- fabled [~fabled@83.145.235.194] has quit [Quit: Ex-Chat]
15:02 -!- crodjer [~rohanjain@203.110.240.205] has joined #go-nuts
15:05 < nsf> http://ompldr.org/vOGJtMA/2011-04-18-210654_748x466_scrot.png
15:05 < nsf> :P
15:06 < nsf> does anyone know if it's possible to implement that kind of
thing in a single pass?: a graph with two types of nodes, I need to find all the
loops and to know if each loop contains only nodes of a single type
15:07 < nsf> currently I use stack for backtracing
15:09 < fzzbt> .crl?
15:09 < nsf> crawl :)
15:10 < nsf> well, I also did an interesting thing, looks like Go checks for
initialization loops only when deals with variable initializers
15:10 < nsf> I did it just everywhere :\
15:10 < nsf> hm..
15:10 -!- femtoo [~femto@95-89-249-242-dynip.superkabel.de] has joined #go-nuts
15:11 < exch> recursive compilation..  I'm having a similar problem in my
script compiler
15:12 < skelterjohn> you can find cycles in one pass
15:12 < nsf> cycles yes
15:12 < nsf> it's easy
15:12 < skelterjohn> right
15:12 < nsf> but the tricky part is:
15:12 < nsf> cycles where only functions in a loop are ok
15:12 < skelterjohn> i don't think seeing if the cycles are uniform of type
is easy (read: tractable)
15:12 < nsf> cycles where at least one variable in a loop are not ok
15:13 < skelterjohn> oh if it's only one type that you watch out for
15:13 < skelterjohn> then that's easy
15:13 < skelterjohn> you just stop your cycle detector if it sees a var
15:13 < skelterjohn> or anything other than a func
15:13 < nsf> but the tricky part (again), I don't have a separate cycle
detector :)
15:13 < nsf> I just do that all in a type checking phase
15:13 < nsf> :D
15:14 < skelterjohn> here's an idea
15:14 < skelterjohn> for each node you have, keep track of the number of
non-function parents
15:14 < skelterjohn> then if you complete a cycle when connecting two nodes
with the same number of non-fucntion parents, it must be a function-only cycle
15:15 < skelterjohn> otherwise the last node and the first node would have a
different number
15:15 < nsf> skelterjohn: I think using stack and backtracing is a better
solution
15:15 < nsf> because it also gives error messages like that
15:15 < skelterjohn> you asked for a single pass alg *shrug*
15:15 < nsf> ah, well, yes :)
15:15 < nsf> thanks :D
15:15 < skelterjohn> my pleasure
15:16 < xyproto> I have a program that creates an array of values that I
wish to see as an image.  What's the easiest way to see the result?  Save as png?
Save as raw?
15:16 < nsf> I did it all in a type checking phase, because it's ugly to
have two variants of cycle detector
15:16 < nsf> e.g.  you can't avoid simple cycle detector in a type checker
15:16 < skelterjohn> xyproto: save as something :)
15:16 < nsf> like: var a = b; var b = a;
15:17 < nsf> and then you have a complex cycle detector :)
15:17 < nsf> I did it using one cycle detector
15:17 < nsf> complicated a bit
15:17 < nsf> the only problem here
15:18 < xyproto> skelterjohn: found a png example, problem solved :)
http://groups.google.com/group/golang-nuts/browse_thread/thread/4f132bffada0c9db
15:18 < nsf> is that cycle doesn't have a beginning or an end
15:18 < nsf> ah..  whatever, problem solved
15:19 < nsf> xyproto: use gnuplot or something
15:19 < nsf> export the data as CSV
15:20 < xyproto> nsf: csv is a good suggestion as well.  However, the png
package seems pretty simple and handy.
15:20 < skelterjohn> </3 gnuplot
15:21 < xyproto> skelterjohn: heart broken smiley?
15:21 < skelterjohn> yes
15:21 < xyproto> skelterjohn: had a bad relationship with gnuplot?
15:21 < skelterjohn> no, i just never learned how to use it
15:21 < skelterjohn> and it seems weird and complicated
15:24 -!- piranha [~piranha@D57D1AB3.static.ziggozakelijk.nl] has quit [Quit:
Computer has gone to sleep.]
15:24 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Quit:
skelterjohn]
15:26 < plexdev> http://is.gd/YnS1Ba by [Quan Yong Zhai] in go/src/pkg/net/
-- net: fix dialgoogle_test.go
15:26 -!- Scorchin [~Scorchin@host86-160-234-145.range86-160.btcentralplus.com]
has quit [Quit: Scorchin]
15:27 < xyproto> woo, working png-creating program :)
http://go.pastie.org/1807489
15:28 -!- Glasswalker
[~Glasswalk@CPE005056ad47df-CM001225e00d58.cpe.net.cable.rogers.com] has joined
#go-nuts
15:42 -!- jbooth1 [~jay@209.249.216.2] has joined #go-nuts
15:43 -!- awidegreen [~quassel@c-cfc5e555.08-2-73746f39.cust.bredbandsbolaget.se]
has joined #go-nuts
15:45 -!- shvntr [~shvntr@113.84.145.224] has quit [Quit: leaving]
15:50 < nsf> omg
15:51 < nsf> clang++ has just compiled this:
15:51 < nsf> func_sdecl_t *fsd = static_cast<func_sdecl_t*>(fsd);
15:51 < nsf> how is that possible?  :)
15:51 < aiju> what does it even do?
15:51 < nsf> no 'fsd's in outer scopes
15:51 < aiju> haha
15:51 < nsf> aiju: I'm interested in that too
15:52 < nsf> let's see what gcc thinks
15:52 < aiju> g++ pukes all over your face
15:52 < nsf> ‘fsd’ may be used uninitialized in this function
15:52 < nsf> at least it says something!
15:53 < nsf> but I really don't understand that
15:54 < nsf> I thought that's what static typing for
15:54 -!- femtoo [~femto@95-89-249-242-dynip.superkabel.de] has quit [Read error:
Connection reset by peer]
15:54 < nsf> for catching my mistakes
15:54 < nsf> :\
15:55 < aiju> there is no news in C++ being completely fucked up
15:56 < nsf> btw, I use -Wall
15:57 -!- JusticeFries [~JusticeFr@173-8-247-218-Colorado.hfc.comcastbusiness.net]
has joined #go-nuts
15:58 < nsf> http://ompldr.org/vOGJtbg/2011-04-18-220330_644x340_scrot.png
15:58 < nsf> I mean seriously
15:58 < nsf> wtf is that
15:58 < nsf> I didn't know it's valid
15:58 < nsf> :)
15:58 < nsf> no warning with -Wall
15:58 < aiju> gcc allows it, too
15:58 < nsf> yeah, but gcc at least tells about uninitalized value
15:58 < aiju> not here
15:58 < nsf> hehe
15:58 < nsf> -Wall?
15:58 < aiju> aiju@toshiba ~/tmp $ gcc test.c -Wall -ansi -pedantic
15:59 < nsf> interesting
15:59 < aiju> no warnings, no errors
15:59 < xyproto> abc it's what it is, and that number is -1215468656, just
like the meaning of life is 42
15:59 -!- JusticeFries [~JusticeFr@173-8-247-218-Colorado.hfc.comcastbusiness.net]
has quit [Remote host closed the connection]
15:59 < aiju> hahaha
15:59 < fzzbt> what the heck?  int abc = abc;
15:59 < nsf> xyproto: :D
15:59 < nsf> fzzbt: exactly
15:59 < aiju> but it's -1216110604
15:59 < aiju> here!
15:59 -!- JusticeFries [~JusticeFr@173-8-247-218-Colorado.hfc.comcastbusiness.net]
has joined #go-nuts
15:59 < xyproto> aiju: it's just a glitch in the, uhm, matrix
15:59 < aiju> wow what the fuck
15:59 < aiju> even kencc allows it
15:59 < xyproto> aiju: every time you get a deja vu, the magical number
changes
16:00 < xyproto> :P
16:00 < xyproto> (it's really strange, I agree)
16:00 < aiju> of course, Go doesn't allow ir
16:00 < aiju> *it
16:00 < aiju> this is the weirdest C feature ever
16:01 < aiju> even more weird than trigraphs and 4[array]
16:01 < nsf> as well as crawl
16:01 < nsf> haha
16:01 < aiju> i really get a different number every time i run it
16:01 < aiju> now that's strange
16:02 < aiju> must be some new Linux feature
16:02 -!- piranha [~piranha@5ED43A0B.cm-7-5a.dynamic.ziggo.nl] has joined #go-nuts
16:02 -!- iant1 [~iant@216.239.45.130] has joined #go-nuts
16:03 < xyproto> "look what I can do!" :P A gif animation, made only with Go
(and converted from a series of .png to .gif)
http://roboticoverlords.org/images/board.gif
16:03 < nsf> aiju: k3wl linux security stuff has features like that
16:03 < nsf> e.g.  shuffling stuff in memory in order to minimize
controllable buffer overflow exploits
16:04 -!- iant [~iant@adsl-71-133-8-30.dsl.pltn13.pacbell.net] has quit [Ping
timeout: 240 seconds]
16:04 < aiju> oh yeah
16:04 -!- jyxent [~jyxent@129.128.191.96] has quit [Ping timeout: 276 seconds]
16:04 < aiju> security risk randomization
16:04 < nsf> but I don't think it's enabled by default
16:04 < nsf> but well, depends on distro
16:04 < nsf> etc.
16:04 < aiju> i don't know why anyone would EVER believe that address space
randomization helps in any way
16:05 -!- virtualsue [~chatzilla@nat/cisco/x-cpvdkgivccorrhtt] has quit [Ping
timeout: 260 seconds]
16:05 < aiju> because syscalls are not fucking randomized
16:05 < nsf> :)
16:05 < aiju> and PIC is not a myth
16:05 < taruti> stupid lack of generics :(
16:05 < aiju> i should implement syscall randomization, now that's
something!
16:05 < nsf> I'm not a big fan of security
16:06 < aiju> i'm not a big fan of placebos
16:06 < nsf> the weakest element of the security is human being anyway
16:06 -!- jyxent [~jyxent@129.128.191.96] has joined #go-nuts
16:07 < nsf> that's what we call thermorectal brute force method here in
russia
16:07 < nsf> :D
16:07 < aiju> if hackers were a bit more social there wouldn't be any
exploits, because it's always easier to fuck with humans
16:07 < aiju> you don't even need a soldering iron
16:07 < nsf> haha
16:07 < aiju> if you fake the right shit, people will give you everything
you want
16:07 < aiju> i mean, fucking phishing works
16:08 < nsf> it does
16:08 < mpl> how do you fuck phishing?
16:08 < aiju> hhaha
16:08 < taruti> any ideas how to type: func (p *Parser) NPrefixed(int n,
func (*Parser)(*<T>)*Parser, *[<T>]), without generics?
16:09 < nsf> omg
16:09 < nsf> taruti: trying to think in terms of generics without having
them is a bad idea
16:10 < nsf> I mean rethinking what you're trying to do is a way to go
16:10 < taruti> my thinking is mostly in Haskell :D
16:10 < nsf> maybe if you really want code generation, writing a code
generator would work
16:10 < exch> there's your mistake, right there :p
16:10 < aiju> then you're fucked
16:11 < taruti> but any ideas using interface{} while avoiding reflection?
16:11 < nsf> uhm, you can't avoid reflection using interface
16:11 < nsf> it uses reflection :)
16:12 < nsf> any interface
16:12 < taruti> nsf: not the reflect package which eats all memory and
changes interface every second week.
16:12 < nsf> :D
16:12 < aiju> haha
16:12 < aiju> you mispelled "day"
16:12 < nsf> haha
16:13 < aiju> but hey you can always have gofix fuck up your code!
16:13 -!- virtualsue [~chatzilla@nat/cisco/x-avgzhznyxgyfekmu] has joined #go-nuts
16:16 -!- mode/#go-nuts [+v iant] by ChanServ
16:17 < kimelto> no need for gofix, I can do that myself ;p
16:19 < nsf> no, gofix is magic
16:19 < nsf> I like it
16:19 < nsf> it fixed gocode
16:19 < nsf> after 'reflect' package update
16:25 -!- hcatlin [~hcatlin@pdpc/supporter/professional/hcatlin] has joined
#go-nuts
16:31 -!- dfr|work [~dfr|work@nat/google/x-tmwhezksoorawfaq] has quit [Quit:
Leaving]
16:31 -!- dfr|work [~dfr|work@nat/google/x-whwoczdtvgxrytqt] has joined #go-nuts
16:39 -!- gregschlom [~quassel@118.68.205.177] has quit [Remote host closed the
connection]
16:42 -!- wrtp [~rog@92.17.70.99] has joined #go-nuts
16:45 -!- fluffle [~camelid@s.pl0rt.org] has quit [Read error: Operation timed
out]
16:47 -!- aconran__ [~aconran-o@38.104.129.126] has joined #go-nuts
16:47 -!- aconran_ [~aconran-o@38.104.129.126] has quit [Read error: Connection
reset by peer]
16:49 -!- fluffle [~camelid@s.pl0rt.org] has joined #go-nuts
16:49 -!- dropdriv1 [~dropdrive@cpe-72-227-159-70.nyc.res.rr.com] has joined
#go-nuts
16:53 -!- rejb [~rejb@unaffiliated/rejb] has quit [Ping timeout: 246 seconds]
16:53 -!- dropdrive [~dropdrive@cpe-72-227-159-70.nyc.res.rr.com] has quit [Ping
timeout: 246 seconds]
16:54 -!- xyproto [~alexander@77.40.159.131] has quit [Read error: Connection
reset by peer]
16:56 -!- rejb [~rejb@unaffiliated/rejb] has joined #go-nuts
16:56 -!- arun_ [~arun@unaffiliated/sindian] has joined #go-nuts
17:00 < plexdev> http://is.gd/U1CN4B by [Rob Pike] in go/test/bench/ --
test/bench: update timings; moving to new machine.
17:11 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts
17:12 -!- Fish [~Fish@9fans.fr] has joined #go-nuts
17:16 -!- Scorchin [~Scorchin@host86-160-234-145.range86-160.btcentralplus.com]
has joined #go-nuts
17:23 -!- firwen [~firwen@gex01-1-78-234-55-225.fbx.proxad.net] has joined
#go-nuts
17:23 -!- dropdriv1 [~dropdrive@cpe-72-227-159-70.nyc.res.rr.com] has quit [Quit:
leaving]
17:24 -!- dropdrive [~dropdrive@cpe-72-227-159-70.nyc.res.rr.com] has joined
#go-nuts
17:32 < plexdev> http://is.gd/9JN0U2 by [Russ Cox] in 2 subdirs of go/ --
gc: fix complex move again
17:35 -!- skelterjohn [~jasmuth@lawn-gw.rutgers.edu] has joined #go-nuts
17:36 -!- zimsim [~simon@87.72.77.195] has quit [Ping timeout: 248 seconds]
17:38 -!- artefon [~thiago@dhcp55.usuarios.dcc.ufmg.br] has quit [Quit: bye]
17:38 -!- virtualsue [~chatzilla@nat/cisco/x-avgzhznyxgyfekmu] has quit [Quit:
ChatZilla 0.9.86.1 [Firefox 4.0/20110318052756]]
17:40 -!- r_linux [~r_linux@189.38.220.35] has joined #go-nuts
17:41 -!- [kevlar] [~kevlar@70-90-168-189-SFBACalifornia.hfc.comcastbusiness.net]
has quit [Quit: This computer has gone to sleep]
17:46 -!- tobik [~tobik@p549FE928.dip.t-dialin.net] has joined #go-nuts
17:50 -!- hcatlin [~hcatlin@pdpc/supporter/professional/hcatlin] has quit [Quit:
peace in teh middle east]
17:51 -!- zimsim [~simon@87.72.77.195] has joined #go-nuts
17:53 -!- keithcascio [~keithcasc@nat/google/x-hxklwtlhmkprirov] has joined
#go-nuts
17:55 -!- huin [~huin@91.84.99.134] has joined #go-nuts
17:57 -!- franksalim [~franksali@108-65-76-174.lightspeed.sntcca.sbcglobal.net]
has quit [Read error: Connection reset by peer]
17:57 -!- franksalim [~franksali@99-123-6-19.lightspeed.sntcca.sbcglobal.net] has
joined #go-nuts
17:59 -!- fmoo [~Adium@c-76-102-41-101.hsd1.ca.comcast.net] has joined #go-nuts
18:00 -!- franksalim_ [~franksali@99-123-6-19.lightspeed.sntcca.sbcglobal.net] has
joined #go-nuts
18:01 -!- franksalim_ [~franksali@99-123-6-19.lightspeed.sntcca.sbcglobal.net] has
quit [Read error: Connection reset by peer]
18:02 -!- franksalim_ [~franksali@108-65-76-174.lightspeed.sntcca.sbcglobal.net]
has joined #go-nuts
18:02 -!- wrtp [~rog@92.17.70.99] has quit [Quit: wrtp]
18:02 -!- Project-2501 [~Marvin@82.84.86.178] has joined #go-nuts
18:03 -!- franksalim [~franksali@99-123-6-19.lightspeed.sntcca.sbcglobal.net] has
quit [Ping timeout: 252 seconds]
18:03 -!- tvw [~tv@e176009205.adsl.alicedsl.de] has quit [Read error: Connection
reset by peer]
18:04 < plexdev> http://is.gd/UBdgh1 by [Rob Pike] in 2 subdirs of go/doc/
-- tutorial: modernize the definition and use of Open.
18:04 < plexdev> http://is.gd/CwlQXj by [Brad Fitzpatrick] in
go/src/pkg/mime/ -- mime: RFC 2231 continuation / non-ASCII support
18:04 -!- franksalim__ [~franksali@99-123-6-19.lightspeed.sntcca.sbcglobal.net]
has joined #go-nuts
18:05 -!- skelterjohn_ [~jasmuth@lawn-gw.rutgers.edu] has joined #go-nuts
18:05 -!- skelterjohn [~jasmuth@lawn-gw.rutgers.edu] has quit [Read error:
Connection reset by peer]
18:05 -!- TheMue [~TheMue@p5DDF6C56.dip.t-dialin.net] has joined #go-nuts
18:06 -!- Project_2501 [~Marvin@82.84.90.169] has quit [Ping timeout: 264 seconds]
18:06 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.4]
18:07 -!- imsplitbit [~imsplitbi@64.39.4.132] has joined #go-nuts
18:08 -!- franksalim_ [~franksali@108-65-76-174.lightspeed.sntcca.sbcglobal.net]
has quit [Ping timeout: 258 seconds]
18:08 -!- franksalim [~franksali@108-65-76-174.lightspeed.sntcca.sbcglobal.net]
has joined #go-nuts
18:08 < exch> wahey.  recursion problem in compiler solved \o/
18:08 < exch> I deserve a cookie for this
18:09 < uriel> exch: congrats
18:09 < exch> thanks
18:09 -!- m4dh4tt3r [~Adium@c-69-181-223-245.hsd1.ca.comcast.net] has joined
#go-nuts
18:10 < uriel> m4dh4tt3r: hey, you around?
18:10 < exch> "def foo ( -- ) [ [ foo ] ]" That bit of code caused me
significant amounts of headache.  And as usual, the fix was shamefully trivial
18:10 -!- artefon [~thiago@187.59.187.85] has joined #go-nuts
18:10 -!- franksalim__ [~franksali@99-123-6-19.lightspeed.sntcca.sbcglobal.net]
has quit [Ping timeout: 248 seconds]
18:11 -!- virtualsue [~chatzilla@nat/cisco/x-enbfwbxtakcxeutd] has joined #go-nuts
18:17 -!- firwen [~firwen@gex01-1-78-234-55-225.fbx.proxad.net] has quit [Ping
timeout: 248 seconds]
18:17 -!- firwen [~firwen@gex01-1-78-234-55-225.fbx.proxad.net] has joined
#go-nuts
18:20 < skelterjohn> is that your bizarre stack-based language?
18:21 < exch> yes
18:21 < plexdev> http://is.gd/zvVSWs by [Brad Fitzpatrick] in
go/src/pkg/mime/ -- mime: add a TODO, fix the format of an error
18:21 < exch> not so bizar really.  It's a slightly modified version of
Factor
18:21 < exch> or rather, a subset thereof at this point
18:21 < skelterjohn> that doesn't make it any less bizarre :)
18:22 < exch> hehe I suppose it's an acquired taste
18:22 < exch> I love it
18:23 < skelterjohn> i don't mean this in an offensive way, but what use is
this sort of language?
18:23 < skelterjohn> what kind of tasks does it make easier, or more
efficient, or better in some way?
18:24 < exch> it's a fair question.  Like functional languages, it is very
suitable for manipulation of large data structures
18:25 < exch> but as opposed to functional langs, it lacks (the (annoying
(scoping (requirement))))
18:26 < skelterjohn> not all functional languages are LISP variants
18:26 < m4dh4tt3r> uriel: what's up?
18:27 < exch> { "#fff" "123" "321" } [ "#" head?  not ] filter [
string>int ] map 0 [ + ] reduce println
18:27 < exch> to me, that is just beautiful :)
18:28 < skelterjohn> :\
18:29 -!- tobik [~tobik@p549FE928.dip.t-dialin.net] has quit [Ping timeout: 240
seconds]
18:29 < skelterjohn> i don't like it when code is more of a puzzle than a
set of instructions
18:29 < exch> It always is if you don't understand the language it's written
in
18:30 < exch> The added trick here is that it's a very different way to
write code than imperative languages.  You need a different way of thinking
18:30 < exch> There's nothing puzzly about that code for me really
18:30 < skelterjohn> the reason imperative languages are the most popular is
(i believe) because they model human thought most closely
18:30 -!- tobik [~tobik@p4FCBFC03.dip.t-dialin.net] has joined #go-nuts
18:31 < skelterjohn> you do this, then you do this, then you do this
18:31 < aiju> exch: is that factor?
18:31 < exch> that's how you should read that code
18:31 < exch> aiju: http://factorcode.org
18:31 < aiju> yeah, i know factor
18:32 < aiju> (know as in "i've heard of it")
18:32 < exch> aiju: ah.  yes it's a script lang I'm implementing in Go. It's
a slightly modified subset of Factor
18:32 < aiju> ah ic
18:32 < aiju> `0:,/"
",',/"\n",'$,/({x,'}'X)@'{[x]300_{[y]x*y*1-y}\[400;0.5]}'X
18:32 < exch> skelterjohn: a concatenative language like factor has no
operator precedence for instance.  Everything that happens, happens exactly in the
order the code is written in
18:32 < aiju> *that* is just beautiful
18:33 < exch> hehe that reminds me of perl :p
18:33 < skelterjohn> it's probably K
18:34 < skelterjohn> the language created with conciseness as the only goal
18:34 < skelterjohn> proof that just because a thing isn't good doesn't mean
that it's good in the extreme
18:35 < aiju> http://aiju.de/code/k/tictactoe
18:35 < KirkMcDonald> I always liked RPN calculators.
18:36 < skelterjohn> i wonder if i should raise my kids to think of math in
postfix notation
18:36 < skelterjohn> (no kids, as yet)
18:36 < exch> better work on that first then :p
18:37 < skelterjohn> wife says i need a job first
18:37 < skelterjohn> heh
18:37 < skelterjohn> blah blah blah
18:37 < aiju> just poke holes in condoms
18:37 < exch> hehe
18:37 -!- zozoR [~Morten@56344480.rev.stofanet.dk] has quit [Ping timeout: 246
seconds]
18:37 < exch> at least you have a wife.  that's always a good start :p
18:37 < skelterjohn> if i did that we'd be limited to one child, because
she'd cut offsomething important
18:38 < aiju> skelterjohn: her arteries?
18:38 < skelterjohn> something of mine
18:38 < plexdev> http://is.gd/EulKmS by [Russ Cox] in 2 subdirs of
go/src/pkg/ -- reflect: more efficient; cannot Set result of NewValue anymore
18:38 < aiju> your arteries?  ;P
18:38 < plexdev> http://is.gd/mEdK8s by [Russ Cox] in 8 subdirs of go/src/
-- changes for more restricted reflect.SetValue
18:38 < skelterjohn> probably not my arteries
18:41 -!- Adys [~Adys@unaffiliated/adys] has quit [Quit: Quit]
18:43 -!- zozoR [~Morten@90.185.81.29] has joined #go-nuts
18:46 -!- bortzmeyer [~stephane@lan31-2-82-224-72-72.fbx.proxad.net] has joined
#go-nuts
18:51 -!- niemeyer [~niemeyer@189-30-249-127.pltce701.dsl.brasiltelecom.net.br]
has quit [Ping timeout: 240 seconds]
18:53 -!- boscop [~boscop@f055057242.adsl.alicedsl.de] has quit [Read error:
Connection reset by peer]
18:54 < bortzmeyer> If I have an array of chan, is there a way to select on
all without writing one case per array element?
18:54 -!- boscop [~boscop@f055057242.adsl.alicedsl.de] has joined #go-nuts
18:55 <+iant> bortzmeyer: no
18:56 < huin> short of making a goroutine per element then feeding to a
single channel...
18:56 < huin> which may or may not be decadent :)
18:56 < bortzmeyer> iant: my solution, until now, was to preprocess the
source to produce automatically one case per element (so I can parametrize the
size of the array)
18:57 -!- zozoR [~Morten@90.185.81.29] has quit [Read error: Connection reset by
peer]
18:57 -!- niemeyer [~niemeyer@189.27.145.95.dynamic.adsl.gvt.net.br] has joined
#go-nuts
19:00 -!- skelterjohn [~jasmuth@lawn-gw.rutgers.edu] has quit [Quit: skelterjohn]
19:04 -!- skelterjohn [~jasmuth@lawn-gw.rutgers.edu] has joined #go-nuts
19:04 < exch> Can the go compiler generate a listing of
constants/functions/etc which are never called/used?
19:05 -!- skelterjohn_ [~jasmuth@lawn-gw.rutgers.edu] has joined #go-nuts
19:05 -!- skelterjohn [~jasmuth@lawn-gw.rutgers.edu] has quit [Read error:
Connection reset by peer]
19:05 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts
19:08 < skelterjohn> it would be easy to do that with source analysis
19:08 -!- boscop [~boscop@f055057242.adsl.alicedsl.de] has quit [Ping timeout: 246
seconds]
19:08 < skelterjohn> i don't know if anything in the compiler toolkit will
do that for you
19:08 < exch> it already does that for vars
19:08 < exch> not global ones though
19:08 < skelterjohn> not globals
19:08 < skelterjohn> right
19:08 -!- itrekkie [~itrekkie@ip72-211-130-204.tc.ph.cox.net] has quit
[Disconnected by services]
19:09 < skelterjohn> because they could be used by other packages
19:09 < aiju> you can simply write an awk script orsomething ;P
19:09 < huin> complicated :(
19:09 < skelterjohn> aiju: can awk do Go type analysis?  =p
19:09 < huin> i'd probably use the AST
19:09 < aiju> depending on how consistent your style is
19:09 < exch> I roll with gofmt
19:09 < aiju> skelterjohn: i find C functions with '^func' because i always
have the names at a beginning of a line
19:10 < skelterjohn> if you use rog-go.googlecode.com/hg/exp/go/types with
AST this is very easy
19:10 < skelterjohn> aiju: not sure about relevance
19:10 < aiju> well, finding variables
19:11 < aiju> global variables start with var
19:11 < skelterjohn> i interpreted exch's question as seeing if a particular
function is ever called in the source set
19:11 < KirkMcDonald> I used to format my Go code like that, before they
made the semicolons optional and mandated certain formatting choices.
19:11 < exch> skelterjohn: yes that's what I intended.  Also for constants
ever being used
19:11 < exch> it's only useful for package-local stuff though
19:11 < skelterjohn> right - easy to do with wrtp's type package and go/ast
19:11 < skelterjohn> no - you can do it for the whole source tree :)
19:11 < KirkMcDonald> func Foo\n(arg, arg, arg T)\n(R1, R2)
19:11 < huin> [tangent] one thing that i've wondered about Go style is how
to avoid long lines in function definition line
19:12 -!- boscop [~boscop@f055057242.adsl.alicedsl.de] has joined #go-nuts
19:12 < KirkMcDonald> At least, when the function parameter list was
particularly long, I'd do that.
19:12 < KirkMcDonald> Most of the time I left it on a single line.
19:12 < huin> does gofmt change that?
19:12 < KirkMcDonald> I forget.
19:12 < skelterjohn> if you do that, go will insert semicolons after func
Foo\n
19:13 < KirkMcDonald> Right.
19:13 -!- bortzmeyer [~stephane@lan31-2-82-224-72-72.fbx.proxad.net] has quit
[Ping timeout: 246 seconds]
19:13 < KirkMcDonald> I had to stop when they made the big semicolon change.
19:14 < skelterjohn> i think you could do func Foo (\n param1, \n param2, \n
) etc
19:14 < exch> does this work?: func foo(\narg1, arg2) (\nret1, ret2)
19:14 < skelterjohn> :)
19:15 < skelterjohn> yeah that works fine (just tested)
19:15 < huin> how ugly is it?  :)
19:16 < skelterjohn> it could look better
19:16 < huin> and does gofmt fudge about with it?
19:16 < skelterjohn> i'm sure gofmt would leave it alone
19:16 < skelterjohn> gofmt doesn't merge lines
19:16 < huin> dunno, i've seen it meddle with things like that
19:16 < huin> or remove indent or something
19:16 < huin> i forget
19:16 < KirkMcDonald> I forget, does Go have line continuations?
19:16 < aiju> yeah
19:17 < skelterjohn> what's a line continuation?
19:17 < KirkMcDonald> skelterjohn: backslash-newline
19:17 < aiju> just end the line with the right thing ;P
19:17 -!- aho [~nya@fuld-590c62a8.pool.mediaWays.net] has joined #go-nuts
19:17 < skelterjohn> like a \?
19:17 < skelterjohn> so, no arbitrary line continuations
19:17 < skelterjohn> just have to end the line with something that isn't an
ident i think
19:18 < exch> gofmt removes the newlines in foo(\n arg1, arg2)
19:18 < huin> :(
19:18 < skelterjohn> oh, gofmt messes with it heavily
19:18 < skelterjohn> laaaaame
19:19 -!- zozoR [~Morten@90.185.81.29] has joined #go-nuts
19:19 < huin> yeah, thought that's what happened to me
19:19 < huin> so i'm stuck with long lines
19:19 < skelterjohn> http://pastebin.com/quuWsnfi
19:19 -!- foocraft [~dsc@86.36.49.200] has quit [Remote host closed the
connection]
19:20 < KirkMcDonald> I still maintain that implementing the optional
semicolons as a lexical hack may not have been the best solution.
19:20 < huin> arguably, yes
19:20 < nsf> KirkMcDonald: I think optional semicolon insertion should be
feature
19:20 < huin> i like the lack of visual noise, but it does have this nasty
sideeffect
19:21 < nsf> like: I don't want to write semicolons, compiler insert them
for me
19:21 < skelterjohn> ew no way - either it's mandatory or it doesn't exist.
can't be optional.
19:21 < nsf> but not forcing this
19:21 < KirkMcDonald> Optional semicolons are good!  That is not what I
object to.
19:21 < Namegduf> Optional: The worst of both, best of neither
19:21 < nsf> I think (especially in Go)
19:21 < Namegduf> Also they are "optional" if you don't use gofmt
19:21 < nsf> it's perfectly possible to do detection
19:21 < aiju> KirkMcDonald: i think adding newline to the grammar is insane
19:21 < nsf> whether user wants autosemis or not
19:21 < KirkMcDonald> It would be considerably more complicated to implement
them in the grammar, I agree.
19:21 < Namegduf> No more or less than any other stylistic constraint.
19:22 -!- sebastia1 [~sebastian@188.114.142.217] has joined #go-nuts
19:22 < nsf> and frankly
19:22 < nsf> in last few weeks I've written like 6-7k lines of C++ code
19:22 < nsf> I don't even notice semicolons anymore
19:22 -!- artefon [~thiago@187.59.187.85] has quit [Read error: Connection reset
by peer]
19:22 < nsf> :)
19:22 < aiju> now you start spewing classes
19:22 < KirkMcDonald> I do like Python's rules with respect to separating
statements.
19:23 < aiju> i never liked python rules
19:23 < Namegduf> Well, can't have it both ways.
19:23 < KirkMcDonald> And this is leaving aside Python's use of indentation
as a block delimiter.
19:23 < skelterjohn> aiju: you think K code looks good.  sort of invalidates
anything else you could say O:-)
19:23 < Namegduf> Either you have semicolons, you have a lexer hack with
very simple rules, or you have it be part of the grammar.
19:23 < aiju> skelterjohn: haha
19:23 -!- boscop [~boscop@f055057242.adsl.alicedsl.de] has quit [Read error:
Connection reset by peer]
19:24 -!- boscop [~boscop@f055057242.adsl.alicedsl.de] has joined #go-nuts
19:24 < KirkMcDonald> Python essentially implements it as a lexical trick,
but one that is somewhat smarter than what Go does.
19:25 < nsf> hacks, tricks, what else
19:25 < nsf> can we simply have semicolons?  lol
19:25 < KirkMcDonald>
http://docs.python.org/reference/lexical_analysis.html#line-structure
19:25 < nsf> :)
19:25 < aiju> i want kitties
19:25 < KirkMcDonald> So there are "physical" lines, which are the things
literally separated by newline characters.
19:25 < aiju> is there a unicode symbol for cat?  use that one as a
statement separator
19:25 < Namegduf> KirkMcDonald: The reference to the syntax suggests it is
not lexical.
19:26 < KirkMcDonald> Namegduf: That reference is referring to something
else.
19:26 -!- boscop [~boscop@f055057242.adsl.alicedsl.de] has quit [Read error:
Connection reset by peer]
19:26 < KirkMcDonald> Let me explain.
19:27 < KirkMcDonald> In addition to physical lines, there are logical
lines, which consist of one or more physical lines, joined by certain rules.
19:27 < aiju> python's thing is just like Go, it seems to me
19:27 < aiju> except maybe with different rules
19:27 < aiju> and more fancy terminology
19:27 < nsf> aiju: lol, then it's different :)
19:27 < nsf> "different rules"
19:27 < Namegduf> Python's thing looks like Go's thing if you rename logical
line to "statement" and then say "but parens cause line joining" without saying
how or why.
19:27 < KirkMcDonald> The rules are different indeed.
19:27 < aiju> nsf: well, it's not something entirely different
19:27 < nsf> what else could be different?
19:28 < nsf> :D
19:28 < aiju> nsf: the underlying method
19:28 -!- boscop [~boscop@f055057242.adsl.alicedsl.de] has joined #go-nuts
19:28 < exch> there is no unicode kitten :< How is this possible??
19:28 < KirkMcDonald> Also, Python maintains the distinction between a
newline and a semicolon.
19:28 < KirkMcDonald> It does not insert semicolons in place of newlines.
19:28 < skelterjohn> didn't know that semicolons existed in python
19:28 < aiju> KirkMcDonald: oh, kay
19:29 < KirkMcDonald> Python, somewhat like Go, distinguishes between simple
and compound statements.
19:29 < Namegduf> That's because newlines which would generate a semicolon
instead are passed onto the parser.
19:29 < KirkMcDonald> A compound statement is a statement which has a suite
of code associated with it.
19:29 < KirkMcDonald> So, if, while, def, and so on are compound statements.
19:30 < KirkMcDonald> return, continue, assignment, and so on are simple
statements.
19:30 -!- boscop_ [~boscop@f055057242.adsl.alicedsl.de] has joined #go-nuts
19:30 -!- boscop [~boscop@f055057242.adsl.alicedsl.de] has quit [Read error:
Connection reset by peer]
19:30 < KirkMcDonald> Semicolons in Python permit you to place multiple
simple statements on a single line.
19:30 < aiju> do it like LISP
19:31 < KirkMcDonald> print 'a'; print 'b'; print 'c' # valid Python code
19:31 < aiju> problem solved
19:31 < nsf> semicolons, please
19:31 < nsf> :P
19:31 < aiju> or do it like Haskell, in which case, FUCK
19:31 < Namegduf> You mean "Do all of the above"?
19:31 < aiju> haha
19:32 < aiju> i don't want to know what Haskell does
19:32 < KirkMcDonald> You can also put the suite of a compound statement on
the same line as the initial clause, if that suite consists only of simple
statements: if foo: print 'blah'; print 'blargh' # also valid
19:32 < nsf> I bet no one ships editor with a compiler that inserts
semicolons automatically
19:32 < nsf> how about that?
19:32 < nsf> :D
19:32 < aiju> i hate people whining about syntax, but i make an exception
for Haskell ;P
19:32 < Namegduf> Haskell can be Python-like or C like
19:32 < Namegduf> Depending on the mood of the programmer
19:32 < Namegduf> You can use indentation or { }
19:32 < skelterjohn> nsf: because programmers don't like coding in WYSIWYG
environments
19:33 < aiju> nsf: i'm sure there is an editor which inserts semicolons
automatically
19:33 < nsf> :D
19:33 < aiju> after all, some editors insert braces
19:33 < skelterjohn> i hate that
19:33 < Namegduf> nsf: Doing anything automatically with C/C++ code is a
recipe for pain
19:33 < nsf> :D
19:33 < aiju> s/with .* code//
19:33 < KirkMcDonald> The important thing here is that, in both of these
cases, these lines are a single logical line, terminated with a NEWLINE token.
19:34 < Namegduf> Yeah, yeah.
19:34 < KirkMcDonald>
http://docs.python.org/reference/compound_stmts.html#grammar-token-suite
19:34 < Namegduf> Python works like Go, but it emits NEWLINE tokens where Go
would inject a semicolon token, and has paren counting on a single line.
19:35 < aiju> do it like javascript
19:35 < aiju> make the rules so complicated that everyone just sets
semicolons
19:35 < Namegduf> And that lets it distinguish multiple commands on the same
line from multiple commands on separate lines in the parser, surely a highly
useful feature
19:35 < KirkMcDonald> The lexer knows about brackets, and only emits NEWLINE
tokens for line breaks that appear outside of them.
19:35 < nsf> jslint complains if code has no semicolons
19:35 < nsf> even though it's perfectly valid
19:35 < Namegduf> Yes, that's what I said.
19:35 < KirkMcDonald> I like restating things.  :-)
19:35 < aiju> there should be a lint tool for life
19:35 < Namegduf> They don't say how, but it must be quite the hack.
19:35 < aiju> warning: not married to girlfriend
19:36 < nsf> :D
19:36 < aiju> warning: too much fatty food
19:36 < aiju> warning: house not tsunami safe
19:36 < nsf> would be nice to have one
19:36 < Namegduf> What, you don't know about enough problems already?
19:37 < Namegduf> Anyways, my point is that the only nicer thing Python does
that doesn't just complicate the syntax to no/little effect is that paren counting
19:37 < aiju> yeah, sounds good to me, too
19:37 < Namegduf> Emitting a NEWLINE token as opposed to semicolon injection
does basically nothing.
19:38 < Namegduf> And they don't go into how the paren counting works.
19:38 < Namegduf> Aside that it does.
19:40 < KirkMcDonald> I don't see what the difficulty with bracket counting
is.
19:40 < KirkMcDonald> See an open bracket, increment a counter.
19:40 < KirkMcDonald> Or whatever.
19:40 < KirkMcDonald> (One counter for each kind of bracket.)
19:42 < nsf> oh, I've just realized that I want to make /* */ like /+ +/ in
Go
19:42 < aiju> there is /+ +/ in Go?
19:42 < nsf> nestable
19:42 < nsf> no
19:42 < nsf> oh, sorry
19:42 < nsf> like in D
19:43 -!- artefon [~thiago@187.59.187.85] has joined #go-nuts
19:44 < nsf> or I don't want that
19:44 < nsf> I don't know :)
19:44 < aiju> haha
19:47 -!- boscop_ [~boscop@f055057242.adsl.alicedsl.de] has quit [Read error:
Connection reset by peer]
19:47 -!- boscop_ [~boscop@f055057242.adsl.alicedsl.de] has joined #go-nuts
19:49 < aiju> D only sounds worse with every thing i hear about it
19:49 < nsf> haha, yeah, it's a pile of new concepts on your head
19:49 < nsf> but kinda looks like Cish
19:49 < nsf> :D
19:49 < nsf> just a disguise
19:49 < aiju> it's like C++, just in green
19:49 < aiju> maybe not quite THAT bad, but still insane
19:50 < nsf> no, C++ has its own unique style
19:50 < Namegduf> It's an attempt at C++ done right.
19:50 < nsf> std::unordered_map<std::string, MyClass>::iterator it;
19:50 < nsf> and that's what C++ is all about
19:50 < nsf> training fingers
19:50 < Namegduf> Every feature for everyone in every way, but less horrible
in syntax.
19:50 < aiju> Namegduf: which sounds like "holocaust done right" to my ears
19:50 < Namegduf> Haha.
19:52 -!- boscop_ [~boscop@f055057242.adsl.alicedsl.de] has quit [Read error:
Connection reset by peer]
19:52 < skelterjohn> aiju: don't germans get arrested for using that word?
19:53 -!- boscop_ [~boscop@f055057242.adsl.alicedsl.de] has joined #go-nuts
19:55 < aiju> skelterjohn: ssh
19:56 -!- sebastia1 [~sebastian@188.114.142.217] has quit [Quit: leaving]
19:59 -!- boscop_ [~boscop@f055057242.adsl.alicedsl.de] has quit [Read error:
Connection reset by peer]
20:00 -!- rlab [~Miranda@220-191-113-92.pool.ukrtel.net] has joined #go-nuts
20:00 -!- boscop_ [~boscop@f055057242.adsl.alicedsl.de] has joined #go-nuts
20:03 -!- skelterjohn [~jasmuth@lawn-gw.rutgers.edu] has quit [Quit: skelterjohn]
20:03 -!- fmoo [~Adium@c-76-102-41-101.hsd1.ca.comcast.net] has quit [Quit:
Leaving.]
20:07 < huin> nsf: on the plus side, C++0x should cut that down a bit
20:07 < huin> not that i want to use it, even so
20:07 < aiju> C++0x cutting down what?
20:07 < aiju> sanity?
20:07 < nsf> and add more crap :)
20:07 < huin> std::unordered_map<std::string, MyClass>::iterator it;
20:07 < aiju> i doubt that
20:07 < nsf> yeah, that will be replaced
20:08 < nsf> with 'auto it = ...'
20:08 < huin> yourmap.begin();
20:08 < huin> or something
20:08 < huin> and there's some foreach construct
20:08 -!- hopso [~hopso@a91-154-2-70.elisa-laajakaista.fi] has quit [Remote host
closed the connection]
20:08 < huin> but really...  it's not making the language attractive to me
20:08 < huin> just...  less ugly
20:08 < aiju> it's still C++
20:08 < nsf> it has other issues
20:09 < nsf> I know many of them
20:09 < nsf> context-dependent grammar with amiguities is the worst one
20:09 < nsf> together with preprocessor-based module system
20:10 < nsf> int x = !"123";
20:10 < nsf> valid C++
20:10 < nsf> crappy variable declarations
20:10 < nsf> etc, etc.
20:10 < nsf> I can continue forever
20:10 < plexdev> http://is.gd/ucRsjW by [Russ Cox] in go/src/pkg/http/ --
http: fix IP confusion in TestServerTimeouts
20:11 < aiju> they just tried patching features into C whih don't match C at
all
20:11 < nsf> yeah
20:11 < nsf> the biggest thing I don't understand
20:11 < nsf> is why it's so successful
20:11 < nsf> or popular should I say
20:11 < aiju> Java is successful
20:11 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Read error:
Connection reset by peer]
20:11 < aiju> C# is successful
20:12 < nsf> yes, yes, why?  :)
20:12 < aiju> it stopped amazing me
20:12 < aiju> that C used to be really popular is much more amazing
20:12 -!- Venom_X [~pjacobs@75-27-133-72.lightspeed.austtx.sbcglobal.net] has quit
[Ping timeout: 250 seconds]
20:12 < nsf> well, I understand the popularity of C
20:13 -!- araujo [~araujo@gentoo/developer/araujo] has joined #go-nuts
20:13 < nsf> because it was created so early in the computing world
20:13 < nsf> I'm sure for its time it was awesome
20:13 < nsf> and for few decades after that time :)
20:13 < aiju> well
20:13 < aiju> there were languages like BCPL
20:13 < nsf> then people started to seek for something new
20:13 < aiju> which had more features and such
20:13 < aiju> string support, math support in the language
20:14 < aiju> early C was really just fancy machine code
20:15 < aiju> no typechecking, no real structs
20:15 < nsf> but C++, common
20:15 < nsf> I don't understand
20:15 -!- zozoR [~Morten@90.185.81.29] has quit [Remote host closed the
connection]
20:15 < nsf> and I hate one thing mostly in C++
20:15 < nsf> is the spirit of "better C"
20:15 < Namegduf> C++ let you use the C university and speed with all the
features you could ever want.
20:15 < aiju> long compiles?  :D
20:15 < nsf> it's not better
20:15 < nsf> it's worse
20:16 < aiju> Namegduf: except actually useful ones
20:16 < nsf> but people just think it's better because it is supposed to be
20:16 < aiju> like garbage collection
20:16 < aiju> or concurrency
20:16 < aiju> in a sane way, i mean
20:16 < aiju> what i like about LISP
20:16 -!- Adys [~Adys@unaffiliated/adys] has joined #go-nuts
20:16 < aiju> you can write in any style you can pull out of your nose
20:16 < huin> i don't think C or C++ specifically support concurrency beyond
having a "volatile" keyword
20:16 < nsf> aiju: compilation time is out of discussion, everyone hates it
20:17 < aiju> huin: well, there are libs
20:17 < huin> yeah, but that's not the language
20:17 < aiju> huin: exactly
20:17 -!- Venom_X [~pjacobs@66.54.185.131] has joined #go-nuts
20:17 < nsf> crappy libs may I add
20:18 < nsf> :)
20:18 < nsf> it's hard to find a good C++ library
20:18 < aiju> libs are always crappy, by defintiion
20:18 < huin> non-standard language libs
20:18 < nsf> half of stackoverflow threads point to boost
20:18 < nsf> >_<
20:18 < aiju> aargghh boost
20:18 < aiju> boost causes PTSD
20:20 < Namegduf> Boost should be included with C++.  It's a natural part of
the language's approach to problems.
20:20 < Namegduf> If it isn't working, add more features
20:20 < nsf> :D
20:20 < kimelto> sad but true
20:21 < huin>
http://stackoverflow.com/questions/4980766/reserved-keywords-count-by-programming-language
(dunno about accuracy)
20:21 < aiju> COBOL has 500 reserved keywords
20:21 < huin> cripes
20:21 < aiju> "C 32" is guaranteed to be wrong
20:21 < huin> any space left for variable names?
20:21 < nsf> C: 32, what a nice language
20:21 < aiju> huin: COBOL code looks like "MULTIPLY X BY 100"
20:21 < nsf> aiju: is it?
20:21 < aiju> nsf: it depends on the standard :)
20:21 < nsf> :D
20:22 * huin feels ill
20:22 < aiju> standard COBOL coding style only adds fuel to fire
20:22 -!- boscop_ [~boscop@f055057242.adsl.alicedsl.de] has quit [Ping timeout:
246 seconds]
20:22 < aiju> a simple program like reading a number in and writing it out
takes two pages in COBOL
20:22 < aiju> full of weird declarations and of course pages of comments
20:23 < nsf> sounds scary
20:24 < aiju> http://aiju.de/b/sqrt
20:24 < aiju> i wrote an actually working COBOL program for that page
20:24 < nsf> omg
20:24 < aiju> Identification Division.
20:24 < aiju> Program-ID.  sqrtpgm.
20:24 < aiju> Data Division.
20:24 < aiju> Working-Storage Section.
20:24 < nsf> C++ boost, lol
20:24 < nsf> longer than cobol
20:25 < nsf> for (unsigned i=0; i < m_Iterations; i++)
20:25 < nsf> wtf, where are iterators?
20:25 < nsf> :)
20:25 < aiju> that page upsets many people
20:25 < aiju> because i "mislead people"
20:25 < nsf> java looks funny too :)
20:26 < aiju> hell, this is NICE compared to actual java code
20:26 < nsf> :D
20:26 < aiju> S9V99999
20:26 < aiju> COBOL supported binary arithmetic only since '03 or similar
btw :)
20:27 < aiju> everything is done in BCD
20:27 < aiju> the really frightening thing is called ...
20:27 < aiju> VISUAL COBOL
20:27 -!- fmoo [~Adium@66.220.144.74] has joined #go-nuts
20:28 < nsf> http://aiju.de/b/configure
20:28 < nsf> lol
20:31 < uriel> nsf: haha
20:36 < nsf> http://aiju.de/rant/dynamic-linking
20:36 < nsf> nice page :)
20:37 < nsf> sadly if one writes a compiler and will say that he will not
support dynamic linking
20:37 < nsf> (like Go does)
20:37 < nsf> many people will be angry :)
20:38 < aiju> to paraphrase Elfriede Yellinek: "The compiler opposes society
by not pleasing"
20:39 < nsf> on the other hand every module system is a big problem when you
want to have dynamic linking support for that
20:39 < nsf> name mangling, complicated ABI's, etc.
20:40 < nsf> I think Go is the only compiler with a module system, where you
can just duplicate a library without recompiling it
20:40 < nsf> and it will be a different library
20:40 < nsf> because it does renaming, etc
20:40 < nsf> ugh..
20:41 < nsf> and no one tries to redesign linkers
20:41 < nsf> because it's like redesigning UNIX or C
20:41 < nsf> no one does that
20:41 < nsf> :)
20:41 < nsf> for some reason
20:42 -!- crodjer [~rohanjain@203.110.240.205] has quit [Remote host closed the
connection]
20:42 -!- pharris [~Adium@rhgw.opentext.com] has quit [Quit: Leaving.]
20:43 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined
#go-nuts
20:48 -!- TheMue [~TheMue@p5DDF6C56.dip.t-dialin.net] has quit [Quit: TheMue]
20:51 -!- dju__ [dju@fsf/member/dju] has quit [Quit: Quitte]
20:56 -!- Venom_X_ [~pjacobs@75-27-133-72.lightspeed.austtx.sbcglobal.net] has
joined #go-nuts
20:59 -!- Venom_X [~pjacobs@66.54.185.131] has quit [Ping timeout: 246 seconds]
20:59 -!- dfc [~dfc@124-149-101-80.dyn.iinet.net.au] has joined #go-nuts
21:01 -!- imsplitbit [~imsplitbi@64.39.4.132] has quit [Quit: Bye!]
21:05 -!- JusticeFries [~JusticeFr@173-8-247-218-Colorado.hfc.comcastbusiness.net]
has quit [Quit: JusticeFries]
21:05 -!- huin [~huin@91.84.99.134] has quit [Quit: bedtime]
21:06 -!- tobik [~tobik@p4FCBFC03.dip.t-dialin.net] has quit [Quit: WeeChat 0.3.4]
21:10 -!- r_linux [~r_linux@189.38.220.35] has quit [Quit: Lost terminal]
21:14 -!- firwen [~firwen@gex01-1-78-234-55-225.fbx.proxad.net] has quit [Quit:
Geek insinde®]
21:16 -!- Glasswalker
[~Glasswalk@CPE005056ad47df-CM001225e00d58.cpe.net.cable.rogers.com] has quit
[Ping timeout: 246 seconds]
21:17 < kamaji> arg, I keep writing haskell in my slice literals :D
21:19 -!- rlab [~Miranda@220-191-113-92.pool.ukrtel.net] has quit [Read error:
Connection reset by peer]
21:20 < kamaji> :|
21:20 < kamaji> so apparently if you pass a struct pointer, it doesn't equal
type interface pointer
21:21 < kamaji> but it does if you do &(*data)
21:21 < skelterjohn> need more context
21:21 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has quit [Quit:
Verlassend]
21:21 < skelterjohn> do you have something that is of type *interface{}?
21:21 < kamaji> no, an interface with one function
21:21 < kamaji> Add(x float64)
21:21 < skelterjohn> type *interface{something}?
21:21 < kamaji> yeah
21:22 < skelterjohn> may i ask why?  this is almost always (but not always)
a bad idea
21:22 -!- JusticeFries [~JusticeFr@173.8.247.218] has joined #go-nuts
21:22 < kamaji> I thought passing by reference was encouraged?
21:22 < skelterjohn> or at least, it's usually not what people mean to do
21:22 < skelterjohn> interfaces are pseudo-pointer types already
21:23 < kamaji> it's basically a utility method to apply the interface
function to a slice
21:23 < skelterjohn> ok, i don't think a *interface is what you want
21:23 < kamaji> oh
21:23 < kamaji> What else would I use?
21:23 < skelterjohn> just the interface :)
21:24 < kamaji> oh yeah you said that :P
21:24 < kamaji> That seems like odd behaviour
21:24 < skelterjohn> var a interface{Add(x float64)} = &mystruct
21:24 < kamaji> oh what
21:24 < skelterjohn> toss "a" to the function that applies it
21:24 < kamaji> actually, mystruct is already a pointer
21:24 < skelterjohn> the only reason you'd need a pointer to an interface is
if you'd want to modify that interface from somewhere else
21:25 < skelterjohn> then just = mystruct
21:25 < skelterjohn> you're already passing a reference
21:25 < skelterjohn> interface = reference + type information
21:25 < kamaji> seems odd that doesn't happen automatically?
21:25 < skelterjohn> it does
21:25 < kamaji> ok :P
21:25 < skelterjohn> by doing things like &(*data) you are forcing it to not
do this
21:26 -!- zimsim [~simon@87.72.77.195] has quit [Remote host closed the
connection]
21:26 < kamaji> I should probably stick to the clearer approach :D
21:26 < kamaji> otherwise i'll look at that in a month and wonder what I was
smoking
21:27 < kamaji> Thanks :D
21:28 < kamaji> oh cool, gotest automatically finds TestFoo functions
21:28 < kamaji> mind = grown
21:29 < skelterjohn> http://pastebin.com/zss1hGjQ
21:29 < skelterjohn> this is what i'm talking about
21:31 < kamaji> Ah ok
21:31 < kamaji> Yeah that's what i've got now
21:31 < kamaji> cheeeeers
21:31 < skelterjohn> :)
21:32 < kamaji> incidentally it looks like i'm going to be using that
pattern fairly extensively, I wonder if that's a bad thing?
21:32 -!- boscop_ [~boscop@f055057242.adsl.alicedsl.de] has joined #go-nuts
21:32 < skelterjohn> no - that's a typical piece of go code to write
21:32 < skelterjohn> it's exactly what interfaces are meant for
21:33 -!- m4dh4tt3r [~Adium@c-69-181-223-245.hsd1.ca.comcast.net] has quit [Ping
timeout: 248 seconds]
21:33 -!- dj2 [~dj2@216.16.242.254] has quit [Remote host closed the connection]
21:34 -!- m4dh4tt3r [~Adium@c-69-181-223-245.hsd1.ca.comcast.net] has joined
#go-nuts
21:39 -!- boscop_ [~boscop@f055057242.adsl.alicedsl.de] has quit [Ping timeout:
246 seconds]
21:39 -!- boscop__ [~boscop@f055057242.adsl.alicedsl.de] has joined #go-nuts
21:41 -!- boscop__ [~boscop@f055057242.adsl.alicedsl.de] has quit [Read error:
Connection reset by peer]
21:44 -!- boscop__ [~boscop@f055057242.adsl.alicedsl.de] has joined #go-nuts
21:50 -!- boscop__ [~boscop@f055057242.adsl.alicedsl.de] has quit [Ping timeout:
250 seconds]
21:50 -!- Fish [~Fish@9fans.fr] has quit [Quit: So Long, and Thanks for All the
Fish]
21:52 -!- awidegreen [~quassel@c-cfc5e555.08-2-73746f39.cust.bredbandsbolaget.se]
has quit [Remote host closed the connection]
21:58 -!- piranha [~piranha@5ED43A0B.cm-7-5a.dynamic.ziggo.nl] has quit [Quit:
Computer has gone to sleep.]
22:04 -!- boscop [~boscop@g227132084.adsl.alicedsl.de] has joined #go-nuts
22:20 -!- Adys [~Adys@unaffiliated/adys] has quit [Ping timeout: 250 seconds]
22:21 -!- Scorchin [~Scorchin@host86-160-234-145.range86-160.btcentralplus.com]
has quit [Quit: Scorchin]
22:22 -!- bXi [bluepunk@irssi.co.uk] has quit [Read error: Operation timed out]
22:24 -!- bXi [bluepunk@irssi.co.uk] has joined #go-nuts
22:29 -!- pphalen [~pphalen@66.92.11.149] has left #go-nuts []
22:31 -!- Adys [~Adys@unaffiliated/adys] has joined #go-nuts
22:31 -!- dfc [~dfc@124-149-101-80.dyn.iinet.net.au] has quit [Quit: dfc]
22:33 -!- ExtraSpice [XtraSpice@88.118.35.153] has quit [Read error: Connection
reset by peer]
22:33 -!- Cobi [~Cobi@2002:1828:88fb:0:aede:48ff:febe:ef03] has joined #go-nuts
22:34 -!- Project-2501 [~Marvin@82.84.86.178] has quit [Quit: E se abbasso questa
leva che succ...]
22:36 -!- virtualsue [~chatzilla@nat/cisco/x-enbfwbxtakcxeutd] has quit [Ping
timeout: 248 seconds]
22:36 -!- Venom_X [~pjacobs@75-27-133-72.lightspeed.austtx.sbcglobal.net] has quit
[Quit: Venom_X]
22:36 -!- boscop [~boscop@g227132084.adsl.alicedsl.de] has quit [Read error:
Connection reset by peer]
22:36 -!- aho [~nya@fuld-590c62a8.pool.mediaWays.net] has quit [Read error:
Connection reset by peer]
22:36 -!- Pie`` [pie@kjal.demon.co.uk] has joined #go-nuts
22:37 -!- boscop [~boscop@g227132084.adsl.alicedsl.de] has joined #go-nuts
22:37 -!- ako [~nya@fuld-590c62a8.pool.mediaWays.net] has joined #go-nuts
22:37 -!- katakuna [~pie@kjal.demon.co.uk] has quit [Ping timeout: 246 seconds]
22:37 -!- reds [~reds@pool-74-101-147-57.nycmny.fios.verizon.net] has quit [Ping
timeout: 246 seconds]
22:37 -!- reds [~reds@pool-74-101-147-57.nycmny.fios.verizon.net] has joined
#go-nuts
22:39 -!- ako [~nya@fuld-590c62a8.pool.mediaWays.net] has joined #go-nuts
22:40 -!- aho [~nya@fuld-590c62a8.pool.mediaWays.net] has quit [Read error:
Connection reset by peer]
22:41 -!- itrekkie [~itrekkie@ip72-211-130-204.tc.ph.cox.net] has joined #go-nuts
22:44 -!- krutcha [~krutcha@remote.icron.com] has joined #go-nuts
22:46 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts
22:46 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.4]
22:59 < plexdev> http://is.gd/eNlR4e by [Russ Cox] in go/src/cmd/5c/ -- 5c:
make alignment rules match 5g, just like 6c matches 6g
23:14 -!- reds [~reds@pool-74-101-147-57.nycmny.fios.verizon.net] has quit [Remote
host closed the connection]
23:15 -!- shvntr [~shvntr@113.84.145.19] has joined #go-nuts
23:18 -!- JusticeFries_
[~JusticeFr@173-8-247-218-Colorado.hfc.comcastbusiness.net] has joined #go-nuts
23:20 -!- shvntr [~shvntr@113.84.145.19] has quit [Ping timeout: 246 seconds]
23:20 -!- JusticeFries [~JusticeFr@173.8.247.218] has quit [Ping timeout: 260
seconds]
23:32 -!- dfc [~dfc@eth59-167-133-99.static.internode.on.net] has joined #go-nuts
23:33 -!- wchicken [~chicken@24.7.112.207] has quit [Ping timeout: 260 seconds]
23:37 -!- reds [~reds@pool-74-101-147-57.nycmny.fios.verizon.net] has joined
#go-nuts
23:37 -!- kr [~Keith@204.14.152.118] has joined #go-nuts
23:40 -!- Glasswalker
[~Glasswalk@CPE002369b3cd1a-CM00222d53f155.cpe.net.cable.rogers.com] has joined
#go-nuts
23:43 -!- niemeyer [~niemeyer@189.27.145.95.dynamic.adsl.gvt.net.br] has quit
[Ping timeout: 240 seconds]
23:50 -!- reds [~reds@pool-74-101-147-57.nycmny.fios.verizon.net] has quit [Remote
host closed the connection]
23:52 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Quit:
skelterjohn]
23:53 -!- dj2 [~dj2@CPE001f5b35feb4-CM0014048e0344.cpe.net.cable.rogers.com] has
joined #go-nuts
23:53 -!- KingPhilroy [~kingphilr@shc-nat-newhall.stonehill.edu] has joined
#go-nuts
--- Log closed Tue Apr 19 00:00:50 2011