00:00:10 | Varriount | fowl, or isNil[TPerson](personA) |
00:02:47 | fowl | huh? |
00:02:59 | Varriount | Or maybe not. |
00:03:52 | Varriount | Stop staring at me! I'm not crazy! Y-You're the one's w-who are crazy!!! *runs away sobbing* |
00:12:11 | * | q66 quit (Quit: Leaving) |
00:25:35 | * | ltbarcly joined #nimrod |
00:27:54 | * | ltbarcly quit (Client Quit) |
00:43:00 | * | Varriount quit (Ping timeout: 268 seconds) |
00:44:35 | * | Guest___ joined #nimrod |
00:47:13 | * | Guest___ quit (Client Quit) |
01:07:48 | * | ltbarcly joined #nimrod |
01:13:50 | * | brson quit (Ping timeout: 268 seconds) |
01:15:13 | * | brson joined #nimrod |
01:23:26 | * | Varriount joined #nimrod |
01:24:22 | * | DAddYE quit (Remote host closed the connection) |
01:25:37 | * | ltbarcly quit (Quit: Computer has gone to sleep.) |
01:45:47 | * | fowl quit (Quit: Leaving) |
01:53:45 | * | BitPuffin quit (Ping timeout: 252 seconds) |
02:26:25 | * | Varriount quit (Ping timeout: 272 seconds) |
02:28:45 | * | dyu joined #nimrod |
02:30:21 | * | dsrw joined #nimrod |
02:38:38 | * | ltbarcly joined #nimrod |
03:04:32 | * | wlhlm joined #nimrod |
03:10:51 | * | Varriount joined #nimrod |
03:23:49 | * | ltbarcly quit (Quit: Computer has gone to sleep.) |
03:30:23 | Varriount | So, I get that Nimrod allows you to explicitly pass procedure arguments as either references or copies, but what does Nimrod do if you don't explicitly specify? |
03:31:02 | Varriount | *specify whether to pass by reference or by copy |
03:33:05 | * | brson quit (Quit: leaving) |
03:50:25 | OrionPK | Varriount by value |
03:50:42 | OrionPK | unless it's a ref type |
03:50:50 | Varriount | So, a copy? |
03:50:53 | OrionPK | yes |
03:51:24 | Varriount | Ah, ok. You wouldn't also happen to know the underlying structure/mechanics of the sequence type? |
03:51:50 | OrionPK | nope, dont know the particulars of it.. I imagine it's a kind of linked list implementation |
04:09:25 | * | ltbarcly joined #nimrod |
04:10:53 | * | ltbarcly quit (Client Quit) |
04:18:21 | * | OrionPK quit (Quit: Leaving) |
04:21:14 | * | wlhlm quit (Ping timeout: 264 seconds) |
04:55:03 | Varriount | O_o |
04:55:27 | Varriount | importing the ropes package into my code caused the compiler to crash. |
04:56:01 | Varriount | And not even a sigsev fault or stack trace, a full blown crash the windows has to stop itself. |
05:08:33 | Varriount | Araq, according to Windows, the Nimrod compiler crashes with a stack overflow when compiling a script that imports the Ropes package |
05:09:45 | Varriount | Or maybe it's just my module >_> |
05:17:29 | Varriount | Ok, got it now. |
05:49:18 | * | shodan45 quit (Ping timeout: 245 seconds) |
05:56:34 | * | dyu quit (Disconnected by services) |
05:57:03 | * | dyu_ joined #nimrod |
06:27:16 | * | DAddYE joined #nimrod |
06:33:31 | * | DAddYE quit (Ping timeout: 245 seconds) |
06:48:14 | * | ltbarcly joined #nimrod |
07:05:18 | * | tumak quit (Ping timeout: 256 seconds) |
07:07:46 | * | tumak joined #nimrod |
07:30:30 | * | DAddYE joined #nimrod |
07:36:57 | * | DAddYE quit (Ping timeout: 252 seconds) |
08:33:29 | * | DAddYE joined #nimrod |
08:39:41 | * | DAddYE quit (Ping timeout: 246 seconds) |
08:45:26 | * | Associat0r quit (Quit: Associat0r) |
08:51:00 | * | ltbarcly quit (Quit: Computer has gone to sleep.) |
09:03:25 | * | krusipo quit (Remote host closed the connection) |
09:03:41 | * | krusipo joined #nimrod |
09:36:15 | * | DAddYE joined #nimrod |
09:43:03 | * | DAddYE quit (Ping timeout: 272 seconds) |
10:24:20 | * | shafire joined #nimrod |
10:24:21 | shafire | hi |
10:25:16 | shafire | what do you use in nimrod for tests? |
10:30:28 | * | q66 joined #nimrod |
10:38:55 | * | BitPuffin joined #nimrod |
10:39:20 | * | DAddYE joined #nimrod |
10:45:26 | * | DAddYE quit (Ping timeout: 240 seconds) |
10:47:26 | * | dyu_ quit (Quit: Leaving) |
10:53:43 | * | BitPuffin quit (Ping timeout: 246 seconds) |
11:42:16 | * | DAddYE joined #nimrod |
11:48:45 | * | shafire quit (Quit: Page closed) |
11:49:27 | * | DAddYE quit (Ping timeout: 272 seconds) |
12:00:12 | * | q66 quit (Quit: Leaving) |
12:45:38 | * | DAddYE joined #nimrod |
12:51:11 | * | q66 joined #nimrod |
12:51:49 | * | DAddYE quit (Ping timeout: 248 seconds) |
12:52:58 | * | Ricky_Ricardo joined #nimrod |
13:43:56 | * | q66_ joined #nimrod |
13:47:39 | * | q66 quit (Ping timeout: 252 seconds) |
13:48:20 | * | DAddYE joined #nimrod |
13:55:07 | * | DAddYE quit (Ping timeout: 248 seconds) |
14:01:42 | * | Endy joined #nimrod |
14:16:43 | * | Ricky_Ricardo quit (Quit: Ricky_Ricardo) |
14:20:54 | * | wlhlm joined #nimrod |
14:50:20 | * | guaqua quit (Read error: Connection reset by peer) |
14:50:29 | * | guaqua joined #nimrod |
14:51:19 | * | DAddYE joined #nimrod |
14:58:03 | * | DAddYE quit (Ping timeout: 248 seconds) |
15:04:09 | * | BitPuffin joined #nimrod |
15:12:43 | dom96 | shafire: doAssert + when isMainModule or the unittest module. |
15:33:02 | * | filwit joined #nimrod |
15:33:31 | filwit | hello |
15:33:50 | dom96 | hey filwit |
15:35:53 | filwit | so, I'm wondering if passing as 'var T' (vs just 'T') has any performance penalties on procs which don't set the parameter |
15:36:58 | dom96 | what's the point in passing 'var T' if you're not setting the param? |
15:37:11 | filwit | macro generated code |
15:37:24 | dom96 | ahh. |
15:37:37 | filwit | if there's a performance hit, i will make a different way through analysis or something |
15:37:46 | filwit | but if not, then it's less work for me :) |
15:37:50 | dom96 | I don't think so. |
15:38:00 | filwit | i would benchmark, but i haven't gotten that working yet.. |
15:38:12 | filwit | gunna try C's time.h later, but i don't care atm |
15:38:38 | filwit | okay, so thanks dom96 |
15:40:02 | filwit | btw dom96, Aporia's suggest features work pretty well in my basic tests |
15:40:04 | filwit | nice job |
15:40:10 | filwit | you and zahary did that? |
15:40:57 | filwit | unfortunately, it doesn't work with my macro stuff :( but i didn't expect it too. I imagine that would be much more complicated |
15:41:13 | dom96 | Not sure who did it exactly, I haven't changed anything in Aporia yet. |
15:41:18 | dom96 | (To do with suggest at least) |
15:41:38 | filwit | hmmm.. interesting.. |
15:45:31 | dom96 | nice to hear that you're still using it |
15:46:12 | filwit | well i'm not really :-\ |
15:46:16 | filwit | i use Kate mostly |
15:46:32 | * | gdos joined #nimrod |
15:46:33 | filwit | i made a Nimrod color scheme that works nicely |
15:46:55 | filwit | and Kate has the "100 mile view" like ... |
15:47:07 | filwit | i'm blanking on the name for some reason |
15:47:59 | dom96 | a mini map? |
15:48:08 | filwit | yes |
15:48:19 | filwit | damn, that's gunna drive me nuts. |
15:48:21 | filwit | haha |
15:48:22 | dom96 | I'm starting to consider rewriting Aporia in Qt |
15:48:31 | filwit | that would be cool actually :) |
15:49:01 | filwit | make it work better on Ubuntu platforms i think, and I've had better luck with KWin and Catalyst (in terms of performance) than others |
15:49:38 | filwit | i have a couple cool idea for Nimrod and Hymn |
15:50:45 | filwit | basically i want to build a game-editor, but, like Unity3D, the code editor would be agnostic, at least in the beginning |
15:51:10 | filwit | eventually it would be nice to have text editor tools inside the editor, like Blenders tools |
15:51:29 | filwit | and i've seen a lot of Qt applications which seem to be pretty modular |
15:51:56 | filwit | Kate and KDevelop share some of the same text-editor preferences |
15:51:59 | dom96 | The only thing that I dislike about Qt is that in my mind its associated with KDE and I dislike KDE. |
15:52:19 | filwit | yeah, that's how i was too for a long time |
15:52:42 | filwit | i still like Gnome's simple design, and it's spins like Cinnamon |
15:52:52 | filwit | Pantheon looks very nice |
15:53:01 | filwit | but i tried KDE and it worked the best for me |
15:53:30 | filwit | i actually enjoy all the features Dolphin has built-in, and I can setup my taskbar how i like it |
15:54:02 | filwit | and i really like Kate/KDevelop, i was really surprised how good they where since i'd never heard about them before. |
15:54:12 | * | DAddYE joined #nimrod |
15:54:33 | filwit | honestly, i hope the LXDE/Razor-Qt team can come up with a simple replacement to KDE |
15:54:55 | filwit | cause it is too bloated and ugly by default |
15:55:03 | dom96 | Wrapping Qt sounds like a lot of work :\ |
15:55:23 | filwit | haha, well, see, that's the thing.. |
15:55:26 | * | Associat0r joined #nimrod |
15:55:28 | filwit | was tempted to make my own UI |
15:55:38 | * | Associat0r quit (Changing host) |
15:55:38 | * | Associat0r joined #nimrod |
15:55:46 | dom96 | I'm tempted too. |
15:55:47 | filwit | it's an idea my brother and I have had for awhile |
15:55:56 | dom96 | In fact, I probably will. |
15:56:15 | filwit | hmm.. well maybe we should work together then |
15:56:30 | dom96 | sure. |
15:56:36 | filwit | thing is, i'm not sure our motives will be entirely the same |
15:56:55 | dom96 | exhu is already creating a UI in Nimrod. |
15:57:02 | filwit | oh really? |
15:57:04 | filwit | that's cool |
15:57:05 | dom96 | and there is also claro. |
15:57:30 | filwit | yeah, Nimrod is a great language to write a UI in i think |
15:57:39 | dom96 | I'm thinking of just embedding webkit in a desktop app and creating a UI using HTML :P |
15:57:42 | filwit | cause it's macros just make the syntax clean |
15:58:06 | filwit | bleh, i really have a bad taste for web tech right now |
15:58:24 | filwit | way too slow |
15:59:03 | dom96 | perhaps |
15:59:04 | filwit | btw, i played with the new 'type Foo = generic ..' thing |
15:59:38 | dom96 | oh? what are your thoughts? |
15:59:41 | dom96 | I still didn't get a chance. |
15:59:44 | filwit | that looks great, but is there any docs hidden somewhere at all yet? |
15:59:59 | dom96 | there is a forum thread about it |
16:00:14 | filwit | the one on the second page? |
16:00:23 | dom96 | yeah: http://forum.nimrod-code.org/t/208 |
16:00:41 | filwit | yeah i read through it, that's how i was able to do any tests at all |
16:00:53 | * | DAddYE quit (Ping timeout: 272 seconds) |
16:01:34 | filwit | generics look like a cool, much more powerful, replacement to interfaces |
16:02:31 | dom96 | yeah, I just hope that zahary has enough time to finish them. |
16:03:55 | * | Associat0r quit (Read error: Connection reset by peer) |
16:04:08 | * | shodan45 joined #nimrod |
16:04:16 | * | Associat0r joined #nimrod |
16:04:16 | * | Associat0r quit (Changing host) |
16:04:16 | * | Associat0r joined #nimrod |
16:05:31 | * | shodan45 quit (Read error: Connection reset by peer) |
16:05:36 | filwit | btw, does nimrod-code run off Jester, dom96? |
16:05:44 | dom96 | nimrod-code.org? |
16:05:48 | dom96 | no. |
16:05:49 | filwit | yeah |
16:05:56 | dom96 | forum/nimbuild does |
16:05:57 | filwit | but the forums do |
16:06:02 | filwit | okay |
16:06:17 | filwit | what are your plans for jester? |
16:06:39 | filwit | it looks pretty cool |
16:06:46 | dom96 | Optimise it as much as possible and release version 0.1 |
16:07:08 | filwit | where does it rate, in terms of performance? |
16:07:38 | dom96 | It's not great. It doesn't have any support for parallelisation. |
16:08:03 | filwit | ahh, yeah i see |
16:08:13 | filwit | nimrod forums run good though |
16:09:17 | dom96 | yeah, and I think it hasn't even been compiled in release mode :P |
16:10:51 | filwit | lol |
16:11:46 | filwit | so i'm pretty excited about something Nimrod makes easy, for a editor/app-engine |
16:12:49 | filwit | one thing i've had an idea about in the past, was drag-n-droppable behaviors in an editor (similar to Blender's constraints) |
16:14:29 | filwit | but the problem with that and any other language is how optimized they are to be useful in-game. if you have 5 "adjust position ..." properties on a character, that's 5 virtual calls per character, and that sux |
16:15:20 | filwit | but with nimrod's macros, i can just say "event update: ..." and then you can drag and drop any number of pre-packaged constraints or whatever from an editor |
16:15:40 | filwit | and at the end of the day, i have full control over how it gets combined in a sane way |
16:17:45 | filwit | nevermind, it's just something I was trying to do in D before, that was giving me much more of a head-ache |
16:18:05 | * | shodan45 joined #nimrod |
16:18:53 | dom96 | so what made you come back to Nimrod? |
16:19:55 | filwit | haha, chance |
16:20:14 | filwit | i dropped by to talk to Araq, can't remember why |
16:20:38 | filwit | and then got the idea i could port my app to Nimrod due to it's JS backend |
16:20:40 | Varriount | Meep! |
16:20:46 | Varriount | Good morning! |
16:21:04 | filwit | (i've no more plans to do that anymore, we've already switched to using Unity3D for it) |
16:21:22 | dom96 | ahh, how's Unity3D btw? |
16:21:27 | filwit | but it got me investigating Nimrod again, and I didn't realize you could do some of the things you can with macros |
16:21:50 | filwit | or rather, i didn't really see how they could fix most of the issues i was having before with Nimrod |
16:22:22 | filwit | and.. how clean of syntax they ultimately allow for |
16:22:34 | filwit | Unity3D's good |
16:22:52 | filwit | it's editor and prefab system make for easy hacking |
16:23:04 | filwit | it's one model i'm using for my design |
16:23:18 | dom96 | I noticed that it grew in popularity over the past year or so. |
16:23:39 | filwit | Unity3D is limited in some ways, but you can do most anything you want with a little work |
16:23:58 | filwit | yeah, it's cause it's just so damn easy to use an editor to wire together stuff |
16:24:20 | * | Varriount quit (Read error: Connection reset by peer) |
16:24:28 | filwit | when you're dealing with visual stuff i mean |
16:24:33 | * | fowl joined #nimrod |
16:24:45 | filwit | hey fowl |
16:24:57 | fowl | hi |
16:25:06 | filwit | forgot to say hi to Varriount, he left, now i feel like a dick |
16:26:06 | dom96 | he'll be back, not to worry |
16:26:39 | filwit | anyways, dom96, in short, I'm not porting my app over to Nimrod (it was just much more practical to go with Unity3D for many reasons), but I'm now thinking Nimrod is probably the best language to do a game-engine in |
16:27:56 | * | Varriount joined #nimrod |
16:27:59 | filwit | it's macros just give me so much control, and the syntax is arguably much better for script-kiddies too |
16:28:37 | fowl | oh sure filwit , take the easy route |
16:28:48 | filwit | lol, fowl |
16:29:03 | fowl | the road more traveled |
16:29:18 | * | Varriount prefers to help build roads |
16:29:45 | filwit | it wasn't just my decision either. we brought on another developer, and needed to work together with something we both understood wel |
16:29:47 | filwit | well* |
16:30:04 | filwit | hi, btw, Varriount |
16:31:30 | filwit | either way, my new nimrod project is more exciting to me anyways |
16:32:33 | filwit | so i'm honestly kinda glad i don't have to focus on getting Nimrod to play perfect in the web |
16:32:50 | * | fowl quit (Read error: Connection reset by peer) |
16:33:30 | * | fowl joined #nimrod |
16:43:12 | filwit | gtg, later folks |
16:43:15 | * | filwit quit (Quit: Leaving) |
16:52:25 | * | DAddYE joined #nimrod |
17:01:14 | * | ltbarcly joined #nimrod |
17:01:14 | * | ltbarcly quit (Client Quit) |
17:20:58 | Varriount | Ok, so, as one who has never used gdb before, how would I go about debugging nimrod? |
17:34:18 | fowl | Varriount, my suggestion is dont, backtrace should be enough |
17:34:54 | Varriount | fowl, possibly, but not in the case of a stack overflow that doesn't give a backtrace |
17:35:15 | * | dyu joined #nimrod |
17:35:27 | fowl | i dont know how to use gdb |
17:35:41 | Varriount | The compiler either crashes completly (Windows has to stop it) or hangs whenever it tries to compile my program. |
17:36:10 | Varriount | I've found the code that causes it to hang/crash, however I would like to try and find/fix the bug |
17:37:40 | * | ltbarcly joined #nimrod |
17:50:49 | * | gdos quit (Ping timeout: 272 seconds) |
17:52:37 | * | gdos joined #nimrod |
17:57:24 | * | brson joined #nimrod |
18:01:07 | * | brson quit (Client Quit) |
18:01:27 | * | brson joined #nimrod |
18:09:25 | * | gdos quit (Remote host closed the connection) |
18:10:53 | Araq | Varriount: I think windows shows the dreaded "app crashed" window when a process returns != 0 |
18:11:17 | Araq | so I think stack traces would work if only windows wouldn't be brain dead |
18:11:42 | * | ltbarcly quit (Ping timeout: 256 seconds) |
18:12:16 | Varriount | Araq, I looked at the dump file that windows created |
18:12:39 | Varriount | The error code suggested a stack overflow (though, knowing windows, I might be wrong) |
18:13:32 | Varriount | Araq, are there any known bugs involving the use of new()? |
18:15:32 | * | ltbarcly joined #nimrod |
18:18:40 | Araq | no |
18:20:59 | Araq | there is a known corruption with the latest version of nimbuild which I yet have to hunt down |
18:21:15 | Varriount | "Corruption"? |
18:21:34 | Araq | nimbuild runs the tester and then after some time crashes |
18:21:45 | Varriount | This isn't with nimbuild |
18:23:32 | Araq | well make a bug report, show me a gist etc. |
18:23:42 | Araq | I can't guess what's wrong ;-) |
18:25:36 | Varriount | Araq, here's the gist of the code -> https://gist.github.com/Varriount/7045833#file-dmp-nim-L73 |
18:26:18 | Varriount | That function is the one that causes the crash (found out by taking sections out of the program until it didn't crash) |
18:26:43 | Araq | lol that doesn't work :P |
18:26:53 | Varriount | ? |
18:27:11 | Araq | if you have a corruption you can't bisect to get the cause |
18:27:32 | Araq | that's why memory safety is so important |
18:28:02 | Varriount | Could you elaborate? |
18:29:43 | Araq | corrupt(); stuffThatAccessesMemory(); |
18:29:56 | Araq | you comment out stuffThatAccessesMemory(); |
18:30:04 | Araq | and say that's where the bug is obviously |
18:30:17 | Araq | but it's wrong, it merely triggered the segfault |
18:30:26 | Araq | the corruption happened in 'corrupt()' |
18:30:56 | Araq | line 128 is suspicous |
18:31:10 | Araq | result = newSeq[PDiff]() # should be that |
18:31:30 | Araq | no idea why it compiles |
18:31:40 | Varriount | Just so you know, that program doesn't actually compile - it isn't finished |
18:31:54 | Araq | oh alright |
18:31:56 | Varriount | It's nimrod.exe that is crashing |
18:31:59 | Araq | it's a compiler crash |
18:32:01 | * | dyu quit (Quit: Leaving) |
18:32:13 | Araq | well let's see what I get ... |
18:32:44 | Varriount | Maybe it's a case of Linux > Windows |
18:33:14 | Araq | I'm on windows don't worry |
18:37:30 | Araq | well I get the same |
18:39:37 | Araq | yup, stack overflow |
18:40:38 | Varriount | Right now I'm compiling nimrod with -d:useSysAssert and -d:UseGcAssert . And it just finished (after about an hour) |
18:44:25 | Araq | :O |
18:44:33 | Araq | awesome result! :-) |
18:44:44 | Varriount | Oh, and I also set CFLAGS to -g |
18:44:44 | Araq | this is a very good stress test |
18:44:54 | Araq | well I'm doing |
18:45:01 | Araq | koch boot --debuginfo --linedir:on |
18:45:15 | Araq | gdb nimrod.exe |
18:45:20 | Araq | run c dmp.nim |
18:45:20 | Varriount | Araq, it's slooooooow |
18:45:53 | Varriount | And it crashed. |
18:45:56 | Varriount | Program received signal SIGSEGV, Segmentation fault. |
18:45:56 | Varriount | 0x00000000004f3b6d in ?? () |
18:48:35 | Araq | Varriount: that's why I'm showing you how to debug |
18:49:17 | Araq | debugging nimrod is actually quite easy if you know how to do it |
18:49:26 | Araq | unfortunately nobody knows :P |
18:49:37 | * | Endy quit (Ping timeout: 272 seconds) |
18:50:12 | Varriount | Sorry, didn't mean to sound whiny. |
18:52:04 | Araq | well --debuginfo --linedir:on means gdb understands nimrod code |
18:52:13 | Araq | so I run the compiler through gdb |
18:52:42 | Araq | and gdb tells me there is an infinite recursion in line sigmatch.nim:527 |
18:53:30 | Araq | now that means we have some invalid type graph which involves 'ref' |
18:54:03 | Araq | but looking at you dmp datatypes I can't see any illegal type recursion |
18:55:19 | Araq | so I make the obvious modification: |
18:59:20 | * | fowl quit (Quit: Leaving) |
19:01:53 | * | DAddYE quit (Remote host closed the connection) |
19:01:56 | Araq | var typeRelCounter: int |
19:01:57 | Araq | proc typeRel(c: var TCandidate, f, a: PType): TTypeRelation = |
19:01:59 | Araq | if typeRelCounter > 200: |
19:02:00 | Araq | debug(f) |
19:02:02 | Araq | debug(a) |
19:02:03 | Araq | assert false |
19:02:05 | Araq | inc typeRelCounter |
19:02:20 | Araq | and then set typeRelCounter before any important invokation of typeRel |
19:02:27 | Araq | *set typeRelCounter to 0 |
19:02:38 | Araq | where "important" means "non-recursive" |
19:04:40 | * | DAddYE joined #nimrod |
19:04:57 | dom96 | looks like a hacky fix to me :P |
19:04:58 | Araq | and then I run "nimrod c dmp.nim" again |
19:05:18 | Araq | it's not a fix, dom96, it's an aid in debugging |
19:05:28 | dom96 | ahh |
19:05:42 | Araq | and then I notice I transformed the infinite recursion to an infinite loop |
19:05:55 | Araq | just thanks to typeRelCounter |
19:06:03 | Araq | which doesn't make any sense whatsoever |
19:06:47 | Araq | so I'm going to the kitchen getting some schnaps |
19:07:21 | Varriount | I'll get some water. I'm under 21, and anything with alcohol in it tastes like rubbing alcohol to me. |
19:07:52 | Araq | and curse my decision to study computer science ... |
19:08:20 | dom96 | Tea is the ultimate programmer's drink :P |
19:08:34 | Varriount | And sigh that your life-long dream of underwater basket weaving will never be fulfilled. |
19:24:26 | * | kryton9 joined #nimrod |
19:24:45 | kryton9 | Hi guys |
19:25:07 | Varriount | Hey! |
19:25:57 | * | circ-user-LkdVf joined #nimrod |
19:27:02 | kryton9 | I am expecting my order of a beaglebone black to arrive today.http://beagleboard.org/Products/BeagleBone%20Black |
19:27:34 | kryton9 | I want to setup an always on LAMP server with it for low cost and low power usage. |
19:27:41 | Varriount | And what do you plan to do with it? |
19:28:27 | kryton9 | Then get Nimrod working in Cloud9 IDE and then can work from any mobile device I have anywhere. |
19:28:46 | Varriount | That would be nice.. |
19:28:49 | kryton9 | That is the plan anyways. |
19:28:58 | circ-user-LkdVf | Varriount: your code has an infinite ref in line 43. PDiff = ref PDiff |
19:29:34 | Varriount | And I'm guessing this is Araq talking? |
19:29:41 | * | ltbarcly quit (Quit: Computer has gone to sleep.) |
19:31:35 | circ-user-LkdVf | no, just want to save sometime for Araq on tracing this infinite ref |
19:32:08 | dom96 | nice catch |
19:32:12 | Varriount | Might it be wise to set a recursion limit or something on the typeRel counter then, to notify the user of this bug? |
19:32:25 | Varriount | *typeRel procedure |
19:32:48 | dom96 | The compiler should be able to detect that the user is trying to create a type which is a ref of itself. |
19:33:00 | kryton9 | Gotta run, just wanted to pop into say hi... sounds like you guys are into making things better for us in Nimrod, so thanks, and bye. |
19:33:19 | Varriount | Hm. |
19:33:20 | * | kryton9 quit () |
19:34:04 | Varriount | Well, despite it being a silly error, at least I learned how to debug Nimrod. :) |
19:35:04 | dom96 | Silly perhaps but you found a bug in the compiler, that's always good. |
19:35:27 | Varriount | Nah, Araq found the bug, I just reported it. |
19:37:55 | Varriount | dom96, future warning for you. Compiling nimrod - -d:useSysAssert and -d:useGcAssert and with CFLAGS set to -g causes a major compiler slowdown |
19:38:20 | Varriount | IE, it took 30 minutes to compile simple script. |
19:38:34 | Varriount | *nimrod with |
19:38:51 | dom96 | yeah I know, but thanks for the warning. |
19:40:13 | * | Endy joined #nimrod |
19:47:36 | Varriount | This is probably a stupid question, but does passing a string into a function copy the entire string? or just a reference to the string? |
19:49:33 | * | circ-user-LkdVf quit (Remote host closed the connection) |
19:51:21 | Araq | oh lol |
19:51:51 | Varriount | Araq, was curc-user-LkdVf you? |
19:51:56 | Araq | nope |
19:52:03 | Varriount | Then... who was it? |
19:52:24 | Araq | some happy user of nimrod? |
19:52:49 | Varriount | Hm. Do programmers have a patron saint? |
19:55:24 | Araq | I don't think so |
19:56:40 | Araq | and things are passed by copy or by reference as the compiler sees fit |
19:56:58 | Araq | which is allowed thanks to the parameter passing semantics |
19:57:11 | Araq | so don't worry, pass strings, they won't get copied |
19:58:03 | Varriount | So, should I explicitly pair my various types (TPatch, TDiffSeq, etc) with reference types? |
19:58:25 | * | ltbarcly joined #nimrod |
19:58:26 | Varriount | I did it because I assumed, looking at other modules like asyncio, that it was needed. |
19:58:29 | Araq | that's what lots of code does and what many people dislike |
19:59:00 | Araq | also history plays a role here: type Foo = ref object is kinda new |
19:59:24 | Araq | also if you use 'ref seq' in gerenal you're doing it wrong ;-) |
19:59:44 | Varriount | So, should I have explicit reference types? |
20:00:30 | Araq | I still like it but we're going through some transition phase |
20:00:38 | Araq | but after 0.9.4 is out |
20:01:20 | Araq | so ... yeah use T/P like everybody else does except the whinners (hi DAddYE ;-) ) |
20:05:06 | * | Araq noticed that 'debug' a cyclic type graph might as well trigger the endless loop |
20:05:36 | * | ltbarcly quit (Ping timeout: 256 seconds) |
20:08:48 | * | ltbarcly joined #nimrod |
20:24:05 | * | ltbarcly quit (Ping timeout: 248 seconds) |
20:27:50 | * | ltbarcly joined #nimrod |
20:31:02 | Araq | also .. 'seq' is not a linked list at all, it's a growable array |
20:31:06 | * | Araq is reading logs |
20:31:30 | Varriount | Should I add that to the internal documentation? |
20:31:37 | * | Varriount is updating documentation |
20:32:14 | Araq | no to the manual |
20:32:46 | Araq | the internal docs are barely updated and nobody reads them |
20:32:54 | * | Varriount does... |
20:33:28 | Araq | usually when I say "nobody" and "everybody" I refer to the average joe reddit reader |
20:34:09 | Varriount | *shrug* I usually have a hard time expecting what the 'average' person would do. |
20:35:22 | Araq | oh that's easy, you simply extrapolate a dumber version of yourself :P |
20:37:40 | DAddYE | Araq: ahhahahah |
20:38:24 | Araq | coming back from lunch, DAddYE ? ;-) |
20:39:21 | DAddYE | Araq: not yet, I'm going to get a coffee |
20:39:33 | DAddYE | but yep almost done |
20:39:36 | DAddYE | how are things? |
20:39:59 | Araq | now I have 2 kids ... |
20:40:21 | DAddYE | yea I remember that |
20:40:23 | DAddYE | :D |
20:40:37 | * | Associat0r quit (Ping timeout: 248 seconds) |
20:40:39 | Varriount | Do I want to know...? |
20:40:47 | Araq | I don't think so, the 2nd is 1 day old ... |
20:41:12 | DAddYE | Araq: mmm, I'm telepathic |
20:41:17 | DAddYE | btw CONGRAAAAAAAAAAAAAAAAAAAAAAAAAAATS MANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN |
20:41:22 | DAddYE | male female? |
20:41:27 | Araq | female |
20:42:00 | Varriount | I would offer my services as a babysitter, but driving halfway across the US would really mess up my school schedule. |
20:42:15 | DAddYE | wooaaaaaaaa |
20:42:16 | DAddYE | name? |
20:42:24 | Araq | and driving to germany is even harder, Varriount |
20:42:45 | * | Varriount has lived in Germany |
20:43:20 | * | Varriount Garmisch Stuttgart, and swimming pools |
20:43:24 | Varriount | *misses |
20:45:24 | * | ltbarcly quit (Read error: Connection reset by peer) |
20:55:47 | Araq | how can miss german swimming pools, Varriount ? are they special in any way? |
20:56:02 | Varriount | Have you ever been to the US? |
20:56:21 | Araq | yes, but not in any swimming pool |
20:56:43 | Varriount | The swimming pools here are plain compared to ones where you live. |
20:58:13 | Varriount | Only one slide, if any. No warm pools, or sand-boxes. No high divingboards. |
20:58:31 | Araq | ok I see |
20:58:46 | Araq | so you miss the "Spaßbad" ;-) |
20:58:55 | Varriount | Yes. |
21:00:59 | Varriount | *facepalm* I should have realized you were German. I remember reading through the nimrod site when it was still a .de site... something like force7.de? |
21:01:08 | * | Endy quit (Ping timeout: 256 seconds) |
21:01:13 | Araq | yup |
21:01:48 | Araq | wow you took your time to decide you like to help :P |
21:03:17 | Varriount | I barely knew anything more than Python at the time. Even now, as it is, the bulk of my knowledge is theoretical (I do a /lot/ of reading) . |
21:04:21 | Varriount | I think the concept I got stuck on back then was dynamic dispatch, and the way nimrod lets you do both len("hello world") and "Hello world".len |
21:04:33 | Araq | that's great, I never read anything :-) |
21:05:06 | * | brson quit (Read error: Operation timed out) |
21:05:18 | * | brson joined #nimrod |
21:05:38 | Araq | it's always either full of greek symbols are too verbose, so I skim instead |
21:05:45 | Araq | *or too verbose |
21:06:16 | * | ltbarcly joined #nimrod |
21:08:06 | * | q66_ quit (Quit: Leaving) |
21:09:07 | Varriount | Araq, btw, my mother misses Glühwein |
21:09:40 | Araq | meh I never can drink more than 4 of those ... |
21:09:51 | Varriount | :p |
21:10:51 | Araq | or maybe I can but can't remember at the same time :P |
21:16:32 | * | ltbarcly quit (Quit: Computer has gone to sleep.) |
21:27:08 | * | ltbarcly joined #nimrod |
21:27:28 | Varriount | I;m going to go ahead and guess that Sequences are arrays that are grown by a certain size when more space is needed? |
21:27:40 | Varriount | Akin to Java lists? |
21:28:13 | Araq | yes except I have no idea about Java anymore |
21:29:28 | Varriount | It's ok, I don't think anyone has a clear idea about Java these days. They just tend to muddle through it. |
21:31:11 | Araq | well I will switch careers for good before working in Java again |
21:32:10 | * | OrionPK joined #nimrod |
21:33:11 | Araq | OrionPK: a seq is not a linked list |
21:33:34 | OrionPK | cool |
21:33:54 | OrionPK | i wasnt the one who wanted to know though |
21:35:42 | Araq | no you're the one spreading lies :P |
21:35:50 | OrionPK | lol, not lies, guesses :P |
21:35:58 | Araq | so it's much more important to tell you |
21:36:00 | OrionPK | I'm pretty sure I said I didn't know |
21:36:34 | Araq | try with an "educated guess" the next time :P |
21:36:47 | OrionPK | ooh burn :P |
21:37:01 | OrionPK | so you told me what it *isn't*, what is it, then, at a high level? |
21:38:28 | * | wlhlm quit (Ping timeout: 260 seconds) |
21:42:40 | Araq | a growable array |
21:42:46 | Araq | c++ calls it a "vector" |
21:43:05 | Araq | showing once more it can't even get the very basic terminology right |
21:43:29 | Araq | (vectors are of a fixed size in math) |
21:44:59 | * | ltbarcly quit (Quit: Computer has gone to sleep.) |
21:45:12 | OrionPK | gotcha |
22:06:57 | * | Amrykid quit (Excess Flood) |
22:07:04 | * | Amrykid joined #nimrod |
22:36:08 | Araq | Varriount: fyi the compiler checks for illegal recursions but this check is mixed with "sizeof" computations for types and for 'ref T' the size is clear without looking at 'T' ... |
22:36:34 | Araq | so the compiler doesn't catch your faulty type definition |
22:42:05 | * | Associat0r joined #nimrod |
22:42:28 | OrionPK | i dont know how, but microsoft is letting me download visual studio 2013 premium |
22:48:01 | * | dyu joined #nimrod |
22:51:26 | Varriount | O_o |
23:27:01 | * | DAddYE_ joined #nimrod |
23:27:01 | * | DAddYE quit (Read error: Connection reset by peer) |
23:29:55 | * | DAddYE_ quit (Remote host closed the connection) |
23:43:15 | * | DAddYE joined #nimrod |