<<21-06-2012>>

00:43:39*Trixar_za is now known as Trix[a]r_za
04:05:42*XAMPP joined #nimrod
05:09:34zaharyI used distinct to control one specific property of the type classes - whether they will bind once to a type within a proc call
05:09:35zaharye.g.
05:09:35zaharyproc foo(a, b: expr) # a and b can be different types
05:09:35zaharyT1 = distinct expr
05:09:35zaharyproc foo(a,b: T1) # a and b must be the same type
05:20:08zaharyI haven't quite made my mind yet what should be the default. with concrete types like the current examples "bind once" makes more sense, but I think with feature-based constraints (checks wether the type support certain operations), "dont bind" is more likely what the user want
05:21:13zaharyabout the destructors: if we specify that the move function should leave the object in a state where a destructor is equivalent to noop, we can statically determine that "x" was moved into the result and requires no further action
05:27:06*XAMPP[0] joined #nimrod
05:28:02*XAMPP quit (Ping timeout: 272 seconds)
05:31:45*XAMPP[0] quit (Client Quit)
05:39:39zahary… but I must point out that this doesn't buy us much in terms of codegen complexity - you still have to compile a try/catch block to call the destructor if the scope is left before the move(x, result) line
07:44:24*Araq_ joined #nimrod
07:46:00*Araq_ quit (Client Quit)
11:14:00*Trix[a]r_za is now known as Trixar_za
13:02:25*Araq_ joined #nimrod
13:02:41Araq_so zahary
13:02:47Araq_any idea what causes the bug?
13:03:04Araq_it's not like we have lots of objects with flags in them ...
13:03:10Araq_o.O
13:03:59zaharyyou have left some comments just below the error
13:03:59zahary# XXX: this BUG is hard to fix -> we need to introduce helper structs,
13:03:59zahary# but determining when this needs to be done is hard. We should split
13:03:59zahary# C type generation into an analysis and a code generation phase somehow.
13:04:34zaharyI was working on something else and didn't bother to chase this further as there is easy work around
13:05:18Araq_but that refers to:
13:05:30Araq_type T = array[0..4, T]
13:05:45zaharyyes, I figured this must be the intent
13:06:06Araq_well 'T' is obviously invalid, but there are similar examples
13:06:16Araq_where nimrod's type system allows things that C's does not
13:07:16Araq_I don't get why your example doesn't work
13:07:28Araq_it idiomatic nimrod code ...
13:07:31Araq_*it is
13:07:32zaharyThinking about it, the error is quite logical - probably it's trying to validate the function type
13:07:53Araq_but there is no dependency between the function type and the object
13:07:55zaharyso it goes over all params - registers TFlags, then reaches the return type and bang
13:08:13Araq_it's absurd
13:08:32Araq_a function type does not introduce a strong dependency
13:08:54Araq_should be easy to fix though
13:09:43Araq_I mean there is a dep from proc -> object, but not from object -> proc
13:09:48Araq_so there is no cycle
13:10:20Araq_and the internal error should only trigger when it encounters a cycle it can't resolve
13:15:38*Araq__ joined #nimrod
13:17:44*Araq_ quit (Ping timeout: 250 seconds)
13:21:59*Trixar_za is now known as Trix[a]r_za
13:32:04*Araq__ quit (Quit: ChatZilla 0.9.88.2 [Firefox 13.0.1/20120614114901])
17:39:57*Trix[a]r_za is now known as Trixar_za
17:42:04Trixar_za[NimBot] Araq/Nimrod dedbeef Araq [+0 �3 -0]: moar fixes <-- wonder when we'll get one like that, as in the hash number
17:42:43AraqTrixar_za: what?
17:42:56Araqthe fix had no github number ...
17:43:23AraqI always use #no if there is any
17:43:37Trixar_zaIt uses hexadecimal hashes to mark the commits
17:43:53dom96Trixar_za: The chances of that happening are quite slim I think.
17:44:07Trixar_zaProbably.
17:44:12Trixar_zaWould be awesome to see though
17:44:52Araqcan't follow
17:45:21Trixar_zahttp://en.wikipedia.org/wiki/Hexspeak
17:46:09dom96Araq: He's wondering when this will happen: [NimBot] Araq/Nimrod **dedbeef** Araq [+0 �3 -0]
17:46:22dom96Note the 'dedbeef'
17:46:35Araqwhat's the advantage?
17:46:56Trixar_zaIt's just an intellectual novelty
17:47:03Trixar_zaNo real advantage
17:56:53dom96Trixar_za: How's the asyncio-ing going? :P
18:00:53Trixar_zaHaven't tried yet :P
18:00:59Trixar_za*hides*
18:01:45*dom96 shakes head in disappointment
18:07:06Trixar_zaSpeaking of which, I'm busy considering if I should become a debugger. I seem to have a unnatural talent for it. Mostly because programming is logical and follow set patterns ('style') and anything that deviates from this pattern is most likely a mistake or just bad form. I can also fix problems using the same patterns. Why I can read code in all languages even though I never learned it.
18:07:45Araqyes debug nimrod :-)
18:09:24Trixar_zaOnly good thing that ever came from my crappy first few years in school studying in a language I barely understood :P - I have a good memory, I'm a good mimic and I see patterns near instantly :P
18:09:47Trixar_zaAlso means I suck at writing code on my own though :/
18:11:37Trixar_zaAnd yeah, that's how I figured the echo/print thing out on my own. Not by any real skill at Nimrod >.>
18:44:34*Trixar_za is now known as Trix[a]r_za
18:46:55*Bosc0p joined #nimrod
18:47:11*Boscop quit (Disconnected by services)
18:47:13*Bosc0p is now known as Boscop
18:47:15*Boscop quit (Changing host)
18:47:15*Boscop joined #nimrod
19:02:37*Bosc0p joined #nimrod
19:02:53*Boscop quit (Disconnected by services)
19:02:55*Bosc0p is now known as Boscop
19:02:57*Boscop quit (Changing host)
19:02:57*Boscop joined #nimrod
20:17:14*dom96 is declaring today to be a big Nimrod task implementation day on Rosetta code :P
20:57:29Araqwhat about improving the forum instead, dom96? :P
20:57:42Araqpeople wanna 'reset password' feature
20:57:50dom96But but but :(
20:57:56dom96This is fun :P
20:58:33Araqalright ... add it to the testsuite :P
20:58:45AraqI'm trying hard to make it smaller though
20:59:10Araqand add new stuff to already existing tests :-)
21:00:05dom96Will do.
21:02:52dom96My goal mostly is to find good tests for the new closures :P
21:04:55Araqwell you already found a bug :-/
21:05:49dom96Better to test them thoroughly :P
21:05:59Araqindeed
21:39:24Araqgood night guys
21:54:58*filwit joined #nimrod
21:55:55dom96hey filwit!
21:56:03filwithi
21:56:27filwitis there a way to read the pragmas of a proc?
21:56:59dom96You mean check what pragmas are set on a proc?
21:59:10filwityes
22:01:24dom96I'm not sure. Why do you want to do that?
22:01:49filwitbasically I'm trying to make a "new Type" syntax with a macro, which will call a any finalizer marked with {.new.}. Or something along those lines
22:02:32filwitthe only issue I have with non-pure OOP design is when I'm creating object, I like to know exactly what type I'm guess from the factory function at a glance
22:03:45filwitmy mind basically says "I need a new File... so I type 'new' and tell it 'File' and that's all I have to remember... not createFile(), or newFile(), etc"
22:05:26dom96filwit: right, this might help: https://gist.github.com/2de51a3146470998502c
22:05:44dom96See the way the pragma is stored in the AST?
22:06:17filwitokay great, I was thinking I'd need to write a macro to do it
22:06:45filwitI forgot about the dumpTree: thing
22:06:49filwitvery useful
22:06:52dom96indeed
22:07:46dom96Wait. So if you have `new Type`, then you want this to be transformed into:
22:08:08filwitwell, 'new' is already taken, so probably 'create Type'
22:08:23dom96newType() - where `newType()` is defined like: proc newType(): Type {.new.} ?
22:08:35filwityes
22:09:14filwitso you mark each "constructor" with {.new.} pragma to allow it to work with the 'new' keyword (create)
22:09:15dom96I'm not sure that is possible with a macro, how will you search for the function marked with {.new.}?
22:09:34filwitwell that's what I'm trying to figure out
22:10:15filwitcan I get a list of functions that match a parameter filter? In a macro that is
22:10:33filwitmeaning... proc foo(Type, ...), proc bar(Type, ...)
22:10:37filwitthen
22:10:43filwitmacro create:
22:11:16filwit for func in getAllProcWithTypeAsFirstParam():
22:11:19filwit ...
22:11:24dom96As far as I know there is no way to get a list of functions that have been defined in a macro.
22:11:42filwitwell..... damn
22:11:52filwitguess this doesn't work then
22:12:02filwitI can do it through naming conventions
22:12:39dom96I wonder how hard it would be to implement a function which gives you this kind of information.
22:12:46filwittemplate create(T:expr, params:expr) = `create T`(params)
22:13:04filwitand then you define: proc createMyType(...) = ...
22:13:17filwitand you can say: var foo = create MyType(...)
22:14:02filwitbut I'd prefer not to rely on naming conventions.... at that point there's not difference really between just calling the factory function
22:14:20dom96hrm, wait.
22:15:14dom96Nah, what I'm thinking of is runtime type information.
22:15:32filwitwhat would fix everything, is if 'new' simply had an 'expression' version... meaning you could use 'new' like this: var foo = new Foo()
22:15:42filwitand like:
22:15:47filwitvar foo: Foo
22:15:49filwitnew foo
22:16:34filwitbut my test show that you can't have two procs that return different things
22:16:59dom96Yeah, overloading based on return type is not implemented yet.
22:17:07filwitso it's planned?
22:17:13dom96Yeah, as far as I know.
22:17:21dom96And that type of syntax will be used then
22:17:26filwitwell then great, I will not worry about this now
22:18:00filwitbecause once we can do that, then I'm sure I can convince Araq to make a version of 'new' that works like the above
22:18:24filwitI looked at the definition of 'new' and it's just a {.magic.} pragma
22:18:37filwitwhich I have no Idea where to find out what that does
22:18:48dom96It's implemented in the compiler.
22:18:59filwityes but where?
22:19:01dom96new only works on references I believe, and pointers.
22:19:25dom96So I bet it only allocates storage for the data and sets the reference/pointer to point to that data.
22:20:40dom96let me try to nimgrep for it
22:22:11filwitanyways, I just had that idea last night, and spent a moment trying to get it to work. I really don't have to much time to spend on this stuff... all my free-time I spend getting the last of the graphics done for my project
22:22:42filwitwhich sux ATM, since we missed the competition dead-line :-(
22:23:57filwitIt wasn't really a possibility though, we entered to late and have problems with the graphics half-way through (ending up having to change our initial design entirely) to make them work without GPU shaders (which Windows Phone 7 doesn't support)
22:24:38filwitbut now that we missed the dead-line, we're changing them back to our initial design (mostly), LOL
22:24:54dom96nice lol
22:25:20filwitso it's been a bit of a head-ache, but things should be ready for release in the new few days now
22:25:43filwitand I'm excited to be able to get back to work on Aporia
22:25:54filwitNimrod really does have some great things about the language
22:26:39dom96Well my exams are finally ended, however I am leaving for holidays soon, and then straight after I come back I will start working :(
22:26:51dom96I should have time on the weekends hopefully though.
22:27:07dom96filwit: ccgexprs.nim line 907
22:27:52*dom96 really needs to start hacking on the Nimrod compiler again
22:28:10filwitit's fine, we can just both work on stuff when we can. I just don't like making a bunch of feature requests and then not helping get them done
22:28:16filwit:-V
22:28:29filwitthanks for the source info
22:29:29dom96I'm glad you're helping. You should help Araq with the compiler also :D
22:29:45filwitI've starting taking a look at the compiler source a bit
22:30:21filwitit's a bit complex for me to just start adding features, but I'll keep learning it until I can
22:31:43dom96I understand, It's still complex for me too :P
22:33:25filwitI think in the more immediate future I could 'help' more with the publicity of Nimrod, which is to say I could make a simple game with it
22:34:00dom96That would be awesome.
22:34:04filwitI would like to make a simple shooter or something, and start porting over our Reign engine (at least pieces of it)
22:34:35filwitone things people are always saying about D is... "it sounds cool, but can you show me anything that's been made with it?"
22:35:08filwitpeople arn't really willing to learn a whole language with out some sort of evidence that it can do things
22:35:23filwiteven if the language in question is completely awesome
22:35:31dom96of course.
22:36:03filwitit's usually about what's more practical to use... that's why C#/Java are so popular cause all the external libraries and support basically mean you can focus solely on your own project and just make it work
22:36:47filwitsome I was impressed with Nimrod is that many libraries (X11, OpenGL, etc) are already wrapped and distributed with the compiler, so I can just use them
22:36:48dom96Well I actually find the fact that I can help out with the core of the language quite fun :)
22:37:07filwitya, and I would like to eventually be able to do that as well
22:38:01filwitrealistically though, that's not a world I know much about (at least not to that degree), and so it'll be awhile before I start contributing much
22:39:38dom96It actually gives you very good experience. For example I never knew as much about sockets as I do now before I started using Nimrod and improving Nimrod's sockets module :P
22:40:17filwityep, I know what you mean. I learned a ton about language design by learning about D
22:40:20dom96It really helped me realise how annoying some of POSIX and the Win API is.
22:40:49filwitI don't think I would even be able to appreciate the beauty of Nimrod if I hadn't first learned about D
22:41:00filwitlol
22:41:09filwitare you a Window, Linux, or Mac fan?
22:41:59filwitI'm a Linux guy (as of a year ago), but that's more about supporting community (open source) software than the actually differences between the OSs
22:42:00dom96Linux, well... sometimes I still have a hard time deciding between Windows and Linux. But Linux is definitely better for programming.
22:43:30filwitya, they're both good systems
22:43:46dom96I'm not sure about Macs, I haven't really given Mac OS a fair try.
22:44:00filwitit sux dude
22:44:00dom96But Macs are too expensive, so no thanks :P
22:44:12filwitI have a Mac with the newest OS
22:44:33filwitit's not fun, not for programmers at least
22:44:50dom96Why do so many programmers use them then? 0_o
22:44:52filwitfor instance... it's practically impossible to open two instances of a single app...
22:45:32dom96oh yeah because of that dock thingy lol
22:45:34filwitIDK... cause they're crazy? Why do so many programmers write in C? You can't explain that. (meme reference ;P)
22:45:54filwitya you have to start a new instance through the terminal
22:46:24filwitbecause the system is built for grandmas and stuff
22:46:29filwitwhich isn't a bad thing
22:46:37filwitbut the way GnomeShell works is much better
22:47:01filwit(click on program: go to instance)(right-click, "new window": new instance)
22:47:06filwitbest for both
22:47:24dom96btw what distro do you use?
22:47:37filwitArch, but I'm on Ubuntu ATM
22:47:48dom96Ahh. I use Arch too.
22:47:59dom96Do you use Gnome Shell then?
22:48:04dom96(On Arch)
22:48:09filwityes
22:48:30filwitI've tried Xfce and KDE recently, but Shell is best
22:48:41filwitbtw, you should get this new extension if you're on Shell
22:48:46dom96hrm, I should give it a try. Currently using Xfce.
22:49:29filwitoh, the one thing I like much better about Shell over Xfce is the activity management (it's dynamic) and the overview mode
22:49:44dom96No idea what those things are heh
22:50:05filwitActivity=workspace (desktop, screen, etc)
22:50:30filwitin Xfce you have to create a set amount (how it a Ctrl-Insert to create a new one)
22:50:44dom96I see.
22:51:24filwitin Shell, the "overview" makes managing windows much easier... for me at least because I think spatially
22:52:25filwitIt's easier to me to keep windows almost entirely visible on each workspace, and have multiple workspaces, than it is to constantly click through a list on a task bar
22:52:34filwitbut that may just be me
22:52:52filwitand there's a new extention for Shell which adds a good dock
22:53:55filwitbtw, I know Araq's German. What's your native language?
22:54:01dom96hrm, I definitely have to check it out.
22:54:37filwitdo you speak English natively?
22:54:43dom96Polish. But i've been living in the UK for so long now that English is pretty much native to me nowadays.
22:54:57filwitcool
22:55:35filwitIt would be interesting to live in a place where many people know multiple languages I think
22:55:50filwitthough English is quickly becoming "standard"
22:55:57filwit(because of the web)
22:56:33dom96Yeah. I want to learn a third language, knowing two languages isn't cool anymore :P
22:56:41filwitlol
22:56:49filwitcome to the states, it's cool in the states
22:57:11filwitor not cool, depending on if your second is Spanish ;P
22:57:38dom96I might someday move to the states.
22:57:50dom96But I hear that it's not that easy.
22:58:16filwitreally? why? it's not awesome over hear or anything. And our economy is going down the drain
22:58:38filwithere** I mean, we have a lot of cool things over here
22:58:43dom96Dunno. The states always felt "cool" to me.
22:59:00filwitbut there's also a lot of stupid people (looks at Wesboro baptist church)
22:59:08dom96I should probably visit England first though.
22:59:26dom96Ireland is just rain, rain, wind, farms and cows.
22:59:39filwitya, lol I feel ya there
22:59:47filwitthat's why I love Florida so much :)
22:59:52filwitlots of sun and beaches
23:00:11filwitbut I've lived up north, where it's basically that... rain, snow, and farm land
23:00:12dom96Well at least it's never /too/ warm here :P
23:00:30filwitya, I kinda like the crazy heat though ;P
23:00:52filwitit's nice being able to jump into an 80 degree pool at 3am ;D
23:01:20dom96Yeah, I kinda miss it too now... but then again when it's too warm my brain functions worse than a monkey's.
23:01:35filwityou've been to Florida? or...
23:01:43dom96Poland :)
23:01:52dom96It's very warm there in the summer.
23:01:54filwitPoland gets really hot like that?
23:02:03filwitdidn't know that
23:02:24dom96lol, does everyone think that Poland is some kind of ice country?
23:02:59filwitidk... never thought about it much. I just thought it was mostly full of country side and farms
23:03:13dom96Yeah, it is.
23:03:15filwitwhich isn't exactly what you think when you think "warm weather"
23:03:46filwitI used to live in Iowa, and it gets very warm in the summer, and about -20 sometimes in the winter
23:03:48dom96I guess your idea of "warm weather" is: beaches, sunshine, beaches...
23:03:57filwityes
23:04:00dom96Basically Florida I guess? or Miami :P
23:04:21dom96Yeah, it's the same in Poland. Very warm in summer, very cold in winter.
23:04:29dom96In Ireland it's just mild, always.
23:04:44filwitya, sounds like Oregon (where i was mostly raised)
23:04:46dom96Barely any snow in winter, and some sun in summer.
23:04:57filwityep... that's about it
23:05:01filwitI feel for you
23:05:13filwitthat's why I moved away from there when I was able
23:05:26filwitcause we had around 280 days of overcast
23:05:35dom96Well like I said, I don't really mind the weather here.
23:06:13filwitmore power to you then. I met some people in Oregon that where die-hard rain fans
23:06:25filwitit it's what you like, then that's great
23:07:52dom96I'm definitely not a die-hard rain fan. I do enjoy some sunshine, as long as it's not so much that I feel like I am passing out even with a fan on, blowing cool air at me.
23:08:21dom96It's definitely sunshine > rain for me :)
23:08:34filwitya, everyone where keeps their AC's on high, so usually it's a big contrast stepping outside then in
23:08:55filwitbtw... what's the economy like over there?
23:09:08filwitI hear Greece is in a bit of a melt-down ATM
23:09:20dom96Yeah, Greece is in serious trouble.
23:09:32filwithear it's getting pretty bad too, but not like Greece
23:09:40dom96I think Ireland is alright.
23:09:57dom96But I can't say i'm up to date on the state of the economy here.
23:10:04filwitya
23:10:23dom96I hear the Greece owes Europe a shit load of money.
23:10:26dom96*that
23:10:37filwitlol
23:10:51filwitUSA owes China way more I'm sure
23:11:03dom96And that they're having a bad time rebuilding the government as they can't decide who to pick to lead their country.
23:11:04filwitcause we keep spending on stupid wars
23:11:42filwitgod, I seriously think there's a better way to run governments and economies
23:12:04filwitthan to "elect" people into positions of authority where they can fuck things up
23:12:43filwithave you ever heard of the Venus Project?
23:12:51filwitI think there's real value in their ideas
23:12:55dom96no, what is it?
23:14:09filwitwell it's a group that's purposing an economic structure built without money
23:14:25filwitthe first thing you're probably going to say is "you mean communism?"
23:14:55filwitand no, there's a major difference in both the concept, and the state of technology that might allow for it to be possible now
23:15:46filwitbasically the idea is: since robots are stealing all of our jobs, soon we will have the ability to automatic virtually everything in our lives.... so what happens to all the uneducated work force then?
23:17:13filwitcause that's the real issue actually, if you look at graphs (I can look them up) you see that most of things that used to be made by human hands are now made by machines
23:18:08dom96hrm, right. I'm not sure I completely understand.
23:18:09filwitthere's this guy, that's invented a machine, that can print a house in 24hours with 40% less material
23:18:11filwitI shit you not
23:18:48filwitit's still in prototype form, but soon, even the construction of houses may be completely done by machine
23:19:02dom96How will this economic structure work without money?
23:19:39filwitya that's the first question I asked when I first heard about it
23:20:34filwitthere's a video that does a much better of describing it than I can, but basically it would go like this
23:20:43filwittrue "wealth" is resources
23:21:43filwitif labor can be automated, then the only things left for us to do is make technical designs of machines that can convert those resources into houses, cloths, food, etc
23:22:43filwitbasically, today, we have private corporations that compete for "ownership" of resources, and distribution "rights"
23:23:28filwitthey usually have their interests above their consumers, but there's a balance there, because of competing corporations which are gunning for the same consumers
23:23:46filwitbut still, it's easy to see how that system can be corrupted
23:24:36dom96So basically instead of money, you exchange goods for other goods. So say, I want sugar, ok give me potatoes.
23:24:45filwitwhat would work better, is if there was simple a repository of technical designs, and a distributing "service" which allocated resources to the projects of "provably best worth"
23:24:51dom96But then, how much sugar for one potato?
23:25:01filwitno it's not a barter system
23:25:14filwitcause that's basically the same as money, like you're saying
23:25:51dom96I'm sorry. I don't think I see it.
23:25:55filwitbasically it's the idea that we can provide for our needs by creating machines to do it for us
23:26:12filwitthat's fine, and I don't expect you to just agree with me here or anything
23:26:14dom96Right. But machines will need maintenance.
23:26:42filwitsure, and today it's not fully possible IMO
23:26:44dom96What will the people that spend time maintaining these machines receive as a reward?
23:27:05filwitwhy do you work on Nimrod?
23:27:17filwitwhat "reward" do you receive?
23:27:25filwitor how about practicing art, or music?
23:28:02filwitIf you could spend all of your time doing virtually anything you wanted, you would probably work on Nimrod even more, not less
23:28:26dom96I receive the reward of believing that the work I contribute towards Nimrod will help me in the future.
23:28:41filwittrue, and that's they key
23:28:46dom96And of course it's fun :P
23:29:06filwitthat reward doesn't go away if you remove money from the equation
23:29:22filwitbecause you learn things, and you move up a social latter by contributing to Nimrod
23:29:31filwityou can say "look what i've done in my life"
23:29:36filwitand others will look up to you
23:30:08filwitwe don't really work for monetary reward, we work for the sense of accomplishment and social standing
23:30:33filwitwould you date a person that just sat around the house all day and went to parties and that was their entire life?
23:30:40filwitI'm sure many would
23:30:43dom96That's true.
23:31:03filwitbut that wouldn't offset the amount of people willing and wanting to contribute to society's projects
23:31:28filwitwe may not be able to automate everything today, but soon we will
23:32:06dom96What might happen is that some people contribute more than others. And they start finding that to be unfair.
23:33:05dom96Now I know that with money this isn't exactly always fair either, not all jobs pay the same. But usually the correlation is that the more work you put into your education, and then your job the more money you will get.
23:33:44filwitsee and that's where the big problem comes in. What about the people who can't afford education?
23:33:48filwitit's really expensive
23:35:06filwitthe problem is, many would be educated and contribute, but they're raised in slums and ghettos
23:35:30filwittheir entire life, they're taught, through experience, that they'll never amount to anything in their lives
23:35:44filwitand that's because everyone around them is poor
23:35:58filwitit's a self defeating loop
23:36:46dom96So essentially the venus project will make everyone the same?
23:37:01filwitno, no one is truely equal
23:37:26filwitmidgets can't play basket ball, no matter how hard they try
23:38:19filwitthe goal is to give everyone the most fair opportunity because we can
23:38:22dom96Well it's too late for me to understand the way that the venus project will fix all these issues I think :P
23:38:31filwithaha, no worries
23:38:36filwitsorry about all my ranting
23:38:58filwitwe kinda got off on a topic I'm passionate about
23:39:15dom96No problem, yeah, was just going to say that you are very passionate about this.
23:39:27dom96I can't say i'm the same unfortunately :P
23:39:38filwitno worries ;-)
23:39:49filwitI'm probably not doing the best at describing it either
23:40:49filwitI actually had a very similar reaction as you when I first heard about it. Not that I'm projecting my experience onto your and expecting you to later agree with this
23:42:11filwitI'm just saying, I wasn't some crazy hippy that thinks we can all live in utopia
23:43:02dom96hehe
23:43:23dom96I just don't really worry about these types of issues.
23:43:35filwitactually, I was telling my X girlfriend about this (she and I where dating before I learned about the movement) and she was like "damn you've changed" cause I used to be pretty conservative with my stance on economic things
23:45:11filwitanyways... I'll stop talking about it now....
23:45:27filwitI'm sure you're fully sick of reading all this, lol
23:46:25dom96nah, sorry. I'm just watching Casino Royale at the same time, that's why i'm slightly less talkative :P
23:46:55filwitnice, 007's the shit
23:47:34dom96yep :D
23:47:57AraqI should really sleep now
23:48:07filwitheh Araq
23:48:14filwitthought you where sleeping....
23:48:25Araqbut filwit ever noticed how "new Object" sucks because you can't abstract over the create operation anymore?
23:48:44Araqfactories become a PITA with a special 'new' syntax ...
23:48:50Araqso I left them out
23:48:59Araqand you desperately want them back
23:49:05AraqI wonder why :-)
23:49:17filwitI'm not sure I follow
23:49:28filwitbut I'm fully willing to be convinced
23:49:54filwitwhat can't you abstract over "new Object"?
23:50:10Araqalright, so we have a library and ObjectA
23:50:22Araqand we don't really plan ahead ;-)
23:50:37Araqso in Java people create our object with 'new ObjectA'
23:51:10Araqbut now we need some slightly different ObjectB in our library
23:51:35Araqbut clients shouldn't know about it
23:51:45Araqyou do:
23:51:56Araqclass ObjectB extends ObjectA { ... }
23:52:02Araqbut then you're stuck
23:52:25Araqif you have newObjectA in the first place
23:52:31Araqit's only a convention
23:52:34Araqso you can do:
23:52:44Araqproc newObjectA(): ObjectA =
23:52:57Araq if someCrazyDispatchingCriteria:
23:53:07Araq var a: ObjectB
23:53:12Araq new a
23:53:16Araq result = a
23:53:20Araq else:
23:53:32Araq var a: ObjectA
23:53:35Araq new a
23:53:37Araq result = a
23:53:41Araqsee?
23:53:54Araqspecial syntax for constructors hurts
23:54:31AraqI in fact gained flexibility by using the very same proc call syntax that's used for everything
23:54:54filwitthis is confusing functionality, why would I ever want an ObjectB from a "newObjectA" factory?
23:55:21filwitmy entire argument was that I want to know (for sure, and at a glance) what type the var is
23:55:34dom96So overloading by return type is still planned right? And we will get a basic `new` function or similar for which this problem is not applicable?
23:55:38filwitso I'm not looking up definitions
23:55:47Araqwell
23:55:53Araqyou want an IDE :P
23:56:11Araqthat has nothing to do with special construction syntax
23:56:17filwiteven with and IDE, you still have to roll your cursor over the syntax to see what the type is
23:56:29Araqooooh big deal ...
23:56:33Araqor you write:
23:56:44Araqvar x: X = initX()
23:57:03filwitsure, it might be trivial, but is that best situation?
23:58:07filwitanother reason I don't like factories, is that I'm not sure exactly what function to call
23:58:14Araq*shrug*
23:58:21dom96If we have overloading by return type, then writing the type explicitly will be required anyway.
23:58:21filwitthere could be "initX", "newX", "createX", etc...
23:58:27dom96var x: X = new()
23:58:41Araqit's like saying "I don't like abstractions because they hide stuff"
23:58:45Araqwell yes
23:58:58dom96Araq: Are we getting them or not?
23:58:59Araqin fact I often don't like them either
23:59:15filwiteven with IDE and code suggest, with "new Type" I only have to remember "new" and then I get a list of all possible parameters I can pass to the constructors
23:59:57filwithonestly, what dom96 is asking right now is what I think would work besst
23:59:59filwitbest**