<<05-11-2012>>

00:52:05*fowl quit (Ping timeout: 255 seconds)
02:11:47*fowl joined #nimrod
04:26:32fowlhrm the dynlib error message is broken for windows
04:26:43fowlit just says "could not import:" then crashes
05:11:43*ryderblue joined #nimrod
06:30:31*shevy3 quit (Ping timeout: 252 seconds)
06:56:14*ryderblue quit (Quit: ryderblue)
06:57:43*XAMPP quit (Ping timeout: 256 seconds)
07:15:35*shevy joined #nimrod
07:24:13*shevy quit (Ping timeout: 245 seconds)
08:13:22*Araq__ quit (Quit: ChatZilla 0.9.89 [Firefox 16.0.2/20121024073032])
11:59:19*Araq_ joined #nimrod
12:09:10*Trix[a]r_za is now known as Trixar_za
12:22:42*Araq_ quit (Quit: ChatZilla 0.9.89 [Firefox 16.0.2/20121024073032])
13:31:21*XAMPP joined #nimrod
13:34:06Trixar_zaDammit - only solution would be to implement a universal patcher
13:34:15*Trixar_za 's laziness field kicks in
14:21:45*Araq_ joined #nimrod
14:26:21*Araq_ quit (Client Quit)
14:45:59Trixar_zaYou know Araq. I think that post was a joke or intended to get a reaction. Thinking of it beyond that is kind of meaningless :P
14:56:06*q66 joined #nimrod
15:31:08*gradha joined #nimrod
15:37:43*Trixar_za is now known as Trix[a]r_za
15:47:52*shevy joined #nimrod
18:03:40*ryderblue joined #nimrod
18:56:03Araqso reactormonk ... Nimrod now supports a lisp like condition system
18:56:15Araqnow don't ever bother me with it again :P
19:02:40*gradha quit (Quit: gradha)
19:42:00*fowl quit (Quit: Leaving)
19:51:45*gradha joined #nimrod
19:53:17gradhathis condition system is to handle raised exceptions and continue program flow?
19:54:11Araqyeah it keeps raise from unwinding the stack
19:55:18gradhasounds like reactormonk will have fun documenting it
19:55:40gradhaI didn't see in the manual any description of the exception hierarchy, is it ok to put it there, somewhere?
19:55:53gradhaI would link it from the tutorial then
19:56:48Araqhm yeah, fine with me
19:57:19gradhathe line "except and finally statements can also be used as stand-alone statements" is intriguing
19:57:39gradhaI undestand that finally allows executing a one liner and implicitly starts an idented block, does it?
19:57:52gradhabut I can't see how it's supposed for except
19:58:11gradhaI mean, it's like writing code backwards
19:58:40gradhaor maybe the finally statement doesn't start indentation?
19:59:02gradhaalso, is it fair to use finally statement with a block statement to put a chunk of code?
20:02:12gradhaanother line which caught my eye in the manual was the one related to methods
20:02:38gradhathey are not explained at all, in fact, I'm not sure if the are method, or directly multi-methods, and what that means
20:04:59Araqsorry brb
20:31:08Araqhrm I guess you're right
20:31:17Araqthey are multi-methods
20:33:11gradhacool
20:33:18gradhawhat are multi-methods?
20:33:37gradhahttp://en.wikipedia.org/wiki/Multiple_dispatch ?
20:36:44gradhaok, undestand the concept, didn't know the terminology
20:36:59*fowl joined #nimrod
20:44:11Araq var f = open("numbers.txt")
20:45:22Araq finally: close(f)
20:45:22Araq xyz
20:45:22Araqis transformed into:
20:45:22Araq var f = open("numbers.txt")
20:45:22Araq try:
20:45:23Araq xyz
20:45:23Araq finally: close(f)
20:45:24Araq'except' is analogous
20:45:24Araqyou can read 'except' as 'on error do' if that's of any help
20:46:00Araqand yeah it's "backwards" as the source code flow does not reflect the control flow
20:46:05gradhathe statement doesn't introduce a new indentation level?
20:46:30AraqI don't understand your question
20:46:43gradhalet's say
20:46:47gradhavar f = ...
20:46:51gradhafinally: close(f)
20:46:57gradhaecho "1"
20:46:59gradhaecho "2"
20:47:02gradhaversus
20:47:06gradhavar f = ...
20:47:09gradhafinally: close(f)
20:47:11gradha echo "1"
20:47:14gradha echo "2"
20:47:55gradhaalso, another I'm thinking of
20:48:06gradhavar f1 = open("file1.txt")
20:48:11gradhavar f2 = open("file2.txt")
20:48:11Araqright, it doesn't introduce a new indentation level
20:48:14gradhafinally:
20:48:20gradha close(f1)
20:48:22gradha close(f2)
20:48:30gradhaecho "1"
20:48:31gradhaecho "2"
20:48:35gradhathat looks confusing
20:48:55AraqI don't mind it
20:49:29Araqthe idea is that the close call belongs to the open call and so should be close to it
20:50:03gradhasure, I love the closing/with from python
20:50:14Araqfor (int i = 0; i < 10; ++i) { ... } // same thing
20:50:15gradhathis seems more flexible, as its not restricted to an informal interface
20:50:37Araqthe '++i' is not in the loop body ...
20:53:35gradhasomehow I feel documenting the exception hierarchy should be in the library and not the manual, as its not part of the language itself
20:53:49Araqoh really?
20:54:12gradhais E_Base part of the language?
20:54:24gradhaor is E_Base provided by the standard library of the language?
20:54:40Araqwhy do you think the documentation is the way it is?
20:54:43Araq:P
20:54:49gradhano idea
20:55:41Araq" somehow I feel documenting the exception hierarchy should be in the library and not the manual, as its not part of the language itself" <-- that's why ;-)
20:56:35Araqbut then you have to look in 3 different places and combine the language features in your head to see how myseq.add(x) works ;-)
20:56:47gradhayour answer surprised me, so I went to check the index and yes, E_base is buried in the system module
20:56:58gradhaquite obvious after having looked at it in system.nim
20:57:27gradhaso the problem is hyperlinking, everything is deeply hidden, somewhere
20:58:12gradhanimrod buildIndex creates the idx files I presume
20:58:34gradhaare they used by restutils? how do you integrate them?
20:58:46AraqbuildIndex merges all the idx files
21:03:02Araqthe problem is not really hyperlinking
21:03:19Araqthe problem is we really need 2 documents: a tutorial and a spec
21:03:56Araqhowever there is some overlap between both
21:04:33Araqand so maintainance is hard
21:04:33Araqthe tutorial should mention the common features of the stdlib
21:04:36Araqthe spec not really
21:14:00reactormonkgradha, likely
22:31:53Araqso gradha, how about you improving the tutorials? :-)
22:33:35gradhai'm on it
22:34:43Araqoh cool
22:35:46Araqme writing the spec and somebody else improving the tutorials seems like a good idea
22:39:41gradhaas long as you don't mind boring questions and pedantic discussions along the way
22:40:41AraqI don't :-)
22:41:08gradhait will take me some time because my lack of knowledge about nimrod keeps forcing me to do side quests to level up, and the main quest now is too high for my puny low level attacks
22:46:24gradhabefore tackling a generic tutorial I want to get used to the language, so my plan is to expand the the cross platform examples, then write some about networking/parsing
22:55:55Araqhrm alright
22:56:18Araqbut somebody needs to add the common parts of the stdlib to the tutorial
22:56:27Araqit's the next step I think
22:57:10gradhaI would need to know what "common parts of the stdlib" are
23:03:57Araqeverything in the prelude I guess
23:05:39gradhaby prelude you mean what's on nimrod's web frontpage or stuff referenced in the first tutorial?
23:05:59Araqlib/prelude.nim
23:06:45gradhait certainly needs documenting, hadn't noticed its existance
23:16:08gradhathis is what I mean by "needs hyperlinking" http://pastebin.com/1wWPamWL
23:16:59gradhamore specific symbol hyperlinking is needed, but that requires changing how the id toc is generated on the html so it doesn't need preprocessing
23:17:12gradhanumeric html anchors are no good for humans
23:19:22gradhaa hyperlink like system.html#E_Base is much better than system.html#160 (and durable too)
23:19:55gradhawhere/what generates the toc?
23:21:52Araqcompiler/docgen.nim
23:21:58gradharopeFormatNamedVars?
23:22:10Araqand yeah I noticed the IDs are stupid
23:22:33Araqhowever, it's not easy to do better because of all the overloading ;-)
23:23:05gradhaI was expecting that was the problem, is it not possible to output the name of the proc along the types of the parameters?
23:23:27gradhain fact, it would help the index too
23:23:58gradharight now looking at all those crosses (for addition overloading) looks terrible
23:24:21Araqit's not hard to generate the proc header as the name
23:24:34Araqbut it's hard to do so and keep it reasonably short ...
23:26:04gradhabtw, does nimrod also overload on return value?
23:26:12Araqno
23:26:30gradhacan't remember now which programming language does it
23:26:37Araqreactormonk desperately needs it, so it's planned
23:26:51AraqAda does it iirc and so does Haskell
23:27:29gradhathen that will be needed for the html ids too
23:28:27gradhai'll discuss this with the pillow, bye
23:28:45*gradha quit (Quit: gradha)
23:29:54AraqI should do the same, good night