00:10:44 | * | Trixar_za is now known as Trix[a]r_za |
00:12:21 | * | JStoker quit (Excess Flood) |
00:45:46 | * | JStoker_ joined #nimrod |
01:19:53 | * | JStoker_ is now known as JStoker |
03:57:23 | reactormonk | fuck it, my elisp project failed... too slow. anyone using emacs here? Then I'll take a look at nimrod-mode next |
05:28:04 | * | ryderblue joined #nimrod |
05:49:07 | * | fowl quit (Ping timeout: 252 seconds) |
06:09:10 | * | fowl joined #nimrod |
06:57:34 | * | Trix[a]r_za is now known as Trixar_za |
07:38:00 | * | ryderblue quit (Quit: ryderblue) |
07:52:39 | * | Trixar_za is now known as Trix[a]r_za |
08:09:30 | * | Araq_ joined #nimrod |
09:48:54 | * | Araq_ quit (Quit: ChatZilla 0.9.89 [Firefox 16.0.2/20121024073032]) |
11:47:41 | * | gradha joined #nimrod |
12:08:02 | * | Araq_ joined #nimrod |
12:42:45 | Araq_ | gradha: thanks for your post on the forum |
12:43:07 | Araq_ | that really helped :D |
12:43:27 | gradha | ok, I guess |
12:44:04 | Araq_ | I will improve the tutorials and hrm |
12:44:16 | Araq_ | I guess we need some other structure for them |
12:44:37 | Araq_ | the tut is worthless, the manual is often better |
12:44:50 | Araq_ | but both don't really show how to *use* Nimrod ... |
12:45:22 | gradha | I wouldn't hastily make such decisions, just like I wrote, the problem is not having "newbie eyes", so my opinion on the subject is also biased by my previous experience |
12:45:41 | gradha | maybe the tutorial is ok and it just doesn't much my expectations? |
12:45:45 | gradha | who knows |
12:45:49 | gradha | that's the problem with documentation |
12:46:14 | gradha | s/much/meet/ |
12:46:44 | gradha | maybe a good idea would be to look at other languages' beginner tutorials and see what works for them |
12:47:17 | gradha | I fondly remember the python introduction tutorial to be really nice and prompting me to actually write code rather than think "ah, I'll do that later, some decade of these..." |
12:47:27 | Araq_ | well everybody complains about it, so it must be bad ;-) |
12:47:37 | gradha | but that was in 1.5.2, not sure where python stands now |
12:48:24 | Araq_ | well I'm already overwhelmed with the spec/manual ... |
12:48:39 | Araq_ | for instance, exception tracking basically works now ... |
12:48:52 | Araq_ | but now I have to document all this ... |
12:49:17 | gradha | writing docs is really a PITA |
12:50:03 | gradha | read yesterday's log about the tagging/exception tracking, looks really nice |
12:50:07 | Araq_ | and then it's only in the manual |
12:50:14 | Araq_ | the tut won't cover it at all ... |
12:50:23 | Araq_ | like "distinct" types for instance |
12:50:33 | Araq_ | documenting stuff twice is a pita |
12:50:39 | Araq_ | there has to be a better way |
12:50:51 | Araq_ | maybe I'll work with lots of includes |
12:50:56 | gradha | I'm not sure about that (documenting twice) |
12:51:10 | Araq_ | and reference the non-spec parts in a list of articles |
12:51:14 | gradha | oh, improved hyperlinking (or notes, see advanced stuff there) would help |
12:52:04 | gradha | I think the problem with the tutorial now is that it's mainly the source of documentation, while it should be an overview with hyperlinks to it |
12:52:18 | gradha | say, a newbie shouldn't even care about the immutability properties of a sequence |
12:52:31 | gradha | but somebody with more experience may want to learn about them |
12:53:26 | gradha | wouldn't like to be in your shoes wrt to deciding about documentation, it's the most difficult part (aka: communicating with others) |
12:53:29 | Araq_ | on the other hand we could also finally improve aporia and then tell users to use it to learn the api |
12:53:42 | Araq_ | then you type 's.' and a list shows the 'add' |
12:54:06 | gradha | hehe, serves me well for always using vim |
12:54:38 | gradha | maybe some day I'll try aporia |
12:56:50 | Araq_ | well the compiler is ide agnostic |
12:57:00 | Araq_ | so vim will get the same support |
12:57:28 | Araq_ | in fact, "compiler as a service" is implemented but dom96 is too busy to change aporia to use it |
12:57:48 | Araq_ | and I don't feel like testing it further via telnet :P |
12:57:48 | gradha | interesting, didn't know you had that done |
12:58:42 | Araq_ | yeah just image how this stuff would look like if I had no ral job :P |
12:58:44 | Araq_ | *real |
13:00:29 | gradha | food calls, later |
13:09:21 | Araq_ | alright, see you later |
13:09:23 | * | Araq_ quit (Quit: ChatZilla 0.9.89 [Firefox 16.0.2/20121024073032]) |
13:16:09 | dom96 | hello |
13:18:58 | * | q66 joined #nimrod |
13:27:20 | * | dom96 replied to the thread |
14:12:53 | gradha | at the moment forums/irc is good enough to learn, docs are just needed for "scaling" |
14:13:07 | gradha | they will come |
14:13:14 | gradha | the problem was nobody uses nimrod, right? |
14:26:49 | dom96 | I suppose, yeah. |
15:12:33 | reactormonk | anyone in for emacs here? |
15:15:20 | gradha | is https://github.com/eegg/nimrod-mode yours? |
15:16:03 | * | Trix[a]r_za is now known as Trixar_za |
15:18:38 | reactormonk | I'm Tass over there |
15:19:21 | Trixar_za | I was wondering who Tass was |
15:19:22 | Trixar_za | :P |
15:19:25 | reactormonk | but that might be a starter, yep |
15:19:53 | reactormonk | but first I'll see what I can squeeze out of my current project speed-wise, drop it on github and mark it as FAILED |
16:05:52 | gradha | overloading / for path concatenation in the os is genius |
16:06:35 | gradha | it also seems problematic, I guess you can't use that if you also overload / in another imported module |
16:07:11 | gradha | what would the syntax be then, pathA os./ pathB os./ pathC ? |
16:07:22 | dom96 | os.`/` |
16:08:38 | gradha | at that point joinPath doesn't seem long at all, especially with the backticks (depending on keyboard i18n) |
16:10:08 | dom96 | yeah, it loses its beauty at that point. |
16:34:48 | reactormonk | gradha, overloading is bound to types |
16:34:51 | * | ryderblue joined #nimrod |
16:35:04 | reactormonk | so that shouldn't be much of a problem except if you want to overload it on strings |
16:35:21 | reactormonk | and people won't clash with the stdlib. |
16:35:57 | gradha | sure, I just love overthinking stuff |
16:36:22 | gradha | finding out what breaks apart is what entertains me |
16:37:32 | reactormonk | go break some US voting machines then ;-) |
16:38:44 | gradha | so far I haven't read about any which works |
16:39:37 | gradha | voting with PKI would be far better, but you have to give up anonymity |
16:39:54 | gradha | at some point you have, or you simply pass it as trust onto another party |
16:40:47 | reactormonk | ... and they even gave up the post-election polls |
16:41:12 | reactormonk | because they were wrong - and the journals didn't even thing fraud might be happening |
16:41:31 | gradha | nobody expects the Spanish inquisition! |
16:41:43 | gradha | such boring minds |
17:51:19 | Araq | so gradha ... we can make doc2 annotate exceptions automatically. killer feature, hu? :P |
17:51:37 | gradha | yessssss |
17:54:15 | gradha | precisely I'm writing a proc which returns a reference to an object from the database, nil when not found |
17:54:29 | gradha | adding this killer feature will also show EDb can be raised too |
17:54:43 | dom96 | Araq: Are you going to implement in the way that I described it? i.e.: raise newException(EIO, ...) ## Doc string. |
17:54:50 | dom96 | Will result in: |
17:55:02 | Araq | dom96: I tried :P |
17:55:07 | dom96 | Exceptions: EIO | Doc string |
17:55:35 | Araq | by the time the analysis runs, 'newException' has already been expanded |
17:55:58 | Araq | so the doc string is lost too ... |
17:56:25 | dom96 | Simply get rid of newException and allow: raise EIO, message :P |
17:57:23 | Araq | hrm |
18:01:46 | * | Trixar_za is now known as Trix[a]r_za |
18:06:21 | gradha | I'm not understanding the following error. With code like: |
18:06:26 | gradha | var todo: ref TTodo |
18:06:27 | gradha | todo = conn.getTodo(todoId) |
18:06:27 | gradha | if nil == todo: |
18:06:40 | gradha | I get: Info: instantiation from here |
18:06:41 | gradha | lib/system.nim(626, 13) Error: cannot instantiate: 'T' |
18:06:53 | Araq | interesting |
18:07:01 | gradha | shit |
18:07:21 | Araq | nimrod forces you to do it properly :P |
18:07:27 | Araq | if todo == nil: ... |
18:07:40 | Araq | or: if todo.isNil: |
18:07:56 | gradha | ok |
18:08:04 | Araq | proc `==`(x, y: ref T): bool is the signature I think |
18:08:14 | gradha | still, I like the backwards idiom, it prevents mistyping == |
18:08:31 | gradha | I'll use isNil, thanks |
18:08:32 | Araq | but 'nil' does not determine T |
18:08:53 | Araq | if you mistype = instead of == you'll get another error |
18:09:00 | Araq | nimrod is not C++ ... |
18:09:30 | gradha | slightly cryptic Error: ':' expected |
18:09:41 | Araq | I know |
18:09:48 | Araq | it's good enough for now :P |
18:09:58 | gradha | me too |
18:10:28 | gradha | is if var = nil: a special case or nimrod simply disallows assignments inside the if? |
18:14:33 | Araq | the later |
18:15:20 | Araq | btw tell zahary when he's around that I think I solved the constructor problem and he'll love the solution |
18:15:57 | gradha | if I remember I'll do so |
18:20:10 | Araq | and yeah before you ask: nonnullable types are planned |
18:20:56 | gradha | I recall you saying that, though I come from language where this feature doesn't exists, so I'm not feeling to be missing a big deal |
18:21:26 | gradha | I love how nil and messaging works in objc |
18:21:33 | gradha | so actually nil is a feature for me! |
18:21:34 | Araq | it doesn't matter, it's crucial for marketing |
18:21:39 | gradha | haha, true |
18:22:19 | Araq | people don't get that Java exemplified the problem since everything is a pointer in java ... |
18:23:11 | gradha | oh, the painful memories of teachers forcing into me the idea that there are no pointers in java therefore it is a safe language... |
18:23:59 | Araq | how come haskell is never blamed for 'bottom' btw? |
18:24:24 | gradha | no idea about haskell, the worst I've heard about it is: monads |
18:25:17 | dom96 | Araq: What are you referring to? what is 'bottom'? |
18:26:15 | dom96 | Problem with Haskell, to some people at least, is that it is purely functional. Which means that Monads are the only way to perform IO... |
18:26:48 | Araq | ugh, let me look it up ... |
18:27:36 | gradha | dom96: yeah, real life sucks, it's all so much easier when you don't have to interact with it |
18:35:21 | Araq | dom96: http://www.haskell.org/haskellwiki/Bottom |
18:37:54 | gradha | isn't that like the noreturn pragma? |
18:38:38 | Araq | it's an endless loop |
18:38:50 | Araq | but haskell doesn't detect it and lets you get away with it |
18:39:20 | gradha | I write those endless loops quite often, maybe it would be a nice shortcut to have... |
18:39:42 | gradha | maybe the committee was drunk when they approved bottom? |
18:39:57 | Araq | yeah but you don't do 'let x = (while true) + 12' |
18:40:18 | Araq | it's an artifact of haskell's laziness |
18:40:36 | gradha | well, not directly, the (while true) in my case would be any function returning an integer, which never returns. |
18:40:36 | Araq | you can't avoid it easily |
18:40:53 | Araq | well yeah |
18:41:08 | Araq | well nimrod has that problem plus 'nil' |
18:41:17 | Araq | so it's worse than haskell ;-) |
18:41:36 | gradha | oh, so it's a problem? man, I didn't know that when I joined this irc channel |
18:41:41 | gradha | I want my sanity back! |
18:42:35 | gradha | I've always thought that people trying to solve the halting problem have too few interesting things to do in their life |
18:47:02 | Araq | I dunno, I find all these thing interesting :P |
18:47:26 | Araq | there is a subclass of turing machines for which the halting problem is solvable |
18:47:41 | Araq | but I forgot how this subclass looks like |
18:47:49 | Araq | it's non-trivial though |
18:47:51 | gradha | interesting yes, but trying to *solve* the halting problem... isn't it enough to run something and see it doesn't finish? |
18:48:48 | gradha | you only need a QA department, with something above the average monkey |
18:49:14 | Araq | meh where is the fun in that? :P |
18:49:34 | Araq | prove that it terminates instead |
18:49:47 | Araq | if you can't prove it your code is too complex :P |
18:50:31 | gradha | when somebody tells me my code is complex I tell them to look at the linux kernel |
18:51:20 | gradha | I guess you can argue it doesn't finish too, since it takes over the machine and never exits (unless it crashes) |
18:52:53 | Araq | most interactive applications are endless loops, yes |
18:53:54 | Araq | lots of formal systems have been developed with this in mind though |
18:54:38 | gradha | ah... formal. The word that strikes fear into the hearts of many programmers |
18:55:13 | gradha | is git head stable now? |
18:55:27 | Araq | I think so |
18:55:46 | Araq | but exception tracking is not activated |
18:55:54 | gradha | I've just finished a new example, so rather than check it I'll rebase now and request a pull |
18:56:15 | Araq | oh wait a sec ... |
18:57:46 | gradha | don't worry, I'll tag locally so I can revert |
18:58:45 | Araq | there you go |
18:58:56 | gradha | ok |
19:01:35 | gradha | low upload bandwidth sucks |
19:05:01 | gradha | since I'm uploading now my copy of build/csources.zip, what's the deal behind it? is it like pregenerated code for bootstraping? |
19:05:50 | Araq | wtf |
19:06:00 | Araq | you shouldn't upload csources.zip |
19:06:05 | Araq | that's offending |
19:06:20 | Araq | it's only needed if bootstrapping somehow was broken |
19:07:09 | gradha | well, it came updated with commit c19fc97a780ffd3b804a9aa76e0bac2e9da7c4e9, and since I'm pushing first to my fork I have to upload it |
19:07:30 | gradha | at least that's what I think git is doing, so far sent 11MB |
19:08:39 | gradha | isn't that the "feature" of dvcs? everybody gets to keep gigabytes of history |
19:10:17 | reactormonk | gradha, Araq does not like huge diffs on github, so he zips the sources |
19:10:59 | Araq | gradha: did you run 'koch csource'? |
19:11:08 | gradha | no |
19:11:15 | gradha | what does it do? |
19:11:37 | Araq | it generates the C sources for bootstrapping |
19:12:03 | Araq | so if you didn't run that I fail to see how your .zip can be different from the one on github |
19:12:12 | gradha | oh, no, it's not different |
19:12:22 | gradha | it's just that I've merged your changes into my fork |
19:12:32 | gradha | but now "git push" actually uploads them |
19:12:46 | gradha | it is "stupid", it doesn't know it can fetch them from your repo, in the cloud, that is |
19:13:07 | gradha | so far I've just fast forwarded my fork to match yours, I'll send my changes now |
19:14:24 | gradha | ok, there you go https://github.com/Araq/Nimrod/pull/243 |
19:14:53 | gradha | I'm sure there are better ways to implement this example |
19:15:20 | gradha | for instance: the command line parsing is quite repetitive, I'm positive macros will help there (when I learn to write them) |
19:16:41 | gradha | I guess I'll learn that first, so I can .emit. native objc like a boss |
19:19:23 | Araq | warning: nitpicking and rambling ahead |
19:19:55 | Araq | why do you use `' ? which font shows that as an open/closed quote? |
19:20:11 | Araq | it's 2012 ... |
19:20:45 | gradha | the font is Terminus |
19:21:05 | gradha | `' |
19:21:22 | gradha | not sure about that, hasn't that always looked like that? |
19:21:49 | Araq | indeed, it always looked like shit ;-) |
19:22:02 | Araq | unless you're born before 1970 I guess |
19:22:43 | gradha | hmmm... I'm from 1980, but never actually used those until I started with linux, so maybe that had the old ancient font? |
19:22:57 | gradha | does http://blogs.adobe.com/typblography/2012/09/source-code-pro.html look better? |
19:23:36 | gradha | or just tell me which characters to use |
19:24:02 | Araq | well ' ' or " " or ` ` |
19:24:15 | gradha | so just repeating the same character, ok |
19:25:13 | gradha | if you have more nitpicks I can update the pull request |
19:27:14 | Araq | you don't have to update |
19:27:18 | gradha | pushed version with ' ' |
19:27:22 | Araq | lol |
19:27:34 | Araq | I dislike ' : ' and prefer ': ' ;-) |
19:27:44 | Araq | as : is no binary operator |
19:27:57 | gradha | I don't quite get that |
19:28:39 | gradha | oh, you mean the var declarations? |
19:28:43 | gradha | don't know where that came from |
19:29:14 | Araq | in the var declarations yeah |
19:29:32 | gradha | I hate them aswell, must have been the other me when I wasn't looking |
19:30:25 | Araq | speaking of which, I never do 'discard(x)', but 'discard x' |
19:31:09 | gradha | I've also seen echo without the brackets in the docs |
19:31:29 | gradha | I'm still torn between using them or not, it's something new I'm not used to |
19:41:47 | dom96 | guys, we should attempt to resurrect the Nimrod wikipedia page! |
19:41:52 | gradha | discarded discard's brackets |
19:42:16 | gradha | why are they deleting it? |
19:42:26 | dom96 | They already deleted it... a long time ago. |
19:42:33 | dom96 | Due to it not being notable enough :\ |
19:43:19 | reactormonk | write it in some foreign language |
19:43:34 | reactormonk | then argue in the english wikipedia that it's there in that language |
19:44:16 | dom96 | We would need foreign references then... |
19:44:18 | gradha | we can fix this writing something notable in nimrod |
19:44:41 | dom96 | Blog posts might be enough, anyone have a blog? |
19:44:58 | gradha | maybe number of github repos? |
19:46:04 | dom96 | number of Nimrod github repos you mean? |
19:46:17 | dom96 | How does that translate into a wikipedia reference? |
19:46:35 | gradha | not forks, github repos using nimrod as language, that would be notable, meaning people use it |
19:46:36 | dom96 | (Not to mention we can't determine that because Github won't accept reactormonk's patch :\) |
19:46:55 | gradha | true, maybe we should first gain notability on github |
19:48:00 | dom96 | The only thing this could back up is writing "There are many Nimrod projects on Github", but backing up stuff about the language would mean we would need to use references to Nimrod's manual which Wikipedia doesn't like IIRC |
19:48:45 | gradha | sounds like a problem... only if you want to be in wikipedia |
19:49:10 | dom96 | The only reason I found Nimrod is because of Wikipedia :P |
19:49:12 | Araq | brb |
19:49:20 | dom96 | Then 2 days later the article was deleted. |
19:49:26 | dom96 | Talk about luck :D |
19:49:53 | gradha | i found about it on stackoverflow |
19:50:03 | gradha | must have been a comment by one of you |
19:51:02 | dom96 | http://stackoverflow.com/questions/1157328/programming-languages-with-python-like-syntax-but-native-code-generation |
19:51:07 | dom96 | I have no idea who that guy is. |
19:51:23 | dom96 | Same here: http://stackoverflow.com/questions/3557072/is-there-a-better-c |
19:51:39 | dom96 | That's the only results on google for "stackoverflow nimrod programming language" |
19:52:21 | reactormonk | dom96, go rant on the pull request |
19:52:44 | dom96 | Lets all rant on it |
19:52:45 | gradha | somehow that's not what I remember |
19:53:04 | gradha | I remember looking up for something like "programming language which compiles to C" and somewhere there was a link |
19:53:16 | gradha | among stuff like vala and other languages |
19:53:24 | dom96 | Everyone, RANT https://github.com/github/linguist/pull/253 |
19:54:21 | gradha | haha, done |
19:54:28 | gradha | I'm gonna get soo banned |
19:54:36 | dom96 | "I hear even haskell guys had to face reality and created monads..." whaaaat? |
19:55:03 | gradha | nonsense trolling |
19:55:23 | dom96 | argh, please don't do that. |
19:55:33 | dom96 | I don't think that will get us anywhere. |
19:55:35 | gradha | ok, deleted |
19:55:52 | gradha | not sure what else can get you, github has their own priorities |
19:56:21 | Araq | well since we ranting already |
19:56:30 | gradha | wouldn't you have to find the people in charge of merging stuff? seeing as that is good to merge |
19:56:43 | Araq | I'm sorry but this is typical of "modern" developers ... |
19:56:57 | Araq | building shit on top of shit without ever thinking |
19:57:20 | dom96 | Everyone just +1 it or something :P |
19:57:25 | Araq | as if for programming language detection binary files would matter |
19:57:28 | reactormonk | can't do that anymore |
19:57:49 | dom96 | Or say "Yes, I agree with dom96. Merge this please." |
19:57:49 | reactormonk | Araq, well, public relations :-P |
19:57:59 | dom96 | :P |
19:58:11 | Araq | wtf |
19:58:15 | gradha | maybe embedding a meme... |
19:58:17 | Araq | did they delete my comment? |
19:58:30 | dom96 | Araq: Are you sure you didn't comment on the issue? :P |
19:58:37 | Araq | I did comment |
19:58:45 | dom96 | yes, you did. |
19:58:50 | gradha | in fact I remember reading that comment |
20:00:38 | dom96 | Lets all just DOS github, that'll show them. |
20:01:01 | gradha | hehe, and you were schooling me just a moment ago |
20:01:27 | dom96 | True, but DOS'ing is anonymous, kinda. |
20:01:33 | dom96 | Totally different! |
20:01:39 | gradha | right |
20:02:09 | dom96 | I kid, i kid. Lets hope they finally merge this :( |
20:02:28 | dom96 | Could be worse, they could have simply closed it. |
20:02:40 | gradha | btw, here's what initiated me in nimrod: http://stackoverflow.com/questions/1721804/which-general-purpose-programming-languages-implementations-compile-to-c |
20:03:58 | dom96 | nice. No idea who ante is. |
20:04:05 | Araq | ha, nimrod is the top answer |
20:04:17 | gradha | just upvoted it, I'm liking it |
20:04:25 | Araq | ok, ... I'm pissed off |
20:04:32 | Araq | how come they dare delete my comment? |
20:04:39 | Araq | I wasn't even offensive, iirc |
20:04:57 | dom96 | Araq: Dude. Are you sure you commented on the pull request? |
20:05:13 | dom96 | And not just the issue? |
20:05:18 | Araq | lol |
20:05:20 | dom96 | Your comment is still there. |
20:05:22 | dom96 | On the issue. |
20:05:27 | Araq | aha XD |
20:05:42 | dom96 | ..lol |
20:06:01 | gradha | true, that's what I was remembering too |
20:07:14 | Araq | the better |
20:07:20 | Araq | so I commented again ;-) |
20:08:08 | gradha | somehow the lack of OMG reduces the drama of the request |
20:08:37 | Araq | damn |
20:09:09 | dom96 | haha |
20:09:26 | Araq | btw gradha I think some simple helper procs would help your parsing code already |
20:09:42 | Araq | but the transition to a template is very simple |
20:10:00 | dom96 | Araq: select for processes on Windows doesn't work well IIRC, right? |
20:10:22 | Araq | dom96: it's your code ... |
20:10:29 | dom96 | I know. |
20:10:40 | dom96 | I really should have documented this argh |
20:10:59 | gradha | template == macro? |
20:11:22 | Araq | a template started as a quasi quote |
20:11:37 | Araq | but yeah a template is a simple form of a macro |
20:12:24 | gradha | ok, I'll review the pull request once I go through the second tutorial |
20:16:26 | Araq | in fact, they are quite easy if you know C's #define |
20:17:24 | gradha | looks like evading any knowledge about C# doesn't pay off in the end |
20:17:26 | dom96 | yeah, just went through the git history. Select does not work correctly on Windows. |
20:17:29 | * | dom96 changes docs |
20:18:25 | Araq | hu? what has c# to do with it? |
20:18:44 | gradha | dyslexia, most likely |
20:19:33 | gradha | I was expecting macros to be like C's #define |
20:21:40 | Araq | lol |
20:26:49 | Araq | C's macros are no macros :P |
20:27:03 | gradha | awwww, what a pity |
20:27:08 | Araq | thank god they didn't use the word "module" for their include crap ... |
20:27:16 | dom96 | C's macros are a joke compared to Nimrod's :P |
20:27:32 | Araq | otherwise people would now think of modules being a bad idea ... |
20:28:53 | gradha | AFAIK C's macros and includes are part of the preprocessor, which has nothing to do with the language itself, they just get lumped with it, but I've satanized other languages with the C preprocessor too, just because I could! |
20:29:14 | Araq | this is almost true :P |
20:29:30 | Araq | fact is though that the preprocessor is part of the C standard |
20:29:46 | Araq | you can't pretend it somehow doesn't belong to C ... |
20:30:02 | dom96 | Araq: What is the reason I can't simply terminate a running thread, again? |
20:30:21 | gradha | sure, I just don't see it as "integrating" with the language, it's an additional compilation phase |
20:30:40 | gradha | dom96: terminating threads is evil, or so they say |
20:30:59 | Araq | dom96: I dunno ... I think you can? |
20:31:09 | Araq | but the posix's api for it is deprecated |
20:31:24 | dom96 | I see. |
20:31:33 | Araq | for dumb reasons |
20:31:46 | dom96 | I guess the alternative isn't super bad. |
20:32:28 | Araq | one reason is that the thread could still hold some lock |
20:32:37 | Araq | and then you could trigger deadlocks this way |
20:33:04 | Araq | this assumes that you A) have no control over the code the thread executes that you want to terminate |
20:33:08 | dom96 | true. I wish I had some way to simply terminate a blocked call though. |
20:33:16 | Araq | and B) somehow still use the very same lock as this thread |
20:33:20 | Araq | B ) |
20:33:23 | gradha | deadlocks are the second best thing behind infinite loops |
20:33:32 | gradha | s/behind/after |
20:33:45 | Araq | in other words, it's a dumb reason |
20:33:59 | Araq | with the same logic you could deprecate terminating a process ... |
20:34:18 | dom96 | I am forced to pass the process object back to the main thread and terminate the process if I want to terminate the build process... |
20:34:22 | dom96 | Which seems hackish. |
20:35:00 | dom96 | Because readLine on the Process' stdout could block... |
20:35:22 | dom96 | I hate IO. |
20:37:10 | Araq | it's also likely to be wrong :P |
20:37:21 | dom96 | of course. |
20:37:30 | Araq | you must not pass the process back to main thread |
20:37:45 | Araq | unless the main thread allocated the object |
20:38:34 | Araq | the compiler should warn about this ... |
20:39:09 | dom96 | I should probably pass the PID. |
20:39:18 | dom96 | and then terminate the PID. |
20:39:47 | Araq | yeah that's much better |
20:39:50 | dom96 | But then I need a function which lets me terminate a process by PID |
20:40:37 | dom96 | Useful addition to osproc I guess. |
20:40:41 | dom96 | I shall implement it. |
20:40:43 | Araq | yeah |
20:40:59 | Araq | making PProcess = ref TProcess was a bad idea ... |
20:41:44 | Araq | we could try PProcess = var TProcess and maybe I won't break any code |
20:41:55 | Araq | and then it can be shared between threads ... |
20:43:55 | dom96 | ok, what we'll do is I will finish nimbuild first, and then we'll worry about this :P |
20:44:15 | Araq | good |
20:44:43 | Araq | on the other hand sending a PProcess properly with the API works |
20:44:53 | Araq | if only because of implementation details :P |
20:46:51 | dom96 | channels.send() actually copies the object then, it doesn't just pass the pointer? right? |
20:46:59 | dom96 | Which is correct and doesn't cause any issues. |
20:47:13 | Araq | right |
20:47:21 | dom96 | So that's subject to change? |
20:47:30 | Araq | no ... |
20:47:49 | Araq | well I thought you exchange the PProcess via some global :P |
20:47:56 | Araq | and that would be wrong :P |
20:47:59 | dom96 | No. |
20:48:00 | fowl | i tried to do type PFoo = (var TFoo) or (ptr TFoo) for a c wrapper and it wouldnt work =( |
20:48:26 | Araq | perhaps the compiler doesn't like () |
20:48:38 | Araq | PFoo = var TFoo # works for me |
20:48:44 | Araq | the compiler itself uses it now |
20:49:38 | fowl | type mismatch: got (TFoo) but expected one of: |
20:49:38 | fowl | a25.zoo(x: PFoo) |
20:52:21 | fowl | without the ()s, var tfoo or ptr tfoo is interpreted as var tfoo | var ptr tfoo |
20:53:00 | Araq | well I dunno what you're doing :P |
20:53:50 | fowl | Araq: i'd like things like sdl's TEvent to pass in as var so you can just do pollevent(event) without so much address stuff |
20:56:44 | * | ryderblue quit (Remote host closed the connection) |
20:56:45 | dom96 | hrm, would a converter work in this case? lol |
20:57:35 | fowl | lol converter toptr*[A](some: var A): ptr A = addr some |
20:57:50 | Araq | I think it doesn't due to compiler bugs |
20:58:59 | fowl | no generic converters :( |
20:59:35 | fowl | it seems to work though |
20:59:53 | dom96 | what about term rewriting macros? |
21:00:05 | dom96 | nah |
21:00:07 | dom96 | I guess not. |
21:01:30 | fowl | templates creating a converter doesnt run |
21:01:35 | fowl | can someone verify |
21:05:31 | Araq | fowl: sorry, I'm watching breaking bad |
21:05:41 | Araq | just fill in a bug report |
21:06:25 | dom96 | fowl: Seems to be working for me. |
21:06:28 | dom96 | What's your code? |
21:07:05 | gradha | Araq: changed fonts, everything still looks the same to me. How do you like `x´? |
21:08:49 | Araq | lol what's wrong with «» |
21:09:03 | gradha | I have no key to type that |
21:09:38 | dom96 | how the hell do you type � ? |
21:09:45 | gradha | ´? |
21:09:58 | gradha | That's the latin accent for a vowel, without the vowel |
21:10:05 | gradha | I can type it pressing space + accent key |
21:10:15 | gradha | no, the other way round |
21:10:21 | gradha | á ´ a |
21:10:28 | dom96 | Doesn't work for me :\ |
21:10:37 | gradha | yeah, that's the problem with these keyboards |
21:10:46 | gradha | they are all missing keys! |
21:11:18 | Araq | I'm gonna implement 'ptr T not nil' syntax |
21:11:39 | Araq | the compiler won't check the semantics though |
21:11:59 | Araq | it's a "bug" that it doesn't work yet |
21:12:16 | Araq | but I'll nevertheless spam reddit about nimrod's awesome notnull pointers |
21:12:30 | Araq | I call it the "D style" of language design :P |
21:12:42 | dom96 | haha |
21:13:34 | gradha | “talking like a sir” |
21:13:46 | gradha | “yep, that's nice” |
21:14:15 | gradha | “or maybe I'm talking in 3rd person?” |
21:14:59 | gradha | wait! «I can do it» |
21:15:04 | gradha | hehe, keyboards are funny |
21:15:18 | Araq | next version will also be numbered "2.6" for marketing reasons |
21:15:47 | gradha | what's the market for a 2.6 version of anything? |
21:16:14 | Araq | well it suggests that it's rock solid |
21:16:31 | gradha | I think you have to go beyond python, like 4000 at least |
21:16:54 | Araq | Nimrod 40K |
21:16:59 | Araq | I like it |
21:17:05 | gradha | «nice» |
21:17:28 | Araq | dude I can't tell if you're «serious» |
21:17:34 | Araq | stop it |
21:17:38 | dom96 | "Now with a compiler which renders the AST in 3D!" |
21:17:51 | gradha | «and sirly quotes» |
21:18:14 | dom96 | User's response: "This sucks. D can render it in 11D!" |
21:20:11 | fowl | https://gist.github.com/3996628 |
21:20:55 | dom96 | fails indeed. |
21:23:30 | Araq | btw, fowl, auto conversion between var and ptr/ref is planned |
21:23:45 | reactormonk | Araq, converters? |
21:25:03 | fowl | i know, i just dont want to wait for it :> |
21:25:53 | * | gradha quit (Quit: gradha) |
22:01:54 | reactormonk | does nimrod have warnings btw? |
22:04:06 | Araq | yes it does |
22:04:23 | Araq | but only a couple |
22:05:03 | reactormonk | is it implement as a condition? |
22:06:05 | Araq | lol no if you're speaking of lisp's condition system |
22:06:21 | reactormonk | total_word_tokens_of_would_be_recorded_documents_skipped_because_lacking_coordinates += |
22:06:23 | reactormonk | word_tokens_of_would_be_recorded_documents_skipped_because_lacking_coordinates |
22:06:25 | reactormonk | WTF. |
22:06:46 | fowl | lol |
22:07:01 | fowl | you never write trollcode? |
22:07:09 | reactormonk | http://sprunge.us/AGZD |
22:07:51 | reactormonk | this guy is smoking serious stuff... I want some of it too |
22:08:13 | fowl | lol |
22:08:53 | fowl | what language is that? val, value, print_line() dont look familiar |
22:09:05 | reactormonk | that's some of the worst part - some other parts are nicely documented |
22:09:16 | reactormonk | like abstract classes with a bunch of comments - that's nice |
22:09:19 | reactormonk | it's scala |
22:09:33 | fowl | ah |
22:09:45 | reactormonk | var is variable, val is static value |
22:09:59 | reactormonk | aka you don't change the reference of val |
22:10:09 | fowl | sure |
22:10:12 | fowl | var is var and val is let |
22:10:26 | reactormonk | kinda |
22:29:17 | Araq | http://dilbert.com/2012-10-21/ |
22:51:56 | dom96 | reactormonk: Where is that code from? |
23:01:11 | reactormonk | dom96, some research rpoject |
23:09:14 | dom96 | gah, the linux-x86 builder crashed :\ |
23:09:51 | Araq | yep |
23:27:20 | * | Boscop quit (Disconnected by services) |
23:27:21 | * | Boscop joined #nimrod |