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) |