00:01:48 | Scramblejams | I'm intrigued by the possibility of wrapped C++ libraries. Can anybody suggest a concise example of real code for that? |
00:02:27 | dom96 | https://github.com/Araq/Nimrod/blob/master/examples/c%2B%2Biface/irrlichtex.nim |
00:03:00 | Scramblejams | Is it just me or is Araq's output mind boggling? |
00:03:26 | dom96 | his output? |
00:03:30 | Scramblejams | Dude seems epically prolific. |
00:03:54 | Scramblejams | I know other people are contributing, but still. |
00:04:01 | dom96 | Yeah, he's a God. |
00:04:14 | BitPuffin | and the fact that he's been working on this for years and years :D |
00:04:25 | dom96 | The fact that he's doing it all in his spare time... |
00:04:33 | dom96 | with no financial support. |
00:04:36 | Scramblejams | Oh man I thought he was full time. Nutty. |
00:04:47 | BitPuffin | yeah it's a bit insane |
00:05:11 | Scramblejams | Nimrod deserves way more attention than it's getting. I spent quite a while looking around for a better C with Pythonic syntax and somehow missed it. |
00:05:51 | BitPuffin | preach it brotha! |
00:05:52 | BitPuffin | lol |
00:05:54 | BitPuffin | no but yeah |
00:05:55 | Varriount | Sadly, Nimrod has human dynamics to contend with. |
00:06:25 | BitPuffin | you mean tribalism? |
00:06:27 | * | mflamer joined #nimrod |
00:06:31 | Varriount | It's not well known. |
00:06:39 | BitPuffin | also tribalism |
00:06:52 | Varriount | In a way. |
00:07:31 | Varriount | The desire/action for someone to switch to or learn a new language must be great enough to pull them away from whatever language[s] they currently use. |
00:07:49 | Scramblejams | Well thanks for the help y'all. Gonna wrap me some enet tonight. Then some messagepack hopefully. |
00:08:04 | BitPuffin | Varriount: well a lot of them have also lived in that bubble for so long that they attack everything else |
00:08:17 | dom96 | Scramblejams: enet is already wrapper I think |
00:08:21 | Varriount | Scramblejams, if you need help with c2nim, I'll be here for another... 3-4 hours |
00:08:41 | dom96 | Scramblejams: Yep: https://github.com/fowlmouth/nimrod-enet/ |
00:09:04 | Scramblejams | Varriount: Thanks for the offer. I'll probably miss you. Gonna go home and play with my daughter for a few hours, then code. |
00:09:12 | Varriount | Anyone know if gcc has a way to *only* preprocess certain macros? Such as include? |
00:09:14 | Scramblejams | dom96: Haha awesome thank you, that'll give me a good tutorial. |
00:09:24 | Scramblejams | ...which I can apply to messagepack. |
00:09:46 | dom96 | :) |
00:10:04 | Varriount | Scramblejams, if you need to, send me a memo with memoserv |
00:10:07 | Demos | it should Varriount, check out 'man cpp' |
00:10:21 | Varriount | Demos, windows, remember? |
00:10:29 | Varriount | :P |
00:10:54 | Scramblejams | Varriount: Thank you very much. |
00:11:35 | Demos | ermmmm, any gcc distribution prolly comes with cpp |
00:11:41 | Demos | cpp --help? |
00:12:20 | Varriount | There's -E, but that preprocesses *everything* |
00:26:28 | * | mflamer quit (Ping timeout: 240 seconds) |
00:40:55 | * | DAddYE_ joined #nimrod |
00:40:58 | * | DAddYE_ quit (Remote host closed the connection) |
00:40:59 | * | DAddYE quit (Read error: No route to host) |
00:41:34 | * | DAddYE joined #nimrod |
00:49:07 | Varriount | So, I just figured out what happens when you run cat * > output.txt |
00:49:40 | dom96 | Your computer self destructs? :P |
00:50:05 | Varriount | Yes. From overeating. |
00:54:37 | * | DAddYE quit (Remote host closed the connection) |
00:55:10 | * | DAddYE joined #nimrod |
00:56:11 | * | mflamer joined #nimrod |
00:57:02 | mflamer | is typedesc a compile time only type? i.e. cannot be a part of a tuple |
00:57:35 | mflamer | that was a question and should have ended with ? |
00:58:10 | Varriount | mflamer, maybe? |
00:59:22 | * | mflamer quit (Remote host closed the connection) |
00:59:30 | * | mflamer joined #nimrod |
00:59:43 | * | DAddYE quit (Ping timeout: 272 seconds) |
01:00:11 | mflamer | I'm getting errors when I try to store typedesc like a runtime value |
01:01:43 | dom96 | yeah, I don't think that's allowed. |
01:03:39 | mflamer | now that I look closer in the manual, it's pretty clear. You can use them as normal values in macros though |
01:04:07 | Varriount | dom96, I used cat on all the files in libcef's capi folder |
01:04:47 | Varriount | Translating them all as individual files leads to import errors as twisted as a nest of cables. |
01:05:11 | * | Demos wants modules in C/C++ |
01:05:15 | Demos | for all our sakes |
01:05:21 | Varriount | ? |
01:05:39 | Varriount | Oh, you mean, in the languages. |
01:05:43 | Demos | yes |
01:06:13 | Varriount | *Demos want's C/C++ to have a modules-like feature |
01:06:46 | Varriount | I thought you meant you wanted nimrod modules to be written in C. |
01:07:02 | Demos | well it is coming soon(TM) to c++ :D and erm no |
01:07:03 | Varriount | Silly Syntactical Ambiguity. |
01:07:26 | Varriount | Demos, I bet nobody will use it. |
01:07:33 | Demos | oh.... people will |
01:07:41 | Demos | does anyone actually think headers are a good idea? |
01:07:45 | Varriount | Considering that C++ programmers are masochists. |
01:08:14 | dom96 | I've spoken of people who did argue that they are a good idea. |
01:08:26 | dom96 | *to |
01:08:30 | Demos | I like c++ actually, it is the most expressive language out there that is fast and has a mature library and tooling community (although tooling still sucks because c++'s syntax) |
01:08:31 | * | XAMPP quit (Quit: Drink all the Booze; Hack all the Things; Kill all the Humans;) |
01:08:37 | * | mah joined #nimrod |
01:08:46 | Demos | but headers are the work of the fucking devil |
01:09:09 | Demos | WHO THE HELL WOULD WANT TRANSITIVE INCLUDES |
01:09:57 | Varriount | Demos, the problem is that C++ does exactly what you tell it. |
01:10:38 | * | mflamer quit (Ping timeout: 240 seconds) |
01:11:01 | Varriount | Which is both good and bad. |
01:11:27 | Demos | the problem is that headers are dumb |
01:11:31 | Varriount | And on par with "Let's eat, Grandma" vs "Let's eat Grandma" |
01:12:13 | Varriount | Demos, don't forget that the standard for C++ ABI's is not to have one. |
01:12:31 | Varriount | Or rather, the standard is to not have a standard. |
01:12:44 | Demos | well that is fine |
01:12:55 | Demos | modules do not require an ABI |
01:12:57 | Varriount | Not when it comes to interoperability. |
01:13:03 | Demos | well yesh |
01:13:14 | Demos | they are likely to be platform dependent |
01:13:55 | Demos | and they are not hugely likely to be the units with which libraries are distributed |
01:14:15 | Demos | although is is very possible module metadata and whatnot could be put into dll/so files |
01:15:26 | Demos | one major motivation is to cut down on compile times |
01:15:48 | Demos | and as nimrod has shown having modules means that your compiler can act as a bit of a build system |
01:16:17 | * | hoverbear joined #nimrod |
01:17:52 | Varriount | Demos, quite frankly, unless a library is absolutely huge, it's easier on the user if you simply statically include it. |
01:18:02 | Varriount | Otherwise you tend to get dll hell. |
01:18:11 | Demos | oh yeah, I am all for static libraries |
01:18:27 | Demos | and .a/.lib files could also contain module metadata I spose |
01:18:55 | Varriount | Of course, being a Windows user, I tend to have the mindset that "things should just work", even at the cost of efficiency. |
01:19:35 | Demos | it really russels my jimmies when windows apps just plop a bunch of dlls in their install directory |
01:20:07 | Demos | shared libraries are not so bad when you have package management that you can query for their version |
01:20:31 | Varriount | Demos, I once had an ATI driver, during an upgrade, crash and corrupt my video driver. |
01:20:57 | Varriount | The crash was because it was using a dll that had been updated/placed by visual studio. |
01:21:10 | Demos | but anyways the modules perposal for C++ does not deal with shared/static linking. It is to prevent the fucking around with the linker stage of using libraries and to improve compile times. And yes, ATI drivers are pretty bad |
01:21:22 | Demos | oh god |
01:21:30 | Demos | see static linking should always be done |
01:21:44 | Demos | it ticks me off that VS defaults to shared linking of the runtime |
01:21:46 | Varriount | Demos, that incident taught me to stay away from ATI |
01:22:07 | Varriount | Be back in 5 minutes, reading book to little bro. |
01:23:47 | BitPuffin | can not be a long book |
01:24:08 | BitPuffin | could it possibly be the linagl feature list :D |
01:27:34 | Varriount | Back. |
01:27:50 | Varriount | It's a cardboard-type book on lego starwars |
01:28:07 | Varriount | He's 5 years old. |
01:29:31 | Demos | well I am playing battlefield, need to unwind after a day long fight with cmake/c++ |
01:29:50 | Varriount | Demos, did you win the fight? |
01:30:21 | Demos | not really |
01:30:48 | Demos | I found a bug in glfw's glfwConfig.cmake file, but nobody even seems to know that glfw has a config file... |
01:30:50 | * | zanoni quit (Read error: Operation timed out) |
01:31:19 | Varriount | If it helps, I've never been able to compile GCC, LLVM, or GTK on Windows. |
01:34:10 | * | q66 quit (Ping timeout: 246 seconds) |
01:34:14 | * | mflamer joined #nimrod |
01:35:14 | * | Associat0r joined #nimrod |
01:35:14 | * | Associat0r quit (Changing host) |
01:35:14 | * | Associat0r joined #nimrod |
01:35:22 | * | q66 joined #nimrod |
01:36:58 | * | Boscop quit (Quit: Boscop) |
01:41:26 | * | mflamer quit (Ping timeout: 240 seconds) |
01:42:14 | * | mah quit (Quit: Page closed) |
01:43:22 | * | mflamer joined #nimrod |
01:45:25 | Demos | well batttlefield sets itself as always-on-top for no reason... |
01:49:07 | * | mflamer quit (Ping timeout: 272 seconds) |
01:51:54 | * | mflamer joined #nimrod |
02:02:50 | * | DAddYE joined #nimrod |
02:05:18 | * | DAddYE quit (Remote host closed the connection) |
02:09:18 | * | mflamer quit (Ping timeout: 245 seconds) |
02:13:22 | * | xenagi joined #nimrod |
02:13:26 | xenagi | hey guise |
02:13:41 | xenagi | don't be too upset with me, but... i got a haircut and i look like a hipster |
02:14:01 | xenagi | woops wrong chat hehe |
02:14:06 | Demos | story of my life |
02:19:43 | * | sebcrozet quit (Ping timeout: 245 seconds) |
02:26:33 | * | ics quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
02:31:11 | * | XAMPP joined #nimrod |
02:41:04 | * | ics joined #nimrod |
02:45:37 | NimBot | Araq/Nimrod newasync 14f4a23 Dominik Picheta [+2 ±0 -0]: Epoll wrapper + selectors module. |
02:45:50 | BitPuffin | wtf Araq is up? |
02:46:32 | dom96 | Yeah, his name is also Dominik :P |
02:46:44 | BitPuffin | dom96: oh you have full commit access? |
02:46:56 | dom96 | yeah |
02:46:57 | BitPuffin | I thought it went through Araq |
02:47:02 | BitPuffin | cool! |
02:47:08 | BitPuffin | anyways goodnight :) |
02:50:25 | dom96 | Yeah, same here. |
02:50:27 | dom96 | 'night |
03:04:44 | * | DAddYE joined #nimrod |
03:10:50 | * | DAddYE quit (Ping timeout: 245 seconds) |
03:12:43 | * | brson quit (Ping timeout: 272 seconds) |
03:16:14 | * | hoverbear quit (Quit: Textual IRC Client: www.textualapp.com) |
03:26:48 | * | hoverbear joined #nimrod |
03:54:18 | * | xenagi quit (Quit: Leaving) |
04:19:42 | * | mflamer joined #nimrod |
04:20:52 | * | guaqua``` joined #nimrod |
04:21:30 | * | guaqua`` quit (Ping timeout: 252 seconds) |
04:24:14 | * | OrionPK quit (Read error: Connection reset by peer) |
04:25:47 | * | mflamer quit (Read error: Connection reset by peer) |
04:52:17 | * | zhtx joined #nimrod |
04:52:20 | * | zhtx left #nimrod (#nimrod) |
04:53:26 | Scramblejams | Anybody working on any erlang interop I should know about? :-) |
04:58:53 | * | Demos quit (Quit: Leaving) |
05:09:18 | * | DAddYE joined #nimrod |
05:14:46 | * | DAddYE quit (Ping timeout: 245 seconds) |
05:26:42 | * | hoverbear quit (Quit: Textual IRC Client: www.textualapp.com) |
05:31:02 | Scramblejams | Dumb babel question: I used it to install enet, but enet doesn't seem to be built. Do I need to do that myself? Or should babel handle that for me? |
05:58:21 | * | DAddYE joined #nimrod |
05:58:39 | * | DAddYE quit (Remote host closed the connection) |
05:58:45 | * | DAddYE joined #nimrod |
06:07:51 | * | mal``` quit (Ping timeout: 260 seconds) |
06:09:15 | * | Jackneill joined #nimrod |
06:18:52 | * | mal`` joined #nimrod |
06:31:47 | * | dyu joined #nimrod |
07:34:36 | * | sebcrozet joined #nimrod |
07:35:14 | * | sebcrozet quit (Client Quit) |
08:04:57 | * | delian66 quit (Ping timeout: 272 seconds) |
08:18:56 | * | delian66 joined #nimrod |
08:24:21 | * | dyu quit (Quit: Leaving) |
08:29:59 | * | DAddYE quit (Remote host closed the connection) |
08:54:38 | * | Araq_ joined #nimrod |
09:13:59 | Araq_ | Scramblejams: babel doesn't build and nor does it need to. the compiler builds what you import. |
09:31:17 | * | DAddYE joined #nimrod |
09:35:36 | * | DAddYE quit (Ping timeout: 245 seconds) |
09:40:34 | * | CarpNet joined #nimrod |
09:41:21 | * | DAddYE joined #nimrod |
09:45:50 | * | DAddYE quit (Ping timeout: 245 seconds) |
10:32:33 | * | DAddYE joined #nimrod |
10:36:53 | * | DAddYE quit (Ping timeout: 248 seconds) |
11:09:46 | * | dymk quit (Ping timeout: 245 seconds) |
11:13:47 | * | dymk joined #nimrod |
11:19:40 | * | faassen joined #nimrod |
11:28:31 | * | dymk quit (Ping timeout: 245 seconds) |
11:33:52 | * | DAddYE joined #nimrod |
11:36:18 | * | dymk joined #nimrod |
11:38:20 | * | DAddYE quit (Ping timeout: 245 seconds) |
11:45:13 | * | Araq_ quit (Read error: Connection timed out) |
11:45:54 | * | Araq_ joined #nimrod |
11:47:18 | * | guaqua``` is now known as guaqua |
11:51:34 | * | mal`` quit (Read error: Connection reset by peer) |
11:59:22 | * | mal`` joined #nimrod |
12:21:22 | * | BitPuffin quit (Read error: Connection reset by peer) |
12:21:38 | * | BitPuffin joined #nimrod |
12:22:50 | * | Araq_ quit (Quit: ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]) |
12:35:13 | * | DAddYE joined #nimrod |
12:38:56 | * | dymk quit (Ping timeout: 245 seconds) |
12:39:21 | * | DAddYE quit (Ping timeout: 245 seconds) |
12:57:09 | * | Ricky_Ricardo joined #nimrod |
13:15:50 | * | EXetoC joined #nimrod |
13:16:16 | EXetoC | BitPuffin: yup, I'm alive still |
13:16:28 | EXetoC | ~~~~~~~~~~~~ |
13:16:31 | dom96 | EXetoC: Welcome back!!!! |
13:16:37 | EXetoC | tnx |
13:16:44 | dom96 | what happened to you? |
13:17:35 | * | faassen quit (Read error: Connection reset by peer) |
13:17:41 | * | faassen1 joined #nimrod |
13:20:21 | * | dymk joined #nimrod |
13:21:05 | * | zanoni joined #nimrod |
13:21:52 | dom96 | EXetoC: you missed my blog post btw. |
13:22:52 | EXetoC | dom96: not much |
13:23:05 | EXetoC | I've still been visiting github and the forum actually |
13:23:28 | EXetoC | I only skimmed through it, but it seems like a good overview |
13:23:35 | * | OrionPK joined #nimrod |
13:34:41 | EXetoC | someone complained about the ~1ms pause time, claiming that 1/16th of a frame at 60fps is quite a lot. |
13:35:39 | EXetoC | I wonder how many people expect a GC to be able to run in such circumstances, while at the same time not experiencing any stutter |
13:36:10 | EXetoC | probably not too many |
13:36:34 | * | DAddYE joined #nimrod |
13:37:42 | dom96 | Interesting error: Error: expression ':delegator("evArr", es)' cannot be called |
13:40:51 | OrionPK | EXetoC how can he notice a GC pause if it's running at 60fps? |
13:41:10 | OrionPK | unless it's dropping frames and going down to 30 or something |
13:41:21 | * | DAddYE quit (Ping timeout: 272 seconds) |
13:46:18 | EXetoC | OrionPK: frame rate drops are noticeable |
13:49:04 | EXetoC | and that's all there is to it I guess. anyway, a 1ms pause shouldn't matter for most games |
13:49:24 | OrionPK | right, but if you keep the calc time under 16 mspf it shouldnt drop frames |
13:49:29 | EXetoC | and people who work on demanding games ought to know how to work around it anyway |
13:50:45 | dom96 | I think NewGuy was saying on reddit that 1ms is in fact an overestimation and that the GC can actually get it in the range of a couple hundred µs. |
13:53:45 | EXetoC | great. so it's even less of a worry. that ought to attract at least some developers eventually, once it has been validated in practice |
13:57:04 | Varriount | Anyone know how exactly to make a generalized string literal? |
14:00:38 | EXetoC | I don't know what that implies |
14:02:10 | EXetoC | found it in the manual just now |
14:05:27 | EXetoC | ok, so echo"\l123" == echo r"\l123" == echo "\\l123" |
14:05:56 | EXetoC | neat |
14:06:59 | EXetoC | not that you reduce typing much at all |
14:08:27 | * | io2 joined #nimrod |
14:09:55 | EXetoC | echo"""123""" |
14:14:47 | * | Ricky_Ricardo quit (Quit: Ricky_Ricardo) |
14:15:29 | EXetoC | also, if the line ends with """, and continues on the next line, then no preceding newline will be generated |
14:22:05 | C0C0 | EXetoC: fast GC surely attracted me :) |
14:34:02 | * | Araq_ joined #nimrod |
14:38:17 | * | Araq_ quit (Client Quit) |
14:38:26 | * | DAddYE joined #nimrod |
14:38:37 | EXetoC | aight, cool! |
14:43:19 | * | DAddYE quit (Ping timeout: 272 seconds) |
14:46:01 | EXetoC | cya |
14:46:03 | * | EXetoC quit (Quit: WeeChat 0.4.2) |
15:04:11 | * | Endy joined #nimrod |
15:06:13 | * | dyu joined #nimrod |
15:07:28 | NimBot | Araq/Nimrod newasync 38fb681 Dominik Picheta [+0 ±2 -0]: Epoll now works. |
15:16:30 | * | faassen1 is now known as faassen |
15:22:32 | * | MFlamer joined #nimrod |
15:26:55 | * | [1]Endy joined #nimrod |
15:29:01 | * | Endy quit (Ping timeout: 272 seconds) |
15:29:01 | * | [1]Endy is now known as Endy |
15:39:36 | * | DAddYE joined #nimrod |
15:45:36 | * | DAddYE quit (Ping timeout: 245 seconds) |
15:49:08 | * | wlhlm joined #nimrod |
16:08:56 | * | [1]Endy joined #nimrod |
16:11:09 | * | delian1 joined #nimrod |
16:12:36 | * | Endy quit (Ping timeout: 265 seconds) |
16:12:36 | * | [1]Endy is now known as Endy |
16:15:28 | * | delian66 quit (Ping timeout: 264 seconds) |
16:28:05 | Scramblejams | Araq: Thanks for the explanation re: babel. |
17:00:46 | * | jbwiv quit (Quit: Leaving.) |
17:01:53 | * | MFlamer quit (Remote host closed the connection) |
17:03:24 | * | EXetoC joined #nimrod |
17:05:51 | * | brson joined #nimrod |
17:12:18 | * | DAddYE joined #nimrod |
17:12:24 | * | DAddYE quit (Remote host closed the connection) |
17:12:38 | * | DAddYE joined #nimrod |
17:15:35 | OrionPK | is there a performance/memory difference between AppendStrStr and ConStrStr? |
17:16:09 | * | gradha joined #nimrod |
17:17:27 | * | dymk quit (Ping timeout: 260 seconds) |
17:20:24 | EXetoC | OrionPK: the former doesn't create a new string since it appends, and it might not allocate depending on the capacity |
17:20:39 | EXetoC | as you might be able to tell from the declarations in system.nim |
17:21:38 | OrionPK | yeah, they do different things obviously, was just wondering what the tradeoffs were. thanks |
17:25:35 | EXetoC | s/create/return |
17:25:55 | EXetoC | yeah sometimes you want an extended copy for whatever reason |
17:26:31 | * | dymk joined #nimrod |
17:26:59 | Varriount | Can anyone tell me why this regular expression -> "#pragma once" , would faile if searched for in a file? |
17:27:52 | gradha | using nimrod's regex? IIRC they eat whitespace by default |
17:28:07 | Varriount | Eat whitespace? |
17:28:51 | gradha | see http://nimrod-code.org/re.html#105 |
17:29:03 | gradha | now search for reExtended |
17:29:10 | gradha | "ignore whitespace and ``#`` comments" |
17:29:20 | gradha | so you have to pass in explicitly your own set of flags |
17:29:23 | gradha | I mean enums |
17:29:54 | Varriount | Is that mode the default? |
17:30:03 | gradha | it is for the re proc |
17:30:12 | Varriount | -_- |
17:30:16 | gradha | yeah |
17:30:20 | Varriount | *shakes fist* |
17:31:03 | BitPuffin | Hey EXetoC glad you aren't dead |
17:31:09 | BitPuffin | Actually I read what he said as something positive |
17:31:12 | BitPuffin | with the GC |
17:38:30 | BitPuffin | EXetoC: did you mean this guy? http://www.reddit.com/r/programming/comments/1pclbq/about_nimrods_features/cd14l63 |
17:41:47 | EXetoC | no, another response to that quote |
17:44:33 | BitPuffin | right |
17:44:41 | BitPuffin | because that one was positive |
17:44:44 | BitPuffin | which one do you mean? |
17:45:36 | BitPuffin | anyways even IF 1ms was too much then it isn't really that hard to cut it down |
17:46:00 | BitPuffin | Just find the biggest chunk that gets GC'd and manage it manually |
17:46:45 | BitPuffin | people just can't think one step beyond |
17:47:41 | gradha | or do like they do in java/android: "prealloc" global arrays for everything dynamic, with a bool flag for each slot being used |
17:48:09 | BitPuffin | gradha: you mean object pooling? |
17:48:17 | gradha | yes |
17:48:23 | BitPuffin | yeah that works just fine too |
17:50:41 | * | MFlamer joined #nimrod |
17:55:11 | EXetoC | that's basically what I said. You could step at respawn or when bringing up the menu for example |
18:02:46 | BitPuffin | EXetoC: for sure |
18:03:01 | BitPuffin | And I mean there is no stop the world thing going on |
18:03:08 | BitPuffin | and 1ms |
18:03:15 | BitPuffin | becomes 60ms per second |
18:03:27 | BitPuffin | humans can notice delays from 100ms and up I believe |
18:03:38 | BitPuffin | so that pause is not noticable |
18:03:42 | BitPuffin | and it is spread out |
18:03:50 | BitPuffin | into 1ms chunks |
18:04:00 | BitPuffin | if he wrote a game in nimrod he would probably not be able to tell |
18:04:18 | BitPuffin | and even if he needed to optimize it is not like nimrod is gonna stop you |
18:04:28 | BitPuffin | quite the contrary |
18:11:53 | EXetoC | 100ms over a second? that's a strange metric. anyway, my point was just that it might be better to spend a big part of that 1ms on something else, but not very often like I said |
18:11:57 | dom96 | Happy Halloween everyone! |
18:12:08 | BitPuffin | happy halloween OrionPK |
18:12:10 | BitPuffin | oops |
18:12:13 | BitPuffin | dom96 :D |
18:12:17 | EXetoC | oh ok |
18:13:00 | EXetoC | I had no idea |
18:13:13 | dom96 | :) |
18:14:02 | EXetoC | apparently it's the same day every year. how convenient |
18:15:28 | * | Associat0r quit (Quit: Associat0r) |
18:24:56 | OrionPK | happy nexus 5 day everyone! |
18:25:20 | * | dymk quit (*.net *.split) |
18:25:22 | * | guaqua quit (*.net *.split) |
18:25:22 | * | q66 quit (*.net *.split) |
18:25:22 | * | kakoo quit (*.net *.split) |
18:25:54 | MFlamer | Hi all, I'm planning on getting more familiar with macros. Can anyone suggest some existing code to look at for good examples? |
18:27:17 | dom96 | fowl has a couple of macros in his repo I think: https://github.com/fowlmouth/nimlibs |
18:27:23 | dom96 | You can also look at the htmlgen module |
18:28:03 | dom96 | The manual is also pretty informative: http://build.nimrod-code.org/docs/manual.html#macros |
18:29:05 | MFlamer | nice, I'll look at those modules. Thanks |
18:31:08 | * | CarpNet quit (Quit: Leaving) |
18:32:06 | gradha | anybody knows where osproc.running is implemented? |
18:34:04 | dom96 | gradha: Scroll down. |
18:34:22 | dom96 | in osproc.nim and you will find it. |
18:34:22 | gradha | yeah, I think I mistyped search |
18:34:59 | dom96 | "# Can't establish status. Assume running." |
18:35:10 | dom96 | That sounds like it should just throw an exception. |
18:38:03 | gradha | according to the man page it's valid, maybe the problem is ignoring the negative return values |
18:38:53 | gradha | its strange how much "var" is used, maybe because it is ancient code before let happened? |
18:39:17 | dom96 | yeah, that's precisely why. |
18:40:20 | * | [1]Endy joined #nimrod |
18:43:27 | * | Endy quit (Ping timeout: 272 seconds) |
18:43:27 | * | [1]Endy is now known as Endy |
18:44:06 | * | enurlyx joined #nimrod |
18:52:36 | * | dyu quit (Quit: Leaving) |
18:52:37 | * | [1]Endy joined #nimrod |
18:54:26 | * | q66 joined #nimrod |
18:55:33 | * | Endy quit (Ping timeout: 245 seconds) |
18:55:33 | * | [1]Endy is now known as Endy |
19:13:26 | OrionPK | babel needs a page on nimrod-code.org, listing packages and whatnot |
19:14:54 | gradha | make it so |
19:15:42 | gradha | dom96: so at 55, what's the next milestone? |
19:16:16 | dom96 | 60 is the current record |
19:16:50 | Varriount | Personally, if Babel is going to list packeges, should there be a section for packages that are "officially supported"? |
19:17:20 | gradha | uncertainty is always funnier |
19:18:01 | * | guaqua joined #nimrod |
19:23:46 | * | sebcrozet joined #nimrod |
19:25:57 | * | dymk joined #nimrod |
19:31:26 | OrionPK | I think some packages should be given official/recommended status over others, for sure |
19:31:34 | OrionPK | some are more alpha-ish and some are out of date |
19:32:51 | gradha | that makes sense if there are two or more packages implementing the same functionality |
19:37:28 | * | dymk quit (Ping timeout: 260 seconds) |
19:40:27 | * | dymk joined #nimrod |
19:52:11 | * | jbwiv joined #nimrod |
20:03:15 | * | enurlyx quit (Ping timeout: 272 seconds) |
20:05:25 | * | Endy quit (Ping timeout: 272 seconds) |
20:08:35 | * | zanoni quit (Ping timeout: 272 seconds) |
20:09:41 | * | zanoni joined #nimrod |
20:09:53 | EXetoC | I'm gonna make a better version of Nimrod with the help of pegs and stuff |
20:13:45 | * | Varaway joined #nimrod |
20:14:00 | gradha | stuff is good |
20:20:31 | EXetoC | ya |
20:21:39 | Varriount | Hm. |
20:22:00 | Varriount | After 3 days, my bouncer connects. :/ |
20:22:06 | Varriount | *shrug* |
20:22:19 | * | Varaway quit (Disconnected by services) |
20:23:18 | Araq | MFlamer: did I miss a pull request from you that fixes the 'distinct' bug for good? ;-) |
20:25:41 | Varriount | Hm. I wonder what happens if I feed a unicode path to nimrod's path procedures. |
20:26:02 | Araq | Varriount: it should work of course |
20:26:11 | * | Jackneill quit (Read error: Connection reset by peer) |
20:30:30 | * | EXetoC quit (Quit: WeeChat 0.4.2) |
20:32:35 | MFlamer | Araq: I did make the change we discussed yesterday and verified that it fixes the original issues I was having with it. |
20:32:46 | Araq | great |
20:33:26 | MFlamer | I pushed the chage to my fork which seems to add it to the existing conglomerated pull request I have going... |
20:38:48 | Araq | MFlamer: does it also fix the nested generics bug you encountered? |
20:40:04 | * | jbwiv left #nimrod (#nimrod) |
20:40:40 | MFlamer | Araq:Yes |
20:41:30 | MFlamer | I'm not sure about the bug you were reporting, though. Somethng about VM building |
20:41:53 | Araq | well it's the same regression gradha encountered |
20:41:58 | Araq | so lets see ... |
20:43:20 | NimBot | Araq/Nimrod master c1eb3e7 Mark Flamer [+2 ±1 -0]: LockFree Hash Table 0.1 |
20:43:20 | NimBot | Araq/Nimrod master cf1de6c Mark Flamer [+1 ±0 -0]: Mersenne twister random number generator |
20:43:20 | NimBot | Araq/Nimrod master f983737 Mark Flamer [+0 ±1 -0]: fix for Issue #629 Recursive generic types not working |
20:43:20 | NimBot | Araq/Nimrod master e1470ae Mark Flamer [+0 ±1 -0]: better fix for Issue #629 Recursive generic types not working |
20:43:20 | NimBot | 2 more commits. |
21:06:35 | Araq | wlhlm: I don't think gitignore can list every possible binary (what do you mean .exe extension? we don't need no extensions on Unix!) |
21:07:58 | Araq | also a "strip trailing whitespace" diff is annoying. They are unnecessary but also harmless. |
21:09:16 | gradha | Araq: did you start with .exe extensions under unix and were assaulted by the unix pedantic zealot force? |
21:09:46 | Araq | no, but I might start with .exe on unix |
21:10:08 | Araq | it's funny how badly git works on its home OS :P |
21:10:15 | gradha | no difference from .sh really |
21:11:30 | wlhlm | Araq: where did I wrote something about an .exe? There is no problem with .gitignore push, I just noticed that lib/pure/numeric is the only binary, that isn't in there and thought that it can be added (since there are already a lot of files in .gitignore) |
21:12:30 | Araq | wlhlm: you didn't but I allow myself to make fun of archaic-and-yet-praised-for-no-reason designs |
21:13:39 | * | EXetoC joined #nimrod |
21:16:41 | gradha | wlhlm seems willing, Araq you should ask him to provide a patch for .exe or moving files to some ignored subdirectory |
21:18:30 | wlhlm | Araq: if you don't care about trailing whitespace, then how about the merge of #646 that introduced carriage returns (shoud i make a seperate pull)? |
21:19:00 | * | enurlyx joined #nimrod |
21:19:13 | wlhlm | ahh, now I get this with the .exe - no, I'm currently running linux. |
21:20:24 | Araq | wlhlm: I dislike commits that touch every file because of some whitespace thing; once we break history this should be done |
21:21:02 | Araq | and we need to break history to get rid of the csources.zip files afaik |
21:21:36 | wlhlm | Araq: yeah, I understand that and wasn't aware, no problem. |
21:22:56 | Araq | gradha: the root cause is that "nimrod c -r" plays nice and doesn't produce an .exe extension on unix nor puts it into some hidden dir |
21:23:34 | OrionPK | it's weird how http line endings are consistent with windows and http path separators are consistent with unix |
21:23:42 | gradha | I blame nimrod then for not using extensions |
21:25:02 | EXetoC | on linux? |
21:25:09 | Araq | OrionPK: the reason is history I think. CR-LF was the common standard because Unix/C couldn't deal with it due to C's IO "abstraction" |
21:25:21 | Araq | s/because/before |
21:26:55 | gradha | EXetoC: linux is just so behind modern times |
21:27:25 | gradha | it won't have a standard clipboard until Linus embeds one in the kernel |
21:28:13 | wlhlm | gradha: I guess the kernel is nowhere behind, the userland maybe. |
21:34:39 | EXetoC | I don't have too many complaints |
21:34:47 | gradha | so like hint[LineTooLong]=off there could be a os.annoying.unix.extension = "exe" in config/nimrod.cfg? |
21:35:39 | EXetoC | standard clipboard? surely it could be some dbus-driven interface or whatever, but I haven't needed any complex clipboard solutions |
21:49:45 | * | OrionPK quit (Ping timeout: 250 seconds) |
21:49:55 | EXetoC | what are the issues? All I can think of is that clipboard code will have to be ported to wayland and what have you |
21:51:29 | * | newguy1 joined #nimrod |
21:54:26 | * | CarpNet joined #nimrod |
21:56:37 | gradha | EXetoC: can you point me to some documentation to read the current clipboard under linux? |
22:12:26 | CarpNet | if anyone's interested i solved the dynamic library linking problem i was having and it seems to be specific to ubuntu |
22:13:02 | CarpNet | it seems with recent (11.10+) versions you must use some gcc/clang compiler flags to get the libraries to link correctly |
22:13:36 | CarpNet | namely -Wl,--no-as-needed |
22:13:46 | CarpNet | more info here http://stackoverflow.com/questions/8140494/why-am-i-getting-a-gcc-undefined-reference-error-trying-to-create-shared-objec |
22:13:52 | CarpNet | and here https://github.com/Droggelbecher/Grail/pull/19 |
22:15:15 | Araq | that would be the 2nd ubuntu specific bug |
22:15:41 | Trixar_za | Ubuntu 12.04? |
22:15:51 | Trixar_za | God I hate having to work with it |
22:16:19 | EXetoC | gradha: I don't know. man xsetselectionowner? |
22:16:38 | CarpNet | i'm on yeah 12.04 |
22:16:49 | gradha | EXetoC: I'm not under linux, but it seems that would prevent the code from working without x |
22:17:01 | CarpNet | it's also happening on another ubuntu machine i have 13.04 |
22:17:33 | Trixar_za | Yeah, they tend to leave certain parts broken. I think they still haven't given Pulse proper settings |
22:17:55 | Trixar_za | But 12.04 has several compiling issues using gcc |
22:18:47 | CarpNet | it's odd because the stack overflow link says you can put the linker args after the file (object or .c file) arg and it should work, but i had to pass the -Wl,--no-as-needed and explicitly the dynamic library i had |
22:19:23 | * | OrionPK joined #nimrod |
22:19:59 | EXetoC | gradha: there probably isn't one like you said. either that, or it's some obscure thing |
22:20:30 | CarpNet | actually i'm just misunderstanding the -Wl arg, you can just use it right before a link arg and it works, so i can work around this for now with "nimrod --passl" |
22:24:38 | EXetoC | so yeah it's pretty bad for devs. hopefully the wayland devs will recognize the need for a universal clipboard service |
22:27:11 | gradha | MFlamer: I can confirm your patch fixes my pron downloading software, thanks |
22:27:54 | MFlamer | pron means porn I assume? In that case, by all means you are welcome! |
22:28:59 | gradha | ouch, now my youtube pron downloader is broken |
22:29:40 | gradha | ah, it's ok, I just need to make it deal with low quality vids |
22:36:00 | gradha | good night |
22:36:12 | * | gradha quit (Quit: bbl, need to watch https://www.youtube.com/watch?v=n7pXRdkdJxI again) |
22:36:52 | * | Boscop_ quit (Quit: Boscop_) |
22:43:42 | * | io2_ joined #nimrod |
22:44:43 | * | io2 quit (Ping timeout: 245 seconds) |
22:45:17 | * | newguy1 quit (Quit: Leaving) |
22:51:01 | NimBot | Araq/Nimrod master ed3673f Araq [+0 ±1 -0]: added $ for oids |
22:51:01 | NimBot | Araq/Nimrod master cd57c04 Araq [+0 ±4 -0]: GC: even more stress testing |
22:51:01 | NimBot | Araq/Nimrod master 5468d8f Araq [+3 ±22 -0]: Merge branch 'master' of github.com:Araq/Nimrod |
22:52:16 | Varriount | Hm. If programming languages were halloween candies, what would Java, C++, etc be? |
22:52:40 | MFlamer | Araq: Did you say you are actively working on changes to the compiler that effect macros and templates? |
22:53:20 | MFlamer | C++ would be that candy corn that is everywhere but no body really likes |
22:53:54 | Araq | MFlamer: the vm2 branch will fix many macro related bugs |
22:55:00 | Varriount | vm = virtual machine? |
22:55:05 | Araq | yes |
22:55:18 | MFlamer | I'm starting to get back to looking into macros, as I see several weakness in my current sumtype implementation that I believe can be tackeled with them |
22:55:54 | MFlamer | Shouls I use that branch? Or is it not ready |
22:56:47 | MFlamer | I did run into some bugs in master last time, and I think you said the new VM would solve them |
22:57:00 | Araq | yes I know |
22:58:16 | Araq | vm2 bootstraps and many macros work. but there are 2 new bugs with it |
22:59:17 | * | EXetoC quit (Quit: WeeChat 0.4.2) |
23:00:57 | MFlamer | OK, fuck it. I'll try the new branch. If I mess around in there will it help you for me to report bugs etc? |
23:01:35 | Araq | not really, chances are high you only report issues I already know :P |
23:03:54 | Araq | but feel free to mess with it |
23:04:47 | * | enurlyx quit (Quit: Nettalk6 - www.ntalk.de) |
23:05:37 | MFlamer | OK. Damn, I havent looked into term rewriting macros in a while, whole other world of untapped power there! |
23:05:53 | * | BitPuffin quit (Quit: No Ping reply in 180 seconds.) |
23:05:56 | * | CarpNet quit (Quit: Leaving) |
23:06:13 | * | olahol quit (Ping timeout: 248 seconds) |
23:06:17 | * | BitPuffin joined #nimrod |
23:06:20 | * | olahol joined #nimrod |
23:12:43 | * | CptRootbeer joined #nimrod |
23:18:00 | Araq | hi CptRootbeer welcome |
23:18:09 | CptRootbeer | Hi Araq. Thank you. |
23:18:15 | CptRootbeer | Just looking around. |
23:24:53 | * | io2_ quit () |
23:28:47 | * | faassen left #nimrod (#nimrod) |
23:41:57 | OrionPK | so looking at the sockets.nim select proc, it looks like it's removing fd's that have been triggered? |
23:42:31 | Araq | OrionPK: I think so but dom96 wrapped epoll recently too |
23:42:40 | OrionPK | Araq shouldnt it be the other way around? |
23:42:54 | OrionPK | only return back the fds that have new data |
23:43:35 | OrionPK | Araq I'm implementing the basic functionality of the "run" command for websockets right now, I'll work on integrating it w/ asyncio and http server later |
23:44:03 | Araq | awesome. you know the async stuff is still not stable API wise, right? |
23:44:12 | OrionPK | yeah |
23:45:04 | OrionPK | it's pretty damn convenient even now though, even if httpserver is buggy :) |
23:45:44 | OrionPK | from beej's network guide: When select() returns, readfds will be modified to reflect which of the file descriptors you selected which is ready for reading. |
23:45:57 | OrionPK | it looks like nimrod's select does the exact opposite; no? |
23:49:53 | Araq | no. it does the same |
23:53:01 | OrionPK | look at scgi |
23:53:11 | OrionPK | in the "next" procedure |
23:53:12 | OrionPK | if select(rsocks, timeout) == 1 and rsocks.len == 0: |
23:53:28 | * | MFlamer quit (Ping timeout: 245 seconds) |
23:54:14 | * | freezerburnv joined #nimrod |
23:54:55 | freezerburnv | How's it going all? |
23:55:02 | OrionPK | rsocks should contain the listening socket if there is a socket to accept |
23:55:14 | OrionPK | but this is checking if rsocks is empty before accepting a socket |
23:55:58 | * | xenagi joined #nimrod |
23:59:03 | * | sebcrozet quit (Ping timeout: 252 seconds) |