<<11-02-2013>>

00:28:47*fowl joined #nimrod
01:26:20*q66 quit (Quit: Quit)
03:00:43*SchalaZeal joined #nimrod
03:05:29SchalaZealI took a look at the Nimrod iOS examples and... rather curious... if importobjc is supposed to call [Foo bar:5 baz:"hi"], why gradha would need to explicitly call {.emit: "[Foo bar:`bar` baz:`baz`]".}??
03:09:15SchalaZeal*? (darn repeat delay)
03:10:55*Amrykid is now known as dallbee
03:11:01*dallbee quit (Disconnected by services)
03:11:09*Amrykid joined #nimrod
03:11:30*Amrykid quit (Changing host)
03:11:30*Amrykid joined #nimrod
03:39:13*XAMPP-8 joined #nimrod
05:11:04*XAMPP-8 quit (Read error: Operation timed out)
05:17:54*SchalaZeal quit (Quit: Konversation terminated!)
06:01:16*gour joined #nimrod
08:01:21*Araq_ joined #nimrod
08:36:39*Araq_ quit (Quit: ChatZilla 0.9.90 [Firefox 18.0.2/20130201065344])
09:01:23*gour quit (Ping timeout: 245 seconds)
09:15:42*fowl quit (Quit: Leaving)
09:32:45*gour joined #nimrod
09:59:54*SchalaZeal joined #nimrod
11:40:39*SchalaZeal quit (Quit: Konversation terminated!)
12:14:32*q66 joined #nimrod
13:19:35*Trix[a]r_za is now known as Trixar_za
13:47:01*zahary quit (Ping timeout: 248 seconds)
14:41:09gouruser-defined operators can only use 'special' characters or can be keyword-based as well?
15:00:34gourthe way to define one's own iterator (iterator keyword) is really cool
15:26:43*Anaphaxeton quit (Remote host closed the connection)
15:27:34*Anaphaxeton joined #nimrod
16:00:16*Trixar_za is now known as Trix[a]r_za
16:19:37dom96hello
16:19:40dom96gour: good question
16:19:53dom96gour: Just try and see if it works :)
17:00:55reactormonkgour, "user-defined operators"? Stuff like + ?
17:02:51dom96I think he wants:
17:03:01dom9645 >blah> 23
17:03:11dom96operators + words
17:06:12reactormonk`>blah>`
17:08:08reactormonk... wait. So it's possible to write xml literals? >:)
17:11:27dom96I believe so. The need for the `` is a bit ugly though.
17:13:01dom96we already have a nice htmlgen module though
17:13:41q66reactormonk, http://www.mr-edd.co.uk/blog/xsmell_awesomer_xml
17:14:45dom96This guy seems to be quite a douche: http://blog.carlsensei.com/post/42828735125
17:15:29q66why such a lengthy article.
17:15:34q66everybody knows Go is obviously crap.
17:16:03dom96People in #go-nuts would beg to differ :P
17:18:28q66dom96, I don't give a damn :P
17:18:36dom96Good :D
17:18:39q66from a language design standpoint, Go is crap
17:18:52q66that's not subjective in any way ;)
17:24:24dom96lol
17:27:36reactormonkUnicode strings, variable length arrays (called “slices” in Go), and hash tables (called “maps”). Languages that don’t provide those types at a syntax level cannot be called modern anymore.
17:28:52q66o rly
17:28:54q66cool story bro
17:29:13q66"And what’s up with all the languages that claim all you need are linked lists? I’m sorry, this is not 1958, and you are not John McCarthy."
17:29:16q66oh what a fag
17:29:41reactormonkscala uses a linked list if you create a 4-element map
17:29:43gourdom96: now i've tried and it works :-)
17:29:57dom96gour: cool
17:33:54q66reactormonk, I would welcome a proper syntax for ADTs in Scala :P
17:34:04q66case classes serve a similar purpose but it's verbose (a lot)
17:35:50*dom96 piggybacks on the reddit thread to advertise Nimrod ;)
17:36:27reactormonkq66, well, the adt in nimrod isn't glorious either
17:43:10dom96reactormonk: I bet you could cook up something fancy with Nimrod's macros though
17:58:57*gour upvotes dom96
17:59:04dom96:D
18:03:28reactormonkdom96, hmm, not sure if I'd rather wait for Araq and zahary to clean up the macro api
18:04:59Araq"Finally, Go doesn’t have operator overloading, function/method overloading, or keyword arguments. You can see why—those features are bad for performance" ...
18:05:06Araqomg
18:05:45Araqyeah features with 0 runtime cost are "bad" for performance
18:05:57Araqwhat a fool
18:08:47dom96hello Araq
18:09:50reactormonkAraq, I like the interface inference though
18:10:31Araqreactormonk: of course you do
18:11:39reactormonkAraq, and the inference is evil because... ?
18:11:48Araqinterfaces are evil
18:11:54Araqthe inference is irrelevant
18:15:26dom96Guys, upvote this please: http://www.reddit.com/r/IAmA/comments/18bhme/im_bill_gates_cochair_of_the_bill_melinda_gates/c8dbzco
18:16:03reactormonkAraq, object foo: proc( ... ) is an interface as well ;-)
18:17:19AraqI know, but it helps to discourage them a bit ;-)
18:18:11Araqotherwise people start to use them everywhere and think it's "clean code"
18:19:52Araqyou know these people ... people how do faith based debugging instead of proper analyses ;-)
18:20:03reactormonkAraq, also known as static analysis?
18:20:23reactormonkOn an unrelated sidenote, got that yesterday: http://sprunge.us/bGSP
18:20:32Araqis there any other kind? :P
18:21:02reactormonk... true again
18:21:24q66dom96, alrite, have an upboat
18:21:33dom96q66: cheers :)
18:22:06q66it's growing so fucking fast though :P
18:22:20dom96yeah, my comment will get buried I guess :\
18:22:25q66yep
18:26:36*ccssnet quit (Quit: http://atccss.net)
18:29:42Araqdom96: please fix the documentation link for nimbuild
18:29:52Araqlib.html is the wrong starting point
18:29:53dom96huh?
18:29:57*ccssnet joined #nimrod
18:30:05dom96what do you want it to be?
18:30:21*ccssnet quit (Client Quit)
18:30:27Araqoverview.html
18:30:48dom96ok
18:30:51dom96you have to fix jester though
18:31:43Araqworking on it
18:31:51Araqwell I'm answering the guy on the forum first
18:32:16*ccssnet joined #nimrod
19:07:16*gour is continuing reading tutorial
19:08:16gourAnaphaxeton: nimrod's syntax is so cool & clean like pseudocode, so you can try translate knuth's algorithms straight from the book(s)
19:15:34Anaphaxetonthat is very good to hear
19:15:55Anaphaxetonnot for knuth
19:15:58Anaphaxetonin general
19:16:07Anaphaxetoni was actually willing to use mmix code
19:16:26reactormonkAraq, what are the -d:<stuff> called?
19:16:33Anaphaxetonwhich of course means in need to learn asm pretty soon
19:16:43reactormonkdefines? Can i add them?
19:16:57gourAnaphaxeton: ohh, you've quite a full plate with C(++) already on it :-D
19:17:06Araqreactormonk: yes, in fact you don't even have to add anything
19:17:15Araqwhen defined(foo): echo "hi"
19:17:24Araqcompile with -d:foo and it's defined
19:17:31Anaphaxetoni dont know about C++
19:17:39Anaphaxetonmy C is ok
19:17:43Anaphaxetonjust not great
19:17:51gourthen just skip over to nimrod ;)
19:18:39Anaphaxetoni am still trying to figure out which language is best for which part. what i have to code myself. what is already there
19:18:50reactormonkAraq, well, -d:JS => -d:Ecmascript
19:19:14Araqreactormonk: grep for "ecmascript" in compiler/*.nim to see how the compiler does it
19:19:17Anaphaxetonand of course what API and language the user will want to use
19:19:42reactormonkAraq, what if other people rely on it?
19:19:47Araqand then add 'defineSymbol("js")' to that branch so that 'js' is a de-facto alias
19:20:00gourreactormonk: 'other people' ? how many?
19:20:04reactormonkgour, no idea.
19:20:11reactormonkgour, I've seen code2go use nimrod ;>
19:20:31*gour believes now is still the time to suit the language
19:21:01reactormonkAraq, ah, I see
19:31:13gourAnaphaxeton: good luck in finding the right one...since yesterday, i do belong here now. :-)
19:31:28Anaphaxetonhow come since yesterday?
19:31:41Anaphaxetonand how was your trip to ocaml?
19:33:36gourAnaphaxeton: i did some analysis (divination) asking what is the most appropriate language for my project amongst {ada, fpc/lazarus, nimrod and ocaml} and nimrod won in tie-break with ocaml :-)
19:34:43Anaphaxetonand what is your project?
19:36:41reactormonkAraq, http://stackoverflow.com/questions/8017172/why-is-ocamls-not-polymorphic/9616681#9616681
19:37:00gourAnaphaxeton: it should be something like: http://saravali.de/maitreya.html but without 'western' part
19:38:34Anaphaxetonit seems something that needs an expressive language indeed
19:38:52*gour nods
19:39:23gourdecent lib support, speed gui...nimrod is really fine language evolving into wonderful platform
19:40:06Anaphaxetoni need something more rapid and with a square logic
19:40:14Anaphaxetonlua looks great for that
19:40:23Anaphaxetoni have scripted in lua
19:40:29Anaphaxetonand i like it a lot
19:40:39Anaphaxetoni think it can grow bigger in what i am trying to do
19:54:42gourthere is fast JIT for lua, right...i thought i'd use lua as scripting language in my project, but maybe it won't be needed
19:55:49gourreactormonk: what do you think about that SO stuff?
19:56:00reactormonkgour, SO stuff?
19:56:14gourreactormonk: stackoverflow question
19:56:43reactormonkgour, well, procs are resolved at compiletime. methods at runtime. Take your pick.
19:57:42gourreactormonk: i havent's arrived at methods (yet)
19:59:40reactormonkgour, there's no difference to proc except they're resolved at compiletime.
19:59:46reactormonkerr runtime
19:59:57gour:-)
20:00:36gouri've already read nimrod docs, but then i was not sure I'd use it...now i read more carefully :-)
20:03:15gournatural type - another cool thing
20:55:46gourtutorial says: "Each module has a special magic constant isMainModule that is true if the module is compiled as the main file." maybe it would be good to add explanation how to do it? (-m, --mainmodule:FILE)
20:56:34dom96nimrod c app.nim
20:56:40dom96app.nim is now the main file.
21:10:27gourfor the import there are no namespaces mechanisms ala python? it looks very clean
21:11:11Araqevery module has its namespace
21:11:29Araqthe default of 'import' is however to import every public symbol
21:11:39Araqlike python's "from x import *"
21:11:54gourbut there is no things like: import x.y.z ?
21:12:24gour*are no
21:12:46reactormonkgour, nope, not so far
21:12:47Araqimport x/y/z
21:12:57Araqreactormonk: you're not up to date ;-)
21:13:01gourhmm
21:13:08Araqhowever, 'x' and 'y' are only directory names
21:13:17gourgood...clean design
21:13:25Araqnot symbols you can use
21:14:04gourend of tut1...tomorrow we're heading towards part2
21:14:32gourit's always fun to see that Dijkstra'a quote
21:15:28Araqthanks ;-)
21:16:13gourhave you seen this: http://www.reddit.com/r/programming/comments/18bso4/javascript_becoming_default_language_for_gnome/
21:17:06Araqof course
21:18:22gourit's good while we still have Xfce
21:21:47Araqyeah that's what I'm using
21:22:36gour:-)
21:24:30reactormonkAraq, oh.
21:25:35reactormonkDespite the fact that JavaScript will be the recommended way to write GNOME applications # whut?
21:32:22gourwhat are the main language features 0.9.2 is bringing to the end-users?
21:36:02gour"Multiple inheritance is currently not supported." is it planned or it would just make things too complicated?
21:38:13Araqgour: I don't know ;-)
21:38:37gourAraq: fair-enough ;)
21:39:12gourwe'll end up reading with 'composition vs inheritance' to re-read some things which we forgot
21:50:45*Zerathul joined #nimrod
22:10:50*gradha joined #nimrod
22:11:13*gour quit (Quit: WeeChat 0.4.0)
22:19:03*Zerathul quit (Quit: ChatZilla 0.9.90 [Firefox 18.0.2/20130201065344])
22:43:50gradhaSchalaZeal: the reason I use emit is because you can't use importobjc for class methods, only for instance methods. I did open https://github.com/Araq/Nimrod/issues/265 requesting improvement and realized I would need to learn macros to fix it myself. Still haven't.
22:44:35Araqgradha: it's possible if you do:
22:45:46Araqproc Foo(args) {.importcpp: "Foo".}
22:45:56Araqwhere Foo is the class name
22:46:04Araqor isn't it?
22:48:37gradhaif I write "proc NSMutableArray(arrayWithCapacity: int): NSMutableArray", won't the compiler dislike the return type being the same as the name of the proc?
22:48:59Araqthe compiler supports that
22:49:04Araqbut that's not the point
22:49:29Araqyou can easily import Foo as type TFoo and as proc Foo at the same time
22:49:56Araqthe compiler doesn't check the string literals in importc/importcpp pragmas
22:52:08gradhait fails on the C compilation stage due to redefinition as different kind of symbol
22:52:35Araqadd 'nodecl' to it
22:52:39gradhathe generated code is "static N_INLINE(NSMutableArray*, NSMutableArray)(NI arraywithcapacity)"
22:53:03Araqheader: "xyz.h"
22:53:09Araqor 'nodecl' do the trick
22:54:06gradhait compiles
22:54:29gradhaunfortunately generates wrong code and crashes sending messages to wrong objects
22:54:56Araqgood
22:55:04gradhathe line "result = [g_149010.Todos->Sup.len NSMutableArray];" was generated, which doesn't make much sense
22:55:29Araqthat looks like a different problem
22:55:34gradhathe nimrod version is "result = NSMutableArray(g.todos.len)"
22:56:08gradhawhich is what was calling my previous newNSMutableArray emit version
22:56:30Araqah now I remember
22:56:47Araqthe dreaded class methods need a different syntax
22:57:05Araqugh objective C is such a bad joke ...
22:58:23gradhayes, that was the reason behind the issue, it has a different syntax so you need either a different importobjc or a clever macro to parse proc names and generate different emit blocks
22:58:47gradhaor at least that's the conclusion I reached, it's all frozen until I conquer the world through argument parsing
22:59:21gradhaSchalaZeal: feel free to have a go at it while I look elsewhere in the meantime
22:59:36*Araq has a nice hack in mind
23:00:00gradhaSchalaZeal: if you feel like it the changes I made following this irc conversation are at http://pastebin.com/p49tXF29
23:00:47Araqwhy is fetchTodos discardable?
23:01:31gradhasideeffects, mainly for caching stuff in a global variable
23:03:03gradhathe returned objects are converted form nimrod into native objc ones, and I thought it would be nice to cache them and avoid tedious regeneration
23:04:42Araq'caching' is always dubious
23:04:57gradhawell, it's a silly mini example anyway, overengineered
23:05:54gradhathe overengineering was part of my plan to test nimrod->objc communication
23:07:38Araqhm yeah
23:09:03gradhathe nimrod global variable was beginning to be a test of maintaining nimrod logic and serializing it, so you could exit the app, return and recover everything as is, both UI and logic
23:10:16Araqalright alright, I'm not critizing your beautiful examples
23:11:11gradhanot that I mind, I'm too busy planning what to do with real life while I escape into http://www.roadtovr.com/2013/02/11/project-holodeck-demo-interview-director-nathan-burba-video-2915
23:15:02gradhathis stuff is amazing, finally you will be able to deal with ugly people, just put your helmet on and change the avatar you see
23:15:49Araqhah
23:15:58Araqand I always used beer for that
23:16:33gradhaI don't understand why it's frowned upon to use alcohol for reality enhacement
23:19:22gradhasometimes I even manage to find the Ballmer peak
23:19:44gradhaor so do I tell myself, hehe
23:25:45*fowl joined #nimrod
23:46:32*gradha quit (Quit: bbl, have youtube videos to watch)
23:47:30Araqfowl: I forgot to tell ya, the compiler should compile 'keineschweine' again
23:47:38Araqwell some older version of it