<< 29-05-2014 >>

00:01:37flaviu1I'm sure that every C compiler also does the same optimization
00:03:07filwiti'm not sure, I've gotten a few extra milliseconds performance from Nimrod hotloops (in the RayTracer) from adding {.noInit.} to vars which where later assigned too
00:03:17Araqfilwit: we have C#'s static analysis now
00:03:49Araq.requiresInit enforces it or the compiler can warn for 'var x: int; echo x'
00:03:50filwitAraq: cool. so eventually you can make non-initialized locals a compiler error :)
00:04:04AraqI can but I don't like it
00:04:19filwitAraq: oh wait, so you've alread done this? Awesome!
00:04:27Araqleaving out 'result = false' as the first statement for instance is an idiom
00:04:40Demosyeah sine we default to binary zero it seems silly to make manual initialization required
00:04:58VarriountExcept possibly, for references
00:05:04Araqfilwit: yeah it's implemented and works
00:05:05flaviu1I don't like leaving out `result = false`, seems somewhat confusing
00:05:22Araqit grows on you, flaviu1 ;-)
00:05:22VarriountAlthough, I'd rather have warnings for uninitialized references, rather than errors.
00:05:30filwitDemos: it means that you can avoid initilizing to zero by default for vars which will, a few lines later, be assigned to a correct value. Which is nice, IMO
00:05:51filwitAraq: that's awesome. I'll try it out. You work fast mate.
00:05:58Araqfilwit: yeah but the correct value IS 0 most of the time
00:06:10filwitthat's true
00:06:28flaviu1It probably isn't worth the typing, unless that code is insanely hot
00:06:55DemosAraq: as an optimization I guess converting vars to noInit if they are not read before their first write could be good
00:07:03filwitAraq: it's a push/popable pragma?
00:07:06Araqfilwit: optimizing the code so that .noInit is not required as often is still not done, just to get that clear
00:07:26AraqDemos: planned optimization, yes
00:08:11flaviu1Araq: Have you considered using smaller passes? A bit slower, but it does make code much cleaner
00:08:43Araqfilwit: it's a warning that you can push or pop or put into your config file
00:08:53filwitAraq: okay, well it's not super high on my request list obviously. In fact, since you're right about 0 often being what you want, I almost agree with having it as is, at least by default, then just be able to {.push requireInit.} around hotloop functions if you really want.
00:09:31Araqflaviu1: (1) we already have lots of passes, it may not look that way though
00:09:41Araq(2) passes really are expensive
00:10:17filwitmakes sense that way. Convenience first, nitpick optimization when and where needed later on.
00:10:55flaviu1filwit: Your kate syntax highlighting has a very minor flaw, you can't use more than one underscore in a row.
00:11:18Araqflaviu1: that's what the nimrod manual says
00:11:22filwitflaviu1: i thought i fixed that.. hrmm. Plus i owe you a git repo
00:12:09filwitAraq: but technically you can have a variable like__this right? it just won't match like_this ?
00:12:40flaviu1filwit: IIRC, parsing just gives up when it sees __
00:12:40Araqthe spec says this__is invalid
00:13:10filwitah okay, then that's why I made it that way, flaviu1
00:14:12filwiti think i remember this going over dom96's initial color scheme file. Originally it was `_*` but we made it `_+` because of the spec
00:15:02NimBotAraq/Nimrod devel 8d19b09 EXetoC [+0 ±3 -0]: noStackFrame -> asmNoStackFrame
00:15:02NimBotAraq/Nimrod devel 0a0b74b EXetoC [+0 ±3 -0]: asmNoStackFrame -> stackTrace:off
00:15:02NimBotAraq/Nimrod devel f8b5133 EXetoC [+0 ±1 -0]: Typo.
00:15:02NimBotAraq/Nimrod devel 19c73a5 EXetoC [+0 ±1 -0]: Forgot to remove that.
00:15:02NimBot1 more commits.
00:15:15filwitflaviu1: that said, there are quick a few places where the colors don't work. 0'f32, 0f32, 0xfff, 50_000, etc
00:15:37filwitalso, triple quotes don't work
00:15:45*nequitans_ quit (Ping timeout: 252 seconds)
00:17:36flaviu1filwit: I'll see if I can send a PR for those, I can just take the triple quotes from pythin
00:18:19flaviu1And I've already got a partially done regex for int literals
00:18:51Varriountflaviu1: I have regexes for certain nimrod constructs in the Sublime Text plugin for nimrod
00:18:52filwitgreat, thanks
00:19:47flaviu1Varriount: Great, I'll look into that
00:20:20Araqlol what's the iter to seq called again?
00:20:27AraqtoSeq
00:20:50Araqamazing I never use it
00:21:25flaviu1I thought of the idea to use iterators for functional programming, but then I go on to find out python did it first :(
00:21:51Araqiirc python copied these from Icon
00:21:59DemosI want an inline-to-closure proc
00:22:19AraqDemos: a macro away
00:23:30Araqfun fact: the first version of nimrod used {.loopBody.} instead of 'yield'
00:24:04Araq(I don't think this version has ever been released)
00:24:08*io2 quit (Quit: ...take irc away, what are you? genius, billionaire, playboy, philanthropist)
00:24:15flaviu1Varriount: Thanks, those regexes are perfect
00:25:15Varriountflaviu1: If they aren't, don't hesitate to tell me.
00:25:29NimBotAraq/Nimrod devel 055cdb2 Clay Sweetser [+0 ±12 -0]: Renamed 'considerAcc' to 'considerAccents' for clarity... 3 more lines
00:25:29NimBotAraq/Nimrod devel 3fd94b7 Clay Sweetser [+0 ±1 -0]: Fixes #1200
00:25:29NimBotAraq/Nimrod devel 10e23e9 Clay Sweetser [+0 ±11 -0]: Renamed considerAccents to considerQuotedIdent
00:25:29NimBotAraq/Nimrod devel 4b98937 Andreas Rumpf [+0 ±12 -0]: Merge pull request #1222 from Varriount/doc/fix-assertion... 2 more lines
00:26:43*Matthias247 quit (Read error: Connection reset by peer)
00:27:11flaviu1Varriount: Well, you have generic in your unused keywords
00:27:32flaviu1Its used for typeclasses now
00:27:51Araqugh so late already
00:27:54Araqgood night
00:28:36filwitlater
00:30:01flaviu1Varriount: And `'` is optional
00:32:39flaviu1You can have a hexadecimal float literal, but no point in supporting that since no one will ever use one
00:33:02filwitbbl
00:33:04*filwit quit (Quit: Leaving)
00:43:14*bjz_ joined #nimrod
00:45:44*Johz quit (Quit: Leaving)
00:48:30*bjz_ quit (Ping timeout: 265 seconds)
00:53:17*xenagi joined #nimrod
00:57:35*nande_ quit (Remote host closed the connection)
00:59:08*nande_ joined #nimrod
01:03:47*hoverbear joined #nimrod
01:05:21*flaviu1 quit (Read error: Connection reset by peer)
01:06:49*nande_ is now known as nande
01:06:59*flaviu1 joined #nimrod
01:09:45*q66 quit (Quit: Leaving)
01:11:28*freezerburnv joined #nimrod
01:11:50*Demos quit (Quit: leaving)
01:30:54*DAddYE_ quit (Remote host closed the connection)
01:31:29*DAddYE joined #nimrod
01:36:21*DAddYE quit (Ping timeout: 265 seconds)
01:58:55*Demos joined #nimrod
02:01:20*Demos_ joined #nimrod
02:01:58*Demos_ quit (Read error: Connection reset by peer)
02:41:07*bjz joined #nimrod
03:06:43*def-_ joined #nimrod
03:10:11*def- quit (Ping timeout: 252 seconds)
03:47:37*brson quit (Quit: leaving)
03:57:22flaviu1I just noticed that the nimrod distribution includes the nimcache. Is this intentional?
03:57:54flaviu1Also, is it worth still distributing pas2nim? I doubt anyone has any use for it anymore
04:12:18*freezerburnv quit (Quit: freezerburnv)
04:28:45*nande quit (Read error: Connection reset by peer)
04:35:33*nande joined #nimrod
04:46:49*xenagi quit (Quit: Leaving)
04:57:38*xtagon quit (Quit: Leaving)
05:17:59Demosis it possible that pas2nim is required for a bootstrap from zero
05:20:55Demosalthough a bootstrap from zero is pretty academic and pointless
05:23:54*gsingh93_ quit ()
05:24:07*gsingh93_ joined #nimrod
05:29:45*Demos_ joined #nimrod
05:32:11*Demos quit (Ping timeout: 255 seconds)
05:37:34*nande quit (Read error: Connection reset by peer)
05:46:20*nande joined #nimrod
05:49:33*nande quit (Read error: Connection reset by peer)
05:54:51*nande joined #nimrod
06:15:03*nande quit (Remote host closed the connection)
06:15:14*io2 joined #nimrod
06:20:44*nande joined #nimrod
06:21:37*DAddYE joined #nimrod
06:24:38*hoverbear quit ()
06:46:15*Demos_ quit (Read error: Connection reset by peer)
07:37:04*kunev joined #nimrod
07:40:19*zahary quit (Quit: Leaving.)
07:44:11*Changaco joined #nimrod
07:48:19Araqhi Changaco welcome
07:49:09Changacohi
07:51:16Changacofinding Nimrod was a nice surprise, I also see that you're on Gittip which I help build, small world :-)
08:07:19Araqwow
08:11:19AraqEXetoC: I thought about your bug and it's not clear how to fix it
08:11:24Araqwhen you have
08:11:38Araqproc foo[T: int16|int32](x: T)
08:11:55Araqand invoke it with foo(4)
08:12:17Araqthe 4 is an int literal(4) which is compatible to 'int16' and 'int32'
08:12:35Araqbut then the type of the *argument* is used to bind T to
08:12:43Araqso T = int
08:13:09Araqwe have to use the type of the argument because that's usually the concrete type
08:13:19Araqif we have
08:13:32Araqproc foo[T: seq | array](x: T)
08:13:54Araqthen T should not become the generic 'seq' but the concrete seq[int]
08:14:38Araqso either we special case the type inference for *concrete* constraints
08:15:06Araqwhen T = int16 in the first example (or int32? it's ambiguous)
08:16:18Araqor we require you to be explicit in this context
08:16:34Araqyou then have to invoke it with foo(4'i16)
08:38:39*nande quit (Read error: Connection reset by peer)
08:44:25*zahary_ joined #nimrod
08:53:17*io2 quit (Quit: ...take irc away, what are you? genius, billionaire, playboy, philanthropist)
08:57:18*kunev quit (Quit: leaving)
09:00:24*freezerburnv joined #nimrod
09:02:06Araqzahary_: please read the most recent logs
09:02:22zahary_from yesterday?
09:02:31Araqfrom right now
09:02:46Araqwhere I think about generic integer constraints
09:05:02*freezerburnv quit (Ping timeout: 255 seconds)
09:09:47AraqI need to go, see you tomorrow
09:09:54zahary_I see the problem, but it shouldn't be impossible to fix.
09:10:45zahary_there are few places in sigmatch, where the bound type is altered - they cover other scenarios, but they serve as a proof of concept that this is possible
09:15:20*kunev joined #nimrod
09:23:18*snearch joined #nimrod
10:00:24NimBotAraq/Nimrod devel 3afbe24 Clay Sweetser [+0 ±1 -0]: Document parser structures and procedures.
10:00:24NimBotAraq/Nimrod devel eb27c2c Simon Hafner [+0 ±1 -0]: Merge pull request #1228 from Varriount/compiler/document-parser... 2 more lines
10:04:34reactormonkAraq, what do you think can be kicked out of the stdlib?
10:04:42reactormonk... and into a babel package
10:08:15*Changaco quit (Quit: Changaco)
10:11:02*freezerburnv joined #nimrod
10:32:29*Matthias247 joined #nimrod
10:43:41*snearch quit (Quit: Verlassend)
11:40:05EXetoCmodule1.p depends on module1.q. both are generic, and 'q' is unexported, and so I'm unable to call 'p' from another module
11:40:13EXetoCmy issue regarding sequtils.mapIt comes to mind
12:12:23*nequitans_ joined #nimrod
12:13:48*untitaker quit (Ping timeout: 240 seconds)
12:19:29*untitaker joined #nimrod
12:26:36*nequitans_ quit (Ping timeout: 240 seconds)
12:42:56*darkf quit (Quit: Leaving)
12:52:09*freezerburnv quit (Quit: freezerburnv)
13:46:09*io2 joined #nimrod
13:57:48*nequitans_ joined #nimrod
14:06:45*zahary_ quit (Ping timeout: 276 seconds)
14:34:03*njoejoe` quit (Ping timeout: 276 seconds)
14:34:08*kunev quit (Quit: leaving)
14:36:36*nande joined #nimrod
14:41:05*freezerburnv joined #nimrod
14:44:01*bjz quit (Ping timeout: 252 seconds)
14:51:59*nande quit (Quit: No Ping reply in 180 seconds.)
14:52:32*hoverbear joined #nimrod
14:53:14*nande joined #nimrod
14:56:25*hoverbear quit (Client Quit)
15:32:31flaviu1Hmm, what does gcsafe mean?
15:35:45*clone1018 joined #nimrod
15:36:17clone1018Hey guys, is the Aporia IDE associated with the official Nimrod package? Meaning can I get support for it here?
15:39:01flaviu1clone1018: Yes, its official
15:39:35flaviu1if dom96's here, he can probably help you best
15:43:23flaviu1It seems that the echo definition is incorrect, `proc echo*[T](x: varargs[T, `$`])` should actually be `proc echo*(x: varargs[string, `$`])`
15:44:26clone1018Alright cool, so I've installed GTK+ and made sure it's on my path, I've also followed the other instructions in the readme for Aporia, but I'm getting a library load issue: specifically "could not load: libglib-2.0-0.dll"
15:59:24*gsingh93_ quit (Quit: Connection closed for inactivity)
16:07:42fowlgtk+ should have come with glib
16:11:24clone1018It does and it's in the bin folder which is in the path
16:11:28clone1018which is why I'm confused :p
16:11:43*Johz joined #nimrod
16:12:42fowlwhats the name
16:14:45clone1018libglib-2.0-0.dll
16:14:49*hoverbear joined #nimrod
16:20:05flaviu1clone1018: I don't know much about windows, but restarting is pretty much the catch-all solution, it may help
16:20:10clone1018I tried that.
16:20:21clone1018I'm very used to doing things like this :P
16:34:01*DAddYE quit (Remote host closed the connection)
16:34:28*DAddYE joined #nimrod
16:38:43*DAddYE quit (Ping timeout: 240 seconds)
16:44:56def-_Does anyone know if asyncnet can be used with UDP already?
16:48:40*q66 joined #nimrod
16:48:40*q66 quit (Changing host)
16:48:40*q66 joined #nimrod
16:50:20*brson joined #nimrod
17:05:38*Matthias247 quit (Read error: Connection reset by peer)
17:06:57*Matthias247 joined #nimrod
17:16:28*gsingh93_ joined #nimrod
17:26:28*DAddYE joined #nimrod
17:34:14*q66 quit (Ping timeout: 252 seconds)
17:46:30*q66 joined #nimrod
17:46:30*q66 quit (Changing host)
17:46:30*q66 joined #nimrod
18:08:44*Johz quit (Quit: Leaving)
18:12:45*Jesin joined #nimrod
18:32:32*q66 quit (Ping timeout: 252 seconds)
18:45:02*q66 joined #nimrod
18:45:12*q66 quit (Changing host)
18:45:12*q66 joined #nimrod
18:55:37flaviu1http://www.reddit.com/r/programming/comments/26s8iu/we_need_hardware_traps_for_integer_overflow/
18:56:08flaviu1Discussion relevant to integer overflow we talked about a couple days ago
18:56:48*Jesin quit (Quit: Leaving)
19:02:47*hoverbea_ joined #nimrod
19:04:53*nande quit (Remote host closed the connection)
19:06:46*aboutGod joined #nimrod
19:07:03*hoverbear quit (Ping timeout: 276 seconds)
19:11:52*aboutGod left #nimrod (#nimrod)
19:35:52*bjz joined #nimrod
19:39:18*zahary joined #nimrod
19:40:57flaviu1Pretty neat: http://flaviut.github.io/nimrod-by-example/
19:41:30*bjz quit (Ping timeout: 276 seconds)
19:42:21dom96flaviu1: awesome!
19:42:23flaviu1Other than how it deletes all my files if I make a mistake in configuration, Gitbook is nice
19:42:27dom96def-_: not yet
19:42:30fowlflaviu1, this is awesome, i'm going to write something for this immediately
19:43:17nequitans_cool!
19:44:35NimBotnimrod-code/packages master 97b232c Frank Fischer [+0 ±1 -0]: Added strfmt module
19:44:35NimBotnimrod-code/packages master 2847603 Dominik Picheta [+0 ±1 -0]: Merge pull request #60 from lyro/master... 2 more lines
19:46:59flaviu1Wow, that seems like its a very high quality library
19:47:06dom96ineed
19:47:07flaviu1Half the code is even documentation!
19:47:08dom96*indeed
19:47:17dom96Good job lyro!
19:51:18dom96Impressed that gitbook has Nimrod syntax highlighting, I guess it uses pygments?
19:51:43nequitans_gitbook: awesome. strfmt:awesome !
19:52:16flaviu1dom96: No, I wrote a addon for highlight.js
19:52:24dom96flaviu1: ahh, nice.
19:52:59dom96I would rename 'getLetterA' to getAlphabet'
19:53:30flaviu1Good idea, that was a previous revision
19:53:36nequitans_by the way, one issue i ran into with something like TTable[string,seq[int]]: accessing table[str][int] is far slower than table.mget(str)[int]. Presumably one is actually copying the whole array locally while the other is not
19:55:21dom96I guess I should start throwing PRs
19:55:50flaviu1dom96: Sure, feel free to. I'll add you as a contributor to make things smoother.
19:56:31dom96flaviu1: thanks
19:57:13nequitans_if i am right that this is what's causing the slowdown, do you think it would be helpful if the docs were updated to say that [] returns a copy of val?
19:58:00dom96nequitans_: Sure, more docs can't hurt.
19:59:08*silven quit (Remote host closed the connection)
19:59:23dom96flaviu1: Hrm, why is this md file duplicated? https://github.com/flaviut/nimrod-by-example/blob/master/src/variables.md
19:59:49flaviu1I didn't see that, I'll delete it
20:00:04flaviu1The title is wrong, thats an old version
20:00:27dom96Does it take time for the live version to update?
20:01:14flaviu1dom96: It won't update automaticly
20:01:54flaviu1I have to manually build it. For testing, just run `./node_modules/gitbook/bin/gitbook.js build ./src/` and go to localhost:4000
20:01:56dom96oh of course
20:02:13flaviu1I'll update the live version occasionally
20:02:24dom96I can just look at the github render
20:03:45VarriountMeep
20:04:59OrionPKflaviu1 do you have the source for that nimrod highlight.js plugin?
20:05:30flaviu1OrionPK: Sure, https://github.com/flaviut/highlight.js
20:05:58flaviu1The actual js file is here: https://github.com/flaviut/highlight.js/blob/master/src/languages/nimrod.js
20:08:15flaviu1dom96: I
20:08:33flaviu1'm currenly working on case, so we don't work on the same thing
20:08:44dom96flaviu1: ok, i'm editing variables a bit
20:08:50*dom96 hopes you won't object to his changes
20:09:07flaviu1dom96: Nope, if you've already started we can merge them
20:09:47dom96yeah, i'll commit them in a while
20:15:10OrionPKflaviu1 thx
20:17:18dom96flaviu1: done
20:17:47flaviu1dom96: Commit, and we'll see what happens
20:17:54flaviu1oh, you have
20:17:56dom96yeah
20:18:05*dom96 is using the web interface
20:19:31flaviu1So far, I've just been pretending that everything is --verbosity:0
20:19:49dom96I think it's nice to show off these features
20:20:09dom96I'm not sure whether that gotcha you describe in the next section is really that common
20:20:22flaviu1Feel free to change that then
20:20:35dom96ok
20:26:50*nande joined #nimrod
20:29:48*hoverbear joined #nimrod
20:32:13*nequitans_ quit (Ping timeout: 258 seconds)
20:33:32*hoverbea_ quit (Ping timeout: 255 seconds)
20:58:34*Matthias247 quit (Read error: Connection reset by peer)
20:59:52*Matthias247 joined #nimrod
21:00:17*freezerburnv quit (Ping timeout: 264 seconds)
21:13:13flaviu1I hadn't considered that closure iterators can be used for cooperative multitasking, thats a neat idea
21:28:23*silven joined #nimrod
21:29:15*silven quit (Remote host closed the connection)
21:30:56*silven joined #nimrod
21:38:26*bjz_ joined #nimrod
21:43:13*bjz_ quit (Ping timeout: 252 seconds)
21:58:12Varriountdom96: I've figured out how to reliably track files on Windows.
21:58:20dom96Varriount: good
22:09:17*io2 quit (Ping timeout: 264 seconds)
22:09:24VarriountHm... It would appear that on Windows, keeping a file handle open prevents the file it points to from being moved or deleted.
22:10:11*q66 quit (Remote host closed the connection)
22:10:28*Matthias247 quit (Read error: Connection reset by peer)
22:11:57*q66 joined #nimrod
22:11:57*q66 quit (Changing host)
22:11:57*q66 joined #nimrod
22:23:44clone1018 so I've installed GTK+ and made sure it's on my path, I've also followed the other instructions in the readme for Aporia, but I'm getting a library load issue: specifically "could not load: libglib-2.0-0.dll"
22:23:51clone1018This is on Windows 7 x64
22:25:02*Skrylar quit ()
22:26:45*Skrylar joined #nimrod
22:28:08*io2 joined #nimrod
22:29:25dom96clone1018: Try these DLLs: http://nimrod-code.org/download/gtk.zip
22:30:50dom96clone1018: Likely problem is that you're mixing x86 EXE with x86_64 DLLs, or the other way around, or a mix of both.
22:31:42EXetoCwhat a cryptic error message then
22:32:11dom96EXetoC: You're welcome to improve it.
22:32:27dom96My guess is that it's not so easy though
22:33:25EXetoCit's our error message? ok
22:33:37dom96yes
22:36:16*DAddYE_ joined #nimrod
22:37:08clone1018So I tried the following, removing old GTK from my path, replacing existing gtk wit the files I downloaded, placing the gtk folder inside the aporia folder and changing aporia.ini to use BinPath and none of them worked
22:37:14clone1018I restarted between each
22:38:27dom96place the dlls in the folder where aporia.exe is
22:38:45dom96aporia.ini needs no changes
22:39:01EXetoCyeah that's the windows way
22:39:26*DAddYE__ joined #nimrod
22:39:49clone1018Just tried that, no luck
22:39:52*DAddYE quit (Ping timeout: 258 seconds)
22:40:39EXetoCwth
22:42:08clone1018I installed it via babel
22:42:31*DAddYE_ quit (Ping timeout: 252 seconds)
22:42:58dom96clone1018: Are you compiling Aporia in 32bit mode?
22:43:34clone1018I did `babel install aporia#head`
22:47:21clone1018Tried doing a clean install, still no luck
23:05:00clone1018I'm using sublime for now so not a huge issue
23:05:01clone1018oh well
23:05:59dom96Yeah. Aporia still lacks some features which Sublime has, so you're probably better off anyway
23:06:12*Joe_knock joined #nimrod
23:10:30*darkf joined #nimrod
23:11:02fowlwrote a macro example for nimrod-by-example https://gist.github.com/fowlmouth/c912e92386b10c6df034
23:13:41clone1018That's pretty amazing fowl
23:23:00*nequitans_ joined #nimrod
23:30:43*hoverbear quit ()
23:34:53*nequitans_ quit (Ping timeout: 265 seconds)
23:39:41*io2 quit (Quit: ...take irc away, what are you? genius, billionaire, playboy, philanthropist)
23:42:13*nequitans_ joined #nimrod