| 00:00:48 | BitPuffin | dom96: get ready though |
| 00:00:56 | BitPuffin | dom96: ie reboot etc and that shut |
| 00:00:57 | BitPuffin | shit |
| 00:01:54 | dom96 | I'm ready |
| 00:01:57 | dom96 | but watching movie |
| 00:02:29 | BitPuffin | dom96: there is an update by the way |
| 00:03:38 | dom96 | Right, i'm getting on TS |
| 00:04:04 | BitPuffin | speaking of updates and TS |
| 00:04:07 | BitPuffin | update TS server ;) |
| 00:04:19 | dom96 | can't be bothered |
| 00:04:47 | dom96 | gonna grab tea brb |
| 00:09:35 | * | aftersha_ quit (Quit: Computer has gone to sleep.) |
| 00:11:15 | dom96 | BitPuffin: well? |
| 00:11:23 | BitPuffin | dom96: almost done |
| 00:11:27 | BitPuffin | just geting headphones |
| 00:12:20 | * | io2 quit () |
| 00:16:26 | * | BitPuffin quit (Quit: WeeChat 0.4.2) |
| 00:19:46 | * | DAddYE joined #nimrod |
| 00:19:47 | * | DAddYE_ quit (Read error: Connection reset by peer) |
| 00:21:37 | * | xenagi joined #nimrod |
| 00:21:45 | * | DAddYE quit (Read error: Connection reset by peer) |
| 00:22:18 | * | DAddYE joined #nimrod |
| 00:38:54 | * | DAddYE quit (Read error: Connection reset by peer) |
| 00:39:17 | * | DAddYE joined #nimrod |
| 00:41:21 | * | DAddYE_ joined #nimrod |
| 00:41:22 | * | DAddYE quit (Read error: Connection reset by peer) |
| 00:53:59 | * | Zuchto_ quit (Read error: Operation timed out) |
| 00:55:02 | * | Zuchto joined #nimrod |
| 01:09:56 | * | fowl quit (Ping timeout: 252 seconds) |
| 01:28:15 | * | DAddYE joined #nimrod |
| 01:28:15 | * | DAddYE_ quit (Read error: Connection reset by peer) |
| 01:33:49 | * | DAddYE quit (Remote host closed the connection) |
| 01:44:50 | * | ddl_smurf joined #nimrod |
| 02:27:14 | * | fowl joined #nimrod |
| 02:35:08 | * | DAddYE joined #nimrod |
| 02:36:14 | * | ddl_smurf quit (Quit: ddl_smurf) |
| 02:39:45 | * | DAddYE quit (Ping timeout: 272 seconds) |
| 04:05:17 | * | NimBot joined #nimrod |
| 04:06:32 | * | Zuchto quit (Ping timeout: 272 seconds) |
| 04:07:31 | * | DAddYE joined #nimrod |
| 04:09:17 | * | Zuchto joined #nimrod |
| 04:47:47 | * | PortablePuffin quit (Ping timeout: 260 seconds) |
| 05:22:03 | * | DAddYE quit () |
| 05:42:57 | * | PortablePuffin joined #nimrod |
| 06:01:42 | * | brson quit (Quit: leaving) |
| 06:13:57 | * | ddl_smurf joined #nimrod |
| 06:17:42 | * | xenagi quit (Quit: Leaving) |
| 06:26:24 | * | ddl_smurf quit (Quit: ddl_smurf) |
| 06:48:44 | * | Varriount|Mobile quit (Read error: No route to host) |
| 07:06:07 | * | PortablePuffin quit (Read error: Connection reset by peer) |
| 07:09:47 | * | PortablePuffin joined #nimrod |
| 07:12:25 | * | zauberparacelsus quit (Ping timeout: 245 seconds) |
| 07:14:21 | * | PortablePuffin quit (Ping timeout: 272 seconds) |
| 08:05:59 | * | PortablePuffin joined #nimrod |
| 08:10:29 | * | PortablePuffin quit (Ping timeout: 265 seconds) |
| 08:18:28 | zahary | Araq, I haven't changed anything about symbol lookup in generics |
| 08:43:39 | * | Demos_ quit (Ping timeout: 272 seconds) |
| 08:50:50 | * | zahary quit (Read error: Connection reset by peer) |
| 08:51:35 | * | zahary joined #nimrod |
| 08:58:24 | * | Demos_ joined #nimrod |
| 09:17:53 | * | JStoker quit (*.net *.split) |
| 09:17:54 | * | aftershave quit (*.net *.split) |
| 09:17:56 | * | eigenlicht quit (*.net *.split) |
| 09:17:56 | * | capisce quit (*.net *.split) |
| 09:17:57 | * | ponce__ quit (*.net *.split) |
| 09:17:59 | * | Raynes quit (*.net *.split) |
| 09:18:03 | * | EXetoC quit (*.net *.split) |
| 09:18:04 | * | Roin quit (*.net *.split) |
| 09:18:05 | * | kristina quit (*.net *.split) |
| 09:18:05 | * | Zor_ quit (*.net *.split) |
| 09:18:06 | * | Icefoz quit (*.net *.split) |
| 09:18:07 | * | Zuchto quit (*.net *.split) |
| 09:18:08 | * | zielmicha8 quit (*.net *.split) |
| 09:18:08 | * | zielmicha quit (*.net *.split) |
| 09:18:08 | * | q66 quit (*.net *.split) |
| 09:18:13 | * | bastian_1 quit (*.net *.split) |
| 09:18:17 | * | shodan45 quit (*.net *.split) |
| 09:18:17 | * | mal`` quit (*.net *.split) |
| 09:18:18 | * | athaudia quit (*.net *.split) |
| 09:18:22 | * | alex_nx quit (*.net *.split) |
| 09:18:22 | * | bstrie quit (*.net *.split) |
| 09:18:22 | * | betawaffle quit (*.net *.split) |
| 09:18:23 | * | darkf quit (*.net *.split) |
| 09:18:24 | * | wan quit (*.net *.split) |
| 09:18:28 | * | OrionPK quit (*.net *.split) |
| 09:18:33 | * | Mordecai quit (*.net *.split) |
| 09:18:34 | * | Kooda quit (*.net *.split) |
| 09:18:34 | * | joelmo quit (*.net *.split) |
| 09:18:35 | * | vendethiel quit (*.net *.split) |
| 09:18:48 | * | tumak quit (*.net *.split) |
| 09:18:48 | * | olahol quit (*.net *.split) |
| 09:18:48 | * | silven quit (*.net *.split) |
| 09:18:48 | * | orbitz quit (*.net *.split) |
| 09:18:58 | * | noam quit (*.net *.split) |
| 09:18:58 | * | krusipo_ quit (*.net *.split) |
| 09:18:58 | * | comex quit (*.net *.split) |
| 09:19:08 | * | zielmicha-cloud_ quit (*.net *.split) |
| 09:19:08 | * | Varriount quit (*.net *.split) |
| 09:19:08 | * | Trixar_za quit (*.net *.split) |
| 09:19:08 | * | rndbit quit (*.net *.split) |
| 09:19:08 | * | musicalchair quit (*.net *.split) |
| 09:19:08 | * | Amrykid quit (*.net *.split) |
| 09:19:08 | * | Araq quit (*.net *.split) |
| 09:19:08 | * | dom96 quit (*.net *.split) |
| 09:22:28 | * | zielmicha8 joined #nimrod |
| 09:22:28 | * | shodan45_ joined #nimrod |
| 09:22:28 | * | Mordecai joined #nimrod |
| 09:22:28 | * | darkf joined #nimrod |
| 09:22:28 | * | OrionPK joined #nimrod |
| 09:22:28 | * | wan joined #nimrod |
| 09:22:28 | * | Kooda joined #nimrod |
| 09:22:28 | * | joelmo joined #nimrod |
| 09:22:28 | * | mal`` joined #nimrod |
| 09:22:28 | * | athaudia joined #nimrod |
| 09:22:28 | * | vendethiel joined #nimrod |
| 09:22:28 | * | betawaffle joined #nimrod |
| 09:22:28 | * | alex_nx joined #nimrod |
| 09:28:58 | * | dom96 joined #nimrod |
| 09:28:58 | * | Araq joined #nimrod |
| 09:28:58 | * | Amrykid joined #nimrod |
| 09:28:58 | * | q66 joined #nimrod |
| 09:28:58 | * | zielmicha joined #nimrod |
| 09:29:08 | * | EXetoC joined #nimrod |
| 09:29:08 | * | Roin joined #nimrod |
| 09:29:08 | * | kristina joined #nimrod |
| 09:29:08 | * | Zor_ joined #nimrod |
| 09:29:08 | * | Icefoz joined #nimrod |
| 09:30:03 | * | PortablePuffin joined #nimrod |
| 09:30:03 | * | Zuchto joined #nimrod |
| 09:30:03 | * | Varriount joined #nimrod |
| 09:30:03 | * | Trixar_za joined #nimrod |
| 09:30:03 | * | rndbit joined #nimrod |
| 09:30:03 | * | musicalchair joined #nimrod |
| 09:30:28 | * | JStoker joined #nimrod |
| 09:30:28 | * | olahol joined #nimrod |
| 09:30:28 | * | silven joined #nimrod |
| 09:30:28 | * | orbitz joined #nimrod |
| 09:31:48 | * | bastian_1 joined #nimrod |
| 09:32:03 | * | zielmicha-cloud_ joined #nimrod |
| 09:32:13 | * | noam joined #nimrod |
| 09:32:13 | * | aftershave joined #nimrod |
| 09:32:13 | * | eigenlicht joined #nimrod |
| 09:32:13 | * | capisce joined #nimrod |
| 09:32:13 | * | ponce__ joined #nimrod |
| 09:32:23 | * | bstrie joined #nimrod |
| 09:35:28 | * | Raynes joined #nimrod |
| 09:44:28 | * | tumak joined #nimrod |
| 09:44:28 | * | Demos_ quit (Ping timeout: 272 seconds) |
| 09:54:03 | * | krusipo_ joined #nimrod |
| 09:54:03 | * | comex joined #nimrod |
| 09:55:08 | * | JStoker is now known as Guest91804 |
| 09:55:23 | * | PortablePuffin quit (Ping timeout: 245 seconds) |
| 10:03:04 | * | PortablePuffin joined #nimrod |
| 10:34:44 | * | io2 joined #nimrod |
| 10:49:39 | * | PortablePuffin quit (Ping timeout: 265 seconds) |
| 10:51:44 | * | ddl_smurf joined #nimrod |
| 10:57:24 | * | shodan45_ quit (Remote host closed the connection) |
| 11:03:44 | * | zielmicha8 quit (Remote host closed the connection) |
| 11:04:04 | * | zielmicha quit (Read error: Connection reset by peer) |
| 11:08:19 | * | shodan45_ joined #nimrod |
| 11:36:04 | * | PortablePuffin joined #nimrod |
| 11:39:09 | * | [1]Endy joined #nimrod |
| 12:06:29 | * | darkf quit (Quit: Leaving) |
| 12:16:45 | * | [2]Endy joined #nimrod |
| 12:20:45 | * | [1]Endy quit (Ping timeout: 272 seconds) |
| 14:07:02 | Varriount | What does it mean when you spend 30 minutes writing up an issue, and spend a third of the time on getting formatting correct? |
| 14:16:32 | * | gradha joined #nimrod |
| 14:17:18 | gradha | Varriount: it means you don't understand the formatting rules |
| 14:19:28 | * | Varriount|Mobile joined #nimrod |
| 14:19:37 | Varriount|Mobile | gradha, ping |
| 14:19:51 | gradha | Varriount|Mobile: pong |
| 14:20:35 | Varriount|Mobile | So, what are your thought on the path inaccuracies (and the api reworking you mentioned) |
| 14:21:10 | gradha | the only crossplatform way I know of making a path API crossplatform is to force everybody use drive letters |
| 14:21:33 | gradha | just like you have the empty exe extension you can have the empty drive letter on unix, but you need the API to be aware of it |
| 14:22:00 | Varriount|Mobile | Gradha, the python pathlib module doesn't force you to use drive letters |
| 14:22:11 | gradha | cool, let's copy that then |
| 14:22:41 | Varriount|Mobile | Lemme check what method that uses.. |
| 14:24:51 | Varriount|Mobile | Of course, pathlib uses a slightly more object oriented way of representing paths. |
| 14:25:18 | gradha | that's the alternative, not using strings, seems like the allegro5 folks went that way too http://alleg.sourceforge.net/a5docs/5.0.10/path.html |
| 14:26:45 | Varriount|Mobile | Just a warning though, araq doesn't seem to like that idea. |
| 14:27:45 | gradha | I don't like it either, previous allegro API used strings without much problems http://alleg.sourceforge.net/stabledocs/en/alleg030.html |
| 14:28:25 | Varriount|Mobile | Here's the source for pathlib - https://github.com/python/cpython/blob/master/Lib/pathlib.py |
| 14:30:30 | gradha | maybe the current API is fine and it just needs bug killing, despite those potentially changing runtime behavior |
| 14:31:17 | Varriount|Mobile | Hrm. Possibly. |
| 14:34:55 | Varriount|Mobile | gradha, under windows, pathlib simply uses the bare '\', implying the current drive |
| 14:35:35 | gradha | so what does it do if you want join two absolute paths from different drives? |
| 14:36:20 | Varriount|Mobile | Lemme check. I'm gonna switch over to my laptop |
| 14:37:09 | * | PortablePuffin quit (Ping timeout: 265 seconds) |
| 14:37:24 | gradha | it could concatenate them yielding an impossible path, it could return one of the given paths, it could raise an exception |
| 14:37:51 | Varriount | Gradha, do you mean, two paths with explicitly given drives? |
| 14:38:01 | gradha | yes, c:\dir + d:\dir |
| 14:39:51 | Varriount | In that scenario, it uses the drive of the secondary path being joined |
| 14:40:20 | gradha | there you go, that's one design decission you have to take nobody wants to take |
| 14:40:35 | Varriount | "C:\\Users" + "D:\\Users" = "D:\\Users" |
| 14:40:50 | gradha | IMHO UnixToNativePath is flawed because mappings are lossy, but I've been using it only because the current API lacks a "make absolute" proc |
| 14:41:06 | Varriount | It does? Huh. |
| 14:41:25 | Varriount | Well, that's definately something that needs to be added. |
| 14:41:31 | gradha | Varriount: try again with different directories, maybe it's picking the second parameter by default |
| 14:41:41 | * | zauberparacelsus joined #nimrod |
| 14:42:59 | Varriount | gradha: Path("C:\\Users").join(Path("D:\\Programs")) -> NTPath('D:\\Programs') |
| 14:43:39 | gradha | so absolute paths "override" previous absolute drive letters |
| 14:43:46 | gradha | In such situations I'd prefer the API to return the empty string or nil even, otherwise subtle errors can go unnoticed |
| 14:44:15 | Varriount | Yeah. Let me read the PEP for the lib and see if there's justification for that behavior |
| 14:44:17 | gradha | joining two absolute paths seems a bad idea to me, like adding a string to an integer |
| 14:45:46 | Varriount | PEP 428 - "Joining semantics are similar to os.path.join, in that anchored paths ignore the information from the previously joined components:" |
| 14:46:48 | Varriount | So, I guess their reasoning behind that decision was backward compatibility |
| 14:53:52 | Varriount | gradha, it's almost unfortunate that their's no reasonable way for each programmer to specify how he or she would want such procedures to behave |
| 14:54:05 | Varriount | *there's |
| 14:55:16 | gradha | you can treat it like integer overflow, though the original os.path.join didn't have backwards compatibility in mind, it was designed like that, to silently discard errors |
| 14:56:09 | gradha | it seems os.path.join is more a python immutable string aberration than what you can have in nimrod with dir1/dir2/dir3 |
| 14:57:26 | Varriount | gradha, which is why the new pathlib module was created. |
| 14:57:48 | * | Mordecai is now known as psquid |
| 14:57:59 | Varriount | It's situations like these that make me wish everything used URI's |
| 14:59:03 | gradha | well, if pathlib was created to avoid previous aberrations, they would not keep behaviour compatible |
| 15:00:09 | Varriount | *shrug* |
| 15:01:03 | gradha | doesn't python Path object have a + overload? |
| 15:01:40 | gradha | maybe + and join have different behaviours, with + joining objects, and join joining strings |
| 15:01:59 | Varriount | Nope, no overloads for + or & |
| 15:02:15 | Varriount | There is an overload for '/' though |
| 15:02:41 | Varriount | Or at least, I thought there was (I was wrong) |
| 15:02:49 | gradha | nothing makes sense to me then |
| 15:03:29 | Varriount | Or wait.. |
| 15:04:36 | * | PortablePuffin joined #nimrod |
| 15:04:48 | OrionPK | morning gents |
| 15:05:05 | Varriount | Hm. I wonder if I have an outdated version (mine dates back to before pathlib was introduced into the stdlib) |
| 15:06:03 | gradha | that PEP's rationality for object orientation is amazing |
| 15:06:23 | gradha | "everybody else is using objects, we have to too" |
| 15:06:46 | Varriount | gradha, to be fair, using os.path is/was a pain |
| 15:07:21 | gradha | really? |
| 15:07:29 | Varriount | Yes |
| 15:07:59 | dom96 | hello guys |
| 15:08:10 | gradha | Varriount: tell me more |
| 15:09:08 | gradha | dom96: how's the twitter doing? |
| 15:09:33 | PortablePuffin | oi dom96 |
| 15:09:35 | dom96 | 8 followers! |
| 15:09:41 | * | gradha checks the twitter, sees no badgers, looks at dom96 |
| 15:09:50 | OrionPK | uh oh |
| 15:10:12 | dom96 | PortablePuffin: Don't you oi me you portable puff. |
| 15:11:12 | Varriount | gradha, os.path became... convoluted in cases where multiple functions that only took pairs of arguments needed to be used |
| 15:11:39 | dom96 | gradha: Do you expect a tweet per day with a different picture of a badger? |
| 15:12:00 | gradha | dom96: sounds like a plan, then by february we can pick the official mascot |
| 15:12:46 | Varriount | path.relpath(path.join(path_one, path_two) os.join(path_one, path_three)) |
| 15:13:03 | Varriount | Er, forgot to add a comma |
| 15:13:13 | * | psquid quit (Quit: work) |
| 15:14:45 | Varriount | gradha, or, here's an example from a stack overflow answer |
| 15:14:58 | Varriount | path = os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)),"..","..")) |
| 15:15:05 | EXetoC | :E |
| 15:17:55 | PortablePuffin | dom96: oi! |
| 15:18:23 | gradha | Varriount: I don't see an pathlib being much better, maybe by using parent to replace dirname in your second example |
| 15:18:31 | * | dom96 shoots PortablePuffin |
| 15:18:48 | Varriount | gradha, also, path attribute access |
| 15:19:37 | gradha | the pep doesn't talk about that, what do you mean? |
| 15:19:50 | Varriount | target_path.drive |
| 15:19:57 | Varriount | target_path.root |
| 15:20:14 | * | aftersha_ joined #nimrod |
| 15:20:29 | PortablePuffin | dom96: that's a bit harsh |
| 15:20:45 | Varriount | gradha, in any case, I'm not the one who wrote the PEP or the library. All I know is that I like using the pathlib module much more than I like using os.path |
| 15:20:48 | dom96 | PortablePuffin: You're right. |
| 15:21:29 | gradha | Varriount: you seem like the correct person to replace nimrod's os API, go, go! |
| 15:21:41 | * | zauberparacelsus left #nimrod (#nimrod) |
| 15:22:24 | Varriount | gradha, I dislike designing API's without either A: Total confidance that I'll get it right, or B: Community support |
| 15:22:46 | Varriount | gradha, fortunately, nimrod doesn't have to deal with some of the function-oriented vs object-oriented flak, because of how procedures can be called. |
| 15:23:46 | EXetoC | the sugar makes that much of a difference? |
| 15:24:02 | Varriount | Yes. |
| 15:24:07 | Varriount | At least, to me. |
| 15:24:46 | Varriount | I liken it to creating a drawing with 3 differently colored pencils, instead of just one. |
| 15:25:38 | gradha | Varriount: you also don't need to deal with community support |
| 15:26:16 | Varriount | and why is that? |
| 15:26:39 | gradha | because there's not much of a community anyway, plus the set of people worrying about paths is even smaller |
| 15:27:23 | dom96 | What's the problem with paths in Nimrod? |
| 15:27:39 | gradha | good luck figuring about A), getting right things is not easy |
| 15:27:41 | EXetoC | the fact that procs are used either way seems to be a more important factor. the sugar is still very useful though |
| 15:27:57 | EXetoC | and then you have the occasional method of course, but I've seen very few of those |
| 15:28:03 | gradha | dom96: recent issue |
| 15:28:42 | Varriount | dom96, nothing that would affect you, unless you care about Windows users. :p |
| 15:28:51 | dom96 | Varriount: Of course I do. |
| 15:29:00 | dom96 | Windows users are the most important users. |
| 15:29:34 | Varriount | dom96, essentially, unixToNativePath is hardcoded to use the C: drive as the drive to use when converting paths to Windows |
| 15:29:37 | EXetoC | sure are |
| 15:29:47 | EXetoC | building some C++ code now. slow as hell >.< |
| 15:29:52 | Varriount | dom96, see the recent issue I posted |
| 15:31:48 | PortablePuffin | dom96: I wanna play ze dota |
| 15:32:12 | dom96 | PortablePuffin: now? |
| 15:32:38 | PortablePuffin | dom96: soonish |
| 15:33:08 | PortablePuffin | dom96: I will tell you when it would be appropriate for you to get your tea |
| 15:33:23 | dom96 | lol |
| 15:33:34 | dom96 | Well I'm on Linux currently. |
| 15:33:39 | dom96 | Would like to fix Jester. |
| 15:33:44 | dom96 | Before we play. |
| 15:36:33 | dom96 | Varriount: I replied. |
| 15:36:56 | dom96 | gradha: Are there really enough issues with the os API to warrant a complete rewrite? |
| 15:37:46 | * | noam_ joined #nimrod |
| 15:38:22 | PortablePuffin | dom96: hurry then! |
| 15:38:50 | dom96 | PortablePuffin: Also will probably need to visit my uncle later, and start studying for my exams at some point lol |
| 15:40:39 | * | noam quit (Ping timeout: 272 seconds) |
| 15:41:03 | gradha | dom96: no |
| 15:41:03 | Varriount | dom96, gradha : I thought gradha mean't more that parts of the api, not just os.nim, need to be redesigned. |
| 15:44:00 | dom96 | hrm, I see. |
| 15:46:53 | Varriount | gradha, have you ever used a template or proc with a shorter name to alias unixToNativePath, and used the alias as a string literal? |
| 15:47:07 | gradha | no |
| 15:49:32 | * | BitPuffin joined #nimrod |
| 15:57:53 | * | pafmaf joined #nimrod |
| 15:59:53 | BitPuffin | dom96: okay so ready in about 20 min? |
| 16:00:02 | dom96 | ehhhh |
| 16:00:03 | dom96 | maybe |
| 16:00:06 | dom96 | hello pafmaf |
| 16:00:14 | pafmaf | hi |
| 16:01:10 | BitPuffin | dom96: well at least ready to get your tea |
| 16:04:11 | Varriount | Hi pafmaf |
| 16:04:32 | pafmaf | hi! |
| 16:06:11 | gradha | good day, pafmaf |
| 16:06:41 | pafmaf | good day, whow friendlist IRC channel ever :D |
| 16:07:22 | dom96 | Thank you. We strive for that reputation :) |
| 16:07:26 | Varriount | We're a small community. If we didn't act like decent human beings, we'd be even smaller. |
| 16:08:08 | Varriount | And probably less productive. |
| 16:09:02 | pafmaf | Just learned about Nimrod and now checking out the tutorial. Why can't I compare two uints? |
| 16:09:15 | dom96 | import unsigned |
| 16:09:45 | dom96 | Araq (the creator of Nimrod) wants to discourage the use of uints so they are in a separate module. |
| 16:09:56 | Varriount | pafmaf, the honorable create of Nimrod, Araq, wants to discourage use of unsigned integers. |
| 16:10:55 | Varriount | *creator |
| 16:11:03 | Araq | hi pafmaf welcome |
| 16:11:15 | pafmaf | ah, thanks. hi Araq |
| 16:11:49 | Araq | Varriount: what's wrong with unixToNativePath? |
| 16:12:24 | Varriount | Araq, it's hardcoded to use the C drive. At least, last time I checked it was. |
| 16:13:06 | BitPuffin | dom96: actually I think you will get a little bit more time ;) |
| 16:13:11 | Varriount | Yeah. Line ~299 in os.nim |
| 16:13:21 | BitPuffin | hey pafmaf! |
| 16:13:27 | dom96 | BitPuffin: k |
| 16:14:00 | Araq | Varriount: only if it's an absolute path. |
| 16:14:06 | Araq | what's the alternative? |
| 16:14:16 | Varriount | Using a bare '\' |
| 16:14:20 | Araq | why is it a problem? did it cause a bug? |
| 16:15:09 | Varriount | Araq, read my issue -> https://github.com/Araq/Nimrod/issues/795 |
| 16:16:59 | Araq | ah very well |
| 16:17:47 | Araq | use an additional currentDrive = "\\" then |
| 16:19:53 | Araq | unixToNativePath should only be used for relative paths anyway though |
| 16:20:26 | Varriount | Just so you know, I'll have to add a bit in the documentation stating that the new argument won't have any effect on systems that don't have a concept of drives. |
| 16:21:21 | Araq | sure, but we also need a "show source code" feature |
| 16:21:45 | Varriount | In the documentation? |
| 16:21:51 | Araq | yeah |
| 16:22:03 | gradha | that seems quite easy to do |
| 16:22:24 | gradha | is it really needed though? |
| 16:22:34 | gradha | I guess it's better than no docstrings |
| 16:23:00 | Araq | I like it, reading code can be nicer than reading documentation |
| 16:23:25 | Varriount | At minimum, a link to the module source somewhere on the module's documentation page would be nice. |
| 16:23:32 | gradha | Araq: you want it embedded and hidden through javascript or hyperlinked to a separate file? |
| 16:23:55 | Araq | thinking about it, we can link to github I think |
| 16:23:59 | gradha | hmm.. links to github could be provided given the current commit is known |
| 16:24:12 | Araq | ha! great minds think alike :P |
| 16:24:32 | * | Icefoz quit (Quit: leaving) |
| 16:24:43 | * | Icefoz joined #nimrod |
| 16:24:49 | Varriount | gradha, if you need help with a javascript thing, I have a python project which uses a sphinx documentation configuration that has a "show source" feature |
| 16:27:52 | gradha | we could pass the compiler a new parameter, --source-hyperlink=str, with str having a subexes format for filename and line |
| 16:28:16 | gradha | when that is enabled a "see source" could be added, with the hyperlink formatted to the info provided by docgen |
| 16:28:34 | gradha | and you could also have "file:///", though browsers usually fuck that up badly |
| 16:32:08 | Araq | hmm unixToNativePath seems to convert ./foo to .foo |
| 16:32:53 | Araq | and the macos version never has been tested, nor does anybody care about "classic mac" |
| 16:33:55 | Araq | when defined(windows): path.replace('/', '\\'): else: path |
| 16:34:11 | Araq | seems to be the way to go XD |
| 16:34:59 | Varriount | Araq, I doubt it could be as simple as that. |
| 16:35:46 | Araq | well actually / is valid as separator on windows too but quite some software doesn't know about it |
| 16:36:08 | Araq | so it's better to replace it with \ |
| 16:36:41 | Varriount | Araq, don't forget extended paths |
| 16:37:12 | Araq | like? \\?\stuff ? |
| 16:37:28 | Varriount | Yeah. |
| 16:37:33 | gradha | see http://msdn.microsoft.com/en-us/library/aa365247(v=vs.85).aspx |
| 16:37:59 | Araq | well you know ... unixToNativePath needs to support unix's features, not windows's |
| 16:38:07 | Varriount | :P |
| 16:38:58 | Varriount | We should just create our own special path format, and use that instead. :3 |
| 16:41:16 | Araq | bbl |
| 16:42:21 | dom96 | BitPuffin: ETA? |
| 16:43:30 | * | aftersha_ quit (Quit: Computer has gone to sleep.) |
| 16:48:23 | Varriount | Anyone know of a way to set clean up actions on assertion failures? |
| 16:49:03 | Varriount | Oh, nevermind. |
| 16:49:18 | gradha | onFailedAssert |
| 16:49:32 | gradha | it presumably works |
| 16:49:41 | Varriount | "presumably"? |
| 16:49:59 | gradha | https://github.com/Araq/Nimrod/issues/787 |
| 16:50:50 | Varriount | gradha, you make me worried when you say things like that. It's like a lion tamer saying that his lion "shouldn't" try to eat me. |
| 16:51:07 | Varriount | And I'd rather not have a computer program try to eat me. |
| 17:01:21 | NimBot | dom96/jester master 00cddc9 Dominik Picheta [+0 ±1 -0]: Fixes #8 |
| 17:01:21 | NimBot | dom96/jester master 8ffbc31 Dominik Picheta [+0 ±2 -0]: Fixes #9 |
| 17:04:58 | BitPuffin | dom96: 10 minutes? |
| 17:05:06 | dom96 | sure |
| 17:05:11 | BitPuffin | great |
| 17:05:16 | BitPuffin | have you fixed jester? |
| 17:06:26 | dom96 | ya |
| 17:11:55 | Varriount | Odd. Why would an error message be raised at the end of a program. |
| 17:16:53 | * | Demos_ joined #nimrod |
| 17:21:43 | * | zielmicha8 joined #nimrod |
| 17:22:47 | * | zielmicha joined #nimrod |
| 17:26:18 | gradha | it looks a little bit tiring to see that much source code http://imgur.com/NBTDY9b |
| 17:27:01 | Varriount | gradha, lemme show you what I saw one doc template do |
| 17:28:28 | Varriount | gradha, http://imgur.com/RvyXmVU |
| 17:29:07 | gradha | ok, you do the html |
| 17:29:30 | Varriount | Wait what? |
| 17:30:17 | gradha | modifying nimrod doc templates to show that orange thingy |
| 17:30:22 | Varriount | First off, I didn't make that page, someone else did. Second, I was only trying to provide inspiration |
| 17:31:02 | Varriount | To be precise, that's documentation generated from an old project of mine, using a sphinx docgen template |
| 17:45:42 | * | PortablePuffin quit (Read error: Connection reset by peer) |
| 17:49:16 | * | PortablePuffin joined #nimrod |
| 18:20:15 | * | Varriount|Mobile quit (Remote host closed the connection) |
| 18:20:29 | * | Varriount|Mobile joined #nimrod |
| 18:22:44 | Varriount | Araq, ping |
| 18:22:58 | * | shodan45_ quit (Quit: Konversation terminated!) |
| 18:26:15 | Araq | Varriount: pong |
| 18:30:21 | Varriount | Araq, you remember that issue we discussed concerning classifyPath and the addition of a new enum, TPathKind, in order to avoid modification of the PathComponent enum? |
| 18:30:32 | Araq | sure |
| 18:30:46 | Varriount | It's not working very well. |
| 18:31:05 | Araq | lol |
| 18:31:15 | Araq | due to compiler bugs concerning 'range'? |
| 18:31:34 | Varriount | Well, that, and the fact that their types are incompatible |
| 18:35:34 | Varriount | Araq, for example, if I change TPathComponent to "TPathComponent = pcFile..pcLinkToDir", then any procedure which declares itself as returning a TPathComponent breaks |
| 18:37:36 | Araq | type TPathComponent = range[pcFile..pcLinkToDir] |
| 18:37:44 | Araq | you used that, right? |
| 18:38:24 | Varriount | Yep |
| 18:38:49 | Varriount | lib\pure\os.nim(1272, 16) Error: type mismatch: got (tuple[PathKind, string]) but expected 'tuple[kind: TPathComponent, path: string]' |
| 18:41:49 | Araq | yeah that's a tricky thing |
| 18:43:15 | Varriount | What code, besides os.nim, actually uses the path component kinds in the form of a range of high and low? |
| 18:43:49 | Araq | you never know |
| 18:44:27 | Araq | but you can't simply extend the enum because then 'case' forces you to handle pkNone which is braindead |
| 18:44:39 | Araq | *pcNone |
| 18:45:07 | Varriount | Araq, what about a converter procedure? |
| 18:45:22 | Araq | maybe your initial idea of simply using a new enum is best |
| 18:45:52 | Araq | I don't really like converters |
| 18:46:33 | Varriount | Araq, well, even that has holes. Specifically, it makes it akward when using both procedures that return a TPathComponent and procedures which return a PathKind |
| 18:47:10 | Demos_ | I like converters, I think they are a pragmatic solution to a problem that comes up often |
| 18:47:46 | Demos_ | or that comes up sometimes and is tricky to solve |
| 18:49:08 | Araq | Varriount: alright then raise an exception instead of pcNone ;-) |
| 18:50:57 | Varriount | But that kinda defeats the point of classifyPath. :/ Oh well.. |
| 18:51:12 | Araq | why do we need classifyPath again? |
| 18:52:08 | Varriount | It's more effecient when trying to determine the type of filesystem object pointed to by a path than using existsFile, existsDir, and existsSymlink |
| 18:52:44 | Araq | yeah but it's even more efficient to wrap 'stat' and name it pathProps() or something |
| 18:53:03 | Varriount | Araq, but stat doesn't work completely on windows. |
| 18:53:30 | Araq | well provide what's common for both posix and win then |
| 18:54:06 | Varriount | I am. It's just that Windows doesn't have a sane implementation of the c stdlib |
| 18:54:44 | Araq | well things like "lastModified" etc. exist on windows too, you know |
| 18:58:18 | Varriount | Araq, i'm talking about classification. Whether a path points to a file, directory, link to a file, or link to a directory |
| 18:59:29 | Araq | yeah. I argue we shouldn't have classifyPath but instead "stat". stat returns some object that contains various information among them wether it's a path that actually exists |
| 19:00:25 | Varriount | But then you have to gather all that information (unless you use some on-demand gathering mechanism, and then you have race conditions) |
| 19:00:56 | Araq | "classifyPath" is not a common operation. Usually you pass the path to "open" and catch IO exceptions instead |
| 19:01:17 | OrionPK | dom96 should I add gzip support into jester, or should I just make a separate lib? |
| 19:01:19 | Araq | or you iterate over things via walkDir and walkFiles |
| 19:02:51 | Araq | and there is no need to "gather" all that information |
| 19:03:00 | Araq | stat is roughly equivalent to findFirstFile |
| 19:04:31 | Varriount | Araq, actually, a better equivalent is GetFileAttributes |
| 19:07:17 | Varriount | So ok, say we replace classifyPath with a stat() like procedure. |
| 19:08:05 | Varriount | First off, then we also get rid of the 'getLastModificationTime', 'getLastAccessTime', and all the other procedures which retrieve stat-like information |
| 19:08:30 | Araq | no |
| 19:08:43 | Araq | we don't get rid of them because they work |
| 19:08:53 | Araq | and I'm tired of the endless bike shedding |
| 19:09:26 | Araq | but surely lets not introduce more and more things that only return tiny pieces of information |
| 19:09:56 | Araq | and btw, usually what has been added has also been used somewhere |
| 19:10:16 | Araq | we don't write procs we never need |
| 19:15:42 | Varriount | Araq, ok then, what kind of information should the stat() like procedure return? |
| 19:19:49 | Araq | the intersection of WIN32_FIND_DATA and stat_t |
| 19:20:23 | Varriount | Ok. |
| 19:23:04 | Araq | it would be sweet if you could introduce a FileID so that stat("foo").id == stat("bar").id when it's in fact the same file |
| 19:23:43 | Araq | but this information looks hard to get |
| 19:24:04 | Araq | WIN32_FIND_DATA doesn't have that afaict |
| 19:24:40 | Varriount | Off the top of my head, such data is not only OS dependant, but likely filesystem dependant. |
| 19:29:55 | gradha | bumped https://github.com/Araq/Nimrod/pull/793 with "see source", example at http://dl.dropbox.com/u/145894/t/ndocs/system.html |
| 19:30:26 | gradha | Araq: wrt #793 can I add more columns to .idx files for a prettier theindex.html? |
| 19:31:40 | Araq | yes |
| 19:31:54 | Araq | and excellent work. "See source" is cool |
| 19:32:26 | gradha | thanks, "embed src" is easier, but likely builds huge html and is annoying without js |
| 19:33:41 | Araq | yeah I agree |
| 19:34:05 | Araq | everything is on github these days anyway and it's all optional |
| 19:34:53 | * | PortablePuffin quit (Ping timeout: 252 seconds) |
| 19:36:36 | Varriount | Araq, I'm sorry if I was argumentative and a bit obnoxious over the classifyPath thing. |
| 19:37:01 | Varriount | Now that I look at things, I do see why a stat() like procedure is better. |
| 19:37:22 | * | brson joined #nimrod |
| 19:37:29 | Araq | nah it's fine. I'm harsh because constantly something is crying here |
| 19:39:10 | Araq | (baby) |
| 19:39:42 | Varriount | Araq, I'm about to send out a big pull request that adds and rearranges some things in os.nim |
| 19:40:06 | Araq | then I hope you worked on devel ... |
| 19:40:38 | Varriount | It's not urgent, so take your time, I just ask that you please don't skim through it. I don't want to end up breaking a core module because I overlooked something |
| 19:40:51 | Varriount | Oh rats. Did I miss a memo or something? |
| 19:41:18 | Araq | no, I usually never say anything about my real life |
| 19:41:45 | Varriount | Erm, I meant about the devel branch. |
| 19:41:51 | Araq | lol XD |
| 19:42:10 | Araq | well there is lots of work on the devel branch |
| 19:42:22 | Araq | I touched every line of code to support --cs:partial |
| 19:42:43 | OrionPK | string .len is O(1) right? |
| 19:42:49 | Araq | yes |
| 19:43:37 | Varriount | Well, since I would rather not go through the torture that is a 500 conflict git rebase, I'll just check out a new branch based on devel, and manually write the changes back in. |
| 19:43:46 | Varriount | *shudder* |
| 19:44:03 | Araq | good |
| 19:44:34 | Araq | hmm why didn't I push this thing on master? |
| 19:44:47 | Araq | it doesn't break anything ... oh I know |
| 19:45:17 | Araq | because I based it on vm2 which does break things |
| 19:45:54 | Araq | git branching only works when you use your brain. sadly. |
| 19:47:34 | Varriount | Auto-solving of conflicts always makes me nervous. There's always the possibility of little errors in which diff was picked, and suddenly you have hundreds of tiny, subtle bugs |
| 19:54:08 | * | brson quit (Quit: Lost terminal) |
| 19:55:02 | * | brson joined #nimrod |
| 20:32:55 | Varriount | Araq, it's too bad I don't live in Germany any more, I could babysit for you :P |
| 20:36:29 | * | PortablePuffin joined #nimrod |
| 20:39:10 | Varriount | Has anyone been able to bootstrap nimrod using the devel branch on 64 bit windows |
| 20:43:32 | Demos_ | I bootstrapped master, what is your problem. Maybe I had it |
| 20:43:52 | Varriount | Demos_, I'm talking about the devel branch |
| 20:44:13 | Varriount | apparently we need to use it for the forseeable future, until it's merged into master |
| 20:44:29 | Demos_ | hm let me give it a shot |
| 20:44:56 | Demos_ | oh, I actually do not have mingw64 installed... |
| 20:44:57 | Varriount | If it works for you, then it's likely something in my build setup (which is possible) |
| 20:45:05 | Varriount | >_< |
| 20:45:09 | Demos_ | what is the problem, because I had several |
| 20:45:16 | Demos_ | when I tried master |
| 20:45:37 | Varriount | During the second boot iteration, I get ":\32\nimrod\lib\system\widestrs.nim(99, 56) Error: cannot convert 56320 to range 0..1023(int)" |
| 20:45:51 | Varriount | Same for the 64 bit version |
| 20:47:54 | Varriount | The odd part is that it's happening on the second boot iteration, which means that my old version of nimrod is ok with the source code, but the new isn't |
| 20:49:15 | * | OrionPK quit (Remote host closed the connection) |
| 20:54:38 | * | OrionPK joined #nimrod |
| 21:03:48 | Varriount | zahary, ping |
| 21:24:18 | Araq | hmm IntMax32 includes "bool" ... *sigh* |
| 21:25:03 | Varriount | Araq, do you happen to know zahary's mailing address? |
| 21:25:21 | Araq | sure lol |
| 21:25:27 | gradha | IIRC you can contact people through github, but nobody uses the web any more |
| 21:25:31 | Varriount | I'd like to send him a cd with Windows on it. |
| 21:25:55 | Araq | he frequently uses windows |
| 21:26:00 | Araq | or at least used to |
| 21:26:36 | Araq | but since I'm unproductive let me go through his commits |
| 21:26:47 | Varriount | I know which one caused it |
| 21:26:56 | Varriount | I just don't know what change in the commit it was |
| 21:27:12 | Varriount | It's commit 199fd0725c9a5d4aea5b893ad991b87426c50bde |
| 21:29:12 | EXetoC | Araq: and it contains int, unconditionally |
| 21:29:59 | Araq | EXetoC: that seems fine though |
| 21:32:42 | Demos_ | if I have an exported function that returns a cstring derived from a nimrod string do I need to GC_ref the string before returning it if the caller just copies the string and moves on? |
| 21:32:58 | gradha | yes |
| 21:33:03 | gradha | or strdup it |
| 21:33:32 | gradha | Demos_: see http://forum.nimrod-lang.org/t/319 |
| 21:33:36 | Demos_ | strdupin it would not help. and what about if the original string is derived form a string literal? |
| 21:34:57 | gradha | sorry, I missread, if the caller copies the string… you don't need to do much more |
| 21:35:38 | Demos_ | yes, but the caller copies the string after the nimrod function has returned |
| 21:36:07 | gradha | that's incorrect then, the GC might have already freed the cstring |
| 21:36:44 | Araq | nah, it still should be fine |
| 21:36:54 | Araq | the GC doesn't run between calls |
| 21:38:24 | gradha | I decided to play safe and set a global |
| 21:39:00 | Araq | you should really set a threadvar instead |
| 21:39:12 | Demos_ | OK that is nice. Now if I did have to pin an unpin the string how would I even reference it? I can't just use GC_[un]ref(x: string) because I have no way to get the string into C#, only the cstring |
| 21:39:44 | Demos_ | would I need to use a ref string and pin and unpin that? |
| 21:40:10 | Araq | no idea what you mean, you get a cstring, you copy it into a C# string and you're done |
| 21:41:14 | Araq | other direction: you pass the C# string as a cstring to Nimrod, nimrod copies the cstring into its string and you're done |
| 21:41:32 | Araq | no need to pin/unpin anything |
| 21:43:42 | Araq | Varriount: I can't find that commit in here: https://github.com/Araq/Nimrod/commits/devel |
| 21:43:49 | Araq | what am I doing wrong? |
| 21:44:38 | Araq | never mind |
| 21:49:26 | Araq | are you sure it's that commit? |
| 21:56:07 | Varriount|Mobile | Araq, it might be the way I copied the branch |
| 21:56:29 | Varriount|Mobile | Wait a moment, I'm in the shower |
| 21:59:14 | Araq | er ... ok ... |
| 21:59:32 | Varriount | Araq, it's the one that says "clean-up some obsolete code; close #602" |
| 21:59:37 | Araq | it's nice you're as determined as I am when it comes to Nimrod |
| 21:59:55 | Araq | yeah ... ugh then |
| 21:59:59 | Araq | no idea what causes it |
| 22:01:35 | * | shodan45 joined #nimrod |
| 22:06:18 | * | Guest91804 quit (Changing host) |
| 22:06:18 | * | Guest91804 joined #nimrod |
| 22:06:35 | * | Guest91804 is now known as JStoker |
| 22:11:18 | * | xenagi joined #nimrod |
| 22:15:55 | * | noam_ quit (Read error: Connection reset by peer) |
| 22:27:40 | Varriount | Araq, I found the file that causes the error - compile/sigmatch.nim |
| 22:27:45 | Varriount | *compiler |
| 22:28:17 | Araq | well that was obvious to me :P |
| 22:28:33 | Varriount | Oh, it was? |
| 22:28:38 | Araq | but I still don't see how this commit caused that |
| 22:29:07 | Araq | yeah obviously it infers T = range[0..1023] where it should infer T = int instead |
| 22:30:10 | Araq | ranges are a misfeature really. They cause lots of problems |
| 22:30:53 | * | [2]Endy quit (Ping timeout: 252 seconds) |
| 22:30:53 | * | BitPuffin quit (Read error: Connection reset by peer) |
| 22:32:13 | Demos_ | COLORS! |
| 22:32:16 | Demos_ | kinda |
| 22:32:23 | Demos_ | followed by a segfault, but still |
| 22:32:43 | Varriount | Demos_, ? |
| 22:33:51 | Demos_ | in visual studio, I got some colors to show up, but it is quite buggy |
| 22:37:13 | Varriount | Araq, you probably already know this, but the number 1023 is also the value of the "halfMask" const |
| 22:38:02 | Araq | x and 1023 produces the type range[0..1023] |
| 22:38:24 | Araq | that's a feature to keep the number of integer type conversions down |
| 22:38:48 | Araq | (yeah I already know this :P ) |
| 22:42:29 | OrionPK | demos u gonna be able to highlight my templates? :P |
| 22:46:15 | gradha | good night, honey badgers |
| 22:46:23 | * | gradha quit (Quit: bbl, need to watch http://www.youtube.com/watch?v=dEf4PJZXBxA again) |
| 22:46:59 | Demos_ | I hope |
| 22:47:16 | Demos_ | if nimrod can compile them I should be able to highlight em |
| 22:53:17 | * | darkf joined #nimrod |
| 23:03:07 | Araq | and it's this time of the day again ... |
| 23:03:25 | Araq | I'm thinking about a "nothread" pragma |
| 23:03:36 | Araq | but perhaps it should be "serial" instead? |
| 23:06:09 | Araq | it's used to mark a section of code that is only supposed to run before parallel processing starts |
| 23:12:25 | EXetoC | Araq: misfeature? is it the approach that is wrong? |
| 23:13:01 | Araq | perhaps I don't know yet |
| 23:13:20 | EXetoC | ok |
| 23:13:38 | * | zauberparacelsus joined #nimrod |
| 23:13:44 | Araq | or perhaps it's superb and only hairy to implement |
| 23:14:51 | zauberparacelsus | Just attempted to build Nimrod, and the compile failed with some undefined reference errors: http://pastebin.com/Q7AKAvjX |
| 23:15:06 | zauberparacelsus | running on Linux Mint 16, compiler is GCC version 4.8.1 |
| 23:15:27 | Araq | yeah of course |
| 23:15:56 | Araq | the ubuntu people decided it's a good idea to say "fu ansi C standard" and to remove lrint |
| 23:16:59 | zauberparacelsus | yay Canonical :-/ |
| 23:17:03 | Araq | it's been fixed for months, you need to get more recent csources from nimbuild |
| 23:17:13 | zauberparacelsus | ok |
| 23:32:22 | Varriount | Araq, do you know which part of sigmatch.nim is causing the build problem? |
| 23:32:40 | zauberparacelsus | Araq: got it compiled and working, thanks |
| 23:33:14 | Araq | Varriount: sure but I don't know what breaks if I change it |
| 23:34:02 | Varriount | ^ Why commit messages are important. |
| 23:34:21 | Araq | no, the commit messages are fine |
| 23:34:47 | * | shodan45_ joined #nimrod |
| 23:34:49 | Araq | we need: # see tests/tfoo, tbar that depend on it |
| 23:34:50 | * | shodan45 quit (Quit: Konversation terminated!) |
| 23:36:01 | Araq | # This skips tyRange so that T gets inferred as 'int' which is what we want for ' range[0..100] +% x' |
| 23:36:16 | Araq | in other words: comments in the source code |
| 23:37:08 | Araq | and btw if you think comments are a code smell and you can write "obvious" code instead you're full of naive bullshit ;-) |
| 23:37:34 | Varriount | Er, no, I don't think comments are a code smell. |
| 23:37:46 | Araq | good |
| 23:38:09 | Varriount | Anybody who thinks that needs to be tossed into a physical representation of the compiler |
| 23:41:07 | Araq | what's a "not" type? |
| 23:41:39 | Araq | "not int" ... ? so anything but no int? |
| 23:41:47 | Varriount | Huh? |
| 23:42:25 | Araq | well zahary extended nimrod's type system with "beyond state of the art" features |
| 23:42:37 | Demos_ | what is the configfile option to tell nimrod to use a different C compiler? |
| 23:42:39 | * | zauberparacelsus left #nimrod (#nimrod) |
| 23:42:54 | Araq | Demos_: cc=vcc |
| 23:42:58 | Demos_ | thank you |
| 23:44:39 | Varriount | Araq, if I hat to give such a thing a term.. "exclusionary meta-type"? |
| 23:45:26 | Araq | the question is whether it already has a term in computer science and if not, I'm quite sure there is a reason why |
| 23:55:39 | * | Demos_ quit (Ping timeout: 272 seconds) |