<< 28-04-2014 >>

00:04:14DemosIRC logs are down
00:06:24EXetoCit's not exactly a big improvement over the traditional way of string formatting
00:07:16VarriountDemos: Go yell at dom96, he's the one with access to the server.
00:07:29VarriountDemos: Probably disk space taken up.
00:17:41*springbok quit (Ping timeout: 264 seconds)
00:30:13*shevy left #nimrod ("I'll be back ... maybe")
00:48:03fowlVarriount, idk what araq was smoking, you can definitely do unpacking in a for loop
00:48:07fowllet u = @[(1,2),(3,4)]
00:48:07fowlfor a,b in items(u):
00:49:24*brson joined #nimrod
00:55:12*xenagi joined #nimrod
00:58:38VarriountWell that's interesting...
00:59:01VarriountIsn't a single threaded program only able to utilize one CPU core for computation at any one time?
01:01:55*q66 quit (Quit: Leaving)
01:22:28VarriountYou know, there are times when a goto would be /really/ helpful
01:31:47njoejoemy first attempt at a macro doesn't work yet. not sure what all the problems are, but I think one is that the macro needs to replace the line it is working on: https://gist.github.com/jots/1de3c8af82f884c1ae1a
01:39:21Varriountnjoejoe: What is it that you want the macro to do?
01:40:35njoejoevar1:int, var2:string,var3:float = line.split(",") # place data into vars and coerce into proper types.
01:40:36EXetoCassignment unpacking
01:41:05njoejoebut as you can see i have no idea what i'm doing :-)
01:41:12Varriountnjoejoe: We already have tuple unpacking, you know.
01:41:29EXetoCit's limited
01:41:59EXetoCnot that I said assignment rather than initialization
01:42:35reactormonkVarriount, like?
01:42:56Varriountreactormonk: What do you mean?
01:43:03reactormonkVarriount, when do you want a goto?
01:43:11EXetoC*note
01:43:18njoejoei do not know about this tuple unpacking
01:43:36Varriountreactormonk: At one point during the procedure I'm writing. Although I've gotten past the point of needing this.
01:44:06Varriountnjoejoe: "var (x, y) = (1, 2)"
01:46:52njoejoeVarriount: but that won't work in a loop right? i want the var statement before the loop. plus now i kind of like the idea of coercing the strings into proper types, perhaps it's too much...
01:47:21*flaviu joined #nimrod
01:51:08flaviunjoejoe: Have you discovered dumpTree?
01:51:17Varriountnjoejoe: Well, the first thing you should know about macros is that you should try to resist the urge to just stringify and re-parse stuff. Working with the AST directly is usually better.
01:51:48flaviuVarriount: In this case, working with the AST is better, I like using strings for macro codegen
01:52:09Varriountnjoejoe: And you're right, the unpacking won't work with already declared variables.
01:55:03njoejoei will look into working with AST after dinner
01:55:42Varriountnjoejoe: So what you want is to unpack a sequence of strings into their proper representations, like int's or such.
01:56:17Varriountnjoejoe: I have some suggestions that may help. Ping me when you get back.
02:00:06flaviunjoejoe: I don't think that syntax is going to work. You might have to settle for `(a: foo, b: bar) := asd`
02:11:09*brson quit (Ping timeout: 252 seconds)
02:14:00*Jesin quit (Quit: Leaving)
02:16:09*Jesin joined #nimrod
02:52:35*BitPuffin quit (Ping timeout: 252 seconds)
02:59:47*brihat quit (Ping timeout: 265 seconds)
03:04:45flaviunjoejoe: I have to go to sleep, but https://gist.github.com/11360767 should do what you'd like, as soon as I can figure out the (compiler?) bugs
03:04:49*flaviu quit (Quit: Leaving.)
03:05:27*Varriount|Mobile quit (Remote host closed the connection)
03:07:15fowlhm
03:08:45*Skrylar joined #nimrod
03:08:58fowlnjoejoe, if you want to run that ^ the fix is to change line 5 to " result = newStmtList(newLetStmt(tempVar, b))"
03:14:56*Demos quit (Read error: Connection reset by peer)
03:31:49*Jesin quit (Quit: Leaving)
03:35:02reactormonkgotta say, make is rather useful sometimes - except for compiling ^^
03:49:15*BitPuffin joined #nimrod
04:08:15*darithorn quit (Ping timeout: 276 seconds)
04:11:11*darithorn joined #nimrod
04:15:40*darithorn quit (Ping timeout: 265 seconds)
04:17:15*brihat joined #nimrod
04:18:20*njoejoe quit (Quit: Page closed)
04:36:27*bbodi joined #nimrod
04:39:32BitPuffinManaged to get nimrod mentioned on a podcast \o/ https://www.youtube.com/watch?feature=player_detailpage&v=bdqLQHeuigs#t=6293
04:40:01*bbodi quit (Client Quit)
05:34:06*brihat left #nimrod (#nimrod)
05:36:11*isenmann joined #nimrod
07:41:32*bbodi joined #nimrod
08:21:50*Mat3 joined #nimrod
08:22:00Mat3G'Day
08:22:16bbodigood day!
08:22:47Mat3hello bbodi
08:23:58Mat3just build version 0.9.4 and the sources compile out-of-the-box, nice work !
08:41:38Araqthat's the least we could do, really ;-)
08:42:41BitPuffinAraq: are you happy with me now? :D
08:44:12dom96BitPuffin: Do they have IRC logs? I'm curious what went on in that IRC channel when they mentioned Nimrod
08:44:48BitPuffindom96: not sure I asked in their channel for you
08:48:51dom96brb
08:49:16milosnhmmm I posted my weekend's work in Nimrod to our ReviewBoard tool :), if we are lucky Nimrod will be integral part of the INTERNET soon, generating master DNS zone file for .LA TLD
08:49:25milosngood morning by the way
08:49:26milosn:)
08:52:49BitPuffinmilosn: dude, that wolud be awesome
08:54:22milosnBitPuffin: its not as exciting as ive made it look :D ... its 250 line script ... but its cool anyways
08:54:28milosnlets see what boss says :P
08:57:02BitPuffinmilosn: well it's still nice :)
09:09:22EXetoCyou should port linux to nimrod
09:11:45dom96milosn: that's still awesome. What does the script do?
09:12:58*Mat3 quit (Ping timeout: 240 seconds)
09:13:33dom96BitPuffin: any reply?
09:14:46BitPuffindom96: yeah, NSA
09:19:08dom96The NSA won't help me :\
09:21:26BitPuffindom96: you should call them and ask
09:21:33BitPuffindom96: GCHQ probably has the logs as well
09:21:45BitPuffindom96: and they are probably more likely to help you than NSA since you live in the uk
09:21:50BitPuffinand the podcast is a UK podcast
09:22:03dom96BitPuffin: They're probably spying on me right now anyway, if they could help me they would have already :P
09:27:43milosndom96: it generates bind zone file from sqlite DB :) ... its a weird arragement we have where we make our customers be in charge of actuall zone generation ... so we supply them portable DB and tool to generate the zone
09:28:11milosnso its like, they are in charge, but they really are not ... but makes them happy
09:28:23dom96hah
09:28:25milosnbut gov-s love thinking they are in charge
09:28:34milosn.LA is laos
09:28:52milosnwe market it as Los Angeles :)
09:29:03dom96yeah, I just looked it up and was reading about Laos.
09:29:06*milosn works for DNS registry
09:29:43dom96From the pictures it looks very nice.
09:30:17milosndunno never been there, we just sent them one 1U server where they "generate" the zone :D
09:30:51dom96oh hah. Where are you from then?
09:31:06milosni am serbian, but i am in London now
09:31:24dom96cool
09:31:55dom96Is the company in charge of that TLD based in London then?
09:32:03milosnyup
09:32:19*Mat3 joined #nimrod
09:32:34milosni mean ... we run it, Laos gov is in charge :)
09:32:44milosnthey even generate the zone :P
09:32:45milosn:D
09:33:06BitPuffinmilosn: ah how long are you staying in london?
09:33:30milosnBitPuffin: dunno, till the end of time? :)
09:33:40milosnBitPuffin: i live here now, in UK last 8 years
09:35:33BitPuffinah haha
09:35:34BitPuffincool
09:44:20*faassen joined #nimrod
10:05:34*EXetoC quit (Quit: WeeChat 0.4.3)
10:27:28Mat3ciao
10:27:33*Mat3 quit (Quit: Verlassend)
10:47:32*EXetoC joined #nimrod
10:58:24*nande quit (Remote host closed the connection)
11:38:09milosnheh
11:38:53milosnnow i have strange problem, app which takes 3-4 seconds to execute on arch linux and debian ... takes more than 1min on centos6
11:38:56milosn:)
11:39:22milosnmind you i had to do this:
11:39:24milosnln -sf /lib64/libpcre.so.0 /lib64/libpcre.so.1
11:39:37milosncentos6 has wrong version of PCRE
11:40:00milosncould that be the cause of the slowness?
11:42:58Araqyes. you should ensure you use a version of PCRE that has its JIT enabled
11:57:39EXetoCwhen do you not want that?
11:58:59EXetoCall these compile-time flags
12:02:24*BitPuffin quit (Ping timeout: 240 seconds)
12:19:41milosnAraq: hmmm thats a show stopper ...
12:20:01milosni cant have this app run a minute, and i cant package my own libpcre
12:20:03milosn:(
12:20:33milosnhmmmm
12:20:53*faassen quit (Remote host closed the connection)
12:21:13dom96maybe you could use pegs instead of the re module?
12:25:17bbodido default parameters work on methods?
12:28:13dom96try it and see
12:29:13bbodi:) I asked it because it seems it does not work
12:29:40bbodiThe original methos is called, not the overloader
12:32:12dom96i see
12:32:24dom96in that case i don't know
12:32:34dom96i never had a need for methods
12:33:50bbodiis there any other way I can handle inheritance in Nimrod?
12:33:55Araqmilosn: you can package your own libpcre but it's a bit of work
12:34:30AraqI used to merge all its .c files into a single file and do {.compile: "pcre_merged.c".}
12:35:07Araqyou might need to patch pcre.nim, but it's not hard and I'll accept patches
12:38:03Araqbbodi: make a bug report, but it's likely you're simply doing it wrong :P
12:42:09milosnAraq: ill have a look, depends how large is PCRE ... if its dozens od C source files ... urgh
12:42:20milosns/od/of
12:45:02Araqwell you can also use multiple {.compile.} statements of course
12:47:09milosnAraq: ill have to have a look when i get home tonight
12:50:47Araqhey if it means nimrod is used in production for DNS registry, I'll even do it myself :P
12:50:58Araqit's not hard, just boring
12:51:57milosn:)
12:58:09Araqbbodi: I usually use closures instead of methods when I need dynamic binding
12:59:29bbodiyeah, I saw examples in the compiler where tuples[func1, func2] is used for these purposes, but how can I connect data with functions? (so using the this ptr)
13:01:42Araqa "closure" is already a pair (env, func)
13:02:00Araq"env" "connects the data with the function"
13:02:16Araqin other words you capture what you need
13:02:50bbodihm, got it, I like the Idea :)
13:03:09bbodithen why methods were introduced? for convience?
13:03:18milosnAraq: so i can just merge 92 PCRE C files into one file? no modification required?
13:03:25*milosn looking at PCRE source
13:03:35milosnive never done this, and my C is crap
13:05:15milosnit kinda explains my interest in nimrod :P
13:05:16milosn:)
13:13:04*Jesin joined #nimrod
13:18:04*BitPuffin joined #nimrod
13:22:42*darkf quit (Quit: Leaving)
13:26:33dom96 would be nice to get a native regex implementation for Nimrod.
13:30:51milosndom96: thinking short-term ... what Araq suggested could be the way out for me
13:30:57milosn:)
13:33:04bbodithen why methods were introduced? for convience?
13:34:33*[1]Endy joined #nimrod
13:35:59*[2]Endy joined #nimrod
13:39:01*[1]Endy quit (Ping timeout: 252 seconds)
13:52:05*Jesin quit (Quit: Leaving)
13:57:08OrionPKdom96 regex at compile time
13:57:15OrionPKdom96 pre-compiled w/ macros
13:57:28dom96yes, that too.
13:57:57OrionPKdid you see that rust article?
13:58:40OrionPKhttp://blog.burntsushi.net/rust-regex-syntax-extensions
13:58:44dom96yep
14:25:46milosnAraq: its not PCRE ... ive copied over libpcre.so.3 from my debian box and removed symlink i made for libpcre.so.1 -> libpcre.so.0
14:26:00*bbodi quit ()
14:26:02milosnit could be sqlite thats crapping out
14:28:36milosnhmm centos6 has 3.6.20 and debian is on 3.7.13
14:37:01*menscrem joined #nimrod
14:43:55*q66 joined #nimrod
14:43:55*q66 quit (Changing host)
14:43:56*q66 joined #nimrod
14:56:05*Skrylar quit (Ping timeout: 264 seconds)
15:59:41*untitaker quit (Ping timeout: 255 seconds)
16:03:15*DAddYE joined #nimrod
16:05:53*untitaker joined #nimrod
16:36:32*darithorn joined #nimrod
16:37:12*Jesin joined #nimrod
16:42:15*uvelichitel joined #nimrod
16:42:34*Jesin quit (Quit: Leaving)
17:04:42*Demos joined #nimrod
17:22:00*BitPuffin quit (Ping timeout: 240 seconds)
17:23:29menscremHi, all. How to make a formatted output?
17:26:48fowlmenscrem, check the strutils module, `%` and format functions
17:30:44*Varriount|Mobile joined #nimrod
17:32:21menscremWhere to look for clues format? or they are the same as in С?
17:36:02fowlhttp://build.nimrod-lang.org/docs/strutils.html#%,string,openArray[string]
17:37:56menscremfowl: Thanks, did not notice
17:37:57EXetoCit's limited. you might have to call procs like formatFloat for example, but this might improve in the future
17:39:05*Matthias247 joined #nimrod
17:39:38menscremEXetoC: than it's limited?
17:41:05dom96For most things you can just use $
17:41:22EXetoCwhat do you mean? it's fine in general, but doesn't yet have all the things that printf has
17:42:15uvelichitelfowl: What does mean 'build.' prefix in your link? I investigate http://nimrod-lang.org/documentation.html by now
17:42:58uvelichitelWhat means http://build.nimrod-lang.org/docs ?
17:43:03EXetoCit's for the latest compiler build, rrather than the latest release
17:43:26uvelichitelEXetoC: Thanks
17:43:27EXetoCbut 0.9.4 was recently released so you won't find many differences atm
17:44:36*Skrylar joined #nimrod
17:53:37Varriount|Mobileecho + strutils
17:53:50Varriount|MobileEr, strutils.format
17:54:56*BitPuffin joined #nimrod
18:09:59fowlhmm
18:10:31fowlreading an example X program, it uses BUFSIZ, i only found BUFSIZE in the x headers, i wonder if its ok to use >_>
18:13:00*Jesin joined #nimrod
18:16:55reactormonkfowl, I would ask somewhere on freenode
18:17:23fowlthis is freenode
18:17:49EXetoChe got you there!
18:17:52reactormonkhttp://docs.purescript.org/en/latest/ <- any way we can salvage that webpage for the nimrod docs?
18:23:33dom96Somebody who is bored should write a comprehensive Nimrod tutorial.
18:25:26reactormonkdom96, what would you take as sample to orient it on?
18:26:50dom96reactormonk: not sure what you mean
18:27:12fowlthe tutorials are already comprehensive
18:27:24reactormonkdom96, ^
18:27:34reactormonkI think the documentation could use a search
18:28:48dom96After looking at it now I guess the content is good enough.
18:32:08reactormonkany way to access function names, arguments, etc. via JS in the doc? Aka dump it to a .json file?
18:32:17*Demos quit (Read error: Connection reset by peer)
18:32:57dom96It would be nice to see an example oriented tutorial though.
18:33:34dom96The current tutorial doesn't teach anything about the standard lib
18:34:28reactormonkso you want more examples in the documentation?
18:37:02dom96No, I want something similar to this: http://rustbyexample.com
18:38:47*brson joined #nimrod
18:40:20*Demos joined #nimrod
18:40:20*Matthias247 quit (Read error: Connection reset by peer)
18:47:28reactormonkneat
18:53:20*Varriount|Mobile quit (Quit: AndroIRC - Android IRC Client ( http://www.androirc.com ))
19:03:42*Matthias247 joined #nimrod
19:09:48EXetoCmeep
19:10:32fowlinteresting syntax
19:10:34fowlunpacking a struct
19:10:50fowllet Point(x: my_x, y: my_y) = somepoint
19:11:14fowl* let Point{x: my_x, y: my_y} = somepoint
19:18:45*io2 joined #nimrod
19:19:58*Matthias247 quit (Read error: Connection reset by peer)
19:22:04Varriountfowl: Is that from any language in particular?
19:23:38fowlVarriount, rust
19:23:43dom96fowl: You should be able to write a macro to do that.
19:24:06fowldom96, but its dreadful
19:24:09fowlalmost c-like
19:24:31fowlyou have to dig into the expression to find that you'll end up with variables my_x and my_y
19:25:28*Matthias247 joined #nimrod
19:25:40*Matthias247 quit (Read error: Connection reset by peer)
19:26:11fowldom96, OS module could use a function to get the clipboard contents, dont you think?
19:27:39dom96fowl: gradha's genieos package has that
19:28:06dom96looks like he only implemented it for Mac OS X though.
19:28:23*Matthias247 joined #nimrod
19:28:48fowllol. Bill Gates’ Microsoft Corp. announced on Saturday that Internet Explorer versions 6 through 11 are all vulnerable to a glitch that when properly exploited can give hackers remote access to a victim’s computer.
19:29:13dom96What do you guys think about D's and Rust's macros requiring a ! in their name?
19:30:00fowlit is silly
19:30:03Varriountdom96: Nimrod's first draft enhancement proposal -> https://github.com/Araq/Nimrod/wiki/Nimrod-Enhancement-Proposal-%231
19:30:58fowldom96, thanks
19:31:01dom96Varriount: Cool. Anything I can do to persuade you to work on fsmonitor?
19:31:18Varriountdom96: Help me get this path normalization routine finished.
19:31:36dom96fowl: I was reading through here: http://www.reddit.com/r/programming/comments/2441r9/syntax_extensions_and_regular_expressions_for_rust/
19:31:59dom96Apparently Walter Bright is "strongly against AST macros."
19:32:24Varriountdom96: https://gist.github.com/Varriount/11381792
19:32:38dom96Varriount: Sure, I'll give it a try.
19:33:15reactormonkdom96, aww
19:33:49Varriountdom96: You want fsmonitor to leverage the new async stuff, correct?
19:33:54dom96Varriount: yeah
19:34:25dom96Varriount: You'll probably run into bugs anyway so it won't take much of your time heh
19:39:29dom96Varriount: One of your while loops is indented with 4 spaces instead of 2
19:40:03dom96(But that's not the issue)
19:42:32Varriountdom96: *sigh* it may be that my tactic for path normalization is too complicated, and a less efficient method would work instead. If you feel that the procedure has no hope of working, I'd at least like a path normalization procedure some other way (possibly based off of whatever boost, python, ruby, etc do)
19:43:18dom96I think you've over-complicated it a bit.
19:43:32dom96There is no need for two while loops.
19:43:40VarriountAh, yes there is.
19:43:58Varriountthe inner one keeps on scanning the path until it runs out of tokens.
19:44:16VarriountOtherwise boundaries get added between path tokens.
19:44:28dom96Let me try to come up with an implementation.
19:44:34reactormonkVarriount, why do you need path normalization?
19:44:52reactormonkand can't you ask the OS for that?
19:45:03Varriountreactormonk: Copying stuff, and I need to figure out if two possibly nonexistant paths are equal.
19:45:49reactormonkVarriount, what about symlinks?
19:46:32dom96what about cmpPaths?
19:46:58reactormonkVarriount, http://linux.die.net/man/3/realpath
19:47:25dom96oh, I thought that used some OS call.
19:47:26Varriountreactormonk: Realpath only works on existing paths.
19:47:40EXetoCwrapping shit is so fun
19:47:52reactormonkshit sandwitch?
19:48:37DemosI was under the impression that the complexity of path normalization pretty much is unbounded
19:49:58dom96python has both a normpath and a realpath
19:56:01Demosright, but they probably do not work 100% of the time
19:56:41*io2 quit (Ping timeout: 252 seconds)
19:58:37*io2 joined #nimrod
20:01:30dom96Varriount: https://gist.github.com/dom96/11382471
20:02:03dom96requires more testing but should work
20:02:27EXetoCreactormonk: code and stuff
20:06:30Varriountdom96: Thanks. Now I can sleep easily tonight. (Really, this problem has been keeping me awake at night)
20:09:28dom96Not until you get fsmonitor working :P
20:10:07*flaviu joined #nimrod
20:10:30renesacdom96, what if I have a file called '...something'?
20:10:56dom96renesac: lol, that's why I said "requires more testing"
20:14:59Varriountdom96: What do you think of the NEP?
20:15:32VarriountIt's small yet, but hopefully I can squeeze enough information out of the community to make it useful.
20:17:08dom96renesac: fixed
20:19:48dom96Varriount: I like it.
20:19:53dom96I made a little addition
20:21:34dom96Varriount: You should add code examples like in the PEP.
20:22:15flaviuVarriount: Link?
20:22:34dom96The indentation section in the PEP is especially important IMO. I always wonder whether I am indenting my proc params correctly when they span multiple lines
20:22:45Varriountdom96: Can you give me a brief explanation of how async works?
20:22:47dom96flaviu: https://github.com/Araq/Nimrod/wiki/Nimrod-Enhancement-Proposal-%231
20:22:50Varriountflaviu: https://gist.github.com/Varriount/11381792
20:23:43flaviuThanks, I was looking for the NEP
20:23:51dom96Varriount: Every async proc returns a PFuture[T].
20:24:37dom96Varriount: A PFuture is a type which holds a value of type T which can be read some time in the future.
20:25:19dom96It could be instantaneously or a couple of minutes from now.
20:25:57dom96A PFuture has a callback which you can set with the 'callback=' setter.
20:25:59Varriountdom96: Like, say, a handle?
20:26:11dom96This callback will be called whenever the future completes.
20:26:37dom96That does not mean that the future completed successfully though.
20:26:49dom96It may have completed with an exception, you can use 'failed' to determine that.
20:27:04dom96Varriount: As the value? Sure.
20:27:19*Varriount quit (Read error: Connection reset by peer)
20:27:48*Varriount joined #nimrod
20:27:50*cark quit (Read error: Connection reset by peer)
20:28:08Varriountdom96: I'm trying to figure out how to integrate Window's readDirectoryChanges call with asyncio.
20:28:10dom96Varriount: check out the irc logs if you didn't get my latest message
20:28:59Varriountdom96: The two main methods are using IO completion ports, and callback routines.
20:29:37dom96Take a look at how recv is implemented: https://github.com/Araq/Nimrod/blob/devel/lib/pure/asyncdispatch.nim#L354
20:30:16dom96you may need to export some things which are not exported
20:30:35dom96Also I focused on getting the sockets to work so you may need to generalise the stuff a bit.
20:31:42dom96The way the low level stuff works is that you allocate a PCustomOverlapped type.
20:32:00dom96Set its data field to your own TCompletionData which includes a callback you specify
20:32:23dom96and that callback will then be fired once the call you made finishes
20:32:39dom96You will likely need to preallocate a buffer for the data that you are requesting
20:35:14dom96Looking at the Win API docs the format is very similar to how I call recv etc.
20:35:21dom96lpBuffer is your buffer
20:37:18dom96Most of the work is with wrapping all the filters and other little pieces related to readDirectoryChanges
20:37:46VarriountShould we keep the Monitor object?
20:38:14dom96First write a separate windows specific fsmonitor and then we can figure out how to merge them
20:38:36dom96or perhaps we will even have a single high level module which imports the posix-specific and windows-specific fs monitors
20:39:01dom96In any case, focus on getting it to work. Worry about the API later.
20:41:15Varriountdom96: Does any of the new async stuff use io completion ports?
20:41:22*flaviu quit (Quit: Leaving.)
20:41:29dom96yeah, all of it.
20:41:33Varriount:D
20:42:01Varriountdom96: Can a future 'callback' multiple times?
20:42:12dom96no
20:42:32dom96a future cannot complete multiple times
20:42:48dom96and the callback only is invoked when the future completes
20:43:02*pdewacht left #nimrod (#nimrod)
20:49:06renesacI don't like the NEP url: the '#' translates as %23 so it is difficult to see what NEP number it is
20:49:11renesac^^'
20:49:22Varriountrenesac: Feel free to change it.
20:49:26VarriountOr complain to github.
20:50:12Varriountdom96: Just a heads up, I probably won't be finished with this soon. I have exams next week, so will be studying most of this week.
20:50:36dom96Varriount: That's ok. I should be studying too heh.
20:50:56dom96Varriount: When do your exams finish?
20:51:10VarriountThe 10th of May
20:51:34VarriountOr at least, that's when my classes are officially over. I can't remember exactly when my last exam is.
20:51:40dom96so you're basically done with uni after that until september-ish?
20:52:05VarriountYes, although I'm trying to get a job, and not be a lazy layabout.
20:53:17renesacmaybe change the title to simple "NEP-0001" like python
20:53:36dom96I think "NEP-1" is fine.
20:53:40renesacand maybe put the name of the NEP on the url
20:53:46dom96no need for the leading zeros
20:53:51renesacright
20:53:55DemosVarriount: I just finished my last exam today! I am taking a hard (and compressed) physics class in the spring though
20:54:21dom96My last exam is on the 12th of June :(
20:54:23EXetoCAraq: so you think that clang can be useful for automatic translation? there was a tool that generated xml but it was unreliable and they discontinued it eventually
20:54:29VarriountDemos: You're probably smarter than I am. I'm struggling in Calculus 1
20:54:48renesachttps://github.com/Araq/Nimrod/wiki/NEP-1
20:55:22DemosI struggled all the way through calc I and II. And I barely passed the lasy physics class I took
20:55:30VarriountHm. Should we have double line breaks after procedures, like python?
20:55:37VarriountOr just single ones?
20:55:46renesacthe defacto standard is single ones
20:55:58renesacaraq likes line density
20:55:58Demosturns out that for the big requirements (even physics) there is no need to actually understand the material, you just memorize stuff.
20:56:19DemosI use no break between related procs (like overloads) and one blank between unrelated ones
20:56:39DemosI put in soemthing like #{{{ comment about the next batch of procs for some stuff as well
20:56:44Varriountdom96: I open up selectors.nim and get "TODO: Docs"
20:57:02fowllol
20:57:02Varriount:3
20:57:09fowlTODOC
20:57:25dom96You likely wouldn't want to use selectors anyway :P
20:58:47VarriountHm. Supposedly the best and most simple way to have non-blocking file changes on windows is to use ReadDirectoryChangesW and IO completion ports.
21:01:29*[2]Endy quit (Ping timeout: 264 seconds)
21:01:41dom96of course
21:02:10*menscrem quit (Quit: Page closed)
21:02:44Varriountdom96: Does that ayncio and await stuff handle the actual backend stuff, like IOCP, kqueue, etc, or is that left up to the implementation?
21:02:52Varriount*other implementations
21:03:15VarriountSorry for the questions. Right now I'm trying to figure out how everything is going to fit together.
21:03:23dom96you will have to worry about it when implementing fsmonitor
21:03:37dom96but it's transparent as far as the user is concerned
21:04:04dom96The selectors module implements epoll + select (and will implement kqueue)
21:04:27dom96the asyncdispatcher then builds on top of that
21:04:38dom96except on Windows where it uses IOCP
21:07:37Varriountdom96: If fsmonitor on windows is going to use IOCP, I'm going to need some way to get the current IO completion port that may be in use.
21:07:47VarriountThere can only be one IOCP per thread.
21:08:24dom96there is a getGlobalDispatcher proc
21:08:30VarriountUnless of course, worker threads are created for the file monitors..
21:09:18dom96you'll need to export some fields I guess
21:09:39dom96well, actually. You should use 'register'
21:13:32dom96and export verifyPresence and use it
21:41:24OrionPKhullo boys
21:41:51dom96konichiwa
21:43:49Varriountdom96: Any ideas on porting fixes that would appease both Araq and you?
21:44:30*BitPuffin quit (Ping timeout: 276 seconds)
21:44:43dom96Varriount: nope
21:44:59Araqhi Varriount
21:45:05VarriountHi Araq
21:45:17Araqhelp micklat with his high level python wrappers
21:45:37VarriountUm.. ok... *looks at dom96*
21:46:16VarriountAraq: What about fsmonitor support for windows?
21:46:38dom96Varriount: Maybe I misunderstood your question
21:46:51dom96are you asking what fixes to port to 0.9.4?
21:47:25Varriountdom96: No, I'm asking about the porting technique. The current plan is to git cherrypick fixes from devel to master, which you seemed unhappy about.
21:48:05dom96oh, well it's still a nope
21:48:09dom96I haven't done any research into it
21:50:44EXetoCare there no decent libs that allow you to spend less time gluing platform-specific stuff together (polling stuff and what have you)?
21:51:26VarriountEXetoC: You mean, for the stdlib?
21:53:40*cark joined #nimrod
21:53:58EXetoCyes but from the point of view of a core dev. you've already taken care of a lot of this painful stuff :-)
21:55:28VarriountEXetoC: If you're talking about file change monitoring, the problem is that, at least on Windows, there are about 8 different ways to do it, because of the various API combinations that you can use.
21:56:04VarriountAlso, we haven't actually taken care of file monitoring yet.
21:56:48*Jesin quit (Ping timeout: 240 seconds)
21:56:49VarriountI mean, I *just* got file information retrieval finished, which should be a boon for the standard library in the future.
21:57:00*cark quit (Read error: Connection reset by peer)
21:58:14OrionPKcant wait to port my stuff over to the new asyncio module ;)
21:58:41*petrus joined #nimrod
21:59:04*cark joined #nimrod
22:00:08EXetoCVarriount: so then it's a matter of finding some lib that uses the best approach, but that's easier said than done I guess
22:01:24dom96hi petrus
22:03:03EXetoCare there any good ways to find out? a well-categorized lib database perhaps
22:04:58Araqhi petrus welcome
22:08:38petrusHello, I am just lurking here while I am reading about nimrod.
22:12:34*Jesin joined #nimrod
22:14:47*io2 quit ()
22:15:19dom96petrus: No worries, let us know if you have any questions :)
22:17:47dom96Varriount: Surely there aren't that many combos?
22:19:53petrusThanks. I've just finished the Dr Dobb's article on nimrod. I am impressed.
22:20:46EXetoCVarriount: I'm just looking around. I've found this so far http://www.pjsip.org/pjlib/docs/html/
22:26:59*BitPuffin joined #nimrod
22:36:59*petrus quit (Quit: WeeChat 0.4.3)
22:39:12*Jesin quit (Ping timeout: 240 seconds)
22:48:04VarriountEXetoC: http://qualapps.blogspot.com/2010/05/understanding-readdirectorychangesw.html
22:50:19EXetoCVarriount: lovely
22:51:37VarriountEXetoC: And of course, I have to abstract an interface and somehow get it to work with await and async stuff.
22:53:29*milosn_ joined #nimrod
22:54:24*milosn quit (Ping timeout: 240 seconds)
22:54:51VarriountHi milosn_, make any progress on that app?
22:56:46*Jesin joined #nimrod
23:03:43*cark quit (Read error: Connection reset by peer)
23:04:25*Jesin quit (Ping timeout: 252 seconds)
23:08:42*Matthias247 quit (Read error: Connection reset by peer)
23:13:35Skrylarits in my usual erratic style, but here is a thing: https://github.com/Skrylar/skTypeface
23:13:49Skrylari should get in the habit of putting zlib licenses on those repos actually :/
23:20:30Demosdoes the typeface stuff /really/ need to be a GC'd ref
23:22:39Demoscan c2nim deal with "inline" without being in cpp mode?
23:23:13Demosand is {.inline.} a hint or a command?
23:25:31VarriountDemos: A hint.
23:25:46EXetoCthe manual says that
23:26:49*uvelichitel quit (Quit: Textual IRC Client: www.textualapp.com)
23:28:16Demosthanks, I am a lazy man
23:29:12DemosI am c2nimming stb-image, a 200MB image loading library is too much for me
23:29:20VarriountSkrylar: Doesn't Github allow you to pick a license on repository creation?
23:29:50DemosVarriount: sure, but you still need to license each file individually and make sure the babel stuff is in order
23:29:56VarriountDemos: You know that we have wrappers for DevIL and Freeimage, right?
23:30:12DemosI am using freeimage now
23:30:22Demoslook at the author on that wrapper :D
23:30:55Demosstb is a good library and it means totally eliminateing a native dep
23:31:12VarriountAnd DevIL?
23:31:31Demosnot maintained. And I dont really like the opengl style API
23:32:48*darkf joined #nimrod
23:33:58EXetoCtranslations aren't perfect, but hopefully you'll get it to work
23:34:23Demosit is written in fairly standard C
23:34:45SkrylarDemos: do you have a better way :(
23:34:51Demosthan what?
23:34:59BitPuffinDemos: pretty sure devil is maintained
23:34:59SkrylarI use a GC ref because i use methods
23:35:17BitPuffinVarriount: hint: allegro
23:35:20BitPuffinit has it all :D
23:35:33Demosdont use methods, once you figure the platform you know all the functions to call
23:35:44SkrylarDemos: if you have a better idea i'll listen, my points of contention is that the typeface system is not set in stone
23:35:50EXetoCnote the remark about deps
23:35:51Skrylarnothing *stops* you from having both GDI and FreeType
23:36:39SkrylarI pondered about having the default typesystem be typedef'd in to existence instead of ref'd
23:37:00Skrylarthen de-method the typeface code
23:37:12DemosBitPuffin: I dont want everything, although replaceing cairo with something not autotools based is appealing
23:37:15Skrylarbut then if you use gdi and freetype fonts, you have to ferry along both :/
23:37:28Demosbut I /really/ like cairo as a library
23:37:34Demosthe build system is just annoying
23:37:36Skrylardoes cairo not have a cmake file?
23:37:44Demosnope
23:37:46BitPuffinDemos: well okay it doesn't have *everything*
23:37:53BitPuffinDemos: but it has just the stuff you need
23:37:59BitPuffinand nothing more
23:38:04BitPuffindat sweetspot
23:39:15VarriountDemos: Well, I guess the more image loading libraries, the merrier.
23:39:39VarriountAlthough, that reminds me, how would one go about using a JIT compiler in Nimrod?
23:40:26Demosdoes it have masking and compositing ops?
23:40:36Demoswhat about support for OpenGL 4
23:41:30BitPuffinDemos: it supports whatever opengl version you can load afaik
23:41:36BitPuffinon your system
23:46:45BitPuffinDemos: compositing I dunno haven't tried using it for that
23:46:54Demosdid we ever get an align pragma
23:47:24BitPuffinand it depends on what you mean by compositing I guess, do you mean 3d compositing that you do with deferred rendering or just ilke drawing 2d stuff blended or whatever
23:47:49BitPuffinI assume you mean multiply and add etc
23:47:56BitPuffinand blend and so on
23:48:32BitPuffinhttp://alleg.sourceforge.net/a5docs/refman/graphics.html#blending-modes
23:49:19Demosright but those set the GPU hardware to the given operator, not nessassarly what I want
23:49:24Demosanywant I like cairo
23:51:54BitPuffinDemos: well I'm not saying that you have to use it
23:52:00BitPuffinDemos: just that I will kill you otherwise
23:52:03BitPuffinno I'm just kidding xD
23:56:28Demosdoes each item in a "case" statement start a new scope
23:56:31Demosunlike c?
23:58:52*Jesin joined #nimrod