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

--- Log opened Fri Apr 15 00:00:50 2011
00:08 -!- lmoura [~lauromour@186.215.206.130] has quit [Ping timeout: 246 seconds]
00:10 -!- katakuna [~pie@kjal.demon.co.uk] has quit [Ping timeout: 276 seconds]
00:15 < plexdev> http://is.gd/g3ynu0 by [Robert Griesemer] in
go/src/cmd/gofmt/ -- gofmt: exclude test case that doesn't compile w/o errors
00:15 < plexdev> http://is.gd/Shevye by [Ian Lance Taylor] in
go/src/pkg/gob/ -- gob: test case for indirection to large field.
00:18 < Glasswalker> justinlilly: yes that's what I intend, is for
DummyPacket to extend Packet...  But from my understanding the way I did it is how
you do that.
00:19 < Glasswalker> By specifying Packet inside DummyPacket (without any
type) it adds all the methods and fields from Packet to DummyPacket
00:19 < Glasswalker> that I know already
00:20 < Glasswalker> I had originally defined it with type DummyPacket
Packet {}
00:20 -!- angasule [~angasule@190.2.33.49] has joined #go-nuts
00:20 < Glasswalker> but was told that was wrong...  And that I should do it
the way I did
00:20 < Glasswalker> which works as far as that is concerned
00:20 < justinlilly> ahh.  likely.  I'm quite new myself.
00:20 < Glasswalker> Ahh
00:20 < Glasswalker> ok
00:20 * justinlilly writes up an example to see if he understands.
00:21 -!- lmoura [~lauromour@186.212.228.161] has joined #go-nuts
00:21 < Glasswalker> Yeah the only error I'm getting is on the cast because
it thinks Packet and DummyPacket don't implement iPacket because they are missing
an Add method (which they clearly have).  Something about Add not having a pointer
reciever
00:21 < Glasswalker> But I don't understand what that means :)
00:22 < justinlilly> ahh.
00:22 < Glasswalker> I understand what a reciever is...  but I thought it
was already defined as a pointer
00:22 < Glasswalker> so not sure what it's telling me
00:22 < justinlilly> right, you have a pointer to dummypacket
00:22 < justinlilly> that doesn't implement the interface you want.
00:22 < Glasswalker> Basically thinking like a C++ programmer (which is
where I'm coming from) if DummyPacket extended Packet, then I should be able to
assign between them
00:22 < Glasswalker> (or at the least cast between them)
00:22 < Glasswalker> but in Go that's not the case
00:23 < Glasswalker> you can only do it if an interface is involved
00:23 < Glasswalker> and that's the part I'm trying to get my head around
00:23 -!- dj2 [~dj2@CPE001f5b35feb4-CM0014048e0344.cpe.net.cable.rogers.com] has
joined #go-nuts
00:26 -!- foocraft [~dsc@78.100.161.104] has quit [Quit: Leaving]
00:27 < jessta_> Glasswalker:
00:28 < jessta_> Glasswalker: methods can be recievers that are pointers to
types or the types themselves
00:28 -!- tvw [~tv@e176006125.adsl.alicedsl.de] has quit [Ping timeout: 246
seconds]
00:29 < jessta_> http://golang.org/doc/go_spec.html#Method_declarations
00:29 -!- tvw [~tv@e176001015.adsl.alicedsl.de] has joined #go-nuts
00:29 < jessta_> for some reason I can't access pastie.org from here, so I
can't see your code
00:32 < plexdev> http://is.gd/7cooUx by [Rob Pike] in go/src/pkg/gob/ --
gob: fix handling of indirect receivers for GobDecoders.
00:33 < Glasswalker> jessta_: yes, but in my code I'm declaring it as "func
(p *DummyPacket) Add() {}" for example
00:33 < Glasswalker> does that not define it as a pointer?
00:33 -!- JusticeFries_
[~JusticeFr@173-8-247-218-Colorado.hfc.comcastbusiness.net] has joined #go-nuts
00:34 -!- JusticeFries_
[~JusticeFr@173-8-247-218-Colorado.hfc.comcastbusiness.net] has quit [Client Quit]
00:34 -!- tvw [~tv@e176001015.adsl.alicedsl.de] has quit [Ping timeout: 246
seconds]
00:37 -!- JusticeFries [~JusticeFr@173-8-247-218-Colorado.hfc.comcastbusiness.net]
has quit [Read error: Operation timed out]
00:40 -!- foocraft [~dsc@78.100.161.104] has joined #go-nuts
00:41 < jessta_> Glasswalker: is the variable you're converting to on
iPacket also a pointer?
00:42 < jessta_> could you paste your code somewhere else that I can see?
00:42 < Glasswalker> http://www.pastie.org/1795773
00:43 < Glasswalker> errors being thrown by compiler on line 57/59
00:44 < jessta_> Glasswalker: pastie.org doesn't resolve for me for some
reason
00:44 < Glasswalker> umm
00:44 < Glasswalker> ok
00:44 < Glasswalker> one sec
00:45 < Glasswalker> http://pastebin.com/yVD9G4FB
00:47 < jessta_> Glasswalker: yeah, so pOrigin isn't a pointer
00:48 < jessta_> &pOrigin is a pointer
00:49 < jessta_> so line 57 should be: pInterface = &pOrigin
00:50 < jessta_> but line 59 isn't going to work
00:51 < jessta_> because pInterface contains a Packet not a DummyPacket
00:52 < jessta_> what are you actually trying to do?
00:54 -!- dreadlorde [~dreadlord@c-24-11-39-160.hsd1.mi.comcast.net] has joined
#go-nuts
00:54 -!- mikespook [~mikespook@219.137.75.141] has joined #go-nuts
01:00 -!- franksalim [~franksali@99-123-6-19.lightspeed.sntcca.sbcglobal.net] has
quit [Read error: Connection reset by peer]
01:01 -!- franksalim [~franksali@99-123-6-19.lightspeed.sntcca.sbcglobal.net] has
joined #go-nuts
01:01 -!- saturnfive [~saturnfiv@210.74.155.131] has joined #go-nuts
01:02 -!- artefon [~thiago@187.59.185.156] has quit [Ping timeout: 240 seconds]
01:11 -!- angasule [~angasule@190.2.33.49] has quit [Remote host closed the
connection]
01:15 -!- krolaw [~krolaw@203.100.208.229] has quit [Quit: krolaw]
01:15 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts
01:16 * exch messes around with his script compiler some more
01:26 -!- rurban [~chatzilla@91-114-180-191.adsl.highway.telekom.at] has joined
#go-nuts
01:28 -!- fmoo [~Adium@66.220.144.74] has quit [Quit: Leaving.]
01:40 -!- gregschlom [~quassel@118.68.142.103] has joined #go-nuts
01:40 -!- krutcha1 [~krutcha@S010600045a27676a.vs.shawcable.net] has joined
#go-nuts
01:40 < Glasswalker> jessta_: Sorry was away from computer for a bit
01:40 < Glasswalker> I need to convert between 2 types
01:40 < Glasswalker> both structs
01:41 < Glasswalker> I simply need a way to make a Packet become a
DummyPacket and same in reverse
01:43 -!- nettok [~quassel@200.119.160.14] has joined #go-nuts
01:49 -!- gregschlom [~quassel@118.68.142.103] has quit [Ping timeout: 276
seconds]
01:52 < Glasswalker> I know referencing C++ or other C type languages is
considered taboo here...  But in those languages.  I have an object of type X and
Y is derived from X (or extends X depending on terminology).  So All Ys are Xs...
But not all Xs are Ys...  In that case it's possible for me to cast between types.
01:52 < Glasswalker> Provided I accept that I might be loosing data one way,
or gaining new un-filled fields the other way
01:52 -!- dreadlorde [~dreadlord@c-24-11-39-160.hsd1.mi.comcast.net] has quit
[Ping timeout: 240 seconds]
01:52 < Glasswalker> I need to achieve the same end goal now, using Go...  I
don't care if the method is different, I just need to know what the method is...
01:52 < Glasswalker> and I need to be able to understand it (which is why
the simple example in my code)
01:53 < krutcha1> in your example, what's the difference between the two
packets?
01:53 < Glasswalker> http://pastebin.com/yVD9G4FB
01:53 < Glasswalker> one has extra fields
01:53 < Glasswalker> DummyPacket has more fields
01:53 < Glasswalker> (which are derived from a field on Packet)
01:54 < Glasswalker> there is a method to expand the one field (sum) on
Packet, out into the two Halves in DummyPacket, and the same in reverse
01:54 < Glasswalker> I know it's a silly example, just making a simple test
case
01:54 < Glasswalker> what I need to do is cal l HandleDummy and pass it a
DummyPacket
01:54 < Glasswalker> but I recieve the packet from the wire as a Packet
initially (because that's how all packets come in)
01:55 < Glasswalker> in the simple example I'm just initializing a packet,
perhaps I should have added a GetPacket() method which returns a Packet
01:55 < |Craig|> Glasswalker: make the one with extra fields contain the
other inside it
01:55 < Glasswalker> |Craig|: what do you mean?
01:55 < Glasswalker> like as a field?
01:55 < |Craig|> ya
01:56 < |Craig|> if you want the data from another type in your type, but
the other type inside your type
01:56 < Glasswalker> Ok fair enough
01:56 < Glasswalker> that works
01:56 < Glasswalker> but isn't there a cleaner way to do this type of
relationship in go?
01:56 < |Craig|> if you want to avoid a copy, you can do so by pointer
01:57 < |Craig|> that is very clean, I don't see an issue
01:57 < |Craig|> you can even do it anonymously and expose it methods and
such
01:58 < Glasswalker> I understand that it would work
01:58 < Glasswalker> and be faily easy
01:58 < Glasswalker> and I do appreciate the suggestion, I may end up doing
that
01:59 < Glasswalker> But...  it just feels so WRONG :) lol
01:59 < Glasswalker> I mean why can't I have Type A and Type B which extends
A...  and make them interchangable...  I understand Go uses Interfaces instead of
OO. But then how do I achieve that type of relationship?
02:00 < Glasswalker> It just seems odd to me that that kind of inheritance
relationship is downright impossible (or overly complex) in Go, something that is
taken for granted in most OO languages now.  I realize they are going for a
paradigm shift here, but that feels a lot like a MAJOR backtrack to me.
02:00 < Glasswalker> Unless I'm missing a funamental here...  Which is why
I'm asking "What am I missing" lol
02:00 < Glasswalker> or have I just gone stark raving mad?  ;) lol
02:04 < plexdev> http://is.gd/Qvie3G by [Andrew Gerrand] in
go/misc/dashboard/builder/ -- gobuilder: permit builders of the form
goos-goarch-foo
02:05 < krutcha1> I'll show ya what I did in a similar situation but I found
it kinda clumsy, one sec
02:07 -!- benjack [~benjack@bb220-255-241-76.singnet.com.sg] has joined #go-nuts
02:14 < str1ngs> Glasswalker: go is not an OO language it has OO features
only
02:14 < |Craig|> Glasswalker: what you are missing is that go does not do
inheritance, so stop thinking like inheritance.
02:17 -!- ampleyfly [ampleyfly@gateway/shell/blinkenshell.org/x-edzucopqsgfnefbf]
has quit [Ping timeout: 246 seconds]
02:17 -!- ampleyfly [ampleyfly@gateway/shell/blinkenshell.org/x-dxztkkwxzwrqkqwj]
has joined #go-nuts
02:20 < skelterjohn> the important thing to remember is that inheritance is
only a means to an end
02:20 < skelterjohn> there are other means too
02:20 < skelterjohn> composition and interfaces are all you need to model
the kinds data/behavior relations you want
02:28 < krutcha1> Glasswalker: http://pastebin.com/V7T2uSGq is sorta the way
I did it last time, though I also wondered if I was missing the plot as to the
'go' way
02:36 < plexdev> http://is.gd/iGZc8e by [Dave Cheney] in
go/misc/dashboard/builder/ -- gobuilder: respect MAKEFLAGS if provided
02:37 -!- fmoo [~Adium@c-76-102-41-101.hsd1.ca.comcast.net] has joined #go-nuts
02:43 -!- gaxxx [~woo@219.143.166.16] has joined #go-nuts
02:50 -!- gregschlom [~quassel@115.78.64.105] has joined #go-nuts
02:51 -!- gregschlom_ [~quassel@113.161.76.150] has joined #go-nuts
02:52 -!- wchicken [~chicken@c-98-248-194-46.hsd1.ca.comcast.net] has quit [Ping
timeout: 240 seconds]
02:52 -!- gaxxx [~woo@219.143.166.16] has quit [Ping timeout: 252 seconds]
02:55 -!- gregschlom [~quassel@115.78.64.105] has quit [Ping timeout: 264 seconds]
03:05 -!- keithgcascio [~keithcasc@nat/google/x-rytjlsabchzjfjth] has quit [Quit:
Leaving]
03:11 -!- reds_ [~reds@pool-74-101-147-57.nycmny.fios.verizon.net] has quit
[Remote host closed the connection]
03:17 -!- boscop_ [~boscop@f055241134.adsl.alicedsl.de] has quit [Ping timeout:
246 seconds]
03:20 -!- boscop [~boscop@f055241134.adsl.alicedsl.de] has joined #go-nuts
03:27 -!- gtaylor [~gtaylor@99-5-124-9.lightspeed.gnvlsc.sbcglobal.net] has joined
#go-nuts
03:32 -!- canucks [464f22cb@gateway/web/freenode/ip.70.79.34.203] has joined
#go-nuts
03:33 < canucks> hello, is there a way for me to get the inet ip from go?
03:38 < plexdev> http://is.gd/JveGpm by [Russ Cox] in go/src/cmd/gopack/ --
gopack: fix prefix bug
03:38 < plexdev> http://is.gd/0DGul4 by [Brad Fitzpatrick] in
go/src/pkg/http/ -- http: add NewRequest helper
03:39 -!- randfur [~androirc@58.145.148.69] has joined #go-nuts
03:45 -!- jhawk28 [~jhawk28@user-387c58d.cable.mindspring.com] has quit [Quit:
Linkinus - http://linkinus.com]
03:48 -!- gaxxx [~woo@219.143.166.16] has joined #go-nuts
03:51 < canucks> is there a way for me to get the inet address in go?
03:53 -!- m4dh4tt3r [~Adium@69.99.149.193] has quit [Ping timeout: 260 seconds]
03:55 -!- canucks [464f22cb@gateway/web/freenode/ip.70.79.34.203] has quit [Quit:
Page closed]
03:59 -!- zozoR [~Morten@56344b27.rev.stofanet.dk] has joined #go-nuts
04:04 -!- gaxxx [~woo@219.143.166.16] has quit [Ping timeout: 252 seconds]
04:11 < plexdev> http://is.gd/iv2Fo5 by [Russ Cox] in go/ -- A+C: Quan Yong
Zhai (individual CLA)
04:11 < plexdev> http://is.gd/qjAcOH by [Quan Yong Zhai] in go/src/pkg/net/
-- net: fix ParseIP
04:11 < plexdev> http://is.gd/gn8m8i by [Dave Cheney] in 3 subdirs of
go/src/ -- libmach: fix warnings.
04:11 < plexdev> http://is.gd/Pq9Yxz by [Russ Cox] in go/src/pkg/os/ -- os:
turn EPIPE exit into panic
04:14 -!- gtaylor [~gtaylor@99-5-124-9.lightspeed.gnvlsc.sbcglobal.net] has quit
[Quit: gtaylor]
04:20 -!- randfur [~androirc@58.145.148.69] has quit [Quit: AndroIRC]
04:22 -!- nixness [~dsc@78.100.161.104] has joined #go-nuts
04:22 -!- rejb [~rejb@unaffiliated/rejb] has quit [Ping timeout: 246 seconds]
04:27 -!- krutcha1 [~krutcha@S010600045a27676a.vs.shawcable.net] has quit [Quit:
Leaving]
04:29 -!- nettok [~quassel@200.119.160.14] has quit [Ping timeout: 258 seconds]
04:38 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts
04:45 -!- andman [~andman@antiflash.org] has quit [Read error: Connection reset by
peer]
04:53 -!- mikespook [~mikespook@219.137.75.141] has quit [Ping timeout: 246
seconds]
04:57 -!- krolaw [~krolaw@203.100.208.229] has joined #go-nuts
04:58 -!- tteras_ [~fabled@83.145.235.194] has joined #go-nuts
05:00 -!- fabled [~fabled@83.145.235.194] has quit [Ping timeout: 240 seconds]
05:01 -!- edsrzf [~chickench@122.61.221.144] has joined #go-nuts
05:02 -!- dj2 [~dj2@CPE001f5b35feb4-CM0014048e0344.cpe.net.cable.rogers.com] has
quit [Remote host closed the connection]
05:05 -!- gregschlom_ [~quassel@113.161.76.150] has quit [Ping timeout: 240
seconds]
05:12 -!- mikespook [~mikespook@183.47.230.246] has joined #go-nuts
05:20 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-165-250.clienti.tiscali.it] has
joined #go-nuts
05:27 -!- wchicken [~chicken@c-24-7-112-207.hsd1.ca.comcast.net] has joined
#go-nuts
05:39 -!- jbooth1 [~jay@209.249.216.2] has quit [Ping timeout: 240 seconds]
05:41 -!- enferex [~enferex@users.757.org] has quit [Ping timeout: 252 seconds]
05:43 -!- enferex [~enferex@users.757.org] has joined #go-nuts
05:43 -!- Natch| [~natch@c-adcee155.25-4-64736c10.cust.bredbandsbolaget.se] has
quit [Ping timeout: 264 seconds]
05:44 -!- Natch| [~natch@c-adcee155.25-4-64736c10.cust.bredbandsbolaget.se] has
joined #go-nuts
05:49 -!- niemeyer [~niemeyer@189-10-155-52.pltce701.dsl.brasiltelecom.net.br] has
quit [Ping timeout: 240 seconds]
05:49 -!- gaxxx [~woo@219.143.166.16] has joined #go-nuts
05:49 -!- ExtraSpice [XtraSpice@88.118.35.153] has joined #go-nuts
05:56 -!- huin [~huin@91.85.185.181] has joined #go-nuts
05:57 -!- m4dh4tt3r [~Adium@99-117-98-39.lightspeed.sntcca.sbcglobal.net] has
joined #go-nuts
06:01 -!- cafesofie [~cafesofie@ool-4a5a6ee5.dyn.optonline.net] has quit [Remote
host closed the connection]
06:02 -!- crodjer [~rohanjain@203.110.240.205] has joined #go-nuts
06:05 -!- enferex [~enferex@users.757.org] has quit [Quit: leaving]
06:07 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-165-250.clienti.tiscali.it] has
quit [Quit: E se abbasso questa leva che succ...]
06:07 -!- jbooth1 [~jay@209.249.216.2] has joined #go-nuts
06:08 -!- itrekkie [~itrekkie@ip72-200-105-157.tc.ph.cox.net] has quit [Quit:
itrekkie]
06:10 -!- pilgrum [~pilgrum@cpe-67-49-71-222.socal.res.rr.com] has joined #go-nuts
06:11 -!- pilgrum [~pilgrum@cpe-67-49-71-222.socal.res.rr.com] has quit [Max SendQ
exceeded]
06:12 -!- pilgrum [~pilgrum@cpe-67-49-71-222.socal.res.rr.com] has joined #go-nuts
06:24 -!- huin [~huin@91.85.185.181] has quit [Quit: -> work]
06:26 -!- piranha [~piranha@5ED43A0B.cm-7-5a.dynamic.ziggo.nl] has joined #go-nuts
06:29 -!- gaxxx [~woo@219.143.166.16] has quit [Quit: Leaving.]
06:30 -!- gaxxx [~woo@219.143.166.16] has joined #go-nuts
06:36 -!- mdxi [~mdxi@li11-97.members.linode.com] has quit [Read error: Operation
timed out]
06:38 -!- mdxi [~mdxi@li11-97.members.linode.com] has joined #go-nuts
06:42 -!- bortzmeyer [~bortzmeye@batilda.nic.fr] has joined #go-nuts
06:46 -!- piranha [~piranha@5ED43A0B.cm-7-5a.dynamic.ziggo.nl] has quit [Quit:
Computer has gone to sleep.]
06:47 -!- str1ngs [~strings@unaffiliated/str1ngs] has quit [Ping timeout: 246
seconds]
06:51 -!- m4dh4tt3r [~Adium@99-117-98-39.lightspeed.sntcca.sbcglobal.net] has quit
[Quit: Leaving.]
06:54 -!- frobnitz [~ian@king.bitgnome.net] has quit [Remote host closed the
connection]
07:02 -!- zozoR [~Morten@56344b27.rev.stofanet.dk] has quit [Remote host closed
the connection]
07:03 -!- piranha [~piranha@D57D1AB3.static.ziggozakelijk.nl] has joined #go-nuts
07:09 -!- gregschlom [~quassel@115.78.64.105] has joined #go-nuts
07:10 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts
07:11 -!- gregschlom_ [~quassel@113.161.76.150] has joined #go-nuts
07:12 -!- virtualsue [~chatzilla@nat/cisco/x-wvnqphsmobvmphaq] has joined #go-nuts
07:14 -!- gregschlom [~quassel@115.78.64.105] has quit [Ping timeout: 276 seconds]
07:17 -!- rurban [~chatzilla@91-114-180-191.adsl.highway.telekom.at] has quit
[Ping timeout: 258 seconds]
07:18 -!- dfc [~dfc@eth59-167-133-99.static.internode.on.net] has quit [Ping
timeout: 240 seconds]
07:31 -!- itrekkie [~itrekkie@ip72-200-105-157.tc.ph.cox.net] has joined #go-nuts
07:33 -!- Count_Niedar [~bleh@ip68-99-166-222.hr.hr.cox.net] has quit [Read error:
Connection reset by peer]
07:37 -!- rlab [~Miranda@91.200.158.34] has quit [Quit: Miranda IM! Smaller,
Faster, Easier.  http://miranda-im.org]
07:38 < nsf> uhm, I have a Go question again
07:38 < nsf> one moment
07:38 < nsf> ok, here we go
07:38 < nsf> Go allows the following:
07:38 < nsf> const ui uint = 5
07:38 < nsf> b := 2.0 & ui
07:39 < nsf> as we all know '&' operation makes sense only for integers
07:39 < nsf> and here it's all ok, 2.0 gets converted to int
07:39 < nsf> but
07:39 < nsf> var a int = (2.0 << ui)
07:39 < nsf> says invalid operands
07:39 < nsf> why it doesn't work?
07:39 < nsf> logic is the same
07:39 < nsf> contextual type is int
07:39 < edsrzf> Because you're trying to assign a uint to an int?
07:39 < nsf> 2.0 should be converted to int
07:40 < nsf> no
07:40 * taruti would hope neither would be used
07:40 < nsf> edsrzf: resulting type of a shift expression is derived from
left operand
07:40 < nsf> here it's abstract float
07:40 < edsrzf> Okay, then I'm out of ideas
07:40 < nsf> therefore it gets real type from the context
07:40 < nsf> and the context is int
07:40 < edsrzf> If you change the 2.0 to just 2, does it suddenly work?
07:40 < nsf> of course
07:41 < edsrzf> Sounds like a bug to me.
07:41 < nsf> or inconsistency
07:41 < nsf> that's why I'm asking
07:41 -!- gregschlom_ [~quassel@113.161.76.150] has quit [Read error: Connection
reset by peer]
07:42 < nsf> http://golang.org/doc/go_spec.html#Arithmetic_operators
07:43 < nsf> that one says '&' works for integers only
07:43 < nsf> and since it works for '2.0'
07:43 < nsf> I'm considering this number as an integer
07:43 < nsf> but shift expression should work with integer on the LHS as
well
07:43 < nsf> and it doesn't work with '2.0'
07:43 < edsrzf> 2.0 should be usable as an integer.
07:43 < nsf> yeah
07:43 < nsf> looks like a bug
07:44 < edsrzf> The spec specifically says "For instance, 3.0 can be given
any integer or any floating-point type..."
07:44 < nsf> indeed
07:44 -!- itrekkie [~itrekkie@ip72-200-105-157.tc.ph.cox.net] has quit [Quit:
itrekkie]
07:44 < nsf> so, I'm opening an issue
07:47 -!- wrtp [~rog@92.17.70.99] has joined #go-nuts
07:50 -!- |Craig| [~|Craig|@panda3d/entropy] has quit [Quit: |Craig|]
07:51 < nsf> wrtp: http://code.google.com/p/go/issues/detail?id=1708
07:51 < nsf> what do you think?
07:52 -!- fmoo [~Adium@c-76-102-41-101.hsd1.ca.comcast.net] has quit [Quit:
Leaving.]
07:53 < wrtp> seems plausible
07:54 < nsf> :)
07:56 < nsf> Go certainly needs better spec conformance testing
07:56 < nsf> if that's a bug as well
07:57 < nsf> oh, btw, I have a binary gccgo package now
07:57 < nsf> let's see what gccgo thinks about that
07:58 < nsf> works in gccgo
07:58 < nsf> apparently iant did a better job
08:00 < wrtp> it's not too bad a flaw :-)
08:00 < wrtp> but i think it is a bug
08:01 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-165-250.clienti.tiscali.it] has
joined #go-nuts
08:02 < nsf> wrtp: I just like to bother russ with irrelevant bugs
08:02 < nsf> :)
08:02 < nsf> and I think reference compiler implementation should be very
strict as well
08:03 < wrtp> it's definitely worth reporting
08:04 < wrtp> anyone got a recommendation for a go OAuth package, BTW
08:06 < nsf> also one thing I wish go had
08:06 < nsf> const x = -1
08:06 < nsf> / somewhere in the code:
08:06 < nsf> if x > 0 { var p uint = x; }
08:06 < nsf> it will not compile this code :(
08:06 < nsf> I know it sounds useless
08:06 < nsf> but I had an actual case like that
08:07 < wrtp> if x > 0 { p = uint(x) }
08:07 < nsf> I wanted to use consts for debugging somehow
08:07 < wrtp> sorry, p := uint(x)
08:07 < nsf> wrtp: neither will work afaik
08:07 < wrtp> yeah, that should work fine
08:07 < wrtp> ...  maybe
08:07 < nsf> uint(-1) will say -1 overflows uint
08:08 < nsf> even though that statement never gets executed
08:08 < nsf> and shouldn't be even generated
08:08 < wrtp> no you're right
08:08 -!- tvw [~tv@212.79.9.150] has joined #go-nuts
08:08 < taruti> nsf: -1 unsigned constants would be nice, but not sure how
to do it safely
08:08 < nsf> I'm not asking for unsigned const
08:09 < nsf> it's a different case
08:09 -!- Cobi [~Cobi@2002:1828:88fb:0:aede:48ff:febe:ef03] has quit [Ping
timeout: 260 seconds]
08:09 < nsf> I think it makes sense to remove typecheck for statements that
will never be generated as an actual code
08:09 < nsf> well, it's a questionable opinion
08:09 < nsf> but that's what I think
08:10 < nsf> if x > 0 {} can be safely remove as a dead code if x <= 0
08:10 < wrtp> nsf: if you make that rule, then the compiler *has* to do that
08:10 < nsf> yeah
08:11 < nsf> as some guy pointer out
08:11 < wrtp> nsf: and what about other cases, like if (x > 0 && foo || x
> 3 && bar)
08:11 -!- dfc [~dfc@124-149-101-80.dyn.iinet.net.au] has joined #go-nuts
08:11 < nsf> wrtp: but compiler does const evaluation anyway
08:12 < wrtp> nsf: you can do this: p := uint(struct{x int}{x}.x)
08:12 < nsf> that's what I'm talking about
08:12 < wrtp> :-)
08:12 < nsf> https://github.com/jckarter/clay/wiki/Guaranteed-optimizations
08:12 < nsf> here it is
08:12 < nsf> that guy pointer out
08:12 < nsf> BitC guy I mean
08:13 < nsf> guaranteed optimizations :) good idea
08:14 -!- cenuij [~cenuij@base/student/cenuij] has quit [Remote host closed the
connection]
08:14 < nsf> removing dead code like that with a const system like Go has is
perfectly fits into that category
08:14 < nsf> imho
08:15 < nsf> but disabling type checking
08:15 < nsf> isn't necessary a good idea though
08:20 -!- cenuij [~cenuij@93.26.129.106] has joined #go-nuts
08:20 -!- cenuij [~cenuij@93.26.129.106] has quit [Changing host]
08:20 -!- cenuij [~cenuij@base/student/cenuij] has joined #go-nuts
08:29 < plexdev> http://is.gd/X6pCQy by [David Symonds] in
go/src/pkg/expvar/ -- expvar: add Func for functions that return values that are
JSON marshalable.
08:34 -!- Cobi [~Cobi@2002:1828:88fb:0:aede:48ff:febe:ef03] has joined #go-nuts
08:36 -!- crodjer [~rohanjain@203.110.240.205] has quit [Remote host closed the
connection]
08:39 -!- exch [~exch@31-151-123-254.dynamic.upc.nl] has quit [Ping timeout: 240
seconds]
08:44 -!- exch [~exch@31-151-123-254.dynamic.upc.nl] has joined #go-nuts
08:45 -!- str1ngs [~strings@unaffiliated/str1ngs] has joined #go-nuts
08:48 -!- Niedar [~bleh@ip68-99-166-222.hr.hr.cox.net] has joined #go-nuts
08:56 -!- virtualsue [~chatzilla@nat/cisco/x-wvnqphsmobvmphaq] has quit [Ping
timeout: 240 seconds]
08:57 -!- serbaut [~joakims@88.80.182.68] has quit [Read error: Connection reset
by peer]
09:03 -!- cenuij [~cenuij@base/student/cenuij] has quit [Remote host closed the
connection]
09:04 -!- hopso [3e4ed8ee@gateway/web/freenode/ip.62.78.216.238] has joined
#go-nuts
09:12 -!- dfc [~dfc@124-149-101-80.dyn.iinet.net.au] has quit [Quit: Silly man, I
am a Baron!]
09:30 -!- boscop [~boscop@f055241134.adsl.alicedsl.de] has quit [Ping timeout: 246
seconds]
09:30 -!- mikespook [~mikespook@183.47.230.246] has quit [Quit: Leaving.]
09:31 -!- boscop [~boscop@f055241134.adsl.alicedsl.de] has joined #go-nuts
09:32 -!- krolaw [~krolaw@203.100.208.229] has quit [Quit: krolaw]
09:35 -!- krolaw [~krolaw@203.100.208.229] has joined #go-nuts
09:38 -!- virtualsue [~chatzilla@nat/cisco/x-knxepdzebyizaqaj] has joined #go-nuts
09:41 -!- Scorchin [~Scorchin@host86-160-233-247.range86-160.btcentralplus.com]
has joined #go-nuts
09:41 -!- boscop [~boscop@f055241134.adsl.alicedsl.de] has quit [Read error:
Connection reset by peer]
09:42 -!- boscop [~boscop@f055241134.adsl.alicedsl.de] has joined #go-nuts
09:50 -!- aho [~nya@fuld-590c74f4.pool.mediaWays.net] has joined #go-nuts
09:53 -!- boscop [~boscop@f055241134.adsl.alicedsl.de] has quit [Ping timeout: 246
seconds]
09:53 -!- boscop_ [~boscop@f055241134.adsl.alicedsl.de] has joined #go-nuts
10:01 -!- boscop_ [~boscop@f055241134.adsl.alicedsl.de] has quit [Ping timeout:
246 seconds]
10:05 -!- benjack [~benjack@bb220-255-241-76.singnet.com.sg] has quit [Quit:
Leaving.]
10:18 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts
10:36 -!- crodjer [~rohanjain@203.110.240.205] has joined #go-nuts
10:40 -!- Project-2501 [~Marvin@82.84.83.217] has joined #go-nuts
10:43 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-165-250.clienti.tiscali.it] has
quit [Ping timeout: 240 seconds]
10:45 -!- Fish- [~Fish@coss6.exosec.net] has joined #go-nuts
10:46 -!- hopso [3e4ed8ee@gateway/web/freenode/ip.62.78.216.238] has quit [Ping
timeout: 252 seconds]
10:46 -!- tensai_cirno [~cirno@77.232.15.216] has joined #go-nuts
10:48 -!- Fish [~Fish@exo3753.pck.nerim.net] has quit [Ping timeout: 264 seconds]
10:49 -!- angasule [~angasule@190.2.33.49] has joined #go-nuts
10:51 -!- arun__ [~arun@i172010.upc-i.chello.nl] has joined #go-nuts
10:52 -!- arun_ [~arun@unaffiliated/sindian] has quit [Ping timeout: 246 seconds]
10:56 -!- zimsim [~simon@87.72.77.195] has joined #go-nuts
11:00 -!- pilgrum [~pilgrum@cpe-67-49-71-222.socal.res.rr.com] has quit [Quit:
Leaving]
11:21 -!- lmoura [~lauromour@186.212.228.161] has quit [Read error: Connection
reset by peer]
11:21 -!- lmoura_ [~lauromour@186.215.206.130] has joined #go-nuts
11:22 -!- rbraley_ [~rbraley@114.246.171.176] has quit [Ping timeout: 240 seconds]
11:23 -!- edsrzf [~chickench@122.61.221.144] has quit [Remote host closed the
connection]
11:32 -!- artefon [~thiago@189.59.205.145] has joined #go-nuts
11:45 -!- arun_ [~arun@i172010.upc-i.chello.nl] has quit [Changing host]
11:45 -!- arun_ [~arun@unaffiliated/sindian] has joined #go-nuts
11:49 -!- katakuna [~pie@kjal.demon.co.uk] has joined #go-nuts
12:03 -!- boscop [~boscop@f055241134.adsl.alicedsl.de] has joined #go-nuts
12:06 -!- boscop [~boscop@f055241134.adsl.alicedsl.de] has quit [Read error:
Connection reset by peer]
12:07 -!- boscop_ [~boscop@f055241134.adsl.alicedsl.de] has joined #go-nuts
12:07 < xyproto> anyone into benchmarking algorithms written in Go? Are
there any frameworks for microbenchmarking?
12:09 -!- boscop_ [~boscop@f055241134.adsl.alicedsl.de] has quit [Read error:
Connection reset by peer]
12:10 -!- boscop_ [~boscop@f055241134.adsl.alicedsl.de] has joined #go-nuts
12:13 -!- boscop_ [~boscop@f055241134.adsl.alicedsl.de] has quit [Read error:
Connection reset by peer]
12:14 -!- boscop [~boscop@f055241134.adsl.alicedsl.de] has joined #go-nuts
12:14 < wrtp> xyproto: i usually use the testing.Benchmark function
12:14 < wrtp> although it doesn't assess jitter
12:17 -!- jgonzalez [~jgonzalez@173-14-137-134-NewEngland.hfc.comcastbusiness.net]
has joined #go-nuts
12:18 -!- boscop [~boscop@f055241134.adsl.alicedsl.de] has quit [Read error:
Connection reset by peer]
12:19 -!- boscop [~boscop@f055241134.adsl.alicedsl.de] has joined #go-nuts
12:22 < xyproto> wrtp: ok, thanks!
12:23 -!- boscop_ [~boscop@f055241134.adsl.alicedsl.de] has joined #go-nuts
12:23 -!- boscop [~boscop@f055241134.adsl.alicedsl.de] has quit [Read error:
Connection reset by peer]
12:24 -!- niemeyer [~niemeyer@189-10-155-52.pltce701.dsl.brasiltelecom.net.br] has
joined #go-nuts
12:26 -!- boscop_ [~boscop@f055241134.adsl.alicedsl.de] has quit [Read error:
Connection reset by peer]
12:29 -!- boscop [~boscop@f055241134.adsl.alicedsl.de] has joined #go-nuts
12:33 < plexdev> http://is.gd/XOJmLU by [Russ Cox] in 3 subdirs of
go/src/pkg/ -- build: remove DISABLE_NET_TESTS
12:33 < plexdev> http://is.gd/gvu9Oo by [Lorenzo Stoakes] in go/src/ --
make: prevent rm provoking 'text file busy' errors.
12:35 -!- boscop [~boscop@f055241134.adsl.alicedsl.de] has quit [Ping timeout: 250
seconds]
12:35 -!- boscop_ [~boscop@f055241134.adsl.alicedsl.de] has joined #go-nuts
12:41 -!- angasule [~angasule@190.2.33.49] has quit [Remote host closed the
connection]
12:43 -!- boscop_ [~boscop@f055241134.adsl.alicedsl.de] has quit [Read error:
Connection reset by peer]
12:46 -!- boscop [~boscop@f055241134.adsl.alicedsl.de] has joined #go-nuts
12:48 -!- boscop [~boscop@f055241134.adsl.alicedsl.de] has quit [Read error:
Connection reset by peer]
12:51 -!- boscop [~boscop@f055241134.adsl.alicedsl.de] has joined #go-nuts
12:57 -!- boscop [~boscop@f055241134.adsl.alicedsl.de] has quit [Ping timeout: 250
seconds]
12:58 -!- boscop [~boscop@f055241134.adsl.alicedsl.de] has joined #go-nuts
12:59 -!- Scorchin [~Scorchin@host86-160-233-247.range86-160.btcentralplus.com]
has quit [Quit: Scorchin]
12:59 < nsf> uhm
12:59 < nsf> ah, const :(
12:59 < nsf> never mind :)
13:00 -!- boscop [~boscop@f055241134.adsl.alicedsl.de] has quit [Read error:
Connection reset by peer]
13:01 < skelterjohn> morning
13:01 < xyproto> if I have a file named "cansayhello.go", with func hello()
{ fmt.Println("hello") }, import it to another file with import "./cansayhello",
it all works out and everything is rainbows and unicorns
13:01 < xyproto> but, where does the packagename enter the picture?
13:02 -!- boscop [~boscop@f055241134.adsl.alicedsl.de] has joined #go-nuts
13:02 < xyproto> does import refer to the filename or package name?  And why
does gccgo require the package to be main in the file with func main() ?
13:02 < skelterjohn> the import refers *only* to the file name
13:02 < skelterjohn> has nothing to do with the package name
13:02 < skelterjohn> but
13:03 < skelterjohn> the way you reference it elsewhere in code has *only*
to do with the package name
13:03 < skelterjohn> (unless you relabel it in your import)
13:03 < xyproto> skelterjohn: aha, I see.  But, can a single file have
several packages?
13:03 -!- saturnfive [~saturnfiv@210.74.155.131] has quit [Read error: Connection
reset by peer]
13:03 < skelterjohn> regarding gccgo's requirement, maybe iant can tell you.
You can certainly have non-main packages with func main() with 6g
13:04 < skelterjohn> xyproto: no
13:04 < xyproto> skelterjohn: ok, but several files can participate in one
package, right?
13:04 < skelterjohn> yes - if they have the same package name and are
compiled together
13:05 < skelterjohn> 6g file1.go file2.go file3.go -o _go_.6
13:05 < skelterjohn> they must given to the compiler at the same time (they
can have circular dependencies within the package)
13:05 < xyproto> skelterjohn: ok, so if "cansayhello.go" has package hello,
then import "./cansayhello" makes hello.hello() available?
13:05 < skelterjohn> should, yes
13:06 < skelterjohn> as long as there is a cansayhello.a file in the current
directory
13:06 < xyproto> skelterjohn: yes, just tried it, you're correct
13:06 -!- boscop [~boscop@f055241134.adsl.alicedsl.de] has quit [Read error:
Connection reset by peer]
13:07 < xyproto> skelterjohn: great, thanks, now I feel I know everything
there is to know about the package keyword :)
13:07 < skelterjohn> hehe great
13:09 -!- boscop [~boscop@f055241134.adsl.alicedsl.de] has joined #go-nuts
13:10 -!- rejb [~rejb@unaffiliated/rejb] has joined #go-nuts
13:13 -!- boscop_ [~boscop@f055241134.adsl.alicedsl.de] has joined #go-nuts
13:14 -!- boscop [~boscop@f055241134.adsl.alicedsl.de] has quit [Read error:
Connection reset by peer]
13:16 -!- leczb [~leczb@nat/google/x-uoiyltcchhkhrimo] has joined #go-nuts
13:17 -!- boscop_ [~boscop@f055241134.adsl.alicedsl.de] has quit [Read error:
Connection reset by peer]
13:19 -!- leczb [~leczb@nat/google/x-uoiyltcchhkhrimo] has quit [Remote host
closed the connection]
13:20 -!- tensai_cirno [~cirno@77.232.15.216] has quit [Quit: Leaving]
13:20 -!- boscop [~boscop@f055241134.adsl.alicedsl.de] has joined #go-nuts
13:23 -!- leczb [~leczb@nat/google/x-jnqqtttzbjedlyqy] has joined #go-nuts
13:26 < nsf> http://code.google.com/p/go/issues/detail?id=1708
13:26 < nsf> the most confusing thing I've ever seen
13:26 < nsf> in programming languages
13:26 < nsf> :)
13:26 < nsf> const ui uint = 5; var a = 2.0 << ui; // error
13:26 < nsf> oops, wait, forgot int type
13:26 < nsf> const ui uint = 5; var a int = 2.0 << ui; // error
13:26 < nsf> var ui uint = 5; var a int = 2.0 << ui; // ok
13:27 < nsf> if 'ui' is a var, the code is correct, if a const, the code
isn't correct
13:27 < nsf> :\
13:27 -!- leczb [~leczb@nat/google/x-jnqqtttzbjedlyqy] has quit [Remote host
closed the connection]
13:27 < nsf> what's more confusing
13:27 < nsf> that the code like:
13:28 < nsf> const ui uint = 5; var a int = 2.0 & ui;
13:28 < nsf> is correct
13:28 < nsf> so, for '&' operator, it is allowed to cast 2.0 to int, for
'<<' it is not
13:28 < nsf> it makes sense, but..
13:28 < nsf> it is confusing :)
13:29 < nsf> and it turns out that gccgo is buggy
13:29 < nsf> :(
13:31 -!- boscop_ [~boscop@f055241134.adsl.alicedsl.de] has joined #go-nuts
13:32 -!- leczb [~leczb@nat/google/x-gfqwwwwbjcdiltgp] has joined #go-nuts
13:32 -!- iant [~iant@216.239.45.130] has quit [Ping timeout: 250 seconds]
13:34 -!- boscop [~boscop@f055241134.adsl.alicedsl.de] has quit [Ping timeout: 246
seconds]
13:34 -!- boscop__ [~boscop@f055241134.adsl.alicedsl.de] has joined #go-nuts
13:35 -!- leczb [~leczb@nat/google/x-gfqwwwwbjcdiltgp] has quit [Remote host
closed the connection]
13:36 -!- boscop_ [~boscop@f055241134.adsl.alicedsl.de] has quit [Ping timeout:
250 seconds]
13:36 < nsf> I mean how confusing is it
13:36 < nsf> if both compilers
13:36 < nsf> gc and gccgo have bugs
13:36 < nsf> in that shift expression case
13:36 < nsf> :)
13:37 < nsf> gc eats: var ui uint = 5; var a = (2 << ui) + 4.5
13:37 < nsf> gccgo eats: const ui uint = 5; var a int = 2.0 << ui;
13:38 < nsf> :\
13:39 -!- boscop [~boscop@f055241134.adsl.alicedsl.de] has joined #go-nuts
13:39 -!- boscop__ [~boscop@f055241134.adsl.alicedsl.de] has quit [Ping timeout:
246 seconds]
13:40 < xyproto> nsf: strangeness
13:40 < nsf> just a lot of rules
13:40 < nsf> which are not obvious
13:41 < nsf> it makes sense to have a "special case" code for shift
expressions everywhere in the compiler
13:41 < nsf> type checks, constant evaluation, assigning real types to const
expressions
13:42 -!- iant [~iant@67.218.107.170] has joined #go-nuts
13:42 -!- mode/#go-nuts [+v iant] by ChanServ
13:43 < nsf> and I'm just trying to figure out how my code should look like
in order to avoid all these bugs
13:43 < nsf> const ui uint = 5; var a int = 2.0 << ui;
13:43 -!- boscop_ [~boscop@f055241134.adsl.alicedsl.de] has joined #go-nuts
13:43 < nsf> that case is really horrible, imho
13:44 < nsf> 'abstract float << uint' passes type check
13:44 < nsf> but then if RHS is a const
13:44 < nsf> const evaluator should reject the code
13:44 -!- boscop [~boscop@f055241134.adsl.alicedsl.de] has quit [Ping timeout: 250
seconds]
13:44 < nsf> when normally it can convert abstract float to int
13:45 < nsf> but if evaluation isn't possible
13:45 < nsf> later it can become correct
13:45 < nsf> :\
13:45 < nsf> I am really confused :)
13:46 -!- leczb [~leczb@nat/google/x-niyiwvszckhifcxb] has joined #go-nuts
13:46 < nsf> now the funny part
13:46 < nsf> var a = 2 << 5.0;
13:46 < nsf> is correct
13:46 < nsf> :D
13:46 < aiju> what about 2 << 5.1?  :D
13:46 < nsf> aiju: of course it isn't
13:46 <+iant> an abstract float of integer value can be used as an integer
13:46 -!- reds_ [~reds@pool-74-101-147-57.nycmny.fios.verizon.net] has joined
#go-nuts
13:47 <+iant> this is why things like time.Sleep(1e9) work
13:47 < aiju> it uses arbitrary precision floats, right?
13:47 < nsf> iant: http://code.google.com/p/go/issues/detail?id=1708
13:47 < nsf> russ thinks otherwise
13:47 < nsf> iant: yeah, it can be used..  normally
13:47 < nsf> but with this shift case
13:47 <+iant> oh yeah, shift is weird
13:48 <+iant> I've never really been happy about shift
13:48 < nsf> oh and now russ is confused as well
13:48 < nsf> holly ...
13:48 < nsf> holy*
13:48 < nsf> see latest comment in the issue 1708 :(
13:48 < nsf> now I'm really confused :)
13:49 <+iant> it certainly makes no sense that adding the type to the
variable would cause the program to fail
13:49 -!- boscop_ [~boscop@f055241134.adsl.alicedsl.de] has quit [Ping timeout:
246 seconds]
13:49 < nsf> yeah
13:49 < nsf> var a = 2.0 << 5; should be correct as well
13:50 < nsf> because what not, 2.0 can be used as integer
13:50 < aiju> haha
13:50 < nsf> at least that makes sense in a code
13:50 < plexdev> http://is.gd/HHBZg0 by [Ian Lance Taylor] in
go/src/pkg/gob/ -- gob: when decoding a string, allocate a string, not a []byte.
13:50 < nsf> const expression evaluator usually has some type which it uses
for evaluation
13:50 < nsf> in shift expression case it can only be int
13:51 < nsf> in other places compiler has no problems converting abstract
float to int if it's necessary
13:51 < nsf> like: var a = 5.0 + int(10)
13:52 < nsf> but I still not sure about '2.0 << 5'
13:52 < nsf> should it be valid or not
13:52 < nsf> 2 << 5.0 is valid :))
13:57 -!- XenoPhoenix [~Xeno@cpc13-aztw24-2-0-cust23.aztw.cable.virginmedia.com]
has quit [Ping timeout: 276 seconds]
13:58 < nsf> personally I think in that direction:
13:58 < nsf> I want to unify in my compiler terms abstract int and abstract
float to a single one
13:58 < nsf> abstract number
13:59 < nsf> which can be used everywhere where int or/and float make sense
13:59 < nsf> signed and unsigned
13:59 < nsf> so, therefore
13:59 < nsf> shift expression spec allows:
13:59 < nsf> on the LHS: any integer type or abstract number
14:00 < nsf> on the RHS: any unsigned integer type or abstract number (which
must be >= 0)
14:00 < nsf> at least that makes sense to me
14:00 -!- espeed [~espeed@63.246.231.57] has quit [Ping timeout: 246 seconds]
14:00 < nsf> the same applies to other integer only operators like
14:00 < nsf> '%' or '|'
14:00 < nsf> 5.0 | 4.0
14:00 < nsf> will be valid
14:01 < nsf> because abstract number is just number
14:01 < nsf> the syntax doesn't matter
14:01 < nsf> if it can be used as int, no problem :)
14:01 < nsf> at the moment Go rejects that kind of code
14:02 < nsf> what do you think about that?
14:03 <+iant> making some operators behave differently seems potentially
confusing
14:03 <+iant> why shouldn't + and % have the same behaviour with regard to
types?
14:03 <+iant> I think it's doable, but there is some potential for confusion
14:03 < nsf> they have
14:04 < nsf> the only problem that '%' makes sense only for integers
14:04 < aiju> nsf: bullshit
14:04 < nsf> therefore type for evaluating is an integer
14:04 < aiju> there is floating point modulo
14:04 <+iant> 5.0 + 4.0 will do a floating point addition, 5.0 % 4.0 will do
an integer modulos, if I understand your suggestion
14:04 < nsf> iant: yes
14:04 < nsf> aiju: in that case we should allow '%' for any floating point
numbers
14:05 < aiju> i'd very much appreciate it
14:05 -!- pharris [~Adium@rhgw.opentext.com] has joined #go-nuts
14:05 <+iant> I guess my first take is that that adds a rule, which doesn't
make things simpler, and it doesn't matter much for real programs
14:05 <+iant> I think there is a problem with shift
14:05 <+iant> though I'm not sure how to fix it
14:05 < nsf> iant: but do you agree that this doesn't make sense:
14:05 <+iant> I'm not sure there is a problem with any other operators
14:05 < nsf> var a = 2 << 5.0; // valid
14:05 < nsf> var b = 5.0 << 2; // invalid
14:05 <+iant> I agree there is a problem with shift
14:05 < aiju> then again, why the fuck are you doing things like this
14:05 < nsf> ok, I see
14:06 < nsf> aiju: it's not the question why I'm doing this
14:06 < nsf> it's about providing logical behaviour in the compiler
14:07 < nsf> at least as we can see, gccgo and gc behave differently
14:07 < nsf> therefore we should reach an agreement or something
14:07 < nsf> which is simple and clear
14:07 < aiju> nsf: i'd do it consistently, unless it adds much complexity
14:08 < nsf> I'd rather follow the path of disallowing abstract float in
shift expressions
14:09 < nsf> like my code does at the moment
14:09 < nsf> var ui uint = 5; var a int = 2.0 << ui; is invalid
14:09 < nsf> in my compiler
14:09 < nsf> it's valid in Go
14:10 < nsf> and I'm not quite understand why go allows: var a = 2 <<
5.0;
14:10 < nsf> at least gc does
14:10 < nsf> not sure about gccgo
14:10 < nsf> let's see
14:12 < nsf> well, at least these examples are the same
14:12 < nsf> in gccgo and gc
14:12 < nsf> var ok = 2 << 5.0; var invalid = 5.0 << 2;
14:14 < nsf> I understand it's all impractical
14:15 < nsf> but I just want to have a solid base of understanding for my
compiler
14:15 < nsf> where I can speak about every tiny detail
14:15 < nsf> if someone has a question :)
14:16 < nsf> so, I can't move along until I have resolved that issue :)
14:17 < nsf> at the moment my compiler even disallows code like that: var ui
uint = 5; var a = 5.0 % ui;
14:17 < nsf> Go allows that
14:17 <+iant> In gccgo I think of it in terms of a type context
14:18 <+iant> if there is an expected type, I convert untyped constants to
that type if possible
14:18 < nsf> iant: yeah, I've read your code
14:18 <+iant> k
14:18 < nsf> I have a bit different way of doing that
14:19 < nsf> because before converting abstract type to real types, I do
type check and "abstrac float % named int"
14:19 < str1ngs> iant: does gcc-go require libffi?
14:19 < nsf> is invalid
14:19 < nsf> probably I'll make it valid
14:19 < nsf> but then I need an answer
14:19 < nsf> why the same can't be done for shift :)
14:19 < nsf> abstract*
14:19 <+iant> str1ngs: gccgo does require libffi at present, although there
is an open bug to remove that requirement
14:20 <+iant> if libffi is not available, reflect.Call can not work
14:20 <+iant> but everything else can work
14:20 < str1ngs> iant: does it static link to it?
14:20 < str1ngs> ah ok
14:20 < str1ngs> I'll test that more then
14:20 < nsf> I mean spec says only integers make sense for '%'
14:20 < nsf> and yet abstract float is ok for that
14:20 <+iant> depends on how you configure things, by default I think it
links dynamically; actually I'm not sure
14:20 < nsf> spec also says only integers make sense for '<<'
14:20 < nsf> but for some reason abstract float is invalid
14:20 < str1ngs> now that I know it's only use in reflect I can test it.
14:21 <+iant> nsf: there is a special rule for shift in the spec somewhere
14:21 < nsf> well, yeah, but then gc compiler has a bug indeed
14:21 <+iant> since gc and gccgo disagree clearly one of them has a bug
14:21 < nsf> var a int = 2.0 << 5; doesn't work in gc
14:21 < nsf> hehe, true
14:22 < nsf> but here is the interesting part
14:22 < nsf> if that statement affect the LHS of a shift expression
14:22 < nsf> then
14:22 < nsf> var a float64 = 2 << 5;
14:22 < nsf> should be invalid
14:22 < nsf> yet, it's valid :)
14:22 <+iant> oy
14:23 < nsf> so, maybe it's gccgo bug as well :)
14:23 <+iant> certainly possible
14:24 < nsf> but in my compiler const gets type from context only after
evaluation
14:24 < nsf> 2 << 5 evaluates to something
14:24 < nsf> and then gets 'float64' type
14:24 < nsf> 2.0 << 5 cannot be evaluated therefore
14:25 < nsf> and context doesn't matter
14:25 -!- XenoPhoenix [~Xeno@cpc13-aztw24-2-0-cust23.aztw.cable.virginmedia.com]
has joined #go-nuts
14:25 < nsf> gccgo evaluates it just fine
14:25 < nsf> if the context is int
14:25 < nsf> I think spec needs clarification
14:25 <+iant> I agree
14:25 < nsf> whether context affects const evaluation or not
14:27 -!- krolaw [~krolaw@203.100.208.229] has quit [Quit: krolaw]
14:28 < pharris> I'm no spec expert, but I'm trying to figure out how "2"
could possibly be any different from "2.0" when constants are untyped.  To notice
any difference, there would have to be an implicit type, no?
14:28 < nsf> pharris: that's my idea as well
14:29 < nsf> spec says consts are just numbers
14:29 < skelterjohn> x := 2 vs x := 2.0
14:29 < nsf> therefore 2.0 == 2
14:29 < skelterjohn> one gets an int, one gets a float64
14:29 < nsf> but on the other hand
14:29 < nsf> spec mentions operators and their operands' valid types
14:29 < nsf> as non-abstract types
14:29 < nsf> it doesn't say that it's ok to use abstract number for LHS in
shift expression for example
14:29 < pharris> I might argue that the spec ought to disallow foo :=
<untyped>, since the type of foo cannot possibly be inferred from something
untyped.
14:29 < nsf> it says it's ok to use an integer
14:30 < nsf> yeah, you're right, but disallowing that is impractical
14:30 < nsf> the whole point of Go
14:30 < nsf> is to be able to have things like:
14:30 < nsf> for i := 0; i < n; i++ {
14:30 < Namegduf> pharris: That would be very annoying
14:31 < nsf> and whether it's i := 0;
14:31 < Namegduf> foo ;= <untyped> is fairly clear
14:31 < nsf> or i := 0.0
14:31 < nsf> there should be a logic for choosing a real type
14:31 < Namegduf> Integers become ints
14:31 < pharris> Yeah, it would.  But if we're going to do magic, I'd like
nsf's example to pick up the type of 'n' for i.
14:31 < Namegduf> Floating points become float64
14:31 < pharris> I've lost count of the number of times the compiler has
complained that my i is the wrong type.
14:31 < skelterjohn> i often find myself doing for i:=int64(0); ...
14:31 < skelterjohn> it's not that inconvenient
14:31 < nsf> pharris: it needs whole program type propagation
14:31 < Namegduf> I wouldn't.
14:31 < nsf> even though it's possible
14:31 < Namegduf> That'd be way too complex inference.
14:31 < nsf> clay programming language has it
14:31 < nsf> it's impractical as well :)
14:31 < nsf> imho
14:32 < Namegduf> Go has one type of inference, and it doesn't go any
further because that would be painful to follow.
14:32 < pharris> Yeah, it's too magic for go.  Feels more like perl.  But so
does foo := <untyped> IMHO.
14:32 < skelterjohn> for both programmers and compilers
14:32 < Namegduf> I don't agree.
14:32 < Namegduf> Lefthand side determined by, and only by, right hand side.
14:32 < nsf> the interesting part
14:32 < nsf> spec says about consts as abstract numbers
14:33 < nsf> but yet it chooses different real types
14:33 < nsf> for 0
14:33 < nsf> and 0.0
14:33 < Namegduf> If right hand side is untyped, you need special rules.
You could forbid it, or you could say integers are ints, floating points are
float64, and strings are strings.
14:33 < nsf> it totally makes sense
14:33 < nsf> for a user
14:33 < nsf> but quite hacky in the implementation
14:33 < nsf> maybe spec should mention different abstract types
14:33 < Namegduf> I thought the spec had a concept of floating point vs
integer constants?
14:34 < nsf> abstract int and abstract float
14:34 < nsf> Namegduf: let's see
14:34 < Namegduf> Certainlly in the part which defines what the result of
foo := <untyped> is
14:34 -!- Venom_X [~pjacobs@75-27-133-72.lightspeed.austtx.sbcglobal.net] has
joined #go-nuts
14:34 < nsf> "For instance, 3.0 can be given any integer or any
floating-point type, while 2147483648.0 (equal to 1<<31) can be given the
types float32, float64, or uint32 but not int32 or string."
14:35 < nsf> I'm wondering where spec says that default type for 3.0 is
float64
14:35 < Namegduf> "For instance, if the expression is a floating-point
literal, the constant identifier denotes a floating-point constant, even if the
literal's fractional part is zero.
14:35 < nsf> interesting :)
14:36 < nsf> yeah, I think that's more or less clear
14:36 < nsf> but what about evaluating untyped constants?
14:37 < nsf> "If the type is absent and the corresponding expression
evaluates to an untyped constant, the type of the declared variable is bool, int,
float64, or string respectively, depending on whether the value is a boolean,
integer, floating-point, or string constant"
14:37 < nsf> that makes sense
14:37 < plexdev> http://is.gd/u3ZxdP by [Russ Cox] in go/src/cmd/gc/ -- gc:
printing of multiple assignment
14:38 < Namegduf> I think I'd agree that it was confusing if it wasn't that
there was a perfectly obvious default.
14:38 < nsf> although I still don't understand some of the behaviour
14:38 < nsf> Namegduf: take a look at this example:
14:38 < nsf> var a = 2 << 5.0;
14:38 < nsf> a valid code
14:38 < nsf> but spec says only unsigend integer can be on the RHS
14:38 < nsf> var a = 2.0 << 5;
14:38 < nsf> that one is invalid
14:38 < nsf> but spec still says
14:38 < nsf> only integer can be on the LHS
14:39 < nsf> what's the difference?
14:39 < Namegduf> I don't know.  Are you sure it's valid?
14:39 < nsf> pretty sure
14:39 < Namegduf> Can floating point constants be assigned to integers?
14:39 < nsf> yes, if it's possible to convert them to integer
14:39 < nsf> e.g.
14:39 < Namegduf> Can you say var i int := 0.0?
14:39 < nsf> 5.0 can be used as integer
14:40 < Namegduf> Er =
14:40 < nsf> 5.5 cannot
14:40 < nsf> Namegduf: yes, it will work
14:40 -!- PortatoreSanoDiI [~Marvin@dynamic-adsl-94-36-182-163.clienti.tiscali.it]
has joined #go-nuts
14:40 < nsf> that's the source of confusion
14:40 < nsf> somewhere it is possible to use floating point constant as an
integer
14:40 < nsf> somewhere it isn't
14:40 < Namegduf> In that case, << requires an unsigned integer on the
right, so it forces the floating point constant to that type
14:41 < nsf> but << requires an integer on the LHS
14:41 < nsf> and var a = 2.0 << 5;
14:41 < nsf> is invalid
14:41 < Namegduf> Hmm.
14:41 < nsf> exactly :)
14:42 < nsf> I'm sure spec needs clarification in that part
14:42 < nsf> when it's possible to use floating point constant as integer
14:42 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has quit [Quit:
skelterjohn]
14:42 < nsf> and when it isn't
14:43 -!- Project-2501 [~Marvin@82.84.83.217] has quit [Ping timeout: 276 seconds]
14:44 < nsf> anyways, I guess I'll wait until that issue gets resolved
14:44 < nsf> cleary everyone is confused :)
14:48 < xyproto> I think % for floats would be nice as well.  But, as I
understand, it would be less in line with the mathematical definition of modulo.
I googled thoroughly to find out why, once.
14:48 < xyproto> Why do people use 1e9 in expressions like time.Sleep(1e9),
btw?
14:49 < aiju> because 1000000000 sucks
14:49 -!- zozoR [~Morten@56344b27.rev.stofanet.dk] has joined #go-nuts
14:49 < xyproto> aiju: but 1000000000 looks like so much more!  It must be
better.
14:49 < xyproto> aiju: 1e9 is elegant in comparison, though.  I get your
point.  :)
14:49 < aiju> hahaha
14:49 < aiju> i mean, try counting the fucking zerso
14:49 < aiju> *os
14:50 < xyproto> aiju: ok, hang on, just have to whip up a little bash
script ;)
14:52 < xyproto> there we go: echo `echo 10000000 | wc -m` -1 | bc
14:52 < aiju> haha
14:52 < mpl> go needs a const over9000 somewhere :)
14:52 < aiju> hahaha
14:52 < aiju> no, a builtin function
14:52 < aiju> or rather special syntax
14:53 < aiju> if x is over 9000
14:53 < aiju> that's probably valid cobol
14:57 -!- iant [~iant@67.218.107.170] has quit [Quit: Leaving.]
14:57 -!- tgall_foo [~tgall@206.9.88.154] has quit [Ping timeout: 240 seconds]
14:58 -!- espeed [~espeed@63.246.231.57] has joined #go-nuts
15:00 -!- Venom_X [~pjacobs@75-27-133-72.lightspeed.austtx.sbcglobal.net] has quit
[Ping timeout: 240 seconds]
15:00 -!- fmoo [~Adium@c-76-102-41-101.hsd1.ca.comcast.net] has joined #go-nuts
15:02 -!- bortzmeyer [~bortzmeye@batilda.nic.fr] has quit [Quit: Leaving.]
15:06 -!- Venom_X [~pjacobs@66.54.185.131] has joined #go-nuts
15:07 -!- iant [~iant@nat/google/x-biaoaqcinweiolai] has joined #go-nuts
15:07 -!- mode/#go-nuts [+v iant] by ChanServ
15:08 < nsf> iant: yep, I think gccgo has a bug
15:08 <+iant> ah well
15:08 -!- tgall_foo [~tgall@206.9.88.154] has joined #go-nuts
15:08 -!- awidegreen [~quassel@c-cfc5e555.08-2-73746f39.cust.bredbandsbolaget.se]
has joined #go-nuts
15:08 < nsf> I will explain, it's simple:
15:08 -!- daharon [~daharon@173-11-102-86-SFBA.hfc.comcastbusiness.net] has joined
#go-nuts
15:08 < nsf> const ui uint = 5
15:09 < nsf> var a float64 = 2 << ui;
15:09 < nsf> var b int = 2.0 << ui;
15:09 < nsf> for 'a' gccgo doesn't assign float64 type to '2'
15:09 < nsf> for 'b' gccgo assigns int type to '2.0'
15:09 -!- reds_ [~reds@pool-74-101-147-57.nycmny.fios.verizon.net] has quit
[Remote host closed the connection]
15:09 -!- crodjer [~rohanjain@203.110.240.205] has quit [Ping timeout: 260
seconds]
15:09 < nsf> you can't do both, one of them is incorrect :)
15:10 <+iant> you're right, that does seem wrong
15:10 < str1ngs> nsf: I hope you are using 4.6 and not 4.7 for this :P
15:10 < str1ngs> nsf: 4.7 is snapshot would not be fair to check for bugs
with it
15:11 < nsf> str1ngs: I'm using your snapshot
15:11 < str1ngs> dont
15:11 < nsf> but it's an old bug
15:11 < nsf> so..  it doesn't matter
15:11 < str1ngs> use 4.6 first
15:11 <+iant> when it comes to a Go frontend issue like this, it doesn't
matter too much which version you use
15:11 < str1ngs> if the both have it then I guess its fine
15:11 <+iant> 4.7 is less stable for code generation, but the frontend is
just as stable or instable as the one in 4.6
15:13 < nsf> at least now I understand what var a = 2 << 5.0; is
correct
15:13 < nsf> "The right operand in a shift operation must have unsigned
integer type or be an untyped constant that can be converted to unsigned integer
type."
15:13 < nsf> spec allows that as a special case
15:14 < str1ngs> nsf: anyways sorry to interject as long as you check with
4.6
15:14 -!- artefon [~thiago@189.59.205.145] has quit [Quit: bye]
15:14 < nsf> s/what/why/
15:14 < nsf> :\
15:14 < nsf> str1ngs: never mind, 4.7 snapshot is ok
15:14 < str1ngs> nsf: ok
15:15 < str1ngs> mainly that snapshot I use for running upto date stdlib
15:16 < str1ngs> but I'll shutup now :P
15:17 < aiju> ah fuckg cc
15:17 < aiju> *gcc
15:17 < aiju> they removed -fwritable-strings
15:20 -!- ShadowIce
[~pyoro@HSI-KBW-109-193-120-162.hsi7.kabel-badenwuerttemberg.de] has joined
#go-nuts
15:20 -!- ShadowIce
[~pyoro@HSI-KBW-109-193-120-162.hsi7.kabel-badenwuerttemberg.de] has quit
[Changing host]
15:20 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has joined #go-nuts
15:23 -!- crodjer [~rohanjain@203.110.240.205] has joined #go-nuts
15:25 < plexdev> http://is.gd/VaM7oQ by [Brad Fitzpatrick] in
go/src/pkg/http/ -- http: reverse proxy handler
15:25 < plexdev> http://is.gd/49Bu48 by [Brad Fitzpatrick] in
go/src/pkg/json/ -- json: keep track of error offset in SyntaxError
15:25 < plexdev> http://is.gd/rhVX8a by [Russ Cox] in go/src/pkg/net/ --
net: disable one more external network test
15:26 -!- tvw [~tv@212.79.9.150] has quit [Ping timeout: 250 seconds]
15:27 -!- gaxxx [~woo@219.143.166.16] has quit [Quit: Leaving.]
15:31 * nsf thinks he finally understands shift expressions in Go
15:31 < nsf> but I and Russ disagree, interesting
15:31 < nsf> :)
15:33 -!- crodjer [~rohanjain@203.110.240.205] has quit [Quit: Leaving]
15:34 -!- franksalim [~franksali@99-123-6-19.lightspeed.sntcca.sbcglobal.net] has
quit [Read error: Connection reset by peer]
15:35 -!- franksalim [~franksali@108-65-76-174.lightspeed.sntcca.sbcglobal.net]
has joined #go-nuts
15:37 -!- reds [~reds@pool-74-101-147-57.nycmny.fios.verizon.net] has joined
#go-nuts
15:41 < xyproto> aiju: what is -fwritable-strings good for?
15:42 < nsf> char *x = "123";
15:42 < nsf> is invalid in gcc now
15:42 < plexdev> http://is.gd/aYUSrT by [Rob Pike] in go/src/cmd/6l/ -- 6l:
fix another "set and not used".
15:42 < nsf> const char *x = "123";
15:42 < nsf> is valid
15:42 < xyproto> nsf: ah, "enforced" consts everywhere?
15:42 < nsf> string literals
15:42 < nsf> are const char*
15:42 < aiju> not quite
15:42 -!- zozoR [~Morten@56344b27.rev.stofanet.dk] has quit [Remote host closed
the connection]
15:43 < nsf> uhm?
15:43 < aiju> "123" is writable with -fwritable-strings
15:43 < aiju> char *x = "123";
15:43 < aiju> *x = "4";
15:43 < aiju> i mean *x = '4';
15:43 < nsf> but they've removed -fwritable-strings?
15:43 < aiju> causes a segfault without -fwritable-strings
15:43 < aiju> and now they removed -fwritable-strings
15:43 < nsf> so, I'm right
15:43 < nsf> actually it's bad
15:43 < aiju> yeah
15:44 < aiju> but code fucking uses it
15:44 < nsf> because strings in crawl are writable :)
15:44 < nsf> and I was planning to use gcc
15:44 <+iant> -fwritable-strings was deprecated in gcc 4.0
15:44 < nsf> for compiling generated C code
15:44 < aiju> heh
15:44 < aiju> -traditional has been removed as well
15:44 < aiju> assholes
15:44 < nsf> I guess I'll have to convert all the strings
15:44 < nsf> to:
15:44 -!- skelterjohn [~jasmuth@lawn-gw.rutgers.edu] has joined #go-nuts
15:44 < nsf> char x[] = {'1', '2', '3', '\0'};
15:44 < nsf> yuck
15:44 < aiju> nsf: not needed
15:45 < aiju> char x[] = {"123"};
15:45 < nsf> well, if that works
15:45 < nsf> then good
15:45 < skelterjohn> what language are you talking about?
15:45 < aiju> skelterjohn: C
15:45 < skelterjohn> oh probably C
15:45 < aiju> not-quite-standard C, that is
15:45 < nsf> gcc flavour of C
15:46 < skelterjohn> so, the de facto standard, if not the official one
15:46 < nsf> yeah
15:46 < aiju> i don't think ANSI C allows writing to strings either
15:46 < nsf> skelterjohn: unless you work for Microsoft
15:46 < nsf> :)
15:46 -!- dahankzter [~henrik@92-244-3-192.customers.ownit.se] has joined #go-nuts
15:47 < nsf> they have different de facto standard C
15:47 < aiju> hahahaha
15:47 < aiju> microsoft has not implemented c99 yet
15:47 -!- piranha [~piranha@D57D1AB3.static.ziggozakelijk.nl] has quit [Quit:
Computer has gone to sleep.]
15:47 < nsf> and has no plans to do so
15:47 < nsf> they use C++ mostly
15:47 < nsf> C for low level stuff only
15:48 < aiju> ((char*)x) += foo is invalid with GCC?  wtf?
15:48 < nsf> what's foo?
15:48 < aiju> number
15:48 < nsf> ah yes
15:49 < nsf> type cast is an rvalue
15:49 < nsf> of course for a pointer it can be an lvalue
15:49 < nsf> but for other cases
15:49 < nsf> like int <-> float
15:49 < aiju> no, it can't, apparently
15:49 < nsf> it's definitely an rvalue
15:49 < nsf> so the rule applies to pointer as well
15:49 < nsf> pointers*
15:49 < aiju> 17:52 < nsf> of course for a pointer it can be an lvalue
15:49 < nsf> aiju: it can :)
15:50 -!- boscop [~boscop@f055241134.adsl.alicedsl.de] has joined #go-nuts
15:50 < nsf> type casting a pointer doesn't change the value of the pointer
and the address of this value
15:50 < nsf> so, it's pretty much addressable
15:50 < aiju> hell, what do you mean?
15:50 < aiju> gcc doesn't allow this
15:50 < aiju> period
15:51 < nsf> it doesn't, yes
15:51 < nsf> but technically it can be allowed
15:51 < aiju> yeah
15:51 < aiju> i agree with that
15:51 < aiju> and apparently the compiler (pcc?) this is meant for allows it
15:51 < nsf> I don't think any compiler would allow this
15:51 < aiju> it does
15:52 < nsf> interesting
15:52 < aiju> if (writeTEST((char *)&tokbuf[bufno ^ 1], sizeof *emptybuf, 1,
tmpfil)){
15:52 < aiju> that coding style ...
15:53 < nsf> I don't like sizeofs without parens
15:53 < nsf> other than that looks just fine
15:53 < aiju> but it's a macro yuck
15:53 < nsf> ){ is a mistake though
15:54 < nsf> and?
15:54 < aiju> i hate macros
15:54 < aiju> :)
15:54 < aiju> the C ones, that is
15:54 < nsf> well, they should use () for each macro parameter
15:54 < nsf> that's the good style
15:54 < nsf> but in that case, it doesn't matter
15:54 < nsf> ah, wait
15:54 < aiju> it's not in a macro definition
15:54 < aiju> writeTEST is a macro
15:54 < nsf> ah
15:55 < nsf> ah!
15:55 < nsf> someone screwed up the code :)
15:55 < nsf> but I guess evaluating bufno ^ 1 few times is not a big deal
15:55 < aiju> it's not a big macro
15:56 -!- boscop [~boscop@f055241134.adsl.alicedsl.de] has quit [Ping timeout: 246
seconds]
15:56 < nsf> whatever
15:56 * nsf is waiting for Russ' answer
15:56 < nsf> and he's not there :(
15:59 -!- rlab [~Miranda@91.200.158.34] has quit [Ping timeout: 250 seconds]
16:02 < aiju> fuck, inline assemblz
16:02 < aiju> *y
16:02 < aiju> now i'm screwed
16:03 < aiju> ah thank god it's only one file
16:03 < aiju> s/file/function
16:03 < nsf> what are you hacking?
16:03 < aiju> late early UNIX code ;P
16:03 < nsf> :)
16:03 < aiju> much BSD influence all over the plac
16:03 < aiju> +e
16:04 < aiju> this is VAX code
16:04 < aiju> the C code might be longer than the assembly code :D
16:05 -!- JusticeFries [~JusticeFr@173-8-247-218-Colorado.hfc.comcastbusiness.net]
has joined #go-nuts
16:07 < xyproto> Anyone have a working example of how to use netchan?  If
you do, please blog about it, because it's relly hard (possible?) to find a
working example.  Thanks.  And have a good weekend :)
16:07 -!- artefon [~thiago@bananal.lbd.dcc.ufmg.br] has joined #go-nuts
16:08 -!- boomtopper
[~boomtoppe@cpc12-nrte22-2-0-cust249.8-4.cable.virginmedia.com] has joined
#go-nuts
16:13 -!- rlab [~Miranda@91.200.158.34] has joined #go-nuts
16:15 -!- justinlilly [~justinlil@173-203-200-41.static.cloud-ips.com] has quit
[Quit: Quit via ZNC]
16:16 -!- justinlilly [~justinlil@173-203-200-41.static.cloud-ips.com] has joined
#go-nuts
16:21 < uriel> xyproto: usually looking at the tests for a package is a good
source of examples
16:21 < uriel> I think rob did write some blog post about netchans too
16:24 -!- dahankzter [~henrik@92-244-3-192.customers.ownit.se] has quit [Quit:
Leaving.]
16:25 -!- jyxent [~jyxent@129.128.191.96] has quit [Read error: Connection reset
by peer]
16:26 -!- jyxent [~jyxent@129.128.191.96] has joined #go-nuts
16:28 -!- fabled [~fabled@83.145.235.194] has quit [Quit: Ex-Chat]
16:30 -!- fmoo [~Adium@c-76-102-41-101.hsd1.ca.comcast.net] has quit [Quit:
Leaving.]
16:31 -!- boscop [~boscop@g230111102.adsl.alicedsl.de] has joined #go-nuts
16:34 < kamaji> Is there a nice reference on using gotest/test package ?
16:38 < mpl> kamaji: just pick any package, cp the tests there and modify
them to fit your use?
16:38 < mpl> if possible pick something related to what you're doing maybe
16:38 -!- crodjer [~rohanjain@203.110.240.205] has joined #go-nuts
16:39 < kamaji> mpl: ..  fair point :P
16:39 -!- Cobi [~Cobi@2002:1828:88fb:0:aede:48ff:febe:ef03] has quit [Ping
timeout: 264 seconds]
16:39 < mpl> kamaji: and there's that too http://golang.org/doc/code.html
16:39 -!- reds [~reds@pool-74-101-147-57.nycmny.fios.verizon.net] has quit [Remote
host closed the connection]
16:40 < kamaji> oh nice, i'll start there
16:40 < kamaji> cheeeeeers
16:43 < mpl> np
16:43 < skelterjohn> just write a "func Test.+(t *testing.T) { ...  }"
16:43 < mpl> *sigh* the week is over, no more c++ for 2 days :)
16:46 < skelterjohn> \o/
16:46 -!- fmoo [~Adium@66.220.144.74] has joined #go-nuts
16:51 -!- virtualsue [~chatzilla@nat/cisco/x-knxepdzebyizaqaj] has quit [Ping
timeout: 246 seconds]
16:52 -!- Cobi [~Cobi@2002:1828:88fb:0:aede:48ff:febe:ef03] has joined #go-nuts
16:57 -!- wrtp [~rog@92.17.70.99] has quit [Quit: wrtp]
16:58 -!- gzmask [~ray@corwin.cat.uregina.ca] has joined #go-nuts
17:01 < kamaji> skelterjohn: I just figured out .+ is a regex
17:01 < skelterjohn> :)
17:01 < skelterjohn> yes, sorry
17:02 < kamaji> np :p
17:02 < kamaji> I wasn't just sitting here goin "now what on earth.."
17:02 < kamaji> if I was I wouldn't have told you :D
17:06 < skelterjohn> no doubt
17:09 -!- artefon [~thiago@bananal.lbd.dcc.ufmg.br] has quit [Quit: bye]
17:13 -!- gregschlom [~quassel@118.68.142.103] has joined #go-nuts
17:18 -!- Cobi [~Cobi@2002:1828:88fb:0:aede:48ff:febe:ef03] has quit [Ping
timeout: 260 seconds]
17:27 -!- artefon [~thiago@dhcp10.usuarios.dcc.ufmg.br] has joined #go-nuts
17:27 < aiju> .+ pff
17:27 < aiju> .\+ master race
17:28 -!- Cobi [~Cobi@2002:1828:88fb:0:aede:48ff:febe:ef03] has joined #go-nuts
17:30 -!- Fish [~Fish@9fans.fr] has joined #go-nuts
17:31 -!- virtualsue [~chatzilla@nat/cisco/x-wqirewmqltlkidoi] has joined #go-nuts
17:36 -!- keithcascio [~keithcasc@nat/google/x-msbffqjmgitnlwwz] has joined
#go-nuts
17:43 -!- fmoo [~Adium@66.220.144.74] has quit [Quit: Leaving.]
17:49 -!- fmoo [~Adium@66.220.144.74] has joined #go-nuts
17:50 -!- gregschlom [~quassel@118.68.142.103] has quit [Ping timeout: 260
seconds]
17:53 -!- virtualsue [~chatzilla@nat/cisco/x-wqirewmqltlkidoi] has quit [Ping
timeout: 240 seconds]
17:55 -!- zimsim [~simon@87.72.77.195] has quit [Remote host closed the
connection]
17:57 -!- JusticeFries [~JusticeFr@173-8-247-218-Colorado.hfc.comcastbusiness.net]
has quit [Quit: JusticeFries]
17:59 -!- Glasswlkr
[~Glasswalk@CPE002369b3cd1a-CM00222d53f155.cpe.net.cable.rogers.com] has joined
#go-nuts
18:00 < plexdev> http://is.gd/svmTle by [Dmitry Chestnykh] in 2 subdirs of
go/ -- godoc: use "search" input type for search box.
18:00 -!- m4dh4tt3r [~Adium@c-69-181-223-245.hsd1.ca.comcast.net] has joined
#go-nuts
18:00 -!- Glasswalker
[~Glasswalk@CPE002369b3cd1a-CM00222d53f155.cpe.net.cable.rogers.com] has quit
[Ping timeout: 240 seconds]
18:09 -!- huin [~huin@91.85.185.181] has joined #go-nuts
18:10 < niemeyer> iant: ping
18:10 <+iant> niemeyer: pong
18:10 -!- JusticeFries [~JusticeFr@173.8.247.218] has joined #go-nuts
18:10 < niemeyer> iant: Hey
18:10 < niemeyer> iant: Do you have any insight about this error:
18:11 < niemeyer> error: array subscript is above array bounds
18:11 < niemeyer> iant: Getting that on an arm while building 5g
18:11 <+iant> what's the file and line number?
18:11 < niemeyer> iant: The code didn't change since the last compilation,
which is weird
18:11 <+iant> rsc added -Werror to the build recently
18:11 <+iant> so it might have been generating a warning before, which was
ignored
18:12 < niemeyer>
/build/buildd/golang-weekly-2011-04-13/src/cmd/5g/gsubr.c:337: error: array
subscript is above array bounds
18:12 < niemeyer>
/build/buildd/golang-weekly-2011-04-13/src/cmd/5g/gsubr.c:264: error: array
subscript is above array bounds
18:12 < niemeyer>
/build/buildd/golang-weekly-2011-04-13/src/cmd/5g/gsubr.c:304: error: array
subscript is above array bounds
18:12 < niemeyer> iant: Ah, that might explain it
18:12 < niemeyer> iant: I'll probably just -Wno-array-bounds for now
18:12 <+iant> what version of gcc are you using to build?
18:12 < niemeyer> iant: THis is natty, so ....
18:13 < niemeyer> 4:4.5.2-1ubuntu3
18:14 < niemeyer> iant: The code looks pretty normal, it feels spurious to
me
18:14 <+iant> I think it's real
18:14 <+iant> though I'm still looking
18:14 <+iant> I think the array needs to REGALLOC_FMAX + 1
18:17 -!- JusticeFries [~JusticeFr@173.8.247.218] has quit [Read error: Connection
reset by peer]
18:17 -!- cafesofie [~cafesofie@ool-4a5a6ee5.dyn.optonline.net] has joined
#go-nuts
18:18 < niemeyer> iant: Oh, wow
18:18 < niemeyer> iant: gcc is much more clever these days than I imagined
18:18 < niemeyer> iant: I was looking at the type and imagining how can it
tell..  is it actually inspecting the for loop?
18:19 <+iant> it's using VRP to determine the range of values the variable
might hold
18:19 <+iant> in a case like a for loop it knows for sure
18:20 <+iant> when it knows for sure, it issues the warning
18:20 < niemeyer> iant: That's quite awesome
18:20 <+iant> it's quite clever, yes
18:20 -!- artefon [~thiago@dhcp10.usuarios.dcc.ufmg.br] has quit [Quit: bye]
18:20 < skelterjohn> question: if you have something like foo := func()
{some stuff} inside a function, is that any less efficient than having func foo()
{some stuff} outside of the function?
18:21 < skelterjohn> or is the only difference the scope
18:21 <+iant> it's a little less efficient if the function literal refers to
variables in the enclosing function
18:21 <+iant> if it doesn't, I think it is basically the same
18:21 < skelterjohn> ok, makes sense
18:21 < skelterjohn> thanks
18:21 -!- tensai_cirno [~cirno@77.232.15.216] has joined #go-nuts
18:22 < skelterjohn> well, it's not possible to have it outside if it refers
to variables in the enclosing funciton
18:22 <+iant> true, although in some cases you can just pass the variables
as parameters
18:22 < skelterjohn> right
18:22 <+iant> but, yeah, it's a different case
18:22 < niemeyer> iant: I think the mistake is that the loop has to be <,
rather than the +1
18:23 < skelterjohn> so using a closure is less efficient than passing
parameters?
18:23 <+iant> niemeyer: I'm not sure, but looking at the defs in gg.h I
think +1 is right
18:23 <+iant> rsc and ken can decide
18:23 <+iant> skelterjohn: yes, a closure is a bit less efficient
18:24 < niemeyer> iant: Sounds good, thanks for looking at this
18:24 -!- crodjer [~rohanjain@203.110.240.205] has quit [Remote host closed the
connection]
18:28 -!- reds_ [~reds@pool-74-101-147-57.nycmny.fios.verizon.net] has joined
#go-nuts
18:29 -!- dchest [~dchest@109.228.79.14] has joined #go-nuts
18:33 -!- firwen [~firwen@gex01-1-78-234-55-225.fbx.proxad.net] has joined
#go-nuts
18:35 < skelterjohn> ah, interesting caveat of doing foo := func() {...}
18:35 < skelterjohn> that function cannot call itself
18:35 < skelterjohn> (have to declare the function before assigning it to an
actual function literal)
18:36 < niemeyer> skelterjohn: var func ...
18:36 < niemeyer> skelterjohn: You can declare it ahead of time
18:36 < skelterjohn> that's what i thought i said.  i probably used some
wrong key words.
18:36 < skelterjohn> in the parens
18:37 < niemeyer> skelterjohn: Ok, yes, you have to declare names in general
before you use them in the same scope
18:37 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.4]
18:38 < skelterjohn> right - it was just a caveat of the := operator
18:38 < skelterjohn> something that tripped me up for a few seconds
18:39 < niemeyer> skelterjohn: It's not a caveat of this operation, it's a
general rule
18:39 < niemeyer> skelterjohn: If you do this you have the same problem: var
a string = a
18:39 < skelterjohn> yes, i understand
18:39 < skelterjohn> i'm not saying go is doing something silly
18:39 < skelterjohn> i'm saying i did
18:40 < niemeyer> skelterjohn: Ok, sorry, it felt like you said it was an
interesting caveat of the := operator
18:40 < skelterjohn> to be fair, that is literally what i said :)
18:41 < skelterjohn> i just didn't mean to the exclusion of, eg, var foo =
18:41 < skelterjohn> a caveat of declaring and initializing a variable on
the same line, then, is that the bit of code initializing the variable cannot
refer to the variable
18:45 -!- firwen [~firwen@gex01-1-78-234-55-225.fbx.proxad.net] has quit [Remote
host closed the connection]
18:48 < niemeyer> skelterjohn: Right, just like a woman cannot give birth to
itself
18:48 < skelterjohn> unless, of course, you declare that woman before hand
18:49 < niemeyer> skelterjohn: Exactly..  it's fine for the woman to be
born, and it's fine for her to have a child
18:50 < skelterjohn> this is even worse than a slashdot-style car analogy!
18:51 < Namegduf> Well, a car can't give birth to itself either.
18:51 < Namegduf> So to speak.
18:51 < skelterjohn> haha
18:51 < skelterjohn> fine, i give up
19:00 -!- Count_Niedar [~bleh@ip68-99-166-222.hr.hr.cox.net] has joined #go-nuts
19:04 -!- Niedar [~bleh@ip68-99-166-222.hr.hr.cox.net] has quit [Ping timeout: 276
seconds]
19:04 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts
19:06 -!- rlab [~Miranda@91.200.158.34] has quit [Quit: Miranda IM! Smaller,
Faster, Easier.  http://miranda-im.org]
19:07 -!- photron [~photron@port-92-201-59-139.dynamic.qsc.de] has joined #go-nuts
19:09 -!- skammer [~skammer@ppp95-165-177-217.pppoe.spdop.ru] has joined #go-nuts
19:10 -!- skammer [~skammer@ppp95-165-177-217.pppoe.spdop.ru] has quit [Client
Quit]
19:11 -!- skammer [~skammer@ppp95-165-177-217.pppoe.spdop.ru] has joined #go-nuts
19:11 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.4]
19:12 -!- boomtopper
[~boomtoppe@cpc12-nrte22-2-0-cust249.8-4.cable.virginmedia.com] has quit [Ping
timeout: 258 seconds]
19:16 < dfr|work> ack.  xmpp is hard :(
19:16 < dfr|work> and evil.
19:16 < dfr|work> and xml-ly
19:16 < dfr|work> I'm sure all of you wanted to know that.
19:17 -!- skammer [~skammer@ppp95-165-177-217.pppoe.spdop.ru] has quit [Quit:
Leaving...]
19:17 -!- skammer [~skammer@ppp95-165-177-217.pppoe.spdop.ru] has joined #go-nuts
19:18 -!- nsf [~nsf@jiss.convex.ru] has joined #go-nuts
19:24 -!- boomtopper
[~boomtoppe@cpc12-nrte22-2-0-cust249.8-4.cable.virginmedia.com] has joined
#go-nuts
19:26 -!- skammer [~skammer@ppp95-165-177-217.pppoe.spdop.ru] has quit [Quit:
Leaving...]
19:37 -!- firwen [~firwen@gex01-1-78-234-55-225.fbx.proxad.net] has joined
#go-nuts
19:38 < skelterjohn> dfr|work: I feel better
19:39 < dfr|work> skelterjohn, <3
19:41 -!- Cobi [~Cobi@2002:1828:88fb:0:aede:48ff:febe:ef03] has quit [Read error:
Connection reset by peer]
19:42 -!- piranha [~piranha@5ED43A0B.cm-7-5a.dynamic.ziggo.nl] has joined #go-nuts
19:48 -!- edsrzf [~chickench@122-61-221-144.jetstream.xtra.co.nz] has joined
#go-nuts
19:52 -!- r_linux [~r_linux@189.38.220.35] has joined #go-nuts
19:53 -!- Cobi [~Cobi@2002:1828:88fb:0:aede:48ff:febe:ef03] has joined #go-nuts
19:56 -!- matti_ [~mumboww@c-24-6-22-101.hsd1.ca.comcast.net] has left #go-nuts []
19:57 < skelterjohn> how do you tell gotest to run BenchmarkX(b *testing.B)
methods?
19:58 < edsrzf> gotest -test.bench=Benchmark
19:59 < skelterjohn> thanks
19:59 < edsrzf> I think it's a regular expression, so that will actually run
any function with "Benchmark" anywhere in the name, but probably close enough.
20:00 < skelterjohn> gotest certainly collects BenchmarkX methods into its
auto-generated source without that flag
20:00 < skelterjohn> but that worked, thanks
20:01 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-154-183.clienti.tiscali.it] has
joined #go-nuts
20:02 < plexdev> http://is.gd/vtqqzM by [Brad Fitzpatrick] in
go/src/pkg/http/ -- http: handler timeout support
20:03 < nsf> http://pastie.org/1798601
20:04 * nsf has started code generation
20:04 < nsf> doesn't make sense, but it's here, yay
20:04 < nsf> :)
20:05 < nsf> hopefully soon it will become usable
20:05 -!- PortatoreSanoDiI [~Marvin@dynamic-adsl-94-36-182-163.clienti.tiscali.it]
has quit [Ping timeout: 248 seconds]
20:05 < nsf> and useful :P
20:13 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-158-172.clienti.tiscali.it] has
joined #go-nuts
20:16 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-154-183.clienti.tiscali.it] has
quit [Ping timeout: 252 seconds]
20:19 < nsf> [nsf @ crawl]$ echo "func RectArea(x, y, w, h float) float;" |
./crawl -no-ast
20:19 < nsf> float RectArea(float x, float x, float x, float x);
20:19 < plexdev> http://is.gd/0Htj2R by [Ian Lance Taylor] in go/src/cmd/5g/
-- 5g: correct size of reg array.
20:19 < nsf> :P
20:20 < plexdev> http://is.gd/1Vxh2I by [Russ Cox] in 3 subdirs of go/ --
gc: print of unsafe.Pointer
20:20 < plexdev> http://is.gd/rJu2a4 by [Russ Cox] in 2 subdirs of go/ --
gc: fix complex move bug
20:20 < nsf> oops
20:20 < nsf> :DDD
20:20 < nsf> first bug, lol
20:22 < nsf> [nsf @ crawl]$ echo "func main(argc int, argv **int8) int;" |
./crawl -no-ast
20:22 < nsf> int32_t main(int32_t argc, int8_t** argv);
20:22 < nsf> :P
20:24 < nsf> it will be a funny quest for a week
20:24 < nsf> definitely :D
20:26 < exch> quests are fun
20:26 -!- Project-2501 [~Marvin@82.84.85.25] has joined #go-nuts
20:28 < nsf> I've just realized that I don't have varargs semantics even for
external C functions
20:28 < nsf> and it won't be a fun without printf function :)
20:29 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-158-172.clienti.tiscali.it] has
quit [Ping timeout: 246 seconds]
20:35 -!- espeed [~espeed@63.246.231.57] has quit [Ping timeout: 246 seconds]
20:36 -!- skelterjohn [~jasmuth@lawn-gw.rutgers.edu] has quit [Quit: skelterjohn]
20:37 < str1ngs> nsf: when gcc 4.6 hits core you might have to remove 4.7
due to cloog vs cloog-pl conflict.  when it does I'll rebuild the package
20:37 < nsf> I've removed it already :)
20:37 < str1ngs> lol
20:37 -!- fhs [~fhs@pool-74-101-66-112.nycmny.east.verizon.net] has joined
#go-nuts
20:37 < nsf> I have it as a package though
20:38 < nsf> str1ngs: I have a problem with space
20:38 < nsf> my / partition has only 7 gigs
20:38 < str1ngs> ok well I plan to decouple it more
20:38 < nsf> and there is like only 400 megs free
20:38 < nsf> so, having 80 megs of a gccgo compiler
20:38 < nsf> is a burden :)
20:38 < str1ngs> I understand its not ideal
20:39 < nsf> I'm not complainig
20:39 < nsf> complaining*
20:39 < nsf> it's fine as it is
20:39 < nsf> it works
20:39 < str1ngs> well hopefully I can roll the decoupling into gcc 4.6 so it
will mean even more space saved
20:40 < str1ngs> anyways when it does move I'll put a new download up.  and
maybe by then I'll even have it decoupled
20:40 < nsf> ok
20:41 -!- espeed [~espeed@63.246.231.57] has joined #go-nuts
20:42 -!- firwen [~firwen@gex01-1-78-234-55-225.fbx.proxad.net] has quit [Remote
host closed the connection]
20:56 < gzmask> hould I use web.go+mustache.go or node.js+express ??  which
one is more fun???  I need FUN!!!
20:58 < exch> gzmask: that depends on entirely on your idea of fun I guess
21:00 -!- jbooth1 [~jay@209.249.216.2] has left #go-nuts []
21:00 -!- PortatoreSanoDiI [~Marvin@82.84.77.82] has joined #go-nuts
21:01 -!- Fish [~Fish@9fans.fr] has quit [Quit: So Long, and Thanks for All the
Fish]
21:04 -!- Project-2501 [~Marvin@82.84.85.25] has quit [Ping timeout: 260 seconds]
21:04 -!- Venom_X [~pjacobs@66.54.185.131] has quit [Quit: Venom_X]
21:07 < gzmask> –noun
21:07 < gzmask> 1.
21:07 -!- lmoura_ [~lauromour@186.215.206.130] has quit [Quit: Leaving]
21:07 < gzmask> something that provides mirth or amusement: A picnic would
be fun.
21:07 < gzmask> 2.
21:07 < gzmask> enjoyment or playfulness: She's full of fun.
21:08 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-162-33.clienti.tiscali.it] has
joined #go-nuts
21:08 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-162-33.clienti.tiscali.it] has
quit [Read error: Connection reset by peer]
21:08 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-162-33.clienti.tiscali.it] has
joined #go-nuts
21:09 < nsf> install crysis 2 or something, and have fun
21:09 < nsf> games are fun, movies are fun
21:09 < nsf> programming isn't fun
21:09 < nsf> :)
21:09 < Namegduf> I think node.js is pretty funny.
21:09 < nsf> programming is more like art
21:09 < nsf> or craft
21:09 < Namegduf> Fingerpainting is also funny
21:09 -!- PortatoreSanoDiI [~Marvin@82.84.77.82] has quit [Ping timeout: 260
seconds]
21:09 < Namegduf> If you get my drift
21:10 < Namegduf> While Go is more like carefully adding the finishing
touches to a masterpiece with a perfectly sized brush, reviewing each stroke
carefully with an expression of concentration.
21:10 < Namegduf> While wearing a top hat.
21:11 -!- kr [~Keith@204.14.152.118] has joined #go-nuts
21:11 < Namegduf> Also fun but far more satisfying.
21:11 < nsf> :)
21:11 * exch finds programming quite a bit of fun
21:11 * Namegduf is moderately surprised he found a way to turn that around into
an actual conclusion.
21:12 < mpl> how about a monocle?  I can't see myslef wearing a top hat
without a monocle.
21:12 < Namegduf> Of course!
21:12 < mpl> ok then.
21:12 * Namegduf actually owns a top hat.
21:13 < Namegduf> I ordered it for taking a photo ID picture.
21:13 < mpl> we wouldn't want to insult fashion or anything.
21:13 -!- r_linux [~r_linux@189.38.220.35] has quit [Quit: Lost terminal]
21:13 < nsf> although I'm biased
21:14 < nsf> I don't do much of Go lately, I do C++ only
21:14 < nsf> definitely isn't fun
21:14 < nsf> :)
21:14 * mpl concurs.
21:14 < Namegduf> C++ is Fun, which is distinct from fun.
21:14 < Namegduf> Losing is Fun.
21:14 < mpl> the only fun I have is when I make tools in go to help me with
my c++
21:14 -!- i__ [~none@unaffiliated/i--/x-3618442] has quit [Quit: leaving]
21:15 < Namegduf> Java on the other hand is unfun like being locked in a
grey painted room for three hours with nothing to do.
21:15 < nsf> I'm writing a compiler for a language that will replace C++
21:15 < nsf> haha
21:15 < nsf> compiler is written in C++
21:15 < nsf> kind of funny
21:15 < mpl> yeah while c++ is insane, java is a bit less crazy but dull.
21:16 < ww> funny thing made with go + javascript:
http://semantic.ckan.net/record/480e0513-a7d3-4832-8e91-985bd9717238.html
21:16 -!- i__ [~none@unaffiliated/i--/x-3618442] has joined #go-nuts
21:16 -!- photron [~photron@port-92-201-59-139.dynamic.qsc.de] has quit [Ping
timeout: 246 seconds]
21:16 < ww> the next part means screwing with xml...  so now i
procrastinate...
21:18 < ww> fwiw, i used to own a top hat when i was at uni
21:18 < Namegduf> Haha, nice.
21:18 < ww> ...  always wanted a monocle
21:19 < Namegduf> Me too.
21:19 < Namegduf> I also want a digital pocket watch, but that's for
practical purposes.
21:19 * Namegduf hates watches
21:19 < Namegduf> I just use my phone, practically.
21:19 * nsf too
21:19 -!- m4dh4tt3r [~Adium@c-69-181-223-245.hsd1.ca.comcast.net] has quit [Ping
timeout: 240 seconds]
21:20 < nsf> I use phone as watches more often than as phone :)
21:20 < Namegduf> I have a regular clockwork one, but it loses time
horribly.
21:20 < Namegduf> It's mostly just to go with the hat.
21:20 < ww> i'm thinking of getting my son (almost 3y) a watch so i can
teach him to tell time...
21:21 < nsf> :D
21:23 < mpl> let me give you something on topic then:
http://www.explosm.net/comics/2384/
21:26 -!- vpit3833 [~user@CPE-58-160-37-24.phzl1.ken.bigpond.net.au] has joined
#go-nuts
21:28 < nsf> I have few deep philosopical thoughts in mind
21:28 < nsf> but I won't say anything :)
21:28 < nsf> it always ends badly
21:31 < mpl> nsf: this already shows how wise you are :)
21:31 < nsf> lol
21:36 -!- skelterjohn [~jasmuth@c-24-0-2-70.hsd1.nj.comcast.net] has joined
#go-nuts
21:39 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-181-51.clienti.tiscali.it] has
joined #go-nuts
21:42 -!- Project_2501 [~Marvin@dynamic-adsl-94-36-162-33.clienti.tiscali.it] has
quit [Ping timeout: 240 seconds]
21:45 -!- m4dh4tt3r [~Adium@95.sub-75-210-149.myvzw.com] has joined #go-nuts
21:53 -!- pharris [~Adium@rhgw.opentext.com] has quit [Quit: Leaving.]
22:00 -!- huin [~huin@91.85.185.181] has quit [Quit: leaving]
22:01 -!- krolaw [~krolaw@203.100.208.229] has joined #go-nuts
22:15 -!- Project-2501 [~Marvin@dynamic-adsl-94-36-181-51.clienti.tiscali.it] has
quit [Ping timeout: 248 seconds]
22:20 -!- m4dh4tt3r1 [~Adium@c-69-181-223-245.hsd1.ca.comcast.net] has joined
#go-nuts
22:24 -!- m4dh4tt3r [~Adium@95.sub-75-210-149.myvzw.com] has quit [Ping timeout:
260 seconds]
22:24 -!- dreadlorde [~dreadlord@c-24-11-39-160.hsd1.mi.comcast.net] has joined
#go-nuts
22:37 -!- krolaw [~krolaw@203.100.208.229] has quit [Quit: krolaw]
22:37 -!- ExtraSpice [XtraSpice@88.118.35.153] has quit [Read error: Connection
reset by peer]
22:38 < plexdev> http://is.gd/ueWTi3 by [Ross Light] in
go/src/pkg/compress/zlib/ -- compress/zlib: add FDICT flag in Reader/Writer
22:43 -!- piranha [~piranha@5ED43A0B.cm-7-5a.dynamic.ziggo.nl] has quit [Quit:
Computer has gone to sleep.]
22:44 -!- boomtopper
[~boomtoppe@cpc12-nrte22-2-0-cust249.8-4.cable.virginmedia.com] has quit [Ping
timeout: 250 seconds]
22:53 -!- |Craig| [~|Craig|@panda3d/entropy] has joined #go-nuts
22:55 -!- daharon [~daharon@173-11-102-86-SFBA.hfc.comcastbusiness.net] has quit
[Quit: Leaving]
22:56 -!- nsf [~nsf@jiss.convex.ru] has quit [Quit: WeeChat 0.3.4]
23:01 -!- dchest [~dchest@109.228.79.14] has quit [Quit: dchest]
23:02 < exch> My compiler is too good at inlining and removing unused
data/code..  When I define placeholder functions in script code, which will later
be bound to Go functions in the runtime, it optimizes them away, cos they dont
actually contain any code -.-
23:02 < exch> I guess I need something like an 'extern' keyword to define
those
23:04 -!- Glasswlkr
[~Glasswalk@CPE002369b3cd1a-CM00222d53f155.cpe.net.cable.rogers.com] has quit
[Ping timeout: 258 seconds]
23:05 -!- arun_ [~arun@unaffiliated/sindian] has quit [Ping timeout: 246 seconds]
23:06 -!- virtualsue [~chatzilla@nat/cisco/x-xjkefnblavcbxzbl] has joined #go-nuts
23:08 < uriel> exch: best compiler to remove unused code: rm -rf /
23:10 < exch> yea, but not very useful
23:10 < exch> I like useful
23:10 -!- Glasswalker [~Glasswalk@99.246.189.83] has joined #go-nuts
23:16 -!- espeed [~espeed@63.246.231.57] has quit [Ping timeout: 246 seconds]
23:16 < uriel> I can think of quite a few developers that if they did rm -rf
/ frequently, I would consider it very useful for the future of the software
industry
23:16 -!- espeed [~espeed@63.246.231.57] has joined #go-nuts
23:17 -!- reds_ [~reds@pool-74-101-147-57.nycmny.fios.verizon.net] has quit
[Remote host closed the connection]
23:18 < exch> I'm sure that's true.  But my work is nothing short of nobel
prize material.
23:18 -!- iant [~iant@nat/google/x-biaoaqcinweiolai] has quit [Read error:
Operation timed out]
23:19 < exch> Every keystroke is worth it's electrical charge in gold
23:22 < skelterjohn> what does that even mean
23:24 < exch> It probably means I need a lesson in humility
23:29 -!- jgonzalez [~jgonzalez@173-14-137-134-NewEngland.hfc.comcastbusiness.net]
has quit [Ping timeout: 276 seconds]
23:30 -!- fenicks [~fenicks@log77-3-82-243-254-112.fbx.proxad.net] has joined
#go-nuts
23:30 < |Craig|> well, if you take the electrical charge distribution caused
by the key's switch, and get the potential energy stored by that, and use e=mc^2
to convert the energy to some mass of gold, the units are ok, but thats probably a
lot less than your keystrokes are worth
23:31 < exch> ah bummer
23:31 < exch> here I was hoping to get rich :<
23:34 -!- GutenLinux [~chatzilla@122.242.168.132] has joined #go-nuts
23:35 -!- GutenLinux [~chatzilla@122.242.168.132] has quit [Client Quit]
23:35 -!- GutenLinux [~chatzilla@122.242.168.132] has joined #go-nuts
23:41 -!- reds [~reds@pool-74-101-147-57.nycmny.fios.verizon.net] has joined
#go-nuts
23:43 < scyth> haha
23:45 -!- virtualsue [~chatzilla@nat/cisco/x-xjkefnblavcbxzbl] has quit [Ping
timeout: 252 seconds]
23:49 < plexdev> http://is.gd/BkxMmH by [Russ Cox] in 2 subdirs of go/ --
undo 4439044
23:49 < plexdev> http://is.gd/qStraB by [Brad Fitzpatrick] in
go/src/pkg/mime/ -- mime: bunch more tests, few minor parsing fixes
23:51 -!- ShadowIce [~pyoro@unaffiliated/shadowice-x841044] has quit [Quit:
Verlassend]
--- Log closed Sat Apr 16 00:00:15 2011