00:02:04 | dom96 | yeah, but the code changes are more important. |
00:08:45 | fowl | dom96, is it possible to write something generic using asyncdispatch |
00:09:45 | dom96 | haven't tried it |
00:10:11 | dom96 | should be possible |
00:27:40 | dom96 | 'night |
00:29:14 | Varriount | Goodnight. |
00:31:06 | * | oxful__ quit (Ping timeout: 240 seconds) |
00:32:10 | * | darkf joined #nimrod |
00:50:38 | * | DAddYE quit (Remote host closed the connection) |
00:55:47 | OrionPK | araq posted up the bug here: https://github.com/Araq/Nimrod/issues/1140 |
00:58:32 | * | q66 quit (Quit: Leaving) |
01:06:44 | * | Demos quit (Remote host closed the connection) |
01:27:33 | * | nequitans joined #nimrod |
01:37:56 | * | brson quit (Ping timeout: 255 seconds) |
01:38:39 | * | brson joined #nimrod |
01:56:47 | * | DAddYE joined #nimrod |
02:00:42 | * | nande quit (Read error: Connection reset by peer) |
02:01:20 | * | DAddYE quit (Ping timeout: 255 seconds) |
02:04:17 | * | nande joined #nimrod |
02:06:53 | * | brson quit (Ping timeout: 264 seconds) |
02:28:42 | * | DAddYE joined #nimrod |
02:55:13 | * | ehaliewicz joined #nimrod |
03:07:00 | * | flaviu quit (Remote host closed the connection) |
03:28:44 | * | DAddYE quit (Remote host closed the connection) |
03:33:37 | * | ehaliewicz left #nimrod ("ERC Version 5.3 (IRC client for Emacs)") |
03:35:49 | * | bjz quit (Quit: Textual IRC Client: www.textualapp.com) |
03:37:43 | * | bjz joined #nimrod |
03:47:40 | reactormonk | we need a name for a babel package, like `gem' in ruby |
04:10:16 | * | bbodi joined #nimrod |
04:11:02 | renesac | or python' egg |
04:29:37 | * | DAddYE joined #nimrod |
04:34:29 | * | DAddYE quit (Ping timeout: 264 seconds) |
04:45:58 | fowl | lets call them snoops and use snoop dogg's image and likeness in our advertising |
05:03:49 | * | xtagon quit (Quit: Leaving) |
05:05:13 | * | nequitans quit (Ping timeout: 240 seconds) |
05:07:55 | * | bbodi quit (Ping timeout: 252 seconds) |
05:25:59 | * | darithorn quit (Ping timeout: 276 seconds) |
05:29:09 | * | DAddYE joined #nimrod |
05:33:47 | * | DAddYE quit (Ping timeout: 276 seconds) |
05:35:44 | * | mxstirner joined #nimrod |
05:41:24 | * | ehaliewicz joined #nimrod |
05:41:52 | ehaliewicz | e |
05:42:47 | * | mxstirner quit (Ping timeout: 265 seconds) |
06:07:52 | * | DAddYE joined #nimrod |
06:20:53 | * | brihat joined #nimrod |
06:42:16 | * | dmac joined #nimrod |
06:42:21 | * | dmac quit (Read error: Connection reset by peer) |
06:42:48 | * | dmac joined #nimrod |
06:43:11 | * | dmac left #nimrod (#nimrod) |
07:27:17 | wan | reactormonk: we could call them 'brick'. When your project needs the whole tower, you'll need lots of bricks |
07:31:47 | Araq | I like it. Reminds me of Lego. |
07:45:55 | * | UnnamedUser joined #nimrod |
07:50:23 | * | UnnamedUser quit (Ping timeout: 265 seconds) |
08:01:31 | Skrylar | wan: i'm sure there is a mortar joke in there somewhere |
08:03:45 | Skrylar | I keep finding myself needing the program I'm trying to write. |
08:03:51 | Skrylar | this is an embarassing feeling |
08:18:49 | * | gXen joined #nimrod |
08:23:02 | * | io2 joined #nimrod |
08:35:42 | Skrylar | :| |
08:35:59 | Skrylar | so windows wants you to create a bitmap before you can ask what the size of a font's character is going to be in pixels. |
08:36:02 | Skrylar | yay design? |
08:40:51 | * | wooya joined #nimrod |
08:49:47 | * | ehaliewicz quit (Remote host closed the connection) |
08:50:01 | * | ehaliewicz joined #nimrod |
08:50:32 | * | DAddYE quit (Remote host closed the connection) |
08:50:47 | * | filwit joined #nimrod |
08:50:59 | * | DAddYE joined #nimrod |
08:52:49 | filwit | i updated the Kate support gist (https://gist.github.com/PhilipWitte/11196561) with some new colors (Monokai from Mono Develop which is my new favorite), and easier download (just save files and follow install guide and everything should work). |
08:53:05 | filwit | There's some screenshots too, of each color variant |
08:55:30 | filwit | so renesac (dunno if you're around), i know you where going to update. Just a heads up. |
08:55:30 | * | DAddYE quit (Ping timeout: 252 seconds) |
08:55:38 | filwit | Not sure who else was using Kate |
09:05:12 | * | ehaliewicz quit (Remote host closed the connection) |
09:05:56 | * | bbodi joined #nimrod |
09:07:36 | bbodi | hi all |
09:09:47 | filwit | hi bbodi |
09:11:44 | * | bjz quit (Ping timeout: 252 seconds) |
09:18:26 | * | wooya quit (Quit: Bye) |
09:21:42 | * | DAddYE joined #nimrod |
09:23:29 | * | DAddYE_ joined #nimrod |
09:25:54 | * | DAddYE quit (Ping timeout: 240 seconds) |
09:27:30 | * | DAddYE_ quit (Ping timeout: 240 seconds) |
09:31:01 | * | oxful joined #nimrod |
09:42:07 | * | faassen joined #nimrod |
09:44:32 | Araq | hi filwit, hi bbodi |
09:45:01 | bbodi | Hi Araq! |
10:05:10 | * | BitPuffin quit (Read error: Operation timed out) |
10:08:52 | filwit | hi Araq |
10:24:07 | * | DAddYE joined #nimrod |
10:28:19 | * | DAddYE quit (Ping timeout: 240 seconds) |
11:03:44 | * | nande quit (Remote host closed the connection) |
11:15:03 | EXetoC | Varriount: Araq still didn't want to merge that spawn test though just in case it hangs the tester, but there's no point in reverting I guess |
11:15:21 | EXetoC | it was considered adding a timeout though, right? |
11:17:32 | Araq | meh, now leave it merged |
11:17:39 | Araq | I'll be careful |
11:24:59 | * | DAddYE joined #nimrod |
11:26:57 | * | bjz joined #nimrod |
11:29:13 | * | DAddYE quit (Ping timeout: 240 seconds) |
12:05:27 | * | DAddYE joined #nimrod |
12:07:20 | * | DAddYE_ joined #nimrod |
12:07:20 | * | DAddYE quit (Read error: Connection reset by peer) |
12:11:30 | * | DAddYE_ quit (Ping timeout: 240 seconds) |
12:38:40 | * | io2 quit (Quit: ...take irc away, what are you? genius, billionaire, playboy, philanthropist) |
12:53:49 | * | darkf quit (Quit: Leaving) |
13:05:17 | filwit | what does {.compilerProc.} do? I just noticed that {.magic:"Foo".} will bind to 'nimFoo', but what i'm looking at (system/sysspan.spawn) is marked as {.compilerProc.} |
13:05:35 | filwit | what is that telling the compiler exactly? I don't see it in the docs anywhere |
13:07:58 | EXetoC | "sfCompilerProc, # proc is a compiler proc, that is a C proc that is # needed for the code generator" |
13:08:20 | * | DAddYE joined #nimrod |
13:09:26 | filwit | k. that doesn't help me much for some reason. but i'll think about it more. |
13:11:21 | Skrylar | filwit: based on EXetoC's description, sounds like its just a different type of magic |
13:11:32 | Skrylar | for deep internals |
13:12:42 | * | DAddYE quit (Ping timeout: 240 seconds) |
13:13:24 | filwit | well the {.compilerProc.} i'm looking at has a body |
13:13:53 | filwit | idk, i need some coffee of something. |
13:13:57 | filwit | or* |
13:15:20 | * | bbodi quit () |
13:27:01 | * | nequitans joined #nimrod |
13:42:26 | * | nequitans quit (Ping timeout: 255 seconds) |
13:42:38 | * | [1]Endy joined #nimrod |
13:44:00 | * | [2]Endy joined #nimrod |
13:47:17 | * | [1]Endy quit (Ping timeout: 252 seconds) |
13:57:46 | * | Demos joined #nimrod |
14:08:56 | * | DAddYE joined #nimrod |
14:10:49 | * | gXen quit () |
14:13:41 | * | DAddYE quit (Ping timeout: 252 seconds) |
14:16:08 | * | faassen left #nimrod (#nimrod) |
14:16:17 | * | filwit quit (Quit: Leaving) |
14:28:16 | OrionPK | araq got enough info to look into that issue? |
14:28:34 | OrionPK | (or too much info?) |
14:53:41 | * | Demos quit (Ping timeout: 264 seconds) |
15:01:54 | * | nequitans joined #nimrod |
15:03:22 | * | brihat left #nimrod (#nimrod) |
15:03:26 | * | BitPuffin joined #nimrod |
15:09:49 | * | DAddYE joined #nimrod |
15:13:54 | * | DAddYE quit (Ping timeout: 240 seconds) |
15:17:58 | * | nequitans quit (Remote host closed the connection) |
15:18:10 | * | brihat joined #nimrod |
15:18:11 | * | brihat1 joined #nimrod |
15:18:12 | * | brihat1 quit (Read error: Connection reset by peer) |
15:18:37 | * | brihat quit (Client Quit) |
15:25:41 | * | darithorn joined #nimrod |
15:33:08 | * | Trimsty joined #nimrod |
15:40:59 | * | bbodi joined #nimrod |
15:58:49 | * | untitaker quit (Ping timeout: 240 seconds) |
16:04:40 | * | untitaker joined #nimrod |
16:07:55 | * | bbodi quit (Ping timeout: 252 seconds) |
16:08:06 | * | bbodi joined #nimrod |
16:08:07 | * | bbodi quit (Client Quit) |
16:10:25 | * | DAddYE joined #nimrod |
16:14:53 | * | DAddYE quit (Ping timeout: 252 seconds) |
16:21:20 | * | q66 joined #nimrod |
16:21:20 | * | q66 quit (Changing host) |
16:21:20 | * | q66 joined #nimrod |
16:29:36 | * | Trimsty quit (Remote host closed the connection) |
16:34:40 | * | brson joined #nimrod |
16:39:35 | * | shodan45 joined #nimrod |
16:42:37 | * | bbodi joined #nimrod |
16:43:38 | * | uvelichitel joined #nimrod |
16:52:20 | * | DAddYE joined #nimrod |
16:56:51 | * | foodoo joined #nimrod |
16:57:35 | * | BitPuffin quit (Ping timeout: 252 seconds) |
16:57:58 | * | brson quit (Ping timeout: 240 seconds) |
17:03:11 | * | BitPuffin joined #nimrod |
17:13:16 | * | brson joined #nimrod |
17:26:03 | * | CarpNet quit (Quit: Leaving) |
17:26:42 | Varriount | Is there any system on which a double slash "//" in a path means anything |
17:27:58 | * | brson quit (Ping timeout: 265 seconds) |
17:30:17 | OrionPK | \\ on windows means something.. |
17:30:51 | OrionPK | double // means implicit http(s) in browsers |
17:32:31 | * | brson joined #nimrod |
17:34:01 | Varriount | OrionPK: But on Linux/Posix/Mac, is "/User/Home" the same as "/User//Home"? |
17:38:44 | uvelichitel | Varriount: on my mac 'ls /Users//uvelichitel/' works same way, at least |
17:41:51 | Varriount | uvelichitel: Thanks. I'm trying to complete my path normalization procedure. |
17:42:24 | Varriount | I don't suppose there's a list of paths I could run my procedure through to test it? |
17:44:08 | uvelichitel | Varriount: Would it understand . .. ~ ? |
17:45:09 | Varriount | '.' and '..', yes. I haven't thought if it should expand '~'. What does '?' do? |
17:47:22 | uvelichitel | ? means my sentence is literally a questions. ~ means /home |
17:54:08 | uvelichitel | Varriount: Also case_sensitivity and blank_spaces treated differently on systems |
17:55:53 | Varriount | uvelichitel: I'm not going to handle that. The procedure isn't meant to validate whether a path is correct, just simplify as best it can. Do you have any reasons against this? (I'm genuinely asking your opinion) |
17:57:15 | reactormonk | wan, ok |
17:57:34 | * | BitPuffin quit (Quit: WeeChat 0.4.3) |
17:57:35 | reactormonk | sounds good to me >:) |
17:57:50 | reactormonk | dom96, request to change packages.json to bricks.json |
17:58:12 | Varriount | Apropos of nothing, the nimrod stdlib really needs to have some sort of consistant style, for things like multi-line parameter declarations, etc. |
17:58:19 | uvelichitel | Varriount: I'd be satisfied with case insensitive and blank spaces not allowed |
18:00:31 | reactormonk | Varriount, you don't have to do all the fancy ../ path resolving, the OS does that for you |
18:01:10 | Varriount | reactormonk: Only when you have an actual file |
18:04:21 | * | BitPuffin joined #nimrod |
18:11:07 | uvelichitel | Varriount: seems blank spaces worth a reasoning. Disallowing it you make '/Library/Application Support' invalid on my mac. But parsing paths with blank spaces not trivial task for me |
18:14:05 | Araq | hmm what's the problem really? |
18:14:43 | Araq | "/foo/abc".relativeTo("/foo") == "abc" |
18:14:53 | Araq | spaces are irrelevant |
18:17:24 | reactormonk | Araq, "/foo//abc".relativeTo("/foo") == "abc" |
18:18:17 | Araq | who cares if "/foo//abc" is handled properly. I've never encountered a path like this in my lifetime |
18:18:27 | reactormonk | Araq, I did. A lot. |
18:18:30 | dom96 | reactormonk: why? |
18:18:33 | Araq | what? |
18:18:38 | Araq | why? |
18:18:55 | reactormonk | Araq, quirked configs, mostly. |
18:19:09 | reactormonk | or strange path handling |
18:19:28 | reactormonk | or people just not giving a fuck because they should be equivalent |
18:20:20 | reactormonk | uvelichitel, can "/" be part of a file name on a mac? |
18:20:37 | uvelichitel | no |
18:21:27 | reactormonk | good, so I'd run a replace // with / over a path until it doesn't find anything anymore |
18:23:08 | reactormonk | Araq, also for your path, do you want to distinguish between relative and absolute path? |
18:23:22 | reactormonk | s/path/path object/ |
18:27:43 | Araq | why would I? 'relativeTo' returns a relative path |
18:28:29 | Araq | OrionPK: your bug report is just fine |
18:28:39 | Araq | we need a "regression" tag for issues btw |
18:29:03 | Araq | "regression" and "blocker" |
18:29:58 | reactormonk | Araq, took you longer to type that than to go over to github and create them |
18:30:33 | Araq | not true, I'm on the wrong machine |
18:31:03 | OrionPK | alright |
18:32:16 | dom96 | 'blocker'? |
18:32:28 | dom96 | how is that different from 'showstopper'? |
18:32:38 | Araq | I dunno lol |
18:32:50 | Araq | "showstopper" # can't release with this bug |
18:33:00 | Araq | "blocker" # this is blocking my nimrod project |
18:38:18 | uvelichitel | Does compiler typecheck multi-method invocation? |
18:38:55 | Araq | yes |
18:48:26 | bbodi | Araq: those new tags are good ideas! I have a project (https://github.com/bbodi/WhiteStag) that is suspended because of some compiler errors. Those error are so weird and complex that I unfortunately could not even reproduce them. |
18:49:52 | Araq | argh |
18:50:12 | Araq | well tell me more. runtime crashes or compiler crashes? |
18:50:47 | * | Demos joined #nimrod |
18:51:39 | bbodi | modify: I can reproduce it in my program, but I could not create a simpler example where the error could oocur. |
18:54:36 | Araq | bbodi: well make a bug report anyway |
18:55:29 | bbodi | The first and the most weird is a runtime crash. You can reproduce it by using TOption[int64] at mindy/types.nim:16 (and of course modify the other part of the code where the new int64 type causes compile time error). After running mindy.nim, then at the mindy.nim:65 the program crashes. Its like somehow at WhiteStag\view.nim:459 the child variable not a View, but a TOption[int64]. Ok, I report |
18:55:29 | bbodi | this sentence then. |
18:56:28 | bbodi | anyway, its not a big problem for me that the project is suspended, I decided to learn the compiler intrinsic and help developoing Nimrod itself until it will be capable of compile my suspended project :) |
18:59:43 | Varriount | reactormonk: The simplifyPath procedure combines multiple '/' into just one '/' |
19:00:34 | reactormonk | bbodi, the unittest fails to compile :-/ |
19:01:34 | bbodi | it needs SDL.dll. tomorrow I will create an Issue for my bug, and it will include a description hot wo compile it with the necessary files |
19:02:12 | Varriount | bbodi: By the way, that project looks awesome. |
19:02:32 | Araq | let username = cast[PUTFString](switchUserComboBox.data) # what's PUTFString ? |
19:02:34 | Araq | if it's a 'ref' that is almost certainly wrong |
19:03:08 | reactormonk | bbodi, ... on linux. |
19:03:36 | bbodi | oh, it was only tested on windows, sorry |
19:03:37 | reactormonk | /tmp/WhiteStag/WhiteStagEditor/sdlengine.nim(446, 5) Error: undeclared identifier: 'OpenClipboard' |
19:04:04 | bbodi | you are right, currently it doesnt run only on windopws |
19:04:26 | bbodi | Araq: you are right, PUTFString is a ref. why is it wrong? |
19:09:16 | bbodi | Sorry guys, I have to go to sleep, it's late here :) good night, meet tomorrow |
19:09:21 | * | bbodi quit () |
19:10:30 | * | Amrykid quit (Ping timeout: 246 seconds) |
19:10:55 | Araq | bbodi: well it's an edge case, the underlying 'data' is a 'ref TObject' so that should be fine for your PUTFString |
19:10:56 | * | JStoker quit (Ping timeout: 246 seconds) |
19:12:56 | * | dom96 quit (Ping timeout: 246 seconds) |
19:13:00 | * | JStoker joined #nimrod |
19:13:03 | Araq | gah |
19:13:03 | Araq | oh well |
19:13:09 | * | Amrykid joined #nimrod |
19:15:09 | * | dom96 joined #nimrod |
19:16:50 | Varriount | Araq: Should I take into account the possibility that a directory seperator will be more than one character? |
19:17:07 | Araq | no |
19:17:14 | Araq | keep it fast please |
19:23:57 | reactormonk | Varriount, whut? Is that even the case somewhere? |
19:25:30 | reactormonk | Varriount, every unix-based OS has "/", windows has its "\", and I don't know of anything else |
19:26:15 | reactormonk | Varriount, and make the path separator static. |
19:26:32 | Varriount | reactormonk: It already is. See os.nim |
19:26:38 | reactormonk | Varriount, perfect |
19:27:09 | reactormonk | Varriount, not sure if you want to subset between relative and absolute path |
19:28:39 | Varriount | reactormonk: It will fail if the path starts with a ".." |
19:29:25 | reactormonk | Varriount, ".." is a valid path |
19:30:09 | * | io2 joined #nimrod |
19:33:00 | Araq | "As mentioned in my post, the memory footprint for 12 million concurrent connections is about 36 GB. " |
19:33:03 | Araq | lol |
19:33:47 | Varriount | Araq: What's funny about that? |
19:34:20 | reactormonk | Varriount, that's ~3M per connection |
19:34:30 | Varriount | O_o |
19:34:41 | reactormonk | that's nothing, we had 300MB per page rendered at my old company with rails |
19:35:11 | Varriount | Araq: Is he/she using thread-per-connection model? |
19:35:13 | reactormonk | we considered harakiki (aka no GC, just kill the process after each render) and it went to about 1GB :-/ |
19:36:56 | Demos | webscale |
19:37:13 | Varriount | How much should I rely on compiler optimization? |
19:38:25 | * | BitPuffin quit (Ping timeout: 240 seconds) |
19:39:36 | Araq | Varriount: he doesn't say |
19:39:46 | Araq | apparently he uses Java though |
19:40:10 | Varriount | Ah. That puts things in perspective. |
19:40:25 | Araq | though the memory footprint is only Linux's overhead if I read the article correctly |
19:40:33 | Araq | http://mrotaru.wordpress.com/2013/06/20/12-million-concurrent-connections-with-migratorydata-websocket-server/ |
19:41:19 | Varriount | Araq: If you want a chuckle at just how badly Minecraft is coded, read this -> http://corbinsimpson.com/entries/take-a-bow.html |
19:42:15 | * | BitPuffin joined #nimrod |
19:47:19 | Demos | thread-per-client sounds like a good way to destroy your scheduler... hm network programming is all wierd |
19:48:00 | Varriount | Demos: Well, unless you have something like fibers, or io completion ports. |
19:48:51 | Varriount | Even then, I would think a thread per, say, 100 clients would be better, as there's less memory taken up by the thread itself per client. |
19:50:20 | Demos | seems like a work-queue type deal. Each thread doing some stuff, then fetching another connection to do more stuff with |
19:51:24 | Araq | "destroy your scheduler"? it's O(1) |
19:51:49 | reactormonk | Demos, that's what unicorn does (ruby webserver). For holding connections open, you usually use nginx to handle slow connections etc. |
19:52:13 | reactormonk | so you could solve that minecraft problem with a proxy which receives slow data then passes it on |
19:57:26 | * | filwit joined #nimrod |
20:05:30 | dom96 | Varriount: Writing a Minecraft client lib in Nimrod sounds like a fun project. |
20:06:12 | dom96 | Araq: how goes the hunting for the async mem leak? |
20:09:45 | dom96 | Varriount: Think you could try to hook up fsmonitor to the new async module? |
20:10:13 | reactormonk | dom96, how do you hunt such a thing? reference counting? |
20:10:34 | dom96 | reactormonk: no idea, that's why i'm relying on Araq to do it heh |
20:12:39 | * | flaviu joined #nimrod |
20:13:23 | * | BitPuffin quit (Ping timeout: 252 seconds) |
20:15:22 | * | BitPuffin joined #nimrod |
20:18:24 | EXetoC | Araq: the vm turns "echo int16(42349)" into an nkHiddenStdConv tree which ends up as an nkIntLit (no error). where do I look |
20:18:53 | EXetoC | I should try endb again. I did attempt to use some trace pragma bug that didn't work. I'll try stepping this time |
20:19:01 | * | nande joined #nimrod |
20:28:06 | Varriount | If anyone can get this path simplification procedure working, I'd be eternally grateful: https://gist.github.com/Varriount/11268428 |
20:28:10 | * | brson quit (Ping timeout: 276 seconds) |
20:28:17 | Varriount | I have to go to class. :< |
20:32:05 | * | foodoo quit (Ping timeout: 264 seconds) |
20:41:02 | * | Matthias247 joined #nimrod |
20:42:54 | Araq | filwit: a "compilerproc" is a proc that the codegen calls. kind of the opposite of "magic" |
20:43:20 | Araq | of course it needs to have an implementation as that it is its whole point |
20:43:49 | Araq | the codegen delegates the work to the proc, so instead of generating a huge blob of code, it generates a call |
20:45:52 | filwit | i'm still missing something important.. probably about how things are being compiled. But don't really want to figure it out right now. |
20:46:03 | Demos | Varriount: wait, why would you want to have that function output /Ben/? that is not even a valid path it looks like, or it is not gareenteed to be on a given system |
20:46:50 | filwit | Araq: btw, 'using' seems to be buggy when used with getAST() |
20:47:07 | filwit | Araq: trying to isolate for either a report, or fix myself |
20:52:47 | flaviu | filwit: This is offtopic, but I'd like to nitpick about the word 'non-ast comment' because block comments can exist even if they stay part of the AST |
20:57:32 | filwit | flaviu: you mean like C's /* */ ? |
20:58:01 | filwit | i'm not sure exactly what you're responding to that i said |
20:58:32 | * | EXetoC quit (Quit: WeeChat 0.4.3) |
20:58:52 | * | EXetoC joined #nimrod |
20:59:43 | flaviu | 02:35:31 filwit: those things need to be fixed, and I really want non-AST comments so we can Ctrl-D blocks easily |
21:00:04 | EXetoC | รค |
21:00:19 | filwit | flaviu: the point is, currently (and i don't know of any plans to change this), there's only one kind of comment in Nim, the '#' mark, and that symbol must appear at the beginning of each line.. which makes text-editor support for this difficult since Nim's indent-sensitive style also applies to the '#' placement |
21:00:41 | flaviu | No, I understand your point, but I'm just nitpicking your word choice |
21:01:03 | filwit | okay... |
21:01:37 | reactormonk | filwit, any different in python? |
21:01:50 | flaviu | I don't want to get into another argument about multiline comments. I'm just saying that multiline comments are not incompatible with comments being in the AST, it is possible to have both |
21:03:45 | Araq | ah good topic |
21:03:54 | Araq | I changed comment handling in the compiler |
21:04:04 | Araq | so only documentation comments are part of the grammar |
21:04:09 | Araq | however then code lik: |
21:04:16 | Araq | else: |
21:04:20 | Araq | # do nothing |
21:04:25 | Araq | doesn't compile anymore |
21:04:34 | filwit | probably shouldn't anyways |
21:04:59 | filwit | isn't this why nil statements where depreciated in favor of discard? |
21:05:00 | Araq | well the compiler itself uses that ofc |
21:05:08 | filwit | ah, right |
21:05:26 | filwit | were* |
21:05:59 | * | filwit does not know english and it's his only language.. |
21:06:56 | EXetoC | that shouldn't compile? well as long as you can comment out enumerators and other things that you can't comment out currently |
21:07:35 | filwit | ^ yeah that's really annoying |
21:09:13 | filwit | btw.. is there any super serious performance/memory implications I would run into by using `type T {.byRef.} = object ...` over `type T = ref object ...` everywhere ? |
21:09:53 | * | [2]Endy quit (Ping timeout: 264 seconds) |
21:12:05 | * | EXetoC quit (Quit: ChatZilla 0.9.90.1 [SeaMonkey 2.25/20140324220103]) |
21:12:32 | * | EXetoC joined #nimrod |
21:12:33 | Araq | I don't know, the semantics are different |
21:12:41 | Araq | byRef only affects parameter passing |
21:12:47 | Araq | 'ref' is a pointer |
21:14:42 | filwit | yeah i know they're slightly different. I actually like having an explicit 'ref T' (for the same reason you like your PFoo thing) in places like record-lists/local-vars. |
21:15:14 | filwit | I was just wondering if that cause weird stack issues i've i'm constantly allocating large objects their |
21:15:18 | filwit | there* |
21:15:46 | Araq | sure it can cause problems |
21:15:52 | renesac | nimrod stack is fixed, like the default C one |
21:15:56 | renesac | stack size |
21:15:58 | Araq | the stack is scanned conservatively |
21:16:08 | filwit | i see, so probably a bad idea then |
21:16:10 | Araq | and not incrementally at all |
21:16:37 | Araq | but then if you run the GC in your main loop it's gone by then |
21:16:46 | Araq | so ... I don't know |
21:16:54 | * | flaviu quit (Quit: Leaving.) |
21:16:58 | filwit | i guess this calls for benchmarks then |
21:17:27 | filwit | still, i'm not liking the sound of that |
21:17:29 | renesac | Araq, stackoverflow isn't a possible problem? |
21:17:56 | renesac | maybe I'm using the wrong name |
21:18:05 | filwit | all i'm really looking for is a {.notNil.} pragma really |
21:18:06 | renesac | but exceeding the stack size? |
21:18:20 | filwit | i don't want the stack allocation, just the value semantics |
21:18:34 | filwit | (unless explicitly used as 'ref') |
21:18:41 | renesac | PObject = ref TObj not nil |
21:18:42 | renesac | ? |
21:18:50 | filwit | is that valid code? |
21:19:00 | renesac | http://build.nimrod-lang.org/docs/manual.html#not-nil-annotation |
21:19:18 | renesac | this feature don't seems finished yet |
21:19:29 | renesac | but should work, probably |
21:19:43 | Araq | why do you say that? well it is not widely used |
21:19:58 | Araq | but I got bug reports and fixed these bugs |
21:20:06 | renesac | hum |
21:20:11 | filwit | that looks like if i did 'var foo: Foobar' i'd get an error instead of an default allocated object |
21:20:49 | filwit | will try though, didn't know about this feature |
21:20:52 | Araq | sure thing 'not nil' doesn't mean it's auto initialized via 'new' that would be crazy |
21:21:34 | Araq | filwit: I'd stick with the stack allocations, as I said, run the GC in realtime mode and it shouldn't be any problem |
21:22:46 | filwit | Araq: i'll make a benchmark to test that later, but i'm wary of doing something that could potentially cause stack-overflow or other serious hard-to-find issues |
21:23:41 | filwit | and it may be crazy, but having a pragma like {.defaultAlloc:new.} might actually be nice... just a thought |
21:24:18 | Araq | stack overflows are not hard to find, it's just that their error message sucks |
21:25:01 | Araq | and no, we can't easily fix that |
21:28:29 | filwit | okay, i'm fine with using 'ref object' really. I was just testing the boundaries of possibility. One thing i'm still not sure how to do, is get a 'T' from a 'ref T' (in generic code) |
21:28:58 | Araq | type(x[]) should work |
21:29:13 | filwit | ah, okay great |
21:34:08 | Demos | if you are writing generic code you may want to take a var T instead of a ref T |
21:35:09 | Demos | stack overflows are only hard to find on embedded systems, desktops will segfault if you overflow |
21:36:15 | filwit | it's only really needed for generating procs/etc for a ref-type. Aka buildProcFor(T) where T is a 'ref T' and the proc this macro produces needs to inject a 'var T' not a 'var ref T' |
21:38:56 | filwit | i can't remember the exact area i was having issue with this, only that I didn't know how to do it offhand |
21:40:48 | Varriount | Demos: The procedure is meant to simplify *any* possible path, without consulting the OS or asking the disc. |
21:41:15 | * | Demos_ joined #nimrod |
21:41:29 | Varriount | Demos_: The procedure is meant to simplify *any* possible path, without consulting the OS or asking the disc. |
21:42:50 | * | Demos quit (Read error: Connection reset by peer) |
21:44:06 | Demos_ | right, but it is strange that it takes out the first parts, then again |
21:44:11 | Demos_ | there is a windows function that does this |
21:44:23 | Varriount | Demos_: Yes. But not a linux one. |
21:44:27 | Demos_ | right |
21:50:25 | * | BitPuffin quit (Ping timeout: 240 seconds) |
21:55:43 | Varriount | Hm. How cache efficient can Nimrod be? |
21:56:49 | * | BitPuffin joined #nimrod |
21:57:21 | Araq | as cache efficient as anything else |
21:57:56 | Varriount | Araq: You mean, as cache efficient as python? :3 |
21:59:40 | Araq | even in python there is a 'struct' module :P |
22:00:14 | Araq | bbl |
22:10:19 | * | brson joined #nimrod |
22:13:29 | * | Demos_ quit (Ping timeout: 264 seconds) |
22:23:25 | * | uvelichitel quit (Quit: Textual IRC Client: www.textualapp.com) |
22:48:46 | * | askatasuna joined #nimrod |
22:49:19 | * | noam quit (Read error: Connection reset by peer) |
22:50:28 | * | noam joined #nimrod |
22:50:55 | * | noam quit (Read error: Connection reset by peer) |
22:52:46 | * | noam joined #nimrod |
22:56:23 | * | brson quit (Ping timeout: 255 seconds) |
23:01:47 | * | io2 quit (Quit: ...take irc away, what are you? genius, billionaire, playboy, philanthropist) |
23:03:35 | filwit | Araq: any thoughts on eventually depreciating the 0f32 and 0'f32 syntax in favor of (the consistent) 0.float | 0.f32 ? |
23:03:58 | * | brson joined #nimrod |
23:04:10 | * | zahary quit (Ping timeout: 276 seconds) |
23:07:09 | * | Demos joined #nimrod |
23:07:40 | dom96 | filwit: 0.float32 |
23:08:38 | filwit | dom96: i know, that's what i'm suggesting (f32 would just be a shorthand alias, if it existed at all) |
23:09:13 | * | Matthias247 quit (Quit: Matthias247) |
23:09:33 | filwit | dom96: i was talking the 0f32 and 0'f32 (those version of casting) being redundant |
23:09:40 | filwit | dom96: not 'f32' specifically |
23:12:05 | dom96 | hrm, I guess there is something to that. |
23:12:09 | dom96 | Would break code though |
23:12:33 | filwit | i'm willing to do the grunt work for these sorts of things |
23:13:10 | filwit | like "remove every case this syntax is used in the compiler" is something I would happily do for the sake of consistency |
23:13:33 | EXetoC | *deprecate </nitpick> |
23:13:37 | EXetoC | dom96: just deprecate then |
23:13:44 | filwit | and as for other's code, just make a clear announcement of the change in release notes. |
23:13:52 | EXetoC | and then maybe add automatic conversion. seems trivial |
23:14:11 | EXetoC | with that said, it's a really minor point so I don't care either way |
23:14:43 | renesac | deprecate and add '.f32' and such |
23:14:53 | renesac | because otherwise things would become verbose |
23:15:09 | filwit | renesac, you can always make your own aliases too |
23:15:59 | renesac | yeah, but I would be against deprecate those forms if it means that normal code would need to be that verbose |
23:16:33 | renesac | nimrod is much stricter with types than C, even w/o considering the uint bugs |
23:24:00 | Varriount | Hm.. If we got rid of the ' character for literal types, what could we use it for instead? |
23:25:18 | EXetoC | what was just suggested |
23:25:43 | * | Demos quit (Read error: Connection reset by peer) |
23:27:01 | Varriount | EXetoC: I mean, what could ' be used for then. Like, what new use could we ascribe to it. |
23:28:04 | EXetoC | oh |
23:28:32 | * | flaviu joined #nimrod |
23:30:08 | flaviu | filwit: `find . -iname '*.nim' -type f -print0 | xargs -0 -P 8 sed -i 's/\'f32/f32/g'` |
23:30:08 | flaviu | What grunt work? |
23:31:16 | filwit | good point |
23:32:35 | EXetoC | and the others? probably not so common either |
23:32:50 | flaviu | EXetoC: Which others? |
23:33:13 | EXetoC | oh replace. I should try that some time |
23:34:11 | EXetoC | does vim have search/replace across buffers? |
23:34:13 | dom96 | You will likely end up accidentally replacing something inside a str literal. |
23:34:40 | * | dom96 always ends up replacing something he didn't want when doing a 'replace all' |
23:37:37 | EXetoC | flaviu: can that be adapted to allow for selective replaces? |
23:37:48 | flaviu | EXetoC: Can you give an example? |
23:38:17 | EXetoC | flaviu: interactively that is. similar to the 'c' flag in vim |
23:38:29 | dom96 | I think nimgrep supports interactive replaces |
23:38:54 | EXetoC | yes but it was buggy for me |
23:39:10 | EXetoC | couldn't do it with groups |
23:39:14 | renesac | Varriount, ' is already used for quoting chars |
23:39:36 | renesac | not that much use, but you see them in some 'case' statements |
23:39:50 | flaviu | No, I can't find any |
23:40:19 | flaviu | Making a script should be possible though, echo the changes and ask for confirmation, per-file |
23:43:14 | * | xenagi joined #nimrod |
23:45:14 | EXetoC | flaviu: can't be bothered :p I found greplace.vim though |
23:45:57 | * | darkf joined #nimrod |
23:56:31 | * | askatasuna quit (Ping timeout: 252 seconds) |
23:56:45 | * | zahary joined #nimrod |