<< 25-04-2014 >>

00:02:31*flaviu quit (Quit: Leaving.)
00:13:11*Jesin joined #nimrod
00:19:47dom96You guys wanna try your hand at HN again?
00:21:59VarriountHm?
00:22:27dom96At getting the Nimrod release announcement to the front page of HN
00:22:51VarriountI don't have a HN account...
00:23:12dom96Why does nobody have a damn HN account?
00:23:38dom96Oh well. I should sleep anyway.
00:25:20EXetoCso, is it the right day and time and all? :p
00:25:50dom96probably not
00:25:54dom96but i'm heading to sleep anyway
00:26:02dom96everyone create an HN account
00:26:07dom96and then we can try it later
00:26:09dom96perhaps
00:26:11dom96bye
00:31:53*brson quit (Ping timeout: 252 seconds)
00:36:49*darkf_ joined #nimrod
00:37:26*darkf quit (Disconnected by services)
00:37:28*darkf_ is now known as darkf
00:43:09*TylerE_ joined #nimrod
00:45:43*andreroquem joined #nimrod
00:48:10*TylerE quit (Ping timeout: 246 seconds)
00:48:11*Araq quit (Ping timeout: 246 seconds)
00:48:11*Kelet quit (Ping timeout: 246 seconds)
00:48:20*Kelet joined #nimrod
00:48:29*TylerE_ is now known as TylerE
00:48:58filwitAraq... Araq just left....
00:49:18*andreroquem quit (Remote host closed the connection)
00:49:39VarriountO_o
00:49:44filwitthe king is dead.. BATTLE FOR #NIMROD RULE BEGINS!
00:49:59Skrylarlol
00:50:05*Varriount uses {.emit.}!
00:50:23*filwit uses {.magic.}!
00:50:38filwitbeat that! I'm a Wizard!
00:51:08*zahary quit (Ping timeout: 252 seconds)
00:51:09*Araq_bnc joined #nimrod
00:51:21filwitNOO!
00:52:02*flaviu joined #nimrod
00:52:07*flaviu quit (Client Quit)
00:52:17*flaviu joined #nimrod
00:52:17*flaviu quit (Client Quit)
00:52:28*flaviu joined #nimrod
00:54:40*zahary joined #nimrod
01:01:15*q66 quit (Quit: Leaving)
01:09:48*Skrylar softice's filwit
01:10:13filwitsoftice ?
01:10:21Skrylarit used to be a big deal
01:10:24filwitunfamiliar with that term
01:10:26Skrylarkernel-mode debugger that ran all the time
01:10:36Skrylaryou could hit a key chord and it would stop the world and drop the whole OS to a debugger
01:10:50filwitah, okay
01:10:51Skrylarused to be used by crackers and driver developers
01:11:10Skrylarno, not the food
01:11:12filwitthat's racist
01:11:15filwit:P
01:11:38Skrylarwell it turned out DRM didn't work so well when the OS stopped everything at once
01:11:42Skrylarthough that program is long dead now
01:12:34*Varriount hugs Process Monitor
01:14:04Skrylarits too bad nobody recognized the softice joke and escalated by rebooting the computer
01:14:13Skrylarwe had a neat little stack of people oneupping xD
01:15:41*andreroquem joined #nimrod
01:16:07*fowl quit (Ping timeout: 276 seconds)
01:16:40*DAddYE quit (Remote host closed the connection)
01:18:28filwitdamn.. there's no macros.insert which takes an array of nodes..
01:20:54Skrylarwhat would that do?
01:20:56EXetoCchain adds
01:21:08Skrylaryou can just use seq stuff to build the ast
01:21:12SkrylarITS THE LISP
01:21:15Skrylar:O
01:22:04filwityeah i know it's not hard, just that add has an overload which takes a array, but not insert
01:22:57*EXetoC quit (Quit: WeeChat 0.4.3)
01:25:24Skrylarwrite one and shove it in a PR :b
01:25:24*andreroquem quit (Quit: andreroquem)
01:25:42Skrylarthough there might be efficiency weirdness with inserts like that
01:25:55Skrylari guess not since you can do a fixed-size expand and shove
01:27:26filwitmeh, i've already moved passed it
01:30:40*fowl joined #nimrod
01:38:03filwitoh cool, so 'for child in someSeqOfRefTy' not allows child to be modified? nice..
01:38:28filwitnow*
01:40:43reactormonkfilwit, try mitems
01:42:12filwitreactormonk, no i was saying that now it seems for matches the seq type, and allows you to modify ref types through the iterator. no need for mitems anymore
01:43:15filwitreactormonk, at least it looks like that's what's going on, haven't really tested fully, just that one area where i had to explicitly create a ref alias before to modify it no longer needs the alias
01:49:59*BitPuffin quit (Ping timeout: 252 seconds)
01:54:46*BitPuffin joined #nimrod
01:59:18Skrylarsweet
01:59:31Skrylarcoaxed winapis to give me font metrics
02:04:36*nande quit (Remote host closed the connection)
02:07:38*nande joined #nimrod
02:16:46*nande quit (Remote host closed the connection)
02:19:25*nande joined #nimrod
02:25:29*mal`` quit (Ping timeout: 264 seconds)
02:30:24*mal`` joined #nimrod
02:40:41*xenagi quit (Quit: Leaving)
02:41:16*filwit quit (Quit: Leaving)
02:51:11VarriountSo something related to security/timing attacks and openssl has been bugging me.
02:52:13VarriountHow exactly does one implement, say, a function that checks if two strings are equal (and not abort on the first mismatch) and prevent the compiler from optimizing?
03:06:15SkrylarVarriount: hash it
03:06:27Skrylaralternatively
03:06:34Skrylarstore the result in a flag and don't break early
03:07:09Skrylari remember reading about "secure compare" in Java, and the writer's recommendation was to keep a bool around called "different" and set it to true whenever there is a difference, but don't break out early
03:07:20Skrylarthat way you can't use a timing attack because its still doing the entire for loop
03:08:45Skrylarthe compiler could maybe unroll the loop a bit, but since you're still looping the whole string and never issuing a return within the loop its going to be the same
03:18:30*bbodi joined #nimrod
03:20:07fowlwhats a timing attack
03:45:40*BitPuffin quit (Ping timeout: 265 seconds)
03:52:53*flaviu quit (Quit: Leaving.)
04:05:46Xuerianfowl: A simple explanation is a attack that uses the time it takes to get a result as a indicator of the result of some computation.
04:06:18XuerianThus, continuing to check against all options (and not immediately returning the match) negates it because it takes the same amount of time.
04:17:14*darithorn quit (Ping timeout: 255 seconds)
04:23:20*bbodi quit ()
04:28:15*BitPuffin joined #nimrod
04:34:43*ehaliewicz joined #nimrod
05:55:50*bbodi joined #nimrod
06:25:02*mmatalka joined #nimrod
06:25:21mmatalkaAnyone using Nimrod for mobile develoment?
06:40:23*BitPuffin quit (Ping timeout: 252 seconds)
07:00:27*BitPuffin joined #nimrod
07:50:49*mojibake8 joined #nimrod
07:51:07*mojibake8 left #nimrod (#nimrod)
08:05:54*radsoc joined #nimrod
08:17:10bbodiAraq: I created issues the compiler bugs we talked yesterday: https://github.com/Araq/Nimrod/issues/1142 , https://github.com/Araq/Nimrod/issues/1143
08:28:16*Araq_bnc is now known as Araq
08:36:25Araqbbodi: make PUTF8String = object of TObject and then you can use type conversions instead of 'cast'
08:37:01AraqI'm not saying that causes your bug, but it helps anyway
08:37:30bbodiI will try it, thanks!
08:42:56fowlAraq, i got a segfault from a recent commit :(
08:43:51Araqfowl: report it. extra points if I don't have to install 5 packages to compile the example program
08:45:46fowlAraq, you should be able to compile without having the libraries
08:47:00fowlAraq, it is package heavy though :)
08:52:17Araqextra points if you say what "recent commit" means
08:56:36*EXetoC joined #nimrod
08:57:59fowlsry github is too hard
08:58:11*q66 joined #nimrod
08:58:11*q66 quit (Changing host)
08:58:11*q66 joined #nimrod
08:59:27Araqfowl: did the commit happen after the release of 0.9.4 ?
08:59:33fowli think so
09:07:52Araqso please try the master branch
09:15:07fowllooks like the same backtrace
09:17:22bbodiAraq: is there any description how the automation testing works in the compiler?
09:20:06AraqI don't know. but the commands are:
09:20:15Araqnimrod c tests/testament/tester
09:20:32Araqtests/testament/tester cat <some_category>
09:20:48Araqor: tests/testament/tester cat all
09:21:06Araqtests/testament/tester --print html # generate report
09:21:47bbodiI need information about how to write tests for compiler modules. Whether the module could contain the test itelf (it would be the best), or tests should be in external files, or both of them?
09:29:15Araqrecently we have been adding unit tests to the compiler
09:29:33Araqbut these are not run automatically yet
09:30:03AraqI prefer the integration tests, where you create a file in some subdirectory of tests/ and specify what the outcome should be
09:30:36Araqlook at a number of tests to learn the syntax
09:32:20Araqand then in the compiler add a comment like "this makes tests/foo/bar.nim work"
09:34:53fowlhttps://github.com/Araq/Nimrod/issues/1144
09:37:03Araqfowl: you can quick fix it with a 'nil' check in 'lsub', I guess
09:37:29Araqthe real fix is to find why the node is 'nil' in the first place
09:37:44Araqthat can quickly be found with the node id mechanism in the compiler
09:38:08AraqI guess I should really start to document these things
09:48:38*ehaliewicz quit (Ping timeout: 240 seconds)
09:57:04fowlAraq, ok thx
09:57:14fowlAraq, ill check it out tomorrow, going to sleep now
09:57:17fowlgn
10:16:26*nande quit (Remote host closed the connection)
11:02:51*io2 joined #nimrod
12:02:27bbodishould UFCS work on templated methods? e.g.: proc asd*[T](self: int): T = cast[T](self)
12:02:28bbodi3.asd[int]
12:28:10*xenagi joined #nimrod
12:42:18*Skrylar quit (Ping timeout: 240 seconds)
12:57:09*BitPuffin quit (Ping timeout: 252 seconds)
12:58:46Araqbbodi: yes, but there are known bug wrt method invocation syntax
13:07:35*noam quit (Quit: Leaving)
13:33:49*[1]Endy joined #nimrod
13:39:11*[2]Endy joined #nimrod
13:40:40bbodiAraq: do you accept modifications related to code refactoring and local unit tests? I'm investigating the source of the compiler, and it is hardly understandable, I think some Clean Code (http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882) would be beneficial
13:41:37*bbodi quit ()
13:42:58*[1]Endy quit (Ping timeout: 276 seconds)
13:44:11*isenmann quit (Quit: Leaving.)
13:46:06*ehaliewicz joined #nimrod
13:49:15*darkf quit (Quit: Leaving)
13:50:11*[1]Endy joined #nimrod
13:50:38*ehaliewicz quit (Ping timeout: 240 seconds)
13:52:31*[2]Endy quit (Ping timeout: 252 seconds)
13:59:40Araqoh god, no "clean code" please
13:59:54Araqthat guy has no idea about anything
14:09:26*jbe joined #nimrod
14:31:52reactormonkAraq, which specific part don't you like?
14:31:59reactormonkbtw, 14831 segmentation fault (core dumped) nimrod -r c test.nim
14:32:10reactormonkhow do you get something better than `segfault`?
14:32:51NimBotAraq/Nimrod devel 1b1bb28 flaviut [+1 ±1 -0]: Clean up gitignore, the current ignore is equvilent to the previous
14:32:51NimBotAraq/Nimrod devel 8c6b1b4 Simon Hafner [+1 ±1 -0]: Merge pull request #1141 from flaviut/moreignore... 2 more lines
14:39:03*darithorn joined #nimrod
14:42:04xenagiIm always suspicious of people that ask a question then leave immediately after
15:13:02*io2 quit (Quit: ...take irc away, what are you? genius, billionaire, playboy, philanthropist)
15:16:29dom96Ludum Dare starting in 9 hours
15:31:29*radsoc quit (Ping timeout: 264 seconds)
15:33:46*Matthias247 joined #nimrod
15:36:06*Kelet quit (*.net *.split)
15:50:50fowlAraq, found the cause of the segfault
15:52:31fowlthe cause was empty comments >_> https://github.com/fowlmouth/flaming-nemesis/blob/master/src/net/enetcon.nim#L47
15:56:57*[2]Endy joined #nimrod
15:58:19*Kelet joined #nimrod
15:58:53*untitaker quit (Ping timeout: 265 seconds)
16:00:29*[1]Endy quit (Ping timeout: 252 seconds)
16:00:33fowloh yeah i wrote this last night, and it might even work https://gist.github.com/fowlmouth/11284189
16:05:10*untitaker joined #nimrod
16:09:46EXetoCneat
16:14:34dom96cool
16:50:25*Demos joined #nimrod
16:54:46Demoshm I found the compilers codebase quit clean. A little strange likiely due to the conversion from pascal, but clean
16:55:04Demos*quite
17:00:27fowlthis is neat https://github.com/bbodi/WhiteStag
17:04:05KeletThink I'm gonna code my first 'real' piece of Nimrod code today ^_^
17:09:12Demoswowah new python site
17:11:58Demoszahary: nimrod.vim is borked on windows
17:24:11Varriountreactormonk: If nothing else, I think the stdlib should have some sort of style guide.
17:32:59AraqVarriount: our style guide even specifies which verb to use ...
17:33:32Araqhttp://nimrod-lang.org/apis.html
17:33:35*DAddYE joined #nimrod
17:36:33*io2 joined #nimrod
17:40:35VarriountAraq: But what kind of style do we use for multi-line procedure declarations?
17:40:59Araqproc foo(bar: int,
17:41:11Araq baz: string) = # aligned to the (
17:41:20Araq echo "bli bla blub"
17:42:01Araqsometimes we use less indentation to get it on the line without violating our 80 column limit
17:42:31Araqand if you think this limit is archaic, you're perfectly right but I always have multiple windows open
17:42:38EXetoCI prefer 3 indents
17:42:49VarriountWhat about pragmas?
17:43:27VarriountPersonally, I don't know why long pragma's aren't put on a seperate line, "{." included.
17:43:45Araqbecause that's only possible since recently
17:44:02Araqthe latest parser reformations allow for putting {. on a new line
17:44:23VarriountAh.
17:45:16AraqVarriount: can you please merge the fixes that don't break anything into master?
17:45:23VarriountAraq: Ok.
17:45:38*Matthias247 quit (Quit: Matthias247)
17:48:31VarriountAraq: I don't suppose you know a specific way to do that?
17:49:04Araqall I know is that it's called "cherry picking"
17:49:49VarriountHm. But that might cause complications when merging devel into master in the future...
17:50:04VarriountAh well, I'll test everything on my local repo.
18:09:46VarriountAraq: Unless I rewrite the commoit history of both master and devel, there's a chance that merging to two in the future will lead to conflicts. Is this acceptable?
18:09:53Varriount*commit
18:10:51VarriountAlso, from what I've read, what really needs to be done is that a "hotfixes" branch needs to created, which is periodically merged into both master and devel.
18:13:49Araqok, I guess that makes sense
18:13:55Araqso let's do that instead
18:14:02Araqon the other hand ...
18:14:20VarriountAraq: This might be worth a read -> http://nvie.com/posts/a-successful-git-branching-model/
18:15:41Araqno. 2 branches are enough. We test bugfixes on devel, merge them into master
18:15:52Araqand it should fail there due to other changes in devel
18:15:59Araqwe can roll back easily enough
18:16:12Araq3 branches is overkill
18:16:22Araqwe have official releases for a reason
18:16:25VarriountAraq: But you see, I can't actually "merge" them back into master without merging the entire devel branch.
18:16:54VarriountCherrypick is the equivalent of copying changes by hand on a different branch.
18:18:14AraqI don't want to switch to "hotfixes" for bug fixes.
18:18:57Araqlet's cherry pick please
18:19:22Araqwho cares if the merge causes conflicts that should happen rarely
18:19:34dom96There will be many conflicts.
18:20:02dom96Not only that but I'd imagine the conflicts will be very confusing.
18:20:19VarriountOk. I also would like to inform you that it will cause the repository size to grow at an increased rate.
18:20:26dom96we need a third branch
18:20:31VarriountHm. I wonder what python does...
18:21:06dom96in fact, we only need 2. But master is pointless.
18:21:17Keletis 2 spaces for indentation relatively standard?
18:21:20Keletor is 3 used more
18:21:26dom96Kelet: 2
18:21:39Araqzahary: if you ever return from your holidays, we would value your opinion on this branching stuff
18:22:03VarriountAraq: Do you use a GUI for git?
18:22:11AraqVarriount: no.
18:22:40VarriountAraq: Would you consider using one?
18:23:01Araqwhy?
18:23:23Araqhi mmatalka welcome!
18:23:38VarriountAraq: I've heard you comment that git is user-unfriendly. A gui frontend might ease things along.
18:24:18Varriount(On a side note, I agree, git *is* user unfriendly, like most tools of it's kind)
18:24:45dom96In fact, we should create a version-hotfixes branch for each release.
18:25:28AraqVarriount: at work I use a gui frontend. doesn't help with anything.
18:25:49Varriount Oh. :<
18:25:59Araqthough I have to admit that my recent push to the C sources wouldn't have happened with a GUI
18:26:44dom96You're right. The GUI would freeze because of the millions of files :P
18:26:57Araqor that lol
18:27:45VarriountHm.. I might have a solution. It wouldn't get around the increased rate of size increase, but it would prevent merge errors.
18:28:25Araqdom96: what's the point of a master branch that doesn't get bugfixes?
18:28:48dom96I wish we thought this through more...
18:28:56dom96This can't work.
18:30:09VarriountUnless you have a hotfix branch, or are willing to change history on a regular basis.
18:31:06*brson joined #nimrod
18:31:32Araqdom96: so please think it through but I really dislike switching branches all the time
18:32:25dom96I don't have much experience so I can't be of much help.
18:32:31VarriountOk. I just ran a dry run of cherry picking commits from devel into master, and then merging devel into master, and there were no merge conflicts.
18:32:55dom96Varriount: That's because there were no further commits made.
18:32:59dom96in devel.
18:33:05Varriountdom96: Uh, yes there were.
18:33:26dom96Not after you cherry picked.
18:33:49dom96But perhaps git can deal with that.
18:33:59Varriountdom96: I picked 3 commits from devel, all non-consequtive, onto master.
18:33:59dom96Highly risky though.
18:34:01Araqhi brson. How does Rust handle git branches?
18:34:06VarriountI then commited them.
18:34:35AraqI've never heard that cherry picking is "highly risky"
18:34:36VarriountI then merged devel into master, which pulled *all* of the changes from devel onto master.
18:34:53dom96Varriount: Make a commit to devel which makes changes to the files which the commits you cherry picked affect.
18:35:54dom96Araq: Fine. But don't say I didn't warn you.
18:36:56dom96Also, if you do this make sure to use the -x flag when cherry picking.
18:37:08VarriountWhy not?
18:37:36dom96brb
18:37:44*vendethiel quit (Read error: Connection reset by peer)
18:37:59*vendethiel joined #nimrod
18:49:58VarriountYou know, I wonder why git doesn't have some sort of "meta history" to track changes to normal history, so that things like rebasing can be done without fear..
18:51:10*q66 quit (Quit: Leaving)
18:53:29*q66 joined #nimrod
18:53:29*q66 quit (Changing host)
18:53:29*q66 joined #nimrod
18:53:34*q66 quit (Remote host closed the connection)
18:57:04*Matthias247 joined #nimrod
18:58:52*q66 joined #nimrod
18:58:52*q66 quit (Changing host)
18:58:53*q66 joined #nimrod
19:06:13bjzAraq: you submit a PR via github, then there are a group of developers who can comment 'r+' on the last commit of the PR if they are happy with the change. bors, the buildbot, then automatically adds the PR to the queue for testing. If, and only if all the tests pass on all the supported platforms, then the change is merged. No merges into master are ever done by hand.
19:07:50bjzAraq: here is the queue status page: http://buildbot.rust-lang.org/bors/bors.html
19:07:50*ehaliewicz joined #nimrod
19:08:21bjzAraq: and here is the build waterfall: http://buildbot.rust-lang.org/waterfall?refresh=15
19:11:25Araqthat doesn't really answer my question. So which branches exist?
19:11:39bjzoh sorry
19:11:59EXetoCbjz: howdy. join the dark side
19:12:07bjzAraq: https://github.com/mozilla/rust/branches
19:12:32bjzAraq: I think auto is the one that bors uses to test on
19:13:03dom96Araq: I doubt that Rust cares about backporting fixes at this stage of its development.
19:13:20bjzAraq: and the try branches are for people to test their stuff without merging
19:13:45bjzAraq: there are also tags for the releases: https://github.com/mozilla/rust/releases
19:14:21VarriountThey use buildbot... :/
19:14:37bjzdom96: ahh ok - yeah the release numbers are just excuses for press releases atm :P
19:15:47bjzdom96: if somebody said, 'this isn't working', the response would be, "upgrade to master" :P
19:16:07VarriountAlthough, in reflection, backporting fixes would lessen the number of duplicate bugs for those who want to use master..
19:17:02bjzAraq: yeah I dunno if that answers the question - no backporting at the moment. might be interesting to look at how D does it?
19:17:28VarriountI can't speak for python. They use mercurial.
19:18:08bjzhttps://github.com/D-Programming-Language/dmd/branches https://github.com/D-Programming-Language/dmd/releases
19:18:51Araqlast time I read about how D does it people complained that it simply doesn't work
19:18:57bjzseems they still keep v1 around, and are updating it
19:19:13bjzyeah, they are not a shining examples
19:19:33dom96Instead of backporting fixes we should simply release more often.
19:19:35Varriountdom96: Could we have nimbot do what the rust buildbot does?
19:20:20dom96or just tell them to download a nightly from nimbuild.
19:20:28dom96Varriount: yes, it's on my todo.
19:20:34Varriount:D
19:20:40bjzdom96: you might not be able to test all platforms, but some form of protection is useful
19:21:32dom96yeah
19:21:52bjzunlike a couple of years ago, Rust's master brance is never on fire these days
19:28:34*nande joined #nimrod
19:42:56NimBotAraq/Nimrod new_comment_handling fab8cee Araq [+0 ±5 -0]: minor tweaks; updated todo.txt
19:42:56NimBotAraq/Nimrod new_comment_handling 0049a2a Araq [+2 ±17 -0]: Merge branch 'devel' of https://github.com/Araq/Nimrod into devel
19:42:56NimBotAraq/Nimrod new_comment_handling e6cad81 Araq [+0 ±8 -0]: easier comment handling; breaks code
19:51:49VarriountOoo
19:52:02*Demos is an idior
19:52:05Demos*idiot
19:52:39Demosspent 2h troubleshooting an error where a function I was writeing is actually showing up in overload resolution, turns out I was editing the wrong file /o\
19:53:41*nande quit (Ping timeout: 264 seconds)
19:54:59AraqDemos: speaking of which, can you rewrite overloading resolution (OR) in the compiler?
19:55:22AraqI want it to work like C++ mostly
19:55:32Araqthe current way is not spec'able
19:55:42VarriountHow does it currently work?
19:57:47Demosthat sound like a good project, I dont think I can get to it until monday (finals) but I can start writing tests today. Which parts of overload resolution do you want from C++?
19:58:06Demosw.r.t. stuff like ADL and SFINAE
19:59:01Araqwell we have our own ADL and I don't know how we should handle SFINAE right now
19:59:41AraqI am talking about "Foo[T] matches better than T and a function is picked only if it's better or the same for any argument"
20:00:09AraqI'm talking about the subset constructions
20:01:08Araqbasically a bit patch of compiler/sigmatch.nim and to the manual
20:02:26Araq*a big
20:04:57VarriountAraq: Besides the the os.path module, are there any other python modules you would like ported?
20:06:47Demosallright ... off to write some failing tests :D
20:09:37AraqVarriount: we really need a bignum library but that's hard to port from python
20:10:05Araqalso check out mickla's python and lua bindings and help the guy
20:10:23VarriountAraq: I believe someone (renesac?) is working on a bignum lib
20:10:38Araqhas the potential for a killer feature, IMO
20:10:54Araq"have existing python code? Just call it from Nimrod!"
20:11:41VarriountAraq: But what should I do with regards to his module?
20:11:51Araqwhat module?
20:11:55Araqos.path?
20:12:04Araqwe have most of that in os.nim already
20:12:36Demoshow do we currently deal with converters during overload resolution?
20:12:51*flaviu joined #nimrod
20:13:13VarriountAraq: There are certain things os.nim doesn't have.
20:14:34VarriountLike relative_to
20:21:22AraqDemos: converters are considered when there is no other match
20:21:35Demoshow many hops?
20:21:49Araq2 or 3.
20:21:53Demosallright
20:22:54AraqVarriount: sure but there are so many other things to do. For instance wxWidgets 3.0 has been released and I still think with c2nim a wrapper could easily be created
20:23:40DemosVarriount: fsmonitor could use some windows love
20:23:51*shodan45 quit (Quit: Konversation terminated!)
20:24:37EXetoCAraq: concatenation (##) translation hasn't been implemented, right?
20:26:47flaviuIs using naming a proc `newSomething` without returning a pointer misleading?
20:29:54Araqflaviu: IMO yes
20:30:01AraqEXetoC: right
20:30:04EXetoCnewGame is fine
20:30:35flaviuAlright, so a better name might be `Something()`?
20:31:50EXetoCwhen? initT is the convention for value types, but I often exclude that prefix
20:32:34flaviuOk, if thats the convention, I'll use that
20:39:19VarriountEXetoC: Concatenation translation?
20:40:59dom96Varriount: Yeah, please make fsmonitor work on Windows with the new async stuff.
20:41:07dom96(and linux too)
20:41:34dom96Go doesn't even have an fsmonitor yet, we could potentially beat them to it :P
20:44:56*scorex joined #nimrod
20:46:47dom96hi scorex
20:47:40EXetoCVarriount: ## for C macros
20:48:33scorexhello
20:53:57*Demos quit (Remote host closed the connection)
21:04:40Varriountdom96: If the new async stuff actually had proper explanations for how it works, reworking fsmonitor would be easy.
21:07:23*[2]Endy quit (Ping timeout: 252 seconds)
21:07:43dom96Varriount: You're right. You can ask me questions whenever you want though.
21:08:42Varriountdom96: Ok. Since I've never used C#, what does "await" actually do?
21:09:38dom96It stops the execution of the current function until the future you await completes.
21:12:04dom96This allows other asynchronous functions to be 'resurrected'
21:12:17dom96if the future that they are awaiting on completes.
21:25:27dom96Araq: What do you think of dependent types?
21:26:40dom96This is pretty cool: https://www.youtube.com/watch?v=fVBck2Zngjo
21:36:39*scorex quit (Quit: Page closed)
21:43:43xenagiseems neat
21:43:51xenagii read a bit about that a couple of weeks back
21:44:24*nande joined #nimrod
21:44:39*io2 quit (Quit: ...take irc away, what are you? genius, billionaire, playboy, philanthropist)
21:46:03*BitPuffin joined #nimrod
21:46:43dom96BitPuffin: Ludum Dare starting soon. You should do it in Nimrod.
21:47:11BitPuffindom96: oh ludum dare is starting eh?
21:47:32dom96aye buddy
21:47:43BitPuffindom96: you no it
21:47:45BitPuffindo*
21:47:53dom96I have to study for exams.
21:47:56dom96Wish I could :(
21:48:00BitPuffinI can't do it without a math lib
21:48:13dom96:\
21:48:18BitPuffinwell for 2d I guess all you really need is vectors
21:48:34BitPuffinbut I prefer doing 3d
21:48:50BitPuffinoh it starts in 3 hours
21:50:12fowllol
21:50:26fowlwaht do u hate about 2d
21:50:42fowltwo directions of movement, so rustic and simple
21:58:54EXetoCone is enough
21:59:52*Demos joined #nimrod
22:00:16Demosyou can totally write a reasonable vector API without static Ts, you just have to be more explicit
22:00:41Demosyou only really need vec3s and mat4x4s in a 3d game
22:00:44dom96yeah, come on.
22:00:45Demosmaybe quaternions as well
22:00:54EXetoCapparently he doesn't want to do that :p
22:00:55Demosand vec4s
22:01:02Demoswell then that is his problem :D
22:01:09Demosalthough exams are also an issue :D
22:02:31fowlyou guys are missing the point
22:02:36BitPuffinfowl: 3d is more natural
22:02:54BitPuffinDemos: I know of course I can, but not during an LD :P
22:02:55fowlif someone wrote the matrix stuff they needed they would have to find something else to complain about
22:03:33dom96BitPuffin: I managed...
22:03:33fowlBitPuffin, as if you didnt have months to have it done already -_-
22:03:57dom96Just make a 2D game.
22:04:05BitPuffindom96: you managed what?
22:04:13dom96To do an LD using Nimrod.
22:04:13BitPuffinTo make a 3d math lib? :P
22:04:15BitPuffinah
22:04:17BitPuffinyeah
22:04:19BitPuffinI know
22:04:30BitPuffinwell I dunno
22:04:47BitPuffinI seeem to be more plagued by bugs than anyone else everytime I do something in nimrod :s
22:08:27fowlits like convincing a woman that she's not ugly
22:08:34fowljk jk
22:08:54fowlBitPuffin, oh yea its friday, wheres that AAA game
22:12:14BitPuffinfowl: :P
22:12:25*oxful quit (Ping timeout: 240 seconds)
22:16:01dom96lol
22:16:08dom96It seems iterators don't work very well in macros
22:16:28dom96It looks like the VM is corrupting what I am yielding.
22:16:49BitPuffindom96: seee :P
22:17:04dom96BitPuffin: You don't need macros for LD :P
22:17:14dom96Araq: Where are you!?
22:17:40dom96The guy in the idris video mentions that macros are an alternative to the dependent typing implementation
22:17:47dom96So I decided to implement it using macros :P
22:18:09fowlwhats the easiest way to make matcher func return something more than a string, like a JSON object https://gist.github.com/fowlmouth/11284189
22:18:20dom96Pity that it doesn't work: https://gist.github.com/dom96/11305055
22:19:45fowlthat should work
22:20:14dom96it generates gibberish
22:21:54fowlError: unhandled exception: intVal is not accessible [EInvalidField]
22:22:17fowlthats what i get
22:22:27flaviuhttps://github.com/Araq/Nimrod/issues/1108
22:22:54dom96https://github.com/Araq/Nimrod/issues/1149
22:23:28dom96really? I don't get that.
22:24:08flaviudom96: I can't reproduce the gibberish, just the error
22:24:19dom96Try the code in the issue I posted
22:24:21flaviuon either example
22:24:42dom96The second example doesn't use static
22:25:20flaviuThe same error exists
22:25:39dom96can you guys confirm this issue? https://github.com/Araq/Nimrod/issues/1148
22:25:42dom96That looks rather serious
22:25:45flaviuIt gets created in a different way though
22:26:43flaviuI can't confirm it, but I've had the same bug
22:28:01*Jesin quit (Quit: Leaving)
22:28:29*Demos quit (Ping timeout: 264 seconds)
22:29:26dom96indeed. Happens for me when I compile with --debugger:on
22:30:10*Jesin joined #nimrod
22:32:06dom96well, this is disappointing.
22:32:25fowl0.9.4.1?
22:32:53flaviudom96: I missed a line on the gitignore, can you pull 1150?
22:33:23*Matthias247 quit (Read error: Connection reset by peer)
22:33:24dom96never seen that extension before
22:34:24flaviuSorry, I'm messed up on messing up
22:34:33fowlLOL
22:34:38fowllol* sry
22:35:23dom96flaviu: Can you try #1149 with latest compiler?
22:35:25EXetoCdom96: what happens? --debugger:on generated invalid C code for me
22:35:51dom96EXetoC: It generates incorrect code?
22:36:27EXetoCcode that doesn't compile
22:36:52dom96i'm not sure what you're asking me
22:38:17flaviucommands.nim(62, 32) Error: undeclared identifier: 'nativeStackTraceSupported'
22:40:58*bjz quit (Ping timeout: 240 seconds)
22:41:01EXetoCdom96: looking at it now. I did get a similar error with --debugger:on today
22:42:36dom96flaviu: I get the EInvalidField exception in debug mode
22:44:26dom96cool, found a workaround
22:49:33BitPuffindom96: if you are a sissy gamedev you don't
22:49:35BitPuffin:P
22:49:58dom96woo, it works: https://gist.github.com/dom96/11305055
22:50:05dom96Took me only an hour.
22:50:49*Demos joined #nimrod
22:53:11dom96You guys think the code is reddit-worthy?
22:55:26renesacwe don't have something like this yet, as format?
22:55:51dom96no, we have `%` instead.
22:56:18renesacyeah, so what is the difference between % and your code?
22:56:55renesacand why do you require an nnkIntLit, and not just an integer?
22:57:26dom96I wrote it simply to see how it compares to the Idris dependent type version.
22:57:48dom96you're right about the lit thing
22:58:33dom96but actually
22:58:34renesacand why this must be a macro and not simply a function?
22:58:50dom96We have no type API so I can't verify the type of a passed in symbol :\
22:59:05renesacx.type works for me on generic procs
22:59:07dom96so that the types are verified at compile-time
22:59:32renesacwhen x.type == int: dosomething
22:59:44dom96I don't think I can do that.
23:00:00dom96x.type will be an expr
23:00:17dom96or a PNimrodNode
23:01:23dom96There is a way I could get this to properly verify the types actually
23:01:33dom96Would need to generate a procedure definition
23:03:59milosnhow do you exit nimrod program? sounds stupid but google dont help :)
23:04:52EXetoClet it get to the end of the main module
23:04:59dom96milosn: http://build.nimrod-lang.org/docs/system.html#quit,int
23:05:06EXetoCyou can also use the quit function or raise an exception and don't handle it
23:05:47EXetoCI mean proc :p
23:08:58renesacI meant 'is' instead of '=='
23:09:05renesacI'm getting this error now:
23:09:13renesacError: cannot generate code for 'error'
23:10:25dom96fowl: You're a ruby guy right? http://forum.nimrod-lang.org/t/432
23:13:01milosndom96: thanks :)
23:15:17*Demos quit (Ping timeout: 264 seconds)
23:19:09renesacwe still can't echo typedefs
23:22:03EXetoCnot directly, which is a pain in the butt
23:28:03EXetoCyou have to use typetraits.name
23:28:55*filwit joined #nimrod
23:31:26EXetoCI sometimes pass it to echo directly anyway. works in some cases
23:38:00fowlEXetoC, u do it to check type? i do that too >_>
23:38:40*darkf joined #nimrod
23:38:42fowldom96, i will answer him
23:39:27flaviuWow, til I don't have to type cd to cd
23:39:46flaviuin fish
23:48:47fowlfish is like a preconfigured zsh
23:51:45EXetoCfowl: might as well use echo then
23:59:37*filwit quit (Quit: Leaving)