--- 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