00:02:31 | * | flaviu quit (Quit: Leaving.) |
00:13:11 | * | Jesin joined #nimrod |
00:19:47 | dom96 | You guys wanna try your hand at HN again? |
00:21:59 | Varriount | Hm? |
00:22:27 | dom96 | At getting the Nimrod release announcement to the front page of HN |
00:22:51 | Varriount | I don't have a HN account... |
00:23:12 | dom96 | Why does nobody have a damn HN account? |
00:23:38 | dom96 | Oh well. I should sleep anyway. |
00:25:20 | EXetoC | so, is it the right day and time and all? :p |
00:25:50 | dom96 | probably not |
00:25:54 | dom96 | but i'm heading to sleep anyway |
00:26:02 | dom96 | everyone create an HN account |
00:26:07 | dom96 | and then we can try it later |
00:26:09 | dom96 | perhaps |
00:26:11 | dom96 | bye |
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:58 | filwit | Araq... Araq just left.... |
00:49:18 | * | andreroquem quit (Remote host closed the connection) |
00:49:39 | Varriount | O_o |
00:49:44 | filwit | the king is dead.. BATTLE FOR #NIMROD RULE BEGINS! |
00:49:59 | Skrylar | lol |
00:50:05 | * | Varriount uses {.emit.}! |
00:50:23 | * | filwit uses {.magic.}! |
00:50:38 | filwit | beat that! I'm a Wizard! |
00:51:08 | * | zahary quit (Ping timeout: 252 seconds) |
00:51:09 | * | Araq_bnc joined #nimrod |
00:51:21 | filwit | NOO! |
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:13 | filwit | softice ? |
01:10:21 | Skrylar | it used to be a big deal |
01:10:24 | filwit | unfamiliar with that term |
01:10:26 | Skrylar | kernel-mode debugger that ran all the time |
01:10:36 | Skrylar | you could hit a key chord and it would stop the world and drop the whole OS to a debugger |
01:10:50 | filwit | ah, okay |
01:10:51 | Skrylar | used to be used by crackers and driver developers |
01:11:10 | Skrylar | no, not the food |
01:11:12 | filwit | that's racist |
01:11:15 | filwit | :P |
01:11:38 | Skrylar | well it turned out DRM didn't work so well when the OS stopped everything at once |
01:11:42 | Skrylar | though that program is long dead now |
01:12:34 | * | Varriount hugs Process Monitor |
01:14:04 | Skrylar | its too bad nobody recognized the softice joke and escalated by rebooting the computer |
01:14:13 | Skrylar | we 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:28 | filwit | damn.. there's no macros.insert which takes an array of nodes.. |
01:20:54 | Skrylar | what would that do? |
01:20:56 | EXetoC | chain adds |
01:21:08 | Skrylar | you can just use seq stuff to build the ast |
01:21:12 | Skrylar | ITS THE LISP |
01:21:15 | Skrylar | :O |
01:22:04 | filwit | yeah 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:24 | Skrylar | write one and shove it in a PR :b |
01:25:24 | * | andreroquem quit (Quit: andreroquem) |
01:25:42 | Skrylar | though there might be efficiency weirdness with inserts like that |
01:25:55 | Skrylar | i guess not since you can do a fixed-size expand and shove |
01:27:26 | filwit | meh, i've already moved passed it |
01:30:40 | * | fowl joined #nimrod |
01:38:03 | filwit | oh cool, so 'for child in someSeqOfRefTy' not allows child to be modified? nice.. |
01:38:28 | filwit | now* |
01:40:43 | reactormonk | filwit, try mitems |
01:42:12 | filwit | reactormonk, 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:15 | filwit | reactormonk, 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:18 | Skrylar | sweet |
01:59:31 | Skrylar | coaxed 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:11 | Varriount | So something related to security/timing attacks and openssl has been bugging me. |
02:52:13 | Varriount | How 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:15 | Skrylar | Varriount: hash it |
03:06:27 | Skrylar | alternatively |
03:06:34 | Skrylar | store the result in a flag and don't break early |
03:07:09 | Skrylar | i 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:20 | Skrylar | that way you can't use a timing attack because its still doing the entire for loop |
03:08:45 | Skrylar | the 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:07 | fowl | whats a timing attack |
03:45:40 | * | BitPuffin quit (Ping timeout: 265 seconds) |
03:52:53 | * | flaviu quit (Quit: Leaving.) |
04:05:46 | Xuerian | fowl: 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:18 | Xuerian | Thus, 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:21 | mmatalka | Anyone 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:10 | bbodi | Araq: 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:25 | Araq | bbodi: make PUTF8String = object of TObject and then you can use type conversions instead of 'cast' |
08:37:01 | Araq | I'm not saying that causes your bug, but it helps anyway |
08:37:30 | bbodi | I will try it, thanks! |
08:42:56 | fowl | Araq, i got a segfault from a recent commit :( |
08:43:51 | Araq | fowl: report it. extra points if I don't have to install 5 packages to compile the example program |
08:45:46 | fowl | Araq, you should be able to compile without having the libraries |
08:47:00 | fowl | Araq, it is package heavy though :) |
08:52:17 | Araq | extra points if you say what "recent commit" means |
08:56:36 | * | EXetoC joined #nimrod |
08:57:59 | fowl | sry 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:27 | Araq | fowl: did the commit happen after the release of 0.9.4 ? |
08:59:33 | fowl | i think so |
09:07:52 | Araq | so please try the master branch |
09:15:07 | fowl | looks like the same backtrace |
09:17:22 | bbodi | Araq: is there any description how the automation testing works in the compiler? |
09:20:06 | Araq | I don't know. but the commands are: |
09:20:15 | Araq | nimrod c tests/testament/tester |
09:20:32 | Araq | tests/testament/tester cat <some_category> |
09:20:48 | Araq | or: tests/testament/tester cat all |
09:21:06 | Araq | tests/testament/tester --print html # generate report |
09:21:47 | bbodi | I 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:15 | Araq | recently we have been adding unit tests to the compiler |
09:29:33 | Araq | but these are not run automatically yet |
09:30:03 | Araq | I prefer the integration tests, where you create a file in some subdirectory of tests/ and specify what the outcome should be |
09:30:36 | Araq | look at a number of tests to learn the syntax |
09:32:20 | Araq | and then in the compiler add a comment like "this makes tests/foo/bar.nim work" |
09:34:53 | fowl | https://github.com/Araq/Nimrod/issues/1144 |
09:37:03 | Araq | fowl: you can quick fix it with a 'nil' check in 'lsub', I guess |
09:37:29 | Araq | the real fix is to find why the node is 'nil' in the first place |
09:37:44 | Araq | that can quickly be found with the node id mechanism in the compiler |
09:38:08 | Araq | I guess I should really start to document these things |
09:48:38 | * | ehaliewicz quit (Ping timeout: 240 seconds) |
09:57:04 | fowl | Araq, ok thx |
09:57:14 | fowl | Araq, ill check it out tomorrow, going to sleep now |
09:57:17 | fowl | gn |
10:16:26 | * | nande quit (Remote host closed the connection) |
11:02:51 | * | io2 joined #nimrod |
12:02:27 | bbodi | should UFCS work on templated methods? e.g.: proc asd*[T](self: int): T = cast[T](self) |
12:02:28 | bbodi | 3.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:46 | Araq | bbodi: 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:40 | bbodi | Araq: 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:40 | Araq | oh god, no "clean code" please |
13:59:54 | Araq | that guy has no idea about anything |
14:09:26 | * | jbe joined #nimrod |
14:31:52 | reactormonk | Araq, which specific part don't you like? |
14:31:59 | reactormonk | btw, 14831 segmentation fault (core dumped) nimrod -r c test.nim |
14:32:10 | reactormonk | how do you get something better than `segfault`? |
14:32:51 | NimBot | Araq/Nimrod devel 1b1bb28 flaviut [+1 ±1 -0]: Clean up gitignore, the current ignore is equvilent to the previous |
14:32:51 | NimBot | Araq/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:04 | xenagi | Im 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:29 | dom96 | Ludum 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:50 | fowl | Araq, found the cause of the segfault |
15:52:31 | fowl | the 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:33 | fowl | oh 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:46 | EXetoC | neat |
16:14:34 | dom96 | cool |
16:50:25 | * | Demos joined #nimrod |
16:54:46 | Demos | hm I found the compilers codebase quit clean. A little strange likiely due to the conversion from pascal, but clean |
16:55:04 | Demos | *quite |
17:00:27 | fowl | this is neat https://github.com/bbodi/WhiteStag |
17:04:05 | Kelet | Think I'm gonna code my first 'real' piece of Nimrod code today ^_^ |
17:09:12 | Demos | wowah new python site |
17:11:58 | Demos | zahary: nimrod.vim is borked on windows |
17:24:11 | Varriount | reactormonk: If nothing else, I think the stdlib should have some sort of style guide. |
17:32:59 | Araq | Varriount: our style guide even specifies which verb to use ... |
17:33:32 | Araq | http://nimrod-lang.org/apis.html |
17:33:35 | * | DAddYE joined #nimrod |
17:36:33 | * | io2 joined #nimrod |
17:40:35 | Varriount | Araq: But what kind of style do we use for multi-line procedure declarations? |
17:40:59 | Araq | proc foo(bar: int, |
17:41:11 | Araq | baz: string) = # aligned to the ( |
17:41:20 | Araq | echo "bli bla blub" |
17:42:01 | Araq | sometimes we use less indentation to get it on the line without violating our 80 column limit |
17:42:31 | Araq | and if you think this limit is archaic, you're perfectly right but I always have multiple windows open |
17:42:38 | EXetoC | I prefer 3 indents |
17:42:49 | Varriount | What about pragmas? |
17:43:27 | Varriount | Personally, I don't know why long pragma's aren't put on a seperate line, "{." included. |
17:43:45 | Araq | because that's only possible since recently |
17:44:02 | Araq | the latest parser reformations allow for putting {. on a new line |
17:44:23 | Varriount | Ah. |
17:45:16 | Araq | Varriount: can you please merge the fixes that don't break anything into master? |
17:45:23 | Varriount | Araq: Ok. |
17:45:38 | * | Matthias247 quit (Quit: Matthias247) |
17:48:31 | Varriount | Araq: I don't suppose you know a specific way to do that? |
17:49:04 | Araq | all I know is that it's called "cherry picking" |
17:49:49 | Varriount | Hm. But that might cause complications when merging devel into master in the future... |
17:50:04 | Varriount | Ah well, I'll test everything on my local repo. |
18:09:46 | Varriount | Araq: 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:53 | Varriount | *commit |
18:10:51 | Varriount | Also, 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:49 | Araq | ok, I guess that makes sense |
18:13:55 | Araq | so let's do that instead |
18:14:02 | Araq | on the other hand ... |
18:14:20 | Varriount | Araq: This might be worth a read -> http://nvie.com/posts/a-successful-git-branching-model/ |
18:15:41 | Araq | no. 2 branches are enough. We test bugfixes on devel, merge them into master |
18:15:52 | Araq | and it should fail there due to other changes in devel |
18:15:59 | Araq | we can roll back easily enough |
18:16:12 | Araq | 3 branches is overkill |
18:16:22 | Araq | we have official releases for a reason |
18:16:25 | Varriount | Araq: But you see, I can't actually "merge" them back into master without merging the entire devel branch. |
18:16:54 | Varriount | Cherrypick is the equivalent of copying changes by hand on a different branch. |
18:18:14 | Araq | I don't want to switch to "hotfixes" for bug fixes. |
18:18:57 | Araq | let's cherry pick please |
18:19:22 | Araq | who cares if the merge causes conflicts that should happen rarely |
18:19:34 | dom96 | There will be many conflicts. |
18:20:02 | dom96 | Not only that but I'd imagine the conflicts will be very confusing. |
18:20:19 | Varriount | Ok. I also would like to inform you that it will cause the repository size to grow at an increased rate. |
18:20:26 | dom96 | we need a third branch |
18:20:31 | Varriount | Hm. I wonder what python does... |
18:21:06 | dom96 | in fact, we only need 2. But master is pointless. |
18:21:17 | Kelet | is 2 spaces for indentation relatively standard? |
18:21:20 | Kelet | or is 3 used more |
18:21:26 | dom96 | Kelet: 2 |
18:21:39 | Araq | zahary: if you ever return from your holidays, we would value your opinion on this branching stuff |
18:22:03 | Varriount | Araq: Do you use a GUI for git? |
18:22:11 | Araq | Varriount: no. |
18:22:40 | Varriount | Araq: Would you consider using one? |
18:23:01 | Araq | why? |
18:23:23 | Araq | hi mmatalka welcome! |
18:23:38 | Varriount | Araq: I've heard you comment that git is user-unfriendly. A gui frontend might ease things along. |
18:24:18 | Varriount | (On a side note, I agree, git *is* user unfriendly, like most tools of it's kind) |
18:24:45 | dom96 | In fact, we should create a version-hotfixes branch for each release. |
18:25:28 | Araq | Varriount: at work I use a gui frontend. doesn't help with anything. |
18:25:49 | Varriount | Oh. :< |
18:25:59 | Araq | though I have to admit that my recent push to the C sources wouldn't have happened with a GUI |
18:26:44 | dom96 | You're right. The GUI would freeze because of the millions of files :P |
18:26:57 | Araq | or that lol |
18:27:45 | Varriount | Hm.. I might have a solution. It wouldn't get around the increased rate of size increase, but it would prevent merge errors. |
18:28:25 | Araq | dom96: what's the point of a master branch that doesn't get bugfixes? |
18:28:48 | dom96 | I wish we thought this through more... |
18:28:56 | dom96 | This can't work. |
18:30:09 | Varriount | Unless you have a hotfix branch, or are willing to change history on a regular basis. |
18:31:06 | * | brson joined #nimrod |
18:31:32 | Araq | dom96: so please think it through but I really dislike switching branches all the time |
18:32:25 | dom96 | I don't have much experience so I can't be of much help. |
18:32:31 | Varriount | Ok. 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:55 | dom96 | Varriount: That's because there were no further commits made. |
18:32:59 | dom96 | in devel. |
18:33:05 | Varriount | dom96: Uh, yes there were. |
18:33:26 | dom96 | Not after you cherry picked. |
18:33:49 | dom96 | But perhaps git can deal with that. |
18:33:59 | Varriount | dom96: I picked 3 commits from devel, all non-consequtive, onto master. |
18:33:59 | dom96 | Highly risky though. |
18:34:01 | Araq | hi brson. How does Rust handle git branches? |
18:34:06 | Varriount | I then commited them. |
18:34:35 | Araq | I've never heard that cherry picking is "highly risky" |
18:34:36 | Varriount | I then merged devel into master, which pulled *all* of the changes from devel onto master. |
18:34:53 | dom96 | Varriount: Make a commit to devel which makes changes to the files which the commits you cherry picked affect. |
18:35:54 | dom96 | Araq: Fine. But don't say I didn't warn you. |
18:36:56 | dom96 | Also, if you do this make sure to use the -x flag when cherry picking. |
18:37:08 | Varriount | Why not? |
18:37:36 | dom96 | brb |
18:37:44 | * | vendethiel quit (Read error: Connection reset by peer) |
18:37:59 | * | vendethiel joined #nimrod |
18:49:58 | Varriount | You 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:13 | bjz | Araq: 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:50 | bjz | Araq: here is the queue status page: http://buildbot.rust-lang.org/bors/bors.html |
19:07:50 | * | ehaliewicz joined #nimrod |
19:08:21 | bjz | Araq: and here is the build waterfall: http://buildbot.rust-lang.org/waterfall?refresh=15 |
19:11:25 | Araq | that doesn't really answer my question. So which branches exist? |
19:11:39 | bjz | oh sorry |
19:11:59 | EXetoC | bjz: howdy. join the dark side |
19:12:07 | bjz | Araq: https://github.com/mozilla/rust/branches |
19:12:32 | bjz | Araq: I think auto is the one that bors uses to test on |
19:13:03 | dom96 | Araq: I doubt that Rust cares about backporting fixes at this stage of its development. |
19:13:20 | bjz | Araq: and the try branches are for people to test their stuff without merging |
19:13:45 | bjz | Araq: there are also tags for the releases: https://github.com/mozilla/rust/releases |
19:14:21 | Varriount | They use buildbot... :/ |
19:14:37 | bjz | dom96: ahh ok - yeah the release numbers are just excuses for press releases atm :P |
19:15:47 | bjz | dom96: if somebody said, 'this isn't working', the response would be, "upgrade to master" :P |
19:16:07 | Varriount | Although, in reflection, backporting fixes would lessen the number of duplicate bugs for those who want to use master.. |
19:17:02 | bjz | Araq: 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:28 | Varriount | I can't speak for python. They use mercurial. |
19:18:08 | bjz | https://github.com/D-Programming-Language/dmd/branches https://github.com/D-Programming-Language/dmd/releases |
19:18:51 | Araq | last time I read about how D does it people complained that it simply doesn't work |
19:18:57 | bjz | seems they still keep v1 around, and are updating it |
19:19:13 | bjz | yeah, they are not a shining examples |
19:19:33 | dom96 | Instead of backporting fixes we should simply release more often. |
19:19:35 | Varriount | dom96: Could we have nimbot do what the rust buildbot does? |
19:20:20 | dom96 | or just tell them to download a nightly from nimbuild. |
19:20:28 | dom96 | Varriount: yes, it's on my todo. |
19:20:34 | Varriount | :D |
19:20:40 | bjz | dom96: you might not be able to test all platforms, but some form of protection is useful |
19:21:32 | dom96 | yeah |
19:21:52 | bjz | unlike a couple of years ago, Rust's master brance is never on fire these days |
19:28:34 | * | nande joined #nimrod |
19:42:56 | NimBot | Araq/Nimrod new_comment_handling fab8cee Araq [+0 ±5 -0]: minor tweaks; updated todo.txt |
19:42:56 | NimBot | Araq/Nimrod new_comment_handling 0049a2a Araq [+2 ±17 -0]: Merge branch 'devel' of https://github.com/Araq/Nimrod into devel |
19:42:56 | NimBot | Araq/Nimrod new_comment_handling e6cad81 Araq [+0 ±8 -0]: easier comment handling; breaks code |
19:51:49 | Varriount | Ooo |
19:52:02 | * | Demos is an idior |
19:52:05 | Demos | *idiot |
19:52:39 | Demos | spent 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:59 | Araq | Demos: speaking of which, can you rewrite overloading resolution (OR) in the compiler? |
19:55:22 | Araq | I want it to work like C++ mostly |
19:55:32 | Araq | the current way is not spec'able |
19:55:42 | Varriount | How does it currently work? |
19:57:47 | Demos | that 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:06 | Demos | w.r.t. stuff like ADL and SFINAE |
19:59:01 | Araq | well we have our own ADL and I don't know how we should handle SFINAE right now |
19:59:41 | Araq | I 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:09 | Araq | I'm talking about the subset constructions |
20:01:08 | Araq | basically a bit patch of compiler/sigmatch.nim and to the manual |
20:02:26 | Araq | *a big |
20:04:57 | Varriount | Araq: Besides the the os.path module, are there any other python modules you would like ported? |
20:06:47 | Demos | allright ... off to write some failing tests :D |
20:09:37 | Araq | Varriount: we really need a bignum library but that's hard to port from python |
20:10:05 | Araq | also check out mickla's python and lua bindings and help the guy |
20:10:23 | Varriount | Araq: I believe someone (renesac?) is working on a bignum lib |
20:10:38 | Araq | has the potential for a killer feature, IMO |
20:10:54 | Araq | "have existing python code? Just call it from Nimrod!" |
20:11:41 | Varriount | Araq: But what should I do with regards to his module? |
20:11:51 | Araq | what module? |
20:11:55 | Araq | os.path? |
20:12:04 | Araq | we have most of that in os.nim already |
20:12:36 | Demos | how do we currently deal with converters during overload resolution? |
20:12:51 | * | flaviu joined #nimrod |
20:13:13 | Varriount | Araq: There are certain things os.nim doesn't have. |
20:14:34 | Varriount | Like relative_to |
20:21:22 | Araq | Demos: converters are considered when there is no other match |
20:21:35 | Demos | how many hops? |
20:21:49 | Araq | 2 or 3. |
20:21:53 | Demos | allright |
20:22:54 | Araq | Varriount: 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:40 | Demos | Varriount: fsmonitor could use some windows love |
20:23:51 | * | shodan45 quit (Quit: Konversation terminated!) |
20:24:37 | EXetoC | Araq: concatenation (##) translation hasn't been implemented, right? |
20:26:47 | flaviu | Is using naming a proc `newSomething` without returning a pointer misleading? |
20:29:54 | Araq | flaviu: IMO yes |
20:30:01 | Araq | EXetoC: right |
20:30:04 | EXetoC | newGame is fine |
20:30:35 | flaviu | Alright, so a better name might be `Something()`? |
20:31:50 | EXetoC | when? initT is the convention for value types, but I often exclude that prefix |
20:32:34 | flaviu | Ok, if thats the convention, I'll use that |
20:39:19 | Varriount | EXetoC: Concatenation translation? |
20:40:59 | dom96 | Varriount: Yeah, please make fsmonitor work on Windows with the new async stuff. |
20:41:07 | dom96 | (and linux too) |
20:41:34 | dom96 | Go doesn't even have an fsmonitor yet, we could potentially beat them to it :P |
20:44:56 | * | scorex joined #nimrod |
20:46:47 | dom96 | hi scorex |
20:47:40 | EXetoC | Varriount: ## for C macros |
20:48:33 | scorex | hello |
20:53:57 | * | Demos quit (Remote host closed the connection) |
21:04:40 | Varriount | dom96: 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:43 | dom96 | Varriount: You're right. You can ask me questions whenever you want though. |
21:08:42 | Varriount | dom96: Ok. Since I've never used C#, what does "await" actually do? |
21:09:38 | dom96 | It stops the execution of the current function until the future you await completes. |
21:12:04 | dom96 | This allows other asynchronous functions to be 'resurrected' |
21:12:17 | dom96 | if the future that they are awaiting on completes. |
21:25:27 | dom96 | Araq: What do you think of dependent types? |
21:26:40 | dom96 | This is pretty cool: https://www.youtube.com/watch?v=fVBck2Zngjo |
21:36:39 | * | scorex quit (Quit: Page closed) |
21:43:43 | xenagi | seems neat |
21:43:51 | xenagi | i 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:43 | dom96 | BitPuffin: Ludum Dare starting soon. You should do it in Nimrod. |
21:47:11 | BitPuffin | dom96: oh ludum dare is starting eh? |
21:47:32 | dom96 | aye buddy |
21:47:43 | BitPuffin | dom96: you no it |
21:47:45 | BitPuffin | do* |
21:47:53 | dom96 | I have to study for exams. |
21:47:56 | dom96 | Wish I could :( |
21:48:00 | BitPuffin | I can't do it without a math lib |
21:48:13 | dom96 | :\ |
21:48:18 | BitPuffin | well for 2d I guess all you really need is vectors |
21:48:34 | BitPuffin | but I prefer doing 3d |
21:48:50 | BitPuffin | oh it starts in 3 hours |
21:50:12 | fowl | lol |
21:50:26 | fowl | waht do u hate about 2d |
21:50:42 | fowl | two directions of movement, so rustic and simple |
21:58:54 | EXetoC | one is enough |
21:59:52 | * | Demos joined #nimrod |
22:00:16 | Demos | you can totally write a reasonable vector API without static Ts, you just have to be more explicit |
22:00:41 | Demos | you only really need vec3s and mat4x4s in a 3d game |
22:00:44 | dom96 | yeah, come on. |
22:00:45 | Demos | maybe quaternions as well |
22:00:54 | EXetoC | apparently he doesn't want to do that :p |
22:00:55 | Demos | and vec4s |
22:01:02 | Demos | well then that is his problem :D |
22:01:09 | Demos | although exams are also an issue :D |
22:02:31 | fowl | you guys are missing the point |
22:02:36 | BitPuffin | fowl: 3d is more natural |
22:02:54 | BitPuffin | Demos: I know of course I can, but not during an LD :P |
22:02:55 | fowl | if someone wrote the matrix stuff they needed they would have to find something else to complain about |
22:03:33 | dom96 | BitPuffin: I managed... |
22:03:33 | fowl | BitPuffin, as if you didnt have months to have it done already -_- |
22:03:57 | dom96 | Just make a 2D game. |
22:04:05 | BitPuffin | dom96: you managed what? |
22:04:13 | dom96 | To do an LD using Nimrod. |
22:04:13 | BitPuffin | To make a 3d math lib? :P |
22:04:15 | BitPuffin | ah |
22:04:17 | BitPuffin | yeah |
22:04:19 | BitPuffin | I know |
22:04:30 | BitPuffin | well I dunno |
22:04:47 | BitPuffin | I seeem to be more plagued by bugs than anyone else everytime I do something in nimrod :s |
22:08:27 | fowl | its like convincing a woman that she's not ugly |
22:08:34 | fowl | jk jk |
22:08:54 | fowl | BitPuffin, oh yea its friday, wheres that AAA game |
22:12:14 | BitPuffin | fowl: :P |
22:12:25 | * | oxful quit (Ping timeout: 240 seconds) |
22:16:01 | dom96 | lol |
22:16:08 | dom96 | It seems iterators don't work very well in macros |
22:16:28 | dom96 | It looks like the VM is corrupting what I am yielding. |
22:16:49 | BitPuffin | dom96: seee :P |
22:17:04 | dom96 | BitPuffin: You don't need macros for LD :P |
22:17:14 | dom96 | Araq: Where are you!? |
22:17:40 | dom96 | The guy in the idris video mentions that macros are an alternative to the dependent typing implementation |
22:17:47 | dom96 | So I decided to implement it using macros :P |
22:18:09 | fowl | whats 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:20 | dom96 | Pity that it doesn't work: https://gist.github.com/dom96/11305055 |
22:19:45 | fowl | that should work |
22:20:14 | dom96 | it generates gibberish |
22:21:54 | fowl | Error: unhandled exception: intVal is not accessible [EInvalidField] |
22:22:17 | fowl | thats what i get |
22:22:27 | flaviu | https://github.com/Araq/Nimrod/issues/1108 |
22:22:54 | dom96 | https://github.com/Araq/Nimrod/issues/1149 |
22:23:28 | dom96 | really? I don't get that. |
22:24:08 | flaviu | dom96: I can't reproduce the gibberish, just the error |
22:24:19 | dom96 | Try the code in the issue I posted |
22:24:21 | flaviu | on either example |
22:24:42 | dom96 | The second example doesn't use static |
22:25:20 | flaviu | The same error exists |
22:25:39 | dom96 | can you guys confirm this issue? https://github.com/Araq/Nimrod/issues/1148 |
22:25:42 | dom96 | That looks rather serious |
22:25:45 | flaviu | It gets created in a different way though |
22:26:43 | flaviu | I 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:26 | dom96 | indeed. Happens for me when I compile with --debugger:on |
22:30:10 | * | Jesin joined #nimrod |
22:32:06 | dom96 | well, this is disappointing. |
22:32:25 | fowl | 0.9.4.1? |
22:32:53 | flaviu | dom96: I missed a line on the gitignore, can you pull 1150? |
22:33:23 | * | Matthias247 quit (Read error: Connection reset by peer) |
22:33:24 | dom96 | never seen that extension before |
22:34:24 | flaviu | Sorry, I'm messed up on messing up |
22:34:33 | fowl | LOL |
22:34:38 | fowl | lol* sry |
22:35:23 | dom96 | flaviu: Can you try #1149 with latest compiler? |
22:35:25 | EXetoC | dom96: what happens? --debugger:on generated invalid C code for me |
22:35:51 | dom96 | EXetoC: It generates incorrect code? |
22:36:27 | EXetoC | code that doesn't compile |
22:36:52 | dom96 | i'm not sure what you're asking me |
22:38:17 | flaviu | commands.nim(62, 32) Error: undeclared identifier: 'nativeStackTraceSupported' |
22:40:58 | * | bjz quit (Ping timeout: 240 seconds) |
22:41:01 | EXetoC | dom96: looking at it now. I did get a similar error with --debugger:on today |
22:42:36 | dom96 | flaviu: I get the EInvalidField exception in debug mode |
22:44:26 | dom96 | cool, found a workaround |
22:49:33 | BitPuffin | dom96: if you are a sissy gamedev you don't |
22:49:35 | BitPuffin | :P |
22:49:58 | dom96 | woo, it works: https://gist.github.com/dom96/11305055 |
22:50:05 | dom96 | Took me only an hour. |
22:50:49 | * | Demos joined #nimrod |
22:53:11 | dom96 | You guys think the code is reddit-worthy? |
22:55:26 | renesac | we don't have something like this yet, as format? |
22:55:51 | dom96 | no, we have `%` instead. |
22:56:18 | renesac | yeah, so what is the difference between % and your code? |
22:56:55 | renesac | and why do you require an nnkIntLit, and not just an integer? |
22:57:26 | dom96 | I wrote it simply to see how it compares to the Idris dependent type version. |
22:57:48 | dom96 | you're right about the lit thing |
22:58:33 | dom96 | but actually |
22:58:34 | renesac | and why this must be a macro and not simply a function? |
22:58:50 | dom96 | We have no type API so I can't verify the type of a passed in symbol :\ |
22:59:05 | renesac | x.type works for me on generic procs |
22:59:07 | dom96 | so that the types are verified at compile-time |
22:59:32 | renesac | when x.type == int: dosomething |
22:59:44 | dom96 | I don't think I can do that. |
23:00:00 | dom96 | x.type will be an expr |
23:00:17 | dom96 | or a PNimrodNode |
23:01:23 | dom96 | There is a way I could get this to properly verify the types actually |
23:01:33 | dom96 | Would need to generate a procedure definition |
23:03:59 | milosn | how do you exit nimrod program? sounds stupid but google dont help :) |
23:04:52 | EXetoC | let it get to the end of the main module |
23:04:59 | dom96 | milosn: http://build.nimrod-lang.org/docs/system.html#quit,int |
23:05:06 | EXetoC | you can also use the quit function or raise an exception and don't handle it |
23:05:47 | EXetoC | I mean proc :p |
23:08:58 | renesac | I meant 'is' instead of '==' |
23:09:05 | renesac | I'm getting this error now: |
23:09:13 | renesac | Error: cannot generate code for 'error' |
23:10:25 | dom96 | fowl: You're a ruby guy right? http://forum.nimrod-lang.org/t/432 |
23:13:01 | milosn | dom96: thanks :) |
23:15:17 | * | Demos quit (Ping timeout: 264 seconds) |
23:19:09 | renesac | we still can't echo typedefs |
23:22:03 | EXetoC | not directly, which is a pain in the butt |
23:28:03 | EXetoC | you have to use typetraits.name |
23:28:55 | * | filwit joined #nimrod |
23:31:26 | EXetoC | I sometimes pass it to echo directly anyway. works in some cases |
23:38:00 | fowl | EXetoC, u do it to check type? i do that too >_> |
23:38:40 | * | darkf joined #nimrod |
23:38:42 | fowl | dom96, i will answer him |
23:39:27 | flaviu | Wow, til I don't have to type cd to cd |
23:39:46 | flaviu | in fish |
23:48:47 | fowl | fish is like a preconfigured zsh |
23:51:45 | EXetoC | fowl: might as well use echo then |
23:59:37 | * | filwit quit (Quit: Leaving) |