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

--- Log opened Sun Mar 13 00:00:55 2011
00:01 < steven> wrtp: hey
00:01 < steven> check it out https://github.com/sdegutis/gorm
00:01 < wrtp> will do
00:02 < steven> https://github.com/sdegutis/GoRM/blob/master/gorm_test.go
shows the fun stuff
00:02 < wrtp> is it working ok for you?
00:02 < steven> all the tests pass :)
00:02 < steven> but it uses reflect heavily so im counting on that guy who
says they have an idea on how to make reflect a lot faster ;)
00:03 < steven> well, the Save pass doesnt test.  i was working on that jsut
now.
00:03 < steven> *Save test doesnt pass
00:03 < steven> im out of ideas why it fails.
00:03 < steven> wanna take a look?  the latest commit will show you where to
look
00:04 < steven> run it and you see that the "update" call gets executed but
it doesnt actually update the db.
00:05 < steven> you'll need to make install
https://github.com/sdegutis/sqlite-go-wrapper for it to work btw
00:05 < wrtp> [you should run all your code through gofmt]
00:05 < wrtp> i see lots of inconsistent indentation
00:07 < steven> yea good idea
00:08 < steven> you can thank textmate for that
00:09 < steven> anyway im out of ideas with the Save issue.
00:09 < steven> maybe i need to call s.Next() lemme try that
00:09 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Ping timeout: 248 seconds]
00:09 < steven> i dont see why but maybe
00:10 < steven> yeah looks like thats the case.  ugh.  weir
00:10 < steven> d
00:13 -!- Guest54102 [~quassel@p4FF1C248.dip0.t-ipconnect.de] has quit [Remote
host closed the connection]
00:15 -!- jokoon [~zonax@feu30-1-82-242-58-229.fbx.proxad.net] has quit [Quit:
Leaving]
00:16 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts
00:17 < SirPsychoS> you could use a git hook to run gofmt automatically
00:19 -!- tsykoduk [~tsykoduk@2001:470:1f04:671:20d:93ff:fe77:1dc4] has joined
#go-nuts
00:20 -!- piranha [~piranha@e180067093.adsl.alicedsl.de] has quit [Quit: Computer
has gone to sleep.]
00:20 < steven> on github?
00:20 < steven> oh, locally.
00:20 < steven> heh
00:20 < steven> so used to heroku
00:20 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Ping timeout: 252 seconds]
00:22 < steven> for some reason, changes to one sqlite file are being
propogated over to another file.
00:22 < steven> OOH
00:23 < steven> wait no.
00:23 < steven> still no idea
00:23 < SirPsychoS> haha
00:24 < wrtp> you'll get there :-)
00:25 < steven> for some reason, this is writing to test.db when it should
absolutely not.
00:25 < steven>
https://github.com/sdegutis/GoRM/blob/master/gorm_test.go#L88
00:25 < wrtp> it's half past midnight and the beaume de venise has just
appeared.  not a good time for debugging.
00:25 < steven> i thought my test around it was pretty safe, guess not.
00:25 < steven> ok
00:25 -!- napsy [~luka@88.200.96.18] has quit [Read error: Operation timed out]
00:26 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts
00:28 < steven> WHOA.
00:28 < steven> stupidest bug ever.
00:28 < steven> fixed.  nm.
00:29 < steven> whoa, that was seriously dumb of me.
00:29 < steven> it should be a compile-time error when you dont use
arguments in a function.
00:29 < steven> sigh.
00:32 -!- rtharper [~tomh@unaffiliated/sioraiocht] has joined #go-nuts
00:36 -!- jumzi [~none@c-89-233-234-125.cust.bredband2.com] has quit [Ping
timeout: 246 seconds]
00:38 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts
00:39 < wrtp> steven: i tend to agree.  the problem is that argument names
in a function often serve as documentation too
00:46 -!- jokoon [~zonax@feu30-1-82-242-58-229.fbx.proxad.net] has joined #go-nuts
00:46 < steven> wrtp: i was not using the "filename" param in OpenDB, and
instead was using the constant "test.db"
00:46 < steven> which means i hadnt tested OpenDB as well as i should have
heh
00:50 < wrtp> usual story :-)
00:53 -!- rup [~rupert@deathknight.net] has quit [Ping timeout: 276 seconds]
00:58 -!- rtharper [~tomh@unaffiliated/sioraiocht] has quit [Remote host closed
the connection]
01:00 -!- rtharper [~tomh@unaffiliated/sioraiocht] has joined #go-nuts
01:04 -!- jokoon [~zonax@feu30-1-82-242-58-229.fbx.proxad.net] has quit [Quit:
Leaving]
01:10 -!- rtharper [~tomh@unaffiliated/sioraiocht] has quit [Remote host closed
the connection]
01:54 -!- DerHorst [~Horst@e176107032.adsl.alicedsl.de] has joined #go-nuts
01:55 -!- wrtp [~rog@93-97-137-84.zone5.bethere.co.uk] has quit [Quit: wrtp]
02:02 < SirPsychoS> anyone know off the top of their head if there would be
a significant performance difference between implementing vectors (the n-tuple of
distances, not the container) as arrays/slices versus structs?
02:07 < Namegduf> "structs" don't define a memory layout.
02:08 < SirPsychoS> struct { X, Y, Z float64 }
02:08 < Namegduf> That's identical in memory layout to a [3]float64
02:09 < Namegduf> Well, I suppose there could be padding differences, but
performance won't be different, no.
02:09 < SirPsychoS> thanks, just wanted to make sure
02:09 < Namegduf> Both define a block of three float64s.
02:12 < SirPsychoS> more interestingly, I suspect it might be worthwhile to
make vector operations (at least internally) work c-style, aka take a destination
pointer in addition to sources, to avoid the memory allocation overhead when
possible
02:12 < SirPsychoS> according to pprof, about 3/7 of my execution time is
spent in runtime.new and its sub-calls
02:13 -!- karpar [~karpar@112.96.255.8] has joined #go-nuts
02:13 < SirPsychoS> s/pprof/6prof and pprof/
02:16 -!- rup [~rupert@deathknight.net] has joined #go-nuts
02:20 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.4]
02:20 -!- karpar [~karpar@112.96.255.8] has quit [Quit: Bye!]
02:36 -!- niemeyer [~niemeyer@189.27.130.232.dynamic.adsl.gvt.net.br] has quit
[Ping timeout: 255 seconds]
02:40 -!- DerHorst [~Horst@e176107032.adsl.alicedsl.de] has quit [Read error:
Connection reset by peer]
02:41 -!- aho [~nya@fuld-4d00d784.pool.mediaWays.net] has quit [Quit:
EXEC_over.METHOD_SUBLIMATION]
02:43 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Quit: |Craig|]
02:47 -!- boscop [~boscop@f055020065.adsl.alicedsl.de] has quit [Ping timeout: 255
seconds]
02:47 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts
02:48 -!- pilgrum [~pilgrum@cpe-67-49-71-222.socal.res.rr.com] has joined #go-nuts
02:56 -!- shvntr [~shvntr@113.84.149.100] has joined #go-nuts
03:05 -!- tobik [~tobik@p549FF44C.dip.t-dialin.net] has quit [Ping timeout: 260
seconds]
03:17 -!- werdan7 [~w7@freenode/staff/wikimedia.werdan7] has joined #go-nuts
03:20 -!- shvntr [~shvntr@113.84.149.100] has quit [Read error: Connection reset
by peer]
03:29 -!- chickamade [~chickamad@116.118.19.105] has joined #go-nuts
03:31 -!- littlebobby [~bob@unaffiliated/littlebobby] has joined #go-nuts
03:58 -!- gogogrrl_ [~max@p5DE8E6B7.dip.t-dialin.net] has joined #go-nuts
03:59 -!- gogogrrl [~max@p5DE8C53B.dip.t-dialin.net] has quit [Read error:
Operation timed out]
04:11 < steven> guys
04:12 < steven> is there a way to get the keys (or values) of a map as a
slice, without looping and generating it manually?
04:14 -!- rejb [~rejb@unaffiliated/rejb] has quit [Ping timeout: 246 seconds]
04:29 < exch> nope
04:34 < SirPsychoS> does Go ever allocate stuff just on the stack?  it kinda
seems like everything is heap
04:35 < SirPsychoS> judging by the colossal amount of time my code spends in
the garbage collector
04:36 < SirPsychoS> (yes, I was declaring variables a lot more often than
was necessary)
04:37 < steven> uh
04:37 < steven> how do you know how much time it spends in GC?
04:38 < SirPsychoS> 6prof + pprof
04:40 < SirPsychoS> also what's considered good practice for gotest
benchmarks?  -- run the function in question on the same arguments b.N times, or
vary it?
04:41 -!- littlebobby [~bob@unaffiliated/littlebobby] has quit [Quit: Ex-Chat]
04:42 -!- chickamade [~chickamad@116.118.19.105] has quit [Quit: Leaving]
04:51 -!- Natch [~natch@c-6dcde155.25-4-64736c10.cust.bredbandsbolaget.se] has
joined #go-nuts
04:54 -!- Natch| [~natch@c-6dcde155.25-4-64736c10.cust.bredbandsbolaget.se] has
quit [Ping timeout: 260 seconds]
04:59 -!- slashus2 [~slashus2@74-141-110-130.dhcp.insightbb.com] has joined
#go-nuts
05:03 -!- rup [~rupert@deathknight.net] has quit [Ping timeout: 255 seconds]
05:34 -!- cenuij [~cenuij@78.112.41.178] has joined #go-nuts
05:34 -!- cenuij [~cenuij@78.112.41.178] has quit [Changing host]
05:34 -!- cenuij [~cenuij@base/student/cenuij] has joined #go-nuts
05:44 -!- shvntr [~shvntr@113.84.149.100] has joined #go-nuts
06:01 -!- rup [~rupert@deathknight.net] has joined #go-nuts
06:05 < steven> ok, added a readme
06:05 < steven> https://github.com/sdegutis/gorm
06:05 < steven> Namegduf: :)
06:21 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has joined #go-nuts
06:24 -!- iant [~iant@216.239.45.130] has quit [Ping timeout: 240 seconds]
06:24 -!- slashus2 [~slashus2@74-141-110-130.dhcp.insightbb.com] has quit [Quit:
slashus2]
06:27 -!- cenuij [~cenuij@base/student/cenuij] has quit [Read error: Connection
reset by peer]
06:28 -!- cco3 [~conley@c-69-181-140-72.hsd1.ca.comcast.net] has quit [Ping
timeout: 246 seconds]
06:38 -!- Project-2501 [~Marvin@82.84.66.1] has joined #go-nuts
06:39 -!- karpar [~karpar@112.96.224.13] has joined #go-nuts
06:42 -!- karpar [~karpar@112.96.224.13] has quit [Client Quit]
06:43 -!- iant [~iant@adsl-71-133-8-30.dsl.pltn13.pacbell.net] has joined #go-nuts
06:43 -!- mode/#go-nuts [+v iant] by ChanServ
07:00 -!- ExtraSpice [XtraSpice@78-62-101-194.static.zebra.lt] has joined #go-nuts
07:25 -!- photron [~photron@port-92-201-114-36.dynamic.qsc.de] has joined #go-nuts
07:25 -!- piranha [~piranha@e180075095.adsl.alicedsl.de] has joined #go-nuts
07:26 -!- htoothrot [~mux@66-169-185-121.dhcp.ftwo.tx.charter.com] has quit
[Excess Flood]
07:28 -!- htoothrot [~mux@66-169-185-121.dhcp.ftwo.tx.charter.com] has joined
#go-nuts
07:32 -!- shvntr [~shvntr@113.84.149.100] has quit [Quit: leaving]
07:35 -!- gid [~gid@220-253-33-95.VIC.netspace.net.au] has quit [Quit: Leaving.]
07:36 -!- Project-2501 [~Marvin@82.84.66.1] has quit [Quit: E se abbasso questa
leva che succ...]
07:47 -!- tensorpudding [~user@99.56.160.152] has quit [Remote host closed the
connection]
07:48 -!- SirPsychoS [~sp@c-24-13-132-130.hsd1.il.comcast.net] has quit [Ping
timeout: 252 seconds]
07:50 -!- fzzbt [~fzzbt@a88-112-9-20.elisa-laajakaista.fi] has joined #go-nuts
07:51 -!- piranha [~piranha@e180075095.adsl.alicedsl.de] has quit [Quit: Computer
has gone to sleep.]
07:53 -!- nixness [~dsc@dyn-86-36-42-96.wv.qatar.cmu.edu] has joined #go-nuts
07:53 -!- vsayer [~vivek@2001:470:1f04:1a6b:21a:6bff:fe35:d2a5] has quit [Ping
timeout: 260 seconds]
08:00 -!- zimsim [~simon@87.72.77.195] has joined #go-nuts
08:05 -!- karpar [~user@112.96.224.13] has joined #go-nuts
08:06 -!- nixness [~dsc@dyn-86-36-42-96.wv.qatar.cmu.edu] has quit [Ping timeout:
240 seconds]
08:06 -!- waqas [~waqas@jaim.at] has joined #go-nuts
08:09 -!- nixness [~dsc@dyn-86-36-42-96.wv.qatar.cmu.edu] has joined #go-nuts
08:11 -!- ronny [~quassel@p4FF1C736.dip0.t-ipconnect.de] has joined #go-nuts
08:14 -!- vsayer [~vivek@c-76-102-205-58.hsd1.ca.comcast.net] has joined #go-nuts
08:15 < waqas> string(bytearray) would copy from the bytearray, and not keep
a reference to the original, correct?
08:15 -!- visof [~visof@unaffiliated/visof] has joined #go-nuts
08:16 < taruti> yes
08:19 < waqas> Couldn't find this in the docs explicitly, but given that
strings are immutable this would be guaranteed
08:27 -!- rmt [~rmt@2a02:790:1:6:1:c:caf0:2] has joined #go-nuts
08:28 -!- shvntr [~shvntr@113.84.149.100] has joined #go-nuts
08:31 < rmt> Hello everybody.  I want to have an exec.Cmd implement
io.ReadWriteCloser (writing to proc's stdin, reading from proc's stdout)..  I did
"type MyCmd cmd.Exec" and defined the func's.  Actually doing a type conversion
and passing that into a func expecting io.ReadWriteCloser is the issue.
08:36 < rmt> The code: http://go.pastie.org/private/kolspvycfu2fnfu2wljiag
08:37 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts
08:41 -!- dahankzter [~henrik@92-244-3-192.customers.ownit.se] has joined #go-nuts
08:45 -!- ShadowIce
[~pyoro@HSI-KBW-109-193-120-162.hsi7.kabel-badenwuerttemberg.de] has joined
#go-nuts
08:45 -!- ShadowIce
[~pyoro@HSI-KBW-109-193-120-162.hsi7.kabel-badenwuerttemberg.de] has quit
[Changing host]
08:45 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts
08:51 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Quit: |Craig|]
08:53 -!- waqas [~waqas@jaim.at] has left #go-nuts []
08:56 -!- napsy [~luka@88.200.96.18] has joined #go-nuts
09:10 -!- SirPsychoS [~sp@c-24-13-132-130.hsd1.il.comcast.net] has joined #go-nuts
09:13 -!- napsy [~luka@88.200.96.18] has quit [Quit: Lost terminal]
09:14 -!- napsy [~luka@88.200.96.18] has joined #go-nuts
09:21 -!- cenuij [~cenuij@78.112.41.178] has joined #go-nuts
09:21 -!- cenuij [~cenuij@78.112.41.178] has quit [Changing host]
09:21 -!- cenuij [~cenuij@base/student/cenuij] has joined #go-nuts
09:29 -!- dahankzter [~henrik@92-244-3-192.customers.ownit.se] has quit [Read
error: Connection reset by peer]
09:31 -!- piranha [~piranha@port-92-200-9-197.dynamic.qsc.de] has joined #go-nuts
09:44 -!- karpar [~user@112.96.224.13] has quit [Ping timeout: 264 seconds]
09:52 -!- karpar [~user@112.96.255.4] has joined #go-nuts
09:52 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts
09:54 -!- karpar [~user@112.96.255.4] has quit [Client Quit]
09:57 -!- JusticeFries [~JusticeFr@c-24-9-171-36.hsd1.co.comcast.net] has quit
[Quit: JusticeFries]
10:01 -!- fzzbt [~fzzbt@a88-112-9-20.elisa-laajakaista.fi] has quit [Quit: Lost
terminal]
10:05 < napsy> Hello.  I have the following Makefile:
http://pastie.org/1666185 where proto.go and packet.go are packages and main.go
has main() in it.  But when running gomake I get an error that proto.go misses
main().  Why doesn't it resolve the dependencies?
10:06 < rm445> napsy: I think that makefile expects to build package main
with three source files (that all say 'package main')
10:06 < napsy> hm but every source is in it's own package, only main.go has
"package main"
10:07 < rm445> sure but the build scripts don't know that.
10:07 < rm445> I think you either write your own makefiles(/something else)
or you use a makefile including make.pkg for each package, which will build it and
install it in your goroot.
10:07 < aiju> you generally put everything in one package
10:08 < aiju> packages are more like libraries, not like e.g.  Pascal units
10:08 < napsy> oh
10:08 < rm445> I think they can be both, but if you do too much splitting up
you're causing hassle for yourself.
10:08 < aiju> exactly
10:09 < napsy> well I want to split code into logical units
10:09 < aiju> just use files ;P
10:11 < rm445> There is talk of adding an environment variable to install
packages anywhere, making it trivial to have code like that using the default
makefiles.
10:12 < rm445> Anyone know if that is going ahead?  (Can't remember what
it's called, GOSOMETHING meaning install my package in this directory instead of
GOROOT)
10:13 < rmt> Ach, /now/ everyone's awake, after I worked through my problem
slowly and painfully (satisfying though it may be) ;-)
10:14 < rm445> rmt: I thought your problem was pretty interesting, but
didn't know the answer.  *Can* you extend library types like that?  Does it work?
10:14 -!- shvntr [~shvntr@113.84.149.100] has quit [Quit: leaving]
10:16 < rmt> rm445 ..  will paste code in a sec.
10:18 -!- shvntr [~shvntr@113.84.149.100] has joined #go-nuts
10:22 < rmt> rm445: In short, yes: http://go.pastie.org/1666221
10:24 < rm445> well done.
10:24 < rmt> rm445: Since I'm new to Go, I thought you could just extend an
existing type..  but you can't..  and I was tripping up on the func/method
definitions..  maybe I should have type MyCmd *exec.Cmd and then func (c *MyCmd)
10:28 < rmt> I want to use this with a VNC client to redirect VNC
connections of VMs to the host they're currently residing on, since it's not
guaranteed they'll always be on the one host, and it'd be nicer for support staff
to connect to vm_hostname:0 instead of hypervisor_host:3 (having to look up both
hypervisor_host & the port manually beforehand) ..  plus less firewall rules
required.  ;-)\
10:32 -!- rafadc [~rafael@108.Red-80-39-57.staticIP.rima-tde.net] has joined
#go-nuts
10:32 -!- rafadc [~rafael@108.Red-80-39-57.staticIP.rima-tde.net] has quit [Client
Quit]
10:32 < rmt> Of course, if I'm doing things the hard/non-Go way, please let
me know.  ;-)
10:35 < GilJ> Is there a different way to check if a flag is set besides
comparing it to the default value?
10:36 -!- matti_ [~mumboww@c-24-6-22-101.hsd1.ca.comcast.net] has joined #go-nuts
10:42 -!- GoBIR [~gobir@c-24-130-224-186.hsd1.ca.comcast.net] has quit [Ping
timeout: 246 seconds]
10:44 -!- GoBIR [~gobir@c-24-130-224-186.hsd1.ca.comcast.net] has joined #go-nuts
10:47 -!- cjuner [~cjuner@unaffiliated/cjuner] has joined #go-nuts
10:47 < cjuner> Hi there.  Does go support creating shared libraries at all?
10:47 < aiju> no
10:47 < cjuner> Are there any such plans or any discussing regarding that?
10:48 < cjuner> discussions
10:48 < aiju> see the mailing list
10:48 < cjuner> okay, thanks
10:48 -!- Guest80978 [~quassel@p4FF1C736.dip0.t-ipconnect.de] has quit [Remote
host closed the connection]
10:52 -!- awidegreen [~quassel@c-eacae555.08-2-73746f39.cust.bredbandsbolaget.se]
has quit [Ping timeout: 246 seconds]
10:57 < napsy> shared libraries are a question for the implementation
11:02 < cjuner> napsy, ok - and has any implementation tackled that problem
or are they only theoretical (or are they even theoretical - I didn't find much
discussion)?
11:03 < napsy> hm maybe gccgo has facilities to create a shared library
11:03 < napsy> don't know
11:15 < nsf> it has
11:19 < madari_> Do you guys know who's maintaining
http://godashboard.appspot.com/project ? There's no contact information :(
11:28 -!- AxiomShell [~AxiomShel@host86-132-158-214.range86-132.btcentralplus.com]
has joined #go-nuts
11:28 -!- AxiomShell [~AxiomShel@host86-132-158-214.range86-132.btcentralplus.com]
has left #go-nuts []
11:38 -!- gid [~gid@220-253-33-95.VIC.netspace.net.au] has joined #go-nuts
11:41 -!- rtharper [~tomh@unaffiliated/sioraiocht] has joined #go-nuts
11:47 -!- Guest56287 [~irc@209.17.191.58] has quit [Read error: Connection reset
by peer]
11:47 -!- irc [~irc@209.17.191.58] has joined #go-nuts
11:54 -!- sauerbraten [~sauerbrat@p508CBE09.dip.t-dialin.net] has joined #go-nuts
11:55 -!- ildorn [~ildorn@p4FEC307B.dip.t-dialin.net] has joined #go-nuts
11:55 -!- ildorn [~ildorn@p4FEC307B.dip.t-dialin.net] has quit [Client Quit]
12:00 -!- nixness [~dsc@dyn-86-36-42-96.wv.qatar.cmu.edu] has quit [Ping timeout:
255 seconds]
12:08 -!- shvntr [~shvntr@113.84.149.100] has quit [Quit: leaving]
12:13 -!- shvntr [~shvntr@113.84.149.100] has joined #go-nuts
12:15 -!- rejb [~rejb@unaffiliated/rejb] has joined #go-nuts
12:35 -!- boscop [~boscop@f055168077.adsl.alicedsl.de] has joined #go-nuts
12:48 -!- cjuner [~cjuner@unaffiliated/cjuner] has quit [Quit: Verlassend]
12:53 -!- kamaji [~kamaji@cpc2-aztw22-2-0-cust775.aztw.cable.virginmedia.com] has
joined #go-nuts
12:54 < kamaji> Hi all, has anyone used mysql-connector-go successfully?
12:54 < kamaji> I need to choose a language for a project, and i'd really
like to use go
12:54 -!- nixness [~dsc@dyn-86-36-42-96.wv.qatar.cmu.edu] has joined #go-nuts
12:58 < exch> kamaji: if you need mysql support, this one is probably a
better choice https://github.com/Philio/GoMySQL
13:06 < kamaji> exch: Awesometimes, thanks
13:10 < zimsim> Joining a slice from a string and a variadic of type string,
is this an ok way to do it: append([]string{"foo"}, args...)
13:10 < zimsim> Where `args` in this case is a []string type
13:11 -!- rtharper [~tomh@unaffiliated/sioraiocht] has quit [Remote host closed
the connection]
13:13 < exch> zimsim: yes
13:14 < zimsim> Thanks
13:15 < kamaji> what's the $TARG in Make.inc?
13:15 < exch> kamaji: the name of the binary you are building
13:16 < exch> can be a path if you want it to be: TARG =
path/to/some/dir/mypkg
13:16 < kamaji> oh right, thanks
13:16 < kamaji> double useful :o
13:16 < kamaji> I've been using a crappy shellscript...
13:16 < kamaji> I think it's back to Make for me :D
13:17 < exch> Go's makefiles are very simple if you use the includes
13:17 < kamaji> Yeah, I was using the MySQL one
13:17 < kamaji> it's really nice
13:18 < kamaji> in return, this:
http://video.teamcoco.com/video/conan.jsp?oid=243845&eref=sharethisUrl
13:19 -!- jokoon [~zonax@feu30-1-82-242-58-229.fbx.proxad.net] has joined #go-nuts
13:29 < kamaji> if I want to include the mysql.a file in my buildfile, do I
just add it to the file list?
13:30 < exch> If you've built the mysql package and 'make install'ed it, you
can import it into your app with the 'import' statement: import "mysql".  Go qill
find and include it in the build automatically
13:31 < kamaji> oh I didn't realise you could make install
13:31 < kamaji> that's a bit dumb of me :D
13:31 < kamaji> Thanks
13:31 < exch> np
13:31 -!- TheMue [~TheMue@p5DDF73AF.dip.t-dialin.net] has joined #go-nuts
13:34 < kamaji> Is there API documentation for the sql package?
13:34 < kamaji> my bad, found it
13:39 -!- rtharper [~tomh@unaffiliated/sioraiocht] has joined #go-nuts
13:40 -!- rtharper [~tomh@unaffiliated/sioraiocht] has quit [Remote host closed
the connection]
13:41 < steven> guys
13:41 < aiju> steven
13:41 < steven> whatcha think?  https://github.com/sdegutis/gorm
13:42 < kamaji> steven: really nice
13:43 < kamaji> Planning to support more databases?
13:43 < kamaji> oh you are, awesome
13:44 < steven> :)
13:44 < kamaji> how does it work?  does it read the struct definition?
13:44 < steven> uses reflect.StructValue a lot
13:44 < steven> because of that, its probably really slow
13:45 < kamaji> oh I didn't know there was a reflect package
13:45 < steven> heh its awesome.
13:45 < steven> who wrote this?  http://code.google.com/p/gosqlite/
13:45 < kamaji> I keep coming back to go every month or so and finding out
it's got like 10x more features
13:46 < aiju> reflect has been around for a long time
13:46 < kamaji> wat!  I was looking for that last time ^^
13:46 < kamaji> I guess I don't look very hard~
13:46 -!- chressie [~chressie@dreggn.in-ulm.de] has quit [Read error: Operation
timed out]
13:46 < aiju>
https://github.com/sdegutis/GoRM/commit/7f7310254eeb144e6144d63acccb3c2efd342433
13:46 < aiju> what a profound commit!
13:46 < steven> :D
13:46 -!- chressie [~chressie@dreggn.in-ulm.de] has joined #go-nuts
13:47 -!- femtoo [~femto@95-89-198-8-dynip.superkabel.de] has joined #go-nuts
13:50 < kamaji> hm...  What is the type of "Row" returned by FetchRow() ?
13:50 < kamaji> well..  obviously "Row"...  but where's the definition
13:51 < steven> also https://github.com/sdegutis/sqlite-go-wrapper :)
13:52 < exch> kamaji: you are talking about GoMySQL I presume?  In which
case: https://github.com/Philio/GoMySQL/blob/master/result.go#L41
13:52 < exch> type Row []interface{}
13:53 < kamaji> I just found that...  i'm not really sure how to use it
though
13:53 < TheMue> I'm happy about my own little Redis client.
13:53 < kamaji> How do I know which types are which/
13:55 < TheMue> Some more testing, some more convenience, but that's it.
13:55 < exch> kamaji: presumably you know what your DB table looks like.
13:55 < exch> mysql_test.go has examples of how to use it
13:55 < kamaji> exch: oh right, thanks
13:56 < kamaji> I was using the examples on github that just say "do some
processing", hehe
13:56 < kamaji> I guess it's better to use a prepared statement anyway
13:56 -!- aho [~nya@fuld-590c67ae.pool.mediaWays.net] has joined #go-nuts
13:57 -!- thomas_b [~thomasb@cm-84.215.47.51.getinternet.no] has joined #go-nuts
14:09 < kamaji> woo, it works
14:10 < kamaji> Is there a "map" function?
14:14 -!- jumzi [~none@c-89-233-234-125.cust.bredband2.com] has joined #go-nuts
14:18 < aiju> no
14:25 < steven> kamaji: i would recommend this instead:
https://github.com/sdegutis/sqlite-go-wrapper
14:25 < steven> kamaji: or even better, https://github.com/sdegutis/gorm
14:27 -!- slashus2 [~slashus2@74-141-110-130.dhcp.insightbb.com] has joined
#go-nuts
14:37 < kamaji> steven: I'm using MySQL though, but otherwise I would
14:38 < kamaji> I meant like haskell's map function btw
14:40 < kamaji> Hrm, the makefile produces a .a file and "main.a" instead of
an executable, can I make it do the linking?
14:40 < taruti> use Make.cmd instead of Make.pkg
14:41 < kamaji> ahhh...  ^^
14:41 < kamaji> cheers
14:45 -!- visof [~visof@unaffiliated/visof] has quit [Remote host closed the
connection]
14:51 -!- ako [~nya@fuld-590c6ce2.pool.mediaWays.net] has joined #go-nuts
14:52 -!- aho [~nya@fuld-590c67ae.pool.mediaWays.net] has quit [Ping timeout: 248
seconds]
14:55 -!- ronnyy [~quassel@p4FF1C736.dip0.t-ipconnect.de] has joined #go-nuts
14:55 -!- nixness [~dsc@dyn-86-36-42-96.wv.qatar.cmu.edu] has quit [Read error:
Connection reset by peer]
14:55 -!- napsy [~luka@88.200.96.18] has quit [Read error: No route to host]
15:08 -!- JusticeFries [~JusticeFr@c-24-9-171-36.hsd1.co.comcast.net] has joined
#go-nuts
15:14 < nsf> http://pastie.org/1666919
15:14 < nsf> hehe, AST in yaml
15:14 -!- boscop_ [~boscop@f055112181.adsl.alicedsl.de] has joined #go-nuts
15:16 -!- boscop [~boscop@f055168077.adsl.alicedsl.de] has quit [Ping timeout: 255
seconds]
15:18 < nsf> i think it's actually more readable than xml or json
15:20 < nsf> btw, I have an idea for Go parser..  currently it forces
semicolon insertion mode, but can't it just scan package clause for semicolon and
if it has semicolon at the end, then disable autoinsertion
15:21 < nsf> it will calm down those trolls that want to write their '{' on
a separate line
15:22 < nsf> at least that's what I'm planning to do in my language parser
15:22 < nsf> (but I don't have package clause, it will be an import clause)
15:23 < ampleyfly> but that would enforce consistency!
15:23 < nsf> ampleyfly: gofmt enforces consistency
15:23 -!- shvntr [~shvntr@113.84.149.100] has quit [Quit: leaving]
15:23 < ampleyfly> just kidding
15:23 -!- tvw [~tv@e176003011.adsl.alicedsl.de] has joined #go-nuts
15:23 < nsf> but some groups of people will be able to write their own
gofmts if they really want to
15:24 -!- pilgrum [~pilgrum@cpe-67-49-71-222.socal.res.rr.com] has quit [Quit:
Leaving]
15:24 < nsf> I just think that forced semicolon insertion is a bad idea
15:24 < str1ngs> if they do I'm just going to run my gofmt on it :P
15:25 < nsf> str1ngs: that's your choice you see
15:25 -!- femtoo [~femto@95-89-198-8-dynip.superkabel.de] has quit [Read error:
Connection reset by peer]
15:25 < ampleyfly> clone, gofmt, push
15:25 < nsf> you will be able to transform semicolon-based code to and back
from the current one
15:25 < str1ngs> I think gofmt is really makes Go enjoyable
15:26 < nsf> yeah
15:26 < str1ngs> who wants semi colons though?
15:26 < nsf> andrei alexandrescu
15:26 < nsf> :D
15:26 < KirkMcDonald> Hah
15:27 < str1ngs> just more typing imo :P
15:27 < str1ngs> imo; rather
15:27 < nsf> actually it's not a big problem
15:27 < nsf> I think things like () in if statement condition
15:27 < nsf> and 'break' in switch heart more in C
15:27 < nsf> hurt*
15:28 < nsf> semicolon is just a single keystroke, not a big deal
15:29 < nsf> but I hate default fallthrough behaviour in C/C++ switch
statements :(
15:30 < nsf> it's clearly a design mistake
15:30 < nsf> anyways, just a thought
15:30 * nsf is back to his compiler
15:30 < aiju> nsf: but you can do cool stuff with it!
15:31 -!- awidegreen [~quassel@c-eacae555.08-2-73746f39.cust.bredbandsbolaget.se]
has joined #go-nuts
15:31 < nsf> like?
15:31 < aiju> switch(foo) { case a: do { case b: foo(); } while(); }
15:31 < nsf> omg
15:31 < aiju> do you know duff's device?
15:31 -!- rtharper [~tomh@unaffiliated/sioraiocht] has joined #go-nuts
15:31 < nsf> nope
15:31 < aiju> http://en.wikipedia.org/wiki/Duff's_device#Original_version
15:33 < nsf> it's such a rare case
15:33 < nsf> having fallthought as a default option is wrong
15:33 < aiju> ..  i'm joking
15:33 < nsf> through*
15:33 < aiju> in fact, i agree with you
15:34 < jnwhiteh> has anyone done work with altering the grammar or
type-checking Go?
15:34 -!- kizzo [~kizzo@c-24-130-55-180.hsd1.ca.comcast.net] has joined #go-nuts
15:34 < nsf> jnwhiteh: uhm?
15:34 < nsf> why do you need to alter Go's grammar?
15:35 < jnwhiteh> to make additions
15:35 < nsf> hm..
15:35 < jnwhiteh> its for research, not for proposing a change to the
language =)
15:35 < nsf> ok, but what's wrong with type checking?  :)
15:35 < nsf> ah, i see
15:35 < jnwhiteh> I need to alter the type checking =)
15:36 < nsf> then just do it
15:36 < nsf> take compiler of your choice and go for it
15:36 < aiju> i think he asks for experience
15:36 < jnwhiteh> I plan to..  hence why I just asked people if they've had
experience with it...
15:36 < nsf> I'm writing a new language with Go-like grammar at the moment
15:36 < kizzo> I get this error when running "all.bash" from fresh mercurial
pull: http://pastebin.com/PNkDUiRm
15:37 < nsf> but modifying Go, seems like a bad idea
15:37 < kizzo> It is a test error I believe.
15:37 < nsf> jnwhiteh: I think it's much easier to reimplement type checking
for example
15:37 < nsf> using go/parser
15:37 < jnwhiteh> I'd rather not alter the compiler because it involves
adding type annotations; which there isn't any framework for right now.
15:37 < nsf> and then add modifications of your choice
15:37 < jnwhiteh> that is my preference
15:38 < jnwhiteh> thanks, I'll look into it a bit further
15:38 < nsf> but you won't be able to compile that
15:38 < jnwhiteh> I'm not concerned about that righ tnow
15:38 < str1ngs> kizzo: are you using release?
15:38 < jnwhiteh> if nothing else, I could just generate code to do the
tests and runtime
15:39 < kizzo> str1ngs: I ran the "hg" command like the Getting Started
guide says to, so I don't believe so.
15:39 < kizzo> Maybe I should grab a release and work with that, you're
suggesting?
15:39 < str1ngs> kizzo: the getting started guild should say to use release
15:39 < nsf> hg clone ...
15:39 < nsf> hg pull
15:39 < nsf> hg update -r release
15:39 < kizzo> str1ngs: True, it does.
15:40 < kizzo> So I guess I was using the release - so yes, I am.
15:40 < nsf> and use "release" always :)
15:40 < str1ngs> kizzo: what OS and processor are you using?
15:40 < nsf> kizzo: 'hg identify'
15:40 < nsf> will say what are you using
15:40 < nsf> also the test failure is in http package
15:40 < nsf> maybe network issues?
15:40 < kizzo> c5c62aeb6267 tip
15:40 < nsf> you can disable net tests
15:41 < nsf> kizzo: looks like it's not a release version
15:41 < str1ngs> tip sounds like HEAD to me?
15:41 < nsf> ah, no
15:41 < nsf> it's a release indeed
15:41 < nsf> strange
15:41 < nsf> then, back to networking version
15:41 < str1ngs> kizzo: OS and processor?
15:42 < nsf> network problems?  :)
15:42 < kizzo> Ubuntu intel
15:42 < kizzo> There may be one network problem that I can think of - I will
work on that now..
15:42 < str1ngs> kizzo: i386 or 64bit
15:42 < kizzo> i386
15:43 < kizzo> And why does _every_thing rerun/recompile when running
"all.bash"?
15:43 < str1ngs> hmm firewall maybe?
15:44 < kizzo> [ i'm rerunning that now, to see if my network changes have
any effect.
15:44 < kizzo> str1ngs: Good check - I'll check that too.
15:44 < nsf> because..  well..  developers use recursive make system which
cannot track dependencies correctly
15:44 < kizzo> mmm
15:44 < str1ngs> I would think though that they would test that on local
loopback
15:45 < kizzo> How would I disable certain tests (like mentioned earlier)?
15:45 < nsf> export DISABLE_NET_TESTS=1
15:45 < nsf> should work
15:45 < str1ngs> oh common live on the edge ./make.bash :P
15:46 < nsf> also you can use ./make.bash
15:46 < jnwhiteh> can just supply it on the commandline
15:46 < jnwhiteh> DISABLE_NET_TESTS=1 ./all.bash
15:46 < nsf> it won't run any tests at all
15:46 < nsf> (make.bash)
15:46 < str1ngs> nsf: I know its so much faster :P
15:46 < nsf> yeah
15:49 -!- tensai_cirno [~cirno@77.232.15.216] has quit [Ping timeout: 252 seconds]
15:51 < str1ngs> kizzo the only slow parts are gcc and the tests really.
this is nothing compared to compiling a gcc toolchain
15:55 < kizzo> Thanks for telling me about make.bash - that's all I need for
now.
15:56 -!- piranha [~piranha@port-92-200-9-197.dynamic.qsc.de] has quit [Quit:
Computer has gone to sleep.]
15:56 < kizzo> For some reason, even after using DISABLE_NET_TESTS (or
whatever), a network-related test ran, and failed, but I will figure that all out
later.
15:56 < kizzo> I just need to compile something in Go right now.
15:56 < nsf> I think that won't work btw, 'DISABLE_NET_TESTS=1 ./all.bash'
15:56 < nsf> you need to export it really
15:57 < nsf> or maybe it will, I don't know
15:57 < nsf> whatever
15:58 -!- napsy [~luka@88.200.96.18] has joined #go-nuts
15:59 < kizzo> mmm noted
16:00 < skelterjohn> DISABLE_NET_TESTS=1 ./all.bash will work
16:00 < skelterjohn> DISABLE_NET_TESTS=1; ./all.bash will not, i think
16:00 < skelterjohn> but
16:00 < skelterjohn> export DISABLE_NET_TESTS=1; ./all.bash will
16:09 < jnwhiteh> nsf: yeah no need to export it
16:10 < jnwhiteh> you can add envs on the commandline as what I said
16:10 < nsf> well, it depends
16:10 < nsf> but bash transfers all the env vars to child processes yes
16:11 < nsf> for some reason I thought it might be an issue
16:11 < nsf> I guess I was wrong
16:12 -!- sauerbraten [~sauerbrat@p508CBE09.dip.t-dialin.net] has quit [Ping
timeout: 252 seconds]
16:15 < skelterjohn> if you have it on the same command line, it is given to
the child proc
16:15 < skelterjohn> but if it's not on the same command line, you have to
export it
16:16 < ww> really?  me is skeptical...
16:16 < ww> echo echo \$hello > foo.bash; hello=world; bash foo.bash;
hello=world bash foo.bash;
16:16 < ww> if it transferred non-exported variables to child processes it
would print "world" twice...  it only prints once...  which is as expected
16:18 < skelterjohn> that...is what i said...
16:18 < nsf> ...
16:18 < nsf> :)
16:18 < skelterjohn> to be clear, i consider that to be 4 command lines :)
16:18 < skelterjohn> the semicolon separates command lines
16:18 * ww agrees with skj
16:18 < skelterjohn> oh, i thought you were referring to me when you said
you were sceptical
16:18 < skelterjohn> skeptical
16:21 < ww> no, was skeptical about the suggestion that it would but didn't
bother to scroll up so may have missed some context
16:21 * ww just happy to contribute a 4-in-1-liner to prove you right
16:22 -!- piranha [~piranha@e180075095.adsl.alicedsl.de] has joined #go-nuts
16:22 -!- zimsim [~simon@87.72.77.195] has quit [Read error: Operation timed out]
16:24 < ww> what a curious mix of helpfulness and grumpiness the mailing
list is
16:39 -!- Fish [~Fish@9fans.fr] has joined #go-nuts
16:40 -!- zimsim [~simon@87.72.77.195] has joined #go-nuts
16:41 -!- dju__ [dju@fsf/member/dju] has quit [Quit: Quitte]
16:42 -!- cco3 [~conley@c-69-181-140-72.hsd1.ca.comcast.net] has joined #go-nuts
16:50 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-170-37.clienti.tiscali.it] has
joined #go-nuts
16:53 -!- MX80 [~MX80@cust151.253.117.74.dsl.g3telecom.net] has quit [Ping
timeout: 260 seconds]
16:58 < skelterjohn> heh
17:00 < skelterjohn> what are you referring to?
17:08 -!- sauerbraten [~sauerbrat@p508CBE09.dip.t-dialin.net] has joined #go-nuts
17:19 -!- piranha [~piranha@e180075095.adsl.alicedsl.de] has quit [Quit: Computer
has gone to sleep.]
17:25 -!- jokoon [~zonax@feu30-1-82-242-58-229.fbx.proxad.net] has quit [Quit:
Leaving]
17:43 < ww> skelterjohn: was referring to the seemingly testy exchange about
gorun vs.  goscript when i wrote that
17:55 -!- fzzbt [~fzzbt@a88-112-18-177.elisa-laajakaista.fi] has joined #go-nuts
17:56 < steven> jnwhiteh, ww, skelterjohn, nsf: whatcha guys think?
17:56 < steven> https://github.com/sdegutis/gorm
17:56 -!- crazy2be [~crazy2be@d209-89-248-73.abhsia.telus.net] has joined #go-nuts
17:56 < nsf> looks fine
17:58 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts
17:58 < steven> its terrible for use where the model will change, because
theres no built-in way to migrate the data or schema
17:58 < fzzbt> anyone know how do to get the ip-address of the connected
user when using websocket package?  websocket.Conn.LocalAddr/RemoteAddr return
something else than that..
17:59 < steven> this sort of thing is much easier in an interpreted language
like ruby
18:00 < nsf> steven: I think databases stuff need a DSL
18:00 < nsf> in ruby it's easy to make a DSL
18:00 < crazy2be> hmm so if i do something like var worldData =
make(map[int32]map[int32][256][256][256]Block), why am i still getting a nil map
error?
18:00 < nsf> needs*
18:00 < crazy2be> when i do chunk := worldData[cc.X][cc.Z]
18:00 < nsf> crazy2be: because you need to 'make' an inner map as well
18:00 < crazy2be> ah, i was wondering.  How do i do that?
18:01 < crazy2be> make() within make()?
18:01 < kamaji> I think you have to iterate through and make a new one each
time
18:01 < nsf> no
18:01 < nsf> make() for each worldData[uniqueIndex]
18:01 < nsf> e.g.
18:01 < nsf> after your statement:
18:01 < steven> nsf: i dont think it needs a DSL per se, but the problem im
seeing here is that any migrations you might want to do will need to be linked
against the main binary or something
18:01 < fzzbt> steven: have you seen this https://github.com/zetaben/gouda
18:01 < nsf> worldData[cc.X] = make(map[int32][256]Block)
18:02 -!- Cromulent [~Cromulent@cpc8-reig4-2-0-cust24.6-3.cable.virginmedia.com]
has joined #go-nuts
18:02 < nsf> steven: well..  I don't know
18:03 < nsf> I think DSL is a way to go for databases
18:03 < skelterjohn> ww: that kind of thing always happens when someone
rewrites someone else's project with small changes
18:05 < jumzi> Kinda like the linux vs OSX/windows squabble?
18:05 < jumzi> *scnr*
18:05 < skelterjohn> what does scnr mean
18:06 < skelterjohn> ah, googled
18:06 < steven> nope fzzbt looks neat
18:06 < jumzi> skelterjohn: ^^
18:06 < steven> osx/windows?
18:06 < fzzbt> steven: and dead
18:07 < steven> people debate which one is better?
18:07 < steven> srsly?
18:07 < steven> its as much of a debate as whether water is wet or not.
18:07 < steven> os x is in fact better than windows.  nobody argues that
fact.
18:07 < jumzi> steven: 1.  you missed the "linux"
18:07 < steven> now linux vs os x, thats a debate.
18:08 < steven> oh.
18:08 < jumzi> 2.  you missed the scnr
18:08 < steven> yeah i did.  sorry.
18:08 < steven> ok im done :)
18:11 < steven> oh i just had an idea this morning
18:11 < steven> when we write packages, we can easily version them by
setting TARG=my_namespace/1.0/package_name
18:12 < steven> ie, TARG=sdegutis/1.0/gorm
18:12 < crazy2be> nsf: do i have to make the arrays as well?
18:12 -!- rtharper [~tomh@unaffiliated/sioraiocht] has quit [Remote host closed
the connection]
18:12 < nsf> crazy2be: no
18:12 < nsf> but you'll have other problems with them
18:12 < nsf> or not
18:12 < nsf> you'll see
18:12 < nsf> :D
18:15 < madari> fzzbt: I know that you can get the addr atleast from
http.ResponseWriter.RemoteAddr()
18:15 < TheMue> nsf: Do you know who's managing the Go projects page?
Submitting a new project is simple (form), but I don't find a way to remove a
duplicate or modifying one.
18:15 < nsf> TheMue: ask Andrew aka adg
18:16 < madari> TheMue: Ha! I asked the same thing here today =)
18:16 < TheMue> nsf: ok, thx
18:22 < fzzbt> madari: oh ok thanks
18:26 < steven> defers are always run even if a panic occurs, right?
18:26 < skelterjohn> yes
18:26 < steven> im trying to find the safest place to close my db
connection.  i think defer in the fn that opens the connection is right.
18:27 < skelterjohn> closing resources using defer is standard practice
18:27 < skelterjohn> if you want the resource to be bound to the function
18:34 < kamaji> is there a thing like javadoc for go?
18:35 < fzzbt> kamaji: godoc
18:35 < kamaji> fzzbt: cheers
18:36 < kamaji> Is that in the same format?
18:37 < fzzbt> no..  im not sure where is it documented
18:38 < fzzbt> very simple format anyway since its used in go itself
18:38 < zimsim> http://golang.org/cmd/godoc/
18:38 < ww> steven: looks nice!
18:38 < fzzbt> yeah, that doesn't describe the format at all
18:39 < kamaji> It seems to be just // comments
18:39 < kamaji> with no special formatting
18:39 < kamaji> i'm not sure if that's correct?
18:39 < ww> i wonder if you could do something like make it a serialiser for
gob
18:39 < ww> on second thought i wonder if you'd want to...  not certain it
would be useful like that...
18:39 < fzzbt> kamaji: i know you can make special <code> style tags
by prefixing your comment with a tab
18:40 < skelterjohn> fzzbt: you just put a comment before what you want to
document
18:40 < skelterjohn> and it will show up in the right place
18:40 < kamaji> Oh cool
18:40 < kamaji> to both :D
18:40 < kamaji> thanks
18:40 -!- kizzo [~kizzo@c-24-130-55-180.hsd1.ca.comcast.net] has left #go-nuts []
18:40 -!- rtharper [~tomh@unaffiliated/sioraiocht] has joined #go-nuts
18:41 -!- JusticeFries [~JusticeFr@c-24-9-171-36.hsd1.co.comcast.net] has quit
[Quit: JusticeFries]
18:41 -!- cenuij [~cenuij@base/student/cenuij] has quit [Remote host closed the
connection]
18:41 < ww> skelterjohn: but also the tense but not unproductive exchanges
with mr.  unprintable
18:42 < skelterjohn> he could tone it down a bit, certainly
18:42 < ww> it's just a funny mix of tones on the list is all...
18:42 < steven> is there a way of knowing what directory the binary lives
in, which is being executed?  or to know its full path?
18:42 < steven> ww: thanks bro
18:42 < skelterjohn> which <the binary>
18:42 < ww> steven, yes
18:42 < ww> 1 sec.  i just did that yesterday
18:43 < skelterjohn> oh you mean from in the go source
18:43 < ww> http://pastebin.com/b9caXT6L
18:43 < ww> where cwd is from os.Getwd()
18:44 < steven> cool thats what i found too
18:44 < ww> i use that to cleanly daemonise and also to let the daemon
restart itself
18:44 < steven> but its documentation is lacking
18:44 < steven> so i wasnt sure if it does what i think it does.
18:44 < skelterjohn> that would only work if you do a ./something, though?
18:44 < steven> is it pretty close to __FILE__ in ruby?
18:44 < steven> thats what im afriad of skelterjohn
18:44 < skelterjohn> if you install a go program, and run it from another
WD, neither os.Args nor os.Getcwd() would help you
18:45 < steven> so where you run the program from is going to affect this?
18:45 < steven> hmm
18:45 < skelterjohn> i suppose if os.Args[0] doesn't begin with a "./" you
can use exec.LookPath
18:46 < skelterjohn> steven: it will affect it if you use os.Getwd(),
certainly
18:46 < ww> no it seems to work without ./
18:46 < steven> ill test this.
18:46 < ww> no, i'm mistaken
18:46 < skelterjohn> ww: it can't possibly :)
18:47 < skelterjohn> just not enough information
18:48 < ww> exec.LookPath will be better but is still error-prone
18:48 < ww> consider:
18:48 < ww> PATH=/some/where/obtuse:$PATH
18:48 < ww> program
18:49 < ww> where program is in /some/where/obtuse...  and won't necessarily
get the shell's path environment variable
18:49 < steven> os.Getwd() only shows the `pwd` at the time the process was
rn.
18:49 < steven> *run
18:50 < skelterjohn> ah, you're right ww
18:50 < ww> steven, yes that was just me being dumb
18:50 < skelterjohn> i don't know how to do this
18:50 < steven> so it seems impossible to reliable know what the directory
or path of the executable is, from within that executable
18:51 < ww> it is in the first argument to the exec*() syscall that started
it...
18:51 < steven> oh maybe if i combine os.Getwd() with os.Argv[0]
18:53 < ww> that's what i did, except that...  look at the man page for e.g.
execv
18:53 < ww> the first argument is the full path to the program to run
18:53 < skelterjohn> lol steven that's what ww's paste did
18:53 < ww> the first element of argv is os.Argv[0] which might be some
arbitrary string
18:54 < skelterjohn> maybe there is a syscall that can give you this
information
18:56 < steven> figured it out
18:56 < steven> here
18:56 -!- pingveno [~pingveno@c-98-246-133-8.hsd1.or.comcast.net] has quit [Read
error: Operation timed out]
18:56 < steven> https://gist.github.com/868334
18:58 < steven> even better, run path through fileutil.Clean()
18:58 < steven> gets rid of the extra /./
18:58 -!- pingveno [~pingveno@c-98-246-133-8.hsd1.or.comcast.net] has joined
#go-nuts
18:59 < skelterjohn> that has the same issue as ww' snip
18:59 < ww> steven: that's the same as mine except using HasPrefix instead
of filepath.IsAbs
19:09 -!- fafhrd [~fafhrd@unaffiliated/fafhrd] has quit [Remote host closed the
connection]
19:09 < ww> it looks like the environment variable "_" may be set at least
by bash
19:09 < kamaji> Are there any sparse vector types in go?
19:09 < kamaji> will map do the trick?
19:09 < aiju> kamaji: yes
19:09 < ww> kamaji niemeyer wrote a sparse matrix library
19:09 < kamaji> is it basically just a red-black tree?
19:09 < aiju> that's a hashmap
19:10 < kamaji> aiju: you mean map?
19:10 < aiju> yes
19:10 < kamaji> but doesn't it do ints too?
19:10 < aiju> it does do ints, yeah
19:10 < kamaji> Seems weird that they'd be a hashmap...
19:10 < kamaji> how does that even work :D
19:10 * ww apologises profusely
19:10 < ww> skelterjohn wrote it
19:10 < aiju> ints are series of bytes, too
19:10 < ww> http://code.google.com/p/gomatrix/
19:11 < kamaji> ww: cheers, I was just trying to find that
19:12 < kamaji> aiju: couldn't you just use the int value as the "hash
function"?
19:12 < kamaji> 'cause the buckets are in a red-black tree right?
19:13 < aiju> kamaji: i have no clue
19:13 < kamaji> aiju: it doesn't really matter anyway :P
19:13 < kamaji> aiju: I was just wondering
19:13 < kamaji> thanks though :)
19:14 * jumzi runs around scared
19:14 < steven> ww: oh yours is better though
19:14 < ww> steven: still broken :)
19:15 < jumzi> hashmaps isn't that one of those few things you just *have*
to know
19:15 < steven> why ww?
19:15 < steven> when will it not work?
19:16 < ww> when os.Args[0] contains no leading . or /
19:16 < steven> which would happen when?
19:16 < aiju> it's in $PATH
19:16 < ww> when i just run "program"
19:16 < aiju> esp.  if someone puts "." into his $PATH
19:16 < steven> oh.  if thats the case we can use LookUp or whatever the fn
was
19:16 < steven> right?  :)
19:17 < ww> i think that's the best we can do - modulo $_ which is set by at
least some shells
19:17 < steven> not zsh
19:17 < steven> :P
19:18 < ww> there must be a way...
19:18 < steven> there is a way..  Jesus is the way
19:20 < ww> it's not uncommon for some daemons to actually change argv[0] to
be a pretty string that isn't a filename at all...
19:20 < steven> ouch
19:21 -!- Fish [~Fish@9fans.fr] has quit [Quit: So Long, and Thanks for All the
Fish]
19:21 < ww> postgres: stats collector process
19:21 < ww> you might have to resort to some sort of a wrapper that
guarantees to set argv[0] to what you want
19:21 < steven> the reason i needed this in the first place was, im trying
to figure out the best way to structure finding views for my web framework
(modeled similarly to rails)
19:22 < aiju> on Linux you can read /proc
19:22 * ww discourages linuxisms in the name or portability
19:22 < aiju> /proc/$pid/exe is a symlink to the executable
19:22 < steven> osx ftw
19:23 < aiju> i'm pretty sure *BSD and OS X have this as well, just the name
might be different
19:24 -!- Fish [~Fish@9fans.fr] has joined #go-nuts
19:24 < skelterjohn> certainly no /proc on os x
19:25 < steven> right
19:25 < steven> cant find such a dir even resemlbing it
19:34 -!- Cobi [~Cobi@2002:1828:88fb:0:aede:48ff:febe:ef03] has quit [Quit: ZNC -
http://znc.sourceforge.net]
19:34 -!- Cromulent [~Cromulent@cpc8-reig4-2-0-cust24.6-3.cable.virginmedia.com]
has quit [Quit: Cromulent]
19:36 -!- Cobi [~Cobi@2002:1828:88fb:0:aede:48ff:febe:ef03] has joined #go-nuts
19:37 -!- cenuij [~cenuij@78.112.41.178] has joined #go-nuts
19:37 -!- cenuij [~cenuij@78.112.41.178] has quit [Changing host]
19:37 -!- cenuij [~cenuij@base/student/cenuij] has joined #go-nuts
19:37 -!- tvw [~tv@e176003011.adsl.alicedsl.de] has quit [Remote host closed the
connection]
19:37 < ww> steven, this one works: https://gist.github.com/868358
19:37 < ww> assuming we can trust $PATH
19:43 -!- Cromulent [~Cromulent@cpc8-reig4-2-0-cust24.6-3.cable.virginmedia.com]
has joined #go-nuts
19:46 -!- Wiz126 [~Wiz@24.229.245.72.res-cmts.sm.ptd.net] has quit []
19:46 < kamaji> Do I have to import the parent package in a sub package?
19:47 < ww> kamaji: no you shouldn't have to
19:47 < kamaji> ok cheers
19:47 < ww> it is possible that the subpackage depends on the parent package
but goinstall should take care of making sure it is installed for you
19:48 < steven> ww: I CAN DIG IT
19:49 -!- jumzi [~none@c-89-233-234-125.cust.bredband2.com] has quit [Remote host
closed the connection]
19:51 < ww> steven: freebsd has kvm_getprocs and one of the fields in the
returned structure is the real command path
19:51 < ww> also not portable though, noteably absent in osx
19:54 < ww> looks like it used to be in osx but has been remoevd in recent
versions...
19:54 < ww> answer: no portable way to do it that is guaranteed to be
accurate
19:57 < skelterjohn> that we have come up with so far
19:57 < skelterjohn> ww - not all relative paths have to start with ./
19:57 < skelterjohn> if you have an executable in a directory
19:57 < skelterjohn> you can do "dir/exe"
19:58 < skelterjohn> without having "." in $PATH
19:58 < skelterjohn> at least, on os x
19:58 < skelterjohn> i think this is stupid
19:58 < aiju> you can do that on Linux too
19:58 < skelterjohn> yeah i imagine it's a feature of bash rather than of
the os
19:59 < aiju> i'd write a request on the mailing list that they should a
function to the library ;P
19:59 < ww> right.  eventually this is going to elaborate into a function
that duplicates bash' algorithm
20:00 < aiju> skelterjohn: it's an OS feature
20:00 < aiju> the shell does execve("bin/command", ...)
20:00 < skelterjohn> ah
20:00 < skelterjohn> ok
20:02 -!- captn [~root@pD9FE28F3.dip.t-dialin.net] has joined #go-nuts
20:03 < ww> so instead of strings.HasPrefix, https://gist.github.com/868358
20:03 < ww> argh.  bad paste
20:03 < ww> strings.Index(program, "/") >= 0
20:05 < ww> still at the mercy of deliberately unhelpful spawning programs
though...
20:05 < aiju> could someone on *BSD or OSX check /proc?
20:05 < ww> execv("/bin/program", ["nonsense", "etc"])
20:05 < ww> there is no proc anywhere but linux
20:05 < aiju> wtf
20:05 < aiju> bs
20:05 < aiju> it was originally a Solaris feature
20:06 < aiju> oh bs
20:06 < aiju> a V8 feature
20:06 < skelterjohn> certainly no /proc on osx
20:06 < skelterjohn> would be nice
20:06 < aiju> 4.4BSD had it
20:06 < ww> no way
20:07 < aiju> even Sys V has it!
20:08 -!- jumzi [~none@c-89-233-234-125.cust.bredband2.com] has joined #go-nuts
20:08 -!- MX80 [~MX80@cust151.253.117.74.dsl.g3telecom.net] has joined #go-nuts
20:08 < ww> well, yes there is an optional proc filesystem in bsd
20:09 < ww> it is often not even compiled into a kernel
20:09 < ww> and even less often is it actually mounted
20:09 < ww> you can't rely on it being there
20:10 < ww> the only os that won't even boot without it, afaik, is linux
20:10 < ww> (single user mode doesn't count)
20:10 < aiju> plan 9
20:10 < aiju> Plan 9 uses /proc heavily
20:11 * jumzi feels afraid since aiju read his mind
20:11 < aiju> i'm really disappointed of *bsd here
20:11 < jumzi> On a sidenote plan 9 kinda introduced the /proc
20:11 < aiju> jumzi: that was V8
20:12 < jumzi> Doesn't count, obviously
20:12 < ww> plan9 (and gnu hurd) had a lot of innovative ideas
20:12 < aiju> hurd?  innovative?
20:12 < jumzi> ww: No.
20:12 < ww> in my experience almost never find them in the field though
20:12 < aiju> microkernels are stale by now
20:12 < jumzi> aiju: Tbh, plan9 is micro-like
20:13 < aiju> yeah, somewhat
20:13 < jumzi> kinda like go beeing object like =D
20:13 < aiju> haha
20:13 * ww was particularly thinking of using the filesystem for almost
everything...  network connections...  etc
20:13 < aiju> ww: that's something Plan 9 did
20:13 < aiju> i think even some later UNIX had it
20:13 < jumzi> Where tbh gnu hurd is a reimplementation
20:13 < ww> sure, afs kinda does that a little bit
20:14 < aiju> Hurd is poor man's Plan 9
20:14 < jumzi> But on the other hand
20:14 < jumzi> Plan9 has borrowed allot of ideas and extended them
20:14 < ww> however, both hurd and plan9 have rarely been seen outside the
lab
20:14 < aiju> well, yeah
20:14 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-170-37.clienti.tiscali.it] has
quit [Quit: E se abbasso questa leva che succ...]
20:14 -!- sauerbraten [~sauerbrat@p508CBE09.dip.t-dialin.net] has quit [Remote
host closed the connection]
20:15 -!- femtoo [~femto@95-89-198-8-dynip.superkabel.de] has joined #go-nuts
20:19 -!- aho [~nya@fuld-590c6ce2.pool.mediaWays.net] has quit [Quit:
EXEC_over.METHOD_SUBLIMATION]
20:19 -!- rlab_ [~Miranda@91.200.158.34] has joined #go-nuts
20:20 -!- rlab [~Miranda@91.200.158.34] has quit [Ping timeout: 240 seconds]
20:24 < steven> ww: point isnt to make sure it works 100% of the time, but
rather 95%
20:24 < steven> :)
20:33 * ww realises that it's been years since i tried running plan9...
20:33 < ww> used to use rc as a shell though...  had forgotten about that
20:33 -!- cenuij [~cenuij@base/student/cenuij] has quit [Remote host closed the
connection]
20:36 -!- Cromulent [~Cromulent@cpc8-reig4-2-0-cust24.6-3.cable.virginmedia.com]
has quit [Quit: Cromulent]
20:38 -!- tensorpudding [~user@99.56.160.152] has joined #go-nuts
20:38 < kamaji> Is there anything for doing gaussian distribution
calculations?
20:39 -!- cenuij [~cenuij@78.112.41.178] has joined #go-nuts
20:39 -!- cenuij [~cenuij@78.112.41.178] has quit [Changing host]
20:39 -!- cenuij [~cenuij@base/student/cenuij] has joined #go-nuts
20:40 < captn> kamaji: http://golang.org/pkg/math/ ;-)
20:42 < nsf> http://pastie.org/1667923
20:42 < nsf> :P
20:42 < kamaji> captn: no gauss, but I can use erf to build it right?
20:42 < nsf> now my parser in a certain usable state
20:52 -!- ExtraSpice [XtraSpice@78-62-101-194.static.zebra.lt] has quit [Remote
host closed the connection]
21:04 -!- femtoo [~femto@95-89-198-8-dynip.superkabel.de] has quit [Ping timeout:
255 seconds]
21:05 -!- femtoo [~femto@95-89-198-8-dynip.superkabel.de] has joined #go-nuts
21:15 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts
21:16 -!- ronnyy [~quassel@p4FF1C736.dip0.t-ipconnect.de] has quit [Remote host
closed the connection]
21:16 < nsf> uhm..  why Go doesn't support 'a, b += 1, 1'?
21:16 < nsf> I know it's a bit weird
21:16 < nsf> but why not?  :)
21:16 -!- rlab_ [~Miranda@91.200.158.34] has quit [Ping timeout: 250 seconds]
21:18 < aiju> nsf: write to the mailing list about it
21:18 < aiju> a,b,c=0 is one thing i'd like to see
21:19 < nsf> uhm, I don't care that much about it
21:22 -!- napsy_ [~luka@88.200.96.18] has joined #go-nuts
21:25 < nsf> aiju: yeah, 'a,b,c=0' is a nice replacement for 'a=b=c=0'
21:26 < nsf> I think I will implement that in my lang :)
21:27 -!- jumzi [~none@c-89-233-234-125.cust.bredband2.com] has quit [Ping
timeout: 246 seconds]
21:27 -!- cco3 [~conley@c-69-181-140-72.hsd1.ca.comcast.net] has quit [Ping
timeout: 252 seconds]
21:29 < captn> what's wrong with a,b,c := 0,0,0 ? Looks at least not weird
to me :-)
21:29 < nsf> captn: repetition
21:29 < nsf> a, b, c := sin(3.14), sin(3.14), sin(3.14)
21:29 < nsf> vs.
21:29 < nsf> a, b, c := sin(3.14)
21:32 -!- piranha [~piranha@e180075095.adsl.alicedsl.de] has joined #go-nuts
21:33 -!- femtoo [~femto@95-89-198-8-dynip.superkabel.de] has quit [Read error:
Connection reset by peer]
21:38 < captn> I don't think I would feel comfortable with your lang ;-)
21:38 < nsf> I'd say it's a questionable feature
21:39 < nsf> but and interesting idea though
21:39 < nsf> an*
21:39 < nsf> and my language will be a C 2.0 (sort of), most of the people
on this channel don't want to see a lang without garbage collection
21:40 < nsf> but that's a different point i guess
21:42 < captn> garbage collection is unfortunately a killer for any rt
processing ...
21:42 < aiju> gosh
21:42 < aiju> the rt argument
21:43 -!- Cromulent [~Cromulent@cpc8-reig4-2-0-cust24.6-3.cable.virginmedia.com]
has joined #go-nuts
21:43 < nsf> for me it's much more important that it's a killer for C
compatibility
21:43 < kamaji> 6g error: "package main, expected stats"
21:43 < nsf> because you have this separation of managed and unmanaged code
21:43 < kamaji> I'm trying to build two different packages in one makefile,
is that wrong?
21:44 < kamaji> and then it says "can't find import: stats"
21:44 < exch> packages need to be built independantly
21:44 < kamaji> oh right :\
21:45 < kamaji> can I put a main function in a not-main package?
21:45 < aiju> no
21:45 < kamaji> poop!
21:45 < aiju> you're likely to be best off stuffing everything in one
package
21:45 < kamaji> and that package has to be main I guess?
21:46 < aiju> exactly
21:46 < exch> https://github.com/jteeuwen/go-example-multipkg here's an
example of using multiple packages in one ap and how to build them
21:46 < exch> s/ap/app/
21:46 < kamaji> oh...  ok it makes more sense now I'm kinda thinking of
"import" like "include" but it's not really at all
21:46 < kamaji> I mean I was thinking like that
21:46 < kamaji> also thanks exch, gonna try that later
21:47 < kamaji> woohoo it works
21:47 < kamaji> :D
21:48 < kamaji> oh wait no I just hardcoded the value and forgot
21:48 -!- tvw [~tv@e176003011.adsl.alicedsl.de] has joined #go-nuts
21:48 < kamaji> let's pretend nobody saw that....
21:48 < exch> grmbl.  writing javascript after writing a lot of Go is a pain
in the bum.  I keep forgetting ( ) around expresions and I've had to track down
numerous occasions where I forgot the 'break' in a switch statement
21:48 -!- zozoR [~Morten@56346ed3.rev.stofanet.dk] has quit [Remote host closed
the connection]
21:49 < nsf> exch: same for C/C++
21:49 < nsf> if int i...  ugh..
21:50 < nsf> oops
21:50 < nsf> I mean:
21:50 < nsf> for int i = 0...  ugh..
21:50 < aiju> i miss C features while writing Go and miss Go features while
writing C
21:50 < nsf> pointer arithmetic?
21:50 < aiju> and stuff like the comma operator
21:50 < aiju> or i++ in expressions
21:50 < nsf> I'm writing a lang with Go syntax and pointer arithmetic :)
21:50 < nsf> but no ++ -- in expressions
21:50 -!- TheMue [~TheMue@p5DDF73AF.dip.t-dialin.net] has quit [Quit: TheMue]
21:51 < nsf> and no comma op of course
21:51 < aiju> meh
21:51 < nsf> frankly I don't use it in C
21:51 < aiju> i use it all the time
21:51 < aiju> while(n > 0 && (rc = read(fd, buf, n), rc > 0))
21:51 < nsf> hehe
21:51 < aiju> a = foo, a > b is much nicer than (a = foo) > b imho
21:52 < aiju> i really miss such initializers in Go
21:52 < nsf> and (a = foo) has to be an expression
21:52 < aiju> while(x = foo(), x > 0)
21:52 < nsf> it's not in Go and it won't be in my lang
21:52 < captn> back in c++ I really need some automatic ; insertion tool :-)
21:52 < aiju> i don't know why people have trouble switching between C and
Go syntax
21:52 < nsf> captn: actually it's not the biggest problem :)
21:53 < aiju> break; is the biggest problem i have
21:53 < nsf> 'break' and parens around 'if'
21:53 < aiju> and that one is a minor one
21:53 < nsf> is really a big problem )
21:53 < nsf> especially 'break'
21:53 < aiju> i *really* miss braces free if in Go
21:53 < nsf> because it's a logical problem
21:53 < nsf> but a correct syntax
21:53 < nsf> aiju: you mean in C?
21:53 < aiju> if(foo) dosomething();
21:53 < nsf> ah
21:53 < nsf> I see
21:54 < aiju> i know that retards screw it up
21:54 < aiju> but 80% of my if's are one liners
21:54 < nsf> braces/parens/brackets )
21:54 < aiju> esp.  without exceptions
21:54 < aiju> if(err < 0) goto error;
21:54 < nsf> no, I like if { } in Go
21:54 < nsf> because it frees you from thinking whether you should start a {
} block or not
21:54 < nsf> just always type { } )
21:55 < aiju> meh
21:57 < aiju> for me, those are all small things which together make Go feel
laborious at times
21:58 < nsf> an interesting point
21:58 < nsf> because for me Go is much easier to write than C
21:58 < nsf> especially for something like a parser
21:58 < nsf> when there is a lot of switch statements
21:58 < nsf> I like 'break' in C :)
21:58 < nsf> hate*
21:59 < nsf> and in Go you can write: case A, B, C:
21:59 < nsf> in C it's: case A: case B: case C:
21:59 < nsf> ugh..
22:00 < str1ngs> try doing foo := "foo " + "bar" in C ..  on one line :P
22:00 < nsf> C can concatenate string literals for you
22:00 < nsf> const char *foo = "foo " "bar";
22:00 < kamaji> hurrah
22:00 < kamaji> it works
22:00 < nsf> is valid
22:00 < nsf> str1ngs: but of course if you mean string variables
22:00 < str1ngs> not after declration thouh
22:01 < nsf> it's a bit of work without a proper library
22:01 -!- photron [~photron@port-92-201-114-36.dynamic.qsc.de] has quit [Read
error: Operation timed out]
22:01 < aiju> asprintf(&ptr, "%s %s", foo, bar);
22:01 < nsf> asprintf is GNU
22:01 < aiju> and yeah, non-standard blabla
22:01 < nsf> :)
22:01 < aiju> These functions are GNU extensions, not in C or POSIX.  They
are also available under *BSD.  The FreeBSD implementa-
22:01 < aiju> tion sets strp to NULL on error.
22:02 < aiju> GNU, *BSD, else just write the fucking ten lines
22:02 < nsf> https://github.com/nsf/lib99/blob/master/strstr.h
22:02 < str1ngs> the list goes on for little things like that that at up.
atleast for me grated I'm not a C programmer
22:02 < nsf> I have a small C strings library
22:02 < nsf> for my own use
22:02 < aiju> str1ngs: if you do a 1:1 transliteration from non-C to C
string processing code, the result will, understating it, suck horribly
22:03 < aiju> i currently do string manipulation in ASM
22:03 < aiju> *this* is fun
22:03 < str1ngs> aiju: ya why I rather use go.  atleast coming from say
python or ruby.  much easier to work worth.
22:04 < str1ngs> I'm workng on some go binding for libgit2 and I made some C
tests.  man was it tedious
22:06 < aiju> i find "serious" string manipulation annoying in every
language
22:06 < nsf> what do you mean by "serious?
22:06 < nsf> "*
22:06 < aiju> non-trivial
22:06 < nsf> like?  :)
22:06 < aiju> say, split a string by whitespace, but interpret "" properly
22:07 < str1ngs> ya this was trivial stuff I was talking about.  I'm sure
for a C guy they would laugh at me trying to figure it out.  but imo just to low
level for such a simple task
22:07 < nsf> hehe
22:07 < nsf> man wordexp
22:07 < nsf> wordexp also expands shell commands :)
22:07 < aiju> specialized library functions don't count
22:08 < aiju> they fail with the next example anyone comes up with
22:08 < nsf> but other than that you're right
22:08 < nsf> i would use ragel for that kind of complex task
22:08 < aiju> try writing an Infix parser in any language ;P
22:08 < nsf> http://www.complang.org/ragel/
22:08 < aiju> blah
22:08 < nsf> it helps a lot with different kinds of regular processing
22:08 * aiju is currently debugging his ASM
22:08 < aiju> it jumps to 0 for some reason
22:09 < aiju> but only in qemu and not in bochs o.O
22:10 < str1ngs> the sad part about C no matter how much I try to avoid it
eventually I can sucked into learning more about it.  swear its worst then the mob
:P
22:10 < nsf> I like C
22:10 < nsf> even though there are ugly parts
22:11 < aiju> there are random ugly parts sprinkled all over C
22:11 < nsf> yeah
22:11 < str1ngs> I guess I just like higher level stuff
22:11 < aiju> the type system goes back to 16-bit minicomputers and sucks
for anything else
22:11 < aiju> (integers, that is)
22:12 < aiju> random parts of B heritage (auto)
22:12 < nsf> unsigned long long
22:12 < nsf> :\
22:12 < aiju> standard comitees fucking the language up severely
(HAHAHAHAHAH C1X)
22:12 < nsf> well, actually it's an implicit int also as far as I remember
22:12 < nsf> so..  the full type is:
22:12 < nsf> unsigned long long int
22:12 < nsf> :)
22:12 < aiju> i hope, there will never, ever, be a standard for the Go
language
22:12 < nsf> aiju: uhm..  why?
22:13 < aiju> i don't want fucking comitees with their hands in it
22:13 < nsf> well, that's true, yeah, but what about stability
22:13 < nsf> a Go 1.0 let's say?
22:13 < aiju> standard as in "ISO standard"
22:13 < nsf> yes, yes
22:13 < nsf> I see then
22:14 < aiju> the best thing about standards is that no one implements them
22:14 -!- tvw [~tv@e176003011.adsl.alicedsl.de] has quit [Remote host closed the
connection]
22:14 < nsf> yeah
22:14 < aiju> there has been a FORTRAN 2008 standard, support nonexistant
22:15 < nsf> in gcc -std=c99 is not c99 yet
22:15 < nsf> I think it's kind of weird
22:15 < aiju> MSVC lacks C99 support completely afaik
22:15 < nsf> calling something -std in a release version
22:15 < nsf> without being it std
22:15 < nsf> yes
22:15 < nsf> they simply don't care about C99
22:16 < nsf> for some reason
22:16 < aiju> it sucks.
22:16 < nsf> I guess windows.h won't work with C99
22:16 < nsf> :)
22:17 -!- thomas_b [~thomasb@cm-84.215.47.51.getinternet.no] has quit [Read error:
Operation timed out]
22:17 < nsf> C1X is weird
22:17 < aiju> OH FUCK THAT SHIT
22:17 < nsf> type-generic expressions wtf
22:18 < aiju> i spent hours debugging a problem
22:18 < aiju> which was a missing i
22:18 < aiju> in front of "ret"
22:18 < aiju> :ß
22:18 < aiju> *:\
22:18 < aiju> general rule: the more i need to debug something, the more
likely is it that it's just a missing character
22:18 < nsf> I'm wondering what's the point of utf-8 encoded literals in C
22:18 < nsf> isn't that stupid?
22:19 < aiju> nsf: at least it's not UTF-16
22:19 -!- napsy_ [~luka@88.200.96.18] has quit [Quit: Lost terminal]
22:19 < nsf> there are literals for every unicode encoding
22:19 < aiju> they also want to make a low-level language for all platforms
22:19 < aiju> which is, nicely stated, ridiculous
22:19 < nsf> u"utf-16"
22:19 < nsf> U"utf-32"
22:19 < nsf> u8"utf-8"
22:20 < aiju> so they put into the standard that you can't cast function
pointers to data pointers et vice versa
22:20 < nsf> what?
22:20 < aiju> yes, it's illegal
22:20 < aiju> no one gives a shit
22:20 < nsf> :\
22:20 < aiju> it's a bullshit operation on harvard architectures
22:21 < aiju> (harvard as in seperated address spaces)
22:21 < kamaji> in the C standard?
22:21 < aiju> but C performs horribly in general on segmented architectures
22:21 < kamaji> I thought DSPs used C?
22:21 -!- awidegreen [~quassel@c-eacae555.08-2-73746f39.cust.bredbandsbolaget.se]
has quit [Read error: Connection reset by peer]
22:22 < kamaji> I mean you'd kill off pretty much that entire market if you
allowed the recast thing, right?
22:22 -!- thomas_b [~thomasb@cm-84.215.47.51.getinternet.no] has joined #go-nuts
22:22 < nsf> no one dies, it just becomes non-standard
22:22 < nsf> :)
22:22 < kamaji> lol
22:23 < kamaji> that reminds me of alan partridge
22:23 < aiju> there are many issues like that
22:23 < kamaji> oh no, that's "The Day Today" :\
22:23 < ww> let's just let Go stabilise a bit before we talk standards, can
me?
22:23 < ww> s/me/we
22:23 < aiju> like many modern languages, C only works on 8/16/32/64
architectures
22:24 < nsf> ww: none of us asking for a Go standard
22:24 < kamaji> aiju: does that mean it won't run on my brand new intel
4004?
22:24 < aiju> kamaji: e.g.
22:25 < aiju> my point being that restrictions because "it doesn't work on
some platforms" are silly
22:26 < kamaji> I dunno, the harvard architecture is pretty common
22:26 -!- ronny [~quassel@p4FF1C736.dip0.t-ipconnect.de] has joined #go-nuts
22:26 < aiju> unless you leave the embedded regime
22:26 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has quit [Quit:
Verlassend]
22:27 < kamaji> but C is like the only language for embedded
22:27 < aiju> so what?  float is also stupid in many embedded applications
22:28 < aiju> you can legitimately cast void* to int, even though that is
really stupid on AMD64
22:28 < ww> ...  might be useful for a hash table...
22:29 < kamaji> can always emulate float ;P
22:29 < aiju> yeah, just like data<->function pointer casts are useful
(or rather necessary) with JIT and what not
22:29 -!- Fish [~Fish@9fans.fr] has quit [Quit: So Long, and Thanks for All the
Fish]
22:31 -!- Cromulent [~Cromulent@cpc8-reig4-2-0-cust24.6-3.cable.virginmedia.com]
has quit [Quit: Cromulent]
22:33 < captn> did you guys noticed that go team silently dropped the arm
support: http://godashboard.appspot.com/ or am I missing something?
22:33 < aiju> writing assembly with if/endif feels really funny
22:34 < aiju> oh wow
22:36 -!- tensai_cirno [~cirno@77.232.15.216] has joined #go-nuts
22:36 -!- dfc [~dfc@sydfibre2.atlassian.com] has joined #go-nuts
22:39 -!- elimisteve [~elimistev@pool-71-102-138-52.snloca.dsl-w.verizon.net] has
left #go-nuts ["Peace"]
22:42 < kamaji> captn: aw man, I wonder why
22:47 < captn> in any case the current hg tip is broken
22:47 < dfc> captn: this is to go tip ?
22:48 < captn> yes
22:48 < dfc> works for me on darwin/amd64 and linux/386
22:49 < captn> no, I meant the _arm_ arch is broken (missing some symbols)
22:50 < dfc> ahh right, sorry about that
22:50 < dfc> http://godashboard.appspot.com/
22:51 < dfc> ^ did there used to be an arm column on this page ?
22:51 < dfc> i can't remember
22:51 < captn> http://godashboard.appspot.com/?n=30&p=4
22:53 < Guest93505> a
22:53 < aiju> the arm arch is not broken ;P
22:53 < aiju> unlike x86 which is severely broken
22:53 < aiju> but i think you mean the go port
22:54 < captn> sure
22:55 < dfc> ok, so the arm builder has failed to report in since the 7th
22:55 < dfc> i think rsc owns that machine
22:56 < captn> IIRC nexus1 connected to his mac :-)
22:58 -!- dfc [~dfc@sydfibre2.atlassian.com] has quit [Quit: Silly man, I am a
Baron!]
22:59 -!- dfc [~dfc@sydfibre2.atlassian.com] has joined #go-nuts
23:01 -!- dfc [~dfc@sydfibre2.atlassian.com] has quit [Client Quit]
23:03 -!- dfc [~dfc@sydfibre2.atlassian.com] has joined #go-nuts
23:05 -!- ath [ath@omega.lambda.fi] has quit [Ping timeout: 240 seconds]
23:05 -!- ath [ath@omega.lambda.fi] has joined #go-nuts
23:08 -!- iant1 [~iant@adsl-71-133-8-30.dsl.pltn13.pacbell.net] has joined
#go-nuts
23:09 -!- iant [~iant@adsl-71-133-8-30.dsl.pltn13.pacbell.net] has quit [Ping
timeout: 276 seconds]
23:12 -!- rlab [~Miranda@91.200.158.34] has quit [Quit: Miranda IM! Smaller,
Faster, Easier.  http://miranda-im.org]
23:18 -!- cenuij [~cenuij@base/student/cenuij] has quit [Read error: Connection
reset by peer]
23:24 <@adg> it's actually connected to a linux machine
23:24 <@adg> and that machine has been having issues
23:24 < steven> hmm,
23:25 < steven> the template package only allows 0-arg methods to be called.
23:25 < steven> i bet i could patch that to allow N simple-type (ie string,
int, float) arguments to be passed..
23:25 < steven> ie anything that strconv covers.
23:27 -!- Cromulent [~Cromulent@cpc8-reig4-2-0-cust24.6-3.cable.virginmedia.com]
has joined #go-nuts
23:27 < steven> is there any reason that wouldnt be desirable?
23:29 -!- piranha [~piranha@e180075095.adsl.alicedsl.de] has quit [Quit: Computer
has gone to sleep.]
23:33 -!- zimsim [~simon@87.72.77.195] has quit [Remote host closed the
connection]
--- Log closed Mon Mar 14 00:00:55 2011