<<16-03-2013>>

00:28:33reactormonkdom96, pong
00:28:45Araqtoo late
00:28:46reactormonkdom96, yes, I kicked the github people.
00:28:55Araqhe is sleeping
00:29:54reactormonkAraq, any idea on how to implement https://github.com/Tass/Nimrod/blob/bc1b8f4ccb497f01b849f2136939d2861e2f94c3/tests/run/tfinally.nim ?
00:30:41Araqreactormonk: dunno what the similar JS code would do?
00:30:51Araqdid you check it?
00:31:01AraqI could imagine JS behaves the same way
00:31:02reactormonkAraq, the problem is the echo and \n
00:31:22reactormonkthe test works, but the test runner doesn't like the multiline
00:31:29Araqah
00:31:57Araqwell that means output capturing on node doesn't work?
00:32:14Araqare you sure it's the newline?
00:32:22Araqmaybe it doesn't work at all ...
00:32:35reactormonksure, it's the newline.
00:32:40reactormonkthe test parser doesn't like it
00:33:58Araqso if a node test produces a single line the tester likes it?
00:41:24*q66 quit (Remote host closed the connection)
00:43:05reactormonkyep
00:43:15reactormonkno love for mutli-line
00:43:23reactormonkparsing problem
00:45:06reactormonkso should I define stdout for node?
00:46:29Araqdunno if that would help
00:46:35Araqpong Zor
00:47:26reactormonkAraq, well, I need single line. https://github.com/Tass/Nimrod/commit/bc1b8f4ccb497f01b849f2136939d2861e2f94c3
00:47:44reactormonklemme run it
00:54:03Araqbtw your patch looks good
00:54:18Araqand if you want to you may get write access to the repo
01:04:07reactormonkAraq, http://sprunge.us/BIBg
01:05:09Araqreactormonk: for multiline output put it into ''' ... ''' (triple single quotes)
01:05:28reactormonkohh
01:05:44Araqthat's tester specific ;-)
01:06:26reactormonkgood to know.
01:14:55reactormonkAraq, how do I run the node tests?
02:43:48*Trixar_za is now known as Trix[a]r_za
05:50:56*Trix[a]r_za quit (Ping timeout: 240 seconds)
05:53:50*Trix[a]r_za joined #nimrod
07:23:12*gour joined #nimrod
07:38:08gourmorning
07:39:15gourdom96: based on that picture of language popularity, it looks as it is very hard to be lower :-)
07:42:50gouror, we can say Nimrod can only improve ;)
08:06:03Araqgour: linguist had a bug where it wouldn't recognize nimrod code
08:06:10Araqthis screws the statistics
08:06:51Araqalso zahary showed up here recently so the bus factor is 2 :P
08:56:32dom96gour: heh, indeed. It can only go up now, and as Araq said the stats were a bit false because of a bug in github's language detection thingy, but it's fixed now!
09:01:22gourif oyu would use bitbucket, statistics would be better ;)
09:01:41gourAraq: when did zahary show up again?
09:01:58dom96if we used bitbucket there would be no statistics
09:02:08Araqgour: why does it matter?
09:02:37Araq3 days ago or something
09:03:05gourdom96: why no statistics @bitbucket?
09:03:28Araqand why is this so concerning to you anyway? we've been working on it for years it won't disappear over night
09:03:40dom96gour: Ask them, as far as I can see they don't provide any statistics.
09:03:53gourAraq: you mean in regard to zahary?
09:04:09Araqyes
09:04:48gourwell, as I wrote to gradha yesterday, it's a bit risky seeing project with bus-factor 1
09:05:20goure.g. i't a bit depressing seeing how long it takes wxwidgets to release 3.0 or, at least, 2.9.5...
09:06:47gourAraq: i know you're quite determined, but wonder what would happen to Nimrod if you, for some reason, stop working on it?
09:08:40AraqI'm quite sure zahary would take over completely
09:09:12Araqalso comex knows quite a lot of the compiler and the GC iirc
09:09:37Araqand dom96 will get there soon enough too ;-)
09:10:02Araqnot to forget reactormonk who's working on the JS backend
09:10:47Araqbut then I don't really think you're fair ... what happens if Matz leaves Ruby?
09:10:56Araqwhat if Guido leaves Python?
09:11:21Araqthese languages will of course survive but it'll damage them too
09:17:56Araqoh ... and once idetools works better it should be a lot easier to navigate through the compiler to figure out how it all works; it's not that hard :P
09:18:40gouri know it's catch-22 situation...of course absence of Matz & Guido would damage languages, but there is enough investment in those as well a big-enough user/dev base to replace them
09:20:18gouri'm glad to hear some folks here could continue working on Nimrod, although never heard from some like comex, but i'm not sure that, besides required skills, they feel the same passion as you for the language
09:20:28gour...which is even more important ;)
09:26:59Araq*shrug* the plan is to finish most important missing features this year anyway
09:27:19Araqand then mostly bugfixes need to happen
09:27:41Araqno need for that much passion after 1.0 is out :P
09:28:14gourhere you considered missing 'language features' or some parts of the ecosystem as well (libs, build system...)?
09:32:40Araqlanguage features
09:33:02Araqthe stdlib is done by dom96 already
09:33:55Araqin fact, many people are writing libraries for Nimrod already so I don't see your point
09:34:58gourany 'critical' language features are missing which would make migration from 0.9 --> 1.0 cumbersome?
09:35:32gourof course, i was thinking about GUI, e.g. claro and/or gtk3 etc.
09:41:24Araqhmm lets see ... we have ~100K loc at least in the distribution ... do you think we'll make migration cumbersome?
09:56:30gourAraq: for you, being very capable dev, (almost) nothing is cumbersome, plus you have design in you head already
11:06:04*q66 joined #nimrod
11:21:45reactormonkAraq, how do I run the node tests?
11:58:44Araqreactormonk: I don't know whether I completed them :P
11:59:40Araqreactormonk: "tester js" should do it
12:07:08reactormonkAraq, doesn't run the ones in special.nim
12:08:11Araqwell look at tester.nim please
12:08:29Araqit calls runJsTests which is defined in specials.nim
12:09:39Araqoh and beware ... I plan to get hit by a bus this weekend and then nimrod will be dead ... :P
12:47:39gourking is dead...long live the king :_}
12:57:03Araqgour: your concerns would be more valid if you were to develop extremely long lived commercial software with nimrod
12:57:28Araqbut afaik you plan to develop some open source software
12:57:58Araqtargeting a niche of users :P
13:00:29Araqand yet you act like it's some Nasa project
14:50:22*Zerathul joined #nimrod
14:51:26ZerathulI deal with the god damn customers so the engineers don't have to. I have people skills; I am good at dealing with people. Can't you understand that? What the hell is wrong with you people?
15:19:09*Zerathul quit (Ping timeout: 256 seconds)
15:35:35gourAraq: don't understand...for me my project has the value despite being open-source and i'm going to invest my time into it...would you invest in writing software to be used daily for several years knowing you have to rewrite all what is written next year?
15:36:34gourit has to be useful for me even i'd be the only user
15:55:26*ccssnet quit (Quit: http://atccss.net)
15:56:34*ccssnet joined #nimrod
16:10:13Araqgour: stop being concerned then and start programming
16:12:37dom96gour: I don't know what you want Araq to tell you, no one can guarantee that Nimrod will be developed forever, no one can guarantee that any language will be developed for ever. Sure, a large user base makes it more likely. If Nimrod's small user base is a problem to you then use another language or help us get more users.
16:18:19gourdom96: i do not expect any guarantee by Araq since that's not possible...otoh, i just express my, hopefully, valid concern - that's all
16:20:32dom96It is a valid concern, and I am quite aware of it. But talking about excessively will not get us anywhere.
16:20:40dom96*about it
16:21:34gourwell, i simply take opportunity to speak about it while i do not have time working on the project atm...
16:40:21NimBotAraq/Nimrod 47aca27 Araq [+1 ±2 -0]: bugfix: 'indexOf' for tuple fields works
16:40:21NimBotAraq/Nimrod 6af5c4e Araq [+0 ±5 -0]: debugger improvements
16:40:21NimBotAraq/Nimrod b21a41c Araq [+1 ±3 -0]: fixes #358
16:45:14Araqreactormonk: you've been given write access to the repo
16:45:41NimBotAraq/Nimrod bc1b8f4 Simon Hafner [+0 ±3 -0]: nestedTryStmts removed... 4 more lines
16:45:41NimBotAraq/Nimrod e3613d0 Simon Hafner [+0 ±1 -0]: hack to include hti correctly
16:45:41NimBotAraq/Nimrod ba74ccd Simon Hafner [+0 ±3 -0]: used correct syntax for multiline results in tests... 3 more lines
16:45:41NimBotAraq/Nimrod c193996 Araq [+0 ±5 -0]: Merge pull request #359 from Tass/master... 3 more lines
16:46:31NimBotAraq/Nimrod 27f2e47 Grzegorz Adam Hankiewicz [+0 ±1 -0]: Adds newSeq documentation example.
16:46:31NimBotAraq/Nimrod 78a6aa7 Araq [+0 ±1 -0]: Merge pull request #357 from gradha/pr_adds_newseq_documentation_example... 3 more lines
16:47:24NimBotAraq/Nimrod b510570 Grzegorz Adam Hankiewicz [+0 ±1 -0]: Adds left alignment example to strutils.
16:47:24NimBotAraq/Nimrod f4d4ed8 Araq [+0 ±1 -0]: Merge pull request #356 from gradha/pr_adds_left_alignment_example_to_strutils... 3 more lines
16:48:05NimBotAraq/Nimrod 12f3b9a Grzegorz Adam Hankiewicz [+0 ±1 -0]: Adds babel package manager link to library index.
16:48:05NimBotAraq/Nimrod b7f71d4 Araq [+0 ±1 -0]: Merge pull request #355 from gradha/pr_adds_babel_link_to_library_doc... 3 more lines
16:48:33NimBotAraq/Nimrod 9a12832 Grzegorz Adam Hankiewicz [+0 ±1 -0]: Implements `$` proc for a sequence of TRunes.
16:48:34NimBotAraq/Nimrod 27aa557 Araq [+0 ±1 -0]: Merge pull request #354 from gradha/pr_adds_stringyfication_of_runes... 3 more lines
16:55:04*Trix[a]r_za is now known as Trixar_za
16:58:30*gradha joined #nimrod
16:59:46reactormonkAraq, cool. policy? no --force?
17:03:50reactormonkAraq, next thingy to work on?
17:20:31Araqreactormonk: what about #347, #343 ?
17:21:00Araqpolicy: js stuff is pretty much yours I trust you to test your changes of course
17:21:27Araqfor other changes I'd like to see diffs before you push
17:22:06Araqoh and #334 should be easy to fix for you too
17:24:14*exhu joined #nimrod
17:24:34exhuAraq, thanks for fixing that "indexof" thing! ;)
17:45:28Araqwell I hope it works now
17:45:45AraqI think it still has issues within a unit test
17:46:25Araqfunny thing that "unittest" actually tests the compiler more than your own code
17:48:30Araqexhu: I still think you should use macros for your ORM
17:52:49exhuAraq, I will use macros when the api is advanced and stable and well documented.
17:53:14Araqthat's not how it works :P
17:53:42Araqit's of low priority then
17:54:09exhui don't care, when it's ready -)
17:55:51exhui prefer several features to be a part of language and not a tool to create those features (macros) anyway.
17:56:23Araqbut then it's an ever growing set of language features
17:56:54exhue.g. they introduced smart pointers in c++ as templates while i think they must be a part of language after using them in a huge project.
17:58:57exhuAraq, i don't criticize nimrod in that way, i'm very satisfied with the feature set already present.
18:01:22exhuAraq, the more features to be implemented as a library the more it will be like c++ "boost" library, which boosts complexity and building time -)
18:02:01Araqwe'll see about that :P
18:02:15Araqwe have "perfect" incremental compilation implemented :P
18:02:25Araqexcept that it's broken right now ;-)
18:02:59Araqbrb
18:03:32exhuAraq, that's why i am not so concerned about future compilation time problems of nimrod macro libraries, its syntax is way better than c++
18:09:58exhuand i'm also sure that there's no such thing as an ideal programming language
18:10:43gradhadefining ideal is already difficult enough
18:10:54exhue.g. compile-time procs and templates make runtime dynamic linking a problem.
18:12:07gradhaAFAIK the binary library concept of nimrod is compile to c and use C bindings, so yes, that's out of the question
18:12:53gradhabut at the nimrod level you distribute the source, so you get the original macro/template, what is the problem there?
18:13:41exhui keep to "use the right tool for the job" and "keep it simple" principles.
18:16:03exhuthe problem with dynamic linking arises when you want to develop a system in nimrod and provide the way to write extension modules to that system. e.g. app and dynamically loadable plugins, with shared transparent code.
18:17:20gradhaIIRC Araq was working on an eval proc, so maybe it would be possible to distribute macros/templates along for dynamic linking, which would really be runtime compilation of linked code?
18:18:05gradhayou would still be forced to distribute source code, no opaque binaries
18:19:04exhuyes, probably that feature, but i prefer GNOME (glib, gobject) all binary api way and nimrod is not suitable for this due to its advanced template/compilation-time features.
18:19:54gradhayou aren't force to use such features if they are a problem and still use nimrod as a better c/c++
18:20:00exhuanyway if i were to write a close-source app i would still prefer nimrod and provide plugins interface via LUA scripts or luajit.
18:22:15dom96IIRC GTK contains macros in its API, so glib/gobject probably does too. And indeed, you do not need to use these features, if you want to provide templates as part of your API then you will need to distribute some sources.
18:23:26gradhamacros/defines are a problem for C/C++, so I see more and more libraries which provide runtime procs which return the constants, so newer versions of the library can change them and you don't need recompilation for stuff to keep working
18:23:52exhufreepascal/lazarus has the same problem, but they provide lazarus opensource so that if you want to add a plugin, you just recompile the whole ide.
18:24:03gradhadirectx sizeof(param_struct) is epic in this regard
18:24:54exhui keep my eyes away from directx -) i'm happy apple and google use opengl for their devices.
18:25:42gradhame too, I was meaning epic as in you need the string will of a crusader to touch their api, full of struct sizeof() trickery
18:25:53gradhaor at least it was in the pre 9 days
18:26:34reactormonkAraq, didn't you want to do ther copy by value personally?
18:26:36exhuthe last time i used it there was directx 5 around -)
18:27:05gradhaand Carmack still bashed it
18:29:52*Trixar_za is now known as Trix[a]r_za
18:31:30exhuas soon as i finish my database application in nimrod, i'll start imlpementing 2d scenegraph library (opengl backend) for gui and games.
18:33:01dom96exhu: Is your database app open source?
18:33:17exhuhas anyone used opengl bindings recently?
18:33:20exhudom96, yes
18:34:30exhudom96, i've posted a github link several times here, https://github.com/exhu/Palitsa/tree/master/nimrod
18:34:35Araqreactormonk: true, I forgot it was that bug ;-)
18:35:16Araqgradha: I will give you write access to the repo too if you like
18:35:35gradhaAraq: would it make any difference? You would still have to apply patches
18:35:38dom96exhu: I can't believe I didn't star it.
18:36:11*dom96 shouts at github for getting the language stats for that repo wrong
18:37:58dom96But now I see that it's not just getting Nimrod wrong, there is Python code in the repo and apparently the repo is 98.4% Java with the rest being "Other"
18:38:02exhudom96, that repo contains sources in many languages
18:38:21Araqgradha: well I suppose I should really continue to read your documentation improvements, so yeah it wouldn't make much of a difference
18:38:30exhudom96, i tried some to feel which language is better for the job =)
18:38:57dom96exhu: Settled on Nimrod then? :)
18:39:46exhudom96, looks like 4 months ago
18:40:16Araqexhu: DLL support works already if you don't use 'of' and multi methods across DLLs; the GC works across DLL boundaries
18:40:50Araqthe 'eval' features I have been working on amounts to a Nimrod interpreter
18:42:14dom96Araq: speaking of those features, do you have an ETA?
18:43:09exhuAraq, C++ has problems with DLLs too, i remember a project where dynamic_cast<> worked only on windows and not on linux, because exe and dll did not share the same talbe for RTTI. This was gcc-specific, i guess.
18:43:52gradhaI think "Error cannot be passed to a procvar" just wants to be my friend
18:44:17Araqdom96: not really anymore it's still lots of work
18:44:40dom96Araq: What are you working on currently?
18:44:58Araqhacking together some API could be done in an evening but then people will moan endlessly about it I think
18:45:30gradhamore than on the license?
18:45:33Araqgradha: it will be as soon as you add a default parameter to an exported proc of the stdlib ;-)
18:47:08Araqdom96: fixing bugs and getting destructors to a workable state; overloading of '=' is also high on my todo
18:47:37dom96Araq: If there is anything you want me to help with I'm all ears.
18:48:35Araqdom96: the scgi bug is embarrassing ...
18:48:47dom96true.
18:49:05dom96It's also boring to fix :P
18:49:21Araqbugfixes are always boring
18:49:31Araqonly new features are exciting
18:51:09Araqoh and we should perhaps add template `@`(field: expr): expr = self.field to the stdlib
18:51:56Araqcould be a boost to nimrod's popularity (yay! ruby-like!)
18:52:33dom96I want a: macro with(...) = ...
18:56:13Araqhuh? what do you mean?
18:58:43dom96with object: field = "blah"
18:58:52dom96# -> object.field = "blah"
18:59:02Araqthat's incredibly ambiguous
18:59:09dom96But now that I think about it, with the new object constructor syntax there is no need for it.
18:59:10Araqand I hate that feature of Delphi
18:59:27Araqit makes code quite hard to follow imho
19:00:10dom96fair enough
19:00:19Araqtried the new constructor syntax yet?
19:00:40dom96Not yet no.
19:08:50gradhaAraq: would you accept an iterator version of foldl/foldr for sequtils or you want the full recursive thingy?
19:09:35Araqwhy would I want a full recursive thingy? recursion is meh ...
19:09:55Araqit's nice when you otherwise would need a stack
19:10:14Araqit's a religious thing if you use it for anything else
19:11:40Araqgradha: actually I want them to be templates instead
19:12:31gradhalike filterIt?
19:12:48Araqtemplates work much better with the effect system and the "procvar" issue ;-)
19:12:55Araqlike filterIt, yeah
19:13:41gradhait sure gets rid of the lambda
19:15:22NimBotAraq/Nimrod 8dd1d3e Araq [+0 ±2 -0]: fixes #323
19:15:22NimBotAraq/Nimrod 963bd9a Araq [+0 ±9 -0]: Merge branch 'master' of github.com:Araq/Nimrod
19:16:35NimBotAraq/Nimrod 561c250 Grzegorz Adam Hankiewicz [+0 ±1 -0]: Adds example to instantiationInfo docstring.
19:16:35NimBotAraq/Nimrod 479bafe Araq [+0 ±1 -0]: Merge pull request #360 from gradha/pr_adds_example_to_instantiationinfo_docstring... 3 more lines
19:18:49dom96Nimbuild certainly has a lot of work today.
19:22:29dom96cool, newest member of our Nimrod family is someone who is involved with factor.
19:24:04*ack006 joined #nimrod
19:24:30ack006dom96: hi, thanks for the invite :-)
19:24:51dom96ack006: Awesome, i'm glad you accepted it :D
19:24:54ack006i'm the archer who dared to send you that PKGBUILD ;-)
19:25:29ack006nimrod is an absolutely awesome language, needs some more press to get people interested tho.
19:25:43dom96Totally agree.
19:25:59ack006they even dared to kick the nimrod page off of wikipedia, such a _shame_
19:26:03gradhado you have a blog ack006?
19:26:22dom96ack006: interesting, how long have you been following nimrod development?
19:26:26ack006gradha: no, not yet, but willing to start one just to promote nimrod :-)
19:26:47ack006tho i will not have many googlepoints yet when just starting hihi
19:26:53dom96You should, i'm starting one just for Nimrod.
19:27:25gradhano problem, we will all link you from our non existing blogs to page rank you higher
19:27:33dom96We could work as a team :D
19:27:35ack006it really is the language i have been dreaming about for a long time. was about to seriously think about designing my own, luckily i found you! :-)
19:27:53ack006saves me 10 years at least & lots of gray hairs :-)
19:28:22ack006dom96: love to!
19:28:48dom96We shall spam reddit with the tales of our great adventures with Nimrod!
19:28:55ack006ha!!!
19:29:00ack006yes!
19:29:04dom96:)
19:30:30Araqhi ack006, welcome :-)
19:31:11ack006Araq: thanks! thanks for this wonderful language
19:31:27ack006i really really can't imagine why you're not better known
19:31:41gradhaAraq doesn't post on facebook
19:31:56ack006i searched all over, from lambdatheultimate to hackernews
19:32:18ack006all pps go 'hm nice work, could be better tho, hmm will look at it sometime'
19:32:32ack006you only need to spend about 5 minutes with nimrod to know it's awesome
19:33:35ack006i think many people are so high on haskell (the time they put in to wrap their head around monads) that they're not willing to acknowledge anything else.
19:33:38dom96yes, I don't get it either. Maybe once 0.9.2 is released and we put the new website up we will get some more interest.
19:33:46dom96Everyone is a sucker for slick websites.
19:34:11dom96hehe, I was once high on haskell, and then I found Nimrod :P
19:34:24ack006new website? i already like the current one :-)
19:34:32Araqha!!!!
19:34:37Araqsee, dom96?
19:34:50gradhahmm... python doesn't seem to have a strong following on facebook https://www.facebook.com/pythonlang so we only need 70K+ likes to be better
19:35:28ack006that's because secretly all facebook employees switched to python cause ruby is too slow ;-)
19:35:51ack006and they don't want to admit using python (just joking!)
19:36:06ack006soon they will be using Nimrod anyway!
19:36:09gradhawell, maybe their php compiles to python
19:36:26dom96Araq: Yes, I see. Lets just throw away filwit's design then yeah? :P
19:36:27Araqthey compile their php to c++
19:36:33ack006well at least pascal compiles to nimrod. nice one, too!
19:37:09Araqexcept that there is no non-OO pascal left ;-)
19:37:20ack006anyway, i really like the language, and as soon as i know more about it, i'd like to contribute.
19:37:23Araqit's nice to translate the pascal wrappers though
19:37:46ack006and c too, i saw.
19:38:08Araqc2nim is much better than pas2nim now I think
19:38:13ack006aha
19:38:20Araqbecause c2nim is maintained ;-)
19:38:26ack006:-)
19:39:59ack006too bad i couldn't bootstrap from git today, sadly install.sh mismatch again
19:40:28ack006i would like to help out with that, only need to know why it's setup the way it currently is.
19:41:11ack006yes, of course i can use Nimrod from within the tree, but i'm maintaining a local package too.
19:41:41Araqah so you're that guy
19:41:53Araqwell ... your solutions sounds good
19:41:54ack006yup :-)
19:42:24Araqexcept that many people want us to remove the csource.zip from the git repo
19:42:54Araqas the repo is pretty large because of these binary files
19:43:03ack006would be even better, i thought that there's some kind of download service on github too
19:43:27ack006you could always put it in its own repo and ask people to get the zipball
19:43:52Araqwell I have to prune history for it and it will break every fork
19:44:03ack006yup, thought so.
19:44:03Araqthat's why I haven't done it already
19:44:45Araqwe can easily have a dummy file for nimbuild to trigger a rebuild
19:45:06ack006ah nimbuild, a kind of build service?
19:45:16ack006have you thought about travis?
19:45:45Araqwe have our own CIS written in nimrod
19:45:54ack006ah of course :-))
19:46:13ack006is there anything you don't have, warp drive or something ;->
19:48:20AraqI've been working on a remote debugger written in nimrod ...
19:48:34Araqbut decided there are more important things to do ;-)
19:48:50dom96Sadly the only thing we don't really have is a bigger community.
19:49:12Araq(or commercial support ... *cough*)
19:49:29dom96Yeah, true.
19:49:39ack006Araq: may i ask how long have you been developing Nimrod? it already has such interesting features...must be quite some time.
19:49:46ack006are you using it for business as well?
19:49:47*gour waves with the GUI lib transparent
19:53:03Araqack006: it took from 2004 till 2008 to get it into bootstrapping stage iirc
19:53:46Araqor maybe from 2006 it's hard to tell as I always had code lying around dealing with ASTs and lexing
19:54:07ack006wow :-)
19:54:42ack006really really nice work. i'm getting more and more interested in compiler design, parsing, etc. as well
19:55:25ack006began when i discovered factor, which also bootstraps itself, but from a pre-existing image like many smalltalk/squeak/some lisps etc.
19:55:56Araqfactors is quite cool but dynamic typing is a show stopper for me
19:56:02ack006the horror and nightmares thinking back to how we used to do this with lex/yacc at university.
19:56:32ack006yep for me too, it is what kills its speed i think
19:57:02ack006like the 'each' word having to deal with fried quotations, more quotations, etc.
19:57:43ack006when i view the call stack it is bursting with quotations that i think need recompiled on every type change
19:57:51ack006must be killing performance dead.
19:58:27dom96Araq: we need to resolve on that sockets.recvLine vs asyncio.recvLine issue. Thought about how it should be solved?
19:58:27ack006and using TYPED: for each and every word would turn it into a statically typed language anyway, except much more wordy.
19:58:40dom96s/on//
19:59:09Araqack006: that's Lisp's problem too
19:59:13ack006dom96: you go about your lofty business, i'll drop in some time later :)
19:59:41Araqdom96: sockets.recvLine shouldn't be changed again I think
20:00:01dom96ack006: hrm? Are you leaving?
20:00:50ack006nonono! i'm just gonna be afk for just a bit
20:01:41dom96oh alright.
20:01:44ack006need to get some food into me :-)
20:02:43dom96Araq: I think it should be.
20:03:25Araqdom96: we need some deprecation plan for sockets I think
20:03:41Araqthat asyncio is an ever moving target can't be avoided
20:04:07Araqit needs to changed to make use of first class iterators
20:04:21dom96For some reason it's quite hard to predict these practical issues.
20:04:27Araqonce they got a bit more stable
20:05:31dom96I don't think it's a good idea for recvLine to return false on error mainly because it seems so innocent.
20:05:39Araqmaybe we should introduce 'fetchLine' and 'fetch' and deprecate 'recv' as a term
20:06:11dom96I would prefer 'read'
20:06:15dom96'fetch' sounds very odd
20:06:29Araq*shrug* ok
20:06:40dom96But I don't want to deprecate 'recv'
20:06:57Araqwell only deprecate recvLine then
20:07:28dom96and replace it with what?
20:07:38AraqreadLine
20:08:08AraqI sometimes also use 'deprecated' to *mark* an upcoming change
20:08:25Araqand then change the signature and remove the 'deprecated' again ;-)
20:08:54Araqbut I guess people dislike that
20:11:49exhuwhat are the first class iterators?
20:13:31Araqexhu: http://build.nimrod-code.org/docs/manual.html#first-class-iterators
20:13:49Araqhave a look at the tasking example in this section
20:14:02dom96I don't think it's a good idea to change the name of the proc.
20:14:19dom96argh, but we can't deprecate based on return value.
20:14:29Araqexhu: C#'s await/async can be built with them too
20:17:33Araqdom96: what do you mean? you can deprecate a single overload
20:18:14dom96I can't overload recvLine by creating the same proc but with 'void' as the return type though.
20:18:16exhuAraq, nice, it seems there have been added several features since the last time i looked into manual.
20:18:44Araqexhu: keep in mind it's the manual from nimbuild
20:18:54Araq0.9.2 is still not out
20:19:35exhuAraq, about the recently fixed indexOf, the exception clause is not thrown further, the compiler displays only "can't evaluate 'indexof ..."" message.
20:19:57exhuAraq, in case of passing non-existing field name.
20:20:37Araqthat's because it's a compiletime proc ...
20:20:43exhuAraq, it's not that important anyway
20:21:00Araqgood, it's perhaps impossible to fix :P
20:21:17Araqthe compiler evaluates the 'raise' at compile time too :P
20:21:38Araqor do you mean the error message is unhelpful?
20:21:54exhuAraq, the error message is meaningful anyway, so it's not a problem.
20:30:18gradharelease builds don't check sequence out of index accesses, is that right?
20:31:46Araqgradha: correct
20:39:55*exhu quit (Quit: Ex-Chat)
20:45:38dom96Araq: ugh, this scgi stuff is too much work.
20:45:57Araqdom96: why? :-/
20:46:37dom96Araq: Because I don't know how to implement it, which means I'd need to spend a considerable amount of brain power thinking about it.
20:47:34Araqwell maybe you can start with explaining to me what the actual problem is
20:50:11dom96Actually i'm not entirely sure it is a problem.
20:50:32dom96Simultaneous file downloads from Nimbuild are possible, aren't they?
20:50:49dom96I think nginx basically handles what needs to be done.
20:50:56dom96Larger files may cause problems though.
20:51:08dom96But ok, let me describe what happens.
20:51:52dom96You request a file, a handleRequest proc is called, this handleRequest proc sees that you are requesting a file so you read the file requested into memory and send it on its way.
20:51:56ack006i'm back :-)
20:52:10dom96If the file is large of course then it will block.
20:52:48ack006dom96: what's hard in scgi? it's supposed to be 'simple' :-)
20:53:24ack006had to deal with it a bit for the julia web repl (julia = nice language too btw)
20:55:33ack006dom96: here's one in python :-) : http://www.cherokee-project.com/download/pyscgi/
20:56:32ack006and no, it doesn't depend on half of cherokee to do the job, just socketserver & some standard libs
20:57:24dom96ack006: The problem is designing it so that it works nicely with our current asyncio module.
20:58:54ack006aha :)
20:59:22ack006asyncio module anything like nodejs's?
21:02:06dom96No idea. It's loosely based on Python's asyncore module
21:02:16ack006ok
21:03:37ack006this one maybe? http://pydoc.net/Python/wsgitools/0.2/wsgitools.scgi.asynchronous/
21:06:00dom96it's not scgi specific
21:06:09ack006:(
21:06:15dom96http://docs.python.org/2/library/asyncore.html
21:06:27dom96Nimrod docs: http://build.nimrod-code.org/docs/asyncio.html
21:06:48Araqack006: we already have an scgi module and it's used for nimbuild
21:09:42ack006ok, got it :-)
21:14:11Araqdom96: we can use multi-threading
21:14:25Araqbut that defeats much of the point of asyncio
21:14:35dom96We could also somehow verify that everything that happens in your request handlers is asynchronous.
21:14:40dom96perhaps with effects?
21:14:44Araqindeed
21:15:07Araqeffects are made for these kind of things
21:15:15dom96good
21:15:59Araqexcept FAsyncIO is a subtype of FIO so can't really work
21:16:21Araqbut a better effects system is planned already ;-)
21:16:30dom96oh?
21:16:33reactormonkAraq, so you have an object and an effect hierarchy?
21:16:42Araqreactormonk: yeah
21:16:55Araqbut the effects system will be greatly improved
21:17:40Araqit's necessary for the concurrency modell too so this feature will get lots of love ;-)
21:17:46reactormonkAraq, why not use the object hierarchy?
21:18:12Araqreactormonk: because hierarchies suck
21:18:57Araqthey are never expressive enough
21:19:28reactormonkAraq, graph?
21:19:39Araq(plus I always get the co-/contravariance wrong :P )
21:19:59Araq(which means it's likely to be too complex for everybody else to grasp too :P )
21:20:31dom96The good thing is that we can use the PDispatcher object to contain all these async jobs.
21:22:35dom96Araq: btw I don't think you ever fully helped me fix jester
21:23:07Araqdom96: I told you to insert 2 immediate pragmas which made it work for me
21:23:29Araqreactormonk: parametrization is the keyword
21:23:32dom96yes, and I told you that I was getting weird conflicts between httpclient.request and jester.request.
21:23:58Araqwell... I missed that part, dom96
21:24:21reactormonkAraq, generics?
21:24:23Araqbut I'm back at working on the template overloading anyway
21:24:34Araqreactormonk: yeah quite like generics
21:24:41dom96Araq: no worries, please try adding 'import httpclient' to nimbuild/github.nim and then compiling it.
21:25:36Araqdom96: remind me later
21:26:19*gour quit (Disconnected by services)
21:26:20*gour_ joined #nimrod
21:28:15gradhawhen value is a sequence I'm using type(value[0]) to figure out the type of the contained objects, is that right or is there a better way? will that fail for zero length sequences (inside a template)?
21:28:53dom96Araq: ok, but don't put it off too much. It's a showstopper for Nimbuild and nimforum.
21:30:08gradhaok, at least it compiles (makes sense)
21:30:38gradhastill, rfc on the style of type(value[0])
21:37:56*gour_ is now known as gour
21:38:41Araqgradha: type(value[0]) is fine
21:57:19*fowl joined #nimrod
22:08:50ZorAraq: btw, how do you lower your AST to C?
22:08:53Zordo you 'flatten' it first?
22:11:01Araqthere are a couple of AST->AST transformations but it's not flattened
22:11:44Araqwe use the same representation everywhere kind of like LLVM does
22:12:18Zorso do you just recursively translate your AST?
22:15:30Araqyes. I wouldn't say "just" though ...
22:16:33Zorwhy is there an executable text file in the nimrod repo o_O
22:16:48gradhaIIRC there are lots o them
22:17:17gradhapossibly due to using git on freedos
22:17:43Araqit's some windows<->linux migration issue, yeah
22:18:32gradhaI wonder, does it make sense to mark build.bat as an executable? it is under windows, but not through the executable bit
22:19:13Araqfix it, I don't care
22:23:00*Trix[a]r_za is now known as Trixar_za
22:26:45gradhait seems you don't care about .gitignore either
22:27:29Araqtrue but what's wrong with the .gitignore?
22:27:59gradhait pollutes the output of git status after a build
22:28:11gradhawell, the lack of it
22:35:31dom96It's not easy to .gitignore all these binary files that the tester generates
22:37:00Araqit would be easy if unix used '.exe' extensions ... ;-)
22:37:12gradhanothing prevents you from doing so
22:38:07ack006Araq: what are the parameters that you use when running ./cook csources?
22:38:28ack006i'm working on the bootstrap stuff, need to know what to pass in
22:39:14ack006koch ?! cook, i translated it, sorry :-)
22:39:26gradhadon't worry
22:39:40gradhabtw, do you happen to like gladiator films?
22:39:50ack006how so?
22:40:00gradhabenhur, spartacus...
22:40:10ack006wow heavy :-)
22:40:32gradhajust kidding, I often make the same mistake
22:41:01ack006well, i'm more of the 'T'ai Ch'i Master' kind of guy. too much violence in todays movies
22:42:43gradhayou don't like xml?
22:42:44ack006i've got todays 'broken' bootstrap working by just adding "csource(args)" at the end of "boot(...)" in koch.nim. proves that it's possible
22:42:57Araqack006: I use 'koch boot -d:release'
22:43:13Araqbut many use 'koch boot -d:release -d:useGnuReadline'
22:43:48ack006but how do you normally build the c sources? i need to know what to pass on to niminst, trying to make it generate only install.sh, nothing else.
22:44:49Araq'koch csource -d:release'
22:45:17Araqgradha: that's actually not a bad idea for the testing
22:45:23ack006ah ok, was worried you passed in more obscure vars i don't yet now about :-)
22:47:42ack006then it would just be a matter of adding a new target like "niminst installscript" or something like that
22:52:26Araqwell it's easy to do anyway
22:53:35ack006i'm doing it already, could be nice first contribution i hope :-)
22:53:46Araqindeed
22:56:19reactormonkwhat do you use for DNS?
22:57:38gradhaAraq: if you decide to break github history maybe it would be convenient to rename the current repo and create a new one, so at least the old history is not discarded for archeologists
23:00:20*gour quit (Quit: WeeChat 0.4.0)
23:02:22Araqreactormonk: what the OS provides?
23:02:36Araqgradha: hrm, what repo name would you suggest?
23:03:24dom96Araq: how would you like the asyncio module to use first class iterators?
23:03:46reactormonkAraq, for hosting DNS
23:04:40Araqdom96: yeah
23:04:58Araqreactormonk: why is that important to you?
23:05:06dom96Araq: How?
23:05:35dom96reactormonk: why do you want to host your own DNS?
23:05:40gradhaAraq: maybe thelanguageformerlyknownasnimrod and use the chance to rename nimrod to gamera
23:06:09gradhabesides, the github guys are going to love new linguist patches for a rename
23:06:37dom96if you get rid of the current repo you'll get rid of all the stargazers :(
23:06:39reactormonkdom96, nah, just an A record
23:07:09dom96reactormonk: still, why?
23:12:09Araqdom96: ugh that's hard to explain
23:12:19AraqI need to find some link ...
23:13:14reactormonkdom96, for my current ip. owncloud.
23:14:19ack006boot strapped, it worked :-) now i just need to sit and meditate on some sane names for the procs and all
23:15:01ack006i h8te finding names for things, and refactoring ba and zillions of files, lucky me here it's only 2...
23:15:19dom96ugh, I need to organise my Nimrod todo list better.
23:16:01gradhatip: if you finish your todos, you will also organise the list by keeping it empty
23:19:07ack006isn't that the gtd mantra? or is it that other one about keeping your inbox empty?
23:21:39gradhanot sure, I can easily delete my inbox without getting things done
23:28:59dom96Write an app which deletes your inbox, then you only have to do some work once and let your app take care of the rest.
23:29:34ack006gradha: :-D
23:29:37gradhayou could use approved Knuth methods and get a secretary to deal with your mail
23:30:20dom96Write an AI to deal with your mail, it's cheaper.
23:30:47*gradha quit (Quit: bbl, have youtube videos to watch)
23:32:46ack006Letter: "You've won the lottery! The prize is in bearer bonds, anyone can cash them". What's the AI going to do now? Turing test maybe?
23:33:24dom96It will obviously send your credit card details.
23:34:14ack006greedy(human). :- gimme(more). ?
23:34:43ack006does not compute, infinite loop, bzzzzzz
23:35:15Araqwow prolog syntax, I'm impressed
23:35:23ack006;-)
23:35:57ack006not too many people know it today, i once had a dream of convincing Linus he should use it to configure the kernel
23:36:36ack006would have found those "select FEATURE" bugs years ago
23:37:26ack006but since he f#$@ed off Eric S Raymond, I didn't even bother
23:37:39AraqI dreamed of a language that lets you distinguish between pointers pointing to kernel memory and pointer pointing to user level memory
23:37:58Araqnimrod's type system is almost there now ;-)
23:38:20ack006keep up the good work! :-)
23:39:01Araqisn't fucking off raymond a good idea anyway?
23:39:36ack006well, not if he tried to convince Linus by building an effing SAT solver to prove his point
23:40:04ack006and the current kbuild is anything but sat, let alone solver
23:40:32Araqa SAT solver is not that much work, is it?
23:40:54ack006well, this one is tristate, as the kernel config symbols are
23:41:12Araqmap it to boolean logic first ;-)
23:41:22ack006boolean SAT is difficult enough, imagine tristate
23:41:38ack006and the "select" bug was exactly one such problem
23:42:20ack006well, trivial to me, i saw it coming, i worked with the linux-media dvb drivers, where it was used to select tuners
23:43:13ack006if your var's value is one of 'Y', 'M' or 'N', and you select another var, what should it's value be?
23:44:42ack006easy enough, the 'minimum' of your var and the other var's 'maximum'
23:45:08Araqyeah
23:45:18ack006took a whole lot of time for linux to catch up with that, fix was about two years ago.
23:46:18ack006my guess is that a correct prolog ruleset would have found it in ~ a few millisec.
23:46:57Araqwhat about getting rid of memory overcommitting as the default and encouraging users to use posix_spawn?
23:47:29ack006ah but today's kids want to do it in haskell and do it with fancy typeclasses and such.
23:48:44ack006http://lwn.net/Articles/317814/
23:50:47Araqalready know that article
23:50:54ack006:-)
23:51:10Araqack006: do you know how to allocate memory on a 64K boundary with mmap portably?