<< 04-01-2014 >>

00:00:48BitPuffindom96: get ready though
00:00:56BitPuffindom96: ie reboot etc and that shut
00:00:57BitPuffinshit
00:01:54dom96I'm ready
00:01:57dom96but watching movie
00:02:29BitPuffindom96: there is an update by the way
00:03:38dom96Right, i'm getting on TS
00:04:04BitPuffinspeaking of updates and TS
00:04:07BitPuffinupdate TS server ;)
00:04:19dom96can't be bothered
00:04:47dom96gonna grab tea brb
00:09:35*aftersha_ quit (Quit: Computer has gone to sleep.)
00:11:15dom96BitPuffin: well?
00:11:23BitPuffindom96: almost done
00:11:27BitPuffinjust 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:28zaharyAraq, 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:02VarriountWhat 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:18gradhaVarriount: it means you don't understand the formatting rules
14:19:28*Varriount|Mobile joined #nimrod
14:19:37Varriount|Mobilegradha, ping
14:19:51gradhaVarriount|Mobile: pong
14:20:35Varriount|MobileSo, what are your thought on the path inaccuracies (and the api reworking you mentioned)
14:21:10gradhathe only crossplatform way I know of making a path API crossplatform is to force everybody use drive letters
14:21:33gradhajust 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:00Varriount|MobileGradha, the python pathlib module doesn't force you to use drive letters
14:22:11gradhacool, let's copy that then
14:22:41Varriount|MobileLemme check what method that uses..
14:24:51Varriount|MobileOf course, pathlib uses a slightly more object oriented way of representing paths.
14:25:18gradhathat'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:45Varriount|MobileJust a warning though, araq doesn't seem to like that idea.
14:27:45gradhaI don't like it either, previous allegro API used strings without much problems http://alleg.sourceforge.net/stabledocs/en/alleg030.html
14:28:25Varriount|MobileHere's the source for pathlib - https://github.com/python/cpython/blob/master/Lib/pathlib.py
14:30:30gradhamaybe the current API is fine and it just needs bug killing, despite those potentially changing runtime behavior
14:31:17Varriount|MobileHrm. Possibly.
14:34:55Varriount|Mobilegradha, under windows, pathlib simply uses the bare '\', implying the current drive
14:35:35gradhaso what does it do if you want join two absolute paths from different drives?
14:36:20Varriount|MobileLemme check. I'm gonna switch over to my laptop
14:37:09*PortablePuffin quit (Ping timeout: 265 seconds)
14:37:24gradhait could concatenate them yielding an impossible path, it could return one of the given paths, it could raise an exception
14:37:51VarriountGradha, do you mean, two paths with explicitly given drives?
14:38:01gradhayes, c:\dir + d:\dir
14:39:51VarriountIn that scenario, it uses the drive of the secondary path being joined
14:40:20gradhathere you go, that's one design decission you have to take nobody wants to take
14:40:35Varriount"C:\\Users" + "D:\\Users" = "D:\\Users"
14:40:50gradhaIMHO 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:06VarriountIt does? Huh.
14:41:25VarriountWell, that's definately something that needs to be added.
14:41:31gradhaVarriount: try again with different directories, maybe it's picking the second parameter by default
14:41:41*zauberparacelsus joined #nimrod
14:42:59Varriountgradha: Path("C:\\Users").join(Path("D:\\Programs")) -> NTPath('D:\\Programs')
14:43:39gradhaso absolute paths "override" previous absolute drive letters
14:43:46gradhaIn such situations I'd prefer the API to return the empty string or nil even, otherwise subtle errors can go unnoticed
14:44:15VarriountYeah. Let me read the PEP for the lib and see if there's justification for that behavior
14:44:17gradhajoining two absolute paths seems a bad idea to me, like adding a string to an integer
14:45:46VarriountPEP 428 - "Joining semantics are similar to os.path.join, in that anchored paths ignore the information from the previously joined components:"
14:46:48VarriountSo, I guess their reasoning behind that decision was backward compatibility
14:53:52Varriountgradha, 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:05Varriount*there's
14:55:16gradhayou 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:09gradhait seems os.path.join is more a python immutable string aberration than what you can have in nimrod with dir1/dir2/dir3
14:57:26Varriountgradha, which is why the new pathlib module was created.
14:57:48*Mordecai is now known as psquid
14:57:59VarriountIt's situations like these that make me wish everything used URI's
14:59:03gradhawell, if pathlib was created to avoid previous aberrations, they would not keep behaviour compatible
15:00:09Varriount*shrug*
15:01:03gradhadoesn't python Path object have a + overload?
15:01:40gradhamaybe + and join have different behaviours, with + joining objects, and join joining strings
15:01:59VarriountNope, no overloads for + or &
15:02:15VarriountThere is an overload for '/' though
15:02:41VarriountOr at least, I thought there was (I was wrong)
15:02:49gradhanothing makes sense to me then
15:03:29VarriountOr wait..
15:04:36*PortablePuffin joined #nimrod
15:04:48OrionPKmorning gents
15:05:05VarriountHm. I wonder if I have an outdated version (mine dates back to before pathlib was introduced into the stdlib)
15:06:03gradhathat PEP's rationality for object orientation is amazing
15:06:23gradha"everybody else is using objects, we have to too"
15:06:46Varriountgradha, to be fair, using os.path is/was a pain
15:07:21gradhareally?
15:07:29VarriountYes
15:07:59dom96hello guys
15:08:10gradhaVarriount: tell me more
15:09:08gradhadom96: how's the twitter doing?
15:09:33PortablePuffinoi dom96
15:09:35dom968 followers!
15:09:41*gradha checks the twitter, sees no badgers, looks at dom96
15:09:50OrionPKuh oh
15:10:12dom96PortablePuffin: Don't you oi me you portable puff.
15:11:12Varriountgradha, os.path became... convoluted in cases where multiple functions that only took pairs of arguments needed to be used
15:11:39dom96gradha: Do you expect a tweet per day with a different picture of a badger?
15:12:00gradhadom96: sounds like a plan, then by february we can pick the official mascot
15:12:46Varriountpath.relpath(path.join(path_one, path_two) os.join(path_one, path_three))
15:13:03VarriountEr, forgot to add a comma
15:13:13*psquid quit (Quit: work)
15:14:45Varriountgradha, or, here's an example from a stack overflow answer
15:14:58Varriountpath = os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)),"..",".."))
15:15:05EXetoC:E
15:17:55PortablePuffindom96: oi!
15:18:23gradhaVarriount: 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:48Varriountgradha, also, path attribute access
15:19:37gradhathe pep doesn't talk about that, what do you mean?
15:19:50Varriounttarget_path.drive
15:19:57Varriounttarget_path.root
15:20:14*aftersha_ joined #nimrod
15:20:29PortablePuffindom96: that's a bit harsh
15:20:45Varriountgradha, 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:48dom96PortablePuffin: You're right.
15:21:29gradhaVarriount: you seem like the correct person to replace nimrod's os API, go, go!
15:21:41*zauberparacelsus left #nimrod (#nimrod)
15:22:24Varriountgradha, I dislike designing API's without either A: Total confidance that I'll get it right, or B: Community support
15:22:46Varriountgradha, 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:46EXetoCthe sugar makes that much of a difference?
15:24:02VarriountYes.
15:24:07VarriountAt least, to me.
15:24:46VarriountI liken it to creating a drawing with 3 differently colored pencils, instead of just one.
15:25:38gradhaVarriount: you also don't need to deal with community support
15:26:16Varriountand why is that?
15:26:39gradhabecause there's not much of a community anyway, plus the set of people worrying about paths is even smaller
15:27:23dom96What's the problem with paths in Nimrod?
15:27:39gradhagood luck figuring about A), getting right things is not easy
15:27:41EXetoCthe fact that procs are used either way seems to be a more important factor. the sugar is still very useful though
15:27:57EXetoCand then you have the occasional method of course, but I've seen very few of those
15:28:03gradhadom96: recent issue
15:28:42Varriountdom96, nothing that would affect you, unless you care about Windows users. :p
15:28:51dom96Varriount: Of course I do.
15:29:00dom96Windows users are the most important users.
15:29:34Varriountdom96, essentially, unixToNativePath is hardcoded to use the C: drive as the drive to use when converting paths to Windows
15:29:37EXetoCsure are
15:29:47EXetoCbuilding some C++ code now. slow as hell >.<
15:29:52Varriountdom96, see the recent issue I posted
15:31:48PortablePuffindom96: I wanna play ze dota
15:32:12dom96PortablePuffin: now?
15:32:38PortablePuffindom96: soonish
15:33:08PortablePuffindom96: I will tell you when it would be appropriate for you to get your tea
15:33:23dom96lol
15:33:34dom96Well I'm on Linux currently.
15:33:39dom96Would like to fix Jester.
15:33:44dom96Before we play.
15:36:33dom96Varriount: I replied.
15:36:56dom96gradha: Are there really enough issues with the os API to warrant a complete rewrite?
15:37:46*noam_ joined #nimrod
15:38:22PortablePuffindom96: hurry then!
15:38:50dom96PortablePuffin: 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:03gradhadom96: no
15:41:03Varriountdom96, gradha : I thought gradha mean't more that parts of the api, not just os.nim, need to be redesigned.
15:44:00dom96hrm, I see.
15:46:53Varriountgradha, 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:07gradhano
15:49:32*BitPuffin joined #nimrod
15:57:53*pafmaf joined #nimrod
15:59:53BitPuffindom96: okay so ready in about 20 min?
16:00:02dom96ehhhh
16:00:03dom96maybe
16:00:06dom96hello pafmaf
16:00:14pafmafhi
16:01:10BitPuffindom96: well at least ready to get your tea
16:04:11VarriountHi pafmaf
16:04:32pafmafhi!
16:06:11gradhagood day, pafmaf
16:06:41pafmafgood day, whow friendlist IRC channel ever :D
16:07:22dom96Thank you. We strive for that reputation :)
16:07:26VarriountWe're a small community. If we didn't act like decent human beings, we'd be even smaller.
16:08:08VarriountAnd probably less productive.
16:09:02pafmafJust learned about Nimrod and now checking out the tutorial. Why can't I compare two uints?
16:09:15dom96import unsigned
16:09:45dom96Araq (the creator of Nimrod) wants to discourage the use of uints so they are in a separate module.
16:09:56Varriountpafmaf, the honorable create of Nimrod, Araq, wants to discourage use of unsigned integers.
16:10:55Varriount*creator
16:11:03Araqhi pafmaf welcome
16:11:15pafmafah, thanks. hi Araq
16:11:49AraqVarriount: what's wrong with unixToNativePath?
16:12:24VarriountAraq, it's hardcoded to use the C drive. At least, last time I checked it was.
16:13:06BitPuffindom96: actually I think you will get a little bit more time ;)
16:13:11VarriountYeah. Line ~299 in os.nim
16:13:21BitPuffinhey pafmaf!
16:13:27dom96BitPuffin: k
16:14:00AraqVarriount: only if it's an absolute path.
16:14:06Araqwhat's the alternative?
16:14:16VarriountUsing a bare '\'
16:14:20Araqwhy is it a problem? did it cause a bug?
16:15:09VarriountAraq, read my issue -> https://github.com/Araq/Nimrod/issues/795
16:16:59Araqah very well
16:17:47Araquse an additional currentDrive = "\\" then
16:19:53AraqunixToNativePath should only be used for relative paths anyway though
16:20:26VarriountJust 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:21Araqsure, but we also need a "show source code" feature
16:21:45VarriountIn the documentation?
16:21:51Araqyeah
16:22:03gradhathat seems quite easy to do
16:22:24gradhais it really needed though?
16:22:34gradhaI guess it's better than no docstrings
16:23:00AraqI like it, reading code can be nicer than reading documentation
16:23:25VarriountAt minimum, a link to the module source somewhere on the module's documentation page would be nice.
16:23:32gradhaAraq: you want it embedded and hidden through javascript or hyperlinked to a separate file?
16:23:55Araqthinking about it, we can link to github I think
16:23:59gradhahmm.. links to github could be provided given the current commit is known
16:24:12Araqha! great minds think alike :P
16:24:32*Icefoz quit (Quit: leaving)
16:24:43*Icefoz joined #nimrod
16:24:49Varriountgradha, 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:52gradhawe could pass the compiler a new parameter, --source-hyperlink=str, with str having a subexes format for filename and line
16:28:16gradhawhen that is enabled a "see source" could be added, with the hyperlink formatted to the info provided by docgen
16:28:34gradhaand you could also have "file:///", though browsers usually fuck that up badly
16:32:08Araqhmm unixToNativePath seems to convert ./foo to .foo
16:32:53Araqand the macos version never has been tested, nor does anybody care about "classic mac"
16:33:55Araqwhen defined(windows): path.replace('/', '\\'): else: path
16:34:11Araqseems to be the way to go XD
16:34:59VarriountAraq, I doubt it could be as simple as that.
16:35:46Araqwell actually / is valid as separator on windows too but quite some software doesn't know about it
16:36:08Araqso it's better to replace it with \
16:36:41VarriountAraq, don't forget extended paths
16:37:12Araqlike? \\?\stuff ?
16:37:28VarriountYeah.
16:37:33gradhasee http://msdn.microsoft.com/en-us/library/aa365247(v=vs.85).aspx
16:37:59Araqwell you know ... unixToNativePath needs to support unix's features, not windows's
16:38:07Varriount:P
16:38:58VarriountWe should just create our own special path format, and use that instead. :3
16:41:16Araqbbl
16:42:21dom96BitPuffin: ETA?
16:43:30*aftersha_ quit (Quit: Computer has gone to sleep.)
16:48:23VarriountAnyone know of a way to set clean up actions on assertion failures?
16:49:03VarriountOh, nevermind.
16:49:18gradhaonFailedAssert
16:49:32gradhait presumably works
16:49:41Varriount"presumably"?
16:49:59gradhahttps://github.com/Araq/Nimrod/issues/787
16:50:50Varriountgradha, 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:07VarriountAnd I'd rather not have a computer program try to eat me.
17:01:21NimBotdom96/jester master 00cddc9 Dominik Picheta [+0 ±1 -0]: Fixes #8
17:01:21NimBotdom96/jester master 8ffbc31 Dominik Picheta [+0 ±2 -0]: Fixes #9
17:04:58BitPuffindom96: 10 minutes?
17:05:06dom96sure
17:05:11BitPuffingreat
17:05:16BitPuffinhave you fixed jester?
17:06:26dom96ya
17:11:55VarriountOdd. 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:18gradhait looks a little bit tiring to see that much source code http://imgur.com/NBTDY9b
17:27:01Varriountgradha, lemme show you what I saw one doc template do
17:28:28Varriountgradha, http://imgur.com/RvyXmVU
17:29:07gradhaok, you do the html
17:29:30VarriountWait what?
17:30:17gradhamodifying nimrod doc templates to show that orange thingy
17:30:22VarriountFirst off, I didn't make that page, someone else did. Second, I was only trying to provide inspiration
17:31:02VarriountTo 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:44VarriountAraq, ping
18:22:58*shodan45_ quit (Quit: Konversation terminated!)
18:26:15AraqVarriount: pong
18:30:21VarriountAraq, 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:32Araqsure
18:30:46VarriountIt's not working very well.
18:31:05Araqlol
18:31:15Araqdue to compiler bugs concerning 'range'?
18:31:34VarriountWell, that, and the fact that their types are incompatible
18:35:34VarriountAraq, for example, if I change TPathComponent to "TPathComponent = pcFile..pcLinkToDir", then any procedure which declares itself as returning a TPathComponent breaks
18:37:36Araqtype TPathComponent = range[pcFile..pcLinkToDir]
18:37:44Araqyou used that, right?
18:38:24VarriountYep
18:38:49Varriountlib\pure\os.nim(1272, 16) Error: type mismatch: got (tuple[PathKind, string]) but expected 'tuple[kind: TPathComponent, path: string]'
18:41:49Araqyeah that's a tricky thing
18:43:15VarriountWhat code, besides os.nim, actually uses the path component kinds in the form of a range of high and low?
18:43:49Araqyou never know
18:44:27Araqbut you can't simply extend the enum because then 'case' forces you to handle pkNone which is braindead
18:44:39Araq*pcNone
18:45:07VarriountAraq, what about a converter procedure?
18:45:22Araqmaybe your initial idea of simply using a new enum is best
18:45:52AraqI don't really like converters
18:46:33VarriountAraq, 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:10Demos_I like converters, I think they are a pragmatic solution to a problem that comes up often
18:47:46Demos_or that comes up sometimes and is tricky to solve
18:49:08AraqVarriount: alright then raise an exception instead of pcNone ;-)
18:50:57VarriountBut that kinda defeats the point of classifyPath. :/ Oh well..
18:51:12Araqwhy do we need classifyPath again?
18:52:08VarriountIt'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:44Araqyeah but it's even more efficient to wrap 'stat' and name it pathProps() or something
18:53:03VarriountAraq, but stat doesn't work completely on windows.
18:53:30Araqwell provide what's common for both posix and win then
18:54:06VarriountI am. It's just that Windows doesn't have a sane implementation of the c stdlib
18:54:44Araqwell things like "lastModified" etc. exist on windows too, you know
18:58:18VarriountAraq, i'm talking about classification. Whether a path points to a file, directory, link to a file, or link to a directory
18:59:29Araqyeah. 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:25VarriountBut then you have to gather all that information (unless you use some on-demand gathering mechanism, and then you have race conditions)
19:00:56Araq"classifyPath" is not a common operation. Usually you pass the path to "open" and catch IO exceptions instead
19:01:17OrionPKdom96 should I add gzip support into jester, or should I just make a separate lib?
19:01:19Araqor you iterate over things via walkDir and walkFiles
19:02:51Araqand there is no need to "gather" all that information
19:03:00Araqstat is roughly equivalent to findFirstFile
19:04:31VarriountAraq, actually, a better equivalent is GetFileAttributes
19:07:17VarriountSo ok, say we replace classifyPath with a stat() like procedure.
19:08:05VarriountFirst off, then we also get rid of the 'getLastModificationTime', 'getLastAccessTime', and all the other procedures which retrieve stat-like information
19:08:30Araqno
19:08:43Araqwe don't get rid of them because they work
19:08:53Araqand I'm tired of the endless bike shedding
19:09:26Araqbut surely lets not introduce more and more things that only return tiny pieces of information
19:09:56Araqand btw, usually what has been added has also been used somewhere
19:10:16Araqwe don't write procs we never need
19:15:42VarriountAraq, ok then, what kind of information should the stat() like procedure return?
19:19:49Araqthe intersection of WIN32_FIND_DATA and stat_t
19:20:23VarriountOk.
19:23:04Araqit 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:43Araqbut this information looks hard to get
19:24:04AraqWIN32_FIND_DATA doesn't have that afaict
19:24:40VarriountOff the top of my head, such data is not only OS dependant, but likely filesystem dependant.
19:29:55gradhabumped https://github.com/Araq/Nimrod/pull/793 with "see source", example at http://dl.dropbox.com/u/145894/t/ndocs/system.html
19:30:26gradhaAraq: wrt #793 can I add more columns to .idx files for a prettier theindex.html?
19:31:40Araqyes
19:31:54Araqand excellent work. "See source" is cool
19:32:26gradhathanks, "embed src" is easier, but likely builds huge html and is annoying without js
19:33:41Araqyeah I agree
19:34:05Araqeverything is on github these days anyway and it's all optional
19:34:53*PortablePuffin quit (Ping timeout: 252 seconds)
19:36:36VarriountAraq, I'm sorry if I was argumentative and a bit obnoxious over the classifyPath thing.
19:37:01VarriountNow that I look at things, I do see why a stat() like procedure is better.
19:37:22*brson joined #nimrod
19:37:29Araqnah it's fine. I'm harsh because constantly something is crying here
19:39:10Araq(baby)
19:39:42VarriountAraq, I'm about to send out a big pull request that adds and rearranges some things in os.nim
19:40:06Araqthen I hope you worked on devel ...
19:40:38VarriountIt'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:51VarriountOh rats. Did I miss a memo or something?
19:41:18Araqno, I usually never say anything about my real life
19:41:45VarriountErm, I meant about the devel branch.
19:41:51Araqlol XD
19:42:10Araqwell there is lots of work on the devel branch
19:42:22AraqI touched every line of code to support --cs:partial
19:42:43OrionPKstring .len is O(1) right?
19:42:49Araqyes
19:43:37VarriountWell, 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:46Varriount*shudder*
19:44:03Araqgood
19:44:34Araqhmm why didn't I push this thing on master?
19:44:47Araqit doesn't break anything ... oh I know
19:45:17Araqbecause I based it on vm2 which does break things
19:45:54Araqgit branching only works when you use your brain. sadly.
19:47:34VarriountAuto-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:55VarriountAraq, 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:10VarriountHas anyone been able to bootstrap nimrod using the devel branch on 64 bit windows
20:43:32Demos_I bootstrapped master, what is your problem. Maybe I had it
20:43:52VarriountDemos_, I'm talking about the devel branch
20:44:13Varriountapparently we need to use it for the forseeable future, until it's merged into master
20:44:29Demos_hm let me give it a shot
20:44:56Demos_oh, I actually do not have mingw64 installed...
20:44:57VarriountIf it works for you, then it's likely something in my build setup (which is possible)
20:45:05Varriount>_<
20:45:09Demos_what is the problem, because I had several
20:45:16Demos_when I tried master
20:45:37VarriountDuring 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:51VarriountSame for the 64 bit version
20:47:54VarriountThe 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:48Varriountzahary, ping
21:24:18Araqhmm IntMax32 includes "bool" ... *sigh*
21:25:03VarriountAraq, do you happen to know zahary's mailing address?
21:25:21Araqsure lol
21:25:27gradhaIIRC you can contact people through github, but nobody uses the web any more
21:25:31VarriountI'd like to send him a cd with Windows on it.
21:25:55Araqhe frequently uses windows
21:26:00Araqor at least used to
21:26:36Araqbut since I'm unproductive let me go through his commits
21:26:47VarriountI know which one caused it
21:26:56VarriountI just don't know what change in the commit it was
21:27:12VarriountIt's commit 199fd0725c9a5d4aea5b893ad991b87426c50bde
21:29:12EXetoCAraq: and it contains int, unconditionally
21:29:59AraqEXetoC: that seems fine though
21:32:42Demos_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:58gradhayes
21:33:03gradhaor strdup it
21:33:32gradhaDemos_: see http://forum.nimrod-lang.org/t/319
21:33:36Demos_strdupin it would not help. and what about if the original string is derived form a string literal?
21:34:57gradhasorry, I missread, if the caller copies the string… you don't need to do much more
21:35:38Demos_yes, but the caller copies the string after the nimrod function has returned
21:36:07gradhathat's incorrect then, the GC might have already freed the cstring
21:36:44Araqnah, it still should be fine
21:36:54Araqthe GC doesn't run between calls
21:38:24gradhaI decided to play safe and set a global
21:39:00Araqyou should really set a threadvar instead
21:39:12Demos_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:44Demos_would I need to use a ref string and pin and unpin that?
21:40:10Araqno idea what you mean, you get a cstring, you copy it into a C# string and you're done
21:41:14Araqother direction: you pass the C# string as a cstring to Nimrod, nimrod copies the cstring into its string and you're done
21:41:32Araqno need to pin/unpin anything
21:43:42AraqVarriount: I can't find that commit in here: https://github.com/Araq/Nimrod/commits/devel
21:43:49Araqwhat am I doing wrong?
21:44:38Araqnever mind
21:49:26Araqare you sure it's that commit?
21:56:07Varriount|MobileAraq, it might be the way I copied the branch
21:56:29Varriount|MobileWait a moment, I'm in the shower
21:59:14Araqer ... ok ...
21:59:32VarriountAraq, it's the one that says "clean-up some obsolete code; close #602"
21:59:37Araqit's nice you're as determined as I am when it comes to Nimrod
21:59:55Araqyeah ... ugh then
21:59:59Araqno 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:40VarriountAraq, I found the file that causes the error - compile/sigmatch.nim
22:27:45Varriount*compiler
22:28:17Araqwell that was obvious to me :P
22:28:33VarriountOh, it was?
22:28:38Araqbut I still don't see how this commit caused that
22:29:07Araqyeah obviously it infers T = range[0..1023] where it should infer T = int instead
22:30:10Araqranges 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:13Demos_COLORS!
22:32:16Demos_kinda
22:32:23Demos_followed by a segfault, but still
22:32:43VarriountDemos_, ?
22:33:51Demos_in visual studio, I got some colors to show up, but it is quite buggy
22:37:13VarriountAraq, you probably already know this, but the number 1023 is also the value of the "halfMask" const
22:38:02Araqx and 1023 produces the type range[0..1023]
22:38:24Araqthat's a feature to keep the number of integer type conversions down
22:38:48Araq(yeah I already know this :P )
22:42:29OrionPKdemos u gonna be able to highlight my templates? :P
22:46:15gradhagood night, honey badgers
22:46:23*gradha quit (Quit: bbl, need to watch http://www.youtube.com/watch?v=dEf4PJZXBxA again)
22:46:59Demos_I hope
22:47:16Demos_if nimrod can compile them I should be able to highlight em
22:53:17*darkf joined #nimrod
23:03:07Araqand it's this time of the day again ...
23:03:25AraqI'm thinking about a "nothread" pragma
23:03:36Araqbut perhaps it should be "serial" instead?
23:06:09Araqit's used to mark a section of code that is only supposed to run before parallel processing starts
23:12:25EXetoCAraq: misfeature? is it the approach that is wrong?
23:13:01Araqperhaps I don't know yet
23:13:20EXetoCok
23:13:38*zauberparacelsus joined #nimrod
23:13:44Araqor perhaps it's superb and only hairy to implement
23:14:51zauberparacelsusJust attempted to build Nimrod, and the compile failed with some undefined reference errors: http://pastebin.com/Q7AKAvjX
23:15:06zauberparacelsusrunning on Linux Mint 16, compiler is GCC version 4.8.1
23:15:27Araqyeah of course
23:15:56Araqthe ubuntu people decided it's a good idea to say "fu ansi C standard" and to remove lrint
23:16:59zauberparacelsusyay Canonical :-/
23:17:03Araqit's been fixed for months, you need to get more recent csources from nimbuild
23:17:13zauberparacelsusok
23:32:22VarriountAraq, do you know which part of sigmatch.nim is causing the build problem?
23:32:40zauberparacelsusAraq: got it compiled and working, thanks
23:33:14AraqVarriount: sure but I don't know what breaks if I change it
23:34:02Varriount^ Why commit messages are important.
23:34:21Araqno, the commit messages are fine
23:34:47*shodan45_ joined #nimrod
23:34:49Araqwe need: # see tests/tfoo, tbar that depend on it
23:34:50*shodan45 quit (Quit: Konversation terminated!)
23:36:01Araq# This skips tyRange so that T gets inferred as 'int' which is what we want for ' range[0..100] +% x'
23:36:16Araqin other words: comments in the source code
23:37:08Araqand btw if you think comments are a code smell and you can write "obvious" code instead you're full of naive bullshit ;-)
23:37:34VarriountEr, no, I don't think comments are a code smell.
23:37:46Araqgood
23:38:09VarriountAnybody who thinks that needs to be tossed into a physical representation of the compiler
23:41:07Araqwhat's a "not" type?
23:41:39Araq"not int" ... ? so anything but no int?
23:41:47VarriountHuh?
23:42:25Araqwell zahary extended nimrod's type system with "beyond state of the art" features
23:42:37Demos_what is the configfile option to tell nimrod to use a different C compiler?
23:42:39*zauberparacelsus left #nimrod (#nimrod)
23:42:54AraqDemos_: cc=vcc
23:42:58Demos_thank you
23:44:39VarriountAraq, if I hat to give such a thing a term.. "exclusionary meta-type"?
23:45:26Araqthe 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)